[Releng] XWT repository architecture update

- migrate to EPL 2.0 for simrel consistency
- convert files to unix encoding to simplify further maintenance
- modified the repository architecture for better visualisation
- uniformized some headers to facilitate automation of modifications

Change-Id: I387c7ccf6fff9ee35075ea4f419fc87a335e44f2
Signed-off-by: Quentin Le Menez <quentin.lemenez@cea.fr>
diff --git a/.gitignore b/.gitignore
index fdc0c0f..7e6f5b2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,4 +13,5 @@
 # All .project that are not in an xwt plugin
 .project
 !**/org.eclipse.xwt.*/.project
+!**/org.eclipse.xwt/.project
 
diff --git a/features/org.eclipse.xwt.feature/.project b/features/org.eclipse.xwt.feature/.project
new file mode 100644
index 0000000..92806d5
--- /dev/null
+++ b/features/org.eclipse.xwt.feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.xwt.feature</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.FeatureBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.FeatureNature</nature>
+	</natures>
+</projectDescription>
diff --git a/features/org.eclipse.xwt.feature/about.html b/features/org.eclipse.xwt.feature/about.html
new file mode 100644
index 0000000..46a80b6
--- /dev/null
+++ b/features/org.eclipse.xwt.feature/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 5, 2006</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/features/org.eclipse.xwt.feature/build.properties b/features/org.eclipse.xwt.feature/build.properties
new file mode 100644
index 0000000..6390929
--- /dev/null
+++ b/features/org.eclipse.xwt.feature/build.properties
@@ -0,0 +1,22 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+bin.includes = feature.xml,\
+               feature.properties,\
+               about.html,\
+               license.html
+src.includes = .project,\
+               about.html,\
+               build.properties,\
+               feature.properties,\
+               feature.xml,\
+               license.html
\ No newline at end of file
diff --git a/features/org.eclipse.xwt.feature/feature.properties b/features/org.eclipse.xwt.feature/feature.properties
new file mode 100644
index 0000000..b1ab146
--- /dev/null
+++ b/features/org.eclipse.xwt.feature/feature.properties
@@ -0,0 +1,47 @@
+###############################################################################
+# Copyright (c) 2000, 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+# 
+# Contributors:
+#     IBM Corporation - 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=Eclipse XWT
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse XWT
+
+# "updateSiteName" property - label for the update site
+updateSiteName=The Eclipse Project Updates
+
+# "secondarySiteName" property - label for the update site
+secondaryUpdateSiteName=Juno Discovery Site
+
+
+# "description" property - description of the feature
+description=Eclipse XWT declarative SWT
+
+# "copyright" property - text of the "Feature Update Copyright"
+copyright=\
+Copyright (c) 2006-2013 Soyatec Corporation and others.\n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License 2.0\n\
+which accompanies this distribution, and is available at\n\
+https://www.eclipse.org/legal/epl-2.0/
+
+SPDX-License-Identifier: EPL-2.0\n\
+\n\
+Contributors:\n\
+    Soyatec Corporation - initial API and implementation\n
+################ end of copyright property ####################################
diff --git a/features/org.eclipse.xwt.feature/feature.xml b/features/org.eclipse.xwt.feature/feature.xml
new file mode 100644
index 0000000..c080119
--- /dev/null
+++ b/features/org.eclipse.xwt.feature/feature.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.eclipse.xwt.feature"
+      label="%featureName"
+      version="1.4.100.qualifier"
+      provider-name="%providerName"
+      license-feature="org.eclipse.license"
+      license-feature-version="2.0.2">
+
+   <description>
+      %description
+   </description>
+
+   <copyright>
+      %copyright
+   </copyright>
+
+   <url>
+      <update label="XWT Update Site" url="http://www.eclipse.org/downloads/download.php?format=xml&amp;file=/xwt/updates"/>
+   </url>
+
+   <plugin
+         id="org.eclipse.xwt"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.xwt.pde"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.xwt.xml"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.xwt.forms"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.pushingpixels.trident"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.xwt.emf"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.xwt.css"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+</feature>
diff --git a/features/org.eclipse.xwt.feature/license.html b/features/org.eclipse.xwt.feature/license.html
new file mode 100755
index 0000000..aa83794
--- /dev/null
+++ b/features/org.eclipse.xwt.feature/license.html
@@ -0,0 +1,79 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<html>
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
+<title>Eclipse.org Software User Agreement</title>
+</head>
+
+<body lang="EN-US" link=blue vlink=purple>
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>March 17, 2005</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+   
+<h3>Applicable Licenses</h3>   
+   
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 2.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
+   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+   
+<ul>
+	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>   
+ 
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+	<li>The top-level (root) directory</li>
+	<li>Plug-in and Fragment directories</li>
+	<li>Inside Plug-ins and Fragments packaged as JARs</li>
+	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+	<li>Feature directories</li>
+</ul>
+		
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+	<li>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>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</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>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>
+   
+<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
+</body>
+</html>
diff --git a/features/org.eclipse.xwt.feature/notice.html b/features/org.eclipse.xwt.feature/notice.html
new file mode 100644
index 0000000..2949b01
--- /dev/null
+++ b/features/org.eclipse.xwt.feature/notice.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 9, 2014</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 2.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/features/org.eclipse.xwt.feature/pom.xml b/features/org.eclipse.xwt.feature/pom.xml
new file mode 100755
index 0000000..2afa350
--- /dev/null
+++ b/features/org.eclipse.xwt.feature/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-features</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt.feature</artifactId>
+	<version>1.4.100-SNAPSHOT</version>
+	<packaging>eclipse-feature</packaging>
+</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.feature/sourceTemplateFeature/eclipse_update_120.jpg b/features/org.eclipse.xwt.feature/sourceTemplateFeature/eclipse_update_120.jpg
similarity index 100%
rename from org.eclipse.xwt.feature/sourceTemplateFeature/eclipse_update_120.jpg
rename to features/org.eclipse.xwt.feature/sourceTemplateFeature/eclipse_update_120.jpg
Binary files differ
diff --git a/org.eclipse.xwt.tools.feature/sourceTemplateFeature/epl-v10.html b/features/org.eclipse.xwt.feature/sourceTemplateFeature/epl-v10.html
old mode 100755
new mode 100644
similarity index 100%
copy from org.eclipse.xwt.tools.feature/sourceTemplateFeature/epl-v10.html
copy to features/org.eclipse.xwt.feature/sourceTemplateFeature/epl-v10.html
diff --git a/features/org.eclipse.xwt.feature/sourceTemplateFeature/feature.properties b/features/org.eclipse.xwt.feature/sourceTemplateFeature/feature.properties
new file mode 100644
index 0000000..638f71a
--- /dev/null
+++ b/features/org.eclipse.xwt.feature/sourceTemplateFeature/feature.properties
@@ -0,0 +1,150 @@
+###############################################################################
+# Copyright (c) 2000, 2007 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+# 
+# Contributors:
+#     IBM Corporation - 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=Eclipse XWT Source
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse XWT
+
+# "updateSiteName" property - label for the update site
+updateSiteName=The Eclipse Project Updates
+
+# "description" property - description of the feature
+description=Source code zips for Eclipse E4 initiative.
+
+# "copyright" property - text of the "Feature Update Copyright"
+copyright=\
+Copyright (c) 2000, 2007 IBM Corporation and others.\n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License 2.0\n\
+which accompanies this distribution, and is available at\n\
+https://www.eclipse.org/legal/epl-2.0/
+
+SPDX-License-Identifier: EPL-2.0\n\
+\n\
+Contributors:\n\
+    IBM Corporation - initial API and implementation\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\
+March 17, 2005\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 Eclipse Foundation\n\
+is provided to you under the terms and conditions of the Eclipse Public\n\
+License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
+t https://www.eclipse.org/legal/epl-2.0/
+t
+t SPDX-License-Identifier: EPL-2.0.\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.org CVS\n\
+repository ("Repository") in CVS 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? 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\
+Features may also include other Features ("Included Features"). Files named\n\
+"feature.xml" may contain a list of the names and version numbers of\n\
+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\
+Eclipse Update Manager, you must agree to a license ("Feature Update\n\
+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". Such Abouts,\n\
+Feature Licenses and Feature Update Licenses contain the terms and\n\
+conditions (or references to such terms and conditions) that govern your\n\
+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\
+    - 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\
+    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\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\
+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,\n\
+and re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/features/org.eclipse.xwt.feature/sourceTemplateFeature/license.html b/features/org.eclipse.xwt.feature/sourceTemplateFeature/license.html
new file mode 100644
index 0000000..aa83794
--- /dev/null
+++ b/features/org.eclipse.xwt.feature/sourceTemplateFeature/license.html
@@ -0,0 +1,79 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<html>
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
+<title>Eclipse.org Software User Agreement</title>
+</head>
+
+<body lang="EN-US" link=blue vlink=purple>
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>March 17, 2005</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+   
+<h3>Applicable Licenses</h3>   
+   
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 2.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
+   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+   
+<ul>
+	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>   
+ 
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+	<li>The top-level (root) directory</li>
+	<li>Plug-in and Fragment directories</li>
+	<li>Inside Plug-ins and Fragments packaged as JARs</li>
+	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+	<li>Feature directories</li>
+</ul>
+		
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+	<li>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>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</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>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>
+   
+<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
+</body>
+</html>
diff --git a/features/org.eclipse.xwt.feature/sourceTemplatePlugin/build.properties b/features/org.eclipse.xwt.feature/sourceTemplatePlugin/build.properties
new file mode 100644
index 0000000..3c8b567
--- /dev/null
+++ b/features/org.eclipse.xwt.feature/sourceTemplatePlugin/build.properties
@@ -0,0 +1,14 @@
+###############################################################################
+# Copyright (c) 2000, 2006 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+bin.includes = plugin.xml, src/**, META-INF/
+sourcePlugin = true
diff --git a/features/org.eclipse.xwt.tests.feature/.project b/features/org.eclipse.xwt.tests.feature/.project
new file mode 100644
index 0000000..2389166
--- /dev/null
+++ b/features/org.eclipse.xwt.tests.feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.xwt.tests.feature</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.FeatureBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.FeatureNature</nature>
+	</natures>
+</projectDescription>
diff --git a/features/org.eclipse.xwt.tests.feature/about.html b/features/org.eclipse.xwt.tests.feature/about.html
new file mode 100644
index 0000000..46a80b6
--- /dev/null
+++ b/features/org.eclipse.xwt.tests.feature/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 5, 2006</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/features/org.eclipse.xwt.tests.feature/build.properties b/features/org.eclipse.xwt.tests.feature/build.properties
new file mode 100644
index 0000000..b5dae31
--- /dev/null
+++ b/features/org.eclipse.xwt.tests.feature/build.properties
@@ -0,0 +1,10 @@
+bin.includes = feature.xml,\
+               feature.properties,\
+               about.html,\
+               license.html
+src.includes = .project,\
+               about.html,\
+               build.properties,\
+               feature.properties,\
+               feature.xml,\
+               license.html
diff --git a/features/org.eclipse.xwt.tests.feature/feature.properties b/features/org.eclipse.xwt.tests.feature/feature.properties
new file mode 100644
index 0000000..eb11719
--- /dev/null
+++ b/features/org.eclipse.xwt.tests.feature/feature.properties
@@ -0,0 +1,154 @@
+###############################################################################
+# Copyright (c) 2000, 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+# 
+# Contributors:
+#     IBM Corporation - 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=Eclipse XWT Tests
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse XWT
+
+# "updateSiteName" property - label for the update site
+updateSiteName=The Eclipse Project Updates
+
+# "secondarySiteName" property - label for the update site
+secondaryUpdateSiteName=Ganymede Discovery Site
+
+
+# "description" property - description of the feature
+description=Eclipse XWT Tests
+
+# "copyright" property - text of the "Feature Update Copyright"
+copyright=\
+Copyright (c) 2009 Soyatec Corporation and others.\n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License 2.0\n\
+which accompanies this distribution, and is available at\n\
+https://www.eclipse.org/legal/epl-2.0/
+
+SPDX-License-Identifier: EPL-2.0\n\
+\n\
+Contributors:\n\
+    Soyatec Corporation - initial API and implementation\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\
+March 17, 2005\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 Eclipse Foundation\n\
+is provided to you under the terms and conditions of the Eclipse Public\n\
+License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
+t https://www.eclipse.org/legal/epl-2.0/
+t
+t SPDX-License-Identifier: EPL-2.0.\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.org CVS\n\
+repository ("Repository") in CVS 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? 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\
+Features may also include other Features ("Included Features"). Files named\n\
+"feature.xml" may contain a list of the names and version numbers of\n\
+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\
+Eclipse Update Manager, you must agree to a license ("Feature Update\n\
+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". Such Abouts,\n\
+Feature Licenses and Feature Update Licenses contain the terms and\n\
+conditions (or references to such terms and conditions) that govern your\n\
+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\
+    - 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\
+    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\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\
+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,\n\
+and re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/features/org.eclipse.xwt.tests.feature/feature.xml b/features/org.eclipse.xwt.tests.feature/feature.xml
new file mode 100644
index 0000000..cdff75b
--- /dev/null
+++ b/features/org.eclipse.xwt.tests.feature/feature.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.eclipse.xwt.tests.feature"
+      label="%featureName"
+      version="0.10.100.qualifier"
+      provider-name="%providerName"
+      license-feature="org.eclipse.license"
+      license-feature-version="2.0.2">
+
+   <description>
+      %description
+   </description>
+
+   <copyright>
+      %copyright
+   </copyright>
+
+   <license url="%licenseURL">
+      %license
+   </license>
+
+   <url>
+      <update label="XWT Tests Update Site" url="http://www.eclipse.org/downloads/download.php?format=xml&amp;file=/xwt/updates"/>
+   </url>
+
+   <requires>
+      <import feature="org.eclipse.xwt.feature" version="0.9.0" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.xwt.emf" version="0.9.0" match="greaterOrEqual"/>
+   </requires>
+
+   <plugin
+         id="org.eclipse.xwt.tests"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"/>
+
+   <plugin
+         id="org.eclipse.xwt.emf.test"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"/>
+
+   <plugin
+         id="org.eclipse.xwt.css.tests"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"/>
+
+   <plugin
+         id="org.eclipse.xwt.snippets.tests"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"/>
+
+</feature>
diff --git a/features/org.eclipse.xwt.tests.feature/license.html b/features/org.eclipse.xwt.tests.feature/license.html
new file mode 100644
index 0000000..c35d834
--- /dev/null
+++ b/features/org.eclipse.xwt.tests.feature/license.html
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>February 1, 2011</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 2.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/features/org.eclipse.xwt.tests.feature/notice.html b/features/org.eclipse.xwt.tests.feature/notice.html
new file mode 100644
index 0000000..2949b01
--- /dev/null
+++ b/features/org.eclipse.xwt.tests.feature/notice.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 9, 2014</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 2.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/features/org.eclipse.xwt.tests.feature/pom.xml b/features/org.eclipse.xwt.tests.feature/pom.xml
new file mode 100755
index 0000000..26a6a89
--- /dev/null
+++ b/features/org.eclipse.xwt.tests.feature/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-features</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt.tests.feature</artifactId>
+	<version>0.10.100-SNAPSHOT</version>
+	<packaging>eclipse-feature</packaging>
+</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.feature/.project b/features/org.eclipse.xwt.tools.feature/.project
similarity index 100%
rename from org.eclipse.xwt.tools.feature/.project
rename to features/org.eclipse.xwt.tools.feature/.project
diff --git a/features/org.eclipse.xwt.tools.feature/about.html b/features/org.eclipse.xwt.tools.feature/about.html
new file mode 100644
index 0000000..f68b701
--- /dev/null
+++ b/features/org.eclipse.xwt.tools.feature/about.html
@@ -0,0 +1,105 @@
+<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 2.0
+   ("EPL").  A copy of the EPL is provided with this Content and is also available at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</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/features/org.eclipse.xwt.tools.feature/build.properties b/features/org.eclipse.xwt.tools.feature/build.properties
new file mode 100755
index 0000000..6390929
--- /dev/null
+++ b/features/org.eclipse.xwt.tools.feature/build.properties
@@ -0,0 +1,22 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+bin.includes = feature.xml,\
+               feature.properties,\
+               about.html,\
+               license.html
+src.includes = .project,\
+               about.html,\
+               build.properties,\
+               feature.properties,\
+               feature.xml,\
+               license.html
\ No newline at end of file
diff --git a/features/org.eclipse.xwt.tools.feature/feature.properties b/features/org.eclipse.xwt.tools.feature/feature.properties
new file mode 100755
index 0000000..1f00cd4
--- /dev/null
+++ b/features/org.eclipse.xwt.tools.feature/feature.properties
@@ -0,0 +1,154 @@
+###############################################################################
+# Copyright (c) 2000, 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+# 
+# Contributors:
+#     IBM Corporation - 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=Eclipse e4 XWT Tools (Incubation)
+
+# "providerName" property - name of the company that provides the feature
+providerName=Soyatec.com
+
+# "updateSiteName" property - label for the update site
+updateSiteName=The Eclipse Project Updates
+
+# "secondarySiteName" property - label for the update site
+secondaryUpdateSiteName=Ganymede Discovery Site
+
+
+# "description" property - description of the feature
+description=Eclipse e4 XWT Tools
+
+# "copyright" property - text of the "Feature Update Copyright"
+copyright=\
+Copyright (c) 2009 Soyatec Corporation and others.\n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License 2.0\n\
+which accompanies this distribution, and is available at\n\
+https://www.eclipse.org/legal/epl-2.0/
+
+SPDX-License-Identifier: EPL-2.0\n\
+\n\
+Contributors:\n\
+    Soyatec Corporation - initial API and implementation\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\
+March 17, 2005\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 Eclipse Foundation\n\
+is provided to you under the terms and conditions of the Eclipse Public\n\
+License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
+t https://www.eclipse.org/legal/epl-2.0/
+t
+t SPDX-License-Identifier: EPL-2.0.\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.org CVS\n\
+repository ("Repository") in CVS 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? 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\
+Features may also include other Features ("Included Features"). Files named\n\
+"feature.xml" may contain a list of the names and version numbers of\n\
+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\
+Eclipse Update Manager, you must agree to a license ("Feature Update\n\
+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". Such Abouts,\n\
+Feature Licenses and Feature Update Licenses contain the terms and\n\
+conditions (or references to such terms and conditions) that govern your\n\
+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\
+    - 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\
+    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\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\
+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,\n\
+and re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/features/org.eclipse.xwt.tools.feature/feature.xml b/features/org.eclipse.xwt.tools.feature/feature.xml
new file mode 100755
index 0000000..c599883
--- /dev/null
+++ b/features/org.eclipse.xwt.tools.feature/feature.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.eclipse.xwt.tools.feature"
+      label="%featureName"
+      version="0.10.100.qualifier"
+      provider-name="%providerName"
+      license-feature="org.eclipse.license"
+      license-feature-version="2.0.2">
+
+   <description>
+      %description
+   </description>
+
+   <copyright>
+      %copyright
+   </copyright>
+
+   <license url="%licenseURL">
+      %license
+   </license>
+
+   <requires>
+      <import feature="org.eclipse.xwt.feature" version="0.9.0" match="greaterOrEqual"/>
+      <import feature="org.eclipse.wst.xml_ui.feature" version="3.0.2.v200809120241-7F2ENKCwum6y6I7yPZPz0PesY7SI" match="compatible"/>
+      <import feature="org.eclipse.xsd.edit" version="2.4.0.v200808251517" match="compatible"/>
+   </requires>
+
+   <plugin
+         id="org.eclipse.xwt.tools.ui"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.xwt.tools.ui.editor"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <!--plugin
+         id="org.eclipse.xwt.doc.user"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/-->
+
+   <plugin
+         id="org.eclipse.xwt.tools.ui.designer"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.xwt.tools.ui.designer.core"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.xwt.tools.ui.imagecapture"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.xwt.tools.ui.palette"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.xwt.tools.ui.xaml"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.xwt.tools.categorynode"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.xwt.tools.categorynode.edit"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.xwt.tools.ui.workbench"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.xwt.snippets"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+</feature>
diff --git a/features/org.eclipse.xwt.tools.feature/license.html b/features/org.eclipse.xwt.tools.feature/license.html
new file mode 100755
index 0000000..aa83794
--- /dev/null
+++ b/features/org.eclipse.xwt.tools.feature/license.html
@@ -0,0 +1,79 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<html>
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
+<title>Eclipse.org Software User Agreement</title>
+</head>
+
+<body lang="EN-US" link=blue vlink=purple>
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>March 17, 2005</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+   
+<h3>Applicable Licenses</h3>   
+   
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 2.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
+   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+   
+<ul>
+	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>   
+ 
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+	<li>The top-level (root) directory</li>
+	<li>Plug-in and Fragment directories</li>
+	<li>Inside Plug-ins and Fragments packaged as JARs</li>
+	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+	<li>Feature directories</li>
+</ul>
+		
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+	<li>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>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</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>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>
+   
+<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
+</body>
+</html>
diff --git a/features/org.eclipse.xwt.tools.feature/notice.html b/features/org.eclipse.xwt.tools.feature/notice.html
new file mode 100644
index 0000000..2949b01
--- /dev/null
+++ b/features/org.eclipse.xwt.tools.feature/notice.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 9, 2014</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 2.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/features/org.eclipse.xwt.tools.feature/pom.xml b/features/org.eclipse.xwt.tools.feature/pom.xml
new file mode 100755
index 0000000..31597b2
--- /dev/null
+++ b/features/org.eclipse.xwt.tools.feature/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-features</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt.tools.feature</artifactId>
+	<version>0.10.100-SNAPSHOT</version>
+	<packaging>eclipse-feature</packaging>
+</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.feature/sourceTemplateFeature/eclipse_update_120.jpg b/features/org.eclipse.xwt.tools.feature/sourceTemplateFeature/eclipse_update_120.jpg
similarity index 100%
rename from org.eclipse.xwt.tools.feature/sourceTemplateFeature/eclipse_update_120.jpg
rename to features/org.eclipse.xwt.tools.feature/sourceTemplateFeature/eclipse_update_120.jpg
Binary files differ
diff --git a/org.eclipse.xwt.tools.feature/sourceTemplateFeature/epl-v10.html b/features/org.eclipse.xwt.tools.feature/sourceTemplateFeature/epl-v10.html
similarity index 100%
rename from org.eclipse.xwt.tools.feature/sourceTemplateFeature/epl-v10.html
rename to features/org.eclipse.xwt.tools.feature/sourceTemplateFeature/epl-v10.html
diff --git a/features/org.eclipse.xwt.tools.feature/sourceTemplateFeature/feature.properties b/features/org.eclipse.xwt.tools.feature/sourceTemplateFeature/feature.properties
new file mode 100755
index 0000000..9e3ff64
--- /dev/null
+++ b/features/org.eclipse.xwt.tools.feature/sourceTemplateFeature/feature.properties
@@ -0,0 +1,150 @@
+###############################################################################
+# Copyright (c) 2000, 2007 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+# 
+# Contributors:
+#     IBM Corporation - 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=Eclipse e4 XWT Tools Source (Incubation)
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse.org
+
+# "updateSiteName" property - label for the update site
+updateSiteName=The Eclipse Project Updates
+
+# "description" property - description of the feature
+description=Source code zips for Eclipse E4 initiative.
+
+# "copyright" property - text of the "Feature Update Copyright"
+copyright=\
+Copyright (c) 2000, 2007 IBM Corporation and others.\n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License 2.0\n\
+which accompanies this distribution, and is available at\n\
+https://www.eclipse.org/legal/epl-2.0/
+
+SPDX-License-Identifier: EPL-2.0\n\
+\n\
+Contributors:\n\
+    IBM Corporation - initial API and implementation\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\
+March 17, 2005\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 Eclipse Foundation\n\
+is provided to you under the terms and conditions of the Eclipse Public\n\
+License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
+t https://www.eclipse.org/legal/epl-2.0/
+t
+t SPDX-License-Identifier: EPL-2.0.\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.org CVS\n\
+repository ("Repository") in CVS 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? 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\
+Features may also include other Features ("Included Features"). Files named\n\
+"feature.xml" may contain a list of the names and version numbers of\n\
+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\
+Eclipse Update Manager, you must agree to a license ("Feature Update\n\
+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". Such Abouts,\n\
+Feature Licenses and Feature Update Licenses contain the terms and\n\
+conditions (or references to such terms and conditions) that govern your\n\
+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\
+    - 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\
+    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\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\
+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,\n\
+and re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/features/org.eclipse.xwt.tools.feature/sourceTemplateFeature/license.html b/features/org.eclipse.xwt.tools.feature/sourceTemplateFeature/license.html
new file mode 100755
index 0000000..aa83794
--- /dev/null
+++ b/features/org.eclipse.xwt.tools.feature/sourceTemplateFeature/license.html
@@ -0,0 +1,79 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<html>
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
+<title>Eclipse.org Software User Agreement</title>
+</head>
+
+<body lang="EN-US" link=blue vlink=purple>
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>March 17, 2005</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+   
+<h3>Applicable Licenses</h3>   
+   
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 2.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
+   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+   
+<ul>
+	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>   
+ 
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+	<li>The top-level (root) directory</li>
+	<li>Plug-in and Fragment directories</li>
+	<li>Inside Plug-ins and Fragments packaged as JARs</li>
+	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+	<li>Feature directories</li>
+</ul>
+		
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+	<li>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>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</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>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>
+   
+<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
+</body>
+</html>
diff --git a/features/org.eclipse.xwt.tools.feature/sourceTemplatePlugin/build.properties b/features/org.eclipse.xwt.tools.feature/sourceTemplatePlugin/build.properties
new file mode 100755
index 0000000..3c8b567
--- /dev/null
+++ b/features/org.eclipse.xwt.tools.feature/sourceTemplatePlugin/build.properties
@@ -0,0 +1,14 @@
+###############################################################################
+# Copyright (c) 2000, 2006 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+bin.includes = plugin.xml, src/**, META-INF/
+sourcePlugin = true
diff --git a/features/org.eclipse.xwt.workbench.feature/.project b/features/org.eclipse.xwt.workbench.feature/.project
new file mode 100644
index 0000000..99a3e94
--- /dev/null
+++ b/features/org.eclipse.xwt.workbench.feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.xwt.workbench.feature</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.FeatureBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.FeatureNature</nature>
+	</natures>
+</projectDescription>
diff --git a/features/org.eclipse.xwt.workbench.feature/about.html b/features/org.eclipse.xwt.workbench.feature/about.html
new file mode 100644
index 0000000..46a80b6
--- /dev/null
+++ b/features/org.eclipse.xwt.workbench.feature/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 5, 2006</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/features/org.eclipse.xwt.workbench.feature/build.properties b/features/org.eclipse.xwt.workbench.feature/build.properties
new file mode 100644
index 0000000..485a2d8
--- /dev/null
+++ b/features/org.eclipse.xwt.workbench.feature/build.properties
@@ -0,0 +1,22 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+bin.includes = feature.xml,\
+               feature.properties,\
+               about.html,\
+               license.html
+src.includes = .project,\
+               about.html,\
+               build.properties,\
+               feature.properties,\
+               feature.xml,\
+               license.html
diff --git a/features/org.eclipse.xwt.workbench.feature/feature.properties b/features/org.eclipse.xwt.workbench.feature/feature.properties
new file mode 100644
index 0000000..dc1de0b
--- /dev/null
+++ b/features/org.eclipse.xwt.workbench.feature/feature.properties
@@ -0,0 +1,47 @@
+###############################################################################
+# Copyright (c) 2000, 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+# 
+# Contributors:
+#     IBM Corporation - 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=Eclipse XWT Workbench Integration
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse XWT
+
+# "updateSiteName" property - label for the update site
+updateSiteName=The Eclipse Project Updates
+
+# "secondarySiteName" property - label for the update site
+secondaryUpdateSiteName=Luna Discovery Site
+
+
+# "description" property - description of the feature
+description=Eclipse XWT Workbench Integration
+
+# "copyright" property - text of the "Feature Update Copyright"
+copyright=\
+Copyright (c) 2009 Soyatec Corporation and others.\n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License 2.0\n\
+which accompanies this distribution, and is available at\n\
+https://www.eclipse.org/legal/epl-2.0/
+
+SPDX-License-Identifier: EPL-2.0\n\
+\n\
+Contributors:\n\
+    Soyatec Corporation - initial API and implementation\n
+################ end of copyright property ####################################
diff --git a/features/org.eclipse.xwt.workbench.feature/feature.xml b/features/org.eclipse.xwt.workbench.feature/feature.xml
new file mode 100644
index 0000000..c3ea37b
--- /dev/null
+++ b/features/org.eclipse.xwt.workbench.feature/feature.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Copyright (c) 2010 IBM Corporation and others.
+    All rights reserved. This program and the accompanying materials
+    are made available under the terms of the Eclipse Public License 2.0
+    which accompanies this distribution, and is available at
+    https://www.eclipse.org/legal/epl-2.0/
+
+    SPDX-License-Identifier: EPL-2.0
+   
+    Contributors:
+        IBM Corporation - initial API and implementation
+ -->
+<feature
+      id="org.eclipse.xwt.workbench.feature"
+      label="%featureName"
+      version="1.5.0.qualifier"
+      provider-name="%providerName"
+      license-feature="org.eclipse.license"
+      license-feature-version="2.0.2">
+
+   <description>
+      %description
+   </description>
+
+   <copyright>
+      %copyright
+   </copyright>
+
+   <url>
+      <update label="XWT Workbench Integration Update Site" url="http://www.eclipse.org/downloads/download.php?format=xml&amp;file=/xwt/updates"/>
+   </url>
+
+   <requires>
+      <import feature="org.eclipse.xwt.feature" version="1.0.0.qualifier"/>
+   </requires>
+
+   <plugin
+         id="org.eclipse.xwt.ui.workbench"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+</feature>
diff --git a/features/org.eclipse.xwt.workbench.feature/license.html b/features/org.eclipse.xwt.workbench.feature/license.html
new file mode 100755
index 0000000..aa83794
--- /dev/null
+++ b/features/org.eclipse.xwt.workbench.feature/license.html
@@ -0,0 +1,79 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<html>
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
+<title>Eclipse.org Software User Agreement</title>
+</head>
+
+<body lang="EN-US" link=blue vlink=purple>
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>March 17, 2005</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+   
+<h3>Applicable Licenses</h3>   
+   
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 2.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
+   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+   
+<ul>
+	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>   
+ 
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+	<li>The top-level (root) directory</li>
+	<li>Plug-in and Fragment directories</li>
+	<li>Inside Plug-ins and Fragments packaged as JARs</li>
+	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+	<li>Feature directories</li>
+</ul>
+		
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+	<li>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>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</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>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>
+   
+<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
+</body>
+</html>
diff --git a/features/org.eclipse.xwt.workbench.feature/notice.html b/features/org.eclipse.xwt.workbench.feature/notice.html
new file mode 100644
index 0000000..2949b01
--- /dev/null
+++ b/features/org.eclipse.xwt.workbench.feature/notice.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 9, 2014</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 2.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/features/org.eclipse.xwt.workbench.feature/pom.xml b/features/org.eclipse.xwt.workbench.feature/pom.xml
new file mode 100755
index 0000000..d7314d7
--- /dev/null
+++ b/features/org.eclipse.xwt.workbench.feature/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-features</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt.workbench.feature</artifactId>
+	<version>1.5.0-SNAPSHOT</version>
+	<packaging>eclipse-feature</packaging>
+</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.workbench.feature/sourceTemplateFeature/eclipse_update_120.jpg b/features/org.eclipse.xwt.workbench.feature/sourceTemplateFeature/eclipse_update_120.jpg
similarity index 100%
rename from org.eclipse.xwt.workbench.feature/sourceTemplateFeature/eclipse_update_120.jpg
rename to features/org.eclipse.xwt.workbench.feature/sourceTemplateFeature/eclipse_update_120.jpg
Binary files differ
diff --git a/org.eclipse.xwt.tools.feature/sourceTemplateFeature/epl-v10.html b/features/org.eclipse.xwt.workbench.feature/sourceTemplateFeature/epl-v10.html
old mode 100755
new mode 100644
similarity index 100%
copy from org.eclipse.xwt.tools.feature/sourceTemplateFeature/epl-v10.html
copy to features/org.eclipse.xwt.workbench.feature/sourceTemplateFeature/epl-v10.html
diff --git a/features/org.eclipse.xwt.workbench.feature/sourceTemplateFeature/feature.properties b/features/org.eclipse.xwt.workbench.feature/sourceTemplateFeature/feature.properties
new file mode 100644
index 0000000..bb0697f
--- /dev/null
+++ b/features/org.eclipse.xwt.workbench.feature/sourceTemplateFeature/feature.properties
@@ -0,0 +1,150 @@
+###############################################################################
+# Copyright (c) 2000, 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+# 
+# Contributors:
+#     IBM Corporation - 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=Eclipse XWT CSS Workbench
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse XWT
+
+# "updateSiteName" property - label for the update site
+updateSiteName=The Eclipse Project Updates
+
+# "description" property - description of the feature
+description=Source code zips for Eclipse e4 XWT Workbench Source .
+
+# "copyright" property - text of the "Feature Update Copyright"
+copyright=\
+Copyright (c) 2000, 2009 IBM Corporation and others.\n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License 2.0\n\
+which accompanies this distribution, and is available at\n\
+https://www.eclipse.org/legal/epl-2.0/
+
+SPDX-License-Identifier: EPL-2.0\n\
+\n\
+Contributors:\n\
+    IBM Corporation - initial API and implementation\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\
+March 17, 2005\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 Eclipse Foundation\n\
+is provided to you under the terms and conditions of the Eclipse Public\n\
+License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
+t https://www.eclipse.org/legal/epl-2.0/
+t
+t SPDX-License-Identifier: EPL-2.0.\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.org CVS\n\
+repository ("Repository") in CVS 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? 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\
+Features may also include other Features ("Included Features"). Files named\n\
+"feature.xml" may contain a list of the names and version numbers of\n\
+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\
+Eclipse Update Manager, you must agree to a license ("Feature Update\n\
+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". Such Abouts,\n\
+Feature Licenses and Feature Update Licenses contain the terms and\n\
+conditions (or references to such terms and conditions) that govern your\n\
+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\
+    - 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\
+    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\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\
+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,\n\
+and re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/features/org.eclipse.xwt.workbench.feature/sourceTemplateFeature/license.html b/features/org.eclipse.xwt.workbench.feature/sourceTemplateFeature/license.html
new file mode 100644
index 0000000..aa83794
--- /dev/null
+++ b/features/org.eclipse.xwt.workbench.feature/sourceTemplateFeature/license.html
@@ -0,0 +1,79 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
+<html>
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
+<title>Eclipse.org Software User Agreement</title>
+</head>
+
+<body lang="EN-US" link=blue vlink=purple>
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>March 17, 2005</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+   
+<h3>Applicable Licenses</h3>   
+   
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 2.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
+   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+   
+<ul>
+	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>   
+ 
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+	<li>The top-level (root) directory</li>
+	<li>Plug-in and Fragment directories</li>
+	<li>Inside Plug-ins and Fragments packaged as JARs</li>
+	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+	<li>Feature directories</li>
+</ul>
+		
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+	<li>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>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</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>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>
+   
+<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
+</body>
+</html>
diff --git a/features/org.eclipse.xwt.workbench.feature/sourceTemplatePlugin/build.properties b/features/org.eclipse.xwt.workbench.feature/sourceTemplatePlugin/build.properties
new file mode 100644
index 0000000..72c15d4
--- /dev/null
+++ b/features/org.eclipse.xwt.workbench.feature/sourceTemplatePlugin/build.properties
@@ -0,0 +1,14 @@
+###############################################################################
+# Copyright (c) 2000, 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+bin.includes = plugin.xml, src/**, META-INF/
+sourcePlugin = true
diff --git a/features/pom.xml b/features/pom.xml
new file mode 100644
index 0000000..c68d60a
--- /dev/null
+++ b/features/pom.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-root</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>org.eclipse.xwt-features</artifactId>
+	<packaging>pom</packaging>
+	
+	<modules>
+		<module>org.eclipse.xwt.feature</module>
+		<module>org.eclipse.xwt.tests.feature</module>
+		<module>org.eclipse.xwt.tools.feature</module>
+		<module>org.eclipse.xwt.workbench.feature</module>
+	</modules>
+	
+</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.css.tests/.classpath b/org.eclipse.xwt.css.tests/.classpath
deleted file mode 100644
index 2d1a430..0000000
--- a/org.eclipse.xwt.css.tests/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>

-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

-	<classpathentry kind="src" path="src"/>

-	<classpathentry kind="output" path="bin"/>

-</classpath>

diff --git a/org.eclipse.xwt.css.tests/.project b/org.eclipse.xwt.css.tests/.project
deleted file mode 100644
index b33101e..0000000
--- a/org.eclipse.xwt.css.tests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.xwt.css.tests</name>

-	<comment></comment>

-	<projects>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.jdt.core.javabuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.ManifestBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.SchemaBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.pde.PluginNature</nature>

-		<nature>org.eclipse.jdt.core.javanature</nature>

-	</natures>

-</projectDescription>

diff --git a/org.eclipse.xwt.css.tests/META-INF/MANIFEST.MF b/org.eclipse.xwt.css.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index c79e114..0000000
--- a/org.eclipse.xwt.css.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,17 +0,0 @@
-Manifest-Version: 1.0

-Bundle-ManifestVersion: 2

-Bundle-Name: CSS Tests Plug-in

-Bundle-SymbolicName: org.eclipse.xwt.css.tests;singleton:=true

-Bundle-Version: 0.10.0.qualifier

-Bundle-Activator: org.eclipse.xwt.css.tests.Activator

-Require-Bundle: org.eclipse.ui,

- org.eclipse.core.runtime,

- org.eclipse.core.resources,

- org.eclipse.e4.ui.css.swt;bundle-version="0.9.0",

- org.eclipse.xwt;bundle-version="0.9.0",

- org.eclipse.xwt.css;bundle-version="0.9.0",

- org.eclipse.e4.ui.css.core;bundle-version="0.9.0",

- org.eclipse.jdt.core;bundle-version="3.8.2"

-Bundle-ActivationPolicy: lazy

-Bundle-RequiredExecutionEnvironment: J2SE-1.5

-Bundle-Vendor: Eclipse XWT

diff --git a/org.eclipse.xwt.css.tests/about.html b/org.eclipse.xwt.css.tests/about.html
deleted file mode 100644
index c258ef5..0000000
--- a/org.eclipse.xwt.css.tests/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!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 5, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.css.tests/build.properties b/org.eclipse.xwt.css.tests/build.properties
deleted file mode 100644
index f738dfb..0000000
--- a/org.eclipse.xwt.css.tests/build.properties
+++ /dev/null
@@ -1,25 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.xml,\
-               notice.html
-src.includes = .classpath,\
-               .project,\
-               META-INF/,\
-               about.html,\
-               build.properties,\
-               plugin.xml,\
-               src/,\
-               notice.html
diff --git a/org.eclipse.xwt.css.tests/notice.html b/org.eclipse.xwt.css.tests/notice.html
deleted file mode 100644
index c3d34c3..0000000
--- a/org.eclipse.xwt.css.tests/notice.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 9, 2014</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/org.eclipse.xwt.css.tests/plugin.xml b/org.eclipse.xwt.css.tests/plugin.xml
deleted file mode 100644
index 87ac0fb..0000000
--- a/org.eclipse.xwt.css.tests/plugin.xml
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.xwt.css.tests/pom.xml b/org.eclipse.xwt.css.tests/pom.xml
deleted file mode 100755
index b24e1c0..0000000
--- a/org.eclipse.xwt.css.tests/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt.css.tests</artifactId>
-	<version>0.10.0-SNAPSHOT</version>
-	<packaging>eclipse-plugin</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/Activator.java b/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/Activator.java
deleted file mode 100644
index b6667a3..0000000
--- a/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/Activator.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.css.tests;

-

-import org.eclipse.ui.plugin.AbstractUIPlugin;

-import org.osgi.framework.BundleContext;

-

-/**

- * The activator class controls the plug-in life cycle

- */

-public class Activator extends AbstractUIPlugin {

-

-	// The plug-in ID

-	public static final String PLUGIN_ID = "org.eclipse.xwt.css.tests";

-

-	// The shared instance

-	private static Activator plugin;

-

-	/**

-	 * The constructor

-	 */

-	public Activator() {

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext

-	 * )

-	 */

-	public void start(BundleContext context) throws Exception {

-		super.start(context);

-		plugin = this;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext

-	 * )

-	 */

-	public void stop(BundleContext context) throws Exception {

-		plugin = null;

-		super.stop(context);

-	}

-

-	/**

-	 * Returns the shared instance

-	 * 

-	 * @return the shared instance

-	 */

-	public static Activator getDefault() {

-		return plugin;

-	}

-

-}

diff --git a/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/ClassLoaderHelper.java b/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/ClassLoaderHelper.java
deleted file mode 100644
index fc78cec..0000000
--- a/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/ClassLoaderHelper.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.css.tests.popup.actions;

-

-import java.io.File;

-import java.io.InputStream;

-import java.net.MalformedURLException;

-import java.net.URL;

-import java.util.ArrayList;

-import java.util.HashSet;

-import java.util.List;

-import java.util.Set;

-

-import org.eclipse.core.resources.IFile;

-import org.eclipse.core.resources.IProject;

-import org.eclipse.core.resources.ResourcesPlugin;

-import org.eclipse.core.runtime.IPath;

-import org.eclipse.jdt.core.IClasspathEntry;

-import org.eclipse.jdt.core.IJavaProject;

-import org.eclipse.jdt.core.IPackageFragmentRoot;

-import org.eclipse.jdt.core.IType;

-import org.eclipse.jdt.core.JavaCore;

-import org.eclipse.jdt.core.JavaModelException;

-

-public class ClassLoaderHelper {

-

-	public static URL getResourceAsURL(IJavaProject javaProject, String name) {

-		if (javaProject == null)

-			return null;

-

-		Set<IJavaProject> visited = new HashSet<IJavaProject>();

-		URL url = findResourceURL(javaProject, visited, true, name);

-		if (url == null) {

-			IFile file = javaProject.getProject().getFile(name);

-			if (file.exists()) {

-				url = toURL(file.getLocation());

-			}

-		}

-		return url;

-	}

-

-	public static byte[] getClassContent(IJavaProject javaProject, String className) {

-		if (javaProject == null || !javaProject.exists())

-			return null;

-		String resourceName = className.replace('.', '/') + ".class";

-		try {

-			IPath outPath = javaProject.getProject().getLocation().removeLastSegments(1).append(javaProject.getOutputLocation());

-			outPath = outPath.addTrailingSeparator();

-			{

-				URL url = toURL(outPath.append(resourceName));

-				if (url != null) {

-					InputStream inputStream = url.openStream();

-					byte[] content = new byte[inputStream.available()];

-					inputStream.read(content);

-					return content;

-				}

-				for (IProject project : javaProject.getProject().getReferencedProjects()) {

-					if (!project.isOpen()) {

-						continue;

-					}

-					IJavaProject javaReferencedProject = JavaCore.create(project);

-					if (javaReferencedProject.exists()) {

-						byte[] content = getClassContent(javaReferencedProject, className);

-						if (content != null) {

-							return content;

-						}

-					}

-				}

-			}

-			IType type = javaProject.findType(className);

-			if (type != null && type.exists()) {

-				if (type.isBinary()) {

-					return type.getClassFile().getBytes();

-				} else {

-					IJavaProject typeProject = type.getJavaProject();

-					if (!javaProject.equals(typeProject)) {

-						return getClassContent(typeProject, className);

-					}

-				}

-			}

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-		return null;

-	}

-

-	public static URL[] getClasspathAsURLArray(IJavaProject javaProject) {

-		if (javaProject == null)

-			return null;

-		Set<IJavaProject> visited = new HashSet<IJavaProject>();

-		List<URL> urls = new ArrayList<URL>(20);

-		collectClasspathURLs(javaProject, urls, visited, true);

-		URL[] result = new URL[urls.size()];

-		urls.toArray(result);

-		return result;

-	}

-

-	private static URL findResourceURL(IJavaProject javaProject, Set<IJavaProject> visited, boolean isFirstProject, String name) {

-		if (visited.contains(javaProject))

-			return null;

-		visited.add(javaProject);

-		try {

-			IPath outPath = javaProject.getProject().getLocation().removeLastSegments(1).append(javaProject.getOutputLocation());

-			outPath = outPath.addTrailingSeparator();

-			{

-				URL url = toURL(outPath.append(name));

-				if (url != null) {

-					return url;

-				}

-			}

-			for (IPackageFragmentRoot fragment : javaProject.getPackageFragmentRoots()) {

-				if (fragment.getKind() == IPackageFragmentRoot.K_SOURCE) {

-					URL url = toURL(fragment.getResource().getLocation().append(name));

-					if (url != null) {

-						return url;

-					}

-				}

-			}

-			// urls.add(out);

-			IClasspathEntry[] entries = javaProject.getResolvedClasspath(true);

-			for (IClasspathEntry entry : entries) {

-				switch (entry.getEntryKind()) {

-				case IClasspathEntry.CPE_LIBRARY: {

-					// TODO

-					IClasspathEntry resolveEntry = JavaCore.getResolvedClasspathEntry(entry);

-					File file = resolveEntry.getPath().toFile();

-					IPath path = resolveEntry.getPath();

-					if (!file.exists()) {

-						String projectName = path.segment(0);

-						IProject project = javaProject.getProject().getWorkspace().getRoot().getProject(projectName);

-						path = project.getLocation().append(path.removeFirstSegments(1));

-					}

-					String spec = "jar:file:" + path.toString() + "!/" + name;

-					try {

-						URL url2 = new URL(spec);

-						url2.getContent();

-						return url2;

-					} catch (Exception e) {

-					}

-				}

-					break;

-				case IClasspathEntry.CPE_CONTAINER:

-

-					break;

-				case IClasspathEntry.CPE_VARIABLE: {

-					{

-						// TODO

-						URL url = toURL(outPath.append(name));

-						if (url != null) {

-							return url;

-						}

-					}

-				}

-					break;

-				case IClasspathEntry.CPE_PROJECT: {

-					if (isFirstProject || entry.isExported()) {

-						URL url = findResourceURL(getJavaProject(entry), visited, false, name);

-						if (url != null) {

-							return url;

-						}

-					}

-					break;

-				}

-				}

-			}

-		} catch (JavaModelException e) {

-			e.printStackTrace();

-		}

-		return null;

-	}

-

-	private static URL toURL(IPath outPath) {

-		File file = outPath.toFile();

-		if (file != null && file.exists()) {

-			try {

-				return file.toURI().toURL();

-			} catch (MalformedURLException e) {

-				e.printStackTrace();

-			}

-		}

-		return null;

-	}

-

-	private static void collectClasspathURLs(IJavaProject javaProject, List<URL> urls, Set<IJavaProject> visited, boolean isFirstProject) {

-		if (visited.contains(javaProject))

-			return;

-		visited.add(javaProject);

-		try {

-			IPath outPath = javaProject.getProject().getWorkspace().getRoot().getFullPath().append(javaProject.getOutputLocation());

-			outPath = outPath.addTrailingSeparator();

-			URL out = createFileURL(outPath);

-			urls.add(out);

-			IClasspathEntry[] entries = null;

-			entries = javaProject.getResolvedClasspath(true);

-			for (IClasspathEntry entry : entries) {

-				switch (entry.getEntryKind()) {

-				case IClasspathEntry.CPE_LIBRARY:

-				case IClasspathEntry.CPE_CONTAINER:

-				case IClasspathEntry.CPE_VARIABLE:

-					collectClasspathEntryURL(entry, urls);

-					break;

-				case IClasspathEntry.CPE_PROJECT: {

-					if (isFirstProject || entry.isExported())

-						collectClasspathURLs(getJavaProject(entry), urls, visited, false);

-					break;

-				}

-				}

-			}

-		} catch (JavaModelException e) {

-			return;

-		}

-	}

-

-	private static URL createFileURL(IPath path) {

-		URL url = null;

-		try {

-			url = new URL("file://" + path.toOSString());

-		} catch (MalformedURLException e) {

-			e.printStackTrace();

-		}

-		return url;

-	}

-

-	private static void collectClasspathEntryURL(IClasspathEntry entry, List<URL> urls) {

-		URL url = createFileURL(entry.getPath());

-		if (url != null)

-			urls.add(url);

-	}

-

-	private static IJavaProject getJavaProject(IClasspathEntry entry) {

-		IProject proj = ResourcesPlugin.getWorkspace().getRoot().getProject(entry.getPath().segment(0));

-		if (proj != null)

-			return JavaCore.create(proj);

-		return null;

-	}

-}

diff --git a/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/DisplayUtil.java b/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/DisplayUtil.java
deleted file mode 100644
index c59c96e..0000000
--- a/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/DisplayUtil.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.css.tests.popup.actions;

-

-import java.net.URI;

-

-import org.eclipse.core.resources.IFile;

-import org.eclipse.jdt.core.IJavaProject;

-import org.eclipse.jdt.core.JavaCore;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTException;

-

-public class DisplayUtil {

-

-	public static void open(IFile file) {

-		if (file != null) {

-			IJavaProject javaProject = JavaCore.create(file.getProject());

-			if (!javaProject.exists()) {

-				return;

-			}

-			URI uri = file.getLocationURI();

-			try {

-				XWT.setLoadingContext(ProjectContext.getContext(javaProject));

-				Object widget = XWT.load(uri.toURL());

-				if (!(widget instanceof Control)) {

-					throw new XWTException("Root element must be a control.");

-				}

-				Shell shell = ((Control)widget).getShell();

-				shell.pack();

-				shell.open();

-				while (!shell.isDisposed())

-					if (!shell.getDisplay().readAndDispatch())

-						shell.getDisplay().sleep();

-			} catch (Exception e) {

-				e.printStackTrace();

-				if (e instanceof RuntimeException) {

-					throw (RuntimeException) e;

-				}

-				throw new RuntimeException(e);

-			}

-		}

-	}

-}

diff --git a/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/LoadingContext.java b/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/LoadingContext.java
deleted file mode 100644
index 43594d3..0000000
--- a/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/LoadingContext.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.css.tests.popup.actions;

-

-import java.beans.PropertyChangeEvent;

-import java.beans.PropertyChangeListener;

-import java.lang.ref.WeakReference;

-import java.util.ArrayList;

-

-import org.eclipse.xwt.IConstants;

-

-public class LoadingContext extends org.eclipse.xwt.DefaultLoadingContext {

-	String namespace = IConstants.XWT_NAMESPACE;

-	protected ArrayList<WeakReference<PropertyChangeListener>> changeSupport = new ArrayList<WeakReference<PropertyChangeListener>>();

-

-	public String getNamespace() {

-		return namespace;

-	}

-

-	public void setNamespace(String namespace) {

-		this.namespace = namespace;

-	}

-

-	public void addPropertyChangeListener(PropertyChangeListener changeListener) {

-		for (WeakReference<PropertyChangeListener> reference : changeSupport) {

-			if (reference.get() == changeListener) {

-				return;

-			}

-		}

-		changeSupport.add(new WeakReference<PropertyChangeListener>(changeListener));

-	}

-

-	public void removePropertyChangeListener(PropertyChangeListener changeListener) {

-		for (WeakReference<PropertyChangeListener> reference : changeSupport) {

-			if (reference.get() == changeListener) {

-				changeSupport.remove(reference);

-				return;

-			}

-		}

-	}

-

-	public void firePropertyChangeListener(PropertyChangeEvent event) {

-		for (WeakReference<PropertyChangeListener> reference : changeSupport) {

-			PropertyChangeListener listener = reference.get();

-			if (listener != null) {

-				listener.propertyChange(event);

-			}

-		}

-	}

-}

diff --git a/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/ProjectContext.java b/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/ProjectContext.java
deleted file mode 100644
index abd20bb..0000000
--- a/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/ProjectContext.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.css.tests.popup.actions;

-

-import java.beans.PropertyChangeEvent;

-import java.net.URL;

-import java.util.HashSet;

-import java.util.WeakHashMap;

-

-import org.eclipse.core.resources.IProject;

-import org.eclipse.core.resources.IResourceChangeEvent;

-import org.eclipse.core.resources.IResourceChangeListener;

-import org.eclipse.core.resources.IResourceDelta;

-import org.eclipse.core.resources.ResourcesPlugin;

-import org.eclipse.core.runtime.IPath;

-import org.eclipse.jdt.core.IJavaProject;

-

-public class ProjectContext extends LoadingContext {

-	protected static WeakHashMap<String, ProjectContext> contexts = new WeakHashMap<String, ProjectContext>();

-

-	protected static IResourceChangeListener changeListener = new IResourceChangeListener() {

-		public void resourceChanged(IResourceChangeEvent event) {

-			IResourceDelta delta = event.getDelta();

-			if (!contexts.isEmpty() && delta != null) {

-				processDelta(delta);

-			}

-		}

-

-		protected void processDelta(IResourceDelta delta) {

-			for (IResourceDelta resourceDelta : delta.getAffectedChildren()) {

-				IProject project = resourceDelta.getResource().getProject();

-				if (project != null && project.exists()) {

-					String name = project.getName();

-					ProjectContext projectContext = contexts.get(name);

-					if (projectContext != null) {

-						projectContext.processDelta(delta);

-						continue;

-					}

-				}

-				processDelta(resourceDelta);

-			}

-		}

-	};

-

-	protected IJavaProject javaProject;

-	protected HashSet<String> classes = new HashSet<String>();

-

-	class RuntimeLoader extends ClassLoader {

-

-		public RuntimeLoader(ClassLoader parent) {

-			super(parent);

-		}

-

-		@Override

-		protected Class<?> findClass(String name) throws ClassNotFoundException {

-			Class<?> type = null;

-			try {

-				type = super.findClass(name);

-			} catch (ClassNotFoundException e) {

-				if (type == null) {

-					type = redefined(name);

-				}

-				if (type == null) {

-					throw e;

-				} else {

-					classes.add(name);

-				}

-			}

-			return type;

-		}

-

-		public Class<?> redefined(String name) {

-			try {

-				byte[] content = ClassLoaderHelper.getClassContent(ProjectContext.this.javaProject, name);

-				if (content != null) {

-					return defineClass(name, content, 0, content.length);

-				}

-			} catch (Exception e) {

-				e.printStackTrace();

-			}

-			return null;

-		}

-

-		@Override

-		protected URL findResource(String name) {

-			URL url = super.findResource(name);

-			if (url == null) {

-				url = ClassLoaderHelper.getResourceAsURL(ProjectContext.this.javaProject, name);

-

-			}

-			return url;

-		}

-	}

-

-	private ProjectContext(IJavaProject javaProject) {

-		this.javaProject = javaProject;

-		resetLoader();

-	}

-

-	protected void resetLoader() {

-		ClassLoader classLoader = Thread.currentThread().getContextClassLoader();

-		setClassLoader(new RuntimeLoader(classLoader));

-		firePropertyChangeListener(new PropertyChangeEvent(this, "ClassLoader", null, getClassLoader()));

-	}

-

-	protected boolean processDelta(IResourceDelta delta) {

-		IResourceDelta[] resourceDeltas = delta.getAffectedChildren();

-		for (IResourceDelta resourceDelta : resourceDeltas) {

-			switch (resourceDelta.getKind()) {

-			case IResourceDelta.CHANGED:

-			case IResourceDelta.MOVED_FROM:

-			case IResourceDelta.MOVED_TO:

-				IPath path = resourceDelta.getProjectRelativePath();

-				if (!path.isEmpty() && "class".equals(path.getFileExtension())) {

-					resetLoader();

-					return true;

-				}

-				break;

-			}

-			for (IResourceDelta childDelta : resourceDelta.getAffectedChildren()) {

-				IPath path = childDelta.getProjectRelativePath();

-				if (!path.isEmpty() && "class".equals(path.getFileExtension())) {

-					resetLoader();

-					return true;

-				}

-				if (processDelta(childDelta)) {

-					return true;

-				}

-			}

-		}

-		return false;

-	}

-

-	public static ProjectContext getContext(IJavaProject javaProject) {

-		String elementName = javaProject.getElementName();

-		ProjectContext context = contexts.get(elementName);

-		if (context == null) {

-			context = new ProjectContext(javaProject);

-			contexts.put(elementName, context);

-		}

-		return context;

-	}

-

-	static public void start() {

-		ResourcesPlugin.getWorkspace().addResourceChangeListener(changeListener);

-	}

-

-	static public void stop() {

-		ResourcesPlugin.getWorkspace().removeResourceChangeListener(changeListener);

-	}

-}

diff --git a/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/StyleOpen.java b/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/StyleOpen.java
deleted file mode 100644
index 98a1858..0000000
--- a/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/StyleOpen.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.css.tests.popup.actions;

-

-import org.eclipse.core.resources.IFile;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.css.CSSStyle;

-import org.eclipse.jface.action.IAction;

-import org.eclipse.jface.viewers.ISelection;

-import org.eclipse.jface.viewers.IStructuredSelection;

-import org.eclipse.ui.IActionDelegate;

-import org.eclipse.ui.IObjectActionDelegate;

-import org.eclipse.ui.IWorkbenchPart;

-

-public class StyleOpen implements IObjectActionDelegate {

-	protected IFile file;

-

-	/**

-	 * Constructor for Action1.

-	 */

-	public StyleOpen() {

-		super();

-	}

-

-	/**

-	 * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)

-	 */

-	public void setActivePart(IAction action, IWorkbenchPart targetPart) {

-	}

-

-	/**

-	 * @see IActionDelegate#run(IAction)

-	 */

-	public void run(IAction action) {

-		ClassLoader classLoader = Thread.currentThread()

-				.getContextClassLoader();

-		try {

-			Thread.currentThread().setContextClassLoader(

-					StyleOpen.class.getClassLoader());

-			XWT.addDefaultStyle(new CSSStyle(StyleOpen.class

-					.getResource("style.css")));

-			if (file != null) {

-				DisplayUtil.open(file);

-			}

-		} finally {

-			Thread.currentThread().setContextClassLoader(classLoader);

-		}

-	}

-

-	/**

-	 * @see IActionDelegate#selectionChanged(IAction, ISelection)

-	 */

-	public void selectionChanged(IAction action, ISelection selection) {

-		file = null;

-		if (selection.isEmpty()) {

-			return;

-		}

-		IStructuredSelection structuredSelection = (IStructuredSelection) selection;

-		file = (IFile) structuredSelection.getFirstElement();

-	}

-}

diff --git a/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/style.css b/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/style.css
deleted file mode 100644
index a8f96e3..0000000
--- a/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/style.css
+++ /dev/null
@@ -1,7 +0,0 @@
-Label {

-	color:red;

-} 

-

-Text {

-	background-color:green;

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.css/.classpath b/org.eclipse.xwt.css/.classpath
deleted file mode 100644
index 2d1a430..0000000
--- a/org.eclipse.xwt.css/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>

-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

-	<classpathentry kind="src" path="src"/>

-	<classpathentry kind="output" path="bin"/>

-</classpath>

diff --git a/org.eclipse.xwt.css/.project b/org.eclipse.xwt.css/.project
deleted file mode 100644
index 2f55b0c..0000000
--- a/org.eclipse.xwt.css/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.xwt.css</name>

-	<comment></comment>

-	<projects>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.jdt.core.javabuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.ManifestBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.SchemaBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.pde.PluginNature</nature>

-		<nature>org.eclipse.jdt.core.javanature</nature>

-	</natures>

-</projectDescription>

diff --git a/org.eclipse.xwt.css/META-INF/MANIFEST.MF b/org.eclipse.xwt.css/META-INF/MANIFEST.MF
deleted file mode 100644
index a149f14..0000000
--- a/org.eclipse.xwt.css/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,13 +0,0 @@
-Manifest-Version: 1.0

-Bundle-ManifestVersion: 2

-Bundle-Name: %Bundle-Name.0

-Bundle-SymbolicName: org.eclipse.xwt.css

-Bundle-Version: 1.4.0.qualifier

-Require-Bundle: org.eclipse.xwt;bundle-version="0.9.0",

- org.eclipse.swt;bundle-version="3.4.0",

- org.eclipse.e4.ui.css.core;bundle-version="0.9.0",

- org.w3c.css.sac;bundle-version="1.3.0"

-Bundle-ActivationPolicy: lazy

-Bundle-RequiredExecutionEnvironment: J2SE-1.5

-Export-Package: org.eclipse.xwt.css

-Bundle-Vendor: Eclipse XWT

diff --git a/org.eclipse.xwt.css/OSGI-INF/l10n/bundle.properties b/org.eclipse.xwt.css/OSGI-INF/l10n/bundle.properties
deleted file mode 100644
index c123804..0000000
--- a/org.eclipse.xwt.css/OSGI-INF/l10n/bundle.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################

-# Copyright (c) 2010 IBM Corporation and others.

-# All rights reserved. This program and the accompanying materials

-# are made available under the terms of the Eclipse Public License v1.0

-# which accompanies this distribution, and is available at

-# http://www.eclipse.org/legal/epl-v10.html

-#

-# Contributors:

-#     IBM Corporation - initial API and implementation

-###############################################################################

-"******************************************************************************

-# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

-# All rights reserved. This program and the accompanying materials

-# are made available under the terms of the Eclipse Public License v1.0

-# which accompanies this distribution, and is available at

-# http://www.eclipse.org/legal/epl-v10.html

-# 

-# Contributors:

-#     Soyatec - initial API and implementation

-#******************************************************************************/

-Bundle-Name.0 = XWT CSS Plug-in
\ No newline at end of file
diff --git a/org.eclipse.xwt.css/about.html b/org.eclipse.xwt.css/about.html
deleted file mode 100644
index c258ef5..0000000
--- a/org.eclipse.xwt.css/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!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 5, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.css/build.properties b/org.eclipse.xwt.css/build.properties
deleted file mode 100644
index 835b579..0000000
--- a/org.eclipse.xwt.css/build.properties
+++ /dev/null
@@ -1,25 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               OSGI-INF/l10n/bundle.properties,\
-               about.html,\
-               notice.html
-src.includes = .classpath,\
-               .project,\
-               META-INF/,\
-               OSGI-INF/,\
-               about.html,\
-               build.properties,\
-               src/,\
-               notice.html
diff --git a/org.eclipse.xwt.css/notice.html b/org.eclipse.xwt.css/notice.html
deleted file mode 100644
index c3d34c3..0000000
--- a/org.eclipse.xwt.css/notice.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 9, 2014</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/org.eclipse.xwt.css/pom.xml b/org.eclipse.xwt.css/pom.xml
deleted file mode 100755
index 0ad16ae..0000000
--- a/org.eclipse.xwt.css/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt.css</artifactId>
-	<version>1.4.0-SNAPSHOT</version>
-	<packaging>eclipse-plugin</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.css/src/org/eclipse/xwt/css/AbstractCSSStyle.java b/org.eclipse.xwt.css/src/org/eclipse/xwt/css/AbstractCSSStyle.java
deleted file mode 100644
index 0e23ff6..0000000
--- a/org.eclipse.xwt.css/src/org/eclipse/xwt/css/AbstractCSSStyle.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.css;

-

-import java.io.InputStream;

-import java.io.StringReader;

-import java.lang.reflect.Method;

-import java.net.URL;

-

-import org.eclipse.e4.ui.css.core.engine.CSSEngine;

-import org.eclipse.e4.ui.css.core.engine.CSSErrorHandler;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.xwt.IStyle;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTException;

-

-/**

- * Base class for CSS Style.

- * 

- * @author yyang

- * @author <a href="mailto:angelo.zerr@gmail.com">Angelo ZERR</a>

- */

-public abstract class AbstractCSSStyle implements IStyle, CSSErrorHandler {

-	protected URL url;

-	protected String content;

-

-	private CSSEngine engine;

-	private Display display;

-

-	private Class<?> jfaceViewerClass;

-	private Method getControl;

-

-	public AbstractCSSStyle() {

-		this((String) null);

-	}

-

-	public AbstractCSSStyle(URL url) {

-		this.url = url;

-		init();

-	}

-

-	public AbstractCSSStyle(String content) {

-		this.content = content;

-		init();

-	}

-

-	public AbstractCSSStyle(CSSEngine engine) {

-		this.engine = engine;

-		init();

-	}

-

-	/**

-	 * Initialize class and method of JFace Viewer.

-	 * 

-	 */

-	private void init() {

-		try {

-			// FIXME : Yves, jfaceViewerClass and getControl, can be cached, or

-			// is it OSGI constraint?

-			jfaceViewerClass = Class

-					.forName("org.eclipse.jface.viewers.Viewer"); //$NON-NLS-1$

-			getControl = jfaceViewerClass.getMethod("getControl");

-		} catch (Throwable e) {

-		}

-	}

-

-	public void initializeIfNeed(Control control) {

-		Display display = control.getDisplay();

-		if (this.display != null && this.display == display) {

-			// CSS engine was already initalized, return.

-			return;

-

-		}

-		this.display = display;

-		try {

-			// Instantiate SWT CSS Engine

-			if (engine == null) {

-				// Search engine into Shell

-				engine = CSSXWT.getCSSEngine(control);

-				if (engine == null) {

-					// Create it and register it into Shell

-					engine = createCSSEngine(display);

-					CSSXWT.setCSSEngine(control.getShell(), engine);

-				}

-			}

-			engine.setErrorHandler(this);

-

-			// Load style sheet content

-			if (content != null) {

-				// Style sheet come from String content

-				engine.parseStyleSheet(new StringReader(content));

-			} else {

-				// Style sheet come from URL

-

-				// Get URL

-				Method urlResolver = null;

-				try {

-					Class<?> fileLocatorClass = loadClass("org.eclipse.core.runtime.FileLocator"); //$NON-NLS-1$

-					urlResolver = fileLocatorClass.getMethod(

-							"resolve", new Class[] { URL.class }); //$NON-NLS-1$

-				} catch (Throwable e) {

-				}

-

-				URL contentURL = url;

-				if (urlResolver != null) {

-					try {

-						contentURL = (URL) urlResolver.invoke(null,

-								new Object[] { contentURL });

-					} catch (Throwable e) {

-

-					}

-				}

-

-				// Parse style sheet

-				InputStream stream = contentURL.openStream();

-				engine.parseStyleSheet(stream);

-				stream.close();

-			}

-		} catch (Throwable e) {

-			System.err

-					.println("Warning - could not initialize CSS styling : " + e.toString()); //$NON-NLS-1$

-		}

-	}

-

-	public URL getUrl() {

-		return url;

-	}

-

-	public void setUrl(URL url) {

-		if (this.url == url || (this.url != null && this.url.equals(url))) {

-			return;

-		}

-		this.url = url;

-		reset();

-	}

-

-	public String getContent() {

-		return content;

-	}

-

-	public void setContent(String content) {

-		if (this.content == content

-				|| (this.content != null && this.content.equals(content))) {

-			return;

-		}

-		this.content = content;

-		reset();

-	}

-

-	protected void reset() {

-		display = null;

-		if (engine != null) {

-			engine.reset();

-			engine = null;

-		}

-	}

-

-	public void applyStyle(Object target) {

-		if (url == null && content == null && engine == null) {

-			return;

-		}

-

-		String name = XWT.getElementName(target);

-		Control control = null;

-		if (target instanceof Control) {

-			control = (Control) target;

-		} else if (getControl != null && jfaceViewerClass.isInstance(target)) {

-			try {

-				control = (Control) getControl.invoke(target);

-			} catch (Throwable e) {

-				throw new XWTException(e);

-			}

-		}

-		if (control != null) {

-			initializeIfNeed(control);

-			if (name != null) {

-				control.setData("org.eclipse.e4.ui.css.id", name);

-			}

-			try {

-				engine.applyStyles(control, false, true);

-			} catch (Exception e) {

-				e.printStackTrace();

-			}

-		}

-	}

-

-	public CSSEngine getEngine() {

-		return engine;

-	}

-

-	public void error(Exception e) {

-		throw new XWTException(e);

-	}

-

-	protected Class<?> loadClass(String className)

-			throws ClassNotFoundException {

-		try {

-			return Class.forName(className); //$NON-NLS-1$

-		} catch (ClassNotFoundException e) {

-			return Thread.currentThread().getContextClassLoader().loadClass(

-					className);

-		}

-	}

-

-	/**

-	 * Create CSS engine from {@link Display}.

-	 * 

-	 * @param display

-	 * @return

-	 */

-	protected abstract CSSEngine createCSSEngine(Display display);

-}

diff --git a/org.eclipse.xwt.css/src/org/eclipse/xwt/css/CSSEngineNotFoundException.java b/org.eclipse.xwt.css/src/org/eclipse/xwt/css/CSSEngineNotFoundException.java
deleted file mode 100644
index 4f70e23..0000000
--- a/org.eclipse.xwt.css/src/org/eclipse/xwt/css/CSSEngineNotFoundException.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2008, 2009 Angelo Zerr and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Angelo Zerr <angelo.zerr@gmail.com> - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.css;

-

-import org.eclipse.xwt.XWTException;

-

-/**

- * Exception used when CSS Engine is not retrieved.

- * 

- * @author <a href="mailto:angelo.zerr@gmail.com">Angelo ZERR</a>

- */

-public class CSSEngineNotFoundException extends XWTException {

-

-	public CSSEngineNotFoundException(Throwable throwable) {

-		super(throwable);

-	}

-}

diff --git a/org.eclipse.xwt.css/src/org/eclipse/xwt/css/CSSHandler.java b/org.eclipse.xwt.css/src/org/eclipse/xwt/css/CSSHandler.java
deleted file mode 100644
index 84809db..0000000
--- a/org.eclipse.xwt.css/src/org/eclipse/xwt/css/CSSHandler.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.css;

-

-import org.eclipse.swt.widgets.Widget;

-import org.eclipse.xwt.INamespaceHandler;

-

-public class CSSHandler implements INamespaceHandler {

-	public static final String NAMESPACE = "http://www.eclipse.org/css";

-	public static final CSSHandler handler = new CSSHandler();

-

-	public void handleAttribute(Widget widget, Object target, String name,

-			String value) {

-		widget.setData("org.eclipse.e4.ui.css." + name, value);

-	}

-}

diff --git a/org.eclipse.xwt.css/src/org/eclipse/xwt/css/CSSStyle.java b/org.eclipse.xwt.css/src/org/eclipse/xwt/css/CSSStyle.java
deleted file mode 100644
index e86ee30..0000000
--- a/org.eclipse.xwt.css/src/org/eclipse/xwt/css/CSSStyle.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.css;

-

-import java.lang.reflect.Constructor;

-import java.net.URL;

-

-import org.eclipse.e4.ui.css.core.engine.CSSEngine;

-import org.eclipse.swt.widgets.Display;

-

-/**

- * This class handles the CSS style for XWT element. It can be used in two ways:

- * <ol>

- * <ul>

- * 1. Global style<br/>

- * XWT.addDefaultStyle()

- * </ul>

- * <ul>

- * 2. Inline style

- * 

- * <pre>

- * &lt;Composite&gt;

- *   &lt;Composite.Resources&gt;

- *     &lt;CSSStyle x:Key=&quot;style&quot; url=&quot;/test/style.css&quot;/&gt;

- *   &lt;/Composite.Resources&gt;

- *   &lt;Label text=&quot;Hello&quot;/&gt;

- * &lt;/Composite&gt;

- * </pre>

- * 

- * </ul>

- * </ol>

- * 

- * @author yyang

- * @author <a href="mailto:angelo.zerr@gmail.com">Angelo ZERR</a>

- */

-public class CSSStyle extends AbstractCSSStyle {

-

-	public CSSStyle() {

-		super();

-	}

-

-	public CSSStyle(URL url) {

-		super(url);

-	}

-

-	public CSSStyle(String content) {

-		super(content);

-	}

-

-	public CSSStyle(CSSEngine engine) {

-		super(engine);

-	}

-

-	protected CSSEngine createCSSEngine(Display display) {

-		try {

-			Class<?> engineClass = getEngineClass();

-			Constructor<?> ctor = engineClass.getConstructor(new Class[] {

-					Display.class, Boolean.TYPE });

-			return (CSSEngine) ctor.newInstance(new Object[] { display,

-					Boolean.FALSE });

-		} catch (Throwable e) {

-			throw new CSSEngineNotFoundException(e);

-		}

-

-	}

-

-	private Class getEngineClass() throws ClassNotFoundException {

-		Class engineClass = null;

-		try {

-			engineClass = loadClass("org.eclipse.e4.ui.css.nebula.engine.CSSNebulaEngineImpl"); //$NON-NLS-1$

-		} catch (Throwable e) {

-			engineClass = loadClass("org.eclipse.e4.ui.css.swt.engine.CSSSWTEngineImpl"); //$NON-NLS-1$

-		}

-		return engineClass;

-	}

-}

diff --git a/org.eclipse.xwt.css/src/org/eclipse/xwt/css/CSSXWT.java b/org.eclipse.xwt.css/src/org/eclipse/xwt/css/CSSXWT.java
deleted file mode 100644
index 34292b5..0000000
--- a/org.eclipse.xwt.css/src/org/eclipse/xwt/css/CSSXWT.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2008, 2009 Angelo Zerr and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Angelo Zerr <angelo.zerr@gmail.com> - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.css;

-

-import org.eclipse.e4.ui.css.core.engine.CSSEngine;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.swt.widgets.Widget;

-

-/**

- * 

- * Helper method for get CSS engine from SWT widgets.

- * 

- * @author <a href="mailto:angelo.zerr@gmail.com">Angelo ZERR</a>

- * 

- */

-public class CSSXWT {

-

-	private static final String CSSENGINE_KEY = "___CSSENGINE___";

-

-	public static CSSEngine getCSSEngine(Widget widget) {

-		// CSS engine is stored into Shell

-		if (widget instanceof Control) {

-			Shell shell = null;

-			if (widget instanceof Shell) {

-				shell = (Shell) widget;

-			} else {

-				shell = ((Control) widget).getShell();

-			}

-			return (CSSEngine) shell.getData(CSSENGINE_KEY);

-		}

-		return null;

-	}

-

-	public static void setCSSEngine(Shell shell, CSSEngine engine) {

-		shell.setData(CSSENGINE_KEY, engine);

-	}

-}

diff --git a/org.eclipse.xwt.doc.user/.project b/org.eclipse.xwt.doc.user/.project
deleted file mode 100644
index 237be83..0000000
--- a/org.eclipse.xwt.doc.user/.project
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.xwt.doc.user</name>

-	<comment></comment>

-	<projects>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.pde.ManifestBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.SchemaBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.pde.PluginNature</nature>

-	</natures>

-</projectDescription>

diff --git a/org.eclipse.xwt.doc.user/META-INF/MANIFEST.MF b/org.eclipse.xwt.doc.user/META-INF/MANIFEST.MF
deleted file mode 100644
index f78447f..0000000
--- a/org.eclipse.xwt.doc.user/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,7 +0,0 @@
-Manifest-Version: 1.0

-Bundle-ManifestVersion: 2

-Bundle-Name: XWT User Documentation

-Bundle-SymbolicName: org.eclipse.xwt.doc.user;singleton:=true

-Bundle-Version: 1.0.0.qualifier

-Require-Bundle: org.eclipse.help;bundle-version="3.3.100"

-Bundle-Vendor: Eclipse XWT

diff --git a/org.eclipse.xwt.doc.user/about.html b/org.eclipse.xwt.doc.user/about.html
deleted file mode 100644
index c258ef5..0000000
--- a/org.eclipse.xwt.doc.user/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!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 5, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/about.ini b/org.eclipse.xwt.doc.user/about.ini
deleted file mode 100644
index 4dec7e8..0000000
--- a/org.eclipse.xwt.doc.user/about.ini
+++ /dev/null
@@ -1,24 +0,0 @@
-# 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=%blurb

-

-# Property "windowImage" contains path to window icon (16x16)

-# needed for primary features only

-

-# Property "featureImage" contains path to feature image (32x32)

-featureImage=eclipse32.png

-

-# Property "aboutImage" contains path to product image (500x330 or 115x164)

-# needed for primary features only

-

-# Property "appName" contains name of the application (translated)

-# needed for primary features only

-

-# Property "welcomePage" contains path to welcome page (special XML-based format)

-# optional

-

diff --git a/org.eclipse.xwt.doc.user/about.mappings b/org.eclipse.xwt.doc.user/about.mappings
deleted file mode 100644
index 720ca87..0000000
--- a/org.eclipse.xwt.doc.user/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# 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=@build@
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/about.properties b/org.eclipse.xwt.doc.user/about.properties
deleted file mode 100644
index 101c36e..0000000
--- a/org.eclipse.xwt.doc.user/about.properties
+++ /dev/null
@@ -1,25 +0,0 @@
-#*******************************************************************************

-# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

-# All rights reserved. This program and the accompanying materials

-# are made available under the terms of the Eclipse Public License v1.0

-# which accompanies this distribution, and is available at

-# http://www.eclipse.org/legal/epl-v10.html

-# 

-# Contributors:

-#     Soyatec - initial API and implementation

-#*******************************************************************************/

-###############################################################################

-# about.properties

-# contains externalized strings for about.ini

-# java.io.Properties file (ISO 8859-1 with "\" escapes)

-# fill-ins are supplied by about.mappings

-# This file should be translated.

-

-blurb=Eclipse XWT user guide\n\

-\n\

-Version: {featureVersion}\n\

-Build id: {0}\n\

-\n\

-(c) Copyright Soyatec. and others 2000, 2016.  All rights reserved.\n\

-Visit http://www.eclipse.org/

-

diff --git a/org.eclipse.xwt.doc.user/book.css b/org.eclipse.xwt.doc.user/book.css
deleted file mode 100644
index d970350..0000000
--- a/org.eclipse.xwt.doc.user/book.css
+++ /dev/null
@@ -1,22 +0,0 @@
-span.control {

-  font-weight: bold;

-}

-

-span.name {

-  font-style: italic;

-}

-

-span.code {

-  font-family: monospace;

-}

-

-p.nav_footer {

-	font-weight: bold;

-}

-

-p.nav_footer a {

-	font-weight: bold;

-	font-style: italic;

-}

-

-@import "code.css";
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/code.css b/org.eclipse.xwt.doc.user/code.css
deleted file mode 100644
index ce9c488..0000000
--- a/org.eclipse.xwt.doc.user/code.css
+++ /dev/null
@@ -1,233 +0,0 @@
-body,h1,h2,h3,h4,h5,h6,p,table,td,caption,th,dl,li,dd,dt {

-	font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif;

-	font-size: 10pt;

-	color: black margin :   0px;

-	padding: 0px;

-	background: white

-}

-

-P.Code,pre.Code {

-	font-family: Courier New, Courier, monospace;

-	display: block;

-	text-align: left;

-	text-indent: 0.00pt;

-	margin-left: 15pt;

-	font-weight: medium;

-	font-style: Regular;

-	text-decoration: none;

-	vertical-align: baseline;

-	text-transform: none;

-}

-

-H6.CaptionFigColumn {

-	display: block;

-	text-align: left;

-	margin-top: 3pt;

-	margin-bottom: 11pt;

-	font-size: 9pt;

-	font-weight: medium;

-	font-style: Italic;

-	color: #000000;

-	text-decoration: none;

-	vertical-align: baseline;

-	text-transform: none;

-}

-

-P.Note,p.Note {

-	display: block;

-	text-align: left;

-	text-indent: 0pt;

-	margin-top: 20pt;

-	margin-bottom: 20pt;

-	margin-left: 30pt;

-	font-size: 11pt;

-	font-weight: medium;

-	font-style: Italic;

-	color: #000000;

-	text-decoration: none;

-	vertical-align: baseline;

-	text-transform: none;

-}

-

-EM.UILabel {

-	font-weight: Bold;

-	font-style: Regular;

-	text-decoration: none;

-	vertical-align: baseline;

-	text-transform: none;

-}

-

-EM.CodeName {

-	font-weight: Bold;

-	font-style: Regular;

-	text-decoration: none;

-	vertical-align: baseline;

-	text-transform: none;

-}

-

-pre {

-	margin-left: 6;

-	font-size: 10pt

-}

-

-h1 {

-	font-size: 18pt;

-	margin-top: 5;

-	margin-bottom: 1

-}

-

-h2 {

-	font-size: 14pt;

-	margin-top: 25;

-	margin-bottom: 3

-}

-

-h3 {

-	font-size: 11pt;

-	margin-top: 20;

-	margin-bottom: 3

-}

-

-h4 {

-	font-size: 10pt;

-	margin-top: 20;

-	margin-bottom: 3;

-	font-style: italic

-}

-

-a {

-	font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif;

-	font-weight: bold;

-	color: #003366;

-	text-decoration: none;

-}

-

-a:visited {

-	font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif;

-	font-weight: bold;

-	color: #003366;

-	text-decoration: none;

-}

-

-a:hover {

-	font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif;

-	font-weight: bold;

-	color: #116DF9;

-	text-decoration: none;

-}

-

-.XMLElementTag {

-	color: #339999;

-}

-

-.XMLAttrTag {

-	color: #800080;

-}

-

-.XMLAttrValue {

-	color: #0000CC;

-}

-

-.JavaKeyword {

-	font-weight: bold;

-	color: #7f0055;

-}

-

-.JavaComment {

-	color: #3f7f5f;

-}

-

-.JavaString {

-	color: #4444CC;

-}

-

-.JavaVariable {

-	color: #4444CC;

-}

-

-.JavaDoc {

-	color: #4444CC;

-}

-

-.JavaMember {

-	color: #0000c0;

-}

-

-.XMLTag {

-	color: #0000FF;

-}

-

-.XMLHead {

-	color: #A31515;

-}

-

-.XMLAttr {

-	color: #FF0033;

-}

-

-.XMLValue {

-	color: #0000FF;

-}

-

-.XMLComment {

-	color: #3F5F97;

-}

-

-.CSKeyword {

-	color: #0000FF;

-}

-

-.CSComment {

-	color: #008000;

-}

-

-.CSString {

-	color: #A31515;

-}

-

-strong {

-	font-weight: bold

-}

-

-em {

-	font-style: italic

-}

-

-var {

-	font-style: italic

-}

-

-div.revision {

-	border-left-style: solid;

-	border-left-width: thin;

-	border-left-color: #7B68EE;

-	padding-left: 5

-}

-

-th {

-	font-weight: bold

-}

-

-div.copyright {

-	margin-top: 3em

-}

-

-.Filename {

-	font-style: italic

-}

-

-.Label {

-	font-weight: bold

-}

-

-.Note {

-	font-style: italic

-}

-

-div.copyright img {

-	border-width: 0px

-}

-

-kbd {

-	font-weight: bold

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/concepts/application_integration/index.html b/org.eclipse.xwt.doc.user/concepts/application_integration/index.html
deleted file mode 100644
index 1f20964..0000000
--- a/org.eclipse.xwt.doc.user/concepts/application_integration/index.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

-

-<html>

-<link href="../../book.css" rel="stylesheet" type="text/css" />

-<head>

-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>Application integration</title>

-</head>

-

-<body>

-<h1>Application Integration</h1>

-<p>Although XWT is bundled in e4, it is in fact designed, developed

-and tested in classic eclipse environment. It can be used in

-applications on top of SWT/Jface with or without eclipse platform. So

-the integration with standard SWT application is really straight

-forward.</p>

-

-<h2>Stand-alone Java application</h2>

-The module "org.eclipse.xwt" is the core engine of XWT. It depends

-only on SWT/JFace and JFace data binding. It can be used directly in any

-stand-alone Java application.

-

-<h2>Eclipse integration</h2>

-The plugin "org.eclipse.xwt.pde" takes over this bridge role between

-XWT and eclipse environment. It implements mainly all extensions points

-to extend XWT at the current stage, more integration facilities will be

-provided in next releases.

-

-<h2>Resource loading and UI creation</h2>

-

-<p>This paragraph explains the integration concept of XWT in an

-existing SWT application: how an existing classic SWT applications using

-XWT. XWT provides some APIs to load a UI component as a child of an

-existing Composite via the class XWT.</p>

-<p>The customized UI &quot;UserControl&quot; contains a Button with

-a selection event, that clicking the button changes the button content from

-'Hello, world' to 'OK'.</p>

-

-<p><img src="images/mac-feature_20.png" /></p>

-

-<p>XWT supports directly integrating user-defined SWT widgets in

-your declarative UI. <!-- 

-Now integrate the above example into a new XWT

-component directly. See the screenshot below.

--->It's quite easy to implement in XWT XML. You need only to declare the

-application class path and name in the place where you want. See the

-example below, it using <tt>&lt;y:UserControl /&gt;</tt>, <tt>y</tt> is

-the class path specified in the root as <tt>xmlns:y =

-"clr-namespace:org.eclipse.xwt.test.usercontrol"</tt>.</p>

-<p><img src="images/mac-feature_10.png" /></p>

-

-<p>Run the Container application and click the button. Implicitly,

-UserControl application is invoked.</p>

-<p><img src="images/mac-feature_07.png" /></p>

-

-</body>

-<p><img src="../../cpy.png" /></p>

-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/concepts/component/index.html b/org.eclipse.xwt.doc.user/concepts/component/index.html
deleted file mode 100644
index d193ac6..0000000
--- a/org.eclipse.xwt.doc.user/concepts/component/index.html
+++ /dev/null
@@ -1,198 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

-

-<html>

-<link href="../../book.css" rel="stylesheet" type="text/css" />

-<head>

-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>Component</title>

-</head>

-

-<body>

-<h1>Component</h1>

-<p>UI Component in XWT is not a simple UI widget such as Button,

-Label or List. It is in fact a <strong>Presentation</strong> <strong>unit</strong>

-that manages the ways of data display and edition. A UI Component is <strong>flexible</strong>

-and <strong>connectable</strong> software element, which is

-characterized at least by following aspects:</p>

-<ul>

-  <li>Independence </li>

-  <li>Reusable</li>

-  <li>Embeddable</li>

-</ul>

-<p>Precisely, a UI component is composed of three elements: UI

-Views, Presentation Data and Java controllers.</p>

-<ul>

-	<li>UI View<br />

-	UI View is UI controls defined in XWT XML, instead of low level SWT in

-	Java. It corresponds with a XML file.</li>

-	<li>Java controller<br />

-	It is a class associated to a UI View to handle UI events and it

-	handles the relationship between the Presentation data and the business

-	logic services.</li>

-	<li>Presentation Data<br />

-	It is the main information to manage by users via UI View and Java

-	controller.</li>

-</ul>

-

-<p>Hence, a component has an implicit &quot;data context&quot;

-comparing traditional UI framework.</p>

-<!-- 

-<p>In the following example, we create a simple component of Person.</p>

- -->

-<p>The following example is a custom UI component.</p>

-

-<pre>

-<span class="XMLElementTag">&lt;j:PersonView</span> <span

-	class="XMLAttrTag">xmlns</span>=<span class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:j</span>=<span

-	class="XMLAttrValue">"clr-namespace:ui"</span><span

-	class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;j:PersonView.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;GridLayout</span> <span class="XMLAttrTag">numColumns</span>=<span

-	class="XMLAttrValue">"2"</span> <span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/j:PersonView.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span

-	class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"First name:"</span> <span

-	class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Text</span> <span

-	class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span

-	class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"Last name:"</span> <span

-	class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Text</span>  <span

-	class="XMLElementTag">/&gt;</span>

-<span class="XMLElementTag">&lt;/j:PersonView&gt;</span>

-</pre>

-

-<p>The component above defined two columns with each has a Label and

-a Text. It is a pure UI component. In XWT, the component can establish a

-connection with business logic using data binding. The contents of the

-Text can synchronized with binding target.</p>

-

-<pre>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span

-	class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"First name:"</span> <span

-	class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Text</span> <span

-	class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"{Binding Path=firstName}"</span> <span

-	class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span

-	class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"Last name:"</span> <span

-	class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Text</span> <span

-	class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"{Binding Path=lastName}"</span> <span

-	class="XMLElementTag">/&gt;</span>

-

-<!-- 

-<span class="XMLElementTag">&lt;Shell</span> <span class="XMLAttrTag">xmlns</span>=<span class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:x</span>=<span class="XMLAttrValue">"http://www.eclipse.org/xwt"</span> 

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:y</span>=<span class="XMLAttrValue">"clr-namespace:org.eclipse.xwt.tests.view"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">DataContext</span>=<span class="XMLAttrValue">"{StaticResource Data}"</span><span class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Shell.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;GridLayout</span> <span class="XMLAttrTag">numColumns</span>=<span class="XMLAttrValue">"2"</span> <span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Shell.layout&gt;</span>

-	

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;x:Shell.Resources&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;y:Person</span> <span class="XMLAttrTag">x:Key</span>=<span class="XMLAttrValue">"Data"</span><span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/x:Shell.Resources&gt;</span>

-	

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"First name:"</span> <span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Text</span> <span class="XMLAttrTag">x:Style</span>=<span class="XMLAttrValue">"BORDER"</span> <span class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"{Binding Path=firstName}"</span> <span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"Last name:"</span> <span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Text</span> <span class="XMLAttrTag">x:Style</span>=<span class="XMLAttrValue">"BORDER"</span> <span class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"{Binding Path=lastName}"</span> <span class="XMLElementTag">/&gt;</span>

-<span class="XMLElementTag">&lt;/Shell&gt;</span>

--->

-</pre>

-

-<p>Implicitly, the dataContext this view is Person. The first Text

-binds to the property &quot;firstName&quot; and the second to

-&quot;lastName&quot;.</p>

-<p><image src="images/component_01.png" /></p>

-

-

-<h3>Independence, Reusable and Embeddable</h3>

-<p>UI component in XWT are independence, reusable and embeddable.

-The characters are correlative with each other. Independence is the

-necessary condition of reusable and embeddable, reusable and embeddable

-decide the component is independence. A defined UI component is like an

-unit, it can be reused in other applications or be embedded as a child

-in a new component.</p>

-<p>For example, we embed the above component into another View

-Component. First, create a new class named Company and then new a Person

-instance like the code below.</p>

-

-<pre>

-<span class="JavaKeyword">public class</span> Company {

-&nbsp;&nbsp;&nbsp;&nbsp;...

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="JavaKeyword">protected</span> String <span

-	class="JavaMember">name</span>;

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="JavaKeyword">protected</span> Person <span

-	class="JavaMember">manager</span> = <span class="JavaKeyword">new</span> Person();

-&nbsp;&nbsp;&nbsp;&nbsp;...

-}

-</pre>

-<!-- 

-<p>In the next, we create another View Component for Company, which

-reuses the component above. The PersonView is bounds to the property

-&quot;manager&quot; of the Company.</p>

- -->

-<p>In XWT XML, put the PersonView component into a Group. Then put

-the Group on the place where you want.</p>

-

-<pre>

-<span class="XMLElementTag">&lt;j:CompanyView</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns</span>=<span

-	class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:x</span>=<span

-	class="XMLAttrValue">"http://www.eclipse.org/xwt"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:j</span>=<span

-	class="XMLAttrValue">"clr-namespace:org.eclipse.xwt.tests.view"</span><span

-	class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;j:CompanyView.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;GridLayout</span> <span class="XMLAttrTag">numColumns</span>=<span

-	class="XMLAttrValue">"2"</span><span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/j:CompanyView.layout&gt;</span>

-

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span

-	class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"Company name:"</span><span

-	class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Text</span> <span

-	class="XMLAttrTag">x:Style</span>=<span class="XMLAttrValue">"BORDER"</span> <span

-	class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"{Binding Path=name}"</span><span

-	class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span

-	class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"Manager:"</span><span

-	class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Group</span> <span

-	class="XMLAttrTag">text</span>=<span class="XMLAttrValue">"Person View:"</span><span

-	class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;Group.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;FillLayout/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;/Group.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;j:PersonView</span> <span class="XMLAttrTag">DataContext</span>=<span

-	class="XMLAttrValue">"{Binding Path=manager}"</span><span

-	class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Group&gt;</span>

-<span class="XMLElementTag">&lt;/j:CompanyView&gt;</span>

-</pre>

-

-<p>The UI views like below. The content in red pane is PersonView.</p>

-<p><image src="images/component_02.png" /></p>

-

-

-

-

-

-

-

-

-

-</body>

-<p><img src="../../cpy.png" /></p>

-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/concepts/control_binding/index.html b/org.eclipse.xwt.doc.user/concepts/control_binding/index.html
deleted file mode 100644
index 638177f..0000000
--- a/org.eclipse.xwt.doc.user/concepts/control_binding/index.html
+++ /dev/null
@@ -1,136 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

-

-<html>

-<link href="../../book.css" rel="stylesheet" type="text/css" />

-<head>

-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>Control Binding</title>

-</head>

-

-<body>

-<h1>Control Binding</h1>

-<p>XWT binding provides a simple and consistent way for application

-to present and interact with UI elements.</p>

-

-<ul>

-	<li><a href="#control_binding_01">What is Control Binding?</a></li>

-	<!--  

-	<li><a href="#control_binding_02">Basic Control Binding

-	Concepts</a></li>

-	-->

-	<li><a href="#control_binding_03">Creating a Control Binding</a></li>

-</ul>

-

-<h3><a name="control_binding_01"></a>What is Control Binding?</h3>

-

-<p>Control Binding is the mechanism to establish a connection

-between two UI controls. If the control binding has the correct

-settings, then when the property value of the target controls is

-changed, the controls are bound to the target control reflect changes

-automatically. For example, ***************sample***************.</p>

-

-<!-- 

-<p>Control Binding is the mechanism to establish a connection

-between two UI controls. Control Binding is different from Data Binding,

-Control Binding doesn't deal with the associated data. For example, if

-UI element 'A' is bound correctly to UI element 'B', then, when the UI

-'B' element change its property value, UI 'A' element changes

-automatically.</p>

-

-<h3><a name="control_binding_02"></a>Basic Control Binding Concepts</h3>

-<p>Control Binding also has four elements: a binding target object,

-a target property, a binding source and an ElementName path. For

-example, if you want to bind the width of button A to the button B, your

-target object is the button A, the target property is the 'Width'

-property, the value to use is the width of button B and the source

-object is the Button B.</p>

- -->

-

-<h3><a name="control_binding_03"></a>Creating a Control Binding</h3>

-<p>In XWT, you establish a binding using the Binding object. This

-section discusses how to set up a control binding.</p>

-

-<p>There are four necessary components: binding target, target

-property, binding source, and a path to the source value to use.

-Consider the following example, <tt>Button1</tt> is the target object,

-the target property is the 'top' property, *****************.</p>

-

-<!-- 

-<pre>

-<span class="XMLElementTag">&lt;Shell</span> <span class="XMLAttrTag">xmlns</span>=<span

-	class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:x</span>=<span

-	class="XMLAttrValue">"http://www.eclipse.org/xwt"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">x:Class</span>=<span

-	class="XMLAttrValue">"org.eclipse.xwt.tests.layout.FormLayout_Test"</span><span

-	class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Shell.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;FormLayout /&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Shell.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Group</span> <span

-	class="XMLAttrTag">text</span>=<span class="XMLAttrValue">"layout"</span><span

-	class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;Group.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;FormLayout /&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;/Group.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;Group.layoutData&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;GridData</span> <span class="XMLAttrTag">horizontalAlignment</span>=<span

-	class="XMLAttrValue">"FILL"</span> <span class="XMLAttrTag">verticalAlignment</span>=<span

-	class="XMLAttrValue">"FILL"</span><span class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;/GridData&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;/Group.layoutData&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;Button</span> <span class="XMLAttrTag">x:Name</span>=<span

-	class="XMLAttrValue">"Button1"</span> <span class="XMLAttrTag">text</span>=<span

-	class="XMLAttrValue">"button1"</span><span class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;Button.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;FormData</span> <span class="XMLAttrTag">top</span>=<span

-	class="XMLAttrValue">"10, 10"</span> <span class="XMLAttrTag">left</span>=<span

-	class="XMLAttrValue">"0, 10"</span> <span class="XMLAttrTag">bottom</span>=<span

-	class="XMLAttrValue">"30, 0"</span> <span class="XMLAttrTag">right</span>=<span

-	class="XMLAttrValue">"40, 0"</span> <span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;/Button.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;/Button&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;Button</span> <span class="XMLAttrTag">text</span>=<span

-	class="XMLAttrValue">"button2"</span><span class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;Button.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;FormData</span> <span class="XMLAttrTag">top</span>=<span

-	class="XMLAttrValue">"{Binding ElementName=Button1}, 10"</span> <span

-	class="XMLAttrTag">left</span>=<span class="XMLAttrValue">"0, 0"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLAttrTag">bottom</span>=<span class="XMLAttrValue">"40, 0"</span> <span

-	class="XMLAttrTag">right</span>=<span class="XMLAttrValue">"40, 0"</span> <span

-	class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;/Button.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;/Button&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Group&gt;</span>

-<span class="XMLElementTag">&lt;/Shell&gt;</span>

-</pre>

- -->

-

-<p>********code***********</p>

-

-<p>Notice that in the above example, in which the binding source

-object is Button1. There provide an ElementName property to specify the

-source object.</p>

-

-</body>

-<p><img src="../../cpy.png" /></p>

-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/concepts/databinding/index.html b/org.eclipse.xwt.doc.user/concepts/databinding/index.html
deleted file mode 100644
index e57935a..0000000
--- a/org.eclipse.xwt.doc.user/concepts/databinding/index.html
+++ /dev/null
@@ -1,449 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

-

-<html>

-<link href="../../book.css" rel="stylesheet" type="text/css" />

-<head>

-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>Data Binding</title>

-</head>

-

-<body>

-<h1>Data Binding</h1>

-

-

-

-<p></p>

-

-<ul>

-	<li><a href="#databinding_01">What is Data Binding?</a></li>

-	<li><a href="#databinding_02">Basic Data Binding Concepts</a></li>

-	<li><a href="#databinding_03">Creating a Data Binding</a></li>

-	<li><a href="#databinding_04">Specifying the path expression

-	of data binding</a></li>

-	<!-- 

-	<li><a href="#databinding_05">Based on JFace Data binding</a></li>

-	 -->

-</ul>

-

-<h3><a name="databinding_01"></a>What is Data Binding?</h3>

-<p>Data Binding is the process that establishes a connection between

-the application UI and business logic. If the binding has the correct

-settings and the data provides the proper notifications, then, when the

-data changes its value, the elements bound to the data reflect

-changes automatically. Data binding can also mean that if an outer

-representation of the data in an element changes, then the underlying

-data can be automatically updated to reflect the change. For example, if

-the user edits the value in a Text element, the underlying data is

-automatically updated to reflect that change.</p>

-

-<p>A typical use of data binding is to place server or local

-configuration data into forms or other UI controls. In XWT, this concept

-is expanded to include the binding of a broad range of properties to a

-variety of data sources. In XWT, dependency properties of elements can

-be bound to CLR objects and XML data.</p>

-

-

-<h3><a name="databinding_02"></a>Basic Data Binding Concepts</h3>

-<p>Regardless of what element you are binding and the nature of your

-data source, each binding always follows the model illustrated by the

-following figure:</p>

-<p align="center"><img src="images/databinding_01.png" /></p>

-

-<p>As illustrated by the above figure, data binding is essentially

-the bridge between your binding target and your binding source. The

-figure demonstrates the following fundamental XWT data binding concepts.

-</p>

-<ul>

-	<li>Typically, each binding has these four components: a binding

-	target object, a target property, a binding source and a path to the

-	value in the binding source to use.</li>

-	<li>The target property must be a dependency property. Most

-	UIElement properties are dependency properties and most dependency

-	properties, except read-only ones, support data binding by default.</li>

-	<li>Although not specified in the figure, it should be noted that

-	the binding source object is not restricted to being a custom CLR

-	object. XWT data binding supports data in the form of CLR objects and

-	XML.</li>

-</ul>

-

-<p>It is important to remember that when you are establishing a

-binding, you are binding a binding target to a binding source. For

-example, if you are displaying some underlying XML data in a Text using

-data binding, you are binding your Text to the XML data.</p>

-

-<p>To establish a binding, you use the Binding object. The rest of

-this topic discusses many of the concepts associated with and some of

-the properties and usage of the Binding object.</p>

-

-<p><b>Direction of the Data Flow</b></p>

-<p>As mentioned previously and as indicated by the arrow in the

-figure above, the data flow of a binding can go from the binding target

-to the binding source or from the binding source to the binding target

-if the binding source provides the proper notifications.</p>

-

-<p>You may want your application to enable users to change the data

-and propagate it back to the source object. Or you may not want to

-enable users to update the source data. You can control this by setting

-the Mode property of your Binding object. XWT supports three ways to handle the 

-binding: <tt>One Way</tt>, <tt>One Time</tt> and <tt>Two Way</tt>.</p>

-

-<ul>

-	<li><tt>One Way</tt> binding causes changes to the source property

-	to automatically update the target property, but changes to the target

-	property are not propagated back to the source property. This type of

-	binding is appropriate if the control being bound is implicitly

-	read-only. For instance, you may bind to a source such as a stock

-	ticker or perhaps your target property has no control interface

-	provided for making changes, such as a data-bound background color of a

-	table. If there is no need to monitor the changes of the target

-	property, using the OneWay binding mode avoids the overhead of the

-	TwoWay binding mode.</li>

-

-	<li><tt>One Time</tt> bind causes changes to the source property

-	to the target property only at the startup, and any changes to the

-	source property are ignored once the control is filled with data the

-	first time.</li>

-

-	<li><tt>Two Way</tt> binding causes changes to either the source

-	property or the target property to automatically update the other. This

-	type of binding is appropriate for editable forms or other

-	fully-interactive UI scenarios. All properties default to <tt>TwoWay</tt>

-	binding.</li>

-

-</ul>

-

-<h3><a name="databinding_03"></a>Creating a Data Binding</h3>

-

-<p>In XWT project, you establish a data binding using the Binding

-object, and each binding usually has four components: binding target,

-target property, binding source, and a path to the source value to use.

-This section discusses how to set up a data binding.</p>

-

-<!-- 

-<p>First, create an XWT project named DataBinding, Creating UI like

-below.</p>

-

-<pre>

-<span class="XMLElementTag">&lt;Shell</span> <span class="XMLAttrTag">xmlns</span>=<span

-	class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:x</span>=<span

-	class="XMLAttrValue">"http://www.eclipse.org/xwt"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:y</span>=<span

-	class="XMLAttrValue">"clr-namespace:org.eclipse.xwt.tests.databinding"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">Size</span>=<span

-	class="XMLAttrValue">"400, 300"</span><span class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Shell.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;GridLayout</span> <span class="XMLAttrTag">numColumns</span>=<span

-	class="XMLAttrValue">"3"</span> <span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Shell.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span

-	class="XMLAttrTag">text</span>=<span class="XMLAttrValue">"Name"</span> <span

-	class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Text</span> <span

-	class="XMLAttrTag">x:style</span>=<span class="XMLAttrValue">"BORDER"</span><span

-	class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;Text.layoutData&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;GridData</span> <span class="XMLAttrTag">horizontalAlignment</span>=<span

-	class="XMLAttrValue">"FILL"</span> <span class="XMLAttrTag">grabExcessHorizontalSpace</span>=<span

-	class="XMLAttrValue">"true"</span> <span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Text.layoutData&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Text&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;Label.layoutData&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;GridData</span> <span class="XMLAttrTag">horizontalAlignment</span>=<span

-	class="XMLAttrValue">"FILL"</span> <span class="XMLAttrTag">grabExcessHorizontalSpace</span>=<span

-	class="XMLAttrValue">"true"</span> <span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Label.layoutData&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Label&gt;</span>

-<span class="XMLElementTag">&lt;/Shell&gt;</span>

-</pre>

-

-<p>The code shows the UI like the following presentation.</p>

-<p><img src="images/" /></p>

-

-

-<p>The next step, based on above code, enrich it like following.</p>

-

- -->

-

-

-<pre>

-<span class="XMLElementTag">&lt;Shell</span> <span class="XMLAttrTag">xmlns</span>=<span

-	class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:x</span>=<span

-	class="XMLAttrValue">"http://www.eclipse.org/xwt"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:y</span>=<span

-	class="XMLAttrValue">"clr-namespace:org.eclipse.xwt.tests.databinding"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">Size</span>=<span

-	class="XMLAttrValue">"400, 300"</span> <span class="XMLAttrTag">DataContext</span>=<span

-	class="XMLAttrValue">"{StaticResource myData}"</span><span

-	class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Shell.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;GridLayout</span> <span class="XMLAttrTag">numColumns</span>=<span

-	class="XMLAttrValue">"3"</span> <span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Shell.layout&gt;</span>

-	

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;x:Shell.Resources&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;y:Person</span> <span class="XMLAttrTag">x:Key</span>=<span

-	class="XMLAttrValue">"myData"</span> <span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/x:Shell.Resources&gt;</span>

-	

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span

-	class="XMLAttrTag">text</span>=<span class="XMLAttrValue">"Name"</span> <span

-	class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Text</span> <span

-	class="XMLAttrTag">x:style</span>=<span class="XMLAttrValue">"BORDER"</span> <span

-	class="XMLAttrTag">text</span>=<span class="XMLAttrValue">"{Binding Path=name}"</span><span

-	class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;Text.layoutData&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;GridData</span> <span class="XMLAttrTag">horizontalAlignment</span>=<span

-	class="XMLAttrValue">"FILL"</span> <span class="XMLAttrTag">grabExcessHorizontalSpace</span>=<span

-	class="XMLAttrValue">"true"</span> <span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;/Text.layoutData&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Text&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span

-	class="XMLAttrTag">text</span>=<span class="XMLAttrValue">"{Binding Path=name}"</span><span

-	class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;Label.layoutData&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;GridData</span> <span class="XMLAttrTag">horizontalAlignment</span>=<span

-	class="XMLAttrValue">"FILL"</span> <span class="XMLAttrTag">grabExcessHorizontalSpace</span>=<span

-	class="XMLAttrValue">"true"</span> <span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;/Label.layoutData&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Label&gt;</span>

-<span class="XMLElementTag">&lt;/Shell&gt;</span>

-</pre>

-

-<p>Notice that in the previous example, the binding source is

-specified by setting the text property on the Text element. To

-reiterate, the binding source object is necessary components of a

-binding. Therefore, without the binding source object being specified,

-the binding would do nothing.</p>

-<p>we associate a new Person object in Shell to a key "myData" to a

-property initialization.</p>

-<pre>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;x:Shell.Resources&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;y:Person</span> <span class="XMLAttrTag">x:Key</span>=<span

-	class="XMLAttrValue">"myData"</span> <span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/x:Shell.Resources&gt;</span>

-</pre>

-

-<p>But you must define the DataContext first, then the data binding

-can works.</p>

-

-<pre>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">DataContext</span>=<span

-	class="XMLAttrValue">"{StaticResource myData}"</span>

-</pre>

-

-<p>In this example we specify the binding source by setting the

-source property directly on the binding declaration of Text and Label.

-There are several ways to specify the binding source object. Also can

-using one property on a parent element is useful when you are binding

-multiple properties to the same source.</p>

-

-<p>If your binding source is an object, you use the Path property to

-specify the value to use for your binding. If you are binding to XML

-data, you use the XPath property to specify the value. In some cases, it

-may be applicable to use the Path property event when your data is XML.</p>

-

-<p>Here we associate the property value of the Person object to Text

-and Label. So keep synchronously the value of Text and Label. Please see

-the following codes.</p>

-

-<pre>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Text</span> <span

-	class="XMLAttrTag">x:style</span>=<span class="XMLAttrValue">"BORDER"</span> <span

-	class="XMLAttrTag">text</span>=<span class="XMLAttrValue">"{Binding Path=name}"</span><span

-	class="XMLElementTag">&gt;</span>

-	

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span

-	class="XMLAttrTag">text</span>=<span class="XMLAttrValue">"{Binding Path=name}"</span><span

-	class="XMLElementTag">&gt;</span>

-</pre>

-

-<p>Notice that the Path value <tt>name</tt> is declared in the Person class.</p>

-

-<!--  

-<p>Click preview to view the UI or right click DataBinding.xwt,

-select 'Open dialog' to see UI. This code shows the string in Label

-binds the string of Text. When you change the string in Text, the

-content of Label changed synchronously.</p>

-<p><img src="images/" /></p>

--->

-

-<h3><a name="databinding_04"></a>Specifying the path expression of

-data binding</h3>

-<p>Notice that in the previous example, the binding source is

-specified by setting the <tt>DataContext</tt> property on the Shell

-element. The Text and Label inherits the DataContext value from the

-Shell, which is its parent element. Here the binding path <tt>name</tt>

-is declared in the Person class. So the binding target can find the

-binding source directly. But in some case, the binding source is not the

-associated class, in XWT, there is a another solutions: specifying the

-path expression of the data binding.</p>

-

-<p>For example, in an application we associate a Company object in

-Shell to a key "myData".</p>

-

-<pre>

-<span class="XMLElementTag">&lt;Shell</span> 

-&nbsp;&nbsp;&nbsp;&nbsp;...

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">DataContext</span>=<span

-	class="XMLAttrValue">"{StaticResource myData}"</span><span

-	class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;...

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Shell.Resources&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;y:Company</span> <span class="XMLAttrTag">x:Key</span>=<span

-	class="XMLAttrValue">"myData"</span><span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Shell.Resources&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;...

-<span class="XMLElementTag">&lt;/Shell&gt;</span>

-</pre>

-

-<p>There are three object class: Company, Person and Address. The

-Address object contains a string city. And the <tt>address</tt> is

-initialized in Person constructor.</p>

-<p>Person:</p>

-<pre>

-<span class="JavaKeyword">public class</span> Person {

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="JavaKeyword">private</span> Address <span

-	class="JavaMember">address</span>;

-

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="JavaKeyword">public</span> Person() {

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="JavaMember">address</span> = <span

-	class="JavaKeyword">new</span> Address();

-&nbsp;&nbsp;&nbsp;&nbsp;}

-&nbsp;&nbsp;&nbsp;&nbsp;...

-}

-</pre>

-<p>In Company class, there instance a Person type variable <tt>manager</tt>.</p>

-<p>Company:</p>

-<pre>

-<span class="JavaKeyword">public class</span> Company {

-&nbsp;&nbsp;&nbsp;&nbsp;...

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="JavaKeyword">private</span> Person <span

-	class="JavaMember">manager</span> = <span class="JavaKeyword">new</span> Person();

-&nbsp;&nbsp;&nbsp;&nbsp;...

-}

-</pre>

-

-<p>Now, if the user wants to create a Text in Shell and bind the

-value to the city member, XWT supplies a simple way of path expression 

-to set in the Path property value of Binding as <tt>manager.address.city</tt>, See

-the code below.</p>

-

-<pre>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Text</span> <span

-	class="XMLAttrTag">x:style</span>=<span class="XMLAttrValue">"BORDER"</span> <span

-	class="XMLAttrTag">text</span>=<span class="XMLAttrValue">"{Binding Path=manager.address.city}"</span><span

-	class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;Text.layoutData&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;GridData</span> <span class="XMLAttrTag">horizontalAlignment</span>=<span

-	class="XMLAttrValue">"FILL"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLAttrTag">grabExcessHorizontalSpace</span>=<span

-	class="XMLAttrValue">"true"</span><span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;/Text.layoutData&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Text&gt;</span>

-</pre>

-<!-- 

-<p>In XWT, it also support path expression of data binding. If your

-binding source is an object, you can use the Path property to specify

-the value to use for your binding. For example, if you want binding the

-city of the manager of a company, which is the data context of the

-window. you can specify the path as "manager.address.city".</p>

-

-<p><img src="images/mac-feature_22.png" /></p>

- -->

-

-<!-- 

-<h3>Binding to Collections</h3>

-

-<p>A binding source object can be treated either as a single object

-of which the properties contain data or as a data collection of

-polymorphic objects that are often grouped together (such as the result

-of a query to a database). So far we've only discussed binding to single

-objects, however, binding to a data collection is a common scenario. For

-example, a common scenario is to use an ItemsControl such as a

-ListViewer or TableViewer to display a data collection.</p>

-

-

-

-<h3><a name="databinding_05"></a>Based on JFace Data binding</h3>

-

-

-

-<pre>

-<span class="XMLElementTag">&lt;Composite</span> 

-&nbsp;&nbsp;&nbsp;&nbsp;...

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">DataContext</span>=<span

-	class="XMLAttrValue">"{StaticResource myCompany}"</span><span

-	class="XMLElementTag">&gt;</span> 

-&nbsp;&nbsp;&nbsp;&nbsp;...

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;x:Composite.Resources&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;j:Company</span> <span class="XMLAttrTag">x:Key</span>=<span

-	class="XMLAttrValue">"myCompany"</span><span class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;j:Company.employees&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;j:Employee</span> <span class="XMLAttrTag">Name</span>=<span

-	class="XMLAttrValue">"Thomas"</span> <span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;j:Employee</span> <span class="XMLAttrTag">Name</span>=<span

-	class="XMLAttrValue">"Jin"</span> <span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;/j:Company.employees&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;/j:Company&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/x:Composite.Resources&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;ListViewer</span> <span

-	class="XMLAttrTag">input</span>=<span class="XMLAttrValue">"{Binding Path=employees}"</span><span

-	class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/ListViewer&gt;</span>

-<span class="XMLElementTag">&lt;/Composite&gt;</span>

-</pre>

- -->

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-</body>

-<p><img src="../../cpy.png" /></p>

-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/concepts/element_naming_and_finding/index.html b/org.eclipse.xwt.doc.user/concepts/element_naming_and_finding/index.html
deleted file mode 100644
index 78db361..0000000
--- a/org.eclipse.xwt.doc.user/concepts/element_naming_and_finding/index.html
+++ /dev/null
@@ -1,163 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

-

-<html>

-<link href="../../book.css" rel="stylesheet" type="text/css" />

-<head>

-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>Element naming and finding</title>

-</head>

-

-<body>

-<h1>Naming and Element finding</h1>

-<p>Naming a UI component is used to find an element by a unique name

-in UI structure tree. This concept is used both in Java class by

-programming and in XML via Control Binding concept.</p>

-<p>The name must be in unique in a scope, named as &quot;Named

-scope&quot;. The named scope corresponds with an XWT resource file.</p>

-<h2>Finding in Java</h2>

-<p>XWT uses x:Name property or Name property to name a component.

-This section will show how to name an element and how to find an element

-by its name in Java class.</p>

-

-<p>In the example below, we will create a Label named Message and a

-Button.</p>

-<p>XAML:</p>

-

-<pre>

-<span class="XMLElementTag">&lt;Shell</span> <span class="XMLAttrTag">xmlns</span>=<span

-	class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:x</span>=<span

-	class="XMLAttrValue">"http://www.eclipse.org/xwt"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">x:Class</span>=<span

-	class="XMLAttrValue">"org.eclipse.xwt.tests.name.Name_x"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">text</span>=<span

-	class="XMLAttrValue">"NameT test"</span><span class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Shell.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;GridLayout</span> <span class="XMLAttrTag">numColumns</span>=<span

-	class="XMLAttrValue">"2"</span> <span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Shell.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span

-	class="XMLAttrTag">Name</span>=<span class="XMLAttrValue">"Message"</span> <span

-	class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Button</span> <span

-	class="XMLAttrTag">SelectionEvent</span>=<span class="XMLAttrValue">"handleButton"</span> <span

-	class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"Click Here"</span> <span

-	class="XMLElementTag">/&gt;</span>

-<span class="XMLElementTag">&lt;/Shell&gt;</span>

-</pre>

-

-<p>Consider the example above, the Label gets a name "Message", and

-set the contents of the button with string "Click Here". Then we add an

-event handling here by SelectionEvent property and named the event

-"handleButton". In the rendered window, when we click the button, the

-handleButton tries to find the Label. If it works, dialog "Name works"

-will pop-up. Otherwise, an error dialog "Label message is not found"

-will open instead. Please see the Java code below.</p>

-

-<p>Java:</p>

-<pre>

-<span class="JavaKeyword">protected void</span> handleButton(Event event) {

-&nbsp;&nbsp;&nbsp;&nbsp;Label message = (Label) XWT.findElementByName(event.widget, "Message");

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="JavaKeyword">if</span> (message == null) {

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageDialog.openError(XWT.findShell(event.<span

-	class="JavaMember">widget</span>), <span class="JavaString">"Test Name"</span>, <span

-	class="JavaString">"Label message is not found"</span>);

-&nbsp;&nbsp;&nbsp;&nbsp;} <span class="JavaKeyword">else</span> {

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageDialog.openInformation(XWT.findShell(event.<span

-	class="JavaMember">widget</span>), <span class="JavaString">"Test Name"</span>, <span

-	class="JavaString">"Name works."</span>);

-&nbsp;&nbsp;&nbsp;&nbsp;}

-}

-</pre>

-

-<p>The first argument of findElementByName() indicates the start

-point of search. Precisely, the search starts with its NamedScope. If

-the name is not find in the current NamedScope, the search will proceed

-in its parent NamedScope. The &quot;null&quot; will be returned if the

-name is not found in the entire tree structure.<br>

-</p>

-<h2>Element Finding</h2>

-<p>In XWT XML, an element also can be found by its name. It mostly

-used in control binding. Control binding is used to establish a

-connection among two or more UI elements.</p>

-

-<pre>

-<span class="XMLElementTag">&lt;Shell</span> <span class="XMLAttrTag">xmlns</span>=<span

-	class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:x</span>=<span

-	class="XMLAttrValue">"http://www.eclipse.org/xwt"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">x:Class</span>=<span

-	class="XMLAttrValue">"org.eclipse.xwt.tests.layout.FormLayout_Test"</span><span

-	class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Shell.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;FormLayout /&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Shell.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Group</span> <span

-	class="XMLAttrTag">text</span>=<span class="XMLAttrValue">"layout"</span><span

-	class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;Group.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;FormLayout /&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;/Group.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;Group.layoutData&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;GridData</span> <span class="XMLAttrTag">horizontalAlignment</span>=<span

-	class="XMLAttrValue">"FILL"</span> <span class="XMLAttrTag">verticalAlignment</span>=<span

-	class="XMLAttrValue">"FILL"</span><span class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;/GridData&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;/Group.layoutData&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;Button</span> <span class="XMLAttrTag">x:Name</span>=<span

-	class="XMLAttrValue">"Button1"</span> <span class="XMLAttrTag">text</span>=<span

-	class="XMLAttrValue">"button1"</span><span class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;Button.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;FormData</span> <span class="XMLAttrTag">top</span>=<span

-	class="XMLAttrValue">"10, 10"</span> <span class="XMLAttrTag">left</span>=<span

-	class="XMLAttrValue">"0, 10"</span> <span class="XMLAttrTag">bottom</span>=<span

-	class="XMLAttrValue">"30, 0"</span> <span class="XMLAttrTag">right</span>=<span

-	class="XMLAttrValue">"40, 0"</span> <span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;/Button.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;/Button&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;Button</span> <span class="XMLAttrTag">text</span>=<span

-	class="XMLAttrValue">"button2"</span><span class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;Button.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;FormData</span> <span class="XMLAttrTag">top</span>=<span

-	class="XMLAttrValue">"{Binding ElementName=Button1}, 10"</span> <span

-	class="XMLAttrTag">left</span>=<span class="XMLAttrValue">"0, 0"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLAttrTag">bottom</span>=<span class="XMLAttrValue">"40, 0"</span> <span

-	class="XMLAttrTag">right</span>=<span class="XMLAttrValue">"40, 0"</span> <span

-	class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;/Button.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;/Button&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Group&gt;</span>

-<span class="XMLElementTag">&lt;/Shell&gt;</span>

-</pre>

-

-<p>Consider the above example, it start to search from <tt>top="{Binding

-ElementName=Button1}</tt>, it try to find the element named <tt>Button1</tt>

-in the current NamedScope, if not found, the search will proceed in its

-parent NamedScope. If the element is exist in the tree structure and it

-has the correct settings. the <tt>top</tt> property of the second button

-synchronized with <tt>Button1</tt>, Or the code will show error.</p>

-

-

-</body>

-<p><img src="../../cpy.png" /></p>

-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/concepts/extensibility/index.html b/org.eclipse.xwt.doc.user/concepts/extensibility/index.html
deleted file mode 100644
index 0024b63..0000000
--- a/org.eclipse.xwt.doc.user/concepts/extensibility/index.html
+++ /dev/null
@@ -1,129 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

-

-<html>

-<link href="../../book.css" rel="stylesheet" type="text/css" />

-<head>

-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>Extensibility</title>

-</head>

-

-<body>

-<h1>Extensibility</h1>

-<p>The following topic relate to extensibility in XWT. There are two

-types of extensibility: Support of new kind of user-defined UI element

-and Support register IMetaclass factory via API or EP.</p>

-

-<ul>

-	<li><b>User-defined UI Element</b>: The user-defined UI element

-	can be used directly in XWT when the customer respects the SWT standard

-	signature with two arguments: Composite/Widget parent and Style.</li>

-	<li><b>IMetaclass factory</b>: The IMetaclass factory is used to

-	create some special IMetaclass, which takes care of the UI creation.</li>

-</ul>

-

-<h3>User-defined UI Element</h3>

-<p>XWT support user-defined UI element which is extends from

-Composite class or other SWT class. The following is a user defined

-button.</p>

-<p>XWT XML:</p>

-<pre>

-<span class="XMLElementTag">&lt;j:UserControl</span> <span

-	class="XMLAttrTag">xmlns</span>=<span class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:x</span>=<span

-	class="XMLAttrValue">"http://www.eclipse.org/xwt"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:j</span>=<span

-	class="XMLAttrValue">"clr-namespace:org.eclipse.xwt.tests.usercontrol"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">x:Class</span>=<span

-	class="XMLAttrValue">"org.eclipse.xwt.tests.usercontrol.UserControl"</span><span

-	class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;...	

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Button</span> text="Hello, world" <span

-	class="XMLElementTag">/&gt;</span>

-<span class="XMLElementTag">&lt;/j:UserControl&gt;</span>

-</pre>

-

-<p>java:</p>

-

-<pre>

-<span class="JavaKeyword">public class</span> UserControl extends Composite {

-

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="JavaKeyword">public</span> UserControl(Composite parent, <span

-	class="JavaKeyword">int</span> style) {

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="JavaKeyword">super</span>(parent, style);

-&nbsp;&nbsp;&nbsp;&nbsp;}

-}

-</pre>

-

-<p>The defined element can be used directly in XWT. In XWT XML, only

-need to declare the application class path and name in the place where

-you want like the following code.</p>

-

-<!-- 

-<p>Please see the example below to show you the User-defined UI

-element. The customized UI &quot;UserControl&quot; contains a Button

-with a selection event.</p>

-

-<p><img src="images/mac-feature_20.png" /></p>

-

-<p>Now integrate the above example into a new XWT component

-directly. See the screenshot below.</p>

-<p><img src="images/mac-feature_10.png" /></p>

- -->

-

-<pre>

-<span class="XMLElementTag">&lt;Composite</span> <span

-	class="XMLAttrTag">xmlns</span>=<span class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:x</span>=<span

-	class="XMLAttrValue">"http://www.eclipse.org/xwt"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:y</span>=<span

-	class="XMLAttrValue">"clr-namespace:org.eclipse.xwt.tests.usercontrol"</span><span

-	class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Composite.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;GridLayout</span> <span class="XMLAttrTag">numColumns</span>=<span

-	class="XMLAttrValue">"2"</span><span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Composite.layout&gt;</span>	

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;y:UserControl/&gt;</span>

-<span class="XMLElementTag">&lt;/Composite&gt;</span>

-</pre>

-

-<h3>IMetaclass factory</h3>

-<p>XWT provide another way to registrate user defined component:

-IMetaclass Factory. The IMetaclass factory is used to create some

-special IMetaclass, Metaclass class implement IMetaclass interface. User

-can define component by a special Metaclass. Compared with User-defined

-UI Element, these component no need to extends from any SWT class.</p>

-

-

-******************** Sample ********************

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-</body>

-<p><img src="../../cpy.png" /></p>

-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/concepts/internationalization/index.html b/org.eclipse.xwt.doc.user/concepts/internationalization/index.html
deleted file mode 100644
index 3ceb2db..0000000
--- a/org.eclipse.xwt.doc.user/concepts/internationalization/index.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

-

-<html>

-<link href="../../book.css" rel="stylesheet" type="text/css" />

-<head>

-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>Internationalization</title>

-</head>

-

-<body>

-<h1>Internationalization</h1>

-<p>Internationalization is the process of making software that

-accommodates differences in language, culture and hardware.

-Internationalization presents users with a consistent look, feel and

-functionality across different language editions of a product.</p>

-

-<p>The XWT is internationalization support, in this section, we will

-move with an example to understand internationalization.</p>

-

-<p>First thing we will require for internationalization is a set of

-properties files. Each file contains a key/value pair for each message

-that you expect your application to present. The naming format for these

-files are <b>*.properties</b>.</p>

-<p><image src="images/i18n_05.png" /></p>

-

-<p>Besides, There need to a special java file for bind. The <b>BUNDLE_NAME</b>

-is a String type which specifies the path of the message.properties

-file. And also the key "title" in <b>*.Properties</b> file should be

-declaration here as String.</p>

-<p><image src="images/i18n_06.png" /></p>

-

-<p>The text of the button is specified as "x:Static

-java:Message.title". It bind to the value of title which defined in

-message.properties file.</p>

-<p><image src="images/i18n_04.png" /></p>

-

-</body>

-<p><img src="../../cpy.png" /></p>

-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/concepts/markup_language/index.html b/org.eclipse.xwt.doc.user/concepts/markup_language/index.html
deleted file mode 100644
index 8d58fa5..0000000
--- a/org.eclipse.xwt.doc.user/concepts/markup_language/index.html
+++ /dev/null
@@ -1,333 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

-

-<html>

-<link href="../../book.css" rel="stylesheet" type="text/css" />

-<head>

-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>Markup-language</title>

-</head>

-

-<body>

-<h1>Markup language</h1>

-<p>Markup languages are designed for the processing, definition and

-presentation of text. XWT provides an Extensible UI Markup Language for

-declarative Eclipse application programming.</p>

-

-<ul>

-	<li><a href="#language_01">A Declarative language with Flow

-	Control Support</a></li>

-	<li><a href="#language_02">XWT Object Elements</a></li>

-	<li><a href="#language_03">Setting Properties</a></li>

-	<li><a href="#language_06">Reference Values and Markup

-	Extensions</li>

-	<li><a href="#language_07">Case and Whitespace</a></li>

-

-	<li><a href="#language_04">XWT Root Elements and XML

-	Namespaces</a></li>

-	<li><a href="#language_05">Events and XWT Code-behind</a></li>

-</ul>

-

-

-<h3><a name="language_01"></a>A Declarative language with Flow

-Control Support</h3>

-<p>XWT simplifies creating a UI for Java programming. You can create

-visible UI elements in the XWT declarative markup, and then separate the

-UI definition from the run-time logic by using code-behind files. The

-ability to mix code with markup in XWT is important because XML by

-itself is declarative, and does not really suggest a model for flow

-control.</p>

-

-<p>The following XWT example shows how markup is necessary to create

-a button as part of a UI.</p>

-

-<pre>

-<span class="XMLElementTag">&lt;Shell.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;GridLayout</span> <span

-	class="XMLAttrTag">numColumns</span>=<span class="XMLAttrValue">"1"</span> <span

-	class="XMLElementTag">/&gt;</span>

-<span class="XMLElementTag">&lt;/Shell.layout&gt;</span>

-<span class="XMLElementTag">&lt;Button</span> <span class="XMLAttrTag">text</span>=<span

-	class="XMLAttrValue">"Hello"</span> <span class="XMLElementTag">/&gt;</span>

-</pre>

-

-<h3><a name="language_02"></a> XWT Object Elements</h3>

-<p>XWT has a set of rules that map object elements into classes or

-structures, attributes into properties or events, and XML namespaces to

-Java packages.</p>

-

-<p>The preceding example specified two object elements: <span

-	class="XMLElementTag">&lt;GridLayout /&gt;</span> and <span

-	class="XMLElementTag">&lt;Button /&gt;</span>. The string <span

-	class="XMLElementTag">GridLayout</span> and <span class="XMLElementTag">Button</span>

-each map to the name of a class that is defined by XWT and is part of

-the XWT assemblies. When you specify an object element tag, you create

-an instruction for XWT processing to create a new instance of the named

-class when your XWT page is loaded. Each instance is created by calling

-the default constructor of the underlying class or structure and storing

-the result. To be usable as an object element in XWT, the class or

-structure must expose a public default (parameterless) constructor.</p>

-

-<h3><a name="language_03"></a>Setting Properties</h3>

-<p>Properties in XWT are set by setting properties on an object

-element, using a variety of possible syntaxes. Which syntaxes can be

-used for a given property will vary, based on the characteristics of the

-property that you are setting.</p>

-

-<p>By setting values of properties, you add features or

-characteristics to object element. The initial state of the underlying

-object instance for an object element is based on the default

-constructor behavior. Typically, your application will use something

-other than a completely default instance of any given object.</p>

-

-<p><b>Attribute Syntax</b></p>

-

-<p>In XWT, properties can often be expressed as attributes.

-Attribute syntax is the most streamlined property setting syntax and

-will be the most intuitive syntax to use for developers that have used

-markup languages in the past. For example, the following markup creates

-a button that with push style, as well as display text specified as <span

-	class="XMLAttrTag">test</span>.</p>

-

-<pre>

-<span class="XMLElementTag">&lt;Button</span> <span class="XMLAttrTag">x:style</span>=<span

-	class="XMLAttrValue">"PUSH"</span> <span class="XMLAttrTag">text</span>=<span

-	class="XMLAttrValue">"Hello, world!"</span> <span class="XMLElementTag">/&gt;</span>

-</pre>

-

-

-<p><b>Property Element Syntax</b></p>

-<p>For some properties of an object element, attribute syntax is not

-possible, because the object or information necessary to provide the

-property value cannot be adequately expressed as a simple string. For

-these cases, a different syntax known as property element syntax can be

-used. Property element syntax sets the referenced property of the

-containing element with the content of the tag. Generally, the content

-is an object of the type that the property takes as its value. The

-syntax for property element itself is &lt;TypeName.Property&gt;. After

-specifying content, you must close the property element with a closing

-tag just like any other element (with syntax

-&lt;/TypeName.Property&gt;). For properties where both attribute and

-property element syntax are supported, the two syntaxes generally have

-the same result, although subtleties such as whitespace handling can

-vary slightly between syntaxes. The following example is using property

-element syntax for <span class="XMLAttrTag">text</span> properties of

-the Button.</p>

-

-

-<pre>

-<span class="XMLElementTag">&lt;Button&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Button.text&gt;</span> 

-&nbsp;&nbsp;&nbsp;&nbsp;This is a Button

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Button.text&gt;</span>

-<span class="XMLElementTag">&lt;/Button&gt;</span>

-</pre>

-

-<h3><a name="language_06"></a>Reference Values and Markup

-Extensions</h3>

-<p>Markup extensions are an XWT concept. In attribute syntax, curly

-braces ({ and }) indicate a markup extension usage. This usage directs

-the XWT processing to escape from the general treatment of attribute

-values are either a literal string or directly string-convertible value.</p>

-

-<p>When properties take a reference type value, these properties

-will often require either property element syntax (which always creates

-a new instance) or an object reference through a markup extension. A

-markup extension usage can potentially return an existing instance, and

-thus can be more versatile or might incur less object overhead.</p>

-

-<p>When a markup extension is used to provide an attribute value,

-the attribute value should instead be provided by the logic within the

-backing class for the relevant markup extension. The most common markup

-extensions used in XWT application programming are <b>Binding</b>, used

-for data binding expressions and the resource reference <b>StaticResource</b>

-and <b>DynamicResource</b>. By using markup extension, you can use

-attribute syntax to provide reference values for properties even if that

-the property does not support an attribute syntax for direct object

-instantiation, or enable specific behavior that defers the general

-behavior of the requirement that XAML properties must be filled by

-values of the property's type.</p>

-

-<p>For instance, the following example sets the value of text

-property using attribute syntax. The text binds a Person class.</p>

-

-

-<pre>

-<span class="XMLElementTag">&lt;Shell</span> 

-&nbsp;&nbsp;&nbsp;&nbsp;...

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">DataContext</span>=<span

-	class="XMLAttrValue">"{StaticResource myData}"</span><span

-	class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;...

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;x:Shell.Resources&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;y:Person</span> <span class="XMLAttrTag">x:Key</span>=<span

-	class="XMLAttrValue">"myData"</span><span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/x:Shell.Resources&gt;</span>

-

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Text</span> <span

-	class="XMLAttrTag">x:style</span>=<span class="XMLAttrValue">"BORDER"</span> <span

-	class="XMLAttrTag">text</span>=<span class="XMLAttrValue">"{Binding Path=name}"</span><span

-	class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;Text.layoutData&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;GridData</span> <span class="XMLAttrTag">horizontalAlignment</span>=<span

-	class="XMLAttrValue">"FILL"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLAttrTag">grabExcessHorizontalSpace</span>=<span

-	class="XMLAttrValue">"true"</span><span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;/Text.layoutData&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Text&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;...

-<span class="XMLElementTag">&lt;/Shell&gt;</span>

-</pre>

-

-<h3><a name="language_07"></a>Case and Whitespace</h3>

-<p>XWT is in general case sensitive. Object elements and property elements must all be specified by using the proper case when

-compared by name to the underlying type in programming language, or to a member

-of a type. There is one exception for attribute name. The first letter and only the first letter of attribute name is not case-sensitive.</p>

-

-<p>The values for attributes are not always case sensitive. Case

-sensitivity for values will depend on the type converter behavior

-associated with the property that takes the value, or the property value

-type. For instance, properties that take Boolean type can take

-either true or True as equivalent values, but only because the default

-string type conversion for Boolean already permits these as equivalents.

-</p>

-

-<p>XWT processors and serializers will ignore or drop all

-non-significant whitespace, and will normalize any significant

-whitespace. This behavior is generally only of consequence when you

-specify strings within XWT content properties. In simplest terms, XWT

-converts space, line feed and tab characters into spaces and then

-preserves one space if found at either end of a contiguous string.</p>

-

-<h3><a name="language_04"></a>XWT Root Elements and XML Namespaces</h3>

-<p>An XWT file must have only one root element, in order to be both a

-well-formed XML file and a valid XWT file. Typically you should choose

-an element that is part of the application model. The following example

-shows the root element of a typical XWT file with the root element

-Composite.</p>

-

-

-<pre>

-<span class="XMLElementTag">&lt;Composite</span> <span

-	class="XMLAttrTag">xmlns</span>=<span class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:x</span>=<span

-	class="XMLAttrValue">"http://www.eclipse.org/xwt"</span><span

-	class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;...

-<span class="XMLElementTag">&lt;/Composite&gt;</span>

-</pre>

-

-<p>The root element also contains the attributes <b>xmlns</b> and <b>xmlns:x</b>.

-These attributes indicate to an XWT processor which XML namespaces

-contain the element definitions for elements that the markup will

-reference. The <b>xmlns</b> attribute specifically indicates the default

-XML namespace. Within the default XML namespace, object elements in the

-markup can be specified without a prefix. The default XML namespace is

-mapped to the namespace

-&quot;http://www.eclipse.org/xwt/presentation&quot;. The <b>xmlns:x</b>

-attribute indicates an additional XML namespace, which maps the XWT

-language namespace &quot;http://www.eclipse.org/xwt&quot;. Required

-language components defined by the XWT specification are prefixed by <b>x:</b>

-when referenced in the markup of a file with this mapping.</p>

-

-

-<p><b>The x:Prefix</b></p>

-<p>In the previous root element example, the prefix <b>x:</b> was

-used to map the XWT XML namespace

-&quot;http://www.eclipse.org/xwt&quot;. This <b>x:</b> prefix will be

-used to map the XWT XML namespace in the templates for projects. The <b>x:</b>prefix

-XML namespace contain several programming constructs that you will use

-quite frequently in your XWT. The following is a listing of the most

-common x:prefix namespace programming constructs you will use:</p>

-

-<ul>

-	<li>x:Key: Sets a unique key for each resource in a DataContext.</li>

-	<li>x:Class: Specifies the CLR namespace and class name for the

-	class that provides code-behind for an XWT page. You must have such a

-	class to support code-behind, and it is for this reason that you almost

-	always see x: mapped, even if there are no resources.</li>

-	<li>x:Name: Specifies a object name for the instance.</li>

-	<li>x:Null: <strong>null</strong> in Java.</li>

-	<li>x:Static: Enables a value reference that gets a static value

-	that is not otherwise an XWT-compatible property.</li>

-	<li>x:Type: Constructs a Type reference based on a type name.</li>

-	<li>x:Array: Provides general support for arrays of objects in

-	XWT.</li>

-	<li>x:Style: Specifies the type of a instance.</li>

-</ul>

-

-<h3><a name="language_05"></a>Events and XWT Code-behind</h3>

-<p>Most XWT applications consist of both markup and code-behind.

-Within a project, the XWT is written as .xwt file and a synchronized

-java class is used to write a code-behind file. When an XWT file is

-loaded, the location of the XWT code-behind file for each XWT page is

-identified by specifying a namespace and class as the x:Class attribute

-of the root element of the XWT page.</p>

-

-<p>In the examples so far, you have seen several buttons, but none

-of these buttons had any logical behavior associated with them yet. The

-primary application-level mechanism for adding a behavior for an object

-element is to use an existing event of the element class, and to write a

-specific handler for that event that is invoked when that event is

-raised at run time. The event name and the name of the handler to use

-are specified in the markup, whereas the code that implements your

-handler is defined in the code-behind.</p>

-

-<p>XWT:</p>

-<pre>

-<span class="XMLElementTag">&lt;Shell</span> <span class="XMLAttrTag">xmlns</span>=<span

-	class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:x</span>=<span

-	class="XMLAttrValue">"http://www.eclipse.org/xwt"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">x:Class</span>=<span

-	class="XMLAttrValue">"org.eclipse.xwt.tests.events.ButtonHandler"</span><span

-	class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Shell.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;GridLayout</span> <span class="XMLAttrTag">numColumns</span>=<span

-	class="XMLAttrValue">"2"</span><span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Shell.layout&gt;</span>	

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Button</span> <span

-	class="XMLAttrTag">text</span>=<span class="XMLAttrValue">"Hello, world"</span> <span

-	class="XMLAttrTag">SelectionEvent</span>=<span class="XMLAttrValue">"selection"</span><span

-	class="XMLElementTag">/&gt;</span>

-<span class="XMLElementTag">&lt;/Shell&gt;</span>

-</pre>

-

-<p>Java:</p>

-<pre>

-<span class="JavaKeyword">protected void</span> selection(Event event) {

-&nbsp;&nbsp;&nbsp;&nbsp;Button button = (Button) event.<span

-	class="JavaMember">widget</span>;

-&nbsp;&nbsp;&nbsp;&nbsp;button.setText(<span class="JavaString">"OK"</span>);

-}

-</pre>

-

-<p><b>Event Attribute Syntax</b></p>

-

-<p>When you specify behavior through events in markup, you typically

-use attribute syntax to attach handlers. The object element where the

-event attribute is specified becomes the instance that listens for the

-event and calls the handler. The name of the specific event you want to

-handle is the attribute name. The attribute value is the method name of

-the handler you will define. You must then provide the handler

-implementation in code-behind, with the handler being based on the

-delegate for that event.</p>

-

-

-

-

-

-

-

-

-

-

-

-</body>

-<p><img src="../../cpy.png" /></p>

-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/concepts/overview/index.html b/org.eclipse.xwt.doc.user/concepts/overview/index.html
deleted file mode 100644
index 11a037b..0000000
--- a/org.eclipse.xwt.doc.user/concepts/overview/index.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

-

-<html>

-<link href="../../book.css" rel="stylesheet" type="text/css" />

-<head>

-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>Project</title>

-</head>

-

-<body>

-<h1>Project</h1>

-

-<ul>

-	<li><a href="#project_01">What is XWT?</a></li>

-	<li><a href="#project_02">Benefices of XWT for eclipse</a></li>

-	<li><a href="#project_03">Architecture</a></li>

-</ul>

-

-<h3><a name="project_01"></a>What is XWT?</h3>

-<p>Declarative UI is a new programming paradigm, which is widely  used in Web application development. In Eclipse, UI development in Java is  the only proposed solution. This solution presents several drawbacks:</p>

-<ul>

-  <li>High technology pre-requisite as UI developer</li>

-  <li>Difficult to separate UI appearance and business logic</li>

-  <li>Poor reusability</li>

-  <li>Limitation of the dynamic UI support</li>

-  <li>Very hard to integrate with development tools </li>

-</ul>

-<p align="center"><img src="images/XWTPosition.png" width="800" height="435"></p>

-<p>XWT is designed specially for eclipse to resolve these  problems by providing a foundation infrastructure. It is a UI framework based on an extensible markup language for  application development in declarative programming paradism.

-  It adopts directly SWT/JFace UI model as XML serialization model. It uses in fact a direct mapping approach between  XML grammar and UI runtime libraries.</p>

-<p>XWT simplifies UI programming. You can create visible UI elements

-in the declarative XML markup with a physical separation of the UI

-definition from the run-time logic. An XML based declarative language is

-very intuitive for creating interfaces ranging from prototype to

-production, especially for people with a background in web design and

-technologies. Unlike most other markup languages, XWT directly

-represents the instantiation of managed objects.</p>

-<p align="center"><img src="images/XWTComponent.png" width="627" height="388"></p>

-<p>XWT is XML UI for eclipse.</p>

-<ul>

-	<li>XWT is a XML dialect</li>

-	<li>Designed for human-editable and tooling</li>

-	<li>Dynamic mapping with programming model</li>

-	<li>Complete declarative UI framework integrated natively with SWT/JFace</li>

-    <li>Powerful Declarative Data Binding solution on top of JFace data binding</li>

-    <li>Reusable data presentation component</li>

-</ul>

-

-<h3><a name="project_02"></a>Benefices of XWT for eclipse</h3>

-<p>The main benefices of XWT are following:</p>

-<ul>

-	<li>More human-readable and light-weight markup without ambiguity

-	between properties and child type</li>

-	<li>High Extensible</li>

-	<li>Well defined and complete specification</li>

-	<li>Mature and Generic Declarative UI solution</li>

-</ul>

-

-<h3><a name="project_03"></a>Architecture</h3>

-

-<div align="center"><img src="images/architecture.png" />

-  

-</div>

-<ul>

-	<li>SWT Model as XWT Model<br />

-	- This model comes from the JavaBean reflection and additional models

-	to enhance the limitations of SWT API.</li>

-	<li>This model can be changed to another</li>

-	<li>XWT provides more concepts on top of XML<br />

-	<ul>

-		<li>Resource separation between UI and Event handling</li>

-		<li>Dynamic mapping with UI Model and programming language</li>

-		<li>Resource management</li>

-		<li>Markup extensions</li>

-		<li>Binding expression language</li>

-	</ul>

-	</li>

-</ul>

-

-</body>

-<p><img src="../../cpy.png" /></p>

-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/concepts/style/index.html b/org.eclipse.xwt.doc.user/concepts/style/index.html
deleted file mode 100644
index 72bc3e5..0000000
--- a/org.eclipse.xwt.doc.user/concepts/style/index.html
+++ /dev/null
@@ -1,129 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

-

-<html>

-<link href="../../book.css" rel="stylesheet" type="text/css" />

-<head>

-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>Style</title>

-</head>

-

-<body>

-<h1>Style</h1>

-

-<p>All the controls in XWT are support the feature "Style". By using

-styles, user can define a common appearance such as fonts, colors and

-images to a control.</p>

-

-<!--  

-<p>Style define the pieces that mark up a control respectively. All

-the control in XWT are support this feature. By using styles, you can

-modify the default values of properties that are set on the control to

-which the style is applied. For example, you can select a style object

-where you can define a common appearance such as fonts, colors and

-images.</p>

--->

-

-<!-- 

-<p>These style properties can be overridden by the values that are

-set on the control itself. For example, if you set the background color

-to red in the style of a Label, the Label will appear red when it is

-drawn on the live display area.</p>

-

-<p><img src="images/mac-feature_11.png" /></p>

- -->

-

-<p>The controls in XWT have a default style, users can change it by

-setting Style property. For example, we can set a Control's background

-red with the following code.</p>

-

-<!-- 

-<pre>

-<span class="XMLElementTag">&lt;Composite</span> <span

-	class="XMLAttrTag">xmlns</span>=<span class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:x</span>=<span

-	class="XMLAttrValue">"http://www.eclipse.org/xwt"</span><span

-	class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Composite.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;GridLayout</span> <span class="XMLAttrTag">numColumns</span>=<span

-	class="XMLAttrValue">"2"</span><span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Composite.layout&gt;</span>	

-	

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Composite.Resources&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;Style</span> <span class="XMLAttrTag">x:Key</span>=<span

-	class="XMLAttrValue">"myStyle"</span><span class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;Setter</span> <span class="XMLAttrTag">Property</span>=<span

-	class="XMLAttrValue">"Background"</span> <span class="XMLAttrTag">Value</span>=<span

-	class="XMLAttrValue">"Red"</span><span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;/Style&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Composite.Resources&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span

-	class="XMLAttrTag">Style</span>=<span class="XMLAttrValue">"{StaticResource myStyle}"</span> <span

-	class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"Hello"</span><span

-	class="XMLElementTag">/&gt;</span>

-<span class="XMLElementTag">&lt;/Composite&gt;</span>

-</pre>

- -->

-<pre>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Composite.Resources&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;Style</span> <span class="XMLAttrTag">x:Key</span>=<span

-	class="XMLAttrValue">"myStyle"</span><span class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;Setter</span> <span class="XMLAttrTag">Property</span>=<span

-	class="XMLAttrValue">"Background"</span> <span class="XMLAttrTag">Value</span>=<span

-	class="XMLAttrValue">"Red"</span><span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;/Style&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Composite.Resources&gt;</span>

-</pre>

-

-<p>The above code is only the defined resource, can do nothing

-without controls. <tt>x:Key="myStyle"</tt> is used to define the

-Resourcekey for this requested resource. User can specifying the value

-of the ResourceKey property by using StaticeResource. There list a Label

-for example.</p>

-

-<pre>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span

-	class="XMLAttrTag">Style</span>=<span class="XMLAttrValue">"{StaticResource myStyle}"</span> <span

-	class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"Hello"</span><span

-	class="XMLElementTag">/&gt;</span>

-</pre>

-***************photos******************

-<p><img src="images/" /></p>

-

-<p>The Style feature also can be applied for the integrated

-applications. There is a little different from the above sample. In the

-above sample, Style resource is defined stand along with a key. Any

-controls can use it with the key. But here, the resource is bind to

-define the integrated applications.</p>

-

-<pre>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Composite.Resources&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Style</span> <span class="XMLAttrTag">TargetType</span>=<span class="XMLAttrValue">"{x:Type j:MyUserControl}"</span><span class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Setter</span> <span class="XMLAttrTag">Property</span>=<span class="XMLAttrValue">"Background"</span> <span class="XMLAttrTag">Value</span>=<span class="XMLAttrValue">"Red"</span><span class="XMLElementTag">/&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Style&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Composite.Resources&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;...

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;j:MyUserControl/&gt;</span>

-</pre>

-

-

-

-<p><img src="images/" /></p>

-<!-- 

-<p>Otherwise, it is possible to define a style for a specific type.

-It is applied to all UI elements of this type under the UI tree

-structure. For example, MyUserControl component is a Label with text

-"Hello, world". We can embed it into MyUserControl_default_x_Customized

-component with a style.</p>

-

-<p><img src="images/mac-feature_13.png" /></p>

- -->

-</body>

-<p><img src="../../cpy.png" /></p>

-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/features/index.html b/org.eclipse.xwt.doc.user/features/index.html
deleted file mode 100644
index 21d5332..0000000
--- a/org.eclipse.xwt.doc.user/features/index.html
+++ /dev/null
@@ -1,484 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

-

-<html>

-<link href="../book.css" rel="stylesheet" type="text/css" />

-<style type="text/css">

-<!--

-.style1 {

-	color: #FF0000;

-	font-style: italic;

-	font-weight: bold;

-}

--->

-</style>

-<head>

-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>Features</title>

-</head>

-

-<body>

-<h1>Features</h1>

-<p>The following is the new features of XWT.</p>

-<table border="0" width="80%" cellpadding="10" cellspacing="0">

-	<tr>

-		<td colspan="2">

-		<hr />

-		</td>

-	</tr>

-	<tr id="itemname1">

-		<td width="30%" valign="top" align="left">

-		<h3>XWT comes to e4</h3>

-		</td>

-		<td width="70%" valign="top">

-		<p>The XWT declarative widget framework has been added to the e4

-		incubator. XWT allows you to specify UI components declaratively, thus

-		separating the design and structure of your UI from specific

-		implementation details. Repetitive boilerplate SWT code is generated

-		automatically from the xml-based UI declaration, thus reducing

-		development cost, improving UI consistency, and opening the door to

-		skinning or otherwise customized rendering of an application.</p>

-

-		<p>XWT supports all standard SWT layouts such as FillLayout,

-		FormLayout, GridLayout, RowLayout, StackLayout. It also handles all

-		SWT events and an additional loaded event. The loaded event occurs

-		when the resource file is loaded, and is used by the control class for

-		the purpose of initialization. A convenience method <tt>InitializeComponent</tt>

-		can be used in your control class for the same purpose.</p>

-		</td>

-	</tr>

-

-

-	<!-- 

-	<tr>

-		<td colspan="2">

-		<hr />

-		</td>

-	</tr>

-	<tr id="itemname1">

-		<td width="30%" valign="top" align="left">

-		<h3>Support of all SWT widgets</h3>

-		</td>

-		<td width="70%" valign="top">

-		<p>The XWT supports all standard layouts such as FillLayout,

-		FormLayout, GridLayout, RowLayout, StackLayout.</p>

-		<p>It also handles all SWT events and two additional events

-		"Initialized" and "loaded". "Initialized" is the event occurs when the

-		UI is initialized and "Loaded" is the event occurs when the window or

-		page is load.</p>

-		</td>

-	</tr>

- -->

-	<tr>

-		<td colspan="2">

-		<hr />

-		</td>

-	</tr>

-	<tr id="itemname2">

-		<td width="30%" valign="top" align="left">

-		<h3>Dynamic event handling</h3>

-		</td>

-		<td width="70%" valign="top">

-		<p>The association between UI widgets and your control class is

-		setup automatically during UI loading. In the following example, the

-		event <tt>SelectionEvent</tt> is handled by the method <tt>selection</tt>

-		of <tt>ButtonHandler</tt>.</p>

-		<p><img src="images/mac-feature_01.png" /></p>

-

-		<p>Here is the class implements the event handler.</p>

-		<p><img src="images/mac-feature_03.png" /></p>

-

-		<p>When click the button, the content be changed to "OK".</p>

-		<p><img src="images/mac-feature_07.png" /></p>

-		</td>

-	</tr>

-

-	<tr>

-		<td colspan="2">

-		<hr />

-		</td>

-	</tr>

-	<tr id="itemname3">

-		<td width="30%" valign="top" align="left">

-		<h3>Support for JFaces viewers</h3>

-		</td>

-		<td width="70%" valign="top">

-		<p>XWT supports JFace ListViewer and TableViewer. The following

-		Viewer binds to a Company object. The "input" data must be an array or

-		a collection.</p>

-		<p>Here is an example using ListViewer.</p>

-		<p><img src="images/mac-feature_06.png" /></p>

-

-		<p>Below is a TableViewer example with the definition of two table

-		columns.</p>

-		<p><img src="images/mac-feature_02.png" /></p>

-		</td>

-

-

-	</tr>

-

-	<tr>

-		<td colspan="2">

-		<hr />

-		</td>

-	</tr>

-	<tr id="itemname4">

-		<td width="30%" valign="top" align="left">

-		<h3>custom widget support</h3>

-		</td>

-		<td width="70%" valign="top">

-		<p>XWT supports directly integrating user-defined SWT widgets in

-		your declarative UI. In the following example, a customized <tt>UserControl</tt>

-		widget contains a button that responds to a selection event.</p>

-

-		<p><img src="images/mac-feature_20.png" /></p>

-

-		<p>Now we can integrate the custom control directly into a new XWT

-		component:</p>

-		<p><img src="images/mac-feature_10.png" /></p>

-

-		<p>Here is the result.</p>

-		<p><img src="images/mac-feature_07.png" /></p>

-		</td>

-	</tr>

-

-	<tr>

-		<td colspan="2">

-		<hr />

-		</td>

-	</tr>

-	<tr id="itemname5">

-		<td width="30%" valign="top" align="left">

-		<h3>Specifying and customizing style</h3>

-		</td>

-		<td width="70%" valign="top">

-		<p>All controls in XWT can have an additional <tt>style</tt>

-		property. This property specifies a style object that defines widget

-		properties such as fonts, colors and images.</p>

-		<p>In the following example, we define a style with a background

-		color of red, and apply it to a label control:</p>

-		<p><img src="images/mac-feature_11.png" /></p>

-		<p>You can also define a style for a specific widget type. It is

-		applied to all UI elements of this type under a given UI tree

-		structure.</p>

-

-		<p>In the following example, the MyUserControl component consists

-		of a Label with text "Hello, world". We embed it into a customized

-		component and declare a style to be applied to components of that

-		type.</p>

-

-		<p><img src="images/mac-feature_13.png" /></p>

-		<p>In addition to embedded XML-based style, XWT provides a

-		customizable styling mechanism. Styling can be applied at several

-		levels:</p>

-		<ul>

-			<li>Application</li>

-			<li>Resource view</li>

-			<li>UI element</li>

-		</ul>

-		<p>Integration with e4 CSS is already provided as one of the

-		standard styling solutions.</p>

-

-		</td>

-	</tr>

-

-

-	<tr>

-		<td colspan="2">

-		<hr />

-		</td>

-	</tr>

-	<tr>

-		<td width="30%" valign="top" align="left"><b>JFace data

-		binding support</b></td>

-		<td width="70%" valign="top">

-		<p>XWT directly supports JFace data bindings. Each node in the XWT

-		tree structure has a data context. If a node does not have a data

-		context specification, it inherits the data context of its parent. The

-		data binding expression relies on the data context of a node in the UI

-		tree.</p>

-		<p>In the example below, a JFace list viewer is bound to the set

-		of employees in a Company object.</p>

-

-		<p><img src="images/mac-feature_29.png" /></p>

-		</td>

-	</tr>

-	<tr>

-		<td colspan="2">

-		<hr />

-		</td>

-	</tr>

-	<!-- 

-	<tr>

-		<td width="30%" valign="top" align="left"><b>Data Binding and

-		Data context in tree node</b></td>

-		<td width="70%" valign="top">

-		<p>In XWT, each node in the UI tree structure has a data context.

-		If a node has not a data context specification, it inherits the data

-		context of his parent. The data binding expression in a property

-		relies on the data context of Node.</p>

-		<p>&nbsp;</p>

-		</td>

-	</tr>

-	<tr>

-		<td colspan="2">

-		<hr />

-		</td>

-	</tr>

-	 -->

-	<tr>

-		<td width="30%" valign="top" align="left"><b>Data binding

-		path expression support</b></td>

-		<td width="70%" valign="top">

-		<p>The presentation of data through references can be expressed in

-		path expression.</p>

-		<p>The following example will show the city of the manager of a

-		company, which is the data context of Window. The path is specified as

-		&quot;manager.address.city&quot;.</p>

-		<p><img src="images/mac-feature_22.png" /></p>

-		</td>

-	</tr>

-	<tr>

-		<td colspan="2">

-		<hr />

-		</td>

-	</tr>

-	<tr>

-		<td width="30%" valign="top" align="left"><b>Debug tracking</b></td>

-		<td width="70%" valign="top">

-		<p>Data binding requires a consistent configuration between the

-		data model, binding expression and UI structure. In real world

-		applications, this relationship quickly becomes complex and

-		trouble-shooting can be onerous without tooling support. XWT supports

-		an option to print out the UI element tree structure with the

-		associated data context and data binding expression. This option

-		facilitates identification and resolution of data binding bugs.</p>

-		<p>Take the example above, add an event button. Run the project.</p>

-		<p><img src="images/mac-feature_25.png" /></p>

-		<p>Click the button. The log is displayed in the Console.</p>

-		<p><img src="images/mac-feature_26.png" /></p>

-		</td>

-	</tr>

-

-	<tr>

-		<td colspan="2">

-		<hr />

-		</td>

-	</tr>

-	<tr id="itemname7">

-		<td width="30%" valign="top" align="left">

-		<h3>Command support for MenuItem and Button</h3>

-		</td>

-		<td width="70%" valign="top">

-		<p>A command is behavior associated with a widget selection event.

-		It is defined on <tt>Button</tt> and <tt>MenuItem</tt>, for example

-		the action "Open" or "Close" to open or close a window. Commands must

-		be registered programmatically with the framework:</p>

-		<p><tt>XWT.registerCommand(&quot;&lt;command's

-		name&gt;&quot;, aCommand)</tt></p>

-		<p>&nbsp;</p>

-		</td>

-	</tr>

-

-	<!-- 

-	<tr>

-		<td colspan="2">

-		<hr />

-		</td>

-	</tr>

-	<tr id="itemname8">

-		<td width="30%" valign="top" align="left">

-		<h3>Reusable UI Component</h3>

-		</td>

-		<td width="70%" valign="top">

-		<p>Reusable UI Component is a UI component that can be used

-		directly without modification and adaptation.</p>

-		</td>

-	</tr>

-

-

-	<tr>

-		<td colspan="2">

-		<hr />

-		</td>

-	</tr>

-	<tr id="itemname9">

-		<td width="30%" valign="top" align="left">

-		<h3>Key binding</h3>

-		</td>

-		<td width="70%" valign="top">

-		<p>The Key Binding specifies keyboard shortcuts for an action. In

-		XWT, it corresponds to the accelerator property of SWT.</p>

-		</td>

-	</tr>

- -->

-	<tr>

-		<td colspan="2">

-		<hr />

-		</td>

-	</tr>

-

-

-	<tr id="itemname10">

-		<td width="30%" valign="top" align="left">

-		<h3>High extensibility</h3>

-		</td>

-		<td width="70%" valign="top"></td>

-	</tr>

-	<tr>

-		<td colspan="2">

-		<hr />

-		</td>

-	</tr>

-	<tr>

-		<td width="30%" valign="top" align="left"><b>&nbsp;&nbsp;&nbsp;&nbsp;Metaclass</b></td>

-		<td width="70%" valign="top">

-		<p>Metaclass is the converter between SWT and XWT XML. All the SWT

-		component is encapsulated as a Metaclass which is used to load the

-		.XWT files.</p>

-		</td>

-	</tr>

-	<tr>

-		<td colspan="2">

-		<hr />

-		</td>

-	</tr>

-	<tr>

-		<td width="30%" valign="top" align="left"><b>&nbsp;&nbsp;&nbsp;&nbsp;MetaclassFactory</b></td>

-		<td width="70%" valign="top">

-		<p>The IMetaclass factory is used to create some special

-		IMetaclass, which takes care of the UI creation.</p>

-		</td>

-	</tr>

-	<!-- 

-	<tr>

-		<td colspan="2">

-		<hr />

-		</td>

-	</tr>

-	<tr>

-		<td width="30%" valign="top" align="left"><b>&nbsp;&nbsp;&nbsp;&nbsp;Logger</b></td>

-		<td width="70%" valign="top"></td>

-	</tr>

-	<tr>

-		<td colspan="2">

-		<hr />

-		</td>

-	</tr>

-	<tr>

-		<td width="30%" valign="top" align="left"><b>&nbsp;&nbsp;&nbsp;&nbsp;Data Converter</b></td>

-		<td width="70%" valign="top"></td>

-	</tr>

-	<tr>

-		<td colspan="2">

-		<hr />

-		</td>

-	</tr>

-	<tr>

-		<td width="30%" valign="top" align="left"><b>&nbsp;&nbsp;&nbsp;&nbsp;Command</b></td>

-		<td width="70%" valign="top"></td>

-	</tr>

-	 -->

-	<tr>

-		<td colspan="2">

-		<hr />

-		</td>

-	</tr>

-

-

-	<tr id="itemname11">

-		<td width="30%" valign="top" align="left">

-		<h3>Internationalization</h3>

-		</td>

-		<td width="70%" valign="top">

-		<p>XWT includes simple internationalization support in the current

-		release.</p>

-		<p>In the example below, the content of the button is specified by

-		the "title" value of a messages.properties file.</p>

-		<p><img src="images/mac-feature_23.png" /></p>

-		</td>

-	</tr>

-

-  <tr>

-    <td colspan="2"><hr /></td>

-  </tr>

-

-<tr id="itemname10">

-		<td width="30%" valign="top" align="left">

-		<h1>M3</h1>

-		</td>

-		<td width="70%" valign="top"></td>

-	</tr>

-

-  <tr>

-    <td colspan="2"><hr />

-      <h2>XWT</h2>

-      <hr /></td>

-  </tr>

-  <tr id="itemname">

-    <td width="30%" valign="top" align="left"><b>Multilple Data Binding models</b></td>

-    <td width="70%" valign="top"><p>Data binding depends closely on a particular data model. For Java,         the first class data binding model is Java Beans, which is already supported in previous versions of XWT.         An enterprise application also deals with other data models such as XML, EMF Ecore, RDBMS,         Web services, etc. A flexible and customizable solution in XWT is absolutely necessary to support         all possible data models. </p>

-      <p>In M3, XWT introduces a new concept to handle some different types of data than Java POJOs.         This concept relies on the classes IDataProvider, IBindingContext and IDataBinding. Each data type         should implement these three types to integrate their data model with XWT's data binding engine.         The Java Bean data binding is mainly handled by the class ObjectDataProvider. </p>

-    <p>A new plugin "org.eclipse.xwt.xml" has been added to implement the XML data provider.</p>    </td>

-  </tr>

-  <tr>

-    <td colspan="2"><hr /></td>

-  </tr>

-  <tr id="itemname2">

-    <td width="30%" valign="top" align="left"><strong>Widget Binding</strong></td>

-    <td width="70%" valign="top"><p>Widget binding is a kind of data binding between UI Widgets.       In <a href="http://en.wikipedia.org/wiki/Model-view-controller">MVC</a> terms,       every widget can be used not only as a <em>view</em>, but also as <em>model</em>. Proper synchronization       between UI widgets provides a powerful declarative solution to simply handle dynamic       aspects of UI design and to get rid of bulky listeners in Java code. </p>

-      <p>This solution relies on the new features of JFace data binding for SWT.</p>

-      <p>The following code is used to bind the selection state of  two Buttons on the property "Selection". </p>

-      <p><img src="images/code.png" width="655" height="76" /></p>

-      <p align="center"><img src="images/WidgetBinding1.png" width="319" height="289" /></p>

-    <p align="left">The widgets in the left column are in sync with the respective widgets in the right column. </p>

-    <p align="center"><img src="images/WidgetBinding2.png" width="319" height="289" /></p>

-    <p>A single widget can also be bound to multiple widgets. In the above case,       the text of two Combo instances is synchronized with the "background"       and "foreground" of a Label. When the selection of either Combo changes,       the label appearance gets updated immediately. </p></td>

-  </tr>

-  <tr>

-    <td colspan="2"><hr/>    </td>

-  </tr>

-  <tr id="itemname3">

-    <td width="30%" valign="top" align="left"><b>Advanced UI Mediator wizard</b></td>

-    <td width="70%" valign="top"><p>Mediator is a new concept added to XWT in this milestone.       It is in fact a data Presentation Unit. It handles the interactions between users and        application data via graphic UI. It consists of up to four elements: </p>

-      <ul>

-        <li>View, graphic UI</li>

-        <li>Controller, the agent to deal with UI event and application logic</li>

-        <li>Data context, the type of data to show</li>

-        <li>Meta-model service, provides the structure of mediator</li>

-      </ul>

-      <p>Each mediator can be plugged in anywhere under the same kind of data context.</p>

-      <p>The wizard "UI Component" has been renamed to "UI Mediator". The wizard has be         improved to create a Mediator from a selected class, which is used as the data context.</p>

-      <p><img src="images/wizard1.png" width="600" height="442" />    

-    <p>

-    

-    <p align="center"><img src="images/wizard2.png" width="491" height="456" />        

-    <p align="justify">This wizard will create a mediator with three files: XML view, Java       controller and Meta-model service in Java, and it will generate the default content based on the data context model.    

-    <p align="justify">Here is an example of a person object with attributes: name, age, nationality and a reference address.    

-    <p align="center"><img src="images/PersonDemo.png" width="410" height="179" /></td>

-  </tr>

-  <tr>

-    <td colspan="2"><hr />    </td>

-  </tr>

-  <tr id="itemname4">

-   <td width="30%" valign="top" align="left"><b>Data binding direction</b></td>

-    <td width="70%" valign="top"><p>Data flow of a binding can go from the view to the  model (for example, the source value changes when a user edits  the value of a Text) and/or from the model to the view (for example, your Text field gets updated with changes in the model). Date flow is controlled by a property &quot;Mode&quot; of type enumeration BindingMode:</p>

-      <ul>

-        <li><b>TwoWay </b>Moves changes, from either the bound control or the source of the binding, to one other in a bi-directional way. (This is the default mode.)</li>

-        <li><b>OneWay</b> Moves changes only from the source to the control. As changes occur in the source, the bound control's data is changed.</li>

-        <li><b>OneTime</b> Data is bound only at startup, and changes to the source are ignored once the control is filled with data the first time.</li>

-     </ul>

-     <p>The following example shows how to set the Mode property.</p>

-     <p align="center"><img src="images/BindingMode1.png" width="649" height="332" />     

-     <p align="center"><img src="images/BindingMode3.png"  /> 

-     </td>

-  </tr>

-  <tr>

-    <td colspan="2"><hr />    </td>

-  </tr>

-  <tr>

-    <td colspan="2">&nbsp;</td>

-  </tr>

-</table>

-</body>

-<p><img src="../cpy.png" /></p>

-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/getting_started/Event_Handling/index.html b/org.eclipse.xwt.doc.user/getting_started/Event_Handling/index.html
deleted file mode 100644
index 7ad75f8..0000000
--- a/org.eclipse.xwt.doc.user/getting_started/Event_Handling/index.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

-

-<html>

-<link href="../../book.css" rel="stylesheet" type="text/css" />

-<head>

-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>Event Handling</title>

-</head>

-

-<body>

-<h1>Event Handling</h1>

-<p>This example illustrates the key concept of XWT as markup declarative UI about the separation between UI appearance

-and event handling.</p>

-<p>Create an XWT project first (for more information, please see <a

-	href="..//hello_world/index.html">HelloWorld</a>), then new a button

-with text 'Click Me!'. The appearance is defined in XWT like below.</p>

-<pre class="code">

-<span class="XMLElementTag">&lt;Shell</span> <span class="XMLAttrTag">xmlns</span>=<span

-	class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>

-    <span class="XMLAttrTag">xmlns:x</span>=<span class="XMLAttrValue">"http://www.eclipse.org/xwt"</span>

-    <span class="XMLAttrTag">x:Class</span>=<span class="XMLAttrValue">"ui.EventHandler"</span><span

-	class="XMLElementTag">&gt;</span>

-    <span class="XMLElementTag">&lt;Shell.layout&gt;</span>

-       <span class="XMLElementTag">&lt;GridLayout/&gt;</span>

-    <span class="XMLElementTag">&lt;/Shell.layout&gt;</span>

-    <span class="XMLElementTag">&lt;Button</span> <span

-	class="XMLAttrTag">text</span>=<span class="XMLAttrValue">"Click Me!"</span><span

-	class="XMLElementTag">&gt;</span>

-    <span class="XMLElementTag">&lt;/Button&gt;</span>

-<span class="XMLElementTag">&lt;/Shell&gt;</span>

-</pre>

-

-<p>Save the file, and click <image src="images/hello_08.png" /> to

-view it. It running as below.</p>

-<image src="images/event_01.png" />

-

-<p>Next, we add an event handler to the button.</p>

-<pre>

-<span class="XMLElementTag">&lt;Button</span> <span class="XMLAttrTag">text</span>=<span

-	class="XMLAttrValue">"Hello, World!"</span> <span class="XMLAttrTag">SelectionEvent</span>=<span

-	class="XMLAttrValue">"clickButton"</span><span class="XMLElementTag">&gt;</span>

-</pre>

-<p>Focus on the event handler code and click <image

-	src="images/event_03.png" />, the corresponding java method will

-generate automatically. We can add event in the method directly.</p>

-

-<pre>

-<span class="JavaKeyWord">import</span> org.eclipse.swt.Event;

-<span class="JavaKeyWord">import</span> org.eclipse.swt.Button;

-

-<span class="JavaKeyWord">public class</span> EventHandler {

-	<span class="JavaKeyWord">public void</span> clickButton(Event event) {

-		Button button = (Button)event.<span class="JavaMember">widget</span>;

-		button.setText(<span class="JavaString">"Hello World!"</span>);

-	}

-}

-</pre>

-

-<p>Save the file and click <image src="images/hello_08.png" />. The

-view is rendered as following.</p>

-<image src="images/event_01.png" />

-<p>Click the button to invoke the method clickButton, the content of

-the button changes to 'Hello, World!'.</p>

-<image src="images/event_02.png" />

-

-

-</body>

-<p><img src="../../cpy.png" /></p>

-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/getting_started/hello_world/index.html b/org.eclipse.xwt.doc.user/getting_started/hello_world/index.html
deleted file mode 100644
index fdaab13..0000000
--- a/org.eclipse.xwt.doc.user/getting_started/hello_world/index.html
+++ /dev/null
@@ -1,126 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

-

-<html>

-<link href="../../book.css" rel="stylesheet" type="text/css" />

-<head>

-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>Hello World</title>

-</head>

-

-<body>

-<h1>Hello World</h1>

-

-<p>In this topic will show you how to get started with XWT by

-developing a "Hello World" step by step.</p>

-

-<ul>

-	<li><a href="#hello_01">How to create a Mediator</a></li>

-	<li><a href="#hello_02">How to use XWT editor to develop UI

-	appearance</a></li>

-	<li><a href="#hello_03">How to load and open the Mediator

-	in API</a></li>

-	<li><a href="#hello_04">Download</a></li>

-</ul>

-

-<h3><a name="hello_01"></a>How to create a Mediator</h3>

-<p>First of all, we need to create a Java project to host our

-application. If there is already one, you can reuse it without any

-additional configuration. In this sample, we name our Java project

-"Hello".</p>

-

-<p>Then, right click the Java project, select

-the context menu New &rarr; Other... &rarr; XWT &rarr; New Mediator and click Next button.</p>

-<p align="center"><image src="image/hello_01.png" /></p>

-

-<p>In the pop-up dialog, fill the Package as 'demo' and Name as

-'Hello'.</p>

-<p align="center"><image src="image/hello_02.png" /></p>

-

-<p>Click the Finish button. We create a Mediator which consists of the two files: </p>

-<ul>

-  <li>Hello.xwt</li>

-  <li>Hello.java</li>

-</ul>

-<p>The Hello.xwt is a UI resource file, and Hello.java is the associated Java class to handle relative events. </p>

-<p>Now our project looks like below.</p>

-<p align="center"><image src="image/hello_03.png" /></p>

-

-

-<h3><a name="hello_02"></a>How to use XWT editor to develop UI

-appearance</h3>

-<p>Open Hello.xwt file, switch on the &ldquo;Source&rdquo; mode edition in the XWT  UI editor to modify directly the XML code. This editor provides a  powerful code completion and palette tools to help the UI design. </p>

-

-<p>Modify the XWT code as below:</p>

-<pre>

-<span class="XMLElementTag">&lt;Composite</span> <span

-	class="XMLAttrTag">xmlns</span>=<span class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:x</span>=<span

-	class="XMLAttrValue">"http://www.eclipse.org/xwt"</span> <span

-	class="XMLAttrTag">xmlns:j</span>=<span class="XMLAttrValue">"clr-namespace:demo"</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">x:Class</span>=<span

-	class="XMLAttrValue">"demo.Hello"</span><span class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Composite.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="XMLElementTag">&lt;FillLayout /&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Composite.layout&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Button</span> <span

-	class="XMLAttrTag">text</span>=<span class="XMLAttrValue">"Hello, world!"</span><span

-	class="XMLElementTag">&gt;</span>

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Button&gt;</span>

-<span class="XMLElementTag">&lt;/Composite&gt;</span>

-</pre>

-

-<p>If you are a SWT developer, you can find the mapping from XML to SWT  library is direct 1-1. It gives the result as the corresponding code in  Java:</p>

-<pre>Composite composite = <span class="JavaKeyword">new</span> Composite(parent, SWT.NONE);

-composite.addLayout(<span class="JavaKeyword">new</span> FillLayout());

-Button button = <span class="JavaKeyword">new</span> Button(composite, SWT.NONE);

-button.setText(<span class="JavaString">"Hello, world!"</span>);

-</pre>

-<p>Save the file, and click <image src="image/hello_08.png" /> to

-view it. It running as below.</p>

-<image src="image/hello_04.png" />

-

-<h3><a name="hello_03"></a>How to load and open the Mediator in

-API</h3>

-<p>The load and open a Mediator in API is pretty straightforward.  We need call the services of the class XWT: load() or open() . </p>

-<p>Create a new Java class named &lsquo;Application&rsquo; with main method and you  can use the following codes to load and open our Mediator.</p>

-<pre>

-<span class="JavaKeyword">public class</span> Application {

-

-&nbsp;&nbsp;&nbsp;&nbsp;<span class="JavaKeyword">public static void</span> main(String[] argus){

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;URI content = Hello.class.getResource("Hello.xwt");

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Shell shell = XWT.load(content).getShell();

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.pack();

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.open();

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="JavaKeyword">while</span> (!shell.isDisposed()) {

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span

-	class="JavaKeyword">if</span> (!shell.getDisplay().readAndDispatch()) {

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.getDisplay().sleep();

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

-&nbsp;&nbsp;&nbsp;&nbsp;}

-}

-</pre>

-<p>Or simply </p>

-<pre><span class="JavaKeyword">public</span> <span class="JavaKeyword">class</span> Application {

-    <span class="JavaKeyword">public</span> <span class="JavaKeyword">static</span> <span class="JavaKeyword">void</span> main(String[] argus){

-        URI content = Hello.class.getResource(<span class="JavaString">"Hello.xwt"</span>);

-        <span class="JavaKeyword">try</span> {

-              XWT.open(content);

-        } <span class="JavaKeyword">catch</span> (Exception e) {

-              e.printStackTrace();

-        }

-    }

-}  </pre>

-<!-- 

-<p>Running the class and will get the following button.</p>

-<image src="image/hello_09.png" />

- -->

-<h3><a name="hello_04"></a>Download</h3>

-<p>This is the "HelloWorld" project, please click <a

-	href="download/HelloWorld.zip">here</a> for download.</p>

-

-</body>

-<p><img src="../../cpy.png" /></p>

-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/javadoc/allclasses-frame.html b/org.eclipse.xwt.doc.user/javadoc/allclasses-frame.html
deleted file mode 100644
index 4dae415..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/allclasses-frame.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:38 CET 2009 -->

-<TITLE>

-All Classes

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">

-

-

-</HEAD>

-

-<BODY BGCOLOR="white">

-<FONT size="+1" CLASS="FrameHeadingFont">

-<B>All Classes</B></FONT>

-<BR>

-

-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">

-<TR>

-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input" target="classFrame"><I>CanExecuteChangedListener</I></A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input" target="classFrame">CommandBinding</A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata" target="classFrame"><I>IBehavior</I></A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input" target="classFrame"><I>ICommand</I></A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt" target="classFrame"><I>IConstants</I></A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/IDataBindingProvider.html" title="interface in org.eclipse.xwt" target="classFrame"><I>IDataBindingProvider</I></A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata" target="classFrame"><I>IEvent</I></A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt" target="classFrame"><I>ILoadData</I></A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt" target="classFrame"><I>ILoadingContext</I></A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt" target="classFrame"><I>ILogger</I></A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata" target="classFrame"><I>IMetaclass</I></A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt" target="classFrame"><I>IMetaclassFactory</I></A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input" target="classFrame">InputBinding</A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata" target="classFrame"><I>IProperty</I></A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata" target="classFrame"><I>ISetPostAction</I></A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input" target="classFrame">KeyBinding</A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input" target="classFrame">KeyGesture</A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input" target="classFrame">ModifierKeys</A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input" target="classFrame">MouseAction</A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input" target="classFrame">MouseBinding</A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt" target="classFrame">ResourceDictionary</A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input" target="classFrame">RoutedCommand</A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt" target="classFrame">Tracking</A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt" target="classFrame">XWT</A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt" target="classFrame">XWTException</A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt" target="classFrame">XWTMaps</A>

-<BR>

-</FONT></TD>

-</TR>

-</TABLE>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/allclasses-noframe.html b/org.eclipse.xwt.doc.user/javadoc/allclasses-noframe.html
deleted file mode 100644
index 7281575..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/allclasses-noframe.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:38 CET 2009 -->

-<TITLE>

-All Classes

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">

-

-

-</HEAD>

-

-<BODY BGCOLOR="white">

-<FONT size="+1" CLASS="FrameHeadingFont">

-<B>All Classes</B></FONT>

-<BR>

-

-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">

-<TR>

-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input"><I>CanExecuteChangedListener</I></A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input">CommandBinding</A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata"><I>IBehavior</I></A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input"><I>ICommand</I></A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt"><I>IConstants</I></A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/IDataBindingProvider.html" title="interface in org.eclipse.xwt"><I>IDataBindingProvider</I></A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata"><I>IEvent</I></A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt"><I>ILoadData</I></A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt"><I>ILoadingContext</I></A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt"><I>ILogger</I></A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata"><I>IMetaclass</I></A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt"><I>IMetaclassFactory</I></A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata"><I>IProperty</I></A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata"><I>ISetPostAction</I></A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input">KeyBinding</A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input">MouseBinding</A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input">RoutedCommand</A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt">XWTException</A>

-<BR>

-<A HREF="org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt">XWTMaps</A>

-<BR>

-</FONT></TD>

-</TR>

-</TABLE>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/book.css b/org.eclipse.xwt.doc.user/javadoc/book.css
deleted file mode 100644
index d970350..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/book.css
+++ /dev/null
@@ -1,22 +0,0 @@
-span.control {

-  font-weight: bold;

-}

-

-span.name {

-  font-style: italic;

-}

-

-span.code {

-  font-family: monospace;

-}

-

-p.nav_footer {

-	font-weight: bold;

-}

-

-p.nav_footer a {

-	font-weight: bold;

-	font-style: italic;

-}

-

-@import "code.css";
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/javadoc/constant-values.html b/org.eclipse.xwt.doc.user/javadoc/constant-values.html
deleted file mode 100644
index 18b9291..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/constant-values.html
+++ /dev/null
@@ -1,302 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Constant Field Values

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Constant Field Values";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H1>

-Constant Field Values</H1>

-</CENTER>

-<HR SIZE="4" NOSHADE>

-<B>Contents</B><UL>

-<LI><A HREF="#org.eclipse">org.eclipse.*</A>

-</UL>

-

-<A NAME="org.eclipse"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left"><FONT SIZE="+2">

-org.eclipse.*</FONT></TH>

-</TR>

-</TABLE>

-

-<P>

-

-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="3">org.eclipse.xwt.<A HREF="org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<A NAME="org.eclipse.xwt.IConstants.XAML_BINDING"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">

-<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>

-<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_BINDING">XAML_BINDING</A></CODE></TD>

-<TD ALIGN="right"><CODE>"Binding"</CODE></TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<A NAME="org.eclipse.xwt.IConstants.XAML_CLR_ASSEMBLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">

-<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>

-<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_CLR_ASSEMBLY">XAML_CLR_ASSEMBLY</A></CODE></TD>

-<TD ALIGN="right"><CODE>"assembly="</CODE></TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<A NAME="org.eclipse.xwt.IConstants.XAML_CLR_NAMESPACE_PROTO"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">

-<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>

-<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_CLR_NAMESPACE_PROTO">XAML_CLR_NAMESPACE_PROTO</A></CODE></TD>

-<TD ALIGN="right"><CODE>"clr-namespace:"</CODE></TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<A NAME="org.eclipse.xwt.IConstants.XAML_COMMAND"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">

-<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>

-<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_COMMAND">XAML_COMMAND</A></CODE></TD>

-<TD ALIGN="right"><CODE>"Command"</CODE></TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<A NAME="org.eclipse.xwt.IConstants.XAML_DATACONTEXT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">

-<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>

-<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_DATACONTEXT">XAML_DATACONTEXT</A></CODE></TD>

-<TD ALIGN="right"><CODE>"DataContext"</CODE></TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<A NAME="org.eclipse.xwt.IConstants.XAML_DYNAMICRESOURCES"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">

-<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>

-<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_DYNAMICRESOURCES">XAML_DYNAMICRESOURCES</A></CODE></TD>

-<TD ALIGN="right"><CODE>"DynamicResource"</CODE></TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<A NAME="org.eclipse.xwt.IConstants.XAML_STATICRESOURCES"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">

-<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>

-<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_STATICRESOURCES">XAML_STATICRESOURCES</A></CODE></TD>

-<TD ALIGN="right"><CODE>"StaticResource"</CODE></TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<A NAME="org.eclipse.xwt.IConstants.XAML_X_ARRAY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">

-<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>

-<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_X_ARRAY">XAML_X_ARRAY</A></CODE></TD>

-<TD ALIGN="right"><CODE>"Array"</CODE></TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<A NAME="org.eclipse.xwt.IConstants.XAML_X_CLASS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">

-<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>

-<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_X_CLASS">XAML_X_CLASS</A></CODE></TD>

-<TD ALIGN="right"><CODE>"Class"</CODE></TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<A NAME="org.eclipse.xwt.IConstants.XAML_X_KEY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">

-<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>

-<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_X_KEY">XAML_X_KEY</A></CODE></TD>

-<TD ALIGN="right"><CODE>"Key"</CODE></TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<A NAME="org.eclipse.xwt.IConstants.XAML_X_NAME"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">

-<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>

-<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_X_NAME">XAML_X_NAME</A></CODE></TD>

-<TD ALIGN="right"><CODE>"Name"</CODE></TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<A NAME="org.eclipse.xwt.IConstants.XAML_X_NULL"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">

-<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>

-<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_X_NULL">XAML_X_NULL</A></CODE></TD>

-<TD ALIGN="right"><CODE>"Null"</CODE></TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<A NAME="org.eclipse.xwt.IConstants.XAML_X_SHARED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">

-<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>

-<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_X_SHARED">XAML_X_SHARED</A></CODE></TD>

-<TD ALIGN="right"><CODE>"Shared"</CODE></TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<A NAME="org.eclipse.xwt.IConstants.XAML_X_STATIC"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">

-<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>

-<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_X_STATIC">XAML_X_STATIC</A></CODE></TD>

-<TD ALIGN="right"><CODE>"Static"</CODE></TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<A NAME="org.eclipse.xwt.IConstants.XAML_X_STATIC_MEMBER"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">

-<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>

-<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_X_STATIC_MEMBER">XAML_X_STATIC_MEMBER</A></CODE></TD>

-<TD ALIGN="right"><CODE>"Member"</CODE></TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<A NAME="org.eclipse.xwt.IConstants.XAML_X_TARGET_TYPE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">

-<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>

-<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_X_TARGET_TYPE">XAML_X_TARGET_TYPE</A></CODE></TD>

-<TD ALIGN="right"><CODE>"TargetType"</CODE></TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<A NAME="org.eclipse.xwt.IConstants.XAML_X_TYPE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">

-<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>

-<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_X_TYPE">XAML_X_TYPE</A></CODE></TD>

-<TD ALIGN="right"><CODE>"Type"</CODE></TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<A NAME="org.eclipse.xwt.IConstants.XAML_X_TYPE_NAME"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">

-<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>

-<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_X_TYPE_NAME">XAML_X_TYPE_NAME</A></CODE></TD>

-<TD ALIGN="right"><CODE>"TypeName"</CODE></TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<A NAME="org.eclipse.xwt.IConstants.XML_NS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">

-<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>

-<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XML_NS">XML_NS</A></CODE></TD>

-<TD ALIGN="right"><CODE>"xmlns"</CODE></TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<A NAME="org.eclipse.xwt.IConstants.XWT_EXTENSION"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">

-<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>

-<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XWT_EXTENSION">XWT_EXTENSION</A></CODE></TD>

-<TD ALIGN="right"><CODE>"xwt"</CODE></TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<A NAME="org.eclipse.xwt.IConstants.XWT_EXTENSION_SUFFIX"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">

-<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>

-<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XWT_EXTENSION_SUFFIX">XWT_EXTENSION_SUFFIX</A></CODE></TD>

-<TD ALIGN="right"><CODE>".xwt"</CODE></TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<A NAME="org.eclipse.xwt.IConstants.XWT_NAMESPACE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">

-<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>

-<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XWT_NAMESPACE">XWT_NAMESPACE</A></CODE></TD>

-<TD ALIGN="right"><CODE>"http://www.eclipse.org/xwt/presentation"</CODE></TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<A NAME="org.eclipse.xwt.IConstants.XWT_X_NAMESPACE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">

-<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>

-<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XWT_X_NAMESPACE">XWT_X_NAMESPACE</A></CODE></TD>

-<TD ALIGN="right"><CODE>"http://www.eclipse.org/xwt"</CODE></TD>

-</TR>

-</FONT></TD>

-</TR>

-</TABLE>

-

-<P>

-

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/deprecated-list.html b/org.eclipse.xwt.doc.user/javadoc/deprecated-list.html
deleted file mode 100644
index 422b223..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/deprecated-list.html
+++ /dev/null
@@ -1,142 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:38 CET 2009 -->

-<TITLE>

-Deprecated List

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Deprecated List";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Deprecated API</B></H2>

-</CENTER>

-<HR SIZE="4" NOSHADE>

-<B>Contents</B><UL>

-</UL>

-

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/help-doc.html b/org.eclipse.xwt.doc.user/javadoc/help-doc.html
deleted file mode 100644
index 4e1baaa..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/help-doc.html
+++ /dev/null
@@ -1,219 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:38 CET 2009 -->

-<TITLE>

-API Help

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="API Help";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H1>

-How This API Document Is Organized</H1>

-</CENTER>

-This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.<H3>

-Overview</H3>

-<BLOCKQUOTE>

-

-<P>

-The <A HREF="overview-summary.html">Overview</A> page is the front page of this API document and provides a list of all packages with a summary for each.  This page can also contain an overall description of the set of packages.</BLOCKQUOTE>

-<H3>

-Package</H3>

-<BLOCKQUOTE>

-

-<P>

-Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:<UL>

-<LI>Interfaces (italic)<LI>Classes<LI>Enums<LI>Exceptions<LI>Errors<LI>Annotation Types</UL>

-</BLOCKQUOTE>

-<H3>

-Class/Interface</H3>

-<BLOCKQUOTE>

-

-<P>

-Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:<UL>

-<LI>Class inheritance diagram<LI>Direct Subclasses<LI>All Known Subinterfaces<LI>All Known Implementing Classes<LI>Class/interface declaration<LI>Class/interface description

-<P>

-<LI>Nested Class Summary<LI>Field Summary<LI>Constructor Summary<LI>Method Summary

-<P>

-<LI>Field Detail<LI>Constructor Detail<LI>Method Detail</UL>

-Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</BLOCKQUOTE>

-</BLOCKQUOTE>

-<H3>

-Annotation Type</H3>

-<BLOCKQUOTE>

-

-<P>

-Each annotation type has its own separate page with the following sections:<UL>

-<LI>Annotation Type declaration<LI>Annotation Type description<LI>Required Element Summary<LI>Optional Element Summary<LI>Element Detail</UL>

-</BLOCKQUOTE>

-</BLOCKQUOTE>

-<H3>

-Enum</H3>

-<BLOCKQUOTE>

-

-<P>

-Each enum has its own separate page with the following sections:<UL>

-<LI>Enum declaration<LI>Enum description<LI>Enum Constant Summary<LI>Enum Constant Detail</UL>

-</BLOCKQUOTE>

-<H3>

-Use</H3>

-<BLOCKQUOTE>

-Each documented package, class and interface has its own Use page.  This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A.  You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.</BLOCKQUOTE>

-<H3>

-Tree (Class Hierarchy)</H3>

-<BLOCKQUOTE>

-There is a <A HREF="overview-tree.html">Class Hierarchy</A> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.<UL>

-<LI>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.<LI>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</UL>

-</BLOCKQUOTE>

-<H3>

-Deprecated API</H3>

-<BLOCKQUOTE>

-The <A HREF="deprecated-list.html">Deprecated API</A> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</BLOCKQUOTE>

-<H3>

-Index</H3>

-<BLOCKQUOTE>

-The <A HREF="index-files/index-1.html">Index</A> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</BLOCKQUOTE>

-<H3>

-Prev/Next</H3>

-These links take you to the next or previous class, interface, package, or related page.<H3>

-Frames/No Frames</H3>

-These links show and hide the HTML frames.  All pages are available with or without frames.

-<P>

-<H3>

-Serialized Form</H3>

-Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.

-<P>

-<H3>

-Constant Field Values</H3>

-The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.

-<P>

-<FONT SIZE="-1">

-<EM>

-This help file applies to API documentation generated using the standard doclet.</EM>

-</FONT>

-<BR>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/index-files/index-1.html b/org.eclipse.xwt.doc.user/javadoc/index-files/index-1.html
deleted file mode 100644
index 8944f5d..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/index-files/index-1.html
+++ /dev/null
@@ -1,168 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-A-Index

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="A-Index";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV LETTER&nbsp;

-&nbsp;<A HREF="index-2.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-1.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-1.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-<A NAME="_A_"><!-- --></A><H2>

-<B>A</B></H2>

-<DL>

-<DT><A HREF="../org/eclipse/e4/xwt/metadata/ISetPostAction.html#action(java.lang.Object, org.eclipse.xwt.metadata.IProperty, java.lang.Object)"><B>action(Object, IProperty, Object)</B></A> - 

-Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata">ISetPostAction</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#addArrayProperty(org.eclipse.xwt.metadata.IProperty)"><B>addArrayProperty(IProperty)</B></A> - 

-Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>

-<DD>TODO

-<DT><A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html#addCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><B>addCanExecuteChangedListener(CanExecuteChangedListener)</B></A> - 

-Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input">CommandBinding</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/input/ICommand.html#addCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><B>addCanExecuteChangedListener(CanExecuteChangedListener)</B></A> - 

-Method in interface org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/input/RoutedCommand.html#addCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><B>addCanExecuteChangedListener(CanExecuteChangedListener)</B></A> - 

-Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input">RoutedCommand</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html#addExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><B>addExecuteChangedListener(CanExecuteChangedListener)</B></A> - 

-Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input">CommandBinding</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/ILogger.html#addMessage(java.lang.String, org.eclipse.xwt.Tracking)"><B>addMessage(String, Tracking)</B></A> - 

-Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#addProperty(org.eclipse.xwt.metadata.IProperty)"><B>addProperty(IProperty)</B></A> - 

-Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/metadata/IProperty.html#addSetPostAction(org.eclipse.xwt.metadata.ISetPostAction)"><B>addSetPostAction(ISetPostAction)</B></A> - 

-Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#addTracking(org.eclipse.xwt.Tracking)"><B>addTracking(Tracking)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Add a tracking option

-</DL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV LETTER&nbsp;

-&nbsp;<A HREF="index-2.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-1.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-1.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/index-files/index-10.html b/org.eclipse.xwt.doc.user/javadoc/index-files/index-10.html
deleted file mode 100644
index 83f0f6f..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/index-files/index-10.html
+++ /dev/null
@@ -1,144 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-M-Index

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="M-Index";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-9.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-11.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-10.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-10.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-<A NAME="_M_"><!-- --></A><H2>

-<B>M</B></H2>

-<DL>

-<DT><A HREF="../org/eclipse/e4/xwt/ILogger.html#message(java.lang.String)"><B>message(String)</B></A> - 

-Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input"><B>ModifierKeys</B></A> - Enum in <A HREF="../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input"><B>MouseAction</B></A> - Enum in <A HREF="../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input"><B>MouseBinding</B></A> - Class in <A HREF="../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/input/MouseBinding.html#MouseBinding()"><B>MouseBinding()</B></A> - 

-Constructor for class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input">MouseBinding</A>

-<DD>&nbsp;

-</DL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-9.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-11.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-10.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-10.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/index-files/index-11.html b/org.eclipse.xwt.doc.user/javadoc/index-files/index-11.html
deleted file mode 100644
index f257399..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/index-files/index-11.html
+++ /dev/null
@@ -1,141 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-N-Index

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="N-Index";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-10.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-12.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-11.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-11.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-<A NAME="_N_"><!-- --></A><H2>

-<B>N</B></H2>

-<DL>

-<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#newInstance(java.lang.Object[])"><B>newInstance(Object[])</B></A> - 

-Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>

-<DD>&nbsp;

-</DL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-10.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-12.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-11.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-11.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/index-files/index-12.html b/org.eclipse.xwt.doc.user/javadoc/index-files/index-12.html
deleted file mode 100644
index 9470394..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/index-files/index-12.html
+++ /dev/null
@@ -1,147 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-O-Index

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="O-Index";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-11.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-13.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-12.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-12.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-<A NAME="_O_"><!-- --></A><H2>

-<B>O</B></H2>

-<DL>

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#open(java.net.URL)"><B>open(URL)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Open and show the file content in a new Shell.

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#open(java.net.URL, java.lang.Object)"><B>open(URL, Object)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>load the file content.

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#open(java.net.URL, java.lang.Object, org.eclipse.xwt.ResourceDictionary)"><B>open(URL, Object, ResourceDictionary)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>load the file content.

-<DT><A HREF="../org/eclipse/e4/xwt/package-summary.html"><B>org.eclipse.xwt</B></A> - package org.eclipse.xwt<DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/input/package-summary.html"><B>org.eclipse.xwt.input</B></A> - package org.eclipse.xwt.input<DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/metadata/package-summary.html"><B>org.eclipse.xwt.metadata</B></A> - package org.eclipse.xwt.metadata<DD>&nbsp;</DL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-11.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-13.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-12.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-12.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/index-files/index-13.html b/org.eclipse.xwt.doc.user/javadoc/index-files/index-13.html
deleted file mode 100644
index af96d47..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/index-files/index-13.html
+++ /dev/null
@@ -1,141 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-P-Index

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="P-Index";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-12.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-14.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-13.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-13.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-<A NAME="_P_"><!-- --></A><H2>

-<B>P</B></H2>

-<DL>

-<DT><A HREF="../org/eclipse/e4/xwt/ILogger.html#printInfo(java.lang.String, org.eclipse.xwt.Tracking, java.util.Set)"><B>printInfo(String, Tracking, Set&lt;Tracking&gt;)</B></A> - 

-Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A>

-<DD>&nbsp;

-</DL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-12.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-14.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-13.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-13.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/index-files/index-14.html b/org.eclipse.xwt.doc.user/javadoc/index-files/index-14.html
deleted file mode 100644
index ef03d0d..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/index-files/index-14.html
+++ /dev/null
@@ -1,180 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:38 CET 2009 -->

-<TITLE>

-R-Index

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="R-Index";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-13.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-15.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-14.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-14.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-<A NAME="_R_"><!-- --></A><H2>

-<B>R</B></H2>

-<DL>

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#register(java.lang.Class, java.lang.String)"><B>register(Class&lt;?&gt;, String)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Register UI type

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#registerCommand(java.lang.String, org.eclipse.xwt.input.ICommand)"><B>registerCommand(String, ICommand)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Register a command to a name

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#registerConvertor(org.eclipse.core.databinding.conversion.IConverter)"><B>registerConvertor(IConverter)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Register a Data converter

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#registerMetaclass(java.lang.Class)"><B>registerMetaclass(Class)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Register UI type

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#registerMetaclassFactory(org.eclipse.xwt.IMetaclassFactory)"><B>registerMetaclassFactory(IMetaclassFactory)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Register Metaclass factory

-<DT><A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html#removeCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><B>removeCanExecuteChangedListener(CanExecuteChangedListener)</B></A> - 

-Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input">CommandBinding</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/input/ICommand.html#removeCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><B>removeCanExecuteChangedListener(CanExecuteChangedListener)</B></A> - 

-Method in interface org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/input/RoutedCommand.html#removeCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><B>removeCanExecuteChangedListener(CanExecuteChangedListener)</B></A> - 

-Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input">RoutedCommand</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html#removeExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><B>removeExecuteChangedListener(CanExecuteChangedListener)</B></A> - 

-Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input">CommandBinding</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/ILogger.html#removeMessage(org.eclipse.xwt.Tracking)"><B>removeMessage(Tracking)</B></A> - 

-Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/metadata/IProperty.html#removeSetPostAction(org.eclipse.xwt.metadata.ISetPostAction)"><B>removeSetPostAction(ISetPostAction)</B></A> - 

-Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#removeTracking(org.eclipse.xwt.Tracking)"><B>removeTracking(Tracking)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Remove a tracking option.

-<DT><A HREF="../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt"><B>ResourceDictionary</B></A> - Class in <A HREF="../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/ResourceDictionary.html#ResourceDictionary()"><B>ResourceDictionary()</B></A> - 

-Constructor for class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input"><B>RoutedCommand</B></A> - Class in <A HREF="../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/input/RoutedCommand.html#RoutedCommand()"><B>RoutedCommand()</B></A> - 

-Constructor for class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input">RoutedCommand</A>

-<DD>&nbsp;

-</DL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-13.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-15.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-14.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-14.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/index-files/index-15.html b/org.eclipse.xwt.doc.user/javadoc/index-files/index-15.html
deleted file mode 100644
index aa0a51d..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/index-files/index-15.html
+++ /dev/null
@@ -1,192 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:38 CET 2009 -->

-<TITLE>

-S-Index

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="S-Index";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-14.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-16.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-15.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-15.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-<A NAME="_S_"><!-- --></A><H2>

-<B>S</B></H2>

-<DL>

-<DT><A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html#setCommand(org.eclipse.xwt.input.ICommand)"><B>setCommand(ICommand)</B></A> - 

-Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input">CommandBinding</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/input/InputBinding.html#setCommand(org.eclipse.xwt.input.ICommand)"><B>setCommand(ICommand)</B></A> - 

-Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/input/InputBinding.html#setCommandParameter(java.lang.Object)"><B>setCommandParameter(Object)</B></A> - 

-Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/input/InputBinding.html#setCommandTarget(java.lang.Object)"><B>setCommandTarget(Object)</B></A> - 

-Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/ILoadData.html#setDataContext(java.lang.Object)"><B>setDataContext(Object)</B></A> - 

-Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#setDataContext(org.eclipse.swt.widgets.Widget, java.lang.Object)"><B>setDataContext(Widget, Object)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Change the DataContext of given element

-<DT><A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html#setDisplayString(java.lang.String)"><B>setDisplayString(String)</B></A> - 

-Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/input/InputBinding.html#setGesture(org.eclipse.xwt.input.KeyGesture)"><B>setGesture(KeyGesture)</B></A> - 

-Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html#setKey(java.lang.String)"><B>setKey(String)</B></A> - 

-Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#setLoadingContext(org.eclipse.xwt.ILoadingContext)"><B>setLoadingContext(ILoadingContext)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#setLogger(org.eclipse.xwt.ILogger)"><B>setLogger(ILogger)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Change the system logger

-<DT><A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html#setModifiers(org.eclipse.xwt.input.ModifierKeys)"><B>setModifiers(ModifierKeys)</B></A> - 

-Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/metadata/IBehavior.html#setName(java.lang.String)"><B>setName(String)</B></A> - 

-Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata">IBehavior</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/ILoadData.html#setParent(org.eclipse.swt.widgets.Composite)"><B>setParent(Composite)</B></A> - 

-Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/ILoadData.html#setResourceDictionary(org.eclipse.xwt.ResourceDictionary)"><B>setResourceDictionary(ResourceDictionary)</B></A> - 

-Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/ILoadData.html#setStyles(int)"><B>setStyles(int)</B></A> - 

-Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/metadata/IProperty.html#setType(java.lang.Class)"><B>setType(Class&lt;?&gt;)</B></A> - 

-Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/metadata/IProperty.html#setValue(java.lang.Object, java.lang.Object)"><B>setValue(Object, Object)</B></A> - 

-Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>

-<DD>Can generate event

-</DL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-14.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-16.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-15.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-15.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/index-files/index-16.html b/org.eclipse.xwt.doc.user/javadoc/index-files/index-16.html
deleted file mode 100644
index b589d99..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/index-files/index-16.html
+++ /dev/null
@@ -1,138 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:38 CET 2009 -->

-<TITLE>

-T-Index

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="T-Index";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-15.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-17.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-16.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-16.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-<A NAME="_T_"><!-- --></A><H2>

-<B>T</B></H2>

-<DL>

-<DT><A HREF="../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt"><B>Tracking</B></A> - Enum in <A HREF="../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A><DD>&nbsp;</DL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-15.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-17.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-16.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-16.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/index-files/index-17.html b/org.eclipse.xwt.doc.user/javadoc/index-files/index-17.html
deleted file mode 100644
index 60d45b6..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/index-files/index-17.html
+++ /dev/null
@@ -1,141 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:38 CET 2009 -->

-<TITLE>

-U-Index

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="U-Index";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-16.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-18.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-17.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-17.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-<A NAME="_U_"><!-- --></A><H2>

-<B>U</B></H2>

-<DL>

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#unregisterCommand(java.lang.String)"><B>unregisterCommand(String)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Unregister a command

-</DL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-16.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-18.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-17.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-17.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/index-files/index-18.html b/org.eclipse.xwt.doc.user/javadoc/index-files/index-18.html
deleted file mode 100644
index aaef0c1..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/index-files/index-18.html
+++ /dev/null
@@ -1,159 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:38 CET 2009 -->

-<TITLE>

-V-Index

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="V-Index";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-17.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-19.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-18.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-18.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-<A NAME="_V_"><!-- --></A><H2>

-<B>V</B></H2>

-<DL>

-<DT><A HREF="../org/eclipse/e4/xwt/input/ModifierKeys.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 

-Static method in enum org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A>

-<DD>Returns the enum constant of this type with the specified name.

-<DT><A HREF="../org/eclipse/e4/xwt/input/MouseAction.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 

-Static method in enum org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A>

-<DD>Returns the enum constant of this type with the specified name.

-<DT><A HREF="../org/eclipse/e4/xwt/Tracking.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 

-Static method in enum org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>

-<DD>Returns the enum constant of this type with the specified name.

-<DT><A HREF="../org/eclipse/e4/xwt/input/ModifierKeys.html#values()"><B>values()</B></A> - 

-Static method in enum org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A>

-<DD>Returns an array containing the constants of this enum type, in

-the order they're declared.

-<DT><A HREF="../org/eclipse/e4/xwt/input/MouseAction.html#values()"><B>values()</B></A> - 

-Static method in enum org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A>

-<DD>Returns an array containing the constants of this enum type, in

-the order they're declared.

-<DT><A HREF="../org/eclipse/e4/xwt/Tracking.html#values()"><B>values()</B></A> - 

-Static method in enum org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>

-<DD>Returns an array containing the constants of this enum type, in

-the order they're declared.

-</DL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-17.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-19.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-18.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-18.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/index-files/index-19.html b/org.eclipse.xwt.doc.user/javadoc/index-files/index-19.html
deleted file mode 100644
index 59d98bd..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/index-files/index-19.html
+++ /dev/null
@@ -1,141 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:38 CET 2009 -->

-<TITLE>

-W-Index

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="W-Index";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-18.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-20.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-19.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-19.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-<A NAME="_W_"><!-- --></A><H2>

-<B>W</B></H2>

-<DL>

-<DT><A HREF="../org/eclipse/e4/xwt/ILogger.html#warning(java.lang.String)"><B>warning(String)</B></A> - 

-Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A>

-<DD>&nbsp;

-</DL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-18.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-20.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-19.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-19.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/index-files/index-2.html b/org.eclipse.xwt.doc.user/javadoc/index-files/index-2.html
deleted file mode 100644
index a3866f4..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/index-files/index-2.html
+++ /dev/null
@@ -1,159 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-C-Index

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="C-Index";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-1.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-3.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-2.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-2.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-<A NAME="_C_"><!-- --></A><H2>

-<B>C</B></H2>

-<DL>

-<DT><A HREF="../org/eclipse/e4/xwt/input/ICommand.html#canExecute()"><B>canExecute()</B></A> - 

-Method in interface org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/input/RoutedCommand.html#canExecute()"><B>canExecute()</B></A> - 

-Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input">RoutedCommand</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input"><B>CanExecuteChangedListener</B></A> - Interface in <A HREF="../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input"><B>CommandBinding</B></A> - Class in <A HREF="../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html#CommandBinding()"><B>CommandBinding()</B></A> - 

-Constructor for class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input">CommandBinding</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html#CommandBinding(org.eclipse.xwt.input.ICommand)"><B>CommandBinding(ICommand)</B></A> - 

-Constructor for class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input">CommandBinding</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#convertFrom(org.eclipse.xwt.metadata.IMetaclass, java.lang.String)"><B>convertFrom(IMetaclass, String)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Data conversion service from String to a given type

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#convertFrom(java.lang.Class, java.lang.String)"><B>convertFrom(Class&lt;?&gt;, String)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Data conversion service from String to a given type

-<DT><A HREF="../org/eclipse/e4/xwt/IMetaclassFactory.html#create(java.lang.Class, org.eclipse.xwt.metadata.IMetaclass)"><B>create(Class&lt;?&gt;, IMetaclass)</B></A> - 

-Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt">IMetaclassFactory</A>

-<DD>&nbsp;

-</DL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-1.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-3.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-2.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-2.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/index-files/index-20.html b/org.eclipse.xwt.doc.user/javadoc/index-files/index-20.html
deleted file mode 100644
index d815f9c..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/index-files/index-20.html
+++ /dev/null
@@ -1,222 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:38 CET 2009 -->

-<TITLE>

-X-Index

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="X-Index";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-19.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;NEXT LETTER</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-20.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-20.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-<A NAME="_X_"><!-- --></A><H2>

-<B>X</B></H2>

-<DL>

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_BINDING"><B>XAML_BINDING</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_CLR_ASSEMBLY"><B>XAML_CLR_ASSEMBLY</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_CLR_NAMESPACE_PROTO"><B>XAML_CLR_NAMESPACE_PROTO</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_COMMAND"><B>XAML_COMMAND</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_DATACONTEXT"><B>XAML_DATACONTEXT</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_DYNAMICRESOURCES"><B>XAML_DYNAMICRESOURCES</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_STATICRESOURCES"><B>XAML_STATICRESOURCES</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_ARRAY"><B>XAML_X_ARRAY</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_CLASS"><B>XAML_X_CLASS</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_KEY"><B>XAML_X_KEY</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_NAME"><B>XAML_X_NAME</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_NULL"><B>XAML_X_NULL</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_SHARED"><B>XAML_X_SHARED</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_STATIC"><B>XAML_X_STATIC</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_STATIC_MEMBER"><B>XAML_X_STATIC_MEMBER</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_TARGET_TYPE"><B>XAML_X_TARGET_TYPE</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_TYPE"><B>XAML_X_TYPE</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_TYPE_NAME"><B>XAML_X_TYPE_NAME</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XML_NS"><B>XML_NS</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt"><B>XWT</B></A> - Class in <A HREF="../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A><DD>XWT is the main class of the XWT framework.<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#XWT()"><B>XWT()</B></A> - 

-Constructor for class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XWT_EXTENSION"><B>XWT_EXTENSION</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XWT_EXTENSION_SUFFIX"><B>XWT_EXTENSION_SUFFIX</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XWT_NAMESPACE"><B>XWT_NAMESPACE</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XWT_X_NAMESPACE"><B>XWT_X_NAMESPACE</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt"><B>XWTException</B></A> - Exception in <A HREF="../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/XWTException.html#XWTException(java.lang.String, java.lang.Throwable)"><B>XWTException(String, Throwable)</B></A> - 

-Constructor for exception org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt">XWTException</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWTException.html#XWTException(java.lang.String)"><B>XWTException(String)</B></A> - 

-Constructor for exception org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt">XWTException</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWTException.html#XWTException(java.lang.Throwable)"><B>XWTException(Throwable)</B></A> - 

-Constructor for exception org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt">XWTException</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWTException.html#XWTException()"><B>XWTException()</B></A> - 

-Constructor for exception org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt">XWTException</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt"><B>XWTMaps</B></A> - Class in <A HREF="../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A><DD>&nbsp;</DL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-19.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;NEXT LETTER</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-20.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-20.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/index-files/index-21.html b/org.eclipse.xwt.doc.user/javadoc/index-files/index-21.html
deleted file mode 100644
index cdecbce..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/index-files/index-21.html
+++ /dev/null
@@ -1,222 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->

-<TITLE>

-X-Index

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="X-Index";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-20.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;NEXT LETTER</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-21.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-21.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">G</A> <A HREF="index-8.html">I</A> <A HREF="index-9.html">K</A> <A HREF="index-10.html">L</A> <A HREF="index-11.html">M</A> <A HREF="index-12.html">N</A> <A HREF="index-13.html">O</A> <A HREF="index-14.html">P</A> <A HREF="index-15.html">R</A> <A HREF="index-16.html">S</A> <A HREF="index-17.html">T</A> <A HREF="index-18.html">U</A> <A HREF="index-19.html">V</A> <A HREF="index-20.html">W</A> <A HREF="index-21.html">X</A> <HR>

-<A NAME="_X_"><!-- --></A><H2>

-<B>X</B></H2>

-<DL>

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_BINDING"><B>XAML_BINDING</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_CLR_ASSEMBLY"><B>XAML_CLR_ASSEMBLY</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_CLR_NAMESPACE_PROTO"><B>XAML_CLR_NAMESPACE_PROTO</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_COMMAND"><B>XAML_COMMAND</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_DATACONTEXT"><B>XAML_DATACONTEXT</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_DYNAMICRESOURCES"><B>XAML_DYNAMICRESOURCES</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_STATICRESOURCES"><B>XAML_STATICRESOURCES</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_ARRAY"><B>XAML_X_ARRAY</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_CLASS"><B>XAML_X_CLASS</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_KEY"><B>XAML_X_KEY</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_NAME"><B>XAML_X_NAME</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_NULL"><B>XAML_X_NULL</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_SHARED"><B>XAML_X_SHARED</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_STATIC"><B>XAML_X_STATIC</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_STATIC_MEMBER"><B>XAML_X_STATIC_MEMBER</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_TARGET_TYPE"><B>XAML_X_TARGET_TYPE</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_TYPE"><B>XAML_X_TYPE</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_TYPE_NAME"><B>XAML_X_TYPE_NAME</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XML_NS"><B>XML_NS</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt"><B>XWT</B></A> - Class in <A HREF="../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A><DD>XWT is the main class of the XWT framework.<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#XWT()"><B>XWT()</B></A> - 

-Constructor for class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XWT_EXTENSION"><B>XWT_EXTENSION</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XWT_EXTENSION_SUFFIX"><B>XWT_EXTENSION_SUFFIX</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XWT_NAMESPACE"><B>XWT_NAMESPACE</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XWT_X_NAMESPACE"><B>XWT_X_NAMESPACE</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt"><B>XWTException</B></A> - Exception in <A HREF="../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/XWTException.html#XWTException(java.lang.String, java.lang.Throwable)"><B>XWTException(String, Throwable)</B></A> - 

-Constructor for exception org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt">XWTException</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWTException.html#XWTException(java.lang.String)"><B>XWTException(String)</B></A> - 

-Constructor for exception org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt">XWTException</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWTException.html#XWTException(java.lang.Throwable)"><B>XWTException(Throwable)</B></A> - 

-Constructor for exception org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt">XWTException</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWTException.html#XWTException()"><B>XWTException()</B></A> - 

-Constructor for exception org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt">XWTException</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt"><B>XWTMaps</B></A> - Class in <A HREF="../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A><DD>&nbsp;</DL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-20.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;NEXT LETTER</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-21.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-21.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">G</A> <A HREF="index-8.html">I</A> <A HREF="index-9.html">K</A> <A HREF="index-10.html">L</A> <A HREF="index-11.html">M</A> <A HREF="index-12.html">N</A> <A HREF="index-13.html">O</A> <A HREF="index-14.html">P</A> <A HREF="index-15.html">R</A> <A HREF="index-16.html">S</A> <A HREF="index-17.html">T</A> <A HREF="index-18.html">U</A> <A HREF="index-19.html">V</A> <A HREF="index-20.html">W</A> <A HREF="index-21.html">X</A> <HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/index-files/index-3.html b/org.eclipse.xwt.doc.user/javadoc/index-files/index-3.html
deleted file mode 100644
index 67a82d2..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/index-files/index-3.html
+++ /dev/null
@@ -1,141 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-D-Index

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="D-Index";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-2.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-4.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-3.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-3.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-<A NAME="_D_"><!-- --></A><H2>

-<B>D</B></H2>

-<DL>

-<DT><A HREF="../org/eclipse/e4/xwt/ILoadData.html#DefaultLoadData"><B>DefaultLoadData</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A>

-<DD>&nbsp;

-</DL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-2.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-4.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-3.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-3.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/index-files/index-4.html b/org.eclipse.xwt.doc.user/javadoc/index-files/index-4.html
deleted file mode 100644
index 42dc581..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/index-files/index-4.html
+++ /dev/null
@@ -1,162 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-E-Index

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="E-Index";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-3.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-5.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-4.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-4.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-<A NAME="_E_"><!-- --></A><H2>

-<B>E</B></H2>

-<DL>

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#EMPTY_DOCOBJ_ARRAY"><B>EMPTY_DOCOBJ_ARRAY</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#EMPTY_ENUMERATION"><B>EMPTY_ENUMERATION</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#EMPTY_RESOURCE_BUNDLE"><B>EMPTY_RESOURCE_BUNDLE</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#EMPTY_STRING_ARRAY"><B>EMPTY_STRING_ARRAY</B></A> - 

-Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/ILogger.html#error(java.lang.Throwable)"><B>error(Throwable)</B></A> - 

-Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/ILogger.html#error(java.lang.Throwable, java.lang.String)"><B>error(Throwable, String)</B></A> - 

-Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/input/ICommand.html#execute(java.lang.Object)"><B>execute(Object)</B></A> - 

-Method in interface org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/input/RoutedCommand.html#execute(java.lang.Object)"><B>execute(Object)</B></A> - 

-Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input">RoutedCommand</A>

-<DD>&nbsp;

-</DL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-3.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-5.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-4.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-4.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/index-files/index-5.html b/org.eclipse.xwt.doc.user/javadoc/index-files/index-5.html
deleted file mode 100644
index 138bcaa..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/index-files/index-5.html
+++ /dev/null
@@ -1,174 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-F-Index

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="F-Index";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-4.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-6.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-5.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-5.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-<A NAME="_F_"><!-- --></A><H2>

-<B>F</B></H2>

-<DL>

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#findCompositeParent(org.eclipse.swt.widgets.Widget)"><B>findCompositeParent(Widget)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Find the closet parent of type Composite

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#findConvertor(java.lang.Class, java.lang.Class)"><B>findConvertor(Class&lt;?&gt;, Class&lt;?&gt;)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Find a Data converter

-<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#findDefaultProperty()"><B>findDefaultProperty()</B></A> - 

-Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#findElementByName(org.eclipse.swt.widgets.Widget, java.lang.String)"><B>findElementByName(Widget, String)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Find a named UI element.

-<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#findEvent(java.lang.String)"><B>findEvent(String)</B></A> - 

-Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#findLoadingContext(java.lang.Object)"><B>findLoadingContext(Object)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#findNameContext(org.eclipse.swt.widgets.Widget)"><B>findNameContext(Widget)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>A NameContext is a manager of UI element's name in a scope.

-<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#findProperty(java.lang.String)"><B>findProperty(String)</B></A> - 

-Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#findShell(org.eclipse.swt.widgets.Widget)"><B>findShell(Widget)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Find the root shell

-<DT><A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html#fireCanExecuteChangedListener(java.beans.PropertyChangeEvent)"><B>fireCanExecuteChangedListener(PropertyChangeEvent)</B></A> - 

-Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input">CommandBinding</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/input/RoutedCommand.html#fireCanExecuteChangedListener(java.beans.PropertyChangeEvent)"><B>fireCanExecuteChangedListener(PropertyChangeEvent)</B></A> - 

-Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input">RoutedCommand</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html#fireExecuteChangedListener(java.beans.PropertyChangeEvent)"><B>fireExecuteChangedListener(PropertyChangeEvent)</B></A> - 

-Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input">CommandBinding</A>

-<DD>&nbsp;

-</DL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-4.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-6.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-5.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-5.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/index-files/index-6.html b/org.eclipse.xwt.doc.user/javadoc/index-files/index-6.html
deleted file mode 100644
index c1f6720..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/index-files/index-6.html
+++ /dev/null
@@ -1,273 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-G-Index

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="G-Index";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-5.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-7.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-6.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-6.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-<A NAME="_G_"><!-- --></A><H2>

-<B>G</B></H2>

-<DL>

-<DT><A HREF="../org/eclipse/e4/xwt/XWTMaps.html#getAccelerator(java.lang.String)"><B>getAccelerator(String)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt">XWTMaps</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWTMaps.html#getAcceleratorKeys()"><B>getAcceleratorKeys()</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt">XWTMaps</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#getAllMetaclasses()"><B>getAllMetaclasses()</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Metaclass services to return all registered Metaclasses.

-<DT><A HREF="../org/eclipse/e4/xwt/ILoadingContext.html#getClassLoader()"><B>getClassLoader()</B></A> - 

-Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#getCLR(org.eclipse.swt.widgets.Widget)"><B>getCLR(Widget)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Get the CLR (Common Language Runtime) object.

-<DT><A HREF="../org/eclipse/e4/xwt/XWTMaps.html#getColor(java.lang.String)"><B>getColor(String)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt">XWTMaps</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWTMaps.html#getColorKeys()"><B>getColorKeys()</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt">XWTMaps</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWTMaps.html#getCombAccelerator(java.lang.String)"><B>getCombAccelerator(String)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt">XWTMaps</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html#getCommand()"><B>getCommand()</B></A> - 

-Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input">CommandBinding</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/input/InputBinding.html#getCommand()"><B>getCommand()</B></A> - 

-Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#getCommand(java.lang.String)"><B>getCommand(String)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Find a command by name

-<DT><A HREF="../org/eclipse/e4/xwt/input/InputBinding.html#getCommandParameter()"><B>getCommandParameter()</B></A> - 

-Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#getCommands()"><B>getCommands()</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Return all registered commands

-<DT><A HREF="../org/eclipse/e4/xwt/input/InputBinding.html#getCommandTarget()"><B>getCommandTarget()</B></A> - 

-Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#getConverterService()"><B>getConverterService()</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/ILoadData.html#getDataContext()"><B>getDataContext()</B></A> - 

-Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#getDataContext(org.eclipse.swt.widgets.Widget)"><B>getDataContext(Widget)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Get the DataContext of given element

-<DT><A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html#getDisplayString()"><B>getDisplayString()</B></A> - 

-Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWTMaps.html#getEvent(java.lang.String)"><B>getEvent(String)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt">XWTMaps</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWTMaps.html#getEventKeys()"><B>getEventKeys()</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt">XWTMaps</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#getEvents()"><B>getEvents()</B></A> - 

-Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/input/InputBinding.html#getGesture()"><B>getGesture()</B></A> - 

-Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html#getKey()"><B>getKey()</B></A> - 

-Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#getLoadingContext(org.eclipse.swt.widgets.Composite)"><B>getLoadingContext(Composite)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#getLoadingContext()"><B>getLoadingContext()</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#getLogger()"><B>getLogger()</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Get the system logger.

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#getMetaclass(java.lang.Object)"><B>getMetaclass(Object)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Get the Metaclass of the given object

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#getMetaclass(java.lang.String, java.lang.String)"><B>getMetaclass(String, String)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Get the corresponding Metaclass

-<DT><A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html#getModifiers()"><B>getModifiers()</B></A> - 

-Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/metadata/IBehavior.html#getName()"><B>getName()</B></A> - 

-Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata">IBehavior</A>

-<DD>Getter of the property <tt>name</tt>

-<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#getName()"><B>getName()</B></A> - 

-Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/ILoadingContext.html#getNamespace()"><B>getNamespace()</B></A> - 

-Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#getNamespace(java.lang.Class)"><B>getNamespace(Class&lt;?&gt;)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>This namespace service returns the associated or declared namespace for a given class.

-<DT><A HREF="../org/eclipse/e4/xwt/ILoadData.html#getParent()"><B>getParent()</B></A> - 

-Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#getProperties()"><B>getProperties()</B></A> - 

-Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/ILoadData.html#getResourceDictionary()"><B>getResourceDictionary()</B></A> - 

-Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWTMaps.html#getStyle(java.lang.String)"><B>getStyle(String)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt">XWTMaps</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWTMaps.html#getStyleKeys()"><B>getStyleKeys()</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt">XWTMaps</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/ILoadData.html#getStyles()"><B>getStyles()</B></A> - 

-Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#getSuperClass()"><B>getSuperClass()</B></A> - 

-Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#getTrackings()"><B>getTrackings()</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Get all tracking options

-<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#getType()"><B>getType()</B></A> - 

-Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/metadata/IProperty.html#getType()"><B>getType()</B></A> - 

-Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/metadata/IProperty.html#getValue(java.lang.Object)"><B>getValue(Object)</B></A> - 

-Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWTMaps.html#getValue(java.lang.String)"><B>getValue(String)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt">XWTMaps</A>

-<DD>&nbsp;

-</DL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-5.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-7.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-6.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-6.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/index-files/index-7.html b/org.eclipse.xwt.doc.user/javadoc/index-files/index-7.html
deleted file mode 100644
index 8a5a845..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/index-files/index-7.html
+++ /dev/null
@@ -1,165 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-I-Index

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="I-Index";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-6.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-8.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-7.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-7.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-<A NAME="_I_"><!-- --></A><H2>

-<B>I</B></H2>

-<DL>

-<DT><A HREF="../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata"><B>IBehavior</B></A> - Interface in <A HREF="../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A><DD>Common behavior of Property and event<DT><A HREF="../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input"><B>ICommand</B></A> - Interface in <A HREF="../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt"><B>IConstants</B></A> - Interface in <A HREF="../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A><DD>Shared constants<DT><A HREF="../org/eclipse/e4/xwt/IDataBindingProvider.html" title="interface in org.eclipse.xwt"><B>IDataBindingProvider</B></A> - Interface in <A HREF="../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A><DD>A Data Binding provider defines the nature of Data Binding such as Bean Object Binding, EMF Object Binding, XML data Binding or Data Base binding<DT><A HREF="../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata"><B>IEvent</B></A> - Interface in <A HREF="../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A><DD>UI event<DT><A HREF="../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt"><B>ILoadData</B></A> - Interface in <A HREF="../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt"><B>ILoadingContext</B></A> - Interface in <A HREF="../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt"><B>ILogger</B></A> - Interface in <A HREF="../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A><DD>Looger interface<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata"><B>IMetaclass</B></A> - Interface in <A HREF="../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A><DD>UI metaclass<DT><A HREF="../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt"><B>IMetaclassFactory</B></A> - Interface in <A HREF="../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A><DD>Metaclass factory provides a customizable Metaclass creation mechanism.<DT><A HREF="../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input"><B>InputBinding</B></A> - Class in <A HREF="../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/input/InputBinding.html#InputBinding()"><B>InputBinding()</B></A> - 

-Constructor for class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata"><B>IProperty</B></A> - Interface in <A HREF="../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A><DD>UI property<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#isAbstract()"><B>isAbstract()</B></A> - 

-Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#isAssignableFrom(org.eclipse.xwt.metadata.IMetaclass)"><B>isAssignableFrom(IMetaclass)</B></A> - 

-Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata"><B>ISetPostAction</B></A> - Interface in <A HREF="../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/IMetaclassFactory.html#isFactoryOf(java.lang.Class)"><B>isFactoryOf(Class&lt;?&gt;)</B></A> - 

-Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt">IMetaclassFactory</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#IsInitialized()"><B>IsInitialized()</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Check if the framework is initialized.

-<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#isInstance(java.lang.Object)"><B>isInstance(Object)</B></A> - 

-Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#isSubclassOf(org.eclipse.xwt.metadata.IMetaclass)"><B>isSubclassOf(IMetaclass)</B></A> - 

-Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#isSuperclassOf(org.eclipse.xwt.metadata.IMetaclass)"><B>isSuperclassOf(IMetaclass)</B></A> - 

-Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#isTracking(org.eclipse.xwt.Tracking)"><B>isTracking(Tracking)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Test if the tracking on argument is enabled.

-</DL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-6.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-8.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-7.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-7.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/index-files/index-8.html b/org.eclipse.xwt.doc.user/javadoc/index-files/index-8.html
deleted file mode 100644
index 9f4cf11..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/index-files/index-8.html
+++ /dev/null
@@ -1,144 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-K-Index

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="K-Index";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-7.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-9.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-8.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-8.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-<A NAME="_K_"><!-- --></A><H2>

-<B>K</B></H2>

-<DL>

-<DT><A HREF="../org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input"><B>KeyBinding</B></A> - Class in <A HREF="../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/input/KeyBinding.html#KeyBinding()"><B>KeyBinding()</B></A> - 

-Constructor for class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input">KeyBinding</A>

-<DD>&nbsp;

-<DT><A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input"><B>KeyGesture</B></A> - Class in <A HREF="../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html#KeyGesture()"><B>KeyGesture()</B></A> - 

-Constructor for class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A>

-<DD>&nbsp;

-</DL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-7.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-9.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-8.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-8.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/index-files/index-9.html b/org.eclipse.xwt.doc.user/javadoc/index-files/index-9.html
deleted file mode 100644
index 7d8c0aa..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/index-files/index-9.html
+++ /dev/null
@@ -1,177 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-L-Index

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="L-Index";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-8.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-10.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-9.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-9.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-<A NAME="_L_"><!-- --></A><H2>

-<B>L</B></H2>

-<DL>

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#load(java.net.URL)"><B>load(URL)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Load the file content.

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#load(java.net.URL, int, java.lang.Object)"><B>load(URL, int, Object)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Load the file content with a DataContext.

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#load(java.net.URL, int, java.lang.Object, org.eclipse.xwt.ResourceDictionary)"><B>load(URL, int, Object, ResourceDictionary)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Load the file content with a DataContext and a ResourceDictionary.

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#load(java.net.URL, java.lang.Object)"><B>load(URL, Object)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Load the file content with a DataContext.

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.net.URL)"><B>load(Composite, URL)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Load the file content under a Composite.

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.net.URL, java.lang.Object)"><B>load(Composite, URL, Object)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Load the file content under a Composite with a DataContext.

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.net.URL, int, java.lang.Object)"><B>load(Composite, URL, int, Object)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Load the file content under a Composite with a style and a DataContext.

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.net.URL, int, java.lang.Object, org.eclipse.xwt.ResourceDictionary)"><B>load(Composite, URL, int, Object, ResourceDictionary)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Load the file content under a Composite with a style, a DataContext and a ResourceDictionary.

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#load(java.io.InputStream, java.net.URL)"><B>load(InputStream, URL)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>load the file content.

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.io.InputStream, java.net.URL, java.lang.Object)"><B>load(Composite, InputStream, URL, Object)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>load the content from a stream with a given DataContext.

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.io.InputStream, java.net.URL, int, java.lang.Object)"><B>load(Composite, InputStream, URL, int, Object)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>load the content from a stream with a style and a DataContext.

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.io.InputStream, java.net.URL, int, java.lang.Object, org.eclipse.xwt.ResourceDictionary)"><B>load(Composite, InputStream, URL, int, Object, ResourceDictionary)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>load the content from a stream with a style, a DataContext and a ResourceDictionary.

-<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#load(java.io.InputStream, java.net.URL, org.eclipse.xwt.ILoadData)"><B>load(InputStream, URL, ILoadData)</B></A> - 

-Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>

-<DD>Generic load method

-</DL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="index-8.html"><B>PREV LETTER</B></A>&nbsp;

-&nbsp;<A HREF="index-10.html"><B>NEXT LETTER</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../index.html?index-filesindex-9.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="index-9.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/index.html b/org.eclipse.xwt.doc.user/javadoc/index.html
deleted file mode 100644
index 6d18be0..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/index.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc on Tue Feb 03 01:38:38 CET 2009-->

-<TITLE>

-Generated Documentation (Untitled)

-</TITLE>

-<SCRIPT type="text/javascript">

-    targetPage = "" + window.location.search;

-    if (targetPage != "" && targetPage != "undefined")

-       targetPage = targetPage.substring(1);

-    function loadFrames() {

-        if (targetPage != "" && targetPage != "undefined")

-             top.classFrame.location = top.targetPage;

-    }

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-</HEAD>

-<FRAMESET cols="20%,80%" title="" onLoad="top.loadFrames()">

-<FRAMESET rows="30%,70%" title="" onLoad="top.loadFrames()">

-<FRAME src="overview-frame.html" name="packageListFrame" title="All Packages">

-<FRAME src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">

-</FRAMESET>

-<FRAME src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">

-<NOFRAMES>

-<H2>

-Frame Alert</H2>

-

-<P>

-This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.

-<BR>

-Link to<A HREF="overview-summary.html">Non-frame version.</A>

-</NOFRAMES>

-</FRAMESET>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/IConstants.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/IConstants.html
deleted file mode 100644
index 6a846f0..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/IConstants.html
+++ /dev/null
@@ -1,677 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:35 CET 2009 -->

-<TITLE>

-IConstants

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.IConstants interface">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="IConstants";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IConstants.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV CLASS&nbsp;

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/IDataBindingProvider.html" title="interface in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/IConstants.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IConstants.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt</FONT>

-<BR>

-Interface IConstants</H2>

-<HR>

-<DL>

-<DT><PRE>public interface <B>IConstants</B></DL>

-</PRE>

-

-<P>

-Shared constants

-<P>

-

-<P>

-<DL>

-<DT><B>Author:</B></DT>

-  <DD>yyang</DD>

-</DL>

-<HR>

-

-<P>

-<!-- =========== FIELD SUMMARY =========== -->

-

-<A NAME="field_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Field Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;org.eclipse.xwt.xml.DocumentObject[]</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#EMPTY_DOCOBJ_ARRAY">EMPTY_DOCOBJ_ARRAY</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.util.Enumeration&lt;java.net.URL&gt;</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#EMPTY_ENUMERATION">EMPTY_ENUMERATION</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.util.ResourceBundle</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#EMPTY_RESOURCE_BUNDLE">EMPTY_RESOURCE_BUNDLE</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.String[]</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#EMPTY_STRING_ARRAY">EMPTY_STRING_ARRAY</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_BINDING">XAML_BINDING</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_CLR_ASSEMBLY">XAML_CLR_ASSEMBLY</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_CLR_NAMESPACE_PROTO">XAML_CLR_NAMESPACE_PROTO</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_COMMAND">XAML_COMMAND</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_DATACONTEXT">XAML_DATACONTEXT</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_DYNAMICRESOURCES">XAML_DYNAMICRESOURCES</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_STATICRESOURCES">XAML_STATICRESOURCES</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_X_ARRAY">XAML_X_ARRAY</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_X_CLASS">XAML_X_CLASS</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_X_KEY">XAML_X_KEY</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_X_NAME">XAML_X_NAME</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_X_NULL">XAML_X_NULL</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_X_SHARED">XAML_X_SHARED</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_X_STATIC">XAML_X_STATIC</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_X_STATIC_MEMBER">XAML_X_STATIC_MEMBER</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_X_TARGET_TYPE">XAML_X_TARGET_TYPE</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_X_TYPE">XAML_X_TYPE</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_X_TYPE_NAME">XAML_X_TYPE_NAME</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XML_NS">XML_NS</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XWT_EXTENSION">XWT_EXTENSION</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XWT_EXTENSION_SUFFIX">XWT_EXTENSION_SUFFIX</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XWT_NAMESPACE">XWT_NAMESPACE</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XWT_X_NAMESPACE">XWT_X_NAMESPACE</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ============ FIELD DETAIL =========== -->

-

-<A NAME="field_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Field Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="XAML_X_KEY"><!-- --></A><H3>

-XAML_X_KEY</H3>

-<PRE>

-static final java.lang.String <B>XAML_X_KEY</B></PRE>

-<DL>

-<DL>

-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_X_KEY">Constant Field Values</A></DL>

-</DL>

-<HR>

-

-<A NAME="XAML_X_TYPE"><!-- --></A><H3>

-XAML_X_TYPE</H3>

-<PRE>

-static final java.lang.String <B>XAML_X_TYPE</B></PRE>

-<DL>

-<DL>

-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_X_TYPE">Constant Field Values</A></DL>

-</DL>

-<HR>

-

-<A NAME="XAML_X_TARGET_TYPE"><!-- --></A><H3>

-XAML_X_TARGET_TYPE</H3>

-<PRE>

-static final java.lang.String <B>XAML_X_TARGET_TYPE</B></PRE>

-<DL>

-<DL>

-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_X_TARGET_TYPE">Constant Field Values</A></DL>

-</DL>

-<HR>

-

-<A NAME="XAML_X_TYPE_NAME"><!-- --></A><H3>

-XAML_X_TYPE_NAME</H3>

-<PRE>

-static final java.lang.String <B>XAML_X_TYPE_NAME</B></PRE>

-<DL>

-<DL>

-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_X_TYPE_NAME">Constant Field Values</A></DL>

-</DL>

-<HR>

-

-<A NAME="XAML_CLR_ASSEMBLY"><!-- --></A><H3>

-XAML_CLR_ASSEMBLY</H3>

-<PRE>

-static final java.lang.String <B>XAML_CLR_ASSEMBLY</B></PRE>

-<DL>

-<DL>

-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_CLR_ASSEMBLY">Constant Field Values</A></DL>

-</DL>

-<HR>

-

-<A NAME="XAML_X_STATIC"><!-- --></A><H3>

-XAML_X_STATIC</H3>

-<PRE>

-static final java.lang.String <B>XAML_X_STATIC</B></PRE>

-<DL>

-<DL>

-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_X_STATIC">Constant Field Values</A></DL>

-</DL>

-<HR>

-

-<A NAME="XAML_X_STATIC_MEMBER"><!-- --></A><H3>

-XAML_X_STATIC_MEMBER</H3>

-<PRE>

-static final java.lang.String <B>XAML_X_STATIC_MEMBER</B></PRE>

-<DL>

-<DL>

-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_X_STATIC_MEMBER">Constant Field Values</A></DL>

-</DL>

-<HR>

-

-<A NAME="XAML_X_ARRAY"><!-- --></A><H3>

-XAML_X_ARRAY</H3>

-<PRE>

-static final java.lang.String <B>XAML_X_ARRAY</B></PRE>

-<DL>

-<DL>

-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_X_ARRAY">Constant Field Values</A></DL>

-</DL>

-<HR>

-

-<A NAME="XAML_X_CLASS"><!-- --></A><H3>

-XAML_X_CLASS</H3>

-<PRE>

-static final java.lang.String <B>XAML_X_CLASS</B></PRE>

-<DL>

-<DL>

-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_X_CLASS">Constant Field Values</A></DL>

-</DL>

-<HR>

-

-<A NAME="XAML_X_NAME"><!-- --></A><H3>

-XAML_X_NAME</H3>

-<PRE>

-static final java.lang.String <B>XAML_X_NAME</B></PRE>

-<DL>

-<DL>

-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_X_NAME">Constant Field Values</A></DL>

-</DL>

-<HR>

-

-<A NAME="XAML_X_NULL"><!-- --></A><H3>

-XAML_X_NULL</H3>

-<PRE>

-static final java.lang.String <B>XAML_X_NULL</B></PRE>

-<DL>

-<DL>

-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_X_NULL">Constant Field Values</A></DL>

-</DL>

-<HR>

-

-<A NAME="XAML_X_SHARED"><!-- --></A><H3>

-XAML_X_SHARED</H3>

-<PRE>

-static final java.lang.String <B>XAML_X_SHARED</B></PRE>

-<DL>

-<DL>

-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_X_SHARED">Constant Field Values</A></DL>

-</DL>

-<HR>

-

-<A NAME="XAML_DATACONTEXT"><!-- --></A><H3>

-XAML_DATACONTEXT</H3>

-<PRE>

-static final java.lang.String <B>XAML_DATACONTEXT</B></PRE>

-<DL>

-<DL>

-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_DATACONTEXT">Constant Field Values</A></DL>

-</DL>

-<HR>

-

-<A NAME="XAML_COMMAND"><!-- --></A><H3>

-XAML_COMMAND</H3>

-<PRE>

-static final java.lang.String <B>XAML_COMMAND</B></PRE>

-<DL>

-<DL>

-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_COMMAND">Constant Field Values</A></DL>

-</DL>

-<HR>

-

-<A NAME="XAML_CLR_NAMESPACE_PROTO"><!-- --></A><H3>

-XAML_CLR_NAMESPACE_PROTO</H3>

-<PRE>

-static final java.lang.String <B>XAML_CLR_NAMESPACE_PROTO</B></PRE>

-<DL>

-<DL>

-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_CLR_NAMESPACE_PROTO">Constant Field Values</A></DL>

-</DL>

-<HR>

-

-<A NAME="XAML_STATICRESOURCES"><!-- --></A><H3>

-XAML_STATICRESOURCES</H3>

-<PRE>

-static final java.lang.String <B>XAML_STATICRESOURCES</B></PRE>

-<DL>

-<DL>

-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_STATICRESOURCES">Constant Field Values</A></DL>

-</DL>

-<HR>

-

-<A NAME="XAML_DYNAMICRESOURCES"><!-- --></A><H3>

-XAML_DYNAMICRESOURCES</H3>

-<PRE>

-static final java.lang.String <B>XAML_DYNAMICRESOURCES</B></PRE>

-<DL>

-<DL>

-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_DYNAMICRESOURCES">Constant Field Values</A></DL>

-</DL>

-<HR>

-

-<A NAME="XAML_BINDING"><!-- --></A><H3>

-XAML_BINDING</H3>

-<PRE>

-static final java.lang.String <B>XAML_BINDING</B></PRE>

-<DL>

-<DL>

-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_BINDING">Constant Field Values</A></DL>

-</DL>

-<HR>

-

-<A NAME="XML_NS"><!-- --></A><H3>

-XML_NS</H3>

-<PRE>

-static final java.lang.String <B>XML_NS</B></PRE>

-<DL>

-<DL>

-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XML_NS">Constant Field Values</A></DL>

-</DL>

-<HR>

-

-<A NAME="XWT_NAMESPACE"><!-- --></A><H3>

-XWT_NAMESPACE</H3>

-<PRE>

-static final java.lang.String <B>XWT_NAMESPACE</B></PRE>

-<DL>

-<DL>

-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XWT_NAMESPACE">Constant Field Values</A></DL>

-</DL>

-<HR>

-

-<A NAME="XWT_X_NAMESPACE"><!-- --></A><H3>

-XWT_X_NAMESPACE</H3>

-<PRE>

-static final java.lang.String <B>XWT_X_NAMESPACE</B></PRE>

-<DL>

-<DL>

-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XWT_X_NAMESPACE">Constant Field Values</A></DL>

-</DL>

-<HR>

-

-<A NAME="XWT_EXTENSION"><!-- --></A><H3>

-XWT_EXTENSION</H3>

-<PRE>

-static final java.lang.String <B>XWT_EXTENSION</B></PRE>

-<DL>

-<DL>

-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XWT_EXTENSION">Constant Field Values</A></DL>

-</DL>

-<HR>

-

-<A NAME="XWT_EXTENSION_SUFFIX"><!-- --></A><H3>

-XWT_EXTENSION_SUFFIX</H3>

-<PRE>

-static final java.lang.String <B>XWT_EXTENSION_SUFFIX</B></PRE>

-<DL>

-<DL>

-<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XWT_EXTENSION_SUFFIX">Constant Field Values</A></DL>

-</DL>

-<HR>

-

-<A NAME="EMPTY_ENUMERATION"><!-- --></A><H3>

-EMPTY_ENUMERATION</H3>

-<PRE>

-static final java.util.Enumeration&lt;java.net.URL&gt; <B>EMPTY_ENUMERATION</B></PRE>

-<DL>

-<DL>

-</DL>

-</DL>

-<HR>

-

-<A NAME="EMPTY_RESOURCE_BUNDLE"><!-- --></A><H3>

-EMPTY_RESOURCE_BUNDLE</H3>

-<PRE>

-static final java.util.ResourceBundle <B>EMPTY_RESOURCE_BUNDLE</B></PRE>

-<DL>

-<DL>

-</DL>

-</DL>

-<HR>

-

-<A NAME="EMPTY_STRING_ARRAY"><!-- --></A><H3>

-EMPTY_STRING_ARRAY</H3>

-<PRE>

-static final java.lang.String[] <B>EMPTY_STRING_ARRAY</B></PRE>

-<DL>

-<DL>

-</DL>

-</DL>

-<HR>

-

-<A NAME="EMPTY_DOCOBJ_ARRAY"><!-- --></A><H3>

-EMPTY_DOCOBJ_ARRAY</H3>

-<PRE>

-static final org.eclipse.xwt.xml.DocumentObject[] <B>EMPTY_DOCOBJ_ARRAY</B></PRE>

-<DL>

-<DL>

-</DL>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IConstants.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV CLASS&nbsp;

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/IDataBindingProvider.html" title="interface in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/IConstants.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IConstants.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/IDataBindingProvider.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/IDataBindingProvider.html
deleted file mode 100644
index 3bc8daa..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/IDataBindingProvider.html
+++ /dev/null
@@ -1,173 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:36 CET 2009 -->

-<TITLE>

-IDataBindingProvider

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.IDataBindingProvider interface">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="IDataBindingProvider";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IDataBindingProvider.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/IDataBindingProvider.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IDataBindingProvider.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt</FONT>

-<BR>

-Interface IDataBindingProvider</H2>

-<HR>

-<DL>

-<DT><PRE>public interface <B>IDataBindingProvider</B></DL>

-</PRE>

-

-<P>

-A Data Binding provider defines the nature of Data Binding such as Bean Object Binding, EMF Object Binding, XML data Binding or Data Base binding

-<P>

-

-<P>

-<DL>

-<DT><B>Author:</B></DT>

-  <DD>yyang</DD>

-</DL>

-<HR>

-

-<P>

-

-<P>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IDataBindingProvider.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/IDataBindingProvider.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IDataBindingProvider.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/ILoadData.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/ILoadData.html
deleted file mode 100644
index 95dc5e6..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/ILoadData.html
+++ /dev/null
@@ -1,372 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:36 CET 2009 -->

-<TITLE>

-ILoadData

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.ILoadData interface">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="ILoadData";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ILoadData.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/IDataBindingProvider.html" title="interface in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/ILoadData.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ILoadData.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt</FONT>

-<BR>

-Interface ILoadData</H2>

-<HR>

-<DL>

-<DT><PRE>public interface <B>ILoadData</B></DL>

-</PRE>

-

-<P>

-<HR>

-

-<P>

-<!-- =========== FIELD SUMMARY =========== -->

-

-<A NAME="field_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Field Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html#DefaultLoadData">DefaultLoadData</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html#getDataContext()">getDataContext</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;org.eclipse.swt.widgets.Composite</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html#getParent()">getParent</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html#getResourceDictionary()">getResourceDictionary</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;int</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html#getStyles()">getStyles</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html#setDataContext(java.lang.Object)">setDataContext</A></B>(java.lang.Object&nbsp;dataContext)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html#setParent(org.eclipse.swt.widgets.Composite)">setParent</A></B>(org.eclipse.swt.widgets.Composite&nbsp;parent)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html#setResourceDictionary(org.eclipse.xwt.ResourceDictionary)">setResourceDictionary</A></B>(<A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dico)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html#setStyles(int)">setStyles</A></B>(int&nbsp;styles)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ============ FIELD DETAIL =========== -->

-

-<A NAME="field_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Field Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="DefaultLoadData"><!-- --></A><H3>

-DefaultLoadData</H3>

-<PRE>

-static final <A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A> <B>DefaultLoadData</B></PRE>

-<DL>

-<DL>

-</DL>

-</DL>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="getParent()"><!-- --></A><H3>

-getParent</H3>

-<PRE>

-org.eclipse.swt.widgets.Composite <B>getParent</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getStyles()"><!-- --></A><H3>

-getStyles</H3>

-<PRE>

-int <B>getStyles</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="setStyles(int)"><!-- --></A><H3>

-setStyles</H3>

-<PRE>

-void <B>setStyles</B>(int&nbsp;styles)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="setParent(org.eclipse.swt.widgets.Composite)"><!-- --></A><H3>

-setParent</H3>

-<PRE>

-void <B>setParent</B>(org.eclipse.swt.widgets.Composite&nbsp;parent)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getResourceDictionary()"><!-- --></A><H3>

-getResourceDictionary</H3>

-<PRE>

-<A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A> <B>getResourceDictionary</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="setResourceDictionary(org.eclipse.xwt.ResourceDictionary)"><!-- --></A><H3>

-setResourceDictionary</H3>

-<PRE>

-void <B>setResourceDictionary</B>(<A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dico)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getDataContext()"><!-- --></A><H3>

-getDataContext</H3>

-<PRE>

-java.lang.Object <B>getDataContext</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="setDataContext(java.lang.Object)"><!-- --></A><H3>

-setDataContext</H3>

-<PRE>

-void <B>setDataContext</B>(java.lang.Object&nbsp;dataContext)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ILoadData.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/IDataBindingProvider.html" title="interface in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/ILoadData.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ILoadData.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/ILoadingContext.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/ILoadingContext.html
deleted file mode 100644
index aea9bbf..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/ILoadingContext.html
+++ /dev/null
@@ -1,222 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:36 CET 2009 -->

-<TITLE>

-ILoadingContext

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.ILoadingContext interface">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="ILoadingContext";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ILoadingContext.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/ILoadingContext.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ILoadingContext.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt</FONT>

-<BR>

-Interface ILoadingContext</H2>

-<HR>

-<DL>

-<DT><PRE>public interface <B>ILoadingContext</B></DL>

-</PRE>

-

-<P>

-<HR>

-

-<P>

-

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.ClassLoader</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html#getClassLoader()">getClassLoader</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html#getNamespace()">getNamespace</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="getClassLoader()"><!-- --></A><H3>

-getClassLoader</H3>

-<PRE>

-java.lang.ClassLoader <B>getClassLoader</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getNamespace()"><!-- --></A><H3>

-getNamespace</H3>

-<PRE>

-java.lang.String <B>getNamespace</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ILoadingContext.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/ILoadingContext.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ILoadingContext.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/ILogger.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/ILogger.html
deleted file mode 100644
index c552011..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/ILogger.html
+++ /dev/null
@@ -1,333 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:36 CET 2009 -->

-<TITLE>

-ILogger

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.ILogger interface">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="ILogger";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ILogger.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/ILogger.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ILogger.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt</FONT>

-<BR>

-Interface ILogger</H2>

-<HR>

-<DL>

-<DT><PRE>public interface <B>ILogger</B></DL>

-</PRE>

-

-<P>

-Looger interface

-<P>

-

-<P>

-<DL>

-<DT><B>Author:</B></DT>

-  <DD>yyang</DD>

-</DL>

-<HR>

-

-<P>

-

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILogger.html#addMessage(java.lang.String, org.eclipse.xwt.Tracking)">addMessage</A></B>(java.lang.String&nbsp;message,

-           <A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILogger.html#error(java.lang.Throwable)">error</A></B>(java.lang.Throwable&nbsp;e)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILogger.html#error(java.lang.Throwable, java.lang.String)">error</A></B>(java.lang.Throwable&nbsp;e,

-      java.lang.String&nbsp;message)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILogger.html#message(java.lang.String)">message</A></B>(java.lang.String&nbsp;message)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILogger.html#printInfo(java.lang.String, org.eclipse.xwt.Tracking, java.util.Set)">printInfo</A></B>(java.lang.String&nbsp;message,

-          <A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking,

-          java.util.Set&lt;<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&gt;&nbsp;trackType)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILogger.html#removeMessage(org.eclipse.xwt.Tracking)">removeMessage</A></B>(<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILogger.html#warning(java.lang.String)">warning</A></B>(java.lang.String&nbsp;message)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="error(java.lang.Throwable)"><!-- --></A><H3>

-error</H3>

-<PRE>

-void <B>error</B>(java.lang.Throwable&nbsp;e)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="error(java.lang.Throwable, java.lang.String)"><!-- --></A><H3>

-error</H3>

-<PRE>

-void <B>error</B>(java.lang.Throwable&nbsp;e,

-           java.lang.String&nbsp;message)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="warning(java.lang.String)"><!-- --></A><H3>

-warning</H3>

-<PRE>

-void <B>warning</B>(java.lang.String&nbsp;message)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="message(java.lang.String)"><!-- --></A><H3>

-message</H3>

-<PRE>

-void <B>message</B>(java.lang.String&nbsp;message)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="printInfo(java.lang.String, org.eclipse.xwt.Tracking, java.util.Set)"><!-- --></A><H3>

-printInfo</H3>

-<PRE>

-void <B>printInfo</B>(java.lang.String&nbsp;message,

-               <A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking,

-               java.util.Set&lt;<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&gt;&nbsp;trackType)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="addMessage(java.lang.String, org.eclipse.xwt.Tracking)"><!-- --></A><H3>

-addMessage</H3>

-<PRE>

-void <B>addMessage</B>(java.lang.String&nbsp;message,

-                <A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="removeMessage(org.eclipse.xwt.Tracking)"><!-- --></A><H3>

-removeMessage</H3>

-<PRE>

-void <B>removeMessage</B>(<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ILogger.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/ILogger.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ILogger.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/IMetaclassFactory.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/IMetaclassFactory.html
deleted file mode 100644
index 241ca1c..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/IMetaclassFactory.html
+++ /dev/null
@@ -1,232 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:36 CET 2009 -->

-<TITLE>

-IMetaclassFactory

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.IMetaclassFactory interface">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="IMetaclassFactory";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IMetaclassFactory.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/IMetaclassFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IMetaclassFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt</FONT>

-<BR>

-Interface IMetaclassFactory</H2>

-<HR>

-<DL>

-<DT><PRE>public interface <B>IMetaclassFactory</B></DL>

-</PRE>

-

-<P>

-Metaclass factory provides a customizable Metaclass creation mechanism.

-<P>

-

-<P>

-<DL>

-<DT><B>Author:</B></DT>

-  <DD>yyang</DD>

-</DL>

-<HR>

-

-<P>

-

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IMetaclassFactory.html#create(java.lang.Class, org.eclipse.xwt.metadata.IMetaclass)">create</A></B>(java.lang.Class&lt;?&gt;&nbsp;type,

-       <A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;superMetaclass)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;boolean</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IMetaclassFactory.html#isFactoryOf(java.lang.Class)">isFactoryOf</A></B>(java.lang.Class&lt;?&gt;&nbsp;type)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="isFactoryOf(java.lang.Class)"><!-- --></A><H3>

-isFactoryOf</H3>

-<PRE>

-boolean <B>isFactoryOf</B>(java.lang.Class&lt;?&gt;&nbsp;type)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="create(java.lang.Class, org.eclipse.xwt.metadata.IMetaclass)"><!-- --></A><H3>

-create</H3>

-<PRE>

-<A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A> <B>create</B>(java.lang.Class&lt;?&gt;&nbsp;type,

-                  <A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;superMetaclass)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IMetaclassFactory.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/IMetaclassFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IMetaclassFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/IStyleProvider.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/IStyleProvider.html
deleted file mode 100644
index 3c8d0f4..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/IStyleProvider.html
+++ /dev/null
@@ -1,209 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:32 CET 2009 -->

-<TITLE>

-IStyleProvider

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.IStyleProvider interface">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="IStyleProvider";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IStyleProvider.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/IStyleProvider.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IStyleProvider.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt</FONT>

-<BR>

-Interface IStyleProvider</H2>

-<HR>

-<DL>

-<DT><PRE>public interface <B>IStyleProvider</B></DL>

-</PRE>

-

-<P>

-<DL>

-<DT><B>Author:</B></DT>

-  <DD>yyang</DD>

-</DL>

-<HR>

-

-<P>

-

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IStyleProvider.html#apply(java.lang.String, org.eclipse.swt.widgets.Widget)">apply</A></B>(java.lang.String&nbsp;content,

-      org.eclipse.swt.widgets.Widget&nbsp;toApply)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="apply(java.lang.String, org.eclipse.swt.widgets.Widget)"><!-- --></A><H3>

-apply</H3>

-<PRE>

-void <B>apply</B>(java.lang.String&nbsp;content,

-           org.eclipse.swt.widgets.Widget&nbsp;toApply)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IStyleProvider.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/IStyleProvider.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IStyleProvider.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/ResourceDictionary.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/ResourceDictionary.html
deleted file mode 100644
index c48080a..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/ResourceDictionary.html
+++ /dev/null
@@ -1,255 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:36 CET 2009 -->

-<TITLE>

-ResourceDictionary

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.ResourceDictionary class">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="ResourceDictionary";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ResourceDictionary.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/ResourceDictionary.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ResourceDictionary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.util.HashMap">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt</FONT>

-<BR>

-Class ResourceDictionary</H2>

-<PRE>

-java.lang.Object

-  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">java.util.AbstractMap&lt;K,V&gt;

-      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">java.util.HashMap&lt;java.lang.String,java.lang.Object&gt;

-          <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.ResourceDictionary</B>

-</PRE>

-<DL>

-<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable, java.lang.Cloneable, java.util.Map&lt;java.lang.String,java.lang.Object&gt;</DD>

-</DL>

-<HR>

-<DL>

-<DT><PRE>public class <B>ResourceDictionary</B><DT>extends java.util.HashMap&lt;java.lang.String,java.lang.Object&gt;</DL>

-</PRE>

-

-<P>

-<DL>

-<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#org.eclipse.xwt.ResourceDictionary">Serialized Form</A></DL>

-<HR>

-

-<P>

-

-<!-- ======== CONSTRUCTOR SUMMARY ======== -->

-

-<A NAME="constructor_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Constructor Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html#ResourceDictionary()">ResourceDictionary</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.util.HashMap"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.util.HashMap</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>clear, clone, containsKey, containsValue, entrySet, get, isEmpty, keySet, put, putAll, remove, size, values</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.util.AbstractMap"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.util.AbstractMap</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>equals, hashCode, toString</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>getClass, notify, notifyAll, wait, wait, wait</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.util.Map"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from interface java.util.Map</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>equals, hashCode</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ========= CONSTRUCTOR DETAIL ======== -->

-

-<A NAME="constructor_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Constructor Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="ResourceDictionary()"><!-- --></A><H3>

-ResourceDictionary</H3>

-<PRE>

-public <B>ResourceDictionary</B>()</PRE>

-<DL>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ResourceDictionary.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/ResourceDictionary.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ResourceDictionary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.util.HashMap">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/Tracking.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/Tracking.html
deleted file mode 100644
index 5171980..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/Tracking.html
+++ /dev/null
@@ -1,318 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:36 CET 2009 -->

-<TITLE>

-Tracking

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.Tracking class">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Tracking";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Tracking.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/Tracking.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="Tracking.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt</FONT>

-<BR>

-Enum Tracking</H2>

-<PRE>

-java.lang.Object

-  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">java.lang.Enum&lt;<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&gt;

-      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.Tracking</B>

-</PRE>

-<DL>

-<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable, java.lang.Comparable&lt;<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&gt;</DD>

-</DL>

-<HR>

-<DL>

-<DT><PRE>public enum <B>Tracking</B><DT>extends java.lang.Enum&lt;<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&gt;</DL>

-</PRE>

-

-<P>

-<HR>

-

-<P>

-<!-- =========== ENUM CONSTANT SUMMARY =========== -->

-

-<A NAME="enum_constant_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Enum Constant Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/Tracking.html#DATABINDING">DATABINDING</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/Tracking.html#NAME">NAME</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/Tracking.html#valueOf(java.lang.String)">valueOf</A></B>(java.lang.String&nbsp;name)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>[]</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/Tracking.html#values()">values</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in

-the order they're declared.</TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Enum"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Enum</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>getClass, notify, notifyAll, wait, wait, wait</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ============ ENUM CONSTANT DETAIL =========== -->

-

-<A NAME="enum_constant_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Enum Constant Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="DATABINDING"><!-- --></A><H3>

-DATABINDING</H3>

-<PRE>

-public static final <A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A> <B>DATABINDING</B></PRE>

-<DL>

-<DL>

-</DL>

-</DL>

-<HR>

-

-<A NAME="NAME"><!-- --></A><H3>

-NAME</H3>

-<PRE>

-public static final <A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A> <B>NAME</B></PRE>

-<DL>

-<DL>

-</DL>

-</DL>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="values()"><!-- --></A><H3>

-values</H3>

-<PRE>

-public static final <A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>[] <B>values</B>()</PRE>

-<DL>

-<DD>Returns an array containing the constants of this enum type, in

-the order they're declared.  This method may be used to iterate

-over the constants as follows:

-<pre>

-for(Tracking c : Tracking.values())

-        System.out.println(c);

-</pre>

-<P>

-<DD><DL>

-

-<DT><B>Returns:</B><DD>an array containing the constants of this enum type, in

-the order they're declared</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="valueOf(java.lang.String)"><!-- --></A><H3>

-valueOf</H3>

-<PRE>

-public static <A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A> <B>valueOf</B>(java.lang.String&nbsp;name)</PRE>

-<DL>

-<DD>Returns the enum constant of this type with the specified name.

-The string must match <I>exactly</I> an identifier used to declare an

-enum constant in this type.  (Extraneous whitespace characters are 

-not permitted.)

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the enum constant to be returned.

-<DT><B>Returns:</B><DD>the enum constant with the specified name

-<DT><B>Throws:</B>

-<DD><CODE>java.lang.IllegalArgumentException</CODE> - if this enum type has no constant

-with the specified name</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Tracking.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/Tracking.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="Tracking.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/XWT.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/XWT.html
deleted file mode 100644
index 3a6c9cf..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/XWT.html
+++ /dev/null
@@ -1,1431 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:36 CET 2009 -->

-<TITLE>

-XWT

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.XWT class">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="XWT";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/XWT.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/XWT.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="XWT.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt</FONT>

-<BR>

-Class XWT</H2>

-<PRE>

-java.lang.Object

-  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.XWT</B>

-</PRE>

-<HR>

-<DL>

-<DT><PRE>public class <B>XWT</B><DT>extends java.lang.Object</DL>

-</PRE>

-

-<P>

-XWT is the main class of the XWT framework. It provides most of the services in API.

-<P>

-

-<P>

-<DL>

-<DT><B>Author:</B></DT>

-  <DD>jliu and yyang</DD>

-</DL>

-<HR>

-

-<P>

-

-<!-- ======== CONSTRUCTOR SUMMARY ======== -->

-

-<A NAME="constructor_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Constructor Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#XWT()">XWT</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#addTracking(org.eclipse.xwt.Tracking)">addTracking</A></B>(<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add a tracking option</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#convertFrom(java.lang.Class, java.lang.String)">convertFrom</A></B>(java.lang.Class&lt;?&gt;&nbsp;targetType,

-            java.lang.String&nbsp;string)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Data conversion service from String to a given type</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#convertFrom(org.eclipse.xwt.metadata.IMetaclass, java.lang.String)">convertFrom</A></B>(<A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;type,

-            java.lang.String&nbsp;string)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Data conversion service from String to a given type</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;org.eclipse.swt.widgets.Composite</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#findCompositeParent(org.eclipse.swt.widgets.Widget)">findCompositeParent</A></B>(org.eclipse.swt.widgets.Widget&nbsp;context)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Find the closet parent of type Composite</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;org.eclipse.core.databinding.conversion.IConverter</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#findConvertor(java.lang.Class, java.lang.Class)">findConvertor</A></B>(java.lang.Class&lt;?&gt;&nbsp;source,

-              java.lang.Class&lt;?&gt;&nbsp;target)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Find a Data converter</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#findElementByName(org.eclipse.swt.widgets.Widget, java.lang.String)">findElementByName</A></B>(org.eclipse.swt.widgets.Widget&nbsp;context,

-                  java.lang.String&nbsp;name)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Find a named UI element.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#findLoadingContext(java.lang.Object)">findLoadingContext</A></B>(java.lang.Object&nbsp;container)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;org.eclipse.xwt.impl.NameContext</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#findNameContext(org.eclipse.swt.widgets.Widget)">findNameContext</A></B>(org.eclipse.swt.widgets.Widget&nbsp;widget)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A NameContext is a manager of UI element's name in a scope.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;org.eclipse.swt.widgets.Shell</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#findShell(org.eclipse.swt.widgets.Widget)">findShell</A></B>(org.eclipse.swt.widgets.Widget&nbsp;context)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Find the root shell</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>[]</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#getAllMetaclasses()">getAllMetaclasses</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Metaclass services to return all registered Metaclasses.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#getCLR(org.eclipse.swt.widgets.Widget)">getCLR</A></B>(org.eclipse.swt.widgets.Widget&nbsp;widget)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the CLR (Common Language Runtime) object.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#getCommand(java.lang.String)">getCommand</A></B>(java.lang.String&nbsp;name)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Find a command by name</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.util.Map&lt;java.lang.String,<A HREF="../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&gt;</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#getCommands()">getCommands</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return all registered commands</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;org.eclipse.xwt.XWT.ConverterService</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#getConverterService()">getConverterService</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#getDataContext(org.eclipse.swt.widgets.Widget)">getDataContext</A></B>(org.eclipse.swt.widgets.Widget&nbsp;element)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the DataContext of given element</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#getLoadingContext()">getLoadingContext</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#getLoadingContext(org.eclipse.swt.widgets.Composite)">getLoadingContext</A></B>(org.eclipse.swt.widgets.Composite&nbsp;object)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#getLogger()">getLogger</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the system logger.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#getMetaclass(java.lang.Object)">getMetaclass</A></B>(java.lang.Object&nbsp;object)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the Metaclass of the given object</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#getMetaclass(java.lang.String, java.lang.String)">getMetaclass</A></B>(java.lang.String&nbsp;tagName,

-             java.lang.String&nbsp;ns)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the corresponding Metaclass</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#getNamespace(java.lang.Class)">getNamespace</A></B>(java.lang.Class&lt;?&gt;&nbsp;javaclass)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This namespace service returns the associated or declared namespace for a given class.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.util.Set&lt;<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&gt;</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#getTrackings()">getTrackings</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get all tracking options</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;boolean</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#IsInitialized()">IsInitialized</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Check if the framework is initialized.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;boolean</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#isTracking(org.eclipse.xwt.Tracking)">isTracking</A></B>(<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Test if the tracking on argument is enabled.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.io.InputStream, java.net.URL, int, java.lang.Object)">load</A></B>(org.eclipse.swt.widgets.Composite&nbsp;parent,

-     java.io.InputStream&nbsp;stream,

-     java.net.URL&nbsp;file,

-     int&nbsp;styles,

-     java.lang.Object&nbsp;dataContext)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;load the content from a stream with a style and a DataContext.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.io.InputStream, java.net.URL, int, java.lang.Object, org.eclipse.xwt.ResourceDictionary)">load</A></B>(org.eclipse.swt.widgets.Composite&nbsp;parent,

-     java.io.InputStream&nbsp;stream,

-     java.net.URL&nbsp;file,

-     int&nbsp;styles,

-     java.lang.Object&nbsp;dataContext,

-     <A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dictionary)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;load the content from a stream with a style, a DataContext and a ResourceDictionary.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.io.InputStream, java.net.URL, java.lang.Object)">load</A></B>(org.eclipse.swt.widgets.Composite&nbsp;parent,

-     java.io.InputStream&nbsp;stream,

-     java.net.URL&nbsp;file,

-     java.lang.Object&nbsp;dataContext)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;load the content from a stream with a given DataContext.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.net.URL)">load</A></B>(org.eclipse.swt.widgets.Composite&nbsp;parent,

-     java.net.URL&nbsp;file)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Load the file content under a Composite.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.net.URL, int, java.lang.Object)">load</A></B>(org.eclipse.swt.widgets.Composite&nbsp;parent,

-     java.net.URL&nbsp;file,

-     int&nbsp;styles,

-     java.lang.Object&nbsp;dataContext)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Load the file content under a Composite with a style and a DataContext.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.net.URL, int, java.lang.Object, org.eclipse.xwt.ResourceDictionary)">load</A></B>(org.eclipse.swt.widgets.Composite&nbsp;parent,

-     java.net.URL&nbsp;file,

-     int&nbsp;styles,

-     java.lang.Object&nbsp;dataContext,

-     <A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dictionary)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Load the file content under a Composite with a style, a DataContext and a ResourceDictionary.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.net.URL, java.lang.Object)">load</A></B>(org.eclipse.swt.widgets.Composite&nbsp;parent,

-     java.net.URL&nbsp;file,

-     java.lang.Object&nbsp;dataContext)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Load the file content under a Composite with a DataContext.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#load(java.io.InputStream, java.net.URL)">load</A></B>(java.io.InputStream&nbsp;stream,

-     java.net.URL&nbsp;file)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;load the file content.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#load(java.io.InputStream, java.net.URL, org.eclipse.xwt.ILoadData)">load</A></B>(java.io.InputStream&nbsp;stream,

-     java.net.URL&nbsp;url,

-     <A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A>&nbsp;loadData)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generic load method</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#load(java.net.URL)">load</A></B>(java.net.URL&nbsp;file)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Load the file content.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#load(java.net.URL, int, java.lang.Object)">load</A></B>(java.net.URL&nbsp;file,

-     int&nbsp;styles,

-     java.lang.Object&nbsp;dataContext)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Load the file content with a DataContext.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#load(java.net.URL, int, java.lang.Object, org.eclipse.xwt.ResourceDictionary)">load</A></B>(java.net.URL&nbsp;file,

-     int&nbsp;styles,

-     java.lang.Object&nbsp;dataContext,

-     <A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dictionary)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Load the file content with a DataContext and a ResourceDictionary.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#load(java.net.URL, java.lang.Object)">load</A></B>(java.net.URL&nbsp;file,

-     java.lang.Object&nbsp;dataContext)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Load the file content with a DataContext.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#open(java.net.URL)">open</A></B>(java.net.URL&nbsp;url)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Open and show the file content in a new Shell.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#open(java.net.URL, java.lang.Object)">open</A></B>(java.net.URL&nbsp;url,

-     java.lang.Object&nbsp;dataContext)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;load the file content.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#open(java.net.URL, java.lang.Object, org.eclipse.xwt.ResourceDictionary)">open</A></B>(java.net.URL&nbsp;url,

-     java.lang.Object&nbsp;dataContext,

-     <A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dictionary)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;load the file content.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#register(java.lang.Class, java.lang.String)">register</A></B>(java.lang.Class&lt;?&gt;&nbsp;javaclass,

-         java.lang.String&nbsp;namespace)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Register UI type</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#registerCommand(java.lang.String, org.eclipse.xwt.input.ICommand)">registerCommand</A></B>(java.lang.String&nbsp;name,

-                <A HREF="../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&nbsp;command)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Register a command to a name</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#registerConvertor(org.eclipse.core.databinding.conversion.IConverter)">registerConvertor</A></B>(org.eclipse.core.databinding.conversion.IConverter&nbsp;converter)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Register a Data converter</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#registerMetaclass(java.lang.Class)">registerMetaclass</A></B>(java.lang.Class&nbsp;type)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Register UI type</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#registerMetaclassFactory(org.eclipse.xwt.IMetaclassFactory)">registerMetaclassFactory</A></B>(<A HREF="../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt">IMetaclassFactory</A>&nbsp;metaclassFactory)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Register Metaclass factory</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#removeTracking(org.eclipse.xwt.Tracking)">removeTracking</A></B>(<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Remove a tracking option.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#setDataContext(org.eclipse.swt.widgets.Widget, java.lang.Object)">setDataContext</A></B>(org.eclipse.swt.widgets.Widget&nbsp;widget,

-               java.lang.Object&nbsp;dataContext)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Change the DataContext of given element</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#setLoadingContext(org.eclipse.xwt.ILoadingContext)">setLoadingContext</A></B>(<A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A>&nbsp;loadingContext)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#setLogger(org.eclipse.xwt.ILogger)">setLogger</A></B>(<A HREF="../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A>&nbsp;logger)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Change the system logger</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#unregisterCommand(java.lang.String)">unregisterCommand</A></B>(java.lang.String&nbsp;name)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unregister a command</TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ========= CONSTRUCTOR DETAIL ======== -->

-

-<A NAME="constructor_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Constructor Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="XWT()"><!-- --></A><H3>

-XWT</H3>

-<PRE>

-public <B>XWT</B>()</PRE>

-<DL>

-</DL>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="getLogger()"><!-- --></A><H3>

-getLogger</H3>

-<PRE>

-public static <A HREF="../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A> <B>getLogger</B>()</PRE>

-<DL>

-<DD>Get the system logger.

-<P>

-<DD><DL>

-

-<DT><B>Returns:</B><DD></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="setLogger(org.eclipse.xwt.ILogger)"><!-- --></A><H3>

-setLogger</H3>

-<PRE>

-public static void <B>setLogger</B>(<A HREF="../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A>&nbsp;logger)</PRE>

-<DL>

-<DD>Change the system logger

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>logger</CODE> - </DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="IsInitialized()"><!-- --></A><H3>

-IsInitialized</H3>

-<PRE>

-public static boolean <B>IsInitialized</B>()</PRE>

-<DL>

-<DD>Check if the framework is initialized.

-<P>

-<DD><DL>

-

-<DT><B>Returns:</B><DD></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getNamespace(java.lang.Class)"><!-- --></A><H3>

-getNamespace</H3>

-<PRE>

-public static java.lang.String <B>getNamespace</B>(java.lang.Class&lt;?&gt;&nbsp;javaclass)</PRE>

-<DL>

-<DD>This namespace service returns the associated or declared namespace for a given class.

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>javaclass</CODE> - 

-<DT><B>Returns:</B><DD></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="findNameContext(org.eclipse.swt.widgets.Widget)"><!-- --></A><H3>

-findNameContext</H3>

-<PRE>

-public static org.eclipse.xwt.impl.NameContext <B>findNameContext</B>(org.eclipse.swt.widgets.Widget&nbsp;widget)</PRE>

-<DL>

-<DD>A NameContext is a manager of UI element's name in a scope. A name in a NameContext must be unique.

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>widget</CODE> - 

-<DT><B>Returns:</B><DD></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="findElementByName(org.eclipse.swt.widgets.Widget, java.lang.String)"><!-- --></A><H3>

-findElementByName</H3>

-<PRE>

-public static java.lang.Object <B>findElementByName</B>(org.eclipse.swt.widgets.Widget&nbsp;context,

-                                                 java.lang.String&nbsp;name)</PRE>

-<DL>

-<DD>Find a named UI element.

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>context</CODE> - the start point of research.<DD><CODE>name</CODE> - 

-<DT><B>Returns:</B><DD></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getDataContext(org.eclipse.swt.widgets.Widget)"><!-- --></A><H3>

-getDataContext</H3>

-<PRE>

-public static java.lang.Object <B>getDataContext</B>(org.eclipse.swt.widgets.Widget&nbsp;element)</PRE>

-<DL>

-<DD>Get the DataContext of given element

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>context</CODE> - 

-<DT><B>Returns:</B><DD></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="setDataContext(org.eclipse.swt.widgets.Widget, java.lang.Object)"><!-- --></A><H3>

-setDataContext</H3>

-<PRE>

-public static void <B>setDataContext</B>(org.eclipse.swt.widgets.Widget&nbsp;widget,

-                                  java.lang.Object&nbsp;dataContext)</PRE>

-<DL>

-<DD>Change the DataContext of given element

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>context</CODE> - </DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getCLR(org.eclipse.swt.widgets.Widget)"><!-- --></A><H3>

-getCLR</H3>

-<PRE>

-public static java.lang.Object <B>getCLR</B>(org.eclipse.swt.widgets.Widget&nbsp;widget)</PRE>

-<DL>

-<DD>Get the CLR (Common Language Runtime) object. If no CLR object is found in this element, the research will be propagated in it parent.

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>widget</CODE> - 

-<DT><B>Returns:</B><DD></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="findShell(org.eclipse.swt.widgets.Widget)"><!-- --></A><H3>

-findShell</H3>

-<PRE>

-public static org.eclipse.swt.widgets.Shell <B>findShell</B>(org.eclipse.swt.widgets.Widget&nbsp;context)</PRE>

-<DL>

-<DD>Find the root shell

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>context</CODE> - 

-<DT><B>Returns:</B><DD></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="findCompositeParent(org.eclipse.swt.widgets.Widget)"><!-- --></A><H3>

-findCompositeParent</H3>

-<PRE>

-public static org.eclipse.swt.widgets.Composite <B>findCompositeParent</B>(org.eclipse.swt.widgets.Widget&nbsp;context)</PRE>

-<DL>

-<DD>Find the closet parent of type Composite

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>context</CODE> - 

-<DT><B>Returns:</B><DD></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getMetaclass(java.lang.Object)"><!-- --></A><H3>

-getMetaclass</H3>

-<PRE>

-public static <A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A> <B>getMetaclass</B>(java.lang.Object&nbsp;object)</PRE>

-<DL>

-<DD>Get the Metaclass of the given object

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>context</CODE> - 

-<DT><B>Returns:</B><DD></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="load(java.net.URL)"><!-- --></A><H3>

-load</H3>

-<PRE>

-public static org.eclipse.swt.widgets.Control <B>load</B>(java.net.URL&nbsp;file)

-                                            throws java.lang.Exception</PRE>

-<DL>

-<DD>Load the file content. All widget will be created but they are showed. This method return the root element.

-<P>

-<DD><DL>

-

-<DT><B>Throws:</B>

-<DD><CODE>java.lang.Exception</CODE></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="load(java.net.URL, int, java.lang.Object)"><!-- --></A><H3>

-load</H3>

-<PRE>

-public static org.eclipse.swt.widgets.Control <B>load</B>(java.net.URL&nbsp;file,

-                                                   int&nbsp;styles,

-                                                   java.lang.Object&nbsp;dataContext)

-                                            throws java.lang.Exception</PRE>

-<DL>

-<DD>Load the file content with a DataContext. All widget will be created but they are showed. This method returns the root element. The DataContext will be associated to the root element.

-<P>

-<DD><DL>

-

-<DT><B>Throws:</B>

-<DD><CODE>java.lang.Exception</CODE></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="load(java.net.URL, int, java.lang.Object, org.eclipse.xwt.ResourceDictionary)"><!-- --></A><H3>

-load</H3>

-<PRE>

-public static org.eclipse.swt.widgets.Control <B>load</B>(java.net.URL&nbsp;file,

-                                                   int&nbsp;styles,

-                                                   java.lang.Object&nbsp;dataContext,

-                                                   <A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dictionary)

-                                            throws java.lang.Exception</PRE>

-<DL>

-<DD>Load the file content with a DataContext and a ResourceDictionary. All widget will be created but they are showed. This method returns the root element. The DataContext will be associated to the root element.

-<P>

-<DD><DL>

-

-<DT><B>Throws:</B>

-<DD><CODE>java.lang.Exception</CODE></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="load(java.net.URL, java.lang.Object)"><!-- --></A><H3>

-load</H3>

-<PRE>

-public static org.eclipse.swt.widgets.Control <B>load</B>(java.net.URL&nbsp;file,

-                                                   java.lang.Object&nbsp;dataContext)

-                                            throws java.lang.Exception</PRE>

-<DL>

-<DD>Load the file content with a DataContext. All widget will be created but they are showed. This method returns the root element. The DataContext will be associated to the root element.

-<P>

-<DD><DL>

-

-<DT><B>Throws:</B>

-<DD><CODE>java.lang.Exception</CODE></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="load(org.eclipse.swt.widgets.Composite, java.net.URL)"><!-- --></A><H3>

-load</H3>

-<PRE>

-public static org.eclipse.swt.widgets.Control <B>load</B>(org.eclipse.swt.widgets.Composite&nbsp;parent,

-                                                   java.net.URL&nbsp;file)

-                                            throws java.lang.Exception</PRE>

-<DL>

-<DD>Load the file content under a Composite. All widget will be created. This method returns the root element. The DataContext will be associated to the root element.

-<P>

-<DD><DL>

-

-<DT><B>Throws:</B>

-<DD><CODE>java.lang.Exception</CODE></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="load(org.eclipse.swt.widgets.Composite, java.net.URL, java.lang.Object)"><!-- --></A><H3>

-load</H3>

-<PRE>

-public static org.eclipse.swt.widgets.Control <B>load</B>(org.eclipse.swt.widgets.Composite&nbsp;parent,

-                                                   java.net.URL&nbsp;file,

-                                                   java.lang.Object&nbsp;dataContext)

-                                            throws java.lang.Exception</PRE>

-<DL>

-<DD>Load the file content under a Composite with a DataContext. All widget will be created. This method returns the root element. The DataContext will be associated to the root element.

-<P>

-<DD><DL>

-

-<DT><B>Throws:</B>

-<DD><CODE>java.lang.Exception</CODE></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="load(org.eclipse.swt.widgets.Composite, java.net.URL, int, java.lang.Object)"><!-- --></A><H3>

-load</H3>

-<PRE>

-public static org.eclipse.swt.widgets.Control <B>load</B>(org.eclipse.swt.widgets.Composite&nbsp;parent,

-                                                   java.net.URL&nbsp;file,

-                                                   int&nbsp;styles,

-                                                   java.lang.Object&nbsp;dataContext)

-                                            throws java.lang.Exception</PRE>

-<DL>

-<DD>Load the file content under a Composite with a style and a DataContext. All widget will be created. This method returns the root element. The DataContext will be associated to the root element.

-<P>

-<DD><DL>

-

-<DT><B>Throws:</B>

-<DD><CODE>java.lang.Exception</CODE></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="load(org.eclipse.swt.widgets.Composite, java.net.URL, int, java.lang.Object, org.eclipse.xwt.ResourceDictionary)"><!-- --></A><H3>

-load</H3>

-<PRE>

-public static org.eclipse.swt.widgets.Control <B>load</B>(org.eclipse.swt.widgets.Composite&nbsp;parent,

-                                                   java.net.URL&nbsp;file,

-                                                   int&nbsp;styles,

-                                                   java.lang.Object&nbsp;dataContext,

-                                                   <A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dictionary)

-                                            throws java.lang.Exception</PRE>

-<DL>

-<DD>Load the file content under a Composite with a style, a DataContext and a ResourceDictionary. All widget will be created. This method returns the root element. The DataContext will be associated to the root element.

-<P>

-<DD><DL>

-

-<DT><B>Throws:</B>

-<DD><CODE>java.lang.Exception</CODE></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="open(java.net.URL)"><!-- --></A><H3>

-open</H3>

-<PRE>

-public static void <B>open</B>(java.net.URL&nbsp;url)

-                 throws java.lang.Exception</PRE>

-<DL>

-<DD>Open and show the file content in a new Shell.

-<P>

-<DD><DL>

-

-<DT><B>Throws:</B>

-<DD><CODE>java.lang.Exception</CODE></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="load(java.io.InputStream, java.net.URL)"><!-- --></A><H3>

-load</H3>

-<PRE>

-public static org.eclipse.swt.widgets.Control <B>load</B>(java.io.InputStream&nbsp;stream,

-                                                   java.net.URL&nbsp;file)

-                                            throws java.lang.Exception</PRE>

-<DL>

-<DD>load the file content. The corresponding UI element is not yet created

-<P>

-<DD><DL>

-

-<DT><B>Throws:</B>

-<DD><CODE>java.lang.Exception</CODE></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="load(org.eclipse.swt.widgets.Composite, java.io.InputStream, java.net.URL, java.lang.Object)"><!-- --></A><H3>

-load</H3>

-<PRE>

-public static org.eclipse.swt.widgets.Control <B>load</B>(org.eclipse.swt.widgets.Composite&nbsp;parent,

-                                                   java.io.InputStream&nbsp;stream,

-                                                   java.net.URL&nbsp;file,

-                                                   java.lang.Object&nbsp;dataContext)

-                                            throws java.lang.Exception</PRE>

-<DL>

-<DD>load the content from a stream with a given DataContext. The root elements will be hold by Composite parent

-<P>

-<DD><DL>

-

-<DT><B>Throws:</B>

-<DD><CODE>java.lang.Exception</CODE></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="load(org.eclipse.swt.widgets.Composite, java.io.InputStream, java.net.URL, int, java.lang.Object)"><!-- --></A><H3>

-load</H3>

-<PRE>

-public static org.eclipse.swt.widgets.Control <B>load</B>(org.eclipse.swt.widgets.Composite&nbsp;parent,

-                                                   java.io.InputStream&nbsp;stream,

-                                                   java.net.URL&nbsp;file,

-                                                   int&nbsp;styles,

-                                                   java.lang.Object&nbsp;dataContext)

-                                            throws java.lang.Exception</PRE>

-<DL>

-<DD>load the content from a stream with a style and a DataContext. The root elements will be hold by Composite parent

-<P>

-<DD><DL>

-

-<DT><B>Throws:</B>

-<DD><CODE>java.lang.Exception</CODE></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="load(org.eclipse.swt.widgets.Composite, java.io.InputStream, java.net.URL, int, java.lang.Object, org.eclipse.xwt.ResourceDictionary)"><!-- --></A><H3>

-load</H3>

-<PRE>

-public static org.eclipse.swt.widgets.Control <B>load</B>(org.eclipse.swt.widgets.Composite&nbsp;parent,

-                                                   java.io.InputStream&nbsp;stream,

-                                                   java.net.URL&nbsp;file,

-                                                   int&nbsp;styles,

-                                                   java.lang.Object&nbsp;dataContext,

-                                                   <A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dictionary)

-                                            throws java.lang.Exception</PRE>

-<DL>

-<DD>load the content from a stream with a style, a DataContext and a ResourceDictionary. The root elements will be hold by Composite parent

-<P>

-<DD><DL>

-

-<DT><B>Throws:</B>

-<DD><CODE>java.lang.Exception</CODE></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="open(java.net.URL, java.lang.Object)"><!-- --></A><H3>

-open</H3>

-<PRE>

-public static void <B>open</B>(java.net.URL&nbsp;url,

-                        java.lang.Object&nbsp;dataContext)

-                 throws java.lang.Exception</PRE>

-<DL>

-<DD>load the file content. The corresponding UI element is not yet created

-<P>

-<DD><DL>

-

-<DT><B>Throws:</B>

-<DD><CODE>java.lang.Exception</CODE></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="open(java.net.URL, java.lang.Object, org.eclipse.xwt.ResourceDictionary)"><!-- --></A><H3>

-open</H3>

-<PRE>

-public static void <B>open</B>(java.net.URL&nbsp;url,

-                        java.lang.Object&nbsp;dataContext,

-                        <A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dictionary)

-                 throws java.lang.Exception</PRE>

-<DL>

-<DD>load the file content. The corresponding UI element is not yet created

-<P>

-<DD><DL>

-

-<DT><B>Throws:</B>

-<DD><CODE>java.lang.Exception</CODE></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="convertFrom(org.eclipse.xwt.metadata.IMetaclass, java.lang.String)"><!-- --></A><H3>

-convertFrom</H3>

-<PRE>

-public static java.lang.Object <B>convertFrom</B>(<A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;type,

-                                           java.lang.String&nbsp;string)</PRE>

-<DL>

-<DD>Data conversion service from String to a given type

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>type</CODE> - <DD><CODE>string</CODE> - 

-<DT><B>Returns:</B><DD></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="convertFrom(java.lang.Class, java.lang.String)"><!-- --></A><H3>

-convertFrom</H3>

-<PRE>

-public static java.lang.Object <B>convertFrom</B>(java.lang.Class&lt;?&gt;&nbsp;targetType,

-                                           java.lang.String&nbsp;string)</PRE>

-<DL>

-<DD>Data conversion service from String to a given type

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>targetType</CODE> - <DD><CODE>string</CODE> - 

-<DT><B>Returns:</B><DD></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="load(java.io.InputStream, java.net.URL, org.eclipse.xwt.ILoadData)"><!-- --></A><H3>

-load</H3>

-<PRE>

-public static org.eclipse.swt.widgets.Control <B>load</B>(java.io.InputStream&nbsp;stream,

-                                                   java.net.URL&nbsp;url,

-                                                   <A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A>&nbsp;loadData)

-                                            throws java.lang.Exception</PRE>

-<DL>

-<DD>Generic load method

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>stream</CODE> - <DD><CODE>url</CODE> - <DD><CODE>loadData</CODE> - 

-<DT><B>Returns:</B><DD>

-<DT><B>Throws:</B>

-<DD><CODE>java.lang.Exception</CODE></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getAllMetaclasses()"><!-- --></A><H3>

-getAllMetaclasses</H3>

-<PRE>

-public static <A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>[] <B>getAllMetaclasses</B>()</PRE>

-<DL>

-<DD>Metaclass services to return all registered Metaclasses.

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>stream</CODE> - <DD><CODE>url</CODE> - <DD><CODE>loadData</CODE> - 

-<DT><B>Returns:</B><DD>

-<DT><B>Throws:</B>

-<DD><CODE>java.lang.Exception</CODE></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getMetaclass(java.lang.String, java.lang.String)"><!-- --></A><H3>

-getMetaclass</H3>

-<PRE>

-public static <A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A> <B>getMetaclass</B>(java.lang.String&nbsp;tagName,

-                                      java.lang.String&nbsp;ns)</PRE>

-<DL>

-<DD>Get the corresponding Metaclass

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>tagName</CODE> - <DD><CODE>ns</CODE> - The namespace

-<DT><B>Returns:</B><DD></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="registerMetaclass(java.lang.Class)"><!-- --></A><H3>

-registerMetaclass</H3>

-<PRE>

-public static <A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A> <B>registerMetaclass</B>(java.lang.Class&nbsp;type)</PRE>

-<DL>

-<DD>Register UI type

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>javaclass</CODE> - </DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="registerMetaclassFactory(org.eclipse.xwt.IMetaclassFactory)"><!-- --></A><H3>

-registerMetaclassFactory</H3>

-<PRE>

-public static void <B>registerMetaclassFactory</B>(<A HREF="../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt">IMetaclassFactory</A>&nbsp;metaclassFactory)</PRE>

-<DL>

-<DD>Register Metaclass factory

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>javaclass</CODE> - </DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="register(java.lang.Class, java.lang.String)"><!-- --></A><H3>

-register</H3>

-<PRE>

-public static <A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A> <B>register</B>(java.lang.Class&lt;?&gt;&nbsp;javaclass,

-                                  java.lang.String&nbsp;namespace)</PRE>

-<DL>

-<DD>Register UI type

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>javaclass</CODE> - </DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getConverterService()"><!-- --></A><H3>

-getConverterService</H3>

-<PRE>

-public static org.eclipse.xwt.XWT.ConverterService <B>getConverterService</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="findConvertor(java.lang.Class, java.lang.Class)"><!-- --></A><H3>

-findConvertor</H3>

-<PRE>

-public static org.eclipse.core.databinding.conversion.IConverter <B>findConvertor</B>(java.lang.Class&lt;?&gt;&nbsp;source,

-                                                                               java.lang.Class&lt;?&gt;&nbsp;target)</PRE>

-<DL>

-<DD>Find a Data converter

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>converter</CODE> - <DD><CODE>type</CODE> - </DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="registerConvertor(org.eclipse.core.databinding.conversion.IConverter)"><!-- --></A><H3>

-registerConvertor</H3>

-<PRE>

-public static void <B>registerConvertor</B>(org.eclipse.core.databinding.conversion.IConverter&nbsp;converter)</PRE>

-<DL>

-<DD>Register a Data converter

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>converter</CODE> - <DD><CODE>type</CODE> - </DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="findLoadingContext(java.lang.Object)"><!-- --></A><H3>

-findLoadingContext</H3>

-<PRE>

-public static <A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A> <B>findLoadingContext</B>(java.lang.Object&nbsp;container)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getLoadingContext(org.eclipse.swt.widgets.Composite)"><!-- --></A><H3>

-getLoadingContext</H3>

-<PRE>

-public static <A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A> <B>getLoadingContext</B>(org.eclipse.swt.widgets.Composite&nbsp;object)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getLoadingContext()"><!-- --></A><H3>

-getLoadingContext</H3>

-<PRE>

-public static <A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A> <B>getLoadingContext</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="setLoadingContext(org.eclipse.xwt.ILoadingContext)"><!-- --></A><H3>

-setLoadingContext</H3>

-<PRE>

-public static void <B>setLoadingContext</B>(<A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A>&nbsp;loadingContext)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="addTracking(org.eclipse.xwt.Tracking)"><!-- --></A><H3>

-addTracking</H3>

-<PRE>

-public static void <B>addTracking</B>(<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</PRE>

-<DL>

-<DD>Add a tracking option

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>tracking</CODE> - </DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="isTracking(org.eclipse.xwt.Tracking)"><!-- --></A><H3>

-isTracking</H3>

-<PRE>

-public static boolean <B>isTracking</B>(<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</PRE>

-<DL>

-<DD>Test if the tracking on argument is enabled.

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>tracking</CODE> - 

-<DT><B>Returns:</B><DD></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getTrackings()"><!-- --></A><H3>

-getTrackings</H3>

-<PRE>

-public static java.util.Set&lt;<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&gt; <B>getTrackings</B>()</PRE>

-<DL>

-<DD>Get all tracking options

-<P>

-<DD><DL>

-

-<DT><B>Returns:</B><DD></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="removeTracking(org.eclipse.xwt.Tracking)"><!-- --></A><H3>

-removeTracking</H3>

-<PRE>

-public static void <B>removeTracking</B>(<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</PRE>

-<DL>

-<DD>Remove a tracking option.

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>tracking</CODE> - </DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="registerCommand(java.lang.String, org.eclipse.xwt.input.ICommand)"><!-- --></A><H3>

-registerCommand</H3>

-<PRE>

-public static void <B>registerCommand</B>(java.lang.String&nbsp;name,

-                                   <A HREF="../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&nbsp;command)</PRE>

-<DL>

-<DD>Register a command to a name

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>name</CODE> - <DD><CODE>command</CODE> - </DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getCommand(java.lang.String)"><!-- --></A><H3>

-getCommand</H3>

-<PRE>

-public static <A HREF="../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A> <B>getCommand</B>(java.lang.String&nbsp;name)</PRE>

-<DL>

-<DD>Find a command by name

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>name</CODE> - 

-<DT><B>Returns:</B><DD></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getCommands()"><!-- --></A><H3>

-getCommands</H3>

-<PRE>

-public static java.util.Map&lt;java.lang.String,<A HREF="../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&gt; <B>getCommands</B>()</PRE>

-<DL>

-<DD>Return all registered commands

-<P>

-<DD><DL>

-

-<DT><B>Returns:</B><DD></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="unregisterCommand(java.lang.String)"><!-- --></A><H3>

-unregisterCommand</H3>

-<PRE>

-public static void <B>unregisterCommand</B>(java.lang.String&nbsp;name)</PRE>

-<DL>

-<DD>Unregister a command

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>name</CODE> - </DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/XWT.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/XWT.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="XWT.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/XWTException.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/XWTException.html
deleted file mode 100644
index 84ac2df..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/XWTException.html
+++ /dev/null
@@ -1,282 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:36 CET 2009 -->

-<TITLE>

-XWTException

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.XWTException class">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="XWTException";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/XWTException.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/XWTException.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="XWTException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt</FONT>

-<BR>

-Class XWTException</H2>

-<PRE>

-java.lang.Object

-  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable

-      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception

-          <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">java.lang.RuntimeException

-              <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.XWTException</B>

-</PRE>

-<DL>

-<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>

-</DL>

-<HR>

-<DL>

-<DT><PRE>public class <B>XWTException</B><DT>extends java.lang.RuntimeException</DL>

-</PRE>

-

-<P>

-<DL>

-<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#org.eclipse.xwt.XWTException">Serialized Form</A></DL>

-<HR>

-

-<P>

-

-<!-- ======== CONSTRUCTOR SUMMARY ======== -->

-

-<A NAME="constructor_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Constructor Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWTException.html#XWTException()">XWTException</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWTException.html#XWTException(java.lang.String)">XWTException</A></B>(java.lang.String&nbsp;message)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWTException.html#XWTException(java.lang.String, java.lang.Throwable)">XWTException</A></B>(java.lang.String&nbsp;message,

-             java.lang.Throwable&nbsp;cause)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWTException.html#XWTException(java.lang.Throwable)">XWTException</A></B>(java.lang.Throwable&nbsp;cause)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ========= CONSTRUCTOR DETAIL ======== -->

-

-<A NAME="constructor_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Constructor Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="XWTException(java.lang.String, java.lang.Throwable)"><!-- --></A><H3>

-XWTException</H3>

-<PRE>

-public <B>XWTException</B>(java.lang.String&nbsp;message,

-                    java.lang.Throwable&nbsp;cause)</PRE>

-<DL>

-</DL>

-<HR>

-

-<A NAME="XWTException(java.lang.String)"><!-- --></A><H3>

-XWTException</H3>

-<PRE>

-public <B>XWTException</B>(java.lang.String&nbsp;message)</PRE>

-<DL>

-</DL>

-<HR>

-

-<A NAME="XWTException(java.lang.Throwable)"><!-- --></A><H3>

-XWTException</H3>

-<PRE>

-public <B>XWTException</B>(java.lang.Throwable&nbsp;cause)</PRE>

-<DL>

-</DL>

-<HR>

-

-<A NAME="XWTException()"><!-- --></A><H3>

-XWTException</H3>

-<PRE>

-public <B>XWTException</B>()</PRE>

-<DL>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/XWTException.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/XWTException.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="XWTException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/XWTMaps.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/XWTMaps.html
deleted file mode 100644
index 046e870..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/XWTMaps.html
+++ /dev/null
@@ -1,391 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:36 CET 2009 -->

-<TITLE>

-XWTMaps

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.XWTMaps class">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="XWTMaps";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/XWTMaps.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;NEXT CLASS</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/XWTMaps.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="XWTMaps.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt</FONT>

-<BR>

-Class XWTMaps</H2>

-<PRE>

-java.lang.Object

-  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.XWTMaps</B>

-</PRE>

-<HR>

-<DL>

-<DT><PRE>public class <B>XWTMaps</B><DT>extends java.lang.Object</DL>

-</PRE>

-

-<P>

-<DL>

-<DT><B>Author:</B></DT>

-  <DD>jliu</DD>

-</DL>

-<HR>

-

-<P>

-

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;int</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWTMaps.html#getAccelerator(java.lang.String)">getAccelerator</A></B>(java.lang.String&nbsp;key)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.util.Collection&lt;java.lang.String&gt;</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWTMaps.html#getAcceleratorKeys()">getAcceleratorKeys</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;int</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWTMaps.html#getColor(java.lang.String)">getColor</A></B>(java.lang.String&nbsp;key)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.util.Collection&lt;java.lang.String&gt;</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWTMaps.html#getColorKeys()">getColorKeys</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWTMaps.html#getCombAccelerator(java.lang.String)">getCombAccelerator</A></B>(java.lang.String&nbsp;content)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;int</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWTMaps.html#getEvent(java.lang.String)">getEvent</A></B>(java.lang.String&nbsp;key)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.util.Collection&lt;java.lang.String&gt;</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWTMaps.html#getEventKeys()">getEventKeys</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;int</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWTMaps.html#getStyle(java.lang.String)">getStyle</A></B>(java.lang.String&nbsp;key)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.util.Collection&lt;java.lang.String&gt;</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWTMaps.html#getStyleKeys()">getStyleKeys</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;int</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWTMaps.html#getValue(java.lang.String)">getValue</A></B>(java.lang.String&nbsp;key)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="getStyleKeys()"><!-- --></A><H3>

-getStyleKeys</H3>

-<PRE>

-public static java.util.Collection&lt;java.lang.String&gt; <B>getStyleKeys</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getStyle(java.lang.String)"><!-- --></A><H3>

-getStyle</H3>

-<PRE>

-public static int <B>getStyle</B>(java.lang.String&nbsp;key)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getColorKeys()"><!-- --></A><H3>

-getColorKeys</H3>

-<PRE>

-public static java.util.Collection&lt;java.lang.String&gt; <B>getColorKeys</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getColor(java.lang.String)"><!-- --></A><H3>

-getColor</H3>

-<PRE>

-public static int <B>getColor</B>(java.lang.String&nbsp;key)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getEventKeys()"><!-- --></A><H3>

-getEventKeys</H3>

-<PRE>

-public static java.util.Collection&lt;java.lang.String&gt; <B>getEventKeys</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getEvent(java.lang.String)"><!-- --></A><H3>

-getEvent</H3>

-<PRE>

-public static int <B>getEvent</B>(java.lang.String&nbsp;key)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getAcceleratorKeys()"><!-- --></A><H3>

-getAcceleratorKeys</H3>

-<PRE>

-public static java.util.Collection&lt;java.lang.String&gt; <B>getAcceleratorKeys</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getAccelerator(java.lang.String)"><!-- --></A><H3>

-getAccelerator</H3>

-<PRE>

-public static int <B>getAccelerator</B>(java.lang.String&nbsp;key)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getValue(java.lang.String)"><!-- --></A><H3>

-getValue</H3>

-<PRE>

-public static int <B>getValue</B>(java.lang.String&nbsp;key)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getCombAccelerator(java.lang.String)"><!-- --></A><H3>

-getCombAccelerator</H3>

-<PRE>

-public static java.lang.String <B>getCombAccelerator</B>(java.lang.String&nbsp;content)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/XWTMaps.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;NEXT CLASS</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/XWTMaps.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="XWTMaps.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/IConstants.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/IConstants.html
deleted file mode 100644
index e0d998f..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/IConstants.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Interface org.eclipse.xwt.IConstants

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Interface org.eclipse.xwt.IConstants";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useIConstants.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IConstants.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Interface<br>org.eclipse.xwt.IConstants</B></H2>

-</CENTER>

-No usage of org.eclipse.xwt.IConstants

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useIConstants.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IConstants.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/IDataBindingProvider.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/IDataBindingProvider.html
deleted file mode 100644
index f5b1fa2..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/IDataBindingProvider.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Interface org.eclipse.xwt.IDataBindingProvider

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Interface org.eclipse.xwt.IDataBindingProvider";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/IDataBindingProvider.html" title="interface in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useIDataBindingProvider.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IDataBindingProvider.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Interface<br>org.eclipse.xwt.IDataBindingProvider</B></H2>

-</CENTER>

-No usage of org.eclipse.xwt.IDataBindingProvider

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/IDataBindingProvider.html" title="interface in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useIDataBindingProvider.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IDataBindingProvider.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/ILoadData.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/ILoadData.html
deleted file mode 100644
index 0673b56..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/ILoadData.html
+++ /dev/null
@@ -1,194 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Interface org.eclipse.xwt.ILoadData

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Interface org.eclipse.xwt.ILoadData";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useILoadData.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ILoadData.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Interface<br>org.eclipse.xwt.ILoadData</B></H2>

-</CENTER>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Packages that use <A HREF="../../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt"><B>org.eclipse.xwt</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Uses of <A HREF="../../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A> in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> declared as <A HREF="../../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A></CODE></FONT></TD>

-<TD><CODE><B>ILoadData.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/ILoadData.html#DefaultLoadData">DefaultLoadData</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> with parameters of type <A HREF="../../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>

-<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#load(java.io.InputStream, java.net.URL, org.eclipse.xwt.ILoadData)">load</A></B>(java.io.InputStream&nbsp;stream,

-     java.net.URL&nbsp;url,

-     <A HREF="../../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A>&nbsp;loadData)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generic load method</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useILoadData.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ILoadData.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/ILoadingContext.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/ILoadingContext.html
deleted file mode 100644
index 41254ed..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/ILoadingContext.html
+++ /dev/null
@@ -1,208 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Interface org.eclipse.xwt.ILoadingContext

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Interface org.eclipse.xwt.ILoadingContext";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useILoadingContext.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ILoadingContext.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Interface<br>org.eclipse.xwt.ILoadingContext</B></H2>

-</CENTER>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Packages that use <A HREF="../../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt"><B>org.eclipse.xwt</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Uses of <A HREF="../../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A> in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> that return <A HREF="../../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A></CODE></FONT></TD>

-<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#findLoadingContext(java.lang.Object)">findLoadingContext</A></B>(java.lang.Object&nbsp;container)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A></CODE></FONT></TD>

-<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#getLoadingContext()">getLoadingContext</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A></CODE></FONT></TD>

-<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#getLoadingContext(org.eclipse.swt.widgets.Composite)">getLoadingContext</A></B>(org.eclipse.swt.widgets.Composite&nbsp;object)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> with parameters of type <A HREF="../../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#setLoadingContext(org.eclipse.xwt.ILoadingContext)">setLoadingContext</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A>&nbsp;loadingContext)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useILoadingContext.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ILoadingContext.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/ILogger.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/ILogger.html
deleted file mode 100644
index 2df9e1b..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/ILogger.html
+++ /dev/null
@@ -1,192 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Interface org.eclipse.xwt.ILogger

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Interface org.eclipse.xwt.ILogger";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useILogger.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ILogger.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Interface<br>org.eclipse.xwt.ILogger</B></H2>

-</CENTER>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Packages that use <A HREF="../../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt"><B>org.eclipse.xwt</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Uses of <A HREF="../../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A> in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> that return <A HREF="../../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A></CODE></FONT></TD>

-<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#getLogger()">getLogger</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the system logger.</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> with parameters of type <A HREF="../../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#setLogger(org.eclipse.xwt.ILogger)">setLogger</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A>&nbsp;logger)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Change the system logger</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useILogger.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ILogger.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/IMetaclassFactory.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/IMetaclassFactory.html
deleted file mode 100644
index c33e8a4..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/IMetaclassFactory.html
+++ /dev/null
@@ -1,176 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Interface org.eclipse.xwt.IMetaclassFactory

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Interface org.eclipse.xwt.IMetaclassFactory";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useIMetaclassFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IMetaclassFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Interface<br>org.eclipse.xwt.IMetaclassFactory</B></H2>

-</CENTER>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Packages that use <A HREF="../../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt">IMetaclassFactory</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt"><B>org.eclipse.xwt</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Uses of <A HREF="../../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt">IMetaclassFactory</A> in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> with parameters of type <A HREF="../../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt">IMetaclassFactory</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#registerMetaclassFactory(org.eclipse.xwt.IMetaclassFactory)">registerMetaclassFactory</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt">IMetaclassFactory</A>&nbsp;metaclassFactory)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Register Metaclass factory</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useIMetaclassFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IMetaclassFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/IStyleProvider.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/IStyleProvider.html
deleted file mode 100644
index cfa1eed..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/IStyleProvider.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->

-<TITLE>

-Uses of Interface org.eclipse.xwt.IStyleProvider

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Interface org.eclipse.xwt.IStyleProvider";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/IStyleProvider.html" title="interface in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useIStyleProvider.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IStyleProvider.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Interface<br>org.eclipse.xwt.IStyleProvider</B></H2>

-</CENTER>

-No usage of org.eclipse.xwt.IStyleProvider

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/IStyleProvider.html" title="interface in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useIStyleProvider.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IStyleProvider.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/ResourceDictionary.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/ResourceDictionary.html
deleted file mode 100644
index 54eff60..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/ResourceDictionary.html
+++ /dev/null
@@ -1,238 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Class org.eclipse.xwt.ResourceDictionary

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Class org.eclipse.xwt.ResourceDictionary";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useResourceDictionary.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ResourceDictionary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Class<br>org.eclipse.xwt.ResourceDictionary</B></H2>

-</CENTER>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Packages that use <A HREF="../../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt"><B>org.eclipse.xwt</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Uses of <A HREF="../../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A> in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> that return <A HREF="../../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A></CODE></FONT></TD>

-<TD><CODE><B>ILoadData.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/ILoadData.html#getResourceDictionary()">getResourceDictionary</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> with parameters of type <A HREF="../../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>

-<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.io.InputStream, java.net.URL, int, java.lang.Object, org.eclipse.xwt.ResourceDictionary)">load</A></B>(org.eclipse.swt.widgets.Composite&nbsp;parent,

-     java.io.InputStream&nbsp;stream,

-     java.net.URL&nbsp;file,

-     int&nbsp;styles,

-     java.lang.Object&nbsp;dataContext,

-     <A HREF="../../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dictionary)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;load the content from a stream with a style, a DataContext and a ResourceDictionary.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>

-<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.net.URL, int, java.lang.Object, org.eclipse.xwt.ResourceDictionary)">load</A></B>(org.eclipse.swt.widgets.Composite&nbsp;parent,

-     java.net.URL&nbsp;file,

-     int&nbsp;styles,

-     java.lang.Object&nbsp;dataContext,

-     <A HREF="../../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dictionary)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Load the file content under a Composite with a style, a DataContext and a ResourceDictionary.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>

-<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#load(java.net.URL, int, java.lang.Object, org.eclipse.xwt.ResourceDictionary)">load</A></B>(java.net.URL&nbsp;file,

-     int&nbsp;styles,

-     java.lang.Object&nbsp;dataContext,

-     <A HREF="../../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dictionary)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Load the file content with a DataContext and a ResourceDictionary.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#open(java.net.URL, java.lang.Object, org.eclipse.xwt.ResourceDictionary)">open</A></B>(java.net.URL&nbsp;url,

-     java.lang.Object&nbsp;dataContext,

-     <A HREF="../../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dictionary)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;load the file content.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B>ILoadData.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/ILoadData.html#setResourceDictionary(org.eclipse.xwt.ResourceDictionary)">setResourceDictionary</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dico)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useResourceDictionary.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ResourceDictionary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/Tracking.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/Tracking.html
deleted file mode 100644
index 6737fc0..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/Tracking.html
+++ /dev/null
@@ -1,278 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Class org.eclipse.xwt.Tracking

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Class org.eclipse.xwt.Tracking";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useTracking.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="Tracking.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Class<br>org.eclipse.xwt.Tracking</B></H2>

-</CENTER>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Packages that use <A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt"><B>org.eclipse.xwt</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Uses of <A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A> in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> that return <A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A></CODE></FONT></TD>

-<TD><CODE><B>Tracking.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html#valueOf(java.lang.String)">valueOf</A></B>(java.lang.String&nbsp;name)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>[]</CODE></FONT></TD>

-<TD><CODE><B>Tracking.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html#values()">values</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in

-the order they're declared.</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> that return types with arguments of type <A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.util.Set&lt;<A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&gt;</CODE></FONT></TD>

-<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#getTrackings()">getTrackings</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get all tracking options</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> with parameters of type <A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B>ILogger.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/ILogger.html#addMessage(java.lang.String, org.eclipse.xwt.Tracking)">addMessage</A></B>(java.lang.String&nbsp;message,

-           <A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#addTracking(org.eclipse.xwt.Tracking)">addTracking</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add a tracking option</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;boolean</CODE></FONT></TD>

-<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#isTracking(org.eclipse.xwt.Tracking)">isTracking</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Test if the tracking on argument is enabled.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B>ILogger.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/ILogger.html#printInfo(java.lang.String, org.eclipse.xwt.Tracking, java.util.Set)">printInfo</A></B>(java.lang.String&nbsp;message,

-          <A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking,

-          java.util.Set&lt;<A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&gt;&nbsp;trackType)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B>ILogger.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/ILogger.html#removeMessage(org.eclipse.xwt.Tracking)">removeMessage</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#removeTracking(org.eclipse.xwt.Tracking)">removeTracking</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Remove a tracking option.</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Method parameters in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> with type arguments of type <A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B>ILogger.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/ILogger.html#printInfo(java.lang.String, org.eclipse.xwt.Tracking, java.util.Set)">printInfo</A></B>(java.lang.String&nbsp;message,

-          <A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking,

-          java.util.Set&lt;<A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&gt;&nbsp;trackType)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useTracking.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="Tracking.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/XWT.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/XWT.html
deleted file mode 100644
index a261816..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/XWT.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Class org.eclipse.xwt.XWT

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Class org.eclipse.xwt.XWT";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useXWT.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="XWT.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Class<br>org.eclipse.xwt.XWT</B></H2>

-</CENTER>

-No usage of org.eclipse.xwt.XWT

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useXWT.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="XWT.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/XWTException.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/XWTException.html
deleted file mode 100644
index 9720dc2..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/XWTException.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Class org.eclipse.xwt.XWTException

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Class org.eclipse.xwt.XWTException";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useXWTException.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="XWTException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Class<br>org.eclipse.xwt.XWTException</B></H2>

-</CENTER>

-No usage of org.eclipse.xwt.XWTException

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useXWTException.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="XWTException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/XWTMaps.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/XWTMaps.html
deleted file mode 100644
index baddfd2..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/XWTMaps.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Class org.eclipse.xwt.XWTMaps

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Class org.eclipse.xwt.XWTMaps";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useXWTMaps.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="XWTMaps.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Class<br>org.eclipse.xwt.XWTMaps</B></H2>

-</CENTER>

-No usage of org.eclipse.xwt.XWTMaps

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useXWTMaps.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="XWTMaps.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/BindingToObject.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/BindingToObject.html
deleted file mode 100644
index 3746b2b..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/BindingToObject.html
+++ /dev/null
@@ -1,343 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:32 CET 2009 -->

-<TITLE>

-BindingToObject

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.converters.BindingToObject class">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="BindingToObject";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/BindingToObject.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV CLASS&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/BindingToObject.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="BindingToObject.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt.converters</FONT>

-<BR>

-Class BindingToObject</H2>

-<PRE>

-java.lang.Object

-  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.converters.BindingToObject</B>

-</PRE>

-<DL>

-<DT><B>All Implemented Interfaces:</B> <DD>org.eclipse.core.databinding.conversion.IConverter</DD>

-</DL>

-<HR>

-<DL>

-<DT><PRE>public class <B>BindingToObject</B><DT>extends java.lang.Object<DT>implements org.eclipse.core.databinding.conversion.IConverter</DL>

-</PRE>

-

-<P>

-Binding to Object covnerter

-<P>

-

-<P>

-<DL>

-<DT><B>Author:</B></DT>

-  <DD>yyang</DD>

-</DL>

-<HR>

-

-<P>

-<!-- =========== FIELD SUMMARY =========== -->

-

-<A NAME="field_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Field Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html" title="class in org.eclipse.xwt.converters">BindingToObject</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html#instance">instance</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ======== CONSTRUCTOR SUMMARY ======== -->

-

-<A NAME="constructor_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Constructor Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html#BindingToObject()">BindingToObject</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html#convert(java.lang.Object)">convert</A></B>(java.lang.Object&nbsp;fromObject)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html#getFromType()">getFromType</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html#getToType()">getToType</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ============ FIELD DETAIL =========== -->

-

-<A NAME="field_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Field Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="instance"><!-- --></A><H3>

-instance</H3>

-<PRE>

-public static <A HREF="../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html" title="class in org.eclipse.xwt.converters">BindingToObject</A> <B>instance</B></PRE>

-<DL>

-<DL>

-</DL>

-</DL>

-

-<!-- ========= CONSTRUCTOR DETAIL ======== -->

-

-<A NAME="constructor_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Constructor Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="BindingToObject()"><!-- --></A><H3>

-BindingToObject</H3>

-<PRE>

-public <B>BindingToObject</B>()</PRE>

-<DL>

-</DL>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="convert(java.lang.Object)"><!-- --></A><H3>

-convert</H3>

-<PRE>

-public java.lang.Object <B>convert</B>(java.lang.Object&nbsp;fromObject)</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>convert</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getFromType()"><!-- --></A><H3>

-getFromType</H3>

-<PRE>

-public java.lang.Object <B>getFromType</B>()</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>getFromType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getToType()"><!-- --></A><H3>

-getToType</H3>

-<PRE>

-public java.lang.Object <B>getToType</B>()</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>getToType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/BindingToObject.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV CLASS&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/BindingToObject.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="BindingToObject.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/DateToString.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/DateToString.html
deleted file mode 100644
index 0fc80e7..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/DateToString.html
+++ /dev/null
@@ -1,344 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:32 CET 2009 -->

-<TITLE>

-DateToString

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.converters.DateToString class">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="DateToString";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/DateToString.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/DateToString.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="DateToString.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt.converters</FONT>

-<BR>

-Class DateToString</H2>

-<PRE>

-java.lang.Object

-  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters">org.eclipse.xwt.converters.ObjectToString</A>

-      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.converters.DateToString</B>

-</PRE>

-<DL>

-<DT><B>All Implemented Interfaces:</B> <DD>org.eclipse.core.databinding.conversion.IConverter</DD>

-</DL>

-<HR>

-<DL>

-<DT><PRE>public class <B>DateToString</B><DT>extends <A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters">ObjectToString</A></DL>

-</PRE>

-

-<P>

-Date to String converter

-<P>

-

-<P>

-<DL>

-<DT><B>Author:</B></DT>

-  <DD>yyang</DD>

-</DL>

-<HR>

-

-<P>

-<!-- =========== FIELD SUMMARY =========== -->

-

-<A NAME="field_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Field Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters">DateToString</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/DateToString.html#instance">instance</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ======== CONSTRUCTOR SUMMARY ======== -->

-

-<A NAME="constructor_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Constructor Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/DateToString.html#DateToString()">DateToString</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/DateToString.html#convert(java.lang.Object)">convert</A></B>(java.lang.Object&nbsp;fromObject)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/DateToString.html#getFromType()">getFromType</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/DateToString.html#getToType()">getToType</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ============ FIELD DETAIL =========== -->

-

-<A NAME="field_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Field Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="instance"><!-- --></A><H3>

-instance</H3>

-<PRE>

-public static <A HREF="../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters">DateToString</A> <B>instance</B></PRE>

-<DL>

-<DL>

-</DL>

-</DL>

-

-<!-- ========= CONSTRUCTOR DETAIL ======== -->

-

-<A NAME="constructor_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Constructor Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="DateToString()"><!-- --></A><H3>

-DateToString</H3>

-<PRE>

-public <B>DateToString</B>()</PRE>

-<DL>

-</DL>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="convert(java.lang.Object)"><!-- --></A><H3>

-convert</H3>

-<PRE>

-public java.lang.Object <B>convert</B>(java.lang.Object&nbsp;fromObject)</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>convert</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html#convert(java.lang.Object)">convert</A></CODE> in class <CODE><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters">ObjectToString</A></CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getFromType()"><!-- --></A><H3>

-getFromType</H3>

-<PRE>

-public java.lang.Object <B>getFromType</B>()</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>getFromType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html#getFromType()">getFromType</A></CODE> in class <CODE><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters">ObjectToString</A></CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getToType()"><!-- --></A><H3>

-getToType</H3>

-<PRE>

-public java.lang.Object <B>getToType</B>()</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>getToType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html#getToType()">getToType</A></CODE> in class <CODE><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters">ObjectToString</A></CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/DateToString.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/DateToString.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="DateToString.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/IntegerToString.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/IntegerToString.html
deleted file mode 100644
index 93ed5bf..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/IntegerToString.html
+++ /dev/null
@@ -1,331 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:32 CET 2009 -->

-<TITLE>

-IntegerToString

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.converters.IntegerToString class">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="IntegerToString";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IntegerToString.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/IntegerToString.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IntegerToString.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt.converters</FONT>

-<BR>

-Class IntegerToString</H2>

-<PRE>

-java.lang.Object

-  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters">org.eclipse.xwt.converters.ObjectToString</A>

-      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.converters.IntegerToString</B>

-</PRE>

-<DL>

-<DT><B>All Implemented Interfaces:</B> <DD>org.eclipse.core.databinding.conversion.IConverter</DD>

-</DL>

-<HR>

-<DL>

-<DT><PRE>public class <B>IntegerToString</B><DT>extends <A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters">ObjectToString</A></DL>

-</PRE>

-

-<P>

-Integer to String converter

-<P>

-

-<P>

-<DL>

-<DT><B>Author:</B></DT>

-  <DD>yyang</DD>

-</DL>

-<HR>

-

-<P>

-<!-- =========== FIELD SUMMARY =========== -->

-

-<A NAME="field_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Field Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters">IntegerToString</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html#instance">instance</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ======== CONSTRUCTOR SUMMARY ======== -->

-

-<A NAME="constructor_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Constructor Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html#IntegerToString()">IntegerToString</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html#getFromType()">getFromType</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html#getToType()">getToType</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_org.eclipse.xwt.converters.ObjectToString"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class org.eclipse.xwt.converters.<A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters">ObjectToString</A></B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html#convert(java.lang.Object)">convert</A></CODE></TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ============ FIELD DETAIL =========== -->

-

-<A NAME="field_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Field Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="instance"><!-- --></A><H3>

-instance</H3>

-<PRE>

-public static <A HREF="../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters">IntegerToString</A> <B>instance</B></PRE>

-<DL>

-<DL>

-</DL>

-</DL>

-

-<!-- ========= CONSTRUCTOR DETAIL ======== -->

-

-<A NAME="constructor_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Constructor Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="IntegerToString()"><!-- --></A><H3>

-IntegerToString</H3>

-<PRE>

-public <B>IntegerToString</B>()</PRE>

-<DL>

-</DL>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="getFromType()"><!-- --></A><H3>

-getFromType</H3>

-<PRE>

-public java.lang.Object <B>getFromType</B>()</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>getFromType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html#getFromType()">getFromType</A></CODE> in class <CODE><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters">ObjectToString</A></CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getToType()"><!-- --></A><H3>

-getToType</H3>

-<PRE>

-public java.lang.Object <B>getToType</B>()</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>getToType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html#getToType()">getToType</A></CODE> in class <CODE><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters">ObjectToString</A></CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IntegerToString.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/IntegerToString.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IntegerToString.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/ObjectToObject.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/ObjectToObject.html
deleted file mode 100644
index a70ea8f..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/ObjectToObject.html
+++ /dev/null
@@ -1,343 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:32 CET 2009 -->

-<TITLE>

-ObjectToObject

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.converters.ObjectToObject class">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="ObjectToObject";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ObjectToObject.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/ObjectToObject.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ObjectToObject.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt.converters</FONT>

-<BR>

-Class ObjectToObject</H2>

-<PRE>

-java.lang.Object

-  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.converters.ObjectToObject</B>

-</PRE>

-<DL>

-<DT><B>All Implemented Interfaces:</B> <DD>org.eclipse.core.databinding.conversion.IConverter</DD>

-</DL>

-<HR>

-<DL>

-<DT><PRE>public class <B>ObjectToObject</B><DT>extends java.lang.Object<DT>implements org.eclipse.core.databinding.conversion.IConverter</DL>

-</PRE>

-

-<P>

-Object to Object converter: null converter

-<P>

-

-<P>

-<DL>

-<DT><B>Author:</B></DT>

-  <DD>yyang</DD>

-</DL>

-<HR>

-

-<P>

-<!-- =========== FIELD SUMMARY =========== -->

-

-<A NAME="field_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Field Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html" title="class in org.eclipse.xwt.converters">ObjectToObject</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html#instance">instance</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ======== CONSTRUCTOR SUMMARY ======== -->

-

-<A NAME="constructor_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Constructor Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html#ObjectToObject()">ObjectToObject</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html#convert(java.lang.Object)">convert</A></B>(java.lang.Object&nbsp;fromObject)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html#getFromType()">getFromType</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html#getToType()">getToType</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ============ FIELD DETAIL =========== -->

-

-<A NAME="field_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Field Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="instance"><!-- --></A><H3>

-instance</H3>

-<PRE>

-public static <A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html" title="class in org.eclipse.xwt.converters">ObjectToObject</A> <B>instance</B></PRE>

-<DL>

-<DL>

-</DL>

-</DL>

-

-<!-- ========= CONSTRUCTOR DETAIL ======== -->

-

-<A NAME="constructor_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Constructor Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="ObjectToObject()"><!-- --></A><H3>

-ObjectToObject</H3>

-<PRE>

-public <B>ObjectToObject</B>()</PRE>

-<DL>

-</DL>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="convert(java.lang.Object)"><!-- --></A><H3>

-convert</H3>

-<PRE>

-public java.lang.Object <B>convert</B>(java.lang.Object&nbsp;fromObject)</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>convert</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getFromType()"><!-- --></A><H3>

-getFromType</H3>

-<PRE>

-public java.lang.Object <B>getFromType</B>()</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>getFromType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getToType()"><!-- --></A><H3>

-getToType</H3>

-<PRE>

-public java.lang.Object <B>getToType</B>()</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>getToType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ObjectToObject.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/ObjectToObject.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ObjectToObject.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/ObjectToString.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/ObjectToString.html
deleted file mode 100644
index 2241e5c..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/ObjectToString.html
+++ /dev/null
@@ -1,310 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:33 CET 2009 -->

-<TITLE>

-ObjectToString

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.converters.ObjectToString class">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="ObjectToString";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ObjectToString.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToBoolean.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/ObjectToString.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ObjectToString.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt.converters</FONT>

-<BR>

-Class ObjectToString</H2>

-<PRE>

-java.lang.Object

-  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.converters.ObjectToString</B>

-</PRE>

-<DL>

-<DT><B>All Implemented Interfaces:</B> <DD>org.eclipse.core.databinding.conversion.IConverter</DD>

-</DL>

-<DL>

-<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters">DateToString</A>, <A HREF="../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters">IntegerToString</A></DD>

-</DL>

-<HR>

-<DL>

-<DT><PRE>public class <B>ObjectToString</B><DT>extends java.lang.Object<DT>implements org.eclipse.core.databinding.conversion.IConverter</DL>

-</PRE>

-

-<P>

-Safely SWT context values, it used to avoid a NullPointerException when set text values to SWT Widgets.

-<P>

-

-<P>

-<DL>

-<DT><B>Author:</B></DT>

-  <DD>jliu</DD>

-</DL>

-<HR>

-

-<P>

-

-<!-- ======== CONSTRUCTOR SUMMARY ======== -->

-

-<A NAME="constructor_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Constructor Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html#ObjectToString()">ObjectToString</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html#convert(java.lang.Object)">convert</A></B>(java.lang.Object&nbsp;fromObject)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html#getFromType()">getFromType</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html#getToType()">getToType</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ========= CONSTRUCTOR DETAIL ======== -->

-

-<A NAME="constructor_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Constructor Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="ObjectToString()"><!-- --></A><H3>

-ObjectToString</H3>

-<PRE>

-public <B>ObjectToString</B>()</PRE>

-<DL>

-</DL>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="convert(java.lang.Object)"><!-- --></A><H3>

-convert</H3>

-<PRE>

-public java.lang.Object <B>convert</B>(java.lang.Object&nbsp;fromObject)</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>convert</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getFromType()"><!-- --></A><H3>

-getFromType</H3>

-<PRE>

-public java.lang.Object <B>getFromType</B>()</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>getFromType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getToType()"><!-- --></A><H3>

-getToType</H3>

-<PRE>

-public java.lang.Object <B>getToType</B>()</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>getToType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ObjectToString.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToBoolean.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/ObjectToString.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ObjectToString.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToBoolean.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToBoolean.html
deleted file mode 100644
index f4c2a88..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToBoolean.html
+++ /dev/null
@@ -1,343 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:33 CET 2009 -->

-<TITLE>

-StringToBoolean

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.converters.StringToBoolean class">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="StringToBoolean";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToBoolean.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToColor.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToBoolean.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToBoolean.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt.converters</FONT>

-<BR>

-Class StringToBoolean</H2>

-<PRE>

-java.lang.Object

-  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.converters.StringToBoolean</B>

-</PRE>

-<DL>

-<DT><B>All Implemented Interfaces:</B> <DD>org.eclipse.core.databinding.conversion.IConverter</DD>

-</DL>

-<HR>

-<DL>

-<DT><PRE>public class <B>StringToBoolean</B><DT>extends java.lang.Object<DT>implements org.eclipse.core.databinding.conversion.IConverter</DL>

-</PRE>

-

-<P>

-String to Boolean converter

-<P>

-

-<P>

-<DL>

-<DT><B>Author:</B></DT>

-  <DD>yyang</DD>

-</DL>

-<HR>

-

-<P>

-<!-- =========== FIELD SUMMARY =========== -->

-

-<A NAME="field_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Field Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters">StringToInteger</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToBoolean.html#instance">instance</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ======== CONSTRUCTOR SUMMARY ======== -->

-

-<A NAME="constructor_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Constructor Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToBoolean.html#StringToBoolean()">StringToBoolean</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToBoolean.html#convert(java.lang.Object)">convert</A></B>(java.lang.Object&nbsp;fromObject)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToBoolean.html#getFromType()">getFromType</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToBoolean.html#getToType()">getToType</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ============ FIELD DETAIL =========== -->

-

-<A NAME="field_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Field Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="instance"><!-- --></A><H3>

-instance</H3>

-<PRE>

-public static <A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters">StringToInteger</A> <B>instance</B></PRE>

-<DL>

-<DL>

-</DL>

-</DL>

-

-<!-- ========= CONSTRUCTOR DETAIL ======== -->

-

-<A NAME="constructor_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Constructor Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="StringToBoolean()"><!-- --></A><H3>

-StringToBoolean</H3>

-<PRE>

-public <B>StringToBoolean</B>()</PRE>

-<DL>

-</DL>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="convert(java.lang.Object)"><!-- --></A><H3>

-convert</H3>

-<PRE>

-public java.lang.Object <B>convert</B>(java.lang.Object&nbsp;fromObject)</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>convert</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getFromType()"><!-- --></A><H3>

-getFromType</H3>

-<PRE>

-public java.lang.Object <B>getFromType</B>()</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>getFromType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getToType()"><!-- --></A><H3>

-getToType</H3>

-<PRE>

-public java.lang.Object <B>getToType</B>()</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>getToType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToBoolean.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToColor.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToBoolean.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToBoolean.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToColor.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToColor.html
deleted file mode 100644
index 3f84589..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToColor.html
+++ /dev/null
@@ -1,307 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:33 CET 2009 -->

-<TITLE>

-StringToColor

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.converters.StringToColor class">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="StringToColor";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToColor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToBoolean.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToFont.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToColor.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToColor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt.converters</FONT>

-<BR>

-Class StringToColor</H2>

-<PRE>

-java.lang.Object

-  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.converters.StringToColor</B>

-</PRE>

-<DL>

-<DT><B>All Implemented Interfaces:</B> <DD>org.eclipse.core.databinding.conversion.IConverter</DD>

-</DL>

-<HR>

-<DL>

-<DT><PRE>public class <B>StringToColor</B><DT>extends java.lang.Object<DT>implements org.eclipse.core.databinding.conversion.IConverter</DL>

-</PRE>

-

-<P>

-String to Color converter

-<P>

-

-<P>

-<DL>

-<DT><B>Author:</B></DT>

-  <DD>jliu</DD>

-</DL>

-<HR>

-

-<P>

-

-<!-- ======== CONSTRUCTOR SUMMARY ======== -->

-

-<A NAME="constructor_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Constructor Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToColor.html#StringToColor()">StringToColor</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToColor.html#convert(java.lang.Object)">convert</A></B>(java.lang.Object&nbsp;fromObject)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToColor.html#getFromType()">getFromType</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToColor.html#getToType()">getToType</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ========= CONSTRUCTOR DETAIL ======== -->

-

-<A NAME="constructor_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Constructor Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="StringToColor()"><!-- --></A><H3>

-StringToColor</H3>

-<PRE>

-public <B>StringToColor</B>()</PRE>

-<DL>

-</DL>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="convert(java.lang.Object)"><!-- --></A><H3>

-convert</H3>

-<PRE>

-public java.lang.Object <B>convert</B>(java.lang.Object&nbsp;fromObject)</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>convert</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getFromType()"><!-- --></A><H3>

-getFromType</H3>

-<PRE>

-public java.lang.Object <B>getFromType</B>()</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>getFromType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getToType()"><!-- --></A><H3>

-getToType</H3>

-<PRE>

-public java.lang.Object <B>getToType</B>()</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>getToType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToColor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToBoolean.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToFont.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToColor.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToColor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToFont.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToFont.html
deleted file mode 100644
index f9f370f..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToFont.html
+++ /dev/null
@@ -1,307 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:33 CET 2009 -->

-<TITLE>

-StringToFont

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.converters.StringToFont class">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="StringToFont";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToFont.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToColor.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToImage.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToFont.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToFont.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt.converters</FONT>

-<BR>

-Class StringToFont</H2>

-<PRE>

-java.lang.Object

-  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.converters.StringToFont</B>

-</PRE>

-<DL>

-<DT><B>All Implemented Interfaces:</B> <DD>org.eclipse.core.databinding.conversion.IConverter</DD>

-</DL>

-<HR>

-<DL>

-<DT><PRE>public class <B>StringToFont</B><DT>extends java.lang.Object<DT>implements org.eclipse.core.databinding.conversion.IConverter</DL>

-</PRE>

-

-<P>

-String to Font converter

-<P>

-

-<P>

-<DL>

-<DT><B>Author:</B></DT>

-  <DD>yyang</DD>

-</DL>

-<HR>

-

-<P>

-

-<!-- ======== CONSTRUCTOR SUMMARY ======== -->

-

-<A NAME="constructor_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Constructor Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToFont.html#StringToFont()">StringToFont</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToFont.html#convert(java.lang.Object)">convert</A></B>(java.lang.Object&nbsp;fromObject)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToFont.html#getFromType()">getFromType</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToFont.html#getToType()">getToType</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ========= CONSTRUCTOR DETAIL ======== -->

-

-<A NAME="constructor_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Constructor Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="StringToFont()"><!-- --></A><H3>

-StringToFont</H3>

-<PRE>

-public <B>StringToFont</B>()</PRE>

-<DL>

-</DL>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="convert(java.lang.Object)"><!-- --></A><H3>

-convert</H3>

-<PRE>

-public java.lang.Object <B>convert</B>(java.lang.Object&nbsp;fromObject)</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>convert</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getFromType()"><!-- --></A><H3>

-getFromType</H3>

-<PRE>

-public java.lang.Object <B>getFromType</B>()</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>getFromType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getToType()"><!-- --></A><H3>

-getToType</H3>

-<PRE>

-public java.lang.Object <B>getToType</B>()</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>getToType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToFont.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToColor.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToImage.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToFont.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToFont.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToImage.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToImage.html
deleted file mode 100644
index 7de447d..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToImage.html
+++ /dev/null
@@ -1,307 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:33 CET 2009 -->

-<TITLE>

-StringToImage

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.converters.StringToImage class">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="StringToImage";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToImage.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToFont.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToIntArray.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToImage.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToImage.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt.converters</FONT>

-<BR>

-Class StringToImage</H2>

-<PRE>

-java.lang.Object

-  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.converters.StringToImage</B>

-</PRE>

-<DL>

-<DT><B>All Implemented Interfaces:</B> <DD>org.eclipse.core.databinding.conversion.IConverter</DD>

-</DL>

-<HR>

-<DL>

-<DT><PRE>public class <B>StringToImage</B><DT>extends java.lang.Object<DT>implements org.eclipse.core.databinding.conversion.IConverter</DL>

-</PRE>

-

-<P>

-String to Image converter

-<P>

-

-<P>

-<DL>

-<DT><B>Author:</B></DT>

-  <DD>jliu</DD>

-</DL>

-<HR>

-

-<P>

-

-<!-- ======== CONSTRUCTOR SUMMARY ======== -->

-

-<A NAME="constructor_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Constructor Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToImage.html#StringToImage()">StringToImage</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToImage.html#convert(java.lang.Object)">convert</A></B>(java.lang.Object&nbsp;fromObject)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToImage.html#getFromType()">getFromType</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToImage.html#getToType()">getToType</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ========= CONSTRUCTOR DETAIL ======== -->

-

-<A NAME="constructor_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Constructor Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="StringToImage()"><!-- --></A><H3>

-StringToImage</H3>

-<PRE>

-public <B>StringToImage</B>()</PRE>

-<DL>

-</DL>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="convert(java.lang.Object)"><!-- --></A><H3>

-convert</H3>

-<PRE>

-public java.lang.Object <B>convert</B>(java.lang.Object&nbsp;fromObject)</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>convert</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getFromType()"><!-- --></A><H3>

-getFromType</H3>

-<PRE>

-public java.lang.Object <B>getFromType</B>()</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>getFromType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getToType()"><!-- --></A><H3>

-getToType</H3>

-<PRE>

-public java.lang.Object <B>getToType</B>()</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>getToType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToImage.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToFont.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToIntArray.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToImage.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToImage.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToIntArray.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToIntArray.html
deleted file mode 100644
index f1ac0e4..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToIntArray.html
+++ /dev/null
@@ -1,307 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:33 CET 2009 -->

-<TITLE>

-StringToIntArray

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.converters.StringToIntArray class">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="StringToIntArray";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToIntArray.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToImage.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToIntArray.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToIntArray.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt.converters</FONT>

-<BR>

-Class StringToIntArray</H2>

-<PRE>

-java.lang.Object

-  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.converters.StringToIntArray</B>

-</PRE>

-<DL>

-<DT><B>All Implemented Interfaces:</B> <DD>org.eclipse.core.databinding.conversion.IConverter</DD>

-</DL>

-<HR>

-<DL>

-<DT><PRE>public class <B>StringToIntArray</B><DT>extends java.lang.Object<DT>implements org.eclipse.core.databinding.conversion.IConverter</DL>

-</PRE>

-

-<P>

-String to int[] converter

-<P>

-

-<P>

-<DL>

-<DT><B>Author:</B></DT>

-  <DD>jliu</DD>

-</DL>

-<HR>

-

-<P>

-

-<!-- ======== CONSTRUCTOR SUMMARY ======== -->

-

-<A NAME="constructor_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Constructor Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToIntArray.html#StringToIntArray()">StringToIntArray</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToIntArray.html#convert(java.lang.Object)">convert</A></B>(java.lang.Object&nbsp;fromObject)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToIntArray.html#getFromType()">getFromType</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToIntArray.html#getToType()">getToType</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ========= CONSTRUCTOR DETAIL ======== -->

-

-<A NAME="constructor_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Constructor Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="StringToIntArray()"><!-- --></A><H3>

-StringToIntArray</H3>

-<PRE>

-public <B>StringToIntArray</B>()</PRE>

-<DL>

-</DL>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="convert(java.lang.Object)"><!-- --></A><H3>

-convert</H3>

-<PRE>

-public java.lang.Object <B>convert</B>(java.lang.Object&nbsp;fromObject)</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>convert</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getFromType()"><!-- --></A><H3>

-getFromType</H3>

-<PRE>

-public java.lang.Object <B>getFromType</B>()</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>getFromType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getToType()"><!-- --></A><H3>

-getToType</H3>

-<PRE>

-public java.lang.Object <B>getToType</B>()</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>getToType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToIntArray.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToImage.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToIntArray.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToIntArray.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToInteger.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToInteger.html
deleted file mode 100644
index 734ffa6..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToInteger.html
+++ /dev/null
@@ -1,343 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:33 CET 2009 -->

-<TITLE>

-StringToInteger

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.converters.StringToInteger class">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="StringToInteger";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToInteger.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToIntArray.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToPoint.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToInteger.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToInteger.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt.converters</FONT>

-<BR>

-Class StringToInteger</H2>

-<PRE>

-java.lang.Object

-  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.converters.StringToInteger</B>

-</PRE>

-<DL>

-<DT><B>All Implemented Interfaces:</B> <DD>org.eclipse.core.databinding.conversion.IConverter</DD>

-</DL>

-<HR>

-<DL>

-<DT><PRE>public class <B>StringToInteger</B><DT>extends java.lang.Object<DT>implements org.eclipse.core.databinding.conversion.IConverter</DL>

-</PRE>

-

-<P>

-String to Integer converter

-<P>

-

-<P>

-<DL>

-<DT><B>Author:</B></DT>

-  <DD>yyang</DD>

-</DL>

-<HR>

-

-<P>

-<!-- =========== FIELD SUMMARY =========== -->

-

-<A NAME="field_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Field Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters">StringToInteger</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html#instance">instance</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ======== CONSTRUCTOR SUMMARY ======== -->

-

-<A NAME="constructor_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Constructor Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html#StringToInteger()">StringToInteger</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html#convert(java.lang.Object)">convert</A></B>(java.lang.Object&nbsp;fromObject)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html#getFromType()">getFromType</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html#getToType()">getToType</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ============ FIELD DETAIL =========== -->

-

-<A NAME="field_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Field Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="instance"><!-- --></A><H3>

-instance</H3>

-<PRE>

-public static <A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters">StringToInteger</A> <B>instance</B></PRE>

-<DL>

-<DL>

-</DL>

-</DL>

-

-<!-- ========= CONSTRUCTOR DETAIL ======== -->

-

-<A NAME="constructor_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Constructor Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="StringToInteger()"><!-- --></A><H3>

-StringToInteger</H3>

-<PRE>

-public <B>StringToInteger</B>()</PRE>

-<DL>

-</DL>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="convert(java.lang.Object)"><!-- --></A><H3>

-convert</H3>

-<PRE>

-public java.lang.Object <B>convert</B>(java.lang.Object&nbsp;fromObject)</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>convert</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getFromType()"><!-- --></A><H3>

-getFromType</H3>

-<PRE>

-public java.lang.Object <B>getFromType</B>()</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>getFromType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getToType()"><!-- --></A><H3>

-getToType</H3>

-<PRE>

-public java.lang.Object <B>getToType</B>()</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>getToType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToInteger.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToIntArray.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToPoint.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToInteger.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToInteger.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToPoint.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToPoint.html
deleted file mode 100644
index 7d5a9c7..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToPoint.html
+++ /dev/null
@@ -1,307 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:33 CET 2009 -->

-<TITLE>

-StringToPoint

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.converters.StringToPoint class">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="StringToPoint";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToPoint.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToRectangle.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToPoint.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToPoint.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt.converters</FONT>

-<BR>

-Class StringToPoint</H2>

-<PRE>

-java.lang.Object

-  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.converters.StringToPoint</B>

-</PRE>

-<DL>

-<DT><B>All Implemented Interfaces:</B> <DD>org.eclipse.core.databinding.conversion.IConverter</DD>

-</DL>

-<HR>

-<DL>

-<DT><PRE>public class <B>StringToPoint</B><DT>extends java.lang.Object<DT>implements org.eclipse.core.databinding.conversion.IConverter</DL>

-</PRE>

-

-<P>

-String to Point converter

-<P>

-

-<P>

-<DL>

-<DT><B>Author:</B></DT>

-  <DD>yyang</DD>

-</DL>

-<HR>

-

-<P>

-

-<!-- ======== CONSTRUCTOR SUMMARY ======== -->

-

-<A NAME="constructor_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Constructor Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToPoint.html#StringToPoint()">StringToPoint</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToPoint.html#convert(java.lang.Object)">convert</A></B>(java.lang.Object&nbsp;fromObject)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToPoint.html#getFromType()">getFromType</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToPoint.html#getToType()">getToType</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ========= CONSTRUCTOR DETAIL ======== -->

-

-<A NAME="constructor_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Constructor Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="StringToPoint()"><!-- --></A><H3>

-StringToPoint</H3>

-<PRE>

-public <B>StringToPoint</B>()</PRE>

-<DL>

-</DL>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="convert(java.lang.Object)"><!-- --></A><H3>

-convert</H3>

-<PRE>

-public java.lang.Object <B>convert</B>(java.lang.Object&nbsp;fromObject)</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>convert</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getFromType()"><!-- --></A><H3>

-getFromType</H3>

-<PRE>

-public java.lang.Object <B>getFromType</B>()</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>getFromType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getToType()"><!-- --></A><H3>

-getToType</H3>

-<PRE>

-public java.lang.Object <B>getToType</B>()</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>getToType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToPoint.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToRectangle.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToPoint.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToPoint.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToRectangle.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToRectangle.html
deleted file mode 100644
index 58a78e6..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToRectangle.html
+++ /dev/null
@@ -1,307 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:33 CET 2009 -->

-<TITLE>

-StringToRectangle

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.converters.StringToRectangle class">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="StringToRectangle";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToRectangle.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToPoint.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;NEXT CLASS</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToRectangle.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToRectangle.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt.converters</FONT>

-<BR>

-Class StringToRectangle</H2>

-<PRE>

-java.lang.Object

-  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.converters.StringToRectangle</B>

-</PRE>

-<DL>

-<DT><B>All Implemented Interfaces:</B> <DD>org.eclipse.core.databinding.conversion.IConverter</DD>

-</DL>

-<HR>

-<DL>

-<DT><PRE>public class <B>StringToRectangle</B><DT>extends java.lang.Object<DT>implements org.eclipse.core.databinding.conversion.IConverter</DL>

-</PRE>

-

-<P>

-String to Rectangle converter

-<P>

-

-<P>

-<DL>

-<DT><B>Author:</B></DT>

-  <DD>yyang</DD>

-</DL>

-<HR>

-

-<P>

-

-<!-- ======== CONSTRUCTOR SUMMARY ======== -->

-

-<A NAME="constructor_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Constructor Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToRectangle.html#StringToRectangle()">StringToRectangle</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToRectangle.html#convert(java.lang.Object)">convert</A></B>(java.lang.Object&nbsp;fromObject)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToRectangle.html#getFromType()">getFromType</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToRectangle.html#getToType()">getToType</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ========= CONSTRUCTOR DETAIL ======== -->

-

-<A NAME="constructor_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Constructor Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="StringToRectangle()"><!-- --></A><H3>

-StringToRectangle</H3>

-<PRE>

-public <B>StringToRectangle</B>()</PRE>

-<DL>

-</DL>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="convert(java.lang.Object)"><!-- --></A><H3>

-convert</H3>

-<PRE>

-public java.lang.Object <B>convert</B>(java.lang.Object&nbsp;fromObject)</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>convert</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getFromType()"><!-- --></A><H3>

-getFromType</H3>

-<PRE>

-public java.lang.Object <B>getFromType</B>()</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>getFromType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getToType()"><!-- --></A><H3>

-getToType</H3>

-<PRE>

-public java.lang.Object <B>getToType</B>()</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE>getToType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToRectangle.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToPoint.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;NEXT CLASS</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToRectangle.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToRectangle.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/BindingToObject.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/BindingToObject.html
deleted file mode 100644
index f93e53c..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/BindingToObject.html
+++ /dev/null
@@ -1,176 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->

-<TITLE>

-Uses of Class org.eclipse.xwt.converters.BindingToObject

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Class org.eclipse.xwt.converters.BindingToObject";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useBindingToObject.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="BindingToObject.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Class<br>org.eclipse.xwt.converters.BindingToObject</B></H2>

-</CENTER>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html" title="class in org.eclipse.xwt.converters">BindingToObject</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt.converters"><B>org.eclipse.xwt.converters</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt.converters"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html" title="class in org.eclipse.xwt.converters">BindingToObject</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A> declared as <A HREF="../../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html" title="class in org.eclipse.xwt.converters">BindingToObject</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html" title="class in org.eclipse.xwt.converters">BindingToObject</A></CODE></FONT></TD>

-<TD><CODE><B>BindingToObject.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html#instance">instance</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useBindingToObject.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="BindingToObject.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/DateToString.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/DateToString.html
deleted file mode 100644
index 1c77a01..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/DateToString.html
+++ /dev/null
@@ -1,176 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->

-<TITLE>

-Uses of Class org.eclipse.xwt.converters.DateToString

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Class org.eclipse.xwt.converters.DateToString";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useDateToString.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="DateToString.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Class<br>org.eclipse.xwt.converters.DateToString</B></H2>

-</CENTER>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters">DateToString</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt.converters"><B>org.eclipse.xwt.converters</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt.converters"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters">DateToString</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A> declared as <A HREF="../../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters">DateToString</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters">DateToString</A></CODE></FONT></TD>

-<TD><CODE><B>DateToString.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/converters/DateToString.html#instance">instance</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useDateToString.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="DateToString.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/IntegerToString.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/IntegerToString.html
deleted file mode 100644
index aad86ce..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/IntegerToString.html
+++ /dev/null
@@ -1,176 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->

-<TITLE>

-Uses of Class org.eclipse.xwt.converters.IntegerToString

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Class org.eclipse.xwt.converters.IntegerToString";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useIntegerToString.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IntegerToString.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Class<br>org.eclipse.xwt.converters.IntegerToString</B></H2>

-</CENTER>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters">IntegerToString</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt.converters"><B>org.eclipse.xwt.converters</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt.converters"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters">IntegerToString</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A> declared as <A HREF="../../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters">IntegerToString</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters">IntegerToString</A></CODE></FONT></TD>

-<TD><CODE><B>IntegerToString.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html#instance">instance</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useIntegerToString.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IntegerToString.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/ObjectToObject.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/ObjectToObject.html
deleted file mode 100644
index 123f5ed..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/ObjectToObject.html
+++ /dev/null
@@ -1,176 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->

-<TITLE>

-Uses of Class org.eclipse.xwt.converters.ObjectToObject

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Class org.eclipse.xwt.converters.ObjectToObject";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useObjectToObject.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ObjectToObject.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Class<br>org.eclipse.xwt.converters.ObjectToObject</B></H2>

-</CENTER>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html" title="class in org.eclipse.xwt.converters">ObjectToObject</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt.converters"><B>org.eclipse.xwt.converters</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt.converters"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html" title="class in org.eclipse.xwt.converters">ObjectToObject</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A> declared as <A HREF="../../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html" title="class in org.eclipse.xwt.converters">ObjectToObject</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html" title="class in org.eclipse.xwt.converters">ObjectToObject</A></CODE></FONT></TD>

-<TD><CODE><B>ObjectToObject.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html#instance">instance</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useObjectToObject.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ObjectToObject.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/ObjectToString.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/ObjectToString.html
deleted file mode 100644
index 5cc547f..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/ObjectToString.html
+++ /dev/null
@@ -1,184 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->

-<TITLE>

-Uses of Class org.eclipse.xwt.converters.ObjectToString

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Class org.eclipse.xwt.converters.ObjectToString";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useObjectToString.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ObjectToString.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Class<br>org.eclipse.xwt.converters.ObjectToString</B></H2>

-</CENTER>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters">ObjectToString</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt.converters"><B>org.eclipse.xwt.converters</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt.converters"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters">ObjectToString</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters">ObjectToString</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;class</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters">DateToString</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Date to String converter</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;class</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters">IntegerToString</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Integer to String converter</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useObjectToString.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ObjectToString.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToBoolean.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToBoolean.html
deleted file mode 100644
index 42f2918..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToBoolean.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->

-<TITLE>

-Uses of Class org.eclipse.xwt.converters.StringToBoolean

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Class org.eclipse.xwt.converters.StringToBoolean";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToBoolean.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToBoolean.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToBoolean.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Class<br>org.eclipse.xwt.converters.StringToBoolean</B></H2>

-</CENTER>

-No usage of org.eclipse.xwt.converters.StringToBoolean

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToBoolean.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToBoolean.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToBoolean.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToColor.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToColor.html
deleted file mode 100644
index c1fada4..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToColor.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->

-<TITLE>

-Uses of Class org.eclipse.xwt.converters.StringToColor

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Class org.eclipse.xwt.converters.StringToColor";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToColor.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToColor.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToColor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Class<br>org.eclipse.xwt.converters.StringToColor</B></H2>

-</CENTER>

-No usage of org.eclipse.xwt.converters.StringToColor

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToColor.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToColor.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToColor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToFont.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToFont.html
deleted file mode 100644
index c0e70ca..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToFont.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->

-<TITLE>

-Uses of Class org.eclipse.xwt.converters.StringToFont

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Class org.eclipse.xwt.converters.StringToFont";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToFont.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToFont.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToFont.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Class<br>org.eclipse.xwt.converters.StringToFont</B></H2>

-</CENTER>

-No usage of org.eclipse.xwt.converters.StringToFont

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToFont.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToFont.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToFont.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToImage.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToImage.html
deleted file mode 100644
index 434c77a..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToImage.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->

-<TITLE>

-Uses of Class org.eclipse.xwt.converters.StringToImage

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Class org.eclipse.xwt.converters.StringToImage";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToImage.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToImage.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToImage.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Class<br>org.eclipse.xwt.converters.StringToImage</B></H2>

-</CENTER>

-No usage of org.eclipse.xwt.converters.StringToImage

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToImage.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToImage.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToImage.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToIntArray.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToIntArray.html
deleted file mode 100644
index 816d58d..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToIntArray.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->

-<TITLE>

-Uses of Class org.eclipse.xwt.converters.StringToIntArray

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Class org.eclipse.xwt.converters.StringToIntArray";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToIntArray.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToIntArray.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToIntArray.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Class<br>org.eclipse.xwt.converters.StringToIntArray</B></H2>

-</CENTER>

-No usage of org.eclipse.xwt.converters.StringToIntArray

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToIntArray.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToIntArray.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToIntArray.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToInteger.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToInteger.html
deleted file mode 100644
index 45e755a..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToInteger.html
+++ /dev/null
@@ -1,184 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->

-<TITLE>

-Uses of Class org.eclipse.xwt.converters.StringToInteger

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Class org.eclipse.xwt.converters.StringToInteger";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToInteger.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToInteger.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Class<br>org.eclipse.xwt.converters.StringToInteger</B></H2>

-</CENTER>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters">StringToInteger</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt.converters"><B>org.eclipse.xwt.converters</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt.converters"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters">StringToInteger</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A> declared as <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters">StringToInteger</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters">StringToInteger</A></CODE></FONT></TD>

-<TD><CODE><B>StringToInteger.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html#instance">instance</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters">StringToInteger</A></CODE></FONT></TD>

-<TD><CODE><B>StringToBoolean.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToBoolean.html#instance">instance</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToInteger.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToInteger.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToPoint.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToPoint.html
deleted file mode 100644
index f15deb5..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToPoint.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->

-<TITLE>

-Uses of Class org.eclipse.xwt.converters.StringToPoint

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Class org.eclipse.xwt.converters.StringToPoint";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToPoint.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToPoint.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToPoint.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Class<br>org.eclipse.xwt.converters.StringToPoint</B></H2>

-</CENTER>

-No usage of org.eclipse.xwt.converters.StringToPoint

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToPoint.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToPoint.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToPoint.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToRectangle.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToRectangle.html
deleted file mode 100644
index 3bc9f5f..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToRectangle.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->

-<TITLE>

-Uses of Class org.eclipse.xwt.converters.StringToRectangle

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Class org.eclipse.xwt.converters.StringToRectangle";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToRectangle.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToRectangle.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToRectangle.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Class<br>org.eclipse.xwt.converters.StringToRectangle</B></H2>

-</CENTER>

-No usage of org.eclipse.xwt.converters.StringToRectangle

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToRectangle.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToRectangle.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="StringToRectangle.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/package-frame.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/package-frame.html
deleted file mode 100644
index 4ce1a0e..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/package-frame.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:33 CET 2009 -->

-<TITLE>

-org.eclipse.xwt.converters

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.converters package">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">

-

-

-</HEAD>

-

-<BODY BGCOLOR="white">

-<FONT size="+1" CLASS="FrameTitleFont">

-<A HREF="../../../../../org/eclipse/e4/xwt/converters/package-summary.html" target="classFrame">org.eclipse.xwt.converters</A></FONT>

-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">

-<TR>

-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">

-Classes</FONT>&nbsp;

-<FONT CLASS="FrameItemFont">

-<BR>

-<A HREF="BindingToObject.html" title="class in org.eclipse.xwt.converters" target="classFrame">BindingToObject</A>

-<BR>

-<A HREF="DateToString.html" title="class in org.eclipse.xwt.converters" target="classFrame">DateToString</A>

-<BR>

-<A HREF="IntegerToString.html" title="class in org.eclipse.xwt.converters" target="classFrame">IntegerToString</A>

-<BR>

-<A HREF="ObjectToObject.html" title="class in org.eclipse.xwt.converters" target="classFrame">ObjectToObject</A>

-<BR>

-<A HREF="ObjectToString.html" title="class in org.eclipse.xwt.converters" target="classFrame">ObjectToString</A>

-<BR>

-<A HREF="StringToBoolean.html" title="class in org.eclipse.xwt.converters" target="classFrame">StringToBoolean</A>

-<BR>

-<A HREF="StringToColor.html" title="class in org.eclipse.xwt.converters" target="classFrame">StringToColor</A>

-<BR>

-<A HREF="StringToFont.html" title="class in org.eclipse.xwt.converters" target="classFrame">StringToFont</A>

-<BR>

-<A HREF="StringToImage.html" title="class in org.eclipse.xwt.converters" target="classFrame">StringToImage</A>

-<BR>

-<A HREF="StringToIntArray.html" title="class in org.eclipse.xwt.converters" target="classFrame">StringToIntArray</A>

-<BR>

-<A HREF="StringToInteger.html" title="class in org.eclipse.xwt.converters" target="classFrame">StringToInteger</A>

-<BR>

-<A HREF="StringToPoint.html" title="class in org.eclipse.xwt.converters" target="classFrame">StringToPoint</A>

-<BR>

-<A HREF="StringToRectangle.html" title="class in org.eclipse.xwt.converters" target="classFrame">StringToRectangle</A></FONT></TD>

-</TR>

-</TABLE>

-

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/package-summary.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/package-summary.html
deleted file mode 100644
index b64b25f..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/package-summary.html
+++ /dev/null
@@ -1,202 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:33 CET 2009 -->

-<TITLE>

-org.eclipse.xwt.converters

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.converters package">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="org.eclipse.xwt.converters";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<H2>

-Package org.eclipse.xwt.converters

-</H2>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Class Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html" title="class in org.eclipse.xwt.converters">BindingToObject</A></B></TD>

-<TD>Binding to Object covnerter</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters">DateToString</A></B></TD>

-<TD>Date to String converter</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters">IntegerToString</A></B></TD>

-<TD>Integer to String converter</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html" title="class in org.eclipse.xwt.converters">ObjectToObject</A></B></TD>

-<TD>Object to Object converter: null converter</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters">ObjectToString</A></B></TD>

-<TD>Safely SWT context values, it used to avoid a NullPointerException when set text values to SWT Widgets.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToBoolean.html" title="class in org.eclipse.xwt.converters">StringToBoolean</A></B></TD>

-<TD>String to Boolean converter</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToColor.html" title="class in org.eclipse.xwt.converters">StringToColor</A></B></TD>

-<TD>String to Color converter</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToFont.html" title="class in org.eclipse.xwt.converters">StringToFont</A></B></TD>

-<TD>String to Font converter</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToImage.html" title="class in org.eclipse.xwt.converters">StringToImage</A></B></TD>

-<TD>String to Image converter</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToIntArray.html" title="class in org.eclipse.xwt.converters">StringToIntArray</A></B></TD>

-<TD>String to int[] converter</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters">StringToInteger</A></B></TD>

-<TD>String to Integer converter</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToPoint.html" title="class in org.eclipse.xwt.converters">StringToPoint</A></B></TD>

-<TD>String to Point converter</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToRectangle.html" title="class in org.eclipse.xwt.converters">StringToRectangle</A></B></TD>

-<TD>String to Rectangle converter</TD>

-</TR>

-</TABLE>

-&nbsp;

-

-<P>

-<DL>

-</DL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/package-tree.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/package-tree.html
deleted file mode 100644
index bd7a2e5..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/package-tree.html
+++ /dev/null
@@ -1,162 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:33 CET 2009 -->

-<TITLE>

-org.eclipse.xwt.converters Class Hierarchy

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="org.eclipse.xwt.converters Class Hierarchy";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/package-tree.html"><B>PREV</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/package-tree.html"><B>NEXT</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-Hierarchy For Package org.eclipse.xwt.converters

-</H2>

-</CENTER>

-<DL>

-<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>

-<HR>

-<H2>

-Class Hierarchy

-</H2>

-<UL>

-<LI TYPE="circle">java.lang.Object<UL>

-<LI TYPE="circle">org.eclipse.xwt.converters.<A HREF="../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html" title="class in org.eclipse.xwt.converters"><B>BindingToObject</B></A> (implements org.eclipse.core.databinding.conversion.IConverter)

-<LI TYPE="circle">org.eclipse.xwt.converters.<A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html" title="class in org.eclipse.xwt.converters"><B>ObjectToObject</B></A> (implements org.eclipse.core.databinding.conversion.IConverter)

-<LI TYPE="circle">org.eclipse.xwt.converters.<A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters"><B>ObjectToString</B></A> (implements org.eclipse.core.databinding.conversion.IConverter)

-<UL>

-<LI TYPE="circle">org.eclipse.xwt.converters.<A HREF="../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters"><B>DateToString</B></A><LI TYPE="circle">org.eclipse.xwt.converters.<A HREF="../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters"><B>IntegerToString</B></A></UL>

-<LI TYPE="circle">org.eclipse.xwt.converters.<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToBoolean.html" title="class in org.eclipse.xwt.converters"><B>StringToBoolean</B></A> (implements org.eclipse.core.databinding.conversion.IConverter)

-<LI TYPE="circle">org.eclipse.xwt.converters.<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToColor.html" title="class in org.eclipse.xwt.converters"><B>StringToColor</B></A> (implements org.eclipse.core.databinding.conversion.IConverter)

-<LI TYPE="circle">org.eclipse.xwt.converters.<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToFont.html" title="class in org.eclipse.xwt.converters"><B>StringToFont</B></A> (implements org.eclipse.core.databinding.conversion.IConverter)

-<LI TYPE="circle">org.eclipse.xwt.converters.<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToImage.html" title="class in org.eclipse.xwt.converters"><B>StringToImage</B></A> (implements org.eclipse.core.databinding.conversion.IConverter)

-<LI TYPE="circle">org.eclipse.xwt.converters.<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToIntArray.html" title="class in org.eclipse.xwt.converters"><B>StringToIntArray</B></A> (implements org.eclipse.core.databinding.conversion.IConverter)

-<LI TYPE="circle">org.eclipse.xwt.converters.<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters"><B>StringToInteger</B></A> (implements org.eclipse.core.databinding.conversion.IConverter)

-<LI TYPE="circle">org.eclipse.xwt.converters.<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToPoint.html" title="class in org.eclipse.xwt.converters"><B>StringToPoint</B></A> (implements org.eclipse.core.databinding.conversion.IConverter)

-<LI TYPE="circle">org.eclipse.xwt.converters.<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToRectangle.html" title="class in org.eclipse.xwt.converters"><B>StringToRectangle</B></A> (implements org.eclipse.core.databinding.conversion.IConverter)

-</UL>

-</UL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/package-tree.html"><B>PREV</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/package-tree.html"><B>NEXT</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/package-use.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/package-use.html
deleted file mode 100644
index 57e70de..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/package-use.html
+++ /dev/null
@@ -1,196 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->

-<TITLE>

-Uses of Package org.eclipse.xwt.converters

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Package org.eclipse.xwt.converters";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Package<br>org.eclipse.xwt.converters</B></H2>

-</CENTER>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Packages that use <A HREF="../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt.converters"><B>org.eclipse.xwt.converters</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt.converters"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Classes in <A HREF="../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A> used by <A HREF="../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/class-use/BindingToObject.html#org.eclipse.xwt.converters"><B>BindingToObject</B></A></B>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Binding to Object covnerter</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/class-use/DateToString.html#org.eclipse.xwt.converters"><B>DateToString</B></A></B>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Date to String converter</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/class-use/IntegerToString.html#org.eclipse.xwt.converters"><B>IntegerToString</B></A></B>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Integer to String converter</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/class-use/ObjectToObject.html#org.eclipse.xwt.converters"><B>ObjectToObject</B></A></B>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object to Object converter: null converter</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/class-use/ObjectToString.html#org.eclipse.xwt.converters"><B>ObjectToString</B></A></B>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Safely SWT context values, it used to avoid a NullPointerException when set text values to SWT Widgets.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/class-use/StringToInteger.html#org.eclipse.xwt.converters"><B>StringToInteger</B></A></B>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String to Integer converter</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/CanExecuteChangedListener.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/CanExecuteChangedListener.html
deleted file mode 100644
index cbc00d5..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/CanExecuteChangedListener.html
+++ /dev/null
@@ -1,187 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-CanExecuteChangedListener

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.input.CanExecuteChangedListener interface">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="CanExecuteChangedListener";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/CanExecuteChangedListener.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV CLASS&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="CanExecuteChangedListener.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt.input</FONT>

-<BR>

-Interface CanExecuteChangedListener</H2>

-<DL>

-<DT><B>All Superinterfaces:</B> <DD>java.util.EventListener, java.beans.PropertyChangeListener</DD>

-</DL>

-<HR>

-<DL>

-<DT><PRE>public interface <B>CanExecuteChangedListener</B><DT>extends java.beans.PropertyChangeListener</DL>

-</PRE>

-

-<P>

-<HR>

-

-<P>

-

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.beans.PropertyChangeListener"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from interface java.beans.PropertyChangeListener</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>propertyChange</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/CanExecuteChangedListener.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV CLASS&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="CanExecuteChangedListener.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/CommandBinding.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/CommandBinding.html
deleted file mode 100644
index c308999..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/CommandBinding.html
+++ /dev/null
@@ -1,396 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-CommandBinding

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.input.CommandBinding class">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="CommandBinding";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/CommandBinding.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/CommandBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="CommandBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt.input</FONT>

-<BR>

-Class CommandBinding</H2>

-<PRE>

-java.lang.Object

-  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.input.CommandBinding</B>

-</PRE>

-<HR>

-<DL>

-<DT><PRE>public class <B>CommandBinding</B><DT>extends java.lang.Object</DL>

-</PRE>

-

-<P>

-<HR>

-

-<P>

-

-<!-- ======== CONSTRUCTOR SUMMARY ======== -->

-

-<A NAME="constructor_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Constructor Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#CommandBinding()">CommandBinding</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#CommandBinding(org.eclipse.xwt.input.ICommand)">CommandBinding</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&nbsp;command)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#addCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">addCanExecuteChangedListener</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#addExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">addExecuteChangedListener</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#fireCanExecuteChangedListener(java.beans.PropertyChangeEvent)">fireCanExecuteChangedListener</A></B>(java.beans.PropertyChangeEvent&nbsp;args)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#fireExecuteChangedListener(java.beans.PropertyChangeEvent)">fireExecuteChangedListener</A></B>(java.beans.PropertyChangeEvent&nbsp;args)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#getCommand()">getCommand</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#removeCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">removeCanExecuteChangedListener</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#removeExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">removeExecuteChangedListener</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#setCommand(org.eclipse.xwt.input.ICommand)">setCommand</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&nbsp;command)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ========= CONSTRUCTOR DETAIL ======== -->

-

-<A NAME="constructor_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Constructor Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="CommandBinding()"><!-- --></A><H3>

-CommandBinding</H3>

-<PRE>

-public <B>CommandBinding</B>()</PRE>

-<DL>

-</DL>

-<HR>

-

-<A NAME="CommandBinding(org.eclipse.xwt.input.ICommand)"><!-- --></A><H3>

-CommandBinding</H3>

-<PRE>

-public <B>CommandBinding</B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&nbsp;command)</PRE>

-<DL>

-</DL>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="getCommand()"><!-- --></A><H3>

-getCommand</H3>

-<PRE>

-public <A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A> <B>getCommand</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="setCommand(org.eclipse.xwt.input.ICommand)"><!-- --></A><H3>

-setCommand</H3>

-<PRE>

-public void <B>setCommand</B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&nbsp;command)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="addCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><!-- --></A><H3>

-addCanExecuteChangedListener</H3>

-<PRE>

-public void <B>addCanExecuteChangedListener</B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="removeCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><!-- --></A><H3>

-removeCanExecuteChangedListener</H3>

-<PRE>

-public void <B>removeCanExecuteChangedListener</B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="fireCanExecuteChangedListener(java.beans.PropertyChangeEvent)"><!-- --></A><H3>

-fireCanExecuteChangedListener</H3>

-<PRE>

-public void <B>fireCanExecuteChangedListener</B>(java.beans.PropertyChangeEvent&nbsp;args)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="addExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><!-- --></A><H3>

-addExecuteChangedListener</H3>

-<PRE>

-public void <B>addExecuteChangedListener</B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="removeExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><!-- --></A><H3>

-removeExecuteChangedListener</H3>

-<PRE>

-public void <B>removeExecuteChangedListener</B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="fireExecuteChangedListener(java.beans.PropertyChangeEvent)"><!-- --></A><H3>

-fireExecuteChangedListener</H3>

-<PRE>

-public void <B>fireExecuteChangedListener</B>(java.beans.PropertyChangeEvent&nbsp;args)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/CommandBinding.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/CommandBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="CommandBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/ICommand.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/ICommand.html
deleted file mode 100644
index b26e682..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/ICommand.html
+++ /dev/null
@@ -1,263 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-ICommand

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.input.ICommand interface">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="ICommand";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ICommand.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/ICommand.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ICommand.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt.input</FONT>

-<BR>

-Interface ICommand</H2>

-<DL>

-<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input">RoutedCommand</A></DD>

-</DL>

-<HR>

-<DL>

-<DT><PRE>public interface <B>ICommand</B></DL>

-</PRE>

-

-<P>

-<HR>

-

-<P>

-

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html#addCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">addCanExecuteChangedListener</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;boolean</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html#canExecute()">canExecute</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html#execute(java.lang.Object)">execute</A></B>(java.lang.Object&nbsp;parameter)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html#removeCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">removeCanExecuteChangedListener</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="canExecute()"><!-- --></A><H3>

-canExecute</H3>

-<PRE>

-boolean <B>canExecute</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="execute(java.lang.Object)"><!-- --></A><H3>

-execute</H3>

-<PRE>

-void <B>execute</B>(java.lang.Object&nbsp;parameter)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="addCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><!-- --></A><H3>

-addCanExecuteChangedListener</H3>

-<PRE>

-void <B>addCanExecuteChangedListener</B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="removeCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><!-- --></A><H3>

-removeCanExecuteChangedListener</H3>

-<PRE>

-void <B>removeCanExecuteChangedListener</B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ICommand.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/ICommand.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ICommand.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/InputBinding.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/InputBinding.html
deleted file mode 100644
index 8524206..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/InputBinding.html
+++ /dev/null
@@ -1,385 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-InputBinding

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.input.InputBinding class">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="InputBinding";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/InputBinding.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/InputBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="InputBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt.input</FONT>

-<BR>

-Class InputBinding</H2>

-<PRE>

-java.lang.Object

-  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.input.InputBinding</B>

-</PRE>

-<DL>

-<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../../org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input">KeyBinding</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input">MouseBinding</A></DD>

-</DL>

-<HR>

-<DL>

-<DT><PRE>public class <B>InputBinding</B><DT>extends java.lang.Object</DL>

-</PRE>

-

-<P>

-<HR>

-

-<P>

-

-<!-- ======== CONSTRUCTOR SUMMARY ======== -->

-

-<A NAME="constructor_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Constructor Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#InputBinding()">InputBinding</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#getCommand()">getCommand</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#getCommandParameter()">getCommandParameter</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#getCommandTarget()">getCommandTarget</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#getGesture()">getGesture</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#setCommand(org.eclipse.xwt.input.ICommand)">setCommand</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&nbsp;command)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#setCommandParameter(java.lang.Object)">setCommandParameter</A></B>(java.lang.Object&nbsp;commandParameter)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#setCommandTarget(java.lang.Object)">setCommandTarget</A></B>(java.lang.Object&nbsp;commandTarget)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#setGesture(org.eclipse.xwt.input.KeyGesture)">setGesture</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A>&nbsp;gesture)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ========= CONSTRUCTOR DETAIL ======== -->

-

-<A NAME="constructor_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Constructor Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="InputBinding()"><!-- --></A><H3>

-InputBinding</H3>

-<PRE>

-public <B>InputBinding</B>()</PRE>

-<DL>

-</DL>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="getCommandTarget()"><!-- --></A><H3>

-getCommandTarget</H3>

-<PRE>

-public java.lang.Object <B>getCommandTarget</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="setCommandTarget(java.lang.Object)"><!-- --></A><H3>

-setCommandTarget</H3>

-<PRE>

-public void <B>setCommandTarget</B>(java.lang.Object&nbsp;commandTarget)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getCommandParameter()"><!-- --></A><H3>

-getCommandParameter</H3>

-<PRE>

-public java.lang.Object <B>getCommandParameter</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="setCommandParameter(java.lang.Object)"><!-- --></A><H3>

-setCommandParameter</H3>

-<PRE>

-public void <B>setCommandParameter</B>(java.lang.Object&nbsp;commandParameter)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getCommand()"><!-- --></A><H3>

-getCommand</H3>

-<PRE>

-public <A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A> <B>getCommand</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="setCommand(org.eclipse.xwt.input.ICommand)"><!-- --></A><H3>

-setCommand</H3>

-<PRE>

-public void <B>setCommand</B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&nbsp;command)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getGesture()"><!-- --></A><H3>

-getGesture</H3>

-<PRE>

-public <A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A> <B>getGesture</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="setGesture(org.eclipse.xwt.input.KeyGesture)"><!-- --></A><H3>

-setGesture</H3>

-<PRE>

-public void <B>setGesture</B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A>&nbsp;gesture)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/InputBinding.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/InputBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="InputBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/KeyBinding.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/KeyBinding.html
deleted file mode 100644
index 7ea4d16..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/KeyBinding.html
+++ /dev/null
@@ -1,231 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-KeyBinding

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.input.KeyBinding class">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="KeyBinding";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/KeyBinding.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/KeyBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="KeyBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_org.eclipse.xwt.input.InputBinding">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt.input</FONT>

-<BR>

-Class KeyBinding</H2>

-<PRE>

-java.lang.Object

-  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">org.eclipse.xwt.input.InputBinding</A>

-      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.input.KeyBinding</B>

-</PRE>

-<HR>

-<DL>

-<DT><PRE>public class <B>KeyBinding</B><DT>extends <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A></DL>

-</PRE>

-

-<P>

-<HR>

-

-<P>

-

-<!-- ======== CONSTRUCTOR SUMMARY ======== -->

-

-<A NAME="constructor_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Constructor Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/KeyBinding.html#KeyBinding()">KeyBinding</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_org.eclipse.xwt.input.InputBinding"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class org.eclipse.xwt.input.<A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A></B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#getCommand()">getCommand</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#getCommandParameter()">getCommandParameter</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#getCommandTarget()">getCommandTarget</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#getGesture()">getGesture</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#setCommand(org.eclipse.xwt.input.ICommand)">setCommand</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#setCommandParameter(java.lang.Object)">setCommandParameter</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#setCommandTarget(java.lang.Object)">setCommandTarget</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#setGesture(org.eclipse.xwt.input.KeyGesture)">setGesture</A></CODE></TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ========= CONSTRUCTOR DETAIL ======== -->

-

-<A NAME="constructor_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Constructor Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="KeyBinding()"><!-- --></A><H3>

-KeyBinding</H3>

-<PRE>

-public <B>KeyBinding</B>()</PRE>

-<DL>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/KeyBinding.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/KeyBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="KeyBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_org.eclipse.xwt.input.InputBinding">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/KeyGesture.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/KeyGesture.html
deleted file mode 100644
index 57b9d9c..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/KeyGesture.html
+++ /dev/null
@@ -1,344 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-KeyGesture

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.input.KeyGesture class">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="KeyGesture";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/KeyGesture.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/KeyGesture.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="KeyGesture.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt.input</FONT>

-<BR>

-Class KeyGesture</H2>

-<PRE>

-java.lang.Object

-  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.input.KeyGesture</B>

-</PRE>

-<HR>

-<DL>

-<DT><PRE>public class <B>KeyGesture</B><DT>extends java.lang.Object</DL>

-</PRE>

-

-<P>

-<HR>

-

-<P>

-

-<!-- ======== CONSTRUCTOR SUMMARY ======== -->

-

-<A NAME="constructor_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Constructor Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html#KeyGesture()">KeyGesture</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html#getDisplayString()">getDisplayString</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html#getKey()">getKey</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html#getModifiers()">getModifiers</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html#setDisplayString(java.lang.String)">setDisplayString</A></B>(java.lang.String&nbsp;displayString)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html#setKey(java.lang.String)">setKey</A></B>(java.lang.String&nbsp;key)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html#setModifiers(org.eclipse.xwt.input.ModifierKeys)">setModifiers</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A>&nbsp;modifiers)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ========= CONSTRUCTOR DETAIL ======== -->

-

-<A NAME="constructor_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Constructor Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="KeyGesture()"><!-- --></A><H3>

-KeyGesture</H3>

-<PRE>

-public <B>KeyGesture</B>()</PRE>

-<DL>

-</DL>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="getKey()"><!-- --></A><H3>

-getKey</H3>

-<PRE>

-public java.lang.String <B>getKey</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="setKey(java.lang.String)"><!-- --></A><H3>

-setKey</H3>

-<PRE>

-public void <B>setKey</B>(java.lang.String&nbsp;key)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getDisplayString()"><!-- --></A><H3>

-getDisplayString</H3>

-<PRE>

-public java.lang.String <B>getDisplayString</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="setDisplayString(java.lang.String)"><!-- --></A><H3>

-setDisplayString</H3>

-<PRE>

-public void <B>setDisplayString</B>(java.lang.String&nbsp;displayString)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getModifiers()"><!-- --></A><H3>

-getModifiers</H3>

-<PRE>

-public <A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A> <B>getModifiers</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="setModifiers(org.eclipse.xwt.input.ModifierKeys)"><!-- --></A><H3>

-setModifiers</H3>

-<PRE>

-public void <B>setModifiers</B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A>&nbsp;modifiers)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/KeyGesture.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/KeyGesture.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="KeyGesture.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/ModifierKeys.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/ModifierKeys.html
deleted file mode 100644
index f8e92d1..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/ModifierKeys.html
+++ /dev/null
@@ -1,366 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-ModifierKeys

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.input.ModifierKeys class">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="ModifierKeys";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ModifierKeys.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/ModifierKeys.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ModifierKeys.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt.input</FONT>

-<BR>

-Enum ModifierKeys</H2>

-<PRE>

-java.lang.Object

-  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Enum&lt;<A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A>&gt;

-      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.input.ModifierKeys</B>

-</PRE>

-<DL>

-<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable, java.lang.Comparable&lt;<A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A>&gt;</DD>

-</DL>

-<HR>

-<DL>

-<DT><PRE>public enum <B>ModifierKeys</B><DT>extends java.lang.Enum&lt;<A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A>&gt;</DL>

-</PRE>

-

-<P>

-<HR>

-

-<P>

-<!-- =========== ENUM CONSTANT SUMMARY =========== -->

-

-<A NAME="enum_constant_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Enum Constant Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html#Alt">Alt</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html#Control">Control</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html#None">None</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html#Shift">Shift</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html#Windows">Windows</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html#valueOf(java.lang.String)">valueOf</A></B>(java.lang.String&nbsp;name)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A>[]</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html#values()">values</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in

-the order they're declared.</TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Enum"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Enum</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>getClass, notify, notifyAll, wait, wait, wait</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ============ ENUM CONSTANT DETAIL =========== -->

-

-<A NAME="enum_constant_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Enum Constant Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="None"><!-- --></A><H3>

-None</H3>

-<PRE>

-public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A> <B>None</B></PRE>

-<DL>

-<DL>

-</DL>

-</DL>

-<HR>

-

-<A NAME="Alt"><!-- --></A><H3>

-Alt</H3>

-<PRE>

-public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A> <B>Alt</B></PRE>

-<DL>

-<DL>

-</DL>

-</DL>

-<HR>

-

-<A NAME="Control"><!-- --></A><H3>

-Control</H3>

-<PRE>

-public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A> <B>Control</B></PRE>

-<DL>

-<DL>

-</DL>

-</DL>

-<HR>

-

-<A NAME="Shift"><!-- --></A><H3>

-Shift</H3>

-<PRE>

-public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A> <B>Shift</B></PRE>

-<DL>

-<DL>

-</DL>

-</DL>

-<HR>

-

-<A NAME="Windows"><!-- --></A><H3>

-Windows</H3>

-<PRE>

-public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A> <B>Windows</B></PRE>

-<DL>

-<DL>

-</DL>

-</DL>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="values()"><!-- --></A><H3>

-values</H3>

-<PRE>

-public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A>[] <B>values</B>()</PRE>

-<DL>

-<DD>Returns an array containing the constants of this enum type, in

-the order they're declared.  This method may be used to iterate

-over the constants as follows:

-<pre>

-for(ModifierKeys c : ModifierKeys.values())

-        System.out.println(c);

-</pre>

-<P>

-<DD><DL>

-

-<DT><B>Returns:</B><DD>an array containing the constants of this enum type, in

-the order they're declared</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="valueOf(java.lang.String)"><!-- --></A><H3>

-valueOf</H3>

-<PRE>

-public static <A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A> <B>valueOf</B>(java.lang.String&nbsp;name)</PRE>

-<DL>

-<DD>Returns the enum constant of this type with the specified name.

-The string must match <I>exactly</I> an identifier used to declare an

-enum constant in this type.  (Extraneous whitespace characters are 

-not permitted.)

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the enum constant to be returned.

-<DT><B>Returns:</B><DD>the enum constant with the specified name

-<DT><B>Throws:</B>

-<DD><CODE>java.lang.IllegalArgumentException</CODE> - if this enum type has no constant

-with the specified name</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ModifierKeys.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/ModifierKeys.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ModifierKeys.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/MouseAction.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/MouseAction.html
deleted file mode 100644
index 1a4188a..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/MouseAction.html
+++ /dev/null
@@ -1,414 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-MouseAction

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.input.MouseAction class">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="MouseAction";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/MouseAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/MouseAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="MouseAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt.input</FONT>

-<BR>

-Enum MouseAction</H2>

-<PRE>

-java.lang.Object

-  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Enum&lt;<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A>&gt;

-      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.input.MouseAction</B>

-</PRE>

-<DL>

-<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable, java.lang.Comparable&lt;<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A>&gt;</DD>

-</DL>

-<HR>

-<DL>

-<DT><PRE>public enum <B>MouseAction</B><DT>extends java.lang.Enum&lt;<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A>&gt;</DL>

-</PRE>

-

-<P>

-<HR>

-

-<P>

-<!-- =========== ENUM CONSTANT SUMMARY =========== -->

-

-<A NAME="enum_constant_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Enum Constant Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html#LeftClick">LeftClick</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html#LeftDoubleClick">LeftDoubleClick</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html#MiddleClick">MiddleClick</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html#MiddleDoubleClick">MiddleDoubleClick</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html#None">None</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html#RightClick">RightClick</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html#RightDoubleClick">RightDoubleClick</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html#WheelClick">WheelClick</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html#valueOf(java.lang.String)">valueOf</A></B>(java.lang.String&nbsp;name)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A>[]</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html#values()">values</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in

-the order they're declared.</TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Enum"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Enum</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>getClass, notify, notifyAll, wait, wait, wait</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ============ ENUM CONSTANT DETAIL =========== -->

-

-<A NAME="enum_constant_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Enum Constant Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="None"><!-- --></A><H3>

-None</H3>

-<PRE>

-public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A> <B>None</B></PRE>

-<DL>

-<DL>

-</DL>

-</DL>

-<HR>

-

-<A NAME="LeftClick"><!-- --></A><H3>

-LeftClick</H3>

-<PRE>

-public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A> <B>LeftClick</B></PRE>

-<DL>

-<DL>

-</DL>

-</DL>

-<HR>

-

-<A NAME="RightClick"><!-- --></A><H3>

-RightClick</H3>

-<PRE>

-public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A> <B>RightClick</B></PRE>

-<DL>

-<DL>

-</DL>

-</DL>

-<HR>

-

-<A NAME="MiddleClick"><!-- --></A><H3>

-MiddleClick</H3>

-<PRE>

-public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A> <B>MiddleClick</B></PRE>

-<DL>

-<DL>

-</DL>

-</DL>

-<HR>

-

-<A NAME="WheelClick"><!-- --></A><H3>

-WheelClick</H3>

-<PRE>

-public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A> <B>WheelClick</B></PRE>

-<DL>

-<DL>

-</DL>

-</DL>

-<HR>

-

-<A NAME="LeftDoubleClick"><!-- --></A><H3>

-LeftDoubleClick</H3>

-<PRE>

-public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A> <B>LeftDoubleClick</B></PRE>

-<DL>

-<DL>

-</DL>

-</DL>

-<HR>

-

-<A NAME="RightDoubleClick"><!-- --></A><H3>

-RightDoubleClick</H3>

-<PRE>

-public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A> <B>RightDoubleClick</B></PRE>

-<DL>

-<DL>

-</DL>

-</DL>

-<HR>

-

-<A NAME="MiddleDoubleClick"><!-- --></A><H3>

-MiddleDoubleClick</H3>

-<PRE>

-public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A> <B>MiddleDoubleClick</B></PRE>

-<DL>

-<DL>

-</DL>

-</DL>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="values()"><!-- --></A><H3>

-values</H3>

-<PRE>

-public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A>[] <B>values</B>()</PRE>

-<DL>

-<DD>Returns an array containing the constants of this enum type, in

-the order they're declared.  This method may be used to iterate

-over the constants as follows:

-<pre>

-for(MouseAction c : MouseAction.values())

-        System.out.println(c);

-</pre>

-<P>

-<DD><DL>

-

-<DT><B>Returns:</B><DD>an array containing the constants of this enum type, in

-the order they're declared</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="valueOf(java.lang.String)"><!-- --></A><H3>

-valueOf</H3>

-<PRE>

-public static <A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A> <B>valueOf</B>(java.lang.String&nbsp;name)</PRE>

-<DL>

-<DD>Returns the enum constant of this type with the specified name.

-The string must match <I>exactly</I> an identifier used to declare an

-enum constant in this type.  (Extraneous whitespace characters are 

-not permitted.)

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the enum constant to be returned.

-<DT><B>Returns:</B><DD>the enum constant with the specified name

-<DT><B>Throws:</B>

-<DD><CODE>java.lang.IllegalArgumentException</CODE> - if this enum type has no constant

-with the specified name</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/MouseAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/MouseAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="MouseAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/MouseBinding.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/MouseBinding.html
deleted file mode 100644
index 31e5aa4..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/MouseBinding.html
+++ /dev/null
@@ -1,231 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-MouseBinding

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.input.MouseBinding class">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="MouseBinding";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/MouseBinding.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/MouseBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="MouseBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_org.eclipse.xwt.input.InputBinding">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt.input</FONT>

-<BR>

-Class MouseBinding</H2>

-<PRE>

-java.lang.Object

-  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">org.eclipse.xwt.input.InputBinding</A>

-      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.input.MouseBinding</B>

-</PRE>

-<HR>

-<DL>

-<DT><PRE>public class <B>MouseBinding</B><DT>extends <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A></DL>

-</PRE>

-

-<P>

-<HR>

-

-<P>

-

-<!-- ======== CONSTRUCTOR SUMMARY ======== -->

-

-<A NAME="constructor_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Constructor Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/MouseBinding.html#MouseBinding()">MouseBinding</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_org.eclipse.xwt.input.InputBinding"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class org.eclipse.xwt.input.<A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A></B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#getCommand()">getCommand</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#getCommandParameter()">getCommandParameter</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#getCommandTarget()">getCommandTarget</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#getGesture()">getGesture</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#setCommand(org.eclipse.xwt.input.ICommand)">setCommand</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#setCommandParameter(java.lang.Object)">setCommandParameter</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#setCommandTarget(java.lang.Object)">setCommandTarget</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#setGesture(org.eclipse.xwt.input.KeyGesture)">setGesture</A></CODE></TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ========= CONSTRUCTOR DETAIL ======== -->

-

-<A NAME="constructor_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Constructor Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="MouseBinding()"><!-- --></A><H3>

-MouseBinding</H3>

-<PRE>

-public <B>MouseBinding</B>()</PRE>

-<DL>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/MouseBinding.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/MouseBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="MouseBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_org.eclipse.xwt.input.InputBinding">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/RoutedCommand.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/RoutedCommand.html
deleted file mode 100644
index db1fe4b..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/RoutedCommand.html
+++ /dev/null
@@ -1,343 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-RoutedCommand

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.input.RoutedCommand class">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="RoutedCommand";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/RoutedCommand.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;NEXT CLASS</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/RoutedCommand.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="RoutedCommand.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt.input</FONT>

-<BR>

-Class RoutedCommand</H2>

-<PRE>

-java.lang.Object

-  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.input.RoutedCommand</B>

-</PRE>

-<DL>

-<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></DD>

-</DL>

-<HR>

-<DL>

-<DT><PRE>public class <B>RoutedCommand</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></DL>

-</PRE>

-

-<P>

-<HR>

-

-<P>

-

-<!-- ======== CONSTRUCTOR SUMMARY ======== -->

-

-<A NAME="constructor_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Constructor Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html#RoutedCommand()">RoutedCommand</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html#addCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">addCanExecuteChangedListener</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;boolean</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html#canExecute()">canExecute</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html#execute(java.lang.Object)">execute</A></B>(java.lang.Object&nbsp;parameter)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html#fireCanExecuteChangedListener(java.beans.PropertyChangeEvent)">fireCanExecuteChangedListener</A></B>(java.beans.PropertyChangeEvent&nbsp;args)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html#removeCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">removeCanExecuteChangedListener</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ========= CONSTRUCTOR DETAIL ======== -->

-

-<A NAME="constructor_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Constructor Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="RoutedCommand()"><!-- --></A><H3>

-RoutedCommand</H3>

-<PRE>

-public <B>RoutedCommand</B>()</PRE>

-<DL>

-</DL>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="canExecute()"><!-- --></A><H3>

-canExecute</H3>

-<PRE>

-public boolean <B>canExecute</B>()</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html#canExecute()">canExecute</A></CODE> in interface <CODE><A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="execute(java.lang.Object)"><!-- --></A><H3>

-execute</H3>

-<PRE>

-public void <B>execute</B>(java.lang.Object&nbsp;parameter)</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html#execute(java.lang.Object)">execute</A></CODE> in interface <CODE><A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="addCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><!-- --></A><H3>

-addCanExecuteChangedListener</H3>

-<PRE>

-public void <B>addCanExecuteChangedListener</B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html#addCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">addCanExecuteChangedListener</A></CODE> in interface <CODE><A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="removeCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><!-- --></A><H3>

-removeCanExecuteChangedListener</H3>

-<PRE>

-public void <B>removeCanExecuteChangedListener</B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</PRE>

-<DL>

-<DD><DL>

-<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html#removeCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">removeCanExecuteChangedListener</A></CODE> in interface <CODE><A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></CODE></DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="fireCanExecuteChangedListener(java.beans.PropertyChangeEvent)"><!-- --></A><H3>

-fireCanExecuteChangedListener</H3>

-<PRE>

-public void <B>fireCanExecuteChangedListener</B>(java.beans.PropertyChangeEvent&nbsp;args)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/RoutedCommand.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;NEXT CLASS</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/RoutedCommand.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="RoutedCommand.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/CanExecuteChangedListener.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/CanExecuteChangedListener.html
deleted file mode 100644
index 3150858..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/CanExecuteChangedListener.html
+++ /dev/null
@@ -1,232 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Interface org.eclipse.xwt.input.CanExecuteChangedListener

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Interface org.eclipse.xwt.input.CanExecuteChangedListener";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useCanExecuteChangedListener.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="CanExecuteChangedListener.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Interface<br>org.eclipse.xwt.input.CanExecuteChangedListener</B></H2>

-</CENTER>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt.input"><B>org.eclipse.xwt.input</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt.input"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A> with parameters of type <A HREF="../../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B>RoutedCommand.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html#addCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">addCanExecuteChangedListener</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B>ICommand.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html#addCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">addCanExecuteChangedListener</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B>CommandBinding.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#addCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">addCanExecuteChangedListener</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B>CommandBinding.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#addExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">addExecuteChangedListener</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B>RoutedCommand.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html#removeCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">removeCanExecuteChangedListener</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B>ICommand.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html#removeCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">removeCanExecuteChangedListener</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B>CommandBinding.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#removeCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">removeCanExecuteChangedListener</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B>CommandBinding.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#removeExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">removeExecuteChangedListener</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useCanExecuteChangedListener.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="CanExecuteChangedListener.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/CommandBinding.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/CommandBinding.html
deleted file mode 100644
index 2320d18..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/CommandBinding.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Class org.eclipse.xwt.input.CommandBinding

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Class org.eclipse.xwt.input.CommandBinding";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useCommandBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="CommandBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Class<br>org.eclipse.xwt.input.CommandBinding</B></H2>

-</CENTER>

-No usage of org.eclipse.xwt.input.CommandBinding

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useCommandBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="CommandBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/ICommand.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/ICommand.html
deleted file mode 100644
index fccc540..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/ICommand.html
+++ /dev/null
@@ -1,300 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Interface org.eclipse.xwt.input.ICommand

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Interface org.eclipse.xwt.input.ICommand";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useICommand.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ICommand.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Interface<br>org.eclipse.xwt.input.ICommand</B></H2>

-</CENTER>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt"><B>org.eclipse.xwt</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt.input"><B>org.eclipse.xwt.input</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> that return <A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></CODE></FONT></TD>

-<TD><CODE><B>XWT.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/XWT.html#getCommand(java.lang.String)">getCommand</A></B>(java.lang.String&nbsp;name)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Find a command by name</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> that return types with arguments of type <A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.util.Map&lt;java.lang.String,<A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&gt;</CODE></FONT></TD>

-<TD><CODE><B>XWT.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/XWT.html#getCommands()">getCommands</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return all registered commands</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> with parameters of type <A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B>XWT.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/XWT.html#registerCommand(java.lang.String, org.eclipse.xwt.input.ICommand)">registerCommand</A></B>(java.lang.String&nbsp;name,

-                <A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&nbsp;command)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Register a command to a name</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt.input"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A> that implement <A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;class</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input">RoutedCommand</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A> that return <A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></CODE></FONT></TD>

-<TD><CODE><B>InputBinding.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/InputBinding.html#getCommand()">getCommand</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></CODE></FONT></TD>

-<TD><CODE><B>CommandBinding.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#getCommand()">getCommand</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A> with parameters of type <A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B>InputBinding.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/InputBinding.html#setCommand(org.eclipse.xwt.input.ICommand)">setCommand</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&nbsp;command)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B>CommandBinding.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#setCommand(org.eclipse.xwt.input.ICommand)">setCommand</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&nbsp;command)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A> with parameters of type <A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#CommandBinding(org.eclipse.xwt.input.ICommand)">CommandBinding</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&nbsp;command)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useICommand.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ICommand.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/InputBinding.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/InputBinding.html
deleted file mode 100644
index 69075ce..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/InputBinding.html
+++ /dev/null
@@ -1,184 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Class org.eclipse.xwt.input.InputBinding

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Class org.eclipse.xwt.input.InputBinding";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useInputBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="InputBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Class<br>org.eclipse.xwt.input.InputBinding</B></H2>

-</CENTER>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt.input"><B>org.eclipse.xwt.input</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt.input"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;class</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input">KeyBinding</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;class</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input">MouseBinding</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useInputBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="InputBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/KeyBinding.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/KeyBinding.html
deleted file mode 100644
index 9e013ad..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/KeyBinding.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Class org.eclipse.xwt.input.KeyBinding

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Class org.eclipse.xwt.input.KeyBinding";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useKeyBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="KeyBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Class<br>org.eclipse.xwt.input.KeyBinding</B></H2>

-</CENTER>

-No usage of org.eclipse.xwt.input.KeyBinding

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useKeyBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="KeyBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/KeyGesture.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/KeyGesture.html
deleted file mode 100644
index 11317b0..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/KeyGesture.html
+++ /dev/null
@@ -1,192 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Class org.eclipse.xwt.input.KeyGesture

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Class org.eclipse.xwt.input.KeyGesture";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useKeyGesture.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="KeyGesture.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Class<br>org.eclipse.xwt.input.KeyGesture</B></H2>

-</CENTER>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt.input"><B>org.eclipse.xwt.input</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt.input"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A> that return <A HREF="../../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A></CODE></FONT></TD>

-<TD><CODE><B>InputBinding.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/InputBinding.html#getGesture()">getGesture</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A> with parameters of type <A HREF="../../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B>InputBinding.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/InputBinding.html#setGesture(org.eclipse.xwt.input.KeyGesture)">setGesture</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A>&nbsp;gesture)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useKeyGesture.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="KeyGesture.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/ModifierKeys.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/ModifierKeys.html
deleted file mode 100644
index 252ecde..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/ModifierKeys.html
+++ /dev/null
@@ -1,209 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Class org.eclipse.xwt.input.ModifierKeys

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Class org.eclipse.xwt.input.ModifierKeys";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useModifierKeys.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ModifierKeys.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Class<br>org.eclipse.xwt.input.ModifierKeys</B></H2>

-</CENTER>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt.input"><B>org.eclipse.xwt.input</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt.input"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A> that return <A HREF="../../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A></CODE></FONT></TD>

-<TD><CODE><B>KeyGesture.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/KeyGesture.html#getModifiers()">getModifiers</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A></CODE></FONT></TD>

-<TD><CODE><B>ModifierKeys.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html#valueOf(java.lang.String)">valueOf</A></B>(java.lang.String&nbsp;name)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A>[]</CODE></FONT></TD>

-<TD><CODE><B>ModifierKeys.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html#values()">values</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in

-the order they're declared.</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A> with parameters of type <A HREF="../../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B>KeyGesture.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/KeyGesture.html#setModifiers(org.eclipse.xwt.input.ModifierKeys)">setModifiers</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A>&nbsp;modifiers)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useModifierKeys.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ModifierKeys.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/MouseAction.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/MouseAction.html
deleted file mode 100644
index 6db18b4..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/MouseAction.html
+++ /dev/null
@@ -1,185 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Class org.eclipse.xwt.input.MouseAction

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Class org.eclipse.xwt.input.MouseAction";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useMouseAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="MouseAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Class<br>org.eclipse.xwt.input.MouseAction</B></H2>

-</CENTER>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt.input"><B>org.eclipse.xwt.input</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt.input"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A> that return <A HREF="../../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A></CODE></FONT></TD>

-<TD><CODE><B>MouseAction.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/MouseAction.html#valueOf(java.lang.String)">valueOf</A></B>(java.lang.String&nbsp;name)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A>[]</CODE></FONT></TD>

-<TD><CODE><B>MouseAction.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/MouseAction.html#values()">values</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in

-the order they're declared.</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useMouseAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="MouseAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/MouseBinding.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/MouseBinding.html
deleted file mode 100644
index 82534ae..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/MouseBinding.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Class org.eclipse.xwt.input.MouseBinding

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Class org.eclipse.xwt.input.MouseBinding";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useMouseBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="MouseBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Class<br>org.eclipse.xwt.input.MouseBinding</B></H2>

-</CENTER>

-No usage of org.eclipse.xwt.input.MouseBinding

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useMouseBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="MouseBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/RoutedCommand.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/RoutedCommand.html
deleted file mode 100644
index 6eba88c..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/RoutedCommand.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Class org.eclipse.xwt.input.RoutedCommand

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Class org.eclipse.xwt.input.RoutedCommand";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useRoutedCommand.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="RoutedCommand.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Class<br>org.eclipse.xwt.input.RoutedCommand</B></H2>

-</CENTER>

-No usage of org.eclipse.xwt.input.RoutedCommand

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useRoutedCommand.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="RoutedCommand.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/package-frame.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/package-frame.html
deleted file mode 100644
index 2323a78..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/package-frame.html
+++ /dev/null
@@ -1,68 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-org.eclipse.xwt.input

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.input package">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-

-</HEAD>

-

-<BODY BGCOLOR="white">

-<FONT size="+1" CLASS="FrameTitleFont">

-<A HREF="../../../../../org/eclipse/e4/xwt/input/package-summary.html" target="classFrame">org.eclipse.xwt.input</A></FONT>

-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">

-<TR>

-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">

-Interfaces</FONT>&nbsp;

-<FONT CLASS="FrameItemFont">

-<BR>

-<A HREF="CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input" target="classFrame"><I>CanExecuteChangedListener</I></A>

-<BR>

-<A HREF="ICommand.html" title="interface in org.eclipse.xwt.input" target="classFrame"><I>ICommand</I></A></FONT></TD>

-</TR>

-</TABLE>

-

-

-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">

-<TR>

-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">

-Classes</FONT>&nbsp;

-<FONT CLASS="FrameItemFont">

-<BR>

-<A HREF="CommandBinding.html" title="class in org.eclipse.xwt.input" target="classFrame">CommandBinding</A>

-<BR>

-<A HREF="InputBinding.html" title="class in org.eclipse.xwt.input" target="classFrame">InputBinding</A>

-<BR>

-<A HREF="KeyBinding.html" title="class in org.eclipse.xwt.input" target="classFrame">KeyBinding</A>

-<BR>

-<A HREF="KeyGesture.html" title="class in org.eclipse.xwt.input" target="classFrame">KeyGesture</A>

-<BR>

-<A HREF="MouseBinding.html" title="class in org.eclipse.xwt.input" target="classFrame">MouseBinding</A>

-<BR>

-<A HREF="RoutedCommand.html" title="class in org.eclipse.xwt.input" target="classFrame">RoutedCommand</A></FONT></TD>

-</TR>

-</TABLE>

-

-

-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">

-<TR>

-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">

-Enums</FONT>&nbsp;

-<FONT CLASS="FrameItemFont">

-<BR>

-<A HREF="ModifierKeys.html" title="enum in org.eclipse.xwt.input" target="classFrame">ModifierKeys</A>

-<BR>

-<A HREF="MouseAction.html" title="enum in org.eclipse.xwt.input" target="classFrame">MouseAction</A></FONT></TD>

-</TR>

-</TABLE>

-

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/package-summary.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/package-summary.html
deleted file mode 100644
index b7cf3f8..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/package-summary.html
+++ /dev/null
@@ -1,210 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-org.eclipse.xwt.input

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.input package">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="org.eclipse.xwt.input";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<H2>

-Package org.eclipse.xwt.input

-</H2>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Interface Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A></B></TD>

-<TD>&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></B></TD>

-<TD>&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Class Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input">CommandBinding</A></B></TD>

-<TD>&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A></B></TD>

-<TD>&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input">KeyBinding</A></B></TD>

-<TD>&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A></B></TD>

-<TD>&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input">MouseBinding</A></B></TD>

-<TD>&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input">RoutedCommand</A></B></TD>

-<TD>&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Enum Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A></B></TD>

-<TD>&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A></B></TD>

-<TD>&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-

-<P>

-<DL>

-</DL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/package-tree.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/package-tree.html
deleted file mode 100644
index 24a811e..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/package-tree.html
+++ /dev/null
@@ -1,171 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-org.eclipse.xwt.input Class Hierarchy

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="org.eclipse.xwt.input Class Hierarchy";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/package-tree.html"><B>PREV</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/package-tree.html"><B>NEXT</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-Hierarchy For Package org.eclipse.xwt.input

-</H2>

-</CENTER>

-<DL>

-<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>

-<HR>

-<H2>

-Class Hierarchy

-</H2>

-<UL>

-<LI TYPE="circle">java.lang.Object<UL>

-<LI TYPE="circle">org.eclipse.xwt.input.<A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input"><B>CommandBinding</B></A><LI TYPE="circle">org.eclipse.xwt.input.<A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input"><B>InputBinding</B></A><UL>

-<LI TYPE="circle">org.eclipse.xwt.input.<A HREF="../../../../../org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input"><B>KeyBinding</B></A><LI TYPE="circle">org.eclipse.xwt.input.<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input"><B>MouseBinding</B></A></UL>

-<LI TYPE="circle">org.eclipse.xwt.input.<A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input"><B>KeyGesture</B></A><LI TYPE="circle">org.eclipse.xwt.input.<A HREF="../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input"><B>RoutedCommand</B></A> (implements org.eclipse.xwt.input.<A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>)

-</UL>

-</UL>

-<H2>

-Interface Hierarchy

-</H2>

-<UL>

-<LI TYPE="circle">java.util.EventListener<UL>

-<LI TYPE="circle">java.beans.PropertyChangeListener<UL>

-<LI TYPE="circle">org.eclipse.xwt.input.<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input"><B>CanExecuteChangedListener</B></A></UL>

-</UL>

-<LI TYPE="circle">org.eclipse.xwt.input.<A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input"><B>ICommand</B></A></UL>

-<H2>

-Enum Hierarchy

-</H2>

-<UL>

-<LI TYPE="circle">java.lang.Object<UL>

-<LI TYPE="circle">java.lang.Enum&lt;E&gt; (implements java.lang.Comparable&lt;T&gt;, java.io.Serializable)

-<UL>

-<LI TYPE="circle">org.eclipse.xwt.input.<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input"><B>MouseAction</B></A><LI TYPE="circle">org.eclipse.xwt.input.<A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input"><B>ModifierKeys</B></A></UL>

-</UL>

-</UL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/package-tree.html"><B>PREV</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/package-tree.html"><B>NEXT</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/package-use.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/package-use.html
deleted file mode 100644
index 0c626d0..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/package-use.html
+++ /dev/null
@@ -1,215 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Package org.eclipse.xwt.input

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Package org.eclipse.xwt.input";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Package<br>org.eclipse.xwt.input</B></H2>

-</CENTER>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Packages that use <A HREF="../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt"><B>org.eclipse.xwt</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt.input"><B>org.eclipse.xwt.input</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Classes in <A HREF="../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A> used by <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/input/class-use/ICommand.html#org.eclipse.xwt"><B>ICommand</B></A></B>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt.input"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Classes in <A HREF="../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A> used by <A HREF="../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/input/class-use/CanExecuteChangedListener.html#org.eclipse.xwt.input"><B>CanExecuteChangedListener</B></A></B>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/input/class-use/ICommand.html#org.eclipse.xwt.input"><B>ICommand</B></A></B>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/input/class-use/InputBinding.html#org.eclipse.xwt.input"><B>InputBinding</B></A></B>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/input/class-use/KeyGesture.html#org.eclipse.xwt.input"><B>KeyGesture</B></A></B>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/input/class-use/ModifierKeys.html#org.eclipse.xwt.input"><B>ModifierKeys</B></A></B>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/input/class-use/MouseAction.html#org.eclipse.xwt.input"><B>MouseAction</B></A></B>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/IBehavior.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/IBehavior.html
deleted file mode 100644
index 0292545..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/IBehavior.html
+++ /dev/null
@@ -1,236 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:36 CET 2009 -->

-<TITLE>

-IBehavior

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.metadata.IBehavior interface">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="IBehavior";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IBehavior.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV CLASS&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/IBehavior.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IBehavior.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt.metadata</FONT>

-<BR>

-Interface IBehavior</H2>

-<DL>

-<DT><B>All Known Subinterfaces:</B> <DD><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata">IEvent</A>, <A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></DD>

-</DL>

-<HR>

-<DL>

-<DT><PRE>public interface <B>IBehavior</B></DL>

-</PRE>

-

-<P>

-Common behavior of Property and event

-<P>

-

-<P>

-<DL>

-<DT><B>Author:</B></DT>

-  <DD>yyang</DD>

-</DL>

-<HR>

-

-<P>

-

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html#getName()">getName</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Getter of the property <tt>name</tt></TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html#setName(java.lang.String)">setName</A></B>(java.lang.String&nbsp;name)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="getName()"><!-- --></A><H3>

-getName</H3>

-<PRE>

-java.lang.String <B>getName</B>()</PRE>

-<DL>

-<DD>Getter of the property <tt>name</tt>

-<P>

-<DD><DL>

-

-<DT><B>Returns:</B><DD>Returns the name.</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="setName(java.lang.String)"><!-- --></A><H3>

-setName</H3>

-<PRE>

-void <B>setName</B>(java.lang.String&nbsp;name)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IBehavior.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV CLASS&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/IBehavior.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IBehavior.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/IEvent.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/IEvent.html
deleted file mode 100644
index 49ebb1b..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/IEvent.html
+++ /dev/null
@@ -1,195 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:36 CET 2009 -->

-<TITLE>

-IEvent

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.metadata.IEvent interface">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="IEvent";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IEvent.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/IEvent.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IEvent.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt.metadata</FONT>

-<BR>

-Interface IEvent</H2>

-<DL>

-<DT><B>All Superinterfaces:</B> <DD><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata">IBehavior</A></DD>

-</DL>

-<HR>

-<DL>

-<DT><PRE>public interface <B>IEvent</B><DT>extends <A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata">IBehavior</A></DL>

-</PRE>

-

-<P>

-UI event

-<P>

-

-<P>

-<DL>

-<DT><B>Author:</B></DT>

-  <DD>yyang</DD>

-</DL>

-<HR>

-

-<P>

-

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_org.eclipse.xwt.metadata.IBehavior"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from interface org.eclipse.xwt.metadata.<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata">IBehavior</A></B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html#getName()">getName</A>, <A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html#setName(java.lang.String)">setName</A></CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IEvent.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/IEvent.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IEvent.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/IMetaclass.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/IMetaclass.html
deleted file mode 100644
index a3a0c56..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/IMetaclass.html
+++ /dev/null
@@ -1,499 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:36 CET 2009 -->

-<TITLE>

-IMetaclass

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.metadata.IMetaclass interface">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="IMetaclass";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IMetaclass.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/IMetaclass.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IMetaclass.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt.metadata</FONT>

-<BR>

-Interface IMetaclass</H2>

-<HR>

-<DL>

-<DT><PRE>public interface <B>IMetaclass</B></DL>

-</PRE>

-

-<P>

-UI metaclass

-<P>

-

-<P>

-<DL>

-<DT><B>Author:</B></DT>

-  <DD>yyang</DD>

-</DL>

-<HR>

-

-<P>

-

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#addArrayProperty(org.eclipse.xwt.metadata.IProperty)">addArrayProperty</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>&nbsp;property)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#addProperty(org.eclipse.xwt.metadata.IProperty)">addProperty</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>&nbsp;property)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#findDefaultProperty()">findDefaultProperty</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata">IEvent</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#findEvent(java.lang.String)">findEvent</A></B>(java.lang.String&nbsp;name)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#findProperty(java.lang.String)">findProperty</A></B>(java.lang.String&nbsp;name)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata">IEvent</A>[]</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#getEvents()">getEvents</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#getName()">getName</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>[]</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#getProperties()">getProperties</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#getSuperClass()">getSuperClass</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Class&lt;?&gt;</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#getType()">getType</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;boolean</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#isAbstract()">isAbstract</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;boolean</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#isAssignableFrom(org.eclipse.xwt.metadata.IMetaclass)">isAssignableFrom</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;metaclass)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;boolean</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#isInstance(java.lang.Object)">isInstance</A></B>(java.lang.Object&nbsp;object)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;boolean</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#isSubclassOf(org.eclipse.xwt.metadata.IMetaclass)">isSubclassOf</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;metaclass)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;boolean</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#isSuperclassOf(org.eclipse.xwt.metadata.IMetaclass)">isSuperclassOf</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;metaclass)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#newInstance(java.lang.Object[])">newInstance</A></B>(java.lang.Object[]&nbsp;parameters)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="getName()"><!-- --></A><H3>

-getName</H3>

-<PRE>

-java.lang.String <B>getName</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getProperties()"><!-- --></A><H3>

-getProperties</H3>

-<PRE>

-<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>[] <B>getProperties</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getSuperClass()"><!-- --></A><H3>

-getSuperClass</H3>

-<PRE>

-<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A> <B>getSuperClass</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getEvents()"><!-- --></A><H3>

-getEvents</H3>

-<PRE>

-<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata">IEvent</A>[] <B>getEvents</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="findProperty(java.lang.String)"><!-- --></A><H3>

-findProperty</H3>

-<PRE>

-<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A> <B>findProperty</B>(java.lang.String&nbsp;name)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="findDefaultProperty()"><!-- --></A><H3>

-findDefaultProperty</H3>

-<PRE>

-<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A> <B>findDefaultProperty</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="findEvent(java.lang.String)"><!-- --></A><H3>

-findEvent</H3>

-<PRE>

-<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata">IEvent</A> <B>findEvent</B>(java.lang.String&nbsp;name)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="newInstance(java.lang.Object[])"><!-- --></A><H3>

-newInstance</H3>

-<PRE>

-java.lang.Object <B>newInstance</B>(java.lang.Object[]&nbsp;parameters)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="isAbstract()"><!-- --></A><H3>

-isAbstract</H3>

-<PRE>

-boolean <B>isAbstract</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="isInstance(java.lang.Object)"><!-- --></A><H3>

-isInstance</H3>

-<PRE>

-boolean <B>isInstance</B>(java.lang.Object&nbsp;object)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="isSubclassOf(org.eclipse.xwt.metadata.IMetaclass)"><!-- --></A><H3>

-isSubclassOf</H3>

-<PRE>

-boolean <B>isSubclassOf</B>(<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;metaclass)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="isSuperclassOf(org.eclipse.xwt.metadata.IMetaclass)"><!-- --></A><H3>

-isSuperclassOf</H3>

-<PRE>

-boolean <B>isSuperclassOf</B>(<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;metaclass)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="isAssignableFrom(org.eclipse.xwt.metadata.IMetaclass)"><!-- --></A><H3>

-isAssignableFrom</H3>

-<PRE>

-boolean <B>isAssignableFrom</B>(<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;metaclass)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getType()"><!-- --></A><H3>

-getType</H3>

-<PRE>

-java.lang.Class&lt;?&gt; <B>getType</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="addArrayProperty(org.eclipse.xwt.metadata.IProperty)"><!-- --></A><H3>

-addArrayProperty</H3>

-<PRE>

-<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A> <B>addArrayProperty</B>(<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>&nbsp;property)</PRE>

-<DL>

-<DD>TODO

-<P>

-<DD><DL>

-<DT><B>Parameters:</B><DD><CODE>property</CODE> - 

-<DT><B>Returns:</B><DD></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="addProperty(org.eclipse.xwt.metadata.IProperty)"><!-- --></A><H3>

-addProperty</H3>

-<PRE>

-<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A> <B>addProperty</B>(<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>&nbsp;property)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IMetaclass.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/IMetaclass.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IMetaclass.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/IProperty.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/IProperty.html
deleted file mode 100644
index b759c90..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/IProperty.html
+++ /dev/null
@@ -1,362 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:36 CET 2009 -->

-<TITLE>

-IProperty

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.metadata.IProperty interface">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="IProperty";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IProperty.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/IProperty.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IProperty.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt.metadata</FONT>

-<BR>

-Interface IProperty</H2>

-<DL>

-<DT><B>All Superinterfaces:</B> <DD><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata">IBehavior</A></DD>

-</DL>

-<HR>

-<DL>

-<DT><PRE>public interface <B>IProperty</B><DT>extends <A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata">IBehavior</A></DL>

-</PRE>

-

-<P>

-UI property

-<P>

-

-<P>

-<DL>

-<DT><B>Author:</B></DT>

-  <DD>yyang</DD>

-</DL>

-<HR>

-

-<P>

-

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html#addSetPostAction(org.eclipse.xwt.metadata.ISetPostAction)">addSetPostAction</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata">ISetPostAction</A>&nbsp;setPostAction)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Class&lt;?&gt;</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html#getType()">getType</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html#getValue(java.lang.Object)">getValue</A></B>(java.lang.Object&nbsp;target)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html#removeSetPostAction(org.eclipse.xwt.metadata.ISetPostAction)">removeSetPostAction</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata">ISetPostAction</A>&nbsp;setPostAction)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html#setType(java.lang.Class)">setType</A></B>(java.lang.Class&lt;?&gt;&nbsp;type)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html#setValue(java.lang.Object, java.lang.Object)">setValue</A></B>(java.lang.Object&nbsp;target,

-         java.lang.Object&nbsp;value)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Can generate event</TD>

-</TR>

-</TABLE>

-&nbsp;<A NAME="methods_inherited_from_class_org.eclipse.xwt.metadata.IBehavior"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left"><B>Methods inherited from interface org.eclipse.xwt.metadata.<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata">IBehavior</A></B></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><CODE><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html#getName()">getName</A>, <A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html#setName(java.lang.String)">setName</A></CODE></TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="getType()"><!-- --></A><H3>

-getType</H3>

-<PRE>

-java.lang.Class&lt;?&gt; <B>getType</B>()</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="setType(java.lang.Class)"><!-- --></A><H3>

-setType</H3>

-<PRE>

-void <B>setType</B>(java.lang.Class&lt;?&gt;&nbsp;type)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="setValue(java.lang.Object, java.lang.Object)"><!-- --></A><H3>

-setValue</H3>

-<PRE>

-void <B>setValue</B>(java.lang.Object&nbsp;target,

-              java.lang.Object&nbsp;value)

-              throws java.lang.IllegalArgumentException,

-                     java.lang.IllegalAccessException,

-                     java.lang.reflect.InvocationTargetException,

-                     java.lang.SecurityException,

-                     java.lang.NoSuchFieldException</PRE>

-<DL>

-<DD>Can generate event

-<P>

-<DD><DL>

-</DL>

-</DD>

-<DD><DL>

-

-<DT><B>Throws:</B>

-<DD><CODE>java.lang.IllegalArgumentException</CODE>

-<DD><CODE>java.lang.IllegalAccessException</CODE>

-<DD><CODE>java.lang.reflect.InvocationTargetException</CODE>

-<DD><CODE>java.lang.SecurityException</CODE>

-<DD><CODE>java.lang.NoSuchFieldException</CODE></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="getValue(java.lang.Object)"><!-- --></A><H3>

-getValue</H3>

-<PRE>

-java.lang.Object <B>getValue</B>(java.lang.Object&nbsp;target)

-                          throws java.lang.IllegalArgumentException,

-                                 java.lang.IllegalAccessException,

-                                 java.lang.reflect.InvocationTargetException,

-                                 java.lang.SecurityException,

-                                 java.lang.NoSuchFieldException</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-<DD><DL>

-

-<DT><B>Throws:</B>

-<DD><CODE>java.lang.IllegalArgumentException</CODE>

-<DD><CODE>java.lang.IllegalAccessException</CODE>

-<DD><CODE>java.lang.reflect.InvocationTargetException</CODE>

-<DD><CODE>java.lang.SecurityException</CODE>

-<DD><CODE>java.lang.NoSuchFieldException</CODE></DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="addSetPostAction(org.eclipse.xwt.metadata.ISetPostAction)"><!-- --></A><H3>

-addSetPostAction</H3>

-<PRE>

-void <B>addSetPostAction</B>(<A HREF="../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata">ISetPostAction</A>&nbsp;setPostAction)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<HR>

-

-<A NAME="removeSetPostAction(org.eclipse.xwt.metadata.ISetPostAction)"><!-- --></A><H3>

-removeSetPostAction</H3>

-<PRE>

-void <B>removeSetPostAction</B>(<A HREF="../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata">ISetPostAction</A>&nbsp;setPostAction)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IProperty.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata"><B>NEXT CLASS</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/IProperty.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IProperty.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/ISetPostAction.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/ISetPostAction.html
deleted file mode 100644
index 6a81ba5..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/ISetPostAction.html
+++ /dev/null
@@ -1,207 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-ISetPostAction

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.metadata.ISetPostAction interface">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="ISetPostAction";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ISetPostAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;NEXT CLASS</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/ISetPostAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ISetPostAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<!-- ======== START OF CLASS DATA ======== -->

-<H2>

-<FONT SIZE="-1">

-org.eclipse.xwt.metadata</FONT>

-<BR>

-Interface ISetPostAction</H2>

-<HR>

-<DL>

-<DT><PRE>public interface <B>ISetPostAction</B></DL>

-</PRE>

-

-<P>

-<HR>

-

-<P>

-

-<!-- ========== METHOD SUMMARY =========== -->

-

-<A NAME="method_summary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Method Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html#action(java.lang.Object, org.eclipse.xwt.metadata.IProperty, java.lang.Object)">action</A></B>(java.lang.Object&nbsp;target,

-       <A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>&nbsp;property,

-       java.lang.Object&nbsp;value)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<!-- ============ METHOD DETAIL ========== -->

-

-<A NAME="method_detail"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">

-<B>Method Detail</B></FONT></TH>

-</TR>

-</TABLE>

-

-<A NAME="action(java.lang.Object, org.eclipse.xwt.metadata.IProperty, java.lang.Object)"><!-- --></A><H3>

-action</H3>

-<PRE>

-void <B>action</B>(java.lang.Object&nbsp;target,

-            <A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>&nbsp;property,

-            java.lang.Object&nbsp;value)</PRE>

-<DL>

-<DD><DL>

-</DL>

-</DD>

-</DL>

-<!-- ========= END OF CLASS DATA ========= -->

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ISetPostAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata"><B>PREV CLASS</B></A>&nbsp;

-&nbsp;NEXT CLASS</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/ISetPostAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ISetPostAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-<TR>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>

-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">

-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/IBehavior.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/IBehavior.html
deleted file mode 100644
index a8479c8..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/IBehavior.html
+++ /dev/null
@@ -1,184 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Interface org.eclipse.xwt.metadata.IBehavior

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Interface org.eclipse.xwt.metadata.IBehavior";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/metadata/\class-useIBehavior.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IBehavior.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Interface<br>org.eclipse.xwt.metadata.IBehavior</B></H2>

-</CENTER>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata">IBehavior</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt.metadata"><B>org.eclipse.xwt.metadata</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt.metadata"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata">IBehavior</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Subinterfaces of <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata">IBehavior</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;interface</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata">IEvent</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UI event</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;interface</CODE></FONT></TD>

-<TD><CODE><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></B></CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UI property</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/metadata/\class-useIBehavior.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IBehavior.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/IEvent.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/IEvent.html
deleted file mode 100644
index 467a1cb..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/IEvent.html
+++ /dev/null
@@ -1,184 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Interface org.eclipse.xwt.metadata.IEvent

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Interface org.eclipse.xwt.metadata.IEvent";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/metadata/\class-useIEvent.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IEvent.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Interface<br>org.eclipse.xwt.metadata.IEvent</B></H2>

-</CENTER>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata">IEvent</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt.metadata"><B>org.eclipse.xwt.metadata</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt.metadata"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata">IEvent</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A> that return <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata">IEvent</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata">IEvent</A></CODE></FONT></TD>

-<TD><CODE><B>IMetaclass.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#findEvent(java.lang.String)">findEvent</A></B>(java.lang.String&nbsp;name)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata">IEvent</A>[]</CODE></FONT></TD>

-<TD><CODE><B>IMetaclass.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#getEvents()">getEvents</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/metadata/\class-useIEvent.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IEvent.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/IMetaclass.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/IMetaclass.html
deleted file mode 100644
index d9eba5f..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/IMetaclass.html
+++ /dev/null
@@ -1,306 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Interface org.eclipse.xwt.metadata.IMetaclass

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Interface org.eclipse.xwt.metadata.IMetaclass";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/metadata/\class-useIMetaclass.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IMetaclass.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Interface<br>org.eclipse.xwt.metadata.IMetaclass</B></H2>

-</CENTER>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt"><B>org.eclipse.xwt</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt.metadata"><B>org.eclipse.xwt.metadata</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> that return <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></CODE></FONT></TD>

-<TD><CODE><B>IMetaclassFactory.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/IMetaclassFactory.html#create(java.lang.Class, org.eclipse.xwt.metadata.IMetaclass)">create</A></B>(java.lang.Class&lt;?&gt;&nbsp;type,

-       <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;superMetaclass)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>[]</CODE></FONT></TD>

-<TD><CODE><B>XWT.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/XWT.html#getAllMetaclasses()">getAllMetaclasses</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Metaclass services to return all registered Metaclasses.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></CODE></FONT></TD>

-<TD><CODE><B>XWT.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/XWT.html#getMetaclass(java.lang.Object)">getMetaclass</A></B>(java.lang.Object&nbsp;object)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the Metaclass of the given object</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></CODE></FONT></TD>

-<TD><CODE><B>XWT.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/XWT.html#getMetaclass(java.lang.String, java.lang.String)">getMetaclass</A></B>(java.lang.String&nbsp;tagName,

-             java.lang.String&nbsp;ns)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the corresponding Metaclass</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></CODE></FONT></TD>

-<TD><CODE><B>XWT.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/XWT.html#register(java.lang.Class, java.lang.String)">register</A></B>(java.lang.Class&lt;?&gt;&nbsp;javaclass,

-         java.lang.String&nbsp;namespace)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Register UI type</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></CODE></FONT></TD>

-<TD><CODE><B>XWT.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/XWT.html#registerMetaclass(java.lang.Class)">registerMetaclass</A></B>(java.lang.Class&nbsp;type)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Register UI type</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> with parameters of type <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>static&nbsp;java.lang.Object</CODE></FONT></TD>

-<TD><CODE><B>XWT.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/XWT.html#convertFrom(org.eclipse.xwt.metadata.IMetaclass, java.lang.String)">convertFrom</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;type,

-            java.lang.String&nbsp;string)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Data conversion service from String to a given type</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></CODE></FONT></TD>

-<TD><CODE><B>IMetaclassFactory.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/IMetaclassFactory.html#create(java.lang.Class, org.eclipse.xwt.metadata.IMetaclass)">create</A></B>(java.lang.Class&lt;?&gt;&nbsp;type,

-       <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;superMetaclass)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt.metadata"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A> that return <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></CODE></FONT></TD>

-<TD><CODE><B>IMetaclass.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#getSuperClass()">getSuperClass</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A> with parameters of type <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;boolean</CODE></FONT></TD>

-<TD><CODE><B>IMetaclass.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#isAssignableFrom(org.eclipse.xwt.metadata.IMetaclass)">isAssignableFrom</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;metaclass)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;boolean</CODE></FONT></TD>

-<TD><CODE><B>IMetaclass.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#isSubclassOf(org.eclipse.xwt.metadata.IMetaclass)">isSubclassOf</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;metaclass)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;boolean</CODE></FONT></TD>

-<TD><CODE><B>IMetaclass.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#isSuperclassOf(org.eclipse.xwt.metadata.IMetaclass)">isSuperclassOf</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;metaclass)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/metadata/\class-useIMetaclass.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IMetaclass.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/IProperty.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/IProperty.html
deleted file mode 100644
index 3a5b4a5..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/IProperty.html
+++ /dev/null
@@ -1,242 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Interface org.eclipse.xwt.metadata.IProperty

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Interface org.eclipse.xwt.metadata.IProperty";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/metadata/\class-useIProperty.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IProperty.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Interface<br>org.eclipse.xwt.metadata.IProperty</B></H2>

-</CENTER>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt.metadata"><B>org.eclipse.xwt.metadata</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt.metadata"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A> that return <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></CODE></FONT></TD>

-<TD><CODE><B>IMetaclass.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#addArrayProperty(org.eclipse.xwt.metadata.IProperty)">addArrayProperty</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>&nbsp;property)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></CODE></FONT></TD>

-<TD><CODE><B>IMetaclass.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#addProperty(org.eclipse.xwt.metadata.IProperty)">addProperty</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>&nbsp;property)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></CODE></FONT></TD>

-<TD><CODE><B>IMetaclass.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#findDefaultProperty()">findDefaultProperty</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></CODE></FONT></TD>

-<TD><CODE><B>IMetaclass.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#findProperty(java.lang.String)">findProperty</A></B>(java.lang.String&nbsp;name)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>[]</CODE></FONT></TD>

-<TD><CODE><B>IMetaclass.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#getProperties()">getProperties</A></B>()</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A> with parameters of type <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B>ISetPostAction.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html#action(java.lang.Object, org.eclipse.xwt.metadata.IProperty, java.lang.Object)">action</A></B>(java.lang.Object&nbsp;target,

-       <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>&nbsp;property,

-       java.lang.Object&nbsp;value)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></CODE></FONT></TD>

-<TD><CODE><B>IMetaclass.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#addArrayProperty(org.eclipse.xwt.metadata.IProperty)">addArrayProperty</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>&nbsp;property)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></CODE></FONT></TD>

-<TD><CODE><B>IMetaclass.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#addProperty(org.eclipse.xwt.metadata.IProperty)">addProperty</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>&nbsp;property)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/metadata/\class-useIProperty.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="IProperty.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/ISetPostAction.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/ISetPostAction.html
deleted file mode 100644
index 946d732..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/ISetPostAction.html
+++ /dev/null
@@ -1,184 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Interface org.eclipse.xwt.metadata.ISetPostAction

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Interface org.eclipse.xwt.metadata.ISetPostAction";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/metadata/\class-useISetPostAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ISetPostAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Interface<br>org.eclipse.xwt.metadata.ISetPostAction</B></H2>

-</CENTER>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata">ISetPostAction</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt.metadata"><B>org.eclipse.xwt.metadata</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt.metadata"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata">ISetPostAction</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A></FONT></TH>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A> with parameters of type <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata">ISetPostAction</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B>IProperty.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html#addSetPostAction(org.eclipse.xwt.metadata.ISetPostAction)">addSetPostAction</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata">ISetPostAction</A>&nbsp;setPostAction)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">

-<CODE>&nbsp;void</CODE></FONT></TD>

-<TD><CODE><B>IProperty.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html#removeSetPostAction(org.eclipse.xwt.metadata.ISetPostAction)">removeSetPostAction</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata">ISetPostAction</A>&nbsp;setPostAction)</CODE>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/metadata/\class-useISetPostAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="ISetPostAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/package-frame.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/package-frame.html
deleted file mode 100644
index 3579ceb..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/package-frame.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-org.eclipse.xwt.metadata

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.metadata package">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-

-</HEAD>

-

-<BODY BGCOLOR="white">

-<FONT size="+1" CLASS="FrameTitleFont">

-<A HREF="../../../../../org/eclipse/e4/xwt/metadata/package-summary.html" target="classFrame">org.eclipse.xwt.metadata</A></FONT>

-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">

-<TR>

-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">

-Interfaces</FONT>&nbsp;

-<FONT CLASS="FrameItemFont">

-<BR>

-<A HREF="IBehavior.html" title="interface in org.eclipse.xwt.metadata" target="classFrame"><I>IBehavior</I></A>

-<BR>

-<A HREF="IEvent.html" title="interface in org.eclipse.xwt.metadata" target="classFrame"><I>IEvent</I></A>

-<BR>

-<A HREF="IMetaclass.html" title="interface in org.eclipse.xwt.metadata" target="classFrame"><I>IMetaclass</I></A>

-<BR>

-<A HREF="IProperty.html" title="interface in org.eclipse.xwt.metadata" target="classFrame"><I>IProperty</I></A>

-<BR>

-<A HREF="ISetPostAction.html" title="interface in org.eclipse.xwt.metadata" target="classFrame"><I>ISetPostAction</I></A></FONT></TD>

-</TR>

-</TABLE>

-

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/package-summary.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/package-summary.html
deleted file mode 100644
index 4267fdb..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/package-summary.html
+++ /dev/null
@@ -1,170 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-org.eclipse.xwt.metadata

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt.metadata package">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="org.eclipse.xwt.metadata";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;

-&nbsp;NEXT PACKAGE</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<H2>

-Package org.eclipse.xwt.metadata

-</H2>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Interface Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata">IBehavior</A></B></TD>

-<TD>Common behavior of Property and event</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata">IEvent</A></B></TD>

-<TD>UI event</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></B></TD>

-<TD>UI metaclass</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></B></TD>

-<TD>UI property</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata">ISetPostAction</A></B></TD>

-<TD>&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-

-<P>

-<DL>

-</DL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;

-&nbsp;NEXT PACKAGE</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/package-tree.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/package-tree.html
deleted file mode 100644
index 0fa1e6d..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/package-tree.html
+++ /dev/null
@@ -1,149 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-org.eclipse.xwt.metadata Class Hierarchy

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="org.eclipse.xwt.metadata Class Hierarchy";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/package-tree.html"><B>PREV</B></A>&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-Hierarchy For Package org.eclipse.xwt.metadata

-</H2>

-</CENTER>

-<DL>

-<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>

-<HR>

-<H2>

-Interface Hierarchy

-</H2>

-<UL>

-<LI TYPE="circle">org.eclipse.xwt.metadata.<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata"><B>IBehavior</B></A><UL>

-<LI TYPE="circle">org.eclipse.xwt.metadata.<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata"><B>IEvent</B></A><LI TYPE="circle">org.eclipse.xwt.metadata.<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata"><B>IProperty</B></A></UL>

-<LI TYPE="circle">org.eclipse.xwt.metadata.<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata"><B>IMetaclass</B></A><LI TYPE="circle">org.eclipse.xwt.metadata.<A HREF="../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata"><B>ISetPostAction</B></A></UL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/package-tree.html"><B>PREV</B></A>&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/package-use.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/package-use.html
deleted file mode 100644
index 3a03a14..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/package-use.html
+++ /dev/null
@@ -1,209 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Package org.eclipse.xwt.metadata

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Package org.eclipse.xwt.metadata";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Package<br>org.eclipse.xwt.metadata</B></H2>

-</CENTER>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Packages that use <A HREF="../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt"><B>org.eclipse.xwt</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt.metadata"><B>org.eclipse.xwt.metadata</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Classes in <A HREF="../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A> used by <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/class-use/IMetaclass.html#org.eclipse.xwt"><B>IMetaclass</B></A></B>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UI metaclass</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt.metadata"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Classes in <A HREF="../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A> used by <A HREF="../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/class-use/IBehavior.html#org.eclipse.xwt.metadata"><B>IBehavior</B></A></B>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Common behavior of Property and event</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/class-use/IEvent.html#org.eclipse.xwt.metadata"><B>IEvent</B></A></B>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UI event</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/class-use/IMetaclass.html#org.eclipse.xwt.metadata"><B>IMetaclass</B></A></B>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UI metaclass</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/class-use/IProperty.html#org.eclipse.xwt.metadata"><B>IProperty</B></A></B>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UI property</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/class-use/ISetPostAction.html#org.eclipse.xwt.metadata"><B>ISetPostAction</B></A></B>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/package-frame.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/package-frame.html
deleted file mode 100644
index 9073be1..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/package-frame.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-org.eclipse.xwt

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt package">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

-

-

-</HEAD>

-

-<BODY BGCOLOR="white">

-<FONT size="+1" CLASS="FrameTitleFont">

-<A HREF="../../../../org/eclipse/e4/xwt/package-summary.html" target="classFrame">org.eclipse.xwt</A></FONT>

-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">

-<TR>

-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">

-Interfaces</FONT>&nbsp;

-<FONT CLASS="FrameItemFont">

-<BR>

-<A HREF="IConstants.html" title="interface in org.eclipse.xwt" target="classFrame"><I>IConstants</I></A>

-<BR>

-<A HREF="IDataBindingProvider.html" title="interface in org.eclipse.xwt" target="classFrame"><I>IDataBindingProvider</I></A>

-<BR>

-<A HREF="ILoadData.html" title="interface in org.eclipse.xwt" target="classFrame"><I>ILoadData</I></A>

-<BR>

-<A HREF="ILoadingContext.html" title="interface in org.eclipse.xwt" target="classFrame"><I>ILoadingContext</I></A>

-<BR>

-<A HREF="ILogger.html" title="interface in org.eclipse.xwt" target="classFrame"><I>ILogger</I></A>

-<BR>

-<A HREF="IMetaclassFactory.html" title="interface in org.eclipse.xwt" target="classFrame"><I>IMetaclassFactory</I></A></FONT></TD>

-</TR>

-</TABLE>

-

-

-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">

-<TR>

-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">

-Classes</FONT>&nbsp;

-<FONT CLASS="FrameItemFont">

-<BR>

-<A HREF="ResourceDictionary.html" title="class in org.eclipse.xwt" target="classFrame">ResourceDictionary</A>

-<BR>

-<A HREF="XWT.html" title="class in org.eclipse.xwt" target="classFrame">XWT</A>

-<BR>

-<A HREF="XWTMaps.html" title="class in org.eclipse.xwt" target="classFrame">XWTMaps</A></FONT></TD>

-</TR>

-</TABLE>

-

-

-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">

-<TR>

-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">

-Enums</FONT>&nbsp;

-<FONT CLASS="FrameItemFont">

-<BR>

-<A HREF="Tracking.html" title="enum in org.eclipse.xwt" target="classFrame">Tracking</A></FONT></TD>

-</TR>

-</TABLE>

-

-

-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">

-<TR>

-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">

-Exceptions</FONT>&nbsp;

-<FONT CLASS="FrameItemFont">

-<BR>

-<A HREF="XWTException.html" title="class in org.eclipse.xwt" target="classFrame">XWTException</A></FONT></TD>

-</TR>

-</TABLE>

-

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/package-summary.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/package-summary.html
deleted file mode 100644
index b646012..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/package-summary.html
+++ /dev/null
@@ -1,224 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-org.eclipse.xwt

-</TITLE>

-

-<META NAME="keywords" CONTENT="org.eclipse.xwt package">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="org.eclipse.xwt";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV PACKAGE&nbsp;

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/input/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<H2>

-Package org.eclipse.xwt

-</H2>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Interface Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A></B></TD>

-<TD>Shared constants</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/e4/xwt/IDataBindingProvider.html" title="interface in org.eclipse.xwt">IDataBindingProvider</A></B></TD>

-<TD>A Data Binding provider defines the nature of Data Binding such as Bean Object Binding, EMF Object Binding, XML data Binding or Data Base binding</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A></B></TD>

-<TD>&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A></B></TD>

-<TD>&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A></B></TD>

-<TD>Looger interface</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt">IMetaclassFactory</A></B></TD>

-<TD>Metaclass factory provides a customizable Metaclass creation mechanism.</TD>

-</TR>

-</TABLE>

-&nbsp;

-

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Class Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A></B></TD>

-<TD>&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A></B></TD>

-<TD>XWT is the main class of the XWT framework.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt">XWTMaps</A></B></TD>

-<TD>&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Enum Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A></B></TD>

-<TD>&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-

-<P>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Exception Summary</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt">XWTException</A></B></TD>

-<TD>&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-

-<P>

-<DL>

-</DL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV PACKAGE&nbsp;

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/input/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/package-tree.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/package-tree.html
deleted file mode 100644
index ddc228d..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/package-tree.html
+++ /dev/null
@@ -1,177 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-org.eclipse.xwt Class Hierarchy

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="org.eclipse.xwt Class Hierarchy";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/input/package-tree.html"><B>NEXT</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-Hierarchy For Package org.eclipse.xwt

-</H2>

-</CENTER>

-<DL>

-<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>

-<HR>

-<H2>

-Class Hierarchy

-</H2>

-<UL>

-<LI TYPE="circle">java.lang.Object<UL>

-<LI TYPE="circle">java.util.AbstractMap&lt;K,V&gt; (implements java.util.Map&lt;K,V&gt;)

-<UL>

-<LI TYPE="circle">java.util.HashMap&lt;K,V&gt; (implements java.lang.Cloneable, java.util.Map&lt;K,V&gt;, java.io.Serializable)

-<UL>

-<LI TYPE="circle">org.eclipse.xwt.<A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt"><B>ResourceDictionary</B></A></UL>

-</UL>

-<LI TYPE="circle">java.lang.Throwable (implements java.io.Serializable)

-<UL>

-<LI TYPE="circle">java.lang.Exception<UL>

-<LI TYPE="circle">java.lang.RuntimeException<UL>

-<LI TYPE="circle">org.eclipse.xwt.<A HREF="../../../../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt"><B>XWTException</B></A></UL>

-</UL>

-</UL>

-<LI TYPE="circle">org.eclipse.xwt.<A HREF="../../../../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt"><B>XWT</B></A><LI TYPE="circle">org.eclipse.xwt.<A HREF="../../../../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt"><B>XWTMaps</B></A></UL>

-</UL>

-<H2>

-Interface Hierarchy

-</H2>

-<UL>

-<LI TYPE="circle">org.eclipse.xwt.<A HREF="../../../../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt"><B>IConstants</B></A><LI TYPE="circle">org.eclipse.xwt.<A HREF="../../../../org/eclipse/e4/xwt/IDataBindingProvider.html" title="interface in org.eclipse.xwt"><B>IDataBindingProvider</B></A><LI TYPE="circle">org.eclipse.xwt.<A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt"><B>ILoadData</B></A><LI TYPE="circle">org.eclipse.xwt.<A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt"><B>ILoadingContext</B></A><LI TYPE="circle">org.eclipse.xwt.<A HREF="../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt"><B>ILogger</B></A><LI TYPE="circle">org.eclipse.xwt.<A HREF="../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt"><B>IMetaclassFactory</B></A></UL>

-<H2>

-Enum Hierarchy

-</H2>

-<UL>

-<LI TYPE="circle">java.lang.Object<UL>

-<LI TYPE="circle">java.lang.Enum&lt;E&gt; (implements java.lang.Comparable&lt;T&gt;, java.io.Serializable)

-<UL>

-<LI TYPE="circle">org.eclipse.xwt.<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt"><B>Tracking</B></A></UL>

-</UL>

-</UL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/input/package-tree.html"><B>NEXT</B></A></FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/package-use.html b/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/package-use.html
deleted file mode 100644
index 129946b..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/package-use.html
+++ /dev/null
@@ -1,196 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Uses of Package org.eclipse.xwt

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Uses of Package org.eclipse.xwt";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-<B>Uses of Package<br>org.eclipse.xwt</B></H2>

-</CENTER>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Packages that use <A HREF="../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><A HREF="#org.eclipse.xwt"><B>org.eclipse.xwt</B></A></TD>

-<TD>&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<A NAME="org.eclipse.xwt"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-Classes in <A HREF="../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> used by <A HREF="../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><B><A HREF="../../../../org/eclipse/e4/xwt/class-use/ILoadData.html#org.eclipse.xwt"><B>ILoadData</B></A></B>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><B><A HREF="../../../../org/eclipse/e4/xwt/class-use/ILoadingContext.html#org.eclipse.xwt"><B>ILoadingContext</B></A></B>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><B><A HREF="../../../../org/eclipse/e4/xwt/class-use/ILogger.html#org.eclipse.xwt"><B>ILogger</B></A></B>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Looger interface</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><B><A HREF="../../../../org/eclipse/e4/xwt/class-use/IMetaclassFactory.html#org.eclipse.xwt"><B>IMetaclassFactory</B></A></B>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Metaclass factory provides a customizable Metaclass creation mechanism.</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><B><A HREF="../../../../org/eclipse/e4/xwt/class-use/ResourceDictionary.html#org.eclipse.xwt"><B>ResourceDictionary</B></A></B>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD><B><A HREF="../../../../org/eclipse/e4/xwt/class-use/Tracking.html#org.eclipse.xwt"><B>Tracking</B></A></B>

-

-<BR>

-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>

-</TR>

-</TABLE>

-&nbsp;

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="../../../../index.html?org/eclipse/e4/xwt/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/overview-frame.html b/org.eclipse.xwt.doc.user/javadoc/overview-frame.html
deleted file mode 100644
index d1439be..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/overview-frame.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Overview

-</TITLE>

-

-<META NAME="keywords" CONTENT="Overview">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">

-

-

-</HEAD>

-

-<BODY BGCOLOR="white">

-

-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">

-<TR>

-<TH ALIGN="left" NOWRAP><FONT size="+1" CLASS="FrameTitleFont">

-<B></B></FONT></TH>

-</TR>

-</TABLE>

-

-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">

-<TR>

-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="allclasses-frame.html" target="packageFrame">All Classes</A></FONT>

-<P>

-<FONT size="+1" CLASS="FrameHeadingFont">

-Packages</FONT>

-<BR>

-<FONT CLASS="FrameItemFont"><A HREF="org/eclipse/e4/xwt/package-frame.html" target="packageFrame">org.eclipse.xwt</A></FONT>

-<BR>

-<FONT CLASS="FrameItemFont"><A HREF="org/eclipse/e4/xwt/input/package-frame.html" target="packageFrame">org.eclipse.xwt.input</A></FONT>

-<BR>

-<FONT CLASS="FrameItemFont"><A HREF="org/eclipse/e4/xwt/metadata/package-frame.html" target="packageFrame">org.eclipse.xwt.metadata</A></FONT>

-<BR>

-</TD>

-</TR>

-</TABLE>

-

-<P>

-&nbsp;

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/overview-summary.html b/org.eclipse.xwt.doc.user/javadoc/overview-summary.html
deleted file mode 100644
index f4fab4a..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/overview-summary.html
+++ /dev/null
@@ -1,156 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:38 CET 2009 -->

-<TITLE>

-Overview

-</TITLE>

-

-<META NAME="keywords" CONTENT="Overview">

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Overview";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="index.html?overview-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Packages</B></FONT></TH>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="20%"><B><A HREF="org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A></B></TD>

-<TD>&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="20%"><B><A HREF="org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A></B></TD>

-<TD>&nbsp;</TD>

-</TR>

-<TR BGCOLOR="white" CLASS="TableRowColor">

-<TD WIDTH="20%"><B><A HREF="org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A></B></TD>

-<TD>&nbsp;</TD>

-</TR>

-</TABLE>

-

-<P>

-&nbsp;<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="index.html?overview-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/overview-tree.html b/org.eclipse.xwt.doc.user/javadoc/overview-tree.html
deleted file mode 100644
index 31fd930..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/overview-tree.html
+++ /dev/null
@@ -1,185 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Class Hierarchy

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Class Hierarchy";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H2>

-Hierarchy For All Packages</H2>

-</CENTER>

-<DL>

-<DT><B>Package Hierarchies:</B><DD><A HREF="org/eclipse/e4/xwt/package-tree.html">org.eclipse.xwt</A>, <A HREF="org/eclipse/e4/xwt/input/package-tree.html">org.eclipse.xwt.input</A>, <A HREF="org/eclipse/e4/xwt/metadata/package-tree.html">org.eclipse.xwt.metadata</A></DL>

-<HR>

-<H2>

-Class Hierarchy

-</H2>

-<UL>

-<LI TYPE="circle">java.lang.Object<UL>

-<LI TYPE="circle">java.util.AbstractMap&lt;K,V&gt; (implements java.util.Map&lt;K,V&gt;)

-<UL>

-<LI TYPE="circle">java.util.HashMap&lt;K,V&gt; (implements java.lang.Cloneable, java.util.Map&lt;K,V&gt;, java.io.Serializable)

-<UL>

-<LI TYPE="circle">org.eclipse.xwt.<A HREF="org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt"><B>ResourceDictionary</B></A></UL>

-</UL>

-<LI TYPE="circle">org.eclipse.xwt.input.<A HREF="org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input"><B>CommandBinding</B></A><LI TYPE="circle">org.eclipse.xwt.input.<A HREF="org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input"><B>InputBinding</B></A><UL>

-<LI TYPE="circle">org.eclipse.xwt.input.<A HREF="org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input"><B>KeyBinding</B></A><LI TYPE="circle">org.eclipse.xwt.input.<A HREF="org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input"><B>MouseBinding</B></A></UL>

-<LI TYPE="circle">org.eclipse.xwt.input.<A HREF="org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input"><B>KeyGesture</B></A><LI TYPE="circle">org.eclipse.xwt.input.<A HREF="org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input"><B>RoutedCommand</B></A> (implements org.eclipse.xwt.input.<A HREF="org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>)

-<LI TYPE="circle">java.lang.Throwable (implements java.io.Serializable)

-<UL>

-<LI TYPE="circle">java.lang.Exception<UL>

-<LI TYPE="circle">java.lang.RuntimeException<UL>

-<LI TYPE="circle">org.eclipse.xwt.<A HREF="org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt"><B>XWTException</B></A></UL>

-</UL>

-</UL>

-<LI TYPE="circle">org.eclipse.xwt.<A HREF="org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt"><B>XWT</B></A><LI TYPE="circle">org.eclipse.xwt.<A HREF="org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt"><B>XWTMaps</B></A></UL>

-</UL>

-<H2>

-Interface Hierarchy

-</H2>

-<UL>

-<LI TYPE="circle">java.util.EventListener<UL>

-<LI TYPE="circle">org.eclipse.xwt.input.<A HREF="org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input"><B>CanExecuteChangedListener</B></A><LI TYPE="circle">java.beans.PropertyChangeListener<UL>

-<LI TYPE="circle">org.eclipse.xwt.input.<A HREF="org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input"><B>CanExecuteChangedListener</B></A></UL>

-</UL>

-<LI TYPE="circle">org.eclipse.xwt.metadata.<A HREF="org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata"><B>IBehavior</B></A><UL>

-<LI TYPE="circle">org.eclipse.xwt.metadata.<A HREF="org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata"><B>IEvent</B></A><LI TYPE="circle">org.eclipse.xwt.metadata.<A HREF="org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata"><B>IProperty</B></A></UL>

-<LI TYPE="circle">org.eclipse.xwt.input.<A HREF="org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input"><B>ICommand</B></A><LI TYPE="circle">org.eclipse.xwt.<A HREF="org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt"><B>IConstants</B></A><LI TYPE="circle">org.eclipse.xwt.<A HREF="org/eclipse/e4/xwt/IDataBindingProvider.html" title="interface in org.eclipse.xwt"><B>IDataBindingProvider</B></A><LI TYPE="circle">org.eclipse.xwt.<A HREF="org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt"><B>ILoadData</B></A><LI TYPE="circle">org.eclipse.xwt.<A HREF="org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt"><B>ILoadingContext</B></A><LI TYPE="circle">org.eclipse.xwt.<A HREF="org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt"><B>ILogger</B></A><LI TYPE="circle">org.eclipse.xwt.metadata.<A HREF="org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata"><B>IMetaclass</B></A><LI TYPE="circle">org.eclipse.xwt.<A HREF="org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt"><B>IMetaclassFactory</B></A><LI TYPE="circle">org.eclipse.xwt.metadata.<A HREF="org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata"><B>ISetPostAction</B></A></UL>

-<H2>

-Enum Hierarchy

-</H2>

-<UL>

-<LI TYPE="circle">java.lang.Object<UL>

-<LI TYPE="circle">java.lang.Enum&lt;E&gt; (implements java.lang.Comparable&lt;T&gt;, java.io.Serializable)

-<UL>

-<LI TYPE="circle">org.eclipse.xwt.<A HREF="org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt"><B>Tracking</B></A><LI TYPE="circle">org.eclipse.xwt.input.<A HREF="org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input"><B>MouseAction</B></A><LI TYPE="circle">org.eclipse.xwt.input.<A HREF="org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input"><B>ModifierKeys</B></A></UL>

-</UL>

-</UL>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/package-list b/org.eclipse.xwt.doc.user/javadoc/package-list
deleted file mode 100644
index 8f227e1..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/package-list
+++ /dev/null
@@ -1,3 +0,0 @@
-org.eclipse.xwt

-org.eclipse.xwt.input

-org.eclipse.xwt.metadata

diff --git a/org.eclipse.xwt.doc.user/javadoc/serialized-form.html b/org.eclipse.xwt.doc.user/javadoc/serialized-form.html
deleted file mode 100644
index e94be13..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/serialized-form.html
+++ /dev/null
@@ -1,170 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--NewPage-->

-<HTML>

-<HEAD>

-<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->

-<TITLE>

-Serialized Form

-</TITLE>

-

-

-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">

-

-<SCRIPT type="text/javascript">

-function windowTitle()

-{

-    parent.document.title="Serialized Form";

-}

-</SCRIPT>

-<NOSCRIPT>

-</NOSCRIPT>

-

-</HEAD>

-

-<BODY BGCOLOR="white" onload="windowTitle();">

-

-

-<!-- ========= START OF TOP NAVBAR ======= -->

-<A NAME="navbar_top"><!-- --></A>

-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_top_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="index.html?serialized-form.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="serialized-form.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_top"></A>

-<!-- ========= END OF TOP NAVBAR ========= -->

-

-<HR>

-<CENTER>

-<H1>

-Serialized Form</H1>

-</CENTER>

-<HR SIZE="4" NOSHADE>

-

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="center"><FONT SIZE="+2">

-<B>Package</B> <B>org.eclipse.xwt</B></FONT></TH>

-</TR>

-</TABLE>

-

-<P>

-<A NAME="org.eclipse.xwt.ResourceDictionary"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Class <A HREF="org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">org.eclipse.xwt.ResourceDictionary</A> extends java.util.HashMap&lt;java.lang.String,java.lang.Object&gt; implements Serializable</B></FONT></TH>

-</TR>

-</TABLE>

-

-<P>

-

-<P>

-<A NAME="org.eclipse.xwt.XWTException"><!-- --></A>

-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">

-<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">

-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

-<B>Class <A HREF="org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt">org.eclipse.xwt.XWTException</A> extends java.lang.RuntimeException implements Serializable</B></FONT></TH>

-</TR>

-</TABLE>

-

-<P>

-

-<P>

-<HR>

-

-

-<!-- ======= START OF BOTTOM NAVBAR ====== -->

-<A NAME="navbar_bottom"><!-- --></A>

-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>

-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">

-<TR>

-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">

-<A NAME="navbar_bottom_firstrow"><!-- --></A>

-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">

-  <TR ALIGN="center" VALIGN="top">

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>

-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>

-  </TR>

-</TABLE>

-</TD>

-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>

-</EM>

-</TD>

-</TR>

-

-<TR>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-&nbsp;PREV&nbsp;

-&nbsp;NEXT</FONT></TD>

-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">

-  <A HREF="index.html?serialized-form.html" target="_top"><B>FRAMES</B></A>  &nbsp;

-&nbsp;<A HREF="serialized-form.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;

-&nbsp;<SCRIPT type="text/javascript">

-  <!--

-  if(window==top) {

-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');

-  }

-  //-->

-</SCRIPT>

-<NOSCRIPT>

-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>

-</NOSCRIPT>

-

-

-</FONT></TD>

-</TR>

-</TABLE>

-<A NAME="skip-navbar_bottom"></A>

-<!-- ======== END OF BOTTOM NAVBAR ======= -->

-

-<HR>

-

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/javadoc/stylesheet.css b/org.eclipse.xwt.doc.user/javadoc/stylesheet.css
deleted file mode 100644
index 14c3737..0000000
--- a/org.eclipse.xwt.doc.user/javadoc/stylesheet.css
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Javadoc style sheet */

-

-/* Define colors, fonts and other style attributes here to override the defaults */

-

-/* Page background color */

-body { background-color: #FFFFFF }

-

-/* Headings */

-h1 { font-size: 145% }

-

-/* Table colors */

-.TableHeadingColor     { background: #CCCCFF } /* Dark mauve */

-.TableSubHeadingColor  { background: #EEEEFF } /* Light mauve */

-.TableRowColor         { background: #FFFFFF } /* White */

-

-/* Font used in left-hand frame lists */

-.FrameTitleFont   { font-size: 100%; font-family: Helvetica, Arial, sans-serif }

-.FrameHeadingFont { font-size:  90%; font-family: Helvetica, Arial, sans-serif }

-.FrameItemFont    { font-size:  90%; font-family: Helvetica, Arial, sans-serif }

-

-/* Navigation bar fonts and colors */

-.NavBarCell1    { background-color:#EEEEFF;} /* Light mauve */

-.NavBarCell1Rev { background-color:#00008B;} /* Dark Blue */

-.NavBarFont1    { font-family: Arial, Helvetica, sans-serif; color:#000000;}

-.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;}

-

-.NavBarCell2    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}

-.NavBarCell3    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}

-

diff --git a/org.eclipse.xwt.doc.user/plugin.xml b/org.eclipse.xwt.doc.user/plugin.xml
deleted file mode 100644
index 1a8c024..0000000
--- a/org.eclipse.xwt.doc.user/plugin.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<?eclipse version="3.2"?>

-<plugin>

-   <extension

-         point="org.eclipse.help.toc">

-      <toc

-            file="toc.xml"

-            primary="true">

-      </toc>

-   </extension>

-

-</plugin>

diff --git a/org.eclipse.xwt.doc.user/pom.xml b/org.eclipse.xwt.doc.user/pom.xml
deleted file mode 100755
index 40be0f1..0000000
--- a/org.eclipse.xwt.doc.user/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt.doc.user</artifactId>
-	<version>1.0.0-SNAPSHOT</version>
-	<packaging>eclipse-plugin</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/reference/extension_points/commands.html b/org.eclipse.xwt.doc.user/reference/extension_points/commands.html
deleted file mode 100644
index 3520d90..0000000
--- a/org.eclipse.xwt.doc.user/reference/extension_points/commands.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

-<HTML>

-<link href="../../book.css" rel="stylesheet" type="text/css" />

-<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>commands</title>

-<style type="text/css">@import url("file:/D:/Develop/Java/Eclipse/340/plugins/org.eclipse.sdk_3.4.0.v200806172000/book.css");</style>

-<style type="text/css">@import url("file:/D:/Develop/Java/Eclipse/340/configuration/org.eclipse.osgi/bundles/203/1/.cp/schema.css");</style>

-</HEAD>

-<BODY>

-<H1>Commands</H1>

-<p></p>

-<h6 class="CaptionFigColumn SchemaHeader">Identifier: </h6>org.eclipse.xwt.pde.commands<p></p>

-<h6 class="CaptionFigColumn SchemaHeader">Since: </h6>[Enter the first release in which this extension point appears.]

-<p></p>

-

-<h6 class="CaptionFigColumn SchemaHeader">Description: </h6>This extension point is used to register a command with a name<p></p>

-<h6 class="CaptionFigColumn SchemaHeader">Configuration Markup:</h6>

-<p></p>

-<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.command">command</a>*)&gt;</p>

-<p class="code SchemaDtd">&lt;!ATTLIST extension</p>

-<p class="code SchemaDtdAttlist">point&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>

-<p></p>

-<ul class="ConfigMarkupAttlistDesc">

-</ul>

-<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.command">command</a> EMPTY&gt;</p>

-<p class="code SchemaDtd">&lt;!ATTLIST command</p>

-<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">class&nbsp;CDATA #REQUIRED&gt;</p>

-<p></p>

-<ul class="ConfigMarkupAttlistDesc">

-<li><b>name</b> - the name</li>

-<li><b>class</b> - The class of command must implement the interface org.eclipse.xwt.ICommand</li>

-</ul>

-<br><h6 class="CaptionFigColumn SchemaHeader">Examples: </h6>Here is an example to define a commands: 

-<pre class="Example"><span class="code SchemaTag">

-   &lt;extension

-         point=</span><span class="code SchemaCstring">&quot;org.eclipse.xwt.pde.commands&quot;</span><span class="code SchemaTag">&gt;

-      &lt;command

-            class=</span><span class="code SchemaCstring">&quot;org.eclipse.xwt.demo.MessageCommand&quot;</span><span class="code SchemaTag">

-            name=</span><span class="code SchemaCstring">&quot;Message&quot;</span><span class="code SchemaTag">&gt;

-      &lt;/command&gt;

-   &lt;/extension&gt;

-</span></pre>

-<p></p>

-

-<h6 class="CaptionFigColumn SchemaHeader">API Information: </h6>[Enter API information here.]

-<p></p>

-

-<h6 class="CaptionFigColumn SchemaHeader">Supplied Implementation: </h6>[Enter information about supplied implementation of this extension point.]

-<p></p>

-

-<br>

-<p class="note SchemaCopyright">

-</p>

-</BODY>

-<p><img src="../../cpy.png" /></p>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/reference/extension_points/converters.html b/org.eclipse.xwt.doc.user/reference/extension_points/converters.html
deleted file mode 100644
index 301d94e..0000000
--- a/org.eclipse.xwt.doc.user/reference/extension_points/converters.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

-<HTML>

-<link href="../../book.css" rel="stylesheet" type="text/css" />

-<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>converters</title>

-<style type="text/css">@import url("file:/D:/Develop/Java/Eclipse/340/plugins/org.eclipse.sdk_3.4.0.v200806172000/book.css");</style>

-<style type="text/css">@import url("file:/D:/Develop/Java/Eclipse/340/configuration/org.eclipse.osgi/bundles/203/1/.cp/schema.css");</style>

-</HEAD>

-<BODY>

-<H1>Converters</H1>

-<p></p>

-<h6 class="CaptionFigColumn SchemaHeader">Identifier: </h6>org.eclipse.xwt.pde.converters<p></p>

-<h6 class="CaptionFigColumn SchemaHeader">Since: </h6>[Enter the first release in which this extension point appears.]

-<p></p>

-

-<h6 class="CaptionFigColumn SchemaHeader">Description: </h6>This extension point is used to declare a new data converter<p></p>

-<h6 class="CaptionFigColumn SchemaHeader">Configuration Markup:</h6>

-<p></p>

-<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.converter">converter</a>*)&gt;</p>

-<p class="code SchemaDtd">&lt;!ATTLIST extension</p>

-<p class="code SchemaDtdAttlist">point&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>

-<p></p>

-<ul class="ConfigMarkupAttlistDesc">

-</ul>

-<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.converter">converter</a> EMPTY&gt;</p>

-<p class="code SchemaDtd">&lt;!ATTLIST converter</p>

-<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">class&nbsp;CDATA #REQUIRED&gt;</p>

-<p></p>

-<p class="ConfigMarkupElementDesc">

-Data converter element</p>

-<br>

-<ul class="ConfigMarkupAttlistDesc">

-<li><b>name</b> - the name</li>

-<li><b>class</b> - The class of converter must implement the interface  org.eclipse.core.databinding.conversion.IConverter</li>

-</ul>

-<br><h6 class="CaptionFigColumn SchemaHeader">Examples: </h6>Here is an example to define the converter from String to URL: 

-<pre class="Example"><span class="code SchemaTag">

-   &lt;extension

-         point=</span><span class="code SchemaCstring">&quot;org.eclipse.xwt.pde.converters&quot;</span><span class="code SchemaTag">&gt;

-      &lt;converter

-            class=</span><span class="code SchemaCstring">&quot;org.eclipse.xwt.demo.URLConverter&quot;</span><span class="code SchemaTag">

-            name=</span><span class="code SchemaCstring">&quot;URLConverter&quot;</span><span class="code SchemaTag">&gt;

-      &lt;/converter&gt;

-   &lt;/extension&gt;

-</span></pre>

-

-<p>The class implementation should be: </p>

-<pre class="Example"><span class="code SchemaTag">

-package org.eclipse.xwt.demo;

-

-import java.net.MalformedURLException;

-import java.net.URL;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-

-public class URLConverter implements IConverter {

-  public Object convert(Object fromObject) {

-    try {

-      return new URL((String) fromObject);

-    } catch (MalformedURLException e) {

-      throw new RuntimeException(e);

-    }

-  }

-

-  public Object getFromType() {

-    return String.class;

-  }

-

-  public Object getToType() {

-    return URL.class;

-  }

-}

-</span></pre>

-<p></p>

-

-<h6 class="CaptionFigColumn SchemaHeader">API Information: </h6>[Enter API information here.]

-<p></p>

-

-<h6 class="CaptionFigColumn SchemaHeader">Supplied Implementation: </h6>[Enter information about supplied implementation of this extension point.]

-<p></p>

-

-<br>

-<p class="note SchemaCopyright">

-</p>

-</BODY>

-<p><img src="../../cpy.png" /></p>

-</HTML>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/reference/extension_points/index.html b/org.eclipse.xwt.doc.user/reference/extension_points/index.html
deleted file mode 100644
index 06427d6..0000000
--- a/org.eclipse.xwt.doc.user/reference/extension_points/index.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

-

-<html>

-<link href="../../book.css" rel="stylesheet" type="text/css" />

-<head>

-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>Hello World</title>

-</head>

-

-<body>

-

-</body>

-<p><img src="../../cpy.png" /></p>

-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/reference/extension_points/logger.html b/org.eclipse.xwt.doc.user/reference/extension_points/logger.html
deleted file mode 100644
index b7a0a6c..0000000
--- a/org.eclipse.xwt.doc.user/reference/extension_points/logger.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

-<HTML>

-<link href="../../book.css" rel="stylesheet" type="text/css" />

-<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>logger</title>

-<style type="text/css">@import url("file:/D:/Develop/Java/Eclipse/340/plugins/org.eclipse.sdk_3.4.0.v200806172000/book.css");</style>

-<style type="text/css">@import url("file:/D:/Develop/Java/Eclipse/340/configuration/org.eclipse.osgi/bundles/203/1/.cp/schema.css");</style>

-</HEAD>

-<BODY>

-<H1>Logger</H1>

-<p></p>

-<h6 class="CaptionFigColumn SchemaHeader">Identifier: </h6>org.eclipse.xwt.pde.logger<p></p>

-<h6 class="CaptionFigColumn SchemaHeader">Since: </h6>[Enter the first release in which this extension point appears.]

-<p></p>

-

-<h6 class="CaptionFigColumn SchemaHeader">Description: </h6>The logger class will be used by XWT framework.<p></p>

-<h6 class="CaptionFigColumn SchemaHeader">Configuration Markup:</h6>

-<p></p>

-<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.logger">logger</a>)&gt;</p>

-<p class="code SchemaDtd">&lt;!ATTLIST extension</p>

-<p class="code SchemaDtdAttlist">point&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>

-<p></p>

-<ul class="ConfigMarkupAttlistDesc">

-</ul>

-<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.logger">logger</a> EMPTY&gt;</p>

-<p class="code SchemaDtd">&lt;!ATTLIST logger</p>

-<p class="code SchemaDtdAttlist">class&nbsp;CDATA #REQUIRED&gt;</p>

-<p></p>

-<p class="ConfigMarkupElementDesc">

-Tracker logger will be set in XWT class and will be used by XWT Framework</p>

-<br>

-<ul class="ConfigMarkupAttlistDesc">

-<li><b>class</b> - The logger class must implements the interface org.eclipse.xwt.ILogger</li>

-</ul>

-<br><h6 class="CaptionFigColumn SchemaHeader">Examples: </h6>Here is an example to declare the logger: 

-<pre class="Example"><span class="code SchemaTag">

-   &lt;extension

-         point=</span><span class="code SchemaCstring">&quot;org.eclipse.xwt.pde.logger&quot;</span><span class="code SchemaTag">&gt;

-      &lt;logger

-            class=</span><span class="code SchemaCstring">&quot;org.eclipse.xwt.demo.Logger&quot;</span><span class="code SchemaTag">&gt;

-      &lt;/logger&gt;

-   &lt;/extension&gt;

-</span></pre>

-<p></p>

-

-<h6 class="CaptionFigColumn SchemaHeader">API Information: </h6>[Enter API information here.]

-<p></p>

-

-<h6 class="CaptionFigColumn SchemaHeader">Supplied Implementation: </h6>[Enter information about supplied implementation of this extension point.]

-<p></p>

-

-<br>

-<p class="note SchemaCopyright">

-</p>

-</BODY>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/reference/extension_points/metaclasses.html b/org.eclipse.xwt.doc.user/reference/extension_points/metaclasses.html
deleted file mode 100644
index 002f24c..0000000
--- a/org.eclipse.xwt.doc.user/reference/extension_points/metaclasses.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

-<HTML>

-<link href="../../book.css" rel="stylesheet" type="text/css" />

-<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>metaclasses</title>

-<style type="text/css">@import url("file:/D:/Develop/Java/Eclipse/340/plugins/org.eclipse.sdk_3.4.0.v200806172000/book.css");</style>

-<style type="text/css">@import url("file:/D:/Develop/Java/Eclipse/340/configuration/org.eclipse.osgi/bundles/203/1/.cp/schema.css");</style>

-</HEAD>

-<BODY>

-<H1>Metaclasses</H1>

-<p></p>

-<h6 class="CaptionFigColumn SchemaHeader">Identifier: </h6>org.eclipse.xwt.pde.metaclasses<p></p>

-<h6 class="CaptionFigColumn SchemaHeader">Since: </h6>[Enter the first release in which this extension point appears.]

-<p></p>

-

-<h6 class="CaptionFigColumn SchemaHeader">Description: </h6>This extension point is used to register a metaclass in XWT Framework<p></p>

-<h6 class="CaptionFigColumn SchemaHeader">Configuration Markup:</h6>

-<p></p>

-<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.metaclass">metaclass</a>*)&gt;</p>

-<p class="code SchemaDtd">&lt;!ATTLIST extension</p>

-<p class="code SchemaDtdAttlist">point&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>

-<p></p>

-<ul class="ConfigMarkupAttlistDesc">

-</ul>

-<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.metaclass">metaclass</a> (<a href="#e.property">property</a>*)*&gt;</p>

-<p class="code SchemaDtd">&lt;!ATTLIST metaclass</p>

-<p class="code SchemaDtdAttlist">type&nbsp;CDATA #REQUIRED&gt;</p>

-<p></p>

-<p class="ConfigMarkupElementDesc">

-A metaclass</p>

-<br>

-<ul class="ConfigMarkupAttlistDesc">

-<li><b>type</b> - The Java type</li>

-</ul>

-<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.property">property</a> (<a href="#e.SetPostAction">SetPostAction</a>*)*&gt;</p>

-<p class="code SchemaDtd">&lt;!ATTLIST property</p>

-<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class="code SchemaDtdAttlist">type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class="code SchemaDtdAttlist">amount&nbsp;&nbsp;&nbsp;&nbsp;(single|array) "single"<p class="code SchemaDtdAttlist">overwrite&nbsp;(true | false) "false"&gt;</p>

-<p></p>

-<p class="ConfigMarkupElementDesc">

-property in UI element</p>

-<br>

-<ul class="ConfigMarkupAttlistDesc">

-<li><b>name</b> - </li>

-<li><b>class</b> - </li>

-<li><b>type</b> - </li>

-<li><b>amount</b> - If you want to register an array property, select the "array", otherwise use the "single".</li>

-<li><b>overwrite</b> - If you want to overwrite the property, set true</li>

-</ul>

-<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.event">event</a> EMPTY&gt;</p>

-<p class="code SchemaDtd">&lt;!ATTLIST event</p>

-<p class="code SchemaDtdAttlist">name&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">java&nbsp;CDATA #REQUIRED&gt;</p>

-<p></p>

-<p class="ConfigMarkupElementDesc">

-Event in UI element</p>

-<br>

-<ul class="ConfigMarkupAttlistDesc">

-<li><b>name</b> - </li>

-<li><b>java</b> - </li>

-</ul>

-<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.SetPostAction">SetPostAction</a> EMPTY&gt;</p>

-<p class="code SchemaDtd">&lt;!ATTLIST SetPostAction</p>

-<p class="code SchemaDtdAttlist">SetPostActionName&nbsp;CDATA #REQUIRED&gt;</p>

-<p></p>

-<ul class="ConfigMarkupAttlistDesc">

-<li><b>SetPostActionName</b> - </li>

-</ul>

-<br><h6 class="CaptionFigColumn SchemaHeader">Examples: </h6>[Enter extension point usage example here.]

-<p></p>

-

-<h6 class="CaptionFigColumn SchemaHeader">API Information: </h6>[Enter API information here.]

-<p></p>

-

-<h6 class="CaptionFigColumn SchemaHeader">Supplied Implementation: </h6>[Enter information about supplied implementation of this extension point.]

-<p></p>

-

-<br>

-<p class="note SchemaCopyright">

-</p>

-</BODY>

-<p><img src="../../cpy.png" /></p>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/reference/extension_points/metaclassfactories.html b/org.eclipse.xwt.doc.user/reference/extension_points/metaclassfactories.html
deleted file mode 100644
index 879be90..0000000
--- a/org.eclipse.xwt.doc.user/reference/extension_points/metaclassfactories.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

-<HTML>

-<link href="../../book.css" rel="stylesheet" type="text/css" />

-<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>Metaclass Factory</title>

-<style type="text/css">@import url("file:/D:/Develop/Java/Eclipse/340/plugins/org.eclipse.sdk_3.4.0.v200806172000/book.css");</style>

-<style type="text/css">@import url("file:/D:/Develop/Java/Eclipse/340/configuration/org.eclipse.osgi/bundles/203/1/.cp/schema.css");</style>

-</HEAD>

-<BODY>

-<H1>MetaclassFactory</H1>

-<p></p>

-<h6 class="CaptionFigColumn SchemaHeader">Identifier: </h6>org.eclipse.xwt.pde.metaclassFactories<p></p>

-<h6 class="CaptionFigColumn SchemaHeader">Since: </h6>[Enter the first release in which this extension point appears.]

-<p></p>

-

-<h6 class="CaptionFigColumn SchemaHeader">Description: </h6>This extension point is used to register a MetaclassFactory<p></p>

-<h6 class="CaptionFigColumn SchemaHeader">Configuration Markup:</h6>

-<p></p>

-<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.metaclassFactory">metaclassFactory</a>*)&gt;</p>

-<p class="code SchemaDtd">&lt;!ATTLIST extension</p>

-<p class="code SchemaDtdAttlist">point&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>

-<p></p>

-<ul class="ConfigMarkupAttlistDesc">

-</ul>

-<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.metaclassFactory">MetaclassFactory</a> EMPTY&gt;</p>

-<p class="code SchemaDtd">&lt;!ATTLIST metaclassFactory</p>

-<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">metaclass&nbsp;CDATA #REQUIRED&gt;</p>

-<p></p>

-<p class="ConfigMarkupElementDesc">

-Metaclass definition</p>

-<br>

-<ul class="ConfigMarkupAttlistDesc">

-<li><b>name</b> - </li>

-<li><b>metaclass</b> - The factopry class</li>

-</ul>

-<br><h6 class="CaptionFigColumn SchemaHeader">Examples: </h6>Here is an example to declare the Metaclassfactory class to create the specific metaclasses for JFreeChart library: 

-<pre class="Example"><span class="code SchemaTag">

-   &lt;extension

-         point=</span><span class="code SchemaCstring">&quot;org.eclipse.xwt.pde.metaclassFactories&quot;</span><span class="code SchemaTag">&gt;

-      &lt;metaclassFactory

-            metaclass=</span><span class="code SchemaCstring">&quot;org.eclipse.xwt.demo.JFreeChartFactory&quot;</span><span class="code SchemaTag">

-            name=</span><span class="code SchemaCstring">&quot;JFreeChart&quot;</span><span class="code SchemaTag">&gt;

-      &lt;/metaclassFactory&gt;

-   &lt;/extension&gt;

-</span></pre>

-<p></p>

-

-<h6 class="CaptionFigColumn SchemaHeader">API Information: </h6>[Enter API information here.]

-<p></p>

-

-<h6 class="CaptionFigColumn SchemaHeader">Supplied Implementation: </h6>[Enter information about supplied implementation of this extension point.]

-<p></p>

-

-<br>

-<p class="note SchemaCopyright">

-</p>

-</BODY>

-<p><img src="../../cpy.png" /></p>

-</HTML>

diff --git a/org.eclipse.xwt.doc.user/toc.xml b/org.eclipse.xwt.doc.user/toc.xml
deleted file mode 100644
index a4ea803..0000000
--- a/org.eclipse.xwt.doc.user/toc.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<toc label="XWT Developer Guide" link_to="Yves YANG">

-   <topic href="concepts/overview/index.html" label="Overview">

-   </topic>

-   <topic label="Concepts">

-      <topic href="concepts/markup_language/index.html" label="Markup language">

-      </topic>

-      <topic href="concepts/component/index.html" label="UI Component">

-      </topic>

-      <topic href="concepts/control_binding/index.html" label="Control Binding">

-      </topic>

-      <topic href="concepts/databinding/index.html" label="Data Binding">

-      </topic>

-      <topic href="concepts/application_integration/index.html" label="Integration with existing application">

-      </topic>

-      <topic href="concepts/extensibility/index.html" label="Extensibility">

-      </topic>

-      <topic href="concepts/style/index.html" label="Style">

-      </topic>

-      <topic href="concepts/internationalization/index.html" label="Internationalization">

-      </topic>

-      <topic href="concepts/element_naming_and_finding/index.html" label="Element naming and finding">

-      </topic>

-   </topic>

-   <topic label="Tools">

-      <topic href="tools/new_presentation/index.html" label="New UI Presentation Wizard">

-      </topic>

-      <topic href="tools/new_ui_file/index.html" label="New UI File">

-      </topic>

-      <topic href="tools/ui_editor/index.html" label="Open Component editor">

-      </topic>

-   </topic>

-   <topic label="Tutorials">

-      <topic href="getting_started/hello_world/index.html" label="Hello world">

-      </topic>

-   </topic>

-   <topic label="Reference">

-      <topic label="Object mapping">

-      </topic>

-      <topic label="Extension Points Reference">

-         <topic href="reference/extension_points/commands.html" label="org.eclipse.xwt.pde.commands">

-         </topic>

-         <topic href="reference/extension_points/converters.html" label="org.eclipse.xwt.pde.converters">

-         </topic>

-         <topic href="reference/extension_points/logger.html" label="org.eclipse.xwt.pde.logger">

-         </topic>

-         <topic href="reference/extension_points/metaclassfactories.html" label="org.eclipse.xwt.pde.metaclassfactories">

-         </topic>

-         <topic href="reference/extension_points/metaclasses.html" label="org.eclipse.xwt.pde.metaclasses">

-         </topic>

-      </topic>

-      <topic href="javadoc/index.html" label="Java documentation">

-      </topic>

-   </topic>

-</toc>

diff --git a/org.eclipse.xwt.doc.user/tools/new_presentation/index.html b/org.eclipse.xwt.doc.user/tools/new_presentation/index.html
deleted file mode 100644
index b6bc484..0000000
--- a/org.eclipse.xwt.doc.user/tools/new_presentation/index.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

-

-<html>

-<link href="../../book.css" rel="stylesheet" type="text/css" />

-<head>

-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>New UI Presentation Wizard</title>

-</head>

-

-<body>

-<h1>New Presentation Wizard</h1>

-<p>First of all, create a Java project to host the application.</p>

-<p>Then, right click the java project, select

-'New->Other...->XWT->New UI Presentation' and click Next button.</p>

-<p align="center"><image src="images/hello_01.png" /></p>

-

-<p>Fill the Package as 'demo' and Name as 'Demo'.</p>

-<p align="center"><image src="images/new_01.png" /></p>

-

-<p>Click Finish button. The project is created. It contains a

-'*.java' and a '*.xwt' files and looks like below.</p>

-<p align="center"><image src="images/new_02.png" /></p>

-

-

-</body>

-<p><img src="../../cpy.png" /></p>

-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/tools/new_ui_file/index.html b/org.eclipse.xwt.doc.user/tools/new_ui_file/index.html
deleted file mode 100644
index 9eba970..0000000
--- a/org.eclipse.xwt.doc.user/tools/new_ui_file/index.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

-

-<html>

-<link href="../../book.css" rel="stylesheet" type="text/css" />

-<head>

-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>XWT file</title>

-</head>

-

-<body>

-<h1>XWT file</h1>

-<p>First of all, create a Java project to host the application.</p>

-<p>Then, right click the java project, select

-'New->Other...->XWT->New UI File' and click Next button.</p>

-<p align="center"><image src="images/newfile_01.png" /></p>

-

-<p>Named the File name as Demo.xwt.</p>

-

-

-<p align="center"><image src="images/newfile_02.png" /></p>

-

-

-<p>Click Finish button. The project is created. It contains a

-'*.xwt' file and looks like below.</p>

-

-<p align="center"><image src="images/newfile_03.png" /></p>

-

-

-</body>

-<p><img src="../../cpy.png" /></p>

-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/tools/ui_editor/index.html b/org.eclipse.xwt.doc.user/tools/ui_editor/index.html
deleted file mode 100644
index 62da2b9..0000000
--- a/org.eclipse.xwt.doc.user/tools/ui_editor/index.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

-

-<html>

-<link href="../../book.css" rel="stylesheet" type="text/css" />

-<head>

-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-<title>XAML Editor</title>

-</head>

-

-<body>

-<h1>XWT Editor</h1>

-<p>Double click on '*.xwt' file, or right click on '*.xwt' file and

-select 'Open with->XWT Editor' from pop-up menu will open the XWT

-Editor.</p>

-

-<p>The XAML Editor for XWT has many features to help you visually

-create user interfaces for your XWT application. You arrange controls

-and elements on a visual design surface which represents a window in

-your application.</p>

-

-<h3>Split View of XWT Editor</h3>

-<p>Split view consists of two panes separated by a bar. The upper is

-live display area, it's the graphic view where any changes of UI

-description in the xaml editor will display instantaneously. The bottom

-pane is a xaml editor which used to edit xaml code.</p>

-

-<p align="center"><image src="images/ui_editor_01.png" /></p>

-

-<p>Also you can directly new XWT elements in Design window.</p>

-

-<p align="center"><image src="images/ui_editor_02.png" /></p>

-

-<p>For a complicated application, usually need to declare a new

-namespace and add a reference. User can type it in XWT editor directly

-or add it in Design window.</p>

-

-<p>Right click container component, select 'Edit Namespaces...'. In

-the pop-up dialog click 'Add' button, select 'Specify New Namespace.'

-Then enter the required prefix and namespace URI like following.</p>

-

-<p align="center"><image src="images/ui_editor_03.png" /></p>

-

-<p>When there is an event handling, you can edit the corresponding

-java code in Java eare.</p>

-<p align="center"><image src="images/ui_editor_04.png" /></p>

-

-<p>The XWT provide a convenient way to edit the UI. You can drag

-component which you want to the xaml editor directly.</p>

-<p align="center"><image src="images/ui_editor_05.png" /></p>

-

-

-

-

-

-</body>

-<p><img src="../../cpy.png" /></p>

-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc/.project b/org.eclipse.xwt.doc/.project
deleted file mode 100644
index ecc4c4f..0000000
--- a/org.eclipse.xwt.doc/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.xwt.doc</name>

-	<comment></comment>

-	<projects>

-	</projects>

-	<buildSpec>

-	</buildSpec>

-	<natures>

-	</natures>

-</projectDescription>

diff --git a/org.eclipse.xwt.e4/about.html b/org.eclipse.xwt.e4/about.html
deleted file mode 100644
index 3ce4e7e..0000000
--- a/org.eclipse.xwt.e4/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!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>November 20, 2008</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.e4/epl-v10.html b/org.eclipse.xwt.e4/epl-v10.html
deleted file mode 100644
index 84ec251..0000000
--- a/org.eclipse.xwt.e4/epl-v10.html
+++ /dev/null
@@ -1,261 +0,0 @@
-<?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">
-
-<p align=center><b>Eclipse Public License - v 1.0</b></p>
-
-<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
-PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE, REPRODUCTION OR
-DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
-AGREEMENT.</p>
-
-<p><b>1. DEFINITIONS</b></p>
-
-<p>&quot;Contribution&quot; means:</p>
-
-<p class="list">a) in the case of the initial Contributor, the initial
-code and documentation distributed under this Agreement, and</p>
-<p class="list">b) in the case of each subsequent Contributor:</p>
-<p class="list">i) changes to the Program, and</p>
-<p class="list">ii) additions to the Program;</p>
-<p class="list">where such changes and/or additions to the Program
-originate from and are distributed by that particular Contributor. A
-Contribution 'originates' from a Contributor if it was added to the
-Program by such Contributor itself or anyone acting on such
-Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in
-conjunction with the Program under their own license agreement, and (ii)
-are not derivative works of the Program.</p>
-
-<p>&quot;Contributor&quot; means any person or entity that distributes
-the Program.</p>
-
-<p>&quot;Licensed Patents&quot; mean patent claims licensable by a
-Contributor which are necessarily infringed by the use or sale of its
-Contribution alone or when combined with the Program.</p>
-
-<p>&quot;Program&quot; means the Contributions distributed in accordance
-with this Agreement.</p>
-
-<p>&quot;Recipient&quot; means anyone who receives the Program under
-this Agreement, including all Contributors.</p>
-
-<p><b>2. GRANT OF RIGHTS</b></p>
-
-<p class="list">a) Subject to the terms of this Agreement, each
-Contributor hereby grants Recipient a non-exclusive, worldwide,
-royalty-free copyright license to reproduce, prepare derivative works
-of, publicly display, publicly perform, distribute and sublicense the
-Contribution of such Contributor, if any, and such derivative works, in
-source code and object code form.</p>
-
-<p class="list">b) Subject to the terms of this Agreement, each
-Contributor hereby grants Recipient a non-exclusive, worldwide,
-royalty-free patent license under Licensed Patents to make, use, sell,
-offer to sell, import and otherwise transfer the Contribution of such
-Contributor, if any, in source code and object code form. This patent
-license shall apply to the combination of the Contribution and the
-Program if, at the time the Contribution is added by the Contributor,
-such addition of the Contribution causes such combination to be covered
-by the Licensed Patents. The patent license shall not apply to any other
-combinations which include the Contribution. No hardware per se is
-licensed hereunder.</p>
-
-<p class="list">c) Recipient understands that although each Contributor
-grants the licenses to its Contributions set forth herein, no assurances
-are provided by any Contributor that the Program does not infringe the
-patent or other intellectual property rights of any other entity. Each
-Contributor disclaims any liability to Recipient for claims brought by
-any other entity based on infringement of intellectual property rights
-or otherwise. As a condition to exercising the rights and licenses
-granted hereunder, each Recipient hereby assumes sole responsibility to
-secure any other intellectual property rights needed, if any. For
-example, if a third party patent license is required to allow Recipient
-to distribute the Program, it is Recipient's responsibility to acquire
-that license before distributing the Program.</p>
-
-<p class="list">d) Each Contributor represents that to its knowledge it
-has sufficient copyright rights in its Contribution, if any, to grant
-the copyright license set forth in this Agreement.</p>
-
-<p><b>3. REQUIREMENTS</b></p>
-
-<p>A Contributor may choose to distribute the Program in object code
-form under its own license agreement, provided that:</p>
-
-<p class="list">a) it complies with the terms and conditions of this
-Agreement; and</p>
-
-<p class="list">b) its license agreement:</p>
-
-<p class="list">i) effectively disclaims on behalf of all Contributors
-all warranties and conditions, express and implied, including warranties
-or conditions of title and non-infringement, and implied warranties or
-conditions of merchantability and fitness for a particular purpose;</p>
-
-<p class="list">ii) effectively excludes on behalf of all Contributors
-all liability for damages, including direct, indirect, special,
-incidental and consequential damages, such as lost profits;</p>
-
-<p class="list">iii) states that any provisions which differ from this
-Agreement are offered by that Contributor alone and not by any other
-party; and</p>
-
-<p class="list">iv) states that source code for the Program is available
-from such Contributor, and informs licensees how to obtain it in a
-reasonable manner on or through a medium customarily used for software
-exchange.</p>
-
-<p>When the Program is made available in source code form:</p>
-
-<p class="list">a) it must be made available under this Agreement; and</p>
-
-<p class="list">b) a copy of this Agreement must be included with each
-copy of the Program.</p>
-
-<p>Contributors may not remove or alter any copyright notices contained
-within the Program.</p>
-
-<p>Each Contributor must identify itself as the originator of its
-Contribution, if any, in a manner that reasonably allows subsequent
-Recipients to identify the originator of the Contribution.</p>
-
-<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
-
-<p>Commercial distributors of software may accept certain
-responsibilities with respect to end users, business partners and the
-like. While this license is intended to facilitate the commercial use of
-the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create
-potential liability for other Contributors. Therefore, if a Contributor
-includes the Program in a commercial product offering, such Contributor
-(&quot;Commercial Contributor&quot;) hereby agrees to defend and
-indemnify every other Contributor (&quot;Indemnified Contributor&quot;)
-against any losses, damages and costs (collectively &quot;Losses&quot;)
-arising from claims, lawsuits and other legal actions brought by a third
-party against the Indemnified Contributor to the extent caused by the
-acts or omissions of such Commercial Contributor in connection with its
-distribution of the Program in a commercial product offering. The
-obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In
-order to qualify, an Indemnified Contributor must: a) promptly notify
-the Commercial Contributor in writing of such claim, and b) allow the
-Commercial Contributor to control, and cooperate with the Commercial
-Contributor in, the defense and any related settlement negotiations. The
-Indemnified Contributor may participate in any such claim at its own
-expense.</p>
-
-<p>For example, a Contributor might include the Program in a commercial
-product offering, Product X. That Contributor is then a Commercial
-Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance
-claims and warranties are such Commercial Contributor's responsibility
-alone. Under this section, the Commercial Contributor would have to
-defend claims against the other Contributors related to those
-performance claims and warranties, and if a court requires any other
-Contributor to pay any damages as a result, the Commercial Contributor
-must pay those damages.</p>
-
-<p><b>5. NO WARRANTY</b></p>
-
-<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
-PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS
-OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
-ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
-OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and
-distributing the Program and assumes all risks associated with its
-exercise of rights under this Agreement , including but not limited to
-the risks and costs of program errors, compliance with applicable laws,
-damage to or loss of data, programs or equipment, and unavailability or
-interruption of operations.</p>
-
-<p><b>6. DISCLAIMER OF LIABILITY</b></p>
-
-<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
-NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
-WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
-DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
-HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
-
-<p><b>7. GENERAL</b></p>
-
-<p>If any provision of this Agreement is invalid or unenforceable under
-applicable law, it shall not affect the validity or enforceability of
-the remainder of the terms of this Agreement, and without further action
-by the parties hereto, such provision shall be reformed to the minimum
-extent necessary to make such provision valid and enforceable.</p>
-
-<p>If Recipient institutes patent litigation against any entity
-(including a cross-claim or counterclaim in a lawsuit) alleging that the
-Program itself (excluding combinations of the Program with other
-software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the
-date such litigation is filed.</p>
-
-<p>All Recipient's rights under this Agreement shall terminate if it
-fails to comply with any of the material terms or conditions of this
-Agreement and does not cure such failure in a reasonable period of time
-after becoming aware of such noncompliance. If all Recipient's rights
-under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive.</p>
-
-<p>Everyone is permitted to copy and distribute copies of this
-Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The
-Agreement Steward reserves the right to publish new versions (including
-revisions) of this Agreement from time to time. No one other than the
-Agreement Steward has the right to modify this Agreement. The Eclipse
-Foundation is the initial Agreement Steward. The Eclipse Foundation may
-assign the responsibility to serve as the Agreement Steward to a
-suitable separate entity. Each new version of the Agreement will be
-given a distinguishing version number. The Program (including
-Contributions) may always be distributed subject to the version of the
-Agreement under which it was received. In addition, after a new version
-of the Agreement is published, Contributor may elect to distribute the
-Program (including its Contributions) under the new version. Except as
-expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
-rights or licenses to the intellectual property of any Contributor under
-this Agreement, whether expressly, by implication, estoppel or
-otherwise. All rights in the Program not expressly granted under this
-Agreement are reserved.</p>
-
-<p>This Agreement is governed by the laws of the State of New York and
-the intellectual property laws of the United States of America. No party
-to this Agreement will bring a legal action under this Agreement more
-than one year after the cause of action arose. Each party waives its
-rights to a jury trial in any resulting litigation.</p>
-
-</body>
-
-</html>
diff --git a/org.eclipse.xwt.e4/notice.html b/org.eclipse.xwt.e4/notice.html
deleted file mode 100644
index c3d34c3..0000000
--- a/org.eclipse.xwt.e4/notice.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 9, 2014</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/org.eclipse.xwt.e4/pom.xml b/org.eclipse.xwt.e4/pom.xml
deleted file mode 100755
index 8885c7e..0000000
--- a/org.eclipse.xwt.e4/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt.e4</artifactId>
-	<version>1.0.0-SNAPSHOT</version>
-	<packaging>eclipse-plugin</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/E4XWTUI.java b/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/E4XWTUI.java
deleted file mode 100644
index e63fb4b..0000000
--- a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/E4XWTUI.java
+++ /dev/null
@@ -1,235 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 Eclipse XWT Project.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Erdal Karaca - initial API and implementation
- ******************************************************************************/
-package org.eclipse.xwt.e4;
-
-import java.net.URL;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.logging.Logger;
-
-import javax.annotation.PostConstruct;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.DefaultLoadingContext;
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.INamespaceHandler;
-import org.eclipse.xwt.IXWTLoader;
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.core.IUserDataConstants;
-import org.eclipse.xwt.e4.internal.Case;
-import org.eclipse.xwt.e4.internal.DataBean;
-import org.eclipse.xwt.e4.internal.Export;
-import org.eclipse.xwt.e4.internal.ExportsProperty;
-import org.eclipse.xwt.e4.internal.Make;
-import org.eclipse.xwt.e4.internal.Switch;
-import org.eclipse.xwt.e4.internal.UIRefProperty;
-import org.eclipse.xwt.e4.internal.Var;
-import org.eclipse.xwt.e4.internal.VarsProperty;
-import org.eclipse.xwt.e4.internal.converters.Instanceof;
-import org.eclipse.xwt.e4.internal.widgets.PageBook;
-import org.eclipse.xwt.e4.internal.widgets.PageBookItem;
-import org.eclipse.xwt.internal.core.Binding;
-import org.eclipse.xwt.internal.core.ScopeKeeper;
-import org.eclipse.xwt.internal.utils.UserData;
-import org.eclipse.xwt.metadata.IMetaclass;
-
-public class E4XWTUI {
-	static {
-		XWT.registerMetaclass(DataBean.class);
-		XWT.registerMetaclass(Make.class);
-
-		{
-			XWT.registerMetaclass(Export.class);
-			XWT.registerMetaclass(Var.class);
-			IMetaclass mc = XWT.getMetaclass(Widget.class);
-			mc.addProperty(new ExportsProperty());
-			mc.addProperty(new VarsProperty());
-		}
-
-		{
-			XWT.registerMetaclass(Switch.class);
-			XWT.registerMetaclass(Case.class);
-		}
-
-		{
-			IMetaclass mc = XWT.getMetaclass(Composite.class);
-			mc.addProperty(new UIRefProperty());
-		}
-
-		XWT.registerMetaclass(PageBook.class);
-		XWT.registerMetaclass(PageBookItem.class);
-
-		XWT.registerMetaclass(Instanceof.class);
-
-		XWT.registerConvertor(new IConverter() {
-			@Override
-			public Object getToType() {
-				return Object.class;
-			}
-
-			@Override
-			public Object getFromType() {
-				return Make.class;
-			}
-
-			@Override
-			public Object convert(Object fromObject) {
-				Make make = (Make) fromObject;
-				return make.getMade();
-			}
-		});
-
-		XWT.registerNamespaceHandler("http://www.eclipse.org/xwt/e4",
-				new INamespaceHandler() {
-					@Override
-					public void handleAttribute(Widget widget, Object target,
-							String name, String value) {
-						// TODO
-					}
-				});
-	}
-
-	protected Logger log = Logger.getLogger(this.getClass().getName());
-
-	private Object root;
-	private DataBean dataBean = new DataBean();
-
-	public void setInput(Object newInput) {
-		dataBean.setInput(newInput);
-	}
-
-	protected URL doGetUrl() {
-		Class<?> clazz = this.getClass();
-		return clazz.getResource(clazz.getSimpleName()
-				+ IConstants.XWT_EXTENSION_SUFFIX);
-	}
-
-	@PostConstruct
-	public void createUI(Composite container, IEclipseContext context) {
-		if (root != null) {
-			throw new IllegalStateException("This UI has already been loaded.");
-		}
-
-		if (container.getLayout() == null) {
-			container.setLayout(new FillLayout());
-		}
-
-		container.setData(IEclipseContext.class.getName(), context);
-		container.setData(E4XWTUI.class.getName(), this);
-
-		URL url = doGetUrl();
-		Map<String, Object> options = new HashMap<String, Object>();
-		populateOptions(options);
-
-		if (container != null) {
-			options.put(IXWTLoader.CONTAINER_PROPERTY, container);
-		}
-
-		try {
-			XWT.setLoadingContext(new DefaultLoadingContext(this.getClass()
-					.getClassLoader()));
-			root = XWT.loadWithOptions(url, options);
-			injectXWTBindings(context);
-		} catch (Exception e) {
-			log.severe(e.getMessage());
-			e.printStackTrace();
-		}
-	}
-
-	private void injectXWTBindings(IEclipseContext context) {
-		UserData userData = (UserData) ((Widget) root)
-				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
-		ScopeKeeper map = (ScopeKeeper) userData
-				.getData(IUserDataConstants.XWT_NAMECONTEXT_KEY);
-		Collection<String> names = map.names();
-		for (String name : names) {
-			Object object = map.getNamedObject(name);
-
-			if (object instanceof Var) {
-				continue;
-			}
-
-			context.set(name, object);
-		}
-	}
-
-	protected void populateOptions(Map<String, Object> options) {
-		options.put(IXWTLoader.CLASS_PROPERTY, this);
-		options.put(IXWTLoader.DATACONTEXT_PROPERTY, dataBean);
-	}
-
-	public void open() {
-		URL url = doGetUrl();
-		Map<String, Object> options = new HashMap<String, Object>();
-		populateOptions(options);
-
-		try {
-			XWT.open(url, options);
-			root = Display.getDefault().getActiveShell();
-		} catch (Exception e) {
-			log.severe(e.getMessage());
-			e.printStackTrace();
-		}
-	}
-
-	public Object getRoot() {
-		return root;
-	}
-
-	@SuppressWarnings("unchecked")
-	protected <T> T findByName(String name) {
-		return (T) XWT.findElementByName(getRoot(), name);
-	}
-
-	public URL getUrl() {
-		return doGetUrl();
-	}
-
-	@SuppressWarnings("unchecked")
-	public static <T> T findData(Class<T> t, Object target) {
-		if (target instanceof Widget) {
-			T ret = (T) ((Widget) target).getData(t.getName());
-
-			if (ret != null) {
-				return ret;
-			}
-		}
-
-		if (target instanceof Control) {
-			return findData(t, ((Control) target).getParent());
-		}
-
-		if (target instanceof Viewer) {
-			Control control = ((Viewer) target).getControl();
-			return findData(t, control);
-		}
-
-		if (target instanceof Binding) {
-			T data = findData(t, ((Binding) target).getControl());
-
-			if (data != null) {
-				return data;
-			}
-
-			return findData(t, ((Binding) target).getHost());
-		}
-
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/E4XWTWizard.java b/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/E4XWTWizard.java
deleted file mode 100644
index 63e2b54..0000000
--- a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/E4XWTWizard.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 Eclipse XWT Project.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Erdal Karaca - initial API and implementation
- ******************************************************************************/
-package org.eclipse.xwt.e4;
-
-import org.eclipse.e4.core.contexts.ContextInjectionFactory;
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-public class E4XWTWizard extends Wizard {
-	private IEclipseContext context;
-	private Object finishHandler;
-	private Object finishResult;
-
-	public E4XWTWizard(IEclipseContext parentContext) {
-		super();
-		context = parentContext.createChild(this.getClass().getName());
-		context.set(IWizard.class, this);
-	}
-
-	@Override
-	public boolean performFinish() {
-		if (finishHandler == null) {
-			return true;
-		}
-
-		finishResult = ContextInjectionFactory.invoke(finishHandler,
-				Execute.class, context);
-		return finishResult instanceof Boolean ? (Boolean) finishResult : true;
-	}
-
-	public IWizardPage createNewPage(String pageName,
-			Class<? extends E4XWTUI> uiClass) {
-		E4XWTWizardPage page = new E4XWTWizardPage(pageName, context, uiClass);
-		addPage(page);
-		return page;
-	}
-
-	public boolean show(Shell shell) {
-		WizardDialog dialog = new WizardDialog(shell == null ? Display
-				.getDefault().getActiveShell() : shell, this) {
-			@Override
-			protected void configureShell(Shell newShell) {
-				super.configureShell(newShell);
-				newShell.setSize(Math.min(640, newShell.getSize().x),
-						Math.min(480, newShell.getSize().y));
-			}
-		};
-
-		return dialog.open() == WizardDialog.OK;
-	}
-
-	public IEclipseContext getContext() {
-		return context;
-	}
-
-	public void setFinishHandler(Object finishHandler) {
-		this.finishHandler = finishHandler;
-		ContextInjectionFactory.inject(finishHandler, context);
-	}
-
-	public Object getFinishResult() {
-		return finishResult;
-	}
-
-	public static class E4XWTWizardPage extends WizardPage {
-		private IEclipseContext context;
-		private Class<? extends E4XWTUI> uiClass;
-
-		protected E4XWTWizardPage(String pageName,
-				IEclipseContext parentContext, Class<? extends E4XWTUI> uiClass) {
-			super(pageName);
-			this.uiClass = uiClass;
-			context = parentContext.createChild(pageName);
-			context.set(IWizardPage.class, this);
-		}
-
-		@Override
-		public void createControl(Composite parent) {
-			Composite container = new Composite(parent, SWT.None);
-			container.setLayout(new FillLayout());
-			context.set(Composite.class, container);
-			ContextInjectionFactory.make(uiClass, context);
-			setControl(container);
-		}
-
-		@Override
-		public boolean isPageComplete() {
-			return super.isPageComplete();
-		}
-
-		public IEclipseContext getContext() {
-			return context;
-		}
-	}
-}
diff --git a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/WizardConfig.java b/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/WizardConfig.java
deleted file mode 100644
index b2e8d02..0000000
--- a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/WizardConfig.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 Eclipse XWT Project.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Erdal Karaca - initial API and implementation
- ******************************************************************************/
-package org.eclipse.xwt.e4;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.swt.widgets.Shell;
-
-public class WizardConfig {
-	private E4XWTWizard wizard;
-
-	public WizardConfig(IEclipseContext parentContext) {
-		wizard = new E4XWTWizard(parentContext);
-	}
-
-	public WizardConfig onFinish(Object object) {
-		wizard.setFinishHandler(object);
-		return this;
-	}
-
-	public WizardConfig setTitle(String title) {
-		wizard.setWindowTitle(title);
-		return this;
-	}
-
-	public WizardConfig addPage(PageConfig pageConfig) {
-		IWizardPage page = wizard.createNewPage(pageConfig.getUiClass()
-				.getName(), pageConfig.getUiClass());
-		page.setDescription(pageConfig.getDescription());
-		return this;
-	}
-
-	public WizardConfig bind(String key, Object value) {
-		wizard.getContext().set(key, value);
-		return this;
-	}
-
-	public <T> WizardConfig bind(Class<T> type, T t) {
-		wizard.getContext().set(type, t);
-		return this;
-	}
-
-	public boolean show(Shell activeShell) {
-		return wizard.show(activeShell);
-	}
-
-	@SuppressWarnings("unchecked")
-	public <T> T getResult() {
-		return (T) wizard.getFinishResult();
-	}
-
-	public static class PageConfig {
-		private Class<? extends E4XWTUI> uiClass;
-		private String description;
-
-		public PageConfig(Class<? extends E4XWTUI> uiClass) {
-			this.uiClass = uiClass;
-		}
-
-		public String getDescription() {
-			return description;
-		}
-
-		public PageConfig setDescription(String description) {
-			this.description = description;
-			return this;
-		}
-
-		public Class<? extends E4XWTUI> getUiClass() {
-			return uiClass;
-		}
-	}
-}
diff --git a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Case.java b/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Case.java
deleted file mode 100644
index 2c11323..0000000
--- a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Case.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 Eclipse XWT Project.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Erdal Karaca - initial API and implementation
- ******************************************************************************/
-package org.eclipse.xwt.e4.internal;
-
-import org.eclipse.xwt.IValidationRule;
-import org.eclipse.xwt.e4.E4XWTUI;
-
-public class Case {
-	private Class<? extends E4XWTUI> uiClass;
-	private IValidationRule when;
-
-	public Case(Switch container) {
-		container.addCase(this);
-	}
-
-	public Class<? extends E4XWTUI> getUiClass() {
-		return uiClass;
-	}
-
-	public void setUiClass(Class<? extends E4XWTUI> uiClass) {
-		this.uiClass = uiClass;
-	}
-
-	public IValidationRule getWhen() {
-		return when;
-	}
-
-	public void setWhen(IValidationRule when) {
-		this.when = when;
-	}
-}
diff --git a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/DataBean.java b/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/DataBean.java
deleted file mode 100644
index 69e37b9..0000000
--- a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/DataBean.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 Eclipse XWT Project.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Erdal Karaca - initial API and implementation
- ******************************************************************************/
-package org.eclipse.xwt.e4.internal;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-
-public class DataBean {
-	private PropertyChangeSupport changeSupport = new PropertyChangeSupport(
-			this);
-
-	private Object input;
-
-	public DataBean() {
-	}
-
-	public DataBean(Object data) {
-		input = data;
-	}
-
-	public void addPropertyChangeListener(String propertyName,
-			PropertyChangeListener listener) {
-		this.changeSupport.addPropertyChangeListener(propertyName, listener);
-	}
-
-	public void removePropertyChangeListener(String propertyName,
-			PropertyChangeListener listener) {
-		this.changeSupport.removePropertyChangeListener(propertyName, listener);
-	}
-
-	public Object getInput() {
-		return input;
-	}
-
-	public void setInput(Object newInput) {
-		Object oldInput = this.input;
-		this.input = newInput;
-		changeSupport.firePropertyChange("input", oldInput, newInput);
-	}
-}
diff --git a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Export.java b/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Export.java
deleted file mode 100644
index 0ea9cb9..0000000
--- a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Export.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 Eclipse XWT Project.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Erdal Karaca - initial API and implementation
- ******************************************************************************/
-package org.eclipse.xwt.e4.internal;
-
-import org.eclipse.e4.core.contexts.ContextInjectionFactory;
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.xwt.e4.E4XWTUI;
-
-public class Export {
-	private Object parent;
-	private Object value;
-	private String varName;
-	private int level = 0;
-	private Class<?> make;
-
-	private IEclipseContext ctx;
-
-	public Export(Object parent) {
-		this.parent = parent;
-		ctx = E4XWTUI.findData(IEclipseContext.class, parent);
-	}
-
-	public void setCtx(IEclipseContext ctx) {
-		this.ctx = ctx;
-	}
-
-	public IEclipseContext getCtx() {
-		return ctx;
-	}
-
-	public String getVarName() {
-		return varName;
-	}
-
-	public void setVarName(String varName) {
-		this.varName = varName;
-	}
-
-	public int getLevel() {
-		return level;
-	}
-
-	public void setLevel(int level) {
-		this.level = level;
-	}
-
-	public void setValue(Object value) {
-		this.value = value;
-		exportValue();
-	}
-
-	private void exportValue() {
-		IEclipseContext ctx = this.ctx;
-
-		int l = level == -1 ? Integer.MAX_VALUE : level;
-
-		while (l-- > 0) {
-			IEclipseContext parent = ctx.getParent();
-
-			if (parent == null) {
-				break;
-			}
-
-			ctx = parent;
-		}
-
-		if (value == null && make != null) {
-			value = ContextInjectionFactory.make(make, ctx);
-		}
-
-		ctx.set(varName, value);
-	}
-
-	public Object getValue() {
-		return value;
-	}
-
-	public Object getParent() {
-		return parent;
-	}
-
-	public Class<?> getMake() {
-		return make;
-	}
-
-	public void setMake(Class<?> make) {
-		this.make = make;
-	}
-}
diff --git a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/ExportsProperty.java b/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/ExportsProperty.java
deleted file mode 100644
index 52a6fec..0000000
--- a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/ExportsProperty.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 Eclipse XWT Project.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Erdal Karaca - initial API and implementation
- ******************************************************************************/
-package org.eclipse.xwt.e4.internal;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.xwt.javabean.metadata.properties.AbstractProperty;
-import org.eclipse.xwt.metadata.DefaultLoadingType;
-import org.eclipse.xwt.metadata.IProperty;
-import org.eclipse.xwt.metadata.IValueLoading;
-
-public class ExportsProperty extends AbstractProperty {
-	public ExportsProperty() {
-		super("Exports", Export[].class, new DefaultLoadingType(
-				IValueLoading.PostChildren, new IProperty[0]));
-	}
-
-	public void setValue(Object target, Object value)
-			throws IllegalArgumentException, IllegalAccessException,
-			InvocationTargetException, SecurityException, NoSuchFieldException {
-	}
-
-	public Object getValue(Object target) throws IllegalArgumentException,
-			IllegalAccessException, InvocationTargetException,
-			SecurityException, NoSuchFieldException {
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Make.java b/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Make.java
deleted file mode 100644
index 183442d..0000000
--- a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Make.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 Eclipse XWT Project.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Erdal Karaca - initial API and implementation
- ******************************************************************************/
-package org.eclipse.xwt.e4.internal;
-
-import org.eclipse.e4.core.contexts.ContextInjectionFactory;
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.xwt.e4.E4XWTUI;
-
-public class Make {
-	private IEclipseContext context;
-	private Class<?> type;
-	private Object made;
-
-	public Make(Object parent) {
-		IEclipseContext context = E4XWTUI.findData(IEclipseContext.class,
-				parent);
-		setContext(context);
-	}
-
-	public Class<?> getType() {
-		return type;
-	}
-
-	public void setType(Class<?> type) {
-		this.type = type;
-	}
-
-	public IEclipseContext getContext() {
-		return context;
-	}
-
-	public void setContext(IEclipseContext context) {
-		this.context = context;
-	}
-
-	public Object getMade() {
-		if (made == null) {
-			made = ContextInjectionFactory.make(type, context);
-		}
-
-		return made;
-	}
-
-	public void setMade(Object made) {
-		this.made = made;
-	}
-}
diff --git a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Switch.java b/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Switch.java
deleted file mode 100644
index 149e6b6..0000000
--- a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Switch.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 Eclipse XWT Project.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Erdal Karaca - initial API and implementation
- ******************************************************************************/
-package org.eclipse.xwt.e4.internal;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.e4.core.contexts.ContextInjectionFactory;
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.xwt.e4.E4XWTUI;
-
-public class Switch extends Composite {
-	private Object check;
-	private IEclipseContext context;
-	private List<Case> cases = new ArrayList<Case>();
-	private E4XWTUI ui;
-
-	public Switch(Composite parent, int style) {
-		super(parent, style);
-		setLayout(new FillLayout());
-
-		context = E4XWTUI.findData(IEclipseContext.class, parent);
-	}
-
-	public Object getCheck() {
-		return check;
-	}
-
-	public void setCheck(Object check) {
-		this.check = check;
-
-		for (Control child : getChildren()) {
-			child.dispose();
-		}
-
-		Case match = null;
-
-		for (Case uiCase : cases) {
-			if (uiCase.getWhen() == null) {
-				// remember default case
-				match = uiCase;
-				continue;
-			}
-
-			if (uiCase.getUiClass() != null && uiCase.getWhen() != null) {
-				IStatus validate = uiCase.getWhen().validate(check);
-
-				if (validate != null && validate.isOK()) {
-					match = uiCase;
-					// first match wins
-					break;
-				}
-			}
-		}
-
-		// either default match or validated match will be taken
-		if (match != null) {
-			Class<? extends E4XWTUI> uiClass = match.getUiClass();
-			IEclipseContext localContext = context.createChild(uiClass
-					.getName());
-			localContext.set(Composite.class, this);
-			ui = ContextInjectionFactory.make(uiClass, context, localContext);
-		}
-
-		layout();
-	}
-
-	public void addCase(Case uiCase) {
-		cases.add(uiCase);
-	}
-
-	public E4XWTUI getUi() {
-		return ui;
-	}
-}
diff --git a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/UIRefProperty.java b/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/UIRefProperty.java
deleted file mode 100644
index fb7dca5..0000000
--- a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/UIRefProperty.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 Eclipse XWT Project.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Erdal Karaca - initial API and implementation
- ******************************************************************************/
-package org.eclipse.xwt.e4.internal;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.e4.core.contexts.ContextInjectionFactory;
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.xwt.e4.E4XWTUI;
-import org.eclipse.xwt.javabean.metadata.properties.AbstractProperty;
-import org.eclipse.xwt.metadata.DefaultLoadingType;
-import org.eclipse.xwt.metadata.IProperty;
-import org.eclipse.xwt.metadata.IValueLoading;
-
-public class UIRefProperty extends AbstractProperty {
-	public UIRefProperty() {
-		super("UiRef", Class.class, new DefaultLoadingType(
-				IValueLoading.PostChildren, new IProperty[0]));
-	}
-
-	@SuppressWarnings("unchecked")
-	@Override
-	public void setValue(Object target, Object value)
-			throws IllegalArgumentException, IllegalAccessException,
-			InvocationTargetException, SecurityException, NoSuchFieldException {
-		IEclipseContext context = E4XWTUI.findData(IEclipseContext.class,
-				target);
-		Class<? extends E4XWTUI> uiClass = (Class<? extends E4XWTUI>) value;
-
-		IEclipseContext localContext = context.createChild(uiClass.getName());
-		localContext.set(Composite.class, (Composite) target);
-		ContextInjectionFactory.make(uiClass, context, localContext);
-	}
-
-	@Override
-	public Object getValue(Object target) throws IllegalArgumentException,
-			IllegalAccessException, InvocationTargetException,
-			SecurityException, NoSuchFieldException {
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Var.java b/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Var.java
deleted file mode 100644
index 3f3d8ca..0000000
--- a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Var.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 Eclipse XWT Project.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Erdal Karaca - initial API and implementation
- ******************************************************************************/
-package org.eclipse.xwt.e4.internal;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.e4.core.contexts.RunAndTrack;
-import org.eclipse.xwt.e4.E4XWTUI;
-
-public class Var {
-	private PropertyChangeSupport changeSupport = new PropertyChangeSupport(
-			this);
-
-	private IEclipseContext context;
-	private String varName;
-	private Object value;
-
-	public Var(Object parent) {
-		context = E4XWTUI.findData(IEclipseContext.class, parent);
-	}
-
-	public String getVarName() {
-		return varName;
-	}
-
-	public void setVarName(final String name) {
-		this.varName = name;
-
-		final Boolean[] track = new Boolean[1];
-		track[0] = true;
-		context.runAndTrack(new RunAndTrack() {
-			@Override
-			public boolean changed(IEclipseContext context) {
-				if (!track[0] || Var.this.context == null) {
-					return false;
-				}
-
-				Object newValue = context.get(name);
-				Object oldValue = value;
-				value = newValue;
-				changeSupport.firePropertyChange("value", oldValue, newValue);
-				return true;
-			}
-		});
-	}
-
-	public Object getValue() {
-		return value;
-	}
-
-	public void setValue(Object value) {
-	}
-
-	public void addPropertyChangeListener(String propertyName,
-			PropertyChangeListener listener) {
-		this.changeSupport.addPropertyChangeListener(propertyName, listener);
-	}
-
-	public void removePropertyChangeListener(String propertyName,
-			PropertyChangeListener listener) {
-		this.changeSupport.removePropertyChangeListener(propertyName, listener);
-	}
-}
diff --git a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/VarsProperty.java b/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/VarsProperty.java
deleted file mode 100644
index 52d3bbe..0000000
--- a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/VarsProperty.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 Eclipse XWT Project.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Erdal Karaca - initial API and implementation
- ******************************************************************************/
-package org.eclipse.xwt.e4.internal;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.xwt.javabean.metadata.properties.AbstractProperty;
-import org.eclipse.xwt.metadata.DefaultLoadingType;
-import org.eclipse.xwt.metadata.IProperty;
-import org.eclipse.xwt.metadata.IValueLoading;
-
-public class VarsProperty extends AbstractProperty {
-	public VarsProperty() {
-		super("Vars", Var[].class, new DefaultLoadingType(
-				IValueLoading.Normal, new IProperty[0]));
-	}
-
-	public void setValue(Object target, Object value)
-			throws IllegalArgumentException, IllegalAccessException,
-			InvocationTargetException, SecurityException, NoSuchFieldException {
-	}
-
-	public Object getValue(Object target) throws IllegalArgumentException,
-			IllegalAccessException, InvocationTargetException,
-			SecurityException, NoSuchFieldException {
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/converters/Instanceof.java b/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/converters/Instanceof.java
deleted file mode 100644
index 6d20ce4..0000000
--- a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/converters/Instanceof.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 Eclipse XWT Project.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Erdal Karaca - initial API and implementation
- ******************************************************************************/
-package org.eclipse.xwt.e4.internal.converters;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.xwt.validation.AbstractValidationRule;
-
-public class Instanceof extends AbstractValidationRule {
-	private Class<?> type;
-
-	public Class<?> getType() {
-		return type;
-	}
-
-	public void setType(Class<?> type) {
-		this.type = type;
-	}
-
-	private boolean convert(Object fromObject) {
-		if (fromObject == null) {
-			return false;
-		}
-
-		Class<?> objectType = null;
-
-		if (fromObject instanceof Class<?>) {
-			objectType = (Class<?>) fromObject;
-		} else {
-			objectType = fromObject.getClass();
-		}
-
-		return type == null ? false : type.isAssignableFrom(objectType);
-	}
-
-	@Override
-	public IStatus validateBack(Object value) {
-		return null;
-	}
-
-	@Override
-	public IStatus validate(Object value) {
-		return convert(value) ? Status.OK_STATUS : Status.CANCEL_STATUS;
-	}
-
-	@Override
-	public Phase getPhase() {
-		return Phase.AfterGet;
-	}
-
-	@Override
-	public Direction getBindingMode() {
-		return Direction.SourceToTarget;
-	}
-}
diff --git a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/widgets/PageBook.java b/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/widgets/PageBook.java
deleted file mode 100644
index f4e9579..0000000
--- a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/widgets/PageBook.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2011 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Erdal Karaca - adapted to XWT
- *******************************************************************************/
-package org.eclipse.xwt.e4.internal.widgets;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Layout;
-
-/**
- * A pagebook is a composite control where only a single control is visible
- * at a time. It is similar to a notebook, but without tabs.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * <p>
- * Note that although this class is a subclass of <code>Composite</code>,
- * it does not make sense to set a layout on it.
- * </p>
- *
- * @see PageBookView
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class PageBook extends Composite {
-
-    /**
-     * <p>
-     * [Issue: This class should be declared private.]
-     * </p>
-     */
-    public class PageBookLayout extends Layout {
-
-        protected Point computeSize(Composite composite, int wHint, int hHint,
-                boolean flushCache) {
-            if (wHint != SWT.DEFAULT && hHint != SWT.DEFAULT) {
-				return new Point(wHint, hHint);
-			}
-
-            Point result = null;
-            if (currentPage != null) {
-                result = currentPage.computeSize(wHint, hHint, flushCache);
-            } else {
-                //Rectangle rect= composite.getClientArea();
-                //result= new Point(rect.width, rect.height);
-                result = new Point(0, 0);
-            }
-            if (wHint != SWT.DEFAULT) {
-				result.x = wHint;
-			}
-            if (hHint != SWT.DEFAULT) {
-				result.y = hHint;
-			}
-            return result;
-        }
-
-        protected void layout(Composite composite, boolean flushCache) {
-			if (currentPage != null && !currentPage.isDisposed()) {
-                currentPage.setBounds(composite.getClientArea());
-            }
-        }
-    }
-
-    /**
-     * The current control; <code>null</code> if none.
-     */
-    private Control currentPage = null;
-
-    /**
-     * Creates a new empty pagebook.
-     *
-     * @param parent the parent composite
-     * @param style the SWT style bits
-     */
-    public PageBook(Composite parent, int style) {
-        super(parent, style);
-        setLayout(new PageBookLayout());
-    }
-
-    /**
-     * Shows the given page. This method has no effect if the given page is not
-     * contained in this pagebook.
-     *
-     * @param page the page to show
-     */
-    public void showPage(Control page) {
-		if (page.isDisposed() || page.getParent() != this) {
-			return;
-		}
-
-		currentPage = page;
-
-        // show new page
-		page.setVisible(true);
-		layout(true);
-
-		// hide old (and all others) *after* new page has been made visible in
-		// order to avoid flashing
-		Control[] children = getChildren();
-		for (int i = 0; i < children.length; i++) {
-			Control child = children[i];
-			if (child != page && !child.isDisposed()) {
-				child.setVisible(false);
-			}
-		}
-    }
-}
diff --git a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/widgets/PageBookItem.java b/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/widgets/PageBookItem.java
deleted file mode 100644
index 2e5eea8..0000000
--- a/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/widgets/PageBookItem.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 Eclipse XWT Project.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Erdal Karaca - initial API and implementation
- ******************************************************************************/
-package org.eclipse.xwt.e4.internal.widgets;
-
-import org.eclipse.swt.widgets.Composite;
-
-public class PageBookItem extends Composite {
-	private PageBook pageBook;
-	private boolean makingVisible = false;
-
-	public PageBookItem(Composite parent, int style) {
-		super(parent, style);
-
-		if (parent instanceof PageBook) {
-			this.pageBook = (PageBook) parent;
-		}
-	}
-
-	@Override
-	public void setVisible(boolean visible) {
-		super.setVisible(visible);
-
-		if (visible && !makingVisible) {
-			try {
-				makingVisible = true;
-				pageBook.showPage(this);
-			} finally {
-				makingVisible = false;
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.emf.test/.classpath b/org.eclipse.xwt.emf.test/.classpath
deleted file mode 100644
index 2d1a430..0000000
--- a/org.eclipse.xwt.emf.test/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>

-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

-	<classpathentry kind="src" path="src"/>

-	<classpathentry kind="output" path="bin"/>

-</classpath>

diff --git a/org.eclipse.xwt.emf.test/.project b/org.eclipse.xwt.emf.test/.project
deleted file mode 100644
index 2182469..0000000
--- a/org.eclipse.xwt.emf.test/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.xwt.emf.test</name>

-	<comment></comment>

-	<projects>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.jdt.core.javabuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.ManifestBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.SchemaBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.pde.PluginNature</nature>

-		<nature>org.eclipse.jdt.core.javanature</nature>

-	</natures>

-</projectDescription>

diff --git a/org.eclipse.xwt.emf.test/META-INF/MANIFEST.MF b/org.eclipse.xwt.emf.test/META-INF/MANIFEST.MF
deleted file mode 100644
index df0f5d9..0000000
--- a/org.eclipse.xwt.emf.test/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,21 +0,0 @@
-Manifest-Version: 1.0

-Bundle-ManifestVersion: 2

-Bundle-Name: %pluginName

-Bundle-SymbolicName: org.eclipse.xwt.emf.test;singleton:=true

-Bundle-Version: 0.10.0.qualifier

-Bundle-ClassPath: .

-Bundle-Vendor: %providerName

-Bundle-Localization: plugin

-Bundle-RequiredExecutionEnvironment: J2SE-1.5

-Require-Bundle: org.eclipse.core.runtime,

- org.eclipse.emf.ecore;visibility:=reexport,

- org.eclipse.emf.ecore.xmi;visibility:=reexport,

- org.eclipse.xwt.emf;bundle-version="0.9.0",

- org.eclipse.ui;bundle-version="3.4.1",

- org.eclipse.xwt.xml;bundle-version="0.9.0",

- com.ibm.icu;bundle-version="4.0.1",

- org.junit;bundle-version="3.8.2"

-Bundle-ActivationPolicy: lazy

-Export-Package: org.eclipse.xwt.emf.test.books,

- org.eclipse.xwt.emf.test.books.impl,

- org.eclipse.xwt.emf.test.books.util

diff --git a/org.eclipse.xwt.emf.test/about.html b/org.eclipse.xwt.emf.test/about.html
deleted file mode 100644
index c258ef5..0000000
--- a/org.eclipse.xwt.emf.test/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!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 5, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.emf.test/build.properties b/org.eclipse.xwt.emf.test/build.properties
deleted file mode 100644
index 1636164..0000000
--- a/org.eclipse.xwt.emf.test/build.properties
+++ /dev/null
@@ -1,31 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# <copyright>
-# </copyright>
-#
-# $Id: build.properties,v 1.4 2010/06/18 00:13:55 yvyang Exp $
-
-bin.includes = .,\
-               model/,\
-               META-INF/,\
-               plugin.xml,\
-               plugin.properties,\
-               test.xml,\
-               about.html,\
-               notice.html
-jars.compile.order = .
-source.. = src/
-output.. = bin/
-src.includes = test.xml,\
-               about.html,\
-               model/,\
-               notice.html
diff --git a/org.eclipse.xwt.emf.test/model/books.ecore b/org.eclipse.xwt.emf.test/model/books.ecore
deleted file mode 100644
index 2c833c4..0000000
--- a/org.eclipse.xwt.emf.test/model/books.ecore
+++ /dev/null
@@ -1,21 +0,0 @@
-<?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="books"

-    nsURI="org.eclipse.xwt.emf/books.ecore" nsPrefix="books">

-  <eClassifiers xsi:type="ecore:EClass" name="Bookstore">

-    <eStructuralFeatures xsi:type="ecore:EReference" name="books" lowerBound="1" upperBound="-1"

-        eType="#//Book" containment="true"/>

-  </eClassifiers>

-  <eClassifiers xsi:type="ecore:EClass" name="Book">

-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="author" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="price" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>

-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="year" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="title" eType="#//Title"

-        containment="true"/>

-  </eClassifiers>

-  <eClassifiers xsi:type="ecore:EClass" name="Title">

-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="lan" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="text" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-  </eClassifiers>

-</ecore:EPackage>

diff --git a/org.eclipse.xwt.emf.test/model/books.genmodel b/org.eclipse.xwt.emf.test/model/books.genmodel
deleted file mode 100644
index 74735bb..0000000
--- a/org.eclipse.xwt.emf.test/model/books.genmodel
+++ /dev/null
@@ -1,25 +0,0 @@
-<?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.xwt.emf.test/src"

-    modelPluginID="org.eclipse.xwt.emf.test" templateDirectory="org.eclipse.xwt.emf.test/templates"

-    dynamicTemplates="true" modelName="Books" codeFormatting="true" importerID="org.eclipse.emf.importer.ecore"

-    complianceLevel="6.0" copyrightFields="false">

-  <foreignModel>books.ecore</foreignModel>

-  <genPackages prefix="Books" basePackage="org.eclipse.xwt.emf.test" disposableProviderFactory="true"

-      ecorePackage="books.ecore#/">

-    <genClasses ecoreClass="books.ecore#//Bookstore">

-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference books.ecore#//Bookstore/books"/>

-    </genClasses>

-    <genClasses ecoreClass="books.ecore#//Book">

-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute books.ecore#//Book/author"/>

-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute books.ecore#//Book/price"/>

-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute books.ecore#//Book/year"/>

-      <genFeatures createChild="false" ecoreFeature="ecore:EReference books.ecore#//Book/title"/>

-    </genClasses>

-    <genClasses ecoreClass="books.ecore#//Title">

-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute books.ecore#//Title/lan"/>

-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute books.ecore#//Title/text"/>

-    </genClasses>

-  </genPackages>

-</genmodel:GenModel>

diff --git a/org.eclipse.xwt.emf.test/notice.html b/org.eclipse.xwt.emf.test/notice.html
deleted file mode 100644
index c3d34c3..0000000
--- a/org.eclipse.xwt.emf.test/notice.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 9, 2014</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/org.eclipse.xwt.emf.test/plugin.properties b/org.eclipse.xwt.emf.test/plugin.properties
deleted file mode 100644
index 589e978..0000000
--- a/org.eclipse.xwt.emf.test/plugin.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################

-# Copyright (c) 2010 IBM Corporation and others.

-# All rights reserved. This program and the accompanying materials

-# are made available under the terms of the Eclipse Public License v1.0

-# which accompanies this distribution, and is available at

-# http://www.eclipse.org/legal/epl-v10.html

-#

-# Contributors:

-#     IBM Corporation - initial API and implementation

-###############################################################################

-

-# <copyright>

-# </copyright>

-#

-# $Id: plugin.properties,v 1.3 2010/06/18 00:13:55 yvyang Exp $

-

-pluginName = XWT EMF tests

-providerName = Eclipse XWT

diff --git a/org.eclipse.xwt.emf.test/plugin.xml b/org.eclipse.xwt.emf.test/plugin.xml
deleted file mode 100644
index d640536..0000000
--- a/org.eclipse.xwt.emf.test/plugin.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<?eclipse version="3.0"?>

-

-<!--

- <copyright>

- </copyright>

-

- $Id: plugin.xml,v 1.2 2010/02/27 06:28:19 yvyang Exp $

--->

-

-<plugin>

-

-   <extension point="org.eclipse.emf.ecore.generated_package">

-      <package

-            uri="platform:/resource/org.soyatec.xwt.xpath/src/org/soyatec/xwt/xpath/books.xsd"

-            class="org.eclipse.xwt.emf.test.books.BooksPackage"

-            genModel="src/org/eclipse/e4/xwt/emf/test/Books.genmodel"/>

-   </extension>

-

-   <extension point="org.eclipse.emf.ecore.extension_parser">

-      <parser

-            type="books"

-            class="org.eclipse.xwt.emf.test.books.util.BooksResourceFactoryImpl"/>

-   </extension>

-</plugin>

diff --git a/org.eclipse.xwt.emf.test/pom.xml b/org.eclipse.xwt.emf.test/pom.xml
deleted file mode 100755
index 488ca49..0000000
--- a/org.eclipse.xwt.emf.test/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt.emf.test</artifactId>
-	<version>0.10.0-SNAPSHOT</version>
-	<packaging>eclipse-plugin</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext.java b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext.java
deleted file mode 100644
index 8219382..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.emf.test;

-

-import java.net.URL;

-

-import org.eclipse.emf.ecore.EClass;

-import org.eclipse.emf.ecore.util.EcoreUtil;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.emf.EMFBinding;

-import org.eclipse.xwt.emf.test.books.Book;

-import org.eclipse.xwt.emf.test.books.BooksFactory;

-import org.eclipse.xwt.emf.test.books.BooksPackage;

-import org.eclipse.xwt.emf.test.books.Title;

-

-/**

- * @author jliu jin.liu@soyatec.com

- */

-public class EMFDataProvider_DataContext {

-	public static void main(String[] args) {

-		EMFBinding.initialze();

-		URL url = EMFDataProvider_DataContext.class

-				.getResource(EMFDataProvider_DataContext.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url, createBook());

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected static Book createBook() {

-		EClass type = BooksPackage.eINSTANCE.getBook();

-		System.out.println(EcoreUtil.getURI(type));

-		Book harryPotter = BooksFactory.eINSTANCE.createBook();

-		Title title = BooksFactory.eINSTANCE.createTitle();

-		title.setLan("en");

-		title.setText("Harry Potter");

-		harryPotter.setTitle(title);

-		harryPotter.setAuthor("Neal Stephenson");

-		harryPotter.setPrice(29.99);

-		harryPotter.setYear(2005);

-

-		return harryPotter;

-	}

-}

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext.xwt b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext.xwt
deleted file mode 100644
index fbb1fd4..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext.xwt
+++ /dev/null
@@ -1,35 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.emf.test.books"

-	Size="400, 300">

-	<Shell.layout>

-		<GridLayout numColumns="3"/>

-	</Shell.layout>

-	

-	<Label text="Name:"/>

-	<Text name="titleText" x:style="BORDER" text="{Binding Path=title.text}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Text name="authorText" x:style="BORDER" text="{Binding Path=author}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Label text="Copy:"/>

-	<Text x:style="BORDER"  text="{Binding Path=title.text}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Text x:style="BORDER" text="{Binding Path=author}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-</Shell>

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext_Dynamic.java b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext_Dynamic.java
deleted file mode 100644
index c081fc7..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext_Dynamic.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.emf.test;

-

-import java.net.URL;

-

-import org.eclipse.emf.ecore.EAttribute;

-import org.eclipse.emf.ecore.EClass;

-import org.eclipse.emf.ecore.EObject;

-import org.eclipse.emf.ecore.EPackage;

-import org.eclipse.emf.ecore.EReference;

-import org.eclipse.emf.ecore.EcoreFactory;

-import org.eclipse.emf.ecore.EcorePackage;

-import org.eclipse.emf.ecore.util.EcoreUtil;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.emf.EMFBinding;

-

-/**

- * @author yyang (yves.yang@soyatec.com)

- */

-public class EMFDataProvider_DataContext_Dynamic {

-	public static void main(String[] args) {

-		EMFBinding.initialze();

-		URL url = EMFDataProvider_DataContext_Dynamic.class

-				.getResource(EMFDataProvider_DataContext_Dynamic.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url, createBook());

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected static EObject createBook() {

-		EPackage ePackage = EcoreFactory.eINSTANCE.createEPackage();

-		ePackage.setName("test");

-

-		EClass bookClass = EcoreFactory.eINSTANCE.createEClass();

-		ePackage.getEClassifiers().add(bookClass);

-		bookClass.setName("Book");

-

-		EAttribute authorFeature = EcoreFactory.eINSTANCE.createEAttribute();

-		authorFeature.setName("author");

-		authorFeature.setEType(EcorePackage.eINSTANCE.getEString());

-		bookClass.getEStructuralFeatures().add(authorFeature);

-

-		EAttribute priceFeature = EcoreFactory.eINSTANCE.createEAttribute();

-		priceFeature.setName("price");

-		priceFeature.setEType(EcorePackage.eINSTANCE.getEDouble());

-		bookClass.getEStructuralFeatures().add(priceFeature);

-

-		EAttribute yearFeature = EcoreFactory.eINSTANCE.createEAttribute();

-		yearFeature.setName("year");

-		yearFeature.setEType(EcorePackage.eINSTANCE.getEInt());

-		bookClass.getEStructuralFeatures().add(yearFeature);

-

-		EClass titleClass = EcoreFactory.eINSTANCE.createEClass();

-		ePackage.getEClassifiers().add(titleClass);

-		titleClass.setName("Title");

-

-		EAttribute lanFeature = EcoreFactory.eINSTANCE.createEAttribute();

-		lanFeature.setName("lan");

-		lanFeature.setEType(EcorePackage.eINSTANCE.getEString());

-		titleClass.getEStructuralFeatures().add(lanFeature);

-

-		EAttribute textFeature = EcoreFactory.eINSTANCE.createEAttribute();

-		textFeature.setName("text");

-		textFeature.setEType(EcorePackage.eINSTANCE.getEString());

-		titleClass.getEStructuralFeatures().add(textFeature);

-

-		EReference titleFeature = EcoreFactory.eINSTANCE.createEReference();

-		titleFeature.setName("title");

-		titleFeature.setEType(titleClass);

-		bookClass.getEStructuralFeatures().add(titleFeature);

-

-		EObject harryPotter = EcoreUtil.create(bookClass);

-

-		EObject title = EcoreUtil.create(titleClass);

-

-		title.eSet(lanFeature, "en");

-		title.eSet(textFeature, "Harry Potter");

-		harryPotter.eSet(titleFeature, title);

-		harryPotter.eSet(authorFeature, "Neal Stephenson");

-		harryPotter.eSet(priceFeature, 29.99);

-		harryPotter.eSet(yearFeature, 2005);

-

-		return harryPotter;

-	}

-}

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext_Dynamic.xwt b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext_Dynamic.xwt
deleted file mode 100644
index fbb1fd4..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext_Dynamic.xwt
+++ /dev/null
@@ -1,35 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.emf.test.books"

-	Size="400, 300">

-	<Shell.layout>

-		<GridLayout numColumns="3"/>

-	</Shell.layout>

-	

-	<Label text="Name:"/>

-	<Text name="titleText" x:style="BORDER" text="{Binding Path=title.text}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Text name="authorText" x:style="BORDER" text="{Binding Path=author}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Label text="Copy:"/>

-	<Text x:style="BORDER"  text="{Binding Path=title.text}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Text x:style="BORDER" text="{Binding Path=author}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-</Shell>

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext_Nested.java b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext_Nested.java
deleted file mode 100644
index 46b8fca..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext_Nested.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.emf.test;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.emf.EMFBinding;

-import org.eclipse.xwt.emf.test.books.Book;

-import org.eclipse.xwt.emf.test.books.BooksFactory;

-import org.eclipse.xwt.emf.test.books.Title;

-

-/**

- * @author yyang (yves.yang@soyatec.com)

- */

-public class EMFDataProvider_DataContext_Nested {

-	public static void main(String[] args) {

-		EMFBinding.initialze();

-		URL url = EMFDataProvider_DataContext_Nested.class

-				.getResource(EMFDataProvider_DataContext_Nested.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url, createBook());

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected static Book createBook() {

-		Book harryPotter = BooksFactory.eINSTANCE.createBook();

-		Title title = BooksFactory.eINSTANCE.createTitle();

-		title.setLan("en");

-		title.setText("Harry Potter");

-		harryPotter.setTitle(title);

-		harryPotter.setAuthor("Neal Stephenson");

-		harryPotter.setPrice(29.99);

-		harryPotter.setYear(2005);

-

-		return harryPotter;

-	}

-}

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext_Nested.xwt b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext_Nested.xwt
deleted file mode 100644
index 3ab1cfa..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext_Nested.xwt
+++ /dev/null
@@ -1,40 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.emf.test.books"

-	Size="400, 300">

-	<Shell.layout>

-		<GridLayout numColumns="3"/>

-	</Shell.layout>

-	

-	<Shell.Resources>

-		<EMFDataProvider x:Key="myBooks" objectInstance="{Binding}">

-		</EMFDataProvider>

-	</Shell.Resources>

-	

-	<Label text="Name:"/>

-	<Text name="titleText" x:style="BORDER" text="{Binding Source={StaticResource myBooks}, Path=title.text}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Text name="authorText" x:style="BORDER" text="{Binding Source={StaticResource myBooks}, Path=author}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Label text="Copy:"/>

-	<Text x:style="BORDER"  text="{Binding Source={StaticResource myBooks}, Path=title.text}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Text x:style="BORDER" text="{Binding Source={StaticResource myBooks}, Path=author}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-</Shell>

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_FeatureName.java b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_FeatureName.java
deleted file mode 100644
index 2963c98..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_FeatureName.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.emf.test;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.emf.EMFDataProvider;

-

-/**

- * @author jliu jin.liu@soyatec.com

- */

-public class EMFDataProvider_FeatureName {

-	public static void main(String[] args) {

-		XWT.registerMetaclass(EMFDataProvider.class);

-		URL url = EMFDataProvider_FeatureName.class

-				.getResource(EMFDataProvider_FeatureName.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_FeatureName.xwt b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_FeatureName.xwt
deleted file mode 100644
index 914434f..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_FeatureName.xwt
+++ /dev/null
@@ -1,40 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.emf.test.books"

-	Size="400, 300">

-	<Shell.layout>

-		<GridLayout numColumns="3"/>

-	</Shell.layout>

-	

-	<Shell.Resources>

-		<EMFDataProvider x:Key="myBooks" typeURI="TODO" featureName="title">

-		</EMFDataProvider>

-	</Shell.Resources>

-	

-	<Label text="Name:"/>

-	<Text x:style="BORDER" text="{Binding Source={StaticResource myBooks}, Path=text}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Text x:style="BORDER" text="{Binding Source={StaticResource myBooks}, Path=lan}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Label text="Copy:"/>

-	<Text x:style="BORDER"  text="{Binding Source={StaticResource myBooks}, Path=text}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Text x:style="BORDER" text="{Binding Source={StaticResource myBooks}, Path=lan}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-</Shell>

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_Type.java b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_Type.java
deleted file mode 100644
index 2623f91..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_Type.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.emf.test;

-

-import java.net.URL;

-

-import org.eclipse.emf.ecore.resource.Resource;

-import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.emf.EMFBinding;

-

-/**

- * @author jliu (jin.liu@soyatec.com)

- */

-public class EMFDataProvider_Type {

-	public static void main(String[] args) {

-		EMFBinding.initialze();

-		Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put(

-				"ecore", new XMIResourceFactoryImpl());

-

-		URL url = EMFDataProvider_Type.class

-				.getResource(EMFDataProvider_Type.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_Type.xwt b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_Type.xwt
deleted file mode 100644
index fd365a7..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_Type.xwt
+++ /dev/null
@@ -1,40 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.emf.test.books"

-	Size="400, 300">

-	<Shell.layout>

-		<GridLayout numColumns="3"/>

-	</Shell.layout>

-	

-	<Shell.Resources>

-		<EMFDataProvider x:Key="myBooks" typeURI="org.eclipse.xwt.emf/books.ecore#//Book">

-		</EMFDataProvider>

-	</Shell.Resources>

-	

-	<Label text="Name:"/>

-	<Text name="titleText" x:style="BORDER" text="{Binding Source={StaticResource myBooks}, Path=title.text}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Text name="authorText" x:style="BORDER" text="{Binding Source={StaticResource myBooks}, Path=author}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Label text="Copy:"/>

-	<Text x:style="BORDER"  text="{Binding Source={StaticResource myBooks}, Path=title.text}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Text x:style="BORDER" text="{Binding Source={StaticResource myBooks}, Path=author}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-</Shell>

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFTestCase.java b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFTestCase.java
deleted file mode 100644
index 81ceaa8..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFTestCase.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.emf.test;

-

-import java.net.URL;

-

-import org.eclipse.emf.ecore.EPackage;

-import org.eclipse.emf.ecore.resource.Resource;

-import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.emf.EMFBinding;

-import org.eclipse.xwt.emf.test.books.BooksFactory;

-

-public class EMFTestCase extends XWTTestCase {

-	public EMFTestCase() {

-		EMFBinding.initialze();

-		EPackage.Registry.INSTANCE.put("org.eclipse.xwt.emf/books.ecore",

-				BooksFactory.eINSTANCE);

-	}

-

-	public void testEMFDataProvider_DataContext() {

-		URL url = EMFTestCase.class

-				.getResource(EMFDataProvider_DataContext.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, EMFDataProvider_DataContext.createBook(), null,

-				new Runnable() {

-					public void run() {

-						assertText("titleText", "Harry Potter");

-						assertText("authorText", "Neal Stephenson");

-					}

-				});

-	}

-

-	public void testEMFDataProvider_DataContext_Dynamic() {

-		URL url = EMFTestCase.class

-				.getResource(EMFDataProvider_DataContext_Dynamic.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, EMFDataProvider_DataContext_Dynamic.createBook(), null,

-				new Runnable() {

-					public void run() {

-						assertText("titleText", "Harry Potter");

-						assertText("authorText", "Neal Stephenson");

-					}

-				});

-	}

-

-	public void testEMFDataProvider_DataContext_Nested() {

-		URL url = EMFTestCase.class

-				.getResource(EMFDataProvider_DataContext_Nested.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, EMFDataProvider_DataContext_Nested.createBook(), null,

-				new Runnable() {

-					public void run() {

-						assertText("titleText", "Harry Potter");

-						assertText("authorText", "Neal Stephenson");

-					}

-				});

-	}

-

-	public void testEMFDataProvider_Type() {

-		URL url = EMFTestCase.class.getResource(EMFDataProvider_Type.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put(

-				"ecore", new XMIResourceFactoryImpl());

-		runTest(url, new Runnable() {

-			public void run() {

-				setText("titleText", "Harry Potter");

-				setText("authorText", "Neal Stephenson");

-			}

-		}, new Runnable() {

-			public void run() {

-				assertText("titleText", "Harry Potter");

-				assertText("authorText", "Neal Stephenson");

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFTestSuite.java b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFTestSuite.java
deleted file mode 100644
index 7174fa3..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFTestSuite.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.emf.test;

-

-import junit.framework.Test;

-import junit.framework.TestSuite;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class EMFTestSuite extends TestSuite {

-	public static final Test suite() {

-		return new EMFTestSuite();

-	}

-

-	/**

-	 * The execution of the tests must be started from simple to complex in

-	 * order.

-	 */

-	public EMFTestSuite() {

-		addTest(new TestSuite(EMFTestCase.class));

-	}

-}

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/MyBooks.java b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/MyBooks.java
deleted file mode 100644
index 0e186cb..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/MyBooks.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.emf.test;

-

-import org.eclipse.xwt.emf.test.books.Book;

-import org.eclipse.xwt.emf.test.books.BooksFactory;

-import org.eclipse.xwt.emf.test.books.Bookstore;

-import org.eclipse.xwt.emf.test.books.Title;

-

-public class MyBooks {

-

-	private Bookstore bookstore;

-	private Book harryPotter;

-

-	public Book getBook() {

-		if (harryPotter == null) {

-			harryPotter = BooksFactory.eINSTANCE.createBook();

-			Title title = BooksFactory.eINSTANCE.createTitle();

-			title.setLan("en");

-			title.setText("Harry Potter");

-			harryPotter.setTitle(title);

-			harryPotter.setAuthor("Neal Stephenson");

-			harryPotter.setPrice(29.99);

-			harryPotter.setYear(2005);

-		}

-		return harryPotter;

-	}

-

-	public Bookstore getBookstore() {

-		if (bookstore == null) {

-			bookstore = BooksFactory.eINSTANCE.createBookstore();

-			bookstore.getBooks().add(getBook());

-		}

-		return bookstore;

-	}

-}

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/XWTTestCase.java b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/XWTTestCase.java
deleted file mode 100644
index 6e96602..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/XWTTestCase.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.emf.test;

-

-import java.lang.reflect.Field;

-import java.net.URL;

-import java.util.Collections;

-import java.util.HashMap;

-import java.util.Map;

-

-import junit.framework.TestCase;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.graphics.Point;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.xwt.IXWTLoader;

-import org.eclipse.xwt.XWT;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public abstract class XWTTestCase extends TestCase {

-	protected Control root;

-	static boolean simulateMThreading = false;

-

-	static {

-		if (simulateMThreading) {			

-			Thread thread = new Thread() {

-				@Override

-				public void run() {

-					Display.getDefault();

-				}

-			};

-			thread.start();

-			

-			try {

-				thread.join();

-			} catch (Exception e) {

-				e.printStackTrace();

-			}

-		}

-		clearnUpDisplay();

-	}

-

-	public static void clearnUpDisplay() {

-		try {

-			Field displaysField = Display.class.getDeclaredField("Displays");

-			if (displaysField != null) {

-				displaysField.setAccessible(true);

-				Display[] displays = (Display[]) displaysField.get(null);

-				if (displays != null) {

-					for(int i = 0; i<displays.length; i++ ) {

-						displays[i] = null;

-					}

-				}

-			}

-			Field field = Display.class.getDeclaredField("Default");

-			if (field != null) {

-				field.setAccessible(true);

-				Display defaultDisplay = (Display) field.get(null);

-				if (defaultDisplay != null) {

-					field.set(null, null);

-				}

-			}

-		} catch (Exception e) {

-		}		

-	}

-

-	protected void runTest(URL url) {

-		runTest(url, null, null);

-	}

-

-	protected void runTest(URL url, Runnable prepareAction, Runnable checkAction) {

-		runTest(url, Collections.EMPTY_MAP, prepareAction, checkAction);

-	}

-

-	protected void runTest(URL url, Object dataContext, Runnable prepareAction,

-			Runnable checkAction) {

-		HashMap<String, Object> options = new HashMap<String, Object>();

-		options.put(IXWTLoader.DATACONTEXT_PROPERTY, dataContext);

-		runTest(url, options, prepareAction, checkAction);

-	}

-

-	protected void runTest(final URL url, Map<String, Object> options,

-			Runnable prepareAction, Runnable checkAction) {

-		ClassLoader classLoader = Thread.currentThread()

-				.getContextClassLoader();

-		try {

-			Thread.currentThread().setContextClassLoader(

-					this.getClass().getClassLoader());

-			Object widget = XWT.loadWithOptions(url, options);

-			assertTrue(widget instanceof Control);

-			assertNotNull(widget);

-			root = (Control) widget;

-			Shell shell = root.getShell();

-			shell.open();

-			Display display = shell.getDisplay();

-			if (prepareAction != null) {

-				display.asyncExec(prepareAction);

-			}

-			while (display.readAndDispatch())

-				;

-			while (display.readAndDispatch())

-				;

-			if (checkAction != null) {

-				display.syncExec(checkAction);

-				while (display.readAndDispatch())

-					;

-			}

-			assertFalse(root.isDisposed());

-			shell.close();

-			while (display.readAndDispatch())

-				;

-		} catch (Exception e) {

-			e.printStackTrace();

-			fail(e.getMessage());

-		} finally {

-			Thread.currentThread().setContextClassLoader(classLoader);

-		}

-	}

-

-	protected void runDebugTest(final URL url, Runnable prepareAction,

-			Runnable checkAction1) {

-		ClassLoader classLoader = Thread.currentThread()

-				.getContextClassLoader();

-		try {

-			Thread.currentThread().setContextClassLoader(

-					this.getClass().getClassLoader());

-			Object widget = XWT.load(url);

-			assertTrue(widget instanceof Control);

-			assertNotNull(widget);

-			root = (Control) widget;

-			Shell shell = root.getShell();

-			shell.open();

-			Display display = shell.getDisplay();

-			if (prepareAction != null) {

-				display.asyncExec(prepareAction);

-			}

-			while (!display.isDisposed())

-				display.readAndDispatch();

-		} catch (Exception e) {

-			e.printStackTrace();

-			fail(e.getMessage());

-		} finally {

-			Thread.currentThread().setContextClassLoader(classLoader);

-		}

-	}

-

-	protected void selectButton(Button button) {

-		selectButton(button, true);

-	}

-

-	protected void selectButton(Button button, boolean selection) {

-		Point size = button.getSize();

-		Display display = button.getDisplay();

-		Event upEvent = new Event();

-		upEvent.widget = button;

-		upEvent.button = 1;

-		upEvent.type = SWT.MouseUp;

-		upEvent.x = size.x / 2;

-		upEvent.y = size.y / 2;

-		display.post(upEvent);

-

-		button.setSelection(selection);

-		button.notifyListeners(SWT.Selection, upEvent);

-	}

-

-	protected void assertText(String name, String value) {

-		Object element = XWT.findElementByName(root, name);

-		assertTrue(element instanceof Text);

-		Text text = (Text) element;

-		assertEquals(value, text.getText());

-	}

-

-	protected void setText(String name, String value) {

-		Object element = XWT.findElementByName(root, name);

-		assertTrue(element instanceof Text);

-		Text text = (Text) element;

-		text.setText(value);

-	}

-

-	protected void assertEqualsArray(Object[] source, Object[] target) {

-		assertEquals(source.length, target.length);

-		for (int i = 0; i < source.length; i++) {

-			assertEquals(source[i], target[i]);

-		}

-	}

-}

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/Book.java b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/Book.java
deleted file mode 100644
index 5dab799..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/Book.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.emf.test.books;

-

-import org.eclipse.emf.ecore.EObject;

-

-/**

- * <!-- begin-user-doc --> A representation of the model object '

- * <em><b>Book</b></em>'. <!-- end-user-doc -->

- * 

- * <p>

- * The following features are supported:

- * <ul>

- * <li>{@link org.eclipse.xwt.emf.test.books.Book#getAuthor <em>Author</em>}</li>

- * <li>{@link org.eclipse.xwt.emf.test.books.Book#getPrice <em>Price</em>}</li>

- * <li>{@link org.eclipse.xwt.emf.test.books.Book#getYear <em>Year</em>}</li>

- * <li>{@link org.eclipse.xwt.emf.test.books.Book#getTitle <em>Title</em>}</li>

- * </ul>

- * </p>

- * 

- * @see org.eclipse.xwt.emf.test.books.BooksPackage#getBook()

- * @model

- * @generated

- */

-public interface Book extends EObject {

-	/**

-	 * Returns the value of the '<em><b>Title</b></em>' containment reference.

-	 * <!-- begin-user-doc -->

-	 * <p>

-	 * If the meaning of the '<em>Title</em>' attribute isn't clear, there

-	 * really should be more of a description here...

-	 * </p>

-	 * <!-- end-user-doc -->

-	 * 

-	 * @return the value of the '<em>Title</em>' containment reference.

-	 * @see #setTitle(Title)

-	 * @see org.eclipse.xwt.emf.test.books.BooksPackage#getBook_Title()

-	 * @model containment="true"

-	 * @generated

-	 */

-	Title getTitle();

-

-	/**

-	 * Sets the value of the '

-	 * {@link org.eclipse.xwt.emf.test.books.Book#getTitle <em>Title</em>}'

-	 * containment reference. <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @param value

-	 *            the new value of the '<em>Title</em>' containment reference.

-	 * @see #getTitle()

-	 * @generated

-	 */

-	void setTitle(Title value);

-

-	/**

-	 * Returns the value of the '<em><b>Author</b></em>' attribute. <!--

-	 * begin-user-doc -->

-	 * <p>

-	 * If the meaning of the '<em>Author</em>' attribute isn't clear, there

-	 * really should be more of a description here...

-	 * </p>

-	 * <!-- end-user-doc -->

-	 * 

-	 * @return the value of the '<em>Author</em>' attribute.

-	 * @see #setAuthor(String)

-	 * @see org.eclipse.xwt.emf.test.books.BooksPackage#getBook_Author()

-	 * @model

-	 * @generated

-	 */

-	String getAuthor();

-

-	/**

-	 * Sets the value of the '

-	 * {@link org.eclipse.xwt.emf.test.books.Book#getAuthor <em>Author</em>}'

-	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @param value

-	 *            the new value of the '<em>Author</em>' attribute.

-	 * @see #getAuthor()

-	 * @generated

-	 */

-	void setAuthor(String value);

-

-	/**

-	 * Returns the value of the '<em><b>Price</b></em>' attribute. <!--

-	 * begin-user-doc -->

-	 * <p>

-	 * If the meaning of the '<em>Price</em>' attribute isn't clear, there

-	 * really should be more of a description here...

-	 * </p>

-	 * <!-- end-user-doc -->

-	 * 

-	 * @return the value of the '<em>Price</em>' attribute.

-	 * @see #setPrice(double)

-	 * @see org.eclipse.xwt.emf.test.books.BooksPackage#getBook_Price()

-	 * @model

-	 * @generated

-	 */

-	double getPrice();

-

-	/**

-	 * Sets the value of the '

-	 * {@link org.eclipse.xwt.emf.test.books.Book#getPrice <em>Price</em>}'

-	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @param value

-	 *            the new value of the '<em>Price</em>' attribute.

-	 * @see #getPrice()

-	 * @generated

-	 */

-	void setPrice(double value);

-

-	/**

-	 * Returns the value of the '<em><b>Year</b></em>' attribute. <!--

-	 * begin-user-doc -->

-	 * <p>

-	 * If the meaning of the '<em>Year</em>' attribute isn't clear, there really

-	 * should be more of a description here...

-	 * </p>

-	 * <!-- end-user-doc -->

-	 * 

-	 * @return the value of the '<em>Year</em>' attribute.

-	 * @see #setYear(long)

-	 * @see org.eclipse.xwt.emf.test.books.BooksPackage#getBook_Year()

-	 * @model

-	 * @generated

-	 */

-	long getYear();

-

-	/**

-	 * Sets the value of the '

-	 * {@link org.eclipse.xwt.emf.test.books.Book#getYear <em>Year</em>}'

-	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @param value

-	 *            the new value of the '<em>Year</em>' attribute.

-	 * @see #getYear()

-	 * @generated

-	 */

-	void setYear(long value);

-

-} // Book

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/BooksFactory.java b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/BooksFactory.java
deleted file mode 100644
index 3935e10..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/BooksFactory.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.emf.test.books;

-

-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.xwt.emf.test.books.BooksPackage

- * @generated

- */

-public interface BooksFactory extends EFactory {

-	/**

-	 * The singleton instance of the factory. <!-- begin-user-doc --> <!--

-	 * end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	BooksFactory eINSTANCE = org.eclipse.xwt.emf.test.books.impl.BooksFactoryImpl

-			.init();

-

-	/**

-	 * Returns a new object of class '<em>Bookstore</em>'. <!-- begin-user-doc

-	 * --> <!-- end-user-doc -->

-	 * 

-	 * @return a new object of class '<em>Bookstore</em>'.

-	 * @generated

-	 */

-	Bookstore createBookstore();

-

-	/**

-	 * Returns a new object of class '<em>Book</em>'. <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * 

-	 * @return a new object of class '<em>Book</em>'.

-	 * @generated

-	 */

-	Book createBook();

-

-	/**

-	 * Returns a new object of class '<em>Title</em>'. <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * 

-	 * @return a new object of class '<em>Title</em>'.

-	 * @generated

-	 */

-	Title createTitle();

-

-	/**

-	 * Returns the package supported by this factory. <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * 

-	 * @return the package supported by this factory.

-	 * @generated

-	 */

-	BooksPackage getBooksPackage();

-

-} // BooksFactory

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/BooksPackage.java b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/BooksPackage.java
deleted file mode 100644
index 6e61287..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/BooksPackage.java
+++ /dev/null
@@ -1,420 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.emf.test.books;

-

-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.xwt.emf.test.books.BooksFactory

- * @model kind="package"

- * @generated

- */

-public interface BooksPackage extends EPackage {

-	/**

-	 * The package name. <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	String eNAME = "books";

-

-	/**

-	 * The package namespace URI. <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	String eNS_URI = "org.eclipse.xwt.emf/books.ecore";

-

-	/**

-	 * The package namespace name. <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	String eNS_PREFIX = "books";

-

-	/**

-	 * The singleton instance of the package. <!-- begin-user-doc --> <!--

-	 * end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	BooksPackage eINSTANCE = org.eclipse.xwt.emf.test.books.impl.BooksPackageImpl

-			.init();

-

-	/**

-	 * The meta object id for the '

-	 * {@link org.eclipse.xwt.emf.test.books.impl.BookstoreImpl

-	 * <em>Bookstore</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @see org.eclipse.xwt.emf.test.books.impl.BookstoreImpl

-	 * @see org.eclipse.xwt.emf.test.books.impl.BooksPackageImpl#getBookstore()

-	 * @generated

-	 */

-	int BOOKSTORE = 0;

-

-	/**

-	 * The feature id for the '<em><b>Books</b></em>' containment reference

-	 * list. <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 * @ordered

-	 */

-	int BOOKSTORE__BOOKS = 0;

-

-	/**

-	 * The number of structural features of the '<em>Bookstore</em>' class. <!--

-	 * begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 * @ordered

-	 */

-	int BOOKSTORE_FEATURE_COUNT = 1;

-

-	/**

-	 * The meta object id for the '

-	 * {@link org.eclipse.xwt.emf.test.books.impl.BookImpl <em>Book</em>}'

-	 * class. <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @see org.eclipse.xwt.emf.test.books.impl.BookImpl

-	 * @see org.eclipse.xwt.emf.test.books.impl.BooksPackageImpl#getBook()

-	 * @generated

-	 */

-	int BOOK = 1;

-

-	/**

-	 * The feature id for the '<em><b>Author</b></em>' attribute. <!--

-	 * begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 * @ordered

-	 */

-	int BOOK__AUTHOR = 0;

-

-	/**

-	 * The feature id for the '<em><b>Price</b></em>' attribute. <!--

-	 * begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 * @ordered

-	 */

-	int BOOK__PRICE = 1;

-

-	/**

-	 * The feature id for the '<em><b>Year</b></em>' attribute. <!--

-	 * begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 * @ordered

-	 */

-	int BOOK__YEAR = 2;

-

-	/**

-	 * The feature id for the '<em><b>Title</b></em>' containment reference.

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 * @ordered

-	 */

-	int BOOK__TITLE = 3;

-

-	/**

-	 * The number of structural features of the '<em>Book</em>' class. <!--

-	 * begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 * @ordered

-	 */

-	int BOOK_FEATURE_COUNT = 4;

-

-	/**

-	 * The meta object id for the '

-	 * {@link org.eclipse.xwt.emf.test.books.impl.TitleImpl <em>Title</em>}'

-	 * class. <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @see org.eclipse.xwt.emf.test.books.impl.TitleImpl

-	 * @see org.eclipse.xwt.emf.test.books.impl.BooksPackageImpl#getTitle()

-	 * @generated

-	 */

-	int TITLE = 2;

-

-	/**

-	 * The feature id for the '<em><b>Lan</b></em>' attribute. <!--

-	 * begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 * @ordered

-	 */

-	int TITLE__LAN = 0;

-

-	/**

-	 * The feature id for the '<em><b>Text</b></em>' attribute. <!--

-	 * begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 * @ordered

-	 */

-	int TITLE__TEXT = 1;

-

-	/**

-	 * The number of structural features of the '<em>Title</em>' class. <!--

-	 * begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 * @ordered

-	 */

-	int TITLE_FEATURE_COUNT = 2;

-

-	/**

-	 * Returns the meta object for class '

-	 * {@link org.eclipse.xwt.emf.test.books.Bookstore <em>Bookstore</em>}'.

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @return the meta object for class '<em>Bookstore</em>'.

-	 * @see org.eclipse.xwt.emf.test.books.Bookstore

-	 * @generated

-	 */

-	EClass getBookstore();

-

-	/**

-	 * Returns the meta object for the containment reference list '

-	 * {@link org.eclipse.xwt.emf.test.books.Bookstore#getBooks

-	 * <em>Books</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @return the meta object for the containment reference list '

-	 *         <em>Books</em>'.

-	 * @see org.eclipse.xwt.emf.test.books.Bookstore#getBooks()

-	 * @see #getBookstore()

-	 * @generated

-	 */

-	EReference getBookstore_Books();

-

-	/**

-	 * Returns the meta object for class '

-	 * {@link org.eclipse.xwt.emf.test.books.Book <em>Book</em>}'. <!--

-	 * begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @return the meta object for class '<em>Book</em>'.

-	 * @see org.eclipse.xwt.emf.test.books.Book

-	 * @generated

-	 */

-	EClass getBook();

-

-	/**

-	 * Returns the meta object for the containment reference '

-	 * {@link org.eclipse.xwt.emf.test.books.Book#getTitle <em>Title</em>}'.

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @return the meta object for the containment reference '<em>Title</em>'.

-	 * @see org.eclipse.xwt.emf.test.books.Book#getTitle()

-	 * @see #getBook()

-	 * @generated

-	 */

-	EReference getBook_Title();

-

-	/**

-	 * Returns the meta object for class '

-	 * {@link org.eclipse.xwt.emf.test.books.Title <em>Title</em>}'. <!--

-	 * begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @return the meta object for class '<em>Title</em>'.

-	 * @see org.eclipse.xwt.emf.test.books.Title

-	 * @generated

-	 */

-	EClass getTitle();

-

-	/**

-	 * Returns the meta object for the attribute '

-	 * {@link org.eclipse.xwt.emf.test.books.Title#getLan <em>Lan</em>}'.

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @return the meta object for the attribute '<em>Lan</em>'.

-	 * @see org.eclipse.xwt.emf.test.books.Title#getLan()

-	 * @see #getTitle()

-	 * @generated

-	 */

-	EAttribute getTitle_Lan();

-

-	/**

-	 * Returns the meta object for the attribute '

-	 * {@link org.eclipse.xwt.emf.test.books.Title#getText <em>Text</em>}'.

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @return the meta object for the attribute '<em>Text</em>'.

-	 * @see org.eclipse.xwt.emf.test.books.Title#getText()

-	 * @see #getTitle()

-	 * @generated

-	 */

-	EAttribute getTitle_Text();

-

-	/**

-	 * Returns the meta object for the attribute '

-	 * {@link org.eclipse.xwt.emf.test.books.Book#getAuthor <em>Author</em>}

-	 * '. <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @return the meta object for the attribute '<em>Author</em>'.

-	 * @see org.eclipse.xwt.emf.test.books.Book#getAuthor()

-	 * @see #getBook()

-	 * @generated

-	 */

-	EAttribute getBook_Author();

-

-	/**

-	 * Returns the meta object for the attribute '

-	 * {@link org.eclipse.xwt.emf.test.books.Book#getPrice <em>Price</em>}'.

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @return the meta object for the attribute '<em>Price</em>'.

-	 * @see org.eclipse.xwt.emf.test.books.Book#getPrice()

-	 * @see #getBook()

-	 * @generated

-	 */

-	EAttribute getBook_Price();

-

-	/**

-	 * Returns the meta object for the attribute '

-	 * {@link org.eclipse.xwt.emf.test.books.Book#getYear <em>Year</em>}'.

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @return the meta object for the attribute '<em>Year</em>'.

-	 * @see org.eclipse.xwt.emf.test.books.Book#getYear()

-	 * @see #getBook()

-	 * @generated

-	 */

-	EAttribute getBook_Year();

-

-	/**

-	 * 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

-	 */

-	BooksFactory getBooksFactory();

-

-	/**

-	 * <!-- 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.xwt.emf.test.books.impl.BookstoreImpl

-		 * <em>Bookstore</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc

-		 * -->

-		 * 

-		 * @see org.eclipse.xwt.emf.test.books.impl.BookstoreImpl

-		 * @see org.eclipse.xwt.emf.test.books.impl.BooksPackageImpl#getBookstore()

-		 * @generated

-		 */

-		EClass BOOKSTORE = eINSTANCE.getBookstore();

-

-		/**

-		 * The meta object literal for the '<em><b>Books</b></em>' containment

-		 * reference list feature. <!-- begin-user-doc --> <!-- end-user-doc -->

-		 * 

-		 * @generated

-		 */

-		EReference BOOKSTORE__BOOKS = eINSTANCE.getBookstore_Books();

-

-		/**

-		 * The meta object literal for the '

-		 * {@link org.eclipse.xwt.emf.test.books.impl.BookImpl <em>Book</em>}

-		 * ' class. <!-- begin-user-doc --> <!-- end-user-doc -->

-		 * 

-		 * @see org.eclipse.xwt.emf.test.books.impl.BookImpl

-		 * @see org.eclipse.xwt.emf.test.books.impl.BooksPackageImpl#getBook()

-		 * @generated

-		 */

-		EClass BOOK = eINSTANCE.getBook();

-

-		/**

-		 * The meta object literal for the '<em><b>Title</b></em>' containment

-		 * reference feature. <!-- begin-user-doc --> <!-- end-user-doc -->

-		 * 

-		 * @generated

-		 */

-		EReference BOOK__TITLE = eINSTANCE.getBook_Title();

-

-		/**

-		 * The meta object literal for the '

-		 * {@link org.eclipse.xwt.emf.test.books.impl.TitleImpl

-		 * <em>Title</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->

-		 * 

-		 * @see org.eclipse.xwt.emf.test.books.impl.TitleImpl

-		 * @see org.eclipse.xwt.emf.test.books.impl.BooksPackageImpl#getTitle()

-		 * @generated

-		 */

-		EClass TITLE = eINSTANCE.getTitle();

-

-		/**

-		 * The meta object literal for the '<em><b>Lan</b></em>' attribute

-		 * feature. <!-- begin-user-doc --> <!-- end-user-doc -->

-		 * 

-		 * @generated

-		 */

-		EAttribute TITLE__LAN = eINSTANCE.getTitle_Lan();

-

-		/**

-		 * The meta object literal for the '<em><b>Text</b></em>' attribute

-		 * feature. <!-- begin-user-doc --> <!-- end-user-doc -->

-		 * 

-		 * @generated

-		 */

-		EAttribute TITLE__TEXT = eINSTANCE.getTitle_Text();

-

-		/**

-		 * The meta object literal for the '<em><b>Author</b></em>' attribute

-		 * feature. <!-- begin-user-doc --> <!-- end-user-doc -->

-		 * 

-		 * @generated

-		 */

-		EAttribute BOOK__AUTHOR = eINSTANCE.getBook_Author();

-

-		/**

-		 * The meta object literal for the '<em><b>Price</b></em>' attribute

-		 * feature. <!-- begin-user-doc --> <!-- end-user-doc -->

-		 * 

-		 * @generated

-		 */

-		EAttribute BOOK__PRICE = eINSTANCE.getBook_Price();

-

-		/**

-		 * The meta object literal for the '<em><b>Year</b></em>' attribute

-		 * feature. <!-- begin-user-doc --> <!-- end-user-doc -->

-		 * 

-		 * @generated

-		 */

-		EAttribute BOOK__YEAR = eINSTANCE.getBook_Year();

-

-	}

-

-} // BooksPackage

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/Bookstore.java b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/Bookstore.java
deleted file mode 100644
index 1c2109f..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/Bookstore.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.emf.test.books;

-

-import org.eclipse.emf.common.util.EList;

-import org.eclipse.emf.ecore.EObject;

-

-/**

- * <!-- begin-user-doc --> A representation of the model object '

- * <em><b>Bookstore</b></em>'. <!-- end-user-doc -->

- * 

- * <p>

- * The following features are supported:

- * <ul>

- * <li>{@link org.eclipse.xwt.emf.test.books.Bookstore#getBooks <em>Books

- * </em>}</li>

- * </ul>

- * </p>

- * 

- * @see org.eclipse.xwt.emf.test.books.BooksPackage#getBookstore()

- * @model

- * @generated

- */

-public interface Bookstore extends EObject {

-	/**

-	 * Returns the value of the '<em><b>Books</b></em>' containment reference

-	 * list. The list nameMap are of type

-	 * {@link org.eclipse.xwt.emf.test.books.Book}. <!-- begin-user-doc -->

-	 * <p>

-	 * If the meaning of the '<em>Books</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>Books</em>' containment reference list.

-	 * @see org.eclipse.xwt.emf.test.books.BooksPackage#getBookstore_Books()

-	 * @model containment="true" required="true"

-	 * @generated

-	 */

-	EList<Book> getBooks();

-

-} // Bookstore

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/Title.java b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/Title.java
deleted file mode 100644
index f56ab72..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/Title.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.emf.test.books;

-

-import org.eclipse.emf.ecore.EObject;

-

-/**

- * <!-- begin-user-doc --> A representation of the model object '

- * <em><b>Title</b></em>'. <!-- end-user-doc -->

- * 

- * <p>

- * The following features are supported:

- * <ul>

- * <li>{@link org.eclipse.xwt.emf.test.books.Title#getLan <em>Lan</em>}</li>

- * <li>{@link org.eclipse.xwt.emf.test.books.Title#getText <em>Text</em>}</li>

- * </ul>

- * </p>

- * 

- * @see org.eclipse.xwt.emf.test.books.BooksPackage#getTitle()

- * @model

- * @generated

- */

-public interface Title extends EObject {

-	/**

-	 * Returns the value of the '<em><b>Lan</b></em>' attribute. <!--

-	 * begin-user-doc -->

-	 * <p>

-	 * If the meaning of the '<em>Lan</em>' attribute isn't clear, there really

-	 * should be more of a description here...

-	 * </p>

-	 * <!-- end-user-doc -->

-	 * 

-	 * @return the value of the '<em>Lan</em>' attribute.

-	 * @see #setLan(String)

-	 * @see org.eclipse.xwt.emf.test.books.BooksPackage#getTitle_Lan()

-	 * @model

-	 * @generated

-	 */

-	String getLan();

-

-	/**

-	 * Sets the value of the '

-	 * {@link org.eclipse.xwt.emf.test.books.Title#getLan <em>Lan</em>}'

-	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @param value

-	 *            the new value of the '<em>Lan</em>' attribute.

-	 * @see #getLan()

-	 * @generated

-	 */

-	void setLan(String value);

-

-	/**

-	 * Returns the value of the '<em><b>Text</b></em>' attribute. <!--

-	 * begin-user-doc -->

-	 * <p>

-	 * If the meaning of the '<em>Text</em>' attribute isn't clear, there really

-	 * should be more of a description here...

-	 * </p>

-	 * <!-- end-user-doc -->

-	 * 

-	 * @return the value of the '<em>Text</em>' attribute.

-	 * @see #setText(String)

-	 * @see org.eclipse.xwt.emf.test.books.BooksPackage#getTitle_Text()

-	 * @model

-	 * @generated

-	 */

-	String getText();

-

-	/**

-	 * Sets the value of the '

-	 * {@link org.eclipse.xwt.emf.test.books.Title#getText <em>Text</em>}'

-	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @param value

-	 *            the new value of the '<em>Text</em>' attribute.

-	 * @see #getText()

-	 * @generated

-	 */

-	void setText(String value);

-

-} // Title

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/BookImpl.java b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/BookImpl.java
deleted file mode 100644
index 2f63879..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/BookImpl.java
+++ /dev/null
@@ -1,377 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.emf.test.books.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.EObjectImpl;

-import org.eclipse.xwt.emf.test.books.Book;

-import org.eclipse.xwt.emf.test.books.BooksPackage;

-import org.eclipse.xwt.emf.test.books.Title;

-

-/**

- * <!-- begin-user-doc --> An implementation of the model object '

- * <em><b>Book</b></em>'. <!-- end-user-doc -->

- * <p>

- * The following features are implemented:

- * <ul>

- * <li>{@link org.eclipse.xwt.emf.test.books.impl.BookImpl#getAuthor <em>

- * Author</em>}</li>

- * <li>{@link org.eclipse.xwt.emf.test.books.impl.BookImpl#getPrice <em>Price

- * </em>}</li>

- * <li>{@link org.eclipse.xwt.emf.test.books.impl.BookImpl#getYear <em>Year

- * </em>}</li>

- * <li>{@link org.eclipse.xwt.emf.test.books.impl.BookImpl#getTitle <em>Title

- * </em>}</li>

- * </ul>

- * </p>

- * 

- * @generated

- */

-public class BookImpl extends EObjectImpl implements Book {

-	/**

-	 * The default value of the '{@link #getAuthor() <em>Author</em>}'

-	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @see #getAuthor()

-	 * @generated

-	 * @ordered

-	 */

-	protected static final String AUTHOR_EDEFAULT = null;

-

-	/**

-	 * The cached value of the '{@link #getAuthor() <em>Author</em>}' attribute.

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @see #getAuthor()

-	 * @generated

-	 * @ordered

-	 */

-	protected String author = AUTHOR_EDEFAULT;

-

-	/**

-	 * The default value of the '{@link #getPrice() <em>Price</em>}' attribute.

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @see #getPrice()

-	 * @generated

-	 * @ordered

-	 */

-	protected static final double PRICE_EDEFAULT = 0.0;

-

-	/**

-	 * The cached value of the '{@link #getPrice() <em>Price</em>}' attribute.

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @see #getPrice()

-	 * @generated

-	 * @ordered

-	 */

-	protected double price = PRICE_EDEFAULT;

-

-	/**

-	 * The default value of the '{@link #getYear() <em>Year</em>}' attribute.

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @see #getYear()

-	 * @generated

-	 * @ordered

-	 */

-	protected static final long YEAR_EDEFAULT = 0L;

-

-	/**

-	 * The cached value of the '{@link #getYear() <em>Year</em>}' attribute.

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @see #getYear()

-	 * @generated

-	 * @ordered

-	 */

-	protected long year = YEAR_EDEFAULT;

-

-	/**

-	 * The cached value of the '{@link #getTitle() <em>Title</em>}' containment

-	 * reference. <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @see #getTitle()

-	 * @generated

-	 * @ordered

-	 */

-	protected Title title;

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	protected BookImpl() {

-		super();

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	@Override

-	protected EClass eStaticClass() {

-		return BooksPackage.Literals.BOOK;

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public Title getTitle() {

-		return title;

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public NotificationChain basicSetTitle(Title newTitle,

-			NotificationChain msgs) {

-		Title oldTitle = title;

-		title = newTitle;

-		if (eNotificationRequired()) {

-			ENotificationImpl notification = new ENotificationImpl(this,

-					Notification.SET, BooksPackage.BOOK__TITLE, oldTitle,

-					newTitle);

-			if (msgs == null)

-				msgs = notification;

-			else

-				msgs.add(notification);

-		}

-		return msgs;

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public void setTitle(Title newTitle) {

-		if (newTitle != title) {

-			NotificationChain msgs = null;

-			if (title != null)

-				msgs = ((InternalEObject) title).eInverseRemove(this,

-						EOPPOSITE_FEATURE_BASE - BooksPackage.BOOK__TITLE,

-						null, msgs);

-			if (newTitle != null)

-				msgs = ((InternalEObject) newTitle).eInverseAdd(this,

-						EOPPOSITE_FEATURE_BASE - BooksPackage.BOOK__TITLE,

-						null, msgs);

-			msgs = basicSetTitle(newTitle, msgs);

-			if (msgs != null)

-				msgs.dispatch();

-		} else if (eNotificationRequired())

-			eNotify(new ENotificationImpl(this, Notification.SET,

-					BooksPackage.BOOK__TITLE, newTitle, newTitle));

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	@Override

-	public NotificationChain eInverseRemove(InternalEObject otherEnd,

-			int featureID, NotificationChain msgs) {

-		switch (featureID) {

-		case BooksPackage.BOOK__TITLE:

-			return basicSetTitle(null, msgs);

-		}

-		return super.eInverseRemove(otherEnd, featureID, msgs);

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public String getAuthor() {

-		return author;

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public void setAuthor(String newAuthor) {

-		String oldAuthor = author;

-		author = newAuthor;

-		if (eNotificationRequired())

-			eNotify(new ENotificationImpl(this, Notification.SET,

-					BooksPackage.BOOK__AUTHOR, oldAuthor, author));

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public double getPrice() {

-		return price;

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public void setPrice(double newPrice) {

-		double oldPrice = price;

-		price = newPrice;

-		if (eNotificationRequired())

-			eNotify(new ENotificationImpl(this, Notification.SET,

-					BooksPackage.BOOK__PRICE, oldPrice, price));

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public long getYear() {

-		return year;

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public void setYear(long newYear) {

-		long oldYear = year;

-		year = newYear;

-		if (eNotificationRequired())

-			eNotify(new ENotificationImpl(this, Notification.SET,

-					BooksPackage.BOOK__YEAR, oldYear, year));

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	@Override

-	public Object eGet(int featureID, boolean resolve, boolean coreType) {

-		switch (featureID) {

-		case BooksPackage.BOOK__AUTHOR:

-			return getAuthor();

-		case BooksPackage.BOOK__PRICE:

-			return new Double(getPrice());

-		case BooksPackage.BOOK__YEAR:

-			return new Long(getYear());

-		case BooksPackage.BOOK__TITLE:

-			return getTitle();

-		}

-		return super.eGet(featureID, resolve, coreType);

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	@Override

-	public void eSet(int featureID, Object newValue) {

-		switch (featureID) {

-		case BooksPackage.BOOK__AUTHOR:

-			setAuthor((String) newValue);

-			return;

-		case BooksPackage.BOOK__PRICE:

-			setPrice(((Double) newValue).doubleValue());

-			return;

-		case BooksPackage.BOOK__YEAR:

-			setYear(((Long) newValue).longValue());

-			return;

-		case BooksPackage.BOOK__TITLE:

-			setTitle((Title) newValue);

-			return;

-		}

-		super.eSet(featureID, newValue);

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	@Override

-	public void eUnset(int featureID) {

-		switch (featureID) {

-		case BooksPackage.BOOK__AUTHOR:

-			setAuthor(AUTHOR_EDEFAULT);

-			return;

-		case BooksPackage.BOOK__PRICE:

-			setPrice(PRICE_EDEFAULT);

-			return;

-		case BooksPackage.BOOK__YEAR:

-			setYear(YEAR_EDEFAULT);

-			return;

-		case BooksPackage.BOOK__TITLE:

-			setTitle((Title) null);

-			return;

-		}

-		super.eUnset(featureID);

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	@Override

-	public boolean eIsSet(int featureID) {

-		switch (featureID) {

-		case BooksPackage.BOOK__AUTHOR:

-			return AUTHOR_EDEFAULT == null ? author != null : !AUTHOR_EDEFAULT

-					.equals(author);

-		case BooksPackage.BOOK__PRICE:

-			return price != PRICE_EDEFAULT;

-		case BooksPackage.BOOK__YEAR:

-			return year != YEAR_EDEFAULT;

-		case BooksPackage.BOOK__TITLE:

-			return title != null;

-		}

-		return super.eIsSet(featureID);

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	@Override

-	public String toString() {

-		if (eIsProxy())

-			return super.toString();

-

-		StringBuffer result = new StringBuffer(super.toString());

-		result.append(" (author: ");

-		result.append(author);

-		result.append(", price: ");

-		result.append(price);

-		result.append(", year: ");

-		result.append(year);

-		result.append(')');

-		return result.toString();

-	}

-

-} // BookImpl

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/BooksFactoryImpl.java b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/BooksFactoryImpl.java
deleted file mode 100644
index 8737a5b..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/BooksFactoryImpl.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.emf.test.books.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.xwt.emf.test.books.Book;

-import org.eclipse.xwt.emf.test.books.BooksFactory;

-import org.eclipse.xwt.emf.test.books.BooksPackage;

-import org.eclipse.xwt.emf.test.books.Bookstore;

-import org.eclipse.xwt.emf.test.books.Title;

-

-/**

- * <!-- begin-user-doc --> An implementation of the model <b>Factory</b>. <!--

- * end-user-doc -->

- * 

- * @generated

- */

-public class BooksFactoryImpl extends EFactoryImpl implements BooksFactory {

-	/**

-	 * Creates the default factory implementation. <!-- begin-user-doc --> <!--

-	 * end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public static BooksFactory init() {

-		try {

-			BooksFactory theBooksFactory = (BooksFactory) EPackage.Registry.INSTANCE

-					.getEFactory("org.eclipse.xwt.emf/books.ecore");

-			if (theBooksFactory != null) {

-				return theBooksFactory;

-			}

-		} catch (Exception exception) {

-			EcorePlugin.INSTANCE.log(exception);

-		}

-		return new BooksFactoryImpl();

-	}

-

-	/**

-	 * Creates an instance of the factory. <!-- begin-user-doc --> <!--

-	 * end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public BooksFactoryImpl() {

-		super();

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	@Override

-	public EObject create(EClass eClass) {

-		switch (eClass.getClassifierID()) {

-		case BooksPackage.BOOKSTORE:

-			return createBookstore();

-		case BooksPackage.BOOK:

-			return createBook();

-		case BooksPackage.TITLE:

-			return createTitle();

-		default:

-			throw new IllegalArgumentException("The class '" + eClass.getName()

-					+ "' is not a valid classifier");

-		}

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public Bookstore createBookstore() {

-		BookstoreImpl bookstore = new BookstoreImpl();

-		return bookstore;

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public Book createBook() {

-		BookImpl book = new BookImpl();

-		return book;

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public Title createTitle() {

-		TitleImpl title = new TitleImpl();

-		return title;

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public BooksPackage getBooksPackage() {

-		return (BooksPackage) getEPackage();

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @deprecated

-	 * @generated

-	 */

-	@Deprecated

-	public static BooksPackage getPackage() {

-		return BooksPackage.eINSTANCE;

-	}

-

-} // BooksFactoryImpl

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/BooksPackageImpl.java b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/BooksPackageImpl.java
deleted file mode 100644
index fbd5d7e..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/BooksPackageImpl.java
+++ /dev/null
@@ -1,327 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.emf.test.books.impl;

-

-import org.eclipse.emf.ecore.EAttribute;

-import org.eclipse.emf.ecore.EClass;

-import org.eclipse.emf.ecore.EPackage;

-import org.eclipse.emf.ecore.EReference;

-import org.eclipse.emf.ecore.impl.EPackageImpl;

-import org.eclipse.xwt.emf.test.books.Book;

-import org.eclipse.xwt.emf.test.books.BooksFactory;

-import org.eclipse.xwt.emf.test.books.BooksPackage;

-import org.eclipse.xwt.emf.test.books.Bookstore;

-import org.eclipse.xwt.emf.test.books.Title;

-

-/**

- * <!-- begin-user-doc --> An implementation of the model <b>Package</b>. <!--

- * end-user-doc -->

- * 

- * @generated

- */

-public class BooksPackageImpl extends EPackageImpl implements BooksPackage {

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	private EClass bookstoreEClass = null;

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	private EClass bookEClass = null;

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	private EClass titleEClass = 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.xwt.emf.test.books.BooksPackage#eNS_URI

-	 * @see #init()

-	 * @generated

-	 */

-	private BooksPackageImpl() {

-		super(eNS_URI, BooksFactory.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. Simple dependencies are

-	 * satisfied by calling this method on all dependent packages before doing

-	 * anything else. This method drives initialization for interdependent

-	 * packages directly, in parallel with this package, itself.

-	 * <p>

-	 * Of this package and its interdependencies, all packages which have not

-	 * yet been registered by their URI values are first created and registered.

-	 * The packages are then initialized in two steps: meta-model objects for

-	 * all of the packages are created before any are initialized, since one

-	 * package's meta-model objects may refer to those of another.

-	 * <p>

-	 * Invocation of this method will not affect any packages that have already

-	 * been initialized. <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @see #eNS_URI

-	 * @see #createPackageContents()

-	 * @see #initializePackageContents()

-	 * @generated

-	 */

-	public static BooksPackage init() {

-		if (isInited)

-			return (BooksPackage) EPackage.Registry.INSTANCE

-					.getEPackage(BooksPackage.eNS_URI);

-

-		// Obtain or create and register package

-		BooksPackageImpl theBooksPackage = (BooksPackageImpl) (EPackage.Registry.INSTANCE

-				.getEPackage(eNS_URI) instanceof BooksPackageImpl ? EPackage.Registry.INSTANCE

-				.getEPackage(eNS_URI)

-				: new BooksPackageImpl());

-

-		isInited = true;

-

-		// Create package meta-data objects

-		theBooksPackage.createPackageContents();

-

-		// Initialize created meta-data

-		theBooksPackage.initializePackageContents();

-

-		// Mark meta-data to indicate it can't be changed

-		theBooksPackage.freeze();

-

-		return theBooksPackage;

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public EClass getBookstore() {

-		return bookstoreEClass;

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public EReference getBookstore_Books() {

-		return (EReference) bookstoreEClass.getEStructuralFeatures().get(0);

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public EClass getBook() {

-		return bookEClass;

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public EReference getBook_Title() {

-		return (EReference) bookEClass.getEStructuralFeatures().get(3);

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public EClass getTitle() {

-		return titleEClass;

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public EAttribute getTitle_Lan() {

-		return (EAttribute) titleEClass.getEStructuralFeatures().get(0);

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public EAttribute getTitle_Text() {

-		return (EAttribute) titleEClass.getEStructuralFeatures().get(1);

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public EAttribute getBook_Author() {

-		return (EAttribute) bookEClass.getEStructuralFeatures().get(0);

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public EAttribute getBook_Price() {

-		return (EAttribute) bookEClass.getEStructuralFeatures().get(1);

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public EAttribute getBook_Year() {

-		return (EAttribute) bookEClass.getEStructuralFeatures().get(2);

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public BooksFactory getBooksFactory() {

-		return (BooksFactory) getEFactoryInstance();

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	private boolean isCreated = false;

-

-	/**

-	 * Creates the meta-model objects for the package. This method is guarded to

-	 * have no affect on any invocation but its first. <!-- begin-user-doc -->

-	 * <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public void createPackageContents() {

-		if (isCreated)

-			return;

-		isCreated = true;

-

-		// Create classes and their features

-		bookstoreEClass = createEClass(BOOKSTORE);

-		createEReference(bookstoreEClass, BOOKSTORE__BOOKS);

-

-		bookEClass = createEClass(BOOK);

-		createEAttribute(bookEClass, BOOK__AUTHOR);

-		createEAttribute(bookEClass, BOOK__PRICE);

-		createEAttribute(bookEClass, BOOK__YEAR);

-		createEReference(bookEClass, BOOK__TITLE);

-

-		titleEClass = createEClass(TITLE);

-		createEAttribute(titleEClass, TITLE__LAN);

-		createEAttribute(titleEClass, TITLE__TEXT);

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	private boolean isInitialized = false;

-

-	/**

-	 * Complete the initialization of the package and its meta-model. This

-	 * method is guarded to have no affect on any invocation but its first. <!--

-	 * begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public void initializePackageContents() {

-		if (isInitialized)

-			return;

-		isInitialized = true;

-

-		// Initialize package

-		setName(eNAME);

-		setNsPrefix(eNS_PREFIX);

-		setNsURI(eNS_URI);

-

-		// Create type parameters

-

-		// Set bounds for type parameters

-

-		// Add supertypes to classes

-

-		// Initialize classes and features; add operations and parameters

-		initEClass(bookstoreEClass, Bookstore.class, "Bookstore", !IS_ABSTRACT,

-				!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

-		initEReference(getBookstore_Books(), this.getBook(), null, "books",

-				null, 1, -1, Bookstore.class, !IS_TRANSIENT, !IS_VOLATILE,

-				IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,

-				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

-

-		initEClass(bookEClass, Book.class, "Book", !IS_ABSTRACT, !IS_INTERFACE,

-				IS_GENERATED_INSTANCE_CLASS);

-		initEAttribute(getBook_Author(), ecorePackage.getEString(), "author",

-				null, 0, 1, Book.class, !IS_TRANSIENT, !IS_VOLATILE,

-				IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,

-				IS_ORDERED);

-		initEAttribute(getBook_Price(), ecorePackage.getEDouble(), "price",

-				null, 0, 1, Book.class, !IS_TRANSIENT, !IS_VOLATILE,

-				IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,

-				IS_ORDERED);

-		initEAttribute(getBook_Year(), ecorePackage.getELong(), "year", null,

-				0, 1, Book.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,

-				!IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

-		initEReference(getBook_Title(), this.getTitle(), null, "title", null,

-				0, 1, Book.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,

-				IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,

-				!IS_DERIVED, IS_ORDERED);

-

-		initEClass(titleEClass, Title.class, "Title", !IS_ABSTRACT,

-				!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

-		initEAttribute(getTitle_Lan(), ecorePackage.getEString(), "lan", null,

-				0, 1, Title.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,

-				!IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

-		initEAttribute(getTitle_Text(), ecorePackage.getEString(), "text",

-				null, 0, 1, Title.class, !IS_TRANSIENT, !IS_VOLATILE,

-				IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,

-				IS_ORDERED);

-

-		// Create resource

-		createResource(eNS_URI);

-	}

-

-} // BooksPackageImpl

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/BookstoreImpl.java b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/BookstoreImpl.java
deleted file mode 100644
index c3205ab..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/BookstoreImpl.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.emf.test.books.impl;

-

-import java.util.Collection;

-

-import org.eclipse.emf.common.notify.NotificationChain;

-import org.eclipse.emf.common.util.EList;

-import org.eclipse.emf.ecore.EClass;

-import org.eclipse.emf.ecore.InternalEObject;

-import org.eclipse.emf.ecore.impl.EObjectImpl;

-import org.eclipse.emf.ecore.util.EObjectContainmentEList;

-import org.eclipse.emf.ecore.util.InternalEList;

-import org.eclipse.xwt.emf.test.books.Book;

-import org.eclipse.xwt.emf.test.books.BooksPackage;

-import org.eclipse.xwt.emf.test.books.Bookstore;

-

-/**

- * <!-- begin-user-doc --> An implementation of the model object '

- * <em><b>Bookstore</b></em>'. <!-- end-user-doc -->

- * <p>

- * The following features are implemented:

- * <ul>

- * <li>{@link org.eclipse.xwt.emf.test.books.impl.BookstoreImpl#getBooks <em>

- * Books</em>}</li>

- * </ul>

- * </p>

- * 

- * @generated

- */

-public class BookstoreImpl extends EObjectImpl implements Bookstore {

-	/**

-	 * The cached value of the '{@link #getBooks() <em>Books</em>}' containment

-	 * reference list. <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @see #getBooks()

-	 * @generated

-	 * @ordered

-	 */

-	protected EList<Book> books;

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	protected BookstoreImpl() {

-		super();

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	@Override

-	protected EClass eStaticClass() {

-		return BooksPackage.Literals.BOOKSTORE;

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public EList<Book> getBooks() {

-		if (books == null) {

-			books = new EObjectContainmentEList<Book>(Book.class, this,

-					BooksPackage.BOOKSTORE__BOOKS);

-		}

-		return books;

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	@Override

-	public NotificationChain eInverseRemove(InternalEObject otherEnd,

-			int featureID, NotificationChain msgs) {

-		switch (featureID) {

-		case BooksPackage.BOOKSTORE__BOOKS:

-			return ((InternalEList<?>) getBooks()).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 BooksPackage.BOOKSTORE__BOOKS:

-			return getBooks();

-		}

-		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 BooksPackage.BOOKSTORE__BOOKS:

-			getBooks().clear();

-			getBooks().addAll((Collection<? extends Book>) newValue);

-			return;

-		}

-		super.eSet(featureID, newValue);

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	@Override

-	public void eUnset(int featureID) {

-		switch (featureID) {

-		case BooksPackage.BOOKSTORE__BOOKS:

-			getBooks().clear();

-			return;

-		}

-		super.eUnset(featureID);

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	@Override

-	public boolean eIsSet(int featureID) {

-		switch (featureID) {

-		case BooksPackage.BOOKSTORE__BOOKS:

-			return books != null && !books.isEmpty();

-		}

-		return super.eIsSet(featureID);

-	}

-

-} // BookstoreImpl

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/TitleImpl.java b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/TitleImpl.java
deleted file mode 100644
index 6e3e9b1..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/TitleImpl.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.emf.test.books.impl;

-

-import org.eclipse.emf.common.notify.Notification;

-import org.eclipse.emf.ecore.EClass;

-import org.eclipse.emf.ecore.impl.ENotificationImpl;

-import org.eclipse.emf.ecore.impl.EObjectImpl;

-import org.eclipse.xwt.emf.test.books.BooksPackage;

-import org.eclipse.xwt.emf.test.books.Title;

-

-/**

- * <!-- begin-user-doc --> An implementation of the model object '

- * <em><b>Title</b></em>'. <!-- end-user-doc -->

- * <p>

- * The following features are implemented:

- * <ul>

- * <li>{@link org.eclipse.xwt.emf.test.books.impl.TitleImpl#getLan <em>Lan

- * </em>}</li>

- * <li>{@link org.eclipse.xwt.emf.test.books.impl.TitleImpl#getText <em>Text

- * </em>}</li>

- * </ul>

- * </p>

- * 

- * @generated

- */

-public class TitleImpl extends EObjectImpl implements Title {

-	/**

-	 * The default value of the '{@link #getLan() <em>Lan</em>}' attribute. <!--

-	 * begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @see #getLan()

-	 * @generated

-	 * @ordered

-	 */

-	protected static final String LAN_EDEFAULT = null;

-

-	/**

-	 * The cached value of the '{@link #getLan() <em>Lan</em>}' attribute. <!--

-	 * begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @see #getLan()

-	 * @generated

-	 * @ordered

-	 */

-	protected String lan = LAN_EDEFAULT;

-

-	/**

-	 * The default value of the '{@link #getText() <em>Text</em>}' attribute.

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @see #getText()

-	 * @generated

-	 * @ordered

-	 */

-	protected static final String TEXT_EDEFAULT = null;

-

-	/**

-	 * The cached value of the '{@link #getText() <em>Text</em>}' attribute.

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @see #getText()

-	 * @generated

-	 * @ordered

-	 */

-	protected String text = TEXT_EDEFAULT;

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	protected TitleImpl() {

-		super();

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	@Override

-	protected EClass eStaticClass() {

-		return BooksPackage.Literals.TITLE;

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public String getLan() {

-		return lan;

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public void setLan(String newLan) {

-		String oldLan = lan;

-		lan = newLan;

-		if (eNotificationRequired())

-			eNotify(new ENotificationImpl(this, Notification.SET,

-					BooksPackage.TITLE__LAN, oldLan, lan));

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public String getText() {

-		return text;

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public void setText(String newText) {

-		String oldText = text;

-		text = newText;

-		if (eNotificationRequired())

-			eNotify(new ENotificationImpl(this, Notification.SET,

-					BooksPackage.TITLE__TEXT, oldText, text));

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	@Override

-	public Object eGet(int featureID, boolean resolve, boolean coreType) {

-		switch (featureID) {

-		case BooksPackage.TITLE__LAN:

-			return getLan();

-		case BooksPackage.TITLE__TEXT:

-			return getText();

-		}

-		return super.eGet(featureID, resolve, coreType);

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	@Override

-	public void eSet(int featureID, Object newValue) {

-		switch (featureID) {

-		case BooksPackage.TITLE__LAN:

-			setLan((String) newValue);

-			return;

-		case BooksPackage.TITLE__TEXT:

-			setText((String) newValue);

-			return;

-		}

-		super.eSet(featureID, newValue);

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	@Override

-	public void eUnset(int featureID) {

-		switch (featureID) {

-		case BooksPackage.TITLE__LAN:

-			setLan(LAN_EDEFAULT);

-			return;

-		case BooksPackage.TITLE__TEXT:

-			setText(TEXT_EDEFAULT);

-			return;

-		}

-		super.eUnset(featureID);

-	}

-

-	/**

-	 * <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	@Override

-	public boolean eIsSet(int featureID) {

-		switch (featureID) {

-		case BooksPackage.TITLE__LAN:

-			return LAN_EDEFAULT == null ? lan != null : !LAN_EDEFAULT

-					.equals(lan);

-		case BooksPackage.TITLE__TEXT:

-			return TEXT_EDEFAULT == null ? text != null : !TEXT_EDEFAULT

-					.equals(text);

-		}

-		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(" (lan: ");

-		result.append(lan);

-		result.append(", text: ");

-		result.append(text);

-		result.append(')');

-		return result.toString();

-	}

-

-} // TitleImpl

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/util/BooksAdapterFactory.java b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/util/BooksAdapterFactory.java
deleted file mode 100644
index 960cce1..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/util/BooksAdapterFactory.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.emf.test.books.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.xwt.emf.test.books.Book;

-import org.eclipse.xwt.emf.test.books.BooksPackage;

-import org.eclipse.xwt.emf.test.books.Bookstore;

-import org.eclipse.xwt.emf.test.books.Title;

-

-/**

- * <!-- 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.xwt.emf.test.books.BooksPackage

- * @generated

- */

-public class BooksAdapterFactory extends AdapterFactoryImpl {

-	/**

-	 * The cached model package. <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	protected static BooksPackage modelPackage;

-

-	/**

-	 * Creates an instance of the adapter factory. <!-- begin-user-doc --> <!--

-	 * end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public BooksAdapterFactory() {

-		if (modelPackage == null) {

-			modelPackage = BooksPackage.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 BooksSwitch<Adapter> modelSwitch = new BooksSwitch<Adapter>() {

-		@Override

-		public Adapter caseBookstore(Bookstore object) {

-			return createBookstoreAdapter();

-		}

-

-		@Override

-		public Adapter caseBook(Book object) {

-			return createBookAdapter();

-		}

-

-		@Override

-		public Adapter caseTitle(Title object) {

-			return createTitleAdapter();

-		}

-

-		@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.xwt.emf.test.books.Bookstore <em>Bookstore</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.xwt.emf.test.books.Bookstore

-	 * @generated

-	 */

-	public Adapter createBookstoreAdapter() {

-		return null;

-	}

-

-	/**

-	 * Creates a new adapter for an object of class '

-	 * {@link org.eclipse.xwt.emf.test.books.Book <em>Book</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.xwt.emf.test.books.Book

-	 * @generated

-	 */

-	public Adapter createBookAdapter() {

-		return null;

-	}

-

-	/**

-	 * Creates a new adapter for an object of class '

-	 * {@link org.eclipse.xwt.emf.test.books.Title <em>Title</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.xwt.emf.test.books.Title

-	 * @generated

-	 */

-	public Adapter createTitleAdapter() {

-		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;

-	}

-

-} // BooksAdapterFactory

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/util/BooksSwitch.java b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/util/BooksSwitch.java
deleted file mode 100644
index f0193c1..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/util/BooksSwitch.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.emf.test.books.util;

-

-import java.util.List;

-

-import org.eclipse.emf.ecore.EClass;

-import org.eclipse.emf.ecore.EObject;

-import org.eclipse.xwt.emf.test.books.Book;

-import org.eclipse.xwt.emf.test.books.BooksPackage;

-import org.eclipse.xwt.emf.test.books.Bookstore;

-import org.eclipse.xwt.emf.test.books.Title;

-

-/**

- * <!-- 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.xwt.emf.test.books.BooksPackage

- * @generated

- */

-public class BooksSwitch<T> {

-	/**

-	 * The cached model package <!-- begin-user-doc --> <!-- end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	protected static BooksPackage modelPackage;

-

-	/**

-	 * Creates an instance of the switch. <!-- begin-user-doc --> <!--

-	 * end-user-doc -->

-	 * 

-	 * @generated

-	 */

-	public BooksSwitch() {

-		if (modelPackage == null) {

-			modelPackage = BooksPackage.eINSTANCE;

-		}

-	}

-

-	/**

-	 * 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

-	 */

-	public T doSwitch(EObject theEObject) {

-		return doSwitch(theEObject.eClass(), theEObject);

-	}

-

-	/**

-	 * 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

-	 */

-	protected T doSwitch(EClass theEClass, EObject theEObject) {

-		if (theEClass.eContainer() == modelPackage) {

-			return doSwitch(theEClass.getClassifierID(), theEObject);

-		} else {

-			List<EClass> eSuperTypes = theEClass.getESuperTypes();

-			return eSuperTypes.isEmpty() ? defaultCase(theEObject) : doSwitch(

-					eSuperTypes.get(0), theEObject);

-		}

-	}

-

-	/**

-	 * 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

-	 */

-	protected T doSwitch(int classifierID, EObject theEObject) {

-		switch (classifierID) {

-		case BooksPackage.BOOKSTORE: {

-			Bookstore bookstore = (Bookstore) theEObject;

-			T result = caseBookstore(bookstore);

-			if (result == null)

-				result = defaultCase(theEObject);

-			return result;

-		}

-		case BooksPackage.BOOK: {

-			Book book = (Book) theEObject;

-			T result = caseBook(book);

-			if (result == null)

-				result = defaultCase(theEObject);

-			return result;

-		}

-		case BooksPackage.TITLE: {

-			Title title = (Title) theEObject;

-			T result = caseTitle(title);

-			if (result == null)

-				result = defaultCase(theEObject);

-			return result;

-		}

-		default:

-			return defaultCase(theEObject);

-		}

-	}

-

-	/**

-	 * Returns the result of interpreting the object as an instance of '

-	 * <em>Bookstore</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>Bookstore</em>'.

-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)

-	 * @generated

-	 */

-	public T caseBookstore(Bookstore object) {

-		return null;

-	}

-

-	/**

-	 * Returns the result of interpreting the object as an instance of '

-	 * <em>Book</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>Book</em>'.

-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)

-	 * @generated

-	 */

-	public T caseBook(Book object) {

-		return null;

-	}

-

-	/**

-	 * Returns the result of interpreting the object as an instance of '

-	 * <em>Title</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>Title</em>'.

-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)

-	 * @generated

-	 */

-	public T caseTitle(Title 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

-	 */

-	public T defaultCase(EObject object) {

-		return null;

-	}

-

-} // BooksSwitch

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/masterdetail/EMFDataProvider_MasterDetail.java b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/masterdetail/EMFDataProvider_MasterDetail.java
deleted file mode 100644
index 694fb92..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/masterdetail/EMFDataProvider_MasterDetail.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 Eclipse XWT Project and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Erdal Karaca - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.emf.test.masterdetail;
-
-import java.net.URL;
-
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.emf.EMFBinding;
-import org.eclipse.xwt.emf.test.books.Book;
-import org.eclipse.xwt.emf.test.books.BooksFactory;
-import org.eclipse.xwt.emf.test.books.Bookstore;
-import org.eclipse.xwt.emf.test.books.Title;
-
-public class EMFDataProvider_MasterDetail {
-	public static void main(String[] args) {
-		EMFBinding.initialze();
-		URL url = EMFDataProvider_MasterDetail.class
-				.getResource(EMFDataProvider_MasterDetail.class.getSimpleName()
-						+ IConstants.XWT_EXTENSION_SUFFIX);
-		try {
-			XWT.open(url, createBookstore());
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	private static Bookstore createBookstore() {
-		Bookstore bookstore = BooksFactory.eINSTANCE.createBookstore();
-
-		for (int i = 0; i < 10; i++) {
-			Book book = BooksFactory.eINSTANCE.createBook();
-			Title title = BooksFactory.eINSTANCE.createTitle();
-			title.setText("Book " + i);
-			book.setTitle(title);
-			book.setPrice(Math.random() * 100);
-			book.setAuthor("Author " + i);
-			bookstore.getBooks().add(book);
-		}
-
-		return bookstore;
-	}
-}
diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/Author.java b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/Author.java
deleted file mode 100644
index 4487f48..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/Author.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.emf.test.modelmix;

-

-import org.eclipse.emf.ecore.EObject;

-

-public class Author {

-	private String name;

-	private EObject content;

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-

-	public EObject getContent() {

-		return content;

-	}

-

-	public void setContent(EObject content) {

-		this.content = content;

-	}

-}

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/EMFTestCase.java b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/EMFTestCase.java
deleted file mode 100644
index 4da945d..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/EMFTestCase.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.emf.test.modelmix;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.emf.test.XWTTestCase;

-

-public class EMFTestCase extends XWTTestCase {

-	public void testEMFDataProvider_DataContext() {

-		URL url = EMFTestCase.class

-				.getResource(POJO_EMF_DataContext.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, POJO_EMF_DataContext.createAuthor(), null,

-				new Runnable() {

-					public void run() {

-						assertText("titleText", "Harry Potter");

-						assertText("authorText", "Neal Stephenson");

-					}

-				});

-	}

-

-	public void testEMFDataProvider_Path() {

-		URL url = EMFTestCase.class

-				.getResource(POJO_EMF_Path.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, POJO_EMF_Path.createAuthor(), null,

-				new Runnable() {

-					public void run() {

-						assertText("titleText", "Harry Potter");

-						assertText("authorText", "Neal Stephenson");

-					}

-				});

-	}

-}

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/POJO_EMF_DataContext.java b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/POJO_EMF_DataContext.java
deleted file mode 100644
index 656190c..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/POJO_EMF_DataContext.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.emf.test.modelmix;

-

-import java.net.URL;

-

-import org.eclipse.emf.ecore.EAttribute;

-import org.eclipse.emf.ecore.EClass;

-import org.eclipse.emf.ecore.EObject;

-import org.eclipse.emf.ecore.EPackage;

-import org.eclipse.emf.ecore.EReference;

-import org.eclipse.emf.ecore.EcoreFactory;

-import org.eclipse.emf.ecore.EcorePackage;

-import org.eclipse.emf.ecore.util.EcoreUtil;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.emf.EMFBinding;

-import org.eclipse.xwt.emf.EMFDataModelService;

-import org.eclipse.xwt.emf.EMFDataProvider;

-import org.eclipse.xwt.emf.EMFDataProviderFactory;

-

-/**

- * @author yyang (yves.yang@soyatec.com)

- */

-public class POJO_EMF_DataContext {

-	static EClass bookClass;

-	

-	public static void main(String[] args) {

-		EMFBinding.initialze();

-		XWT.addDataProviderFactory(EMFDataProviderFactory.EMF_DATA_PROVIDER_FACTORY, new EMFDataProviderFactory() {

-			@Override

-			protected EMFDataProvider createEMFDataProvider() {

-				return new EMFDataProvider(new EMFDataModelService() {

-					@Override

-					public Object loadModelType(String className) {

-						if (className.equals("Book")) {

-							return bookClass;

-						}

-						return super.loadModelType(className);

-					}

-				});

-			}

-		});

-		

-		URL url = POJO_EMF_DataContext.class

-				.getResource(POJO_EMF_DataContext.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url, createAuthor());

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected static Author createAuthor() {

-		Author author = new Author();

-		author.setContent(createBook());

-		author.setName("Author");

-		return author;

-	}

-		

-	protected static EObject createBook() {

-		EPackage ePackage = EcoreFactory.eINSTANCE.createEPackage();

-		ePackage.setName("test");

-

-		bookClass = EcoreFactory.eINSTANCE.createEClass();

-		ePackage.getEClassifiers().add(bookClass);

-		bookClass.setName("Book");

-

-		EAttribute authorFeature = EcoreFactory.eINSTANCE.createEAttribute();

-		authorFeature.setName("author");

-		authorFeature.setEType(EcorePackage.eINSTANCE.getEString());

-		bookClass.getEStructuralFeatures().add(authorFeature);

-

-		EAttribute priceFeature = EcoreFactory.eINSTANCE.createEAttribute();

-		priceFeature.setName("price");

-		priceFeature.setEType(EcorePackage.eINSTANCE.getEDouble());

-		bookClass.getEStructuralFeatures().add(priceFeature);

-

-		EAttribute yearFeature = EcoreFactory.eINSTANCE.createEAttribute();

-		yearFeature.setName("year");

-		yearFeature.setEType(EcorePackage.eINSTANCE.getEInt());

-		bookClass.getEStructuralFeatures().add(yearFeature);

-

-		EClass titleClass = EcoreFactory.eINSTANCE.createEClass();

-		ePackage.getEClassifiers().add(titleClass);

-		titleClass.setName("Title");

-

-		EAttribute lanFeature = EcoreFactory.eINSTANCE.createEAttribute();

-		lanFeature.setName("lan");

-		lanFeature.setEType(EcorePackage.eINSTANCE.getEString());

-		titleClass.getEStructuralFeatures().add(lanFeature);

-

-		EAttribute textFeature = EcoreFactory.eINSTANCE.createEAttribute();

-		textFeature.setName("text");

-		textFeature.setEType(EcorePackage.eINSTANCE.getEString());

-		titleClass.getEStructuralFeatures().add(textFeature);

-

-		EReference titleFeature = EcoreFactory.eINSTANCE.createEReference();

-		titleFeature.setName("title");

-		titleFeature.setEType(titleClass);

-		bookClass.getEStructuralFeatures().add(titleFeature);

-

-		EObject harryPotter = EcoreUtil.create(bookClass);

-

-		EObject title = EcoreUtil.create(titleClass);

-

-		title.eSet(lanFeature, "en");

-		title.eSet(textFeature, "Harry Potter");

-		harryPotter.eSet(titleFeature, title);

-		harryPotter.eSet(authorFeature, "Neal Stephenson");

-		harryPotter.eSet(priceFeature, 29.99);

-		harryPotter.eSet(yearFeature, 2005);

-

-		return harryPotter;

-	}

-}

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/POJO_EMF_DataContext.xwt b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/POJO_EMF_DataContext.xwt
deleted file mode 100644
index d8b8441..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/POJO_EMF_DataContext.xwt
+++ /dev/null
@@ -1,40 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.emf.test.books"

-	Size="400, 300">

-	<Composite.layout>

-		<FillLayout/>

-	</Composite.layout>

-    <Composite dataContext="{Binding path=content}">

-		<Composite.layout>

-			<GridLayout numColumns="3"/>

-		</Composite.layout>

-		

-		<Label text="Name:"/>

-		<Text name="titleText" x:style="BORDER" text="{Binding Path=title.text}">

-			<Text.layoutData>

-				<GridData horizontalAlignment="FILL"

-	         		grabExcessHorizontalSpace="true"/>

-			</Text.layoutData>

-		</Text>

-		<Text name="authorText" x:style="BORDER" text="{Binding Path=author}">

-			<Text.layoutData>

-				<GridData horizontalAlignment="FILL"

-	         		grabExcessHorizontalSpace="true"/>

-			</Text.layoutData>

-		</Text>

-		<Label text="Copy:"/>

-		<Text x:style="BORDER"  text="{Binding Path=title.text}">

-			<Text.layoutData>

-				<GridData horizontalAlignment="FILL"

-	         		grabExcessHorizontalSpace="true"/>

-			</Text.layoutData>

-		</Text>

-		<Text x:style="BORDER" text="{Binding Path=author}">

-			<Text.layoutData>

-				<GridData horizontalAlignment="FILL"

-	         		grabExcessHorizontalSpace="true"/>

-			</Text.layoutData>

-		</Text>

-   </Composite>

-</Composite>

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/POJO_EMF_Path.java b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/POJO_EMF_Path.java
deleted file mode 100644
index f15dacf..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/POJO_EMF_Path.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.emf.test.modelmix;

-

-import java.net.URL;

-

-import org.eclipse.emf.ecore.EAttribute;

-import org.eclipse.emf.ecore.EClass;

-import org.eclipse.emf.ecore.EObject;

-import org.eclipse.emf.ecore.EPackage;

-import org.eclipse.emf.ecore.EReference;

-import org.eclipse.emf.ecore.EcoreFactory;

-import org.eclipse.emf.ecore.EcorePackage;

-import org.eclipse.emf.ecore.util.EcoreUtil;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.emf.EMFBinding;

-import org.eclipse.xwt.emf.EMFDataModelService;

-import org.eclipse.xwt.emf.EMFDataProvider;

-import org.eclipse.xwt.emf.EMFDataProviderFactory;

-

-/**

- * @author yyang (yves.yang@soyatec.com)

- */

-public class POJO_EMF_Path {

-	static EClass bookClass;

-	

-	static {

-		EMFBinding.initialze();

-		XWT.addDataProviderFactory(EMFDataProviderFactory.EMF_DATA_PROVIDER_FACTORY, new EMFDataProviderFactory() {

-			@Override

-			protected EMFDataProvider createEMFDataProvider() {

-				return new EMFDataProvider(new EMFDataModelService() {

-					@Override

-					public Object loadModelType(String className) {

-						if (className.equals("Book")) {

-							return bookClass;

-						}

-						return super.loadModelType(className);

-					}

-				});

-			}

-		});

-	}

-

-	public static void main(String[] args) {

-		URL url = POJO_EMF_Path.class

-				.getResource(POJO_EMF_Path.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url, createAuthor());

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected static Author createAuthor() {

-		Author author = new Author();

-		author.setContent(createBook());

-		author.setName("Author");

-		return author;

-	}

-		

-	protected static EObject createBook() {

-		EPackage ePackage = EcoreFactory.eINSTANCE.createEPackage();

-		ePackage.setName("test");

-

-		bookClass = EcoreFactory.eINSTANCE.createEClass();

-		ePackage.getEClassifiers().add(bookClass);

-		bookClass.setName("Book");

-

-		EAttribute authorFeature = EcoreFactory.eINSTANCE.createEAttribute();

-		authorFeature.setName("author");

-		authorFeature.setEType(EcorePackage.eINSTANCE.getEString());

-		bookClass.getEStructuralFeatures().add(authorFeature);

-

-		EAttribute priceFeature = EcoreFactory.eINSTANCE.createEAttribute();

-		priceFeature.setName("price");

-		priceFeature.setEType(EcorePackage.eINSTANCE.getEDouble());

-		bookClass.getEStructuralFeatures().add(priceFeature);

-

-		EAttribute yearFeature = EcoreFactory.eINSTANCE.createEAttribute();

-		yearFeature.setName("year");

-		yearFeature.setEType(EcorePackage.eINSTANCE.getEInt());

-		bookClass.getEStructuralFeatures().add(yearFeature);

-

-		EClass titleClass = EcoreFactory.eINSTANCE.createEClass();

-		ePackage.getEClassifiers().add(titleClass);

-		titleClass.setName("Title");

-

-		EAttribute lanFeature = EcoreFactory.eINSTANCE.createEAttribute();

-		lanFeature.setName("lan");

-		lanFeature.setEType(EcorePackage.eINSTANCE.getEString());

-		titleClass.getEStructuralFeatures().add(lanFeature);

-

-		EAttribute textFeature = EcoreFactory.eINSTANCE.createEAttribute();

-		textFeature.setName("text");

-		textFeature.setEType(EcorePackage.eINSTANCE.getEString());

-		titleClass.getEStructuralFeatures().add(textFeature);

-

-		EReference titleFeature = EcoreFactory.eINSTANCE.createEReference();

-		titleFeature.setName("title");

-		titleFeature.setEType(titleClass);

-		bookClass.getEStructuralFeatures().add(titleFeature);

-

-		EObject harryPotter = EcoreUtil.create(bookClass);

-

-		EObject title = EcoreUtil.create(titleClass);

-

-		title.eSet(lanFeature, "en");

-		title.eSet(textFeature, "Harry Potter");

-		harryPotter.eSet(titleFeature, title);

-		harryPotter.eSet(authorFeature, "Neal Stephenson");

-		harryPotter.eSet(priceFeature, 29.99);

-		harryPotter.eSet(yearFeature, 2005);

-

-		return harryPotter;

-	}

-}

diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/POJO_EMF_Path.xwt b/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/POJO_EMF_Path.xwt
deleted file mode 100644
index 02f4c7b..0000000
--- a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/POJO_EMF_Path.xwt
+++ /dev/null
@@ -1,40 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.emf.test.books"

-	Size="400, 300">

-	<Composite.layout>

-		<FillLayout/>

-	</Composite.layout>

-    <Composite>

-		<Composite.layout>

-			<GridLayout numColumns="3"/>

-		</Composite.layout>

-		

-		<Label text="Name:"/>

-		<Text name="titleText" x:style="BORDER" text="{Binding Path=content.(Book.title).text}">

-			<Text.layoutData>

-				<GridData horizontalAlignment="FILL"

-	         		grabExcessHorizontalSpace="true"/>

-			</Text.layoutData>

-		</Text>

-		<Text name="authorText" x:style="BORDER" text="{Binding Path=content.(Book.author)}">

-			<Text.layoutData>

-				<GridData horizontalAlignment="FILL"

-	         		grabExcessHorizontalSpace="true"/>

-			</Text.layoutData>

-		</Text>

-		<Label text="Copy:"/>

-		<Text x:style="BORDER"  text="{Binding Path=content.(Book.title).text}">

-			<Text.layoutData>

-				<GridData horizontalAlignment="FILL"

-	         		grabExcessHorizontalSpace="true"/>

-			</Text.layoutData>

-		</Text>

-		<Text x:style="BORDER" text="{Binding Path=content.(Book.author)}">

-			<Text.layoutData>

-				<GridData horizontalAlignment="FILL"

-	         		grabExcessHorizontalSpace="true"/>

-			</Text.layoutData>

-		</Text>

-   </Composite>

-</Composite>

diff --git a/org.eclipse.xwt.emf.test/test.xml b/org.eclipse.xwt.emf.test/test.xml
deleted file mode 100644
index 00f8e93..0000000
--- a/org.eclipse.xwt.emf.test/test.xml
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.xwt.emf/.classpath b/org.eclipse.xwt.emf/.classpath
deleted file mode 100644
index 2d1a430..0000000
--- a/org.eclipse.xwt.emf/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>

-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

-	<classpathentry kind="src" path="src"/>

-	<classpathentry kind="output" path="bin"/>

-</classpath>

diff --git a/org.eclipse.xwt.emf/.project b/org.eclipse.xwt.emf/.project
deleted file mode 100644
index 3ccf078..0000000
--- a/org.eclipse.xwt.emf/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.xwt.emf</name>

-	<comment></comment>

-	<projects>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.jdt.core.javabuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.ManifestBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.SchemaBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.pde.PluginNature</nature>

-		<nature>org.eclipse.jdt.core.javanature</nature>

-	</natures>

-</projectDescription>

diff --git a/org.eclipse.xwt.emf/META-INF/MANIFEST.MF b/org.eclipse.xwt.emf/META-INF/MANIFEST.MF
deleted file mode 100644
index d8042c5..0000000
--- a/org.eclipse.xwt.emf/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,15 +0,0 @@
-Manifest-Version: 1.0

-Bundle-ManifestVersion: 2

-Bundle-Name: %Bundle-Name

-Bundle-SymbolicName: org.eclipse.xwt.emf

-Bundle-Version: 1.4.0.qualifier

-Bundle-Activator: org.eclipse.xwt.emf.Activator

-Bundle-Vendor: %Bundle-Vendor

-Require-Bundle: org.eclipse.core.runtime,

- org.eclipse.xwt;bundle-version="0.9.0";visibility:=reexport,

- org.eclipse.emf.databinding;bundle-version="1.1.0",

- org.eclipse.swt;bundle-version="3.4.0",

- org.eclipse.core.databinding.property;bundle-version="1.1.0",

- org.eclipse.emf.edit;bundle-version="2.9.0"

-Bundle-RequiredExecutionEnvironment: J2SE-1.5

-Export-Package: org.eclipse.xwt.emf

diff --git a/org.eclipse.xwt.emf/OSGI-INF/l10n/bundle.properties b/org.eclipse.xwt.emf/OSGI-INF/l10n/bundle.properties
deleted file mode 100644
index 4dd628e..0000000
--- a/org.eclipse.xwt.emf/OSGI-INF/l10n/bundle.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-###############################################################################

-# Copyright (c) 2010 IBM Corporation and others.

-# All rights reserved. This program and the accompanying materials

-# are made available under the terms of the Eclipse Public License v1.0

-# which accompanies this distribution, and is available at

-# http://www.eclipse.org/legal/epl-v10.html

-#

-# Contributors:

-#     IBM Corporation - initial API and implementation

-###############################################################################

-#******************************************************************************

-# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

-# All rights reserved. This program and the accompanying materials

-# are made available under the terms of the Eclipse Public License v1.0

-# which accompanies this distribution, and is available at

-# http://www.eclipse.org/legal/epl-v10.html

-# 

-# Contributors:

-#     Soyatec - initial API and implementation

-#******************************************************************************/

-#Properties file for org.eclipse.xwt.emf

-Bundle-Vendor = Eclipse XWT

-Bundle-Name = XWT EMF
\ No newline at end of file
diff --git a/org.eclipse.xwt.emf/about.html b/org.eclipse.xwt.emf/about.html
deleted file mode 100644
index c258ef5..0000000
--- a/org.eclipse.xwt.emf/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!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 5, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.emf/build.properties b/org.eclipse.xwt.emf/build.properties
deleted file mode 100644
index 835b579..0000000
--- a/org.eclipse.xwt.emf/build.properties
+++ /dev/null
@@ -1,25 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               OSGI-INF/l10n/bundle.properties,\
-               about.html,\
-               notice.html
-src.includes = .classpath,\
-               .project,\
-               META-INF/,\
-               OSGI-INF/,\
-               about.html,\
-               build.properties,\
-               src/,\
-               notice.html
diff --git a/org.eclipse.xwt.emf/notice.html b/org.eclipse.xwt.emf/notice.html
deleted file mode 100644
index c3d34c3..0000000
--- a/org.eclipse.xwt.emf/notice.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 9, 2014</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/org.eclipse.xwt.emf/pom.xml b/org.eclipse.xwt.emf/pom.xml
deleted file mode 100755
index 47c8ea8..0000000
--- a/org.eclipse.xwt.emf/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt.emf</artifactId>
-	<version>1.4.0-SNAPSHOT</version>
-	<packaging>eclipse-plugin</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/Activator.java b/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/Activator.java
deleted file mode 100644
index 1e197fc..0000000
--- a/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/Activator.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.emf;

-

-import org.eclipse.core.runtime.Plugin;

-import org.osgi.framework.BundleContext;

-

-/**

- * The activator class controls the plug-in life cycle

- */

-public class Activator extends Plugin {

-

-	// The plug-in ID

-	public static final String PLUGIN_ID = "org.eclipse.xwt.emf";

-

-	// The shared instance

-	private static Activator plugin;

-

-	/**

-	 * The constructor

-	 */

-	public Activator() {

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.core.runtime.Plugins#start(org.osgi.framework.BundleContext)

-	 */

-	public void start(BundleContext context) throws Exception {

-		super.start(context);

-		plugin = this;

-		EMFBinding.initialze();

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)

-	 */

-	public void stop(BundleContext context) throws Exception {

-		plugin = null;

-		super.stop(context);

-	}

-

-	/**

-	 * Returns the shared instance

-	 * 

-	 * @return the shared instance

-	 */

-	public static Activator getDefault() {

-		return plugin;

-	}

-}

diff --git a/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFBinding.java b/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFBinding.java
deleted file mode 100644
index 846ee1f..0000000
--- a/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFBinding.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *  

- * Contributors:                                                               *  

- *     Soyatec - initial API and implementation                                * 

- *******************************************************************************/

-package org.eclipse.xwt.emf;

-

-import org.eclipse.emf.ecore.EObject;

-import org.eclipse.emf.ecore.EReference;

-import org.eclipse.emf.ecore.EStructuralFeature;

-import org.eclipse.emf.ecore.util.EcoreUtil;

-import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;

-import org.eclipse.emf.edit.domain.EditingDomain;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.emf.converters.StringToURI;

-import org.eclipse.swt.widgets.Button;

-/**

- * @author jliu jin.liu@soyatec.com

- */

-public class EMFBinding {

-	public static void initialze() {

-		XWT.registerMetaclass(EMFDataProvider.class);

-		XWT.registerConvertor(StringToURI.instance);

-		XWT.addDataProviderFactory(EMFDataProviderFactory.EMF_DATA_PROVIDER_FACTORY, new EMFDataProviderFactory());

-	}

-

-	public static EObject getEObject(EObject eObj, String featureName) {

-		if (eObj == null) {

-			return null;

-		}

-		EditingDomain editingDomain = AdapterFactoryEditingDomain.getEditingDomainFor(eObj);

-		if (featureName != null) {

-			int index = featureName.indexOf(".");

-			while (eObj != null && index != -1) {

-				String prefix = featureName.substring(0, index);

-				eObj = getEObject(eObj, prefix);

-				featureName = featureName.substring(index + 1);

-				index = featureName.indexOf(".");

-			}

-			index = featureName.indexOf(".");

-			if (eObj != null && index == -1) {

-				EStructuralFeature sf = EMFHelper.findFeature(eObj.eClass(), featureName);

-				if (sf != null) {

-					Object newValue = eObj.eGet(sf);

-					if (newValue == null && sf instanceof EReference) {

-						EObject newEObj = EcoreUtil.create(((EReference) sf)

-								.getEReferenceType());

-						eObj.eSet(sf, newEObj);

-						// use EditingDomain 

-						eObj = newEObj;

-					} else if (newValue instanceof EObject) {

-						eObj = (EObject) newValue;

-					}

-				}

-			}

-		}

-		return eObj;

-	}

-}

diff --git a/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFDataModelService.java b/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFDataModelService.java
deleted file mode 100644
index 6db4e3c..0000000
--- a/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFDataModelService.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2013 Eclipse XWT Team
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *     Erdal Karaca - heuristic method for determination of model type
- *******************************************************************************/
-package org.eclipse.xwt.emf;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EClassifier;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EPackage.Registry;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.xwt.IDataProvider.DataModelService;
-import org.eclipse.xwt.XWTException;
-
-public class EMFDataModelService implements DataModelService {
-	private static Map<Object, EClassifier> lookupTable = Collections
-			.synchronizedMap(new HashMap<Object, EClassifier>());
-
-	public Object toModelType(Object data) {
-		return EMFHelper.toType(data);
-	}
-
-	public Object loadModelType(String className) {
-		return determineModelType(className);
-	}
-
-	public static Object determineModelType(String className) {
-		EClassifier ret = lookupTable.get(className);
-
-		if (ret != null) {
-			return ret;
-		}
-
-		Registry reg = EPackage.Registry.INSTANCE;
-		List<String> paks = new ArrayList<String>(reg.keySet());
-
-		for (String uri : paks) {
-			EPackage pak = reg.getEPackage(uri);
-
-			for (EClassifier ec : pak.getEClassifiers()) {
-				boolean found = ec.getInstanceClass().getName()
-						.equals(className);
-				if (found) {
-					lookupTable.put(className, ec);
-					return ec;
-				}
-			}
-		}
-
-		return null;
-	}
-
-	public static Object determineModelType(Class<?> clazz) {
-		EClassifier ret = lookupTable.get(clazz);
-
-		if (ret != null) {
-			return ret;
-		}
-
-		Registry reg = EPackage.Registry.INSTANCE;
-		List<String> paks = new ArrayList<String>(reg.keySet());
-
-		for (String uri : paks) {
-			EPackage pak = reg.getEPackage(uri);
-
-			for (EClassifier ec : pak.getEClassifiers()) {
-				boolean found = ec.getInstanceClass() == clazz;
-				if (found) {
-					lookupTable.put(clazz, ec);
-					return ec;
-				}
-			}
-		}
-
-		return null;
-	}
-
-	public Object toModelPropertyType(Object object, String propertyName) {
-		EClass type = null;
-		if (object instanceof EClass) {
-			type = (EClass) object;
-		} else if (object instanceof EObject) {
-			type = ((EObject) object).eClass();
-		} else if (object instanceof Class<?>) {
-			type = (EClass) determineModelType((Class<?>) object);
-		}
-
-		if (type == null) {
-			throw new XWTException(" Type for\"" + propertyName
-					+ "\" is not found ");
-		}
-		EStructuralFeature structuralFeature = EMFHelper.findFeature(type, propertyName);
-
-		if (structuralFeature == null) {
-			throw new XWTException(" Property \"" + propertyName
-					+ "\" is not found in the class " + type.getName());
-		}
-		if (((EStructuralFeature.Internal) structuralFeature).isFeatureMap()) {
-			return Map.class;
-		} else if (structuralFeature.isMany()) {
-			return Collection.class;
-		} else {
-			return structuralFeature.getEType();
-		}
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFDataProvider.java b/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFDataProvider.java
deleted file mode 100644
index 856a14c..0000000
--- a/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFDataProvider.java
+++ /dev/null
@@ -1,400 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2013 Eclipse XWT Project.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *     Erdal Karaca - bugs fixes, enhancements
- *******************************************************************************/
-package org.eclipse.xwt.emf;
-
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.property.value.IValueProperty;
-import org.eclipse.core.internal.databinding.observable.masterdetail.DetailObservableValue;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.databinding.EMFObservables;
-import org.eclipse.emf.databinding.EMFProperties;
-import org.eclipse.emf.databinding.EObjectObservableValue;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EClassifier;
-import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.XWTException;
-import org.eclipse.xwt.dataproviders.AbstractDataProvider;
-import org.eclipse.xwt.internal.core.UpdateSourceTrigger;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class EMFDataProvider extends AbstractDataProvider {
-	private DataModelService dataModelService;
-
-	private URI typeURI;
-	private URI objectURI;
-
-	private ResourceSet resourceSet;
-
-	private String featureName;
-	private Object objectInstance;
-
-	public EMFDataProvider(DataModelService dataModelService) {
-		this.dataModelService = dataModelService;
-	}
-
-	public EMFDataProvider() {
-	}
-
-	@Override
-	protected IObservableValue observeDetailValue(IObservableValue bean,
-			Object ownerType, String propertyName, Object propertyType) {
-		EClass type = null;
-		if (ownerType instanceof EClass) {
-			type = (EClass) ownerType;
-		} else if (ownerType instanceof Class<?>) {
-			type = (EClass) getModelService().loadModelType(
-					((Class<?>) ownerType).getName());
-		}
-
-		if (type == null) {
-			type = (EClass) getModelService().toModelType(bean);
-		}
-		EStructuralFeature feature = EMFHelper.findFeature(type, propertyName);
-		if (feature == null) {
-			throw new XWTException(propertyName + " feature is not found in "
-					+ EMFHelper.getQualifiedName(type));
-		}
-		return EMFObservables
-				.observeDetailValue(bean.getRealm(), bean, feature);
-	}
-
-	@Override
-	protected IObservableValue observeValue(Object bean, String propertyName) {
-		EClass type = (EClass) getModelService().toModelType(bean);
-		EStructuralFeature feature = EMFHelper.findFeature(type, propertyName);
-		if (feature == null) {
-			throw new XWTException(propertyName + " feature is not found in "
-					+ EMFHelper.getQualifiedName(type));
-		}
-		return XWTEMFObservables.observeValue(XWT.getRealm(), (EObject) bean,
-				feature);
-	}
-
-	@Override
-	protected IObservableList observeDetailList(IObservableValue bean,
-			Object elementType, String propertyName, Object propertyType) {
-		EClass type = (EClass) elementType;
-		EStructuralFeature feature = EMFHelper.findFeature(type, propertyName);
-		IObservableList observeDetailList = EMFObservables.observeDetailList(
-				XWT.getRealm(), bean, feature);
-		return observeDetailList;
-	}
-
-	@Override
-	protected IObservableSet observeDetailSet(IObservableValue bean,
-			Object elementType, String propertyName, Object propertyType) {
-		// TODO
-		throw new UnsupportedOperationException("not yet implemented");
-	}
-
-	@Override
-	protected IObservableList observeList(Object bean, String propertyName) {
-		if (bean instanceof EObject) {
-			EObject owner = (EObject) bean;
-			EStructuralFeature feature = EMFHelper.findFeature(owner.eClass(), propertyName);
-			if (feature != null) {
-				return EMFObservables.observeList(XWT.getRealm(), owner,
-						feature);
-			}
-		}
-		return null;
-	}
-
-	@Override
-	protected IObservableSet observeSet(Object bean, String propertyName) {
-		// TODO
-		throw new UnsupportedOperationException("not yet implemented");
-	}
-
-	public IValueProperty observeValueProperty(Object valueType, String path,
-			UpdateSourceTrigger updateSourceTrigger) {
-		EClass type = null;
-		if (valueType instanceof EClass) {
-			type = (EClass) valueType;
-		} else if (valueType instanceof EObject) {
-			EObject object = (EObject) valueType;
-			type = object.eClass();
-		} else {
-			throw new IllegalStateException();
-		}
-		EStructuralFeature feature = EMFHelper.findFeature(type, path);
-		if (feature == null) {
-			throw new XWTException(path + " feature is not found in "
-					+ EMFHelper.getQualifiedName(type));
-		}
-		return EMFProperties.value(feature);
-	}
-
-	public URI getObjectURI() {
-		return objectURI;
-	}
-
-	public void setObjectURI(URI objectURI) {
-		this.objectURI = objectURI;
-	}
-
-	public URI getTypeURI() {
-		return typeURI;
-	}
-
-	public void setTypeURI(URI typeURI) {
-		this.typeURI = typeURI;
-	}
-
-	public Object getObjectInstance() {
-		if (objectInstance == null) {
-			if (objectURI != null) {
-				objectInstance = getResourceSet().getEObject(objectURI, true);
-			} else if (typeURI != null) {
-				EClass eClass = (EClass) getResourceSet().getEObject(typeURI,
-						true);
-				objectInstance = eClass.getEPackage().getEFactoryInstance()
-						.create(eClass);
-			}
-		}
-		return objectInstance;
-	}
-
-	protected ResourceSet getResourceSet() {
-		if (resourceSet == null) {
-			resourceSet = new ResourceSetImpl();
-		}
-		return resourceSet;
-	}
-
-	protected void setResourceSet(ResourceSet resourceSet) {
-		this.resourceSet = resourceSet;
-	}
-
-	public void setObjectInstance(Object eObject) {
-		this.objectInstance = eObject;
-	}
-
-	public Object getTarget() {
-		Object instance = getObjectInstance();
-		if (instance instanceof EObject) {
-			EObject eObj = (EObject) instance;
-			if (eObj != null && featureName != null) {
-				return EMFBinding.getEObject(eObj, featureName);
-			}
-			return eObj;
-		}
-		return instance;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.IDataProvider#getData(java.lang.String)
-	 */
-	public Object getData(String path) {
-		Object instance = getTarget();
-		if (!(instance instanceof EObject)) {
-			if (path == null || path.length() == 0 || path.equals(".")) {
-				return instance;
-			}
-			throw new IllegalStateException();
-		}
-		EObject eObj = (EObject) instance;
-		if (path == null || ".".equals(path)) {
-			return eObj;
-		}
-		if (eObj != null) {
-			String featureName = path;
-			int index = path.lastIndexOf(".");
-			if (index != -1) {
-				String parent = path.substring(0, index);
-				eObj = (EObject) getData(eObj, parent);
-				featureName = path.substring(index + 1);
-			}
-			EStructuralFeature feature = EMFHelper.findFeature(eObj.eClass(), featureName);
-			if (feature != null) {
-				return eObj.eGet(feature);
-			}
-		}
-		return null;
-	}
-
-	public boolean isPropertyReadOnly(String path) {
-		EClassifier classifier = getCurrentType();
-		if (classifier instanceof EClass && path != null) {
-			EStructuralFeature feature = EMFHelper.findFeature((EClass)classifier, path);
-			if (feature != null) {
-				return !feature.isChangeable();
-			}
-		}
-		return true;
-	}
-
-	protected EClassifier getCurrentType() {
-		Object instance = getTarget();
-		EClassifier eObj = null;
-		if (instance instanceof EObjectObservableValue) {
-			EObjectObservableValue observableValue = (EObjectObservableValue) instance;
-			EStructuralFeature valueType = (EStructuralFeature) observableValue
-					.getValueType();
-			EClassifier classifier = valueType.getEType();
-			if (classifier instanceof EClass || classifier instanceof EDataType) {
-				eObj = classifier;
-			} else {
-				return null;
-			}
-		} else if (instance instanceof EClass) {
-			eObj = (EClass) instance;
-		} else if (instance instanceof EObject) {
-			EObject object = (EObject) instance;
-			eObj = object.eClass();
-		} else if (instance instanceof DetailObservableValue) {
-			EObject eObject = (EObject) ((DetailObservableValue) instance)
-					.getValueType();
-			eObj = eObject.eClass();
-		} else {
-			if (typeURI != null) {
-				EObject element = getResourceSet().getEObject(typeURI, true);
-				if (element instanceof EClass) {
-					eObj = (EClass) element;
-				}
-			}
-		}
-		if (eObj == null) {
-			throw new IllegalStateException();
-		}
-
-		return eObj;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.IDataProvider#getDataType(java.lang.String)
-	 */
-	public Object getDataType(String path) {
-		EClassifier classifier = getCurrentType();
-		if (path == null || path.trim().length() == 0 || path.equals(".")) {
-			if (classifier instanceof EDataType) {
-				return classifier.getInstanceClass();
-			}
-			return classifier;
-		}
-		if (classifier instanceof EClass) {
-			String featureName = path;
-			EStructuralFeature feature = EMFHelper.findFeature((EClass)classifier, featureName);
-			if (feature != null) {
-				return feature.getEType();
-			}
-		}
-
-		return classifier;
-	}
-
-	public void setFeatureName(String featureName) {
-		this.featureName = featureName;
-	}
-
-	public String getFeatureName() {
-		return featureName;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.IDataProvider#getData(java.lang.Object,
-	 * java.lang.String)
-	 */
-	public Object getData(Object target, String path) {
-		if (target instanceof EObject) {
-			if (path == null || ".".equals(path)) {
-				return target;
-			}
-			return EMFBinding.getEObject((EObject) target, path);
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.IDataProvider#setData(java.lang.String,
-	 * java.lang.Object)
-	 */
-	public void setData(String path, Object value) {
-		setData(getTarget(), path, value);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.IDataProvider#setData(java.lang.Object,
-	 * java.lang.String, java.lang.Object)
-	 */
-	public void setData(Object target, String path, Object value) {
-		if (target instanceof EObject) {
-			EObject eObj = (EObject) target;
-			String featureName = path;
-			int index = path.lastIndexOf(".");
-			if (index != -1) {
-				String parent = path.substring(0, index);
-				eObj = EMFBinding.getEObject(eObj, parent);
-				featureName = path.substring(index + 1);
-			}
-			EStructuralFeature feature = EMFHelper.findFeature(eObj.eClass(), featureName);
-			if (feature != null) {
-				eObj.eSet(feature, value);
-			}
-		}
-	}
-
-	protected DataModelService createDataModelService() {
-		return new EMFDataModelService();
-	}
-
-	public DataModelService getModelService() {
-		if (dataModelService == null) {
-			dataModelService = createDataModelService();
-		}
-		return dataModelService;
-	}
-
-	public IValueProperty createValueProperty(Object type, String fullPath) {
-		if (type == null || fullPath == null) {
-			return null;
-		}
-		EClass eClass = null;
-		if (type instanceof EReference) {
-			EReference ref = (EReference) type;
-			eClass = ref.getEReferenceType();
-		} else if (type instanceof EClass) {
-			eClass = (EClass) type;
-		} else if (type instanceof EObject) {
-			eClass = ((EObject) type).eClass();
-		}
-
-		if (eClass == null) {
-			return null;
-		}
-		EStructuralFeature feature = EMFHelper.findFeature(eClass, fullPath);
-		if (feature != null) {
-			return EMFProperties.value(feature);
-		}
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFDataProviderFactory.java b/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFDataProviderFactory.java
deleted file mode 100644
index 79e08ac..0000000
--- a/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFDataProviderFactory.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2013 Eclipse XWT Project.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *     Erdal Karaca - bugs fixes, enhancements
- *******************************************************************************/
-package org.eclipse.xwt.emf;
-
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.emf.databinding.EObjectObservableList;
-import org.eclipse.emf.databinding.EObjectObservableMap;
-import org.eclipse.emf.databinding.EObjectObservableValue;
-import org.eclipse.emf.ecore.EClassifier;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.xwt.IDataProvider;
-import org.eclipse.xwt.IDataProviderFactory;
-
-/**
- * @author yyang (yves.yang@soyatec.com)
- */
-public class EMFDataProviderFactory implements IDataProviderFactory {
-	public static final String EMF_DATA_PROVIDER_FACTORY = "EMF.DataProvider.Factory";
-
-	public IDataProvider create(Object dataContext) {
-		if (dataContext instanceof EObject) {
-			EMFDataProvider dataProvider = createEMFDataProvider();
-			dataProvider.setObjectInstance(dataContext);
-			return dataProvider;
-		} else if (dataContext instanceof EClassifier) {
-			EClassifier classifier = (EClassifier) dataContext;
-			EMFDataProvider dataProvider = createEMFDataProvider();
-			dataProvider.setTypeURI(EcoreUtil.getURI(classifier));
-			return dataProvider;
-		} else if (dataContext instanceof EObjectObservableValue
-				|| dataContext instanceof EObjectObservableList
-				|| dataContext instanceof EObjectObservableMap) {
-			EMFDataProvider dataProvider = createEMFDataProvider();
-			dataProvider.setObjectInstance(dataContext);
-			return dataProvider;
-		} else if (dataContext instanceof Class<?>) {
-			Class<?> classType = (Class<?>) dataContext;
-			EClassifier classifier = (EClassifier) EMFDataModelService
-					.determineModelType(classType);
-			EMFDataProvider dataProvider = createEMFDataProvider();
-			dataProvider.setTypeURI(EcoreUtil.getURI(classifier));
-			return dataProvider;
-		} else if (dataContext instanceof IObservableValue) {
-			Object valueType = ((IObservableValue) dataContext).getValueType();
-			if (valueType instanceof EObject) {
-				EMFDataProvider dataProvider = createEMFDataProvider();
-				dataProvider.setObjectInstance(dataContext);
-				return dataProvider;
-			}
-		} else if (dataContext instanceof IObservableList) {
-			EMFDataProvider dataProvider = createEMFDataProvider();
-			dataProvider.setObjectInstance(dataContext);
-			return dataProvider;
-		}
-
-		return null;
-	}
-
-	protected EMFDataProvider createEMFDataProvider() {
-		return new EMFDataProvider();
-	}
-
-	public Class<?> getType() {
-		return EObject.class;
-	}
-}
diff --git a/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFHelper.java b/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFHelper.java
deleted file mode 100644
index 287c704..0000000
--- a/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFHelper.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.emf;

-

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.emf.ecore.EClass;

-import org.eclipse.emf.ecore.EClassifier;

-import org.eclipse.emf.ecore.ENamedElement;

-import org.eclipse.emf.ecore.EObject;

-import org.eclipse.emf.ecore.EReference;

-import org.eclipse.emf.ecore.EStructuralFeature;

-

-public class EMFHelper {

-

-	public static String getQualifiedName(ENamedElement namedElement) {

-		EObject object = namedElement.eContainer();

-		if (object instanceof ENamedElement) {

-			String parentQN = getQualifiedName((ENamedElement) namedElement

-					.eContainer());

-

-			if (parentQN != null && !parentQN.equals("")) {

-				return parentQN + "." + namedElement.getName();

-			}

-		}

-		return namedElement.getName();

-	}

-	

-	public static EStructuralFeature findFeature(EClass type, String propertyName) {

-		EStructuralFeature structuralFeature = type

-				.getEStructuralFeature(propertyName);

-		if (structuralFeature == null) {

-			// to workaround a problem of case sensitive of property name comes from XML

-			// To fix this problem, the parser of XML should be rewritten. It is a heavy task.  

-			for (EStructuralFeature item : type.getEAllStructuralFeatures()) {

-				if (propertyName.equalsIgnoreCase(item.getName())) {

-					structuralFeature = item;

-					break;

-				}

-			}

-		}

-		return structuralFeature;

-	}

-

-	public static Object toType(Object data) {

-		if (data instanceof EClassifier) {

-			return (EClassifier) data;

-		}

-		if (data instanceof IObservableValue) {

-			IObservableValue observableValue = (IObservableValue) data;

-			Object element = observableValue.getValueType();

-			if (element instanceof EStructuralFeature) {

-				// A bug of EMF databinding

-				return ((EStructuralFeature) element).getEType();

-			}

-			return element;

-		}

-		if (data instanceof EObject) {

-			EObject object = (EObject) data;

-			return object.eClass();

-		}

-		else if (data instanceof EMFDataProvider) {

-			EMFDataProvider dataProvider = (EMFDataProvider) data;

-			return dataProvider.getDataType(null);

-		}

-		return null;

-	}

-	

-	public static EReference findReference(EClass eClass, String name) {

-			for (EStructuralFeature feature : eClass.getEStructuralFeatures()) {

-				if (feature instanceof EReference && name.equals(feature.getName())) {

-					return (EReference)feature;

-				}

-			}

-		

-		for (EClass superType : eClass.getESuperTypes()) {

-			EReference reference = findReference(superType, name);

-			if (reference != null) {

-				return reference;

-			}			

-		}

-		return null;

-	}

-}

diff --git a/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/converters/StringToURI.java b/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/converters/StringToURI.java
deleted file mode 100644
index eab4d81..0000000
--- a/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/converters/StringToURI.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.emf.converters;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.emf.common.util.URI;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class StringToURI implements IConverter {

-	public static StringToURI instance = new StringToURI();

-

-	public Object convert(Object fromObject) {

-		return URI.createURI(fromObject.toString());

-	}

-

-	public Object getFromType() {

-		return String.class;

-	}

-

-	public Object getToType() {

-		return URI.class;

-	}

-}

diff --git a/org.eclipse.xwt.feature/.project b/org.eclipse.xwt.feature/.project
deleted file mode 100644
index fa38c4b..0000000
--- a/org.eclipse.xwt.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.xwt.feature</name>

-	<comment></comment>

-	<projects>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.pde.FeatureBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.pde.FeatureNature</nature>

-	</natures>

-</projectDescription>

diff --git a/org.eclipse.xwt.feature/about.html b/org.eclipse.xwt.feature/about.html
deleted file mode 100644
index c258ef5..0000000
--- a/org.eclipse.xwt.feature/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!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 5, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.feature/build.properties b/org.eclipse.xwt.feature/build.properties
deleted file mode 100644
index 6c6d2ba..0000000
--- a/org.eclipse.xwt.feature/build.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,\
-               feature.properties,\
-               about.html,\
-               epl-v10.html,\
-               license.html
-src.includes = .project,\
-               about.html,\
-               build.properties,\
-               feature.properties,\
-               feature.xml,\
-               epl-v10.html,\
-               license.html
\ No newline at end of file
diff --git a/org.eclipse.xwt.feature/epl-v10.html b/org.eclipse.xwt.feature/epl-v10.html
deleted file mode 100755
index ed4b196..0000000
--- a/org.eclipse.xwt.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>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.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>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. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>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. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>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.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>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.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>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.</span> </p>
-
-<p><span style='font-size:10.0pt'>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. </span></p>
-
-<p><span style='font-size:10.0pt'>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. </span></p>
-
-<p><span style='font-size:10.0pt'>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.</span> </p>
-
-<p><span style='font-size:10.0pt'>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.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.feature/feature.properties b/org.eclipse.xwt.feature/feature.properties
deleted file mode 100644
index 0441b34..0000000
--- a/org.eclipse.xwt.feature/feature.properties
+++ /dev/null
@@ -1,43 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2009 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - 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=Eclipse XWT
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse XWT
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Project Updates
-
-# "secondarySiteName" property - label for the update site
-secondaryUpdateSiteName=Juno Discovery Site
-
-
-# "description" property - description of the feature
-description=Eclipse XWT declarative SWT
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006-2013 Soyatec Corporation and others.\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\
-    Soyatec Corporation - initial API and implementation\n
-################ end of copyright property ####################################
diff --git a/org.eclipse.xwt.feature/feature.xml b/org.eclipse.xwt.feature/feature.xml
deleted file mode 100644
index a8301e7..0000000
--- a/org.eclipse.xwt.feature/feature.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.xwt.feature"
-      label="%featureName"
-      version="1.4.0.qualifier"
-      provider-name="%providerName"
-      license-feature="org.eclipse.license"
-      license-feature-version="2.0.2">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <url>
-      <update label="XWT Update Site" url="http://www.eclipse.org/downloads/download.php?format=xml&amp;file=/xwt/updates"/>
-   </url>
-
-   <plugin
-         id="org.eclipse.xwt"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.xwt.pde"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.xwt.xml"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.xwt.forms"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.pushingpixels.trident"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.xwt.emf"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.xwt.css"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/org.eclipse.xwt.feature/license.html b/org.eclipse.xwt.feature/license.html
deleted file mode 100755
index c6af966..0000000
--- a/org.eclipse.xwt.feature/license.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-   
-<ul>
-	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>   
- 
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-	<li>Plug-in and Fragment directories</li>
-	<li>Inside Plug-ins and Fragments packaged as JARs</li>
-	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-	<li>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>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</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>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>
-   
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
-</body>
-</html>
diff --git a/org.eclipse.xwt.feature/notice.html b/org.eclipse.xwt.feature/notice.html
deleted file mode 100644
index c3d34c3..0000000
--- a/org.eclipse.xwt.feature/notice.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 9, 2014</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/org.eclipse.xwt.feature/pom.xml b/org.eclipse.xwt.feature/pom.xml
deleted file mode 100755
index 292c67f..0000000
--- a/org.eclipse.xwt.feature/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt.feature</artifactId>
-	<version>1.4.0-SNAPSHOT</version>
-	<packaging>eclipse-feature</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.feature/sourceTemplateFeature/epl-v10.html b/org.eclipse.xwt.feature/sourceTemplateFeature/epl-v10.html
deleted file mode 100644
index 90f2d5e..0000000
--- a/org.eclipse.xwt.feature/sourceTemplateFeature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"

-xmlns:w="urn:schemas-microsoft-com:office:word"

-xmlns="http://www.w3.org/TR/REC-html40">

-

-<head>

-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">

-<meta name=ProgId content=Word.Document>

-<meta name=Generator content="Microsoft Word 9">

-<meta name=Originator content="Microsoft Word 9">

-<link rel=File-List

-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">

-<title>Eclipse Public License - Version 1.0</title>

-<!--[if gte mso 9]><xml>

- <o:DocumentProperties>

-  <o:Revision>2</o:Revision>

-  <o:TotalTime>3</o:TotalTime>

-  <o:Created>2004-03-05T23:03:00Z</o:Created>

-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>

-  <o:Pages>4</o:Pages>

-  <o:Words>1626</o:Words>

-  <o:Characters>9270</o:Characters>

-   <o:Lines>77</o:Lines>

-  <o:Paragraphs>18</o:Paragraphs>

-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>

-  <o:Version>9.4402</o:Version>

- </o:DocumentProperties>

-</xml><![endif]--><!--[if gte mso 9]><xml>

- <w:WordDocument>

-  <w:TrackRevisions/>

- </w:WordDocument>

-</xml><![endif]-->

-<style>

-<!--

- /* Font Definitions */

-@font-face

-	{font-family:Tahoma;

-	panose-1:2 11 6 4 3 5 4 4 2 4;

-	mso-font-charset:0;

-	mso-generic-font-family:swiss;

-	mso-font-pitch:variable;

-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}

- /* Style Definitions */

-p.MsoNormal, li.MsoNormal, div.MsoNormal

-	{mso-style-parent:"";

-	margin:0in;

-	margin-bottom:.0001pt;

-	mso-pagination:widow-orphan;

-	font-size:12.0pt;

-	font-family:"Times New Roman";

-	mso-fareast-font-family:"Times New Roman";}

-p

-	{margin-right:0in;

-	mso-margin-top-alt:auto;

-	mso-margin-bottom-alt:auto;

-	margin-left:0in;

-	mso-pagination:widow-orphan;

-	font-size:12.0pt;

-	font-family:"Times New Roman";

-	mso-fareast-font-family:"Times New Roman";}

-p.BalloonText, li.BalloonText, div.BalloonText

-	{mso-style-name:"Balloon Text";

-	margin:0in;

-	margin-bottom:.0001pt;

-	mso-pagination:widow-orphan;

-	font-size:8.0pt;

-	font-family:Tahoma;

-	mso-fareast-font-family:"Times New Roman";}

-@page Section1

-	{size:8.5in 11.0in;

-	margin:1.0in 1.25in 1.0in 1.25in;

-	mso-header-margin:.5in;

-	mso-footer-margin:.5in;

-	mso-paper-source:0;}

-div.Section1

-	{page:Section1;}

--->

-</style>

-</head>

-

-<body lang=EN-US style='tab-interval:.5in'>

-

-<div class=Section1>

-

-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>

-</p>

-

-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER

-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,

-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE

-OF THIS AGREEMENT.</span> </p>

-

-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>

-

-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)

-in the case of the initial Contributor, the initial code and documentation

-distributed under this Agreement, and<br clear=left>

-b) in the case of each subsequent Contributor:</span></p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)

-changes to the Program, and</span></p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)

-additions to the Program;</span></p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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. </span></p>

-

-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or

-entity that distributes the Program.</span> </p>

-

-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent

-claims licensable by a Contributor which are necessarily infringed by the use

-or sale of its Contribution alone or when combined with the Program. </span></p>

-

-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions

-distributed in accordance with this Agreement.</span> </p>

-

-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who

-receives the Program under this Agreement, including all Contributors.</span> </p>

-

-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)

-Subject to the terms of this Agreement, each Contributor hereby grants Recipient

-a non-exclusive, worldwide, royalty-free copyright license to<span

-style='color:red'> </span>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.</span></p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)

-Subject to the terms of this Agreement, each Contributor hereby grants

-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>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. </span></p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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.</span></p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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. </span></p>

-

-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>

-

-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the

-Program in object code form under its own license agreement, provided that:</span>

-</p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)

-it complies with the terms and conditions of this Agreement; and</span></p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)

-its license agreement:</span></p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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; </span></p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)

-effectively excludes on behalf of all Contributors all liability for damages,

-including direct, indirect, special, incidental and consequential damages, such

-as lost profits; </span></p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)

-states that any provisions which differ from this Agreement are offered by that

-Contributor alone and not by any other party; and</span></p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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.<span style='color:blue'> </span></span></p>

-

-<p><span style='font-size:10.0pt'>When the Program is made available in source

-code form:</span> </p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)

-it must be made available under this Agreement; and </span></p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a

-copy of this Agreement must be included with each copy of the Program. </span></p>

-

-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any

-copyright notices contained within the Program. </span></p>

-

-<p><span style='font-size:10.0pt'>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. </span></p>

-

-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>

-

-<p><span style='font-size:10.0pt'>Commercial distributors of software may

-accept certain responsibilities with respect to end users, business partners

-and the like. While this license is intended to facilitate the commercial use

-of the Program, the Contributor who includes the Program in a commercial

-product offering should do so in a manner which does not create potential

-liability for other Contributors. Therefore, if a Contributor includes the

-Program in a commercial product offering, such Contributor (&quot;Commercial

-Contributor&quot;) hereby agrees to defend and indemnify every other

-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and

-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other

-legal actions brought by a third party against the Indemnified Contributor to

-the extent caused by the acts or omissions of such Commercial Contributor in

-connection with its distribution of the Program in a commercial product

-offering. The obligations in this section do not apply to any claims or Losses

-relating to any actual or alleged intellectual property infringement. In order

-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial

-Contributor in writing of such claim, and b) allow the Commercial Contributor

-to control, and cooperate with the Commercial Contributor in, the defense and

-any related settlement negotiations. The Indemnified Contributor may participate

-in any such claim at its own expense.</span> </p>

-

-<p><span style='font-size:10.0pt'>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.</span> </p>

-

-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>

-

-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS

-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT

-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,

-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,

-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely

-responsible for determining the appropriateness of using and distributing the

-Program and assumes all risks associated with its exercise of rights under this

-Agreement , including but not limited to the risks and costs of program errors,

-compliance with applicable laws, damage to or loss of data, programs or

-equipment, and unavailability or interruption of operations. </span></p>

-

-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>

-

-<p><span style='font-size:10.0pt'>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.</span> </p>

-

-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>

-

-<p><span style='font-size:10.0pt'>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.</span> </p>

-

-<p><span style='font-size:10.0pt'>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. </span></p>

-

-<p><span style='font-size:10.0pt'>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. </span></p>

-

-<p><span style='font-size:10.0pt'>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.</span> </p>

-

-<p><span style='font-size:10.0pt'>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.</span> </p>

-

-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>

-

-</div>

-

-</body>

-

-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.feature/sourceTemplateFeature/feature.properties b/org.eclipse.xwt.feature/sourceTemplateFeature/feature.properties
deleted file mode 100644
index 7160a7d..0000000
--- a/org.eclipse.xwt.feature/sourceTemplateFeature/feature.properties
+++ /dev/null
@@ -1,144 +0,0 @@
-###############################################################################

-# Copyright (c) 2000, 2007 IBM Corporation and others.

-# All rights reserved. This program and the accompanying materials

-# are made available under the terms of the Eclipse Public License v1.0

-# which accompanies this distribution, and is available at

-# http://www.eclipse.org/legal/epl-v10.html

-# 

-# Contributors:

-#     IBM Corporation - 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=Eclipse XWT Source

-

-# "providerName" property - name of the company that provides the feature

-providerName=Eclipse XWT

-

-# "updateSiteName" property - label for the update site

-updateSiteName=The Eclipse Project Updates

-

-# "description" property - description of the feature

-description=Source code zips for Eclipse E4 initiative.

-

-# "copyright" property - text of the "Feature Update Copyright"

-copyright=\

-Copyright (c) 2000, 2007 IBM Corporation and others.\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\

-    IBM Corporation - initial API and implementation\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\

-March 17, 2005\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 Eclipse Foundation\n\

-is provided to you under the terms and conditions of the Eclipse Public\n\

-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\

-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.org CVS\n\

-repository ("Repository") in CVS 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? 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\

-Features may also include other Features ("Included Features"). Files named\n\

-"feature.xml" may contain a list of the names and version numbers of\n\

-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\

-Eclipse Update Manager, you must agree to a license ("Feature Update\n\

-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". Such Abouts,\n\

-Feature Licenses and Feature Update Licenses contain the terms and\n\

-conditions (or references to such terms and conditions) that govern your\n\

-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\

-    - 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\

-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\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\

-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,\n\

-and re-export of encryption software, to see if this is permitted.\n\

-\n\

-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n

-########### end of license property ##########################################

diff --git a/org.eclipse.xwt.feature/sourceTemplateFeature/license.html b/org.eclipse.xwt.feature/sourceTemplateFeature/license.html
deleted file mode 100644
index 15a10cf..0000000
--- a/org.eclipse.xwt.feature/sourceTemplateFeature/license.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">

-<html>

-<head>

-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">

-<title>Eclipse.org Software User Agreement</title>

-</head>

-

-<body lang="EN-US" link=blue vlink=purple>

-<h2>Eclipse Foundation Software User Agreement</h2>

-<p>March 17, 2005</p>

-

-<h3>Usage Of Content</h3>

-

-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS

-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND

-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE

-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR

-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND

-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>

-   

-<h3>Applicable Licenses</h3>   

-   

-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0

-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.

-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>

-

-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS

-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>

-   

-<ul>

-	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>

-	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>

-	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins

-      and/or Fragments associated with that Feature.</li>

-	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>

-</ul>   

- 

-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and

-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module

-including, but not limited to the following locations:</p>

-

-<ul>

-	<li>The top-level (root) directory</li>

-	<li>Plug-in and Fragment directories</li>

-	<li>Inside Plug-ins and Fragments packaged as JARs</li>

-	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>

-	<li>Feature directories</li>

-</ul>

-		

-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the

-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or

-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.

-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in

-that directory.</p>

-

-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE

-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>

-

-<ul>

-	<li>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>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</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>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>

-   

-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   

-</body>

-</html>

diff --git a/org.eclipse.xwt.feature/sourceTemplatePlugin/build.properties b/org.eclipse.xwt.feature/sourceTemplatePlugin/build.properties
deleted file mode 100644
index 56e1cbc..0000000
--- a/org.eclipse.xwt.feature/sourceTemplatePlugin/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################

-# Copyright (c) 2000, 2006 IBM Corporation and others.

-# All rights reserved. This program and the accompanying materials

-# are made available under the terms of the Eclipse Public License v1.0

-# which accompanies this distribution, and is available at

-# http://www.eclipse.org/legal/epl-v10.html

-#

-# Contributors:

-#     IBM Corporation - initial API and implementation

-###############################################################################

-bin.includes = plugin.xml, src/**, META-INF/

-sourcePlugin = true

diff --git a/org.eclipse.xwt.forms/.classpath b/org.eclipse.xwt.forms/.classpath
deleted file mode 100644
index 2d1a430..0000000
--- a/org.eclipse.xwt.forms/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>

-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

-	<classpathentry kind="src" path="src"/>

-	<classpathentry kind="output" path="bin"/>

-</classpath>

diff --git a/org.eclipse.xwt.forms/.project b/org.eclipse.xwt.forms/.project
deleted file mode 100644
index 32d9c96..0000000
--- a/org.eclipse.xwt.forms/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.xwt.forms</name>

-	<comment></comment>

-	<projects>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.jdt.core.javabuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.ManifestBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.SchemaBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.pde.PluginNature</nature>

-		<nature>org.eclipse.jdt.core.javanature</nature>

-	</natures>

-</projectDescription>

diff --git a/org.eclipse.xwt.forms/META-INF/MANIFEST.MF b/org.eclipse.xwt.forms/META-INF/MANIFEST.MF
deleted file mode 100644
index 8e389ab..0000000
--- a/org.eclipse.xwt.forms/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,14 +0,0 @@
-Manifest-Version: 1.0

-Bundle-ManifestVersion: 2

-Bundle-Name: %Bundle-Name

-Bundle-SymbolicName: org.eclipse.xwt.forms

-Bundle-Version: 1.4.0.qualifier

-Bundle-Vendor: %Bundle-Vendor

-Require-Bundle: org.eclipse.swt;bundle-version="3.100.1",

- org.eclipse.core.runtime;bundle-version="3.8.0",

- org.eclipse.xwt;bundle-version="1.0.0",

- org.eclipse.ui.forms,

- org.eclipse.xwt.ui.workbench;bundle-version="1.0.0"

-Bundle-ActivationPolicy: lazy

-Bundle-RequiredExecutionEnvironment: J2SE-1.5

-Export-Package: org.eclipse.xwt.forms

diff --git a/org.eclipse.xwt.forms/OSGI-INF/l10n/bundle.properties b/org.eclipse.xwt.forms/OSGI-INF/l10n/bundle.properties
deleted file mode 100644
index fa56d98..0000000
--- a/org.eclipse.xwt.forms/OSGI-INF/l10n/bundle.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################

-# Copyright (c) 2010 IBM Corporation and others.

-# All rights reserved. This program and the accompanying materials

-# are made available under the terms of the Eclipse Public License v1.0

-# which accompanies this distribution, and is available at

-# http://www.eclipse.org/legal/epl-v10.html

-#

-# Contributors:

-#     IBM Corporation - initial API and implementation

-###############################################################################

-#Properties file for org.eclipse.xwt.forms

-Bundle-Vendor = Eclipse XWT

-Bundle-Name = XWT Forms
\ No newline at end of file
diff --git a/org.eclipse.xwt.forms/about.html b/org.eclipse.xwt.forms/about.html
deleted file mode 100644
index c258ef5..0000000
--- a/org.eclipse.xwt.forms/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!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 5, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.forms/build.properties b/org.eclipse.xwt.forms/build.properties
deleted file mode 100644
index 835b579..0000000
--- a/org.eclipse.xwt.forms/build.properties
+++ /dev/null
@@ -1,25 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               OSGI-INF/l10n/bundle.properties,\
-               about.html,\
-               notice.html
-src.includes = .classpath,\
-               .project,\
-               META-INF/,\
-               OSGI-INF/,\
-               about.html,\
-               build.properties,\
-               src/,\
-               notice.html
diff --git a/org.eclipse.xwt.forms/notice.html b/org.eclipse.xwt.forms/notice.html
deleted file mode 100644
index c3d34c3..0000000
--- a/org.eclipse.xwt.forms/notice.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 9, 2014</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/org.eclipse.xwt.forms/pom.xml b/org.eclipse.xwt.forms/pom.xml
deleted file mode 100755
index ecd0510..0000000
--- a/org.eclipse.xwt.forms/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt.forms</artifactId>
-	<version>1.4.0-SNAPSHOT</version>
-	<packaging>eclipse-plugin</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/ToolKitUtil.java b/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/ToolKitUtil.java
deleted file mode 100644
index 4a36b8a..0000000
--- a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/ToolKitUtil.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.forms;

-

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.ui.forms.widgets.ExpandableComposite;

-import org.eclipse.ui.forms.widgets.FormToolkit;

-import org.eclipse.xwt.forms.metaclass.FormMetaclass;

-

-/**

- * 

- * @author yyang (yves.yang@soyaetc.com)

- */

-public class ToolKitUtil {

-	private static final String FORM_SIGNATURE_KEY = XWTForms.class.getName();

-

-	static public synchronized FormToolkit getToolkit(Control c) {

-		FormToolkit tk = findToolkit(c);

-		if (tk == null) {

-			tk = new FormToolkit(c.getDisplay());

-			c.getDisplay().setData(FormMetaclass.class.getName(), tk);

-		}

-		return tk;

-	}

-

-	static public synchronized FormToolkit findToolkit(Control c) {

-		return (FormToolkit) c.getDisplay().getData(

-				FormMetaclass.class.getName());

-	}

-

-	public static void tagForm(Control control) {

-		control.setData(FORM_SIGNATURE_KEY, Boolean.TRUE);

-	}

-

-	/**

-	 * Adapts the form toolkit colors to non-form controls

-	 * 

-	 * @param root

-	 *            widget hierarchy

-	 */

-	public static void adapt(Control element) {

-		FormToolkit tk = getToolkit(element);

-		if (tk != null && element.getData(FORM_SIGNATURE_KEY) != Boolean.TRUE) {

-			tk.adapt(element, true, true);

-		}

-	}

-

-	/**

-	 * depth-first adaptation of form toolkit colors

-	 */

-	private static void adaptRecursive(Control root, FormToolkit tk) {

-		if (root instanceof Composite) {

-			if (root.getData(FORM_SIGNATURE_KEY) == Boolean.TRUE) {

-				tk = getToolkit(root);

-			}

-			else if (tk != null) {

-				tk.adapt((Composite) root);

-			}

-			

-			Control[] children = ((Composite) root).getChildren();

-			if (root instanceof ExpandableComposite) {

-				boolean firstLabel = true;

-				for (int i = 0; i < children.length; i++) {

-					Control child = children[i];

-					// it seems a bug of Section, the background of the title

-					// becomes opaque, so we have to ignore to adapt it

-					if (firstLabel) {

-						if (child instanceof Label) {

-							firstLabel = false;

-						}

-						continue;

-					}

-					adaptRecursive(child, tk);

-				}				

-			}

-			else {

-				for (Control child : children) {

-					adaptRecursive(child, tk);

-				}

-			}

-		} else {

-			if (root.getData(FORM_SIGNATURE_KEY) != Boolean.TRUE) {

-				tk.adapt(root, true, true);

-			}

-		}

-	}

-}

diff --git a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/XWTForms.java b/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/XWTForms.java
deleted file mode 100644
index a642efa..0000000
--- a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/XWTForms.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.forms;

-

-import java.io.InputStream;

-import java.net.URL;

-import java.util.HashMap;

-import java.util.Map;

-

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Widget;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.IXWTLoader;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.callback.ICreatedCallback;

-import org.eclipse.xwt.callback.ILoadedCallback;

-import org.eclipse.xwt.forms.metaclass.ButtonMetaclass;

-import org.eclipse.xwt.forms.metaclass.CompositeMetaclass;

-import org.eclipse.xwt.forms.metaclass.ExpandableCompositeMetaclass;

-import org.eclipse.xwt.forms.metaclass.FormMetaclass;

-import org.eclipse.xwt.forms.metaclass.FormTextMetaclass;

-import org.eclipse.xwt.forms.metaclass.HyperlinkMetaclass;

-import org.eclipse.xwt.forms.metaclass.ImageHyperlinkMetaclass;

-import org.eclipse.xwt.forms.metaclass.LabelMetaclass;

-import org.eclipse.xwt.forms.metaclass.ScrolledFormMetaclass;

-import org.eclipse.xwt.forms.metaclass.ScrolledPageBookMetaclass;

-import org.eclipse.xwt.forms.metaclass.SectionMetaclass;

-import org.eclipse.xwt.forms.metaclass.TableMetaclass;

-import org.eclipse.xwt.forms.metaclass.TextMetaclass;

-import org.eclipse.xwt.internal.utils.UserData;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class XWTForms {

-	private static Object FormsProfile;

-	

-	private static ICreatedCallback CreatedAction = new ICreatedCallback() {

-		

-		public void onCreated(Object sender) {

-			Widget widget = UserData.getWidget(sender);

-			if (widget instanceof Control) {

-				ToolKitUtil.adapt((Control)widget);

-			}

-		}

-	};

-			

-	private static boolean applyFormsProfile () {

-		if (FormsProfile == null) {

-			FormsProfile = XWT.createUIProfile();

-			XWT.registerMetaclass(new FormMetaclass());

-			XWT.registerMetaclass(new ButtonMetaclass());

-			XWT.registerMetaclass(new LabelMetaclass());

-			XWT.registerMetaclass(new TextMetaclass());

-			XWT.registerMetaclass(new TableMetaclass());

-			XWT.registerMetaclass(new CompositeMetaclass());

-			XWT.registerMetaclass(new FormTextMetaclass());

-			XWT.registerMetaclass(new HyperlinkMetaclass());

-			XWT.registerMetaclass(new ImageHyperlinkMetaclass());

-			XWT.registerMetaclass(new ExpandableCompositeMetaclass());

-			XWT.registerMetaclass(new SectionMetaclass());

-			XWT.registerMetaclass(new ScrolledPageBookMetaclass());

-			XWT.registerMetaclass(new ScrolledFormMetaclass());

-		}

-		return XWT.applyProfile(FormsProfile);

-	}

-			

-	/**

-	 * Load the file content. All widget will be created but they are showed. This method return the root element.

-	 * 

-	 */

-	static public synchronized Object load(URL file) throws Exception {

-		HashMap<String, Object> options = new HashMap<String, Object>();

-		return loadWithOptions(file, options);

-	}

-

-	/**

-	 * Load the file content. All widget will be created but they are showed. This method return the root element.

-	 * 

-	 */

-	static public synchronized Object load(URL file, Object dataContext) throws Exception {

-		HashMap<String, Object> options = new HashMap<String, Object>();

-		options.put(IXWTLoader.DATACONTEXT_PROPERTY, dataContext);

-		return loadWithOptions(file, options);

-	}

-

-	/**

-	 * Load the file content under a Composite. All widget will be created. This method returns the root element. The DataContext will be associated to the root element.

-	 */

-	static public synchronized Object load(Composite parent, URL file) throws Exception {

-		HashMap<String, Object> options = new HashMap<String, Object>();

-		options.put(IXWTLoader.CONTAINER_PROPERTY, parent);

-		return loadWithOptions(file, options);

-	}

-

-	/**

-	 * Load the file content under a Composite with a DataContext. All widget will be created. This method returns the root element. The DataContext will be associated to the root element.

-	 */

-	static public synchronized Object load(Composite parent, URL file, Object dataContext) throws Exception {

-		HashMap<String, Object> options = new HashMap<String, Object>();

-		options.put(IXWTLoader.CONTAINER_PROPERTY, parent);

-		options.put(IXWTLoader.DATACONTEXT_PROPERTY, dataContext);

-		return loadWithOptions(file, options);

-	}

-

-	/**

-	 * Open and show the file content in a new Shell.

-	 */

-	static public synchronized void open(URL url) throws Exception {

-		open(url, new HashMap<String, Object>());

-	}

-

-	/**

-	 * load the content from a stream with a style, a DataContext and a ResourceDictionary. The root elements will be hold by Composite parent

-	 */

-	static public synchronized Object load(Composite parent, InputStream stream, URL file, Object dataContext) throws Exception {

-		HashMap<String, Object> options = new HashMap<String, Object>();

-		options.put(IXWTLoader.CONTAINER_PROPERTY, parent);

-		options.put(IXWTLoader.DATACONTEXT_PROPERTY, dataContext);

-		return loadWithOptions(stream, file, options);

-	}

-

-	/**

-	 * load the file content. The corresponding UI element is not yet created

-	 */

-	static public synchronized void open(URL url, Object dataContext) throws Exception {

-		HashMap<String, Object> options = new HashMap<String, Object>();

-		options.put(IXWTLoader.DATACONTEXT_PROPERTY, dataContext);

-		open(url, options);

-	}

-

-	/**

-	 * load the file content. The corresponding UI element is not yet created

-	 */

-	static public synchronized void open(Class<?> type, Object dataContext) throws Exception {

-		open(type.getResource(type.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX), dataContext);

-	}

-

-	/**

-	 * load the file content. The corresponding UI element is not yet created

-	 */

-	static public synchronized void open(URL url, Map<String, Object> options) throws Exception {

-		boolean applied = applyFormsProfile();

-		try {

-			options.put(IXWTLoader.CREATED_CALLBACK, CreatedAction);

-			XWT.open(url, options);

-		} 

-		finally {

-			if (applied) {

-				XWT.restoreProfile();

-			}

-		}

-	}

-

-	static public synchronized Object loadWithOptions(URL url, Map<String, Object> options) throws Exception {

-		boolean applied = applyFormsProfile();

-		try {

-			options.put(IXWTLoader.CREATED_CALLBACK, CreatedAction);

-			return XWT.loadWithOptions(url, options);

-		} 

-		finally {

-			if (applied) {

-				XWT.restoreProfile();

-			}

-		}

-	}

-

-	/**

-	 * 

-	 * @param stream

-	 * @param url

-	 * @param options

-	 * @return

-	 * @throws Exception

-	 */

-	static public synchronized Object load(InputStream stream, URL url) throws Exception {

-		return loadWithOptions(stream, url, new HashMap<String, Object>());

-	}

-

-	/**

-	 * 

-	 * @param stream

-	 * @param url

-	 * @param options

-	 * @return

-	 * @throws Exception

-	 */

-	static public synchronized Object loadWithOptions(InputStream stream, URL url, Map<String, Object> options) throws Exception {

-		boolean applied = applyFormsProfile();

-		try {

-			options.put(IXWTLoader.CREATED_CALLBACK, CreatedAction);

-			return XWT.loadWithOptions(stream, url, options);

-		} 

-		finally {

-			if (applied) {

-				XWT.restoreProfile();

-			}

-		}

-	}

-}

diff --git a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/AbstractFormMetaclass.java b/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/AbstractFormMetaclass.java
deleted file mode 100644
index 7f712a6..0000000
--- a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/AbstractFormMetaclass.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec and Erdal Karaca - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.forms.metaclass;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.ui.forms.widgets.FormToolkit;

-import org.eclipse.xwt.IXWTLoader;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTLoaderManager;

-import org.eclipse.xwt.forms.ToolKitUtil;

-import org.eclipse.xwt.javabean.metadata.Metaclass;

-import org.eclipse.xwt.metadata.IMetaclass;

-

-/**

- * 

- * @author Erdal Karaca <erdal.karaca.de@googlemail.com>

- * @author yves.yang (yves.yang@soyatec.com)

- */

-public abstract class AbstractFormMetaclass extends Metaclass {

-

-	public AbstractFormMetaclass(Class<?> formFeatureClass) {

-		this(formFeatureClass, toSuperMetaclass(formFeatureClass),

-				XWTLoaderManager.getActive());

-	}

-

-	public AbstractFormMetaclass(Class<?> formFeatureClass,

-			IMetaclass parentMetaclass, IXWTLoader loader) {

-		super(formFeatureClass, parentMetaclass, loader);

-	}

-

-	static private IMetaclass toSuperMetaclass(Class<?> type) {

-		Class<?> superType = type.getSuperclass();

-		if (superType == null || superType == Object.class) {

-			return null;

-		}

-		return XWT.getMetaclass(superType);

-	}

-

-	@Override

-	public Object doNewInstance(Object[] parameters) {

-		if (parameters.length > 0 && parameters[0] instanceof Composite) {

-			Composite parent = (Composite) parameters[0];

-			FormToolkit tk = ToolKitUtil.getToolkit(parent);

-			int style = SWT.None;

-			if (parameters.length > 1 && parameters[1] instanceof Integer) {

-				style |= (Integer)parameters[1];

-			}

-			Control control = doCreateControl(tk, parent, style);

-			ToolKitUtil.tagForm(control);

-			return control;

-		}

-

-		return super.doNewInstance(parameters);

-	}

-

-	protected abstract Control doCreateControl(FormToolkit tk,

-			Composite parent, int style);

-}

diff --git a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ButtonMetaclass.java b/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ButtonMetaclass.java
deleted file mode 100644
index 23b97ab..0000000
--- a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ButtonMetaclass.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec and Erdal Karaca - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.forms.metaclass;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.ui.forms.widgets.FormToolkit;

-

-/**

- * 

- * @author Erdal Karaca <erdal.karaca.de@googlemail.com>

- * @author yves.yang (yves.yang@soyatec.com)

- */

-public class ButtonMetaclass extends AbstractFormMetaclass {

-	public ButtonMetaclass() {

-		super(Button.class);

-	}

-

-	@Override

-	protected Control doCreateControl(FormToolkit tk, Composite parent,

-			int style) {

-		return tk.createButton(parent, "", style);

-	}

-}

diff --git a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/CompositeMetaclass.java b/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/CompositeMetaclass.java
deleted file mode 100644
index f2968eb..0000000
--- a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/CompositeMetaclass.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec and Erdal Karaca - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.forms.metaclass;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.ui.forms.widgets.FormToolkit;

-

-/**

- * 

- * @author Erdal Karaca <erdal.karaca.de@googlemail.com>

- * @author yves.yang (yves.yang@soyatec.com)

- */

-public class CompositeMetaclass extends AbstractFormMetaclass {

-	public CompositeMetaclass() {

-		super(Composite.class);

-	}

-

-	@Override

-	protected Control doCreateControl(FormToolkit tk, Composite parent,

-			int style) {

-		boolean separator = (style & SWT.SEPARATOR) != 0;

-		return separator ? tk.createCompositeSeparator(parent) : tk

-				.createComposite(parent, style);

-	}

-}

diff --git a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ExpandableCompositeMetaclass.java b/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ExpandableCompositeMetaclass.java
deleted file mode 100644
index 1348e9c..0000000
--- a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ExpandableCompositeMetaclass.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec and Erdal Karaca - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.forms.metaclass;

-

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.ui.forms.widgets.ExpandableComposite;

-import org.eclipse.ui.forms.widgets.FormToolkit;

-

-/**

- * 

- * @author Erdal Karaca <erdal.karaca.de@googlemail.com>

- * @author yves.yang (yves.yang@soyatec.com)

- */

-public class ExpandableCompositeMetaclass extends AbstractFormMetaclass {

-	public ExpandableCompositeMetaclass() {

-		super(ExpandableComposite.class);

-	}

-

-	@Override

-	protected Control doCreateControl(FormToolkit tk, Composite parent,

-			int style) {

-		return tk.createExpandableComposite(parent, style);

-	}

-}

diff --git a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/FormMetaclass.java b/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/FormMetaclass.java
deleted file mode 100644
index a2ab376..0000000
--- a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/FormMetaclass.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec and Erdal Karaca - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.forms.metaclass;

-

-import java.beans.BeanInfo;

-import java.beans.IntrospectionException;

-import java.beans.PropertyDescriptor;

-import java.nio.channels.IllegalSelectorException;

-

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.ui.forms.widgets.Form;

-import org.eclipse.ui.forms.widgets.FormToolkit;

-import org.eclipse.xwt.forms.metaclass.properties.DecoratingHeading;

-import org.eclipse.xwt.forms.metaclass.properties.HeadClientBeanProperty;

-

-/**

- * 

- * @author Erdal Karaca <erdal.karaca.de@googlemail.com>

- * @author yves.yang (yves.yang@soyatec.com)

- */

-public class FormMetaclass extends AbstractFormMetaclass {

-	public FormMetaclass() {

-		super(Form.class);

-		addProperty(new DecoratingHeading());

-		addProperty(new HeadClientBeanProperty(getHeadClient()));

-	}

-	

-	static PropertyDescriptor getHeadClient() {

-		try {

-			BeanInfo beanInfo = java.beans.Introspector.getBeanInfo(Form.class);

-			PropertyDescriptor[] propertyDescriptors = beanInfo

-					.getPropertyDescriptors();

-			for (PropertyDescriptor p : propertyDescriptors) {

-				String propertyName = p.getName();

-				if (propertyName.equalsIgnoreCase("headClient")) {

-					return p;

-				}

-			}

-		} catch (IntrospectionException e) {

-		}

-		throw new IllegalSelectorException();

-	}

-

-	@Override

-	protected Control doCreateControl(FormToolkit tk, Composite parent,

-			int style) {

-		return tk.createForm(parent);

-	}

-}

diff --git a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/FormTextMetaclass.java b/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/FormTextMetaclass.java
deleted file mode 100644
index 600af9e..0000000
--- a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/FormTextMetaclass.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec and Erdal Karaca - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.forms.metaclass;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.ui.forms.widgets.FormText;

-import org.eclipse.ui.forms.widgets.FormToolkit;

-

-/**

- * 

- * @author Erdal Karaca <erdal.karaca.de@googlemail.com>

- * @author yves.yang (yves.yang@soyatec.com)

- */

-public class FormTextMetaclass extends AbstractFormMetaclass {

-	public FormTextMetaclass() {

-		super(FormText.class);

-	}

-

-	@Override

-	protected Control doCreateControl(FormToolkit tk, Composite parent,

-			int style) {

-		boolean trackFocus = (style & SWT.FOCUSED) != 0;

-		return tk.createFormText(parent, trackFocus);

-	}

-}

diff --git a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/HyperlinkMetaclass.java b/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/HyperlinkMetaclass.java
deleted file mode 100644
index 807f4cd..0000000
--- a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/HyperlinkMetaclass.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec and Erdal Karaca - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.forms.metaclass;

-

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.ui.forms.widgets.FormToolkit;

-import org.eclipse.ui.forms.widgets.Hyperlink;

-

-/**

- * 

- * @author Erdal Karaca <erdal.karaca.de@googlemail.com>

- * @author yves.yang (yves.yang@soyatec.com)

- */

-public class HyperlinkMetaclass extends AbstractFormMetaclass {

-	public HyperlinkMetaclass() {

-		super(Hyperlink.class);

-	}

-

-	@Override

-	protected Control doCreateControl(FormToolkit tk, Composite parent,

-			int style) {

-		return tk.createHyperlink(parent, "", style);

-	}

-}

diff --git a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ImageHyperlinkMetaclass.java b/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ImageHyperlinkMetaclass.java
deleted file mode 100644
index 08c38b6..0000000
--- a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ImageHyperlinkMetaclass.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec and Erdal Karaca - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.forms.metaclass;

-

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.ui.forms.widgets.FormToolkit;

-import org.eclipse.ui.forms.widgets.ImageHyperlink;

-

-/**

- * 

- * @author Erdal Karaca <erdal.karaca.de@googlemail.com>

- * @author yves.yang (yves.yang@soyatec.com)

- */

-public class ImageHyperlinkMetaclass extends AbstractFormMetaclass {

-	public ImageHyperlinkMetaclass() {

-		super(ImageHyperlink.class);

-	}

-

-	@Override

-	protected Control doCreateControl(FormToolkit tk, Composite parent,

-			int style) {

-		return tk.createImageHyperlink(parent, style);

-	}

-}

diff --git a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/LabelMetaclass.java b/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/LabelMetaclass.java
deleted file mode 100644
index 0b3f8b2..0000000
--- a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/LabelMetaclass.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec and Erdal Karaca - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.forms.metaclass;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.ui.forms.widgets.FormToolkit;

-

-/**

- * 

- * @author Erdal Karaca <erdal.karaca.de@googlemail.com>

- * @author yves.yang (yves.yang@soyatec.com)

- */

-public class LabelMetaclass extends AbstractFormMetaclass {

-	public LabelMetaclass() {

-		super(Label.class);

-	}

-

-	@Override

-	protected Control doCreateControl(FormToolkit tk, Composite parent,

-			int style) {

-		if ( (style & SWT.SEPARATOR) != 0 ) {

-			return tk.createSeparator( parent, style );

-		} else {

-			return tk.createLabel( parent, "", style );

-		}

-	}

-}

diff --git a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ScrolledFormMetaclass.java b/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ScrolledFormMetaclass.java
deleted file mode 100644
index 979ad3c..0000000
--- a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ScrolledFormMetaclass.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec and Erdal Karaca - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.forms.metaclass;

-

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.ui.forms.widgets.FormToolkit;

-import org.eclipse.ui.forms.widgets.ScrolledForm;

-import org.eclipse.xwt.forms.metaclass.properties.DecoratingHeading;

-

-/**

- * 

- * @author Erdal Karaca <erdal.karaca.de@googlemail.com>

- * @author yves.yang (yves.yang@soyatec.com)

- */

-public class ScrolledFormMetaclass extends AbstractFormMetaclass {

-	public ScrolledFormMetaclass() {

-		super(ScrolledForm.class);

-		addProperty(new DecoratingHeading());

-	}

-

-	@Override

-	protected Control doCreateControl(FormToolkit tk, Composite parent,

-			int style) {

-		return tk.createScrolledForm(parent);

-	}

-}

diff --git a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ScrolledPageBookMetaclass.java b/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ScrolledPageBookMetaclass.java
deleted file mode 100644
index 7b8ffab..0000000
--- a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ScrolledPageBookMetaclass.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec and Erdal Karaca - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.forms.metaclass;

-

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.ui.forms.widgets.FormToolkit;

-import org.eclipse.ui.forms.widgets.ScrolledPageBook;

-

-/**

- * 

- * @author Erdal Karaca <erdal.karaca.de@googlemail.com>

- * @author yves.yang (yves.yang@soyatec.com)

- */

-public class ScrolledPageBookMetaclass extends AbstractFormMetaclass {

-	public ScrolledPageBookMetaclass() {

-		super(ScrolledPageBook.class);

-	}

-

-	@Override

-	protected Control doCreateControl(FormToolkit tk, Composite parent,

-			int style) {

-		return tk.createPageBook(parent, style);

-	}

-}

diff --git a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/SectionMetaclass.java b/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/SectionMetaclass.java
deleted file mode 100644
index bec755f..0000000
--- a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/SectionMetaclass.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec and Erdal Karaca - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.forms.metaclass;

-

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.ui.forms.widgets.FormToolkit;

-import org.eclipse.ui.forms.widgets.Section;

-

-/**

- * 

- * @author Erdal Karaca <erdal.karaca.de@googlemail.com>

- * @author yves.yang (yves.yang@soyatec.com)

- */

-public class SectionMetaclass extends AbstractFormMetaclass {

-	public SectionMetaclass() {

-		super(Section.class);

-	}

-

-	@Override

-	protected Control doCreateControl(FormToolkit tk, Composite parent,

-			int style) {

-		return tk.createSection(parent, style | Section.TITLE_BAR);

-	}

-}

diff --git a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/TableMetaclass.java b/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/TableMetaclass.java
deleted file mode 100644
index 344653b..0000000
--- a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/TableMetaclass.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec and Erdal Karaca - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.forms.metaclass;

-

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Table;

-import org.eclipse.ui.forms.widgets.FormToolkit;

-

-/**

- * 

- * @author Erdal Karaca <erdal.karaca.de@googlemail.com>

- * @author yves.yang (yves.yang@soyatec.com)

- */

-public class TableMetaclass extends AbstractFormMetaclass {

-	public TableMetaclass() {

-		super(Table.class);

-	}

-

-	@Override

-	protected Control doCreateControl(FormToolkit tk, Composite parent,

-			int style) {

-		return tk.createTable(parent, style);

-	}

-}

diff --git a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/TextMetaclass.java b/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/TextMetaclass.java
deleted file mode 100644
index c7a2238..0000000
--- a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/TextMetaclass.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec and Erdal Karaca - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.forms.metaclass;

-

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.ui.forms.widgets.FormToolkit;

-

-/**

- * 

- * @author Erdal Karaca <erdal.karaca.de@googlemail.com>

- * @author yves.yang (yves.yang@soyatec.com)

- */

-public class TextMetaclass extends AbstractFormMetaclass {

-	public TextMetaclass() {

-		super(Text.class);

-	}

-

-	@Override

-	protected Control doCreateControl(FormToolkit tk, Composite parent,

-			int style) {

-		return tk.createText(parent, "", style);

-	}

-}

diff --git a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/TreeMetaclass.java b/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/TreeMetaclass.java
deleted file mode 100644
index 03b9dea..0000000
--- a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/TreeMetaclass.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec and Erdal Karaca - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.forms.metaclass;

-

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Tree;

-import org.eclipse.ui.forms.widgets.FormToolkit;

-

-/**

- * 

- * @author Erdal Karaca <erdal.karaca.de@googlemail.com>

- * @author yves.yang (yves.yang@soyatec.com)

- */

-public class TreeMetaclass extends AbstractFormMetaclass {

-	public TreeMetaclass() {

-		super(Tree.class);

-	}

-

-	@Override

-	protected Control doCreateControl(FormToolkit tk, Composite parent,

-			int style) {

-		return tk.createTree(parent, style);

-	}

-}

diff --git a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/properties/DecoratingHeading.java b/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/properties/DecoratingHeading.java
deleted file mode 100644
index f109469..0000000
--- a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/properties/DecoratingHeading.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec and Erdal Karaca - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.forms.metaclass.properties;

-

-import java.lang.reflect.InvocationTargetException;

-

-import org.eclipse.ui.forms.widgets.Form;

-import org.eclipse.ui.forms.widgets.FormToolkit;

-import org.eclipse.ui.forms.widgets.ScrolledForm;

-import org.eclipse.xwt.forms.ToolKitUtil;

-import org.eclipse.xwt.javabean.metadata.properties.AbstractProperty;

-

-/**

- * A property to handle the decoration of heading

- * 

- * @author yyang 

- */

-public class DecoratingHeading extends AbstractProperty {

-

-	public DecoratingHeading() {

-		super("DecorateHeading", Boolean.class);

-	}

-

-	public Object getValue(Object target) throws IllegalArgumentException,

-			IllegalAccessException, InvocationTargetException,

-			SecurityException, NoSuchFieldException {

-		return null;

-	}

-

-	public void setValue(Object target, Object value)

-			throws IllegalArgumentException, IllegalAccessException,

-			InvocationTargetException, SecurityException, NoSuchFieldException {

-		Form form = null;

-		if (target instanceof ScrolledForm) {

-			ScrolledForm scrolledForm = (ScrolledForm) target;

-			form = scrolledForm.getForm();

-		}

-		else if (target instanceof Form) {

-			form = (Form) target;

-		}

-		Boolean booleanValue = (Boolean) value;

-		if (value == null) {

-			return;

-		}

-		if (booleanValue) {

-			FormToolkit toolkit = ToolKitUtil.findToolkit(form);

-			toolkit.decorateFormHeading(form);

-		}

-	}

-}

diff --git a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/properties/HeadClientBeanProperty.java b/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/properties/HeadClientBeanProperty.java
deleted file mode 100644
index 4591810..0000000
--- a/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/properties/HeadClientBeanProperty.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.forms.metaclass.properties;

-

-import java.beans.PropertyDescriptor;

-import java.lang.reflect.InvocationTargetException;

-

-import org.eclipse.ui.forms.widgets.Form;

-import org.eclipse.xwt.javabean.metadata.properties.BeanProperty;

-

-public class HeadClientBeanProperty extends BeanProperty {

-

-	public HeadClientBeanProperty(PropertyDescriptor descriptor) {

-		super(descriptor);

-		setValueAsParent(true);

-	}

-		

-	@Override

-	public Object getValue(Object target) throws IllegalArgumentException,

-			IllegalAccessException, InvocationTargetException,

-			SecurityException, NoSuchFieldException {

-		Object value = super.getValue(target);

-		if (value == null) {

-			Form form = (Form) target;

-			return form.getHead();

-		}

-		return value;

-	}

-}

diff --git a/org.eclipse.xwt.pde/.classpath b/org.eclipse.xwt.pde/.classpath
deleted file mode 100644
index 2d1a430..0000000
--- a/org.eclipse.xwt.pde/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>

-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

-	<classpathentry kind="src" path="src"/>

-	<classpathentry kind="output" path="bin"/>

-</classpath>

diff --git a/org.eclipse.xwt.pde/.project b/org.eclipse.xwt.pde/.project
deleted file mode 100644
index 9b5f934..0000000
--- a/org.eclipse.xwt.pde/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.xwt.pde</name>

-	<comment></comment>

-	<projects>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.jdt.core.javabuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.ManifestBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.SchemaBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.pde.PluginNature</nature>

-		<nature>org.eclipse.jdt.core.javanature</nature>

-	</natures>

-</projectDescription>

diff --git a/org.eclipse.xwt.pde/META-INF/MANIFEST.MF b/org.eclipse.xwt.pde/META-INF/MANIFEST.MF
deleted file mode 100644
index 9d851d2..0000000
--- a/org.eclipse.xwt.pde/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,19 +0,0 @@
-Manifest-Version: 1.0

-Bundle-ManifestVersion: 2

-Bundle-Name: %Bundle-Name.0

-Bundle-SymbolicName: org.eclipse.xwt.pde;singleton:=true

-Bundle-Version: 1.4.0.qualifier

-Bundle-Activator: org.eclipse.xwt.pde.PDEPlugin

-Require-Bundle: org.eclipse.ui;bundle-version="3.0.0",

- org.eclipse.core.runtime;bundle-version="3.8.0",

- org.eclipse.xwt;bundle-version="0.9.0",

- org.eclipse.core.databinding;bundle-version="1.1.0",

- org.eclipse.jface.databinding;bundle-version="1.4.0"

-Bundle-ActivationPolicy: lazy

-Bundle-RequiredExecutionEnvironment: J2SE-1.5

-Export-Package: org.eclipse.xwt.pde,

- org.eclipse.xwt.pde.ui,

- org.eclipse.xwt.pde.ui.views

-Bundle-Vendor: %Bundle-Vendor.0

-Bundle-Localization: plugin

-

diff --git a/org.eclipse.xwt.pde/about.html b/org.eclipse.xwt.pde/about.html
deleted file mode 100644
index c258ef5..0000000
--- a/org.eclipse.xwt.pde/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!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 5, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.pde/build.properties b/org.eclipse.xwt.pde/build.properties
deleted file mode 100644
index 4cf634a..0000000
--- a/org.eclipse.xwt.pde/build.properties
+++ /dev/null
@@ -1,29 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               plugin.properties,\
-               about.html,\
-               schema/,\
-               notice.html
-src.includes = schema/,\
-               .classpath,\
-               .project,\
-               META-INF/,\
-               about.html,\
-               build.properties,\
-               plugin.xml,\
-               plugin.properties,\
-               src/,\
-               notice.html
diff --git a/org.eclipse.xwt.pde/notice.html b/org.eclipse.xwt.pde/notice.html
deleted file mode 100644
index c3d34c3..0000000
--- a/org.eclipse.xwt.pde/notice.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 9, 2014</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/org.eclipse.xwt.pde/plugin.properties b/org.eclipse.xwt.pde/plugin.properties
deleted file mode 100644
index 14df20f..0000000
--- a/org.eclipse.xwt.pde/plugin.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-###############################################################################

-# Copyright (c) 2010 IBM Corporation and others.

-# All rights reserved. This program and the accompanying materials

-# are made available under the terms of the Eclipse Public License v1.0

-# which accompanies this distribution, and is available at

-# http://www.eclipse.org/legal/epl-v10.html

-#

-# Contributors:

-#     IBM Corporation - initial API and implementation

-###############################################################################

-"******************************************************************************

-# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

-# All rights reserved. This program and the accompanying materials

-# are made available under the terms of the Eclipse Public License v1.0

-# which accompanies this distribution, and is available at

-# http://www.eclipse.org/legal/epl-v10.html

-# 

-# Contributors:

-#     Soyatec - initial API and implementation

-#******************************************************************************/

-

-extension-point.name.0 = XWT metaclasses

-extension-point.name.1 = XWT converters

-extension-point.name.2 = Metaclass Factory

-extension-point.name.3 = Logger

-extension-point.name.4 = Styles

-Bundle-Name.0 = XWT PDE Plug-in

-Bundle-Vendor.0 = Eclipse XWT
\ No newline at end of file
diff --git a/org.eclipse.xwt.pde/plugin.xml b/org.eclipse.xwt.pde/plugin.xml
deleted file mode 100644
index 8c449be..0000000
--- a/org.eclipse.xwt.pde/plugin.xml
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.xwt.pde/pom.xml b/org.eclipse.xwt.pde/pom.xml
deleted file mode 100755
index 39b86ce..0000000
--- a/org.eclipse.xwt.pde/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt.pde</artifactId>
-	<version>1.4.0-SNAPSHOT</version>
-	<packaging>eclipse-plugin</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.pde/schema/commands.exsd b/org.eclipse.xwt.pde/schema/commands.exsd
deleted file mode 100644
index 7b7c5b9..0000000
--- a/org.eclipse.xwt.pde/schema/commands.exsd
+++ /dev/null
@@ -1,122 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>

-<!-- Schema file written by PDE -->

-<schema targetNamespace="org.eclipse.xwt.pde" xmlns="http://www.w3.org/2001/XMLSchema">

-<annotation>

-      <appinfo>

-         <meta.schema plugin="org.eclipse.xwt.pde" id="commands" name="commands"/>

-      </appinfo>

-      <documentation>

-         This extension point is used to register a command with a name

-      </documentation>

-   </annotation>

-

-   <element name="extension">

-      <annotation>

-         <appinfo>

-            <meta.element />

-         </appinfo>

-      </annotation>

-      <complexType>

-         <choice>

-            <element ref="command" minOccurs="0" maxOccurs="unbounded"/>

-         </choice>

-         <attribute name="point" type="string" use="required">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="id" type="string">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="name" type="string">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-               <appinfo>

-                  <meta.attribute translatable="true"/>

-               </appinfo>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <element name="command">

-      <annotation>

-         <documentation>

-         </documentation>

-      </annotation>

-      <complexType>

-         <attribute name="name" type="string" use="required">

-            <annotation>

-               <documentation>

-                  the name

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="class" type="string" use="required">

-            <annotation>

-               <documentation>

-                  The class of command must implement the interface org.eclipse.xwt.ICommand

-               </documentation>

-               <appinfo>

-                  <meta.attribute kind="java" basedOn=":org.eclipse.xwt.ICommand"/>

-               </appinfo>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <annotation>

-      <appinfo>

-         <meta.section type="since"/>

-      </appinfo>

-      <documentation>

-         [Enter the first release in which this extension point appears.]

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appinfo>

-         <meta.section type="examples"/>

-      </appinfo>

-      <documentation>

-         Here is an example to define a commands: 

-&lt;pre&gt;

-   &lt;extension

-         point=&quot;org.eclipse.xwt.pde.commands&quot;&gt;

-      &lt;command

-            class=&quot;org.eclipse.xwt.demo.MessageCommand&quot;

-            name=&quot;Message&quot;&gt;

-      &lt;/command&gt;

-   &lt;/extension&gt;

-&lt;/pre&gt;

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appinfo>

-         <meta.section type="apiinfo"/>

-      </appinfo>

-      <documentation>

-         [Enter API information here.]

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appinfo>

-         <meta.section type="implementation"/>

-      </appinfo>

-      <documentation>

-         [Enter information about supplied implementation of this extension point.]

-      </documentation>

-   </annotation>

-

-

-</schema>

diff --git a/org.eclipse.xwt.pde/schema/converters.exsd b/org.eclipse.xwt.pde/schema/converters.exsd
deleted file mode 100644
index d312830..0000000
--- a/org.eclipse.xwt.pde/schema/converters.exsd
+++ /dev/null
@@ -1,152 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>

-<!-- Schema file written by PDE -->

-<schema targetNamespace="org.eclipse.xwt.pde" xmlns="http://www.w3.org/2001/XMLSchema">

-<annotation>

-      <appinfo>

-         <meta.schema plugin="org.eclipse.xwt.pde" id="converters" name="converters"/>

-      </appinfo>

-      <documentation>

-         This extension point is used to declare a new data converter

-      </documentation>

-   </annotation>

-

-   <element name="extension">

-      <annotation>

-         <appinfo>

-            <meta.element />

-         </appinfo>

-      </annotation>

-      <complexType>

-         <choice>

-            <element ref="converter" minOccurs="0" maxOccurs="unbounded"/>

-         </choice>

-         <attribute name="point" type="string" use="required">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="id" type="string">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="name" type="string">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-               <appinfo>

-                  <meta.attribute translatable="true"/>

-               </appinfo>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <element name="converter">

-      <annotation>

-         <documentation>

-            Data converter element

-         </documentation>

-      </annotation>

-      <complexType>

-         <attribute name="name" type="string" use="required">

-            <annotation>

-               <documentation>

-                  the name

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="class" type="string" use="required">

-            <annotation>

-               <documentation>

-                  The class of converter must implement the interface  org.eclipse.core.databinding.conversion.IConverter

-               </documentation>

-               <appinfo>

-                  <meta.attribute kind="java" basedOn=":org.eclipse.core.databinding.conversion.IConverter"/>

-               </appinfo>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <annotation>

-      <appinfo>

-         <meta.section type="since"/>

-      </appinfo>

-      <documentation>

-         [Enter the first release in which this extension point appears.]

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appinfo>

-         <meta.section type="examples"/>

-      </appinfo>

-      <documentation>

-         Here is an example to define the converter from String to URL: 

-&lt;pre&gt;

-   &lt;extension

-         point=&quot;org.eclipse.xwt.pde.converters&quot;&gt;

-      &lt;converter

-            class=&quot;org.eclipse.xwt.demo.URLConverter&quot;

-            name=&quot;URLConverter&quot;&gt;

-      &lt;/converter&gt;

-   &lt;/extension&gt;

-&lt;/pre&gt;

-

-&lt;p&gt;The class implementation should be: &lt;/p&gt;

-&lt;pre&gt;

-package org.eclipse.xwt.demo;

-

-import java.net.MalformedURLException;

-import java.net.URL;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-

-public class URLConverter implements IConverter {

-  public Object convert(Object fromObject) {

-    try {

-      return new URL((String) fromObject);

-    } catch (MalformedURLException e) {

-      throw new RuntimeException(e);

-    }

-  }

-

-  public Object getFromType() {

-    return String.class;

-  }

-

-  public Object getToType() {

-    return URL.class;

-  }

-}

-&lt;/pre&gt;

-

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appinfo>

-         <meta.section type="apiinfo"/>

-      </appinfo>

-      <documentation>

-         [Enter API information here.]

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appinfo>

-         <meta.section type="implementation"/>

-      </appinfo>

-      <documentation>

-         [Enter information about supplied implementation of this extension point.]

-      </documentation>

-   </annotation>

-

-

-</schema>

diff --git a/org.eclipse.xwt.pde/schema/logger.exsd b/org.eclipse.xwt.pde/schema/logger.exsd
deleted file mode 100644
index 1ff25c5..0000000
--- a/org.eclipse.xwt.pde/schema/logger.exsd
+++ /dev/null
@@ -1,115 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>

-<!-- Schema file written by PDE -->

-<schema targetNamespace="org.eclipse.xwt.pde" xmlns="http://www.w3.org/2001/XMLSchema">

-<annotation>

-      <appinfo>

-         <meta.schema plugin="org.eclipse.xwt.pde" id="logger" name="logger"/>

-      </appinfo>

-      <documentation>

-         The logger class will be used by XWT framework. 

-      </documentation>

-   </annotation>

-

-   <element name="extension">

-      <annotation>

-         <appinfo>

-            <meta.element />

-         </appinfo>

-      </annotation>

-      <complexType>

-         <sequence>

-            <element ref="logger"/>

-         </sequence>

-         <attribute name="point" type="string" use="required">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="id" type="string">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="name" type="string">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-               <appinfo>

-                  <meta.attribute translatable="true"/>

-               </appinfo>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <element name="logger">

-      <annotation>

-         <documentation>

-            Tracker logger will be set in XWT class and will be used by XWT Framework

-         </documentation>

-      </annotation>

-      <complexType>

-         <attribute name="class" type="string" use="required">

-            <annotation>

-               <documentation>

-                  The logger class must implements the interface org.eclipse.xwt.ILogger

-               </documentation>

-               <appinfo>

-                  <meta.attribute kind="java" basedOn=":org.eclipse.xwt.ILogger"/>

-               </appinfo>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <annotation>

-      <appinfo>

-         <meta.section type="since"/>

-      </appinfo>

-      <documentation>

-         [Enter the first release in which this extension point appears.]

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appinfo>

-         <meta.section type="examples"/>

-      </appinfo>

-      <documentation>

-         Here is an example to declare the logger: 

-&lt;pre&gt;

-   &lt;extension

-         point=&quot;org.eclipse.xwt.pde.logger&quot;&gt;

-      &lt;logger

-            class=&quot;org.eclipse.xwt.demo.Logger&quot;&gt;

-      &lt;/logger&gt;

-   &lt;/extension&gt;

-&lt;/pre&gt;

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appinfo>

-         <meta.section type="apiinfo"/>

-      </appinfo>

-      <documentation>

-         [Enter API information here.]

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appinfo>

-         <meta.section type="implementation"/>

-      </appinfo>

-      <documentation>

-         [Enter information about supplied implementation of this extension point.]

-      </documentation>

-   </annotation>

-

-

-</schema>

diff --git a/org.eclipse.xwt.pde/schema/metaclassFactories.exsd b/org.eclipse.xwt.pde/schema/metaclassFactories.exsd
deleted file mode 100644
index 0fb1d9a..0000000
--- a/org.eclipse.xwt.pde/schema/metaclassFactories.exsd
+++ /dev/null
@@ -1,123 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>

-<!-- Schema file written by PDE -->

-<schema targetNamespace="org.eclipse.xwt.pde" xmlns="http://www.w3.org/2001/XMLSchema">

-<annotation>

-      <appinfo>

-         <meta.schema plugin="org.eclipse.xwt.pde" id="metaclassFactories" name="Metaclass Factory"/>

-      </appinfo>

-      <documentation>

-         This extension point is used to register a MetaclassFactory

-      </documentation>

-   </annotation>

-

-   <element name="extension">

-      <annotation>

-         <appinfo>

-            <meta.element />

-         </appinfo>

-      </annotation>

-      <complexType>

-         <choice>

-            <element ref="metaclassFactory" minOccurs="0" maxOccurs="unbounded"/>

-         </choice>

-         <attribute name="point" type="string" use="required">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="id" type="string">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="name" type="string">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-               <appinfo>

-                  <meta.attribute translatable="true"/>

-               </appinfo>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <element name="metaclassFactory">

-      <annotation>

-         <documentation>

-            Metaclass definition

-         </documentation>

-      </annotation>

-      <complexType>

-         <attribute name="name" type="string" use="required">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="metaclass" type="string" use="required">

-            <annotation>

-               <documentation>

-                  The factopry class

-               </documentation>

-               <appinfo>

-                  <meta.attribute kind="java" basedOn=":org.eclipse.xwt.IMetaclassFactory"/>

-               </appinfo>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <annotation>

-      <appinfo>

-         <meta.section type="since"/>

-      </appinfo>

-      <documentation>

-         [Enter the first release in which this extension point appears.]

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appinfo>

-         <meta.section type="examples"/>

-      </appinfo>

-      <documentation>

-         Here is an example to declare the Metaclassfactory class to create the specific metaclasses for JFreeChart library: 

-&lt;pre&gt;

-   &lt;extension

-         point=&quot;org.eclipse.xwt.pde.metaclassFactories&quot;&gt;

-      &lt;metaclassFactory

-            metaclass=&quot;org.eclipse.xwt.demo.JFreeChartFactory&quot;

-            name=&quot;JFreeChart&quot;&gt;

-      &lt;/metaclassFactory&gt;

-   &lt;/extension&gt;

-&lt;/pre&gt;

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appinfo>

-         <meta.section type="apiinfo"/>

-      </appinfo>

-      <documentation>

-         [Enter API information here.]

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appinfo>

-         <meta.section type="implementation"/>

-      </appinfo>

-      <documentation>

-         [Enter information about supplied implementation of this extension point.]

-      </documentation>

-   </annotation>

-

-

-</schema>

diff --git a/org.eclipse.xwt.pde/schema/metaclasses.exsd b/org.eclipse.xwt.pde/schema/metaclasses.exsd
deleted file mode 100644
index 4abba5f..0000000
--- a/org.eclipse.xwt.pde/schema/metaclasses.exsd
+++ /dev/null
@@ -1,213 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>

-<!-- Schema file written by PDE -->

-<schema targetNamespace="org.eclipse.xwt.pde" xmlns="http://www.w3.org/2001/XMLSchema">

-	<annotation>

-		<appinfo>

-         <meta.schema plugin="org.eclipse.xwt.pde" id="metaclasses"

-			name="metaclasses" />

-      </appinfo>

-		<documentation>

-         This extension point is used to register a metaclass in XWT Framework

-      </documentation>

-	</annotation>

-	<element name="extension">

-		<annotation>

-			<appinfo>

-            <meta.element />

-         </appinfo>

-		</annotation>

-		<complexType>

-			<sequence>

-				<element ref="metaclass" minOccurs="0" maxOccurs="unbounded" />

-			</sequence>

-			<attribute name="point" type="string" use="required">

-				<annotation>

-					<documentation>

-                  

-               </documentation>

-				</annotation>

-			</attribute>

-			<attribute name="id" type="string">

-				<annotation>

-					<documentation>

-                  

-               </documentation>

-				</annotation>

-			</attribute>

-			<attribute name="name" type="string">

-				<annotation>

-					<documentation>

-                  

-               </documentation>

-					<appinfo>

-                  <meta.attribute translatable="true" />

-               </appinfo>

-				</annotation>

-			</attribute>

-		</complexType>

-	</element>

-	<element name="metaclass">

-		<annotation>

-			<documentation>

-            A metaclass

-         </documentation>

-		</annotation>

-		<complexType>

-			<choice minOccurs="0" maxOccurs="unbounded">

-				<element ref="property" minOccurs="0" maxOccurs="unbounded" />

-			</choice>

-			<attribute name="type" type="string" use="required">

-				<annotation>

-					<documentation>

-                  The Java type

-               </documentation>

-					<appinfo>

-                  <meta.attribute kind="java" />

-               </appinfo>

-				</annotation>

-			</attribute>

-		</complexType>

-	</element>

-	<element name="property">

-		<annotation>

-			<documentation>

-            property in UI element

-         </documentation>

-		</annotation>

-		<complexType>

-			<choice minOccurs="0" maxOccurs="unbounded">

-				<element ref="SetPostAction" minOccurs="0" maxOccurs="unbounded" />

-			</choice>

-			<attribute name="name" type="string" use="required">

-				<annotation>

-					<documentation>

-                  

-               </documentation>

-				</annotation>

-			</attribute>

-			<attribute name="class" type="string">

-				<annotation>

-					<documentation>

-                  

-               </documentation>

-					<appinfo>

-                  <meta.attribute kind="java"

-						basedOn=":org.eclipse.xwt.metadata.IProperty" />

-               </appinfo>

-				</annotation>

-			</attribute>

-			<attribute name="type" type="string">

-				<annotation>

-					<documentation>

-                  

-               </documentation>

-					<appinfo>

-                  <meta.attribute kind="java" />

-               </appinfo>

-				</annotation>

-			</attribute>

-			<attribute name="amount" use="default" value="single">

-				<annotation>

-					<documentation>

-                  If you want to register an array property, select the &quot;array&quot;, otherwise use the &quot;single&quot;.

-               </documentation>

-            </annotation>

-            <simpleType>

-               <restriction base="string">

-                  <enumeration value="single">

-                  </enumeration>

-                  <enumeration value="array">

-                  </enumeration>

-               </restriction>

-            </simpleType>

-         </attribute>

-         <attribute name="overwrite" type="boolean" use="default" value="false">

-            <annotation>

-               <documentation>

-                  If you want to overwrite the property, set true

-               </documentation>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <element name="event">

-      <annotation>

-         <documentation>

-            Event in UI element

-         </documentation>

-      </annotation>

-      <complexType>

-         <attribute name="name" type="string" use="required">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="java" type="string" use="required">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-               <appinfo>

-                  <meta.attribute kind="java" basedOn=":org.eclipse.xwt.metadata.IEvent"/>

-               </appinfo>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <element name="SetPostAction">

-      <complexType>

-         <attribute name="SetPostActionName" type="string" use="required">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-               <appinfo>

-                  <meta.attribute kind="java"/>

-               </appinfo>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <annotation>

-      <appinfo>

-         <meta.section type="since"/>

-      </appinfo>

-      <documentation>

-         [Enter the first release in which this extension point appears.]

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appinfo>

-         <meta.section type="examples"/>

-      </appinfo>

-      <documentation>

-         [Enter extension point usage example here.]

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appinfo>

-         <meta.section type="apiinfo"/>

-      </appinfo>

-      <documentation>

-         [Enter API information here.]

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appinfo>

-         <meta.section type="implementation"/>

-      </appinfo>

-      <documentation>

-         [Enter information about supplied implementation of this extension point.]

-      </documentation>

-   </annotation>

-

-

-</schema>

diff --git a/org.eclipse.xwt.pde/schema/styles.exsd b/org.eclipse.xwt.pde/schema/styles.exsd
deleted file mode 100644
index 3a11b38..0000000
--- a/org.eclipse.xwt.pde/schema/styles.exsd
+++ /dev/null
@@ -1,102 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>

-<!-- Schema file written by PDE -->

-<schema targetNamespace="org.eclipse.xwt.pde" xmlns="http://www.w3.org/2001/XMLSchema">

-<annotation>

-      <appinfo>

-         <meta.schema plugin="org.eclipse.xwt.pde" id="style" name="styles"/>

-      </appinfo>

-      <documentation>

-         This extension point is used to define a new Default Styles

-      </documentation>

-   </annotation>

-

-   <element name="extension">

-      <annotation>

-         <appinfo>

-            <meta.element />

-         </appinfo>

-      </annotation>

-      <complexType>

-         <sequence minOccurs="1" maxOccurs="unbounded">

-            <element ref="style"/>

-         </sequence>

-         <attribute name="point" type="string" use="required">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="id" type="string">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-            </annotation>

-         </attribute>

-         <attribute name="name" type="string">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-               <appinfo>

-                  <meta.attribute translatable="true"/>

-               </appinfo>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <element name="style">

-      <complexType>

-         <attribute name="class" type="string" use="required">

-            <annotation>

-               <documentation>

-                  

-               </documentation>

-               <appinfo>

-                  <meta.attribute kind="java"/>

-               </appinfo>

-            </annotation>

-         </attribute>

-      </complexType>

-   </element>

-

-   <annotation>

-      <appinfo>

-         <meta.section type="since"/>

-      </appinfo>

-      <documentation>

-         [Enter the first release in which this extension point appears.]

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appinfo>

-         <meta.section type="examples"/>

-      </appinfo>

-      <documentation>

-         [Enter extension point usage example here.]

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appinfo>

-         <meta.section type="apiinfo"/>

-      </appinfo>

-      <documentation>

-         [Enter API information here.]

-      </documentation>

-   </annotation>

-

-   <annotation>

-      <appinfo>

-         <meta.section type="implementation"/>

-      </appinfo>

-      <documentation>

-         [Enter information about supplied implementation of this extension point.]

-      </documentation>

-   </annotation>

-

-

-</schema>

diff --git a/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ExtensionService.java b/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ExtensionService.java
deleted file mode 100644
index e1f5176..0000000
--- a/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ExtensionService.java
+++ /dev/null
@@ -1,280 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.pde;

-

-import java.lang.reflect.Array;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.core.runtime.IConfigurationElement;

-import org.eclipse.core.runtime.IExtension;

-import org.eclipse.core.runtime.IExtensionPoint;

-import org.eclipse.core.runtime.IExtensionRegistry;

-import org.eclipse.core.runtime.IStatus;

-import org.eclipse.core.runtime.Platform;

-import org.eclipse.core.runtime.Status;

-import org.eclipse.xwt.ILogger;

-import org.eclipse.xwt.IMetaclassFactory;

-import org.eclipse.xwt.IStyle;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.input.ICommand;

-import org.eclipse.xwt.javabean.metadata.properties.DynamicProperty;

-import org.eclipse.xwt.metadata.IMetaclass;

-import org.eclipse.xwt.metadata.IProperty;

-import org.eclipse.xwt.metadata.ISetPostAction;

-

-public class ExtensionService {

-	public static final String METACLASS_REGISTER_ID = PDEPlugin.PLUGIN_ID

-			+ "." + "metaclasses";

-	public static final String CONVERTER_REGISTER_ID = PDEPlugin.PLUGIN_ID

-			+ "." + "converters";

-	public static final String LOGGER_REGISTER_ID = PDEPlugin.PLUGIN_ID + "."

-			+ "logger";

-	public static final String COMMANDS_REGISTER_ID = PDEPlugin.PLUGIN_ID + "."

-			+ "commands";

-	public static final String METACLASS_FACTORY_ID = PDEPlugin.PLUGIN_ID + "."

-			+ "metaclassFactories";

-	public static final String STYLES_REGISTER_ID = PDEPlugin.PLUGIN_ID + "."

-			+ "styles";

-

-	static final String METACLASS = "metaclass";

-	static final String TYPE = "type";

-	static final String CLASS = "class";

-	static final String PROPERTY = "property";

-	static final String EVENT = "event";

-	static final String NAME = "name";

-	static final String AMOUNT = "amount";

-	static final String SINGLE = "single";

-	static final String ARRAY = "array";

-	static final String SETPOSTACTION = "SetPostAction";

-	static final String OVERWRITE = "overwrite";

-	static final String COMMAND = "command";

-	static final String STYLE = "style";

-	static final String TRUE = "true";

-

-	static final String CONVERTERS = "converters";

-	static final String CONVERTER = "converter";

-

-	static final String METACLASSFACTORY = "metaclassFactory";

-

-	static final String DYNAMIC_PROPERTY = "DynamicProperty";

-	static final String TABLEITEM_PROPERTY = "TableItemProperty";

-	static final String DATACONTEXT_PROPERTY = "DataContextProperty";

-	static final String EXISTING_PROPERTY = "ExistingProperty";

-

-	static final String TableItem = "org.eclipse.swt.widgets.TableItem";

-	static final String Cells = "Cells";

-

-	public static void initialize() {

-		IConfigurationElement[] converterConfigurationElements = Platform

-				.getExtensionRegistry().getConfigurationElementsFor(

-						CONVERTER_REGISTER_ID);

-		for (IConfigurationElement converterConfigurationElement : converterConfigurationElements) {

-			if (CONVERTER.equals(converterConfigurationElement.getName())) {

-				// register converters here

-				try {

-					IConverter newInstance = (IConverter) converterConfigurationElement

-							.createExecutableExtension(CLASS);

-					XWT.registerConvertor(newInstance);

-				} catch (Exception e) {

-					e.printStackTrace();

-					PDEPlugin.getDefault().getLog().log(

-							new Status(IStatus.ERROR, PDEPlugin.PLUGIN_ID,

-									"Converter registration error", e));

-				}

-			}

-

-			IConfigurationElement[] metaclassConfigurationElements = Platform

-					.getExtensionRegistry().getConfigurationElementsFor(

-							METACLASS_REGISTER_ID);

-			for (IConfigurationElement configurationElement : metaclassConfigurationElements) {

-				if (METACLASS.equals(configurationElement.getName())) {

-					String componentName = configurationElement

-							.getAttribute(TYPE);

-					try {

-						Class<?> newClass = Class.forName(componentName);

-						IMetaclass newMetaclass = (IMetaclass) XWT

-								.registerMetaclass(newClass);

-						IConfigurationElement[] children = configurationElement

-								.getChildren();

-						if (children != null) {

-							for (IConfigurationElement configurationElementChildern : children) {

-								if (PROPERTY

-										.equals(configurationElementChildern

-												.getName())) {

-									// property codes here

-									String propertyName = configurationElementChildern

-											.getAttribute(NAME);

-									String className = configurationElementChildern

-											.getAttribute(CLASS);

-									String typeName = configurationElementChildern

-											.getAttribute(TYPE);

-									String propertyAmount = configurationElementChildern

-											.getAttribute(AMOUNT);

-									String overwrite = configurationElementChildern

-											.getAttribute(OVERWRITE);

-

-									IProperty property = newMetaclass

-											.findProperty(propertyName);

-									if (property == null

-											|| overwrite.equals(TRUE)) {

-										if (className != null) {

-											property = (IProperty) configurationElementChildern

-													.createExecutableExtension(CLASS);

-											newMetaclass.addProperty(property);

-										} else if (typeName != null) {

-											if (SINGLE.equals(propertyAmount)) {

-												property = new DynamicProperty(

-														newClass,

-														Class.forName(typeName),

-														propertyName);

-

-											} else {

-												Object newInstance = Array

-														.newInstance(

-																Class

-																		.forName(typeName),

-																1);

-												property = new DynamicProperty(

-														newClass, newInstance

-																.getClass(),

-														propertyName);

-											}

-										}

-										if (property != null) {

-											// if ((className == null) &&

-											// (typeName != null) &&

-											// ARRAY.equals(propertyAmount)) {

-											// newMetaclass.addArrayProperty(property);

-											// } else {

-											newMetaclass.addProperty(property);

-											// }

-										}

-									}

-

-									// add SetPostAction to property

-									IConfigurationElement[] propertyChildren = configurationElementChildern

-											.getChildren();

-									if (propertyChildren != null) {

-										for (IConfigurationElement propertyConfigurationElement : propertyChildren) {

-											if (SETPOSTACTION

-													.equals(propertyConfigurationElement)) {

-												String setPostActionName = propertyConfigurationElement

-														.getAttribute(SETPOSTACTION);

-												property

-														.addSetPostAction((ISetPostAction) Class

-																.forName(

-																		setPostActionName)

-																.newInstance());

-											}

-										}

-									}

-								} else if (EVENT

-										.equals(configurationElementChildern

-												.getName())) {

-									// event codes here

-								}

-							}

-						}

-					} catch (Exception e) {

-						e.printStackTrace();

-						PDEPlugin.getDefault().getLog().log(

-								new Status(IStatus.ERROR, PDEPlugin.PLUGIN_ID,

-										"Type registration error", e));

-					}

-				}

-			}

-		}

-

-		IExtensionRegistry regs = Platform.getExtensionRegistry();

-		if (regs != null) {

-			IExtensionPoint ep = regs.getExtensionPoint(LOGGER_REGISTER_ID);

-			IExtension[] extensions = ep.getExtensions();

-			if (extensions.length > 0) {

-				IExtension extension = extensions[0];

-				IConfigurationElement ce = extension.getConfigurationElements()[0];

-				try {

-					Object object = ce.createExecutableExtension("class");

-					if (object != null) {

-						XWT.setLogger((ILogger) object);

-					}

-				} catch (CoreException e) {

-					e.printStackTrace();

-				}

-			}

-		}

-

-		IConfigurationElement[] commandsConfigurationElements = Platform

-				.getExtensionRegistry().getConfigurationElementsFor(

-						COMMANDS_REGISTER_ID);

-		for (IConfigurationElement commandConfigurationElement : commandsConfigurationElements) {

-			if (COMMAND.equals(commandConfigurationElement.getName())) {

-				// register converters here

-				String commandName = commandConfigurationElement

-						.getAttribute(NAME);

-				try {

-					ICommand newInstance = (ICommand) commandConfigurationElement

-							.createExecutableExtension(CLASS);

-					XWT.registerCommand(commandName, newInstance);

-				} catch (Exception e) {

-					e.printStackTrace();

-					PDEPlugin.getDefault().getLog().log(

-							new Status(IStatus.ERROR, PDEPlugin.PLUGIN_ID,

-									"Converter registration error", e));

-				}

-			}

-		}

-

-		IConfigurationElement[] stylesConfigurationElements = Platform

-				.getExtensionRegistry().getConfigurationElementsFor(

-						STYLES_REGISTER_ID);

-		for (IConfigurationElement styleConfigurationElement : stylesConfigurationElements) {

-			if (STYLE.equals(styleConfigurationElement.getName())) {

-				try {

-					IStyle newInstance = (IStyle) styleConfigurationElement

-							.createExecutableExtension(CLASS);

-					XWT.addDefaultStyle(newInstance);

-				} catch (Exception e) {

-					e.printStackTrace();

-					PDEPlugin.getDefault().getLog().log(

-							new Status(IStatus.ERROR, PDEPlugin.PLUGIN_ID,

-									"Converter registration error", e));

-				}

-			}

-		}

-	}

-

-	public static IMetaclassFactory getMetaclassFactory(Class<?> type) {

-		IConfigurationElement[] metaclassFactoryElements = Platform

-				.getExtensionRegistry().getConfigurationElementsFor(

-						METACLASS_FACTORY_ID);

-		for (IConfigurationElement metaclassFactoryElement : metaclassFactoryElements) {

-			if (METACLASSFACTORY.equals(metaclassFactoryElement.getName())) {

-				// get metaclassFactory here

-				String metaclassFactoryName = metaclassFactoryElement

-						.getAttribute(NAME);

-				try {

-					IMetaclassFactory newInstance = (IMetaclassFactory) metaclassFactoryElement

-							.createExecutableExtension(METACLASS);

-					if (newInstance != null) {

-						return newInstance;

-					}

-				} catch (Exception e) {

-					e.printStackTrace();

-					PDEPlugin.getDefault().getLog().log(

-							new Status(IStatus.ERROR, PDEPlugin.PLUGIN_ID,

-									"get metaclassFactory here", e));

-				}

-			}

-		}

-		return null;

-	}

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/PDEPlugin.java b/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/PDEPlugin.java
deleted file mode 100644
index 7ca2a40..0000000
--- a/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/PDEPlugin.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.pde;

-

-import org.eclipse.core.runtime.IStatus;

-import org.eclipse.core.runtime.Platform;

-import org.eclipse.core.runtime.Status;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.ui.IWorkbench;

-import org.eclipse.ui.IWorkbenchWindow;

-import org.eclipse.ui.PlatformUI;

-import org.eclipse.ui.plugin.AbstractUIPlugin;

-import org.osgi.framework.Bundle;

-import org.osgi.framework.BundleContext;

-import org.osgi.framework.BundleException;

-

-/**

- * The activator class controls the plug-in life cycle

- */

-public class PDEPlugin extends AbstractUIPlugin {

-

-	// The plug-in ID

-	public static final String PLUGIN_ID = "org.eclipse.xwt.pde";

-

-	// The shared instance

-	private static PDEPlugin plugin;

-

-	private static BundleContext context;

-

-	/**

-	 * The constructor

-	 */

-	public PDEPlugin() {

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext

-	 * )

-	 */

-	public void start(BundleContext context) throws Exception {

-		super.start(context);

-		plugin = this;

-

-		// To register all metaclass using EP for XWT

-		ExtensionService.initialize();

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext

-	 * )

-	 */

-	public void stop(BundleContext context) throws Exception {

-		plugin = null;

-		super.stop(context);

-	}

-

-	/**

-	 * Returns the shared instance

-	 * 

-	 * @return the shared instance

-	 */

-	public static PDEPlugin getDefault() {

-		return plugin;

-	}

-

-	public static BundleContext getContext() {

-		return context;

-	}

-

-	public static void checkStartup() {

-		Bundle bundle = Platform.getBundle("org.eclipse.xwt");

-		if (bundle.getState() != Bundle.ACTIVE) {

-			try {

-				bundle.start(Bundle.START_TRANSIENT);

-			} catch (BundleException e) {

-				e.printStackTrace();

-			}

-		}

-	}

-

-	static public Shell getShell() {

-		IWorkbench workbench = PlatformUI.getWorkbench();

-		IWorkbenchWindow activeWorkbenchWindow = workbench

-				.getActiveWorkbenchWindow();

-		if (activeWorkbenchWindow == null)

-			return null;

-		return activeWorkbenchWindow.getShell();

-	}

-

-	public static void log(int severity, int code, String message,

-			Throwable exception) {

-		getDefault().getLog().log(

-				new Status(severity,

-						getDefault().getBundle().getSymbolicName(), code,

-						message, exception));

-	}

-

-	public static void log(int severity, int code, String message) {

-		getDefault().getLog().log(

-				new Status(severity,

-						getDefault().getBundle().getSymbolicName(), code,

-						message, null));

-	}

-

-	public static void log(int severity, String message) {

-		getDefault().getLog().log(

-				new Status(severity,

-						getDefault().getBundle().getSymbolicName(), -1,

-						message, null));

-	}

-

-	public static void log(Throwable exception) {

-		getDefault().getLog().log(

-				new Status(IStatus.ERROR, getDefault().getBundle()

-						.getSymbolicName(), -1, "", exception));

-	}

-}

diff --git a/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/ExceptionHandle.java b/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/ExceptionHandle.java
deleted file mode 100644
index 52f7a09..0000000
--- a/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/ExceptionHandle.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.pde.ui;

-

-import org.eclipse.jface.dialogs.MessageDialog;

-import org.eclipse.xwt.pde.PDEPlugin;

-

-public class ExceptionHandle {

-

-	static public void handle(Exception e, String message) {

-		if (e.getMessage() != null) {

-			message += "\n" + e.getMessage();

-		}

-		MessageDialog.openError(PDEPlugin.getShell(), "Erreur: ", message);

-	}

-}

diff --git a/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/RCPApplication.java b/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/RCPApplication.java
deleted file mode 100644
index c322bfc..0000000
--- a/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/RCPApplication.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.pde.ui;

-

-import java.net.URL;

-

-import org.eclipse.core.runtime.Platform;

-import org.eclipse.equinox.app.IApplication;

-import org.eclipse.equinox.app.IApplicationContext;

-import org.eclipse.xwt.DefaultLoadingContext;

-import org.eclipse.xwt.XWT;

-

-/**

- * Abstract application class for RCP

- * 

- * @author yyang

- *

- */

-public abstract class RCPApplication implements IApplication {

-

-	final public Object start(IApplicationContext context) throws Exception {

-		Platform.endSplash();

-		XWT.setLoadingContext(new DefaultLoadingContext(this.getClass()

-				.getClassLoader()));

-		initialize();

-		try {

-			URL input = getInputURL();

-			XWT.open(input);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-		Thread.currentThread().join();

-		return IApplication.EXIT_OK;

-	}

-

-	abstract protected URL getInputURL();

-

-	protected void initialize() {

-	}

-

-	public void stop() {

-	}

-}

diff --git a/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/URLConverter.java b/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/URLConverter.java
deleted file mode 100644
index 1aaf230..0000000
--- a/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/URLConverter.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.pde.ui;

-

-import java.net.MalformedURLException;

-import java.net.URL;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-

-/**

- * Data type converter

- * 

- * @author yyang

- */

-public class URLConverter implements IConverter {

-

-	public Object convert(Object fromObject) {

-		try {

-			return new URL((String) fromObject);

-		} catch (MalformedURLException e) {

-			throw new RuntimeException(e);

-		}

-	}

-

-	public Object getFromType() {

-		return String.class;

-	}

-

-	public Object getToType() {

-		return URL.class;

-	}

-}

diff --git a/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/views/XWTEditorPart.java b/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/views/XWTEditorPart.java
deleted file mode 100644
index 208fd55..0000000
--- a/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/views/XWTEditorPart.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.pde.ui.views;

-

-import java.io.InputStream;

-import java.net.URL;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.layout.FillLayout;

-import org.eclipse.swt.layout.GridData;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.ui.IEditorInput;

-import org.eclipse.ui.IEditorSite;

-import org.eclipse.ui.PartInitException;

-import org.eclipse.ui.part.EditorPart;

-import org.eclipse.xwt.DefaultLoadingContext;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.databinding.BindingContext;

-

-/**

- * 

- * @author yyang

- */

-public abstract class XWTEditorPart extends EditorPart {

-	protected Composite container;

-	protected Object dataContext;

-

-	@Override

-	public void init(IEditorSite site, IEditorInput input)

-			throws PartInitException {

-		setInput(input);

-		setSite(site);

-	}

-

-	@Override

-	public void createPartControl(Composite parent) {

-		container = new Composite(parent, SWT.NONE);

-		container.setLayoutData(new GridData(GridData.FILL_BOTH));

-		container.setLayout(new FillLayout());

-		container.setBackgroundMode(SWT.INHERIT_DEFAULT);

-		updateContent();

-	}

-

-	public void setContent(URL file) {

-		XWT.setLoadingContext(new DefaultLoadingContext(this.getClass()

-				.getClassLoader()));

-

-		for (Control child : container.getChildren()) {

-			child.dispose();

-		}

-

-		try {

-			XWT.load(file);

-			container.layout(true, true);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	public void setContent(InputStream inputStream, URL base) {

-		XWT.setLoadingContext(new DefaultLoadingContext(getClassLoader()));

-

-		for (Control child : container.getChildren()) {

-			child.dispose();

-		}

-

-		try {

-			XWT.load(container, inputStream, base, getDataContext());

-			container.layout(true, true);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-	

-	protected ClassLoader getClassLoader() {

-		return this.getClass().getClassLoader();

-	}

-

-	public Object getDataContext() {

-		if (dataContext == null) {

-			dataContext = createDataContext();

-		}

-		return dataContext;

-	}

-

-	/**

-	 * Create the data context from IEditorInput

-	 * 

-	 * @return

-	 */

-	protected abstract Object createDataContext();

-

-	/**

-	 * update the editor content

-	 */

-	protected abstract void updateContent();

-}

diff --git a/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/views/XWTViewPart.java b/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/views/XWTViewPart.java
deleted file mode 100644
index 589e0e5..0000000
--- a/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/views/XWTViewPart.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.pde.ui.views;

-

-import java.io.InputStream;

-import java.net.URL;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.layout.FillLayout;

-import org.eclipse.swt.layout.GridData;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.ui.part.ViewPart;

-import org.eclipse.xwt.DefaultLoadingContext;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.pde.PDEPlugin;

-

-/**

- * This sample class demonstrates how to plug-in a new workbench view. The view

- * shows data obtained from the model. The sample creates a dummy model on the

- * fly, but a real implementation would connect to the model available either in

- * this or another plug-in (e.g. the workspace). The view is connected to the

- * model using a content provider.

- * <p>

- * The view uses a label provider to define how model objects should be

- * presented in the view. Each view can present the same model objects using

- * different labels and icons, if needed. Alternatively, a single label provider

- * can be shared between views in order to ensure that objects of the same type

- * are presented in the same way everywhere.

- * <p>

- * 

- * @author yyang

- */

-public abstract class XWTViewPart extends ViewPart {

-	protected Composite container;

-	protected Object dataContext;

-

-	static {

-		PDEPlugin.checkStartup();

-	}

-

-	/**

-	 * The constructor.

-	 */

-	public XWTViewPart() {

-	}

-

-	/**

-	 * This is a callback that will allow us to create the viewer and initialize

-	 * it.

-	 */

-	public void createPartControl(Composite parent) {

-		container = new Composite(parent, SWT.NONE);

-		container.setLayoutData(new GridData(GridData.FILL_BOTH));

-		container.setLayout(new FillLayout());

-		container.setBackgroundMode(SWT.INHERIT_DEFAULT);

-

-		updateContent();

-	}

-

-	abstract protected void updateContent();

-

-	public void setContent(URL file) {

-		XWT.setLoadingContext(new DefaultLoadingContext(getClassLoader()));

-

-		for (Control child : container.getChildren()) {

-			child.dispose();

-		}

-

-		try {

-			XWT.load(container, file, getDataContext());

-			container.layout(true, true);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-	

-	protected ClassLoader getClassLoader() {

-		return this.getClass().getClassLoader();

-	}

-

-	public void setContent(InputStream inputStream, URL base) {

-		XWT.setLoadingContext(new DefaultLoadingContext(getClassLoader()));

-

-		for (Control child : container.getChildren()) {

-			child.dispose();

-		}

-

-		try {

-			XWT.load(container, inputStream, base, getDataContext());

-			container.layout(true, true);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	/**

-	 * Passing the focus request to the viewer's control.

-	 */

-	public void setFocus() {

-	}

-

-	public Object getDataContext() {

-		return dataContext;

-	}

-

-	public void setDataContext(Object dataContext) {

-		this.dataContext = dataContext;

-		updateContent();

-	}

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/wizard/XWTWizardPage.java b/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/wizard/XWTWizardPage.java
deleted file mode 100644
index a681fab..0000000
--- a/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/wizard/XWTWizardPage.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec and Valoueee - initial API and implementation

- *       http://www.eclipse.org/forums/index.php?t=msg&th=199619&start=0&S=eeee2217897168580b83685b5756bc21

- *******************************************************************************/

-package org.eclipse.xwt.pde.ui.wizard;

-

-import java.io.InputStream;

-import java.net.URL;

-import java.util.HashMap;

-

-import org.eclipse.core.databinding.AggregateValidationStatus;

-import org.eclipse.core.databinding.observable.ChangeEvent;

-import org.eclipse.core.databinding.observable.IChangeListener;

-import org.eclipse.core.runtime.IStatus;

-import org.eclipse.jface.databinding.swt.ISWTObservable;

-import org.eclipse.jface.resource.ImageDescriptor;

-import org.eclipse.jface.wizard.WizardPage;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTLoader;

-import org.eclipse.xwt.databinding.BindingContext;

-import org.eclipse.xwt.internal.core.UIResource;

-

-public abstract class XWTWizardPage extends WizardPage {

-

-	private Object dataContext;

-	private BindingContext bindingContext;

-	private AggregateValidationStatus validationStatus;

-

-	private PageStateManager pageStateManager = new PageStateManager();

-

-	private UIResource uiResource;

-

-	class PageStateManager implements IChangeListener {

-		public void handleChange(ChangeEvent event) {

-			Object source = event.getSource();

-			if (!(source instanceof ISWTObservable)) {

-				setPageComplete(false);

-			}

-		}

-	}

-

-	protected XWTWizardPage(String pageName, String title,

-			ImageDescriptor titleImage, Object dataContext) {

-		this(pageName, title, titleImage, dataContext, null);

-	}

-

-	protected XWTWizardPage(String pageName, String title,

-			ImageDescriptor titleImage, Object dataContext, UIResource uiResource) {

-		this(pageName, title, titleImage, dataContext, null, uiResource);

-	}

-

-	protected XWTWizardPage(String pageName, String title,

-			ImageDescriptor titleImage, Object dataContext,

-			BindingContext bindingContext, UIResource uiResource) {

-		super(pageName, title, null);

-		this.dataContext = dataContext;

-		this.bindingContext = bindingContext;

-		this.uiResource = uiResource;

-	}

-

-	public void createControl(Composite _parent) {

-		if (bindingContext == null) {

-			bindingContext = new BindingContext(_parent);

-		}

-		validationStatus = bindingContext.getStatus();

-		validationStatus.addChangeListener(new IChangeListener() {

-			public void handleChange(ChangeEvent event) {

-				IStatus status = (IStatus) validationStatus.getValue();

-				setMessage(status.getMessage(), status.getSeverity());

-			}

-		});

-

-		ClassLoader classLoader = Thread.currentThread()

-				.getContextClassLoader();

-		try {

-			Thread.currentThread().setContextClassLoader(getClassLoader());

-			HashMap<String, Object> newOptions = new HashMap<String, Object>();

-			newOptions.put(XWTLoader.CONTAINER_PROPERTY, _parent);

-			Object dataContext = getDataContext();

-			if (dataContext != null) {

-				newOptions.put(XWTLoader.DATACONTEXT_PROPERTY, dataContext);

-			}

-			BindingContext bindingContext = getBindingContext();

-			if (bindingContext != null) {

-				newOptions.put(XWTLoader.BINDING_CONTEXT_PROPERTY,

-						bindingContext);

-			}

-

-			InputStream inputStream = getContentInputStream();

-

-			Object element = null;

-			if (uiResource != null) {

-				element = XWT.loadWithOptions(uiResource, newOptions);

-			} else {

-				element = (inputStream == null ? XWT.loadWithOptions(

-						getContentURL(), newOptions) : XWT.loadWithOptions(

-						inputStream, getContentURL(), newOptions));

-			}

-			if (element instanceof Control) {

-				Control control = (Control) element;

-				setControl(control);

-				XWT.addObservableChangeListener(control, pageStateManager);

-			}

-		} catch (Exception e) {

-			e.printStackTrace();

-		} finally {

-			Thread.currentThread().setContextClassLoader(classLoader);

-			_parent.setVisible(true);

-		}

-	}

-

-	@Override

-	public void dispose() {

-		Control control = getControl();

-		if (control != null) {

-			XWT.removeObservableChangeListener(control, pageStateManager);

-		}

-		super.dispose();

-	}

-

-	abstract protected URL getContentURL();

-

-	protected InputStream getContentInputStream() {

-		return null;

-	}

-

-	public UIResource getUIResource() {

-		return uiResource;

-	}

-

-	public void setUIResource(UIResource uiResource) {

-		this.uiResource = uiResource;

-	}

-

-	protected ClassLoader getClassLoader() {

-		return this.getClassLoader();

-	}

-

-	public Object getDataContext() {

-		return dataContext;

-	}

-

-	public BindingContext getBindingContext() {

-		return bindingContext;

-	}

-

-	public void setBindingContext(BindingContext bindingContext) {

-		this.bindingContext = bindingContext;

-	}

-}

diff --git a/org.eclipse.xwt.releng/old/e4.ui.designer.psf b/org.eclipse.xwt.releng/old/e4.ui.designer.psf
deleted file mode 100644
index d1e360d..0000000
--- a/org.eclipse.xwt.releng/old/e4.ui.designer.psf
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<psf version="2.0">

-<provider id="org.eclipse.team.cvs.core.cvsnature">

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui,org.eclipse.xwt.tools.ui"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.e4.tools.ui.designer,org.eclipse.e4.tools.ui.designer"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.e4.ui/bundles/org.eclipse.e4.ui.model.workbench.edit,org.eclipse.e4.ui.model.workbench.edit"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.workbench,org.eclipse.xwt.tools.ui.workbench"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.designer.core,org.eclipse.xwt.tools.ui.designer.core"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.imagecapture,org.eclipse.xwt.tools.ui.imagecapture"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.palette,org.eclipse.xwt.tools.ui.palette"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.xaml,org.eclipse.xwt.tools.ui.xaml"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt,org.eclipse.xwt"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.pde,org.eclipse.xwt.pde"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.categorynode,org.eclipse.xwt.tools.categorynode"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.categorynode.edit,org.eclipse.xwt.tools.categorynode.edit"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.xml,org.eclipse.xwt.xml"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.forms,org.eclipse.xwt.forms"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.emf,org.eclipse.xwt.emf"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.e4.tools/bundles/org.eclipse.e4.tools,org.eclipse.e4.tools"/>

-</provider>

-</psf>
\ No newline at end of file
diff --git a/org.eclipse.xwt.releng/old/e4.xwt.demo.psf b/org.eclipse.xwt.releng/old/e4.xwt.demo.psf
deleted file mode 100644
index b1b1ace..0000000
--- a/org.eclipse.xwt.releng/old/e4.xwt.demo.psf
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<psf version="2.0">

-<provider id="org.eclipse.team.cvs.core.cvsnature">

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.swt,org.eclipse.swt"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.e4.swt/bundles/org.eclipse.swt.e4,org.eclipse.swt.e4"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.e4.swt/examples/org.eclipse.swt.e4.examples,org.eclipse.swt.e4.examples"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.e4.swt/bundles/org.eclipse.swt.e4.jcl,org.eclipse.swt.e4.jcl"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.swt.examples,org.eclipse.swt.examples"/>

-</provider>

-</psf>

diff --git a/org.eclipse.xwt.releng/old/e4.xwt.psf b/org.eclipse.xwt.releng/old/e4.xwt.psf
deleted file mode 100644
index 4d2304f..0000000
--- a/org.eclipse.xwt.releng/old/e4.xwt.psf
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<psf version="2.0">

-<provider id="org.eclipse.team.cvs.core.cvsnature">

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/features/org.eclipse.xwt.feature,org.eclipse.xwt.feature"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt,org.eclipse.xwt"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.e4.ui/bundles/org.pushingpixels.trident,org.pushingpixels.trident"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.pde,org.eclipse.xwt.pde"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.xml,org.eclipse.xwt.xml"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.forms,org.eclipse.xwt.forms"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.css,org.eclipse.xwt.css"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.emf,org.eclipse.xwt.emf"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/features/org.eclipse.xwt.css.feature,org.eclipse.xwt.css.feature"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/features/org.eclipse.xwt.emf.feature,org.eclipse.xwt.emf.feature"/>

-</provider>

-</psf>

diff --git a/org.eclipse.xwt.releng/old/e4.xwt.tests.psf b/org.eclipse.xwt.releng/old/e4.xwt.tests.psf
deleted file mode 100644
index 802ff9f..0000000
--- a/org.eclipse.xwt.releng/old/e4.xwt.tests.psf
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<psf version="2.0">

-<provider id="org.eclipse.team.cvs.core.cvsnature">

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/tests/org.eclipse.xwt.tests,org.eclipse.xwt.tests"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/tests/org.eclipse.xwt.emf.test,org.eclipse.xwt.emf.test"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/features/org.eclipse.xwt.tests.feature,org.eclipse.xwt.tests.feature"/>

-</provider>

-</psf>
\ No newline at end of file
diff --git a/org.eclipse.xwt.releng/old/e4.xwt.tools.psf b/org.eclipse.xwt.releng/old/e4.xwt.tools.psf
deleted file mode 100644
index 59104e2..0000000
--- a/org.eclipse.xwt.releng/old/e4.xwt.tools.psf
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<psf version="2.0">

-<provider id="org.eclipse.team.cvs.core.cvsnature">

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/features/org.eclipse.xwt.tools.feature,org.eclipse.xwt.tools.feature"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui,org.eclipse.xwt.tools.ui"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.editor,org.eclipse.xwt.tools.ui.editor"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.designer,org.eclipse.xwt.tools.ui.designer"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.designer.core,org.eclipse.xwt.tools.ui.designer.core"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.imagecapture,org.eclipse.xwt.tools.ui.imagecapture"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.palette,org.eclipse.xwt.tools.ui.palette"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.xaml,org.eclipse.xwt.tools.ui.xaml"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.vex,org.eclipse.xwt.vex"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/doc/org.eclipse.xwt.doc.user,org.eclipse.xwt.doc.user"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.e4.ui/bundles/org.eclipse.e4.ui.model.workbench.edit,org.eclipse.e4.ui.model.workbench.edit"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.e4.tools.ui.designer,org.eclipse.e4.tools.ui.designer"/>

-</provider>

-</psf>
\ No newline at end of file
diff --git a/org.eclipse.xwt.releng/old/e4.xwt.workbench.psf b/org.eclipse.xwt.releng/old/e4.xwt.workbench.psf
deleted file mode 100644
index a912ff5..0000000
--- a/org.eclipse.xwt.releng/old/e4.xwt.workbench.psf
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<psf version="2.0">

-<provider id="org.eclipse.team.cvs.core.cvsnature">

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/features/org.eclipse.xwt.workbench.feature,org.eclipse.xwt.workbench.feature"/>

-<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.ui.workbench,org.eclipse.xwt.ui.workbench"/>

-</provider>

-</psf>

diff --git a/org.eclipse.xwt.releng/old/maps/xwt.map b/org.eclipse.xwt.releng/old/maps/xwt.map
deleted file mode 100644
index 21b345b..0000000
--- a/org.eclipse.xwt.releng/old/maps/xwt.map
+++ /dev/null
@@ -1,33 +0,0 @@
-!**** e4 XWT tools

-plugin@org.eclipse.xwt=v20110218-0800,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt

-plugin@org.eclipse.xwt.css=v20100617-2100,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.css

-plugin@org.eclipse.e4.tools.ui.designer=v20110218-0800,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.e4.tools.ui.designer

-plugin@org.eclipse.xwt.tools.ui=v20101021,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui

-plugin@org.eclipse.xwt.tools.ui.editor=v20101021,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.editor

-plugin@org.eclipse.xwt.tools.categorynode=v20100617-2100,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.categorynode

-plugin@org.eclipse.xwt.tools.categorynode.edit=v20100617-2100,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.categorynode.edit

-plugin@org.eclipse.xwt.tools.ui.designer=v20101021,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.designer

-plugin@org.eclipse.xwt.tools.ui.designer.core=v20101021,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.designer.core

-plugin@org.eclipse.xwt.tools.ui.imagecapture=v20100617-2100,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.imagecapture

-plugin@org.eclipse.xwt.tools.ui.palette=v20100617-2100,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.palette

-plugin@org.eclipse.xwt.tools.ui.xaml=v20100617-2100,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.xaml

-plugin@org.eclipse.xwt.vex=v20100627-1530,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.vex

-plugin@org.eclipse.xwt.pde=v20101119-0800,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.pde

-plugin@org.eclipse.xwt.doc.user=v20100617-2100,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/doc/org.eclipse.xwt.doc.user

-plugin@org.eclipse.xwt.xml=v20100617-2100,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.xml

-plugin@org.eclipse.xwt.forms=v20101021,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.forms

-plugin@org.eclipse.xwt.emf=v20100617-2100,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.emf

-plugin@org.eclipse.xwt.ui.workbench=v20101119-0800,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.ui.workbench

-

-

-!**** and build it

-feature@org.eclipse.xwt.feature=v20091126-1500,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/features/org.eclipse.xwt.feature

-feature@org.eclipse.xwt.tests.feature=v20091009-1415,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/features/org.eclipse.xwt.tests.feature

-feature@org.eclipse.xwt.tools.feature=v20100705-2130,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/features/org.eclipse.xwt.tools.feature

-feature@org.eclipse.xwt.css.feature=v20090609-1530,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/features/org.eclipse.xwt.css.feature

-feature@org.eclipse.xwt.emf.feature=v20090624-1330,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/features/org.eclipse.xwt.emf.feature

-feature@org.eclipse.xwt.workbench.feature=v20100618,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/features/org.eclipse.xwt.workbench.feature

-

-!**** Test Suites

-plugin@org.eclipse.xwt.tests=v20110218-0800,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/tests/org.eclipse.xwt.tests

-plugin@org.eclipse.xwt.emf.test=v20101025,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/tests/org.eclipse.xwt.emf.test
\ No newline at end of file
diff --git a/org.eclipse.xwt.releng/pom.xml b/org.eclipse.xwt.releng/pom.xml
deleted file mode 100755
index 4c66320..0000000
--- a/org.eclipse.xwt.releng/pom.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-
-	<groupId>org.eclipse.xwt</groupId>
-	<artifactId>org.eclipse.xwt.releng</artifactId>
-	<version>1.4.0-SNAPSHOT</version>
-	<packaging>pom</packaging>
-
-	<modules>
-		<module>site</module>
-		<module>targetPlatform</module>
-	</modules>
-</project>
diff --git a/org.eclipse.xwt.releng/site/category.xml b/org.eclipse.xwt.releng/site/category.xml
deleted file mode 100755
index 6adf476..0000000
--- a/org.eclipse.xwt.releng/site/category.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site>
-   <feature url="org.eclipse.xwt.feature_1.4.0.qualifier.jar" id="org.eclipse.xwt.feature" version="1.4.0.qualifier">
-      <category name="org.eclipse.xwt.core.category"/>
-   </feature>
-   <feature url="org.eclipse.xwt.feature.source_1.4.0.qualifier.jar" id="org.eclipse.xwt.feature.source" version="1.4.0.qualifier">
-      <category name="org.eclipse.xwt.core.category"/>
-   </feature>
-     
-   <feature url="org.eclipse.xwt.workbench.feature_1.4.0.qualifier.jar" id="org.eclipse.xwt.workbench.feature" version="1.4.0.qualifier">
-      <category name="org.eclipse.xwt.core.category"/>
-   </feature>
-   <feature url="org.eclipse.xwt.workbench.feature.source_1.4.0.qualifier.jar" id="org.eclipse.xwt.workbench.feature.source" version="1.4.0.qualifier">
-      <category name="org.eclipse.xwt.core.category"/>
-   </feature>
-
-   <feature url="org.eclipse.xwt.tools.feature_0.10.0.qualifier.jar" id="org.eclipse.xwt.tools.feature" version="0.10.0.qualifier">
-      <category name="org.eclipse.xwt.tools.category"/>
-   </feature>
-  
-   <feature url="org.eclipse.xwt.tests.feature_0.10.0.qualifier.jar" id="org.eclipse.xwt.tests.feature" version="0.10.0.qualifier">
-      <category name="org.eclipse.xwt.tests.category"/>
-   </feature>
-   
-   <category-def name="org.eclipse.xwt.core.category" label="XWT Core">
-      <description>
-         XWT Core Features
-      </description>
-   </category-def>
-   <category-def name="org.eclipse.xwt.tools.category" label="XWT Tools">
-      <description>
-         XWT Tools Features
-      </description>
-   </category-def>
-   <category-def name="org.eclipse.xwt.tests.category" label="XWT Tests">
-      <description>
-         XWT Tests Features
-      </description>
-   </category-def>
-</site>
-
diff --git a/org.eclipse.xwt.snippets.tests/.classpath b/org.eclipse.xwt.snippets.tests/.classpath
deleted file mode 100644
index 8a8f166..0000000
--- a/org.eclipse.xwt.snippets.tests/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>

-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

-	<classpathentry kind="src" path="src"/>

-	<classpathentry kind="output" path="bin"/>

-</classpath>

diff --git a/org.eclipse.xwt.snippets.tests/.project b/org.eclipse.xwt.snippets.tests/.project
deleted file mode 100644
index 38b7e86..0000000
--- a/org.eclipse.xwt.snippets.tests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.xwt.snippets.tests</name>

-	<comment></comment>

-	<projects>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.jdt.core.javabuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.ManifestBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.SchemaBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.pde.PluginNature</nature>

-		<nature>org.eclipse.jdt.core.javanature</nature>

-	</natures>

-</projectDescription>

diff --git a/org.eclipse.xwt.snippets.tests/XWTSnippetsBasedTestSuite.launch b/org.eclipse.xwt.snippets.tests/XWTSnippetsBasedTestSuite.launch
deleted file mode 100644
index 5e32ba3..0000000
--- a/org.eclipse.xwt.snippets.tests/XWTSnippetsBasedTestSuite.launch
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>

-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">

-<booleanAttribute key="append.args" value="true"/>

-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>

-<booleanAttribute key="askclear" value="false"/>

-<booleanAttribute key="automaticAdd" value="true"/>

-<booleanAttribute key="automaticValidate" value="false"/>

-<stringAttribute key="bootstrap" value=""/>

-<stringAttribute key="checked" value="[NONE]"/>

-<booleanAttribute key="clearConfig" value="true"/>

-<booleanAttribute key="clearws" value="true"/>

-<booleanAttribute key="clearwslog" value="false"/>

-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>

-<booleanAttribute key="default" value="false"/>

-<stringAttribute key="deselected_workspace_plugins" value="org.eclipse.xwt.css,org.eclipse.xwt.css.tests,org.eclipse.xwt.doc.user,org.eclipse.xwt.emf,org.eclipse.xwt.emf.test,org.eclipse.xwt.pde,org.eclipse.xwt.ui.workbench"/>

-<booleanAttribute key="includeOptional" value="false"/>

-<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>

-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">

-<listEntry value="/org.eclipse.xwt.snippets.tests/src/org/eclipse/xwt/tests/XwtSnippetsTestSuite.java"/>

-</listAttribute>

-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">

-<listEntry value="1"/>

-</listAttribute>

-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>

-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>

-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>

-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>

-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.xwt.tests.XwtSnippetsTestSuite"/>

-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>

-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.xwt.snippets.tests"/>

-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>

-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dosgi.requiredJavaVersion=1.5 -Dhelp.lucene.tokenizer=standard -Xms40m -Xmx512m"/>

-<stringAttribute key="pde.version" value="3.3"/>

-<stringAttribute key="product" value="org.eclipse.platform.ide"/>

-<booleanAttribute key="run_in_ui_thread" value="true"/>

-<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,org.apache.log4j*1.2.15.v201012070815@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime@default:true,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.win32.win32.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.swtbot.junit4_x@default:default,org.eclipse.swtbot.swt.finder@default:default,org.eclipse.text@default:default,org.eclipse.ui.forms@default:default,org.hamcrest.core@default:default,org.hamcrest.integration@default:default,org.hamcrest.library@default:default,org.hamcrest.text@default:default,org.hamcrest@default:default,org.junit*4.10.0.v4_10_0_v20120426-0900@default:default,org.junit4@default:default"/>

-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.xwt.forms@default:default,org.eclipse.xwt.snippets@default:default,org.eclipse.xwt.tests@default:default,org.eclipse.xwt.xml@default:default,org.eclipse.xwt@default:default,org.pushingpixels.trident@default:default"/>

-<booleanAttribute key="show_selected_only" value="false"/>

-<booleanAttribute key="tracing" value="false"/>

-<booleanAttribute key="useCustomFeatures" value="false"/>

-<booleanAttribute key="useDefaultConfig" value="true"/>

-<booleanAttribute key="useDefaultConfigArea" value="false"/>

-<booleanAttribute key="useProduct" value="false"/>

-</launchConfiguration>

diff --git a/org.eclipse.xwt.snippets.tests/about.html b/org.eclipse.xwt.snippets.tests/about.html
deleted file mode 100644
index c258ef5..0000000
--- a/org.eclipse.xwt.snippets.tests/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!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 5, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.snippets.tests/notice.html b/org.eclipse.xwt.snippets.tests/notice.html
deleted file mode 100644
index c3d34c3..0000000
--- a/org.eclipse.xwt.snippets.tests/notice.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 9, 2014</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/org.eclipse.xwt.snippets.tests/pom.xml b/org.eclipse.xwt.snippets.tests/pom.xml
deleted file mode 100755
index 64b7537..0000000
--- a/org.eclipse.xwt.snippets.tests/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt.snippets.tests</artifactId>
-	<version>0.10.0-SNAPSHOT</version>
-	<packaging>eclipse-plugin</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.snippets.tests/src/org/eclipse/xwt/tests/AbstractSnippetTest.java b/org.eclipse.xwt.snippets.tests/src/org/eclipse/xwt/tests/AbstractSnippetTest.java
deleted file mode 100644
index 6ea4133..0000000
--- a/org.eclipse.xwt.snippets.tests/src/org/eclipse/xwt/tests/AbstractSnippetTest.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *     Erdal Karaca - refactored to use base class

- *******************************************************************************/

-package org.eclipse.xwt.tests;

-

-import org.eclipse.xwt.snippets.XWTSnippet;

-import org.junit.Before;

-

-public abstract class AbstractSnippetTest extends XWTTestCase {

-	private XWTSnippet snippet;

-

-	protected abstract XWTSnippet doGetSnippet();

-

-	public XWTSnippet getSnippet() {

-		if (snippet == null) {

-			snippet = doGetSnippet();

-		}

-

-		return snippet;

-	}

-

-	@Before

-	public void setUp() {

-		getSnippet().load();

-	}

-

-	@SuppressWarnings("unchecked")

-	protected <T> T getRoot(Class<T> t) {

-		Object root = getSnippet().getRoot();

-		assertTrue(root != null);

-		assertTrue(t.isAssignableFrom(root.getClass()));

-		return (T) root;

-	}

-}

diff --git a/org.eclipse.xwt.snippets.tests/src/org/eclipse/xwt/tests/XwtSnippetsTestSuite.java b/org.eclipse.xwt.snippets.tests/src/org/eclipse/xwt/tests/XwtSnippetsTestSuite.java
deleted file mode 100644
index 119534c..0000000
--- a/org.eclipse.xwt.snippets.tests/src/org/eclipse/xwt/tests/XwtSnippetsTestSuite.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2013 Eclipse XWT Team

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Erdal Karaca - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests;

-

-import junit.framework.Test;

-import junit.framework.TestSuite;

-

-import org.eclipse.xwt.tests.base.HelloWorldSnippetTest;

-import org.eclipse.xwt.tests.controls.ButtonVisibleSnippetTest;

-

-public class XwtSnippetsTestSuite extends TestSuite {

-	public static final Test suite() {

-		return new XwtSnippetsTestSuite();

-	}

-	

-	public XwtSnippetsTestSuite() {

-		addBaseTests();

-		addControlsTests();

-	}

-

-	private void addControlsTests() {

-		addTest(new TestSuite(ButtonVisibleSnippetTest.class));

-	}

-

-	protected void addBaseTests() {

-		addTest(new TestSuite(HelloWorldSnippetTest.class));

-	}

-}

diff --git a/org.eclipse.xwt.snippets.tests/src/org/eclipse/xwt/tests/base/HelloWorldSnippetTest.java b/org.eclipse.xwt.snippets.tests/src/org/eclipse/xwt/tests/base/HelloWorldSnippetTest.java
deleted file mode 100644
index 586d261..0000000
--- a/org.eclipse.xwt.snippets.tests/src/org/eclipse/xwt/tests/base/HelloWorldSnippetTest.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2013 Eclipse XWT Team

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Erdal Karaca - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.base;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swtbot.swt.finder.SWTBot;

-import org.eclipse.swtbot.swt.finder.widgets.SWTBotText;

-import org.eclipse.xwt.snippets.XWTSnippet;

-import org.eclipse.xwt.snippets.base.HelloWorldSnippet;

-import org.eclipse.xwt.tests.AbstractSnippetTest;

-import org.junit.Test;

-

-public class HelloWorldSnippetTest extends AbstractSnippetTest {

-	@Override

-	protected XWTSnippet doGetSnippet() {

-		return new HelloWorldSnippet();

-	}

-

-	@Test

-	public void testAll() {

-		Composite rootComposite = getRoot(Composite.class);

-		SWTBot bot = new SWTBot(rootComposite);

-		SWTBotText text = bot.text(0);

-		assertTrue(text.backgroundColor() != null

-				&& text.backgroundColor().equals(

-						rootComposite.getDisplay().getSystemColor(

-								SWT.COLOR_BLUE)));

-	}

-}

diff --git a/org.eclipse.xwt.snippets.tests/src/org/eclipse/xwt/tests/controls/ButtonVisibleSnippetTest.java b/org.eclipse.xwt.snippets.tests/src/org/eclipse/xwt/tests/controls/ButtonVisibleSnippetTest.java
deleted file mode 100644
index d183760..0000000
--- a/org.eclipse.xwt.snippets.tests/src/org/eclipse/xwt/tests/controls/ButtonVisibleSnippetTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2013 Eclipse XWT Team

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Erdal Karaca - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls;

-

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swtbot.swt.finder.SWTBot;

-import org.eclipse.swtbot.swt.finder.widgets.SWTBotButton;

-import org.eclipse.xwt.snippets.XWTSnippet;

-import org.eclipse.xwt.snippets.controls.Button_Visible;

-import org.eclipse.xwt.tests.AbstractSnippetTest;

-import org.junit.Test;

-

-public class ButtonVisibleSnippetTest extends AbstractSnippetTest {

-	@Override

-	protected XWTSnippet doGetSnippet() {

-		return new Button_Visible();

-	}

-

-	@Test

-	public void testAll() {

-		Composite rootComposite = getRoot(Composite.class);

-		SWTBot bot = new SWTBot(rootComposite);

-		SWTBotButton first = bot.button(0);

-		SWTBotButton second = bot.button(0);

-		

-		assertTrue(first.isVisible());

-		assertTrue(!second.isVisible());

-	}

-}

diff --git a/org.eclipse.xwt.snippets/.classpath b/org.eclipse.xwt.snippets/.classpath
deleted file mode 100644
index 8a8f166..0000000
--- a/org.eclipse.xwt.snippets/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>

-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

-	<classpathentry kind="src" path="src"/>

-	<classpathentry kind="output" path="bin"/>

-</classpath>

diff --git a/org.eclipse.xwt.snippets/.project b/org.eclipse.xwt.snippets/.project
deleted file mode 100644
index 8425795..0000000
--- a/org.eclipse.xwt.snippets/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.xwt.snippets</name>

-	<comment></comment>

-	<projects>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.jdt.core.javabuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.ManifestBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.SchemaBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.pde.PluginNature</nature>

-		<nature>org.eclipse.jdt.core.javanature</nature>

-	</natures>

-</projectDescription>

diff --git a/org.eclipse.xwt.snippets/about.html b/org.eclipse.xwt.snippets/about.html
deleted file mode 100644
index c258ef5..0000000
--- a/org.eclipse.xwt.snippets/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!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 5, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.snippets/notice.html b/org.eclipse.xwt.snippets/notice.html
deleted file mode 100644
index c3d34c3..0000000
--- a/org.eclipse.xwt.snippets/notice.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 9, 2014</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/org.eclipse.xwt.snippets/pom.xml b/org.eclipse.xwt.snippets/pom.xml
deleted file mode 100755
index d0d3ed4..0000000
--- a/org.eclipse.xwt.snippets/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt.snippets</artifactId>
-	<version>0.10.0-SNAPSHOT</version>
-	<packaging>eclipse-plugin</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/XWTSnippet.java b/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/XWTSnippet.java
deleted file mode 100644
index b59ccfe..0000000
--- a/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/XWTSnippet.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2013 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *     Erdal Karaca - refactored to use base class

- *******************************************************************************/

-package org.eclipse.xwt.snippets;

-

-import java.net.URL;

-import java.util.logging.Logger;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class XWTSnippet {

-	protected Logger log = Logger.getLogger(this.getClass().getName());

-	private Object root;

-

-	protected URL doGetUrl() {

-		Class<?> clazz = this.getClass();

-		return clazz.getResource(clazz.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-	}

-

-	public Object load() {

-		if (root != null) {

-			throw new IllegalStateException("This snippet has already been loaded.");

-		}

-

-		URL url = doGetUrl();

-

-		try {

-			root = XWT.load(url);

-		} catch (Exception e) {

-			log.severe(e.getMessage());

-		}

-

-		return root;

-	}

-	

-	public void open() {

-		URL url = doGetUrl();

-

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			log.severe(e.getMessage());

-		}

-	}

-

-	public Object getRoot() {

-		return root;

-	}

-}

diff --git a/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/base/HelloWorldSnippet.java b/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/base/HelloWorldSnippet.java
deleted file mode 100644
index 8364e5e..0000000
--- a/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/base/HelloWorldSnippet.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2013 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *     Erdal Karaca - refactored to use base class

- *******************************************************************************/

-package org.eclipse.xwt.snippets.base;

-

-import org.eclipse.xwt.snippets.XWTSnippet;

-

-public class HelloWorldSnippet extends XWTSnippet {

-	public static void main(String[] args) {

-		new HelloWorldSnippet().open();

-	}

-}

diff --git a/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/base/HelloWorldSnippet.xwt b/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/base/HelloWorldSnippet.xwt
deleted file mode 100644
index a9a85b3..0000000
--- a/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/base/HelloWorldSnippet.xwt
+++ /dev/null
@@ -1,6 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation">

-	<Composite.layout>

-		<GridLayout numColumns="2" />

-	</Composite.layout>

-	<Text background="SWT.COLOR_BLUE" />

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/controls/Button_Visible.java b/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/controls/Button_Visible.java
deleted file mode 100644
index 22cb4d0..0000000
--- a/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/controls/Button_Visible.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.snippets.controls;

-

-import org.eclipse.xwt.snippets.XWTSnippet;

-

-/**

- * @author jliu

- */

-public class Button_Visible extends XWTSnippet {

-	public static void main(String[] args) {

-		new Button_Visible().open();

-	}

-}

diff --git a/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/controls/Button_Visible.xwt b/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/controls/Button_Visible.xwt
deleted file mode 100644
index 02db287..0000000
--- a/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/controls/Button_Visible.xwt
+++ /dev/null
@@ -1,9 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	text="Button Visible Test">

-	<Composite.layout>

-		<GridLayout numColumns="1"/>

-	</Composite.layout>

-	<Button name="buttonVisible" text="Visible(true)" visible="true"/>

-	<Button name="buttonNonVisible" text="Visible(false)" visible="false"/>

-</Composite>

diff --git a/org.eclipse.xwt.tests.feature/.project b/org.eclipse.xwt.tests.feature/.project
deleted file mode 100644
index b9430b4..0000000
--- a/org.eclipse.xwt.tests.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.xwt.tests.feature</name>

-	<comment></comment>

-	<projects>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.pde.FeatureBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.pde.FeatureNature</nature>

-	</natures>

-</projectDescription>

diff --git a/org.eclipse.xwt.tests.feature/about.html b/org.eclipse.xwt.tests.feature/about.html
deleted file mode 100644
index c258ef5..0000000
--- a/org.eclipse.xwt.tests.feature/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!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 5, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests.feature/build.properties b/org.eclipse.xwt.tests.feature/build.properties
deleted file mode 100644
index 97289c4..0000000
--- a/org.eclipse.xwt.tests.feature/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-bin.includes = feature.xml,\
-               feature.properties,\
-               about.html,\
-               epl-v10.html,\
-               license.html
-src.includes = .project,\
-               about.html,\
-               build.properties,\
-               feature.properties,\
-               feature.xml,\
-               license.html,\
-               epl-v10.html
diff --git a/org.eclipse.xwt.tests.feature/epl-v10.html b/org.eclipse.xwt.tests.feature/epl-v10.html
deleted file mode 100644
index cb1073a..0000000
--- a/org.eclipse.xwt.tests.feature/epl-v10.html
+++ /dev/null
@@ -1,304 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	
-	}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang="EN-US" style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>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.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>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. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>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. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>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.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>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.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>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.</span> </p>
-
-<p><span style='font-size:10.0pt'>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. </span></p>
-
-<p><span style='font-size:10.0pt'>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. </span></p>
-
-<p><span style='font-size:10.0pt'>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.</span> </p>
-
-<p><span style='font-size:10.0pt'>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.</span> </p>
-
-<p class=MsoNormal></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests.feature/feature.properties b/org.eclipse.xwt.tests.feature/feature.properties
deleted file mode 100644
index 17504ee..0000000
--- a/org.eclipse.xwt.tests.feature/feature.properties
+++ /dev/null
@@ -1,148 +0,0 @@
-###############################################################################

-# Copyright (c) 2000, 2009 IBM Corporation and others.

-# All rights reserved. This program and the accompanying materials

-# are made available under the terms of the Eclipse Public License v1.0

-# which accompanies this distribution, and is available at

-# http://www.eclipse.org/legal/epl-v10.html

-# 

-# Contributors:

-#     IBM Corporation - 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=Eclipse XWT Tests

-

-# "providerName" property - name of the company that provides the feature

-providerName=Eclipse XWT

-

-# "updateSiteName" property - label for the update site

-updateSiteName=The Eclipse Project Updates

-

-# "secondarySiteName" property - label for the update site

-secondaryUpdateSiteName=Ganymede Discovery Site

-

-

-# "description" property - description of the feature

-description=Eclipse XWT Tests

-

-# "copyright" property - text of the "Feature Update Copyright"

-copyright=\

-Copyright (c) 2009 Soyatec Corporation and others.\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\

-    Soyatec Corporation - initial API and implementation\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\

-March 17, 2005\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 Eclipse Foundation\n\

-is provided to you under the terms and conditions of the Eclipse Public\n\

-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\

-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.org CVS\n\

-repository ("Repository") in CVS 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? 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\

-Features may also include other Features ("Included Features"). Files named\n\

-"feature.xml" may contain a list of the names and version numbers of\n\

-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\

-Eclipse Update Manager, you must agree to a license ("Feature Update\n\

-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". Such Abouts,\n\

-Feature Licenses and Feature Update Licenses contain the terms and\n\

-conditions (or references to such terms and conditions) that govern your\n\

-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\

-    - 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\

-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\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\

-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,\n\

-and re-export of encryption software, to see if this is permitted.\n\

-\n\

-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n

-########### end of license property ##########################################

diff --git a/org.eclipse.xwt.tests.feature/feature.xml b/org.eclipse.xwt.tests.feature/feature.xml
deleted file mode 100644
index d4456da..0000000
--- a/org.eclipse.xwt.tests.feature/feature.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.xwt.tests.feature"
-      label="%featureName"
-      version="0.10.0.qualifier"
-      provider-name="%providerName">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <url>
-      <update label="XWT Tests Update Site" url="http://www.eclipse.org/downloads/download.php?format=xml&amp;file=/xwt/updates"/>
-   </url>
-
-   <requires>
-      <import feature="org.eclipse.xwt.feature" version="0.9.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.xwt.emf" version="0.9.0" match="greaterOrEqual"/>
-   </requires>
-
-   <plugin
-         id="org.eclipse.xwt.tests"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.xwt.emf.test"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.xwt.css.tests"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.xwt.snippets.tests"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"/>
-
-</feature>
diff --git a/org.eclipse.xwt.tests.feature/license.html b/org.eclipse.xwt.tests.feature/license.html
deleted file mode 100644
index f19c483..0000000
--- a/org.eclipse.xwt.tests.feature/license.html
+++ /dev/null
@@ -1,108 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>February 1, 2011</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/org.eclipse.xwt.tests.feature/notice.html b/org.eclipse.xwt.tests.feature/notice.html
deleted file mode 100644
index c3d34c3..0000000
--- a/org.eclipse.xwt.tests.feature/notice.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 9, 2014</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/org.eclipse.xwt.tests.feature/pom.xml b/org.eclipse.xwt.tests.feature/pom.xml
deleted file mode 100755
index 2167216..0000000
--- a/org.eclipse.xwt.tests.feature/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt.tests.feature</artifactId>
-	<version>0.10.0-SNAPSHOT</version>
-	<packaging>eclipse-feature</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/.classpath b/org.eclipse.xwt.tests/.classpath
deleted file mode 100644
index be80b49..0000000
--- a/org.eclipse.xwt.tests/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>

-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

-	<classpathentry kind="src" path="src"/>

-	<classpathentry kind="src" path="samples"/>

-	<classpathentry kind="output" path="bin"/>

-</classpath>

diff --git a/org.eclipse.xwt.tests/.project b/org.eclipse.xwt.tests/.project
deleted file mode 100644
index 318b4b2..0000000
--- a/org.eclipse.xwt.tests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.xwt.tests</name>

-	<comment></comment>

-	<projects>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.jdt.core.javabuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.ManifestBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.SchemaBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.pde.PluginNature</nature>

-		<nature>org.eclipse.jdt.core.javanature</nature>

-	</natures>

-</projectDescription>

diff --git a/org.eclipse.xwt.tests/META-INF/MANIFEST.MF b/org.eclipse.xwt.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index ee0ba8a..0000000
--- a/org.eclipse.xwt.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,136 +0,0 @@
-Manifest-Version: 1.0

-Bundle-ManifestVersion: 2

-Bundle-Name: XWT Tests Plug-in

-Bundle-SymbolicName: org.eclipse.xwt.tests

-Bundle-Version: 0.10.0.qualifier

-Require-Bundle: org.eclipse.swt,

- org.eclipse.core.runtime,

- org.eclipse.xwt;bundle-version="0.9.0",

- org.eclipse.ui.forms;bundle-version="3.3.100",

- org.junit,

- org.eclipse.core.databinding.beans,

- org.eclipse.core.databinding,

- org.eclipse.jface.databinding,

- org.eclipse.xwt.css;bundle-version="0.9.0";resolution:=optional,

- org.eclipse.e4.ui.css.swt;bundle-version="0.9.0";resolution:=optional,

- org.eclipse.e4.ui.css.core;bundle-version="0.9.0";resolution:=optional,

- org.w3c.css.sac;bundle-version="1.3.0";resolution:=optional,

- org.eclipse.xwt.xml;bundle-version="0.9.0",

- com.ibm.icu;bundle-version="3.8.0",

- org.eclipse.core.databinding.property;bundle-version="1.2.0",

- org.eclipse.xwt.forms;bundle-version="0.9.1",

- org.eclipse.jface;bundle-version="3.8.101",

- org.eclipse.xwt.ui.workbench;bundle-version="1.1.0",

- org.eclipse.ui.workbench

-Bundle-ActivationPolicy: lazy

-Bundle-RequiredExecutionEnvironment: J2SE-1.5

-Export-Package: org.eclipse.xwt.tests,

- org.eclipse.xwt.tests.animation,

- org.eclipse.xwt.tests.animation.keyframe,

- org.eclipse.xwt.tests.animation.repeatBehavior,

- org.eclipse.xwt.tests.annotation,

- org.eclipse.xwt.tests.attachedproperty,

- org.eclipse.xwt.tests.clr,

- org.eclipse.xwt.tests.clrfactory,

- org.eclipse.xwt.tests.controls,

- org.eclipse.xwt.tests.controls.browser,

- org.eclipse.xwt.tests.controls.button,

- org.eclipse.xwt.tests.controls.button.command,

- org.eclipse.xwt.tests.controls.canvas,

- org.eclipse.xwt.tests.controls.ccombo,

- org.eclipse.xwt.tests.controls.clabel,

- org.eclipse.xwt.tests.controls.combo,

- org.eclipse.xwt.tests.controls.coolbar,

- org.eclipse.xwt.tests.controls.ctabfolder,

- org.eclipse.xwt.tests.controls.datetime,

- org.eclipse.xwt.tests.controls.expandbar,

- org.eclipse.xwt.tests.controls.group,

- org.eclipse.xwt.tests.controls.label,

- org.eclipse.xwt.tests.controls.layout,

- org.eclipse.xwt.tests.controls.link,

- org.eclipse.xwt.tests.controls.list,

- org.eclipse.xwt.tests.controls.menu,

- org.eclipse.xwt.tests.controls.menu.command,

- org.eclipse.xwt.tests.controls.progressbar,

- org.eclipse.xwt.tests.controls.sash,

- org.eclipse.xwt.tests.controls.sashform,

- org.eclipse.xwt.tests.controls.scale,

- org.eclipse.xwt.tests.controls.shell,

- org.eclipse.xwt.tests.controls.slider,

- org.eclipse.xwt.tests.controls.spinner,

- org.eclipse.xwt.tests.controls.styledtext,

- org.eclipse.xwt.tests.controls.tabfolder,

- org.eclipse.xwt.tests.controls.table,

- org.eclipse.xwt.tests.controls.table.binding,

- org.eclipse.xwt.tests.controls.table.editor,

- org.eclipse.xwt.tests.controls.text,

- org.eclipse.xwt.tests.controls.toolbar,

- org.eclipse.xwt.tests.controls.tooltip,

- org.eclipse.xwt.tests.controls.tree,

- org.eclipse.xwt.tests.controls.uiresource,

- org.eclipse.xwt.tests.controls.xwt,

- org.eclipse.xwt.tests.databinding,

- org.eclipse.xwt.tests.databinding.bindcontrol,

- org.eclipse.xwt.tests.databinding.datacontext,

- org.eclipse.xwt.tests.databinding.dataprovider,

- org.eclipse.xwt.tests.databinding.dataprovider.custom,

- org.eclipse.xwt.tests.databinding.dataprovider.xml,

- org.eclipse.xwt.tests.databinding.datetime,

- org.eclipse.xwt.tests.databinding.multibinding,

- org.eclipse.xwt.tests.databinding.others,

- org.eclipse.xwt.tests.databinding.pojo,

- org.eclipse.xwt.tests.databinding.self,

- org.eclipse.xwt.tests.databinding.status,

- org.eclipse.xwt.tests.databinding.validation,

- org.eclipse.xwt.tests.events,

- org.eclipse.xwt.tests.events.initialize,

- org.eclipse.xwt.tests.events.loaded,

- org.eclipse.xwt.tests.events.loaded.multipleClass,

- org.eclipse.xwt.tests.forms,

- org.eclipse.xwt.tests.forms.tableviewer.master.detail.set,

- org.eclipse.xwt.tests.i18n,

- org.eclipse.xwt.tests.jface,

- org.eclipse.xwt.tests.jface.comboviewer.array,

- org.eclipse.xwt.tests.jface.comboviewer.collection,

- org.eclipse.xwt.tests.jface.comboviewer.enumeration,

- org.eclipse.xwt.tests.jface.dialog,

- org.eclipse.xwt.tests.jface.listviewer.array,

- org.eclipse.xwt.tests.jface.listviewer.collection,

- org.eclipse.xwt.tests.jface.tableviewer,

- org.eclipse.xwt.tests.jface.tableviewer.editors,

- org.eclipse.xwt.tests.jface.tableviewer.filter,

- org.eclipse.xwt.tests.jface.tableviewer.master.detail,

- org.eclipse.xwt.tests.jface.tableviewer.master.detail.array,

- org.eclipse.xwt.tests.jface.tableviewer.master.detail.list,

- org.eclipse.xwt.tests.jface.tableviewer.master.detail.set,

- org.eclipse.xwt.tests.jface.treeviewer,

- org.eclipse.xwt.tests.keybinding,

- org.eclipse.xwt.tests.metaclass,

- org.eclipse.xwt.tests.name,

- org.eclipse.xwt.tests.namespace.handler,

- org.eclipse.xwt.tests.resources,

- org.eclipse.xwt.tests.resourcesdictionary,

- org.eclipse.xwt.tests.snippet017,

- org.eclipse.xwt.tests.snippet017.inner,

- org.eclipse.xwt.tests.snippet017.pojo,

- org.eclipse.xwt.tests.snippet019,

- org.eclipse.xwt.tests.snippet019.array,

- org.eclipse.xwt.tests.snippet019.set,

- org.eclipse.xwt.tests.snippet025,

- org.eclipse.xwt.tests.snipppets,

- org.eclipse.xwt.tests.style,

- org.eclipse.xwt.tests.style.css,

- org.eclipse.xwt.tests.style.java,

- org.eclipse.xwt.tests.swt,

- org.eclipse.xwt.tests.threading,

- org.eclipse.xwt.tests.trigger,

- org.eclipse.xwt.tests.trigger.datatrigger,

- org.eclipse.xwt.tests.trigger.eventtrigger,

- org.eclipse.xwt.tests.trigger.multidatatrigger,

- org.eclipse.xwt.tests.trigger.multitrigger,

- org.eclipse.xwt.tests.usercontrol,

- org.eclipse.xwt.tests.usercontrol.event,

- org.eclipse.xwt.tests.view,

- org.eclipse.xwt.tests.wizard,

- org.eclipse.xwt.tests.xaml

-Bundle-Vendor: Eclipse XWT

diff --git a/org.eclipse.xwt.tests/about.html b/org.eclipse.xwt.tests/about.html
deleted file mode 100644
index c258ef5..0000000
--- a/org.eclipse.xwt.tests/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!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 5, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/build.properties b/org.eclipse.xwt.tests/build.properties
deleted file mode 100644
index bf0ecc7..0000000
--- a/org.eclipse.xwt.tests/build.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/,\
-           samples/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               test.xml,\
-               about.html,\
-               samples/,\
-               notice.html
-src.includes = .classpath,\
-               .project,\
-               META-INF/,\
-               about.html,\
-               build.properties,\
-               src/,\
-               samples/,\
-               test.xml,\
-               notice.html
diff --git a/org.eclipse.xwt.tests/notice.html b/org.eclipse.xwt.tests/notice.html
deleted file mode 100644
index c3d34c3..0000000
--- a/org.eclipse.xwt.tests/notice.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 9, 2014</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/org.eclipse.xwt.tests/pom.xml b/org.eclipse.xwt.tests/pom.xml
deleted file mode 100755
index e0397d0..0000000
--- a/org.eclipse.xwt.tests/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt.tests</artifactId>
-	<version>0.10.0-SNAPSHOT</version>
-	<packaging>eclipse-plugin</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/AbstractModelObject.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/AbstractModelObject.java
deleted file mode 100644
index 615e2e4..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/AbstractModelObject.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 The Pampered Chef, Inc. and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Coconut Palm Software, Inc. - Initial API and implementation

- *     Matthew Hall - bugs 260329, 260337

- *     Yves YANG - port to XWT

- ******************************************************************************/

-package org.eclipse.xwt.tests.snippet017;

-

-import java.beans.PropertyChangeListener;

-import java.beans.PropertyChangeSupport;

-

-public abstract class AbstractModelObject {

-	private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(

-			this);

-

-	public void addPropertyChangeListener(PropertyChangeListener listener) {

-		propertyChangeSupport.addPropertyChangeListener(listener);

-	}

-

-	public void addPropertyChangeListener(String propertyName,

-			PropertyChangeListener listener) {

-		propertyChangeSupport.addPropertyChangeListener(propertyName,

-				listener);

-	}

-

-	public void removePropertyChangeListener(PropertyChangeListener listener) {

-		propertyChangeSupport.removePropertyChangeListener(listener);

-	}

-

-	public void removePropertyChangeListener(String propertyName,

-			PropertyChangeListener listener) {

-		propertyChangeSupport.removePropertyChangeListener(propertyName,

-				listener);

-	}

-

-	protected void firePropertyChange(String propertyName, Object oldValue,

-			Object newValue) {

-		propertyChangeSupport.firePropertyChange(propertyName, oldValue,

-				newValue);

-	}

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/Person.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/Person.java
deleted file mode 100644
index 7f2d235..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/Person.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 The Pampered Chef, Inc. and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Coconut Palm Software, Inc. - Initial API and implementation

- *     Matthew Hall - bugs 260329, 260337

- *     Yves YANG - port to XWT

- ******************************************************************************/

-package org.eclipse.xwt.tests.snippet017;

-

-

-public class Person extends AbstractModelObject {

-	// A property...

-	String name = "Donald Duck";

-	Person mother;

-	Person father;

-

-	public Person(String name, Person mother, Person father) {

-		this.name = name;

-		this.mother = mother;

-		this.father = father;

-	}

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		String oldValue = this.name;

-		this.name = name;

-		firePropertyChange("name", oldValue, name);

-	}

-

-	public Person getMother() {

-		return mother;

-	}

-

-	public void setMother(Person mother) {

-		firePropertyChange("mother", this.mother, this.mother = mother);

-	}

-

-	public Person getFather() {

-		return father;

-	}

-

-	public void setFather(Person father) {

-		firePropertyChange("father", this.father, this.father = father);

-	}

-

-	public String toString() {

-		return name;

-	}

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/Snippet017TestSuite.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/Snippet017TestSuite.java
deleted file mode 100644
index 40109ac..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/Snippet017TestSuite.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.snippet017;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class Snippet017TestSuite extends TestSuite {
-	public static final Test suite() {
-		return new Snippet017TestSuite();
-	}
-
-	public Snippet017TestSuite() {
-		addTest(new TestSuite(Snippet017Tests.class));
-		addTest(new TestSuite(org.eclipse.xwt.tests.snippet017.inner.Snippet017Tests.class));
-		addTest(new TestSuite(org.eclipse.xwt.tests.snippet017.pojo.Snippet017Tests.class));
-	}
-}
diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/Snippet017Tests.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/Snippet017Tests.java
deleted file mode 100644
index f172e23..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/Snippet017Tests.java
+++ /dev/null
@@ -1,354 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.snippet017;

-

-import java.net.URL;

-import java.util.ArrayList;

-import java.util.List;

-

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.jface.viewers.ComboViewer;

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class Snippet017Tests extends XWTTestCase {

-	protected Person findPerson(List<Person> people, String name) {

-		for (Person person : people) {

-			if (name.equals(person.getName())) {

-				return person;

-			}

-		}

-		return null;

-	}

-	

-	public void testTableViewerWithDerivedColumns() throws Exception {

-		final String name = "Scrooge McDuck";

-		final String motherName = "Downy O'Drake";

-		final String fatherName = "Fergus McDuck";

-		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new ViewModel(), new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				Object dataContext = XWT.getDataContext(element);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				

-				Person person = findPerson(people, name);

-				observableValue.setValue(person);

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TableViewer");

-				assertTrue(viewer instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) viewer;

-				Object dataContext = XWT.getDataContext(viewer);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				Person person = findPerson(people, name);

-				assertEquals(observableValue.getValue(), person);

-				

-				{

-					Object element = XWT.findElementByName(root, "NameText");

-					assertTrue(element instanceof Text);

-					Text nameText = (Text) element;

-					assertEquals(nameText.getText(), name);

-				}

-				

-				{

-					Object element = XWT.findElementByName(root, "MotherCombo");

-					assertTrue(element instanceof ComboViewer);

-					ComboViewer comboViewer = (ComboViewer) element;

-

-					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");

-					Object selected = singleSelection.getValue();

-					assertTrue(selected instanceof Person);

-					Person mother = (Person) selected;

-					assertEquals(mother.getName(), motherName);

-				}

-				

-				{

-					Object element = XWT.findElementByName(root, "FatherCombo");

-					assertTrue(element instanceof ComboViewer);

-					ComboViewer comboViewer = (ComboViewer) element;

-

-					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");

-					Object selected = singleSelection.getValue();

-					assertTrue(selected instanceof Person);

-					Person mother = (Person) selected;

-					assertEquals(mother.getName(), fatherName);

-				}

-			}

-		});

-	}

-	

-	

-	public void testTableViewerWithDerivedColumns_Text() throws Exception {

-		final String name = "Scrooge McDuck";

-		final String newName = "Scrooge McDuck" + " Junor";

-		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new ViewModel(), new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				Object dataContext = XWT.getDataContext(element);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				

-				Person person = findPerson(people, name);

-				observableValue.setValue(person);

-				

-				{

-					Object text = XWT.findElementByName(root, "NameText");

-					assertTrue(text instanceof Text);

-					Text nameText = (Text) text;

-					

-					// modification via UI

-					nameText.setText(newName);

-				}

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TableViewer");

-				assertTrue(viewer instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) viewer;

-				Object dataContext = XWT.getDataContext(viewer);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				Person person = findPerson(people, newName);

-				assertTrue(person != null);

-				assertEquals(observableValue.getValue(), person);

-				

-				{

-					Object element = XWT.findElementByName(root, "NameText");

-					assertTrue(element instanceof Text);

-					Text nameText = (Text) element;

-					assertEquals(nameText.getText(), newName);

-				}

-			}

-		});

-	}

-	

-	public void testTableViewerWithDerivedColumns_TextAPI() throws Exception {

-		final String name = "Scrooge McDuck";

-		final String newName = "Scrooge McDuck" + " Junor";

-		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new ViewModel(), new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				Object dataContext = XWT.getDataContext(element);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				

-				Person person = findPerson(people, name);

-				observableValue.setValue(person);

-				

-				{

-					Object text = XWT.findElementByName(root, "NameText");

-					assertTrue(text instanceof Text);

-					Text nameText = (Text) text;

-					

-					// modification via API

-					IObservableValue textValue = XWT.observableValue(nameText, null, "text");

-					textValue.setValue(newName);

-				}

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TableViewer");

-				assertTrue(viewer instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) viewer;

-				Object dataContext = XWT.getDataContext(viewer);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				Person person = findPerson(people, newName);

-				assertTrue(person != null);

-				assertEquals(observableValue.getValue(), person);

-				

-				{

-					Object element = XWT.findElementByName(root, "NameText");

-					assertTrue(element instanceof Text);

-					Text nameText = (Text) element;

-					assertEquals(nameText.getText(), newName);

-				}

-			}

-		});

-	}

-	

-	public void testTableViewerWithDerivedColumns_MotherCombo() throws Exception {

-		final String name = "Scrooge McDuck";

-		final String motherName = "Downy O'Drake";

-		final String newMotherName = "Della Duck";

-		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new ViewModel(), new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TableViewer");

-				assertTrue(viewer instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) viewer;

-				Object dataContext = XWT.getDataContext(viewer);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				

-				Person person = findPerson(people, name);

-				observableValue.setValue(person);

-				

-				{

-					Object element = XWT.findElementByName(root, "MotherCombo");

-					assertTrue(element instanceof ComboViewer);

-					ComboViewer comboViewer = (ComboViewer) element;

-

-					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");

-					Object selected = singleSelection.getValue();

-					assertTrue(selected instanceof Person);

-					Person mother = (Person) selected;

-					assertEquals(mother.getName(), motherName);

-

-					Person newMother = findPerson(people, newMotherName);

-					singleSelection.setValue(newMother);

-				}

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TableViewer");

-				assertTrue(viewer instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) viewer;

-				Object dataContext = XWT.getDataContext(viewer);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				Person person = findPerson(people, name);

-				assertEquals(observableValue.getValue(), person);

-				

-				Person newMother = findPerson(people, newMotherName);

-

-				assertEquals(person.getMother(), newMother);

-				

-				{

-					Object element = XWT.findElementByName(root, "MotherCombo");

-					assertTrue(element instanceof ComboViewer);

-					ComboViewer comboViewer = (ComboViewer) element;

-

-					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");

-					Object selected = singleSelection.getValue();

-					assertTrue(selected instanceof Person);

-					Person mother = (Person) selected;

-					assertEquals(mother, newMother);

-				}

-			}

-		});

-	}

-	

-	public void testTableViewerWithDerivedColumns_MotherCombo_API() throws Exception {

-		final String name = "Scrooge McDuck";

-		final String motherName = "Downy O'Drake";

-		final String newMotherName = "Della Duck";

-		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new ViewModel(), new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TableViewer");

-				assertTrue(viewer instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) viewer;

-				Object dataContext = XWT.getDataContext(viewer);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				

-				Person person = findPerson(people, name);

-				observableValue.setValue(person);

-				

-				{

-					Object element = XWT.findElementByName(root, "MotherCombo");

-					assertTrue(element instanceof ComboViewer);

-					ComboViewer comboViewer = (ComboViewer) element;

-

-					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");

-					Object selected = singleSelection.getValue();

-					assertTrue(selected instanceof Person);

-					Person mother = (Person) selected;

-					assertEquals(mother.getName(), motherName);

-

-					Person newMother = findPerson(people, newMotherName);

-					

-					IObservableValue motherValue = XWT.observableValue(comboViewer, person, "mother");

-					motherValue.setValue(newMother);

-				}

-

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TableViewer");

-				assertTrue(viewer instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) viewer;

-				Object dataContext = XWT.getDataContext(viewer);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				Person person = findPerson(people, name);

-				assertEquals(observableValue.getValue(), person);

-				

-				Person newMother = findPerson(people, newMotherName);

-

-				assertEquals(person.getMother(), newMother);

-				

-				{

-					Object element = XWT.findElementByName(root, "MotherCombo");

-					assertTrue(element instanceof ComboViewer);

-					ComboViewer comboViewer = (ComboViewer) element;

-

-					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");

-					Object selected = singleSelection.getValue();

-					assertTrue(selected instanceof Person);

-					Person mother = (Person) selected;

-					assertEquals(mother, newMother);

-				}

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/TableViewerWithDerivedColumns.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/TableViewerWithDerivedColumns.java
deleted file mode 100644
index cc8ad82..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/TableViewerWithDerivedColumns.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 The Pampered Chef, Inc. and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Coconut Palm Software, Inc. - Initial API and implementation

- *     Matthew Hall - bugs 260329, 260337

- *     Yves YANG - port to XWT

- ******************************************************************************/

-

-package org.eclipse.xwt.tests.snippet017;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * Demonstrates binding a TableViewer to a collection.

- */

-public class TableViewerWithDerivedColumns {

-	public static void main(String[] args) {

-		ViewModel viewModel = new ViewModel();

-		URL url = TableViewerWithDerivedColumns.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url, viewModel);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-	

-	static Person UNKNOWN = new Person("unknown", null, null);

-}

diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/TableViewerWithDerivedColumns.xwt b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/TableViewerWithDerivedColumns.xwt
deleted file mode 100644
index 00f3d77..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/TableViewerWithDerivedColumns.xwt
+++ /dev/null
@@ -1,54 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.snippet017"

-    size="500, 300">

-	<Shell.layout>

-		<GridLayout numColumns="2"/>

-	</Shell.layout>

-	<TableViewer name="TableViewer" x:Style="FULL_SELECTION" input="{Binding Path=people}">

-		<TableViewer.columns headerVisible="true">

-			<TableViewerColumn width="100" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="100" text="Mother" bindingPath="mother.name"/>

-			<TableViewerColumn width="100" text="Father" bindingPath="father.name"/>

-			<TableViewerColumn width="100" text="Grand Mother" bindingPath="mother.mother.name"/>

-		</TableViewer.columns>

-		<TableViewer.table headerVisible="true"/>

-	    <TableViewer.filters>

-			<ViewerFilter>

-				<ViewerFilter.conditions>

-					<Condition property="name" value="unknown" operator="NE"/>

-				</ViewerFilter.conditions>

-			</ViewerFilter>

-		</TableViewer.filters>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-

-	<Label text="Name:">

-	</Label>

-	<Text name="NameText" x:Style="BORDER" dataContext="{Binding ElementName=TableViewer,path=singleSelection}"

-		text="{Binding path=(j:Person.name),UpdateSourceTrigger=PropertyChanged}" >

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-

-	<Label text="Mother:">

-	</Label>

-	<ComboViewer name="MotherCombo" x:Style="READ_ONLY"

-		input="{Binding path=people}"

-		singleSelection="{Binding ElementName=TableViewer,path=singleSelection.(j:Person.mother)}" 

-		bindingPath="name">

-	</ComboViewer>

-

-	<Label text="Father:">

-	</Label>

-	<ComboViewer name="FatherCombo" x:Style="READ_ONLY"

-		input="{Binding path=people}"

-		singleSelection="{Binding ElementName=TableViewer,path=singleSelection.(j:Person.father)}" 

-		bindingPath="name">

-	</ComboViewer>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/ViewModel.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/ViewModel.java
deleted file mode 100644
index b4024d9..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/ViewModel.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 The Pampered Chef, Inc. and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Coconut Palm Software, Inc. - Initial API and implementation

- *     Matthew Hall - bugs 260329, 260337

- *     Yves YANG - port to XWT

- ******************************************************************************/

-package org.eclipse.xwt.tests.snippet017;

-

-import java.util.ArrayList;

-

-public class ViewModel {

-	// The model to bind

-	private ArrayList<Person> people = new ArrayList<Person>();

-	{

-		Person fergus = new Person("Fergus McDuck", TableViewerWithDerivedColumns.UNKNOWN, TableViewerWithDerivedColumns.UNKNOWN);

-		Person downy = new Person("Downy O'Drake", TableViewerWithDerivedColumns.UNKNOWN, TableViewerWithDerivedColumns.UNKNOWN);

-		Person scrooge = new Person("Scrooge McDuck", downy, fergus);

-		Person hortense = new Person("Hortense McDuck", downy, fergus);

-		Person quackmore = new Person("Quackmore Duck", TableViewerWithDerivedColumns.UNKNOWN, TableViewerWithDerivedColumns.UNKNOWN);

-		Person della = new Person("Della Duck", hortense, quackmore);

-		Person donald = new Person("Donald Duck", hortense, quackmore);

-		donald.setFather(quackmore);

-		donald.setMother(hortense);

-		della.setFather(quackmore);

-		della.setMother(hortense);

-		hortense.setMother(downy);

-		hortense.setFather(fergus);

-		scrooge.setMother(downy);

-		scrooge.setFather(fergus);

-		people.add(TableViewerWithDerivedColumns.UNKNOWN);

-		people.add(downy);

-		people.add(fergus);

-		people.add(scrooge);

-		people.add(quackmore);

-		people.add(hortense);

-		people.add(della);

-		people.add(donald);

-	}

-

-	public ArrayList<Person> getPeople() {

-		return people;

-	}

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/inner/Snippet017Tests.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/inner/Snippet017Tests.java
deleted file mode 100644
index b941b2e..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/inner/Snippet017Tests.java
+++ /dev/null
@@ -1,356 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.snippet017.inner;

-

-import java.net.URL;

-import java.util.ArrayList;

-import java.util.List;

-

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.jface.viewers.ComboViewer;

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-import org.eclipse.xwt.tests.snippet017.inner.TableViewerWithDerivedColumns.Person;

-import org.eclipse.xwt.tests.snippet017.inner.TableViewerWithDerivedColumns.ViewModel;

-

-public class Snippet017Tests extends XWTTestCase {

-	protected Person findPerson(List<Person> people, String name) {

-		for (Person person : people) {

-			if (name.equals(person.getName())) {

-				return person;

-			}

-		}

-		return null;

-	}

-	

-	public void testTableViewerWithDerivedColumns() throws Exception {

-		final String name = "Scrooge McDuck";

-		final String motherName = "Downy O'Drake";

-		final String fatherName = "Fergus McDuck";

-		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new ViewModel(), new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				Object dataContext = XWT.getDataContext(element);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				

-				Person person = findPerson(people, name);

-				observableValue.setValue(person);

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TableViewer");

-				assertTrue(viewer instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) viewer;

-				Object dataContext = XWT.getDataContext(viewer);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				Person person = findPerson(people, name);

-				assertEquals(observableValue.getValue(), person);

-				

-				{

-					Object element = XWT.findElementByName(root, "NameText");

-					assertTrue(element instanceof Text);

-					Text nameText = (Text) element;

-					assertEquals(nameText.getText(), name);

-				}

-				

-				{

-					Object element = XWT.findElementByName(root, "MotherCombo");

-					assertTrue(element instanceof ComboViewer);

-					ComboViewer comboViewer = (ComboViewer) element;

-

-					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");

-					Object selected = singleSelection.getValue();

-					assertTrue(selected instanceof Person);

-					Person mother = (Person) selected;

-					assertEquals(mother.getName(), motherName);

-				}

-				

-				{

-					Object element = XWT.findElementByName(root, "FatherCombo");

-					assertTrue(element instanceof ComboViewer);

-					ComboViewer comboViewer = (ComboViewer) element;

-

-					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");

-					Object selected = singleSelection.getValue();

-					assertTrue(selected instanceof Person);

-					Person mother = (Person) selected;

-					assertEquals(mother.getName(), fatherName);

-				}

-			}

-		});

-	}

-	

-	

-	public void testTableViewerWithDerivedColumns_Text() throws Exception {

-		final String name = "Scrooge McDuck";

-		final String newName = "Scrooge McDuck" + " Junor";

-		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new ViewModel(), new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				Object dataContext = XWT.getDataContext(element);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				

-				Person person = findPerson(people, name);

-				observableValue.setValue(person);

-				

-				{

-					Object text = XWT.findElementByName(root, "NameText");

-					assertTrue(text instanceof Text);

-					Text nameText = (Text) text;

-					

-					// modification via UI

-					nameText.setText(newName);

-				}

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TableViewer");

-				assertTrue(viewer instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) viewer;

-				Object dataContext = XWT.getDataContext(viewer);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				Person person = findPerson(people, newName);

-				assertTrue(person != null);

-				assertEquals(observableValue.getValue(), person);

-				

-				{

-					Object element = XWT.findElementByName(root, "NameText");

-					assertTrue(element instanceof Text);

-					Text nameText = (Text) element;

-					assertEquals(nameText.getText(), newName);

-				}

-			}

-		});

-	}

-	

-	public void testTableViewerWithDerivedColumns_TextAPI() throws Exception {

-		final String name = "Scrooge McDuck";

-		final String newName = "Scrooge McDuck" + " Junor";

-		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new ViewModel(), new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				Object dataContext = XWT.getDataContext(element);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				

-				Person person = findPerson(people, name);

-				observableValue.setValue(person);

-				

-				{

-					Object text = XWT.findElementByName(root, "NameText");

-					assertTrue(text instanceof Text);

-					Text nameText = (Text) text;

-					

-					// modification via API

-					IObservableValue textValue = XWT.observableValue(nameText, null, "text");

-					textValue.setValue(newName);

-				}

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TableViewer");

-				assertTrue(viewer instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) viewer;

-				Object dataContext = XWT.getDataContext(viewer);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				Person person = findPerson(people, newName);

-				assertTrue(person != null);

-				assertEquals(observableValue.getValue(), person);

-				

-				{

-					Object element = XWT.findElementByName(root, "NameText");

-					assertTrue(element instanceof Text);

-					Text nameText = (Text) element;

-					assertEquals(nameText.getText(), newName);

-				}

-			}

-		});

-	}

-	

-	public void testTableViewerWithDerivedColumns_MotherCombo() throws Exception {

-		final String name = "Scrooge McDuck";

-		final String motherName = "Downy O'Drake";

-		final String newMotherName = "Della Duck";

-		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new ViewModel(), new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TableViewer");

-				assertTrue(viewer instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) viewer;

-				Object dataContext = XWT.getDataContext(viewer);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				

-				Person person = findPerson(people, name);

-				observableValue.setValue(person);

-				

-				{

-					Object element = XWT.findElementByName(root, "MotherCombo");

-					assertTrue(element instanceof ComboViewer);

-					ComboViewer comboViewer = (ComboViewer) element;

-

-					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");

-					Object selected = singleSelection.getValue();

-					assertTrue(selected instanceof Person);

-					Person mother = (Person) selected;

-					assertEquals(mother.getName(), motherName);

-

-					Person newMother = findPerson(people, newMotherName);

-					singleSelection.setValue(newMother);

-				}

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TableViewer");

-				assertTrue(viewer instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) viewer;

-				Object dataContext = XWT.getDataContext(viewer);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				Person person = findPerson(people, name);

-				assertEquals(observableValue.getValue(), person);

-				

-				Person newMother = findPerson(people, newMotherName);

-

-				assertEquals(person.getMother(), newMother);

-				

-				{

-					Object element = XWT.findElementByName(root, "MotherCombo");

-					assertTrue(element instanceof ComboViewer);

-					ComboViewer comboViewer = (ComboViewer) element;

-

-					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");

-					Object selected = singleSelection.getValue();

-					assertTrue(selected instanceof Person);

-					Person mother = (Person) selected;

-					assertEquals(mother, newMother);

-				}

-			}

-		});

-	}

-	

-	public void testTableViewerWithDerivedColumns_MotherCombo_API() throws Exception {

-		final String name = "Scrooge McDuck";

-		final String motherName = "Downy O'Drake";

-		final String newMotherName = "Della Duck";

-		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new ViewModel(), new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TableViewer");

-				assertTrue(viewer instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) viewer;

-				Object dataContext = XWT.getDataContext(viewer);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				

-				Person person = findPerson(people, name);

-				observableValue.setValue(person);

-				

-				{

-					Object element = XWT.findElementByName(root, "MotherCombo");

-					assertTrue(element instanceof ComboViewer);

-					ComboViewer comboViewer = (ComboViewer) element;

-

-					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");

-					Object selected = singleSelection.getValue();

-					assertTrue(selected instanceof Person);

-					Person mother = (Person) selected;

-					assertEquals(mother.getName(), motherName);

-

-					Person newMother = findPerson(people, newMotherName);

-					

-					IObservableValue motherValue = XWT.observableValue(comboViewer, person, "mother");

-					motherValue.setValue(newMother);

-				}

-

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TableViewer");

-				assertTrue(viewer instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) viewer;

-				Object dataContext = XWT.getDataContext(viewer);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				Person person = findPerson(people, name);

-				assertEquals(observableValue.getValue(), person);

-				

-				Person newMother = findPerson(people, newMotherName);

-

-				assertEquals(person.getMother(), newMother);

-				

-				{

-					Object element = XWT.findElementByName(root, "MotherCombo");

-					assertTrue(element instanceof ComboViewer);

-					ComboViewer comboViewer = (ComboViewer) element;

-

-					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");

-					Object selected = singleSelection.getValue();

-					assertTrue(selected instanceof Person);

-					Person mother = (Person) selected;

-					assertEquals(mother, newMother);

-				}

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/inner/TableViewerWithDerivedColumns.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/inner/TableViewerWithDerivedColumns.java
deleted file mode 100644
index 4749633..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/inner/TableViewerWithDerivedColumns.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 The Pampered Chef, Inc. and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Coconut Palm Software, Inc. - Initial API and implementation

- *     Matthew Hall - bugs 260329, 260337

- *     Yves YANG - port to XWT

- ******************************************************************************/

-

-package org.eclipse.xwt.tests.snippet017.inner;

-

-import java.beans.PropertyChangeListener;

-import java.beans.PropertyChangeSupport;

-import java.net.URL;

-import java.util.ArrayList;

-import java.util.List;

-

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.jface.viewers.ComboViewer;

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * Demonstrates binding a TableViewer to a collection.

- */

-public class TableViewerWithDerivedColumns {

-	public static void main(String[] args) {

-		ViewModel viewModel = new ViewModel();

-		URL url = TableViewerWithDerivedColumns.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url, viewModel);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-	

-	protected Person findPerson(List<Person> people, String name) {

-		for (Person person : people) {

-			if (name.equals(person.getName())) {

-				return person;

-			}

-		}

-		return null;

-	}

-

-	public void changeMother(Object sender, Event event) {

-		final String newMotherName = "Della Duck";

-		ViewModel dataContext = (ViewModel) XWT.getDataContext(event.widget);

-		

-		ComboViewer comboViewer = (ComboViewer) XWT.findElementByName(event.widget, "MotherCombo");

-

-		TableViewer tableViewer = (TableViewer) XWT.findElementByName(event.widget, "TableViewer");

-

-		IObservableValue singleSelection = XWT.observableValue(tableViewer, null, "singleSelection");

-		Object selected = singleSelection.getValue();

-

-		IObservableValue motherValue = XWT.observableValue(comboViewer, selected, "mother");

-		Person newMother = findPerson(dataContext.getPeople(), newMotherName);

-		motherValue.setValue(newMother);

-	}

-	

-	// Minimal JavaBeans support

-	public static abstract class AbstractModelObject {

-		private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(

-				this);

-

-		public void addPropertyChangeListener(PropertyChangeListener listener) {

-			propertyChangeSupport.addPropertyChangeListener(listener);

-		}

-

-		public void addPropertyChangeListener(String propertyName,

-				PropertyChangeListener listener) {

-			propertyChangeSupport.addPropertyChangeListener(propertyName,

-					listener);

-		}

-

-		public void removePropertyChangeListener(PropertyChangeListener listener) {

-			propertyChangeSupport.removePropertyChangeListener(listener);

-		}

-

-		public void removePropertyChangeListener(String propertyName,

-				PropertyChangeListener listener) {

-			propertyChangeSupport.removePropertyChangeListener(propertyName,

-					listener);

-		}

-

-		protected void firePropertyChange(String propertyName, Object oldValue,

-				Object newValue) {

-			propertyChangeSupport.firePropertyChange(propertyName, oldValue,

-					newValue);

-		}

-	}

-

-	private static Person UNKNOWN = new Person("unknown", null, null);

-

-	// The data model class. This is normally a persistent class of some sort.

-	public static class Person extends AbstractModelObject {

-		// A property...

-		String name = "Donald Duck";

-		Person mother;

-		Person father;

-

-		public Person(String name, Person mother, Person father) {

-			this.name = name;

-			this.mother = mother;

-			this.father = father;

-		}

-

-		public String getName() {

-			return name;

-		}

-

-		public void setName(String name) {

-			String oldValue = this.name;

-			this.name = name;

-			firePropertyChange("name", oldValue, name);

-		}

-

-		public Person getMother() {

-			return mother;

-		}

-

-		public void setMother(Person mother) {

-			firePropertyChange("mother", this.mother, this.mother = mother);

-		}

-

-		public Person getFather() {

-			return father;

-		}

-

-		public void setFather(Person father) {

-			firePropertyChange("father", this.father, this.father = father);

-		}

-

-		public String toString() {

-			return name;

-		}

-	}

-

-	// The View's model--the root of our Model graph for this particular GUI.

-	//

-	// Typically each View class has a corresponding ViewModel class.

-	// The ViewModel is responsible for getting the objects to edit from the

-	// data access tier. Since this snippet doesn't have any persistent objects

-	// ro retrieve, this ViewModel just instantiates a model object to edit.

-	public static class ViewModel {

-		// The model to bind

-		private ArrayList<Person> people = new ArrayList<Person>();

-		{

-			Person fergus = new Person("Fergus McDuck", UNKNOWN, UNKNOWN);

-			Person downy = new Person("Downy O'Drake", UNKNOWN, UNKNOWN);

-			Person scrooge = new Person("Scrooge McDuck", downy, fergus);

-			Person hortense = new Person("Hortense McDuck", downy, fergus);

-			Person quackmore = new Person("Quackmore Duck", UNKNOWN, UNKNOWN);

-			Person della = new Person("Della Duck", hortense, quackmore);

-			Person donald = new Person("Donald Duck", hortense, quackmore);

-			donald.setFather(quackmore);

-			donald.setMother(hortense);

-			della.setFather(quackmore);

-			della.setMother(hortense);

-			hortense.setMother(downy);

-			hortense.setFather(fergus);

-			scrooge.setMother(downy);

-			scrooge.setFather(fergus);

-			people.add(UNKNOWN);

-			people.add(downy);

-			people.add(fergus);

-			people.add(scrooge);

-			people.add(quackmore);

-			people.add(hortense);

-			people.add(della);

-			people.add(donald);

-		}

-

-		public ArrayList<Person> getPeople() {

-			return people;

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/inner/TableViewerWithDerivedColumns.xwt b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/inner/TableViewerWithDerivedColumns.xwt
deleted file mode 100644
index 9e6dde3..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/inner/TableViewerWithDerivedColumns.xwt
+++ /dev/null
@@ -1,76 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.snippet017.inner"

-    x:Class="org.eclipse.xwt.tests.snippet017.inner.TableViewerWithDerivedColumns"

-    size="500, 300">

-	<Shell.layout>

-		<GridLayout numColumns="2"/>

-	</Shell.layout>

-	<TableViewer name="TableViewer" x:Style="FULL_SELECTION" input="{Binding Path=people}">

-		<TableViewer.columns headerVisible="true">

-			<TableViewerColumn width="100" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="100" text="Mother" bindingPath="mother.name"/>

-			<TableViewerColumn width="100" text="Father" bindingPath="father.name"/>

-			<TableViewerColumn width="100" text="Grand Mother" bindingPath="mother.mother.name"/>

-		</TableViewer.columns>

-		<TableViewer.table headerVisible="true"/>

-	    <TableViewer.filters>

-			<ViewerFilter>

-				<ViewerFilter.conditions>

-					<Condition property="name" value="unknown" operator="NE"/>

-				</ViewerFilter.conditions>

-			</ViewerFilter>

-		</TableViewer.filters>		

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-

-	<Label text="Name:">

-	</Label>

-	<Text x:Style="BORDER"

-		text="{Binding ElementName=TableViewer,path=singleSelection.(j:TableViewerWithDerivedColumns$Person.name)}" >

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-

-	<Label text="Name:">

-	</Label>

-	<Text x:Style="BORDER"

-		text="{Binding ElementName=TableViewer,path=singleSelection.(j:TableViewerWithDerivedColumns.Person.name)}" >

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-

-	<Label text="Name:">

-	</Label>

-	<Text name="NameText" x:Style="BORDER" dataContext="{Binding ElementName=TableViewer,path=singleSelection}"

-		text="{Binding path=(j:TableViewerWithDerivedColumns.Person.name),UpdateSourceTrigger=PropertyChanged}" >

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-

-	<Label text="Mother:">

-	</Label>

-	<ComboViewer name="MotherCombo" x:Style="READ_ONLY"

-		input="{Binding path=people}"

-		singleSelection="{Binding ElementName=TableViewer,path=singleSelection.(j:TableViewerWithDerivedColumns.Person.mother)}" 

-		bindingPath="name">

-	</ComboViewer>

-

-	<Label text="Father:">

-	</Label>

-	<ComboViewer name="FatherCombo" x:Style="READ_ONLY"

-		input="{Binding path=people}"

-		singleSelection="{Binding ElementName=TableViewer,path=singleSelection.(j:TableViewerWithDerivedColumns.Person.father)}" 

-		bindingPath="name">

-	</ComboViewer>

-	<Button text="Click me" selectionEvent="changeMother"/>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/pojo/Snippet017Tests.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/pojo/Snippet017Tests.java
deleted file mode 100644
index 910cf16..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/pojo/Snippet017Tests.java
+++ /dev/null
@@ -1,358 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.snippet017.pojo;

-

-import java.net.URL;

-import java.util.ArrayList;

-import java.util.List;

-

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.jface.viewers.ComboViewer;

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-import org.eclipse.xwt.tests.snippet017.pojo.TableViewerWithDerivedColumns.Person;

-import org.eclipse.xwt.tests.snippet017.pojo.TableViewerWithDerivedColumns.ViewModel;

-

-public class Snippet017Tests extends XWTTestCase {

-	protected Person findPerson(List<Person> people, String name) {

-		for (Person person : people) {

-			if (name.equals(person.getName())) {

-				return person;

-			}

-		}

-		return null;

-	}

-	

-	public void testTableViewerWithDerivedColumns() throws Exception {

-		final String name = "Scrooge McDuck";

-		final String motherName = "Downy O'Drake";

-		final String fatherName = "Fergus McDuck";

-		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new ViewModel(), new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				Object dataContext = XWT.getDataContext(element);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				

-				Person person = findPerson(people, name);

-				observableValue.setValue(person);

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TableViewer");

-				assertTrue(viewer instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) viewer;

-				Object dataContext = XWT.getDataContext(viewer);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				Person person = findPerson(people, name);

-				assertEquals(observableValue.getValue(), person);

-				

-				{

-					Object element = XWT.findElementByName(root, "NameText");

-					assertTrue(element instanceof Text);

-					Text nameText = (Text) element;

-					assertEquals(nameText.getText(), name);

-				}

-				

-				{

-					Object element = XWT.findElementByName(root, "MotherCombo");

-					assertTrue(element instanceof ComboViewer);

-					ComboViewer comboViewer = (ComboViewer) element;

-

-					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");

-					Object selected = singleSelection.getValue();

-					assertTrue(selected instanceof Person);

-					Person mother = (Person) selected;

-					assertEquals(mother.getName(), motherName);

-				}

-				

-				{

-					Object element = XWT.findElementByName(root, "FatherCombo");

-					assertTrue(element instanceof ComboViewer);

-					ComboViewer comboViewer = (ComboViewer) element;

-

-					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");

-					Object selected = singleSelection.getValue();

-					assertTrue(selected instanceof Person);

-					Person mother = (Person) selected;

-					assertEquals(mother.getName(), fatherName);

-				}

-			}

-		});

-	}

-	

-	

-	public void testTableViewerWithDerivedColumns_Text() throws Exception {

-		final String name = "Scrooge McDuck";

-		final String newName = "Scrooge McDuck" + " Junor";

-		

-		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new ViewModel(), new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				Object dataContext = XWT.getDataContext(element);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				

-				Person person = findPerson(people, name);

-				observableValue.setValue(person);

-				

-				{

-					Object text = XWT.findElementByName(root, "NameText");

-					assertTrue(text instanceof Text);

-					Text nameText = (Text) text;

-					

-					// modification via UI

-					nameText.setText(newName);

-				}

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TableViewer");

-				assertTrue(viewer instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) viewer;

-				Object dataContext = XWT.getDataContext(viewer);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				Person person = findPerson(people, newName);

-				assertTrue(person != null);

-				assertEquals(observableValue.getValue(), person);

-				

-				{

-					Object element = XWT.findElementByName(root, "NameText");

-					assertTrue(element instanceof Text);

-					Text nameText = (Text) element;

-					assertEquals(nameText.getText(), newName);

-				}

-			}

-		});

-	}

-	

-	public void testTableViewerWithDerivedColumns_TextAPI() throws Exception {

-		final String name = "Scrooge McDuck";

-		final String newName = "Scrooge McDuck" + " Junor";

-		

-		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new ViewModel(), new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				Object dataContext = XWT.getDataContext(element);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				

-				Person person = findPerson(people, name);

-				observableValue.setValue(person);

-				

-				{

-					Object text = XWT.findElementByName(root, "NameText");

-					assertTrue(text instanceof Text);

-					Text nameText = (Text) text;

-					

-					// modification via API

-					IObservableValue textValue = XWT.observableValue(nameText, null, "text");

-					textValue.setValue(newName);

-				}

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TableViewer");

-				assertTrue(viewer instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) viewer;

-				Object dataContext = XWT.getDataContext(viewer);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				Person person = findPerson(people, newName);

-				assertTrue(person != null);

-				assertEquals(observableValue.getValue(), person);

-				

-				{

-					Object element = XWT.findElementByName(root, "NameText");

-					assertTrue(element instanceof Text);

-					Text nameText = (Text) element;

-					assertEquals(nameText.getText(), newName);

-				}

-			}

-		});

-	}

-	

-	public void testTableViewerWithDerivedColumns_MotherCombo() throws Exception {

-		final String name = "Scrooge McDuck";

-		final String motherName = "Downy O'Drake";

-		final String newMotherName = "Della Duck";

-		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new ViewModel(), new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TableViewer");

-				assertTrue(viewer instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) viewer;

-				Object dataContext = XWT.getDataContext(viewer);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				

-				Person person = findPerson(people, name);

-				observableValue.setValue(person);

-				

-				{

-					Object element = XWT.findElementByName(root, "MotherCombo");

-					assertTrue(element instanceof ComboViewer);

-					ComboViewer comboViewer = (ComboViewer) element;

-

-					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");

-					Object selected = singleSelection.getValue();

-					assertTrue(selected instanceof Person);

-					Person mother = (Person) selected;

-					assertEquals(mother.getName(), motherName);

-

-					Person newMother = findPerson(people, newMotherName);

-					singleSelection.setValue(newMother);

-				}

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TableViewer");

-				assertTrue(viewer instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) viewer;

-				Object dataContext = XWT.getDataContext(viewer);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				Person person = findPerson(people, name);

-				assertEquals(observableValue.getValue(), person);

-				

-				Person newMother = findPerson(people, newMotherName);

-

-				assertEquals(person.getMother(), newMother);

-				

-				{

-					Object element = XWT.findElementByName(root, "MotherCombo");

-					assertTrue(element instanceof ComboViewer);

-					ComboViewer comboViewer = (ComboViewer) element;

-

-					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");

-					Object selected = singleSelection.getValue();

-					assertTrue(selected instanceof Person);

-					Person mother = (Person) selected;

-					assertEquals(mother, newMother);

-				}

-			}

-		});

-	}

-	

-	// TODO

-	public void tesTableViewerWithDerivedColumns_MotherCombo_API() throws Exception {

-		final String name = "Scrooge McDuck";

-		final String motherName = "Downy O'Drake";

-		final String newMotherName = "Della Duck";

-		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new ViewModel(), new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TableViewer");

-				assertTrue(viewer instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) viewer;

-				Object dataContext = XWT.getDataContext(viewer);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				

-				Person person = findPerson(people, name);

-				observableValue.setValue(person);

-				

-				{

-					Object element = XWT.findElementByName(root, "MotherCombo");

-					assertTrue(element instanceof ComboViewer);

-					ComboViewer comboViewer = (ComboViewer) element;

-

-					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");

-					Object selected = singleSelection.getValue();

-					assertTrue(selected instanceof Person);

-					Person mother = (Person) selected;

-					assertEquals(mother.getName(), motherName);

-

-					IObservableValue motherValue = XWT.observableValue(comboViewer, person, "mother");

-

-					Person newMother = findPerson(people, newMotherName);

-					motherValue.setValue(newMother);

-				}

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TableViewer");

-				assertTrue(viewer instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) viewer;

-				Object dataContext = XWT.getDataContext(viewer);

-				assertTrue(dataContext instanceof ViewModel);

-				ViewModel viewModel = (ViewModel) dataContext; 

-				ArrayList<Person> people = viewModel.getPeople();

-				

-				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");

-				Person person = findPerson(people, name);

-				assertEquals(observableValue.getValue(), person);

-				

-				Person newMother = findPerson(people, newMotherName);

-

-				assertEquals(person.getMother(), newMother);

-				

-				{

-					Object element = XWT.findElementByName(root, "MotherCombo");

-					assertTrue(element instanceof ComboViewer);

-					ComboViewer comboViewer = (ComboViewer) element;

-

-					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");

-					Object selected = singleSelection.getValue();

-					assertTrue(selected instanceof Person);

-					Person mother = (Person) selected;

-					assertEquals(mother, newMother);

-				}

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/pojo/TableViewerWithDerivedColumns.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/pojo/TableViewerWithDerivedColumns.java
deleted file mode 100644
index 7d9f04e..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/pojo/TableViewerWithDerivedColumns.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 The Pampered Chef, Inc. and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Coconut Palm Software, Inc. - Initial API and implementation

- *     Matthew Hall - bugs 260329, 260337

- *     Yves YANG - port to XWT

- ******************************************************************************/

-

-package org.eclipse.xwt.tests.snippet017.pojo;

-

-import java.net.URL;

-import java.util.ArrayList;

-import java.util.List;

-

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.jface.viewers.ComboViewer;

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * Demonstrates binding a TableViewer to a collection.

- */

-public class TableViewerWithDerivedColumns {

-	public static void main(String[] args) {

-		ViewModel viewModel = new ViewModel();

-		URL url = TableViewerWithDerivedColumns.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url, viewModel);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	private static Person UNKNOWN = new Person("unknown", null, null);

-	

-	

-	protected Person findPerson(List<Person> people, String name) {

-		for (Person person : people) {

-			if (name.equals(person.getName())) {

-				return person;

-			}

-		}

-		return null;

-	}

-

-	public void changeMother(Object sender, Event event) {

-		final String newMotherName = "Della Duck";

-		ViewModel dataContext = (ViewModel) XWT.getDataContext(event.widget);

-		

-		ComboViewer comboViewer = (ComboViewer) XWT.findElementByName(event.widget, "MotherCombo");

-

-		TableViewer tableViewer = (TableViewer) XWT.findElementByName(event.widget, "TableViewer");

-

-		IObservableValue singleSelection = XWT.observableValue(tableViewer, null, "singleSelection");

-		Object selected = singleSelection.getValue();

-

-		IObservableValue motherValue = XWT.observableValue(comboViewer, selected, "mother");

-		Person newMother = findPerson(dataContext.getPeople(), newMotherName);

-		motherValue.setValue(newMother);

-		

-		tableViewer.refresh();

-		comboViewer.refresh();

-	}

-

-	// The data model class. This is normally a persistent class of some sort.

-	public static class Person {

-		// A property...

-		String name = "Donald Duck";

-		Person mother;

-		Person father;

-

-		public Person(String name, Person mother, Person father) {

-			this.name = name;

-			this.mother = mother;

-			this.father = father;

-		}

-

-		public String getName() {

-			return name;

-		}

-

-		public void setName(String name) {

-			this.name = name;

-		}

-

-		public Person getMother() {

-			return mother;

-		}

-

-		public void setMother(Person mother) {

-			this.mother = mother;

-		}

-

-		public Person getFather() {

-			return father;

-		}

-

-		public void setFather(Person father) {

-			this.father = father;

-		}

-

-		public String toString() {

-			return name;

-		}

-	}

-

-	// The View's model--the root of our Model graph for this particular GUI.

-	//

-	// Typically each View class has a corresponding ViewModel class.

-	// The ViewModel is responsible for getting the objects to edit from the

-	// data access tier. Since this snippet doesn't have any persistent objects

-	// ro retrieve, this ViewModel just instantiates a model object to edit.

-	public static class ViewModel {

-		// The model to bind

-		private ArrayList<Person> people = new ArrayList<Person>();

-		{

-			Person fergus = new Person("Fergus McDuck", UNKNOWN, UNKNOWN);

-			Person downy = new Person("Downy O'Drake", UNKNOWN, UNKNOWN);

-			Person scrooge = new Person("Scrooge McDuck", downy, fergus);

-			Person hortense = new Person("Hortense McDuck", downy, fergus);

-			Person quackmore = new Person("Quackmore Duck", UNKNOWN, UNKNOWN);

-			Person della = new Person("Della Duck", hortense, quackmore);

-			Person donald = new Person("Donald Duck", hortense, quackmore);

-			donald.setFather(quackmore);

-			donald.setMother(hortense);

-			della.setFather(quackmore);

-			della.setMother(hortense);

-			hortense.setMother(downy);

-			hortense.setFather(fergus);

-			scrooge.setMother(downy);

-			scrooge.setFather(fergus);

-			people.add(UNKNOWN);

-			people.add(downy);

-			people.add(fergus);

-			people.add(scrooge);

-			people.add(quackmore);

-			people.add(hortense);

-			people.add(della);

-			people.add(donald);

-		}

-

-		public ArrayList<Person> getPeople() {

-			return people;

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/pojo/TableViewerWithDerivedColumns.xwt b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/pojo/TableViewerWithDerivedColumns.xwt
deleted file mode 100644
index f3b5619..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/pojo/TableViewerWithDerivedColumns.xwt
+++ /dev/null
@@ -1,76 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.snippet017.pojo"

-    x:Class="org.eclipse.xwt.tests.snippet017.pojo.TableViewerWithDerivedColumns"

-    size="500, 300">

-	<Shell.layout>

-		<GridLayout numColumns="2"/>

-	</Shell.layout>

-	<TableViewer name="TableViewer" x:Style="FULL_SELECTION" input="{Binding Path=people}">

-		<TableViewer.columns headerVisible="true">

-			<TableViewerColumn width="100" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="100" text="Mother" bindingPath="mother.name"/>

-			<TableViewerColumn width="100" text="Father" bindingPath="father.name"/>

-			<TableViewerColumn width="100" text="Grand Mother" bindingPath="mother.mother.name"/>

-		</TableViewer.columns>

-		<TableViewer.table headerVisible="true"/>

-	    <TableViewer.filters>

-			<ViewerFilter>

-				<ViewerFilter.conditions>

-					<Condition property="name" value="unknown" operator="NE"/>

-				</ViewerFilter.conditions>

-			</ViewerFilter>

-		</TableViewer.filters>		

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-

-	<Label text="Name:">

-	</Label>

-	<Text x:Style="BORDER"

-		text="{Binding ElementName=TableViewer,path=singleSelection.(j:TableViewerWithDerivedColumns$Person.name)}" >

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-

-	<Label text="Name:">

-	</Label>

-	<Text x:Style="BORDER"

-		text="{Binding ElementName=TableViewer,path=singleSelection.(j:TableViewerWithDerivedColumns.Person.name)}" >

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-

-	<Label text="Name:">

-	</Label>

-	<Text name="NameText" x:Style="BORDER" dataContext="{Binding ElementName=TableViewer,path=singleSelection}"

-		text="{Binding path=(j:TableViewerWithDerivedColumns.Person.name),UpdateSourceTrigger=PropertyChanged}" >

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-

-	<Label text="Mother:">

-	</Label>

-	<ComboViewer name="MotherCombo" x:Style="READ_ONLY"

-		input="{Binding path=people}"

-		singleSelection="{Binding ElementName=TableViewer,path=singleSelection.(j:TableViewerWithDerivedColumns.Person.mother)}" 

-		bindingPath="name">

-	</ComboViewer>

-

-	<Label text="Father:">

-	</Label>

-	<ComboViewer name="FatherCombo" x:Style="READ_ONLY"

-		input="{Binding path=people}"

-		singleSelection="{Binding ElementName=TableViewer,path=singleSelection.(j:TableViewerWithDerivedColumns.Person.father)}" 

-		bindingPath="name">

-	</ComboViewer>

-	<Button text="Click me" selectionEvent="changeMother"/>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/Bean.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/Bean.java
deleted file mode 100644
index 9a056ef..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/Bean.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-/**

- * 

- */

-package org.eclipse.xwt.tests.snippet019;

-

-import java.beans.PropertyChangeListener;

-import java.beans.PropertyChangeSupport;

-import java.util.ArrayList;

-import java.util.List;

-

-public class Bean {

-	/* package */PropertyChangeSupport changeSupport = new PropertyChangeSupport(

-			this);

-	private String text;

-	private List<Bean> list;

-

-	public Bean(String text) {

-		this.text = text;

-		list = new ArrayList<Bean>();

-	}

-

-	public void addPropertyChangeListener(PropertyChangeListener listener) {

-		changeSupport.addPropertyChangeListener(listener);

-	}

-

-	public void removePropertyChangeListener(PropertyChangeListener listener) {

-		changeSupport.removePropertyChangeListener(listener);

-	}

-

-	public String getText() {

-		return text;

-	}

-

-	public void setText(String value) {

-		changeSupport.firePropertyChange("text", this.text,

-				this.text = value);

-	}

-

-	public List<Bean> getList() {

-		if (list == null)

-			return null;

-		return new ArrayList<Bean>(list);

-	}

-

-	public void setList(List<Bean> list) {

-		if (list != null)

-			list = new ArrayList<Bean>(list);

-		changeSupport.firePropertyChange("list", this.list,

-				this.list = list);

-	}

-

-	public boolean hasListeners(String propertyName) {

-		return changeSupport.hasListeners(propertyName);

-	}

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/Snippet019TestSuite.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/Snippet019TestSuite.java
deleted file mode 100644
index e147a45..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/Snippet019TestSuite.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.snippet019;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class Snippet019TestSuite extends TestSuite {
-	public static final Test suite() {
-		return new Snippet019TestSuite();
-	}
-
-	public Snippet019TestSuite() {
-		addTest(new TestSuite(Snippet019Tests.class));
-		addTest(new TestSuite(org.eclipse.xwt.tests.snippet019.set.Snippet019Tests.class));
-		addTest(new TestSuite(org.eclipse.xwt.tests.snippet019.array.Snippet019Tests.class));
-	}
-}
diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/Snippet019Tests.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/Snippet019Tests.java
deleted file mode 100644
index 4d25ae2..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/Snippet019Tests.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.snippet019;

-

-import java.net.URL;

-

-import org.eclipse.jface.viewers.TreeViewer;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class Snippet019Tests extends XWTTestCase {

-	

-	public void testTreeViewerWithListFactory_AddRoot() throws Exception {

-		URL url = Snippet019Tests.class.getResource(TreeViewerWithListFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, TreeViewerWithListFactory.createBean("Root"), new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TreeViewer");

-				assertTrue(element instanceof TreeViewer);

-				TreeViewer treeViewer = (TreeViewer) element;

-				Object dataContext = XWT.getDataContext(element);

-				assertTrue(dataContext instanceof Bean);

-				Object input = treeViewer.getInput();

-				assertTrue(input instanceof Bean);

-				assertEquals(input, dataContext);

-				

-				Button button = (Button) XWT.findElementByName(root, "addRootButton");

-				selectButton(button);

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TreeViewer");

-				assertTrue(viewer instanceof TreeViewer);

-				TreeViewer treeViewer = (TreeViewer) viewer;

-				Object input = treeViewer.getInput();

-				assertTrue(input instanceof Bean);

-				

-				Bean bean = (Bean) input;

-				

-				assertEquals(bean.getList().size(), 1);

-			}

-		});

-	}

-	

-	

-	public void testTreeViewerWithListFactory_AddChild1() throws Exception {

-		URL url = Snippet019Tests.class.getResource(TreeViewerWithListFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, TreeViewerWithListFactory.createBean("Root"), new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TreeViewer");

-				assertTrue(element instanceof TreeViewer);

-				TreeViewer treeViewer = (TreeViewer) element;

-				Object dataContext = XWT.getDataContext(element);

-				assertTrue(dataContext instanceof Bean);

-				Object input = treeViewer.getInput();

-				assertTrue(input instanceof Bean);

-				assertEquals(input, dataContext);

-				

-				Button addChildButton = (Button) XWT.findElementByName(root, "addChildButton");

-				assertTrue(!addChildButton.getEnabled());

-				

-				Button button = (Button) XWT.findElementByName(root, "addRootButton");

-				selectButton(button);

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Button addChildbutton = (Button) XWT.findElementByName(root, "addChildButton");

-				assertTrue(addChildbutton.getEnabled());

-			}

-		});

-	}

-

-	public void testTreeViewerWithListFactory_AddChild2() throws Exception {

-		URL url = Snippet019Tests.class.getResource(TreeViewerWithListFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, TreeViewerWithListFactory.createBean("Root"), new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TreeViewer");

-				assertTrue(element instanceof TreeViewer);

-				TreeViewer treeViewer = (TreeViewer) element;

-				Object dataContext = XWT.getDataContext(element);

-				assertTrue(dataContext instanceof Bean);

-				Object input = treeViewer.getInput();

-				assertTrue(input instanceof Bean);

-				assertEquals(input, dataContext);

-				

-				Button addChildButton = (Button) XWT.findElementByName(root, "addChildButton");

-				assertTrue(!addChildButton.getEnabled());

-				

-				Button button = (Button) XWT.findElementByName(root, "addRootButton");

-				selectButton(button);

-				

-				selectButton(addChildButton);

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TreeViewer");

-				assertTrue(viewer instanceof TreeViewer);

-				TreeViewer treeViewer = (TreeViewer) viewer;

-				Object input = treeViewer.getInput();

-				assertTrue(input instanceof Bean);

-				

-				Bean bean = (Bean) input;

-				

-				assertEquals(bean.getList().size(), 1);

-

-				Bean child = bean.getList().get(0);

-				

-				assertEquals(child.getList().size(), 1);

-			}

-		});

-	}

-

-	public void testTreeViewerWithListFactory_Remove() throws Exception {

-		URL url = Snippet019Tests.class.getResource(TreeViewerWithListFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, TreeViewerWithListFactory.createBean("Root"), new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TreeViewer");

-				assertTrue(element instanceof TreeViewer);

-				TreeViewer treeViewer = (TreeViewer) element;

-				Object dataContext = XWT.getDataContext(element);

-				assertTrue(dataContext instanceof Bean);

-				Object input = treeViewer.getInput();

-				assertTrue(input instanceof Bean);

-				assertEquals(input, dataContext);

-				

-				Button addChildButton = (Button) XWT.findElementByName(root, "addChildButton");

-				assertTrue(!addChildButton.getEnabled());

-				

-				Button button = (Button) XWT.findElementByName(root, "addRootButton");

-				selectButton(button);

-				

-				selectButton(addChildButton);

-				

-				Button removeButton = (Button) XWT.findElementByName(root, "removeButton");

-				selectButton(removeButton);

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TreeViewer");

-				assertTrue(viewer instanceof TreeViewer);

-				TreeViewer treeViewer = (TreeViewer) viewer;

-				Object input = treeViewer.getInput();

-				assertTrue(input instanceof Bean);

-				

-				Bean bean = (Bean) input;

-				

-				assertEquals(bean.getList().size(), 1);

-

-				Bean child = bean.getList().get(0);

-				

-				assertEquals(child.getList().size(), 0);

-				

-				Button removeButton = (Button) XWT.findElementByName(root, "addChildButton");

-				assertTrue(!removeButton.getEnabled());

-

-				Button addChildButton = (Button) XWT.findElementByName(root, "addChildButton");

-				assertTrue(!addChildButton.getEnabled());

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/TreeViewerWithListFactory.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/TreeViewerWithListFactory.java
deleted file mode 100644
index 625f346..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/TreeViewerWithListFactory.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2005, 2009 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *     Matthew Hall - bugs 260329, 260337

- *     Yves YANG - port to XWT

- *******************************************************************************/

-package org.eclipse.xwt.tests.snippet019;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.list.IObservableList;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.core.databinding.observable.value.WritableValue;

-import org.eclipse.jface.viewers.IStructuredSelection;

-import org.eclipse.jface.viewers.StructuredSelection;

-import org.eclipse.jface.viewers.TreeViewer;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.swt.widgets.TreeItem;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class TreeViewerWithListFactory {

-	private IObservableValue clipboard = new WritableValue(XWT.getRealm());

-	

-	/**

-	 * Launch the application

-	 * 

-	 * @param args

-	 */

-	public static void main(String[] args) {

-		URL url = TreeViewerWithListFactory.class.getResource(TreeViewerWithListFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url, new Bean("input"));

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-	

-	public void addRoot(Object sender, Event e) {		

-		Bean bean = (Bean) XWT.getDataContext(e.widget);

-		IObservableList observableList = XWT.findObservableList(e.widget, bean, "list");

-		Bean root = createBean("root");

-		observableList.add(root);

-	

-		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");

-		beanViewer.setSelection(new StructuredSelection(root));

-		

-		Text beanText = (Text) XWT.findElementByName(e.widget, "nameText");

-		beanText.selectAll();

-		beanText.setFocus();

-	}

-	

-	public static Bean createBean(String name) {

-		return new Bean(name);

-	}

-	

-	public void addChild(Object sender, Event e) {

-		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");

-		IStructuredSelection structuredSelection = (IStructuredSelection) beanViewer.getSelection();

-		Bean bean = (Bean) structuredSelection.getFirstElement();

-		IObservableList observableList = XWT.findObservableList(e.widget, bean, "list");

-		Bean root = createBean("root");

-		observableList.add(root);

-		

-		beanViewer.setSelection(new StructuredSelection(root));

-		

-		Text beanText = (Text) XWT.findElementByName(e.widget, "nameText");

-		beanText.selectAll();

-		beanText.setFocus();

-	}

-

-	public void remove(Object sender, Event e) {

-		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");

-		IStructuredSelection structuredSelection = (IStructuredSelection) beanViewer.getSelection();

-		Bean bean = (Bean) structuredSelection.getFirstElement();

-		

-		TreeItem selectedItem = beanViewer.getTree().getSelection()[0];

-		TreeItem parentItem = selectedItem.getParentItem();

-		Bean parent;

-		if (parentItem == null) {

-			parent = (Bean) beanViewer.getInput();

-		} else {

-			parent = (Bean) parentItem.getData();

-		}

-		IObservableList observableList = XWT.findObservableList(e.widget, parent, "list");

-		observableList.remove(bean);

-	}

-

-	public void copy(Object sender, Event e) {

-		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");

-		IStructuredSelection structuredSelection = (IStructuredSelection) beanViewer.getSelection();

-		Bean bean = (Bean) structuredSelection.getFirstElement();

-		clipboard.setValue(bean);

-	}

-

-	public void paste(Object sender, Event e) {

-		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");

-		IStructuredSelection structuredSelection = (IStructuredSelection) beanViewer.getSelection();

-		Bean bean = (Bean) structuredSelection.getFirstElement();

-		IObservableList observableList = XWT.findObservableList(e.widget, bean, "list");

-		Bean child = (Bean) clipboard.getValue();

-		observableList.add(child);

-		

-		beanViewer.setSelection(new StructuredSelection(child));

-		

-		Text beanText = (Text) XWT.findElementByName(e.widget, "nameText");

-		beanText.selectAll();

-		beanText.setFocus();

-	}

-

-	public void refresh(Object sender, Event e) {

-		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");

-		beanViewer.refresh();

-	}

-}

diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/TreeViewerWithListFactory.xwt b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/TreeViewerWithListFactory.xwt
deleted file mode 100644
index 66d699d..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/TreeViewerWithListFactory.xwt
+++ /dev/null
@@ -1,51 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.snippet019"

-    x:Class="org.eclipse.xwt.tests.snippet019.TreeViewerWithListFactory"

-    size="535, 397" title="XWT Application">

-	<Shell.layout>

-		<GridLayout numColumns="2"/>

-	</Shell.layout>

-	<Composite>

-		<Composite.layout>

-			<RowLayout marginTop="0" marginRight="0" marginLeft="0" marginBottom="0" pack="false"/>

-		</Composite.layout>

-		<Button name="addRootButton" text="Add Root" selectionEvent="addRoot" />

-		<Button name="addChildButton" enabled = "false" text="Add Child" selectionEvent="addChild" />

-		<Button name="removeButton" enabled = "false" text="Remove" selectionEvent="remove" />

-		<Button name="copyButton" enabled = "false" text="Copy" selectionEvent="copy" />

-		<Button name="pasteButton" enabled = "false" text="Paste" selectionEvent="paste" />

-		<Button text="Refresh" selectionEvent="refresh" />

-		<Composite.layoutData>

-			<GridData horizontalSpan="2"/>

-		</Composite.layoutData>

-	</Composite>

-	

-	<TreeViewer name="TreeViewer" x:Style="FULL_SELECTION|BORDER" sseHashlookup="true"

-		 input="{Binding}" bindingPath="text" >

-		<TreeViewer.contentProvider> 

-			<ObservableTreeContentProvider contentPath="list"/>

-		</TreeViewer.contentProvider> 

-		<TreeViewer.tree.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>

-		</TreeViewer.tree.layoutData>

-	</TreeViewer>

-

-	<Label text="Item Name:">

-	</Label>

-	<Text name="nameText" x:Style="BORDER"

-		text="{Binding ElementName=TreeViewer,path=singleSelection.(j:Bean.text)}" >

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Shell.triggers>

-		<Trigger sourceName="TreeViewer" property="singleSelection" operator="NE">

-			<Setter targetName="addChildButton" property="enabled" value="true"/>

-			<Setter targetName="copyButton" property="enabled" value="true"/>

-			<Setter targetName="removeButton" property="enabled" value="true"/>

-		</Trigger>

-	</Shell.triggers>	

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/array/Bean.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/array/Bean.java
deleted file mode 100644
index ff4824a..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/array/Bean.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-/**

- * 

- */

-package org.eclipse.xwt.tests.snippet019.array;

-

-import java.beans.PropertyChangeListener;

-import java.beans.PropertyChangeSupport;

-

-public class Bean {

-	/* package */PropertyChangeSupport changeSupport = new PropertyChangeSupport(

-			this);

-	

-	static Bean[] EMPTY = new Bean[0];

-	

-	private String text;

-	private Bean[] list;

-

-	public Bean(String text) {

-		this.text = text;

-	}

-

-	public void addPropertyChangeListener(PropertyChangeListener listener) {

-		changeSupport.addPropertyChangeListener(listener);

-	}

-

-	public void removePropertyChangeListener(PropertyChangeListener listener) {

-		changeSupport.removePropertyChangeListener(listener);

-	}

-

-	public String getText() {

-		return text;

-	}

-

-	public void setText(String value) {

-		changeSupport.firePropertyChange("text", this.text,

-				this.text = value);

-	}

-

-	public Bean[] getList() {

-		if (list == null)

-			return EMPTY;

-		return list;

-	}

-

-	public void setList(Bean[] list) {

-		if (list != null)

-			list = copy(list);

-		changeSupport.firePropertyChange("list", this.list,

-				this.list = list);

-	}

-	

-	protected Bean[] copy(Bean[] beans) {

-		Bean[] copy = new Bean[beans.length];

-		System.arraycopy(beans, 0, copy, 0, beans.length);

-		return copy;

-	}

-

-	public boolean hasListeners(String propertyName) {

-		return changeSupport.hasListeners(propertyName);

-	}

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/array/Snippet019Tests.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/array/Snippet019Tests.java
deleted file mode 100644
index 29b28c6..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/array/Snippet019Tests.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.snippet019.array;

-

-import java.net.URL;

-

-import org.eclipse.jface.viewers.TreeViewer;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class Snippet019Tests extends XWTTestCase {

-	

-	public void testTreeViewerWithListFactory_AddRoot() throws Exception {

-		URL url = Snippet019Tests.class.getResource(TreeViewerWithArrayFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, TreeViewerWithArrayFactory.createBean("Root"), new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TreeViewer");

-				assertTrue(element instanceof TreeViewer);

-				TreeViewer treeViewer = (TreeViewer) element;

-				Object dataContext = XWT.getDataContext(element);

-				assertTrue(dataContext instanceof Bean);

-				Object input = treeViewer.getInput();

-				assertTrue(input instanceof Bean);

-				assertEquals(input, dataContext);

-				

-				Button button = (Button) XWT.findElementByName(root, "addRootButton");

-				selectButton(button);

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TreeViewer");

-				assertTrue(viewer instanceof TreeViewer);

-				TreeViewer treeViewer = (TreeViewer) viewer;

-				Object input = treeViewer.getInput();

-				assertTrue(input instanceof Bean);

-				

-				Bean bean = (Bean) input;

-				

-				assertEquals(bean.getList().length, 1);

-			}

-		});

-	}

-	

-	

-	public void testTreeViewerWithListFactory_AddChild1() throws Exception {

-		URL url = Snippet019Tests.class.getResource(TreeViewerWithArrayFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, TreeViewerWithArrayFactory.createBean("Root"), new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TreeViewer");

-				assertTrue(element instanceof TreeViewer);

-				TreeViewer treeViewer = (TreeViewer) element;

-				Object dataContext = XWT.getDataContext(element);

-				assertTrue(dataContext instanceof Bean);

-				Object input = treeViewer.getInput();

-				assertTrue(input instanceof Bean);

-				assertEquals(input, dataContext);

-				

-				Button addChildButton = (Button) XWT.findElementByName(root, "addChildButton");

-				assertTrue(!addChildButton.getEnabled());

-				

-				Button button = (Button) XWT.findElementByName(root, "addRootButton");

-				selectButton(button);

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Button addChildbutton = (Button) XWT.findElementByName(root, "addChildButton");

-				assertTrue(addChildbutton.getEnabled());

-			}

-		});

-	}

-

-	public void testTreeViewerWithListFactory_AddChild2() throws Exception {

-		URL url = Snippet019Tests.class.getResource(TreeViewerWithArrayFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, TreeViewerWithArrayFactory.createBean("Root"), new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TreeViewer");

-				assertTrue(element instanceof TreeViewer);

-				TreeViewer treeViewer = (TreeViewer) element;

-				Object dataContext = XWT.getDataContext(element);

-				assertTrue(dataContext instanceof Bean);

-				Object input = treeViewer.getInput();

-				assertTrue(input instanceof Bean);

-				assertEquals(input, dataContext);

-				

-				Button addChildButton = (Button) XWT.findElementByName(root, "addChildButton");

-				assertTrue(!addChildButton.getEnabled());

-				

-				Button button = (Button) XWT.findElementByName(root, "addRootButton");

-				selectButton(button);

-				

-				selectButton(addChildButton);

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TreeViewer");

-				assertTrue(viewer instanceof TreeViewer);

-				TreeViewer treeViewer = (TreeViewer) viewer;

-				Object input = treeViewer.getInput();

-				assertTrue(input instanceof Bean);

-				

-				Bean bean = (Bean) input;

-				

-				assertEquals(bean.getList().length, 1);

-

-				Bean child = bean.getList()[0];

-				

-				assertEquals(child.getList().length, 1);

-			}

-		});

-	}

-

-	public void testTreeViewerWithListFactory_Remove() throws Exception {

-		URL url = Snippet019Tests.class.getResource(TreeViewerWithArrayFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, TreeViewerWithArrayFactory.createBean("Root"), new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TreeViewer");

-				assertTrue(element instanceof TreeViewer);

-				TreeViewer treeViewer = (TreeViewer) element;

-				Object dataContext = XWT.getDataContext(element);

-				assertTrue(dataContext instanceof Bean);

-				Object input = treeViewer.getInput();

-				assertTrue(input instanceof Bean);

-				assertEquals(input, dataContext);

-				

-				Button addChildButton = (Button) XWT.findElementByName(root, "addChildButton");

-				assertTrue(!addChildButton.getEnabled());

-				

-				Button button = (Button) XWT.findElementByName(root, "addRootButton");

-				selectButton(button);

-				

-				selectButton(addChildButton);

-				

-				Button removeButton = (Button) XWT.findElementByName(root, "removeButton");

-				selectButton(removeButton);

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TreeViewer");

-				assertTrue(viewer instanceof TreeViewer);

-				TreeViewer treeViewer = (TreeViewer) viewer;

-				Object input = treeViewer.getInput();

-				assertTrue(input instanceof Bean);

-				

-				Bean bean = (Bean) input;

-				

-				assertEquals(bean.getList().length, 1);

-

-				Bean child = bean.getList()[0];

-				

-				assertEquals(child.getList().length, 0);

-				

-				Button removeButton = (Button) XWT.findElementByName(root, "addChildButton");

-				assertTrue(!removeButton.getEnabled());

-

-				Button addChildButton = (Button) XWT.findElementByName(root, "addChildButton");

-				assertTrue(!addChildButton.getEnabled());

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/array/TreeViewerWithArrayFactory.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/array/TreeViewerWithArrayFactory.java
deleted file mode 100644
index e12c837..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/array/TreeViewerWithArrayFactory.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2005, 2009 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *     Matthew Hall - bugs 260329, 260337

- *     Yves YANG - port to XWT

- *******************************************************************************/

-package org.eclipse.xwt.tests.snippet019.array;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.list.IObservableList;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.core.databinding.observable.value.WritableValue;

-import org.eclipse.jface.viewers.IStructuredSelection;

-import org.eclipse.jface.viewers.StructuredSelection;

-import org.eclipse.jface.viewers.TreeViewer;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.swt.widgets.TreeItem;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class TreeViewerWithArrayFactory {

-	private IObservableValue clipboard = new WritableValue(XWT.getRealm());

-	

-	/**

-	 * Launch the application

-	 * 

-	 * @param args

-	 */

-	public static void main(String[] args) {

-		URL url = TreeViewerWithArrayFactory.class.getResource(TreeViewerWithArrayFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url, new Bean("input"));

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-	

-	public void addRoot(Object sender, Event e) {		

-		Bean bean = (Bean) XWT.getDataContext(e.widget);

-		IObservableList observableList = XWT.findObservableList(e.widget, bean, "list");

-		Bean root = createBean("root");

-		observableList.add(root);

-	

-		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");

-		beanViewer.setSelection(new StructuredSelection(root));

-		

-		Text beanText = (Text) XWT.findElementByName(e.widget, "nameText");

-		beanText.selectAll();

-		beanText.setFocus();

-	}

-	

-	public static Bean createBean(String name) {

-		return new Bean(name);

-	}

-	

-	public void addChild(Object sender, Event e) {

-		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");

-		IStructuredSelection structuredSelection = (IStructuredSelection) beanViewer.getSelection();

-		Bean bean = (Bean) structuredSelection.getFirstElement();

-		IObservableList observableList = XWT.findObservableList(e.widget, bean, "list");

-		Bean root = createBean("root");

-		observableList.add(root);

-		

-		beanViewer.setSelection(new StructuredSelection(root));

-		

-		Text beanText = (Text) XWT.findElementByName(e.widget, "nameText");

-		beanText.selectAll();

-		beanText.setFocus();

-	}

-

-	public void remove(Object sender, Event e) {

-		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");

-		IStructuredSelection structuredSelection = (IStructuredSelection) beanViewer.getSelection();

-		Bean bean = (Bean) structuredSelection.getFirstElement();

-		

-		TreeItem selectedItem = beanViewer.getTree().getSelection()[0];

-		TreeItem parentItem = selectedItem.getParentItem();

-		Bean parent;

-		if (parentItem == null) {

-			parent = (Bean) beanViewer.getInput();

-		} else {

-			parent = (Bean) parentItem.getData();

-		}

-		IObservableList observableList = XWT.findObservableList(e.widget, parent, "list");

-		observableList.remove(bean);

-	}

-

-	public void copy(Object sender, Event e) {

-		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");

-		IStructuredSelection structuredSelection = (IStructuredSelection) beanViewer.getSelection();

-		Bean bean = (Bean) structuredSelection.getFirstElement();

-		clipboard.setValue(bean);

-	}

-

-	public void paste(Object sender, Event e) {

-		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");

-		IStructuredSelection structuredSelection = (IStructuredSelection) beanViewer.getSelection();

-		Bean bean = (Bean) structuredSelection.getFirstElement();

-		IObservableList observableList = XWT.findObservableList(e.widget, bean, "list");

-		Bean child = (Bean) clipboard.getValue();

-		observableList.add(child);

-		

-		beanViewer.setSelection(new StructuredSelection(child));

-		

-		Text beanText = (Text) XWT.findElementByName(e.widget, "nameText");

-		beanText.selectAll();

-		beanText.setFocus();

-	}

-

-	public void refresh(Object sender, Event e) {

-		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");

-		beanViewer.refresh();

-	}

-}

diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/array/TreeViewerWithArrayFactory.xwt b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/array/TreeViewerWithArrayFactory.xwt
deleted file mode 100644
index a3c1c57..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/array/TreeViewerWithArrayFactory.xwt
+++ /dev/null
@@ -1,51 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.snippet019.array"

-    x:Class="org.eclipse.xwt.tests.snippet019.array.TreeViewerWithArrayFactory"

-    size="535, 397" title="XWT Application">

-	<Shell.layout>

-		<GridLayout numColumns="2"/>

-	</Shell.layout>

-	<Composite>

-		<Composite.layout>

-			<RowLayout marginTop="0" marginRight="0" marginLeft="0" marginBottom="0" pack="false"/>

-		</Composite.layout>

-		<Button name="addRootButton" text="Add Root" selectionEvent="addRoot" />

-		<Button name="addChildButton" enabled = "false" text="Add Child" selectionEvent="addChild" />

-		<Button name="removeButton" enabled = "false" text="Remove" selectionEvent="remove" />

-		<Button name="copyButton" enabled = "false" text="Copy" selectionEvent="copy" />

-		<Button name="pasteButton" enabled = "false" text="Paste" selectionEvent="paste" />

-		<Button text="Refresh" selectionEvent="refresh" />

-		<Composite.layoutData>

-			<GridData horizontalSpan="2"/>

-		</Composite.layoutData>

-	</Composite>

-	

-	<TreeViewer name="TreeViewer" x:Style="FULL_SELECTION|BORDER" sseHashlookup="true"

-		 input="{Binding}" bindingPath="text" >

-		<TreeViewer.contentProvider> 

-			<ObservableTreeContentProvider contentPath="list"/>

-		</TreeViewer.contentProvider> 

-		<TreeViewer.tree.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>

-		</TreeViewer.tree.layoutData>

-	</TreeViewer>

-

-	<Label text="Item Name:">

-	</Label>

-	<Text name="nameText" x:Style="BORDER"

-		text="{Binding ElementName=TreeViewer,path=singleSelection.(j:Bean.text)}" >

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Shell.triggers>

-		<Trigger sourceName="TreeViewer" property="singleSelection" operator="NE">

-			<Setter targetName="addChildButton" property="enabled" value="true"/>

-			<Setter targetName="copyButton" property="enabled" value="true"/>

-			<Setter targetName="removeButton" property="enabled" value="true"/>

-		</Trigger>

-	</Shell.triggers>	

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/set/Bean.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/set/Bean.java
deleted file mode 100644
index 04d40e4..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/set/Bean.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-/**

- * 

- */

-package org.eclipse.xwt.tests.snippet019.set;

-

-import java.beans.PropertyChangeListener;

-import java.beans.PropertyChangeSupport;

-import java.util.HashSet;

-import java.util.Set;

-

-public class Bean {

-	/* package */PropertyChangeSupport changeSupport = new PropertyChangeSupport(

-			this);

-	private String text;

-	private Set<Bean> list;

-

-	public Bean(String text) {

-		this.text = text;

-		list = new HashSet<Bean>();

-	}

-

-	public void addPropertyChangeListener(PropertyChangeListener listener) {

-		changeSupport.addPropertyChangeListener(listener);

-	}

-

-	public void removePropertyChangeListener(PropertyChangeListener listener) {

-		changeSupport.removePropertyChangeListener(listener);

-	}

-

-	public String getText() {

-		return text;

-	}

-

-	public void setText(String value) {

-		changeSupport.firePropertyChange("text", this.text,

-				this.text = value);

-	}

-

-	public Set<Bean> getList() {

-		if (list == null)

-			return null;

-		return new HashSet<Bean>(list);

-	}

-

-	public void setList(Set<Bean> list) {

-		if (list != null)

-			list = new HashSet<Bean>(list);

-		changeSupport.firePropertyChange("list", this.list,

-				this.list = list);

-	}

-

-	public boolean hasListeners(String propertyName) {

-		return changeSupport.hasListeners(propertyName);

-	}

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/set/Snippet019Tests.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/set/Snippet019Tests.java
deleted file mode 100644
index b30c8aa..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/set/Snippet019Tests.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.snippet019.set;

-

-import java.net.URL;

-

-import org.eclipse.jface.viewers.TreeViewer;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class Snippet019Tests extends XWTTestCase {

-	

-	public void testTreeViewerWithListFactory_AddRoot() throws Exception {

-		URL url = Snippet019Tests.class.getResource(TreeViewerWithSetFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, TreeViewerWithSetFactory.createBean("Root"), new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TreeViewer");

-				assertTrue(element instanceof TreeViewer);

-				TreeViewer treeViewer = (TreeViewer) element;

-				Object dataContext = XWT.getDataContext(element);

-				assertTrue(dataContext instanceof Bean);

-				Object input = treeViewer.getInput();

-				assertTrue(input instanceof Bean);

-				assertEquals(input, dataContext);

-				

-				Button button = (Button) XWT.findElementByName(root, "addRootButton");

-				selectButton(button);

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TreeViewer");

-				assertTrue(viewer instanceof TreeViewer);

-				TreeViewer treeViewer = (TreeViewer) viewer;

-				Object input = treeViewer.getInput();

-				assertTrue(input instanceof Bean);

-				

-				Bean bean = (Bean) input;

-				

-				assertEquals(bean.getList().size(), 1);

-			}

-		});

-	}

-	

-	

-	public void testTreeViewerWithListFactory_AddChild1() throws Exception {

-		URL url = Snippet019Tests.class.getResource(TreeViewerWithSetFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, TreeViewerWithSetFactory.createBean("Root"), new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TreeViewer");

-				assertTrue(element instanceof TreeViewer);

-				TreeViewer treeViewer = (TreeViewer) element;

-				Object dataContext = XWT.getDataContext(element);

-				assertTrue(dataContext instanceof Bean);

-				Object input = treeViewer.getInput();

-				assertTrue(input instanceof Bean);

-				assertEquals(input, dataContext);

-				

-				Button addChildButton = (Button) XWT.findElementByName(root, "addChildButton");

-				assertTrue(!addChildButton.getEnabled());

-				

-				Button button = (Button) XWT.findElementByName(root, "addRootButton");

-				selectButton(button);

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Button addChildbutton = (Button) XWT.findElementByName(root, "addChildButton");

-				assertTrue(addChildbutton.getEnabled());

-			}

-		});

-	}

-

-	public void testTreeViewerWithListFactory_AddChild2() throws Exception {

-		URL url = Snippet019Tests.class.getResource(TreeViewerWithSetFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, TreeViewerWithSetFactory.createBean("Root"), new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TreeViewer");

-				assertTrue(element instanceof TreeViewer);

-				TreeViewer treeViewer = (TreeViewer) element;

-				Object dataContext = XWT.getDataContext(element);

-				assertTrue(dataContext instanceof Bean);

-				Object input = treeViewer.getInput();

-				assertTrue(input instanceof Bean);

-				assertEquals(input, dataContext);

-				

-				Button addChildButton = (Button) XWT.findElementByName(root, "addChildButton");

-				assertTrue(!addChildButton.getEnabled());

-				

-				Button button = (Button) XWT.findElementByName(root, "addRootButton");

-				selectButton(button);

-				

-				selectButton(addChildButton);

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TreeViewer");

-				assertTrue(viewer instanceof TreeViewer);

-				TreeViewer treeViewer = (TreeViewer) viewer;

-				Object input = treeViewer.getInput();

-				assertTrue(input instanceof Bean);

-				

-				Bean bean = (Bean) input;

-				

-				assertEquals(bean.getList().size(), 1);

-

-				Bean child = bean.getList().iterator().next();

-				

-				assertEquals(child.getList().size(), 1);

-			}

-		});

-	}

-

-	public void testTreeViewerWithListFactory_Remove() throws Exception {

-		URL url = Snippet019Tests.class.getResource(TreeViewerWithSetFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, TreeViewerWithSetFactory.createBean("Root"), new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TreeViewer");

-				assertTrue(element instanceof TreeViewer);

-				TreeViewer treeViewer = (TreeViewer) element;

-				Object dataContext = XWT.getDataContext(element);

-				assertTrue(dataContext instanceof Bean);

-				Object input = treeViewer.getInput();

-				assertTrue(input instanceof Bean);

-				assertEquals(input, dataContext);

-				

-				Button addChildButton = (Button) XWT.findElementByName(root, "addChildButton");

-				assertTrue(!addChildButton.getEnabled());

-				

-				Button button = (Button) XWT.findElementByName(root, "addRootButton");

-				selectButton(button);

-				

-				selectButton(addChildButton);

-				

-				Button removeButton = (Button) XWT.findElementByName(root, "removeButton");

-				selectButton(removeButton);

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Object viewer = XWT.findElementByName(root, "TreeViewer");

-				assertTrue(viewer instanceof TreeViewer);

-				TreeViewer treeViewer = (TreeViewer) viewer;

-				Object input = treeViewer.getInput();

-				assertTrue(input instanceof Bean);

-				

-				Bean bean = (Bean) input;

-				

-				assertEquals(bean.getList().size(), 1);

-

-				Bean child = bean.getList().iterator().next();

-				

-				assertEquals(child.getList().size(), 0);

-				

-				Button removeButton = (Button) XWT.findElementByName(root, "addChildButton");

-				assertTrue(!removeButton.getEnabled());

-

-				Button addChildButton = (Button) XWT.findElementByName(root, "addChildButton");

-				assertTrue(!addChildButton.getEnabled());

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/set/TreeViewerWithSetFactory.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/set/TreeViewerWithSetFactory.java
deleted file mode 100644
index 5cc34ea..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/set/TreeViewerWithSetFactory.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2005, 2009 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *     Matthew Hall - bugs 260329, 260337

- *     Yves YANG - port to XWT

- *******************************************************************************/

-package org.eclipse.xwt.tests.snippet019.set;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.set.IObservableSet;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.core.databinding.observable.value.WritableValue;

-import org.eclipse.jface.viewers.IStructuredSelection;

-import org.eclipse.jface.viewers.StructuredSelection;

-import org.eclipse.jface.viewers.TreeViewer;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.swt.widgets.TreeItem;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class TreeViewerWithSetFactory {

-	private IObservableValue clipboard = new WritableValue(XWT.getRealm());

-	

-	/**

-	 * Launch the application

-	 * 

-	 * @param args

-	 */

-	public static void main(String[] args) {

-		URL url = TreeViewerWithSetFactory.class.getResource(TreeViewerWithSetFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url, new Bean("input"));

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-	

-	public void addRoot(Object sender, Event e) {		

-		Bean bean = (Bean) XWT.getDataContext(e.widget);

-		IObservableSet observableList = XWT.findObservableSet(e.widget, bean, "list");

-		Bean root = createBean("root");

-		observableList.add(root);

-	

-		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");

-		beanViewer.setSelection(new StructuredSelection(root));

-		

-		Text beanText = (Text) XWT.findElementByName(e.widget, "nameText");

-		beanText.selectAll();

-		beanText.setFocus();

-	}

-	

-	public static Bean createBean(String name) {

-		return new Bean(name);

-	}

-	

-	public void addChild(Object sender, Event e) {

-		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");

-		IStructuredSelection structuredSelection = (IStructuredSelection) beanViewer.getSelection();

-		Bean bean = (Bean) structuredSelection.getFirstElement();

-		IObservableSet observableList = XWT.findObservableSet(e.widget, bean, "list");

-		Bean root = createBean("root");

-		observableList.add(root);

-		

-		beanViewer.setSelection(new StructuredSelection(root));

-		

-		Text beanText = (Text) XWT.findElementByName(e.widget, "nameText");

-		beanText.selectAll();

-		beanText.setFocus();

-	}

-

-	public void remove(Object sender, Event e) {

-		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");

-		IStructuredSelection structuredSelection = (IStructuredSelection) beanViewer.getSelection();

-		Bean bean = (Bean) structuredSelection.getFirstElement();

-		

-		TreeItem selectedItem = beanViewer.getTree().getSelection()[0];

-		TreeItem parentItem = selectedItem.getParentItem();

-		Bean parent;

-		if (parentItem == null) {

-			parent = (Bean) beanViewer.getInput();

-		} else {

-			parent = (Bean) parentItem.getData();

-		}

-		IObservableSet observableList = XWT.findObservableSet(e.widget, parent, "list");

-		observableList.remove(bean);

-	}

-

-	public void copy(Object sender, Event e) {

-		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");

-		IStructuredSelection structuredSelection = (IStructuredSelection) beanViewer.getSelection();

-		Bean bean = (Bean) structuredSelection.getFirstElement();

-		clipboard.setValue(bean);

-	}

-

-	public void paste(Object sender, Event e) {

-		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");

-		IStructuredSelection structuredSelection = (IStructuredSelection) beanViewer.getSelection();

-		Bean bean = (Bean) structuredSelection.getFirstElement();

-		IObservableSet observableList = XWT.findObservableSet(e.widget, bean, "list");

-		Bean child = (Bean) clipboard.getValue();

-		observableList.add(child);

-		

-		beanViewer.setSelection(new StructuredSelection(child));

-		

-		Text beanText = (Text) XWT.findElementByName(e.widget, "nameText");

-		beanText.selectAll();

-		beanText.setFocus();

-	}

-

-	public void refresh(Object sender, Event e) {

-		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");

-		beanViewer.refresh();

-	}

-}

diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/set/TreeViewerWithSetFactory.xwt b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/set/TreeViewerWithSetFactory.xwt
deleted file mode 100644
index 80c876f..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/set/TreeViewerWithSetFactory.xwt
+++ /dev/null
@@ -1,51 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.snippet019.set"

-    x:Class="org.eclipse.xwt.tests.snippet019.set.TreeViewerWithSetFactory"

-    size="535, 397" title="XWT Application">

-	<Shell.layout>

-		<GridLayout numColumns="2"/>

-	</Shell.layout>

-	<Composite>

-		<Composite.layout>

-			<RowLayout marginTop="0" marginRight="0" marginLeft="0" marginBottom="0" pack="false"/>

-		</Composite.layout>

-		<Button name="addRootButton" text="Add Root" selectionEvent="addRoot" />

-		<Button name="addChildButton" enabled = "false" text="Add Child" selectionEvent="addChild" />

-		<Button name="removeButton" enabled = "false" text="Remove" selectionEvent="remove" />

-		<Button name="copyButton" enabled = "false" text="Copy" selectionEvent="copy" />

-		<Button name="pasteButton" enabled = "false" text="Paste" selectionEvent="paste" />

-		<Button text="Refresh" selectionEvent="refresh" />

-		<Composite.layoutData>

-			<GridData horizontalSpan="2"/>

-		</Composite.layoutData>

-	</Composite>

-	

-	<TreeViewer name="TreeViewer" x:Style="FULL_SELECTION|BORDER" sseHashlookup="true"

-		 input="{Binding}" bindingPath="text" >

-		<TreeViewer.contentProvider> 

-			<ObservableTreeContentProvider contentPath="list"/>

-		</TreeViewer.contentProvider> 

-		<TreeViewer.tree.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>

-		</TreeViewer.tree.layoutData>

-	</TreeViewer>

-

-	<Label text="Item Name:">

-	</Label>

-	<Text name="nameText" x:Style="BORDER"

-		text="{Binding ElementName=TreeViewer,path=singleSelection.(j:Bean.text)}" >

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Shell.triggers>

-		<Trigger sourceName="TreeViewer" property="singleSelection" operator="NE">

-			<Setter targetName="addChildButton" property="enabled" value="true"/>

-			<Setter targetName="copyButton" property="enabled" value="true"/>

-			<Setter targetName="removeButton" property="enabled" value="true"/>

-		</Trigger>

-	</Shell.triggers>	

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet025/TableViewerWithDerivedColumns.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet025/TableViewerWithDerivedColumns.java
deleted file mode 100644
index 3d3d019..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet025/TableViewerWithDerivedColumns.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 The Pampered Chef, Inc. and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Coconut Palm Software, Inc. - Initial API and implementation

- *     Matthew Hall - bugs 260329, 260337

- *     Yves YANG - port to XWT

- ******************************************************************************/

-

-package org.eclipse.xwt.tests.snippet025;

-

-import java.net.URL;

-import java.util.ArrayList;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * Demonstrates binding a TableViewer to a collection.

- */

-public class TableViewerWithDerivedColumns {

-	public static void main(String[] args) {

-		ViewModel viewModel = new ViewModel();

-		URL url = TableViewerWithDerivedColumns.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url, viewModel);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-	

-	private static Person UNKNOWN = new Person("unknown", null, null);

-

-	// The data model class. This is normally a persistent class of some sort.

-	public static class Person {

-		// A property...

-		String name = "Donald Duck";

-		Person mother;

-		Person father;

-

-		public Person(String name, Person mother, Person father) {

-			this.name = name;

-			this.mother = mother;

-			this.father = father;

-		}

-

-		public String getName() {

-			return name;

-		}

-

-		public void setName(String name) {

-			this.name = name;

-		}

-

-		public Person getMother() {

-			return mother;

-		}

-

-		public void setMother(Person mother) {

-			this.mother = mother;

-		}

-

-		public Person getFather() {

-			return father;

-		}

-

-		public void setFather(Person father) {

-			this.father = father;

-		}

-

-		public String toString() {

-			return name;

-		}

-	}

-

-	// The View's model--the root of our Model graph for this particular GUI.

-	//

-	// Typically each View class has a corresponding ViewModel class.

-	// The ViewModel is responsible for getting the objects to edit from the

-	// data access tier. Since this snippet doesn't have any persistent objects

-	// ro retrieve, this ViewModel just instantiates a model object to edit.

-	public static class ViewModel {

-		// The model to bind

-		private ArrayList<Person> people = new ArrayList<Person>();

-		{

-			Person fergus = new Person("Fergus McDuck", UNKNOWN, UNKNOWN);

-			Person downy = new Person("Downy O'Drake", UNKNOWN, UNKNOWN);

-			Person scrooge = new Person("Scrooge McDuck", downy, fergus);

-			Person hortense = new Person("Hortense McDuck", downy, fergus);

-			Person quackmore = new Person("Quackmore Duck", UNKNOWN, UNKNOWN);

-			Person della = new Person("Della Duck", hortense, quackmore);

-			Person donald = new Person("Donald Duck", hortense, quackmore);

-			people.add(UNKNOWN);

-			people.add(downy);

-			people.add(fergus);

-			people.add(scrooge);

-			people.add(quackmore);

-			people.add(hortense);

-			people.add(della);

-			people.add(donald);

-		}

-

-		public ArrayList<Person> getPeople() {

-			return people;

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet025/TableViewerWithDerivedColumns.xwt b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet025/TableViewerWithDerivedColumns.xwt
deleted file mode 100644
index 582e54a..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet025/TableViewerWithDerivedColumns.xwt
+++ /dev/null
@@ -1,77 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.snippet025"

-    size="500, 300">

-	<Shell.layout>

-		<GridLayout numColumns="2"/>

-	</Shell.layout>

-	<TableViewer name="TableViewer" x:Style="FULL_SELECTION" input="{Binding Path=people}">

-		<TableViewer.columns headerVisible="true">

-			<TableViewerColumn width="100" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="100" text="Mother" bindingPath="mother.name"/>

-			<TableViewerColumn width="100" text="Father" bindingPath="father.name"/>

-			<TableViewerColumn width="100" text="Maternal Grandmother" bindingPath="mother.mother.name"/>

-			<TableViewerColumn width="100" text="Maternal Grandfather" bindingPath="mother.father.name"/>

-			<TableViewerColumn width="100" text="Paternal Grandmother" bindingPath="father.mother.name"/>

-			<TableViewerColumn width="100" text="Paternal Grandfather" bindingPath="father.father.name"/>

-		</TableViewer.columns>

-		<TableViewer.table headerVisible="true"/>

-	    <TableViewer.filters>

-			<ViewerFilter>

-				<ViewerFilter.conditions>

-					<Condition property="name" value="unknown" operator="NE"/>

-				</ViewerFilter.conditions>

-			</ViewerFilter>

-		</TableViewer.filters>		

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-

-	<Label text="Name:">

-	</Label>

-	<Text x:Style="BORDER"

-		text="{Binding ElementName=TableViewer,path=singleSelection.(j:TableViewerWithDerivedColumns$Person.name)}" >

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-

-	<Label text="Name:">

-	</Label>

-	<Text x:Style="BORDER"

-		text="{Binding ElementName=TableViewer,path=singleSelection.(j:TableViewerWithDerivedColumns.Person.name)}" >

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-

-	<Label text="Name:">

-	</Label>

-	<Text x:Style="BORDER" dataContext="{Binding ElementName=TableViewer,path=singleSelection}"

-		text="{Binding path=(j:TableViewerWithDerivedColumns.Person.name),UpdateSourceTrigger=PropertyChanged}" >

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-

-	<Label text="Mother:">

-	</Label>

-	<ComboViewer x:Style="READ_ONLY"

-		input="{Binding path=people}"

-		singleSelection="{Binding ElementName=TableViewer,path=singleSelection.(j:TableViewerWithDerivedColumns.Person.mother)}" 

-		bindingPath="name">

-	</ComboViewer>

-

-	<Label text="Father:">

-	</Label>

-	<ComboViewer x:Style="READ_ONLY"

-		input="{Binding path=people}"

-		singleSelection="{Binding ElementName=TableViewer,path=singleSelection.(j:TableViewerWithDerivedColumns.Person.father)}" 

-		bindingPath="name">

-	</ComboViewer>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet004DataBindingContextErrorLabel.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet004DataBindingContextErrorLabel.java
deleted file mode 100644
index 5d650e2..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet004DataBindingContextErrorLabel.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Brad Reynolds and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Brad Reynolds - initial API and implementation

- *     Brad Reynolds - bug 116920, 159768

- *     Matthew Hall - bug 260329

- ******************************************************************************/

-

-package org.eclipse.xwt.tests.snipppets;

-

-import org.eclipse.core.databinding.AggregateValidationStatus;

-import org.eclipse.core.databinding.DataBindingContext;

-import org.eclipse.core.databinding.UpdateValueStrategy;

-import org.eclipse.core.databinding.observable.Realm;

-import org.eclipse.core.databinding.observable.value.WritableValue;

-import org.eclipse.core.databinding.validation.IValidator;

-import org.eclipse.core.databinding.validation.ValidationStatus;

-import org.eclipse.core.runtime.IStatus;

-import org.eclipse.core.runtime.Status;

-import org.eclipse.jface.databinding.swt.SWTObservables;

-import org.eclipse.jface.layout.GridDataFactory;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.layout.GridLayout;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.swt.widgets.Text;

-

-/**

- * Snippet that displays how to bind the validation error of the

- * {@link DataBindingContext} to a label. http://www.eclipse.org

- * 

- * @since 3.2

- */

-public class Snippet004DataBindingContextErrorLabel {

-	public static void main(String[] args) {

-		final Display display = new Display();

-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {

-			public void run() {

-				Shell shell = new Shell(display);

-				shell.setText("Data Binding Snippet 004");

-				shell.setLayout(new GridLayout(2, false));

-

-				new Label(shell, SWT.NONE).setText("Enter '5' to be valid:");

-

-				Text text = new Text(shell, SWT.BORDER);

-				WritableValue value = WritableValue.withValueType(String.class);

-				new Label(shell, SWT.NONE).setText("Error:");

-

-				Label errorLabel = new Label(shell, SWT.BORDER);

-				errorLabel.setForeground(display.getSystemColor(SWT.COLOR_RED));

-				GridDataFactory.swtDefaults().hint(200, SWT.DEFAULT).applyTo(

-						errorLabel);

-

-				DataBindingContext dbc = new DataBindingContext();

-

-				// Bind the text to the value.

-				dbc.bindValue(

-						SWTObservables.observeText(text, SWT.Modify),

-						value,

-						new UpdateValueStrategy().setAfterConvertValidator(new FiveValidator()),

-						null);

-

-				// Bind the error label to the validation error on the dbc.

-				dbc.bindValue(SWTObservables.observeText(errorLabel),

-						new AggregateValidationStatus(dbc.getBindings(),

-								AggregateValidationStatus.MAX_SEVERITY));

-

-				shell.pack();

-				shell.open();

-				while (!shell.isDisposed()) {

-					if (!display.readAndDispatch())

-						display.sleep();

-				}

-			}

-		});

-		display.dispose();

-	}

-

-	/**

-	 * Validator that returns validation errors for any value other than 5.

-	 * 

-	 * @since 3.2

-	 */

-	private static class FiveValidator implements IValidator {

-		public IStatus validate(Object value) {

-			return ("5".equals(value)) ? Status.OK_STATUS : ValidationStatus

-					.error("the value was '" + value + "', not '5'");

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet007ColorLabelProvider.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet007ColorLabelProvider.java
deleted file mode 100644
index 7d3891d..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet007ColorLabelProvider.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Brad Reynolds and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Brad Reynolds - initial API and implementation

- *     IBM Corporation - see bug 137934

- ******************************************************************************/

-

-package org.eclipse.xwt.tests.snipppets;

-

-import java.beans.PropertyChangeListener;

-import java.beans.PropertyChangeSupport;

-import java.util.ArrayList;

-import java.util.List;

-

-import org.eclipse.core.databinding.beans.BeansObservables;

-import org.eclipse.core.databinding.observable.Observables;

-import org.eclipse.core.databinding.observable.Realm;

-import org.eclipse.core.databinding.observable.list.IObservableList;

-import org.eclipse.core.databinding.observable.map.IObservableMap;

-import org.eclipse.jface.databinding.swt.SWTObservables;

-import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;

-import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider;

-import org.eclipse.jface.viewers.ILabelProvider;

-import org.eclipse.jface.viewers.ITableColorProvider;

-import org.eclipse.jface.viewers.StructuredSelection;

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.events.SelectionAdapter;

-import org.eclipse.swt.events.SelectionEvent;

-import org.eclipse.swt.graphics.Color;

-import org.eclipse.swt.layout.GridData;

-import org.eclipse.swt.layout.GridLayout;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.swt.widgets.Table;

-import org.eclipse.swt.widgets.TableColumn;

-

-/**

- * An example showing how to create a {@link ILabelProvider label provider} that

- * to provide colors.

- * 

- * @since 3.2

- */

-public class Snippet007ColorLabelProvider {

-	/**

-	 * @param args

-	 */

-	public static void main(String[] args) {

-		final List persons = new ArrayList();

-		persons.add(new Person("Fiona Apple", Person.FEMALE));

-		persons.add(new Person("Elliot Smith", Person.MALE));

-		persons.add(new Person("Diana Krall", Person.FEMALE));

-		persons.add(new Person("David Gilmour", Person.MALE));

-

-		final Display display = new Display();

-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {

-			public void run() {

-				Shell shell = new Shell(display);

-				shell.setText("Gender Bender");

-				shell.setLayout(new GridLayout());

-

-				Table table = new Table(shell, SWT.SINGLE | SWT.H_SCROLL

-						| SWT.V_SCROLL | SWT.BORDER);

-				GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);

-				table.setLayoutData(gridData);

-				table.setHeaderVisible(true);

-				table.setLinesVisible(true);

-				TableColumn column = new TableColumn(table, SWT.NONE);

-				column.setText("No");

-				column.setWidth(20);

-				column = new TableColumn(table, SWT.NONE);

-				column.setText("Name");

-				column.setWidth(100);

-				final TableViewer viewer = new TableViewer(table);

-

-				IObservableList observableList = Observables

-						.staticObservableList(persons);

-				ObservableListContentProvider contentProvider = new ObservableListContentProvider();

-

-				viewer.setContentProvider(contentProvider);

-

-				// this does not have to correspond to the columns in the table,

-				// we just list all attributes that affect the table content.

-				IObservableMap[] attributes = BeansObservables.observeMaps(

-						contentProvider.getKnownElements(), Person.class,

-						new String[] { "name", "gender" });

-

-				class ColorLabelProvider extends ObservableMapLabelProvider

-						implements ITableColorProvider {

-					Color male = display.getSystemColor(SWT.COLOR_BLUE);

-

-					Color female = new Color(display, 255, 192, 203);

-

-					ColorLabelProvider(IObservableMap[] attributes) {

-						super(attributes);

-					}

-

-					// to drive home the point that attributes does not have to

-					// match

-					// the columns

-					// in the table, we change the column text as follows:

-					public String getColumnText(Object element, int index) {

-						if (index == 0) {

-							return Integer

-									.toString(persons.indexOf(element) + 1);

-						}

-						return ((Person) element).getName();

-					}

-

-					public Color getBackground(Object element, int index) {

-						return null;

-					}

-

-					public Color getForeground(Object element, int index) {

-						if (index == 0)

-							return null;

-						Person person = (Person) element;

-						return (person.getGender() == Person.MALE) ? male

-								: female;

-					}

-

-					public void dispose() {

-						super.dispose();

-						female.dispose();

-					}

-				}

-				viewer.setLabelProvider(new ColorLabelProvider(attributes));

-

-				viewer.setInput(observableList);

-

-				table.getColumn(0).pack();

-

-				Button button = new Button(shell, SWT.PUSH);

-				button.setText("Toggle Gender");

-				button.addSelectionListener(new SelectionAdapter() {

-					public void widgetSelected(SelectionEvent arg0) {

-						StructuredSelection selection = (StructuredSelection) viewer

-								.getSelection();

-						if (selection != null && !selection.isEmpty()) {

-							Person person = (Person) selection

-									.getFirstElement();

-							person

-									.setGender((person.getGender() == Person.MALE) ? Person.FEMALE

-											: Person.MALE);

-						}

-					}

-				});

-

-				shell.setSize(300, 400);

-				shell.open();

-

-				while (!shell.isDisposed()) {

-					if (!display.readAndDispatch())

-						display.sleep();

-				}

-			}

-		});

-		display.dispose();

-	}

-

-	static class Person {

-		static final int MALE = 0;

-

-		static final int FEMALE = 1;

-

-		private String name;

-

-		private int gender;

-

-		private PropertyChangeSupport changeSupport = new PropertyChangeSupport(

-				this);

-

-		Person(String name, int gender) {

-			this.name = name;

-			this.gender = gender;

-		}

-

-		/**

-		 * Returns the name. Method declared public to satisfy Java bean

-		 * conventions

-		 * 

-		 * @return the name

-		 */

-		public String getName() {

-			return name;

-		}

-

-		/**

-		 * @param listener

-		 */

-		public void addPropertyChangeListener(PropertyChangeListener listener) {

-			changeSupport.addPropertyChangeListener(listener);

-		}

-

-		public void removePropertyChangeListener(PropertyChangeListener listener) {

-			changeSupport.removePropertyChangeListener(listener);

-		}

-

-		/**

-		 * Returns the gender. Method declared public to satisfy Java bean

-		 * conventions

-		 * 

-		 * @return the gender

-		 */

-		public int getGender() {

-			return gender;

-		}

-

-		void setGender(int gender) {

-			changeSupport.firePropertyChange("gender", this.gender,

-					this.gender = gender);

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet013TableViewerEditing.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet013TableViewerEditing.java
deleted file mode 100644
index 7a8c809..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet013TableViewerEditing.java
+++ /dev/null
@@ -1,236 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 The Pampered Chef, Inc. and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     The Pampered Chef, Inc. - initial API and implementation

- *     Tom Schindl - cell editing

- *     Matthew Hall - bugs 260329, 260337

- ******************************************************************************/

-

-package org.eclipse.xwt.tests.snipppets;

-

-import java.beans.PropertyChangeListener;

-import java.beans.PropertyChangeSupport;

-import java.util.LinkedList;

-import java.util.List;

-

-import org.eclipse.core.databinding.DataBindingContext;

-import org.eclipse.core.databinding.beans.BeanProperties;

-import org.eclipse.core.databinding.beans.BeansObservables;

-import org.eclipse.core.databinding.observable.Realm;

-import org.eclipse.core.databinding.observable.list.WritableList;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.jface.databinding.swt.SWTObservables;

-import org.eclipse.jface.databinding.viewers.ObservableValueEditingSupport;

-import org.eclipse.jface.databinding.viewers.ViewerSupport;

-import org.eclipse.jface.databinding.viewers.ViewersObservables;

-import org.eclipse.jface.viewers.CellEditor;

-import org.eclipse.jface.viewers.ColumnViewer;

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.jface.viewers.TableViewerColumn;

-import org.eclipse.jface.viewers.TextCellEditor;

-import org.eclipse.jface.viewers.ViewerCell;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.layout.FillLayout;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.swt.widgets.Table;

-

-/**

- * Demonstrates binding a TableViewer to a collection using the 3.3 Viewer APIs.

- */

-public class Snippet013TableViewerEditing {

-	public static void main(String[] args) {

-		final Display display = new Display();

-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {

-			public void run() {

-				ViewModel viewModel = new ViewModel();

-				Shell shell = new View(viewModel).createShell();

-

-				// The SWT event loop

-				while (!shell.isDisposed()) {

-					if (!display.readAndDispatch()) {

-						display.sleep();

-					}

-				}

-			}

-		});

-	}

-

-	// Minimal JavaBeans support

-	public static abstract class AbstractModelObject {

-		private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(

-				this);

-

-		public void addPropertyChangeListener(PropertyChangeListener listener) {

-			propertyChangeSupport.addPropertyChangeListener(listener);

-		}

-

-		public void addPropertyChangeListener(String propertyName,

-				PropertyChangeListener listener) {

-			propertyChangeSupport.addPropertyChangeListener(propertyName,

-					listener);

-		}

-

-		public void removePropertyChangeListener(PropertyChangeListener listener) {

-			propertyChangeSupport.removePropertyChangeListener(listener);

-		}

-

-		public void removePropertyChangeListener(String propertyName,

-				PropertyChangeListener listener) {

-			propertyChangeSupport.removePropertyChangeListener(propertyName,

-					listener);

-		}

-

-		protected void firePropertyChange(String propertyName, Object oldValue,

-				Object newValue) {

-			propertyChangeSupport.firePropertyChange(propertyName, oldValue,

-					newValue);

-		}

-	}

-

-	// The data model class. This is normally a persistent class of some sort.

-	static class Person extends AbstractModelObject {

-		// A property...

-		String name = "John Smith";

-

-		public Person(String name) {

-			this.name = name;

-		}

-

-		public String getName() {

-			return name;

-		}

-

-		public void setName(String name) {

-			String oldValue = this.name;

-			this.name = name;

-			firePropertyChange("name", oldValue, name);

-		}

-	}

-

-	// The View's model--the root of our Model graph for this particular GUI.

-	//

-	// Typically each View class has a corresponding ViewModel class.

-	// The ViewModel is responsible for getting the objects to edit from the

-	// data access tier. Since this snippet doesn't have any persistent objects

-	// ro retrieve, this ViewModel just instantiates a model object to edit.

-	static class ViewModel {

-		// The model to bind

-		private List people = new LinkedList();

-		{

-			people.add(new Person("Steve Northover"));

-			people.add(new Person("Grant Gayed"));

-			people.add(new Person("Veronika Irvine"));

-			people.add(new Person("Mike Wilson"));

-			people.add(new Person("Christophe Cornu"));

-			people.add(new Person("Lynne Kues"));

-			people.add(new Person("Silenio Quarti"));

-		}

-

-		public List getPeople() {

-			return people;

-		}

-	}

-

-	/**

-	 * Editing support that uses JFace Data Binding to control the editing

-	 * lifecycle. The standard EditingSupport get/setValue(...) lifecycle is not

-	 * used.

-	 * 

-	 * @since 3.3

-	 */

-	private static class InlineEditingSupport extends

-			ObservableValueEditingSupport {

-		private CellEditor cellEditor;

-

-		/**

-		 * @param viewer

-		 * @param dbc

-		 */

-		public InlineEditingSupport(ColumnViewer viewer, DataBindingContext dbc) {

-

-			super(viewer, dbc);

-			cellEditor = new TextCellEditor((Composite) viewer.getControl());

-		}

-

-		protected CellEditor getCellEditor(Object element) {

-			return cellEditor;

-		}

-

-		protected IObservableValue doCreateCellEditorObservable(

-				CellEditor cellEditor) {

-

-			return SWTObservables.observeText(cellEditor.getControl(),

-					SWT.Modify);

-		}

-

-		protected IObservableValue doCreateElementObservable(Object element,

-				ViewerCell cell) {

-			return BeansObservables.observeValue(element, "name");

-		}

-	}

-

-	// The GUI view

-	static class View {

-		private ViewModel viewModel;

-		private Table committers;

-		private Label selectedCommitter;

-

-		public View(ViewModel viewModel) {

-			this.viewModel = viewModel;

-		}

-

-		public Shell createShell() {

-			// Build a UI

-			Display display = Display.getDefault();

-			Shell shell = new Shell(display);

-			shell.setLayout(new FillLayout(SWT.VERTICAL));

-			committers = new Table(shell, SWT.BORDER | SWT.FULL_SELECTION);

-			committers.setLinesVisible(true);

-

-			selectedCommitter = new Label(shell, SWT.NONE);

-			// Set up data binding. In an RCP application, the threading

-			// Realm

-			// will be set for you automatically by the Workbench. In an SWT

-			// application, you can do this once, wrpping your binding

-			// method call.

-			DataBindingContext bindingContext = new DataBindingContext();

-			bindGUI(bindingContext);

-

-			// Open and return the Shell

-			shell.setSize(100, 300);

-			shell.open();

-			return shell;

-		}

-

-		protected void bindGUI(DataBindingContext bindingContext) {

-			// Since we're using a JFace Viewer, we do first wrap our Table...

-			TableViewer peopleViewer = new TableViewer(committers);

-			TableViewerColumn column = new TableViewerColumn(peopleViewer,

-					SWT.NONE);

-			column.setEditingSupport(new InlineEditingSupport(peopleViewer,

-					bindingContext));

-			column.getColumn().setWidth(100);

-

-			// Bind viewer to model

-			ViewerSupport.bind(peopleViewer, new WritableList(viewModel

-					.getPeople(), Person.class), BeanProperties.value(

-					Person.class, "name"));

-

-			// bind selectedCommitter label to the name of the current selection

-			IObservableValue selection = ViewersObservables

-					.observeSingleSelection(peopleViewer);

-			bindingContext.bindValue(SWTObservables

-					.observeText(selectedCommitter), BeansObservables

-					.observeDetailValue(selection, "name", String.class));

-		}

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet015DelayTextModifyEvents.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet015DelayTextModifyEvents.java
deleted file mode 100644
index ea00f75..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet015DelayTextModifyEvents.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/************************************************************************************************************

- * Copyright (c) 2007, 2009 Matthew Hall and others. All rights reserved. This program and the

- * accompanying materials are made available under the terms of the Eclipse Public License v1.0 which

- * accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- * 		Matthew Hall - initial API and implementation (bug 180746)

- * 		Boris Bokowski, IBM - initial API and implementation

- *      Matthew Hall - bugs 260329, 264286

- ***********************************************************************************************************/

-package org.eclipse.xwt.tests.snipppets;

-

-import org.eclipse.core.databinding.DataBindingContext;

-import org.eclipse.core.databinding.observable.Observables;

-import org.eclipse.core.databinding.observable.Realm;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.jface.databinding.swt.ISWTObservableValue;

-import org.eclipse.jface.databinding.swt.SWTObservables;

-import org.eclipse.jface.databinding.swt.WidgetProperties;

-import org.eclipse.jface.internal.databinding.provisional.swt.ControlUpdater;

-import org.eclipse.jface.layout.GridDataFactory;

-import org.eclipse.jface.resource.FontDescriptor;

-import org.eclipse.jface.resource.JFaceResources;

-import org.eclipse.jface.resource.LocalResourceManager;

-import org.eclipse.jface.resource.ResourceManager;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.graphics.Font;

-import org.eclipse.swt.layout.GridLayout;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.swt.widgets.Text;

-

-public class Snippet015DelayTextModifyEvents {

-

-	private static void createControls(Shell shell) {

-		final Label field1 = createLabel(shell, SWT.NONE, "Field 1 ");

-

-		Text text1 = new Text(shell, SWT.BORDER);

-		GridDataFactory.fillDefaults().grab(true, false).hint(200, SWT.DEFAULT)

-				.applyTo(text1);

-		createLabel(shell, SWT.NONE, "200ms delay");

-

-		final Label field2 = createLabel(shell, SWT.NONE, "Field 2 ");

-

-		Text text2 = new Text(shell, SWT.BORDER);

-		GridDataFactory.fillDefaults().grab(true, false).hint(200, SWT.DEFAULT)

-				.applyTo(text2);

-

-		createLabel(shell, SWT.NONE, "1000ms delay");

-

-		final ISWTObservableValue delayed1 = WidgetProperties.text(SWT.Modify)

-				.observeDelayed(200, text1);

-		final ISWTObservableValue delayed2 = WidgetProperties.text(SWT.Modify)

-				.observeDelayed(1000, text2);

-

-		// (In a real application,you would want to dispose the resource manager

-		// when you are done with it)

-		ResourceManager resourceManager = new LocalResourceManager(

-				JFaceResources.getResources());

-		final Font shellFont = shell.getFont();

-		final Font italicFont = resourceManager.createFont(FontDescriptor

-				.createFrom(shellFont).setStyle(SWT.ITALIC));

-

-		final IObservableValue stale1 = Observables.observeStale(delayed1);

-		new ControlUpdater(field2) {

-			protected void updateControl() {

-				boolean stale = ((Boolean) stale1.getValue()).booleanValue();

-				field2.setFont(stale ? italicFont : shellFont);

-			}

-		};

-

-		final IObservableValue stale2 = Observables.observeStale(delayed2);

-		new ControlUpdater(field1) {

-			protected void updateControl() {

-				boolean stale = ((Boolean) stale2.getValue()).booleanValue();

-				field1.setFont(stale ? italicFont : shellFont);

-			}

-		};

-

-		String info = "Pending changes are applied immediately if the observed control loses focus";

-		GridDataFactory.fillDefaults().span(3, 1).applyTo(

-				createLabel(shell, SWT.WRAP, info));

-

-		DataBindingContext dbc = new DataBindingContext();

-

-		dbc.bindValue(delayed1, delayed2);

-	}

-

-	private static Label createLabel(Composite parent, int style, String text) {

-		Label label = new Label(parent, style);

-		label.setText(text);

-		return label;

-	}

-

-	public static void main(String[] args) {

-		final Display display = new Display();

-

-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {

-			public void run() {

-				Shell shell = new Shell();

-				shell.setLayout(new GridLayout(3, false));

-

-				createControls(shell);

-

-				shell.pack();

-				shell.open();

-				while (!shell.isDisposed())

-					if (!display.readAndDispatch())

-						display.sleep();

-			}

-

-		});

-

-		display.dispose();

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet018CheckboxTableViewerCheckedSelection.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet018CheckboxTableViewerCheckedSelection.java
deleted file mode 100644
index d26e339..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet018CheckboxTableViewerCheckedSelection.java
+++ /dev/null
@@ -1,362 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2008, 2009 Matthew Hall and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Matthew Hall - initial API and implementation (bug 124684)

- *     Matthew Hall - bugs 260329, 260337

- ******************************************************************************/

-

-package org.eclipse.xwt.tests.snipppets;

-

-import java.beans.PropertyChangeListener;

-import java.beans.PropertyChangeSupport;

-import java.util.ArrayList;

-import java.util.Arrays;

-import java.util.HashSet;

-import java.util.List;

-import java.util.Set;

-

-import org.eclipse.core.databinding.DataBindingContext;

-import org.eclipse.core.databinding.beans.BeanProperties;

-import org.eclipse.core.databinding.beans.BeansObservables;

-import org.eclipse.core.databinding.observable.Realm;

-import org.eclipse.core.databinding.observable.list.IObservableList;

-import org.eclipse.core.databinding.observable.value.ComputedValue;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.jface.databinding.swt.SWTObservables;

-import org.eclipse.jface.databinding.viewers.ViewerSupport;

-import org.eclipse.jface.databinding.viewers.ViewersObservables;

-import org.eclipse.jface.dialogs.IInputValidator;

-import org.eclipse.jface.dialogs.InputDialog;

-import org.eclipse.jface.dialogs.MessageDialog;

-import org.eclipse.jface.layout.GridDataFactory;

-import org.eclipse.jface.layout.GridLayoutFactory;

-import org.eclipse.jface.layout.TableColumnLayout;

-import org.eclipse.jface.viewers.CheckboxTableViewer;

-import org.eclipse.jface.viewers.ColumnWeightData;

-import org.eclipse.jface.viewers.IStructuredSelection;

-import org.eclipse.jface.viewers.StructuredSelection;

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.jface.window.Window;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.layout.GridLayout;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.swt.widgets.Listener;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.swt.widgets.Table;

-import org.eclipse.swt.widgets.TableColumn;

-import org.eclipse.swt.widgets.Text;

-

-/**

- * Snippet 018: Binding to the checked elements in a CheckboxTableViewer.

- */

-public class Snippet018CheckboxTableViewerCheckedSelection {

-	public static void main(String[] args) {

-		// The SWT event loop

-		final Display display = Display.getDefault();

-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {

-			public void run() {

-				ViewModel viewModel = createSampleModel();

-

-				Shell shell = new View(viewModel).createShell();

-				shell.open();

-				while (!shell.isDisposed())

-					if (!display.readAndDispatch())

-						display.sleep();

-			}

-		});

-		display.dispose();

-	}

-

-	private static ViewModel createSampleModel() {

-		ViewModel viewModel = new ViewModel();

-

-		Person stan = createPerson("Stan");

-		Person kyle = createPerson("Kyle");

-		Person eric = createPerson("Eric");

-		Person kenny = createPerson("Kenny");

-		Person wendy = createPerson("Wendy");

-		Person butters = createPerson("Butters");

-

-		setFriends(stan, new Person[] { kyle, eric, kenny, wendy });

-		setFriends(kyle, new Person[] { stan, eric, kenny });

-		setFriends(eric, new Person[] { eric });

-		setFriends(kenny, new Person[] { stan, kyle, eric });

-		setFriends(wendy, new Person[] { stan });

-		setFriends(butters, new Person[0]);

-

-		Person[] people = new Person[] { stan, kyle, eric, kenny, wendy,

-				butters };

-		viewModel.setPeople(Arrays.asList(people));

-		return viewModel;

-	}

-

-	private static Person createPerson(String name) {

-		Person person = new Person();

-		person.setName(name);

-		return person;

-	}

-

-	private static void setFriends(Person person, Person[] friends) {

-		person.setFriends(new HashSet(Arrays.asList(friends)));

-	}

-

-	// Minimal JavaBeans support

-	public static abstract class AbstractModelObject {

-		private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(

-				this);

-

-		public void addPropertyChangeListener(PropertyChangeListener listener) {

-			propertyChangeSupport.addPropertyChangeListener(listener);

-		}

-

-		public void addPropertyChangeListener(String propertyName,

-				PropertyChangeListener listener) {

-			propertyChangeSupport.addPropertyChangeListener(propertyName,

-					listener);

-		}

-

-		public void removePropertyChangeListener(PropertyChangeListener listener) {

-			propertyChangeSupport.removePropertyChangeListener(listener);

-		}

-

-		public void removePropertyChangeListener(String propertyName,

-				PropertyChangeListener listener) {

-			propertyChangeSupport.removePropertyChangeListener(propertyName,

-					listener);

-		}

-

-		protected void firePropertyChange(String propertyName, Object oldValue,

-				Object newValue) {

-			propertyChangeSupport.firePropertyChange(propertyName, oldValue,

-					newValue);

-		}

-	}

-

-	// The data model class.

-	public static class Person extends AbstractModelObject {

-		private String name;

-		private Set friends = new HashSet();

-

-		public String getName() {

-			return name;

-		}

-

-		public void setName(String name) {

-			firePropertyChange("name", this.name, this.name = name);

-		}

-

-		public Set getFriends() {

-			return new HashSet(friends);

-		}

-

-		public void setFriends(Set friends) {

-			firePropertyChange("friends", this.friends,

-					this.friends = new HashSet(friends));

-		}

-

-		public String toString() {

-			return name;

-		}

-	}

-

-	// The View's model--the root of our Model graph for this particular GUI.

-	//

-	// Typically each View class has a corresponding ViewModel class.

-	//

-	// The ViewModel is responsible for getting the objects to edit from the

-	// data access tier. Since this snippet doesn't have any persistent objects

-	// to retrieve, this ViewModel just instantiates a model object to edit.

-	static class ViewModel extends AbstractModelObject {

-		private List people = new ArrayList();

-

-		public List getPeople() {

-			return new ArrayList(people);

-		}

-

-		public void setPeople(List people) {

-			firePropertyChange("people", this.people,

-					this.people = new ArrayList(people));

-		}

-	}

-

-	// The GUI view

-	static class View {

-		private ViewModel viewModel;

-

-		private Shell shell;

-

-		private Button addPersonButton;

-		private Button removePersonButton;

-		private TableViewer peopleViewer;

-		private Text personName;

-		private CheckboxTableViewer friendsViewer;

-

-		public View(ViewModel viewModel) {

-			this.viewModel = viewModel;

-		}

-

-		public Shell createShell() {

-			// Build a UI

-			final Display display = Display.getCurrent();

-			shell = new Shell(display);

-

-			createUI(shell);

-

-			// Bind UI

-			bindUI();

-

-			// Open and return the Shell

-			shell.setSize(shell.computeSize(400, SWT.DEFAULT));

-			shell.open();

-			return shell;

-		}

-

-		private void createUI(Shell shell) {

-			shell.setText("Binding checked elements in CheckboxTableViewer");

-			shell.setLayout(new GridLayout(2, false));

-

-			new Label(shell, SWT.NONE).setText("People");

-

-			Composite buttons = new Composite(shell, SWT.NONE);

-			GridDataFactory.swtDefaults().align(SWT.RIGHT, SWT.CENTER).applyTo(

-					buttons);

-			GridLayoutFactory.fillDefaults().numColumns(2).equalWidth(true)

-					.applyTo(buttons);

-			addPersonButton = new Button(buttons, SWT.PUSH);

-			addPersonButton.setText("Add");

-			GridDataFactory.fillDefaults().applyTo(addPersonButton);

-			removePersonButton = new Button(buttons, SWT.PUSH);

-			removePersonButton.setText("Remove");

-			GridDataFactory.fillDefaults().applyTo(removePersonButton);

-

-			Composite peopleComposite = new Composite(shell, SWT.NONE);

-			GridDataFactory.fillDefaults().grab(true, true).span(2, 1).applyTo(

-					peopleComposite);

-			TableColumnLayout peopleColumnLayout = new TableColumnLayout();

-			peopleComposite.setLayout(peopleColumnLayout);

-

-			peopleViewer = new TableViewer(peopleComposite, SWT.SINGLE

-					| SWT.BORDER | SWT.FULL_SELECTION);

-

-			Table peopleTable = peopleViewer.getTable();

-			peopleTable.setHeaderVisible(true);

-			peopleTable.setLinesVisible(true);

-

-			TableColumn nameColumn = new TableColumn(peopleTable, SWT.NONE);

-			nameColumn.setText("Name");

-			peopleColumnLayout.setColumnData(nameColumn,

-					new ColumnWeightData(1));

-

-			TableColumn friendsColumn = new TableColumn(peopleTable, SWT.NONE);

-			friendsColumn.setText("Friends");

-			peopleColumnLayout.setColumnData(friendsColumn,

-					new ColumnWeightData(3));

-

-			new Label(shell, SWT.NONE).setText("Name");

-

-			personName = new Text(shell, SWT.BORDER);

-			GridDataFactory.fillDefaults().grab(true, false)

-					.applyTo(personName);

-

-			new Label(shell, SWT.NONE).setText("Friends");

-

-			Composite friendsComposite = new Composite(shell, SWT.NONE);

-			GridDataFactory.fillDefaults().grab(true, true).applyTo(

-					friendsComposite);

-			TableColumnLayout friendsColumnLayout = new TableColumnLayout();

-			friendsComposite.setLayout(friendsColumnLayout);

-

-			friendsViewer = CheckboxTableViewer.newCheckList(friendsComposite,

-					SWT.SINGLE | SWT.BORDER | SWT.FULL_SELECTION);

-

-			Table friendsTable = friendsViewer.getTable();

-			friendsTable.setHeaderVisible(true);

-			friendsTable.setLinesVisible(true);

-			TableColumn friendNameColumn = new TableColumn(friendsTable,

-					SWT.NONE);

-			friendNameColumn.setText("Name");

-			friendsColumnLayout.setColumnData(friendNameColumn,

-					new ColumnWeightData(1));

-

-			GridDataFactory.fillDefaults().grab(true, true).applyTo(

-					friendsViewer.getTable());

-		}

-

-		private void bindUI() {

-			DataBindingContext dbc = new DataBindingContext();

-

-			final IObservableList people = BeansObservables.observeList(Realm

-					.getDefault(), viewModel, "people");

-

-			addPersonButton.addListener(SWT.Selection, new Listener() {

-				public void handleEvent(Event event) {

-					InputDialog dlg = new InputDialog(shell, "Add Person",

-							"Enter name:", "<Name>", new IInputValidator() {

-								public String isValid(String newText) {

-									if (newText == null

-											|| newText.length() == 0)

-										return "Name cannot be empty";

-									return null;

-								}

-							});

-					if (dlg.open() == Window.OK) {

-						Person person = new Person();

-						person.setName(dlg.getValue());

-						people.add(person);

-						peopleViewer.setSelection(new StructuredSelection(

-								person));

-					}

-				}

-			});

-

-			removePersonButton.addListener(SWT.Selection, new Listener() {

-				public void handleEvent(Event event) {

-					IStructuredSelection selected = (IStructuredSelection) peopleViewer

-							.getSelection();

-					if (selected.isEmpty())

-						return;

-					Person person = (Person) selected.getFirstElement();

-					if (MessageDialog.openConfirm(shell, "Remove person",

-							"Remove " + person.getName() + "?"))

-						people.remove(person);

-				}

-			});

-

-			ViewerSupport.bind(peopleViewer, people, BeanProperties.values(

-					Person.class, new String[] { "name", "friends" }));

-

-			final IObservableValue selectedPerson = ViewersObservables

-					.observeSingleSelection(peopleViewer);

-

-			IObservableValue personSelected = new ComputedValue(Boolean.TYPE) {

-				protected Object calculate() {

-					return Boolean.valueOf(selectedPerson.getValue() != null);

-				}

-			};

-			dbc.bindValue(SWTObservables.observeEnabled(removePersonButton),

-					personSelected);

-			dbc.bindValue(SWTObservables.observeEnabled(friendsViewer

-					.getTable()), personSelected);

-

-			dbc.bindValue(SWTObservables.observeText(personName, SWT.Modify),

-					BeansObservables.observeDetailValue(selectedPerson, "name",

-							String.class));

-

-			ViewerSupport.bind(friendsViewer, people, BeanProperties.value(

-					Person.class, "name"));

-

-			dbc.bindSet(ViewersObservables.observeCheckedElements(

-					friendsViewer, Person.class), BeansObservables

-					.observeDetailSet(selectedPerson, "friends", Person.class));

-		}

-	}

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet019TreeViewerWithListFactory.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet019TreeViewerWithListFactory.java
deleted file mode 100644
index 052fccf..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet019TreeViewerWithListFactory.java
+++ /dev/null
@@ -1,326 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2005, 2009 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *     Matthew Hall - bugs 260329, 260337

- *******************************************************************************/

-package org.eclipse.xwt.tests.snipppets;

-

-import java.beans.PropertyChangeListener;

-import java.beans.PropertyChangeSupport;

-import java.util.ArrayList;

-import java.util.List;

-

-import org.eclipse.core.databinding.DataBindingContext;

-import org.eclipse.core.databinding.beans.BeanProperties;

-import org.eclipse.core.databinding.beans.BeansObservables;

-import org.eclipse.core.databinding.observable.Realm;

-import org.eclipse.core.databinding.observable.value.ComputedValue;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.core.databinding.observable.value.WritableValue;

-import org.eclipse.jface.databinding.swt.SWTObservables;

-import org.eclipse.jface.databinding.viewers.ViewerSupport;

-import org.eclipse.jface.databinding.viewers.ViewersObservables;

-import org.eclipse.jface.viewers.IStructuredSelection;

-import org.eclipse.jface.viewers.StructuredSelection;

-import org.eclipse.jface.viewers.TreeViewer;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.events.SelectionAdapter;

-import org.eclipse.swt.events.SelectionEvent;

-import org.eclipse.swt.layout.GridData;

-import org.eclipse.swt.layout.GridLayout;

-import org.eclipse.swt.layout.RowLayout;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.swt.widgets.Tree;

-import org.eclipse.swt.widgets.TreeItem;

-

-public class Snippet019TreeViewerWithListFactory {

-

-	private Button pasteButton;

-	private Button copyButton;

-	private Shell shell;

-	private Button addChildBeanButton;

-	private Button removeBeanButton;

-	private TreeViewer beanViewer;

-	private Tree tree;

-	private Text beanText;

-	private DataBindingContext m_bindingContext;

-

-	private Bean input = createBean("input");

-	private IObservableValue clipboard;

-

-	/**

-	 * Launch the application

-	 * 

-	 * @param args

-	 */

-	public static void main(String[] args) {

-		Display display = Display.getDefault();

-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {

-			public void run() {

-				try {

-					Snippet019TreeViewerWithListFactory window = new Snippet019TreeViewerWithListFactory();

-					window.open();

-				} catch (Exception e) {

-					e.printStackTrace();

-				}

-			}

-		});

-	}

-

-	/**

-	 * Open the window

-	 */

-	public void open() {

-		final Display display = Display.getDefault();

-		createContents();

-		shell.open();

-		shell.layout();

-		while (!shell.isDisposed()) {

-			if (!display.readAndDispatch())

-				display.sleep();

-		}

-	}

-

-	/**

-	 * Create nameMap of the window

-	 */

-	protected void createContents() {

-		shell = new Shell();

-		final GridLayout gridLayout_1 = new GridLayout();

-		gridLayout_1.numColumns = 2;

-		shell.setLayout(gridLayout_1);

-		shell.setSize(535, 397);

-		shell.setText("SWT Application");

-

-		final Composite group = new Composite(shell, SWT.NONE);

-		final RowLayout rowLayout = new RowLayout();

-		rowLayout.marginTop = 0;

-		rowLayout.marginRight = 0;

-		rowLayout.marginLeft = 0;

-		rowLayout.marginBottom = 0;

-		rowLayout.pack = false;

-		group.setLayout(rowLayout);

-		group

-				.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false,

-						2, 1));

-

-		final Button addRootButton = new Button(group, SWT.NONE);

-		addRootButton.addSelectionListener(new SelectionAdapter() {

-			public void widgetSelected(final SelectionEvent e) {

-				List list = input.getList();

-				Bean root = createBean("root");

-				list.add(root);

-				input.setList(list);

-

-				beanViewer.setSelection(new StructuredSelection(root));

-				beanText.selectAll();

-				beanText.setFocus();

-			}

-		});

-		addRootButton.setText("Add Root");

-

-		addChildBeanButton = new Button(group, SWT.NONE);

-		addChildBeanButton.addSelectionListener(new SelectionAdapter() {

-			public void widgetSelected(final SelectionEvent e) {

-				Bean parent = getSelectedBean();

-				List list = new ArrayList(parent.getList());

-				Bean child = createBean("child");

-				list.add(child);

-				parent.setList(list);

-

-				beanViewer.setSelection(new StructuredSelection(child));

-				beanText.selectAll();

-				beanText.setFocus();

-			}

-		});

-		addChildBeanButton.setText("Add Child");

-

-		removeBeanButton = new Button(group, SWT.NONE);

-		removeBeanButton.addSelectionListener(new SelectionAdapter() {

-			public void widgetSelected(final SelectionEvent e) {

-				TreeItem selectedItem = beanViewer.getTree().getSelection()[0];

-				TreeItem parentItem = selectedItem.getParentItem();

-				Bean parent;

-				int index;

-				if (parentItem == null) {

-					parent = input;

-					index = beanViewer.getTree().indexOf(selectedItem);

-				} else {

-					parent = (Bean) parentItem.getData();

-					index = parentItem.indexOf(selectedItem);

-				}

-

-				List list = new ArrayList(parent.getList());

-				list.remove(index);

-				parent.setList(list);

-			}

-		});

-		removeBeanButton.setText("Remove");

-

-		copyButton = new Button(group, SWT.NONE);

-		copyButton.addSelectionListener(new SelectionAdapter() {

-			public void widgetSelected(final SelectionEvent e) {

-				clipboard.setValue(getSelectedBean());

-			}

-		});

-		copyButton.setText("Copy");

-

-		pasteButton = new Button(group, SWT.NONE);

-		pasteButton.addSelectionListener(new SelectionAdapter() {

-			public void widgetSelected(final SelectionEvent e) {

-				Bean copy = (Bean) clipboard.getValue();

-				if (copy == null)

-					return;

-				Bean parent = getSelectedBean();

-				if (parent == null)

-					parent = input;

-

-				List list = new ArrayList(parent.getList());

-				list.add(copy);

-				parent.setList(list);

-

-				beanViewer.setSelection(new StructuredSelection(copy));

-				beanText.selectAll();

-				beanText.setFocus();

-			}

-		});

-		pasteButton.setText("Paste");

-

-		final Button refreshButton = new Button(group, SWT.NONE);

-		refreshButton.addSelectionListener(new SelectionAdapter() {

-			public void widgetSelected(final SelectionEvent e) {

-				beanViewer.refresh();

-			}

-		});

-		refreshButton.setText("Refresh");

-

-		beanViewer = new TreeViewer(shell, SWT.FULL_SELECTION | SWT.BORDER);

-		beanViewer.setUseHashlookup(true);

-		tree = beanViewer.getTree();

-		tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));

-

-		final Label itemNameLabel = new Label(shell, SWT.NONE);

-		itemNameLabel.setText("Item Name");

-

-		beanText = new Text(shell, SWT.BORDER);

-		final GridData gd_beanValue = new GridData(SWT.FILL, SWT.CENTER, true,

-				false);

-		beanText.setLayoutData(gd_beanValue);

-		m_bindingContext = initDataBindings();

-		//

-		initExtraBindings(m_bindingContext);

-	}

-

-	private static Bean createBean(String name) {

-		return new Bean(name);

-	}

-

-	protected DataBindingContext initDataBindings() {

-		IObservableValue treeViewerSelectionObserveSelection = ViewersObservables

-				.observeSingleSelection(beanViewer);

-		IObservableValue textTextObserveWidget = SWTObservables.observeText(

-				beanText, SWT.Modify);

-		IObservableValue treeViewerValueObserveDetailValue = BeansObservables

-				.observeDetailValue(treeViewerSelectionObserveSelection,

-						"text", String.class);

-		//

-		//

-		DataBindingContext bindingContext = new DataBindingContext();

-		//

-		bindingContext.bindValue(textTextObserveWidget,

-				treeViewerValueObserveDetailValue);

-		//

-		return bindingContext;

-	}

-

-	private Bean getSelectedBean() {

-		IStructuredSelection selection = (IStructuredSelection) beanViewer

-				.getSelection();

-		if (selection.isEmpty())

-			return null;

-		return (Bean) selection.getFirstElement();

-	}

-

-	private void initExtraBindings(DataBindingContext dbc) {

-		final IObservableValue beanViewerSelection = ViewersObservables

-				.observeSingleSelection(beanViewer);

-		IObservableValue beanSelected = new ComputedValue(Boolean.TYPE) {

-			protected Object calculate() {

-				return Boolean.valueOf(beanViewerSelection.getValue() != null);

-			}

-		};

-		dbc.bindValue(SWTObservables.observeEnabled(addChildBeanButton),

-				beanSelected);

-		dbc.bindValue(SWTObservables.observeEnabled(removeBeanButton),

-				beanSelected);

-

-		clipboard = new WritableValue();

-		dbc.bindValue(SWTObservables.observeEnabled(copyButton), beanSelected);

-		dbc.bindValue(SWTObservables.observeEnabled(pasteButton),

-				new ComputedValue(Boolean.TYPE) {

-					protected Object calculate() {

-						return Boolean.valueOf(clipboard.getValue() != null);

-					}

-				});

-

-		ViewerSupport.bind(beanViewer, input, BeanProperties.list("list",

-				Bean.class), BeanProperties.value(Bean.class, "text"));

-	}

-

-	static class Bean {

-		/* package */PropertyChangeSupport changeSupport = new PropertyChangeSupport(

-				this);

-		private String text;

-		private List list;

-

-		public Bean(String text) {

-			this.text = text;

-			list = new ArrayList();

-		}

-

-		public void addPropertyChangeListener(PropertyChangeListener listener) {

-			changeSupport.addPropertyChangeListener(listener);

-		}

-

-		public void removePropertyChangeListener(PropertyChangeListener listener) {

-			changeSupport.removePropertyChangeListener(listener);

-		}

-

-		public String getText() {

-			return text;

-		}

-

-		public void setText(String value) {

-			changeSupport.firePropertyChange("text", this.text,

-					this.text = value);

-		}

-

-		public List getList() {

-			if (list == null)

-				return null;

-			return new ArrayList(list);

-		}

-

-		public void setList(List list) {

-			if (list != null)

-				list = new ArrayList(list);

-			changeSupport.firePropertyChange("list", this.list,

-					this.list = list);

-		}

-

-		public boolean hasListeners(String propertyName) {

-			return changeSupport.hasListeners(propertyName);

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet020TreeViewerWithSetFactory.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet020TreeViewerWithSetFactory.java
deleted file mode 100644
index 016305f..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet020TreeViewerWithSetFactory.java
+++ /dev/null
@@ -1,325 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2005, 2009 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *     Matthew Hall - bugs 260329, 260337

- *******************************************************************************/

-package org.eclipse.xwt.tests.snipppets;

-

-import java.beans.PropertyChangeListener;

-import java.beans.PropertyChangeSupport;

-import java.util.HashSet;

-import java.util.Set;

-

-import org.eclipse.core.databinding.DataBindingContext;

-import org.eclipse.core.databinding.beans.BeanProperties;

-import org.eclipse.core.databinding.beans.BeansObservables;

-import org.eclipse.core.databinding.observable.Realm;

-import org.eclipse.core.databinding.observable.value.ComputedValue;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.core.databinding.observable.value.WritableValue;

-import org.eclipse.jface.databinding.swt.SWTObservables;

-import org.eclipse.jface.databinding.viewers.ViewerSupport;

-import org.eclipse.jface.databinding.viewers.ViewersObservables;

-import org.eclipse.jface.viewers.IStructuredSelection;

-import org.eclipse.jface.viewers.StructuredSelection;

-import org.eclipse.jface.viewers.TreeViewer;

-import org.eclipse.jface.viewers.ViewerComparator;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.events.SelectionAdapter;

-import org.eclipse.swt.events.SelectionEvent;

-import org.eclipse.swt.layout.GridData;

-import org.eclipse.swt.layout.GridLayout;

-import org.eclipse.swt.layout.RowLayout;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.swt.widgets.Tree;

-import org.eclipse.swt.widgets.TreeItem;

-

-public class Snippet020TreeViewerWithSetFactory {

-

-	private Button pasteButton;

-	private Button copyButton;

-	private Shell shell;

-	private Button addChildBeanButton;

-	private Button removeBeanButton;

-	private TreeViewer beanViewer;

-	private Tree tree;

-	private Text beanText;

-	private DataBindingContext m_bindingContext;

-

-	private Bean input = createBean("input");

-	private IObservableValue clipboard;

-	static int counter = 0;

-

-	/**

-	 * Launch the application

-	 * 

-	 * @param args

-	 */

-	public static void main(String[] args) {

-		Display display = Display.getDefault();

-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {

-			public void run() {

-				try {

-					Snippet020TreeViewerWithSetFactory window = new Snippet020TreeViewerWithSetFactory();

-					window.open();

-				} catch (Exception e) {

-					e.printStackTrace();

-				}

-			}

-		});

-	}

-

-	/**

-	 * Open the window

-	 */

-	public void open() {

-		final Display display = Display.getDefault();

-		createContents();

-		shell.open();

-		shell.layout();

-		while (!shell.isDisposed()) {

-			if (!display.readAndDispatch())

-				display.sleep();

-		}

-	}

-

-	/**

-	 * Create nameMap of the window

-	 */

-	protected void createContents() {

-		shell = new Shell();

-		final GridLayout gridLayout_1 = new GridLayout();

-		gridLayout_1.numColumns = 2;

-		shell.setLayout(gridLayout_1);

-		shell.setSize(535, 397);

-		shell.setText("SWT Application");

-

-		final Composite group = new Composite(shell, SWT.NONE);

-		final RowLayout rowLayout = new RowLayout();

-		rowLayout.marginTop = 0;

-		rowLayout.marginRight = 0;

-		rowLayout.marginLeft = 0;

-		rowLayout.marginBottom = 0;

-		rowLayout.pack = false;

-		group.setLayout(rowLayout);

-		group

-				.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false,

-						2, 1));

-

-		final Button addRootButton = new Button(group, SWT.NONE);

-		addRootButton.addSelectionListener(new SelectionAdapter() {

-			public void widgetSelected(final SelectionEvent e) {

-				Set set = input.getSet();

-				Bean root = createBean("root");

-				set.add(root);

-				input.setSet(set);

-

-				beanViewer.setSelection(new StructuredSelection(root));

-				beanText.selectAll();

-				beanText.setFocus();

-			}

-		});

-		addRootButton.setText("Add Root");

-

-		addChildBeanButton = new Button(group, SWT.NONE);

-		addChildBeanButton.addSelectionListener(new SelectionAdapter() {

-			public void widgetSelected(final SelectionEvent e) {

-				Bean parent = getSelectedBean();

-				Set set = new HashSet(parent.getSet());

-				Bean child = createBean("child" + (counter++));

-				set.add(child);

-				parent.setSet(set);

-

-				// beanViewer.setSelection(new StructuredSelection(parent));

-				// beanText.selectAll();

-				// beanText.setFocus();

-			}

-		});

-		addChildBeanButton.setText("Add Child");

-

-		removeBeanButton = new Button(group, SWT.NONE);

-		removeBeanButton.addSelectionListener(new SelectionAdapter() {

-			public void widgetSelected(final SelectionEvent e) {

-				TreeItem selectedItem = beanViewer.getTree().getSelection()[0];

-				Bean bean = (Bean) selectedItem.getData();

-				TreeItem parentItem = selectedItem.getParentItem();

-				Bean parent;

-				if (parentItem == null)

-					parent = input;

-				else

-					parent = (Bean) parentItem.getData();

-

-				Set set = new HashSet(parent.getSet());

-				set.remove(bean);

-				parent.setSet(set);

-			}

-		});

-		removeBeanButton.setText("Remove");

-

-		copyButton = new Button(group, SWT.NONE);

-		copyButton.addSelectionListener(new SelectionAdapter() {

-			public void widgetSelected(final SelectionEvent e) {

-				clipboard.setValue(getSelectedBean());

-			}

-		});

-		copyButton.setText("Copy");

-

-		pasteButton = new Button(group, SWT.NONE);

-		pasteButton.addSelectionListener(new SelectionAdapter() {

-			public void widgetSelected(final SelectionEvent e) {

-				Bean copy = (Bean) clipboard.getValue();

-				if (copy == null)

-					return;

-				Bean parent = getSelectedBean();

-				if (parent == null)

-					parent = input;

-

-				Set set = new HashSet(parent.getSet());

-				set.add(copy);

-				parent.setSet(set);

-

-				beanViewer.setSelection(new StructuredSelection(copy));

-				beanText.selectAll();

-				beanText.setFocus();

-			}

-		});

-		pasteButton.setText("Paste");

-

-		final Button refreshButton = new Button(group, SWT.NONE);

-		refreshButton.addSelectionListener(new SelectionAdapter() {

-			public void widgetSelected(final SelectionEvent e) {

-				beanViewer.refresh();

-			}

-		});

-		refreshButton.setText("Refresh");

-

-		beanViewer = new TreeViewer(shell, SWT.FULL_SELECTION | SWT.BORDER);

-		beanViewer.setUseHashlookup(true);

-		beanViewer.setComparator(new ViewerComparator());

-		tree = beanViewer.getTree();

-		tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));

-

-		final Label itemNameLabel = new Label(shell, SWT.NONE);

-		itemNameLabel.setText("Item Name");

-

-		beanText = new Text(shell, SWT.BORDER);

-		final GridData gd_beanValue = new GridData(SWT.FILL, SWT.CENTER, true,

-				false);

-		beanText.setLayoutData(gd_beanValue);

-		m_bindingContext = initDataBindings();

-		//

-		initExtraBindings(m_bindingContext);

-	}

-

-	private static Bean createBean(String name) {

-		return new Bean(name);

-	}

-

-	protected DataBindingContext initDataBindings() {

-		IObservableValue treeViewerSelectionObserveSelection = ViewersObservables

-				.observeSingleSelection(beanViewer);

-		IObservableValue textTextObserveWidget = SWTObservables.observeText(

-				beanText, SWT.Modify);

-		IObservableValue treeViewerValueObserveDetailValue = BeansObservables

-				.observeDetailValue(treeViewerSelectionObserveSelection,

-						"text", String.class);

-		//

-		//

-		DataBindingContext bindingContext = new DataBindingContext();

-		//

-		bindingContext.bindValue(textTextObserveWidget,

-				treeViewerValueObserveDetailValue);

-		//

-		return bindingContext;

-	}

-

-	private Bean getSelectedBean() {

-		IStructuredSelection selection = (IStructuredSelection) beanViewer

-				.getSelection();

-		if (selection.isEmpty())

-			return null;

-		return (Bean) selection.getFirstElement();

-	}

-

-	private void initExtraBindings(DataBindingContext dbc) {

-		final IObservableValue beanViewerSelection = ViewersObservables

-				.observeSingleSelection(beanViewer);

-		IObservableValue beanSelected = new ComputedValue(Boolean.TYPE) {

-			protected Object calculate() {

-				return Boolean.valueOf(beanViewerSelection.getValue() != null);

-			}

-		};

-		dbc.bindValue(SWTObservables.observeEnabled(addChildBeanButton),

-				beanSelected);

-		dbc.bindValue(SWTObservables.observeEnabled(removeBeanButton),

-				beanSelected);

-

-		clipboard = new WritableValue();

-		dbc.bindValue(SWTObservables.observeEnabled(copyButton), beanSelected);

-		dbc.bindValue(SWTObservables.observeEnabled(pasteButton),

-				new ComputedValue(Boolean.TYPE) {

-					protected Object calculate() {

-						return Boolean.valueOf(clipboard.getValue() != null);

-					}

-				});

-

-		ViewerSupport.bind(beanViewer, input, BeanProperties.set("set",

-				Bean.class), BeanProperties.value(Bean.class, "text"));

-	}

-

-	static class Bean {

-		/* package */PropertyChangeSupport changeSupport = new PropertyChangeSupport(

-				this);

-		private String text;

-		private Set set;

-

-		public Bean(String text) {

-			this.text = text;

-			set = new HashSet();

-		}

-

-		public void addPropertyChangeListener(PropertyChangeListener listener) {

-			changeSupport.addPropertyChangeListener(listener);

-		}

-

-		public void removePropertyChangeListener(PropertyChangeListener listener) {

-			changeSupport.removePropertyChangeListener(listener);

-		}

-

-		public String getText() {

-			return text;

-		}

-

-		public void setText(String value) {

-			changeSupport.firePropertyChange("text", this.text,

-					this.text = value);

-		}

-

-		public Set getSet() {

-			if (set == null)

-				return null;

-			return new HashSet(set);

-		}

-

-		public void setSet(Set set) {

-			if (set != null)

-				set = new HashSet(set);

-			changeSupport.firePropertyChange("set", this.set, this.set = set);

-		}

-

-		public boolean hasListeners(String propertyName) {

-			return changeSupport.hasListeners(propertyName);

-		}

-	}

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet021MultiFieldValidation.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet021MultiFieldValidation.java
deleted file mode 100644
index 0f59e28..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet021MultiFieldValidation.java
+++ /dev/null
@@ -1,357 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2008, 2009 Matthew Hall and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Matthew Hall - initial API and implementation (bug 218269)

- *     Matthew Hall - bug 260329

- ******************************************************************************/

-

-package org.eclipse.xwt.tests.snipppets;

-

-import java.util.ArrayList;

-import java.util.Iterator;

-

-import org.eclipse.core.databinding.DataBindingContext;

-import org.eclipse.core.databinding.observable.Realm;

-import org.eclipse.core.databinding.observable.list.IObservableList;

-import org.eclipse.core.databinding.observable.list.WritableList;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.core.databinding.observable.value.WritableValue;

-import org.eclipse.core.databinding.validation.MultiValidator;

-import org.eclipse.core.databinding.validation.ValidationStatus;

-import org.eclipse.core.runtime.IStatus;

-import org.eclipse.jface.databinding.swt.SWTObservables;

-import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;

-import org.eclipse.jface.databinding.wizard.WizardPageSupport;

-import org.eclipse.jface.dialogs.IInputValidator;

-import org.eclipse.jface.dialogs.InputDialog;

-import org.eclipse.jface.viewers.IStructuredSelection;

-import org.eclipse.jface.viewers.ListViewer;

-import org.eclipse.jface.window.Window;

-import org.eclipse.jface.wizard.IWizard;

-import org.eclipse.jface.wizard.Wizard;

-import org.eclipse.jface.wizard.WizardDialog;

-import org.eclipse.jface.wizard.WizardPage;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.events.SelectionAdapter;

-import org.eclipse.swt.events.SelectionEvent;

-import org.eclipse.swt.layout.GridData;

-import org.eclipse.swt.layout.GridLayout;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.swt.widgets.Group;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.swt.widgets.List;

-import org.eclipse.swt.widgets.Text;

-

-/**

- * @since 3.2

- * 

- */

-public class Snippet021MultiFieldValidation extends WizardPage {

-

-	private List list_1;

-	private List list;

-	private Button addAddendButton;

-	private Button removeAddendButton;

-	private Text sumModelValue;

-	private Text field2ModelValue;

-	private Text field1ModelValue;

-	private Text sumTarget;

-	private Text field2Target;

-	private Text field1Target;

-	private ListViewer addendsTarget;

-	private ListViewer addendsModelValue;

-

-	/**

-	 * Create the wizard

-	 */

-	public Snippet021MultiFieldValidation() {

-		super("snippet021");

-		setTitle("Snippet 021 - Multi-field Validators");

-		setDescription("Enter values which satisfy the cross-field constraints");

-	}

-

-	/**

-	 * Create nameMap of the wizard

-	 * 

-	 * @param parent

-	 */

-	public void createControl(Composite parent) {

-		Composite container = new Composite(parent, SWT.NULL);

-		final GridLayout gridLayout = new GridLayout();

-		gridLayout.numColumns = 2;

-		container.setLayout(gridLayout);

-		//

-		setControl(container);

-

-		final Group bothEvenOrGroup = new Group(container, SWT.NONE);

-		bothEvenOrGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false,

-				false));

-		bothEvenOrGroup.setText("Numbers must be both even or both odd");

-		final GridLayout gridLayout_1 = new GridLayout();

-		gridLayout_1.numColumns = 3;

-		bothEvenOrGroup.setLayout(gridLayout_1);

-		new Label(bothEvenOrGroup, SWT.NONE);

-

-		final Label targetLabel = new Label(bothEvenOrGroup, SWT.NONE);

-		targetLabel.setText("Target");

-

-		final Label modelLabel = new Label(bothEvenOrGroup, SWT.NONE);

-		modelLabel.setText("Model");

-

-		final Label field1Label = new Label(bothEvenOrGroup, SWT.NONE);

-		field1Label.setText("Field 1");

-

-		field1Target = new Text(bothEvenOrGroup, SWT.BORDER);

-		final GridData gd_field1Target = new GridData(SWT.FILL, SWT.CENTER,

-				true, false);

-		field1Target.setLayoutData(gd_field1Target);

-

-		field1ModelValue = new Text(bothEvenOrGroup, SWT.READ_ONLY | SWT.BORDER);

-		final GridData gd_field1ModelValue = new GridData(SWT.FILL, SWT.CENTER,

-				true, false);

-		field1ModelValue.setLayoutData(gd_field1ModelValue);

-

-		final Label field2Label = new Label(bothEvenOrGroup, SWT.NONE);

-		field2Label.setText("Field 2");

-

-		field2Target = new Text(bothEvenOrGroup, SWT.BORDER);

-		final GridData gd_field2Target = new GridData(SWT.FILL, SWT.CENTER,

-				true, false);

-		field2Target.setLayoutData(gd_field2Target);

-

-		field2ModelValue = new Text(bothEvenOrGroup, SWT.READ_ONLY | SWT.BORDER);

-		final GridData gd_field2ModelValue = new GridData(SWT.FILL, SWT.CENTER,

-				true, false);

-		field2ModelValue.setLayoutData(gd_field2ModelValue);

-

-		final Group sumOfAllGroup = new Group(container, SWT.NONE);

-		sumOfAllGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false,

-				true));

-		sumOfAllGroup.setText("Addends must add up to sum");

-		final GridLayout gridLayout_2 = new GridLayout();

-		gridLayout_2.numColumns = 3;

-		sumOfAllGroup.setLayout(gridLayout_2);

-		new Label(sumOfAllGroup, SWT.NONE);

-

-		final Label targetLabel_1 = new Label(sumOfAllGroup, SWT.NONE);

-		targetLabel_1.setText("Target");

-

-		final Label modelLabel_1 = new Label(sumOfAllGroup, SWT.NONE);

-		modelLabel_1.setText("Model");

-

-		final Label expectedSumLabel = new Label(sumOfAllGroup, SWT.NONE);

-		expectedSumLabel.setText("Sum");

-

-		sumTarget = new Text(sumOfAllGroup, SWT.BORDER);

-		final GridData gd_sumTarget = new GridData(SWT.FILL, SWT.CENTER, true,

-				false);

-		sumTarget.setLayoutData(gd_sumTarget);

-

-		sumModelValue = new Text(sumOfAllGroup, SWT.READ_ONLY | SWT.BORDER);

-		final GridData gd_sumModelValue = new GridData(SWT.FILL, SWT.CENTER,

-				true, false);

-		sumModelValue.setLayoutData(gd_sumModelValue);

-

-		final Label addendsLabel = new Label(sumOfAllGroup, SWT.NONE);

-		addendsLabel.setText("Addends");

-

-		addendsTarget = new ListViewer(sumOfAllGroup, SWT.V_SCROLL | SWT.BORDER);

-		list_1 = addendsTarget.getList();

-		list_1

-				.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true, 1,

-						2));

-

-		addendsModelValue = new ListViewer(sumOfAllGroup, SWT.V_SCROLL

-				| SWT.BORDER);

-		list = addendsModelValue.getList();

-		list.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true, 1, 2));

-

-		final Composite composite = new Composite(sumOfAllGroup, SWT.NONE);

-		composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));

-		final GridLayout gridLayout_3 = new GridLayout();

-		gridLayout_3.marginWidth = 0;

-		gridLayout_3.marginHeight = 0;

-		composite.setLayout(gridLayout_3);

-

-		addAddendButton = new Button(composite, SWT.NONE);

-		addAddendButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false,

-				false));

-		addAddendButton.setText("Add");

-

-		removeAddendButton = new Button(composite, SWT.NONE);

-		removeAddendButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER,

-				false, false));

-		removeAddendButton.setText("Remove");

-

-		bindUI();

-	}

-

-	private void bindUI() {

-		DataBindingContext dbc = new DataBindingContext();

-

-		bindEvensAndOddsGroup(dbc);

-		bindSumAndAddendsGroup(dbc);

-

-		WizardPageSupport.create(this, dbc);

-	}

-

-	private void bindEvensAndOddsGroup(DataBindingContext dbc) {

-		IObservableValue targetField1 = SWTObservables.observeText(

-				field1Target, SWT.Modify);

-		final IObservableValue middleField1 = new WritableValue(null,

-				Integer.TYPE);

-		dbc.bindValue(targetField1, middleField1);

-

-		IObservableValue targetField2 = SWTObservables.observeText(

-				field2Target, SWT.Modify);

-		final IObservableValue middleField2 = new WritableValue(null,

-				Integer.TYPE);

-		dbc.bindValue(targetField2, middleField2);

-

-		MultiValidator validator = new MultiValidator() {

-			protected IStatus validate() {

-				Integer field1 = (Integer) middleField1.getValue();

-				Integer field2 = (Integer) middleField2.getValue();

-				if (Math.abs(field1.intValue()) % 2 != Math.abs(field2

-						.intValue()) % 2)

-					return ValidationStatus

-							.error("Fields 1 and 2 must be both even or both odd");

-				return null;

-			}

-		};

-		dbc.addValidationStatusProvider(validator);

-

-		IObservableValue modelField1 = new WritableValue(new Integer(1),

-				Integer.TYPE);

-		IObservableValue modelField2 = new WritableValue(new Integer(4),

-				Integer.TYPE);

-		dbc.bindValue(validator.observeValidatedValue(middleField1),

-				modelField1);

-		dbc.bindValue(validator.observeValidatedValue(middleField2),

-				modelField2);

-

-		dbc.bindValue(SWTObservables.observeText(field1ModelValue, SWT.Modify),

-				modelField1);

-		dbc.bindValue(SWTObservables.observeText(field2ModelValue, SWT.Modify),

-				modelField2);

-	}

-

-	private void bindSumAndAddendsGroup(DataBindingContext dbc) {

-		IObservableValue targetSum = SWTObservables.observeText(sumTarget,

-				SWT.Modify);

-		final IObservableValue middleSum = new WritableValue(null, Integer.TYPE);

-		dbc.bindValue(targetSum, middleSum);

-

-		final IObservableList targetAddends = new WritableList(new ArrayList(),

-				Integer.TYPE);

-		addendsTarget.setContentProvider(new ObservableListContentProvider());

-		addendsTarget.setInput(targetAddends);

-

-		addAddendButton.addSelectionListener(new SelectionAdapter() {

-			public void widgetSelected(final SelectionEvent e) {

-				InputDialog dialog = new InputDialog(getShell(),

-						"Input addend", "Enter an integer addend", "0",

-						new IInputValidator() {

-							public String isValid(String newText) {

-								try {

-									Integer.valueOf(newText);

-									return null;

-								} catch (NumberFormatException e) {

-									return "Enter a number between "

-											+ Integer.MIN_VALUE + " and "

-											+ Integer.MAX_VALUE;

-								}

-							}

-						});

-				if (dialog.open() == Window.OK) {

-					targetAddends.add(Integer.valueOf(dialog.getValue()));

-				}

-			}

-		});

-

-		removeAddendButton.addSelectionListener(new SelectionAdapter() {

-			public void widgetSelected(SelectionEvent e) {

-				IStructuredSelection selection = (IStructuredSelection) addendsTarget

-						.getSelection();

-				if (!selection.isEmpty())

-					targetAddends.remove(selection.getFirstElement());

-			}

-		});

-

-		IObservableValue modelSum = new WritableValue(new Integer(5),

-				Integer.TYPE);

-		dbc.bindValue(SWTObservables.observeText(sumModelValue, SWT.Modify),

-				modelSum);

-

-		IObservableList modelAddends = new WritableList(new ArrayList(),

-				Integer.TYPE);

-

-		MultiValidator validator = new MultiValidator() {

-			protected IStatus validate() {

-				Integer sum = (Integer) middleSum.getValue();

-				int actualSum = 0;

-				for (Iterator iterator = targetAddends.iterator(); iterator

-						.hasNext();) {

-					actualSum += ((Integer) iterator.next()).intValue();

-				}

-				if (sum.intValue() != actualSum)

-					return ValidationStatus.error("Sum of addends is "

-							+ actualSum + ", expecting " + sum);

-				return ValidationStatus.ok();

-			}

-		};

-		dbc.addValidationStatusProvider(validator);

-

-		addendsModelValue

-				.setContentProvider(new ObservableListContentProvider());

-		addendsModelValue.setInput(modelAddends);

-

-		dbc.bindValue(validator.observeValidatedValue(middleSum), modelSum);

-		dbc.bindList(validator.observeValidatedList(targetAddends),

-				modelAddends);

-	}

-

-	static class MultiFieldValidationWizard extends Wizard {

-		public void addPages() {

-			addPage(new Snippet021MultiFieldValidation());

-		}

-

-		public String getWindowTitle() {

-			return "Snippet 021 - Multi-field Validation";

-		}

-

-		public boolean performFinish() {

-			return true;

-		}

-	}

-

-	public static void main(String[] args) {

-		Display display = new Display();

-

-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {

-			public void run() {

-				IWizard wizard = new MultiFieldValidationWizard();

-				WizardDialog dialog = new WizardDialog(null, wizard);

-				dialog.open();

-

-				// The SWT event loop

-				Display display = Display.getCurrent();

-				while (dialog.getShell() != null

-						&& !dialog.getShell().isDisposed()) {

-					if (!display.readAndDispatch()) {

-						display.sleep();

-					}

-				}

-			}

-		});

-

-		display.dispose();

-	}

-}

diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet024SelectObservableValue.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet024SelectObservableValue.java
deleted file mode 100644
index e7c0b34..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet024SelectObservableValue.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2008, 2009 Matthew Hall and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Matthew Hall - initial API and implementation (bug 249992)

- *     Matthew Hall - bug 260329

- ******************************************************************************/

-

-package org.eclipse.xwt.tests.snipppets;

-

-import org.eclipse.core.databinding.DataBindingContext;

-import org.eclipse.core.databinding.observable.Realm;

-import org.eclipse.core.databinding.observable.value.SelectObservableValue;

-import org.eclipse.jface.databinding.swt.SWTObservables;

-import org.eclipse.jface.databinding.viewers.IViewerObservableValue;

-import org.eclipse.jface.databinding.viewers.ViewersObservables;

-import org.eclipse.jface.viewers.ArrayContentProvider;

-import org.eclipse.jface.viewers.ListViewer;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.layout.GridData;

-import org.eclipse.swt.layout.GridLayout;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.swt.widgets.Group;

-import org.eclipse.swt.widgets.Shell;

-

-/**

- * Demonstrate usage of SelectObservableValue

- * 

- * @since 3.2

- */

-public class Snippet024SelectObservableValue {

-	protected Shell shell;

-

-	public static void main(String[] args) {

-		final Display display = Display.getDefault();

-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {

-			public void run() {

-				try {

-					Snippet024SelectObservableValue window = new Snippet024SelectObservableValue();

-					window.open();

-				} catch (Exception e) {

-					e.printStackTrace();

-				}

-			}

-		});

-	}

-

-	public void open() {

-		final Display display = Display.getDefault();

-		createContents();

-		shell.open();

-		shell.layout();

-		while (!shell.isDisposed()) {

-			if (!display.readAndDispatch())

-				display.sleep();

-		}

-	}

-

-	protected void createContents() {

-		shell = new Shell();

-		shell.setSize(400, 300);

-		shell.setLayout(new GridLayout(2, true));

-		shell.setText("Snippet024SelectObservableValue");

-

-		final ListViewer listViewer = new ListViewer(shell, SWT.BORDER);

-		listViewer.setContentProvider(new ArrayContentProvider());

-		listViewer.getList().setLayoutData(

-				new GridData(SWT.FILL, SWT.FILL, true, true));

-

-		final Group group = new Group(shell, SWT.NONE);

-		group.setText("Radio Group");

-		group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

-		group.setLayout(new GridLayout());

-

-		// Data Binding

-		Color[] colors = Color.values();

-

-		listViewer.setInput(colors);

-		IViewerObservableValue listViewerSelection = ViewersObservables

-				.observeSingleSelection(listViewer);

-

-		SelectObservableValue radioGroup = new SelectObservableValue();

-		for (int i = 0; i < colors.length; i++) {

-			Button button = new Button(group, SWT.RADIO);

-			button.setText(colors[i].toString());

-			radioGroup.addOption(colors[i], SWTObservables

-					.observeSelection(button));

-		}

-

-		DataBindingContext dbc = new DataBindingContext();

-		dbc.bindValue(radioGroup, listViewerSelection);

-	}

-

-	public static class Color {

-		public static final Color RED = new Color("Red");

-		public static final Color ORANGE = new Color("Orange");

-		public static final Color YELLOW = new Color("Yellow");

-		public static final Color GREEN = new Color("Green");

-		public static final Color BLUE = new Color("Blue");

-		public static final Color INDIGO = new Color("Indigo");

-		public static final Color VIOLET = new Color("Violet");

-

-		private final String name;

-

-		private Color(String name) {

-			this.name = name;

-		}

-

-		public String toString() {

-			return name;

-		}

-

-		public static Color[] values() {

-			return new Color[] { RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO,

-					VIOLET };

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet026AnonymousBeanProperties.java b/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet026AnonymousBeanProperties.java
deleted file mode 100644
index 665a9b9..0000000
--- a/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet026AnonymousBeanProperties.java
+++ /dev/null
@@ -1,400 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2008, 2009 Matthew Hall and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Matthew Hall - initial API and implementation (bug 247997)

- *     Matthew Hall - bugs 261843, 260337, 265561

- ******************************************************************************/

-

-package org.eclipse.xwt.tests.snipppets;

-

-import java.beans.PropertyChangeEvent;

-import java.beans.PropertyChangeListener;

-import java.beans.PropertyChangeSupport;

-import java.util.Collections;

-import java.util.Iterator;

-import java.util.Set;

-import java.util.TreeSet;

-

-import org.eclipse.core.databinding.DataBindingContext;

-import org.eclipse.core.databinding.beans.BeanProperties;

-import org.eclipse.core.databinding.observable.Realm;

-import org.eclipse.core.databinding.observable.set.SetDiff;

-import org.eclipse.core.databinding.observable.value.ComputedValue;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.core.databinding.property.INativePropertyListener;

-import org.eclipse.core.databinding.property.IProperty;

-import org.eclipse.core.databinding.property.ISimplePropertyListener;

-import org.eclipse.core.databinding.property.NativePropertyListener;

-import org.eclipse.core.databinding.property.set.DelegatingSetProperty;

-import org.eclipse.core.databinding.property.set.ISetProperty;

-import org.eclipse.core.databinding.property.set.SimpleSetProperty;

-import org.eclipse.jface.databinding.swt.SWTObservables;

-import org.eclipse.jface.databinding.swt.WidgetProperties;

-import org.eclipse.jface.databinding.viewers.ViewerProperties;

-import org.eclipse.jface.databinding.viewers.ViewerSupport;

-import org.eclipse.jface.viewers.ArrayContentProvider;

-import org.eclipse.jface.viewers.ComboViewer;

-import org.eclipse.jface.viewers.TreeViewer;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.layout.GridData;

-import org.eclipse.swt.layout.GridLayout;

-import org.eclipse.swt.widgets.Combo;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.swt.widgets.Tree;

-import org.eclipse.swt.widgets.TreeColumn;

-

-/**

- * @since 3.2

- * 

- */

-public class Snippet026AnonymousBeanProperties {

-	private ComboViewer statusViewer;

-	private Combo combo;

-	private Text nameText;

-	private TreeViewer contactViewer;

-

-	public static void main(String[] args) {

-		Display display = new Display();

-		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {

-			public void run() {

-				try {

-					Snippet026AnonymousBeanProperties window = new Snippet026AnonymousBeanProperties();

-					window.open();

-				} catch (Exception e) {

-					e.printStackTrace();

-				}

-			}

-		});

-	}

-

-	private ApplicationModel model;

-	private Shell shell;

-	private Tree tree;

-

-	// Minimal JavaBeans support

-	public static abstract class AbstractModelObject {

-		private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(

-				this);

-

-		public void addPropertyChangeListener(PropertyChangeListener listener) {

-			propertyChangeSupport.addPropertyChangeListener(listener);

-		}

-

-		public void addPropertyChangeListener(String propertyName,

-				PropertyChangeListener listener) {

-			propertyChangeSupport.addPropertyChangeListener(propertyName,

-					listener);

-		}

-

-		public void removePropertyChangeListener(PropertyChangeListener listener) {

-			propertyChangeSupport.removePropertyChangeListener(listener);

-		}

-

-		public void removePropertyChangeListener(String propertyName,

-				PropertyChangeListener listener) {

-			propertyChangeSupport.removePropertyChangeListener(propertyName,

-					listener);

-		}

-

-		protected void firePropertyChange(String propertyName, Object oldValue,

-				Object newValue) {

-			propertyChangeSupport.firePropertyChange(propertyName, oldValue,

-					newValue);

-		}

-	}

-

-	public static class ContactGroup extends AbstractModelObject implements

-			Comparable {

-		private String name;

-		private Set contacts = new TreeSet();

-

-		ContactGroup(String name) {

-			this.name = checkNull(name);

-		}

-

-		private String checkNull(String string) {

-			if (string == null)

-				throw new NullPointerException();

-			return string;

-		}

-

-		public String getName() {

-			return name;

-		}

-

-		public void setName(String name) {

-			firePropertyChange("name", this.name, this.name = checkNull(name));

-		}

-

-		public Set getContacts() {

-			return new TreeSet(contacts);

-		}

-

-		public void addContact(Contact contact) {

-			Set oldValue = getContacts();

-			contacts.add(contact);

-			Set newValue = getContacts();

-			firePropertyChange("contacts", oldValue, newValue);

-		}

-

-		public void removeContact(Contact contact) {

-			Set oldValue = getContacts();

-			contacts.remove(contact);

-			Set newValue = getContacts();

-			firePropertyChange("contacts", oldValue, newValue);

-		}

-

-		public int compareTo(Object o) {

-			ContactGroup that = (ContactGroup) o;

-			return this.name.compareTo(that.name);

-		}

-	}

-

-	public static class Contact extends AbstractModelObject implements

-			Comparable {

-		private String name;

-		private String status;

-

-		private String checkNull(String string) {

-			if (string == null)

-				throw new NullPointerException();

-			return string;

-		}

-

-		public Contact(String name, String status) {

-			this.name = checkNull(name);

-			this.status = checkNull(status);

-		}

-

-		public String getName() {

-			return name;

-		}

-

-		public void setName(String name) {

-			firePropertyChange("name", this.name, this.name = checkNull(name));

-		}

-

-		public String getStatus() {

-			return status;

-		}

-

-		public void setStatus(String status) {

-			firePropertyChange("status", this.status,

-					this.status = checkNull(status));

-		}

-

-		public int compareTo(Object o) {

-			Contact that = (Contact) o;

-			int result = this.name.compareTo(that.name);

-			if (result == 0)

-				result = this.status.compareTo(that.status);

-			return result;

-		}

-	}

-

-	public static class ApplicationModel extends AbstractModelObject {

-		private Set groups = new TreeSet();

-

-		public Set getGroups() {

-			return new TreeSet(groups);

-		}

-

-		public void setGroups(Set groups) {

-			Set oldValue = getGroups();

-			this.groups = new TreeSet(groups);

-			Set newValue = getGroups();

-			firePropertyChange("groups", oldValue, newValue);

-		}

-	}

-

-	/**

-	 * Set property for the "contacts" property of a ContactGroup. Since

-	 * ContactGroup does not have a setContacts() method we have to write our

-	 * own property to apply set changes incrementally through the addContact

-	 * and removeContact methods.

-	 */

-	public static class ContactGroupContactsProperty extends SimpleSetProperty {

-		public Object getElementType() {

-			return Contact.class;

-		}

-

-		protected Set doGetSet(Object source) {

-			if (source == null)

-				return Collections.EMPTY_SET;

-			return ((ContactGroup) source).getContacts();

-		}

-

-		protected void doSetSet(Object source, Set set, SetDiff diff) {

-			ContactGroup group = (ContactGroup) source;

-			for (Iterator it = diff.getRemovals().iterator(); it.hasNext();) {

-				Contact contact = (Contact) it.next();

-				group.removeContact(contact);

-			}

-			for (Iterator it = diff.getAdditions().iterator(); it.hasNext();) {

-				Contact contact = (Contact) it.next();

-				group.addContact(contact);

-			}

-		}

-

-		public INativePropertyListener adaptListener(

-				final ISimplePropertyListener listener) {

-			return new Listener(this, listener);

-		}

-

-		private class Listener extends NativePropertyListener implements

-				PropertyChangeListener {

-			Listener(IProperty property, ISimplePropertyListener listener) {

-				super(property, listener);

-			}

-

-			public void propertyChange(PropertyChangeEvent evt) {

-				fireChange(evt.getSource(), null);

-			}

-

-			protected void doAddTo(Object source) {

-				((ContactGroup) source).addPropertyChangeListener("contacts",

-						this);

-			}

-

-			protected void doRemoveFrom(Object source) {

-				((ContactGroup) source).removePropertyChangeListener(

-						"contacts", this);

-			}

-		}

-	}

-

-	public void open() {

-		model = createDefaultModel();

-

-		final Display display = Display.getDefault();

-		createContents();

-		bindUI();

-		shell.open();

-		shell.layout();

-		while (!shell.isDisposed()) {

-			if (!display.readAndDispatch())

-				display.sleep();

-		}

-	}

-

-	private static final String[] statuses = new String[] { "Online", "Idle",

-			"Busy", "Offline" };

-

-	/**

-	 * @return

-	 */

-	private ApplicationModel createDefaultModel() {

-		ContactGroup swtGroup = new ContactGroup("SWT");

-		swtGroup.addContact(new Contact("Steve Northover", "Busy"));

-		swtGroup.addContact(new Contact("Grant Gayed", "Online"));

-		swtGroup.addContact(new Contact("Veronika Irvine", "Offline"));

-		swtGroup.addContact(new Contact("Mike Wilson", "Online"));

-		swtGroup.addContact(new Contact("Christophe Cornu", "Idle"));

-		swtGroup.addContact(new Contact("Lynne Kues", "Online"));

-		swtGroup.addContact(new Contact("Silenio Quarti", "Idle"));

-

-		ContactGroup jdbGroup = new ContactGroup("JFace Data Binding");

-		jdbGroup.addContact(new Contact("Boris Bokowski", "Online"));

-		jdbGroup.addContact(new Contact("Matthew Hall", "Idle"));

-

-		Set groups = new TreeSet();

-		groups.add(swtGroup);

-		groups.add(jdbGroup);

-		ApplicationModel model = new ApplicationModel();

-		model.setGroups(groups);

-

-		return model;

-	}

-

-	/**

-	 * Create nameMap of the window

-	 */

-	protected void createContents() {

-		shell = new Shell();

-		shell.setSize(379, 393);

-		shell.setText("Snippet026AnonymousBeanProperties");

-		final GridLayout gridLayout = new GridLayout();

-		gridLayout.numColumns = 4;

-		shell.setLayout(gridLayout);

-

-		contactViewer = new TreeViewer(shell, SWT.BORDER);

-		tree = contactViewer.getTree();

-		tree.setHeaderVisible(true);

-		tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 4, 1));

-

-		final TreeColumn nameColumn = new TreeColumn(tree, SWT.NONE);

-		nameColumn.setWidth(163);

-		nameColumn.setText("Name");

-

-		final TreeColumn newColumnTreeColumn = new TreeColumn(tree, SWT.NONE);

-		newColumnTreeColumn.setWidth(100);

-		newColumnTreeColumn.setText("Status");

-

-		final Label nameLabel = new Label(shell, SWT.NONE);

-		nameLabel.setText("Name");

-

-		nameText = new Text(shell, SWT.BORDER);

-		final GridData gd_nameText = new GridData(SWT.FILL, SWT.CENTER, true,

-				false);

-		nameText.setLayoutData(gd_nameText);

-

-		final Label statusLabel = new Label(shell, SWT.NONE);

-		statusLabel.setLayoutData(new GridData());

-		statusLabel.setText("Status");

-

-		statusViewer = new ComboViewer(shell, SWT.READ_ONLY);

-		combo = statusViewer.getCombo();

-		combo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

-	}

-

-	private void bindUI() {

-		ISetProperty treeChildrenProperty = new DelegatingSetProperty() {

-			ISetProperty modelGroups = BeanProperties.set(

-					ApplicationModel.class, "groups");

-			ISetProperty groupContacts = BeanProperties.set(ContactGroup.class,

-					"contacts");

-

-			protected ISetProperty doGetDelegate(Object source) {

-				if (source instanceof ApplicationModel)

-					return modelGroups;

-				if (source instanceof ContactGroup)

-					return groupContacts;

-				return null;

-			}

-		};

-

-		ViewerSupport.bind(contactViewer, model, treeChildrenProperty,

-				BeanProperties.values(new String[] { "name", "status" }));

-

-		contactViewer.expandAll();

-

-		final IObservableValue selection = ViewerProperties.singleSelection()

-				.observe(contactViewer);

-

-		DataBindingContext dbc = new DataBindingContext();

-

-		dbc.bindValue(WidgetProperties.text(SWT.Modify).observe(nameText),

-				BeanProperties.value("name").observeDetail(selection));

-

-		statusViewer.setContentProvider(new ArrayContentProvider());

-		statusViewer.setInput(statuses);

-

-		dbc.bindValue(ViewerProperties.singleSelection().observe(statusViewer),

-				BeanProperties.value("status").observeDetail(selection));

-

-		dbc.bindValue(WidgetProperties.enabled().observe(

-				statusViewer.getControl()), new ComputedValue() {

-			protected Object calculate() {

-				return Boolean.valueOf(selection.getValue() instanceof Contact);

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/MultiTrigger1.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/MultiTrigger1.java
deleted file mode 100644
index 7ea5909..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/MultiTrigger1.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.samples.triggers;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class MultiTrigger1 {

-

-	public static void main(String[] args) {

-

-		URL url = MultiTrigger1.class.getResource(MultiTrigger1.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/MultiTrigger1.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/MultiTrigger1.xwt
deleted file mode 100644
index 350fd10..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/MultiTrigger1.xwt
+++ /dev/null
@@ -1,27 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    x:Class="org.eclipse.xwt.tests.xaml.Name">

-	<Composite.layout>

-		<GridLayout numColumns="1"/>

-	</Composite.layout>

-	

-   <Button Name="button1" x:Style="CHECK" text="Condition 1"/>

-   <Button Name="button2" x:Style="CHECK" text="Condition 2"/>

-   <Label Name="messageLabel">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-   </Label>

-   

-   <Composite.triggers>

-      <MultiTrigger>

-          <MultiTrigger.conditions>

-              <Condition property="selection" value="True" sourceName="button1" />

-              <Condition property="selection" value="True" sourceName="button2" />

-          </MultiTrigger.conditions>

-          <Setter property="text" value="OK" targetName="messageLabel" />

-      </MultiTrigger>

-   </Composite.triggers>

-

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger1.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger1.java
deleted file mode 100644
index d59a207..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger1.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.samples.triggers;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Trigger1 {

-

-	public static void main(String[] args) {

-

-		URL url = Trigger1.class.getResource(Trigger1.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger1.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger1.xwt
deleted file mode 100644
index 2021279..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger1.xwt
+++ /dev/null
@@ -1,15 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    x:Class="org.eclipse.xwt.tests.xaml.Name">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-<Button x:Style="CHECK" text="Unselected">

-  <Button.triggers>

-   <Trigger property="Selection" value="true">

-     <Setter property="Text" value="Selected"/> 

-	</Trigger>

-  </Button.triggers>

-</Button>

-

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger2.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger2.java
deleted file mode 100644
index 8d69513..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger2.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.samples.triggers;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Trigger2 {

-

-	public static void main(String[] args) {

-

-		URL url = Trigger2.class.getResource(Trigger2.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger2.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger2.xwt
deleted file mode 100644
index 63121b9..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger2.xwt
+++ /dev/null
@@ -1,16 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    x:Class="org.eclipse.xwt.tests.xaml.Name">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-<Button Name="Button1" x:Style="CHECK" text="Unselected"/>

-<Button x:Style="CHECK" text="Button State">

-  <Button.triggers>

-   <Trigger property="selection" value="true">

-     <Setter property="Text" value="selected" targetName="Button1"/> 

-	</Trigger>

-  </Button.triggers>

-</Button>

-

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger3.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger3.java
deleted file mode 100644
index 6dcf223..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger3.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.samples.triggers;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Trigger3 {

-

-	public static void main(String[] args) {

-

-		URL url = Trigger3.class.getResource(Trigger3.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger3.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger3.xwt
deleted file mode 100644
index 4cc0fc7..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger3.xwt
+++ /dev/null
@@ -1,17 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    x:Class="org.eclipse.xwt.tests.xaml.Name">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-<Button Name="Button1" x:Style="CHECK" text="Unselected"/>

-<Button x:Style="CHECK" text="Button State">

-  <Button.triggers>

-   <Trigger property="selection" value="true">

-     <Setter property="Text" value="selected" targetName="Button1"/> 

-     <Setter property="selection" value="true" targetName="Button1"/> 

-	</Trigger>

-  </Button.triggers>

-</Button>

-

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/Activator.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/Activator.java
deleted file mode 100644
index 8363615..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/Activator.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *     Erdal Karaca - removed dependency on org.eclipse.ui

- *******************************************************************************/

-package org.eclipse.xwt.tests;

-

-import org.osgi.framework.BundleActivator;

-import org.osgi.framework.BundleContext;

-

-/**

- * The activator class controls the plug-in life cycle

- */

-public class Activator implements BundleActivator {

-

-	// The plug-in ID

-	public static final String PLUGIN_ID = "org.eclipse.e4.xw.tests";

-

-	// The shared instance

-	private static Activator plugin;

-

-	/**

-	 * The constructor

-	 */

-	public Activator() {

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext

-	 * )

-	 */

-	public void start(BundleContext context) throws Exception {

-		plugin = this;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext

-	 * )

-	 */

-	public void stop(BundleContext context) throws Exception {

-		plugin = null;

-	}

-

-	/**

-	 * Returns the shared instance

-	 * 

-	 * @return the shared instance

-	 */

-	public static Activator getDefault() {

-		return plugin;

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/BaseBean.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/BaseBean.java
deleted file mode 100644
index f35f6e3..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/BaseBean.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-/**

- *

- */

-package org.eclipse.xwt.tests;

-

-import java.beans.PropertyChangeListener;

-import java.beans.PropertyChangeSupport;

-

-/**

- * A Base bean that implements the JavaBean change support

- *

- * @author hceylan

- *

- */

-public class BaseBean {

-

-	protected final PropertyChangeSupport changeSupport;

-

-	/**

-	 *

-	 */

-	public BaseBean() {

-		super();

-

-		this.changeSupport = new PropertyChangeSupport(this);

-	}

-

-	/**

-	 * Adds the listener for the property with the name propertyName

-	 *

-	 * @param propertyName

-	 * @param listener

-	 */

-	public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {

-		this.changeSupport.addPropertyChangeListener(propertyName, listener);

-	}

-

-	/**

-	 * Removes the listener for the property with the name propertyName

-	 *

-	 * @param propertyName

-	 * @param listener

-	 */

-	public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) {

-		this.changeSupport.removePropertyChangeListener(propertyName, listener);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/HelloWorld.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/HelloWorld.java
deleted file mode 100644
index fb82360..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/HelloWorld.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class HelloWorld {

-	public static void main(String[] args) {

-		URL url = HelloWorld.class.getResource(HelloWorld.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/HelloWorld.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/HelloWorld.xwt
deleted file mode 100644
index a9a85b3..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/HelloWorld.xwt
+++ /dev/null
@@ -1,6 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation">

-	<Composite.layout>

-		<GridLayout numColumns="2" />

-	</Composite.layout>

-	<Text background="SWT.COLOR_BLUE" />

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/XWTTestCase.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/XWTTestCase.java
deleted file mode 100644
index 55e1cb4..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/XWTTestCase.java
+++ /dev/null
@@ -1,382 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests;

-

-import java.lang.reflect.Field;

-import java.lang.reflect.Method;

-import java.net.URL;

-import java.util.HashMap;

-import java.util.Map;

-

-import junit.framework.TestCase;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.graphics.Point;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.swt.widgets.Widget;

-import org.eclipse.xwt.IUIResource;

-import org.eclipse.xwt.IXWTLoader;

-import org.eclipse.xwt.XWT;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public abstract class XWTTestCase extends TestCase {

-	public Control root;

-	static boolean simulateMThreading = false;

-

-	static {

-		if (simulateMThreading) {			

-			Thread thread = new Thread() {

-				@Override

-				public void run() {

-					Display.getDefault();

-				}

-			};

-			thread.start();

-			

-			try {

-				thread.join();

-			} catch (Exception e) {

-				e.printStackTrace();

-			}

-		}

-		clearnUpDisplay();

-	}

-

-	public static void clearnUpDisplay() {

-		try {

-			Field displaysField = Display.class.getDeclaredField("Displays");

-			if (displaysField != null) {

-				displaysField.setAccessible(true);

-				Display[] displays = (Display[]) displaysField.get(null);

-				if (displays != null) {

-					for(int i = 0; i<displays.length; i++ ) {

-						displays[i] = null;

-					}

-				}

-			}

-			Field field = Display.class.getDeclaredField("Default");

-			if (field != null) {

-				field.setAccessible(true);

-				Display defaultDisplay = (Display) field.get(null);

-				if (defaultDisplay != null) {

-					field.set(null, null);

-				}

-			}

-		} catch (Exception e) {

-		}		

-	}

-	

-	protected void runTest(URL url, Runnable... checkActions) {

-		runTest(url, new HashMap<String, Object>(), checkActions);

-	}

-

-	protected void runTest(IUIResource pattern, Runnable... checkActions) {

-		runTest(pattern, new HashMap<String, Object>(), checkActions);

-	}

-

-	protected void runTest(URL url, Object dataContext,

-			Runnable... checkActions) {

-		HashMap<String, Object> options = new HashMap<String, Object>();

-		options.put(IXWTLoader.DATACONTEXT_PROPERTY, dataContext);

-		runTest(url, options, checkActions);

-	}

-

-	protected void runTest(IUIResource pattern, Object dataContext,

-			Runnable... checkActions) {

-		HashMap<String, Object> options = new HashMap<String, Object>();

-		options.put(IXWTLoader.DATACONTEXT_PROPERTY, dataContext);

-		runTest(pattern, options, checkActions);

-	}

-

-	protected void runTest(final URL url, final Map<String, Object> options,

-			final Runnable... checkActions) {

-		XWT.runOnUIThread(new Runnable() {

-			public void run() {

-				doRunTest(url, options, checkActions);

-			}

-		});

-	}

-

-	private void doRunTest(final URL url, Map<String, Object> options,

-			Runnable... checkActions) {

-		ClassLoader classLoader = Thread.currentThread()

-				.getContextClassLoader();

-		try {

-			Thread.currentThread().setContextClassLoader(

-					this.getClass().getClassLoader());

-			Object element = XWT.loadWithOptions(url, options);

-			assertTrue(element instanceof Control);

-			assertNotNull(element);

-			root = (Control) element;

-			Shell shell = root.getShell();

-			shell.open();

-			/**

-			 * The shells of the tests failed are not cleanup properly. This is

-			 * a minimalistic solution to clean up the desktop...

-			 */

-			Display display = shell.getDisplay();

-			try {

-				for (Runnable runnable : checkActions) {

-					while (display.readAndDispatch())

-						;

-					display.syncExec(runnable);

-					while (display.readAndDispatch())

-						;

-					while (display.readAndDispatch())

-						;

-				}

-				assertFalse(root.isDisposed());

-			} finally {

-				try {

-					shell.close();

-				} catch (Exception e) {

-					e.printStackTrace();

-				}

-			}

-			while (display.readAndDispatch())

-				;

-		} catch (Exception e) {

-			e.printStackTrace();

-			fail(e.getMessage());

-		} finally {

-			Thread.currentThread().setContextClassLoader(classLoader);

-		}

-	}

-

-	protected void runTest(final IUIResource pattern,

-			final Map<String, Object> options, final Runnable... checkActions) {

-		XWT.runOnUIThread(new Runnable() {

-			public void run() {

-				doRunTest(pattern, options, checkActions);

-			}

-		});

-	}

-

-	private void doRunTest(final IUIResource pattern,

-			Map<String, Object> options, Runnable... checkActions) {

-		ClassLoader classLoader = Thread.currentThread()

-				.getContextClassLoader();

-		try {

-			Thread.currentThread().setContextClassLoader(

-					this.getClass().getClassLoader());

-			Object widget = XWT.loadWithOptions(pattern, options);

-			assertTrue(widget instanceof Control);

-			assertNotNull(widget);

-			root = (Control) widget;

-			Shell shell = root.getShell();

-			shell.open();

-			/**

-			 * The shells of the tests failed are not cleanup properly. This is

-			 * a minimalistic solution to clean up the desktop...

-			 */

-			Display display = shell.getDisplay();

-			try {

-				for (Runnable runnable : checkActions) {

-					while (display.readAndDispatch())

-						;

-					display.syncExec(runnable);

-					while (display.readAndDispatch())

-						;

-					while (display.readAndDispatch())

-						;

-				}

-				assertFalse(root.isDisposed());

-			} finally {

-				try {

-					shell.close();

-				} catch (Exception e) {

-					e.printStackTrace();

-				}

-			}

-			while (display.readAndDispatch())

-				;

-		} catch (Exception e) {

-			e.printStackTrace();

-			fail(e.getMessage());

-		} finally {

-			Thread.currentThread().setContextClassLoader(classLoader);

-		}

-	}

-

-	protected void runDebugTest(final URL url, Runnable prepareAction,

-			Runnable checkAction1) {

-		ClassLoader classLoader = Thread.currentThread()

-				.getContextClassLoader();

-		try {

-			Thread.currentThread().setContextClassLoader(

-					this.getClass().getClassLoader());

-			Object widget = XWT.load(url);

-			assertTrue(widget instanceof Control);

-			assertNotNull(widget);

-			root = (Control) widget;

-			assertNotNull(root);

-			Shell shell = root.getShell();

-			shell.open();

-			Display display = shell.getDisplay();

-			if (prepareAction != null) {

-				display.asyncExec(prepareAction);

-			}

-			while (!display.isDisposed())

-				display.readAndDispatch();

-		} catch (Exception e) {

-			e.printStackTrace();

-			fail(e.getMessage());

-		} finally {

-			Thread.currentThread().setContextClassLoader(classLoader);

-		}

-	}

-

-	protected void runDebugTest(final IUIResource pattern,

-			Runnable prepareAction, Runnable checkAction1) {

-		ClassLoader classLoader = Thread.currentThread()

-				.getContextClassLoader();

-		try {

-			Thread.currentThread().setContextClassLoader(

-					this.getClass().getClassLoader());

-			Object widget = XWT.load(pattern);

-			assertTrue(widget instanceof Control);

-			assertNotNull(widget);

-			root = (Control) widget;

-			assertNotNull(root);

-			Shell shell = root.getShell();

-			shell.open();

-			Display display = shell.getDisplay();

-			if (prepareAction != null) {

-				display.asyncExec(prepareAction);

-			}

-			while (!display.isDisposed())

-				display.readAndDispatch();

-		} catch (Exception e) {

-			e.printStackTrace();

-			fail(e.getMessage());

-		} finally {

-			Thread.currentThread().setContextClassLoader(classLoader);

-		}

-	}

-

-	public void selectButton(Button button) {

-		selectButton(button, true);

-	}

-

-	protected void checkVisibility(String name, Class<? extends Control> type) {

-		Object element = XWT.findElementByName(root, name);

-		if (element == null) {

-			fail(name + " is not found.");

-		}

-		assertTrue(type.isInstance(element));

-		Control section = (Control) element;

-		assertTrue(section.getVisible());

-	}

-

-	protected void checkChildren(String name, String path, int number) {

-		Object element = XWT.findElementByName(root, name);

-		if (path != null) {

-			try {

-				Method method = element.getClass().getMethod("get" + path);

-				if (method == null) {

-					fail("Property " + path + " is not found in "

-							+ element.getClass().getName());

-				}

-				element = method.invoke(element);

-				assertTrue(Composite.class.isInstance(element));

-			} catch (Exception e) {

-				e.printStackTrace();

-				fail(e.getMessage());

-			}

-		}

-		assertTrue(Composite.class.isInstance(element));

-		Composite composite = (Composite) element;

-		assertEquals(composite.getChildren().length, number);

-	}

-

-	protected void checkChildren(String name, int number) {

-		checkChildren(name, null, number);

-	}

-

-	protected void selectButton(Button button, boolean selection) {

-		Point size = button.getSize();

-		Display display = button.getDisplay();

-		Event upEvent = new Event();

-		upEvent.widget = button;

-		upEvent.button = 1;

-		upEvent.type = SWT.MouseUp;

-		upEvent.x = size.x / 2;

-		upEvent.y = size.y / 2;

-		displayPost(display, upEvent);

-

-		button.setSelection(selection);

-		button.notifyListeners(SWT.Selection, upEvent);

-	}

-

-	protected void setFocusOut(Widget widget) {

-		setFocus(widget, false);

-	}

-

-	protected void setFocusIn(Widget widget) {

-		setFocus(widget, true);

-	}

-

-	private void setFocus(Widget widget, boolean focus) {

-		Display display = widget.getDisplay();

-		Event upEvent = new Event();

-		upEvent.widget = widget;

-		upEvent.button = 1;

-		upEvent.type = SWT.MouseUp;

-		displayPost(display, upEvent);

-

-		if (focus) {

-			widget.notifyListeners(SWT.FocusIn, upEvent);

-		} else {

-			widget.notifyListeners(SWT.FocusOut, upEvent);

-		}

-	}

-

-	protected void assertText(String name, String value) {

-		Object element = XWT.findElementByName(root, name);

-		assertTrue(element instanceof Text);

-		Text text = (Text) element;

-		assertEquals(value, text.getText());

-	}

-

-	protected void setText(String name, String value) {

-		Object element = XWT.findElementByName(root, name);

-		assertTrue(element instanceof Text);

-		Text text = (Text) element;

-		text.setText(value);

-	}

-

-	protected void assertEqualsArray(Object[] source, Object[] target) {

-		assertEquals(source.length, target.length);

-		for (int i = 0; i < source.length; i++) {

-			assertEquals(source[i], target[i]);

-		}

-	}

-

-	private void displayPost(Display display, Event event) {

-		if (SWT.getPlatform() != "rap") {

-			try {

-				Method m = Display.class.getDeclaredMethod("post", Event.class);

-				m.invoke(display, event);

-			} catch (Exception e) {

-				assert false;

-			}

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/XwtTestSuite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/XwtTestSuite.java
deleted file mode 100644
index 9cc4359..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/XwtTestSuite.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2013 Soyatec (http://www.soyatec.com), CEA LIST, and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *     CEA LIST - add regression tests for URL handling in XML parsing

- *******************************************************************************/

-package org.eclipse.xwt.tests;

-

-import junit.framework.Test;

-import junit.framework.TestSuite;

-

-import org.eclipse.xwt.tests.animation.AnimationSuite;

-import org.eclipse.xwt.tests.annotation.AnnotationTests;

-import org.eclipse.xwt.tests.attachedproperty.AttachedPropertyTests;

-import org.eclipse.xwt.tests.clr.CLRTestSuite;

-import org.eclipse.xwt.tests.clrfactory.CLRFactoryTestSuite;

-import org.eclipse.xwt.tests.controls.ControlsTestSuite;

-import org.eclipse.xwt.tests.controls.layout.LayoutTestSuite;

-import org.eclipse.xwt.tests.controls.uiresource.UIResourceTestSuite;

-import org.eclipse.xwt.tests.databinding.BindingTestSuite;

-import org.eclipse.xwt.tests.events.EventsTestSuite;

-import org.eclipse.xwt.tests.forms.FormsTestSuite;

-import org.eclipse.xwt.tests.internal.xml.XMLTestSuite;

-import org.eclipse.xwt.tests.jface.JFaceTestSuite;

-import org.eclipse.xwt.tests.metaclass.Metaclass_Tests;

-import org.eclipse.xwt.tests.name.NameTestSuite;

-import org.eclipse.xwt.tests.namespace.handler.NamespacehandlerTestSuite;

-import org.eclipse.xwt.tests.resources.ResourcesTestSuite;

-import org.eclipse.xwt.tests.resourcesdictionary.ResourcesDictionaryTestSuite;

-import org.eclipse.xwt.tests.snippet017.Snippet017TestSuite;

-import org.eclipse.xwt.tests.snippet019.Snippet019TestSuite;

-import org.eclipse.xwt.tests.swt.SWTTestSuite;

-import org.eclipse.xwt.tests.threading.ThreadingSuite;

-import org.eclipse.xwt.tests.trigger.TriggerTestSuite;

-import org.eclipse.xwt.tests.xaml.BindingExpressionTestSuite;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class XwtTestSuite extends TestSuite {

-	public static final Test suite() {

-		return new XwtTestSuite();

-	}

-

-	/**

-	 * The execution of the tests must be started from simple to complex in

-	 * order.

-	 */

-	public XwtTestSuite() {

-		// XAML

-		addXAMLTests();

-

-		// Metaclass

-		addTest(new TestSuite(Metaclass_Tests.class));

-

-		// XWT

-		addXWTTests();

-

-		// internal XML parsing

-		addInternalXMLTests();

-

-		// annotations

-		addTest(new TestSuite(AnnotationTests.class));

-

-		// widgets SWT

-		addControlsTests();

-

-		addUserControlTests();

-

-		addKeyBindingTests();

-

-		// widgets JFace

-		addJFaceTests();

-

-		// i18n

-		addI18NTests();

-

-		// events

-		addEventTests();

-

-		// data binding

-		addDataBindingTests();

-

-		// Presentation tests

-		addPresentationTests();

-

-		// Style provider

-		addStyleTests();

-

-		// triggers

-		addTriggerTests();

-

-		// triggers

-		addSnippetTests();

-

-		// triggers

-		addFormsTests();

-

-		// triggers

-		addAnimationTests();

-		

-		// Must be done at last

-		addTest(ThreadingSuite.suite());

-	}

-

-	protected void addXAMLTests() {

-		addTest(NameTestSuite.suite());

-		addTest(ResourcesTestSuite.suite());

-		addTest(ResourcesDictionaryTestSuite.suite());

-		addTest(BindingExpressionTestSuite.suite());

-	}

-

-	protected void addXWTTests() {

-		addTest(CLRTestSuite.suite());

-		addTest(CLRFactoryTestSuite.suite());

-		addTest(new TestSuite(AttachedPropertyTests.class));

-	}

-

-	protected void addControlsTests() {

-		addTest(ControlsTestSuite.suite());

-		addTest(LayoutTestSuite.suite());

-		addTest(SWTTestSuite.suite());

-		addTest(UIResourceTestSuite.suite());

-	}

-

-	protected void addUserControlTests() {

-	}

-

-	protected void addKeyBindingTests() {

-	}

-

-	protected void addPresentationTests() {

-	}

-

-	protected void addJFaceTests() {

-		addTest(JFaceTestSuite.suite());

-	}

-

-	protected void addEventTests() {

-		addTest(EventsTestSuite.suite());

-	}

-

-	protected void addDataBindingTests() {

-		addTest(BindingTestSuite.suite());

-	}

-

-	protected void addI18NTests() {

-	}

-

-	protected void addStyleTests() {

-	}

-

-	protected void addSnippetTests() {

-		addTest(Snippet017TestSuite.suite());

-		addTest(Snippet019TestSuite.suite());

-	}

-

-	protected void addFormsTests() {

-		addTest(FormsTestSuite.suite());

-	}

-

-	protected void addAnimationTests() {

-		addTest(AnimationSuite.suite());

-	}

-

-	protected void addTriggerTests() {

-		addTest(TriggerTestSuite.suite());

-	}

-

-	protected void addCustomizationTests() {

-		addTest(NamespacehandlerTestSuite.suite());

-	}

-	

-	protected void addInternalXMLTests() {

-		addTest(XMLTestSuite.suite());

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/AnimationSuite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/AnimationSuite.java
deleted file mode 100644
index f52b297..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/AnimationSuite.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.animation;

-

-import org.eclipse.xwt.tests.animation.repeatBehavior.RepeatBehaviorTests;

-

-import junit.framework.Test;

-import junit.framework.TestSuite;

-

-public class AnimationSuite extends TestSuite {

-	public static final Test suite() {

-		return new AnimationSuite();

-	}

-

-	public AnimationSuite() {

-		addTest(new TestSuite(AnimationTests.class));

-		addTest(new TestSuite(RepeatBehaviorTests.class));

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/AnimationTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/AnimationTests.java
deleted file mode 100644
index 2c07ee1..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/AnimationTests.java
+++ /dev/null
@@ -1,322 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.animation;

-

-import java.net.URL;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.graphics.Color;

-import org.eclipse.swt.graphics.Point;

-import org.eclipse.swt.graphics.Rectangle;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class AnimationTests extends XWTTestCase {

-	protected Color initialColor;

-	protected int initialInt;

-	protected Point initialLocation;

-	protected Point initialSize;

-	protected Rectangle initialBounds;

-

-	public void test_Color_Background() throws Exception {

-		URL url = Color_Background_Composite.class

-				.getResource(Color_Background_Composite.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				try {

-					Object element = XWT.findElementByName(root, "startButton");

-					assertTrue(element instanceof Button);

-					Button button = (Button)element;

-					selectButton(button);

-					

-					element = XWT.findElementByName(root, "labelTarget");

-					assertTrue(element instanceof Label);

-					Label label = (Label)element;

-					initialColor = label.getBackground();

-				} catch (Exception e) {

-					fail();

-				}

-			}

-		},

-		new Runnable() {

-			public void run() {

-				try {

-					Thread.currentThread().sleep(3000);

-				} catch (InterruptedException e) {

-					// TODO Auto-generated catch block

-					e.printStackTrace();

-				}

-			}

-		},

-		new Runnable() {

-			public void run() {

-				try {

-					Object element = XWT.findElementByName(root, "labelTarget");

-					assertTrue(element instanceof Label);

-					Label label = (Label)element;

-					Color color = label.getBackground();

-					assertNotSame(initialColor, color);

-				} catch (Exception e) {

-					fail();

-				}

-			}

-		}		

-		);

-	}

-	

-	public void test_Color_Foreground() throws Exception {

-		URL url = Color_Foreground_Composite.class

-				.getResource(Color_Foreground_Composite.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				try {

-					Object element = XWT.findElementByName(root, "startButton");

-					assertTrue(element instanceof Button);

-					Button button = (Button)element;

-					selectButton(button);

-					

-					element = XWT.findElementByName(root, "labelTarget");

-					assertTrue(element instanceof Label);

-					Label label = (Label)element;

-					initialColor = label.getForeground();

-				} catch (Exception e) {

-					fail();

-				}

-			}

-		},

-		new Runnable() {

-			public void run() {

-				try {

-					Thread.sleep(3000);

-				} catch (InterruptedException e) {

-					// TODO Auto-generated catch block

-					e.printStackTrace();

-				}

-			}

-		},

-		new Runnable() {

-			public void run() {

-				try {

-					Object element = XWT.findElementByName(root, "labelTarget");

-					assertTrue(element instanceof Label);

-					Label label = (Label)element;

-					Color color = label.getForeground();

-					assertNotSame(initialColor, color);

-				} catch (Exception e) {

-					fail();

-				}

-			}

-		}		

-		);

-	}

-	

-	public void test_Int_Alpha() throws Exception {

-		URL url = Int_Alpha_Shell.class

-				.getResource(Int_Alpha_Shell.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				try {

-					Object element = XWT.findElementByName(root, "startButton");

-					assertTrue(element instanceof Button);

-					Button button = (Button)element;

-					selectButton(button);

-					

-					element = XWT.findElementByName(root, "window");

-					assertTrue(element instanceof Shell);

-					Shell shell = (Shell)element;

-					initialInt = shell.getAlpha();

-				} catch (Exception e) {

-					fail();

-				}

-			}

-		},

-		new Runnable() {

-			public void run() {

-				try {

-					Thread.sleep(1000);

-				} catch (InterruptedException e) {

-					// TODO Auto-generated catch block

-					e.printStackTrace();

-				}

-			}

-		},

-		new Runnable() {

-			public void run() {

-				try {

-					Object element = XWT.findElementByName(root, "window");

-					assertTrue(element instanceof Shell);

-					Shell shell = (Shell)element;

-					int alpha = shell.getAlpha();

-					if (!"gtk".equals(SWT.getPlatform())) {

-						assertTrue(alpha != initialInt);

-					}	

-				} catch (Exception e) {

-					fail();

-				}

-			}

-		}		

-		);

-	}

-	

-	public void test_Point_Location_Shell() throws Exception {

-		URL url = Point_Location_Shell.class

-				.getResource(Point_Location_Shell.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				try {

-					Object element = XWT.findElementByName(root, "startButton");

-					assertTrue(element instanceof Button);

-					Button button = (Button)element;

-					selectButton(button);

-					

-					element = XWT.findElementByName(root, "window");

-					assertTrue(element instanceof Shell);

-					Shell shell = (Shell)element;

-					initialLocation = shell.getLocation();

-				} catch (Exception e) {

-					fail();

-				}

-			}

-		},

-		new Runnable() {

-			public void run() {

-				try {

-					Thread.sleep(1000);

-				} catch (InterruptedException e) {

-					// TODO Auto-generated catch block

-					e.printStackTrace();

-				}

-			}

-		},

-		new Runnable() {

-			public void run() {

-				try {

-					Object element = XWT.findElementByName(root, "window");

-					assertTrue(element instanceof Shell);

-					Shell shell = (Shell)element;

-					Point location = shell.getLocation();

-					assertNotSame(initialLocation, location);

-				} catch (Exception e) {

-					fail();

-				}

-			}

-		}		

-		);

-	}

-	

-	public void test_Point_Size_Shell() throws Exception {

-		URL url = Point_Size_Shell.class

-				.getResource(Point_Size_Shell.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				try {

-					Object element = XWT.findElementByName(root, "startButton");

-					assertTrue(element instanceof Button);

-					Button button = (Button)element;

-					selectButton(button);

-					

-					element = XWT.findElementByName(root, "window");

-					assertTrue(element instanceof Shell);

-					Shell shell = (Shell)element;

-					initialSize = shell.getSize();

-				} catch (Exception e) {

-					fail();

-				}

-			}

-		},

-		new Runnable() {

-			public void run() {

-				try {

-					Thread.sleep(1000);

-				} catch (InterruptedException e) {

-					// TODO Auto-generated catch block

-					e.printStackTrace();

-				}

-			}

-		},

-		new Runnable() {

-			public void run() {

-				try {

-					Object element = XWT.findElementByName(root, "window");

-					assertTrue(element instanceof Shell);

-					Shell shell = (Shell)element;

-					Point size = shell.getSize();

-					assertNotSame(initialSize, size);

-				} catch (Exception e) {

-					fail();

-				}

-			}

-		}		

-		);

-	}

-	

-	public void test_Rectangle_Bounds_Shell() throws Exception {

-		URL url = Rectangle_Bounds_Shell.class

-				.getResource(Rectangle_Bounds_Shell.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				try {

-					Object element = XWT.findElementByName(root, "startButton");

-					assertTrue(element instanceof Button);

-					Button button = (Button)element;

-					selectButton(button);

-					

-					element = XWT.findElementByName(root, "window");

-					assertTrue(element instanceof Shell);

-					Shell shell = (Shell)element;

-					initialBounds = shell.getBounds();

-				} catch (Exception e) {

-					fail();

-				}

-			}

-		},

-		new Runnable() {

-			public void run() {

-				try {

-					Thread.sleep(1000);

-				} catch (InterruptedException e) {

-					// TODO Auto-generated catch block

-					e.printStackTrace();

-				}

-			}

-		},

-		new Runnable() {

-			public void run() {

-				try {

-					Object element = XWT.findElementByName(root, "window");

-					assertTrue(element instanceof Shell);

-					Shell shell = (Shell)element;

-					Rectangle rectangle = shell.getBounds();

-					assertNotSame(initialBounds, rectangle);

-				} catch (Exception e) {

-					fail();

-				}

-			}

-		}		

-		);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Color_Background_Composite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Color_Background_Composite.java
deleted file mode 100644
index b4fbb08..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Color_Background_Composite.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.animation;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Color_Background_Composite {	

-	public static void main(String[] args) {

-

-		URL url = Color_Background_Composite.class.getResource(Color_Background_Composite.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Color_Background_Composite.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Color_Background_Composite.xwt
deleted file mode 100644
index 7ef8576..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Color_Background_Composite.xwt
+++ /dev/null
@@ -1,33 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt">

-	<Composite.layout>

-		<GridLayout numColumns="1"/>

-	</Composite.layout>	

-	<Label name="labelTarget" text="Move mouse in button to see the animation"/>

-	<Button name="startButton" text="Start"/>

-	<Button name="stopButton" text="Stop"/>

-	<Button name="pauseButton" text="Pause"/>

-	<Button name="resumeButton" text="Resume"/>

-	<Composite.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent" sourceName="startButton">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <ColorAnimation 

-	             targetName="labelTarget" 

-	             targetProperty="background" 

-	               duration="0:0:8" from="red" to="blue" />

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-	    <EventTrigger routedEvent="SelectionEvent" sourceName="stopButton">

-		    <StopStoryboard BeginStoryboardName="MyBeginStoryboard" />  

-	    </EventTrigger>

-	    <EventTrigger routedEvent="SelectionEvent" sourceName="pauseButton">

-		    <PauseStoryboard BeginStoryboardName="MyBeginStoryboard" />  

-	    </EventTrigger>

-	    <EventTrigger routedEvent="SelectionEvent" sourceName="resumeButton">

-		    <ResumeStoryboard BeginStoryboardName="MyBeginStoryboard" />  

-	    </EventTrigger>

-	</Composite.triggers>

-</Composite>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Color_Foreground_Composite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Color_Foreground_Composite.java
deleted file mode 100644
index 237bd03..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Color_Foreground_Composite.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.animation;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Color_Foreground_Composite {	

-	public static void main(String[] args) {

-

-		URL url = Color_Foreground_Composite.class.getResource(Color_Foreground_Composite.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Color_Foreground_Composite.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Color_Foreground_Composite.xwt
deleted file mode 100644
index 92351d2..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Color_Foreground_Composite.xwt
+++ /dev/null
@@ -1,33 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt">

-	<Composite.layout>

-		<GridLayout numColumns="1"/>

-	</Composite.layout>	

-	<Label name="labelTarget" text="Move mouse in button to see the animation"/>

-	<Button name="startButton" text="Start"/>

-	<Button name="stopButton" text="Stop"/>

-	<Button name="pauseButton" text="Pause"/>

-	<Button name="resumeButton" text="Resume"/>

-	<Composite.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent" sourceName="startButton">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <ColorAnimation 

-	             targetName="labelTarget" 

-	             targetProperty="foreground" 

-	               duration="0:0:8" from="red" to="blue" />

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-	    <EventTrigger routedEvent="SelectionEvent" sourceName="stopButton">

-		    <StopStoryboard BeginStoryboardName="MyBeginStoryboard" />  

-	    </EventTrigger>

-	    <EventTrigger routedEvent="SelectionEvent" sourceName="pauseButton">

-		    <PauseStoryboard BeginStoryboardName="MyBeginStoryboard" />  

-	    </EventTrigger>

-	    <EventTrigger routedEvent="SelectionEvent" sourceName="resumeButton">

-		    <ResumeStoryboard BeginStoryboardName="MyBeginStoryboard" />  

-	    </EventTrigger>

-	</Composite.triggers>

-</Composite>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Foreground.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Foreground.java
deleted file mode 100644
index 350b0a7..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Foreground.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.animation;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Foreground {	

-	public static void main(String[] args) {

-

-		URL url = Foreground.class.getResource(Foreground.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Foreground.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Foreground.xwt
deleted file mode 100644
index a483f4b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Foreground.xwt
+++ /dev/null
@@ -1,21 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	x:Class="org.eclipse.xwt.tests.annotation.ButtonHandler_rename">

-	<Composite.layout>

-		<GridLayout numColumns="1"/>

-	</Composite.layout>	

-	<Button name="labelTarget" x:style="SWT.RADIO" text="Move mouse in button to see the animation">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <ColorAnimation 

-	             targetProperty="foreground" 

-	               duration="0:0:1" from="red" to="blue" />

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-</Composite>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Int_Alpha_Shell.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Int_Alpha_Shell.java
deleted file mode 100644
index dcfd771..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Int_Alpha_Shell.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.animation;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Int_Alpha_Shell {	

-	public static void main(String[] args) {

-

-		URL url = Int_Alpha_Shell.class.getResource(Int_Alpha_Shell.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Int_Alpha_Shell.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Int_Alpha_Shell.xwt
deleted file mode 100644
index eb4b2a0..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Int_Alpha_Shell.xwt
+++ /dev/null
@@ -1,24 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	name="window"

-	>

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>	

-	<Label name="labelTarget" text="Int the animation"/>

-	<Button name="startButton" text="Start Animation">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <IntAnimation

-	             targetName="window"

-	             targetProperty="alpha" 

-	               duration="0:0:3" from="0" to="255" />

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Point_Location_Shell.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Point_Location_Shell.java
deleted file mode 100644
index 00fb597..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Point_Location_Shell.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.animation;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Point_Location_Shell {	

-	public static void main(String[] args) {

-

-		URL url = Point_Location_Shell.class.getResource(Point_Location_Shell.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Point_Location_Shell.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Point_Location_Shell.xwt
deleted file mode 100644
index 0c31497..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Point_Location_Shell.xwt
+++ /dev/null
@@ -1,24 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	name="window"

-	>

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>	

-	<Label name="labelTarget" text="Int the animation"/>

-	<Button name="startButton" text="Start Animation">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="10, 10" to="600, 600" />

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Point_Size_Shell.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Point_Size_Shell.java
deleted file mode 100644
index f320952..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Point_Size_Shell.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.animation;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Point_Size_Shell {	

-	public static void main(String[] args) {

-

-		URL url = Point_Size_Shell.class.getResource(Point_Size_Shell.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Point_Size_Shell.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Point_Size_Shell.xwt
deleted file mode 100644
index bd023b1..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Point_Size_Shell.xwt
+++ /dev/null
@@ -1,24 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	name="window"

-	>

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>	

-	<Label name="labelTarget" text="Int the animation"/>

-	<Button name="startButton" text="Start Animation">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="size" 

-	             duration="0:0:6" from="150, 150" to="600, 600" />

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Rectangle_Bounds_Shell.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Rectangle_Bounds_Shell.java
deleted file mode 100644
index 855eb67..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Rectangle_Bounds_Shell.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.animation;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Rectangle_Bounds_Shell {	

-	public static void main(String[] args) {

-

-		URL url = Rectangle_Bounds_Shell.class.getResource(Rectangle_Bounds_Shell.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Rectangle_Bounds_Shell.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Rectangle_Bounds_Shell.xwt
deleted file mode 100644
index 15be13d..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Rectangle_Bounds_Shell.xwt
+++ /dev/null
@@ -1,24 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	name="window"

-	>

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>	

-	<Label name="labelTarget" text="Int the animation"/>

-	<Button name="startButton" text="Start Animation">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <RectangleAnimation

-	             targetName="window"

-	             targetProperty="bounds" 

-	             duration="0:0:1" from="10, 10, 150, 150" to="300, 300, 600, 600" />

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Rectangle_Size_Location_Shell.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Rectangle_Size_Location_Shell.java
deleted file mode 100644
index 9b83d25..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Rectangle_Size_Location_Shell.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.animation;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Rectangle_Size_Location_Shell {	

-	public static void main(String[] args) {

-

-		URL url = Rectangle_Size_Location_Shell.class.getResource(Rectangle_Size_Location_Shell.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Rectangle_Size_Location_Shell.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Rectangle_Size_Location_Shell.xwt
deleted file mode 100644
index b1f84d2..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Rectangle_Size_Location_Shell.xwt
+++ /dev/null
@@ -1,27 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	name="window">

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>	

-	<Label name="labelTarget" text="Int the animation"/>

-	<Button name="startButton" text="Start Animation">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="size"

-	             duration="0:0:1" from="150, 150" to="600, 600" />

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location"

-	             duration="0:0:3" from="10, 10" to="600, 600" />

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Storyboard.xaml b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Storyboard.xaml
deleted file mode 100644
index 5c4ea70..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Storyboard.xaml
+++ /dev/null
@@ -1,69 +0,0 @@
-<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

-  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

-  WindowTitle="Controlling a Storyboard" >

-  <StackPanel Margin="20" >

-

-    <!-- This rectangle is animated. -->

-    <Rectangle Name="myRectangle"

-      Width="100" Height="20" Margin="12,0,0,5" Fill="#AA3333FF" HorizontalAlignment="Left" />

-

-    <!-- This StackPanel contains all the Buttons. -->

-    <StackPanel Orientation="Horizontal" Margin="0,30,0,0">

-

-      <Button Name="BeginButton">Begin</Button>

-      <Button Name="PauseButton">Pause</Button>

-      <Button Name="ResumeButton">Resume</Button>

-      <Button Name="SeekButton">Seek</Button>

-      <Button Name="SkipToFillButton">Skip To Fill</Button>

-      <Button Name="SetSpeedRatioButton">Triple Speed</Button>

-      <Button Name="StopButton">Stop</Button>

-

-      <StackPanel.Triggers>

-

-        <!-- Begin the Storyboard -->

-        <EventTrigger RoutedEvent="Button.Click" SourceName="BeginButton">

-          <BeginStoryboard Name="MyBeginStoryboard">

-            <Storyboard >

-              <DoubleAnimation 

-                Storyboard.TargetName="myRectangle" 

-                Storyboard.TargetProperty="Width" 

-                Duration="0:0:5" From="100" To="500" />

-            </Storyboard>

-          </BeginStoryboard>

-        </EventTrigger>

-

-        <!-- Pause the Storyboard -->

-        <EventTrigger RoutedEvent="Button.Click" SourceName="PauseButton">

-          <PauseStoryboard BeginStoryboardName="MyBeginStoryboard" />

-        </EventTrigger>

-

-        <!-- Resume the Storyboard -->

-        <EventTrigger RoutedEvent="Button.Click" SourceName="ResumeButton">

-          <ResumeStoryboard BeginStoryboardName="MyBeginStoryboard" />

-        </EventTrigger>

-

-         <!-- Seek one second into the storyboard's active period. -->

-         <EventTrigger RoutedEvent="Button.Click" SourceName="SeekButton">

-           <SeekStoryboard 

-            BeginStoryboardName="MyBeginStoryboard" 

-            Offset="0:0:1" Origin="BeginTime" />

-        </EventTrigger>   

-

-        <!-- Skip to Fill -->

-        <EventTrigger RoutedEvent="Button.Click" SourceName="SkipToFillButton">

-          <SkipStoryboardToFill BeginStoryboardName="MyBeginStoryboard" />

-        </EventTrigger>

-

-        <!-- Stop the Storyboard -->

-        <EventTrigger RoutedEvent="Button.Click" SourceName="StopButton">

-          <StopStoryboard BeginStoryboardName="MyBeginStoryboard" />

-        </EventTrigger>

-

-        <!-- Triple the speed of the Storyboard -->

-        <EventTrigger RoutedEvent="Button.Click" SourceName="SetSpeedRatioButton">

-          <SetStoryboardSpeedRatio SpeedRatio="3" BeginStoryboardName="MyBeginStoryboard" />

-        </EventTrigger>

-      </StackPanel.Triggers>

-    </StackPanel>

-  </StackPanel>

-</Page>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/dispose/Point_Location_BackEase.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/dispose/Point_Location_BackEase.java
deleted file mode 100644
index ac6ade1..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/dispose/Point_Location_BackEase.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.animation.dispose;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Point_Location_BackEase {	

-	public static void main(String[] args) {

-

-		URL url = Point_Location_BackEase.class.getResource(Point_Location_BackEase.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/dispose/Point_Location_BackEase.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/dispose/Point_Location_BackEase.xwt
deleted file mode 100644
index 1532287..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/dispose/Point_Location_BackEase.xwt
+++ /dev/null
@@ -1,66 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	name="window"

-	>

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>	

-	<Label name="labelTarget" text="BackEase the animation"/>

-	<Button name="startButton" text="Start Animation in EaseIn">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="HideEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <BackEase amplitude="1" EasingMode="EaseIn"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-	<Button name="startButton" text="Start Animation in EaseOut">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <BackEase amplitude="1" EasingMode="EaseOut"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-	<Button name="startButton" text="Start Animation in EaseInOut">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <BackEase amplitude="1" EasingMode="EaseInOut"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_BackEase.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_BackEase.java
deleted file mode 100644
index 6ebe533..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_BackEase.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.animation.ease;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Point_Location_BackEase {	

-	public static void main(String[] args) {

-

-		URL url = Point_Location_BackEase.class.getResource(Point_Location_BackEase.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_BackEase.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_BackEase.xwt
deleted file mode 100644
index 9adff3c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_BackEase.xwt
+++ /dev/null
@@ -1,66 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	name="window"

-	>

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>	

-	<Label name="labelTarget" text="BackEase the animation"/>

-	<Button name="startButton" text="Start Animation in EaseIn">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <BackEase amplitude="1" EasingMode="EaseIn"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-	<Button name="startButton" text="Start Animation in EaseOut">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <BackEase amplitude="1" EasingMode="EaseOut"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-	<Button name="startButton" text="Start Animation in EaseInOut">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <BackEase amplitude="1" EasingMode="EaseInOut"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_BounceEase.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_BounceEase.java
deleted file mode 100644
index bd35f25..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_BounceEase.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.animation.ease;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Point_Location_BounceEase {	

-	public static void main(String[] args) {

-

-		URL url = Point_Location_BounceEase.class.getResource(Point_Location_BounceEase.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_BounceEase.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_BounceEase.xwt
deleted file mode 100644
index f9b06a1..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_BounceEase.xwt
+++ /dev/null
@@ -1,66 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	name="window"

-	>

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>	

-	<Label name="labelTarget" text="BounceEase the animation"/>

-	<Button name="startButton" text="Start Animation in EaseIn">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <BounceEase EasingMode="EaseIn"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-	<Button name="startButton" text="Start Animation in EaseOut">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <BounceEase EasingMode="EaseOut"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-	<Button name="startButton" text="Start Animation in EaseInOut">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <BounceEase EasingMode="EaseInOut"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_CircleEase.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_CircleEase.java
deleted file mode 100644
index a876b6f..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_CircleEase.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.animation.ease;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Point_Location_CircleEase {	

-	public static void main(String[] args) {

-

-		URL url = Point_Location_CircleEase.class.getResource(Point_Location_CircleEase.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_CircleEase.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_CircleEase.xwt
deleted file mode 100644
index 601eb69..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_CircleEase.xwt
+++ /dev/null
@@ -1,66 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	name="window"

-	>

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>	

-	<Label name="labelTarget" text="Int the animation"/>

-	<Button name="startButton" text="Start Animation in EaseIn">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <CircleEase EasingMode="EaseIn"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-	<Button name="startButton" text="Start Animation in EaseOut">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <CircleEase EasingMode="EaseOut"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-	<Button name="startButton" text="Start Animation in EaseInOut">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <CircleEase EasingMode="EaseInOut"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_CubicEase.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_CubicEase.java
deleted file mode 100644
index 7d2b842..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_CubicEase.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.animation.ease;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Point_Location_CubicEase {	

-	public static void main(String[] args) {

-

-		URL url = Point_Location_CubicEase.class.getResource(Point_Location_CubicEase.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_CubicEase.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_CubicEase.xwt
deleted file mode 100644
index 9464d05..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_CubicEase.xwt
+++ /dev/null
@@ -1,66 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	name="window"

-	>

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>	

-	<Label name="labelTarget" text="Int the animation"/>

-	<Button name="startButton" text="Start Animation in EaseIn">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <CubicEase EasingMode="EaseIn"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-	<Button name="startButton" text="Start Animation in EaseOut">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <CubicEase EasingMode="EaseOut"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-	<Button name="startButton" text="Start Animation in EaseInOut">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <CubicEase EasingMode="EaseInOut"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_ElasticEase.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_ElasticEase.java
deleted file mode 100644
index 3913a06..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_ElasticEase.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.animation.ease;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Point_Location_ElasticEase {	

-	public static void main(String[] args) {

-

-		URL url = Point_Location_ElasticEase.class.getResource(Point_Location_ElasticEase.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_ElasticEase.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_ElasticEase.xwt
deleted file mode 100644
index d79ea17..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_ElasticEase.xwt
+++ /dev/null
@@ -1,66 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	name="window"

-	>

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>	

-	<Label name="labelTarget" text="ElasticEase the animation"/>

-	<Button name="startButton" text="Start Animation in EaseIn">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <ElasticEase EasingMode="EaseIn"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-	<Button name="startButton" text="Start Animation in EaseOut">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <ElasticEase EasingMode="EaseOut"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-	<Button name="startButton" text="Start Animation in EaseInOut">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <ElasticEase EasingMode="EaseInOut"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_ExponentialEase.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_ExponentialEase.java
deleted file mode 100644
index 1ba84d1..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_ExponentialEase.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.animation.ease;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Point_Location_ExponentialEase {	

-	public static void main(String[] args) {

-

-		URL url = Point_Location_ExponentialEase.class.getResource(Point_Location_ExponentialEase.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_ExponentialEase.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_ExponentialEase.xwt
deleted file mode 100644
index aa6e47d..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_ExponentialEase.xwt
+++ /dev/null
@@ -1,66 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	name="window"

-	>

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>	

-	<Label name="labelTarget" text="ExponentialEase the animation"/>

-	<Button name="startButton" text="Start Animation in EaseIn">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <ExponentialEase EasingMode="EaseIn"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-	<Button name="startButton" text="Start Animation in EaseOut">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <ExponentialEase EasingMode="EaseOut"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-	<Button name="startButton" text="Start Animation in EaseInOut">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <ExponentialEase EasingMode="EaseInOut"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_PowerEase.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_PowerEase.java
deleted file mode 100644
index 6cf1a9e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_PowerEase.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.animation.ease;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Point_Location_PowerEase {	

-	public static void main(String[] args) {

-

-		URL url = Point_Location_PowerEase.class.getResource(Point_Location_PowerEase.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_PowerEase.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_PowerEase.xwt
deleted file mode 100644
index dcb3a55..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_PowerEase.xwt
+++ /dev/null
@@ -1,66 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	name="window"

-	>

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>	

-	<Label name="labelTarget" text="PowerEase the animation"/>

-	<Button name="startButton" text="Start Animation in EaseIn">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <PowerEase power="3" EasingMode="EaseIn"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-	<Button name="startButton" text="Start Animation in EaseOut">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <PowerEase power="3" EasingMode="EaseOut"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-	<Button name="startButton" text="Start Animation in EaseInOut">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <PowerEase power="3" EasingMode="EaseInOut"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuadraticEase.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuadraticEase.java
deleted file mode 100644
index 16ed2df..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuadraticEase.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.animation.ease;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Point_Location_QuadraticEase {	

-	public static void main(String[] args) {

-

-		URL url = Point_Location_QuadraticEase.class.getResource(Point_Location_QuadraticEase.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuadraticEase.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuadraticEase.xwt
deleted file mode 100644
index 8b3473a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuadraticEase.xwt
+++ /dev/null
@@ -1,66 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	name="window"

-	>

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>	

-	<Label name="labelTarget" text="Int the animation"/>

-	<Button name="startButton" text="Start Animation in EaseIn">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <QuadraticEase EasingMode="EaseIn"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-	<Button name="startButton" text="Start Animation in EaseOut">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <QuadraticEase EasingMode="EaseOut"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-	<Button name="startButton" text="Start Animation in EaseInOut">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <QuadraticEase EasingMode="EaseInOut"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuarticEase.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuarticEase.java
deleted file mode 100644
index 82916f2..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuarticEase.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.animation.ease;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Point_Location_QuarticEase {	

-	public static void main(String[] args) {

-

-		URL url = Point_Location_QuarticEase.class.getResource(Point_Location_QuarticEase.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuarticEase.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuarticEase.xwt
deleted file mode 100644
index c1f3fb1..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuarticEase.xwt
+++ /dev/null
@@ -1,66 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	name="window"

-	>

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>	

-	<Label name="labelTarget" text="Int the animation"/>

-	<Button name="startButton" text="Start Animation in EaseIn">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <QuarticEase EasingMode="EaseIn"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-	<Button name="startButton" text="Start Animation in EaseOut">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <QuarticEase EasingMode="EaseOut"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-	<Button name="startButton" text="Start Animation in EaseInOut">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <QuarticEase EasingMode="EaseInOut"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuinticEase.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuinticEase.java
deleted file mode 100644
index 8aa3b76..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuinticEase.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.animation.ease;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Point_Location_QuinticEase {	

-	public static void main(String[] args) {

-

-		URL url = Point_Location_QuinticEase.class.getResource(Point_Location_QuinticEase.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuinticEase.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuinticEase.xwt
deleted file mode 100644
index 4f7fe21..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuinticEase.xwt
+++ /dev/null
@@ -1,66 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	name="window"

-	>

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>	

-	<Label name="labelTarget" text="Int the animation"/>

-	<Button name="startButton" text="Start Animation in EaseIn">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <QuinticEase EasingMode="EaseIn"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-	<Button name="startButton" text="Start Animation in EaseOut">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <QuinticEase EasingMode="EaseOut"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-	<Button name="startButton" text="Start Animation in EaseInOut">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <QuinticEase EasingMode="EaseInOut"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_SineEase.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_SineEase.java
deleted file mode 100644
index d3a69a4..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_SineEase.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.animation.ease;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Point_Location_SineEase {	

-	public static void main(String[] args) {

-

-		URL url = Point_Location_SineEase.class.getResource(Point_Location_SineEase.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_SineEase.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_SineEase.xwt
deleted file mode 100644
index e43de42..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_SineEase.xwt
+++ /dev/null
@@ -1,66 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	name="window"

-	>

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>	

-	<Label name="labelTarget" text="SineEase the animation"/>

-	<Button name="startButton" text="Start Animation in EaseIn">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <SineEase EasingMode="EaseIn"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-	<Button name="startButton" text="Start Animation in EaseOut">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <SineEase EasingMode="EaseOut"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-	<Button name="startButton" text="Start Animation in EaseInOut">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-	          <PointAnimation

-	             targetName="window"

-	             targetProperty="location" 

-	             duration="0:0:6" from="300, 300" to="600, 600">

-	             <PointAnimation.EasingFunction>

-                     <SineEase EasingMode="EaseInOut"/>

-                 </PointAnimation.EasingFunction>

-	          </PointAnimation>	             

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/keyframe/Rectangle_Bounds_Shell.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/keyframe/Rectangle_Bounds_Shell.java
deleted file mode 100644
index b6bb7c7..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/keyframe/Rectangle_Bounds_Shell.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.animation.keyframe;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Rectangle_Bounds_Shell {	

-	public static void main(String[] args) {

-

-		URL url = Rectangle_Bounds_Shell.class.getResource(Rectangle_Bounds_Shell.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/keyframe/Rectangle_Bounds_Shell.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/keyframe/Rectangle_Bounds_Shell.xwt
deleted file mode 100644
index a821d97..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/keyframe/Rectangle_Bounds_Shell.xwt
+++ /dev/null
@@ -1,28 +0,0 @@
-<!-- http://dotnetslackers.com/articles/wpf/IntroductionToWPFAnimations.aspx -->

-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	name="window">

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>	

-	<Label name="labelTarget" text="Int the animation"/>

-	<Button name="startButton" text="Start Animation">

-	  <Button.triggers>

-	    <!-- Begin the Storyboard -->

-	    <EventTrigger routedEvent="SelectionEvent">

-	      <BeginStoryboard name="MyBeginStoryboard">

-	        <Storyboard>

-				<DoubleAnimationUsingKeyFrames 

-					Storyboard.TargetName="window"

-					Storyboard.TargetProperty="bounds.x"

-					Duration="0:0:15"> 

-					<LinearDoubleKeyFrame Value="100" KeyTime="0:0:3" /> 

-					<LinearDoubleKeyFrame Value="150" KeyTime="0:0:5" /> 

-					<LinearDoubleKeyFrame Value="250" KeyTime="0:0:7" /> 

-				</DoubleAnimationUsingKeyFrames> 

-	        </Storyboard>

-	      </BeginStoryboard>

-	    </EventTrigger>

-      </Button.triggers>

-	</Button>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/repeatBehavior/RepeatBehaviorTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/repeatBehavior/RepeatBehaviorTests.java
deleted file mode 100644
index b0a914c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/repeatBehavior/RepeatBehaviorTests.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.animation.repeatBehavior;

-

-import junit.framework.TestCase;

-

-import org.eclipse.xwt.animation.Duration;

-import org.eclipse.xwt.animation.RepeatBehavior;

-

-public class RepeatBehaviorTests extends TestCase {

-

-	public void testCount() throws Exception {

-		RepeatBehavior behavior = RepeatBehavior.parse("0.5x");

-		assertTrue(behavior.getHasCount());

-		assertEquals(behavior.getCount(), 0.5);		

-		assertFalse(behavior.getHasDuration());

-	}

-

-	public void testForever() throws Exception {

-		RepeatBehavior behavior = RepeatBehavior.parse("Forever");

-		assertFalse(behavior.getHasCount());

-		assertFalse(behavior.getHasDuration());

-	}

-

-	public void testDuration() throws Exception {

-		RepeatBehavior behavior = RepeatBehavior.parse("9:10:35");

-		assertFalse(behavior.getHasCount());

-		assertTrue(behavior.getHasDuration());

-		Duration duration = behavior.getDuration();

-		assertEquals(duration.getTimeSpan().getSeconds(), 35);

-		assertEquals(duration.getTimeSpan().getMinutes(), 10);

-		assertEquals(duration.getTimeSpan().getHours(), 9);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/AnnotationTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/AnnotationTests.java
deleted file mode 100644
index 3416733..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/AnnotationTests.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.annotation;

-

-import java.lang.reflect.Field;

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class AnnotationTests extends XWTTestCase {

-

-	public void testField() throws Exception {

-		URL url = Button.class

-				.getResource(Button.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		ButtonHandler.instance = null;

-		runTest(url, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				try {

-					Field field = ButtonHandler.class.getDeclaredField("myButton");

-					assertNotNull(ButtonHandler.instance);

-					field.setAccessible(true);

-					Object object = field.get(ButtonHandler.instance);

-					assertNotNull(object);

-				} catch (Exception e) {

-					fail();

-				}

-			}

-		});

-	}

-

-	public void testField_rename() throws Exception {

-		URL url = Button.class

-				.getResource("Button_rename"

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		ButtonHandler_rename.instance = null;

-		runTest(url, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				try {

-					Field field = ButtonHandler_rename.class.getDeclaredField("myButton");

-					assertNotNull(ButtonHandler_rename.instance);

-					field.setAccessible(true);

-					Object object = field.get(ButtonHandler_rename.instance);

-					assertNotNull(object);

-				} catch (Exception e) {

-					fail();

-				}

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/Button.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/Button.java
deleted file mode 100644
index 0a4ba66..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/Button.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.annotation;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Button {	

-	public static void main(String[] args) {

-

-		URL url = Button.class.getResource(Button.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/Button.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/Button.xwt
deleted file mode 100644
index e34e9c7..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/Button.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	x:Class="org.eclipse.xwt.tests.annotation.ButtonHandler">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>	

-	<Button name="myButton" text="Test"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/ButtonHandler.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/ButtonHandler.java
deleted file mode 100644
index 5d66a57..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/ButtonHandler.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.annotation;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.xwt.annotation.UI;

-

-/**

- * 

- * @author yyang

- */

-public class ButtonHandler {

-	public static ButtonHandler instance;

-

-	@UI 

-	private Button myButton;

-

-	public ButtonHandler() {

-		if (instance == null) {

-			instance = this;

-		}

-		else {

-			throw new IllegalStateException();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/ButtonHandler_rename.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/ButtonHandler_rename.java
deleted file mode 100644
index 307260d..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/ButtonHandler_rename.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.annotation;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.xwt.annotation.UI;

-

-/**

- * 

- * @author yyang

- */

-public class ButtonHandler_rename {

-	public static ButtonHandler_rename instance;

-

-	@UI("my button")

-	private Button myButton;

-

-	public ButtonHandler_rename() {

-		if (instance == null) {

-			instance = this;

-		}

-		else {

-			throw new IllegalStateException();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/Button_rename.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/Button_rename.xwt
deleted file mode 100644
index 284b56c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/Button_rename.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	x:Class="org.eclipse.xwt.tests.annotation.ButtonHandler_rename">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>	

-	<Button name="my button" text="Test"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/attachedproperty/AttachedPropertySuite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/attachedproperty/AttachedPropertySuite.java
deleted file mode 100644
index 438729c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/attachedproperty/AttachedPropertySuite.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.attachedproperty;

-

-import junit.framework.Test;

-import junit.framework.TestSuite;

-

-public class AttachedPropertySuite extends TestSuite {

-	public static final Test suite() {

-		return new AttachedPropertySuite();

-	}

-

-	public AttachedPropertySuite() {

-		addTest(new TestSuite(AttachedPropertyTests.class));

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/attachedproperty/AttachedPropertyTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/attachedproperty/AttachedPropertyTests.java
deleted file mode 100644
index de42fe4..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/attachedproperty/AttachedPropertyTests.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.attachedproperty;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.metadata.IProperty;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class AttachedPropertyTests extends XWTTestCase {

-

-	public void testButton_AttachedProperty() throws Exception {

-		URL url = AttachedPropertyTests.class

-				.getResource(Button_AttachedProperty.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button button = (Button) XWT.findElementByName(root, "button");

-				IProperty property = XWT.findProperty(Composite.class,

-						"visible");

-				Object value = XWT.getPropertyValue(button, property);

-				assertEquals(true, value);

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/attachedproperty/Button_AttachedProperty.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/attachedproperty/Button_AttachedProperty.java
deleted file mode 100644
index 9d8ade1..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/attachedproperty/Button_AttachedProperty.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.attachedproperty;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Button_AttachedProperty {

-	public static void main(String[] args) {

-		URL url = Button_AttachedProperty.class

-				.getResource(Button_AttachedProperty.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/attachedproperty/Button_AttachedProperty.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/attachedproperty/Button_AttachedProperty.xwt
deleted file mode 100644
index 192c9b1..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/attachedproperty/Button_AttachedProperty.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	text="Button Visible Test">

-	<Composite.layout>

-		<GridLayout numColumns="1"/>

-	</Composite.layout>

-	<Button Composite.visible="true" name="button" text="Has attached Property" />

-</Composite>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLR.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLR.java
deleted file mode 100644
index ea65599..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLR.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.clr;

-

-/**

- * @author jliu

- */

-public class CLR {

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLR.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLR.xwt
deleted file mode 100644
index ffef07c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLR.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    x:Class="org.eclipse.xwt.tests.clr.CLR">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Button text="XWT getCLR()"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRComposite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRComposite.java
deleted file mode 100644
index f37c4cf..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRComposite.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.clr;

-

-import org.eclipse.swt.widgets.Composite;

-

-/**

- * @author jliu

- */

-public class CLRComposite extends Composite {

-

-	public CLRComposite(Composite parent, int style) {

-		super(parent, style);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRComposite.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRComposite.xwt
deleted file mode 100644
index e4f790d..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRComposite.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    x:Class="org.eclipse.xwt.tests.clr.CLRComposite">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Button text="XWT getCLR()"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRNull.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRNull.java
deleted file mode 100644
index b24af9c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRNull.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.clr;

-

-import org.eclipse.swt.widgets.Event;

-

-/**

- * @author jliu

- */

-public class CLRNull {

-	protected int count = 0;

-

-	public int getCount() {

-		return count;

-	}

-

-	public void setCount(int count) {

-		this.count = count;

-	}

-

-	protected void onLoaded(Event event) {

-		count++;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRNull.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRNull.xwt
deleted file mode 100644
index 466b577..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRNull.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    loadedEvent="onLoaded">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Button text="XWT getCLR()"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRTestSuite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRTestSuite.java
deleted file mode 100644
index 821edc7..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRTestSuite.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.clr;

-

-import junit.framework.Test;

-import junit.framework.TestSuite;

-

-public class CLRTestSuite extends TestSuite {

-	public static final Test suite() {

-		return new CLRTestSuite();

-	}

-

-	public CLRTestSuite() {

-		addTest(new TestSuite(CLRTests.class));

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRTests.java
deleted file mode 100644
index f502c8b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRTests.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.clr;

-

-import java.net.URL;

-import java.util.HashMap;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.IXWTLoader;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class CLRTests extends XWTTestCase {

-

-	public void testCLR() throws Exception {

-		URL url = CLR.class.getResource(CLR.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object element = XWT.getCLR(root);

-				assertTrue(element instanceof CLR);

-			}

-		});

-	}

-

-	public void testCLRComposite() throws Exception {

-		URL url = CLR.class.getResource(CLRComposite.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object element = XWT.getCLR(root);

-				assertTrue(element instanceof CLRComposite);

-			}

-		});

-	}

-

-	public void testCLRNull() throws Exception {

-		URL url = CLR.class.getResource(CLRNull.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		HashMap<String, Object> options = new HashMap<String, Object>();

-		final CLRNull clr = new CLRNull();

-		options.put(IXWTLoader.CLASS_PROPERTY, clr);

-		runTest(url, options, null, new Runnable() {

-			public void run() {

-				Object element = XWT.getCLR(root);

-				assertTrue(element == clr);

-				assertEquals(clr.getCount(), 1);

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLR.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLR.java
deleted file mode 100644
index 5e157f8..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLR.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.clrfactory;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Event;

-

-/**

- * @author jliu

- */

-public class CLR {

-	private CLRFactory factory;

-

-	private String args;

-

-	public String getArgs() {

-		return args;

-	}

-

-	public void setArgs(String args) {

-		this.args = args;

-	}

-

-	public CLR(CLRFactory factory, String args) {

-		this.args = args;

-		this.factory = factory;

-	}

-	

-	public void select(Button sender, Event event) {

-		if (args == null) {

-			sender.setText("");			

-		}

-		else {

-			sender.setText(args);			

-		}

-		sender.setData("CLR", this);

-	}

-

-	public CLRFactory getFactory() {

-		return factory;

-	}

-

-	public void setFactory(CLRFactory factory) {

-		this.factory = factory;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactory.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactory.java
deleted file mode 100644
index ccb80d0..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactory.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.clrfactory;

-

-import java.util.Map;

-

-import org.eclipse.xwt.ICLRFactory;

-

-/**

- * @author jliu

- */

-public class CLRFactory implements ICLRFactory {

-	public static ICLRFactory INSTANCE = new CLRFactory();

-	

-	public Object createCLR(String args, Map<String, Object> options) {

-		return new CLR(this, args);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryDefault.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryDefault.java
deleted file mode 100644
index a02d720..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryDefault.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.clrfactory;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class CLRFactoryDefault{

-

-	public static void main(String[] args) {

-

-		URL url = CLRFactoryDefault.class.getResource(CLRFactoryDefault.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryDefault.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryDefault.xwt
deleted file mode 100644
index cdf94c3..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryDefault.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    x:ClassFactory="org.eclipse.xwt.tests.clrfactory.CLRFactory">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Button name="button" text="XWT CLRFactory" selectionEvent="select"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryNamespace.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryNamespace.java
deleted file mode 100644
index efe5cf1..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryNamespace.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.clrfactory;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class CLRFactoryNamespace{

-

-	public static void main(String[] args) {

-

-		URL url = CLRFactoryNamespace.class.getResource(CLRFactoryNamespace.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryNamespace.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryNamespace.xwt
deleted file mode 100644
index e5ff4a1..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryNamespace.xwt
+++ /dev/null
@@ -1,9 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:c="clr-namespace:org.eclipse.xwt.tests.clrfactory"

-    x:ClassFactory="c:CLRFactory">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Button name="button" text="XWT CLRFactory" selectionEvent="select"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryOption.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryOption.java
deleted file mode 100644
index f48354b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryOption.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.clrfactory;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class CLRFactoryOption{

-

-	public static void main(String[] args) {

-

-		URL url = CLRFactoryOption.class.getResource(CLRFactoryOption.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryOption.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryOption.xwt
deleted file mode 100644
index 9b69d73..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryOption.xwt
+++ /dev/null
@@ -1,7 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Button name="button" text="XWT CLRFactory" selectionEvent="select"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryOptionArgs.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryOptionArgs.java
deleted file mode 100644
index 480faad..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryOptionArgs.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.clrfactory;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class CLRFactoryOptionArgs {

-

-	public static void main(String[] args) {

-

-		URL url = CLRFactoryOptionArgs.class.getResource(CLRFactoryOptionArgs.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryOptionArgs.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryOptionArgs.xwt
deleted file mode 100644
index dbfec9b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryOptionArgs.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    x:ClassFactory="+ arg1 arg2">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Button name="button" text="XWT CLRFactory" selectionEvent="select"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactorySingleton.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactorySingleton.java
deleted file mode 100644
index dbe0720..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactorySingleton.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.clrfactory;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class CLRFactorySingleton{

-

-	public static void main(String[] args) {

-

-		URL url = CLRFactorySingleton.class.getResource(CLRFactorySingleton.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactorySingleton.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactorySingleton.xwt
deleted file mode 100644
index 5940298..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactorySingleton.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    x:ClassFactory="org.eclipse.xwt.tests.clrfactory.CLRFactory.INSTANCE arg1 arg2">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Button name="button" text="XWT CLRFactory" selectionEvent="select"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryTestSuite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryTestSuite.java
deleted file mode 100644
index e8b7b8f..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryTestSuite.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.clrfactory;

-

-import junit.framework.Test;

-import junit.framework.TestSuite;

-

-public class CLRFactoryTestSuite extends TestSuite {

-	public static final Test suite() {

-		return new CLRFactoryTestSuite();

-	}

-

-	public CLRFactoryTestSuite() {

-		addTest(new TestSuite(CLRFactoryTests.class));

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryTests.java
deleted file mode 100644
index 8eaef86..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryTests.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.clrfactory;

-

-import java.net.URL;

-import java.util.HashMap;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.IXWTLoader;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class CLRFactoryTests extends XWTTestCase {

-	

-	public void testCLRFactoryDefault() throws Exception {

-		URL url = CLR.class.getResource(CLRFactoryDefault.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button element = (Button)XWT.findElementByName(root, "button");

-				selectButton(element);

-			}

-		}, new Runnable() {

-			public void run() {

-				Button element = (Button)XWT.findElementByName(root, "button");

-				assertTrue(element.getText().equals(""));

-			}

-		});

-	}

-

-	public void testCLRFactoryValue() throws Exception {

-		URL url = CLR.class.getResource(CLRFactoryValue.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button element = (Button)XWT.findElementByName(root, "button");

-				selectButton(element);

-			}

-		}, new Runnable() {

-			public void run() {

-				Button element = (Button)XWT.findElementByName(root, "button");

-				assertTrue(element.getText().equals("arg1 arg2"));

-			}

-		});

-	}

-

-	public void testCLRFactoryNamespace() throws Exception {

-		URL url = CLR.class.getResource(CLRFactoryNamespace.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button element = (Button)XWT.findElementByName(root, "button");

-				selectButton(element);

-			}

-		}, new Runnable() {

-			public void run() {

-				Button element = (Button)XWT.findElementByName(root, "button");

-				assertTrue(element.getText().equals(""));

-			}

-		});

-	}

-

-	public void testCLRFactorySingleton() throws Exception {

-		URL url = CLR.class.getResource(CLRFactorySingleton.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button element = (Button)XWT.findElementByName(root, "button");

-				selectButton(element);

-			}

-		}, new Runnable() {

-			public void run() {

-				Button element = (Button)XWT.findElementByName(root, "button");

-				Object data = element.getData("CLR");

-				assertTrue(data instanceof CLR);

-				CLR clr = (CLR) data;

-				assertEquals(clr.getFactory(), CLRFactory.INSTANCE);

-			}

-		});

-	}

-

-	public void testCLRFactoryOption() throws Exception {

-		URL url = CLR.class.getResource(CLRFactoryOption.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		HashMap<String, Object> options = new HashMap<String, Object>();

-		final CLRFactory clrFactory = new CLRFactory();

-		options.put(IXWTLoader.CLASS_FACTORY_PROPERTY, clrFactory);

-		runTest(url, options, new Runnable() {

-			public void run() {

-				Button element = (Button)XWT.findElementByName(root, "button");

-				selectButton(element);

-			}

-		}, new Runnable() {

-			public void run() {

-				Button element = (Button)XWT.findElementByName(root, "button");

-				assertTrue(element.getText().equals(""));

-			}

-		});

-	}

-

-	public void testCLRFactoryGlobalOption() throws Exception {

-		URL url = CLR.class.getResource(CLRFactoryOption.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		CLRFactory clrFactory = new CLRFactory();

-		XWT.setCLRFactory(clrFactory);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button element = (Button)XWT.findElementByName(root, "button");

-				selectButton(element);

-			}

-		}, new Runnable() {

-			public void run() {

-				Button element = (Button)XWT.findElementByName(root, "button");

-				assertTrue(element.getText().equals(""));

-			}

-		});

-	}

-	

-	public void testCLRFactoryPrecedentOption() throws Exception {

-		URL url = CLR.class.getResource(CLRFactoryDefault.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		HashMap<String, Object> options = new HashMap<String, Object>();

-		final CLRFadeFactory clrFactory = new CLRFadeFactory();

-		options.put(IXWTLoader.CLASS_FACTORY_PROPERTY, clrFactory);

-		runTest(url, options, new Runnable() {

-			public void run() {

-				Button element = (Button)XWT.findElementByName(root, "button");

-				selectButton(element);

-			}

-		}, new Runnable() {

-			public void run() {

-				Button element = (Button)XWT.findElementByName(root, "button");

-				Object data = element.getData("CLR");

-				assertTrue(data instanceof CLR);

-			}

-		});

-	}

-

-	public void testCLRFactoryPrecedentGlobal() throws Exception {

-		URL url = CLR.class.getResource(CLRFactoryDefault.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		CLRFadeFactory clrFactory = new CLRFadeFactory();

-		XWT.setCLRFactory(clrFactory);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button element = (Button)XWT.findElementByName(root, "button");

-				selectButton(element);

-			}

-		}, new Runnable() {

-			public void run() {

-				Button element = (Button)XWT.findElementByName(root, "button");

-				Object data = element.getData("CLR");

-				assertTrue(data instanceof CLR);

-			}

-		});

-	}

-

-	public void testCLRFactoryPrecedentOptionOverGlobal() throws Exception {

-		URL url = CLR.class.getResource(CLRFactoryOption.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		HashMap<String, Object> options = new HashMap<String, Object>();

-		// CLRfactory should be not used

-		final CLRFadeFactory clrFadeFactory = new CLRFadeFactory();

-		XWT.setCLRFactory(clrFadeFactory);

-		

-		// CLRfactory should be used

-		CLRFactory clrFactory = new CLRFactory();

-		options.put(IXWTLoader.CLASS_FACTORY_PROPERTY, clrFactory);

-		runTest(url, options, new Runnable() {

-			public void run() {

-				Button element = (Button)XWT.findElementByName(root, "button");

-				selectButton(element);

-			}

-		}, new Runnable() {

-			public void run() {

-				Button element = (Button)XWT.findElementByName(root, "button");

-				Object data = element.getData("CLR");

-				assertTrue(data instanceof CLR);

-			}

-		});

-	}

-	

-	public void testCLRFactoryOptionArg() throws Exception {

-		URL url = CLR.class.getResource(CLRFactoryOptionArgs.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		HashMap<String, Object> options = new HashMap<String, Object>();

-		final CLRFactory clrFactory = new CLRFactory();

-		options.put(IXWTLoader.CLASS_FACTORY_PROPERTY, clrFactory);

-		runTest(url, options, new Runnable() {

-			public void run() {

-				Button element = (Button)XWT.findElementByName(root, "button");

-				selectButton(element);

-			}

-		}, new Runnable() {

-			public void run() {

-				Button element = (Button)XWT.findElementByName(root, "button");

-				assertTrue(element.getText().equals("arg1 arg2"));

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryValue.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryValue.java
deleted file mode 100644
index 7770bf2..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryValue.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.clrfactory;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class CLRFactoryValue {

-

-	public static void main(String[] args) {

-

-		URL url = CLRFactoryValue.class.getResource(CLRFactoryValue.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryValue.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryValue.xwt
deleted file mode 100644
index 4924fe1..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryValue.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    x:ClassFactory="org.eclipse.xwt.tests.clrfactory.CLRFactory arg1 arg2">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Button name="button" text="XWT CLRFactory" selectionEvent="select"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFade.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFade.java
deleted file mode 100644
index 08012d7..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFade.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.clrfactory;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Event;

-

-/**

- * @author jliu

- */

-public class CLRFade {

-	private CLRFadeFactory factory;

-

-	private String args;

-

-	public String getArgs() {

-		return args;

-	}

-

-	public void setArgs(String args) {

-		this.args = args;

-	}

-

-	public CLRFade(CLRFadeFactory factory, String args) {

-		this.args = args;

-		this.factory = factory;

-	}

-	

-	public void select(Button sender, Event event) {

-		if (args == null) {

-			sender.setText("");			

-		}

-		else {

-			sender.setText(args);			

-		}

-		sender.setData("CLR", this);

-	}

-

-	public CLRFadeFactory getFactory() {

-		return factory;

-	}

-

-	public void setFactory(CLRFadeFactory factory) {

-		this.factory = factory;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFadeFactory.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFadeFactory.java
deleted file mode 100644
index 62c73ea..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFadeFactory.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.clrfactory;

-

-import java.util.Map;

-

-import org.eclipse.xwt.ICLRFactory;

-

-/**

- * @author jliu

- */

-public class CLRFadeFactory implements ICLRFactory {

-	public static ICLRFactory INSTANCE = new CLRFadeFactory();

-	

-	public Object createCLR(String args, Map<String, Object> options) {

-		return new CLRFade(this, args);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Background.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Background.java
deleted file mode 100644
index 5afb751..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Background.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Control_Background {

-	public static void main(String[] args) {

-		URL url = Control_Background.class.getResource(Control_Background.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Background.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Background.xwt
deleted file mode 100644
index f4746bd..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Background.xwt
+++ /dev/null
@@ -1,29 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	text="Control Background Color Test" x:style="SWT.CLOSE">

-	<Shell.layout>

-		<GridLayout/>

-	</Shell.layout>

-	<Composite x:style="BORDER">

-		<Composite.layoutData>

-			<GridData horizontalAlignment="GridData.FILL" 

-					  verticalAlignment="GridData.FILL" grabExcessHorizontalSpace="true" 

-					  grabExcessVerticalSpace="true"/>

-		</Composite.layoutData>

-		<Composite.layout>

-			<GridLayout/>

-		</Composite.layout>

-		<Canvas x:style="H_SCROLL | BORDER | V_SCROLL" backgroundMode="INHERIT_NONE" backgroundImage="backgroundImage.png">

-			<Canvas.layout>

-				<GridLayout numColumns="1"/>

-			</Canvas.layout>

-			<Canvas.layoutData>

-				<GridData horizontalAlignment="GridData.FILL" 

-					  verticalAlignment="GridData.FILL" grabExcessHorizontalSpace="true" 

-					  grabExcessVerticalSpace="true"/>

-			</Canvas.layoutData>

-			<Label text="This is a canvas"/>

-		</Canvas>

-		<Composite x:style="BORDER" background="Red"/>

-	</Composite>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Bounds.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Bounds.java
deleted file mode 100644
index 3961acc..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Bounds.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Control_Bounds {

-	public static void main(String[] args) {

-		URL url = Control_Bounds.class.getResource(Control_Bounds.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Bounds.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Bounds.xwt
deleted file mode 100644
index adaaf01..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Bounds.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	text="Control Bounds Test">

-	<Label x:style="BORDER" text="Label(10, 10, 100, 40)" Bounds="10, 10, 100, 40" Alignment="CENTER">

-	</Label>

-	<Button text="Button(20, 60, 120, 120)" Bounds="20, 60, 120, 120">

-	</Button>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Location.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Location.java
deleted file mode 100644
index 094e152..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Location.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Control_Location {

-	public static void main(String[] args) {

-		URL url = Control_Location.class.getResource(Control_Location.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Location.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Location.xwt
deleted file mode 100644
index dfd9caf..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Location.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	text="Control Size Test">

-	<Label x:style="BORDER" text="Label(10, 10, 150, 100)" Location="10, 10" Size="150, 100">

-	</Label>

-	<Button text="Button (200, 120, 200, 200)" Location="200, 120" Size="200, 200">

-	</Button>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Orientation.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Orientation.java
deleted file mode 100644
index 884262c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Orientation.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Control_Orientation {

-	public static void main(String[] args) {

-		URL url = Control_Orientation.class

-				.getResource(Control_Orientation.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Orientation.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Orientation.xwt
deleted file mode 100644
index d052326..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Orientation.xwt
+++ /dev/null
@@ -1,15 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	text="Control Orientation Test">

-	<Shell.layout>

-		<FillLayout/>

-	</Shell.layout>

-	<Group text="orientation" x:style="LEFT_TO_RIGHT">

-		<Group.layout>

-			<RowLayout type="VERTICAL"/>

-		</Group.layout>

-		<Button text="default(Inherit)" image="demo.gif"/>

-		<Button x:style="LEFT_TO_RIGHT" text="LeftToRight" image="demo.gif"/>

-		<Button x:style="RIGHT_TO_LEFT" text="RightToLeft" image="demo.gif"/>

-	</Group>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Size.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Size.java
deleted file mode 100644
index 8db5dc1..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Size.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Control_Size {

-	public static void main(String[] args) {

-		URL url = Control_Size.class.getResource(Control_Size.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Size.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Size.xwt
deleted file mode 100644
index cf5650c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Size.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	text="Control Size Test">

-	<Label name="targetLabel" x:style="BORDER" text="Label Size(100, 40)" Size="100, 40">

-	</Label>

-	<Button name="targetButton" text="Button Size(200, 200)" Size="200, 200">

-	</Button>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Size_GridData.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Size_GridData.java
deleted file mode 100644
index e6eee67..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Size_GridData.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Control_Size_GridData {

-	public static void main(String[] args) {

-		URL url = Control_Size_GridData.class

-				.getResource(Control_Size_GridData.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Size_GridData.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Size_GridData.xwt
deleted file mode 100644
index f3e89d7..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Size_GridData.xwt
+++ /dev/null
@@ -1,17 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	text="Control Size Test (GridData)">

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>

-	<Label name="targetLabel" x:style="BORDER" text="Label(100, 40)" Alignment="CENTER">

-		<Label.layoutData>

-			<GridData widthHint="100" heightHint="40" horizontalAlignment="CENTER" verticalAlignment="CENTER"/>

-		</Label.layoutData>

-	</Label>

-	<Button name="targetButton" text="Button(200, 200)">

-		<Button.layoutData>

-			<GridData widthHint="200" heightHint="200"/>

-		</Button.layoutData>

-	</Button>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ControlsTestSuite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ControlsTestSuite.java
deleted file mode 100644
index cd49c7b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ControlsTestSuite.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.xwt.tests.controls.button.ButtonTests;

-import org.eclipse.xwt.tests.controls.ccombo.CComboTests;

-import org.eclipse.xwt.tests.controls.combo.ComboTests;

-import org.eclipse.xwt.tests.controls.shell.ShellTests;

-import org.eclipse.xwt.tests.controls.tree.TreeTests;

-
-public class ControlsTestSuite extends TestSuite {
-	public static final Test suite() {
-		return new ControlsTestSuite();
-	}
-
-	public ControlsTestSuite() {
-		addTest(new TestSuite(ControlsTests.class));
-		addTest(new TestSuite(ButtonTests.class));
-		addTest(new TestSuite(ComboTests.class));
-		addTest(new TestSuite(CComboTests.class));
-		addTest(new TestSuite(ShellTests.class));
-		addTest(new TestSuite(TreeTests.class));

-	}
-}
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ControlsTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ControlsTests.java
deleted file mode 100644
index 12e8129..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ControlsTests.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls;

-

-import java.net.URL;

-

-import org.eclipse.swt.graphics.Point;

-import org.eclipse.swt.layout.GridData;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class ControlsTests extends XWTTestCase {

-	public void testControlLocation() throws Exception {

-		URL url = ControlsTests.class.getResource(Control_Location.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url);

-	}

-

-	public void testControlBackground() throws Exception {

-		URL url = ControlsTests.class.getResource(Control_Background.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url);

-	}

-

-	public void testControlBounds() throws Exception {

-		URL url = ControlsTests.class.getResource(Control_Bounds.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url);

-	}

-

-	public void testControlOrientation() throws Exception {

-		URL url = ControlsTests.class.getResource(Control_Orientation.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url);

-	}

-

-	public void testControlSize() throws Exception {

-		URL url = ControlsTests.class.getResource(Control_Size.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkLabel();

-				checkButton();

-			}

-

-			public void checkLabel() {

-				Object element = XWT.findElementByName(root, "targetLabel");

-				assertTrue(element instanceof Label);

-				Label label = (Label) element;

-				Point size = label.getSize();

-				assertTrue(size.x == 100 && size.y == 40);

-			}

-

-			public void checkButton() {

-				Object element = XWT.findElementByName(root, "targetButton");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				Point size = button.getSize();

-				assertTrue(size.x == 200 && size.y == 200);

-			}

-		});

-	}

-

-	public void testControlSizeGridData() throws Exception {

-		URL url = ControlsTests.class.getResource(Control_Size_GridData.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkLabel();

-				checkButton();

-			}

-

-			public void checkLabel() {

-				Object element = XWT.findElementByName(root, "targetLabel");

-				assertTrue(element instanceof Label);

-				Label label = (Label) element;

-				Object data = label.getLayoutData();

-				assertTrue(data instanceof GridData);

-				GridData gridData = (GridData) data;

-				assertTrue(gridData.widthHint == 100

-						&& gridData.heightHint == 40);

-			}

-

-			public void checkButton() {

-				Object element = XWT.findElementByName(root, "targetButton");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				Object data = button.getLayoutData();

-				assertTrue(data instanceof GridData);

-				GridData gridData = (GridData) data;

-				assertTrue(gridData.widthHint == 200

-						&& gridData.heightHint == 200);

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/browser/Browser_Test.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/browser/Browser_Test.java
deleted file mode 100644
index d51e8a8..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/browser/Browser_Test.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.browser;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Browser_Test {

-	public static void main(String[] args) {

-		URL url = Browser_Test.class.getResource(Browser_Test.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/browser/Browser_Test.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/browser/Browser_Test.xwt
deleted file mode 100644
index 87f25c1..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/browser/Browser_Test.xwt
+++ /dev/null
@@ -1,18 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	text="Browser Test">

-	<Shell.layout>

-		<FillLayout/>

-	</Shell.layout>

-	<Group text="browser">

-		<Group.layout>

-			<GridLayout/>

-		</Group.layout>

-		<Browser x:style="BORDER" url="http://www.google.com">

-			<Browser.layoutData>

-				<GridData horizontalAlignment="FILL" verticalAlignment="FILL" 

-			          grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>

-			</Browser.layoutData>

-		</Browser>

-	</Group>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/browser/Browser_text.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/browser/Browser_text.java
deleted file mode 100644
index dcebfb5..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/browser/Browser_text.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.browser;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Browser_text {

-	public static void main(String[] args) {

-		URL url = Browser_text.class.getResource(Browser_text.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/browser/Browser_text.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/browser/Browser_text.xwt
deleted file mode 100644
index f5e339b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/browser/Browser_text.xwt
+++ /dev/null
@@ -1,18 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	text="Browser Text">

-	<Shell.layout>

-		<FillLayout/>

-	</Shell.layout>

-	<Group text="browser">

-		<Group.layout>

-			<GridLayout/>

-		</Group.layout>

-		<Browser x:style="BORDER" text="&lt;html&gt;&lt;body&gt;test&lt;/body&gt;&lt;/html&gt;">

-			<Browser.layoutData>

-				<GridData horizontalAlignment="FILL" verticalAlignment="FILL" 

-			          grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>

-			</Browser.layoutData>

-		</Browser>

-	</Group>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/ButtonTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/ButtonTests.java
deleted file mode 100644
index 96df11a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/ButtonTests.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.button;

-

-import java.net.URL;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class ButtonTests extends XWTTestCase {

-	public void testButtonVisible() throws Exception {

-		URL url = ButtonTests.class.getResource(Button_Visible.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkButtonVisible();

-				checkButtonNonVisible();

-			}

-

-			public void checkButtonVisible() {

-				Object element = XWT.findElementByName(root, "buttonVisible");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				assertTrue(button.getVisible());

-			}

-

-			public void checkButtonNonVisible() {

-				Object element = XWT

-						.findElementByName(root, "buttonNonVisible");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				assertFalse(button.getVisible());

-			}

-		});

-	}

-

-	public void testButtonAlignment() throws Exception {

-		URL url = ButtonTests.class.getResource(Button_Alignment.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkButtonLeft();

-				checkButtonRight();

-				checkButtonCenter();

-			}

-

-			public void checkButtonLeft() {

-				Object element = XWT.findElementByName(root, "ButtonLeft");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				assertTrue(button.getAlignment() == SWT.LEFT);

-			}

-

-			public void checkButtonRight() {

-				Object element = XWT.findElementByName(root, "ButtonRight");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				assertTrue(button.getAlignment() == SWT.RIGHT);

-			}

-

-			public void checkButtonCenter() {

-				Object element = XWT.findElementByName(root, "ButtonCenter");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				assertTrue(button.getAlignment() == SWT.CENTER);

-			}

-		});

-	}

-

-	public void testButtonEnabled() throws Exception {

-		URL url = ButtonTests.class.getResource(Button_Enabled.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkButtonEnabled();

-				checkButtonNotEnabled();

-			}

-

-			public void checkButtonEnabled() {

-				Object element = XWT.findElementByName(root, "EnabledButton");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				assertTrue(button.isEnabled());

-			}

-

-			public void checkButtonNotEnabled() {

-				Object element = XWT

-						.findElementByName(root, "NotEnabledButton");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				assertFalse(button.isEnabled());

-			}

-		});

-	}

-

-	public void testButtonStyles() throws Exception {

-		URL url = ButtonTests.class.getResource(Button_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkPushButton();

-				checkCheckButton();

-				checkRadioButton();

-				checkToggleButton();

-				checkArrowButton();

-				checkFlatButton();

-			}

-

-			public void checkPushButton() {

-				Object element = XWT.findElementByName(root, "PushButton");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				assertTrue((button.getStyle() & SWT.PUSH) == SWT.PUSH);

-			}

-

-			public void checkCheckButton() {

-				Object element = XWT.findElementByName(root, "CheckButton");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				assertTrue((button.getStyle() & SWT.CHECK) == SWT.CHECK);

-			}

-

-			public void checkRadioButton() {

-				Object element = XWT.findElementByName(root, "RadioButton");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				assertTrue((button.getStyle() & SWT.RADIO) == SWT.RADIO);

-			}

-

-			public void checkToggleButton() {

-				Object element = XWT.findElementByName(root, "ToggleButton");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				assertTrue((button.getStyle() & SWT.TOGGLE) == SWT.TOGGLE);

-			}

-

-			public void checkArrowButton() {

-				Object element = XWT.findElementByName(root, "ArrowButton");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				assertTrue((button.getStyle() & SWT.ARROW) == SWT.ARROW);

-			}

-

-			public void checkFlatButton() {

-				Object element = XWT.findElementByName(root, "FlatButton");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				assertTrue((button.getStyle() & SWT.FLAT) == SWT.FLAT);

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Alignment.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Alignment.java
deleted file mode 100644
index 9146af4..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Alignment.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.button;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Button_Alignment {

-	public static void main(String[] args) {

-		URL url = Button_Alignment.class.getResource(Button_Alignment.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Alignment.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Alignment.xwt
deleted file mode 100644
index 06f73f8..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Alignment.xwt
+++ /dev/null
@@ -1,21 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	text="Button Alignment Test">

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>

-	<Group text="buttons">

-		<Button name="ButtonLeft" text="Alignment(LEFT)" Bounds="10, 10, 200, 50" alignment="LEFT"/>

-		<Button name="ButtonCenter" text="Alignment(CENTER)" Bounds="10, 70, 200, 50" alignment="CENTER"/>

-		<Button name="ButtonRight" text="Alignment(RIGHT)" Bounds="10, 130, 200, 50" alignment="RIGHT"/>

-	</Group>

-	<Group text="arrows">

-		<Group.layout>

-			<GridLayout numColumns="4"/>

-		</Group.layout>

-    	<Button x:style="ARROW" alignment="LEFT" tooltipText="SWT.LEFT"/>

-		<Button x:style="ARROW" alignment="RIGHT" tooltipText="SWT.RIGHT"/>

-		<Button x:style="ARROW" alignment="UP" tooltipText="SWT.UP"/>

-		<Button x:style="ARROW" alignment="DOWN" tooltipText="SWT.DOWN"/>

-	</Group>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Enabled.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Enabled.java
deleted file mode 100644
index 203bed2..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Enabled.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.button;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Button_Enabled {

-	public static void main(String[] args) {

-		URL url = Button_Enabled.class.getResource(Button_Enabled.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Enabled.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Enabled.xwt
deleted file mode 100644
index 5948386..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Enabled.xwt
+++ /dev/null
@@ -1,9 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	text="Button Enabled Test">

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>

-	<Button name="EnabledButton" text="Enabled(true)" enabled="true"/>

-	<Button name="NotEnabledButton" text="Enabled(false)" enabled="false"/>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Styles.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Styles.java
deleted file mode 100644
index 834b1d1..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Styles.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-/*************************************************

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.button;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Button_Styles {

-	public static void main(String[] args) {

-		URL url = Button_Styles.class.getResource(Button_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Styles.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Styles.xwt
deleted file mode 100644
index e94ec77..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Styles.xwt
+++ /dev/null
@@ -1,13 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	text="Button Styles Test">

-	<Shell.layout>

-		<GridLayout numColumns="7"/>

-	</Shell.layout>

-	<Button name="PushButton" x:style="PUSH" text="SWT.PUSH" />

-	<Button name="CheckButton" x:style="CHECK" text="SWT.CHECK" />

-	<Button name="RadioButton" x:style="RADIO" text="SWT.RADIO" />

-	<Button name="ToggleButton" x:style="TOGGLE" text="SWT.TOGGLE" />

-	<Button name="ArrowButton" x:style="ARROW" text="SWT.ARROW" />

-	<Button name="FlatButton" x:style="FLAT" text="SWT.FLAT" />

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Visible.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Visible.java
deleted file mode 100644
index c5fd1a3..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Visible.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.button;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Button_Visible {

-	public static void main(String[] args) {

-		URL url = Button_Visible.class.getResource(Button_Visible.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Visible.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Visible.xwt
deleted file mode 100644
index 4db6cd3..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Visible.xwt
+++ /dev/null
@@ -1,9 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	text="Button Visible Test">

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>

-	<Button name="buttonVisible" text="Visible(true)" visible="true"/>

-	<Button name="buttonNonVisible" text="Visible(false)" visible="false"/>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/command/ButtonCommand.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/command/ButtonCommand.java
deleted file mode 100644
index 28a4e48..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/command/ButtonCommand.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.button.command;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author yyang

- */

-public class ButtonCommand {

-	public static void main(String[] args) {

-		XWT.registerCommand("Message", new MessageCommand());

-		URL url = ButtonCommand.class.getResource(ButtonCommand.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/command/ButtonCommand.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/command/ButtonCommand.xwt
deleted file mode 100644
index 034f70a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/command/ButtonCommand.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	text="Button Visible Test">

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>

-	<Button text="Open Message" Command="Message"/>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/command/MessageCommand.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/command/MessageCommand.java
deleted file mode 100644
index 994b9a0..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/command/MessageCommand.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.button.command;

-

-import org.eclipse.jface.dialogs.MessageDialog;

-import org.eclipse.xwt.input.RoutedCommand;

-

-public class MessageCommand extends RoutedCommand {

-

-	public MessageCommand() {

-	}

-

-	@Override

-	public void execute(Object parameter) {

-		MessageDialog.openInformation(null, "Message", "Command message");

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/canvas/Canvas_Styles.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/canvas/Canvas_Styles.java
deleted file mode 100644
index f61f8aa..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/canvas/Canvas_Styles.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.canvas;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Canvas_Styles {

-	public static void main(String[] args) {

-		URL url = Canvas_Styles.class.getResource(Canvas_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/canvas/Canvas_Styles.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/canvas/Canvas_Styles.xwt
deleted file mode 100644
index d4a5e5b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/canvas/Canvas_Styles.xwt
+++ /dev/null
@@ -1,13 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	text="Canvas Styles Test">

-	<Shell.layout>

-		<FillLayout/>

-	</Shell.layout>

-	<Canvas x:style="H_SCROLL | BORDER | V_SCROLL">

-		<Canvas.layout>

-			<GridLayout numColumns="1"/>

-		</Canvas.layout>

-		<Label text="This is a canvas"/>

-	</Canvas>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ccombo/CComboTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ccombo/CComboTests.java
deleted file mode 100644
index 701302d..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ccombo/CComboTests.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.ccombo;

-

-import java.net.URL;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.custom.CCombo;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class CComboTests extends XWTTestCase {

-

-	public void testCComboStyle() throws Exception {

-		Runnable prepare = new Runnable() {

-			public void run() {

-			}

-		};

-

-		Runnable checker = new Runnable() {

-			public void run() {

-				checkComboStyle("combo1", SWT.READ_ONLY);

-				checkComboStyle("combo2", SWT.FLAT);

-				checkComboStyle("combo3", SWT.BORDER);

-			}

-

-			public void checkComboStyle(String name, int style) {

-				Object element = XWT.findElementByName(root, name);

-				assertTrue(element instanceof CCombo);

-				CCombo combo = (CCombo) element;

-				assertTrue((combo.getStyle() & style) == style);

-			}

-		};

-

-		URL url = CCombo_Styles.class.getResource(CCombo_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, prepare, checker);

-	}

-

-	public void testCComboItems() throws Exception {

-		Runnable prepare = new Runnable() {

-			public void run() {

-			}

-		};

-

-		Runnable checker = new Runnable() {

-			public void run() {

-				checkComboItems("combo1", new String[] { "Item1", "Item2",

-						"Item3", "Item4" });

-			}

-

-			public void checkComboItems(String name, String[] items) {

-				Object element = XWT.findElementByName(root, name);

-				assertTrue(element instanceof CCombo);

-				CCombo combo = (CCombo) element;

-				assertEqualsArray(combo.getItems(), items);

-			}

-		};

-

-		URL url = CCombo_Styles.class.getResource(CCombo_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, prepare, checker);

-	}

-

-	public void testCComboText() throws Exception {

-		Runnable prepare = new Runnable() {

-			public void run() {

-			}

-		};

-

-		Runnable checker = new Runnable() {

-			public void run() {

-				checkComboText("combo3", "Item3");

-			}

-

-			public void checkComboText(String name, String item) {

-				Object element = XWT.findElementByName(root, name);

-				assertTrue(element instanceof CCombo);

-				CCombo combo = (CCombo) element;

-				assertEquals(combo.getText(), item);

-			}

-		};

-

-		URL url = CCombo_Styles.class.getResource(CCombo_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, prepare, checker);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ccombo/CCombo_Styles.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ccombo/CCombo_Styles.java
deleted file mode 100644
index e920b27..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ccombo/CCombo_Styles.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.ccombo;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class CCombo_Styles {

-	public static void main(String[] args) {

-		URL url = CCombo_Styles.class.getResource(CCombo_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ccombo/CCombo_Styles.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ccombo/CCombo_Styles.xwt
deleted file mode 100644
index 519ff79..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ccombo/CCombo_Styles.xwt
+++ /dev/null
@@ -1,39 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:java.lang"

-    text="CCombo Styles Test">

-	<Shell.layout>

-		<GridLayout numColumns="2"/>

-	</Shell.layout>

-	<Label text="READ_ONLY: "/>

-	<CCombo name="combo1" x:style="READ_ONLY">

-		<CCombo.items>

-			<x:Array Type="j:String">

-	             <j:String>Item1</j:String>

-	             <j:String>Item2</j:String>

-	             <j:String>Item3</j:String>

-	             <j:String>Item4</j:String>

-   		    </x:Array> 

-		</CCombo.items>

-	</CCombo>

-	<Label text="FLAT: "/>

-	<CCombo name="combo2" x:style="FLAT">

-		<CCombo.items>

-			<x:Array Type="j:String">

-	             <j:String>Item1</j:String>

-	             <j:String>Item2</j:String>

-	             <j:String>Item3</j:String>

-	             <j:String>Item4</j:String>

-   		     </x:Array> 

-		</CCombo.items>

-	</CCombo>

-	<Label text="BORDER: "/>

-	<CCombo name="combo3" x:style="BORDER" text="Item3">

-		<CCombo.items>

-             <j:String>Item1</j:String>

-             <j:String>Item2</j:String>

-             <j:String>Item3</j:String>

-             <j:String>Item4</j:String>

-		</CCombo.items>

-	</CCombo>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/clabel/CLabel_Styles.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/clabel/CLabel_Styles.java
deleted file mode 100644
index 81e4b09..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/clabel/CLabel_Styles.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.clabel;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class CLabel_Styles {

-	public static void main(String[] args) {

-		URL url = CLabel_Styles.class.getResource(CLabel_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/clabel/CLabel_Styles.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/clabel/CLabel_Styles.xwt
deleted file mode 100644
index ba8a094..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/clabel/CLabel_Styles.xwt
+++ /dev/null
@@ -1,10 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    text="CLable Styles Test">

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>

-	<CLabel x:style="SHADOW_NONE" text="SHADOW_NONE"/>

-	<CLabel x:style="SHADOW_IN" text="SHADOW_IN"/>

-	<CLabel x:style="SHADOW_OUT" text="SHADOW_OUT"/>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/combo/ComboTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/combo/ComboTests.java
deleted file mode 100644
index 1e455f7..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/combo/ComboTests.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.combo;

-

-import java.net.URL;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.widgets.Combo;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class ComboTests extends XWTTestCase {

-

-	public void testComboStyle() throws Exception {

-		Runnable prepare = new Runnable() {

-			public void run() {

-			}

-		};

-

-		Runnable checker = new Runnable() {

-			public void run() {

-				checkComboStyle("combo1", SWT.DROP_DOWN);

-				checkComboStyle("combo2", SWT.DROP_DOWN | SWT.READ_ONLY);

-				checkComboStyle("combo3", SWT.SIMPLE);

-			}

-

-			public void checkComboStyle(String name, int style) {

-				Object element = XWT.findElementByName(root, name);

-				assertTrue(element instanceof Combo);

-				Combo combo = (Combo) element;

-				assertTrue((combo.getStyle() & style) == style);

-			}

-		};

-

-		URL url = Combo_Styles.class.getResource(Combo_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, prepare, checker);

-	}

-

-	public void testComboItems() throws Exception {

-		Runnable prepare = new Runnable() {

-			public void run() {

-			}

-		};

-

-		Runnable checker = new Runnable() {

-			public void run() {

-				checkComboItems("combo1", new String[] { "Item1", "Item2",

-						"Item3", "Item4" });

-			}

-

-			public void checkComboItems(String name, String[] items) {

-				Object element = XWT.findElementByName(root, name);

-				assertTrue(element instanceof Combo);

-				Combo combo = (Combo) element;

-				assertEqualsArray(combo.getItems(), items);

-			}

-		};

-

-		URL url = Combo_Styles.class.getResource(Combo_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, prepare, checker);

-	}

-

-	public void testComboText() throws Exception {

-		Runnable prepare = new Runnable() {

-			public void run() {

-			}

-		};

-

-		Runnable checker = new Runnable() {

-			public void run() {

-				checkComboText("combo3", "Item3");

-			}

-

-			public void checkComboText(String name, String item) {

-				Object element = XWT.findElementByName(root, name);

-				assertTrue(element instanceof Combo);

-				Combo combo = (Combo) element;

-				assertEquals(combo.getText(), item);

-			}

-		};

-

-		URL url = Combo_Styles.class.getResource(Combo_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, prepare, checker);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/combo/Combo_Styles.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/combo/Combo_Styles.java
deleted file mode 100644
index bf01f60..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/combo/Combo_Styles.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.combo;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Combo_Styles {

-	public static void main(String[] args) {

-		URL url = Combo_Styles.class.getResource(Combo_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/combo/Combo_Styles.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/combo/Combo_Styles.xwt
deleted file mode 100644
index a1eb870..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/combo/Combo_Styles.xwt
+++ /dev/null
@@ -1,41 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:java.lang"

-    text="Combo Styles Test">

-	<Shell.layout>

-		<GridLayout numColumns="2"/>

-	</Shell.layout>

-	<Label text="DROP_DOWN: "/>

-	<Combo name="combo1" x:style="DROP_DOWN">

-		<Combo.items>

-			<x:Array Type="j:String">

-	             <j:String>Item1</j:String>

-	             <j:String>Item2</j:String>

-	             <j:String>Item3</j:String>

-	             <j:String>Item4</j:String>

-   		     </x:Array> 

-		</Combo.items>

-	</Combo>

-	<Label text="DROP_DOWN|READ_ONLY: "/>

-	<Combo name="combo2" x:style="DROP_DOWN|READ_ONLY">

-		<Combo.items>

-			<x:Array Type="j:String">

-	             <j:String>Item1</j:String>

-	             <j:String>Item2</j:String>

-	             <j:String>Item3</j:String>

-	             <j:String>Item4</j:String>

-   		     </x:Array> 

-		</Combo.items>

-	</Combo>

-	<Label text="SIMPLE: "/>

-	<Combo name="combo3" x:style="SIMPLE" text="Item3">

-		<Combo.items>

-			<x:Array Type="j:String">

-	             <j:String>Item1</j:String>

-	             <j:String>Item2</j:String>

-	             <j:String>Item3</j:String>

-	             <j:String>Item4</j:String>

-   		     </x:Array> 

-		</Combo.items>

-	</Combo>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/coolbar/CoolBar_Styles.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/coolbar/CoolBar_Styles.java
deleted file mode 100644
index efafcb5..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/coolbar/CoolBar_Styles.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.coolbar;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class CoolBar_Styles {

-	public static void main(String[] args) {

-		URL url = CoolBar_Styles.class.getResource(CoolBar_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/coolbar/CoolBar_Styles.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/coolbar/CoolBar_Styles.xwt
deleted file mode 100644
index 3aae315..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/coolbar/CoolBar_Styles.xwt
+++ /dev/null
@@ -1,26 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"

-	text="CoolBar Styles Test">

-	<Shell.layout>

-		<FillLayout />

-	</Shell.layout>

-	<CoolBar x:style="HORIZONTAL">

-		<CoolItem x:style="DROP_DOWN" size="100, 25">

-			<!--

-				height of toolBar must equal than 24

-			-->

-			<CoolItem.control>

-				<ToolBar x:style="HORIZONTAL |SHADOW_OUT">

-					<ToolItem x:style="PUSH" Image="openFolder.gif"

-						tooltipText="SWT.PUSH" />

-					<ToolItem x:style="RADIO" selection="true" Image="closedFolder.gif"

-						tooltipText="SWT.RADIO" />

-					<ToolItem x:style="CHECK" selection="true" Image="target.gif"

-						tooltipText="SWT.CHECK" />

-					<ToolItem x:style="RADIO" selection="true" Image="closedFolder.gif"

-						tooltipText="SWT.RADIO" />

-					<ToolItem x:style="SEPARATOR" tooltipText="SWT.SEPARATOR" />

-				</ToolBar>

-			</CoolItem.control>

-		</CoolItem>

-	</CoolBar>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ctabfolder/CTabFolder_Styles.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ctabfolder/CTabFolder_Styles.java
deleted file mode 100644
index 259c848..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ctabfolder/CTabFolder_Styles.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.ctabfolder;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class CTabFolder_Styles {

-	public static void main(String[] args) {

-		URL url = CTabFolder_Styles.class.getResource(CTabFolder_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ctabfolder/CTabFolder_Styles.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ctabfolder/CTabFolder_Styles.xwt
deleted file mode 100644
index add78b9..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ctabfolder/CTabFolder_Styles.xwt
+++ /dev/null
@@ -1,51 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    text="TabFolder Styles Test">

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>

-	<CTabFolder>

-		<CTabItem text="item1">

-			<CTabItem.control>

-				<Label text="TabItem 1"/>

-			</CTabItem.control>

-		</CTabItem>

-		<CTabItem text="item2">

-			<CTabItem.control>

-				<Label text="TabItem 2"/>

-			</CTabItem.control>

-		</CTabItem>

-		<CTabItem text="item3">

-			<CTabItem.control>

-				<Label text="TabItem 3"/>

-			</CTabItem.control>

-		</CTabItem>

-		<CTabFolder.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" 

-				grabExcessVerticalSpace="true"

-				grabExcessHorizontalSpace="true"/>

-		</CTabFolder.layoutData>		

-	</CTabFolder>

-	<CTabFolder x:style="BOTTOM">

-		<CTabItem text="item1">

-			<CTabItem.control>

-				<Label text="TabItem 1"/>

-			</CTabItem.control>

-		</CTabItem>

-		<CTabItem text="item2">

-			<CTabItem.control>

-				<Label text="TabItem 2"/>

-			</CTabItem.control>

-		</CTabItem>

-		<CTabItem text="item3">

-			<CTabItem.control>

-				<Label text="TabItem 3"/>

-			</CTabItem.control>

-		</CTabItem>

-		<CTabFolder.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" 

-				grabExcessVerticalSpace="true"

-				grabExcessHorizontalSpace="true"/>

-		</CTabFolder.layoutData>		

-	</CTabFolder>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/datetime/DateTime_Styles.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/datetime/DateTime_Styles.java
deleted file mode 100644
index 41b5c13..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/datetime/DateTime_Styles.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.datetime;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class DateTime_Styles {

-	public static void main(String[] args) {

-		URL url = DateTime_Styles.class.getResource(DateTime_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/datetime/DateTime_Styles.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/datetime/DateTime_Styles.xwt
deleted file mode 100644
index 7d52696..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/datetime/DateTime_Styles.xwt
+++ /dev/null
@@ -1,14 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    text="DateTime Styles Test">

-	<Shell.layout>

-		<GridLayout numColumns="2"/>

-	</Shell.layout>

-	<Label text="Date(SHORT): "/><DateTime x:style="DATE | BORDER | SHORT"/>

-	<Label text="Date(MEDIUM): "/><DateTime x:style="DATE | BORDER | MEDIUM"/>

-	<Label text="Date(LONG): "/><DateTime x:style="DATE | BORDER | LONG"/>

-	<Label text="Time(SHORT): "/><DateTime x:style="TIME | BORDER | SHORT"/>

-	<Label text="Time(MEDIUM): "/><DateTime x:style="TIME | BORDER | MEDIUM"/>

-	<Label text="Time(LONG): "/><DateTime x:style="TIME | BORDER | LONG"/>

-	<Label text="Calendar: "/><DateTime x:style="CALENDAR"/>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/expandbar/ExpandBar_Test.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/expandbar/ExpandBar_Test.java
deleted file mode 100644
index b3f7013..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/expandbar/ExpandBar_Test.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.expandbar;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class ExpandBar_Test {

-	public static void main(String[] args) {

-		URL url = ExpandBar_Test.class.getResource(ExpandBar_Test.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/expandbar/ExpandBar_Test.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/expandbar/ExpandBar_Test.xwt
deleted file mode 100644
index 97b18d9..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/expandbar/ExpandBar_Test.xwt
+++ /dev/null
@@ -1,24 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    text="ExpandBar Test">

-    <Shell.layout>

-    	<FillLayout/>

-    </Shell.layout>

-    <ExpandBar x:style="V_SCROLL">

-    	<ExpandItem text="A button add for item1">

-    		<ExpandItem.control>

-	    		<Button text="Item1"/>	

-    		</ExpandItem.control>

-    	</ExpandItem>

-    	<ExpandItem text="A label add for item1" expanded="true" >

-    		<ExpandItem.control>

-    			<Label text="Item2"/>	

-    		</ExpandItem.control>

-    	</ExpandItem>

-    	<ExpandItem text="A text add for item1" >

-    		<ExpandItem.control>

-	    		<Text x:style="BORDER" text="Item3"/>	

-    		</ExpandItem.control>

-    	</ExpandItem>

-	</ExpandBar>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/group/Group_Styles.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/group/Group_Styles.java
deleted file mode 100644
index 9849e8e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/group/Group_Styles.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.group;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Group_Styles {

-	public static void main(String[] args) {

-		URL url = Group_Styles.class.getResource(Group_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/group/Group_Styles.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/group/Group_Styles.xwt
deleted file mode 100644
index 1d9c3c0..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/group/Group_Styles.xwt
+++ /dev/null
@@ -1,37 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    text="Group Styles Test">

-    <Shell.layout>

-    	<GridLayout numColumns="1"/>

-    </Shell.layout>

-    <Group text="SWT.SHADOW_ETCHED_IN" x:style="SHADOW_ETCHED_IN">

-    	<Group.layout>

-    		<FillLayout/>

-    	</Group.layout>

-    	<Text  x:style="BORDER" text="Group style is SWT.SHADOW_ETCHED_IN"/>

-    </Group>

-    <Group text="SWT.SHADOW_ETCHED_OUT" x:style="SHADOW_ETCHED_OUT">

-    	<Group.layout>

-    		<FillLayout/>

-    	</Group.layout>

-    	<Text x:style="BORDER" text="Group style is SWT.SHADOW_ETCHED_OUT"/>

-    </Group>

-    <Group text="SWT.SHADOW_IN" x:style="SHADOW_IN">

-    	<Group.layout>

-    		<FillLayout/>

-    	</Group.layout>

-    	<Text x:style="BORDER" text="Group style is SWT.SHADOW_IN"/>

-    </Group>

-    <Group text="SWT.SHADOW_OUT" x:style="SHADOW_OUT">

-   		 <Group.layout>

-    		<FillLayout/>

-    	</Group.layout>

-    	<Text x:style="BORDER"  text="Group style is SWT.SHADOW_OUT"/>

-    </Group>

-    <Group text="SWT.SHADOW_NONE" x:style="SHADOW_NONE">

-   		 <Group.layout>

-    		<FillLayout/>

-    	</Group.layout>

-    	<Text x:style="BORDER"  text="Group style is SWT.SHADOW_NONE"/>

-    </Group>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/label/Label_Alignment.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/label/Label_Alignment.java
deleted file mode 100644
index 3e4e7e2..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/label/Label_Alignment.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.label;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Label_Alignment {

-	public static void main(String[] args) {

-		URL url = Label_Alignment.class.getResource(Label_Alignment.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/label/Label_Alignment.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/label/Label_Alignment.xwt
deleted file mode 100644
index 2341f3e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/label/Label_Alignment.xwt
+++ /dev/null
@@ -1,7 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	text="Label Alignment Test">

-	<Label x:style="BORDER" Bounds="10, 10, 200, 50" text="Alignment(LEFT)" alignment="LEFT"/>

-	<Label x:style="BORDER" Bounds="10, 70, 200, 50" text="Alignment(CENTER)" alignment="CENTER"/>

-	<Label x:style="BORDER" Bounds="10, 130, 200, 50" text="Alignment(RIGHT)" alignment="RIGHT"/>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/label/Label_Styles.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/label/Label_Styles.java
deleted file mode 100644
index daa5ce4..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/label/Label_Styles.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.label;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Label_Styles {

-	public static void main(String[] args) {

-		URL url = Label_Styles.class.getResource(Label_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/label/Label_Styles.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/label/Label_Styles.xwt
deleted file mode 100644
index c6682c4..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/label/Label_Styles.xwt
+++ /dev/null
@@ -1,9 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    text="Label Styles Test">

-	<Shell.layout>

-		<GridLayout numColumns="2"/>

-	</Shell.layout>

-	<Label text="Separator(Horizontal): "/><Label x:style="SEPARATOR | HORIZONTAL"/>

-	<Label text="Separator(Vertical): "/><Label x:style="SEPARATOR | VERTICAL"/>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FillComposite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FillComposite.java
deleted file mode 100644
index 2ca0133..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FillComposite.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.layout;

-

-import org.eclipse.swt.layout.FillLayout;

-import org.eclipse.swt.widgets.Composite;

-

-public class FillComposite extends Composite {

-

-	public FillComposite(Composite parent, int style) {

-		super(parent, style);

-		setLayout(new FillLayout());

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FillLayout_Test.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FillLayout_Test.java
deleted file mode 100644
index 43a9aca..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FillLayout_Test.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.layout;

-

-import java.net.URL;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.layout.FillLayout;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Group;

-import org.eclipse.swt.widgets.Spinner;

-import org.eclipse.swt.widgets.Widget;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class FillLayout_Test {

-	public static void main(String[] args) {

-

-		URL url = FillLayout_Test.class.getResource(FillLayout_Test.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	private Group findGroup(Widget widget) {

-		if (widget instanceof Control) {

-			Control control = (Control) widget;

-			Composite parent = control.getParent();

-			for (Control child : parent.getChildren()) {

-				if (child instanceof Group

-						&& (("layout".equals(((Group) child).getText())))) {

-					return ((Group) child);

-				}

-			}

-			return findGroup(parent.getParent());

-		}

-		return null;

-	}

-

-	private void layout(Composite composite) {

-		if (composite != null) {

-			composite.layout(true, true);

-			layout(composite.getParent());

-		}

-	}

-

-	protected void updateTypeHorizontal(Event event) {

-		Button widget = (Button) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			FillLayout layout = (FillLayout) layGroup.getLayout();

-			layout.type = SWT.HORIZONTAL;

-			layout(layGroup);

-		}

-	}

-

-	protected void updateTypeVertical(Event event) {

-		Button widget = (Button) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			FillLayout layout = (FillLayout) layGroup.getLayout();

-			layout.type = SWT.VERTICAL;

-			layout(layGroup);

-		}

-	}

-

-	protected void updateMarginWidth(Event event) {

-		Spinner widget = (Spinner) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			FillLayout layout = (FillLayout) layGroup.getLayout();

-			layout.marginWidth = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-

-	protected void updateMarginHeight(Event event) {

-		Spinner widget = (Spinner) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			FillLayout layout = (FillLayout) layGroup.getLayout();

-			layout.marginHeight = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-

-	protected void updateSpacing(Event event) {

-		Spinner widget = (Spinner) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			FillLayout layout = (FillLayout) layGroup.getLayout();

-			layout.spacing = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FillLayout_Test.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FillLayout_Test.xwt
deleted file mode 100644
index d433446..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FillLayout_Test.xwt
+++ /dev/null
@@ -1,41 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	x:Class="org.eclipse.xwt.tests.controls.layout.FillLayout_Test"

-	text="FillLayout - Test">

-	<Shell.layout>

-		<GridLayout numColumns="2"/>

-	</Shell.layout>

-	<Group text="layout">

-		<Group.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"/>

-		</Group.layoutData>

-		<Group.layout>

-		    <FillLayout type="HORIZONTAL"/>

-		</Group.layout>

-		<Button text="button1"/>

-		<Button text="button2"/>

-		<Button text="button3"/>

-		<Button text="LongTextButton1"/>

-		<Button text="LongTextButton2"/>

-	</Group>

-	<Group text ="Parameters">

-		<Group.layout>

-		    <GridLayout numColumns="2"/>

-		</Group.layout>

-		<Group text ="Type">

-			<Group.layout>

-		    	<FillLayout type="VERTICAL"/>

-			</Group.layout>

-			<Button x:style="RADIO" text="SWT.HORIZONTAL" selection="true" SelectionEvent="updateTypeHorizontal"/>

-			<Button x:style="RADIO" text="SWT.VERTICAL" SelectionEvent="updateTypeVertical"/>

-		</Group>

-		<Group text ="Margins and Spacings">

-			<Group.layout>

-		    	<GridLayout numColumns="2"/>

-			</Group.layout>

-			<Label text="marginWidth"/><Spinner x:Name="marginWidth" x:style="BORDER" selection="0" SelectionEvent="updateMarginWidth"/>

-			<Label text="marginHeight"/><Spinner x:style="BORDER" selection="0" SelectionEvent="updateMarginHeight"/>

-			<Label text="spacing"/><Spinner x:style="BORDER" selection="0" SelectionEvent="updateSpacing"/>

-		</Group>

-	</Group>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FormLayout_Test.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FormLayout_Test.java
deleted file mode 100644
index 32a25a0..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FormLayout_Test.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.layout;

-

-import java.net.URL;

-

-import org.eclipse.swt.layout.FormLayout;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Group;

-import org.eclipse.swt.widgets.Spinner;

-import org.eclipse.swt.widgets.Widget;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class FormLayout_Test {

-	public static void main(String[] args) {

-

-		URL url = FormLayout_Test.class.getResource(FormLayout_Test.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	private Group findGroup(Widget widget) {

-		if (widget == null) {

-			return null;

-		}

-		if (widget instanceof Composite) {

-			Composite composite = (Composite) widget;

-			for (Control child : composite.getChildren()) {

-				if (child instanceof Group

-						&& (("layout".equals(((Group) child).getText())))) {

-					return ((Group) child);

-				}

-			}

-			return findGroup(composite.getParent());

-		} else if (widget instanceof Control) {

-			return findGroup(((Control) widget).getParent());

-		}

-		return null;

-	}

-

-	private void layout(Composite composite) {

-		if (composite != null) {

-			composite.layout(true, true);

-			layout(composite.getParent());

-		}

-	}

-

-	protected void updateMarginWidth(Event event) {

-		Spinner widget = (Spinner) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			FormLayout layout = (FormLayout) layGroup.getLayout();

-			layout.marginWidth = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-

-	protected void updateMarginHeight(Event event) {

-		Spinner widget = (Spinner) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			FormLayout layout = (FormLayout) layGroup.getLayout();

-			layout.marginHeight = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-

-	protected void updateMarginLeft(Event event) {

-		Spinner widget = (Spinner) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			FormLayout layout = (FormLayout) layGroup.getLayout();

-			layout.marginLeft = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-

-	protected void updateMarginRight(Event event) {

-		Spinner widget = (Spinner) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			FormLayout layout = (FormLayout) layGroup.getLayout();

-			layout.marginRight = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-

-	protected void updateMarginTop(Event event) {

-		Spinner widget = (Spinner) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			FormLayout layout = (FormLayout) layGroup.getLayout();

-			layout.marginTop = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-

-	protected void updateMarginBottom(Event event) {

-		Spinner widget = (Spinner) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			FormLayout layout = (FormLayout) layGroup.getLayout();

-			layout.marginBottom = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-

-	protected void updateSpacing(Event event) {

-		Spinner widget = (Spinner) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			FormLayout layout = (FormLayout) layGroup.getLayout();

-			layout.spacing = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FormLayout_Test.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FormLayout_Test.xwt
deleted file mode 100644
index e17b328..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FormLayout_Test.xwt
+++ /dev/null
@@ -1,39 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	x:Class="org.eclipse.xwt.tests.controls.layout.FormLayout_Test"

-	text="FormLayout - Test">

-	<Shell.layout>

-		<GridLayout numColumns="2"/>

-	</Shell.layout>

-	<Group text="layout">

-		<Group.layout>

-		    <FormLayout/>

-		</Group.layout>

-		<Group.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL">

-			</GridData>

-		</Group.layoutData>

-		<Button text="button1"/>

-		<Button text="button2"/>

-		<Button text="button3"/>

-		<Button text="LongTextButton1"/>

-		<Button text="LongTextButton2"/>

-	</Group>

-	<Group text ="Parameters">

-		<Group.layout>

-		    <GridLayout numColumns="1"/>

-		</Group.layout>

-		<Group text ="Margins and Spacings">

-			<Group.layout>

-		    	<GridLayout numColumns="2"/>

-			</Group.layout>

-			<Label text="marginWidth"/><Spinner x:Name="marginWidth" x:style="BORDER" selection="0" SelectionEvent="updateMarginWidth"/>

-			<Label text="marginHeight"/><Spinner x:style="BORDER" selection="0" SelectionEvent="updateMarginHeight"/>

-			<Label text="marginLeft"/><Spinner x:style="BORDER" selection="0" SelectionEvent="updateMarginLeft"/>

-			<Label text="marginRight"/><Spinner x:style="BORDER" selection="0" SelectionEvent="updateMarginRight"/>

-			<Label text="marginTop"/><Spinner x:style="BORDER" selection="0" SelectionEvent="updateMarginTop"/>

-			<Label text="marginBottom"/><Spinner x:style="BORDER" selection="0" SelectionEvent="updateMarginBottom"/>

-			<Label text="spacing"/><Spinner x:style="BORDER" selection="0" SelectionEvent="updateSpacing"/>

-		</Group>

-	</Group>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/GridLayout_Test.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/GridLayout_Test.java
deleted file mode 100644
index ced8f64..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/GridLayout_Test.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.layout;

-

-import java.net.URL;

-

-import org.eclipse.swt.layout.GridLayout;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Group;

-import org.eclipse.swt.widgets.Spinner;

-import org.eclipse.swt.widgets.Widget;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class GridLayout_Test {

-	public static void main(String[] args) {

-

-		URL url = GridLayout_Test.class.getResource(GridLayout_Test.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	private Group findGroup(Widget widget) {

-		if (widget instanceof Control) {

-			Control control = (Control) widget;

-			Composite parent = control.getParent();

-			for (Control child : parent.getChildren()) {

-				if (child instanceof Group

-						&& (("layout".equals(((Group) child).getText())))) {

-					return ((Group) child);

-				}

-			}

-			return findGroup(parent.getParent());

-		}

-		return null;

-	}

-

-	protected void updateNumColumns(Event event) {

-		Spinner widget = (Spinner) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			GridLayout layout = (GridLayout) layGroup.getLayout();

-			layout.numColumns = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-

-	private void layout(Composite composite) {

-		if (composite != null) {

-			composite.layout(true, true);

-			layout(composite.getParent());

-		}

-	}

-

-	protected void updateMakeColunsEqual(Event event) {

-		Button widget = (Button) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			GridLayout layout = (GridLayout) layGroup.getLayout();

-			layout.makeColumnsEqualWidth = widget.getSelection();

-			for (Control control : layGroup.getChildren()) {

-				control.setLayoutData(null);

-			}

-			layout(layGroup);

-		}

-	}

-

-	protected void updateMarginWidth(Event event) {

-		Spinner widget = (Spinner) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			GridLayout layout = (GridLayout) layGroup.getLayout();

-			layout.marginWidth = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-

-	protected void updateMarginHeight(Event event) {

-		Spinner widget = (Spinner) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			GridLayout layout = (GridLayout) layGroup.getLayout();

-			layout.marginHeight = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-

-	protected void updateMarginLeft(Event event) {

-		Spinner widget = (Spinner) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			GridLayout layout = (GridLayout) layGroup.getLayout();

-			layout.marginLeft = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-

-	protected void updateMarginRight(Event event) {

-		Spinner widget = (Spinner) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			GridLayout layout = (GridLayout) layGroup.getLayout();

-			layout.marginRight = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-

-	protected void updateMarginTop(Event event) {

-		Spinner widget = (Spinner) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			GridLayout layout = (GridLayout) layGroup.getLayout();

-			layout.marginTop = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-

-	protected void updateMarginBottom(Event event) {

-		Spinner widget = (Spinner) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			GridLayout layout = (GridLayout) layGroup.getLayout();

-			layout.marginBottom = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-

-	protected void updateHSpacing(Event event) {

-		Spinner widget = (Spinner) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			GridLayout layout = (GridLayout) layGroup.getLayout();

-			layout.horizontalSpacing = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-

-	protected void updateVSpacing(Event event) {

-		Spinner widget = (Spinner) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			GridLayout layout = (GridLayout) layGroup.getLayout();

-			layout.verticalSpacing = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/GridLayout_Test.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/GridLayout_Test.xwt
deleted file mode 100644
index e82b52a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/GridLayout_Test.xwt
+++ /dev/null
@@ -1,54 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	x:Class="org.eclipse.xwt.tests.controls.layout.GridLayout_Test"

-	text="GridLayout - Test">

-	<Shell.layout>

-		<GridLayout numColumns="2"/>

-	</Shell.layout>

-	<Group text="layout">

-		<Group.layout>

-		    <GridLayout numColumns="1" 

-		     	makeColumnsEqualWidth="true" marginWidth="5" 

-		     	marginHeight="5" marginLeft="0" marginTop="0" 

-		     	marginRight="0" marginBottom="0" 

-		     	horizontalSpacing="5" verticalSpacing="5"/>

-		</Group.layout>

-		<Group.layoutData>

-			<GridData horizontalAlignment="GridData.FILL" verticalAlignment="GridData.FILL">

-			</GridData>

-		</Group.layoutData>

-		<Button text="button1"/>

-		<Button text="button2"/>

-		<Button text="button3"/>

-		<Button text="LongTextButton1"/>

-		<Button text="LongTextButton2"/>

-	</Group>

-	<Group text ="Parameters">

-		<Group.layout>

-		    <GridLayout numColumns="2"/>

-		</Group.layout>

-		<Group text ="Columns">

-			<Group.layoutData>

-				<GridData horizontalAlignment="FILL" verticalAlignment="FILL"/>

-			</Group.layoutData>

-		    <Group.layout>

-		    	<GridLayout numColumns="2"/>

-			</Group.layout>

-			<Label text="numColumns"/><Spinner x:style="BORDER" selection="1" SelectionEvent="updateNumColumns"/>

-			<Button x:style="CHECK" selection="true" text="makeColunsEqualWidth" SelectionEvent="updateMakeColunsEqual"/>

-		</Group>

-		<Group text ="Margins and Spacings">

-			<Group.layout>

-		    	<GridLayout numColumns="2"/>

-			</Group.layout>

-			<Label text="marginWidth"/><Spinner x:Name="marginWidth" x:style="BORDER" selection="5" SelectionEvent="updateMarginWidth"/>

-			<Label text="marginHeight"/><Spinner x:style="BORDER" selection="5" SelectionEvent="updateMarginHeight"/>

-			<Label text="marginLeft"/><Spinner x:style="BORDER" SelectionEvent="updateMarginLeft"/>

-			<Label text="marginRight"/><Spinner x:style="BORDER" SelectionEvent="updateMarginRight"/>

-			<Label text="marginTop"/><Spinner x:style="BORDER" SelectionEvent="updateMarginTop"/>

-			<Label text="marginBottom"/><Spinner x:style="BORDER" SelectionEvent="updateMarginBottom"/>

-			<Label text="horizontalSpacing"/><Spinner x:style="BORDER" selection="5" SelectionEvent="updateHSpacing"/>

-			<Label text="verticalSpacing"/><Spinner x:style="BORDER" selection="5" SelectionEvent="updateVSpacing"/>

-		</Group>

-	</Group>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/LayoutTestSuite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/LayoutTestSuite.java
deleted file mode 100644
index e993b50..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/LayoutTestSuite.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.layout;

-

-import junit.framework.Test;

-import junit.framework.TestSuite;

-

-public class LayoutTestSuite extends TestSuite {

-	public static final Test suite() {

-		return new LayoutTestSuite();

-	}

-

-	public LayoutTestSuite() {

-		addTest(new TestSuite(LayoutTests.class));

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/LayoutTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/LayoutTests.java
deleted file mode 100644
index 7688420..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/LayoutTests.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.layout;

-

-import java.net.URL;

-

-import org.eclipse.swt.custom.SashForm;

-import org.eclipse.swt.graphics.Color;

-import org.eclipse.swt.graphics.Rectangle;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Group;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.ui.forms.widgets.Form;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class LayoutTests extends XWTTestCase {

-	public void testForm_NullLayout() throws Exception {

-		URL url = LayoutTests.class

-				.getResource(NullLayout_Test.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button button = (Button) XWT.findElementByName(root, "button");

-				assertTrue(button.getVisible());

-				Rectangle rectangle = button.getBounds();

-				assertEquals(rectangle, new Rectangle(10, 10, 200, 50));

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/NullLayout_Test.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/NullLayout_Test.java
deleted file mode 100644
index cb03293..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/NullLayout_Test.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.layout;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class NullLayout_Test {

-	public static void main(String[] args) {

-

-		URL url = NullLayout_Test.class.getResource(NullLayout_Test.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/NullLayout_Test.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/NullLayout_Test.xwt
deleted file mode 100644
index ab19dc2..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/NullLayout_Test.xwt
+++ /dev/null
@@ -1,7 +0,0 @@
-<y:FillComposite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.controls.layout"	

-	text="RowLayout - Test"

-	layout="{x:Null}">

-	<Button name="button" bounds="10, 10, 200, 50" text="Message"/>

-</y:FillComposite>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/RowLayout_Test.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/RowLayout_Test.java
deleted file mode 100644
index 20a11b8..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/RowLayout_Test.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.layout;

-

-import java.net.URL;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.layout.RowLayout;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Group;

-import org.eclipse.swt.widgets.Spinner;

-import org.eclipse.swt.widgets.Widget;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class RowLayout_Test {

-	public static void main(String[] args) {

-

-		URL url = RowLayout_Test.class.getResource(RowLayout_Test.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	private Group findGroup(Widget widget) {

-		if (widget == null) {

-			return null;

-		}

-		if (widget instanceof Composite) {

-			Composite composite = (Composite) widget;

-			for (Control child : composite.getChildren()) {

-				if (child instanceof Group

-						&& (("layout".equals(((Group) child).getText())))) {

-					return ((Group) child);

-				}

-			}

-			return findGroup(composite.getParent());

-		} else if (widget instanceof Control) {

-			return findGroup(((Control) widget).getParent());

-		}

-		return null;

-	}

-

-	protected void updateTypeHorizontal(Event event) {

-		Button widget = (Button) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			RowLayout layout = (RowLayout) layGroup.getLayout();

-			layout.type = SWT.HORIZONTAL;

-			layout(layGroup);

-		}

-	}

-

-	protected void updateTypeVertical(Event event) {

-		Button widget = (Button) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			RowLayout layout = (RowLayout) layGroup.getLayout();

-			layout.type = SWT.VERTICAL;

-			layout(layGroup);

-		}

-	}

-

-	private void layout(Composite composite) {

-		if (composite != null) {

-			composite.layout(true, true);

-			layout(composite.getParent());

-		}

-	}

-

-	protected void updateMarginWidth(Event event) {

-		Spinner widget = (Spinner) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			RowLayout layout = (RowLayout) layGroup.getLayout();

-			layout.marginWidth = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-

-	protected void updateMarginHeight(Event event) {

-		Spinner widget = (Spinner) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			RowLayout layout = (RowLayout) layGroup.getLayout();

-			layout.marginHeight = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-

-	protected void updateMarginLeft(Event event) {

-		Spinner widget = (Spinner) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			RowLayout layout = (RowLayout) layGroup.getLayout();

-			layout.marginLeft = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-

-	protected void updateMarginRight(Event event) {

-		Spinner widget = (Spinner) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			RowLayout layout = (RowLayout) layGroup.getLayout();

-			layout.marginRight = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-

-	protected void updateMarginTop(Event event) {

-		Spinner widget = (Spinner) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			RowLayout layout = (RowLayout) layGroup.getLayout();

-			layout.marginTop = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-

-	protected void updateMarginBottom(Event event) {

-		Spinner widget = (Spinner) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			RowLayout layout = (RowLayout) layGroup.getLayout();

-			layout.marginBottom = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-

-	protected void updateSpacing(Event event) {

-		Spinner widget = (Spinner) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			RowLayout layout = (RowLayout) layGroup.getLayout();

-			layout.spacing = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-

-	protected void updatePropWrap(Event event) {

-		Button widget = (Button) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			RowLayout layout = (RowLayout) layGroup.getLayout();

-			layout.wrap = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-

-	protected void updatePropPack(Event event) {

-		Button widget = (Button) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			RowLayout layout = (RowLayout) layGroup.getLayout();

-			layout.pack = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-

-	protected void updatePropJustify(Event event) {

-		Button widget = (Button) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			RowLayout layout = (RowLayout) layGroup.getLayout();

-			layout.justify = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-

-	protected void updatePropFill(Event event) {

-		Button widget = (Button) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			RowLayout layout = (RowLayout) layGroup.getLayout();

-			layout.fill = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-

-	protected void updatePropCenter(Event event) {

-		Button widget = (Button) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			RowLayout layout = (RowLayout) layGroup.getLayout();

-			layout.center = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/RowLayout_Test.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/RowLayout_Test.xwt
deleted file mode 100644
index 8882839..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/RowLayout_Test.xwt
+++ /dev/null
@@ -1,69 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	x:Class="org.eclipse.xwt.tests.controls.layout.RowLayout_Test"

-	text="RowLayout - Test">

-	<Shell.layout>

-		<GridLayout numColumns="2"/>

-	</Shell.layout>

-	<Group text="layout">

-		<Group.layout>

-		    <RowLayout/>

-		</Group.layout>

-		<Group.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL">

-			</GridData>

-		</Group.layoutData>

-		<Button text="button1"/>

-		<Button text="button2"/>

-		<Button text="button3"/>

-		<Button text="LongTextButton1"/>

-		<Button text="LongTextButton2"/>

-	</Group>

-	<Group text ="Parameters">

-		<Group.layout>

-		    <GridLayout numColumns="2"/>

-		</Group.layout>

-		<Composite>

-			<Composite.layout>

-			    <GridLayout numColumns="1"/>

-			</Composite.layout>

-			<Group text ="Type">

-				<Group.layoutData>

-					<GridData horizontalAlignment="FILL" verticalAlignment="FILL">

-					</GridData>

-				</Group.layoutData>

-				<Group.layout>

-		    		<FillLayout type="VERTICAL"/>

-				</Group.layout>

-				<Button x:style="RADIO" text="SWT.HORIZONTAL" selection="true" SelectionEvent="updateTypeHorizontal"/>

-				<Button x:style="RADIO" text="SWT.VERTICAL" SelectionEvent="updateTypeVertical"/>

-			</Group>

-			<Group text ="Properties">

-				<Group.layoutData>

-					<GridData horizontalAlignment="FILL" verticalAlignment="FILL">

-					</GridData>

-				</Group.layoutData>

-				<Group.layout>

-		    		<FillLayout type="VERTICAL"/>

-				</Group.layout>

-				<Button x:style="CHECK" text="Wrap" selection="true" SelectionEvent="updatePropWrap"/>

-				<Button x:style="CHECK" text="Pack" selection="true" SelectionEvent="updatePropPack"/>

-				<Button x:style="CHECK" text="Fill" selection="false" SelectionEvent="updatePropFill"/>

-				<Button x:style="CHECK" text="Justify" SelectionEvent="updatePropJustify"/>

-				<Button x:style="CHECK" text="Center" selection="false" SelectionEvent="updatePropCenter"/>

-			</Group>

-		</Composite>

-		<Group text ="Margins and Spacings">

-			<Group.layout>

-		    	<GridLayout numColumns="2"/>

-			</Group.layout>

-			<Label text="marginWidth"/><Spinner x:Name="marginWidth" x:style="BORDER" selection="0" SelectionEvent="updateMarginWidth"/>

-			<Label text="marginHeight"/><Spinner x:style="BORDER" selection="0" SelectionEvent="updateMarginHeight"/>

-			<Label text="marginLeft"/><Spinner x:style="BORDER" selection="3" SelectionEvent="updateMarginLeft"/>

-			<Label text="marginRight"/><Spinner x:style="BORDER" selection="3" SelectionEvent="updateMarginRight"/>

-			<Label text="marginTop"/><Spinner x:style="BORDER" selection="3" SelectionEvent="updateMarginTop"/>

-			<Label text="marginBottom"/><Spinner x:style="BORDER" selection="3" SelectionEvent="updateMarginBottom"/>

-			<Label text="spacing"/><Spinner x:style="BORDER" selection="3" SelectionEvent="updateSpacing"/>

-		</Group>

-	</Group>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/StackLayout_Test.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/StackLayout_Test.java
deleted file mode 100644
index 508c179..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/StackLayout_Test.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.layout;

-

-import java.net.URL;

-import java.util.ArrayList;

-import java.util.Arrays;

-import java.util.List;

-

-import org.eclipse.swt.custom.StackLayout;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Group;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.swt.widgets.Spinner;

-import org.eclipse.swt.widgets.Widget;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class StackLayout_Test {

-	public static void main(String[] args) {

-

-		URL url = StackLayout_Test.class.getResource(StackLayout_Test.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	private Group findGroup(Widget widget) {

-		if (widget == null) {

-			return null;

-		}

-		if (widget instanceof Composite) {

-			Composite composite = (Composite) widget;

-			for (Control child : composite.getChildren()) {

-				if (child instanceof Group

-						&& (("layout".equals(((Group) child).getText())))) {

-					return ((Group) child);

-				}

-			}

-			return findGroup(composite.getParent());

-		} else if (widget instanceof Control) {

-			return findGroup(((Control) widget).getParent());

-		}

-		return null;

-	}

-

-	private static Group layoutGrp;

-	private static Control current;

-	private static List<Control> controls = new ArrayList<Control>();

-

-	protected void updateStackAbove(Event event) {

-		Button widget = (Button) event.widget;

-		layoutGrp = findGroup(widget);

-		if (layoutGrp != null) {

-			if (controls.isEmpty()) {

-				controls.addAll(Arrays.asList(layoutGrp.getChildren()));

-			}

-			StackLayout layout = (StackLayout) layoutGrp.getLayout();

-			if (current == null) {

-				current = controls.get(controls.size() - 1);

-			} else {

-				int index = controls.indexOf(current);

-				if (index > 0) {

-					current = controls.get(index - 1);

-				}

-			}

-			layout.topControl = current;

-			Label label = findLabel(widget);

-			if (label != null) {

-				label.setText(((Button) current).getText());

-			}

-			layout(layoutGrp);

-		}

-	}

-

-	private Label findLabel(Button widget) {

-		Control[] children = widget.getParent().getChildren();

-		for (Control control : children) {

-			if (control instanceof Label) {

-				return ((Label) control);

-			}

-		}

-		return null;

-	}

-

-	protected void updateStackBelow(Event event) {

-		Button widget = (Button) event.widget;

-		layoutGrp = findGroup(widget);

-		if (layoutGrp != null) {

-			if (controls.isEmpty()) {

-				controls.addAll(Arrays.asList(layoutGrp.getChildren()));

-			}

-			StackLayout layout = (StackLayout) layoutGrp.getLayout();

-			if (current == null) {

-				current = controls.get(0);

-			} else {

-				int index = controls.indexOf(current);

-				if (index < controls.size() - 1) {

-					current = controls.get(index + 1);

-				}

-			}

-			layout.topControl = current;

-			Label label = findLabel(widget);

-			if (label != null) {

-				label.setText(((Button) current).getText());

-			}

-			layout(layoutGrp);

-		}

-	}

-

-	private void layout(Composite composite) {

-		if (composite != null) {

-			composite.layout(true, true);

-			layout(composite.getParent());

-		}

-	}

-

-	protected void updateMarginWidth(Event event) {

-		Spinner widget = (Spinner) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			StackLayout layout = (StackLayout) layGroup.getLayout();

-			layout.marginWidth = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-

-	protected void updateMarginHeight(Event event) {

-		Spinner widget = (Spinner) event.widget;

-		Group layGroup = findGroup(widget);

-		if (layGroup != null) {

-			StackLayout layout = (StackLayout) layGroup.getLayout();

-			layout.marginHeight = widget.getSelection();

-			layout(layGroup);

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/StackLayout_Test.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/StackLayout_Test.xwt
deleted file mode 100644
index ead6dcb..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/StackLayout_Test.xwt
+++ /dev/null
@@ -1,46 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	x:Class="org.eclipse.xwt.tests.controls.layout.StackLayout_Test"

-	text="RowLayout - Test">

-	<Shell.layout>

-		<GridLayout numColumns="2"/>

-	</Shell.layout>

-	<Group text="layout">

-		<Group.layout>

-		    <StackLayout/>

-		</Group.layout>

-		<Group.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL">

-			</GridData>

-		</Group.layoutData>

-		<Button text="button1"/>

-		<Button text="button2"/>

-		<Button text="button3"/>

-		<Button text="LongTextButton1"/>

-		<Button text="LongTextButton2"/>

-	</Group>

-	<Group text ="Parameters">

-		<Group.layout>

-		    <GridLayout numColumns="2"/>

-		</Group.layout>

-		<Group text ="topControl">

-			<Group.layoutData>

-				<GridData horizontalAlignment="FILL" verticalAlignment="FILL">

-				</GridData>

-			</Group.layoutData>

-			<Group.layout>

-	  	 		<GridLayout numColumns="3"/>

-			</Group.layout>

-			<Button x:style="PUSH" text="Below" selection="true" SelectionEvent="updateStackBelow"/>

-			<Label x:style="BORDER" text="              "/>

-			<Button x:style="PUSH" text="Top" SelectionEvent="updateStackAbove"/>

-		</Group>

-		<Group text ="Margins">

-			<Group.layout>

-		    	<GridLayout numColumns="2"/>

-			</Group.layout>

-			<Label text="marginWidth"/><Spinner x:Name="marginWidth" x:style="BORDER" selection="0" SelectionEvent="updateMarginWidth"/>

-			<Label text="marginHeight"/><Spinner x:style="BORDER" selection="0" SelectionEvent="updateMarginHeight"/>

-		</Group>

-	</Group>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/link/Link_Styles.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/link/Link_Styles.java
deleted file mode 100644
index 0718df2..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/link/Link_Styles.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.link;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Link_Styles {

-	public static void main(String[] args) {

-		URL url = Link_Styles.class.getResource(Link_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/link/Link_Styles.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/link/Link_Styles.xwt
deleted file mode 100644
index e465f1f..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/link/Link_Styles.xwt
+++ /dev/null
@@ -1,11 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt" xmlns:java="clr-namespace:org.eclipse.xwt.tests.controls.link">

-	<Composite.layout>

-		<GridLayout />

-	</Composite.layout>

-	<Link text="{x:Static java:Messages.LinkText}"></Link>

-

-	<!--  <A HREF="http://www.soyatec.com"> Soyatec Web Site. </A>	-->

-	<Link 

-		text="Visit &lt;A HREF=&quot;http://www.soyatec.com&quot;&gt; Soyatec Web Site. &lt;/A&gt;"></Link>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/link/Messages.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/link/Messages.java
deleted file mode 100644
index 5846a6e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/link/Messages.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.link;

-

-import org.eclipse.osgi.util.NLS;

-

-public class Messages extends NLS {

-	private static final String BUNDLE_NAME = "org.eclipse.xwt.tests.controls.link.messages"; // NON-NLS-1

-

-	public static String LinkText;

-

-	static {

-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/link/messages.properties b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/link/messages.properties
deleted file mode 100644
index ef39be5..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/link/messages.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-###############################################################################

-# Copyright (c) 2010 IBM Corporation and others.

-# All rights reserved. This program and the accompanying materials

-# are made available under the terms of the Eclipse Public License v1.0

-# which accompanies this distribution, and is available at

-# http://www.eclipse.org/legal/epl-v10.html

-#

-# Contributors:

-#     IBM Corporation - initial API and implementation

-###############################################################################

-LinkText=Visit the <A HREF=\"www.eclipse.org\">Eclipse.org</A> project and the <A HREF=\"www.eclipse.org\\swt">SWT</A> homepage.
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/list/List_Styles.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/list/List_Styles.java
deleted file mode 100644
index fc32912..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/list/List_Styles.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.list;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class List_Styles {

-	public static void main(String[] args) {

-		URL url = List_Styles.class.getResource(List_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/list/List_Styles.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/list/List_Styles.xwt
deleted file mode 100644
index 97e5da6..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/list/List_Styles.xwt
+++ /dev/null
@@ -1,30 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:j="clr-namespace:java.lang" text="List Styles Test">

-	<Shell.layout>

-		<GridLayout numColumns="2" />

-	</Shell.layout>

-	<Label text="List(SINGLE): " />

-	<List x:style="SINGLE|BORDER|V_SCROLL|H_SCROLL">

-		<List.items>

-			<j:String>"Line number foreground"</j:String>

-			<j:String>"Matching bracketshighlight"</j:String>

-			<j:String>"Current line highlight"</j:String>

-			<j:String>"Print margin"</j:String>

-			<j:String>"Find scope"</j:String>

-			<j:String>"Linked position"</j:String>

-			<j:String>"Link"</j:String>

-		</List.items>

-	</List>

-	<Label text="List(MULTI): " />

-	<List x:style="MULTI|BORDER|V_SCROLL|H_SCROLL">

-		<List.items>

-			<j:String>"Line number foreground"</j:String>

-			<j:String>"Matching bracketshighlight"</j:String>

-			<j:String>"Current line highlight"</j:String>

-			<j:String>"Print margin"</j:String>

-			<j:String>"Find scope"</j:String>

-			<j:String>"Linked position"</j:String>

-			<j:String>"Link"</j:String>

-		</List.items>

-	</List>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/list/List_Styles_Array.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/list/List_Styles_Array.java
deleted file mode 100644
index bcafe07..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/list/List_Styles_Array.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.list;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class List_Styles_Array {

-	public static void main(String[] args) {

-		URL url = List_Styles_Array.class.getResource(List_Styles_Array.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/list/List_Styles_Array.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/list/List_Styles_Array.xwt
deleted file mode 100644
index 81bd011..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/list/List_Styles_Array.xwt
+++ /dev/null
@@ -1,32 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:j="clr-namespace:java.lang" text="List Styles Test">

-	<Shell.layout>

-		<GridLayout numColumns="2" />

-	</Shell.layout>

-	<Label text="List(SINGLE): " />

-	<List x:style="SINGLE|BORDER|V_SCROLL|H_SCROLL">

-		<List.items>

-			<x:Array Type="j:String">

-				<j:String>"Line number foreground"</j:String>

-				<j:String>"Matching bracketshighlight"</j:String>

-				<j:String>"Current line highlight"</j:String>

-				<j:String>"Print margin"</j:String>

-				<j:String>"Find scope"</j:String>

-				<j:String>"Linked position"</j:String>

-				<j:String>"Link"</j:String>

-			</x:Array>

-		</List.items>

-	</List>

-	<Label text="List(MULTI): " />

-	<List x:style="MULTI|BORDER|V_SCROLL|H_SCROLL">

-		<List.items>

-			<j:String>"Line number foreground"</j:String>

-			<j:String>"Matching bracketshighlight"</j:String>

-			<j:String>"Current line highlight"</j:String>

-			<j:String>"Print margin"</j:String>

-			<j:String>"Find scope"</j:String>

-			<j:String>"Linked position"</j:String>

-			<j:String>"Link"</j:String>

-		</List.items>

-	</List>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/Menu_Styles.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/Menu_Styles.java
deleted file mode 100644
index ec8a6ae..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/Menu_Styles.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.menu;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Menu_Styles {

-	public static void main(String[] args) {

-		URL url = Menu_Styles.class.getResource(Menu_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/Menu_Styles.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/Menu_Styles.xwt
deleted file mode 100644
index e9cba82..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/Menu_Styles.xwt
+++ /dev/null
@@ -1,55 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    text="Menu Styles Test">

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>

-	<Shell.menuBar>

-		<Menu x:style="BAR">

-			<MenuItem text="Cascade" x:style="CASCADE">

-				<MenuItem.menu>

-					<Menu x:style="DROP_DOWN ">

-						<MenuItem text="Push" x:style="PUSH" image="demo.gif"/>

-						<MenuItem x:style="SEPARATOR"/>

-						<MenuItem text="Check" x:style="CHECK"/>

-						<MenuItem text="Radio1" x:style="RADIO"/>

-						<MenuItem text="Radio2" x:style="RADIO"/>

-						<MenuItem text="Cascade" x:style="CASCADE">

-							<MenuItem.menu>

-								<Menu x:style="DROP_DOWN ">

-									<MenuItem text="Push" x:style="PUSH" />

-									<MenuItem x:style="SEPARATOR"/>

-									<MenuItem text="Check" x:style="CHECK"/>

-									<MenuItem text="Radio1" x:style="RADIO"/>

-									<MenuItem text="Radio2" x:style="RADIO"/>

-								</Menu>

-							</MenuItem.menu>

-						</MenuItem> 

-					</Menu>

-				</MenuItem.menu>

-			</MenuItem> 

-		</Menu>

-	</Shell.menuBar>

-	<Label text="Popup Menu Here ">

-		<Label.menu>

-			<Menu x:style="POP_UP">

-				<MenuItem text="Push" x:style="PUSH" image="demo.gif"/>

-				<MenuItem x:style="SEPARATOR"/>

-				<MenuItem text="Check" x:style="CHECK"/>

-				<MenuItem text="Radio1" x:style="RADIO"/>

-				<MenuItem text="Radio2" x:style="RADIO"/>

-				<MenuItem text="Cascade" x:style="CASCADE">

-						<MenuItem.menu>

-							<Menu x:style="DROP_DOWN ">

-								<MenuItem text="Push" x:style="PUSH" />

-								<MenuItem x:style="SEPARATOR"/>

-								<MenuItem text="Check" x:style="CHECK"/>

-								<MenuItem text="Radio1" x:style="RADIO"/>

-								<MenuItem text="Radio2" x:style="RADIO"/>

-							</Menu>

-						</MenuItem.menu>

-				</MenuItem> 

-			</Menu>

-		</Label.menu>

-	</Label>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/command/Menu.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/command/Menu.java
deleted file mode 100644
index 31dd0d9..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/command/Menu.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.menu.command;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.controls.button.command.MessageCommand;

-

-/**

- * @author yyang

- */

-public class Menu {

-	public static void main(String[] args) {

-		XWT.registerCommand("Message", new MessageCommand());

-		URL url = Menu.class.getResource(Menu.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/command/Menu.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/command/Menu.xwt
deleted file mode 100644
index cd19b48..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/command/Menu.xwt
+++ /dev/null
@@ -1,25 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    text="Menu Styles Test">

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>

-	<Shell.menuBar>

-		<Menu x:style="BAR">

-			<MenuItem text="Cascade" x:style="CASCADE">

-				<MenuItem.menu>

-					<Menu x:style="DROP_DOWN ">

-						<MenuItem text="Message" Command="Message"/>

-					</Menu>

-				</MenuItem.menu>

-			</MenuItem> 

-		</Menu>

-	</Shell.menuBar>

-	<Label text="Popup Menu Here ">

-		<Label.menu>

-			<Menu x:style="POP_UP">

-				<MenuItem text="Message" Command="Message"/>

-			</Menu>

-		</Label.menu>

-	</Label>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/command/MessageCommand.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/command/MessageCommand.java
deleted file mode 100644
index 0db4273..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/command/MessageCommand.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.menu.command;

-

-import org.eclipse.jface.dialogs.MessageDialog;

-import org.eclipse.xwt.input.RoutedCommand;

-

-public class MessageCommand extends RoutedCommand {

-

-	public MessageCommand() {

-	}

-

-	@Override

-	public void execute(Object parameter) {

-		MessageDialog.openInformation(null, "Message", "Command message");

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/progressbar/ProgressBar_Styles.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/progressbar/ProgressBar_Styles.java
deleted file mode 100644
index 49b9239..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/progressbar/ProgressBar_Styles.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.progressbar;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class ProgressBar_Styles {

-	public static void main(String[] args) {

-		URL url = ProgressBar_Styles.class.getResource(ProgressBar_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/progressbar/ProgressBar_Styles.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/progressbar/ProgressBar_Styles.xwt
deleted file mode 100644
index 476d049..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/progressbar/ProgressBar_Styles.xwt
+++ /dev/null
@@ -1,11 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    text="ProgressBar Styles Test">

-	<Shell.layout>

-		<GridLayout numColumns="2"/>

-	</Shell.layout>

-	<Label text="ProgressBar(Horizontal): "/><ProgressBar x:style="HORIZONTAL"/>

-	<Label text="ProgressBar(Vertical): "/><ProgressBar x:style="VERTICAL"/>

-	<Label text="ProgressBar(LEFT_TO_RIGHT): "/><ProgressBar x:style="HORIZONTAL | INDETERMINATE |LEFT_TO_RIGHT"/>

-	<Label text="ProgressBar(RIGHT_TO_LEFT): "/><ProgressBar x:style="HORIZONTAL | INDETERMINATE |RIGHT_TO_LEFT"/>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/sash/Sash_Styles.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/sash/Sash_Styles.java
deleted file mode 100644
index 4459839..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/sash/Sash_Styles.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.sash;

-

-import java.net.URL;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.graphics.Rectangle;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.List;

-import org.eclipse.swt.widgets.Sash;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Sash_Styles {

-	public static void main(String[] args) {

-		URL url = Sash_Styles.class.getResource(Sash_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	/* Constants */

-	static final int SASH_WIDTH = 3;

-	static final int SASH_LIMIT = 20;

-	private Sash vSash;

-	private Sash hSash;

-	private Composite sashComp;

-	private List list1;

-	private List list2;

-	private Text text;

-

-	protected void handleVerticalMove(Event event) {

-		checkInit(event);

-		Rectangle rect = vSash.getParent().getClientArea();

-		event.x = Math.min(Math.max(event.x, SASH_LIMIT), rect.width

-				- SASH_LIMIT);

-		if (event.detail != SWT.DRAG) {

-			vSash.setBounds(event.x, event.y, event.width, event.height);

-			layout();

-		}

-	}

-

-	/**

-	 * @param event

-	 */

-	private void checkInit(Event event) {

-		if (vSash == null) {

-			vSash = (Sash) XWT.findElementByName(event.widget, "vSash");

-		}

-		if (hSash == null) {

-			hSash = (Sash) XWT.findElementByName(event.widget, "hSash");

-		}

-		if (sashComp == null) {

-			sashComp = (Composite) XWT.findElementByName(event.widget,

-					"sashComp");

-		}

-		if (list1 == null) {

-			list1 = (List) XWT.findElementByName(event.widget, "list1");

-		}

-		if (list2 == null) {

-			list2 = (List) XWT.findElementByName(event.widget, "list2");

-		}

-		if (text == null) {

-			text = (Text) XWT.findElementByName(event.widget, "text");

-		}

-	}

-

-	void layout() {

-

-		Rectangle clientArea = sashComp.getClientArea();

-		Rectangle hSashBounds = hSash.getBounds();

-		Rectangle vSashBounds = vSash.getBounds();

-

-		list1.setBounds(0, 0, vSashBounds.x, hSashBounds.y);

-		list2.setBounds(vSashBounds.x + vSashBounds.width, 0, clientArea.width

-				- (vSashBounds.x + vSashBounds.width), hSashBounds.y);

-		text.setBounds(0, hSashBounds.y + hSashBounds.height, clientArea.width,

-				clientArea.height - (hSashBounds.y + hSashBounds.height));

-

-		/**

-		 * If the horizontal sash has been moved then the vertical sash is

-		 * either too long or too short and its size must be adjusted.

-		 */

-		vSashBounds.height = hSashBounds.y;

-		vSash.setBounds(vSashBounds);

-	}

-

-	protected void handleHorizontalMove(Event event) {

-		checkInit(event);

-		Rectangle rect = vSash.getParent().getClientArea();

-		event.y = Math.min(Math.max(event.y, SASH_LIMIT), rect.height

-				- SASH_LIMIT);

-		if (event.detail != SWT.DRAG) {

-			hSash.setBounds(event.x, event.y, event.width, event.height);

-			layout();

-		}

-	}

-

-	protected void resized(Event event) {

-		checkInit(event);

-		/* Get the client area for the shell */

-		Rectangle clientArea = sashComp.getClientArea();

-

-		/*

-		 * Make list 1 half the width and half the height of the tab leaving

-		 * room for the sash. Place list 1 in the top left quadrant of the tab.

-		 */

-		Rectangle list1Bounds = new Rectangle(0, 0,

-				(clientArea.width - SASH_WIDTH) / 2,

-				(clientArea.height - SASH_WIDTH) / 2);

-		list1.setBounds(list1Bounds);

-

-		/*

-		 * Make list 2 half the width and half the height of the tab leaving

-		 * room for the sash. Place list 2 in the top right quadrant of the tab.

-		 */

-		list2.setBounds(list1Bounds.width + SASH_WIDTH, 0, clientArea.width

-				- (list1Bounds.width + SASH_WIDTH), list1Bounds.height);

-

-		/*

-		 * Make the text area the full width and half the height of the tab

-		 * leaving room for the sash. Place the text area in the bottom half of

-		 * the tab.

-		 */

-		text.setBounds(0, list1Bounds.height + SASH_WIDTH, clientArea.width,

-				clientArea.height - (list1Bounds.height + SASH_WIDTH));

-

-		/* Position the sashes */

-		vSash.setBounds(list1Bounds.width, 0, SASH_WIDTH, list1Bounds.height);

-		hSash.setBounds(0, list1Bounds.height, clientArea.width, SASH_WIDTH);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/sash/Sash_Styles.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/sash/Sash_Styles.xwt
deleted file mode 100644
index 5c103f6..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/sash/Sash_Styles.xwt
+++ /dev/null
@@ -1,40 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:java.lang"

-    x:Class="org.eclipse.xwt.tests.controls.sash.Sash_Styles"

-    text="Sash Styles Test">

-    <Shell.layout>

-    	<FillLayout/>

-    </Shell.layout>

-    <Composite x:Name="sashComp" x:style="BORDER" ResizeEvent="resized">

-    	<List x:Name="list1" x:style="V_SCROLL | H_SCROLL | BORDER">

-    		<List.items>

-				<x:Array Type="j:String">

-					 <j:String>"Line number foreground"</j:String>

-         	         <j:String>"Matching bracketshighlight"</j:String>

-         	         <j:String>"Current line highlight"</j:String>

-          	         <j:String>"Print margin"</j:String>

-           	         <j:String>"Find scope"</j:String>

-           	         <j:String>"Linked position"</j:String>

-            	     <j:String>"Link"</j:String>

-				</x:Array>

-			</List.items>

-    	</List>

-    	<List x:Name="list2" x:style="V_SCROLL | H_SCROLL | BORDER">

-    		<List.items>

-				<x:Array Type="j:String">

-					 <j:String>"Line number foreground"</j:String>

-         	         <j:String>"Matching bracketshighlight"</j:String>

-         	         <j:String>"Current line highlight"</j:String>

-          	         <j:String>"Print margin"</j:String>

-           	         <j:String>"Find scope"</j:String>

-           	         <j:String>"Linked position"</j:String>

-            	     <j:String>"Link"</j:String>

-				</x:Array>

-			</List.items>

-    	</List>

-    	<Text x:Name="text" x:style="MULTI | BORDER" text="A multi line text widget."/>

-    	<Sash x:Name="vSash" x:style="VERTICAL" SelectionEvent="handleVerticalMove"/>

-    	<Sash x:Name="hSash" x:style="HORIZONTAL|SMOOTH" SelectionEvent="handleHorizontalMove"/>

-	</Composite>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/sashform/SashForm_Styles.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/sashform/SashForm_Styles.java
deleted file mode 100644
index 4dd645b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/sashform/SashForm_Styles.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.sashform;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class SashForm_Styles {

-	public static void main(String[] args) {

-		URL url = SashForm_Styles.class.getResource(SashForm_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/sashform/SashForm_Styles.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/sashform/SashForm_Styles.xwt
deleted file mode 100644
index 561823f..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/sashform/SashForm_Styles.xwt
+++ /dev/null
@@ -1,11 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    text="SashForm Styles Test">

-    <Shell.layout>

-    	<FillLayout/>

-    </Shell.layout>

-    <SashForm x:style="VERTICAL" Weights="30, 70">

-		<StyledText x:style="SINGLE | READ_ONLY | FULL_SELECTION" text="The quick brown fox jumps over the lazy dog."/>

-		<StyledText x:style="MULTI | V_SCROLL | H_SCROLL | BORDER" text="The quick brown fox jumps over the lazy dog."/>

-	</SashForm>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/scale/Scale_Styles.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/scale/Scale_Styles.java
deleted file mode 100644
index ea5bfe5..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/scale/Scale_Styles.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.scale;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Scale_Styles {

-	public static void main(String[] args) {

-		URL url = Scale_Styles.class.getResource(Scale_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/scale/Scale_Styles.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/scale/Scale_Styles.xwt
deleted file mode 100644
index 5fafa2e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/scale/Scale_Styles.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Label text="Scale(Horizontal): "/><Scale x:style="HORIZONTAL"/>

-	<Label text="Scale(Vertical): "/><Scale x:style="VERTICAL"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/ShellTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/ShellTests.java
deleted file mode 100644
index 38d967f..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/ShellTests.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.shell;

-

-import java.net.URL;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class ShellTests extends XWTTestCase {

-	public void testShell_Trim() throws Exception {

-		URL url = Shell_Trim.class.getResource(Shell_Trim.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Shell shell = (Shell) root;

-				assertTrue((shell.getStyle() & SWT.SHELL_TRIM) == SWT.SHELL_TRIM);

-			}

-		});

-	}

-

-	public void testDialog_Trim() throws Exception {

-		URL url = Shell_Dialog_Trim.class.getResource(Shell_Dialog_Trim.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Shell shell = (Shell) root;

-				assertTrue((shell.getStyle() & SWT.DIALOG_TRIM) == SWT.DIALOG_TRIM);

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Dialog_Trim.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Dialog_Trim.java
deleted file mode 100644
index 7ef9800..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Dialog_Trim.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.shell;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Shell_Dialog_Trim {

-	public static void main(String[] args) {

-		URL url = Shell_Dialog_Trim.class.getResource(Shell_Dialog_Trim.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Dialog_Trim.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Dialog_Trim.xwt
deleted file mode 100644
index b9a28fe..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Dialog_Trim.xwt
+++ /dev/null
@@ -1,4 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    x:style="DIALOG_TRIM" text="Dialog Trim">

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Styles.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Styles.java
deleted file mode 100644
index 20ea40c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Styles.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.shell;

-

-import java.net.URL;

-import java.util.ArrayList;

-import java.util.List;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Group;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Shell_Styles {

-

-	private static List<Shell> shells = new ArrayList<Shell>();

-

-	public static void main(String[] args) {

-		URL url = Shell_Styles.class.getResource(Shell_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void createShell(Event event) {

-		Button button = (Button) event.widget;

-		Composite parent = button.getParent();

-		Control[] children = parent.getChildren();

-		int style = 0;

-		for (Control control : children) {

-			if (control instanceof Group) {

-				Group grp = (Group) control;

-				String text = grp.getText();

-				if ("Decoration Styles".equals(text)

-						|| "Modal Styles".equals(text)) {

-					style |= createStyle(grp);

-				}

-			}

-		}

-		Shell shell = new Shell(style);

-		shell.open();

-		shells.add(shell);

-	}

-

-	/**

-	 * @param grp

-	 */

-	private int createStyle(Group grp) {

-		int style = 0;

-		Control[] children = grp.getChildren();

-		for (Control control : children) {

-			if (control instanceof Button) {

-				Button btn = (Button) control;

-				String str = btn.getText();

-				if (!btn.getSelection()) {

-					continue;

-				} else if ("SWT.NO_TRIM".equals(str)) {

-					style |= SWT.NO_TRIM;

-				} else if ("SWT.SHELL_TRIM".equals(str)) {

-					style |= SWT.SHELL_TRIM;

-				} else if ("SWT.DIALOG_TRIM".equals(str)) {

-					style |= SWT.DIALOG_TRIM;

-				} else if ("SWT.CLOSE".equals(str)) {

-					style |= SWT.CLOSE;

-				} else if ("SWT.MIN".equals(str)) {

-					style |= SWT.MIN;

-				} else if ("SWT.MAX".equals(str)) {

-					style |= SWT.MAX;

-				} else if ("SWT.RESIZE".equals(str)) {

-					style |= SWT.RESIZE;

-				} else if ("SWT.TOOL".equals(str)) {

-					style |= SWT.TOOL;

-				} else if ("SWT.TITLE".equals(str)) {

-					style |= SWT.TITLE;

-				} else if ("SWT.BORDER".equals(str)) {

-					style |= SWT.BORDER;

-				} else if ("SWT.ON_TOP".equals(str)) {

-					style |= SWT.ON_TOP;

-				} else if ("SWT.MODELESS".equals(str)) {

-					style |= SWT.MODELESS;

-				} else if ("SWT.PRIMARY_MODAL".equals(str)) {

-					style |= SWT.PRIMARY_MODAL;

-				} else if ("SWT.APPLICATION_MODAL".equals(str)) {

-					style |= SWT.APPLICATION_MODAL;

-				} else if ("SWT.SYSTEM_MODAL".equals(str)) {

-					style |= SWT.SYSTEM_MODAL;

-				}

-			}

-		}

-		return style;

-	}

-

-	protected void closeAllShells(Event event) {

-		if (shells.isEmpty()) {

-			return;

-		}

-		for (Shell shell : shells) {

-			shell.dispose();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Styles.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Styles.xwt
deleted file mode 100644
index 1d1c49c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Styles.xwt
+++ /dev/null
@@ -1,34 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    x:Class="org.eclipse.xwt.tests.controls.shell.Shell_Styles">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Group text="Decoration Styles">

-	    <Group.layout>

-			<GridLayout numColumns="1"/>

-	    </Group.layout>

-		<Button x:style="CHECK" text="SWT.NO_TRIM"/>

-		<Button x:style="CHECK" text="SWT.SHELL_TRIM"/>

-		<Button x:style="CHECK" text="SWT.DIALOG_TRIM"/>

-		<Button x:style="CHECK" text="SWT.CLOSE"/>

-        <Button x:style="CHECK" text="SWT.TITLE"/>

-        <Button x:style="CHECK" text="SWT.MIN"/>

-        <Button x:style="CHECK" text="SWT.MAX"/>

-        <Button x:style="CHECK" text="SWT.BORDER"/>

-        <Button x:style="CHECK" text="SWT.RESIZE"/>

-        <Button x:style="CHECK" text="SWT.ON_TOP"/>

-        <Button x:style="CHECK" text="SWT.TOOL"/>

-	</Group>

-	<Group text="Modal Styles">

-	    <Group.layout>

-			<GridLayout numColumns="1"/>

-	    </Group.layout>

-		<Button x:style="RADIO" text="SWT.MODELESS" Selection="true"/>

-		<Button x:style="RADIO" text="SWT.PRIMARY_MODEL"/>

-        <Button x:style="RADIO" text="SWT.APPLICATION_MODEL"/>

-        <Button x:style="RADIO" text="SWT.SYSTEM_MODEL"/>

-	</Group>

-	<Button text="Create Shell" SelectionEvent="createShell"/>

-	<Button text="Close All Shells" SelectionEvent="closeAllShells"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Test.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Test.java
deleted file mode 100644
index 612ab53..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Test.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.shell;

-

-import java.net.URL;

-import java.util.ArrayList;

-import java.util.List;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Group;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Shell_Test {

-

-	private static List<Shell> shells = new ArrayList<Shell>();

-

-	public static void main(String[] args) {

-		URL url = Shell_Test.class.getResource(Shell_Test.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void createShell(Event event) {

-		Button button = (Button) event.widget;

-		Composite parent = button.getParent();

-		Control[] children = parent.getChildren();

-		int style = 0;

-		for (Control control : children) {

-			if (control instanceof Group) {

-				Group grp = (Group) control;

-				String text = grp.getText();

-				if ("Decoration Styles".equals(text)

-						|| "Modal Styles".equals(text)) {

-					style |= createStyle(grp);

-				}

-			}

-		}

-		Shell shell = new Shell(style);

-		shell.open();

-		shells.add(shell);

-	}

-

-	/**

-	 * @param grp

-	 */

-	private int createStyle(Group grp) {

-		int style = 0;

-		Control[] children = grp.getChildren();

-		for (Control control : children) {

-			if (control instanceof Button) {

-				Button btn = (Button) control;

-				String str = btn.getText();

-				if (!btn.getSelection()) {

-					continue;

-				} else if ("SWT.NO_TRIM".equals(str)) {

-					style |= SWT.NO_TRIM;

-				} else if ("SWT.CLOSE".equals(str)) {

-					style |= SWT.CLOSE;

-				} else if ("SWT.MIN".equals(str)) {

-					style |= SWT.MIN;

-				} else if ("SWT.MAX".equals(str)) {

-					style |= SWT.MAX;

-				} else if ("SWT.RESIZE".equals(str)) {

-					style |= SWT.RESIZE;

-				} else if ("SWT.TOOL".equals(str)) {

-					style |= SWT.TOOL;

-				} else if ("SWT.TITLE".equals(str)) {

-					style |= SWT.TITLE;

-				} else if ("SWT.BORDER".equals(str)) {

-					style |= SWT.BORDER;

-				} else if ("SWT.ON_TOP".equals(str)) {

-					style |= SWT.ON_TOP;

-				} else if ("SWT.MODELESS".equals(str)) {

-					style |= SWT.MODELESS;

-				} else if ("SWT.PRIMARY_MODAL".equals(str)) {

-					style |= SWT.PRIMARY_MODAL;

-				} else if ("SWT.APPLICATION_MODAL".equals(str)) {

-					style |= SWT.APPLICATION_MODAL;

-				} else if ("SWT.SYSTEM_MODAL".equals(str)) {

-					style |= SWT.SYSTEM_MODAL;

-				}

-			}

-		}

-		return style;

-	}

-

-	protected void closeAllShells(Event event) {

-		if (shells.isEmpty()) {

-			return;

-		}

-		for (Shell shell : shells) {

-			shell.dispose();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Test.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Test.xwt
deleted file mode 100644
index 66cd4b7..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Test.xwt
+++ /dev/null
@@ -1,4 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    x:style="TOOL" text="Shell Test">

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Trim.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Trim.java
deleted file mode 100644
index 720e560..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Trim.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.shell;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Shell_Trim {

-	public static void main(String[] args) {

-		URL url = Shell_Trim.class.getResource(Shell_Trim.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Trim.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Trim.xwt
deleted file mode 100644
index 29dadf2..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Trim.xwt
+++ /dev/null
@@ -1,4 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    x:style="SHELL_TRIM" text="Shell Trim">

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/slider/Silder_Styles.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/slider/Silder_Styles.java
deleted file mode 100644
index e81cd7d..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/slider/Silder_Styles.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.slider;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Silder_Styles {

-	public static void main(String[] args) {

-

-		URL url = Silder_Styles.class.getResource(Silder_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/slider/Silder_Styles.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/slider/Silder_Styles.xwt
deleted file mode 100644
index 89ec0c7..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/slider/Silder_Styles.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Label text="Slider(Horizontal): "/><Slider x:style="HORIZONTAL"/>

-	<Label text="Slider(Vertical): "/><Slider x:style="VERTICAL"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/spinner/Spinner_Styles.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/spinner/Spinner_Styles.java
deleted file mode 100644
index c08a857..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/spinner/Spinner_Styles.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.spinner;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Spinner_Styles {

-	public static void main(String[] args) {

-		URL url = Spinner_Styles.class.getResource(Spinner_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/spinner/Spinner_Styles.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/spinner/Spinner_Styles.xwt
deleted file mode 100644
index a14039f..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/spinner/Spinner_Styles.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Label text="Spinner(READ_ONLY): "/><Spinner x:style="READ_ONLY"/>

-	<Label text="Spinner(BORDER): "/><Spinner x:style="BORDER"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/styledtext/StyledText_Styles.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/styledtext/StyledText_Styles.java
deleted file mode 100644
index 98e1c8e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/styledtext/StyledText_Styles.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.styledtext;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class StyledText_Styles {

-	public static void main(String[] args) {

-		URL url = StyledText_Styles.class.getResource(StyledText_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/styledtext/StyledText_Styles.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/styledtext/StyledText_Styles.xwt
deleted file mode 100644
index 0070bb7..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/styledtext/StyledText_Styles.xwt
+++ /dev/null
@@ -1,11 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt">

-	<Composite.layout>

-		<FillLayout/>

-	</Composite.layout>

-	<SashForm x:style="VERTICAL" Weights="3, 3, 4">

-		<StyledText x:style="SINGLE | READ_ONLY | FULL_SELECTION" text="The quick brown fox jumps over the lazy dog."/>

-		<StyledText x:style="MULTI | V_SCROLL | H_SCROLL | BORDER" text="The quick brown fox jumps over the lazy dog."/>

-		<StyledText x:style="MULTI | V_SCROLL | H_SCROLL | BORDER" text="The quick brown fox jumps over the lazy dog."/>

-	</SashForm>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tabfolder/TabFolder_Styles.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tabfolder/TabFolder_Styles.java
deleted file mode 100644
index 642bcb1..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tabfolder/TabFolder_Styles.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.tabfolder;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TabFolder_Styles {

-	public static void main(String[] args) {

-

-		URL url = TabFolder_Styles.class.getResource(TabFolder_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tabfolder/TabFolder_Styles.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tabfolder/TabFolder_Styles.xwt
deleted file mode 100644
index 6117390..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tabfolder/TabFolder_Styles.xwt
+++ /dev/null
@@ -1,51 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    text="TabFolder Styles Test">

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>

-	<TabFolder>

-		<TabItem text="item1">

-			<TabItem.control>

-				<Label text="TabItem 1"/>

-			</TabItem.control>

-		</TabItem>

-		<TabItem text="item2">

-			<TabItem.control>

-				<Label text="TabItem 2"/>

-			</TabItem.control>

-		</TabItem>

-		<TabItem text="item3">

-			<TabItem.control>

-				<Label text="TabItem 3"/>

-			</TabItem.control>

-		</TabItem>

-		<TabFolder.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" 

-				grabExcessVerticalSpace="true"

-				grabExcessHorizontalSpace="true"/>

-		</TabFolder.layoutData>		

-	</TabFolder>

-	<TabFolder x:style="BOTTOM">

-		<TabItem text="item1">

-			<TabItem.control>

-				<Label text="TabItem 1"/>

-			</TabItem.control>

-		</TabItem>

-		<TabItem text="item2">

-			<TabItem.control>

-				<Label text="TabItem 2"/>

-			</TabItem.control>

-		</TabItem>

-		<TabItem text="item3">

-			<TabItem.control>

-				<Label text="TabItem 3"/>

-			</TabItem.control>

-		</TabItem>

-		<TabFolder.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" 

-				grabExcessVerticalSpace="true"

-				grabExcessHorizontalSpace="true"/>

-		</TabFolder.layoutData>		

-	</TabFolder>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test.java
deleted file mode 100644
index d51eff7..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.table;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Table_Test {

-	public static void main(String[] args) {

-		URL url = Table_Test.class.getResource(Table_Test.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test.xwt
deleted file mode 100644
index 21ca6b4..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test.xwt
+++ /dev/null
@@ -1,29 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:java.lang"

-    text="Table Test">

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>

-	<Table x:style="BORDER|SINGLE|FULL_SELECTION" HeaderVisible="true" LinesVisible="true">

-		<TableColumn width="150" text="Name"/>

-		<TableColumn width="150" text="Age"/>

-

-		<TableItem>

-			<!--Use Array Element-->

-			<TableItem.texts>

-				<x:Array Type="j:String">

-					<j:String>Line-Name1</j:String>

-					<j:String>Line-Age1</j:String>

-				</x:Array>

-			</TableItem.texts>	

-		</TableItem>

-		<TableItem>

-			<!--Use texts Lists directly-->

-			<TableItem.texts>

-				<j:String>Line-Name2</j:String>

-				<j:String>Line-Age2</j:String>

-			</TableItem.texts>	

-		</TableItem>

-	</Table>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test2.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test2.java
deleted file mode 100644
index 75e9e86..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test2.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.table;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Table_Test2 {

-	public static void main(String[] args) {

-		URL url = Table_Test2.class.getResource(Table_Test2.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test2.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test2.xwt
deleted file mode 100644
index 8f1dba0..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test2.xwt
+++ /dev/null
@@ -1,14 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:java.lang"

-    text="Table Test">

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>

-	<Table x:style="BORDER|SINGLE|FULL_SELECTION" HeaderVisible="true" LinesVisible="true">

-		<TableColumn width="150" text="Name"/>

-		<TableItem text="Line-Name1"/>

-		<TableItem text="Line-Name2"/>

-		<TableItem text="Line-Name3"/>

-	</Table>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test3.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test3.java
deleted file mode 100644
index d7bf65a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test3.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.table;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Table_Test3 {

-	public static void main(String[] args) {

-		URL url = Table_Test3.class.getResource(Table_Test3.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test3.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test3.xwt
deleted file mode 100644
index e7591f2..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test3.xwt
+++ /dev/null
@@ -1,18 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:java.lang"

-    text="Table Test">

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>

-	<Table x:style="BORDER|SINGLE|FULL_SELECTION" HeaderVisible="true" LinesVisible="true">

-		<TableColumn width="150" text="Name"/>

-		<TableColumn width="150" text="Age"/>

-		<TableItem>

-   			<TableItem.cells>

-    			<Cell text="Thomas" />

-    			<Cell text="31" image="demo.gif"/>

-   			</TableItem.cells>

-  		</TableItem>

-	</Table>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Company.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Company.java
deleted file mode 100644
index 2b01369..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Company.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.table.binding;

-

-public class Company {

-	protected Employee[] employees;

-

-	public Company() {

-	}

-

-	public Employee[] getEmployees() {

-		return employees;

-	}

-

-	public void setEmployees(Employee[] employees) {

-		this.employees = employees;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Employee.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Employee.java
deleted file mode 100644
index bc151b0..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Employee.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.table.binding;

-

-public class Employee {

-	protected String name;

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Table_binding_Test.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Table_binding_Test.java
deleted file mode 100644
index b35bdc1..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Table_binding_Test.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.table.binding;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Table_binding_Test {

-	public static void main(String[] args) {

-

-		URL url = Table_binding_Test.class.getResource(Table_binding_Test.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Table_binding_Test.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Table_binding_Test.xwt
deleted file mode 100644
index df12380..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Table_binding_Test.xwt
+++ /dev/null
@@ -1,28 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.controls.table.binding"

-    text="Table Test"

-    DataContext="{StaticResource myCompany}">

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>

-	<Shell.Resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<j:Employee Name="Thomas"/>

-				<j:Employee Name="Jin"/>

-			</j:Company.employees>

-		</j:Company>

-	</Shell.Resources>

-	

-	<Table x:style="BORDER|SINGLE|FULL_SELECTION" HeaderVisible="true" LinesVisible="true">

-		<TableColumn width="150" text="Name"/>

-		<TableColumn width="150" text="Age"/>

-		<TableItem>

-   			<TableItem.cells>

-				<Cell text="Thomas" />

-				<Cell text="31" image="demo.gif"/>

-   			</TableItem.cells>

-  		</TableItem>

-	</Table>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Table_binding_Test_Array.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Table_binding_Test_Array.java
deleted file mode 100644
index 1b5369e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Table_binding_Test_Array.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.table.binding;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Table_binding_Test_Array {

-	public static void main(String[] args) {

-

-		URL url = Table_binding_Test_Array.class

-				.getResource(Table_binding_Test_Array.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Table_binding_Test_Array.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Table_binding_Test_Array.xwt
deleted file mode 100644
index e5fd250..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Table_binding_Test_Array.xwt
+++ /dev/null
@@ -1,30 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.controls.table.binding"

-    text="Table Test"

-    DataContext="{StaticResource myCompany}">

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>

-	<x:Shell.Resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<x:Array Type="j:Employee">

-					<j:Employee Name="Thomas"/>

-					<j:Employee Name="Jin"/>

-				</x:Array>

-			</j:Company.employees>

-		</j:Company>

-	</x:Shell.Resources>

-	

-	<Table x:style="BORDER|SINGLE|FULL_SELECTION" HeaderVisible="true" LinesVisible="true">

-		<TableColumn width="150" text="Name"/>

-		<TableColumn width="150" text="Age"/>

-		<TableItem>

-   			<TableItem.cells>

-				<Cell text="Thomas" />

-				<Cell text="31" image="demo.gif"/>

-   			</TableItem.cells>

-  		</TableItem>

-	</Table>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_ColumnDynamicEditor.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_ColumnDynamicEditor.java
deleted file mode 100644
index 830881e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_ColumnDynamicEditor.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.table.editor;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Table_ColumnDynamicEditor {

-	public static void main(String[] args) {

-		URL url = Table_ColumnDynamicEditor.class

-				.getResource(Table_ColumnDynamicEditor.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_ColumnDynamicEditor.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_ColumnDynamicEditor.xwt
deleted file mode 100644
index a557884..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_ColumnDynamicEditor.xwt
+++ /dev/null
@@ -1,43 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:java.lang"

-    text="Table Test">

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>

-	<Table x:style="BORDER|SINGLE|FULL_SELECTION" HeaderVisible="true" LinesVisible="true">

-		<TableColumn width="150" text="Name"> 

-		    <TableColumn.editor>

-				<TableEditor grabHorizontal= "true" dynamic="true">

-					<CCombo>

-						<CCombo.items>

-			                 <j:String>"Item1"</j:String>

-			                 <j:String>"Item2"</j:String>

-			            </CCombo.items> 

-					</CCombo>

-				</TableEditor>

-		    </TableColumn.editor>

-		</TableColumn>

-		<TableColumn width="150" text="Age"/>

-

-		<TableItem>

-			<TableItem.texts>

-				<x:Array Type="j:String">

-					<j:String>Line-Name2</j:String>

-					<j:String>Line-Age2</j:String>

-				</x:Array>

-			</TableItem.texts>

-		</TableItem>

-		<TableItem>

-			<TableItem.texts>

-				<j:String>Line-Name2</j:String>

-				<j:String>Line-Age2</j:String>

-			</TableItem.texts>	

-			<TableItem.editors>

-				<TableEditor grabHorizontal= "true" column = "0" dynamic="true">

-					<Button x:style="CHECK"/>

-				</TableEditor>

-			</TableItem.editors>

-		</TableItem>

-	</Table>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_ColumnStaticEditor.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_ColumnStaticEditor.java
deleted file mode 100644
index 5300fd2..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_ColumnStaticEditor.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.table.editor;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Table_ColumnStaticEditor {

-	public static void main(String[] args) {

-		URL url = Table_ColumnStaticEditor.class

-				.getResource(Table_ColumnStaticEditor.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_ColumnStaticEditor.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_ColumnStaticEditor.xwt
deleted file mode 100644
index 5a07a23..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_ColumnStaticEditor.xwt
+++ /dev/null
@@ -1,43 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:java.lang"

-    text="Table Test">

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>

-	<Table x:style="BORDER|SINGLE|FULL_SELECTION" HeaderVisible="true" LinesVisible="true">

-		<TableColumn width="150" text="Name"> 

-		    <TableColumn.editor>

-				<TableEditor grabHorizontal= "true">

-					<CCombo>

-						<CCombo.items>

-			                 <j:String>"Item1"</j:String>

-			                 <j:String>"Item2"</j:String>

-			            </CCombo.items> 

-					</CCombo>

-				</TableEditor>

-		    </TableColumn.editor>

-		</TableColumn>

-		<TableColumn width="150" text="Age"/>

-

-		<TableItem>

-			<TableItem.texts>

-				<x:Array Type="j:String">

-					<j:String>Line-Name2</j:String>

-					<j:String>Line-Age2</j:String>

-				</x:Array>

-			</TableItem.texts>

-		</TableItem>

-		<TableItem>

-			<TableItem.texts>

-				<j:String>Line-Name2</j:String>

-				<j:String>Line-Age2</j:String>

-			</TableItem.texts>	

-			<TableItem.editors>

-				<TableEditor grabHorizontal= "true" column = "0" >

-					<Button x:style="CHECK"/>

-				</TableEditor>

-			</TableItem.editors>

-		</TableItem>

-	</Table>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_DynamicEditor.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_DynamicEditor.java
deleted file mode 100644
index d048814..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_DynamicEditor.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.table.editor;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Table_DynamicEditor {

-	public static void main(String[] args) {

-		URL url = Table_DynamicEditor.class

-				.getResource(Table_DynamicEditor.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_DynamicEditor.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_DynamicEditor.xwt
deleted file mode 100644
index 29ee694..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_DynamicEditor.xwt
+++ /dev/null
@@ -1,42 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:java.lang"

-    text="Table Test">

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>

-	<Table x:style="BORDER|SINGLE|FULL_SELECTION" HeaderVisible="true" LinesVisible="true">

-		<TableColumn width="150" text="Name"/> 

-		<TableColumn width="150" text="Age"/>

-

-		<TableItem Name="editItem">

-			<TableItem.texts >

-				<x:Array Type="j:String">

-					<j:String>Line-Name1</j:String>

-					<j:String>Line-Age1</j:String>

-				</x:Array>

-			</TableItem.texts>

-		    <TableItem.editors>

-		    	<!-- Change 'editor' to 'editors', it seems that, we can add more than one TableEditors for a TableItem.-->

-				<TableEditor grabHorizontal= "true" column = "1" dynamic="true">

-					<CCombo>

-						<CCombo.items>

-							<x:Array Type="j:String">

-			                   <j:String>"Item1"</j:String>

-			                   <j:String>"Item2"</j:String>

-			          	    </x:Array>

-			            </CCombo.items> 

-					</CCombo>

-				</TableEditor>

-		    </TableItem.editors>

-		</TableItem>

-		<TableItem>

-			<TableItem.texts>

-				<x:Array Type="j:String">

-					<j:String>Line-Name2</j:String>

-					<j:String>Line-Age2</j:String>

-				</x:Array>

-			</TableItem.texts>	

-		</TableItem>

-	</Table>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_StaticEditor.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_StaticEditor.java
deleted file mode 100644
index 8be7738..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_StaticEditor.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.table.editor;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Table_StaticEditor {

-	public static void main(String[] args) {

-		URL url = Table_StaticEditor.class.getResource(Table_StaticEditor.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_StaticEditor.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_StaticEditor.xwt
deleted file mode 100644
index 0ec50f4..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_StaticEditor.xwt
+++ /dev/null
@@ -1,58 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:java.lang"

-    text="Table Test">

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>

-	<Table x:style="BORDER|SINGLE|FULL_SELECTION" HeaderVisible="true" LinesVisible="true">

-		<TableColumn width="150" text="Name"/> 

-		<TableColumn width="150" text="Age"/>

-

-		<TableItem>

-			<TableItem.texts>

-				<x:Array Type="j:String">

-					<j:String>Line-Name1</j:String>

-					<j:String>Line-Age1</j:String>

-				</x:Array>

-			</TableItem.texts>

-		    <TableItem.editors>

-		    	<!-- Change 'editor' to 'editors', it seems that, we can add more than one TableEditors for a TableItem.-->

-				<TableEditor grabHorizontal= "true" column = "1">

-					<CCombo>

-						<CCombo.items>

-							<x:Array Type="j:String">

-			                   <j:String>"Line-Age1"</j:String>

-			                   <j:String>"Item2"</j:String>

-			          	    </x:Array>

-			            </CCombo.items> 

-					</CCombo>

-				</TableEditor>

-				<TableEditor grabHorizontal= "true" column = "0">

-					<Text />

-				</TableEditor>

-		    </TableItem.editors>

-		</TableItem>

-		<TableItem>

-			<TableItem.texts>

-				<j:String>Line-Name2</j:String>

-				<j:String>Line-Age2</j:String>

-			</TableItem.texts>	

-			<TableItem.editors>

-				<TableEditor grabHorizontal= "true" column = "1">

-					<Button x:style="CHECK"/>

-				</TableEditor>

-				<TableEditor grabHorizontal= "true" column = "0">

-					<CCombo>

-						<CCombo.items>

-							<x:Array Type="j:String">

-			                   <j:String>"Line-Age1"</j:String>

-			                   <j:String>"Item2"</j:String>

-			          	    </x:Array>

-			            </CCombo.items> 

-					</CCombo>

-				</TableEditor>

-		    </TableItem.editors>

-		</TableItem>

-	</Table>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/text/Text_Styles.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/text/Text_Styles.java
deleted file mode 100644
index bacc70b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/text/Text_Styles.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.text;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Text_Styles {

-	public static void main(String[] args) {

-		URL url = Text_Styles.class.getResource(Text_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/text/Text_Styles.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/text/Text_Styles.xwt
deleted file mode 100644
index f109c63..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/text/Text_Styles.xwt
+++ /dev/null
@@ -1,10 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Label text="Text(SINGLE): "/><Text x:style="SINGLE" text="Text Sample"/>

-	<Label text="Text(MULTI): "/><Text x:style="MULTI" text="Text Sample"/>

-	<Label text="Text(PASSWORD): "/><Text x:style="PASSWORD" text="Text Sample"/>

-	<Label text="Text(SEARCH): "/><Text x:style="SEARCH" text="Text Sample"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/toolbar/ToolBar_Styles.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/toolbar/ToolBar_Styles.java
deleted file mode 100644
index 51ddfb0..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/toolbar/ToolBar_Styles.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.toolbar;

-

-import java.net.URL;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.graphics.Point;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Menu;

-import org.eclipse.swt.widgets.MenuItem;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.swt.widgets.ToolBar;

-import org.eclipse.swt.widgets.ToolItem;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTMaps;

-

-/**

- * @author jliu

- */

-public class ToolBar_Styles {

-	public static void main(String[] args) {

-

-		URL url = ToolBar_Styles.class.getResource(ToolBar_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	private Menu menu;

-

-	protected void handleDropDown(Event event) {

-		ToolItem toolItem = (ToolItem) event.widget;

-		Shell shell = toolItem.getParent().getShell();

-		// Create the menu if it has not already been created

-		if (menu == null) {

-			// Lazy create the menu.

-			ToolBar toolbar = ((ToolItem) toolItem).getParent();

-			int style = toolbar.getStyle()

-					& (XWTMaps.getStyle("SWT.RIGHT_TO_LEFT") | SWT.LEFT_TO_RIGHT);

-			menu = new Menu(shell, style | SWT.POP_UP);

-			for (int i = 0; i < 9; ++i) {

-				final String text = "Drop Down " + i;

-				if (text.length() != 0) {

-					MenuItem menuItem = new MenuItem(menu, SWT.NONE);

-					menuItem.setText(text);

-				} else {

-					new MenuItem(menu, SWT.SEPARATOR);

-				}

-			}

-		}

-

-		/**

-		 * A selection event will be fired when a drop down tool item is

-		 * selected in the main area and in the drop down arrow. Examine the

-		 * event detail to determine where the widget was selected.

-		 */

-		if (event.detail == SWT.ARROW) {

-			/*

-			 * The drop down arrow was selected.

-			 */

-			// Position the menu below and vertically aligned with the the drop

-			// down tool button.

-			final ToolBar toolBar = toolItem.getParent();

-

-			Point point = toolBar.toDisplay(new Point(event.x, event.y));

-			menu.setLocation(point.x, point.y);

-			menu.setVisible(true);

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/toolbar/ToolBar_Styles.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/toolbar/ToolBar_Styles.xwt
deleted file mode 100644
index 1e64c8e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/toolbar/ToolBar_Styles.xwt
+++ /dev/null
@@ -1,81 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    x:Class="org.eclipse.xwt.tests.controls.toolbar.ToolBar_Styles"

-    xmlns:j="clr-namespace:java.lang"

-    text="ToolBar Styles Test">

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>

-	<Group text="Image ToolBar">

-		<Group.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"/>

-		</Group.layoutData>

-		<Group.layout>

-			<GridLayout/>

-		</Group.layout>

-		<ToolBar x:style="HORIZONTAL |SHADOW_OUT">

-			<ToolItem x:style="PUSH" Image="openFolder.gif" tooltipText="SWT.PUSH"/>

-			<ToolItem x:style="PUSH" Image="openFolder.gif" tooltipText="SWT.PUSH"/>

-			<ToolItem x:style="RADIO" selection="true" Image="closedFolder.gif" tooltipText="SWT.RADIO"/>

-			<ToolItem x:style="RADIO" Image="closedFolder.gif" tooltipText="SWT.RADIO"/>

-			<ToolItem x:style="CHECK" selection="true"  Image="target.gif" tooltipText="SWT.CHECK"/>

-			<ToolItem x:style="RADIO" Image="closedFolder.gif" tooltipText="SWT.RADIO"/>

-			<ToolItem x:style="RADIO" selection="true" Image="closedFolder.gif" tooltipText="SWT.RADIO"/>

-			<ToolItem x:style="SEPARATOR" tooltipText="SWT.SEPARATOR"/>

-			<ToolItem x:Name="imageItem" x:style="DROP_DOWN" Image="target.gif" tooltipText="SWT.DROP_DOWN" SelectionEvent="handleDropDown"/>

-		</ToolBar>

-	</Group>

-	<Group text="Text ToolBar">

-		<Group.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"/>

-		</Group.layoutData>

-		<Group.layout>

-			<GridLayout/>

-		</Group.layout>

-		<ToolBar x:style="HORIZONTAL | FLAT">

-			<ToolItem x:style="PUSH" text="Push" tooltipText="SWT.PUSH"/>

-			<ToolItem x:style="PUSH" text="Push" tooltipText="SWT.PUSH"/>

-			<ToolItem x:style="RADIO" selection="true" text="Radio" tooltipText="SWT.RADIO"/>

-			<ToolItem x:style="RADIO" text="Radio" tooltipText="SWT.RADIO"/>

-			<ToolItem x:style="CHECK" selection="true" text="Check" tooltipText="SWT.CHECK"/>

-			<ToolItem x:style="RADIO" text="Radio" tooltipText="SWT.RADIO"/>

-			<ToolItem x:style="RADIO" selection="true" text="Radio" tooltipText="SWT.RADIO"/>

-			<ToolItem x:style="SEPARATOR" tooltipText="SWT.SEPARATOR"/>

-			<ToolItem x:Name="textItem" x:style="DROP_DOWN" text="Drop Down" tooltipText="SWT.DROP_DOWN" SelectionEvent="handleDropDown"/>

-		</ToolBar>

-	</Group>

-	<Group text="Image and Text ToolBar">

-		<Group.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"/>

-		</Group.layoutData>

-		<Group.layout>

-			<GridLayout/>

-		</Group.layout>

-		<ToolBar x:style="VERTICAL | RIGHT | FLAT">

-			<ToolItem x:style="PUSH" text="Push" Image="openFolder.gif" tooltipText="SWT.PUSH"/>

-			<ToolItem x:style="PUSH" text="Push" Image="openFolder.gif" tooltipText="SWT.PUSH"/>

-			<ToolItem x:style="RADIO" text="Radio" Image="closedFolder.gif" tooltipText="SWT.RADIO"/>

-			<ToolItem x:style="RADIO" text="Radio" Image="closedFolder.gif" tooltipText="SWT.RADIO"/>

-			<ToolItem x:style="CHECK" text="Check" Image="target.gif" tooltipText="SWT.CHECK"/>

-			<ToolItem x:style="RADIO" text="Radio" Image="closedFolder.gif" tooltipText="SWT.RADIO"/>

-			<ToolItem x:style="RADIO" text="Radio" Image="closedFolder.gif" tooltipText="SWT.RADIO"/>

-			<ToolItem x:style="SEPARATOR" tooltipText="SWT.SEPARATOR"/>

-			<ToolItem x:Name="imageTextItem" x:style="DROP_DOWN" text="Drop Down" Image="target.gif" tooltipText="SWT.DROP_DOWN" SelectionEvent="handleDropDown"/>

-			<ToolItem x:style="SEPARATOR" tooltipText="With a Combo">

-				<ToolItem.control>

-					<Combo>

-						<Combo.items>

-							<x:Array Type="j:String">

-								<j:String>0</j:String>

-								<j:String>1</j:String>

-								<j:String>2</j:String>

-								<j:String>3</j:String>

-							</x:Array>

-						</Combo.items>

-					</Combo>

-				</ToolItem.control>

-			</ToolItem>

-		</ToolBar>

-	</Group>

-</Shell>

-

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tooltip/ToolTip_Styles.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tooltip/ToolTip_Styles.java
deleted file mode 100644
index c9c3129..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tooltip/ToolTip_Styles.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.tooltip;

-

-import java.lang.reflect.Method;

-import java.net.URL;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Group;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.swt.widgets.ToolTip;

-import org.eclipse.swt.widgets.Tray;

-import org.eclipse.swt.widgets.TrayItem;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTMaps;

-

-/**

- * @author jliu

- */

-public class ToolTip_Styles {

-

-	private Button button;

-	private static ToolTip toolTip;

-	private static Tray tray;

-	private static TrayItem trayItem;

-

-	public static void main(String[] args) {

-

-		URL url = ToolTip_Styles.class.getResource(ToolTip_Styles.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void clear(Event event) {

-		if (toolTip != null && !toolTip.isDisposed()) {

-			toolTip.setVisible(false);

-			toolTip.dispose();

-		}

-		if (trayItem != null && !trayItem.isDisposed()) {

-			trayItem.dispose();

-		}

-	}

-

-	protected void showTooltip(Event event) {

-		clear(event);

-		button = (Button) event.widget;

-		int style = 0;

-		String text = "Tooltip Text";

-		String message = "ToolTip Messages";

-		boolean autoHide = false;

-		boolean showInTray = false;

-

-		// 1. Style

-		Group stypesGroup = findGroup("groupStyles");

-		if (stypesGroup != null) {

-			style = createStyle(stypesGroup);

-		}

-		// 2. Display Mode

-		Group displayGrp = findGroup("displayMode");

-		if (displayGrp != null) {

-			Control[] children = displayGrp.getChildren();

-			for (Control control : children) {

-				if (control instanceof Button) {

-					Button btn = (Button) control;

-					if ("AutoHide".equals(btn.getText())) {

-						autoHide = btn.getSelection();

-					} else if ("Show In Tray".equals(btn.getText())) {

-						showInTray = btn.getSelection();

-					}

-				}

-			}

-		}

-		// 3. Text

-		Group textGroup = findGroup("groupText");

-		if (textGroup != null) {

-			Control[] children = textGroup.getChildren();

-			for (Control control : children) {

-				if (control instanceof Text) {

-					text = ((Text) control).getText();

-				}

-			}

-		}

-		// 3. Message

-		Group messageGrp = findGroup("groupMessage");

-		if (messageGrp != null) {

-			Control[] children = messageGrp.getChildren();

-			for (Control control : children) {

-				if (control instanceof Text) {

-					message = ((Text) control).getText();

-				}

-			}

-		}

-		if (toolTip != null) {

-			toolTip.dispose();

-		}

-		toolTip = new ToolTip(button.getShell(), style);

-		toolTip.setText(text);

-		toolTip.setMessage(message);

-		toolTip.setAutoHide(autoHide);

-

-		if (showInTray) {

-			if (tray == null) {

-				tray = displayGetSystemTray(button.getDisplay());

-			}

-			if (trayItem != null) {

-				trayItem.dispose();

-			}

-			trayItem = new TrayItem(tray, SWT.NONE);

-			trayItem.setToolTip(toolTip);

-		}

-		toolTip.setVisible(true);

-	}

-

-	/**

-	 * @param stypesGroup

-	 * @return

-	 */

-	private int createStyle(Group stypesGroup) {

-		int style = 0;

-		Control[] children = stypesGroup.getChildren();

-		for (Control control : children) {

-			if (control instanceof Button) {

-				Button btn = (Button) control;

-				if (!btn.getSelection()) {

-					continue;

-				}

-				String text = btn.getText();

-				if ("SWT.BALLOON".equals(text)) {

-					style |= XWTMaps.getStyle("SWT.BALLOON");

-				} else if ("SWT.ICON_INFORMATION".equals(text)) {

-					style |= SWT.ICON_INFORMATION;

-				} else if ("SWT.ICON_ERROR".equals(text)) {

-					style |= SWT.ICON_ERROR;

-				} else if ("SWT.ICON_WARNING".equals(text)) {

-					style |= SWT.ICON_WARNING;

-				}

-			}

-		}

-		return style;

-	}

-

-	private Group findGroup(String grpName) {

-		if (button == null) {

-			return null;

-		}

-		return (Group) XWT.findElementByName(button, grpName);

-	}

-

-	private Tray displayGetSystemTray(Display display) {

-		if(SWT.getPlatform()!="rap") {

-			try {

-				Method m = Display.class.getDeclaredMethod("getSystemTray");

-				return (Tray)m.invoke(display);

-			} catch (Exception e) {

-				assert false;

-			}

-		}

-		return null;

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tooltip/ToolTip_Styles.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tooltip/ToolTip_Styles.xwt
deleted file mode 100644
index 5948c9c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tooltip/ToolTip_Styles.xwt
+++ /dev/null
@@ -1,38 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    x:Class="org.eclipse.xwt.tests.controls.tooltip.ToolTip_Styles">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Group x:Name="groupStyles" text="Styles">

-	    <Group.layout>

-			<GridLayout numColumns="1"/>

-	    </Group.layout>

-		<Button x:style="CHECK" text="SWT.BALLOON"/>

-		<Button x:style="RADIO" text="SWT.ICON_ERROR"/>

-        <Button x:style="RADIO" text="SWT.ICON_INFORMATION"/>

-        <Button x:style="RADIO" text="SWT.ICON_WARNING"/>

-        <Button x:style="RADIO" text="No Icon"/>

-	</Group>

-	<Group x:Name="displayMode" text="Display Mode">

-	    <Group.layout>

-			<GridLayout numColumns="1"/>

-	    </Group.layout>

-		<Button x:style="CHECK" text="AutoHide"/>

-		<Button x:style="CHECK" text="Show In Tray"/>

-	</Group>

-	<Group x:Name="groupText" text="Text">

-	    <Group.layout>

-			<GridLayout numColumns="2"/>

-	    </Group.layout>

-		<Label text="text: "/><Text x:style="BORDER" text="Default text of tooltip."/>

-	</Group>

-	<Group x:Name="groupMessage" text="Message">

-	    <Group.layout>

-			<GridLayout numColumns="2"/>

-	    </Group.layout>

-		<Label text="message: "/><Text x:style="BORDER" text="Default message of tooltip."/>

-	</Group>

-	<Button text="Show Tooltip" SelectionEvent="showTooltip"/>

-	<Button text="Clear" SelectionEvent="clear"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/TreeTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/TreeTests.java
deleted file mode 100644
index c219e1c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/TreeTests.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.tree;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.TreeItem;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class TreeTests extends XWTTestCase {

-

-	public void testTree() throws Exception {

-		URL url = TreeTests.class.getResource(Tree_Expanded.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TreeItem");

-				assertTrue(element instanceof TreeItem);

-				TreeItem treeItem = (TreeItem) element;

-				assertTrue(treeItem.getItemCount() == 2);

-			}

-		});

-	}

-	

-	public void testTree_Columns() throws Exception {

-		URL url = TreeTests.class.getResource(Tree_Columns.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TreeItem");

-				assertTrue(element instanceof TreeItem);

-				TreeItem treeItem = (TreeItem) element;

-				assertTrue(treeItem.getItemCount() == 2);

-				assertEquals("1", treeItem.getText(2));

-				assertEquals("classes", treeItem.getText(1));

-			}

-		});

-	}

-

-

-	public void testTree_Expanded() throws Exception {

-		URL url = TreeTests.class.getResource(Tree_Expanded.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TreeItem");

-				assertTrue(element instanceof TreeItem);

-				TreeItem treeItem = (TreeItem) element;

-				assertTrue(treeItem.getExpanded());

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Columns.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Columns.java
deleted file mode 100644
index d7e1dcd..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Columns.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.tree;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Tree_Columns {

-	public static void main(String[] args) {

-

-		URL url = Tree_Columns.class.getResource(Tree_Columns.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Columns.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Columns.xwt
deleted file mode 100644
index 1d46f26..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Columns.xwt
+++ /dev/null
@@ -1,77 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:java.lang"

-    text="Tree Test">

-	<Shell.layout>

-		<GridLayout/>

-	</Shell.layout>

-	<Tree x:style="BORDER | SINGLE | FULL_SELECTION | CHECK" 

-		HeaderVisible="true" LinesVisible="true">

-		<Tree.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" 

-			          grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>

-		</Tree.layoutData>

-		<TreeColumn text="Node" width="100" tooltipText="Node column" image="closedFolder.gif"/>

-		<TreeColumn text="Type" width="100" tooltipText="Type column"/>

-		<TreeColumn text="Size" width="100" tooltipText="Size column"/>

-		<TreeItem name="TreeItem" image="closedFolder.gif">

-			<TreeItem.texts>

-				<x:Array Type="j:String">

-					<j:String>Node1</j:String>

-					<j:String>classes</j:String>

-					<j:String>1</j:String>

-				</x:Array>

-			</TreeItem.texts>

-			<TreeItem>

-				<TreeItem.texts>

-						<j:String>Node11</j:String>

-						<j:String>classes</j:String>

-						<j:String>11</j:String>

-				</TreeItem.texts>

-				<TreeItem>

-					<TreeItem.texts>

-						<x:Array Type="j:String">

-							<j:String>Node111</j:String>

-							<j:String>classes</j:String>

-							<j:String>111</j:String>

-						</x:Array>

-					</TreeItem.texts>

-				</TreeItem >

-				<TreeItem>

-					<TreeItem.texts>

-							<j:String>Node112</j:String>

-							<j:String>classes</j:String>

-							<j:String>112</j:String>

-					</TreeItem.texts>

-				</TreeItem >

-			</TreeItem >

-			<TreeItem text="Node12">

-				<TreeItem text="Node121"/>

-				<TreeItem text="Node122"/>  

-			</TreeItem >

-		</TreeItem>

-		<TreeItem image="openFolder.gif">

-			<TreeItem.texts>

-					<j:String>Node2</j:String>

-					<j:String>databases</j:String>

-					<j:String>2</j:String>

-			</TreeItem.texts>

-			<TreeItem>

-				<TreeItem.texts>

-					<x:Array Type="j:String">

-						<j:String>Node21</j:String>

-						<j:String>databases</j:String>

-						<j:String>21</j:String>

-					</x:Array>

-				</TreeItem.texts>

-				<TreeItem>

-					<TreeItem.texts>

-							<j:String>Node211</j:String>

-							<j:String>databases</j:String>

-							<j:String>211</j:String>

-					</TreeItem.texts>

-				</TreeItem >

-			</TreeItem >

-		</TreeItem>

-	</Tree>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Expanded.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Expanded.java
deleted file mode 100644
index ea0610b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Expanded.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.tree;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Tree_Expanded {

-	public static void main(String[] args) {

-

-		URL url = Tree_Expanded.class.getResource(Tree_Expanded.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Expanded.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Expanded.xwt
deleted file mode 100644
index 5e31a82..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Expanded.xwt
+++ /dev/null
@@ -1,32 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    text="Tree Test">

-	<Shell.layout>

-		<GridLayout/>

-	</Shell.layout>

-	<Tree x:style="BORDER | SINGLE | FULL_SELECTION | CHECK">

-		<Tree.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" 

-			          grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>

-		</Tree.layoutData>

-		<TreeItem name="TreeItem" text="Node1" expanded="true"

-			image="closedFolder.gif">

-			<TreeItem text="Node11">

-				<TreeItem text="Node111"/>

-			</TreeItem >

-			<TreeItem text="Node12">

-				<TreeItem text="Node121"/>

-				<TreeItem text="Node122"/>  

-			</TreeItem >

-		</TreeItem>

-		<TreeItem text="Node2" image="openFolder.gif">

-			<TreeItem text="Node21">

-				<TreeItem text="Node211"/> 

-			</TreeItem >

-			<TreeItem text="Node22">

-				<TreeItem text="Node221"/>

-				<TreeItem text="Node222"/>  

-			</TreeItem >

-		</TreeItem>

-	</Tree>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Test.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Test.java
deleted file mode 100644
index 24e58fe..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Test.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.tree;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Tree_Test {

-	public static void main(String[] args) {

-

-		URL url = Tree_Test.class.getResource(Tree_Test.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Test.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Test.xwt
deleted file mode 100644
index 834c38b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Test.xwt
+++ /dev/null
@@ -1,31 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    text="Tree Test">

-	<Shell.layout>

-		<GridLayout/>

-	</Shell.layout>

-	<Tree x:style="BORDER | SINGLE | FULL_SELECTION | CHECK">

-		<Tree.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" 

-			          grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>

-		</Tree.layoutData>

-		<TreeItem name="TreeItem" text="Node1" image="closedFolder.gif">

-			<TreeItem text="Node11">

-				<TreeItem text="Node111"/> 

-			</TreeItem >

-			<TreeItem text="Node12">

-				<TreeItem text="Node121"/>

-				<TreeItem text="Node122"/>  

-			</TreeItem >

-		</TreeItem>

-		<TreeItem text="Node2" image="openFolder.gif">

-			<TreeItem text="Node21">

-				<TreeItem text="Node211"/> 

-			</TreeItem >

-			<TreeItem text="Node22">

-				<TreeItem text="Node221"/>

-				<TreeItem text="Node222"/>  

-			</TreeItem >

-		</TreeItem>

-	</Tree>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/Control_Size.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/Control_Size.java
deleted file mode 100644
index 269c0ca..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/Control_Size.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.uiresource;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Control_Size {

-	public static void main(String[] args) {

-		URL url = Control_Size.class.getResource(Control_Size.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/Control_Size.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/Control_Size.xwt
deleted file mode 100644
index cf5650c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/Control_Size.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	text="Control Size Test">

-	<Label name="targetLabel" x:style="BORDER" text="Label Size(100, 40)" Size="100, 40">

-	</Label>

-	<Button name="targetButton" text="Button Size(200, 200)" Size="200, 200">

-	</Button>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/UIResourceTestSuite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/UIResourceTestSuite.java
deleted file mode 100644
index bd2e098..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/UIResourceTestSuite.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.uiresource;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.xwt.tests.controls.button.ButtonTests;

-import org.eclipse.xwt.tests.controls.ccombo.CComboTests;

-import org.eclipse.xwt.tests.controls.combo.ComboTests;

-import org.eclipse.xwt.tests.controls.shell.ShellTests;

-import org.eclipse.xwt.tests.controls.tree.TreeTests;

-
-public class UIResourceTestSuite extends TestSuite {
-	public static final Test suite() {
-		return new UIResourceTestSuite();
-	}
-
-	public UIResourceTestSuite() {
-		addTest(new TestSuite(UIResourceTests.class));
-		addTest(new TestSuite(ButtonTests.class));
-		addTest(new TestSuite(ComboTests.class));
-		addTest(new TestSuite(CComboTests.class));
-		addTest(new TestSuite(ShellTests.class));
-		addTest(new TestSuite(TreeTests.class));

-	}
-}
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/UIResourceTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/UIResourceTests.java
deleted file mode 100644
index 9d883f4..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/UIResourceTests.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.uiresource;

-

-import java.net.URL;

-

-import org.eclipse.swt.graphics.Point;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.IUIResource;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class UIResourceTests extends XWTTestCase {

-	public void testControlSize() throws Exception {

-		URL url = UIResourceTests.class.getResource(Control_Size.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		IUIResource pattern = XWT.loadAsResource(url);

-		runTest(pattern, new Runnable() {

-			public void run() {

-				checkLabel();

-				checkButton();

-			}

-

-			public void checkLabel() {

-				Object element = XWT.findElementByName(root, "targetLabel");

-				assertTrue(element instanceof Label);

-				Label label = (Label) element;

-				Point size = label.getSize();

-				assertTrue(size.x == 100 && size.y == 40);

-			}

-

-			public void checkButton() {

-				Object element = XWT.findElementByName(root, "targetButton");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				Point size = button.getSize();

-				assertTrue(size.x == 200 && size.y == 200);

-			}

-		});

-		

-		runTest(pattern, new Runnable() {

-			public void run() {

-				checkLabel();

-				checkButton();

-			}

-

-			public void checkLabel() {

-				Object element = XWT.findElementByName(root, "targetLabel");

-				assertTrue(element instanceof Label);

-				Label label = (Label) element;

-				Point size = label.getSize();

-				assertTrue(size.x == 100 && size.y == 40);

-			}

-

-			public void checkButton() {

-				Object element = XWT.findElementByName(root, "targetButton");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				Point size = button.getSize();

-				assertTrue(size.x == 200 && size.y == 200);

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/xwt/UserComposite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/xwt/UserComposite.java
deleted file mode 100644
index fc8107f..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/xwt/UserComposite.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.controls.xwt;

-

-import java.net.URL;

-import java.util.HashMap;

-import java.util.Map;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.layout.FillLayout;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.IXWTLoader;

-import org.eclipse.xwt.XWT;

-

-public class UserComposite extends Composite {

-

-	public UserComposite(Composite parent, int style) {

-		super(parent, style);

-

-		setLayout(new FillLayout());

-		

-		// load XWT

-		String name = UserComposite.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX;

-		try {

-			URL url = UserComposite.class.getResource(name);

-			Map<String, Object> options = new HashMap<String, Object>();

-			options.put(IXWTLoader.CLASS_PROPERTY, this);

-			options.put(IXWTLoader.CONTAINER_PROPERTY, this);

-			XWT.loadWithOptions(url, options);

-		} catch (Throwable e) {

-			throw new Error("Unable to load " + name, e);

-		}

-	}

-

-	public static void main(String[] args) {

-		Display display = new Display();

-		Shell shell = new Shell(display);

-		shell.setLayout(new FillLayout());

-		UserComposite composite = new UserComposite(shell, SWT.NONE);

-		shell.setSize(450, 200);

-		shell.open();

-		while (!shell.isDisposed()) {

-			if (!display.readAndDispatch()) {

-				// If no more entries in event queue

-				display.sleep();

-			}

-		}

-		display.dispose();

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/xwt/UserComposite.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/xwt/UserComposite.xwt
deleted file mode 100644
index c3bd6fa..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/xwt/UserComposite.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<Composite

-	xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt">

-   <Composite.layout>

-      <RowLayout/>

-   </Composite.layout>

-   <Button text="Double click me!"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/Address.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/Address.java
deleted file mode 100644
index 6fce36f..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/Address.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding;

-

-public class Address extends BeanObject {

-	private String city = "Paris";

-

-	public void setCity(String city) {

-		String oldValue = this.city;

-		this.city = city;

-		changeSupport.firePropertyChange("city", oldValue, city);

-	}

-

-	public String getCity() {

-		return city;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/BeanObject.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/BeanObject.java
deleted file mode 100644
index 6e6df9c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/BeanObject.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding;

-

-import java.beans.PropertyChangeListener;

-import java.beans.PropertyChangeSupport;

-

-public class BeanObject {

-	protected PropertyChangeSupport changeSupport = new PropertyChangeSupport(

-			this);

-

-	public void addPropertyChangeListener(String propertyName,

-			PropertyChangeListener listener) {

-		changeSupport.addPropertyChangeListener(propertyName, listener);

-	}

-

-	public void removePropertyChangeListener(String propertyName,

-			PropertyChangeListener listener) {

-		changeSupport.removePropertyChangeListener(propertyName, listener);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/BindingTestSuite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/BindingTestSuite.java
deleted file mode 100644
index da1cf1d..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/BindingTestSuite.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding;

-

-import junit.framework.Test;

-import junit.framework.TestSuite;

-

-import org.eclipse.xwt.tests.databinding.bindcontrol.ControlBindingTests;

-import org.eclipse.xwt.tests.databinding.multibinding.MultiBindingTests;

-import org.eclipse.xwt.tests.databinding.pojo.PojoDataBindingTests;

-import org.eclipse.xwt.tests.databinding.pojo.attribute.PojoAttrDataBindingTests;

-import org.eclipse.xwt.tests.databinding.self.DataBindingSelfTests;

-import org.eclipse.xwt.tests.databinding.status.ValidationStatusTests;

-import org.eclipse.xwt.tests.databinding.validation.ValidationsTests;

-

-public class BindingTestSuite extends TestSuite {

-	public static final Test suite() {

-		return new BindingTestSuite();

-	}

-

-	public BindingTestSuite() {

-		addTest(new TestSuite(DataBindingTests.class));

-		addTest(new TestSuite(PojoDataBindingTests.class));

-		addTest(new TestSuite(PojoAttrDataBindingTests.class));

-		addTest(new TestSuite(ControlBindingTests.class));

-		addTest(new TestSuite(MultiBindingTests.class));

-		addTest(new TestSuite(DataBindingSelfTests.class));

-		addTest(new TestSuite(ValidationsTests.class));

-		addTest(new TestSuite(ValidationStatusTests.class));

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/Company.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/Company.java
deleted file mode 100644
index bc9d02d..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/Company.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding;

-

-public class Company extends BeanObject {

-	private String name = "toto";

-	private Person manager = new Person();

-

-	public Person getManager() {

-		return manager;

-	}

-

-	public void setManager(Person manager) {

-		Person oldValue = this.manager;

-		this.manager = manager;

-		changeSupport.firePropertyChange("manager", oldValue, manager);

-	}

-

-	public Company() {

-		manager.setName("Julien");

-	}

-

-	public void setName(String value) {

-		String oldValue = this.name;

-		this.name = value;

-		changeSupport.firePropertyChange("name", oldValue, value);

-	}

-

-	public String getName() {

-		return name;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/Country.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/Country.java
deleted file mode 100644
index 58fcbb7..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/Country.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding;

-

-public enum Country {

-	FR, USA, CN;

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBinding.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBinding.java
deleted file mode 100644
index 7f3c635..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBinding.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class DataBinding {

-	public static void main(String[] args) {

-

-		URL url = DataBinding.class.getResource(DataBinding.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBinding.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBinding.xwt
deleted file mode 100644
index 68a316e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBinding.xwt
+++ /dev/null
@@ -1,27 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding"

-	Size="400, 300"

-	DataContext="{StaticResource myData}">

-	<Shell.layout>

-		<GridLayout numColumns="3"/>

-	</Shell.layout>

-	

-	<Shell.Resources>

-		<y:Person x:Key="myData"/>

-	</Shell.Resources>

-	

-	<Label text="Name"/>

-	<Text x:style="BORDER" text="{Binding Path=age}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Label text="{Binding Path=age}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter.java
deleted file mode 100644
index f3333c1..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class DataBindingConverter {

-	public static void main(String[] args) {

-

-		URL url = DataBindingConverter.class

-				.getResource(DataBindingConverter.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter.xwt
deleted file mode 100644
index 9b874c8..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter.xwt
+++ /dev/null
@@ -1,27 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding"

-	Size="400, 300"

-	DataContext="{StaticResource myData}">

-	<Shell.layout>

-		<GridLayout numColumns="3"/>

-	</Shell.layout>

-	

-	<Shell.Resources>

-		<y:Person x:Key="myData"/>

-	</Shell.Resources>

-	

-	<Label text="Name"/>

-	<Text x:style="BORDER" text="{Binding Path=name}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Label text="{Binding Path=name,converter=y:MyConverter}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter_Element.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter_Element.java
deleted file mode 100644
index 4ab2a45..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter_Element.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class DataBindingConverter_Element {

-	public static void main(String[] args) {

-

-		URL url = DataBindingConverter_Element.class

-				.getResource(DataBindingConverter_Element.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter_Element.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter_Element.xwt
deleted file mode 100644
index 93f3766..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter_Element.xwt
+++ /dev/null
@@ -1,34 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding"

-	Size="400, 300"

-	DataContext="{StaticResource myData}">

-	<Shell.layout>

-		<GridLayout numColumns="3"/>

-	</Shell.layout>

-	

-	<Shell.Resources>

-		<y:Person x:Key="myData"/>

-	</Shell.Resources>

-	

-	<Label text="Name"/>

-	<Text x:style="BORDER" text="{Binding Path=name}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Label>

-		<Label.text>

-		   <Binding path="name">

-		   	  <Binding.converter>

-		   	  	  <y:MyConverter/>

-		   	  </Binding.converter>

-		   </Binding>

-	    </Label.text>

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter_StaticResource.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter_StaticResource.java
deleted file mode 100644
index 45b05f6..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter_StaticResource.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class DataBindingConverter_StaticResource {

-	public static void main(String[] args) {

-

-		URL url = DataBindingConverter_StaticResource.class

-				.getResource(DataBindingConverter_StaticResource.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter_StaticResource.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter_StaticResource.xwt
deleted file mode 100644
index c299421..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter_StaticResource.xwt
+++ /dev/null
@@ -1,28 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding"

-	Size="400, 300"

-	DataContext="{StaticResource myData}">

-	<Shell.layout>

-		<GridLayout numColumns="3"/>

-	</Shell.layout>

-	

-	<Shell.Resources>

-		<y:Person x:Key="myData"/>

-		<y:MyConverter x:Key="myConverter"/>

-	</Shell.Resources>

-	

-	<Label text="Name"/>

-	<Text x:style="BORDER" text="{Binding Path=name}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Label text="{Binding Path=name,converter={StaticResource myConverter}}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingPath.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingPath.java
deleted file mode 100644
index 84f4a9b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingPath.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class DataBindingPath {

-	public static void main(String[] args) {

-

-		URL url = DataBindingPath.class.getResource(DataBindingPath.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void onNew(Event event) {

-		Shell shell = (Shell) XWT.findElementByName(event.widget, "Root");

-		Company company = (Company) XWT.getDataContext(shell);

-		Person person = new Person();

-		person.setName("New Manager1");

-		person.getAddress().setCity("ShenZhen");

-		company.setManager(person);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingPath.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingPath.xwt
deleted file mode 100644
index 6ed6534..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingPath.xwt
+++ /dev/null
@@ -1,48 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding"

-	x:Class="org.eclipse.xwt.tests.databinding.DataBindingPath"

-	Size="400, 300"

-	x:Name="Root"

-	DataContext="{StaticResource myData}">

-	<Shell.layout>

-		<GridLayout numColumns="3"/>

-	</Shell.layout>

-	

-	<Shell.Resources>

-		<y:Company x:Key="myData"/>

-	</Shell.Resources>

-	

-	<Label text="Name"/>

-	<Text Name="ManagerCity" x:style="BORDER" text="{Binding Path=manager.address.city}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Label text="{Binding Path=manager.name}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-	<Text x:style="BORDER" text="{Binding Path=manager.age}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Button x:style="CHECK" selection="{Binding Path=manager.maried}" text="Maried">

-		<Button.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Button.layoutData>

-	</Button>

-	<Combo text="{Binding Path=manager.nationality}">

-		<Combo.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Combo.layoutData>

-	</Combo>

-	<Button Name="Button" Text="New Manager" SelectionEvent="onNew"/>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingTests.java
deleted file mode 100644
index a6d2566..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingTests.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class DataBindingTests extends XWTTestCase {

-

-	public void testDataBindingPath() throws Exception {

-		URL url = DataBindingTests.class.getResource(DataBindingPath.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Object element = XWT.findElementByName(root, "Button");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				selectButton(button);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Object element = XWT.findElementByName(root, "ManagerCity");

-				assertTrue(element instanceof Text);

-				Text text = (Text) element;

-				assertEquals(text.getText(), "ShenZhen");

-			}

-		});

-	}

-

-	public void testDataBindingPath_UpdateSourceTrigger() throws Exception {

-		URL url = DataBindingTests.class

-				.getResource(DataBinding_UpdateSourceTrigger.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Object input = XWT.findElementByName(root, "inputText");

-				Object target = XWT.findElementByName(root, "targetText");

-				assertTrue(input instanceof Text);

-				Text inputText = (Text) input;

-				assertTrue(target instanceof Text);

-				inputText.setText("new value");

-				Text targetText = (Text) target;

-				// setFocus() doesn't work on Mac OS 64 Bits cocoa

-				setFocusOut(inputText);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Object target = XWT.findElementByName(root, "targetText");

-				assertTrue(target instanceof Text);

-				Text targetText = (Text) target;

-				assertEquals("new value", targetText.getText());

-			}

-		});

-	}

-

-	public void testDataBindingPath_UpdateSourceTrigger_2() throws Exception {

-		URL url = DataBindingTests.class

-				.getResource(DataBinding_UpdateSourceTrigger.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Object input = XWT.findElementByName(root, "inputText");

-				Object target = XWT.findElementByName(root, "targetText");

-				assertTrue(input instanceof Text);

-				Text inputText = (Text) input;

-				assertTrue(target instanceof Text);

-				Text targetText = (Text) target;

-				inputText.setText("new value");

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Object target = XWT.findElementByName(root, "targetText");

-				assertTrue(target instanceof Text);

-				Text targetText = (Text) target;

-				assertEquals(targetText.getText(), "toto");

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBinding_UpdateSourceTrigger.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBinding_UpdateSourceTrigger.java
deleted file mode 100644
index 2798211..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBinding_UpdateSourceTrigger.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class DataBinding_UpdateSourceTrigger {

-	public static void main(String[] args) {

-

-		URL url = DataBinding_UpdateSourceTrigger.class

-				.getResource(DataBinding_UpdateSourceTrigger.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBinding_UpdateSourceTrigger.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBinding_UpdateSourceTrigger.xwt
deleted file mode 100644
index a6f9b41..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBinding_UpdateSourceTrigger.xwt
+++ /dev/null
@@ -1,27 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding"

-	Size="400, 300"

-	DataContext="{StaticResource myData}">

-	<Shell.layout>

-		<GridLayout numColumns="3"/>

-	</Shell.layout>

-	

-	<Shell.Resources>

-		<y:Person x:Key="myData"/>

-	</Shell.Resources>

-	

-	<Label text="Name"/>

-	<Text name="inputText" x:style="BORDER" text="{Binding Path=name,UpdateSourceTrigger=LostFocus}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Text name="targetText" text="{Binding Path=name}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/MyConverter.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/MyConverter.java
deleted file mode 100644
index ba54e3a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/MyConverter.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding;

-

-import org.eclipse.xwt.IValueConverter;

-

-public class MyConverter implements IValueConverter {

-

-	public Object convertBack(Object value) {

-		throw new UnsupportedOperationException();

-	}

-

-	public Object convert(Object fromObject) {

-		return "-> " + fromObject;

-	}

-

-	public Object getFromType() {

-		return String.class;

-	}

-

-	public Object getToType() {

-		return String.class;

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/Person.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/Person.java
deleted file mode 100644
index eedd7f9..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/Person.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding;

-

-public class Person extends BeanObject {

-	private String name = "toto";

-	private int age = 10;

-	private boolean maried = true;

-	private Country nationality = Country.FR;

-	private Address address;

-

-	public void setMaried(boolean maried) {

-		boolean oldValue = this.maried;

-		this.maried = maried;

-		changeSupport.firePropertyChange("maried", oldValue, maried);

-	}

-

-	public Country getNationality() {

-		return nationality;

-	}

-

-	public boolean isMaried() {

-		return maried;

-	}

-

-	public int getAge() {

-		return age;

-	}

-

-	public void setAge(int age) {

-		int oldValue = this.age;

-		this.age = age;

-		changeSupport.firePropertyChange("age", oldValue, age);

-	}

-

-	public Person() {

-		address = new Address();

-	}

-

-	public void setName(String name) {

-		String oldValue = this.name;

-		this.name = name;

-		changeSupport.firePropertyChange("name", oldValue, name);

-	}

-

-	public String getName() {

-		return name;

-	}

-

-	public Address getAddress() {

-		return address;

-	}

-

-	public void setAddress(Address address) {

-		Address oldValue = this.address;

-		this.address = address;

-		changeSupport.firePropertyChange("address", oldValue, address);

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindButton.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindButton.java
deleted file mode 100644
index e4cef07..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindButton.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.bindcontrol;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class BindButton {

-	public static void main(String[] args) {

-

-		URL url = BindButton.class.getResource(BindButton.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindButton.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindButton.xwt
deleted file mode 100644
index d23cca9..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindButton.xwt
+++ /dev/null
@@ -1,24 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding" Size="400, 300">

-	<Shell.layout>

-		<GridLayout numColumns="2" />

-	</Shell.layout>

-	<Button x:Style="CHECK" x:Name="theTextBox" Text="Hello" enabled="true" visible="true"

-		background="COLOR_CYAN" foreground="COLOR_BLACK" font="3">

-		<Button.layoutData>

-			<GridData horizontalAlignment="FILL"

-				grabExcessHorizontalSpace="true" />

-		</Button.layoutData>

-	</Button>

-	<Button x:style="CHECK" Text="Hello Clone"

-		Selection="{Binding ElementName=theTextBox, Path=Selection}"

-		enabled="{Binding ElementName=theTextBox, Path=enabled}"

-		background="{Binding ElementName=theTextBox,Path=background}" foreground="{Binding ElementName=theTextBox,Path=foreground}"

-		font="{Binding ElementName=theTextBox,Path=font}">

-

-		<Button.layoutData>

-			<GridData horizontalAlignment="FILL"

-				grabExcessHorizontalSpace="true" />

-		</Button.layoutData>

-	</Button>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindControl.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindControl.java
deleted file mode 100644
index 76636b6..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindControl.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.bindcontrol;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class BindControl {

-	public static void main(String[] args) {

-

-		URL url = BindControl.class.getResource(BindControl.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindControl.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindControl.xwt
deleted file mode 100644
index 62f7d88..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindControl.xwt
+++ /dev/null
@@ -1,63 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding" xmlns:j="clr-namespace:java.lang">

-	<Shell.layout>

-		<GridLayout numColumns="2" />

-	</Shell.layout>

-	<!-- Selection property -->

-	<Button x:Style="CHECK" x:Name="StateBox" Text="Selection State"

-		enabled="true" visible="true">

-	</Button>

-	<Button x:style="CHECK" Text="{Binding ElementName=StateBox,Path=Text}"

-		Selection="{Binding ElementName=StateBox, Path=Selection}">

-	</Button>

-	<!-- Text property -->

-	<Text x:Style="BORDER" name="Message" text="Text Binding">

-	</Text>

-	<Text x:Style="BORDER" text="{Binding ElementName=Message, Path=text}"

-		foreground="{Binding ElementName=Message, Path=foreground}">

-	</Text>

-	<!-- Visible property -->

-	<Button x:style="CHECK" x:Name="VisibleBox" Text="Visible"

-		Selection="false">

-	</Button>

-	<Label text="Visible Binding" visible="{Binding ElementName=VisibleBox, Path=Selection}">

-	</Label>

-	<!-- Visible property bound to text -->

-	<Text x:Name="StateText" x:Style="BORDER" Text="true">

-	</Text>

-	<Button text="bound to text" visible="{Binding ElementName=StateText, Path=Text}">

-	</Button>

-	<!-- Enable property -->

-	<Button x:style="CHECK" x:Name="EnabledBox" Text="Enabled"

-		Selection="false">

-	</Button>

-	<Button text="Push me"

-		enabled="{Binding ElementName=EnabledBox, Path=Selection}">

-	</Button>

-	<Group text="Setting">

-		<Group.layout>

-			<GridLayout numColumns="2" />

-		</Group.layout>

-		<Label text="Foreground:"></Label>

-		<Combo text="Black" Name="FGColorSelector">

-			<Combo.items>

-				<j:String>Red</j:String>

-				<j:String>Blue</j:String>

-				<j:String>Green</j:String>

-				<j:String>White</j:String>

-			</Combo.items>

-		</Combo>

-		<Label text="Background:"></Label>

-		<Combo text="White" Name="BGColorSelector">

-			<Combo.items>

-				<j:String>Red</j:String>

-				<j:String>Blue</j:String>

-				<j:String>Green</j:String>

-				<j:String>White</j:String>

-			</Combo.items>

-		</Combo>

-	</Group>

-	<Label name="ColorView" text="Color Viewer"

-		foreground="{Binding ElementName=FGColorSelector, Path=Text}" 

-		background="{Binding ElementName=BGColorSelector, Path=Text}"/>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMenuItem.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMenuItem.java
deleted file mode 100644
index 33cedce..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMenuItem.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.bindcontrol;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class BindMenuItem {

-	public static void main(String[] args) {

-

-		URL url = BindMenuItem.class.getResource(BindMenuItem.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMenuItem.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMenuItem.xwt
deleted file mode 100644
index 7799081..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMenuItem.xwt
+++ /dev/null
@@ -1,32 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding" Size="400, 300">

-	<Shell.layout>

-		<GridLayout numColumns="1" />

-	</Shell.layout>

-	<Button x:Style="CHECK" x:Name="EnabledButton" Text="Enabled" enabled="true" visible="true">

-		<Button.layoutData>

-			<GridData horizontalAlignment="FILL"

-				grabExcessHorizontalSpace="true" />

-		</Button.layoutData>

-	</Button>

-	<Button x:style="CHECK" Text="Selection" Name="SelectionButton">

-		<Button.layoutData>

-			<GridData horizontalAlignment="FILL"

-				grabExcessHorizontalSpace="true" />

-		</Button.layoutData>

-	</Button>

-	<Button Text="Pop up">

-		<Button.menu>

-			<Menu x:style="POP_UP">

-				<MenuItem text="Enabled" x:style="PUSH" name="EnabledMenuItem"

-					enabled="{Binding ElementName=EnabledButton,path=selection}"/>

-				<MenuItem text="Selection" x:style="CHECK" name="SelectionMenuItem"

-					selection="{Binding ElementName=SelectionButton,path=selection}"/>

-			</Menu>

-		</Button.menu>

-		<Button.layoutData>

-			<GridData horizontalAlignment="FILL"

-				grabExcessHorizontalSpace="true" />

-		</Button.layoutData>

-	</Button>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMode.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMode.java
deleted file mode 100644
index ccd4218..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMode.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.bindcontrol;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class BindMode {

-	public static void main(String[] args) {

-

-		URL url = BindMode.class.getResource(BindMode.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMode.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMode.xwt
deleted file mode 100644
index ae49978..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMode.xwt
+++ /dev/null
@@ -1,59 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding" Size="500, 400">

-	<Shell.layout>

-		<FillLayout/>

-	</Shell.layout>

-	<Group text="Binding Mode">

-	<Group.layout>

-		<GridLayout numColumns="4" />

-	</Group.layout>

-	<!-- Mode:OneWay -->

-	<Label Text="OneWay">

-	</Label>

-	<Text x:Style="BORDER" x:Name="theOneWayTextBox" Text="OneWay">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-				grabExcessHorizontalSpace="true" />

-		</Text.layoutData>

-	</Text>

-	<Label text="--&gt;"/>

-	<Text x:style="BORDER" Text="{Binding ElementName=theOneWayTextBox, Path=Text, Mode=OneWay}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-				grabExcessHorizontalSpace="true" />

-		</Text.layoutData>

-	</Text>

-	<!-- Mode:OneTime -->

-	<Label Text="OneTime">

-	</Label>

-	<Text x:Style="BORDER" x:Name="theOneTimeTextBox" Text="OneTime">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-				grabExcessHorizontalSpace="true" />

-		</Text.layoutData>

-	</Text>

-	<Label text="----"/>

-	<Text x:style="BORDER" Text="{Binding ElementName=theOneTimeTextBox, Path=Text, Mode=OneTime}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-				grabExcessHorizontalSpace="true" />

-		</Text.layoutData>

-	</Text>

-	<!-- Mode:TwoWay -->

-	<Label Text="TwoWay">

-	</Label>

-	<Text x:Style="BORDER" x:Name="theTwoWayTextBox" Text="TwoWay">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-				grabExcessHorizontalSpace="true" />

-		</Text.layoutData>

-	</Text>

-	<Label text="&lt;-&gt;"/>

-	<Text x:style="BORDER" Text="{Binding ElementName=theTwoWayTextBox, Path=Text, Mode=TwoWay}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-				grabExcessHorizontalSpace="true" />

-		</Text.layoutData>

-	</Text>

-	</Group>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMode_Element.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMode_Element.java
deleted file mode 100644
index 4d4a428..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMode_Element.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.bindcontrol;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class BindMode_Element {

-	public static void main(String[] args) {

-

-		URL url = BindMode_Element.class.getResource(BindMode_Element.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMode_Element.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMode_Element.xwt
deleted file mode 100644
index b099645..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMode_Element.xwt
+++ /dev/null
@@ -1,60 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding" Size="500, 400">

-	<Shell.layout>

-		<GridLayout numColumns="3" />

-	</Shell.layout>

-	<!-- Mode:OneWay -->

-	<Label Text="Binding Mode:OneWay">

-	</Label>

-	<Text x:Style="BORDER" x:Name="theOneWayTextBox" Text="OneWay">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-				grabExcessHorizontalSpace="true" />

-		</Text.layoutData>

-	</Text>

-	<Text x:style="BORDER">

-		<Text.text>

-			<Binding ElementName="theOneWayTextBox" Path="Text" Mode="OneWay"/>

-		</Text.text>

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-				grabExcessHorizontalSpace="true" />

-		</Text.layoutData>

-	</Text>

-	<!-- Mode:OneTime -->

-	<Label Text="Binding Mode:OneTime">

-	</Label>

-	<Text x:Style="BORDER" x:Name="theOneTimeTextBox" Text="OneTime">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-				grabExcessHorizontalSpace="true" />

-		</Text.layoutData>

-	</Text>

-	<Text x:style="BORDER" >*

-		<Text.text>

-			<Binding ElementName="theOneTimeTextBox" Path="Text" Mode="OneTime"/>

-		</Text.text>

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-				grabExcessHorizontalSpace="true" />

-		</Text.layoutData>

-	</Text>

-	<!-- Mode:TwoWay -->

-	<Label Text="Binding Mode:TwoWay">

-	</Label>

-	<Text x:Style="BORDER" x:Name="theTwoWayTextBox" Text="TwoWay">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-				grabExcessHorizontalSpace="true" />

-		</Text.layoutData>

-	</Text>

-	<Text x:style="BORDER">

-		<Text.text>

-			<Binding ElementName="theTwoWayTextBox" Path="Text" Mode="Mode=TwoWay}"/>

-		</Text.text>

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-				grabExcessHorizontalSpace="true" />

-		</Text.layoutData>

-	</Text>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindSelfButton.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindSelfButton.java
deleted file mode 100644
index bbf8fe8..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindSelfButton.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.bindcontrol;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class BindSelfButton {

-	public static void main(String[] args) {

-

-		URL url = BindSelfButton.class.getResource(BindSelfButton.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindSelfButton.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindSelfButton.xwt
deleted file mode 100644
index 96e5f83..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindSelfButton.xwt
+++ /dev/null
@@ -1,12 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding" Size="400, 300">

-	<Shell.layout>

-		<GridLayout numColumns="1" />

-	</Shell.layout>

-	<Button x:Style="CHECK" x:Name="theTextBox" text="{Binding ElementName=theTextBox, Path=selection}">

-		<Button.layoutData>

-			<GridData horizontalAlignment="FILL"

-				grabExcessHorizontalSpace="true" />

-		</Button.layoutData>

-	</Button>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/ControlBinding.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/ControlBinding.java
deleted file mode 100644
index c7fe753..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/ControlBinding.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.bindcontrol;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class ControlBinding {

-

-	public static void main(String[] args) {

-		URL url = ControlBinding.class.getResource(ControlBinding.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/ControlBinding.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/ControlBinding.xwt
deleted file mode 100644
index ff4ef27..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/ControlBinding.xwt
+++ /dev/null
@@ -1,30 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt">

-	<Shell.layout>

-		<FormLayout />

-	</Shell.layout>

-	<Button x:Name="Button1" text="button1">

-		<Button.layoutData>

-			<FormData>

-				<FormData.top>

-					<FormAttachment numerator="20" offset="0" />

-				</FormData.top>

-				<FormData.left>

-					<FormAttachment numerator="10" offset="0" />

-				</FormData.left>

-			</FormData>

-		</Button.layoutData>

-	</Button>

-	<Button text="button2">

-		<Button.layoutData>

-			<FormData>

-				<FormData.top>

-					<FormAttachment control="{Binding ElementName=Button1}"

-						offset="0" />

-				</FormData.top>

-				<FormData.left>

-					<FormAttachment numerator="50" offset="0" />

-				</FormData.left>

-			</FormData>

-		</Button.layoutData>

-	</Button>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/ControlBindingTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/ControlBindingTests.java
deleted file mode 100644
index 06962d3..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/ControlBindingTests.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.bindcontrol;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.MenuItem;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class ControlBindingTests extends XWTTestCase {

-

-	public void testMenuItemEnabled() throws Exception {

-		URL url = ControlBindingTests.class.getResource(BindMenuItem.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Object element = XWT.findElementByName(root, "EnabledButton");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				selectButton(button);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Object element = XWT.findElementByName(root, "EnabledMenuItem");

-				assertTrue(element instanceof MenuItem);

-				MenuItem menuItem = (MenuItem) element;

-				assertTrue(menuItem.getEnabled());

-			}

-		});

-	}

-

-	public void testMenuItemSelection() throws Exception {

-		URL url = ControlBindingTests.class.getResource(BindMenuItem.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Object element = XWT.findElementByName(root, "SelectionButton");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				selectButton(button);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Object element = XWT.findElementByName(root,

-						"SelectionMenuItem");

-				assertTrue(element instanceof MenuItem);

-				MenuItem menuItem = (MenuItem) element;

-				assertTrue(menuItem.getSelection());

-			}

-		});

-	}

-

-	public void testMenuItemUnselection() throws Exception {

-		URL url = ControlBindingTests.class.getResource(BindMenuItem.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Object element = XWT.findElementByName(root, "SelectionButton");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				selectButton(button);

-				selectButton(button, false);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Object element = XWT.findElementByName(root,

-						"SelectionMenuItem");

-				assertTrue(element instanceof MenuItem);

-				MenuItem menuItem = (MenuItem) element;

-				assertFalse(menuItem.getSelection());

-			}

-		});

-	}

-

-	public void testTwoRadios() throws Exception {

-		URL url = ControlBindingTests.class.getResource(TwoRadios.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button radio1 = (Button) XWT.findElementByName(root, "button1");

-				Button radio2 = (Button) XWT.findElementByName(root, "button2");

-				checkInitial(radio1, radio2);

-			}

-			private void checkInitial(Button radio1, Button radio2) {

-				if (!radio2.getEnabled())

-					fail("radio2 should have been enabled");

-			}

-		});

-	}

-	

-	public void testTwoRadios_Select1() throws Exception {

-		URL url = ControlBindingTests.class.getResource(TwoRadios.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button radio1 = (Button) XWT.findElementByName(root, "button1");

-				selectButton(radio1, true);

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Button radio1 = (Button) XWT.findElementByName(root, "button1");

-				Button radio2 = (Button) XWT.findElementByName(root, "button2");

-				checkSelected(radio1, radio2);

-			}

-

-			private void checkSelected(Button radio1, Button radio2) {

-				if (radio2.getEnabled())

-					fail("radio2 should have been disabled");

-			}

-		});

-	}

-

-	public void testTwoRadios_UnSelect1() throws Exception {

-		URL url = ControlBindingTests.class.getResource(TwoRadios.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button radio1 = (Button) XWT.findElementByName(root, "button1");

-				selectButton(radio1, true);

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Button radio1 = (Button) XWT.findElementByName(root, "button1");

-				selectButton(radio1, false);

-			}

-		}, 

-		new Runnable() {

-			public void run() {

-				Button radio2 = (Button) XWT.findElementByName(root, "button2");

-				if (!radio2.getEnabled())

-					fail("radio2 should have been disabled");

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/NotConverter.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/NotConverter.java
deleted file mode 100644
index 3b12f80..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/NotConverter.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec and hceylan - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.bindcontrol;

-

-import org.eclipse.core.databinding.conversion.Converter;

-import org.eclipse.xwt.IValueConverter;

-

-/**

- * A Converter that converts boolean values with not operator

- *

- * @author hceylan

- *

- */

-public class NotConverter extends Converter implements IValueConverter {

-

-	/**

-	 *

-	 */

-	public NotConverter() {

-		super(Boolean.class, Boolean.class);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 *

-	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)

-	 */

-	public Object convert(Object fromObject) {

-		return !((Boolean) fromObject);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 *

-	 * @see org.eclipse.xwt.IValueConverter#convertBack(java.lang.Object)

-	 */

-	public Object convertBack(Object value) {

-		return this.convert(value);

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/TwoRadios.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/TwoRadios.java
deleted file mode 100644
index ec53593..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/TwoRadios.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec and hceylan - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.bindcontrol;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class TwoRadios {

-	public static void main(String[] args) {

-

-		URL url = TwoRadios.class.getResource(TwoRadios.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/TwoRadios.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/TwoRadios.xwt
deleted file mode 100644
index f3a7dbc..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/TwoRadios.xwt
+++ /dev/null
@@ -1,19 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding" Size="400, 300"

-	xmlns:c="clr-namespace:org.eclipse.xwt.tests.databinding.bindcontrol">

-	<Shell.layout>

-		<GridLayout numColumns="2" />

-	</Shell.layout>

-

-	<Shell.Resources>

-		<c:NotConverter x:Key="notConverter" />

-	</Shell.Resources>

-

-	<Label Text="Using Public Computer" />

-	<Button x:name="button1" x:style="CHECK" />

-

-	<Label Text="Remember Login" />

-	<Button x:name="button2" x:style="CHECK"

-		enabled="{Binding elementName=button1, path=selection,

-			Converter={StaticResource notConverter}, mode=OneWay}" />

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/Company.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/Company.java
deleted file mode 100644
index d492358..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/Company.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.datacontext;

-

-public class Company {

-	protected String name;

-	protected Person manager;

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-

-	public Person getManager() {

-		return manager;

-	}

-

-	public void setManager(Person manager) {

-		this.manager = manager;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/CompanyView.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/CompanyView.java
deleted file mode 100644
index 010c15b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/CompanyView.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.datacontext;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.xwt.XWT;

-

-public class CompanyView extends Composite {

-

-	public CompanyView(Composite parent, int style) {

-		super(parent, style);

-		// TODO Auto-generated constructor stub

-	}

-

-	public static void main(String[] args) {

-		URL url = CompanyView.class.getResource("CompanyView.xwt");

-		try {

-			XWT.open(url, Factory.createCompany());

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/CompanyView.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/CompanyView.xwt
deleted file mode 100644
index 61786d6..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/CompanyView.xwt
+++ /dev/null
@@ -1,27 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	 xmlns:x="http://www.eclipse.org/xwt"

-	 xmlns:c="clr-namespace:org.eclipse.xwt.tests.databinding.datacontext"

-	 xmlns:j="clr-namespace:java.lang"

-	 x:Class="org.eclipse.xwt.tests.databinding.datacontext.CompanyView">

-	 <Composite.layout>

-		 <GridLayout  numColumns="4" />

-	 </Composite.layout>

-	 <Group text="manager">

-		 <Group.layout>

-			 <FillLayout/>

-		 </Group.layout>

-		 <c:PersonView dataContext="{Binding path=manager}"/>

-		 <Text text="{Binding path=manager.firstName}"/>

-		 <Group.layoutData>

-			 <GridData grabExcessHorizontalSpace="true" horizontalSpan="4"

-				 horizontalAlignment="GridData.FILL" widthHint="200"/>

-		 </Group.layoutData>

-	 </Group>

-	 <Label text="name"/>

-	 <Text x:Style="Border" text="{Binding path=name}">

-		 <Text.layoutData>

-			 <GridData grabExcessHorizontalSpace="true"

-				 horizontalAlignment="GridData.FILL" widthHint="100"/>

-		 </Text.layoutData>

-	 </Text>

-</Composite>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/Factory.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/Factory.java
deleted file mode 100644
index 16efd3d..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/Factory.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.datacontext;

-

-public class Factory {

-	public static Person createPerson() {

-		Person person = new Person();

-		person.setFirstName("Luc");

-		person.setLastName("GAMEL");

-		return person;

-	}

-

-	public static Company createCompany() {

-		Company company = new Company();

-		company.setName("Soyatec");

-		company.setManager(createPerson());

-		return company;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/Person.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/Person.java
deleted file mode 100644
index 6a690fe..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/Person.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.datacontext;

-

-public class Person {

-	protected String firstName;

-

-	public String getFirstName() {

-		return firstName;

-	}

-

-	public void setFirstName(String firstName) {

-		this.firstName = firstName;

-	}

-

-	public String getLastName() {

-		return lastName;

-	}

-

-	public void setLastName(String lastName) {

-		this.lastName = lastName;

-	}

-

-	protected String lastName;

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/PersonView.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/PersonView.java
deleted file mode 100644
index 5669c29..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/PersonView.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.datacontext;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.xwt.XWT;

-

-public class PersonView extends Composite {

-

-	public PersonView(Composite parent, int style) {

-		super(parent, style);

-		// TODO Auto-generated constructor stub

-	}

-

-	

-	public static void main(String[] args) {

-		URL url = PersonView.class.getResource("Person.xwt");

-		try {

-			XWT.open(url, Factory.createPerson());

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/PersonView.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/PersonView.xwt
deleted file mode 100644
index 9ea8028..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/PersonView.xwt
+++ /dev/null
@@ -1,37 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	 xmlns:x="http://www.eclipse.org/xwt"

-	 xmlns:c="clr-namespace:org.eclipse.xwt.tests.databinding.datacontext"

-	 xmlns:j="clr-namespace:java.lang"

-	 x:Class="org.eclipse.xwt.tests.databinding.datacontext.PersonView">

-	 <Composite.layout>

-		 <GridLayout numColumns="4" />

-	 </Composite.layout>

-	 <Label text="firstName"/>

-	 <Text x:Style="Border" text="{Binding path=firstName, updateSourceTrigger=PropertyChanged}">

-		 <Text.layoutData>

-			 <GridData grabExcessHorizontalSpace="true"

-				 horizontalAlignment="GridData.FILL" widthHint="100"/>

-		 </Text.layoutData>

-	 </Text>

-	 <Label text="lastName"/>

-	 <Text x:Style="Border" text="{Binding path=lastName}">

-		 <Text.layoutData>

-			 <GridData grabExcessHorizontalSpace="true"

-				 horizontalAlignment="GridData.FILL" widthHint="100"/>

-		 </Text.layoutData>

-	 </Text>

-	 <Label text="firstName"/>

-	 <Text x:Style="Border" text="{Binding path=firstName}">

-		 <Text.layoutData>

-			 <GridData grabExcessHorizontalSpace="true"

-				 horizontalAlignment="GridData.FILL" widthHint="100"/>

-		 </Text.layoutData>

-	 </Text>

-	 <Label text="lastName"/>

-	 <Text x:Style="Border" text="{Binding path=lastName}">

-		 <Text.layoutData>

-			 <GridData grabExcessHorizontalSpace="true"

-				 horizontalAlignment="GridData.FILL" widthHint="100"/>

-		 </Text.layoutData>

-	 </Text>

-</Composite>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/Book.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/Book.java
deleted file mode 100644
index 395c32a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/Book.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.dataprovider;

-

-import java.util.List;

-

-/**

- * @author jliu (jin.liu@soyatec.com)

- */

-public class Book {

-	private Title title;

-	public Title getTitle() {

-		return title;

-	}

-

-	public void setTitle(Title title) {

-		this.title = title;

-	}

-

-	public List<String> authors;

-	private int year;

-	private float price;

-

-	public int getYear() {

-		return year;

-	}

-

-	public void setYear(int year) {

-		this.year = year;

-	}

-

-	public float getPrice() {

-		return price;

-	}

-

-	public void setPrice(float price) {

-		this.price = price;

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/Bookstore.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/Bookstore.java
deleted file mode 100644
index 84d15e8..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/Bookstore.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.dataprovider;

-

-import java.util.ArrayList;

-import java.util.List;

-

-/**

- * @author jliu (jin.liu@soyatec.com)

- */

-public class Bookstore {

-

-	private List<Book> books = new ArrayList<Book>();

-

-	/**

-	 * 

-	 */

-	public Bookstore() {

-		Book b = new Book();

-		b.setTitle(new Title("en", "Everyday Italian"));

-		b.setYear(2005);

-		b.setPrice(30.00f);

-		ArrayList<String> authors = new ArrayList<String>();

-		authors.add("Giada De Laurentiis");

-		b.authors = authors;

-		books.add(b);

-

-		b = new Book();

-		b.setTitle(new Title("en", "Harry Potter"));

-		b.setYear(2005);

-		b.setPrice(29.99f);

-		authors = new ArrayList<String>();

-		authors.add("Neal Stephenson");

-		b.authors = authors;

-		books.add(b);

-

-		b = new Book();

-		b.setTitle(new Title("en", "Learning XML"));

-		b.setYear(2003);

-		b.setPrice(39.95f);

-		authors = new ArrayList<String>();

-		authors.add("Erik T. Ray");

-		b.authors = authors;

-		books.add(b);

-	}

-

-	public Book getFirstBook() {

-		return books.get(0);

-	}

-

-	public List<Book> getAll() {

-		return books;

-	}

-

-	public Book getBook(String title) {

-		for (Book b : books) {

-			if (title.equals(b.getTitle().getText())) {

-				return b;

-			}

-		}

-		return null;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/ObjectDataProvider_Method.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/ObjectDataProvider_Method.java
deleted file mode 100644
index d507c55..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/ObjectDataProvider_Method.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.dataprovider;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu (jin.liu@soyatec.com)

- */

-public class ObjectDataProvider_Method {

-	public static void main(String[] args) {

-

-		URL url = ObjectDataProvider_Method.class

-				.getResource(ObjectDataProvider_Method.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/ObjectDataProvider_Method.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/ObjectDataProvider_Method.xwt
deleted file mode 100644
index a20f767..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/ObjectDataProvider_Method.xwt
+++ /dev/null
@@ -1,64 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding.dataprovider"

-	xmlns:j="clr-namespace:java.lang"

-	Size="400, 300">

-	<Shell.layout>

-		<GridLayout numColumns="2"/>

-	</Shell.layout>

-	

-	<Shell.Resources>

-		<ObjectDataProvider x:Key="myBook" ObjectType="{x:Type y:Bookstore}" MethodName="getBook">

-			<ObjectDataProvider.MethodParameters>

-				<j:String>Harry Potter</j:String>

-			</ObjectDataProvider.MethodParameters>

-		</ObjectDataProvider>

-	</Shell.Resources>

-

-	<Group text="Title" dataContext="{Binding Source={StaticResource myBook}, path=title}" >	

-		<Group.layout>

-			<GridLayout numColumns="2"/>

-		</Group.layout>

-		<Label text="Language"/>

-		<Text x:style="BORDER" text="{Binding path=lang}">

-			<Text.layoutData>

-				<GridData horizontalAlignment="FILL"

-	         		grabExcessHorizontalSpace="true"/>

-			</Text.layoutData>

-		</Text>

-		<Label text="Text"/>

-		<Text x:style="BORDER" text="{Binding path=text}">

-			<Text.layoutData>

-				<GridData horizontalAlignment="FILL"

-	         		grabExcessHorizontalSpace="true"/>

-			</Text.layoutData>

-		</Text>

-		<Group.layoutData>

-			<GridData horizontalAlignment="FILL"

-				horizontalSpan="2"

-         		grabExcessHorizontalSpace="true"/>

-		</Group.layoutData>

-	</Group>

-	<Label text="Price"/>

-	<Text x:style="BORDER" text="{Binding Source={StaticResource myBook}, Path=price}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Label text="{Binding Source={StaticResource myBook},path=title.lang}">

-		<Label.layoutData>

-			<GridData widthHint="100"/>

-		</Label.layoutData>

-	</Label>

-	<Label text="{Binding Source={StaticResource myBook},path=title.text}">

-		<Label.layoutData>

-			<GridData widthHint="100"/>

-		</Label.layoutData>

-	</Label>

-	<Label text="{Binding Source={StaticResource myBook}, Path=price}">

-		<Label.layoutData>

-			<GridData widthHint="100"/>

-		</Label.layoutData>

-	</Label>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/ObjectDataProvider_Test.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/ObjectDataProvider_Test.java
deleted file mode 100644
index 471f593..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/ObjectDataProvider_Test.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.dataprovider;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu (jin.liu@soyatec.com)

- */

-public class ObjectDataProvider_Test {

-	public static void main(String[] args) {

-

-		URL url = ObjectDataProvider_Test.class

-				.getResource(ObjectDataProvider_Test.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/ObjectDataProvider_Test.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/ObjectDataProvider_Test.xwt
deleted file mode 100644
index 0300949..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/ObjectDataProvider_Test.xwt
+++ /dev/null
@@ -1,28 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding.dataprovider"

-	Size="400, 300">

-	<Shell.layout>

-		<GridLayout numColumns="3"/>

-	</Shell.layout>

-	

-	<Shell.Resources>

-		<ObjectDataProvider x:Key="myBook" ObjectType="{x:Type y:Bookstore}" MethodName="getFirstBook">

-		</ObjectDataProvider>

-	</Shell.Resources>

-	

-	<Label text="Title Language"/>

-	<Text x:style="BORDER" text="{Binding Source={StaticResource myBook}, Path=title.lang}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Label text="{Binding Source={StaticResource myBook},Path=title.lang}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL"

-				widthHint="100"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/Title.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/Title.java
deleted file mode 100644
index 46a7b1f..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/Title.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.dataprovider;

-

-/**

- * @author jliu (jin.liu@soyatec.com)

- */

-public class Title {

-	private String lang;

-	private String text;

-

-	/**

-	 * 

-	 */

-	public Title(String lang, String text) {

-		this.lang = lang;

-		this.text = text;

-	}

-

-	public String getLang() {

-		return lang;

-	}

-

-	public void setLang(String lang) {

-		this.lang = lang;

-	}

-

-	public String getText() {

-		return text;

-	}

-

-	public void setText(String text) {

-		this.text = text;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see java.lang.Object#toString()

-	 */

-	public String toString() {

-		if (text != null) {

-			return text;

-		}

-		return super.toString();

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider.java
deleted file mode 100644
index 812b75e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.dataprovider.custom;

-

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.core.databinding.property.value.IValueProperty;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.databinding.XWTObservableValue;

-import org.eclipse.xwt.dataproviders.AbstractDataProvider;

-import org.eclipse.xwt.internal.core.UpdateSourceTrigger;

-

-/**

- * An sample a custom data provider

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class CustomDataProvider extends AbstractDataProvider {

-	static DataModelService dataModelService = new DataModelService() {

-		public Object toModelType(Object data) {

-			return null;

-		}

-

-		public Object loadModelType(String className) {

-			return null;

-		}

-

-		public Object toModelPropertyType(Object object, String propertyName) {

-			return null;

-		}

-	};

-

-	protected Class<?> objectType;

-	protected DynamicObject object;

-

-	public Object getData(String path) {

-		if (path == null) {

-			return this;

-		}

-		return getData(getObjectInstance(), path);

-	}

-

-	public Object getData(Object object, String path) {

-		assert object instanceof DynamicObject;

-		return ((DynamicObject) object).getProperty(path);

-	}

-

-	public void setData(String path, Object value) {

-		setData(getObjectInstance(), path, value);

-	}

-

-	public void setData(Object object, String path, Object value) {

-		assert object instanceof DynamicObject;

-		((DynamicObject) object).setProperty(path, value);

-	}

-

-	public IValueProperty observeValueProperty(Object valueType, String path,

-			UpdateSourceTrigger updateSourceTrigger) {

-		return new MyValueProperty();

-	}

-

-	@Override

-	public IObservableValue observeValue(Object bean,

-			final String propertyName) {

-		Object target = getObjectInstance();

-		if (target != null) {

-			return new XWTObservableValue(target.getClass(), target,

-					propertyName) {

-				@Override

-				protected void doSetApprovedValue(Object value) {

-					CustomDataProvider.this.getObjectInstance().setProperty(

-							propertyName, value);

-				}

-

-				@Override

-				protected Object doGetValue() {

-					return CustomDataProvider.this.getData(propertyName);

-				}

-			};

-		}

-		return null;

-	}

-

-	@Override

-	public IObservableValue observeDetailValue(IObservableValue bean,

-			Object ownerType, String propertyName, Object propertyType) {

-		return null;

-	}

-

-	public Class<?> getDataType(String path) {

-		return String.class;

-	}

-

-	public void setObjectType(Class<?> objectType) {

-		this.objectType = objectType;

-	}

-

-	public Class<?> getObjectType() {

-		return objectType;

-	}

-

-	public void setObjectInstance(DynamicObject objectInstance) {

-		object = objectInstance;

-	}

-

-	public DynamicObject getObjectInstance() {

-		if (object == null && objectType != null) {

-			try {

-				object = (DynamicObject) objectType.newInstance();

-			} catch (Exception e) {

-				throw new XWTException(e);

-			}

-		}

-		return object;

-	}

-

-	public DataModelService getModelService() {

-		return dataModelService;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Default.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Default.java
deleted file mode 100644
index 950bef6..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Default.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.dataprovider.custom;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.IDataProvider;

-import org.eclipse.xwt.IDataProviderFactory;

-import org.eclipse.xwt.XWT;

-

-/**

- * Introduce the Default Data provider

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class CustomDataProvider_Default {

-	public static void main(String[] args) {

-		URL url = CustomDataProvider_Default.class

-				.getResource(CustomDataProvider_Default.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.addDataProviderFactory("MyDataProviderfactory", new IDataProviderFactory() {

-				public Class<?> getType() {

-					return CustomDataProvider.class;

-				}

-

-				public IDataProvider create(Object dataContext) {

-					if (dataContext instanceof DynamicObject) {

-						CustomDataProvider provider = new CustomDataProvider();

-						provider.setObjectInstance((DynamicObject) dataContext);

-						return provider;

-					}

-					return null;

-				}

-			});

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Default.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Default.xwt
deleted file mode 100644
index ad5e4bd..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Default.xwt
+++ /dev/null
@@ -1,26 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding.dataprovider.custom"

-	Size="400, 300">

-	<Shell.layout>

-		<GridLayout numColumns="3"/>

-	</Shell.layout>

-	

-	<Shell.Resources>

-		<y:DynamicObject x:Key="myBook"/>

-	</Shell.Resources>

-	

-	<Label text="Title: "/>

-	<Text x:style="BORDER" text="{Binding Source={StaticResource myBook}, Path=title}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Label text="{Binding Source={StaticResource myBook}, Path=title}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Switch.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Switch.java
deleted file mode 100644
index 1346af4..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Switch.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.dataprovider.custom;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * Introduce a Data provider to an existing data context in XML

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class CustomDataProvider_Switch {

-	public static void main(String[] args) {

-		URL url = CustomDataProvider_Switch.class

-				.getResource(CustomDataProvider_Switch.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url, new DynamicObject());

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Switch.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Switch.xwt
deleted file mode 100644
index ca9ecfb..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Switch.xwt
+++ /dev/null
@@ -1,26 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding.dataprovider.custom"

-	Size="400, 300">

-	<Shell.layout>

-		<GridLayout numColumns="3"/>

-	</Shell.layout>

-	

-	<Shell.Resources>

-		<y:CustomDataProvider x:Key="myBook" ObjectInstance="{Binding}"/>

-	</Shell.Resources>

-	

-	<Label text="Title: "/>

-	<Text x:style="BORDER" text="{Binding Source={StaticResource myBook}, Path=title}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Label text="{Binding Source={StaticResource myBook}, Path=title}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Test.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Test.java
deleted file mode 100644
index 5611d35..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Test.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.dataprovider.custom;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * Introduce the Data provider with data context together in XML

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class CustomDataProvider_Test {

-	public static void main(String[] args) {

-

-		URL url = CustomDataProvider_Test.class

-				.getResource(CustomDataProvider_Test.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Test.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Test.xwt
deleted file mode 100644
index 0fae11c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Test.xwt
+++ /dev/null
@@ -1,26 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding.dataprovider.custom"

-	Size="400, 300">

-	<Shell.layout>

-		<GridLayout numColumns="3"/>

-	</Shell.layout>

-	

-	<Shell.Resources>

-		<y:CustomDataProvider x:Key="myBook" ObjectType="{x:Type y:DynamicObject}"/>

-	</Shell.Resources>

-	

-	<Label text="Title: "/>

-	<Text x:style="BORDER" text="{Binding Source={StaticResource myBook}, Path=title}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Label text="{Binding Source={StaticResource myBook}, Path=title}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/DynamicObject.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/DynamicObject.java
deleted file mode 100644
index 4346b2f..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/DynamicObject.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.dataprovider.custom;

-

-import java.util.HashMap;

-import java.util.Map;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class DynamicObject {

-	protected Map<String, Object> properties = new HashMap<String, Object>();

-

-	public Object getProperty(String name) {

-		return getProperty(name, null);

-	}

-

-	public Object getProperty(String name, Object defaultValue) {

-		Object value = properties.get(name);

-		if (value == null) {

-			value = defaultValue;

-		}

-		return value;

-	}

-

-	public void setProperty(String name, Object value) {

-		properties.put(name, value);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/MyValueProperty.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/MyValueProperty.java
deleted file mode 100644
index accb826..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/MyValueProperty.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.dataprovider.custom;

-

-import org.eclipse.core.databinding.observable.Realm;

-import org.eclipse.core.databinding.observable.list.IObservableList;

-import org.eclipse.core.databinding.observable.map.IObservableMap;

-import org.eclipse.core.databinding.observable.set.IObservableSet;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.core.databinding.property.value.ValueProperty;

-

-public class MyValueProperty extends ValueProperty {

-

-	public MyValueProperty() {

-	}

-

-	public Object getValueType() {

-		return null;

-	}

-

-	public IObservableValue observe(Realm realm, Object source) {

-		return null;

-	}

-

-	public IObservableList observeDetail(IObservableList master) {

-		return null;

-	}

-

-	public IObservableMap observeDetail(IObservableSet master) {

-		return null;

-	}

-

-	public IObservableMap observeDetail(IObservableMap master) {

-		return null;

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Path.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Path.java
deleted file mode 100644
index 4f8e152..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Path.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.dataprovider.xml;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.xml.XmlDataProvider;

-

-public class XmlDataProvider_Path {

-	public static void main(String[] args) {

-		XWT.registerMetaclass(XmlDataProvider.class);

-

-		URL url = XmlDataProvider_Path.class

-				.getResource(XmlDataProvider_Path.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Path.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Path.xwt
deleted file mode 100644
index ad0cc8e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Path.xwt
+++ /dev/null
@@ -1,37 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding"

-	Size="400, 300">

-	<Shell.layout>

-		<GridLayout numColumns="3"/>

-	</Shell.layout>

-	

-	<Shell.Resources>

-		<XmlDataProvider x:Key="myBooks" path="/bookstore">

-    		<x:XData>

-    		<bookstore>

-       			<book category="COOKING">

-					<title lang="en">Everyday Italian</title>

-					<author>Giada De Laurentiis</author>

-					<year>2005</year>

-					<price>30.00</price>

-				</book>

-    		</bookstore>

-    		</x:XData>

-		</XmlDataProvider>

-	</Shell.Resources>

-	

-	<Label text="Name"/>

-	<Text x:style="BORDER" text="{Binding Source={StaticResource myBooks}, path=//book/title/text()}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Label text="{Binding Source={StaticResource myBooks}, path=//book/title/text()}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Provider.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Provider.java
deleted file mode 100644
index 1c07d13..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Provider.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.dataprovider.xml;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.xml.XmlDataProvider;

-

-public class XmlDataProvider_Provider {

-	public static void main(String[] args) {

-		XWT.registerMetaclass(XmlDataProvider.class);

-

-		URL url = XmlDataProvider_Provider.class

-				.getResource(XmlDataProvider_Provider.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		XmlDataProvider dataProvider = new XmlDataProvider();

-		dataProvider.setSource(XmlDataProvider_Provider.class

-				.getResource("books_test.xml"));

-		try {

-			XWT.open(url, dataProvider);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Provider.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Provider.xwt
deleted file mode 100644
index d06937b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Provider.xwt
+++ /dev/null
@@ -1,22 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding"

-	Size="400, 300">

-	<Shell.layout>

-		<GridLayout numColumns="3"/>

-	</Shell.layout>

-		

-	<Label text="Name"/>

-	<Text x:style="BORDER" text="{Binding path=//book/title/text()}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Label text="{Binding path=//book/title/text()}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Source.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Source.java
deleted file mode 100644
index 2aaa371..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Source.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.dataprovider.xml;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.xml.XmlDataProvider;

-

-public class XmlDataProvider_Source {

-	public static void main(String[] args) {

-		XWT.registerMetaclass(XmlDataProvider.class);

-

-		URL url = XmlDataProvider_Source.class

-				.getResource(XmlDataProvider_Source.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Source.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Source.xwt
deleted file mode 100644
index f31ec80..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Source.xwt
+++ /dev/null
@@ -1,27 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding"

-	Size="400, 300">

-	<Shell.layout>

-		<GridLayout numColumns="3"/>

-	</Shell.layout>

-	

-	<Shell.Resources>

-		<XmlDataProvider x:Key="myBooks" Source="books.xml">

-		</XmlDataProvider>

-	</Shell.Resources>

-	

-	<Label text="Name"/>

-	<Text x:style="BORDER" text="{Binding Source={StaticResource myBooks}, path=//book[author='Neal Stephenson']/title/text()}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Label text="{Binding Source={StaticResource myBooks}, path=//book[author='Neal Stephenson']/title/text()}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Test.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Test.java
deleted file mode 100644
index c9abb09..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Test.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.dataprovider.xml;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.xml.XmlDataProvider;

-

-public class XmlDataProvider_Test {

-	public static void main(String[] args) {

-		XWT.registerMetaclass(XmlDataProvider.class);

-

-		URL url = XmlDataProvider_Test.class

-				.getResource(XmlDataProvider_Test.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Test.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Test.xwt
deleted file mode 100644
index 39a65bd..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Test.xwt
+++ /dev/null
@@ -1,37 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding"

-	Size="400, 300">

-	<Shell.layout>

-		<GridLayout numColumns="3"/>

-	</Shell.layout>

-	

-	<Shell.Resources>

-		<XmlDataProvider x:Key="myBooks">

-    		<x:XData>

-    		<bookstore>

-				<book category="CHILDREN">

-					<title lang="en">Harry Potter</title>

-					<author>Neal Stephenson</author>

-					<year>2005</year>

-					<price>29.99</price>

-				</book>

-    		</bookstore>

-    		</x:XData>

-		</XmlDataProvider>

-	</Shell.Resources>

-	

-	<Label text="Name"/>

-	<Text x:style="BORDER" text="{Binding Source={StaticResource myBooks}, path=//book/title/text()}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Label text="{Binding Source={StaticResource myBooks}, path=//book/title/text()}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/books.xml b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/books.xml
deleted file mode 100644
index 4d85f2a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/books.xml
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/books_test.xml b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/books_test.xml
deleted file mode 100644
index 4d85f2a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/books_test.xml
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datetime/DataBindingDateTimeTest.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datetime/DataBindingDateTimeTest.java
deleted file mode 100644
index c3acc92..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datetime/DataBindingDateTimeTest.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2016 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.datetime;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.DateTime;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class DataBindingDateTimeTest extends XWTTestCase {

-

-	public void testDataBinding() throws Exception {

-

-		URL url = DataBindingDateTimeTest.class.getResource(TestClassView.class

-				.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-

-				DateTime datetime = (DateTime) XWT.findElementByName(root,

-						"birthday");

-				DateTime copyDateTime = (DateTime) XWT.findElementByName(root,

-						"CopyDateTime");

-				checkBinding(datetime, copyDateTime);

-

-			}

-

-			private void checkBinding(DateTime datetime1, DateTime datetime2) {

-				assertEquals(datetime2.getYear(), datetime1.getYear());

-				assertEquals(datetime2.getMonth(), datetime1.getMonth());

-				assertEquals(datetime2.getDay(), datetime1.getDay());

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datetime/ModelObject.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datetime/ModelObject.java
deleted file mode 100644
index 6f38b89..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datetime/ModelObject.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2016 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.datetime;

-

-import java.beans.PropertyChangeListener;

-import java.beans.PropertyChangeSupport;

-

-public class ModelObject {

-  private final PropertyChangeSupport changeSupport = 

-      new PropertyChangeSupport(this);

-

-  public void addPropertyChangeListener(PropertyChangeListener 

-      listener) {

-    changeSupport.addPropertyChangeListener(listener);

-  }

-

-  public void removePropertyChangeListener(PropertyChangeListener 

-      listener) {

-    changeSupport.removePropertyChangeListener(listener);

-  }

-

-  protected void firePropertyChange(String propertyName, Object oldValue,

-      Object newValue) {

-    changeSupport.firePropertyChange(propertyName, oldValue, newValue);

-  }

-} 

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datetime/Person.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datetime/Person.java
deleted file mode 100644
index dccf11d..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datetime/Person.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2016 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.datetime;

-

-import java.util.Date;

-

-public class Person extends ModelObject {

-	  private String name;

-

-	  public String getName() {

-	    return name;

-	  }

-

-	  public void setName(String name) {

-	    firePropertyChange("name", this.name, this.name = name);

-	  }

-	  

-	  private Boolean married = false; ;

-

-	  public Boolean getMarried() {

-	    return married;

-	  }

-

-	  public void setMarried(Boolean married) {

-	    firePropertyChange("married", this.married, this.married = married);

-	  }

-	  

-	  private Date birthday;

-

-	  public Date getBirthday() {

-	    return birthday;

-	  }

-

-	  public void setBirthday(Date birthday) {

-	    firePropertyChange("birthday", this.birthday, this.birthday = birthday);

-	  }

-	} 

-

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datetime/TestClassView.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datetime/TestClassView.java
deleted file mode 100644
index 3bb4d7a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datetime/TestClassView.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/******************************************************************************* 

- * Copyright (c) 2006, 2016 Soyatec (http://www.soyatec.com) and others. 

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Eclipse Public License v1.0 

- * which accompanies this distribution, and is available at 

- * http://www.eclipse.org/legal/epl-v10.html 

- * 

- * Contributors: 

- * Soyatec - initial API and implementation 

- *******************************************************************************/

-

-package org.eclipse.xwt.tests.databinding.datetime;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.xwt.XWT;

-

-

-/**

- * @author El-Amine Ouraiba(amine.ouraiba@soyatec.com)

- * 

- */

-public class TestClassView extends Composite {

-	static Person person = new Person();

-	

-	public TestClassView(Composite parent, int style) {

-		super(parent, style);

-	}

-

-	

-	public static void main(String[] args) {

-		URL url = TestClassView.class

-				.getResource("TestClassView.xwt");

-		try {

-		

-			XWT.open(url, person);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/multibinding/MultiBinding.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/multibinding/MultiBinding.java
deleted file mode 100644
index 85ed54e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/multibinding/MultiBinding.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.multibinding;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class MultiBinding {

-	public static void main(String[] args) {

-

-		URL url = MultiBinding.class.getResource(MultiBinding.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/multibinding/MultiBinding.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/multibinding/MultiBinding.xwt
deleted file mode 100644
index 68649b9..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/multibinding/MultiBinding.xwt
+++ /dev/null
@@ -1,39 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding.multibinding"

-	Size="400, 300"

-	DataContext="{StaticResource myData}">

-	<Shell.layout>

-		<GridLayout numColumns="2"/>

-	</Shell.layout>

-	

-	<Shell.Resources>

-		<y:Person x:Key="myData" firstName="Luc" lastName="DUMAS"/>

-	</Shell.Resources>

-	

-	<Label text="Name"/>

-	<Text name="multiValueText" x:style="BORDER">

-	    <Text.text>

-	        <MultiBinding updateSourceTrigger="PropertyChanged">

-	            <Binding path="firstName"/>

-	            <Binding path="lastName"/>

-	        </MultiBinding>

-	    </Text.text>

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Text name="firstNameText" text="{Binding Path=firstName,updateSourceTrigger=PropertyChanged}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Text name="lastNameText" text="{Binding Path=lastName,updateSourceTrigger=PropertyChanged}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/multibinding/MultiBindingTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/multibinding/MultiBindingTests.java
deleted file mode 100644
index 8d6ac63..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/multibinding/MultiBindingTests.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.multibinding;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class MultiBindingTests extends XWTTestCase {

-

-	public void testMultiBindingPath_Read() throws Exception {

-		URL url = MultiBindingTests.class.getResource(MultiBinding.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Object element = XWT.findElementByName(root, "multiValueText");

-				assertTrue(element instanceof Text);

-				Text text = (Text) element;

-				assertEquals(text.getText(), "Luc DUMAS");

-			}

-		});

-	}

-	

-	public void testMultiBindingPath_Update() throws Exception {

-		URL url = MultiBindingTests.class.getResource(MultiBinding.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Object element = XWT.findElementByName(root, "multiValueText");

-				assertTrue(element instanceof Text);

-				Text text = (Text) element;

-				text.setText("NewFirst DUMAS");

-			}

-		}, new Runnable() {

-			public void run() {

-				checkFirstText();

-				checkLastText();

-			}

-

-			public void checkFirstText() {

-				Object element = XWT.findElementByName(root, "firstNameText");

-				assertTrue(element instanceof Text);

-				Text text = (Text) element;

-				assertEquals(text.getText(), "NewFirst");

-

-			}

-

-			public void checkLastText() {

-				Object element = XWT.findElementByName(root, "lastNameText");

-				assertTrue(element instanceof Text);

-				Text text = (Text) element;

-				assertEquals(text.getText(), "DUMAS");

-			}

-		});

-	}

-

-	public void testMultiBindingPath_Update_Outside() throws Exception {

-		URL url = MultiBindingTests.class.getResource(MultiBinding.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Object element = XWT.findElementByName(root, "firstNameText");

-				assertTrue(element instanceof Text);

-				Text text = (Text) element;

-				text.setText("NewFirst");

-			}

-		}, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "multiValueText");

-				assertTrue(element instanceof Text);

-				Text text = (Text) element;

-				assertEquals(text.getText(), "NewFirst DUMAS");

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/multibinding/Person.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/multibinding/Person.java
deleted file mode 100644
index 5d8ab1a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/multibinding/Person.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.multibinding;

-

-public class Person {

-	private String firstName = "Luc";

-	private String lastName = "DUMAS";

-

-	public String getFirstName() {

-		return firstName;

-	}

-	public void setFirstName(String firstName) {

-		this.firstName = firstName;

-	}

-	public String getLastName() {

-		return lastName;

-	}

-	public void setLastName(String lastName) {

-		this.lastName = lastName;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/others/DataBinding_Visible.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/others/DataBinding_Visible.java
deleted file mode 100644
index 333f65b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/others/DataBinding_Visible.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.others;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class DataBinding_Visible {

-	public static void main(String[] args) {

-

-		URL url = DataBinding_Visible.class

-				.getResource(DataBinding_Visible.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/others/DataBinding_Visible.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/others/DataBinding_Visible.xwt
deleted file mode 100644
index b787dff..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/others/DataBinding_Visible.xwt
+++ /dev/null
@@ -1,42 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding.others"

-	x:Class="org.eclipse.xwt.tests.databinding.others.EventHandler"

-	x:Name="Root"

-	Size="400, 300"

-	DataContext="{StaticResource myData}">

-	<Shell.layout>

-		<GridLayout numColumns="2"/>

-	</Shell.layout>

-	

-	<Shell.Resources>

-		<y:DataFactory x:Key="myData"/>

-	</Shell.Resources>

-	

-	<Label text="Name"/>

-	<Text x:style="BORDER|READONLY" text="{Binding Path=text}" enabled="{Binding Path=enabled}" visible="{Binding Path=visible}" background="{Binding Path=background}" foreground="{Binding Path=foreground}" >

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Group text="options">

-		<Group.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true" horizontalSpan="2"/>

-		</Group.layoutData>

-		<Group.layout>

-			<GridLayout numColumns="2"/>

-		</Group.layout>

-		<Button x:style="CHECK" selection="{Binding Path=enabled}" text="enabled"/>

-		<Button x:style="CHECK" selection="{Binding Path=visible}" text="visible"/>

-		<Text x:style="BORDER" text="{Binding Path=text}" >

-			<Text.layoutData>

-				<GridData horizontalAlignment="FILL"

-	         		grabExcessHorizontalSpace="true" horizontalSpan="2"/>

-			</Text.layoutData>

-		</Text>

-		<Button x:style="RADIO" selection="true" text="Background(GRAY)" SelectionEvent="setColorGray"/>

-		<Button x:style="RADIO" text="Background(YELLOW)" SelectionEvent="setColorYellow"/>

-	</Group>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/others/DataFactory.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/others/DataFactory.java
deleted file mode 100644
index 98f6411..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/others/DataFactory.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.others;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.graphics.Color;

-import org.eclipse.swt.widgets.Display;

-

-/**

- * @author jliu jin.liu@soyatec.com

- */

-public class DataFactory {

-

-	private boolean visible = true;

-	private boolean enabled = true;

-	private String text = "text";

-	private Color background = Display.getCurrent().getSystemColor(

-			SWT.COLOR_DARK_GRAY);

-	private Color foreground = Display.getCurrent().getSystemColor(

-			SWT.COLOR_DARK_RED);

-

-	/**

-	 * @param visible

-	 *            the visible to set

-	 */

-	public void setVisible(boolean visible) {

-		this.visible = visible;

-	}

-

-	/**

-	 * @return the visible

-	 */

-	public boolean isVisible() {

-		return visible;

-	}

-

-	/**

-	 * @param enabled

-	 *            the enabled to set

-	 */

-	public void setEnabled(boolean enabled) {

-		this.enabled = enabled;

-	}

-

-	/**

-	 * @return the enabled

-	 */

-	public boolean isEnabled() {

-		return enabled;

-	}

-

-	/**

-	 * @param text

-	 *            the text to set

-	 */

-	public void setText(String text) {

-		this.text = text;

-	}

-

-	/**

-	 * @return the text

-	 */

-	public String getText() {

-		return text;

-	}

-

-	/**

-	 * @param background

-	 *            the background to set

-	 */

-	public void setBackground(Color background) {

-		this.background = background;

-	}

-

-	/**

-	 * @return the background

-	 */

-	public Color getBackground() {

-		return background;

-	}

-

-	/**

-	 * @param foreground

-	 *            the foreground to set

-	 */

-	public void setForeground(Color foreground) {

-		this.foreground = foreground;

-	}

-

-	/**

-	 * @return the foreground

-	 */

-	public Color getForeground() {

-		return foreground;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/others/EventHandler.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/others/EventHandler.java
deleted file mode 100644
index dda6fc5..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/others/EventHandler.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.others;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu jin.liu@soyatec.com

- */

-public class EventHandler {

-

-	public void setColorYellow(Event event) {

-		Button widget = (Button) event.widget;

-		if (widget.getSelection()) {

-			Shell shell = (Shell) XWT.findElementByName(widget, "Root");

-			DataFactory dataFactory = (DataFactory) XWT.getDataContext(shell);

-			dataFactory.setBackground(Display.getCurrent().getSystemColor(

-					SWT.COLOR_YELLOW));

-		}

-	}

-

-	public void setColorGray(Event event) {

-		Button widget = (Button) event.widget;

-		if (widget.getSelection()) {

-			Shell shell = (Shell) XWT.findElementByName(event.widget, "Root");

-			DataFactory dataFactory = (DataFactory) XWT.getDataContext(shell);

-			dataFactory.setBackground(Display.getCurrent().getSystemColor(

-					SWT.COLOR_GRAY));

-		}

-

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/Address.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/Address.java
deleted file mode 100644
index 6e8e104..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/Address.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.pojo;

-

-public class Address {

-	private String city = "Paris";

-

-	public void setCity(String city) {

-		this.city = city;

-	}

-

-	public String getCity() {

-		return city;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/Company.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/Company.java
deleted file mode 100644
index bec03c3..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/Company.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.pojo;

-

-public class Company {

-	private String name = "Soyatec";

-	private Person manager = new Person();

-

-	public Person getManager() {

-		return manager;

-	}

-

-	public void setManager(Person manager) {

-		this.manager = manager;

-	}

-

-	public Company() {

-		manager.setName("Julien");

-	}

-

-	public void setName(String value) {

-		this.name = value;

-	}

-

-	public String getName() {

-		return name;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/Country.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/Country.java
deleted file mode 100644
index e56cf20..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/Country.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.pojo;

-

-public enum Country {

-	FR, USA, CN;

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/DataBinding.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/DataBinding.java
deleted file mode 100644
index e2e7a90..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/DataBinding.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.pojo;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class DataBinding {

-	public static void main(String[] args) {

-

-		URL url = DataBinding.class.getResource(DataBinding.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void onNew(Event event) {

-		Shell shell = (Shell) XWT.findElementByName(event.widget, "Root");

-		Company company = (Company) XWT.getDataContext(shell);

-		company.setName("Eclipse");

-		IObservableValue managerValue = XWT.observableValue(shell, company,

-				"name");

-		managerValue.setValue("Eclipse");

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/DataBinding.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/DataBinding.xwt
deleted file mode 100644
index c85f3e4..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/DataBinding.xwt
+++ /dev/null
@@ -1,24 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding.pojo"

-	x:Class="org.eclipse.xwt.tests.databinding.pojo.DataBinding"

-	Size="400, 300"

-	x:Name="Root"

-	DataContext="{StaticResource myData}">

-	<Shell.layout>

-		<GridLayout numColumns="3"/>

-	</Shell.layout>

-	

-	<Shell.Resources>

-		<y:Company x:Key="myData"/>

-	</Shell.Resources>

-	

-	<Label text="Name"/>

-	<Text Name="Name" x:style="BORDER" text="{Binding Path=name}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Button Name="Button" Text="Change" SelectionEvent="onNew"/>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/DataBindingPath.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/DataBindingPath.java
deleted file mode 100644
index e16a410..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/DataBindingPath.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.pojo;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class DataBindingPath {

-	public static void main(String[] args) {

-

-		URL url = DataBindingPath.class.getResource(DataBindingPath.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void onNew(Event event) {

-		Shell shell = (Shell) XWT.findElementByName(event.widget, "Root");

-		Company company = (Company) XWT.getDataContext(shell);

-		Person person = new Person();

-		person.setName("New Manager1");

-		person.getAddress().setCity("ShenZhen");

-

-		// company.setManager(person);

-		IObservableValue managerValue = XWT.findObservableValue(shell, company,

-				"manager");

-		managerValue.setValue(person);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/DataBindingPath.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/DataBindingPath.xwt
deleted file mode 100644
index 8cd200c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/DataBindingPath.xwt
+++ /dev/null
@@ -1,48 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding.pojo"

-	x:Class="org.eclipse.xwt.tests.databinding.pojo.DataBindingPath"

-	Size="400, 300"

-	x:Name="Root"

-	DataContext="{StaticResource myData}">

-	<Shell.layout>

-		<GridLayout numColumns="3"/>

-	</Shell.layout>

-	

-	<Shell.Resources>

-		<y:Company x:Key="myData"/>

-	</Shell.Resources>

-	

-	<Label text="Name"/>

-	<Text Name="ManagerCity" x:style="BORDER" text="{Binding Path=manager.address.city}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Label text="{Binding Path=manager.name}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-	<Text x:style="BORDER" text="{Binding Path=manager.age}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Button x:style="CHECK" selection="{Binding Path=manager.maried}" text="Maried">

-		<Button.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Button.layoutData>

-	</Button>

-	<Combo text="{Binding Path=manager.nationality}">

-		<Combo.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Combo.layoutData>

-	</Combo>

-	<Button Name="Button" Text="New Manager" SelectionEvent="onNew"/>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/Person.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/Person.java
deleted file mode 100644
index f96522e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/Person.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.pojo;

-

-public class Person {

-	private String name = "toto";

-	private int age = 10;

-	private boolean maried = true;

-	private Country nationality = Country.FR;

-	private Address address;

-

-	public void setMaried(boolean maried) {

-		this.maried = maried;

-	}

-

-	public Country getNationality() {

-		return nationality;

-	}

-

-	public boolean isMaried() {

-		return maried;

-	}

-

-	public int getAge() {

-		return age;

-	}

-

-	public void setAge(int age) {

-		this.age = age;

-	}

-

-	public Person() {

-		address = new Address();

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-

-	public String getName() {

-		return name;

-	}

-

-	public Address getAddress() {

-		return address;

-	}

-

-	public void setAddress(Address address) {

-		this.address = address;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/PojoDataBindingTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/PojoDataBindingTests.java
deleted file mode 100644
index c05ce9f..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/PojoDataBindingTests.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.pojo;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-import org.eclipse.xwt.tests.databinding.pojo.attribute.PojoAttrDataBindingTests;

-

-public class PojoDataBindingTests extends XWTTestCase {

-

-	public void testDataBinding() throws Exception {

-		URL url = PojoAttrDataBindingTests.class.getResource(DataBinding.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Object element = XWT.findElementByName(root, "Button");

-				assertTrue(element instanceof Button);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Object element = XWT.findElementByName(root, "Name");

-				assertTrue(element instanceof Text);

-				Text text = (Text) element;

-				assertEquals(text.getText(), "Soyatec");

-			}

-		});

-	}

-

-	public void testDataBindingPath() throws Exception {

-		URL url = PojoDataBindingTests.class.getResource(DataBindingPath.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Object element = XWT.findElementByName(root, "Button");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				selectButton(button);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Object element = XWT.findElementByName(root, "ManagerCity");

-				assertTrue(element instanceof Text);

-				Text text = (Text) element;

-				assertEquals(text.getText(), "ShenZhen");

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/attribute/Company.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/attribute/Company.java
deleted file mode 100644
index 5fc3341..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/attribute/Company.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.pojo.attribute;

-

-public class Company {

-	private String NAME = "Soyatec";

-

-	public void setNAME(String value) {

-		this.NAME = value;

-	}

-

-	public String getNAME() {

-		return NAME;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/attribute/DataBinding.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/attribute/DataBinding.java
deleted file mode 100644
index 30c5c95..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/attribute/DataBinding.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.pojo.attribute;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class DataBinding {

-	public static void main(String[] args) {

-

-		URL url = DataBinding.class.getResource(DataBinding.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void onNew(Event event) {

-		Shell shell = (Shell) XWT.findElementByName(event.widget, "Root");

-		Company company = (Company) XWT.getDataContext(shell);

-		company.setNAME("Eclipse");

-		IObservableValue managerValue = XWT.observableValue(shell, company,

-				"name");

-		managerValue.setValue("Eclipse");

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/attribute/DataBinding.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/attribute/DataBinding.xwt
deleted file mode 100644
index 4a5888b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/attribute/DataBinding.xwt
+++ /dev/null
@@ -1,24 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding.pojo.attribute"

-	x:Class="org.eclipse.xwt.tests.databinding.pojo.attribute.DataBinding"

-	Size="400, 300"

-	x:Name="Root"

-	DataContext="{StaticResource myData}">

-	<Shell.layout>

-		<GridLayout numColumns="3"/>

-	</Shell.layout>

-	

-	<Shell.Resources>

-		<y:Company x:Key="myData"/>

-	</Shell.Resources>

-	

-	<Label text="Name"/>

-	<Text Name="Name" x:style="BORDER" text="{Binding Path=NAME}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Button Name="Button" Text="Change" SelectionEvent="onNew"/>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/attribute/PojoAttrDataBindingTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/attribute/PojoAttrDataBindingTests.java
deleted file mode 100644
index 8f8bbf0..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/attribute/PojoAttrDataBindingTests.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.pojo.attribute;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class PojoAttrDataBindingTests extends XWTTestCase {

-

-	public void testDataBinding() throws Exception {

-		URL url = PojoAttrDataBindingTests.class.getResource(DataBinding.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Object element = XWT.findElementByName(root, "Button");

-				assertTrue(element instanceof Button);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Object element = XWT.findElementByName(root, "Name");

-				assertTrue(element instanceof Text);

-				Text text = (Text) element;

-				assertEquals(text.getText(), "Soyatec");

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/self/DataBindingSelfTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/self/DataBindingSelfTests.java
deleted file mode 100644
index eafc4e3..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/self/DataBindingSelfTests.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.self;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class DataBindingSelfTests extends XWTTestCase {

-

-	public void testDataBinding() throws Exception {

-		URL url = DataBindingSelfTests.class.getResource(DecoratedText.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "text1");

-				assertTrue(element instanceof Text);

-				Text text = (Text) element;

-				text.setText("Soyatec");

-			}

-		}, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "text2");

-				assertTrue(element instanceof Text);

-				Text text = (Text) element;

-				assertEquals(text.getText(), "Soyatec");

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/self/DecoratedText.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/self/DecoratedText.java
deleted file mode 100644
index f7865e9..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/self/DecoratedText.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.self;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class DecoratedText extends Composite {

-	protected String decorator;

-	

-	public DecoratedText(Composite parent, int style) {

-		super(parent, style);

-	}

-

-	public String getDecorator() {

-		return decorator;

-	}

-

-	public void setDecorator(String decorator) {

-		this.decorator = decorator;

-	}

-	

-	public static void main(String[] args) {

-

-		URL url = DecoratedText.class.getResource(DecoratedText.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/self/DecoratedText.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/self/DecoratedText.xwt
deleted file mode 100644
index a4ca8e4..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/self/DecoratedText.xwt
+++ /dev/null
@@ -1,23 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	x:Class="org.eclipse.xwt.tests.databinding.self.DecoratedText"

-	name="root">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-

-	<Label text="Name"/>

-	<Text name="text1" x:style="BORDER" text="{Binding elementName=root, path=decorator, updateSourceTrigger=PropertyChanged}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	<Label text="Name"/>

-	<Text name="text2" x:style="BORDER" text="{Binding elementName=root, path=decorator, updateSourceTrigger=PropertyChanged}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/DefaultContextView.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/DefaultContextView.java
deleted file mode 100644
index fdde417..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/DefaultContextView.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.status;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class DefaultContextView extends Composite {

-	public static void main(String[] args) {

-

-		URL url = DefaultContextView.class.getResource(DefaultContextView.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	public DefaultContextView(Composite parent, int style) {

-		super(parent, style);

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/DefaultContextView.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/DefaultContextView.xwt
deleted file mode 100644
index a2dc240..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/DefaultContextView.xwt
+++ /dev/null
@@ -1,38 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt" xmlns:c="clr-namespace:org.eclipse.xwt.tests.databinding.status"

-	xmlns:j="clr-namespace:java.lang"

-	x:Class="org.eclipse.xwt.tests.databinding.status.DefaultContextView"

-	dataContext="{StaticResource myContext}" 

-	bindingContext="{StaticResource myDBC}">

-	<Composite.layout>

-		<GridLayout numColumns="2" />

-	</Composite.layout>

-

-	<Composite.Resources>

-		<c:Domain x:Key="myContext" />

-		<BindingContext x:Key="myDBC" />

-		<c:StatusConverter x:Key="statusConverter" />

-	</Composite.Resources>

-

-	<Label text="Enter '5' to be valid" />

-	<Text

-		text="{Binding path=valueOne, validationRule={c:IntValidator value=5}}">

-		<Text.layoutData>

-			<GridData grabExcessHorizontalSpace="true"

-				horizontalAlignment="GridData.FILL" widthHint="100" />

-		</Text.layoutData>

-	</Text>

-

-	<Label text="Enter '6' to be valid" />

-	<Text text="{Binding path=valueTwo, validationRule={c:IntValidator value=6}">

-		<Text.layoutData>

-			<GridData grabExcessHorizontalSpace="true"

-				horizontalAlignment="GridData.FILL" widthHint="100" />

-		</Text.layoutData>

-	</Text>

-

-	<Label text="Status" />

-	<Label x:Name="statusLabel"

-		text="{Binding source={StaticResource myDBC}, path=status, converter={StaticResource statusConverter}, mode=OneWay}" />

-	<Button text="OK" />

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/Domain.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/Domain.java
deleted file mode 100644
index ebd91cb..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/Domain.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.status;

-

-import org.eclipse.xwt.tests.BaseBean;

-

-public class Domain extends BaseBean {

-

-	private String valueOne = "1";

-	private String valueTwo = "2";

-

-	public String getValueOne() {

-		return valueOne;

-	}

-

-	public void setValueOne(String valueOne) {

-		String oldValue = this.valueOne;

-		this.valueOne = valueOne;

-		changeSupport.firePropertyChange("valueOne", oldValue, this.valueOne);

-	}

-

-	public String getValueTwo() {

-		return valueTwo;

-	}

-

-	public void setValueTwo(String valueTwo) {

-		String oldValue = this.valueTwo;

-		this.valueTwo = valueTwo;

-		changeSupport.firePropertyChange("valueTwo", oldValue, this.valueTwo);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/IntValidator.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/IntValidator.java
deleted file mode 100644
index 5cf6811..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/IntValidator.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-/**

- *

- */

-package org.eclipse.xwt.tests.databinding.status;

-

-import org.eclipse.core.databinding.validation.ValidationStatus;

-import org.eclipse.core.runtime.IStatus;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.validation.AbstractValidationRule;

-

-/**

- * @author hceylan

- *

- */

-public class IntValidator extends AbstractValidationRule {

-

-	private String value;

-

-	/**

-	 *

-	 */

-	public IntValidator() {

-		super();

-	}

-

-	/**

-	 * @return the value

-	 */

-	public String getValue() {

-		return value;

-	}

-

-	/**

-	 * @param value

-	 *            the value to set

-	 */

-	public void setValue(String value) {

-		this.value = value;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 *

-	 * @see

-	 * org.eclipse.core.databinding.validation.IValidator#validate(java.lang

-	 * .Object)

-	 */

-	public IStatus validate(Object value) {

-		if (this.value.equals(value)){

-			return ValidationStatus.ok();

-		}

-

-		return ValidationStatus.error("Value must be " + this.value);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 *

-	 * @see org.eclipse.xwt.IValidationRule#validateBack(java.lang.Object)

-	 */

-	public IStatus validateBack(Object value) {

-		return validate(value);

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/StatusConverter.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/StatusConverter.java
deleted file mode 100644
index 02b32e4..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/StatusConverter.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.status;

-

-import org.eclipse.core.databinding.conversion.Converter;

-import org.eclipse.core.databinding.validation.ValidationStatus;

-import org.eclipse.core.runtime.IStatus;

-import org.eclipse.xwt.IValueConverter;

-

-public class StatusConverter extends Converter implements IValueConverter {

-

-	/**

-	 *

-	 */

-	public StatusConverter() {

-		super(Object.class, String.class);

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.IValueConverter#convertBack(java.lang.Object)

-	 */

-	public Object convertBack(Object value) {

-		return ValidationStatus.error((String) value);

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)

-	 */

-	public Object convert(Object fromObject) {

-		IStatus status = (IStatus) fromObject;

-

-		if (fromObject == null){

-			return ""; //$NON-NLS-1$

-		}

-

-		return status.getMessage();

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusDefault.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusDefault.xwt
deleted file mode 100644
index 78ab630..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusDefault.xwt
+++ /dev/null
@@ -1,35 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt" xmlns:c="clr-namespace:org.eclipse.xwt.tests.databinding.status"

-	xmlns:j="clr-namespace:java.lang" x:Class="org.eclipse.xwt.tests.databinding.status.DomainView"

-	dataContext="{StaticResource myContext}"

-	bindingContext="{StaticResource myDBC}">

-	<Composite.layout>

-		<GridLayout numColumns="2" />

-	</Composite.layout>

-

-	<Composite.Resources>

-		<c:Domain x:Key="myContext" />

-		<BindingContext x:Key="myDBC" />

-	</Composite.Resources>

-

-	<Label text="Enter '5' to be valid" />

-	<Text name="text1" text="{Binding path=valueOne, validationRule={c:IntValidator value=5}}">

-		<Text.layoutData>

-			<GridData grabExcessHorizontalSpace="true"

-				 horizontalAlignment="GridData.FILL" widthHint="100"/>

-		</Text.layoutData>

-	</Text>

-

-	<Label text="Enter '6' to be valid" />

-	<Text name="text2" text="{Binding path=valueTwo, validationRule={c:IntValidator value=6}">

-		<Text.layoutData>

-			<GridData grabExcessHorizontalSpace="true"

-				 horizontalAlignment="GridData.FILL" widthHint="100"/>

-		</Text.layoutData>

-	</Text>

-

-	<Label text="Status" />

-	<Label x:Name="statusLabel"

-		text="{Binding source={StaticResource myDBC}, path=status}" />

-	<Button text="OK" />

-</Composite>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusName.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusName.java
deleted file mode 100644
index af141aa..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusName.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.status;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class ValidationStatusName extends Composite {

-	public static void main(String[] args) {

-

-		URL url = ValidationStatusName.class.getResource(ValidationStatusName.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	public ValidationStatusName(Composite parent, int style) {

-		super(parent, style);

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusName.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusName.xwt
deleted file mode 100644
index eefccc8..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusName.xwt
+++ /dev/null
@@ -1,36 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt" 

-	xmlns:c="clr-namespace:org.eclipse.xwt.tests.databinding.status"

-	xmlns:j="clr-namespace:java.lang" 

-	x:Class="org.eclipse.xwt.tests.databinding.status.DomainView"

-	dataContext="{StaticResource myContext}">

-	<Composite.layout>

-		<GridLayout numColumns="2" />

-	</Composite.layout>

-

-	<Composite.Resources>

-		<c:Domain x:Key="myContext" />

-		<BindingContext x:Key="myDBC" />

-	</Composite.Resources>

-

-	<Label text="Enter '5' to be valid" />

-	<Text name="text1" text="{Binding path=valueOne, bindingContext={StaticResource myDBC}, validationRule={c:IntValidator value=5}}">

-		<Text.layoutData>

-			<GridData grabExcessHorizontalSpace="true"

-				 horizontalAlignment="GridData.FILL" widthHint="100"/>

-		</Text.layoutData>

-	</Text>

-

-	<Label text="Enter '6' to be valid" />

-	<Text name="text2" text="{Binding path=valueTwo, bindingContext={StaticResource myDBC}, validationRule={c:IntValidator value=6}}">

-		<Text.layoutData>

-			<GridData grabExcessHorizontalSpace="true"

-				 horizontalAlignment="GridData.FILL" widthHint="100"/>

-		</Text.layoutData>

-	</Text>

-

-	<Label text="Status" />

-	<Label x:Name="statusLabel"

-		text="{Binding source={StaticResource myDBC}, path=status}" />

-	<Button text="OK" />

-</Composite>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusStaticResource.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusStaticResource.java
deleted file mode 100644
index 3005e9b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusStaticResource.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.status;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class ValidationStatusStaticResource extends Composite {

-	public static void main(String[] args) {

-

-		URL url = ValidationStatusStaticResource.class.getResource(ValidationStatusStaticResource.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	public ValidationStatusStaticResource(Composite parent, int style) {

-		super(parent, style);

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusStaticResource.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusStaticResource.xwt
deleted file mode 100644
index 1a53261..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusStaticResource.xwt
+++ /dev/null
@@ -1,35 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt" xmlns:c="clr-namespace:org.eclipse.xwt.tests.databinding.status"

-	xmlns:j="clr-namespace:java.lang" x:Class="org.eclipse.xwt.tests.databinding.status.DomainView"

-	DataContext="{StaticResource myContext}">

-	<Composite.layout>

-		<GridLayout numColumns="2" />

-	</Composite.layout>

-

-	<Composite.Resources>

-		<c:Domain x:Key="myContext" />

-		<BindingContext x:Key="myDBC" />

-		<c:StatusConverter x:Key="statusConverter" />

-	</Composite.Resources>

-

-	<Label text="Enter '5' to be valid" />

-	<Text name="text1" text="{Binding path=valueOne, bindingContext={StaticResource myDBC},validationRule={c:IntValidator value=5}}">

-		<Text.layoutData>

-			<GridData grabExcessHorizontalSpace="true"

-				 horizontalAlignment="GridData.FILL" widthHint="100"/>

-		</Text.layoutData>

-	</Text>

-

-	<Label text="Enter '6' to be valid" />

-	<Text name="text2" text="{Binding path=valueTwo, bindingContext={StaticResource myDBC}, validationRule={c:IntValidator value=6}">

-		<Text.layoutData>

-			<GridData grabExcessHorizontalSpace="true"

-				 horizontalAlignment="GridData.FILL" widthHint="100"/>

-		</Text.layoutData>

-	</Text>

-

-	<Label text="Status" />

-	<Label x:Name="statusLabel"

-		text="{Binding source={StaticResource myDBC}, path=status, mode=OneWay, converter={StaticResource statusConverter}}" />

-	<Button text="OK" />

-</Composite>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTests.java
deleted file mode 100644
index 8b74510..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTests.java
+++ /dev/null
@@ -1,263 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec & hceylan - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.status;

-

-import java.net.URL;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.graphics.Color;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class ValidationStatusTests extends XWTTestCase {

-

-	public void testValidationDefault1() throws Exception {

-		URL url = ValidationStatusTests.class.getResource(ValidationStatusName.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Text text1 = (Text) XWT.findElementByName(root, "text1");

-				Text text2 = (Text) XWT.findElementByName(root, "text2");

-				Label status = (Label) XWT.findElementByName(root, "statusLabel");

-				

-				text1.setText("5");

-				setFocusOut(text1);

-				assertEquals("Value must be 6", status.getText());

-				

-				text2.setText("6");

-				setFocusOut(text2);

-				assertEquals("", status.getText());

-			}

-		});

-	}

-

-	public void testValidationDefault2() throws Exception {

-		URL url = ValidationStatusTests.class.getResource(ValidationStatusName.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Text text1 = (Text) XWT.findElementByName(root, "text1");

-				Text text2 = (Text) XWT.findElementByName(root, "text2");

-				Label status = (Label) XWT.findElementByName(root, "statusLabel");

-

-				text1.setText("4");

-				setFocusOut(text1);

-				assertEquals("Value must be 5", status.getText());

-				

-				setFocusIn(text1);

-				text1.setText("5");

-				setFocusOut(text1);

-				assertEquals("Value must be 6", status.getText());

-				

-				text2.setText("4");

-				setFocusOut(text2);

-				assertEquals("Value must be 6", status.getText());

-

-				setFocusIn(text2);

-				text2.setText("6");

-				setFocusOut(text2);

-				assertEquals("", status.getText());

-			}

-		});

-	}

-	

-	public void testValidationStaticResource1() throws Exception {

-		URL url = ValidationStatusTests.class.getResource(ValidationStatusStaticResource.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Text text1 = (Text) XWT.findElementByName(root, "text1");

-				Text text2 = (Text) XWT.findElementByName(root, "text2");

-				Label status = (Label) XWT.findElementByName(root, "statusLabel");

-				

-				text1.setText("5");

-				setFocusOut(text1);

-				assertEquals("Value must be 6", status.getText());

-				

-				text2.setText("6");

-				setFocusOut(text2);

-				assertEquals("OK", status.getText());

-			}

-		});

-	}

-

-	public void testValidationStaticResource2() throws Exception {

-		URL url = ValidationStatusTests.class.getResource(ValidationStatusStaticResource.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Text text1 = (Text) XWT.findElementByName(root, "text1");

-				Text text2 = (Text) XWT.findElementByName(root, "text2");

-				Label status = (Label) XWT.findElementByName(root, "statusLabel");

-

-				text1.setText("4");

-				setFocusOut(text1);

-				assertEquals("Value must be 5", status.getText());

-				

-				setFocusIn(text1);

-				text1.setText("5");

-				setFocusOut(text1);

-				assertEquals("Value must be 6", status.getText());

-				

-				text2.setText("4");

-				setFocusOut(text2);

-				assertEquals("Value must be 6", status.getText());

-

-				setFocusIn(text2);

-				text2.setText("6");

-				setFocusOut(text2);

-				assertEquals("OK", status.getText());

-			}

-		});

-	}

-	

-	

-	public void testValidationToolTip1() throws Exception {

-		URL url = ValidationStatusTests.class.getResource(ValidationStatusToolTip.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Text text1 = (Text) XWT.findElementByName(root, "text1");

-				Text text2 = (Text) XWT.findElementByName(root, "text2");

-				

-				assertEquals("Value must be 5", text1.getToolTipText());

-				assertEquals("Value must be 5", text2.getToolTipText());

-

-				text1.setText("5");

-				setFocusOut(text1);

-				assertEquals("Value must be 6", text1.getToolTipText());

-				

-				setFocusIn(text2);

-				text2.setText("6");

-				setFocusOut(text2);

-				assertEquals("", text2.getToolTipText());

-				assertEquals("", text1.getToolTipText());

-			}

-		});

-	}

-

-	public void testValidationToolTip2() throws Exception {

-		URL url = ValidationStatusTests.class.getResource(ValidationStatusToolTip.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Text text1 = (Text) XWT.findElementByName(root, "text1");

-				Text text2 = (Text) XWT.findElementByName(root, "text2");

-

-				text1.setText("4");

-				setFocusOut(text1);

-				assertEquals("Value must be 5", text1.getToolTipText());

-				assertEquals("Value must be 5", text2.getToolTipText());

-				

-				setFocusIn(text1);

-				text1.setText("5");

-				setFocusOut(text1);

-				assertEquals("Value must be 6", text1.getToolTipText());

-				assertEquals("Value must be 6", text2.getToolTipText());

-				

-				text2.setText("4");

-				setFocusOut(text2);

-				assertEquals("Value must be 6", text1.getToolTipText());

-				assertEquals("Value must be 6", text2.getToolTipText());

-

-				setFocusIn(text2);

-				text2.setText("6");

-				setFocusOut(text2);

-				assertEquals("", text1.getToolTipText());

-				assertEquals("", text2.getToolTipText());

-			}

-		});

-	}

-	

-	public void testValidationTriggerLocal() throws Exception {

-		URL url = ValidationStatusTests.class.getResource(ValidationStatusTriggerLocal.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Text text1 = (Text) XWT.findElementByName(root, "text1");

-				Text text2 = (Text) XWT.findElementByName(root, "text2");

-				Color red = root.getDisplay().getSystemColor(SWT.COLOR_RED);

-				Color black = root.getDisplay().getSystemColor(SWT.COLOR_BLACK);

-

-				assertEquals(red, text1.getForeground());

-				assertEquals(red, text2.getForeground());

-

-				text1.setText("4");

-				setFocusOut(text1);

-				assertEquals(red, text1.getForeground());

-				

-				setFocusIn(text1);

-				text1.setText("5");

-				setFocusOut(text1);

-				assertNotSame(red, text1.getForeground());

-				

-				text2.setText("4");

-				setFocusOut(text2);

-				assertEquals(red, text2.getForeground());

-

-				setFocusIn(text2);

-				text2.setText("6");

-				setFocusOut(text2);

-				assertNotSame(red, text1.getForeground());

-			}

-		});

-	}

-

-	public void testValidationTriggerShared() throws Exception {

-		URL url = ValidationStatusTests.class.getResource(ValidationStatusTriggerShared.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Text text1 = (Text) XWT.findElementByName(root, "text1");

-				Text text2 = (Text) XWT.findElementByName(root, "text2");

-				Label statusLabel = (Label) XWT.findElementByName(root, "statusLabel");

-				

-				Color red = root.getDisplay().getSystemColor(SWT.COLOR_RED);

-				Color black = root.getDisplay().getSystemColor(SWT.COLOR_BLACK);

-

-				assertEquals(red, statusLabel.getForeground());

-

-				text1.setText("4");

-				setFocusOut(text1);

-				assertEquals(red, statusLabel.getForeground());

-				assertEquals("Value must be 5", statusLabel.getText());

-

-				setFocusIn(text1);

-				text1.setText("5");

-				setFocusOut(text1);

-				assertEquals(red, statusLabel.getForeground());

-				assertEquals("Value must be 6", statusLabel.getText());

-				

-				text2.setText("4");

-				setFocusOut(text2);

-				assertEquals(red, statusLabel.getForeground());

-				assertEquals("Value must be 6", statusLabel.getText());

-

-				setFocusIn(text2);

-				text2.setText("6");

-				setFocusOut(text2);

-				assertNotSame(red, statusLabel.getForeground());

-				assertEquals("", statusLabel.getText());

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusToolTip.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusToolTip.java
deleted file mode 100644
index 0abb146..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusToolTip.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.status;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class ValidationStatusToolTip extends Composite {

-	public static void main(String[] args) {

-

-		URL url = ValidationStatusToolTip.class.getResource(ValidationStatusToolTip.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	public ValidationStatusToolTip(Composite parent, int style) {

-		super(parent, style);

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusToolTip.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusToolTip.xwt
deleted file mode 100644
index 932aa3d..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusToolTip.xwt
+++ /dev/null
@@ -1,34 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt" xmlns:c="clr-namespace:org.eclipse.xwt.tests.databinding.status"

-	xmlns:j="clr-namespace:java.lang" x:Class="org.eclipse.xwt.tests.databinding.status.DomainView"

-	dataContext="{StaticResource myContext}"

-	bindingContext="{StaticResource myDBC}">

-	<Composite.layout>

-		<GridLayout numColumns="2" />

-	</Composite.layout>

-

-	<Composite.Resources>

-		<c:Domain x:Key="myContext" />

-		<BindingContext x:Key="myDBC" />

-	</Composite.Resources>

-

-	<Label text="Enter '5' to be valid" />

-	<Text name="text1" text="{Binding path=valueOne, validationRule={c:IntValidator value=5}}"

-	    toolTipText="{Binding source={StaticResource myDBC}, path=status}">

-		<Text.layoutData>

-			<GridData grabExcessHorizontalSpace="true"

-				 horizontalAlignment="GridData.FILL" widthHint="100"/>

-		</Text.layoutData>

-	</Text>

-

-	<Label text="Enter '6' to be valid" />

-	<Text name="text2" text="{Binding path=valueTwo, validationRule={c:IntValidator value=6}"

-	    toolTipText="{Binding source={StaticResource myDBC}, path=status}">

-		<Text.layoutData>

-			<GridData grabExcessHorizontalSpace="true"

-				 horizontalAlignment="GridData.FILL" widthHint="100"/>

-		</Text.layoutData>

-	</Text>

-

-	<Label text="Check the status in ToolTip"/>

-</Composite>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTriggerLocal.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTriggerLocal.java
deleted file mode 100644
index cc5e51b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTriggerLocal.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.status;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class ValidationStatusTriggerLocal extends Composite {

-	public static void main(String[] args) {

-

-		URL url = ValidationStatusTriggerLocal.class.getResource(ValidationStatusTriggerLocal.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	public ValidationStatusTriggerLocal(Composite parent, int style) {

-		super(parent, style);

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTriggerLocal.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTriggerLocal.xwt
deleted file mode 100644
index 8f4b314..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTriggerLocal.xwt
+++ /dev/null
@@ -1,41 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt" xmlns:c="clr-namespace:org.eclipse.xwt.tests.databinding.status"

-	xmlns:j="clr-namespace:java.lang" x:Class="org.eclipse.xwt.tests.databinding.status.DomainView"

-	dataContext="{StaticResource myContext}">

-	<Composite.layout>

-		<GridLayout numColumns="2" />

-	</Composite.layout>

-

-	<Composite.Resources>

-		<c:Domain x:Key="myContext" />

-		<BindingContext x:Key="myDBC1" />

-		<BindingContext x:Key="myDBC2" />

-	</Composite.Resources>

-

-	<Label text="Enter '5' to be valid" />

-	<Text name="text1" text="{Binding bindingContext={StaticResource myDBC1}, path=valueOne, validationRule={c:IntValidator value=5}}">

-	    <Text.triggers>

-			<DataTrigger binding="{Binding source={StaticResource myDBC1}, path=status}" Operator="NE" value="OK" >

-				<Setter property="foreground" value="red"/>

-			</DataTrigger>

-	    </Text.triggers>

-		<Text.layoutData>

-			<GridData grabExcessHorizontalSpace="true"

-				 horizontalAlignment="GridData.FILL" widthHint="100"/>

-		</Text.layoutData>

-	</Text>

-

-	<Label text="Enter '6' to be valid" />

-	<Text name="text2" text="{Binding bindingContext={StaticResource myDBC2}, path=valueTwo, validationRule={c:IntValidator value=6}">

-	    <Text.triggers>

-			<DataTrigger binding="{Binding source={StaticResource myDBC2}, path=status}" Operator="NE" value="OK" >

-				<Setter property="foreground" value="red"/>

-			</DataTrigger>

-	    </Text.triggers>

-		<Text.layoutData>

-			<GridData grabExcessHorizontalSpace="true"

-				 horizontalAlignment="GridData.FILL" widthHint="100"/>

-		</Text.layoutData>

-	</Text>

-

-</Composite>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTriggerShared.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTriggerShared.java
deleted file mode 100644
index 0b0b878..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTriggerShared.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.status;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class ValidationStatusTriggerShared extends Composite {

-	public static void main(String[] args) {

-

-		URL url = ValidationStatusTriggerShared.class.getResource(ValidationStatusTriggerShared.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	public ValidationStatusTriggerShared(Composite parent, int style) {

-		super(parent, style);

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTriggerShared.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTriggerShared.xwt
deleted file mode 100644
index 49a255e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTriggerShared.xwt
+++ /dev/null
@@ -1,44 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt" xmlns:c="clr-namespace:org.eclipse.xwt.tests.databinding.status"

-	xmlns:j="clr-namespace:java.lang" x:Class="org.eclipse.xwt.tests.databinding.status.DomainView"

-	dataContext="{StaticResource myContext}"

-	bindingContext="{StaticResource myDBC}">

-	<Composite.layout>

-		<GridLayout numColumns="2" />

-	</Composite.layout>

-

-	<Composite.Resources>

-		<c:Domain x:Key="myContext" />

-		<BindingContext x:Key="myDBC" />

-	</Composite.Resources>

-

-	<Label text="Enter '5' to be valid" />

-	<Text name="text1" text="{Binding path=valueOne, validationRule={c:IntValidator value=5}}">

-		<Text.layoutData>

-			<GridData grabExcessHorizontalSpace="true"

-				 horizontalAlignment="GridData.FILL" widthHint="100"/>

-		</Text.layoutData>

-	</Text>

-

-	<Label text="Enter '6' to be valid" />

-	<Text name="text2" text="{Binding path=valueTwo, validationRule={c:IntValidator value=6}">

-		<Text.layoutData>

-			<GridData grabExcessHorizontalSpace="true"

-				 horizontalAlignment="GridData.FILL" widthHint="100"/>

-		</Text.layoutData>

-	</Text>

-

-	<Label text="Status" />

-	<Label x:Name="statusLabel"

-		text="{Binding source={StaticResource myDBC}, path=status}" />

-	<Button text="OK" />

-	

-	<Composite.triggers>

-		<DataTrigger binding="{Binding source={StaticResource myDBC}, path=status}" value="false" >

-			<Setter targetName="statusLabel" property="foreground" value="red"/>

-		</DataTrigger>

-		<DataTrigger binding="{Binding source={StaticResource myDBC}, path=status}" value="false" >

-			<Setter targetName="statusLabel" property="foreground" value="red"/>

-		</DataTrigger>

-	</Composite.triggers>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/RequiredValidationRule.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/RequiredValidationRule.java
deleted file mode 100644
index 96bf1c3..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/RequiredValidationRule.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec & hceylan - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.validation;

-

-import org.eclipse.core.databinding.validation.ValidationStatus;

-import org.eclipse.core.runtime.IStatus;

-import org.eclipse.xwt.validation.AbstractValidationRule;

-

-/**

- * @author hceylan

- *

- */

-public class RequiredValidationRule extends AbstractValidationRule {

-

-	/**

-	 *

-	 */

-	public RequiredValidationRule() {

-		super();

-	}

-

-	/*

-	 * (non-Javadoc)

-	 *

-	 * @see org.eclipse.xwt.IValueValidator#validateBack(java.lang.Object)

-	 */

-	public IStatus validateBack(Object value) {

-		return ValidationStatus.ok();

-	}

-

-	/*

-	 * (non-Javadoc)

-	 *

-	 * @see

-	 * org.eclipse.core.databinding.validation.IValidator#validate(java.lang

-	 * .Object)

-	 */

-	public IStatus validate(Object value) {

-		if (value == null || value.toString().length() == 0){

-			return ValidationStatus.error("Value is required");

-		}

-

-		return ValidationStatus.ok();

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/SizeValidationRule.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/SizeValidationRule.java
deleted file mode 100644
index 860ee99..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/SizeValidationRule.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec & hceylan - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.validation;

-

-import org.eclipse.core.databinding.validation.ValidationStatus;

-import org.eclipse.core.runtime.IStatus;

-import org.eclipse.xwt.validation.AbstractValidationRule;

-

-/**

- * @author hceylan

- *

- */

-public class SizeValidationRule extends AbstractValidationRule {

-

-	/**

-	 *

-	 */

-	public SizeValidationRule() {

-		super();

-	}

-

-	/*

-	 * (non-Javadoc)

-	 *

-	 * @see org.eclipse.xwt.IValueValidator#validateBack(java.lang.Object)

-	 */

-	public IStatus validateBack(Object value) {

-		return ValidationStatus.ok();

-	}

-

-	/*

-	 * (non-Javadoc)

-	 *

-	 * @see

-	 * org.eclipse.core.databinding.validation.IValidator#validate(java.lang

-	 * .Object)

-	 */

-	public IStatus validate(Object value) {

-		String strValue = (String) value;

-		if (value != null && (strValue.length() < 8 || strValue.length() > 16)){

-			return ValidationStatus.error("Value should be 8 - 16 chars long");

-		}

-

-		return ValidationStatus.ok();

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation.java
deleted file mode 100644
index 27b8c1b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec & hceylan - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.validation;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Validation {

-	public static void main(String[] args) {

-

-		URL url = Validation.class.getResource(Validation.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			Object object = XWT.load(url);

-			

-			Object child = XWT.findElementByName(object, "bbb");

-			

-			System.out.println(child.toString());

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation.xwt
deleted file mode 100644
index ec4775a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation.xwt
+++ /dev/null
@@ -1,21 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding.validation"

-	xmlns:xwt="clr-namespace:org.eclipse.xwt.converters.validators"

-	xmlns:u="clr-namespace:java.util" Size="400, 300">

-	<Shell.layout>

-		<GridLayout numColumns="1" />

-	</Shell.layout>

-

-	<Label text="Input a text in first Text > 8 characters " />

-	<Text x:Name="text1" />

-	<Text x:name="text2">

-		<Text.text>

-			<Binding x:Name="bbb" elementName="text1" path="text" updateSourceTrigger="PropertyChanged" >

-				<Binding.validationRules>

-					<y:RequiredValidationRule/>

-					<y:SizeValidationRule/>

-				</Binding.validationRules>

-			</Binding>

-		</Text.text>

-	</Text>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/ValidationSingle.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/ValidationSingle.java
deleted file mode 100644
index 18fdfa2..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/ValidationSingle.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec & hceylan - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.validation;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class ValidationSingle {

-	public static void main(String[] args) {

-

-		URL url = ValidationSingle.class.getResource(ValidationSingle.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/ValidationSingle.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/ValidationSingle.xwt
deleted file mode 100644
index 1192a0a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/ValidationSingle.xwt
+++ /dev/null
@@ -1,12 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding.validation"

-	xmlns:xwt="clr-namespace:org.eclipse.xwt.converters.validators"

-	xmlns:u="clr-namespace:java.util" Size="400, 300">

-	<Shell.layout>

-		<GridLayout numColumns="1" />

-	</Shell.layout>

-	<Label text="Input a text in first Text > 8 characters " />

-	<Text x:Name="text1" />

-	<Text x:name="text2" text="{Binding elementName=text1,path=text,updateSourceTrigger=PropertyChanged,validationRule=y:SizeValidationRule}">

-	</Text>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation_ToolTip.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation_ToolTip.java
deleted file mode 100644
index 5ec0802..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation_ToolTip.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec & hceylan - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.validation;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.internal.core.Binding;

-

-public class Validation_ToolTip {

-	public static void main(String[] args) {

-

-		URL url = Validation_ToolTip.class.getResource(Validation_ToolTip.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			

-			final Display display = new Display();

-			

-			XWT.open(url);

-			

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation_ToolTip.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation_ToolTip.xwt
deleted file mode 100644
index 08c77c4..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation_ToolTip.xwt
+++ /dev/null
@@ -1,27 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding.validation"

-	xmlns:xwt="clr-namespace:org.eclipse.xwt.converters.validators"

-	xmlns:u="clr-namespace:java.util" Size="400, 300">

-	<Shell.layout>

-		<GridLayout numColumns="1" />

-	</Shell.layout>

-

-	<Label text="Input a text in first Text > 8 characters " />

-	<Text x:name="text1">

-		<Text.text>

-			<Binding name="MyBinding" elementName="text1" path="text" updateSourceTrigger="PropertyChanged" >

-				<Binding.validationRules>

-					<y:RequiredValidationRule/>

-					<y:SizeValidationRule/>

-				</Binding.validationRules>

-			</Binding>

-		</Text.text>

-		<Text.toolTipText>

-		    <Binding>

-		       <Binding.source>

-		           <ValidationStatus sourceName="MyBinding"/>

-		       </Binding.source>

-		    </Binding>

-		</Text.toolTipText>

-	</Text>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation_ToolTip_Attribute.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation_ToolTip_Attribute.java
deleted file mode 100644
index e7accf9..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation_ToolTip_Attribute.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec & hceylan - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.validation;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Validation_ToolTip_Attribute {

-	public static void main(String[] args) {

-

-		URL url = Validation_ToolTip_Attribute.class.getResource(Validation_ToolTip_Attribute.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation_ToolTip_Attribute.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation_ToolTip_Attribute.xwt
deleted file mode 100644
index b862c57..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation_ToolTip_Attribute.xwt
+++ /dev/null
@@ -1,13 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding.validation"

-	xmlns:xwt="clr-namespace:org.eclipse.xwt.converters.validators"

-	xmlns:u="clr-namespace:java.util" Size="400, 300">

-	<Shell.layout>

-		<GridLayout numColumns="1" />

-	</Shell.layout>

-

-	<Label text="Input a text in first Text > 8 characters " />

-	<Text x:name="text1" 

-	    text="{Binding name=MyBinding, elementName=text1,path=text,updateSourceTrigger=PropertyChanged,validationRule=y:SizeValidationRule}"

-		toolTipText="{Binding source={ValidationStatus sourceName=MyBinding}}"/>

-</Shell>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/ValidationsTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/ValidationsTests.java
deleted file mode 100644
index 2c2d884..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/ValidationsTests.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec & hceylan - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.databinding.validation;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class ValidationsTests extends XWTTestCase {

-

-	public void testValidation() throws Exception {

-		URL url = ValidationsTests.class.getResource(Validation.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Text text1 = (Text) XWT.findElementByName(root, "text1");

-				Text text2 = (Text) XWT.findElementByName(root, "text2");

-

-				checkValidationFailure1(text1, text2);

-				checkValidationFailure2(text1, text2);

-				checkValidationOk(text1, text2);

-			}

-

-			private void checkValidationOk(Text text1, Text text2) {

-				text2.setText("test3");

-				text1.setText("LongEnough");

-				assertEquals(text2.getText(), "LongEnough");

-			}

-

-			private void checkValidationFailure2(Text text1, Text text2) {

-				text2.setText("test2");

-				text1.setText("short"); //no string

-				assertEquals(text2.getText(), "test2");

-			}

-

-			private void checkValidationFailure1(Text text1, Text text2) {

-				text2.setText("test1");

-				text1.setText(""); //no string

-				assertEquals(text2.getText(), "test1");

-			}

-		});

-	}

-

-	public void testValidation_Single() throws Exception {

-		URL url = ValidationSingle.class.getResource(ValidationSingle.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Text text1 = (Text) XWT.findElementByName(root, "text1");

-				Text text2 = (Text) XWT.findElementByName(root, "text2");

-

-				checkValidationFailure1(text1, text2);

-				checkValidationFailure2(text1, text2);

-				checkValidationOk(text1, text2);

-			}

-

-			private void checkValidationOk(Text text1, Text text2) {

-				text2.setText("test3");

-				text1.setText("LongEnough");

-				assertEquals(text2.getText(), "LongEnough");

-			}

-

-			private void checkValidationFailure2(Text text1, Text text2) {

-				text2.setText("test2");

-				text1.setText("short"); //no string

-				assertEquals(text2.getText(), "test2");

-			}

-

-			private void checkValidationFailure1(Text text1, Text text2) {

-				text2.setText("test1");

-				text1.setText(""); //no string

-				assertEquals(text2.getText(), "test1");

-			}

-		});

-	}

-	

-	public void testValidationStatus() throws Exception{

-		URL url = Validation_ToolTip.class.getResource(Validation_ToolTip.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		

-		runTest(url, new Runnable() {

-			public void run() {

-				Text text1 = (Text) XWT.findElementByName(root, "text1");

-				checkValidationStatus(text1);

-				checkValidationStatusOK(text1);

-			}

-			

-			private void checkValidationStatusOK(Text text1) {

-				text1.setText("lessthan8");

-				assertEquals(text1.getToolTipText(), "");

-			}

-

-			private void checkValidationStatus(Text text1){

-				text1.setText("more than 8 characters");

-				assertEquals(text1.getToolTipText(), "Value should be 8 - 16 chars long");

-			}

-		});

-	}

-	

-	public void testValidationStatus_Attribute() throws Exception{

-		URL url = Validation_ToolTip_Attribute.class.getResource(Validation_ToolTip_Attribute.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		

-		runTest(url, new Runnable() {

-			public void run() {

-				Text text1 = (Text) XWT.findElementByName(root, "text1");

-				

-				checkValidationStatusOK(text1);

-				

-				checkValidationStatus(text1);

-				

-			}

-			

-			private void checkValidationStatusOK(Text text1) {

-				text1.setText("lessthan8");

-				assertEquals(text1.getToolTipText(), "");

-			}

-

-			private void checkValidationStatus(Text text1){

-				text1.setText("more than 16 characters");

-				assertEquals(text1.getToolTipText(), "Value should be 8 - 16 chars long");

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/Button.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/Button.java
deleted file mode 100644
index 43b46d7..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/Button.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.events;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Button {

-	public static void main(String[] args) {

-

-		URL url = Button.class.getResource(Button.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/Button.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/Button.xwt
deleted file mode 100644
index 937c7b1..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/Button.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	x:Class="org.eclipse.xwt.tests.events.ButtonHandler">

-	<Shell.layout>

-		<GridLayout numColumns="2"/>

-	</Shell.layout>	

-	<Button name="ButtonEvent" text="Hello, world" SelectionEvent="selection"/>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/ButtonEventHandler.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/ButtonEventHandler.java
deleted file mode 100644
index 3ac3f8a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/ButtonEventHandler.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.events;

-

-import org.eclipse.swt.widgets.Event;

-

-public class ButtonEventHandler {

-	protected void selectionOK(Event event) {

-		System.out.println("OK Event !");

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/ButtonHandler.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/ButtonHandler.java
deleted file mode 100644
index 0c159f0..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/ButtonHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.events;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Event;

-

-public class ButtonHandler {

-	public static final String message = "OK";

-

-	protected void selection(Event event) {

-		Button button = (Button) event.widget;

-		button.setText(message);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/Event.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/Event.java
deleted file mode 100644
index 3548947..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/Event.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.events;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Event {

-	public static void main(String[] args) {

-

-		URL url = Event.class.getResource(Event.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/Event.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/Event.xwt
deleted file mode 100644
index f2a11b7..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/Event.xwt
+++ /dev/null
@@ -1,29 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    text="Contact Managment"

-    x:Class="org.eclipse.xwt.tests.events.MainEventHandler"

-    x:style="TITLE">

-	<Shell.layout>

-		<GridLayout/>

-	</Shell.layout>

-    <Composite x:Name="main" x:style="BORDER" >

-		<Composite.layout>

-			<GridLayout numColumns="2"/>

-		</Composite.layout>

-	<ListViewer x:Name="contacts" x:Class="org.eclipse.xwt.tests.events.ListEventHandler">

-		<ListViewer.control SelectionEvent="selection"/>

-		<ListViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</ListViewer.control.layoutData>

-	</ListViewer>

-	<Composite x:Class="org.eclipse.xwt.tests.events.ButtonEventHandler">

-		<Composite.layout>

-			<FillLayout/>

-		</Composite.layout>

-		<Button Text="OK" SelectionEvent="selectionOK"/>

-		<Button Text="Close" SelectionEvent="selectionClose"/>

-	</Composite>

-	<Button Text="Close" SelectionEvent="selectionClose"/>

-	</Composite>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/EventsTestSuite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/EventsTestSuite.java
deleted file mode 100644
index b4eca1d..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/EventsTestSuite.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.events;

-

-import junit.framework.Test;

-import junit.framework.TestSuite;

-

-import org.eclipse.xwt.tests.events.initialize.EventsInitTests;

-import org.eclipse.xwt.tests.events.loaded.EventsLoadedTests;

-import org.eclipse.xwt.tests.events.loaded.multipleClass.MultipleClassLoadedTests;

-

-public class EventsTestSuite extends TestSuite {

-	public static final Test suite() {

-		return new EventsTestSuite();

-	}

-

-	public EventsTestSuite() {

-		addTest(new TestSuite(EventsTests.class));

-		addTest(new TestSuite(EventsInitTests.class));

-		addTest(new TestSuite(EventsLoadedTests.class));

-		addTest(new TestSuite(MultipleClassLoadedTests.class));

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/EventsTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/EventsTests.java
deleted file mode 100644
index 5cc1dda..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/EventsTests.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.events;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class EventsTests extends XWTTestCase {

-

-	public void testButtonEvent() throws Exception {

-		URL url = EventsTests.class

-				.getResource(org.eclipse.xwt.tests.events.Button.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "ButtonEvent");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				selectButton(button);

-			}

-		},

-

-		new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Object element = XWT.findElementByName(root, "ButtonEvent");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				assertEquals(button.getText(), ButtonHandler.message);

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/ListEventHandler.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/ListEventHandler.java
deleted file mode 100644
index a907ccd..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/ListEventHandler.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.events;

-

-import org.eclipse.swt.widgets.Event;

-

-public class ListEventHandler {

-	protected void selection(Event event) {

-		System.out.println("Selection !");

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/MainEventHandler.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/MainEventHandler.java
deleted file mode 100644
index 9ec089c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/MainEventHandler.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.events;

-

-import org.eclipse.swt.widgets.Event;

-

-public class MainEventHandler {

-	protected void selectionClose(Event event) {

-		System.out.println("Close !");

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/initialize/EventsInitTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/initialize/EventsInitTests.java
deleted file mode 100644
index 54f8cc1..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/initialize/EventsInitTests.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.events.initialize;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class EventsInitTests extends XWTTestCase {

-

-	public void testInitializeComponent() throws Exception {

-		URL url = UserControl.class.getResource(UserControl.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Object element = XWT.findElementByName(root, "button");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				assertEquals(button.getText(), UserControl.Message);

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/initialize/UserControl.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/initialize/UserControl.java
deleted file mode 100644
index 62bcde4..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/initialize/UserControl.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.events.initialize;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class UserControl extends Composite {

-	public static final String Message = "OK -> Initialized";

-

-	public UserControl(Composite parent, int style) {

-		super(parent, style);

-	}

-

-	protected void initializeComponent() {

-		Button button = (Button) XWT.findElementByName(this, "button");

-		button.setText(Message);

-	}

-

-	public static void main(String[] args) {

-

-		URL url = UserControl.class.getResource(UserControl.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/initialize/UserControl.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/initialize/UserControl.xwt
deleted file mode 100644
index 7a82578..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/initialize/UserControl.xwt
+++ /dev/null
@@ -1,9 +0,0 @@
-<j:UserControl xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:j="clr-namespace:org.eclipse.xwt.tests.events.initialize"

-	x:Class="org.eclipse.xwt.tests.events.initialize.UserControl">

-	<j:UserControl.layout>

-		<GridLayout numColumns="2"/>

-	</j:UserControl.layout>	

-	<Button x:Name="button" text="Wrong result"/>

-</j:UserControl>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/Button.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/Button.java
deleted file mode 100644
index 8c87717..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/Button.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.events.loaded;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Button {

-	public static void main(String[] args) {

-

-		URL url = Button.class.getResource(Button.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/Button.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/Button.xwt
deleted file mode 100644
index 0a4e874..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/Button.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	x:Class="org.eclipse.xwt.tests.events.loaded.ButtonHandler">

-	<Shell.layout>

-		<GridLayout numColumns="2"/>

-	</Shell.layout>	

-	<Button name="Button" text="Wrong result" loadedEvent="onLoaded"/>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/ButtonHandler.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/ButtonHandler.java
deleted file mode 100644
index dd124ad..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/ButtonHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.events.loaded;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Event;

-

-public class ButtonHandler {

-	public static final String Message = "OK -> Loaded";

-

-	protected void onLoaded(Event event) {

-		Button button = (Button) event.widget;

-		button.setText(Message);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/Button_prefix.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/Button_prefix.java
deleted file mode 100644
index 3129796..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/Button_prefix.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.events.loaded;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Button_prefix {

-	public static void main(String[] args) {

-

-		URL url = Button_prefix.class.getResource(Button_prefix.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/Button_prefix.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/Button_prefix.xwt
deleted file mode 100644
index ea5d545..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/Button_prefix.xwt
+++ /dev/null
@@ -1,9 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:c="clr-namespace:org.eclipse.xwt.tests.events.loaded"

-	x:Class="c:ButtonHandler">

-	<Shell.layout>

-		<GridLayout numColumns="2"/>

-	</Shell.layout>	

-	<Button name="Button" text="Wrong result" loadedEvent="onLoaded"/>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/EventsLoadedTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/EventsLoadedTests.java
deleted file mode 100644
index 355b935..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/EventsLoadedTests.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.events.loaded;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-/**

- * 

- * @author yyang

- * 

- */

-public class EventsLoadedTests extends XWTTestCase {

-

-	public void testLoaded() throws Exception {

-		URL url = org.eclipse.xwt.tests.events.loaded.Button.class

-				.getResource(org.eclipse.xwt.tests.events.loaded.Button.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Object element = XWT.findElementByName(root, "Button");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				assertEquals(

-						button.getText(),

-						org.eclipse.xwt.tests.events.loaded.ButtonHandler.Message);

-			}

-		});

-	}

-

-	public void testLoaded_Prefix() throws Exception {

-		URL url = org.eclipse.xwt.tests.events.loaded.Button_prefix.class

-				.getResource(org.eclipse.xwt.tests.events.loaded.Button_prefix.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Object element = XWT.findElementByName(root, "Button");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				assertEquals(

-						button.getText(),

-						org.eclipse.xwt.tests.events.loaded.ButtonHandler.Message);

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/Button.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/Button.java
deleted file mode 100644
index ebca6a7..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/Button.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.events.loaded.multipleClass;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Button {

-	public static void main(String[] args) {

-

-		URL url = Button.class.getResource(Button.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/Button.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/Button.xwt
deleted file mode 100644
index a987094..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/Button.xwt
+++ /dev/null
@@ -1,14 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"

-	x:Class="org.eclipse.xwt.tests.events.loaded.multipleClass.RootHander">

-	<Composite.layout>

-		<GridLayout numColumns="2" />

-	</Composite.layout>

-	<Button name="RootButton1" x:style="SWT.PUSH" loadedEvent="performLoaded"></Button>

-	<Group x:Class="org.eclipse.xwt.tests.events.loaded.multipleClass.LoadHandler">

-		<Group.layout>

-			<FillLayout />

-		</Group.layout>

-		<Button name="ChildButton" loadedEvent="performLoaded" />

-	</Group>

-	<Button name="RootButton2" x:style="SWT.PUSH" loadedEvent="performLoaded"></Button>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/LoadHandler.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/LoadHandler.java
deleted file mode 100644
index 8768fd4..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/LoadHandler.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.events.loaded.multipleClass;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Event;

-

-public class LoadHandler {

-	int index = 0;

-

-	/**

-	 * @param event

-	 */

-	public void performLoaded(Event event) {

-		Button button = (Button) event.widget;

-		button.setText("" + ++index);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/MultipleClassLoadedTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/MultipleClassLoadedTests.java
deleted file mode 100644
index 0408bf3..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/MultipleClassLoadedTests.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.events.loaded.multipleClass;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class MultipleClassLoadedTests extends XWTTestCase {

-

-	public void testLoaded() throws Exception {

-		URL url = org.eclipse.xwt.tests.events.loaded.multipleClass.Button.class

-				.getResource(org.eclipse.xwt.tests.events.loaded.multipleClass.Button.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				if (getButtonText("RootButton1").equals("1")) {

-					assertEquals("2", getButtonText("RootButton2")); 

-				}

-				else if (getButtonText("RootButton1").equals("2")) {

-					assertEquals("1", getButtonText("RootButton2")); 

-				}

-				else {

-					fail();

-				}				

-				assertEquals("1", getButtonText("ChildButton")); 

-			}

-

-			public String getButtonText(String name) {

-				Object element = XWT.findElementByName(root, name);

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				return button.getText();

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/RootHander.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/RootHander.java
deleted file mode 100644
index 3be8f4a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/RootHander.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.events.loaded.multipleClass;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Event;

-

-public class RootHander {

-	int index = 0;

-

-	public void performLoaded(Event event) {

-		Button button = (Button) event.widget;

-		button.setText("" + ++index);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Composite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Composite.java
deleted file mode 100644
index c55c71f..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Composite.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.forms;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.forms.XWTForms;

-

-public class ExpandableComposite_Composite {

-	public static void main(String[] args) {

-

-		URL url = ExpandableComposite_Composite.class.getResource(ExpandableComposite_Composite.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWTForms.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Composite.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Composite.xwt
deleted file mode 100644
index 050a688..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Composite.xwt
+++ /dev/null
@@ -1,19 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt">

-    <Composite.layout>

-        <GridLayout numColumns="1" />

-    </Composite.layout>

-	<ExpandableComposite x:style="Section.TITLE_BAR|Section.TWISTIE|Section.EXPANDED" expanded="true" name="ExpandableComposite"

-	    text="Expandable Composite">

-	    <ExpandableComposite.client>

-     		<Composite>

-     			 <Composite.layout>

-	 				<GridLayout numColumns="3" horizontalSpacing="5"

-						 makeColumnsEqualWidth="false" marginBottom="0" marginHeight="5" marginLeft="0"

-						 marginRight="0" marginTop="0" marginWidth="5" verticalSpacing="5" />

-				 </Composite.layout>

-			     <Label name="ExpandableComposite.Label" text="test" />

-     		</Composite>

-	    </ExpandableComposite.client>

-	</ExpandableComposite>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Label.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Label.java
deleted file mode 100644
index da0ca2b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Label.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.forms;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.forms.XWTForms;

-

-public class ExpandableComposite_Label {

-	public static void main(String[] args) {

-

-		URL url = ExpandableComposite_Label.class.getResource(ExpandableComposite_Label.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWTForms.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Label.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Label.xwt
deleted file mode 100644
index 03c055d..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Label.xwt
+++ /dev/null
@@ -1,12 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt">

-    <Composite.layout>

-        <GridLayout numColumns="1" />

-    </Composite.layout>

-	<ExpandableComposite x:style="Section.TITLE_BAR|Section.TWISTIE|Section.EXPANDED" expanded="true" name="ExpandableComposite"

-	    text="Expandable Composite">

-	    <ExpandableComposite.client>

-		     <Label name="ExpandableComposite.Label" text="test" />

-	    </ExpandableComposite.client>

-	</ExpandableComposite>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Label_NotExpanded.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Label_NotExpanded.java
deleted file mode 100644
index 964b5d3..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Label_NotExpanded.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.forms;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.forms.XWTForms;

-

-public class ExpandableComposite_Label_NotExpanded {

-	public static void main(String[] args) {

-

-		URL url = ExpandableComposite_Label_NotExpanded.class.getResource(ExpandableComposite_Label_NotExpanded.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWTForms.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Label_NotExpanded.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Label_NotExpanded.xwt
deleted file mode 100644
index a8940db..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Label_NotExpanded.xwt
+++ /dev/null
@@ -1,12 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt">

-    <Composite.layout>

-        <GridLayout numColumns="1" />

-    </Composite.layout>

-	<ExpandableComposite x:style="Section.TITLE_BAR|Section.TWISTIE|Section.EXPANDED" expanded="false" name="ExpandableComposite"

-	    text="Expandable Composite">

-	    <ExpandableComposite.client>

-		     <Label name="ExpandableComposite.Label" text="test" />

-	    </ExpandableComposite.client>

-	</ExpandableComposite>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/FormTestCase.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/FormTestCase.java
deleted file mode 100644
index e7b9451..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/FormTestCase.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.forms;

-

-import java.net.URL;

-import java.util.Map;

-

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.forms.XWTForms;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public abstract class FormTestCase extends XWTTestCase {

-	protected void runTest(final URL url, final Map<String, Object> options,

-			final Runnable... checkActions) {

-		XWT.runOnUIThread(new Runnable() {

-			public void run() {

-				doRunTest(url, options, checkActions);

-			}

-		});

-	}

-	

-	private void doRunTest(final URL url, Map<String, Object> options,

-			Runnable... checkActions) {

-		ClassLoader classLoader = Thread.currentThread()

-				.getContextClassLoader();

-		try {

-			Thread.currentThread().setContextClassLoader(

-					this.getClass().getClassLoader());

-			Object widget = XWTForms.loadWithOptions(url, options);

-			assertTrue(widget instanceof Control);

-			assertNotNull(widget);

-			root = (Control) widget;

-			assertNotNull(root);

-			Shell shell = root.getShell();

-			shell.open();

-			Display display = shell.getDisplay();

-

-			for (Runnable runnable : checkActions) {

-				while (display.readAndDispatch())

-					;

-				display.syncExec(runnable);

-				while (display.readAndDispatch())

-					;

-			}

-			assertFalse(root.isDisposed());

-			shell.close();

-			while (display.readAndDispatch())

-				;

-		} catch (Exception e) {

-			e.printStackTrace();

-			fail(e.getMessage());

-		} finally {

-			Thread.currentThread().setContextClassLoader(classLoader);

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Background.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Background.java
deleted file mode 100644
index fb600c1..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Background.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.forms;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.forms.XWTForms;

-

-public class Form_Background {

-	public static void main(String[] args) {

-

-		URL url = Form_Background.class.getResource(Form_Background.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWTForms.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Background.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Background.xwt
deleted file mode 100644
index 7a2861c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Background.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-       xmlns:x="http://www.eclipse.org/xwt">

-    <Shell.layout>

-        <FillLayout/>

-    </Shell.layout>

-    <Form name="FormBackground" text="New Form" background="COLOR_YELLOW"/>

-    <Form name="Form" text="New Form"/>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Button.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Button.java
deleted file mode 100644
index 82d697c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Button.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.forms;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.forms.XWTForms;

-

-public class Form_Button {

-	public static void main(String[] args) {

-

-		URL url = Form_Button.class.getResource(Form_Button.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWTForms.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Button.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Button.xwt
deleted file mode 100644
index 859dccd..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Button.xwt
+++ /dev/null
@@ -1,14 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt">

-    <Composite.layout>

-        <GridLayout numColumns="1" />

-    </Composite.layout>

-    <Form name="Form" text="Form Header Title">

-        <Form.body.layout>

-            <GridLayout numColumns="1" />

-        </Form.body.layout>

-        <Form.body>

-		    <Button name="Form.Button" text="Form button" />

-        </Form.body>

-    </Form>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_ButtonSection.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_ButtonSection.java
deleted file mode 100644
index be57020..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_ButtonSection.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.forms;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.forms.XWTForms;

-

-public class Form_ButtonSection {

-	public static void main(String[] args) {

-

-		URL url = Form_ButtonSection.class.getResource(Form_ButtonSection.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWTForms.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_ButtonSection.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_ButtonSection.xwt
deleted file mode 100644
index f76309a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_ButtonSection.xwt
+++ /dev/null
@@ -1,20 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt">

-    <Composite.layout>

-        <GridLayout numColumns="1" />

-    </Composite.layout>

-    <Form name="Form" text="Form Header Title">

-        <Form.body.layout>

-            <GridLayout numColumns="1" />

-        </Form.body.layout>

-        <Form.body>

-		    <Button name="Form.Button" text="Form button" />

-			<Section name="Form.Section" x:style="Section.TITLE_BAR|Section.TWISTIE|Section.EXPANDED"

-	            text="Section Two">

-	            <Section.client>

-	                <Label name="Form.Section.Label" text="test" />

-	            </Section.client>

-	        </Section>

-        </Form.body>

-    </Form>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Group.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Group.java
deleted file mode 100644
index 9a9ed8f..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Group.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.forms;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.forms.XWTForms;

-

-public class Form_Group {

-	public static void main(String[] args) {

-

-		URL url = Form_Group.class.getResource(Form_Group.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWTForms.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Group.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Group.xwt
deleted file mode 100644
index 82c0910..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Group.xwt
+++ /dev/null
@@ -1,16 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt">

-    <Composite.layout>

-        <GridLayout numColumns="1" />

-    </Composite.layout>

-    <Form name="Form" text="Form Header Title">

-        <Form.body.layout>

-            <GridLayout numColumns="1" />

-        </Form.body.layout>

-        <Form.body>

-			<Group name="Form.Group"

-			    text="Group one">

-			</Group>

-        </Form.body>

-    </Form>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_HeadClient.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_HeadClient.java
deleted file mode 100644
index cd9d4d6..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_HeadClient.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.forms;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.forms.XWTForms;

-

-public class Form_HeadClient {

-	public static void main(String[] args) {

-

-		URL url = Form_HeadClient.class.getResource(Form_HeadClient.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWTForms.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_HeadClient.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_HeadClient.xwt
deleted file mode 100644
index fbf2d2c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_HeadClient.xwt
+++ /dev/null
@@ -1,11 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation" 

-	   xmlns:x="http://www.eclipse.org/xwt">

-	<Shell.layout>

-		<FillLayout/>

-	</Shell.layout>

-	<Form text="New Form">

-		<Form.headClient>

-			<Button name="Form.HeadClient.Button" text="header"/>

-		</Form.headClient>

-	</Form>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Label.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Label.java
deleted file mode 100644
index 23d0a7d..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Label.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.forms;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.forms.XWTForms;

-

-public class Form_Label {

-	public static void main(String[] args) {

-

-		URL url = Form_Label.class.getResource(Form_Label.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWTForms.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Label.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Label.xwt
deleted file mode 100644
index 418e061..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Label.xwt
+++ /dev/null
@@ -1,14 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt">

-    <Composite.layout>

-        <GridLayout numColumns="1" />

-    </Composite.layout>

-    <Form name="Form" text="Form Header Title">

-        <Form.body.layout>

-            <GridLayout numColumns="1" />

-        </Form.body.layout>

-        <Form.body>

-	        <Label name="Form.Label" text="form label" />

-        </Form.body>

-    </Form>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_LabelButton.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_LabelButton.java
deleted file mode 100644
index a10460b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_LabelButton.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.forms;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.forms.XWTForms;

-

-public class Form_LabelButton {

-	public static void main(String[] args) {

-

-		URL url = Form_LabelButton.class.getResource(Form_LabelButton.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWTForms.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_LabelButton.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_LabelButton.xwt
deleted file mode 100644
index 081c969..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_LabelButton.xwt
+++ /dev/null
@@ -1,15 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt">

-    <Composite.layout>

-        <GridLayout numColumns="1" />

-    </Composite.layout>

-    <Form name="Form" text="Form Header Title">

-        <Form.body.layout>

-            <GridLayout numColumns="1" />

-        </Form.body.layout>

-        <Form.body>

-	        <Label name="Form.Label" text="form label" />

-		    <Button name="Form.Button" text="Form button" />

-        </Form.body>

-    </Form>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Section.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Section.java
deleted file mode 100644
index 29726ea..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Section.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.forms;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.forms.XWTForms;

-

-public class Form_Section {

-	public static void main(String[] args) {

-

-		URL url = Form_Section.class.getResource(Form_Section.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWTForms.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Section.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Section.xwt
deleted file mode 100644
index 8889ca2..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Section.xwt
+++ /dev/null
@@ -1,19 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt">

-    <Composite.layout>

-        <GridLayout numColumns="1" />

-    </Composite.layout>

-    <Form name="Form" text="Form Header Title">

-        <Form.body.layout>

-            <GridLayout numColumns="1" />

-        </Form.body.layout>

-        <Form.body>

-			<Section name="Form.Section" x:style="Section.TITLE_BAR|Section.TWISTIE|Section.EXPANDED"

-			    text="Section Two">

-			    <Section.client>

-			        <Label name="Form.Section.Label" text="test" />

-			    </Section.client>

-			</Section>

-        </Form.body>

-    </Form>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/FormsTestSuite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/FormsTestSuite.java
deleted file mode 100644
index a20f057..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/FormsTestSuite.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.forms;

-

-import org.eclipse.xwt.tests.forms.tableviewer.master.detail.set.Forms_TableViewer_Set_MasterDetail_Tests;

-

-import junit.framework.Test;

-import junit.framework.TestSuite;

-

-public class FormsTestSuite extends TestSuite {

-	public static final Test suite() {

-		return new FormsTestSuite();

-	}

-

-	public FormsTestSuite() {

-		addTest(new TestSuite(FormsTests.class));

-		addTest(new TestSuite(Forms_TableViewer_Set_MasterDetail_Tests.class));

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/FormsTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/FormsTests.java
deleted file mode 100644
index 911ee0e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/FormsTests.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.forms;

-

-import java.net.URL;

-

-import org.eclipse.swt.custom.SashForm;

-import org.eclipse.swt.graphics.Color;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Group;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.ui.forms.widgets.Form;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class FormsTests extends FormTestCase {

-	public void testSection() throws Exception {

-		URL url = FormsTests.class.getResource(Section.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkVisibility("Section",

-						org.eclipse.ui.forms.widgets.Section.class);

-				checkVisibility("Section.Label", Label.class);

-			}

-		});

-	}

-

-	public void testForm_Label() throws Exception {

-		URL url = FormsTests.class.getResource(Form_Label.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkVisibility("Form", org.eclipse.ui.forms.widgets.Form.class);

-				checkVisibility("Form.Label", Label.class);

-			}

-		});

-	}

-

-	public void testForm_Button() throws Exception {

-		URL url = FormsTests.class.getResource(Form_Button.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkVisibility("Form", org.eclipse.ui.forms.widgets.Form.class);

-				checkVisibility("Form.Button", Button.class);

-			}

-		});

-	}

-

-	public void testForm_LabelButton() throws Exception {

-		URL url = FormsTests.class.getResource(Form_LabelButton.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkVisibility("Form", org.eclipse.ui.forms.widgets.Form.class);

-				checkVisibility("Form.Label", Label.class);

-				checkVisibility("Form.Button", Button.class);

-			}

-		});

-	}

-

-	public void testForm_Section() throws Exception {

-		URL url = FormsTests.class.getResource(Form_Section.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkVisibility("Form", org.eclipse.ui.forms.widgets.Form.class);

-				checkVisibility("Form.Section",

-						org.eclipse.ui.forms.widgets.Section.class);

-				checkVisibility("Form.Section.Label", Label.class);

-			}

-		});

-	}

-

-	public void testForm_HeadClient() throws Exception {

-		URL url = FormsTests.class.getResource(Form_HeadClient.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkVisibility("Form.HeadClient.Button", Button.class);

-			}

-		});

-	}

-

-	public void testForm_Background() throws Exception {

-		URL url = FormsTests.class.getResource(Form_Background.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Form form1 = (Form) XWT.findElementByName(root,

-						"FormBackground");

-				Color form1Color = form1.getBackground();

-				Form form2 = (Form) XWT.findElementByName(root, "Form");

-				Color form2Color = form2.getBackground();

-				assertFalse(form1Color.equals(form2Color));

-			}

-		});

-	}

-

-	public void testForm_ButtonSection() throws Exception {

-		URL url = FormsTests.class.getResource(Form_ButtonSection.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkVisibility("Form", org.eclipse.ui.forms.widgets.Form.class);

-				checkVisibility("Form.Button", Button.class);

-				checkVisibility("Form.Section",

-						org.eclipse.ui.forms.widgets.Section.class);

-				checkVisibility("Form.Section.Label", Label.class);

-			}

-		});

-	}

-

-	public void testScrolledForm() throws Exception {

-		URL url = FormsTests.class.getResource(ScrolledForm.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkVisibility("ScrolledForm",

-						org.eclipse.ui.forms.widgets.ScrolledForm.class);

-				checkVisibility("ScrolledForm.SashForm", SashForm.class);

-				checkVisibility("ScrolledForm.SashForm.Section1",

-						org.eclipse.ui.forms.widgets.Section.class);

-				checkVisibility("ScrolledForm.SashForm.Section1.Composite",

-						Composite.class);

-				checkVisibility(

-						"ScrolledForm.SashForm.Section1.Composite.Label",

-						Label.class);

-				checkVisibility(

-						"ScrolledForm.SashForm.Section1.Composite.Text",

-						Text.class);

-				checkVisibility("ScrolledForm.SashForm.Section2",

-						org.eclipse.ui.forms.widgets.Section.class);

-				checkVisibility("ScrolledForm.SashForm.Section2.Label",

-						Label.class);

-				checkVisibility("ScrolledForm.Label", Label.class);

-				checkChildren("ScrolledForm", 1);

-				checkChildren("ScrolledForm", "Body", 2);

-			}

-		});

-	}

-

-	public void testForm_Group_Adapt() throws Exception {

-		URL url = FormsTests.class.getResource(Form_Group.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkVisibility("Form.Group", Group.class);

-				Group group = (Group) XWT.findElementByName(root, "Form.Group");

-				Color color = group.getBackground();

-				assertEquals(color.getBlue(), 255);

-				assertEquals(color.getRed(), 255);

-				assertEquals(color.getGreen(), 255);

-			}

-		});

-	}

-

-	public void testExpandableComposite_Composite() throws Exception {

-		URL url = FormsTests.class

-				.getResource(ExpandableComposite_Composite.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				org.eclipse.ui.forms.widgets.ExpandableComposite expandableComposite = (org.eclipse.ui.forms.widgets.ExpandableComposite) XWT

-						.findElementByName(root,

-								"ExpandableComposite");

-				checkVisibility("ExpandableComposite.Label", Label.class);

-				assertTrue(expandableComposite.isExpanded());

-				assertTrue(expandableComposite.getClient() instanceof Composite);

-			}

-		});

-	}

-

-	public void testExpandableComposite_Label() throws Exception {

-		URL url = FormsTests.class

-				.getResource(ExpandableComposite_Label.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				org.eclipse.ui.forms.widgets.ExpandableComposite expandableComposite = (org.eclipse.ui.forms.widgets.ExpandableComposite) XWT

-						.findElementByName(root,

-								"ExpandableComposite");

-				checkVisibility("ExpandableComposite.Label", Label.class);

-				assertTrue(expandableComposite.isExpanded());

-				assertTrue(expandableComposite.getClient() instanceof Label);

-			}

-		});

-	}

-

-	public void testExpandableComposite_Label_NotExpanded() throws Exception {

-		URL url = FormsTests.class

-				.getResource(ExpandableComposite_Label_NotExpanded.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				org.eclipse.ui.forms.widgets.ExpandableComposite expandableComposite = (org.eclipse.ui.forms.widgets.ExpandableComposite) XWT

-						.findElementByName(root,

-								"ExpandableComposite");

-				checkVisibility("ExpandableComposite.Label", Label.class);

-				assertFalse(expandableComposite.isExpanded());

-				assertTrue(expandableComposite.getClient() instanceof Label);

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ScrolledForm.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ScrolledForm.java
deleted file mode 100644
index 24e2725..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ScrolledForm.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.forms;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.forms.XWTForms;

-

-public class ScrolledForm {

-	public static void main(String[] args) {

-

-		URL url = ScrolledForm.class.getResource(ScrolledForm.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWTForms.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ScrolledForm.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ScrolledForm.xwt
deleted file mode 100644
index fb08086..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ScrolledForm.xwt
+++ /dev/null
@@ -1,38 +0,0 @@
-<ScrolledForm text="Form title"

-    xmlns="http://www.eclipse.org/xwt/presentation"

-xmlns:x="http://www.eclipse.org/xwt"

-	name="ScrolledForm" >

-    <ScrolledForm.body>

-        <ScrolledForm.body.layout>

-            <GridLayout numColumns="1" />

-        </ScrolledForm.body.layout>

-        <SashForm name="ScrolledForm.SashForm">

-            <Section name="ScrolledForm.SashForm.Section1"

-x:style="Section.TITLE_BAR|Section.TWISTIE|Section.EXPANDED"

-                text="Section One">

-                <Section.client>

-                    <Composite name="ScrolledForm.SashForm.Section1.Composite">

-                        <Composite.layout>

-                            <GridLayout numColumns="2" />

-                        </Composite.layout>

-                        <Label name="ScrolledForm.SashForm.Section1.Composite.Label" text="Your Name" />

-                        <Text name="ScrolledForm.SashForm.Section1.Composite.Text" x:style="BORDER" text="my name">

-                            <Text.layoutData>

-                                <GridData horizontalAlignment="FILL"

-                                    grabExcessHorizontalSpace="true" />

-                            </Text.layoutData>

-                        </Text>

-                    </Composite>

-                </Section.client>

-            </Section>

-            <Section name="ScrolledForm.SashForm.Section2"

-x:style="Section.TITLE_BAR|Section.TWISTIE|Section.EXPANDED"

-                text="Section Two">

-                <Section.client>

-                    <Label name="ScrolledForm.SashForm.Section2.Label" text="test" />

-                </Section.client>

-            </Section>

-        </SashForm>

-        <Label name="ScrolledForm.Label" text="DUMMY" />

-    </ScrolledForm.body>

-</ScrolledForm>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Section.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Section.java
deleted file mode 100644
index a95e760..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Section.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.forms;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.forms.XWTForms;

-

-public class Section {

-	public static void main(String[] args) {

-

-		URL url = Section.class.getResource(Section.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWTForms.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Section.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Section.xwt
deleted file mode 100644
index a7d0b9f..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Section.xwt
+++ /dev/null
@@ -1,13 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:j="clr-namespace:test.ui"

-    xmlns:x="http://www.eclipse.org/xwt">

-    <Composite.layout>

-        <GridLayout numColumns="1" />

-    </Composite.layout>

-	<Section name="Section" x:style="Section.TITLE_BAR|Section.TWISTIE|Section.EXPANDED"

-        text="Section Two">

-        <Section.client>

-            <Label name="Section.Label" text="test" />

-        </Section.client>

-    </Section>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/Company.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/Company.java
deleted file mode 100644
index 6eb6913..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/Company.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.forms.tableviewer.master.detail.set;

-

-import java.util.Set;

-

-/**

- * 

- * @author yyang

- */

-public class Company {

-	protected String name;

-

-	protected Set<Employee> employees;

-

-	public Company() {

-	}

-

-	public Set<Employee> getEmployees() {

-		return employees;

-	}

-

-	public void setEmployees(Set<Employee> employees) {

-		this.employees = employees;

-	}

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/Employee.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/Employee.java
deleted file mode 100644
index f2dfa76..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/Employee.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.forms.tableviewer.master.detail.set;

-

-public class Employee {

-	protected String name;

-	protected int age;

-

-	public int getAge() {

-		return age;

-	}

-

-	public void setAge(int age) {

-		this.age = age;

-	}

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/Forms_TableViewer_Set_MasterDetail_Tests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/Forms_TableViewer_Set_MasterDetail_Tests.java
deleted file mode 100644
index b57c298..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/Forms_TableViewer_Set_MasterDetail_Tests.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.forms.tableviewer.master.detail.set;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.swt.widgets.TableItem;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.forms.FormTestCase;

-

-public class Forms_TableViewer_Set_MasterDetail_Tests extends FormTestCase {

-

-	public void testTableViewer_MasterDetail() throws Exception {

-		URL url = TableViewer_MasterDetail.class

-				.getResource(TableViewer_MasterDetail.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 2);

-				if ("Jin".equals(items[1].getText(0))) {

-					assertEquals(items[1].getText(1), "27");

-					assertEquals(items[0].getText(0), "Thomas");

-					assertEquals(items[0].getText(1), "32");

-				} else if ("Thomas".equals(items[1].getText(0))) {

-					assertEquals(items[1].getText(1), "32");

-					assertEquals(items[0].getText(0), "Jin");

-					assertEquals(items[0].getText(1), "27");

-				}

-			}

-		});

-	}

-

-	public void testTableViewer_MasterDetail_DetailDisplay() throws Exception {

-		URL url = TableViewer_MasterDetail.class

-				.getResource(TableViewer_MasterDetail.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-

-				IObservableValue observableValue = XWT.findObservableValue(

-						root, tableViewer, "singleSelection");

-

-				Company company = (Company) XWT.getDataContext(element);

-				Employee employee = company.getEmployees().iterator().next();

-				observableValue.setValue(employee);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkListViewer();

-			}

-

-			public void checkListViewer() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 2);

-

-				Label label = (Label) XWT.findElementByName(root, "Label");

-				assertTrue(label != null);

-

-				IObservableValue observableValue = XWT.findObservableValue(

-						root, tableViewer, "singleSelection");

-				Object selected = observableValue.getValue();

-				assertTrue(selected instanceof Employee);

-				Employee employee = (Employee) selected;

-				assertEquals(label.getText(), employee.getName());

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/Industry.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/Industry.java
deleted file mode 100644
index b1c50f7..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/Industry.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.forms.tableviewer.master.detail.set;

-

-import java.util.Set;

-

-/**

- * 

- * @author yyang

- */

-public class Industry {

-	protected String name;

-	protected Set<Company> members;

-

-	public Set<Company> getMembers() {

-		return members;

-	}

-

-	public void setMembers(Set<Company> members) {

-		this.members = members;

-	}

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/TableViewer_MasterDetail.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/TableViewer_MasterDetail.java
deleted file mode 100644
index a16b6a6..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/TableViewer_MasterDetail.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.forms.tableviewer.master.detail.set;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.forms.XWTForms;

-

-/**

- * @author jliu

- */

-public class TableViewer_MasterDetail {

-	public static void main(String[] args) {

-

-		URL url = TableViewer_MasterDetail.class

-				.getResource(TableViewer_MasterDetail.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWTForms.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/TableViewer_MasterDetail.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/TableViewer_MasterDetail.xwt
deleted file mode 100644
index 2028d8c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/TableViewer_MasterDetail.xwt
+++ /dev/null
@@ -1,40 +0,0 @@
-<ScrolledForm xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:j="clr-namespace:org.eclipse.xwt.tests.forms.tableviewer.master.detail.set"

-	DataContext="{StaticResource myCompany}"

-	title="Master Detail - Forms">

-	<ScrolledForm.resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<j:Employee Name="Thomas" Age="32" />

-				<j:Employee Name="Jin" Age="27" />

-			</j:Company.employees>

-		</j:Company>

-	</ScrolledForm.resources>

-	<ScrolledForm.body>

-		<ScrolledForm.body.layout>

-			<GridLayout numColumns="1" />

-		</ScrolledForm.body.layout>

-		<TableViewer Name="TableViewer" input="{Binding Path=employees}">

-			<TableViewer.columns>

-				<TableViewerColumn width="150" text="Name"

-					bindingPath="name" />

-				<TableViewerColumn width="150" text="Age"

-					bindingPath="age" />

-			</TableViewer.columns>

-			<TableViewer.table HeaderVisible="true">

-			</TableViewer.table>

-			<TableViewer.control.layoutData>

-				<GridData horizontalAlignment="FILL"

-					grabExcessHorizontalSpace="true" />

-			</TableViewer.control.layoutData>

-		</TableViewer>

-		<Label name="Label"

-			text="{Binding ElementName=TableViewer,path=singleSelection.(j:Employee.name)}">

-			<Label.layoutData>

-				<GridData horizontalAlignment="FILL"

-					grabExcessHorizontalSpace="true" />

-			</Label.layoutData>

-		</Label>

-	</ScrolledForm.body>

-</ScrolledForm>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/Messages.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/Messages.java
deleted file mode 100644
index 7ed9875..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/Messages.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.i18n;

-

-import org.eclipse.osgi.util.NLS;

-

-public class Messages extends NLS {

-	private static final String BUNDLE_NAME = "org.eclipse.xwt.tests.i18n.messages"; // NON-NLS-1

-

-	public static String title;

-

-	static {

-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControl.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControl.java
deleted file mode 100644
index 937d43c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControl.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.i18n;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class UserControl {

-

-	/**

-	 * @param args

-	 */

-	public static void main(String[] args) {

-

-		URL url = UserControl.class.getResource(UserControl.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControl.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControl.xwt
deleted file mode 100644
index 274389f..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControl.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:java="clr-namespace:org.eclipse.xwt.tests.i18n">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>	

-	<Button Text="{x:Static java:Messages.title}" />

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControlEncoding.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControlEncoding.java
deleted file mode 100644
index 3c46b49..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControlEncoding.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.i18n;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class UserControlEncoding {

-

-	/**

-	 * @param args

-	 */

-	public static void main(String[] args) {

-

-		URL url = UserControlEncoding.class.getResource(UserControlEncoding.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControlEncoding.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControlEncoding.xwt
deleted file mode 100644
index 71f77fe..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControlEncoding.xwt
+++ /dev/null
@@ -1,7 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>	

-	<Button Text="中文" />

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControlEncodingUTF8.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControlEncodingUTF8.java
deleted file mode 100644
index 1d5cb2b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControlEncodingUTF8.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.i18n;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class UserControlEncodingUTF8 {

-

-	/**

-	 * @param args

-	 */

-	public static void main(String[] args) {

-

-		URL url = UserControlEncodingUTF8.class.getResource(UserControlEncodingUTF8.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControlEncodingUTF8.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControlEncodingUTF8.xwt
deleted file mode 100644
index 87da59e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControlEncodingUTF8.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>	

-	<Button Text="中文" />

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/messages.properties b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/messages.properties
deleted file mode 100644
index 550b771..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/messages.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-###############################################################################

-# Copyright (c) 2010 IBM Corporation and others.

-# All rights reserved. This program and the accompanying materials

-# are made available under the terms of the Eclipse Public License v1.0

-# which accompanies this distribution, and is available at

-# http://www.eclipse.org/legal/epl-v10.html

-#

-# Contributors:

-#     IBM Corporation - initial API and implementation

-###############################################################################

-title = Hello world!
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/internal/xml/XMLTestSuite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/internal/xml/XMLTestSuite.java
deleted file mode 100644
index 7a82659..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/internal/xml/XMLTestSuite.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2013 CEA LIST.
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   CEA LIST - Initial API and implementation
- *****************************************************************************/
-package org.eclipse.xwt.tests.internal.xml;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class XMLTestSuite extends TestSuite {
-	public static final Test suite() {
-		return new XMLTestSuite();
-	}
-
-	public XMLTestSuite() {
-		addTest(new TestSuite(XMLTests.class));
-	}
-}
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/internal/xml/XMLTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/internal/xml/XMLTests.java
deleted file mode 100644
index 679e05d..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/internal/xml/XMLTests.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2013, 2014 CEA LIST and others.
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   CEA LIST - Initial API and implementation
- *   Christian W. Damus (CEA) - bug 435432
- *   
- *****************************************************************************/
-package org.eclipse.xwt.tests.internal.xml;
-
-import java.io.IOException;
-import java.net.URL;
-import java.net.URLConnection;
-import java.net.URLStreamHandler;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.IXWTLoader;
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.tests.XWTTestCase;
-import org.eclipse.swt.widgets.Button;
-
-/**
- * Test suite for the internals of XML parsing.
- */
-public class XMLTests extends XWTTestCase {
-	static final String HELLO_BUTTON_FILE_NAME = "helloButton" + IConstants.XWT_EXTENSION_SUFFIX;
-	
-	static final int ITERATIONS = 3;
-
-	/**
-	 * Tests that URLs employing custom stream handlers (identified by custom URL schemes)
-	 * are correctly manipulated by XWT such that their contents are accessed at run-time.
-	 */
-	public void testURLWithCustomStreamHandler() throws Exception {
-		final String filename = HELLO_BUTTON_FILE_NAME;
-		
-		Map<String, URL> delegates = new java.util.HashMap<String, URL>();
-		delegates.put(filename, XMLTests.class.getResource(filename));
-		
-		URL url = new URL(null, "delegate:" + filename, new DelegatingURLStreamHandler(delegates));
-		
-		runTest(url, new Runnable() {
-
-			public void run() {
-				Object element = XWT.findElementByName(root, "helloButton");
-				assertTrue(element instanceof Button);
-			}
-		});
-	}
-	
-	/**
-	 * Control test case checking that the absence of an XML parsing option results in no caching.
-	 * 
-	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=435432
-	 */
-	public void testParsedXMLElementCaching_None() throws Exception {
-		final HitCountingURLStreamHandler handler = new HitCountingURLStreamHandler();
-		final Map<String, Object> options = new HashMap<String, Object>();
-		final URL resourceURL = new URL(null, XMLTests.class.getResource(HELLO_BUTTON_FILE_NAME).toExternalForm(), handler);
-		
-		Runnable verifier = new Runnable() {
-			private int expectedHitCount = 0;
-			
-			@Override
-			public void run() {
-				expectedHitCount++; // No caching means hitting the URL each time
-				assertEquals(expectedHitCount, handler.getHitCount());
-			}
-		};
-		
-		for (int i = 0; i < ITERATIONS; i++) {
-			runTest(resourceURL, options, verifier);
-		}
-	}
-	
-	/**
-	 * Tests that the Boolean XML caching option value is correctly respected and results in the cache being used.
-	 * 
-	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=435432
-	 */
-	public void testParsedXMLElementCaching_Boolean() throws Exception {
-		final HitCountingURLStreamHandler handler = new HitCountingURLStreamHandler();
-		final Map<String, Object> options = new HashMap<String, Object>();
-		final URL resourceURL = new URL(null, XMLTests.class.getResource(HELLO_BUTTON_FILE_NAME).toExternalForm(), handler);
-		
-		Runnable verifier = new Runnable() {
-			private final int expectedHitCount = 1;
-			
-			@Override
-			public void run() {
-				assertEquals(expectedHitCount, handler.getHitCount());
-			}
-		};
-		
-		options.put(IXWTLoader.XML_CACHE_PROPERTY, true);
-		
-		// Hit the loader a few times
-		for (int i = 0; i < ITERATIONS; i++) {
-			runTest(resourceURL, options, verifier);
-		}
-	}
-	
-	/**
-	 * Tests that the Integer XML caching option value is correctly respected and results in the cache being used.
-	 * 
-	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=435432
-	 */
-	public void testParsedXMLElementCaching_Integer() throws Exception {
-		final HitCountingURLStreamHandler handler = new HitCountingURLStreamHandler();
-		final Map<String, Object> options = new HashMap<String, Object>();
-		final URL resourceURL = new URL(null, XMLTests.class.getResource(HELLO_BUTTON_FILE_NAME).toExternalForm(), handler);
-		
-		Runnable verifier = new Runnable() {
-			private final int expectedHitCount = 1;
-			
-			@Override
-			public void run() {
-				assertEquals(expectedHitCount, handler.getHitCount());
-			}
-		};
-		
-		// Pretty small cache, but enough for this test
-		options.put(IXWTLoader.XML_CACHE_PROPERTY, 1);
-		
-		for (int i = 0; i < ITERATIONS; i++) {
-			runTest(resourceURL, options, verifier);
-		}
-	}
-
-	//
-	// Test framework
-	//
-
-	final class DelegatingURLStreamHandler extends URLStreamHandler {
-
-		private final Map<String, URL> delegates;
-
-		public DelegatingURLStreamHandler(Map<String, URL> delegates) {
-			super();
-
-			this.delegates = delegates;
-		}
-
-		@Override
-		protected URLConnection openConnection(URL u) throws IOException {
-			URL delegate = delegates.get(u.getFile());
-			if(delegate == null) {
-				throw new IOException("No delegate for " + u.getFile());
-			}
-
-			return delegate.openConnection();
-		}
-	}
-	
-	final class HitCountingURLStreamHandler extends URLStreamHandler {
-		private int hitCount;
-		
-		HitCountingURLStreamHandler() {
-			super();
-		}
-		
-		public int getHitCount() {
-			return hitCount;
-		}
-		
-		private void increment() {
-			hitCount++;
-		}
-		
-		@Override
-		protected URLConnection openConnection(URL u) throws IOException {
-			increment();
-			return new URL(u.toExternalForm()).openConnection();
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/JFaceTestSuite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/JFaceTestSuite.java
deleted file mode 100644
index a1aca98..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/JFaceTestSuite.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface;

-

-import junit.framework.Test;

-import junit.framework.TestSuite;

-

-import org.eclipse.xwt.tests.jface.comboviewer.array.JFaceComboViewer_ArrayTests;

-import org.eclipse.xwt.tests.jface.comboviewer.collection.JFaceComboViewer_CollectionTests;

-import org.eclipse.xwt.tests.jface.comboviewer.enumeration.JFaceComboViewer_EnumTests;

-import org.eclipse.xwt.tests.jface.listviewer.array.JFaceListViewer_ArrayTests;

-import org.eclipse.xwt.tests.jface.listviewer.collection.JFaceListViewer_CollectionTests;

-import org.eclipse.xwt.tests.jface.tableviewer.JFaceTableViewer_Tests;

-import org.eclipse.xwt.tests.jface.tableviewer.filter.JFaceTableViewer_Filters_Tests;

-import org.eclipse.xwt.tests.jface.tableviewer.master.detail.JFaceTableViewer_MasterDetail_Tests;

-import org.eclipse.xwt.tests.jface.tableviewer.master.detail.array.JFaceTableViewer_Array_MasterDetail_Tests;

-import org.eclipse.xwt.tests.jface.tableviewer.master.detail.list.JFaceTableViewer_List_MasterDetail_Tests;

-import org.eclipse.xwt.tests.jface.tableviewer.master.detail.set.JFaceTableViewer_Set_MasterDetail_Tests;

-

-public class JFaceTestSuite extends TestSuite {

-	public static final Test suite() {

-		return new JFaceTestSuite();

-	}

-

-	public JFaceTestSuite() {

-		addTest(new TestSuite(JFaceTests.class));

-		addTest(new TestSuite(JFaceListViewer_ArrayTests.class));

-		addTest(new TestSuite(JFaceListViewer_CollectionTests.class));

-		addTest(new TestSuite(JFaceTableViewer_Tests.class));

-		addTest(new TestSuite(JFaceTableViewer_Filters_Tests.class));

-		addTest(new TestSuite(JFaceTableViewer_MasterDetail_Tests.class));

-		addTest(new TestSuite(JFaceTableViewer_List_MasterDetail_Tests.class));

-		addTest(new TestSuite(JFaceTableViewer_Set_MasterDetail_Tests.class));

-		addTest(new TestSuite(JFaceTableViewer_Array_MasterDetail_Tests.class));

-		addTest(new TestSuite(JFaceComboViewer_ArrayTests.class));

-		addTest(new TestSuite(JFaceComboViewer_CollectionTests.class));	

-		addTest(new TestSuite(JFaceComboViewer_EnumTests.class));	

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/JFaceTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/JFaceTests.java
deleted file mode 100644
index 8431f67..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/JFaceTests.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface;

-

-import java.net.URL;

-

-import org.eclipse.jface.viewers.ListViewer;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class JFaceTests extends XWTTestCase {

-

-	public void testListViewer() throws Exception {

-		URL url = JFaceTests.class.getResource(ListViewer_Name.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkListViewer();

-			}

-

-			public void checkListViewer() {

-				Object element = XWT.findElementByName(root, "listView");

-				assertTrue(element instanceof ListViewer);

-			}

-		});

-	}

-

-	// TODO add Font and Color

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/ListViewer_Name.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/ListViewer_Name.java
deleted file mode 100644
index fbe58b3..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/ListViewer_Name.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class ListViewer_Name {

-	public static void main(String[] args) {

-

-		URL url = ListViewer_Name.class.getResource(ListViewer_Name.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/ListViewer_Name.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/ListViewer_Name.xwt
deleted file mode 100644
index 26f7ee4..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/ListViewer_Name.xwt
+++ /dev/null
@@ -1,13 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<ListViewer Name="listView">

-		<ListViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</ListViewer.control.layoutData>

-	</ListViewer>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ComboViewer.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ComboViewer.java
deleted file mode 100644
index 5209988..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ComboViewer.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.comboviewer.array;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.IObservableCollection;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class ComboViewer {

-	public static void main(String[] args) {

-

-		URL url = ComboViewer.class.getResource(ComboViewer.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void addPerson(Object sender, Event event) {

-		org.eclipse.jface.viewers.Viewer viewer = (org.eclipse.jface.viewers.Viewer) XWT

-				.findElementByName(event.widget, "ComboViewer");

-		IObservableCollection collection = (IObservableCollection) viewer

-				.getInput();

-		Employee employee = new Employee();

-		employee.setName("New hired one");

-		collection.add(employee);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ComboViewer.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ComboViewer.xwt
deleted file mode 100644
index 4ec90b4..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ComboViewer.xwt
+++ /dev/null
@@ -1,32 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.comboviewer.array"

-    x:Class="org.eclipse.xwt.tests.jface.comboviewer.array.ComboViewer"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<x:Array Type="j:Employee">

-					<j:Employee Name="Thomas"/>

-					<j:Employee Name="Jin"/>

-				</x:Array>

-			</j:Company.employees>

-		</j:Company>

-	</Composite.resources>

-	<ComboViewer name="ComboViewer" input="{Binding Path=employees}">

-		<ComboViewer.contentProvider>

-			<j:ContentProvider/>

-		</ComboViewer.contentProvider>

-		<ComboViewer.labelProvider>

-			<j:LabelProvider/>

-		</ComboViewer.labelProvider>

-		<ComboViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>

-		</ComboViewer.control.layoutData>

-	</ComboViewer>

-	<Button name="Button" text="Add Person" SelectionEvent="addPerson" />

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ComboViewer_BindingPath.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ComboViewer_BindingPath.java
deleted file mode 100644
index 24be267..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ComboViewer_BindingPath.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.comboviewer.array;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.IObservableCollection;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class ComboViewer_BindingPath {

-	public static void main(String[] args) {

-

-		URL url = ComboViewer_BindingPath.class

-				.getResource(ComboViewer_BindingPath.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void addPerson(Object sender, Event event) {

-		org.eclipse.jface.viewers.Viewer viewer = (org.eclipse.jface.viewers.Viewer) XWT

-				.findElementByName(event.widget, "ComboViewer");

-		IObservableCollection collection = (IObservableCollection) viewer

-				.getInput();

-		Employee employee = new Employee();

-		employee.setName("New hired one");

-		collection.add(employee);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ComboViewer_BindingPath.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ComboViewer_BindingPath.xwt
deleted file mode 100644
index 21fd01a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ComboViewer_BindingPath.xwt
+++ /dev/null
@@ -1,29 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.comboviewer.array"

-    x:Class="org.eclipse.xwt.tests.jface.comboviewer.array.ComboViewer"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<x:Array Type="j:Employee">

-					<j:Employee Name="Thomas"/>

-					<j:Employee Name="Jin"/>

-				</x:Array>

-			</j:Company.employees>

-		</j:Company>

-	</Composite.resources>

-	<ComboViewer name="ComboViewer" input="{Binding Path=employees}" bindingPath="name">

-		<ComboViewer.contentProvider>

-			<j:ContentProvider/>

-		</ComboViewer.contentProvider>

-		<ComboViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>

-		</ComboViewer.control.layoutData>

-	</ComboViewer>

-	<Button name="Button" text="Add Person" SelectionEvent="addPerson" />

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/Company.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/Company.java
deleted file mode 100644
index 41af92c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/Company.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.comboviewer.array;

-

-public class Company {

-	protected Employee[] employees;

-

-	public Company() {

-	}

-

-	public Employee[] getEmployees() {

-		return employees;

-	}

-

-	public void setEmployees(Employee[] employees) {

-		this.employees = employees;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ContentProvider.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ContentProvider.java
deleted file mode 100644
index 4836fa3..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ContentProvider.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.comboviewer.array;

-

-import java.util.Collection;

-

-import org.eclipse.jface.viewers.IStructuredContentProvider;

-import org.eclipse.jface.viewers.Viewer;

-

-public class ContentProvider implements IStructuredContentProvider {

-	static Object[] EMPTY = new Object[] {};

-

-	public ContentProvider() {

-	}

-

-	public Object[] getElements(Object inputElement) {

-		if (inputElement instanceof Collection) {

-			Collection collection = (Collection) inputElement;

-			return collection.toArray();

-		} else if (inputElement instanceof Object[]) {

-			return (Object[]) inputElement;

-		}

-		return EMPTY;

-	}

-

-	public void dispose() {

-	}

-

-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/Employee.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/Employee.java
deleted file mode 100644
index 81139fd..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/Employee.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.comboviewer.array;

-

-public class Employee {

-	protected String name;

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/JFaceComboViewer_ArrayTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/JFaceComboViewer_ArrayTests.java
deleted file mode 100644
index 52da7cc..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/JFaceComboViewer_ArrayTests.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.comboviewer.array;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.IObservableCollection;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class JFaceComboViewer_ArrayTests extends XWTTestCase {

-

-	public void testListViewer() throws Exception {

-		URL url = JFaceComboViewer_ArrayTests.class

-				.getResource(ComboViewer.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkListViewer();

-			}

-

-			public void checkListViewer() {

-				Object element = XWT.findElementByName(root, "ComboViewer");

-				assertTrue(element instanceof org.eclipse.jface.viewers.ComboViewer);

-				org.eclipse.jface.viewers.ComboViewer comboViewer = (org.eclipse.jface.viewers.ComboViewer) element;

-				String[] items = comboViewer.getCombo().getItems();

-				assertTrue(items.length == 2);

-				assertEquals(items[0], "Thomas");

-				assertEquals(items[1], "Jin");

-			}

-		});

-	}

-

-	public void test_ListViewer_DataBinding() {

-		URL url = JFaceComboViewer_ArrayTests.class

-				.getResource(ComboViewer.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button button = (Button) XWT.findElementByName(root, "Button");

-				selectButton(button);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				org.eclipse.jface.viewers.ComboViewer comboViewer = (org.eclipse.jface.viewers.ComboViewer) XWT

-						.findElementByName(root, "ComboViewer");

-				assertTrue(comboViewer.getInput() instanceof IObservableCollection);

-				IObservableCollection collection = (IObservableCollection) comboViewer

-						.getInput();

-				assertTrue(collection.size() == 3);

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/LabelProvider.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/LabelProvider.java
deleted file mode 100644
index e0ae79a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/LabelProvider.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.comboviewer.array;

-

-import org.eclipse.jface.viewers.ILabelProvider;

-import org.eclipse.jface.viewers.ILabelProviderListener;

-import org.eclipse.swt.graphics.Image;

-

-public class LabelProvider implements ILabelProvider {

-

-	public Image getImage(Object element) {

-		return null;

-	}

-

-	public String getText(Object element) {

-		if (element instanceof Employee) {

-			Employee employee = (Employee) element;

-			return employee.getName();

-		}

-		return element.toString();

-	}

-

-	public void addListener(ILabelProviderListener listener) {

-	}

-

-	public void dispose() {

-	}

-

-	public boolean isLabelProperty(Object element, String property) {

-		return false;

-	}

-

-	public void removeListener(ILabelProviderListener listener) {

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer.java
deleted file mode 100644
index 225670d..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.comboviewer.collection;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.IObservableCollection;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class ComboViewer {

-	public static void main(String[] args) {

-

-		URL url = ComboViewer.class.getResource(ComboViewer.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void addPerson(Object sender, Event event) {

-		org.eclipse.jface.viewers.Viewer viewer = (org.eclipse.jface.viewers.Viewer) XWT

-				.findElementByName(event.widget, "ComboViewer");

-		IObservableCollection collection = (IObservableCollection) viewer

-				.getInput();

-		Employee employee = new Employee();

-		employee.setName("New hired one");

-		collection.add(employee);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer.xwt
deleted file mode 100644
index aa1e7f5..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer.xwt
+++ /dev/null
@@ -1,30 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.comboviewer.collection"

-    x:Class="org.eclipse.xwt.tests.jface.comboviewer.collection.ComboViewer"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<j:Employee Name="Thomas"/>

-				<j:Employee Name="Jin"/>

-			</j:Company.employees>

-		</j:Company>

-	</Composite.resources>

-	<ComboViewer name="ComboViewer" input="{Binding Path=employees}">

-		<ComboViewer.contentProvider>

-			<ObservableListContentProvider/>

-		</ComboViewer.contentProvider>

-		<ComboViewer.labelProvider>

-			<j:LabelProvider/>

-		</ComboViewer.labelProvider>

-		<ComboViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>

-		</ComboViewer.control.layoutData>

-	</ComboViewer>

-	<Button name="Button" text="Add Person" SelectionEvent="addPerson" />

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_BindingPath.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_BindingPath.java
deleted file mode 100644
index 289ab6e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_BindingPath.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.comboviewer.collection;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.IObservableCollection;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class ComboViewer_BindingPath {

-	public static void main(String[] args) {

-

-		URL url = ComboViewer_BindingPath.class

-				.getResource(ComboViewer_BindingPath.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void addPerson(Object sender, Event event) {

-		org.eclipse.jface.viewers.Viewer viewer = (org.eclipse.jface.viewers.Viewer) XWT

-				.findElementByName(event.widget, "ListViewer");

-		IObservableCollection collection = (IObservableCollection) viewer

-				.getInput();

-		Employee employee = new Employee();

-		employee.setName("New hired one");

-		collection.add(employee);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_BindingPath.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_BindingPath.xwt
deleted file mode 100644
index 29ecd4a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_BindingPath.xwt
+++ /dev/null
@@ -1,24 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.comboviewer.collection"

-    x:Class="org.eclipse.xwt.tests.jface.comboviewer.collection.ComboViewer"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<j:Employee Name="Thomas"/>

-				<j:Employee Name="Jin"/>

-			</j:Company.employees>

-		</j:Company>

-	</Composite.resources>

-	<ComboViewer name="ComboViewer" input="{Binding Path=employees}" bindingPath="name">

-		<ComboViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>

-		</ComboViewer.control.layoutData>

-	</ComboViewer>

-	<Button name="Button" text="Add Person" SelectionEvent="addPerson" />

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_CollectionViewSource.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_CollectionViewSource.java
deleted file mode 100644
index d178291..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_CollectionViewSource.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.comboviewer.collection;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.IObservableCollection;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class ComboViewer_CollectionViewSource {

-	public static void main(String[] args) {

-

-		URL url = ComboViewer_CollectionViewSource.class

-				.getResource(ComboViewer_CollectionViewSource.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void addPerson(Object sender, Event event) {

-		org.eclipse.jface.viewers.Viewer viewer = (org.eclipse.jface.viewers.Viewer) XWT

-				.findElementByName(event.widget, "ComboViewer1");

-		IObservableCollection collection = (IObservableCollection) viewer

-				.getInput();

-		Employee employee = new Employee();

-		employee.setName("New hired one");

-		collection.add(employee);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_CollectionViewSource.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_CollectionViewSource.xwt
deleted file mode 100644
index dc98d52..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_CollectionViewSource.xwt
+++ /dev/null
@@ -1,54 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.comboviewer.collection"

-    x:Class="org.eclipse.xwt.tests.jface.comboviewer.collection.ComboViewer_CollectionViewSource"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<FillLayout/>

-	</Composite.layout>

-	<Composite.resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<j:Employee Name="Thomas"/>

-				<j:Employee Name="Jin"/>

-			</j:Company.employees>

-		</j:Company>

-		<CollectionViewSource x:Key="viewSource" source="{Binding Path=employees}"/>

-	</Composite.resources>

-

-	<Composite>

-		<Composite.layout>

-			<GridLayout numColumns="2"/>

-		</Composite.layout>

-			

-		<Composite.resources>

-			<CollectionViewSource x:Key="viewSource" source="{Binding Path=employees}"/>

-		</Composite.resources>

-		

-		<ComboViewer name="ComboViewer1" input="{StaticResource viewSource}">

-			<ComboViewer.contentProvider>

-				<ObservableListContentProvider/>

-			</ComboViewer.contentProvider>

-			<ComboViewer.labelProvider>

-				<j:LabelProvider/>

-			</ComboViewer.labelProvider>

-			<ComboViewer.control.layoutData>

-				<GridData horizontalAlignment="FILL" verticalAlignment="FILL"

-	         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>

-			</ComboViewer.control.layoutData>

-		</ComboViewer>

-		<Button name="Button" text="Add Person" SelectionEvent="addPerson" />

-		<ComboViewer name="ComboViewer2" input="{StaticResource viewSource}">

-			<ComboViewer.contentProvider>

-				<ObservableListContentProvider/>

-			</ComboViewer.contentProvider>

-			<ComboViewer.labelProvider>

-				<j:LabelProvider/>

-			</ComboViewer.labelProvider>

-			<ComboViewer.control.layoutData>

-				<GridData horizontalAlignment="FILL" verticalAlignment="FILL"

-	         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>

-			</ComboViewer.control.layoutData>

-		</ComboViewer>

-	</Composite>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_Simple.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_Simple.java
deleted file mode 100644
index 7ffbfaf..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_Simple.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.comboviewer.collection;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.IObservableCollection;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class ComboViewer_Simple {

-	public static void main(String[] args) {

-

-		URL url = ComboViewer_Simple.class.getResource(ComboViewer_Simple.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void addPerson(Object sender, Event event) {

-		org.eclipse.jface.viewers.Viewer viewer = (org.eclipse.jface.viewers.Viewer) XWT

-				.findElementByName(event.widget, "ListViewer");

-		IObservableCollection collection = (IObservableCollection) viewer

-				.getInput();

-		Employee employee = new Employee();

-		employee.setName("New hired one");

-		collection.add(employee);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_Simple.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_Simple.xwt
deleted file mode 100644
index b6f91ab..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_Simple.xwt
+++ /dev/null
@@ -1,27 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.comboviewer.collection"

-    x:Class="org.eclipse.xwt.tests.jface.comboviewer.collection.ComboViewer"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<j:Employee Name="Thomas"/>

-				<j:Employee Name="Jin"/>

-			</j:Company.employees>

-		</j:Company>

-	</Composite.resources>

-	<ComboViewer name="ComboViewer" input="{Binding Path=employees}">

-		<ComboViewer.labelProvider>

-			<j:LabelProvider/>

-		</ComboViewer.labelProvider>

-		<ComboViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>

-		</ComboViewer.control.layoutData>

-	</ComboViewer>

-	<Button name="Button" text="Add Person" SelectionEvent="addPerson" />

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/Company.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/Company.java
deleted file mode 100644
index 167ad1c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/Company.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.comboviewer.collection;

-

-import java.util.Collection;

-

-public class Company {

-	protected Collection<Employee> employees;

-

-	public Company() {

-	}

-

-	public Collection<Employee> getEmployees() {

-		return employees;

-	}

-

-	public void setEmployees(Collection<Employee> employees) {

-		this.employees = employees;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ContentProvider.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ContentProvider.java
deleted file mode 100644
index 025aca7..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ContentProvider.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.comboviewer.collection;

-

-import java.util.Collection;

-

-import org.eclipse.jface.viewers.IStructuredContentProvider;

-import org.eclipse.jface.viewers.Viewer;

-

-public class ContentProvider implements IStructuredContentProvider {

-	static Object[] EMPTY = new Object[] {};

-

-	public ContentProvider() {

-	}

-

-	public Object[] getElements(Object inputElement) {

-		if (inputElement instanceof Collection) {

-			Collection collection = (Collection) inputElement;

-			return collection.toArray();

-		} else if (inputElement instanceof Object[]) {

-			return (Object[]) inputElement;

-		}

-		return EMPTY;

-	}

-

-	public void dispose() {

-	}

-

-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/Employee.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/Employee.java
deleted file mode 100644
index 1a859ed..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/Employee.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.comboviewer.collection;

-

-public class Employee {

-	protected String name;

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/JFaceComboViewer_CollectionTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/JFaceComboViewer_CollectionTests.java
deleted file mode 100644
index 775ce52..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/JFaceComboViewer_CollectionTests.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.comboviewer.collection;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.IObservableCollection;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class JFaceComboViewer_CollectionTests extends XWTTestCase {

-

-	public void test_ComboViewer() throws Exception {

-		URL url = JFaceComboViewer_CollectionTests.class

-				.getResource(ComboViewer.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkListViewer();

-			}

-

-			public void checkListViewer() {

-				Object element = XWT.findElementByName(root, "ComboViewer");

-				assertTrue(element instanceof org.eclipse.jface.viewers.ComboViewer);

-				org.eclipse.jface.viewers.ComboViewer comboViewer = (org.eclipse.jface.viewers.ComboViewer) element;

-				String[] items = comboViewer.getCombo().getItems();

-				assertTrue(items.length == 2);

-				assertEquals(items[0], "Thomas");

-				assertEquals(items[1], "Jin");

-			}

-		});

-	}

-

-	public void test_ComboViewer_Simple() throws Exception {

-		URL url = JFaceComboViewer_CollectionTests.class

-				.getResource(ComboViewer_Simple.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkListViewer();

-			}

-

-			public void checkListViewer() {

-				Object element = XWT.findElementByName(root, "ComboViewer");

-				assertTrue(element instanceof org.eclipse.jface.viewers.ComboViewer);

-				org.eclipse.jface.viewers.ComboViewer comboViewer = (org.eclipse.jface.viewers.ComboViewer) element;

-				String[] items = comboViewer.getCombo().getItems();

-				assertTrue(items.length == 2);

-				assertEquals(items[0], "Thomas");

-				assertEquals(items[1], "Jin");

-			}

-		});

-	}

-

-	public void test_ComboViewer_DataBinding() {

-		URL url = JFaceComboViewer_CollectionTests.class

-				.getResource(ComboViewer.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button button = (Button) XWT.findElementByName(root, "Button");

-				selectButton(button);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				org.eclipse.jface.viewers.ComboViewer comboViewer = (org.eclipse.jface.viewers.ComboViewer) XWT

-						.findElementByName(root, "ComboViewer");

-				assertTrue(comboViewer.getInput() instanceof IObservableCollection);

-				IObservableCollection collection = (IObservableCollection) comboViewer

-						.getInput();

-				assertTrue(collection.size() == 3);

-			}

-		});

-	}

-

-	public void test_ComboViewer_BindingPath() {

-		URL url = JFaceComboViewer_CollectionTests.class

-				.getResource(ComboViewer_BindingPath.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button button = (Button) XWT.findElementByName(root, "Button");

-				selectButton(button);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				org.eclipse.jface.viewers.ComboViewer comboViewer = (org.eclipse.jface.viewers.ComboViewer) XWT

-						.findElementByName(root, "ComboViewer");

-				assertTrue(comboViewer.getInput() instanceof IObservableCollection);

-				IObservableCollection collection = (IObservableCollection) comboViewer

-						.getInput();

-				assertTrue(collection.size() == 3);

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/LabelProvider.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/LabelProvider.java
deleted file mode 100644
index 15c5117..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/LabelProvider.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.comboviewer.collection;

-

-import org.eclipse.jface.viewers.ILabelProvider;

-import org.eclipse.jface.viewers.ILabelProviderListener;

-import org.eclipse.swt.graphics.Image;

-

-public class LabelProvider implements ILabelProvider {

-

-	public Image getImage(Object element) {

-		return null;

-	}

-

-	public String getText(Object element) {

-		if (element instanceof Employee) {

-			Employee employee = (Employee) element;

-			return employee.getName();

-		}

-		return element.toString();

-	}

-

-	public void addListener(ILabelProviderListener listener) {

-	}

-

-	public void dispose() {

-	}

-

-	public boolean isLabelProperty(Object element, String property) {

-		return false;

-	}

-

-	public void removeListener(ILabelProviderListener listener) {

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ComboViewer_enum.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ComboViewer_enum.java
deleted file mode 100644
index f92fb7d..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ComboViewer_enum.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.comboviewer.enumeration;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class ComboViewer_enum {

-	public static void main(String[] args) {

-

-		URL url = ComboViewer_enum.class.getResource(ComboViewer_enum.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ComboViewer_enum.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ComboViewer_enum.xwt
deleted file mode 100644
index f501f73..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ComboViewer_enum.xwt
+++ /dev/null
@@ -1,23 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.comboviewer.enumeration"

-    x:Class="j:ComboViewer"

-    DataContext="{StaticResource myEmployee}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.resources>

-		<j:Employee x:Key="myEmployee" Name="Julien" employeeType="FullTime">

-		</j:Employee>

-	</Composite.resources>

-	<ComboViewer name="ComboViewer"

-		input="{Binding source={x:Type j:EmployeeType}}">

-		<ComboViewer.contentProvider>

-			<ObservableListContentProvider/>

-		</ComboViewer.contentProvider>

-		<ComboViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>

-		</ComboViewer.control.layoutData>

-	</ComboViewer>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ComboViewer_enum_singleSelection.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ComboViewer_enum_singleSelection.java
deleted file mode 100644
index 2d598d3..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ComboViewer_enum_singleSelection.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.comboviewer.enumeration;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class ComboViewer_enum_singleSelection {

-	public static void main(String[] args) {

-

-		URL url = ComboViewer_enum_singleSelection.class.getResource(ComboViewer_enum_singleSelection.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ComboViewer_enum_singleSelection.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ComboViewer_enum_singleSelection.xwt
deleted file mode 100644
index 503fa0d..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ComboViewer_enum_singleSelection.xwt
+++ /dev/null
@@ -1,24 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.comboviewer.enumeration"

-    x:Class="j:ComboViewer"

-    DataContext="{StaticResource myEmployee}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.resources>

-		<j:Employee x:Key="myEmployee" Name="Julien" employeeType="FullTime">

-		</j:Employee>

-	</Composite.resources>

-	<ComboViewer name="ComboViewer" 

-		singleSelection="{Binding path=employeeType}"

-		input="{Binding source={x:Type j:EmployeeType}}">

-		<ComboViewer.contentProvider>

-			<ObservableListContentProvider/>

-		</ComboViewer.contentProvider>

-		<ComboViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>

-		</ComboViewer.control.layoutData>

-	</ComboViewer>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ContentProvider.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ContentProvider.java
deleted file mode 100644
index 80f18ef..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ContentProvider.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.comboviewer.enumeration;

-

-import java.util.Collection;

-

-import org.eclipse.jface.viewers.IStructuredContentProvider;

-import org.eclipse.jface.viewers.Viewer;

-

-public class ContentProvider implements IStructuredContentProvider {

-	static Object[] EMPTY = new Object[] {};

-

-	public ContentProvider() {

-	}

-

-	public Object[] getElements(Object inputElement) {

-		if (inputElement instanceof Collection) {

-			Collection collection = (Collection) inputElement;

-			return collection.toArray();

-		} else if (inputElement instanceof Object[]) {

-			return (Object[]) inputElement;

-		}

-		return EMPTY;

-	}

-

-	public void dispose() {

-	}

-

-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/Employee.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/Employee.java
deleted file mode 100644
index 125dd80..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/Employee.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.comboviewer.enumeration;

-

-public class Employee {

-	protected String name;

-	protected EmployeeType employeeType;

-

-	public EmployeeType getEmployeeType() {

-		return employeeType;

-	}

-

-	public void setEmployeeType(EmployeeType employeeType) {

-		this.employeeType = employeeType;

-	}

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/EmployeeType.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/EmployeeType.java
deleted file mode 100644
index 678c0ce..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/EmployeeType.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.comboviewer.enumeration;

-

-public enum EmployeeType {

-	Unemployed, FullTime, PartialTime; 

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/JFaceComboViewer_EnumTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/JFaceComboViewer_EnumTests.java
deleted file mode 100644
index f7a3b89..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/JFaceComboViewer_EnumTests.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.comboviewer.enumeration;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.list.WritableList;

-import org.eclipse.jface.viewers.IStructuredSelection;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class JFaceComboViewer_EnumTests extends XWTTestCase {

-

-	public void test_ComboViewer_enum() throws Exception {

-		URL url = JFaceComboViewer_EnumTests.class

-				.getResource(ComboViewer_enum.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkListViewer();

-			}

-

-			public void checkListViewer() {

-				Object element = XWT.findElementByName(root, "ComboViewer");

-				assertTrue(element instanceof org.eclipse.jface.viewers.ComboViewer);

-				org.eclipse.jface.viewers.ComboViewer comboViewer = (org.eclipse.jface.viewers.ComboViewer) element;

-				String[] items = comboViewer.getCombo().getItems();

-				assertTrue(items.length == 3);

-				Object input = comboViewer.getInput();

-				assertTrue(input instanceof WritableList);

-				WritableList list = (WritableList) input;

-				assertTrue(list.contains(EmployeeType.FullTime));

-				assertTrue(list.contains(EmployeeType.PartialTime));

-				assertTrue(list.contains(EmployeeType.Unemployed));

-			}

-		});

-	}

-

-	public void test_ComboViewer_enum_singleSelection() throws Exception {

-		URL url = JFaceComboViewer_EnumTests.class

-				.getResource(ComboViewer_enum_singleSelection.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkListViewer();

-			}

-

-			public void checkListViewer() {

-				Object element = XWT.findElementByName(root, "ComboViewer");

-				assertTrue(element instanceof org.eclipse.jface.viewers.ComboViewer);

-				org.eclipse.jface.viewers.ComboViewer comboViewer = (org.eclipse.jface.viewers.ComboViewer) element;

-				String[] items = comboViewer.getCombo().getItems();

-				assertTrue(items.length == 3);

-				IStructuredSelection selection = (IStructuredSelection) comboViewer.getSelection();

-				assertTrue(selection.size() == 1);

-				assertEquals(selection.getFirstElement(), EmployeeType.FullTime);

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/dialog/TitleAreaDialog.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/dialog/TitleAreaDialog.java
deleted file mode 100644
index 1656daa..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/dialog/TitleAreaDialog.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.dialog;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class TitleAreaDialog {

-	public static void main(String[] args) {

-

-		URL url = TitleAreaDialog.class.getResource(TitleAreaDialog.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/dialog/TitleAreaDialog.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/dialog/TitleAreaDialog.xwt
deleted file mode 100644
index 14bc254..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/dialog/TitleAreaDialog.xwt
+++ /dev/null
@@ -1,3 +0,0 @@
-<TitleAreaDialog xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt">

-</TitleAreaDialog>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/Company.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/Company.java
deleted file mode 100644
index 83be5b9..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/Company.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.listviewer.array;

-

-public class Company {

-	protected Employee[] employees;

-

-	public Company() {

-	}

-

-	public Employee[] getEmployees() {

-		return employees;

-	}

-

-	public void setEmployees(Employee[] employees) {

-		this.employees = employees;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/ContentProvider.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/ContentProvider.java
deleted file mode 100644
index bd340b9..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/ContentProvider.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.listviewer.array;

-

-import java.util.Collection;

-

-import org.eclipse.jface.viewers.IStructuredContentProvider;

-import org.eclipse.jface.viewers.Viewer;

-

-public class ContentProvider implements IStructuredContentProvider {

-	static Object[] EMPTY = new Object[] {};

-

-	public ContentProvider() {

-	}

-

-	public Object[] getElements(Object inputElement) {

-		if (inputElement instanceof Collection) {

-			Collection collection = (Collection) inputElement;

-			return collection.toArray();

-		} else if (inputElement instanceof Object[]) {

-			return (Object[]) inputElement;

-		}

-		return EMPTY;

-	}

-

-	public void dispose() {

-	}

-

-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/Employee.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/Employee.java
deleted file mode 100644
index ccca051..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/Employee.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.listviewer.array;

-

-public class Employee {

-	protected String name;

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/JFaceListViewer_ArrayTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/JFaceListViewer_ArrayTests.java
deleted file mode 100644
index b292364..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/JFaceListViewer_ArrayTests.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.listviewer.array;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.IObservableCollection;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-import org.eclipse.xwt.tests.jface.listviewer.collection.JFaceListViewer_CollectionTests;

-import org.eclipse.xwt.tests.jface.listviewer.collection.ListViewer;

-

-public class JFaceListViewer_ArrayTests extends XWTTestCase {

-

-	public void testListViewer() throws Exception {

-		URL url = JFaceListViewer_ArrayTests.class.getResource(ListViewer.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkListViewer();

-			}

-

-			public void checkListViewer() {

-				Object element = XWT.findElementByName(root, "ListViewer");

-				assertTrue(element instanceof org.eclipse.jface.viewers.ListViewer);

-				org.eclipse.jface.viewers.ListViewer listViewer = (org.eclipse.jface.viewers.ListViewer) element;

-				String[] items = listViewer.getList().getItems();

-				assertTrue(items.length == 2);

-				assertEquals(items[0], "Thomas");

-				assertEquals(items[1], "Jin");

-			}

-		});

-	}

-

-	public void test_ListViewer_DataBinding() {

-		URL url = JFaceListViewer_CollectionTests.class

-				.getResource(ListViewer.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button button = (Button) XWT.findElementByName(root, "Button");

-				selectButton(button);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				org.eclipse.jface.viewers.ListViewer listView = (org.eclipse.jface.viewers.ListViewer) XWT

-						.findElementByName(root, "ListViewer");

-				assertTrue(listView.getInput() instanceof IObservableCollection);

-				IObservableCollection collection = (IObservableCollection) listView

-						.getInput();

-				assertTrue(collection.size() == 3);

-			}

-		});

-	}

-

-	// TODO add Font and Color

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/LabelProvider.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/LabelProvider.java
deleted file mode 100644
index 0aaa504..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/LabelProvider.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.listviewer.array;

-

-import org.eclipse.jface.viewers.ILabelProvider;

-import org.eclipse.jface.viewers.ILabelProviderListener;

-import org.eclipse.swt.graphics.Image;

-

-public class LabelProvider implements ILabelProvider {

-

-	public Image getImage(Object element) {

-		return null;

-	}

-

-	public String getText(Object element) {

-		if (element instanceof Employee) {

-			Employee employee = (Employee) element;

-			return employee.getName();

-		}

-		return element.toString();

-	}

-

-	public void addListener(ILabelProviderListener listener) {

-	}

-

-	public void dispose() {

-	}

-

-	public boolean isLabelProperty(Object element, String property) {

-		return false;

-	}

-

-	public void removeListener(ILabelProviderListener listener) {

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/ListViewer.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/ListViewer.java
deleted file mode 100644
index 6b0b1f8..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/ListViewer.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.listviewer.array;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.IObservableCollection;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class ListViewer {

-	public static void main(String[] args) {

-

-		URL url = ListViewer.class.getResource(ListViewer.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void addPerson(Object sender, Event event) {

-		org.eclipse.jface.viewers.Viewer viewer = (org.eclipse.jface.viewers.Viewer) XWT

-				.findElementByName(event.widget, "ListViewer");

-		IObservableCollection collection = (IObservableCollection) viewer

-				.getInput();

-		Employee employee = new Employee();

-		employee.setName("New hired one");

-		collection.add(employee);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/ListViewer.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/ListViewer.xwt
deleted file mode 100644
index 427374f..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/ListViewer.xwt
+++ /dev/null
@@ -1,32 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.listviewer.array"

-    x:Class="org.eclipse.xwt.tests.jface.listviewer.array.ListViewer"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<x:Array Type="j:Employee">

-					<j:Employee Name="Thomas"/>

-					<j:Employee Name="Jin"/>

-				</x:Array>

-			</j:Company.employees>

-		</j:Company>

-	</Composite.resources>

-	<ListViewer name="ListViewer" input="{Binding Path=employees}">

-		<ListViewer.contentProvider>

-			<j:ContentProvider/>

-		</ListViewer.contentProvider>

-		<ListViewer.labelProvider>

-			<j:LabelProvider/>

-		</ListViewer.labelProvider>

-		<ListViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>

-		</ListViewer.control.layoutData>

-	</ListViewer>

-	<Button name="Button" text="Add Person" SelectionEvent="addPerson" />

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/Company.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/Company.java
deleted file mode 100644
index 0faddca..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/Company.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.listviewer.collection;

-

-import java.util.Collection;

-

-public class Company {

-	protected Collection<Employee> employees;

-

-	public Company() {

-	}

-

-	public Collection<Employee> getEmployees() {

-		return employees;

-	}

-

-	public void setEmployees(Collection<Employee> employees) {

-		this.employees = employees;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ContentProvider.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ContentProvider.java
deleted file mode 100644
index 0651878..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ContentProvider.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.listviewer.collection;

-

-import java.util.Collection;

-

-import org.eclipse.jface.viewers.IStructuredContentProvider;

-import org.eclipse.jface.viewers.Viewer;

-

-public class ContentProvider implements IStructuredContentProvider {

-	static Object[] EMPTY = new Object[] {};

-

-	public ContentProvider() {

-	}

-

-	public Object[] getElements(Object inputElement) {

-		if (inputElement instanceof Collection) {

-			Collection collection = (Collection) inputElement;

-			return collection.toArray();

-		} else if (inputElement instanceof Object[]) {

-			return (Object[]) inputElement;

-		}

-		return EMPTY;

-	}

-

-	public void dispose() {

-	}

-

-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/Employee.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/Employee.java
deleted file mode 100644
index e2fca1c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/Employee.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.listviewer.collection;

-

-public class Employee {

-	protected String name;

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/JFaceListViewer_CollectionTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/JFaceListViewer_CollectionTests.java
deleted file mode 100644
index 2ba33c8..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/JFaceListViewer_CollectionTests.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.listviewer.collection;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.IObservableCollection;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class JFaceListViewer_CollectionTests extends XWTTestCase {

-

-	public void testListViewer() throws Exception {

-		URL url = JFaceListViewer_CollectionTests.class

-				.getResource(ListViewer.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkListViewer();

-			}

-

-			public void checkListViewer() {

-				Object element = XWT.findElementByName(root, "ListViewer");

-				assertTrue(element instanceof org.eclipse.jface.viewers.ListViewer);

-				org.eclipse.jface.viewers.ListViewer listViewer = (org.eclipse.jface.viewers.ListViewer) element;

-				String[] items = listViewer.getList().getItems();

-				assertTrue(items.length == 2);

-				assertEquals(items[0], "Thomas");

-				assertEquals(items[1], "Jin");

-			}

-		});

-	}

-

-	public void testListViewer_Simple() throws Exception {

-		URL url = JFaceListViewer_CollectionTests.class

-				.getResource(ListViewer_Simple.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkListViewer();

-			}

-

-			public void checkListViewer() {

-				Object element = XWT.findElementByName(root, "ListViewer");

-				assertTrue(element instanceof org.eclipse.jface.viewers.ListViewer);

-				org.eclipse.jface.viewers.ListViewer listViewer = (org.eclipse.jface.viewers.ListViewer) element;

-				String[] items = listViewer.getList().getItems();

-				assertTrue(items.length == 2);

-				assertEquals(items[0], "Thomas");

-				assertEquals(items[1], "Jin");

-			}

-		});

-	}

-

-	public void test_ListViewer_DataBinding() {

-		URL url = JFaceListViewer_CollectionTests.class

-				.getResource(ListViewer.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button button = (Button) XWT.findElementByName(root, "Button");

-				selectButton(button);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				org.eclipse.jface.viewers.ListViewer listView = (org.eclipse.jface.viewers.ListViewer) XWT

-						.findElementByName(root, "ListViewer");

-				assertTrue(listView.getInput() instanceof IObservableCollection);

-				IObservableCollection collection = (IObservableCollection) listView

-						.getInput();

-				assertTrue(collection.size() == 3);

-			}

-		});

-	}

-

-	public void test_ListViewer_BindingPath() {

-		URL url = JFaceListViewer_CollectionTests.class

-				.getResource(ListViewer_BindingPath.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button button = (Button) XWT.findElementByName(root, "Button");

-				selectButton(button);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				org.eclipse.jface.viewers.ListViewer listView = (org.eclipse.jface.viewers.ListViewer) XWT

-						.findElementByName(root, "ListViewer");

-				assertTrue(listView.getInput() instanceof IObservableCollection);

-				IObservableCollection collection = (IObservableCollection) listView

-						.getInput();

-				assertTrue(collection.size() == 3);

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/LabelProvider.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/LabelProvider.java
deleted file mode 100644
index 2dd5875..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/LabelProvider.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.listviewer.collection;

-

-import org.eclipse.jface.viewers.ILabelProvider;

-import org.eclipse.jface.viewers.ILabelProviderListener;

-import org.eclipse.swt.graphics.Image;

-

-public class LabelProvider implements ILabelProvider {

-

-	public Image getImage(Object element) {

-		return null;

-	}

-

-	public String getText(Object element) {

-		if (element instanceof Employee) {

-			Employee employee = (Employee) element;

-			return employee.getName();

-		}

-		return element.toString();

-	}

-

-	public void addListener(ILabelProviderListener listener) {

-	}

-

-	public void dispose() {

-	}

-

-	public boolean isLabelProperty(Object element, String property) {

-		return false;

-	}

-

-	public void removeListener(ILabelProviderListener listener) {

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer.java
deleted file mode 100644
index 5609f9f..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.listviewer.collection;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.IObservableCollection;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class ListViewer {

-	public static void main(String[] args) {

-

-		URL url = ListViewer.class.getResource(ListViewer.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void addPerson(Object sender, Event event) {

-		org.eclipse.jface.viewers.Viewer viewer = (org.eclipse.jface.viewers.Viewer) XWT

-				.findElementByName(event.widget, "ListViewer");

-		IObservableCollection collection = (IObservableCollection) viewer

-				.getInput();

-		Employee employee = new Employee();

-		employee.setName("New hired one");

-		collection.add(employee);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer.xwt
deleted file mode 100644
index 985c004..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer.xwt
+++ /dev/null
@@ -1,30 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.listviewer.collection"

-    x:Class="org.eclipse.xwt.tests.jface.listviewer.collection.ListViewer"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<j:Employee Name="Thomas"/>

-				<j:Employee Name="Jin"/>

-			</j:Company.employees>

-		</j:Company>

-	</Composite.resources>

-	<ListViewer name="ListViewer" input="{Binding Path=employees}">

-		<ListViewer.contentProvider>

-			<ObservableListContentProvider/>

-		</ListViewer.contentProvider>

-		<ListViewer.labelProvider>

-			<j:LabelProvider/>

-		</ListViewer.labelProvider>

-		<ListViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>

-		</ListViewer.control.layoutData>

-	</ListViewer>

-	<Button name="Button" text="Add Person" SelectionEvent="addPerson" />

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_BindingPath.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_BindingPath.java
deleted file mode 100644
index f63bd73..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_BindingPath.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.listviewer.collection;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.IObservableCollection;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class ListViewer_BindingPath {

-	public static void main(String[] args) {

-

-		URL url = ListViewer_BindingPath.class

-				.getResource(ListViewer_BindingPath.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void addPerson(Object sender, Event event) {

-		org.eclipse.jface.viewers.Viewer viewer = (org.eclipse.jface.viewers.Viewer) XWT

-				.findElementByName(event.widget, "ListViewer");

-		IObservableCollection collection = (IObservableCollection) viewer

-				.getInput();

-		Employee employee = new Employee();

-		employee.setName("New hired one");

-		collection.add(employee);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_BindingPath.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_BindingPath.xwt
deleted file mode 100644
index c1dc724..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_BindingPath.xwt
+++ /dev/null
@@ -1,24 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.listviewer.collection"

-    x:Class="org.eclipse.xwt.tests.jface.listviewer.collection.ListViewer"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<j:Employee Name="Thomas"/>

-				<j:Employee Name="Jin"/>

-			</j:Company.employees>

-		</j:Company>

-	</Composite.resources>

-	<ListViewer name="ListViewer" input="{Binding Path=employees}" bindingPath="name">

-		<ListViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>

-		</ListViewer.control.layoutData>

-	</ListViewer>

-	<Button name="Button" text="Add Person" SelectionEvent="addPerson" />

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_CollectionViewSource.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_CollectionViewSource.java
deleted file mode 100644
index 097506b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_CollectionViewSource.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.listviewer.collection;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.IObservableCollection;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class ListViewer_CollectionViewSource {

-	public static void main(String[] args) {

-

-		URL url = ListViewer_CollectionViewSource.class

-				.getResource(ListViewer_CollectionViewSource.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void addPerson(Object sender, Event event) {

-		org.eclipse.jface.viewers.Viewer viewer = (org.eclipse.jface.viewers.Viewer) XWT

-				.findElementByName(event.widget, "ListViewer1");

-		IObservableCollection collection = (IObservableCollection) viewer

-				.getInput();

-		Employee employee = new Employee();

-		employee.setName("New hired one");

-		collection.add(employee);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_CollectionViewSource.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_CollectionViewSource.xwt
deleted file mode 100644
index 292ead2..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_CollectionViewSource.xwt
+++ /dev/null
@@ -1,54 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.listviewer.collection"

-    x:Class="org.eclipse.xwt.tests.jface.listviewer.collection.ListViewer_CollectionViewSource"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<FillLayout/>

-	</Composite.layout>

-	<Composite.resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<j:Employee Name="Thomas"/>

-				<j:Employee Name="Jin"/>

-			</j:Company.employees>

-		</j:Company>

-		<CollectionViewSource x:Key="viewSource" source="{Binding Path=employees}"/>

-	</Composite.resources>

-

-	<Composite>

-		<Composite.layout>

-			<GridLayout numColumns="2"/>

-		</Composite.layout>

-			

-		<Composite.resources>

-			<CollectionViewSource x:Key="viewSource" source="{Binding Path=employees}"/>

-		</Composite.resources>

-		

-		<ListViewer name="ListViewer1" input="{StaticResource viewSource}">

-			<ListViewer.contentProvider>

-				<ObservableListContentProvider/>

-			</ListViewer.contentProvider>

-			<ListViewer.labelProvider>

-				<j:LabelProvider/>

-			</ListViewer.labelProvider>

-			<ListViewer.control.layoutData>

-				<GridData horizontalAlignment="FILL" verticalAlignment="FILL"

-	         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>

-			</ListViewer.control.layoutData>

-		</ListViewer>

-		<Button name="Button" text="Add Person" SelectionEvent="addPerson" />

-		<ListViewer name="ListViewer2" input="{StaticResource viewSource}">

-			<ListViewer.contentProvider>

-				<ObservableListContentProvider/>

-			</ListViewer.contentProvider>

-			<ListViewer.labelProvider>

-				<j:LabelProvider/>

-			</ListViewer.labelProvider>

-			<ListViewer.control.layoutData>

-				<GridData horizontalAlignment="FILL" verticalAlignment="FILL"

-	         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>

-			</ListViewer.control.layoutData>

-		</ListViewer>

-	</Composite>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_Simple.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_Simple.java
deleted file mode 100644
index 3756c0e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_Simple.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.listviewer.collection;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.IObservableCollection;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class ListViewer_Simple {

-	public static void main(String[] args) {

-

-		URL url = ListViewer_Simple.class.getResource(ListViewer_Simple.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void addPerson(Object sender, Event event) {

-		org.eclipse.jface.viewers.Viewer viewer = (org.eclipse.jface.viewers.Viewer) XWT

-				.findElementByName(event.widget, "ListViewer");

-		IObservableCollection collection = (IObservableCollection) viewer

-				.getInput();

-		Employee employee = new Employee();

-		employee.setName("New hired one");

-		collection.add(employee);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_Simple.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_Simple.xwt
deleted file mode 100644
index b13169a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_Simple.xwt
+++ /dev/null
@@ -1,27 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.listviewer.collection"

-    x:Class="org.eclipse.xwt.tests.jface.listviewer.collection.ListViewer"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<j:Employee Name="Thomas"/>

-				<j:Employee Name="Jin"/>

-			</j:Company.employees>

-		</j:Company>

-	</Composite.resources>

-	<ListViewer name="ListViewer" input="{Binding Path=employees}">

-		<ListViewer.labelProvider>

-			<j:LabelProvider/>

-		</ListViewer.labelProvider>

-		<ListViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>

-		</ListViewer.control.layoutData>

-	</ListViewer>

-	<Button name="Button" text="Add Person" SelectionEvent="addPerson" />

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/Company.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/Company.java
deleted file mode 100644
index 69d01e2..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/Company.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer;

-

-public class Company {

-	protected Employee[] employees;

-

-	public Company() {

-	}

-

-	public Employee[] getEmployees() {

-		return employees;

-	}

-

-	public void setEmployees(Employee[] employees) {

-		this.employees = employees;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/ContentProvider.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/ContentProvider.java
deleted file mode 100644
index ccee32a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/ContentProvider.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer;

-

-import java.util.Collection;

-

-import org.eclipse.jface.viewers.IStructuredContentProvider;

-import org.eclipse.jface.viewers.Viewer;

-

-public class ContentProvider implements IStructuredContentProvider {

-	static Object[] EMPTY = new Object[] {};

-

-	public ContentProvider() {

-	}

-

-	public Object[] getElements(Object inputElement) {

-		if (inputElement instanceof Collection<?>) {

-			Collection<?> collection = (Collection<?>) inputElement;

-			return collection.toArray();

-		} else if (inputElement instanceof Object[]) {

-			return (Object[]) inputElement;

-		}

-		return EMPTY;

-	}

-

-	public void dispose() {

-	}

-

-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/Employee.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/Employee.java
deleted file mode 100644
index 918a7df..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/Employee.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer;

-

-public class Employee {

-	protected String name;

-	protected int age;

-

-	protected Sex sex;

-	

-	public Sex getSex() {

-		return sex;

-	}

-

-	public void setSex(Sex sex) {

-		this.sex = sex;

-	}

-

-	public int getAge() {

-		return age;

-	}

-

-	public void setAge(int age) {

-		this.age = age;

-	}

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/JFaceTableViewer_Tests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/JFaceTableViewer_Tests.java
deleted file mode 100644
index abe69d6..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/JFaceTableViewer_Tests.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer;

-

-import java.net.URL;

-

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.widgets.TableColumn;

-import org.eclipse.swt.widgets.TableItem;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class JFaceTableViewer_Tests extends XWTTestCase {

-

-	public void testTableViewer() throws Exception {

-		URL url = JFaceTableViewer_Tests.class

-				.getResource(TableViewer_Test.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkListViewer();

-			}

-

-			public void checkListViewer() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 2);

-				assertEquals(items[0].getText(0), "Thomas");

-				assertEquals(items[0].getText(1), "32");

-				assertEquals(items[1].getText(0), "Jin");

-				assertEquals(items[1].getText(1), "27");

-			}

-		});

-	}

-

-	public void testTableViewer_FullSelection() throws Exception {

-		URL url = JFaceTableViewer_Tests.class

-				.getResource(TableViewer_FullSelection.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkListViewer();

-			}

-

-			public void checkListViewer() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				assertEquals(tableViewer.getTable().getStyle()

-						& SWT.FULL_SELECTION, SWT.FULL_SELECTION);

-			}

-		});

-	}

-

-	public void testTableViewer_DataBinding() throws Exception {

-		URL url = JFaceTableViewer_Tests.class

-				.getResource(TableViewer_DataBinding.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkListViewer();

-			}

-

-			public void checkListViewer() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 2);

-				assertEquals(items[0].getText(0), "Thomas");

-				assertEquals(items[0].getText(1), "32");

-				assertEquals(items[1].getText(0), "Jin");

-				assertEquals(items[1].getText(1), "27");

-			}

-		});

-	}

-

-	public void testTableViewerColumns() throws Exception {

-		URL url = JFaceTableViewer_Tests.class

-				.getResource(TableViewerColumns_Test.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkListViewer();

-			}

-

-			public void checkListViewer() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 2);

-				assertEquals(items[0].getText(0), "Thomas");

-				assertEquals(items[0].getText(1), "32");

-				assertEquals(items[1].getText(0), "Jin");

-				assertEquals(items[1].getText(1), "27");

-			}

-		});

-	}

-

-	public void testTableViewerColumnProperties() throws Exception {

-		URL url = JFaceTableViewer_Tests.class

-				.getResource(TableViewer_ColumnProperties.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkListViewer();

-			}

-

-			public void checkListViewer() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				Object[] items = tableViewer.getColumnProperties();

-				assertTrue(items != null);

-				assertTrue(items.length == 2);

-				assertEquals(items[0], "Name");

-				assertEquals(items[1], "Age");

-			}

-		});

-	}

-

-	public void testTableViewerColumn_text() throws Exception {

-		URL url = JFaceTableViewer_Tests.class

-				.getResource(TableViewerColumn_text.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkListViewer();

-			}

-

-			public void checkListViewer() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableColumn[] columns = tableViewer.getTable().getColumns();

-				assertTrue(columns != null);

-				assertTrue(columns.length == 2);

-				assertEquals(columns[0].getText(), "column0");

-				assertEquals(columns[1].getText(), "column1");

-			}

-		});

-	}

-	

-	public void testTableViewerColumnsPath_bindingPath() throws Exception {

-		URL url = TableViewerColumn_bindingPath.class

-				.getResource(TableViewerColumn_bindingPath.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkListViewer();

-			}

-

-			public void checkListViewer() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 2);

-				assertEquals(items[0].getText(0), "Thomas");

-				assertEquals(items[0].getText(1), "32");

-				assertEquals(items[1].getText(0), "Jin");

-				assertEquals(items[1].getText(1), "27");

-			}

-		});

-	}

-	

-	public void testTableViewerColumnsPath_bindingPath_itemText() throws Exception {

-		URL url = TableViewerColumn_bindingPath.class

-				.getResource(TableViewerColumn_bindingPath_itemText.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkListViewer();

-			}

-

-			public void checkListViewer() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 3);

-				assertEquals(items[0].getText(0), "Thomas");

-				assertEquals(items[0].getText(1), "32");

-				assertNull(items[0].getImage(2));				

-				assertEquals(items[1].getText(0), "Jin");

-				assertEquals(items[1].getText(1), "27");

-				assertNull(items[1].getImage(2));				

-				assertEquals(items[2].getText(0), "Susan");

-				assertEquals(items[2].getText(1), "27");

-				assertNotNull(items[2].getImage(2));				

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/LabelProvider.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/LabelProvider.java
deleted file mode 100644
index 45967a1..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/LabelProvider.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer;

-

-import org.eclipse.jface.viewers.ILabelProviderListener;

-import org.eclipse.jface.viewers.ITableLabelProvider;

-import org.eclipse.swt.graphics.Image;

-

-public class LabelProvider implements ITableLabelProvider {

-

-	public LabelProvider() {

-	}

-

-	public void addListener(ILabelProviderListener listener) {

-	}

-

-	public void dispose() {

-	}

-

-	public boolean isLabelProperty(Object element, String property) {

-		return false;

-	}

-

-	public void removeListener(ILabelProviderListener listener) {

-	}

-

-	public Image getColumnImage(Object element, int columnIndex) {

-		// TODO Auto-generated method stub

-		return null;

-	}

-

-	public String getColumnText(Object element, int columnIndex) {

-		if (columnIndex == 0)

-			return ((Employee) element).getName();

-		if (columnIndex == 1)

-			return "" + ((Employee) element).getAge();

-		return "";

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/Sex.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/Sex.java
deleted file mode 100644
index 442efcb..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/Sex.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer;

-

-public enum Sex {

-	Male, Female;

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/SexToImage.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/SexToImage.java
deleted file mode 100644
index 37014bf..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/SexToImage.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer;

-

-import java.net.URL;

-

-import org.eclipse.swt.graphics.Image;

-import org.eclipse.xwt.IValueConverter;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.utils.ResourceManager;

-

-public class SexToImage implements IValueConverter {

-	public Object convertBack(Object value) {

-		return null;

-	}

-

-	public Object getFromType() {

-		return int.class;

-	}

-

-	public Object getToType() {

-		return Image.class;

-	}

-

-	public Object convert(Object fromObject) {

-		Sex sex = (Sex) fromObject;

-		if (sex == null) {

-			sex = Sex.Male;

-		}

-		switch (sex) {

-		case Female:

-			URL resource = SexToImage.class.getResource("female32.png");

-			return ResourceManager.resources.getImage(resource);

-		case Male:

-			resource = SexToImage.class.getResource("male32.png");

-			return ResourceManager.resources.getImage(resource);

-		default:

-			throw new XWTException("Unsupported Sex type");

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_FullSelection.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_FullSelection.java
deleted file mode 100644
index 0a282a1..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_FullSelection.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewerColumn_FullSelection {

-	public static void main(String[] args) {

-

-		URL url = TableViewerColumn_FullSelection.class

-				.getResource(TableViewerColumn_FullSelection.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_ItemImage.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_ItemImage.java
deleted file mode 100644
index 379bf98..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_ItemImage.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewerColumn_ItemImage {

-	public static void main(String[] args) {

-

-		URL url = TableViewerColumn_ItemImage.class

-				.getResource(TableViewerColumn_ItemImage.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_ItemImage.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_ItemImage.xwt
deleted file mode 100644
index 7b1fb3a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_ItemImage.xwt
+++ /dev/null
@@ -1,30 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<x:Array Type="j:Employee">

-					<j:Employee Name="Thomas" Age="32" sex="Male"/>

-					<j:Employee Name="Jin" Age="27" sex="Male"/>

-					<j:Employee Name="Susan" Age="27" sex="Female"/>

-				</x:Array>

-			</j:Company.employees>

-		</j:Company>

-	</Composite.Resources>

-	<TableViewer Name="TableViewer" input="{Binding Path=employees}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" itemText="{Binding path=name}"/>

-			<TableViewerColumn width="150" text="Age" itemText="{Binding path=age}" />

-			<TableViewerColumn width="150" text="Image" itemImage="{Binding path=sex,converter=j:SexToImage}" />

-		</TableViewer.columns>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_ItemText_ItemImage.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_ItemText_ItemImage.java
deleted file mode 100644
index 4715f7f..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_ItemText_ItemImage.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewerColumn_ItemText_ItemImage {

-	public static void main(String[] args) {

-

-		URL url = TableViewerColumn_ItemText_ItemImage.class

-				.getResource(TableViewerColumn_ItemText_ItemImage.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_ItemText_ItemImage.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_ItemText_ItemImage.xwt
deleted file mode 100644
index 9258ed0..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_ItemText_ItemImage.xwt
+++ /dev/null
@@ -1,30 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<x:Array Type="j:Employee">

-					<j:Employee Name="Thomas" Age="32"/>

-					<j:Employee Name="Jin" Age="27"/>

-					<j:Employee Name="Susan" Age="27" sex="Female"/>

-				</x:Array>

-			</j:Company.employees>

-		</j:Company>

-	</Composite.Resources>

-	<TableViewer Name="TableViewer" input="{Binding Path=employees}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" itemText="{Binding path=name}"/>

-			<TableViewerColumn width="150" text="Age" itemText="{Binding path=age}" />

-			<TableViewerColumn width="150" text="Image" itemImage="{Binding path=sex,converter=j:SexToImage}" itemText="{Binding path=sex}" />

-		</TableViewer.columns>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_Property.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_Property.java
deleted file mode 100644
index 26da1df..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_Property.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewerColumn_Property {

-	public static void main(String[] args) {

-

-		URL url = TableViewerColumn_Property.class

-				.getResource(TableViewerColumn_Property.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_Property.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_Property.xwt
deleted file mode 100644
index f28fe31..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_Property.xwt
+++ /dev/null
@@ -1,28 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<x:Array Type="j:Employee">

-					<j:Employee Name="Thomas" Age="32"/>

-					<j:Employee Name="Jin" Age="27"/>

-				</x:Array>

-			</j:Company.employees>

-		</j:Company>

-	</Composite.Resources>

-	<TableViewer Name="TableViewer" input="{Binding Path=employees}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath.java
deleted file mode 100644
index c802f5f..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewerColumn_bindingPath {

-	public static void main(String[] args) {

-

-		URL url = TableViewerColumn_bindingPath.class

-				.getResource(TableViewerColumn_bindingPath.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath.xwt
deleted file mode 100644
index f28fe31..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath.xwt
+++ /dev/null
@@ -1,28 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<x:Array Type="j:Employee">

-					<j:Employee Name="Thomas" Age="32"/>

-					<j:Employee Name="Jin" Age="27"/>

-				</x:Array>

-			</j:Company.employees>

-		</j:Company>

-	</Composite.Resources>

-	<TableViewer Name="TableViewer" input="{Binding Path=employees}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath_itemImage.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath_itemImage.java
deleted file mode 100644
index c3ded56..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath_itemImage.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewerColumn_bindingPath_itemImage {

-	public static void main(String[] args) {

-

-		URL url = TableViewerColumn_ItemImage.class

-				.getResource(TableViewerColumn_ItemImage.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath_itemImage.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath_itemImage.xwt
deleted file mode 100644
index b39e0f9..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath_itemImage.xwt
+++ /dev/null
@@ -1,30 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<x:Array Type="j:Employee">

-					<j:Employee Name="Thomas" Age="32" sex="male"/>

-					<j:Employee Name="Jin" Age="27" sex="male"/>

-					<j:Employee Name="Susan" Age="27" sex="female"/>

-				</x:Array>

-			</j:Company.employees>

-		</j:Company>

-	</Composite.Resources>

-	<TableViewer Name="TableViewer" input="{Binding Path=employees}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="{Binding}" itemText="{Binding path=name}"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="{Binding}" itemText="{Binding path=age}" />

-			<TableViewerColumn width="150" text="Image" bindingPath="{Binding}" itemImage="{Binding path=sex,converter=j:SexToImage}" />

-		</TableViewer.columns>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath_itemText.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath_itemText.java
deleted file mode 100644
index e0c9d4b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath_itemText.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewerColumn_bindingPath_itemText {

-	public static void main(String[] args) {

-

-		URL url = TableViewerColumn_bindingPath_itemText.class

-				.getResource(TableViewerColumn_bindingPath_itemText.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath_itemText.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath_itemText.xwt
deleted file mode 100644
index 314346e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath_itemText.xwt
+++ /dev/null
@@ -1,30 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<x:Array Type="j:Employee">

-					<j:Employee Name="Thomas" Age="32"/>

-					<j:Employee Name="Jin" Age="27"/>

-					<j:Employee Name="Susan" Age="27" sex="Female"/>

-				</x:Array>

-			</j:Company.employees>

-		</j:Company>

-	</Composite.Resources>

-	<TableViewer Name="TableViewer" input="{Binding Path=employees}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-			<TableViewerColumn width="150" text="Sex" bindingPath="sex" itemImage="{Binding converter=j:SexToImage}" />

-		</TableViewer.columns>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_itemText.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_itemText.java
deleted file mode 100644
index ce7a765..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_itemText.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewerColumn_itemText {

-	public static void main(String[] args) {

-

-		URL url = TableViewerColumn_itemText.class

-				.getResource(TableViewerColumn_itemText.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_text.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_text.java
deleted file mode 100644
index 81b7517..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_text.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewerColumn_text {

-	public static void main(String[] args) {

-

-		URL url = TableViewerColumn_text.class

-				.getResource(TableViewerColumn_text.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_text.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_text.xwt
deleted file mode 100644
index 8f69ab8..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_text.xwt
+++ /dev/null
@@ -1,9 +0,0 @@
-<TableViewer xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:java.lang"

-    Name="TableViewer">

-	<TableViewer.columns>

-		<TableViewerColumn width="80" text="column0"/>

-		<TableViewerColumn width="80" text="column1"/>

-	</TableViewer.columns>

-</TableViewer>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumns_Test.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumns_Test.java
deleted file mode 100644
index 15284b6..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumns_Test.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewerColumns_Test {

-	public static void main(String[] args) {

-

-		URL url = TableViewerColumns_Test.class

-				.getResource(TableViewerColumns_Test.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumns_Test.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumns_Test.xwt
deleted file mode 100644
index bdc8d44..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumns_Test.xwt
+++ /dev/null
@@ -1,37 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<x:Array Type="j:Employee">

-					<j:Employee Name="Thomas" Age="32"/>

-					<j:Employee Name="Jin" Age="27"/>

-				</x:Array>

-			</j:Company.employees>

-		</j:Company>

-	</Composite.Resources>

-	<TableViewer Name="TableViewer" input="{Binding Path=employees}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Column0"/>

-			<TableViewerColumn index="3" width="100" text="Column3"/>

-			<TableViewerColumn index="1" width="200" text="Column1"/>

-			<TableViewerColumn width="150" text="Column2"/>

-		</TableViewer.columns>

-		<TableViewer.contentProvider>

-			<j:ContentProvider/>

-		</TableViewer.contentProvider>

-		<TableViewer.labelProvider>

-			<j:LabelProvider/>

-		</TableViewer.labelProvider>

-		<TableViewer.table HeaderVisible="true"/>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-</Composite>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_ColumnProperties.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_ColumnProperties.java
deleted file mode 100644
index 38fc99e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_ColumnProperties.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewer_ColumnProperties {

-	public static void main(String[] args) {

-

-		URL url = TableViewer_ColumnProperties.class

-				.getResource(TableViewer_ColumnProperties.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_ColumnProperties.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_ColumnProperties.xwt
deleted file mode 100644
index 130e5f0..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_ColumnProperties.xwt
+++ /dev/null
@@ -1,13 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:java.lang">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<TableViewer Name="TableViewer">

-		<TableViewer.columnProperties>

-			<j:String>Name</j:String>

-			<j:String>Age</j:String>

-		</TableViewer.columnProperties>

-	</TableViewer>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_DataBinding.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_DataBinding.java
deleted file mode 100644
index 0d48aeb..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_DataBinding.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewer_DataBinding {

-	public static void main(String[] args) {

-

-		URL url = TableViewer_DataBinding.class

-				.getResource(TableViewer_DataBinding.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_DataBinding.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_DataBinding.xwt
deleted file mode 100644
index 4947821..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_DataBinding.xwt
+++ /dev/null
@@ -1,30 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<x:Array Type="j:Employee">

-					<j:Employee Name="Thomas" Age="32"/>

-					<j:Employee Name="Jin" Age="27"/>

-				</x:Array>

-			</j:Company.employees>

-		</j:Company>

-	</Composite.Resources>

-	<TableViewer Name="TableViewer" input="{Binding Path=employees}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_FullSelection.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_FullSelection.java
deleted file mode 100644
index 8f6bafe..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_FullSelection.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewer_FullSelection {

-	public static void main(String[] args) {

-

-		URL url = TableViewer_FullSelection.class

-				.getResource(TableViewer_FullSelection.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_FullSelection.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_FullSelection.xwt
deleted file mode 100644
index 2caa64b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_FullSelection.xwt
+++ /dev/null
@@ -1,13 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<TableViewer x:Style="FULL_SELECTION" Name="TableViewer">

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_Test.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_Test.java
deleted file mode 100644
index 1c85482..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_Test.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewer_Test {

-	public static void main(String[] args) {

-

-		URL url = TableViewer_Test.class.getResource(TableViewer_Test.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_Test.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_Test.xwt
deleted file mode 100644
index 620d22b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_Test.xwt
+++ /dev/null
@@ -1,34 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<x:Array Type="j:Employee">

-					<j:Employee Name="Thomas" Age="32"/>

-					<j:Employee Name="Jin" Age="27"/>

-				</x:Array>

-			</j:Company.employees>

-		</j:Company>

-	</Composite.Resources>

-	<TableViewer Name="TableViewer" input="{Binding Path=employees}">

-		<TableViewer.contentProvider>

-			<j:ContentProvider/>

-		</TableViewer.contentProvider>

-		<TableViewer.labelProvider>

-			<j:LabelProvider/>

-		</TableViewer.labelProvider>

-		<TableViewer.table HeaderVisible="true">

-			<TableColumn width="150" text="Name"/>

-			<TableColumn width="150" text="Age"/>

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/Company.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/Company.java
deleted file mode 100644
index d9a798b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/Company.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.editors;

-

-public class Company {

-	protected Employee[] employees;

-

-	public Company() {

-	}

-

-	public Employee[] getEmployees() {

-		return employees;

-	}

-

-	public void setEmployees(Employee[] employees) {

-		this.employees = employees;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/ContentProvider.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/ContentProvider.java
deleted file mode 100644
index c2bab30..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/ContentProvider.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.editors;

-

-import java.util.Collection;

-

-import org.eclipse.jface.viewers.IStructuredContentProvider;

-import org.eclipse.jface.viewers.Viewer;

-

-public class ContentProvider implements IStructuredContentProvider {

-	static Object[] EMPTY = new Object[] {};

-

-	public ContentProvider() {

-	}

-

-	public Object[] getElements(Object inputElement) {

-		if (inputElement instanceof Collection) {

-			Collection collection = (Collection) inputElement;

-			return collection.toArray();

-		} else if (inputElement instanceof Object[]) {

-			return (Object[]) inputElement;

-		}

-		return EMPTY;

-	}

-

-	public void dispose() {

-	}

-

-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/Employee.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/Employee.java
deleted file mode 100644
index 8b730d9..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/Employee.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.editors;

-

-import java.beans.PropertyChangeListener;

-import java.beans.PropertyChangeSupport;

-

-public class Employee {

-	private PropertyChangeSupport changeSupport = new PropertyChangeSupport(

-			this);

-

-	public void addPropertyChangeListener(String propertyName,

-			PropertyChangeListener listener) {

-		changeSupport.addPropertyChangeListener(propertyName, listener);

-	}

-

-	public void removePropertyChangeListener(String propertyName,

-			PropertyChangeListener listener) {

-		changeSupport.removePropertyChangeListener(propertyName, listener);

-	}

-

-	protected String name;

-	protected int age;

-

-	protected Sex sex;

-

-	public int getAge() {

-		return age;

-	}

-

-	public void setAge(int age) {

-		int oldValue = this.age;

-		this.age = age;

-		changeSupport.firePropertyChange("Age", oldValue, age);

-	}

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		String oldValue = name;

-		this.name = name;

-		changeSupport.firePropertyChange("Name", oldValue, name);

-	}

-

-	public Sex getSex() {

-		return sex;

-	}

-

-	public void setSex(Sex sex) {

-		Sex oldValue = this.sex;

-		this.sex = sex;

-		changeSupport.firePropertyChange("Name", oldValue, name);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/LabelProvider.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/LabelProvider.java
deleted file mode 100644
index 81999b7..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/LabelProvider.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.editors;

-

-import org.eclipse.jface.viewers.ILabelProviderListener;

-import org.eclipse.jface.viewers.ITableLabelProvider;

-import org.eclipse.swt.graphics.Image;

-

-public class LabelProvider implements ITableLabelProvider {

-

-	public void addListener(ILabelProviderListener listener) {

-	}

-

-	public void dispose() {

-	}

-

-	public boolean isLabelProperty(Object element, String property) {

-		return false;

-	}

-

-	public void removeListener(ILabelProviderListener listener) {

-	}

-

-	public Image getColumnImage(Object element, int columnIndex) {

-		// TODO Auto-generated method stub

-		return null;

-	}

-

-	public String getColumnText(Object element, int columnIndex) {

-		if (columnIndex == 0)

-			return ((Employee) element).getName();

-		if (columnIndex == 1)

-			return "" + ((Employee) element).getAge();

-		if (columnIndex == 2)

-			return "" + ((Employee) element).getSex();

-		return "";

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/Sex.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/Sex.java
deleted file mode 100644
index 0469879..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/Sex.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.editors;

-

-public enum Sex {

-	Male, Female;

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/TableViewer_Test.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/TableViewer_Test.java
deleted file mode 100644
index 37306f9..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/TableViewer_Test.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.editors;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewer_Test {

-	public static void main(String[] args) {

-

-		URL url = TableViewer_Test.class.getResource(TableViewer_Test.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/TableViewer_Test.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/TableViewer_Test.xwt
deleted file mode 100644
index aed846f..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/TableViewer_Test.xwt
+++ /dev/null
@@ -1,56 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.editors"

-    xmlns:k="clr-namespace:java.lang"

-    x:Class="org.eclipse.xwt.tests.jface.tableviewer.editors.TextHandler"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<x:Array Type="j:Employee">

-					<j:Employee Name="Thomas" Age="32" Sex="Female"/>

-					<j:Employee Name="Jin" Age="27" Sex="Male"/>

-				</x:Array>

-			</j:Company.employees>

-		</j:Company>

-	</Composite.Resources>

-	<TableViewer x:style="BORDER|SINGLE|FULL_SELECTION" input="{Binding Path=employees}">

-		<TableViewer.contentProvider>

-			<j:ContentProvider/>

-		</TableViewer.contentProvider>

-		<TableViewer.table HeaderVisible="true" LinesVisible="true">

-			<TableColumn width="150" text="Name"/>

-			<TableColumn width="150" text="Age"/>

-			<TableColumn width="150" text="Sex"/>

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-

-		<TableViewer.columnProperties>

-			<k:String>Name</k:String>

-			<k:String>Age</k:String>

-			<k:String>Sex</k:String>

-		</TableViewer.columnProperties>

-		

-		<TableViewer.cellEditors>

-		    <TextCellEditor/>

-		    <TextCellEditor>

-		    	<TextCellEditor.control VerifyEvent="verifyText"/>

-		    </TextCellEditor>

-		    <ComboBoxCellEditor>

-		    	<ComboBoxCellEditor.items>

-		    		<k:String>Male</k:String>

-		    		<k:String>Female</k:String>

-		    	</ComboBoxCellEditor.items>

-		    </ComboBoxCellEditor>

-		</TableViewer.cellEditors>

-		<TableViewer.cellModifier>

-			<DefaultCellModifier/>

-		</TableViewer.cellModifier>

-	</TableViewer>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/TextHandler.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/TextHandler.java
deleted file mode 100644
index 426c3c6..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/TextHandler.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.editors;

-

-import org.eclipse.swt.widgets.Event;

-

-public class TextHandler {

-	protected void verifyText(Event event) {

-		if (event.keyCode != 0) {

-			event.doit = "0123456789".indexOf(event.text) >= 0;

-		} else {

-			event.doit = true;

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/Company.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/Company.java
deleted file mode 100644
index e868d48..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/Company.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.filter;

-

-public class Company {

-	protected Employee[] employees;

-

-	public Company() {

-	}

-

-	public Employee[] getEmployees() {

-		return employees;

-	}

-

-	public void setEmployees(Employee[] employees) {

-		this.employees = employees;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/Employee.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/Employee.java
deleted file mode 100644
index dd6bf27..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/Employee.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.filter;

-

-public class Employee {

-	protected String name;

-	protected int age;

-

-	public int getAge() {

-		return age;

-	}

-

-	public void setAge(int age) {

-		this.age = age;

-	}

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/JFaceTableViewer_Filters_Tests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/JFaceTableViewer_Filters_Tests.java
deleted file mode 100644
index 8f533d2..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/JFaceTableViewer_Filters_Tests.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.filter;

-

-import java.net.URL;

-

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.swt.widgets.TableItem;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class JFaceTableViewer_Filters_Tests extends XWTTestCase {

-

-	public void testTableViewer() throws Exception {

-		URL url = JFaceTableViewer_Filters_Tests.class

-				.getResource(TableViewer_Test.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkListViewer();

-			}

-

-			public void checkListViewer() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 1);

-				assertEquals(items[0].getText(0), "Thomas");

-				assertEquals(items[0].getText(1), "32");

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/TableViewer_Test.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/TableViewer_Test.java
deleted file mode 100644
index 0ebd0ca..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/TableViewer_Test.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.filter;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewer_Test {

-	public static void main(String[] args) {

-

-		URL url = TableViewer_Test.class.getResource(TableViewer_Test.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/TableViewer_Test.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/TableViewer_Test.xwt
deleted file mode 100644
index d721780..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/TableViewer_Test.xwt
+++ /dev/null
@@ -1,37 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.filter"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<x:Array Type="j:Employee">

-					<j:Employee Name="Thomas" Age="32"/>

-					<j:Employee Name="Jin" Age="27"/>

-				</x:Array>

-			</j:Company.employees>

-		</j:Company>

-	</Composite.Resources>

-	<TableViewer Name="TableViewer" input="{Binding Path=employees}" >

-		<TableViewer.filters>

-			<ViewerFilter>

-				<ViewerFilter.conditions>

-					<Condition property="age" value="30" operator="GT"/>

-				</ViewerFilter.conditions>

-			</ViewerFilter>

-		</TableViewer.filters>

-		

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true"/>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/Company.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/Company.java
deleted file mode 100644
index 2804d57..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/Company.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail;

-

-import java.util.Collection;

-

-/**

- * 

- * @author yyang

- */

-public class Company {

-	protected String name;

-

-	protected Collection<Employee> employees;

-

-	public Company() {

-	}

-

-	public Collection<Employee> getEmployees() {

-		return employees;

-	}

-

-	public void setEmployees(Collection<Employee> employees) {

-		this.employees = employees;

-	}

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/Employee.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/Employee.java
deleted file mode 100644
index 3693987..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/Employee.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail;

-

-public class Employee {

-	protected String name;

-	protected int age;

-

-	public int getAge() {

-		return age;

-	}

-

-	public void setAge(int age) {

-		this.age = age;

-	}

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/Industry.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/Industry.java
deleted file mode 100644
index 274e48e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/Industry.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail;

-

-import java.util.Collection;

-

-/**

- * 

- * @author yyang

- */

-public class Industry {

-	protected String name;

-	protected Collection<Company> members;

-

-	public Collection<Company> getMembers() {

-		return members;

-	}

-

-	public void setMembers(Collection<Company> members) {

-		this.members = members;

-	}

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/JFaceTableViewer_MasterDetail_Tests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/JFaceTableViewer_MasterDetail_Tests.java
deleted file mode 100644
index 625c693..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/JFaceTableViewer_MasterDetail_Tests.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.swt.widgets.TableItem;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class JFaceTableViewer_MasterDetail_Tests extends XWTTestCase {

-

-	public void testTableViewer_MasterDetail() throws Exception {

-		URL url = JFaceTableViewer_MasterDetail_Tests.class

-				.getResource(TableViewer_MasterDetail.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 2);

-				assertEquals(items[0].getText(0), "Thomas");

-				assertEquals(items[0].getText(1), "32");

-				assertEquals(items[1].getText(0), "Jin");

-				assertEquals(items[1].getText(1), "27");

-			}

-		});

-	}

-

-	public void testTableViewer_MasterDetail_DetailDisplay() throws Exception {

-		URL url = JFaceTableViewer_MasterDetail_Tests.class

-				.getResource(TableViewer_MasterDetail.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-

-				IObservableValue observableValue = XWT.findObservableValue(

-						root, tableViewer, "singleSelection");

-

-				Company company = (Company) XWT.getDataContext(element);

-				Employee employee = company.getEmployees().iterator().next();

-				observableValue.setValue(employee);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkListViewer();

-			}

-

-			public void checkListViewer() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 2);

-

-				Label label = (Label) XWT.findElementByName(root, "Label");

-				assertTrue(label != null);

-

-				IObservableValue observableValue = XWT.findObservableValue(

-						root, tableViewer, "singleSelection");

-				Object selected = observableValue.getValue();

-				assertTrue(selected instanceof Employee);

-				Employee employee = (Employee) selected;

-				assertEquals(label.getText(), employee.getName());

-			}

-		});

-	}

-

-	public void testTableViewer_MasterDetail_DetailEdit() throws Exception {

-		final String newName = "Employee new name";

-		URL url = JFaceTableViewer_MasterDetail_Tests.class

-				.getResource(TableViewer_MasterDetail_Edit.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-

-				IObservableValue observableValue = XWT.findObservableValue(

-						root, tableViewer, "singleSelection");

-

-				Company company = (Company) XWT.getDataContext(element);

-				Employee employee = company.getEmployees().iterator().next();

-				observableValue.setValue(employee);

-			}

-		}, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 2);

-

-				Text text = (Text) XWT.findElementByName(root, "Text");

-				assertTrue(text != null);

-

-				IObservableValue observableValue = XWT.findObservableValue(

-						root, tableViewer, "singleSelection");

-				Object selected = observableValue.getValue();

-				assertTrue(selected instanceof Employee);

-				Employee employee = (Employee) selected;

-				assertEquals(text.getText(), employee.getName());

-

-				text.setText(newName);

-			}

-		}, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-

-				IObservableValue observableValue = XWT.findObservableValue(

-						root, tableViewer, "singleSelection");

-				Object selected = observableValue.getValue();

-				assertTrue(selected instanceof Employee);

-				Employee employee = (Employee) selected;

-				assertEquals(newName, employee.getName());

-			}

-		});

-	}

-

-	public void testTableViewer_MasterDetail_NestedTable() throws Exception {

-		URL url = JFaceTableViewer_MasterDetail_Tests.class

-				.getResource(TableViewer_MasterDetail_NestedTable.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				// select a table company

-				Object element = XWT.findElementByName(root, "IndustryViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 2);

-

-				Industry industry = (Industry) XWT.getDataContext(element);

-				Company company = null;

-				for (Company memeber : industry.getMembers()) {

-					if ("Soyatec".equals(memeber.getName())) {

-						company = memeber;

-						break;

-					}

-				}

-				IObservableValue observableValue = XWT.findObservableValue(

-						root, tableViewer, "singleSelection");

-				observableValue.setValue(company);

-			}

-		}, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "CompanyViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 2);

-				assertEquals(items[0].getText(0), "Thomas");

-				assertEquals(items[0].getText(1), "32");

-				assertEquals(items[1].getText(0), "Jin");

-				assertEquals(items[1].getText(1), "27");

-			}

-		});

-	}

-

-	public void testTableViewer_MasterDetail_NestedTable_AddInput()

-			throws Exception {

-		URL url = JFaceTableViewer_MasterDetail_Tests.class

-				.getResource(TableViewer_MasterDetail_NestedTable_AddInput.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				// select a table company

-				Object element = XWT.findElementByName(root, "AddButton");

-				assertTrue(element instanceof Button);

-				selectButton((Button) element);

-			}

-		}, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "CompanyViewer1");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 3);

-			}

-		});

-	}

-

-	public void testTableViewer_MasterDetail_NestedTable_AddPath()

-			throws Exception {

-		URL url = JFaceTableViewer_MasterDetail_Tests.class

-				.getResource(TableViewer_MasterDetail_NestedTable_AddPath.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				// select a table company

-				Object element = XWT.findElementByName(root, "AddButton");

-				assertTrue(element instanceof Button);

-				selectButton((Button) element);

-			}

-		}, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "CompanyViewer1");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 3);

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail.java
deleted file mode 100644
index f1823c3..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewer_MasterDetail {

-	public static void main(String[] args) {

-

-		URL url = TableViewer_MasterDetail.class

-				.getResource(TableViewer_MasterDetail.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail.xwt
deleted file mode 100644
index ee4b2c1..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail.xwt
+++ /dev/null
@@ -1,34 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<GridLayout numColumns="1"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<j:Employee Name="Thomas" Age="32"/>

-				<j:Employee Name="Jin" Age="27"/>

-			</j:Company.employees>

-		</j:Company>

-	</Composite.Resources>

-	<TableViewer Name="TableViewer" input="{Binding Path=employees}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Label name="Label" text="{Binding ElementName=TableViewer,path=singleSelection.(j:Employee.name)}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_Edit.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_Edit.java
deleted file mode 100644
index 9a1b9ee..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_Edit.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewer_MasterDetail_Edit {

-	public static void main(String[] args) {

-

-		URL url = TableViewer_MasterDetail_Edit.class

-				.getResource(TableViewer_MasterDetail_Edit.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_Edit.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_Edit.xwt
deleted file mode 100644
index 85ac215..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_Edit.xwt
+++ /dev/null
@@ -1,34 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<GridLayout numColumns="1"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<j:Employee Name="Thomas" Age="32"/>

-				<j:Employee Name="Jin" Age="27"/>

-			</j:Company.employees>

-		</j:Company>

-	</Composite.Resources>

-	<TableViewer Name="TableViewer" input="{Binding Path=employees}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Text name="Text" text="{Binding ElementName=TableViewer,path=singleSelection.(j:Employee.name),UpdateSourceTrigger=PropertyChanged}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable.java
deleted file mode 100644
index e22737c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewer_MasterDetail_NestedTable {

-	public static void main(String[] args) {

-

-		URL url = TableViewer_MasterDetail_NestedTable.class

-				.getResource(TableViewer_MasterDetail_NestedTable.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable.xwt
deleted file mode 100644
index 27febed..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable.xwt
+++ /dev/null
@@ -1,51 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail"

-    DataContext="{StaticResource MyDomain}">

-	<Composite.layout>

-		<GridLayout numColumns="1"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Industry x:Key="MyDomain">

-			<j:Industry.members>

-				<j:Company Name="Soyatec" >

-					<j:Company.employees>

-						<j:Employee Name="Thomas" Age="32"/>

-						<j:Employee Name="Jin" Age="27"/>

-					</j:Company.employees>

-				</j:Company>

-				<j:Company Name="Thales">

-				</j:Company>

-			</j:Industry.members>

-		</j:Industry>

-	</Composite.Resources>

-	<TableViewer Name="IndustryViewer" input="{Binding Path=members}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Label text="{Binding ElementName=IndustryViewer,path=singleSelection.(j:Company.name)}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-	<TableViewer Name="CompanyViewer" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />

-		</TableViewer.control.layoutData>

-	</TableViewer>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable_AddInput.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable_AddInput.java
deleted file mode 100644
index 33a61e3..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable_AddInput.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.list.IObservableList;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewer_MasterDetail_NestedTable_AddInput {

-	public static void main(String[] args) {

-

-		URL url = TableViewer_MasterDetail_NestedTable_AddInput.class

-				.getResource(TableViewer_MasterDetail_NestedTable_AddInput.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void addEmployee(Object sender, Event event) {

-		TableViewer tableViewer = (TableViewer) XWT.findElementByName(

-				event.widget, "IndustryViewer");

-		Industry industry = (Industry) XWT.getDataContext(tableViewer);

-		Company company = null;

-		for (Company memeber : industry.getMembers()) {

-			if ("Soyatec".equals(memeber.getName())) {

-				company = memeber;

-				break;

-			}

-		}

-		IObservableValue observableValue = XWT.findObservableValue(

-				event.widget, tableViewer, "singleSelection");

-		observableValue.setValue(company);

-

-		TableViewer companyViewer = (TableViewer) XWT.findElementByName(

-				event.widget, "CompanyViewer1");

-

-		IObservableList employees = (IObservableList) companyViewer.getInput();

-		observableValue.setValue(company);

-		Employee employee = new Employee();

-		employee.setName("Bruno");

-		employee.setAge(24);

-		employees.add(employee);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable_AddInput.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable_AddInput.xwt
deleted file mode 100644
index 28a57c0..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable_AddInput.xwt
+++ /dev/null
@@ -1,65 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail"

-    x:Class="org.eclipse.xwt.tests.jface.tableviewer.master.detail.TableViewer_MasterDetail_NestedTable_AddInput"

-    DataContext="{StaticResource MyDomain}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Industry x:Key="MyDomain">

-			<j:Industry.members>

-				<j:Company Name="Soyatec" >

-					<j:Company.employees>

-						<j:Employee Name="Thomas" Age="32"/>

-						<j:Employee Name="Jin" Age="27"/>

-					</j:Company.employees>

-				</j:Company>

-				<j:Company Name="Thales">

-				</j:Company>

-			</j:Industry.members>

-		</j:Industry>

-	</Composite.Resources>

-	<TableViewer Name="IndustryViewer" input="{Binding Path=members}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Label text="{Binding ElementName=IndustryViewer,path=singleSelection.(j:Company.name)}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-	<TableViewer Name="CompanyViewer1" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<TableViewer Name="CompanyViewer2" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Button name="AddButton" text="Add Employee" SelectionEvent="addEmployee" enabled="{Binding elementName=IndustryViewer,path=singleSelection }" />

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable_AddPath.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable_AddPath.java
deleted file mode 100644
index 33802fe..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable_AddPath.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.list.IObservableList;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewer_MasterDetail_NestedTable_AddPath {

-	public static void main(String[] args) {

-

-		URL url = TableViewer_MasterDetail_NestedTable_AddPath.class

-				.getResource(TableViewer_MasterDetail_NestedTable_AddPath.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void addEmployee(Object sender, Event event) {

-		TableViewer tableViewer = (TableViewer) XWT.findElementByName(

-				event.widget, "IndustryViewer");

-		Industry industry = (Industry) XWT.getDataContext(tableViewer);

-		Company company = null;

-		for (Company memeber : industry.getMembers()) {

-			if ("Soyatec".equals(memeber.getName())) {

-				company = memeber;

-				break;

-			}

-		}

-		IObservableValue observableValue = XWT.findObservableValue(

-				event.widget, tableViewer, "singleSelection");

-		observableValue.setValue(company);

-

-		IObservableList members = XWT.findObservableList(event.widget,

-				tableViewer, "singleSelection.employees");

-		observableValue.setValue(company);

-		Employee employee = new Employee();

-		employee.setName("Bruno");

-		employee.setAge(24);

-		members.add(employee);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable_AddPath.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable_AddPath.xwt
deleted file mode 100644
index 9f659d0..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable_AddPath.xwt
+++ /dev/null
@@ -1,65 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail"

-    x:Class="org.eclipse.xwt.tests.jface.tableviewer.master.detail.TableViewer_MasterDetail_NestedTable_AddPath"

-    DataContext="{StaticResource MyDomain}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Industry x:Key="MyDomain">

-			<j:Industry.members>

-				<j:Company Name="Soyatec" >

-					<j:Company.employees>

-						<j:Employee Name="Thomas" Age="32"/>

-						<j:Employee Name="Jin" Age="27"/>

-					</j:Company.employees>

-				</j:Company>

-				<j:Company Name="Thales">

-				</j:Company>

-			</j:Industry.members>

-		</j:Industry>

-	</Composite.Resources>

-	<TableViewer Name="IndustryViewer" input="{Binding Path=members}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Label text="{Binding ElementName=IndustryViewer,path=singleSelection.(j:Company.name)}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-	<TableViewer Name="CompanyViewer1" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<TableViewer Name="CompanyViewer2" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Button name="AddButton" text="Add Employee" SelectionEvent="addEmployee" enabled="{Binding elementName=IndustryViewer,path=singleSelection }" />

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/Company.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/Company.java
deleted file mode 100644
index 93257a1..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/Company.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail.array;

-

-/**

- * 

- * @author yyang

- */

-public class Company {

-	protected String name;

-

-	protected Employee[] employees;

-

-	public Company() {

-	}

-

-	public Employee[] getEmployees() {

-		return employees;

-	}

-

-	public void setEmployees(Employee[] employees) {

-		this.employees = employees;

-	}

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/Employee.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/Employee.java
deleted file mode 100644
index 32cae6e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/Employee.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail.array;

-

-public class Employee {

-	protected String name;

-	protected int age;

-

-	public int getAge() {

-		return age;

-	}

-

-	public void setAge(int age) {

-		this.age = age;

-	}

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/Industry.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/Industry.java
deleted file mode 100644
index 034cda7..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/Industry.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail.array;

-

-/**

- * 

- * @author yyang

- */

-public class Industry {

-	protected String name;

-	protected Company[] members;

-

-	public Company[] getMembers() {

-		return members;

-	}

-

-	public void setMembers(Company[] members) {

-		this.members = members;

-	}

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/JFaceTableViewer_Array_MasterDetail_Tests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/JFaceTableViewer_Array_MasterDetail_Tests.java
deleted file mode 100644
index e4156ee..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/JFaceTableViewer_Array_MasterDetail_Tests.java
+++ /dev/null
@@ -1,235 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail.array;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.swt.widgets.TableItem;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class JFaceTableViewer_Array_MasterDetail_Tests extends XWTTestCase {

-

-	public void testTableViewer_MasterDetail() throws Exception {

-		URL url = JFaceTableViewer_Array_MasterDetail_Tests.class

-				.getResource(TableViewer_MasterDetail.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkListViewer();

-			}

-

-			public void checkListViewer() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 2);

-				assertEquals(items[0].getText(0), "Thomas");

-				assertEquals(items[0].getText(1), "32");

-				assertEquals(items[1].getText(0), "Jin");

-				assertEquals(items[1].getText(1), "27");

-			}

-		});

-	}

-

-	public void testTableViewer_MasterDetail_DetailDisplay() throws Exception {

-		URL url = JFaceTableViewer_Array_MasterDetail_Tests.class

-				.getResource(TableViewer_MasterDetail.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-

-				IObservableValue observableValue = XWT.findObservableValue(

-						root, tableViewer, "singleSelection");

-

-				Company company = (Company) XWT.getDataContext(element);

-				Employee employee = company.getEmployees()[0];

-				observableValue.setValue(employee);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkListViewer();

-			}

-

-			public void checkListViewer() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 2);

-

-				Label label = (Label) XWT.findElementByName(root, "Label");

-				assertTrue(label != null);

-

-				IObservableValue observableValue = XWT.findObservableValue(

-						root, tableViewer, "singleSelection");

-				Object selected = observableValue.getValue();

-				assertTrue(selected instanceof Employee);

-				Employee employee = (Employee) selected;

-				assertEquals(label.getText(), employee.getName());

-			}

-		});

-	}

-

-	public void testTableViewer_MasterDetail_DetailEdit() throws Exception {

-		final String newName = "Employee new name";

-		URL url = JFaceTableViewer_Array_MasterDetail_Tests.class

-				.getResource(TableViewer_MasterDetail_Edit.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-

-				IObservableValue observableValue = XWT.findObservableValue(

-						root, tableViewer, "singleSelection");

-

-				Company company = (Company) XWT.getDataContext(element);

-				Employee employee = company.getEmployees()[0];

-				observableValue.setValue(employee);

-			}

-		}, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 2);

-

-				Text text = (Text) XWT.findElementByName(root, "Text");

-				assertTrue(text != null);

-

-				IObservableValue observableValue = XWT.findObservableValue(

-						root, tableViewer, "singleSelection");

-				Object selected = observableValue.getValue();

-				assertTrue(selected instanceof Employee);

-				Employee employee = (Employee) selected;

-				assertEquals(text.getText(), employee.getName());

-

-				text.setText(newName);

-			}

-		}, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-

-				IObservableValue observableValue = XWT.findObservableValue(

-						root, tableViewer, "singleSelection");

-				Object selected = observableValue.getValue();

-				assertTrue(selected instanceof Employee);

-				Employee employee = (Employee) selected;

-				assertEquals(newName, employee.getName());

-			}

-		});

-	}

-

-	public void testTableViewer_MasterDetail_NestedTable() throws Exception {

-		URL url = JFaceTableViewer_Array_MasterDetail_Tests.class

-				.getResource(TableViewer_MasterDetail_NestedTable.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				// select a table company

-				Object element = XWT.findElementByName(root, "IndustryViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 2);

-

-				Industry industry = (Industry) XWT.getDataContext(element);

-				Company company = null;

-				for (Company memeber : industry.getMembers()) {

-					if ("Soyatec".equals(memeber.getName())) {

-						company = memeber;

-						break;

-					}

-				}

-				IObservableValue observableValue = XWT.findObservableValue(

-						root, tableViewer, "singleSelection");

-				observableValue.setValue(company);

-			}

-		}, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "CompanyViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 2);

-				assertEquals(items[0].getText(0), "Thomas");

-				assertEquals(items[0].getText(1), "32");

-				assertEquals(items[1].getText(0), "Jin");

-				assertEquals(items[1].getText(1), "27");

-			}

-		});

-	}

-

-	public void testTableViewer_MasterDetail_NestedTable_AddInput()

-			throws Exception {

-		URL url = JFaceTableViewer_Array_MasterDetail_Tests.class

-				.getResource(TableViewer_MasterDetail_NestedTable_AddInput.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				// select a table company

-				Object element = XWT.findElementByName(root, "AddButton");

-				assertTrue(element instanceof Button);

-				selectButton((Button) element);

-			}

-		}, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "CompanyViewer1");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 3);

-			}

-		});

-	}

-

-	public void testTableViewer_MasterDetail_NestedTable_AddPath()

-			throws Exception {

-		URL url = JFaceTableViewer_Array_MasterDetail_Tests.class

-				.getResource(TableViewer_MasterDetail_NestedTable_AddPath.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				// select a table company

-				Object element = XWT.findElementByName(root, "AddButton");

-				assertTrue(element instanceof Button);

-				selectButton((Button) element);

-			}

-		}, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "CompanyViewer1");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 3);

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail.java
deleted file mode 100644
index 66e06b9..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail.array;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewer_MasterDetail {

-	public static void main(String[] args) {

-

-		URL url = TableViewer_MasterDetail.class

-				.getResource(TableViewer_MasterDetail.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail.xwt
deleted file mode 100644
index 05f0a81..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail.xwt
+++ /dev/null
@@ -1,36 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.array"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<GridLayout numColumns="1"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<x:Array Type="j:Employee">

-					<j:Employee Name="Thomas" Age="32"/>

-					<j:Employee Name="Jin" Age="27"/>

-				</x:Array>

-			</j:Company.employees>

-		</j:Company>

-	</Composite.Resources>

-	<TableViewer Name="TableViewer" input="{Binding Path=employees}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Label name="Label" text="{Binding ElementName=TableViewer,path=singleSelection.(j:Employee.name)}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_Edit.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_Edit.java
deleted file mode 100644
index 9918ee4..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_Edit.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail.array;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewer_MasterDetail_Edit {

-	public static void main(String[] args) {

-

-		URL url = TableViewer_MasterDetail_Edit.class

-				.getResource(TableViewer_MasterDetail_Edit.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_Edit.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_Edit.xwt
deleted file mode 100644
index a246cc5..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_Edit.xwt
+++ /dev/null
@@ -1,36 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.array"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<GridLayout numColumns="1"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<x:Array Type="j:Employee">

-					<j:Employee Name="Thomas" Age="32"/>

-					<j:Employee Name="Jin" Age="27"/>

-				</x:Array>

-			</j:Company.employees>

-		</j:Company>

-	</Composite.Resources>

-	<TableViewer Name="TableViewer" input="{Binding Path=employees}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Text name="Text" text="{Binding ElementName=TableViewer,path=singleSelection.(j:Employee.name),UpdateSourceTrigger=PropertyChanged}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_List.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_List.java
deleted file mode 100644
index c68eeaa..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_List.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail.array;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewer_MasterDetail_List {

-	public static void main(String[] args) {

-

-		URL url = TableViewer_MasterDetail_List.class

-				.getResource(TableViewer_MasterDetail_List.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_List.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_List.xwt
deleted file mode 100644
index 5ff7b35..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_List.xwt
+++ /dev/null
@@ -1,52 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.array"

-    DataContext="{StaticResource MyDomain}">

-	<Composite.layout>

-		<GridLayout numColumns="1"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Industry x:Key="MyDomain">

-			<j:Industry.members>

-				<j:Company Name="Soyatec" >

-					<j:Company.employees>

-						<x:Array Type="j:Employee">

-							<j:Employee Name="Thomas" Age="32"/>

-							<j:Employee Name="Jin" Age="27"/>

-						</x:Array>

-					</j:Company.employees>

-				</j:Company>

-				<j:Company Name="Thales"/>

-			</j:Industry.members>

-		</j:Industry>

-	</Composite.Resources>

-	<TableViewer Name="IndustryViewer" input="{Binding Path=members}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Label text="{Binding ElementName=IndustryViewer,path=singleSelection.(j:Company.name)}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-	<TableViewer Name="CompanyViewer" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200"

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />

-		</TableViewer.control.layoutData>

-	</TableViewer>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable.java
deleted file mode 100644
index 38182f6..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail.array;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewer_MasterDetail_NestedTable {

-	public static void main(String[] args) {

-

-		URL url = TableViewer_MasterDetail_NestedTable.class

-				.getResource(TableViewer_MasterDetail_NestedTable.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable.xwt
deleted file mode 100644
index f35561f..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable.xwt
+++ /dev/null
@@ -1,53 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.array"

-    DataContext="{StaticResource MyDomain}">

-	<Composite.layout>

-		<GridLayout numColumns="1"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Industry x:Key="MyDomain">

-			<j:Industry.members>

-				<j:Company Name="Soyatec" >

-					<j:Company.employees>

-						<x:Array Type="j:Employee">

-							<j:Employee Name="Thomas" Age="32"/>

-							<j:Employee Name="Jin" Age="27"/>

-						</x:Array>

-					</j:Company.employees>

-				</j:Company>

-				<j:Company Name="Thales">

-				</j:Company>

-			</j:Industry.members>

-		</j:Industry>

-	</Composite.Resources>

-	<TableViewer Name="IndustryViewer" input="{Binding Path=members}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Label text="{Binding ElementName=IndustryViewer,path=singleSelection.(j:Company.name)}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-	<TableViewer Name="CompanyViewer" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />

-		</TableViewer.control.layoutData>

-	</TableViewer>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable_AddInput.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable_AddInput.java
deleted file mode 100644
index ff26091..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable_AddInput.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail.array;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.list.IObservableList;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewer_MasterDetail_NestedTable_AddInput {

-	public static void main(String[] args) {

-

-		URL url = TableViewer_MasterDetail_NestedTable_AddInput.class

-				.getResource(TableViewer_MasterDetail_NestedTable_AddInput.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void addEmployee(Object sender, Event event) {

-		TableViewer tableViewer = (TableViewer) XWT.findElementByName(

-				event.widget, "IndustryViewer");

-		Industry industry = (Industry) XWT.getDataContext(tableViewer);

-		Company company = null;

-		for (Company memeber : industry.getMembers()) {

-			if ("Soyatec".equals(memeber.getName())) {

-				company = memeber;

-				break;

-			}

-		}

-		IObservableValue observableValue = XWT.findObservableValue(

-				event.widget, tableViewer, "singleSelection");

-		observableValue.setValue(company);

-

-		TableViewer companyViewer = (TableViewer) XWT.findElementByName(

-				event.widget, "CompanyViewer1");

-

-		IObservableList employees = (IObservableList) companyViewer.getInput();

-		observableValue.setValue(company);

-		Employee employee = new Employee();

-		employee.setName("Bruno");

-		employee.setAge(24);

-		employees.add(employee);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable_AddInput.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable_AddInput.xwt
deleted file mode 100644
index 1c78448..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable_AddInput.xwt
+++ /dev/null
@@ -1,67 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.array"

-    x:Class="org.eclipse.xwt.tests.jface.tableviewer.master.detail.array.TableViewer_MasterDetail_NestedTable_AddInput"

-    DataContext="{StaticResource MyDomain}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Industry x:Key="MyDomain">

-			<j:Industry.members>

-				<j:Company Name="Soyatec" >

-					<j:Company.employees>

-						<x:Array Type="j:Employee">

-							<j:Employee Name="Thomas" Age="32"/>

-							<j:Employee Name="Jin" Age="27"/>

-						</x:Array>

-					</j:Company.employees>

-				</j:Company>

-				<j:Company Name="Thales">

-				</j:Company>

-			</j:Industry.members>

-		</j:Industry>

-	</Composite.Resources>

-	<TableViewer Name="IndustryViewer" input="{Binding Path=members}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Label text="{Binding ElementName=IndustryViewer,path=singleSelection.(j:Company.name)}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-	<TableViewer Name="CompanyViewer1" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<TableViewer Name="CompanyViewer2" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Button name="AddButton" text="Add Employee" SelectionEvent="addEmployee" enabled="{Binding elementName=IndustryViewer,path=singleSelection }" />

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable_AddPath.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable_AddPath.java
deleted file mode 100644
index 7150833..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable_AddPath.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail.array;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.list.IObservableList;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewer_MasterDetail_NestedTable_AddPath {

-	public static void main(String[] args) {

-

-		URL url = TableViewer_MasterDetail_NestedTable_AddPath.class

-				.getResource(TableViewer_MasterDetail_NestedTable_AddPath.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void addEmployee(Object sender, Event event) {

-		TableViewer tableViewer = (TableViewer) XWT.findElementByName(

-				event.widget, "IndustryViewer");

-		Industry industry = (Industry) XWT.getDataContext(tableViewer);

-		Company company = null;

-		for (Company memeber : industry.getMembers()) {

-			if ("Soyatec".equals(memeber.getName())) {

-				company = memeber;

-				break;

-			}

-		}

-		IObservableValue observableValue = XWT.findObservableValue(

-				event.widget, tableViewer, "singleSelection");

-		observableValue.setValue(company);

-

-		IObservableList members = XWT.findObservableList(event.widget,

-				tableViewer, "singleSelection.employees");

-		observableValue.setValue(company);

-		Employee employee = new Employee();

-		employee.setName("Bruno");

-		employee.setAge(24);

-		members.add(employee);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable_AddPath.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable_AddPath.xwt
deleted file mode 100644
index 0f1929c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable_AddPath.xwt
+++ /dev/null
@@ -1,67 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.array"

-    x:Class="org.eclipse.xwt.tests.jface.tableviewer.master.detail.array.TableViewer_MasterDetail_NestedTable_AddPath"

-    DataContext="{StaticResource MyDomain}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Industry x:Key="MyDomain">

-			<j:Industry.members>

-				<j:Company Name="Soyatec" >

-					<j:Company.employees>

-						<x:Array Type="j:Employee">

-							<j:Employee Name="Thomas" Age="32"/>

-							<j:Employee Name="Jin" Age="27"/>

-						</x:Array>

-					</j:Company.employees>

-				</j:Company>

-				<j:Company Name="Thales">

-				</j:Company>

-			</j:Industry.members>

-		</j:Industry>

-	</Composite.Resources>

-	<TableViewer Name="IndustryViewer" input="{Binding Path=members}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Label text="{Binding ElementName=IndustryViewer,path=singleSelection.(j:Company.name)}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-	<TableViewer Name="CompanyViewer1" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<TableViewer Name="CompanyViewer2" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Button name="AddButton" text="Add Employee" SelectionEvent="addEmployee" enabled="{Binding elementName=IndustryViewer,path=singleSelection }" />

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/Company.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/Company.java
deleted file mode 100644
index dceffd7..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/Company.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail.list;

-

-import java.util.List;

-

-/**

- * 

- * @author yyang

- */

-public class Company {

-	protected String name;

-

-	protected List<Employee> employees;

-

-	public Company() {

-	}

-

-	public List<Employee> getEmployees() {

-		return employees;

-	}

-

-	public void setEmployees(List<Employee> employees) {

-		this.employees = employees;

-	}

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/Employee.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/Employee.java
deleted file mode 100644
index fe7dc1e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/Employee.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail.list;

-

-public class Employee {

-	protected String name;

-	protected int age;

-

-	public int getAge() {

-		return age;

-	}

-

-	public void setAge(int age) {

-		this.age = age;

-	}

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/Industry.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/Industry.java
deleted file mode 100644
index 52a6ada..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/Industry.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail.list;

-

-import java.util.List;

-

-/**

- * 

- * @author yyang

- */

-public class Industry {

-	protected String name;

-	protected List<Company> members;

-

-	public List<Company> getMembers() {

-		return members;

-	}

-

-	public void setMembers(List<Company> members) {

-		this.members = members;

-	}

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/JFaceTableViewer_List_MasterDetail_Tests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/JFaceTableViewer_List_MasterDetail_Tests.java
deleted file mode 100644
index 2ec91b6..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/JFaceTableViewer_List_MasterDetail_Tests.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail.list;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.swt.widgets.TableItem;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class JFaceTableViewer_List_MasterDetail_Tests extends XWTTestCase {

-

-	public void testTableViewer_MasterDetail() throws Exception {

-		URL url = JFaceTableViewer_List_MasterDetail_Tests.class

-				.getResource(TableViewer_MasterDetail.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 2);

-				assertEquals(items[0].getText(0), "Thomas");

-				assertEquals(items[0].getText(1), "32");

-				assertEquals(items[1].getText(0), "Jin");

-				assertEquals(items[1].getText(1), "27");

-			}

-		});

-	}

-

-	public void testTableViewer_MasterDetail_DetailDisplay() throws Exception {

-		URL url = JFaceTableViewer_List_MasterDetail_Tests.class

-				.getResource(TableViewer_MasterDetail.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-

-				IObservableValue observableValue = XWT.findObservableValue(

-						root, tableViewer, "singleSelection");

-

-				Company company = (Company) XWT.getDataContext(element);

-				Employee employee = company.getEmployees().iterator().next();

-				observableValue.setValue(employee);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkListViewer();

-			}

-

-			public void checkListViewer() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 2);

-

-				Label label = (Label) XWT.findElementByName(root, "Label");

-				assertTrue(label != null);

-

-				IObservableValue observableValue = XWT.findObservableValue(

-						root, tableViewer, "singleSelection");

-				Object selected = observableValue.getValue();

-				assertTrue(selected instanceof Employee);

-				Employee employee = (Employee) selected;

-				assertEquals(label.getText(), employee.getName());

-			}

-		});

-	}

-

-	public void testTableViewer_MasterDetail_DetailEdit() throws Exception {

-		final String newName = "Employee new name";

-		URL url = JFaceTableViewer_List_MasterDetail_Tests.class

-				.getResource(TableViewer_MasterDetail_Edit.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-

-				IObservableValue observableValue = XWT.findObservableValue(

-						root, tableViewer, "singleSelection");

-

-				Company company = (Company) XWT.getDataContext(element);

-				Employee employee = company.getEmployees().iterator().next();

-				observableValue.setValue(employee);

-			}

-		}, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 2);

-

-				Text text = (Text) XWT.findElementByName(root, "Text");

-				assertTrue(text != null);

-

-				IObservableValue observableValue = XWT.findObservableValue(

-						root, tableViewer, "singleSelection");

-				Object selected = observableValue.getValue();

-				assertTrue(selected instanceof Employee);

-				Employee employee = (Employee) selected;

-				assertEquals(text.getText(), employee.getName());

-

-				text.setText(newName);

-			}

-		}, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-

-				IObservableValue observableValue = XWT.findObservableValue(

-						root, tableViewer, "singleSelection");

-				Object selected = observableValue.getValue();

-				assertTrue(selected instanceof Employee);

-				Employee employee = (Employee) selected;

-				assertEquals(newName, employee.getName());

-			}

-		});

-	}

-

-	public void testTableViewer_MasterDetail_NestedTable() throws Exception {

-		URL url = JFaceTableViewer_List_MasterDetail_Tests.class

-				.getResource(TableViewer_MasterDetail_NestedTable.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				// select a table company

-				Object element = XWT.findElementByName(root, "IndustryViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 2);

-

-				Industry industry = (Industry) XWT.getDataContext(element);

-				Company company = null;

-				for (Company memeber : industry.getMembers()) {

-					if ("Soyatec".equals(memeber.getName())) {

-						company = memeber;

-						break;

-					}

-				}

-				IObservableValue observableValue = XWT.findObservableValue(

-						root, tableViewer, "singleSelection");

-				observableValue.setValue(company);

-			}

-		}, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "CompanyViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 2);

-				assertEquals(items[0].getText(0), "Thomas");

-				assertEquals(items[0].getText(1), "32");

-				assertEquals(items[1].getText(0), "Jin");

-				assertEquals(items[1].getText(1), "27");

-			}

-		});

-	}

-

-	public void testTableViewer_MasterDetail_NestedTable_AddInput()

-			throws Exception {

-		URL url = JFaceTableViewer_List_MasterDetail_Tests.class

-				.getResource(TableViewer_MasterDetail_NestedTable_AddInput.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				// select a table company

-				Object element = XWT.findElementByName(root, "AddButton");

-				assertTrue(element instanceof Button);

-				selectButton((Button) element);

-			}

-		}, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "CompanyViewer1");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 3);

-			}

-		});

-	}

-

-	public void testTableViewer_MasterDetail_NestedTable_AddPath()

-			throws Exception {

-		URL url = JFaceTableViewer_List_MasterDetail_Tests.class

-				.getResource(TableViewer_MasterDetail_NestedTable_AddPath.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				// select a table company

-				Object element = XWT.findElementByName(root, "AddButton");

-				assertTrue(element instanceof Button);

-				selectButton((Button) element);

-			}

-		}, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "CompanyViewer1");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 3);

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail.java
deleted file mode 100644
index 8738da9..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail.list;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewer_MasterDetail {

-	public static void main(String[] args) {

-

-		URL url = TableViewer_MasterDetail.class

-				.getResource(TableViewer_MasterDetail.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail.xwt
deleted file mode 100644
index 3287041..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail.xwt
+++ /dev/null
@@ -1,34 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.list"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<GridLayout numColumns="1"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<j:Employee Name="Thomas" Age="32"/>

-				<j:Employee Name="Jin" Age="27"/>

-			</j:Company.employees>

-		</j:Company>

-	</Composite.Resources>

-	<TableViewer Name="TableViewer" input="{Binding Path=employees}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Label name="Label" text="{Binding ElementName=TableViewer,path=singleSelection.(j:Employee.name)}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_Edit.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_Edit.java
deleted file mode 100644
index d1b9d06..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_Edit.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail.list;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewer_MasterDetail_Edit {

-	public static void main(String[] args) {

-

-		URL url = TableViewer_MasterDetail_Edit.class

-				.getResource(TableViewer_MasterDetail_Edit.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_Edit.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_Edit.xwt
deleted file mode 100644
index a3859e9..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_Edit.xwt
+++ /dev/null
@@ -1,34 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.list"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<GridLayout numColumns="1"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<j:Employee Name="Thomas" Age="32"/>

-				<j:Employee Name="Jin" Age="27"/>

-			</j:Company.employees>

-		</j:Company>

-	</Composite.Resources>

-	<TableViewer Name="TableViewer" input="{Binding Path=employees}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Text name="Text" text="{Binding ElementName=TableViewer,path=singleSelection.(j:Employee.name),UpdateSourceTrigger=PropertyChanged}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable.java
deleted file mode 100644
index c07d96b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail.list;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewer_MasterDetail_NestedTable {

-	public static void main(String[] args) {

-

-		URL url = TableViewer_MasterDetail_NestedTable.class

-				.getResource(TableViewer_MasterDetail_NestedTable.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable.xwt
deleted file mode 100644
index 452028b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable.xwt
+++ /dev/null
@@ -1,51 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.list"

-    DataContext="{StaticResource MyDomain}">

-	<Composite.layout>

-		<GridLayout numColumns="1"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Industry x:Key="MyDomain">

-			<j:Industry.members>

-				<j:Company Name="Soyatec" >

-					<j:Company.employees>

-						<j:Employee Name="Thomas" Age="32"/>

-						<j:Employee Name="Jin" Age="27"/>

-					</j:Company.employees>

-				</j:Company>

-				<j:Company Name="Thales">

-				</j:Company>

-			</j:Industry.members>

-		</j:Industry>

-	</Composite.Resources>

-	<TableViewer Name="IndustryViewer" input="{Binding Path=members}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Label text="{Binding ElementName=IndustryViewer,path=singleSelection.(j:Company.name)}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-	<TableViewer Name="CompanyViewer" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />

-		</TableViewer.control.layoutData>

-	</TableViewer>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable_AddInput.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable_AddInput.java
deleted file mode 100644
index 1f52801..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable_AddInput.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail.list;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.list.IObservableList;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewer_MasterDetail_NestedTable_AddInput {

-	public static void main(String[] args) {

-

-		URL url = TableViewer_MasterDetail_NestedTable_AddInput.class

-				.getResource(TableViewer_MasterDetail_NestedTable_AddInput.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void addEmployee(Object sender, Event event) {

-		TableViewer tableViewer = (TableViewer) XWT.findElementByName(

-				event.widget, "IndustryViewer");

-		Industry industry = (Industry) XWT.getDataContext(tableViewer);

-		Company company = null;

-		for (Company memeber : industry.getMembers()) {

-			if ("Soyatec".equals(memeber.getName())) {

-				company = memeber;

-				break;

-			}

-		}

-		IObservableValue observableValue = XWT.findObservableValue(

-				event.widget, tableViewer, "singleSelection");

-		observableValue.setValue(company);

-

-		TableViewer companyViewer = (TableViewer) XWT.findElementByName(

-				event.widget, "CompanyViewer1");

-

-		IObservableList employees = (IObservableList) companyViewer.getInput();

-		observableValue.setValue(company);

-		Employee employee = new Employee();

-		employee.setName("Bruno");

-		employee.setAge(24);

-		employees.add(employee);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable_AddInput.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable_AddInput.xwt
deleted file mode 100644
index 877c869..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable_AddInput.xwt
+++ /dev/null
@@ -1,65 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.list"

-    x:Class="org.eclipse.xwt.tests.jface.tableviewer.master.detail.list.TableViewer_MasterDetail_NestedTable_AddInput"

-    DataContext="{StaticResource MyDomain}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Industry x:Key="MyDomain">

-			<j:Industry.members>

-				<j:Company Name="Soyatec" >

-					<j:Company.employees>

-						<j:Employee Name="Thomas" Age="32"/>

-						<j:Employee Name="Jin" Age="27"/>

-					</j:Company.employees>

-				</j:Company>

-				<j:Company Name="Thales">

-				</j:Company>

-			</j:Industry.members>

-		</j:Industry>

-	</Composite.Resources>

-	<TableViewer Name="IndustryViewer" input="{Binding Path=members}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Label text="{Binding ElementName=IndustryViewer,path=singleSelection.(j:Company.name)}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-	<TableViewer Name="CompanyViewer1" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<TableViewer Name="CompanyViewer2" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Button name="AddButton" text="Add Employee" SelectionEvent="addEmployee" enabled="{Binding elementName=IndustryViewer,path=singleSelection }" />

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable_AddPath.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable_AddPath.java
deleted file mode 100644
index c0c0bf6..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable_AddPath.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail.list;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.list.IObservableList;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewer_MasterDetail_NestedTable_AddPath {

-	public static void main(String[] args) {

-

-		URL url = TableViewer_MasterDetail_NestedTable_AddPath.class

-				.getResource(TableViewer_MasterDetail_NestedTable_AddPath.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void addEmployee(Object sender, Event event) {

-		TableViewer tableViewer = (TableViewer) XWT.findElementByName(

-				event.widget, "IndustryViewer");

-		Industry industry = (Industry) XWT.getDataContext(tableViewer);

-		Company company = null;

-		for (Company memeber : industry.getMembers()) {

-			if ("Soyatec".equals(memeber.getName())) {

-				company = memeber;

-				break;

-			}

-		}

-		IObservableValue observableValue = XWT.findObservableValue(

-				event.widget, tableViewer, "singleSelection");

-		observableValue.setValue(company);

-

-		IObservableList members = XWT.findObservableList(event.widget,

-				tableViewer, "singleSelection.employees");

-		observableValue.setValue(company);

-		Employee employee = new Employee();

-		employee.setName("Bruno");

-		employee.setAge(24);

-		members.add(employee);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable_AddPath.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable_AddPath.xwt
deleted file mode 100644
index 6c902d0..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable_AddPath.xwt
+++ /dev/null
@@ -1,65 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.list"

-    x:Class="org.eclipse.xwt.tests.jface.tableviewer.master.detail.list.TableViewer_MasterDetail_NestedTable_AddPath"

-    DataContext="{StaticResource MyDomain}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Industry x:Key="MyDomain">

-			<j:Industry.members>

-				<j:Company Name="Soyatec" >

-					<j:Company.employees>

-						<j:Employee Name="Thomas" Age="32"/>

-						<j:Employee Name="Jin" Age="27"/>

-					</j:Company.employees>

-				</j:Company>

-				<j:Company Name="Thales">

-				</j:Company>

-			</j:Industry.members>

-		</j:Industry>

-	</Composite.Resources>

-	<TableViewer Name="IndustryViewer" input="{Binding Path=members}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Label text="{Binding ElementName=IndustryViewer,path=singleSelection.(j:Company.name)}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-	<TableViewer Name="CompanyViewer1" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<TableViewer Name="CompanyViewer2" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Button name="AddButton" text="Add Employee" SelectionEvent="addEmployee" enabled="{Binding elementName=IndustryViewer,path=singleSelection }" />

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/Company.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/Company.java
deleted file mode 100644
index 96c0022..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/Company.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail.set;

-

-import java.util.Set;

-

-/**

- * 

- * @author yyang

- */

-public class Company {

-	protected String name;

-

-	protected Set<Employee> employees;

-

-	public Company() {

-	}

-

-	public Set<Employee> getEmployees() {

-		return employees;

-	}

-

-	public void setEmployees(Set<Employee> employees) {

-		this.employees = employees;

-	}

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/Employee.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/Employee.java
deleted file mode 100644
index f641f7e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/Employee.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail.set;

-

-public class Employee {

-	protected String name;

-	protected int age;

-

-	public int getAge() {

-		return age;

-	}

-

-	public void setAge(int age) {

-		this.age = age;

-	}

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/Industry.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/Industry.java
deleted file mode 100644
index 7437db3..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/Industry.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail.set;

-

-import java.util.Set;

-

-/**

- * 

- * @author yyang

- */

-public class Industry {

-	protected String name;

-	protected Set<Company> members;

-

-	public Set<Company> getMembers() {

-		return members;

-	}

-

-	public void setMembers(Set<Company> members) {

-		this.members = members;

-	}

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/JFaceTableViewer_Set_MasterDetail_Tests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/JFaceTableViewer_Set_MasterDetail_Tests.java
deleted file mode 100644
index e62e01c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/JFaceTableViewer_Set_MasterDetail_Tests.java
+++ /dev/null
@@ -1,242 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail.set;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.swt.widgets.TableItem;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class JFaceTableViewer_Set_MasterDetail_Tests extends XWTTestCase {

-

-	public void testTableViewer_MasterDetail() throws Exception {

-		URL url = JFaceTableViewer_Set_MasterDetail_Tests.class

-				.getResource(TableViewer_MasterDetail.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 2);

-				if ("Jin".equals(items[1].getText(0))) {

-					assertEquals(items[1].getText(1), "27");

-					assertEquals(items[0].getText(0), "Thomas");

-					assertEquals(items[0].getText(1), "32");

-				} else if ("Thomas".equals(items[1].getText(0))) {

-					assertEquals(items[1].getText(1), "32");

-					assertEquals(items[0].getText(0), "Jin");

-					assertEquals(items[0].getText(1), "27");

-				}

-			}

-		});

-	}

-

-	public void testTableViewer_MasterDetail_DetailDisplay() throws Exception {

-		URL url = JFaceTableViewer_Set_MasterDetail_Tests.class

-				.getResource(TableViewer_MasterDetail.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-

-				IObservableValue observableValue = XWT.findObservableValue(

-						root, tableViewer, "singleSelection");

-

-				Company company = (Company) XWT.getDataContext(element);

-				Employee employee = company.getEmployees().iterator().next();

-				observableValue.setValue(employee);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkListViewer();

-			}

-

-			public void checkListViewer() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 2);

-

-				Label label = (Label) XWT.findElementByName(root, "Label");

-				assertTrue(label != null);

-

-				IObservableValue observableValue = XWT.findObservableValue(

-						root, tableViewer, "singleSelection");

-				Object selected = observableValue.getValue();

-				assertTrue(selected instanceof Employee);

-				Employee employee = (Employee) selected;

-				assertEquals(label.getText(), employee.getName());

-			}

-		});

-	}

-

-	public void testTableViewer_MasterDetail_DetailEdit() throws Exception {

-		final String newName = "Employee new name";

-		URL url = JFaceTableViewer_Set_MasterDetail_Tests.class

-				.getResource(TableViewer_MasterDetail_Edit.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-

-				IObservableValue observableValue = XWT.findObservableValue(

-						root, tableViewer, "singleSelection");

-

-				Company company = (Company) XWT.getDataContext(element);

-				Employee employee = company.getEmployees().iterator().next();

-				observableValue.setValue(employee);

-			}

-		}, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 2);

-

-				Text text = (Text) XWT.findElementByName(root, "Text");

-				assertTrue(text != null);

-

-				IObservableValue observableValue = XWT.findObservableValue(

-						root, tableViewer, "singleSelection");

-				Object selected = observableValue.getValue();

-				assertTrue(selected instanceof Employee);

-				Employee employee = (Employee) selected;

-				assertEquals(text.getText(), employee.getName());

-

-				text.setText(newName);

-			}

-		}, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "TableViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-

-				IObservableValue observableValue = XWT.findObservableValue(

-						root, tableViewer, "singleSelection");

-				Object selected = observableValue.getValue();

-				assertTrue(selected instanceof Employee);

-				Employee employee = (Employee) selected;

-				assertEquals(newName, employee.getName());

-			}

-		});

-	}

-

-	public void testTableViewer_MasterDetail_NestedTable() throws Exception {

-		URL url = JFaceTableViewer_Set_MasterDetail_Tests.class

-				.getResource(TableViewer_MasterDetail_NestedTable.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				// select a table company

-				Object element = XWT.findElementByName(root, "IndustryViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 2);

-

-				Industry industry = (Industry) XWT.getDataContext(element);

-				Company company = null;

-				for (Company memeber : industry.getMembers()) {

-					if ("Soyatec".equals(memeber.getName())) {

-						company = memeber;

-						break;

-					}

-				}

-				IObservableValue observableValue = XWT.findObservableValue(

-						root, tableViewer, "singleSelection");

-				observableValue.setValue(company);

-			}

-		}, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "CompanyViewer");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 2);

-

-				if ("Jin".equals(items[1].getText(0))) {

-					assertEquals(items[1].getText(1), "27");

-					assertEquals(items[0].getText(0), "Thomas");

-					assertEquals(items[0].getText(1), "32");

-				} else if ("Thomas".equals(items[1].getText(0))) {

-					assertEquals(items[1].getText(1), "32");

-					assertEquals(items[0].getText(0), "Jin");

-					assertEquals(items[0].getText(1), "27");

-				}

-			}

-		});

-	}

-

-	public void testTableViewer_MasterDetail_NestedTable_AddInput()

-			throws Exception {

-		URL url = JFaceTableViewer_Set_MasterDetail_Tests.class

-				.getResource(TableViewer_MasterDetail_NestedTable_AddInput.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				// select a table company

-				Object element = XWT.findElementByName(root, "AddButton");

-				assertTrue(element instanceof Button);

-				selectButton((Button) element);

-			}

-		}, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "CompanyViewer1");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 3);

-			}

-		});

-	}

-

-	public void testTableViewer_MasterDetail_NestedTable_AddPath()

-			throws Exception {

-		URL url = JFaceTableViewer_Set_MasterDetail_Tests.class

-				.getResource(TableViewer_MasterDetail_NestedTable_AddPath.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				// select a table company

-				Object element = XWT.findElementByName(root, "AddButton");

-				assertTrue(element instanceof Button);

-				selectButton((Button) element);

-			}

-		}, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "CompanyViewer1");

-				assertTrue(element instanceof TableViewer);

-				TableViewer tableViewer = (TableViewer) element;

-				TableItem[] items = tableViewer.getTable().getItems();

-				assertTrue(items.length == 3);

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail.java
deleted file mode 100644
index 38204cd..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail.set;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewer_MasterDetail {

-	public static void main(String[] args) {

-

-		URL url = TableViewer_MasterDetail.class

-				.getResource(TableViewer_MasterDetail.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail.xwt
deleted file mode 100644
index 73bb4fb..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail.xwt
+++ /dev/null
@@ -1,34 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.set"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<GridLayout numColumns="1"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<j:Employee Name="Thomas" Age="32"/>

-				<j:Employee Name="Jin" Age="27"/>

-			</j:Company.employees>

-		</j:Company>

-	</Composite.Resources>

-	<TableViewer Name="TableViewer" input="{Binding Path=employees}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Label name="Label" text="{Binding ElementName=TableViewer,path=singleSelection.(j:Employee.name)}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_Edit.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_Edit.java
deleted file mode 100644
index 7f96a53..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_Edit.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail.set;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewer_MasterDetail_Edit {

-	public static void main(String[] args) {

-

-		URL url = TableViewer_MasterDetail_Edit.class

-				.getResource(TableViewer_MasterDetail_Edit.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_Edit.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_Edit.xwt
deleted file mode 100644
index dec9456..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_Edit.xwt
+++ /dev/null
@@ -1,34 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.set"

-    DataContext="{StaticResource myCompany}">

-	<Composite.layout>

-		<GridLayout numColumns="1"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Company x:Key="myCompany">

-			<j:Company.employees>

-				<j:Employee Name="Thomas" Age="32"/>

-				<j:Employee Name="Jin" Age="27"/>

-			</j:Company.employees>

-		</j:Company>

-	</Composite.Resources>

-	<TableViewer Name="TableViewer" input="{Binding Path=employees}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Text name="Text" text="{Binding ElementName=TableViewer,path=singleSelection.(j:Employee.name),UpdateSourceTrigger=PropertyChanged}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable.java
deleted file mode 100644
index 3aa05df..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail.set;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewer_MasterDetail_NestedTable {

-	public static void main(String[] args) {

-

-		URL url = TableViewer_MasterDetail_NestedTable.class

-				.getResource(TableViewer_MasterDetail_NestedTable.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable.xwt
deleted file mode 100644
index 3abb170..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable.xwt
+++ /dev/null
@@ -1,51 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.set"

-    DataContext="{StaticResource MyDomain}">

-	<Composite.layout>

-		<GridLayout numColumns="1"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Industry x:Key="MyDomain">

-			<j:Industry.members>

-				<j:Company Name="Soyatec" >

-					<j:Company.employees>

-						<j:Employee Name="Thomas" Age="32"/>

-						<j:Employee Name="Jin" Age="27"/>

-					</j:Company.employees>

-				</j:Company>

-				<j:Company Name="Thales">

-				</j:Company>

-			</j:Industry.members>

-		</j:Industry>

-	</Composite.Resources>

-	<TableViewer Name="IndustryViewer" input="{Binding Path=members}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Label text="{Binding ElementName=IndustryViewer,path=singleSelection.(j:Company.name)}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-	<TableViewer Name="CompanyViewer" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />

-		</TableViewer.control.layoutData>

-	</TableViewer>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable_AddInput.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable_AddInput.java
deleted file mode 100644
index 021eeac..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable_AddInput.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail.set;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.set.IObservableSet;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewer_MasterDetail_NestedTable_AddInput {

-	public static void main(String[] args) {

-

-		URL url = TableViewer_MasterDetail_NestedTable_AddInput.class

-				.getResource(TableViewer_MasterDetail_NestedTable_AddInput.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void addEmployee(Object sender, Event event) {

-		TableViewer tableViewer = (TableViewer) XWT.findElementByName(

-				event.widget, "IndustryViewer");

-		Industry industry = (Industry) XWT.getDataContext(tableViewer);

-		Company company = null;

-		for (Company memeber : industry.getMembers()) {

-			if ("Soyatec".equals(memeber.getName())) {

-				company = memeber;

-				break;

-			}

-		}

-		IObservableValue observableValue = XWT.findObservableValue(

-				event.widget, tableViewer, "singleSelection");

-		observableValue.setValue(company);

-

-		TableViewer companyViewer = (TableViewer) XWT.findElementByName(

-				event.widget, "CompanyViewer1");

-

-		IObservableSet employees = (IObservableSet) companyViewer.getInput();

-		observableValue.setValue(company);

-		Employee employee = new Employee();

-		employee.setName("Bruno");

-		employee.setAge(24);

-		employees.add(employee);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable_AddInput.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable_AddInput.xwt
deleted file mode 100644
index f5b88c6..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable_AddInput.xwt
+++ /dev/null
@@ -1,65 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.set"

-    x:Class="org.eclipse.xwt.tests.jface.tableviewer.master.detail.set.TableViewer_MasterDetail_NestedTable_AddInput"

-    DataContext="{StaticResource MyDomain}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Industry x:Key="MyDomain">

-			<j:Industry.members>

-				<j:Company Name="Soyatec" >

-					<j:Company.employees>

-						<j:Employee Name="Thomas" Age="32"/>

-						<j:Employee Name="Jin" Age="27"/>

-					</j:Company.employees>

-				</j:Company>

-				<j:Company Name="Thales">

-				</j:Company>

-			</j:Industry.members>

-		</j:Industry>

-	</Composite.Resources>

-	<TableViewer Name="IndustryViewer" input="{Binding Path=members}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Label text="{Binding ElementName=IndustryViewer,path=singleSelection.(j:Company.name)}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-	<TableViewer Name="CompanyViewer1" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<TableViewer Name="CompanyViewer2" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Button name="AddButton" text="Add Employee" SelectionEvent="addEmployee" enabled="{Binding elementName=IndustryViewer,path=singleSelection }" />

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable_AddPath.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable_AddPath.java
deleted file mode 100644
index fd4187b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable_AddPath.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.tableviewer.master.detail.set;

-

-import java.net.URL;

-

-import org.eclipse.core.databinding.observable.set.IObservableSet;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TableViewer_MasterDetail_NestedTable_AddPath {

-	public static void main(String[] args) {

-

-		URL url = TableViewer_MasterDetail_NestedTable_AddPath.class

-				.getResource(TableViewer_MasterDetail_NestedTable_AddPath.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void addEmployee(Object sender, Event event) {

-		TableViewer tableViewer = (TableViewer) XWT.findElementByName(

-				event.widget, "IndustryViewer");

-		Industry industry = (Industry) XWT.getDataContext(tableViewer);

-		Company company = null;

-		for (Company memeber : industry.getMembers()) {

-			if ("Soyatec".equals(memeber.getName())) {

-				company = memeber;

-				break;

-			}

-		}

-		IObservableValue observableValue = XWT.findObservableValue(

-				event.widget, tableViewer, "singleSelection");

-		observableValue.setValue(company);

-

-		IObservableSet members = XWT.findObservableSet(event.widget,

-				tableViewer, "singleSelection.employees");

-		observableValue.setValue(company);

-		Employee employee = new Employee();

-		employee.setName("Bruno");

-		employee.setAge(24);

-		members.add(employee);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable_AddPath.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable_AddPath.xwt
deleted file mode 100644
index 14055d0..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable_AddPath.xwt
+++ /dev/null
@@ -1,65 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.set"

-    x:Class="org.eclipse.xwt.tests.jface.tableviewer.master.detail.set.TableViewer_MasterDetail_NestedTable_AddPath"

-    DataContext="{StaticResource MyDomain}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Industry x:Key="MyDomain">

-			<j:Industry.members>

-				<j:Company Name="Soyatec" >

-					<j:Company.employees>

-						<j:Employee Name="Thomas" Age="32"/>

-						<j:Employee Name="Jin" Age="27"/>

-					</j:Company.employees>

-				</j:Company>

-				<j:Company Name="Thales">

-				</j:Company>

-			</j:Industry.members>

-		</j:Industry>

-	</Composite.Resources>

-	<TableViewer Name="IndustryViewer" input="{Binding Path=members}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true"/>

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Label text="{Binding ElementName=IndustryViewer,path=singleSelection.(j:Company.name)}">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-	<TableViewer Name="CompanyViewer1" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<TableViewer Name="CompanyViewer2" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">

-		<TableViewer.columns>

-			<TableViewerColumn width="150" text="Name" bindingPath="name"/>

-			<TableViewerColumn width="150" text="Age" bindingPath="age"/>

-		</TableViewer.columns>

-		<TableViewer.table HeaderVisible="true">

-		</TableViewer.table>

-		<TableViewer.control.layoutData>

-			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 

-         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />

-		</TableViewer.control.layoutData>

-	</TableViewer>

-	<Button name="AddButton" text="Add Employee" SelectionEvent="addEmployee" enabled="{Binding elementName=IndustryViewer,path=singleSelection }" />

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/Person.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/Person.java
deleted file mode 100644
index 3d86b03..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/Person.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.treeviewer;

-

-public class Person {

-	protected String name;

-	protected int age;

-	protected Person[] children = new Person[0];

-	

-	protected Sex sex;

-	

-	public Sex getSex() {

-		return sex;

-	}

-

-	public void setSex(Sex sex) {

-		this.sex = sex;

-	}

-

-	public int getAge() {

-		return age;

-	}

-

-	public void setAge(int age) {

-		this.age = age;

-	}

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-	

-	public Person[] getChildren() {

-		return children;

-	}

-

-	public void setChildren(Person[] children) {

-		this.children = children;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/Sex.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/Sex.java
deleted file mode 100644
index 5ec7d40..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/Sex.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.treeviewer;

-

-public enum Sex {

-	Male, Female;

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_bindingPath.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_bindingPath.java
deleted file mode 100644
index 16d2fc7..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_bindingPath.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.treeviewer;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TreeViewer_bindingPath {

-	public static void main(String[] args) {

-

-		URL url = TreeViewer_bindingPath.class

-				.getResource(TreeViewer_bindingPath.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_bindingPath.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_bindingPath.xwt
deleted file mode 100644
index db53494..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_bindingPath.xwt
+++ /dev/null
@@ -1,31 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.treeviewer">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Person x:Key="myPerson" Name="Della Duck" sex="Male">

-		    <j:Person.children>

-				<j:Person Name="Downy O'Drake" sex="Male">

-				    <j:Person.children>

-						<j:Person Name="Hortense McDuck" Age="27" sex="Female"/>

-						<j:Person Name="Fergus McDuck" Age="27" sex="Female"/>

-				    </j:Person.children>

-		        </j:Person>

-				<j:Person Name="Donald Duck" sex="Male"/>

-		    </j:Person.children>

-		</j:Person>

-	</Composite.Resources>

-	<TreeViewer Name="TreeViewer" input="{StaticResource myPerson}" bindingPath="name">

-	    <TreeViewer.contentProvider> 

-			<ObservableTreeContentProvider contentPath="children"/>

-		</TreeViewer.contentProvider>

-		<TreeViewer.control.layoutData>

-			<GridData verticalAlignment="FILL"

-         		grabExcessVerticalSpace="true"

-         		horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</TreeViewer.control.layoutData>

-	</TreeViewer>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_itemText.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_itemText.java
deleted file mode 100644
index 75cb4b0..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_itemText.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.jface.treeviewer;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class TreeViewer_itemText {

-	public static void main(String[] args) {

-

-		URL url = TreeViewer_itemText.class

-				.getResource(TreeViewer_itemText.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_itemText.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_itemText.xwt
deleted file mode 100644
index fdc49ee..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_itemText.xwt
+++ /dev/null
@@ -1,31 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.treeviewer">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Person x:Key="myPerson" Name="Della Duck" sex="Male">

-		    <j:Person.children>

-				<j:Person Name="Downy O'Drake" sex="Male">

-				    <j:Person.children>

-						<j:Person Name="Hortense McDuck" Age="27" sex="Female"/>

-						<j:Person Name="Fergus McDuck" Age="27" sex="Female"/>

-				    </j:Person.children>

-		        </j:Person>

-				<j:Person Name="Donald Duck" sex="Male"/>

-		    </j:Person.children>

-		</j:Person>	

-	</Composite.Resources>

-	<TreeViewer Name="TreeViewer" input="{StaticResource myPerson}" itemText="{Binding path=name}">

-	    <TreeViewer.contentProvider> 

-			<ObservableTreeContentProvider contentPath="children"/>

-		</TreeViewer.contentProvider>

-		<TreeViewer.control.layoutData>

-			<GridData verticalAlignment="FILL"

-         		grabExcessVerticalSpace="true"

-         		horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</TreeViewer.control.layoutData>

-	</TreeViewer>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_itemText_itemImage.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_itemText_itemImage.xwt
deleted file mode 100644
index 0faa884..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_itemText_itemImage.xwt
+++ /dev/null
@@ -1,32 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.treeviewer">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Composite.Resources>

-		<j:Person x:Key="myPerson" Name="Della Duck" sex="Male">

-		    <j:Person.children>

-				<j:Person Name="Downy O'Drake" sex="Male">

-				    <j:Person.children>

-						<j:Person Name="Hortense McDuck" Age="27" sex="Female"/>

-						<j:Person Name="Fergus McDuck" Age="27" sex="Female"/>

-				    </j:Person.children>

-		        </j:Person>

-				<j:Person Name="Donald Duck" sex="Male"/>

-		    </j:Person.children>

-		</j:Person>

-	</Composite.Resources>

-	<TreeViewer Name="TreeViewer" input="{StaticResource myPerson}" itemText="name"

-	    itemImage="{Binding path=sex,converter=j:SexToImage}">

-	    <TreeViewer.contentProvider> 

-			<ObservableTreeContentProvider contentPath="children"/>

-		</TreeViewer.contentProvider>

-		<TreeViewer.control.layoutData>

-			<GridData verticalAlignment="FILL"

-         		grabExcessVerticalSpace="true"

-         		horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</TreeViewer.control.layoutData>

-	</TreeViewer>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/keybinding/keybinding.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/keybinding/keybinding.java
deleted file mode 100644
index 761fe73..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/keybinding/keybinding.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.keybinding;

-

-import java.net.URL;

-

-import org.eclipse.jface.dialogs.MessageDialog;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class keybinding {

-	public static void main(String[] args) {

-

-		URL url = keybinding.class.getResource(keybinding.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void helloWorld(Event event) {

-		MessageDialog.openInformation(XWT.findShell(event.widget), "Message",

-				"Hello World!");

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/keybinding/keybinding.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/keybinding/keybinding.xwt
deleted file mode 100644
index 21e106d..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/keybinding/keybinding.xwt
+++ /dev/null
@@ -1,20 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    x:Class="org.eclipse.xwt.tests.keybinding.keybinding"

-    text="Menu Styles Test">

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>

-	<Shell.menuBar>

-		<Menu x:style="BAR">

-			<MenuItem text="Cascade" x:style="CASCADE">

-				<MenuItem.menu>

-					<Menu x:style="DROP_DOWN ">

-						<MenuItem text="Push" x:style="PUSH" accelerator="SWT.CTRL | SWT.SHIFT | A"  image="demo.gif" SelectionEvent="helloWorld"/>

-						<MenuItem text="COM" x:style="PUSH" accelerator="CtrlC"  SelectionEvent="helloWorld"/>						

-					</Menu>

-				</MenuItem.menu>

-			</MenuItem> 

-		</Menu>

-	</Shell.menuBar>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/metaclass/Metaclass_Tests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/metaclass/Metaclass_Tests.java
deleted file mode 100644
index b2b3810..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/metaclass/Metaclass_Tests.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.metaclass;

-

-import junit.framework.TestCase;

-

-import org.eclipse.xwt.javabean.metadata.AbstractMetaclass;

-import org.eclipse.xwt.metadata.IObjectInitializer;

-

-public class Metaclass_Tests extends TestCase {

-

-	public void testInitilaizers() {

-		AbstractMetaclass metaclass = new AbstractMetaclass() {

-		};

-

-		IObjectInitializer initializer1 = new IObjectInitializer() {

-			public void initialize(Object object) {

-			}

-		};

-

-		IObjectInitializer initializer2 = new IObjectInitializer() {

-			public void initialize(Object object) {

-			}

-		};

-

-		IObjectInitializer initializer3 = new IObjectInitializer() {

-			public void initialize(Object object) {

-			}

-		};

-

-		metaclass.addInitializer(initializer1);

-

-		assertEquals(metaclass.getInitializers().length, 1);

-

-		metaclass.addInitializer(initializer1);

-		assertEquals(metaclass.getInitializers().length, 1);

-

-		metaclass.addInitializer(initializer2);

-		assertEquals(metaclass.getInitializers().length, 2);

-		assertEquals(metaclass.getInitializers()[0], initializer1);

-		assertEquals(metaclass.getInitializers()[1], initializer2);

-

-		metaclass.addInitializer(initializer3);

-		assertEquals(metaclass.getInitializers().length, 3);

-		assertEquals(metaclass.getInitializers()[0], initializer1);

-		assertEquals(metaclass.getInitializers()[1], initializer2);

-		assertEquals(metaclass.getInitializers()[2], initializer3);

-

-		metaclass.removeInitializer(initializer2);

-		assertEquals(metaclass.getInitializers().length, 2);

-		assertEquals(metaclass.getInitializers()[0], initializer1);

-		assertEquals(metaclass.getInitializers()[1], initializer3);

-

-		metaclass.removeInitializer(initializer1);

-		assertEquals(metaclass.getInitializers().length, 1);

-		assertEquals(metaclass.getInitializers()[0], initializer3);

-

-		metaclass.removeInitializer(initializer3);

-		assertEquals(metaclass.getInitializers().length, 0);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/ElementName_get.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/ElementName_get.java
deleted file mode 100644
index 0890202..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/ElementName_get.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.name;

-

-import java.net.URL;

-

-import org.eclipse.jface.dialogs.MessageDialog;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class ElementName_get {

-	public static void main(String[] args) {

-

-		URL url = ElementName_get.class.getResource(ElementName_get.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void handleButton(Event event) {

-		Label message = (Label) XWT.findElementByName(event.widget, "Message");

-		if (message == null) {

-			MessageDialog.openError(XWT.findShell(event.widget), "Test Name",

-					"Label message is not found");

-		} else {

-			MessageDialog.openInformation(XWT.findShell(event.widget),

-					"Test Name", "Name works.");

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/ElementName_get.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/ElementName_get.xwt
deleted file mode 100644
index 49d2562..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/ElementName_get.xwt
+++ /dev/null
@@ -1,4 +0,0 @@
-<Label xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    Name="LabelElement" 

-    text="NameT test"/>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/ElementName_x_get.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/ElementName_x_get.java
deleted file mode 100644
index 71968e5..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/ElementName_x_get.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.name;

-

-import java.net.URL;

-

-import org.eclipse.jface.dialogs.MessageDialog;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class ElementName_x_get {

-	public static void main(String[] args) {

-

-		URL url = ElementName_x_get.class.getResource(ElementName_x_get.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void handleButton(Event event) {

-		Label message = (Label) XWT.findElementByName(event.widget, "Message");

-		if (message == null) {

-			MessageDialog.openError(XWT.findShell(event.widget), "Test Name",

-					"Label message is not found");

-		} else {

-			MessageDialog.openInformation(XWT.findShell(event.widget),

-					"Test Name", "Name works.");

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/ElementName_x_get.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/ElementName_x_get.xwt
deleted file mode 100644
index 4883efb..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/ElementName_x_get.xwt
+++ /dev/null
@@ -1,4 +0,0 @@
-<Label xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    x:Name="LabelElement" 

-    text="NameT test"/>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name.java
deleted file mode 100644
index d759e3a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.name;

-

-import java.net.URL;

-

-import org.eclipse.jface.dialogs.MessageDialog;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Name {

-	public static void main(String[] args) {

-

-		URL url = Name.class.getResource(Name.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void handleButton(Event event) {

-		Label message = (Label) XWT.findElementByName(event.widget, "Message");

-		if (message == null) {

-			MessageDialog.openError(XWT.findShell(event.widget), "Test Name",

-					"Label message is not found");

-		} else {

-			MessageDialog.openInformation(XWT.findShell(event.widget),

-					"Test Name", "Name works.");

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name.xwt
deleted file mode 100644
index 2d6bbf8..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name.xwt
+++ /dev/null
@@ -1,10 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    x:Class="org.eclipse.xwt.tests.name.Name"

-    text="NameT test">

-    <Shell.layout>

-		<GridLayout numColumns="2"/>

-    </Shell.layout>

-    <Label Name="Message"/>

-	<Button SelectionEvent="handleButton" Text="Click Here"/>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/NameTestSuite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/NameTestSuite.java
deleted file mode 100644
index a822576..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/NameTestSuite.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.name;

-

-import junit.framework.Test;

-import junit.framework.TestSuite;

-

-public class NameTestSuite extends TestSuite {

-	public static final Test suite() {

-		return new NameTestSuite();

-	}

-

-	public NameTestSuite() {

-		addTest(new TestSuite(NameTests.class));

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/NameTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/NameTests.java
deleted file mode 100644
index 413dcf3..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/NameTests.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.name;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.swt.widgets.MenuItem;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class NameTests extends XWTTestCase {

-

-	public void testName() throws Exception {

-		URL url = NameTests.class.getResource(Name.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "Message");

-				assertTrue(element instanceof Label);

-			}

-		});

-	}

-

-	public void testNameX() throws Exception {

-		URL url = NameTests.class.getResource(Name_x.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "Message");

-				assertTrue(element instanceof Label);

-			}

-		});

-	}

-

-	public void testElementName() throws Exception {

-		URL url = NameTests.class.getResource(ElementName_get.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object element = XWT.getElementName(root);

-				assertEquals("LabelElement", element);

-			}

-		});

-	}

-

-	public void testElementNameX() throws Exception {

-		URL url = NameTests.class.getResource(ElementName_x_get.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object element = XWT.getElementName(root);

-				assertEquals("LabelElement", element);

-			}

-		});

-	}

-

-	public void testNameMenu() throws Exception {

-		URL url = NameTests.class.getResource(Name_Menu.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object element = XWT.findElementByName(root, "Message");

-				assertTrue(element instanceof MenuItem);

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name_Menu.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name_Menu.java
deleted file mode 100644
index 4fbdcb1..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name_Menu.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.name;

-

-import java.net.URL;

-

-import org.eclipse.jface.dialogs.MessageDialog;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.MenuItem;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Name_Menu {

-	public static void main(String[] args) {

-

-		URL url = Name_Menu.class.getResource(Name_Menu.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void handleButton(Event event) {

-		MenuItem message = (MenuItem) XWT.findElementByName(event.widget,

-				"Message");

-		if (message == null) {

-			MessageDialog.openError(XWT.findShell(event.widget), "Test Name",

-					"MenuItem message is not found");

-		} else {

-			MessageDialog.openInformation(XWT.findShell(event.widget),

-					"Test Name", "Name works.");

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name_Menu.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name_Menu.xwt
deleted file mode 100644
index b89d5c0..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name_Menu.xwt
+++ /dev/null
@@ -1,15 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    x:Class="org.eclipse.xwt.tests.name.Name_Menu"

-    text="NameT test">

-    <Shell.layout>

-		<GridLayout numColumns="2"/>

-    </Shell.layout>

-	<Button SelectionEvent="handleButton" Text="Click Here">

-		<Button.menu>

-			<Menu x:style="POP_UP">

-				<MenuItem Name="Message" text="Edit" x:style="PUSH"/>

-			</Menu>

-		</Button.menu>

-	</Button>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name_x.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name_x.java
deleted file mode 100644
index 5687f24..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name_x.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.name;

-

-import java.net.URL;

-

-import org.eclipse.jface.dialogs.MessageDialog;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Name_x {

-	public static void main(String[] args) {

-

-		URL url = Name_x.class.getResource(Name_x.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void handleButton(Event event) {

-		Label message = (Label) XWT.findElementByName(event.widget, "Message");

-		if (message == null) {

-			MessageDialog.openError(XWT.findShell(event.widget), "Test Name",

-					"Label message is not found");

-		} else {

-			MessageDialog.openInformation(XWT.findShell(event.widget),

-					"Test Name", "Name works.");

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name_x.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name_x.xwt
deleted file mode 100644
index b1f13c3..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name_x.xwt
+++ /dev/null
@@ -1,10 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    x:Class="org.eclipse.xwt.tests.name.Name_x"

-    text="NameT test">

-    <Shell.layout>

-		<GridLayout numColumns="2"/>

-    </Shell.layout>

-    <Label x:Name="Message"/>

-	<Button SelectionEvent="handleButton" Text="Click Here"/>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/ExtHandler.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/ExtHandler.java
deleted file mode 100644
index e2842da..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/ExtHandler.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.namespace.handler;

-

-import org.eclipse.swt.widgets.Widget;

-import org.eclipse.xwt.INamespaceHandler;

-

-public class ExtHandler implements INamespaceHandler {

-	public void handleAttribute(Widget widget, Object target, String name,

-			String value) {

-		widget.setData(name, value);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/LabelExt.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/LabelExt.java
deleted file mode 100644
index 661d2a3..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/LabelExt.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.namespace.handler;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class LabelExt {

-	public static void main(String[] args) {

-		URL url = LabelExt.class.getResource(LabelExt.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.registerNamespaceHandler("http://www.eclipse.org/ext",

-					new ExtHandler());

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/LabelExt.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/LabelExt.xwt
deleted file mode 100644
index 82522e5..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/LabelExt.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:ext="http://www.eclipse.org/ext">

-	<Shell.layout>

-		<GridLayout numColumns="2"/>

-	</Shell.layout>

-	<Label name="targetLabel" text="Target Label" ext:id="Ext-Id" />

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/NamespaceHandlerTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/NamespaceHandlerTests.java
deleted file mode 100644
index d2d2be0..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/NamespaceHandlerTests.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.namespace.handler;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class NamespaceHandlerTests extends XWTTestCase {

-

-	public void testLabelExt() throws Exception {

-		XWT.registerNamespaceHandler("http://www.eclipse.org/ext",

-				new ExtHandler());

-		URL url = NamespaceHandlerTests.class.getResource(LabelExt.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkLabel();

-			}

-

-			public void checkLabel() {

-				Object element = XWT.findElementByName(root, "targetLabel");

-				assertTrue(element instanceof Label);

-				Label label = (Label) element;

-				assertEquals(label.getData("id"), "Ext-Id");

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/NamespacehandlerTestSuite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/NamespacehandlerTestSuite.java
deleted file mode 100644
index ae824d2..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/NamespacehandlerTestSuite.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.namespace.handler;

-

-import junit.framework.Test;

-import junit.framework.TestSuite;

-

-public class NamespacehandlerTestSuite extends TestSuite {

-	public static final Test suite() {

-		return new NamespacehandlerTestSuite();

-	}

-

-	public NamespacehandlerTestSuite() {

-		addTest(new TestSuite(NamespaceHandlerTests.class));

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Color_Test.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Color_Test.java
deleted file mode 100644
index 724ab6f..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Color_Test.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.resources;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Color_Test {

-	public static void main(String[] args) {

-

-		URL url = Color_Test.class.getResource(Color_Test.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Color_Test.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Color_Test.xwt
deleted file mode 100644
index bb2e712..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Color_Test.xwt
+++ /dev/null
@@ -1,20 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    text="Color Test">

-    <Shell.layout>

-    	<FillLayout/>

-    </Shell.layout>

-    <Composite>

-    	<Composite.layout>

-    		<GridLayout numColumns="1"/>

-    	</Composite.layout>

-    	<Label text="Background Color Red " Background="Red"/>

-    	<Label text="Foreground Color Green " Foreground="Green"/>

-    	<Label text="Background Color Red " Background="COLOR_RED"/>

-    	<Label text="Foreground Color Green " Foreground="COLOR_GREEN"/>

-    	<Label text="Background Color Red " Background="#FF0000"/>

-    	<Label text="Foreground Color Green " Foreground="#00FF00"/>

-    	<Label text="Background Color Red " Background="255, 0, 0"/>

-    	<Label text="Foreground Color Green " Foreground="0, 255, 0"/>

-    </Composite>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Font_Test.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Font_Test.java
deleted file mode 100644
index 9f1de00..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Font_Test.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.resources;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Font_Test {

-	public static void main(String[] args) {

-

-		URL url = Font_Test.class.getResource(Font_Test.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Font_Test.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Font_Test.xwt
deleted file mode 100644
index 381ef4e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Font_Test.xwt
+++ /dev/null
@@ -1,15 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    text="Font Test">

-    <Shell.layout>

-    	<FillLayout/>

-    </Shell.layout>

-    <Composite>

-    	<Composite.layout>

-    		<GridLayout numColumns="1"/>

-    	</Composite.layout>

-    	<Label x:style = "BORDER" text="Font = (Times New Roman, 14, BOLD|ITALIC)" Font="Times New Roman, 14, BOLD|ITALIC"/>

-    	<Label x:style = "BORDER" text="Font = (Arial, 12, NORMAL)" Font="Arial, 14, NORMAL"/>

-    	<Label x:style = "BORDER" text="Font = (Default)"/>

-    </Composite>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Image_Test.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Image_Test.java
deleted file mode 100644
index 5fdb2ac..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Image_Test.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.resources;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Image_Test {

-	public static void main(String[] args) {

-

-		URL url = Image_Test.class.getResource(Image_Test.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Image_Test.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Image_Test.xwt
deleted file mode 100644
index 70cd70c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Image_Test.xwt
+++ /dev/null
@@ -1,9 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    text="Image Test">

-	<Shell.layout>

-		<GridLayout numColumns="1"/>

-	</Shell.layout>

-	<Label name="targetLabel" x:style="BORDER" Image="demo.gif"/>

-	<Button name="targetButton" text="Hello SWT: " Image="demo.gif"/>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/ResourcesTestSuite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/ResourcesTestSuite.java
deleted file mode 100644
index 8d0522e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/ResourcesTestSuite.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.resources;

-

-import junit.framework.Test;

-import junit.framework.TestSuite;

-

-public class ResourcesTestSuite extends TestSuite {

-	public static final Test suite() {

-		return new ResourcesTestSuite();

-	}

-

-	public ResourcesTestSuite() {

-		addTest(new TestSuite(ResourcesTests.class));

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/ResourcesTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/ResourcesTests.java
deleted file mode 100644
index 1a938aa..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/ResourcesTests.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.resources;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class ResourcesTests extends XWTTestCase {

-

-	public void testImage() throws Exception {

-		URL url = ResourcesTests.class.getResource(Image_Test.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				checkLabel();

-				checkButton();

-			}

-

-			public void checkLabel() {

-				Object element = XWT.findElementByName(root, "targetLabel");

-				assertTrue(element instanceof Label);

-				Label label = (Label) element;

-				assertNotNull(label.getImage());

-			}

-

-			public void checkButton() {

-				Object element = XWT.findElementByName(root, "targetButton");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				assertNotNull(button.getImage());

-			}

-		});

-	}

-

-	// TODO add Font and Color

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/Container.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/Container.java
deleted file mode 100644
index df725f1..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/Container.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.resourcesdictionary;

-

-import java.net.URL;

-

-import org.eclipse.jface.dialogs.MessageDialog;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Container {

-

-	public static void main(String[] args) {

-

-		URL url = Container.class.getResource(Container.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void findElement(Event event) {

-		if (XWT.findElementByName(event.widget, "target") != null) {

-			MessageDialog.openInformation(XWT.findShell(event.widget),

-					"Message", "Element is Found");

-		} else {

-			MessageDialog.openError(XWT.findShell(event.widget), "Message",

-					"No Found");

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/Container.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/Container.xwt
deleted file mode 100644
index 86b3442..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/Container.xwt
+++ /dev/null
@@ -1,9 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.resourcesdictionary"

-    x:Class="j:Name">	

-	<Composite.Resources>

-		<j:MyData x:Key="myDBC1"/>

-		<j:MyData x:Key="myDBC2"/>

-	</Composite.Resources>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/MyData.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/MyData.java
deleted file mode 100644
index 1b60905..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/MyData.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.resourcesdictionary;

-

-public class MyData {

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/ResourcesDictionaryTestSuite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/ResourcesDictionaryTestSuite.java
deleted file mode 100644
index 6e0f81b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/ResourcesDictionaryTestSuite.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.resourcesdictionary;

-

-import junit.framework.Test;

-import junit.framework.TestSuite;

-

-public class ResourcesDictionaryTestSuite extends TestSuite {

-	public static final Test suite() {

-		return new ResourcesDictionaryTestSuite();

-	}

-

-	public ResourcesDictionaryTestSuite() {

-		addTest(new TestSuite(ResourcesDictionaryTests.class));

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/ResourcesDictionaryTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/ResourcesDictionaryTests.java
deleted file mode 100644
index fd63cbb..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/ResourcesDictionaryTests.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.resourcesdictionary;

-

-import java.net.URL;

-import java.util.Map;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class ResourcesDictionaryTests extends XWTTestCase {

-

-	public void testFindResource() throws Exception {

-		URL url = ResourcesDictionaryTests.class.getResource(Container.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object element1 = XWT.findResource(root, "myDBC1");

-				assertTrue(element1 instanceof MyData);

-				Object element2 = XWT.findResource(root, "myDBC2");

-				assertTrue(element2 instanceof MyData);

-			}

-		});

-	}

-

-	public void testGetResources() throws Exception {

-		URL url = ResourcesDictionaryTests.class.getResource(Container.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Map<String, Object> dictionary = XWT.getResources(root);

-				assertEquals(2, dictionary.size());

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/MyUserControl.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/MyUserControl.java
deleted file mode 100644
index e804896..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/MyUserControl.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.style;

-

-import org.eclipse.swt.widgets.Composite;

-

-public class MyUserControl extends Composite {

-

-	public MyUserControl(Composite parent, int style) {

-		super(parent, style);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/MyUserControl.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/MyUserControl.xwt
deleted file mode 100644
index eb6b193..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/MyUserControl.xwt
+++ /dev/null
@@ -1,9 +0,0 @@
-<j:MyUserControl xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:j="clr-namespace:org.eclipse.xwt.tests.style"

-	x:Class="org.eclipse.xwt.tests.style.MyUserControl">

-	<j:MyUserControl.layout>

-		<GridLayout numColumns="2"/>

-	</j:MyUserControl.layout>	

-	<Label text="Hello, world"/>

-</j:MyUserControl>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/StyleTestSuite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/StyleTestSuite.java
deleted file mode 100644
index 814e50e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/StyleTestSuite.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.style;

-

-import junit.framework.Test;

-import junit.framework.TestSuite;

-

-public class StyleTestSuite extends TestSuite {

-	public static final Test suite() {

-		return new StyleTestSuite();

-	}

-

-	public StyleTestSuite() {

-		addTest(new TestSuite(StyleTests.class));

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/StyleTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/StyleTests.java
deleted file mode 100644
index 6f1b8ef..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/StyleTests.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.style;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class StyleTests extends XWTTestCase {

-

-	public void test_Style_Trigger_setter() {

-		URL url = StyleTests.class.getResource(Style_Trigger_setter.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button button = (Button) XWT.findElementByName(root, "Button");

-				selectButton(button);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Button button = (Button) XWT.findElementByName(root, "Button");

-				assertFalse(button.isVisible());

-			}

-		});

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_EventTrigger.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_EventTrigger.java
deleted file mode 100644
index 6a0a906..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_EventTrigger.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.style;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Style_EventTrigger {

-

-	/**

-	 * @param args

-	 */

-	public static void main(String[] args) {

-

-		URL url = Style_EventTrigger.class.getResource(Style_EventTrigger.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_EventTrigger.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_EventTrigger.xwt
deleted file mode 100644
index d78950a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_EventTrigger.xwt
+++ /dev/null
@@ -1,33 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>	

-	

-	<Composite.Resources>

-		<Style x:Key="any" TargetType="Label">

-			<!-- Event trigger -->

-			<Style.Triggers>

-			    <EventTrigger RoutedEvent="MouseEnter">

-			        <BeginStoryboard>

-			            <Storyboard>

-			              <DoubleAnimation To="300" Duration="0:0:1.5" 

-			                AccelerationRatio="0.10" DecelerationRatio="0.25" 

-			                Storyboard.TargetProperty="(Canvas.Width)" />

-			            </Storyboard>

-			        </BeginStoryboard>

-			    </EventTrigger>

-			    <EventTrigger RoutedEvent="MouseLeave">

-			        <BeginStoryboard>

-			            <Storyboard>

-			              <DoubleAnimation Duration="0:0:1.5" 

-			                AccelerationRatio="0.10" DecelerationRatio="0.25" 

-			                Storyboard.TargetProperty="(Canvas.Width)" />

-			            </Storyboard>

-			        </BeginStoryboard>

-			    </EventTrigger>

-			</Style.Triggers>

-		</Style>

-	</Composite.Resources>

-	<Label Text="Event Trigger"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_Trigger.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_Trigger.java
deleted file mode 100644
index ae3375b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_Trigger.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.style;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Style_Trigger {

-

-	/**

-	 * @param args

-	 */

-	public static void main(String[] args) {

-

-		URL url = Style_Trigger.class.getResource(Style_Trigger.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_Trigger.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_Trigger.xwt
deleted file mode 100644
index 76c1ecc..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_Trigger.xwt
+++ /dev/null
@@ -1,20 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-

-	<Composite.Resources>

-		<Style x:Key="any" TargetType="Button">

-			<!-- Property trigger -->

-			<Style.Triggers>

-				<Trigger Property="Selection" Value="True">

-					<Trigger.Setters>

-						<Setter Property="Visible" Value="False" />

-					</Trigger.Setters>

-				</Trigger>

-			</Style.Triggers>

-		</Style>

-	</Composite.Resources>

-	<Button x:Style="CHECK" Text="Trigger"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_Trigger_setter.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_Trigger_setter.java
deleted file mode 100644
index 7eb0299..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_Trigger_setter.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.style;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Style_Trigger_setter {

-

-	/**

-	 * @param args

-	 */

-	public static void main(String[] args) {

-		URL url = Style_Trigger_setter.class

-				.getResource(Style_Trigger_setter.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	public void StyleTriggerSetterTest() {

-

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_Trigger_setter.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_Trigger_setter.xwt
deleted file mode 100644
index d047217..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_Trigger_setter.xwt
+++ /dev/null
@@ -1,18 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>	

-	

-	<Composite.Resources>

-		<Style x:Key="any" TargetType="Button">

-			<!-- Property trigger -->

-			<Style.Triggers>

-				<Trigger Property="Selection" Value="True">

-					<Setter Property="Visible" Value="False" />

-				</Trigger>

-			</Style.Triggers>

-		</Style>

-	</Composite.Resources>

-	<Button Name="Button" x:Style="SWT.CHECK" Text="Trigger"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl.java
deleted file mode 100644
index 3bde369..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.style;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class UserControl {

-

-	/**

-	 * @param args

-	 */

-	public static void main(String[] args) {

-

-		URL url = UserControl.class.getResource(UserControl.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl.xwt
deleted file mode 100644
index bf73f5a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl.xwt
+++ /dev/null
@@ -1,13 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>	

-	

-	<Composite.Resources>

-		<Style x:Key="myStyle">

-			<Setter Property="Background" Value="Red"/>

-		</Style>

-	</Composite.Resources>

-	<Label Style="{StaticResource myStyle}" Text="Hello"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default.java
deleted file mode 100644
index 8ae0ae1..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.style;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class UserControl_Default {

-

-	/**

-	 * @param args

-	 */

-	public static void main(String[] args) {

-

-		URL url = UserControl_Default.class

-				.getResource(UserControl_Default.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default.xwt
deleted file mode 100644
index 6f0ca34..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default.xwt
+++ /dev/null
@@ -1,13 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>	

-	

-	<Composite.Resources>

-		<Style x:Key="any" TargetType="Label">

-			<Setter Property="Background" Value="Red"/>

-		</Style>

-	</Composite.Resources>

-	<Label Text="Hello"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_Customized.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_Customized.java
deleted file mode 100644
index 449d79f..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_Customized.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.style;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class UserControl_Default_Customized {

-

-	/**

-	 * @param args

-	 */

-	public static void main(String[] args) {

-

-		URL url = UserControl_Default_Customized.class

-				.getResource(UserControl_Default_Customized.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_Customized.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_Customized.xwt
deleted file mode 100644
index eb46aae..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_Customized.xwt
+++ /dev/null
@@ -1,14 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:j="clr-namespace:org.eclipse.xwt.tests.style">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>	

-	

-	<Composite.Resources>

-		<Style x:Key="any" TargetType="j:MyUserControl">

-			<Setter Property="Background" Value="Red"/>

-		</Style>

-	</Composite.Resources>

-	<j:MyUserControl Text="Hello"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_x.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_x.java
deleted file mode 100644
index e637db2..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_x.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.style;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class UserControl_Default_x {

-

-	/**

-	 * @param args

-	 */

-	public static void main(String[] args) {

-

-		URL url = UserControl_Default_x.class

-				.getResource(UserControl_Default_x.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_x.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_x.xwt
deleted file mode 100644
index bfe4f44..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_x.xwt
+++ /dev/null
@@ -1,13 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>	

-	

-	<Composite.Resources>

-		<Style x:Key="any" TargetType="{x:Type Label}">

-			<Setter Property="Background" Value="Red"/>

-		</Style>

-	</Composite.Resources>

-	<Label Text="Hello"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_x_Customized.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_x_Customized.java
deleted file mode 100644
index ec5dc87..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_x_Customized.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.style;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class UserControl_Default_x_Customized {

-

-	/**

-	 * @param args

-	 */

-	public static void main(String[] args) {

-

-		URL url = UserControl_Default_x_Customized.class

-				.getResource(UserControl_Default_x_Customized.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_x_Customized.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_x_Customized.xwt
deleted file mode 100644
index 5a2dbaf..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_x_Customized.xwt
+++ /dev/null
@@ -1,14 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:j="clr-namespace:org.eclipse.xwt.tests.style">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>	

-	

-	<Composite.Resources>

-		<Style x:Key="any" TargetType="{x:Type j:MyUserControl}">

-			<Setter Property="Background" Value="Red"/>

-		</Style>

-	</Composite.Resources>

-	<j:MyUserControl/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/HelloWorld.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/HelloWorld.java
deleted file mode 100644
index 0a553e9..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/HelloWorld.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.style.css;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.css.CSSStyle;

-

-public class HelloWorld {

-	public static void main(String[] args) {

-		URL url = HelloWorld.class.getResource(HelloWorld.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			URL cssURL = HelloWorld.class.getResource("style.css");

-			XWT.addDefaultStyle(new CSSStyle(cssURL));

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/HelloWorld.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/HelloWorld.xwt
deleted file mode 100644
index 87e4240..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/HelloWorld.xwt
+++ /dev/null
@@ -1,10 +0,0 @@
- <Composite xmlns="http://www.eclipse.org/xwt/presentation">

-<!--  	<Composite.Resources>

-     <CSSStyle x:Key="style" url="/test/style.css"/>

-    </Composite.Resources> -->

-	<Composite.layout>

-		<GridLayout numColumns="2" />

-	</Composite.layout>

-	<Text text="bla bla bla   "/>

-	<Text text="bla bla bla   " />

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/MainEventHandler.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/MainEventHandler.java
deleted file mode 100644
index b582c23..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/MainEventHandler.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.style.css;

-

-import java.io.IOException;

-import java.io.StringReader;

-

-import org.eclipse.e4.ui.css.core.engine.CSSEngine;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.xwt.css.CSSStyle;

-import org.eclipse.xwt.css.CSSXWT;

-

-public class MainEventHandler {

-

-	/**

-	 * @param event

-	 */

-	public void updateCSSEngine(Event event) {

-		Text text = (Text) event.widget;

-		CSSEngine engine = CSSXWT.getCSSEngine(text);

-		if (engine == null) {

-			CSSStyle cssStyle = new CSSStyle();

-			cssStyle.setContent(text.getText());

-			cssStyle.applyStyle(text);

-		} else {

-			engine.reset();

-			try {

-				// Parse style sheet

-				engine.parseStyleSheet(new StringReader(text.getText()));

-

-				// Re-apply styles for the whole widgets

-				engine.applyStyles(text.getShell(), true, true);

-

-			} catch (IOException e) {

-				// TODO Auto-generated catch block

-				e.printStackTrace();

-			}

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/StyleApplyAtRuntime.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/StyleApplyAtRuntime.java
deleted file mode 100644
index 16e0304..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/StyleApplyAtRuntime.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.style.css;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class StyleApplyAtRuntime {

-	public static void main(String[] args) {

-		URL url = StyleApplyAtRuntime.class

-				.getResource(StyleApplyAtRuntime.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/StyleApplyAtRuntime.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/StyleApplyAtRuntime.xwt
deleted file mode 100644
index 86ef18f..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/StyleApplyAtRuntime.xwt
+++ /dev/null
@@ -1,10 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

- 		   xmlns:x="http://www.eclipse.org/xwt"

- 		   x:Class="org.eclipse.xwt.tests.style.css.MainEventHandler" >

-	<Composite.layout>

-		<GridLayout numColumns="2" />

-	</Composite.layout>

-	<Text background="COLOR_BLUE" />

-	<Text x:style="MULTI"

-		  text="Text{color:blue;background-color:red;}" ModifyEvent="updateCSSEngine" />

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/style.css b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/style.css
deleted file mode 100644
index 9bf680a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/style.css
+++ /dev/null
@@ -1,15 +0,0 @@
-Text {

-   color:white;

-   background-color:#98cbbc;

-}

-

-Text:focus {

-   	color:yellow;

-	background-color:#008080;

-	font:bold;

-}

-

-Text:hover {

-   	color:black;

-	background-color:#edb5f4;

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/GreenStyle.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/GreenStyle.java
deleted file mode 100644
index 0e42320..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/GreenStyle.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.style.java;

-

-import org.eclipse.jface.viewers.Viewer;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.xwt.IStyle;

-import org.eclipse.xwt.XWT;

-

-/**

- * Style is handled in Java

- * 

- * @author yyang

- */

-public class GreenStyle implements IStyle {

-

-	public void applyStyle(Object target) {

-		String name = XWT.getElementName(target);

-		Control control = null;

-		if (target instanceof Control) {

-			control = (Control) target;

-		} else if (target instanceof Viewer) {

-			Viewer viewer = (Viewer) target;

-			control = (Control) viewer.getControl();

-		}

-		if (control != null) {

-			control.setBackground(control.getDisplay().getSystemColor(

-					SWT.COLOR_DARK_GREEN));

-			control.setData("__MySignature", name);

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/JavaDefaultStyle.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/JavaDefaultStyle.java
deleted file mode 100644
index 676aa21..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/JavaDefaultStyle.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.style.java;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class JavaDefaultStyle {

-

-	/**

-	 * Default styles are used for entire application

-	 * 

-	 * @param args

-	 */

-	public static void main(String[] args) {

-

-		URL url = JavaDefaultStyle.class.getResource("Style"

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.addDefaultStyle(new GreenStyle());

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/JavaInlineStyle.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/JavaInlineStyle.java
deleted file mode 100644
index 10698ce..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/JavaInlineStyle.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.style.java;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class JavaInlineStyle {

-

-	/**

-	 * Style is defined in XWT file.

-	 * 

-	 * @param args

-	 */

-	public static void main(String[] args) {

-

-		URL url = JavaInlineStyle.class.getResource(JavaInlineStyle.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/JavaInlineStyle.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/JavaInlineStyle.xwt
deleted file mode 100644
index 6a7ba0b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/JavaInlineStyle.xwt
+++ /dev/null
@@ -1,12 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:j="clr-namespace:org.eclipse.xwt.tests.style.java">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>	

-	

-	<Composite.Resources>

-		<j:GreenStyle x:Key="myStyle"/>

-	</Composite.Resources>

-	<Label Text="Hello"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/LoadingStyle.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/LoadingStyle.java
deleted file mode 100644
index d85d768..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/LoadingStyle.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.style.java;

-

-import java.net.URL;

-import java.util.HashMap;

-import java.util.Map;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.IXWTLoader;

-import org.eclipse.xwt.XWT;

-

-public class LoadingStyle {

-

-	/**

-	 * Style is provided in loading. The style is applied only on this file.

-	 * 

-	 * @param args

-	 */

-	public static void main(String[] args) {

-

-		URL url = LoadingStyle.class.getResource("Style"

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			Map<String, Object> options = new HashMap<String, Object>();

-			options.put(IXWTLoader.DEFAULT_STYLES_PROPERTY, new GreenStyle());

-			XWT.open(url, options);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/RedStyle.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/RedStyle.xwt
deleted file mode 100644
index 263e0d9..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/RedStyle.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:j="clr-namespace:org.eclipse.xwt.tests.style.java">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>	

-	<Label Text="Hello" Background="Red"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/Style.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/Style.xwt
deleted file mode 100644
index 6061807..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/Style.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:j="clr-namespace:org.eclipse.xwt.tests.style.java">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>	

-	<Label Text="Hello"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/XWTOverGlobalStyle.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/XWTOverGlobalStyle.java
deleted file mode 100644
index b0cdd1c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/XWTOverGlobalStyle.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.style.java;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class XWTOverGlobalStyle {

-

-	/**

-	 * @param args

-	 */

-	public static void main(String[] args) {

-

-		URL url = XWTOverGlobalStyle.class.getResource("RedStyle"

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.addDefaultStyle(new GreenStyle());

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/MyElement.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/MyElement.java
deleted file mode 100644
index 4ecbffb..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/MyElement.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.swt;

-

-import org.eclipse.swt.widgets.Composite;

-

-public class MyElement extends Composite {

-	public static final int MY_STYLE = 0xF0000000;

-	

-	protected boolean myStyle = false; 

-	

-	public MyElement(Composite parent, int style) {

-		super(parent, style);

-		

-		if ((style & MY_STYLE) == MY_STYLE) {

-			myStyle = true;

-		}

-	}

-

-	public boolean isMyStyle() {

-		return myStyle;

-	}

-

-	public void setMyStyle(boolean myStyle) {

-		this.myStyle = myStyle;

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/SWTStyleTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/SWTStyleTests.java
deleted file mode 100644
index 2630797..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/SWTStyleTests.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.swt;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-/**

- * This class test the function about OperatorHelper

- * 

- * @author YaHong.Song(yahong.song@soyatec.com)

- * 

- */

-public class SWTStyleTests extends XWTTestCase {

-

-	/**

-	 * The extensibility of Value resolver like <class>.member

-	 * 

-	 */

-	public void testSWT_Style_Customized() throws Exception {

-		URL url = Style.class.getResource(Style_Customized.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object object = XWT.findElementByName(root, "MyElement");

-				assertTrue(object instanceof MyElement);

-				MyElement myElement = (MyElement) object;

-				assertTrue(myElement.isMyStyle());				

-			}

-		});

-	}

-

-	

-	/**

-	 * this test must be at the last test since it modifies the XWT

-	 * 

-	 * @throws Exception

-	 */

-	public void testSWT_Style_Default() throws Exception {

-		URL url = Style.class.getResource(Style.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		XWT.registerMetaclass(MyElement.class);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object object = XWT.findElementByName(root, "MyElement");

-				assertTrue(object instanceof MyElement);

-				MyElement myElement = (MyElement) object;

-				assertTrue(myElement.isMyStyle());				

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/SWTTestSuite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/SWTTestSuite.java
deleted file mode 100644
index 1dfef65..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/SWTTestSuite.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.swt;

-

-import junit.framework.Test;

-import junit.framework.TestSuite;

-

-public class SWTTestSuite extends TestSuite {

-	public static final Test suite() {

-		return new SWTTestSuite();

-	}

-

-	public SWTTestSuite() {

-		addTest(new TestSuite(SWTStyleTests.class));

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/Style.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/Style.java
deleted file mode 100644
index 230ccbf..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/Style.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.swt;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Style {

-	public static void main(String[] args) {

-		XWT.registerMetaclass(MyElement.class);

-		

-		URL url = Style.class.getResource(Style.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/Style.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/Style.xwt
deleted file mode 100644
index c0711c9..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/Style.xwt
+++ /dev/null
@@ -1,9 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    x:Class="org.eclipse.xwt.tests.name.Name"

-    text="NameT test">

-    <Shell.layout>

-		<GridLayout numColumns="2"/>

-    </Shell.layout>

-    <MyElement Name="MyElement" x:Style="MyElement.MY_STYLE"/>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/Style_Customized.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/Style_Customized.java
deleted file mode 100644
index fd0a30b..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/Style_Customized.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.swt;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Style_Customized {

-	public static void main(String[] args) {

-

-		URL url = Style_Customized.class.getResource(Style_Customized.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/Style_Customized.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/Style_Customized.xwt
deleted file mode 100644
index c31190a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/Style_Customized.xwt
+++ /dev/null
@@ -1,10 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    x:Class="org.eclipse.xwt.tests.name.Name"

-    xmlns:j="clr-namespace:org.eclipse.xwt.tests.swt"

-    text="NameT test">

-    <Shell.layout>

-		<GridLayout numColumns="2"/>

-    </Shell.layout>

-    <j:MyElement Name="MyElement" x:Style="(j:MyElement).MY_STYLE"/>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/threading/Threading.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/threading/Threading.java
deleted file mode 100644
index 1fc4161..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/threading/Threading.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.threading;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Threading {

-	public static void main(String[] args) {

-		new Thread() {

-			@Override

-			public void run() {

-				URL url = Threading.class.getResource(Threading.class

-						.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-				try {

-					XWT.open(url);

-				} catch (Exception e) {

-					e.printStackTrace();

-				}

-			}

-		}.start();

-

-		new Thread() {

-			@Override

-			public void run() {

-				URL url = Threading.class.getResource(Threading.class

-						.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-				try {

-					XWT.open(url);

-				} catch (Exception e) {

-					e.printStackTrace();

-				}

-			}

-		}.start();

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/threading/Threading.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/threading/Threading.xwt
deleted file mode 100644
index a9a85b3..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/threading/Threading.xwt
+++ /dev/null
@@ -1,6 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation">

-	<Composite.layout>

-		<GridLayout numColumns="2" />

-	</Composite.layout>

-	<Text background="SWT.COLOR_BLUE" />

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/threading/ThreadingSuite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/threading/ThreadingSuite.java
deleted file mode 100644
index a684243..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/threading/ThreadingSuite.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.threading;

-

-import junit.framework.Test;

-import junit.framework.TestSuite;

-

-public class ThreadingSuite extends TestSuite {

-	public static final Test suite() {

-		return new ThreadingSuite();

-	}

-

-	public ThreadingSuite() {

-		addTest(new TestSuite(ThreadingTests.class));

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/threading/ThreadingTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/threading/ThreadingTests.java
deleted file mode 100644
index eaf7561..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/threading/ThreadingTests.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.threading;

-

-import java.net.URL;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-/**

- * @author yyang(yves.yang@soyatec.com)

- */

-public class ThreadingTests extends XWTTestCase {

-	protected boolean openStarted = false;

-	protected int shells = 0;

-	

-	/**

-	 * The extensibility of Value resolver like <class>.member

-	 * 

-	 */

-	public void testThreading_Open() throws Exception {

-		if (SWT.getPlatform().equals("gtk")) {

-			clearnUpDisplay();

-		}

-		else {

-			Display.getDefault().dispose();			

-		}

-		if (SWT.getPlatform().equals("cocoa") || SWT.getPlatform().equals("carbon")) {			

-			macDoTestThreading_Open();

-		}

-		else {

-			doTestThreading_Open();

-		}

-	}

-

-	public void macDoTestThreading_Open() throws Exception {		

-		XWT.getAllMetaclasses(); // invoke XWT initialization in the main thread. 

-		

-		URL url = ThreadingTests.class.getResource(Threading.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		

-		Thread thread1 = new Thread() {

-			@Override

-			public void run() {

-				URL url = Threading.class.getResource(Threading.class

-						.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-				try {

-					openStarted = true;

-					XWT.open(url);

-				} catch (Exception e) {

-					e.printStackTrace();

-				}

-			}

-		};

-

-		Thread thread2 = new Thread() {

-			@Override

-			public void run() {

-				URL url = Threading.class.getResource(Threading.class

-						.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-				try {

-					openStarted = true;

-					XWT.open(url);

-				} catch (Exception e) {

-					e.printStackTrace();

-				}

-			}

-		};

-

-		thread1.start();

-		thread2.start();

-		

-		long startTime = -1;

-		for (int i = 0; i< 100; i++) {

-			if (!Display.getDefault().readAndDispatch()) {

-				Display.getDefault().sleep();

-			}

-			

-			if (Display.getDefault().getShells().length == 2) {

-				break;

-			}

-			

-			Shell[] shells = Display.getDefault().getShells();

-			if (shells.length == 0) {

-				if (startTime == -1) {

-					startTime = System.currentTimeMillis();

-				}

-				else if ((System.currentTimeMillis() - startTime) > 1000) {

-					assertFalse(true);

-					break;

-				}

-			}

-			else {

-				startTime = -1;

-			}

-		}

-	}

-

-	public void doTestThreading_Open() throws Exception {

-		URL url = ThreadingTests.class.getResource(Threading.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		

-		Thread thread1 = new Thread() {

-			@Override

-			public void run() {

-				URL url = Threading.class.getResource(Threading.class

-						.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-				try {

-					openStarted = true;

-					XWT.open(url);

-				} catch (Exception e) {

-					e.printStackTrace();

-				}

-			}

-		};

-

-		Thread thread2 = new Thread() {

-			@Override

-			public void run() {

-				URL url = Threading.class.getResource(Threading.class

-						.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);

-				try {

-					openStarted = true;

-					XWT.open(url);

-				} catch (Exception e) {

-					e.printStackTrace();

-				}

-			}

-		};

-

-		thread1.start();

-		thread2.start();

-		

-		if (SWT.getPlatform().startsWith("win")) {

-			for (int i = 0; i < 100; i++) {

-				if (Display.findDisplay(thread1) == null && Display.findDisplay(thread2) == null) {

-					Thread.sleep(500);				

-				}

-			}

-			assertTrue(Display.findDisplay(thread1) != null || Display.findDisplay(thread2) != null);

-	

-			for (int i = 0; i < 10; i++) {

-				if (Display.findDisplay(thread1) == null || Display.findDisplay(thread2) == null) {

-					Thread.sleep(500);

-				}

-			}

-			assertTrue(Display.findDisplay(thread1) != null && Display.findDisplay(thread2) != null);

-		}

-		else {

-			while (!openStarted) {

-				Thread.sleep(500);				

-			}

-			Runnable runnable = new Runnable() {

-				public void run() {

-					shells = Display.getDefault().getShells().length;

-				}

-			}; 

-			for (int i = 0; i < 100; i++) {

-				// make sure Display is already initialized by one thread.

-				Display.getDefault().syncExec(runnable);

-				if (shells == 0) {

-					Thread.sleep(500);				

-				}

-			}

-	

-			for (int i = 0; i < 100; i++) {

-				Display.getDefault().syncExec(runnable);

-				if (shells != 2) {

-					Thread.sleep(500);

-				}

-			}

-			assertTrue(shells == 2);			

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger.java
deleted file mode 100644
index 2b928b7..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.trigger;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Button_Click_Trigger {

-

-	/**

-	 * @param args

-	 */

-	public static void main(String[] args) {

-

-		URL url = Button_Click_Trigger.class

-				.getResource(Button_Click_Trigger.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger.xwt
deleted file mode 100644
index 3b7c18d..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger.xwt
+++ /dev/null
@@ -1,15 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt">

-	<Composite.layout>

-		<GridLayout numColumns="1"/>

-	</Composite.layout>	

-	

-  <!-- The width of this button is animated. -->

-  <Button name="Button" x:Style="SWT.CHECK" Text="Trigger">

-    <Button.Triggers>

-	   <Trigger Property="Selection" Value="True">

-		  <Setter Property="Visible" Value="False" />

-	   </Trigger>

-    </Button.Triggers>

-  </Button>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_EventProperty.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_EventProperty.java
deleted file mode 100644
index 1e3dfde..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_EventProperty.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.trigger;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Button_Click_Trigger_EventProperty {

-

-	/**

-	 * @param args

-	 */

-	public static void main(String[] args) {

-

-		URL url = Button_Click_Trigger_EventProperty.class

-				.getResource(Button_Click_Trigger_EventProperty.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_EventProperty.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_EventProperty.xwt
deleted file mode 100644
index e60293d..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_EventProperty.xwt
+++ /dev/null
@@ -1,16 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt">

-	<Composite.layout>

-		<GridLayout numColumns="1"/>

-	</Composite.layout>

-

-  <!-- The width of this button is animated. -->

-  <Button name="target" x:Style="SWT.CHECK" Text="Target"/>

-  <Button name="source" x:Style="CHECK" Text="Trigger">

-    <Button.Triggers>

-	   <Trigger Property="isSelectionEvent" Value="True">

-		  <Setter Property="text" Value="OK" targetName="target" />

-	   </Trigger>

-    </Button.Triggers>

-  </Button>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_Setter_TargetName.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_Setter_TargetName.java
deleted file mode 100644
index f3c40d5..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_Setter_TargetName.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.trigger;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Button_Click_Trigger_Setter_TargetName {

-

-	/**

-	 * @param args

-	 */

-	public static void main(String[] args) {

-

-		URL url = Button_Click_Trigger_Setter_TargetName.class

-				.getResource(Button_Click_Trigger_Setter_TargetName.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_Setter_TargetName.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_Setter_TargetName.xwt
deleted file mode 100644
index 28e8540..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_Setter_TargetName.xwt
+++ /dev/null
@@ -1,17 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt">

-	<Composite.layout>

-		<GridLayout numColumns="1"/>

-	</Composite.layout>	

-	

-  <!-- The width of this button is animated. -->

-  <Button name="target" Text="Target">

-  </Button>

-  <Button name="Button" x:Style="SWT.CHECK" Text="Trigger">

-    <Button.Triggers>

-	   <Trigger Property="Selection" Value="True">

-		  <Setter Property="Visible" Value="False" TargetName="target" />

-	   </Trigger>

-    </Button.Triggers>

-  </Button>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_SourceName.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_SourceName.java
deleted file mode 100644
index ac74534..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_SourceName.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.trigger;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Button_Click_Trigger_SourceName {

-

-	/**

-	 * @param args

-	 */

-	public static void main(String[] args) {

-

-		URL url = Button_Click_Trigger_SourceName.class

-				.getResource(Button_Click_Trigger_SourceName.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_SourceName.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_SourceName.xwt
deleted file mode 100644
index 2308bda..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_SourceName.xwt
+++ /dev/null
@@ -1,17 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt">

-	<Composite.layout>

-		<GridLayout numColumns="1"/>

-	</Composite.layout>	

-	

-  <!-- The width of this button is animated. -->

-  <Button name="target" Text="Target">

-  </Button>

-  <Button name="Button" x:Style="SWT.CHECK" Text="Target">

-  </Button>

-  <Composite.Triggers>

-     <Trigger Property="Selection" Value="True" sourceName="Button">

-	    <Setter Property="Visible" Value="False" />

-     </Trigger>

-  </Composite.Triggers>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_SourceName_Setter_TargetName.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_SourceName_Setter_TargetName.java
deleted file mode 100644
index 1e5e0a6..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_SourceName_Setter_TargetName.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.trigger;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Button_Click_Trigger_SourceName_Setter_TargetName {

-

-	/**

-	 * @param args

-	 */

-	public static void main(String[] args) {

-

-		URL url = Button_Click_Trigger_SourceName_Setter_TargetName.class

-				.getResource(Button_Click_Trigger_SourceName_Setter_TargetName.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_SourceName_Setter_TargetName.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_SourceName_Setter_TargetName.xwt
deleted file mode 100644
index 130939e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_SourceName_Setter_TargetName.xwt
+++ /dev/null
@@ -1,17 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt">

-	<Composite.layout>

-		<GridLayout numColumns="1"/>

-	</Composite.layout>	

-	

-  <!-- The width of this button is animated. -->

-  <Button name="target" Text="Target">

-  </Button>

-  <Button x:Style="SWT.CHECK" name="source" Text="Target">

-  </Button>

-  <Composite.Triggers>

-     <Trigger Property="Selection" Value="True" sourceName="source">

-	    <Setter Property="Visible" Value="False" targetName = "target"/>

-     </Trigger>

-  </Composite.Triggers>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/OperatorHelperTest.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/OperatorHelperTest.java
deleted file mode 100644
index 2e44147..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/OperatorHelperTest.java
+++ /dev/null
@@ -1,941 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.trigger;

-

-import java.math.BigDecimal;

-

-import junit.framework.Assert;

-import junit.framework.TestCase;

-

-import org.eclipse.xwt.core.Operator;

-

-/**

- * This class test the function about Operator

- * 

- * @author YaHong.Song(yahong.song@soyatec.com)

- * 

- */

-public class OperatorHelperTest extends TestCase {

-

-	/**

-	 * The testcase for EQ test

-	 * 

-	 * @throws Exception

-	 */

-	public void testEQ() throws Exception {

-		// -------- For boolean type EQ test --------

-		// not equal

-		assertEquals(Operator.compare(true, Operator.EQ, false), false);

-		assertEquals(Operator.compare(true, Operator.EQ, Boolean.FALSE), false);

-		assertEquals(Operator.compare(Boolean.TRUE, Operator.EQ, false), false);

-		assertEquals(

-				Operator.compare(Boolean.TRUE, Operator.EQ, Boolean.FALSE),

-				false);

-

-		// equal

-		assertEquals(Operator.compare(Boolean.TRUE, Operator.EQ, Boolean.TRUE),

-				true);

-		assertEquals(Operator

-				.compare(Boolean.FALSE, Operator.EQ, Boolean.FALSE), true);

-

-		// -------- For integer type EQ test --------

-		Integer firstInt = new Integer(5);

-		Integer secondInt = new Integer(5);

-		Integer thirdInt = new Integer(6);

-		Integer copyFirstInt = firstInt;

-		// not equal

-		assertEquals(Operator.compare(firstInt, Operator.EQ, thirdInt), false);

-		// equal

-		assertEquals(Operator.compare(firstInt, Operator.EQ, copyFirstInt),

-				true);

-		assertEquals(Operator.compare(firstInt, Operator.EQ, secondInt), true);

-

-		// -------- For String type EQ test --------

-		String firstStr = new String("hello world");

-		String secondStr = new String("hello world");

-		String thirdStr = new String("Hello World");

-		String copyFirstStr = firstStr;

-		// not equal

-		assertEquals(Operator.compare(firstStr, Operator.EQ, thirdStr), false);

-		// equal

-		assertEquals(Operator.compare(firstStr, Operator.EQ, copyFirstStr),

-				true);

-		assertEquals(Operator.compare(firstStr, Operator.EQ, secondStr), true);

-

-		// -------- For Short type EQ test --------

-		Short firstShort = new Short((short) 5);

-		Short secondShort = new Short((short) 5);

-		Short thirdShort = new Short((short) 6);

-		Short copyFirstShort = firstShort;

-		// not equal

-		assertEquals(Operator.compare(firstShort, Operator.EQ, thirdShort),

-				false);

-		// equal

-		assertEquals(Operator.compare(firstShort, Operator.EQ, copyFirstShort),

-				true);

-		assertEquals(Operator.compare(firstShort, Operator.EQ, secondShort),

-				true);

-

-		// -------- For Character type EQ test --------

-		Character firstCharacter = new Character((char) 5);

-		Character secondCharacter = new Character((char) 5);

-		Character thirdCharacter = new Character((char) 6);

-		Character copyFirstCharacter = firstCharacter;

-		// not equal

-		assertEquals(Operator.compare(firstCharacter, Operator.EQ,

-				thirdCharacter), false);

-		// equal

-		assertEquals(Operator.compare(firstCharacter, Operator.EQ,

-				copyFirstCharacter), true);

-		assertEquals(Operator.compare(firstCharacter, Operator.EQ,

-				secondCharacter), true);

-

-		// -------- For Long type EQ test --------

-		Long firstLong = new Long(5);

-		Long secondLong = new Long(5);

-		Long thirdLong = new Long(6);

-		Long copyFirstLong = firstLong;

-		// not equal

-		assertEquals(Operator.compare(firstLong, Operator.EQ, thirdLong), false);

-		// equal

-		assertEquals(Operator.compare(firstLong, Operator.EQ, secondLong), true);

-		assertEquals(Operator.compare(firstLong, Operator.EQ, copyFirstLong),

-				true);

-

-		// -------- For Byte type EQ test --------

-		Byte firstByte = new Byte("5");

-		Byte secondByte = new Byte("5");

-		Byte thirdByte = new Byte("6");

-		Byte copyFirstByte = firstByte;

-		// not equal

-		assertEquals(Operator.compare(firstByte, Operator.EQ, thirdByte), false);

-

-		// equal

-		assertEquals(Operator.compare(firstByte, Operator.EQ, copyFirstByte),

-				true);

-		assertEquals(Operator.compare(firstByte, Operator.EQ, secondByte), true);

-

-		// -------- For Float type EQ test --------

-		Float firstFloat = new Float(5);

-		Float secondFloat = new Float(5);

-		Float thirdFloat = new Float(6);

-		Float copyFirstFloat = firstFloat;

-		// not equal

-		assertEquals(Operator.compare(firstFloat, Operator.EQ, thirdFloat),

-				false);

-		// equal

-		assertEquals(Operator.compare(firstFloat, Operator.EQ, copyFirstFloat),

-				true);

-		assertEquals(Operator.compare(firstFloat, Operator.EQ, secondFloat),

-				true);

-

-		// -------- For Double type EQ test --------

-		Double firstDouble = new Double(5);

-		Double secondDouble = new Double(5);

-		Double thirdDouble = new Double(6);

-		Double copyFirstDouble = firstDouble;

-		// not equal

-		assertEquals(Operator.compare(firstDouble, Operator.EQ, thirdDouble),

-				false);

-		// equal

-		assertEquals(Operator

-				.compare(firstDouble, Operator.EQ, copyFirstDouble), true);

-		assertEquals(Operator.compare(firstDouble, Operator.EQ, secondDouble),

-				true);

-

-		// -------- For BigDecimal type EQ test --------

-		BigDecimal firstBigDecimal = new BigDecimal(5);

-		BigDecimal secondBigDecimal = new BigDecimal(5);

-		BigDecimal thirdBigDecimal = new BigDecimal(6);

-		BigDecimal copyFirstBigDecimal = firstBigDecimal;

-		// not equal

-		assertEquals(Operator.compare(firstBigDecimal, Operator.EQ,

-				thirdBigDecimal), false);

-		// equal

-		assertEquals(Operator.compare(firstBigDecimal, Operator.EQ,

-				copyFirstBigDecimal), true);

-		assertEquals(Operator.compare(firstBigDecimal, Operator.EQ,

-				secondBigDecimal), true);

-

-		// test for null and object EQ

-		String anObject = new String("hello");

-		Object nullObject = null;

-		// equal

-		assertEquals(Operator.compare(anObject, Operator.EQ, nullObject), false);

-		// not equal

-		assertEquals(Operator.compare(nullObject, Operator.EQ, nullObject),

-				true);

-

-	}

-

-	/**

-	 * The testcase for NE test

-	 * 

-	 * @throws Exception

-	 */

-	public void testNE() throws Exception {

-		// -------- For integer type NE test --------

-		Integer firstInt = new Integer(5);

-		Integer secondInt = new Integer(5);

-		Integer thirdInt = new Integer(6);

-		Integer copyFirstInt = firstInt;

-		// not equal

-		assertEquals(Operator.compare(firstInt, Operator.NE, thirdInt), true);

-		// equal

-		assertEquals(Operator.compare(firstInt, Operator.NE, copyFirstInt),

-				false);

-		assertEquals(Operator.compare(firstInt, Operator.NE, secondInt), false);

-

-		// -------- For String type NE test --------

-		String firstStr = new String("hello world");

-		String secondStr = new String("hello world");

-		String thirdStr = new String("Hello World");

-		String copyFirstStr = firstStr;

-		// not equal

-		assertEquals(Operator.compare(firstStr, Operator.NE, thirdStr), true);

-		// equal

-		assertEquals(Operator.compare(firstStr, Operator.NE, copyFirstStr),

-				false);

-		assertEquals(Operator.compare(firstStr, Operator.NE, secondStr), false);

-

-		// -------- For Short type NE test --------

-		Short firstShort = new Short((short) 5);

-		Short secondShort = new Short((short) 5);

-		Short thirdShort = new Short((short) 6);

-		Short copyFirstShort = firstShort;

-		// not equal

-		assertEquals(Operator.compare(firstShort, Operator.NE, thirdShort),

-				true);

-		// equal

-		assertEquals(Operator.compare(firstShort, Operator.NE, copyFirstShort),

-				false);

-		assertEquals(Operator.compare(firstShort, Operator.NE, secondShort),

-				false);

-

-		// -------- For Character type NE test --------

-		Character firstCharacter = new Character((char) 5);

-		Character secondCharacter = new Character((char) 5);

-		Character thirdCharacter = new Character((char) 6);

-		Character copyFirstCharacter = firstCharacter;

-		// not equal

-		assertEquals(Operator.compare(firstCharacter, Operator.NE,

-				thirdCharacter), true);

-		// equal

-		assertEquals(Operator.compare(firstCharacter, Operator.NE,

-				copyFirstCharacter), false);

-		assertEquals(Operator.compare(firstCharacter, Operator.NE,

-				secondCharacter), false);

-

-		// -------- For Long type NE test --------

-		Long firstLong = new Long(5);

-		Long secondLong = new Long(5);

-		Long thirdLong = new Long(6);

-		Long copyFirstLong = firstLong;

-		// equal

-		assertEquals(Operator.compare(firstLong, Operator.NE, thirdLong), true);

-		// not equal

-		assertEquals(Operator.compare(firstLong, Operator.NE, secondLong),

-				false);

-		assertEquals(Operator.compare(firstLong, Operator.NE, copyFirstLong),

-				false);

-

-		// -------- For Byte type NE test --------

-		Byte firstByte = new Byte("5");

-		Byte secondByte = new Byte("5");

-		Byte thirdByte = new Byte("6");

-		Byte copyFirstByte = firstByte;

-		// equal

-		assertEquals(Operator.compare(firstByte, Operator.NE, thirdByte), true);

-		// not equal

-		assertEquals(Operator.compare(firstByte, Operator.NE, secondByte),

-				false);

-		assertEquals(Operator.compare(firstByte, Operator.NE, copyFirstByte),

-				false);

-

-		// -------- For Float type NE test --------

-		Float firstFloat = new Float(5);

-		Float secondFloat = new Float(5);

-		Float thirdFloat = new Float(6);

-		Float copyFirstFloat = firstFloat;

-		// equal

-		assertEquals(Operator.compare(firstFloat, Operator.NE, thirdFloat),

-				true);

-		// not equal

-		assertEquals(Operator.compare(firstFloat, Operator.NE, secondFloat),

-				false);

-		assertEquals(Operator.compare(firstFloat, Operator.NE, copyFirstFloat),

-				false);

-

-		// -------- For Double type NE test --------

-		Double firstDouble = new Double(5);

-		Double secondDouble = new Double(5);

-		Double thirdDouble = new Double(6);

-		Double copyFirstDouble = firstDouble;

-		// equal

-		assertEquals(Operator.compare(firstDouble, Operator.NE, thirdDouble),

-				true);

-		// not equal

-		assertEquals(Operator.compare(firstDouble, Operator.NE, secondDouble),

-				false);

-		assertEquals(Operator

-				.compare(firstDouble, Operator.NE, copyFirstDouble), false);

-

-		// -------- For BigDecimal type NE test --------

-		BigDecimal firstBigDecimal = new BigDecimal(5);

-		BigDecimal secondBigDecimal = new BigDecimal(5);

-		BigDecimal thirdBigDecimal = new BigDecimal(6);

-		BigDecimal copyFirstBigDecimal = firstBigDecimal;

-		// equal

-		assertEquals(Operator.compare(firstBigDecimal, Operator.NE,

-				thirdBigDecimal), true);

-		// not equal

-		assertEquals(Operator.compare(firstBigDecimal, Operator.NE,

-				secondBigDecimal), false);

-		assertEquals(Operator.compare(firstBigDecimal, Operator.NE,

-				copyFirstBigDecimal), false);

-

-		// test for null and object NE

-		String anObject = new String("hello");

-		Object nullObject = null;

-		// equal

-		assertEquals(Operator.compare(anObject, Operator.NE, nullObject), true);

-		// not equal

-		assertEquals(Operator.compare(nullObject, Operator.NE, nullObject),

-				false);

-	}

-

-	/**

-	 * The testcase for GE test

-	 * 

-	 * @throws Exception

-	 */

-	public void testGE() throws Exception {

-		// -------- For integer type GE test --------

-		Integer firstInt = new Integer(5);

-		Integer secondInt = new Integer(8);

-		// equal

-		assertEquals(Operator.compare(firstInt, Operator.GE, firstInt), true);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstInt, Operator.GE, secondInt), false);

-		// first is larger than second

-		assertEquals(Operator.compare(secondInt, Operator.GE, firstInt), true);

-

-		// -------- For Short type GE test --------

-		Short firstShort = new Short((short) 5);

-		Short secondShort = new Short((short) 8);

-		// equal

-		assertEquals(Operator.compare(firstShort, Operator.GE, firstShort),

-				true);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstShort, Operator.GE, secondShort),

-				false);

-		// first is larger than second

-		assertEquals(Operator.compare(secondShort, Operator.GE, firstShort),

-				true);

-

-		// -------- For Character type GE test --------

-		Character firstCharacter = new Character('5');

-		Character secondCharacter = new Character('8');

-		// equal

-		assertEquals(Operator.compare(firstCharacter, Operator.GE,

-				firstCharacter), true);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstCharacter, Operator.GE,

-				secondCharacter), false);

-		// first is larger than second

-		assertEquals(Operator.compare(secondCharacter, Operator.GE,

-				firstCharacter), true);

-

-		// -------- For Long type GE test --------

-		Long firstLong = new Long(5);

-		Long secondLong = new Long(8);

-		// equal

-		assertEquals(Operator.compare(firstLong, Operator.GE, firstLong), true);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstLong, Operator.GE, secondLong),

-				false);

-		// first is larger than second

-		assertEquals(Operator.compare(secondLong, Operator.GE, firstLong), true);

-

-		// -------- For Byte type GE test --------

-		Byte firstByte = new Byte("5");

-		Byte secondByte = new Byte("8");

-		// equal

-		assertEquals(Operator.compare(firstByte, Operator.GE, firstByte), true);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstByte, Operator.GE, secondByte),

-				false);

-		// first is larger than second

-		assertEquals(Operator.compare(secondByte, Operator.GE, firstByte), true);

-

-		// -------- For Float type GE test --------

-		Float firstFloat = new Float(5);

-		Float secondFloat = new Float(8);

-		// equal

-		assertEquals(Operator.compare(firstFloat, Operator.GE, firstFloat),

-				true);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstFloat, Operator.GE, secondFloat),

-				false);

-		// first is larger than second

-		assertEquals(Operator.compare(secondFloat, Operator.GE, firstFloat),

-				true);

-

-		// -------- For Double type GE test --------

-		Double firstDouble = new Double(5);

-		Double secondDouble = new Double(8);

-		// equal

-		assertEquals(Operator.compare(firstDouble, Operator.GE, firstDouble),

-				true);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstDouble, Operator.GE, secondDouble),

-				false);

-		// first is larger than second

-		assertEquals(Operator.compare(secondDouble, Operator.GE, firstDouble),

-				true);

-

-		// -------- For BigDecimal type GE test --------

-		BigDecimal firstBigDecimal = new BigDecimal(5);

-		BigDecimal secondBigDecimal = new BigDecimal(8);

-		// equal

-		assertEquals(Operator.compare(firstBigDecimal, Operator.GE,

-				firstBigDecimal), true);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstBigDecimal, Operator.GE,

-				secondBigDecimal), false);

-		// first is larger than second

-		assertEquals(Operator.compare(secondBigDecimal, Operator.GE,

-				firstBigDecimal), true);

-

-		// -------- For different type GE test --------

-		Double doubleOperant = new Double(4);

-		Integer intOperant = new Integer(5);

-		Short shortOperant = new Short((short) 5);

-		Character characterOperant = new Character('8');

-		BigDecimal bigDecimalOperant = new BigDecimal(8);

-		Byte byteOperant = new Byte("5");

-		Long longOperant = new Long(8);

-		Float floatOperant = new Float(4);

-		// equal

-		assertEquals(Operator.compare(intOperant, Operator.GE, shortOperant),

-				true);

-		// first is smaller than second

-		assertEquals(Operator.compare(shortOperant, Operator.GE,

-				characterOperant), false);

-		// first is smaller than second

-		assertEquals(Operator.compare(intOperant, Operator.GE,

-				bigDecimalOperant), false);

-		// first is smaller than second

-		assertEquals(Operator.compare(shortOperant, Operator.GE,

-				bigDecimalOperant), false);

-		// first is larger than second

-		assertEquals(Operator.compare(bigDecimalOperant, Operator.GE,

-				byteOperant), true);

-		// first is smaller than second

-		assertEquals(Operator.compare(byteOperant, Operator.GE, longOperant),

-				false);

-		// first is larger than second

-		assertEquals(Operator.compare(longOperant, Operator.GE, floatOperant),

-				true);

-		// first is larger than second

-		assertEquals(Operator.compare(byteOperant, Operator.GE, doubleOperant),

-				true);

-

-	}

-

-	/**

-	 * The testcase for GT test

-	 * 

-	 * @throws Exception

-	 */

-	public void testGT() throws Exception {

-		// -------- For integer type GT test --------

-		Integer firstInt = new Integer(5);

-		Integer secondInt = new Integer(8);

-		// equal

-		assertEquals(Operator.compare(firstInt, Operator.GT, firstInt), false);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstInt, Operator.GT, secondInt), false);

-		// first is larger than second

-		assertEquals(Operator.compare(secondInt, Operator.GT, firstInt), true);

-

-		// -------- For Short type GT test --------

-		Short firstShort = new Short((short) 5);

-		Short secondShort = new Short((short) 8);

-		// equal

-		assertEquals(Operator.compare(firstShort, Operator.GT, firstShort),

-				false);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstShort, Operator.GT, secondShort),

-				false);

-		// first is larger than second

-		assertEquals(Operator.compare(secondShort, Operator.GT, firstShort),

-				true);

-

-		// -------- For Character type GT test --------

-		Character firstCharacter = new Character('5');

-		Character secondCharacter = new Character('8');

-		// equal

-		assertEquals(Operator.compare(firstCharacter, Operator.GT,

-				firstCharacter), false);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstCharacter, Operator.GT,

-				secondCharacter), false);

-		// first is larger than second

-		assertEquals(Operator.compare(secondCharacter, Operator.GT,

-				firstCharacter), true);

-

-		// -------- For Long type GT test --------

-		Long firstLong = new Long(5);

-		Long secondLong = new Long(8);

-		// equal

-		assertEquals(Operator.compare(firstLong, Operator.GT, firstLong), false);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstLong, Operator.GT, secondLong),

-				false);

-		// first is larger than second

-		assertEquals(Operator.compare(secondLong, Operator.GT, firstLong), true);

-

-		// -------- For Byte type GT test --------

-		Byte firstByte = new Byte("5");

-		Byte secondByte = new Byte("8");

-		// equal

-		assertEquals(Operator.compare(firstByte, Operator.GT, firstByte), false);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstByte, Operator.GT, secondByte),

-				false);

-		// first is larger than second

-		assertEquals(Operator.compare(secondByte, Operator.GT, firstByte), true);

-

-		// -------- For Float type GT test --------

-		Float firstFloat = new Float(5);

-		Float secondFloat = new Float(8);

-		// equal

-		assertEquals(Operator.compare(firstFloat, Operator.GT, firstFloat),

-				false);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstFloat, Operator.GT, secondFloat),

-				false);

-		// first is larger than second

-		assertEquals(Operator.compare(secondFloat, Operator.GT, firstFloat),

-				true);

-

-		// -------- For Double type GT test --------

-		Double firstDouble = new Double(5);

-		Double secondDouble = new Double(8);

-		// equal

-		assertEquals(Operator.compare(firstDouble, Operator.GT, firstDouble),

-				false);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstDouble, Operator.GT, secondDouble),

-				false);

-		// first is larger than second

-		assertEquals(Operator.compare(secondDouble, Operator.GT, firstDouble),

-				true);

-

-		// -------- For BigDecimal type GT test --------

-		BigDecimal firstBigDecimal = new BigDecimal(5);

-		BigDecimal secondBigDecimal = new BigDecimal(8);

-		// equal

-		assertEquals(Operator.compare(firstBigDecimal, Operator.GT,

-				firstBigDecimal), false);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstBigDecimal, Operator.GT,

-				secondBigDecimal), false);

-		// first is larger than second

-		assertEquals(Operator.compare(secondBigDecimal, Operator.GT,

-				firstBigDecimal), true);

-

-		// -------- For different type GT test --------

-		Double doubleOperant = new Double(4);

-		Integer intOperant = new Integer(5);

-		Short shortOperant = new Short((short) 5);

-		Character characterOperant = new Character('8');

-		BigDecimal bigDecimalOperant = new BigDecimal(8);

-		Byte byteOperant = new Byte("5");

-		Long longOperant = new Long(8);

-		Float floatOperant = new Float(4);

-		// equal

-		assertEquals(Operator.compare(intOperant, Operator.GT, shortOperant),

-				false);

-		// first is smaller than second

-		assertEquals(Operator.compare(shortOperant, Operator.GT,

-				characterOperant), false);

-		// first is smaller than second

-		assertEquals(Operator.compare(intOperant, Operator.GT,

-				bigDecimalOperant), false);

-		// first is smaller than second

-		assertEquals(Operator.compare(shortOperant, Operator.GT,

-				bigDecimalOperant), false);

-		// first is larger than second

-		assertEquals(Operator.compare(bigDecimalOperant, Operator.GT,

-				byteOperant), true);

-		// first is smaller than second

-		assertEquals(Operator.compare(byteOperant, Operator.GT, longOperant),

-				false);

-		// first is larger than second

-		assertEquals(Operator.compare(longOperant, Operator.GT, floatOperant),

-				true);

-		// first is larger than second

-		assertEquals(Operator.compare(byteOperant, Operator.GT, doubleOperant),

-				true);

-	}

-

-	/**

-	 * The testcase for LE test

-	 * 

-	 * @throws Exception

-	 */

-	public void testLE() throws Exception {

-		// -------- For integer type LE test --------

-		Integer firstInt = new Integer(5);

-		Integer secondInt = new Integer(8);

-		// equal

-		assertEquals(Operator.compare(firstInt, Operator.LE, firstInt), true);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstInt, Operator.LE, secondInt), true);

-		// first is larger than second

-		assertEquals(Operator.compare(secondInt, Operator.LE, firstInt), false);

-

-		// -------- For Short type LE test --------

-		Short firstShort = new Short((short) 5);

-		Short secondShort = new Short((short) 8);

-		// equal

-		assertEquals(Operator.compare(firstShort, Operator.LE, firstShort),

-				true);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstShort, Operator.LE, secondShort),

-				true);

-		// first is larger than second

-		assertEquals(Operator.compare(secondShort, Operator.LE, firstShort),

-				false);

-

-		// -------- For Character type LE test --------

-		Character firstCharacter = new Character('5');

-		Character secondCharacter = new Character('8');

-		// equal

-		assertEquals(Operator.compare(firstCharacter, Operator.LE,

-				firstCharacter), true);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstCharacter, Operator.LE,

-				secondCharacter), true);

-		// first is larger than second

-		assertEquals(Operator.compare(secondCharacter, Operator.LE,

-				firstCharacter), false);

-

-		// -------- For Long type LE test --------

-		Long firstLong = new Long(5);

-		Long secondLong = new Long(8);

-		// equal

-		assertEquals(Operator.compare(firstLong, Operator.LE, firstLong), true);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstLong, Operator.LE, secondLong), true);

-		// first is larger than second

-		assertEquals(Operator.compare(secondLong, Operator.LE, firstLong),

-				false);

-

-		// -------- For Double type LE test --------

-		Double firstDouble = new Double(5);

-		Double secondDouble = new Double(8);

-		// equal

-		assertEquals(Operator.compare(firstDouble, Operator.LE, firstDouble),

-				true);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstDouble, Operator.LE, secondDouble),

-				true);

-		// first is larger than second

-		assertEquals(Operator.compare(secondDouble, Operator.LE, firstDouble),

-				false);

-

-		// -------- For Byte type LE test --------

-		Byte firstByte = new Byte("5");

-		Byte secondByte = new Byte("8");

-		// equal

-		assertEquals(Operator.compare(firstByte, Operator.LE, firstByte), true);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstByte, Operator.LE, secondByte), true);

-		// first is larger than second

-		assertEquals(Operator.compare(secondByte, Operator.LE, firstByte),

-				false);

-

-		// -------- For Float type LE test --------

-		Float firstFloat = new Float(5);

-		Float secondFloat = new Float(8);

-		// equal

-		assertEquals(Operator.compare(firstFloat, Operator.LE, firstFloat),

-				true);

-		// first is smaller than second

-		assertEquals(Operator.compare(secondFloat, Operator.LE, secondFloat),

-				true);

-		// first is larger than second

-		assertEquals(Operator.compare(secondFloat, Operator.LE, firstFloat),

-				false);

-

-		// -------- For BigDecimal type LE test --------

-		BigDecimal firstBigDecimal = new BigDecimal(5);

-		BigDecimal secondBigDecimal = new BigDecimal(8);

-		// equal

-		assertEquals(Operator.compare(firstBigDecimal, Operator.LE,

-				firstBigDecimal), true);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstBigDecimal, Operator.LE,

-				secondBigDecimal), true);

-		// first is larger than second

-		assertEquals(Operator.compare(secondBigDecimal, Operator.LE,

-				firstBigDecimal), false);

-

-		// -------- For different type LT test --------

-		Integer intOperant = new Integer(5);

-		Short shortOperant = new Short((short) 5);

-		Character characterOperant = new Character('8');

-		BigDecimal bigDecimalOperant = new BigDecimal(8);

-		Byte byteOperant = new Byte("5");

-		Long longOperant = new Long(8);

-		Float floatOperant = new Float(4);

-		Double doubleOperant = new Double(4);

-		// equal

-		assertEquals(Operator.compare(intOperant, Operator.LE, shortOperant),

-				true);

-		// first is smaller than second

-		assertEquals(Operator.compare(shortOperant, Operator.LE,

-				characterOperant), true);

-		// first is smaller than second

-		assertEquals(Operator.compare(intOperant, Operator.LE,

-				bigDecimalOperant), true);

-		// first is smaller than second

-		assertEquals(Operator.compare(shortOperant, Operator.LE,

-				bigDecimalOperant), true);

-		// first is larger than second

-		assertEquals(Operator.compare(bigDecimalOperant, Operator.LE,

-				byteOperant), false);

-		// first is smaller than second

-		assertEquals(Operator.compare(byteOperant, Operator.LE, longOperant),

-				true);

-		// first is larger than second

-		assertEquals(Operator.compare(longOperant, Operator.LE, floatOperant),

-				false);

-		// first is larger than second

-		assertEquals(Operator.compare(byteOperant, Operator.LE, doubleOperant),

-				false);

-	}

-

-	/**

-	 * The testcase for LT test

-	 * 

-	 * @throws Exception

-	 */

-	public void testLT() throws Exception {

-		// -------- For integer type LT test --------

-		Integer firstInt = new Integer(5);

-		Integer secondInt = new Integer(8);

-		// equal

-		assertEquals(Operator.compare(firstInt, Operator.LT, firstInt), false);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstInt, Operator.LT, secondInt), true);

-		// first is larger than second

-		assertEquals(Operator.compare(secondInt, Operator.LT, firstInt), false);

-

-		// -------- For Short type LT test --------

-		Short firstShort = new Short((short) 5);

-		Short secondShort = new Short((short) 8);

-		// equal

-		assertEquals(Operator.compare(firstShort, Operator.LT, firstShort),

-				false);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstShort, Operator.LT, secondShort),

-				true);

-		// first is larger than second

-		assertEquals(Operator.compare(secondShort, Operator.LT, firstShort),

-				false);

-

-		// -------- For Character type LT test --------

-		Character firstCharacter = new Character('5');

-		Character secondCharacter = new Character('8');

-		// equal

-		assertEquals(Operator.compare(firstCharacter, Operator.LT,

-				firstCharacter), false);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstCharacter, Operator.LT,

-				secondCharacter), true);

-		// first is larger than second

-		assertEquals(Operator.compare(secondCharacter, Operator.LT,

-				firstCharacter), false);

-

-		// -------- For Long type LT test --------

-		Long firstLong = new Long(5);

-		Long secondLong = new Long(8);

-		// equal

-		assertEquals(Operator.compare(firstLong, Operator.LT, firstLong), false);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstLong, Operator.LT, secondLong), true);

-		// first is larger than second

-		assertEquals(Operator.compare(secondLong, Operator.LT, firstLong),

-				false);

-

-		// -------- For Byte type LT test --------

-		Byte firstByte = new Byte("5");

-		Byte secondByte = new Byte("8");

-		// equal

-		assertEquals(Operator.compare(firstByte, Operator.LT, firstByte), false);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstByte, Operator.LT, secondByte), true);

-		// first is larger than second

-		assertEquals(Operator.compare(secondByte, Operator.LT, firstByte),

-				false);

-

-		// -------- For Float type LT test --------

-		Float firstFloat = new Float(5);

-		Float secondFloat = new Float(8);

-		// equal

-		assertEquals(Operator.compare(firstFloat, Operator.LT, firstFloat),

-				false);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstFloat, Operator.LT, secondFloat),

-				true);

-		// first is larger than second

-		assertEquals(Operator.compare(secondFloat, Operator.LT, firstFloat),

-				false);

-

-		// -------- For Double type LT test --------

-		Double firstDouble = new Double(5);

-		Double secondDouble = new Double(8);

-		// equal

-		assertEquals(Operator.compare(firstDouble, Operator.LT, firstDouble),

-				false);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstDouble, Operator.LT, secondDouble),

-				true);

-		// first is larger than second

-		assertEquals(Operator.compare(secondDouble, Operator.LT, firstDouble),

-				false);

-

-		// -------- For BigDecimal type LT test --------

-		BigDecimal firstBigDecimal = new BigDecimal(5);

-		BigDecimal secondBigDecimal = new BigDecimal(8);

-		// equal

-		assertEquals(Operator.compare(firstBigDecimal, Operator.LT,

-				firstBigDecimal), false);

-		// first is smaller than second

-		assertEquals(Operator.compare(firstBigDecimal, Operator.LT,

-				secondBigDecimal), true);

-		// first is larger than second

-		assertEquals(Operator.compare(secondBigDecimal, Operator.LT,

-				firstBigDecimal), false);

-

-		// -------- For different type LT test --------

-		Integer intOperant = new Integer(5);

-		Short shortOperant = new Short((short) 5);

-		Character characterOperant = new Character('8');

-		BigDecimal bigDecimalOperant = new BigDecimal(8);

-		Byte byteOperant = new Byte("5");

-		Long longOperant = new Long(8);

-		Float floatOperant = new Float(4);

-		Double doubleOperant = new Double(4);

-		// equal

-		assertEquals(Operator.compare(intOperant, Operator.LT, shortOperant),

-				false);

-		// first is smaller than second

-		assertEquals(Operator.compare(shortOperant, Operator.LT,

-				characterOperant), true);

-		// first is smaller than second

-		assertEquals(Operator.compare(intOperant, Operator.LT,

-				bigDecimalOperant), true);

-		// first is smaller than second

-		assertEquals(Operator.compare(shortOperant, Operator.LT,

-				bigDecimalOperant), true);

-		// first is larger than second

-		assertEquals(Operator.compare(bigDecimalOperant, Operator.LT,

-				byteOperant), false);

-		// first is smaller than second

-		assertEquals(Operator.compare(byteOperant, Operator.LT, longOperant),

-				true);

-		// first is larger than second

-		assertEquals(Operator.compare(longOperant, Operator.LT, floatOperant),

-				false);

-		// first is larger than second

-		assertEquals(Operator.compare(byteOperant, Operator.LT, doubleOperant),

-				false);

-	}

-

-	/**

-	 * The testcase for LIKE test

-	 * 

-	 * @throws Exception

-	 */

-	public void testLIKE() throws Exception {

-		// -------- For LIKE test --------

-		String firstQueryString = "hello world";

-		String secondQueryString = "wo?ld";

-		String thirdQueryString = "hell*";

-		String fourthQueryString = "*wor*";

-		String fifthQueryString = "*ll? wo?ld";

-		String sixthQueryString = "soyatec";

-		// full string

-		String fullString = "hello world from eclipse";

-

-		// the String does not include "?" and "*"

-		Assert.assertEquals(Operator.compare(firstQueryString, Operator.LIKE,

-				fullString), true);

-

-		// the String includes "?"

-		Assert.assertEquals(Operator.compare(secondQueryString, Operator.LIKE,

-				fullString), true);

-

-		// the String includes "*"

-		Assert.assertEquals(Operator.compare(thirdQueryString, Operator.LIKE,

-				fullString), true);

-

-		// the String includes "*"

-		Assert.assertEquals(Operator.compare(fourthQueryString, Operator.LIKE,

-				fullString), true);

-

-		// the String includes "*" and "?"

-		Assert.assertEquals(Operator.compare(fifthQueryString, Operator.LIKE,

-				fullString), true);

-

-		// the String is not be included to another string

-		Assert.assertEquals(Operator.compare(sixthQueryString, Operator.LIKE,

-				fullString), false);

-	}

-

-	/**

-	 * The testcase for ISA test

-	 * 

-	 * @throws Exception

-	 */

-	public void testISA() throws Exception {

-		// -------- For ISA test --------

-		String string = "hello";

-		// the string is instance of the object

-		Assert.assertEquals(Operator.compare(string, Operator.IS_A,

-				Object.class), true);

-		// the string is not instance of the bool

-		Assert.assertEquals(Operator.compare(string, Operator.IS_A,

-				Boolean.class), false);

-	}

-

-	/**

-	 * The testcase for IS_KIND_OF test

-	 * 

-	 * @throws Exception

-	 */

-	public void testIS_KIND_OF() throws Exception {

-		// -------- For ISA test --------

-		String string = "";

-		Boolean bool = new Boolean(true);

-		Object object = new Object();

-		// the string is instance of the object

-		Assert.assertEquals(Operator.compare(string, Operator.IS_KIND_OF,

-				object), true);

-		// the string is not instance of the bool

-		Assert.assertEquals(

-				Operator.compare(string, Operator.IS_KIND_OF, bool), false);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/TriggerTestSuite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/TriggerTestSuite.java
deleted file mode 100644
index c2f6faf..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/TriggerTestSuite.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.trigger;

-

-import junit.framework.Test;

-import junit.framework.TestSuite;

-

-import org.eclipse.xwt.tests.trigger.datatrigger.DataTriggerTests;

-import org.eclipse.xwt.tests.trigger.multidatatrigger.MultiDataTriggerTests;

-import org.eclipse.xwt.tests.trigger.multitrigger.MultiTriggerTests;

-

-public class TriggerTestSuite extends TestSuite {

-	public static final Test suite() {

-		return new TriggerTestSuite();

-	}

-

-	public TriggerTestSuite() {

-		addTest(new TestSuite(OperatorHelperTest.class));

-		addTest(new TestSuite(TriggerTests.class));

-		addTest(new TestSuite(MultiTriggerTests.class));

-		addTest(new TestSuite(DataTriggerTests.class));

-		addTest(new TestSuite(MultiDataTriggerTests.class));

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/TriggerTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/TriggerTests.java
deleted file mode 100644
index 23f6fbb..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/TriggerTests.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.trigger;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class TriggerTests extends XWTTestCase {

-

-	public TriggerTests() {

-	}

-

-	public void test_Button_Trigger() {

-		URL url = TriggerTests.class.getResource(Button_Click_Trigger.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button button = (Button) XWT.findElementByName(root, "Button");

-				selectButton(button);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Button button = (Button) XWT.findElementByName(root, "Button");

-				assertFalse(button.isVisible());

-			}

-		});

-	}

-

-	public void test_Button_Trigger_SourceName() {

-		URL url = TriggerTests.class

-				.getResource(Button_Click_Trigger_SourceName.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button button = (Button) XWT.findElementByName(root, "Button");

-				selectButton(button);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				assertFalse(root.isVisible());

-				Button button = (Button) XWT.findElementByName(root, "Button");

-				assertFalse(button.isVisible());

-			}

-		});

-	}

-

-	public void test_Button_Trigger_Setter_TargetName() {

-		URL url = TriggerTests.class

-				.getResource(Button_Click_Trigger_Setter_TargetName.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button button = (Button) XWT.findElementByName(root, "Button");

-				selectButton(button);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Button target = (Button) XWT.findElementByName(root, "target");

-				Button button = (Button) XWT.findElementByName(root, "Button");

-				assertTrue(button.getSelection());

-				assertFalse(target.isVisible());

-			}

-		});

-	}

-

-	public void test_Button_Trigger_Setter_TargetName2() {

-		URL url = TriggerTests.class

-				.getResource(Button_Click_Trigger_Setter_TargetName.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button button = (Button) XWT.findElementByName(root, "Button");

-				selectButton(button, true);

-				selectButton(button, false);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Button target = (Button) XWT.findElementByName(root, "target");

-				Button button = (Button) XWT.findElementByName(root, "Button");

-				assertFalse(button.getSelection());

-				assertTrue(target.isVisible());

-			}

-		});

-	}

-

-	public void test_Button_Trigger_Setter_TargetName3() {

-		URL url = TriggerTests.class

-				.getResource(Button_Click_Trigger_Setter_TargetName.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button button = (Button) XWT.findElementByName(root, "Button");

-				selectButton(button, true);

-				selectButton(button, false);

-				selectButton(button, true);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Button target = (Button) XWT.findElementByName(root, "target");

-				Button button = (Button) XWT.findElementByName(root, "Button");

-				assertTrue(button.isVisible());

-				assertFalse(target.isVisible());

-			}

-		});

-	}

-

-	public void test_Button_Trigger_SourceName_Setter_TargetName() {

-		URL url = TriggerTests.class

-				.getResource(Button_Click_Trigger_SourceName_Setter_TargetName.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button button = (Button) XWT.findElementByName(root, "source");

-				selectButton(button);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Button button = (Button) XWT.findElementByName(root, "target");

-				assertFalse(button.isVisible());

-			}

-		});

-	}

-

-	public void test_Button_Click_Trigger_EventProperty() {

-		URL url = TriggerTests.class

-				.getResource(Button_Click_Trigger_EventProperty.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button button = (Button) XWT.findElementByName(root, "source");

-				selectButton(button);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Button button = (Button) XWT.findElementByName(root, "target");

-				assertEquals("OK", button.getText());

-			}

-		});

-	}

-

-	public void test_Button_Click_Trigger_EventProperty2() {

-		URL url = TriggerTests.class

-				.getResource(Button_Click_Trigger_EventProperty.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button button = (Button) XWT.findElementByName(root, "source");

-				selectButton(button, true);

-				selectButton(button, false);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Button button = (Button) XWT.findElementByName(root, "target");

-				assertEquals("Target", button.getText());

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/Address.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/Address.java
deleted file mode 100644
index d981177..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/Address.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.trigger.datatrigger;

-

-public class Address {

-	private String city = "Paris";

-

-	public void setCity(String value) {

-		this.city = value;

-	}

-

-	public String getCity() {

-		return city;

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/Country.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/Country.java
deleted file mode 100644
index 60841b8..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/Country.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.trigger.datatrigger;

-

-public enum Country {

-	FR, USA, CN;

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/DataTrigger.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/DataTrigger.java
deleted file mode 100644
index d879bd0..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/DataTrigger.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.trigger.datatrigger;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class DataTrigger {

-	public static void main(String[] args) {

-

-		URL url = DataTrigger.class.getResource(DataTrigger.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/DataTrigger.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/DataTrigger.xwt
deleted file mode 100644
index 32d891e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/DataTrigger.xwt
+++ /dev/null
@@ -1,32 +0,0 @@
-<Shell xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.trigger.datatrigger"

-	DataContext="{StaticResource myData}">

-	<Shell.layout>

-		<GridLayout numColumns="2"/>

-	</Shell.layout>

-	

-	<Shell.Resources>

-		<y:Person x:Key="myData"/>

-	</Shell.Resources>

-	

-	<Label text="Name"/>

-	<Text x:style="BORDER" text="{Binding Path=name}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	

-	<Button name="Button" x:style="SWT.CHECK" selection="{Binding Path=maried}">

-		<Button.triggers>

-			<DataTrigger binding="{Binding Path=maried}" value="false" >

-				<Setter property="text" value="Alone"/>

-			</DataTrigger>

-		</Button.triggers>

-		<Button.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Button.layoutData>

-	</Button>

-</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/DataTriggerTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/DataTriggerTests.java
deleted file mode 100644
index 7da7d3f..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/DataTriggerTests.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.trigger.datatrigger;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class DataTriggerTests extends XWTTestCase {

-

-	public DataTriggerTests() {

-	}

-

-	public void test_DataTrigger1() {

-		URL url = DataTriggerTests.class.getResource(DataTrigger.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button button = (Button) XWT.findElementByName(root, "Button");

-				selectButton(button, false);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Button button = (Button) XWT.findElementByName(root, "Button");

-				assertEquals("Alone", button.getText());

-			}

-		});

-	}

-

-	public void test_DataTrigger2() {

-		URL url = DataTriggerTests.class.getResource(DataTrigger.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button button = (Button) XWT.findElementByName(root, "Button");

-				selectButton(button, false);

-				selectButton(button, true);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Button button = (Button) XWT.findElementByName(root, "Button");

-				assertEquals("", button.getText());

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/Person.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/Person.java
deleted file mode 100644
index 929cacb..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/Person.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.trigger.datatrigger;

-

-public class Person {

-	private String name = "toto";

-	private int age = 10;

-

-	private boolean maried = true;

-

-	private Country nationality = Country.FR;

-	private Address address;

-

-	public Country getNationality() {

-		return nationality;

-	}

-

-	public boolean isMaried() {

-		return maried;

-	}

-

-	public void setMaried(boolean maried) {

-		this.maried = maried;

-	}

-

-	public int getAge() {

-		return age;

-	}

-

-	public void setAge(int age) {

-		this.age = age;

-	}

-

-	public Person() {

-		address = new Address();

-	}

-

-	public void setName(String value) {

-		this.name = value;

-	}

-

-	public String getName() {

-		return name;

-	}

-

-	public Address getAddress() {

-		return address;

-	}

-

-	public void setAddress(Address address) {

-		this.address = address;

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/eventtrigger/Button_Click_EventTrigger.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/eventtrigger/Button_Click_EventTrigger.java
deleted file mode 100644
index 8eef2dd..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/eventtrigger/Button_Click_EventTrigger.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.trigger.eventtrigger;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Button_Click_EventTrigger {

-

-	/**

-	 * @param args

-	 */

-	public static void main(String[] args) {

-

-		URL url = Button_Click_EventTrigger.class

-				.getResource(Button_Click_EventTrigger.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/eventtrigger/Button_Click_EventTrigger.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/eventtrigger/Button_Click_EventTrigger.xwt
deleted file mode 100644
index acb8d63..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/eventtrigger/Button_Click_EventTrigger.xwt
+++ /dev/null
@@ -1,15 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt">

-	<Composite.layout>

-		<GridLayout numColumns="1"/>

-	</Composite.layout>	

-	

-  <!-- The width of this button is animated. -->

-  <Button x:Style="SWT.CHECK" Text="Trigger">

-    <Button.Triggers>

-	   <EventTrigger RoutedEvent="SelectionEvent">

-		  <Setter Property="Visible" Value="False" />

-	   </EventTrigger>

-    </Button.Triggers>

-  </Button>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger.java
deleted file mode 100644
index cd04c27..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.trigger.multidatatrigger;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class MultiDataTrigger {

-	public static void main(String[] args) {

-

-		URL url = MultiDataTrigger.class.getResource(MultiDataTrigger.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger.xwt
deleted file mode 100644
index 4d04174..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger.xwt
+++ /dev/null
@@ -1,42 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.trigger.datatrigger"

-	DataContext="{StaticResource myData}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	

-	<Composite.Resources>

-		<y:Person x:Key="myData"/>

-	</Composite.Resources>

-

-	<Label text="Set ago = 15 and maried = true">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-	<Label text="Name"/>

-	<Text name="Text" x:style="BORDER" text="{Binding Path=age,UpdateSourceTrigger=PropertyChanged}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	

-	<Button name="Button" x:style="SWT.CHECK" selection="{Binding Path=maried}">

-		<Button.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Button.layoutData>

-	</Button>

-	<Composite.Triggers>

-      <MultiDataTrigger>

-        <MultiDataTrigger.Conditions>

-          <Condition Binding="{Binding Path=maried}" Value="true"/>

-          <Condition Binding="{Binding Path=age}" Value="15" />

-        </MultiDataTrigger.Conditions>

-        <Setter Property="Visible" Value="false" />

-      </MultiDataTrigger>

-	</Composite.Triggers>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTriggerTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTriggerTests.java
deleted file mode 100644
index 7b852bb..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTriggerTests.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.trigger.multidatatrigger;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class MultiDataTriggerTests extends XWTTestCase {

-

-	public MultiDataTriggerTests() {

-	}

-

-	public void test_MultiDataTrigger1() {

-		URL url = MultiDataTriggerTests.class

-				.getResource(MultiDataTrigger.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button button1 = (Button) XWT.findElementByName(root, "Button");

-				selectButton(button1);

-				Text text = (Text) XWT.findElementByName(root, "Text");

-				text.setText("11");

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				assertTrue(root.isVisible());

-			}

-		});

-	}

-

-	public void test_MultiDataTrigger_Restore1() {

-		URL url = MultiDataTriggerTests.class

-				.getResource(MultiDataTrigger_Restore.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button button1 = (Button) XWT.findElementByName(root, "Button");

-				selectButton(button1, false);

-				selectButton(button1, true);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Button button1 = (Button) XWT.findElementByName(root, "Button");

-

-				assertEquals(button1.getText(), "true");

-			}

-		});

-	}

-

-	public void test_MultiDataTrigger_Restore2() {

-		URL url = MultiDataTriggerTests.class

-				.getResource(MultiDataTrigger_Restore.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button button1 = (Button) XWT.findElementByName(root, "Button");

-				selectButton(button1, false);

-				selectButton(button1, true);

-				selectButton(button1, false);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Button button1 = (Button) XWT.findElementByName(root, "Button");

-

-				assertEquals(button1.getText(), "");

-			}

-		});

-	}

-

-	public void test_MultiDataTrigger2() {

-		URL url = MultiDataTriggerTests.class

-				.getResource(MultiDataTrigger.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button button1 = (Button) XWT.findElementByName(root, "Button");

-				selectButton(button1, false);

-				Text text = (Text) XWT.findElementByName(root, "Text");

-				text.setText("15");

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				assertTrue(root.isVisible());

-			}

-		});

-	}

-

-	public void test_MultiDataTrigger3() {

-		URL url = MultiDataTriggerTests.class

-				.getResource(MultiDataTrigger.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button button1 = (Button) XWT.findElementByName(root, "Button");

-				selectButton(button1, false);

-				Text text = (Text) XWT.findElementByName(root, "Text");

-				text.setText("15");

-				selectButton(button1, true);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				assertFalse(root.isVisible());

-			}

-		});

-	}

-

-	public void test_MultiDataTrigger4() {

-		URL url = MultiDataTriggerTests.class

-				.getResource(MultiDataTrigger_Default.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button button1 = (Button) XWT.findElementByName(root, "Button");

-				selectButton(button1, false);

-				Text text = (Text) XWT.findElementByName(root, "Text");

-				text.setText("15");

-				selectButton(button1, true);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				assertTrue(root.isVisible());

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger_Default.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger_Default.java
deleted file mode 100644
index 7ea74d0..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger_Default.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.trigger.multidatatrigger;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class MultiDataTrigger_Default {

-	public static void main(String[] args) {

-

-		URL url = MultiDataTrigger_Default.class

-				.getResource(MultiDataTrigger_Default.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger_Default.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger_Default.xwt
deleted file mode 100644
index 42cf7e6..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger_Default.xwt
+++ /dev/null
@@ -1,42 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.trigger.datatrigger"

-	DataContext="{StaticResource myData}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	

-	<Composite.Resources>

-		<y:Person x:Key="myData"/>

-	</Composite.Resources>

-

-	<Label text="Set ago = 15 and maried = true">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-	<Label text="Name"/>

-	<Text name="Text" x:style="BORDER" text="{Binding Path=age}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	

-	<Button name="Button" x:style="SWT.CHECK" selection="{Binding Path=maried}">

-		<Button.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Button.layoutData>

-	</Button>

-	<Composite.Triggers>

-      <MultiDataTrigger>

-        <MultiDataTrigger.Conditions>

-          <Condition Binding="{Binding Path=maried}" Value="true"/>

-          <Condition Binding="{Binding Path=age}" Value="15" />

-        </MultiDataTrigger.Conditions>

-        <Setter Property="Visible" Value="false" />

-      </MultiDataTrigger>

-	</Composite.Triggers>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger_Restore.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger_Restore.java
deleted file mode 100644
index 054b4a3..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger_Restore.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.trigger.multidatatrigger;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class MultiDataTrigger_Restore {

-	public static void main(String[] args) {

-

-		URL url = MultiDataTrigger_Restore.class

-				.getResource(MultiDataTrigger_Restore.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger_Restore.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger_Restore.xwt
deleted file mode 100644
index 59d4689..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger_Restore.xwt
+++ /dev/null
@@ -1,42 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.trigger.datatrigger"

-	DataContext="{StaticResource myData}">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	

-	<Composite.Resources>

-		<y:Person x:Key="myData"/>

-	</Composite.Resources>

-

-	<Label text="Set ago = 15 and maried = true">

-		<Label.layoutData>

-			<GridData horizontalAlignment="FILL" horizontalSpan="2"

-         		grabExcessHorizontalSpace="true"/>

-		</Label.layoutData>

-	</Label>

-	<Label text="Name"/>

-	<Text name="Text" x:style="BORDER" text="{Binding Path=age}">

-		<Text.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Text.layoutData>

-	</Text>

-	

-	<Button name="Button" x:style="SWT.CHECK" selection="{Binding Path=maried}">

-		<Button.layoutData>

-			<GridData horizontalAlignment="FILL"

-         		grabExcessHorizontalSpace="true"/>

-		</Button.layoutData>

-	</Button>

-	<Composite.Triggers>

-      <MultiDataTrigger>

-        <MultiDataTrigger.Conditions>

-          <Condition Binding="{Binding Path=maried}" Value="true"/>

-          <Condition Binding="{Binding Path=age}" Value="15" Operator="LT"/>

-        </MultiDataTrigger.Conditions>

-        <Setter Property="text" Value="true" targetName="Button" />

-      </MultiDataTrigger>

-	</Composite.Triggers>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/Button_Click_MultiTrigger.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/Button_Click_MultiTrigger.java
deleted file mode 100644
index bcdf318..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/Button_Click_MultiTrigger.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.trigger.multitrigger;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Button_Click_MultiTrigger {

-

-	/**

-	 * @param args

-	 */

-	public static void main(String[] args) {

-

-		URL url = Button_Click_MultiTrigger.class

-				.getResource(Button_Click_MultiTrigger.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/Button_Click_MultiTrigger.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/Button_Click_MultiTrigger.xwt
deleted file mode 100644
index 5e60379..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/Button_Click_MultiTrigger.xwt
+++ /dev/null
@@ -1,31 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt">

-	<Composite.layout>

-		<GridLayout numColumns="1"/>

-	</Composite.layout>	

-	

-  <!-- The width of this button is animated. -->

-  <Button name="ButtonHide" x:Style="SWT.CHECK" Text="Hit to hide">

-    <Button.Triggers>

-       <MultiTrigger>

-          <MultiTrigger.Conditions>

-             <Condition Property="Selection" Value="true" />

-             <Condition Property="Visible" Value="true" />

-          </MultiTrigger.Conditions>

-	      <Setter Property="Visible" Value="False" />

-       </MultiTrigger>

-    </Button.Triggers>

-  </Button>

-  

-  <Button name="ButtonNotHide" x:Style="SWT.CHECK" Text="Hit cannot hide">

-    <Button.Triggers>

-       <MultiTrigger>

-          <MultiTrigger.Conditions>

-             <Condition Property="Selection" Value="true" />

-             <Condition Property="Visible" Value="false" />

-          </MultiTrigger.Conditions>

-	      <Setter Property="Visible" Value="False" />

-       </MultiTrigger>

-    </Button.Triggers>

-  </Button>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/Button_Click_MultiTrigger_SourceName.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/Button_Click_MultiTrigger_SourceName.java
deleted file mode 100644
index 9f91cbe..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/Button_Click_MultiTrigger_SourceName.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.trigger.multitrigger;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Button_Click_MultiTrigger_SourceName {

-

-	/**

-	 * @param args

-	 */

-	public static void main(String[] args) {

-

-		URL url = Button_Click_MultiTrigger_SourceName.class

-				.getResource(Button_Click_MultiTrigger_SourceName.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/Button_Click_MultiTrigger_SourceName.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/Button_Click_MultiTrigger_SourceName.xwt
deleted file mode 100644
index 17835c2..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/Button_Click_MultiTrigger_SourceName.xwt
+++ /dev/null
@@ -1,20 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt">

-	<Composite.layout>

-		<GridLayout numColumns="1"/>

-	</Composite.layout>	

-	

-  <!-- The width of this button is animated. -->

-  <Button name="button1" x:Style="SWT.CHECK" Text="Hit both hide"/>

-  <Button name="button2" x:Style="SWT.CHECK" Text="Hit both hide"/>

-  <Composite.Triggers>

-    <MultiTrigger>

-      <MultiTrigger.Conditions>

-         <Condition Property="Selection" Value="true" sourceName="button1"/>

-         <Condition Property="Selection" Value="true" sourceName="button2"/>

-      </MultiTrigger.Conditions>

-      <Setter Property="Visible" Value="False" targetName="button1"/>

-      <Setter Property="Visible" Value="False" targetName="button2"/>

-    </MultiTrigger>

-  </Composite.Triggers>  

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/MultiTriggerTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/MultiTriggerTests.java
deleted file mode 100644
index 24182a3..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/MultiTriggerTests.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.trigger.multitrigger;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class MultiTriggerTests extends XWTTestCase {

-

-	public MultiTriggerTests() {

-	}

-

-	public void test_Button_Click_MultiTrigger() {

-		URL url = MultiTriggerTests.class

-				.getResource(Button_Click_MultiTrigger.class.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button buttonHide = (Button) XWT.findElementByName(root,

-						"ButtonHide");

-				selectButton(buttonHide);

-				Button buttonNotHide = (Button) XWT.findElementByName(root,

-						"ButtonNotHide");

-				selectButton(buttonNotHide);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Button buttonHide = (Button) XWT.findElementByName(root,

-						"ButtonHide");

-				assertFalse(buttonHide.isVisible());

-				Button buttonNotHide = (Button) XWT.findElementByName(root,

-						"ButtonNotHide");

-				assertTrue(buttonNotHide.isVisible());

-			}

-		});

-	}

-

-	public void test_Button_Click_MultiTrigger_SourceName1() {

-		URL url = MultiTriggerTests.class

-				.getResource(Button_Click_MultiTrigger_SourceName.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button button1 = (Button) XWT

-						.findElementByName(root, "button1");

-				selectButton(button1);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				assertTrue(root.isVisible());

-			}

-		});

-	}

-

-	public void test_Button_Click_MultiTrigger_SourceName2() {

-		URL url = MultiTriggerTests.class

-				.getResource(Button_Click_MultiTrigger_SourceName.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button button2 = (Button) XWT

-						.findElementByName(root, "button2");

-				selectButton(button2);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				assertTrue(root.isVisible());

-			}

-		});

-	}

-

-	public void test_Button_Click_MultiTrigger_SourceName3() {

-		URL url = MultiTriggerTests.class

-				.getResource(Button_Click_MultiTrigger_SourceName.class

-						.getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Button button1 = (Button) XWT

-						.findElementByName(root, "button1");

-				selectButton(button1);

-				Button button2 = (Button) XWT

-						.findElementByName(root, "button2");

-				selectButton(button2);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Button button1 = (Button) XWT

-						.findElementByName(root, "button1");

-				assertFalse(button1.isVisible());

-				Button button2 = (Button) XWT

-						.findElementByName(root, "button2");

-				assertFalse(button2.isVisible());

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/Container.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/Container.java
deleted file mode 100644
index 1581ac5..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/Container.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.usercontrol;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Container {

-	public static void main(String[] args) {

-

-		URL url = Container.class.getResource(Container.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/Container.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/Container.xwt
deleted file mode 100644
index 51a324a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/Container.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.usercontrol">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>	

-	<y:UserControl Name="childControl"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/UserControl.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/UserControl.java
deleted file mode 100644
index 9b67147..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/UserControl.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.usercontrol;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Event;

-

-public class UserControl extends Composite {

-	static public final String SELECTION_MESSAGE = "OK";

-

-	public UserControl(Composite parent, int style) {

-		super(parent, style);

-	}

-

-	protected void selection(Event event) {

-		Button button = (Button) event.widget;

-		button.setText(SELECTION_MESSAGE);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/UserControl.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/UserControl.xwt
deleted file mode 100644
index 6eb01dc..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/UserControl.xwt
+++ /dev/null
@@ -1,9 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:j="clr-namespace:org.eclipse.xwt.tests.usercontrol"

-	x:Class="org.eclipse.xwt.tests.usercontrol.UserControl">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>	

-	<Button Name="targetButton" text="Hello, world" SelectionEvent="selection"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/UserControlTestSuite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/UserControlTestSuite.java
deleted file mode 100644
index 3b223cf..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/UserControlTestSuite.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.usercontrol;

-

-import junit.framework.Test;

-import junit.framework.TestSuite;

-

-public class UserControlTestSuite extends TestSuite {

-	public static final Test suite() {

-		return new UserControlTestSuite();

-	}

-

-	public UserControlTestSuite() {

-		addTest(new TestSuite(UserControlTests.class));

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/UserControlTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/UserControlTests.java
deleted file mode 100644
index 1c790f0..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/UserControlTests.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.usercontrol;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.tests.XWTTestCase;

-

-public class UserControlTests extends XWTTestCase {

-	public void testUserControl() throws Exception {

-		URL url = UserControlTests.class.getResource(Container.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Control[] childControls = ((Composite) root).getChildren();

-				assertTrue(childControls.length == 1);

-				assertTrue(childControls[0] instanceof UserControl);

-				Object element = XWT.findElementByName(

-						(UserControl) childControls[0], "targetButton");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				selectButton(button);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Control[] childControls = ((Composite) root).getChildren();

-				assertTrue(childControls.length == 1);

-				assertTrue(childControls[0] instanceof UserControl);

-				Object element = XWT.findElementByName(

-						(UserControl) childControls[0], "targetButton");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				assertTrue(UserControl.SELECTION_MESSAGE.equals(button

-						.getText()));

-			}

-		});

-	}

-

-	public void testUserControlName() throws Exception {

-		URL url = UserControlTests.class.getResource(Container.class

-				.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		runTest(url, new Runnable() {

-			public void run() {

-				Object childCOntrol = XWT.findElementByName(root,

-						"childControl");

-				assertTrue(childCOntrol instanceof UserControl);

-				Object element = XWT.findElementByName(

-						(UserControl) childCOntrol, "targetButton");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				selectButton(button);

-			}

-		}, new Runnable() {

-			public void run() {

-				checkButton();

-			}

-

-			public void checkButton() {

-				Object childCOntrol = XWT.findElementByName(root,

-						"childControl");

-				assertTrue(childCOntrol instanceof UserControl);

-				Object element = XWT.findElementByName(

-						(UserControl) childCOntrol, "targetButton");

-				assertTrue(element instanceof Button);

-				Button button = (Button) element;

-				assertTrue(UserControl.SELECTION_MESSAGE.equals(button

-						.getText()));

-			}

-		});

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/event/Container.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/event/Container.java
deleted file mode 100644
index 06f3b2d..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/event/Container.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.usercontrol.event;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-public class Container {

-	public static void main(String[] args) {

-

-		URL url = Container.class.getResource(Container.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void selection(Event event) {

-		Button button = (Button) event.widget;

-		button.setText("OK");

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/event/Container.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/event/Container.xwt
deleted file mode 100644
index 166ae9c..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/event/Container.xwt
+++ /dev/null
@@ -1,9 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:y="clr-namespace:org.eclipse.xwt.tests.usercontrol.event"

-	x:Class="org.eclipse.xwt.tests.usercontrol.event.Container">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<y:UserControl/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/event/UserControl.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/event/UserControl.java
deleted file mode 100644
index 210fc13..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/event/UserControl.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.usercontrol.event;

-

-import org.eclipse.swt.widgets.Composite;

-

-public class UserControl extends Composite {

-

-	public UserControl(Composite parent, int style) {

-		super(parent, style);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/event/UserControl.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/event/UserControl.xwt
deleted file mode 100644
index e3d1079..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/event/UserControl.xwt
+++ /dev/null
@@ -1,8 +0,0 @@
-<j:UserControl xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:j="clr-namespace:org.eclipse.xwt.tests.usercontrol">

-	<j:UserControl.layout>

-		<GridLayout numColumns="2"/>

-	</j:UserControl.layout>	

-	<Button text="Hello, world" SelectionEvent="selection"/>

-</j:UserControl>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/Company.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/Company.java
deleted file mode 100644
index 042c161..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/Company.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.view;

-

-import java.beans.PropertyChangeListener;

-import java.beans.PropertyChangeSupport;

-

-public class Company {

-	private PropertyChangeSupport changeSupport = new PropertyChangeSupport(

-			this);

-

-	public void addPropertyChangeListener(String propertyName,

-			PropertyChangeListener listener) {

-		changeSupport.addPropertyChangeListener(propertyName, listener);

-	}

-

-	public void removePropertyChangeListener(String propertyName,

-			PropertyChangeListener listener) {

-		changeSupport.removePropertyChangeListener(propertyName, listener);

-	}

-

-	protected String name;

-	protected Person manager = new Person();

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		String oldValue = name;

-		this.name = name;

-		changeSupport.firePropertyChange("name", oldValue, name);

-	}

-

-	public Person getManager() {

-		return manager;

-	}

-

-	public void setManager(Person manager) {

-		Person oldValue = this.manager;

-		this.manager = manager;

-		changeSupport.firePropertyChange("manager", oldValue, manager);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/CompanyView.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/CompanyView.java
deleted file mode 100644
index f3969a9..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/CompanyView.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.view;

-

-import org.eclipse.swt.widgets.Composite;

-

-public class CompanyView extends Composite {

-

-	public CompanyView(Composite parent, int style) {

-		super(parent, style);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/CompanyView.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/CompanyView.xwt
deleted file mode 100644
index a4aa83e..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/CompanyView.xwt
+++ /dev/null
@@ -1,18 +0,0 @@
-<j:CompanyView

-	xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:j="clr-namespace:org.eclipse.xwt.tests.view">

-   <j:CompanyView.layout>

-       <GridLayout numColumns="2"/>

-   </j:CompanyView.layout>

-

-   <Label Text="Company name:"/>

-   <Text x:Style="BORDER" Text="{Binding Path=name}"/>

-   <Label Text="Manager:"/>

-   <Group text="Person View:">

-   	   <Group.layout>

-   	      <FillLayout/>

-   	   </Group.layout>

-	   <j:PersonView DataContext="{Binding Path=manager}"/>

-   </Group>

-</j:CompanyView>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/Main.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/Main.java
deleted file mode 100644
index f79b9b2..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/Main.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.view;

-

-import org.eclipse.xwt.XWT;

-

-public class Main {

-

-	/**

-	 * @param args

-	 */

-	public static void main(String[] args) {

-

-		Company company = new Company();

-		Person person = new Person();

-		person.setFirstName("Luc");

-		person.setLastName("GAMEL");

-		company.setName("Soyatec");

-		company.setManager(person);

-

-		try {

-			XWT.open(Main.class.getResource("CompanyView.xwt"), company);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/Person.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/Person.java
deleted file mode 100644
index d717aa3..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/Person.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.view;

-

-import java.beans.PropertyChangeListener;

-import java.beans.PropertyChangeSupport;

-

-public class Person {

-	private PropertyChangeSupport changeSupport = new PropertyChangeSupport(

-			this);

-

-	public void addPropertyChangeListener(String propertyName,

-			PropertyChangeListener listener) {

-		changeSupport.addPropertyChangeListener(propertyName, listener);

-	}

-

-	public void removePropertyChangeListener(String propertyName,

-			PropertyChangeListener listener) {

-		changeSupport.removePropertyChangeListener(propertyName, listener);

-	}

-

-	protected String firstName;

-

-	public String getFirstName() {

-		return firstName;

-	}

-

-	public void setFirstName(String firstName) {

-		String oldValue = this.firstName;

-		this.firstName = firstName;

-		changeSupport.firePropertyChange("firstName", oldValue, firstName);

-	}

-

-	public String getLastName() {

-		return lastName;

-	}

-

-	public void setLastName(String lastName) {

-		String oldValue = this.lastName;

-		this.lastName = lastName;

-		changeSupport.firePropertyChange("lastName", oldValue, lastName);

-	}

-

-	protected String lastName;

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/PersonView.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/PersonView.java
deleted file mode 100644
index ef9f0a1..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/PersonView.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.view;

-

-import org.eclipse.swt.widgets.Composite;

-

-public class PersonView extends Composite {

-

-	public PersonView(Composite parent, int style) {

-		super(parent, style);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/PersonView.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/PersonView.xwt
deleted file mode 100644
index 37cff94..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/PersonView.xwt
+++ /dev/null
@@ -1,13 +0,0 @@
-<j:PersonView

-	xmlns="http://www.eclipse.org/xwt/presentation"

-	xmlns:x="http://www.eclipse.org/xwt"

-	xmlns:j="clr-namespace:org.eclipse.xwt.tests.view">

-   <j:PersonView.layout>

-       <GridLayout numColumns="2"/>

-   </j:PersonView.layout>

-

-   <Label Text="First name:"/>

-   <Text x:Style="BORDER" Text="{Binding Path=firstName}"/>

-   <Label Text="Last name:"/>

-   <Text x:Style="BORDER" Text="{Binding Path=lastName}"/>

-</j:PersonView>

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/Address.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/Address.java
deleted file mode 100644
index 1e7e78a..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/Address.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tests.wizard;
-
-public class Address extends BeanObject {
-	private String street = "Place de France";
-	private String city = "Paris";
-	
-	public Address() {
-     
-	}
-	
-	public String getStreet() {
-		return street;
-	}
-	
-	public void setStreet(String street) {
-		String oldValue = this.street;
-		this.street = street;
-		changeSupport.firePropertyChange("street", oldValue, street);
-	}
-	
-	public void setCity(String city) {
-		String oldValue = this.city;
-		this.city = city;
-		changeSupport.firePropertyChange("city", oldValue, city);
-	}
-
-	public String getCity() {
-		return city;
-	}
-
-}
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/AddressView.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/AddressView.java
deleted file mode 100644
index 30534ef..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/AddressView.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/******************************************************************************* 
- * Copyright (c) 2006, 2015 Soyatec (http://www.soyatec.com) and others. 
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0 
- * which accompanies this distribution, and is available at 
- * http://www.eclipse.org/legal/epl-v10.html 
- * 
- * Contributors: 
- * Soyatec - initial API and implementation 
- *******************************************************************************/
-
-package org.eclipse.xwt.tests.wizard;
-
-import java.net.URL;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.xwt.XWT;
-
-/**
- * @author
- * 
- */
-public class AddressView extends Composite {
-	public AddressView(Composite parent, int style) {
-		super(parent, style);
-	}
-	
-	public static void main(String[] args) {
-		URL url = AddressView.class.getResource("AddressView.xwt");
-		
-		try {
-			XWT.open(url);
-		} catch (Exception e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/BeanObject.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/BeanObject.java
deleted file mode 100644
index 4e56c52..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/BeanObject.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tests.wizard;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-
-public class BeanObject {
-	protected PropertyChangeSupport changeSupport = new PropertyChangeSupport(
-			this);
-
-	public void addPropertyChangeListener(String propertyName,
-			PropertyChangeListener listener) {
-		changeSupport.addPropertyChangeListener(propertyName, listener);
-	}
-
-	public void removePropertyChangeListener(String propertyName,
-			PropertyChangeListener listener) {
-		changeSupport.removePropertyChangeListener(propertyName, listener);
-	}
-}
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/Company.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/Company.java
deleted file mode 100644
index 1b23bed..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/Company.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tests.wizard;
-
-public class Company extends BeanObject {
-	private String name = "Soyatec";
-	private Person manager = new Person();
-
-	public Person getManager() {
-		return manager;
-	}
-
-	public void setManager(Person manager) {
-		Person oldValue = this.manager;
-		this.manager = manager;
-		changeSupport.firePropertyChange("manager", oldValue, manager);
-	}
-
-	public Company() {
-		manager.setName("Julien");
-	}
-
-	public void setName(String value) {
-		String oldValue = this.name;
-		this.name = value;
-		changeSupport.firePropertyChange("name", oldValue, value);
-	}
-
-	public String getName() {
-		return name;
-	}
-}
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/CompanyView.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/CompanyView.java
deleted file mode 100644
index 1e03bba..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/CompanyView.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tests.wizard;
-
-import java.net.URL;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.xwt.XWT;
-
-public class CompanyView extends Composite {
-
-	public CompanyView(Composite parent, int style) {
-		super(parent, style);
-		// TODO Auto-generated constructor stub
-	}
-
-	public static void main(String[] args) {
-		URL url = CompanyView.class.getResource("CompanyView.xwt");
-		try {
-			XWT.open(url);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/CompanyWizardPage.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/CompanyWizardPage.java
deleted file mode 100644
index a4817da..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/CompanyWizardPage.java
+++ /dev/null
@@ -1,40 +0,0 @@
-
-/******************************************************************************* 
- * Copyright (c) 2006, 2015 Soyatec (http://www.soyatec.com) and others. 
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0 
- * which accompanies this distribution, and is available at 
- * http://www.eclipse.org/legal/epl-v10.html 
- * 
- * Contributors: 
- * Soyatec - initial API and implementation 
- *******************************************************************************/
-
-package org.eclipse.xwt.tests.wizard;
-
-import java.net.URL;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.xwt.ui.workbench.wizard.XWTWizardPage;
-
-/**
- * @author El-Amine Ouraiba (amine.ouraiba@soyatec.com)
- */
-
-public class CompanyWizardPage  extends XWTWizardPage {
-
-	protected CompanyWizardPage(String pageName, String title,
-			ImageDescriptor titleImage, Object dataContext) {
-		super(pageName, title, titleImage, dataContext);
-	}
-
-	protected URL getContentURL() {
-		URL url = CompanyWizardPage.class.getResource("CompanyView.xwt");
-		return url;
-	}
-
-	public boolean canFlipToNextPage() {
-		return isPageComplete() && getNextPage() != null;
-	}
-
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/EMailValidator.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/EMailValidator.java
deleted file mode 100644
index e830922..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/EMailValidator.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/******************************************************************************* 
- * Copyright (c) 2006, 2015 Soyatec (http://www.soyatec.com) and others. 
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0 
- * which accompanies this distribution, and is available at 
- * http://www.eclipse.org/legal/epl-v10.html 
- * 
- * Contributors: 
- * Soyatec - initial API and implementation 
- *******************************************************************************/ 
-package org.eclipse.xwt.tests.wizard;
-
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.xwt.validation.AbstractValidationRule;
-
-public class EMailValidator extends AbstractValidationRule {
-
-	private static final String EMAIL_PATTERN = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"
-			+ "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
-
-	private Pattern pattern;
-	private Matcher matcher;
-
-	public EMailValidator() {
-		pattern = Pattern.compile(EMAIL_PATTERN);
-	}
-
-	@Override
-	public Phase getPhase() {
-		return Phase.BeforeSet;
-	}
-
-	@Override
-	public Direction getBindingMode() {
-		return Direction.TargetToSource;
-	}
-
-	public IStatus validate(Object value) {
-		if (value == null || value.equals("")) {
-			return ValidationStatus.error("Email can not be empty.");
-		}
-		matcher = pattern.matcher(value.toString());
-		if (matcher.matches()) {
-			return ValidationStatus.ok();
-		}
-		return ValidationStatus.error("'" + value.toString()
-				+ "' is not a validate email.");
-	}
-
-	public IStatus validateBack(Object value) {
-		return validate(value);
-	}
-
-}
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/MyWizard.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/MyWizard.java
deleted file mode 100644
index 6fab653..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/MyWizard.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/******************************************************************************* 
- * Copyright (c) 2006, 2015 Soyatec (http://www.soyatec.com) and others. 
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0 
- * which accompanies this distribution, and is available at 
- * http://www.eclipse.org/legal/epl-v10.html 
- * 
- * Contributors: 
- * Soyatec - initial API and implementation 
- *******************************************************************************/
-
-package org.eclipse.xwt.tests.wizard;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-
-
-/**
- * @author El-Amine Ouraiba (amine.ouraiba@soyatec.com)
- */
-
-public class MyWizard extends Wizard implements INewWizard {
-
-	public PersonWizardPage pagePerson;
-	public CompanyWizardPage pageCompany;
-	
-	 Person dataContextPerson = new Person();
-	 Company dataContextCompany = new Company();
-	
-	public MyWizard() {
-		super();
-		setNeedsProgressMonitor(true);
-		dataContextCompany.setManager(dataContextPerson);
-	}
-
-	public String getWindowTitle() {
-		return "Company Wizard";
-	}
-
-	@Override
-	public void addPages() {
-		
-		pagePerson = new PersonWizardPage("Person Page", "Enter information about Person", null, dataContextPerson);
-		addPage(pagePerson);
-		
-		pageCompany = new CompanyWizardPage("Company Page",	"Enter information about Company", null, dataContextCompany);
-		addPage(pageCompany);
-		
-	}
-
-	@Override
-	public boolean performFinish() {
-        return true;
-	}
-
-	@Override
-	public void init(IWorkbench workbench, IStructuredSelection selection) {
-		// TODO Auto-generated method stub
-	}
-
-	public boolean canFinish(){
-		if (this.getContainer().getCurrentPage() == pagePerson) 
-			return false;
-		if (pageCompany.isPageComplete()) return true;
-		return false; 
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/NameValidator.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/NameValidator.java
deleted file mode 100644
index 31c93c3..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/NameValidator.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/******************************************************************************* 
- * Copyright (c) 2006, 2015 Soyatec (http://www.soyatec.com) and others. 
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0 
- * which accompanies this distribution, and is available at 
- * http://www.eclipse.org/legal/epl-v10.html 
- * 
- * Contributors: 
- * Soyatec - initial API and implementation 
- *******************************************************************************/
-package org.eclipse.xwt.tests.wizard;
-
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.xwt.validation.AbstractValidationRule;
-
-public class NameValidator extends AbstractValidationRule {
-
-	public NameValidator() {
-		super();
-	}
-
-	@Override
-	public Phase getPhase() {
-		return Phase.BeforeSet;
-	}
-
-	@Override
-	public Direction getBindingMode() {
-		return Direction.Both;
-	}
-
-	public IStatus validate(Object value) {
-		
-		if (value.equals(0) || value == null || value.toString().length() == 0	|| value.equals("") ) {
-		    return	ValidationStatus.error("This field is mandatory. It must be specified");
-			} 
-		
-			if (value.toString().charAt(0) == '.') {
-				return	ValidationStatus.error("This field must not begin with a '.'");
-			
-			}
-						
-			for (int i = 0; i < value.toString().length(); i++) {
-				char c = value.toString().charAt(i);
-				if ((c < 'A' || 'Z' < c) && (c < 'a' || 'z' < c) && (c < '0' || '9' < c) && c != '_' && c != '-') {
-					if (i == 0 || i == value.toString().length() - 1 || c != '.') {
-						return ValidationStatus.error("This field cannot contain ''" + c + "''");
-					}
-				}
-			}
-	
-			
-			
-			 ValidationStatus.info("Define data fields of a new person");
-				
-		return ValidationStatus.ok();
-
-	}
-
-	public IStatus validateBack(Object value) {
-		return validate(value);
-	}
-
-}
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/Person.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/Person.java
deleted file mode 100644
index 5791806..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/Person.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tests.wizard;
-
-public class Person extends BeanObject {
-	private String name = "toto";
-	private String email = "toto@soyatec.com";
-	private int age = 30;
-	private boolean maried = false;
-	private Address address;
-
-	public Person() {
-		address = new Address();
-	}
-	
-	public void setName(String name) {
-		String oldValue = this.name;
-		this.name = name;
-		changeSupport.firePropertyChange("name", oldValue, name);
-	}
-	
-	public String getName() {
-		return name;
-	}
-	
-	public void setEmail(String email) {
-		String oldValue = this.email;
-		this.email = email;
-		changeSupport.firePropertyChange("email", oldValue, email);
-	}
-	
-	
-	
-	public String getEmail() {
-		return email;
-	}
-	
-	public int getAge() {
-		return age;
-	}
-
-	public void setAge(int age) {
-		int oldValue = this.age;
-		this.age = age;
-		changeSupport.firePropertyChange("age", oldValue, age);
-	}
-	
-	public void setMaried(boolean maried) {
-		boolean oldValue = this.maried;
-		this.maried = maried;
-		changeSupport.firePropertyChange("maried", oldValue, maried);
-	}
-
-	public boolean isMaried() {
-		return maried;
-	}
-
-	public Address getAddress() {
-		return address;
-	}
-
-	public void setAddress(Address address) {
-		Address oldValue = this.address;
-		this.address = address;
-		changeSupport.firePropertyChange("address", oldValue, address);
-	}
-
-}
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/PersonView.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/PersonView.java
deleted file mode 100644
index 32a8cad..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/PersonView.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tests.wizard;
-
-import java.net.URL;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.xwt.XWT;
-
-public class PersonView extends Composite {
-
-	public PersonView(Composite parent, int style) {
-		super(parent, style);
-		// TODO Auto-generated constructor stub
-	}
-
-	
-	public static void main(String[] args) {
-		URL url = PersonView.class.getResource("PersonView.xwt");
-		try {
-			XWT.open(url);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/PersonWizardPage.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/PersonWizardPage.java
deleted file mode 100644
index 4151290..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/PersonWizardPage.java
+++ /dev/null
@@ -1,43 +0,0 @@
-
-/******************************************************************************* 
- * Copyright (c) 2006, 2015 Soyatec (http://www.soyatec.com) and others. 
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0 
- * which accompanies this distribution, and is available at 
- * http://www.eclipse.org/legal/epl-v10.html 
- * 
- * Contributors: 
- * Soyatec - initial API and implementation 
- *******************************************************************************/
-
-package org.eclipse.xwt.tests.wizard;
-
-import java.net.URL;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.xwt.ui.workbench.wizard.XWTWizardPage;
-
-/**
- * @author El-Amine Ouraiba (amine.ouraiba@soyatec.com)
- */
-
-public class PersonWizardPage  extends XWTWizardPage {
-
-	protected PersonWizardPage(String pageName, String title,
-			ImageDescriptor titleImage, Object dataContext) {
-		super(pageName, title, titleImage, dataContext);
-	}
-
-	protected URL getContentURL() {
-		URL url = PersonWizardPage.class.getResource("PersonView.xwt");
-		return url;
-	}
-
-	public boolean canFlipToNextPage() {
-		return isPageComplete() && getNextPage() != null;
-	}
-	
-	public XWTWizardPage getNextPage(){
-		return ((MyWizard)getWizard()).pageCompany;
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression.xwt
deleted file mode 100644
index b672754..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression.xwt
+++ /dev/null
@@ -1,5 +0,0 @@
-<Label xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:y="clr-namespace:gui"

-    text="{Binding path=name}">

-</Label>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpressionTestSuite.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpressionTestSuite.java
deleted file mode 100644
index d2f1832..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpressionTestSuite.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.xaml;

-

-import junit.framework.Test;

-import junit.framework.TestSuite;

-

-public class BindingExpressionTestSuite extends TestSuite {

-	public static final Test suite() {

-		return new BindingExpressionTestSuite();

-	}

-

-	public BindingExpressionTestSuite() {

-		addTest(new TestSuite(BindingExpressionTests.class));

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpressionTests.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpressionTests.java
deleted file mode 100644
index 7934669..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpressionTests.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.xaml;

-

-import java.net.URL;

-

-import junit.framework.TestCase;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.internal.xml.Attribute;

-import org.eclipse.xwt.internal.xml.DocumentObject;

-import org.eclipse.xwt.internal.xml.Element;

-import org.eclipse.xwt.internal.xml.ElementManager;

-

-/**

- * This class test the function about OperatorHelper

- * 

- * @author YaHong.Song(yahong.song@soyatec.com)

- * 

- */

-public class BindingExpressionTests extends TestCase {

-

-	/**

-	 * The testcase for EQ test

-	 * 

-	 * @throws Exception

-	 */

-	public void testBindingExpression() throws Exception {

-		URL url = BindingExpressionTests.class.getResource("BindingExpression"

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			ElementManager elementManager = new ElementManager();

-			Element element = elementManager.load(url, null);

-			checkTextValue(element, "path", "name");

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	public void testBindingExpression_path() throws Exception {

-		URL url = BindingExpressionTests.class

-				.getResource("BindingExpression_Path"

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			ElementManager elementManager = new ElementManager();

-			Element element = elementManager.load(url, null);

-			checkTextValue(element, "path", "employees.name");

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	public void testBindingExpression_Attached() throws Exception {

-		URL url = BindingExpressionTests.class

-				.getResource("BindingExpression_Attached"

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			ElementManager elementManager = new ElementManager();

-			Element element = elementManager.load(url, null);

-			checkTextValue(element, "path", "(Person.name)");

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	public void testBindingExpression_Indexer() throws Exception {

-		URL url = BindingExpressionTests.class

-				.getResource("BindingExpression_Indexer"

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			ElementManager elementManager = new ElementManager();

-			Element element = elementManager.load(url, null);

-			checkTextValue(element, "path", "persons[1].name");

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	public void testBindingExpression_Namespace() throws Exception {

-		URL url = BindingExpressionTests.class

-				.getResource("BindingExpression_Namespace"

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			ElementManager elementManager = new ElementManager();

-			Element element = elementManager.load(url, null);

-			checkTextValue(element, "path", "(gui.Person.name)");

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	public void testBindingExpression_NamespaceUpdateSourceTrigger()

-			throws Exception {

-		URL url = BindingExpressionTests.class

-				.getResource("BindingExpression_NamespaceUpdateSourceTrigger"

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			ElementManager elementManager = new ElementManager();

-			Element element = elementManager.load(url, null);

-			checkTextValue(element, "path", "(gui.Person.name)");

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	public void testBindingExpression_UpdateSourceTrigger() throws Exception {

-		URL url = BindingExpressionTests.class

-				.getResource("BindingExpression_UpdateSourceTrigger"

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			ElementManager elementManager = new ElementManager();

-			Element element = elementManager.load(url, null);

-			checkTextValue(element, "UpdateSourceTrigger", "PropertyChanged");

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void checkTextValue(Element element, String name, String value) {

-		Attribute attribute = element.getAttribute("Text");

-		assertEquals(attribute.getName(), "Text");

-		assertEquals(attribute.getChildren().length, 1);

-		DocumentObject child = attribute.getChildren()[0];

-		assertEquals(child.getName(), "Binding");

-		assertTrue(child instanceof Element);

-

-		Element childElement = (Element) child;

-		Attribute pathAttribute = childElement.getAttribute(name);

-		assertTrue(pathAttribute != null);

-		assertEquals(pathAttribute.getContent(), value);

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_Attached.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_Attached.xwt
deleted file mode 100644
index 3985297..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_Attached.xwt
+++ /dev/null
@@ -1,5 +0,0 @@
-<Label xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:y="clr-namespace:gui"

-    text="{Binding path=(Person.name)}">

-</Label>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_Indexer.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_Indexer.xwt
deleted file mode 100644
index 9057232..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_Indexer.xwt
+++ /dev/null
@@ -1,5 +0,0 @@
-<Label xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:y="clr-namespace:gui"

-    text="{Binding path=persons[1].name}">

-</Label>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_Namespace.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_Namespace.xwt
deleted file mode 100644
index 72bf3f2..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_Namespace.xwt
+++ /dev/null
@@ -1,5 +0,0 @@
-<Label xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:y="clr-namespace:gui"

-    text="{Binding path=(y:Person.name)}">

-</Label>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_NamespaceUpdateSourceTrigger.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_NamespaceUpdateSourceTrigger.xwt
deleted file mode 100644
index 2ac5b1f..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_NamespaceUpdateSourceTrigger.xwt
+++ /dev/null
@@ -1,5 +0,0 @@
-<Label xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:y="clr-namespace:gui"

-    text="{Binding path=(y:Person.name),UpdateSourceTrigger=PropertyChanged}">

-</Label>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_Path.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_Path.xwt
deleted file mode 100644
index 488f022..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_Path.xwt
+++ /dev/null
@@ -1,5 +0,0 @@
-<Label xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:y="clr-namespace:gui"

-    text="{Binding path=employees.name}">

-</Label>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_UpdateSourceTrigger.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_UpdateSourceTrigger.xwt
deleted file mode 100644
index 7a98712..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_UpdateSourceTrigger.xwt
+++ /dev/null
@@ -1,5 +0,0 @@
-<Label xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    xmlns:y="clr-namespace:gui"

-    text="{Binding path=name,UpdateSourceTrigger=PropertyChanged}">

-</Label>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/Name.java b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/Name.java
deleted file mode 100644
index 95c346d..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/Name.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.tests.xaml;

-

-import java.net.URL;

-

-import org.eclipse.jface.dialogs.MessageDialog;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author jliu

- */

-public class Name {

-

-	public static void main(String[] args) {

-

-		URL url = Name.class.getResource(Name.class.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX);

-		try {

-			XWT.open(url);

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	protected void findElement(Event event) {

-		if (XWT.findElementByName(event.widget, "target") != null) {

-			MessageDialog.openInformation(XWT.findShell(event.widget),

-					"Message", "Element is Found");

-		} else {

-			MessageDialog.openError(XWT.findShell(event.widget), "Message",

-					"No Found");

-		}

-	}

-}

diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/Name.xwt b/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/Name.xwt
deleted file mode 100644
index 7919cac..0000000
--- a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/Name.xwt
+++ /dev/null
@@ -1,9 +0,0 @@
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"

-    xmlns:x="http://www.eclipse.org/xwt"

-    x:Class="org.eclipse.xwt.tests.xaml.Name">

-	<Composite.layout>

-		<GridLayout numColumns="2"/>

-	</Composite.layout>

-	<Label x:Name="target" text="Target Button"/>

-	<Button text="Find Element" SelectionEvent="findElement"/>

-</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/test.xml b/org.eclipse.xwt.tests/test.xml
deleted file mode 100644
index 90ca34e..0000000
--- a/org.eclipse.xwt.tests/test.xml
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.xwt.tools.categorynode.edit/build.properties b/org.eclipse.xwt.tools.categorynode.edit/build.properties
deleted file mode 100755
index 6394ada..0000000
--- a/org.eclipse.xwt.tools.categorynode.edit/build.properties
+++ /dev/null
@@ -1,30 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# <copyright>
-# </copyright>
-#
-# $Id: build.properties,v 1.2 2010/06/18 00:27:02 yvyang Exp $
-
-bin.includes = .,\
-               icons/,\
-               META-INF/,\
-               plugin.xml,\
-               plugin.properties
-jars.compile.order = .
-source.. = src/
-output.. = bin/
-src.includes = META-INF/,\
-               build.properties,\
-               icons/,\
-               plugin.properties,\
-               plugin.xml,\
-               src/
diff --git a/org.eclipse.xwt.tools.categorynode.edit/plugin.properties b/org.eclipse.xwt.tools.categorynode.edit/plugin.properties
deleted file mode 100755
index 48daf65..0000000
--- a/org.eclipse.xwt.tools.categorynode.edit/plugin.properties
+++ /dev/null
@@ -1,42 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-#******************************************************************************
-# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Soyatec - initial API and implementation
-#******************************************************************************/
-
-pluginName = Outline Category Node Edit (Incubation)
-providerName = Eclipse.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_CategoryNode_type = Category Node
-_UI_Unknown_type = Object
-
-_UI_Unknown_datatype= Value
-
-_UI_CategoryNode_reference_feature = Reference
-_UI_CategoryNode_object_feature = Object
-_UI_Unknown_feature = Unspecified
-
diff --git a/org.eclipse.xwt.tools.categorynode.edit/plugin.xml b/org.eclipse.xwt.tools.categorynode.edit/plugin.xml
deleted file mode 100755
index 3ae2745..0000000
--- a/org.eclipse.xwt.tools.categorynode.edit/plugin.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-
-<!--
-    Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
-    All rights reserved. This program and the accompanying materials
-    are made available under the terms of the Eclipse Public License v1.0
-    which accompanies this distribution, and is available at
-    http://www.eclipse.org/legal/epl-v10.html
-   
-    Contributors:
-        Soyatec - initial API and implementation
--->
-
-<plugin>
-
-   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
-      <factory
-            uri="http://www.eclipse.org/e4/tools/workbench/node"
-            class="org.eclipse.xwt.tools.categorynode.node.provider.NodeItemProviderAdapterFactory"
-            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.xwt.tools.categorynode.edit/pom.xml b/org.eclipse.xwt.tools.categorynode.edit/pom.xml
deleted file mode 100755
index ff8372f..0000000
--- a/org.eclipse.xwt.tools.categorynode.edit/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt.tools.categorynode.edit</artifactId>
-	<version>0.10.0-SNAPSHOT</version>
-	<packaging>eclipse-plugin</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.categorynode.edit/src/org/eclipse/xwt/tools/categorynode/node/provider/CategoryNodeItemProvider.java b/org.eclipse.xwt.tools.categorynode.edit/src/org/eclipse/xwt/tools/categorynode/node/provider/CategoryNodeItemProvider.java
deleted file mode 100755
index 9359ab6..0000000
--- a/org.eclipse.xwt.tools.categorynode.edit/src/org/eclipse/xwt/tools/categorynode/node/provider/CategoryNodeItemProvider.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.categorynode.node.provider;
-
-import java.util.ArrayList;
-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.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.xwt.tools.categorynode.node.CategoryNode;
-
-/**
- * This is the item provider adapter for a {@link org.eclipse.xwt.tools.categorynode.node.CategoryNode} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class CategoryNodeItemProvider
-	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 CategoryNodeItemProvider(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 CategoryNode.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/CategoryNode"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated NOT
-	 */
-	@Override 
-	public String getText(Object object) {
-		String text = ((CategoryNode)object).getReference().getName();
-		StringBuilder stringBuilder =  new StringBuilder();
-		for (int i = 0; i < text.length(); i++) {
-			char ch = text.charAt(i);
-			if (Character.isUpperCase(ch)) {
-				stringBuilder.append(" " + Character.toLowerCase(ch));
-			}
-			else {
-				stringBuilder.append(ch);
-			}
-		}
-		return stringBuilder.toString().trim();
-	}
-	
-	@Override
-	public Collection<?> getChildren(Object object) {
-		CategoryNode categoryNode = (CategoryNode)object;
-		Object value = categoryNode.getObject().eGet(categoryNode.getReference());
-		if (value instanceof Collection<?>) {
-			return (Collection<?>) value;
-		}
-		ArrayList<Object> list = new ArrayList<Object>();
-		list.add(value);
-		return list;
-	}
-
-	/**
-	 * 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 NodeEditPlugin.INSTANCE;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.categorynode.edit/src/org/eclipse/xwt/tools/categorynode/node/provider/NodeEditPlugin.java b/org.eclipse.xwt.tools.categorynode.edit/src/org/eclipse/xwt/tools/categorynode/node/provider/NodeEditPlugin.java
deleted file mode 100755
index 53e2ad8..0000000
--- a/org.eclipse.xwt.tools.categorynode.edit/src/org/eclipse/xwt/tools/categorynode/node/provider/NodeEditPlugin.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.categorynode.node.provider;
-
-import org.eclipse.emf.common.EMFPlugin;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-/**
- * This is the central singleton for the Node edit plugin.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public final class NodeEditPlugin extends EMFPlugin {
-	/**
-	 * Keep track of the singleton.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final NodeEditPlugin INSTANCE = new NodeEditPlugin();
-
-	/**
-	 * 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 NodeEditPlugin() {
-		super
-		  (new ResourceLocator [] {
-		   });
-	}
-
-	/**
-	 * Returns the singleton instance of the Eclipse plugin.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the singleton instance.
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getPluginResourceLocator() {
-		return plugin;
-	}
-
-	/**
-	 * Returns the singleton instance of the Eclipse plugin.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the singleton instance.
-	 * @generated
-	 */
-	public static Implementation getPlugin() {
-		return plugin;
-	}
-
-	/**
-	 * The actual implementation of the Eclipse <b>Plugin</b>.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static class Implementation extends EclipsePlugin {
-		/**
-		 * Creates an instance.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public Implementation() {
-			super();
-
-			// Remember the static instance.
-			//
-			plugin = this;
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.categorynode.edit/src/org/eclipse/xwt/tools/categorynode/node/provider/NodeItemProviderAdapterFactory.java b/org.eclipse.xwt.tools.categorynode.edit/src/org/eclipse/xwt/tools/categorynode/node/provider/NodeItemProviderAdapterFactory.java
deleted file mode 100755
index 3ac061c..0000000
--- a/org.eclipse.xwt.tools.categorynode.edit/src/org/eclipse/xwt/tools/categorynode/node/provider/NodeItemProviderAdapterFactory.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.categorynode.node.provider;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.emf.edit.provider.ChangeNotifier;
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.provider.IChangeNotifier;
-import org.eclipse.emf.edit.provider.IDisposable;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.INotifyChangedListener;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.xwt.tools.categorynode.node.util.NodeAdapterFactory;
-
-/**
- * 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 NodeItemProviderAdapterFactory extends NodeAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
-	/**
-	 * This keeps track of the root adapter factory that delegates to this adapter factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ComposedAdapterFactory parentAdapterFactory;
-
-	/**
-	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IChangeNotifier changeNotifier = new ChangeNotifier();
-
-	/**
-	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection<Object> supportedTypes = new ArrayList<Object>();
-
-	/**
-	 * This constructs an instance.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NodeItemProviderAdapterFactory() {
-		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.xwt.tools.categorynode.node.CategoryNode} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected CategoryNodeItemProvider categoryNodeItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link org.eclipse.xwt.tools.categorynode.node.CategoryNode}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createCategoryNodeAdapter() {
-		if (categoryNodeItemProvider == null) {
-			categoryNodeItemProvider = new CategoryNodeItemProvider(this);
-		}
-
-		return categoryNodeItemProvider;
-	}
-
-	/**
-	 * This returns the root adapter factory that contains this factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ComposeableAdapterFactory getRootAdapterFactory() {
-		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
-	}
-
-	/**
-	 * This sets the composed adapter factory that contains this factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
-		this.parentAdapterFactory = parentAdapterFactory;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean isFactoryForType(Object type) {
-		return supportedTypes.contains(type) || super.isFactoryForType(type);
-	}
-
-	/**
-	 * This implementation substitutes the factory itself as the key for the adapter.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter adapt(Notifier notifier, Object type) {
-		return super.adapt(notifier, this);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object adapt(Object object, Object type) {
-		if (isFactoryForType(type)) {
-			Object adapter = super.adapt(object, type);
-			if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) {
-				return adapter;
-			}
-		}
-
-		return null;
-	}
-
-	/**
-	 * This adds a listener.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void addListener(INotifyChangedListener notifyChangedListener) {
-		changeNotifier.addListener(notifyChangedListener);
-	}
-
-	/**
-	 * This removes a listener.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void removeListener(INotifyChangedListener notifyChangedListener) {
-		changeNotifier.removeListener(notifyChangedListener);
-	}
-
-	/**
-	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void fireNotifyChanged(Notification notification) {
-		changeNotifier.fireNotifyChanged(notification);
-
-		if (parentAdapterFactory != null) {
-			parentAdapterFactory.fireNotifyChanged(notification);
-		}
-	}
-
-	/**
-	 * This disposes all of the item providers created by this factory. 
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void dispose() {
-		if (categoryNodeItemProvider != null) categoryNodeItemProvider.dispose();
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.categorynode/build.properties b/org.eclipse.xwt.tools.categorynode/build.properties
deleted file mode 100755
index 9703a23..0000000
--- a/org.eclipse.xwt.tools.categorynode/build.properties
+++ /dev/null
@@ -1,30 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# <copyright>
-# </copyright>
-#
-# $Id: build.properties,v 1.2 2010/06/18 00:27:04 yvyang Exp $
-
-bin.includes = .,\
-               model/,\
-               META-INF/,\
-               plugin.xml,\
-               plugin.properties
-jars.compile.order = .
-source.. = src/
-output.. = bin/
-src.includes = META-INF/,\
-               build.properties,\
-               model/,\
-               plugin.properties,\
-               plugin.xml,\
-               src/
diff --git a/org.eclipse.xwt.tools.categorynode/plugin.properties b/org.eclipse.xwt.tools.categorynode/plugin.properties
deleted file mode 100755
index 341b49f..0000000
--- a/org.eclipse.xwt.tools.categorynode/plugin.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-#******************************************************************************
-# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Soyatec - initial API and implementation
-#******************************************************************************/
-
-pluginName = Outline Category Node (Incubation)
-providerName = Eclipse.org
diff --git a/org.eclipse.xwt.tools.categorynode/plugin.xml b/org.eclipse.xwt.tools.categorynode/plugin.xml
deleted file mode 100755
index fe027c6..0000000
--- a/org.eclipse.xwt.tools.categorynode/plugin.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-
-<!--
-    Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
-    All rights reserved. This program and the accompanying materials
-    are made available under the terms of the Eclipse Public License v1.0
-    which accompanies this distribution, and is available at
-    http://www.eclipse.org/legal/epl-v10.html
-   
-    Contributors:
-        Soyatec - initial API and implementation
--->
-
-<plugin>
-
-   <extension point="org.eclipse.emf.ecore.generated_package">
-      <package
-            uri="http://www.eclipse.org/e4/tools/workbench/node"
-            class="org.eclipse.xwt.tools.categorynode.node.NodePackage"
-            genModel="model/Node.genmodel"/>
-   </extension>
-
-</plugin>
diff --git a/org.eclipse.xwt.tools.categorynode/pom.xml b/org.eclipse.xwt.tools.categorynode/pom.xml
deleted file mode 100755
index 36747cb..0000000
--- a/org.eclipse.xwt.tools.categorynode/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt.tools.categorynode</artifactId>
-	<version>0.10.0-SNAPSHOT</version>
-	<packaging>eclipse-plugin</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/CategoryNode.java b/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/CategoryNode.java
deleted file mode 100755
index d87d112..0000000
--- a/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/CategoryNode.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.categorynode.node;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EReference;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Category Node</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.xwt.tools.categorynode.node.CategoryNode#getReference <em>Reference</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.categorynode.node.CategoryNode#getObject <em>Object</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.xwt.tools.categorynode.node.NodePackage#getCategoryNode()
- * @model
- * @generated
- */
-public interface CategoryNode extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Reference</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Reference</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Reference</em>' reference.
-	 * @see #setReference(EReference)
-	 * @see org.eclipse.xwt.tools.categorynode.node.NodePackage#getCategoryNode_Reference()
-	 * @model
-	 * @generated
-	 */
-	EReference getReference();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.tools.categorynode.node.CategoryNode#getReference <em>Reference</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Reference</em>' reference.
-	 * @see #getReference()
-	 * @generated
-	 */
-	void setReference(EReference value);
-
-	/**
-	 * Returns the value of the '<em><b>Object</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Object</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Object</em>' reference.
-	 * @see #setObject(EObject)
-	 * @see org.eclipse.xwt.tools.categorynode.node.NodePackage#getCategoryNode_Object()
-	 * @model
-	 * @generated
-	 */
-	EObject getObject();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.tools.categorynode.node.CategoryNode#getObject <em>Object</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Object</em>' reference.
-	 * @see #getObject()
-	 * @generated
-	 */
-	void setObject(EObject value);
-
-	Object getReferenceValue();
-
-} // CategoryNode
diff --git a/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/NodeFactory.java b/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/NodeFactory.java
deleted file mode 100755
index 9918be5..0000000
--- a/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/NodeFactory.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.categorynode.node;
-
-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.xwt.tools.categorynode.node.NodePackage
- * @generated
- */
-public interface NodeFactory extends EFactory {
-	/**
-	 * The singleton instance of the factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	NodeFactory eINSTANCE = org.eclipse.xwt.tools.categorynode.node.impl.NodeFactoryImpl.init();
-
-	/**
-	 * Returns a new object of class '<em>Category Node</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Category Node</em>'.
-	 * @generated
-	 */
-	CategoryNode createCategoryNode();
-
-	/**
-	 * Returns the package supported by this factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the package supported by this factory.
-	 * @generated
-	 */
-	NodePackage getNodePackage();
-
-} //NodeFactory
diff --git a/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/NodePackage.java b/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/NodePackage.java
deleted file mode 100755
index 5aa07d2..0000000
--- a/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/NodePackage.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.categorynode.node;
-
-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.xwt.tools.categorynode.node.NodeFactory
- * @model kind="package"
- * @generated
- */
-public interface NodePackage extends EPackage {
-	/**
-	 * The package name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNAME = "node";
-
-	/**
-	 * The package namespace URI.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNS_URI = "http://www.eclipse.org/e4/tools/workbench/node";
-
-	/**
-	 * The package namespace name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNS_PREFIX = "node";
-
-	/**
-	 * The singleton instance of the package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	NodePackage eINSTANCE = org.eclipse.xwt.tools.categorynode.node.impl.NodePackageImpl.init();
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.xwt.tools.categorynode.node.impl.CategoryNodeImpl <em>Category Node</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.xwt.tools.categorynode.node.impl.CategoryNodeImpl
-	 * @see org.eclipse.xwt.tools.categorynode.node.impl.NodePackageImpl#getCategoryNode()
-	 * @generated
-	 */
-	int CATEGORY_NODE = 0;
-
-	/**
-	 * The feature id for the '<em><b>Reference</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CATEGORY_NODE__REFERENCE = 0;
-
-	/**
-	 * The feature id for the '<em><b>Object</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CATEGORY_NODE__OBJECT = 1;
-
-	/**
-	 * The number of structural features of the '<em>Category Node</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CATEGORY_NODE_FEATURE_COUNT = 2;
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.xwt.tools.categorynode.node.CategoryNode <em>Category Node</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Category Node</em>'.
-	 * @see org.eclipse.xwt.tools.categorynode.node.CategoryNode
-	 * @generated
-	 */
-	EClass getCategoryNode();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.xwt.tools.categorynode.node.CategoryNode#getReference <em>Reference</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Reference</em>'.
-	 * @see org.eclipse.xwt.tools.categorynode.node.CategoryNode#getReference()
-	 * @see #getCategoryNode()
-	 * @generated
-	 */
-	EReference getCategoryNode_Reference();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.xwt.tools.categorynode.node.CategoryNode#getObject <em>Object</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Object</em>'.
-	 * @see org.eclipse.xwt.tools.categorynode.node.CategoryNode#getObject()
-	 * @see #getCategoryNode()
-	 * @generated
-	 */
-	EReference getCategoryNode_Object();
-
-	/**
-	 * 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
-	 */
-	NodeFactory getNodeFactory();
-
-	/**
-	 * <!-- 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.xwt.tools.categorynode.node.impl.CategoryNodeImpl <em>Category Node</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.xwt.tools.categorynode.node.impl.CategoryNodeImpl
-		 * @see org.eclipse.xwt.tools.categorynode.node.impl.NodePackageImpl#getCategoryNode()
-		 * @generated
-		 */
-		EClass CATEGORY_NODE = eINSTANCE.getCategoryNode();
-
-		/**
-		 * The meta object literal for the '<em><b>Reference</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference CATEGORY_NODE__REFERENCE = eINSTANCE.getCategoryNode_Reference();
-
-		/**
-		 * The meta object literal for the '<em><b>Object</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference CATEGORY_NODE__OBJECT = eINSTANCE.getCategoryNode_Object();
-
-	}
-
-} //NodePackage
diff --git a/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/impl/CategoryNodeImpl.java b/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/impl/CategoryNodeImpl.java
deleted file mode 100755
index 3aaf91b..0000000
--- a/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/impl/CategoryNodeImpl.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.categorynode.node.impl;
-
-import java.util.ArrayList;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.eclipse.xwt.tools.categorynode.node.CategoryNode;
-import org.eclipse.xwt.tools.categorynode.node.NodePackage;
-
-/**
- * <!-- begin-user-doc --> An implementation of the model object '
- * <em><b>Category Node</b></em>'. <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.eclipse.xwt.tools.categorynode.node.impl.CategoryNodeImpl#getReference <em>Reference</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.categorynode.node.impl.CategoryNodeImpl#getObject <em>Object</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class CategoryNodeImpl extends EObjectImpl implements CategoryNode {
-	/**
-	 * The cached value of the '{@link #getReference() <em>Reference</em>}' reference.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getReference()
-	 * @generated
-	 * @ordered
-	 */
-	protected EReference reference;
-
-	/**
-	 * The cached value of the '{@link #getObject() <em>Object</em>}' reference.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getObject()
-	 * @generated
-	 * @ordered
-	 */
-	protected EObject object;
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected CategoryNodeImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return NodePackage.Literals.CATEGORY_NODE;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getReference() {
-		if (reference != null && reference.eIsProxy()) {
-			InternalEObject oldReference = (InternalEObject)reference;
-			reference = (EReference)eResolveProxy(oldReference);
-			if (reference != oldReference) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, NodePackage.CATEGORY_NODE__REFERENCE, oldReference, reference));
-			}
-		}
-		return reference;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference basicGetReference() {
-		return reference;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setReference(EReference newReference) {
-		EReference oldReference = reference;
-		reference = newReference;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, NodePackage.CATEGORY_NODE__REFERENCE, oldReference, reference));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EObject getObject() {
-		if (object != null && object.eIsProxy()) {
-			InternalEObject oldObject = (InternalEObject)object;
-			object = eResolveProxy(oldObject);
-			if (object != oldObject) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, NodePackage.CATEGORY_NODE__OBJECT, oldObject, object));
-			}
-		}
-		return object;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EObject basicGetObject() {
-		return object;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setObject(EObject newObject) {
-		EObject oldObject = object;
-		object = newObject;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, NodePackage.CATEGORY_NODE__OBJECT, oldObject, object));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case NodePackage.CATEGORY_NODE__REFERENCE:
-				if (resolve) return getReference();
-				return basicGetReference();
-			case NodePackage.CATEGORY_NODE__OBJECT:
-				if (resolve) return getObject();
-				return basicGetObject();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case NodePackage.CATEGORY_NODE__REFERENCE:
-				setReference((EReference)newValue);
-				return;
-			case NodePackage.CATEGORY_NODE__OBJECT:
-				setObject((EObject)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case NodePackage.CATEGORY_NODE__REFERENCE:
-				setReference((EReference)null);
-				return;
-			case NodePackage.CATEGORY_NODE__OBJECT:
-				setObject((EObject)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case NodePackage.CATEGORY_NODE__REFERENCE:
-				return reference != null;
-			case NodePackage.CATEGORY_NODE__OBJECT:
-				return object != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	public Object getReferenceValue() {
-		if (object == null || reference == null) {
-			return null;
-		}
-		if (reference.isMany()) {
-			if (!object.eIsSet(reference)) {
-				object.eSet(reference, new ArrayList());
-			}
-			return object.eGet(reference);
-		} else if (object.eIsSet(reference)) {
-			return object.eGet(reference);
-		}
-		return null;
-	}
-
-} // CategoryNodeImpl
diff --git a/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/impl/NodeFactoryImpl.java b/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/impl/NodeFactoryImpl.java
deleted file mode 100755
index ca8a5f9..0000000
--- a/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/impl/NodeFactoryImpl.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.categorynode.node.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.xwt.tools.categorynode.node.*;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Factory</b>.
- * <!-- end-user-doc -->
- * @generated
- */
-public class NodeFactoryImpl extends EFactoryImpl implements NodeFactory {
-	/**
-	 * Creates the default factory implementation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static NodeFactory init() {
-		try {
-			NodeFactory theNodeFactory = (NodeFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/e4/tools/workbench/node"); 
-			if (theNodeFactory != null) {
-				return theNodeFactory;
-			}
-		}
-		catch (Exception exception) {
-			EcorePlugin.INSTANCE.log(exception);
-		}
-		return new NodeFactoryImpl();
-	}
-
-	/**
-	 * Creates an instance of the factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NodeFactoryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EObject create(EClass eClass) {
-		switch (eClass.getClassifierID()) {
-			case NodePackage.CATEGORY_NODE: return createCategoryNode();
-			default:
-				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public CategoryNode createCategoryNode() {
-		CategoryNodeImpl categoryNode = new CategoryNodeImpl();
-		return categoryNode;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NodePackage getNodePackage() {
-		return (NodePackage)getEPackage();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @deprecated
-	 * @generated
-	 */
-	@Deprecated
-	public static NodePackage getPackage() {
-		return NodePackage.eINSTANCE;
-	}
-
-} //NodeFactoryImpl
diff --git a/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/impl/NodePackageImpl.java b/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/impl/NodePackageImpl.java
deleted file mode 100755
index cc469b2..0000000
--- a/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/impl/NodePackageImpl.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.categorynode.node.impl;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.impl.EPackageImpl;
-import org.eclipse.xwt.tools.categorynode.node.CategoryNode;
-import org.eclipse.xwt.tools.categorynode.node.NodeFactory;
-import org.eclipse.xwt.tools.categorynode.node.NodePackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Package</b>.
- * <!-- end-user-doc -->
- * @generated
- */
-public class NodePackageImpl extends EPackageImpl implements NodePackage {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass categoryNodeEClass = 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.xwt.tools.categorynode.node.NodePackage#eNS_URI
-	 * @see #init()
-	 * @generated
-	 */
-	private NodePackageImpl() {
-		super(eNS_URI, NodeFactory.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 NodePackage#eINSTANCE} when that field is accessed.
-	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #eNS_URI
-	 * @see #createPackageContents()
-	 * @see #initializePackageContents()
-	 * @generated
-	 */
-	public static NodePackage init() {
-		if (isInited) return (NodePackage)EPackage.Registry.INSTANCE.getEPackage(NodePackage.eNS_URI);
-
-		// Obtain or create and register package
-		NodePackageImpl theNodePackage = (NodePackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof NodePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new NodePackageImpl());
-
-		isInited = true;
-
-		// Create package meta-data objects
-		theNodePackage.createPackageContents();
-
-		// Initialize created meta-data
-		theNodePackage.initializePackageContents();
-
-		// Mark meta-data to indicate it can't be changed
-		theNodePackage.freeze();
-
-  
-		// Update the registry and return the package
-		EPackage.Registry.INSTANCE.put(NodePackage.eNS_URI, theNodePackage);
-		return theNodePackage;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getCategoryNode() {
-		return categoryNodeEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getCategoryNode_Reference() {
-		return (EReference)categoryNodeEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getCategoryNode_Object() {
-		return (EReference)categoryNodeEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NodeFactory getNodeFactory() {
-		return (NodeFactory)getEFactoryInstance();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private boolean isCreated = false;
-
-	/**
-	 * Creates the meta-model objects for the package.  This method is
-	 * guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void createPackageContents() {
-		if (isCreated) return;
-		isCreated = true;
-
-		// Create classes and their features
-		categoryNodeEClass = createEClass(CATEGORY_NODE);
-		createEReference(categoryNodeEClass, CATEGORY_NODE__REFERENCE);
-		createEReference(categoryNodeEClass, CATEGORY_NODE__OBJECT);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private boolean isInitialized = false;
-
-	/**
-	 * Complete the initialization of the package and its meta-model.  This
-	 * method is guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void initializePackageContents() {
-		if (isInitialized) return;
-		isInitialized = true;
-
-		// Initialize package
-		setName(eNAME);
-		setNsPrefix(eNS_PREFIX);
-		setNsURI(eNS_URI);
-
-		// Create type parameters
-
-		// Set bounds for type parameters
-
-		// Add supertypes to classes
-
-		// Initialize classes and features; add operations and parameters
-		initEClass(categoryNodeEClass, CategoryNode.class, "CategoryNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getCategoryNode_Reference(), ecorePackage.getEReference(), null, "reference", null, 0, 1, CategoryNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getCategoryNode_Object(), ecorePackage.getEObject(), null, "object", null, 0, 1, CategoryNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		// Create resource
-		createResource(eNS_URI);
-	}
-
-} //NodePackageImpl
diff --git a/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/util/NodeAdapterFactory.java b/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/util/NodeAdapterFactory.java
deleted file mode 100755
index a581b70..0000000
--- a/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/util/NodeAdapterFactory.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.categorynode.node.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.xwt.tools.categorynode.node.*;
-
-/**
- * <!-- 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.xwt.tools.categorynode.node.NodePackage
- * @generated
- */
-public class NodeAdapterFactory extends AdapterFactoryImpl {
-	/**
-	 * The cached model package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected static NodePackage modelPackage;
-
-	/**
-	 * Creates an instance of the adapter factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NodeAdapterFactory() {
-		if (modelPackage == null) {
-			modelPackage = NodePackage.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 NodeSwitch<Adapter> modelSwitch =
-		new NodeSwitch<Adapter>() {
-			@Override
-			public Adapter caseCategoryNode(CategoryNode object) {
-				return createCategoryNodeAdapter();
-			}
-			@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.xwt.tools.categorynode.node.CategoryNode <em>Category Node</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.xwt.tools.categorynode.node.CategoryNode
-	 * @generated
-	 */
-	public Adapter createCategoryNodeAdapter() {
-		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;
-	}
-
-} //NodeAdapterFactory
diff --git a/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/util/NodeSwitch.java b/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/util/NodeSwitch.java
deleted file mode 100755
index 4f1a7a8..0000000
--- a/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/util/NodeSwitch.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.categorynode.node.util;
-
-import java.util.List;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.xwt.tools.categorynode.node.*;
-
-/**
- * <!-- 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.xwt.tools.categorynode.node.NodePackage
- * @generated
- */
-public class NodeSwitch<T> {
-	/**
-	 * The cached model package
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected static NodePackage modelPackage;
-
-	/**
-	 * Creates an instance of the switch.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NodeSwitch() {
-		if (modelPackage == null) {
-			modelPackage = NodePackage.eINSTANCE;
-		}
-	}
-
-	/**
-	 * 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
-	 */
-	public T doSwitch(EObject theEObject) {
-		return doSwitch(theEObject.eClass(), theEObject);
-	}
-
-	/**
-	 * 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
-	 */
-	protected T doSwitch(EClass theEClass, EObject theEObject) {
-		if (theEClass.eContainer() == modelPackage) {
-			return doSwitch(theEClass.getClassifierID(), theEObject);
-		}
-		else {
-			List<EClass> eSuperTypes = theEClass.getESuperTypes();
-			return
-				eSuperTypes.isEmpty() ?
-					defaultCase(theEObject) :
-					doSwitch(eSuperTypes.get(0), theEObject);
-		}
-	}
-
-	/**
-	 * 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
-	 */
-	protected T doSwitch(int classifierID, EObject theEObject) {
-		switch (classifierID) {
-			case NodePackage.CATEGORY_NODE: {
-				CategoryNode categoryNode = (CategoryNode)theEObject;
-				T result = caseCategoryNode(categoryNode);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			default: return defaultCase(theEObject);
-		}
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Category Node</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>Category Node</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseCategoryNode(CategoryNode 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
-	 */
-	public T defaultCase(EObject object) {
-		return null;
-	}
-
-} //NodeSwitch
diff --git a/org.eclipse.xwt.tools.feature/about.html b/org.eclipse.xwt.tools.feature/about.html
deleted file mode 100644
index c85abd2..0000000
--- a/org.eclipse.xwt.tools.feature/about.html
+++ /dev/null
@@ -1,105 +0,0 @@
-<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.xwt.tools.feature/build.properties b/org.eclipse.xwt.tools.feature/build.properties
deleted file mode 100755
index 6c6d2ba..0000000
--- a/org.eclipse.xwt.tools.feature/build.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,\
-               feature.properties,\
-               about.html,\
-               epl-v10.html,\
-               license.html
-src.includes = .project,\
-               about.html,\
-               build.properties,\
-               feature.properties,\
-               feature.xml,\
-               epl-v10.html,\
-               license.html
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.feature/epl-v10.html b/org.eclipse.xwt.tools.feature/epl-v10.html
deleted file mode 100755
index ed4b196..0000000
--- a/org.eclipse.xwt.tools.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>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.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>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. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>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. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>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.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>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.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>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.</span> </p>
-
-<p><span style='font-size:10.0pt'>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. </span></p>
-
-<p><span style='font-size:10.0pt'>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. </span></p>
-
-<p><span style='font-size:10.0pt'>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.</span> </p>
-
-<p><span style='font-size:10.0pt'>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.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.feature/feature.properties b/org.eclipse.xwt.tools.feature/feature.properties
deleted file mode 100755
index 723f48f..0000000
--- a/org.eclipse.xwt.tools.feature/feature.properties
+++ /dev/null
@@ -1,148 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2009 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - 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=Eclipse e4 XWT Tools (Incubation)
-
-# "providerName" property - name of the company that provides the feature
-providerName=Soyatec.com
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Project Updates
-
-# "secondarySiteName" property - label for the update site
-secondaryUpdateSiteName=Ganymede Discovery Site
-
-
-# "description" property - description of the feature
-description=Eclipse e4 XWT Tools
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2009 Soyatec Corporation and others.\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\
-    Soyatec Corporation - initial API and implementation\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\
-March 17, 2005\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 Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-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.org CVS\n\
-repository ("Repository") in CVS 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? 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\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-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\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-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". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-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\
-    - 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\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\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\
-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,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/org.eclipse.xwt.tools.feature/feature.xml b/org.eclipse.xwt.tools.feature/feature.xml
deleted file mode 100755
index 32132d4..0000000
--- a/org.eclipse.xwt.tools.feature/feature.xml
+++ /dev/null
@@ -1,110 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.xwt.tools.feature"
-      label="%featureName"
-      version="0.10.0.qualifier"
-      provider-name="%providerName">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <requires>
-      <import feature="org.eclipse.xwt.feature" version="0.9.0" match="greaterOrEqual"/>
-      <import feature="org.eclipse.wst.xml_ui.feature" version="3.0.2.v200809120241-7F2ENKCwum6y6I7yPZPz0PesY7SI" match="compatible"/>
-      <import feature="org.eclipse.xsd.edit" version="2.4.0.v200808251517" match="compatible"/>
-   </requires>
-
-   <plugin
-         id="org.eclipse.xwt.tools.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.xwt.tools.ui.editor"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <!--plugin
-         id="org.eclipse.xwt.doc.user"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/-->
-
-   <plugin
-         id="org.eclipse.xwt.tools.ui.designer"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.xwt.tools.ui.designer.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.xwt.tools.ui.imagecapture"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.xwt.tools.ui.palette"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.xwt.tools.ui.xaml"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.xwt.tools.categorynode"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.xwt.tools.categorynode.edit"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.xwt.tools.ui.workbench"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.xwt.snippets"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/org.eclipse.xwt.tools.feature/license.html b/org.eclipse.xwt.tools.feature/license.html
deleted file mode 100755
index c6af966..0000000
--- a/org.eclipse.xwt.tools.feature/license.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-   
-<ul>
-	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>   
- 
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-	<li>Plug-in and Fragment directories</li>
-	<li>Inside Plug-ins and Fragments packaged as JARs</li>
-	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-	<li>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>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</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>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>
-   
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
-</body>
-</html>
diff --git a/org.eclipse.xwt.tools.feature/notice.html b/org.eclipse.xwt.tools.feature/notice.html
deleted file mode 100644
index c3d34c3..0000000
--- a/org.eclipse.xwt.tools.feature/notice.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 9, 2014</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/org.eclipse.xwt.tools.feature/pom.xml b/org.eclipse.xwt.tools.feature/pom.xml
deleted file mode 100755
index 8962e98..0000000
--- a/org.eclipse.xwt.tools.feature/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt.tools.feature</artifactId>
-	<version>0.10.0-SNAPSHOT</version>
-	<packaging>eclipse-feature</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.feature/sourceTemplateFeature/feature.properties b/org.eclipse.xwt.tools.feature/sourceTemplateFeature/feature.properties
deleted file mode 100755
index 8237c53..0000000
--- a/org.eclipse.xwt.tools.feature/sourceTemplateFeature/feature.properties
+++ /dev/null
@@ -1,144 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - 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=Eclipse e4 XWT Tools Source (Incubation)
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Project Updates
-
-# "description" property - description of the feature
-description=Source code zips for Eclipse E4 initiative.
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2000, 2007 IBM Corporation and others.\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\
-    IBM Corporation - initial API and implementation\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\
-March 17, 2005\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 Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-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.org CVS\n\
-repository ("Repository") in CVS 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? 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\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-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\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-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". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-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\
-    - 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\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\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\
-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,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/org.eclipse.xwt.tools.feature/sourceTemplateFeature/license.html b/org.eclipse.xwt.tools.feature/sourceTemplateFeature/license.html
deleted file mode 100755
index c6af966..0000000
--- a/org.eclipse.xwt.tools.feature/sourceTemplateFeature/license.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-   
-<ul>
-	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>   
- 
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-	<li>Plug-in and Fragment directories</li>
-	<li>Inside Plug-ins and Fragments packaged as JARs</li>
-	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-	<li>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>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</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>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>
-   
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
-</body>
-</html>
diff --git a/org.eclipse.xwt.tools.feature/sourceTemplatePlugin/build.properties b/org.eclipse.xwt.tools.feature/sourceTemplatePlugin/build.properties
deleted file mode 100755
index cdb3ab3..0000000
--- a/org.eclipse.xwt.tools.feature/sourceTemplatePlugin/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = plugin.xml, src/**, META-INF/
-sourcePlugin = true
diff --git a/org.eclipse.xwt.tools.ui.designer.core/OSGI-INF/l10n/bundle.properties b/org.eclipse.xwt.tools.ui.designer.core/OSGI-INF/l10n/bundle.properties
deleted file mode 100755
index 88e8021..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/OSGI-INF/l10n/bundle.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2009 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-#Properties file for org.eclipse.xwt.tools.ui.designer.core
-content-type.name = xaml
-extension-point.name = Problem Checkers
-Bundle-Vendor = Eclipse.org
-Bundle-Name = XWT Designer Core (Incubation)
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.designer.core/build.properties b/org.eclipse.xwt.tools.ui.designer.core/build.properties
deleted file mode 100755
index 32c979a..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/build.properties
+++ /dev/null
@@ -1,25 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     Soyatec - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               schema/,\
-               OSGI-INF/l10n/bundle.properties
-src.includes = src/,\
-               schema/,\
-               plugin.xml,\
-               build.properties,\
-               META-INF/,\
-               .settings/,\
-               .project,\
-               .classpath
diff --git a/org.eclipse.xwt.tools.ui.designer.core/plugin.xml b/org.eclipse.xwt.tools.ui.designer.core/plugin.xml
deleted file mode 100755
index bea6369..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/plugin.xml
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer.core/pom.xml b/org.eclipse.xwt.tools.ui.designer.core/pom.xml
deleted file mode 100755
index 54bec48..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt.tools.ui.designer.core</artifactId>
-	<version>0.10.0-SNAPSHOT</version>
-	<packaging>eclipse-plugin</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/DesignerPlugin.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/DesignerPlugin.java
deleted file mode 100755
index f801ad3..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/DesignerPlugin.java
+++ /dev/null
@@ -1,279 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class DesignerPlugin extends AbstractUIPlugin {
-
-	// The plug-in ID
-	public static final String PLUGIN_ID = "org.soyatec.tools.designer";
-	public static final IPath VE_CACHE_ROOT_NAME = new Path(".cache");
-	// The shared instance
-	private static DesignerPlugin plugin;
-
-	/**
-	 * The constructor
-	 */
-	public DesignerPlugin() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);
-	}
-
-	/**
-	 * Returns the shared instance
-	 * 
-	 * @return the shared instance
-	 */
-	public static DesignerPlugin getDefault() {
-		return plugin;
-	}
-
-	public static void log(IStatus status) {
-		log(status, 0, true);
-	}
-
-	public static void log(IStatus status, boolean appendLogger) {
-		log(status, 0, appendLogger);
-	}
-
-	public static void log(IStatus status, int nesting) {
-		log(status, nesting, true);
-	}
-
-	public static void log(IStatus status, int nesting, boolean appendLogger) {
-		getDefault().getLog().log(status);
-	}
-
-	/**
-	 * Log Message Info
-	 */
-
-	public static void logInfo(String message) {
-		logInfo(message, 0, true);
-	}
-
-	public static void logInfo(String message, boolean appendLogger) {
-		logInfo(message, 0, appendLogger);
-	}
-
-	public static void logInfo(String message, int nesting) {
-		logInfo(message, nesting, true);
-	}
-
-	public static void logInfo(String message, int nesting, boolean appendLogger) {
-		log(newStatus(IStatus.INFO, message, null), nesting, appendLogger);
-	}
-
-	/**
-	 * Log Message and Throwable Info
-	 */
-
-	public static void logInfo(String message, Throwable t) {
-		logInfo(message, t, 0, true);
-	}
-
-	public static void logInfo(String message, Throwable t, boolean appendLogger) {
-		logInfo(message, t, 0, appendLogger);
-	}
-
-	public static void logInfo(String message, Throwable t, int nesting) {
-		logInfo(message, t, nesting, true);
-	}
-
-	public static void logInfo(String message, Throwable t, int nesting,
-			boolean appendLogger) {
-		log(newStatus(IStatus.INFO, message, t), nesting, appendLogger);
-	}
-
-	/**
-	 * Log Throwable Info
-	 */
-
-	public static void logInfo(Throwable t) {
-		logInfo(t, 0, true);
-	}
-
-	public static void logInfo(Throwable t, boolean appendLogger) {
-		logInfo(t, 0, appendLogger);
-	}
-
-	public static void logInfo(Throwable t, int nesting) {
-		logInfo(t, nesting, true);
-	}
-
-	public static void logInfo(Throwable t, int nesting, boolean appendLogger) {
-		log(newStatus(IStatus.INFO, t.getMessage(), t), nesting, appendLogger);
-	}
-
-	/**
-	 * Log Message Error
-	 */
-
-	public static void logError(String message) {
-		logError(message, 0, true);
-	}
-
-	public static void logError(String message, boolean appendLogger) {
-		logError(message, 0, appendLogger);
-	}
-
-	public static void logError(String message, int nesting) {
-		logError(message, nesting, true);
-	}
-
-	public static void logError(String message, int nesting,
-			boolean appendLogger) {
-		log(newStatus(IStatus.ERROR, message, null), nesting, appendLogger);
-	}
-
-	/**
-	 * Log Message and Throwable Error
-	 */
-
-	public static void logError(String message, Throwable t) {
-		logError(message, t, 0, true);
-	}
-
-	public static void logError(String message, Throwable t,
-			boolean appendLogger) {
-		logError(message, t, 0, appendLogger);
-	}
-
-	public static void logError(String message, Throwable t, int nesting) {
-		logError(message, t, nesting, true);
-	}
-
-	public static void logError(String message, Throwable t, int nesting,
-			boolean appendLogger) {
-		log(newStatus(IStatus.ERROR, message, t), nesting, appendLogger);
-	}
-
-	/**
-	 * Log Throwable Error
-	 */
-
-	public static void logError(Throwable t) {
-		logError(t, 0, true);
-	}
-
-	public static void logError(Throwable t, boolean appendLogger) {
-		logError(t, 0, appendLogger);
-	}
-
-	public static void logError(Throwable t, int nesting) {
-		logError(t, nesting, true);
-	}
-
-	public static void logError(Throwable t, int nesting, boolean appendLogger) {
-		log(newStatus(IStatus.ERROR, t.getMessage(), t), nesting, appendLogger);
-	}
-
-	/**
-	 * Log Message Warning
-	 */
-
-	public static void logWarning(String message) {
-		logWarning(message, 0, true);
-	}
-
-	public static void logWarning(String message, boolean appendLogger) {
-		logWarning(message, 0, appendLogger);
-	}
-
-	public static void logWarning(String message, int nesting) {
-		logWarning(message, nesting, true);
-	}
-
-	public static void logWarning(String message, int nesting,
-			boolean appendLogger) {
-		log(newStatus(IStatus.WARNING, message, null), nesting, appendLogger);
-	}
-
-	/**
-	 * Log Message and Throwable Warning
-	 */
-
-	public static void logWarning(String message, Throwable t) {
-		logWarning(message, t, 0, true);
-	}
-
-	public static void logWarning(String message, Throwable t,
-			boolean appendLogger) {
-		logWarning(message, t, 0, appendLogger);
-	}
-
-	public static void logWarning(String message, Throwable t, int nesting) {
-		logWarning(message, t, nesting, true);
-	}
-
-	public static void logWarning(String message, Throwable t, int nesting,
-			boolean appendLogger) {
-		log(newStatus(IStatus.WARNING, message, t), nesting, appendLogger);
-	}
-
-	/**
-	 * Log Throwable Warning
-	 */
-
-	public static void logWarning(Throwable t) {
-		logWarning(t, 0, true);
-	}
-
-	public static void logWarning(Throwable t, boolean appendLogger) {
-		logWarning(t, 0, appendLogger);
-	}
-
-	public static void logWarning(Throwable t, int nesting) {
-		logWarning(t, nesting, true);
-	}
-
-	public static void logWarning(Throwable t, int nesting, boolean appendLogger) {
-		log(newStatus(IStatus.WARNING, t.getMessage(), t), nesting,
-				appendLogger);
-	}
-
-	/**
-	 * Create an IStatus
-	 * 
-	 * @return a new IStatus
-	 */
-	public static IStatus newStatus(int severity, String message,
-			Throwable exception) {
-		return new Status(severity, PLUGIN_ID, 0, message, exception);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/ceditor/ConfigureDesigner.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/ceditor/ConfigureDesigner.java
deleted file mode 100755
index 5237d24..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/ceditor/ConfigureDesigner.java
+++ /dev/null
@@ -1,432 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.xwt.tools.ui.designer.core.ceditor;
-
-import java.util.EventObject;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.xwt.tools.ui.palette.page.ContributePalettePage;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartViewer;
-import org.eclipse.gef.RootEditPart;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.gef.ui.parts.GraphicalEditor;
-import org.eclipse.gef.ui.views.palette.PalettePage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ViewForm;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.progress.UIJob;
-import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.xwt.tools.ui.designer.core.component.CustomSashForm;
-import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
-import org.eclipse.xwt.tools.ui.designer.core.editor.IVisualRenderer;
-import org.eclipse.xwt.tools.ui.designer.core.editor.LoadingFigureController;
-import org.eclipse.xwt.tools.ui.designer.core.editor.Refresher;
-import org.eclipse.xwt.tools.ui.designer.core.editor.IVisualRenderer.Result;
-import org.eclipse.xwt.tools.ui.designer.core.model.IModelBuilder;
-import org.eclipse.xwt.tools.ui.designer.core.model.ModelChangeListener;
-import org.eclipse.xwt.tools.ui.designer.core.parts.RefreshContext;
-import org.eclipse.xwt.tools.ui.designer.core.problems.ProblemHandler;
-import org.eclipse.xwt.tools.ui.designer.core.util.DisplayUtil;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public abstract class ConfigureDesigner extends GraphicalEditor {
-
-	private PalettePage palettePage;
-	private IPropertySheetPage propertySheetPage;
-	private IContentOutlinePage contentOutlinePage;
-	private ProblemHandler problemHandler;
-
-	private MultiSourceEditor sourceEditor;
-
-	private LoadingFigureController loadingFigure;
-	private Display display;
-	private Refresher refresher;
-	private Object diagram;
-
-	private IModelBuilder modelBuilder;
-	private ModelChangeListener modelBuilderListener;
-	private IVisualRenderer visualsRender;
-	private boolean isCreatingVisuals = false;
-	private boolean isModelChanged;
-
-	public void init(IEditorSite site, IEditorInput input)
-			throws PartInitException {
-		setEditDomain(createEditDomain());
-		super.init(site, input);
-		display = site.getShell().getDisplay();
-		loadingFigure = new LoadingFigureController();
-		refresher = new Refresher(display);
-	}
-
-	protected EditDomain createEditDomain() {
-		EditDomain ed = new EditDomain(this);
-		ed.setCommandStack(new CommandStack());
-		return ed;
-	}
-
-	public Refresher getRefresher() {
-		return refresher;
-	}
-
-	public void createPartControl(Composite parent) {
-		ViewForm diagramPart = new ViewForm(parent, SWT.FLAT);
-		ToolBar toolBar = createToolBar(diagramPart);
-		if (toolBar != null && !toolBar.isDisposed()) {
-			diagramPart.setTopLeft(toolBar);
-		}
-		sourceEditor = new MultiSourceEditor(this);
-		if (sourceEditor.testValid()) {
-			CustomSashForm sashForm = new CustomSashForm(diagramPart,
-					SWT.VERTICAL);
-			super.createPartControl(sashForm);
-			boolean createSourcePage = createSourcePage(sashForm);
-			if (createSourcePage) {
-				sashForm.setWeights(new int[] { 1, 1 });
-				diagramPart.setContent(sashForm);
-			} else {
-				sashForm.dispose();
-				sourceEditor = null;
-				Composite content = new Composite(diagramPart, SWT.NONE);
-				content.setLayout(new FillLayout());
-				super.createPartControl(content);
-				diagramPart.setContent(content);
-			}
-		} else {
-			sourceEditor = null;
-			Composite content = new Composite(diagramPart, SWT.NONE);
-			content.setLayout(new FillLayout());
-			super.createPartControl(content);
-			diagramPart.setContent(content);
-		}
-		configureDesigner();
-	}
-
-	protected void configureDesigner() {
-		loadDiagram();
-	}
-
-	public void commandStackChanged(EventObject event) {
-		super.commandStackChanged(event);
-		firePropertyChange(PROP_DIRTY);
-	}
-
-	private void loadDiagram() {
-		final IModelBuilder builder = getModelBuilder();
-		if (builder == null) {
-			return;
-		}
-		loadingFigure.showLoadingFigure(true);
-		loadingFigure.startListener(getGraphicalViewer());
-		UIJob loadingJob = new UIJob(display, "Setup") {
-			public IStatus runInUIThread(IProgressMonitor monitor) {
-				boolean built = builder.doLoad(ConfigureDesigner.this, monitor);
-				if (built) {
-					setupDiagram(builder.getDiagram());
-				}
-				return Status.OK_STATUS;
-			}
-		};
-		loadingJob.setPriority(Job.SHORT);
-		loadingJob.schedule();
-	}
-
-	protected IModelBuilder getModelBuilder() {
-		if (modelBuilder == null) {
-			modelBuilder = createModelBuilder();
-		}
-		if (modelBuilderListener == null) {
-			modelBuilderListener = new ModelChangeListener() {
-				public void notifyChanged(final Notification event) {
-					dispatchModelEvent(event);
-				}
-			};
-		}
-		if (!modelBuilder.hasListener(modelBuilderListener)) {
-			modelBuilder.addModelListener(modelBuilderListener);
-		}
-		return modelBuilder;
-	}
-
-	private void dispatchModelEvent(final Notification event) {
-		if (event.isTouch() || isCreatingVisuals) {
-			return;
-		}
-		if (display != null && display.getThread() == Thread.currentThread()) {
-			updateVisuals(event);
-		} else if (display != null) {
-			DisplayUtil.asyncExec(display, new Runnable() {
-				public void run() {
-					updateVisuals(event);
-				}
-			});
-		}
-	}
-
-	protected void updateVisuals(Notification event) {
-		if (visualsRender == null || event.isTouch()) {
-			return;
-		}
-		isCreatingVisuals = true;
-		Result result;
-		try {
-			result = getVisualsRender().refreshVisuals(event);
-		} catch (RuntimeException e) {
-			return;
-		} finally {
-			isCreatingVisuals = false;
-		}
-		if (result == null || !result.refreshed) {
-			return;
-		}
-		List<EditPartViewer> viewers = getEditDomain().getViewers();
-		for (EditPartViewer viewer : viewers) {
-			updateViewer(viewer, result.visuals);
-		}
-		isModelChanged = true;
-		firePropertyChange(PROP_DIRTY);
-	}
-
-	protected void updateViewer(EditPartViewer viewer, Object model) {
-		if (viewer == null) {
-			return;
-		}
-		EditPart editPart = (EditPart) viewer.getEditPartRegistry().get(model);
-		if (editPart == null) {
-			// editPart = viewer.getContents();
-		}
-		if (editPart != null) {
-			refresher.refreshInJob(editPart);
-			if (editPart.isSelectable()) {
-				viewer.select(editPart);
-			}
-		}
-	}
-
-	private void setupDiagram(final Object diagram) {
-		if (diagram == null) {
-			return;
-		}
-		this.diagram = diagram;
-		IVisualRenderer vr = getVisualsRender();
-		if (vr == null) {
-			return;
-		}
-		isCreatingVisuals = true;
-		vr.createVisuals();
-		isCreatingVisuals = false;
-
-		// if (display != null && display.getThread() == Thread.currentThread())
-		// {
-		// setupViewers(diagram);
-		// } else if (display != null) {
-		DisplayUtil.asyncExec(display, new Runnable() {
-			public void run() {
-				setupViewers(diagram);
-			}
-		});
-		// }
-
-		loadingFigure.showLoadingFigure(false);
-	}
-
-	protected void setupViewers(Object diagram) {
-		List<EditPartViewer> viewers = getEditDomain().getViewers();
-		for (EditPartViewer editPartViewer : viewers) {
-			editPartViewer.setContents(diagram);
-			RootEditPart rootEditPart = editPartViewer.getRootEditPart();
-			refresher.refresh(rootEditPart, RefreshContext.ALL());
-		}
-	}
-
-	public Object getDiagram() {
-		return diagram;
-	}
-
-	public IVisualRenderer getVisualsRender() {
-		if (visualsRender == null) {
-			visualsRender = createVisualsRender(getFile(), diagram);
-			Assert.isNotNull(visualsRender);
-		}
-		return visualsRender;
-	}
-
-	protected ToolBar createToolBar(Composite parent) {
-		return null;
-	}
-
-	private boolean createSourcePage(Composite parent) {
-		if (sourceEditor == null) {
-			return false;
-		}
-		try {
-			sourceEditor.init(getEditorSite(), getEditorInput());
-			sourceEditor.createPartControl(parent);
-		} catch (PartInitException e) {
-			e.printStackTrace();
-			return false;
-		}
-		return true;
-	}
-
-	public EditDomain getEditDomain() {
-		return (EditDomain) super.getEditDomain();
-	}
-
-	public void doSave(IProgressMonitor monitor) {
-		// save top - down.
-		saveGraphicalEditor(monitor);
-
-		if (sourceEditor != null && sourceEditor.isDirty()) {
-			sourceEditor.doSave(monitor);
-		}
-		firePropertyChange(PROP_DIRTY);
-	}
-
-	protected void saveGraphicalEditor(IProgressMonitor monitor) {
-		isModelChanged = false;
-		getCommandStack().markSaveLocation();
-	}
-
-	public boolean isDirty() {
-		// Model changed
-		if (isModelChanged) {
-			return true;
-		}
-		// CommandStack changed
-		if (super.isDirty()) {
-			return true;
-		}
-		// Source changed
-		if (sourceEditor != null) {
-			return sourceEditor.isDirty();
-		}
-		return super.isDirty();
-	}
-
-	public void dispose() {
-		if (sourceEditor != null) {
-			sourceEditor.dispose();
-		}
-		super.dispose();
-	}
-
-	public Object getAdapter(Class adapter) {
-		if (PalettePage.class.isAssignableFrom(adapter)) {
-			return getPalettePage();
-		} else if (CommandStack.class == adapter) {
-			return getCommandStack();
-		} else if (adapter == IPropertySheetPage.class) {
-			return getPropertySheetPage();
-		} else if (adapter == IContentOutlinePage.class) {
-			return getContentOutlinePage();
-		} else if (adapter == ProblemHandler.class) {
-			return getProblemHandler();
-		} else if (adapter == IProject.class) {
-			return getProject();
-		} else if (adapter == IFile.class) {
-			return getFile();
-		}
-		return super.getAdapter(adapter);
-	}
-
-	public PalettePage getPalettePage() {
-		if (palettePage == null) {
-			palettePage = createPalettePage();
-		}
-		return palettePage;
-	}
-
-	public IPropertySheetPage getPropertySheetPage() {
-		boolean recreate = true;
-		if (propertySheetPage != null) {
-			Control control = propertySheetPage.getControl();
-			recreate = control == null || control.isDisposed();
-		}
-		if (recreate) {
-			propertySheetPage = createPropertySheetPage();
-		}
-		return propertySheetPage;
-	}
-
-	public IContentOutlinePage getContentOutlinePage() {
-		if (contentOutlinePage == null) {
-			contentOutlinePage = createContentOutlinePage();
-		}
-		return contentOutlinePage;
-	}
-
-	public ProblemHandler getProblemHandler() {
-		if (problemHandler == null) {
-			problemHandler = createProblemHandler();
-		}
-		return problemHandler;
-	}
-
-	public IProject getProject() {
-		IFile file = getFile();
-		if (file != null) {
-			return file.getProject();
-		}
-		return null;
-	}
-
-	public IFile getFile() {
-		IEditorInput editorInput = getEditorInput();
-		if (editorInput == null || !(editorInput instanceof IFileEditorInput)) {
-			return null;
-		}
-		return ((IFileEditorInput) editorInput).getFile();
-	}
-
-	protected ProblemHandler createProblemHandler() {
-		// return new ConfigurableProblemHandler(this);
-		return null;
-	}
-
-	protected IContentOutlinePage createContentOutlinePage() {
-		return null;
-	}
-
-	protected IPropertySheetPage createPropertySheetPage() {
-		return null;
-	}
-
-	protected PalettePage createPalettePage() {
-		return new ContributePalettePage(this, getEditDomain());
-	}
-
-	protected abstract IModelBuilder createModelBuilder();
-
-	protected abstract IVisualRenderer createVisualsRender(IFile file,
-			Object diagram);
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/ceditor/ISourcePage.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/ceditor/ISourcePage.java
deleted file mode 100755
index a0adc9f..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/ceditor/ISourcePage.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.ceditor;
-
-import org.eclipse.ui.IEditorPart;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public interface ISourcePage extends IEditorPart {
-
-	String getPageName();
-
-	boolean isEnabledFor(IEditorPart editorPart);
-
-	void configureSourcePage(IEditorPart editorPart);
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/ceditor/MultiSourceEditor.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/ceditor/MultiSourceEditor.java
deleted file mode 100755
index eb043a0..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/ceditor/MultiSourceEditor.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.ceditor;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.MultiPageEditorPart;
-import org.eclipse.xwt.tools.ui.designer.core.editor.Designer;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public class MultiSourceEditor extends MultiPageEditorPart {
-
-	private ISourcePage[] sourcePages;
-
-	private IEditorPart primaryEditor;
-
-	public MultiSourceEditor(IEditorPart primaryEditor) {
-		this.primaryEditor = primaryEditor;
-		sourcePages = SourcePageRegistry.getSourcePages(primaryEditor.getSite()
-				.getId());
-	}
-
-	protected void createPages() {
-		if (!testValid()) {
-			return;
-		}
-		for (ISourcePage sourcePage : sourcePages) {
-			if (!sourcePage.isEnabledFor(primaryEditor)) {
-				continue;
-			}
-			createAddPage(sourcePage);
-		}
-
-		Composite container = getContainer();
-		if (container instanceof CTabFolder) {
-			CTabFolder ctf = ((CTabFolder) container);
-			ctf.setTabPosition(SWT.TOP);
-			ctf.setSimple(false);
-		}
-	}
-
-	private void createAddPage(ISourcePage sourcePage) {
-		try {
-			int pageIndex = addPage(sourcePage, getEditorInput());
-			String pageName = sourcePage.getPageName();
-			setPageText(pageIndex, pageName == null ? "" : pageName);
-			sourcePage.configureSourcePage(this);
-		} catch (PartInitException e) {
-			e.printStackTrace();
-		}
-	}
-
-	public void doSave(IProgressMonitor monitor) {
-		IEditorPart activeEditor = getActiveEditor();
-		if (activeEditor != null) {
-			activeEditor.doSave(monitor);
-		}
-	}
-
-	protected void setActivePage(int pageIndex) {
-		if (pageIndex < 0 || pageIndex >= getPageCount()) {
-			return;
-		}
-		super.setActivePage(pageIndex);
-	}
-
-	public void doSaveAs() {
-		IEditorPart activeEditor = getActiveEditor();
-		if (activeEditor != null) {
-			activeEditor.doSaveAs();
-		}
-	}
-
-	public boolean isSaveAsAllowed() {
-		IEditorPart activeEditor = getActiveEditor();
-		if (activeEditor != null) {
-			return activeEditor.isSaveAsAllowed();
-		}
-		return false;
-	}
-
-	public boolean testValid() {
-		if (sourcePages == null) {
-			sourcePages = SourcePageRegistry.getSourcePages(primaryEditor
-					.getSite().getId());
-		}
-		if (sourcePages.length <= 0) {
-			return false;
-		}
-		boolean enabled = false;
-		for (ISourcePage page : sourcePages) {
-			enabled = enabled || page.isEnabledFor(null);
-		}
-		return enabled;
-	}
-
-	public Object getAdapter(Class adapter) {
-		if (Designer.class == adapter) {
-			return primaryEditor;
-		}
-		return super.getAdapter(adapter);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/ceditor/SourcePageRegistry.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/ceditor/SourcePageRegistry.java
deleted file mode 100755
index 3c9c05c..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/ceditor/SourcePageRegistry.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.ceditor;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public class SourcePageRegistry {
-
-	private static String EXTENSION_ID = "org.eclipse.xwt.tools.ui.designer.core.sourcePages";
-	private static String TARGET_ID = "targetId";
-	private static String PAGE = "Page";
-	private static String PAGE_CLASS = "class";
-	private static final ISourcePage[] EMPTY = new ISourcePage[0];
-
-	public static ISourcePage[] getSourcePages(String editorId) {
-		if (editorId == null) {
-			return EMPTY;
-		}
-		return loadFromExtensions(editorId);
-	}
-
-	private static ISourcePage[] loadFromExtensions(String editorId) {
-		IConfigurationElement[] configurationElements = Platform
-				.getExtensionRegistry().getConfigurationElementsFor(
-						EXTENSION_ID);
-		List<ISourcePage> pages = new ArrayList<ISourcePage>();
-		for (IConfigurationElement element : configurationElements) {
-			String attribute = element.getAttribute(TARGET_ID);
-			if (!editorId.equals(attribute)) {
-				continue;
-			}
-			IConfigurationElement[] children = element.getChildren(PAGE);
-			for (IConfigurationElement child : children) {
-				try {
-					ISourcePage sourcePage = (ISourcePage) child
-							.createExecutableExtension(PAGE_CLASS);
-					pages.add(sourcePage);
-				} catch (CoreException e) {
-					e.printStackTrace();
-				}
-			}
-		}
-		return pages.toArray(new ISourcePage[pages.size()]);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/component/CustomSashForm.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/component/CustomSashForm.java
deleted file mode 100755
index cf4d915..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/component/CustomSashForm.java
+++ /dev/null
@@ -1,940 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.component;
-
-/*
- *  $RCSfile: CustomSashForm.java,v $
- *  $Revision: 1.3 $  $Date: 2010/06/18 00:15:25 $ 
- */
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.Cursors;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.ControlListener;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.eclipse.swt.events.MouseTrackAdapter;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Sash;
-
-/**
- * A SashForm that allows move to/from max controls on sash.
- * 
- * It only works with one sash (two children). It doesn't make sense for the arrows when there is more than one sash. Things get confusing for a restore position.
- * 
- * Currently only handle top/bottom orientation. Wouldn't take much to handle left/right.
- * 
- * @author richkulp
- */
-public class CustomSashForm extends SashForm {
-
-	public static final String copyright = "(c) Copyright IBM Corporation 2002."; //$NON-NLS-1$
-	/**
-	 * Custom style bits. They set whether max to one side of the other is not permitted. For example, if NO_MAX_UP, then there will be only one arrow. When not maxed, it will point down (and will do a max down), and when maxed down, it will point up (and will do a restore to the previous weight). There won't be a max to the top arrow.
-	 */
-	public static final int NO_MAX_LEFT = 0x1, // Custom style bit for not allow
-			// max left
-			NO_MAX_UP = NO_MAX_LEFT, // Custom style bit for not allow max up
-			NO_MAX_RIGHT = 0x2, // Custom style bit for not allow max right
-			NO_MAX_DOWN = NO_MAX_RIGHT; // Custom style bit for not allow max
-	// down
-
-	private static final int NO_WEIGHT = -1;
-	private static final int NO_ARROW = -1;
-
-	private static class SashInfo {
-		public Sash sash;
-		public boolean enabled; // Whether this sashinfo is enabled (i.e. if
-		// there is more than one, this will be
-		// disabled).
-		public int weight = NO_WEIGHT; // If slammed to an edge this is the
-		// restore weight. -1 means not slammed.
-		// This is the weight in the next form
-		// (i.e. sash[0] == weight[1].
-		public int cursorOver = NO_ARROW; // Which arrow is cursor over,
-		public boolean sashBorderLeft; // Draw sash border left/top
-		public boolean sashBorderRight; // Draw sash border right/bottom
-		public int[][] sashLocs; // There is one entry for each arrow, It is
-
-		// arrowType/arrowDrawn/x/y/height/width of
-		// the arrow area.
-
-		// There may not be a second entry, in which case we have only one
-		// arrow.
-		public SashInfo(Sash sash) {
-			this.sash = sash;
-		}
-	};
-
-	public static interface ICustomSashFormListener {
-		public void dividerMoved(int firstControlWeight, int secondControlWeight);
-	}
-
-	protected SashInfo currentSashInfo = null; // When the sash goes away, its
-	// entry is made null.
-	protected boolean inMouseClick = false; // Because we can't stop drag even
-	// when we are in the arrow area, we
-	// need
-	// to know that mouse down is in process so that when drag is completed, we
-	// know not to recompute our position because a mouse up is about to happen
-	// and we want the correct arrow handled correctly.
-
-	protected boolean sashBorders[]; // Whether cooresponding control needs a
-	// sash border
-
-	protected boolean noMaxUp, noMaxDown;
-	protected List customSashFormListeners = null;
-
-	protected static final int UP_ARROW = 0, UP_MAX_ARROW = 1, DOWN_ARROW = 2, DOWN_MAX_ARROW = 3,
-
-	MAX_ARROWS = 4;
-
-	protected static final int ARROW_TYPE_INDEX = 0, ARROW_DRAWN_INDEX = 1, X_INDEX = 2, Y_INDEX = 3, WIDTH_INDEX = 4, HEIGHT_INDEX = 5;
-
-	/**
-	 * Constructor for CustomSashForm.
-	 * 
-	 * @param parent
-	 * @param style
-	 */
-	public CustomSashForm(Composite parent, int style) {
-		this(parent, style, SWT.NONE);
-	}
-
-	/**
-	 * Constructor taking a custom style too. Or in the Custom style bits defined above (e.g. NO_MAX_RIGHT,...)
-	 */
-	public CustomSashForm(Composite parent, int style, int customStyle) {
-		super(parent, style);
-
-		// Need listener to force a layout
-		this.addListener(SWT.Resize, new Listener() {
-			public void handleEvent(Event e) {
-				layout(true);
-			}
-		});
-
-		noMaxUp = ((customStyle & NO_MAX_UP) != 0);
-		noMaxDown = ((customStyle & NO_MAX_DOWN) != 0);
-
-		if (noMaxUp & noMaxDown)
-			return; // If you can't max up or down, there there is no need for
-		// arrows.
-
-		SASH_WIDTH = 3 + ARROW_HEIGHT;
-
-		arrowColor = new Color(parent.getDisplay(), 99, 101, 156);
-		borderColor = new Color(parent.getDisplay(), 132, 130, 132);
-
-		addDisposeListener(new DisposeListener() {
-			/**
-			 * @see org.eclipse.swt.events.DisposeListener#widgetDisposed(DisposeEvent)
-			 */
-			public void widgetDisposed(DisposeEvent e) {
-				arrowColor.dispose();
-				borderColor.dispose();
-				arrowColor = borderColor = null;
-			}
-
-		});
-	}
-
-	/**
-	 * Call to set to max up
-	 */
-	public void maxUp() {
-		if (noMaxUp)
-			return;
-
-		if (currentSashInfo == null)
-			currentSashInfo = new SashInfo(null);
-		upMaxClicked(currentSashInfo);
-	}
-
-	/**
-	 * Call to set to max left
-	 */
-	public void maxLeft() {
-		maxUp();
-	}
-
-	/**
-	 * Call to set to max down
-	 */
-	public void maxDown() {
-		if (noMaxDown)
-			return;
-
-		if (currentSashInfo == null)
-			currentSashInfo = new SashInfo(null);
-
-		downMaxClicked(currentSashInfo);
-	}
-
-	/**
-	 * Call to set to max left
-	 */
-	public void maxRight() {
-		maxDown();
-	}
-
-	/**
-	 * Set the need sash borders for the controls.
-	 */
-	public void setSashBorders(boolean[] sashBorders) {
-		int[] weights = getWeights(); // KLUDGE This is a kludge just to see how
-		// many controls we have.
-		if (weights.length != 2 || (sashBorders != null && sashBorders.length != 2)) {
-			SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-		}
-		this.sashBorders = sashBorders;
-	}
-
-	/**
-	 * @see org.eclipse.swt.widgets.Composite#layout(boolean)
-	 */
-	public void layout(boolean changed) {
-		super.layout(changed);
-
-		if (noMaxUp && noMaxDown)
-			return; // No arrows to handle in this case.
-
-		if (getMaximizedControl() != null)
-			return; // We have a maximized control, so we don't need to worry
-		// about the sash.
-
-		// Let's get the list of all sashes the sash form now has. If there is
-		// more than one then just disable the sashinfo.
-		// If there is no current sash, and there is only one sash, then create
-		// the sashinfo for it.
-		Control[] children = getChildren();
-		Sash newSash = null;
-		for (int i = 0; i < children.length; i++) {
-			if (children[i] instanceof Sash)
-				if (newSash == null)
-					newSash = (Sash) children[i];
-				else {
-					// We have more than one sash, so need to disable current
-					// sash, if we have one.
-					if (currentSashInfo != null)
-						currentSashInfo.enabled = false;
-					return; // Don't go on.
-				}
-		}
-
-		if (newSash == null)
-			return; // We have no sashes at all.
-
-		// Now we need to see if this is a new sash.
-		if (currentSashInfo == null || currentSashInfo.sash == null) {
-			if (currentSashInfo == null)
-				currentSashInfo = new SashInfo(newSash);
-			else
-				currentSashInfo.sash = newSash;
-			newSash.addPaintListener(new PaintListener() {
-				/**
-				 * @see org.eclipse.swt.events.PaintListener#paintControl(PaintEvent)
-				 */
-				public void paintControl(PaintEvent e) {
-					// Need to find the index of the sash we're interested in.
-
-					GC gc = e.gc;
-					Color oldFg = gc.getForeground();
-					Color oldBg = gc.getBackground();
-
-					drawArrow(gc, currentSashInfo.sashLocs[0], currentSashInfo.cursorOver == 0); // Draw first
-					// arrow
-					if (currentSashInfo.sashLocs.length > 1)
-						drawArrow(gc, currentSashInfo.sashLocs[1], currentSashInfo.cursorOver == 1); // Draw second
-					// arrow
-
-					if (currentSashInfo.sashBorderLeft)
-						drawSashBorder(gc, currentSashInfo.sash, true);
-					if (currentSashInfo.sashBorderRight)
-						drawSashBorder(gc, currentSashInfo.sash, false);
-
-					gc.setForeground(oldFg);
-					gc.setBackground(oldBg);
-				}
-
-			});
-
-			newSash.addControlListener(new ControlListener() {
-				/**
-				 * @see org.eclipse.swt.events.ControlAdapter#controlMoved(ControlEvent)
-				 */
-				public void controlMoved(ControlEvent e) {
-					recomputeSashInfo();
-				}
-
-				/**
-				 * @see org.eclipse.swt.events.ControlAdapter#controlResized(ControlEvent)
-				 */
-				public void controlResized(ControlEvent e) {
-					recomputeSashInfo();
-				}
-
-			});
-
-			newSash.addDisposeListener(new DisposeListener() {
-				/**
-				 * @see org.eclipse.swt.events.DisposeListener#widgetDisposed(DisposeEvent)
-				 */
-				public void widgetDisposed(DisposeEvent e) {
-					// Need to clear out the widget from current.
-					currentSashInfo = null;
-				}
-			});
-
-			// This is a kludge because we can't override the set cursor hit
-			// test.
-			newSash.addMouseMoveListener(new MouseMoveListener() {
-				/**
-				 * @see org.eclipse.swt.events.MouseMoveListener#mouseMove(MouseEvent)
-				 */
-				public void mouseMove(MouseEvent e) {
-					// See if within one of the arrows.
-					int x = e.x;
-					int y = e.y;
-					for (int i = 0; i < currentSashInfo.sashLocs.length; i++) {
-						int[] locs = currentSashInfo.sashLocs[i];
-						boolean vertical = getOrientation() == SWT.VERTICAL;
-						int loc = vertical ? x : y;
-						int locIndex = vertical ? X_INDEX : Y_INDEX;
-						int sizeIndex = vertical ? WIDTH_INDEX : HEIGHT_INDEX;
-						if (locs[locIndex] <= loc && loc <= locs[locIndex] + locs[sizeIndex]) {
-							if (currentSashInfo.cursorOver == NO_ARROW) {
-								currentSashInfo.sash.setCursor(Cursors.ARROW);
-							}
-							if (currentSashInfo.cursorOver != i) {
-								currentSashInfo.cursorOver = i;
-								currentSashInfo.sash.redraw();
-								switch (locs[ARROW_TYPE_INDEX]) {
-								case UP_ARROW:
-								case DOWN_ARROW:
-									currentSashInfo.sash.setToolTipText("Restore Previous Location");
-									break;
-								case UP_MAX_ARROW:
-								case DOWN_MAX_ARROW:
-									currentSashInfo.sash.setToolTipText("Maximize Pane");
-									break;
-								}
-							}
-							return;
-						}
-					}
-					if (currentSashInfo.cursorOver != NO_ARROW) {
-						currentSashInfo.sash.setCursor(null);
-						currentSashInfo.cursorOver = NO_ARROW;
-						currentSashInfo.sash.redraw();
-						currentSashInfo.sash.setToolTipText(null);
-					}
-				}
-
-			});
-
-			// Need to know when we leave so that we can clear the cursor
-			// feedback if set.
-			newSash.addMouseTrackListener(new MouseTrackAdapter() {
-				/**
-				 * @see org.eclipse.swt.events.MouseTrackAdapter#mouseExit(MouseEvent)
-				 */
-				public void mouseExit(MouseEvent e) {
-					if (currentSashInfo.cursorOver != NO_ARROW) {
-						// Undo the cursor.
-						currentSashInfo.sash.setCursor(null);
-						currentSashInfo.cursorOver = NO_ARROW;
-						currentSashInfo.sash.redraw();
-						currentSashInfo.sash.setToolTipText(null);
-					}
-				}
-			});
-
-			// Want to handle mouse down as a selection.
-			newSash.addMouseListener(new MouseAdapter() {
-				/**
-				 * @see org.eclipse.swt.events.MouseAdapter#mouseDown(MouseEvent)
-				 */
-				public void mouseDown(MouseEvent e) {
-					inMouseClick = true;
-					// If we're within a button, then redraw to wipe out stipple
-					// and get button push effect.
-					int x = e.x;
-					int y = e.y;
-					for (int i = 0; i < currentSashInfo.sashLocs.length; i++) {
-						int[] locs = currentSashInfo.sashLocs[i];
-						boolean vertical = getOrientation() == SWT.VERTICAL;
-						int loc = vertical ? x : y;
-						int locIndex = vertical ? X_INDEX : Y_INDEX;
-						int sizeIndex = vertical ? WIDTH_INDEX : HEIGHT_INDEX;
-						if (locs[locIndex] <= loc && loc <= locs[locIndex] + locs[sizeIndex]) {
-							currentSashInfo.sash.redraw();
-							break;
-						}
-					}
-				}
-
-				/**
-				 * @see org.eclipse.swt.events.MouseListener#mouseDown(MouseEvent)
-				 */
-				public void mouseUp(MouseEvent e) {
-					// See if within one of the arrows.
-					inMouseClick = false; // No longer in down click
-					int x = e.x;
-					int y = e.y;
-					for (int i = 0; i < currentSashInfo.sashLocs.length; i++) {
-						int[] locs = currentSashInfo.sashLocs[i];
-						boolean vertical = getOrientation() == SWT.VERTICAL;
-						int loc = vertical ? x : y;
-						int locIndex = vertical ? X_INDEX : Y_INDEX;
-						int sizeIndex = vertical ? WIDTH_INDEX : HEIGHT_INDEX;
-						if (locs[locIndex] <= loc && loc <= locs[locIndex] + locs[sizeIndex]) {
-							// We found it.
-							switch (locs[ARROW_TYPE_INDEX]) {
-							case UP_ARROW:
-								upClicked(currentSashInfo);
-								break;
-							case UP_MAX_ARROW:
-								upMaxClicked(currentSashInfo);
-								break;
-							case DOWN_ARROW:
-								downClicked(currentSashInfo);
-								break;
-							case DOWN_MAX_ARROW:
-								downMaxClicked(currentSashInfo);
-								break;
-							}
-							break;
-						}
-					}
-
-					currentSashInfo.sash.redraw(); // Make sure stipple goes
-					// away from the mouse up if
-					// not over an arrow button.
-					fireDividerMoved();
-				}
-
-			});
-			recomputeSashInfo(); // Get initial setting
-		}
-
-	}
-
-	protected void recomputeSashInfo() {
-		if (inMouseClick && currentSashInfo.cursorOver != NO_WEIGHT)
-			return; // Don't process because we are in the down mouse button on
-		// an arrow.
-
-		// We need to refigure size for the sash arrows.
-		int[] addArrows = null;
-		int[] drawArrows = null;
-		int[] weights = getWeights(); // This should be two entries only. We
-		// shouldn't of gotton here if there
-		// were more than two.
-		if (noMaxUp) {
-			addArrows = new int[1];
-			drawArrows = new int[1];
-			if (weights[1] == 0) {
-				// Slammed to the bottom
-				addArrows[0] = UP_ARROW;
-				drawArrows[0] = UP_ARROW;
-				currentSashInfo.sashBorderLeft = sashBorders != null ? sashBorders[0] : false;
-				currentSashInfo.sashBorderRight = false;
-			} else {
-				// Not slammed
-				addArrows[0] = DOWN_MAX_ARROW;
-				drawArrows[0] = DOWN_ARROW;
-				currentSashInfo.weight = NO_WEIGHT; // Since we are in the
-				// middle, there is no
-				// weight. We've could of
-				// been dragged here.
-				currentSashInfo.sashBorderLeft = sashBorders != null ? sashBorders[0] : false;
-				currentSashInfo.sashBorderRight = sashBorders != null ? sashBorders[1] : false;
-			}
-		} else if (noMaxDown) {
-			addArrows = new int[1];
-			drawArrows = new int[1];
-			if (weights[0] == 0) {
-				// Slammed to the top
-				addArrows[0] = DOWN_ARROW;
-				drawArrows[0] = DOWN_ARROW;
-				currentSashInfo.sashBorderLeft = false;
-				currentSashInfo.sashBorderRight = sashBorders != null ? sashBorders[1] : false;
-			} else {
-				// Not slammed
-				addArrows[0] = UP_MAX_ARROW;
-				drawArrows[0] = UP_ARROW;
-				currentSashInfo.weight = NO_WEIGHT; // Since we are in the
-				// middle, there is no
-				// weight. We've could of
-				// been dragged here.
-				currentSashInfo.sashBorderLeft = sashBorders != null ? sashBorders[0] : false;
-				currentSashInfo.sashBorderRight = sashBorders != null ? sashBorders[1] : false;
-			}
-		} else {
-			addArrows = new int[2];
-			drawArrows = new int[2];
-			// TODO: SashForm as changed the folllwing is a temporary kludge
-			Rectangle sashBounds = currentSashInfo.sash.getBounds();
-			Rectangle clientArea = getClientArea();
-			final int DRAG_MINIMUM = 20; // TODO: kludge see
-			// SashForm.DRAG_MINIMUM
-			if (weights[0] == 0 || (currentSashInfo.weight != NO_WEIGHT && sashBounds.y <= DRAG_MINIMUM)) {
-				// Slammed to the top.
-				addArrows[0] = DOWN_MAX_ARROW;
-				drawArrows[0] = DOWN_MAX_ARROW;
-				addArrows[1] = DOWN_ARROW;
-				drawArrows[1] = DOWN_ARROW;
-				currentSashInfo.sashBorderLeft = false;
-				currentSashInfo.sashBorderRight = sashBorders != null ? sashBorders[1] : false;
-			} else if (weights[1] == 0 || (currentSashInfo.weight != NO_WEIGHT && sashBounds.y + sashBounds.height >= clientArea.height - DRAG_MINIMUM)) {
-				// Slammed to the bottom
-				addArrows[0] = UP_ARROW;
-				drawArrows[0] = UP_ARROW;
-				addArrows[1] = UP_MAX_ARROW;
-				drawArrows[1] = UP_MAX_ARROW;
-				currentSashInfo.sashBorderLeft = sashBorders != null ? sashBorders[0] : false;
-				currentSashInfo.sashBorderRight = false;
-			} else {
-				// Not slammed
-				addArrows[0] = UP_MAX_ARROW;
-				drawArrows[0] = UP_ARROW;
-				addArrows[1] = DOWN_MAX_ARROW;
-				drawArrows[1] = DOWN_ARROW;
-				currentSashInfo.weight = NO_WEIGHT; // Since we are in the
-				// middle, there is no
-				// weight. We've could of
-				// been dragged here.
-				currentSashInfo.sashBorderLeft = sashBorders != null ? sashBorders[0] : false;
-				currentSashInfo.sashBorderRight = sashBorders != null ? sashBorders[1] : false;
-			}
-		}
-		getNewSashArray(currentSashInfo, addArrows, drawArrows);
-
-		currentSashInfo.sash.redraw(); // Need to schedule a redraw because it
-		// has already drawn the old ones during
-		// the set bounds in super layout.
-	}
-
-	protected void upClicked(SashInfo sashinfo) {
-		// This means restore just the sash below weight and reduce the above
-		// weight by the right amount.
-		int[] weights = getWeights();
-
-		weights[0] = 1000 - sashinfo.weight; // Assume weights are always in
-		// units of 1000.
-		weights[1] = sashinfo.weight;
-		sashinfo.weight = NO_WEIGHT;
-
-		setWeights(weights);
-		fireDividerMoved();
-	}
-
-	protected void upMaxClicked(SashInfo sashinfo) {
-		int[] weights = getWeights();
-
-		// Up max, so save the current weight of 1 into the sash info, and move
-		// to the top.
-		if (currentSashInfo.weight == NO_WEIGHT)
-			currentSashInfo.weight = weights[1]; // Not currently maxed, save
-		// position.
-
-		weights[1] = 1000;
-		weights[0] = 0;
-
-		// If the upper panel has focus, flip focus to the lower panel because
-		// the upper panel is now hidden.
-		Control[] children = getChildren();
-		boolean upperFocus = isFocusAncestorA(children[0]);
-		setWeights(weights);
-		if (upperFocus)
-			children[1].setFocus();
-		fireDividerMoved();
-	}
-
-	protected void downClicked(SashInfo sashinfo) {
-		// This means restore just the sash below weight and increase the above
-		// weight by that amount.
-		int[] weights = getWeights();
-
-		weights[0] = 1000 - sashinfo.weight; // Assume weights are always in
-		// units of 1000.
-		weights[1] = sashinfo.weight;
-		sashinfo.weight = NO_WEIGHT;
-
-		setWeights(weights);
-		fireDividerMoved();
-	}
-
-	protected void downMaxClicked(SashInfo sashinfo) {
-		int[] weights = getWeights();
-
-		// Down max, so save the current weight of 1 into the sash info, and
-		// move to the bottom.
-		if (currentSashInfo.weight == NO_WEIGHT)
-			currentSashInfo.weight = weights[1]; // Not currently maxed, save
-		// current weight.
-		weights[0] = 1000;
-		weights[1] = 0;
-
-		// If the lower panel has focus, flip focus to the upper panel because
-		// the lower panel is now hidden.
-		Control[] children = getChildren();
-		boolean lowerFocus = isFocusAncestorA(children[1]);
-		setWeights(weights);
-		if (lowerFocus)
-			children[0].setFocus();
-		fireDividerMoved();
-	}
-
-	/*
-	 * This determines if the control or one of its children has the focus. It was hidden by SWT, but it is really useful.
-	 */
-	protected boolean isFocusAncestorA(Control control) {
-		Display display = getDisplay();
-		Control focusControl = display.getFocusControl();
-		while (focusControl != null && focusControl != control) {
-			focusControl = focusControl.getParent();
-		}
-		return control == focusControl;
-	}
-
-	protected void getNewSashArray(SashInfo sashInfo, int[] addArrowTypes, int[] drawArrowTypes) {
-
-		int[][] thisSash = sashInfo.sashLocs;
-		if (thisSash == null)
-			thisSash = sashInfo.sashLocs = new int[addArrowTypes.length][];
-
-		int aSize = ARROW_SIZE; // Width of arrow
-		int tSize = aSize + 2 * ARROW_MARGIN; // Total Width (arrow + margin)
-		int neededSize = tSize * addArrowTypes.length;
-
-		boolean vertical = getOrientation() == SWT.VERTICAL;
-		Point s = sashInfo.sash.getSize();
-		int start = 0;
-		int x = 0;
-		int y = 0;
-		int width = 0;
-		int height = 0;
-		if (vertical) {
-			start = (s.x - neededSize) / 2;
-			x = start;
-			y = (s.y - ARROW_HEIGHT) / 2; // Center vertically, no margin
-			// required.
-			width = tSize;
-			height = aSize;
-		} else {
-			start = (s.y - neededSize) / 2;
-			y = start;
-			x = (s.x - ARROW_HEIGHT) / 2; // Center horizontally, no margin
-			// required.
-			width = aSize;
-			height = tSize;
-		}
-		for (int j = 0; j < addArrowTypes.length; j++) {
-			if (thisSash[j] == null)
-				thisSash[j] = new int[] { addArrowTypes[j], drawArrowTypes[j], x, y, width, height };
-			else {
-				// Reuse the array
-				thisSash[j][ARROW_TYPE_INDEX] = addArrowTypes[j];
-				thisSash[j][ARROW_DRAWN_INDEX] = drawArrowTypes[j];
-				thisSash[j][X_INDEX] = x;
-				thisSash[j][Y_INDEX] = y;
-				thisSash[j][WIDTH_INDEX] = width;
-				thisSash[j][HEIGHT_INDEX] = height;
-			}
-			if (vertical)
-				x += tSize;
-			else
-				y += tSize;
-		}
-	}
-
-	protected void drawSashBorder(GC gc, Sash sash, boolean leftBorder) {
-		gc.setForeground(borderColor);
-		if (getOrientation() == SWT.VERTICAL) {
-			Point s = sash.getSize();
-			if (leftBorder)
-				gc.drawLine(0, 0, s.x - 1, 0);
-			else
-				gc.drawLine(0, s.y - 1, s.x - 1, s.y - 1);
-		} else {
-			Point s = sash.getSize();
-			if (leftBorder)
-				gc.drawLine(0, 0, 0, s.y - 1);
-			else
-				gc.drawLine(s.x - 1, 0, s.x - 1, s.y - 1);
-		}
-	}
-
-	protected void drawArrow(GC gc, int[] sashLoc, boolean selected) {
-		int indent = 0;
-		if (selected) {
-			if (!inMouseClick) {
-				// Draw the selection box.
-				Color highlightShadow = getDisplay().getSystemColor(SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW);
-				Color normalShadow = getDisplay().getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);
-				gc.setForeground(highlightShadow);
-				gc.drawLine(sashLoc[X_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX], sashLoc[X_INDEX], sashLoc[Y_INDEX]);
-				gc.drawLine(sashLoc[X_INDEX], sashLoc[Y_INDEX], sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX]);
-
-				gc.setForeground(normalShadow);
-				gc.drawLine(sashLoc[X_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX], sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX]);
-				gc.drawLine(sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX], sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX]);
-			} else {
-				// Draw pushed selection box.
-				indent = 1;
-				Color highlightShadow = getDisplay().getSystemColor(SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW);
-				Color normalShadow = getDisplay().getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);
-				gc.setForeground(normalShadow);
-				gc.drawLine(sashLoc[X_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX], sashLoc[X_INDEX], sashLoc[Y_INDEX]);
-				gc.drawLine(sashLoc[X_INDEX], sashLoc[Y_INDEX], sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX]);
-
-				gc.setForeground(highlightShadow);
-				gc.drawLine(sashLoc[X_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX], sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX]);
-				gc.drawLine(sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX], sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX]);
-			}
-		}
-		if (getOrientation() == SWT.VERTICAL) {
-			switch (sashLoc[ARROW_DRAWN_INDEX]) {
-			case UP_ARROW:
-				drawUpArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
-				break;
-			case DOWN_ARROW:
-				drawDownArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
-				break;
-			case UP_MAX_ARROW:
-				drawUpMaxArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
-				break;
-			case DOWN_MAX_ARROW:
-				drawDownMaxArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
-				break;
-			}
-		} else {
-			switch (sashLoc[ARROW_DRAWN_INDEX]) {
-			case UP_ARROW:
-				drawLeftArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
-				break;
-			case DOWN_ARROW:
-				drawRightArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
-				break;
-			case UP_MAX_ARROW:
-				drawLeftMaxArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
-				break;
-			case DOWN_MAX_ARROW:
-				drawRightMaxArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
-				break;
-			}
-		}
-	}
-
-	// These are for the up/down arrow. Just swap them for left/right arrow.
-	protected static final int ARROW_SIZE = 8, ARROW_HEIGHT = 8, ARROW_MARGIN = 3; // Margin on each side of arrow
-
-	protected Color arrowColor, borderColor;
-
-	// Draw at the given x/y (upper left corner of arrow area).
-	protected void drawUpArrow(GC gc, int x, int y) {
-		gc.setForeground(arrowColor);
-
-		x += ARROW_MARGIN;
-		gc.drawLine(x + 4, y + 2, x + 7, y + 5);
-		gc.drawLine(x + 3, y + 2, x + 3, y + 2);
-
-		gc.drawLine(x + 2, y + 3, x + 4, y + 3);
-		gc.drawLine(x + 1, y + 4, x + 5, y + 4);
-		gc.drawLine(x, y + 5, x + 6, y + 5);
-	}
-
-	// Draw at the given x/y (upper left corner of arrow area).
-	protected void drawUpMaxArrow(GC gc, int x, int y) {
-		gc.setForeground(arrowColor);
-
-		x += ARROW_MARGIN;
-		gc.drawLine(x, y, x + 7, y);
-		gc.drawLine(x, y + 1, x + 7, y + 1);
-
-		gc.drawLine(x + 4, y + 2, x + 7, y + 5);
-		gc.drawLine(x + 3, y + 2, x + 3, y + 2);
-
-		gc.drawLine(x + 2, y + 3, x + 4, y + 3);
-		gc.drawLine(x + 1, y + 4, x + 5, y + 4);
-		gc.drawLine(x, y + 5, x + 6, y + 5);
-	}
-
-	// Draw at the given x/y (upper left corner of arrow area).
-	protected void drawDownArrow(GC gc, int x, int y) {
-		gc.setForeground(arrowColor);
-
-		x += ARROW_MARGIN;
-		gc.drawLine(x, y + 2, x + 3, y + 5);
-		gc.drawLine(x + 4, y + 5, x + 4, y + 5);
-
-		gc.drawLine(x + 3, y + 4, x + 5, y + 4);
-		gc.drawLine(x + 1, y + 3, x + 6, y + 3);
-		gc.drawLine(x + 1, y + 2, x + 7, y + 2);
-	}
-
-	// Draw at the given x/y (upper left corner of arrow area).
-	protected void drawDownMaxArrow(GC gc, int x, int y) {
-		gc.setForeground(arrowColor);
-
-		x += ARROW_MARGIN;
-		gc.drawLine(x, y + 6, x + 7, y + 6);
-		gc.drawLine(x, y + 7, x + 7, y + 7);
-
-		gc.drawLine(x, y + 2, x + 3, y + 5);
-		gc.drawLine(x + 4, y + 5, x + 4, y + 5);
-
-		gc.drawLine(x + 3, y + 4, x + 5, y + 4);
-		gc.drawLine(x + 1, y + 3, x + 6, y + 3);
-		gc.drawLine(x + 1, y + 2, x + 7, y + 2);
-	}
-
-	// Draw at the given x/y (upper left corner of arrow area).
-	protected void drawLeftArrow(GC gc, int x, int y) {
-		gc.setForeground(arrowColor);
-
-		y += ARROW_MARGIN;
-		gc.drawLine(x + 2, y + 4, x + 5, y + 7);
-		gc.drawLine(x + 2, y + 3, x + 2, y + 3);
-
-		gc.drawLine(x + 3, y + 2, x + 3, y + 4);
-		gc.drawLine(x + 4, y + 1, x + 4, y + 5);
-		gc.drawLine(x + 5, y, x + 5, y + 6);
-	}
-
-	// Draw at the given x/y (upper left corner of arrow area).
-	protected void drawLeftMaxArrow(GC gc, int x, int y) {
-		gc.setForeground(arrowColor);
-
-		y += ARROW_MARGIN;
-		gc.drawLine(x, y, x, y + 7);
-		gc.drawLine(x + 1, y, x + 1, y + 7);
-
-		gc.drawLine(x + 2, y + 4, x + 5, y + 7);
-		gc.drawLine(x + 2, y + 3, x + 2, y + 3);
-
-		gc.drawLine(x + 3, y + 2, x + 3, y + 4);
-		gc.drawLine(x + 4, y + 1, x + 4, y + 5);
-		gc.drawLine(x + 5, y, x + 5, y + 6);
-	}
-
-	// Draw at the given x/y (upper left corner of arrow area).
-	protected void drawRightArrow(GC gc, int x, int y) {
-		gc.setForeground(arrowColor);
-
-		y += ARROW_MARGIN;
-		gc.drawLine(x + 2, y, x + 5, y + 3);
-		gc.drawLine(x + 5, y + 4, x + 5, y + 4);
-
-		gc.drawLine(x + 4, y + 3, x + 4, y + 5);
-		gc.drawLine(x + 3, y + 1, x + 3, y + 6);
-		gc.drawLine(x + 2, y + 1, x + 2, y + 7);
-	}
-
-	// Draw at the given x/y (upper left corner of arrow area).
-	protected void drawRightMaxArrow(GC gc, int x, int y) {
-		gc.setForeground(arrowColor);
-
-		y += ARROW_MARGIN;
-		gc.drawLine(x + 6, y, x + 6, y + 7);
-		gc.drawLine(x + 7, y, x + 7, y + 7);
-
-		gc.drawLine(x + 2, y, x + 5, y + 3);
-		gc.drawLine(x + 5, y + 4, x + 5, y + 4);
-
-		gc.drawLine(x + 4, y + 3, x + 4, y + 5);
-		gc.drawLine(x + 3, y + 1, x + 3, y + 6);
-		gc.drawLine(x + 2, y + 1, x + 2, y + 7);
-	}
-
-	public int getSavedWeight() {
-		if (currentSashInfo != null)
-			return currentSashInfo.weight;
-		else
-			return -1;
-	}
-
-	protected Sash getSash() {
-		Control[] kids = getChildren();
-		for (int i = 0; i < kids.length; i++) {
-			if (kids[i] instanceof Sash)
-				return (Sash) kids[i];
-		}
-		return null;
-	}
-
-	public void setCurrentSavedWeight(int weight) {
-		if (weight >= 0 && currentSashInfo != null) {
-			recomputeSashInfo();
-			currentSashInfo.weight = weight;
-		}
-	}
-
-	/**
-	 * Adds a custom sashform listener. This listener will be removed when this control is disposed.
-	 * 
-	 * @param listener
-	 * 
-	 * @since 1.2.0
-	 */
-	public void addCustomSashFormListener(ICustomSashFormListener listener) {
-		if (customSashFormListeners == null)
-			customSashFormListeners = new ArrayList();
-		customSashFormListeners.add(listener);
-	}
-
-	/**
-	 * Removes the custom sashform listener.
-	 * 
-	 * @param listener
-	 * 
-	 * @since 1.2.0
-	 */
-	public void removeCustomSashFormListener(ICustomSashFormListener listener) {
-		if (customSashFormListeners != null) {
-			customSashFormListeners.remove(listener);
-		}
-	}
-
-	protected void fireDividerMoved() {
-		if (customSashFormListeners != null && customSashFormListeners.size() > 0) {
-			int[] weights = getWeights();
-			if (weights != null && weights.length == 2) {
-				int firstControlWeight = weights[0];
-				int secondControlWeight = weights[1];
-				for (Iterator listenerItr = customSashFormListeners.iterator(); listenerItr.hasNext();) {
-					ICustomSashFormListener listener = (ICustomSashFormListener) listenerItr.next();
-					listener.dividerMoved(firstControlWeight, secondControlWeight);
-				}
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/dialogs/IntArrayDialog.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/dialogs/IntArrayDialog.java
deleted file mode 100755
index 7f8d28c..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/dialogs/IntArrayDialog.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.dialogs;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Spinner;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class IntArrayDialog extends Dialog {
-
-	private int[] initValue;
-	private String[] titles;
-	private int[] result;
-
-	public IntArrayDialog(Shell parent, int[] initValue, String[] titles) {
-		super(parent);
-		this.initValue = initValue;
-		this.titles = titles;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createDialogArea(Composite parent) {
-		Composite composite = (Composite) super.createDialogArea(parent);
-		composite.setLayout(new GridLayout(3, false));
-		result = new int[titles.length];
-		if (initValue != null) {
-			System.arraycopy(initValue, 0, result, 0, Math.min(initValue.length, titles.length));
-		}
-		for (int i = 0; i < titles.length; i++) {
-			createItem(composite, titles[i], i);
-		}
-		return composite;
-	}
-
-	protected Spinner createItem(Composite parent, String title, final int index) {
-		Label label = new Label(parent, SWT.NONE);
-		label.setText(title);
-
-		final Spinner spinner = new Spinner(parent, SWT.BORDER);
-		spinner.setMaximum(9999);// set max before set selection.
-		spinner.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		spinner.setSelection(result[index]);
-		spinner.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event event) {
-				result[index] = spinner.getSelection();
-			}
-		});
-
-		label = new Label(parent, SWT.NONE);
-		label.setText("pixels");
-		return spinner;
-	}
-
-	public int[] getResult() {
-		return result;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/AbstractRenderer.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/AbstractRenderer.java
deleted file mode 100755
index 02d0d12..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/AbstractRenderer.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public abstract class AbstractRenderer implements IVisualRenderer {
-
-	private IFile file;
-	private EObject document;
-
-	public AbstractRenderer(IFile file, EObject document) {
-		this.file = file;
-		this.document = document;
-	}
-
-	public IFile getFile() {
-		return file;
-	}
-
-	public EObject getDocumentRoot() {
-		return document;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/ActionGroup.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/ActionGroup.java
deleted file mode 100755
index f38f589..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/ActionGroup.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.gef.ui.actions.ActionRegistry;
-import org.eclipse.gef.ui.actions.DeleteAction;
-import org.eclipse.gef.ui.actions.RedoAction;
-import org.eclipse.gef.ui.actions.SelectAllAction;
-import org.eclipse.gef.ui.actions.UndoAction;
-import org.eclipse.gef.ui.actions.UpdateAction;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.swt.SWT;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.ISelectionService;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ActionGroup {
-
-	public static final int SELECTION_GRP = 0;
-	public static final int PROPERTY_GRP = 1;
-	public static final int STACK_GRP = 2;
-
-	private IEditorPart editor;
-	private ActionRegistry actionRegistry;
-	private List<String> selectionActions = new ArrayList<String>();
-	private List<String> stackActions = new ArrayList<String>();
-	private List<String> propertyActions = new ArrayList<String>();
-
-	public ActionGroup(IEditorPart editor) {
-		this.editor = editor;
-	}
-
-	/**
-	 * @return the actionRegistry
-	 */
-	public ActionRegistry getActionRegistry() {
-		if (actionRegistry == null) {
-			actionRegistry = (ActionRegistry) editor.getAdapter(ActionRegistry.class);
-		}
-		return actionRegistry;
-	}
-
-	public void createActions() {
-		IAction action;
-
-		action = new UndoAction(editor);
-		action.setText("&Undo \tCTRL+Z");
-		getActionRegistry().registerAction(action);
-		getStackActions().add(action.getId());
-
-		action = new RedoAction(editor);
-		action.setText("&Redo \tCTRL+Y");
-		getActionRegistry().registerAction(action);
-		getStackActions().add(action.getId());
-
-		action = new SelectAllAction(editor);
-		getActionRegistry().registerAction(action);
-
-		DeleteAction deleteAction = new DeleteAction((IWorkbenchPart) editor);
-		deleteAction.setAccelerator(Integer.valueOf(SWT.DEL));
-		getActionRegistry().registerAction(deleteAction);
-		getSelectionActions().add(deleteAction.getId());
-	}
-
-	/**
-	 * Returns the list of <em>IDs</em> of Actions that are dependant on changes in the workbench's {@link ISelectionService}. The associated Actions can be found in the action registry. Such actions should implement the {@link UpdateAction} interface so that they can be updated in response to selection changes.
-	 * 
-	 * @see #updateActions(List)
-	 * @return the list of selection-dependant action IDs
-	 */
-	protected List<String> getSelectionActions() {
-		return selectionActions;
-	}
-
-	/**
-	 * Returns the list of {@link IAction IActions} dependant on property changes in the Editor. These actions should implement the {@link UpdateAction} interface so that they can be updated in response to property changes. An example is the "Save" action.
-	 * 
-	 * @return the list of property-dependant actions
-	 */
-	protected List<String> getPropertyActions() {
-		return propertyActions;
-	}
-
-	/**
-	 * Returns the list of <em>IDs</em> of Actions that are dependant on the CommmandStack's state. The associated Actions can be found in the action registry. These actions should implement the {@link UpdateAction} interface so that they can be updated in response to command stack changes. An example is the "undo" action.
-	 * 
-	 * @return the list of stack-dependant action IDs
-	 */
-	protected List<String> getStackActions() {
-		return stackActions;
-	}
-
-	public void updateActions(int gourp) {
-		switch (gourp) {
-		case SELECTION_GRP:
-			updateActions(selectionActions);
-			break;
-		case PROPERTY_GRP:
-			updateActions(propertyActions);
-			break;
-		case STACK_GRP:
-			updateActions(stackActions);
-			break;
-		}
-	}
-
-	/**
-	 * A convenience method for updating a set of actions defined by the given List of action IDs. The actions are found by looking up the ID in the {@link #getActionRegistry() action registry}. If the corresponding action is an {@link UpdateAction}, it will have its <code>update()</code> method called.
-	 * 
-	 * @param actionIds
-	 *            the list of IDs to update
-	 */
-	protected void updateActions(List<String> actionIds) {
-		ActionRegistry registry = getActionRegistry();
-		for (String actionId : actionIds) {
-			IAction action = registry.getAction(actionId);
-			if (action instanceof UpdateAction) {
-				((UpdateAction) action).update();
-				if (action instanceof RedoAction) {
-					RedoAction redoAction = (RedoAction) action;
-					String text = redoAction.getText();
-					if (!text.endsWith("\tCtrl+Y")) {
-						if (text.endsWith("Ctrl+Y")) {
-							text = text.substring(0, text.length() - 6);
-						}
-						redoAction.setText(text + "\tCtrl+Y");					
-					}
-				}
-				else if (action instanceof UndoAction) {
-					UndoAction undoAction = (UndoAction) action;
-					String text = undoAction.getText();
-					if (!text.endsWith("\tCtrl+Z")) {
-						if (text.endsWith("Ctrl+Z")) {
-							text = text.substring(0, text.length() - 6);
-						}
-						undoAction.setText(text + "\tCtrl+Z");					
-					}
-				}
-			}
-		}
-	}
-
-	public Action getAction(String actionId) {
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/Designer.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/Designer.java
deleted file mode 100755
index 2392baa..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/Designer.java
+++ /dev/null
@@ -1,1098 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor;
-
-import java.lang.reflect.Field;
-import java.util.EventObject;
-import java.util.Iterator;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.xwt.tools.ui.palette.page.ContributePalettePage;
-import org.eclipse.xwt.tools.ui.palette.page.CustomPalettePage;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gef.ContextMenuProvider;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartFactory;
-import org.eclipse.gef.EditPartViewer;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.GraphicalViewer;
-import org.eclipse.gef.KeyHandler;
-import org.eclipse.gef.KeyStroke;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.gef.commands.CommandStackListener;
-import org.eclipse.gef.ui.actions.ActionRegistry;
-import org.eclipse.gef.ui.actions.GEFActionConstants;
-import org.eclipse.gef.ui.actions.SelectionAction;
-import org.eclipse.gef.ui.parts.GraphicalViewerKeyHandler;
-import org.eclipse.gef.ui.parts.ScrollingGraphicalViewer;
-import org.eclipse.gef.ui.views.palette.PalettePage;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRewriteTarget;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.custom.ViewForm;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DropTarget;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.editors.text.TextFileDocumentProvider;
-import org.eclipse.ui.part.MultiPageEditorPart;
-import org.eclipse.ui.part.MultiPageEditorSite;
-import org.eclipse.ui.progress.UIJob;
-import org.eclipse.ui.texteditor.IDocumentProvider;
-import org.eclipse.ui.texteditor.ITextEditorActionConstants;
-import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.ui.views.properties.PropertySheetPage;
-import org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument;
-import org.eclipse.wst.sse.core.internal.text.JobSafeStructuredDocument;
-import org.eclipse.wst.sse.core.internal.undo.StructuredTextUndoManager;
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.eclipse.wst.xml.core.internal.provisional.contenttype.ContentTypeIdForXML;
-import org.eclipse.xwt.tools.ui.designer.core.DesignerPlugin;
-import org.eclipse.xwt.tools.ui.designer.core.component.CustomSashForm;
-import org.eclipse.xwt.tools.ui.designer.core.editor.IVisualRenderer.Result;
-import org.eclipse.xwt.tools.ui.designer.core.editor.commandstack.CombinedCommandStack;
-import org.eclipse.xwt.tools.ui.designer.core.editor.dnd.DropContext;
-import org.eclipse.xwt.tools.ui.designer.core.editor.dnd.DropTargetAdapter;
-import org.eclipse.xwt.tools.ui.designer.core.editor.dnd.GraphicalViewerDropCreationListener;
-import org.eclipse.xwt.tools.ui.designer.core.editor.dnd.palette.PaletteDropAdapter;
-import org.eclipse.xwt.tools.ui.designer.core.editor.outline.DesignerOutlinePage;
-import org.eclipse.xwt.tools.ui.designer.core.editor.text.StructuredTextHelper;
-import org.eclipse.xwt.tools.ui.designer.core.model.IModelBuilder;
-import org.eclipse.xwt.tools.ui.designer.core.model.ModelChangeListener;
-import org.eclipse.xwt.tools.ui.designer.core.parts.RefreshContext;
-import org.eclipse.xwt.tools.ui.designer.core.parts.root.DesignerRootEditPart;
-import org.eclipse.xwt.tools.ui.designer.core.problems.ConfigurableProblemHandler;
-import org.eclipse.xwt.tools.ui.designer.core.problems.ProblemHandler;
-import org.eclipse.xwt.tools.ui.designer.core.util.DisplayUtil;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-@SuppressWarnings("restriction")
-public abstract class Designer extends MultiPageEditorPart implements
-		ISelectionChangedListener, CommandStackListener {
-
-	public static final String DESIGNER_INPUT = "DESIGNER INPUT";
-	public static final String DESIGNER_TEXT_EDITOR = "DESIGNER TEXT EDITOR";
-	public static final String DEFAULT_DESIGNER_CONTEXT_MENU_ID = "#DesignerContext"; //$NON-NLS-1$
-
-	// UI editor.
-	protected CustomSashForm pageContainer;
-	private CustomPalettePage palettePage;
-	private IPropertySheetPage propertyPage;
-	private DesignerOutlinePage outlinePage;
-	private ProblemHandler problemHandler;
-
-	// GEF editor.
-	private GraphicalViewer graphicalViewer;
-	private EditDomain editDomain;
-	private ISelectionSynchronizer selectionSynchronizer;
-	private ActionRegistry actionRegistry;
-	private ActionGroup actionGroup;
-
-	// Source editor.
-	private StructuredTextEditor fTextEditor;
-	private IPropertyListener fPropertyListener;
-	private DropTargetAdapter dropListener;
-
-	private EObject documentRoot;
-	private IVisualRenderer visualsRender;
-
-	private CombinedCommandStack commandStack = new CombinedCommandStack();
-
-	private IModelBuilder modelBuilder;
-	private boolean installed = false;
-	private ModelChangeListener modelBuilderListener;
-	protected Display display;
-	private LoadingFigureController loadingFigureController;
-
-	private EditPartFactory editPartFactory;
-
-	private KeyHandler fSharedKeyHandler;
-
-	private Refresher refresher;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ui.part.MultiPageEditorPart#init(org.eclipse.ui.IEditorSite,
-	 * org.eclipse.ui.IEditorInput)
-	 */
-	public void init(IEditorSite site, IEditorInput input)
-			throws PartInitException {
-		super.init(site, input);
-		site.setSelectionProvider(null);// clear multi-page selection provider.
-		display = site.getShell().getDisplay();
-		loadingFigureController = new LoadingFigureController();
-		editDomain = new EditDomain(this);
-		editDomain.setCommandStack(commandStack.getCommandStack4GEF());
-		setPartName(input.getName());
-		getEditDomain().setData(DESIGNER_INPUT, input);
-		getCommandStack().getCommandStack4GEF().addCommandStackListener(this);
-		createActions();
-		configureActions();
-
-		refresher = new Refresher(display);
-	}
-
-	public Refresher getRefresher() {
-		return refresher;
-	}
-
-	protected void configureActions() {
-		actionGroup.updateActions(ActionGroup.PROPERTY_GRP);
-		actionGroup.updateActions(ActionGroup.STACK_GRP);
-
-		if (graphicalViewer != null) {
-			Iterator<?> actions = getActionRegistry().getActions();
-			while (actions.hasNext()) {
-				Object object = (Object) actions.next();
-				if (object instanceof SelectionAction) {
-					((SelectionAction) object)
-							.setSelectionProvider(graphicalViewer);
-				}
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.MultiPageEditorPart#setFocus()
-	 */
-	public void setFocus() {
-		if (graphicalViewer != null && graphicalViewer.getControl() != null) {
-			graphicalViewer.getControl().setFocus();
-		}
-		super.setFocus();
-	}
-
-	private void dispatchModelEvent(final Notification event) {
-		if (event.isTouch() || !installed) {
-			return;
-		}
-		if (display != null && display.getThread() == Thread.currentThread()) {
-			performModelChanged(event);
-		} else if (display != null) {
-			DisplayUtil.asyncExec(display, new Runnable() {
-				public void run() {
-					performModelChanged(event);
-				}
-			});
-		}
-	}
-
-	protected void performModelChanged(Notification event) {
-		if (visualsRender == null || event.isTouch()) {
-			return;
-		}
-		Result result;
-		try {
-			result = getVisualsRender().refreshVisuals(event);
-		} catch (RuntimeException e) {
-			return;
-		}
-		if (result == null || !result.refreshed) {
-			return;
-		}
-		EditPart toRefresh = null;
-		Object notifier = result.visuals;
-		// When the eventType is ADD, we need to refresh all children.
-		if (notifier == null) {
-			toRefresh = getGraphicalViewer().getRootEditPart();
-		} else {
-			toRefresh = getEditPart(notifier);
-			if (toRefresh == null) {
-				while (notifier != null && notifier instanceof EObject) {
-					Object parentNode = ((EObject) notifier).eContainer();
-					while (getEditPart(parentNode) != null) {
-						toRefresh = getEditPart(parentNode).getParent();
-						break;
-					}
-					notifier = parentNode;
-				}
-			}
-		}
-		if (toRefresh == null) {
-			return;
-		}
-		refresher.refreshInJob(toRefresh);
-
-		getOutlinePage().refresh(toRefresh);
-
-		// highlight changed one.
-		if (toRefresh.isSelectable()) {
-			graphicalViewer.setSelection(new StructuredSelection(toRefresh));
-		}
-	}
-
-	public void refresh(EditPart editPart, RefreshContext context) {
-		refresher.refresh(editPart, context);
-		getOutlinePage().refresh(editPart);
-	}
-
-	public EditPart getEditPart(Object model) {
-		return (EditPart) graphicalViewer.getEditPartRegistry().get(model);
-	}
-
-	private void setDocumentRoot(EObject document) {
-		this.documentRoot = document;
-	}
-
-	public EObject getDocumentRoot() {
-		return documentRoot;
-	}
-
-	/**
-	 * Start loading models.
-	 */
-	private void tryToLoadModels() {
-		loadingFigureController.showLoadingFigure(true);
-		loadingFigureController.startListener(getGraphicalViewer());
-		UIJob setupJob = new UIJob("Setup") {
-			public IStatus runInUIThread(IProgressMonitor monitor) {
-				if (modelBuilder.doLoad(Designer.this, monitor)) {
-					setDocumentRoot(modelBuilder.getDiagram());
-				}
-				if (!isDisposed()) {
-					try {
-						setupGraphicalViewer();
-					} catch (Exception e) {
-						// TODO Auto-generated catch block
-						e.printStackTrace();
-					}
-				}
-				return Status.OK_STATUS;
-			}
-		};
-		setupJob.setDisplay(display);
-		setupJob.setPriority(Job.SHORT);
-		final IModelBuilder modelBuilder = getModelBuilder();
-		if (getDocument() != null && modelBuilder != null) {
-			setupJob.schedule();
-		}
-	}
-
-	protected void runWithDialog(IRunnableWithProgress runnable) {
-		try {
-			ProgressMonitorDialog d = new ProgressMonitorDialog(getSite()
-					.getShell());
-			d.run(true, false, runnable);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	protected void setupGraphicalViewer() {
-		IVisualRenderer vr = getVisualsRender();
-		if (vr != null) {
-			vr.createVisuals();
-			getEditDomain().setViewerData(getGraphicalViewer(),
-					IVisualRenderer.KEY, vr);
-		}
-		setContent(getDocumentRoot());
-		loadingFigureController.showLoadingFigure(false);
-
-		installed = true;
-	}
-
-	protected void setContent(EObject diagram) {
-		GraphicalViewer graphicalViewer = getGraphicalViewer();
-		if (graphicalViewer != null) {
-			EditPart diagramEp = getDiagramEditPart();
-			graphicalViewer.setContents(diagramEp);
-			if (diagramEp != null) {
-				refresher.refreshAsynchronous(diagramEp);
-			}
-		}
-
-		DesignerOutlinePage outlinePage = getOutlinePage();
-		if (outlinePage != null) {
-			outlinePage.setContents(diagram);
-		}
-	}
-
-	public IVisualRenderer getVisualsRender() {
-		if (visualsRender == null) {
-			visualsRender = createVisualsRender();
-		}
-		return visualsRender;
-	}
-
-	/**
-	 * @return
-	 */
-	private EditPart getDiagramEditPart() {
-		return getEditPartFactory().createEditPart(
-				getGraphicalViewer().getRootEditPart(), getDocumentRoot());
-	}
-
-	public GraphicalViewer getGraphicalViewer() {
-		return graphicalViewer;
-	}
-
-	protected synchronized boolean isDisposed() {
-		return editDomain == null;
-	}
-
-	public IFile getFile() {
-		IEditorInput editorInput = getEditorInput();
-		return (IFile) editorInput.getAdapter(IFile.class);
-	}
-
-	/**
-	 * @return the modelBuilder
-	 */
-	public IModelBuilder getModelBuilder() {
-		if (modelBuilder == null) {
-			modelBuilder = createModelBuilder();
-		}
-		if (modelBuilderListener == null) {
-			modelBuilderListener = new ModelChangeListener() {
-				public void notifyChanged(final Notification event) {
-					dispatchModelEvent(event);
-				}
-			};
-		}
-		if (!modelBuilder.hasListener(modelBuilderListener)) {
-			modelBuilder.addModelListener(modelBuilderListener);
-		}
-		return modelBuilder;
-	}
-
-	protected abstract IModelBuilder createModelBuilder();
-
-	/**
-	 * Initialize and create actions.
-	 */
-	protected void createActions() {
-		if (actionGroup == null) {
-			actionGroup = new ActionGroup(this);
-		}
-		actionGroup.createActions();
-	}
-
-	/**
-	 * Lazily creates and returns the action registry.
-	 * 
-	 * @return the action registry
-	 */
-	public ActionRegistry getActionRegistry() {
-		if (actionRegistry == null)
-			actionRegistry = new ActionRegistry();
-		return actionRegistry;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ui.part.MultiPageEditorPart#createPageContainer(org.eclipse
-	 * .swt.widgets.Composite)
-	 */
-	protected Composite createPageContainer(Composite parent) {
-		ViewForm diagramPart = new ViewForm(parent, SWT.FLAT);
-
-		ToolBar toolBar = createToolBar(diagramPart);
-		if (toolBar != null && !toolBar.isDisposed()) {
-			diagramPart.setTopLeft(toolBar);
-		}
-
-		pageContainer = new CustomSashForm(diagramPart, SWT.VERTICAL);
-		pageContainer.setBackgroundMode(SWT.INHERIT_DEFAULT);
-		createGraphicalViewer(pageContainer);
-		diagramPart.setContent(pageContainer);
-		return pageContainer;
-	}
-
-	protected boolean isEditable() {
-		return true;
-	}
-
-	/**
-	 * Create Graphical Viewer for GEF Editor.
-	 * 
-	 * @param parent
-	 */
-	private void createGraphicalViewer(Composite parent) {
-		graphicalViewer = new ScrollingGraphicalViewer();
-		graphicalViewer.createControl(parent);
-		graphicalViewer.getControl().setBackground(
-				ColorConstants.listBackground);
-		configureGraphicalViewer();
-	}
-
-	/**
-	 * Configure GraphicalViewer
-	 */
-	protected void configureGraphicalViewer() {
-		graphicalViewer.addSelectionChangedListener(this);
-		editDomain.addViewer(graphicalViewer);
-
-		getSite().setSelectionProvider(graphicalViewer);
-		getSelectionSynchronizer().addProvider(graphicalViewer);
-
-		graphicalViewer.setEditPartFactory(getEditPartFactory());
-		ContextMenuProvider menuProvider = createMenuProvider(graphicalViewer,
-				getActionRegistry());
-		if (menuProvider != null) {
-			graphicalViewer.setContextMenu(menuProvider);
-			menuProvider.setRemoveAllWhenShown(true);
-			getSite()
-					.registerContextMenu(
-							getClass().getSimpleName() + ".contextMenu", menuProvider, graphicalViewer); //$NON-NLS-1$
-		}
-
-		DesignerRootEditPart rootEditPart = new DesignerRootEditPart();
-		graphicalViewer.setRootEditPart(rootEditPart);
-
-		graphicalViewer.setKeyHandler(new GraphicalViewerKeyHandler(
-				graphicalViewer).setParent(getCommonKeyHandler()));
-
-		setupGraphicalViewerDropCreation(graphicalViewer);
-
-		Iterator<?> actions = getActionRegistry().getActions();
-		while (actions.hasNext()) {
-			Object object = (Object) actions.next();
-			if (object instanceof SelectionAction) {
-				((SelectionAction) object)
-						.setSelectionProvider(graphicalViewer);
-			}
-		}
-	}
-
-	protected void setupGraphicalViewerDropCreation(GraphicalViewer viewer) {
-		viewer.addDropTargetListener(new GraphicalViewerDropCreationListener(
-				viewer));
-	}
-
-	/**
-	 * Returns the KeyHandler with common bindings for both the Outline and
-	 * Graphical Views. For example, delete is a common action.
-	 */
-	protected KeyHandler getCommonKeyHandler() {
-		if (fSharedKeyHandler == null) {
-			fSharedKeyHandler = new KeyHandler();
-			fSharedKeyHandler
-					.put(KeyStroke.getPressed(SWT.DEL, SWT.DEL, 0),
-							getActionRegistry().getAction(
-									ActionFactory.DELETE.getId()));
-			fSharedKeyHandler.put(KeyStroke.getPressed(SWT.F2, 0),
-					getActionRegistry().getAction(
-							GEFActionConstants.DIRECT_EDIT));
-		}
-		return fSharedKeyHandler;
-	}
-
-	protected ContextMenuProvider createMenuProvider(EditPartViewer viewer,
-			ActionRegistry actionRegistry) {
-		return new DesignerMenuProvider(viewer, actionRegistry);
-	}
-
-	/**
-	 * Returns the selection syncronizer object. The synchronizer can be used to
-	 * sync the selection of 2 or more EditPartViewers.
-	 * 
-	 * @return
-	 */
-	public ISelectionSynchronizer getSelectionSynchronizer() {
-		if (selectionSynchronizer == null) {
-			selectionSynchronizer = createSelectionSynchronizer();
-		}
-		return selectionSynchronizer;
-	}
-
-	protected ISelectionSynchronizer createSelectionSynchronizer() {
-		return new SelectionSynchronizer();
-	}
-
-	/**
-	 * Create a ToolBar for editor with global actions.
-	 * 
-	 * @param parent
-	 * @return
-	 */
-	protected ToolBar createToolBar(Composite parent) {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.MultiPageEditorPart#createPages()
-	 */
-	protected void createPages() {
-		createSourcePage();
-		createExternalPages();
-
-		updateContainer();
-	}
-
-	/**
-	 * Update TabFolder.
-	 */
-	private void updateContainer() {
-		Composite container = getContainer();
-		if (container == null || !(container instanceof CTabFolder)) {
-			return;
-		}
-		CTabFolder tabFolder = (CTabFolder) container;
-		tabFolder.setTabPosition(SWT.TOP);
-		tabFolder.setSimple(false);
-		ToolBar toolBar = new ToolBar(tabFolder, SWT.FLAT | SWT.WRAP
-				| SWT.RIGHT);
-		configureContainerToolBar(toolBar);
-		tabFolder.setTopRight(toolBar);
-		tabFolder.setTabHeight(Math.max(toolBar.computeSize(SWT.DEFAULT,
-				SWT.DEFAULT).y, tabFolder.getTabHeight()));
-	}
-
-	/**
-	 * ToolBar of container, it is really at the middle of the editor.
-	 */
-	protected void configureContainerToolBar(ToolBar toolBar) {
-
-	}
-
-	protected void createExternalPages() {
-
-	}
-
-	/**
-	 * Create and add a StructuredTextEditor as a Source Page.
-	 */
-	private void createSourcePage() {
-		// Subclass of StructuredTextEditor is not allowed.
-		fTextEditor = new StructuredTextEditor();
-		final StructuredTextUndoManager undoManager = new StructuredTextUndoManager(
-				commandStack);
-		TextFileDocumentProvider provider = new TextFileDocumentProvider() {
-			public IDocument getDocument(Object element) {
-				JobSafeStructuredDocument document = (JobSafeStructuredDocument) super
-						.getDocument(element);
-				if (document != null) {
-					try {
-						Field fUndoManager = BasicStructuredDocument.class
-								.getDeclaredField("fUndoManager");
-						fUndoManager.setAccessible(true);
-						Object object = fUndoManager.get(document);
-						if (object != null && object != undoManager) {
-							fUndoManager.set(document, null);
-							document.setUndoManager(undoManager);
-						} else if (object == null) {
-							document.setUndoManager(undoManager);
-						}
-					} catch (Exception e) {
-						DesignerPlugin.logError(e);
-					}
-				}
-				return document;
-			}
-		};
-		fTextEditor.initializeDocumentProvider(provider);
-		fTextEditor.setEditorPart(this);
-		if (fPropertyListener == null) {
-			fPropertyListener = new PropertyListener();
-		}
-		fTextEditor.addPropertyListener(fPropertyListener);
-		try {
-			int fSourcePageIndex = addPage(fTextEditor, getEditorInput());
-			setPageText(fSourcePageIndex, "Source");
-			firePropertyChange(PROP_TITLE);
-			tryToLoadModels();
-		} catch (PartInitException e) {
-			e.printStackTrace();
-		}
-		SourceSelectionProvider selectionProvider = new SourceSelectionProvider(
-				this, fTextEditor);
-		getSelectionSynchronizer().addProvider(selectionProvider);
-		fTextEditor.setAction(ITextEditorActionConstants.DELETE, null);
-		if (pageContainer != null) {
-			pageContainer.setWeights(new int[] { 1, 1 });
-		}
-		configureTextEditor();
-	}
-
-	protected IEditorSite createSite(IEditorPart editor) {
-		IEditorSite site = null;
-		if (editor == fTextEditor) {
-			site = new MultiPageEditorSite(this, editor) {
-
-				public String getId() {
-					// sets this id so nested editor is considered xml source
-					// page
-					return ContentTypeIdForXML.ContentTypeID_XML + ".source"; //$NON-NLS-1$;
-				}
-			};
-		} else {
-			site = super.createSite(editor);
-		}
-		return site;
-	}
-
-	/**
-	 * Configure Text Editor,
-	 */
-	protected void configureTextEditor() {
-		if (getPalettePage() == null) {
-			return;
-		}
-		if (dropListener == null) {
-			dropListener = new DropTargetAdapter();
-			DropContext dropContext = getDropContext();
-			if (dropContext != null) {
-				dropListener.addDropAdapter(new PaletteDropAdapter(this,
-						dropContext));
-			}
-		}
-		StyledText styledText = getTextWidget();
-		if (styledText == null || dropListener == null) {
-			return;
-		}
-		DropTarget dropTarget = (DropTarget) styledText
-				.getData(DND.DROP_TARGET_KEY);
-		if (dropTarget != null) {
-			dropTarget.removeDropListener(dropListener);
-			dropTarget.dispose();
-		}
-
-		dropTarget = new DropTarget(styledText, DND.DROP_MOVE | DND.DROP_COPY);
-		dropTarget.setTransfer(new Transfer[] { getPalettePage()
-				.getPaletteTransfer() });
-		dropTarget.addDropListener(dropListener);
-
-		styledText.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				StyledText styledText = (StyledText) e.widget;
-				DropTarget dropTarget = (DropTarget) styledText
-						.getData(DND.DROP_TARGET_KEY);
-				if (dropTarget != null) {
-					dropTarget.removeDropListener(dropListener);
-				}
-			}
-		});
-
-		getProblemHandler().handle();
-	}
-
-	public void format() {
-		StructuredTextViewer textViewer = getTextViewer();
-		if (textViewer != null
-				&& textViewer
-						.canDoOperation(StructuredTextViewer.FORMAT_DOCUMENT)) {
-			textViewer.doOperation(StructuredTextViewer.FORMAT_DOCUMENT);
-		} else if (getDocument() != null) {
-			StructuredTextHelper.format(getDocument());
-		}
-	}
-
-	public void formatWithCompound(Runnable runnable) {
-		if (runnable == null) {
-			format();
-			return;
-		}
-		StructuredTextViewer textViewer = getTextViewer();
-		if (textViewer == null) {
-			runnable.run();
-			return;
-		}
-		IRewriteTarget rewriteTarget = textViewer.getRewriteTarget();
-		if (rewriteTarget != null) {
-			rewriteTarget.beginCompoundChange();
-		}
-		runnable.run();
-		format();
-		if (rewriteTarget != null) {
-			rewriteTarget.endCompoundChange();
-		}
-	}
-
-	public StyledText getTextWidget() {
-		if (getTextViewer() != null) {
-			return getTextViewer().getTextWidget();
-		}
-		return null;
-	}
-
-	public StructuredTextViewer getTextViewer() {
-		if (fTextEditor != null) {
-			return fTextEditor.getTextViewer();
-		}
-		return null;
-	}
-
-	public IDocument getDocument() {
-		IDocument document = null;
-		if (fTextEditor != null) {
-			IDocumentProvider documentProvider = fTextEditor
-					.getDocumentProvider();
-			IEditorInput editorInput = fTextEditor.getEditorInput();
-			if (documentProvider == null || editorInput == null) {
-				return null;
-			}
-			document = documentProvider.getDocument(editorInput);
-		}
-		return document;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.
-	 * IProgressMonitor)
-	 */
-	public void doSave(IProgressMonitor monitor) {
-		fTextEditor.doSave(monitor);
-		if (modelBuilder != null) {
-			modelBuilder.doSave(monitor);
-		}
-		// getCommandStack().flush();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.EditorPart#doSaveAs()
-	 */
-	public void doSaveAs() {
-		fTextEditor.doSaveAs();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.MultiPageEditorPart#dispose()
-	 */
-	public void dispose() {
-		getModelBuilder().removeModelListener(modelBuilderListener);
-		getModelBuilder().dispose();
-		getCommandStack().getCommandStack4GEF()
-				.removeCommandStackListener(this);
-		getCommandStack().flush();
-		getGraphicalViewer().removeSelectionChangedListener(this);
-		if (modelBuilder != null) {
-			modelBuilder.dispose();
-		}
-		if (visualsRender != null) {
-			visualsRender.dispose();
-		}
-		fSharedKeyHandler = null;
-		getActionRegistry().dispose();
-		getProblemHandler().clear();
-		super.dispose();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.MultiPageEditorPart#getAdapter(java.lang.Class)
-	 */
-	public Object getAdapter(Class adapter) {
-		if (ActionRegistry.class == adapter) {
-			return getActionRegistry();
-		} else if (org.eclipse.gef.EditDomain.class.isAssignableFrom(adapter)) {
-			return getEditDomain();
-		} else if (PalettePage.class.isAssignableFrom(adapter)) {
-			return getPalettePage();
-		} else if (CommandStack.class == adapter) {
-			return getCommandStack().getCommandStack4GEF();
-		} else if (GraphicalViewer.class == adapter) {
-			return getGraphicalViewer();
-		} else if (adapter == IPropertySheetPage.class) {
-			return getPropertySheetPage();
-		} else if (adapter == IContentOutlinePage.class) {
-			return getOutlinePage();
-		} else if (adapter == ProblemHandler.class) {
-			return getProblemHandler();
-		} else if (adapter == EditPart.class && getGraphicalViewer() != null) {
-			return getGraphicalViewer().getRootEditPart();
-		} else if (adapter == IFigure.class && getGraphicalViewer() != null) {
-			return ((GraphicalEditPart) getGraphicalViewer().getRootEditPart())
-					.getFigure();
-		} else if (adapter == IProject.class) {
-			return getProject();
-		} else if (adapter == IFile.class) {
-			return getFile();
-		}
-		return super.getAdapter(adapter);
-	}
-
-	public ProblemHandler getProblemHandler() {
-		if (problemHandler == null) {
-			problemHandler = new ConfigurableProblemHandler(this);
-		}
-		return problemHandler;
-	}
-
-	/**
-	 * @return
-	 */
-	protected DesignerOutlinePage getOutlinePage() {
-		if (outlinePage == null) {
-			outlinePage = createOutlinePage();
-			if (outlinePage != null) {
-				getSelectionSynchronizer().addProvider(
-						outlinePage.getTreeViewer());
-			}
-		}
-		return outlinePage;
-	}
-
-	protected abstract DesignerOutlinePage createOutlinePage();
-
-	public IPropertySheetPage getPropertySheetPage() {
-		if (propertyPage == null || propertyPage.getControl() == null
-				|| propertyPage.getControl().isDisposed()) {
-			propertyPage = createPropertyPage();
-		}
-		return propertyPage;
-	}
-
-	protected IPropertySheetPage createPropertyPage() {
-		return new PropertySheetPage();
-	}
-
-	/**
-	 * @return
-	 */
-	private CustomPalettePage getPalettePage() {
-		if (palettePage == null) {
-			palettePage = new ContributePalettePage(this, editDomain);
-		}
-		return palettePage;
-	}
-
-	public CombinedCommandStack getCommandStack() {
-		return commandStack;
-	}
-
-	/**
-	 * @return the editDomain
-	 */
-	public EditDomain getEditDomain() {
-		return editDomain;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
-	 */
-	public boolean isSaveAsAllowed() {
-		return fTextEditor.isSaveAsAllowed();
-	}
-
-	protected EditPart convert(EditPartViewer viewer, EditPart part) {
-		Object temp = viewer.getEditPartRegistry().get(part.getModel());
-		EditPart newPart = null;
-		if (temp != null) {
-			newPart = (EditPart) temp;
-		}
-		return newPart;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(
-	 * org.eclipse.jface.viewers.SelectionChangedEvent)
-	 */
-	public final void selectionChanged(SelectionChangedEvent event) {
-		Object source = event.getSource();
-		if (source == null) {
-			return;
-		}
-		while (Display.getDefault().readAndDispatch())
-			;
-		IEditorPart activeEditor = getSite().getPage().getActiveEditor();
-		if (Designer.this.equals(activeEditor)) {
-			performSelectionChanged(event);
-		}
-	}
-
-	/**
-	 * Perform Selection event.
-	 * 
-	 * @param event
-	 */
-	protected void performSelectionChanged(SelectionChangedEvent event) {
-		IStructuredSelection selection = (IStructuredSelection) event
-				.getSelection();
-		if (selection.isEmpty()) {
-			return;
-		}
-		DisplayUtil.asyncExec(new Runnable() {
-			public void run() {
-				if (actionGroup != null) {
-					actionGroup.updateActions(ActionGroup.SELECTION_GRP);
-				}
-				ActionRegistry actionRegistry = getActionRegistry();
-				Iterator<?> actions = actionRegistry.getActions();
-				while (actions.hasNext()) {
-					Object object = (Object) actions.next();
-					if (object instanceof SelectionAction) {
-						((SelectionAction) object).update();
-					}
-				}
-			}
-		});
-	}
-
-	public void gotoDefinition(EObject node) {
-		EditPart editPart = getEditPart(node);
-		if (editPart != null) {
-			graphicalViewer.setSelection(new StructuredSelection(editPart));
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.commands.CommandStackListener#commandStackChanged(java
-	 * .util.EventObject)
-	 */
-	public void commandStackChanged(EventObject event) {
-		if (actionGroup != null) {
-			actionGroup.updateActions(ActionGroup.STACK_GRP);
-		}
-	}
-
-	public StructuredTextEditor getTextEditor() {
-		return fTextEditor;
-	}
-
-	/*
-	 * This method is just to make firePropertyChanged accessible from some
-	 * (anonomous) inner classes.
-	 */
-	void _firePropertyChange(int property) {
-		super.firePropertyChange(property);
-	}
-
-	public IProject getProject() {
-		return getFile().getProject();
-	}
-
-	/**
-	 * EditPart Factory.
-	 * 
-	 * @return
-	 */
-	public EditPartFactory getEditPartFactory() {
-		if (editPartFactory == null) {
-			editPartFactory = createEditPartFactory();
-		}
-		return editPartFactory;
-	}
-
-	protected abstract EditPartFactory createEditPartFactory();
-
-	protected abstract IVisualRenderer createVisualsRender();
-
-	/**
-	 * DropContext.
-	 * 
-	 * @return
-	 */
-	protected abstract DropContext getDropContext();
-
-	/**
-	 * Internal IPropertyListener
-	 */
-	class PropertyListener implements IPropertyListener {
-		public void propertyChanged(Object source, int propId) {
-			switch (propId) {
-			// had to implement input changed "listener" so that
-			// StructuredTextEditor could tell it containing editor that
-			// the input has change, when a 'resource moved' event is
-			// found.
-			case IEditorPart.PROP_INPUT: {
-			}
-			case IEditorPart.PROP_DIRTY: {
-				if (source == getTextEditor()) {
-					if (getTextEditor().getEditorInput() != getEditorInput()) {
-						setInput(getTextEditor().getEditorInput());
-						/*
-						 * title should always change when input changes. create
-						 * runnable for following post call
-						 */
-						Runnable runnable = new Runnable() {
-							public void run() {
-								_firePropertyChange(IWorkbenchPart.PROP_TITLE);
-							}
-						};
-						/*
-						 * Update is just to post things on the display queue
-						 * (thread). We have to do this to get the dirty
-						 * property to get updated after other things on the
-						 * queue are executed.
-						 */
-						((Control) getTextEditor().getAdapter(Control.class))
-								.getDisplay().asyncExec(runnable);
-					}
-				}
-				break;
-			}
-			case IWorkbenchPart.PROP_TITLE: {
-				// update the input if the title is changed
-				if (source == getTextEditor()) {
-					if (getTextEditor().getEditorInput() != getEditorInput()) {
-						setInput(getTextEditor().getEditorInput());
-					}
-				}
-				break;
-			}
-			default: {
-				// propagate changes. Is this needed? Answer: Yes.
-				if (source == getTextEditor()) {
-					_firePropertyChange(propId);
-				}
-				break;
-			}
-			}
-
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/DesignerActionBarContributor.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/DesignerActionBarContributor.java
deleted file mode 100755
index 8420c0f..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/DesignerActionBarContributor.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor;
-
-import org.eclipse.gef.ui.actions.ActionBarContributor;
-import org.eclipse.gef.ui.actions.DeleteRetargetAction;
-import org.eclipse.gef.ui.actions.RedoRetargetAction;
-import org.eclipse.gef.ui.actions.UndoRetargetAction;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.ui.actions.ActionFactory;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class DesignerActionBarContributor extends ActionBarContributor {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.ui.actions.ActionBarContributor#buildActions()
-	 */
-	protected void buildActions() {
-		addRetargetAction(new UndoRetargetAction());
-		addRetargetAction(new RedoRetargetAction());
-		addRetargetAction(new DeleteRetargetAction());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.ui.actions.ActionBarContributor#declareGlobalActionKeys()
-	 */
-	protected void declareGlobalActionKeys() {
-
-	}
-
-	public void contributeToToolBar(IToolBarManager tbm) {
-		tbm.add(getAction(ActionFactory.UNDO.getId()));
-		tbm.add(getAction(ActionFactory.REDO.getId()));
-		tbm.add(getAction(ActionFactory.DELETE.getId()));
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/DesignerActionConstants.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/DesignerActionConstants.java
deleted file mode 100755
index 112711c..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/DesignerActionConstants.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor;
-
-public final class DesignerActionConstants {
-	public static final String UNDO = "group.undo";
-	public static final String CUT = "group.cut";
-	public static final String COPY = "group.copy";
-	public static final String PASTE = "group.paste";
-	public static final String EDIT = "group.edit";
-	public static final String PRINT = "group.print";
-	public static final String ACTIONS = "group.actions";
-	public static final String ADDITIONS = "group.additions";
-	public static final String DELETE = "group.delete";
-	public static final String BINDINGS = "group.nindings";
-	public static final String REFACTORING = "group.refactoring";
-
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/DesignerMenuProvider.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/DesignerMenuProvider.java
deleted file mode 100755
index 64501cb..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/DesignerMenuProvider.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor;
-
-import org.eclipse.gef.ContextMenuProvider;
-import org.eclipse.gef.EditPartViewer;
-import org.eclipse.gef.ui.actions.ActionRegistry;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.ui.actions.ActionFactory;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class DesignerMenuProvider extends ContextMenuProvider {
-
-	private ActionRegistry actionRegistry;
-
-	public DesignerMenuProvider(EditPartViewer viewer,
-			ActionRegistry actionRegistry) {
-		super(viewer);
-		this.actionRegistry = actionRegistry;
-	}
-
-	public ActionRegistry getActionRegistry() {
-		return actionRegistry;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.gef.ContextMenuProvider#menuAboutToShow(org.eclipse.jface.action.IMenuManager)
-	 */
-	public void menuAboutToShow(IMenuManager menu) {
-		menu.add(new Separator(DesignerActionConstants.UNDO));
-		menu.add(new Separator(DesignerActionConstants.DELETE));
-		menu.add(new Separator(DesignerActionConstants.PRINT));
-		menu.add(new Separator(DesignerActionConstants.COPY));
-		menu.add(new Separator(DesignerActionConstants.EDIT));
-		menu.add(new Separator(DesignerActionConstants.ACTIONS));
-		menu.add(new Separator(DesignerActionConstants.ADDITIONS));
-		super.menuAboutToShow(menu);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.gef.ContextMenuProvider#buildContextMenu(org.eclipse.jface.action.IMenuManager)
-	 */
-	public void buildContextMenu(IMenuManager menu) {
-		ActionRegistry actionRegistry = getActionRegistry();
-		IAction action = actionRegistry.getAction(ActionFactory.REDO.getId());
-		if (action != null) {
-			menu.appendToGroup(DesignerActionConstants.UNDO, action);
-		}
-		action = actionRegistry.getAction(ActionFactory.UNDO.getId());
-		if (action != null) {
-			menu.appendToGroup(DesignerActionConstants.UNDO, action);
-		}
-		action = actionRegistry.getAction(ActionFactory.DELETE.getId());
-		if (action != null) {
-			menu.appendToGroup(DesignerActionConstants.DELETE, action);
-		}
-		action = actionRegistry.getAction(ActionFactory.COPY.getId());
-		if (action != null) {
-			menu.appendToGroup(DesignerActionConstants.COPY, action);
-		}
-		action = actionRegistry.getAction(ActionFactory.PASTE.getId());
-		if (action != null) {
-			menu.appendToGroup(DesignerActionConstants.COPY, action);
-		}
-		action = actionRegistry.getAction(ActionFactory.CUT.getId());
-		if (action != null) {
-			menu.appendToGroup(DesignerActionConstants.COPY, action);
-		}
-		action = actionRegistry.getAction(ActionFactory.SELECT_ALL.getId());
-		if (action != null) {
-			menu.appendToGroup(DesignerActionConstants.EDIT, action);
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/EditDomain.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/EditDomain.java
deleted file mode 100755
index a0c2c56..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/EditDomain.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.gef.DefaultEditDomain;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartViewer;
-import org.eclipse.gef.GraphicalViewer;
-import org.eclipse.ui.IEditorPart;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class EditDomain extends DefaultEditDomain {
-
-	private Map<Object, Map<Object, Object>> viewerData;
-	private Map<Object, Object> domainData;
-
-	private List<EditPartViewer> viewers = new ArrayList<EditPartViewer>();
-
-	/**
-	 * @param editorPart
-	 */
-	public EditDomain(IEditorPart editorPart) {
-		super(editorPart);
-	}
-
-	public void addViewer(EditPartViewer viewer) {
-		super.addViewer(viewer);
-		if (!viewers.contains(viewer)) {
-			viewers.add(viewer);
-		}
-	}
-
-	public void removeViewer(EditPartViewer viewer) {
-		super.removeViewer(viewer);
-		viewers.remove(viewer);
-	}
-
-	public List<EditPartViewer> getViewers() {
-		return viewers;
-	}
-
-	/**
-	 * @param graphicalViewer
-	 * @param key
-	 * @param zoomController
-	 */
-	public void setViewerData(GraphicalViewer viewer, Object key, Object data) {
-		if (viewerData == null)
-			viewerData = new HashMap<Object, Map<Object, Object>>(3);
-
-		HashMap<Object, Object> vdata = (HashMap<Object, Object>) viewerData.get(viewer);
-		if (vdata == null)
-			viewerData.put(viewer, vdata = new HashMap<Object, Object>(3));
-		vdata.put(key, data);
-	}
-
-	/**
-	 * Get the data for the specified key for a particular viewer. Return null if the key is not set.
-	 */
-	public Object getViewerData(EditPartViewer viewer, Object key) {
-		if (viewerData != null) {
-			HashMap<Object, Object> data = (HashMap<Object, Object>) viewerData.get(viewer);
-			if (data != null)
-				return data.get(key);
-		}
-		return null;
-	}
-
-	public void setData(Object key, Object data) {
-		if (domainData == null) {
-			domainData = new HashMap<Object, Object>();
-		}
-		domainData.put(key, data);
-	}
-
-	public Object getData(Object key) {
-		if (domainData == null) {
-			return null;
-		}
-		return domainData.get(key);
-	}
-
-	public static EditDomain getEditDomain(EditPart ep) {
-		if (ep != null) {
-			EditPartViewer viewer = ep.getViewer();
-			if (viewer == null ){
-				return null;
-			}
-			return (EditDomain) viewer.getEditDomain();
-		}
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/ISelectionSynchronizer.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/ISelectionSynchronizer.java
deleted file mode 100755
index 05c2cd5..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/ISelectionSynchronizer.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor;
-
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-
-public interface ISelectionSynchronizer {
-
-	/**
-	 * Adds a provider to the set of synchronized providers.
-	 * 
-	 * @param provider
-	 *            the provider
-	 */
-	public abstract void addProvider(ISelectionProvider provider);
-
-	/**
-	 * Removes the provider from the set of synchronized providers
-	 * 
-	 * @param provider
-	 *            the provider to remove
-	 */
-	public abstract void removeProvider(ISelectionProvider provider);
-
-	/**
-	 * Receives notification from one provider, and maps selection to all other
-	 * members.
-	 * 
-	 * @param event
-	 *            the selection event
-	 */
-	public abstract void selectionChanged(SelectionChangedEvent event);
-
-	/**
-	 * Enables or disabled synchronization between viewers.
-	 * 
-	 * @since 3.1
-	 * @param value
-	 *            <code>true</code> if synchronization should occur
-	 */
-	public abstract void setEnabled(boolean value);
-
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/IVisualFactory.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/IVisualFactory.java
deleted file mode 100755
index 72eb3f6..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/IVisualFactory.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public interface IVisualFactory {
-
-	Object getVisual(EObject model);
-
-	Object getVisual(EObject model, boolean loadOnDemand);
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/IVisualRenderer.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/IVisualRenderer.java
deleted file mode 100755
index 412da1d..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/IVisualRenderer.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public interface IVisualRenderer extends IVisualFactory {
-
-	/**
-	 * Key value of the render.
-	 */
-	String KEY = "org.eclipse.e4.tools.ui.designer.editor.VisualsRender";
-
-	/**
-	 * Create all visuals when the document is loaded.
-	 * 
-	 * @return TODO
-	 */
-	Result createVisuals();
-
-	/**
-	 * Return the notify component, so that the we can get an correct editpart to refresh.
-	 * 
-	 * @param source
-	 * @return
-	 */
-	Result refreshVisuals(Object source);
-
-	/**
-	 * Dispose at the end.
-	 */
-	void dispose();
-
-	/**
-	 * Return the host class name.
-	 * 
-	 * @return
-	 */
-	String getHostClassName();
-
-	/**
-	 * Return the root component.
-	 */
-	Object getRoot();
-
-	public class Result {
-		public Object visuals;
-		public boolean refreshed = false;
-
-		public Result(Object visuals) {
-			this.visuals = visuals;
-		}
-
-		public Result(Object visuals, boolean refreshed) {
-			this(visuals);
-			this.refreshed = refreshed;
-		}
-
-		public boolean isRefreshed() {
-			return refreshed && visuals != null;
-		}
-
-		public static Result NONE = new Result(null, false);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/LoadingFigureController.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/LoadingFigureController.java
deleted file mode 100755
index 1639916..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/LoadingFigureController.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-
-import org.eclipse.draw2d.FigureListener;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.Layer;
-import org.eclipse.draw2d.Locator;
-import org.eclipse.draw2d.RangeModel;
-import org.eclipse.draw2d.SimpleEtchedBorder;
-import org.eclipse.draw2d.Viewport;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Insets;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.GraphicalViewer;
-import org.eclipse.gef.LayerConstants;
-import org.eclipse.gef.editparts.LayerManager;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class LoadingFigureController {
-	protected static final Insets INSETS = new Insets(10, 25, 10, 25);
-
-	protected GraphicalViewer viewer;
-	protected Label loadingFigure;
-	protected boolean showingLoadingFigure = true;
-
-	public IFigure getRootFigure(IFigure target) {
-		IFigure parent = target.getParent();
-		while (parent.getParent() != null)
-			parent = parent.getParent();
-		return parent;
-	}
-
-	/**
-	 * Call when we have a viewer to actually work with. At this point in time we can now display the current loading status.
-	 * 
-	 * This allows us to start listening before we have a viewer. This should only be called once.
-	 */
-	public void startListener(GraphicalViewer viewer) {
-		this.viewer = viewer;
-		loadingFigure = new Label("Loading...") {
-			Locator locator = new Locator() {
-				public void relocate(IFigure target) {
-					// Center the figure in the middle of the canvas
-					Dimension canvasSize = getRootFigure(target).getSize();
-					Dimension prefSize = target.getPreferredSize();
-					int newX = (canvasSize.width - prefSize.width) / 2;
-					int newY = (canvasSize.height - prefSize.height) / 2;
-					Rectangle b = new Rectangle(newX, newY, prefSize.width, prefSize.height).expand(INSETS);
-					target.translateToRelative(b);
-					target.setBounds(b);
-				}
-			};
-
-			public void validate() {
-				if (!isValid())
-					locator.relocate(this);
-				super.validate();
-			}
-		};
-		loadingFigure.setEnabled(true);
-		loadingFigure.setOpaque(true);
-		loadingFigure.setBorder(SimpleEtchedBorder.singleton);
-		if (showingLoadingFigure)
-			showLoadingFigure();
-	}
-
-	public void showLoadingFigure(boolean show) {
-		if (show) {
-			if (!showingLoadingFigure)
-				showLoadingFigure();
-		} else if (showingLoadingFigure)
-			removeLoadingFigure();
-	}
-
-	protected Layer getLoadingLayer() {
-		return (Layer) LayerManager.Helper.find(viewer.getRootEditPart()).getLayer(LayerConstants.HANDLE_LAYER);
-	}
-
-	private FigureListener rootFigureListener = new FigureListener() {
-		public void figureMoved(IFigure source) {
-			loadingFigure.revalidate();
-		}
-	};
-
-	private PropertyChangeListener scrolledListener = new PropertyChangeListener() {
-		public void propertyChange(PropertyChangeEvent evt) {
-			if (RangeModel.PROPERTY_VALUE.equals(evt.getPropertyName()))
-				loadingFigure.revalidate(); // Scrollbar has moved, so revalidate.
-		}
-
-	};
-
-	protected void removeLoadingFigure() {
-		showingLoadingFigure = false;
-		if (viewer != null) {
-			Layer layer = getLoadingLayer();
-			if (layer.getChildren().contains(loadingFigure)) {
-				layer.remove(loadingFigure);
-			}
-			Viewport vp = getViewport(layer);
-			if (vp != null) {
-				vp.getHorizontalRangeModel().removePropertyChangeListener(scrolledListener);
-				vp.getVerticalRangeModel().removePropertyChangeListener(scrolledListener);
-			}
-			getRootFigure(layer).removeFigureListener(rootFigureListener);
-		}
-	}
-
-	protected Viewport getViewport(IFigure figure) {
-		IFigure f = figure;
-		while (f != null && !(f instanceof Viewport))
-			f = f.getParent();
-		return (Viewport) f;
-	}
-
-	protected void showLoadingFigure() {
-		showingLoadingFigure = true;
-		if (viewer != null) {
-			Layer layer = getLoadingLayer();
-			layer.add(loadingFigure);
-			Viewport vp = getViewport(layer);
-			if (vp != null) {
-				vp.getHorizontalRangeModel().addPropertyChangeListener(scrolledListener);
-				vp.getVerticalRangeModel().addPropertyChangeListener(scrolledListener);
-			}
-			getRootFigure(layer).addFigureListener(rootFigureListener);
-			loadingFigure.revalidate();
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/Refresher.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/Refresher.java
deleted file mode 100755
index aa1bf40..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/Refresher.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.gef.EditPart;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.xwt.tools.ui.designer.core.parts.RefreshContext;
-import org.eclipse.xwt.tools.ui.designer.core.parts.VisualEditPart;
-import org.eclipse.xwt.tools.ui.designer.core.util.DisplayUtil;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public class Refresher {
-	static int TIMEOUT = 300;
-
-	private Display display;
-	private InternalJob job;
-
-	public Refresher(Display uiDisplay) {
-		this.display = uiDisplay;
-	}
-
-	public void refresh(EditPart editPart, RefreshContext context) {
-		if (editPart == null) {
-			return;
-		}
-		try {
-			if (editPart instanceof VisualEditPart) {
-				((VisualEditPart) editPart).refresh(context);
-			} 
-			else {
-				editPart.refresh();
-			}
-			List<?> children = editPart.getChildren();
-			for (Object object : children) {
-				refresh((EditPart) object, context);
-			}
-		} catch (Exception e) {
-		}
-	}
-
-	public void refreshAsynchronous(final EditPart editPart) {
-		if (editPart == null) {
-			return;
-		}
-		DisplayUtil.asyncExec(getDisplay(), new Runnable() {
-			public void run() {
-				refresh(editPart, RefreshContext.ALL());
-			}
-		});
-	}
-
-	public void refreshInJob(EditPart editPart) {
-		if (editPart == null) {
-			return;
-		}
-		if (job == null) {
-			job = new InternalJob();
-		}
-		job.refresh(editPart);
-	}
-
-	private Display getDisplay() {
-		if (display == null) {
-			display = Display.getCurrent();
-		}
-		return display;
-	}
-
-	class InternalJob extends Job {
-
-		private long timestamp = -1;
-
-		private Set<EditPart> refreshList;
-
-		public InternalJob() {
-			super("Refresh Job");
-		}
-
-		private boolean isPosterity(EditPart parent, EditPart child) {
-			if (parent == null || child == null) {
-				return false;
-			}
-			EditPart childParent = child.getParent();
-			if (parent == childParent) {
-				return true;
-			}
-			return isPosterity(parent, childParent);
-		}
-
-		private synchronized void refresh(EditPart editPart) {
-			if (refreshList == null) {
-				refreshList = new HashSet<EditPart>();
-			}
-			refreshList.add(editPart);
-			if (timestamp == -1) {
-				schedule(TIMEOUT);// waiting other more jobs.
-			}
-			timestamp = System.currentTimeMillis();
-		}
-
-		protected IStatus run(IProgressMonitor monitor) {
-			synchronized (refreshList) {
-				long localTimestamp = System.currentTimeMillis();
-				if (localTimestamp - timestamp < TIMEOUT) {
-					schedule(TIMEOUT);
-					timestamp = localTimestamp;
-					return Status.OK_STATUS;
-				}
-
-				List<EditPart> parts = new ArrayList<EditPart>();
-				List<EditPart> doingJobs = new ArrayList<EditPart>(refreshList);
-				try {
-					for (EditPart ep : doingJobs) {
-						if (parts.isEmpty()) {
-							parts.add(ep);
-						} else {
-							boolean contains = false;
-							for (EditPart editPart : parts) {
-								if (isPosterity(editPart, ep)) {
-									contains = true;
-									break;
-								}
-							}
-							if (contains) {
-								continue;
-							}
-							for (Iterator<EditPart> iterator = parts.iterator(); iterator
-									.hasNext();) {
-								EditPart editPart = iterator.next();
-								if (isPosterity(ep, editPart)) {
-									iterator.remove();
-								}
-							}
-							parts.add(ep);
-						}
-					}
-				} finally {
-					refreshList.removeAll(doingJobs);
-				}
-				if (!parts.isEmpty()) {
-					for (EditPart ep : parts) {
-						try {
-							refreshAsynchronous(ep);
-						} catch (Exception e) {
-						}
-					}
-				}
-				if (!refreshList.isEmpty()) {
-					schedule(TIMEOUT);
-					timestamp = System.currentTimeMillis();
-					return Status.OK_STATUS;
-				}
-			}
-			timestamp = -1;
-			return Status.OK_STATUS;
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/SelectionSynchronizer.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/SelectionSynchronizer.java
deleted file mode 100755
index adfd999..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/SelectionSynchronizer.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartViewer;
-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.StructuredSelection;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public class SelectionSynchronizer implements ISelectionChangedListener,
-		ISelectionSynchronizer {
-
-	private List<ISelectionProvider> providers = new ArrayList<ISelectionProvider>();
-	private boolean isDispatching = false;
-	private int disabled = 0;
-	private ISelectionProvider pendingSelection;
-
-	public void addProvider(ISelectionProvider provider) {
-		provider.addSelectionChangedListener(this);
-		providers.add(provider);
-	}
-
-	/**
-	 * Maps the given editpart from one viewer to an editpart in another viewer.
-	 * It returns <code>null</code> if there is no corresponding part. This
-	 * method can be overridden to provide custom mapping.
-	 * 
-	 * @param provider
-	 *            the viewer being mapped to
-	 * @param part
-	 *            a part from another viewer
-	 * @return <code>null</code> or a corresponding editpart
-	 */
-	protected EditPart convert(ISelectionProvider provider, EditPart part) {
-		if (provider instanceof EditPartViewer) {
-			return (EditPart) ((EditPartViewer) provider).getEditPartRegistry()
-					.get(part.getModel());
-		}
-		return part;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.xwt.tools.ui.designer.core.editor.ISelectionSynchronizer
-	 * #removeViewer(org.eclipse.jface.viewers.ISelectionProvider)
-	 */
-	public void removeProvider(ISelectionProvider viewer) {
-		viewer.removeSelectionChangedListener(this);
-		providers.remove(viewer);
-		if (pendingSelection == viewer)
-			pendingSelection = null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.xwt.tools.ui.designer.core.editor.ISelectionSynchronizer
-	 * #selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
-	 */
-	public void selectionChanged(SelectionChangedEvent event) {
-		if (isDispatching)
-			return;
-		ISelectionProvider source = event.getSelectionProvider();
-		if (disabled > 0) {
-			pendingSelection = source;
-		} else {
-			ISelection selection = event.getSelection();
-			syncSelection(source, selection);
-		}
-	}
-
-	private void syncSelection(ISelectionProvider source, ISelection selection) {
-		isDispatching = true;
-		for (int i = 0; i < providers.size(); i++) {
-			if (providers.get(i) != source) {
-				ISelectionProvider viewer = providers.get(i);
-				setViewerSelection(source, viewer, selection);
-			}
-		}
-		isDispatching = false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.xwt.tools.ui.designer.core.editor.ISelectionSynchronizer
-	 * #setEnabled(boolean)
-	 */
-	public void setEnabled(boolean value) {
-		if (!value)
-			disabled++;
-		else if (--disabled == 0 && pendingSelection != null) {
-			syncSelection(pendingSelection, pendingSelection.getSelection());
-			pendingSelection = null;
-		}
-	}
-
-	protected void setViewerSelection(ISelectionProvider source,
-			ISelectionProvider viewer, ISelection selection) {
-		ArrayList<EditPart> result = new ArrayList<EditPart>();
-		Iterator<?> iter = ((IStructuredSelection) selection).iterator();
-		while (iter.hasNext()) {
-			EditPart part = convert(viewer, (EditPart) iter.next());
-			if (part != null)
-				result.add(part);
-		}
-		viewer.setSelection(new StructuredSelection(result));
-		if (result.size() > 0) {
-			if (viewer instanceof EditPartViewer) {
-				((EditPartViewer) viewer).reveal((EditPart) result.get(result
-						.size() - 1));
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/SourceSelectionProvider.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/SourceSelectionProvider.java
deleted file mode 100755
index 3c5039a..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/SourceSelectionProvider.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gef.EditPart;
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.jface.util.SafeRunnable;
-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.StructuredSelection;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public class SourceSelectionProvider implements ISelectionProvider {
-
-	private Designer designer;
-	private StructuredTextEditor textEditor;
-	private List<ISelectionChangedListener> listeners;
-	private IStructuredSelection fSelection;
-
-	public SourceSelectionProvider(Designer designer,
-			StructuredTextEditor textEditor) {
-		this.designer = designer;
-		this.textEditor = textEditor;
-		ISelectionProvider selectionProvider = textEditor
-				.getSelectionProvider();
-		if (selectionProvider != null) {
-			selectionProvider
-					.addSelectionChangedListener(new ISelectionChangedListener() {
-						public void selectionChanged(SelectionChangedEvent event) {
-							Object selection = event.getSelection();
-							if (selection instanceof TextSelection) {
-								TextSelection textSelection = (TextSelection) selection;
-								if (textSelection.getOffset() == 0) {
-									return;
-								}
-							}
-							handleTextSelection(event);
-						}
-					});
-		}
-	}
-
-	private List getSelectedNodes() {
-		ISelection selection = textEditor.getSelectionProvider().getSelection();
-		if (selection instanceof IStructuredSelection) {
-			return ((IStructuredSelection) selection).toList();
-		}
-		return null;
-	}
-
-	protected void handleTextSelection(SelectionChangedEvent event) {
-		List selectedNodes = getSelectedNodes();
-		if (selectedNodes == null || selectedNodes.isEmpty()) {
-			return;
-		}
-		fSelection = null;
-		if (selectedNodes != null && !selectedNodes.isEmpty()) {
-			List<EditPart> editParts = new ArrayList<EditPart>();
-			for (Object object : selectedNodes) {
-				EObject model = designer.getModelBuilder().getModel(object);
-				if (model == null) {
-					continue;
-				}
-				// EditPart ep = designer.getEditPart(model);
-				// if (ep == null) {
-					continue;
-				// }
-				// editParts.add(ep);
-			}
-			if (!editParts.isEmpty()) {
-				fSelection = new StructuredSelection(editParts);
-			}
-		}
-		if (fSelection == null) {
-			return;
-		}
-		final SelectionChangedEvent newEvent = new SelectionChangedEvent(this,
-				fSelection);
-		for (int i = 0; i < listeners.size(); ++i) {
-			final ISelectionChangedListener l = (ISelectionChangedListener) listeners
-					.get(i);
-			SafeRunner.run(new SafeRunnable() {
-				public void run() {
-					l.selectionChanged(newEvent);
-				}
-			});
-		}
-	}
-
-	public void addSelectionChangedListener(ISelectionChangedListener listener) {
-		if (listeners == null) {
-			listeners = new ArrayList<ISelectionChangedListener>();
-		}
-		listeners.add(listener);
-	}
-
-	public ISelection getSelection() {
-		return fSelection;
-	}
-
-	public void removeSelectionChangedListener(
-			ISelectionChangedListener listener) {
-		if (listeners != null) {
-			listeners.remove(listener);
-		}
-	}
-
-	public void setSelection(ISelection selection) {
-		// 1. highlight TextEditor.
-		StructuredTextViewer textViewer = textEditor.getTextViewer();
-		StyledText styledText = textViewer.getTextWidget();
-		if (Display.getDefault().getFocusControl() == styledText) {
-			return;
-		}
-
-		List newSelection = new ArrayList();
-		Object[] array = ((IStructuredSelection) selection).toArray();
-		for (Object object : array) {
-			if (object instanceof EditPart) {
-				EditPart editPart = (EditPart) object;
-				Object model = editPart.getModel();
-				if (model instanceof EObject) {
-					EObject node = (EObject) model;
-					IDOMNode textNode = designer.getModelBuilder().getTextNode(
-							node);
-					if (textNode != null) {
-						newSelection.add(textNode);
-					}
-				}
-			}
-		}
-		List selectedNodes = getSelectedNodes();
-		if (selectedNodes != null && selectedNodes.containsAll(newSelection)
-				&& newSelection.containsAll(selectedNodes)) {
-			return;
-		}
-		String content = styledText.getText();
-		int startOffset = -1;
-		int endOffset = 0;
-		for (Object object : newSelection) {
-			IDOMNode textNode = (IDOMNode) object;
-			int nodeStartOffset = textNode.getStartOffset();
-			int nodeEndOffset = textNode.getEndOffset();
-			if (startOffset == -1) {
-				startOffset = nodeStartOffset;
-				endOffset = nodeEndOffset;
-			} else {
-				if (nodeStartOffset > startOffset) {
-					if (nodeStartOffset < endOffset) {
-						continue;
-					}
-					String segment = content.substring(endOffset,
-							nodeStartOffset).trim();
-					if (segment.length() == 0) {
-						endOffset = nodeEndOffset;
-					} else {
-						startOffset = 0;
-						endOffset = 0;
-						break;
-					}
-				} else {
-					if (nodeEndOffset > startOffset) {
-						continue;
-					}
-					String segment = content.substring(nodeEndOffset,
-							startOffset).trim();
-					if (segment.length() == 0) {
-						startOffset = nodeStartOffset;
-					} else {
-						startOffset = 0;
-						endOffset = 0;
-						break;
-					}
-
-				}
-			}
-		}
-		if (startOffset == -1) {
-			startOffset = 0;
-		}
-		int length = endOffset - startOffset;
-
-		textViewer.setRangeIndication(startOffset, length, false);
-		textEditor.selectAndReveal(startOffset, length);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/commandstack/CombinedCommandStack.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/commandstack/CombinedCommandStack.java
deleted file mode 100755
index 7e17261..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/commandstack/CombinedCommandStack.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor.commandstack;
-
-import java.util.ArrayList;
-import java.util.EventObject;
-import java.util.List;
-
-import org.eclipse.emf.common.command.BasicCommandStack;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.gef.commands.CommandStackListener;
-
-/**
- * A combined CommandStack which combine GEF CommandStack and EMF CommandStack together.
- * 
- * @author jliu (jin.liu@soyatec.com)
- */
-public class CombinedCommandStack extends BasicCommandStack {
-
-	private boolean stopped;
-	private final List<Object> stackListeners;
-	private GEFCommandStack gefCommandStack = new GEFCommandStack();
-
-	public CombinedCommandStack() {
-		stackListeners = new ArrayList<Object>();
-	}
-
-	public CommandStack getCommandStack4GEF() {
-		return gefCommandStack;
-	}
-
-	public void addCommandStackListener(org.eclipse.emf.common.command.CommandStackListener listener) {
-		stackListeners.add(listener);
-	}
-
-	public void removeCommandStackListener(org.eclipse.emf.common.command.CommandStackListener listener) {
-		stackListeners.remove(listener);
-	}
-
-	protected void notifyListeners() {
-		for (Object listener : stackListeners) {
-			if (listener instanceof CommandStackListener) {
-				((CommandStackListener) listener).commandStackChanged(new EventObject(gefCommandStack));
-			} else if (listener instanceof org.eclipse.emf.common.command.CommandStackListener) {
-				((org.eclipse.emf.common.command.CommandStackListener) listener).commandStackChanged(new EventObject(this));
-			}
-		}
-	}
-
-	/**
-	 * Introduced a <code>stopped</code> argument, which is use to prevent adding coming command to redo/undo command list.
-	 */
-	public void execute(org.eclipse.emf.common.command.Command command) {
-		if (stopped) {
-			if (command != null && command.canExecute()) {
-				command.execute();
-			}
-		} else {
-			super.execute(command);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.emf.common.command.BasicCommandStack#handleError(java.lang.Exception)
-	 */
-	protected void handleError(Exception exception) {
-		if (exception != null) {
-			System.out.println("Execute command error:");
-			exception.printStackTrace();
-		}
-		super.handleError(exception);
-	}
-
-	/**
-	 * Try to stop this command stack, it means all coming commands will be executed directly from now.
-	 */
-	public void stop() {
-		stopped = true;
-	}
-
-	/**
-	 * Try to start this command stack, all coming commands will be executed by the command stack.
-	 */
-	public void start() {
-		stopped = false;
-	}
-
-	private class GEFCommandStack extends CommandStack {
-		public void addCommandStackListener(CommandStackListener listener) {
-			stackListeners.add(listener);
-		}
-
-		public void removeCommandStackListener(CommandStackListener listener) {
-			stackListeners.remove(listener);
-		}
-
-		public boolean canRedo() {
-			return CombinedCommandStack.this.canRedo();
-		}
-
-		public boolean canUndo() {
-			return CombinedCommandStack.this.canUndo();
-		}
-
-		public void execute(Command command) {
-			if (command != null) {
-				org.eclipse.emf.common.command.Command emfCommand = null;
-				if (command instanceof CommandWrap4EMF) {
-					emfCommand = ((CommandWrap4EMF) command).unwrap();
-				} else {
-					emfCommand = new CommandWrap4GEF(command);
-				}
-				CombinedCommandStack.this.execute(emfCommand);
-			}
-		}
-
-		public void flush() {
-			CombinedCommandStack.this.flush();
-		}
-
-		public Command getRedoCommand() {
-			org.eclipse.emf.common.command.Command command = CombinedCommandStack.this.getRedoCommand();
-			Command gefCommand = null;
-			if (command != null) {
-				if (command instanceof CommandWrap4GEF) {
-					gefCommand = ((CommandWrap4GEF) command).unwrap();
-				} else {
-					gefCommand = new CommandWrap4EMF(command);
-				}
-			}
-			return gefCommand;
-		}
-
-		public Command getUndoCommand() {
-			org.eclipse.emf.common.command.Command command = CombinedCommandStack.this.getUndoCommand();
-			Command gefCommand = null;
-			if (command != null) {
-				if (command instanceof CommandWrap4GEF) {
-					gefCommand = ((CommandWrap4GEF) command).unwrap();
-				} else {
-					gefCommand = new CommandWrap4EMF(command);
-				}
-			}
-			return gefCommand;
-		}
-
-		public void redo() {
-			CombinedCommandStack.this.redo();
-		}
-
-		public void undo() {
-			CombinedCommandStack.this.undo();
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/commandstack/CommandWrap4EMF.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/commandstack/CommandWrap4EMF.java
deleted file mode 100755
index 3890384..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/commandstack/CommandWrap4EMF.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor.commandstack;
-
-import java.util.Collection;
-import java.util.Collections;
-
-import org.eclipse.gef.commands.Command;
-
-public class CommandWrap4EMF extends Command {
-	private org.eclipse.emf.common.command.Command command;
-
-	/**
-	 * Constructor for CommandWrap4EMF.
-	 */
-	public CommandWrap4EMF(org.eclipse.emf.common.command.Command command) {
-		this.command = command;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#canExecute()
-	 */
-	public boolean canExecute() {
-		return command == null ? false : command.canExecute();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#canUndo()
-	 */
-	public boolean canUndo() {
-		return command == null ? false : command.canUndo();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#chain(Command)
-	 */
-	public Command chain(Command command) {
-		Command chained = this;
-		if (command != null) {
-			org.eclipse.emf.common.command.Command emfCommand = null;
-			if (command instanceof CommandWrap4EMF) {
-				emfCommand = ((CommandWrap4EMF) command).unwrap();
-			} else {
-				emfCommand = new CommandWrap4GEF(command);
-			}
-			emfCommand = this.command.chain(emfCommand);
-			if (emfCommand != null) {
-				if (emfCommand instanceof CommandWrap4GEF) {
-					chained = ((CommandWrap4GEF) emfCommand).unwrap();
-				} else {
-					chained = new CommandWrap4EMF(emfCommand);
-				}
-			}
-		}
-		return chained;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#dispose()
-	 */
-	public void dispose() {
-		if (command != null)
-			command.dispose();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#execute()
-	 */
-	public void execute() {
-		if (command != null)
-			command.execute();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#getLabel()
-	 */
-	public String getLabel() {
-		return command == null ? "CommandWrap4EMF" : command.getLabel(); //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#redo()
-	 */
-	public void redo() {
-		if (command != null)
-			command.redo();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#undo()
-	 */
-	public void undo() {
-		if (command != null)
-			command.undo();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#getAffectedObjects()
-	 */
-	public Collection<?> getAffectedObjects() {
-		return command == null ? Collections.EMPTY_LIST : command.getAffectedObjects();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#getDescription()
-	 */
-	public String getDescription() {
-		return command == null ? "CommandWrap4EMF" : command.getDescription(); //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#getResult()
-	 */
-	public Collection<?> getResult() {
-		return command == null ? Collections.EMPTY_LIST : command.getResult();
-	}
-
-	public org.eclipse.emf.common.command.Command unwrap() {
-		return command;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/commandstack/CommandWrap4GEF.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/commandstack/CommandWrap4GEF.java
deleted file mode 100755
index d0e7c3f..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/commandstack/CommandWrap4GEF.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor.commandstack;
-
-import java.util.Collection;
-import java.util.Collections;
-
-import org.eclipse.emf.common.command.Command;
-
-public class CommandWrap4GEF implements Command {
-	private org.eclipse.gef.commands.Command command;
-
-	/**
-	 * Constructor for CommandWrap4GEF.
-	 */
-	public CommandWrap4GEF(org.eclipse.gef.commands.Command command) {
-		this.command = command;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.emf.common.command.Command#canExecute()
-	 */
-	public boolean canExecute() {
-		return command == null ? false : command.canExecute();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.emf.common.command.Command#canUndo()
-	 */
-	public boolean canUndo() {
-		return command == null ? false : command.canUndo();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.emf.common.command.Command#chain(Command)
-	 */
-	public Command chain(Command command) {
-		Command chained = this;
-		if (command != null) {
-			org.eclipse.gef.commands.Command gefCommand = null;
-			if (command instanceof CommandWrap4GEF) {
-				gefCommand = ((CommandWrap4GEF) command).unwrap();
-			} else {
-				gefCommand = new CommandWrap4EMF(command);
-			}
-			gefCommand = this.command.chain(gefCommand);
-			if (gefCommand != null) {
-				if (gefCommand instanceof CommandWrap4EMF) {
-					chained = ((CommandWrap4EMF) gefCommand).unwrap();
-				} else {
-					chained = new CommandWrap4GEF(gefCommand);
-				}
-			}
-		}
-		return chained;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.emf.common.command.Command#dispose()
-	 */
-	public void dispose() {
-		if (command != null)
-			command.dispose();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.emf.common.command.Command#execute()
-	 */
-	public void execute() {
-		if (command != null)
-			command.execute();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.emf.common.command.Command#getAffectedObjects()
-	 */
-	public Collection<?> getAffectedObjects() {
-		return Collections.EMPTY_LIST;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.emf.common.command.Command#getDescription()
-	 */
-	public String getDescription() {
-		return "CommandWrap4GEF"; //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.emf.common.command.Command#getLabel()
-	 */
-	public String getLabel() {
-		return command == null ? "CommandWrap4GEF" : command.getLabel(); //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.emf.common.command.Command#getResult()
-	 */
-	public Collection<?> getResult() {
-		return Collections.EMPTY_LIST;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.emf.common.command.Command#redo()
-	 */
-	public void redo() {
-		if (command != null)
-			command.redo();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.emf.common.command.Command#undo()
-	 */
-	public void undo() {
-		if (command != null)
-			command.undo();
-	}
-
-	public org.eclipse.gef.commands.Command unwrap() {
-		return command;
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/DropAdapter.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/DropAdapter.java
deleted file mode 100755
index e4334ea..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/DropAdapter.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor.dnd;
-
-import org.eclipse.xwt.tools.ui.palette.ContextType;
-import org.eclipse.swt.dnd.DropTargetListener;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public interface DropAdapter extends DropTargetListener {
-
-	boolean isAccept();
-
-	String getScope();
-
-	ContextType getContextType();
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/DropContext.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/DropContext.java
deleted file mode 100755
index 0ae89ec..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/DropContext.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor.dnd;
-
-import org.eclipse.xwt.tools.ui.palette.ContextType;
-import org.eclipse.xwt.tools.ui.palette.Entry;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.xwt.tools.ui.designer.core.editor.text.StructuredTextHelper;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public abstract class DropContext {
-	public int findDropPosition(Node node, Entry entry, int documentPosition) {
-		String scope = entry.getScope();
-		ContextType contextType = entry.getContext();
-
-		return findDropPosition(node, scope, contextType, documentPosition);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.vex.VEXContext#findDropPosition(org.w3c.dom.Node, java.lang.String, org.eclipse.xwt.vex.toolpalette.ContextType, int)
-	 */
-	public int findDropPosition(Node node, String scope, ContextType contextType, int cursorPosition) {
-		IDOMNode treeNode = (IDOMNode) node;
-		// check scope first
-		if (scope != null) {
-			String scopeName = scope.trim();
-			if (scopeName.length() > 0) {
-				// check from registered class
-				if (treeNode.getNodeType() == Node.TEXT_NODE) {
-					Node parentNode = treeNode.getParentNode();
-					if (parentNode == null || !isKindOf(parentNode, scopeName)) {
-						return -1;
-					}
-				}
-			}
-		}
-
-		switch (contextType) {
-		case XML_ALL:
-			break;
-		case XML_ATTRIBUTE:
-			break;
-		case XML_ATTRIBUTE_VALUE: {
-			ITextRegion completionRegion = StructuredTextHelper.getCompletionRegion(cursorPosition, treeNode);
-
-			String regionType = completionRegion.getType();
-
-			if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-				return ((IDOMNode) treeNode).getStartOffset();
-			}
-			return -1;
-		}
-		case NONE:
-			break;
-		case XML_NEW:
-			break;
-		case XML_TAG: {
-			if (treeNode.getNodeType() == Node.TEXT_NODE) {
-				return treeNode.getStartOffset();
-			}
-
-			// Node node = (Node) treeNode;
-			// while ((node != null) && (node.getNodeType() == Node.TEXT_NODE)
-			// && (node.getParentNode() != null)) {
-			// node = node.getParentNode();
-			// }
-			// IDOMNode xmlnode = treeNode;
-
-			ITextRegion completionRegion = StructuredTextHelper.getCompletionRegion(cursorPosition, treeNode);
-
-			String regionType = completionRegion.getType();
-
-			if (regionType == DOMRegionContext.XML_PI_CLOSE || regionType == DOMRegionContext.XML_PI_OPEN || regionType == DOMRegionContext.XML_CONTENT || regionType == DOMRegionContext.XML_TAG_OPEN || regionType == DOMRegionContext.XML_TAG_CLOSE || regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE || regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME || regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS || regionType == DOMRegionContext.XML_TAG_NAME || regionType == DOMRegionContext.XML_END_TAG_OPEN) {
-				// in case of attribute, find the first text node
-				NodeList nodeList = treeNode.getChildNodes();
-				int length = nodeList.getLength();
-				for (int i = 0; i < length; i++) {
-					Node child = nodeList.item(i);
-					if (child.getNodeType() == Node.TEXT_NODE) {
-						return ((IDOMNode) child).getEndOffset();
-					}
-				}
-
-				if (regionType == DOMRegionContext.XML_END_TAG_OPEN && length == 0) {
-					IStructuredDocumentRegion endStructuredDocumentRegion = treeNode.getEndStructuredDocumentRegion();
-					if (cursorPosition == endStructuredDocumentRegion.getStart()) {
-						return cursorPosition;
-					}
-				}
-			}
-		}
-			return -1;
-		default:
-			throw new UnsupportedOperationException();
-		}
-
-		return cursorPosition;
-	}
-
-	/**
-	 * 
-	 * @param node
-	 * @param targetType
-	 *            a qualified class name
-	 * @return
-	 */
-	protected abstract boolean isKindOf(Node node, String targetType);
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/DropTargetAdapter.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/DropTargetAdapter.java
deleted file mode 100755
index 53fc489..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/DropTargetAdapter.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor.dnd;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.swt.dnd.DropTargetListener;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class DropTargetAdapter implements DropTargetListener {
-
-	private List<DropAdapter> dropAdapters = new ArrayList<DropAdapter>();
-	private DropAdapter acceptAdapter;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.dnd.DropTargetAdapter#dragOver(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	public void dragOver(DropTargetEvent event) {
-		updateAcceptAdapter();
-		if (acceptAdapter != null) {
-			acceptAdapter.dragOver(event);
-		}
-	}
-
-	/**
-	 * @param event
-	 */
-	private void updateAcceptAdapter() {
-		for (DropAdapter drop : dropAdapters) {
-			if (drop.isAccept()) {
-				acceptAdapter = drop;
-				break;
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.dnd.DropTargetAdapter#dropAccept(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	public void dropAccept(DropTargetEvent event) {
-		if (acceptAdapter != null) {
-			acceptAdapter.dropAccept(event);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.dnd.DropTargetAdapter#drop(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	public void drop(DropTargetEvent event) {
-		if (acceptAdapter != null) {
-			acceptAdapter.drop(event);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.dnd.DropTargetAdapter#dragEnter(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	public void dragEnter(DropTargetEvent event) {
-		updateAcceptAdapter();
-		if (acceptAdapter != null) {
-			acceptAdapter.dragEnter(event);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.dnd.DropTargetAdapter#dragOperationChanged(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	public void dragOperationChanged(DropTargetEvent event) {
-		updateAcceptAdapter();
-		if (acceptAdapter != null) {
-			acceptAdapter.dragOperationChanged(event);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.dnd.DropTargetAdapter#dragLeave(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	public void dragLeave(DropTargetEvent event) {
-		if (acceptAdapter != null) {
-			acceptAdapter.dragLeave(event);
-		}
-	}
-
-	public void addDropAdapter(DropAdapter adapter) {
-		dropAdapters.add(adapter);
-	}
-
-	/**
-	 * @param dndAdapters
-	 *            the dndAdapters to set
-	 */
-	public void setDropAdapters(List<DropAdapter> dndAdapters) {
-		this.dropAdapters = dndAdapters;
-	}
-
-	/**
-	 * @return the dndAdapters
-	 */
-	public List<DropAdapter> getDropAdapters() {
-		return dropAdapters;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/GraphicalViewerDropCreationListener.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/GraphicalViewerDropCreationListener.java
deleted file mode 100755
index fcf2c71..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/GraphicalViewerDropCreationListener.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor.dnd;
-
-import org.eclipse.gef.EditPartViewer;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.dnd.AbstractTransferDropTargetListener;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.gef.requests.CreationFactory;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.xwt.ui.utils.ProjectContext;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public class GraphicalViewerDropCreationListener extends
-		AbstractTransferDropTargetListener {
-
-	public GraphicalViewerDropCreationListener(EditPartViewer viewer) {
-		super(viewer, LocalSelectionTransfer.getTransfer());
-		setEnablementDeterminedByCommand(true);
-	}
-
-	protected void updateTargetRequest() {
-		Request req = getTargetRequest();
-		if (req instanceof CreateRequest) {
-			((CreateRequest) req).setLocation(getDropLocation());
-		}
-	}
-
-	/**
-	 * The purpose of a template is to be copied. Therefore, the drop operation
-	 * can't be anything but <code>DND.DROP_COPY</code>.
-	 * 
-	 * @see AbstractTransferDropTargetListener#handleDragOperationChanged()
-	 */
-	protected void handleDragOperationChanged() {
-		getCurrentEvent().detail = DND.DROP_COPY;
-		super.handleDragOperationChanged();
-	}
-
-	protected void handleDragOver() {
-		getCurrentEvent().detail = DND.DROP_COPY;
-		getCurrentEvent().feedback = DND.FEEDBACK_SCROLL | DND.FEEDBACK_EXPAND;
-		super.handleDragOver();
-	}
-
-	protected Request createTargetRequest() {
-		CreationFactory creationFactory = getCreationFactory();
-		if (creationFactory != null) {
-			CreateRequest createReq = new CreateRequest();
-			createReq.setFactory(creationFactory);
-			return createReq;
-		}
-		return super.createTargetRequest();
-	}
-
-	protected CreationFactory getCreationFactory() {
-		ISelection selection = LocalSelectionTransfer.getTransfer()
-				.getSelection();
-		if (selection instanceof IStructuredSelection) {
-			return createCreationFactory(((IStructuredSelection) selection)
-					.getFirstElement());
-		}
-		return createCreationFactory(selection);
-	}
-
-	protected CreationFactory createCreationFactory(Object selection) {
-		return null;
-	}
-
-	protected Class<?> getClassType(ICompilationUnit unit) {
-		try {
-			IType type = unit.findPrimaryType();
-			return ProjectContext.getContext(type.getJavaProject()).loadClass(
-					type.getFullyQualifiedName());
-		} catch (Exception e) {
-		}
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/palette/PaletteDropAdapter.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/palette/PaletteDropAdapter.java
deleted file mode 100755
index 4a4c970..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/palette/PaletteDropAdapter.java
+++ /dev/null
@@ -1,276 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor.dnd.palette;
-
-import org.eclipse.xwt.tools.ui.palette.ContextType;
-import org.eclipse.xwt.tools.ui.palette.Entry;
-import org.eclipse.jface.text.templates.GlobalTemplateVariables;
-import org.eclipse.jface.text.templates.Template;
-import org.eclipse.jface.text.templates.TemplateBuffer;
-import org.eclipse.jface.text.templates.TemplateVariable;
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.xwt.tools.ui.designer.core.editor.Designer;
-import org.eclipse.xwt.tools.ui.designer.core.editor.dnd.DropAdapter;
-import org.eclipse.xwt.tools.ui.designer.core.editor.dnd.DropContext;
-import org.w3c.dom.Node;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class PaletteDropAdapter implements DropAdapter {
-
-	static final int CARET_WIDTH = 2;
-	protected int dropCaretOffset = -1;
-	protected Designer designer;
-	protected LocalSelectionTransfer transfer = LocalSelectionTransfer.getTransfer();
-
-	protected DropContext context;
-	protected Entry entry;
-
-	public PaletteDropAdapter(Designer designer, DropContext context) {
-		this.designer = designer;
-		this.context = context;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapter#drop(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	public void drop(DropTargetEvent event) {
-		Object selection = getSelection();
-		if (!isAccept() || !(selection instanceof Entry)) {
-			return;
-		}
-
-		final Template template = createTemplate(entry);
-		if (template == null) {
-			return;
-		}
-
-		Runnable dropRunnable = new Runnable() {
-			public void run() {
-				drop(template, dropCaretOffset, 0);
-			}
-		};
-		// designer.formatWithCompound(dropRunnable);
-	}
-
-	/**
-	 * @param template
-	 */
-	protected void drop(Template template, int dropCaretOffset, int length) {
-		// IDocument document = designer.getTextViewer().getDocument();
-		// ContextTypeRegistry registry =
-		// XMLUIPlugin.getDefault().getTemplateContextRegistry();
-		// if (registry != null) {
-		// TemplateContextType type =
-		// registry.getContextType(template.getContextTypeId());
-		//
-		// DocumentTemplateContext templateContext = new
-		// DocumentTemplateContext(type, document, new Position(dropCaretOffset,
-		// length));
-		// if (templateContext.canEvaluate(template)) {
-		// try {
-		// TemplateBuffer templateBuffer = templateContext.evaluate(template);
-		// String templateString = templateBuffer.getString();
-		// document.replace(dropCaretOffset, length, templateString);
-		//
-		// StyledText styledText = designer.getTextWidget();
-		// int position = getCursorOffset(templateBuffer) + dropCaretOffset;
-		// styledText.setCaretOffset(position);
-		// styledText.setFocus();
-		// } catch (Exception e) {
-		// throw new RuntimeException(e);
-		// }
-		// }
-		// }
-	}
-
-	protected Template createTemplate(Entry entry) {
-		return new Template(entry.getName(), "", getContextType().getName(), entry.getContent(), true);
-	};
-
-	protected int getCursorOffset(TemplateBuffer buffer) {
-		TemplateVariable[] variables = buffer.getVariables();
-		for (int i = 0; i != variables.length; i++) {
-			TemplateVariable variable = variables[i];
-			if (variable.getType().equals(GlobalTemplateVariables.Cursor.NAME))
-				return variable.getOffsets()[0];
-		}
-
-		return buffer.getString().length();
-	}
-
-	public void dragOver(DropTargetEvent event) {
-		// if (!isAccept() || !(getSelection() instanceof Entry)) {
-		// return;
-		// }
-		// this.entry = (Entry) getSelection();
-		// Node node = getCurrentNode(event);
-		// int position = context.findDropPosition(node, getScope(),
-		// getContextType(), getCursor(event));
-		// if (position < 0) {
-		// event.detail = DND.DROP_NONE;
-		// } else {
-		// StyledText styledText = designer.getTextWidget();
-		// setDropCaretOffset(position);
-		// refreshCaret(styledText, getDropCaretOffset());
-		// event.detail = DND.DROP_COPY;
-		// }
-	}
-
-	protected Node getCurrentNode(DropTargetEvent event) {
-		// StructuredTextViewer textViewer =
-		// designer.getTextEditor().getTextViewer();
-		// return StructuredTextHelper.getNode(textViewer, getCursor(event));
-		return null;
-	}
-
-	protected int getCursor(DropTargetEvent event) {
-		// StructuredTextViewer textViewer =
-		// designer.getTextEditor().getTextViewer();
-		// return StructuredTextHelper.getOffsetAtPoint(textViewer, new
-		// Point(event.x, event.y));
-		return 0;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.dnd.DropTargetListener#dragEnter(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	public void dragEnter(DropTargetEvent event) {
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.dnd.DropTargetListener#dragLeave(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	public void dragLeave(DropTargetEvent event) {
-		// StyledText styledText = designer.getTextWidget();
-		// if (getDropCaretOffset() != -1) {
-		// refreshCaret(styledText, getDropCaretOffset());
-		// }
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.dnd.DropTargetListener#dragOperationChanged(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	public void dragOperationChanged(DropTargetEvent event) {
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.dnd.DropTargetListener#dropAccept(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	public void dropAccept(DropTargetEvent event) {
-
-	}
-
-	protected void refreshCaret(StyledText text, int newOffset) {
-		if (newOffset != -1) {
-			Point newPos = text.getLocationAtOffset(newOffset);
-			int newHeight = text.getLineHeight(newOffset);
-			text.redraw(newPos.x, newPos.y, CARET_WIDTH, newHeight, false);
-		}
-	}
-
-	/**
-	 * @param editor
-	 *            the editor to set
-	 */
-	public void setDesigner(Designer editor) {
-		this.designer = editor;
-	}
-
-	/**
-	 * @return the editor
-	 */
-	public Designer getDesigner() {
-		return designer;
-	}
-
-	protected Object getSelection() {
-		IStructuredSelection selection = (IStructuredSelection) transfer.getSelection();
-		if (selection != null) {
-			return selection.getFirstElement();
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapter#isAccept()
-	 */
-	public boolean isAccept() {
-		Object selection = getSelection();
-		if (selection == null) {
-			return false;
-		}
-		return isAccept(selection);
-	}
-
-	/**
-	 * @param selection
-	 * @return
-	 */
-	protected boolean isAccept(Object selection) {
-		if (selection instanceof Entry) {
-			return true;
-		}
-		return false;
-	};
-
-	/**
-	 * @param dropCaretOffset
-	 *            the dropCaretOffset to set
-	 */
-	public void setDropCaretOffset(int dropCaretOffset) {
-		this.dropCaretOffset = dropCaretOffset;
-	}
-
-	/**
-	 * @return the dropCaretOffset
-	 */
-	public int getDropCaretOffset() {
-		return dropCaretOffset;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.tools.designer.editor.dnd.DropAdapter#getContextType()
-	 */
-	public ContextType getContextType() {
-		return entry.getContext();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.tools.designer.editor.dnd.DropAdapter#getScope()
-	 */
-	public String getScope() {
-		return entry.getScope();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/DesignerOutlinePage.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/DesignerOutlinePage.java
deleted file mode 100755
index 2de6da1..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/DesignerOutlinePage.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor.outline;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartFactory;
-import org.eclipse.gef.RootEditPart;
-import org.eclipse.gef.dnd.AbstractTransferDropTargetListener;
-import org.eclipse.gef.editparts.AbstractTreeEditPart;
-import org.eclipse.gef.ui.parts.ContentOutlinePage;
-import org.eclipse.gef.ui.parts.TreeViewer;
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class DesignerOutlinePage extends ContentOutlinePage {
-
-	private EditDomain editDomain;
-	private EditPartFactory editPartFactory;
-
-	public DesignerOutlinePage(EditDomain editDomain,
-			EditPartFactory editPartFactory) {
-		super(new TreeViewer());
-		this.editDomain = editDomain;
-		this.editPartFactory = editPartFactory;
-		configureTreeViewer();
-	}
-
-	public TreeViewer getTreeViewer() {
-		return (TreeViewer) getViewer();
-	}
-
-	public EditDomain getEditDomain() {
-		return editDomain;
-	}
-
-	protected void configureTreeViewer() {
-		TreeViewer treeViewer = getTreeViewer();
-		editDomain.addViewer(treeViewer);
-		treeViewer.setEditPartFactory(editPartFactory);
-		treeViewer
-				.addDropTargetListener(new AbstractTransferDropTargetListener(
-						treeViewer, LocalSelectionTransfer.getTransfer()) {
-					protected void updateTargetRequest() {
-
-					}
-
-					public void dragOver(DropTargetEvent event) {
-						super.dragOver(event);
-						System.out
-								.println("DesignerOutlinePage.configureTreeViewer().new AbstractTransferDropTargetListener() {...}.dragOver()");
-					}
-
-					protected void handleHover() {
-						super.handleHover();
-						System.out
-								.println("DesignerOutlinePage.configureTreeViewer().new AbstractTransferDropTargetListener() {...}.handleHover()");
-					}
-				});
-	}
-
-	public void setContents(final Object contents) {
-		TreeViewer treeViewer = getTreeViewer();
-		if (treeViewer == null) {
-			return;
-		}
-		RootEditPart rootEditPart = treeViewer.getRootEditPart();
-		EditPart rootEp = new AbstractTreeEditPart() {
-			protected List getModelChildren() {
-				ArrayList children = new ArrayList();
-				children.add(contents);
-				return children;
-			}
-		};
-		rootEditPart.setContents(rootEp);
-	}
-
-	public void refresh(Object model) {
-		if (model == null) {
-			return;
-		}
-		TreeViewer treeViewer = getTreeViewer();
-		if (treeViewer == null) {
-			return;
-		}
-		if (model instanceof EditPart) {
-			model = ((EditPart) model).getModel();
-		}
-		EditPart editPart = (EditPart) treeViewer.getEditPartRegistry().get(
-				model);
-		if (editPart == null) {
-			editPart = treeViewer.getContents();
-		}
-		refresh(editPart);
-	}
-
-	private void refresh(EditPart editPart) {
-		editPart.refresh();
-		List<?> children = editPart.getChildren();
-		for (Object object : children) {
-			refresh((EditPart) object);
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/TreeEditPart.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/TreeEditPart.java
deleted file mode 100755
index 8e5715d..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/TreeEditPart.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor.outline;
-
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.editparts.AbstractTreeEditPart;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public class TreeEditPart extends AbstractTreeEditPart {
-
-	private final ILabelProvider labelProvider;
-
-	public TreeEditPart(Object model) {
-		this(model, null);
-	}
-
-	public TreeEditPart(Object model, ILabelProvider labelProvider) {
-		super(model);
-		this.labelProvider = labelProvider;
-	}
-
-	protected String getText() {
-		if (labelProvider != null) {
-			return labelProvider.getText(getModel());
-		}
-		return super.getText();
-	}
-
-	protected Image getImage() {
-		if (labelProvider != null) {
-			return labelProvider.getImage(getModel());
-		}
-		return super.getImage();
-	}
-
-	protected void createEditPolicies() {
-		installEditPolicy(EditPolicy.TREE_CONTAINER_ROLE,
-				new TreeItemEditPolicy());
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/TreeItemEditPart.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/TreeItemEditPart.java
deleted file mode 100755
index 06c0485..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/TreeItemEditPart.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor.outline;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public class TreeItemEditPart extends TreeEditPart {
-
-	private final ITreeContentProvider contentProvider;
-
-	public TreeItemEditPart(Object model) {
-		this(model, null, null);
-	}
-
-	public TreeItemEditPart(Object model, ITreeContentProvider contentProvider,
-			ILabelProvider labelProvider) {
-		super(model, labelProvider);
-		this.contentProvider = contentProvider;
-	}
-
-	protected List getModelChildren() {
-		if (contentProvider != null) {
-			Object[] children = contentProvider.getChildren(getModel());
-			if (children != null && children.length > 0) {
-				return new ArrayList(Arrays.asList(children));
-			}
-		}
-		return super.getModelChildren();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/TreeItemEditPolicy.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/TreeItemEditPolicy.java
deleted file mode 100755
index 3dea7b1..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/TreeItemEditPolicy.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor.outline;
-
-import org.eclipse.gef.Request;
-import org.eclipse.gef.TreeEditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.editpolicies.TreeContainerEditPolicy;
-import org.eclipse.gef.requests.ChangeBoundsRequest;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.gef.requests.DropRequest;
-import org.eclipse.gef.requests.GroupRequest;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public class TreeItemEditPolicy extends TreeContainerEditPolicy {
-
-	public Command getCommand(Request req) {
-		if (req.getType() == REQ_ORPHAN_CHILDREN) {
-			return getOrphanChildrenCommand((GroupRequest) req);
-		} else if (req.getType() == REQ_DELETE) {
-			return getDeleteCommand(req);
-		} else if (req.getType() == REQ_MOVE) {
-			ChangeBoundsRequest request = new ChangeBoundsRequest(
-					REQ_MOVE_CHILDREN);
-			request.setEditParts(getHost());
-			if (req instanceof ChangeBoundsRequest) {
-				request.setLocation(((ChangeBoundsRequest) req).getLocation());
-			}
-			return getHost().getParent().getCommand(request);
-		}
-		return super.getCommand(req);
-	}
-
-	protected Command getDeleteCommand(Request req) {
-		return null;
-	}
-
-	protected Command getOrphanChildrenCommand(GroupRequest req) {
-		return null;
-	}
-
-	protected Command getAddCommand(ChangeBoundsRequest request) {
-		return null;
-	}
-
-	protected Command getCreateCommand(CreateRequest request) {
-		return null;
-	}
-
-	protected Command getMoveChildrenCommand(ChangeBoundsRequest request) {
-		return null;
-	}
-
-	public void showTargetFeedback(Request req) {
-		super.showTargetFeedback(req);
-		if (req.getType().equals(REQ_MOVE) || req.getType().equals(REQ_ADD)
-				|| req.getType().equals(REQ_CREATE)) {
-			expandTreeItem((DropRequest) req);
-		}
-	}
-
-	private void expandTreeItem(DropRequest req) {
-		Widget hostWidget = ((TreeEditPart) getHost()).getWidget();
-		if (hostWidget == null || hostWidget.isDisposed()
-				|| !(hostWidget instanceof TreeItem)) {
-			return;
-		}
-		TreeItem treeItem = (TreeItem) hostWidget;
-		treeItem.setExpanded(true);
-
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/dnd/OutlineDragListener.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/dnd/OutlineDragListener.java
deleted file mode 100755
index aeb1e2f..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/dnd/OutlineDragListener.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor.outline.dnd;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.dnd.DragSourceEvent;
-import org.eclipse.swt.dnd.DragSourceListener;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class OutlineDragListener implements DragSourceListener {
-
-	private TreeViewer treeViewer;
-
-	public OutlineDragListener(TreeViewer treeViewer) {
-		this.treeViewer = treeViewer;
-	}
-
-	private ISelection getSelection() {
-		if (treeViewer == null) {
-			return null;
-		}
-
-		ISelection selection = treeViewer.getSelection();
-		if (selection == null || selection.isEmpty()) {
-			return null;
-		}
-		IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-		ArrayList<Object> collector = new ArrayList<Object>();
-		for (Iterator<?> iterator = structuredSelection.iterator(); iterator.hasNext();) {
-			Object element = iterator.next();
-			if (element instanceof EditPart) {
-				collector.add(((EditPart) element).getModel());
-			}
-			else {
-				collector.add(element);				
-			}
-		}
-		return new StructuredSelection(collector.toArray());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.swt.dnd.DragSourceListener#dragFinished(org.eclipse.swt.dnd.DragSourceEvent)
-	 */
-	public void dragFinished(DragSourceEvent event) {
-		OutlineNodeTransfer.getTransfer().setSelection(null);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.swt.dnd.DragSourceListener#dragSetData(org.eclipse.swt.dnd.DragSourceEvent)
-	 */
-	public void dragSetData(DragSourceEvent event) {
-		event.data = getSelection();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.swt.dnd.DragSourceListener#dragStart(org.eclipse.swt.dnd.DragSourceEvent)
-	 */
-	public void dragStart(DragSourceEvent event) {
-		ISelection selection = getSelection();
-		if (selection == null) {
-			event.doit = false;
-		}
-		OutlineNodeTransfer.getTransfer().setSelection(selection);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/dnd/OutlineDropListener.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/dnd/OutlineDropListener.java
deleted file mode 100755
index c35c21d..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/dnd/OutlineDropListener.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor.outline.dnd;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.ViewerDropAdapter;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.swt.dnd.TransferData;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class OutlineDropListener extends ViewerDropAdapter {
-
-	private OutlineDropManager dropManager;
-	private Command dropCommand;
-
-	public OutlineDropListener(TreeViewer viewer, OutlineDropManager dropManager) {
-		super(viewer);
-		this.dropManager = dropManager;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ViewerDropAdapter#performDrop(java.lang.Object)
-	 */
-	public boolean performDrop(Object data) {
-		return dropManager.execute(dropCommand);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ViewerDropAdapter#determineTarget(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	protected Object determineTarget(DropTargetEvent event) {
-		Object target = super.determineTarget(event);
-		if (target instanceof EditPart) {
-			target = ((EditPart) target).getModel();
-		}
-		return target;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ViewerDropAdapter#validateDrop(java.lang.Object, int, org.eclipse.swt.dnd.TransferData)
-	 */
-	public boolean validateDrop(Object target, int operation, TransferData transferType) {
-		if (dropManager == null || target == null) {
-			return false;
-		}
-		OutlineNodeTransfer transfer = OutlineNodeTransfer.getTransfer();
-		IStructuredSelection selection = transfer.getSelection();
-		if (selection == null) {
-			return false;
-		}
-		int currentLocation = getCurrentLocation();
-		switch (currentLocation) {
-		case LOCATION_AFTER: {
-			dropCommand = dropManager.getMoveAfter(selection, target, getCurrentOperation());
-			break;
-		}
-		case LOCATION_BEFORE: {
-			dropCommand = dropManager.getMoveBefore(selection, target, getCurrentOperation());
-			break;
-		}
-		case LOCATION_ON: {
-			dropCommand = dropManager.getMoveOn(selection, target, getCurrentOperation());
-			break;
-		}
-		}
-		return dropCommand != null && dropCommand.canExecute();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/dnd/OutlineDropManager.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/dnd/OutlineDropManager.java
deleted file mode 100755
index 59f51c6..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/dnd/OutlineDropManager.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor.outline.dnd;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.jface.viewers.IStructuredSelection;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public interface OutlineDropManager {
-
-	/**
-	 * Create a command for moving 'source' object after 'target' object.
-	 * 
-	 * @param source
-	 * @param target
-	 * @param operation  DND.DROP_COPY, DND#DROP_MOVE or DND#DROP_LINK
-	 * @return command of dragging from outline.
-	 */
-	Command getMoveAfter(IStructuredSelection source, Object target, int operation);
-
-	/**
-	 * Create a command for moving 'source' object before 'target' object.
-	 * 
-	 * @param source
-	 * @param target
-	 * @param operation  DND.DROP_COPY, DND#DROP_MOVE or DND#DROP_LINK
-	 * @return command of dragging from outline.
-	 */
-	Command getMoveBefore(IStructuredSelection source, Object target, int operation);
-
-	/**
-	 * Create a command for moving 'source' object on 'target' object.
-	 * 
-	 * @param source
-	 * @param target
-	 * @param operation  DND.DROP_COPY, DND#DROP_MOVE or DND#DROP_LINK
-	 * @return command of dragging from outline.
-	 */
-	Command getMoveOn(IStructuredSelection source, Object target, int operation);
-
-	/**
-	 * Execute given command with commandStack or not.
-	 * 
-	 * @param command
-	 */
-	boolean execute(Command command);
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/dnd/OutlineNodeTransfer.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/dnd/OutlineNodeTransfer.java
deleted file mode 100755
index 83752ff..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/dnd/OutlineNodeTransfer.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor.outline.dnd;
-
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.dnd.TransferData;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class OutlineNodeTransfer extends LocalSelectionTransfer {
-	public static final OutlineNodeTransfer INSTANCE = new OutlineNodeTransfer();
-
-	private LocalSelectionTransfer jfaceTransfer = LocalSelectionTransfer.getTransfer();
-
-	private OutlineNodeTransfer() {
-	}
-
-	public static OutlineNodeTransfer getTransfer() {
-		return INSTANCE;
-	}
-
-	public void setSelection(ISelection selection) {
-		jfaceTransfer.setSelection(selection);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.util.LocalSelectionTransfer#getSelection()
-	 */
-	public IStructuredSelection getSelection() {
-		IStructuredSelection selection = (IStructuredSelection) jfaceTransfer.getSelection();
-		if (selection == null) {
-			selection = (IStructuredSelection) super.getSelection();
-		}
-		return selection;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.util.LocalSelectionTransfer#nativeToJava(org.eclipse.swt.dnd.TransferData)
-	 */
-	public Object nativeToJava(TransferData transferData) {
-		return jfaceTransfer.nativeToJava(transferData);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.util.LocalSelectionTransfer#javaToNative(java.lang.Object, org.eclipse.swt.dnd.TransferData)
-	 */
-	public void javaToNative(Object object, TransferData transferData) {
-		jfaceTransfer.javaToNative(object, transferData);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/text/StructuredTextHelper.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/text/StructuredTextHelper.java
deleted file mode 100755
index 1f0010e..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/text/StructuredTextHelper.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor.text;
-
-import java.lang.reflect.Method;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatProcessor;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.ui.internal.FormatProcessorsExtensionReader;
-import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.w3c.dom.Node;
-
-public class StructuredTextHelper {
-
-	public static final String CONTENT_TYPE = "content-type.xaml";
-
-	public static void format(IDocument document) {
-		if (document instanceof IStructuredDocument) {
-			IStructuredDocument structDocument = (IStructuredDocument) document;
-			IStructuredModel model = StructuredModelManager.getModelManager().getModelForEdit(structDocument);
-			IStructuredFormatProcessor processor = getFormatProcessor(CONTENT_TYPE);
-			if (model != null && processor != null) {
-				processor.formatModel(model);
-			}
-		}
-	}
-
-	protected static IStructuredFormatProcessor getFormatProcessor(String contentTypeId) {
-		return FormatProcessorsExtensionReader.getInstance().getFormatProcessor(contentTypeId);
-	}
-
-	public static int getOffsetAtPoint(ITextViewer textViewer, Point absolutePosition) {
-		StyledText styledText = textViewer.getTextWidget();
-		Point relativePosition = styledText.toControl(absolutePosition);
-
-		try {
-			Method method = StyledText.class.getDeclaredMethod("getOffsetAtPoint", int.class, int.class, int[].class, boolean.class);
-			method.setAccessible(true);
-
-			int[] trailing = new int[1];
-			int widgetOffset = (Integer) method.invoke(styledText, relativePosition.x, relativePosition.y, trailing, false);
-			widgetOffset += trailing[0];
-			return widgetOffset;
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	public static IDOMNode getCurrentNode(ITextViewer textViewer, Point absolutePosition) {
-		return getNode(textViewer, getOffsetAtPoint(textViewer, absolutePosition));
-	}
-
-	public static IDOMNode getNode(ITextViewer textViewer, int documentPosition) {
-		return (IDOMNode) ContentAssistUtils.getNodeAt(textViewer, documentPosition);
-	}
-
-	static public ITextRegion getCompletionRegion(int documentPosition, Node domnode) {
-		if (domnode == null) {
-			return null;
-		}
-
-		ITextRegion region = null;
-		int offset = documentPosition;
-		IStructuredDocumentRegion flatNode = null;
-		IDOMNode node = (IDOMNode) domnode;
-
-		if (node.getNodeType() == Node.DOCUMENT_NODE) {
-			if (node.getStructuredDocument().getLength() == 0) {
-				return null;
-			}
-			ITextRegion result = node.getStructuredDocument().getRegionAtCharacterOffset(offset).getRegionAtCharacterOffset(offset);
-			while (result == null) {
-				offset--;
-				result = node.getStructuredDocument().getRegionAtCharacterOffset(offset).getRegionAtCharacterOffset(offset);
-			}
-			return result;
-		}
-
-		IStructuredDocumentRegion startTag = node.getStartStructuredDocumentRegion();
-		IStructuredDocumentRegion endTag = node.getEndStructuredDocumentRegion();
-
-		// Determine if the offset is within the start
-		// IStructuredDocumentRegion, end IStructuredDocumentRegion, or
-		// somewhere within the Node's XML content.
-		if ((startTag != null) && (startTag.getStartOffset() <= offset) && (offset < startTag.getStartOffset() + startTag.getLength())) {
-			flatNode = startTag;
-		} else if ((endTag != null) && (endTag.getStartOffset() <= offset) && (offset < endTag.getStartOffset() + endTag.getLength())) {
-			flatNode = endTag;
-		}
-
-		if (flatNode != null) {
-			// the offset is definitely within the start or end tag, continue
-			// on and find the region
-			region = getCompletionRegion(offset, flatNode);
-		} else {
-			// the docPosition is neither within the start nor the end, so it
-			// must be content
-			flatNode = node.getStructuredDocument().getRegionAtCharacterOffset(offset);
-			// (pa) ITextRegion refactor
-			// if (flatNode.contains(documentPosition)) {
-			if ((flatNode.getStartOffset() <= documentPosition) && (flatNode.getEndOffset() >= documentPosition)) {
-				// we're interesting in completing/extending the previous
-				// IStructuredDocumentRegion if the current
-				// IStructuredDocumentRegion isn't plain content or if it's
-				// preceded by an orphan '<'
-				if ((offset == flatNode.getStartOffset()) && (flatNode.getPrevious() != null) && (((flatNode.getRegionAtCharacterOffset(documentPosition) != null) && (flatNode.getRegionAtCharacterOffset(documentPosition).getType() != DOMRegionContext.XML_CONTENT)) || (flatNode.getPrevious().getLastRegion().getType() == DOMRegionContext.XML_TAG_OPEN) || (flatNode.getPrevious().getLastRegion().getType() == DOMRegionContext.XML_END_TAG_OPEN))) {
-					// Is the region also the start of the node? If so, the
-					// previous IStructuredDocumentRegion is
-					// where to look for a useful region.
-					region = flatNode.getPrevious().getLastRegion();
-				} else if (flatNode.getEndOffset() == documentPosition) {
-					region = flatNode.getLastRegion();
-				} else {
-					region = flatNode.getFirstRegion();
-				}
-			} else {
-				// catch end of document positions where the docPosition isn't
-				// in a IStructuredDocumentRegion
-				region = flatNode.getLastRegion();
-			}
-		}
-
-		return region;
-	}
-
-	static protected ITextRegion getCompletionRegion(int offset, IStructuredDocumentRegion sdRegion) {
-		ITextRegion region = sdRegion.getRegionAtCharacterOffset(offset);
-		if (region == null) {
-			return null;
-		}
-
-		if (sdRegion.getStartOffset(region) == offset) {
-			// The offset is at the beginning of the region
-			if ((sdRegion.getStartOffset(region) == sdRegion.getStartOffset()) && (sdRegion.getPrevious() != null) && (!sdRegion.getPrevious().isEnded())) {
-				// Is the region also the start of the node? If so, the
-				// previous IStructuredDocumentRegion is
-				// where to look for a useful region.
-				region = sdRegion.getPrevious().getRegionAtCharacterOffset(offset - 1);
-			} else {
-				// Is there no separating whitespace from the previous region?
-				// If not,
-				// then that region is the important one
-				ITextRegion previousRegion = sdRegion.getRegionAtCharacterOffset(offset - 1);
-				if ((previousRegion != null) && (previousRegion != region) && (previousRegion.getTextLength() == previousRegion.getLength())) {
-					region = previousRegion;
-				}
-			}
-		} else {
-			// The offset is NOT at the beginning of the region
-			if (offset > sdRegion.getStartOffset(region) + region.getTextLength()) {
-				// Is the offset within the whitespace after the text in this
-				// region?
-				// If so, use the next region
-				ITextRegion nextRegion = sdRegion.getRegionAtCharacterOffset(sdRegion.getStartOffset(region) + region.getLength());
-				if (nextRegion != null) {
-					region = nextRegion;
-				}
-			} else {
-				// Is the offset within the important text for this region?
-				// If so, then we've already got the right one.
-			}
-		}
-
-		// valid WHITE_SPACE region handler (#179924)
-		if ((region != null) && (region.getType() == DOMRegionContext.WHITE_SPACE)) {
-			ITextRegion previousRegion = sdRegion.getRegionAtCharacterOffset(sdRegion.getStartOffset(region) - 1);
-			if (previousRegion != null) {
-				region = previousRegion;
-			}
-		}
-
-		return region;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/text/assist/SelectionCompletionProposal.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/text/assist/SelectionCompletionProposal.java
deleted file mode 100755
index 1691b2d..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/text/assist/SelectionCompletionProposal.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.editor.text.assist;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-
-public class SelectionCompletionProposal implements ICompletionProposal {
-
-	/** The string to be displayed in the completion proposal popup. */
-	private String fDisplayString;
-	/** The replacement string. */
-	private String fReplacementString;
-	/** The replacement offset. */
-	private int fReplacementOffset;
-	/** The replacement length. */
-	private int fReplacementLength;
-	/** The cursor position after this proposal has been applied. */
-	private int fCursorPosition;
-
-	/** The length of selection after this proposal has been applied. */
-	private int fSelectionlength;
-
-	/** The image to be displayed in the completion proposal popup. */
-	private Image fImage;
-	/** The context information of this proposal. */
-	private IContextInformation fContextInformation;
-	/** The additional info of this proposal. */
-	private String fAdditionalProposalInfo;
-
-	/**
-	 * Creates a new completion proposal based on the provided information. The replacement string is considered being the display string too. All remaining fields are set to <code>null</code>.
-	 * 
-	 * @param replacementString
-	 *            the actual string to be inserted into the document
-	 * @param replacementOffset
-	 *            the offset of the text to be replaced
-	 * @param replacementLength
-	 *            the length of the text to be replaced
-	 * @param cursorPosition
-	 *            the position of the cursor following the insert relative to replacementOffset
-	 */
-	public SelectionCompletionProposal(String replacementString, int replacementOffset, int replacementLength, int cursorPosition) {
-		this(replacementString, replacementOffset, replacementLength, cursorPosition, 0, null, null, null, null);
-	}
-
-	/**
-	 * Creates a new completion proposal. All fields are initialized based on the provided information.
-	 * 
-	 * @param replacementString
-	 *            the actual string to be inserted into the document
-	 * @param replacementOffset
-	 *            the offset of the text to be replaced
-	 * @param replacementLength
-	 *            the length of the text to be replaced
-	 * @param cursorPosition
-	 *            the position of the cursor following the insert relative to replacementOffset
-	 * @param image
-	 *            the image to display for this proposal
-	 * @param displayString
-	 *            the string to be displayed for the proposal
-	 * @param contextInformation
-	 *            the context information associated with this proposal
-	 * @param additionalProposalInfo
-	 *            the additional information associated with this proposal
-	 */
-	public SelectionCompletionProposal(String replacementString, int replacementOffset, int replacementLength, int cursorPosition, int selectionLength, Image image, String displayString, IContextInformation contextInformation, String additionalProposalInfo) {
-		Assert.isNotNull(replacementString);
-		Assert.isTrue(replacementOffset >= 0);
-		Assert.isTrue(replacementLength >= 0);
-		Assert.isTrue(cursorPosition >= 0);
-
-		fReplacementString = replacementString;
-		fReplacementOffset = replacementOffset;
-		fReplacementLength = replacementLength;
-		fCursorPosition = cursorPosition;
-		fSelectionlength = selectionLength;
-		fImage = image;
-		fDisplayString = displayString;
-		fContextInformation = contextInformation;
-		fAdditionalProposalInfo = additionalProposalInfo;
-	}
-
-	/*
-	 * @see ICompletionProposal#apply(IDocument)
-	 */
-	public void apply(IDocument document) {
-		try {
-			document.replace(fReplacementOffset, fReplacementLength, fReplacementString);
-		} catch (BadLocationException x) {
-			// ignore
-		}
-	}
-
-	/*
-	 * @see ICompletionProposal#getSelection(IDocument)
-	 */
-	public Point getSelection(IDocument document) {
-		return new Point(fReplacementOffset + fCursorPosition, fSelectionlength);
-	}
-
-	/*
-	 * @see ICompletionProposal#getContextInformation()
-	 */
-	public IContextInformation getContextInformation() {
-		return fContextInformation;
-	}
-
-	/*
-	 * @see ICompletionProposal#getImage()
-	 */
-	public Image getImage() {
-		return fImage;
-	}
-
-	/*
-	 * @see ICompletionProposal#getDisplayString()
-	 */
-	public String getDisplayString() {
-		if (fDisplayString != null)
-			return fDisplayString;
-		return fReplacementString;
-	}
-
-	/*
-	 * @see ICompletionProposal#getAdditionalProposalInfo()
-	 */
-	public String getAdditionalProposalInfo() {
-		return fAdditionalProposalInfo;
-	}
-
-	public void setDisplayString(String displayString) {
-		fDisplayString = displayString;
-	}
-
-	public String getReplacementString() {
-		return fReplacementString;
-	}
-
-	public void setReplacementString(String replacementString) {
-		fReplacementString = replacementString;
-	}
-
-	public int getReplacementOffset() {
-		return fReplacementOffset;
-	}
-
-	public void setReplacementOffset(int replacementOffset) {
-		fReplacementOffset = replacementOffset;
-	}
-
-	public int getReplacementLength() {
-		return fReplacementLength;
-	}
-
-	public void setReplacementLength(int replacementLength) {
-		fReplacementLength = replacementLength;
-	}
-
-	public int getCursorPosition() {
-		return fCursorPosition;
-	}
-
-	public void setCursorPosition(int cursorPosition) {
-		fCursorPosition = cursorPosition;
-	}
-
-	public int getSelectionlength() {
-		return fSelectionlength;
-	}
-
-	public void setSelectionlength(int selectionlength) {
-		fSelectionlength = selectionlength;
-	}
-
-	public void setImage(Image image) {
-		fImage = image;
-	}
-
-	public void setContextInformation(IContextInformation contextInformation) {
-		fContextInformation = contextInformation;
-	}
-
-	public void setAdditionalProposalInfo(String additionalProposalInfo) {
-		fAdditionalProposalInfo = additionalProposalInfo;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/figures/ContentPaneFigure.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/figures/ContentPaneFigure.java
deleted file mode 100755
index 6626d18..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/figures/ContentPaneFigure.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.figures;
-
-import org.eclipse.draw2d.AbstractHintLayout;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Rectangle;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ContentPaneFigure extends Figure {
-	private IFigure contentPane;
-
-	private static final ContentPaneLayout DEFAULT_LAYOUT = new ContentPaneLayout();
-
-	public ContentPaneFigure() {
-		setLayoutManager(DEFAULT_LAYOUT);
-	}
-
-	public void setContentPane(IFigure contentPane) {
-		this.contentPane = contentPane;
-		if (contentPane.getParent() != this) {
-			add(contentPane, 0);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.draw2d.Figure#setBounds(org.eclipse.draw2d.geometry.Rectangle)
-	 */
-	public void setBounds(Rectangle rect) {
-		super.setBounds(rect);
-		IFigure contentPane = getContentPane();
-		if (contentPane != null) {
-			contentPane.setBounds(getClientArea());
-		}
-
-	}
-
-	public IFigure getContentPane() {
-		return contentPane;
-	}
-
-	public static class ContentPaneLayout extends AbstractHintLayout {
-
-		protected Dimension calculatePreferredSize(IFigure container, int wHint, int hHint) {
-			ContentPaneFigure cf = (ContentPaneFigure) container;
-			return cf.getContentPane() != null ? cf.getContentPane().getPreferredSize(wHint, hHint) : new Dimension();
-		}
-
-		public void layout(IFigure container) {
-			ContentPaneFigure cf = (ContentPaneFigure) container;
-			Rectangle r = cf.getClientArea();
-			IFigure contentPane = cf.getContentPane();
-			if (contentPane != null) {
-				contentPane.setBounds(r);
-			}
-		}
-
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/figures/ImageFigure.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/figures/ImageFigure.java
deleted file mode 100755
index 883bd7d..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/figures/ImageFigure.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.figures;
-
-/*
- *  $RCSfile: ImageFigure.java,v $
- *  $Revision: 1.3 $  $Date: 2010/06/18 00:15:23 $ 
- */
-
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * Figure that takes an image and will display it. This figure will not own the image. It is the responsibility of the caller to maintain the image.
- */
-public class ImageFigure extends Figure {
-
-	protected Image image;
-	protected boolean useParentImageFigure = false;
-
-	{
-		setPreferredSize(10, 10);
-	}
-
-	/**
-	 * Set the image this figure is to use. NOTE: This figure does not own the image. It shares it. The sender still maintains ownership of the image and must dispose of it when necessary.
-	 */
-	public void setImage(Image newImage) {
-		if (image != null && !image.isDisposed() && image == newImage) {
-			return;
-		}
-		if (image != null) {
-			image.dispose();
-		}
-		image = newImage;
-		if (image == null) {
-			setPreferredSize(10, 10);
-		} else {
-			org.eclipse.swt.graphics.Rectangle bounds = newImage.getBounds();
-			setPreferredSize(bounds.width, bounds.height);
-		}
-		revalidate();
-		repaint(); // In case didn't change size, still need to repaint.
-	}
-
-	/**
-	 * Return the image currently being used.
-	 */
-	public Image getImage() {
-		return image;
-	}
-
-	/**
-	 * Set to use the parent's ImageFigure as the image to use. This figure must a child or grandchild of this ImageFigure. It will paint its portion of the image (depending upon its own bounds) of that ImageFigure. This is to allow the borders to be appropriately clipped while still using the one master image.
-	 */
-	public void setUseParentImageFigure(boolean aBool) {
-		if (this.useParentImageFigure == aBool)
-			return;
-		useParentImageFigure = aBool;
-		image = null;
-		setPreferredSize(10, 10);
-		revalidate();
-		repaint(); // In case didn't change size, still need to repaint.
-	}
-
-	protected void paintClientArea(Graphics g) {
-		Rectangle r = getClientArea();
-		if (!r.isEmpty() && image != null && !image.isDisposed()) {
-			g.drawImage(image, r.x, r.y);
-		} else if (useParentImageFigure) {
-			// Get the parent up the chain that has the actual image to use.
-			ImageFigure parentImageFigure = null;
-			for (IFigure parent = getParent(); parent != null; parent = parent.getParent()) {
-				if (parent instanceof ImageFigure && ((ImageFigure) parent).getImage() != null) {
-					parentImageFigure = (ImageFigure) parent;
-					break;
-				}
-			}
-			if (parentImageFigure != null) {
-				Image parentImage = parentImageFigure.getImage();
-				if (parentImage != null) {
-					Rectangle parentr = parentImageFigure.getClientArea();
-					// Need to be careful, could be we could ask for a region outside the parent image too.
-					Image pImage = parentImageFigure.getImage();
-					org.eclipse.swt.graphics.Rectangle pBounds = pImage.getBounds();
-					// So set the parent size to be no larger than the image size so that we won't ask for outside of it.
-					// Image bounds always have x/y of 0. And we know that (0,0) of image is the same as (x,y) of parent rectangle,
-					// so only need to worry about size.
-					parentr.setSize(Math.min(parentr.width, pBounds.width), Math.min(parentr.height, pBounds.height));
-					// Need to get the intersection of the client area with the
-					// parent's client area in case the parent's boundary is smaller.
-					r = r.intersect(parentr);
-					g.drawImage(pImage, r.x - parentr.x, r.y - parentr.y, r.width, r.height, r.x, r.y, r.width, r.height);
-				}
-			}
-		}
-		super.paintClientArea(g);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/figures/OutlineBorder.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/figures/OutlineBorder.java
deleted file mode 100755
index e8662f0..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/figures/OutlineBorder.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.figures;
-
-/*
- *  $RCSfile: OutlineBorder.java,v $
- *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:23 $ 
- */
-
-import org.eclipse.draw2d.*;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-import org.eclipse.draw2d.geometry.Insets;
-import org.eclipse.draw2d.geometry.Rectangle;
-
-/**
- * This border outlines the figure. It will draw the outline on top of the figure, not outside the client area. This is so that the client area won't be reduced by the border.
- */
-public class OutlineBorder extends AbstractBorder {
-
-	protected Color foreground = ColorConstants.black, background;
-	private int alpha = 255;
-
-	private boolean borderDisabled; // Is the border disabled? If it is then it won't draw.
-	private boolean overrideAndDisable; // A temporary override of the border disabled state. If true, then override and disable, if false no override.
-
-	private static final Insets insets = new Insets(0, 0, 0, 0);
-	protected int lineStyle = SWT.LINE_SOLID;
-
-	public OutlineBorder() {
-	}
-
-	public OutlineBorder(Color foreground, Color background) {
-		this.foreground = foreground;
-		this.background = background;
-	}
-
-	public OutlineBorder(int alpha, Color foreground, Color background) {
-		this(foreground, background);
-		setAlpha(alpha);
-	}
-
-	public OutlineBorder(Color foreground, Color background, int lineStyle) {
-		this(foreground, background);
-		this.lineStyle = lineStyle;
-	}
-
-	public OutlineBorder(int alpha, Color foreground, Color background, int lineStyle) {
-		this(alpha, foreground, background);
-		this.lineStyle = lineStyle;
-	}
-
-	public void paint(IFigure aFigure, Graphics g, Insets insets) {
-		if (overrideAndDisable || borderDisabled)
-			return; // Disabled, don't pain.
-		Rectangle r = getPaintRectangle(aFigure, insets);
-		r.resize(-1, -1); // Make room for the outline.
-		try {
-			g.setAlpha(getAlpha());
-		} catch (SWTException e) {
-			// Occurs if alpha's not available. No check on Graphics that tests for this yet.
-		}
-		g.setForegroundColor(foreground);
-		if (lineStyle != SWT.LINE_SOLID) {
-			// Non-solid lines need a background color to be set. If we have one use it, else compute it.
-			if (background != null)
-				g.setBackgroundColor(background);
-			else {
-				// If no background is set then make the background black
-				// and set it to XOR true. This means the line will dash over
-				// the background. The foreground will also XOR
-				// so it only works well if the foreground is Black or Gray. Colors
-				// don't work well because they only paint true on black
-				// areas
-				g.setBackgroundColor(ColorConstants.black);
-				g.setXORMode(true);
-			}
-		}
-		g.setLineStyle(lineStyle);
-		g.drawRectangle(r);
-	}
-
-	public void setColors(Color foreground, Color background) {
-		this.foreground = foreground;
-		this.background = background;
-	}
-
-	public void setLineStyle(int aStyle) {
-		lineStyle = aStyle;
-	}
-
-	public Insets getInsets(IFigure aFigure) {
-		return insets;
-	}
-
-	public boolean isOpaque() {
-		return true;
-	}
-
-	/**
-	 * Set the border to be disable so it doesn't paint.
-	 * 
-	 * @param borderDisabled
-	 *            The borderDisabled to set.
-	 * @since 1.0.0
-	 */
-	public void setBorderDisabled(boolean borderDisabled) {
-		this.borderDisabled = borderDisabled;
-	}
-
-	/**
-	 * Return whether the borderDisable flag is on.
-	 * 
-	 * @return Returns the borderDisabled.
-	 * 
-	 * @since 1.0.0
-	 */
-	public boolean isBorderDisabled() {
-		return borderDisabled;
-	}
-
-	/**
-	 * Override the current border disable setting and force a disable if <code>true</code> or restore current border disable state if <code>false</code>
-	 * 
-	 * @param overrideAndDisable
-	 *            <code>true</code> to force disable, <code>false</code> to revert to current disable state.
-	 * @since 1.0.0
-	 */
-	public void setOverrideAndDisable(boolean overrideAndDisable) {
-		this.overrideAndDisable = overrideAndDisable;
-	}
-
-	/**
-	 * Answers if currently override the disable state and it is temporarily disabled.
-	 * 
-	 * @return Returns the overrideAndDisable.
-	 * 
-	 * @since 1.0.0
-	 */
-	public boolean isOverrideAndDisable() {
-		return overrideAndDisable;
-	}
-
-	/**
-	 * @param alpha
-	 *            The alpha to set.
-	 * 
-	 * @since 1.1.0
-	 */
-	public void setAlpha(int alpha) {
-		this.alpha = alpha;
-	}
-
-	/**
-	 * @return Returns the alpha.
-	 * 
-	 * @since 1.1.0
-	 */
-	public int getAlpha() {
-		return alpha;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/images/IImageListener.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/images/IImageListener.java
deleted file mode 100755
index 583d0e5..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/images/IImageListener.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-/*
- *  $RCSfile: IImageListener.java,v $
- *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:23 $ 
- */
-package org.eclipse.xwt.tools.ui.designer.core.images;
-
-import java.util.EventListener;
-
-import org.eclipse.swt.graphics.Image;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public interface IImageListener extends EventListener {
-
-	/**
-	 * The image of this object has changed. The new image data is sent along. If it is null, then there is no image to render. This could happen because the size was (0,0) for example. In this case the listener would probably want to handle no image.
-	 * 
-	 * @param image
-	 */
-	public void imageChanged(Image image);
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/images/IImageNotifier.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/images/IImageNotifier.java
deleted file mode 100755
index 53b96d7..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/images/IImageNotifier.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.images;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public interface IImageNotifier {
-
-	public void addImageListener(IImageListener listener);
-
-	public void removeImageListener(IImageListener listener);
-
-	public boolean hasImageListeners();
-
-	public void refreshImage();
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/images/ImageFigureController.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/images/ImageFigureController.java
deleted file mode 100755
index 281f129..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/images/ImageFigureController.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.images;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.xwt.tools.ui.designer.core.figures.ImageFigure;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class ImageFigureController {
-
-	private ImageFigure figure;
-	private IImageNotifier imageNotifier;
-	private Image image;
-
-	private IImageListener imageListener = new IImageListener() {
-		public void imageChanged(Image newImage) {
-			setImage(newImage);
-		}
-	};
-
-	public void setImageFigure(ImageFigure imageFigure) {
-		this.figure = imageFigure;
-	}
-
-	/**
-	 * @param notifier
-	 *            the imageNotifier to set
-	 */
-	public void setImageNotifier(IImageNotifier notifier) {
-		if (notifier != null) {
-			imageNotifier = notifier;
-			imageNotifier.addImageListener(imageListener);
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					imageNotifier.refreshImage();
-				}
-			});
-		}
-	}
-
-	public void deactivate() {
-		if (imageNotifier != null) {
-			imageNotifier.removeImageListener(imageListener);
-		}
-		if (figure != null) {
-			figure.setImage(null);
-		}
-		if (image != null) {
-			image.dispose();
-		}
-	}
-
-	/**
-	 * @param image
-	 *            the image to set
-	 */
-	public void setImage(Image newImage) {
-		if (image != null) {
-			image.dispose();
-		}
-		image = newImage;
-		if (figure != null) {
-			figure.setImage(image);
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/images/ImageNotifierSupport.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/images/ImageNotifierSupport.java
deleted file mode 100755
index 845551d..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/images/ImageNotifierSupport.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.images;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class ImageNotifierSupport {
-	protected ListenerList imageListeners = null;
-
-	public synchronized void addImageListener(IImageListener aListener) {
-		if (imageListeners == null)
-			imageListeners = new ListenerList(ListenerList.IDENTITY);
-		imageListeners.add(aListener);
-	}
-
-	public synchronized void fireImageChanged(Image image) {
-		// Probably should make a copy of the notification list to prevent
-		// modifications while firing, but we'll see if this gives any problems.
-		Object[] listeners = imageListeners.getListeners();
-		if (listeners != null) {
-			for (int i = 0; i < listeners.length; i++) {
-				((IImageListener) listeners[i]).imageChanged(image);
-			}
-		}
-	}
-
-	public synchronized boolean hasImageListeners() {
-		return imageListeners != null && !imageListeners.isEmpty();
-	}
-
-	public synchronized void removeImageListener(IImageListener aListener) {
-		if (imageListeners != null)
-			imageListeners.remove(aListener);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
deleted file mode 100755
index b23c5f6..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.layouts;
-
-/*
- *  $RCSfile: FreeformXYFlowLayout.java,v $
- *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:22 $ 
- */
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Point;
-
-/**
- * @author pwalker
- * 
- *         To change this generated comment edit the template variable "typecomment": Window>Preferences>Java>Templates. To enable and disable the creation of type comments go to Window>Preferences>Java>Code Generation.
- */
-public class FreeformXYFlowLayout extends XYFlowLayout {
-
-	/**
-	 * Constructor for FreeformXYFlowLayout.
-	 */
-	public FreeformXYFlowLayout() {
-		super();
-	}
-
-	/**
-	 * @see org.eclipse.draw2d.XYLayout#getOrigin(IFigure)
-	 */
-	public Point getOrigin(IFigure parent) {
-		return new Point();
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
deleted file mode 100755
index 4ab4a56..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.layouts;
-
-/*
- *  $RCSfile: XYFlowLayout.java,v $
- *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:22 $ 
- */
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.XYLayout;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Insets;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-
-/**
- * This is the layout manager for an XY layout with Flow of those figures that don't have a specified location. It will layout the figures that have a constraint in their XY location. It will then go through the figures without a constraint (identified by x,y == XYLayoutUtility.PREFERRED_LOC) and find a spot for them. Creation date: (5/25/00 3:20:21 PM)
- * 
- * @author: Administrator
- */
-public class XYFlowLayout extends XYLayout {
-	protected static int fMarginWidth = 10; // Margin width when auto positioning figures
-	protected static int fMarginHeight = 10; // Margin height when auto positioning figures
-
-	/**
-	 * VCEFreeformLayout constructor comment.
-	 */
-	public XYFlowLayout() {
-		super();
-	}
-
-	protected void layoutIfRequired(IFigure f) {
-		Iterator itr = constraints.keySet().iterator();
-		while (itr.hasNext()) {
-			// See if any of the components have a preferred size or don't know their location.
-			IFigure child = (IFigure) itr.next();
-			Rectangle constraint = (Rectangle) getConstraint(child);
-			if (constraint == null)
-				continue;
-			// The width and height must be not set or the x/y must be unpositioned to require a layout
-			if (constraint.width == XYLayoutUtility.PREFERRED_SIZE || constraint.height == XYLayoutUtility.PREFERRED_SIZE || (constraint.x == XYLayoutUtility.PREFERRED_LOC && constraint.y == XYLayoutUtility.PREFERRED_LOC)) {
-				layout(f);
-				return;
-			}
-		}
-	}
-
-	/**
-	 * The preferred size is actually calculated within the layout so that the unpositioned and default sized children can be taken into account.
-	 */
-	protected Dimension calculatePreferredSize(IFigure f, int wHint, int hHint) {
-		// Under some circumstances we are asked to calculate preferred size
-		// when our figures have no x and y ( it is still XYLayoutUtility.PREFERRED_LOC ) representing
-		// preferredSize
-		// An example is a free form that has a number of unannotated objects none of which
-		// have explicit bounds set on them
-		// If so then we must lay the figures out so that we know what size they will occupy
-		layoutIfRequired(f);
-
-		Rectangle rect = new Rectangle();
-		Rectangle workingRect = new Rectangle();
-		Iterator children = f.getChildren().iterator();
-		while (children.hasNext()) {
-			IFigure child = (IFigure) children.next();
-			Rectangle r = (Rectangle) constraints.get(child);
-			if (r == null)
-				continue;
-			// For a figure that has no annotation the preferredX and Y will be left as unset
-			// however the actual X and Y may be set.
-			workingRect.x = (r.x == XYLayoutUtility.PREFERRED_LOC) ? child.getBounds().x : r.x;
-			workingRect.y = (r.y == XYLayoutUtility.PREFERRED_LOC) ? child.getBounds().y : r.y;
-
-			if (r.width == XYLayoutUtility.PREFERRED_SIZE || r.height == XYLayoutUtility.PREFERRED_SIZE) {
-				Dimension prefSize = child.getPreferredSize();
-				workingRect.width = (r.width == XYLayoutUtility.PREFERRED_SIZE) ? prefSize.width : r.width;
-				workingRect.height = (r.height == XYLayoutUtility.PREFERRED_SIZE) ? prefSize.height : r.height;
-			}
-			rect.union(r);
-		}
-		Dimension d = rect.getSize();
-		Insets insets = f.getInsets();
-		return d.expand(insets.getWidth(), insets.getHeight()).union(getBorderPreferredSize(f));
-	}
-
-	/**
-	 * Try to find a white space for a box of this size outside of the given rectangles, but within the bounding rectangle (expand bounding rectangle if required). A rectangle that has an x/y = MIN_VALUE is not to be considered for calculations since it has not yet been positioned. Creation date: (2/22/00 4:21:13 PM)
-	 */
-	protected void findWhiteSpaceFor(int rIndex, Rectangle[] rects, Rectangle boundingRect) {
-		int requestedWidth = rects[rIndex].width + 2 * fMarginWidth; // Increase by double margin width (one on each side)
-		int requestedHeight = rects[rIndex].height + 2 * fMarginHeight;
-		int leftMost = boundingRect.x;
-		int topMost = boundingRect.y;
-		int rightMost = boundingRect.x + boundingRect.width;
-		if (requestedWidth < boundingRect.width) {
-			// The requested size is less than the bounding rectangle, see where on the right
-			// it can fit, moving down as needed.
-
-			int highestBottom = topMost; // How high up to do search. Start at the the top.
-			// Perform search by width, then by height. Start at upper left and see if any intersections.
-			// If there aren't any, good, we found a spot. If there are, move right beyond all of the
-			// intersections and try again. If we get all of the way over, then move back to the highest
-			// bottom we found among all of the intersections and to the far left and try again, moving
-			// down the page until we find something.
-			while (true) {
-				int x = leftMost;
-				int y = highestBottom;
-				highestBottom = Integer.MAX_VALUE;
-				while (x + requestedWidth < rightMost) {
-					boolean intersects = false;
-					Rectangle tryRect = new Rectangle(x, y, requestedWidth, requestedHeight);
-					for (int i = 0; i < rects.length; i++) {
-						Rectangle rect = rects[i];
-						if (rect == null)
-							continue;
-						if (rect.x != XYLayoutUtility.PREFERRED_LOC && rect.y != XYLayoutUtility.PREFERRED_LOC && rect.intersects(tryRect)) {
-							intersects = true;
-							x = Math.max(x, rect.x + rect.width);
-							highestBottom = Math.min(highestBottom, rect.y + rect.height);
-						}
-					}
-					if (!intersects) {
-						// We got a space for it.
-						rects[rIndex].x = tryRect.x + fMarginWidth; // Move right by margin amount.
-						rects[rIndex].y = tryRect.y + fMarginHeight; // Move down by margin amount.
-						return;
-					}
-					// There was an intersection, x is now just right of the rightmost intersection.
-					// Loop will try searching here now.
-				}
-				// We gone all of the way to the right and couldn't find anything. Now move down
-				// to just below the height intersect bottom. Loop will try searching here.
-			}
-		} else {
-			// The requested width is larger than the bounding area, so go down and find first
-			// y that we can use that doesn't intersect anything.
-			int y = topMost;
-			while (true) {
-				boolean intersects = false;
-				Rectangle tryRect = new Rectangle(leftMost, y, requestedWidth, requestedHeight);
-				for (int i = 0; i < rects.length; i++) {
-					Rectangle rect = rects[i];
-					if (rect == null)
-						continue;
-					if (rect.x != XYLayoutUtility.PREFERRED_LOC && rect.y != XYLayoutUtility.PREFERRED_LOC && rect.intersects(tryRect)) {
-						intersects = true;
-						y = Math.max(y, rect.y + rect.height);
-					}
-				}
-				if (!intersects) {
-					// We got a space for it.
-					rects[rIndex].x = tryRect.x + fMarginWidth; // Move right by margin amount.
-					rects[rIndex].y = tryRect.y + fMarginHeight; // Move down by margin amount.
-					return;
-				}
-				// It intersects something in this row, move below the lowest of the intersections
-				// Loop will try again.
-			}
-		}
-	}
-
-	/**
-	 * Layout the figures according to their constraint. If they don't have one, then at the end find a spot for them.
-	 */
-	public void layout(IFigure containerFigure) {
-		List children = containerFigure.getChildren();
-		Rectangle newBounds[] = new Rectangle[children.size()];
-		Rectangle containerRectangle = null;
-		Point offset = getOrigin(containerFigure);
-
-		// For Freeform XY layout assume that the constraint is a rectangle.
-		// Loop through children, setting the displayBox to the constraint.
-		for (int i = 0; i < children.size(); i++) {
-			IFigure f = (IFigure) children.get(i);
-			Rectangle bounds = (Rectangle) getConstraint(f);
-			if (bounds == null)
-				continue;
-			bounds = new Rectangle(bounds.x, bounds.y, bounds.width, bounds.height); // So we don't modify the one still in the figure.
-			if (bounds.width == XYLayoutUtility.PREFERRED_SIZE || bounds.height == XYLayoutUtility.PREFERRED_SIZE) {
-				Dimension prefSize = f.getPreferredSize();
-				if (bounds.width == XYLayoutUtility.PREFERRED_SIZE)
-					bounds.width = prefSize.width;
-				if (bounds.height == XYLayoutUtility.PREFERRED_SIZE)
-					bounds.height = prefSize.height;
-			}
-			if (bounds.x != XYLayoutUtility.PREFERRED_LOC && bounds.y != XYLayoutUtility.PREFERRED_LOC) {
-				bounds.translate(offset); // Adjust from relative to absolute (including inset).
-				containerRectangle = containerRectangle != null ? containerRectangle.union(bounds) : bounds.getCopy().setLocation(Math.min(0, bounds.x), Math.min(0, bounds.y)); // Container area should hold all assigned figures.
-			}
-			newBounds[i] = bounds;
-		}
-
-		// Now loop through and apply the bounds, and find an area for any not set.
-		if (containerRectangle != null)
-			containerRectangle.setSize(Math.max(containerRectangle.width, 1000), Math.max(containerRectangle.height, 1000));
-		else
-			containerRectangle = new Rectangle();
-		for (int i = 0; i < newBounds.length; i++) {
-			if (newBounds[i] == null)
-				continue;
-			if (newBounds[i].x == XYLayoutUtility.PREFERRED_LOC && newBounds[i].y == XYLayoutUtility.PREFERRED_LOC) {
-				// Find a spot for it.
-				findWhiteSpaceFor(i, newBounds, containerRectangle);
-			}
-			IFigure f = (IFigure) children.get(i);
-			Rectangle newBound = newBounds[i];
-			f.setBounds(newBound);
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
deleted file mode 100755
index 80b2077..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-/*
- *  $RCSfile: XYLayoutUtility.java,v $
- *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:22 $ 
- */
-package org.eclipse.xwt.tools.ui.designer.core.layouts;
-
-import org.eclipse.draw2d.geometry.Rectangle;
-
-/**
- * Helper for XYLayout constraint control.
- * 
- * @since 1.1.0
- */
-public class XYLayoutUtility {
-
-	public static final int PREFERRED_SIZE = -1; // This is hard-code in GEF XYLayout and XYLayoutEditPolicy for default. If changed then we need to change here.
-	public static final int PREFERRED_LOC = Integer.MIN_VALUE;
-
-	/**
-	 * Modify the rectangle and mark the sections desired as preferred.
-	 * 
-	 * @param rect
-	 *            rectangle to modify
-	 * @param preferredLoc
-	 *            make location preferred
-	 * @param preferredWidth
-	 *            make width preferred
-	 * @param preferredHeight
-	 *            make height preferred
-	 * @return the rectangle modified. (It is the same rectangle instance).
-	 * @since 1.1.0
-	 */
-	public static Rectangle modifyPreferredRectangle(Rectangle rect, boolean preferredLoc, boolean preferredWidth, boolean preferredHeight) {
-		if (preferredLoc)
-			rect.setLocation(PREFERRED_LOC, PREFERRED_LOC);
-		if (preferredWidth)
-			rect.width = PREFERRED_SIZE;
-		if (preferredHeight)
-			rect.height = PREFERRED_SIZE;
-		return rect;
-	}
-
-	/**
-	 * Using the input bounds create a rectangle and mark the sections desired as preferred. The non-preferred sections are copied as is.
-	 * 
-	 * @param x
-	 * @param y
-	 * @param width
-	 * @param height
-	 * @param preferredLoc
-	 *            make location preferred
-	 * @param preferredWidth
-	 *            make width preferred
-	 * @param preferredHeight
-	 *            make height preferred
-	 * @return the rectangle modified. (It is the same rectangle instance).
-	 * @since 1.1.0
-	 */
-	public static Rectangle modifyPreferredRectangle(int x, int y, int width, int height, boolean preferredLoc, boolean preferredWidth, boolean preferredHeight) {
-		if (preferredLoc)
-			x = y = PREFERRED_LOC;
-		if (preferredWidth)
-			width = PREFERRED_SIZE;
-		if (preferredHeight)
-			height = PREFERRED_SIZE;
-		return new Rectangle(x, y, width, height);
-	}
-
-	/**
-	 * Query to see if the constraint contains any preferred settings (i.e. size or location should be set to a preferred/default). It will return false if all settings in the constraint are set.
-	 * 
-	 * @param constraint
-	 * @param moved
-	 *            <code>true</code> if should look at the loc portion of the constraint
-	 * @param resized
-	 *            <code>true</code> if should look at the size portion of the constraint.
-	 * @return <code>true</code> if any of the constraint settings are asking for preferred according to the moved/resized flags.
-	 * 
-	 * @since 1.1.0
-	 */
-	public static boolean constraintContainsPreferredSettings(Rectangle constraint, boolean moved, boolean resized) {
-		return (resized && (constraint.width == PREFERRED_SIZE || constraint.height == PREFERRED_SIZE)) || (moved && constraint.x == PREFERRED_LOC && constraint.y == PREFERRED_LOC);
-	}
-
-	/**
-	 * Query to see if the constraint contains any preferred settings (i.e. size or location should be set to a preferred/default). It will return false if all settings in the constraint are set.
-	 * 
-	 * @param x
-	 * @param y
-	 * @param width
-	 * @param height
-	 * @param moved
-	 *            <code>true</code> if should look at the loc portion of the constraint
-	 * @param resized
-	 *            <code>true</code> if should look at the size portion of the constraint.
-	 * @return
-	 * 
-	 * @since 1.1.0
-	 */
-	public static boolean constraintContainsPreferredSettings(int x, int y, int width, int height, boolean moved, boolean resized) {
-		return (resized && (width == PREFERRED_SIZE || height == PREFERRED_SIZE)) || (moved && x == PREFERRED_LOC && y == PREFERRED_LOC);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/AbstractModelBuilder.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/AbstractModelBuilder.java
deleted file mode 100755
index 5dec82d..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/AbstractModelBuilder.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.model;
-
-import org.eclipse.emf.common.notify.Notification;
-
-/**
- * @author jin.liu(jin.liu@soyatec.com)
- */
-public abstract class AbstractModelBuilder implements IModelBuilder {
-
-	private ModelNotifySupport notifySupport = new ModelNotifySupport();
-
-	public void addModelListener(ModelChangeListener listener) {
-		notifySupport.addModelListener(listener);
-	}
-
-	public boolean hasListener(ModelChangeListener listener) {
-		return notifySupport.hasListener(listener);
-	}
-
-	public void removeModelListener(ModelChangeListener listener) {
-		notifySupport.removeModelListener(listener);
-	}
-
-	public void dispatchEvent(Notification event) {
-		notifySupport.dispatchEvent(event);
-	}
-
-	public void dispose() {
-		notifySupport.dispose();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/IModelBuilder.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/IModelBuilder.java
deleted file mode 100755
index 3f6a209..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/IModelBuilder.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.model;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-
-/**
- * @author bo.zhou
- * @author jliu
- */
-public interface IModelBuilder extends IModelNotify {
-
-	/**
-	 * Load model from given designer.
-	 */
-	public boolean doLoad(IEditorPart designer, IProgressMonitor monitor);
-
-	/**
-	 * Return loaded {@link XamlDocument};
-	 */
-	public EObject getDiagram();
-
-	public void doSave(IProgressMonitor monitor);
-
-	public EObject getModel(Object textNode);
-
-	public IDOMNode getTextNode(Object model);
-
-	public void dispose();
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/IModelNotify.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/IModelNotify.java
deleted file mode 100755
index 0b30caf..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/IModelNotify.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.model;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public interface IModelNotify {
-
-	public void addModelListener(ModelChangeListener listener);
-
-	public boolean hasListener(ModelChangeListener listener);
-
-	public void removeModelListener(ModelChangeListener listener);
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/ModelChangeListener.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/ModelChangeListener.java
deleted file mode 100755
index 326b3c9..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/ModelChangeListener.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.model;
-
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public abstract class ModelChangeListener extends AdapterImpl {
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/ModelNotifySupport.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/ModelNotifySupport.java
deleted file mode 100755
index c2d8698..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/ModelNotifySupport.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.model;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.Notification;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public class ModelNotifySupport implements IModelNotify {
-
-	private List<ModelChangeListener> listeners;
-
-	// private List<Notification> eventsQueue;
-
-	public void addModelListener(ModelChangeListener listener) {
-		if (listeners == null) {
-			listeners = new ArrayList<ModelChangeListener>();
-		}
-		listeners.add(listener);
-	}
-
-	public boolean hasListener(ModelChangeListener listener) {
-		return listeners != null && listeners.contains(listener);
-	}
-
-	public void removeModelListener(ModelChangeListener listener) {
-		if (listeners != null) {
-			listeners.remove(listener);
-		}
-	}
-
-	public void dispatchEvent(Notification event) {
-		if (listeners != null) {
-			for (ModelChangeListener l : listeners) {
-				l.notifyChanged(event);
-			}
-		}
-	}
-
-	public void dispose() {
-		if (listeners != null) {
-			listeners.clear();
-		}
-		listeners = null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/AbstractDiagramEditPart.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/AbstractDiagramEditPart.java
deleted file mode 100755
index edcd80d..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/AbstractDiagramEditPart.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.parts;
-
-import org.eclipse.draw2d.FreeformLayer;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gef.SnapToGeometry;
-import org.eclipse.gef.SnapToHelper;
-import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
-import org.eclipse.xwt.tools.ui.designer.core.layouts.FreeformXYFlowLayout;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public abstract class AbstractDiagramEditPart extends AbstractGraphicalEditPart {
-
-	public AbstractDiagramEditPart(EObject document) {
-		setModel(document);
-	}
-
-	/**
-	 * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#createFigure()
-	 */
-	protected IFigure createFigure() {
-		IFigure contentPane = new FreeformLayer();
-		contentPane.setBorder(new MarginBorder(20));
-		contentPane.setLayoutManager(new FreeformXYFlowLayout());
-		// contentPane.setBackgroundColor(ColorConstants.white);
-		contentPane.setOpaque(false);
-		return contentPane;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#getAdapter(java.lang.Class)
-	 */
-	public Object getAdapter(Class key) {
-		if (key == SnapToHelper.class) {
-			return new SnapToGeometry(this);
-		}
-		return super.getAdapter(key);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/ActionFilterConstants.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/ActionFilterConstants.java
deleted file mode 100755
index 3ac6bf4..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/ActionFilterConstants.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.parts;
-
-public final class ActionFilterConstants {
-	static public final String MODEL_TYPE = "ModelType";
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/EditPartRunnable.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
deleted file mode 100755
index 5a08645..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-/*
- *  $RCSfile: EditPartRunnable.java,v $
- *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:24 $ 
- */
-package org.eclipse.xwt.tools.ui.designer.core.parts;
-
-import org.eclipse.gef.EditPart;
-
-/**
- * This is a runnable that takes an editpart and when it is run it will validate that the editpart is still active before running it. If not active, it won't run it. This is useful for delayed executions where the runnable will run later and it is possible that the editpart has been deactivated since then.
- * 
- * @since 1.1.0
- */
-public abstract class EditPartRunnable implements Runnable {
-
-	private final EditPart host;
-
-	public EditPartRunnable(EditPart host) {
-		this.host = host;
-
-	}
-
-	protected final EditPart getHost() {
-		return host;
-	}
-
-	public final void run() {
-		if (getHost().isActive())
-			doRun();
-	}
-
-	/**
-	 * Subclasses should implement this method to do the actual run.
-	 * 
-	 * 
-	 * @since 1.1.0
-	 */
-	protected abstract void doRun();
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/RefreshContext.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/RefreshContext.java
deleted file mode 100755
index 87417ba..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/RefreshContext.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.parts;
-
-/**
- * @author jin.liu (jin.liu@soyatec.com)
- * 
- */
-public class RefreshContext {
-
-	public static final int REFRESH_IMAGE = 1;
-	public static final int REFRESH_CHILDREN = REFRESH_IMAGE << 1;
-	public static final int REFRESH_VISUALS = REFRESH_CHILDREN << 1;
-	public static final int REFRESH_ALL = REFRESH_IMAGE | REFRESH_CHILDREN
-			| REFRESH_VISUALS;
-
-	private int refreshType = 0;
-
-	/**
-	 * Create a EditPartContext with given refreshType.
-	 */
-	RefreshContext(int refreshType) {
-		this.refreshType = refreshType;
-	}
-
-	public boolean refreshImage() {
-		return refresh(REFRESH_IMAGE);
-	}
-
-	public void setImageRefreshed() {
-		setRefreshed(REFRESH_IMAGE);
-	}
-
-	public boolean refreshChildren() {
-		return refresh(REFRESH_CHILDREN);
-	}
-
-	public void setVisualsRefreshed() {
-		setRefreshed(REFRESH_VISUALS);
-	}
-
-	public void setChildrenRefreshed() {
-		setRefreshed(REFRESH_CHILDREN);
-	}
-
-	public boolean refreshVisuals() {
-		return refresh(REFRESH_VISUALS);
-	}
-
-	public int getRefreshType() {
-		return refreshType;
-	}
-
-	public void setRefreshed(int type) {
-		refreshType = refreshType ^ type;
-	}
-
-	public boolean refresh(int type) {
-		return (refreshType & type) != 0;
-	}
-
-	public static final RefreshContext ALL() {
-		return createRefreshContext(REFRESH_ALL);
-	}
-
-	public static final RefreshContext IMAGE() {
-		return createRefreshContext(REFRESH_IMAGE);
-	}
-
-	public static final RefreshContext CHILDREN() {
-		return createRefreshContext(REFRESH_CHILDREN);
-	}
-
-	public static final RefreshContext VISUALS() {
-		return createRefreshContext(REFRESH_VISUALS);
-	}
-
-	public static final RefreshContext createRefreshContext(int refreshType) {
-		return new RefreshContext(refreshType);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/VisualEditPart.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/VisualEditPart.java
deleted file mode 100755
index b92ac28..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/VisualEditPart.java
+++ /dev/null
@@ -1,335 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.parts;
-
-import java.util.Iterator;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.XYLayout;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IActionFilter;
-import org.eclipse.xwt.tools.ui.designer.core.figures.ContentPaneFigure;
-import org.eclipse.xwt.tools.ui.designer.core.figures.ImageFigure;
-import org.eclipse.xwt.tools.ui.designer.core.figures.OutlineBorder;
-import org.eclipse.xwt.tools.ui.designer.core.images.IImageListener;
-import org.eclipse.xwt.tools.ui.designer.core.images.ImageFigureController;
-import org.eclipse.xwt.tools.ui.designer.core.policies.DefaultComponentEditPolicy;
-import org.eclipse.xwt.tools.ui.designer.core.util.JavaModelUtil;
-import org.eclipse.xwt.tools.ui.designer.core.visuals.IVisualInfo;
-import org.eclipse.xwt.tools.ui.designer.core.visuals.swt.WidgetInfo;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public abstract class VisualEditPart extends AbstractGraphicalEditPart implements IActionFilter {
-
-	private boolean useBorder = false;
-	private boolean transparent;
-	private ImageFigureController imageFigureController;
-	private IImageListener imageListener;
-	private IVisualInfo visualInfo;
-
-	public VisualEditPart(EObject model) {
-		setModel(model);
-	}
-
-	public boolean testAttribute(Object target, String name, String value) {
-		if (ActionFilterConstants.MODEL_TYPE.equals(name)) {
-			Object model = getModel();
-			if (model != null) {
-				Class<?> type = model.getClass();
-				return JavaModelUtil.isKindOf(type, value);
-			}
-		}
-		return false;
-	}
-	
-	/**
-	 * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#createFigure()
-	 */
-	protected IFigure createFigure() {
-		ContentPaneFigure figure = new ContentPaneFigure();
-		IFigure contentPane = null;
-		if (!isRoot()) {
-			contentPane = createContentPane();
-		} else {
-			ImageFigure imageFigure = new ImageFigure();
-			if (isUseBorder())
-				imageFigure.setBorder(new OutlineBorder(150,
-						ColorConstants.lightGray, null, Graphics.LINE_SOLID));
-			imageFigure.setOpaque(!isTransparent());
-			if (!isTransparent()) {
-				imageFigureController = new ImageFigureController();
-				imageFigureController.setImageFigure(imageFigure);
-			}
-			contentPane = imageFigure;
-		}
-		contentPane.setLayoutManager(new XYLayout());
-		figure.setContentPane(contentPane);
-		return figure;
-	}
-
-	protected IFigure createContentPane() {
-		return new Label();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#getContentPane()
-	 */
-	public IFigure getContentPane() {
-		return getContentPaneFigure().getContentPane();
-	}
-
-	protected ContentPaneFigure getContentPaneFigure() {
-		return ((ContentPaneFigure) getFigure());
-	}
-
-	/**
-	 * @see org.eclipse.gef.editparts.AbstractEditPart#createEditPolicies()
-	 */
-	protected void createEditPolicies() {
-		// Default component role allows delete and basic behavior of a
-		// component within a parent edit part that contains it
-		installEditPolicy(EditPolicy.COMPONENT_ROLE,
-				new DefaultComponentEditPolicy());
-
-	}
-
-	/**
-	 * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#activate()
-	 */
-	public void activate() {
-		if (!isTransparent() && imageFigureController != null) {
-			imageFigureController.setImageNotifier(getVisualInfo());
-		}
-		if (imageListener == null) {
-			imageListener = new IImageListener() {
-				public void imageChanged(Image image) {
-					refreshVisuals();
-					for (Iterator iterator = getChildren().iterator(); iterator
-							.hasNext();) {
-						EditPart child = (EditPart) iterator.next();
-						if (child instanceof VisualEditPart) {
-							((VisualEditPart) child).refreshVisuals();
-						}
-					}
-				}
-			};
-		}
-		getVisualInfo().addImageListener(imageListener);
-		super.activate();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#refresh()
-	 */
-	public void refresh() {
-		// Do nothing here, sub class can add some other refreshes.
-	}
-
-	protected boolean isVisualInfoObsolate() {
-		return false;
-	}
-	
-	public final void refresh(RefreshContext context) {
-		if (isVisualInfoObsolate()) {
-			visualInfo = null; // to create a new one
-		}
-		
-		if (context == null) {
-			return;
-		}
-		if (!validateVisuals()) {
-			return;
-		}
-		// refresh children here.
-		if (context.refreshChildren()) {
-			refreshChildren();
-		}
-
-		// try to refresh image and visuals.
-		if (context.refreshImage()) {
-			getUIDisplay().asyncExec(new Runnable() {
-				public void run() {
-					refreshImage();
-				}
-			});
-			context.setImageRefreshed();
-		}
-		if (context.refreshVisuals()) {
-			refreshVisuals();
-		}
-		// allow subclass refresh.
-		refresh();
-	}
-
-	protected boolean validateVisuals() {
-		return getVisualInfo() != null
-				&& getVisualInfo().getVisualObject() != null;
-	}
-
-	/**
-	 * This method has declared to final, please use refresh(RefreshContext).
-	 */
-	protected final void refreshImage() {
-		VisualEditPart root = getRootVisualEditPart();
-		if (root.validateVisuals()) {
-			root.getVisualInfo().refreshImage();
-		}
-	}
-
-	/**
-	 * This method has declared to final, please use refresh(RefreshContext).
-	 */
-	protected final void refreshVisuals() {
-		if (!validateVisuals()) {
-			return;
-		}
-		IFigure figure = getFigure();
-		if (figure != null && figure.getParent() != null) {
-			Rectangle r = new Rectangle(getBounds());
-			figure.setBounds(r);
-			setLayoutConstraint(VisualEditPart.this, figure, r);
-		}
-	}
-
-	/**
-	 * Don't remove this overwrite method. see RefreshJob. This method has
-	 * declared to final, please use refresh(RefreshContext).
-	 */
-	protected final void refreshChildren() {
-		super.refreshChildren();
-	}
-
-	protected Display getUIDisplay() {
-		IVisualInfo visualInfo = getVisualInfo();
-		if (visualInfo instanceof WidgetInfo) {
-			return ((WidgetInfo) visualInfo).getDisplay();
-		}
-		return Display.getCurrent();
-	}
-
-	protected VisualEditPart getRootVisualEditPart() {
-		EditPart root = this;
-		while (!(root.getParent() instanceof AbstractDiagramEditPart)) {
-			if (root.getParent() == null) {
-				break;
-			}
-			root = root.getParent();
-		}
-		return (VisualEditPart) root;
-	}
-
-	protected Rectangle getBounds() {
-		return getVisualInfo().getBounds();
-	}
-
-	/**
-	 * @return the visualComponent
-	 */
-	public IVisualInfo getVisualInfo() {
-		if (visualInfo == null) {
-			visualInfo = createVisualInfo();
-		}
-		return visualInfo;
-	}
-
-	/**
-	 * @return
-	 */
-	protected abstract IVisualInfo createVisualInfo();
-
-	/**
-	 * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#deactivate()
-	 */
-	public void deactivate() {
-		super.deactivate();
-		if (imageFigureController != null) {
-			imageFigureController.deactivate();
-		}
-		IVisualInfo visualInfo = getVisualInfo();
-		if (imageListener != null && visualInfo != null) {
-			visualInfo.removeImageListener(imageListener);
-		}
-	}
-
-	/**
-	 * @param useBorder
-	 *            the useBorder to set
-	 */
-	public void setUseBorder(boolean useBorder) {
-		this.useBorder = useBorder;
-	}
-
-	/**
-	 * @return the useBorder
-	 */
-	public boolean isUseBorder() {
-		return useBorder;
-	}
-
-	/**
-	 * @param transparent
-	 *            the transparent to set
-	 */
-	public void setTransparent(boolean transparent) {
-		this.transparent = transparent;
-	}
-
-	/**
-	 * @return the transparent
-	 */
-	public boolean isTransparent() {
-		return transparent;
-	}
-
-	public boolean isRoot() {
-		return getParent() instanceof AbstractDiagramEditPart;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editparts.AbstractEditPart#getModel()
-	 */
-	public EObject getCastModel() {
-		return (EObject) super.getModel();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editparts.AbstractEditPart#toString()
-	 */
-	public String toString() {
-		IVisualInfo visualInfo = getVisualInfo();
-		if (visualInfo != null && visualInfo.getVisualObject() != null) {
-			return "EditPart("
-					+ visualInfo.getVisualObject().getClass().getSimpleName()
-					+ ")";
-		}
-		return "";
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/root/BindingLayer.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/root/BindingLayer.java
deleted file mode 100755
index 9c7aaac..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/root/BindingLayer.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.parts.root;
-
-import org.eclipse.draw2d.FreeformLayer;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class BindingLayer extends FreeformLayer {
-
-	public static final String ID = "Binding Layer";
-
-	public BindingLayer() {
-		setVisible(false);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/root/DesignerRootEditPart.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/root/DesignerRootEditPart.java
deleted file mode 100755
index ea91467..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/root/DesignerRootEditPart.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.parts.root;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.LayeredPane;
-import org.eclipse.gef.editparts.ScalableFreeformRootEditPart;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class DesignerRootEditPart extends ScalableFreeformRootEditPart {
-
-	protected void createLayers(LayeredPane layeredPane) {
-		super.createLayers(layeredPane);
-		layeredPane.add(new BindingLayer(), BindingLayer.ID);
-	}
-
-	public void setLayerVisible(Object layerId, boolean visible) {
-		IFigure layer = getLayer(layerId);
-		if (layer != null) {
-			layer.setVisible(visible);
-		}
-	}
-
-	public Boolean getLayerVisible(Object layerId) {
-		IFigure layer = getLayer(layerId);
-		if (layer != null) {
-			return layer.isVisible();
-		}
-		return Boolean.FALSE;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/tools/FocusBorder.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/tools/FocusBorder.java
deleted file mode 100755
index 5b2445c..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/tools/FocusBorder.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.parts.tools;
-
-import org.eclipse.draw2d.Border;
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.LineBorder;
-import org.eclipse.draw2d.geometry.Insets;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.swt.graphics.Color;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class FocusBorder extends LineBorder {
-
-	public FocusBorder() {
-		setColor(ColorConstants.blue);
-		setWidth(1);
-	}
-
-	public void paint(IFigure figure, Graphics graphics, Insets insets) {
-		if (figure instanceof SelectionHandle) {
-			IFigure ownerFigure = ((SelectionHandle) figure).getOwnerFigure();
-			Rectangle r = ownerFigure.getBounds().getCopy();
-			tempRect.setBounds(r);
-		} else {
-			Rectangle paintRectangle = getPaintRectangle(figure, insets);
-			tempRect.setBounds(paintRectangle);
-		}
-		if (getWidth() % 2 != 0) {
-			tempRect.width--;
-			tempRect.height--;
-		}
-		tempRect.shrink(getWidth() / 2, getWidth() / 2);
-		graphics.setLineWidth(getWidth());
-		graphics.setLineStyle(getStyle());
-		if (getColor() != null)
-			graphics.setForegroundColor(getColor());
-		graphics.drawRectangle(tempRect);
-	}
-
-	public static Border getBorder(Color color, int width) {
-		FocusBorder focusBorder = new FocusBorder();
-		focusBorder.setColor(color);
-		focusBorder.setWidth(width);
-		return focusBorder;
-	}
-
-	public static Border getDefaultBorder() {
-		return new FocusBorder();
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/tools/SelectionHandle.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/tools/SelectionHandle.java
deleted file mode 100755
index 1f3c99e..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/tools/SelectionHandle.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.parts.tools;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.DragTracker;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.handles.AbstractHandle;
-import org.eclipse.gef.tools.SelectEditPartTracker;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class SelectionHandle extends AbstractHandle {
-
-	public SelectionHandle(GraphicalEditPart host) {
-		super(host, new SelectionLocator(host.getFigure()));
-		setBorder(new FocusBorder());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.handles.AbstractHandle#createDragTracker()
-	 */
-	protected DragTracker createDragTracker() {
-		SelectEditPartTracker tracker = new SelectEditPartTracker(getOwner());
-		tracker.setDefaultCursor(getCursor());
-		return tracker;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.handles.AbstractHandle#getOwnerFigure()
-	 */
-	public IFigure getOwnerFigure() {
-		return super.getOwnerFigure();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.draw2d.Figure#containsPoint(int, int)
-	 */
-	public boolean containsPoint(int x, int y) {
-		if (!super.containsPoint(x, y))
-			return false;
-		return !Rectangle.SINGLETON.setBounds(getBounds()).shrink(2, 2).contains(x, y);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/tools/SelectionLocator.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/tools/SelectionLocator.java
deleted file mode 100755
index 6f6765d..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/tools/SelectionLocator.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.parts.tools;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Locator;
-import org.eclipse.draw2d.geometry.Insets;
-import org.eclipse.draw2d.geometry.PrecisionRectangle;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.handles.HandleBounds;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class SelectionLocator implements Locator {
-
-	private IFigure figure;
-
-	/**
-	 * @param figure
-	 */
-	public SelectionLocator(IFigure figure) {
-		this.figure = figure;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.draw2d.Locator#relocate(org.eclipse.draw2d.IFigure)
-	 */
-	public void relocate(IFigure target) {
-		Insets insets = target.getInsets();
-		Rectangle bounds;
-		if (figure instanceof HandleBounds)
-			bounds = ((HandleBounds) figure).getHandleBounds();
-		else
-			bounds = figure.getBounds();
-		bounds = new PrecisionRectangle(bounds.getResized(-1, -1));
-		figure.translateToAbsolute(bounds);
-		target.translateToRelative(bounds);
-		bounds.translate(-insets.left, -insets.top);
-		bounds.resize(insets.getWidth() + 1, insets.getHeight() + 1);
-		target.setBounds(bounds);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/policies/DefaultComponentEditPolicy.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/policies/DefaultComponentEditPolicy.java
deleted file mode 100755
index e2a9d2b..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/policies/DefaultComponentEditPolicy.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.policies;
-
-import org.eclipse.gef.RequestConstants;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.editpolicies.ComponentEditPolicy;
-import org.eclipse.gef.requests.ForwardedRequest;
-import org.eclipse.gef.requests.GroupRequest;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class DefaultComponentEditPolicy extends ComponentEditPolicy {
-	/**
-	 * @see org.eclipse.gef.editpolicies.ComponentEditPolicy#createDeleteCommand(GroupRequest)
-	 */
-	protected Command createDeleteCommand(GroupRequest deleteRequest) {
-		ForwardedRequest forwardedRequest = new ForwardedRequest(RequestConstants.REQ_DELETE_DEPENDANT, getHost());
-		return getHost().getParent().getCommand(forwardedRequest);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/ConfigurableProblemHandler.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/ConfigurableProblemHandler.java
deleted file mode 100755
index 30fda26..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/ConfigurableProblemHandler.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.problems;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.xwt.tools.ui.designer.core.editor.Designer;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ConfigurableProblemHandler implements ProblemHandler {
-
-	private static final String MARKS_ID = "org.eclipse.xwt.tools.ui.designer.markers";
-
-	private Designer designer;
-	private boolean hasProblems;
-	private List<IProblemChecker> checkers;
-
-	public ConfigurableProblemHandler(Designer designer) {
-		this.designer = designer;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.tools.designer.problems.ProblemHandler#handle(java.util.List)
-	 */
-	public void handle(List<Problem> problems) {
-		if (!isValidate()) {
-			return;
-		}
-		// 1. delete old ones.
-		clear();
-
-		hasProblems = problems != null && !problems.isEmpty();
-
-		// 2. create new ones.
-		if (!hasProblems) {
-			return;
-		}
-		try {
-			IFile file = designer.getFile();
-			for (Problem problem : problems) {
-				makeMaker(file, problem);
-			}
-			file.refreshLocal(IResource.DEPTH_INFINITE, null);
-		} catch (CoreException e) {
-		}
-	}
-
-	private void makeMaker(IFile file, Problem problem) {
-		try {
-			IMarker marker = file.createMarker(MARKS_ID);
-			marker.setAttribute(IMarker.TRANSIENT, true);
-			marker.setAttribute(IMarker.MESSAGE, problem.getMessage());
-			marker.setAttribute(IMarker.CHAR_START, problem.start);
-			marker.setAttribute(IMarker.CHAR_END, problem.end);
-			int type = problem.getType();
-			switch (type) {
-			case Problem.ERROR:
-				marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_ERROR);
-				break;
-			case Problem.INFO:
-				marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_INFO);
-				break;
-			case Problem.WARNING:
-				marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_WARNING);
-				break;
-			}
-			marker.setAttribute(IMarker.LINE_NUMBER, problem.line);
-		} catch (CoreException e) {
-		}
-	}
-
-	public void clear() {
-		IFile file = designer.getFile();
-		try {
-			file.deleteMarkers(MARKS_ID, true, IResource.DEPTH_INFINITE);
-		} catch (CoreException e) {
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.tools.designer.problems.ProblemHandler#isValidate()
-	 */
-	public boolean isValidate() {
-		return designer != null && designer.getFile() != null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.tools.designer.problems.ProblemHandler#handle()
-	 */
-	public void handle() {
-		if (checkers == null) {
-			checkers = ProblemCheckerRegistry.INSTANCE.getCheckers(designer.getSite().getPluginId());
-		}
-		if (checkers != null) {
-			List<Problem> problems = new ArrayList<Problem>();
-			for (IProblemChecker checker : checkers) {
-				if (!checker.isAdapterFor(designer)) {
-					continue;
-				}
-				List<Problem> result = checker.doCheck();
-				if (result != null && !result.isEmpty()) {
-					problems.addAll(result);
-				}
-			}
-			handle(problems);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.tools.designer.problems.ProblemHandler#hasProblems()
-	 */
-	public boolean hasProblems() {
-		handle();
-		return hasProblems;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/DesignerProblemChecker.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/DesignerProblemChecker.java
deleted file mode 100755
index bc23762..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/DesignerProblemChecker.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.problems;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.xwt.tools.ui.designer.core.editor.Designer;
-import org.w3c.dom.Node;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public abstract class DesignerProblemChecker implements IProblemChecker {
-
-	private Designer designer;
-
-	protected Problem createError(Node node, String msg) {
-		return createProblem(node, msg, Problem.ERROR);
-	}
-
-	protected Problem createProblem(Node node, String msg, int type) {
-		int startOffset = 0;
-		if (node instanceof IDOMNode) {
-			startOffset = ((IDOMNode) node).getStartOffset();
-		}
-		int endOffset = 0;
-		if (node instanceof IDOMNode) {
-			endOffset = ((IDOMNode) node).getEndOffset();
-		}
-		int line = 0;
-		// try {
-		// StructuredTextViewer textViewer = designer.getTextViewer();
-		// if (textViewer != null) {
-		// line = textViewer.getDocument().getLineOfOffset(startOffset) + 1;
-		// }
-		// } catch (BadLocationException e) {
-		// }
-		return createProblem(msg, type, node, startOffset, endOffset, line);
-	}
-
-	protected Problem createProblem(String message, int type, Object source, int start, int end, int line) {
-		Problem problem = new Problem(message, type);
-		problem.setSource(source);
-		problem.start = start;
-		problem.end = end;
-		problem.line = line;
-		return problem;
-	}
-
-	protected IDOMDocument getTextDocument(IDocument doc) {
-		IStructuredModel model = StructuredModelManager.getModelManager().getExistingModelForRead(doc);
-		if (model != null && model instanceof IDOMModel) {
-			return ((IDOMModel) model).getDocument();
-		}
-
-		return null;
-	}
-
-	public Designer getDesigner() {
-		return designer;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.tools.designer.problems.IProblemChecker#isAdapterFor(java.lang.Object)
-	 */
-	public boolean isAdapterFor(Object type) {
-		boolean isAdapter = type != null && type instanceof Designer;
-		if (isAdapter) {
-			designer = (Designer) type;
-		}
-		return isAdapter;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/IProblemChecker.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/IProblemChecker.java
deleted file mode 100755
index 02f21cc..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/IProblemChecker.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.problems;
-
-import java.util.List;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public interface IProblemChecker {
-
-	boolean isAdapterFor(Object type);
-
-	List<Problem> doCheck();
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/Problem.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/Problem.java
deleted file mode 100755
index 9bd4673..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/Problem.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.problems;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class Problem {
-
-	// Problem Types.
-	public static final int NONE = 0;
-	public static final int WARNING = 1;
-	public static final int INFO = 2;
-	public static final int ERROR = 3;
-
-	private String message;
-	private int type = NONE;
-
-	public int start;
-	public int end;
-	public int line;
-
-	private Object source;
-
-	public Problem(String message, int type) {
-		this.message = message;
-		this.type = type;
-	}
-
-	public String getMessage() {
-		return message;
-	}
-
-	public void setMessage(String message) {
-		this.message = message;
-	}
-
-	public int getType() {
-		return type;
-	}
-
-	public void setType(int type) {
-		this.type = type;
-	}
-
-	public Object getSource() {
-		return source;
-	}
-
-	public void setSource(Object source) {
-		this.source = source;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/ProblemCheckerRegistry.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/ProblemCheckerRegistry.java
deleted file mode 100755
index b492698..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/ProblemCheckerRegistry.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.problems;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.xwt.tools.ui.designer.core.DesignerPlugin;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ProblemCheckerRegistry {
-
-	public static final String EXTENSION_ID = "problemCheckers";
-	private static final String CHECKER = "class";
-
-	public final static ProblemCheckerRegistry INSTANCE = new ProblemCheckerRegistry();
-
-	private Map<String, IProblemChecker> name2checker = new HashMap<String, IProblemChecker>();
-
-	private ProblemCheckerRegistry() {
-		// 
-	}
-
-	public List<IProblemChecker> getCheckers(String bundleId) {
-		List<IProblemChecker> checkers = new ArrayList<IProblemChecker>();
-		IConfigurationElement[] configElem = Platform.getExtensionRegistry().getConfigurationElementsFor(DesignerPlugin.PLUGIN_ID, EXTENSION_ID);
-		for (IConfigurationElement ce : configElem) {
-			try {
-				if (bundleId != null && !bundleId.equals(ce.getNamespaceIdentifier())) {
-					continue;
-				}
-				String attribute = ce.getAttribute(CHECKER);
-				IProblemChecker checker = name2checker.get(attribute);
-				if (checker == null) {
-					checker = (IProblemChecker) ce.createExecutableExtension(CHECKER);
-					name2checker.put(attribute, checker);
-				}
-				checkers.add(checker);
-			} catch (CoreException e) {
-				return Collections.emptyList();
-			}
-		}
-		return checkers;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/ProblemHandler.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/ProblemHandler.java
deleted file mode 100755
index d7bfd46..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/ProblemHandler.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.problems;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public interface ProblemHandler {
-
-	/**
-	 * Does this Handler validate or not.
-	 */
-	boolean isValidate();
-
-	/**
-	 * Handle or check problems.
-	 */
-	void handle();
-
-	/**
-	 * Return True if some problems has been handled.
-	 */
-	boolean hasProblems();
-
-	/**
-	 * Clear all problems if needed.
-	 */
-	void clear();
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/ColorLabelProvider.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/ColorLabelProvider.java
deleted file mode 100755
index 2116e5c..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/ColorLabelProvider.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.properties;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.xwt.tools.ui.designer.core.util.StringUtil;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ColorLabelProvider extends LabelProvider {
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
-	 */
-	public String getText(Object element) {
-		if (element instanceof Color) {
-			Color color = (Color) element;
-			return StringUtil.format(new Object[] { color.getRed(), color.getGreen(), color.getBlue() });
-		}
-		return super.getText(element);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/FontLabelProvider.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/FontLabelProvider.java
deleted file mode 100755
index 81eb25f..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/FontLabelProvider.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.properties;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class FontLabelProvider extends LabelProvider {
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
-	 */
-	public String getText(Object element) {
-		if (element instanceof Font) {
-			FontData[] fontData = ((Font) element).getFontData();
-			if (fontData != null && fontData.length > 0) {
-				return fontData[0].toString();
-			}
-		}
-		return super.getText(element);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/LabelProviderFactory.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/LabelProviderFactory.java
deleted file mode 100755
index ba69ef5..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/LabelProviderFactory.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.properties;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class LabelProviderFactory {
-	private static Map<Class<?>, ILabelProvider> cache = new HashMap<Class<?>, ILabelProvider>();
-
-	public static ILabelProvider getLabelProvider(Class<?> type) {
-		ILabelProvider labelProvider = cache.get(type);
-		if (labelProvider == null) {
-			labelProvider = createLabelProvider(type);
-			cache.put(type, labelProvider);
-		}
-		return labelProvider;
-	}
-
-	private static ILabelProvider createLabelProvider(Class<?> type) {
-		if (Color.class == type) {
-			return new ColorLabelProvider();
-		} else if (Font.class == type) {
-			return new FontLabelProvider();
-		} else if (Rectangle.class == type) {
-			return new RectangleLabelProvider();
-		} else if (Point.class == type) {
-			return new PointLabelProvider();
-		}
-		return new LabelProvider() {
-			public String getText(Object element) {
-				if (element.getClass().isArray()) {
-					return "[...]";
-				}
-				return super.getText(element);
-			}
-		};
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/PointLabelProvider.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/PointLabelProvider.java
deleted file mode 100755
index 8d639ef..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/PointLabelProvider.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.properties;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.xwt.tools.ui.designer.core.util.StringUtil;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class PointLabelProvider extends LabelProvider {
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
-	 */
-	public String getText(Object element) {
-		if (element instanceof Point) {
-			Point p = (Point) element;
-			return StringUtil.format(p);
-		}
-		return super.getText(element);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/RectangleLabelProvider.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/RectangleLabelProvider.java
deleted file mode 100755
index df5c0d3..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/RectangleLabelProvider.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.properties;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.xwt.tools.ui.designer.core.util.StringUtil;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class RectangleLabelProvider extends LabelProvider {
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
-	 */
-	public String getText(Object element) {
-		if (element instanceof Rectangle) {
-			Rectangle r = (Rectangle) element;
-			return StringUtil.format(r);
-		}
-		return super.getText(element);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/AbstractCellEditor.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/AbstractCellEditor.java
deleted file mode 100755
index 37744e5..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/AbstractCellEditor.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.properties.editors;
-
-import org.eclipse.jface.viewers.DialogCellEditor;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.xwt.tools.ui.designer.core.properties.LabelProviderFactory;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public abstract class AbstractCellEditor extends DialogCellEditor {
-
-	public AbstractCellEditor(Composite parent) {
-		super(parent);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.DialogCellEditor#updateContents(java.lang.Object)
-	 */
-	protected void updateContents(Object value) {
-		if (value != null) {
-			ILabelProvider labelProvider = LabelProviderFactory.getLabelProvider(value.getClass());
-			value = labelProvider.getText(value);
-		}
-		super.updateContents(value);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.DialogCellEditor#openDialogBox(org.eclipse.swt.widgets.Control)
-	 */
-	protected Object openDialogBox(Control cellEditorWindow) {
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/ArrayCellEditor.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/ArrayCellEditor.java
deleted file mode 100755
index 4969c21..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/ArrayCellEditor.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.properties.editors;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.TraverseEvent;
-import org.eclipse.swt.events.TraverseListener;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ArrayCellEditor extends AbstractCellEditor {
-
-	public ArrayCellEditor(Composite parent) {
-		super(parent);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.properties.editors.AbstractCellEditor#openDialogBox(org.eclipse.swt.widgets.Control)
-	 */
-	protected Object openDialogBox(Control cellEditorWindow) {
-		Object value = getValue();
-		String[] initValue = null;
-		if (value instanceof String[]) {
-			initValue = (String[]) value;
-		}
-		ArrayDialog dialog = new ArrayDialog(cellEditorWindow.getShell(), initValue);
-		if (dialog.open() == Window.OK) {
-			initValue = dialog.getArray();
-		}
-		return initValue;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.properties.editors.AbstractCellEditor#updateContents(java.lang.Object)
-	 */
-	protected void updateContents(Object value) {
-		super.updateContents("[...]");
-	}
-
-	static class ArrayDialog extends Dialog {
-		private Text text;
-		private String result;
-		private String[] initValue;
-
-		protected ArrayDialog(Shell parentShell, String[] initValue) {
-			super(parentShell);
-			setShellStyle(SWT.SHELL_TRIM);
-			this.initValue = initValue;
-		}
-
-		protected Control createDialogArea(Composite parent) {
-			Composite control = (Composite) super.createDialogArea(parent);
-			control.setLayout(new FillLayout());
-			text = new Text(control, SWT.BORDER | SWT.MULTI | SWT.WRAP);
-			if (initValue != null) {
-				StringBuilder sb = new StringBuilder();
-				for (String item : initValue) {
-					sb.append(item);
-					sb.append("\n");
-				}
-				result = sb.toString();
-			}
-			if (result != null) {
-				text.setText(result);
-			}
-			text.addListener(SWT.Modify, new Listener() {
-				public void handleEvent(Event event) {
-					result = text.getText();
-				}
-			});
-			text.addTraverseListener(new TraverseListener() {
-				public void keyTraversed(TraverseEvent e) {
-					if (e.detail == SWT.TRAVERSE_RETURN) {
-						text.getParent().layout(true, true);
-						getDialogArea().getParent().layout();
-					}
-				}
-			});
-			return control;
-		}
-
-		public String getResult() {
-			return result;
-		}
-
-		public String[] getArray() {
-			if (result == null) {
-				return new String[0];
-			}
-			List<String> resultList = new ArrayList<String>();
-			StringTokenizer stk = new StringTokenizer(result, "\n");
-			while (stk.hasMoreElements()) {
-				resultList.add(stk.nextToken().trim());
-			}
-			return resultList.toArray(new String[0]);
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/BooleanCellEditor.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/BooleanCellEditor.java
deleted file mode 100755
index 3c5c1fc..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/BooleanCellEditor.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.properties.editors;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class BooleanCellEditor extends AbstractCellEditor {
-	private Button checkBox;
-
-	public BooleanCellEditor(Composite parent) {
-		super(parent);
-	}
-
-	protected Control createControl(Composite parent) {
-		if (checkBox == null || checkBox.isDisposed()) {
-			checkBox = new Button(parent, SWT.CHECK);
-		}
-		return checkBox;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.CheckboxCellEditor#doSetValue(java.lang.Object)
-	 */
-	protected void doSetValue(Object newValue) {
-		boolean booleanValue = false;
-		if (newValue instanceof Boolean) {
-			booleanValue = ((Boolean) newValue).booleanValue();
-		} else if (newValue instanceof String) {
-			booleanValue = "true".equals(newValue);
-		}
-		checkBox.setSelection(booleanValue);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.CheckboxCellEditor#doGetValue()
-	 */
-	protected Object doGetValue() {
-		return checkBox.getSelection();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.DialogCellEditor#doSetFocus()
-	 */
-	protected void doSetFocus() {
-		checkBox.setFocus();
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/CharacterCellEditor.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/CharacterCellEditor.java
deleted file mode 100755
index af35ca8..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/CharacterCellEditor.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.properties.editors;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class CharacterCellEditor extends org.eclipse.jface.viewers.TextCellEditor {
-
-	public CharacterCellEditor(Composite parent) {
-		super(parent);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.DialogCellEditor#doSetValue(java.lang.Object)
-	 */
-	protected void doSetValue(Object value) {
-		String textValue = value == null ? "" : value.toString();
-		super.doSetValue(textValue);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.TextCellEditor#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createControl(Composite parent) {
-		Text text = (Text) super.createControl(parent);
-		text.setTextLimit(1);
-		return text;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/ColorCellEditor.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/ColorCellEditor.java
deleted file mode 100755
index a815862..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/ColorCellEditor.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.properties.editors;
-
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.ColorDialog;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.xwt.tools.ui.designer.core.properties.LabelProviderFactory;
-
-public class ColorCellEditor extends AbstractCellEditor {
-
-	/**
-	 * constructor
-	 */
-	public ColorCellEditor(Composite parent) {
-		super(parent);
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.DialogCellEditor#openDialogBox(org.eclipse.swt.widgets.Control)
-	 */
-	protected Object openDialogBox(Control cellEditorWindow) {
-		String color = null;
-		Object value = getValue();
-		if (value instanceof Color) {
-			color = LabelProviderFactory.getLabelProvider(Color.class).getText(value);
-		} else if (value instanceof String) {
-			color = (String) value;
-		}
-		ColorDialog dialog = new ColorDialog(new Shell());
-		RGB rgb = dialog.open();
-		if (rgb != null) {
-			return new Color(Display.getDefault(), rgb);
-		}
-		return color;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/FontCellEditor.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/FontCellEditor.java
deleted file mode 100755
index f1ec141..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/FontCellEditor.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.properties.editors;
-
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.FontDialog;
-
-public class FontCellEditor extends AbstractCellEditor {
-
-	/**
-	 * Creates a new Font dialog cell editor parented under the given control. The cell editor value is null initially, and has no validator.
-	 * 
-	 * @param parent
-	 *            the parent control
-	 */
-	public FontCellEditor(Composite parent) {
-		super(parent);
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.DialogCellEditor#openDialogBox(Control)
-	 */
-	protected Object openDialogBox(Control cellEditorWindow) {
-		FontDialog ftDialog = new FontDialog(cellEditorWindow.getShell());
-		Object value = getValue();
-		if (value != null && value instanceof Font) {
-			Font font = (Font) value;
-			if (font != null) {
-				FontData[] fontDatas = font.getFontData();
-				ftDialog.setFontList(fontDatas);
-			}
-		}
-		FontData fData = ftDialog.open();
-		if (fData != null) {
-			value = new Font(Display.getCurrent(), fData);
-		}
-		return value;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/ImageCellEditor.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/ImageCellEditor.java
deleted file mode 100755
index 5d14b8b..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/ImageCellEditor.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.properties.editors;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-public class ImageCellEditor extends AbstractCellEditor {
-
-	public ImageCellEditor(Composite parent) {
-		super(parent);
-	}
-
-	protected Object openDialogBox(Control cellEditorWindow) {
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/IntegerCellEditor.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/IntegerCellEditor.java
deleted file mode 100755
index b5e13b4..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/IntegerCellEditor.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.properties.editors;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Spinner;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class IntegerCellEditor extends AbstractCellEditor {
-
-	private Spinner spinner;
-
-	/**
-	 * @param parent
-	 */
-	public IntegerCellEditor(Composite parent) {
-		super(parent);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.DialogCellEditor#createContents(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createControl(Composite cell) {
-		if (spinner == null || spinner.isDisposed()) {
-			spinner = new Spinner(cell, SWT.NONE);
-			spinner.setMinimum(-1);
-			spinner.setMaximum(Integer.MAX_VALUE);
-		}
-		return spinner;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.DialogCellEditor#doSetValue(java.lang.Object)
-	 */
-	protected void doSetValue(Object value) {
-		if (spinner == null || spinner.isDisposed()) {
-			return;
-		}
-		int intValue = 0;
-		if (value instanceof Integer) {
-			intValue = ((Integer) value).intValue();
-		} else if (value instanceof String) {
-			try {
-				intValue = Integer.parseInt((String) value);
-			} catch (NumberFormatException e) {
-			}
-		}
-		spinner.setSelection(intValue);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.DialogCellEditor#doGetValue()
-	 */
-	protected Object doGetValue() {
-		if (spinner == null || spinner.isDisposed()) {
-			return 0;
-		}
-		return spinner.getSelection();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.DialogCellEditor#doSetFocus()
-	 */
-	protected void doSetFocus() {
-		if (spinner != null && !spinner.isDisposed()) {
-			spinner.setFocus();
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/PointCellEditor.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/PointCellEditor.java
deleted file mode 100755
index d7af5b6..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/PointCellEditor.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.properties.editors;
-
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.xwt.tools.ui.designer.core.dialogs.IntArrayDialog;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class PointCellEditor extends AbstractCellEditor {
-
-	public PointCellEditor(Composite parent) {
-		super(parent);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.DialogCellEditor#openDialogBox(org.eclipse.swt.widgets.Control)
-	 */
-	protected Object openDialogBox(Control cellEditorWindow) {
-		Point point = new Point(0, 0);
-		Object value = getValue();
-		if (value instanceof Point) {
-			point.x = ((Point) value).x;
-			point.y = ((Point) value).y;
-		}
-		IntArrayDialog dialog = new IntArrayDialog(cellEditorWindow.getShell(), new int[] { point.x, point.y },
-				new String[] { "x:", "y:" });
-		if (dialog.open() == Window.OK) {
-			int[] result = dialog.getResult();
-			point.x = result[0];
-			point.y = result[1];
-		}
-		return point;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/RectangleCellEditor.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/RectangleCellEditor.java
deleted file mode 100755
index 08e2134..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/RectangleCellEditor.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.properties.editors;
-
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.xwt.tools.ui.designer.core.dialogs.IntArrayDialog;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class RectangleCellEditor extends AbstractCellEditor {
-
-	public RectangleCellEditor(Composite parent) {
-		super(parent);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.DialogCellEditor#openDialogBox(org.eclipse.swt.widgets.Control)
-	 */
-	protected Object openDialogBox(Control cellEditorWindow) {
-		Rectangle rect = new Rectangle(0, 0, 0, 0);
-		Object value = getValue();
-		if (value instanceof Rectangle) {
-			Rectangle r = (Rectangle) value;
-			rect.x = r.x;
-			rect.y = r.y;
-			rect.width = r.width;
-			rect.height = r.height;
-		}
-		IntArrayDialog dialog = new IntArrayDialog(cellEditorWindow.getShell(), new int[] { rect.x, rect.y, rect.width,
-				rect.height }, new String[] { "x:", "y:", "width:", "height:" });
-		if (dialog.open() == Window.OK) {
-			int[] result = dialog.getResult();
-			rect.x = result[0];
-			rect.y = result[1];
-			rect.width = result[2];
-			rect.height = result[3];
-		}
-		return rect;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/style/SWTStyles.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/style/SWTStyles.java
deleted file mode 100755
index 456f9d7..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/style/SWTStyles.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.style;
-
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.ResourceBundle;
-import java.util.Set;
-import java.util.StringTokenizer;
-
-import org.eclipse.xwt.tools.ui.designer.core.DesignerPlugin;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class SWTStyles {
-	private static ResourceBundle RESOURCE_BUNDLE = ResourceBundle
-			.getBundle("org.eclipse.xwt.tools.ui.designer.core.style.styles");
-
-	private static StyleGroup[] DEFINED_GROUPS;
-	private static final Map<Class<?>, StyleGroup[]> stylesCache = new HashMap<Class<?>, StyleGroup[]>(1);
-
-	public synchronized static StyleGroup[] getDefinedGroups() {
-		if (DEFINED_GROUPS == null) {
-			List<StyleGroup> groups = new ArrayList<StyleGroup>();
-			Field[] feilds = StyleGroup.class.getDeclaredFields();
-			for (Field field : feilds) {
-				try {
-					Object object = field.get(null);
-					if (object != null && object instanceof StyleGroup) {
-						groups.add((StyleGroup) object);
-					}
-				} catch (Exception e) {
-					DesignerPlugin.logInfo(e);
-				}
-			}
-			DEFINED_GROUPS = groups.toArray(new StyleGroup[0]);
-		}
-		return DEFINED_GROUPS;
-	}
-
-	public static StyleGroup[] getStyles(Class<?> type) {
-		StyleGroup[] styleGroups = stylesCache.get(type);
-		if (styleGroups == null) {
-			List<StyleGroup> groups = new ArrayList<StyleGroup>();
-			List<String> styles = new ArrayList<String>(styles(type));
-
-			Collections.sort(styles);
-
-			StyleGroup[] definedGroups = getDefinedGroups();
-
-			for (StyleGroup grp : definedGroups) {
-				if (grp.match(type, styles)) {
-					groups.add(grp);
-				}
-			}
-			for (StyleGroup added : groups) {
-				styles.removeAll(Arrays.asList(added.getStyles()));
-			}
-			if (!styles.isEmpty()) {
-				groups.add(new StyleGroup(type, "default", styles.toArray(new String[styles.size()])));
-			}
-			styleGroups = groups.toArray(new StyleGroup[groups.size()]);
-			stylesCache.put(type, styleGroups);
-		}
-		return styleGroups;
-	}
-
-	public static StyleGroup getStyles(Class<?> type, String groupName) {
-		if (type == null || groupName == null) {
-			return null;
-		}
-		StyleGroup[] styles = getStyles(type);
-		for (StyleGroup styleGroup : styles) {
-			if (groupName.equals(styleGroup.getGroupName())) {
-				return styleGroup;
-			}
-		}
-		return null;
-	}
-
-	private static Set<String> styles(Class<?> type) {
-		Set<String> result = new HashSet<String>();
-		String key = type.getName();
-		if (RESOURCE_BUNDLE.getObject(key) == null){
-			return Collections.emptySet();
-		}
-		String value = RESOURCE_BUNDLE.getString(key);
-		if (value != null) {
-			StringTokenizer stk = new StringTokenizer(value, ",");
-			while (stk.hasMoreElements()) {
-				result.add(stk.nextToken().trim());
-			}
-		} else {
-			Class<?> superclass = type.getSuperclass();
-			if (superclass != null && superclass != Object.class) {
-				result.addAll(styles(superclass));
-			}
-		}
-		return result;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/style/StyleGroup.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/style/StyleGroup.java
deleted file mode 100755
index 059a884..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/style/StyleGroup.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.style;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.CoolBar;
-import org.eclipse.swt.widgets.DateTime;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.ProgressBar;
-import org.eclipse.swt.widgets.Scale;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Slider;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.swt.widgets.Tree;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class StyleGroup {
-
-	public static final StyleGroup ALIGNMENT = new StyleGroup(new Class[] { Button.class, Label.class }, -1, SWT.SEPARATOR | SWT.ARROW, "alignment", new String[] { "LEFT", "CENTER", "RIGHT" });
-	public static final StyleGroup SELECTION = new StyleGroup(new Class[] { org.eclipse.swt.widgets.List.class, Text.class, Table.class, Tree.class, StyledText.class }, "selection", new String[] { "SINGLE", "MUTIL" });
-	public static final StyleGroup TYPE = new StyleGroup(new Class[] { Button.class, ToolItem.class }, "type", new String[] { "PUSH", "CHECK", "RADIO", "TOGGLE", "ARROW" });
-
-	// for Arrow
-	public static final StyleGroup ARROW = new StyleGroup(new Class[] { Button.class }, SWT.ARROW, "arrow", new String[] { "LEFT", "RIGHT", "UP", "DOWN" });
-
-	// for Label
-	public static final StyleGroup LABEL_SHADOW = new StyleGroup(new Class[] { Label.class }, SWT.SEPARATOR, "shadow", new String[] { "SHADOW_IN", "SHADOW_OUT", "SHADOW_NONE" });
-	public static final StyleGroup CLABEL_SHADOW = new StyleGroup(CLabel.class, "shadow", new String[] { "SHADOW_IN", "SHADOW_OUT", "SHADOW_NONE" });
-
-	public static final StyleGroup ORIENTATION = new StyleGroup(Control.class, "orientation", new String[] { "LEFT_TO_RIGHT", "RIGHT_TO_LEFT" });
-
-	public static final StyleGroup PROGRESS_TYPE = new StyleGroup(new Class<?>[] { ProgressBar.class, CoolBar.class, ToolBar.class, SashForm.class, Scale.class, Slider.class, Label.class }, "type", new String[] { "VERTICAL", "HORIZONTAL" });
-
-	public static final StyleGroup GROUP_SHADOW = new StyleGroup(Group.class, "shadow", new String[] { "SHADOW_ETCHED_IN", "SHADOW_ETCHED_OUT", "SHADOW_IN", "SHADOW_OUT", "SHADOW_NONE" });
-
-	// for Shell
-	public static final StyleGroup MODALITY = new StyleGroup(Shell.class, "modality", new String[] { "PRIMARY_MODAL", "MODELESS", "APPLICATION_MODAL", "SYSTEM_MODAL" });
-	public static final StyleGroup TRIM = new StyleGroup(Shell.class, "trim", new String[] { "SHELL_TRIM", "DIALOG_TRIM", "NO_TRIM" });
-
-	// for Text
-	public static final StyleGroup LINES = new StyleGroup(Text.class, "lines", new String[] { "SINGLE", "MUTIL" });
-
-	// for Date
-	public static final StyleGroup DATE_TYPE = new StyleGroup(DateTime.class, "type", new String[] { "DATE", "TIME", "CALENDAR" });
-	public static final StyleGroup DATE_FORMAT = new StyleGroup(DateTime.class, "format", new String[] { "MEDIUM", "SHORT", "LONG" });
-
-	public static final StyleGroup LOCATION = new StyleGroup(new Class[] { TabFolder.class, CTabFolder.class }, "location", new String[] { "TOP", "BOTTOM" });
-
-	private String groupName;
-	private String[] styles;
-	private int accessibleStyle = -1;
-	private int unaccessibleStyle = -1;
-	private Class<?>[] accessibleTypes;
-
-	public StyleGroup(Class<?> type, String groupName, String[] styles) {
-		this(new Class[] { type }, groupName, styles);
-	}
-
-	public StyleGroup(Class<?>[] accessibleTypes, String groupName, String[] styles) {
-		this(accessibleTypes, -1, groupName, styles);
-	}
-
-	public StyleGroup(Class<?>[] accessibleTypes, int accessibleStyle, String groupName, String[] styles) {
-		this(accessibleTypes, accessibleStyle, -1, groupName, styles);
-	}
-
-	public StyleGroup(Class<?>[] accessibleTypes, int accessibleStyle, int unaccessibleStyle, String groupName, String[] styles) {
-		this.accessibleTypes = accessibleTypes;
-		this.accessibleStyle = accessibleStyle;
-		this.unaccessibleStyle = unaccessibleStyle;
-		this.groupName = groupName;
-		this.styles = styles;
-	}
-
-	public String[] getStyles() {
-		return styles;
-	}
-
-	public String getGroupName() {
-		return groupName;
-	}
-
-	public boolean match(Class<?> type, List<String> styleList) {
-		return match(type) && match(styleList);
-	}
-
-	public boolean match(List<String> styleList) {
-		if (styles == null || styleList == null) {
-			return false;
-		}
-		return styleList.containsAll(Arrays.asList(styles));
-	}
-
-	public boolean match(Class<?> type) {
-		if (accessibleTypes == null || type == null) {
-			return false;
-		}
-		for (Class<?> t : accessibleTypes) {
-			if (t.isAssignableFrom(type)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	public boolean match(int style) {
-		if (unaccessibleStyle != -1 && (unaccessibleStyle & style) != 0) {
-			return false;
-		}
-		if (accessibleStyle == -1) {
-			return true;
-		}
-		return (accessibleStyle & style) != 0;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/style/styles.properties b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/style/styles.properties
deleted file mode 100755
index 012b07a..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/style/styles.properties
+++ /dev/null
@@ -1,50 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     Soyatec - initial API and implementation
-###############################################################################
-org.eclipse.swt.widgets.Button=TOGGLE, ARROW, PUSH, RADIO, CHECK, FLAT, UP, DOWN, LEFT, RIGHT, CENTER, BORDER
-org.eclipse.swt.widgets.Combo=DROP_DOWN, READ_ONLY, SIMPLE, BORDER
-org.eclipse.swt.widgets.Composite=NO_BACKGROUND, NO_FOCUS, NO_REDRAW_RESIZE, NO_MERGE_PAINTS, NO_RADIO_GROUP, EMBEDDED, DOUBLE_BUFFERED, BORDER
-org.eclipse.swt.widgets.Control=BORDER, LEFT_TO_RIGHT, RIGHT_TO_LEFT 
-org.eclipse.swt.widgets.CoolBar=FLAT, HORIZONTAL, VERTICAL, BORDER 
-org.eclipse.swt.widgets.CoolItem=DROP_DOWN , BORDER
-org.eclipse.swt.widgets.DateTime=DATE, TIME, CALENDAR, SHORT, MEDIUM, LONG, BORDER 
-org.eclipse.swt.widgets.Decorations=TOOL, NO_TRIM, RESIZE, TITLE, CLOSE, MIN, MAX, BORDER, ON_TOP, BORDER 
-org.eclipse.swt.widgets.Dialog=PRIMARY_MODAL, APPLICATION_MODAL, SYSTEM_MODAL , BORDER
-org.eclipse.swt.widgets.ExpandBar=V_SCROLL , BORDER
-org.eclipse.swt.widgets.FileDialog=MULTI , BORDER
-org.eclipse.swt.widgets.Group=SHADOW_IN, SHADOW_OUT, SHADOW_ETCHED_IN, SHADOW_ETCHED_OUT, SHADOW_NONE, BORDER 
-org.eclipse.swt.widgets.Label=SEPARATOR, WRAP, SHADOW_IN, SHADOW_OUT, SHADOW_NONE, LEFT, RIGHT, CENTER, HORIZONTAL, VERTICAL, BORDER 
-org.eclipse.swt.widgets.List=MULTI, SINGLE , BORDER
-org.eclipse.swt.widgets.Menu=BAR, DROP_DOWN, POP_UP, NO_RADIO_GROUP, LEFT_TO_RIGHT, RIGHT_TO_LEFT 
-org.eclipse.swt.widgets.MenuItem=SEPARATOR, PUSH, RADIO, CHECK, CASCADE 
-org.eclipse.swt.widgets.ProgressBar=INDETERMINATE, MIN, SMOOTH, HORIZONTAL, VERTICAL, BORDER 
-org.eclipse.swt.widgets.Sash=SMOOTH, HORIZONTAL, VERTICAL, BORDER 
-org.eclipse.swt.widgets.Scale=HORIZONTAL, VERTICAL, BORDER 
-org.eclipse.swt.widgets.Scrollable=H_SCROLL, V_SCROLL, BORDER 
-org.eclipse.swt.widgets.ScrollBar=HORIZONTAL, VERTICAL, BORDER 
-org.eclipse.swt.widgets.Shell=TOOL, NO_TRIM, DIALOG_TRIM, SHELL_TRIM, RESIZE, TITLE, CLOSE, MIN, MAX, BORDER, ON_TOP, MODELESS, PRIMARY_MODAL, APPLICATION_MODAL, SYSTEM_MODAL 
-org.eclipse.swt.widgets.Slider=HORIZONTAL, VERTICAL, BORDER 
-org.eclipse.swt.widgets.Spinner=READ_ONLY, WRAP, BORDER 
-org.eclipse.swt.widgets.TabFolder=TOP, BOTTOM, BORDER 
-org.eclipse.swt.widgets.Table=CHECK, MULTI, SINGLE, HIDE_SELECTION, FULL_SELECTION, VIRTUAL, BORDER 
-org.eclipse.swt.widgets.TableColumn=LEFT, RIGHT, CENTER 
-org.eclipse.swt.widgets.Text=MULTI, SINGLE, READ_ONLY, WRAP, SEARCH, PASSWORD, LEFT, RIGHT, CENTER, BORDER 
-org.eclipse.swt.widgets.ToolBar=WRAP, SHADOW_OUT, FLAT, RIGHT, HORIZONTAL, VERTICAL, BORDER 
-org.eclipse.swt.widgets.ToolItem=DROP_DOWN, SEPARATOR, PUSH, RADIO, CHECK 
-org.eclipse.swt.widgets.ToolTip=BALLOON 
-org.eclipse.swt.widgets.Tracker=RESIZE, UP, DOWN, LEFT, RIGHT 
-org.eclipse.swt.widgets.Tree=CHECK, MULTI, SINGLE, FULL_SELECTION, VIRTUAL, BORDER 
-org.eclipse.swt.widgets.TreeColumn=LEFT, RIGHT, CENTER 
-org.eclipse.swt.custom.CCombo=BORDER, READ_ONLY, FLAT
-org.eclipse.swt.custom.CLabel=BORDER, LEFT, RIGHT, CENTER, SHADOW_IN, SHADOW_OUT, SHADOW_NONE
-org.eclipse.swt.custom.CTabFolder=CLOSE, TOP, BOTTOM, FLAT, BORDER, SINGLE, MULTI, BORDER
-org.eclipse.swt.custom.CTabItem=CLOSE
-org.eclipse.swt.custom.SashForm=BORDER, HORIZONTAL, VERTICAL, SMOOTH
-org.eclipse.swt.custom.StyledText=BORDER, FULL_SELECTION, MULTI, READ_ONLY, SINGLE, WRAP
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/DisplayUtil.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/DisplayUtil.java
deleted file mode 100755
index 7734009..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/DisplayUtil.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.util;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * @author bo.zhou
- */
-public class DisplayUtil {
-	public static void asyncExec(Runnable runnable) {
-		asyncExec(getDisplay(), runnable);
-	}
-
-	public static void asyncExec(Display display, Runnable runnable) {
-		check(display).asyncExec(runnable);
-	}
-
-	private static Display check(Display display) {
-		if (display == null) {
-			display = getDisplay();
-		}
-		if (display == null) {
-			throw new SWTException(SWT.ERROR_INVALID_ARGUMENT, "Invalid thread access");
-		}
-		return display;
-	}
-
-	public static void syncExec(Runnable runnable) {
-		if (runnable != null) {
-			getDisplay().syncExec(runnable);
-		}
-	}
-
-	public static void syncExec(Display display, Runnable runnable) {
-		check(display).syncExec(runnable);
-	}
-
-	public static void timerExec(int milliseconds, Runnable runnable) {
-		if (runnable != null) {
-			getDisplay().timerExec(milliseconds, runnable);
-		}
-	}
-
-	public static void timerExec(Display display, int milliseconds, Runnable runnable) {
-		check(display).timerExec(milliseconds, runnable);
-	}
-
-	public static Display getDisplay() {
-		Display display = Display.getCurrent();
-		if (display == null) {
-			display = Display.getDefault();
-		}
-		if (display == null) {
-			display = new Display();
-		}
-		return display;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/DomHelper.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/DomHelper.java
deleted file mode 100755
index bc4770c..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/DomHelper.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.util;
-
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class DomHelper {
-	public static String XMLNS = "xmlns";
-
-	/**
-	 * resolve the namespace
-	 * 
-	 * @param node
-	 * @return
-	 */
-	public static String lookupNamespaceURI(Node node) {
-		String string = node.getNamespaceURI();
-		if (string != null) {
-			return string;
-		}
-		return lookupNamespaceURI(node, node.getPrefix());
-	}
-
-	public static String lookupNamespaceURI(Node node, Node attr) {
-		String string = attr.getNamespaceURI();
-		if (string != null) {
-			return string;
-		}
-		return lookupNamespaceURI(node, attr.getPrefix());
-	}
-
-	public static String lookupNamespaceURI(Node node, String prefix) {
-		NamedNodeMap map = node.getAttributes();
-		if (map != null && map.getLength() > 0) {
-			for (int i = 0; i < map.getLength(); i++) {
-				Node attr = map.item(i);
-				String name = attr.getNodeName();
-				if (name.startsWith(XMLNS)) {
-					int index = name.indexOf(':');
-					if (index == -1 || prefix == null) {
-						if (index == -1 && prefix == null) {
-							return attr.getNodeValue();
-						}
-						continue;
-					}
-					String prefixName = name.substring(index + 1);
-					if (prefix.equals(prefixName)) {
-						return attr.getNodeValue();
-					}
-				}
-			}
-		}
-
-		Node nodeParent = node.getParentNode();
-		if (nodeParent != null) {
-			return lookupNamespaceURI(nodeParent, prefix);
-		}
-		return null;
-	}
-
-	public static String lookupNamespacePrefix(Node node, String namespace) {
-		NamedNodeMap map = node.getAttributes();
-		if (map != null && map.getLength() > 0) {
-			for (int i = 0; i < map.getLength(); i++) {
-				Node attr = map.item(i);
-				String name = attr.getNodeName();
-				if (name.startsWith(XMLNS) && namespace.equals(attr.getNodeValue())) {
-					int index = name.indexOf(':');
-					if (index == -1) {
-						return "";
-					}
-					return name.substring(index + 1);
-				}
-			}
-		}
-
-		Node nodeParent = node.getParentNode();
-		if (nodeParent != null) {
-			return lookupNamespacePrefix(nodeParent, namespace);
-		}
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/Draw2dTools.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/Draw2dTools.java
deleted file mode 100755
index 888baf3..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/Draw2dTools.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.util;
-
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class Draw2dTools {
-
-	public static Rectangle toDraw2d(org.eclipse.swt.graphics.Rectangle r) {
-		return new Rectangle(r.x, r.y, r.width, r.height);
-	}
-
-	public static org.eclipse.swt.graphics.Rectangle toSWT(Rectangle r) {
-		return new org.eclipse.swt.graphics.Rectangle(r.x, r.y, r.width, r.height);
-	}
-
-	public static Point toDraw2d(org.eclipse.swt.graphics.Point p) {
-		return new Point(p.x, p.y);
-	}
-
-	public static org.eclipse.swt.graphics.Point toSWT(Point p) {
-		return new org.eclipse.swt.graphics.Point(p.x, p.y);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/JavaModelUtil.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/JavaModelUtil.java
deleted file mode 100755
index 7d4aa4d..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/JavaModelUtil.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.util;
-
-/**
- * 
- * @author yyang <yves.yang@soyatec.com>
- */
-public class JavaModelUtil {
-
-	public static boolean isKindOf(Class<?> type, String typeName) {
-		String name = type.getName();
-		name = name.replace('$', '.');
-		if (name.equals(typeName)) {
-			return true;
-		}
-		Class<?> superType = type.getSuperclass();
-		if (superType != null) {
-			if (isKindOf(superType, typeName)) {
-				return true;
-			}
-		}
-		for (Class<?> interfaceType : type.getInterfaces()) {
-			if (isKindOf(interfaceType, typeName)) {
-				return true;
-			}
-		}
-		return false;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/SashUtil.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/SashUtil.java
deleted file mode 100755
index 37d802a..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/SashUtil.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.util;
-
-public class SashUtil {
-
-	public static String removeWeights(String weights, int index) {
-		String[] values = weightsSplit(weights);
-		StringBuilder stringBuilder = new StringBuilder();
-		String value = null;
-		for (int i = 0; i < values.length; i++) {
-			if (i != 0 && i != index) {
-				stringBuilder.append(",");
-			}
-			if (value != null){
-				int item1 = Integer.parseInt(value);
-				int item2 = Integer.parseInt(values[i]);
-				values[i] = "" + (item1 + item2);
-				value = null;
-			}
-			if (i != index) {
-				stringBuilder.append(values[i]);
-			}
-			else {
-				value = values[i];
-			}
-		}
-		return stringBuilder.toString();
-	}
-
-	public static String weightsValue(int[] weights) {
-		StringBuilder stringBuilder = new StringBuilder();
-		for (int i = 0; i < weights.length; i++) {
-			if (i != 0) {
-				stringBuilder.append(",");				
-			}
-			stringBuilder.append(weights[i]);
-		}
-		return stringBuilder.toString();
-	}
-
-	public static String weightsDisplayString(int[] weights) {
-		return "[" + weightsValue(weights) + "]";
-	}
-	
-	public static String[] weightsSplit(String value) {
-		return value.split(",");
-	}
-
-	public static int[] toWeights(String value) {
-		String[] segments = weightsSplit(value);
-		int [] weights = new int [segments.length];
-		for(int i = 0; i< segments.length; i++) {
-			try {
-				weights[i] = Integer.parseInt(segments[i]);
-			} catch (NumberFormatException e) {
-				weights[i] = 0;
-			}
-		}
-		return weights;
-	}
-
-	public static String updateWeightsLengh(int[] segments, int length) {
-		if (length == segments.length) {
-			return weightsValue(segments);			
-		}
-		
-		int[] values = new int[length];
-		if (length > segments.length) {
-			for(int i = 0; i< segments.length; i++) {
-				values[i] = segments[i];
-			}			
-		}
-		else if (length < segments.length) {
-			for(int i = 0; i< values.length; i++) {
-				values[i] = segments[i];
-			}
-		}
-		return weightsValue(values);			
-	}
-}
-
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/StringUtil.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/StringUtil.java
deleted file mode 100755
index d50c2f1..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/StringUtil.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.util;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class StringUtil {
-	public static final String COMMA = ",";
-
-	/**
-	 * String Utility.
-	 */
-	private StringUtil() {
-	}
-
-	public static String format(Object[] args, String sep) {
-		if (args == null || sep == null) {
-			return "";
-		}
-		int length = args.length;
-		StringBuffer sb = new StringBuffer();
-		for (int i = 0; i < length; i++) {
-			sb.append(args[i].toString());
-			if (i + 1 < length) {
-				sb.append(sep);
-			}
-		}
-		return sb.toString();
-	}
-
-	public static String format(Object[] args) {
-		return format(args, COMMA);
-	}
-
-	public static String format(Rectangle r) {
-		return format(new Object[] { r.x, r.y, r.width, r.height });
-	}
-
-	public static String format(Point p) {
-		return format(new Object[] { p.x, p.y });
-	}
-
-	public static String format(org.eclipse.draw2d.geometry.Rectangle r) {
-		return format(new Object[] { r.x, r.y, r.width, r.height });
-	}
-
-	public static String format(org.eclipse.draw2d.geometry.Point p) {
-		return format(new Object[] { p.x, p.y });
-	}
-
-	public static String format(org.eclipse.draw2d.geometry.Dimension d) {
-		return format(new Object[] { d.width, d.height });
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/XWTCodeGenUtil.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/XWTCodeGenUtil.java
deleted file mode 100755
index 0e66161..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/XWTCodeGenUtil.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.util;
-
-import java.beans.BeanInfo;
-import java.beans.IntrospectionException;
-import java.beans.PropertyDescriptor;
-import java.net.URL;
-
-import org.eclipse.xwt.IConstants;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public class XWTCodeGenUtil {
-	public static String generate(Class<?> aBean) {
-		return generate(aBean, false);
-	}
-
-	public static String generate(Class<?> aBean, boolean root) {
-		if (aBean == null) {
-			return null;
-		}
-		try {
-			StringBuffer result = new StringBuffer();
-			if (root) {
-
-				result.append("<Composite xmlns=\"" + IConstants.XWT_NAMESPACE
-						+ "\"");
-
-				result.append("\t xmlns:x=\"" + IConstants.XWT_X_NAMESPACE
-						+ "\"");
-				String packageName = aBean.getPackage() == null ? null : aBean
-						.getPackage().getName();
-				if (packageName != null/* && packageName.length() > 0 */) {
-					result.append("\t xmlns:c=\""
-							+ IConstants.XAML_CLR_NAMESPACE_PROTO + packageName
-							+ "\"");
-				}
-				result.append("\t xmlns:j=\""
-						+ IConstants.XAML_CLR_NAMESPACE_PROTO + "java.lang\"");
-				result.append("\t x:Class=\"" + aBean.getName() + "\">");
-			} else {
-				result.append("<Composite>");
-			}
-			result.append("\t <Composite.layout>");
-			result.append("\t\t <GridLayout " + " numColumns=\"4\" />");
-			result.append("\t </Composite.layout>");
-			BeanInfo beanInfo = java.beans.Introspector.getBeanInfo(aBean);
-			PropertyDescriptor[] propertyDescriptors = beanInfo
-					.getPropertyDescriptors();
-			for (PropertyDescriptor pd : propertyDescriptors) {
-				String name = pd.getName();
-				if (name == null || "class".equals(name)) {
-					continue;
-				}
-				Class<?> propertyType = pd.getPropertyType();
-				if (propertyType.isPrimitive() || propertyType == String.class
-						|| propertyType == URL.class) {
-					result.append("\t <Label text=\"" + pd.getDisplayName()
-							+ "\"/>");
-					result.append("\t <Text x:Style=\"Border\" text=\"{Binding path="
-							+ pd.getName() + "}\">");
-					result.append("\t\t <Text.layoutData>");
-					result.append("\t\t\t <GridData grabExcessHorizontalSpace=\"true\"");
-					result.append("\t\t\t\t horizontalAlignment=\"GridData.FILL\" widthHint=\"100\"/>");
-					result.append("\t\t </Text.layoutData>");
-					result.append("\t </Text>");
-				} else if (propertyType.isEnum()) {
-					result.append("\t <Label text=\"" + pd.getDisplayName()
-							+ "\"/>");
-					result.append("\t <Combo text=\"{Binding path="
-							+ pd.getName() + "}\">");
-					result.append("\t\t <Combo.layoutData>");
-					result.append("\t\t\t <GridData grabExcessHorizontalSpace=\"true\"");
-					result.append("\t\t\t\t horizontalAlignment=\"GridData.FILL\" widthHint=\"100\"/>");
-					result.append("\t\t </Combo.layoutData>");
-
-					result.append("\t\t <Combo.items>");
-					for (Object object : propertyType.getEnumConstants()) {
-						result.append("\t\t\t <j:String>" + object.toString()
-								+ "</j:String>");
-					}
-					result.append("\t\t </Combo.items>");
-					result.append("\t </Combo>");
-
-				} else {
-					result.append("\t <Group text=\"" + pd.getDisplayName()
-							+ "\">");
-					result.append("\t\t <Group.layout>");
-					result.append("\t\t\t <FillLayout/>");
-					result.append("\t\t </Group.layout>");
-
-					String elementType = propertyType.getSimpleName();
-					result.append("\t\t <c:" + elementType
-							+ " DataContext=\"{Binding path=" + pd.getName()
-							+ "}\"/>");
-
-					result.append("\t\t <Group.layoutData>");
-					result.append("\t\t\t <GridData grabExcessHorizontalSpace=\"true\" horizontalSpan=\"4\"");
-					result.append("\t\t\t\t horizontalAlignment=\"GridData.FILL\" widthHint=\"200\"/>");
-					result.append("\t\t </Group.layoutData>");
-
-					result.append("\t </Group>");
-				}
-			}
-			result.append("</Composite>");
-			return result.toString();
-		} catch (IntrospectionException e) {
-		}
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/XWTProjectUtil.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/XWTProjectUtil.java
deleted file mode 100755
index b83c66a..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/XWTProjectUtil.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.util;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.xwt.ui.utils.ProjectUtil;
-
-/**
- * To minimize the dependency in e4 Visual Designer
- * 
- * TODO remove the direct dependency between e4/XWT
- * 
- * @author yyang
- */
-public class XWTProjectUtil {
-	public static void updateXWTWorkbenchDependencies(IProject project) {
-		ProjectUtil.updateXWTWorkbenchDependencies(project);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/image/ImageCollectedRunnable.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/image/ImageCollectedRunnable.java
deleted file mode 100755
index 3cde00c..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/image/ImageCollectedRunnable.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.util.image;
-
-import org.eclipse.swt.graphics.Image;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public interface ImageCollectedRunnable {
-	public void imageCollected(Image image);
-
-	public void imageNotCollected();
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/image/ImageCollector.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/image/ImageCollector.java
deleted file mode 100755
index 9c4eb3a..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/image/ImageCollector.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.util.image;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.ImageLoader;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.xwt.tools.ui.designer.core.util.swt.SWTUtil;
-import org.eclipse.xwt.tools.ui.imagecapture.swt.ImageCapture;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class ImageCollector {
-	static int i = 0;
-
-	public static Shell activeShell(Control control) {
-		Shell controlShell = control.getShell();
-		Display display = control.getDisplay();
-		Control focusControl = display.getFocusControl();
-		if (focusControl != null && !focusControl.isDisposed()) {
-			focusControl.getShell().open();
-			return focusControl.getShell();
-		}
-		Shell shell = display.getActiveShell();
-		if (shell != null) {
-			return shell;
-		}
-		Shell[] shells = display.getShells();
-		if (shells != null) {
-			for (Shell topShell : shells) {
-				if (topShell != controlShell) {
-					topShell.open();
-					return topShell;
-				}
-			}
-		}
-		return null;
-	}
-
-	public static void collectImage(Control control,
-			ImageCollectedRunnable imageRunnable) {
-		if (control == null || control.isDisposed() || imageRunnable == null) {
-			return;
-		}
-		Rectangle bounds = control.getBounds();
-		if (bounds.isEmpty()) {
-			imageRunnable.imageNotCollected();
-		} else {
-			Image image = null;
-			// If the toolBar is located on a CoolBar, the background was lost
-			// by using print() method.
-			if (control instanceof Shell || control instanceof ToolBar
-					|| SWTUtil.IsGTK) {
-				Shell shell = null;
-				if (control instanceof Shell) {
-					shell = (Shell) control;
-				} else {
-					shell = control.getShell();
-					shell.pack();
-					shell.setLocation(0, 0);
-					while (control.getDisplay().readAndDispatch())
-						;
-				}
-				bounds = control.getBounds();
-
-				shell.setAlpha(0);
-				if (SWTUtil.IsCocoa) {
-					if (!shell.isVisible()) {
-						shell.open();
-					}
-				} else {
-					shell.moveBelow(null);
-					if (!shell.isVisible()) {
-						shell.setVisible(true);
-					}
-				}
-				if (control instanceof Shell) {
-					image = ImageCapture.getInstance().capture(control,
-							bounds.width, bounds.height, true);
-				} else {
-					image = new Image(control.getDisplay(), bounds.width,
-							bounds.height);
-					GC gc = new GC(image);
-					control.print(gc);
-					gc.dispose(); 
-				}
-				shell.setVisible(false);
-			} else {
-				image = new Image(control.getDisplay(), bounds.width,
-						bounds.height);
-				GC gc = new GC(image);
-				control.print(gc);
-				gc.dispose();
-			}
-			if (image != null) {
-				// saveImage(image, "/home/yyang/image" + (i++) + ".jpg");
-				imageRunnable.imageCollected(image);
-			} else {
-				imageRunnable.imageNotCollected();
-			}
-		}
-	}
-
-	private static void saveImage(Image image, String path) {
-		ImageLoader imageLoader = new ImageLoader();
-		ImageData imageData = image.getImageData();
-		imageLoader.data = new ImageData[] { imageData };
-		imageLoader.save(path, SWT.IMAGE_JPEG);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/GridLayoutHelper.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/GridLayoutHelper.java
deleted file mode 100755
index 432ce3e..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/GridLayoutHelper.java
+++ /dev/null
@@ -1,751 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.util.swt;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Scrollable;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Since Eclipse 3.1 GridLayout took away the access to the column widths and
- * row heights needed to show grid lines and feedback for the GridLayout policy
- * helper, we need to calculate this ourselves using the same algorithms that
- * GridLayout.layout uses. The main work is done in the computeValues method
- * which does much of what the GridLayout.layout method except it doesn't layout
- * the controls... just gets the column widths and row heights.
- * 
- * Note: In the future, if SWT GridLayout changes it's layout method or GridData
- * changes it's protected fields, this class will have to be refactored to
- * handle those changes.
- * 
- * This class accesses and sets the following package protected GridData fields:
- * cacheWidth, cacheHeight
- * 
- * It also executes the following package protected method: computeSize(Control,
- * int, int, boolean)
- */
-
-public class GridLayoutHelper {
-
-	private Composite fComposite;
-	public int[] widths;// save current composit's all control's width and
-						// height
-	public int[] heights;
-	private GridLayout fGridLayout;
-	private Field cacheWidthField; // GridData package protected field
-	private Field cacheHeightField; // GridData package protected field
-	private Method computeSizeMethod; // GridData package protected method
-
-	public void setComposite(Composite aComposite) {
-		fComposite = aComposite;
-		if (aComposite.isDisposed()) {
-			return;
-		}
-		fGridLayout = (GridLayout) aComposite.getLayout();
-		if (fGridLayout != null) {
-			computeValues();
-		}
-	}
-
-	private void runComputeSize(GridData aGridData, Object[] args) {
-		if (computeSizeMethod == null) {
-			try {
-				computeSizeMethod = GridData.class
-						.getDeclaredMethod(
-								"computeSize", new Class[] { Control.class, int.class, int.class, boolean.class }); //$NON-NLS-1$
-				computeSizeMethod.setAccessible(true);
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
-		}
-		try {
-			if (computeSizeMethod != null)
-				computeSizeMethod.invoke(aGridData, args);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	private int getCacheWidth(GridData aGridData) {
-		if (cacheWidthField == null) {
-			try {
-				cacheWidthField = GridData.class.getDeclaredField("cacheWidth"); //$NON-NLS-1$
-				cacheWidthField.setAccessible(true);
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
-		}
-		try {
-			Integer cacheWidth = (Integer) cacheWidthField.get(aGridData);
-			return cacheWidth.intValue();
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return 0;
-	}
-
-	private int getCacheHeight(GridData aGridData) {
-		if (cacheHeightField == null) {
-			try {
-				cacheHeightField = GridData.class
-						.getDeclaredField("cacheHeight"); //$NON-NLS-1$
-				cacheHeightField.setAccessible(true);
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
-		}
-		try {
-			Integer cacheWidth = (Integer) cacheHeightField.get(aGridData);
-			return cacheWidth.intValue();
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return 0;
-	}
-
-	private void putCacheWidth(GridData aGridData, int value) {
-		if (cacheWidthField == null) {
-			try {
-				cacheWidthField = GridData.class.getDeclaredField("cacheWidth"); //$NON-NLS-1$
-				cacheWidthField.setAccessible(true);
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
-		}
-		try {
-			cacheWidthField.setInt(aGridData, value);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	private void putCacheHeight(GridData aGridData, int value) {
-		if (cacheHeightField == null) {
-			try {
-				cacheHeightField = GridData.class
-						.getDeclaredField("cacheHeight"); //$NON-NLS-1$
-				cacheHeightField.setAccessible(true);
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
-		}
-		try {
-			cacheHeightField.setInt(aGridData, value);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	/*
-	 * This method is basically a copy of the code used in GridLayout.layout
-	 * (Composite composite, boolean move, int x, int y, int width, int height,
-	 * boolean flushCache)
-	 */
-	private void computeValues() {
-
-		Rectangle clientArea = fComposite.getClientArea();
-		int width = clientArea.width;
-		int height = clientArea.height;
-
-		if (fGridLayout.numColumns < 1) {
-			return;
-		}
-
-		int count = 0;
-		Control[] children = fComposite.getChildren();
-		for (int i = 0; i < children.length; i++) {
-			Control control = children[i];
-			GridData data = (GridData) control.getLayoutData();
-			if (data == null || !data.exclude) {
-				children[count++] = children[i];
-			}
-		}
-
-		for (int i = 0; i < count; i++) {
-			Control child = children[i];
-			GridData data = (GridData) child.getLayoutData();
-			if (data == null)
-				child.setLayoutData(data = new GridData());
-			runComputeSize(data, new Object[] { child,
-					Integer.valueOf(data.widthHint),
-					Integer.valueOf(data.heightHint), Boolean.FALSE });
-			if (data.grabExcessHorizontalSpace && data.minimumWidth > 0) {
-				if (getCacheWidth(data) < data.minimumWidth) {
-					int trim = 0;
-					// TEMPORARY CODE
-					if (child instanceof Scrollable) {
-						Rectangle rect = ((Scrollable) child).computeTrim(0, 0,
-								0, 0);
-						trim = rect.width;
-					} else {
-						trim = child.getBorderWidth() * 2;
-					}
-					putCacheWidth(data, SWT.DEFAULT);
-					putCacheHeight(data, SWT.DEFAULT);
-					runComputeSize(data, new Object[] { child,
-							Integer.valueOf(Math.max(0, data.minimumWidth
-									- trim)), Integer.valueOf(data.heightHint),
-							Boolean.FALSE });
-				}
-			}
-			if (data.grabExcessVerticalSpace && data.minimumHeight > 0) {
-				putCacheHeight(data, Math.max(getCacheHeight(data),
-						data.minimumHeight));
-			}
-		}
-
-		/* Build the grid */
-		int row = 0, column = 0, rowCount = 0, columnCount = fGridLayout.numColumns;
-		Control[][] grid = new Control[4][columnCount];
-		for (int i = 0; i < count; i++) {
-			Control child = children[i];
-			GridData data = (GridData) child.getLayoutData();
-			if (data == null)
-				data = new GridData();
-			int hSpan = Math.max(1, Math.min(data.horizontalSpan, columnCount));
-			int vSpan = Math.max(1, data.verticalSpan);
-			while (true) {
-				int lastRow = row + vSpan;
-				if (lastRow >= grid.length) {
-					Control[][] newGrid = new Control[lastRow + 4][columnCount];
-					System.arraycopy(grid, 0, newGrid, 0, grid.length);
-					grid = newGrid;
-				}
-				if (grid[row] == null) {
-					grid[row] = new Control[columnCount];
-				}
-				while (column < columnCount && grid[row][column] != null) {
-					column++;
-				}
-				int endCount = column + hSpan;
-				if (endCount <= columnCount) {
-					int index = column;
-					while (index < endCount && grid[row][index] == null) {
-						index++;
-					}
-					if (index == endCount)
-						break;
-					column = index;
-				}
-				if (column + hSpan >= columnCount) {
-					column = 0;
-					row++;
-				}
-			}
-			for (int j = 0; j < vSpan; j++) {
-				if (grid[row + j] == null) {
-					grid[row + j] = new Control[columnCount];
-				}
-				for (int k = 0; k < hSpan; k++) {
-					grid[row + j][column + k] = child;
-				}
-			}
-			rowCount = Math.max(rowCount, row + vSpan);
-			column += hSpan;
-		}
-
-		/* Column widths */
-		if (rowCount == 0) {
-			// There are no rows/columns if there are no rows.
-			widths = new int[0];
-			heights = new int[0];
-			return;
-		}
-		int availableWidth = width
-				- fGridLayout.horizontalSpacing
-				* (columnCount - 1)
-				- (fGridLayout.marginLeft + fGridLayout.marginWidth * 2 + fGridLayout.marginRight);
-		int expandCount = 0;
-		widths = new int[columnCount];
-		int[] minWidths = new int[columnCount];
-		boolean[] expandColumn = new boolean[columnCount];
-		for (int j = 0; j < columnCount; j++) {
-			for (int i = 0; i < rowCount; i++) {
-				GridData data = getData(grid, i, j, rowCount, columnCount, true);
-				if (data != null) {
-					int hSpan = Math.max(1, Math.min(data.horizontalSpan,
-							columnCount));
-					if (hSpan == 1) {
-						int w = getCacheWidth(data) + data.horizontalIndent;
-						widths[j] = Math.max(widths[j], w);
-						if (data.grabExcessHorizontalSpace) {
-							if (!expandColumn[j])
-								expandCount++;
-							expandColumn[j] = true;
-						}
-						if (!data.grabExcessHorizontalSpace
-								|| data.minimumWidth != 0) {
-							w = !data.grabExcessHorizontalSpace
-									|| data.minimumWidth == SWT.DEFAULT ? getCacheWidth(data)
-									: data.minimumWidth;
-							w += data.horizontalIndent;
-							minWidths[j] = Math.max(minWidths[j], w);
-						}
-					}
-				}
-			}
-			for (int i = 0; i < rowCount; i++) {
-				GridData data = getData(grid, i, j, rowCount, columnCount,
-						false);
-				if (data != null) {
-					int hSpan = Math.max(1, Math.min(data.horizontalSpan,
-							columnCount));
-					if (hSpan > 1) {
-						int spanWidth = 0, spanMinWidth = 0, spanExpandCount = 0;
-						for (int k = 0; k < hSpan; k++) {
-							spanWidth += widths[j - k];
-							spanMinWidth += minWidths[j - k];
-							if (expandColumn[j - k])
-								spanExpandCount++;
-						}
-						if (data.grabExcessHorizontalSpace
-								&& spanExpandCount == 0) {
-							expandCount++;
-							expandColumn[j] = true;
-						}
-						int w = getCacheWidth(data) + data.horizontalIndent
-								- spanWidth - (hSpan - 1)
-								* fGridLayout.horizontalSpacing;
-						if (w > 0) {
-							if (spanExpandCount == 0) {
-								widths[j] += w;
-							} else {
-								int delta = w / spanExpandCount;
-								int remainder = w % spanExpandCount, last = -1;
-								for (int k = 0; k < hSpan; k++) {
-									if (expandColumn[j - k]) {
-										widths[last = j - k] += delta;
-									}
-								}
-								if (last > -1)
-									widths[last] += remainder;
-							}
-						}
-						if (!data.grabExcessHorizontalSpace
-								|| data.minimumWidth != 0) {
-							w = !data.grabExcessHorizontalSpace
-									|| data.minimumWidth == SWT.DEFAULT ? getCacheWidth(data)
-									: data.minimumWidth;
-							w += data.horizontalIndent - spanMinWidth
-									- (hSpan - 1)
-									* fGridLayout.horizontalSpacing;
-							if (w > 0) {
-								if (spanExpandCount == 0) {
-									minWidths[j] += w;
-								} else {
-									int delta = w / spanExpandCount;
-									int remainder = w % spanExpandCount, last = -1;
-									for (int k = 0; k < hSpan; k++) {
-										if (expandColumn[j - k]) {
-											minWidths[last = j - k] += delta;
-										}
-									}
-									if (last > -1)
-										minWidths[last] += remainder;
-								}
-							}
-						}
-					}
-				}
-			}
-		}
-		if (fGridLayout.makeColumnsEqualWidth) {
-			int minColumnWidth = 0;
-			int columnWidth = 0;
-			for (int i = 0; i < columnCount; i++) {
-				minColumnWidth = Math.max(minColumnWidth, minWidths[i]);
-				columnWidth = Math.max(columnWidth, widths[i]);
-			}
-			columnWidth = width == SWT.DEFAULT || expandCount == 0 ? columnWidth
-					: Math.max(minColumnWidth, availableWidth / columnCount);
-			for (int i = 0; i < columnCount; i++) {
-				expandColumn[i] = expandCount > 0;
-				widths[i] = columnWidth;
-			}
-		} else {
-			if (width != SWT.DEFAULT && expandCount > 0) {
-				int totalWidth = 0;
-				for (int i = 0; i < columnCount; i++) {
-					totalWidth += widths[i];
-				}
-				int c = expandCount;
-				int delta = (availableWidth - totalWidth) / c;
-				int remainder = (availableWidth - totalWidth) % c;
-				int last = -1;
-				while (totalWidth != availableWidth) {
-					for (int j = 0; j < columnCount; j++) {
-						if (expandColumn[j]) {
-							if (widths[j] + delta > minWidths[j]) {
-								widths[last = j] = widths[j] + delta;
-							} else {
-								widths[j] = minWidths[j];
-								expandColumn[j] = false;
-								c--;
-							}
-						}
-					}
-					if (last > -1)
-						widths[last] += remainder;
-
-					for (int j = 0; j < columnCount; j++) {
-						for (int i = 0; i < rowCount; i++) {
-							GridData data = getData(grid, i, j, rowCount,
-									columnCount, false);
-							if (data != null) {
-								int hSpan = Math.max(1, Math.min(
-										data.horizontalSpan, columnCount));
-								if (hSpan > 1) {
-									if (!data.grabExcessHorizontalSpace
-											|| data.minimumWidth != 0) {
-										int spanWidth = 0, spanExpandCount = 0;
-										for (int k = 0; k < hSpan; k++) {
-											spanWidth += widths[j - k];
-											if (expandColumn[j - k])
-												spanExpandCount++;
-										}
-										int w = !data.grabExcessHorizontalSpace
-												|| data.minimumWidth == SWT.DEFAULT ? getCacheWidth(data)
-												: data.minimumWidth;
-										w += data.horizontalIndent - spanWidth
-												- (hSpan - 1)
-												* fGridLayout.horizontalSpacing;
-										if (w > 0) {
-											if (spanExpandCount == 0) {
-												widths[j] += w;
-											} else {
-												int delta2 = w
-														/ spanExpandCount;
-												int remainder2 = w
-														% spanExpandCount, last2 = -1;
-												for (int k = 0; k < hSpan; k++) {
-													if (expandColumn[j - k]) {
-														widths[last2 = j - k] += delta2;
-													}
-												}
-												if (last2 > -1)
-													widths[last2] += remainder2;
-											}
-										}
-									}
-								}
-							}
-						}
-					}
-					if (c == 0)
-						break;
-					totalWidth = 0;
-					for (int i = 0; i < columnCount; i++) {
-						totalWidth += widths[i];
-					}
-					delta = (availableWidth - totalWidth) / c;
-					remainder = (availableWidth - totalWidth) % c;
-					last = -1;
-				}
-			}
-		}
-		/* Wrapping */
-		GridData[] flush = null;
-		int flushLength = 0;
-		if (width != SWT.DEFAULT) {
-			for (int j = 0; j < columnCount; j++) {
-				for (int i = 0; i < rowCount; i++) {
-					GridData data = getData(grid, i, j, rowCount, columnCount,
-							false);
-					if (data != null) {
-						if (data.heightHint == SWT.DEFAULT) {
-							Control child = grid[i][j];
-							// TEMPORARY CODE
-							int hSpan = Math.max(1, Math.min(
-									data.horizontalSpan, columnCount));
-							int currentWidth = 0;
-							for (int k = 0; k < hSpan; k++) {
-								currentWidth += widths[j - k];
-							}
-							currentWidth += (hSpan - 1)
-									* fGridLayout.horizontalSpacing
-									- data.horizontalIndent;
-							if ((currentWidth != getCacheWidth(data) && data.horizontalAlignment == SWT.FILL)
-									|| (getCacheWidth(data) > currentWidth)) {
-								int trim = 0;
-								if (child instanceof Scrollable) {
-									Rectangle rect = ((Scrollable) child)
-											.computeTrim(0, 0, 0, 0);
-									trim = rect.width;
-								} else {
-									trim = child.getBorderWidth() * 2;
-								}
-								putCacheWidth(data, SWT.DEFAULT);
-								putCacheHeight(data, SWT.DEFAULT);
-								runComputeSize(data, new Object[] {
-										child,
-										Integer.valueOf(Math.max(0,
-												currentWidth - trim)),
-										Integer.valueOf(data.heightHint),
-										Boolean.FALSE });
-								if (data.grabExcessVerticalSpace
-										&& data.minimumHeight > 0) {
-									putCacheHeight(data, Math.max(
-											getCacheHeight(data),
-											data.minimumHeight));
-								}
-								if (flush == null)
-									flush = new GridData[count];
-								// now that we've changed the actual GridData
-								// for this control we need
-								// to store for later on when we'll reset it
-								// back.
-								flush[flushLength++] = data;
-							}
-						}
-					}
-				}
-			}
-		}
-
-		/* Row heights */
-		int availableHeight = height
-				- fGridLayout.verticalSpacing
-				* (rowCount - 1)
-				- (fGridLayout.marginTop + fGridLayout.marginHeight * 2 + fGridLayout.marginBottom);
-		expandCount = 0;
-		heights = new int[rowCount];
-		int[] minHeights = new int[rowCount];
-		boolean[] expandRow = new boolean[rowCount];
-		for (int i = 0; i < rowCount; i++) {
-			for (int j = 0; j < columnCount; j++) {
-				GridData data = getData(grid, i, j, rowCount, columnCount, true);
-				if (data != null) {
-					int vSpan = Math.max(1, Math.min(data.verticalSpan,
-							rowCount));
-					if (vSpan == 1) {
-						int h = getCacheHeight(data) + data.verticalIndent;
-						heights[i] = Math.max(heights[i], h);
-						if (data.grabExcessVerticalSpace) {
-							if (!expandRow[i])
-								expandCount++;
-							expandRow[i] = true;
-						}
-						if (!data.grabExcessVerticalSpace
-								|| data.minimumHeight != 0) {
-							h = !data.grabExcessVerticalSpace
-									|| data.minimumHeight == SWT.DEFAULT ? getCacheHeight(data)
-									: data.minimumHeight;
-							h += data.verticalIndent;
-							minHeights[i] = Math.max(minHeights[i], h);
-						}
-					}
-				}
-			}
-			for (int j = 0; j < columnCount; j++) {
-				GridData data = getData(grid, i, j, rowCount, columnCount,
-						false);
-				if (data != null) {
-					int vSpan = Math.max(1, Math.min(data.verticalSpan,
-							rowCount));
-					if (vSpan > 1) {
-						int spanHeight = 0, spanMinHeight = 0, spanExpandCount = 0;
-						for (int k = 0; k < vSpan; k++) {
-							spanHeight += heights[i - k];
-							spanMinHeight += minHeights[i - k];
-							if (expandRow[i - k])
-								spanExpandCount++;
-						}
-						if (data.grabExcessVerticalSpace
-								&& spanExpandCount == 0) {
-							expandCount++;
-							expandRow[i] = true;
-						}
-						int h = getCacheHeight(data) + data.verticalIndent
-								- spanHeight - (vSpan - 1)
-								* fGridLayout.verticalSpacing;
-						if (h > 0) {
-							if (spanExpandCount == 0) {
-								heights[i] += h;
-							} else {
-								int delta = h / spanExpandCount;
-								int remainder = h % spanExpandCount, last = -1;
-								for (int k = 0; k < vSpan; k++) {
-									if (expandRow[i - k]) {
-										heights[last = i - k] += delta;
-									}
-								}
-								if (last > -1)
-									heights[last] += remainder;
-							}
-						}
-						if (!data.grabExcessVerticalSpace
-								|| data.minimumHeight != 0) {
-							h = !data.grabExcessVerticalSpace
-									|| data.minimumHeight == SWT.DEFAULT ? getCacheHeight(data)
-									: data.minimumHeight;
-							h += data.verticalIndent - spanMinHeight
-									- (vSpan - 1) * fGridLayout.verticalSpacing;
-							if (h > 0) {
-								if (spanExpandCount == 0) {
-									minHeights[i] += h;
-								} else {
-									int delta = h / spanExpandCount;
-									int remainder = h % spanExpandCount, last = -1;
-									for (int k = 0; k < vSpan; k++) {
-										if (expandRow[i - k]) {
-											minHeights[last = i - k] += delta;
-										}
-									}
-									if (last > -1)
-										minHeights[last] += remainder;
-								}
-							}
-						}
-					}
-				}
-			}
-		}
-		if (height != SWT.DEFAULT && expandCount > 0) {
-			int totalHeight = 0;
-			for (int i = 0; i < rowCount; i++) {
-				totalHeight += heights[i];
-			}
-			int c = expandCount;
-			int delta = (availableHeight - totalHeight) / c;
-			int remainder = (availableHeight - totalHeight) % c;
-			int last = -1;
-			while (totalHeight != availableHeight) {
-				for (int i = 0; i < rowCount; i++) {
-					if (expandRow[i]) {
-						if (heights[i] + delta > minHeights[i]) {
-							heights[last = i] = heights[i] + delta;
-						} else {
-							heights[i] = minHeights[i];
-							expandRow[i] = false;
-							c--;
-						}
-					}
-				}
-				if (last > -1)
-					heights[last] += remainder;
-
-				for (int i = 0; i < rowCount; i++) {
-					for (int j = 0; j < columnCount; j++) {
-						GridData data = getData(grid, i, j, rowCount,
-								columnCount, false);
-						if (data != null) {
-							int vSpan = Math.max(1, Math.min(data.verticalSpan,
-									rowCount));
-							if (vSpan > 1) {
-								if (!data.grabExcessVerticalSpace
-										|| data.minimumHeight != 0) {
-									int spanHeight = 0, spanExpandCount = 0;
-									for (int k = 0; k < vSpan; k++) {
-										spanHeight += heights[i - k];
-										if (expandRow[i - k])
-											spanExpandCount++;
-									}
-									int h = !data.grabExcessVerticalSpace
-											|| data.minimumHeight == SWT.DEFAULT ? getCacheHeight(data)
-											: data.minimumHeight;
-									h += data.verticalIndent - spanHeight
-											- (vSpan - 1)
-											* fGridLayout.verticalSpacing;
-									if (h > 0) {
-										if (spanExpandCount == 0) {
-											heights[i] += h;
-										} else {
-											int delta2 = h / spanExpandCount;
-											int remainder2 = h
-													% spanExpandCount, last2 = -1;
-											for (int k = 0; k < vSpan; k++) {
-												if (expandRow[i - k]) {
-													heights[last2 = i - k] += delta2;
-												}
-											}
-											if (last2 > -1)
-												heights[last2] += remainder2;
-										}
-									}
-								}
-							}
-						}
-					}
-				}
-				if (c == 0)
-					break;
-				totalHeight = 0;
-				for (int i = 0; i < rowCount; i++) {
-					totalHeight += heights[i];
-				}
-				delta = (availableHeight - totalHeight) / c;
-				remainder = (availableHeight - totalHeight) % c;
-				last = -1;
-			}
-		}
-		// clean up cache - resets the GridData for those that were changed
-		// during the wrapping process
-		for (int i = 0; i < flushLength; i++) {
-			putCacheHeight(flush[i], -1);
-			putCacheWidth(flush[i], -1);
-		}
-
-	}
-
-	protected GridData getData(Control[][] grid, int row, int column,
-			int rowCount, int columnCount, boolean first) {
-		Control control = grid[row][column];
-		if (control != null) {
-			GridData data = (GridData) control.getLayoutData();
-			if (data == null)
-				data = new GridData();
-			int hSpan = Math.max(1, Math.min(data.horizontalSpan, columnCount));
-			int vSpan = Math.max(1, data.verticalSpan);
-			int i = first ? row + vSpan - 1 : row - vSpan + 1;
-			int j = first ? column + hSpan - 1 : column - hSpan + 1;
-			if (0 <= i && i < rowCount) {
-				if (0 <= j && j < columnCount) {
-					if (control == grid[i][j])
-						return data;
-				}
-			}
-		}
-		return null;
-	}
-
-	public static void main(String[] args) {
-
-		Display d = new Display();
-		Shell s = new Shell();
-		s.setLayout(new GridLayout());
-
-		new Label(s, SWT.NONE).setText("Label"); //$NON-NLS-1$
-		new Button(s, SWT.NONE).setText("Button"); //$NON-NLS-1$
-
-		s.open();
-
-		GridLayoutHelper helper = new GridLayoutHelper();
-		helper.setComposite(s);
-
-		while (!s.isDisposed()) {
-			if (!d.readAndDispatch())
-				d.sleep();
-		}
-		d.dispose();
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/GridLayoutHelper_30.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/GridLayoutHelper_30.java
deleted file mode 100755
index bc5ddca..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/GridLayoutHelper_30.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.util.swt;
-
-import java.lang.reflect.Field;
-
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Get the widths and heights of the columns and rows so that the IDE can show these in its GEF feedback This class works on Eclipse 3.0 because it has access to fields in the GridLayout In 3.1 these were removed so this won't work, however the IDE GridLayoutPolicyHelper instead uses the newer peer named GridLayoutHelper
- */
-
-public class GridLayoutHelper_30 {
-
-	private Composite fComposite;
-	public int[] widths;
-	public int[] heights;
-	private int[] expandableColumns;
-	private int[] expandableRows;
-	private Field pixelColumnWidthsFieldProxy;
-	private Field pixelRowHeightsFieldProxy;
-	private Field expandableColumnsFieldProxy;
-	private Field expandableRowsFieldProxy;
-	private GridLayout gridLayout;
-
-	public void setComposite(Composite aComposite) {
-		fComposite = aComposite;
-		aComposite.layout();
-		computeValues();
-	}
-
-	private void computeValues() {
-		gridLayout = (GridLayout) fComposite.getLayout();
-		fComposite.layout();
-		if (fComposite.getChildren().length == 0) {
-			// If there aren't any children, there is no grid currently.
-			widths = heights = new int[0];
-			return;
-		}
-		try {
-			if (pixelColumnWidthsFieldProxy == null) {
-				pixelColumnWidthsFieldProxy = gridLayout.getClass().getDeclaredField("pixelColumnWidths"); //$NON-NLS-1$
-				pixelColumnWidthsFieldProxy.setAccessible(true);
-			}
-			if (pixelRowHeightsFieldProxy == null) {
-				pixelRowHeightsFieldProxy = gridLayout.getClass().getDeclaredField("pixelRowHeights"); //$NON-NLS-1$
-				pixelRowHeightsFieldProxy.setAccessible(true);
-			}
-			if (expandableColumnsFieldProxy == null) {
-				expandableColumnsFieldProxy = gridLayout.getClass().getDeclaredField("expandableColumns"); //$NON-NLS-1$
-				expandableColumnsFieldProxy.setAccessible(true);
-			}
-			if (expandableRowsFieldProxy == null) {
-				expandableRowsFieldProxy = gridLayout.getClass().getDeclaredField("expandableRows"); //$NON-NLS-1$
-				expandableRowsFieldProxy.setAccessible(true);
-			}
-			widths = (int[]) pixelColumnWidthsFieldProxy.get(gridLayout);
-			heights = (int[]) pixelRowHeightsFieldProxy.get(gridLayout);
-			expandableColumns = (int[]) expandableColumnsFieldProxy.get(gridLayout);
-			expandableRows = (int[]) expandableRowsFieldProxy.get(gridLayout);
-			if (expandableColumns.length > 0 || expandableRows.length > 0)
-				adjustGridDimensions(gridLayout);
-		} catch (SecurityException e) {
-		} catch (NoSuchFieldException e) {
-		} catch (IllegalArgumentException e) {
-		} catch (IllegalAccessException e) {
-		}
-
-	}
-
-	private void adjustGridDimensions(GridLayout gridLayout) {
-
-		// The expandableColumns holds an array of which controls want to grab excess width
-		// The expandableRows holds an array of which controls want to grab excess height
-		// We need to adjust the widths and heights arrays for this
-		// 1 - Get the available space that the controls who want to grow into available space can occupy
-		// 2 - Divide this space among the controls that want it
-		// 3 - adjust the widths and heights array
-
-		// 1) Work out the available total width and height
-		int availableHorizontal = fComposite.getClientArea().width;
-		int availableVerical = fComposite.getClientArea().height;
-
-		// 2) Divide the height and width by the columns that want it
-		// 3) increment each control that is expandable
-		if (expandableColumns.length > 0) {
-			// Reduce the width by the margins
-			availableHorizontal = availableHorizontal - (gridLayout.marginWidth * 2);
-			// Reduce the width by the spacing
-			if (widths.length >= 2) {
-				availableHorizontal = availableHorizontal - (widths.length - 1) * gridLayout.horizontalSpacing;
-			}
-			// Subtract the currently used space
-			for (int i = 0; i < widths.length; i++) {
-				availableHorizontal = availableHorizontal - widths[i];
-			}
-			// We have the remaining space to use. Divide by the number of columns that want to be expanded
-			int widthAdjustment = availableHorizontal / expandableColumns.length;
-			// Now add this to each column that wants to be expanded
-			for (int i = 0; i < expandableColumns.length; i++) {
-				widths[expandableColumns[i]] = widthAdjustment + widths[expandableColumns[i]];
-			}
-		}
-
-		if (expandableRows.length > 0) {
-			// Reduce the width by the margins
-			availableVerical = availableVerical - (gridLayout.marginHeight * 2);
-			// Reduce the height by the spacing
-			if (heights.length >= 2) {
-				availableVerical = availableVerical - (heights.length - 1) * gridLayout.verticalSpacing;
-			}
-			// Subtract the currently used space
-			for (int i = 0; i < heights.length; i++) {
-				availableVerical = availableVerical - heights[i];
-			}
-			// We have the remaining space to use. Divide by the number of rows that want to be expanded
-			int heightAdjustment = availableVerical / expandableRows.length;
-			// Now add this to each row that wants to be expanded
-			for (int i = 0; i < expandableRows.length; i++) {
-				heights[expandableRows[i]] = heightAdjustment + heights[expandableRows[i]];
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/SWTTools.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/SWTTools.java
deleted file mode 100755
index 708a787..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/SWTTools.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.util.swt;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Decorations;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Scrollable;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.tools.ui.designer.core.DesignerPlugin;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class SWTTools {
-
-	public static Shell activeShell() {
-		Display display = Display.getCurrent();
-		if (display == null) {
-			display = Display.getDefault();
-		}
-		Control focusControl = display.getFocusControl();
-		if (focusControl != null && !focusControl.isDisposed()) {
-			focusControl.getShell().open();
-			return focusControl.getShell();
-		}
-		Shell shell = display.getActiveShell();
-		if (shell != null) {
-			return shell;
-		}
-		Shell[] shells = display.getShells();
-		if (shells != null) {
-			for (Shell topShell : shells) {
-				return topShell;
-			}
-		}
-		return null;
-	}
-
-	public static Point getLocation(Widget widget) {
-		if (widget == null || widget.isDisposed()) {
-			return new Point(-1, -1);
-		}
-		if (widget instanceof Control) {
-			Control control = (Control) widget;
-			Point location = control.getLocation();
-			if (control instanceof Shell) {
-				location.x = 20;
-				location.y = 20;
-				return location;
-			}
-			Composite parent = control.getParent();
-			if (parent instanceof Shell) {
-				Point l = getOffset((Shell) parent);
-				location.x = location.x + l.x;
-				location.y = location.y + l.y;
-			} else if (checkStyle(parent, SWT.BORDER)) {
-				int borderWidth = parent.getBorderWidth();
-				location.x += borderWidth;
-				location.y += borderWidth;
-			}
-			return location;
-		}
-		return WidgetLocator.getLocation(widget);
-	}
-
-	public static Point getOffset(Scrollable scroll) {
-		if (scroll == null || scroll.isDisposed()) {
-			return new Point(0, 0);
-		}
-		Rectangle calced = scroll.computeTrim(0, 0, 0, 0);
-		Point point = new Point(-calced.x, -calced.y);
-		return point;
-	}
-
-	public static Point getSize(Control control) {
-		if (control == null || control.isDisposed()) {
-			return new Point(-1, -1);
-		}
-		Point size = control.getSize();
-		return size;
-	}
-
-	public static Rectangle getBounds(Widget widget) {
-		if (widget instanceof Control) {
-			Control control = (Control) widget;
-			Point l = getLocation(control);
-			Point s = getSize(control);
-			return new Rectangle(l.x, l.y, s.x, s.y);
-		}
-		return WidgetLocator.getBounds(widget, false);
-	}
-
-	public static Widget[] getChildren(Widget widget) {
-		if (widget == null || widget.isDisposed()) {
-			return new Widget[0];
-		}
-		List<Widget> children = new ArrayList<Widget>();
-		if (widget instanceof Composite) {
-			for (Control control : ((Composite) widget).getChildren()) {
-				children.add(control);
-			}
-		}
-		if (widget instanceof Decorations) {
-			Menu menuBar = ((Decorations) widget).getMenuBar();
-			if (menuBar != null) {
-				children.add(menuBar);
-			}
-		}
-		// For all items.
-		{
-			try {
-				Method getItemsMethod = widget.getClass().getDeclaredMethod(
-						"getItems");
-				Object[] items = (Object[]) getItemsMethod.invoke(widget,
-						new Object[0]);
-				for (Object item : items) {
-					if (!(item instanceof Widget)) {
-						continue;// items of Combo
-					}
-					children.add((Widget) item);
-				}
-			} catch (NoSuchMethodException e) {
-			} catch (Exception e) {
-				DesignerPlugin.logInfo(e);
-			}
-		}
-		// For controls of items.
-		if (widget instanceof Item) {
-			try {
-				Method getControlMethod = widget.getClass().getDeclaredMethod(
-						"getControl");
-				Object control = getControlMethod.invoke(widget, new Object[0]);
-				if (control != null) {
-					children.add((Widget) control);
-				}
-			} catch (NoSuchMethodException e) {
-			} catch (Exception e) {
-				DesignerPlugin.logInfo(e);
-			}
-		}
-		// For Context Menu and sub menu of MenuItem
-		{
-			try {
-				Method getMenuMethod = widget.getClass().getDeclaredMethod(
-						"getMenu");
-				Object menu = getMenuMethod.invoke(widget, new Object[0]);
-				if (menu != null) {
-					children.add((Widget) menu);
-				}
-			} catch (NoSuchMethodException e) {
-			} catch (Exception e) {
-				DesignerPlugin.logInfo(e);
-			}
-		}
-		{// getColumns
-			try {
-				Method getColumnsMethod = widget.getClass().getDeclaredMethod(
-						"getColumns", new Class<?>[0]);
-				Object[] columns = (Object[]) getColumnsMethod.invoke(widget,
-						new Object[0]);
-				for (Object col : columns) {
-					children.add((Widget) col);
-				}
-			} catch (NoSuchMethodException e) {
-			} catch (Exception e) {
-				DesignerPlugin.logInfo(e);
-			}
-		}
-		return children.toArray(new Widget[children.size()]);
-	}
-
-	public static boolean checkStyle(Widget widget, int style) {
-		return widget != null && !widget.isDisposed()
-				&& checkStyle(widget.getStyle(), style);
-	}
-
-	public static boolean checkStyle(int styles, int style) {
-		return (styles & style) != 0;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/SWTUtil.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/SWTUtil.java
deleted file mode 100755
index 202a071..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/SWTUtil.java
+++ /dev/null
@@ -1,347 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.util.swt;
-
-import java.io.IOException;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.CoolBar;
-import org.eclipse.swt.widgets.CoolItem;
-import org.eclipse.swt.widgets.Decorations;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.ProgressBar;
-import org.eclipse.swt.widgets.Sash;
-import org.eclipse.swt.widgets.Scale;
-import org.eclipse.swt.widgets.ScrollBar;
-import org.eclipse.swt.widgets.Scrollable;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Slider;
-import org.eclipse.swt.widgets.Spinner;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.swt.widgets.Tracker;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.Widget;
-
-public class SWTUtil {
-
-	/**
-	 * Value is <code>true</code> if we're running on the <a href="http://en.wikipedia.org/wiki/Windows">Microsoft Windows</a> windowing system, <code>false</code> otherwise.
-	 */
-	public static final boolean IsWindows = "win32".equals(SWT.getPlatform());
-
-	/**
-	 * Value is <code>true</code> if we're running on the <a href="http://en.wikipedia.org/wiki/Motif_(widget_toolkit)">Motif</a> windowing system, <code>false</code> otherwise.
-	 */
-	public static final boolean IsMotif = "motif".equals(SWT.getPlatform());
-
-	/**
-	 * Value is <code>true</code> if we're running on the <a href="http://en.wikipedia.org/wiki/GTK">GTK</a> windowing system, <code>false</code> otherwise.
-	 */
-	public static final boolean IsGTK = "gtk".equals(SWT.getPlatform());
-
-	/**
-	 * Value is <code>true</code> if we're running on the Photon (<a href="http://en.wikipedia.org/wiki/QNX">QNX</a>) windowing system, <code>false</code> otherwise.
-	 */
-	public static final boolean IsPhoton = "photon".equals(SWT.getPlatform());
-
-	/**
-	 * Value is <code>true</code> if we're running on the <a href="http://en.wikipedia.org/wiki/Carbon_(API)">Carbon</a> (<a href="http://en.wikipedia.org/wiki/Mac_OS_X">Mac OS X</a>) windowing system, <code>false</code> otherwise.
-	 */
-	public static final boolean IsCarbon = "carbon".equals(SWT.getPlatform());
-
-	/**
-	 * Value is <code>true</code> if we're running on the <a href="http://en.wikipedia.org/wiki/Carbon_(API)">Carbon</a> (<a href="http://en.wikipedia.org/wiki/Mac_OS_X">Mac OS X</a>) windowing system, <code>false</code> otherwise.
-	 */
-	public static final boolean IsCocoa = "cocoa".equals(SWT.getPlatform());
-
-	public static void printStyle(int style, Class<? extends Widget> clazz, Appendable appendable) {
-		try {
-			appendable.append("[");
-			boolean first = true;
-			for (int styleBit = 0, styleMask = 1; styleBit < 32; styleBit++, styleMask <<= 1) {
-				if ((style & styleMask) != 0) {
-					if (!first)
-						appendable.append(',');
-					else
-						first = false;
-					appendable.append(toStringStyleBit(styleMask, clazz));
-				}
-			}
-			appendable.append(']');
-		} catch (IOException e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	public static String toStringStyle(int style, Class<? extends Widget> clazz) {
-		StringBuilder builder = new StringBuilder();
-		printStyle(style, clazz, builder);
-		return builder.toString();
-	}
-
-	public static String toStringStyleBit(int style, Class<? extends Widget> clazz) {
-		switch (style) {
-		case SWT.BAR:
-			if (Menu.class.isAssignableFrom(clazz))
-				return "bar";
-			// case SWT.SEPARATOR:
-			if (Label.class.isAssignableFrom(clazz) || MenuItem.class.isAssignableFrom(clazz) || ToolItem.class.isAssignableFrom(clazz))
-				return "separator";
-			// case SWT.TOGGLE:
-			if (Button.class.isAssignableFrom(clazz))
-				return "toggle";
-			// case SWT.MULTI:
-			if (Text.class.isAssignableFrom(clazz) || List.class.isAssignableFrom(clazz))
-				return "multi";
-			// case SWT.INDETERMINATE:
-			if (ProgressBar.class.isAssignableFrom(clazz))
-				return "indeterminate";
-			break;
-
-		case SWT.DROP_DOWN:
-			if (Menu.class.isAssignableFrom(clazz) || ToolItem.class.isAssignableFrom(clazz) || CoolItem.class.isAssignableFrom(clazz) || Combo.class.isAssignableFrom(clazz))
-				return "drop-down";
-			// case SWT.ARROW:
-			if (Button.class.isAssignableFrom(clazz))
-				return "arrow";
-			// case SWT.SINGLE:
-			if (Text.class.isAssignableFrom(clazz) || List.class.isAssignableFrom(clazz) || Table.class.isAssignableFrom(clazz) || Tree.class.isAssignableFrom(clazz))
-				return "single";
-			// case SWT.SHADOW_IN:
-			if (Label.class.isAssignableFrom(clazz) || Group.class.isAssignableFrom(clazz))
-				return "shadow-in";
-			// case SWT.TOOL:
-			if (Decorations.class.isAssignableFrom(clazz))
-				return "tool";
-			break;
-
-		case SWT.POP_UP:
-			if (Menu.class.isAssignableFrom(clazz))
-				return "pop-up";
-			// case SWT.PUSH:
-			if (Button.class.isAssignableFrom(clazz) || MenuItem.class.isAssignableFrom(clazz) || ToolItem.class.isAssignableFrom(clazz))
-				return "push";
-			// case SWT.READ_ONLY:
-			if (Combo.class.isAssignableFrom(clazz) || Text.class.isAssignableFrom(clazz))
-				return "read-only";
-			// case SWT.SHADOW_OUT:
-			if (Label.class.isAssignableFrom(clazz) || Group.class.isAssignableFrom(clazz) || ToolBar.class.isAssignableFrom(clazz))
-				return "shadow-out";
-			// case SWT.NO_TRIM:
-			if (Decorations.class.isAssignableFrom(clazz))
-				return "no-trip";
-			break;
-
-		case SWT.RADIO:
-			if (Button.class.isAssignableFrom(clazz) || MenuItem.class.isAssignableFrom(clazz) || ToolItem.class.isAssignableFrom(clazz))
-				return "radio";
-			// case SWT.SHADOW_ETCHED_IN:
-			if (Group.class.isAssignableFrom(clazz))
-				return "shadow-etched-in";
-			// case SWT.RESIZE:
-			if (Decorations.class.isAssignableFrom(clazz) || Tracker.class.isAssignableFrom(clazz))
-				return "resize";
-			break;
-
-		case SWT.CHECK:
-			if (Button.class.isAssignableFrom(clazz) || MenuItem.class.isAssignableFrom(clazz) || ToolItem.class.isAssignableFrom(clazz) || Table.class.isAssignableFrom(clazz) || Tree.class.isAssignableFrom(clazz))
-				return "check";
-			// case SWT.SHADOW_NONE:
-			if (Label.class.isAssignableFrom(clazz) || Group.class.isAssignableFrom(clazz))
-				return "shadow-none";
-			// case SWT.TITLE:
-			if (Decorations.class.isAssignableFrom(clazz))
-				return "title";
-			break;
-
-		case SWT.CASCADE:
-			if (MenuItem.class.isAssignableFrom(clazz))
-				return "cascade";
-			// case SWT.WRAP:
-			if (Label.class.isAssignableFrom(clazz) || Text.class.isAssignableFrom(clazz) || ToolBar.class.isAssignableFrom(clazz) || Spinner.class.isAssignableFrom(clazz))
-				return "wrap";
-			// case SWT.SIMPLE:
-			if (Combo.class.isAssignableFrom(clazz))
-				return "simple";
-			// case SWT.SHADOW_ETCHED_OUT:
-			if (Group.class.isAssignableFrom(clazz))
-				return "shadow-etched-out";
-			// case SWT.CLOSE:
-			if (Decorations.class.isAssignableFrom(clazz))
-				return "close";
-			break;
-
-		case SWT.MIN:
-			if (Decorations.class.isAssignableFrom(clazz))
-				return "min";
-			// case SWT.UP:
-			if (Button.class.isAssignableFrom(clazz) || Tracker.class.isAssignableFrom(clazz))
-				return "up";
-			break;
-
-		case SWT.H_SCROLL:
-			if (Scrollable.class.isAssignableFrom(clazz))
-				return "h-scroll";
-			// case SWT.HORIZONTAL:
-			if (Label.class.isAssignableFrom(clazz) || ProgressBar.class.isAssignableFrom(clazz) || Sash.class.isAssignableFrom(clazz) || Scale.class.isAssignableFrom(clazz) || ScrollBar.class.isAssignableFrom(clazz) || Slider.class.isAssignableFrom(clazz) || ToolBar.class.isAssignableFrom(clazz))
-				return "horizontal";
-			break;
-
-		case SWT.V_SCROLL:
-			if (Scrollable.class.isAssignableFrom(clazz))
-				return "v-scroll";
-			// case SWT.VERTICAL:
-			if (Label.class.isAssignableFrom(clazz) || ProgressBar.class.isAssignableFrom(clazz) || Sash.class.isAssignableFrom(clazz) || Scale.class.isAssignableFrom(clazz) || ScrollBar.class.isAssignableFrom(clazz) || Slider.class.isAssignableFrom(clazz) || ToolBar.class.isAssignableFrom(clazz) || CoolBar.class.isAssignableFrom(clazz))
-				return "vertical";
-			break;
-
-		case SWT.MAX:
-			if (Decorations.class.isAssignableFrom(clazz))
-				return "max";
-			// case SWT.DOWN:
-			if (Button.class.isAssignableFrom(clazz) || Tracker.class.isAssignableFrom(clazz))
-				return "down";
-			break;
-
-		case SWT.BORDER:
-			if (Control.class.isAssignableFrom(clazz))
-				return "border";
-			break;
-
-		case SWT.CLIP_CHILDREN:
-			if (Control.class.isAssignableFrom(clazz))
-				return "clip-children";
-			break;
-
-		case SWT.CLIP_SIBLINGS:
-			if (Control.class.isAssignableFrom(clazz))
-				return "clip-siblings";
-			break;
-
-		case SWT.ON_TOP:
-			if (Shell.class.isAssignableFrom(clazz))
-				return "on-top";
-			// case SWT.LEAD:
-			if (Button.class.isAssignableFrom(clazz) || Label.class.isAssignableFrom(clazz) || TableColumn.class.isAssignableFrom(clazz) || Tracker.class.isAssignableFrom(clazz))
-				return "lead";
-			break;
-
-		case SWT.PRIMARY_MODAL:
-			if (Shell.class.isAssignableFrom(clazz))
-				return "primary-modal";
-			// case SWT.HIDE_SELECTION:
-			if (Table.class.isAssignableFrom(clazz))
-				return "hide-selection";
-			break;
-
-		case SWT.APPLICATION_MODAL:
-			if (Shell.class.isAssignableFrom(clazz))
-				return "application-modal";
-			// case SWT.FULL_SELECTION:
-			if (StyledText.class.isAssignableFrom(clazz) || Table.class.isAssignableFrom(clazz) || Tree.class.isAssignableFrom(clazz))
-				return "full-selection";
-			// case SWT.SMOOTH:
-			if (ProgressBar.class.isAssignableFrom(clazz) || Sash.class.isAssignableFrom(clazz))
-				return "smooth";
-			break;
-
-		case SWT.SYSTEM_MODAL:
-			if (Shell.class.isAssignableFrom(clazz))
-				return "system-modal";
-			// case SWT.TRAIL:
-			if (Button.class.isAssignableFrom(clazz) || Label.class.isAssignableFrom(clazz) || TableColumn.class.isAssignableFrom(clazz) || Tracker.class.isAssignableFrom(clazz))
-				return "trail";
-			break;
-
-		case SWT.NO_BACKGROUND:
-			if (Composite.class.isAssignableFrom(clazz))
-				return "no-background";
-			break;
-
-		case SWT.NO_FOCUS:
-			if (Composite.class.isAssignableFrom(clazz))
-				return "no-focus";
-			break;
-
-		case SWT.NO_REDRAW_RESIZE:
-			if (Composite.class.isAssignableFrom(clazz))
-				return "no-redraw-resize";
-			break;
-
-		case SWT.NO_MERGE_PAINTS:
-			if (Composite.class.isAssignableFrom(clazz))
-				return "no-merge-paints";
-			break;
-
-		case SWT.PASSWORD:
-			if (Text.class.isAssignableFrom(clazz))
-				return "password";
-			// case SWT.NO_RADIO_GROUP:
-			if (Composite.class.isAssignableFrom(clazz))
-				return "no-radio-group";
-			break;
-
-		case SWT.FLAT:
-			if (Button.class.isAssignableFrom(clazz) || ToolBar.class.isAssignableFrom(clazz))
-				return "flat";
-			break;
-
-		case SWT.EMBEDDED:
-			if (Composite.class.isAssignableFrom(clazz))
-				return "embedded";
-			// case SWT.CENTER:
-			if (Button.class.isAssignableFrom(clazz) || Label.class.isAssignableFrom(clazz) || TableColumn.class.isAssignableFrom(clazz))
-				return "center";
-			break;
-
-		case SWT.LEFT_TO_RIGHT:
-			// Omit "left-to-right" because it's ubiquitous.
-			// if (Control.class.isAssignableFrom(clazz) || Menu.class.isAssignableFrom(clazz))
-			// return "left-to-right";
-			break;
-
-		case SWT.RIGHT_TO_LEFT:
-			if (Control.class.isAssignableFrom(clazz) || Menu.class.isAssignableFrom(clazz))
-				return "right-to-left";
-			break;
-
-		case SWT.MIRRORED:
-			if (Control.class.isAssignableFrom(clazz) || Menu.class.isAssignableFrom(clazz))
-				return "mirrored";
-			break;
-
-		case SWT.VIRTUAL:
-			if (Table.class.isAssignableFrom(clazz) || Tree.class.isAssignableFrom(clazz))
-				return "virtual";
-			break;
-
-		case SWT.DOUBLE_BUFFERED:
-			if (Control.class.isAssignableFrom(clazz))
-				return "double-buffered";
-			break;
-		}
-		return String.format("%08x", style);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/SWTWorkarounds.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/SWTWorkarounds.java
deleted file mode 100755
index 8dda7ba..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/SWTWorkarounds.java
+++ /dev/null
@@ -1,513 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.util.swt;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.CoolItem;
-import org.eclipse.swt.widgets.Decorations;
-import org.eclipse.swt.widgets.ExpandBar;
-import org.eclipse.swt.widgets.ExpandItem;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.ScrollBar;
-import org.eclipse.swt.widgets.Scrollable;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeColumn;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.xwt.tools.ui.designer.core.DesignerPlugin;
-
-/**
- * This class adapts SWT to Abbot, e.g. where SWT methods are not public.
- * 
- * @author jliu (jin.liu@soyatec.com)
- */
-public class SWTWorkarounds {
-	static final Rectangle EMPTY = new Rectangle(0, 0, 0, 0);
-
-	/*************************** COMMON *****************************/
-	public static Rectangle getBounds(Object object) {		
-		if (SWTUtil.IsWindows) {
-			if (object instanceof TabItem) {
-				return win32_getBounds((TabItem)object);
-			}
-			if (object instanceof TableColumn) {
-				return win32_getBounds((TableColumn)object);
-			}
-			if (object instanceof TreeColumn) {
-				return win32_getBounds((TreeColumn)object);
-			}
-		}
-		if (SWTUtil.IsGTK) {
-			if (object instanceof TabItem) {
-				return gtk_getBounds((TabItem)object);
-			}
-			if (object instanceof TableColumn) {
-				return gtk_getBounds((TableColumn)object);
-			}
-			if (object instanceof TreeColumn) {
-				return gtk_getBounds((TreeColumn)object);
-			}
-		}
-		if (SWTUtil.IsMotif) {
-			if (object instanceof TabItem) {
-				return motif_getBounds((TabItem)object);
-			}
-			if (object instanceof TableColumn) {
-				return motif_getBounds((TableColumn)object);
-			}
-			if (object instanceof TreeColumn) {
-				return motif_getBounds((TreeColumn)object);
-			}
-		}
-		if (SWTUtil.IsCarbon) {
-			if (object instanceof TabItem) {
-				return carbon_getBounds((TabItem)object);
-			}
-			if (object instanceof TableColumn) {
-				return carbon_getBounds((TableColumn)object);
-			}
-			if (object instanceof TreeColumn) {
-				return carbon_getBounds((TreeColumn)object);
-			}
-			if (object instanceof Menu || object instanceof MenuItem) {
-				return EMPTY;
-			}
-		}
-		if (SWTUtil.IsCocoa) {
-			if (object instanceof TabItem) {
-				return cocoa_getBounds((TabItem)object);
-			}
-			if (object instanceof TableColumn) {
-				return cocoa_getBounds((TableColumn)object);
-			}
-			if (object instanceof TreeColumn) {
-				return cocoa_getBounds((TreeColumn)object);
-			}
-			if (object instanceof Menu || object instanceof MenuItem) {
-				return EMPTY;
-			}
-		}
-		try {
-			Method method = object.getClass().getDeclaredMethod("getBounds");
-			method.setAccessible(true);
-			return (Rectangle) method.invoke(object);
-		} catch (Throwable e) {
-			throw new UnsupportedOperationException(e);
-		}
-	}
-
-	public static Rectangle getBounds(MenuItem menuItem) {
-		Rectangle itemRect = getBounds((Object) menuItem);
-		Rectangle menuRect = getBounds(menuItem.getParent());
-		if ((menuItem.getParent().getStyle() & SWT.RIGHT_TO_LEFT) != 0) {
-			itemRect.x = menuRect.x + menuRect.width - itemRect.width - itemRect.x;
-		} else {
-			itemRect.x += menuRect.x;
-		}
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=38436#c143
-		itemRect.y += menuRect.y;
-		return itemRect;
-	}
-
-	public static Rectangle getBounds(Menu menu) {
-		Rectangle result = getBounds((Object) menu);
-		Decorations parent = menu.getParent();
-		if (parent == null || parent.isDisposed()) {
-			return result;
-		}
-		Rectangle bounds = parent.getBounds();
-		if (!result.isEmpty() && parent != null) {
-			return new Rectangle(result.x - bounds.x, result.y - bounds.y,
-					result.width, result.height);
-		} else if (SWTTools.checkStyle(menu, SWT.BAR)) {
-			if (menu.getItemCount() == 0) {
-				Point offset = SWTTools.getOffset(parent);
-				return new Rectangle(offset.x, offset.y - 19, bounds.width - offset.x * 2, 1);				
-			}
-			int y = SWTTools.getOffset(parent).y;
-			int x = SWTTools.getOffset(parent).x;
-			return new Rectangle(x, y - 19, bounds.width - x * 2, 19);
-		}
-		return result;
-	}
-
-	public static Rectangle getBounds(ScrollBar bar) {
-
-		// Set x,y to the location of the bar relative to its parent.
-		Scrollable parent = bar.getParent();
-		Point parentSize = parent.getSize();
-		Point size = bar.getSize();
-		int x, y;
-		if ((bar.getStyle() & SWT.HORIZONTAL) != 0) {
-			x = 0;
-			y = parentSize.y - size.y;
-		} else {
-			x = parentSize.x - size.x;
-			y = 0;
-		}
-
-		// Return the bar's bounds in display coordinates.
-		return bar.getDisplay().map(parent, null, x, y, size.x, size.y);
-	}
-
-	/*************************** WIN32 *****************************/
-	static int SendMessage(int hWnd, int Msg, int wParam, int[] lParam) {
-		int result = 0;
-		try {
-			Class<?> clazz = Class.forName("org.eclipse.swt.internal.win32.OS");
-			Class<?>[] params = new Class[] { Integer.TYPE, Integer.TYPE, Integer.TYPE, lParam.getClass(), };
-			Method method = clazz.getMethod("SendMessage", params);
-			Object[] args = new Object[] { Integer.valueOf(hWnd),
-					Integer.valueOf(Msg), Integer.valueOf(wParam), lParam, };
-			result = ((Integer) method.invoke(clazz, args)).intValue();
-		} catch (Throwable e) {
-			throw new UnsupportedOperationException(e);
-		}
-		return result;
-	}
-
-	static Rectangle win32_getBounds(TabItem tabItem) {
-		TabFolder parent = tabItem.getParent();
-		int index = parent.indexOf(tabItem);
-		if (index != -1) {
-			int[] rect = new int[4];
-			int width;
-			int height;
-			try {
-				Field field = parent.getClass().getField("handle");
-				SendMessage(field.getInt(parent), /* TCM_GETITEMRECT */0x130a, index, rect);
-				width = rect[2] - rect[0];
-				height = rect[3] - rect[1];
-				Rectangle bounds = new Rectangle(rect[0], rect[1], width, height);
-				return bounds;
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
-		}
-		return new Rectangle(0, 0, 0, 0);
-		// return tabItem.getDisplay().map(tabItem.getParent(), null, bounds);
-	}
-
-	static Rectangle win32_getBounds(TableColumn tableColumn) {
-		Table parent = tableColumn.getParent();
-		int index = parent.indexOf(tableColumn);
-		if (index != -1) {
-			try {
-				Field field = parent.getClass().getField("handle");
-				int hwndHeader = SendMessage(field.getInt(parent), /* LVM_GETHEADER */0x101f, 0, new int[0]);
-				int[] rect = new int[4];
-				SendMessage(hwndHeader, /* HDM_GETITEMRECT */0x1200 + 7, index, rect);
-				int width = rect[2] - rect[0];
-				int height = rect[3] - rect[1];
-				Rectangle bounds = new Rectangle(rect[0], rect[1], width, height);
-				// TODO - coordinate system may change when the API is added to SWT
-				return bounds;
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
-		}
-		return new Rectangle(0, 0, 0, 0);
-		// return tableColumn.getDisplay().map(parent, null, bounds);
-	}
-
-	static Rectangle win32_getBounds(TreeColumn treeColumn) {
-		Tree parent = treeColumn.getParent();
-		int index = parent.indexOf(treeColumn);
-		if (index == -1)
-			return new Rectangle(0, 0, 0, 0);
-		int hwndHeader = 0;
-		try {
-			Field getHeaderField = parent.getClass().getDeclaredField("hwndHeader");
-			getHeaderField.setAccessible(true);
-			hwndHeader = (Integer) getHeaderField.get(parent);
-		} catch (Exception e) {
-			DesignerPlugin.logInfo(e);
-		}
-		if (hwndHeader == 0) {
-			return new Rectangle(0, 0, 0, 0);
-		}
-		int[] rect = new int[4];
-		SendMessage(hwndHeader, /* HDM_GETITEMRECT */0x1200 + 7, index, rect);
-		int width = rect[2] - rect[0];
-		int height = rect[3] - rect[1];
-		Rectangle bounds = new Rectangle(rect[0], rect[1], width, height);
-		return bounds;
-	}
-
-	/*************************** GTK *****************************/
-	static void gtk_getBounds(int handle, Rectangle bounds) {
-		try {
-			Class<?> clazz = Class.forName("org.eclipse.swt.internal.gtk.OS");
-			Class<?>[] params = new Class[] { Integer.TYPE };
-			Object[] args = new Object[] { Integer.valueOf(handle) };
-			Method method = clazz.getMethod("GTK_WIDGET_X", params);
-			bounds.x = ((Integer) method.invoke(clazz, args)).intValue();
-			method = clazz.getMethod("GTK_WIDGET_Y", params);
-			bounds.y = ((Integer) method.invoke(clazz, args)).intValue();
-			method = clazz.getMethod("GTK_WIDGET_WIDTH", params);
-			bounds.width = ((Integer) method.invoke(clazz, args)).intValue();
-			method = clazz.getMethod("GTK_WIDGET_HEIGHT", params);
-			bounds.height = ((Integer) method.invoke(clazz, args)).intValue();
-		} catch (Throwable e) {
-			// TODO - decide what should happen when the method is unavailable
-		}
-	}
-
-	static Rectangle gtk_getBounds(TableColumn tableColumn) {
-		Rectangle bounds = new Rectangle(0, 0, 0, 0);
-		try {
-			Class<?> c = tableColumn.getClass();
-			Field f = c.getDeclaredField("buttonHandle");
-			f.setAccessible(true);
-			int handle = f.getInt(tableColumn);
-			gtk_getBounds(handle, bounds);
-		} catch (Throwable e) {
-			// TODO - decide what should happen when the method is unavailable
-		}
-		return bounds;
-		// return tableColumn.getDisplay().map(parent, null, bounds);
-	}
-
-	static Rectangle gtk_getBounds(TreeColumn treeColumn) {
-		Rectangle bounds = new Rectangle(0, 0, 0, 0);
-		try {
-			Class<?> c = treeColumn.getClass();
-			Field f = c.getDeclaredField("buttonHandle");
-			f.setAccessible(true);
-			int handle = f.getInt(treeColumn);
-			gtk_getBounds(handle, bounds);
-		} catch (Throwable e) {
-			// TODO - decide what should happen when the method is unavailable
-		}
-		return bounds;
-		// return tableColumn.getDisplay().map(parent, null, bounds);
-	}
-
-	static Rectangle gtk_getBounds(TabItem tabItem) {
-		Rectangle bounds = new Rectangle(0, 0, 0, 0);
-		try {
-			Class<?> c = Class.forName("org.eclipse.swt.widgets.Widget");
-			Field f = c.getDeclaredField("handle");
-			f.setAccessible(true);
-			int handle = f.getInt(tabItem);
-			gtk_getBounds(handle, bounds);
-		} catch (Throwable e) {
-			// TODO - decide what should happen when the method is unavailable
-		}
-		return bounds;
-		// return tableColumn.getDisplay().map(parent, null, bounds);
-	}
-
-	/*************************** MOTIF *****************************/
-	static Rectangle motif_getBounds(TabItem tabItem) {
-		Rectangle bounds = new Rectangle(0, 0, 0, 0);
-		try {
-			Class<?> c = tabItem.getClass();
-			Method m = c.getDeclaredMethod("getBounds");
-			m.setAccessible(true);
-			bounds = (Rectangle) m.invoke(tabItem);
-			int margin = 2;
-			bounds.x += margin;
-			bounds.y += margin;
-			bounds.width -= 2 * margin;
-			bounds.height -= margin;
-		} catch (Throwable e) {
-			// TODO - decide what should happen when the method is unavailable
-		}
-		return bounds;
-		// return tableColumn.getDisplay().map(parent, null, bounds);
-	}
-
-	static Rectangle motif_getBounds(TableColumn tableColumn) {
-		Rectangle bounds = new Rectangle(0, 0, 0, 0);
-		try {
-			Class<?> c = tableColumn.getClass();
-			Method m = c.getDeclaredMethod("getX");
-			m.setAccessible(true);
-			bounds.x = ((Integer) m.invoke(tableColumn)).intValue();
-			bounds.width = tableColumn.getWidth() - 2;
-			bounds.height = tableColumn.getParent().getHeaderHeight() - 2;
-		} catch (Throwable e) {
-			// TODO - decide what should happen when the method is unavailable
-		}
-		return bounds;
-		// return tableColumn.getDisplay().map(parent, null, bounds);
-	}
-
-	static Rectangle motif_getBounds(TreeColumn treeColumn) {
-		Rectangle bounds = new Rectangle(0, 0, 0, 0);
-		try {
-			Class<?> c = treeColumn.getClass();
-			Method m = c.getDeclaredMethod("getX");
-			m.setAccessible(true);
-			bounds.x = ((Integer) m.invoke(treeColumn, (Object[]) null)).intValue();
-			bounds.width = treeColumn.getWidth() - 2;
-			bounds.height = treeColumn.getParent().getHeaderHeight() - 2;
-		} catch (Throwable e) {
-			// TODO - decide what should happen when the method is unavailable
-		}
-		return bounds;
-		// return tableColumn.getDisplay().map(parent, null, bounds);
-	}
-
-	/*************************** CARBON *****************************/
-	static Rectangle carbon_getBounds(TabItem tabItem) {
-		return tabItem.getBounds();
-	}
-
-	static Rectangle carbon_getBounds(TableColumn tableColumn) {
-		return null;
-	}
-
-	static Rectangle carbon_getBounds(TreeColumn treeColumn) {
-		return null;
-	}
-
-	/*************************** COCOA *****************************/
-	static Rectangle cocoa_getBounds(TabItem tabItem) {
-		return tabItem.getBounds();
-	}
-
-	static Rectangle cocoa_getBounds(TableColumn tableColumn) {
-		return null;
-	}
-
-	static Rectangle cocoa_getBounds(TreeColumn treeColumn) {
-		return null;
-	}
-
-	public static Rectangle getBounds(TabItem tabItem) {
-		if (SWTUtil.IsWindows) {
-			return win32_getBounds(tabItem);
-		}
-		if (SWTUtil.IsGTK) {
-			return gtk_getBounds(tabItem);
-		}
-		if (SWTUtil.IsMotif) {
-			return motif_getBounds(tabItem);
-		}
-		if (SWTUtil.IsCarbon) {
-			return carbon_getBounds(tabItem);
-		}
-		if (SWTUtil.IsCocoa) {
-			return cocoa_getBounds(tabItem);
-		}
-		return null;
-	}
-
-	public static Rectangle getBounds(TableColumn tableColumn) {
-		if (SWTUtil.IsWindows) {
-			return win32_getBounds(tableColumn);
-		}
-		if (SWTUtil.IsGTK) {
-			return gtk_getBounds(tableColumn);
-		}
-		if (SWTUtil.IsMotif) {
-			return motif_getBounds(tableColumn);
-		}
-		if (SWTUtil.IsCarbon) {
-			return carbon_getBounds(tableColumn);
-		}
-		if (SWTUtil.IsCocoa) {
-			return cocoa_getBounds(tableColumn);
-		}
-		return null;
-	}
-
-	public static Rectangle getBounds(TreeColumn treeColumn) {
-		if (SWTUtil.IsWindows) {
-			return win32_getBounds(treeColumn);
-		}
-		if (SWTUtil.IsGTK) {
-			return gtk_getBounds(treeColumn);
-		}
-		if (SWTUtil.IsMotif) {
-			return motif_getBounds(treeColumn);
-		}
-		if (SWTUtil.IsCarbon) {
-			return carbon_getBounds(treeColumn);
-		}
-		if (SWTUtil.IsCocoa) {
-			return cocoa_getBounds(treeColumn);
-		}
-		return null;
-	}
-
-	public static Rectangle getBounds(TableItem item) {
-		return item.getBounds(0);
-		// return item.getDisplay().map(item.getParent(), null, item.getBounds(0));
-	}
-
-	public static Rectangle getBounds(TreeItem item) {
-		return item.getBounds();
-		// return item.getDisplay().map(item.getParent(), null, item.getBounds());
-	}
-
-	public static Rectangle getBounds(CTabItem item) {
-		return item.getBounds();
-		// return item.getDisplay().map(item.getParent(), null, item.getBounds());
-	}
-
-	public static Rectangle getBounds(ToolItem item) {
-		return item.getBounds();
-		// return item.getDisplay().map(item.getParent(), null, item.getBounds());
-	}
-
-	public static Rectangle getBounds(CoolItem item) {
-		return item.getBounds();
-		// return item.getDisplay().map(item.getParent(), null, item.getBounds());
-	}
-
-	public static Rectangle getBounds(ExpandItem item) {
-		if (item == null || item.isDisposed()) {
-			return new Rectangle(0, 0, 0, 0);
-		}
-		ExpandBar parent = item.getParent();
-		int x = parent.getSpacing();
-		int y = 0 + 20;
-		int width = parent.getSize().x - 2 * parent.getSpacing();
-		int height = item.getHeaderHeight();
-		if (item.getExpanded()) {
-			height = item.getHeaderHeight() + item.getHeight();
-		}
-		if ((SWT.SEPARATOR & item.getStyle()) != 0) {
-			height = 1;
-		} else {
-			if (item.getImage() != null) {
-				width += item.getImage().getBounds().width;
-			}
-		}
-		int index = parent.indexOf(item);
-		int Dheight = 0;
-		// according count the sum height of the item which is before current item to get current item's position.
-		for (int i = 0; i < index; i++) {
-			ExpandItem prev = parent.getItem(i);
-			if (prev.getExpanded())
-				Dheight = Dheight + prev.getHeight() + prev.getHeaderHeight();
-			else
-				Dheight = Dheight + prev.getHeaderHeight();
-		}
-		y = parent.getSpacing() * (index + 1) + parent.getBorderWidth() + Dheight;
-		return new Rectangle(x, y, width, height);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/WidgetLocator.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/WidgetLocator.java
deleted file mode 100755
index dfb1f74..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/WidgetLocator.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.util.swt;
-
-import org.eclipse.draw2d.FigureUtilities;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.CoolItem;
-import org.eclipse.swt.widgets.Decorations;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.ExpandItem;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.ScrollBar;
-import org.eclipse.swt.widgets.Scrollable;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.swt.widgets.TreeColumn;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * Provides a means to find the coordinates of an SWT Widget in display-space,
- * given an SWT Display object.
- * 
- * @author jliu (jin.liu@soyatec.com)
- */
-public class WidgetLocator {
-	/**
-	 * Helper method to convert a Rectangle, given in the coordinate system of
-	 * the given Control's parent, to display-cordinates.
-	 */
-	public static Rectangle toDisplay(Rectangle bounds, Control control) {
-
-		// If it's a Shell or has no parent then the bounds are already
-		// display-relative.
-		if (control instanceof Shell || control.getParent() == null)
-			return bounds;
-
-		// Convert from parent-relative to display-relative.
-		Point point = control.getParent().toDisplay(bounds.x, bounds.y);
-		return new Rectangle(point.x, point.y, bounds.width, bounds.height);
-	}
-
-	public static Rectangle getBounds(Widget w, boolean toDisplay) {
-		if (w instanceof Control) {
-			Control control = (Control) w;
-			Rectangle r = control.getBounds();
-			if (toDisplay) {
-				return toDisplay(r, control);
-			}
-			Composite parent = control.getParent();
-			if (parent instanceof Scrollable && !(parent instanceof Group)
-					&& !(parent instanceof TabFolder)
-					&& !(parent instanceof CTabFolder)) {
-				Rectangle calced = parent.computeTrim(0, 0, 0, 0);
-				r.x += (- calced.x);
-				r.y += (- calced.y);
-				if (parent instanceof Shell && SWTUtil.IsWindows) {
-					Shell shell = (Shell) parent;
-					Menu menu = shell.getMenuBar();
-					// Bug 300170 - Shell computeTrim returns a wrong result
-					if (menu != null && menu.getItemCount() == 0) {
-						r.y -= 19;						
-					}
-				}
-			}
-			else if (SWTUtil.IsCocoa) {
-				if (parent instanceof Group) {
-					Rectangle calced = parent.computeTrim(0, 0, 0, 0);
-					r.x += - calced.x;
-					r.y += calced.height + calced.y;
-				}
-			}
-			return r;
-		}
-		if (w instanceof Menu) {
-			Menu menu = (Menu) w;
-			menu.getDisplay().update();
-			return SWTWorkarounds.getBounds(menu);
-		}
-		if (w instanceof CTabItem) {
-			return SWTWorkarounds.getBounds((CTabItem) w);
-		}
-		if (w instanceof MenuItem) {
-			MenuItem menuItem = (MenuItem) w;
-			Menu parent = menuItem.getParent();
-			Rectangle r = SWTWorkarounds.getBounds(parent);
-			Rectangle bounds = SWTWorkarounds.getBounds((MenuItem) w);
-			if (!r.isEmpty() && bounds.isEmpty()) {
-				bounds = getBounds(menuItem);
-			}
-			if (bounds.x >= r.x) {
-				bounds.x = bounds.x - r.x;
-			}
-			if (bounds.y >= r.y) {
-				bounds.y = bounds.y - r.y;
-			}
-			return bounds;
-		}
-		if (w instanceof TabItem) {
-			return SWTWorkarounds.getBounds((TabItem) w);
-		}
-		if (w instanceof TableColumn) {
-			return SWTWorkarounds.getBounds((TableColumn) w);
-		}
-		if (w instanceof TreeColumn) {
-			return SWTWorkarounds.getBounds((TreeColumn) w);
-		}
-		if (w instanceof ScrollBar) {
-			return SWTWorkarounds.getBounds((ScrollBar) w);
-		}
-		if (w instanceof ToolItem) {
-			return SWTWorkarounds.getBounds((ToolItem) w);
-		}
-		if (w instanceof CoolItem) {
-			return SWTWorkarounds.getBounds((CoolItem) w);
-		}
-		if (w instanceof TreeItem) {
-			return SWTWorkarounds.getBounds((TreeItem) w);
-		}
-		if (w instanceof TableItem) {
-			return SWTWorkarounds.getBounds((TableItem) w);
-		}
-		if (w instanceof ExpandItem) {
-			return SWTWorkarounds.getBounds((ExpandItem) w);
-		}
-		return new Rectangle(0, 0, 0, 0);
-	}
-
-	private static Rectangle getBounds(MenuItem menuItem) {
-		if (menuItem == null || menuItem.isDisposed()) {
-			return new Rectangle(0, 0, 0, 0);
-		}
-		int x = 0, y = 0, width = 0, height = 19;
-		if ((SWT.SEPARATOR & menuItem.getStyle()) != 0) {
-			height = 1;
-		} else {
-			String text = menuItem.getText();
-			Dimension textExtents = FigureUtilities.getTextExtents(text,
-					Display.getCurrent().getSystemFont());
-			width = textExtents.width + 12;
-			if (menuItem.getImage() != null) {
-				width += 20;
-			}
-		}
-		Menu parent = menuItem.getParent();
-		int index = parent.indexOf(menuItem);
-		for (int i = 0; i < index; i++) {
-			if (((i - 1) >= 0)) {
-				MenuItem prev = parent.getItem(i - 1);
-				Rectangle r = getBounds(prev);
-				if ((SWT.BAR & parent.getStyle()) != 0) {
-					x = r.x + r.width;
-					y = r.y;
-				} else {
-					y = r.y + r.height;
-				}
-			}
-		}
-		return new Rectangle(x, y, width, height);
-	}
-
-	public static Point getLocation(Widget widget) {
-		Rectangle bounds = getBounds(widget, false);
-		if (bounds != null) {
-			return new Point(bounds.x, bounds.y);
-		}
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/IVisualInfo.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
deleted file mode 100755
index d990c9c..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-/*
- * $RCSfile: IVisualInfo.java,v $ $Revision: 1.4 $ $Date: 2010/06/18 00:15:24 $
- */
-package org.eclipse.xwt.tools.ui.designer.core.visuals;
-
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.xwt.tools.ui.designer.core.images.IImageNotifier;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public interface IVisualInfo extends IImageNotifier {
-
-	public Object getVisualObject();
-
-	public void setVisualObject(Object visualObject);
-
-	public boolean isRoot();
-
-	public Rectangle getBounds();
-
-	public Rectangle getClientArea();
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/VisualInfo.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/VisualInfo.java
deleted file mode 100755
index 35d6262..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/VisualInfo.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.visuals;
-
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.xwt.tools.ui.designer.core.images.IImageListener;
-import org.eclipse.xwt.tools.ui.designer.core.images.ImageNotifierSupport;
-
-/**
- * @author jin.liu(jin.liu@soyatec.com)
- */
-public abstract class VisualInfo implements IVisualInfo {
-
-	protected Object visualObject;
-	protected ImageNotifierSupport imageSupport = new ImageNotifierSupport();
-
-	private boolean isRoot;
-
-	public VisualInfo(Object visualObject, boolean isRoot) {
-		this.visualObject = visualObject;
-		this.isRoot = isRoot;
-	}
-
-	public Object getVisualObject() {
-		return visualObject;
-	}
-
-	public boolean isRoot() {
-		return isRoot;
-	}
-
-	public Rectangle getBounds() {
-		return new Rectangle();
-	}
-
-	public Rectangle getClientArea() {
-		return getBounds();
-	}
-
-	public void setVisualObject(Object visualObject) {
-		this.visualObject = visualObject;
-	}
-
-	public void addImageListener(IImageListener listener) {
-		imageSupport.addImageListener(listener);
-	}
-
-	public void removeImageListener(IImageListener listener) {
-		imageSupport.removeImageListener(listener);
-	}
-
-	public boolean hasImageListeners() {
-		return imageSupport.hasImageListeners();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/CompositeInfo.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/CompositeInfo.java
deleted file mode 100755
index 84a9614..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/CompositeInfo.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.visuals.swt;
-
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Scrollable;
-import org.eclipse.xwt.tools.ui.designer.core.util.Draw2dTools;
-import org.eclipse.xwt.tools.ui.designer.core.util.swt.WidgetLocator;
-
-/**
- * @author jin.liu(jin.liu@soyatec.com)
- */
-public class CompositeInfo extends ControlInfo {
-
-	public CompositeInfo(Object visualObject, boolean isRoot) {
-		super(visualObject, isRoot);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.xwt.tools.ui.designer.core.visuals.VisualInfo#getClientArea
-	 * ()
-	 */
-	public org.eclipse.draw2d.geometry.Rectangle getClientArea() {
-		if (visualObject instanceof Scrollable) {
-			// get the display-relative location.
-			Rectangle bounds = WidgetLocator.getBounds(
-					(Scrollable) visualObject, true);
-			Rectangle clientArea = ((Scrollable) visualObject).getClientArea();
-			Rectangle calced = ((Scrollable) visualObject).computeTrim(0, 0, 0, 0);
-			bounds.width = clientArea.width;
-			bounds.height = clientArea.height;
-			bounds.x += -calced.x;
-			bounds.y += -calced.y;
-			return Draw2dTools.toDraw2d(bounds);
-		}
-		return super.getClientArea();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/ControlInfo.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/ControlInfo.java
deleted file mode 100755
index c8af5f2..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/ControlInfo.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.visuals.swt;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.tools.ui.designer.core.util.image.ImageCollectedRunnable;
-import org.eclipse.xwt.tools.ui.designer.core.util.image.ImageCollector;
-
-/**
- * @author jin.liu(jin.liu@soyatec.com)
- */
-public class ControlInfo extends WidgetInfo {
-
-	public ControlInfo(Object visualObject, boolean isRoot) {
-		super(visualObject, isRoot);
-	}
-
-	public void refreshImage() {
-		if (!isRoot()) {
-			return;
-		}
-		Widget widget = getVisualObject();
-		if (widget == null || widget.isDisposed() || !(widget instanceof Control)) {
-			return;
-		}
-		Control control = (Control) widget;
-		ImageCollector.collectImage(control, new ImageCollectedRunnable() {
-			public void imageNotCollected() {
-			}
-
-			public void imageCollected(Image image) {
-				imageSupport.fireImageChanged(image);
-			}
-		});
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/RectangleInfo.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/RectangleInfo.java
deleted file mode 100755
index 9591e05..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/RectangleInfo.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.visuals.swt;
-
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.xwt.tools.ui.designer.core.visuals.VisualInfo;
-
-/**
- * It is used to manage a visual widget such as SashFrom
- * 
- * @author yyang <yves.yang@soyatec.com>
- */
-public class RectangleInfo extends VisualInfo {
-
-	public RectangleInfo(Rectangle visualObject, boolean isRoot) {
-		super(visualObject, isRoot);
-	}
-
-	public Rectangle getBounds() {
-		return (Rectangle) getVisualObject();
-	}
-
-	public Rectangle getVisualObject() {
-		return (Rectangle) super.getVisualObject();
-	}
-
-	public void refreshImage() {
-		// do nothing.
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/ViewerInfo.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/ViewerInfo.java
deleted file mode 100755
index 35da571..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/ViewerInfo.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.visuals.swt;
-
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.xwt.tools.ui.designer.core.visuals.VisualInfo;
-
-/**
- * @author jin.liu(jin.liu@soyatec.com)
- */
-public class ViewerInfo extends VisualInfo {
-
-	private Viewer viewer;
-
-	private ControlInfo delegate;
-
-	public ViewerInfo(Viewer visualObject, boolean isRoot) {
-		super(visualObject, isRoot);
-		this.viewer = visualObject;
-		if (visualObject != null) {
-			Control control = visualObject.getControl();
-			if (control != null) {
-				delegate = new ControlInfo(control, isRoot);
-			}
-		}
-	}
-
-	public Viewer getViewer() {
-		return viewer;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.xwt.tools.ui.designer.core.visuals.VisualInfo#getBounds()
-	 */
-	public Rectangle getBounds() {
-		if (delegate != null) {
-			return delegate.getBounds();
-		}
-		return super.getBounds();
-	}
-
-	public void refreshImage() {
-		if (delegate != null) {
-			delegate.refreshImage();
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/WidgetInfo.java b/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/WidgetInfo.java
deleted file mode 100755
index 10e0259..0000000
--- a/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/WidgetInfo.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.core.visuals.swt;
-
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.tools.ui.designer.core.util.Draw2dTools;
-import org.eclipse.xwt.tools.ui.designer.core.util.swt.WidgetLocator;
-import org.eclipse.xwt.tools.ui.designer.core.visuals.VisualInfo;
-
-/**
- * @author jin.liu(jin.liu@soyatec.com)
- */
-public class WidgetInfo extends VisualInfo {
-
-	public WidgetInfo(Object visualObject, boolean isRoot) {
-		super(visualObject, isRoot);
-	}
-
-	public Rectangle getBounds() {
-		Widget widget = getVisualObject();
-		if (widget != null && !widget.isDisposed()) {
-			return Draw2dTools.toDraw2d(WidgetLocator.getBounds(widget, isRoot()));
-		}
-		return super.getBounds();
-	}
-
-	public Widget getVisualObject() {
-		return (Widget) super.getVisualObject();
-	}
-
-	public void refreshImage() {
-		// do nothing.
-	}
-
-	public Display getDisplay() {
-		Widget widget = getVisualObject();
-		if (widget != null && !widget.isDisposed()) {
-			return widget.getDisplay();
-		}
-		Display display = Display.getCurrent();
-		if (display == null) {
-			display = Display.getDefault();
-		}
-		return display;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/OSGI-INF/l10n/bundle.properties b/org.eclipse.xwt.tools.ui.designer/OSGI-INF/l10n/bundle.properties
deleted file mode 100755
index 98d1ae6..0000000
--- a/org.eclipse.xwt.tools.ui.designer/OSGI-INF/l10n/bundle.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     Soyatec - initial API and implementation
-###############################################################################
-#Properties file for org.eclipse.xwt.tools.ui.designer
-content-type.name = XWT designer content type
-editor.name = XWT Designer
-Bundle-Vendor = Eclipse.org
-Bundle-Name = XWT Designer (Incubation)
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.designer/about.html b/org.eclipse.xwt.tools.ui.designer/about.html
deleted file mode 100755
index c1343aa..0000000
--- a/org.eclipse.xwt.tools.ui.designer/about.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!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>December 3, 2009</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-<h3>Third Party Content</h3>
-
-<p>The Content includes items  from third parties as set out below. If you did not
-receive this Content directly from the Eclipse Foundation, the following is provided for informational
-purposes only, and you should look to the Redistributor&rsquo;s license for terms and conditions of use.</p>
-
-<h4>Silk icon set Version 1.3</h4>
-<p>
-This plugin contains icons from the Silk icon set created by Mark James. The original files can
-be found at:
-<ul>
-<a href="http://www.famfamfam.com/lab/icons/silk/">http://www.famfamfam.com/lab/icons/silk/</a></ul>
-<p>The license can be found at:</p>
-<ul>
- <li><a href="http://creativecommons.org/licenses/by/2.5/">http://creativecommons.org/licenses/by/2.5/</a></li>
-</ul>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.designer/build.properties b/org.eclipse.xwt.tools.ui.designer/build.properties
deleted file mode 100755
index dcb2a4c..0000000
--- a/org.eclipse.xwt.tools.ui.designer/build.properties
+++ /dev/null
@@ -1,29 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     Soyatec - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               icons/,\
-               palette/,\
-               OSGI-INF/,\
-               about.html
-src.includes = .classpath,\
-               .project,\
-               META-INF/,\
-               OSGI-INF/,\
-               icons/,\
-               palette/,\
-               plugin.xml,\
-               src/,\
-               .settings/,\
-               build.properties
diff --git a/org.eclipse.xwt.tools.ui.designer/plugin.xml b/org.eclipse.xwt.tools.ui.designer/plugin.xml
deleted file mode 100755
index 99f5f25..0000000
--- a/org.eclipse.xwt.tools.ui.designer/plugin.xml
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/pom.xml b/org.eclipse.xwt.tools.ui.designer/pom.xml
deleted file mode 100755
index 00d1284..0000000
--- a/org.eclipse.xwt.tools.ui.designer/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt.tools.ui.designer</artifactId>
-	<version>0.10.0-SNAPSHOT</version>
-	<packaging>eclipse-plugin</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/XWTDesignerPlugin.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/XWTDesignerPlugin.java
deleted file mode 100755
index dfeb5ea..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/XWTDesignerPlugin.java
+++ /dev/null
@@ -1,312 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class XWTDesignerPlugin extends AbstractUIPlugin {
-
-	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.xwt.tools.ui.designer";
-
-	// The shared instance
-	private static XWTDesignerPlugin plugin;
-
-	/**
-	 * The constructor
-	 */
-	public XWTDesignerPlugin() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);
-	}
-
-	/**
-	 * Returns the shared instance
-	 * 
-	 * @return the shared instance
-	 */
-	public static XWTDesignerPlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * @param string
-	 * @return
-	 */
-	public static ImageDescriptor getImageDescriptor(String imageFilePath) {
-		return imageDescriptorFromPlugin(PLUGIN_ID, imageFilePath);
-	}
-
-	public XWTDesigner getActiveDesigner() {
-		IWorkbench workbench = getDefault().getWorkbench();
-		if (workbench == null) {
-			return null;
-		}
-		IWorkbenchWindow activeWorkbenchWindow = workbench.getActiveWorkbenchWindow();
-		if (activeWorkbenchWindow == null) {
-			return null;
-		}
-		IWorkbenchPage activePage = activeWorkbenchWindow.getActivePage();
-		if (activePage == null) {
-			return null;
-		}
-		IEditorPart activeEditor = activePage.getActiveEditor();
-		if (activeEditor instanceof XWTDesigner) {
-			return (XWTDesigner) activeEditor;
-		}
-		return null;
-
-	}
-
-	public static void log(IStatus status) {
-		log(status, 0, true);
-	}
-
-	public static void log(IStatus status, boolean appendLogger) {
-		log(status, 0, appendLogger);
-	}
-
-	public static void log(IStatus status, int nesting) {
-		log(status, nesting, true);
-	}
-
-	public static void log(IStatus status, int nesting, boolean appendLogger) {
-		getDefault().getLog().log(status);
-	}
-
-	/**
-	 * Log Message Info
-	 */
-
-	public static void logInfo(String message) {
-		logInfo(message, 0, true);
-	}
-
-	public static void logInfo(String message, boolean appendLogger) {
-		logInfo(message, 0, appendLogger);
-	}
-
-	public static void logInfo(String message, int nesting) {
-		logInfo(message, nesting, true);
-	}
-
-	public static void logInfo(String message, int nesting, boolean appendLogger) {
-		log(newStatus(IStatus.INFO, message, null), nesting, appendLogger);
-	}
-
-	/**
-	 * Log Message and Throwable Info
-	 */
-
-	public static void logInfo(String message, Throwable t) {
-		logInfo(message, t, 0, true);
-	}
-
-	public static void logInfo(String message, Throwable t, boolean appendLogger) {
-		logInfo(message, t, 0, appendLogger);
-	}
-
-	public static void logInfo(String message, Throwable t, int nesting) {
-		logInfo(message, t, nesting, true);
-	}
-
-	public static void logInfo(String message, Throwable t, int nesting,
-			boolean appendLogger) {
-		log(newStatus(IStatus.INFO, message, t), nesting, appendLogger);
-	}
-
-	/**
-	 * Log Throwable Info
-	 */
-
-	public static void logInfo(Throwable t) {
-		logInfo(t, 0, true);
-	}
-
-	public static void logInfo(Throwable t, boolean appendLogger) {
-		logInfo(t, 0, appendLogger);
-	}
-
-	public static void logInfo(Throwable t, int nesting) {
-		logInfo(t, nesting, true);
-	}
-
-	public static void logInfo(Throwable t, int nesting, boolean appendLogger) {
-		log(newStatus(IStatus.INFO, t.getMessage(), t), nesting, appendLogger);
-	}
-
-	/**
-	 * Log Message Error
-	 */
-
-	public static void logError(String message) {
-		logError(message, 0, true);
-	}
-
-	public static void logError(String message, boolean appendLogger) {
-		logError(message, 0, appendLogger);
-	}
-
-	public static void logError(String message, int nesting) {
-		logError(message, nesting, true);
-	}
-
-	public static void logError(String message, int nesting,
-			boolean appendLogger) {
-		log(newStatus(IStatus.ERROR, message, null), nesting, appendLogger);
-	}
-
-	/**
-	 * Log Message and Throwable Error
-	 */
-
-	public static void logError(String message, Throwable t) {
-		logError(message, t, 0, true);
-	}
-
-	public static void logError(String message, Throwable t,
-			boolean appendLogger) {
-		logError(message, t, 0, appendLogger);
-	}
-
-	public static void logError(String message, Throwable t, int nesting) {
-		logError(message, t, nesting, true);
-	}
-
-	public static void logError(String message, Throwable t, int nesting,
-			boolean appendLogger) {
-		log(newStatus(IStatus.ERROR, message, t), nesting, appendLogger);
-	}
-
-	/**
-	 * Log Throwable Error
-	 */
-
-	public static void logError(Throwable t) {
-		logError(t, 0, true);
-	}
-
-	public static void logError(Throwable t, boolean appendLogger) {
-		logError(t, 0, appendLogger);
-	}
-
-	public static void logError(Throwable t, int nesting) {
-		logError(t, nesting, true);
-	}
-
-	public static void logError(Throwable t, int nesting, boolean appendLogger) {
-		log(newStatus(IStatus.ERROR, t.getMessage(), t), nesting, appendLogger);
-	}
-
-	/**
-	 * Log Message Warning
-	 */
-
-	public static void logWarning(String message) {
-		logWarning(message, 0, true);
-	}
-
-	public static void logWarning(String message, boolean appendLogger) {
-		logWarning(message, 0, appendLogger);
-	}
-
-	public static void logWarning(String message, int nesting) {
-		logWarning(message, nesting, true);
-	}
-
-	public static void logWarning(String message, int nesting,
-			boolean appendLogger) {
-		log(newStatus(IStatus.WARNING, message, null), nesting, appendLogger);
-	}
-
-	/**
-	 * Log Message and Throwable Warning
-	 */
-
-	public static void logWarning(String message, Throwable t) {
-		logWarning(message, t, 0, true);
-	}
-
-	public static void logWarning(String message, Throwable t,
-			boolean appendLogger) {
-		logWarning(message, t, 0, appendLogger);
-	}
-
-	public static void logWarning(String message, Throwable t, int nesting) {
-		logWarning(message, t, nesting, true);
-	}
-
-	public static void logWarning(String message, Throwable t, int nesting,
-			boolean appendLogger) {
-		log(newStatus(IStatus.WARNING, message, t), nesting, appendLogger);
-	}
-
-	/**
-	 * Log Throwable Warning
-	 */
-
-	public static void logWarning(Throwable t) {
-		logWarning(t, 0, true);
-	}
-
-	public static void logWarning(Throwable t, boolean appendLogger) {
-		logWarning(t, 0, appendLogger);
-	}
-
-	public static void logWarning(Throwable t, int nesting) {
-		logWarning(t, nesting, true);
-	}
-
-	public static void logWarning(Throwable t, int nesting, boolean appendLogger) {
-		log(newStatus(IStatus.WARNING, t.getMessage(), t), nesting,
-				appendLogger);
-	}
-
-	/**
-	 * Create an IStatus
-	 * 
-	 * @return a new IStatus
-	 */
-	public static IStatus newStatus(int severity, String message,
-			Throwable exception) {
-		return new Status(severity, PLUGIN_ID, 0, message, exception);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/AbstractCreateCommand.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/AbstractCreateCommand.java
deleted file mode 100755
index a067514..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/AbstractCreateCommand.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.commands;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.xwt.tools.ui.designer.editor.palette.CreateReqHelper;
-import org.eclipse.xwt.tools.ui.designer.editor.palette.InitializeHelper;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public abstract class AbstractCreateCommand extends Command {
-
-	protected EditPart parent;
-	protected CreateRequest createRequest;
-	protected CreateReqHelper helper;
-	protected Command addChildCommand;
-	private XamlNode child;
-
-	public AbstractCreateCommand(EditPart parent, CreateRequest createRequest) {
-		this.parent = parent;
-		this.createRequest = createRequest;
-		helper = new CreateReqHelper(createRequest);
-		setLabel("Creation Command");
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#execute()
-	 */
-	public void execute() {
-		preExecute(child, createRequest);
-
-		addChildCommand.execute();
-	}
-
-	protected Command createCreateCommand(XamlNode parent, XamlNode child) {
-		return new AddNewChildCommand(parent, child);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#canExecute()
-	 */
-	public boolean canExecute() {
-		if (child == null) {
-			child = helper.getNewObject();
-		}
-
-		if (!InitializeHelper.checkValue(child)) {
-			return false;
-		}
-		if (addChildCommand == null) {
-			addChildCommand = createCreateCommand(getParentModel(), child);
-		}
-
-		if (addChildCommand == null || !addChildCommand.canExecute()) {
-			return false;
-		}
-		return parent != null && getParentModel() != null && helper.canCreate(parent);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#canUndo()
-	 */
-	public boolean canUndo() {
-		return addChildCommand != null && addChildCommand.canUndo();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#undo()
-	 */
-	public void undo() {
-		addChildCommand.undo();
-	}
-
-	/**
-	 * @return the parent
-	 */
-	public EditPart getParent() {
-		return parent;
-	}
-
-	public XamlElement getParentModel() {
-		Object model = parent.getModel();
-		if (!(model instanceof XamlElement)) {
-			return null;
-		}
-		return (XamlElement) model;
-	}
-
-	protected abstract void preExecute(XamlNode newNode, CreateRequest createRequest);
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/AddItemsCommand.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/AddItemsCommand.java
deleted file mode 100755
index ae766b3..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/AddItemsCommand.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.commands;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class AddItemsCommand extends Command {
-
-	private XamlElement parent;
-	private String[] newItems;
-	private String[] oldItems;
-
-	public AddItemsCommand(XamlElement parent, String[] items) {
-		this.parent = parent;
-		this.newItems = items;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#canExecute()
-	 */
-	public boolean canExecute() {
-		return parent != null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#execute()
-	 */
-	public void execute() {
-		IMetaclass metaclass = XWTUtility.getMetaclass(parent);
-		if (metaclass == null || metaclass.findProperty("items") == null) {
-			return;
-		}
-		addItems(newItems);
-	}
-
-	private void addItems(String[] newItems) {
-		XamlAttribute itemsAttr = parent.getAttribute("items", IConstants.XWT_NAMESPACE);
-		XamlElement xArray = itemsAttr == null ? null : itemsAttr.getChild("Array", IConstants.XWT_X_NAMESPACE);
-		if (itemsAttr == null) {
-			itemsAttr = XamlFactory.eINSTANCE.createAttribute("items", IConstants.XWT_NAMESPACE);
-		}
-		if (newItems == null || newItems.length == 0) {
-			if (xArray != null) {
-				itemsAttr.getChildNodes().remove(xArray);
-			} else {
-				itemsAttr.getChildNodes().clear();
-			}
-			parent.getAttributes().remove(itemsAttr);
-			return;
-		}
-		List<XamlElement> oldItemsElements = new ArrayList<XamlElement>();
-		if (xArray != null) {
-			oldItemsElements.addAll(xArray.getChildNodes());
-		} else {
-			oldItemsElements.addAll(itemsAttr.getChildNodes());
-		}
-		List<String> items = new ArrayList<String>();
-		for (XamlElement xamlElement : oldItemsElements) {
-			items.add(xamlElement.getValue());
-		}
-		if (!items.isEmpty()) {
-			oldItems = items.toArray(new String[0]);
-		}
-		if (Arrays.deepEquals(newItems, oldItems)) {
-			return;
-		}
-
-		// 1. Create new ones.
-		if (oldItemsElements.isEmpty()) {
-			for (int i = 0; i < newItems.length; i++) {
-				String item = newItems[i];
-				XamlElement itemElement = XamlFactory.eINSTANCE.createElement("String", "clr-namespace:java.lang");
-				itemElement.setValue(item);
-				if (xArray != null) {
-					xArray.getChildNodes().add(itemElement);
-				} else {
-					itemsAttr.getChildNodes().add(itemElement);
-				}
-			}
-		}
-		// 2. Update old ones.
-		else {
-			List<XamlElement> removable = new ArrayList<XamlElement>(oldItemsElements);
-			for (int i = 0; i < newItems.length; i++) {
-				String item = newItems[i];
-				XamlElement itemElement = null;
-				try {
-					itemElement = oldItemsElements.get(i);
-				} catch (Exception e) {
-				}
-				if (itemElement == null) {
-					itemElement = XamlFactory.eINSTANCE.createElement("String", "clr-namespace:java.lang");
-				}
-				removable.remove(itemElement);
-				itemElement.setValue(item);
-				if (xArray != null) {
-					if (!xArray.getChildNodes().contains(itemElement)) {
-						xArray.getChildNodes().add(itemElement);
-					}
-				} else if (!itemsAttr.getChildNodes().contains(itemElement)) {
-					itemsAttr.getChildNodes().add(itemElement);
-				}
-			}
-			for (XamlElement remove : removable) {
-				if (xArray != null) {
-					xArray.getChildNodes().remove(remove);
-				} else {
-					itemsAttr.getChildNodes().remove(remove);
-				}
-			}
-		}
-		if (!parent.getAttributes().contains(itemsAttr)) {
-			parent.getAttributes().add(itemsAttr);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#canUndo()
-	 */
-	public boolean canUndo() {
-		return parent != null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#undo()
-	 */
-	public void undo() {
-		addItems(oldItems);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/AddNewChildCommand.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/AddNewChildCommand.java
deleted file mode 100755
index cd36e9e..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/AddNewChildCommand.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.commands;
-
-import org.eclipse.xwt.IConstants;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class AddNewChildCommand extends Command {
-	private XamlNode parent;
-	private XamlNode child;
-	private int index;
-
-	public AddNewChildCommand(XamlNode parent, XamlNode child) {
-		this(parent, child, -1);
-	}
-
-	public AddNewChildCommand(XamlNode parent, XamlNode child, int index) {
-		this.parent = parent;
-		this.child = child;
-		this.index = index;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#canExecute()
-	 */
-	public boolean canExecute() {
-		return parent != null && child != null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#execute()
-	 */
-	public void execute() {
-		if (child instanceof XamlElement) {
-			XamlElement element = (XamlElement) child;
-			if (index >= 0 && index < parent.getChildNodes().size()) {
-				parent.getChildNodes().add(index, element);
-			} else {
-				parent.getChildNodes().add(element);
-			}
-		} else if (child instanceof XamlAttribute) {
-			XamlAttribute attr = (XamlAttribute) child;
-			String name = attr.getName();
-			String prefix = attr.getPrefix();
-			XamlDocument ownerDocument = parent.getOwnerDocument();
-			String namespace = IConstants.XWT_NAMESPACE;
-			if (ownerDocument != null) {
-				namespace = ownerDocument.getDeclaredNamespace(prefix);
-			}
-			XamlAttribute oldAttr = parent.getAttribute(name, namespace);
-			if (oldAttr != null) {
-				parent.getAttributes().remove(oldAttr);
-			}
-			parent.getAttributes().add((XamlAttribute) child);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#canUndo()
-	 */
-	public boolean canUndo() {
-		return parent != null && child != null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#undo()
-	 */
-	public void undo() {
-		if (child instanceof XamlElement) {
-			parent.getChildNodes().remove(child);
-		} else if (child instanceof XamlAttribute) {
-			parent.getAttributes().remove(child);
-		}
-	}
-
-	public int getIndex() {
-		return index;
-	}
-	
-	public XamlNode getParent() {
-		return parent;
-	}
-
-	public XamlNode getChild() {
-		return child;
-	}
-
-	public void setIndex(int index) {
-		this.index = index;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ApplyAttributeSettingCommand.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ApplyAttributeSettingCommand.java
deleted file mode 100755
index c47bd04..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ApplyAttributeSettingCommand.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.commands;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class ApplyAttributeSettingCommand extends Command {
-
-	private XamlNode parent;
-	private String attributeName;
-	private String namespace;
-	private String oldValue;
-	private String newValue;
-	private boolean isCreation = false;
-	private XamlAttribute attr;
-
-	public ApplyAttributeSettingCommand(XamlNode parent, String attributeName, String namespace, String newValue) {
-		super("Set " + attributeName);
-		this.parent = parent;
-		this.attributeName = attributeName;
-		this.namespace = namespace;
-		this.newValue = newValue;
-	}
-
-	public ApplyAttributeSettingCommand(XamlNode parent, XamlAttribute attr, String value) {
-		this(parent, attr.getName(), attr.getNamespace(), value);
-		this.attr = attr;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#canExecute()
-	 */
-	public boolean canExecute() {
-		if (attr == null) {
-			if (parent != null && attributeName != null) {
-				attr = parent.getAttribute(attributeName, namespace);
-			}
-		}
-		if (attr != null) {
-			return newValue == null ? attr.getValue() != null : !newValue
-					.equals(attr.getValue());
-		}
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#canUndo()
-	 */
-	public boolean canUndo() {
-		if (isCreation && parent != null) {
-			return attr != null;
-		}
-		return attr != null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#execute()
-	 */
-	public void execute() {
-		if (attr == null) {
-			attr = parent.getAttribute(attributeName, namespace);
-		}
-		if (attr == null) {
-			attr = XamlFactory.eINSTANCE.createAttribute(attributeName, namespace);
-		} else {
-			oldValue = attr.getValue();
-		}
-		if (newValue == null || newValue.length() == 0) {
-			if (parent != null) {
-				parent.getAttributes().remove(attr);
-				return;
-			}
-		}
-		attr.setValue(newValue);
-		isCreation = attr.eContainer() == null || (parent != null && attr.eContainer() != parent);
-		if (parent != null && isCreation) {
-			parent.getAttributes().add(attr);
-		}
-	}
-
-	public XamlAttribute getAttribute() {
-		return attr;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#undo()
-	 */
-	public void undo() {
-		if (isCreation && parent != null) {
-			parent.getAttributes().remove(attr);
-		}
-		if (attr != null) {
-			if (oldValue != null) {
-				attr.setValue(oldValue);
-			} else {
-				attr.setValue(null);
-				attr.setUseFlatValue(true);
-				parent.getAttributes().remove(attr);
-				parent.getAttributes().add(attr);
-			}
-		}
-	}
-
-	public static Command createCommand(XamlNode parent, String attrName, String namespace, String newValue) {
-		return new ApplyAttributeSettingCommand(parent, attrName, namespace, newValue);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/AttachedPropertyCreateCommand.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/AttachedPropertyCreateCommand.java
deleted file mode 100755
index 19ef3ec..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/AttachedPropertyCreateCommand.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.commands;
-
-import org.eclipse.xwt.IConstants;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.xwt.tools.ui.designer.parts.CoolItemEditPart;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class AttachedPropertyCreateCommand extends AbstractCreateCommand {
-
-	private String attachedProperty;
-	private XamlAttribute attachedAttr;
-
-	public AttachedPropertyCreateCommand(EditPart parent, CreateRequest createRequest, String attachedProperty) {
-		super(parent, createRequest);
-		this.attachedProperty = attachedProperty;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.commands.AbstractCreateCommand#preExecute (org.soyatec.tools.designer.xaml.XamlNode, org.eclipse.gef.requests.CreateRequest)
-	 */
-	protected void preExecute(XamlNode newNode, CreateRequest createRequest) {
-		attachedAttr = getParentModel().getAttribute(attachedProperty);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seecom.soyatec.xwt.tools.ui.designer.commands.AbstractCreateCommand# createCreateCommand(org.soyatec.tools.designer.xaml.XamlNode, org.soyatec.tools.designer.xaml.XamlNode)
-	 */
-	protected Command createCreateCommand(XamlNode parent, XamlNode child) {
-		XamlNode newParent = parent;
-		XamlNode newChild = child;
-		if (attachedAttr == null) {
-			newChild = attachedAttr = XamlFactory.eINSTANCE.createAttribute(attachedProperty, IConstants.XWT_NAMESPACE);
-			if (child instanceof XamlElement) {
-				attachedAttr.getChildNodes().add((XamlElement) child);
-			}
-		} else {
-			newParent = attachedAttr;
-			attachedAttr.getChildNodes().clear();
-		}
-		return new AddNewChildCommand(newParent, newChild);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.commands.AbstractCreateCommand#canExecute ()
-	 */
-	public boolean canExecute() {
-		if (parent instanceof CoolItemEditPart) {
-			return parent != null && getParentModel() != null && helper.canCreate(parent) && attachedProperty != null;
-		}
-		return parent != null && getParentModel() != null && helper.canCreate(parent.getParent()) && attachedProperty != null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/BindingCreateCommand.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/BindingCreateCommand.java
deleted file mode 100755
index 870224f..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/BindingCreateCommand.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.commands;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.requests.CreateConnectionRequest;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class BindingCreateCommand extends Command {
-
-	private CreateConnectionRequest request;
-
-	public BindingCreateCommand(CreateConnectionRequest request) {
-		setLabel("Create Binding");
-		this.request = request;
-	}
-
-	public void execute() {
-		// TODO:
-		System.out.println(request);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/BindingReconnectCommand.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/BindingReconnectCommand.java
deleted file mode 100755
index 5cadf8f..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/BindingReconnectCommand.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.commands;
-
-import org.eclipse.gef.ConnectionEditPart;
-import org.eclipse.gef.NodeEditPart;
-import org.eclipse.gef.commands.Command;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class BindingReconnectCommand extends Command {
-
-	private ConnectionEditPart connection;
-	private NodeEditPart source;
-	private NodeEditPart target;
-
-	public BindingReconnectCommand(ConnectionEditPart connection) {
-		this.connection = connection;
-		setLabel("Reconnect Source");
-	}
-
-	public boolean canExecute() {
-		return connection != null && (source != null || target != null);
-	}
-
-	public void execute() {
-		// TODO:
-	}
-
-	public void setTarget(NodeEditPart target) {
-		this.target = target;
-	}
-
-	public NodeEditPart getTarget() {
-		return target;
-	}
-
-	public void setSource(NodeEditPart source) {
-		this.source = source;
-	}
-
-	public NodeEditPart getSource() {
-		return source;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ChangeConstraintCommand.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ChangeConstraintCommand.java
deleted file mode 100755
index 723d57f..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ChangeConstraintCommand.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.commands;
-
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CompoundCommand;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.xwt.tools.ui.designer.core.util.StringUtil;
-import org.eclipse.xwt.tools.ui.designer.core.util.swt.SWTTools;
-import org.eclipse.xwt.tools.ui.designer.parts.ControlEditPart;
-import org.eclipse.xwt.tools.ui.designer.utils.OffsetUtil;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTModelUtil;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ChangeConstraintCommand extends Command {
-
-	private EditPart editPart;
-	private XamlNode model;
-	private Rectangle constraint;
-
-	private boolean transform;
-	private CompoundCommand changeBoundCommand;
-
-	public ChangeConstraintCommand(EditPart editPart, Rectangle constraint) {
-		this(editPart, constraint, false);
-	}
-
-	public ChangeConstraintCommand(EditPart editPart, Rectangle constraint, boolean transform) {
-		this.editPart = editPart;
-		this.constraint = constraint;
-		this.transform = transform;
-	}
-
-	ChangeConstraintCommand(XamlNode model, Rectangle constraint) {
-		this((EditPart) null, constraint);
-		this.model = model;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#canExecute()
-	 */
-	public boolean canExecute() {
-		if (editPart != null) {
-			model = (XamlNode) editPart.getModel();
-		}
-		return model != null;
-	}
-
-	private int getXOffset() {
-		if (editPart == null) {
-			return 0;
-		}
-		/*
-		 * Fixed bug: http://www.soyatec.cn/bugs/view.php?id=813, When the root is not a Shell, the parent host maybe the Diagram directly, we should found the correctly Scrollable Parent to compute the offset value.
-		 */
-		if (editPart instanceof ControlEditPart) {
-			Control control = (Control) ((ControlEditPart) editPart).getWidget();
-			if (control != null) {
-				Composite parent = control.getParent();
-				if (parent instanceof Group) {
-					return 0;
-				} else {
-					return SWTTools.getOffset(parent).x;
-				}
-			}
-		}
-		return OffsetUtil.getXOffset(editPart.getParent());
-	}
-
-	private int getYOffset() {
-		if (editPart == null) {
-			return 0;
-		}
-		/*
-		 * Fixed bug: http://www.soyatec.cn/bugs/view.php?id=813, When the root is not a Shell, the parent host maybe the Diagram directly, we should found the correctly Scrollable Parent to compute the offset value.
-		 */
-		if (editPart instanceof ControlEditPart) {
-			Control control = (Control) ((ControlEditPart) editPart).getWidget();
-			if (control != null) {
-				Composite parent = control.getParent();
-				if (parent instanceof Group) {
-					return 0;
-				} else {
-					return SWTTools.getOffset(parent).y;
-				}
-			}
-		}
-		return OffsetUtil.getYOffset(editPart.getParent());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#execute()
-	 */
-	public void execute() {
-		IMetaclass metaclass = XWTUtility.getMetaclass(model);
-		if (metaclass == null) {
-			return;
-		}
-		changeBoundCommand = new CompoundCommand("Change Bounds");
-
-		XamlAttribute bounds = XWTModelUtil.getChildAttribute(model, "bounds", IConstants.XWT_NAMESPACE);
-		XamlAttribute location = XWTModelUtil.getChildAttribute(model, "location", IConstants.XWT_NAMESPACE);
-		XamlAttribute size = XWTModelUtil.getChildAttribute(model, "size", IConstants.XWT_NAMESPACE);
-
-		XamlNode boundsParent = null, locationParent = null, sizeParent = null;
-		Class<?> type = metaclass.getType();
-		if (Viewer.class.isAssignableFrom(type)) {
-			XamlNode controlNode = null;
-			if (bounds != null) {
-				controlNode = boundsParent = (XamlNode) bounds.eContainer();
-			}
-			if (size != null) {
-				controlNode = sizeParent = (XamlNode) size.eContainer();
-			}
-			if (location != null) {
-				controlNode = locationParent = (XamlNode) location.eContainer();
-			}
-			if (controlNode == null) {
-				controlNode = XamlFactory.eINSTANCE.createAttribute("control", IConstants.XWT_NAMESPACE);
-				changeBoundCommand.add(new AddNewChildCommand(model, controlNode));
-			}
-			if (boundsParent == null) {
-				boundsParent = controlNode;
-			}
-			if (sizeParent == null) {
-				sizeParent = controlNode;
-			}
-			if (locationParent == null) {
-				locationParent = controlNode;
-			}
-		} else {
-			boundsParent = locationParent = sizeParent = model;
-		}
-
-		Rectangle r = (Rectangle) constraint;
-		if (transform) {
-			r.x = r.x - getXOffset();
-			r.y = r.y - getYOffset();
-		}
-
-		String boundsValue = StringUtil.format(r);
-		String locationValue = StringUtil.format(r.getLocation());
-		String sizeValue = StringUtil.format(r.getSize());
-
-		Command createBounds = ApplyAttributeSettingCommand.createCommand(boundsParent, "bounds", IConstants.XWT_NAMESPACE, boundsValue);
-		Command createLocation = ApplyAttributeSettingCommand.createCommand(locationParent, "location", IConstants.XWT_NAMESPACE, locationValue);
-		Command createSize = ApplyAttributeSettingCommand.createCommand(sizeParent, "size", IConstants.XWT_NAMESPACE, sizeValue);
-		if (bounds == null) {
-			if (location == null && size == null) {
-				changeBoundCommand.add(createBounds);
-			} else {
-				changeBoundCommand.add(createSize);
-				changeBoundCommand.add(createLocation);
-			}
-		} else {
-			changeBoundCommand.add(createBounds);
-			if (location != null) {
-				changeBoundCommand.add(createLocation);
-			}
-			if (size != null) {
-				changeBoundCommand.add(createSize);
-			}
-		}
-		if (changeBoundCommand.canExecute()) {
-			changeBoundCommand.execute();
-		}
-	}
-
-	/**
-	 * @see org.eclipse.gef.commands.Command#undo()
-	 */
-	public void undo() {
-		changeBoundCommand.undo();
-	}
-
-	/**
-	 * @see org.eclipse.gef.commands.Command#canUndo()
-	 */
-	public boolean canUndo() {
-		return changeBoundCommand != null && changeBoundCommand.canUndo();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ChangeLayoutCommand.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ChangeLayoutCommand.java
deleted file mode 100755
index a229815..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ChangeLayoutCommand.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.commands;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.xwt.tools.ui.designer.core.parts.VisualEditPart;
-import org.eclipse.xwt.tools.ui.designer.core.visuals.IVisualInfo;
-import org.eclipse.xwt.tools.ui.designer.core.visuals.swt.CompositeInfo;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
-import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
-import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-
-/**
- * @author rui.ban rui.ban@soyatec.com
- */
-public class ChangeLayoutCommand extends Command {
-
-	private LayoutType layoutType;
-	private EditPart editPart;
-	private XamlElement element;
-	private XamlAttribute layoutAttr;
-	private XamlElement newLayout;
-	private XamlElement oldLayout;
-	private boolean isNewAttr;
-
-	/**
-	 * @param editPart
-	 * @param text
-	 */
-	public ChangeLayoutCommand(EditPart editPart, LayoutType layoutType) {
-		this.editPart = editPart;
-		this.layoutType = layoutType;
-	}
-
-	/**
-	 * @see org.eclipse.gef.commands.Command#canExecute()
-	 */
-	public boolean canExecute() {
-		if (editPart == null || !(editPart instanceof CompositeEditPart)) {
-			return false;
-		}
-		if (layoutType == null || layoutType == LayoutsHelper.getLayoutType(editPart)) {
-			return false;
-		}
-		return editPart.getModel() instanceof XamlElement;
-	}
-
-	/**
-	 * @see org.eclipse.gef.commands.Command#execute()
-	 */
-	public void execute() {
-		element = (XamlElement) editPart.getModel();
-		updateLayoutData(element, layoutType);
-		layoutAttr = element.getAttribute("layout");
-		if (layoutType == LayoutType.NullLayout) {
-			element.getAttributes().remove(layoutAttr);
-			return;
-		}
-		if (layoutAttr == null) {
-			layoutAttr = XamlFactory.eINSTANCE.createAttribute("layout", IConstants.XWT_NAMESPACE);
-			isNewAttr = true;
-		}
-		EList<XamlElement> childNodes = layoutAttr.getChildNodes();
-		if (childNodes.size() == 1) {
-			oldLayout = childNodes.get(0);
-		}
-		childNodes.clear();
-		if (layoutType != LayoutType.NullLayout) {
-			newLayout = XamlFactory.eINSTANCE.createElement(layoutType.value(), IConstants.XWT_NAMESPACE);
-			childNodes.add(newLayout);
-		}
-		if (isNewAttr && layoutType != LayoutType.NullLayout) {
-			element.getAttributes().add(layoutAttr);
-		}
-	}
-
-	/**
-	 * @see org.eclipse.gef.commands.Command#canUndo()
-	 */
-	public boolean canUndo() {
-		if (element == null) {
-			return false;
-		}
-		if (isNewAttr) {
-			return layoutAttr != null;
-		}
-		return layoutAttr != null && oldLayout != null;
-	}
-
-	/**
-	 * @see org.eclipse.gef.commands.Command#undo()
-	 */
-	public void undo() {
-		if (isNewAttr) {
-			element.getAttributes().remove(layoutAttr);
-		} else if (oldLayout != null) {
-			layoutAttr.getChildNodes().clear();
-			layoutAttr.getChildNodes().add(oldLayout);
-		} else if (layoutAttr != null && element.getAttribute("layout", IConstants.XWT_NAMESPACE) == null) {
-			element.getAttributes().add(layoutAttr);
-		}
-	}
-
-	private void updateLayoutData(XamlElement element, LayoutType layoutType) {
-		if (element == null) {
-			return;
-		}
-		if (layoutType != LayoutType.NullLayout) {
-			// just remove them.
-			EList<XamlElement> childNodes = element.getChildNodes();
-			for (XamlElement subElement : childNodes) {
-				XamlAttribute attribute = subElement.getAttribute("layoutData");
-				if (attribute != null) {
-					subElement.getAttributes().remove(attribute);
-				}
-			}
-		} else if (editPart != null && editPart instanceof VisualEditPart) {
-			IVisualInfo visualInfo = ((VisualEditPart) editPart).getVisualInfo();
-			Composite parent = null;
-			if (visualInfo != null && visualInfo instanceof CompositeInfo) {
-				parent = (Composite) ((CompositeInfo) visualInfo).getVisualObject();
-			}
-			if (parent == null || parent.isDisposed()) {
-				return;
-			}
-			Map<Object, Control> model2control = new HashMap<Object, Control>();
-			for (Control child : parent.getChildren()) {
-				model2control.put(XWTProxy.getModel(child), child);
-			}
-			EList<XamlElement> childNodes = element.getChildNodes();
-			for (XamlElement xamlElement : childNodes) {
-				Control control = model2control.get(xamlElement);
-				IMetaclass metaclass = XWTUtility.getMetaclass(xamlElement);
-				if (metaclass == null || !Control.class.isAssignableFrom(metaclass.getType()) || control == null) {
-					continue;
-				}
-				Rectangle r = control.getBounds();
-				boolean boundsNoExisted = true, sizeNoExisted = true, locationNoExisted = true;
-				XamlAttribute boundsAttr = xamlElement.getAttribute("bounds");
-				if (boundsAttr != null) {
-					boundsAttr.setValue(toString(r));
-					boundsNoExisted = false;
-				}
-				XamlAttribute sizeAttr = xamlElement.getAttribute("size");
-				if (sizeAttr != null) {
-					sizeAttr.setValue(toString(new Point(r.width, r.height)));
-					sizeNoExisted = false;
-				}
-				XamlAttribute locationAttr = xamlElement.getAttribute("location");
-				if (locationAttr != null) {
-					locationAttr.setValue(toString(new Point(r.x, r.y)));
-					locationNoExisted = false;
-				}
-
-				if (boundsNoExisted && sizeNoExisted && locationNoExisted) {
-					boundsAttr = XamlFactory.eINSTANCE.createAttribute("bounds", IConstants.XWT_NAMESPACE);
-					boundsAttr.setValue(toString(r));
-					xamlElement.getAttributes().add(boundsAttr);
-				} else if (boundsNoExisted && sizeNoExisted) {
-					sizeAttr = XamlFactory.eINSTANCE.createAttribute("size", IConstants.XWT_NAMESPACE);
-					sizeAttr.setValue(toString(new Point(r.width, r.height)));
-					xamlElement.getAttributes().add(sizeAttr);
-				} else if (boundsNoExisted && locationNoExisted) {
-					locationAttr = XamlFactory.eINSTANCE.createAttribute("location", IConstants.XWT_NAMESPACE);
-					locationAttr.setValue(toString(new Point(r.x, r.y)));
-					xamlElement.getAttributes().add(locationAttr);
-				}
-			}
-		}
-	}
-
-	private String toString(Object object) {
-		if (object == null) {
-			return null;
-		}
-		if (object instanceof Rectangle) {
-			Rectangle r = (Rectangle) object;
-			return r.x + "," + r.y + "," + r.width + "," + r.height;
-		} else if (object instanceof Point) {
-			Point p = (Point) object;
-			return p.x + "," + p.y;
-		}
-		return object.toString();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ChangeWeightsCommand.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ChangeWeightsCommand.java
deleted file mode 100755
index 89196cd..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ChangeWeightsCommand.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.commands;
-
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.draw2d.PositionConstants;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.xwt.IConstants;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.requests.ChangeBoundsRequest;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Sash;
-import org.eclipse.xwt.tools.ui.designer.XWTDesignerPlugin;
-import org.eclipse.xwt.tools.ui.designer.core.parts.VisualEditPart;
-import org.eclipse.xwt.tools.ui.designer.core.util.StringUtil;
-import org.eclipse.xwt.tools.ui.designer.core.util.swt.SWTTools;
-import org.eclipse.xwt.tools.ui.designer.core.visuals.IVisualInfo;
-import org.eclipse.xwt.tools.ui.designer.parts.SashFormEditPart;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jin.liu (jin.liu@soyatec.com)
- * 
- */
-public class ChangeWeightsCommand extends Command {
-	private SashFormEditPart parent;
-	private ChangeBoundsRequest request;
-	private Command command;
-	private Integer[] weights;
-
-	public ChangeWeightsCommand(SashFormEditPart parent,
-			ChangeBoundsRequest request) {
-		super("Change Weights");
-		this.parent = parent;
-		this.request = request;
-	}
-
-	public boolean canExecute() {
-		if (parent == null || request == null || request.getEditParts() == null) {
-			return false;
-		}
-		IVisualInfo visualInfo = ((VisualEditPart) parent).getVisualInfo();
-		SashForm sashForm = (SashForm) visualInfo.getVisualObject();
-		weights = computeWeights(sashForm);
-		if (weights == null) {
-			return false;
-		}
-		for (Integer integer : weights) {
-			if (integer == null || integer.intValue() < 0) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	public void execute() {
-		command = new ApplyAttributeSettingCommand(
-				(XamlNode) parent.getModel(), "weights",
-				IConstants.XWT_NAMESPACE, StringUtil.format(weights));
-		command.execute();
-	}
-
-	public boolean canUndo() {
-		return command != null && command.canUndo();
-	}
-
-	public void undo() {
-		command.undo();
-	}
-
-	private VisualEditPart getEditPart() {
-		List<VisualEditPart> editParts = new ArrayList<VisualEditPart>(request
-				.getEditParts());
-		if (editParts.size() > 0) {
-			return editParts.get(0);
-		}
-		return null;
-	}
-
-	private Integer[] computeWeights(SashForm sashForm) {
-
-		int[] weights = sashForm.getWeights();
-		int[] newWeights = weights;
-
-		VisualEditPart editPart = getEditPart();
-		if (editPart != null) {
-			XamlNode parentNode = (XamlNode) parent.getModel();
-			int index = parentNode.getChildNodes().indexOf(editPart.getModel());
-			Object visualObject = editPart.getVisualInfo().getVisualObject();
-			if (index != -1) {
-				int resizeDirection = request.getResizeDirection();
-				Dimension sizeDelta = request.getSizeDelta();
-				int offset = getResizeOffset((Control) visualObject, null,
-						newWeights, index, sizeDelta.width, sizeDelta.height,
-						resizeDirection == PositionConstants.EAST
-								|| resizeDirection == PositionConstants.WEST);
-				for (int i = 0; i < newWeights.length; i++) {
-					if (i == index) {
-						newWeights[i] += offset;
-					} else {
-						newWeights[i] -= offset / (newWeights.length - 1);
-					}
-				}
-			}
-			// SashEditPart.
-			else {
-				Sash sash = (Sash) visualObject;
-				int sashIndex = getSashIndex(sashForm, sash);
-				org.eclipse.draw2d.geometry.Point moveDelta = request
-						.getMoveDelta();
-				boolean horizontal = (sash.getStyle() & SWT.VERTICAL) != 0;
-				Control[] controls = getControls(sashForm);
-				if (controls != null) {
-					int resizeOffset = getResizeOffset(controls[sashIndex], sash, 
-							newWeights, sashIndex, moveDelta.x, moveDelta.y,
-							horizontal);
-					newWeights[sashIndex] += resizeOffset;
-					newWeights[sashIndex + 1] -= resizeOffset;
-				}
-			}
-		}
-		List<Integer> ws = new ArrayList<Integer>();
-		for (int i = 0; i < newWeights.length; i++) {
-			ws.add(newWeights[i]);
-		}
-		return ws.toArray(new Integer[ws.size()]);
-	}
-
-	private int getSashIndex(SashForm sashForm, Sash sash) {
-		try {
-			Field field = SashForm.class.getDeclaredField("sashes");
-			field.setAccessible(true);
-			Sash[] sashes = (Sash[]) field.get(sashForm);
-			for (int i = 0; i < sashes.length; i++) {
-				if (sashes[i].equals(sash)) {
-					return i;
-				}
-			}
-		} catch (Exception e) {
-			XWTDesignerPlugin.logError(e);
-		}
-		return -1;
-	}
-
-	private Control[] getControls(SashForm sashForm) {
-		try {
-			Field field = SashForm.class.getDeclaredField("controls");
-			field.setAccessible(true);
-			return (Control[]) field.get(sashForm);
-		} catch (Exception e) {
-		}
-		return null;
-	}
-
-	private int getResizeOffset(Control control, Sash sash, int[] weights, int index,
-			int x, int y, boolean horizontal) {
-		float total = 0;
-		for (int i : weights) {
-			total += i;
-		}
-
-		Rectangle bounds = SWTTools.getBounds(control);
-				
-		if (horizontal) {
-			int w = bounds.width;
-			if (sash != null) {
-				// in case the child doesn't fill the cell
-				Rectangle sashBounds = SWTTools.getBounds(sash);
-				w = Math.max(w, sashBounds.x - bounds.x);
-			}
-			float percent = weights[index] / total;
-			float width = (w / percent);
-			float newPercent = (w + x) / width;
-			int newWeight = (int) (total * newPercent);
-			return newWeight - weights[index];
-		} else {
-			int h = bounds.height;
-			if (sash != null) {
-				// in case the child doesn't fill the cell
-				Rectangle sashBounds = SWTTools.getBounds(sash);
-				h = Math.max(h, sashBounds.y - bounds.y);
-			}
-			
-			float percent = weights[index] / total;
-			float height = (h / percent);
-			float newPercent = (h + y) / height;
-			int newWeight = (int) (total * newPercent);
-			return newWeight - weights[index];
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/CoolBarInsertCreateCommand.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/CoolBarInsertCreateCommand.java
deleted file mode 100755
index 165521f..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/CoolBarInsertCreateCommand.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.commands;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.requests.CreateRequest;
-
-public class CoolBarInsertCreateCommand extends InsertCreateCommand {
-
-	public CoolBarInsertCreateCommand(EditPart parent, EditPart after, CreateRequest createRequest) {
-		super(parent, after, createRequest);
-	}
-
-	public boolean canExecute() {
-		Class<?> s = (Class<?>) helper.getCreateType();
-		return parent != null && getParentModel() != null && s.getCanonicalName().equals("org.eclipse.swt.widgets.CoolItem");
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/DefaultCreateCommand.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/DefaultCreateCommand.java
deleted file mode 100755
index 9632482..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/DefaultCreateCommand.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.commands;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class DefaultCreateCommand extends AbstractCreateCommand {
-
-	/**
-	 * @param parent
-	 * @param createRequest
-	 */
-	public DefaultCreateCommand(EditPart parent, CreateRequest createRequest) {
-		super(parent, createRequest);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.commands.AbstractCreateCommand#preExecute(org.soyatec.tools.designer.xaml.XamlNode, org.eclipse.gef.requests.CreateRequest)
-	 */
-	protected void preExecute(XamlNode newNode, CreateRequest createRequest) {
-		// Do nothing here.
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/DeleteCommand.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/DeleteCommand.java
deleted file mode 100755
index d662251..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/DeleteCommand.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.commands;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class DeleteCommand extends Command {
-	private List<XamlNode> deleteNodes;
-	private Map<EObject, DeleteData> deletedObjects = new HashMap<EObject, DeleteData>(1);
-
-	public DeleteCommand(List deleteNodes) {
-		this.deleteNodes = convertNodes(deleteNodes);
-	}
-
-	public DeleteCommand(XamlNode singleNode) {
-		this(Collections.singletonList(singleNode));
-	}
-
-	/**
-	 * @param deleteNodes
-	 * @return
-	 */
-	private List<XamlNode> convertNodes(List deleteNodes) {
-		if (deleteNodes == null) {
-			return null;
-		}
-		List<XamlNode> nodes = new ArrayList<XamlNode>();
-		for (Iterator iterator = deleteNodes.iterator(); iterator.hasNext();) {
-			Object obj = (Object) iterator.next();
-			if (obj instanceof EditPart) {
-				obj = ((EditPart) obj).getModel();
-			}
-			if (obj instanceof XamlNode) {
-				nodes.add((XamlNode) obj);
-			}
-		}
-		return nodes;
-	}
-
-	public boolean canExecute() {
-		return deleteNodes != null && !deleteNodes.isEmpty();
-	}
-
-	public void execute() {
-		for (XamlNode deleted : deleteNodes) {
-			DeleteData dd = new DeleteData();
-			dd.parent = (EObject) deleted.eContainer();
-			if (deleted instanceof XamlElement) {
-				if (dd.parent instanceof XamlNode) {
-					dd.index = ((XamlNode) dd.parent).getChildNodes().indexOf(deleted);
-					if (dd.index > -1) {
-						((XamlNode) dd.parent).getChildNodes().remove(dd.index);
-					}
-				} else if (dd.parent instanceof XamlDocument) {
-					((XamlDocument) dd.parent).setRootElement(null);
-				}
-			} else if (deleted instanceof XamlAttribute && dd.parent instanceof XamlNode) {
-				dd.index = ((XamlNode) dd.parent).getAttributes().indexOf(deleted);
-				if (dd.index > -1) {
-					((XamlNode) dd.parent).getAttributes().remove(dd.index);
-				}
-			}
-			deletedObjects.put(deleted, dd);
-		}
-	}
-
-	public boolean canUndo() {
-		return !deletedObjects.isEmpty();
-	}
-
-	public void undo() {
-		Set<EObject> deletedKeys = deletedObjects.keySet();
-		for (EObject deleted : deletedKeys) {
-			DeleteData dd = deletedObjects.get(deleted);
-			if (dd == null) {
-				continue;
-			}
-			EObject parent = dd.parent;
-			int index = dd.index;
-			if (deleted instanceof XamlElement) {
-				if (parent instanceof XamlNode) {
-					if (index > -1) {
-						((XamlNode) parent).getChildNodes().add(index, (XamlElement) deleted);
-					} else {
-						((XamlNode) parent).getChildNodes().add((XamlElement) deleted);
-					}
-				} else if (parent instanceof XamlDocument) {
-					((XamlDocument) parent).setRootElement((XamlElement) deleted);
-				}
-			} else if (deleted instanceof XamlAttribute && parent instanceof XamlNode) {
-				if (index > -1) {
-					((XamlNode) parent).getAttributes().add(index, (XamlAttribute) deleted);
-				} else {
-					((XamlNode) parent).getAttributes().add((XamlAttribute) deleted);
-				}
-			}
-		}
-		deletedKeys.clear();
-		deletedObjects.clear();
-	}
-
-	private static class DeleteData {
-		EObject parent;
-		int index = -1;
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/FormDataCreateCommand.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/FormDataCreateCommand.java
deleted file mode 100755
index ae421dc..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/FormDataCreateCommand.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.commands;
-
-import org.eclipse.xwt.IConstants;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CompoundCommand;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class FormDataCreateCommand extends Command {
-
-	private EditPart parent;
-	private FormData formData;
-	private Command command;
-	private XamlNode forCreate;
-	static int i = 0;
-	private CompoundCommand commandList;
-
-	public FormDataCreateCommand(EditPart parent, XamlNode forCreate, FormData formData) {
-		this.parent = parent;
-		this.forCreate = forCreate;
-		this.formData = formData;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#canExecute()
-	 */
-	public boolean canExecute() {
-		return parent != null && formData != null && forCreate != null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#execute()
-	 */
-	public void execute() {
-		System.out.println(formData.toString());
-		commandList = new CompoundCommand();
-		XamlNode parentNode = (XamlNode) parent.getModel();
-		XamlAttribute layoutDataAttr = forCreate.getAttribute("layoutData", IConstants.XWT_NAMESPACE);
-		if (layoutDataAttr == null) {
-			layoutDataAttr = XamlFactory.eINSTANCE.createAttribute("layoutData", IConstants.XWT_NAMESPACE);
-		}
-		XamlElement formDataChild = layoutDataAttr.getChild("FormData", IConstants.XWT_NAMESPACE);
-		if (formDataChild == null) {
-			formDataChild = XamlFactory.eINSTANCE.createElement("FormData", IConstants.XWT_NAMESPACE);
-		}
-		// 1. width and height
-		if (formData.width != SWT.DEFAULT) {
-			ApplyAttributeSettingCommand command = new ApplyAttributeSettingCommand(formDataChild, "width", IConstants.XWT_NAMESPACE, Integer.toString(formData.width));
-			addCommand(command);
-		}
-		if (formData.height != SWT.DEFAULT) {
-			ApplyAttributeSettingCommand command = new ApplyAttributeSettingCommand(formDataChild, "height", IConstants.XWT_NAMESPACE, Integer.toString(formData.height));
-			addCommand(command);
-		}
-		// 2. left, top, right and bottom.
-		computeFormDataCommand(formDataChild, formData.left, "left");
-		computeFormDataCommand(formDataChild, formData.top, "top");
-		computeFormDataCommand(formDataChild, formData.right, "right");
-		computeFormDataCommand(formDataChild, formData.bottom, "bottom");
-		// compute commands.
-		addNewChild(layoutDataAttr, formDataChild);
-		addNewChild(forCreate, layoutDataAttr);
-		addNewChild(parentNode, forCreate);
-		command = commandList.unwrap();
-		if (command.canExecute()) {
-			command.execute();
-		}
-	}
-
-	private void computeFormDataCommand(XamlNode formDataChild, FormAttachment formAttachment, String name) {
-		XamlAttribute attachmentAttr = formDataChild.getAttribute(name, IConstants.XWT_NAMESPACE);
-		if (formAttachment != null) {
-			if (attachmentAttr == null) {
-				attachmentAttr = XamlFactory.eINSTANCE.createAttribute(name, IConstants.XWT_NAMESPACE);
-			}
-			computeAttatchCommand(attachmentAttr, formAttachment);
-			addNewChild(formDataChild, attachmentAttr);
-		} else if (attachmentAttr != null) {
-			addCommand(new DeleteCommand(attachmentAttr));
-		}
-	}
-
-	private void computeAttatchCommand(XamlAttribute parent, FormAttachment attachment) {
-		XamlElement attachmentChild = parent.getChild("FormAttachment", IConstants.XWT_NAMESPACE);
-		if (attachmentChild == null) {
-			attachmentChild = XamlFactory.eINSTANCE.createElement("FormAttachment", IConstants.XWT_NAMESPACE);
-		}
-		Control control = attachment.control;
-		if (control != null) {
-			String controlName = getName(control);
-			if (controlName == null) {
-				controlName = NamedCommand.generateName(control);
-				addCommand(new NamedCommand(control, controlName));
-			}
-			XamlAttribute controlAttr = attachmentChild.getAttribute("control", IConstants.XWT_NAMESPACE);
-			if (controlAttr == null) {
-				controlAttr = XamlFactory.eINSTANCE.createAttribute("control", IConstants.XWT_NAMESPACE);
-			}
-			XamlElement bindChild = controlAttr.getChild("Binding", IConstants.XWT_NAMESPACE);
-			if (bindChild == null) {
-				bindChild = XamlFactory.eINSTANCE.createElement("Binding", IConstants.XWT_NAMESPACE);
-			}
-			ApplyAttributeSettingCommand command = new ApplyAttributeSettingCommand(bindChild, "ElementName", IConstants.XWT_NAMESPACE, controlName);
-			addCommand(command);
-
-			addNewChild(controlAttr, bindChild);
-			addNewChild(attachmentChild, controlAttr);
-
-			/* if (attachment.alignment != SWT.DEFAULT) */{
-				String alignment = "SWT.DEFAULT";
-				switch (attachment.alignment) {
-				case SWT.TOP:
-					alignment = "SWT.TOP";
-					break;
-				case SWT.BOTTOM:
-					alignment = "SWT.BOTTOM";
-					break;
-				case SWT.RIGHT:
-					alignment = "SWT.RIGHT";
-					break;
-				case SWT.CENTER:
-					alignment = "SWT.CENTER";
-					break;
-				case SWT.LEFT:
-					alignment = "SWT.LEFT";
-					break;
-				}
-				command = new ApplyAttributeSettingCommand(attachmentChild, "alignment", IConstants.XWT_NAMESPACE, alignment);
-				addCommand(command);
-			}
-		} else {
-			addCommand(new DeleteCommand(attachmentChild.getAttribute("control")));
-		}
-		/* if (attachment.denominator != 100) */{
-			ApplyAttributeSettingCommand command = new ApplyAttributeSettingCommand(attachmentChild, "denominator", IConstants.XWT_NAMESPACE, Integer.toString(attachment.denominator));
-			addCommand(command);
-		}
-		/* if (attachment.numerator != 0) */{
-			ApplyAttributeSettingCommand command = new ApplyAttributeSettingCommand(attachmentChild, "numerator", IConstants.XWT_NAMESPACE, Integer.toString(attachment.numerator));
-			addCommand(command);
-		}
-		/* if (attachment.offset != 0) */{
-			ApplyAttributeSettingCommand command = new ApplyAttributeSettingCommand(attachmentChild, "offset", IConstants.XWT_NAMESPACE, Integer.toString(attachment.offset));
-			addCommand(command);
-		}
-		addNewChild(parent, attachmentChild);
-	}
-
-	private void addCommand(Command command) {
-		if (command == null || !command.canExecute()) {
-			return;
-		}
-		commandList.add(command);
-	}
-
-	private void addNewChild(XamlNode parent, XamlNode child) {
-		if (child instanceof XamlAttribute && !parent.getAttributes().contains(child)) {
-			commandList.add(new AddNewChildCommand(parent, child));
-		} else if (child instanceof XamlElement && !parent.getChildNodes().contains(child)) {
-			commandList.add(new AddNewChildCommand(parent, child));
-		}
-	}
-
-	private String getName(Control control) {
-		XamlNode model = XWTProxy.getModel(control);
-		if (model == null) {
-			return null;
-		}
-		XamlAttribute nameAttr = model.getAttribute("name", IConstants.XWT_NAMESPACE);
-		if (nameAttr == null) {
-			nameAttr = model.getAttribute("name", IConstants.XWT_X_NAMESPACE);
-		}
-		if (nameAttr != null) {
-			return nameAttr.getValue();
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#canUndo()
-	 */
-	public boolean canUndo() {
-		return command != null && command.canUndo();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#undo()
-	 */
-	public void undo() {
-		command.undo();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/FormDataDeleteCommand.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/FormDataDeleteCommand.java
deleted file mode 100755
index e207573..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/FormDataDeleteCommand.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.commands;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CompoundCommand;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.xwt.tools.ui.designer.core.util.Draw2dTools;
-import org.eclipse.xwt.tools.ui.designer.core.util.swt.SWTTools;
-import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
-import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
-import org.eclipse.xwt.tools.ui.designer.parts.ControlEditPart;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.form.FormLayoutData;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.form.FormLayoutHelper;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class FormDataDeleteCommand extends Command {
-
-	private EditPart parent;
-	private EditPart child;
-	private Command command;
-
-	public FormDataDeleteCommand(EditPart parent, EditPart child) {
-		this.parent = parent;
-		this.child = child;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#canExecute()
-	 */
-	public boolean canExecute() {
-		if (parent == null || child == null) {
-			return false;
-		}
-		if (!(child instanceof ControlEditPart) || !(parent instanceof CompositeEditPart)) {
-			return false;
-		}
-		return child.getModel() != null && parent.getModel() != null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#execute()
-	 */
-	public void execute() {
-		CompositeEditPart parentEp = (CompositeEditPart) parent;
-		ControlEditPart childEp = (ControlEditPart) child;
-		XamlNode childNode = childEp.getCastModel();
-		if (child.getParent() == null || child.getParent() != parent) {
-			childEp = (ControlEditPart) parentEp.getViewer().getEditPartRegistry().get(childNode);
-		}
-		CompoundCommand commandList = new CompoundCommand();
-		commandList.add(new DeleteCommand(childEp.getCastModel()));
-		Control control = (Control) childEp.getWidget();
-		Control[] dependencies = FormLayoutHelper.getDependencies(control);
-		FormLayoutHelper helper = new FormLayoutHelper(parentEp);
-		control.dispose();
-		if (dependencies.length != 0) {
-			for (Control child : dependencies) {
-				XamlNode model = XWTProxy.getModel(child);
-				if (model == null) {
-					continue;
-				}
-				FormLayoutData layoutData = helper.computeData(Draw2dTools.toDraw2d(SWTTools.getBounds(child)), child);
-				if (layoutData != null) {
-					commandList.add(new FormDataCreateCommand(parentEp, model, layoutData.data));
-				}
-			}
-		}
-		command = commandList.unwrap();
-		if (command.canExecute()) {
-			command.execute();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#canUndo()
-	 */
-	public boolean canUndo() {
-		return command != null && command.canUndo();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#undo()
-	 */
-	public void undo() {
-		command.undo();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/GridLayoutCommandsFactory.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/GridLayoutCommandsFactory.java
deleted file mode 100755
index 21a3e19..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/GridLayoutCommandsFactory.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.commands;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CompoundCommand;
-import org.eclipse.gef.requests.ChangeBoundsRequest;
-import org.eclipse.xwt.tools.ui.designer.editor.palette.CreateReqHelper;
-import org.eclipse.xwt.tools.ui.designer.editor.palette.InitializeHelper;
-import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class GridLayoutCommandsFactory extends LayoutCommandsFactory {
-
-	public GridLayoutCommandsFactory(CompositeEditPart host) {
-		super(host);
-	}
-
-	public Command getCreateCommand(List<XamlNode> constraints,
-			List<XamlNode> children, Object beforeObject) {
-		return new CreationCommand(constraints, children, beforeObject);
-	}
-
-	public Command getAddCommand(List<XamlNode> constraints,
-			List<XamlNode> children, Object beforeObject) {
-		return getCreateCommand(constraints, children, beforeObject);
-	}
-
-	public Command getMoveChildrenCommand(List<XamlNode> children,
-			XamlNode before) {
-		if (children == null) {
-			return NoOpCommand.INSTANCE;
-		}
-		return new MoveChildrenCommand(children, before);
-	}
-
-	public Command getDeleteDependentCommand(
-			final List<XamlNode> deletedComponents) {
-		return new DeleteCommand(deletedComponents);
-	}
-
-	public Command getOrphanChildrenCommand(
-			final List<XamlNode> orphanedComponents) {
-		return new Command() {
-			public void execute() {
-				System.out.println(orphanedComponents);
-			}
-		};
-	}
-
-	public Command getResizeChildrenCommand(EditPart child,
-			ChangeBoundsRequest request) {
-		return new ResizeCommand(child, request.getSizeDelta());
-	}
-
-	class CreationCommand extends Command {
-		private List<XamlNode> children;
-		private Object beforeObject;
-
-		private CompoundCommand cmd;
-
-		/**
-		 * 
-		 */
-		public CreationCommand(List<XamlNode> constraints,
-				List<XamlNode> children, Object beforeObject) {
-			this.children = children;
-			this.beforeObject = beforeObject;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.gef.commands.Command#canExecute()
-		 */
-		public boolean canExecute() {
-			XamlNode model = getModel();
-			if (model == null || children == null || children.isEmpty()) {
-				return false;
-			}
-			for (XamlNode child : children) {
-				if (!CreateReqHelper.canCreate(model, child))
-					return false;
-			}
-			return true;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.gef.commands.Command#execute()
-		 */
-		public void execute() {
-			int index = -1;
-			if (beforeObject != null) {
-				index = getModel().getChildNodes().indexOf(beforeObject);
-			}
-			cmd = new CompoundCommand();
-			for (XamlNode child : children) {
-				if (!InitializeHelper.checkValue(child)) {
-					break;
-				}// add the text dialog when add a new child
-				cmd.add(new AddNewChildCommand(getModel(), child, index));
-			}
-			cmd.execute();
-		}
-
-		public boolean canUndo() {
-			return cmd != null && cmd.canUndo();
-		}
-
-		public void undo() {
-			if (cmd != null) {
-				cmd.undo();
-			}
-		}
-	}
-
-	class MoveChildrenCommand extends Command {
-		private List<XamlNode> children;
-		private XamlNode insertBeforeValue;
-		private int insertAt = -1;
-		private Map<XamlElement, Integer> moved = null;
-
-		public MoveChildrenCommand(List<XamlNode> children,
-				XamlNode insertBeforeValue) {
-			this.children = children;
-			this.insertBeforeValue = insertBeforeValue;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.gef.commands.Command#canExecute()
-		 */
-		public boolean canExecute() {
-			return getModel() != null && children != null;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.gef.commands.Command#execute()
-		 */
-		public void execute() {
-			EList<XamlElement> childNodes = getModel().getChildNodes();
-			List<XamlNode> orderedChildren = new ArrayList<XamlNode>(childNodes);
-			orderedChildren.removeAll(children);
-			if (insertBeforeValue != null) {
-				insertAt = orderedChildren.indexOf(insertBeforeValue);
-			}
-			if (insertAt != -1) {
-				orderedChildren.addAll(insertAt, children);
-			} else {
-				orderedChildren.addAll(children);
-			}
-			moved = new HashMap<XamlElement, Integer>();
-			for (XamlElement child : new ArrayList<XamlElement>(childNodes)) {
-				int newPosition = orderedChildren.indexOf(child);
-				int oldPosition = childNodes.indexOf(child);
-				if (newPosition == oldPosition) {
-					continue;
-				}
-				moved.put(childNodes.move(newPosition, oldPosition),
-						oldPosition);
-			}
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.gef.commands.Command#canUndo()
-		 */
-		public boolean canUndo() {
-			return getModel() != null && moved != null && !moved.isEmpty();
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.gef.commands.Command#undo()
-		 */
-		public void undo() {
-			EList<XamlElement> childNodes = getModel().getChildNodes();
-			for (XamlElement child : moved.keySet()) {
-				int newPosition = moved.get(child);
-				int oldPosition = childNodes.indexOf(child);
-				if (newPosition == oldPosition) {
-					continue;
-				}
-				childNodes.move(newPosition, oldPosition);
-			}
-			moved.clear();
-			moved = null;
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/InsertCreateCommand.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/InsertCreateCommand.java
deleted file mode 100755
index 4efe69c..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/InsertCreateCommand.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.commands;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class InsertCreateCommand extends AbstractCreateCommand {
-
-	private EditPart reference;
-	private int index = -1;
-
-	public InsertCreateCommand(EditPart parent, EditPart reference, CreateRequest createRequest, int index) {
-		super(parent, createRequest);
-		this.reference = reference;
-		this.index = index;
-	}
-
-	public InsertCreateCommand(EditPart parent, EditPart reference, CreateRequest createRequest) {
-		this(parent, reference, createRequest, -1);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.commands.AbstractCreationCommand#createCreateCommand(org.soyatec.tools.designer.xaml.XamlNode, org.soyatec.tools.designer.xaml.XamlNode)
-	 */
-	protected Command createCreateCommand(XamlNode parent, XamlNode child) {
-		return new AddNewChildCommand(parent, child, index);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.commands.AbstractCreationCommand#preExecute(org.soyatec.tools.designer.xaml.XamlNode, org.eclipse.gef.requests.CreateRequest)
-	 */
-	protected void preExecute(XamlNode newNode, CreateRequest createRequest) {
-		if (reference != null) {
-			index = getParentModel().getChildNodes().indexOf(reference.getModel());
-			((AddNewChildCommand) addChildCommand).setIndex(index);
-		}
-	}
-
-	public int getIndex() {
-		return index;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/LayoutCommandsFactory.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/LayoutCommandsFactory.java
deleted file mode 100755
index 64655eb..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/LayoutCommandsFactory.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.commands;
-
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.requests.ForwardedRequest;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public abstract class LayoutCommandsFactory {
-	private EditPart host;
-
-	public LayoutCommandsFactory(EditPart host) {
-		this.host = host;
-	}
-
-	public EditPart getHost() {
-		return host;
-	}
-
-	public XamlNode getModel() {
-		return (XamlNode) host.getModel();
-	}
-
-	public Command getDeleteCommand(Request request) {
-		if (!(request instanceof ForwardedRequest)) {
-			return null;
-		}
-		EditPart sender = ((ForwardedRequest) request).getSender();
-		Object model = sender.getModel();
-		if (isRoot(model)) {
-			return null;
-		}
-		return getDeleteCommand(Collections.singletonList(sender));
-	}
-
-	private boolean isRoot(Object model) {
-		return model != null && model instanceof XamlElement && ((XamlElement) model).eContainer() instanceof XamlDocument;
-	}
-
-	public Command getDeleteCommand(List deleteObjects) {
-		if (deleteObjects == null || deleteObjects.isEmpty()) {
-			return null;
-		}
-		return new DeleteCommand(deleteObjects);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/MoveChildCommand.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/MoveChildCommand.java
deleted file mode 100755
index 17856a5..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/MoveChildCommand.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.commands;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * 
- * @author jin.liu (jin.liu@soyatec.com)
- * 
- */
-public class MoveChildCommand extends Command {
-
-	private EditPart child;
-	private EditPart after;
-
-	int oldPosition = -1;
-	int newPosition = -1;
-	private XamlNode parentNode;
-
-	public MoveChildCommand(EditPart child, EditPart after) {
-		super("Move Child Command");
-		this.child = child;
-		this.after = after;
-	}
-
-	public boolean canExecute() {
-		if (child == null || child == after) {
-			return false;
-		}
-		if (after != null) {
-			Object model = after.getModel();
-			if (model instanceof XamlNode) {
-				EObject eContainer = ((XamlNode) model).eContainer();
-				if (eContainer instanceof XamlNode) {
-					parentNode = (XamlNode) eContainer;
-				}
-			}
-		}
-		if (parentNode == null) {
-			Object model = child.getModel();
-			if (model instanceof XamlNode) {
-				EObject eContainer = ((XamlNode) model).eContainer();
-				if (eContainer instanceof XamlNode) {
-					parentNode = (XamlNode) eContainer;
-				}
-			}
-		}
-		if (parentNode == null) {
-			return false;
-		}
-		oldPosition = parentNode.getChildNodes().indexOf(child.getModel());
-		if (after != null) {
-			newPosition = parentNode.getChildNodes().indexOf(after.getModel());
-		} else {
-			newPosition = parentNode.getChildNodes().size() - 1;
-		}
-		if (newPosition > oldPosition) {
-			newPosition--;
-		}
-		return newPosition != -1 && oldPosition != -1
-				&& oldPosition != newPosition;
-	}
-
-	public void execute() {
-		EList<XamlElement> children = parentNode.getChildNodes();
-		children.move(newPosition, oldPosition);
-	}
-
-	public boolean canUndo() {
-		return parentNode != null && newPosition != -1 && oldPosition != -1
-				&& newPosition != oldPosition;
-	}
-
-	public void undo() {
-		parentNode.getChildNodes().move(oldPosition, newPosition);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/NamedCommand.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/NamedCommand.java
deleted file mode 100755
index 80c32fb..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/NamedCommand.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.commands;
-
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.internal.core.ScopeKeeper;
-import org.eclipse.xwt.internal.core.ScopeManager;
-import org.eclipse.xwt.internal.utils.UserData;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class NamedCommand extends Command {
-
-	private XamlNode node;
-	private String newName;
-	private String oldName;
-
-	private XamlAttribute nameAttr;
-
-	public NamedCommand(XamlNode node, String newName) {
-		this.node = node;
-		if (newName != null) {
-			this.newName = newName;
-		}
-	}
-
-	public NamedCommand(Widget widget, String newName) {
-		this(XWTProxy.getModel(widget), newName);
-		if (newName == null) {
-			this.newName = generateName(widget);
-		}
-	}
-
-	public NamedCommand(Widget widget) {
-		this(widget, null);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#canExecute()
-	 */
-	public boolean canExecute() {
-		if (node == null || newName == null) {
-			return false;
-		}
-		nameAttr = node.getAttribute("name");
-		if (nameAttr == null) {
-			nameAttr = node.getAttribute("name", IConstants.XWT_X_NAMESPACE);
-		}
-		if (nameAttr != null && newName.equals(nameAttr.getValue())) {
-			return false;
-		}
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#execute()
-	 */
-	public void execute() {
-		if (nameAttr == null) {
-			nameAttr = XamlFactory.eINSTANCE.createAttribute("name", IConstants.XWT_NAMESPACE);
-		}
-		oldName = nameAttr.getValue();
-		nameAttr.setValue(newName);
-		if (!node.getAttributes().contains(nameAttr)) {
-			node.getAttributes().add(nameAttr);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#undo()
-	 */
-	public void undo() {
-		if (oldName == null) {
-			node.getAttributes().remove(nameAttr);
-		} else {
-			nameAttr.setValue(oldName);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#canUndo()
-	 */
-	public boolean canUndo() {
-		return node != null && nameAttr != null;
-	}
-
-	public static String generateName(Widget widget) {
-		String typeName = widget.getClass().getSimpleName();
-		typeName = typeName.length() > 1 ? Character.toLowerCase(typeName.charAt(0)) + typeName.substring(1) : typeName.toLowerCase();
-		ScopeKeeper nameContext = UserData.findScopeKeeper(widget);
-		if (nameContext != null) {
-			String name = null;
-			for (int i = 0; i < Integer.MAX_VALUE; i++) {
-				name = typeName + i;
-				if (!nameContext.containsName(name)) {
-					break;
-				}
-			}
-			return name;
-		}
-		return typeName + "0";
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/NoOpCommand.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/NoOpCommand.java
deleted file mode 100755
index 6c56347..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/NoOpCommand.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.commands;
-
-import org.eclipse.gef.commands.Command;
-
-/**
- * This is a No Operation command. There are times when a command must be returned and none being returned is considered an error. This can be used in those situations where nothing is to be be done.
- * 
- * Use the INSTANCE static field for all usages. There is no need for more than one.
- */
-
-public class NoOpCommand extends Command {
-
-	public static final NoOpCommand INSTANCE = new NoOpCommand();
-
-	private NoOpCommand() {
-	}
-
-	public boolean canExecute() {
-		return true;
-	}
-
-	public void execute() {
-	}
-
-	public void redo() {
-	}
-
-	public boolean canUndo() {
-		return true;
-	}
-
-	public void undo() {
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/NullLayoutCommandsFactory.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/NullLayoutCommandsFactory.java
deleted file mode 100755
index 887e8c9..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/NullLayoutCommandsFactory.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.commands;
-
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.xwt.tools.ui.designer.core.util.StringUtil;
-import org.eclipse.xwt.tools.ui.designer.utils.FigureUtil;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTModelUtil;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class NullLayoutCommandsFactory extends LayoutCommandsFactory {
-
-	/**
-	 * @param host
-	 */
-	public NullLayoutCommandsFactory(EditPart host) {
-		super(host);
-	}
-
-	public Command getCreateCommand(CreateRequest createRequest) {
-		return new CreateCommand(getHost(), createRequest);
-	}
-
-	public Command getChangeConstraintCommand(Object constraint) {
-		if (constraint instanceof Rectangle) {
-			return new ChangeConstraintCommand(getHost(), (Rectangle) constraint, true);
-		}
-		return null;
-	}
-
-	static class CreateCommand extends AbstractCreateCommand {
-		private static final int DEFAULT_WIDTH_WIDGET = 48;
-		private static final int DEFAULT_HEIGHT_WIDGET = 26;
-		private static final int DEFAULT_HEIGHT_COMPOSITE = 100;
-		private static final int DEFAULT_WIDTH_COMPOSITE = 100;
-
-		public CreateCommand(EditPart parent, CreateRequest createRequest) {
-			super(parent, createRequest);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.xwt.tools.ui.designer.commands.AbstractCreationCommand#preExecute(org.soyatec.tools.designer.xaml.XamlNode, org.eclipse.gef.requests.CreateRequest)
-		 */
-		protected void preExecute(XamlNode newNode, CreateRequest createRequest) {
-			Point location = createRequest.getLocation();
-			Dimension size = createRequest.getSize();
-			if (location == null) {
-				return;
-			}
-			location = FigureUtil.translateToRelative(parent, location);
-			int x = location.x;
-			int y = location.y;
-
-			IMetaclass metaclass = XWTUtility.getMetaclass(newNode);
-			if (metaclass == null) {
-				return;
-			}
-
-			int width = DEFAULT_WIDTH_WIDGET, height = DEFAULT_HEIGHT_WIDGET;
-			if (size != null) {
-				width = size.width;
-				height = size.height;
-			} else if (Composite.class.isAssignableFrom(metaclass.getType())) {
-				width = DEFAULT_WIDTH_COMPOSITE;
-				height = DEFAULT_HEIGHT_COMPOSITE;
-			}
-			String boundsValue = StringUtil.format(new Object[] { x, y, width, height });
-			if (newNode instanceof XamlElement) {
-				XamlElement childElement = (XamlElement) newNode;
-				if (Viewer.class.isAssignableFrom(metaclass.getType())) {
-					XamlAttribute attribute = XWTModelUtil.getChildAttribute(childElement, "bounds", IConstants.XWT_NAMESPACE);
-					if (attribute == null) {
-						XamlAttribute childAttr = childElement.getAttribute("control");
-						if (childAttr == null) {
-							childAttr = XamlFactory.eINSTANCE.createAttribute("control", IConstants.XWT_NAMESPACE);
-							childElement.getAttributes().add(childAttr);
-						}
-						attribute = XamlFactory.eINSTANCE.createAttribute("bounds", IConstants.XWT_NAMESPACE);
-						childAttr.getAttributes().add(attribute);
-					}
-					attribute.setValue(boundsValue);
-				} else {
-					XamlAttribute boundsAttr = childElement.getAttribute("bounds", IConstants.XWT_NAMESPACE);
-					if (boundsAttr == null) {
-						boundsAttr = XamlFactory.eINSTANCE.createAttribute("bounds", IConstants.XWT_NAMESPACE);
-						childElement.getAttributes().add(boundsAttr);
-					}
-					boundsAttr.setValue(boundsValue);
-				}
-			}
-
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ResizeCommand.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ResizeCommand.java
deleted file mode 100755
index 13755e7..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ResizeCommand.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.commands;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.xwt.IConstants;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CompoundCommand;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ResizeCommand extends Command {
-
-	private EditPart editPart;
-	private Dimension growth;
-	private CompoundCommand command;
-
-	public ResizeCommand(EditPart editPart, Dimension growth) {
-		setLabel("Resize");
-		this.editPart = editPart;
-		this.growth = growth;
-	}
-
-	public boolean canExecute() {
-		if (editPart == null || growth == null || (growth.width == 0 && growth.height == 0)) {
-			return false;
-		}
-		Object model = editPart.getModel();
-		return model != null && model instanceof XamlNode;
-	}
-
-	public void execute() {
-		int growWidth = 0;
-		int growHeight = 0;
-		if (growth.width != 0) {
-			growWidth = growth.width;
-		}
-		if (growth.height != 0) {
-			growHeight = growth.height;
-		}
-
-		Dimension size = getSize();
-		command = new CompoundCommand();
-		XamlNode model = (XamlNode) editPart.getModel();
-		if (growWidth != 0) {
-			command.add(createCommand(model, "width", growWidth + size.width));
-		}
-		if (growHeight != 0) {
-			command.add(createCommand(model, "height", growHeight + size.height));
-		}
-		if (command.canExecute()) {
-			command.execute();
-		}
-	}
-
-	private Command createCommand(XamlNode control, String attrName, int value) {
-		String newValue = Integer.toString(value);
-		CompoundCommand command = new CompoundCommand();
-		XamlAttribute layoutDataAttr = control.getAttribute("layoutData");
-		if (layoutDataAttr != null && !layoutDataAttr.getChildNodes().isEmpty()) {
-			XamlElement layoutData = layoutDataAttr.getChild(0);
-			XamlAttribute attribute = layoutData.getAttribute(attrName);
-			if (attribute == null) {
-				attribute = layoutData.getAttribute(attrName + "Hint");// GridData
-			}
-			if (attribute != null) {
-				command.add(new ApplyAttributeSettingCommand(null, attribute, newValue));
-			}
-		}
-		if (command.isEmpty()) {
-			command.add(new ApplyAttributeSettingCommand(control, attrName, IConstants.XWT_NAMESPACE, newValue));
-		} else {
-			XamlAttribute attribute = control.getAttribute(attrName);
-			if (attribute != null) {
-				command.add(new ApplyAttributeSettingCommand(null, attribute, newValue));
-			}
-		}
-		return command.unwrap();
-	}
-
-	private Dimension getSize() {
-		IFigure contentPane = ((GraphicalEditPart) editPart).getContentPane();
-		return contentPane.getSize();
-	}
-
-	public boolean canUndo() {
-		return command != null && command.canUndo();
-	}
-
-	public void undo() {
-		command.undo();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/RowLayoutCommandsFactory.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/RowLayoutCommandsFactory.java
deleted file mode 100755
index ff7ced2..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/RowLayoutCommandsFactory.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.commands;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.xwt.IConstants;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class RowLayoutCommandsFactory extends LayoutCommandsFactory {
-
-	/**
-	 * @param host
-	 */
-	public RowLayoutCommandsFactory(EditPart host) {
-		super(host);
-	}
-
-	public Command getResizeChildCommand(Object newSize) {
-		return new ResizeCommand(getHost(), (Dimension) newSize);
-	}
-
-	public Command getCreateCommand(CreateRequest createRequest, EditPart after) {
-		return new InsertCreateCommand(getHost(), after, createRequest);
-	}
-
-
-	class ResizeChildCommand extends Command {
-
-		private Object newSize;
-
-		/**
-		 * 
-		 * @param child
-		 * @param newSize
-		 */
-		public ResizeChildCommand(Object newSize) {
-			this.newSize = newSize;
-
-		}
-
-		/**
-		 * @see org.eclipse.gef.commands.Command#execute()
-		 */
-		public void execute() {
-			EList<XamlAttribute> attributes = getModel().getAttributes();
-
-			// Create LayoutData attribute if it does not exist.
-			XamlAttribute layoutDataAttr = getModel().getAttribute("layoutData");
-			if (layoutDataAttr == null) {
-				layoutDataAttr = XamlFactory.eINSTANCE.createAttribute("layoutData", IConstants.XWT_NAMESPACE);
-			}
-
-			// Create RowData element if it does not exist.
-			if (newSize instanceof Dimension) {
-				Dimension dimension = (Dimension) newSize;
-				XamlElement attrElement = layoutDataAttr.getChild("RowData");
-				if (attrElement == null) {
-					attrElement = XamlFactory.eINSTANCE.createElement("RowData", IConstants.XWT_NAMESPACE);
-					layoutDataAttr.getChildNodes().add(attrElement);
-				}
-
-				// Set the value of layoutData attribute.
-				XamlAttribute width = attrElement.getAttribute("width");
-				if (width == null) {
-					width = XamlFactory.eINSTANCE.createAttribute("width", IConstants.XWT_NAMESPACE);
-					int newvalue = getSize().width + dimension.width;
-					width.setValue(newvalue + "");
-					attrElement.getAttributes().add(width);
-				} else if (!Integer.toString(dimension.width).equals(width.getValue())) {
-					int newvalue = Integer.parseInt(width.getValue()) + dimension.width;
-					width.setValue(newvalue + "");
-				}
-				XamlAttribute height = attrElement.getAttribute("height");
-				if (height == null) {
-					height = XamlFactory.eINSTANCE.createAttribute("height", IConstants.XWT_NAMESPACE);
-					int newvalue = getSize().height + dimension.height;
-					height.setValue(newvalue + "");
-					attrElement.getAttributes().add(height);
-				} else if (!Integer.toString(dimension.height).equals(height.getValue())) {
-					int newvalue = Integer.parseInt(height.getValue()) + dimension.height;
-					height.setValue(newvalue + "");
-				}
-			}
-
-			// And the LayoutData attribute to model if it does not exist.
-			if (!attributes.contains(layoutDataAttr)) {
-				attributes.add(layoutDataAttr);
-			}
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.gef.commands.Command#canExecute()
-		 */
-		public boolean canExecute() {
-			return getModel() != null;
-		}
-
-		private Dimension getSize() {
-			IFigure contentPane = ((GraphicalEditPart) getHost()).getContentPane();
-			return contentPane.getSize();
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/SetStyleCommand.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/SetStyleCommand.java
deleted file mode 100755
index 0a94a97..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/SetStyleCommand.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.commands;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import org.eclipse.xwt.IConstants;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.xwt.tools.ui.designer.core.style.StyleGroup;
-import org.eclipse.xwt.tools.ui.designer.core.util.StringUtil;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class SetStyleCommand extends Command {
-
-	private XamlNode parent;
-	private String newStyle;
-	private StyleGroup group;
-	private boolean remove;
-	private Command delegate;
-
-	public SetStyleCommand(XamlNode parent, String newStyle) {
-		this.parent = parent;
-		this.newStyle = newStyle;
-	}
-
-	public SetStyleCommand(XamlNode parent, String newStyle, StyleGroup group) {
-		this(parent, newStyle);
-		this.group = group;
-	}
-
-	public SetStyleCommand(XamlNode parent, String newStyle, boolean remove) {
-		this(parent, newStyle);
-		this.remove = remove;
-	}
-
-	public void setGroup(StyleGroup group) {
-		this.group = group;
-	}
-
-	public void setRemove(boolean remove) {
-		this.remove = remove;
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#canExecute()
-	 */
-	public boolean canExecute() {
-		return parent != null && newStyle != null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#canUndo()
-	 */
-	public boolean canUndo() {
-		return delegate != null && delegate.canUndo();
-	}
-
-	private Command createCommand(String newStyle) {
-		return new ApplyAttributeSettingCommand(parent, "style", IConstants.XWT_X_NAMESPACE, newStyle);
-	}
-
-	private Command createDelegate() {
-		XamlAttribute attribute = parent.getAttribute("style", IConstants.XWT_X_NAMESPACE);
-		if (attribute == null || attribute.getValue() == null) {
-			return createCommand(newStyle);
-		} else {
-			String value = attribute.getValue();
-			List<String> oldValues = new ArrayList<String>();
-			StringTokenizer stk = new StringTokenizer(value, "|");
-			while (stk.hasMoreTokens()) {
-				oldValues.add(stk.nextToken().trim().toUpperCase());
-			}
-
-			// 1. Maybe not a string.
-			if (oldValues.isEmpty()) {
-				return createCommand(newStyle);
-			}
-			// 2. String style.
-			if (group != null && !"default".equals(group.getGroupName())) {
-				String[] styles = group.getStyles();
-				for (String str : styles) {
-					if (oldValues.contains(str)) {
-						oldValues.remove(str);
-					}
-					if (oldValues.contains("SWT." + str)) {
-						oldValues.remove("SWT." + str);
-					}
-				}
-				oldValues.add(newStyle);
-				String newStyleValue = StringUtil.format(oldValues.toArray(new String[oldValues.size()]), "|");
-				return createCommand(newStyleValue);
-			} else {
-				if (remove) {
-					// remove
-					if (oldValues.contains(newStyle)) {
-						oldValues.remove(newStyle);
-					}
-					if (oldValues.contains("SWT." + newStyle)) {
-						oldValues.remove("SWT." + newStyle);
-					}
-					String newStyleValue = StringUtil.format(oldValues.toArray(new String[oldValues.size()]), "|");
-					return createCommand(newStyleValue);
-				} else {
-					// new add.
-					if (oldValues.contains(newStyle) || oldValues.contains("SWT." + newStyle)) {
-						return null;
-					}
-					String styleValue = value + "|" + newStyle;
-					return createCommand(styleValue);
-				}
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#execute()
-	 */
-	public void execute() {
-		delegate = createDelegate();
-		if (delegate != null && delegate.canExecute()) {
-			delegate.execute();
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/SurroundWithCommand.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/SurroundWithCommand.java
deleted file mode 100755
index cfdd0b2..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/SurroundWithCommand.java
+++ /dev/null
@@ -1,404 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.commands;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.xwt.IConstants;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CompoundCommand;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.xwt.tools.ui.designer.core.util.StringUtil;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
-import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
-import org.eclipse.xwt.tools.ui.designer.parts.SashFormEditPart;
-import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.ILayoutEditPolicy;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridLayoutPolicyHelper;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridLayoutPolicyHelper.GridComponent;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-import org.eclipse.xwt.tools.ui.xaml.tools.AnnotationTools;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class SurroundWithCommand extends Command {
-
-	protected List<EditPart> selectedObjects;
-	protected List<WidgetEditPart> surroundings;
-	protected Class<?> type;
-	protected EditPart parent;
-	protected LayoutType layoutType;
-
-	protected Command executeCommand;
-
-	public SurroundWithCommand(List<EditPart> selectedObjects) {
-		this.selectedObjects = selectedObjects;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#canExecute()
-	 */
-	public boolean canExecute() {
-		if (selectedObjects == null || selectedObjects.isEmpty()) {
-			return false;
-		}
-
-		// Check parent, all selected objects should have a same parent.
-		for (EditPart child : selectedObjects) {
-			if (parent == null) {
-				parent = child.getParent();
-			} else if (parent != child.getParent()) {
-				return false;
-			}
-			
-			Object model = child.getModel();
-			if (model instanceof EObject) {
-				EObject object = (EObject) model;
-				if (object.eContainer() == null) {
-					return false;
-				}
-			}
-			
-		}
-		if (parent == null) {
-			return false;
-		}
-		ILayoutEditPolicy layoutEdiPolicy = (ILayoutEditPolicy) parent.getAdapter(ILayoutEditPolicy.class);
-		if (layoutEdiPolicy == null) {
-			return false;
-		}
-		layoutType = layoutEdiPolicy.getType();
-
-		surroundings = new ArrayList<WidgetEditPart>();
-
-		// do quickly check
-		if (selectedObjects.size() == 1) {
-			EditPart editPart = selectedObjects.get(0);
-			if (!(editPart instanceof WidgetEditPart)) {
-				return false;
-			} else if (((WidgetEditPart) editPart).isRoot()) {
-				return false;
-			}
-			surroundings.add((WidgetEditPart) editPart);
-			return true;
-		}
-
-		if (layoutType == LayoutType.GridLayout) {
-			//
-			// TODO: make a smart check.
-			//
-			int min = -1, max = -1;
-			XamlNode parentNode = (XamlNode) parent.getModel();
-			EList<XamlElement> childNodes = parentNode.getChildNodes();
-			for (EditPart child : selectedObjects) {
-				XamlNode node = (XamlNode) child.getModel();
-				int index = childNodes.indexOf(node);
-				if (min == -1) {
-					min = index;
-				} else {
-					min = Math.min(min, index);
-				}
-				if (max == -1) {
-					max = index;
-				} else {
-					max = Math.max(max, index);
-				}
-			}
-			for (int i = min; i <= max; i++) {
-				XamlElement child = childNodes.get(i);
-				Object childEp = parent.getViewer().getEditPartRegistry().get(child);
-				if (AnnotationTools.isAnnotated(child, GridLayoutPolicyHelper.FILLER_DATA)) {
-					surroundings.add((WidgetEditPart) childEp);
-				} else if (selectedObjects.contains(childEp)) {
-					surroundings.add((WidgetEditPart) childEp);
-				} else {
-					return false;
-				}
-			}
-		} else {
-			for (EditPart child : selectedObjects) {
-				if (child instanceof WidgetEditPart) {
-					surroundings.add((WidgetEditPart) child);
-				}
-			}
-		}
-		return layoutType != null && !surroundings.isEmpty();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#execute()
-	 */
-	public void execute() {
-		XamlNode parentModel = (XamlNode) parent.getModel();
-		sort(surroundings, parentModel.getChildNodes());
-		CompoundCommand commands = new CompoundCommand();
-		XamlElement newParent = createParent();
-		if (parent instanceof SashFormEditPart) {
-			int index = -1;
-			for (WidgetEditPart child : surroundings) {
-				XamlElement castModel = (XamlElement) child.getCastModel();
-				if (index == -1) {
-					index = parentModel.getChildNodes().indexOf(castModel);
-				}
-				
-				XamlElement newChild = (XamlElement) EcoreUtil.copy(castModel);
-				newParent.getChildNodes().add(newChild);
-			}
-
-			commands.add(new AddNewChildCommand(parentModel, newParent, index));
-		}
-		else if (LayoutType.NullLayout == layoutType) {
-			int x = -1, y = -1, right = 0, bottom = 0;
-			for (WidgetEditPart child : surroundings) {
-				Rectangle r = child.getVisualInfo().getBounds();
-				if (x == -1) {
-					x = r.x;
-				} else {
-					x = Math.min(x, r.x);
-				}
-				if (y == -1) {
-					y = r.y;
-				} else {
-					y = Math.min(y, r.y);
-				}
-				right = Math.max(right, r.right());
-				bottom = Math.max(bottom, r.bottom());
-			}
-			XamlAttribute boundsAttr = XamlFactory.eINSTANCE.createAttribute("bounds", IConstants.XWT_NAMESPACE);
-			boundsAttr.setValue(StringUtil.format(new Rectangle(x, y, right - x, bottom - y)));
-			newParent.getAttributes().add(boundsAttr);
-
-			for (WidgetEditPart child : surroundings) {
-				XamlElement castModel = (XamlElement) child.getCastModel();
-
-				Rectangle r = child.getVisualInfo().getBounds().getCopy();
-				r.translate(-x, -y);
-				XamlElement newChild = (XamlElement) EcoreUtil.copy(castModel);
-				ChangeConstraintCommand cmd = new ChangeConstraintCommand(newChild, r);
-				cmd.execute();
-
-				newParent.getChildNodes().add(newChild);
-			}
-
-			commands.add(new AddNewChildCommand(parentModel, newParent));
-		} else if (LayoutType.GridLayout == layoutType) {
-			int numRows = -1, numColumns = 0;
-			if (surroundings.size() == 1) {
-				numRows = numColumns = 1;
-			} else {
-				GridLayoutPolicyHelper helper = new GridLayoutPolicyHelper();
-				helper.setHost((CompositeEditPart) parent);
-				GridComponent[][] layoutTable = helper.getLayoutTable();
-				for (int i = 0; i < layoutTable.length; i++) {
-					GridComponent[] cells = layoutTable[i];
-					int row = 0;
-					boolean recorded = false;
-					for (int j = 0; j < cells.length; j++) {
-						GridComponent cell = cells[j];
-						XamlNode model = cell.getModel();
-						Object childEp = parent.getViewer().getEditPartRegistry().get(model);
-						if (!surroundings.contains(childEp)) {
-							continue;
-						}
-						if (!recorded) {
-							int span = cell.getSpanWidth();
-							if (span > 1) {
-								numColumns += span;
-							} else {
-								numColumns++;
-							}
-							recorded = true;
-						}
-						int spanHeight = cell.getSpanHeight();
-						if (spanHeight > 1) {
-							row += spanHeight;
-						} else {
-							row++;
-						}
-					}
-					numRows = Math.max(numRows, row);
-				}
-			}
-
-			int index = -1;
-			EList<XamlElement> childNodes = parentModel.getChildNodes();
-			for (WidgetEditPart child : surroundings) {
-				XamlElement castModel = (XamlElement) child.getCastModel();
-				int i = childNodes.indexOf(castModel);
-				if (index == -1) {
-					index = i;
-				} else {
-					index = Math.min(index, i);
-				}
-				XamlElement newChild = (XamlElement) EcoreUtil.copy(castModel);
-				newParent.getChildNodes().add(newChild);
-			}
-
-			// GridLayout
-			XamlElement gridLayout = XamlFactory.eINSTANCE.createElement("GridLayout", IConstants.XWT_NAMESPACE);
-			XamlAttribute numColumnsAttr = XamlFactory.eINSTANCE.createAttribute("numColumns", IConstants.XWT_NAMESPACE);
-			numColumnsAttr.setValue(Integer.toString(numColumns));
-			gridLayout.getAttributes().add(numColumnsAttr);
-
-			XamlAttribute gridLayoutAttr = XamlFactory.eINSTANCE.createAttribute("layout", IConstants.XWT_NAMESPACE);
-			gridLayoutAttr.getChildNodes().add(gridLayout);
-
-			newParent.getAttributes().add(gridLayoutAttr);
-
-			// GridData
-			XamlElement gridData = XamlFactory.eINSTANCE.createElement("GridData", IConstants.XWT_NAMESPACE);
-			createAttr(gridData, "horizontalAlignment", "SWT.FILL");
-			createAttr(gridData, "verticalAlignment", "SWT.FILL");
-			// createAttr(gridData, "grabExcessHorizontalSpace", "true");
-			// createAttr(gridData, "grabExcessVerticalSpace", "true");
-			createAttr(gridData, "horizontalSpan", Integer.toString(numColumns));
-			createAttr(gridData, "verticalSpan", Integer.toString(numRows));
-
-			XamlAttribute gridDataAttr = XamlFactory.eINSTANCE.createAttribute("layoutData", IConstants.XWT_NAMESPACE);
-			gridDataAttr.getChildNodes().add(gridData);
-
-			newParent.getAttributes().add(gridDataAttr);
-
-			commands.add(new AddNewChildCommand(parentModel, newParent, index));
-		} else if (LayoutType.RowLayout == layoutType || LayoutType.FillLayout == layoutType) {
-			XamlAttribute a = parentModel.getAttribute("layout");
-			if (a != null) {
-				XamlAttribute layoutAttr = (XamlAttribute) EcoreUtil.copy(a);
-				newParent.getAttributes().add(layoutAttr);
-			}
-			int index = -1;
-			EList<XamlElement> childNodes = parentModel.getChildNodes();
-			for (WidgetEditPart child : surroundings) {
-				XamlElement castModel = (XamlElement) child.getCastModel();
-				int i = childNodes.indexOf(castModel);
-				if (index == -1) {
-					index = i;
-				} else {
-					index = Math.min(index, i);
-				}
-				XamlElement newChild = (XamlElement) EcoreUtil.copy(castModel);
-				newParent.getChildNodes().add(newChild);
-			}
-			commands.add(new AddNewChildCommand(parentModel, newParent, index));
-		}
-
-		List<XamlNode> forDelete = new ArrayList<XamlNode>();
-		for (WidgetEditPart node : surroundings) {
-			forDelete.add(node.getCastModel());
-		}
-
-		commands.add(new DeleteCommand(forDelete));
-
-		executeCommand = commands.unwrap();
-		if (executeCommand.canExecute()) {
-			executeCommand.execute();
-		}
-	}
-
-	private void sort(List<WidgetEditPart> surroundings, final List<XamlElement> childNodes) {
-		Collections.sort(surroundings, new Comparator<WidgetEditPart>() {
-			public int compare(WidgetEditPart o1, WidgetEditPart o2) {
-				int i1 = childNodes.indexOf(o1.getCastModel());
-				int i2 = childNodes.indexOf(o2.getCastModel());
-				return i1 - i2;
-			}
-
-		});
-	}
-
-	private XamlAttribute createAttr(XamlNode parent, String name, String value) {
-		XamlAttribute attr = XamlFactory.eINSTANCE.createAttribute(name, IConstants.XWT_NAMESPACE);
-		attr.setValue(value);
-
-		parent.getAttributes().add(attr);
-
-		return attr;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#undo()
-	 */
-	public void undo() {
-		executeCommand.undo();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#canUndo()
-	 */
-	public boolean canUndo() {
-		return executeCommand != null && executeCommand.canUndo();
-	}
-
-	protected XamlElement createParent() {
-		XamlElement newParent = XamlFactory.eINSTANCE.createElement(type.getSimpleName(), IConstants.XWT_NAMESPACE);
-		if (Group.class == type) {
-			XamlAttribute textAttr = XamlFactory.eINSTANCE.createAttribute("text", IConstants.XWT_NAMESPACE);
-			textAttr.setValue("New Group");
-			newParent.getAttributes().add(textAttr);
-		}
-		return newParent;
-	}
-
-	/**
-	 * @param type
-	 *            the type to set
-	 */
-	public void setType(Class<?> type) {
-		this.type = type;
-	}
-
-	/**
-	 * @return the type
-	 */
-	public Class<?> getType() {
-		return type;
-	}
-
-	static class Counter {
-		List<Integer> indexes;
-		int count = 0;
-
-		void add(int index, int span) {
-			if (indexes == null) {
-				indexes = new ArrayList<Integer>();
-			}
-			if (indexes.contains(index)) {
-				return;
-			}
-			indexes.add(index);
-			if (span == 0) {
-				count++;
-			} else {
-				count += span;
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/BindingConstants.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/BindingConstants.java
deleted file mode 100755
index 226684e..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/BindingConstants.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.databinding;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public interface BindingConstants {
-	String CONVERTER = "Converter";
-	String MODE = "BindingMode";
-	String PATH = "Path";
-	String ELEMENT_NAME = "ElementName";
-	String BINDING = "Binding";
-	String SOURCE = "Source";
-	String STATIC_RESOURCE = "StaticResource";
-	String DATA_CONTEXT = "DataContext";
-	String UPDATE_SOURCE_TRIGGER = "UpdateSourceTrigger";
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/BindingContext.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/BindingContext.java
deleted file mode 100755
index 6e41173..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/BindingContext.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.databinding;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class BindingContext {
-
-	private IObservable target;
-	private Property targetProperty;
-	private IObservable model;
-	private Property modelProperty;
-
-	private PropertyChangeSupport support = null;
-
-	public BindingContext() {
-		this(null, null, null, null);
-	}
-
-	public BindingContext(IObservable target, Property targetProperty, IObservable model, Property modelProperty) {
-		this.target = target;
-		this.targetProperty = targetProperty;
-		this.model = model;
-		this.modelProperty = modelProperty;
-		support = new PropertyChangeSupport(this);
-	}
-
-	public void addPropertyChangeListener(PropertyChangeListener listener) {
-		support.addPropertyChangeListener(listener);
-	}
-
-	public void removePropertyChangeListener(PropertyChangeListener listener) {
-		support.removePropertyChangeListener(listener);
-	}
-
-	public IObservable getTarget() {
-		return target;
-	}
-
-	public void setTarget(IObservable target) {
-		IObservable oldValue = this.target;
-		this.target = target;
-		support.firePropertyChange("target", oldValue, this.target);
-	}
-
-	public Property getTargetProperty() {
-		return targetProperty;
-	}
-
-	public void setTargetProperty(Property targetProperty) {
-		Property oldValue = this.targetProperty;
-		this.targetProperty = targetProperty;
-		support.firePropertyChange("targetProperty", oldValue, this.targetProperty);
-	}
-
-	public IObservable getModel() {
-		return model;
-	}
-
-	public void setModel(IObservable model) {
-		IObservable oldValue = this.model;
-		this.model = model;
-		support.firePropertyChange("model", oldValue, this.model);
-	}
-
-	public Property getModelProperty() {
-		return modelProperty;
-	}
-
-	public void setModelProperty(Property modelProperty) {
-		Property oldValue = this.modelProperty;
-		this.modelProperty = modelProperty;
-		support.firePropertyChange("modelProperty", oldValue, this.modelProperty);
-	}
-
-	public boolean isValid() {
-		boolean valid = model != null && modelProperty != null && target != null && targetProperty != null;
-		if (valid && modelProperty.equals(targetProperty)) {
-			return !model.equals(target);
-		}
-		return valid;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/BindingHelper.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/BindingHelper.java
deleted file mode 100755
index dc701a7..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/BindingHelper.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.databinding;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.databinding.BindingMode;
-import org.eclipse.xwt.internal.core.UpdateSourceTrigger;
-import org.eclipse.xwt.internal.utils.UserData;
-import org.eclipse.xwt.jface.JFacesHelper;
-import org.eclipse.gef.EditPart;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.tools.ui.designer.core.util.swt.SWTTools;
-import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
-import org.eclipse.xwt.tools.ui.designer.parts.ViewerEditPart;
-import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class BindingHelper implements BindingConstants {
-
-	private static Map<XamlNode, BindingInfo> bindingCache = new HashMap<XamlNode, BindingInfo>();
-
-	public static List<BindingInfo> getBindings(EditPart editPart) {
-		if (editPart == null) {
-			return Collections.emptyList();
-		}
-		Object component = null;
-		if (editPart instanceof WidgetEditPart) {
-			component = ((WidgetEditPart) editPart).getWidget();
-		} else if (editPart instanceof ViewerEditPart) {
-			component = ((ViewerEditPart) editPart).getJfaceViewer();
-		}
-		if (component == null) {
-			return Collections.emptyList();
-		}
-		List<BindingInfo> bindings = new ArrayList<BindingInfo>();
-		collectBindings(component, bindings);
-		return bindings;
-	}
-
-	private static void collectBindings(Object component, List<BindingInfo> bindings) {
-		if (component == null) {
-			return;
-		}
-		List<BindingInfo> childBindings = getBindings(component);
-		if (childBindings != null) {
-			bindings.addAll(childBindings);
-		}
-		if (JFacesHelper.isViewer(component)) {
-			// If JFace Viewer, just come here.
-			return;
-		}
-		Viewer viewer = UserData.getLocalViewer(component);
-		if (viewer != null) {
-			collectBindings(viewer, bindings);
-		}
-		if (component instanceof Widget) {
-			Widget[] children = SWTTools.getChildren((Widget) component);
-			for (Widget widget : children) {
-				collectBindings(widget, bindings);
-			}
-		}
-	}
-
-	public static List<BindingInfo> getBindings(Object component) {
-		XamlNode node = XWTProxy.getModel(component);
-		if (node == null) {
-			return Collections.emptyList();
-		}
-		List<BindingInfo> bindings = new ArrayList<BindingInfo>();
-		for (XamlAttribute attribute : node.getAttributes()) {
-			XamlElement bindNode = attribute.getChild(BINDING);
-			if (bindNode != null) {
-				BindingInfo binding = createBindingInfo(component, attribute.getName(), bindNode);
-				if (binding != null) {
-					bindings.add(binding);
-				}
-			}
-		}
-		return bindings;
-	}
-
-	private static BindingInfo createBindingInfo(Object targetSource, String propertyName, XamlElement bindingNode) {
-		BindingInfo bindingInfo = bindingCache.get(bindingNode);
-		if (bindingInfo != null) {
-			// TODO: To check if binding changed.
-			return bindingInfo;
-		}
-
-		Observable target = ObservableUtil.getObservable(targetSource);
-		Property targetProperty = target.getProperty(propertyName);
-
-		String elementName = null;
-		String modelPropertyName = null;
-		String bindingMode = null;
-		String updateTtrigger = null;
-		String converter = null;
-		XamlAttribute attribute = bindingNode.getAttribute(ELEMENT_NAME);
-		if (attribute != null) {
-			elementName = attribute.getValue();
-		}
-		attribute = bindingNode.getAttribute(PATH);
-		if (attribute != null) {
-			modelPropertyName = attribute.getValue();
-		}
-		attribute = bindingNode.getAttribute(MODE);
-		if (attribute != null) {
-			bindingMode = attribute.getValue();
-		}
-		attribute = bindingNode.getAttribute(CONVERTER);
-		if (attribute != null) {
-			converter = attribute.getValue();
-		}
-		attribute = bindingNode.getAttribute(UPDATE_SOURCE_TRIGGER);
-		if (attribute != null) {
-			updateTtrigger = attribute.getValue();
-		}
-		Object modelSource;
-		if (elementName != null) {
-			modelSource = XWT.findElementByName(targetSource, elementName);
-		} else {
-			modelSource = getDataContext(targetSource);
-		}
-		IObservable model = ObservableUtil.getObservable(modelSource);
-		if (model == null) {
-			return null;
-		}
-		Property modelProperty = model.getProperty(modelPropertyName);
-
-		bindingInfo = new BindingInfo(new BindingContext(target, targetProperty, model, modelProperty));
-		bindingInfo.setElementName(elementName);
-		if (bindingMode != null) {
-			bindingInfo.setBindingMode(BindingMode.valueOf(bindingMode));
-		}
-		if (updateTtrigger != null) {
-			bindingInfo.setTriggerMode(UpdateSourceTrigger.valueOf(updateTtrigger));
-		}
-		bindingInfo.setConverter(converter);
-		bindingInfo.setBindingNode(bindingNode);
-		bindingCache.put(bindingNode, bindingInfo);
-		return bindingInfo;
-	}
-
-	public static DataContext getDataContext(Object widget) {
-		if (widget == null) {
-			return null;
-		}
-		try {
-			Object dataContext = XWT.getDataContext(widget);
-			Map<?, ?> resources = UserData.getResources(widget);
-			if (resources == null) {
-				return null;
-			}
-			if (dataContext != null && !resources.isEmpty()) {
-				Set<?> entrySet = resources.entrySet();
-				for (Object object : entrySet) {
-					Entry<?, ?> entry = (Entry<?, ?>) object;
-					Object value = entry.getValue();
-					if (!dataContext.equals(value)) {
-						continue;
-					}
-					Object key = entry.getKey();
-					return new DataContext(key.toString(), value);
-				}
-			} else {
-				Set<?> entrySet = resources.entrySet();
-				for (Object object : entrySet) {
-					Entry<?, ?> entry = (Entry<?, ?>) object;
-					Object key = entry.getKey();
-					Object value = entry.getValue();
-					return new DataContext(key.toString(), value);
-				}
-			}
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/BindingInfo.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/BindingInfo.java
deleted file mode 100755
index e022b6c..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/BindingInfo.java
+++ /dev/null
@@ -1,327 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.databinding;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.databinding.BindingMode;
-import org.eclipse.xwt.internal.core.ScopeKeeper;
-import org.eclipse.xwt.internal.core.UpdateSourceTrigger;
-import org.eclipse.xwt.internal.utils.UserData;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CompoundCommand;
-import org.eclipse.gef.commands.UnexecutableCommand;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.tools.ui.designer.commands.AddNewChildCommand;
-import org.eclipse.xwt.tools.ui.designer.commands.DeleteCommand;
-import org.eclipse.xwt.tools.ui.designer.commands.NamedCommand;
-import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class BindingInfo implements IBindingInfo, IBindingHandler, BindingConstants {
-
-	private BindingContext context;
-
-	private String elementName;
-	private BindingMode bindingMode;
-	private UpdateSourceTrigger triggerMode;
-	private String converter;
-	private CodeStyles codeStyles;
-	private XamlElement bindingNode;
-
-	public BindingInfo(BindingContext bindingContext) {
-		Assert.isNotNull(bindingContext);
-		this.context = bindingContext;
-	}
-
-	public BindingContext getBindingContext() {
-		return context;
-	}
-
-	public void setBindingNode(XamlElement bindingNode) {
-		this.bindingNode = bindingNode;
-	}
-
-	public XamlElement getBindingNode() {
-		return bindingNode;
-	}
-
-	public void setConverter(String converter) {
-		this.converter = converter;
-		if (bindingNode != null) {
-			addAttr(bindingNode, CONVERTER, IConstants.XWT_NAMESPACE, converter);
-		}
-	}
-
-	public String getConverter() {
-		return converter;
-	}
-
-	public void setElementName(String elementName) {
-		this.elementName = elementName;
-		if (bindingNode != null) {
-			addAttr(bindingNode, ELEMENT_NAME, IConstants.XWT_NAMESPACE, elementName);
-		}
-	}
-
-	public String getElementName() {
-		IObservable model = context.getModel();
-		if (elementName == null && model != null && model.getType() == IObservable.OBSERVE_SWT_JFACE) {
-			Object source = model.getSource();
-			elementName = getWidgetName(source);
-		}
-		return elementName;
-	}
-
-	private String getWidgetName(Object widget) {
-		ScopeKeeper nameContext = UserData.findScopeKeeper(widget);
-		if (nameContext != null) {
-			for (String name : nameContext.names()) {
-				if (widget == nameContext.getNamedObject(name)) {
-					return name;
-				}
-			}
-		}
-		return null;
-	}
-
-	public void setBindingMode(BindingMode bindingMode) {
-		this.bindingMode = bindingMode;
-		if (bindingNode != null) {
-			addAttr(bindingNode, MODE, IConstants.XWT_NAMESPACE, bindingMode.name());
-		}
-	}
-
-	public BindingMode getBindingMode() {
-		return bindingMode;
-	}
-
-	public void setCodeStyles(CodeStyles codeStyles) {
-		if (codeStyles != null) {
-			this.codeStyles = codeStyles;
-		}
-	}
-
-	public CodeStyles getCodeStyles() {
-		if (codeStyles == null) {
-			codeStyles = new CodeStyles();
-		}
-		return codeStyles;
-	}
-
-	private XamlAttribute getAttribute(XamlNode parent, String attrName, String namespace) {
-		XamlAttribute attribute = parent.getAttribute(attrName, namespace);
-		if (attribute == null) {
-			attribute = XamlFactory.eINSTANCE.createAttribute(attrName, namespace);
-		}
-		return attribute;
-	}
-
-	private XamlElement getElement(XamlNode parent, String name, String namespace) {
-		XamlElement child = parent.getChild(name, namespace);
-		if (child == null) {
-			child = XamlFactory.eINSTANCE.createElement(name, namespace);
-		}
-		return child;
-	}
-
-	private XamlAttribute addAttr(XamlNode parent, String attrName, String namespace, String value) {
-		if (parent == null || attrName == null || namespace == null) {
-			return null;
-		}
-		XamlAttribute attribute = parent.getAttribute(attrName, namespace);
-		if (attribute == null) {
-			attribute = XamlFactory.eINSTANCE.createAttribute(attrName, namespace);
-		}
-		attribute.setValue(value);
-		if (!parent.getAttributes().contains(attribute)) {
-			parent.getAttributes().add(attribute);
-		}
-
-		return attribute;
-	}
-
-	private String getCreateName(Object model, CompoundCommand commands) {
-		if (!(model instanceof Widget)) {
-			return null;
-		}
-		Widget widget = (Widget) model;
-		String original = getWidgetName(widget);
-		if (original != null) {
-			return original;
-		}
-		String elementName = getElementName();
-		if (elementName == null) {
-			elementName = NamedCommand.generateName(widget);
-		}
-		commands.add(new NamedCommand(widget, elementName));
-		UserData.setObjectName(widget, elementName);
-		return elementName;
-	}
-
-	public boolean canBinding() {
-		return context.isValid();
-	}
-
-	public Command bindWithCommand() {
-		if (!canBinding()) {
-			return null;
-		}
-		CompoundCommand commandList = new CompoundCommand();
-
-		Property targetProperty = context.getTargetProperty();
-		Property modelProperty = context.getModelProperty();
-		IObservable target = context.getTarget();
-		IObservable model = context.getModel();
-		Object targetSource = target.getSource();
-
-		Object modelSource = model.getSource();
-
-		XamlNode node = null;
-		if (targetSource instanceof Widget) {
-			node = XWTProxy.getModel((Widget) targetSource);
-		} else if (targetSource instanceof XamlElement) {
-			node = (XamlElement) targetSource;
-		}
-
-		if (node == null) {
-			return UnexecutableCommand.INSTANCE;
-		}
-
-		// 1. Get attr of targetProperty, such as < text="{}"/>
-		XamlAttribute attribute = node.getAttribute(targetProperty.getName(), IConstants.XWT_NAMESPACE);
-		if (attribute != null) {
-			commandList.add(new DeleteCommand(attribute));
-			attribute = null;
-		}
-		if (attribute == null) {
-			attribute = XamlFactory.eINSTANCE.createAttribute(targetProperty.getName(), IConstants.XWT_NAMESPACE);
-		}
-		// 2. Binding Node.
-		if (bindingNode == null) {
-			bindingNode = attribute.getChild(BINDING, IConstants.XWT_NAMESPACE);
-		}
-		if (bindingNode == null) {
-			bindingNode = XamlFactory.eINSTANCE.createElement(BINDING, IConstants.XWT_NAMESPACE);
-		}
-		// 3. ElementName
-		int type = model.getType();
-		if (type == IObservable.OBSERVE_SWT_JFACE) {
-			addAttr(bindingNode, ELEMENT_NAME, IConstants.XWT_NAMESPACE, getCreateName(modelSource, commandList));
-		}
-		// 4. DataContext
-		else if (IObservable.OBSERVE_JAVA_BAEN == type) {
-			XamlDocument ownerDocument = node.getOwnerDocument();
-			XamlElement rootElement = ownerDocument.getRootElement();
-			DataContext dataContext = (DataContext) modelSource;
-			String key = dataContext.getKey();
-			if (key != null) {
-				boolean canUseDC = getCodeStyles().useDataContext;
-				if (canUseDC) {
-					XamlAttribute contextNode = getAttribute(rootElement, DATA_CONTEXT, IConstants.XWT_NAMESPACE);
-					contextNode.setUseFlatValue(true);
-
-					XamlElement resourceNode = getElement(contextNode, STATIC_RESOURCE, IConstants.XWT_NAMESPACE);
-					if (!key.equals(resourceNode.getValue())) {
-						if (resourceNode.getValue() != null) {
-							canUseDC = false;
-						} else {
-							resourceNode.setValue(key);
-							commandList.add(new AddNewChildCommand(contextNode, resourceNode));
-							commandList.add(new AddNewChildCommand(rootElement, contextNode));
-						}
-					}
-				}
-				if (!canUseDC || !getCodeStyles().useDataContext) {
-					XamlAttribute sourceAttr = getAttribute(bindingNode, SOURCE, IConstants.XWT_NAMESPACE);
-					sourceAttr.setUseFlatValue(true);
-					XamlElement resourceNode = getElement(sourceAttr, STATIC_RESOURCE, IConstants.XWT_NAMESPACE);
-
-					resourceNode.setValue(key);
-					commandList.add(new AddNewChildCommand(sourceAttr, resourceNode));
-					commandList.add(new AddNewChildCommand(bindingNode, sourceAttr));
-				}
-			}
-		}
-
-		// 5. Path
-		addAttr(bindingNode, PATH, IConstants.XWT_NAMESPACE, modelProperty.toString());
-
-		// 6. BindingMode
-		if (bindingMode != null && BindingMode.TwoWay.equals(bindingMode)) {
-			addAttr(bindingNode, MODE, IConstants.XWT_NAMESPACE, bindingMode.name());
-		}
-
-		// 7. Converter.
-		if (converter != null) {
-			addAttr(bindingNode, CONVERTER, IConstants.XWT_NAMESPACE, converter);
-		}
-
-		// 8. UpdateSourceTrigger
-		if (triggerMode != null) {
-			addAttr(bindingNode, UPDATE_SOURCE_TRIGGER, IConstants.XWT_NAMESPACE, triggerMode.name());
-		}
-
-		// 9. Code Style.
-		attribute.setUseFlatValue(getCodeStyles().useFlatVlaue);
-
-		if (!attribute.getChildNodes().contains(bindingNode)) {
-			attribute.getChildNodes().add(bindingNode);
-		}
-		if (!node.getAttributes().contains(attribute)) {
-			commandList.add(new AddNewChildCommand(node, attribute));
-		}
-		return commandList.unwrap();
-	}
-
-	public boolean canDelete() {
-		return bindingNode != null && bindingNode.eContainer() != null;
-	}
-
-	public Command deleteWithCommand() {
-		if (canDelete()) {
-			XamlAttribute bindAttr = (XamlAttribute) bindingNode.eContainer();
-			return new DeleteCommand(bindAttr);
-		}
-		return null;
-	}
-
-	public IObservable getModel() {
-		return context.getModel();
-	}
-
-	public Property getModelProperty() {
-		return context.getModelProperty();
-	}
-
-	public IObservable getTarget() {
-		return context.getTarget();
-	}
-
-	public Property getTargetProperty() {
-		return context.getTargetProperty();
-	}
-
-	public UpdateSourceTrigger getTriggerMode() {
-		return triggerMode;
-	}
-
-	public void setTriggerMode(UpdateSourceTrigger triggerMode) {
-		this.triggerMode = triggerMode;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/CodeStyles.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/CodeStyles.java
deleted file mode 100755
index a1e96c5..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/CodeStyles.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.databinding;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class CodeStyles {
-
-	public boolean useFlatVlaue = true;
-
-	public boolean useDataContext = true;
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/DataContext.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/DataContext.java
deleted file mode 100755
index 93dbee4..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/DataContext.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.databinding;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class DataContext {
-
-	private String key;
-	private Object data;
-
-	public DataContext(String key, Object data) {
-		this.key = key;
-		this.data = data;
-	}
-
-	public String getKey() {
-		return key;
-	}
-
-	public Object getData() {
-		return data;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result + ((key == null) ? 0 : key.hashCode());
-		result = prime * result + ((data == null) ? 0 : data.hashCode());
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (obj == null)
-			return false;
-		if (getClass() != obj.getClass())
-			return false;
-		DataContext other = (DataContext) obj;
-		if (key == null) {
-			if (other.key != null)
-				return false;
-		} else if (!key.equals(other.key))
-			return false;
-		if (data == null) {
-			if (other.data != null)
-				return false;
-		} else if (!data.equals(other.data))
-			return false;
-		return true;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/IBindingHandler.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/IBindingHandler.java
deleted file mode 100755
index e5a1557..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/IBindingHandler.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.databinding;
-
-import org.eclipse.gef.commands.Command;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public interface IBindingHandler {
-
-	boolean canBinding();
-
-	Command bindWithCommand();
-
-	boolean canDelete();
-
-	Command deleteWithCommand();
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/IBindingInfo.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/IBindingInfo.java
deleted file mode 100755
index 1098ae3..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/IBindingInfo.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.databinding;
-
-import org.eclipse.xwt.databinding.BindingMode;
-import org.eclipse.xwt.internal.core.UpdateSourceTrigger;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public interface IBindingInfo {
-
-	IObservable getTarget();
-
-	Property getTargetProperty();
-
-	IObservable getModel();
-
-	Property getModelProperty();
-
-	String getElementName();
-
-	/**
-	 * The URL of a IConverter,
-	 */
-	String getConverter();
-
-	/**
-	 * One of {@link BindingMode}, <code>TwoWay</code>, <code>OneWay</code>, <code>OneTime</code>;
-	 */
-	BindingMode getBindingMode();
-
-	/**
-	 * One of {@link UpdateSourceTrigger}, <code>Default</code>, <code>PropertyChanged</code>, <code>LostFocus</code>;
-	 */
-	UpdateSourceTrigger getTriggerMode();
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/IObservable.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/IObservable.java
deleted file mode 100755
index bc86e30..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/IObservable.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.databinding;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public interface IObservable {
-
-	int OBSERVE_SWT_JFACE = 1;
-	int OBSERVE_JAVA_BAEN = 3;
-	int OBSERVE_UNKNOWN = 0;
-
-	Object getSource();
-
-	String getDisplayName();
-
-	IObservable getParent();
-
-	IObservable[] getChildren();
-
-	Property[] getProperties();
-
-	Property getProperty(String propertyName);
-
-	/**
-	 * One type of OBSERVE_WIDGET, OBSERVE_VIEWER, OBSERVE_BAEN and OBSERVE_UNKNOWN
-	 * 
-	 * @return
-	 */
-	int getType();
-
-	/**
-	 * @return
-	 */
-	boolean hasChildren();
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/Observable.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/Observable.java
deleted file mode 100755
index 5d596fb..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/Observable.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.databinding;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class Observable implements IObservable {
-
-	private Object source;
-	private List<Property> properties;
-	private Observable parent;
-
-	private List<IObservable> children;
-
-	Observable(Object source, Observable parent) {
-		Assert.isNotNull(source);
-		this.source = source;
-		this.parent = parent;
-		if (parent != null) {
-			parent.add(this);
-		}
-	}
-
-	private void add(Observable observable) {
-		if (children == null) {
-			children = new ArrayList<IObservable>();
-		}
-		if (!children.contains(observable)) {
-			children.add(observable);
-		}
-	}
-
-	public boolean hasChildren() {
-		return children != null && children.size() > 0;
-	}
-
-	public int getType() {
-		if (source == null) {
-			return OBSERVE_UNKNOWN;
-		}
-		if (source instanceof Widget || source instanceof Viewer) {
-			return OBSERVE_SWT_JFACE;
-		}
-		return OBSERVE_JAVA_BAEN;
-	}
-
-	public Property[] getProperties() {
-		if (properties == null) {
-			properties = new ArrayList<Property>();
-			Object sourceObj = source;
-			if (source instanceof DataContext) {
-				sourceObj = ((DataContext) source).getData();
-			}
-			Map<String, Class<?>> propertiesMap = PropertyUtil.getProperties(sourceObj);
-			Set<Entry<String, Class<?>>> entrySet = propertiesMap.entrySet();
-			for (Entry<String, Class<?>> entry : entrySet) {
-				Property property = new Property(this, entry.getKey(), entry
-						.getValue());
-				properties.add(property);
-			}
-		}
-		return properties.toArray(new Property[properties.size()]);
-	}
-
-	public Object getSource() {
-		return source;
-	}
-
-	public String getDisplayName() {
-		String simpleName = source.getClass().getSimpleName();
-		if (source instanceof DataContext) {
-			simpleName = simpleName + "(" + ((DataContext) source).getKey() + ")";
-		}
-		return simpleName;
-	}
-
-	public IObservable[] getChildren() {
-		return children == null ? new IObservable[0] : children.toArray(new IObservable[children.size()]);
-	}
-
-	public IObservable getParent() {
-		return parent;
-	}
-
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result + ((source == null) ? 0 : source.hashCode());
-		return result;
-	}
-
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (obj == null)
-			return false;
-		if (getClass() != obj.getClass())
-			return false;
-		Observable other = (Observable) obj;
-		if (source == null) {
-			if (other.source != null)
-				return false;
-		} else if (!source.equals(other.source))
-			return false;
-		return true;
-	}
-
-	public Property getProperty(String propertyName) {
-		if (propertyName == null) {
-			return null;
-		}
-		int index = propertyName.indexOf(".");
-		if (index != -1) {
-			String parentName = propertyName.substring(0, index);
-			propertyName = propertyName.substring(index + 1);
-			Property parent = getProperty(parentName);
-			if (parent != null) {
-				return parent.getProperty(propertyName);
-			}
-		}
-		Property[] properties = getProperties();
-		if (properties == null) {
-			return null;
-		}
-		for (Property p : properties) {
-			if (propertyName.equalsIgnoreCase(p.getName())) {
-				return p;
-			}
-		}
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ObservableUtil.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ObservableUtil.java
deleted file mode 100755
index a82a58a..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ObservableUtil.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.databinding;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.xwt.internal.utils.UserData;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.tools.ui.designer.core.util.swt.SWTTools;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ObservableUtil {
-
-	private static final Map<Object, Observable> cache = new HashMap<Object, Observable>(1);
-
-	public static Observable getObservable(Object source) {
-		if (source == null) {
-			return null;
-		}
-		Observable observable = cache.get(source);
-		if (observable == null) {
-			observable = createObservable(source, null);
-		}
-		return observable;
-	}
-
-	private static Observable createObservable(Object source, Observable parent) {
-		if (!(source instanceof Viewer)) {
-			Viewer viewer = UserData.getLocalViewer(source);
-			if (viewer != null) {
-				parent = createObservable(viewer, parent);
-			}
-		}
-		Observable observable = new Observable(source, parent);
-		if (source instanceof Widget) {
-			Widget[] children = SWTTools.getChildren((Widget) source);
-			for (Widget widget : children) {
-				createObservable(widget, observable);
-			}
-		}
-		cache.put(source, observable);
-		return observable;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/Property.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/Property.java
deleted file mode 100755
index c51473c..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/Property.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.databinding;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class Property {
-
-	private IObservable parent;
-	private Property parentProperty;
-	private String name;
-	private Class<?> type;
-	private List<Property> properties;
-
-	Property(Property parentProperty, String name, Class<?> type) {
-		this((IObservable) null, name, type);
-		this.parentProperty = parentProperty;
-	}
-
-	Property(IObservable parent, String name, Class<?> type) {
-		this.parent = parent;
-		this.name = name;
-		this.type = type;
-	}
-
-	public Property[] getProperties() {
-		if (properties == null) {
-			properties = new ArrayList<Property>();
-			if (isPrimitive()) {
-			} else if (type.isArray()) {
-				System.out.println("Array");
-			} else if (Collection.class.isAssignableFrom(type)) {
-				System.out.println("Collection");
-			} else {
-				Map<String, Class<?>> propertiesMap = PropertyUtil.getProperties(type);
-				Set<Entry<String, Class<?>>> entrySet = propertiesMap
-						.entrySet();
-				for (Entry<String, Class<?>> entry : entrySet) {
-					properties.add(new Property(this, entry.getKey(), entry
-							.getValue()));
-				}
-			}
-		}
-		return properties.toArray(new Property[0]);
-	}
-
-	private boolean isPrimitive() {
-		return type.isPrimitive() || String.class == type || Image.class == type || Color.class == type || Point.class == type || Rectangle.class == type || Font.class == type;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public IObservable getParent() {
-		if (parent == null && parentProperty != null) {
-			parent = parentProperty.getParent();
-		}
-		return parent;
-	}
-
-	public boolean hasChildren() {
-		return getProperties().length > 0;
-	}
-
-	public String toString() {
-		return getDisplayName();
-	}
-
-	public String getDisplayName() {
-		String thisName = name == null ? "" : name;
-		if (parentProperty != null && parentProperty.name != null) {
-			return parentProperty.name + "." + thisName;
-		}
-		return thisName;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * toString().hashCode();
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (obj == null)
-			return false;
-		if (getClass() != obj.getClass())
-			return false;
-		Property other = (Property) obj;
-		return toString().equalsIgnoreCase(other.toString());
-	}
-
-	public Class<?> getType() {
-		return type;
-	}
-
-	public Property getProperty(String propertyName) {
-		if (propertyName == null) {
-			return null;
-		}
-		if (propertyName.startsWith("(") && propertyName.endsWith(")")) {
-			return getDetailProperty(propertyName);
-		}
-		int index = propertyName.indexOf(".");
-		if (index != -1) {
-			String parentName = propertyName.substring(0, index);
-			propertyName = propertyName.substring(index + 1);
-			Property parent = getProperty(parentName);
-			return parent.getProperty(propertyName);
-		}
-		Property[] children = getProperties();
-		if (children == null) {
-			return null;
-		}
-		for (Property p : children) {
-			if (propertyName.equalsIgnoreCase(p.getName())) {
-				return p;
-			}
-		}
-		return null;
-	}
-
-	private Property getDetailProperty(String propertyName) {
-		return this;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/PropertyUtil.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/PropertyUtil.java
deleted file mode 100755
index ce076ce..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/PropertyUtil.java
+++ /dev/null
@@ -1,229 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.databinding;
-
-import java.beans.BeanInfo;
-import java.beans.IntrospectionException;
-import java.beans.PropertyDescriptor;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import org.eclipse.core.databinding.property.list.IListProperty;
-import org.eclipse.core.databinding.property.set.ISetProperty;
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.xwt.metadata.IProperty;
-import org.eclipse.jface.databinding.swt.IWidgetValueProperty;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
-import org.eclipse.jface.databinding.viewers.ViewerProperties;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class PropertyUtil {
-	private static Map<String, IWidgetValueProperty> SWT_PROPERTIES;
-
-	private static Map<String, org.eclipse.core.databinding.property.IProperty> JFACE_PROPERTIES;
-
-	private static ViewerPropertiesCollector viewerCollector;
-	private static WidgetPropertiesCollector widgetCollector;
-	private static BeanPropertiesCollector beanCollector;
-
-	private PropertyUtil() {
-	}
-
-	public static synchronized Map<String, Class<?>> getProperties(Object object) {
-		if (object == null) {
-			return null;
-		}
-		if (object instanceof Widget) {
-			if (widgetCollector == null) {
-				widgetCollector = new WidgetPropertiesCollector();
-			}
-			return widgetCollector.getProperties(object);
-		} else if (object instanceof Viewer) {
-			if (viewerCollector == null) {
-				viewerCollector = new ViewerPropertiesCollector();
-			}
-			return viewerCollector.getProperties(object);
-		} else {
-			if (beanCollector == null) {
-				beanCollector = new BeanPropertiesCollector();
-			}
-			return beanCollector.getProperties(object);
-		}
-	}
-
-	public static synchronized Map<String, org.eclipse.core.databinding.property.IProperty> getJfaceProperties() {
-		if (JFACE_PROPERTIES == null) {
-			JFACE_PROPERTIES = new HashMap<String, org.eclipse.core.databinding.property.IProperty>();
-			Method[] declaredMethods = ViewerProperties.class.getDeclaredMethods();
-			for (Method method : declaredMethods) {
-				try {
-					org.eclipse.core.databinding.property.IProperty property = (org.eclipse.core.databinding.property.IProperty) method.invoke(null, new Object[0]);
-					JFACE_PROPERTIES.put(method.getName(), property);
-				} catch (Exception e) {
-					JFACE_PROPERTIES.put(method.getName(), null);
-				}
-			}
-		}
-		return JFACE_PROPERTIES;
-	}
-
-	public static synchronized Map<String, IWidgetValueProperty> getSwtProperties() {
-		if (SWT_PROPERTIES == null) {
-			SWT_PROPERTIES = new HashMap<String, IWidgetValueProperty>();
-			Method[] declaredMethods = WidgetProperties.class.getDeclaredMethods();
-			for (Method method : declaredMethods) {
-				try {
-					IWidgetValueProperty property = (IWidgetValueProperty) method.invoke(null, new Object[0]);
-					SWT_PROPERTIES.put(method.getName(), property);
-				} catch (Exception e) {
-				}
-			}
-		}
-		return SWT_PROPERTIES;
-	}
-
-	static abstract class PropertiesCollector {
-		private Map<Object, Map<String, Class<?>>> cache = new HashMap<Object, Map<String, Class<?>>>();
-
-		Map<String, Class<?>> getProperties(Object object) {
-			Map<String, Class<?>> properties = cache.get(object);
-			if (properties == null) {
-				properties = createProperties(object);
-			}
-			return properties;
-		}
-
-		abstract Map<String, Class<?>> createProperties(Object object);
-	}
-
-	static class ViewerPropertiesCollector extends PropertiesCollector {
-
-		protected Map<String, Class<?>> createProperties(Object object) {
-			IMetaclass metaclass = XWT.getMetaclass(object);
-			if (metaclass == null) {
-				return null;
-			}
-
-			Map<String, Class<?>> results = new HashMap<String, Class<?>>();
-			Map<String, org.eclipse.core.databinding.property.IProperty> jfaceProperties = getJfaceProperties();
-			Set<Entry<String, org.eclipse.core.databinding.property.IProperty>> entrySet = jfaceProperties
-					.entrySet();
-			for (Entry<String, org.eclipse.core.databinding.property.IProperty> entry : entrySet) {
-				String propertyName = entry.getKey();
-				org.eclipse.core.databinding.property.IProperty host = entry
-						.getValue();
-				Class<?> type = null;
-				if (host instanceof ISetProperty) {
-					type = Set.class;
-				} else if (host instanceof IListProperty) {
-					type = List.class;
-				} else {
-					type = Object.class;
-				}
-				results.put(propertyName, type);
-			}
-			return results;
-		}
-	}
-
-	static class WidgetPropertiesCollector extends PropertiesCollector {
-
-		private boolean supportWidget(String name, Class<?> propertyType) {
-			IWidgetValueProperty property = getSwtProperties().get(name);
-			if (property == null) {
-				return false;
-			}
-			Class<?> definedType = (Class<?>) property.getValueType();
-			if (propertyType == null || definedType == null) {
-				return false;
-			}
-			boolean support = propertyType.isAssignableFrom(definedType);
-			if (support) {
-				return true;
-			} else if (propertyType.isPrimitive()) {
-				try {
-					Field typeField = definedType.getDeclaredField("TYPE");
-					return propertyType == typeField.get(null);
-				} catch (Exception e) {
-				}
-			} else if (definedType.isPrimitive()) {
-				try {
-					Field typeField = propertyType.getDeclaredField("TYPE");
-					return definedType == typeField.get(null);
-				} catch (Exception e) {
-				}
-			}
-			return false;
-		}
-
-		protected Map<String, Class<?>> createProperties(Object object) {
-			IMetaclass metaclass = XWT.getMetaclass(object);
-			if (metaclass == null) {
-				return null;
-			}
-			Map<String, Class<?>> results = new HashMap<String, Class<?>>();
-			IProperty[] properties = metaclass.getProperties();
-			for (IProperty iProperty : properties) {
-				String propertyName = iProperty.getName();
-				Class<?> valueType = iProperty.getType();
-				if (!supportWidget(propertyName, valueType)) {
-					continue;
-				}
-				results.put(propertyName, valueType);
-			}
-			return results;
-		}
-	}
-
-	static class BeanPropertiesCollector extends PropertiesCollector {
-
-		protected Map<String, Class<?>> createProperties(Object object) {
-			if (object == null) {
-				return null;
-			}
-			Class<?> type = (object instanceof Class<?>) ? (Class<?>) object : object.getClass();
-			Map<String, Class<?>> result = new HashMap<String, Class<?>>();
-			try {
-				BeanInfo beanInfo = java.beans.Introspector.getBeanInfo(type);
-				PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
-				for (PropertyDescriptor pd : propertyDescriptors) {
-					String propertyName = pd.getName();
-					if (("class").equals(propertyName) || result.containsKey(propertyName) || pd.getPropertyType() == null) {
-						continue;
-					}
-					result.put(propertyName, pd.getPropertyType());
-				}
-				for (Field f : type.getDeclaredFields()) {
-					String propertyName = f.getName().toLowerCase();
-					if (("class").equals(propertyName) || result.containsKey(propertyName) || Modifier.isFinal(f.getModifiers()) || !Modifier.isPublic(f.getModifiers()) || f.getType() == null) {
-						continue;
-					}
-					result.put(propertyName, f.getType());
-				}
-
-			} catch (IntrospectionException e) {
-				e.printStackTrace();
-			}
-			return result;
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/AdvancedBindingDialog.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/AdvancedBindingDialog.java
deleted file mode 100755
index f39361c..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/AdvancedBindingDialog.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.databinding.ui;
-
-import org.eclipse.jface.dialogs.TitleAreaDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.internal.forms.widgets.FormFonts;
-import org.eclipse.xwt.tools.ui.designer.databinding.BindingContext;
-import org.eclipse.xwt.tools.ui.designer.databinding.BindingInfo;
-import org.eclipse.xwt.tools.ui.designer.databinding.IObservable;
-import org.eclipse.xwt.tools.ui.designer.databinding.Property;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class AdvancedBindingDialog extends TitleAreaDialog {
-
-	private BindingInfo binding;
-	private OptionsGroup optionsGroup;
-	private CodeGenGroup codeGenGroup;
-	private Text elementNameText;
-
-	public AdvancedBindingDialog(Shell parentShell, BindingInfo binding) {
-		super(parentShell);
-		this.binding = binding;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
-	 */
-	protected void configureShell(Shell newShell) {
-		super.configureShell(newShell);
-		newShell.setText("Advanced Binding Dialog");
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.TitleAreaDialog#createDialogArea(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createDialogArea(Composite parent) {
-		Composite comp = (Composite) super.createDialogArea(parent);
-		Composite control = new Composite(comp, SWT.NONE);
-		control.setLayoutData(new GridData(GridData.FILL_BOTH));
-		control.setLayout(new GridLayout(2, false));
-
-		createBoldLabel(control, "Target:");
-		Label targetLabel = new Label(control, SWT.NONE);
-		targetLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		BindingContext bindingContext = binding.getBindingContext();
-		{
-			IObservable target = bindingContext.getTarget();
-			String observeName = target.getDisplayName();
-			Property property = bindingContext.getTargetProperty();
-			if (observeName != null && property != null) {
-				targetLabel.setText(observeName + "." + property);
-			}
-		}
-
-		createBoldLabel(control, "Model: ");
-		Label modelLabel = new Label(control, SWT.NONE);
-		modelLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		IObservable model = bindingContext.getModel();
-		{
-			String observeName = model.getDisplayName();
-			Property property = bindingContext.getModelProperty();
-			if (observeName != null && property != null) {
-				modelLabel.setText(observeName + "." + property);
-			}
-		}
-		if (model.getType() == IObservable.OBSERVE_SWT_JFACE) {
-			createBoldLabel(control, "ElementName: ");
-			elementNameText = new Text(control, SWT.BORDER);
-			elementNameText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-			if (binding.getElementName() != null) {
-				elementNameText.setEditable(false);
-				elementNameText.setText(binding.getElementName());
-			}
-		}
-
-		// Label separator = new Label(control, SWT.HORIZONTAL | SWT.SEPARATOR);
-		// GridData dd = new GridData(GridData.FILL_HORIZONTAL);
-		// dd.horizontalSpan = 2;
-		// separator.setLayoutData(dd);
-
-		final Composite bottom = new Composite(control, SWT.BORDER);
-		bottom.setBackground(control.getDisplay().getSystemColor(SWT.COLOR_WHITE));
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		bottom.setLayout(layout);
-		GridData layoutData = new GridData(GridData.FILL_BOTH);
-		layoutData.horizontalSpan = 2;
-		bottom.setLayoutData(layoutData);
-
-		optionsGroup = new OptionsGroup();
-		final ExpandableComposite optGroup = optionsGroup.createGroup(bottom, SWT.NONE);
-		optGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		optionsGroup.setInput(binding);
-
-		codeGenGroup = new CodeGenGroup();
-		final ExpandableComposite codeGroup = codeGenGroup.createGroup(bottom, SWT.NONE);
-		codeGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		codeGenGroup.setInput(binding.getCodeStyles());
-
-		bottom.getDisplay().asyncExec(new Runnable() {
-			public void run() {
-				optGroup.setExpanded(false);
-				codeGroup.setExpanded(false);
-				bottom.layout();
-			}
-		});
-
-		setTitle("Advanced Options");
-		setMessage("Choose mode and converter for create data binding.");
-		return control;
-	}
-
-	@SuppressWarnings("restriction")
-	private void createBoldLabel(Composite parent, String text) {
-		Label label = new Label(parent, SWT.NONE);
-		label.setText(text);
-		GridData gd = new GridData();
-		gd.horizontalIndent = 5;
-		label.setLayoutData(gd);
-		label.setFont(FormFonts.getInstance().getBoldFont(label.getDisplay(), label.getFont()));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
-	 */
-	protected void okPressed() {
-		binding.setBindingMode(optionsGroup.getBindingMode());
-		binding.setTriggerMode(optionsGroup.getUpdateSourceTrigger());
-		Class<?> converter = optionsGroup.getConverter();
-		if (converter != null) {
-			binding.setConverter(converter.getName());
-		}
-		if (elementNameText != null) {
-			binding.setElementName(elementNameText.getText());
-		}
-		binding.setCodeStyles(codeGenGroup.getCodeStyles());
-		super.okPressed();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/BindingTableGroup.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/BindingTableGroup.java
deleted file mode 100755
index d99f218..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/BindingTableGroup.java
+++ /dev/null
@@ -1,336 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.databinding.ui;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.gef.commands.CompoundCommand;
-import org.eclipse.jface.layout.TableColumnLayout;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.xwt.tools.ui.designer.XWTDesignerPlugin;
-import org.eclipse.xwt.tools.ui.designer.databinding.BindingContext;
-import org.eclipse.xwt.tools.ui.designer.databinding.BindingInfo;
-import org.eclipse.xwt.tools.ui.designer.databinding.IObservable;
-import org.eclipse.xwt.tools.ui.designer.databinding.Property;
-import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
-import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-public class BindingTableGroup implements IGroup {
-
-	private static final String[] COLUMNS = new String[] { "Target", "Target Properties", "Model", "Model Properties" };
-	private TableViewer viewer;
-	private ToolItem editAction;
-	private ToolItem deleteAction;
-	private ToolItem deleteAllAction;
-	private ToolItem gotoAction;
-
-	private CommandStack commandStack;
-
-	public BindingTableGroup(CommandStack commandStack) {
-		this.commandStack = commandStack;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.databinding.ui.IGroup#createGroup(org.eclipse.swt.widgets.Composite, int)
-	 */
-	public Composite createGroup(final Composite parent, int style) {
-		Composite group = new Composite(parent, style);
-		group.setLayout(new GridLayout(2, false));
-		Composite tableComp = new Composite(group, SWT.NONE);
-		GridData layoutData = new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.FILL_HORIZONTAL);
-		tableComp.setLayoutData(layoutData);
-		TableColumnLayout layout = new TableColumnLayout();
-		tableComp.setLayout(layout);
-		viewer = new TableViewer(tableComp, SWT.FULL_SELECTION | SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL);
-		viewer.setColumnProperties(COLUMNS);
-		viewer.setLabelProvider(new LabelProvider());
-		viewer.setContentProvider(new ContentProvider());
-
-		Table table = viewer.getTable();
-		for (String columnName : COLUMNS) {
-			TableColumn column = new TableColumn(table, SWT.CENTER);
-			column.setText(columnName);
-			layout.setColumnData(column, new ColumnWeightData(columnName.length()));
-		}
-
-		table.setHeaderVisible(true);
-		table.setLinesVisible(true);
-		viewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				enableActions();
-			}
-		});
-		viewer.addDoubleClickListener(new IDoubleClickListener() {
-			public void doubleClick(DoubleClickEvent event) {
-				edit();
-			}
-		});
-
-		Composite toolsComp = new Composite(group, SWT.NONE);
-		toolsComp.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_FILL));
-		toolsComp.setLayout(new FillLayout());
-
-		ToolBar toolBar = new ToolBar(toolsComp, SWT.VERTICAL | SWT.FLAT);
-
-		Listener listener = new Listener() {
-			public void handleEvent(Event event) {
-				if (SWT.Selection != event.type) {
-					return;
-				}
-				if (event.widget == editAction) {
-					edit();
-				} else if (event.widget == deleteAction) {
-					delete();
-				} else if (event.widget == deleteAllAction) {
-					deleteAll();
-				} else if (event.widget == gotoAction) {
-					goTo();
-					parent.getShell().setMinimized(true);
-				}
-			}
-		};
-
-		editAction = new ToolItem(toolBar, SWT.PUSH);
-		editAction.setImage(ImageShop.get(ImageShop.IMG_BINDING_EDIT));
-		editAction.setToolTipText("Edit");
-		editAction.setEnabled(false);
-		editAction.addListener(SWT.Selection, listener);
-		new ToolItem(toolBar, SWT.SEPARATOR | SWT.HORIZONTAL);
-
-		deleteAction = new ToolItem(toolBar, SWT.PUSH);
-		deleteAction.setToolTipText("Delete");
-		deleteAction.setImage(ImageShop.get(ImageShop.IMG_BINDING_DELETE));
-		deleteAction.setEnabled(false);
-		deleteAction.addListener(SWT.Selection, listener);
-
-		deleteAllAction = new ToolItem(toolBar, SWT.PUSH);
-		deleteAllAction.setToolTipText("Delete All");
-		deleteAllAction.setImage(ImageShop.get(ImageShop.IMG_BINDING_REMOVE_ALL));
-		deleteAllAction.addListener(SWT.Selection, listener);
-		deleteAllAction.setEnabled(false);
-		new ToolItem(toolBar, SWT.SEPARATOR | SWT.HORIZONTAL);
-
-		gotoAction = new ToolItem(toolBar, SWT.PUSH);
-		gotoAction.setImage(ImageShop.get(ImageShop.IMG_GOTO_DEFINITION));
-		gotoAction.setEnabled(false);
-		gotoAction.setToolTipText("Go to definition");
-		gotoAction.addListener(SWT.Selection, listener);
-
-		Point size = toolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		layoutData.heightHint = size.y;
-		layoutData.minimumHeight = size.y;
-		return group;
-	}
-
-	private void executeCommand(Command command) {
-		if (command == null || !command.canExecute()) {
-			return;
-		}
-		if (commandStack == null) {
-			command.execute();
-		} else {
-			commandStack.execute(command);
-		}
-	}
-
-	protected void edit() {
-		BindingInfo binding = getSelection();
-		AdvancedBindingDialog dialog = new AdvancedBindingDialog(new Shell(), binding);
-		if (dialog.open() == Window.OK) {
-			executeCommand(binding.bindWithCommand());
-		}
-	}
-
-	protected void delete() {
-		BindingInfo binding = getSelection();
-		executeCommand(computeDeleteCommand(binding));
-		viewer.remove(binding);
-	}
-
-	private Command computeDeleteCommand(final BindingInfo binding) {
-		XamlElement bindingNode = binding.getBindingNode();
-		if (bindingNode == null) {
-			return null;
-		}
-		final XamlNode parent = bindingNode.getParent();
-		if (parent == null) {
-			return null;
-		}
-		parent.eContainer().eAdapters().add(new AdapterImpl() {
-			public void notifyChanged(Notification msg) {
-				if (msg.getEventType() == Notification.ADD && parent == msg.getNewValue()) {
-					viewer.add(binding);
-				}
-			}
-		});
-		return binding.deleteWithCommand();
-	}
-
-	protected void deleteAll() {
-		Object input = viewer.getInput();
-		if (input instanceof BindingInfo[]) {
-			CompoundCommand cmd = new CompoundCommand("Delete All");
-			for (BindingInfo binding : (BindingInfo[]) input) {
-				Command deleteCmd = computeDeleteCommand(binding);
-				if (deleteCmd == null || !deleteCmd.canExecute()) {
-					continue;
-				}
-				cmd.add(deleteCmd);
-			}
-			executeCommand(cmd.unwrap());
-		}
-		viewer.setInput(null);
-	}
-
-	protected void goTo() {
-		BindingInfo binding = getSelection();
-		if (binding == null) {
-			return;
-		}
-		XamlElement bindingNode = binding.getBindingNode();
-		if (bindingNode != null && bindingNode.eContainer() != null) {
-			XWTDesigner designer = XWTDesignerPlugin.getDefault().getActiveDesigner();
-			if (designer != null) {
-				designer.gotoDefinition((XamlNode) bindingNode.eContainer());
-			}
-		}
-	}
-
-	public TableViewer getViewer() {
-		return viewer;
-	}
-
-	protected void enableActions() {
-		ISelection selection = viewer.getSelection();
-		boolean enabled = !selection.isEmpty();
-		if (editAction != null) {
-			editAction.setEnabled(enabled);
-		}
-		if (deleteAction != null) {
-			deleteAction.setEnabled(enabled);
-		}
-		if (gotoAction != null) {
-			gotoAction.setEnabled(enabled);
-		}
-	}
-
-	public BindingInfo getSelection() {
-		IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
-		if (selection != null)
-			return (BindingInfo) selection.getFirstElement();
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.databinding.ui.IGroup#setInput(java.lang.Object)
-	 */
-	public void setInput(Object input) {
-		if (viewer != null) {
-			viewer.setInput(input);
-			if (deleteAllAction != null) {
-				deleteAllAction.setEnabled(true);
-			}
-		}
-	}
-
-	private static class LabelProvider extends
-			org.eclipse.jface.viewers.LabelProvider implements
-			ITableLabelProvider {
-
-		public String getColumnText(Object element, int columnIndex) {
-			if (element == null)
-				return "";
-			if (element instanceof BindingInfo) {
-				BindingInfo binding = (BindingInfo) element;
-				BindingContext bindingContext = binding.getBindingContext();
-				IObservable target = bindingContext.getTarget();
-				IObservable model = bindingContext.getModel();
-				Property targetProperty = bindingContext.getTargetProperty();
-				Property modelProperty = bindingContext.getModelProperty();
-				switch (columnIndex) {
-				case 0:
-					return target.getDisplayName();
-				case 1:
-					return targetProperty == null ? "" : targetProperty.toString();
-				case 2:
-					return model.getDisplayName();
-
-				case 3:
-					return modelProperty == null ? "" : modelProperty.toString();
-				}
-			}
-			return "";
-		}
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-	}
-
-	private static class ContentProvider implements IStructuredContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			if (inputElement == null)
-				return new Object[0];
-			if (inputElement.getClass().isArray()) {
-				return (Object[]) inputElement;
-			} else if (inputElement instanceof Collection) {
-				return ((Collection) inputElement).toArray(new Object[0]);
-			}
-			return new Object[0];
-		}
-
-		public void dispose() {
-
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/CodeGenGroup.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/CodeGenGroup.java
deleted file mode 100755
index 2e7abba..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/CodeGenGroup.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.databinding.ui;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.events.ExpansionAdapter;
-import org.eclipse.ui.forms.events.ExpansionEvent;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.xwt.tools.ui.designer.databinding.CodeStyles;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class CodeGenGroup implements IGroup {
-
-	private static final String STYLE_FLAT = "Flat";
-	private static final String STYLE_TREE = "Tree";
-	private static final String DATACONTEXT = "DataContext";
-	private static final String STATICRESOURCE = "StaticResource";
-
-	private static final String ATTRIBUTE_VALUE_FLAT = "<Label text=\"{Binding path=\"[PATH]\", mode=\"TwoWay\"}\">";
-	private static final String ATTRIBUTE_VALUE_TREE = "<Lable.text>\n\r\t<Binding path=\"[PATH]\">\n\r\t\t<Binding.mode>TwoWay</Binding.mode>\n\r\t</Binding>\n\r</Lable.text>";
-	private static final String CODE_DATACONTEXT = "<Shell DataContext=\"{StaticResource myData}\">\n\r\t<Shell.Resources>\n\r\t\t<y:Person x:key=\"myData\"/>\n\r\t</Shell.Resources>\n\r</Shell>\n<Label text=\"{Binding path=\"name\", mode=\"TwoWay\"}\">";
-	private static final String CODE_STATICRESOURCE = "{Binding source=\"StaticResource myData\" path=\"name\"}";
-	private Text bindingPreview;
-	private Text pathPreview;
-
-	private Button flatValueRadio;
-	private Button treeValueRadio;
-
-	private Button dataContextRadio;
-	private Button staticResourceRadio;
-
-	private CodeStyles codeStyles;
-
-	public ExpandableComposite createGroup(final Composite parent, int style) {
-		FormToolkit formToolkit = new FormToolkit(parent.getDisplay());
-		// formToolkit.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-		final ExpandableComposite result = formToolkit.createExpandableComposite(parent, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
-		result.setText("Code Gen Settings");
-		Composite cilent = formToolkit.createComposite(result);
-		cilent.setLayout(new GridLayout());
-		result.setClient(cilent);
-		result.addExpansionListener(new ExpansionAdapter() {
-			public void expansionStateChanged(ExpansionEvent e) {
-				parent.layout(new Control[] { result });
-			}
-		});
-		{
-			Group bindComp = new Group(cilent, SWT.NONE);
-			GridLayout layout = new GridLayout(2, false);
-			layout.marginWidth = 0;
-			bindComp.setLayout(layout);
-			bindComp.setLayoutData(new GridData(GridData.FILL_BOTH));
-			bindComp.setText("Code of Binding:");
-			formToolkit.adapt(bindComp);
-
-			flatValueRadio = formToolkit.createButton(bindComp, STYLE_FLAT, SWT.RADIO);
-			flatValueRadio.setData(STYLE_FLAT);
-			flatValueRadio.setLayoutData(new GridData(SWT.LEFT, SWT.BOTTOM, false, true, 1, 1));
-
-			bindingPreview = formToolkit.createText(bindComp, ATTRIBUTE_VALUE_FLAT, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.READ_ONLY);
-			GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 2);
-			bindingPreview.setLayoutData(layoutData);
-
-			treeValueRadio = formToolkit.createButton(bindComp, STYLE_TREE, SWT.RADIO);
-			treeValueRadio.setData(STYLE_TREE);
-			treeValueRadio.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, true, 1, 1));
-
-			Listener listener = new Listener() {
-				public void handleEvent(Event event) {
-					Button button = (Button) event.widget;
-					if (button.getSelection())
-						previewBindingCodes(event.widget.getData().toString());
-				}
-			};
-			flatValueRadio.addListener(SWT.Selection, listener);
-			treeValueRadio.addListener(SWT.Selection, listener);
-
-		}
-		{
-			Group pathComp = new Group(cilent, SWT.NONE);
-			GridLayout layout = new GridLayout(2, false);
-			layout.marginWidth = 0;
-			pathComp.setLayout(layout);
-			pathComp.setLayoutData(new GridData(GridData.FILL_BOTH));
-			pathComp.setText("Code of Path:");
-			formToolkit.adapt(pathComp);
-
-			dataContextRadio = formToolkit.createButton(pathComp, DATACONTEXT, SWT.RADIO);
-			dataContextRadio.setData(DATACONTEXT);
-			dataContextRadio.setLayoutData(new GridData(SWT.LEFT, SWT.BOTTOM, false, true, 1, 1));
-
-			pathPreview = formToolkit.createText(pathComp, CODE_DATACONTEXT, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.READ_ONLY);
-			GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 3);
-			pathPreview.setLayoutData(layoutData);
-
-			staticResourceRadio = formToolkit.createButton(pathComp, STATICRESOURCE, SWT.RADIO);
-			staticResourceRadio.setData(STATICRESOURCE);
-			staticResourceRadio.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, true, 1, 1));
-
-			Listener listener = new Listener() {
-				public void handleEvent(Event event) {
-					previewPathCodes(event.widget.getData().toString());
-				}
-			};
-			dataContextRadio.addListener(SWT.Selection, listener);
-			staticResourceRadio.addListener(SWT.Selection, listener);
-
-		}
-		return result;
-	}
-
-	protected void previewPathCodes(String style) {
-		if (DATACONTEXT.equals(style)) {
-			pathPreview.setText(CODE_DATACONTEXT);
-			getCodeStyles().useDataContext = true;
-		} else if (STATICRESOURCE.equals(style)) {
-			pathPreview.setText(CODE_STATICRESOURCE);
-			getCodeStyles().useDataContext = false;
-		}
-	}
-
-	protected void previewBindingCodes(String style) {
-		if (STYLE_FLAT.equals(style)) {
-			bindingPreview.setText(ATTRIBUTE_VALUE_FLAT);
-			getCodeStyles().useFlatVlaue = true;
-		} else if (STYLE_TREE.equals(style)) {
-			bindingPreview.setText(ATTRIBUTE_VALUE_TREE);
-			getCodeStyles().useFlatVlaue = false;
-		}
-	}
-
-	public CodeStyles getCodeStyles() {
-		if (codeStyles == null) {
-			codeStyles = new CodeStyles();
-		}
-		return codeStyles;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.databinding.ui.IGroup#setInput(java.lang.Object)
-	 */
-	public void setInput(Object input) {
-		if (input != null && input instanceof CodeStyles) {
-			codeStyles = (CodeStyles) input;
-		} else {
-			codeStyles = new CodeStyles();
-		}
-		previewCodeStyles();
-	}
-
-	private void previewCodeStyles() {
-		CodeStyles settings = getCodeStyles();
-		if (dataContextRadio != null || flatValueRadio != null) {
-			flatValueRadio.setSelection(settings.useFlatVlaue);
-			treeValueRadio.setSelection(!settings.useFlatVlaue);
-			previewBindingCodes(settings.useFlatVlaue ? STYLE_FLAT : STYLE_TREE);
-			dataContextRadio.setSelection(settings.useDataContext);
-			previewPathCodes(settings.useDataContext ? DATACONTEXT : STATICRESOURCE);
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/DataBindingView.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/DataBindingView.java
deleted file mode 100755
index 3e8b7a7..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/DataBindingView.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.databinding.ui;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.xwt.tools.ui.designer.core.editor.Designer;
-import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
-import org.eclipse.xwt.tools.ui.designer.databinding.BindingContext;
-import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class DataBindingView extends ViewPart {
-
-	private Composite partControl;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		EditPart root = getRoot();
-		CommandStack commandStack = null;
-		if (root != null) {
-			commandStack = EditDomain.getEditDomain(root).getCommandStack();
-		}
-		DatabindingGroup databindingGroup = new DatabindingGroup(commandStack, new BindingContext());
-		partControl = databindingGroup.createGroup(parent, SWT.V_SCROLL);
-		databindingGroup.setInput(root);
-	}
-
-	private EditPart getRoot() {
-		try {
-			Designer designer = (Designer) getSite().getWorkbenchWindow().getActivePage().getActiveEditor();
-			Object root = designer.getVisualsRender().getRoot();
-			if (root instanceof Widget) {
-				root = XWTProxy.getModel((Widget) root);
-			}
-			return designer.getEditPart(root);
-		} catch (Exception e) {
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
-	 */
-	public void setFocus() {
-		partControl.setFocus();
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/DataBindingWindow.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/DataBindingWindow.java
deleted file mode 100755
index 3e5e2cb..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/DataBindingWindow.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.databinding.ui;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
-import org.eclipse.xwt.tools.ui.designer.databinding.BindingContext;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class DataBindingWindow extends Window {
-
-	private static final int INIT_HEIGHT = 500;
-	private static final int INIT_WIDTH = 600;
-
-	private EditPart root;
-
-	public DataBindingWindow(Shell parentShell, EditPart root) {
-		super(parentShell);
-		this.root = root;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
-	 */
-	protected void configureShell(Shell newShell) {
-		super.configureShell(newShell);
-		newShell.setText("Create Data Bindings");
-		newShell.setSize(INIT_WIDTH, INIT_HEIGHT);
-		Rectangle bounds = newShell.getDisplay().getBounds();
-		newShell.setLocation((bounds.width - INIT_WIDTH) / 2, (bounds.height - INIT_HEIGHT) / 2);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Window#createContents(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createContents(Composite parent) {
-		CommandStack commandStack = EditDomain.getEditDomain(root).getCommandStack();
-		DatabindingGroup databindingGroup = new DatabindingGroup(commandStack, new BindingContext());
-		Composite control = databindingGroup.createGroup(parent, SWT.NONE);
-		control.setLayoutData(new GridData(GridData.FILL_BOTH));
-		databindingGroup.setInput(root);
-		return control;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/DatabindingGroup.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/DatabindingGroup.java
deleted file mode 100755
index 4ee336e..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/DatabindingGroup.java
+++ /dev/null
@@ -1,235 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.databinding.ui;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.util.List;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.xwt.tools.ui.designer.core.util.DisplayUtil;
-import org.eclipse.xwt.tools.ui.designer.databinding.BindingContext;
-import org.eclipse.xwt.tools.ui.designer.databinding.BindingHelper;
-import org.eclipse.xwt.tools.ui.designer.databinding.BindingInfo;
-import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class DatabindingGroup implements IGroup {
-
-	private ObserveTargetGroup targetComp;
-	private ObserveModelGroup modelComp;
-	private Button bindingAction;
-	private BindingTableGroup bindingsTableGroup;
-	private static final String ACTION_TOOLTIP_TEXT = "Create data binding use this selection";
-	private static final String ACTION_TOOLTIP_MESSAGE = "Use Ctrl for create binding without dialog(if this is possible)";
-
-	private Composite targetGroup;
-	private Composite modelGroup;
-
-	private CommandStack commandStack;
-	private BindingContext bindingContext;
-
-	private Object input;
-
-	public DatabindingGroup(CommandStack commandStack, BindingContext bindingContext) {
-		this.commandStack = commandStack;
-		this.bindingContext = bindingContext;
-	}
-
-	public Composite createGroup(Composite control, int style) {
-		Composite group = new Composite(control, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 3;
-		group.setLayout(layout);
-		Label label = new Label(group, SWT.NONE);
-		label.setText("Bound properties");
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalIndent = 5;
-		gd.horizontalSpan = 3;
-		label.setLayoutData(gd);
-
-		bindingsTableGroup = new BindingTableGroup(commandStack);
-		Composite table = bindingsTableGroup.createGroup(group, SWT.NONE);
-		GridData layoutData = new GridData(GridData.FILL_HORIZONTAL);
-		layoutData.horizontalSpan = 3;
-		table.setLayoutData(layoutData);
-		bindingsTableGroup.getViewer().addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				BindingInfo selection = bindingsTableGroup.getSelection();
-				handleSelection(selection);
-			}
-		});
-
-		GridData sepGd = new GridData(GridData.FILL_HORIZONTAL);
-		sepGd.horizontalIndent = 5;
-		sepGd.horizontalSpan = 3;
-		new Label(group, SWT.SEPARATOR | SWT.HORIZONTAL).setLayoutData(sepGd);
-
-		targetComp = new ObserveTargetGroup(bindingContext, null);
-		bindingContext.addPropertyChangeListener(new PropertyChangeListener() {
-			public void propertyChange(PropertyChangeEvent evt) {
-				updateBindingAction();
-			}
-		});
-		targetGroup = targetComp.createGroup(group, SWT.NONE);
-		targetGroup.setLayoutData(new GridData(GridData.FILL_BOTH));
-		// targetGroup.setEnabled(false);
-		targetGroup.setToolTipText("please select a operation");
-
-		Composite separator = createButtonSeparator(group);
-		int gdStyle = GridData.FILL_VERTICAL;
-		separator.setLayoutData(new GridData(gdStyle));
-
-		modelComp = new ObserveModelGroup(bindingContext, null);
-		modelGroup = modelComp.createGroup(group, SWT.NONE);
-		modelGroup.setLayoutData(new GridData(GridData.FILL_BOTH));
-		// modelGroup.setEnabled(false);
-		return group;
-	}
-
-	protected void handleSelection(BindingInfo binding) {
-		if (binding == null) {
-			return;
-		}
-		BindingContext bc = binding.getBindingContext();
-		bindingContext.setModel(bc.getModel());
-		bindingContext.setModelProperty(bc.getModelProperty());
-		bindingContext.setTarget(bc.getTarget());
-		bindingContext.setTargetProperty(bc.getTargetProperty());
-		bindingAction.setEnabled(false);
-	}
-
-	private Composite createButtonSeparator(Composite parent) {
-		Composite control = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		layout.horizontalSpacing = 0;
-		layout.verticalSpacing = 0;
-		control.setLayout(layout);
-
-		int orientation = SWT.SEPARATOR | SWT.VERTICAL;
-		int gdStyle = GridData.FILL_VERTICAL | GridData.HORIZONTAL_ALIGN_CENTER;
-
-		new Label(control, orientation).setLayoutData(new GridData(gdStyle));
-		bindingAction = new Button(control, SWT.PUSH);
-		bindingAction.setToolTipText(ACTION_TOOLTIP_TEXT + "\n" + ACTION_TOOLTIP_MESSAGE);
-		bindingAction.setImage(ImageShop.get(ImageShop.IMG_BINDING_ADD));
-		bindingAction.setEnabled(false);
-		final Listener listener = new Listener() {
-			private boolean useCtrl = false;
-
-			public void handleEvent(Event e) {
-				if (SWT.KeyDown == e.type) {
-					if (!useCtrl && e.keyCode == SWT.CTRL) {
-						useCtrl = true;
-					}
-				} else if (SWT.KeyUp == e.type) {
-					if (useCtrl && e.keyCode == SWT.CTRL) {
-						useCtrl = false;
-					}
-				} else if (SWT.Selection == e.type) {
-					createDataBindings(useCtrl);
-				} else if (SWT.Dispose == e.type) {
-					e.display.removeFilter(SWT.KeyUp, this);
-					e.display.removeFilter(SWT.KeyDown, this);
-				}
-			}
-		};
-		Display display = bindingAction.getDisplay();
-		display.addFilter(SWT.KeyDown, listener);
-		display.addFilter(SWT.KeyUp, listener);
-		bindingAction.addListener(SWT.Selection, listener);
-		bindingAction.addListener(SWT.Dispose, listener);
-		new Label(control, orientation).setLayoutData(new GridData(gdStyle));
-		return control;
-	}
-
-	protected void updateBindingAction() {
-		if (bindingAction == null || bindingAction.isDisposed()) {
-			return;
-		}
-		bindingAction.setEnabled(bindingContext.isValid());
-	}
-
-	protected void createDataBindings(boolean useCtrl) {
-		BindingInfo bindingInfo = new BindingInfo(bindingContext);
-		if (useCtrl) {
-			createBinding(bindingInfo);
-		} else {
-			AdvancedBindingDialog dialog = new AdvancedBindingDialog(new Shell(), bindingInfo);
-			if (dialog.open() == Window.OK) {
-				createBinding(bindingInfo);
-			}
-		}
-	}
-
-	private void createBinding(BindingInfo bindingInfo) {
-		Command bindCmd = bindingInfo.bindWithCommand();
-		if (bindCmd != null) {
-			if (commandStack != null) {
-				commandStack.execute(bindCmd);
-			} else if (bindCmd.canExecute()) {
-				bindCmd.execute();
-			}
-			if (input == null || !(input instanceof EditPart)) {
-				return;
-			}
-			DisplayUtil.asyncExec(new Runnable() {
-				public void run() {
-					List<BindingInfo> bindings = BindingHelper.getBindings((EditPart) input);
-					bindingsTableGroup.setInput(bindings);
-				}
-			});
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.databinding.ui.IGroup#setInput(java.lang.Object)
-	 */
-	public void setInput(Object input) {
-		if (input == null || !(input instanceof EditPart)) {
-			return;
-		}
-		this.input = input;
-		EditPart editPart = (EditPart) input;
-		List<BindingInfo> bindings = BindingHelper.getBindings(editPart);
-		if (bindings != null && bindingsTableGroup != null) {
-			bindingsTableGroup.setInput(bindings);
-		}
-		if (targetComp != null) {
-			targetComp.setRootEditPart(editPart);
-		}
-		if (modelComp != null) {
-			modelComp.setRootEditPart(editPart);
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/IGroup.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/IGroup.java
deleted file mode 100755
index 7b38555..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/IGroup.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.databinding.ui;
-
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public interface IGroup {
-
-	Composite createGroup(Composite parent, int style);
-
-	void setInput(Object input);
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/ObservableList.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/ObservableList.java
deleted file mode 100755
index b108792..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/ObservableList.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.databinding.ui;
-
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.tools.ui.designer.databinding.BindingContext;
-import org.eclipse.xwt.tools.ui.designer.databinding.IObservable;
-import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ObservableList {
-
-	protected TreeViewer treeViewer;
-	protected ViewerFilter viewerFilter;
-	protected String filter;
-
-	private BindingContext bindingContext;
-	private Control control;
-
-	public ObservableList(BindingContext bindingContext, Composite parent) {
-		this.bindingContext = bindingContext;
-		control = createControl(parent);
-	}
-
-	public Control getControl() {
-		return control;
-	}
-
-	protected Control createControl(Composite parent) {
-		Composite control = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		control.setLayout(layout);
-
-		Label label = new Label(control, SWT.NONE);
-		label.setText("Widgets:");
-		label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		treeViewer = createControlsViewer(control);
-		treeViewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		viewerFilter = createControlsFilter();
-
-		return control;
-	}
-
-	public TreeViewer getTreeViewer() {
-		return treeViewer;
-	}
-
-	protected TreeViewer createControlsViewer(Composite control) {
-		TreeViewer treeViewer = new TreeViewer(control, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-		GridData layoutData = new GridData(GridData.FILL_BOTH);
-		treeViewer.getTree().setLayoutData(layoutData);
-		treeViewer.setContentProvider(new ITreeContentProvider() {
-			public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			}
-
-			public void dispose() {
-			}
-
-			public Object[] getElements(Object inputElement) {
-				if (inputElement instanceof IObservable[]) {
-					return (IObservable[]) inputElement;
-				}
-				return new Object[0];
-			}
-
-			public boolean hasChildren(Object element) {
-				if (element instanceof IObservable) {
-					return ((IObservable) element).hasChildren();
-				}
-				return false;
-			}
-
-			public Object getParent(Object element) {
-				if (element instanceof IObservable) {
-					return ((IObservable) element).getParent();
-				}
-				return null;
-			}
-
-			public Object[] getChildren(Object parentElement) {
-				if (parentElement instanceof IObservable) {
-					return ((IObservable) parentElement).getChildren();
-				}
-				return null;
-			}
-		});
-		treeViewer.setLabelProvider(new LabelProvider() {
-			public String getText(Object element) {
-				if (element instanceof IObservable) {
-					return ((IObservable) element).getDisplayName();
-				}
-				return super.getText(element);
-			}
-
-			public Image getImage(Object element) {
-				if (element instanceof IObservable) {
-					Object source = ((IObservable) element).getSource();
-					if (source == null) {
-						return super.getImage(element);
-					}
-					if (source instanceof Widget) {
-						return ImageShop.getImageForWidget((Widget) source);
-					} else if (source instanceof Viewer) {
-						return ImageShop.getObj16(((Viewer) source).getClass().getSimpleName().toLowerCase());
-					} else {
-						return ImageShop.getImageForType(source.getClass());
-					}
-				}
-				return super.getImage(element);
-			}
-		});
-		treeViewer.setAutoExpandLevel(3);
-		treeViewer.addFilter(new ViewerFilter() {
-			public boolean select(Viewer viewer, Object parentElement, Object element) {
-				if (element instanceof IObservable) {
-					return ((IObservable) element).getProperties().length > 0;
-				}
-				return false;
-			}
-		});
-		return treeViewer;
-	}
-
-	protected ViewerFilter createControlsFilter() {
-		return new ViewerFilter() {
-			public boolean select(Viewer viewer, Object parentElement, Object element) {
-				return isFiltered(element);
-			}
-		};
-	}
-
-	protected boolean isFiltered(Object element) {
-		ITreeContentProvider contentProvider = (ITreeContentProvider) treeViewer.getContentProvider();
-		Object[] children = contentProvider.getChildren(element);
-
-		ILabelProvider labelProvider = (ILabelProvider) treeViewer.getLabelProvider();
-		String text = labelProvider.getText(element);
-		boolean filtered = text.toLowerCase().startsWith(filter.toLowerCase());
-		if (!filtered) {
-			for (Object child : children) {
-				filtered = isFiltered(child);
-				if (filtered) {
-					break;
-				}
-			}
-		}
-		return filtered;
-	}
-
-	protected void controlSelected() {
-		IStructuredSelection selection = (IStructuredSelection) treeViewer.getSelection();
-		Object firstElement = selection.getFirstElement();
-		bindingContext.setTarget((IObservable) firstElement);
-	}
-
-	public void applyFilter(String filter) {
-		this.filter = filter;
-		if (filter == null || filter.length() == 0) {
-			treeViewer.removeFilter(viewerFilter);
-		} else {
-			treeViewer.addFilter(viewerFilter);
-		}
-	}
-
-	public void setInput(Object input) {
-		if (treeViewer != null) {
-			treeViewer.setInput(input);
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/ObserveGroup.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/ObserveGroup.java
deleted file mode 100755
index aae5312..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/ObserveGroup.java
+++ /dev/null
@@ -1,263 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.databinding.ui;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.xwt.tools.ui.designer.databinding.BindingContext;
-import org.eclipse.xwt.tools.ui.designer.databinding.IObservable;
-import org.eclipse.xwt.tools.ui.designer.databinding.Property;
-import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public abstract class ObserveGroup implements IGroup {
-
-	private Label messageLabel;
-	private Text filterText;
-	protected BindingContext bindingContext;
-	protected ObservableList observableList;
-	protected TreeViewer propertiesTree;
-
-	private boolean dispatching = false;
-
-	private EditPart rootEditPart;
-	private TreeViewer treeViewer;
-
-	public ObserveGroup(BindingContext bindingContext, EditPart rootEditPart) {
-		this.bindingContext = bindingContext;
-		this.rootEditPart = rootEditPart;
-	}
-
-	public Composite createGroup(Composite parent, int style) {
-		Composite group = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout(2, false);
-		group.setLayout(layout);
-
-		messageLabel = new Label(group, SWT.NONE);
-		updateMessage();
-
-		GridData layoutData = new GridData(GridData.FILL_HORIZONTAL);
-		layoutData.horizontalSpan = 2;
-		messageLabel.setLayoutData(layoutData);
-
-		filterText = new Text(group, SWT.SEARCH | SWT.ICON_CANCEL);
-		layoutData = new GridData(GridData.FILL_HORIZONTAL);
-		filterText.setLayoutData(layoutData);
-		filterText.setMessage("type filter text");
-		ToolBar toolBar = new ToolBar(group, SWT.FLAT);
-		ToolItem item = new ToolItem(toolBar, SWT.PUSH);
-		item.setImage(ImageShop.get(ImageShop.IMG_CLEAR_FILTER));
-		item.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event event) {
-				filterText.setText("");
-				filterText.setMessage("type filter text");
-			}
-		});
-		filterText.addListener(SWT.Modify, new Listener() {
-			public void handleEvent(Event event) {
-				if (event.detail != SWT.ICON_CANCEL) {
-					applyFilter();
-				}
-			}
-		});
-
-		observableList = new ObservableList(bindingContext, group);
-		Control control = observableList.getControl();
-		layoutData = new GridData(GridData.FILL_BOTH);
-		control.setLayoutData(layoutData);
-
-		Composite propComp = new Composite(group, SWT.NONE);
-		layout = new GridLayout();
-		layout.marginWidth = 0;
-		propComp.setLayout(layout);
-
-		new Label(propComp, SWT.NONE).setText("Properties");
-
-		treeViewer = observableList.getTreeViewer();
-		treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				handleObservableChanged(event);
-			}
-		});
-		treeViewer.setInput(computeObservables(rootEditPart));
-
-		propertiesTree = new TreeViewer(propComp, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
-		propertiesTree.setContentProvider(new ITreeContentProvider() {
-			public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-			}
-
-			public void dispose() {
-
-			}
-
-			public boolean hasChildren(Object element) {
-				if (element instanceof Property) {
-					return ((Property) element).hasChildren();
-				}
-				return false;
-			}
-
-			public Object getParent(Object element) {
-				if (element instanceof Property) {
-					return ((Property) element).getParent();
-				}
-				return null;
-			}
-
-			public Object[] getChildren(Object parentElement) {
-				if (parentElement instanceof Property) {
-					return ((Property) parentElement).getProperties();
-				}
-				return new Object[0];
-			}
-
-			public Object[] getElements(Object inputElement) {
-				if (inputElement instanceof IObservable) {
-					return ((IObservable) inputElement).getProperties();
-				}
-				return new Object[0];
-			}
-		});
-		propertiesTree.setLabelProvider(new LabelProvider() {
-			public String getText(Object element) {
-				if (element instanceof Property) {
-					return ((Property) element).getName();
-				}
-				return super.getText(element);
-			}
-
-			public Image getImage(Object element) {
-				if (element instanceof Property) {
-					return ImageShop.getImageForType(((Property) element).getType());
-				}
-				return super.getImage(element);
-			}
-		});
-		propertiesTree.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
-		propertiesTree.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				handlePropertyChanged(event);
-			}
-		});
-
-		layoutData = new GridData(GridData.FILL_BOTH);
-		propComp.setLayoutData(layoutData);
-
-		bindingContext.addPropertyChangeListener(new PropertyChangeListener() {
-			public void propertyChange(PropertyChangeEvent evt) {
-				refreshGroup(evt);
-			}
-		});
-		return group;
-	}
-
-	private void refreshGroup(PropertyChangeEvent evt) {
-		if (dispatching) {
-			return;
-		}
-		selectAndReveal(evt);
-	}
-
-	protected abstract IObservable[] computeObservables(EditPart rootEditPart);
-
-	protected abstract void selectAndReveal(PropertyChangeEvent evt);
-
-	protected StructuredSelection createSelection(Object object) {
-		if (object == null) {
-			return StructuredSelection.EMPTY;
-		}
-		return new StructuredSelection(object);
-	}
-
-	private void handleObservableChanged(SelectionChangedEvent event) {
-		dispatching = true;
-		IStructuredSelection selection = (IStructuredSelection) event.getSelection();
-		Object firstElement = selection.getFirstElement();
-		propertiesTree.setInput(firstElement);
-		handleSelection(selection);
-		updateMessage();
-		dispatching = false;
-	}
-
-	private void handlePropertyChanged(SelectionChangedEvent event) {
-		dispatching = true;
-		IStructuredSelection selection = (IStructuredSelection) event.getSelection();
-		handleSelection(selection);
-		updateMessage();
-		dispatching = false;
-	}
-
-	protected abstract void handleSelection(IStructuredSelection selection);
-
-	protected void applyFilter() {
-		observableList.applyFilter(filterText.getText());
-	}
-
-	protected void updateMessage() {
-		if (messageLabel == null || messageLabel.isDisposed()) {
-			return;
-		}
-		String message = computeMessage();
-		if (message == null) {
-			message = "";
-		}
-		messageLabel.setText(message);
-	}
-
-	protected abstract String computeMessage();
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.databinding.ui.IGroup#setInput(java.lang.Object)
-	 */
-	public void setInput(Object input) {
-		if (observableList == null) {
-			return;
-		}
-		observableList.setInput(input);
-	}
-
-	public BindingContext getBindingContext() {
-		return bindingContext;
-	}
-
-	public void setRootEditPart(EditPart rootEditPart) {
-		this.rootEditPart = rootEditPart;
-		setInput(computeObservables(rootEditPart));
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/ObserveModelGroup.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/ObserveModelGroup.java
deleted file mode 100755
index 63dee57..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/ObserveModelGroup.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.databinding.ui;
-
-import java.beans.PropertyChangeEvent;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.xwt.tools.ui.designer.databinding.BindingContext;
-import org.eclipse.xwt.tools.ui.designer.databinding.BindingHelper;
-import org.eclipse.xwt.tools.ui.designer.databinding.DataContext;
-import org.eclipse.xwt.tools.ui.designer.databinding.IObservable;
-import org.eclipse.xwt.tools.ui.designer.databinding.Observable;
-import org.eclipse.xwt.tools.ui.designer.databinding.ObservableUtil;
-import org.eclipse.xwt.tools.ui.designer.databinding.Property;
-import org.eclipse.xwt.tools.ui.designer.parts.ViewerEditPart;
-import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ObserveModelGroup extends ObserveGroup {
-
-	public ObserveModelGroup(BindingContext bindingContext, EditPart rootEditPart) {
-		super(bindingContext, rootEditPart);
-	}
-
-	protected String computeMessage() {
-		String message = "Model:";
-		BindingContext bc = getBindingContext();
-		IObservable model = bc.getModel();
-		Property modelProperty = bc.getModelProperty();
-		if (model != null) {
-			message += model.getDisplayName();
-			if (modelProperty != null) {
-				message += "." + modelProperty;
-			}
-		} else {
-			message += "<empty>";
-		}
-		return message;
-	}
-
-	protected void handleSelection(IStructuredSelection selection) {
-		Object element = selection.getFirstElement();
-		BindingContext bindingContext = getBindingContext();
-		if (element == null) {
-			bindingContext.setModel(null);
-			bindingContext.setModelProperty(null);
-		} else if (element instanceof IObservable) {
-			bindingContext.setModel((IObservable) element);
-			bindingContext.setModelProperty(null);
-		} else if (element instanceof Property) {
-			bindingContext.setModelProperty((Property) element);
-		}
-	}
-
-	protected void selectAndReveal(PropertyChangeEvent evt) {
-		Object newValue = evt.getNewValue();
-		if ("model".equals(evt.getPropertyName())) {
-			TreeViewer treeViewer = observableList.getTreeViewer();
-			treeViewer.setSelection(createSelection(newValue), true);
-		} else if ("modelProperty".equals(evt.getPropertyName())) {
-			propertiesTree.setSelection(createSelection(newValue), true);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.databinding.ui.ObserveGroup#computeObservables(org.eclipse.gef.EditPart)
-	 */
-	protected IObservable[] computeObservables(EditPart rootEditPart) {
-		if (rootEditPart == null) {
-			return new IObservable[0];
-		}
-		Object root = null;
-		if (rootEditPart instanceof WidgetEditPart) {
-			root = ((WidgetEditPart) rootEditPart).getWidget();
-		} else if (rootEditPart instanceof ViewerEditPart) {
-			root = ((ViewerEditPart) rootEditPart).getViewer();
-		}
-		if (root == null) {
-			return new IObservable[0];
-		}
-		DataContext dataContext = BindingHelper.getDataContext(root);
-		Observable widgets = ObservableUtil.getObservable(root);
-		if (dataContext == null) {
-			return new IObservable[] { widgets };
-		}
-		IObservable[] models = new IObservable[2];
-		models[0] = widgets;
-		models[1] = ObservableUtil.getObservable(dataContext);
-		return models;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/ObserveTargetGroup.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/ObserveTargetGroup.java
deleted file mode 100755
index 4e8fc67..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/ObserveTargetGroup.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.databinding.ui;
-
-import java.beans.PropertyChangeEvent;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.xwt.tools.ui.designer.databinding.BindingContext;
-import org.eclipse.xwt.tools.ui.designer.databinding.IObservable;
-import org.eclipse.xwt.tools.ui.designer.databinding.Observable;
-import org.eclipse.xwt.tools.ui.designer.databinding.ObservableUtil;
-import org.eclipse.xwt.tools.ui.designer.databinding.Property;
-import org.eclipse.xwt.tools.ui.designer.parts.ViewerEditPart;
-import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ObserveTargetGroup extends ObserveGroup {
-
-	public ObserveTargetGroup(BindingContext bindingContext, EditPart rootEditPart) {
-		super(bindingContext, rootEditPart);
-	}
-
-	protected String computeMessage() {
-		String message = "Target:";
-		BindingContext bc = getBindingContext();
-		IObservable target = bc.getTarget();
-		Property targetProperty = bc.getTargetProperty();
-		if (target != null) {
-			message += target.getDisplayName();
-			if (targetProperty != null) {
-				message += "." + targetProperty;
-			}
-		} else {
-			message += "<empty>";
-		}
-		return message;
-	}
-
-	protected void handleSelection(IStructuredSelection selection) {
-		Object element = selection.getFirstElement();
-		BindingContext bindingContext = getBindingContext();
-		if (element == null) {
-			bindingContext.setTarget(null);
-			bindingContext.setTargetProperty(null);
-		} else if (element instanceof IObservable) {
-			bindingContext.setTarget((IObservable) element);
-			bindingContext.setTargetProperty(null);
-		} else if (element instanceof Property) {
-			bindingContext.setTargetProperty((Property) element);
-		}
-	}
-
-	protected void selectAndReveal(PropertyChangeEvent evt) {
-		Object newValue = evt.getNewValue();
-		if ("target".equals(evt.getPropertyName())) {
-			TreeViewer treeViewer = observableList.getTreeViewer();
-			treeViewer.setExpandedElements(new Object[] { newValue });
-			treeViewer.setSelection(createSelection(newValue), true);
-		} else if ("targetProperty".equals(evt.getPropertyName())) {
-			propertiesTree.setSelection(createSelection(newValue), true);
-		}
-	}
-
-	protected IObservable[] computeObservables(EditPart rootEditPart) {
-		if (rootEditPart == null) {
-			return new IObservable[0];
-		}
-		Object root = null;
-		if (rootEditPart instanceof WidgetEditPart) {
-			root = ((WidgetEditPart) rootEditPart).getWidget();
-		} else if (rootEditPart instanceof ViewerEditPart) {
-			root = ((ViewerEditPart) rootEditPart).getViewer();
-		}
-		if (root == null) {
-			return new IObservable[0];
-		}
-		Observable widgets = ObservableUtil.getObservable(root);
-		if (widgets != null) {
-			return new IObservable[] { widgets };
-		}
-		return new IObservable[0];
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/OptionsGroup.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/OptionsGroup.java
deleted file mode 100755
index 3b16252..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/OptionsGroup.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.databinding.ui;
-
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.databinding.BindingMode;
-import org.eclipse.xwt.internal.core.UpdateSourceTrigger;
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.events.ExpansionAdapter;
-import org.eclipse.ui.forms.events.ExpansionEvent;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.xwt.tools.ui.designer.databinding.IBindingInfo;
-import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class OptionsGroup implements IGroup {
-
-	private ComboViewer modeComboViewer;
-	private ComboViewer triggersComboViewer;
-	private Text converterText;
-
-	private BindingMode bindingMode;
-	private UpdateSourceTrigger updateSourceTrigger;
-
-	public ExpandableComposite createGroup(final Composite parent, int style) {
-		FormToolkit formToolkit = new FormToolkit(parent.getDisplay());
-		// formToolkit.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-		final ExpandableComposite result = formToolkit.createExpandableComposite(parent, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
-		result.setText("Options");
-		Composite cilent = formToolkit.createComposite(result);
-		cilent.setLayout(new GridLayout(3, false));
-		result.setClient(cilent);
-		result.addExpansionListener(new ExpansionAdapter() {
-			public void expansionStateChanged(ExpansionEvent e) {
-				parent.layout(new Control[] { result });
-			}
-		});
-
-		formToolkit.createLabel(cilent, "BindingMode:");
-		Combo modeCombo = new Combo(cilent, SWT.DROP_DOWN | SWT.READ_ONLY);
-		GridData layoutData = new GridData(GridData.FILL_HORIZONTAL);
-		layoutData.horizontalSpan = 2;
-		modeCombo.setLayoutData(layoutData);
-		formToolkit.adapt(modeCombo, true, true);
-		modeComboViewer = createComboViewr(modeCombo);
-		modeComboViewer.setInput(BindingMode.values());
-		modeComboViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				IStructuredSelection selection = (IStructuredSelection) event.getSelection();
-				bindingMode = (BindingMode) selection.getFirstElement();
-			}
-		});
-
-		formToolkit.createLabel(cilent, "UpdateSourceTrigger:");
-		Combo triggerCombo = new Combo(cilent, SWT.DROP_DOWN | SWT.READ_ONLY);
-		layoutData = new GridData(GridData.FILL_HORIZONTAL);
-		layoutData.horizontalSpan = 2;
-		triggerCombo.setLayoutData(layoutData);
-		formToolkit.adapt(triggerCombo, true, true);
-		triggersComboViewer = createComboViewr(triggerCombo);
-		triggersComboViewer.setInput(UpdateSourceTrigger.values());
-		triggersComboViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				IStructuredSelection selection = (IStructuredSelection) event.getSelection();
-				updateSourceTrigger = (UpdateSourceTrigger) selection.getFirstElement();
-			}
-		});
-
-		formToolkit.createLabel(cilent, "Converter:");
-		converterText = formToolkit.createText(cilent, "", SWT.BORDER);
-		layoutData = new GridData(GridData.FILL_HORIZONTAL);
-		converterText.setLayoutData(layoutData);
-		formToolkit.adapt(converterText, true, true);
-
-		Button button = formToolkit.createButton(cilent, "", SWT.NONE);
-		button.setImage(ImageShop.get(ImageShop.IMAGE_OBSERVE_CUSTOM));
-		button.setToolTipText("Choose a converter.");
-		button.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event event) {
-				chooseConverter();
-			}
-		});
-		return result;
-	}
-
-	private ComboViewer createComboViewr(Combo combo) {
-		ComboViewer comboViewer = new ComboViewer(combo);
-		comboViewer.setContentProvider(new IStructuredContentProvider() {
-			public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-			}
-
-			public void dispose() {
-			}
-
-			public Object[] getElements(Object inputElement) {
-				if (inputElement instanceof Object[]) {
-					return (Object[]) inputElement;
-				}
-				return new Object[0];
-			}
-		});
-		comboViewer.setLabelProvider(new LabelProvider());
-		return comboViewer;
-	}
-
-	protected void chooseConverter() {
-
-	}
-
-	public BindingMode getBindingMode() {
-		if (bindingMode == null) {
-			bindingMode = BindingMode.TwoWay;
-		}
-		return bindingMode;
-	}
-
-	public UpdateSourceTrigger getUpdateSourceTrigger() {
-		if (updateSourceTrigger == null) {
-			updateSourceTrigger = UpdateSourceTrigger.Default;
-		}
-		return updateSourceTrigger;
-	}
-
-	public Class<?> getConverter() {
-		String className = converterText.getText();
-		if (className != null && !className.equals("")) {
-			return (Class<?>) XWT.getLoadingContext().loadClass(className);
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.databinding.ui.IGroup#setInput(java.lang.Object)
-	 */
-	public void setInput(Object input) {
-		String converter = null;
-		if (input instanceof IBindingInfo) {
-			bindingMode = ((IBindingInfo) input).getBindingMode();
-			updateSourceTrigger = ((IBindingInfo) input).getTriggerMode();
-			converter = ((IBindingInfo) input).getConverter();
-		}
-		if (modeComboViewer != null) {
-			modeComboViewer.setSelection(new StructuredSelection(getBindingMode()));
-		}
-		if (updateSourceTrigger != null) {
-			triggersComboViewer.setSelection(new StructuredSelection(getUpdateSourceTrigger()));
-		}
-		if (converter == null) {
-			converter = "";
-		}
-		converterText.setText(converter);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/AbstractEventHandlerDialog.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/AbstractEventHandlerDialog.java
deleted file mode 100755
index 6b00868..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/AbstractEventHandlerDialog.java
+++ /dev/null
@@ -1,251 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.dialogs;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
-import org.w3c.dom.Node;
-
-public abstract class AbstractEventHandlerDialog {
-	public enum Operation {
-		Cancel, New, Select, Rename;
-	};
-
-	protected Operation operation = Operation.Cancel;
-	protected String inputHandler = "";
-	protected String oldHandler;
-	protected String attrValue;
-	protected String[] handlers;
-	protected StructuredTextViewer textViewer;
-	protected int count;
-
-	public AbstractEventHandlerDialog(StructuredTextViewer textViewer, String oldHandler, String attrValue, String[] handlers) {
-		this.textViewer = textViewer;
-		this.oldHandler = oldHandler;
-		this.attrValue = attrValue;
-		this.handlers = handlers;
-
-	}
-
-	public void run(Shell parentShell, String title, Point position) {
-		Shell shell = new Shell(parentShell, SWT.NONE);
-		shell.setText(title);
-		createContents(shell);
-		shell.setLocation(position);
-		shell.pack();
-		shell.open();
-		while (!shell.isDisposed()) {
-			if (!shell.getDisplay().readAndDispatch()) {
-				shell.getDisplay().sleep();
-			}
-		}
-	}
-
-	private void createContents(final Shell shell) {
-		shell.setLayout(new GridLayout(2, false));
-		Group group = new Group(shell, SWT.LEFT);
-		group.setText("Handler Operations");
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		data.horizontalSpan = 2;
-		group.setLayoutData(data);
-		GridLayout gridLayout = new GridLayout();
-		group.setLayout(gridLayout);
-
-		final Button rbt1 = new Button(group, SWT.RADIO);
-		rbt1.setText("New Handler");
-		rbt1.setSelection(true);
-		GridData gridData1 = new GridData(GridData.FILL_HORIZONTAL);
-		gridData1.horizontalSpan = 2;
-		rbt1.setLayoutData(gridData1);
-		RBSelectionAdapter rbSelectionAdapter1 = new RBSelectionAdapter(1);
-		rbt1.addSelectionListener(rbSelectionAdapter1);
-		rbt1.setToolTipText("New Handler");
-		rbt1.setForeground(rbt1.getDisplay().getSystemColor(SWT.COLOR_DARK_BLUE));
-
-		final Button rbt2 = new Button(group, SWT.RADIO);
-		rbt2.setText("Rename Handler");
-		GridData gridData2 = new GridData(GridData.FILL_HORIZONTAL);
-		gridData2.horizontalSpan = 2;
-		rbt2.setLayoutData(gridData2);
-		RBSelectionAdapter rbSelectionAdapter2 = new RBSelectionAdapter(2);
-		rbt2.addSelectionListener(rbSelectionAdapter2);
-		rbt2.setToolTipText("Rename Handler");
-		rbt2.setForeground(rbt2.getDisplay().getSystemColor(SWT.COLOR_DARK_BLUE));
-		rbt2.setEnabled(oldHandler != null && oldHandler.length() > 0);
-
-		final Button rbt3 = new Button(group, SWT.RADIO);
-		rbt3.setText("Select Existing Handler");
-		GridData gridData3 = new GridData(GridData.FILL_HORIZONTAL);
-		gridData3.horizontalSpan = 2;
-		rbt3.setLayoutData(gridData3);
-		RBSelectionAdapter rbSelectionAdapter3 = new RBSelectionAdapter(3);
-		rbt3.addSelectionListener(rbSelectionAdapter3);
-		rbt3.setToolTipText("Select an existing handler");
-		rbt3.setForeground(rbt3.getDisplay().getSystemColor(SWT.COLOR_DARK_BLUE));
-		rbt3.setEnabled(handlers != null && handlers.length > 0);
-
-		Label hNameLabel = new Label(shell, SWT.LEFT);
-		hNameLabel.setText("Handler Name");
-		final Text nameText = new Text(shell, SWT.BORDER);
-		nameText.setText(attrValue);
-		GridData gridData4 = new GridData();
-		gridData4.widthHint = 100;
-		nameText.setLayoutData(gridData4);
-		rbSelectionAdapter1.setText(nameText);
-		rbSelectionAdapter2.setText(nameText);
-		rbSelectionAdapter3.setText(nameText);
-
-		Label selectHandlerLabel = new Label(shell, SWT.LEFT);
-		selectHandlerLabel.setText("Select handler");
-		GridData gridData5 = new GridData(GridData.FILL_HORIZONTAL);
-		selectHandlerLabel.setLayoutData(gridData5);
-		final Combo handlersCombo = new Combo(shell, SWT.DROP_DOWN | SWT.READ_ONLY);
-		if (handlers != null && handlers.length != 0) {
-			handlersCombo.setItems(handlers);
-			handlersCombo.setText(handlers[0]);
-		}
-		handlersCombo.setEnabled(false);
-		GridData gridData6 = new GridData(GridData.FILL_HORIZONTAL);
-		gridData6.horizontalAlignment = SWT.LEFT;
-		handlersCombo.setLayoutData(gridData6);
-		rbSelectionAdapter1.setCombo(handlersCombo);
-		rbSelectionAdapter2.setCombo(handlersCombo);
-		rbSelectionAdapter3.setCombo(handlersCombo);
-
-		Button okButton = new Button(shell, SWT.PUSH | SWT.CR);
-		okButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				boolean exists = false;
-				if (!rbt3.getSelection()) {
-					if (nameText.getText().trim().equals("")) {
-						MessageDialog.openInformation(shell, "Dialog", "Handler Name is null");
-						nameText.forceFocus();
-						return;
-					}
-
-					exists = handlerExists(nameText.getText(), handlers);
-					if (exists) {
-						int length = nameText.getText().length();
-						nameText.setSelection(0, length);
-						nameText.forceFocus();
-						return;
-					}
-				}
-				if (rbt1.getSelection()) {
-					operation = Operation.New;
-					inputHandler = nameText.getText();
-				} else if (rbt2.getSelection()) {
-					inputHandler = nameText.getText();
-					Node rootNode = (Node) ContentAssistUtils.getNodeAt(textViewer, 0);
-					count = 0;
-					boolean usedByOther = usedByOther(rootNode, oldHandler);
-					if (usedByOther) {
-						String message = NLS.bind("Refactor", oldHandler);
-						boolean confirm = MessageDialog.openConfirm(shell, "Dialog", message);
-						if (!confirm) {
-							int length = nameText.getText().length();
-							nameText.setSelection(0, length);
-							nameText.forceFocus();
-							return;
-						}
-					}
-					operation = Operation.Rename;
-				} else if (rbt3.getSelection()) {
-					operation = Operation.Select;
-					inputHandler = handlersCombo.getText();
-				}
-
-				if (exists == false) {
-					shell.dispose();
-				}
-			}
-
-			private boolean handlerExists(String handlerName, String[] handlers) {
-				for (int i = 0; i < handlers.length; i++) {
-					if (handlerName != null && handlerName.equals(handlers[i])) {
-						MessageDialog.openInformation(shell, "Dialog", "Handler is existed.");
-						return true;
-					}
-				}
-				return false;
-			}
-		});
-		okButton.setText("OK");
-		GridData okData = new GridData();
-		okData.horizontalAlignment = GridData.CENTER;
-		okButton.setLayoutData(okData);
-
-		Button cancelButton = new Button(shell, SWT.PUSH);
-		cancelButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				shell.dispose();
-			}
-		});
-		cancelButton.setText("Cancel");
-		GridData cancelData = new GridData();
-		cancelData.horizontalAlignment = GridData.CENTER;
-		cancelData.grabExcessHorizontalSpace = true;
-		shell.setDefaultButton(okButton);
-	}
-
-	public Operation getOperation() {
-		return operation;
-	}
-
-	public String getInputHandler() {
-		return inputHandler;
-	}
-
-	private static class RBSelectionAdapter extends SelectionAdapter {
-		private Text text;
-		private Combo combo;
-		private int number;
-
-		protected RBSelectionAdapter(int number) {
-			this.number = number;
-		}
-
-		public void widgetSelected(SelectionEvent e) {
-
-			if (number == 3) {
-				text.setEnabled(false);
-				combo.setEnabled(true);
-			} else {
-				text.setEnabled(true);
-				combo.setEnabled(false);
-			}
-		}
-
-		protected void setText(Text text) {
-			this.text = text;
-		}
-
-		protected void setCombo(Combo combo) {
-			this.combo = combo;
-		}
-	}
-
-	protected abstract boolean usedByOther(Node node, String oldHandler);
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/AccessorConfigurationDialog.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/AccessorConfigurationDialog.java
deleted file mode 100755
index 18a8601..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/AccessorConfigurationDialog.java
+++ /dev/null
@@ -1,854 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.dialogs;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.xwt.internal.utils.LoggerManager;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaModel;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.core.search.IJavaSearchConstants;
-import org.eclipse.jdt.core.search.IJavaSearchScope;
-import org.eclipse.jdt.core.search.SearchEngine;
-import org.eclipse.jdt.internal.ui.JavaPlugin;
-import org.eclipse.jdt.internal.ui.dialogs.FilteredTypesSelectionDialog;
-import org.eclipse.jdt.internal.ui.wizards.TypedElementSelectionValidator;
-import org.eclipse.jdt.internal.ui.wizards.TypedViewerFilter;
-import org.eclipse.jdt.ui.JavaElementComparator;
-import org.eclipse.jdt.ui.JavaElementLabelProvider;
-import org.eclipse.jdt.ui.StandardJavaElementContentProvider;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.StatusDialog;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.jface.util.Util;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.ElementListSelectionDialog;
-import org.eclipse.ui.dialogs.ElementTreeSelectionDialog;
-import org.eclipse.ui.progress.IProgressService;
-import org.eclipse.xwt.tools.ui.designer.wizards.AccessorConfigureInfo;
-import org.eclipse.xwt.tools.ui.designer.wizards.ExternalizeStringsCommon;
-
-/**
- * @author chenxiaoru (xiaoru.chen@soyatec.com)
- */
-@SuppressWarnings("restriction")
-public class AccessorConfigurationDialog extends StatusDialog {
-
-	private String sourceFolder;
-	private String sourcePackage;
-	private String className;
-	private String propertyFolder;
-	private String propertyPackage;
-	private String propertyName;
-
-	private Text classNameText;
-	private Text sourcePackageText;
-	private Text sourceFolderText;
-	private Text propertyNameText;
-	private Text propertyPackageText;
-	private Text propertyFolderText;
-
-	private Button sourcePackagButton;
-	private Button chooseClassTypeButton;
-	private Button propertyPackagButton;
-	private Button choosePropertyTypeButton;
-	private Button propertyFolderButton;
-
-	private Label classDefaultLabel;
-	private Label propertyDefaultLabel;
-	private Label propertyLabel;
-
-	private boolean isError = false;
-
-	private IPackageFragmentRoot classRoot;
-	private IPackageFragmentRoot propertyRoot;
-	private IStatus fLastStatus;
-
-	private IPackageFragment propertyFragment;
-	private IPackageFragment classFragment;
-
-	private AccessorConfigureInfo info;
-	Object[] propertyFileNames;
-	Object[] classFileNames;
-
-	public AccessorConfigurationDialog(Shell parent, AccessorConfigureInfo info) {
-		super(parent);
-		this.info = info;
-	}
-
-	protected Control createDialogArea(Composite ancestor) {
-		if (info.getClassRoot() != null) {
-			classRoot = info.getClassRoot();
-			classFragment = classRoot.getPackageFragment(info.getSourcePackage());
-			classFileNames = createFileListInput(".java", classFragment);
-		}
-
-		if (info.getPropertyRoot() != null) {
-			propertyRoot = info.getPropertyRoot();
-			propertyFragment = propertyRoot.getPackageFragment(info.getPropertyPackage());
-			propertyFileNames = createFileListInput(".properties", propertyFragment);
-		}
-		Composite parent = (Composite) super.createDialogArea(ancestor);
-
-		Composite container = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 3;
-		container.setLayout(layout);
-
-		String resourceLabelContens = "Resource bundle accessor class(will be created if it does not exist):";
-		createClassLabel(container, resourceLabelContens);
-
-		createClassFolderField(container);
-		createClassPackageField(container);
-		createClassNameField(container);
-
-		drawLine(container);
-
-		String propertyLabelContens = "Property file location and name:";
-		createPropertyLabel(container, propertyLabelContens);
-
-		createPropertyFolderField(container);
-		createPropertyPackageField(container);
-		createPropertyNameField(container);
-
-		getExistPropertyFile();
-
-		return parent;
-	}
-
-	/**
-	 * draw a line on container.
-	 * 
-	 * @param container
-	 */
-	private void drawLine(Composite container) {
-		Label hLabel = new Label(container, SWT.SEPARATOR | SWT.HORIZONTAL);
-		GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		gridData.horizontalSpan = 3;
-		gridData.heightHint = 20;
-		hLabel.setLayoutData(gridData);
-	}
-
-	private void createClassLabel(Composite container, String labelContents) {
-		Label classLabel = new Label(container, SWT.NONE);
-		GridData gridData = new GridData();
-		gridData.horizontalSpan = 3;
-		gridData.heightHint = 20;
-		classLabel.setText(labelContents);
-		classLabel.setLayoutData(gridData);
-	}
-
-	private void createPropertyLabel(Composite container, String labelContents) {
-		propertyLabel = new Label(container, SWT.NONE);
-		GridData gridData = new GridData();
-		gridData.horizontalSpan = 3;
-		gridData.heightHint = 20;
-		gridData.widthHint = 350;
-		propertyLabel.setText(labelContents);
-		propertyLabel.setLayoutData(gridData);
-	}
-
-	private void createClassFolderField(Composite container) {
-		Label sourceFolderLabel = new Label(container, SWT.NONE);
-		GridData gridData = new GridData();
-		sourceFolderLabel.setText("Source folder:");
-		sourceFolderLabel.setLayoutData(gridData);
-
-		sourceFolderText = new Text(container, SWT.BORDER);
-		gridData = new GridData(GridData.FILL_HORIZONTAL);
-		sourceFolderText.setLayoutData(gridData);
-		sourceFolderText.setText(info.getSourceFolder());
-		sourceFolder = sourceFolderText.getText();
-		sourceFolderText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				sourceFolder = sourceFolderText.getText();
-				setNewRoot("/" + sourceFolder, true);
-				checkFomat();
-			}
-		});
-		Button sourceFolderButton = new Button(container, SWT.PUSH);
-		sourceFolderButton.setText("Browse...");
-		sourceFolderButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				classRoot = chooseSourceContainer(classRoot);
-				IPath path = classRoot.getPath();
-				sourceFolderText.setText(path.toString().substring(1));
-			}
-		});
-	}
-
-	private void createClassPackageField(Composite container) {
-		Label sourcePackageLabel = new Label(container, SWT.NONE);
-		GridData gridData = new GridData();
-		sourcePackageLabel.setText("Package:");
-		sourcePackageLabel.setLayoutData(gridData);
-
-		Composite classPackageField = new Composite(container, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 4;
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		classPackageField.setLayout(layout);
-		gridData = new GridData(GridData.FILL_HORIZONTAL);
-		classPackageField.setLayoutData(gridData);
-
-		sourcePackageText = new Text(classPackageField, SWT.BORDER);
-		gridData = new GridData(GridData.FILL_HORIZONTAL);
-		sourcePackageText.setLayoutData(gridData);
-		sourcePackageText.setText(info.getSourcePackage());
-		sourcePackage = sourcePackageText.getText();
-		sourcePackageText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				sourcePackage = sourcePackageText.getText();
-				checkFomat();
-				if (getSourcePackage() == null || ("").equals(getSourcePackage())) {
-					classDefaultLabel.setText("(default)");
-				}
-			}
-		});
-
-		classDefaultLabel = new Label(classPackageField, SWT.NONE);
-		gridData = new GridData();
-		gridData.widthHint = 100;
-		classDefaultLabel.setLayoutData(gridData);
-
-		sourcePackagButton = new Button(container, SWT.PUSH);
-		sourcePackagButton.setText("Browse...");
-		sourcePackagButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				Widget widget = e.widget;
-				choosePackage(widget, classRoot);
-			}
-		});
-	}
-
-	private void createClassNameField(Composite container) {
-		Label classNameLabel = new Label(container, SWT.NONE);
-		GridData gridData = new GridData();
-		classNameLabel.setText("Class name:");
-		classNameLabel.setLayoutData(gridData);
-
-		classNameText = new Text(container, SWT.BORDER);
-		gridData = new GridData(GridData.FILL_HORIZONTAL);
-		classNameText.setLayoutData(gridData);
-		classNameText.setText(info.getClassName());
-		className = classNameText.getText();
-		classNameText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				className = classNameText.getText();
-				checkFomat();
-			}
-		});
-
-		chooseClassTypeButton = new Button(container, SWT.PUSH);
-		chooseClassTypeButton.setText("Browse...");
-		chooseClassTypeButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				browseForAccessorClass(classRoot);
-			}
-		});
-	}
-
-	private void createPropertyFolderField(Composite container) {
-		Label propertyFolderLabel = new Label(container, SWT.NONE);
-		GridData gridData = new GridData();
-		propertyFolderLabel.setText("Source folder:");
-		propertyFolderLabel.setLayoutData(gridData);
-
-		propertyFolderText = new Text(container, SWT.BORDER);
-		gridData = new GridData(GridData.FILL_HORIZONTAL);
-		propertyFolderText.setLayoutData(gridData);
-		propertyFolderText.setText(info.getPropertyFolder());
-		propertyFolder = propertyFolderText.getText();
-		propertyFolderText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				propertyFolder = propertyFolderText.getText();
-				setNewRoot("/" + propertyFolder, false);
-				checkFomat();
-			}
-		});
-
-		propertyFolderButton = new Button(container, SWT.PUSH);
-		propertyFolderButton.setText("Browse...");
-		propertyFolderButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				propertyRoot = chooseSourceContainer(propertyRoot);
-				IPath path = propertyRoot.getPath();
-				propertyFolderText.setText(path.toString().substring(1));
-			}
-		});
-	}
-
-	private void createPropertyPackageField(Composite container) {
-		Label propertyPackageLabel = new Label(container, SWT.NONE);
-		GridData gridData = new GridData();
-		propertyPackageLabel.setText("Package:");
-		propertyPackageLabel.setLayoutData(gridData);
-
-		Composite propertyPackageField = new Composite(container, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 4;
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		propertyPackageField.setLayout(layout);
-		gridData = new GridData(GridData.FILL_HORIZONTAL);
-		propertyPackageField.setLayoutData(gridData);
-
-		propertyPackageText = new Text(propertyPackageField, SWT.BORDER);
-		gridData = new GridData(GridData.FILL_HORIZONTAL);
-		propertyPackageText.setLayoutData(gridData);
-		propertyPackageText.setText(info.getPropertyPackage());
-		propertyPackage = propertyPackageText.getText();
-		propertyPackageText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				propertyPackage = propertyPackageText.getText();
-				checkFomat();
-				if (getPropertyPackage() == null || ("").equals(getPropertyPackage())) {
-					propertyDefaultLabel.setText("(default)");
-				}
-			}
-		});
-
-		propertyDefaultLabel = new Label(propertyPackageField, SWT.NONE);
-		gridData = new GridData();
-		gridData.widthHint = 100;
-		propertyDefaultLabel.setLayoutData(gridData);
-
-		propertyPackagButton = new Button(container, SWT.PUSH);
-		propertyPackagButton.setText("Browse...");
-		propertyPackagButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				Widget widget = e.widget;
-				choosePackage(widget, propertyRoot);
-			}
-		});
-	}
-
-	private void createPropertyNameField(Composite container) {
-		Label propertyNameLabel = new Label(container, SWT.NONE);
-		GridData gridData = new GridData();
-		propertyNameLabel.setText("Porperty File name:");
-		propertyNameLabel.setLayoutData(gridData);
-
-		propertyNameText = new Text(container, SWT.BORDER);
-		gridData = new GridData(GridData.FILL_HORIZONTAL);
-		propertyNameText.setLayoutData(gridData);
-		propertyNameText.setText(info.getPropertyName());
-		propertyName = propertyNameText.getText();
-		propertyNameText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				propertyName = propertyNameText.getText();
-				checkFomat();
-			}
-		});
-
-		choosePropertyTypeButton = new Button(container, SWT.PUSH);
-		choosePropertyTypeButton.setText("Browse...");
-		choosePropertyTypeButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				browseForPropertyFile();
-			}
-		});
-	}
-
-	protected void browseForAccessorClass(IPackageFragmentRoot root) {
-		IProgressService service = PlatformUI.getWorkbench().getProgressService();
-		IJavaSearchScope scope = root != null ? SearchEngine.createJavaSearchScope(new IJavaElement[] { root }) : SearchEngine.createWorkspaceScope();
-		FilteredTypesSelectionDialog dialog = new FilteredTypesSelectionDialog(getShell(), false, service, scope, IJavaSearchConstants.CLASS);
-		dialog.setTitle("Choose a Type");
-		dialog.setInitialPattern("*Messages");
-		classFileNames = createFileListInput(".java", classFragment);
-		if (dialog.open() == Window.OK) {
-			IType selectedType = (IType) dialog.getFirstResult();
-			if (selectedType != null) {
-				classNameText.setText(selectedType.getElementName());
-			}
-		}
-	}
-
-	private void browseForPropertyFile() {
-		ElementListSelectionDialog dialog = new ElementListSelectionDialog(getShell(), new JavaElementLabelProvider());
-		dialog.setIgnoreCase(false);
-		dialog.setTitle("Choose the property file:");
-		dialog.setMessage("Choose the property file:");
-		dialog.setElements(createFileListInput(".properties", propertyFragment));
-		propertyFileNames = createFileListInput(".properties", propertyFragment);
-		dialog.setFilter('*' + "properties");
-		if (dialog.open() == Window.OK) {
-			IFile selectedFile = (IFile) dialog.getFirstResult();
-			if (selectedFile != null)
-				propertyNameText.setText(selectedFile.getName().substring(0, selectedFile.getName().lastIndexOf(".properties")));
-		}
-	}
-
-	private Object[] createFileListInput(String extension, IPackageFragment fragment) {
-		try {
-			if (fragment == null)
-				return new Object[0];
-			List result = new ArrayList(1);
-			if (".java".equals(extension)) {
-				Object[] java = fragment.getChildren();
-				return java;
-			}
-			Object[] nonjava = fragment.getNonJavaResources();
-			for (int i = 0; i < nonjava.length; i++) {
-				if (isAlrightFile(nonjava[i], extension))
-					result.add(nonjava[i]);
-			}
-			return result.toArray();
-		} catch (JavaModelException e) {
-			return new Object[0];
-		}
-	}
-
-	private static boolean isAlrightFile(Object o, String extension) {
-		if (!(o instanceof IFile))
-			return false;
-		IFile file = (IFile) o;
-		return (extension.equals('.' + file.getFileExtension()));
-	}
-
-	/**
-	 * Set the root null.
-	 * 
-	 * @param isClass
-	 */
-	private void setRootNull(boolean isClass) {
-		if (isClass) {
-			classRoot = null;
-		} else {
-			propertyRoot = null;
-		}
-	}
-
-	/**
-	 * While user change the sourceFolderText or propertyFolderText's nameMap,refresh the root.
-	 * 
-	 * @param path
-	 */
-	private void setNewRoot(String path, boolean isClass) {
-		int start = path.indexOf("/");
-		IResource container = ResourcesPlugin.getWorkspace().getRoot().findMember(new Path(path));
-		if (path.length() == 0 || container == null || (container.getType() & (IResource.PROJECT | IResource.FOLDER)) == 0) {
-			setRootNull(isClass);
-		} else if ((path.indexOf("/", path.indexOf("/", start + 1) + 1) != -1) || (path.indexOf("\\") != -1)) {
-			setRootNull(isClass);
-		} else {
-			try {
-				final IFile file = ExternalizeStringsCommon.getIFile(path, "");
-				IJavaProject javaProject = JavaCore.create(file.getProject());
-				IPackageFragmentRoot fragmentRoot[] = javaProject.getAllPackageFragmentRoots();
-				for (int i = 0; i < fragmentRoot.length; i++) {
-					if (fragmentRoot[i].getResource() != null) {
-						if (isClass) {
-							classRoot = fragmentRoot[i];
-						} else {
-							propertyRoot = fragmentRoot[i];
-						}
-						break;
-					}
-				}
-
-			} catch (CoreException e) {
-				LoggerManager.log(e);
-			}
-		}
-	}
-
-	protected void choosePackage(Widget widget, IPackageFragmentRoot root) {
-		IJavaElement[] packages = null;
-		try {
-			if (root != null && root.exists()) {
-				packages = root.getChildren();
-			}
-		} catch (JavaModelException e) {
-			// no need to react
-		}
-		if (packages == null) {
-			packages = new IJavaElement[0];
-		}
-		ElementListSelectionDialog dialog = new ElementListSelectionDialog(getShell(), new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT));
-		dialog.setIgnoreCase(true);
-
-		dialog.setTitle("Package Selection");
-		dialog.setMessage("Choose the destination package:");
-		dialog.setElements(packages);
-
-		if (dialog.open() == Window.OK) {
-			IPackageFragment fragment = (IPackageFragment) dialog.getFirstResult();
-			if (widget.equals(sourcePackagButton)) {
-				sourcePackageText.setText(fragment.getElementName());
-				// classFilePath = fragment.getPath().toString();
-				classFragment = fragment;
-			} else if (widget.equals(propertyPackagButton)) {
-				propertyPackageText.setText(fragment.getElementName());
-				// propertyFilePath = fragment.getPath().toString();
-				propertyFragment = fragment;
-			}
-		}
-	}
-
-	/**
-	 * Uses the standard container selection dialog to choose the new value for the container field.
-	 */
-	private IPackageFragmentRoot chooseSourceContainer(IPackageFragmentRoot root) {
-		Class[] acceptedClasses = new Class[] { IPackageFragmentRoot.class, IJavaProject.class };
-		TypedElementSelectionValidator validator = new TypedElementSelectionValidator(acceptedClasses, false) {
-			public boolean isSelectedValid(Object element) {
-				try {
-					if (element instanceof IJavaProject) {
-						IJavaProject jproject = (IJavaProject) element;
-						IPath path = jproject.getProject().getFullPath();
-						return (jproject.findPackageFragmentRoot(path) != null);
-					} else if (element instanceof IPackageFragmentRoot) {
-						return (((IPackageFragmentRoot) element).getKind() == IPackageFragmentRoot.K_SOURCE);
-					}
-					return true;
-				} catch (JavaModelException e) {
-					JavaPlugin.log(e.getStatus()); // just log, no ui in validation
-				}
-				return false;
-			}
-		};
-
-		acceptedClasses = new Class[] { IJavaModel.class, IPackageFragmentRoot.class, IJavaProject.class };
-		ViewerFilter filter = new TypedViewerFilter(acceptedClasses) {
-			public boolean select(Viewer viewer, Object parent, Object element) {
-				if (element instanceof IPackageFragmentRoot) {
-					try {
-						return (((IPackageFragmentRoot) element).getKind() == IPackageFragmentRoot.K_SOURCE);
-					} catch (JavaModelException e) {
-						JavaPlugin.log(e.getStatus()); // just log, no ui in validation
-						return false;
-					}
-				}
-				return super.select(viewer, parent, element);
-			}
-		};
-
-		StandardJavaElementContentProvider provider = new StandardJavaElementContentProvider();
-		ILabelProvider labelProvider = new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT);
-		ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(getShell(), labelProvider, provider);
-		dialog.setValidator(validator);
-		dialog.setComparator(new JavaElementComparator());
-		dialog.setTitle("Source Folder Selection");
-		dialog.setMessage("Choose a source folder:");
-		dialog.addFilter(filter);
-		dialog.setInput(JavaCore.create(ResourcesPlugin.getWorkspace().getRoot()));
-
-		if (dialog.open() == Window.OK) {
-			Object element = dialog.getFirstResult();
-			if (element instanceof IJavaProject) {
-				IJavaProject jproject = (IJavaProject) element;
-				return jproject.getPackageFragmentRoot(jproject.getProject());
-			} else if (element instanceof IPackageFragmentRoot) {
-				return (IPackageFragmentRoot) element;
-			}
-			return null;
-		}
-		return root;
-	}
-
-	/**
-	 * Ensures that both file path are set.
-	 */
-	private void checkFilePath(String path, boolean isPackage, boolean isClass) {
-		IResource container = ResourcesPlugin.getWorkspace().getRoot().findMember(new Path(path));
-		if (path.length() == 0 && !isPackage) {
-			updateStatus("Both sources folder must be specified");
-			return;
-		}
-		if (container == null || (container.getType() & (IResource.PROJECT | IResource.FOLDER)) == 0) {
-			if (isPackage && !("").equals(path)) {
-				updateStatus("The apecified package for the resource bundle is invalid.");
-				return;
-			} else if (!isPackage) {
-				updateStatus("Both source folders must exist");
-				return;
-			}
-		}
-		if (!container.isAccessible()) {
-			updateStatus("Both projects must be writable");
-			return;
-		}
-		if (!isPackage) {
-			int start = path.indexOf("/");
-			if ((path.indexOf("/", path.indexOf("/", start + 1) + 1) != -1) || (path.indexOf("\\") != -1)) {
-				updateStatus("Both source folders must exist");
-				setRootNull(isClass);
-				return;
-			}
-		}
-		updateStatus("");
-	}
-
-	/**
-	 * Ensures that both file path are set.
-	 */
-	private void checkPackage(String path, String packageName, boolean isProperty) {
-		if (packageName == null || packageName.length() == 0) {
-			if (isProperty) {
-				updateStatus("Incorret package.");
-				return;
-			}
-		}
-		if ((packageName.indexOf("/") != -1) || (packageName.indexOf("\\") != -1)) {
-			updateStatus("The apecified package for the resource bundle is invalid.");
-			return;
-		}
-		checkFilePath(path, true, !isProperty);
-	}
-
-	/**
-	 * check the name of the file.
-	 */
-	private void checkFileName() {
-		String regex = "^([_|a-zA-Z])[_\\w]*$";
-		if ("".equals(getClassName())) {
-			updateStatus("The class name must be specified.");
-		} else {
-			Matcher matcher = Pattern.compile(regex).matcher(className);
-			if (!(matcher.find())) {
-				updateStatus("The type name\"" + className + "\"is not a valid indentifier.");
-			} else {
-				updateStatus("");
-			}
-		}
-	}
-
-	/**
-	 * Check all the text value fomat.
-	 * 
-	 * @param message
-	 */
-	private void checkFomat() {
-		checkFilePath("/" + sourceFolder, false, true);
-		if (isError)
-			return;
-		checkFilePath("/" + propertyFolder, false, false);
-		if (isError)
-			return;
-		checkPackage(getClassFilePath(), getSourcePackage(), false);
-		if (isError)
-			return;
-		checkFileName();
-		if (isError)
-			return;
-		checkPackage(getPropertyFilePath(), getPropertyPackage(), true);
-		if (isError)
-			return;
-		if ("".equals(getPropertyName())) {
-			updateStatus("The Property File Name must be specified. ");
-		} else {
-			updateStatus("");
-			getExistPropertyFile();
-		}
-	}
-
-	private void updateStatus(String message) {
-		if (message != null && !"".equals(message)) {
-			isError = true;
-			fLastStatus = new Status(IStatus.ERROR, JavaCore.PLUGIN_ID, -1, message, null);
-			setPropertyFieldEnable(true);
-		} else {
-			isError = false;
-			fLastStatus = new Status(IStatus.OK, Policy.JFACE, IStatus.OK, Util.ZERO_LENGTH_STRING, null);
-		}
-		updateStatus(fLastStatus);
-	}
-
-	private void getExistPropertyFile() {
-		try {
-			final IFile file = ExternalizeStringsCommon.getIFile(getClassFilePath(), className + ".java");
-			int keyBegin = getClassFilePath().indexOf("/", 1) + 1;
-			int keyEnd = getClassFilePath().indexOf("/", keyBegin + 1);
-			String sourceKey = getClassFilePath().substring(keyBegin, keyEnd);
-			if (file.exists()) {
-				// Get the property file's folder.
-				IJavaProject javaProject = JavaCore.create(file.getProject());
-				String propertyFolder = javaProject.getElementName() + "/" + sourceKey;
-				// Get the property file's package and name.
-				StringBuffer contents = ExternalizeStringsCommon.getHistoryContents(file);
-				String findKey = "BUNDLE_NAME";
-				int index = contents.toString().indexOf(findKey);
-				int start = contents.indexOf("\"", index);
-				int end = contents.indexOf("\"", start + 1);
-				String path = contents.substring(start + 1, end);
-				String propertyPackage = path.substring(0, path.lastIndexOf("."));
-				String propertyName = path.substring(path.lastIndexOf(".") + 1);
-				if (!propertyFolder.equals(propertyFolderText.getText())) {
-					propertyFolderText.setText(propertyFolder);
-				}
-				if (!propertyPackage.equals(propertyPackageText.getText())) {
-					propertyPackageText.setText(propertyPackage);
-				}
-				if (!propertyName.equals(propertyNameText.getText())) {
-					propertyNameText.setText(propertyName);
-				}
-				setPropertyFieldEnable(false);
-			} else {
-				setPropertyFieldEnable(true);
-			}
-		} catch (CoreException e) {
-			LoggerManager.log(e);
-		} catch (IOException e) {
-			LoggerManager.log(e);
-		}
-	}
-
-	/**
-	 * Notifies that the ok button of this dialog has been pressed.
-	 * <p>
-	 * The <code>Dialog</code> implementation of this framework method sets this dialog's return code to <code>Window.OK</code> and closes the dialog. Subclasses may override.
-	 * </p>
-	 */
-	protected void okPressed() {
-		if (checkFileExist(getClassName(), ".java", classFileNames, getClassFilePath())) {
-			return;
-		}
-		if (checkFileExist(getPropertyName(), ".properties", propertyFileNames, getPropertyFilePath())) {
-			return;
-		}
-		setReturnCode(OK);
-		close();
-	}
-
-	/**
-	 * Check the file whether already exist with different case.
-	 */
-	private boolean checkFileExist(String name, String extension, Object[] names, String path) {
-		Object[] fileNames = names;
-		String fileExist;
-		for (int i = 0; i < fileNames.length; i++) {
-			if (".java".equals(extension)) {
-				fileExist = ((IJavaElement) fileNames[i]).getElementName();
-			} else {
-				fileExist = ((IFile) fileNames[i]).getName();
-			}
-			String fileExistName = fileExist.substring(0, fileExist.lastIndexOf(extension));
-			if ((!name.equals(fileExistName)) && name.toLowerCase().equals(fileExistName.toLowerCase())) {
-				showFileExistDialog(name, extension, path);
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * If file already exist but with different case,show the dialog.
-	 */
-	private void showFileExistDialog(String name, String extension, String path) {
-		String dialogMessage = "File '" + path.replace(".", "/") + "/" + name + extension + "' already exist with different case.";
-		String[] dialogButtonLabels = { "Ok" };
-		MessageDialog messageDialog = new MessageDialog(getShell(), "Configure Accessor Class", null, dialogMessage, MessageDialog.ERROR, dialogButtonLabels, 1);
-		messageDialog.open();
-	}
-
-	/**
-	 * Set the property file configure field disabled or enabled.
-	 * 
-	 * @param b
-	 */
-	private void setPropertyFieldEnable(boolean b) {
-		String propertyLabelContens;
-		if (b) {
-			propertyLabelContens = "Property file location and name:";
-		} else {
-			propertyLabelContens = "Property file location and name(Default exist file):";
-		}
-		if (!(propertyLabelContens).equals(propertyLabel.getText())) {
-			propertyLabel.setText(propertyLabelContens);
-		}
-		propertyFolderButton.setEnabled(b);
-		propertyPackagButton.setEnabled(b);
-		choosePropertyTypeButton.setEnabled(b);
-		propertyFolderText.setEnabled(b);
-		propertyPackageText.setEnabled(b);
-		propertyNameText.setEnabled(b);
-	}
-
-	public IPackageFragmentRoot getclassRoot() {
-		return classRoot;
-	}
-
-	public String getClassFilePath() {
-		return "/" + sourceFolder + "/" + getSourcePackage().replace(".", "/");
-	}
-
-	public String getSourceFolder() {
-		return sourceFolder;
-	}
-
-	public String getSourcePackage() {
-		return sourcePackage;
-	}
-
-	public String getClassName() {
-		return className;
-	}
-
-	public IPackageFragmentRoot getPropertyRoot() {
-		return propertyRoot;
-	}
-
-	public String getPropertyFolder() {
-		return propertyFolder;
-	}
-
-	public String getPropertyFilePath() {
-		return "/" + propertyFolder + "/" + getPropertyPackage().replace(".", "/");
-	}
-
-	public String getPropertyPackage() {
-		return propertyPackage;
-	}
-
-	public String getPropertyName() {
-		return propertyName;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/ColorChooser.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/ColorChooser.java
deleted file mode 100755
index d591f9f..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/ColorChooser.java
+++ /dev/null
@@ -1,355 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.dialogs;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.XWTMaps;
-import org.eclipse.xwt.utils.NamedColorsUtil;
-import org.eclipse.xwt.utils.ResourceManager;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.ColorDialog;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ColorChooser extends Dialog {
-	private Canvas previewCanvas;
-	private Text redText;
-	private Text greenText;
-	private Text blueText;
-	private Text resultText;
-
-	private Object initValue;
-	private Map<Object, Color> colorsMap = new HashMap<Object, Color>();
-
-	private String result;
-
-	private static final Color BACKGROUND = Display.getDefault().getSystemColor(SWT.COLOR_WHITE);
-	private Control selection;
-
-	public ColorChooser(Shell parent, Object initValue) {
-		super(parent);
-		this.initValue = initValue;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
-	 */
-	protected void configureShell(Shell newShell) {
-		super.configureShell(newShell);
-		newShell.setText("Color Chooser");
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createDialogArea(Composite parent) {
-		Composite dialogArea = (Composite) super.createDialogArea(parent);
-		dialogArea.setLayout(new GridLayout(1, true));
-
-		createPreviewGrp(dialogArea);
-
-		createColorGrp(dialogArea);
-		if (initValue != null) {
-			if (initValue instanceof String) {
-				preview((String) initValue);
-			} else if (initValue instanceof Color) {
-				preview((Color) initValue);
-			}
-		}
-
-		return dialogArea;
-	}
-
-	private void createColorGrp(Composite dialogArea) {
-		Group colorGrp = new Group(dialogArea, SWT.NONE);
-		colorGrp.setText("Color");
-		colorGrp.setLayout(new GridLayout());
-		colorGrp.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		TabFolder tabFolder = new TabFolder(colorGrp, SWT.NONE);
-		tabFolder.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		TabItem systemTab = new TabItem(tabFolder, SWT.NONE);
-		systemTab.setText("System Colors");
-		systemTab.setControl(createSystemColorsControl(tabFolder));
-
-		TabItem namedTab = new TabItem(tabFolder, SWT.NONE);
-		namedTab.setText("Named Colors");
-		namedTab.setControl(createNamedColorsControl(tabFolder));
-
-		Button browserButton = new Button(colorGrp, SWT.PUSH);
-		browserButton.setText("System Color Dialog");
-		browserButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		browserButton.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event event) {
-				ColorDialog colorDialog = new ColorDialog(getShell());
-				RGB open = colorDialog.open();
-				if (open != null) {
-					preview(open);
-				}
-			}
-		});
-	}
-
-	private Control createNamedColorsControl(Composite parent) {
-		ScrolledComposite scrollable = new ScrolledComposite(parent, SWT.BORDER | SWT.V_SCROLL);
-		Composite control = new Composite(scrollable, SWT.NONE);
-		control.setLayout(new GridLayout(16, true));
-		control.setBackground(BACKGROUND);
-		String[] namedColors = NamedColorsUtil.getColorNames();
-		for (String colorName : namedColors) {
-			addNamedColor(control, colorName);
-		}
-		scrollable.setContent(control);
-		scrollable.setExpandVertical(true);
-		scrollable.setExpandHorizontal(true);
-		scrollable.setMinSize(control.computeSize(-200, SWT.DEFAULT));
-		scrollable.setBackground(BACKGROUND);
-		return scrollable;
-	}
-
-	private void addNamedColor(Composite control, final String colorName) {
-		final CLabel colorLabel = new CLabel(control, SWT.NONE);
-		colorLabel.setBackground(BACKGROUND);
-		// colorLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		colorLabel.setToolTipText(colorName);
-		// colorLabel.setText(colorName);
-		Color color = NamedColorsUtil.getColor(colorName);
-		if (color != null) {
-			Display device = Display.getCurrent();
-			Image image = new Image(device, 18, 18);
-			GC gc = new GC(image);
-			gc.setBackground(color);
-			gc.fillRectangle(0, 0, 18, 18);
-			gc.dispose();
-			colorLabel.setImage(image);
-		}
-		final Display display = getShell().getDisplay();
-		colorLabel.addListener(SWT.MouseExit, new Listener() {
-			public void handleEvent(Event event) {
-				if (colorLabel != selection) {
-					colorLabel.setBackground(BACKGROUND);
-				}
-			}
-		});
-
-		colorLabel.addListener(SWT.MouseEnter, new Listener() {
-			public void handleEvent(Event event) {
-				if (colorLabel != selection) {
-					colorLabel.setBackground(new Color[] { display.getSystemColor(SWT.COLOR_WHITE), display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND) }, new int[] { 100 }, true);
-				}
-			}
-		});
-
-		colorLabel.addListener(SWT.MouseDown, new Listener() {
-			public void handleEvent(Event event) {
-				Control oldSelection = selection;
-				if (oldSelection == null || oldSelection != colorLabel) {
-					colorLabel.setBackground(new Color[] { display.getSystemColor(SWT.COLOR_WHITE), display.getSystemColor(SWT.COLOR_GRAY) }, new int[] { 100 }, true);
-					preview(colorName);
-					selection = colorLabel;
-				} else {
-					selection = null;
-					preview(null);
-				}
-				if (oldSelection != null) {
-					oldSelection.setBackground(BACKGROUND);
-				}
-			}
-		});
-	}
-
-	private Control createSystemColorsControl(Composite parent) {
-		Composite control = new Composite(parent, SWT.BORDER);
-		control.setLayout(new GridLayout(16, true));
-		control.setBackground(BACKGROUND);
-		Collection<String> systemColors = XWTMaps.getColorKeys();
-		for (String sysColor : systemColors) {
-			addSystemColor(control, sysColor);
-		}
-		return control;
-	}
-
-	private void addSystemColor(Composite parent, final String systemColor) {
-		final CLabel colorLabel = new CLabel(parent, SWT.NONE);
-		colorLabel.setBackground(BACKGROUND);
-		colorLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		colorLabel.setToolTipText(systemColor);
-		Color color = ResourceManager.resources.getColor(systemColor);
-		if (color != null) {
-			Display device = Display.getCurrent();
-			Image image = new Image(device, 18, 18);
-			GC gc = new GC(image);
-			gc.setBackground(color);
-			gc.fillRectangle(0, 0, 18, 18);
-			gc.dispose();
-			colorLabel.setImage(image);
-		}
-		final Display display = getShell().getDisplay();
-		colorLabel.addListener(SWT.MouseExit, new Listener() {
-			public void handleEvent(Event event) {
-				if (colorLabel != selection) {
-					colorLabel.setBackground(BACKGROUND);
-				}
-			}
-		});
-
-		colorLabel.addListener(SWT.MouseEnter, new Listener() {
-			public void handleEvent(Event event) {
-				if (colorLabel != selection) {
-					colorLabel.setBackground(new Color[] { display.getSystemColor(SWT.COLOR_WHITE), display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND) }, new int[] { 100 }, true);
-				}
-			}
-		});
-
-		colorLabel.addListener(SWT.MouseDown, new Listener() {
-			public void handleEvent(Event event) {
-				Control oldSelection = selection;
-				if (oldSelection == null || oldSelection != colorLabel) {
-					colorLabel.setBackground(new Color[] { display.getSystemColor(SWT.COLOR_WHITE), display.getSystemColor(SWT.COLOR_GRAY) }, new int[] { 100 }, true);
-					preview(systemColor);
-					selection = colorLabel;
-				} else {
-					selection = null;
-					preview(null);
-				}
-				if (oldSelection != null) {
-					oldSelection.setBackground(BACKGROUND);
-				}
-			}
-		});
-	}
-
-	private Color getColor(Object object) {
-		if (object == null) {
-			return null;
-		}
-		Color color = colorsMap.get(object);
-		if (color != null && !color.isDisposed()) {
-			return color;
-		}
-		if (object instanceof String) {
-			String colorStr = ((String) object).trim();
-			IConverter c = XWT.findConvertor(String.class, Color.class);
-			if (c != null) {
-				color = (Color) c.convert(colorStr);
-			}
-		} else if (object instanceof RGB) {
-			color = new Color(null, (RGB) object);
-			colorsMap.put(object, color);
-		} else if (object instanceof Color) {
-			color = (Color) object;
-		}
-		return color;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#close()
-	 */
-	public boolean close() {
-		Collection<Color> values = colorsMap.values();
-		for (Color color : values) {
-			if (color != null) {
-				color.dispose();
-			}
-		}
-		colorsMap.clear();
-		return super.close();
-	}
-
-	private void preview(Object object) {
-		Color color = getColor(object);
-		if (color != null && !color.isDisposed()) {
-			int red = color.getRed();
-			int green = color.getGreen();
-			int blue = color.getBlue();
-			if (object instanceof String) {
-				result = (String) object;
-			} else {
-				result = red + "," + green + "," + blue;
-			}
-			previewCanvas.setBackground(color);
-			redText.setText("" + red);
-			greenText.setText("" + green);
-			blueText.setText("" + blue);
-			resultText.setText(result);
-		} else {
-			previewCanvas.setBackground(null);
-			redText.setText("");
-			greenText.setText("");
-			blueText.setText("");
-			resultText.setText("");
-		}
-	}
-
-	private void createPreviewGrp(Composite parent) {
-		Group previewGrp = new Group(parent, SWT.NONE);
-		previewGrp.setText("Selected Color");
-		previewGrp.setLayout(new GridLayout(3, false));
-		previewGrp.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		previewCanvas = new Canvas(previewGrp, SWT.BORDER);
-		GridData layoutData = new GridData(GridData.FILL_BOTH);
-		layoutData.verticalSpan = 4;
-		previewCanvas.setLayoutData(layoutData);
-
-		redText = createTextGroup(previewGrp, "R:");
-		greenText = createTextGroup(previewGrp, "G:");
-		blueText = createTextGroup(previewGrp, "B:");
-		resultText = createTextGroup(previewGrp, "Result:");
-	}
-
-	private Text createTextGroup(Composite parent, String name) {
-		Label label = new Label(parent, SWT.CENTER);
-		label.setText(name);
-		final Text text = new Text(parent, SWT.READ_ONLY);
-		text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		return text;
-	}
-
-	public String getColor() {
-		return result;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/EventHandlerDialog.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/EventHandlerDialog.java
deleted file mode 100755
index 64b5605..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/EventHandlerDialog.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.dialogs;
-
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.metadata.IEvent;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-public class EventHandlerDialog extends AbstractEventHandlerDialog {
-	public EventHandlerDialog(StructuredTextViewer textViewer, String oldHandler, String attrValue, String[] handlers) {
-		super(textViewer, oldHandler, attrValue, handlers);
-	}
-
-	protected boolean usedByOther(Node node, String oldHandler) {
-		while ((node != null) && (node.getNodeType() == Node.TEXT_NODE) && (node.getParentNode() != null)) {
-			node = node.getParentNode();
-		}
-		if (node == null) {
-			return false;
-		}
-		String name = node.getNodeName();
-		if (node.getNodeType() == Node.ELEMENT_NODE) {
-			IMetaclass metaclass = XWT.getMetaclass(name, node.getNamespaceURI());
-			if (metaclass != null) {
-				NamedNodeMap nodeMap = node.getAttributes();
-				for (int j = nodeMap.getLength() - 1; j >= 0; j--) {
-					IDOMAttr attrNode = (IDOMAttr) nodeMap.item(j);
-					String attrName = attrNode.getName();
-					String attrValue = attrNode.getValue();
-					IEvent event = metaclass.findEvent(attrName);
-					if (event != null) {
-						if (attrValue.equals(oldHandler)) {
-							count++;
-						}
-					}
-					if (count >= 1) {
-						return true;
-					}
-
-				}
-			}
-		}
-		NodeList nodes = node.getChildNodes();
-		int length = nodes.getLength();
-		for (int i = 0; i < length; i++) {
-			Node childNode = nodes.item(i);
-			if (childNode.getNodeType() == Node.ELEMENT_NODE) {
-				usedByOther(childNode, oldHandler);
-			}
-		}
-		if (count >= 1) {
-			return true;
-		} else {
-			return false;
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/ExternalizeTextDialog.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/ExternalizeTextDialog.java
deleted file mode 100755
index 4206d00..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/ExternalizeTextDialog.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.dialogs;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @author xrchen (xiaoru.chen@soyatec.com)
- * 
- */
-public class ExternalizeTextDialog extends Dialog {
-
-	private String oldValue;
-	private String textValue;
-	private Text text;
-	private boolean canExternalize;
-	private boolean isExternalized;
-	private Button externalizeButton;
-	private Button updateButton;
-	private String propertyName;
-
-	/**
-	 * @param parentShell
-	 */
-	public ExternalizeTextDialog(Shell parentShell, String oldValue, boolean canExternalize, String propertyName) {
-		super(parentShell);
-		this.oldValue = oldValue;
-		this.canExternalize = canExternalize;
-		this.isExternalized = !canExternalize;
-		this.propertyName = propertyName;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
-	 */
-	protected void configureShell(Shell newShell) {
-		super.configureShell(newShell);
-		newShell.setText("Set " + (propertyName.substring(0, 1)).toUpperCase() + propertyName.substring(1) + " Dialog");
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createDialogArea(Composite parent) {
-		Composite dialogArea = (Composite) super.createDialogArea(parent);
-		GridLayout layout = (GridLayout) dialogArea.getLayout();
-		layout.numColumns = 3;
-
-		Label label = new Label(dialogArea, SWT.NONE);
-		label.setText(propertyName);
-
-		text = new Text(dialogArea, SWT.BORDER);
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
-		gridData.widthHint = 200;
-		text.setText(oldValue == null ? "" : oldValue);
-		text.setLayoutData(gridData);
-		textValue = text.getText();
-		text.addModifyListener(new ModifyListener() {
-
-			public void modifyText(ModifyEvent e) {
-				textValue = text.getText();
-				if (!textValue.equals(oldValue)) {
-					updateButton.setEnabled(true);
-					canExternalize = false;
-					externalizeButton.setEnabled(canExternalize);
-				} else if (!isExternalized) {
-					updateButton.setEnabled(false);
-					canExternalize = true;
-					externalizeButton.setEnabled(canExternalize);
-				} else {
-					updateButton.setEnabled(false);
-				}
-			}
-		});
-
-		return dialogArea;
-	}
-
-	/**
-	 * Adds buttons to this dialog's button bar.
-	 * 
-	 * @param parent
-	 *            the button bar composite
-	 */
-	protected void createButtonsForButtonBar(Composite parent) {
-		createButton(parent, IDialogConstants.YES_ID, "Externalize Value", false);
-		externalizeButton = getButton(IDialogConstants.YES_ID);
-		externalizeButton.setEnabled(!isExternalized);
-		createButton(parent, IDialogConstants.OK_ID, "Update value", false);
-		updateButton = getButton(IDialogConstants.OK_ID);
-		updateButton.setEnabled(false);
-
-		createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, true);
-	}
-
-	/**
-	 * Notifies that this dialog's button with the given id has been pressed.
-	 * 
-	 * @param buttonId
-	 *            the id of the button that was pressed (see <code>IDialogConstants.*_ID</code> constants)
-	 */
-	protected void buttonPressed(int buttonId) {
-		if (IDialogConstants.OK_ID == buttonId) {
-			okPressed();
-		} else if (IDialogConstants.CANCEL_ID == buttonId) {
-			cancelPressed();
-		} else if (IDialogConstants.YES_ID == buttonId) {
-			externalizePressed();
-		}
-	}
-
-	/**
-	 * Notifies that the cancel button of this dialog has been pressed.
-	 */
-	protected void externalizePressed() {
-		setReturnCode(IDialogConstants.YES_ID);
-		close();
-	}
-
-	public String getTextValue() {
-		return textValue;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/ImageDialog.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/ImageDialog.java
deleted file mode 100755
index 4cf2f63..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/ImageDialog.java
+++ /dev/null
@@ -1,343 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.dialogs;
-
-import java.io.File;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.xwt.utils.PathHelper;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.ui.JavaElementLabelProvider;
-import org.eclipse.jdt.ui.StandardJavaElementContentProvider;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ImageDialog extends Dialog {
-
-	private IProject project;
-	private IFile file;
-	private String imagePath;
-	private Label imageLabel;
-	private Label previewLable;
-
-	private Image image;
-
-	public ImageDialog(Shell parentShell, IFile file) {
-		super(parentShell);
-		this.file = file;
-		if (file != null) {
-			this.project = file.getProject();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
-	 */
-	protected void configureShell(Shell newShell) {
-		super.configureShell(newShell);
-		newShell.setText("Image Dialog");
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#isResizable()
-	 */
-	protected boolean isResizable() {
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#getInitialSize()
-	 */
-	protected Point getInitialSize() {
-		Point point = super.getInitialSize();
-		if (point.y < 343) {
-			point.y = 343;
-		}
-		if (point.x < 440) {
-			point.x = 440;
-		}
-		return point;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createDialogArea(Composite parent) {
-		Composite dialogArea = (Composite) super.createDialogArea(parent);
-		GridLayout layout = (GridLayout) dialogArea.getLayout();
-		layout.numColumns = 2;
-
-		Group leftComp = new Group(dialogArea, SWT.NONE);
-		leftComp.setText("types");
-		layout = new GridLayout(2, false);
-		leftComp.setLayout(layout);
-		leftComp.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		final Button projRadio = new Button(leftComp, SWT.RADIO);
-		projRadio.setText("Project");
-		projRadio.setSelection(true);
-		projRadio.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER));
-		new Label(leftComp, SWT.NONE)/* .setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER | GridData.GRAB_VERTICAL)) */;
-
-		final Button fileRadio = new Button(leftComp, SWT.RADIO);
-		fileRadio.setText("File System");
-		fileRadio.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER));
-		final Button browserButton = new Button(leftComp, SWT.PUSH);
-		browserButton.setText("Browser");
-		// browserButton.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER | GridData.GRAB_VERTICAL));
-		browserButton.setEnabled(false);
-
-		Group previewer = new Group(dialogArea, SWT.NONE);
-		previewer.setText("Preview");
-		previewer.setLayout(new FillLayout());
-		previewLable = new Label(previewer, SWT.CENTER | SWT.SHADOW_IN);
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		// gd.heightHint = 50;
-		// gd.widthHint = 50;
-		// gd.horizontalSpan = 2;
-		previewer.setLayoutData(gd);
-
-		final TreeViewer viewer = new TreeViewer(dialogArea, SWT.BORDER);
-		GridData layoutData = new GridData(GridData.FILL_BOTH);
-		layoutData.horizontalSpan = 2;
-		viewer.getControl().setLayoutData(layoutData);
-		viewer.setContentProvider(new ImageContentProvider());
-		JavaElementLabelProvider labelProvider = new JavaElementLabelProvider() {
-			public String getText(Object element) {
-				// Need a slight override, for source roots, want to show the entire path so that the project shows up.
-				// It doesn't look as good because you can't tell what project the root is in when there are required projects.
-				String result = super.getText(element);
-				if (element instanceof IPackageFragmentRoot)
-					result = MessageFormat.format("{0} - {1}", new Object[] { result, ((IPackageFragmentRoot) element).getJavaProject().getElementName() });
-				return result;
-			}
-		};
-		viewer.setLabelProvider(labelProvider);
-		if (project != null) {
-			viewer.setInput(JavaCore.create(project));
-		}
-		viewer.expandToLevel(2);
-		viewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
-				Object firstElement = selection.getFirstElement();
-				if (firstElement instanceof IFile) {
-					IPath fullPath = ((IFile) firstElement).getLocation();
-					String path = fullPath.toString();
-					if (file != null) {
-						String sourcePath = file.getLocation().toString();
-						path = PathHelper.getRelativePath(sourcePath, path);
-					}
-					setImagePath(path);
-				}
-			}
-		});
-		Listener listener = new Listener() {
-			public void handleEvent(Event event) {
-				setImagePath(null);
-				if (event.widget == projRadio) {
-					viewer.getControl().setEnabled(true);
-					browserButton.setEnabled(false);
-				} else if (event.widget == fileRadio) {
-					viewer.getControl().setEnabled(false);
-					browserButton.setEnabled(true);
-				} else if (event.widget == browserButton) {
-					chooseImage();
-				}
-			}
-		};
-		projRadio.addListener(SWT.Selection, listener);
-		fileRadio.addListener(SWT.Selection, listener);
-		browserButton.addListener(SWT.Selection, listener);
-
-		Composite bottomComp = new Composite(dialogArea, SWT.NONE);
-		layout = new GridLayout(2, false);
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		bottomComp.setLayout(layout);
-		gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalSpan = 2;
-		bottomComp.setLayoutData(gd);
-		new Label(bottomComp, SWT.NONE).setText("Image:");
-		imageLabel = new Label(bottomComp, SWT.NONE);
-		imageLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		return dialogArea;
-	}
-
-	protected void chooseImage() {
-		FileDialog dialog = new FileDialog(getShell());
-		dialog.setFilterExtensions(new String[] { "*.png", "*.gif", "*.*" });
-		setImagePath(dialog.open());
-	}
-
-	private void setImagePath(String imagePath) {
-		this.imagePath = imagePath;
-		if (imagePath != null) {
-			imageLabel.setText(imagePath);
-		} else {
-			imageLabel.setText("");
-		}
-		previewImage(imagePath);
-	}
-
-	private void previewImage(String imagePath) {
-		if (image != null) {
-			image.dispose();
-		}
-		if (imagePath == null) {
-			previewLable.setImage(null);
-		} else {
-			File imageFile = new File(imagePath);
-			if (imageFile.exists()) {
-				image = new Image(null, imageFile.getAbsolutePath());
-			} else if (file != null) {
-				String absolutePath = PathHelper.getAbsolutePath(file.getLocation().toString(), imagePath);
-				imageFile = new File(absolutePath);
-				if (imageFile.exists()) {
-					image = new Image(null, imageFile.getAbsolutePath());
-				}
-			}
-		}
-		if (image != null && !image.isDisposed()) {
-			previewLable.setImage(image);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#close()
-	 */
-	public boolean close() {
-		boolean close = super.close();
-		if (image != null) {
-			image.dispose();
-		}
-		return close;
-	}
-
-	public String getImagePath() {
-		return imagePath;
-	}
-
-	/*
-	 * Content provider for java for our requirements. We extend the standard because it does some important things. We will just fine tune it here.
-	 */
-	private static class ImageContentProvider extends StandardJavaElementContentProvider {
-
-		private boolean validRoot(IPackageFragmentRoot root) {
-			return !root.isExternal() && !root.isArchive();
-		}
-
-		/*
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			// This would be a project, and since it is the root, we want all packageFragmentRoots, including from required projects.
-			try {
-				if (inputElement instanceof IJavaProject) {
-					IPackageFragmentRoot[] roots = ((IJavaProject) inputElement).getAllPackageFragmentRoots();
-					ArrayList<IPackageFragmentRoot> newRoots = new ArrayList<IPackageFragmentRoot>(roots.length);
-					for (int i = 0; i < roots.length; i++) {
-						if (validRoot(roots[i]))
-							newRoots.add(roots[i]);
-					}
-
-					return newRoots.toArray();
-				}
-			} catch (JavaModelException e) {
-			}
-			return StandardJavaElementContentProvider.NO_CHILDREN;
-		}
-
-		/*
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(Object)
-		 */
-		public Object[] getChildren(Object parentElement) {
-			try {
-				// I don't need all types, I'm looking specifically only for package fragment roots. They are the only
-				// element in this environment that can have children.
-				if (parentElement instanceof IPackageFragmentRoot) {
-					return ((IPackageFragmentRoot) parentElement).getChildren(); // Get just the package fragments.
-				} else if (parentElement instanceof IJavaElement) {
-					Object[] children = super.getChildren(parentElement);
-					List<Object> result = new ArrayList<Object>();
-					for (Object child : children) {
-						if (child instanceof IFile) {
-							String ext = ((IFile) child).getFileExtension();
-							if (ext != null && ("png".equals(ext) || "gif".equals(ext))) {
-								result.add(child);
-							}
-						}
-					}
-					return result.toArray(new Object[0]);
-				}
-			} catch (JavaModelException e) {
-			}
-
-			return StandardJavaElementContentProvider.NO_CHILDREN;
-		}
-
-		/*
-		 * @see org.eclipse.jdt.ui.StandardJavaElementContentProvider#hasChildren(Object)
-		 */
-		public boolean hasChildren(Object element) {
-			return super.hasChildren(element);
-		}
-
-		protected Object skipProjectPackageFragmentRoot(IPackageFragmentRoot root) {
-			// We don't want to skip roots that are the project. We don't show the project in
-			// our tree. Because of this we can never programatically select fragments.
-			// So instead we return the root as is.
-			return root;
-		}
-
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/LayoutAssistantWindow.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/LayoutAssistantWindow.java
deleted file mode 100755
index 4a2b516..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/LayoutAssistantWindow.java
+++ /dev/null
@@ -1,377 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.dialogs;
-
-import java.util.Map;
-
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.gef.EditPart;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.swt.custom.StackLayout;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
-import org.eclipse.xwt.tools.ui.designer.layouts.pages.AssistancePageFactory;
-import org.eclipse.xwt.tools.ui.designer.layouts.pages.IAssistantPage;
-import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-
-/**
- * @author rui.ban rui.ban@soyatec.com
- */
-public class LayoutAssistantWindow extends Window {
-
-	public static final String NOLAYOUT_TAB = "Info";
-	public static final String LAYOUT_TAB = "Layout";
-	public static final String PARENTLAYOUT_TAB = "Parent Layout";
-	public static final String LAYOUTDATA_TAB = "Layout Data";
-
-	private EditPart editPart;
-
-	protected CTabFolder tabFolder;
-
-	private CTabItem layoutTab;
-	private CTabItem layoutDataTab;
-
-	protected Composite layoutPage;
-	protected StackLayout layoutPageLayout;
-	protected Composite layoutDataPage;
-	protected StackLayout layoutDataPageLayout;
-
-	protected Composite noLayoutPage;
-	protected Composite noComponentPage;
-
-	private Map<Object, IAssistantPage> pageMaps = AssistancePageFactory.newPages();
-
-	private boolean isClosed;
-	private boolean isOpened;
-
-	/**
-	 * @param parentShell
-	 */
-	public LayoutAssistantWindow(Shell parentShell) {
-		super(parentShell);
-		setShellStyle(SWT.CLOSE | SWT.MODELESS | SWT.BORDER | SWT.TITLE | SWT.RESIZE);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
-	 */
-	protected void configureShell(Shell newShell) {
-		super.configureShell(newShell);
-		newShell.setText("Layout Assistant");
-	}
-
-	/**
-	 * @param editPart
-	 */
-	public void setEditPart(EditPart editPart) {
-		EditPart oldEp = this.editPart;
-		if (editPart != null && editPart != oldEp) {
-			this.editPart = editPart;
-			refresh();
-		}
-	}
-
-	/**
-	 * @see org.eclipse.jface.window.Window#createContents(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createContents(Composite parent) {
-		tabFolder = new CTabFolder(parent, SWT.NONE);
-		tabFolder.setLayoutData(new GridData(GridData.FILL_BOTH));
-		// Create the Layout tab.
-		String tabName = getLayoutTabName();
-		layoutTab = new CTabItem(tabFolder, SWT.NONE);
-		layoutTab.setText(tabName);
-		layoutTab.setToolTipText("layout options");
-
-		layoutPage = new Composite(tabFolder, SWT.NONE);
-		layoutPageLayout = new StackLayout();
-		layoutPage.setLayout(layoutPageLayout);
-		layoutTab.setControl(layoutPage);
-
-		if (tabName.equals(NOLAYOUT_TAB)) {
-			// create info page for model which does not contain any layout attribute.
-			createNoneLayoutPage();
-		} else if (tabName.equals(LAYOUT_TAB)) {
-			// Create layout page for composite or shell and its subclasses.
-			createParentLayoutPage(editPart);
-		} else if (tabName.equals(PARENTLAYOUT_TAB)) {
-			// Create parent layout page and layoutData page for control and its subclasses.
-			createControlLayoutPage();
-		}
-		tabFolder.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				tabFolder = null;
-			}
-		});
-
-		ToolBar toolBar = new ToolBar(tabFolder, SWT.NONE);
-		ToolItem defaultTool = new ToolItem(toolBar, SWT.PUSH);
-		defaultTool.setImage(ImageShop.get(ImageShop.IMG_CLEAR_FILTER));
-		defaultTool.setToolTipText("Clear setting values.");
-		defaultTool.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event event) {
-				performDefault();
-			}
-		});
-		tabFolder.setTopRight(toolBar);
-		tabFolder.setTabHeight(22);
-		Dialog.applyDialogFont(tabFolder);
-		return tabFolder;
-	}
-
-	protected void performDefault() {
-		CTabItem selection = tabFolder.getSelection();
-		if (selection == null) {
-			return;
-		}
-		Control control = null;
-		if (selection == layoutTab) {
-			control = layoutPageLayout.topControl;
-		} else if (selection == layoutDataTab) {
-			control = layoutDataPageLayout.topControl;
-		}
-		if (control != null && control.getData() != null && control.getData() instanceof IAssistantPage) {
-			((IAssistantPage) control.getData()).performDefault();
-		}
-	}
-
-	/**
-	 * create info page for model which does not contain any layout attribute.
-	 */
-	private void createNoneLayoutPage() {
-		if (noLayoutPage == null) {
-			noLayoutPage = new Composite(layoutPage, SWT.NONE);
-			noLayoutPage.setLayout(new GridLayout());
-			Label noLayoutLabel = new Label(noLayoutPage, SWT.WRAP);
-			noLayoutLabel.setText("Selection does not provide any layout assistance.");
-			GridData gd = new GridData();
-			gd.widthHint = 200;
-			noLayoutLabel.setLayoutData(gd);
-		}
-		layoutPageLayout.topControl = noLayoutPage;
-		layoutPage.layout();
-	}
-
-	/**
-	 * Create parent layout page and layoutData page for editpart.
-	 */
-	private void createControlLayoutPage() {
-		EditPart parentEditPart = getParent(editPart);
-		if (parentEditPart != null) {
-			createParentLayoutPage(parentEditPart);
-		}
-		IAssistantPage dataPage = pageMaps.get(LayoutsHelper.getLayoutDataType(editPart));
-		if (dataPage != null) {
-			// Create the layoutData tab if it not created.
-			if (layoutDataTab == null || layoutDataTab.isDisposed()) {
-				createLayoutDataTab();
-			}
-			createPageControl(dataPage, layoutDataPage, layoutDataPageLayout);
-		} else {
-			if (layoutDataTab != null && !layoutDataTab.isDisposed()) {
-				layoutDataTab.setControl(null);
-				layoutDataTab.dispose();
-			}
-		}
-	}
-
-	/**
-	 * Create the layoutData tab.
-	 */
-	private void createLayoutDataTab() {
-		layoutDataTab = new CTabItem(tabFolder, SWT.NONE);
-		layoutDataTab.setText(LAYOUTDATA_TAB);
-		layoutDataTab.setToolTipText("layoutData options");
-
-		if (layoutDataPage == null) {
-			layoutDataPage = new Composite(tabFolder, SWT.NONE);
-			layoutDataPageLayout = new StackLayout();
-			layoutDataPage.setLayout(layoutDataPageLayout);
-		}
-		layoutDataTab.setControl(layoutDataPage);
-	}
-
-	/**
-	 * Create layout page for composite and its subclasses.
-	 */
-	private void createParentLayoutPage(EditPart editPart) {
-		IAssistantPage page = pageMaps.get(LayoutsHelper.getLayoutType(editPart));
-		if (page != null) {
-			createPageControl(page, layoutPage, layoutPageLayout);
-			page.setEditPart(editPart);
-		}
-	}
-
-	private void createPageControl(IAssistantPage assistantPage, Composite parentComposite, StackLayout parentLayout) {
-		Control control = assistantPage.getControl(parentComposite);
-		if (control != null) {
-			parentLayout.topControl = control;
-			parentComposite.layout();
-			assistantPage.setEditPart(editPart);
-
-			// Now resize to handle the new page.
-			Point size = getInitialSize();
-			getShell().setSize(size.x, size.y);
-		}
-	}
-
-	/**
-	 * if model changed refresh this dialog.
-	 */
-	public void refresh() {
-		if (layoutTab == null || layoutTab.isDisposed()) {
-			return;
-		}
-		String tabName = getLayoutTabName();
-		layoutTab.setText(tabName);
-		if (tabName.equals(NOLAYOUT_TAB)) {
-			createNoneLayoutPage();
-		} else if (tabName.equals(LAYOUT_TAB)) {
-			createParentLayoutPage(editPart);
-			if (layoutDataTab != null && !layoutDataTab.isDisposed()) {
-				layoutDataTab.setControl(null);
-				layoutDataTab.dispose();
-			}
-		} else if (tabName.equals(PARENTLAYOUT_TAB)) {
-			createControlLayoutPage();
-		}
-	}
-
-	private String getLayoutTabName() {
-		if (editPart != null) {
-			EditPart parent = getParent(editPart);
-			XamlAttribute layoutAttr = null;
-			if (parent == null) {
-				layoutAttr = getLayoutAttr(editPart.getModel());
-				if (layoutAttr != null) {
-					return LAYOUT_TAB;
-				}
-			} else {
-				layoutAttr = getLayoutAttr(parent.getModel());
-				if (layoutAttr != null) {
-					return PARENTLAYOUT_TAB;
-				}
-			}
-		}
-		return NOLAYOUT_TAB;
-	}
-
-	/**
-	 * Get layout attribute from the element.
-	 * 
-	 * @param model
-	 * @return
-	 */
-	private XamlAttribute getLayoutAttr(Object model) {
-		XamlAttribute attribute = null;
-		if (model instanceof XamlElement) {
-			XamlElement element = (XamlElement) model;
-			attribute = element.getAttribute("layout");
-		}
-		return attribute;
-	}
-
-	private Class<?> getType(EditPart editPart) {
-		if (editPart == null) {
-			return null;
-		}
-		Object model = editPart.getModel();
-		if (model instanceof XamlElement) {
-			XamlElement element = (XamlElement) model;
-			IMetaclass metaclass = XWTUtility.getMetaclass(element);
-			if (metaclass != null) {
-				return metaclass.getType();
-			}
-		}
-		return null;
-	}
-
-	private EditPart getParent(EditPart editPart) {
-		if (editPart != null) {
-			EditPart parent = editPart.getParent();
-			if (parent.getModel() instanceof XamlDocument) {
-				return null;
-			}
-			Class<?> type = getType(parent);
-			if (type == null) {
-				return null;
-			}
-			if (Composite.class.isAssignableFrom(type) || Shell.class.isAssignableFrom(type)) {
-				return parent;
-			}
-			return getParent(parent);
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Window#open()
-	 */
-	public int open() {
-		int open = super.open();
-		isOpened = open == Window.OK;
-		return open;
-	}
-
-	/**
-	 * @see org.eclipse.jface.window.Window#close()
-	 */
-	public boolean close() {
-		isClosed = super.close();
-		if (tabFolder != null) {
-			tabFolder.dispose();
-		}
-		// AssistanceManager.dispose();
-		return isClosed;
-	}
-
-	public boolean isOpened() {
-		return isOpened;
-	}
-
-	public boolean isClosed() {
-		return isClosed;
-	}
-
-	protected Point getInitialSize() {
-		Point initSize = getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
-		// Set it to a minimum. If above size is bigger, great.
-		if (initSize.x < 100)
-			initSize.x = 100;
-		if (initSize.x < 90)
-			initSize.y = 90;
-		return initSize;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/NewHandlerDialog.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/NewHandlerDialog.java
deleted file mode 100755
index 0b27348..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/NewHandlerDialog.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.dialogs;
-
-import org.eclipse.jface.dialogs.TitleAreaDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.xwt.tools.ui.designer.editor.event.EventHandler;
-
-public class NewHandlerDialog extends TitleAreaDialog {
-	private EventHandler eventHandler;
-	private String handlerName;
-
-	public NewHandlerDialog(EventHandler eventHandler, String initialValue) {
-		super(new Shell());
-		this.eventHandler = eventHandler;
-		this.handlerName = initialValue;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
-	 */
-	protected void configureShell(Shell newShell) {
-		super.configureShell(newShell);
-		newShell.setText("New Handler Dialog");
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createDialogArea(Composite parent) {
-		Composite composite = (Composite) super.createDialogArea(parent);
-		Composite control = new Composite(composite, SWT.NONE);
-		control.setLayoutData(new GridData(GridData.FILL_BOTH));
-		control.setLayout(new GridLayout(2, false));
-		Label label = new Label(control, SWT.NONE);
-		label.setText("Handler:");
-
-		final Text text = new Text(control, SWT.BORDER);
-		text.setText(this.handlerName);
-		text.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				handlerName = text.getText();
-				if (handlerName == null) {
-					setErrorMessage("Handler name is null.");
-				} else if (eventHandler.exist(handlerName)) {
-					setErrorMessage("Handler existing for current xwt presentation.");
-				} else {
-					setErrorMessage(null);
-				}
-			}
-		});
-		text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		setTitle("New Event Handler");
-		setMessage("Create a new event handler for current XWT presentation.");
-		return composite;
-	}
-
-	public String getHandlerName() {
-		return handlerName;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/PropertyValueDialog.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/PropertyValueDialog.java
deleted file mode 100755
index ce7bc42..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/PropertyValueDialog.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.dialogs;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.metadata.IProperty;
-import org.eclipse.jface.dialogs.TitleAreaDialog;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.xwt.tools.ui.designer.preference.Preferences;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class PropertyValueDialog extends TitleAreaDialog {
-
-	private IProperty property;
-	private String result;
-	private String initialize;
-
-	public PropertyValueDialog(Shell parentShell, IProperty property, String initializeValue) {
-		super(parentShell);
-		this.property = property;
-		this.initialize = initializeValue;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
-	 */
-	protected void configureShell(Shell newShell) {
-		super.configureShell(newShell);
-		newShell.setText("New Value Dialog");
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createDialogArea(Composite parent) {
-		Composite composite = (Composite) super.createDialogArea(parent);
-		Composite control = new Composite(composite, SWT.NONE);
-
-		control.setLayoutData(new GridData(GridData.FILL_BOTH));
-		control.setLayout(new GridLayout(2, false));
-		Label label = new Label(control, SWT.NONE);
-		if (property != null) {
-			label.setText(property.getName() + ": ");
-		} else {
-			label.setText("New Value: ");
-		}
-
-		final Text text = new Text(control, SWT.BORDER);
-		if (initialize != null) {
-			text.setText(initialize);
-		}
-		text.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				verify(text);
-			}
-		});
-		verify(text);
-		text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		setTitle("Input a New Value.");
-		if (property != null) {
-			setMessage("Give a new value for \"" + property.getName() + "\" property");
-		}
-
-		new Label(control, SWT.NONE);
-		new Label(control, SWT.NONE);
-		new Label(control, SWT.NONE);
-		final Button checkbutton = new Button(control, SWT.CHECK);
-		checkbutton.setText("Do not ask again? You can change this from preference page.");
-		checkbutton.setSelection(false);
-		GridData griddata = new GridData(GridData.FILL_HORIZONTAL);
-		// griddata.horizontalSpan = 2;
-		checkbutton.setLayoutData(griddata);
-		checkbutton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				Preferences.getPreferenceStore().setValue(Preferences.PROMPT_DURING_CREATION, !checkbutton.getSelection());
-			}
-		});
-		return composite;
-	}
-
-	private void verify(Text text) {
-		result = text.getText();
-		boolean validate = true;
-		if (result == null || result.equals("")) {
-			setErrorMessage("Result is empty.");
-			validate = false;
-		} else if (property != null) {
-			Class<?> type = property.getType();
-			// add the filter when the type of property is interger.
-			if (type.isAssignableFrom(int.class)) {
-				if (!isInt(result)) {
-					setErrorMessage("Result is not a validate value,please input a interger.");
-					validate = false;
-				}
-			}
-			if (!type.isAssignableFrom(result.getClass())) {
-				IConverter c = XWT.findConvertor(String.class, type);
-				if (c == null) {
-					setErrorMessage("This resilt is not applicable for the arguments (" + type.getSimpleName() + ")");
-					validate = false;
-				} else {
-					Object newValue = c.convert(result);
-					if (newValue == null) {
-						setErrorMessage("This resilt is not applicable for the arguments (" + type.getSimpleName() + ")");
-						validate = false;
-					}
-				}
-			}
-		}
-		if (validate) {
-			setErrorMessage(null);
-			setFinished(true);
-		} else {
-			setFinished(false);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#createButtonsForButtonBar(org.eclipse.swt.widgets.Composite)
-	 */
-	protected void createButtonsForButtonBar(Composite parent) {
-		super.createButtonsForButtonBar(parent);
-		setFinished(initialize != null);
-	}
-
-	public String getResult() {
-		return result;
-	}
-
-	public void setFinished(boolean flag) {
-		Button okButton = getButton(Window.OK);
-		if (okButton != null) {
-			okButton.setEnabled(flag);
-		}
-	}
-
-	public Boolean isInt(String s) {
-		return s.matches("^[0-9]+$");
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/TextValueDialog.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/TextValueDialog.java
deleted file mode 100755
index 7e9bd35..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/TextValueDialog.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.dialogs;
-
-import org.eclipse.jface.dialogs.TitleAreaDialog;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class TextValueDialog extends TitleAreaDialog {
-
-	private String oldValue;
-	private String newValue;
-
-	/**
-	 * @param parentShell
-	 */
-	public TextValueDialog(Shell parentShell, String oldValue) {
-		super(parentShell);
-		this.oldValue = oldValue;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createDialogArea(Composite parent) {
-		Composite composite = (Composite) super.createDialogArea(parent);
-		Composite control = new Composite(composite, SWT.NONE);
-		control.setLayoutData(new GridData(GridData.FILL_BOTH));
-		control.setLayout(new GridLayout(2, false));
-		Label label = new Label(control, SWT.NONE);
-		label.setText("Text:");
-
-		final Text text = new Text(control, SWT.BORDER);
-		if (oldValue != null) {
-			text.setText(oldValue);
-		}
-		text.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				newValue = text.getText();
-				if (newValue == null || newValue.equals("")) {
-					setErrorMessage("Text input is empty.");
-					setButtonVisuble(false);
-				} else if (newValue.equals(oldValue)) {
-					setErrorMessage("Text input is equals the old one.");
-				} else {
-					setErrorMessage(null);
-					getButton(Window.OK).setEnabled(true);
-				}
-
-			}
-		});
-		newValue = text.getText();
-		text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		return composite;
-	}
-
-	public String getNewValue() {
-		return newValue;
-	}
-
-	public void setButtonVisuble(boolean flag) {
-		getButton(Window.OK).setEnabled(flag);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTDesigner.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTDesigner.java
deleted file mode 100755
index 2b5b957..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTDesigner.java
+++ /dev/null
@@ -1,405 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.xwt.XWTLoaderManager;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gef.ContextMenuProvider;
-import org.eclipse.gef.EditPartFactory;
-import org.eclipse.gef.EditPartViewer;
-import org.eclipse.gef.GraphicalViewer;
-import org.eclipse.gef.SnapToGeometry;
-import org.eclipse.gef.ui.actions.ActionRegistry;
-import org.eclipse.gef.ui.parts.TreeViewer;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.internal.ui.JavaPluginImages;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-import org.eclipse.xwt.tools.ui.designer.core.editor.Designer;
-import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
-import org.eclipse.xwt.tools.ui.designer.core.editor.IVisualRenderer;
-import org.eclipse.xwt.tools.ui.designer.core.editor.dnd.DropContext;
-import org.eclipse.xwt.tools.ui.designer.core.editor.outline.DesignerOutlinePage;
-import org.eclipse.xwt.tools.ui.designer.core.model.IModelBuilder;
-import org.eclipse.xwt.tools.ui.designer.editor.actions.BindingLayerAction;
-import org.eclipse.xwt.tools.ui.designer.editor.actions.ChangeTextAction;
-import org.eclipse.xwt.tools.ui.designer.editor.actions.CopyElementAction;
-import org.eclipse.xwt.tools.ui.designer.editor.actions.CutElementAction;
-import org.eclipse.xwt.tools.ui.designer.editor.actions.LayoutAssistantAction;
-import org.eclipse.xwt.tools.ui.designer.editor.actions.OpenBindingDialogAction;
-import org.eclipse.xwt.tools.ui.designer.editor.actions.OpenExternalizeStringsAction;
-import org.eclipse.xwt.tools.ui.designer.editor.actions.PasteElementAction;
-import org.eclipse.xwt.tools.ui.designer.editor.actions.PreviewAction;
-import org.eclipse.xwt.tools.ui.designer.editor.actions.SurroundWithAction;
-import org.eclipse.xwt.tools.ui.designer.editor.dnd.XWTDropContext;
-import org.eclipse.xwt.tools.ui.designer.editor.dnd.XWTGraphicalViewerDropListener;
-import org.eclipse.xwt.tools.ui.designer.editor.event.EventHandler;
-import org.eclipse.xwt.tools.ui.designer.editor.model.XWTModelBuilder;
-import org.eclipse.xwt.tools.ui.designer.editor.outline.TreeEditPartFactory;
-import org.eclipse.xwt.tools.ui.designer.loader.XWTVisualLoader;
-import org.eclipse.xwt.tools.ui.designer.parts.XWTEditPartFactory;
-import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-import org.eclipse.xwt.ui.XWTPerspectiveFactory;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-@SuppressWarnings("restriction")
-public class XWTDesigner extends Designer implements
-		ITabbedPropertySheetPageContributor {
-
-	public static final String EDITOR_ID = "org.eclipse.xwt.tools.ui.designer.XWTDesigner";
-
-	private XWTJavaEditor javaEditor;
-	private EventHandler eventHandler;
-	private ToolItem generateTool;
-	private XWTVisualLoader xwtLoader;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.EditorPart#setInput(org.eclipse.ui.IEditorInput)
-	 */
-	protected void setInput(IEditorInput input) {
-		super.setInput(input);
-		// Initialize to setup an active IXWTLoader.
-		IFile inputFile = getFile();
-		if (inputFile != null) {
-			xwtLoader = new XWTVisualLoader(inputFile);
-			XWTLoaderManager.setActive(xwtLoader, true);
-		}
-	}
-
-	@Override
-	public void init(IEditorSite site, IEditorInput input)
-			throws PartInitException {
-		super.init(site, input);
-		EditDomain domain = getEditDomain();
-		domain.setDefaultTool(new XWTSelectionTool());
-		domain.loadDefaultTool();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.tools.designer.editor.Designer#dispose()
-	 */
-	public void dispose() {
-		super.dispose();
-		// Dispose the active IXWTLoader.
-		if (xwtLoader != null) {
-			XWTLoaderManager.setActive(xwtLoader, false);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.tools.designer.editor.XAMLDesigner#initializeActions()
-	 */
-	protected void createActions() {
-		super.createActions();
-		ActionRegistry registry = getActionRegistry();
-		IAction action;
-		action = new CopyElementAction(this);
-		registry.registerAction(action);
-		action = new PasteElementAction(this);
-		registry.registerAction(action);
-		action = new CutElementAction(this);
-		registry.registerAction(action);
-
-		action = new PreviewAction(this);
-		registry.registerAction(action);
-
-		action = new ChangeTextAction(this);
-		registry.registerAction(action);
-
-		action = new LayoutAssistantAction(this);
-		registry.registerAction(action);
-
-		action = new OpenBindingDialogAction(this);
-		registry.registerAction(action);
-
-		action = new BindingLayerAction(this);
-		registry.registerAction(action);
-
-		// add by xrchen 2009/9/22
-		action = new OpenExternalizeStringsAction(this);
-		registry.registerAction(action);
-
-		action = new SurroundWithAction(this);
-		registry.registerAction(action);
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.tools.designer.editor.Designer#createModelBuilder()
-	 */
-	protected IModelBuilder createModelBuilder() {
-		return new XWTModelBuilder();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.soyatec.tools.designer.editor.XAMLDesigner#setupGraphicalViewer()
-	 */
-	protected void setupGraphicalViewer() {
-		((XWTEditPartFactory) getEditPartFactory())
-				.setVisualFactory(getVisualsRender());
-		super.setupGraphicalViewer();
-		setupJavaEditor();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.soyatec.tools.designer.editor.Designer#configureGraphicalViewer()
-	 */
-	protected void configureGraphicalViewer() {
-		super.configureGraphicalViewer();
-		getGraphicalViewer().setProperty(SnapToGeometry.PROPERTY_SNAP_ENABLED,
-				true);
-	}
-
-	protected void setupGraphicalViewerDropCreation(GraphicalViewer viewer) {
-		viewer.addDropTargetListener(new XWTGraphicalViewerDropListener(viewer));
-	}
-
-	/**
-	 * Setup JavaEditor.
-	 */
-	private void setupJavaEditor() {
-		String hostClassName = getVisualsRender().getHostClassName();
-		if (hostClassName != null && javaEditor == null) {
-			javaEditor = new XWTJavaEditor(getJavaProject(), hostClassName);
-			IType type = javaEditor.getType();
-			if (type != null) {
-				try {
-					int javaPageIndex = addPage(javaEditor, javaEditor
-							.getEditorInput());
-					setPageText(javaPageIndex, "Java");
-					setPageImage(javaPageIndex, JavaPluginImages
-							.get(JavaPluginImages.IMG_OBJS_CLASS));
-					eventHandler = new EventHandler(this, type);
-
-					if (generateTool != null && !generateTool.isDisposed()) {
-						generateTool.setEnabled(true);
-					}
-				} catch (PartInitException e) {
-					e.printStackTrace();
-				}
-			}
-		}
-	}
-
-	public EventHandler getEventHandler() {
-		return eventHandler;
-	}
-
-	protected IJavaProject getJavaProject() {
-		IFile file = (IFile) getEditorInput().getAdapter(IFile.class);
-		IJavaProject javaProject = JavaCore.create(file.getProject());
-		if (!javaProject.exists()) {
-			return null;
-		}
-		return javaProject;
-	}
-
-	protected ToolBar createToolBar(Composite parent) {
-		ToolBar toolbar = new ToolBar(parent, SWT.FLAT);
-		final ToolBarManager toolBarManager = new ToolBarManager(toolbar);
-		toolBarManager.add(getActionRegistry().getAction(
-				ActionFactory.COPY.getId()));
-		toolBarManager.add(getActionRegistry().getAction(
-				ActionFactory.PASTE.getId()));
-		toolBarManager.add(getActionRegistry().getAction(
-				ActionFactory.CUT.getId()));
-		toolBarManager.add(getActionRegistry().getAction(
-				ActionFactory.DELETE.getId()));
-		toolBarManager.add(new Separator());
-		toolBarManager.add(getActionRegistry().getAction(
-				PreviewAction.ACTION_ID));
-		toolBarManager.add(new Separator());
-		toolBarManager.add(getActionRegistry().getAction(
-				LayoutAssistantAction.ID));
-		toolBarManager.add(new Separator());
-		toolBarManager.add(getActionRegistry().getAction(
-				OpenBindingDialogAction.ID));
-		toolBarManager.update(true);
-		toolbar.pack();
-
-		return toolbar;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.soyatec.tools.designer.editor.XAMLDesigner#configureContainerToolBar
-	 * (org.eclipse.swt.widgets.ToolBar)
-	 */
-	protected void configureContainerToolBar(ToolBar toolBar) {
-		ToolItem previewTool = new ToolItem(toolBar, SWT.PUSH);
-		previewTool.setImage(ImageShop.get(ImageShop.IMG_PREVIEW));
-		previewTool.setToolTipText("Preview");
-		previewTool.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event event) {
-				new PreviewAction(XWTDesigner.this).run();
-			}
-		});
-
-		generateTool = new ToolItem(toolBar, SWT.PUSH);
-		generateTool.setImage(JavaPluginImages
-				.get(JavaPluginImages.IMG_OBJS_CLASS));
-		generateTool.setToolTipText("Create event handlers");
-		generateTool.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event event) {
-				if (eventHandler != null) {
-					eventHandler.createHandlers();
-				}
-			}
-		});
-		generateTool.setEnabled(false);
-	}
-
-	protected ContextMenuProvider createMenuProvider(EditPartViewer viewer,
-			ActionRegistry actionRegistry) {
-		return new XWTDesignerMenuProvider(viewer, actionRegistry, this);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.core.editor.Designer#
-	 * createEditPartFactory()
-	 */
-	protected EditPartFactory createEditPartFactory() {
-		return new XWTEditPartFactory();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.tools.designer.editor.XAMLDesigner#createOutlinePage()
-	 */
-	protected DesignerOutlinePage createOutlinePage() {
-		DesignerOutlinePage designerOutlinePage = new DesignerOutlinePage(
-				getEditDomain(), new TreeEditPartFactory());
-		TreeViewer treeViewer = designerOutlinePage.getTreeViewer();
-		ContextMenuProvider outlineMenu = createMenuProvider(treeViewer,
-				getActionRegistry());
-		if (outlineMenu != null) {
-			treeViewer.setContextMenu(outlineMenu);
-		}
-		return designerOutlinePage;
-	}
-
-	protected void setContent(EObject diagram) {
-		super.setContent(diagram);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.tools.designer.editor.XAMLDesigner#getDropContext()
-	 */
-	protected DropContext getDropContext() {
-		return new XWTDropContext();
-	}
-
-	/**
-	 * Open a special perspective.
-	 */
-	public void openPerspective() {
-		IWorkbench workbench = PlatformUI.getWorkbench();
-		int count = workbench.getWorkbenchWindowCount();
-		if (count == 0) {
-			return;
-		}
-		IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
-		if (window == null) {
-			window = workbench.getWorkbenchWindows()[0];
-		}
-		IPerspectiveDescriptor pers = workbench
-				.getPerspectiveRegistry()
-				.findPerspectiveWithId(XWTPerspectiveFactory.XWT_PERSPECTIVE_ID);
-		if (pers == null) {
-			return;
-		}
-		try {
-			workbench.showPerspective(XWTPerspectiveFactory.XWT_PERSPECTIVE_ID,
-					window);
-		} catch (WorkbenchException e) {
-			e.printStackTrace();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.tools.designer.editor.XAMLDesigner#createPropertyPage()
-	 */
-	protected IPropertySheetPage createPropertyPage() {
-		TabbedPropertySheetPage propertyPage = new TabbedPropertySheetPage(this);
-		// propertyPage.setPropertySourceProvider(new
-		// XWTPropertySourceProvider(getEditDomain(), propertyPage));
-		return propertyPage;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.tools.designer.editor.XAMLDesigner#createVisualsRender()
-	 */
-	protected IVisualRenderer createVisualsRender() {
-		return new XWTVisualRenderer(getFile(),
-				(XamlDocument) getDocumentRoot());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor
-	 * #getContributorId()
-	 */
-	public String getContributorId() {
-		return getSite().getId();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTDesignerMenuProvider.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTDesignerMenuProvider.java
deleted file mode 100755
index b1eab65..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTDesignerMenuProvider.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor;
-
-import java.util.List;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartViewer;
-import org.eclipse.gef.ui.actions.ActionRegistry;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.xwt.tools.ui.designer.core.editor.DesignerActionConstants;
-import org.eclipse.xwt.tools.ui.designer.core.editor.DesignerMenuProvider;
-import org.eclipse.xwt.tools.ui.designer.editor.actions.ChangeTextAction;
-import org.eclipse.xwt.tools.ui.designer.editor.actions.LayoutAssistantAction;
-import org.eclipse.xwt.tools.ui.designer.editor.actions.OpenBindingDialogAction;
-import org.eclipse.xwt.tools.ui.designer.editor.actions.OpenExternalizeStringsAction;
-import org.eclipse.xwt.tools.ui.designer.editor.actions.PreviewAction;
-import org.eclipse.xwt.tools.ui.designer.editor.actions.StyleAction;
-import org.eclipse.xwt.tools.ui.designer.editor.actions.SurroundWithAction;
-import org.eclipse.xwt.tools.ui.designer.editor.menus.EventMenuManager;
-import org.eclipse.xwt.tools.ui.designer.editor.menus.LayoutMenuManager;
-import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class XWTDesignerMenuProvider extends DesignerMenuProvider {
-
-	private static final String BINDINGS = "Bindings";
-
-	private static final String EXTERNALIZE = "Externalize"; // add by xrchen
-																// 2009/9/22
-
-	private XWTDesigner designer;
-
-	public XWTDesignerMenuProvider(EditPartViewer viewer,
-			ActionRegistry actionRegistry, XWTDesigner designer) {
-		super(viewer, actionRegistry);
-		this.designer = designer;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.ContextMenuProvider#menuAboutToShow(org.eclipse.jface
-	 * .action.IMenuManager)
-	 */
-	public void menuAboutToShow(IMenuManager menu) {
-		menu.add(new Separator(DesignerActionConstants.UNDO));
-		menu.add(new Separator(DesignerActionConstants.DELETE));
-		menu.add(new Separator(DesignerActionConstants.PRINT));
-		menu.add(new Separator(DesignerActionConstants.COPY));
-		menu.add(new Separator(DesignerActionConstants.EDIT));
-		menu.add(new Separator(BINDINGS));
-		menu.add(new Separator(EXTERNALIZE)); // add by xrchen 2009/9/22
-		menu.add(new Separator(DesignerActionConstants.ADDITIONS));
-		super.menuAboutToShow(menu);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.soyatec.xaml.ve.editor.EditorMenuProvider#buildContextMenu(org.eclipse
-	 * .jface.action.IMenuManager)
-	 */
-	public void buildContextMenu(IMenuManager menu) {
-		super.buildContextMenu(menu);
-		ActionRegistry actionRegistry = getActionRegistry();
-		// menu.appendToGroup(BINDINGS,
-		// actionRegistry.getAction(BindingLayerAction.ID));
-		List<?> selectedEditParts = getViewer().getSelectedEditParts();
-		if (selectedEditParts == null || selectedEditParts.isEmpty()) {
-			// Diagram directly...
-		} else {
-			if (selectedEditParts.size() == 1) {
-				menu.appendToGroup(DesignerActionConstants.PRINT,
-						actionRegistry.getAction(PreviewAction.ACTION_ID));
-
-				EditPart editPart = (EditPart) selectedEditParts.get(0);
-				if (designer.getEventHandler() != null) {
-					EventMenuManager eventPopMenu = new EventMenuManager(
-							editPart, designer);
-					menu.add(eventPopMenu);
-					menu.add(new Separator());
-				}
-				LayoutMenuManager layoutPopMenu = new LayoutMenuManager(
-						editPart, "Set Layout");
-				menu.appendToGroup(DesignerActionConstants.EDIT, actionRegistry
-						.getAction(ChangeTextAction.ID));
-				menu.add(layoutPopMenu);
-
-				menu.add(actionRegistry.getAction(LayoutAssistantAction.ID));
-
-				// menu.appendToGroup(BINDINGS, new
-				// BindingsMenuManager(editPart));
-				menu.appendToGroup(BINDINGS, actionRegistry
-						.getAction(OpenBindingDialogAction.ID));
-
-				if (editPart instanceof WidgetEditPart) {
-					menu.appendToGroup(DesignerActionConstants.EDIT,
-							new StyleAction((WidgetEditPart) editPart));
-				}
-				// Single selection...
-			} else {
-				// Multi-Selection.
-			}
-			menu.appendToGroup(DesignerActionConstants.ADDITIONS,
-					actionRegistry.getAction(SurroundWithAction.ID));
-		}
-		// add by xrchen 2009/9/22
-		menu.appendToGroup(EXTERNALIZE, actionRegistry
-				.getAction(OpenExternalizeStringsAction.ID));
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTJavaEditor.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTJavaEditor.java
deleted file mode 100755
index afa91b8..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTJavaEditor.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.part.FileEditorInput;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class XWTJavaEditor extends CompilationUnitEditor {
-	private IJavaProject javaProject;
-	private String hostClassName;
-	private IType type;
-	private IEditorInput javaEditorInput;
-
-	public XWTJavaEditor(IJavaProject javaProject, String hostClassName) {
-		this.javaProject = javaProject;
-		this.hostClassName = hostClassName;
-		configureJavaEditor();
-	}
-
-	/**
-	 * setup editorinput.
-	 */
-	private void configureJavaEditor() {
-		try {
-			type = javaProject.findType(hostClassName);
-			if (type == null || !type.exists()) {
-				return;
-			}
-			IFile javaFile = (IFile) type.getResource();
-			this.javaEditorInput = new FileEditorInput(javaFile);
-		} catch (JavaModelException e) {
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.EditorPart#getEditorInput()
-	 */
-	public IEditorInput getEditorInput() {
-		IEditorInput editorInput = super.getEditorInput();
-		if (editorInput == null) {
-			return javaEditorInput;
-		}
-		return editorInput;
-	}
-
-	public IType getType() {
-		return type;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTSelectionTool.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTSelectionTool.java
deleted file mode 100755
index c548048..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTSelectionTool.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.tools.SelectionTool;
-import org.eclipse.xwt.tools.ui.designer.parts.SashEditPart;
-
-public class XWTSelectionTool extends SelectionTool {
-
-	public XWTSelectionTool() {
-	}
-
-	@Override
-	protected boolean updateTargetUnderMouse() {
-		EditPart editPart = getTargetEditPart();
-		if (editPart == null) {
-			setDefaultCursor(null);
-			return super.updateTargetUnderMouse();
-		}
-		if (editPart instanceof SashEditPart) {
-			SashEditPart sashEditPart = (SashEditPart) editPart;
-			setDefaultCursor(sashEditPart.getDefaultCursor());
-		}
-		else {
-			setDefaultCursor(null);
-		}
-		return super.updateTargetUnderMouse();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTVisualRenderer.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTVisualRenderer.java
deleted file mode 100755
index dd8f5ce..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTVisualRenderer.java
+++ /dev/null
@@ -1,461 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor;
-
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Sash;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.tools.ui.designer.core.editor.AbstractRenderer;
-import org.eclipse.xwt.tools.ui.designer.core.util.SashUtil;
-import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author bo.zhou
- * @author jliu
- */
-public class XWTVisualRenderer extends AbstractRenderer {
-	private final XWTProxy proxy;
-
-	public XWTVisualRenderer(IFile file, XamlDocument document) {
-		super(file, document);
-		if (document == null) {
-			throw new RuntimeException("XamlDocument is null");
-		}
-
-		document.eAdapters().add(new AdapterImpl() {
-			public void notifyChanged(Notification msg) {
-				recreate();
-			}
-		});
-		proxy = new XWTProxy(file);
-	}
-
-	public Object getVisual(EObject model, boolean loadOnDemand) {
-		return proxy.getComponent(model, loadOnDemand);
-	}
-
-	public Object getVisual(EObject model) {
-		return proxy.getComponent((XamlNode) model);
-	}
-
-	/**
-	 * @see org.eclipse.emf.common.notify.impl.AdapterImpl#notifyChanged(org.eclipse.emf.common.notify.Notification)
-	 */
-	public Result updateControls(Notification msg) {
-		if (proxy.isDisposed() || msg.isTouch()) {
-			return null;
-		}
-		Object notifier = msg.getNotifier();
-		Object oldValue = msg.getOldValue();
-		Object newValue = msg.getNewValue();
-
-		if (notifier == null || (oldValue == null && newValue == null)) {
-			return null;
-		}
-		if ((oldValue != null && oldValue != newValue)
-				|| (oldValue == null && newValue != null)) {
-			return applyNewValue(msg);
-		}
-		return null;
-	}
-
-	private boolean canRender(XamlNode node) {
-		if (node == null) {
-			return false;
-		}
-		String name = node.getName();
-		if (IConstants.XWT_X_NAMESPACE.equals(node.getNamespace())) {
-			return false;
-		}
-		try {
-			IMetaclass metaclass = XWT.getMetaclass(Character.toUpperCase(name
-					.charAt(0))
-					+ name.substring(1), node.getNamespace());
-			if (metaclass == null) {
-				return false;
-			}
-			Class<?> type = metaclass.getType();
-			return Widget.class.isAssignableFrom(type)
-					|| Viewer.class.isAssignableFrom(type);
-		} catch (Exception e) {
-			return false;
-		}
-	}
-
-	/**
-	 * Update controls from model.
-	 */
-	private Result applyNewValue(Notification msg) {
-
-		// For building Result.
-		boolean updated = false;
-		XamlElement updateObj = null;
-
-		Object notifier = msg.getNotifier();
-		Object newValue = msg.getNewValue();
-		Object oldValue = msg.getOldValue();
-
-		if (notifier instanceof XamlDocument && newValue instanceof XamlElement) {
-			proxy.doCreate((XamlElement) newValue);
-			return new Result(notifier, true);
-		}
-
-		EObject notifyEObject = (EObject) notifier;
-		Object parent = proxy.getComponent(notifyEObject);
-		while (parent == null) {
-			notifier = notifyEObject;
-			notifyEObject = notifyEObject.eContainer();
-			if (notifyEObject == null) {
-				break;
-			}
-			parent = proxy.getComponent(notifyEObject);
-		}
-		
-		if (notifyEObject != null && notifyEObject instanceof XamlElement) {
-			updateObj = (XamlElement) notifyEObject;
-		}
-		switch (msg.getEventType()) {
-		case Notification.ADD:
-			if (proxy.isNull(parent)) {
-				break;
-			}
-			// in case of SashFrom 
-			if (parent instanceof SashForm) {
-				XamlAttribute attribute = updateObj.getAttribute("weights", IConstants.XWT_NAMESPACE);
-				if (attribute != null) {
-					String value = attribute.getValue();
-					if (value != null && value.length() > 0 ) {
-						int[] segments = SashUtil.toWeights(value);
-						
-						SashForm sashForm = (SashForm) parent;
-						Control[] children = sashForm.getChildren();
-						int c = 0;
-						for (int i = 0; i < children.length; i++) {
-							if (children[i] instanceof Sash) {
-								c++;
-							}
-						}
-						if (children.length > 0) {
-							c++;
-						}
-						if (c != segments.length) {
-							value = SashUtil.updateWeightsLengh(segments, c);
-							attribute.setValue(value);
-						}
-					}
-				}
-			}
-			
-			if (newValue instanceof XamlElement && parent != null
-					&& canRender((XamlElement) newValue)) {
-				if (parent instanceof Widget) {
-					updated = proxy.recreate((Widget) parent);
-					updateObj = null;// If updated, we can refresh all visuals.
-				}
-			} else if (notifier instanceof XamlAttribute) {
-				XamlAttribute attribute = (XamlAttribute) notifier;
-				updated = applyAttribute(parent, updateObj, attribute);
-			} else if (newValue instanceof XamlAttribute) {
-				XamlAttribute attribute = (XamlAttribute) newValue;
-				updated = applyAttribute(parent, updateObj, attribute);
-			}
-			break;
-		case Notification.SET:
-		case Notification.UNSET:
-			if (proxy.isNull(parent)) {
-				break;
-			}
-			if (notifier instanceof XamlAttribute) {
-				XamlAttribute attribute = (XamlAttribute) notifier;
-				updated = applyAttribute(parent, updateObj, attribute);
-				if (updateObj != null && parent instanceof Item) {
-					EObject eContainer = updateObj.eContainer();
-					if (eContainer != null && eContainer instanceof XamlElement) {
-						updateObj = (XamlElement) eContainer;
-					}
-				}
-			}
-			break;
-		case Notification.REMOVE:
-			if (oldValue instanceof XamlElement) {
-				Object removeWidget = getVisual((XamlElement) oldValue);
-				
-				// in case of SashFrom 
-				if (parent instanceof SashForm) {
-					XamlAttribute attribute = updateObj.getAttribute("weights", IConstants.XWT_NAMESPACE);
-					if (attribute != null) {
-						String value = attribute.getValue();
-						if (value != null && value.length() > 0 ) {
-							SashForm sashForm = (SashForm) parent;
-							Control[] children = sashForm.getChildren();
-							int index = 0;
-							int c = 0;
-							
-							for (int i = 0; i < children.length; i++) {
-								if (removeWidget == children[i]) {
-									index = c;
-								}
-								if (children[i] instanceof Sash) {
-									c++;
-								}
-							}
-							if (children.length > 0) {
-								c++;
-							}
-
-							if (c <= 2) {
-								updateObj.getAttributes().remove(attribute);
-							}
-							else {
-								value = SashUtil.removeWeights(value, index);
-								attribute.setValue(value);
-							}
-						}
-					}
-				}
-
-				if (removeWidget != null) {
-					updated = proxy.destroy(removeWidget);
-				}
-				if (parent instanceof Composite) {
-					IMetaclass metaclass = XWTUtility
-							.getMetaclass((XamlElement) oldValue);
-					if (metaclass != null
-							&& Layout.class.isAssignableFrom(metaclass
-									.getType())) {
-						updated = proxy.removeLayout((Composite) parent);
-					}
-					proxy.layout((Composite) parent);
-				}
-			} else if (notifier instanceof XamlAttribute) {
-				XamlAttribute attribute = (XamlAttribute) notifier;
-				updated = applyAttribute(parent, updateObj, attribute);
-			} else if (oldValue instanceof XamlAttribute) {
-				XamlAttribute attribute = (XamlAttribute) oldValue;
-				updated = removeAttribute(parent, updateObj, attribute);
-			}
-			break;
-		case Notification.MOVE: {
-			if (proxy.isNull(parent)) {
-				break;
-			}
-			if (parent instanceof Widget) {
-				updated = proxy.recreate((Widget) parent);
-				updateObj = null;// If updated, we can refresh all visuals.
-			}
-			if (parent instanceof Composite) {
-				proxy.layout((Composite) parent);
-			}
-			break;
-		}
-		case Notification.ADD_MANY: {
-			// TODO:add many:
-		}
-		case Notification.REMOVE_MANY: {
-			List<?> removed = (List<?>) oldValue;
-			for (Object object : removed) {
-				if (object instanceof XamlElement) {
-					Object widget = getVisual((XamlElement) object);
-					proxy.destroy(widget);
-					updated = true;
-				}
-			}
-			if (parent != null && parent instanceof Composite) {
-				proxy.layout((Composite) parent);
-			}
-		}
-		}
-		return new Result(updateObj, updated);
-	}
-
-	private boolean applyAttribute(Object parent, XamlElement element,
-			XamlAttribute attribute) {
-		if (proxy.isNull(parent) || attribute == null) {
-			return false;
-		}
-		if ("style".equalsIgnoreCase(attribute.getName())
-				&& IConstants.XWT_X_NAMESPACE.equals(attribute.getNamespace())) {
-			if (needRecreate(parent, attribute)) {
-				return proxy.recreate((Widget) parent);
-			}
-			return false;
-		} else {
-			boolean updated = proxy.initAttribute(parent, attribute);
-			if (element != null && parent instanceof Item) {
-				EObject eContainer = element.eContainer();
-				if (eContainer != null && eContainer instanceof XamlElement) {
-					element = (XamlElement) eContainer;
-					if (proxy.getComponent(element) instanceof Control) {
-						Control control = (Control) proxy.getComponent(element);
-						proxy.layout(control);
-					}
-				}
-			}// if the parent is Item,it must get the parent of this item and
-				// layout his parent
-			if (parent instanceof Control) {
-				Control control = (Control) parent;
-				proxy.layout(control);
-			}
-			return updated;
-		}
-	}
-
-	private boolean needRecreate(Object parent, XamlAttribute attr) {
-		if (parent == null || !(parent instanceof Widget) || attr == null) {
-			return false;
-		}
-		Widget widget = (Widget) parent;
-		int oldStyle = widget.getStyle();
-		String newStyleStr = attr.getValue();
-		int newStyle = (Integer) XWT.convertFrom(Integer.class, newStyleStr);
-		return newStyle != oldStyle;
-		// if (newStyleStr != null) {
-		// if (newStyle == SWT.NONE) {
-		// if ("SWT.NONE".equalsIgnoreCase(newStyleStr) ||
-		// "NONE".equalsIgnoreCase(newStyleStr) ||
-		// "0".equals(newStyleStr.trim())) {
-		// Object defaultStyle = proxy.getDefaultValue(parent, attr);
-		// return defaultStyle != null && defaultStyle instanceof Integer &&
-		// ((newStyle | (Integer) defaultStyle) != oldStyle);
-		// }
-		// return false;
-		// } else {
-		// List<String> styles = new ArrayList<String>();
-		// StringTokenizer stk = new StringTokenizer(newStyleStr, "|");
-		// while (stk.hasMoreElements()) {
-		// styles.add(stk.nextToken());
-		// }
-		// boolean result = false;
-		// for (String aStyle : styles) {
-		// newStyle = (Integer) XWT.convertFrom(Integer.class, aStyle);
-		// if (newStyle == SWT.NONE &&
-		// (!("SWT.NONE".equalsIgnoreCase(newStyleStr) ||
-		// !"NONE".equalsIgnoreCase(newStyleStr) ||
-		// !"0".equals(newStyleStr.trim())))) {
-		// return false;
-		// }
-		// result |= (oldStyle & newStyle) == 0;
-		// }
-		// return result;
-		// }
-		// }
-		// return false;
-	}
-
-	private boolean removeAttribute(Object parent, XamlElement element,
-			XamlAttribute attribute) {
-		if (proxy.isNull(parent) || attribute == null) {
-			return false;
-		}
-
-		if ("style".equalsIgnoreCase(attribute.getName())
-				&& IConstants.XWT_X_NAMESPACE.equals(attribute.getNamespace())) {
-			Object defaultValue = proxy.getDefaultValue(parent, attribute);
-			if (defaultValue != null && defaultValue instanceof Integer) {
-				int oldStyle = (Integer) XWT.convertFrom(Integer.class,
-						attribute.getValue());
-				if ((oldStyle & (Integer) defaultValue) == 0) {
-					return proxy.recreate((Widget) parent);
-				}
-			}
-			return false;
-		} else {
-			boolean updated = proxy.removeValue(parent, attribute);
-			if (parent instanceof Control) {
-				Control control = (Control) parent;
-				proxy.layout(control);
-			}
-			return updated;
-		}
-	}
-
-	public void dispose() {
-		proxy.dispose();
-	}
-
-	public String getHostClassName() {
-		String clr = proxy.getClr();
-		XamlDocument documentRoot = (XamlDocument) getDocumentRoot();
-		if (clr == null && documentRoot != null) {
-			XamlElement root = documentRoot.getRootElement();
-			XamlAttribute attribute = root.getAttribute(
-					IConstants.XAML_X_CLASS, IConstants.XWT_X_NAMESPACE);
-			if (attribute != null) {
-				return attribute.getValue();
-			}
-		}
-		return clr;
-	}
-
-	/**
-	 * Recreate all controls.
-	 */
-	public void recreate() {
-		if (getDocumentRoot() == null) {
-			return;
-		}
-		proxy.reset();
-		createVisuals();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.soyatec.tools.designer.editor.render.IVisualsRender#createVisuals()
-	 */
-	public Result createVisuals() {
-		return new Result(proxy.load((XamlDocument) getDocumentRoot()));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.soyatec.tools.designer.editor.render.IVisualsRender#refreshVisuals
-	 * (java.lang.Object)
-	 */
-	public Result refreshVisuals(Object source) {
-		if (source instanceof Notification) {
-			return updateControls((Notification) source);
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.tools.designer.editor.render.IVisualsRender#getRoot()
-	 */
-	public Object getRoot() {
-		return proxy.getRoot();
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/AbstractDropDownAction.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/AbstractDropDownAction.java
deleted file mode 100755
index 471b271..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/AbstractDropDownAction.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.actions;
-
-import org.eclipse.gef.ui.actions.SelectionAction;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IMenuCreator;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public abstract class AbstractDropDownAction extends SelectionAction implements IMenuCreator {
-
-	protected MenuManager menuManager;
-
-	public AbstractDropDownAction(IWorkbenchPart part) {
-		super(part, AS_DROP_DOWN_MENU);
-		setMenuCreator(this);
-	}
-
-	protected MenuManager getMenuManager() {
-		if (menuManager == null) {
-			menuManager = createMenuManager();
-		}
-		return menuManager;
-	}
-
-	protected abstract MenuManager createMenuManager();
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.IMenuCreator#getMenu(org.eclipse.swt.widgets.Control)
-	 */
-	public Menu getMenu(Control parent) {
-		MenuManager mm = getMenuManager();
-		if (mm != null) {
-			return mm.createContextMenu(parent);
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.IMenuCreator#getMenu(org.eclipse.swt.widgets.Menu)
-	 */
-	public Menu getMenu(Menu parent) {
-		MenuManager mm = getMenuManager();
-		if (mm != null) {
-			Menu menu = new Menu(parent);
-			IContributionItem[] items = mm.getItems();
-			for (int i = 0; i < items.length; i++) {
-				IContributionItem item = items[i];
-				IContributionItem newItem = item;
-				if (item instanceof ActionContributionItem) {
-					newItem = new ActionContributionItem(((ActionContributionItem) item).getAction());
-				}
-				newItem.fill(menu, -1);
-			}
-			return menu;
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.ui.actions.SelectionAction#dispose()
-	 */
-	public void dispose() {
-		super.dispose();
-		if (menuManager != null) {
-			menuManager.dispose();
-			menuManager = null;
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/AddEventHandlerAction.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/AddEventHandlerAction.java
deleted file mode 100755
index 0e27420..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/AddEventHandlerAction.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.actions;
-
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.IEventConstants;
-import org.eclipse.xwt.metadata.ModelUtils;
-import org.eclipse.gef.EditPart;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.window.Window;
-import org.eclipse.xwt.tools.ui.designer.dialogs.NewHandlerDialog;
-import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
-import org.eclipse.xwt.tools.ui.designer.editor.event.EventHandler;
-import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-
-public class AddEventHandlerAction extends Action {
-	private EditPart editPart;
-	private XWTDesigner designer;
-
-	public AddEventHandlerAction(EditPart editpart, XWTDesigner designer, String eventType) {
-		this.editPart = editpart;
-		this.designer = designer;
-		setText(eventType);
-		setImageDescriptor(ImageShop.getImageDescriptor(ImageShop.IMG_LISTENER_METHOD));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.Action#run()
-	 */
-	public void run() {
-		EventHandler eventHandler = designer.getEventHandler();
-		if (eventHandler == null) {
-			return;
-		}
-		XamlElement child = (XamlElement) editPart.getModel();
-		// add the attribute
-		
-		String attributeName = ModelUtils.normalizePropertyName(getText());
-		String initialValue = "on" + getText();
-		String eventName = attributeName + IEventConstants.SUFFIX;
-		initialValue = eventHandler.suggestDefaultName(child, initialValue);
-		XamlAttribute handlerAttr = XamlFactory.eINSTANCE.createAttribute(eventName, IConstants.XWT_NAMESPACE);
-		NewHandlerDialog dialog = new NewHandlerDialog(eventHandler, initialValue);
-		if (dialog.open() == Window.OK) {
-			String newValue = dialog.getHandlerName();
-			if (newValue != "" && newValue != null) {
-				handlerAttr.setValue(newValue);
-				child.getAttributes().add(handlerAttr);
-				eventHandler.createHandler(newValue);
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/BindingLayerAction.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/BindingLayerAction.java
deleted file mode 100755
index d8f35ce..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/BindingLayerAction.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.actions;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.jface.action.Action;
-import org.eclipse.swt.SWT;
-import org.eclipse.xwt.tools.ui.designer.core.editor.Designer;
-import org.eclipse.xwt.tools.ui.designer.core.parts.root.BindingLayer;
-import org.eclipse.xwt.tools.ui.designer.core.parts.root.DesignerRootEditPart;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class BindingLayerAction extends Action {
-
-	public static final String ID = BindingLayerAction.class.getName();
-	private Designer designer;
-
-	public BindingLayerAction(Designer designer) {
-		super("Binding Layer", SWT.CHECK);
-		this.designer = designer;
-		setId(ID);
-		setChecked(false);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.Action#run()
-	 */
-	public void run() {
-		DesignerRootEditPart rootEp = (DesignerRootEditPart) designer.getAdapter(EditPart.class);
-		Boolean layerVisible = rootEp.getLayerVisible(BindingLayer.ID);
-		if (layerVisible == null) {
-			return;
-		}
-		rootEp.setLayerVisible(BindingLayer.ID, !layerVisible.booleanValue());
-		setChecked(!layerVisible.booleanValue());
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/ChangeLayoutAction.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/ChangeLayoutAction.java
deleted file mode 100755
index db084ab..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/ChangeLayoutAction.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.actions;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.xwt.tools.ui.designer.commands.ChangeLayoutCommand;
-import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
-import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
-
-/**
- * @author rui.ban rui.ban@soyatec.com
- */
-public class ChangeLayoutAction extends Action {
-
-	private EditPart editPart;
-	private LayoutType layoutType;
-
-	/**
-	 * @param editPart
-	 * @param text
-	 */
-	public ChangeLayoutAction(EditPart editPart, LayoutType layout) {
-		super(layout.value(), IAction.AS_RADIO_BUTTON);
-		this.layoutType = layout;
-		this.editPart = editPart;
-		setImageDescriptor(ImageShop.getImageDescriptor(ImageShop.OBJ16 + layout.value() + "_obj.gif"));
-		setChecked(LayoutsHelper.getLayoutType(editPart) == layout);
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.Action#run()
-	 */
-	public void run() {
-		if (isChecked() && editPart != null) {
-			EditDomain.getEditDomain(editPart).getCommandStack().execute(new ChangeLayoutCommand(editPart, layoutType));
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/ChangeTextAction.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/ChangeTextAction.java
deleted file mode 100755
index 2ff9710..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/ChangeTextAction.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.actions;
-
-import java.util.List;
-
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.xwt.metadata.IProperty;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.ui.actions.SelectionAction;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
-import org.eclipse.xwt.tools.ui.designer.dialogs.TextValueDialog;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class ChangeTextAction extends SelectionAction {
-
-	public static final String ID = "org.eclipse.xwt.tools.ui.designer.editor.actions.ChageTextAction";
-
-	public ChangeTextAction(IWorkbenchPart part) {
-		super(part);
-		setText("Change Text");
-		setId(ID);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.Action#run()
-	 */
-	public void run() {
-		EditPart editPart = (EditPart) getSelectedObjects().get(0);
-		Object model = editPart.getModel();
-		if (model instanceof XamlElement) {
-			// Check text property of a control is or not exist.
-			XamlElement element = (XamlElement) model;
-			if (element == null) {
-				return;
-			}
-			String name = element.getName();
-			if (name == null || name.equals("")) {
-				return;
-			}
-			String namespace = element.getNamespace();
-			IMetaclass metaclass = XWT.getMetaclass(Character.toUpperCase(name.charAt(0)) + name.substring(1), namespace);
-			IProperty property = metaclass.findProperty("text");
-			if (property == null) {
-				return;
-			}
-
-			XamlAttribute attribute = element.getAttribute("text");
-			boolean isNew = false;
-			if (attribute == null) {
-				attribute = XamlFactory.eINSTANCE.createAttribute("text", IConstants.XWT_NAMESPACE);
-				isNew = true;
-			}
-
-			String oldValue = attribute.getValue() != null ? attribute.getValue().toString() : null;
-			TextValueDialog dialog = new TextValueDialog(new Shell(), oldValue);
-			dialog.create();
-			dialog.getShell().setText("Set New Text");
-			dialog.setTitle("New Text");
-			dialog.setMessage("Input a new text value.");
-			if (dialog.open() == Window.OK) {
-				String newValue = dialog.getNewValue();
-				Command cmd = createCommand((XamlElement) model, attribute, isNew, oldValue, newValue);
-				EditDomain.getEditDomain(editPart).getCommandStack().execute(cmd);
-			}
-
-		}
-	}
-
-	private Command createCommand(final XamlElement element, final XamlAttribute attribute, final boolean isNew, final String oldValue, final String newValue) {
-		Command command = new Command() {
-			public void execute() {
-				attribute.setValue(newValue);
-				if (isNew) {
-					element.getAttributes().add(attribute);
-				}
-			}
-
-			public void undo() {
-				attribute.setValue(oldValue);
-				if (isNew) {
-					element.getAttributes().add(attribute);
-				}
-			}
-		};
-		command.setLabel("Set Text");
-		return command;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.ui.actions.WorkbenchPartAction#calculateEnabled()
-	 */
-	protected boolean calculateEnabled() {
-		List<?> selectedObjects = getSelectedObjects();
-		if (selectedObjects.size() != 1) {
-			return false;
-		}
-		Object object = selectedObjects.get(0);
-		if (!(object instanceof EditPart) || !(((EditPart) object).getModel() instanceof XamlElement)) {
-			return false;
-		}
-		XamlElement element = (XamlElement) ((EditPart) object).getModel();
-		IMetaclass metaclass = XWTUtility.getMetaclass(element);
-		if (metaclass == null || metaclass.findProperty("text") == null) {
-			return false;
-		}
-		return true;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/CopyElementAction.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/CopyElementAction.java
deleted file mode 100755
index 56f03d3..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/CopyElementAction.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.actions;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.ui.actions.Clipboard;
-import org.eclipse.gef.ui.actions.SelectionAction;
-import org.eclipse.swt.SWT;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.internal.WorkbenchMessages;
-import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-
-public class CopyElementAction extends SelectionAction {
-	private XWTDesigner editorPart;
-	private EditPart editpart;
-
-	public CopyElementAction(IWorkbenchPart part) {
-		super(part);
-		this.editorPart = (XWTDesigner) part;
-		setText(WorkbenchMessages.Workbench_copy);
-		setToolTipText(WorkbenchMessages.Workbench_copyToolTip);
-		setId(ActionFactory.COPY.getId());
-		setAccelerator(SWT.MOD1 | 'c');
-		ISharedImages sharedImages = part.getSite().getWorkbenchWindow().getWorkbench().getSharedImages();
-		setImageDescriptor(sharedImages.getImageDescriptor(ISharedImages.IMG_TOOL_COPY));
-		setDisabledImageDescriptor(sharedImages.getImageDescriptor(ISharedImages.IMG_TOOL_COPY_DISABLED));
-	}
-
-	protected boolean calculateEnabled() {
-		if (editorPart == null) {
-			return false;
-		}
-		if (editorPart.getGraphicalViewer() == null) {
-			return false;
-		}
-		List<?> selectedEditParts = this.editorPart.getGraphicalViewer().getSelectedEditParts();
-		boolean result = selectedEditParts != null && !selectedEditParts.isEmpty();
-		if (result) {
-			for (Iterator<?> iterator = selectedEditParts.iterator(); iterator
-					.hasNext();) {
-				EditPart editPart = (EditPart) iterator.next();
-				Object object = editPart.getModel();
-				if (object instanceof EObject) {
-					EObject eObject = (EObject) object;
-					if (eObject.eContainer() == null) {
-						return false;
-					}
-				}
-			}
-		}
-		return result;
-	}
-
-	public void run() {
-		List<?> selectedEditParts = this.editorPart.getGraphicalViewer().getSelectedEditParts();
-		List<XamlElement> selectResult = new ArrayList<XamlElement>();
-		if (selectedEditParts == null || selectedEditParts.isEmpty()) {
-			// Diagram directly...
-		} else {
-			for (int i = 0; i < selectedEditParts.size(); i++) {
-				editpart = (EditPart) selectedEditParts.get(i);
-				Object model = this.editpart.getModel();
-				Object parentModel = this.editpart.getParent().getModel();
-				if (model instanceof XamlElement && parentModel instanceof XamlElement) {
-					XamlElement copymodel = (XamlElement) EcoreUtil.copy((XamlElement) model);
-					selectResult.add(copymodel);
-
-				}
-			}
-
-		}
-		if (selectResult != null && selectResult.size() != 0)
-			Clipboard.getDefault().setContents(selectResult);
-		super.run();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/CreateBindingAction.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/CreateBindingAction.java
deleted file mode 100755
index fd4a763..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/CreateBindingAction.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.actions;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class CreateBindingAction extends Action {
-
-	private EditPart editPart;
-	private Object observe;
-	private String property;
-
-	public CreateBindingAction(EditPart editPart, Object observe, String property, Image image) {
-		super(property, image == null ? null : ImageDescriptor.createFromImage(image));
-		this.editPart = editPart;
-		this.observe = observe;
-		this.property = property;
-		setEnabled(observe != null && property != null);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.Action#run()
-	 */
-	public void run() {
-		// StructuredProperty tp = new PropertiesProvider().findProperty(observe, property);
-		// ObserveInfo targetInfo = new ObserveInfo(observe, tp, ObserveType.WIDGETS);
-		// EditPart root = getRoot(editPart);
-		// CreateBindingDialog dialog = new CreateBindingDialog(new Shell(), targetInfo, root);
-		// if (dialog.open() == Window.OK) {
-		// IObserveInfo modelInfo = dialog.getBindingModel();
-		// BindingInfo bindingInfo = new BindingInfo(targetInfo, modelInfo);
-		// editPart.getViewer().getEditDomain().getCommandStack().execute(bindingInfo.bindWithCommand());
-		// }
-		System.out.println(editPart);
-		System.out.println(observe);
-		System.out.println(property);
-		System.out.println(getRoot(editPart));
-	}
-
-	private EditPart getRoot(EditPart editPart) {
-		if (editPart == null) {
-			return null;
-		}
-		Object model = editPart.getModel();
-		if (model instanceof XamlElement && ((XamlElement) model).eContainer() instanceof XamlDocument) {
-			return editPart;
-		}
-		return getRoot(editPart.getParent());
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/CreateBindingConnectionAction.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/CreateBindingConnectionAction.java
deleted file mode 100755
index f2d244c..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/CreateBindingConnectionAction.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.actions;
-
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Event;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class CreateBindingConnectionAction extends Action {
-
-	private GraphicalEditPart editPart;
-	private Object observe;
-	private String property;
-
-	public CreateBindingConnectionAction(EditPart editPart, Object observe, String property, Image image) {
-		super(property, image == null ? null : ImageDescriptor.createFromImage(image));
-		this.editPart = (GraphicalEditPart) editPart;
-		this.observe = observe;
-		this.property = property;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.Action#run()
-	 */
-	public void run() {
-		if (editPart == null) {
-			return;
-		}
-		/**
-		 * Create a mouse down event that thinks it is over the blob and dispatch it. This is a bit of a fudge to mimic what the user ought to do.
-		 */
-
-		Point point = null;
-		point = editPart.getFigure().getClientArea().getCenter();
-		Point p = point;
-		editPart.getFigure().translateToAbsolute(p);
-
-		Canvas canvas = (Canvas) editPart.getViewer().getControl();
-		Event event = new Event();
-		event.button = 1;
-		event.count = 0;
-		event.detail = 0;
-		event.end = 0;
-		event.height = 0;
-		event.keyCode = 0;
-		event.start = 0;
-		event.stateMask = 0;
-		event.time = 9516624; // any old time... doesn't matter
-		event.type = SWT.MouseDown;
-		event.widget = canvas;
-		event.width = 0;
-		event.x = p.x + 3;
-		event.y = p.y + 3;
-
-		// StructuredProperty tp = new PropertiesProvider().findProperty(observe, property);
-		// final ObserveInfo observeInfo = new ObserveInfo(observe, tp, ObserveType.WIDGETS);
-		//
-		// CreationFactory factory = new CreationFactory() {
-		//
-		// public Object getNewObject() {
-		// return observeInfo;
-		// }
-		//
-		// public Object getObjectType() {
-		// return editPart;
-		// }
-		//
-		// };
-		// BindingCreateTool tool = new BindingCreateTool(factory);
-		// editPart.getViewer().getEditDomain().setActiveTool(tool);
-		// canvas.notifyListeners(SWT.MouseDown, event);
-
-		System.out.println(editPart);
-		System.out.println(observe);
-		System.out.println(property);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/CutElementAction.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/CutElementAction.java
deleted file mode 100755
index 06e2d47..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/CutElementAction.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.actions;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.ui.actions.Clipboard;
-import org.eclipse.gef.ui.actions.SelectionAction;
-import org.eclipse.swt.SWT;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.internal.WorkbenchMessages;
-import org.eclipse.xwt.tools.ui.designer.commands.DeleteCommand;
-import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-
-public class CutElementAction extends SelectionAction {
-	private XWTDesigner editorPart;
-
-	/**
-	 * @param part
-	 */
-	public CutElementAction(IWorkbenchPart part) {
-		super(part);
-		this.editorPart = (XWTDesigner) part;
-		this.setText(WorkbenchMessages.Workbench_cut);
-		this.setToolTipText(WorkbenchMessages.Workbench_cutToolTip);
-		this.setId(ActionFactory.CUT.getId());
-		this.setAccelerator(SWT.MOD1 | 'x');
-		ISharedImages sharedImages = part.getSite().getWorkbenchWindow().getWorkbench().getSharedImages();
-		setImageDescriptor(sharedImages.getImageDescriptor(ISharedImages.IMG_TOOL_CUT));
-		setDisabledImageDescriptor(sharedImages.getImageDescriptor(ISharedImages.IMG_TOOL_CUT_DISABLED));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.ui.actions.WorkbenchPartAction#calculateEnabled()
-	 */
-	protected boolean calculateEnabled() {
-		if (editorPart == null) {
-			return false;
-		}
-		if (editorPart.getGraphicalViewer() == null) {
-			return false;
-		}
-		List<?> selectedEditParts = this.editorPart.getGraphicalViewer().getSelectedEditParts();
-		boolean result = selectedEditParts != null && !selectedEditParts.isEmpty();
-		if (result) {
-			for (Iterator<?> iterator = selectedEditParts.iterator(); iterator
-					.hasNext();) {
-				EditPart editPart = (EditPart) iterator.next();
-				Object object = editPart.getModel();
-				if (object instanceof EObject) {
-					EObject eObject = (EObject) object;
-					if (eObject.eContainer() == null) {
-						return false;
-					}
-				}
-			}
-		}
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.Action#run()
-	 */
-	public void run() {
-		List<?> selectedEditParts = this.editorPart.getGraphicalViewer().getSelectedEditParts();
-		List<XamlElement> selectResult = new ArrayList<XamlElement>();
-		for (Iterator<?> iterator = selectedEditParts.iterator(); iterator.hasNext();) {
-			EditPart part = (EditPart) iterator.next();
-			Object model = part.getModel();
-			if (model instanceof XamlElement) {
-				XamlElement copymodel = (XamlElement) EcoreUtil.copy((XamlElement) model);
-				selectResult.add(copymodel);
-			}
-		}
-		if (selectResult != null && selectResult.size() != 0)
-			Clipboard.getDefault().setContents(selectResult);
-		DeleteCommand dcmd = new DeleteCommand(selectedEditParts);
-		editorPart.getEditDomain().getCommandStack().execute(dcmd);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/LayoutAssistantAction.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/LayoutAssistantAction.java
deleted file mode 100755
index 6d8057f..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/LayoutAssistantAction.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.actions;
-
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.ui.actions.SelectionAction;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.xwt.tools.ui.designer.dialogs.LayoutAssistantWindow;
-import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
-
-/**
- * @author rui.ban rui.ban@soyatec.com
- */
-public class LayoutAssistantAction extends SelectionAction {
-
-	public static final String ID = "org.eclipse.xwt.tools.ui.designer.editor.actions.LayoutAssistantAction";
-
-	private LayoutAssistantWindow window;
-
-	public LayoutAssistantAction(IWorkbenchPart part) {
-		super(part);
-		setText("Layout Assistant...");
-		setImageDescriptor(ImageShop.getImageDescriptor(ImageShop.IMG_LAYOUT_ASSIST));
-		setId(ID);
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.Action#run()
-	 */
-	public void run() {
-		EditPart editPart = getEditPart();
-		if (editPart == null) {
-			return;
-		}
-		if (window == null || window.isClosed()) {
-			window = new LayoutAssistantWindow(getWorkbenchPart().getSite().getShell());
-		}
-		window.setEditPart(editPart);
-		if (!window.isOpened()) {
-			window.open();
-		} else {
-			window.refresh();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.ui.actions.SelectionAction#dispose()
-	 */
-	public void dispose() {
-		if (window != null) {
-			window.close();
-		}
-		super.dispose();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.ui.actions.SelectionAction#handleSelectionChanged()
-	 */
-	protected void handleSelectionChanged() {
-		super.handleSelectionChanged();
-		EditPart editPart = getEditPart();
-		if (window != null && window.isOpened() && editPart != null) {
-			window.setEditPart(editPart);
-		}
-	}
-
-	public EditPart getEditPart() {
-		List selectedObjects = getSelectedObjects();
-		if (selectedObjects.size() == 1 && selectedObjects.get(0) instanceof EditPart) {
-			return (EditPart) selectedObjects.get(0);
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.ui.actions.WorkbenchPartAction#calculateEnabled()
-	 */
-	protected boolean calculateEnabled() {
-		EditPart editPart = getEditPart();
-		if (editPart == null) {
-			return false;
-		}
-		Object model = editPart.getModel();
-		if (model instanceof EObject) {
-			EObject object = (EObject)model;
-			if (object.eContainer() == null) {
-				return false;
-			}
-		}
-		return true;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/OpenBindingDialogAction.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/OpenBindingDialogAction.java
deleted file mode 100755
index 0235d3d..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/OpenBindingDialogAction.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.actions;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.ui.actions.WorkbenchPartAction;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.xwt.tools.ui.designer.databinding.ui.DataBindingWindow;
-import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
-import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
-import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class OpenBindingDialogAction extends WorkbenchPartAction {
-
-	public static final String ID = OpenBindingDialogAction.class.getName();
-
-	public OpenBindingDialogAction(IWorkbenchPart part) {
-		super(part);
-		setId(ID);
-		setText("Open Binding Dialog");
-		setImageDescriptor(ImageShop.getImageDescriptor(ImageShop.IMG_BINDING));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.Action#run()
-	 */
-	public void run() {
-		XWTDesigner designer = (XWTDesigner) getWorkbenchPart();
-		Object root = designer.getVisualsRender().getRoot();
-		if (root instanceof Widget) {
-			root = XWTProxy.getModel((Widget) root);
-		}
-		EditPart editPart = designer.getEditPart(root);
-		DataBindingWindow window = new DataBindingWindow(designer.getSite().getShell(), editPart);
-		window.open();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.ui.actions.WorkbenchPartAction#calculateEnabled()
-	 */
-	protected boolean calculateEnabled() {
-		return true;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/OpenExternalizeStringsAction.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/OpenExternalizeStringsAction.java
deleted file mode 100755
index 2444cc2..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/OpenExternalizeStringsAction.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.actions;
-
-import java.util.List;
-
-import org.eclipse.xwt.IConstants;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.RootEditPart;
-import org.eclipse.gef.ui.actions.WorkbenchPartAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
-import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
-import org.eclipse.xwt.tools.ui.designer.wizards.ExternalizeStringsWizard;
-import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueEntry;
-import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueModel;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author xrchen (xiaoru.chen@soyatec.com)
- */
-public class OpenExternalizeStringsAction extends WorkbenchPartAction {
-
-	int index = 0;
-	XWTDesigner designer = (XWTDesigner) getWorkbenchPart();
-	public static final String ID = OpenExternalizeStringsAction.class.getName();
-
-	public OpenExternalizeStringsAction(IWorkbenchPart part) {
-		super(part);
-		setId(ID);
-		setText("Externalize Strings");
-	}
-
-	@Override
-	public void run() {
-		TextValueModel textValueEntrys = getTextValue();
-		if (textValueEntrys.elements().length == 0) {
-			String dialogMessage = "No Strings to externalize found in file.";
-			String[] dialogButtonLabels = { "Ok" };
-			MessageDialog messageDialog = new MessageDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), "Externalize Strings", null, dialogMessage, MessageDialog.INFORMATION, dialogButtonLabels, 0);
-			messageDialog.open();
-		} else {
-			ExternalizeStringsWizard wizard = new ExternalizeStringsWizard(textValueEntrys, designer);
-			wizard.init(PlatformUI.getWorkbench(), null);
-			WizardDialog dialog = new WizardDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), wizard);
-			dialog.open();
-		}
-	}
-
-	/**
-	 * Get the input to the table viewer.
-	 * 
-	 * @return textValueEntrys
-	 */
-	protected TextValueModel getTextValue() {
-		TextValueModel textValueEntrys = new TextValueModel();
-		index = 0;
-		RootEditPart rootEditPart = designer.getGraphicalViewer().getRootEditPart();
-		EditPart contents = rootEditPart.getContents();
-		getTextContents(contents, textValueEntrys, "text");
-		getTextContents(contents, textValueEntrys, "tooltipText");
-		return textValueEntrys;
-	}
-
-	/**
-	 * Get the text attribute values.
-	 * 
-	 * @param editPart
-	 * @param textValueEntrys
-	 */
-	private void getTextContents(EditPart editPart, TextValueModel textValueEntrys, String type) {
-		if (editPart instanceof WidgetEditPart) {
-			XamlNode node = ((WidgetEditPart) editPart).getCastModel();
-			XamlAttribute attribute = node.getAttribute(type, IConstants.XWT_NAMESPACE);
-			if (attribute != null && attribute.getChildNodes().size() == 0) {
-				textValueEntrys.add(new TextValueEntry(attribute.getValue(), "" + index));
-				index++;
-			}
-			if (editPart.getChildren().size() > 0) {
-				getChildTextContents(editPart, textValueEntrys, type);
-			}
-		} else if (editPart.getChildren().size() > 0) {
-			getChildTextContents(editPart, textValueEntrys, type);
-		}
-	}
-
-	/**
-	 * Get the editPart children's text value.
-	 * 
-	 * @param editPart
-	 * @param textValueEntrys
-	 */
-	private void getChildTextContents(EditPart editPart, TextValueModel textValueEntrys, String type) {
-		if (editPart.getChildren().size() > 0) {
-			List child = editPart.getChildren();
-			for (int i = 0; i < child.size(); i++) {
-				if (child.get(i) instanceof EditPart) {
-					getTextContents((EditPart) (child.get(i)), textValueEntrys, type);
-				}
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.ui.actions.WorkbenchPartAction#calculateEnabled()
-	 */
-	protected boolean calculateEnabled() {
-		return true;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/PasteElementAction.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/PasteElementAction.java
deleted file mode 100755
index d7854b5..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/PasteElementAction.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.actions;
-
-import java.lang.reflect.Constructor;
-import java.util.List;
-
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CompoundCommand;
-import org.eclipse.gef.ui.actions.Clipboard;
-import org.eclipse.gef.ui.actions.SelectionAction;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.CoolBar;
-import org.eclipse.swt.widgets.CoolItem;
-import org.eclipse.swt.widgets.ExpandBar;
-import org.eclipse.swt.widgets.ExpandItem;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.internal.WorkbenchMessages;
-import org.eclipse.xwt.tools.ui.designer.commands.AddNewChildCommand;
-import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
-import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-public class PasteElementAction extends SelectionAction {
-	private XWTDesigner part;
-	private Object contents;
-	private EditPart parent;
-
-	public PasteElementAction(IWorkbenchPart part) {
-		super(part);
-		this.part = (XWTDesigner) part;
-		setText(WorkbenchMessages.Workbench_paste);
-		setToolTipText(WorkbenchMessages.Workbench_pasteToolTip);
-		setId(ActionFactory.PASTE.getId());
-		setAccelerator(SWT.MOD1 | 'v');
-		ISharedImages sharedImages = part.getSite().getWorkbenchWindow().getWorkbench().getSharedImages();
-		setImageDescriptor(sharedImages.getImageDescriptor(ISharedImages.IMG_TOOL_PASTE));
-		setDisabledImageDescriptor(sharedImages.getImageDescriptor(ISharedImages.IMG_TOOL_PASTE_DISABLED));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.ui.actions.WorkbenchPartAction#calculateEnabled()
-	 */
-	protected boolean calculateEnabled() {
-		contents = Clipboard.getDefault().getContents();
-		if (contents == null) {
-			return false;
-		}
-
-		if (part.getGraphicalViewer() == null) {
-			return false;
-		}
-
-		List<?> parts = part.getGraphicalViewer().getSelectedEditParts();
-		if (parts == null || parts.isEmpty()) {
-			return false;
-		}
-		parent = (EditPart) parts.get(0);
-		Object model = parent.getModel();
-		if (model == null || !(model instanceof XamlElement)) {
-			return false;
-		}
-		return canPaste((XamlElement) model);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.Action#run()
-	 */
-	public void run() {
-		XamlElement parentNode = (XamlElement) parent.getModel();
-		List<XamlElement> elements = (List<XamlElement>) contents;
-		CompoundCommand cmd = new CompoundCommand("Paste");
-		for (XamlElement child : elements) {
-			XamlElement newChild = (XamlElement) EcoreUtil.copy(child);
-			cmd.add(new AddNewChildCommand(parentNode, newChild));
-		}
-		Command command = cmd.unwrap();
-		if (command.canExecute()) {
-			EditDomain.getEditDomain(parent).getCommandStack().execute(command);
-		}
-	}
-
-	public boolean canPaste(XamlElement parent) {
-		Class<?> parentType = null;
-		parentType = getType(parent);
-		if (parentType == null) {
-			return false;
-		}
-		List<XamlElement> contents = (List<XamlElement>) Clipboard.getDefault().getContents();
-
-		for (XamlElement element : contents) {
-			Class<?> createtype = getType(element);
-			if (createtype == null) {
-				return false;
-			}
-			if (!canPaste(createtype, parentType, parent))
-				return false;
-		}
-		return true;
-	}
-
-	public Class<?> getType(XamlNode element) {
-		if (element == null) {
-			return null;
-		}
-		IMetaclass metaclass = XWTUtility.getMetaclass(element);
-		if (metaclass != null) {
-			return metaclass.getType();
-		}
-		return null;
-	}
-
-	public boolean canPaste(Object createType, Class<?> parentType, XamlElement parent) {
-		boolean canCreate = false;
-		if (createType instanceof Class<?>) {
-			Class<?> type = (Class<?>) createType;
-			// the child of coolBar/expandBar only is coolItem/expandItem.
-			if (CoolBar.class.isAssignableFrom(parentType)) {
-				if (!CoolItem.class.isAssignableFrom(type)) {
-					return false;
-				}
-			}
-			if (ExpandBar.class.isAssignableFrom(parentType)) {
-				if (!ExpandItem.class.isAssignableFrom(type)) {
-					return false;
-				}
-			}// the coolItem/expandItem is permitted to add a control except its parent and itself.
-			if (CoolItem.class.isAssignableFrom(parentType)) {
-				if (Control.class.isAssignableFrom(type) && !CoolBar.class.isAssignableFrom(type)) {
-					return true;
-				}
-			}
-			if (ExpandItem.class.isAssignableFrom(parentType)) {
-				if (Control.class.isAssignableFrom(type) && !ExpandBar.class.isAssignableFrom(type)) {
-					return true;
-				}
-			}
-			Constructor<?>[] constructors = ((Class<?>) createType).getConstructors();
-			for (Constructor<?> constructor : constructors) {
-				Class<?>[] parameterTypes = constructor.getParameterTypes();
-				if (parameterTypes.length == 0) {
-					continue;
-				}
-				if (parameterTypes[0].isAssignableFrom(parentType)) {
-					canCreate = true;
-					break;
-				}
-			}
-		} else if (createType instanceof String) {
-			String stringType = (String) createType;
-			IMetaclass metaclass = XWT.getMetaclass(parentType);
-			if (metaclass != null) {
-				canCreate = metaclass.findProperty((String) createType) != null;
-				if ("menuBar".equals(stringType) || "menu".equals(stringType) || "layoutData".equals(stringType)) {
-					canCreate = canCreate && parent.getAttribute(stringType) == null;
-				}
-			}
-		}
-		return canCreate;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/PreviewAction.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/PreviewAction.java
deleted file mode 100755
index fc81386..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/PreviewAction.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.actions;
-
-import java.io.ByteArrayInputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.XWTException;
-import org.eclipse.gef.ui.actions.SelectionAction;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
-import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
-import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class PreviewAction extends SelectionAction {
-
-	public static final String ACTION_ID = "org.eclipse.xwt.tools.ui.designer.editor.actions.PreviewAction";
-
-	private XWTDesigner part;
-	private static Point defaultSize;
-
-	public PreviewAction(XWTDesigner part) {
-		super(part);
-		this.part = part;
-		setId(ACTION_ID);
-		setText("Test/Preview");
-		setToolTipText("Quickly test/preview with XWT loader");
-		setImageDescriptor(ImageShop.getImageDescriptor(ImageShop.IMG_PREVIEW));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.Action#run()
-	 */
-	public void run() {
-		try {
-			IFile inputFile = part.getFile();
-			String content = part.getDocument().get();
-			Object element = XWT.load(new ByteArrayInputStream(content.getBytes()), inputFile.getLocationURI().toURL());
-			if (!(element instanceof Control)) {
-				throw new XWTException("Root element is a control.");
-			}
-			Control control = (Control) element;
-			if (control == null || control.isDisposed()) {
-				return;
-			}
-			Shell shell = control.getShell();
-			Point size = shell.getSize();
-			Point dSize = defaultSize();
-			if (size.x == dSize.x && size.y == dSize.y) {
-				Point computeSize = control.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-				Point defaultSize = XWTProxy.DEFAULT_SIZE;
-				int x = Math.max(computeSize.x, defaultSize.x);
-				int y = Math.max(computeSize.y, defaultSize.y);
-				boolean pack = false;
-				if (!(control instanceof Shell)) {
-					shell.setLayout(null);
-					pack = true;
-				}
-				control.setSize(x, y);
-				if (pack) {
-					shell.pack();
-				}
-			}
-			shell.open();
-		} catch (Exception e) {
-		}
-	}
-
-	private static Point defaultSize() {
-		if (defaultSize == null) {
-			defaultSize = new Shell().getSize();
-		}
-		return defaultSize;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.ui.actions.WorkbenchPartAction#calculateEnabled()
-	 */
-	protected boolean calculateEnabled() {
-		return part != null && part.getDocument() != null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/StyleAction.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/StyleAction.java
deleted file mode 100755
index f7bb506..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/StyleAction.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.actions;
-
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.converters.StringToInteger;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IMenuCreator;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.tools.ui.designer.commands.SetStyleCommand;
-import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
-import org.eclipse.xwt.tools.ui.designer.core.style.SWTStyles;
-import org.eclipse.xwt.tools.ui.designer.core.style.StyleGroup;
-import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
-import org.eclipse.xwt.tools.ui.designer.utils.StyleHelper;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class StyleAction extends Action implements IMenuCreator {
-
-	public static final String ID = StyleAction.class.getName();
-	private WidgetEditPart editPart;
-	private MenuManager menuManager;
-
-	public StyleAction(WidgetEditPart editPart) {
-		this.editPart = editPart;
-		setId(ID);
-		setText("Style");
-		setMenuCreator(this);
-	}
-
-	@Override
-	public boolean isEnabled() {
-		Object model = editPart.getModel();
-		if (model instanceof EObject) {
-			EObject object = (EObject)model;
-			if (object.eContainer() == null) {
-				return false;
-			}
-		}
-		return super.isEnabled();
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.editor.actions.AbstractDropDownAction#createMenuManager()
-	 */
-	protected MenuManager createMenuManager() {
-		if (menuManager == null) {
-
-			menuManager = new MenuManager();
-			Widget widget = editPart.getWidget();
-			if (widget != null && !widget.isDisposed()) {
-				int masterStyle = widget.getStyle();
-				StyleGroup[] styles = SWTStyles.getStyles(widget.getClass());
-				Separator last = null;
-				for (StyleGroup styleGroup : styles) {
-					if (!styleGroup.match(masterStyle)) {
-						continue;
-					}
-					String[] items = styleGroup.getStyles();
-					String groupName = styleGroup.getGroupName();
-					for (String style : items) {
-						XamlNode node = editPart.getCastModel();
-						SetStyleAction action = new SetStyleAction(node, styleGroup, style, "default".equals(groupName) ? AS_CHECK_BOX : AS_RADIO_BUTTON);
-						boolean checked = StyleHelper.checkStyle(masterStyle, style);
-						
-						boolean specified = false;
-						XamlAttribute attribute = node.getAttribute("style", IConstants.XWT_X_NAMESPACE);
-						if (attribute != null) {
-							int xmlValue = (Integer) StringToInteger.instance.convert(attribute.getValue());
-							int value = (Integer) StringToInteger.instance.convert(style);
-							specified = StyleHelper.checkStyle(xmlValue, value);
-						}
-						if (checked) {
-							action.setEnabled(specified);
-						}
-						else {
-							action.setEnabled(true);
-						}
-						action.setChecked(checked);
-						menuManager.add(action);
-					}
-					menuManager.add(last = new Separator(groupName));
-				}
-				if (last != null) {
-					menuManager.remove(last);
-				}
-			}
-		}
-		return menuManager;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.IMenuCreator#dispose()
-	 */
-	public void dispose() {
-		if (menuManager != null) {
-			menuManager.dispose();
-			menuManager = null;
-		}
-	}
-
-	public Menu getMenu(Control parent) {
-		MenuManager mm = createMenuManager();
-		if (mm != null) {
-			return mm.createContextMenu(parent);
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.IMenuCreator#getMenu(org.eclipse.swt.widgets.Menu)
-	 */
-	public Menu getMenu(Menu parent) {
-		MenuManager mm = createMenuManager();
-		if (mm != null) {
-			Menu menu = new Menu(parent);
-			IContributionItem[] items = mm.getItems();
-			for (int i = 0; i < items.length; i++) {
-				IContributionItem item = items[i];
-				IContributionItem newItem = item;
-				if (item instanceof ActionContributionItem) {
-					newItem = new ActionContributionItem(((ActionContributionItem) item).getAction());
-				}
-				newItem.fill(menu, -1);
-			}
-			return menu;
-		}
-		return null;
-	}
-
-	private class SetStyleAction extends Action {
-		private String newStyle;
-		private XamlNode node;
-		private StyleGroup group;
-
-		public SetStyleAction(XamlNode node, StyleGroup group, String newStyle, int actionStyle) {
-			super(newStyle, actionStyle);
-			this.node = node;
-			this.group = group;
-			this.newStyle = newStyle;
-		}
-
-		public void run() {
-			// fail fast
-			if (getStyle() == AS_RADIO_BUTTON && !isChecked()) {
-				return;
-			}
-			SetStyleCommand command = new SetStyleCommand(node, newStyle, group);
-			if (getStyle() == AS_CHECK_BOX) {
-				command.setRemove(!isChecked());
-			}
-			EditDomain.getEditDomain(editPart).getCommandStack().execute(command);
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/SurroundWithAction.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/SurroundWithAction.java
deleted file mode 100755
index 9f7490a..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/SurroundWithAction.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.actions;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.xwt.tools.ui.designer.commands.SurroundWithCommand;
-import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class SurroundWithAction extends AbstractDropDownAction {
-
-	public static final String ID = "org.eclipse.xwt.tools.ui.designer.editor.actions.SurroundWithAction";
-
-	private Class<?>[] actionList;
-
-	private SurroundWithCommand command;
-
-	public SurroundWithAction(IWorkbenchPart part) {
-		super(part);
-		setId(ID);
-		setText("Surround With");
-		initActions();
-		setMenuCreator(this);
-	}
-
-	private void initActions() {
-		actionList = new Class<?>[] {Composite.class, Group.class, ScrolledComposite.class, SashForm.class, TabFolder.class, CTabFolder.class};
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.ui.actions.WorkbenchPartAction#calculateEnabled()
-	 */
-	protected boolean calculateEnabled() {
-		command = calculateCommand();
-		return command != null && command.canExecute();
-	}
-
-	protected SurroundWithCommand calculateCommand() {
-		return new SurroundWithCommand(getSelectedObjects());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.editor.actions.AbstractDropDownAction#createMenuManager()
-	 */
-	protected MenuManager createMenuManager() {
-		MenuManager mm = new MenuManager();
-		for (final Class<?> type : actionList) {
-			Action action = new Action(type.getName()) {
-				public void run() {
-					command.setType(type);
-					execute(command);
-				}
-			};
-			Image image = ImageShop.getImageForType(type);
-			if (image != null) {
-				action.setImageDescriptor(ImageDescriptor.createFromImage(image));
-			}
-			mm.add(action);
-		}
-		return mm;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/BindingCreateTool.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/BindingCreateTool.java
deleted file mode 100755
index b4aece1..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/BindingCreateTool.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.dnd;
-
-import org.eclipse.gef.requests.CreationFactory;
-import org.eclipse.gef.tools.ConnectionCreationTool;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class BindingCreateTool extends ConnectionCreationTool {
-	public BindingCreateTool() {
-		setUnloadWhenFinished(true);
-	}
-
-	public BindingCreateTool(CreationFactory factory) {
-		super(factory);
-		setUnloadWhenFinished(true);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/EntryCreateRequest.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/EntryCreateRequest.java
deleted file mode 100755
index a3684a4..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/EntryCreateRequest.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.dnd;
-
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.gef.requests.CreateRequest;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class EntryCreateRequest extends CreateRequest {
-	private Dimension initSize;
-
-	public void setInitSize(Dimension initSize) {
-		this.initSize = initSize;
-	}
-
-	public Dimension getInitSize() {
-		return initSize;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/EntryCreationTool.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/EntryCreationTool.java
deleted file mode 100755
index fd26d6d..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/EntryCreationTool.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.dnd;
-
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.requests.CreationFactory;
-import org.eclipse.gef.tools.CreationTool;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
-import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
-import org.eclipse.xwt.tools.ui.designer.parts.ControlEditPart;
-import org.eclipse.xwt.tools.ui.imagecapture.swt.ImageCapture;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class EntryCreationTool extends CreationTool {
-	static int shadow = 2;
-
-	private Shell shell;
-	private Dimension initSize;
-
-	public EntryCreationTool() {
-		super();
-		setUnloadWhenFinished(true);
-	}
-
-	public EntryCreationTool(CreationFactory aFactory) {
-		super(aFactory);
-		setUnloadWhenFinished(true);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.tools.AbstractTool#activate()
-	 */
-	public void activate() {
-		super.activate();
-//		CreationFactory factory = getFactory();
-//		if (factory != null && factory instanceof EntryCreationFactory) {
-//			Entry entry = (Entry) factory.getNewObject();
-//			XamlNode node = EntryHelper.getNode(entry);
-//			if (node != null && node instanceof XamlElement) {
-//				Image image = getImageFrom((XamlElement) node);
-//				if (image != null) {
-//					cursor = new Cursor(null, image.getImageData(), 0, 0);
-//					setDefaultCursor(cursor);
-//				}
-//			}
-//		}
-	}
-
-	private Image getImageFrom(XamlElement node) {
-		if (shell == null || shell.isDisposed()) {
-			shell = new Shell();
-			shell.setLayout(new RowLayout());
-		}
-		XWTProxy proxy = new XWTProxy(null);
-		Object widget;
-		try {
-			widget = proxy.createWidget(shell, (XamlElement) node);
-			if (widget == null || !(widget instanceof Control)) {
-				return null;
-			}
-		} catch (Exception e) {
-			return null;
-		}
-		shell.layout();
-		shell.pack();
-
-		Image image = null;
-		Control control = (Control) widget;
-		Rectangle bounds = control.getBounds();
-		initSize = new Dimension(bounds.width + (shadow * 2), bounds.height + (shadow * 2));
-		if (control instanceof Shell) {
-			image = ImageCapture.getInstance().capture(control);
-		} else {
-			image = new Image(control.getDisplay(), initSize.width, initSize.height);
-			GC gc = new GC(image);
-			control.print(gc);
-			gc.copyArea(0, 0, bounds.width, bounds.height, shadow, shadow);
-			int width = initSize.width - 1;
-			int height = initSize.height - 1;
-			
-			gc.setForeground(Display.getDefault().getSystemColor(SWT.COLOR_GRAY));
-			for (int i = 0; i < shadow; i++) {
-				gc.drawLine(i, i, width, i);
-				gc.drawLine(width, i, width, height);
-				gc.drawLine(width, height, i, height);
-				gc.drawLine(i, height, i, i);
-				width -= 1;
-				height -= 1;
-			}
-			gc.dispose();
-		}
-		return image;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.tools.CreationTool#deactivate()
-	 */
-	public void deactivate() {
-		super.deactivate();
-//		if (shell != null) {
-//			shell.dispose();
-//		}
-//		if (cursor != null) {
-//			cursor.dispose();
-//		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.tools.TargetingTool#getTargetRequest()
-	 */
-	protected Request getTargetRequest() {
-		Request req = super.getTargetRequest();
-		if (req instanceof EntryCreateRequest && initSize != null) {
-			((EntryCreateRequest) req).setInitSize(initSize);
-		}
-		return req;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.tools.CreationTool#createTargetRequest()
-	 */
-	protected Request createTargetRequest() {
-		EntryCreateRequest request = new EntryCreateRequest();
-		request.setFactory(getFactory());
-		return request;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.tools.TargetingTool#setTargetEditPart(org.eclipse.gef.EditPart)
-	 */
-	protected void setTargetEditPart(EditPart editpart) {
-		if (editpart != null) {
-			Class<?> type = editpart.getClass();
-			if (!CompositeEditPart.class.isAssignableFrom(type) && ControlEditPart.class.isAssignableFrom(type)) {
-				editpart = editpart.getParent();
-			}
-		}
-		super.setTargetEditPart(editpart);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/XWTDropContext.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/XWTDropContext.java
deleted file mode 100755
index 6021960..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/XWTDropContext.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.dnd;
-
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.xwt.tools.ui.designer.core.editor.dnd.DropContext;
-import org.eclipse.xwt.tools.ui.designer.core.util.DomHelper;
-import org.w3c.dom.Node;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class XWTDropContext extends DropContext {
-
-	private String getNodeName(Node node) {
-		String name = node.getNodeName();
-		int index = name.indexOf(":");
-		if (index != -1) {
-			name = name.substring(index + 1);
-		}
-		return name;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.tools.designer.editor.dnd.DropContext#isKindOf(org.w3c.dom.Node, java.lang.String)
-	 */
-	protected boolean isKindOf(Node node, String targetType) {
-		if (node.getNodeType() == Node.DOCUMENT_NODE) {
-			return false;
-		}
-		String namespace = DomHelper.lookupNamespaceURI(node);
-		String tagName = getNodeName(node);
-		if (tagName.indexOf(".") > 0) {
-			tagName = (tagName.substring(tagName.lastIndexOf(".") + 1));
-			tagName = Character.toUpperCase(tagName.charAt(0)) + tagName.substring(1);
-			namespace = IConstants.XWT_NAMESPACE;
-		}
-		try {
-			return isKindOf(tagName, namespace, targetType);
-		} catch (Exception e) {
-			return false;
-		}
-	}
-
-	private boolean isKindOf(String nodeName, String namespace, String targetType) throws Exception {
-		if (nodeName == null || namespace == null || targetType == null) {
-			return false;
-		}
-		if ("Composite".equalsIgnoreCase(targetType)) {
-			IMetaclass metaclass = XWT.getMetaclass(nodeName, namespace);
-			if (metaclass == null) {
-				return false;
-			} else {
-				return Composite.class.isAssignableFrom(metaclass.getType());
-			}
-		} else if ("Control".equalsIgnoreCase(targetType)) {
-			IMetaclass metaclass = XWT.getMetaclass(nodeName, namespace);
-			if (metaclass == null) {
-				return false;
-			} else {
-				return Control.class.isAssignableFrom(metaclass.getType());
-			}
-		}
-		return targetType.equalsIgnoreCase(nodeName);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/XWTGraphicalViewerDropListener.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/XWTGraphicalViewerDropListener.java
deleted file mode 100755
index bb18f39..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/XWTGraphicalViewerDropListener.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.dnd;
-
-import org.eclipse.xwt.tools.ui.palette.Entry;
-import org.eclipse.xwt.tools.ui.palette.PaletteFactory;
-import org.eclipse.xwt.tools.ui.palette.request.EntryCreationFactory;
-import org.eclipse.gef.EditPartViewer;
-import org.eclipse.gef.requests.CreationFactory;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.xwt.tools.ui.designer.core.editor.dnd.GraphicalViewerDropCreationListener;
-import org.eclipse.xwt.tools.ui.designer.core.util.XWTCodeGenUtil;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public class XWTGraphicalViewerDropListener extends
-		GraphicalViewerDropCreationListener {
-
-	public XWTGraphicalViewerDropListener(EditPartViewer viewer) {
-		super(viewer);
-	}
-
-	protected CreationFactory createCreationFactory(Object selection) {
-		if (selection instanceof ICompilationUnit) {
-			Class<?> dataContext = getClassType((ICompilationUnit) selection);
-			if (dataContext == null) {
-				return null;
-			}
-			String generate = XWTCodeGenUtil.generate(dataContext);
-			Entry entry = PaletteFactory.eINSTANCE.createEntry();
-			entry.setContent(generate);
-			entry.setScope("Composite");
-			entry.setName(dataContext.getSimpleName());
-
-			return new EntryCreationFactory(entry);
-		}
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/event/EventHandler.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/event/EventHandler.java
deleted file mode 100755
index e9fea2a..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/event/EventHandler.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.event;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.IEventConstants;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.jdt.core.IMethod;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
-import org.eclipse.xwt.tools.ui.designer.jdt.ASTHelper;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class EventHandler {
-
-	private XWTDesigner designer;
-	private IType type;
-
-	public EventHandler(XWTDesigner designer, IType type) {
-		this.designer = designer;
-		this.type = type;
-		if (type == null) {
-			throw new NullPointerException("Java Source Type is Null!");
-		}
-	}
-
-	public boolean exist(String handlerName) {
-		try {
-			IMethod[] methods = type.getMethods();
-			if (findMethod(methods, handlerName) != null) {
-				return true;
-			}
-		} catch (JavaModelException e) {
-		}
-		return false;
-	}
-
-	public String suggestDefaultName(XamlElement element, String value) {
-		String name = value;
-		if (!exist(name)) {
-			return name;
-		}
-
-		int i = 0;
-		String elementName = "";
-		XamlAttribute attribute = element.getAttribute("name", IConstants.XWT_X_NAMESPACE);
-		if (attribute == null) {
-			attribute = element.getAttribute("name", IConstants.XWT_NAMESPACE);
-		}
-		if (attribute != null) {
-			elementName = attribute.getValue().trim();
-		}
-		if (elementName == null || elementName.length() == 0) {
-			elementName = element.getName();
-		}
-		if (elementName == null) {
-			elementName = "";
-		}
-		if (elementName.length() > 1) {
-			elementName = Character.toUpperCase(elementName.charAt(0)) + elementName.substring(1);
-		}
-
-		name = value + elementName;
-		while (exist(name)) {
-			name = value + elementName + (++i);
-		}
-		return name;
-	}
-
-	private IMethod findMethod(IMethod[] methods, String methodName) {
-		for (int i = 0; i < methods.length; i++) {
-			IMethod method = methods[i];
-			if (method.getElementName().equals(methodName))
-				return method;
-		}
-		return null;
-	}
-
-	public void createHandler(String handlerName) {
-		if (handlerName == null) {
-			return;
-		}
-		List<Class<?>> argus = new ArrayList<Class<?>>();
-		argus.add(Object.class);
-		argus.add(Event.class);
-		createHandler(handlerName, null, null, argus);
-	}
-
-	public void createHandler(String methodName, Class<?> returnType, String contentReturnValue,
-			List<Class<?>> arguments) {
-		ASTHelper.createMethod(type, methodName, returnType, contentReturnValue, arguments);
-	}
-
-	/**
-	 * Create all handlers.
-	 */
-	public void createHandlers() {
-		XamlDocument xamlDocument = (XamlDocument) designer.getDocumentRoot();
-		XamlElement rootElement = xamlDocument.getRootElement();
-		List<XamlAttribute> handlerAttrs = new ArrayList<XamlAttribute>();
-		retrieveHandlerAttrs(rootElement, handlerAttrs);
-		if (handlerAttrs.isEmpty()) {
-			return;
-		}
-		for (XamlAttribute xamlAttribute : handlerAttrs) {
-			String handlerName = xamlAttribute.getValue();
-			if (exist(handlerName)) {
-				continue;
-			}
-			createHandler(handlerName);
-		}
-	}
-
-	private void retrieveHandlerAttrs(XamlElement element, List<XamlAttribute> handlers) {
-		EList<String> attributeNames = element.attributeNames();
-		for (String attrName : attributeNames) {
-			if (attrName.endsWith(IEventConstants.SUFFIX)) {
-				XamlAttribute attribute = element.getAttribute(attrName);
-				if (attribute != null && attribute.getValue() != null) {
-					handlers.add(attribute);
-				}
-			}
-		}
-		for (XamlElement child : element.getChildNodes()) {
-			retrieveHandlerAttrs(child, handlers);
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/menus/BindingsMenuManager.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/menus/BindingsMenuManager.java
deleted file mode 100755
index b6575b0..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/menus/BindingsMenuManager.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.menus;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.tools.ui.designer.databinding.Observable;
-import org.eclipse.xwt.tools.ui.designer.databinding.ObservableUtil;
-import org.eclipse.xwt.tools.ui.designer.databinding.Property;
-import org.eclipse.xwt.tools.ui.designer.editor.actions.CreateBindingAction;
-import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
-import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class BindingsMenuManager extends MenuManager {
-
-	private EditPart editPart;
-
-	public BindingsMenuManager(EditPart editPart) {
-		super("Bindings");
-		this.editPart = editPart;
-		if (editPart != null) {
-			createMenus(this);
-		}
-	}
-
-	private void createMenus(MenuManager parent) {
-		if (!(editPart instanceof WidgetEditPart)) {
-			return;
-		}
-		Widget observe = ((WidgetEditPart) editPart).getWidget();
-		if (observe == null || observe.isDisposed()) {
-			return;
-		}
-		Observable observable = ObservableUtil.getObservable(observe);
-		Property[] properties = observable.getProperties();
-		for (Property property : properties) {
-			Image image = ImageShop.getImageForType(property.getType());
-			parent.add(new CreateBindingAction(editPart, observe, property.getName(), image));
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/menus/EventMenuManager.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/menus/EventMenuManager.java
deleted file mode 100755
index fa0ea46..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/menus/EventMenuManager.java
+++ /dev/null
@@ -1,283 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.menus;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import org.eclipse.xwt.IEventConstants;
-import org.eclipse.xwt.javabean.metadata.BeanEvent;
-import org.eclipse.xwt.metadata.IEvent;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.gef.EditPart;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
-import org.eclipse.xwt.tools.ui.designer.editor.actions.AddEventHandlerAction;
-import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-public class EventMenuManager extends MenuManager {
-	private EditPart editpart;
-	private XWTDesigner designer;
-
-	static Map<String, List<String>> createEventMap() {
-		Map<String, List<String>> eventsMap = new HashMap<String, List<String>>();
-		
-		ArrayList<String> events = new ArrayList<String>();
-		events.add("Active");
-		events.add("Close");
-		events.add("Deactive");
-		events.add("Deiconify");
-		events.add("Iconify");
-		eventsMap.put("shell", events);
-
-		events = new ArrayList<String>();
-		events.add("Move");
-		events.add("Resize");
-		eventsMap.put("control", events);
-
-		events = new ArrayList<String>();
-		events.add("Collapse");
-		events.add("Expand");
-		eventsMap.put("tree", events);
-
-		events = new ArrayList<String>();
-		events.add("Collapse");
-		events.add("Expand");
-		eventsMap.put("item", events);
-
-		events = new ArrayList<String>();
-		events.add("Selection");
-		events.add("DefaultSelection");
-		eventsMap.put("selection", events);
-
-		events = new ArrayList<String>();
-		events.add("FocusIn");
-		events.add("FocusOut");
-		eventsMap.put("focus", events);
-
-		events = new ArrayList<String>();
-		events.add("HardKeyUp");
-		events.add("HardKeyDown");
-		eventsMap.put("hardKey", events);
-
-		events = new ArrayList<String>();
-		events.add("KeyUp");
-		events.add("KeyDown");
-		eventsMap.put("key", events);
-
-		events = new ArrayList<String>();
-		events.add("Traverse");
-		eventsMap.put("traverse", events);
-
-		events = new ArrayList<String>();
-		events.add("MouseDoubleClick");
-		events.add("MouseUp");
-		events.add("MouseDown");
-		eventsMap.put("mouse", events);
-
-		events = new ArrayList<String>();
-		events.add("MouseMove");
-		eventsMap.put("mouseMove", events);
-
-		events = new ArrayList<String>();
-		events.add("MouseWheel");
-		eventsMap.put("mouseWheel", events);
-
-		events = new ArrayList<String>();
-		events.add("MouseEnter");
-		events.add("MouseEit");
-		events.add("MouseHover");
-		eventsMap.put("mouseTrack", events);
-
-		events = new ArrayList<String>();
-		events.add("Show");
-		events.add("Hide");
-		eventsMap.put("menu", events);
-
-		events = new ArrayList<String>();
-		events.add("EraseItem");
-		events.add("MeasureItem");
-		events.add("PaintItem");
-		eventsMap.put("item", events);
-
-		events = new ArrayList<String>();
-		events.add("Arm");
-		eventsMap.put("arm", events);
-
-		events = new ArrayList<String>();
-		events.add("Dispose");
-		eventsMap.put("dispose", events);
-
-		events = new ArrayList<String>();
-		events.add("Help");
-		eventsMap.put("help", events);
-
-		events = new ArrayList<String>();
-		events.add("Paint");
-		eventsMap.put("paint", events);
-
-		events = new ArrayList<String>();
-		events.add("Settings");
-		eventsMap.put("settings", events);
-
-		events = new ArrayList<String>();
-		events.add("Verify");
-		eventsMap.put("verify", events);
-
-		events = new ArrayList<String>();
-		events.add("Modify");
-		eventsMap.put("modify", events);
-
-		events = new ArrayList<String>();
-		events.add("DragDetect");
-		eventsMap.put("dragDetect", events);
-
-		events = new ArrayList<String>();
-		events.add("MenuDetect");
-		eventsMap.put("menuDetect", events);
-		
-		return eventsMap;
-	}
-	
-	public EventMenuManager(EditPart editpart, XWTDesigner designer) {
-		super("Add event handler");
-		this.editpart = editpart;
-		this.designer = designer;
-		createMenus(this);
-	}
-
-	protected void updateMap(Map<String, List<String>> eventsMap, Collection<String> existingEvents) {
-		Set<Entry<String, List<String>>> entrySet = eventsMap.entrySet();
-		for (Entry<String, List<String>> entry : entrySet) {
-			List<String> value = entry.getValue();
-			for (String string : value.toArray(new String[value.size()])) {
-				String eventKey = string.toLowerCase();
-				if (existingEvents.contains(eventKey)) {
-					value.remove(string);
-				}
-			}
-		}
-	}
-
-	/**
-	 * @param editpart
-	 * @param editor
-	 */
-	private void createMenus(MenuManager parent) {
-		Map<String, List<String>> eventsMap = createEventMap();
-	
-		List<String> eventNames = new ArrayList<String>();
-		IEvent[] beanEvents = getBeanEvents(editpart);
-		if (beanEvents.length != 0) {
-			for (IEvent event : beanEvents) {
-				String name = event.getName().trim();
-				if (eventsMap.get(name) != null) {
-					eventNames.add(name);
-				} else {
-					System.err.println(name + " Not Defined...");
-				}
-			}
-			
-			Collection<String> existingEvents = getEventKeys(editpart);
-			// filter existing events
-			updateMap(eventsMap, existingEvents);
-			// Remove empty entry
-			for (Object key : eventsMap.keySet().toArray()) {
-				List<String> events = eventsMap.get(key);
-				if (events.isEmpty()) {
-					eventsMap.remove(key);
-				}
-			}
-		}
-		
-		Collections.sort(eventNames);
-
-		for (String type : eventNames) {
-			ImageDescriptor image = ImageShop.getImageDescriptor(ImageShop.IMG_EVENT);
-			MenuManager menu = new MenuManager(type, image, null);
-			List<String> events = eventsMap.get(type);
-			if (events != null) {
-				for (String event : events) {
-					menu.add(new AddEventHandlerAction(editpart, designer, event));
-				}
-				parent.add(menu);
-			}
-		}
-	}
-
-	private IEvent[] getBeanEvents(EditPart editpart) {
-		if (editpart == null) {
-			return new IEvent[0];
-		}
-		Object model = editpart.getModel();
-		if (model instanceof XamlNode) {
-			IMetaclass metaclass = XWTUtility.getMetaclass((XamlNode) model);
-			if (metaclass != null) {
-				IEvent[] events = metaclass.getEvents();
-				List<IEvent> result = new ArrayList<IEvent>();
-				for (IEvent event : events) {
-					if (event instanceof BeanEvent) {
-						result.add(event);
-					}
-				}
-				return result.toArray(new IEvent[result.size()]);
-			}
-		}
-		return new IEvent[0];
-	}
-	
-	private Collection<String> getEventKeys(EditPart editpart) {
-		if (editpart == null) {
-			return Collections.EMPTY_LIST;
-		}
-		Object model = editpart.getModel();
-		if (model instanceof XamlNode) {
-			XamlNode xamlNode = (XamlNode) model;
-			IMetaclass metaclass = XWTUtility.getMetaclass(xamlNode);
-			if (metaclass != null) {
-				IEvent[] events = metaclass.getEvents();
-				HashSet<String> result = new HashSet<String>();
-				for (IEvent event : events) {
-					String name = event.getName();
-					if (hasEvent(xamlNode, name)) {
-						result.add(name.toLowerCase());
-					}
-				}
-				return result;
-			}
-		}
-		return Collections.EMPTY_LIST;
-	}
-
-	protected boolean hasEvent(XamlNode xamlNode, String name) {
-		String eventName = name + IEventConstants.SUFFIX;
-		EList<XamlAttribute> attributes = xamlNode.getAttributes();
-		for (XamlAttribute attribute : attributes) {
-			String attributeName = attribute.getName();
-			if (eventName.equalsIgnoreCase(attributeName)) {
-				return true;
-			}
-		}
-		return false;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/menus/LayoutMenuManager.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/menus/LayoutMenuManager.java
deleted file mode 100755
index 75763e3..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/menus/LayoutMenuManager.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.menus;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.xwt.tools.ui.designer.editor.actions.ChangeLayoutAction;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
-
-/**
- * @author rui.ban rui.ban@soyatec.com
- */
-public class LayoutMenuManager extends MenuManager {
-
-	private EditPart editPart;
-
-	public LayoutMenuManager(EditPart editPart, String text) {
-		super(text);
-		this.editPart = editPart;
-		if (LayoutsHelper.canSetLayout(editPart)) {
-			initMenus();
-		}
-	}
-
-	private void initMenus() {
-		for (LayoutType layout : LayoutsHelper.layoutsList) {
-			add(new ChangeLayoutAction(editPart, layout));
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/BraceHandler.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/BraceHandler.java
deleted file mode 100755
index da031ba..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/BraceHandler.java
+++ /dev/null
@@ -1,313 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.model;
-
-import java.util.NoSuchElementException;
-import java.util.StringTokenizer;
-
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.internal.xml.Attribute;
-import org.eclipse.emf.common.util.EMap;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * Parse the XAML extension Markup: {StaticResource test} {StaticResource RessourceKey=test} {DynamicResource {x:Static SystemColors.ControlBrushKey}}
- * 
- * @author jliu jin.liu@soyatec.com
- */
-public class BraceHandler {
-	private XamlElement root;
-	private XamlNode current;
-	private XamlNode forParse;
-	private XamlDocument document;
-
-	public BraceHandler(XamlDocument document) {
-		this.document = document;
-	}
-
-	public XamlDocument getDocument() {
-		return document;
-	}
-
-	public XamlNode parse(XamlNode element, String text) {
-		this.forParse = element;
-		if (root != null) {
-			BraceHandler parser = new BraceHandler(document);
-			return parser.parse(element, text);
-		}
-		current = element;
-
-		StringTokenizer stringTokenizer = new StringTokenizer(text, "{}", true);
-		String previous = null;
-		String nextPrevious = null;
-		while (stringTokenizer.hasMoreTokens()) {
-			String token = stringTokenizer.nextToken();
-
-			if (previous != null) {
-				if (previous.equals("{")) {
-					if (token.equals("}")) {
-						// escape sequence
-						if (stringTokenizer.hasMoreTokens()) {
-							handleBlock(stringTokenizer.nextToken(" \t\n\r\f"), false);
-						}
-					} else {
-						startBlock();
-					}
-				} else if (previous.equals("}")) {
-					endBlock();
-				} else {
-					StringBuffer block = new StringBuffer(previous);
-					if (token.equals("{")) {
-						int level = 1;
-						block.append(token);
-						while (stringTokenizer.hasMoreTokens() && level >= 0) {
-							String value = stringTokenizer.nextToken();
-							if (value.equals("{")) {
-								level++;
-							} else if (value.equals("}")) {
-								level--;
-							}
-							if (level >= 0) {
-								block.append(value);
-							}
-						}
-					}
-					handleBlock(block.toString(),
-							(nextPrevious == null || !nextPrevious.equals("}")));
-				}
-			}
-			nextPrevious = previous;
-			previous = token;
-		}
-		XamlNode result = root;
-		root = null;
-		current = null;
-		return result;
-	}
-
-	protected void startBlock() {
-	}
-
-	protected void endBlock() {
-		if (current != null) {
-			EObject container = current.eContainer();
-			current = (XamlNode) container.eContainer();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.xwt.tools.ui.designer.core.editor.builder.BraceHandler#expendNamespaces(org.eclipse.xwt.tools.ui.xaml.XamlNode, java.lang.String)
-	 */
-	protected String expendNamespaces(XamlNode element, String value) {
-		if (value.indexOf(':') == -1) {
-			return value;
-		}
-		EMap<String, String> declaredNamespaces = getDocument().getDeclaredNamespaces();
-		int length = IConstants.XAML_CLR_NAMESPACE_PROTO.length();
-		for (String prefix : declaredNamespaces.keySet()) {
-			String namespace = declaredNamespaces.get(prefix);
-			if (namespace.startsWith(IConstants.XAML_CLR_NAMESPACE_PROTO)) {
-				String packageName = namespace.substring(length);
-				value = value.replace(prefix + ":", packageName + '.');
-			}
-		}
-		return value;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.xwt.tools.ui.designer.core.editor.builder.BraceHandler#handleContent(org.eclipse.xwt.tools.ui.xaml.XamlNode, java.lang.String)
-	 */
-	protected void handleContent(XamlNode element, String text) {
-		if (text.startsWith("{") && text.endsWith("}")) {
-			parse(element, text);
-			return;
-		} else {
-			// handle the case: <x:Array Type="ns:Type" >
-			if (IConstants.XAML_X_TYPE.equals(element.getName()) || IConstants.XAML_X_STATIC.equals(element.getName())) {
-				int index = text.indexOf(':');
-				if (index != -1) {
-					String ns = text.substring(0, index);
-					String content = text.substring(index + 1);
-					String namespace = getDocument().getDeclaredNamespace(ns);
-					if (namespace != null) {
-						XamlElement childElement = element.getChild(content, namespace);
-						if (childElement == null) {
-							childElement = XamlFactory.eINSTANCE.createElement(content, namespace);
-							childElement.getChildNodes().add(childElement);
-						}
-						return;
-					}
-				}
-			}
-		}
-		if (element instanceof Attribute && IConstants.XWT_X_NAMESPACE.equals(element.getNamespace())
-				&& IConstants.XAML_STYLE.equalsIgnoreCase(element.getName())) {
-			// handle the expansion of x:Style = "(j:class).variable"
-			text = expendNamespaces(element, text);
-		}
-		element.setValue(text);
-	}
-
-	protected XamlElement createElement(String token) {
-		int index = token.indexOf(':');
-		String namespace = null;
-		String name = token;
-		if (index != -1) {
-			String prefix = token.substring(0, index);
-			name = token.substring(index + 1);
-			namespace = document.getDeclaredNamespace(prefix);
-		}
-		if (namespace == null) {
-			namespace = document.getDeclaredNamespace(null);
-		}
-		XamlElement element = null;
-		if (current != null) {
-			element = current.getChild(name, namespace);
-		}
-		if (element == null) {
-			element = XamlFactory.eINSTANCE.createElement(name, namespace);
-			element.setId(XWTModelBuilder.generateID(name));
-		}
-		if (current != null && current != forParse) {
-			// There's no need to add the children for given parent at the beginning of parser.
-			current.getChildNodes().add(element);
-		} else {
-			if (root == null) {
-				root = element;
-			}
-		}
-		current = element;
-		return element;
-	}
-
-	private XamlAttribute createAttribute(XamlNode parent, String name, String namespace) {
-		XamlAttribute attribute = parent.getAttribute(name, namespace);
-		if (attribute == null) {
-			attribute = XamlFactory.eINSTANCE.createAttribute(name, namespace);
-			attribute.setId(XWTModelBuilder.generateID(name));
-		}
-		return attribute;
-	}
-
-	protected void handleBlock(String content, boolean newElement) {
-		String rootPattern = " \t\n\r\f=,";
-		StringTokenizer tokenizer = new StringTokenizer(content, rootPattern, true);
-		String attributeName = null;
-		String attributeValue = null;
-		boolean equals = false;
-		XamlElement element = null;
-		if (!newElement && current instanceof XamlElement) {
-			element = (XamlElement) current;
-		}
-
-		boolean skip = false;
-		String token = null;
-		while (skip || tokenizer.hasMoreTokens()) {
-			if (!skip) {
-				token = tokenizer.nextToken(rootPattern).trim();
-			}
-			skip = false;
-			if (token.length() == 0) {
-				continue;
-			}
-			if (element == null) {
-				element = createElement(token);
-			} else {
-				if (token.equals("=")) {
-					equals = true;
-					if ("xpath".equalsIgnoreCase(attributeName)) {
-						attributeValue = tokenizer.nextToken(",");
-					}
-					continue;
-				}
-				if (token.equals(",")) {
-					if (attributeName != null) {
-						if (attributeValue != null) {
-							XamlAttribute attribute = createAttribute(element, attributeName, element.getNamespace());
-							if ("path".equalsIgnoreCase(attributeName) && "Binding".equalsIgnoreCase(element.getName())) {
-								attributeValue = expendNamespaces(element, attributeValue);
-							}
-							handleContent(attribute, attributeValue);
-							if (!element.getAttributes().contains(attribute)) {
-								element.getAttributes().add(attribute);
-							}
-							current = attribute;
-						} else {
-							element.setValue(attributeName);
-						}
-						attributeName = null;
-						attributeValue = null;
-						equals = false;
-					}
-				} else {
-					if (attributeName == null) {
-						attributeName = token;
-					} else {
-						// String block = token;
-						StringBuffer block = new StringBuffer(token);
-						if (token.startsWith("{")) {
-							int level = 1;
-							while (tokenizer.hasMoreTokens() && level > 0) {
-								String value = tokenizer.nextToken("{}");
-								if (value.equals("{")) {
-									level++;
-								} else if (value.equals("}")) {
-									level--;
-								}
-								block.append(value);
-							}
-						}
-						attributeValue = block.toString();
-
-						try {
-							token = tokenizer.nextToken(rootPattern).trim();
-							skip = true;
-							continue;
-						} catch (NoSuchElementException e) {
-						}
-					}
-				}
-			}
-			skip = false;
-		}
-
-		if (equals) {
-			XamlAttribute attribute = createAttribute(element, attributeName, element.getNamespace());
-			if ("path".equalsIgnoreCase(attributeName) && "Binding".equalsIgnoreCase(element.getName())) {
-				attributeValue = expendNamespaces(element, attributeValue);
-			}
-			if (attributeValue != null) {
-				handleContent(attribute, attributeValue);
-			} else {
-				current = attribute;
-			}
-			if (!element.getAttributes().contains(attribute)) {
-				element.getAttributes().add(attribute);
-			}
-		} else if (attributeName != null) {
-			int index = attributeName.indexOf(":");
-			if (index != -1) {
-				element = createElement(attributeName);
-				current = (XamlNode) current.eContainer();
-			} else {
-				current.setValue(attributeName);
-			}
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/BuilderContext.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/BuilderContext.java
deleted file mode 100755
index e2fc66e..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/BuilderContext.java
+++ /dev/null
@@ -1,287 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.model;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.util.EMap;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-import org.w3c.dom.Attr;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.Text;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class BuilderContext {
-
-	private static final String CHARACTERS = "abcdefghigklmnopqrstuvwxyz";
-
-	private final Map<XamlNode, IDOMNode> model2text = new HashMap<XamlNode, IDOMNode>(
-			1);
-	private final Map<IDOMNode, XamlNode> text2model = new HashMap<IDOMNode, XamlNode>(
-			1);
-
-	private XWTModelBuilder modelBuilder;
-	private IDOMDocument textRoot;
-	private XamlDocument modelRoot;
-	private Synchronizer synchronizer;
-
-	private Adapter modelAdapter;
-	private INodeAdapter nodeAdapter;
-
-	public BuilderContext(XWTModelBuilder modelBuilder,
-			IDOMDocument textDocument, XamlDocument modelDocument,
-			Synchronizer synchronizer) {
-		Assert.isNotNull(textDocument);
-		Assert.isNotNull(modelDocument);
-		this.modelBuilder = modelBuilder;
-		this.textRoot = textDocument;
-		this.modelRoot = modelDocument;
-		this.synchronizer = synchronizer;
-	}
-
-	public XWTModelBuilder getModelBuilder() {
-		return modelBuilder;
-	}
-
-	public IDOMDocument getTextRoot() {
-		return textRoot;
-	}
-
-	public XamlDocument getModelRoot() {
-		return modelRoot;
-	}
-
-	public Synchronizer getSynchronizer() {
-		if (synchronizer == null) {
-			synchronizer = new Synchronizer();
-		}
-		return synchronizer;
-	}
-
-	public void map(XamlNode model, IDOMNode textNode) {
-		model2text.put(model, textNode);
-		text2model.put(textNode, model);
-		if (model != null && modelAdapter != null
-				&& !model.eAdapters().contains(modelAdapter)) {
-			model.eAdapters().add(modelAdapter);
-		}
-		if (textNode != null && nodeAdapter != null
-				&& !textNode.getAdapters().contains(nodeAdapter)) {
-			textNode.addAdapter(nodeAdapter);
-		}
-	}
-
-	public void remove(Object obj) {
-		IDOMNode removedText = model2text.remove(obj);
-		if (removedText != null) {
-			text2model.remove(removedText);
-			if (nodeAdapter != null) {
-				removedText.removeAdapter(nodeAdapter);
-			}
-		}
-		XamlNode removedModel = text2model.remove(obj);
-		if (removedModel != null) {
-			model2text.remove(removedModel);
-			if (modelAdapter != null) {
-				removedModel.eAdapters().remove(modelAdapter);
-			}
-		}
-	}
-
-	public void clear() {
-		model2text.clear();
-		text2model.clear();
-	}
-
-	public XamlNode getModel(Object textNode) {
-		return text2model.get(textNode);
-	}
-
-	public IDOMNode getTextNode(Object model) {
-		return model2text.get(model);
-	}
-
-	public List<IDOMElement> getChildNodes(IDOMNode parent) {
-		if (parent == null) {
-			return Collections.emptyList();
-		}
-		List<IDOMElement> childNodes = new ArrayList<IDOMElement>();
-		Node child = parent.getFirstChild();
-		while (child != null) {
-			if (child instanceof IDOMElement
-					&& child.getLocalName().indexOf(".") == -1) {
-				childNodes.add((IDOMElement) child);
-			}
-			child = child.getNextSibling();
-		}
-		return childNodes;
-	}
-
-	public List<Text> getContentNodes(IDOMNode node) {
-		NodeList childNodes = node.getChildNodes();
-		int length = childNodes.getLength();
-		if (length == 0) {
-			return Collections.emptyList();
-		}
-		List<Text> contentTexts = new ArrayList<Text>();
-		for (int i = 0; i < length; i++) {
-			Node item = childNodes.item(i);
-			if (item.getNodeType() == Node.TEXT_NODE) {
-				contentTexts.add((Text) item);
-			}
-		}
-		return contentTexts;
-	}
-
-	/**
-	 * Return content of a Node, "<j:String>hello world</j:String>"
-	 */
-	public String getContent(IDOMNode parent) {
-		List<Text> textNodes = getContentNodes(parent);
-		if (textNodes.isEmpty()) {
-			return null;
-		}
-		StringBuilder content = new StringBuilder();
-		for (Text text : textNodes) {
-			String value = text.getNodeValue();
-			if (value == null) {
-				continue;
-			}
-			value = filter(value.trim());
-			if (value.length() != 0) {
-				content.append(value);
-			}
-		}
-		return content.length() > 0 ? content.toString() : null;
-	}
-
-	public String filter(String value) {
-		value = value.replace("\n", "");
-		value = value.replace("\t", "");
-		value = value.replace("\r", "");
-		return value;
-	}
-
-	public List<IDOMNode> getAttributes(IDOMNode parent) {
-		if (parent == null) {
-			return Collections.emptyList();
-		}
-		List<IDOMNode> attributes = new ArrayList<IDOMNode>();
-		NamedNodeMap attrMap = parent.getAttributes();
-		if (attrMap != null) {
-			int length = attrMap.getLength();
-			for (int i = 0; i < length; i++) {
-				IDOMAttr item = (IDOMAttr) attrMap.item(i);
-				String name = item.getLocalName();
-				String prefix = item.getPrefix();
-				if (name.indexOf(".") != -1) {
-					name = name.substring(name.indexOf(".") + 1);
-					prefix = null;
-				}
-				if ("xmlns".equals(name)) {
-					continue;
-				}
-				if ("xmlns".equals(prefix)) {
-					continue;
-				}
-				attributes.add(item);
-			}
-		}
-		NodeList children = parent.getChildNodes();
-		if (children != null) {
-			for (int i = 0; i < children.getLength(); i++) {
-				Node item = children.item(i);
-				String localName = item.getLocalName();
-				if (item instanceof IDOMElement && localName.indexOf(".") != -1) {
-					attributes.add((IDOMElement) item);
-				}
-			}
-		}
-		return attributes;
-	}
-
-	public boolean contains(Node parent, Attr attr) {
-		NamedNodeMap attributes = parent.getAttributes();
-		for (int i = attributes.getLength() - 1; i >= 0; i--) {
-			if (attr == attributes.item(i)) {
-				return true;
-			}
-		}
-
-		return false;
-	}
-
-	protected String getPrefix(String namespace) {
-		EMap<String, String> declaredNamespaces = modelRoot
-				.getDeclaredNamespaces();
-		Set<String> existings = declaredNamespaces.keySet();
-		for (String p : existings) {
-			if (namespace.equals(declaredNamespaces.get(p))) {
-				return p;
-			}
-		}
-		char[] c = CHARACTERS.toCharArray();
-		for (char d : c) {
-			String prefix = Character.toString(d);
-			if (!existings.contains(prefix)) {
-				return prefix;
-			}
-		}
-		return "j";
-	}
-
-	/**
-	 * @param modelAdapter
-	 *            the modelAdapter to set
-	 */
-	public void setModelAdapter(Adapter modelAdapter) {
-		this.modelAdapter = modelAdapter;
-	}
-
-	/**
-	 * @return the modelAdapter
-	 */
-	public Adapter getModelAdapter() {
-		return modelAdapter;
-	}
-
-	/**
-	 * @param nodeAdapter
-	 *            the nodeAdapter to set
-	 */
-	public void setNodeAdapter(INodeAdapter nodeAdapter) {
-		this.nodeAdapter = nodeAdapter;
-	}
-
-	/**
-	 * @return the nodeAdapter
-	 */
-	public INodeAdapter getNodeAdapter() {
-		return nodeAdapter;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/ModelAdapter.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/ModelAdapter.java
deleted file mode 100755
index 0cfda56..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/ModelAdapter.java
+++ /dev/null
@@ -1,415 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.model;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.util.EContentAdapter;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.xwt.tools.ui.designer.editor.model.Synchronizer.EventType;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.Text;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public class ModelAdapter extends EContentAdapter {
-
-	private BuilderContext fContext;
-	private ReverseJob reverseJob;
-
-	public ModelAdapter(BuilderContext mapper) {
-		this.fContext = mapper;
-	}
-
-	public void notifyChanged(Notification notification) {
-		super.notifyChanged(notification);
-		if (notification.isTouch()) {
-			return;
-		}
-		Synchronizer synch = fContext.getSynchronizer();
-		// if (EventType.LoadingEvent != synch.getEventType()) {
-		XWTModelBuilder modelBuilder = fContext.getModelBuilder();
-		modelBuilder.dispatchEvent(notification);
-		// }
-		if (synch.isFree()) {
-			reverse(notification);
-		}
-	}
-
-	private void reverse(Notification msg) {
-		if (reverseJob == null) {
-			reverseJob = new ReverseJob();
-		}
-		reverseJob.reverse(msg);
-	}
-
-	private void tryToUpdateText(Notification msg) {
-		Synchronizer synch = fContext.getSynchronizer();
-		synchronized (synch) {
-			synch.setEventType(EventType.ModelEvent);
-			Object notifier = msg.getNotifier();
-			Object oldValue = msg.getOldValue();
-			Object newValue = msg.getNewValue();
-			if (oldValue != null && oldValue.equals(newValue)) {
-				return;
-			}
-
-			IDOMNode textNode = fContext.getTextNode(notifier);
-			IDOMNode oldNode = fContext.getTextNode(oldValue);
-			IDOMNode newNode = fContext.getTextNode(newValue);
-
-			int eventType = msg.getEventType();
-			switch (eventType) {
-			case Notification.ADD: {
-				if (textNode == null && notifier instanceof EObject) {
-					EObject eContainer = ((EObject) notifier).eContainer();
-					IDOMNode superParent = fContext.getTextNode(eContainer);
-					if (superParent != null) {
-						if (notifier instanceof XamlAttribute) {
-							reverseAttr(superParent, (XamlAttribute) notifier);
-						} else if (notifier instanceof XamlElement) {
-							reverseNode(superParent, (XamlElement) newValue);
-						}
-					}
-					textNode = fContext.getTextNode(notifier);
-				}
-				if (textNode == null
-						|| (!(textNode instanceof IDOMElement) && !(textNode instanceof IDOMAttr))) {
-					break;
-				}
-				if (notifier instanceof XamlAttribute
-						&& textNode instanceof IDOMAttr
-						&& newValue instanceof XamlElement) {
-					validatePrefix((XamlElement) newValue);
-					String flatValue = ((XamlElement) newValue).getFlatValue();
-					if (flatValue == null) {
-						flatValue = "";
-					}
-					((IDOMAttr) textNode).setValue("{" + flatValue + "}");
-				} else if (newValue instanceof XamlAttribute) {
-					reverseAttr(textNode, (XamlAttribute) newValue);
-				} else if (newValue instanceof XamlElement) {
-					reverseNode(textNode, (XamlElement) newValue);
-				}
-				break;
-			}
-			case Notification.ADD_MANY: {
-				System.err.println("ADD_MANY");
-				break;
-			}
-			case Notification.MOVE: {
-				int oldPos = ((Integer) oldValue);
-				int newPos = msg.getPosition();
-				IDOMNode parentNode = textNode;
-				IDOMNode moveable = newNode;
-				if (parentNode == null || moveable == null
-						|| parentNode != moveable.getParentNode()) {
-					break;
-				}
-				List<IDOMElement> eles = fContext.getChildNodes(parentNode);
-				int offset = newPos - oldPos;
-				int oldIndex = eles.indexOf(moveable);
-				int newIndex = offset > 0 ? oldIndex + offset + 1 : oldIndex
-						+ offset;
-				Node nextSibling = moveable.getNextSibling();
-				parentNode.removeChild(moveable);
-				if (nextSibling instanceof Text) {
-					// String nodeValue = ((Text)
-					// nextSibling).getNodeValue();
-					// if ((nodeValue == null || nodeValue.equals(""))) {
-					parentNode.removeChild(nextSibling);
-					// }
-				}
-				if (newIndex >= 0 && newIndex <= eles.size() - 1) {
-					IDOMElement insert = eles.get(newIndex);
-					parentNode.insertBefore(moveable, insert);
-				} else {
-					parentNode.appendChild(moveable);
-				}
-				break;
-			}
-			case Notification.REMOVE: {
-				if (textNode != null) {
-					if (oldNode instanceof IDOMElement) {
-						NodeList nodelist = textNode.getChildNodes();
-						// before remove, we must check if there is the
-						// oldNode
-						// in the textNode.Because the oldNode may have be
-						// deleted.
-						for (int i = 0; i < nodelist.getLength(); i++) {
-							if (nodelist.item(i) == oldNode) {
-								textNode.removeChild(oldNode);
-							}
-						}
-					} else if (textNode instanceof IDOMElement
-							&& oldNode instanceof IDOMAttr) {
-						if (fContext.contains(textNode, (Attr) oldNode)) {
-							((IDOMElement) textNode)
-									.removeAttributeNode((Attr) oldNode);
-						}
-					}
-					fContext.remove(oldNode);
-				}
-				break;
-			}
-			case Notification.REMOVE_MANY: {
-				System.err.println("REMOVE_MANY");
-				break;
-			}
-			case Notification.SET:
-			case Notification.UNSET:
-				if (textNode != null) {
-					if (textNode instanceof Attr) {
-						String value = newValue == null ? "" : newValue
-								.toString();
-						Attr attr = (Attr) textNode;
-						if (!value.equals(attr.getNodeValue())) {
-							attr.setNodeValue(value);
-						}
-					} else if (newValue != null && oldValue != null
-							&& oldValue.equals(fContext.getContent(textNode))) {
-						reverseContent(textNode, newValue.toString());
-					}
-				}
-				break;
-			}
-			synch.setFree();
-		}
-	}
-
-	protected void reverseAttr(IDOMNode parent, XamlAttribute model) {
-		IDOMDocument textDocument = fContext.getTextRoot();
-		validatePrefix(model);
-		String localName = parent.getLocalName();
-		String value = model.getValue();
-		String name = model.getName();
-		if (value == null && model.isUseFlatValue()) {
-			String flatValue = model.getFlatValue();
-			if (flatValue != null && !"".equals(flatValue)) {
-				value = "{" + flatValue + "}";
-			}
-		}
-		if (value != null && parent instanceof IDOMElement) {
-			IDOMAttr attr = (IDOMAttr) textDocument.createAttribute(name);
-			attr.setNodeValue(value);
-			attr.setPrefix(model.getPrefix());
-			((IDOMElement) parent).setAttributeNode(attr);
-			fContext.map(model, attr);
-		} else {
-			String childName = localName + "." + name;
-			while (localName != null && localName.indexOf(".") != -1) {
-				/*
-				 * If the parent like: "TableViewer.table", we should add the
-				 * new attribute("layoutData") to TableViewer element directly,
-				 * the new element should be "TableViewer.table.layoutData" and
-				 * its parent should be "TableViewer" but not
-				 * "TableViewer.table".
-				 */
-				parent = (IDOMElement) parent.getParentNode();
-				localName = parent.getLocalName();
-			}
-			EList<XamlElement> childNodes = model.getChildNodes();
-			EList<XamlAttribute> attributes = model.getAttributes();
-			if (!attributes.isEmpty()) {
-				for (XamlAttribute attr : attributes) {
-					if (attr.getValue() != null) {
-						IDOMElement node = (IDOMElement) textDocument
-								.createElement(childName);
-						reverseAttr(node, attr);
-						parent.appendChild(node);
-						fContext.map(model, node);
-					} else {
-						IDOMElement node = (IDOMElement) textDocument
-								.createElement(childName);
-						EList<XamlElement> childNodes2 = attr.getChildNodes();
-						for (XamlElement child : childNodes2) {
-							reverseNode(node, child);
-						}
-						parent.appendChild(node);
-						fContext.map(model, node);
-					}
-				}
-			} else if (!childNodes.isEmpty()) {
-				IDOMElement node = (IDOMElement) textDocument
-						.createElement(childName);
-				for (XamlElement child : childNodes) {
-					reverseNode(node, child);
-				}
-				parent.appendChild(node);
-				fContext.map(model, node);
-			} else {
-				IDOMElement node = (IDOMElement) textDocument
-						.createElement(childName);
-				parent.appendChild(node);
-				fContext.map(model, node);
-			}
-		}
-	}
-
-	private String validatePrefix(XamlNode node) {
-		IDOMDocument textDocument = fContext.getTextRoot();
-		XamlDocument modelRoot = fContext.getModelRoot();
-		String prefix = node.getPrefix();
-		String namespace = node.getNamespace();
-		if (prefix == null && namespace != null) {
-			prefix = fContext.getPrefix(namespace);
-		}
-		if ((prefix != null && !prefix.equals(node.getPrefix()))
-				|| (prefix == null && node.getPrefix() != null)) {
-			node.setPrefix(prefix);
-		}
-		if (prefix != null) {
-			Element root = textDocument.getDocumentElement();
-			Attr prefixNode = root.getAttributeNode(prefix);
-			if (prefixNode == null) {
-				root.setAttribute("xmlns:" + prefix, namespace);
-				modelRoot.addDeclaredNamespace(prefix, namespace);
-			}
-		}
-		for (XamlAttribute attr : node.getAttributes()) {
-			validatePrefix(attr);
-		}
-		for (XamlElement child : node.getChildNodes()) {
-			validatePrefix(child);
-		}
-		return prefix;
-	}
-
-	protected void reverseNode(IDOMNode parent, XamlElement element) {
-		String name = element.getName();
-		IDOMDocument textDocument = fContext.getTextRoot();
-		IDOMElement node = (IDOMElement) textDocument.createElement(name);
-		EList<XamlAttribute> attributes = element.getAttributes();
-		EList<XamlElement> childnodes = element.getChildNodes();
-		for (XamlAttribute attribute : attributes) {
-			reverseAttr(node, attribute);
-		}
-		for (XamlElement child : childnodes) {
-			reverseNode(node, child);
-		}
-		String prefix = validatePrefix(element);
-		if (prefix != null) {
-			node.setPrefix(prefix);
-		}
-		XamlNode next = null;
-		XamlNode container = (XamlNode) element.eContainer();
-		if (container != null) {
-			int i = container.getChildNodes().indexOf(element);
-			try {
-				next = container.getChildNodes().get(i + 1);
-			} catch (Exception e) {
-			}
-		}
-		if (next != null) {
-			IDOMNode nextNode = fContext.getTextNode(next);
-			parent.insertBefore(node, nextNode);
-		} else {
-			parent.appendChild(node);
-		}
-		String value = element.getValue();
-		if (value != null) {
-			reverseContent(node, value);
-		}
-		fContext.map(element, node);
-	}
-
-	protected void reverseContent(IDOMNode node, String value) {
-		String content = fContext.getContent(node);
-		if (value == null && content == null || value != null
-				&& value.equals(content)) {
-			return;
-		}
-		value = value == null ? "" : value;
-		if (content != null) {
-			List<Text> contentNodes = fContext.getContentNodes(node);
-			for (Text text : contentNodes) {
-				String nodeValue = text.getNodeValue();
-				if (nodeValue == null
-						|| fContext.filter(nodeValue).length() == 0) {
-					continue;
-				}
-				text.setData(value);
-			}
-		} else {
-			IDOMDocument textDocument = fContext.getTextRoot();
-			Text textNode = textDocument.createTextNode(value == null ? ""
-					: value);
-			node.appendChild(textNode);
-		}
-	}
-
-	class ReverseJob extends Job {
-		private List<Notification> reverseJobs;
-		private long timestamp = -1;
-
-		public ReverseJob() {
-			super("Reverse");
-			setPriority(SHORT);
-			setSystem(true);
-			ISchedulingRule rule = new ISchedulingRule() {
-				public boolean isConflicting(ISchedulingRule rule) {
-					return getClass() == rule.getClass();
-				}
-
-				public boolean contains(ISchedulingRule rule) {
-					return getClass() == rule.getClass();
-				}
-			};
-			setRule(rule);
-		}
-
-		protected IStatus run(IProgressMonitor monitor) {
-			List<Notification> jobs = new ArrayList<Notification>(reverseJobs);
-			for (Notification event : jobs) {
-				tryToUpdateText(event);
-			}
-			synchronized (reverseJobs) {
-				reverseJobs.removeAll(jobs);
-				if (!reverseJobs.isEmpty()) {
-					schedule(1000);
-				}
-			}
-			timestamp = -1;
-			return Status.OK_STATUS;
-		}
-
-		public void reverse(Notification event) {
-			if (reverseJobs == null) {
-				reverseJobs = new ArrayList<Notification>();
-			}
-			reverseJobs.add(event);
-			if (timestamp == -1) {
-				schedule(1000);
-			}
-			timestamp = System.currentTimeMillis();
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/ModelCacheUtility.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/ModelCacheUtility.java
deleted file mode 100755
index 9ac5a73..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/ModelCacheUtility.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.model;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.emf.ecore.xmi.XMLResource;
-import org.eclipse.xwt.tools.ui.designer.core.DesignerPlugin;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-import org.osgi.framework.Bundle;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class ModelCacheUtility {
-	protected static final IPath VISUAL_EDITOR_MODEL_CACHE_ROOT = DesignerPlugin.VE_CACHE_ROOT_NAME
-			.append("emfmodel"); //$NON-NLS-1$ 
-	private static final Map XML_CACHE_SAVE_OPTIONS;
-	static {
-		// Normally focus on speed not readability
-		XML_CACHE_SAVE_OPTIONS = new HashMap(4);
-		XML_CACHE_SAVE_OPTIONS.put(XMLResource.OPTION_ENCODING, "UTF-8"); //$NON-NLS-1$
-		XML_CACHE_SAVE_OPTIONS.put(XMLResource.OPTION_PROCESS_DANGLING_HREF,
-				XMLResource.OPTION_PROCESS_DANGLING_HREF_RECORD);
-		XML_CACHE_SAVE_OPTIONS.put(XMLResource.OPTION_SAVE_TYPE_INFORMATION,
-				Boolean.TRUE);
-	}
-
-	protected static IPath getEMFModelCacheDestination(IProject p) {
-		DesignerPlugin plugin = DesignerPlugin.getDefault();
-		Bundle bundle = plugin.getBundle();
-		String symbolicName = bundle.getSymbolicName();
-		IPath workingLocation = p.getWorkingLocation(symbolicName);
-		return workingLocation.append(VISUAL_EDITOR_MODEL_CACHE_ROOT);
-	}
-
-	public static IPath getCacheDirectory(IFile f) {
-		// addCacheResourceListener(); // Make sure we are listening.
-
-		IProject p = f.getProject();
-		IPath projectCachePath = getEMFModelCacheDestination(p);
-		File dir = projectCachePath.toFile();
-		if (!dir.exists())
-			if (dir.mkdirs())
-				return projectCachePath;
-			else
-				return null;
-		else
-			return projectCachePath;
-	}
-
-	protected static IPath getCachedPath(IFile f) {
-		IPath savedPath = getCacheDirectory(f).append(
-				f.getProjectRelativePath());
-		return savedPath.removeFileExtension().addFileExtension("xmi"); //$NON-NLS-1$
-	}
-
-	public static URI getCacheURI(IFile f) {
-		return URI.createFileURI(getCachedPath(f).toString());
-	}
-
-	public static XamlDocument doLoadFromCache(IFile input,
-			IProgressMonitor monitor) {
-		if (monitor == null)
-			monitor = new NullProgressMonitor();
-		monitor.subTask("Loading from cache: " + input.getName());
-		if (isValidCache(input)) {
-			monitor.worked(1);
-			try {
-				URI uri = getCacheURI(input);
-				ResourceSet rs = new ResourceSetImpl();
-				Resource resource = rs.getResource(uri, true);
-				return (XamlDocument) resource.getContents().get(0);
-			} catch (Exception e) {
-				removeCache(input);
-			} finally {
-				monitor.worked(1);
-			}
-		}
-		return null;
-	}
-
-	public static void doSaveCache(XamlDocument document, IFile input,
-			IProgressMonitor monitor) {
-		if (monitor == null)
-			monitor = new NullProgressMonitor();
-		monitor.beginTask("Save model to cache", 4);
-		monitor.worked(1);
-		if (document != null) {
-			try {
-				monitor.worked(1);
-				Resource resource = document.eResource();
-				URI cacheURI = getCacheURI(input);
-				if (resource == null) {
-					ResourceSet rs = new ResourceSetImpl();
-					resource = rs.createResource(cacheURI);
-					resource.getContents().add(document);
-				}
-				if (resource.getURI().equals(cacheURI)) {
-					monitor.worked(1);
-					resource.save(XML_CACHE_SAVE_OPTIONS);
-				} else {
-					File f = getCachedPath(input).toFile();
-					monitor.worked(1);
-					monitor.subTask("Save model to cache" + f.getName());
-					FileOutputStream os = new FileOutputStream(f);
-					resource.save(os, XML_CACHE_SAVE_OPTIONS);
-					os.close();
-				}
-			} catch (RuntimeException e) {
-			} catch (IOException e) {
-				removeCache(input);
-			}
-		}
-		monitor.done();
-	}
-
-	public static void removeCache(IFile file) {
-		try {
-			if (file != null) {
-				getCachedPath(file).toFile().delete();
-			}
-		} catch (Exception e) {
-		}
-	}
-
-	public static boolean isValidCache(IFile f) {
-		File dest = getCachedPath(f).toFile();
-		if (/* dest.exists() && */dest.canRead()) {
-			if (dest.lastModified() > f.getLocalTimeStamp())
-				return true;
-		}
-		return false;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/Synchronizer.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/Synchronizer.java
deleted file mode 100755
index 249b90b..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/Synchronizer.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.model;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public class Synchronizer {
-	public static enum EventType {
-		Free, LoadingEvent, SourceEvent, ModelEvent
-	}
-
-	private EventType eventType = EventType.Free;
-
-	public void setEventType(EventType eventType) {
-		this.eventType = eventType;
-	}
-
-	public EventType getEventType() {
-		return eventType;
-	}
-
-	public boolean isFree() {
-		return eventType == null || eventType == EventType.Free;
-	}
-
-	public void setFree() {
-		setEventType(EventType.Free);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/TextNotification.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/TextNotification.java
deleted file mode 100755
index 83bd358..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/TextNotification.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.model;
-
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public class TextNotification {
-	private INodeNotifier notifier;
-	private int eventType;
-	private Object changedFeature;
-	private Object oldValue;
-	private Object newValue;
-	private int position;
-
-	public TextNotification(INodeNotifier notifier, int eventType,
-			Object changedFeature, Object oldValue, Object newValue, int pos) {
-		this.setNotifier(notifier);
-		this.setEventType(eventType);
-		this.setChangedFeature(changedFeature);
-		this.setOldValue(newValue);
-		this.setNewValue(newValue);
-		this.setPosition(pos);
-	}
-
-	/**
-	 * @param notifier
-	 *            the notifier to set
-	 */
-	public void setNotifier(INodeNotifier notifier) {
-		this.notifier = notifier;
-	}
-
-	/**
-	 * @return the notifier
-	 */
-	public INodeNotifier getNotifier() {
-		return notifier;
-	}
-
-	/**
-	 * @param eventType
-	 *            the eventType to set
-	 */
-	public void setEventType(int eventType) {
-		this.eventType = eventType;
-	}
-
-	/**
-	 * @return the eventType
-	 */
-	public int getEventType() {
-		return eventType;
-	}
-
-	/**
-	 * @param changedFeature
-	 *            the changedFeature to set
-	 */
-	public void setChangedFeature(Object changedFeature) {
-		this.changedFeature = changedFeature;
-	}
-
-	/**
-	 * @return the changedFeature
-	 */
-	public Object getChangedFeature() {
-		return changedFeature;
-	}
-
-	/**
-	 * @param oldValue
-	 *            the oldValue to set
-	 */
-	public void setOldValue(Object oldValue) {
-		this.oldValue = oldValue;
-	}
-
-	/**
-	 * @return the oldValue
-	 */
-	public Object getOldValue() {
-		return oldValue;
-	}
-
-	/**
-	 * @param newValue
-	 *            the newValue to set
-	 */
-	public void setNewValue(Object newValue) {
-		this.newValue = newValue;
-	}
-
-	/**
-	 * @return the newValue
-	 */
-	public Object getNewValue() {
-		return newValue;
-	}
-
-	/**
-	 * @param position
-	 *            the position to set
-	 */
-	public void setPosition(int position) {
-		this.position = position;
-	}
-
-	/**
-	 * @return the position
-	 */
-	public int getPosition() {
-		return position;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/XWTModelBuilder.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/XWTModelBuilder.java
deleted file mode 100755
index bfc04c1..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/XWTModelBuilder.java
+++ /dev/null
@@ -1,644 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.model;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Random;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.IJobManager;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentListener;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.core.internal.document.TextImpl;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.xwt.tools.ui.designer.core.editor.text.StructuredTextHelper;
-import org.eclipse.xwt.tools.ui.designer.core.model.AbstractModelBuilder;
-import org.eclipse.xwt.tools.ui.designer.core.model.IModelBuilder;
-import org.eclipse.xwt.tools.ui.designer.core.util.DisplayUtil;
-import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
-import org.eclipse.xwt.tools.ui.designer.editor.model.Synchronizer.EventType;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTModelUtil;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-import org.w3c.dom.Attr;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-@SuppressWarnings("restriction")
-public class XWTModelBuilder extends AbstractModelBuilder implements
-		IModelBuilder {
-
-	private XamlDocument document;
-	private IDocument jfaceDom;
-	private IFile input;
-	private static Random RANDOM = new Random();
-	private BraceHandler braceHandler;
-
-	private BuilderContext fContext;
-	private Synchronizer synch;
-	private ModelAdapter modelAdapter;
-
-	private ReloadJob reloadJob;
-	private NodeAdapter nodeAdapter = new NodeAdapter();
-
-	public static String generateID(String typeName) {
-		return typeName + RANDOM.nextInt(Integer.MAX_VALUE);
-	}
-
-	public boolean doLoad(IEditorPart designer, final IProgressMonitor monitor) {
-		if (designer == null) {
-			return false;
-		}
-		input = ((XWTDesigner) designer).getFile();
-		jfaceDom = ((XWTDesigner) designer).getDocument();
-		if (jfaceDom == null) {
-			return false;
-		}
-		if (input != null) {
-			document = ModelCacheUtility.doLoadFromCache(input, monitor);
-		}
-		if (document == null) {
-			document = XamlFactory.eINSTANCE.createXamlDocument();
-		}
-		IDOMDocument textDocument = getTextDocument(jfaceDom);
-		if (textDocument == null) {
-			return false;
-		}
-		if (monitor != null) {
-			monitor.beginTask("Loading Document", 100);
-		}
-		jfaceDom.addDocumentListener(new IDocumentListener() {
-			public void documentAboutToBeChanged(DocumentEvent event) {
-			}
-
-			public void documentChanged(DocumentEvent event) {
-				// Revert File.
-				if (event.getOffset() == 0 && event.getLength() != 0
-						&& event.getText() != null) {
-					new ReloadJob().schedule();
-				}
-			}
-		});
-
-		if (synch == null) {
-			synch = new Synchronizer();
-		}
-		fContext = new BuilderContext(this, textDocument, document, synch);
-		fContext.setNodeAdapter(nodeAdapter);
-		modelAdapter = new ModelAdapter(fContext);
-		if (!document.eAdapters().contains(modelAdapter)) {
-			document.eAdapters().add(modelAdapter);
-		}
-
-		final IDOMElement textElement = (IDOMElement) textDocument
-				.getDocumentElement();
-
-		loadingModel(textElement, monitor);
-		return true;
-	}
-
-	private BraceHandler getBraceHandler() {
-		if (braceHandler == null) {
-			braceHandler = createBraceHandler(document);
-		}
-		return braceHandler;
-	}
-
-	protected BraceHandler createBraceHandler(XamlDocument document) {
-		return new BraceHandler(document);
-	}
-
-	/**
-	 * @param textDocument
-	 * @param document
-	 */
-	protected void handleDeclaredNamespaces(String prefix, String namespace) {
-		if (document != null) {
-			document.getDeclaredNamespaces().put(prefix, namespace);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.xaml.ve.editor.IDiagramModelBuilder#getModelRoot()
-	 */
-	public XamlDocument getDiagram() {
-		return document;
-	}
-
-	protected void loadingModel(IDOMElement text, IProgressMonitor monitor) {
-		if (text == null || !synch.isFree()) {
-			return;
-		}
-		synchronized (synch) {
-			synch.setEventType(EventType.LoadingEvent);
-
-			try {
-				String name = text.getLocalName();
-				String nsURI = text.getNamespaceURI();
-				String prefix = text.getPrefix();
-				XamlElement rootElement = document.getRootElement();
-
-				boolean isNew = false;
-				if (rootElement == null || !name.equals(rootElement.getName())) {
-					rootElement = XamlFactory.eINSTANCE.createElement(name,
-							nsURI);
-					isNew = true;
-				}
-				if (monitor != null) {
-					monitor.subTask("Load element " + name);
-					monitor.worked(1);
-				}
-				rootElement.setPrefix(prefix);
-				createChild(rootElement, text, monitor);
-
-				fContext.map(rootElement, text);
-				if (isNew) {
-					document.setRootElement(rootElement);
-				}
-			} finally {
-				synch.setFree();
-			}
-		}
-	}
-
-	protected void createChild(XamlNode parent, IDOMElement text,
-			IProgressMonitor monitor) {
-		NamedNodeMap attrMap = text.getAttributes();
-		if (attrMap != null) {
-			int length = attrMap.getLength();
-			for (int i = 0; i < length; i++) {
-				IDOMAttr item = (IDOMAttr) attrMap.item(i);
-				String localName = item.getLocalName();
-				String value = item.getNodeValue();
-				String prefix = item.getPrefix();
-				if ("xmlns".equals(localName)) {
-					handleDeclaredNamespaces(null, value);
-				}
-				if ("xmlns".equals(prefix)) {
-					handleDeclaredNamespaces(localName, value);
-				}
-			}
-		}
-
-		List<IDOMNode> attributes = fContext.getAttributes(text);
-		List<XamlAttribute> oldAttrs = new ArrayList<XamlAttribute>(parent
-				.getAttributes());
-
-		for (int i = 0; i < attributes.size(); i++) {
-			IDOMNode attr = attributes.get(i);
-			oldAttrs.remove(createAttribute(parent, attr, i));
-			if (monitor != null) {
-				monitor.subTask("Load attr " + attr.getNodeName());
-				monitor.worked(1);
-			}
-		}
-		if (!oldAttrs.isEmpty()) {
-			parent.getAttributes().removeAll(oldAttrs);
-		}
-
-		List<IDOMElement> childNodes = fContext.getChildNodes(text);
-		List<XamlElement> oldChildren = new ArrayList<XamlElement>(parent
-				.getChildNodes());
-		for (int i = 0; i < childNodes.size(); i++) {
-			IDOMElement child = childNodes.get(i);
-			oldChildren.remove(createElement(parent, child, i));
-			if (monitor != null) {
-				monitor.subTask("Load child " + child.getNodeName());
-				monitor.worked(1);
-			}
-		}
-		if (!oldChildren.isEmpty()) {
-			parent.getChildNodes().removeAll(oldChildren);
-		}
-
-		String content = fContext.getContent(text);
-		if (content != null) {
-			parent.setValue(content);
-		}
-	}
-
-	private String normalizeName(String tagName) {
-		if (tagName == null) {
-			return null;
-		}
-		StringBuffer buffer = new StringBuffer();
-
-		boolean isH = false;
-		for (int i = 0, len = tagName.length(); i < len; i++) {
-			char c = tagName.charAt(i);
-			if (i == 0) {
-				buffer.append(Character.toUpperCase(c));
-			} else {
-				switch (c) {
-				case '-':
-					isH = true;
-					break;
-				case '.':
-					isH = true;
-					buffer.append(c);
-					break;
-				default:
-					if (isH) {
-						buffer.append(Character.toUpperCase(c));
-						isH = false;
-					} else {
-						buffer.append(c);
-					}
-					break;
-				}
-			}
-		}
-		return buffer.toString();
-	}
-
-	protected XamlElement createElement(XamlNode parent, IDOMElement child,
-			int index) {
-		String name = child.getLocalName();
-		String prefix = child.getPrefix();
-		String ns = document.getDeclaredNamespace(prefix);
-		XamlElement element = parent.getChild(index);
-		if (element == null || element.getName() == null
-				|| element.getNamespace() == null
-				|| !element.getName().equals(name)
-				|| !element.getNamespace().equals(ns)) {
-			element = XamlFactory.eINSTANCE.createElement(normalizeName(name),
-					ns);
-			element.setId(generateID(name));
-		}
-		fContext.map(element, child);
-		element.setPrefix(prefix);
-		createChild(element, child, null);
-		return addChild(parent, element, index);
-	}
-
-	protected XamlNode createAttribute(XamlNode parent, IDOMNode attr, int index) {
-		if (attr == null) {
-			return null;
-		}
-		String localName = attr.getLocalName();
-		String value = attr.getNodeValue();
-		String prefix = attr.getPrefix();
-		String ns = document.getDeclaredNamespace(prefix);
-
-		String name = localName;
-		int i = localName.indexOf(".");
-		if (i != -1) {
-			name = localName.substring(i + 1);
-		}
-
-		if (name == null || "".equals(name)) {
-			return null;
-		}
-		if ("xmlns".equals(name)) {
-			handleDeclaredNamespaces(null, value);
-			return null;
-		}
-		if ("xmlns".equals(prefix)) {
-			handleDeclaredNamespaces(name, value);
-			return null;
-		}
-
-		XamlAttribute nameAttr = getAttribute(parent, name, ns);
-		if (nameAttr == null) {
-			nameAttr = XamlFactory.eINSTANCE.createAttribute(
-					normalizeName(name), ns);
-			nameAttr.setId(generateID(name));
-		}
-		// a.setGroupName(groupName);
-		if (attr instanceof IDOMElement) {
-			IDOMElement child = (IDOMElement) attr;
-			createChild(nameAttr, child, null);
-		}
-		nameAttr.setPrefix(prefix);
-		if (handleBraces(value)) {
-			XamlNode valueNode = getBraceHandler().parse(nameAttr, value);
-			if (valueNode != null && valueNode instanceof XamlElement) {
-				addChild(nameAttr, (XamlElement) valueNode, -1);
-			}
-			for (Iterator<XamlElement> iterator = nameAttr.getChildNodes()
-					.iterator(); iterator.hasNext();) {
-				if (iterator.next() != valueNode) {
-					iterator.remove();
-				}
-			}
-			nameAttr.setValue(null);
-		} else {
-			nameAttr.setValue(value);
-			if (value != null) {
-				nameAttr.getChildNodes().clear();
-			}
-		}
-		fContext.map(nameAttr, attr);
-		return addAttribute(parent, nameAttr, index);
-	}
-
-	private boolean handleBraces(String value) {
-		return value != null && value.startsWith("{") && value.endsWith("}");
-	}
-
-	protected XamlAttribute getAttribute(XamlNode parent, String attrName,
-			String namespace) {
-		return XWTModelUtil.getAdaptableAttribute(parent, attrName, namespace);
-	}
-
-	protected XamlElement addChild(XamlNode parent, XamlElement n, int index) {
-		if (parent == null || n == null) {
-			return n;
-		}
-		EList<XamlElement> childNodes = parent.getChildNodes();
-		int size = childNodes.size();
-		if (!parent.getChildNodes().contains(n)) {
-			if (index < 0 || index > size) {
-				index = size - 1;
-			}
-			if (index < 0) {
-				index = 0;
-			}
-			childNodes.add(index, n);
-		} else if (index >= 0 && index < size) {
-			int oldIndex = childNodes.indexOf(n);
-			if (oldIndex != index) {
-				childNodes.move(index, oldIndex);
-			}
-		}
-		return n;
-	}
-
-	protected XamlAttribute addAttribute(XamlNode parent, XamlAttribute a,
-			int index) {
-		if (parent == null || a == null) {
-			return null;
-		}
-		EList<XamlAttribute> attributes = parent.getAttributes();
-		int size = attributes.size();
-		if (!parent.getAttributes().contains(a)) {
-			if (index < 0 || index > size) {
-				index = size - 1;
-			}
-			if (index < 0) {
-				index = 0;
-			}
-			attributes.add(index, a);
-		} else if (index >= 0 && index < size) {
-			int oldIndex = attributes.indexOf(a);
-			if (oldIndex != index) {
-				attributes.move(index, oldIndex);
-			}
-		}
-		return a;
-	}
-
-	protected IDOMDocument getTextDocument(IDocument doc) {
-		IStructuredModel model = StructuredModelManager.getModelManager()
-				.getExistingModelForRead(doc);
-		if (model != null && model instanceof IDOMModel) {
-			return ((IDOMModel) model).getDocument();
-		}
-
-		return null;
-	}
-
-	/**
-	 * Format Text of Editor.
-	 */
-	protected void format() {
-		// Format in main thread.
-		if (jfaceDom != null) {
-			IDOMDocument textDocument = getTextDocument(jfaceDom);
-			if (textDocument != null) {
-				IDOMElement textElement = (IDOMElement) textDocument
-						.getDocumentElement();
-				formatRemoveEmpty(textElement);
-			}
-			StructuredTextHelper.format(jfaceDom);
-		}
-	}
-
-	/**
-	 * @param textElement
-	 */
-	protected void formatRemoveEmpty(Node node) {
-		if (node == null) {
-			return;
-		}
-		NodeList childNodes = node.getChildNodes();
-		if (childNodes != null) {
-			for (int i = 0; i < childNodes.getLength(); i++) {
-				Node item = childNodes.item(i);
-				if (item.getNodeType() == Node.TEXT_NODE) {
-					TextImpl t = (TextImpl) item;
-					if (t.isWhitespace() || t.isInvalid()) {
-						Node next = t.getNextSibling();
-						while (next != null
-								&& next.getNodeType() == Node.TEXT_NODE
-								&& (((TextImpl) next).isWhitespace() || ((TextImpl) next)
-										.isInvalid())) {
-							node.removeChild(next);
-							next = next.getNextSibling();
-						}
-					}
-				} else {
-					formatRemoveEmpty(item);
-				}
-			}
-		}
-	}
-
-	protected boolean contains(Node parent, Attr attr) {
-		NamedNodeMap attributes = parent.getAttributes();
-		for (int i = attributes.getLength() - 1; i >= 0; i--) {
-			if (attr == attributes.item(i)) {
-				return true;
-			}
-		}
-
-		return false;
-	}
-
-	public void reload() {
-		if (!synch.isFree()) {
-			return;
-		}
-		if (document == null || jfaceDom == null) {
-			return;
-		}
-		IDOMDocument textDocument = getTextDocument(jfaceDom);
-		if (textDocument == null) {
-			return;
-		}
-		IDOMElement textElement = (IDOMElement) textDocument
-				.getDocumentElement();
-		loadingModel(textElement, null);
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.xaml.ve.editor.IDiagramModelBuilder#dispose()
-	 */
-	public void dispose() {
-		doSave(null);// save to cache;
-		document = null;
-		jfaceDom = null;
-		fContext.clear();
-	}
-
-	private Display getDisplay() {
-		Display display = Display.getCurrent();
-		if (display == null || PlatformUI.isWorkbenchRunning()) {
-			display = PlatformUI.getWorkbench().getDisplay();
-		}
-		return display;
-	}
-
-	protected boolean isValidThread() {
-		return getDisplay() == null
-				|| getDisplay().getThread() == Thread.currentThread();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.xaml.ve.editor.IDiagramModelBuilder#saveCache()
-	 */
-	public void doSave(IProgressMonitor monitor) {
-		ModelCacheUtility.doSaveCache(document, input, monitor);
-	}
-
-	public XamlNode getModel(Object textNode) {
-		return fContext.getModel(textNode);
-	}
-
-	public IDOMNode getTextNode(Object model) {
-		return fContext.getTextNode(model);
-	}
-
-	public void handleNodeChanged(TextNotification msg) {
-		synchronized (synch) {
-			if (!synch.isFree()) {
-				return;
-			}
-			INodeNotifier notifier = msg.getNotifier();
-			final Object changedFeature = msg.getChangedFeature();
-			int eventType = msg.getEventType();
-			final Object newValue = msg.getNewValue();
-			final XamlNode parentNode = fContext.getModel(notifier);
-			final XamlNode changedNode = fContext.getModel(changedFeature);
-			if (eventType == INodeNotifier.CHANGE && changedFeature != null) {
-				Runnable runnable = new Runnable() {
-					public void run() {
-						if (changedNode != null && newValue == null) {
-							// remove.
-							parentNode.getAttributes().remove(changedNode);
-						} else if (parentNode != null
-								&& changedFeature instanceof IDOMAttr) {
-							createAttribute(parentNode,
-									(IDOMAttr) changedFeature, -1);
-						}
-						synch.setFree();
-					}
-				};
-				synch.setEventType(EventType.SourceEvent);
-				DisplayUtil.asyncExec(runnable);
-			} else if (eventType == INodeNotifier.REMOVE && parentNode != null
-					&& changedNode != null) {
-				Runnable runnable = new Runnable() {
-					public void run() {
-						if (changedNode instanceof XamlElement) {
-							parentNode.getChildNodes().remove(changedNode);
-						} else if (changedNode instanceof XamlAttribute) {
-							parentNode.getAttributes().remove(changedNode);
-						}
-						synch.setFree();
-					}
-				};
-				synch.setEventType(EventType.SourceEvent);
-				DisplayUtil.asyncExec(runnable);
-			} else if (eventType == INodeNotifier.STRUCTURE_CHANGED) {
-				IJobManager jobManager = Job.getJobManager();
-				Job currentJob = jobManager.currentJob();
-				if (!(currentJob instanceof ReloadJob)
-						&& (reloadJob == null || reloadJob.getResult() != null)) {
-					reloadJob = new ReloadJob();
-					reloadJob.setRule(new ISchedulingRule() {
-						public boolean contains(ISchedulingRule rule) {
-							return getClass() == rule.getClass();
-						}
-
-						public boolean isConflicting(ISchedulingRule rule) {
-							return getClass() == rule.getClass();
-						}
-					});
-					reloadJob.schedule(200);
-				}
-			}
-		}
-	}
-
-	private class NodeAdapter implements INodeAdapter {
-
-		public boolean isAdapterForType(Object type) {
-			return type == NodeAdapter.class;
-		}
-
-		public void notifyChanged(INodeNotifier notifier, int eventType,
-				Object changedFeature, Object oldValue, Object newValue, int pos) {
-			TextNotification msg = new TextNotification(notifier, eventType,
-					changedFeature, oldValue, newValue, pos);
-			handleNodeChanged(msg);
-		}
-
-	}
-
-	private class ReloadJob extends Job {
-		public ReloadJob() {
-			super("Reload");
-			setPriority(SHORT);
-			setSystem(true);
-		}
-
-		protected IStatus run(IProgressMonitor monitor) {
-			reload();
-			return Status.OK_STATUS;
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/OutlineContentProvider.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/OutlineContentProvider.java
deleted file mode 100755
index ddce2dc..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/OutlineContentProvider.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.outline;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class OutlineContentProvider implements ITreeContentProvider {
-
-	private static final Object[] EMPTY = new Object[0];
-
-	public Object[] getElements(Object inputElement) {
-		return getChildren(inputElement);
-	}
-
-	public void dispose() {
-
-	}
-
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-	}
-
-	public Object[] getChildren(Object parentElement) {
-		if (parentElement instanceof XamlElement) {
-			return ((XamlElement) parentElement).getChildNodes().toArray(
-					new XamlElement[0]);
-		} else if (parentElement instanceof XamlDocument) {
-			XamlElement root = ((XamlDocument) parentElement).getRootElement();
-			if (root != null) {
-				return new Object[] { root };
-			}
-		}
-		return EMPTY;
-	}
-
-	public Object getParent(Object element) {
-		if (element instanceof EObject) {
-			return ((EObject) element).eContainer();
-		}
-		return null;
-	}
-
-	public boolean hasChildren(Object element) {
-		return getChildren(element).length > 0;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/OutlineLabelProvider.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/OutlineLabelProvider.java
deleted file mode 100755
index 4ee50c5..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/OutlineLabelProvider.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.outline;
-
-import java.text.MessageFormat;
-
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.GraphicalViewer;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.tools.ui.designer.parts.DiagramEditPart;
-import org.eclipse.xwt.tools.ui.designer.parts.ViewerEditPart;
-import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridLayoutPolicyHelper;
-import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-import org.eclipse.xwt.tools.ui.xaml.tools.AnnotationTools;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class OutlineLabelProvider extends LabelProvider {
-
-	private GraphicalViewer graphicalViewer;
-
-	public OutlineLabelProvider() {
-		this(null);
-	}
-
-	public OutlineLabelProvider(GraphicalViewer graphicalViewer) {
-		this.graphicalViewer = graphicalViewer;
-	}
-
-	public String getText(Object element) {
-		if (element instanceof XamlNode) {
-			return getText((XamlNode) element);
-		} else if (element instanceof XamlDocument) {
-			return "(widget)";
-		} else if (element instanceof EditPart) {
-			return getText(((EditPart) element).getModel());
-		} else if (element instanceof IStructuredSelection) {
-			return getText(((IStructuredSelection) element).getFirstElement());
-		}
-		return super.getText(element);
-	}
-
-	private String getText(XamlNode node) {
-		if (AnnotationTools.isAnnotated(node,
-				GridLayoutPolicyHelper.FILLER_DATA)) {
-			return "(filler)";
-		}
-		String name = node.getName();
-		IMetaclass metaclass = XWTUtility.getMetaclass(node);
-		if (metaclass != null) {
-			XamlAttribute textAttr = node.getAttribute("text");
-			if (textAttr == null) {
-				textAttr = node.getAttribute("text", IConstants.XWT_NAMESPACE);
-			}
-			XamlAttribute nameAttr = node.getAttribute("name",
-					IConstants.XWT_NAMESPACE);
-			if (nameAttr == null) {
-				nameAttr = node
-						.getAttribute("name", IConstants.XWT_X_NAMESPACE);
-			}
-			String value = null;
-			if (nameAttr != null && nameAttr.getValue() != null) {
-				value = MessageFormat.format("\"{0}\"", nameAttr.getValue());
-			} else if (textAttr != null && textAttr.getValue() != null) {
-				value = MessageFormat.format("\"{0}\"", textAttr.getValue());
-			}
-			if (value != null) {
-				name = MessageFormat.format("{0} - {1}", new Object[] { name,
-						value });
-			}
-		}
-		return name;
-	}
-
-	public Image getImage(Object element) {
-		if (element instanceof XamlDocument) {
-			return ImageShop.get(ImageShop.IMG_XWT);
-		}
-		if (element instanceof XamlNode) {
-			XamlNode xamlNode = (XamlNode) element;
-			if (graphicalViewer != null) {
-				EditPart editPart = (EditPart) graphicalViewer
-						.getEditPartRegistry().get(xamlNode);
-				Image image = getImageFrom(editPart);
-				if (image != null) {
-					return image;
-				}
-			}
-			String name = xamlNode.getName();
-			return ImageShop.getObj16(name.toLowerCase());
-		}
-		return super.getImage(element);
-	}
-
-	private Image getImageFrom(EditPart editPart) {
-
-		if (editPart instanceof WidgetEditPart) {
-			Widget widget = ((WidgetEditPart) editPart).getWidget();
-			return ImageShop.getImageForWidget(widget);
-		} else if (editPart instanceof ViewerEditPart) {
-			Viewer viewer = ((ViewerEditPart) editPart).getJfaceViewer();
-			if (viewer != null) {
-				String name = viewer.getClass().getSimpleName().toLowerCase();
-				return ImageShop.getObj16(name);
-			}
-		} else if (editPart instanceof DiagramEditPart) {
-			return ImageShop.get(ImageShop.IMG_XWT);
-		}
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/OutlinePageDropManager.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/OutlinePageDropManager.java
deleted file mode 100755
index 42f0ffc..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/OutlinePageDropManager.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.outline;
-
-import org.eclipse.xwt.tools.ui.palette.Entry;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.xwt.tools.ui.designer.core.editor.outline.dnd.OutlineDropManager;
-import org.eclipse.xwt.tools.ui.designer.editor.outline.commands.MoveAfterCommand;
-import org.eclipse.xwt.tools.ui.designer.editor.outline.commands.MoveBeforeCommand;
-import org.eclipse.xwt.tools.ui.designer.editor.outline.commands.MoveOnCommand;
-import org.eclipse.xwt.tools.ui.designer.editor.palette.EntryHelper;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class OutlinePageDropManager implements OutlineDropManager {
-
-	private CommandStack commandStack;
-
-	public OutlinePageDropManager(CommandStack commandStack) {
-		this.commandStack = commandStack;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.tools.designer.editor.outline.dnd.OutlineDropManager#execute(org.eclipse.gef.commands.Command)
-	 */
-	public boolean execute(Command command) {
-		if (command == null || !command.canExecute()) {
-			return false;
-		}
-		try {
-			if (commandStack != null) {
-				commandStack.execute(command);
-			} else {
-				command.execute();
-			}
-			return true;
-		} catch (Exception e) {
-			return false;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.tools.designer.editor.outline.dnd.OutlineDropManager#getMoveAfter(java.lang.Object, java.lang.Object)
-	 */
-	public Command getMoveAfter(IStructuredSelection source, Object target, int operation) {
-		return new MoveAfterCommand(source, target, operation);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.tools.designer.editor.outline.dnd.OutlineDropManager#getMoveBefore(java.lang.Object, java.lang.Object)
-	 */
-	public Command getMoveBefore(IStructuredSelection source, Object target, int operation) {
-		return new MoveBeforeCommand(source, target, operation);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.tools.designer.editor.outline.dnd.OutlineDropManager#getMoveOn(java.lang.Object, java.lang.Object)
-	 */
-	public Command getMoveOn(IStructuredSelection source, Object target, int operation) {
-		return new MoveOnCommand(source, target, operation);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/TreeEditPartFactory.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/TreeEditPartFactory.java
deleted file mode 100755
index 4043457..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/TreeEditPartFactory.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.outline;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartFactory;
-import org.eclipse.xwt.tools.ui.designer.core.editor.outline.TreeItemEditPart;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public class TreeEditPartFactory implements EditPartFactory {
-
-	public EditPart createEditPart(EditPart context, Object model) {
-		if (model instanceof XamlDocument) {
-			XamlElement rootElement = ((XamlDocument) model).getRootElement();
-			return createEditPart(context, rootElement);
-		}
-		return new TreeEditPart(model);
-	}
-
-	private class TreeEditPart extends TreeItemEditPart {
-
-		public TreeEditPart(Object model) {
-			super(model, new OutlineContentProvider(),
-					new OutlineLabelProvider());
-		}
-
-		protected void createEditPolicies() {
-			super.createEditPolicies();
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/TreeEditPolicy.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/TreeEditPolicy.java
deleted file mode 100755
index 75f140c..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/TreeEditPolicy.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.outline;
-
-import org.eclipse.gef.Request;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.requests.ChangeBoundsRequest;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.gef.requests.GroupRequest;
-import org.eclipse.xwt.tools.ui.designer.core.editor.outline.TreeItemEditPolicy;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public class TreeEditPolicy extends TreeItemEditPolicy {
-
-	protected Command getDeleteCommand(Request req) {
-		return super.getDeleteCommand(req);
-	}
-
-	protected Command getAddCommand(ChangeBoundsRequest request) {
-		return super.getAddCommand(request);
-	}
-
-	protected Command getCreateCommand(CreateRequest request) {
-		return super.getCreateCommand(request);
-	}
-
-	protected Command getOrphanChildrenCommand(GroupRequest req) {
-		return super.getOrphanChildrenCommand(req);
-	}
-
-	protected Command getMoveChildrenCommand(ChangeBoundsRequest request) {
-		return super.getMoveChildrenCommand(request);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/commands/MoveAfterCommand.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/commands/MoveAfterCommand.java
deleted file mode 100755
index f97e9dc..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/commands/MoveAfterCommand.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.outline.commands;
-
-import java.util.Iterator;
-
-import org.eclipse.xwt.tools.ui.palette.Entry;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.gef.commands.CompoundCommand;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.xwt.tools.ui.designer.commands.AddNewChildCommand;
-import org.eclipse.xwt.tools.ui.designer.commands.DeleteCommand;
-import org.eclipse.xwt.tools.ui.designer.editor.palette.EntryHelper;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class MoveAfterCommand extends MoveCommand {
-
-	public MoveAfterCommand(IStructuredSelection source, Object target, int operation) {
-		super(source, target, operation);
-		setLabel("Move After");
-	}
-
-	@Override
-	public boolean canExecute() {
-		return super.canExecute() && getTarget().getParent() != null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.editor.outline.commands.MoveCommand#collectCommands(org.eclipse.gef.commands.CompoundCommand)
-	 */
-	protected void collectCommands(CompoundCommand command) {
-		IStructuredSelection sourceNodes = getSource();
-		XamlNode targetNode = getTarget();
-		XamlNode parent = targetNode.getParent();
-		int index = parent.getChildNodes().indexOf(targetNode);
-		XamlNode newNode = null;
-		
-		for (Iterator iterator = sourceNodes.iterator(); iterator.hasNext();) {
-			Object element = iterator.next();
-			XamlNode sourceNode = null;
-			if (element instanceof Entry) {
-				sourceNode = EntryHelper.getNode((Entry) element);
-			}
-			else {
-				sourceNode = (XamlNode) element;
-			}
-			
-			if (sourceNode.eContainer() != null) {
-				newNode = (XamlNode) EcoreUtil.copy(sourceNode);
-			} else {
-				newNode = sourceNode;
-			}
-			command.add(new AddNewChildCommand(parent, newNode, ++index));
-			if (isMove() && sourceNode.eContainer() != null) {
-				command.add(new DeleteCommand(sourceNode));
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/commands/MoveBeforeCommand.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/commands/MoveBeforeCommand.java
deleted file mode 100755
index 229f4e7..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/commands/MoveBeforeCommand.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.outline.commands;
-
-import java.util.Iterator;
-
-import org.eclipse.xwt.tools.ui.palette.Entry;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.gef.commands.CompoundCommand;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.xwt.tools.ui.designer.commands.AddNewChildCommand;
-import org.eclipse.xwt.tools.ui.designer.commands.DeleteCommand;
-import org.eclipse.xwt.tools.ui.designer.editor.palette.EntryHelper;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class MoveBeforeCommand extends MoveCommand {
-
-	public MoveBeforeCommand(IStructuredSelection source, Object target, int operation) {
-		super(source, target, operation);
-	}
-
-	@Override
-	public boolean canExecute() {
-		return super.canExecute() && getTarget().getParent() != null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.editor.outline.commands.MoveCommand#collectCommands(org.eclipse.gef.commands.CompoundCommand)
-	 */
-	protected void collectCommands(CompoundCommand command) {
-		IStructuredSelection sourceNodes = getSource();
-		XamlNode targetNode = (XamlNode) getTarget();
-		XamlNode parent = targetNode.getParent();
-		int index = parent.getChildNodes().indexOf(targetNode);
-
-		XamlNode newNode = null;
-		for (Iterator iterator = sourceNodes.iterator(); iterator.hasNext();) {
-			Object element = iterator.next();
-			XamlNode sourceNode = null;
-			if (element instanceof Entry) {
-				sourceNode = EntryHelper.getNode((Entry) element);
-			}
-			else {
-				sourceNode = (XamlNode) element;
-			}
-			
-			if (sourceNode.eContainer() != null) {
-				newNode = (XamlNode) EcoreUtil.copy(sourceNode);
-			} else {
-				newNode = sourceNode;
-			}
-	
-			command.add(new AddNewChildCommand(parent, newNode, index++));
-	
-			if (isMove() && sourceNode.eContainer() != null) {
-				command.add(new DeleteCommand(sourceNode));
-			}
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/commands/MoveCommand.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/commands/MoveCommand.java
deleted file mode 100755
index 879ff29..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/commands/MoveCommand.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.outline.commands;
-
-import java.util.Iterator;
-
-import org.eclipse.xwt.tools.ui.palette.Entry;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CompoundCommand;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public abstract class MoveCommand extends Command {
-
-	private IStructuredSelection source;
-	private Object target;
-
-	private Command command;
-	
-	private int operation;
-
-	public MoveCommand(IStructuredSelection source, Object target, int operation) {
-		this.setSource(source);
-		this.setTarget(target);
-		this.setOperation(operation);		
-	}
-
-	public int getOperation() {
-		return operation;
-	}
-
-	public void setOperation(int operation) {
-		this.operation = operation;
-	}
-
-	protected boolean isMove() {
-		return operation == DND.DROP_MOVE;
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#canExecute()
-	 */
-	public boolean canExecute() {
-		boolean state = source != null && target != null && target instanceof XamlNode;
-		if (!state) {
-			return false;
-		}
-		
-		IStructuredSelection sourceNodes = getSource();
-		XamlNode parent = null;
-		for (Iterator iterator = sourceNodes.iterator(); iterator.hasNext();) {
-			Object element = iterator.next();
-			XamlNode sourceNode = null;
-			if (element instanceof Entry) {
-				continue;
-			}
-			else if (!(element instanceof XamlNode)) {
-				return false;
-			}
-			else {
-				sourceNode = (XamlNode) element;
-				XamlNode sourceParent = sourceNode.getParent();
-				if (sourceParent == null) {
-					return false;
-				}
-				if (parent == null) {
-					parent = sourceParent;
-				}
-				else if (parent != sourceParent) {
-					return false;
-				}
-			}
-		}
-		
-		if (isMove() && sourceNodes.size() == 1 && sourceNodes.getFirstElement() == target) {
-			return false;
-		}
-		return true;
-	}
-
-	/**
-	 * @param source
-	 *            the source to set
-	 */
-	public void setSource(IStructuredSelection source) {
-		this.source = source;
-	}
-
-	/**
-	 * @return the source
-	 */
-	public IStructuredSelection getSource() {
-		return source;
-	}
-
-	/**
-	 * @param target
-	 *            the target to set
-	 */
-	public void setTarget(Object target) {
-		this.target = target;
-	}
-
-	/**
-	 * @return the target
-	 */
-	public XamlNode getTarget() {
-		return (XamlNode) target;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#execute()
-	 */
-	public final void execute() {
-		CompoundCommand cmd = new CompoundCommand();
-		collectCommands(cmd);
-		command = cmd.unwrap();
-		if (command.canExecute()) {
-			command.execute();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#canUndo()
-	 */
-	public boolean canUndo() {
-		return command != null && command.canUndo();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.commands.Command#undo()
-	 */
-	public void undo() {
-		command.undo();
-	}
-
-	protected abstract void collectCommands(CompoundCommand command);
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/commands/MoveOnCommand.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/commands/MoveOnCommand.java
deleted file mode 100755
index 6d63303..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/commands/MoveOnCommand.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.outline.commands;
-
-import java.util.Iterator;
-
-import org.eclipse.xwt.tools.ui.palette.Entry;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.gef.commands.CompoundCommand;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.xwt.tools.ui.designer.commands.AddNewChildCommand;
-import org.eclipse.xwt.tools.ui.designer.commands.DeleteCommand;
-import org.eclipse.xwt.tools.ui.designer.editor.palette.CreateReqHelper;
-import org.eclipse.xwt.tools.ui.designer.editor.palette.EntryHelper;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class MoveOnCommand extends MoveCommand {
-
-	public MoveOnCommand(IStructuredSelection source, Object target, int operation) {
-		super(source, target, operation);
-	}
-	
-	@Override
-	public boolean canExecute() {
-		boolean canExecute = super.canExecute();
-		if (!canExecute) {
-			return false;
-		}
-		
-		IStructuredSelection sourceNodes = getSource();
-		for (Iterator iterator = sourceNodes.iterator(); iterator.hasNext();) {
-			Object element = iterator.next();
-			XamlNode sourceNode = null;
-			if (element instanceof Entry) {
-				continue;
-			}
-			else if (!(element instanceof XamlNode)) {
-				return false;
-			}
-			else {
-				sourceNode = (XamlNode) element;
-				XamlNode sourceParent = sourceNode.getParent();
-				if (sourceParent == null) {
-					return false;					
-				}
-				if (sourceParent == getTarget()) {
-					return false;
-				}
-			}
-		}
-		
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.editor.outline.commands.MoveAfterCommand#collectCommands(org.eclipse.gef.commands.CompoundCommand)
-	 */
-	protected void collectCommands(CompoundCommand command) {
-		IStructuredSelection sourceNodes = getSource();
-		XamlNode target = getTarget();
-		for (Iterator iterator = sourceNodes.iterator(); iterator.hasNext();) {
-			Object element = iterator.next();
-			XamlNode sourceNode = null;
-			if (element instanceof Entry) {
-				sourceNode = EntryHelper.getNode((Entry) element);
-			}
-			else {
-				sourceNode = (XamlNode) element;
-			}
-			if (CreateReqHelper.canCreate(target, sourceNode)) {
-				XamlNode newChild = null;
-				if (sourceNode.eContainer() != null) {
-					newChild = (XamlNode) EcoreUtil.copy(sourceNode);
-				} else {
-					newChild = sourceNode;
-				}
-				command.add(new AddNewChildCommand(target, newChild));
-				if (isMove() && sourceNode.eContainer() != null) {
-					command.add(new DeleteCommand(sourceNode));
-				}
-			} 
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/palette/CreateReqHelper.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/palette/CreateReqHelper.java
deleted file mode 100755
index 7c6b5ee..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/palette/CreateReqHelper.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.palette;
-
-import java.lang.reflect.Constructor;
-
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.CoolBar;
-import org.eclipse.swt.widgets.CoolItem;
-import org.eclipse.swt.widgets.ExpandBar;
-import org.eclipse.swt.widgets.ExpandItem;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class CreateReqHelper {
-
-	public static final Object UNKNOWN_TYPE = new Object();
-
-	private CreateRequest createReq;
-
-	public CreateReqHelper(CreateRequest createReq) {
-		this.createReq = createReq;
-	}
-
-	public XamlNode getNewObject() {
-		return EntryHelper.getNode(createReq);
-	}
-
-	public String getNewObjectType() {
-		Object type = createReq.getType();
-		if (type != null) {
-			return type.toString();
-		}
-		return null;
-	}
-
-	public Object getCreateType() {
-		return getCreateType(getNewObject());
-	}
-
-	public static Object getCreateType(Object newObject) {
-		if (newObject != null && newObject instanceof XamlElement) {
-			return getType((XamlElement) newObject);
-		} else if (newObject instanceof XamlAttribute) {
-			return ((XamlAttribute) newObject).getName();
-		}
-		return UNKNOWN_TYPE;
-	}
-
-	public static Class<?> getType(XamlNode element) {
-		if (element == null) {
-			return null;
-		}
-		IMetaclass metaclass = XWTUtility.getMetaclass(element);
-		if (metaclass != null) {
-			return metaclass.getType();
-		}
-		return null;
-	}
-
-	public boolean isCreate(Object targetType) {
-		if (targetType == null) {
-			return false;
-		}
-		Object createType = getCreateType(getNewObject());
-		if (targetType instanceof String && createType instanceof String) {
-			return ((String) targetType).equalsIgnoreCase((String) createType);
-		}
-		return targetType == createType;
-	}
-
-	public static boolean canCreate(Object parent, Object child) {
-		try {
-			XamlNode parentNode = null;
-			Class<?> parentType = null;
-			if (parent instanceof Class<?>) {
-				parentType = (Class<?>) parent;
-			} else if (parent instanceof XamlNode) {
-				parentNode = (XamlNode) parent;
-			} else if (parent instanceof EditPart) {
-				Object model = ((EditPart) parent).getModel();
-				if (model instanceof XamlNode) {
-					parentNode = (XamlNode) model;
-				}
-			}
-			if (parentType == null && parentNode != null) {
-				parentType = getType(parentNode);
-			}
-			if (parentType == null || parentType == CCombo.class) {
-				return false;
-			}
-			boolean canCreate = false;
-			Object createType = getCreateType(child);
-			if (createType instanceof Class<?>) {
-				Class<?> type = (Class<?>) createType;
-				if (ExpandItem.class.isAssignableFrom(type)) {
-					return ExpandBar.class.isAssignableFrom(parentType);
-				} else if (ToolItem.class.isAssignableFrom(type)) {
-					return ToolBar.class.isAssignableFrom(parentType);
-				} else if (CoolItem.class.isAssignableFrom(type)) {
-					return CoolBar.class.isAssignableFrom(parentType);
-				} else if (TabItem.class.isAssignableFrom(type)) {
-					return TabFolder.class.isAssignableFrom(parentType);
-				} else if (CTabItem.class.isAssignableFrom(type)) {
-					return CTabFolder.class.isAssignableFrom(parentType);
-				}
-				Constructor<?>[] constructors = ((Class<?>) createType)
-						.getConstructors();
-				for (Constructor<?> constructor : constructors) {
-					Class<?>[] parameterTypes = constructor.getParameterTypes();
-					if (parameterTypes.length == 0) {
-						continue;
-					}
-					if (parameterTypes[0].isAssignableFrom(parentType)) {
-						canCreate = true;
-						break;
-					}
-				}
-			} else if (createType instanceof String) {
-				String stringType = (String) createType;
-				IMetaclass metaclass = XWT.getMetaclass(parentType);
-				if (metaclass != null) {
-					canCreate = metaclass.findProperty((String) createType) != null;
-					if ("menuBar".equals(stringType)
-							|| "menu".equals(stringType)
-							|| "layoutData".equals(stringType)) {
-						canCreate = canCreate
-								&& parentNode.getAttribute(stringType) == null;
-					}
-				}
-			}
-			// System.out.println("Parent: " + parentType.getSimpleName() +
-			// " |Create: " + createType + " |-->Result: " + canCreate);
-			return canCreate;
-		} catch (Exception e) {
-		}
-		return false;
-	}
-
-	public boolean canCreate(Object parent) {
-		return canCreate(parent, getNewObject());
-	}
-
-	public boolean isKindOf(String nodeName, String namespace, String targetType) {
-		if (nodeName == null || namespace == null || targetType == null) {
-			return false;
-		}
-		if ("Composite".equalsIgnoreCase(targetType)) {
-			IMetaclass metaclass = XWT.getMetaclass(nodeName, namespace);
-			if (metaclass == null) {
-				return false;
-			} else {
-				return Composite.class.isAssignableFrom(metaclass.getType());
-			}
-		} else if ("Control".equalsIgnoreCase(targetType)) {
-			IMetaclass metaclass = XWT.getMetaclass(nodeName, namespace);
-			if (metaclass == null) {
-				return false;
-			} else {
-				return Control.class.isAssignableFrom(metaclass.getType());
-			}
-		}
-		return targetType.equalsIgnoreCase(nodeName);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/palette/EntryHelper.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/palette/EntryHelper.java
deleted file mode 100755
index 935fe4b..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/palette/EntryHelper.java
+++ /dev/null
@@ -1,229 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.palette;
-
-import java.io.ByteArrayInputStream;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.XWTException;
-import org.eclipse.xwt.internal.utils.LoggerManager;
-import org.eclipse.xwt.tools.ui.palette.Entry;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
-import org.eclipse.xwt.tools.ui.designer.preference.Preferences;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-import org.eclipse.xwt.tools.ui.xaml.tools.AnnotationTools;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class EntryHelper {
-
-	public static final String CURSOR_CONSTANTS = "${cursor}";
-	public static final String ANN_CURSOR_DATA = "CURSOR_DATA_ANN";
-
-	private static Map<Entry, XamlNode> nodes = new HashMap<Entry, XamlNode>();
-
-	public static XamlNode getNode(Entry entry) {
-		if (entry == null) {
-			return null;
-		}
-		XamlNode node = nodes.get(entry);
-		if (node == null || node.eContainer() != null) {
-			try {
-				node = new EntryHelper().createNode(entry);
-				if ("Composite".equals(node.getName())) {
-					initLayoutAttribute(node);
-				}
-				nodes.put(entry, node);
-			} catch (Exception e) {
-				LoggerManager.log(e);
-			}
-		}
-		return (XamlNode) EcoreUtil.copy(node);
-	}
-
-	public static void initLayoutAttribute(XamlNode model) {
-		XamlAttribute layoutAttr = XamlFactory.eINSTANCE.createAttribute("layout", IConstants.XWT_NAMESPACE);
-		String layout = Preferences.getPreferenceStore().getString(Preferences.DEFAULT_LAYOUT);
-		LayoutType layoutType = LayoutsHelper.getLayoutType(layout);
-		if (layoutType != null && LayoutType.NullLayout != layoutType && LayoutType.Unknown != layoutType) {
-			XamlElement newLayout = XamlFactory.eINSTANCE.createElement(layoutType.value(), IConstants.XWT_NAMESPACE);
-			layoutAttr.getChildNodes().add(newLayout);
-			model.getAttributes().add(layoutAttr);
-		}
-	}
-
-	public static XamlNode getNode(CreateRequest createReq) {
-		Object newObject = createReq.getNewObject();
-		if (newObject instanceof Entry) {
-			return getNode((Entry) newObject);
-		}
-		return null;
-	}
-
-	private XamlNode createNode(Entry entry) {
-		if (entry == null || entry.getContent() == null) {
-			return null;
-		}
-		String content = entry.getContent();
-		DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
-		try {
-			DocumentBuilder domBuilder = domFactory.newDocumentBuilder();
-			try {
-				org.w3c.dom.Document document = domBuilder.parse(new ByteArrayInputStream(content.getBytes()));
-				if (document != null) {
-					org.w3c.dom.Element element = document.getDocumentElement();
-					String name = element.getNodeName();
-					String ns = element.getNamespaceURI();
-					String prefix = element.getPrefix();
-					if (ns == null) {
-						ns = getNamespace(prefix);
-					}
-					XamlNode node = null;
-					if (name.indexOf(".") != -1) {
-						name = name.substring(name.indexOf(".") + 1);
-						node = XamlFactory.eINSTANCE.createXamlAttribute();
-						node.setName(name);
-						node.setNamespace(ns);
-					} else {
-						node = XamlFactory.eINSTANCE.createXamlElement();
-						node.setName(name);
-						node.setNamespace(ns);
-					}
-					node.setPrefix(prefix);
-					createModel(node, element);
-					return node;
-				}
-			} catch (Exception e) {
-				throw new XWTException(e);
-			}
-
-		} catch (ParserConfigurationException e) {
-			throw new XWTException(e);
-		}
-
-		return null;
-	}
-
-	private String getNamespace(String prefix) {
-		if ("x".equals(prefix)) {
-			return IConstants.XWT_X_NAMESPACE;
-		}
-		return IConstants.XWT_NAMESPACE;
-	}
-
-	private void createModel(XamlNode parent, org.w3c.dom.Element text) {
-		NamedNodeMap attributes = text.getAttributes();
-		if (attributes != null) {
-			int length = attributes.getLength();
-			for (int i = 0; i < length; i++) {
-				Attr attr = (Attr) attributes.item(i);
-				createAttribute(parent, attr);
-			}
-		}
-		NodeList childNodes = text.getChildNodes();
-		if (childNodes == null) {
-			return;
-		}
-		int length = childNodes.getLength();
-		for (int i = 0; i < length; i++) {
-			Node item = childNodes.item(i);
-			if (item instanceof Element) {
-				Element child = (Element) item;
-				createChild(parent, child);
-			}
-		}
-	}
-
-	private void createChild(XamlNode parent, Element child) {
-		String name = child.getNodeName();
-		String ns = child.getNamespaceURI();
-		String prefix = child.getPrefix();
-		if (ns == null) {
-			ns = getNamespace(prefix);
-		}
-		if (name.indexOf(".") != -1) {
-			name = name.substring(name.indexOf(".") + 1);
-			XamlAttribute a = XamlFactory.eINSTANCE.createXamlAttribute();
-			a.setName(name);
-			a.setNamespace(ns);
-			createModel(a, child);
-			parent.getAttributes().add(a);
-		} else {
-			XamlElement e = XamlFactory.eINSTANCE.createXamlElement();
-			e.setName(name);
-			e.setNamespace(ns);
-			createModel(e, child);
-			parent.getChildNodes().add(e);
-		}
-	}
-
-	/**
-	 * @param parent
-	 * @param attr
-	 */
-	private void createAttribute(XamlNode parent, Attr attr) {
-		if (attr == null) {
-			return;
-		}
-		String name = attr.getName();
-		String ns = attr.getNamespaceURI();
-		String value = attr.getNodeValue();
-		boolean containsCursor = false;
-		if (value != null && CURSOR_CONSTANTS.equals(value)) {
-			value = "";
-			containsCursor = true;
-		}
-		String prefix = attr.getPrefix();
-		int index = name.indexOf(":");
-		if (index != -1) {
-			prefix = name.substring(0, index);
-			name = name.substring(index + 1);
-		}
-		if (ns == null) {
-			ns = getNamespace(prefix);
-		}
-		XamlAttribute a = parent.getAttribute(name, ns);
-		if (a == null) {
-			a = XamlFactory.eINSTANCE.createXamlAttribute();
-			a.setName(name);
-			a.setNamespace(ns);
-			a.setPrefix(prefix);
-			a.setValue(value);
-			parent.getAttributes().add(a);
-		} else if (value == null && a.getValue() != null) {
-			a.setValue(null);
-		} else if (value != null && value != a.getValue()) {
-			a.setValue(value);
-		}
-		if (containsCursor) {
-			AnnotationTools.addAnnotation(a, ANN_CURSOR_DATA, name);
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/palette/InitializeHelper.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/palette/InitializeHelper.java
deleted file mode 100755
index 3396fc5..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/palette/InitializeHelper.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.palette;
-
-import org.eclipse.xwt.metadata.IProperty;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.xwt.tools.ui.designer.XWTDesignerPlugin;
-import org.eclipse.xwt.tools.ui.designer.dialogs.PropertyValueDialog;
-import org.eclipse.xwt.tools.ui.designer.preference.Preferences;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-import org.eclipse.xwt.tools.ui.xaml.tools.AnnotationTools;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class InitializeHelper {
-
-	public static boolean checkValue(XamlNode node) {
-		if (!XWTDesignerPlugin.getDefault().getPreferenceStore().getBoolean(Preferences.PROMPT_DURING_CREATION)) {
-			return true;
-		}
-		if (node == null) {
-			return false;
-		}
-		XamlNode cursorNode = getCursorNode(node);
-		if (cursorNode != null && cursorNode instanceof XamlAttribute) {
-			XamlAttribute a = (XamlAttribute) cursorNode;
-			IProperty property = XWTUtility.getProperty(a);
-			if (property != null) {
-				String init = "";
-				if ("text".equals(property.getName())) {
-					String name = node.getName();
-					init = "New" + name;
-				}
-				PropertyValueDialog dialog = new PropertyValueDialog(new Shell(), property, init);
-				if (dialog.open() == Window.OK) {
-					a.setValue(dialog.getResult());
-				} else {
-					return false;
-				}
-			}
-		}
-		return true;
-	}
-
-	private static XamlNode getCursorNode(XamlNode parent) {
-		if (parent == null) {
-			return null;
-		}
-		boolean isAnnotated = AnnotationTools.isAnnotated(parent, EntryHelper.ANN_CURSOR_DATA);
-		if (isAnnotated) {
-			return parent;
-		}
-		EList<XamlAttribute> attributes = parent.getAttributes();
-		for (XamlAttribute a : attributes) {
-			XamlNode node = getCursorNode(a);
-			if (node != null) {
-				return node;
-			}
-		}
-		EList<XamlElement> childNodes = parent.getChildNodes();
-		for (XamlElement c : childNodes) {
-			XamlNode node = getCursorNode(c);
-			if (node != null) {
-				return node;
-			}
-		}
-		return null;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/palette/XWTPaletteProvider.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/palette/XWTPaletteProvider.java
deleted file mode 100755
index 782c768..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/palette/XWTPaletteProvider.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.palette;
-
-import org.eclipse.xwt.tools.ui.palette.page.resources.URIResourceProvider;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.xwt.tools.ui.designer.XWTDesignerPlugin;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class XWTPaletteProvider extends URIResourceProvider {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.tools.palette.page.resources.PaletteResourceProvider#getPaletteResourceURI()
-	 */
-	protected URI getPaletteResourceURI() {
-		return URI.createPlatformPluginURI(XWTDesignerPlugin.PLUGIN_ID + "/palette/xwt.palette", true);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/problems/XWTAbstractNodeChecker.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/problems/XWTAbstractNodeChecker.java
deleted file mode 100755
index a179f51..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/problems/XWTAbstractNodeChecker.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.problems;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.xwt.tools.ui.designer.core.editor.Designer;
-import org.eclipse.xwt.tools.ui.designer.core.problems.DesignerProblemChecker;
-import org.eclipse.xwt.tools.ui.designer.core.problems.Problem;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public abstract class XWTAbstractNodeChecker extends DesignerProblemChecker {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.tools.designer.problems.IProblemChecker#doCheck()
-	 */
-	public List<Problem> doCheck() {
-		Designer designer = getDesigner();
-		if (designer == null) {
-			return null;
-		}
-		IDocument document = designer.getDocument();
-		if (document == null) {
-			return null;
-		}
-		Document textDocument = getTextDocument(document);
-		if (textDocument == null) {
-			return null;
-		}
-		Element root = textDocument.getDocumentElement();
-		if (root == null) {
-			return null;
-		}
-		List<Problem> problems = new ArrayList<Problem>();
-		checkNode(root, problems);
-		return problems;
-	}
-
-	protected abstract void checkNode(Node node, List<Problem> problems);
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/problems/XWTAttributeChecker.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/problems/XWTAttributeChecker.java
deleted file mode 100755
index a7ee69c..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/problems/XWTAttributeChecker.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.problems;
-
-import java.util.List;
-
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.xwt.metadata.IProperty;
-import org.eclipse.xwt.tools.ui.designer.core.problems.Problem;
-import org.eclipse.xwt.tools.ui.designer.core.util.DomHelper;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class XWTAttributeChecker extends XWTAbstractNodeChecker {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.editor.problems.XWTAbstractNodeChecker#checkNode(org.w3c.dom.Node, java.util.List)
-	 */
-	protected void checkNode(Node node, List<Problem> problems) {
-		if (node == null || Node.TEXT_NODE == node.getNodeType()) {
-			return;
-		}
-		NodeList childNodes = node.getChildNodes();
-		if (childNodes != null) {
-			for (int i = 0; i < childNodes.getLength(); i++) {
-				checkNode(childNodes.item(i), problems);
-			}
-		}
-		String nodeName = node.getNodeName();
-		String prefix = node.getPrefix();
-		String ns = DomHelper.lookupNamespaceURI(node, prefix);
-		int index = nodeName.indexOf(":");
-		if (index != -1) {
-			nodeName = nodeName.substring(index + 1);
-		}
-		String attrName = null;
-		index = nodeName.indexOf(".");
-		if (index != -1) {
-			attrName = nodeName.substring(index + 1);
-			nodeName = nodeName.substring(0, index);
-		}
-		IMetaclass metaclass = XWTUtility.getMetaclass(nodeName, ns);
-		if (attrName != null) {
-			index = attrName.indexOf(".");
-			while (index != -1) {
-				String newAttr = attrName.substring(0, index);
-				attrName = attrName.substring(index + 1);
-				index = attrName.indexOf(".");
-				if (newAttr != null && !"Resources".equalsIgnoreCase(newAttr) && !"DataContext".equalsIgnoreCase(newAttr)) {
-					IProperty p = metaclass.findProperty(newAttr);
-					if (p == null && metaclass.findEvent(attrName) == null) {
-						problems.add(createError(node, "\"" + newAttr + "\" can not be resolved to a property of \"" + nodeName + "\""));
-					}
-					if (p != null) {
-						metaclass = XWT.getMetaclass(p.getType());
-					}
-				}
-			}
-			if (metaclass != null && attrName != null && !"Resources".equalsIgnoreCase(attrName) && !"DataContext".equalsIgnoreCase(attrName)) {
-				IProperty p = metaclass.findProperty(attrName);
-				if (p == null && metaclass.findEvent(attrName) == null) {
-					problems.add(createError(node, "\"" + attrName + "\" can not be resolved to a property of \"" + nodeName + "\""));
-				}
-				if (p != null) {
-					metaclass = XWT.getMetaclass(p.getType());
-				}
-			}
-		}
-		NamedNodeMap attributes = node.getAttributes();
-		if (metaclass == null || attributes == null || attributes.getLength() == 0) {
-			return;
-		}
-		for (int i = 0; i < attributes.getLength(); i++) {
-			Node item = attributes.item(i);
-			attrName = item.getNodeName();
-			if (attrName.startsWith("xmlns")) {
-				continue;
-			}
-			if (attrName.indexOf(":") != -1) {
-				attrName = attrName.substring(attrName.indexOf(":") + 1);
-			}
-			if ("Key".equalsIgnoreCase(attrName) || "Name".equalsIgnoreCase(attrName) || "Class".equalsIgnoreCase(attrName) || "style".equalsIgnoreCase(attrName)) {
-				continue;
-			}
-			IMetaclass attachedMetaclass = null;
-			index = attrName.indexOf(".");
-			while (index != -1) {
-				String attachedName = attrName.substring(0, index);
-				attrName = attrName.substring(index + 1);
-				index = attrName.indexOf(".");
-				if (attachedName != null) {
-					attachedMetaclass = XWTUtility.getMetaclass(attachedName, ns);
-				}
-			}
-			if (metaclass.findProperty(attrName) == null && metaclass.findEvent(attrName) == null) {
-				if (attachedMetaclass != null && attachedMetaclass.findProperty(attrName) == null && attachedMetaclass.findEvent(attrName) == null) {
-					problems.add(createError(node, "\"" + attrName + "\" can not be resolved to a property of \"" + nodeName + "\""));
-				}
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/problems/XWTElementChecker.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/problems/XWTElementChecker.java
deleted file mode 100755
index e90977d..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/problems/XWTElementChecker.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.problems;
-
-import java.util.List;
-
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.xwt.tools.ui.designer.core.problems.Problem;
-import org.eclipse.xwt.tools.ui.designer.core.util.DomHelper;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class XWTElementChecker extends XWTAbstractNodeChecker {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.editor.problems.XWTNodeChecker#checkNode(org.w3c.dom.Element, java.util.List)
-	 */
-	protected void checkNode(Node node, List<Problem> problems) {
-		if (Node.TEXT_NODE == node.getNodeType()) {
-			return;
-		}
-		NodeList childNodes = node.getChildNodes();
-		if (childNodes != null) {
-			for (int i = 0; i < childNodes.getLength(); i++) {
-				checkNode(childNodes.item(i), problems);
-			}
-		}
-		String nodeName = node.getNodeName();
-		String prefix = node.getPrefix();
-		String ns = DomHelper.lookupNamespaceURI(node, prefix);
-		if (nodeName.indexOf(":") != -1) {
-			nodeName = nodeName.substring(nodeName.indexOf(":") + 1);
-		}
-		if (nodeName.indexOf(".") != -1 || "Array".equals(nodeName)) {
-			return;
-		}
-		if (node instanceof Element) {
-			IMetaclass metaclass = XWTUtility.getMetaclass(nodeName, ns);
-			if (metaclass == null) {
-				problems.add(createProblem(node, "\"" + nodeName + "\" can not be resolved to a Type.", Problem.ERROR));
-			}
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/AddSashFormChildCommands.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/AddSashFormChildCommands.java
deleted file mode 100755
index d552050..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/AddSashFormChildCommands.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.sash;
-
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.internal.utils.LoggerManager;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.gef.EditPart;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.widgets.Sash;
-import org.eclipse.xwt.tools.ui.designer.commands.AddNewChildCommand;
-import org.eclipse.xwt.tools.ui.designer.core.util.SashUtil;
-import org.eclipse.xwt.tools.ui.designer.parts.SashEditPart;
-import org.eclipse.xwt.tools.ui.designer.parts.SashFormEditPart;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-public class AddSashFormChildCommands extends AddNewChildCommand {
-	public static final String WIEGHTS_ATTR = "weights";
-	private EditPart host;
-	private int[] oldWeights;
-	private boolean hasWeightsAttribute = false;
-
-	public AddSashFormChildCommands(EditPart parent, XamlNode child) {
-		this(parent, child, -1);
-	}
-
-	public AddSashFormChildCommands(EditPart parent, XamlNode child, int index) {
-		super((XamlNode) parent.getModel(), child, index);
-		this.host = parent;
-	}
-
-	@Override
-	public boolean canExecute() {
-		boolean result = super.canExecute() && host instanceof SashFormEditPart;
-		if (!result) {
-			return false;
-		}
-		XamlNode child = getChild();
-		String name = child.getName();
-		String ns = child.getNamespace();
-		IMetaclass metaclass = XWT.getMetaclass(name, ns);
-		return metaclass.getType() != Sash.class;
-	}
-
-	@Override
-	public void execute() {
-		XamlNode sashForm = (XamlNode) host.getModel();
-		XamlAttribute attribute = sashForm.getAttribute(WIEGHTS_ATTR,
-				IConstants.XWT_NAMESPACE);
-		SashFormEditPart sashFormEditPart = (SashFormEditPart) host;
-		SashForm form = (SashForm) sashFormEditPart.getWidget();
-
-		hasWeightsAttribute = (attribute != null);
-		if (!hasWeightsAttribute) {
-			super.execute();
-			return;
-		}
-		
-		oldWeights = form.getWeights();
-
-		int children = 0;
-
-		for (Object child : sashFormEditPart.getChildren()) {
-			if (!(child instanceof SashEditPart)) {
-				children++;
-			}
-		}
-
-		if (children == 0) {
-			try {
-				// add in the list first
-				super.execute();
-			} catch (Exception e) {
-				LoggerManager.log(e);
-			}
-			return;
-		}
-
-		int[] weights = new int[children + 1];
-		int sum = 0;
-		if (oldWeights.length != 0) {
-			for (int i = 0; i < oldWeights.length; i++) {
-				weights[i] = oldWeights[i];
-				sum += oldWeights[i];
-			}
-			if (children > oldWeights.length) {
-				int delta = sum / (children - oldWeights.length);
-				for (int i = oldWeights.length; i < children - 1; i++) {
-					weights[i] = delta;
-				}
-				weights[children - 1] = sum
-						- (delta * (children - oldWeights.length));
-			}
-
-			int index = getIndex();
-			if (index == -1) {
-				index = children;
-			}
-
-			int part1 = weights[index] / 2;
-			int part2 = weights[index] - part1;
-
-			for (int i = children - 1; i > index; i--) {
-				weights[i + 1] = oldWeights[i];
-			}
-			weights[index] = part1;
-			weights[index + 1] = part2;
-		} else {
-			int delta = 1000 / weights.length;
-			for (int i = 0; i < weights.length - 1; i++) {
-				weights[i] = delta;
-			}
-			weights[weights.length - 1] = sum - (delta * (children));
-		}
-
-		try {
-			// add in the list first
-			super.execute();
-
-			if (weights.length > 1) {
-				// update the weights after, since the Notifier as update it.
-				// Her we just override it.
-				String value = SashUtil.weightsValue(weights);
-				if (attribute == null) {
-					attribute = XamlFactory.eINSTANCE.createAttribute(
-							WIEGHTS_ATTR, IConstants.XWT_NAMESPACE);
-					sashForm.getAttributes().add(attribute);
-				}
-				attribute.setValue(value);
-			}
-		} catch (Exception e) {
-			LoggerManager.log(e);
-		}
-	}
-
-	@Override
-	public void undo() {
-		super.undo();
-		if (hasWeightsAttribute) {
-			XamlNode sashForm = (XamlNode) host.getModel();
-			String value = SashUtil.weightsValue(oldWeights);
-			XamlAttribute attribute = sashForm.getAttribute(WIEGHTS_ATTR,
-					IConstants.XWT_NAMESPACE);
-			attribute.setValue(value);
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashFormChildResizableEditPolicy.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashFormChildResizableEditPolicy.java
deleted file mode 100755
index 1f2a5bd..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashFormChildResizableEditPolicy.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.sash;
-
-import java.util.List;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.draw2d.geometry.Transposer;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.gef.requests.SelectionRequest;
-import org.eclipse.xwt.tools.ui.designer.parts.SashFormEditPart;
-import org.eclipse.xwt.tools.ui.designer.policies.NewResizableEditPolicy;
-
-/**
- * 
- * @author yyang <yves.yang@soyatec.com>
- * 
- */
-public class SashFormChildResizableEditPolicy extends NewResizableEditPolicy {
-	public static final int WIDTH = 10;
-
-	public SashFormChildResizableEditPolicy(int directions,
-			boolean displayNonHandles) {
-		super(directions, displayNonHandles);
-	}
-
-	@Override
-	public EditPart getTargetEditPart(Request request) {
-		EditPart part = getTargetEditPart(request,
-				(GraphicalEditPart) getHost());
-		if (part != null) {
-			return part;
-		}
-		return super.getTargetEditPart(request);
-	}
-
-	public static EditPart getTargetEditPart(Request request,
-			GraphicalEditPart editPart) {
-		SashFormEditPart sashFormEditPart = (SashFormEditPart) editPart
-				.getParent();
-		IFigure figure = editPart.getFigure();
-		Rectangle bounds = figure.getBounds().getCopy();
-		figure.translateToAbsolute(bounds);
-
-		Transposer transposer = new Transposer();
-		transposer.setEnabled(!sashFormEditPart.isHorizontal());
-		bounds = transposer.t(bounds);
-
-		if (request instanceof CreateRequest) {
-			CreateRequest createRequest = (CreateRequest) request;
-			Point location = createRequest.getLocation().getCopy();
-			location = transposer.t(location);
-
-			if (location.x <= bounds.x + WIDTH
-					|| location.x > bounds.x + bounds.width - WIDTH) {
-				return sashFormEditPart;
-			}
-		} else if (request instanceof SelectionRequest) {
-			SelectionRequest locationRequest = (SelectionRequest) request;
-			Point location = locationRequest.getLocation().getCopy();
-			location = transposer.t(location);
-			List<EditPart> children = sashFormEditPart.getChildren();
-			int index = children.indexOf(editPart);
-			if (index != 0 && location.x <= bounds.x + WIDTH) {
-				return children.get(index - 1);
-			} else if (location.x > bounds.x + bounds.width - WIDTH
-					&& index != (children.size() - 1)) {
-				return children.get(index + 1);
-			}
-		}
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashFormDeleteCommand.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashFormDeleteCommand.java
deleted file mode 100755
index 425e13f..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashFormDeleteCommand.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.sash;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * Delete the elements and update the weights
- * 
- * @author jliu jin.liu@soyatec.com
- */
-public class SashFormDeleteCommand extends Command {
-	private List<XamlNode> deleteNodes;
-	private Map<EObject, DeleteData> deletedObjects = new HashMap<EObject, DeleteData>(
-			1);
-
-	public SashFormDeleteCommand(List deleteNodes) {
-		this.deleteNodes = convertNodes(deleteNodes);
-	}
-
-	public SashFormDeleteCommand(XamlNode singleNode) {
-		this(Collections.singletonList(singleNode));
-	}
-
-	/**
-	 * @param deleteNodes
-	 * @return
-	 */
-	private List<XamlNode> convertNodes(List deleteNodes) {
-		if (deleteNodes == null) {
-			return null;
-		}
-		List<XamlNode> nodes = new ArrayList<XamlNode>();
-		for (Iterator iterator = deleteNodes.iterator(); iterator.hasNext();) {
-			Object obj = (Object) iterator.next();
-			if (obj instanceof EditPart) {
-				obj = ((EditPart) obj).getModel();
-			}
-			if (obj instanceof XamlNode) {
-				nodes.add((XamlNode) obj);
-			}
-		}
-		return nodes;
-	}
-
-	public boolean canExecute() {
-		return deleteNodes != null && !deleteNodes.isEmpty();
-	}
-
-	public void execute() {
-		for (XamlNode deleted : deleteNodes) {
-			DeleteData dd = new DeleteData();
-			dd.parent = (EObject) deleted.eContainer();
-			if (deleted instanceof XamlElement) {
-				if (dd.parent instanceof XamlNode) {
-					dd.index = ((XamlNode) dd.parent).getChildNodes().indexOf(
-							deleted);
-					if (dd.index > -1) {
-						((XamlNode) dd.parent).getChildNodes().remove(dd.index);
-					}
-				} else if (dd.parent instanceof XamlDocument) {
-					((XamlDocument) dd.parent).setRootElement(null);
-				}
-			} else if (deleted instanceof XamlAttribute
-					&& dd.parent instanceof XamlNode) {
-				dd.index = ((XamlNode) dd.parent).getAttributes().indexOf(
-						deleted);
-				if (dd.index > -1) {
-					((XamlNode) dd.parent).getAttributes().remove(dd.index);
-				}
-			}
-			deletedObjects.put(deleted, dd);
-		}
-	}
-
-	public boolean canUndo() {
-		return !deletedObjects.isEmpty();
-	}
-
-	public void undo() {
-		Set<EObject> deletedKeys = deletedObjects.keySet();
-		for (EObject deleted : deletedKeys) {
-			DeleteData dd = deletedObjects.get(deleted);
-			if (dd == null) {
-				continue;
-			}
-			EObject parent = dd.parent;
-			int index = dd.index;
-			if (deleted instanceof XamlElement) {
-				if (parent instanceof XamlNode) {
-					if (index > -1) {
-						((XamlNode) parent).getChildNodes().add(index,
-								(XamlElement) deleted);
-					} else {
-						((XamlNode) parent).getChildNodes().add(
-								(XamlElement) deleted);
-					}
-				} else if (parent instanceof XamlDocument) {
-					((XamlDocument) parent)
-							.setRootElement((XamlElement) deleted);
-				}
-			} else if (deleted instanceof XamlAttribute
-					&& parent instanceof XamlNode) {
-				if (index > -1) {
-					((XamlNode) parent).getAttributes().add(index,
-							(XamlAttribute) deleted);
-				} else {
-					((XamlNode) parent).getAttributes().add(
-							(XamlAttribute) deleted);
-				}
-			}
-		}
-		deletedKeys.clear();
-		deletedObjects.clear();
-	}
-
-	static class DeleteData {
-		EObject parent;
-		int index = -1;
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashFormInsertCreateCommand.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashFormInsertCreateCommand.java
deleted file mode 100755
index 0a82390..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashFormInsertCreateCommand.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.sash;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.xwt.tools.ui.designer.commands.InsertCreateCommand;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class SashFormInsertCreateCommand extends InsertCreateCommand {
-
-	public SashFormInsertCreateCommand(EditPart parent, EditPart reference,
-			CreateRequest createRequest, int index) {
-		super(parent, reference, createRequest, index);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.xwt.tools.ui.designer.commands.AbstractCreationCommand
-	 * #createCreateCommand(org.soyatec.tools.designer.xaml.XamlNode,
-	 * org.soyatec.tools.designer.xaml.XamlNode)
-	 */
-	protected Command createCreateCommand(XamlNode parent, XamlNode child) {
-		return new AddSashFormChildCommands(getParent(), child, getIndex());
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashFormLayoutEditPolicy.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashFormLayoutEditPolicy.java
deleted file mode 100755
index b68c1d1..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashFormLayoutEditPolicy.java
+++ /dev/null
@@ -1,462 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.sash;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Polygon;
-import org.eclipse.draw2d.Polyline;
-import org.eclipse.draw2d.PositionConstants;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.draw2d.geometry.Transposer;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.RequestConstants;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.editpolicies.FlowLayoutEditPolicy;
-import org.eclipse.gef.editpolicies.LayoutEditPolicy;
-import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
-import org.eclipse.gef.requests.ChangeBoundsRequest;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.gef.requests.DropRequest;
-import org.eclipse.gef.requests.GroupRequest;
-import org.eclipse.gef.requests.SelectionRequest;
-import org.eclipse.xwt.tools.ui.designer.commands.ChangeWeightsCommand;
-import org.eclipse.xwt.tools.ui.designer.commands.MoveChildCommand;
-import org.eclipse.xwt.tools.ui.designer.core.parts.VisualEditPart;
-import org.eclipse.xwt.tools.ui.designer.parts.ControlEditPart;
-import org.eclipse.xwt.tools.ui.designer.parts.SashEditPart;
-import org.eclipse.xwt.tools.ui.designer.parts.SashFormEditPart;
-import org.eclipse.xwt.tools.ui.designer.parts.misc.CompositeEditPartHelper;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jin.liu (jin.liu@soyatec.com)
- * 
- */
-public class SashFormLayoutEditPolicy extends FlowLayoutEditPolicy {
-	static int WIDTH = 4;
-	private Polygon insertionLine;
-
-	private int index = 0;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#getCreateCommand(org.eclipse
-	 * .gef.requests.CreateRequest)
-	 */
-	protected Command getCreateCommand(CreateRequest request) {
-		SashFormEditPart host = (SashFormEditPart) getHost();
-		List<ControlEditPart> children = CompositeEditPartHelper
-				.getChildren(host);
-		EditPart reference;
-		int i;
-		if (index == -1 || children.size() == 0) {
-			i = -1;
-			reference = null;
-		} else {
-			boolean after = !(index % 2 == 0);
-			i = index / 2;
-			if (after) {
-				i++;
-			}
-			reference = children.get(i);
-		}
-		return new SashFormInsertCreateCommand(getHost(), reference, request, i);
-	}
-
-	protected Point getLocationFromRequest(Request request) {
-		return ((DropRequest) request).getLocation();
-	}
-
-	protected Polyline getLineFeedback() {
-		if (insertionLine == null) {
-			insertionLine = new Polygon();
-			insertionLine.setLineWidth(WIDTH);
-			insertionLine.addPoint(new Point(0, 0));
-			insertionLine.addPoint(new Point(10, 10));
-			insertionLine.addPoint(new Point(10, 10));
-			insertionLine.addPoint(new Point(10, 10));
-			insertionLine.setForegroundColor(ColorConstants.lightBlue);
-			addFeedback(insertionLine);
-		}
-		return insertionLine;
-	}
-
-	/**
-	 * @see LayoutEditPolicy#eraseLayoutTargetFeedback(Request)
-	 */
-	protected void eraseLayoutTargetFeedback(Request request) {
-		if (insertionLine != null) {
-			removeFeedback(insertionLine);
-			insertionLine = null;
-		}
-	}
-
-	/**
-	 * display the feedback when it is armed to insert an child
-	 * 
-	 */
-	@Override
-	protected void showLayoutTargetFeedback(Request request) {
-		if (!RequestConstants.REQ_CREATE.equals(request.getType())) {
-			return;
-		}
-
-		Polyline fb = getLineFeedback();
-		Transposer transposer = new Transposer();
-		transposer.setEnabled(!isHorizontal());
-
-		SashFormEditPart host = (SashFormEditPart) getHost();
-		List<ControlEditPart> children = CompositeEditPartHelper
-				.getChildren(host);
-		Rectangle parentBox = transposer.t(getAbsoluteBounds(host));
-		if (children.size() == 0) {
-			Point p1 = new Point(parentBox.x, parentBox.y);
-			p1 = transposer.t(p1);
-			Point p2 = new Point(parentBox.x, parentBox.y + parentBox.height);
-			p2 = transposer.t(p2);
-
-			Point p3 = new Point(parentBox.x + parentBox.width / 2, parentBox.y
-					+ parentBox.height);
-			p3 = transposer.t(p3);
-
-			Point p4 = new Point(parentBox.x + parentBox.width / 2, parentBox.y);
-			p4 = transposer.t(p4);
-
-			fb.translateToRelative(p1);
-			fb.setPoint(p1, 0);
-			fb.translateToRelative(p2);
-			fb.setPoint(p2, 1);
-			fb.translateToRelative(p3);
-			fb.setPoint(p3, 2);
-			fb.translateToRelative(p4);
-			fb.setPoint(p4, 3);
-			return;
-		} else if (children.size() == 1) {
-			Point p1 = new Point(parentBox.x + parentBox.width / 2, parentBox.y);
-			p1 = transposer.t(p1);
-			Point p2 = new Point(parentBox.x + parentBox.width / 2, parentBox.y
-					+ parentBox.height);
-			p2 = transposer.t(p2);
-
-			Point p3 = new Point(parentBox.x + parentBox.width, parentBox.y
-					+ parentBox.height);
-			p3 = transposer.t(p3);
-
-			Point p4 = new Point(parentBox.x + parentBox.width, parentBox.y);
-			p4 = transposer.t(p4);
-
-			fb.translateToRelative(p1);
-			fb.setPoint(p1, 0);
-			fb.translateToRelative(p2);
-			fb.setPoint(p2, 1);
-			fb.translateToRelative(p3);
-			fb.setPoint(p3, 2);
-			fb.translateToRelative(p4);
-			fb.setPoint(p4, 3);
-			return;
-		}
-
-		boolean before = true;
-		int epIndex = getFeedbackIndexFor(request);
-		Rectangle r = null;
-		GraphicalEditPart editPart;
-		index = epIndex;
-		if (epIndex == -1) {
-			before = false;
-			epIndex = children.size() - 1;
-			editPart = children.get(epIndex);
-			r = transposer.t(getAbsoluteBounds(editPart));
-		} else {
-			editPart = children.get(epIndex);
-			r = transposer.t(getAbsoluteBounds(editPart));
-			Point p = transposer.t(getLocationFromRequest(request));
-			if (p.x <= r.x + (r.width / 2))
-				before = true;
-			else {
-				/*
-				 * We are not to the left of this Figure, so the emphasis line
-				 * needs to be to the right of the previous Figure, which must
-				 * be on the previous row.
-				 */
-				before = false;
-				epIndex--;
-				editPart = children.get(epIndex);
-				r = transposer.t(getAbsoluteBounds(editPart));
-			}
-		}
-
-		int x = Integer.MIN_VALUE;
-		if (before) {
-			/*
-			 * Want the line to be halfway between the end of the previous and
-			 * the beginning of this one. If at the begining of a line, then
-			 * start halfway between the left edge of the parent and the
-			 * beginning of the box, but no more than 5 pixels (it would be too
-			 * far and be confusing otherwise).
-			 */
-			if (epIndex > 0) {
-				// Need to determine if a line break.
-				Rectangle boxPrev = transposer.t(getAbsoluteBounds(children
-						.get(epIndex - 1)));
-				int prevRight = boxPrev.right();
-				if (prevRight < r.x) {
-					// Not a line break
-					x = prevRight + (r.x - prevRight) / 2;
-				} else if (prevRight == r.x) {
-					x = prevRight + 1;
-				}
-			}
-			if (x == Integer.MIN_VALUE) {
-				// It is a line break.
-				x = r.x - 5;
-				if (x < parentBox.x)
-					x = parentBox.x + (r.x - parentBox.x) / 2;
-			}
-		} else {
-			/*
-			 * We only have before==false if we are at the end of a line, so go
-			 * halfway between the right edge and the right edge of the parent,
-			 * but no more than 5 pixels.
-			 */
-			int rRight = r.x + r.width;
-			int pRight = parentBox.x + parentBox.width;
-			x = rRight + 5;
-			if (x > pRight)
-				x = rRight + (pRight - rRight) / 2;
-		}
-		Point p1 = new Point(x, r.y);
-		p1 = transposer.t(p1);
-		Point p2 = new Point(x, r.y + parentBox.height);
-		p2 = transposer.t(p2);
-
-		Point p3;
-		Point p4;
-
-		if (editPart instanceof SashEditPart) {
-			if (before) {
-				editPart = children.get(epIndex - 1);
-				before = false;
-			} else {
-				editPart = children.get(epIndex + 1);
-			}
-		}
-
-		Rectangle sibleBound = transposer.t(getAbsoluteBounds(editPart));
-		if (before) {
-			p3 = new Point(x + sibleBound.width / 2, r.y + parentBox.height);
-			p4 = new Point(x + sibleBound.width / 2, r.y);
-		} else {
-			p3 = new Point(x - sibleBound.width / 2, r.y + parentBox.height);
-			p4 = new Point(x - sibleBound.width / 2, r.y);
-		}
-		p3 = transposer.t(p3);
-		p4 = transposer.t(p4);
-
-		fb.translateToRelative(p1);
-		fb.setPoint(p1, 0);
-		fb.translateToRelative(p2);
-		fb.setPoint(p2, 1);
-		fb.translateToRelative(p3);
-		fb.setPoint(p3, 2);
-		fb.translateToRelative(p4);
-		fb.setPoint(p4, 3);
-	}
-
-	private Rectangle getAbsoluteBounds(GraphicalEditPart ep) {
-		Rectangle bounds = ep.getFigure().getBounds().getCopy();
-		ep.getFigure().translateToAbsolute(bounds);
-		return bounds;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.editpolicies.OrderedLayoutEditPolicy#createAddCommand
-	 * (org.eclipse.gef.EditPart, org.eclipse.gef.EditPart)
-	 */
-	protected Command createAddCommand(EditPart child, EditPart after) {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.editpolicies.OrderedLayoutEditPolicy#createMoveChildCommand
-	 * (org.eclipse.gef.EditPart, org.eclipse.gef.EditPart)
-	 */
-	protected Command createMoveChildCommand(EditPart child, EditPart after) {
-		return new MoveChildCommand(child, after);
-	}
-
-	@Override
-	public EditPart getTargetEditPart(Request request) {
-		if (request instanceof SelectionRequest) {
-			SashFormEditPart host = (SashFormEditPart) getHost();
-			List<ControlEditPart> children = CompositeEditPartHelper
-					.getChildren(host);
-			if (children.size() == 0) {
-				return null;
-			}
-
-			SelectionRequest selectionRequest = (SelectionRequest) request;
-			Transposer transposer = new Transposer();
-			transposer.setEnabled(!isHorizontal());
-			Point location = selectionRequest.getLocation().getCopy();
-			location = transposer.t(location);
-
-			CreateRequest createRequest = new CreateRequest();
-			createRequest.setLocation(selectionRequest.getLocation());
-			int index = getFeedbackIndexFor(createRequest);
-			if (index == -1) {
-				return null;
-			}
-			if (index == 0) {
-				return children.get(0);
-			}
-			GraphicalEditPart reference = (GraphicalEditPart) children
-					.get(index);
-			Rectangle bounds = getAbsoluteBounds(reference);
-			bounds = transposer.t(bounds);
-			GraphicalEditPart previousSash = null;
-			GraphicalEditPart nextSash = null;
-
-			if (reference instanceof SashEditPart) {
-				if (location.x < bounds.x + (bounds.width / 2)) {
-					nextSash = reference;
-					if (index - 2 < 0) {
-						return reference;
-					}
-					previousSash = (GraphicalEditPart) children.get(index - 2);
-				} else {
-					previousSash = reference;
-					if (index + 2 >= children.size()) {
-						return reference;
-					}
-					nextSash = (GraphicalEditPart) children.get(index + 2);
-
-				}
-			} else {
-				previousSash = (GraphicalEditPart) children.get(index - 1);
-				nextSash = (GraphicalEditPart) children.get(index);
-			}
-			Rectangle previousBounds = getAbsoluteBounds(previousSash);
-			previousBounds = transposer.t(previousBounds);
-
-			Rectangle nextBounds = getAbsoluteBounds(nextSash);
-			nextBounds = transposer.t(nextBounds);
-
-			int width = nextBounds.x - previousBounds.x - previousBounds.width;
-			if (location.x < previousBounds.x + previousBounds.width + width
-					/ 2) {
-				return previousSash;
-			}
-			return nextSash;
-		}
-		return super.getTargetEditPart(request);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#getCommand(org.eclipse.
-	 * gef.Request)
-	 */
-	public Command getCommand(Request request) {
-		if (request instanceof ChangeBoundsRequest) {
-			return createChangeBoundsCommand((ChangeBoundsRequest) request);
-		}
-		return super.getCommand(request);
-	}
-
-	protected Command getDeleteDependantCommand(GroupRequest request) {
-		List<?> editParts = request.getEditParts();
-		if (!editParts.isEmpty()) {
-			List<XamlNode> deleteThems = new ArrayList<XamlNode>();
-			for (Iterator<?> iterator = editParts.iterator(); iterator
-					.hasNext();) {
-				Object object = (Object) iterator.next();
-				if (object instanceof VisualEditPart) {
-					VisualEditPart part = (VisualEditPart) object;
-					deleteThems.add((XamlNode) part.getCastModel());
-				}
-			}
-			if (!deleteThems.isEmpty()) {
-				return new SashFormDeleteCommand(deleteThems);
-			}
-		}
-		return super.getDeleteDependantCommand(request);
-	}
-
-	protected Command createChangeBoundsCommand(ChangeBoundsRequest request) {
-		boolean isChildRequest = true;
-		for (Object object : request.getEditParts()) {
-			if (object instanceof SashFormEditPart) {
-				isChildRequest = false;
-				break;
-			}
-		}
-		if (isChildRequest) {
-			return new ChangeWeightsCommand((SashFormEditPart) getHost(),
-					request);
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.editpolicies.OrderedLayoutEditPolicy#createChildEditPolicy
-	 * (org.eclipse.gef.EditPart)
-	 */
-	protected EditPolicy createChildEditPolicy(EditPart child) {
-		if (child instanceof SashEditPart) {
-			return new SashMoveableEditPolicy((SashEditPart) child);
-		}
-
-		List<ControlEditPart> children = CompositeEditPartHelper
-				.getChildren((SashFormEditPart) getHost());
-		if (children.size() < 2) {
-			return new NonResizableEditPolicy();
-		}
-		int directions = 0;
-		if (isHorizontal()) {
-			directions = PositionConstants.EAST_WEST;
-		} else {
-			directions = PositionConstants.NORTH_SOUTH;
-		}
-		child.removeEditPolicy(PRIMARY_DRAG_ROLE);
-		return new SashFormChildResizableEditPolicy(directions, false);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.FlowLayoutEditPolicy#isHorizontal()
-	 */
-	protected boolean isHorizontal() {
-		SashFormEditPart host = (SashFormEditPart) getHost();
-		return ((SashFormEditPart) host).isHorizontal();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashMoveableEditPolicy.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashMoveableEditPolicy.java
deleted file mode 100755
index 8278664..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashMoveableEditPolicy.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.sash;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.draw2d.geometry.Transposer;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.editpolicies.ResizableEditPolicy;
-import org.eclipse.gef.handles.ResizableHandleKit;
-import org.eclipse.gef.requests.ChangeBoundsRequest;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.xwt.tools.ui.designer.core.parts.tools.SelectionHandle;
-import org.eclipse.xwt.tools.ui.designer.core.util.SashUtil;
-import org.eclipse.xwt.tools.ui.designer.parts.ControlEditPart;
-import org.eclipse.xwt.tools.ui.designer.parts.SashEditPart;
-import org.eclipse.xwt.tools.ui.designer.parts.SashFormEditPart;
-import org.eclipse.xwt.tools.ui.designer.parts.misc.CompositeEditPartHelper;
-import org.eclipse.xwt.tools.ui.designer.parts.misc.DragSashTracker;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public class SashMoveableEditPolicy extends ResizableEditPolicy {
-
-	private SashEditPart editPart;
-	private Label label;
-	private Point location = new Point();
-
-	public SashMoveableEditPolicy(SashEditPart editPart) {
-		this.editPart = editPart;
-	}
-
-	/**
-	 * Creates the figure used for feedback.
-	 * 
-	 * @return the new feedback figure
-	 */
-	protected IFigure createDragSourceFeedbackFigure() {
-		label = new Label();
-		label.setForegroundColor(ColorConstants.blue);
-		getFeedbackLayer().add(label);
-		return super.createDragSourceFeedbackFigure();
-	}
-
-	@Override
-	protected void eraseChangeBoundsFeedback(ChangeBoundsRequest request) {
-		super.eraseChangeBoundsFeedback(request);
-		if (label != null) {
-			removeFeedback(label);
-		}
-		label = null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.editpolicies.ResizableEditPolicy#createSelectionHandles()
-	 */
-	protected List<SelectionHandle> createSelectionHandles() {
-		List<SelectionHandle> list = new ArrayList<SelectionHandle>();
-		list.add(new SelectionHandle(editPart));
-		ResizableHandleKit.moveHandle(editPart, new DragSashTracker(editPart),
-				null);
-		return list;
-	}
-
-	/**
-	 * When we drag Sash
-	 * 
-	 */
-	protected void showChangeBoundsFeedback(ChangeBoundsRequest request) {
-		IFigure feedback = getDragSourceFeedbackFigure();
-
-		Transposer transposer = new Transposer();
-		transposer.setEnabled(!editPart.isHorizontal());
-
-		Rectangle rect = getInitialFeedbackBounds().getCopy();
-		getHostFigure().translateToAbsolute(rect);
-		rect = transposer.t(rect);
-
-		Point moveDelta = request.getMoveDelta().getCopy();
-		moveDelta = transposer.t(moveDelta);
-
-		rect.performTranslate(0, moveDelta.y);
-
-		SashFormEditPart sashFormEditPart = (SashFormEditPart) editPart
-				.getParent();
-		List<ControlEditPart> children = CompositeEditPartHelper.getChildren(sashFormEditPart);
-		SashForm sashForm = (SashForm) sashFormEditPart.getWidget();
-		int[] weights = sashForm.getWeights();
-
-		int index = children.indexOf(editPart);
-		int start;
-		int end;
-
-		if (index - 2 < 0) {
-			GraphicalEditPart previous = (GraphicalEditPart) children.get(0);
-			IFigure figure = previous.getFigure();
-			Rectangle rectangle = figure.getBounds().getCopy();
-			figure.translateToAbsolute(rectangle);
-			rectangle = transposer.t(rectangle);
-			start = rectangle.y;
-		} else {
-			GraphicalEditPart previous = (GraphicalEditPart) children
-					.get(index - 2);
-			IFigure figure = previous.getFigure();
-			Rectangle rectangle = figure.getBounds().getCopy();
-			figure.translateToAbsolute(rectangle);
-			rectangle = transposer.t(rectangle);
-			start = rectangle.y + rectangle.height;
-		}
-
-		if (index + 2 > children.size() - 1) {
-			GraphicalEditPart next = (GraphicalEditPart) children.get(children
-					.size() - 1);
-			IFigure figure = next.getFigure();
-			Rectangle rectangle = figure.getBounds().getCopy();
-			figure.translateToAbsolute(rectangle);
-			rectangle = transposer.t(rectangle);
-			end = rectangle.y + rectangle.height;
-		} else {
-			GraphicalEditPart next = (GraphicalEditPart) children
-					.get(index + 2);
-			IFigure figure = next.getFigure();
-			Rectangle rectangle = figure.getBounds().getCopy();
-			figure.translateToAbsolute(rectangle);
-			rectangle = transposer.t(rectangle);
-			end = rectangle.y;
-		}
-
-		if (rect.y < start) {
-			rect.y = start;
-		}
-		if (rect.y + rect.height > end) {
-			rect.y = end - rect.height;
-		}
-
-		int weightIndex = index / 2;
-		int total = weights[weightIndex] + weights[weightIndex + 1];
-
-		{
-			int previousWeight = (int) ((rect.y - start) * total / (end - start - rect.height));
-			weights[weightIndex] = previousWeight;
-			weights[weightIndex + 1] = total - previousWeight;
-
-			label.setText(SashUtil.weightsDisplayString(weights));
-			Dimension dimension = label.getPreferredSize();
-			label.setSize(dimension);
-			dimension = transposer.t(dimension);
-
-			location.y = (int) rect.y + 10;
-			location.x = (int) rect.x + (rect.width - dimension.width) / 2;
-		}
-		location = transposer.t(location);
-
-		rect = transposer.t(rect);
-
-		feedback.translateToRelative(rect);
-		feedback.setBounds(rect);
-
-		label.translateToRelative(location);
-		label.setLocation(location);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/source/XWTJavaEditor.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/source/XWTJavaEditor.java
deleted file mode 100755
index f771839..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/source/XWTJavaEditor.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.source;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.xwt.IConstants;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.xwt.tools.ui.designer.core.ceditor.ISourcePage;
-import org.eclipse.xwt.tools.ui.designer.model.XamlDocumentProvider;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class XWTJavaEditor extends CompilationUnitEditor implements ISourcePage {
-
-	private IType type;
-
-	public IType getType() {
-		return type;
-	}
-
-	public String getPageName() {
-		return "Java";
-	}
-
-	public boolean isEnabledFor(IEditorPart editorPart) {
-		IEditorInput editorInput = editorPart.getEditorInput();
-		if (editorInput == null || !(editorInput instanceof FileEditorInput)) {
-			return false;
-		}
-		IFile file = ((IFileEditorInput) editorInput).getFile();
-		if (file == null || !file.exists()
-				|| !"xwt".equals(file.getFileExtension())) {
-			return false;
-		}
-		String clr = loadCLR(file);
-		if (clr == null) {
-			return false;
-		}
-		IProject project = file.getProject();
-		IJavaProject create = JavaCore.create(project);
-		try {
-			type = create.findType(clr);
-		} catch (JavaModelException e) {
-			e.printStackTrace();
-		}
-		return type != null;
-	}
-
-	private String loadCLR(IFile file) {
-		XamlDocument document = XamlDocumentProvider.getDocument(file);
-		if (document == null || document.getRootElement() == null) {
-			return null;
-		}
-		XamlElement root = document.getRootElement();
-		XamlAttribute attribute = root.getAttribute("Class",
-				IConstants.XWT_X_NAMESPACE);
-		return attribute != null ? attribute.getValue() : null;
-	}
-
-	public void configureSourcePage(IEditorPart editorPart) {
-		if (type == null) {
-			return;
-		}
-		setInput(new FileEditorInput((IFile) type.getResource()));
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/source/XWTSourceEditor.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/source/XWTSourceEditor.java
deleted file mode 100755
index 4143766..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/source/XWTSourceEditor.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.source;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-import org.eclipse.xwt.tools.ui.designer.core.ceditor.ISourcePage;
-import org.eclipse.xwt.tools.ui.designer.model.XamlDocumentProvider;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public class XWTSourceEditor extends StructuredTextEditor implements
-		ISourcePage {
-
-	private XamlDocument document;
-
-	public String getPageName() {
-		return "Source";
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.xwt.tools.ui.designer.core.editor.ISourcePage#isEnabled()
-	 */
-	public boolean isEnabledFor(IEditorPart editorPart) {
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.core.editor.ISourcePage#
-	 * configureSourcePage(org.eclipse.ui.IEditorPart)
-	 */
-	public void configureSourcePage(IEditorPart editorPart) {
-		setEditorPart(editorPart);
-		initializeDocument();
-	}
-
-	private void initializeDocument() {
-		IEditorInput editorInput = getEditorInput();
-		if (editorInput instanceof IFileEditorInput) {
-			IFile file = ((IFileEditorInput) editorInput).getFile();
-			document = XamlDocumentProvider.getDocument(file);
-		}
-		if (document != null) {
-			connect();
-		}
-	}
-
-	private void connect() {
-
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/text/XWTContentAssistProcessor.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/text/XWTContentAssistProcessor.java
deleted file mode 100755
index 930c006..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/text/XWTContentAssistProcessor.java
+++ /dev/null
@@ -1,981 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.text;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.xwt.IEventConstants;
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.XWTMaps;
-import org.eclipse.xwt.converters.StringToInteger;
-import org.eclipse.xwt.metadata.IEvent;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.xwt.metadata.IProperty;
-import org.eclipse.xwt.utils.NamedColorsUtil;
-import org.eclipse.xwt.utils.ResourceManager;
-import org.eclipse.jdt.core.IMethod;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.internal.core.JavaProject;
-import org.eclipse.jdt.internal.ui.JavaPluginImages;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.wst.xml.ui.internal.contentassist.ContentAssistRequest;
-import org.eclipse.wst.xml.ui.internal.contentassist.XMLContentAssistProcessor;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImageHelper;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImages;
-import org.eclipse.xwt.tools.ui.designer.core.style.SWTStyles;
-import org.eclipse.xwt.tools.ui.designer.core.style.StyleGroup;
-import org.eclipse.xwt.tools.ui.designer.core.util.StringUtil;
-import org.eclipse.xwt.tools.ui.designer.editor.text.assist.XWTSelectionCompletionProposal;
-import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-@SuppressWarnings("restriction")
-public class XWTContentAssistProcessor extends XMLContentAssistProcessor {
-
-	static XWTSelectionCompletionProposal[] booleanProposals;
-	static XWTSelectionCompletionProposal[] colorsProposals;
-	static XWTSelectionCompletionProposal[] stylesProposals;
-	static XWTSelectionCompletionProposal[] acceleratorsProposals;
-
-	protected Comparator<ICompletionProposal> comparator = new Comparator<ICompletionProposal>() {
-
-		public int compare(ICompletionProposal o1, ICompletionProposal o2) {
-			return o1.getDisplayString().compareTo(o2.getDisplayString());
-		}
-	};
-
-	static synchronized XWTSelectionCompletionProposal[] getBooleanProposals() {
-		if (booleanProposals == null) {
-			String[] values = new String[] { "true", "false" };
-			Image image = ImageShop
-					.get(XMLEditorPluginImages.IMG_OBJ_ATTRIBUTE);
-			booleanProposals = new XWTSelectionCompletionProposal[values.length];
-			for (int j = 0; j < values.length; j++) {
-				String pattern = "\"" + values[j] + "\"";
-				booleanProposals[j] = new XWTSelectionCompletionProposal(
-						pattern, 0, 0, 1, values[j].length(), image, values[j],
-						null, null);
-			}
-		}
-		return booleanProposals;
-	}
-
-	static synchronized XWTSelectionCompletionProposal[] getColorsProposals() {
-		if (colorsProposals == null) {
-			Collection<String> names = XWTMaps.getColorKeys();
-			String[] colorNames = NamedColorsUtil.getColorNames();
-			colorsProposals = new XWTSelectionCompletionProposal[names.size()
-					+ colorNames.length];
-
-			int i = 0;
-			for (String colorStr : names) {
-				Color color = ResourceManager.resources.getColor(colorStr);
-				XWTSelectionCompletionProposal p = createColorProposal(color,
-						colorStr);
-				if (p != null) {
-					colorsProposals[i++] = p;
-				}
-			}
-			for (String colorName : colorNames) {
-				Color color = ResourceManager.resources.getColor(colorName);
-				XWTSelectionCompletionProposal p = createColorProposal(color,
-						colorName);
-				if (p != null) {
-					colorsProposals[i++] = p;
-				}
-			}
-		}
-		return colorsProposals;
-	}
-
-	static XWTSelectionCompletionProposal createColorProposal(Color color,
-			String colorName) {
-		if (color != null) {
-			String pattern = "\"" + colorName + "\"";
-			Image image = new Image(null, 16, 16);
-			GC gc = new GC(image);
-			gc.setBackground(color);
-			gc.fillRectangle(0, 0, 16, 16);
-			gc.dispose();
-			return new XWTSelectionCompletionProposal(pattern, 0, 0, 1,
-					colorName.length(), image, colorName, null, null);
-		}
-		return null;
-
-	}
-
-	static synchronized XWTSelectionCompletionProposal[] getStylesProposals(
-			Class<?> type, String value) {
-		stylesProposals = null;
-		Image image = ImageShop.get(ImageShop.IMG_ELEMENT);
-		if (value.startsWith("\"")) {
-			value = value.replace("\"", "");
-		}
-		Collection<String> names = getStyleFromWidgetName(type, value);
-		stylesProposals = new XWTSelectionCompletionProposal[names.size()];
-		int i = 0;
-		String replaceString = "";
-		for (String string : names) {
-			replaceString = getStyleCorrectReplacedPattern(string, value, type);
-			String pattern = "\"" + replaceString + "\"";
-			stylesProposals[i++] = new XWTSelectionCompletionProposal(pattern,
-					0, 0, 1, replaceString.length(), image, string, null, null);
-		}
-		return stylesProposals;
-	}
-
-	private static String getStyleCorrectReplacedPattern(String newStyle,
-			String oldStyle, Class<?> type) {
-		int masterStyle = 0;
-		String shouldDelete = "";
-		boolean isInSameGroup = false;
-		List<String> oldValues = new ArrayList<String>();
-		StringTokenizer stk = new StringTokenizer(oldStyle, "|");
-		while (stk.hasMoreTokens()) {
-			oldValues.add(stk.nextToken().trim());
-		}
-		masterStyle = getMasterStyleIntegerFromStyles(oldValues);
-		StyleGroup[] styles = SWTStyles.getStyles(type);
-		for (StyleGroup styleGroup : styles) {
-			if (!styleGroup.match(masterStyle)) {
-				continue;
-			}
-			String[] items = styleGroup.getStyles();
-			isInSameGroup = Arrays.asList(items).contains(newStyle);
-			if (isInSameGroup) {
-				if (!"default".equals(styleGroup.getGroupName())) {
-					for (String item : items) {
-						for (String oldValue : oldValues) {
-							if (equalsIgnoreSWTStyle(oldValue, item)) {
-								shouldDelete = oldValue;
-							}
-						}
-					}
-				}
-				oldValues.remove(shouldDelete);
-				oldValues.add(newStyle);
-			}
-		}
-		String newStyleValue = StringUtil.format(
-				oldValues.toArray(new String[oldValues.size()]), "|");
-		return newStyleValue;
-	}
-
-	private static boolean equalsIgnoreSWTStyle(String value, String object) {
-		if (value.contains("SWT.")) {
-			value = value.replace("SWT.", "");
-		}
-		if (object.contains("SWT.")) {
-			object = object.replace("SWT.", "");
-		}
-		if (value.equalsIgnoreCase(object)) {
-			return true;
-		}
-		return false;
-	}
-
-	private static int getMasterStyleIntegerFromStyles(List<String> oldValues) {
-		int masterStyle = 0;
-		if (oldValues != null && oldValues.size() != 0) {
-			for (String oldValue : oldValues) {
-				masterStyle = masterStyle
-						| (Integer) StringToInteger.instance.convert(oldValue);
-			}
-		}
-		return masterStyle;
-	}
-
-	private static Collection<String> getStyleFromWidgetName(Class<?> type,
-			String value) {
-		Collection<String> collection = new HashSet<String>();
-		collection.clear();
-		int masterStyle = 0;
-		List<String> oldValues = new ArrayList<String>();
-		StringTokenizer stk = new StringTokenizer(value, "|");
-		while (stk.hasMoreTokens()) {
-			oldValues.add(stk.nextToken().trim());
-		}
-
-		masterStyle = getMasterStyleIntegerFromStyles(oldValues);
-
-		StyleGroup[] styles = SWTStyles.getStyles(type);
-		for (StyleGroup styleGroup : styles) {
-			if (!styleGroup.match(masterStyle)) {
-				continue;
-			}
-			String[] items = styleGroup.getStyles();
-			for (String item : items) {
-				if (!isContainsTheElement(oldValues, item)) {
-					collection.add(item);
-				}
-			}
-		}
-		return collection;
-	}
-
-	private static boolean isContainsTheElement(List<String> oldValues,
-			String style) {
-		if (style.contains("SWT.")) {
-			style = style.replace("SWT.", "");
-		}
-		for (String oldValue : oldValues) {
-			if (oldValue.contains("SWT.")) {
-				oldValue = oldValue.replace("SWT.", "");
-			}
-			if (oldValue.equalsIgnoreCase(style)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	static synchronized XWTSelectionCompletionProposal[] getAcceleratorsProposals() {
-		if (acceleratorsProposals == null) {
-			Collection<String> names = XWTMaps.getAcceleratorKeys();
-			acceleratorsProposals = new XWTSelectionCompletionProposal[names
-					.size()];
-			int i = 0;
-			for (String string : names) {
-				String pattern = "\"" + string + "\"";
-				acceleratorsProposals[i++] = new XWTSelectionCompletionProposal(
-						pattern, 0, 0, 1, string.length(), null, string, null,
-						null);
-			}
-		}
-		return acceleratorsProposals;
-	}
-
-	protected void addAttributeNameProposals(
-			ContentAssistRequest contentAssistRequest) {
-		addXAMLPropertyNameProposals(contentAssistRequest);
-		super.addAttributeNameProposals(contentAssistRequest);
-	}
-
-	private void addXAMLPropertyNameProposals(
-			ContentAssistRequest contentAssistRequest) {
-		List<ICompletionProposal> proposalCollector = new ArrayList<ICompletionProposal>();
-		List<ICompletionProposal> macrosCollector = new ArrayList<ICompletionProposal>();
-
-		//
-		Node node = contentAssistRequest.getNode();
-		String name = getNodeName(node);
-
-		HashSet<String> existing = new HashSet<String>();
-		NamedNodeMap namedNodeMap = node.getAttributes();
-		for (int i = 0; i < namedNodeMap.getLength(); i++) {
-			Node attributeNode = namedNodeMap.item(i);
-			String attributeName = attributeNode.getNodeName();
-			existing.add(attributeName);
-		}
-		boolean useProposalList = !contentAssistRequest.shouldSeparate();
-		int offset = contentAssistRequest.getReplacementBeginPosition();
-		int replacementLength = contentAssistRequest.getReplacementLength();
-		IDocument document = fTextViewer.getDocument();
-		String prefixed = null;
-		try {
-			prefixed = document.get(offset, replacementLength).toLowerCase();
-		} catch (BadLocationException e1) {
-		}
-
-		IMetaclass metaclass = XWT.getMetaclass(name, node.getNamespaceURI());
-		if (metaclass != null) {
-			IProperty[] properties = metaclass.getProperties();
-			for (IProperty property : properties) {
-				Class<?> propertyType = property.getType();
-				if (propertyType != null
-						&& Control.class.isAssignableFrom(propertyType)) {
-					continue;
-				}
-
-				String propertyName = property.getName();
-				if (prefixed != null
-						&& !propertyName.toLowerCase().startsWith(prefixed)) {
-					continue;
-				}
-
-				if (!existing.contains(propertyName)) {
-					String defaultValueString = "";
-					if (propertyName.equalsIgnoreCase("style")) {
-						propertyName = "x:style";
-						defaultValueString = "SWT.NONE";
-					}
-					String replacementString = propertyName + "=\""
-							+ defaultValueString + "\" ";
-					Image image = ImageShop
-							.get(JavaPluginImages.IMG_FIELD_PUBLIC);
-					XWTSelectionCompletionProposal proposal = new XWTSelectionCompletionProposal(
-							replacementString, offset, replacementLength,
-							propertyName.length() + 2,
-							defaultValueString.length(), image, propertyName,
-							null, "Property: " + propertyName);
-					if (useProposalList) {
-						proposalCollector.add(proposal);
-					} else {
-						macrosCollector.add(proposal);
-					}
-				}
-			}
-
-			IEvent[] events = metaclass.getEvents();
-			for (IEvent event : events) {
-				String eventName = event.getName();
-				if (prefixed != null
-						&& !eventName.toLowerCase().startsWith(prefixed)) {
-					continue;
-				}
-
-				eventName = Character.toUpperCase(eventName.charAt(0))
-						+ eventName.substring(1) + IEventConstants.SUFFIX;
-				if (event.getName() != null
-						&& (event.getName().equals(IEventConstants.XWT_LOADED) || event
-								.getName().equals(
-										IEventConstants.XWT_LOADED_EVENT))) {
-					eventName = IEventConstants.XWT_LOADED;
-				}
-
-				if (!existing.contains(eventName)) {
-					String replacementString = eventName + "=\"perform"
-							+ eventName + "\" ";
-					Image image = ImageShop.get(ImageShop.IMG_EVENT);
-					XWTSelectionCompletionProposal proposal = new XWTSelectionCompletionProposal(
-							replacementString, offset, replacementLength,
-							eventName.length() + 2, eventName.length()
-									+ "perform".length(), image, eventName,
-							null, "Event: " + eventName);
-					if (useProposalList) {
-						proposalCollector.add(proposal);
-					} else {
-						macrosCollector.add(proposal);
-					}
-				}
-			}
-		}
-
-		Node parentNode = node.getParentNode();
-		String parentName = getNodeName(parentNode);
-		try {
-			IMetaclass parentMetaclass = XWT.getMetaclass(parentName,
-					parentNode.getNamespaceURI());
-			if (parentMetaclass != null) {
-				// Attached property
-			}
-		} catch (Exception e) {
-		}
-
-		Collections.sort(proposalCollector, comparator);
-		Collections.sort(macrosCollector, comparator);
-
-		for (ICompletionProposal proposal : proposalCollector) {
-			contentAssistRequest.addProposal(proposal);
-		}
-
-		for (ICompletionProposal proposal : macrosCollector) {
-			contentAssistRequest.addMacro(proposal);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.wst.xml.ui.internal.contentassist.XMLContentAssistProcessor
-	 * #addAttributeValueProposals
-	 * (org.eclipse.wst.xml.ui.internal.contentassist.ContentAssistRequest)
-	 */
-	protected void addAttributeValueProposals(
-			ContentAssistRequest contentAssistRequest) {
-		addXAMLPropertyValueProposals(contentAssistRequest);
-		super.addAttributeValueProposals(contentAssistRequest);
-	}
-
-	private void addXAMLPropertyValueProposals(
-			ContentAssistRequest contentAssistRequest) {
-		List<ICompletionProposal> proposalCollector = new ArrayList<ICompletionProposal>();
-		List<ICompletionProposal> macrosCollector = new ArrayList<ICompletionProposal>();
-		IDOMNode node = (IDOMNode) contentAssistRequest.getNode();
-		String namespaceURI = node.getNamespaceURI();
-		String name = getNodeName(node);
-		String value = "";
-		IMetaclass metaclass = XWT.getMetaclass(name, namespaceURI);
-		StyledText textWidget = fTextViewer.getTextWidget();
-		if (metaclass != null) {
-			// Find the attribute region and name for which this position should
-			// have a value proposed
-			IStructuredDocumentRegion open = node
-					.getFirstStructuredDocumentRegion();
-			ITextRegionList openRegions = open.getRegions();
-			int m = openRegions.indexOf(contentAssistRequest.getRegion());
-			int n = openRegions.indexOf(contentAssistRequest.getRegion());
-			if (m < 0 || n < 0) {
-				return;
-			}
-			ITextRegion nameRegion = null;
-			ITextRegion valueRegion = null;
-			while (m >= 0) {
-				nameRegion = openRegions.get(m--);
-				if (nameRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
-					break;
-				}
-			}
-			while (n >= 0) {
-				valueRegion = openRegions.get(n--);
-				if (valueRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-					break;
-				}
-			}
-			if (valueRegion != null) {
-				value = open.getText(valueRegion);
-			}
-
-			// the name region is REQUIRED to do anything useful
-			if (nameRegion != null) {
-				// Retrieve the declaration
-				CMElementDeclaration elementDecl = getCMElementDeclaration(node);
-
-				// String attributeName = nameRegion.getText();
-				String attributeName = open.getText(nameRegion);
-				IProperty property = metaclass.findProperty(attributeName);
-				if (attributeName.equalsIgnoreCase("x:style")
-						|| property != null) {
-					int offset = contentAssistRequest
-							.getReplacementBeginPosition();
-					int replacementLength = contentAssistRequest
-							.getReplacementLength();
-					boolean useProposalList = !contentAssistRequest
-							.shouldSeparate();
-
-					String prefixed = null;
-					String prefixedQuote = "";
-					boolean fullValue = true;
-					try {
-						int caretIndex = textWidget.getCaretOffset();
-						IDocument document = fTextViewer.getDocument();
-						prefixed = document.get(offset, caretIndex - offset)
-								.toLowerCase();
-						if (prefixed.equals("\"\"")) {
-							prefixed = null;
-						}
-					} catch (BadLocationException e1) {
-					}
-					if (prefixed != null) {
-						prefixedQuote = prefixed + "\"";
-						fullValue = false;
-					}
-
-					// filter accelerators of menu element.
-					if (attributeName.equalsIgnoreCase("accelerator")) {
-						XWTSelectionCompletionProposal[] proposals = getAcceleratorsProposals();
-						for (int j = 0; j < proposals.length; j++) {
-							String pattern = proposals[j]
-									.getReplacementString();
-							if (prefixed != null
-									&& ((!pattern.toLowerCase().startsWith(
-											prefixed) && !fullValue) || prefixedQuote
-											.equalsIgnoreCase(pattern))) {
-								continue;
-							}
-
-							proposals[j].setReplacementOffset(offset);
-							proposals[j]
-									.setReplacementLength(replacementLength);
-							if (useProposalList) {
-								proposalCollector.add(proposals[j]);
-							} else {
-								macrosCollector.add(proposals[j]);
-							}
-						}
-						Collections.sort(proposalCollector, comparator);
-						Collections.sort(macrosCollector, comparator);
-
-						for (ICompletionProposal proposal : proposalCollector) {
-							contentAssistRequest.addProposal(proposal);
-						}
-
-						for (ICompletionProposal proposal : macrosCollector) {
-							contentAssistRequest.addMacro(proposal);
-						}
-						return;
-					}
-
-					// styles TODO: filter styles of each element.
-					if (attributeName.equalsIgnoreCase("x:style")) {
-						XWTSelectionCompletionProposal[] proposals = getStylesProposals(
-								metaclass.getType(), value);
-						for (int j = 0; j < proposals.length; j++) {
-							String pattern = proposals[j]
-									.getReplacementString();
-							if (prefixed != null
-									&& ((!pattern.toLowerCase().startsWith(
-											prefixed) && !fullValue) || prefixedQuote
-											.equalsIgnoreCase(pattern))) {
-								continue;
-							}
-
-							proposals[j].setReplacementOffset(offset);
-							proposals[j]
-									.setReplacementLength(replacementLength);
-							if (useProposalList) {
-								proposalCollector.add(proposals[j]);
-							} else {
-								macrosCollector.add(proposals[j]);
-							}
-						}
-						Collections.sort(proposalCollector, comparator);
-						Collections.sort(macrosCollector, comparator);
-
-						for (ICompletionProposal proposal : proposalCollector) {
-							contentAssistRequest.addProposal(proposal);
-						}
-
-						for (ICompletionProposal proposal : macrosCollector) {
-							contentAssistRequest.addMacro(proposal);
-						}
-						return;
-					}
-					Class<?> javaType = property.getType();
-					if (javaType == Boolean.class || javaType == boolean.class) {
-						XWTSelectionCompletionProposal[] proposals = getBooleanProposals();
-						for (int j = 0; j < proposals.length; j++) {
-							String pattern = proposals[j]
-									.getReplacementString();
-							if (prefixed != null
-									&& ((!pattern.toLowerCase().startsWith(
-											prefixed) && !fullValue) || prefixedQuote
-											.equalsIgnoreCase(pattern))) {
-								continue;
-							}
-
-							proposals[j].setReplacementOffset(offset);
-							proposals[j]
-									.setReplacementLength(replacementLength);
-							if (useProposalList) {
-								proposalCollector.add(proposals[j]);
-							} else {
-								macrosCollector.add(proposals[j]);
-							}
-						}
-					} else if (javaType != null && javaType.isEnum()) {
-						Object[] objects = javaType.getEnumConstants();
-
-						IConverter converter = XWT.findConvertor(javaType,
-								String.class);
-						for (int j = 0; j < objects.length; j++) {
-							String valueString = "";
-							if (converter != null) {
-								Object stringValue = converter
-										.convert(objects[j]);
-								if (stringValue != null) {
-									valueString = stringValue.toString();
-								}
-							} else {
-								valueString = objects[j].toString();
-							}
-							String pattern = "\"" + valueString + "\"";
-							if (prefixed != null
-									&& ((!pattern.toLowerCase().startsWith(
-											prefixed) && !fullValue) || prefixedQuote
-											.equalsIgnoreCase(pattern))) {
-								continue;
-							}
-							Image image = XMLEditorPluginImageHelper
-									.getInstance().getImage(
-											XMLEditorPluginImages.IMG_OBJ_ENUM);
-							XWTSelectionCompletionProposal proposal = new XWTSelectionCompletionProposal(
-									pattern, offset, replacementLength, 1,
-									valueString.length(), image, valueString,
-									null, null);
-							if (useProposalList) {
-								proposalCollector.add(proposal);
-							} else {
-								macrosCollector.add(proposal);
-							}
-						}
-					} else if (javaType.isAssignableFrom(Color.class)) {
-						XWTSelectionCompletionProposal[] colorsProposals = getColorsProposals();
-						for (XWTSelectionCompletionProposal proposal : colorsProposals) {
-							String pattern = proposal.getReplacementString();
-							if (prefixed != null
-									&& ((!pattern.toLowerCase().startsWith(
-											prefixed) && !fullValue) || prefixedQuote
-											.equalsIgnoreCase(pattern))) {
-								continue;
-							}
-
-							proposal.setReplacementOffset(offset);
-							proposal.setReplacementLength(replacementLength);
-							if (useProposalList) {
-								proposalCollector.add(proposal);
-							} else {
-								macrosCollector.add(proposal);
-							}
-						}
-					}
-				} else {
-					IEvent[] allEvents = metaclass.getEvents();
-					JavaProject javaProject = (JavaProject) textWidget
-							.getData("javaProject");
-					String className = (String) textWidget.getData("className");
-					List<String> javaMethods = getJavaMethods(javaProject,
-							className);
-					int offset = contentAssistRequest
-							.getReplacementBeginPosition();
-					int caretIndex = textWidget.getCaretOffset();
-					IDocument document = fTextViewer.getDocument();
-					String prefixed = null;
-					try {
-						prefixed = document.get(offset + 1, caretIndex - offset
-								- 1);
-					} catch (BadLocationException e) {
-						e.printStackTrace();
-					}
-					int replacementLength = contentAssistRequest
-							.getReplacementLength();
-					boolean useProposalList = !contentAssistRequest
-							.shouldSeparate();
-					for (Iterator<String> iterator = javaMethods.iterator(); iterator
-							.hasNext();) {
-						String valueString = iterator.next();
-						if (valueString.equals(prefixed))
-							continue;
-						String pattern = "\"" + valueString + "\"";
-						XWTSelectionCompletionProposal proposal = new XWTSelectionCompletionProposal(
-								pattern, offset, replacementLength, 1,
-								valueString.length(), null, valueString, null,
-								null);
-						if (useProposalList) {
-							proposalCollector.add(proposal);
-						} else {
-							macrosCollector.add(proposal);
-						}
-					}
-				}
-			}
-		}
-
-		Collections.sort(proposalCollector, comparator);
-		Collections.sort(macrosCollector, comparator);
-
-		for (ICompletionProposal proposal : proposalCollector) {
-			contentAssistRequest.addProposal(proposal);
-		}
-
-		for (ICompletionProposal proposal : macrosCollector) {
-			contentAssistRequest.addMacro(proposal);
-		}
-	}
-
-	protected void addTagInsertionProposals(
-			ContentAssistRequest contentAssistRequest, int childPosition) {
-		addXAMLElementProposals(contentAssistRequest);
-		super.addTagInsertionProposals(contentAssistRequest, childPosition);
-	}
-
-	private void addXAMLElementProposals(
-			ContentAssistRequest contentAssistRequest) {
-		List<ICompletionProposal> proposalCollector = new ArrayList<ICompletionProposal>();
-		List<ICompletionProposal> macrosCollector = new ArrayList<ICompletionProposal>();
-
-		List<String> addedTags = new ArrayList<String>();
-
-		boolean useProposalList = !contentAssistRequest.shouldSeparate();
-		int offset = contentAssistRequest.getReplacementBeginPosition();
-		int replacementLength = contentAssistRequest.getReplacementLength();
-		String prefixed = null;
-		try {
-			IDocument document = fTextViewer.getDocument();
-			prefixed = document.get(offset, replacementLength).toLowerCase();
-		} catch (BadLocationException e1) {
-		}
-
-		Node node = contentAssistRequest.getNode();
-		if (node == null) {
-			return;
-		}
-		if (node instanceof IDOMText) {
-			IDOMText text = (IDOMText) node;
-			offset = text.getStartOffset();
-			replacementLength = text.getLength();
-			try {
-				IDocument document = fTextViewer.getDocument();
-				prefixed = document.get(offset, replacementLength).trim()
-						.toLowerCase();
-			} catch (BadLocationException e1) {
-			}
-		} else if (node instanceof IDOMNode) {
-			IDOMNode domNode = (IDOMNode) node;
-			NodeList children = domNode.getChildNodes();
-			for (int i = 0; i < children.getLength(); i++) {
-				Node child = children.item(i);
-				if (child instanceof IDOMText) {
-					IDOMText text = (IDOMText) child;
-					offset = text.getStartOffset();
-					replacementLength = text.getLength();
-					try {
-						IDocument document = fTextViewer.getDocument();
-						prefixed = document.get(offset, replacementLength)
-								.trim().toLowerCase();
-					} catch (BadLocationException e1) {
-					}
-					break;
-				}
-			}
-		}
-
-		while (node.getNodeType() != Node.ELEMENT_NODE) {
-			node = node.getParentNode();
-			if (node == null) {
-				return;
-			}
-		}
-
-		boolean containControls = false;
-		String name = getNodeName(node);
-		if (name.indexOf(".") != -1) {
-			if (name.toLowerCase().endsWith(".control")) {
-				name = "Control";// Add controls to TabItem, CoolItem...
-				containControls = true;
-			} else {
-				List<XWTSelectionCompletionProposal> proposals = createPropertyNodeProposals(
-						name, offset, replacementLength);
-				if (useProposalList) {
-					proposalCollector.addAll(proposals);
-				} else {
-					macrosCollector.addAll(proposals);
-				}
-				Collections.sort(proposalCollector, comparator);
-				Collections.sort(macrosCollector, comparator);
-
-				for (ICompletionProposal proposal : proposalCollector) {
-					contentAssistRequest.addProposal(proposal);
-				}
-
-				for (ICompletionProposal proposal : macrosCollector) {
-					contentAssistRequest.addMacro(proposal);
-				}
-				return;
-			}
-		}
-		IMetaclass metaclass = XWT.getMetaclass(name, node.getNamespaceURI());
-		String tagName = name + ".Resources";
-		if (!addedTags.contains(tagName)
-				&& (prefixed == null || tagName.toLowerCase().startsWith(
-						prefixed))) {
-			addedTags.add(tagName);
-
-			String pattern = "<" + tagName + "></" + tagName + ">";
-			Image image = ImageShop.get(ImageShop.IMG_RESOURCES);
-			XWTSelectionCompletionProposal proposal = new XWTSelectionCompletionProposal(
-					pattern, offset, replacementLength, tagName.length() + 2,
-					0, image, tagName, null, "Element resources");
-			if (useProposalList) {
-				proposalCollector.add(proposal);
-			} else {
-				macrosCollector.add(proposal);
-			}
-		}
-
-		// layout
-		String layout = name + ".layout";
-		if (!addedTags.contains(layout)
-				&& (prefixed == null || layout.startsWith(prefixed))) {
-			XWTSelectionCompletionProposal layoutProposal = createLayoutProposal(
-					metaclass, layout, offset, replacementLength);
-			if (layoutProposal != null) {
-				if (useProposalList) {
-					proposalCollector.add(layoutProposal);
-				} else {
-					macrosCollector.add(layoutProposal);
-				}
-			}
-		}
-		// layoutData
-		String layoutData = name + ".layoutData";
-		if (!addedTags.contains(layout)
-				&& (prefixed == null || layout.startsWith(prefixed))) {
-			XWTSelectionCompletionProposal proposal = createLayoutDataProposal(
-					metaclass, layoutData, offset, replacementLength);
-			if (proposal != null) {
-				if (useProposalList) {
-					proposalCollector.add(proposal);
-				} else {
-					macrosCollector.add(proposal);
-				}
-			}
-		}
-		if (metaclass != null) {
-			if (containControls
-					|| Composite.class.isAssignableFrom(metaclass.getType())) {
-				IMetaclass[] metaclasses = XWT.getAllMetaclasses();
-				for (IMetaclass type : metaclasses) {
-					if (Control.class.isAssignableFrom(type.getType())
-							&& !type.isAbstract()) {
-
-						String typeName = type.getName();
-						if (prefixed != null
-								&& !typeName.toLowerCase().startsWith(prefixed)) {
-							continue;
-						}
-						if (addedTags.contains(typeName)) {
-							continue;
-						} else {
-							addedTags.add(typeName);
-						}
-						String pattern = "<" + typeName + "></" + typeName
-								+ ">";
-						Image image = ImageShop.get(ImageShop.IMG_ELEMENT);
-						XWTSelectionCompletionProposal proposal = new XWTSelectionCompletionProposal(
-								pattern, offset, replacementLength,
-								typeName.length() + 2, 0, image, typeName,
-								null, null);
-						if (useProposalList) {
-							proposalCollector.add(proposal);
-						} else {
-							macrosCollector.add(proposal);
-						}
-					}
-				}
-			}
-		}
-
-		Collections.sort(proposalCollector, comparator);
-		Collections.sort(macrosCollector, comparator);
-
-		for (ICompletionProposal proposal : proposalCollector) {
-			contentAssistRequest.addProposal(proposal);
-		}
-
-		for (ICompletionProposal proposal : macrosCollector) {
-			contentAssistRequest.addMacro(proposal);
-		}
-	}
-
-	private List<XWTSelectionCompletionProposal> createPropertyNodeProposals(
-			String tagName, int offset, int replacementLength) {
-		int index = tagName.indexOf(".");
-		if (index == -1) {
-			return Collections.emptyList();
-		}
-		List<XWTSelectionCompletionProposal> proposals = new ArrayList<XWTSelectionCompletionProposal>();
-		String property = tagName.substring(index + 1);
-		if ("layout".equalsIgnoreCase(property)) {
-			String[] layouts = new String[] { "GridLayout", "FillLayout",
-					"RowLayout", "StackLayout", "FormLayout" };
-			for (int i = 0; i < layouts.length; i++) {
-				String pattern = "<" + layouts[i] + "/>";
-				Image image = ImageShop.get(ImageShop.IMG_ELEMENT);
-				XWTSelectionCompletionProposal p = new XWTSelectionCompletionProposal(
-						pattern, offset, replacementLength,
-						layouts[i].length() + 2, 0, image, layouts[i], null,
-						"Container Layout.");
-				proposals.add(p);
-			}
-		} else if ("layoutData".equalsIgnoreCase(property)) {
-			String[] layoutDatas = new String[] { "GridData", "StackData",
-					"FormData", "RowData" };
-			for (int i = 0; i < layoutDatas.length; i++) {
-				String pattern = "<" + layoutDatas[i] + "></" + layoutDatas[i]
-						+ ">";
-				Image image = ImageShop.get(ImageShop.IMG_ELEMENT);
-				XWTSelectionCompletionProposal p = new XWTSelectionCompletionProposal(
-						pattern, offset, replacementLength,
-						layoutDatas[i].length() + 2, 0, image, layoutDatas[i],
-						null, "Container LayoutData.");
-				proposals.add(p);
-			}
-		}
-		return proposals;
-	}
-
-	private XWTSelectionCompletionProposal createLayoutDataProposal(
-			IMetaclass metaclass, String layoutData, int offset,
-			int replacementLength) {
-		if (!Control.class.isAssignableFrom(metaclass.getType())) {
-			return null;
-		}
-		String pattern = "<" + layoutData + "></" + layoutData + ">";
-		Image image = JavaPluginImages.get(JavaPluginImages.IMG_FIELD_PUBLIC);
-		return new XWTSelectionCompletionProposal(pattern, offset,
-				replacementLength, layoutData.length() + 2, 0, image,
-				layoutData, null, "Control LayoutData.");
-	}
-
-	private XWTSelectionCompletionProposal createLayoutProposal(
-			IMetaclass metaclass, String tagName, int offset,
-			int replacementLength) {
-		if (!Composite.class.isAssignableFrom(metaclass.getType())) {
-			return null;
-		}
-		String pattern = "<" + tagName + "></" + tagName + ">";
-		Image image = JavaPluginImages.get(JavaPluginImages.IMG_FIELD_PUBLIC);
-		return new XWTSelectionCompletionProposal(pattern, offset,
-				replacementLength, tagName.length() + 2, 0, image, tagName,
-				null, "Container Layout.");
-	}
-
-	private String getNodeName(Node node) {
-		String name = node.getNodeName();
-		int index = name.indexOf(":");
-		if (index != -1) {
-			name = name.substring(index + 1);
-		}
-		return name;
-	}
-
-	private List<String> getJavaMethods(JavaProject javaProject,
-			String className) {
-		if (javaProject == null || className == null) {
-			return Collections.emptyList();
-		}
-		List<String> javaMethods = new ArrayList<String>();
-		try {
-			IType type = javaProject.findType(className);
-			IMethod[] methods = type.getMethods();
-			for (int i = 0; i < methods.length; i++) {
-				IMethod method = methods[i];
-				String methodName = method.getElementName();
-				javaMethods.add(methodName);
-			}
-		} catch (JavaModelException e) {
-			e.printStackTrace();
-		}
-		return javaMethods;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/text/XWTStructuredTextViewerConfiguration.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/text/XWTStructuredTextViewerConfiguration.java
deleted file mode 100755
index fc250ae..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/text/XWTStructuredTextViewerConfiguration.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.text;
-
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.wst.sse.core.text.IStructuredPartitions;
-import org.eclipse.wst.xml.core.text.IXMLPartitions;
-import org.eclipse.wst.xml.ui.StructuredTextViewerConfigurationXML;
-import org.eclipse.wst.xml.ui.internal.contentassist.NoRegionContentAssistProcessor;
-
-public class XWTStructuredTextViewerConfiguration extends StructuredTextViewerConfigurationXML {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.xml.ui.StructuredTextViewerConfigurationXML#getContentAssistProcessors(org.eclipse.jface.text.source.ISourceViewer, java.lang.String)
-	 */
-	protected IContentAssistProcessor[] getContentAssistProcessors(ISourceViewer sourceViewer, String partitionType) {
-		IContentAssistProcessor[] processors = null;
-		if ((partitionType.equals(IStructuredPartitions.DEFAULT_PARTITION))
-				|| (partitionType.equals(IXMLPartitions.XML_DEFAULT))) {
-			processors = new IContentAssistProcessor[] { new XWTContentAssistProcessor() };
-		} else if (partitionType
-				.equals(IStructuredPartitions.UNKNOWN_PARTITION)) {
-			processors = new IContentAssistProcessor[] { new NoRegionContentAssistProcessor() };
-		}
-		return processors;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/text/assist/ColorSelectionCompletionProposal.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/text/assist/ColorSelectionCompletionProposal.java
deleted file mode 100755
index a3e30e8..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/text/assist/ColorSelectionCompletionProposal.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.text.assist;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.xwt.tools.ui.designer.dialogs.ColorChooser;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ColorSelectionCompletionProposal extends XWTSelectionCompletionProposal {
-
-	public ColorSelectionCompletionProposal() {
-		super("\"(Choose Color...)\"", 0, 0, 0, 0, null, "(Choose Color...)", null, null);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.editor.text.assist.XWTSelectionCompletionProposal#apply(org.eclipse.jface.text.IDocument)
-	 */
-	public void apply(IDocument document) {
-		ColorChooser dialog = new ColorChooser(new Shell(), null);
-		if (dialog.open() == Window.OK) {
-			String color = dialog.getColor();
-			if (color == null || color.equals("")) {
-				return;
-			}
-			setReplacementString("\"" + color + "\"");
-			super.apply(document);
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/text/assist/XWTSelectionCompletionProposal.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/text/assist/XWTSelectionCompletionProposal.java
deleted file mode 100755
index 40a59a6..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/text/assist/XWTSelectionCompletionProposal.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.editor.text.assist;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.xwt.tools.ui.designer.XWTDesignerPlugin;
-import org.eclipse.xwt.tools.ui.designer.core.editor.text.assist.SelectionCompletionProposal;
-import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
-
-public class XWTSelectionCompletionProposal extends SelectionCompletionProposal {
-
-	/**
-	 * constructor
-	 * 
-	 * @param replacementString
-	 * @param replacementOffset
-	 * @param replacementLength
-	 * @param cursorPosition
-	 * @param selectionLength
-	 * @param image
-	 * @param displayString
-	 * @param contextInformation
-	 * @param additionalProposalInfo
-	 */
-	public XWTSelectionCompletionProposal(String replacementString, int replacementOffset, int replacementLength, int cursorPosition, int selectionLength, Image image, String displayString, IContextInformation contextInformation, String additionalProposalInfo) {
-		super(replacementString, replacementOffset, replacementLength, cursorPosition, selectionLength, image, displayString, contextInformation, additionalProposalInfo);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.xaml.ve.contentassist.SelectionCompletionProposal#apply(org.eclipse.jface.text.IDocument)
-	 */
-	public void apply(final IDocument document) {
-		XWTDesigner activeDesigner = XWTDesignerPlugin.getDefault().getActiveDesigner();
-		if (activeDesigner != null) {
-			activeDesigner.formatWithCompound(new Runnable() {
-				public void run() {
-					XWTSelectionCompletionProposal.super.apply(document);
-				}
-			});
-		} else {
-			super.apply(document);
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/ASTHelper.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/ASTHelper.java
deleted file mode 100755
index 60cdfd0..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/ASTHelper.java
+++ /dev/null
@@ -1,702 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.jdt;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jdt.core.Flags;
-import org.eclipse.jdt.core.IBuffer;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IField;
-import org.eclipse.jdt.core.IMethod;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.ISourceRange;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.core.Signature;
-import org.eclipse.jdt.core.compiler.IProblem;
-import org.eclipse.jdt.core.dom.AST;
-import org.eclipse.jdt.core.dom.ASTNode;
-import org.eclipse.jdt.core.dom.ASTParser;
-import org.eclipse.jdt.core.dom.AbstractTypeDeclaration;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-import org.eclipse.jdt.core.dom.ImportDeclaration;
-import org.eclipse.jdt.core.dom.rewrite.ImportRewrite;
-import org.eclipse.jdt.core.formatter.CodeFormatter;
-import org.eclipse.jdt.internal.corext.codemanipulation.AddUnimplementedConstructorsOperation;
-import org.eclipse.jdt.internal.corext.codemanipulation.AddUnimplementedMethodsOperation;
-import org.eclipse.jdt.internal.corext.codemanipulation.CodeGenerationSettings;
-import org.eclipse.jdt.internal.core.manipulation.StubUtility;
-import org.eclipse.jdt.internal.corext.dom.ASTNodes;
-import org.eclipse.jdt.internal.corext.util.CodeFormatterUtil;
-import org.eclipse.jdt.internal.corext.util.JavaModelUtil;
-import org.eclipse.jdt.internal.corext.util.Strings;
-import org.eclipse.jdt.internal.ui.preferences.JavaPreferencesSettings;
-import org.eclipse.jdt.ui.CodeGeneration;
-import org.eclipse.jdt.ui.CodeStyleConfiguration;
-import org.eclipse.text.edits.TextEdit;
-import org.eclipse.xwt.tools.ui.designer.XWTDesignerPlugin;
-
-public class ASTHelper {
-
-	public static IType createType(IPackageFragment pack, String typeName, Collection<Class<?>> superInterfaces, Class<?> superClass) {
-		try {
-			IType createdType;
-			ImportsManager imports;
-			Set<String> existingImports;
-
-			String lineDelimiter = StubUtility.getLineDelimiterUsed(pack.getJavaProject());
-
-			String cuName = typeName + ".java";
-			ICompilationUnit parentCU = pack.createCompilationUnit(cuName, "", false, null); //$NON-NLS-1$
-			// create a working copy with a new owner
-
-			parentCU.becomeWorkingCopy(null); // cu is now a (primary) working
-			// copy
-
-			IBuffer buffer = parentCU.getBuffer();
-
-			String simpleTypeStub = constructSimpleTypeStub(typeName);
-			String cuContent = constructCUContent(parentCU, simpleTypeStub, lineDelimiter);
-			buffer.setContents(cuContent);
-
-			CompilationUnit astRoot = createASTForImports(parentCU);
-			existingImports = getExistingImports(astRoot);
-
-			imports = new ImportsManager(astRoot);
-			// add an import that will be removed again. Having this import
-			// solves 14661
-			imports.addImport(JavaModelUtil.concatenateName(pack.getElementName(), typeName));
-
-			String typeContent = constructTypeStub(typeName, superInterfaces, superClass, parentCU, imports, lineDelimiter);
-			int index = cuContent.lastIndexOf(simpleTypeStub);
-			if (index == -1) {
-				AbstractTypeDeclaration typeNode = (AbstractTypeDeclaration) astRoot.types().get(0);
-				int start = ((ASTNode) typeNode.modifiers().get(0)).getStartPosition();
-				int end = typeNode.getStartPosition() + typeNode.getLength();
-				buffer.replace(start, end - start, typeContent);
-			} else {
-				buffer.replace(index, simpleTypeStub.length(), typeContent);
-			}
-
-			createdType = parentCU.getType(typeName);
-
-			// add imports for superclass/interfaces, so types can be resolved
-			// correctly
-
-			ICompilationUnit cu = createdType.getCompilationUnit();
-
-			imports.create(false, null);
-
-			JavaModelUtil.reconcile(cu);
-
-			// set up again
-			astRoot = createASTForImports(imports.getCompilationUnit());
-			imports = new ImportsManager(astRoot);
-
-			createTypeMembers(createdType, imports);
-
-			// add imports
-			imports.create(false, null);
-
-			removeUnusedImports(cu, existingImports, false);
-
-			JavaModelUtil.reconcile(cu);
-
-			format(createdType, lineDelimiter);
-
-			return createdType;
-		} catch (CoreException e) {
-			XWTDesignerPlugin.logError(e);
-			return null;
-		}
-	}
-
-	/**
-	 * @param type
-	 * @param lineDelimiter
-	 * @throws JavaModelException
-	 */
-	private static void format(IType type, String lineDelimiter) throws JavaModelException {
-		ISourceRange range = type.getSourceRange();
-		ICompilationUnit cu = type.getCompilationUnit();
-		IBuffer buf = cu.getBuffer();
-		String originalContent = buf.getText(range.getOffset(), range.getLength());
-
-		String formattedContent = CodeFormatterUtil.format(CodeFormatter.K_CLASS_BODY_DECLARATIONS, originalContent, 0, lineDelimiter, type.getJavaProject());
-		formattedContent = Strings.trimLeadingTabsAndSpaces(formattedContent);
-		buf.replace(range.getOffset(), range.getLength(), formattedContent);
-		cu.commitWorkingCopy(true, null);
-	}
-
-	public static IMethod createMethod(IType type, String methodName, Class<?> returnType, String contentReturnValue, List<Class<?>> arguments) {
-		try {
-			ICompilationUnit cu = type.getCompilationUnit();
-			JavaModelUtil.reconcile(cu);
-			CompilationUnit astUnit = createASTForImports(cu);
-			ImportsManager imports = new ImportsManager(astUnit);
-			Set existingImports = getExistingImports(astUnit);
-
-			List<String> paraNames = new ArrayList<String>();
-			if (arguments != null) {
-				for (Class<?> arg : arguments) {
-					paraNames.add(arg.getSimpleName());
-					imports.addImport(arg.getName());
-				}
-			}
-
-			String lineDelimiter = StubUtility.getLineDelimiterUsed(type.getJavaProject());
-			StringBuilder contents = new StringBuilder();
-			String comment = CodeGeneration.getMethodComment(type.getCompilationUnit(), type.getTypeQualifiedName('.'), methodName, paraNames.toArray(new String[paraNames.size()]), new String[0], Signature.createTypeSignature((returnType == null ? "void" : returnType.getSimpleName()), true), null, lineDelimiter); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			if (comment != null) {
-				contents.append(comment);
-				contents.append(lineDelimiter);
-			}
-			if (returnType != null) {
-				imports.addImport(returnType.getName());
-			}
-			contents.append("public " + (returnType == null ? "void " : returnType.getSimpleName() + " ") + methodName + "("); //$NON-NLS-1$
-			for (int i = 0; i < paraNames.size(); i++) {
-				String arg = paraNames.get(i);
-				if (i != 0) {
-					contents.append(", ");
-				}
-				contents.append(arg + " " + Character.toLowerCase(arg.charAt(0)) + arg.substring(1));
-			}
-			contents.append(") {"); //$NON-NLS-1$
-			contents.append(lineDelimiter);
-
-			final String content = CodeGeneration.getMethodBodyContent(type.getCompilationUnit(), type.getTypeQualifiedName('.'), methodName, false, "", lineDelimiter); //$NON-NLS-1$ //$NON-NLS-2$
-			if (content != null && content.length() != 0)
-				contents.append("\t" + content);
-			// nameMap.append("\n");
-			if (returnType != null) {
-				contents.append("\treturn " + contentReturnValue + ";");
-				contents.append(lineDelimiter);
-			}
-			contents.append("}"); //$NON-NLS-1$
-
-			IMethod method = type.createMethod(contents.toString(), null, true, null);
-
-			// add imports
-			imports.create(false, null);
-
-			removeUnusedImports(cu, existingImports, true);
-
-			JavaModelUtil.reconcile(cu);
-			format(type, lineDelimiter);
-			return method;
-		} catch (CoreException e) {
-		}
-		return null;
-
-	}
-
-	protected static void createTypeMembers(IType type, ImportsManager imports) throws CoreException {
-		createInheritedMethods(type, true, true, imports);
-	}
-
-	protected static IMethod[] createInheritedMethods(IType type, boolean doConstructors, boolean doUnimplementedMethods, ImportsManager imports) throws CoreException {
-		final ICompilationUnit cu = type.getCompilationUnit();
-		JavaModelUtil.reconcile(cu);
-		IMethod[] typeMethods = type.getMethods();
-		Set handleIds = new HashSet(typeMethods.length);
-		for (int index = 0; index < typeMethods.length; index++)
-			handleIds.add(typeMethods[index].getHandleIdentifier());
-		ArrayList<IMethod> newMethods = new ArrayList<IMethod>();
-		CodeGenerationSettings settings = JavaPreferencesSettings.getCodeGenerationSettings(type.getJavaProject());
-		settings.createComments = false;
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setResolveBindings(true);
-		parser.setSource(cu);
-		CompilationUnit unit = (CompilationUnit) parser.createAST(null);
-		final ITypeBinding binding = ASTNodes.getTypeBinding(unit, type);
-		if (binding != null) {
-			if (doUnimplementedMethods) {
-				AddUnimplementedMethodsOperation operation = new AddUnimplementedMethodsOperation(unit, binding, null, -1, false, true, false);
-				operation.setCreateComments(false);
-				operation.run(null);
-				createImports(imports, operation.getCreatedImports());
-			}
-			if (doConstructors) {
-				AddUnimplementedConstructorsOperation operation = new AddUnimplementedConstructorsOperation(unit, binding, null, -1, false, true, false, null);
-				operation.setOmitSuper(true);
-				operation.setCreateComments(false);
-				operation.run(null);
-				createImports(imports, operation.getCreatedImports());
-			}
-		}
-		JavaModelUtil.reconcile(cu);
-		typeMethods = type.getMethods();
-		for (int index = 0; index < typeMethods.length; index++)
-			if (!handleIds.contains(typeMethods[index].getHandleIdentifier()))
-				newMethods.add(typeMethods[index]);
-		IMethod[] methods = new IMethod[newMethods.size()];
-		newMethods.toArray(methods);
-		return methods;
-	}
-
-	private static void createImports(ImportsManager imports, String[] createdImports) {
-		for (int index = 0; index < createdImports.length; index++)
-			imports.addImport(createdImports[index]);
-	}
-
-	public static void removeUnusedImports(IType type) {
-		try {
-			ICompilationUnit cu = type.getCompilationUnit();
-			CompilationUnit astRoot = ASTHelper.createASTForImports(cu);
-			Set existingImports = ASTHelper.getExistingImports(astRoot);
-			ASTHelper.removeUnusedImports(cu, existingImports, true);
-		} catch (CoreException e) {
-		}
-	}
-
-	private static void removeUnusedImports(ICompilationUnit cu, Set existingImports, boolean needsSave) throws CoreException {
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setSource(cu);
-		parser.setResolveBindings(true);
-
-		CompilationUnit root = (CompilationUnit) parser.createAST(null);
-		if (root.getProblems().length == 0) {
-			return;
-		}
-
-		List importsDecls = root.imports();
-		if (importsDecls.isEmpty()) {
-			return;
-		}
-		ImportsManager imports = new ImportsManager(root);
-
-		int importsEnd = ASTNodes.getExclusiveEnd((ASTNode) importsDecls.get(importsDecls.size() - 1));
-		IProblem[] problems = root.getProblems();
-		for (int i = 0; i < problems.length; i++) {
-			IProblem curr = problems[i];
-			if (curr.getSourceEnd() < importsEnd) {
-				int id = curr.getID();
-				if (id == IProblem.UnusedImport || id == IProblem.NotVisibleType) { // not visible
-					// problems hide
-					// unused -> remove
-					// both
-					int pos = curr.getSourceStart();
-					for (int k = 0; k < importsDecls.size(); k++) {
-						ImportDeclaration decl = (ImportDeclaration) importsDecls.get(k);
-						if (decl.getStartPosition() <= pos && pos < decl.getStartPosition() + decl.getLength()) {
-							if (existingImports.isEmpty() || !existingImports.contains(ASTNodes.asString(decl))) {
-								String name = decl.getName().getFullyQualifiedName();
-								if (decl.isOnDemand()) {
-									name += ".*"; //$NON-NLS-1$
-								}
-								if (decl.isStatic()) {
-									imports.removeStaticImport(name);
-								} else {
-									imports.removeImport(name);
-								}
-							}
-							break;
-						}
-					}
-				}
-			}
-		}
-		imports.create(needsSave, null);
-	}
-
-	private static Set /* String */getExistingImports(CompilationUnit root) {
-		List imports = root.imports();
-		Set res = new HashSet(imports.size());
-		for (int i = 0; i < imports.size(); i++) {
-			res.add(ASTNodes.asString((ImportDeclaration) imports.get(i)));
-		}
-		return res;
-	}
-
-	private static CompilationUnit createASTForImports(ICompilationUnit cu) {
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setSource(cu);
-		parser.setResolveBindings(false);
-		parser.setFocalPosition(0);
-		return (CompilationUnit) parser.createAST(null);
-	}
-
-	protected static String constructCUContent(ICompilationUnit cu, String typeContent, String lineDelimiter) throws CoreException {
-		String fileComment = "";
-		String typeComment = "";
-		IPackageFragment pack = (IPackageFragment) cu.getParent();
-		String content = CodeGeneration.getCompilationUnitContent(cu, fileComment, typeComment, typeContent, lineDelimiter);
-		if (content != null) {
-			ASTParser parser = ASTParser.newParser(AST.JLS3);
-			parser.setProject(cu.getJavaProject());
-			parser.setSource(content.toCharArray());
-			CompilationUnit unit = (CompilationUnit) parser.createAST(null);
-			if ((pack.isDefaultPackage() || unit.getPackage() != null) && !unit.types().isEmpty()) {
-				return content;
-			}
-		}
-		StringBuffer buf = new StringBuffer();
-		if (!pack.isDefaultPackage()) {
-			buf.append("package ").append(pack.getElementName()).append(';'); //$NON-NLS-1$
-		}
-		buf.append(lineDelimiter).append(lineDelimiter);
-		if (typeComment != null) {
-			buf.append(typeComment).append(lineDelimiter);
-		}
-		buf.append(typeContent);
-		return buf.toString();
-	}
-
-	/*
-	 * Called from createType to construct the source for this type
-	 */
-	private static String constructTypeStub(String typeName, Collection<Class<?>> superInterfaces, Class<?> superClass, ICompilationUnit parentCU, ImportsManager imports, String lineDelimiter) throws CoreException {
-		StringBuffer buf = new StringBuffer();
-
-		int modifiers = Flags.AccPublic;
-		buf.append(Flags.toString(modifiers));
-		if (modifiers != 0) {
-			buf.append(' ');
-		}
-		String type = "class ";//$NON-NLS-1$
-		String templateID = CodeGeneration.CLASS_BODY_TEMPLATE_ID;
-		buf.append(type);
-		buf.append(typeName);
-		writeSuperClass(buf, imports, superClass);
-		writeSuperInterfaces(buf, imports, superInterfaces);
-
-		buf.append(" {").append(lineDelimiter); //$NON-NLS-1$
-		String typeBody = CodeGeneration.getTypeBody(templateID, parentCU, typeName, lineDelimiter);
-		if (typeBody != null) {
-			buf.append(typeBody);
-		} else {
-			buf.append(lineDelimiter);
-		}
-		buf.append('}').append(lineDelimiter);
-		return buf.toString();
-	}
-
-	private static void writeSuperClass(StringBuffer buf, ImportsManager imports, Class<?> superType) {
-		if (superType == null) {
-			return;
-		}
-		String superclass = superType.getName();
-		buf.append(" extends "); //$NON-NLS-1$
-		buf.append(imports.addImport(superclass));
-	}
-
-	private static void writeSuperInterfaces(StringBuffer buf, ImportsManager imports, Collection<Class<?>> superInterfaces) {
-		if (superInterfaces == null || superInterfaces.isEmpty()) {
-			return;
-		}
-		List<String> interfaces = new ArrayList<String>();
-		for (Class<?> t : superInterfaces) {
-			String name = t.getName();
-			interfaces.add(name);
-			imports.addImport(name);
-		}
-		int last = interfaces.size() - 1;
-		if (last >= 0) {
-			buf.append(" implements "); //$NON-NLS-1$
-			String[] intfs = (String[]) interfaces.toArray(new String[interfaces.size()]);
-			ITypeBinding[] bindings;
-			bindings = new ITypeBinding[intfs.length];
-			for (int i = 0; i <= last; i++) {
-				ITypeBinding binding = bindings[i];
-				if (binding != null) {
-					buf.append(imports.addImport(binding));
-				} else {
-					buf.append(imports.addImport(intfs[i]));
-				}
-				if (i < last) {
-					buf.append(',');
-				}
-			}
-		}
-	}
-
-	private static String constructSimpleTypeStub(String typeName) {
-		StringBuffer buf = new StringBuffer("public class "); //$NON-NLS-1$
-		buf.append(typeName);
-		buf.append("{ }"); //$NON-NLS-1$
-		return buf.toString();
-	}
-
-	public static void generateEventHandler(final IType type, final String argumentType, final String handleName) throws Exception {
-		final ASTHelper helper = new ASTHelper();
-		Runnable typeRunner = new Runnable() {
-			public void run() {
-				try {
-					helper.createEventHandlers(type, handleName, argumentType);
-				} catch (CoreException e) {
-				}
-			}
-		};
-		helper.generateTypeMembers(type, argumentType, true, typeRunner);
-	}
-
-	protected void createEventHandlers(IType type, String method, String argumentType) throws CoreException {
-		int lastIndexOf = argumentType.lastIndexOf(".");
-		String shortArgTypeName = argumentType.substring(lastIndexOf + 1);
-		StringBuffer buf = new StringBuffer();
-		final String lineDelim = "\n"; // OK, since content is formatted
-		// afterwards //$NON-NLS-1$
-		String comment = CodeGeneration.getMethodComment(type.getCompilationUnit(), type.getTypeQualifiedName('.'), method, new String[] { "event" }, new String[0], Signature.createTypeSignature("void", true), null, lineDelim); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		if (comment != null) {
-			buf.append(comment);
-			buf.append(lineDelim);
-		}
-		buf.append("public void " + method + "( "); //$NON-NLS-1$
-		buf.append(shortArgTypeName); //$NON-NLS-1$
-		buf.append(" event) {"); //$NON-NLS-1$
-		buf.append(lineDelim);
-
-		final String content = CodeGeneration.getMethodBodyContent(type.getCompilationUnit(), type.getTypeQualifiedName('.'), method, false, "", lineDelim); //$NON-NLS-1$ //$NON-NLS-2$
-		if (content != null && content.length() != 0)
-			buf.append(content);
-		buf.append(lineDelim);
-		buf.append("}"); //$NON-NLS-1$
-		type.createMethod(buf.toString(), null, false, null);
-	}
-
-	public static void generateInitialization(final IType type, final String method, final Set<String> fieldNames) throws Exception {
-		final ASTHelper helper = new ASTHelper();
-		Runnable typeRunner = new Runnable() {
-			public void run() {
-				try {
-					helper.createInitializeMembers(type, method, fieldNames);
-				} catch (CoreException e) {
-				}
-			}
-		};
-		helper.generateTypeMembers(type, null, true, typeRunner);
-	}
-
-	protected void createInitializeMembers(IType type, String method, Set<String> fieldNames) throws CoreException {
-		IMethod init = null;
-		IMethod[] methods = type.getMethods();
-		for (IMethod method2 : methods) {
-			if (method2.getElementName().equals(method)) {
-				init = method2;
-				break;
-			}
-		}
-		if (init != null) {
-			init.delete(false, null);
-		}
-		StringBuffer buf = new StringBuffer();
-		final String lineDelim = "\n";
-		String comment = "/**\n  * Generated Initialization.\n */";
-		if (comment != null) {
-			buf.append(comment);
-			buf.append(lineDelim);
-		}
-		buf.append("protected void " + method + " () {"); //$NON-NLS-1$
-		buf.append(lineDelim);
-
-		if (fieldNames.isEmpty()) {
-			final String content = CodeGeneration.getMethodBodyContent(type.getCompilationUnit(), type.getTypeQualifiedName('.'), method, false, "", lineDelim); //$NON-NLS-1$ //$NON-NLS-2$
-			if (content != null && content.length() != 0) {
-				buf.append(content);
-			}
-		}
-		for (String fieidName : fieldNames) {
-			IField field = type.getField(fieidName);
-			if (field != null) {
-				String initialize = fieidName + " = (" + Signature.toString(field.getTypeSignature()) + ") findElement(\"" + fieidName + "\");";
-				buf.append(initialize);
-			}
-		}
-		buf.append(lineDelim);
-		buf.append("}"); //$NON-NLS-1$
-		type.createMethod(buf.toString(), null, false, null);
-	}
-
-	public void generateTypeMembers(IType type, String argumentType, boolean needsSave, Runnable typeRunner) throws Exception {
-		int indent = 0;
-		IProgressMonitor monitor = new NullProgressMonitor();
-
-		Set /* String (import names) */existingImports;
-
-		String lineDelimiter = StubUtility.getLineDelimiterUsed(type.getJavaProject());
-		ICompilationUnit cu = type.getCompilationUnit();
-		// create a working copy with a new owner
-
-		cu.becomeWorkingCopy(monitor);
-
-		CompilationUnit astRoot = createASTForImports(cu);
-		existingImports = getExistingImports(astRoot);
-
-		ImportsManager imports = new ImportsManager(astRoot);
-		if (argumentType != null) {
-			imports.addImport(argumentType);
-		}
-		typeRunner.run();
-		// add imports
-		imports.create(false, monitor);
-
-		removeUnusedImports(cu, existingImports, false);
-
-		JavaModelUtil.reconcile(cu);
-
-		ISourceRange range = type.getSourceRange();
-
-		IBuffer buf = cu.getBuffer();
-		String originalContent = buf.getText(range.getOffset(), range.getLength());
-
-		String formattedContent = CodeFormatterUtil.format(CodeFormatter.K_CLASS_BODY_DECLARATIONS, originalContent, indent, lineDelimiter, type.getJavaProject());
-		formattedContent = Strings.trimLeadingTabsAndSpaces(formattedContent);
-		buf.replace(range.getOffset(), range.getLength(), formattedContent);
-
-		if (needsSave) {
-			cu.commitWorkingCopy(true, new SubProgressMonitor(monitor, 1));
-		} else {
-			monitor.worked(1);
-		}
-	}
-
-	public static void generateNamedFields(IType type, String fieldType, String fieldName) {
-		try {
-			ASTHelper helper = new ASTHelper();
-			helper.createNamedFields(type, fieldType, fieldName, true);
-		} catch (Exception e) {
-		}
-	}
-
-	public void createNamedFields(IType type, String fieldType, String fieldName, boolean needSave) throws Exception {
-		if (fieldType == null || fieldName == null) {
-			return;
-		}
-		IProgressMonitor monitor = new NullProgressMonitor();
-
-		Set /* String (import names) */existingImports;
-
-		String lineDelimiter = StubUtility.getLineDelimiterUsed(type.getJavaProject());
-		ICompilationUnit cu = type.getCompilationUnit();
-		// create a working copy with a new owner
-
-		cu.becomeWorkingCopy(monitor);
-
-		CompilationUnit astRoot = createASTForImports(cu);
-		existingImports = getExistingImports(astRoot);
-
-		ImportsManager imports = new ImportsManager(astRoot);
-		imports.addImport(fieldType);
-		createField(type, fieldType, fieldName);
-
-		// add imports
-		imports.create(false, monitor);
-
-		removeUnusedImports(cu, existingImports, false);
-
-		JavaModelUtil.reconcile(cu);
-
-		ISourceRange range = type.getSourceRange();
-
-		IBuffer buf = cu.getBuffer();
-		String originalContent = buf.getText(range.getOffset(), range.getLength());
-
-		String formattedContent = CodeFormatterUtil.format(CodeFormatter.K_CLASS_BODY_DECLARATIONS, originalContent, 0, lineDelimiter, type.getJavaProject());
-		formattedContent = Strings.trimLeadingTabsAndSpaces(formattedContent);
-		buf.replace(range.getOffset(), range.getLength(), formattedContent);
-
-		if (needSave) {
-			cu.commitWorkingCopy(true, new SubProgressMonitor(monitor, 1));
-		} else {
-			monitor.worked(1);
-		}
-	}
-
-	private void createField(IType type, String paraType, String paraName) throws Exception {
-		int lastIndexOf = paraType.lastIndexOf(".");
-		String property = paraType.substring(lastIndexOf + 1);
-		if (property == null || property.equals("")) {
-			property = paraType;
-		}
-		String contents = ("protected " + property + " " + paraName + ";");
-		type.createField(contents, null, false, null);
-	}
-
-	/**
-	 * Class used in stub creation routines to add needed imports to a compilation unit.
-	 */
-	public static class ImportsManager {
-
-		private ImportRewrite fImportsRewrite;
-
-		public ImportsManager(CompilationUnit astRoot) {
-			fImportsRewrite = CodeStyleConfiguration.createImportRewrite(astRoot, true);
-		}
-
-		public ICompilationUnit getCompilationUnit() {
-			return fImportsRewrite.getCompilationUnit();
-		}
-
-		/**
-		 * Adds a new import declaration that is sorted in the existing imports. If an import already exists or the import would conflict with an import of an other type with the same simple name, the import is not added.
-		 * 
-		 * @param qualifiedTypeName
-		 *            The fully qualified name of the type to import (dot separated).
-		 * @return Returns the simple type name that can be used in the code or the fully qualified type name if an import conflict prevented the import.
-		 */
-		public String addImport(String qualifiedTypeName) {
-			return fImportsRewrite.addImport(qualifiedTypeName);
-		}
-
-		/**
-		 * Adds a new import declaration that is sorted in the existing imports. If an import already exists or the import would conflict with an import of an other type with the same simple name, the import is not added.
-		 * 
-		 * @param typeBinding
-		 *            the binding of the type to import
-		 * 
-		 * @return Returns the simple type name that can be used in the code or the fully qualified type name if an import conflict prevented the import.
-		 */
-		public String addImport(ITypeBinding typeBinding) {
-			return fImportsRewrite.addImport(typeBinding);
-		}
-
-		/**
-		 * Adds a new import declaration for a static type that is sorted in the existing imports. If an import already exists or the import would conflict with an import of an other static import with the same simple name, the import is not added.
-		 * 
-		 * @param declaringTypeName
-		 *            The qualified name of the static's member declaring type
-		 * @param simpleName
-		 *            the simple name of the member; either a field or a method name.
-		 * @param isField
-		 *            <code>true</code> specifies that the member is a field, <code>false</code> if it is a method.
-		 * @return returns either the simple member name if the import was successful or else the qualified name if an import conflict prevented the import.
-		 * 
-		 * @since 3.2
-		 */
-		public String addStaticImport(String declaringTypeName, String simpleName, boolean isField) {
-			return fImportsRewrite.addStaticImport(declaringTypeName, simpleName, isField);
-		}
-
-		public void create(boolean needsSave, IProgressMonitor monitor) throws CoreException {
-			TextEdit edit = fImportsRewrite.rewriteImports(monitor);
-			JavaModelUtil.applyEdit(fImportsRewrite.getCompilationUnit(), edit, needsSave, null);
-		}
-
-		public void removeImport(String qualifiedName) {
-			fImportsRewrite.removeImport(qualifiedName);
-		}
-
-		public void removeStaticImport(String qualifiedName) {
-			fImportsRewrite.removeStaticImport(qualifiedName);
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/ClasspathContainer.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/ClasspathContainer.java
deleted file mode 100755
index 8fe38d5..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/ClasspathContainer.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.jdt;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jdt.core.IClasspathContainer;
-import org.eclipse.jdt.core.IClasspathEntry;
-
-public class ClasspathContainer implements IClasspathContainer {
-	IClasspathEntry[] entries;
-
-	/**
-	 * 
-	 */
-	public ClasspathContainer(IClasspathEntry[] entries) {
-		this.entries = entries;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.core.IClasspathContainer#getClasspathEntries()
-	 */
-	public IClasspathEntry[] getClasspathEntries() {
-		return entries;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.core.IClasspathContainer#getDescription()
-	 */
-	public String getDescription() {
-		return IContainerConstants.DESCRIPTION;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.core.IClasspathContainer#getKind()
-	 */
-	public int getKind() {
-		return K_APPLICATION;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.core.IClasspathContainer#getPath()
-	 */
-	public IPath getPath() {
-		return new Path(IContainerConstants.LIB_CONTAINER);
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/IContainerConstants.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/IContainerConstants.java
deleted file mode 100755
index 90a5382..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/IContainerConstants.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.jdt;
-
-public interface IContainerConstants {
-	String LIB_CONTAINER = "XWT_CONTAINER";
-
-	String DESCRIPTION = "SWT Library";
-
-	String JAR_FILE_EXTENSION = "jar";
-
-	String JAR_LIB = "plugins";
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/ProjectHelper.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/ProjectHelper.java
deleted file mode 100755
index 5b22ea1..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/ProjectHelper.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.jdt;
-
-import java.io.IOException;
-import java.lang.reflect.Field;
-import java.net.URL;
-import java.util.ArrayList;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IBundleGroup;
-import org.eclipse.core.runtime.IBundleGroupProvider;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jdt.core.IClasspathContainer;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.pde.core.plugin.IPluginBase;
-import org.eclipse.pde.core.plugin.IPluginImport;
-import org.eclipse.pde.core.plugin.IPluginReference;
-import org.eclipse.pde.internal.core.ICoreConstants;
-import org.eclipse.pde.internal.core.bundle.WorkspaceBundleFragmentModel;
-import org.eclipse.pde.internal.core.bundle.WorkspaceBundlePluginModel;
-import org.eclipse.pde.internal.core.bundle.WorkspaceBundlePluginModelBase;
-import org.osgi.framework.Bundle;
-
-public class ProjectHelper {
-	static String[] bundleNames = new String[] { "org.eclipse.swt." + Platform.getWS() + "." + Platform.getOS() + "." + Platform.getOSArch(), "org.eclipse.swt." + Platform.getWS() + "." + Platform.getOS(), "org.eclipse.jface" };
-
-	/**
-	 * Collect all jars
-	 * 
-	 * @return
-	 */
-	public static ClasspathContainer createContainer() {
-		ArrayList<IClasspathEntry> entries = new ArrayList<IClasspathEntry>();
-
-		for (String bundleName : bundleNames) {
-			Bundle bundle = Platform.getBundle(bundleName);
-			try {
-				if (bundle == null) {
-					continue;
-				}
-				String fileName = bundle.getLocation(); // maybe hard coded
-				if (fileName != null && fileName.startsWith("reference:file:")) {
-					fileName = fileName.substring(15);
-				}
-				IPath path = new Path(fileName);
-				if (path.toFile().exists()) {
-					if (IContainerConstants.JAR_FILE_EXTENSION.equalsIgnoreCase(path.getFileExtension())) {
-						entries.add(JavaCore.newLibraryEntry(path, null, null));
-					}
-				}
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
-		}
-		IClasspathEntry[] paths = new IClasspathEntry[entries.size()];
-		entries.toArray(paths);
-
-		return new ClasspathContainer(paths);
-	}
-
-	public static void checkDependenceJars(IProject project) {
-		checkDependenceJars(JavaCore.create(project));
-	}
-
-	/**
-	 * Check if it is a plugin. If it is, check if com.soyatec.eface.ui is used.
-	 * 
-	 * @param javaProject
-	 */
-	public static void checkDependenceJars(IJavaProject javaProject) {
-		if (javaProject == null) {
-			return;
-		}
-		IProject project = javaProject.getProject();
-		IFile file = project.getFile(ICoreConstants.BUNDLE_FILENAME_DESCRIPTOR);
-
-		if (file != null && file.exists()) {
-			WorkspaceBundlePluginModelBase fModel = null;
-			IFile fragmentFile = project.getFile(ICoreConstants.FRAGMENT_FILENAME_DESCRIPTOR);
-			IFile pluginFile = project.getFile(ICoreConstants.PLUGIN_FILENAME_DESCRIPTOR);
-			if (fragmentFile != null && fragmentFile.exists()) {
-				fModel = new WorkspaceBundleFragmentModel(file, fragmentFile);
-			} else {
-				fModel = new WorkspaceBundlePluginModel(file, pluginFile);
-			}
-			IPluginBase pluginBase = fModel.getPluginBase();
-
-			try {
-				IPluginReference[] dependencies = getDependencies();
-				for (IPluginReference pluginReference : dependencies) {
-					IPluginImport iimport = fModel.getPluginFactory().createImport();
-					iimport.setId(pluginReference.getId());
-					iimport.setVersion(pluginReference.getVersion());
-					iimport.setMatch(pluginReference.getMatch());
-					pluginBase.add(iimport);
-				}
-				fModel.save();
-			} catch (CoreException e) {
-				e.printStackTrace();
-			}
-		} else {
-			addJars(javaProject);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.pde.ui.templates.AbstractTemplateSection#getDependencies(java.lang.String)
-	 */
-	public static IPluginReference[] getDependencies() {
-		return new IPluginReference[0];
-	}
-
-	protected static Bundle findProjectBundle(IProject project) {
-		try {
-			URL location = project.getLocationURI().toURL();
-
-			IBundleGroupProvider[] groupProviders = Platform.getBundleGroupProviders();
-			for (IBundleGroupProvider bundleGroupProvider : groupProviders) {
-				for (IBundleGroup bundleGroup : bundleGroupProvider.getBundleGroups()) {
-					for (Bundle bundle : bundleGroup.getBundles()) {
-						URL bundlePath = bundle.getEntry("/");
-						URL url = FileLocator.resolve(bundlePath);
-						if (location.toString().equals(url.toString())) {
-							return bundle;
-						}
-					}
-				}
-			}
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-
-	protected static boolean containsJar(IJavaProject javaProject, IClasspathEntry entry, String jarName) {
-		switch (entry.getEntryKind()) {
-		case IClasspathEntry.CPE_VARIABLE:
-			IClasspathEntry resolvedEntry = JavaCore.getJavaCore().getResolvedClasspathEntry(entry);
-			IPath resolvedPath = resolvedEntry.getPath();
-			String string = resolvedPath.toString();
-			if (string.indexOf(jarName) != -1) {
-				return true;
-			}
-			break;
-		case IClasspathEntry.CPE_CONTAINER:
-			try {
-				IPath path = entry.getPath();
-				IClasspathContainer classpathContainer = JavaCore.getJavaCore().getClasspathContainer(path, javaProject);
-				if (classpathContainer != null) {
-					classpathContainer.getClasspathEntries();
-					IClasspathEntry[] oldclasspath = classpathContainer.getClasspathEntries();
-					for (int i = 0; i < oldclasspath.length; i++) {
-						if (containsJar(javaProject, oldclasspath[i], jarName)) {
-							return true;
-						}
-					}
-				}
-			} catch (JavaModelException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
-			break;
-		case IClasspathEntry.CPE_SOURCE:
-		case IClasspathEntry.CPE_LIBRARY:
-			IPath path = entry.getPath();
-			String value = path.toString();
-			if (value.indexOf(jarName) != -1) {
-				return true;
-			}
-		}
-
-		return false;
-	}
-
-	public static void addJars(IJavaProject javaProject) {
-		try {
-			IClasspathEntry[] oldclasspath = javaProject.getRawClasspath();
-			for (int i = 0; i < oldclasspath.length; i++) {
-				if ((oldclasspath[i]).getPath().toString().equals(IContainerConstants.LIB_CONTAINER)) {
-					return;
-				}
-			}
-
-			ClasspathContainer container = ProjectHelper.createContainer();
-
-			IClasspathEntry newContainerEntry = JavaCore.newContainerEntry(container.getPath());
-			JavaCore.setClasspathContainer(newContainerEntry.getPath(), new IJavaProject[] { javaProject }, new IClasspathContainer[] { container }, null);
-
-			IClasspathEntry[] newclasspath = new IClasspathEntry[oldclasspath.length + 1];
-			for (int i = 0; i < oldclasspath.length; i++) {
-				newclasspath[i] = oldclasspath[i];
-			}
-			newclasspath[newclasspath.length - 1] = newContainerEntry;
-			javaProject.setRawClasspath(newclasspath, null);
-		} catch (JavaModelException javaModelException) {
-			javaModelException.printStackTrace();
-		}
-	}
-
-	public static void removeJars(IJavaProject javaProject) {
-		try {
-			IClasspathEntry[] oldclasspath = javaProject.getRawClasspath();
-			for (int i = 0; i < oldclasspath.length; i++) {
-				IPath path = oldclasspath[i].getPath();
-				if (path.toString().equals(IContainerConstants.LIB_CONTAINER)) {
-					oldclasspath[i] = null;
-					break;
-				}
-				if (i == oldclasspath.length - 1) {
-					return;
-				}
-			}
-
-			IClasspathEntry[] newclasspath = new IClasspathEntry[oldclasspath.length - 1];
-			for (int i = 0, m = 0; i < oldclasspath.length; i++) {
-				if (oldclasspath[i] != null) {
-					newclasspath[m++] = oldclasspath[i];
-				}
-			}
-			javaProject.setRawClasspath(newclasspath, null);
-		} catch (JavaModelException javaModelException) {
-			javaModelException.printStackTrace();
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/XWTClasspathContainerInitializer.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/XWTClasspathContainerInitializer.java
deleted file mode 100755
index 2df238e..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/XWTClasspathContainerInitializer.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.jdt;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jdt.core.IClasspathContainer;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-
-public class XWTClasspathContainerInitializer extends org.eclipse.jdt.core.ClasspathContainerInitializer {
-
-	public XWTClasspathContainerInitializer() {
-	}
-
-	@Override
-	public void initialize(IPath containerPath, IJavaProject project) throws CoreException {
-		int size = containerPath.segmentCount();
-		if (size > 0) {
-			if (containerPath.segment(0).equals(IContainerConstants.LIB_CONTAINER)) {
-				ClasspathContainer container = ProjectHelper.createContainer();
-				JavaCore.setClasspathContainer(containerPath, new IJavaProject[] { project }, new IClasspathContainer[] { container }, null);
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/LayoutDataType.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/LayoutDataType.java
deleted file mode 100755
index e918bac..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/LayoutDataType.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.layouts;
-
-/**
- * @author rui.ban rui.ban@soyatec.com
- */
-public enum LayoutDataType {
-	Unknown, GridData, RowData, StackData, FormData;
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/LayoutType.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/LayoutType.java
deleted file mode 100755
index 9a29946..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/LayoutType.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.layouts;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public enum LayoutType {
-	Unknown(null), NullLayout("Null(default)"), GridLayout("GridLayout"), FillLayout("FillLayout"), RowLayout("RowLayout"), StackLayout("StackLayout"), FormLayout("FormLayout");
-	private String value;
-
-	private LayoutType(String value) {
-		this.value = value;
-	}
-
-	public String value() {
-		return value;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/LayoutsHelper.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/LayoutsHelper.java
deleted file mode 100755
index bf7b953..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/LayoutsHelper.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.layouts;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.gef.EditPart;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class LayoutsHelper {
-
-	public static List<LayoutType> layoutsList = new ArrayList<LayoutType>();
-	static {
-		layoutsList.add(LayoutType.NullLayout);
-		layoutsList.add(LayoutType.FillLayout);
-		layoutsList.add(LayoutType.FormLayout);
-		layoutsList.add(LayoutType.GridLayout);
-		layoutsList.add(LayoutType.RowLayout);
-		layoutsList.add(LayoutType.StackLayout);
-	}
-
-	public static LayoutType getLayoutType(EditPart editPart) {
-		if (editPart instanceof CompositeEditPart) {
-			Layout layout = ((CompositeEditPart) editPart).getLayout();
-			return getLayoutType(layout);
-		}
-		return LayoutType.Unknown;
-	}
-
-	public static LayoutDataType getLayoutDataType(EditPart editPart) {
-		if (editPart == null) {
-			return LayoutDataType.Unknown;
-		}
-		EditPart parent = editPart.getParent();
-		LayoutType layoutType = getLayoutType(parent);
-		if (LayoutType.GridLayout == layoutType) {
-			return LayoutDataType.GridData;
-		} else if (LayoutType.RowLayout == layoutType) {
-			return LayoutDataType.RowData;
-		} else if (LayoutType.FormLayout == layoutType) {
-			return LayoutDataType.FormData;
-		}
-		return LayoutDataType.Unknown;
-
-	}
-
-	public static LayoutType getLayoutType(Layout layout) {
-		if (layout == null) {
-			return LayoutType.NullLayout;
-		} else if (layout instanceof org.eclipse.swt.layout.GridLayout) {
-			return LayoutType.GridLayout;
-		} else if (layout instanceof org.eclipse.swt.layout.FillLayout) {
-			return LayoutType.FillLayout;
-		} else if (layout instanceof org.eclipse.swt.layout.RowLayout) {
-			return LayoutType.RowLayout;
-		} else if (layout instanceof org.eclipse.swt.custom.StackLayout) {
-			return LayoutType.StackLayout;
-		} else if (layout instanceof org.eclipse.swt.layout.FormLayout) {
-			return LayoutType.FormLayout;
-		}
-		return LayoutType.NullLayout;
-	}
-
-	public static LayoutType getLayoutType(String value) {
-		if (value == null) {
-			return LayoutType.NullLayout;
-		}
-		LayoutType[] values = LayoutType.values();
-		for (LayoutType layoutType : values) {
-			if (value.equals(layoutType.value())) {
-				return layoutType;
-			}
-		}
-		return LayoutType.Unknown;
-	}
-
-	public static LayoutType getLayoutType(XamlElement element) {
-		IMetaclass metaclass = XWTUtility.getMetaclass(element);
-		if (metaclass == null || !Composite.class.isAssignableFrom(metaclass.getType())) {
-			return LayoutType.Unknown;
-		}
-		XamlAttribute attribute = element.getAttribute("layout");
-		if (attribute == null || attribute.getChildNodes().isEmpty()) {
-			return LayoutType.NullLayout;
-		}
-		String name = attribute.getChildNodes().get(0).getName();
-		return getLayoutType(name);
-	}
-
-	public static LayoutType getLayoutType(Object object) {
-		if (object == null) {
-			return LayoutType.NullLayout;
-		} else if (object instanceof LayoutType) {
-			return (LayoutType) object;
-		} else if (object instanceof String) {
-			return getLayoutType((String) object);
-		} else if (object instanceof EditPart) {
-			return getLayoutType((EditPart) object);
-		} else if (object instanceof Layout) {
-			return getLayoutType((Layout) object);
-		} else if (object instanceof XamlElement) {
-			return getLayoutType((XamlElement) object);
-		}
-		return LayoutType.Unknown;
-	}
-
-	public static boolean isLayoutNode(XamlNode node) {
-		if (node == null || !(node instanceof XamlAttribute)) {
-			return false;
-		}
-		return "layout".equalsIgnoreCase(node.getName());
-	}
-
-	public static boolean canSetLayout(EditPart host) {
-		if (host == null || host.getModel() == null) {
-			return false;
-		}
-		return canSetLayout(host.getModel());
-	}
-
-	public static boolean canSetLayout(Object model) {
-		if (model == null) {
-			return false;
-		}
-		if (model instanceof XamlElement) {
-			XamlElement XamlElement = (XamlElement) model;
-			String name = XamlElement.getName();
-			String namespace = XamlElement.getNamespace();
-			try {
-				IMetaclass metaclass = XWT.getMetaclass(name, namespace);
-				if (metaclass != null) {
-					Class<?> type = metaclass.getType();
-					return type != null && Composite.class.isAssignableFrom(type);
-				}
-			} catch (Exception e) {
-			}
-		}
-		return false;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/CheckBoxFieldEditor.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/CheckBoxFieldEditor.java
deleted file mode 100755
index 77e8e06..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/CheckBoxFieldEditor.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.layouts.control;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class CheckBoxFieldEditor extends FieldEditor {
-
-	private Button checkBox;
-	private boolean wasSelected = false;
-
-	public CheckBoxFieldEditor(String fieldName, String labelText, Composite parent) {
-		super(fieldName, labelText, parent);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.FieldEditor#refresh(java.lang.Object)
-	 */
-	protected void update(String value) {
-		if (checkBox == null || checkBox.isDisposed()) {
-			return;
-		}
-		if (value != null) {
-			wasSelected = Boolean.parseBoolean(value.toString());
-		}
-		checkBox.setSelection(wasSelected);
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.FieldEditor#createEditor(org.eclipse.swt.widgets.Composite, java.lang.String)
-	 */
-	protected Control createEditor(Composite parent) {
-		checkBox = new Button(parent, SWT.CHECK);
-		if (labelText != null) {
-			checkBox.setText(labelText);
-		}
-		checkBox.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event event) {
-				boolean isSelected = checkBox.getSelection();
-				dispatchEvent(Boolean.toString(wasSelected), Boolean.toString(isSelected));
-				wasSelected = isSelected;
-			}
-		});
-		adapt(checkBox);
-		return checkBox;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/FieldEditor.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/FieldEditor.java
deleted file mode 100755
index 2567d81..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/FieldEditor.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.layouts.control;
-
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public abstract class FieldEditor {
-
-	protected String fieldName;
-	protected String labelText;
-	private Control editor;
-	private List<FieldEditorListener> listeners;
-
-	private boolean updating;
-	private boolean dispatching;
-
-	protected FieldEditor() {
-	}
-
-	protected FieldEditor(String fieldName, String labelText, Composite parent) {
-		init(fieldName, labelText);
-		createControl(parent);
-	}
-
-	protected void createControl(Composite parent) {
-		editor = createEditor(parent);
-	}
-
-	protected void init(String fieldName, String labelText) {
-		Assert.isNotNull(fieldName);
-		this.fieldName = fieldName;
-		this.labelText = labelText;
-	}
-
-	public Control getEditor() {
-		return editor;
-	}
-
-	public void apply(Object source) {
-		if (!isValid() || source == null) {
-			return;
-		}
-		try {
-			Field field = source.getClass().getField(fieldName);
-			Object value = field.get(source);
-			doUpdate(value == null ? "" : value.toString());
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	protected boolean isValid() {
-		return editor != null && !editor.isDisposed() && !dispatching;
-	}
-
-	protected void doUpdate(String newValue) {
-		updating = true;
-		update(newValue == null ? "" : newValue);
-		updating = false;
-	}
-
-	protected void dispatchEvent(String oldValue, String newValue) {
-		if (listeners == null || updating || (oldValue == null && newValue == null) || (oldValue != null && oldValue.equals(newValue))) {
-			return;
-		}
-		dispatching = true;
-		FieldEditorEvent event = new FieldEditorEvent(this, fieldName, oldValue, newValue);
-		for (FieldEditorListener l : listeners) {
-			if (event.doit) {
-				break;
-			}
-			l.handleEvent(event);
-		}
-		dispatching = false;
-	}
-
-	public void addListener(FieldEditorListener listener) {
-		if (listeners == null) {
-			listeners = new ArrayList<FieldEditorListener>();
-		}
-		listeners.add(listener);
-	}
-
-	public void removeListener(FieldEditorListener listener) {
-		if (listeners != null) {
-			listeners.remove(listener);
-		}
-	}
-
-	public String getFieldName() {
-		return fieldName;
-	}
-
-	protected void adapt(Control control) {
-		control.setBackground(control.getDisplay().getSystemColor(SWT.COLOR_WHITE));
-	}
-
-	protected abstract void update(String value);
-
-	protected abstract Control createEditor(Composite parent);
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/FieldEditorEvent.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/FieldEditorEvent.java
deleted file mode 100755
index c87bbc6..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/FieldEditorEvent.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.layouts.control;
-
-public class FieldEditorEvent {
-
-	public FieldEditor editor;
-	public String field;
-	public String oldValue;
-	public String newVlaue;
-
-	public boolean doit = false;
-
-	public FieldEditorEvent(FieldEditor editor, String field, String oldValue, String newValue) {
-		this.editor = editor;
-		this.field = field;
-		this.oldValue = oldValue;
-		this.newVlaue = newValue;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/FieldEditorListener.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/FieldEditorListener.java
deleted file mode 100755
index 0484ff0..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/FieldEditorListener.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.layouts.control;
-
-public interface FieldEditorListener {
-	void handleEvent(FieldEditorEvent event);
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/RadioGroupFieldEditor.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/RadioGroupFieldEditor.java
deleted file mode 100755
index af57a7c..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/RadioGroupFieldEditor.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.layouts.control;
-
-import org.eclipse.xwt.converters.StringToInteger;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Listener;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class RadioGroupFieldEditor extends FieldEditor {
-
-	private String[][] labelsAndValues;
-	private Button[] radioButtons;
-	private String value;
-	private String groupName;
-
-	public RadioGroupFieldEditor(String fieldName, String[][] labelsAndValues, Composite parent, String groupName) {
-		init(fieldName, "");
-		this.labelsAndValues = labelsAndValues;
-		this.groupName = groupName;
-		createControl(parent);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.FieldEditor#createEditor(org.eclipse.swt.widgets.Composite, java.lang.String)
-	 */
-	protected Control createEditor(Composite parent) {
-		Composite radioBox;
-		if (groupName == null) {
-			radioBox = new Composite(parent, SWT.NONE);
-		} else {
-			radioBox = new Group(parent, SWT.NONE);
-			((Group) radioBox).setText(groupName);
-		}
-		adapt(radioBox);
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		radioBox.setLayout(layout);
-		if (labelsAndValues != null) {
-			Listener listener = new Listener() {
-				public void handleEvent(Event event) {
-					String oldValue = value;
-					value = (String) event.widget.getData();
-					dispatchEvent(oldValue, value);
-				}
-			};
-			radioButtons = new Button[labelsAndValues.length];
-			for (int i = 0; i < labelsAndValues.length; i++) {
-				Button radio = new Button(radioBox, SWT.RADIO | SWT.LEFT);
-				radioButtons[i] = radio;
-				String[] labelAndValue = labelsAndValues[i];
-				radio.setText(labelAndValue[0]);
-				radio.setData(labelAndValue[1]);
-				radio.addListener(SWT.Selection, listener);
-				adapt(radio);
-			}
-		}
-		return radioBox;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.FieldEditor#refresh(java.lang.Object)
-	 */
-	protected void update(String selected) {
-		this.value = selected;
-		if (radioButtons == null) {
-			return;
-		}
-
-		if (value != null) {
-			boolean found = false;
-			for (int i = 0; i < radioButtons.length; i++) {
-				Button radio = radioButtons[i];
-				boolean selection = false;
-				String data = (String) radio.getData();
-				Object intValue = StringToInteger.instance.convert(data);
-				if (data.equals(value) || value.equals(intValue.toString())) {
-					selection = true;
-					found = true;
-				}
-				radio.setSelection(selection);
-			}
-			if (found) {
-				return;
-			}
-		}
-
-		// We weren't able to find the value. So we select the first
-		// radio button as a default.
-		if (radioButtons.length > 0) {
-			radioButtons[0].setSelection(true);
-			value = (String) radioButtons[0].getData();
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/SpinnerFieldEditor.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/SpinnerFieldEditor.java
deleted file mode 100755
index 1266c77..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/SpinnerFieldEditor.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.layouts.control;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Spinner;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class SpinnerFieldEditor extends FieldEditor {
-
-	private Spinner spinner;
-	private int wasSelected = SWT.DEFAULT;
-
-	public SpinnerFieldEditor(String fieldName, String labelText, Composite parent) {
-		super(fieldName, labelText, parent);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.layouts.control.FieldEditor#createEditor(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createEditor(Composite parent) {
-		Label label = new Label(parent, SWT.NONE);
-		if (labelText != null) {
-			label.setText(labelText);
-		}
-		adapt(label);
-
-		spinner = new Spinner(parent, SWT.BORDER);
-		spinner.setMinimum(-1);
-		spinner.setMaximum(9999);
-		spinner.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		spinner.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event event) {
-				int selection = spinner.getSelection();
-				dispatchEvent(Integer.toString(wasSelected), Integer.toString(selection));
-				wasSelected = selection;
-			}
-		});
-		adapt(spinner);
-		return parent;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.layouts.control.FieldEditor#update(java.lang.String)
-	 */
-	protected void update(String value) {
-		try {
-			wasSelected = Integer.parseInt(value);
-			spinner.setSelection(wasSelected);
-		} catch (NumberFormatException e) {
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/AssistancePageFactory.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/AssistancePageFactory.java
deleted file mode 100755
index 273011a..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/AssistancePageFactory.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.layouts.pages;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutDataType;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
-
-/**
- * @author rui.ban rui.ban@soyatec.com
- */
-public class AssistancePageFactory {
-
-	public static LayoutAssistantPage createPage(LayoutType layoutType) {
-		if (!isSupport(layoutType)) {
-			return null;
-		} else if (LayoutType.FillLayout == layoutType) {
-			return new FillLayoutAssistantPage();
-		} else if (LayoutType.GridLayout == layoutType) {
-			return new GridLayoutAssistantPage();
-		} else if (LayoutType.RowLayout == layoutType) {
-			return new RowLayoutAssistantPage();
-		}
-		return null;
-	}
-
-	public static boolean isSupport(LayoutType layoutType) {
-		return LayoutType.FillLayout == layoutType || LayoutType.GridLayout == layoutType || LayoutType.RowLayout == layoutType;
-	}
-
-	public static boolean isSupport(LayoutDataType layoutDataType) {
-		return LayoutDataType.GridData == layoutDataType || LayoutDataType.RowData == layoutDataType;
-	}
-
-	public static LayoutDataAssistantPage createPage(LayoutDataType layoutDataType) {
-		if (!isSupport(layoutDataType)) {
-			return null;
-		} else if (LayoutDataType.GridData == layoutDataType) {
-			return new GridDataAssistantPage();
-		} else if (LayoutDataType.RowData == layoutDataType) {
-			return new RowDataAssistantPage();
-		}
-		return null;
-	}
-
-	public static Map<Object, IAssistantPage> newPages() {
-		Map<Object, IAssistantPage> map = new HashMap<Object, IAssistantPage>();
-		for (LayoutType layoutType : LayoutsHelper.layoutsList) {
-			LayoutAssistantPage page = createPage(layoutType);
-			if (page == null) {
-				continue;
-			}
-			map.put(layoutType, page);
-		}
-		map.put(LayoutDataType.RowData, createPage(LayoutDataType.RowData));
-		map.put(LayoutDataType.GridData, createPage(LayoutDataType.GridData));
-		return map;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/AssistantPage.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/AssistantPage.java
deleted file mode 100755
index 05602dd..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/AssistantPage.java
+++ /dev/null
@@ -1,307 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.layouts.pages;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.xwt.IConstants;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.gef.commands.CompoundCommand;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.xwt.tools.ui.designer.commands.AddNewChildCommand;
-import org.eclipse.xwt.tools.ui.designer.commands.ApplyAttributeSettingCommand;
-import org.eclipse.xwt.tools.ui.designer.commands.DeleteCommand;
-import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
-import org.eclipse.xwt.tools.ui.designer.layouts.control.CheckBoxFieldEditor;
-import org.eclipse.xwt.tools.ui.designer.layouts.control.FieldEditor;
-import org.eclipse.xwt.tools.ui.designer.layouts.control.FieldEditorEvent;
-import org.eclipse.xwt.tools.ui.designer.layouts.control.FieldEditorListener;
-import org.eclipse.xwt.tools.ui.designer.layouts.control.RadioGroupFieldEditor;
-import org.eclipse.xwt.tools.ui.designer.layouts.control.SpinnerFieldEditor;
-import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
-import org.eclipse.xwt.tools.ui.designer.model.RefreshAdapter;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public abstract class AssistantPage implements IAssistantPage, FieldEditorListener {
-	private EditPart editPart;
-	private Control control;
-	private List<FieldEditor> editors = new ArrayList<FieldEditor>();
-	private XamlAttribute assistParentAttr;
-	private XamlElement assistModel;
-
-	private Map<FieldEditor, List<RefreshAdapter>> editor2refresher;
-
-	public void setEditPart(EditPart editPart) {
-		if (editPart != null && editPart != this.editPart) {
-			this.editPart = editPart;
-		}
-		refresh();
-	}
-
-	public EditPart getEditPart() {
-		return editPart;
-	}
-
-	public XamlNode getModel() {
-		if (editPart == null) {
-			return null;
-		}
-		return (XamlNode) editPart.getModel();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.IAssistantPage#getControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public Control getControl(Composite parent) {
-		if (control == null || control.isDisposed()) {
-			control = createControl(parent);
-			control.setData(this);
-		}
-		return control;
-	}
-
-	protected void execute(Command command) {
-		if (editPart == null || command == null || !command.canExecute()) {
-			return;
-		}
-		EditDomain editDomain = EditDomain.getEditDomain(editPart);
-		if (editDomain == null) {
-			return;
-		}
-		CommandStack commandStack = editDomain.getCommandStack();
-		if (commandStack == null) {
-			return;
-		}
-		commandStack.execute(command);
-	}
-
-	protected RadioGroupFieldEditor createRadio(Composite parent, String groupName, String fieldName, String[][] labelsAndValues) {
-		RadioGroupFieldEditor editor = new RadioGroupFieldEditor(fieldName, labelsAndValues, parent, groupName);
-		addEditor(editor);
-		return editor;
-	}
-
-	protected CheckBoxFieldEditor createCheckBox(Composite parent, String fieldName, String labelText) {
-		CheckBoxFieldEditor editor = new CheckBoxFieldEditor(fieldName, labelText, parent);
-		addEditor(editor);
-		return editor;
-	}
-
-	protected SpinnerFieldEditor createSpinner(Composite parent, String fieldName, String labelText) {
-		SpinnerFieldEditor editor = new SpinnerFieldEditor(fieldName, labelText, parent);
-		addEditor(editor);
-		return editor;
-	}
-
-	protected void addEditor(final FieldEditor editor) {
-		editor.addListener(this);
-		editors.add(editor);
-		setUpRefresher(editor);
-	}
-
-	protected void setUpRefresher(final FieldEditor editor) {
-		XamlNode model = getAssistModel();
-		if (model != null) {
-			String fieldName = editor.getFieldName();
-			RefreshAdapter refresher = new RefreshAdapter(model, fieldName) {
-				protected void performRefresh(Notification msg) {
-					Display display = editor.getEditor().getDisplay();
-					if (Display.getCurrent() == display) {
-						editor.apply(getAssistant());						
-					}
-					else {
-						display.asyncExec(new Runnable() {
-							public void run() {
-								editor.apply(getAssistant());						
-							}
-						});
-					}
-				}
-			};
-			getRefreshers(editor).add(refresher);
-		}
-	}
-
-	protected Group createGroup(Composite composite, String groupName, int numColumns) {
-		Group group = new Group(composite, SWT.NONE);
-		group.setText(groupName);
-		group.setLayout(new GridLayout(numColumns, false));
-		adapt(group);
-		return group;
-	}
-
-	protected Composite createComposite(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NONE);
-		adapt(composite);
-		return composite;
-	}
-
-	protected void adapt(Control control) {
-		control.setBackground(control.getDisplay().getSystemColor(SWT.COLOR_WHITE));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.layouts.control.FieldEditor.FieldEditorListener#handleEvent(java.lang.String, java.lang.String, java.lang.String)
-	 */
-	public final void handleEvent(FieldEditorEvent event) {
-		FieldEditor editor = event.editor;
-		List<RefreshAdapter> refreshers = getRefreshers(editor);
-		for (RefreshAdapter refresher : refreshers) {
-			refresher.setRefreshRequired(false);
-		}
-		Command command = computeCommand(event);
-		if (command != null && command.canExecute()) {
-			execute(command);
-		}
-		for (RefreshAdapter refresher : refreshers) {
-			refresher.setRefreshRequired(true);
-		}
-	}
-
-	protected List<RefreshAdapter> getRefreshers(FieldEditor editor) {
-		if (editor == null) {
-			return Collections.emptyList();
-		}
-		if (editor2refresher == null) {
-			editor2refresher = new HashMap<FieldEditor, List<RefreshAdapter>>();
-		}
-		List<RefreshAdapter> result = editor2refresher.get(editor);
-		if (result == null) {
-			result = new ArrayList<RefreshAdapter>();
-			editor2refresher.put(editor, result);
-		}
-		return result;
-	}
-
-	protected Command computeCommand(FieldEditorEvent event) {
-		return createCommand(event.field, event.newVlaue);
-	}
-
-	protected Command createCommand(String attrName, String attrValue) {
-		CompoundCommand command = new CompoundCommand();
-		XamlElement assistModel = getAssistModel();
-		if (assistModel == null) {
-			return null;
-		}
-		XamlAttribute assistParent = getAssistParent();
-		if (assistModel.eContainer() == null) {
-			command.add(new AddNewChildCommand(assistParent, assistModel));
-		}
-		if (assistParent.eContainer() == null) {
-			command.add(new AddNewChildCommand(getModel(), assistParent));
-		}
-		command.add(new ApplyAttributeSettingCommand(assistModel, attrName, IConstants.XWT_NAMESPACE, attrValue));
-		return command.unwrap();
-	}
-
-	private XamlElement getAssistModel() {
-		if (assistModel == null && editPart != null) {
-			assistModel = createAssistModel(getModel());
-		}
-		return assistModel;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.IAssistantPage#refresh()
-	 */
-	public void refresh() {
-		// Clear cache models, so we can use latest ones when refreshing.
-		this.assistModel = null;
-		this.assistParentAttr = null;
-		apply(getAssistant());
-	}
-
-	protected Object getAssistant() {
-		XamlElement assistModel = getAssistModel();
-		if (assistModel == null) {
-			return null;
-		}
-		return XWTProxy.createValue(assistModel);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.IAssistantPage#performDefault()
-	 */
-	public void performDefault() {
-		XamlElement assistModel = getAssistModel();
-		if (assistModel != null) {
-			execute(new DeleteCommand(assistModel.getAttributes()));
-		}
-	}
-
-	protected XamlAttribute getAssistParent() {
-		if (assistParentAttr == null) {
-			assistParentAttr = createAssistParent(getModel());
-		}
-		return assistParentAttr;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.IAssistantPage#dispose()
-	 */
-	public void dispose() {
-		if (control != null) {
-			control.dispose();
-		}
-		editPart = null;
-		assistParentAttr = null;
-		assistModel = null;
-		for (FieldEditor editor : editors) {
-			List<RefreshAdapter> list = editor2refresher.get(editor);
-			for (RefreshAdapter refresher : list) {
-				refresher.dispose();
-			}
-		}
-		editor2refresher.clear();
-		editors.clear();
-	}
-
-	protected void apply(Object assistant) {
-		for (FieldEditor fEditor : editors) {
-			setUpRefresher(fEditor);
-			fEditor.apply(assistant);
-		}
-	}
-
-	protected abstract XamlElement createAssistModel(XamlNode parent);
-
-	protected abstract XamlAttribute createAssistParent(XamlNode parent);
-
-	protected abstract Control createControl(Composite parent);
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/Assistants.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/Assistants.java
deleted file mode 100755
index 5d99e42..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/Assistants.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.layouts.pages;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public interface Assistants {
-
-	String WIDTH = "width";
-	String HEIGHT = "height";
-
-	// Constants of FillLayout.
-	String LAYOUT_FILL_SPACING = "spacing";
-	String LAYOUT_FILL_MARGIN_WIDTH = "marginWidth";
-	String LAYOUT_FILL_MARGIN_HEIGHT = "marginHeight";
-	String LAYOUT_FILL_TYPE = "type";
-
-	// Constants of GridLayout
-	String LAYOUT_GRID_NUM_CLUMNS = "numColumns";
-	String LAYOUT_GRID_MAKE_COLUMNS_EQUAL_WIDTH = "makeColumnsEqualWidth";
-	String LAYOUT_GRID_MARGIN_WIDTH = "marginWidth";
-	String LAYOUT_GRID_MARGIN_HEIGHT = "marginHeight";
-	String LAYOUT_GRID_MARGIN_LEFT = "marginLeft";
-	String LAYOUT_GRID_MARGIN_TOP = "marginTop";
-	String LAYOUT_GRID_MARGIN_RIGHT = "marginRight";
-	String LAYOUT_GRID_MARGIN_BOTTOM = "marginBottom";
-	String LAYOUT_GRID_HORIZONTAL_SPACING = "horizontalSpacing";
-	String LAYOUT_GRID_VERTICAL_SPACING = "verticalSpacing";
-
-	// Constants of RowLayout
-	String LAYOUT_ROW_TYPE = "type";
-	String LAYOUT_ROW_MARGIN_WIDTH = "marginWidth";
-	String LAYOUT_ROW_MARGIN_HEIGHT = "marginHeight";
-	String LAYOUT_ROW_SPACING = "spacing";
-	String LAYOUT_ROW_WRAP = "wrap";
-	String LAYOUT_ROW_PACK = "pack";
-	String LAYOUT_ROW_FILL = "fill";
-	String LAYOUT_ROW_CENTER = "center";
-	String LAYOUT_ROW_JUSTIFY = "justify";
-	String LAYOUT_ROW_MARGIN_LEFT = "marginLeft";
-	String LAYOUT_ROW_MARGIN_TOP = "marginTop";
-	String LAYOUT_ROW_MARGIN_RIGHT = "marginRight";
-	String LAYOUT_ROW_MARGIN_BOTTOM = "marginBottom";
-
-	// Constants of RowData
-	String LAYOUTDATA_ROW_WIDTH = WIDTH;
-	String LAYOUTDATA_ROW_HEIGHT = HEIGHT;
-	String LAYOUTDATA_ROW_EXCLUDE = "exclude";
-
-	// Constants of GridData.
-	String LAYOUTDATA_GRID_VERTICAL_ALIGNMENT = "verticalAlignment";
-	String LAYOUTDATA_GRID_HORIZONTAL_ALIGNMENT = "horizontalAlignment";
-	String LAYOUTDATA_GRID_WIDTH_HINT = "widthHint";
-	String LAYOUTDATA_GRID_HEIGHT_HINT = "heightHint";
-	String LAYOUTDATA_GRID_HORIZONTAL_INDENT = "horizontalIndent";
-	String LAYOUTDATA_GRID_VERTICAL_INDENT = "verticalIndent";
-	String LAYOUTDATA_GRID_HORIZONTAL_SPAN = "horizontalSpan";
-	String LAYOUTDATA_GRID_VERTICAL_SPAN = "verticalSpan";
-	String LAYOUTDATA_GRID_GRAB_EXCESS_HORIZONTAL_SPACE = "grabExcessHorizontalSpace";
-	String LAYOUTDATA_GRID_GRAB_EXCESS_VERTICAL_SPACE = "grabExcessVerticalSpace";
-	String LAYOUTDATA_GRID_MINIMUM_WIDTH = "minimumWidth";
-	String LAYOUTDATA_GRID_MINIMUM_HEIGHT = "minimumHeight";
-	String LAYOUTDATA_GRID_EXCLUDE = "exclude";
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/FillLayoutAssistantPage.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/FillLayoutAssistantPage.java
deleted file mode 100755
index a45b113..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/FillLayoutAssistantPage.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.layouts.pages;
-
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
-import org.eclipse.xwt.tools.ui.designer.resources.Messages;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class FillLayoutAssistantPage extends LayoutAssistantPage {
-
-	public FillLayoutAssistantPage() {
-		super(LayoutType.FillLayout);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.ICustomPage#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public Control createControl(Composite parent) {
-		Composite composite = createComposite(parent);
-		composite.setLayout(new GridLayout(2, false));
-
-		createRadio(composite, Messages.FillLayoutAssistantPage_ORIENTATION_LABEL, Assistants.LAYOUT_FILL_TYPE, new String[][] { { "Horizontal", "SWT.HORIZONTAL" }, { "Vertical", "SWT.VERTICAL" } }); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-
-		Group spacingGroup = createGroup(composite, Messages.FillLayoutAssistantPage_SPACING_GROUP_LABEL, 2);
-		createSpinner(spacingGroup, Assistants.LAYOUT_FILL_MARGIN_HEIGHT, Messages.FillLayoutAssistantPage_MARGIN_HEIGHT_LABEL);
-		createSpinner(spacingGroup, Assistants.LAYOUT_FILL_MARGIN_WIDTH, Messages.FillLayoutAssistantPage_MARGIN_WIDTH_LABEL);
-		createSpinner(spacingGroup, Assistants.LAYOUT_FILL_SPACING, Messages.FillLayoutAssistantPage_SPACING_LABEL);
-		return composite;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.AssistantPage#getAssistant()
-	 */
-	protected Object getAssistant() {
-		Object assistant = super.getAssistant();
-		if (assistant == null) {
-			assistant = new FillLayout();
-		}
-		return assistant;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/GridDataAssistantPage.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/GridDataAssistantPage.java
deleted file mode 100755
index b253449..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/GridDataAssistantPage.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.layouts.pages;
-
-import java.lang.reflect.Field;
-
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.xwt.metadata.IProperty;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.tools.ui.designer.commands.ResizeCommand;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutDataType;
-import org.eclipse.xwt.tools.ui.designer.layouts.control.FieldEditor;
-import org.eclipse.xwt.tools.ui.designer.layouts.control.FieldEditorEvent;
-import org.eclipse.xwt.tools.ui.designer.layouts.control.SpinnerFieldEditor;
-import org.eclipse.xwt.tools.ui.designer.model.RefreshAdapter;
-import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
-import org.eclipse.xwt.tools.ui.designer.resources.Messages;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author rui.ban rui.ban@soyatec.com
- */
-public class GridDataAssistantPage extends LayoutDataAssistantPage {
-
-	public GridDataAssistantPage() {
-		super(LayoutDataType.GridData);
-	}
-
-	/**
-	 * @see org.soyatec.xaml.ve.xwt.editparts.layouts.pages.CustomizeLayoutPage#creatControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public Composite createControl(Composite parent) {
-		Composite composite = createComposite(parent);
-		GridLayout grid = new GridLayout();
-		grid.numColumns = 2;
-		composite.setLayout(grid);
-		// create alignment area.
-		createAlignmentArea(composite);
-		// create hints area.
-		createHintsAndSpanningArea(composite);
-		// create minimum area.
-		createMinimumArea(composite);
-		// create indents area.
-		createIndentsArea(composite);
-		return composite;
-	}
-
-	private void createAlignmentArea(Composite parent) {
-		Group aligmentGroup = createGroup(parent, Messages.GridDataAssistantPage_ALIGNS_GROUP_LABEL, 2);
-
-		Group horizontalGroup = createGroup(aligmentGroup, Messages.GridDataAssistantPage_HORIZONTAL_GROUP_LABEL, 1);
-		GridData gd = new GridData();
-		gd.verticalAlignment = GridData.FILL;
-		horizontalGroup.setLayoutData(gd);
-
-		String[][] hAlignRadios = new String[][] { { "Left", "SWT.LEFT" }, { "Center", "GRIDDATA.CENTER" }, { "Right", "SWT.RIGHT" }, { "Fill", "SWT.FILL" } }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
-		createRadio(horizontalGroup, null, Assistants.LAYOUTDATA_GRID_HORIZONTAL_ALIGNMENT, hAlignRadios);
-
-		createCheckBox(horizontalGroup, Assistants.LAYOUTDATA_GRID_GRAB_EXCESS_HORIZONTAL_SPACE, Messages.GridDataAssistantPage_H_GRAB_LABEL);
-
-		Group verticalGroup = createGroup(aligmentGroup, Messages.GridDataAssistantPage_VERTICAL_GROUP_LABEL, 1);
-		gd = new GridData();
-		gd.verticalAlignment = GridData.FILL;
-		verticalGroup.setLayoutData(gd);
-
-		String[][] vAlignRadios = new String[][] { { "Top", "SWT.TOP" }, { "Center", "GRIDDATA.CENTER" }, { "Bottom", "SWT.BOTTOM" }, { "Fill", "SWT.FILL" } }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
-		createRadio(verticalGroup, null, Messages.GridDataAssistantPage_V_ALIGN_LABEL, vAlignRadios);
-
-		createCheckBox(verticalGroup, Assistants.LAYOUTDATA_GRID_GRAB_EXCESS_VERTICAL_SPACE, Messages.GridDataAssistantPage_V_GRAB_LABEL);
-
-	}
-
-	private void createHintsAndSpanningArea(Composite parent) {
-		Composite composite = createComposite(parent);
-		GridLayout grid = new GridLayout();
-		grid.horizontalSpacing = 0;
-		grid.marginWidth = 0;
-		grid.marginHeight = 0;
-		composite.setLayout(grid);
-
-		Group hintsGroup = createGroup(composite, Messages.GridDataAssistantPage_HINTS_GROUP_NAME, 2);
-		GridData gd = new GridData();
-		gd.horizontalAlignment = GridData.FILL;
-		hintsGroup.setLayoutData(gd);
-
-		// Create a new width spinner for GridData, so that, we can change both width of the control and widthHint of the GridData now.
-		SpinnerFieldEditor widthSpinner = new SpinnerFieldEditor(Assistants.LAYOUTDATA_GRID_WIDTH_HINT, Messages.GridDataAssistantPage_WIDTH_LABEL, hintsGroup) {
-			public void apply(Object source) {
-				if (!isValid() || source == null) {
-					return;
-				}
-				try {
-					Field field = source.getClass().getField(fieldName);
-					Object value = field.get(source);
-					if (SWT.DEFAULT == (Integer) value) {
-						value = getHintValue(Assistants.WIDTH);
-					}
-					doUpdate(value == null ? "" : value.toString()); //$NON-NLS-1$
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		};
-		addEditor(widthSpinner);
-
-		SpinnerFieldEditor heightSpinner = new SpinnerFieldEditor(Assistants.LAYOUTDATA_GRID_HEIGHT_HINT, Messages.GridDataAssistantPage_HEIGHT_LABEL, hintsGroup) {
-			public void apply(Object source) {
-				if (!isValid() || source == null) {
-					return;
-				}
-				try {
-					Field field = source.getClass().getField(fieldName);
-					Object value = field.get(source);
-					if (SWT.DEFAULT == (Integer) value) {
-						value = getHintValue(Assistants.HEIGHT);
-					}
-					doUpdate(value == null ? "" : value.toString()); //$NON-NLS-1$
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		};
-		addEditor(heightSpinner);
-
-		Group spanningGroup = createGroup(composite, Messages.GridDataAssistantPage_SPANNING_GROUP_LABEL, 2);
-		spanningGroup.setText("Spanning"); //$NON-NLS-1$
-		gd = new GridData();
-		gd.horizontalAlignment = GridData.FILL;
-		spanningGroup.setLayoutData(gd);
-
-		createSpinner(spanningGroup, Assistants.LAYOUTDATA_GRID_HORIZONTAL_SPAN, Messages.GridDataAssistantPage_COLUMN_SPAN_LABEL);
-		createSpinner(spanningGroup, Assistants.LAYOUTDATA_GRID_VERTICAL_SPAN, Messages.GridDataAssistantPage_ROW_SPAN_LABEL);
-
-	}
-
-	protected Command computeCommand(FieldEditorEvent event) {
-		String field = event.field;
-		if (Assistants.LAYOUTDATA_GRID_WIDTH_HINT.equals(field)) {
-			int oldIntValue = Integer.parseInt(event.oldValue.trim());
-			int newIntValue = Integer.parseInt(event.newVlaue.trim());
-			Dimension growth = new Dimension(newIntValue - oldIntValue, 0);
-			return new ResizeCommand(getEditPart(), growth);
-		} else if (Assistants.LAYOUTDATA_GRID_HEIGHT_HINT.equals(field)) {
-			int oldIntValue = Integer.parseInt(event.oldValue.trim());
-			int newIntValue = Integer.parseInt(event.newVlaue.trim());
-			Dimension growth = new Dimension(0, newIntValue - oldIntValue);
-			return new ResizeCommand(getEditPart(), growth);
-		}
-		return super.computeCommand(event);
-	}
-
-	protected void setUpRefresher(FieldEditor editor) {
-		super.setUpRefresher(editor);
-		String fieldName = editor.getFieldName();
-		final FieldEditor forRefresh = editor;
-		XamlNode model = getModel();
-		if (model == null) {
-			return;
-		}
-		if (Assistants.LAYOUTDATA_GRID_WIDTH_HINT.equals(fieldName)) {
-			getRefreshers(editor).add(new RefreshAdapter(model, Assistants.WIDTH) {
-				protected void performRefresh(Notification msg) {
-					forRefresh.apply(getAssistant());
-				}
-			});
-		} else if (Assistants.LAYOUTDATA_GRID_HEIGHT_HINT.equals(fieldName)) {
-			getRefreshers(editor).add(new RefreshAdapter(model, Assistants.HEIGHT) {
-				protected void performRefresh(Notification msg) {
-					forRefresh.apply(getAssistant());
-				}
-			});
-		}
-	}
-
-	public int getHintValue(String hint) {
-		EditPart editPart = getEditPart();
-		if (editPart == null || !(editPart instanceof WidgetEditPart)) {
-			return -1;
-		}
-		Widget widget = ((WidgetEditPart) editPart).getWidget();
-		if (widget == null || widget.isDisposed()) {
-			return -1;
-		}
-		try {
-			IMetaclass metaclass = XWT.getMetaclass(widget);
-			if (metaclass != null) {
-				IProperty prop = metaclass.findProperty(hint);
-				if (prop != null) {
-					return (Integer) prop.getValue(widget);
-				}
-			}
-		} catch (Exception e) {
-		}
-		return -1;
-	}
-
-	private void createMinimumArea(Composite parent) {
-		Composite composite = createComposite(parent);
-		GridLayout grid = new GridLayout();
-		grid.numColumns = 2;
-		composite.setLayout(grid);
-
-		Group minimumGroup = createGroup(composite, Messages.GridDataAssistantPage_MINIMUM_GROUP_LABEL, 2);
-		GridData gd = new GridData();
-		gd.horizontalAlignment = GridData.FILL;
-		minimumGroup.setLayoutData(gd);
-
-		createSpinner(minimumGroup, Assistants.LAYOUTDATA_GRID_MINIMUM_WIDTH, Messages.GridDataAssistantPage_MIN_WIDTH_LABEL);
-		createSpinner(minimumGroup, Assistants.LAYOUTDATA_GRID_MINIMUM_HEIGHT, Messages.GridDataAssistantPage_MIN_HEIGHT_LABEL);
-
-		createCheckBox(composite, Assistants.LAYOUTDATA_GRID_EXCLUDE, Messages.GridDataAssistantPage_EXCLUDE_LABEL);
-	}
-
-	private void createIndentsArea(Composite parent) {
-		Group indentsGroup = createGroup(parent, Messages.GridDataAssistantPage_INDENTS_GROUP_LABEL, 2);
-		GridData gd = new GridData();
-		gd.horizontalAlignment = GridData.FILL;
-		indentsGroup.setLayoutData(gd);
-
-		createSpinner(indentsGroup, Assistants.LAYOUTDATA_GRID_HORIZONTAL_INDENT, Messages.GridDataAssistantPage_H_INDENT_LABEL);
-		createSpinner(indentsGroup, Assistants.LAYOUTDATA_GRID_VERTICAL_INDENT, Messages.GridDataAssistantPage_V_INDENT_LABEL);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.AssistantPage#getAssistant()
-	 */
-	protected Object getAssistant() {
-		Object assistant = super.getAssistant();
-		if (assistant == null) {
-			assistant = new GridData();
-		}
-		return assistant;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/GridLayoutAssistantPage.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/GridLayoutAssistantPage.java
deleted file mode 100755
index ba74af7..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/GridLayoutAssistantPage.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.layouts.pages;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
-import org.eclipse.xwt.tools.ui.designer.resources.Messages;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class GridLayoutAssistantPage extends LayoutAssistantPage {
-
-	public GridLayoutAssistantPage() {
-		super(LayoutType.GridLayout);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.IAssistantPage#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public Control createControl(Composite parent) {
-		Composite control = createComposite(parent);
-		control.setLayout(new GridLayout());
-
-		Composite numsComp = createComposite(control);
-		// numsComp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		GridLayout layout = new GridLayout(3, false);
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		numsComp.setLayout(layout);
-		createSpinner(numsComp, Assistants.LAYOUT_GRID_NUM_CLUMNS, Messages.GridLayoutAssistantPage_NUM_COLUMNS_LABEL);
-
-		createCheckBox(numsComp, Assistants.LAYOUT_GRID_MAKE_COLUMNS_EQUAL_WIDTH, Messages.GridLayoutAssistantPage_EQUAL_WIDTH_LABEL);
-
-		Composite bottom = createComposite(control);
-		GridLayout bottomLayout = new GridLayout(2, false);
-		bottomLayout.marginWidth = 0;
-		bottomLayout.marginHeight = 0;
-		bottom.setLayout(bottomLayout);
-		bottom.setLayoutData(new GridData(GridData.FILL_BOTH));
-		{// Margins
-			Group bottomLeft = createGroup(bottom, Messages.GridLayoutAssistantPage_MARGINS_SIDES_GROUP_LABEL, 2);
-			GridData layoutData = new GridData();
-			layoutData.verticalAlignment = SWT.TOP;
-			bottomLeft.setLayoutData(layoutData);
-			createSpinner(bottomLeft, Assistants.LAYOUT_GRID_MARGIN_LEFT, Messages.GridLayoutAssistantPage_M_LEFT_LABEL);
-
-			createSpinner(bottomLeft, Assistants.LAYOUT_GRID_MARGIN_TOP, Messages.GridLayoutAssistantPage_M_TOP_LABEL);
-
-			createSpinner(bottomLeft, Assistants.LAYOUT_GRID_MARGIN_RIGHT, Messages.GridLayoutAssistantPage_M_RIGHT_LABEL);
-
-			createSpinner(bottomLeft, Assistants.LAYOUT_GRID_MARGIN_BOTTOM, Messages.GridLayoutAssistantPage_M_BOTTOM_LABEL);
-		}
-		Composite bottomRight = createComposite(bottom);
-		GridLayout bottomRightLayout = new GridLayout();
-		bottomRightLayout.marginWidth = 0;
-		bottomRightLayout.marginHeight = 0;
-		bottomRight.setLayout(bottomRightLayout);
-		bottomRight.setLayoutData(new GridData(GridData.FILL_VERTICAL));
-		{//
-			Group marginsGrp = createGroup(bottomRight, Messages.GridLayoutAssistantPage_MARGINS_GROUP_LABEL, 2);
-			marginsGrp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			createSpinner(marginsGrp, Assistants.LAYOUT_GRID_MARGIN_WIDTH, Messages.GridLayoutAssistantPage_M_WIDTH_LABEL);
-			createSpinner(marginsGrp, Assistants.LAYOUT_GRID_MARGIN_HEIGHT, Messages.GridLayoutAssistantPage_M_HEIGHT_LABEL);
-		}
-		{//
-			Group marginsGrp = createGroup(bottomRight, Messages.GridLayoutAssistantPage_SPACING_GROUP_LABEL, 2);
-			marginsGrp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			createSpinner(marginsGrp, Assistants.LAYOUT_GRID_HORIZONTAL_SPACING, Messages.GridLayoutAssistantPage_H_SPACING_LABEL);
-			createSpinner(marginsGrp, Assistants.LAYOUT_GRID_VERTICAL_SPACING, Messages.GridLayoutAssistantPage_V_SPACING_LABEL);
-		}
-		return control;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.AssistantPage#getAssistant()
-	 */
-	protected Object getAssistant() {
-		Object assistant = super.getAssistant();
-		if (assistant == null) {
-			assistant = new GridLayout();
-		}
-		return assistant;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/IAssistantPage.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/IAssistantPage.java
deleted file mode 100755
index b22c2a1..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/IAssistantPage.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.layouts.pages;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public interface IAssistantPage {
-
-	Control getControl(Composite parent);
-
-	void setEditPart(EditPart editPart);
-
-	void performDefault();
-
-	void refresh();
-
-	void dispose();
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/LayoutAssistantPage.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/LayoutAssistantPage.java
deleted file mode 100755
index f4306b6..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/LayoutAssistantPage.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.layouts.pages;
-
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public abstract class LayoutAssistantPage extends AssistantPage {
-
-	private LayoutType layoutType;
-
-	public LayoutAssistantPage(LayoutType layoutType) {
-		this.layoutType = layoutType;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.AssistantPage#createParentModel(org.soyatec.tools.designer.xaml.XamlNode)
-	 */
-	protected XamlElement createAssistModel(XamlNode parent) {
-		if (parent == null) {
-			return null;
-		}
-		XamlAttribute attribute = getAssistParent();
-		XamlElement layoutModel = attribute.getChild(layoutType.value());
-		if (layoutModel == null) {
-			layoutModel = XamlFactory.eINSTANCE.createElement(layoutType.value(), IConstants.XWT_NAMESPACE);
-		}
-		if (attribute.eContainer() == null) {
-			attribute.getChildNodes().add(layoutModel);
-		}
-		return layoutModel;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.AssistantPage#createAssistParent(org.soyatec.tools.designer.xaml.XamlNode)
-	 */
-	protected XamlAttribute createAssistParent(XamlNode parent) {
-		XamlAttribute attribute = parent.getAttribute("layout");
-		if (attribute == null) {
-			attribute = XamlFactory.eINSTANCE.createAttribute("layout", IConstants.XWT_NAMESPACE);
-		}
-		return attribute;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/LayoutDataAssistantPage.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/LayoutDataAssistantPage.java
deleted file mode 100755
index 837d742..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/LayoutDataAssistantPage.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.layouts.pages;
-
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutDataType;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public abstract class LayoutDataAssistantPage extends AssistantPage {
-
-	private LayoutDataType layoutDataType;
-
-	public LayoutDataAssistantPage(LayoutDataType layoutDataType) {
-		this.layoutDataType = layoutDataType;
-	}
-
-	public XamlElement createAssistModel(XamlNode model) {
-		if (model == null) {
-			return null;
-		}
-		XamlAttribute attribute = getAssistParent();
-		XamlElement layoutDataModel = attribute.getChild(layoutDataType.name());
-		if (layoutDataModel == null) {
-			layoutDataModel = XamlFactory.eINSTANCE.createElement(layoutDataType.name(), IConstants.XWT_NAMESPACE);
-		}
-		if (attribute.eContainer() == null) {
-			attribute.getChildNodes().add(layoutDataModel);
-		}
-		return layoutDataModel;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.AssistantPage#createAssistParent(org.soyatec.tools.designer.xaml.XamlNode)
-	 */
-	protected XamlAttribute createAssistParent(XamlNode parent) {
-		XamlAttribute attribute = parent.getAttribute("layoutData");
-		if (attribute == null) {
-			attribute = XamlFactory.eINSTANCE.createAttribute("layoutData", IConstants.XWT_NAMESPACE);
-		}
-		return attribute;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/RowDataAssistantPage.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/RowDataAssistantPage.java
deleted file mode 100755
index 3b37574..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/RowDataAssistantPage.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.layouts.pages;
-
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.layout.RowData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutDataType;
-import org.eclipse.xwt.tools.ui.designer.resources.Messages;
-
-/**
- * @author rui.ban rui.ban@soyatec.com
- */
-public class RowDataAssistantPage extends LayoutDataAssistantPage {
-
-	public RowDataAssistantPage() {
-		super(LayoutDataType.RowData);
-	}
-
-	/**
-	 * @see org.soyatec.xaml.ve.xwt.editparts.layouts.pages.CustomizeLayoutPage#creatControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public Composite createControl(Composite parent) {
-		Composite composite = createComposite(parent);
-		GridLayout grid = new GridLayout();
-		grid.numColumns = 2;
-		composite.setLayout(grid);
-
-		Group sizeGroup = createGroup(composite, Messages.RowDataAssistantPage_SIZE_GROUP_LABEL, 2);
-		GridData gd = new GridData();
-		gd.horizontalAlignment = GridData.FILL;
-		sizeGroup.setLayoutData(gd);
-
-		createSpinner(sizeGroup, Assistants.LAYOUTDATA_ROW_WIDTH, Messages.RowDataAssistantPage_WIDTH_LABEL);
-		createSpinner(sizeGroup, Assistants.LAYOUTDATA_ROW_HEIGHT, Messages.RowDataAssistantPage_HEIGHT_LABEL);
-		createCheckBox(composite, Assistants.LAYOUTDATA_ROW_EXCLUDE, Messages.RowDataAssistantPage_EXCLUDE_LABEL);
-		return composite;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.AssistantPage#getAssistant()
-	 */
-	protected Object getAssistant() {
-		Object assistant = super.getAssistant();
-		if (assistant == null) {
-			assistant = new RowData();
-		}
-		return assistant;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/RowLayoutAssistantPage.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/RowLayoutAssistantPage.java
deleted file mode 100755
index 7281af0..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/RowLayoutAssistantPage.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.layouts.pages;
-
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
-import org.eclipse.xwt.tools.ui.designer.resources.Messages;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class RowLayoutAssistantPage extends LayoutAssistantPage {
-
-	public RowLayoutAssistantPage() {
-		super(LayoutType.RowLayout);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.IAssistantPage#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public Control createControl(Composite parent) {
-		Composite composite = createComposite(parent);
-		composite.setLayout(new GridLayout(2, false));
-
-		String[][] typeRadios = new String[][] { { "Horizontal", "SWT.HORIZONTAL" }, { "Vertical", "SWT.VERTICAL" } }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-
-		createRadio(composite, Messages.RowLayoutAssistantPage_ORIENTATION_LABEL, Assistants.LAYOUT_ROW_TYPE, typeRadios);
-
-		Group spacingGroup = createGroup(composite, Messages.RowLayoutAssistantPage_MARGIN_SPACING_LABEL, 2);
-
-		createSpinner(spacingGroup, Assistants.LAYOUT_ROW_MARGIN_HEIGHT, Messages.RowLayoutAssistantPage_MARGIN_HEIGHT_LABEL);
-		createSpinner(spacingGroup, Assistants.LAYOUT_ROW_MARGIN_WIDTH, Messages.RowLayoutAssistantPage_MARGIN_WIDTH_LABEL);
-		createSpinner(spacingGroup, Assistants.LAYOUT_ROW_SPACING, Messages.RowLayoutAssistantPage_SPACING_LABEL);
-
-		Group optionsGroup = createGroup(composite, Messages.RowLayoutAssistantPage_OPTIONS_NAME, 1);
-
-		createCheckBox(optionsGroup, Assistants.LAYOUT_ROW_WRAP, Messages.RowLayoutAssistantPage_WRAP_LABEL);
-		createCheckBox(optionsGroup, Assistants.LAYOUT_ROW_PACK, Messages.RowLayoutAssistantPage_PACK_LABEL);
-		createCheckBox(optionsGroup, Assistants.LAYOUT_ROW_FILL, Messages.RowLayoutAssistantPage_FILL_LABEL);
-		createCheckBox(optionsGroup, Assistants.LAYOUT_ROW_JUSTIFY, Messages.RowLayoutAssistantPage_JUSTIFY_LABEL);
-
-		Group marginSideGroup = createGroup(composite, Messages.RowLayoutAssistantPage_MARGINS_GROUP_LABEL, 2);
-
-		createSpinner(marginSideGroup, Assistants.LAYOUT_ROW_MARGIN_LEFT, Messages.RowLayoutAssistantPage_MARGIN_LEFT_LABEL);
-		createSpinner(marginSideGroup, Assistants.LAYOUT_ROW_MARGIN_RIGHT, Messages.RowLayoutAssistantPage_MARGIN_RIGHT_LABEL);
-		createSpinner(marginSideGroup, Assistants.LAYOUT_ROW_MARGIN_TOP, Messages.RowLayoutAssistantPage_MARGIN_TOP_LABEL);
-		createSpinner(marginSideGroup, Assistants.LAYOUT_ROW_MARGIN_BOTTOM, Messages.RowLayoutAssistantPage_MARGIN_BOTTOM_LABEL);
-		return composite;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.AssistantPage#getAssistant()
-	 */
-	protected Object getAssistant() {
-		Object assistant = super.getAssistant();
-		if (assistant == null) {
-			assistant = new RowLayout();
-		}
-		return assistant;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/DataBindingTrack.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/DataBindingTrack.java
deleted file mode 100755
index b3c2f95..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/DataBindingTrack.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.loader;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.Tracking;
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.core.IDynamicBinding;
-import org.eclipse.xwt.internal.core.Binding;
-import org.eclipse.xwt.internal.utils.LoggerManager;
-import org.eclipse.xwt.internal.utils.ObjectUtil;
-import org.eclipse.xwt.jface.JFacesHelper;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author liang.zhang
- * 
- */
-public class DataBindingTrack {
-	private String bindingError = "";
-	private Set<String> errorElements = null;
-
-	private List<XamlElement> widgetList = null;
-	private Map<XamlElement, String> bindingMap;
-
-	public DataBindingTrack() {
-		widgetList = new ArrayList<XamlElement>();
-		errorElements = new HashSet<String>();
-		bindingMap = new HashMap<XamlElement, String>();
-	}
-
-	public void addWidgetElement(XamlElement element) {
-		widgetList.add(element);
-	}
-
-	private void addErrorWidgetId(String elementId) {
-		errorElements.add(elementId);
-	}
-
-	private void addBindingMessageToMap(XamlElement element, String bindingMessage) {
-		bindingMap.put(element, bindingMessage);
-	}
-
-	private int validateParentElementError(XamlElement bindingElement) {
-		int isError = 0;
-		if (!bindingError.equals("")) {
-			Object parentObj = bindingElement.eContainer();
-			while (parentObj != null) {
-				bindingElement = (XamlElement) parentObj;
-				if (errorElements.contains(bindingElement.getId())) {
-					isError = 1;
-					break;
-				}
-				parentObj = bindingElement.eContainer();
-			}
-		}
-		return isError;
-	}
-
-	private String getCurrentWidgetPosition(XamlElement element) {
-		if (element.eContainer() != null) {
-			return " " + getCurrentWidgetPosition((XamlElement) element.eContainer());
-		}
-		return "";
-	}
-
-	public String getDataBindMessage() {
-		StringBuffer message = new StringBuffer("");
-		Iterator<XamlElement> widgetIt = widgetList.iterator();
-		Set<XamlElement> keys = bindingMap.keySet();
-		while (widgetIt.hasNext()) {
-			XamlElement element = widgetIt.next();
-			int parentHasError = validateParentElementError(element);
-			if (parentHasError == 0) {
-				String content = getCurrentWidgetPosition(element);
-				if (!message.toString().equals("")) {
-					content += "+ ";
-				}
-				content = content + element.getName();
-				if (XWT.isTracking(Tracking.NAME)) {
-					XamlAttribute nameAttr = element.getAttribute(IConstants.XWT_X_NAMESPACE, "Name");
-					if (nameAttr != null) {
-						content += " <" + nameAttr.getValue() + ">";
-					}
-				}
-				message.append(content);
-				if (XWT.isTracking(Tracking.DATABINDING)) {
-					if (keys.contains(element)) {
-						message.append(bindingMap.get(element));
-					} else {
-						message.append("\n");
-					}
-				}
-			}
-		}
-		return message.toString();
-	}
-
-	private void setBindingErrorMessage(String bindingError) {
-		this.bindingError = bindingError;
-	}
-
-	public void tracking(Object swtObject, XamlElement element, Object dataContext) {
-		String bindingMessage = "";
-		if (swtObject instanceof IDynamicBinding) {
-			String error = "";
-			Binding newInstance = (Binding) swtObject;
-			String path = null;
-			XamlAttribute attr = element.getAttribute("Path", IConstants.XWT_NAMESPACE);
-			if (null == attr)
-				attr = element.getAttribute("path", IConstants.XWT_NAMESPACE);
-			if (null != attr)
-				path = attr.getValue();
-			Object dataContext2 = null;
-			try {
-				dataContext2 = newInstance.getValue(null);
-				if (path != null && path.length() > 0) {
-					String[] paths = path.trim().split("\\.");
-					if (paths.length > 1) {
-						String path1 = "";
-						for (int i = 0; i < paths.length - 1; i++) {
-							path1 = paths[i];
-							if (dataContext2 != null) {
-								dataContext2 = getObserveData(dataContext2, path1);
-							}
-						}
-					}
-				}
-			} catch (Exception ex) {
-				addErrorWidgetId(((XamlNode) element.eContainer().eContainer()).getId());
-				setBindingErrorMessage("-> Error");
-				error = "-> Error";
-			}
-			if (dataContext2 != null) {
-				bindingMessage = " (DataContext=" + dataContext2.getClass().getSimpleName() + ", Path=" + path + ")" + error + "\n";
-				addBindingMessageToMap((XamlElement) element.eContainer().eContainer(), bindingMessage);// bindingMap.put((XamlElement) element.getParent().getParent(), bindingMessage);
-			}
-		} else if (swtObject instanceof Widget) {
-			addWidgetElement(element);
-			if (dataContext != null) {
-				bindingMessage = " (DataContext=" + dataContext.getClass().getSimpleName() + ")\n";
-				addBindingMessageToMap(element, bindingMessage);
-			}
-		} else if (JFacesHelper.isViewer(swtObject)) {
-			if (dataContext != null) {
-				bindingMessage = " (DataContext=" + dataContext.getClass().getSimpleName() + ")\n";
-				addBindingMessageToMap(element, bindingMessage);// bindingMap.put(element, bindingMessage);
-			}
-		} else if (element.attributeNames(IConstants.XWT_X_NAMESPACE).size() > 0) {
-			// ??
-			if (element.eContainer() != null && element.eContainer().eContainer() != null) {
-				bindingMessage = " (DataContext=" + element.getName() + ")\n";
-				addBindingMessageToMap((XamlElement) element.eContainer().eContainer(), bindingMessage);// bindingMap.put((XamlElement) element.getParent().getParent(), bindingMessage);
-			}
-		}
-	}
-
-	public static Object getObserveData(Object dataContext, String path) {
-		try {
-			Class<?> dataContextClass = dataContext.getClass();
-			Method getMethod = ObjectUtil.findGetter(dataContextClass, path, null);
-			if (getMethod != null) {
-				return getMethod.invoke(dataContext, new Object[] {});
-			}
-		} catch (SecurityException e) {
-			LoggerManager.log(e);
-		} catch (IllegalArgumentException e) {
-			LoggerManager.log(e);
-		} catch (IllegalAccessException e) {
-			LoggerManager.log(e);
-		} catch (InvocationTargetException e) {
-			LoggerManager.log(e);
-		}
-		return null;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/NodesSorter.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/NodesSorter.java
deleted file mode 100755
index 87efadf..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/NodesSorter.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.loader;
-
-import java.io.Serializable;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-public class NodesSorter {
-
-	public static List<XamlNode> sortWithAttr(XamlNode[] sourceArray, String attrName) {
-		return sortWithAttr(sourceArray, new AttrComparator(attrName), attrName);
-	}
-
-	public static List<XamlNode> sortWithAttr(XamlNode[] sourceArray, Comparator<XamlElement> comparator, String attrName) {
-		List<XamlNode> columnsList = new LinkedList<XamlNode>();
-		for (XamlNode column : sourceArray) {
-			XamlElement columnElement = (XamlElement) column;
-			XamlAttribute indexAttr = columnElement.getAttribute(attrName, IConstants.XWT_NAMESPACE);
-			if (indexAttr == null) {
-				columnsList.add(column);
-			}
-		}
-
-		List<XamlElement> tempList = new LinkedList<XamlElement>();
-		for (XamlNode column : sourceArray) {
-			XamlElement columnElement = (XamlElement) column;
-			XamlAttribute indexAttr = columnElement.getAttribute(attrName, IConstants.XWT_NAMESPACE);
-			if (indexAttr != null) {
-				tempList.add(columnElement);
-			}
-		}
-
-		if (comparator == null) {
-			comparator = new AttrComparator(attrName);
-		}
-		Collections.sort(tempList, comparator);
-
-		for (XamlElement columnElement : tempList) {
-			XamlAttribute indexAttr = columnElement.getAttribute(attrName, IConstants.XWT_NAMESPACE);
-			try {
-				int index = Integer.parseInt(indexAttr.getValue());
-				columnsList.add(index, columnElement);
-			} catch (Exception e) {
-				columnsList.add(columnsList.size(), columnElement);
-			}
-		}
-
-		return columnsList;
-	}
-
-	private static class AttrComparator implements Comparator<XamlElement>,
-			Serializable {
-		private static final long serialVersionUID = 5974723422066058166L;
-		private String attrName;
-
-		public AttrComparator(String attrName) {
-			this.attrName = attrName;
-		}
-
-		public int compare(XamlElement e1, XamlElement e2) {
-			XamlAttribute attr1 = e1.getAttribute(attrName, IConstants.XWT_NAMESPACE);
-			XamlAttribute attr2 = e2.getAttribute(attrName, IConstants.XWT_NAMESPACE);
-			String compare1 = attr1.getValue();
-			String compare2 = attr2.getValue();
-			if (compare1 == null || compare2 == null) {
-				return 0;
-			}
-			try {
-				int index1 = Integer.parseInt(compare1);
-				int index2 = Integer.parseInt(compare2);
-				return index1 > index2 ? 1 : -1;
-			} catch (Exception e) {
-				return compare1.compareTo(compare2);
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/ResourceVisitor.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/ResourceVisitor.java
deleted file mode 100755
index eac1c1a..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/ResourceVisitor.java
+++ /dev/null
@@ -1,1940 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.loader;
-
-import java.io.File;
-import java.lang.reflect.Array;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.StringTokenizer;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.xwt.ICLRFactory;
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.IDataProvider;
-import org.eclipse.xwt.IEventHandler;
-import org.eclipse.xwt.IEventInvoker;
-import org.eclipse.xwt.IIndexedElement;
-import org.eclipse.xwt.ILoadingContext;
-import org.eclipse.xwt.INamespaceHandler;
-import org.eclipse.xwt.IStyle;
-import org.eclipse.xwt.IXWTLoader;
-import org.eclipse.xwt.ResourceDictionary;
-import org.eclipse.xwt.Tracking;
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.XWTException;
-import org.eclipse.xwt.XWTLoader;
-import org.eclipse.xwt.XWTMaps;
-import org.eclipse.xwt.annotation.UI;
-import org.eclipse.xwt.callback.ICreatedCallback;
-import org.eclipse.xwt.callback.ILoadedCallback;
-import org.eclipse.xwt.core.IBinding;
-import org.eclipse.xwt.core.IDynamicBinding;
-import org.eclipse.xwt.core.IDynamicValueBinding;
-import org.eclipse.xwt.core.Setter;
-import org.eclipse.xwt.core.Style;
-import org.eclipse.xwt.input.ICommand;
-import org.eclipse.xwt.internal.core.Core;
-import org.eclipse.xwt.internal.core.IEventController;
-import org.eclipse.xwt.internal.core.ScopeKeeper;
-import org.eclipse.xwt.internal.utils.ClassLoaderUtil;
-import org.eclipse.xwt.internal.utils.LoggerManager;
-import org.eclipse.xwt.internal.utils.NamespaceHelper;
-import org.eclipse.xwt.internal.utils.ObjectUtil;
-import org.eclipse.xwt.internal.utils.TableEditorHelper;
-import org.eclipse.xwt.internal.utils.UserData;
-import org.eclipse.xwt.javabean.StaticResourceBinding;
-import org.eclipse.xwt.javabean.metadata.properties.PropertiesConstants;
-import org.eclipse.xwt.javabean.metadata.properties.TableItemProperty;
-import org.eclipse.xwt.jface.JFacesHelper;
-import org.eclipse.xwt.metadata.IEvent;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.xwt.metadata.IProperty;
-import org.eclipse.xwt.metadata.IValueLoading;
-import org.eclipse.xwt.utils.PathHelper;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ControlEditor;
-import org.eclipse.swt.custom.TableEditor;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class ResourceVisitor {
-	public static final String ELEMENT_KEY = "XWTDesigner.Model";
-	public static final String UI_FILE_KEY = "XWTDesigner.UIFile";
-	// static public final String DEFAULT_STYLES_KEY = "XWT.DefaultStyles";
-	static Map<String, Object> EMPTY_MAP = Collections.emptyMap();
-
-	static final String RESOURCE_LOADER_PROPERTY = "XWT.ResourceLoader";
-
-	private static final String COLUMN = "Column";
-
-	private Map<String, Object> options;
-
-	protected ResourceVisitor parentLoader;
-	protected XWTVisualLoader loader;
-
-	protected Object scopedObject;
-	protected ScopeKeeper nameScoped;
-	protected LoadingData loadData = new LoadingData();
-	private DataBindingTrack dataBindingTrack;
-
-	class LoadingData {
-		protected LoadingData parent;
-		protected Object clr;
-		protected Collection<IStyle> styles = Collections.emptyList();
-		private Object currentWidget = null;
-		private Object host = null;
-		private Object dataContext = null;
-
-		public Object getDataContext() {
-			return dataContext;
-		}
-
-		public void setDataContext(Object dataContext) {
-			this.dataContext = dataContext;
-		}
-
-		public Object getHost() {
-			return host;
-		}
-
-		public Object getCurrentWidget() {
-			return currentWidget;
-		}
-
-		public void setCurrentWidget(Object currentWidget) {
-			this.currentWidget = currentWidget;
-		}
-
-		public Object findElement(Class<?> type) {
-			if (type.isInstance(currentWidget)) {
-				return currentWidget;
-			}
-			if (parent != null) {
-				return parent.findElement(type);
-			}
-			return null;
-		}
-
-		public LoadingData getParent() {
-			return parent;
-		}
-
-		public LoadingData() {
-		}
-
-		public LoadingData(LoadingData loadingData, Object host) {
-			this.parent = loadingData;
-			this.styles = loadingData.styles;
-			this.clr = loadingData.clr;
-			this.currentWidget = loadingData.currentWidget;
-			this.dataContext = loadingData.dataContext;
-			this.host = host;
-		}
-
-		public void inject(Object targetObject, String name) {
-			doInject(targetObject, name, null);
-		}
-
-		protected void doInject(Object targetObject, String name,
-				Object previousClr) {
-			Class<?> filedType = targetObject.getClass();
-			if (clr != null && (previousClr != clr || previousClr == null)) {
-				for (Field field : clr.getClass().getDeclaredFields()) {
-					UI annotation = field.getAnnotation(UI.class);
-					if (annotation != null) {
-						if (!field.getType().isAssignableFrom(filedType)) {
-							continue;
-						}
-						String annotationValue = annotation.value();
-						if (annotationValue == null
-								|| annotationValue.length() == 0) {
-							if (field.getName().equals(name)) {
-								field.setAccessible(true);
-								try {
-									field.set(clr, targetObject);
-									return;
-								} catch (Exception e) {
-								}
-							}
-						} else if (annotationValue.equals(name)) {
-							field.setAccessible(true);
-							try {
-								field.set(clr, targetObject);
-								break;
-							} catch (Exception e) {
-							}
-						}
-					}
-				}
-			}
-			if (parent != null) {
-				parent.doInject(targetObject, name, clr);
-			}
-		}
-
-		public Collection<IStyle> getStyles() {
-			return styles;
-		}
-
-		public void setStyles(Collection<IStyle> styles) {
-			this.styles = styles;
-		}
-
-		public Object getClr() {
-			return clr;
-		}
-
-		public void setClr(Object clr) {
-			this.clr = clr;
-		}
-
-		public void updateEvent(Widget control, IEvent event, String handler) {
-			IEventController eventController = UserData
-					.updateEventController(control);
-			Method method = null;
-			Object clrObject = null;
-			LoadingData current = this;
-			ResourceVisitor currentParentLoader = parentLoader;
-			while (current != null) {
-				Object receiver = current.getClr();
-				if (receiver instanceof IEventHandler) {
-					IEventHandler eventManager = (IEventHandler) receiver;
-					IEventInvoker eventInvoker = eventManager.getEventInvoker(
-							handler, control.getClass(), Event.class);
-					if (eventInvoker != null) {
-						eventController.setEvent(event, control, control,
-								eventInvoker);
-					}
-				} else if (receiver != null) {
-					Class<?> clazz = receiver.getClass();
-					method = ObjectUtil.findMethod(clazz, handler,
-							control.getClass(), Event.class);
-					if (method == null) {
-						method = ObjectUtil.findMethod(clazz, handler,
-								Event.class);
-					}
-					if (method == null) {
-						// Load again.
-						clazz = XWTClassLoaderUtil.loadClass(
-								loader.getLoadingContext(), clazz.getName());
-						method = ObjectUtil.findMethod(clazz, handler,
-								Object.class, Event.class);
-						if (method == null) {
-							method = ObjectUtil.findMethod(clazz, handler,
-									Event.class);
-						}
-					}
-					if (method != null) {
-						clrObject = receiver;
-						eventController.setEvent(event, control, clrObject,
-								control, method);
-						break;
-					}
-				}
-				current = current.getParent();
-				if (current == null && currentParentLoader != null) {
-					current = currentParentLoader.loadData;
-					currentParentLoader = currentParentLoader.parentLoader;
-				}
-			}
-			if (method == null) {
-				// throw new XWTException("Event handler \"" + handler
-				// + "\" is not found.");
-			}
-		}
-
-		public void end() {
-			if (parent == null || clr != parent.getClr()) {
-				Method method = ObjectUtil.findDeclaredMethod(clr.getClass(),
-						"initializeComponent");
-				if (method == null) {
-					method = ObjectUtil.findDeclaredMethod(clr.getClass(),
-							"InitializeComponent");
-				}
-				if (method != null) {
-					try {
-						method.setAccessible(true);
-						method.invoke(clr);
-					} catch (Exception e) {
-						LoggerManager.log(e);
-					}
-				}
-			}
-		}
-
-		public void addStyle(IStyle style) {
-			if (styles == Collections.EMPTY_LIST) {
-				styles = new ArrayList<IStyle>();
-			}
-			styles.add(style);
-		}
-	}
-
-	public ResourceVisitor(XWTVisualLoader loader) {
-		this.loader = loader;
-	}
-
-	public Object createCLRElement(XamlElement element,
-			Map<String, Object> options) {
-		try {
-			this.options = options;
-			Composite parent = (Composite) options
-					.get(IXWTLoader.CONTAINER_PROPERTY);
-			if (!loader.getTrackings().isEmpty()) {
-				dataBindingTrack = new DataBindingTrack();
-			}
-			Object object = options.get(RESOURCE_LOADER_PROPERTY);
-			if (object instanceof ResourceVisitor) {
-				parentLoader = (ResourceVisitor) object;
-			}
-			options.remove(RESOURCE_LOADER_PROPERTY);
-			ResourceDictionary resourceDictionary = (ResourceDictionary) options
-					.get(IXWTLoader.RESOURCE_DICTIONARY_PROPERTY);
-			if (resourceDictionary != null) {
-				Object styles = resourceDictionary.get(Core.DEFAULT_STYLES_KEY);
-				if (styles != null) {
-					loadData.setStyles((Collection<IStyle>) styles);
-					resourceDictionary.remove(Core.DEFAULT_STYLES_KEY);
-				}
-			}
-			if (!options.containsKey(IXWTLoader.CLASS_FACTORY_PROPERTY)) {
-				try {
-					options.put(IXWTLoader.CLASS_FACTORY_PROPERTY,
-							loader.getCLRFactory());
-				} catch (UnsupportedOperationException e) {
-					if (options.isEmpty()) {
-						options = new HashMap<String, Object>();
-						options.put(IXWTLoader.CLASS_FACTORY_PROPERTY,
-								loader.getCLRFactory());
-					} else {
-						throw e;
-					}
-				}
-			}
-
-			Object control = doCreate(parent, element, null, options);
-			// get databinding messages and print into console view
-			if (dataBindingTrack != null) {
-				String dataBindingMessage = dataBindingTrack
-						.getDataBindMessage();// getDataBindMessage();
-				org.eclipse.xwt.ILogger log = loader.getLogger();
-				log.addMessage(dataBindingMessage, Tracking.DATABINDING);
-				log.printInfo(dataBindingMessage, Tracking.DATABINDING,
-						loader.getTrackings());
-			}
-			if (control instanceof Composite) {
-				((Composite) control).layout();
-			}
-			ILoadedCallback loadedAction = (ILoadedCallback) options
-					.get(IXWTLoader.LOADED_CALLBACK);
-			if (loadedAction != null) {
-				loadedAction.onLoaded(control);
-			}
-			return control;
-		} catch (Exception e) {
-			throw new XWTException(e);
-		}
-	}
-
-	protected String expandNamespace(XamlNode node, String name) {
-		int index = name.lastIndexOf(':');
-		if (index != -1) {
-			String prefix = name.substring(0, index);
-			name = findPackageName(node, prefix) + "."
-					+ name.substring(index + 1);
-		}
-		return name;
-	}
-
-	public Object doCreate(Object parent, XamlElement element,
-			Class<?> constraintType, Map<String, Object> options)
-			throws Exception {
-		int styles = -1;
-		if (options.containsKey(IXWTLoader.INIT_STYLE_PROPERTY)) {
-			styles = (Integer) options.get(IXWTLoader.INIT_STYLE_PROPERTY);
-		}
-
-		ResourceDictionary dico = (ResourceDictionary) options
-				.get(IXWTLoader.RESOURCE_DICTIONARY_PROPERTY);
-		Object dataContext = options.get(IXWTLoader.DATACONTEXT_PROPERTY);
-		Object bindingContext = options
-				.get(IXWTLoader.BINDING_CONTEXT_PROPERTY);
-		String name = element.getName();
-		String namespace = element.getNamespace();
-		EList<XamlElement> childNodes = element.getChildNodes();
-		if (IConstants.XWT_X_NAMESPACE.equalsIgnoreCase(namespace)) {
-			if (IConstants.XAML_X_NULL.equalsIgnoreCase(name)) {
-				return null;
-			}
-			if (IConstants.XAML_X_TYPE.equalsIgnoreCase(name)
-					&& constraintType != null
-					&& constraintType instanceof Class<?>) {
-				if (!childNodes.isEmpty()) {
-					XamlElement type = childNodes.get(0);
-					IMetaclass metaclass = loader.getMetaclass(type.getName(),
-							type.getNamespace());
-					if (metaclass != null) {
-						return metaclass.getType();
-					}
-				} else {
-					String content = element.getValue();
-					return loader.convertFrom(Class.class, content);
-				}
-			}
-			return null;
-		}
-		IMetaclass metaclass = loader.getMetaclass(name, namespace);
-		if (metaclass == null) {
-			return null;
-		}
-		if (constraintType != null
-				&& !(IBinding.class.isAssignableFrom(metaclass.getType()))
-				&& (!constraintType.isAssignableFrom(metaclass.getType()))) {
-			if (!constraintType.isArray()
-					|| !constraintType.getComponentType().isAssignableFrom(
-							metaclass.getType())) {
-				IConverter converter = XWT.findConvertor(metaclass.getType(),
-						constraintType);
-				if (converter == null) {
-					return null;
-				}
-			}
-		}
-		Object targetObject = null;
-		Integer styleValue = getStyleValue(element, styles);
-
-		if (parent == null || metaclass.getType() == Shell.class) {
-			if (dataBindingTrack != null) {
-				dataBindingTrack.addWidgetElement(element);
-			}
-			Shell shell = null;
-			if ((parent == null && metaclass.getType() != Shell.class) || styleValue == null || styleValue == -1) {
-				styleValue = SWT.SHELL_TRIM;
-			}
-			Display display = Display.getDefault();
-			shell = new Shell(display, styleValue);
-			targetObject = shell;
-			invokeCreatededAction(element, targetObject);
-			loadData.setCurrentWidget(shell);
-
-			if (metaclass.getType() != Shell.class) {
-				shell.setLayout(new FillLayout());
-				return doCreate(targetObject, element, constraintType, options);
-			} else {
-				if (bindingContext != null) {
-					setBindingContext(metaclass, targetObject, dico,
-							bindingContext);
-				}
-				if (dataContext != null) {
-					setDataContext(metaclass, targetObject, dico, dataContext);
-				}
-			}
-			pushStack(parent);
-
-			// for Shell
-			XamlAttribute classAttribute = element.getAttribute(
-					IConstants.XAML_X_CLASS, IConstants.XWT_X_NAMESPACE);
-			if (classAttribute != null) {
-				String className = classAttribute.getValue();
-				className = expandNamespace(classAttribute, className);
-				loadShellCLR(className, shell);
-			} else {
-				XamlAttribute classFactoryAttribute = element.getAttribute(
-						IConstants.XWT_X_NAMESPACE,
-						IConstants.XAML_X_CLASS_FACTORY);
-				ICLRFactory clrFactory = (ICLRFactory) options
-						.get(XWTLoader.CLASS_FACTORY_PROPERTY);
-				if (classFactoryAttribute != null) {
-					String content = classFactoryAttribute.getValue();
-					Object clr = loadFactoryCLR(content, clrFactory);
-					loadData.setClr(clr);
-					UserData.setCLR(shell, clr);
-				} else {
-					if (clrFactory != null) {
-						Object clr = clrFactory.createCLR(null, options);
-						loadData.setClr(clr);
-						UserData.setCLR(shell, clr);
-					}
-				}
-			}
-		} else {
-			pushStack(parent);
-
-			//
-			// load the content in case of UserControl
-			//
-			Class<?> type = metaclass.getType();
-			URL file = type.getResource(type.getSimpleName()
-					+ IConstants.XWT_EXTENSION_SUFFIX);
-			if (file != null && nameScoped != null) {
-				if (parent instanceof Composite) {
-					Object childDataContext = getDataContext(element,
-							(Widget) parent);
-					Object childBindingContext = getBindingContext(element,
-							(Widget) parent);
-					if (dataContext != null) {
-						childDataContext = dataContext;
-					}
-					if (bindingContext != null) {
-						childBindingContext = bindingContext;
-					}
-					Map<String, Object> nestedOptions = new HashMap<String, Object>();
-					nestedOptions.put(IXWTLoader.CONTAINER_PROPERTY, parent);
-					if (styleValue != null) {
-						nestedOptions.put(IXWTLoader.INIT_STYLE_PROPERTY,
-								styleValue);
-					}
-					nestedOptions.put(IXWTLoader.DATACONTEXT_PROPERTY,
-							childDataContext);
-					if (childBindingContext != null) {
-						nestedOptions.put(IXWTLoader.DATACONTEXT_PROPERTY,
-								childBindingContext);
-					}
-					nestedOptions.put(RESOURCE_LOADER_PROPERTY, this);
-					nestedOptions.put(IXWTLoader.CLASS_FACTORY_PROPERTY, null); // disable
-																				// the
-																				// global
-																				// setting
-					targetObject = loader.loadWithOptions(file, nestedOptions);
-					if (targetObject == null) {
-						return null;
-					}
-					if (targetObject instanceof Widget) {
-						((Widget) targetObject).setData(UI_FILE_KEY, file);
-					}
-				} else
-					throw new XWTException(
-							"Cannot add user control: Parent is not a composite");
-			} else {
-				Object[] parameters = null;
-				if (TableViewerColumn.class.isAssignableFrom(type)) {
-					int columnIndex = getColumnIndex(element);
-					parameters = (styleValue != null ? new Object[] { parent,
-							styleValue, columnIndex } : new Object[] { parent,
-							SWT.NONE, columnIndex });
-				} else {
-					parameters = (styleValue != null ? new Object[] { parent,
-							styleValue } : new Object[] { parent });
-				}
-
-				// x:Class
-				{
-					boolean hasClass = false;
-					XamlAttribute classAttribute = element
-							.getAttribute(IConstants.XAML_X_CLASS,
-									IConstants.XWT_X_NAMESPACE);
-					if (classAttribute != null) {
-						String className = classAttribute.getValue();
-						className = expandNamespace(classAttribute, className);
-						targetObject = loadCLR(className, parameters,
-								metaclass.getType(), options);
-						hasClass = true;
-					} else {
-						Object clr = options.get(XWTLoader.CLASS_PROPERTY);
-						if (clr != null) {
-							loadData.setClr(clr);
-							hasClass = true;
-						}
-					}
-					if (!hasClass) {
-						XamlAttribute classFactoryAttribute = element
-								.getAttribute(IConstants.XWT_X_NAMESPACE,
-										IConstants.XAML_X_CLASS_FACTORY);
-						ICLRFactory clrFactory = (ICLRFactory) options
-								.get(XWTLoader.CLASS_FACTORY_PROPERTY);
-						if (classFactoryAttribute != null) {
-							Object clr = loadFactoryCLR(
-									classFactoryAttribute.getValue(),
-									clrFactory);
-							if (clr != null) {
-								loadData.setClr(clr);
-							}
-						} else {
-							if (clrFactory != null) {
-								loadData.setClr(clrFactory.createCLR(null,
-										options));
-							}
-						}
-					}
-
-					if (targetObject == null) {
-						targetObject = metaclass.newInstance(parameters);
-						invokeCreatededAction(element, targetObject);
-						Widget widget = UserData.getWidget(targetObject);
-						if (widget != null) {
-							Object clr = loadData.getClr();
-							if (clr != null) {
-								UserData.setCLR(widget, clr);
-							}
-						}
-					} else {
-						metaclass = loader.getMetaclass(targetObject);
-					}
-				}
-
-				if (targetObject == null) {
-					return null;
-				}
-			}
-		}
-		Widget widget = UserData.getWidget(targetObject);
-		if (widget != null) {
-			loadData.setCurrentWidget(targetObject);
-		}
-		if (scopedObject == null && widget != null) {
-			scopedObject = widget;
-			nameScoped = new ScopeKeeper((parent == null ? null
-					: UserData.findScopeKeeper((Widget) parent)), widget);
-			UserData.bindNameContext((Widget) widget, nameScoped);
-		}
-		// set first data context and resource dictionary
-		setDataContext(metaclass, targetObject, dico, dataContext);
-		if (bindingContext != null) {
-			setBindingContext(metaclass, targetObject, dico, bindingContext);
-		}
-
-		if (dataBindingTrack != null) {
-			dataBindingTrack.tracking(targetObject, element, dataContext);
-		}
-
-		// set parent relationship and viewer
-		if (targetObject instanceof Widget) {
-			if (parent != null) {
-				UserData.setParent(targetObject, parent);
-				((Widget) targetObject).setData(ELEMENT_KEY, element);
-			}
-		} else if (JFacesHelper.isViewer(targetObject)) {
-			UserData.setParent(targetObject, parent);
-			UserData.setViewer(targetObject, targetObject);
-			// Control control = JFacesHelper.getControl(targetObject);
-			// control.setData(ELEMENT_KEY, element);
-			((Viewer) targetObject).setData(ELEMENT_KEY, element);
-		} else if (targetObject instanceof TableItemProperty.Cell) {
-			((TableItemProperty.Cell) targetObject)
-					.setParent((TableItem) parent);
-		}
-		
-		applyStyles(element, targetObject);
-
-		Set<Entry<String, Object>> entrySet = options.entrySet();
-		for (Entry<String, Object> entry : entrySet) {
-			String key = entry.getKey();
-			if (IXWTLoader.Utilities.isPropertyName(key)) {
-				continue;
-			}
-			IProperty property = metaclass.findProperty(key);
-			if (property == null) {
-				throw new XWTException("Property " + key + " not found.");
-			}
-			property.setValue(targetObject, entry.getValue());
-		}
-
-		Map<String, IProperty> delayedAttributes = new HashMap<String, IProperty>();
-		init(metaclass, targetObject, element, delayedAttributes);
-		if (targetObject instanceof Style && childNodes.size() > 0) {
-			Collection<Setter> setters = new ArrayList<Setter>();
-			for (XamlNode doc : childNodes) {
-				Object child = doCreate(targetObject, (XamlElement) doc, null,
-						Collections.EMPTY_MAP);
-				if (!(child instanceof Setter)) {
-					throw new XWTException("Setter is expected in Style.");
-				}
-				setters.add((Setter) child);
-			}
-			((Style) targetObject).setSetters(setters
-					.toArray(new Setter[setters.size()]));
-		} else if (targetObject instanceof ControlEditor) {
-			for (XamlNode doc : childNodes) {
-				Object editor = doCreate(parent, (XamlElement) doc, null,
-						Collections.EMPTY_MAP);
-				if (editor != null && editor instanceof Control) {
-					((ControlEditor) targetObject).setEditor((Control) editor);
-					((Control) editor).setData(
-							PropertiesConstants.DATA_CONTROLEDITOR_OF_CONTROL,
-							targetObject);
-				}
-			}
-		} else if (targetObject instanceof IDataProvider) {
-			for (XamlNode doc : childNodes) {
-				if (IConstants.XWT_X_NAMESPACE.equals(doc.getNamespace())) {
-					String content = doc.getValue();
-					if (content != null) {
-						((IDataProvider) targetObject).setProperty(
-								doc.getName(), content);
-					}
-				}
-			}
-		} else {
-			for (XamlNode doc : childNodes) {
-				doCreate(targetObject, (XamlElement) doc, null,
-						Collections.EMPTY_MAP);
-			}
-		}
-
-		iniDelayedAttribute(metaclass, targetObject, element, null,
-				delayedAttributes);
-		postCreation(targetObject);
-		popStack();
-		return targetObject;
-	}
-
-	protected void iniDelayedAttribute(IMetaclass metaclass,
-			Object targetObject, XamlNode element, String namespace,
-			Map<String, IProperty> delayedAttributes) throws Exception {
-		Set<String> keys = delayedAttributes.keySet();
-		while (!keys.isEmpty()) {
-			for (String delayed : keys.toArray(new String[keys.size()])) {
-				IProperty property = delayedAttributes.get(delayed);
-				boolean hasDependency = false;
-				IProperty[] dependencies = property.getLoadingType()
-						.getDependencies();
-				if (dependencies.length > 0) {
-					for (IProperty dependency : dependencies) {
-						if (delayedAttributes.containsValue(dependency)) {
-							hasDependency = true;
-							break;
-						}
-					}
-				}
-				if (!hasDependency) {
-					initAttribute(metaclass, targetObject, element, null,
-							delayed);
-					keys.remove(delayed);
-				}
-			}
-		}
-	}
-
-	/**
-	 * This method is invoked directly after creation of component instance, but
-	 * before applying its attributes and creating children.
-	 * 
-	 * @param element
-	 *            the source element in XML.
-	 * @param targetObject
-	 *            the created visual object.
-	 */
-	protected void postCreation0(XamlElement element, Object targetObject) {
-	}
-
-	private void invokeCreatededAction(XamlElement element, Object targetObject) {
-		if (targetObject != null) {
-			postCreation0(element, targetObject);
-		}
-		if (options != null) {
-			ICreatedCallback createdAction = (ICreatedCallback) options
-					.get(IXWTLoader.CREATED_CALLBACK);
-			if (createdAction != null) {
-				createdAction.onCreated(targetObject);
-			}
-		}
-	}
-
-	/**
-	 * This method is invoked after full creation of component, i.e. after
-	 * creating its instance, applying its attributes and creating children.
-	 */
-	protected void postCreation(Object target) {
-	}
-
-	protected void setDataContext(IMetaclass metaclass, Object targetObject,
-			ResourceDictionary dico, Object dataContext)
-			throws IllegalAccessException, InvocationTargetException,
-			NoSuchFieldException {
-		Object control = null;
-		IMetaclass widgetMetaclass = metaclass;
-		if (JFacesHelper.isViewer(targetObject)) {
-			Widget widget = JFacesHelper.getControl(targetObject);
-			widgetMetaclass = loader.getMetaclass(widget.getClass());
-			control = targetObject;
-		} else if (targetObject instanceof Widget) {
-			control = targetObject;
-		} else {
-			control = loadData.getCurrentWidget();
-		}
-		if (control != null) {
-			if (targetObject instanceof IDynamicBinding) {
-				IDynamicBinding dynamicBinding = (IDynamicBinding) targetObject;
-				dynamicBinding.setControl(control);
-				dynamicBinding.setHost(loadData.getHost());
-			}
-			if (dico != null) {
-				UserData.setResources(control, dico);
-			}
-			if (dataContext != null) {
-				IProperty property = widgetMetaclass
-						.findProperty(IConstants.XAML_DATA_CONTEXT);
-				if (property != null) {
-					property.setValue(UserData.getWidget(control), dataContext);
-				} else {
-					throw new XWTException("DataContext is missing in "
-							+ widgetMetaclass.getType().getName());
-				}
-			}
-		}
-	}
-
-	protected void setBindingContext(IMetaclass metaclass, Object targetObject,
-			ResourceDictionary dico, Object bindingContext)
-			throws IllegalAccessException, InvocationTargetException,
-			NoSuchFieldException {
-		Object control = null;
-		IMetaclass widgetMetaclass = metaclass;
-		if (JFacesHelper.isViewer(targetObject)) {
-			Widget widget = JFacesHelper.getControl(targetObject);
-			widgetMetaclass = loader.getMetaclass(widget.getClass());
-			control = targetObject;
-		} else if (targetObject instanceof Widget) {
-			control = targetObject;
-		} else {
-			control = loadData.getCurrentWidget();
-		}
-		if (control != null) {
-			if (targetObject instanceof IDynamicBinding) {
-				IDynamicBinding dynamicBinding = (IDynamicBinding) targetObject;
-				dynamicBinding.setControl(control);
-				dynamicBinding.setHost(loadData.getHost());
-			}
-			if (dico != null) {
-				UserData.setResources(control, dico);
-			}
-			if (bindingContext != null) {
-				IProperty property = widgetMetaclass
-						.findProperty(IConstants.XAML_BINDING_CONTEXT);
-				if (property != null) {
-					property.setValue(UserData.getWidget(control),
-							bindingContext);
-				} else {
-					throw new XWTException("BindingContext is missing in "
-							+ widgetMetaclass.getType().getName());
-				}
-			}
-		}
-	}
-
-	protected void applyStyles(XamlElement element, Object targetObject)
-			throws Exception {
-		if (targetObject instanceof Widget) {
-			Widget widget = (Widget) targetObject;
-			Map<String, Object> dico = UserData.getLocalResources(widget);
-			XamlAttribute attribute = element
-					.getAttribute(IConstants.XAML_RESOURCES);
-			if (attribute == null) {
-				attribute = element.getAttribute(IConstants.XAML_RESOURCES,
-						IConstants.XWT_NAMESPACE);
-			}
-			if (attribute != null) {
-				if (attribute.getChildNodes().size() > 0) {
-					if (dico == null) {
-						dico = new ResourceDictionary();
-						UserData.setResources(widget, dico);
-					}
-
-					for (XamlNode doc : attribute.getChildNodes()) {
-						XamlElement elem = (XamlElement) doc;
-						Object doCreate = doCreate(widget, elem, null,
-								EMPTY_MAP);
-						XamlAttribute keyAttribute = elem.getAttribute(
-								IConstants.XAML_X_KEY,
-								IConstants.XWT_X_NAMESPACE);
-						if (keyAttribute == null) {
-							keyAttribute = elem.getAttribute(
-									IConstants.XAML_X_TYPE,
-									IConstants.XWT_X_NAMESPACE);
-						}
-						if (keyAttribute != null) {
-							dico.put(keyAttribute.getValue(), doCreate);
-						}
-						if (doCreate instanceof IStyle) {
-							IStyle style = (IStyle) doCreate;
-							loadData.addStyle(style);
-						}
-					}
-				}
-			}
-
-			// apply the styles defined in parent's resources via TargetType
-			Widget current = widget;
-			while (current != null) {
-				dico = UserData.getLocalResources(current);
-				if (dico != null) {
-					for (Object value : dico.values()) {
-						if (value instanceof Style) {
-							Style style = (Style) value;
-							Class<?> targetType = style.getTargetType();
-							if (targetType != null
-									&& targetType.isInstance(widget)) {
-								style.apply(targetObject);
-							}
-						}
-					}
-				}
-				current = UserData.getTreeParent(current);
-			}
-		}
-
-		for (IStyle style : loadData.getStyles()) {
-			style.applyStyle(targetObject);
-		}
-	}
-
-	protected int getColumnIndex(XamlElement columnElement) {
-		String name = columnElement.getName();
-		String namespace = columnElement.getNamespace();
-		IMetaclass metaclass = loader.getMetaclass(name, namespace);
-		int index = -1;
-		Class<?> type = metaclass.getType();
-		if (TableViewerColumn.class.isAssignableFrom(type)) {
-			XamlNode parent = (XamlNode) columnElement.eContainer();
-			List<XamlNode> children = NodesSorter.sortWithAttr(parent
-					.getChildNodes().toArray(new XamlNode[0]), "Index");
-			index = children.indexOf(columnElement);
-		}
-
-		return index;
-	}
-
-	/**
-	 * @param tableItem
-	 */
-	protected void installTableEditors(TableItem tableItem) {
-		Table table = tableItem.getParent();
-		TableColumn[] columns = table.getColumns();
-		if (columns == null || columns.length == 0) {
-			return;
-		}
-		for (TableColumn tableColumn : columns) {
-			Object data = tableColumn
-					.getData(PropertiesConstants.DATA_DEFINED_EDITOR);
-			if (data == null || !(data instanceof XamlElement)) {
-				continue;
-			}
-			int column = table.indexOf(tableColumn);
-			XamlElement editor = (XamlElement) data;
-			try {
-				TableEditor tableEditor = (TableEditor) doCreate(table, editor,
-						null, EMPTY_MAP);
-				if (tableEditor != null) {
-					tableEditor.setColumn(column);
-					tableEditor.setItem(tableItem);
-				}
-			} catch (Exception e) {
-				e.printStackTrace();
-				continue;
-			}
-		}
-	}
-
-	protected Object getDataContext(XamlElement element, Widget swtObject) {
-		// x:DataContext
-		try {
-			Object dataContext = loadData.getDataContext();
-			if (dataContext != null) {
-				return dataContext;
-			}
-			{
-				XamlAttribute dataContextAttribute = element.getAttribute(
-						IConstants.XAML_DATA_CONTEXT, IConstants.XWT_NAMESPACE);
-				if (dataContextAttribute != null) {
-					Widget composite = (Widget) swtObject;
-					XamlNode documentObject = dataContextAttribute
-							.getChildNodes().get(0);
-					if (IConstants.XAML_STATICRESOURCES.equals(documentObject
-							.getName())
-							|| IConstants.XAML_DYNAMICRESOURCES
-									.equals(documentObject.getName())) {
-						String key = documentObject.getValue();
-						dataContext = new StaticResourceBinding(composite, key);
-						loadData.setDataContext(dataContext);
-						return dataContext;
-					} else if (IConstants.XAML_BINDING.equals(documentObject
-							.getName())) {
-						dataContext = doCreate(swtObject,
-								(XamlElement) documentObject, null, EMPTY_MAP);
-						loadData.setDataContext(dataContext);
-						return dataContext;
-					} else {
-						LoggerManager.log(new UnsupportedOperationException(
-								documentObject.getName()));
-					}
-				}
-			}
-		} catch (Exception e) {
-			LoggerManager.log(e);
-		}
-
-		return null;
-	}
-
-	protected Object getBindingContext(XamlElement element, Widget swtObject) {
-		// x:DataContext
-		try {
-			{
-				XamlAttribute dataContextAttribute = element.getAttribute(
-						IConstants.XAML_BINDING_CONTEXT,
-						IConstants.XWT_NAMESPACE);
-				if (dataContextAttribute != null) {
-					Widget composite = (Widget) swtObject;
-					XamlNode documentObject = dataContextAttribute
-							.getChildNodes().get(0);
-					if (IConstants.XAML_STATICRESOURCES.equals(documentObject
-							.getName())
-							|| IConstants.XAML_DYNAMICRESOURCES
-									.equals(documentObject.getName())) {
-						String key = documentObject.getValue();
-						return new StaticResourceBinding(composite, key);
-					} else if (IConstants.XAML_BINDING.equals(documentObject
-							.getName())) {
-						return doCreate(swtObject,
-								(XamlElement) documentObject, null, EMPTY_MAP);
-					} else {
-						LoggerManager.log(new UnsupportedOperationException(
-								documentObject.getName()));
-					}
-				}
-			}
-		} catch (Exception e) {
-			LoggerManager.log(e);
-		}
-
-		return null;
-	}
-
-	protected void pushStack(Object host) {
-		loadData = new LoadingData(loadData, host);
-	}
-
-	protected void popStack() {
-		LoadingData previous = loadData;
-		loadData = previous.getParent();
-
-		previous.end();
-	}
-
-	protected Integer getStyleValue(XamlElement element, int styles) {
-		XamlAttribute attribute = element.getAttribute(IConstants.XAML_STYLE,
-				IConstants.XWT_X_NAMESPACE);
-		if (attribute == null) {
-			if (styles != -1) {
-				return styles;
-			}
-			return null;
-		}
-		if (styles == -1) {
-			return (Integer) loader.findConvertor(String.class, Integer.class)
-					.convert(attribute.getValue());
-		}
-		return styles
-				| (Integer) loader.findConvertor(String.class, Integer.class)
-						.convert(attribute.getValue());
-	}
-
-	protected void init(IMetaclass metaclass, Object targetObject,
-			XamlNode element, Map<String, IProperty> delayedAttributes)
-			throws Exception {
-		// editors for TableItem,
-		if (targetObject instanceof TableItem) {
-			installTableEditors((TableItem) targetObject);
-		}
-
-		// x:DataContext
-		if (loadData.getDataContext() == null) {
-			XamlAttribute dataContextAttribute = element
-					.getAttribute(IConstants.XAML_DATA_CONTEXT);
-			if (dataContextAttribute != null) {
-				IProperty property = metaclass
-						.findProperty(IConstants.XAML_DATA_CONTEXT);
-				Widget composite = (Widget) targetObject;
-				XamlNode documentObject = dataContextAttribute.getChildNodes()
-						.get(0);
-				if (IConstants.XAML_STATICRESOURCES.equals(documentObject
-						.getName())
-						|| IConstants.XAML_DYNAMICRESOURCES
-								.equals(documentObject.getName())) {
-					String key = documentObject.getValue();
-					property.setValue(composite, new StaticResourceBinding(
-							composite, key));
-				} else if (IConstants.XAML_BINDING.equals(documentObject
-						.getName())) {
-					Object object = doCreate(targetObject,
-							(XamlElement) documentObject, null, EMPTY_MAP);
-					property.setValue(composite, object);
-				} else {
-					LoggerManager.log(new UnsupportedOperationException(
-							documentObject.getName()));
-				}
-			}
-		}
-
-		HashSet<String> done = new HashSet<String>();
-
-		XamlAttribute nameAttr = element.getAttribute(IConstants.XAML_X_NAME);
-		if (nameAttr == null) {
-			nameAttr = element.getAttribute(IConstants.XAML_X_NAME,
-					IConstants.XWT_X_NAMESPACE);
-		}
-		if (nameAttr != null && UserData.getWidget(targetObject) != null) {
-			String value = nameAttr.getValue();
-			loadData.inject(targetObject, value);
-
-			nameScoped.addNamedObject(value, targetObject);
-			done.add(IConstants.XAML_X_NAME);
-		}
-
-		for (XamlAttribute attr : element.getAttributes()) {
-			String namespace = attr.getNamespace();
-			String attrName = attr.getName();
-
-			IProperty property = metaclass.findProperty(attrName);
-
-			//
-			// 1. handle foreigner namespace
-			//
-			if (!XWT.isXWTNamespace(namespace)) {
-				INamespaceHandler namespaceHandler = loader
-						.getNamespaceHandler(namespace);
-				if (namespaceHandler != null) {
-					Widget widget = UserData.getWidget(loadData
-							.getCurrentWidget());
-					namespaceHandler.handleAttribute(widget, targetObject,
-							attrName, attr.getValue());
-				}
-				continue;
-			}
-			//
-			// 2. handle 'x' namespace of xwt.
-			//
-			if (IConstants.XWT_X_NAMESPACE.equals(namespace)) {
-				if ("class".equalsIgnoreCase(attrName)
-						|| IConstants.XAML_STYLE.equalsIgnoreCase(attrName)) {
-					continue; // done before
-				} else if (IConstants.XAML_X_NAME.equalsIgnoreCase(attrName)) {
-					nameScoped.addNamedObject(
-							element.getAttribute(attrName, namespace)
-									.getValue(), targetObject);
-					done.add(attrName);
-				} else if (IConstants.XAML_DATA_CONTEXT
-						.equalsIgnoreCase(attrName)) {
-					continue; // done before
-				} else if (IConstants.XAML_X_ARRAY.equalsIgnoreCase(attrName)) {
-					Class<?> type = property.getType();
-					Object value = getArrayProperty(type, targetObject,
-							element, attrName);
-					if (value != null) {
-						property.setValue(targetObject, value);
-					}
-				} else if (IConstants.XAML_RESOURCES.equalsIgnoreCase(attrName)) {
-					continue;
-				} else {
-					if (!done.contains(attrName)) {
-						initAttribute(metaclass, targetObject, element,
-								namespace, attrName);
-						done.add(attrName);
-					}
-				}
-			}
-			//
-			// 3. handle delayed attributes.
-			//
-			else if (delayedAttributes != null
-					&& property != null
-					&& property.getLoadingType().getValueLoading() != IValueLoading.Normal) {
-				delayedAttributes.put(attrName, property);
-			}
-			//
-			// 4. handle others.
-			//
-			else {
-				if (!done.contains(attrName)) {
-					initAttribute(metaclass, targetObject, element, namespace,
-							attrName);
-					done.add(attrName);
-				}
-			}
-		}
-	}
-
-	protected Object getArrayProperty(Class<?> type, Object swtObject,
-			XamlNode node, String attrName) throws IllegalAccessException,
-			InvocationTargetException, NoSuchFieldException {
-		Class<?> arrayType = null;
-		if (type == Object.class) {
-			if (node instanceof XamlElement) {
-				XamlElement element = (XamlElement) node;
-				XamlAttribute attribute = element.getAttribute(IConstants.XWT_NAMESPACE, IConstants.XAML_X_TYPE);
-				if (attribute == null) {
-					throw new XWTException("The type attribute is missing in the element x:Array.");
-				}
-				String value = attribute.getValue();
-				IMetaclass metaclass = XWT.getMetaclass(value, attribute.getNamespace());
-				if (metaclass == null) {
-					throw new XWTException("The type \"" + value + "\" is not found.");					
-				}
-				arrayType = metaclass.getType();
-			}
-		}
-		else {
-			if (!type.isArray()) {
-				throw new XWTException("Type mismatch: property " + attrName
-						+ " isn't an array.");
-			}
-			arrayType = type.getComponentType();
-		}
-		
-		if (arrayType != null) {
-			List<Object> list = new ArrayList<Object>();
-			for (XamlElement childModel : node.getChildNodes()) {
-				Object child = createInstance(swtObject, childModel);
-				list.add(child);
-			}
-			Object[] array = (Object[]) Array.newInstance(arrayType,
-					list.size());
-			list.toArray(array);
-
-			for (int i = 0; i < array.length; i++) {
-				if (array[i] instanceof IIndexedElement) {
-					((IIndexedElement) array[i]).setIndex(swtObject, i);
-				}
-			}
-			return array;
-		}
-		return null;
-	}
-
-	@SuppressWarnings("unchecked")
-	protected Object getCollectionProperty(Class<?> type, Object swtObject,
-			XamlNode element, String attrName) throws IllegalAccessException,
-			InvocationTargetException, NoSuchFieldException {
-		Collection<Object> collector = null;
-		if (type.isInterface()) {
-			collector = new ArrayList<Object>();
-		} else {
-			if (Modifier.isAbstract(type.getModifiers())) {
-				LoggerManager.log(new XWTException("Collection "
-						+ type.getSimpleName() + " is abstract type"));
-			}
-			try {
-				collector = (Collection) type.newInstance();
-			} catch (InstantiationException e) {
-				LoggerManager.log(new XWTException(e));
-			}
-		}
-
-		for (XamlElement childModel : element.getChildNodes()) {
-			Object child = createInstance(swtObject, childModel);
-			collector.add(child);
-			if (child instanceof IIndexedElement) {
-				((IIndexedElement) child).setIndex(swtObject,
-						collector.size() - 1);
-			}
-		}
-		return collector;
-	}
-
-	protected String findPackageName(XamlNode context, String prefix) {
-		while (context != null && !(context instanceof XamlElement)) {
-			context = (XamlNode) context.eContainer();
-		}
-		if (context == null) {
-			return null;
-		}
-		XamlElement element = (XamlElement) context;
-
-		if (prefix != null) {
-			prefix = (prefix.length() == 0 ? null : prefix);
-		}
-
-		if (prefix == null) {
-			String namespace = element.getNamespace();
-			if (namespace != null) {
-				return namespace;
-			}
-		} else {
-			XamlDocument document = element.getOwnerDocument();
-			String value = document.getDeclaredNamespace(prefix);
-			if (value.startsWith(IConstants.XAML_CLR_NAMESPACE_PROTO)) {
-				return value.substring(IConstants.XAML_CLR_NAMESPACE_PROTO
-						.length());
-			}
-		}
-
-		XamlNode parent = (XamlNode) element.eContainer();
-		return findPackageName(parent, prefix);
-	}
-
-	protected Object createInstance(Object swtObject, XamlElement element) {
-		String name = element.getName();
-		String namespace = element.getNamespace();
-		if (IConstants.XWT_X_NAMESPACE.equalsIgnoreCase(namespace)
-				&& IConstants.XAML_X_NULL.equalsIgnoreCase(name)) {
-			return null;
-		}
-		try {
-			Class<?> type = NamespaceHelper.loadCLRClass(
-					loader.getLoadingContext(), name, namespace);
-			IMetaclass metaclass = loader.getMetaclass(name, namespace);
-			if (type == null) {
-				if (metaclass != null)
-					type = metaclass.getType();
-			}
-			// type = expected type;
-			// Need to support the
-			String content = element.getValue();
-			Object instance = null;
-			if (content == null) {
-				instance = metaclass.newInstance(new Object[] { swtObject });
-				invokeCreatededAction(element, instance);
-				if (instance instanceof TableEditor) {
-					// TODO should be moved into IMetaclass
-					TableEditor tableEditor = (TableEditor) instance;
-					if (swtObject instanceof TableItem) {
-						TableItem item = (TableItem) swtObject;
-						tableEditor.setItem(item);
-						for (XamlNode doc : element.getChildNodes()) {
-							Control control = (Control) doCreate(
-									((TableItem) swtObject).getParent(),
-									(XamlElement) doc, null, EMPTY_MAP);
-							tableEditor.setEditor(control);
-							int column = getColumnValue(element);
-							TableEditorHelper.initEditor(item, control, column);
-						}
-					}
-				}
-			} else {
-				Constructor<?> constructor = type.getConstructor(type);
-				if (constructor != null) {
-					instance = constructor.newInstance(loader.convertFrom(type,
-							content));
-					invokeCreatededAction(element, instance);
-				} else {
-					LoggerManager.log(new XWTException("Constructor \"" + name
-							+ "(" + type.getSimpleName() + ")\" is not found"));
-				}
-			}
-
-			Map<String, IProperty> delayedAttributes = new HashMap<String, IProperty>();
-			init(metaclass, instance, element, delayedAttributes);
-			iniDelayedAttribute(metaclass, instance, element, null,
-					delayedAttributes);
-
-			for (XamlElement doc : element.getChildNodes()) {
-				doCreate(instance, doc, null, Collections.EMPTY_MAP);
-			}
-			return instance;
-		} catch (Exception e) {
-			LoggerManager.log(e);
-		}
-		return null;
-	}
-
-	static protected int getColumnValue(XamlElement context) {
-		XamlAttribute attribute = context.getAttribute(COLUMN);
-		if (attribute != null) {
-			String content = attribute.getValue();
-			if (content != null) {
-				return Integer.parseInt(content);
-			}
-		}
-		return 0;
-	}
-
-	protected void loadShellCLR(String className, Shell shell) {
-		Class<?> type = XWTClassLoaderUtil.loadClass(
-				loader.getLoadingContext(), className);
-		if (type == null) {
-			return;
-		}
-		try {
-			Object instance = type.newInstance();
-			loadData.setClr(instance);
-			UserData.setCLR(shell, instance);
-		} catch (Exception e) {
-			LoggerManager.log(e);
-		}
-	}
-
-	protected Object loadFactoryCLR(String value, ICLRFactory factory) {
-		String token;
-		String arg;
-		if (value.startsWith("+")) {
-			if (factory == null) {
-				throw new XWTException("ICLRFactory option is missing.");
-			}
-			arg = value.substring(1);
-			return factory.createCLR(arg, options);
-		} else {
-			StringTokenizer stringTokenizer = new StringTokenizer(value);
-			if (!stringTokenizer.hasMoreTokens()) {
-				throw new XWTException("x:ClassFactory is empty");
-			}
-			token = stringTokenizer.nextToken();
-			arg = value.substring(token.length()).trim();
-		}
-		int index = token.lastIndexOf('.');
-		if (index != -1) {
-			String memberName = token.substring(index + 1);
-			String typeName = token.substring(0, index);
-			Class<?> type = ClassLoaderUtil.loadClass(
-					loader.getLoadingContext(), typeName);
-			if (type != null) {
-				Object member = ClassLoaderUtil.loadMember(
-						loader.getLoadingContext(), type, memberName, false);
-				if (member instanceof ICLRFactory) {
-					factory = (ICLRFactory) member;
-				}
-				if (factory != null) {
-					return factory.createCLR(arg, options);
-				}
-			}
-		}
-		Class<?> type = ClassLoaderUtil.loadClass(loader.getLoadingContext(),
-				token);
-		if (type != null && ICLRFactory.class.isAssignableFrom(type)) {
-			try {
-				ICLRFactory localFactory = (ICLRFactory) type.newInstance();
-				return localFactory.createCLR(arg, options);
-			} catch (Exception e) {
-				throw new XWTException(e);
-			}
-		}
-		throw new XWTException(value + " ClassFactory not found.");
-	}
-
-	protected Object loadCLR(String className, Object[] parameters,
-			Class<?> currentTagType, Map<String, Object> options) {
-		Class<?> type = XWTClassLoaderUtil.loadClass(
-				loader.getLoadingContext(), className);
-		if (type == null) {
-			return null;
-		}
-		try {
-			Object clr = options.get(XWTLoader.CLASS_PROPERTY);
-			if (clr != null && type != null && type.isInstance(clr)) {
-				loadData.setClr(clr);
-				if (clr instanceof Widget) {
-					UserData.setCLR((Widget) clr, clr);
-				}
-			} else if (currentTagType != null
-					&& currentTagType.isAssignableFrom(type)) {
-				IMetaclass metaclass = loader.getMetaclass(type);
-				Object instance = metaclass.newInstance(parameters);
-				loadData.setClr(instance);
-				// use x:Class's instance
-				if (instance instanceof Widget) {
-					UserData.setCLR((Widget) instance, instance);
-				}
-				return instance;
-			} else {
-				Object instance = type.newInstance();
-				loadData.setClr(instance);
-				if (instance instanceof Widget) {
-					UserData.setCLR((Widget) instance, instance);
-				}
-			}
-		} catch (Exception e) {
-			LoggerManager.log(e);
-		}
-		return null;
-	}
-
-	public void initAttribute(IMetaclass metaclass, Object targetObject,
-			XamlNode element, String namespace, String attrName)
-			throws Exception {
-		if (attrName.indexOf('.') != -1) {
-			String[] segments = attrName.split("\\.");
-			IMetaclass currentMetaclass = metaclass;
-			Object target = targetObject;
-			for (int i = 0; i < segments.length - 1; i++) {
-				IProperty property = currentMetaclass.findProperty(segments[i]);
-				if (property != null) {
-					target = property.getValue(target);
-					if (target == null) {
-						LoggerManager.log(new XWTException("Property \""
-								+ segments[i] + "\" is null."));
-					}
-					currentMetaclass = loader.getMetaclass(target);
-				} else {
-					LoggerManager.log(new XWTException("Property \""
-							+ segments[i] + "\" not found."));
-				}
-			}
-			initSegmentAttribute(currentMetaclass,
-					segments[segments.length - 1], target, element, namespace,
-					attrName);
-			return;
-		}
-		initSegmentAttribute(metaclass, attrName, targetObject, element,
-				namespace, attrName);
-	}
-
-	protected void addCommandExecuteListener(String commandName,
-			final Widget targetButton) {
-		final ICommand commandObj = loader.getCommand(commandName);
-		if (commandObj != null) {
-			targetButton.addListener(SWT.Selection, new Listener() {
-				public void handleEvent(Event event) {
-					commandObj.execute(targetButton);
-				}
-			});
-		}
-	}
-
-	protected void initSegmentAttribute(IMetaclass metaclass,
-			String propertyName, Object target, XamlNode element,
-			String namespace, String attrName) throws Exception {
-		XamlAttribute attribute = element.getAttribute(attrName, namespace);
-		if (attribute == null) {
-			attribute = element.getAttribute(attrName);
-		}
-		IProperty property = null;
-		boolean isAttached = false;
-		{
-			String groupName = attribute.getGroupName();
-			if (groupName == null) {
-				property = metaclass.findProperty(propertyName);
-			} else {
-				//
-				if (groupName.length() > 1) {
-					groupName = Character.toUpperCase(groupName.charAt(0))
-							+ groupName.substring(1);
-				}
-				IMetaclass metaclassAttached = loader.getMetaclass(groupName,
-						attribute.getNamespace());
-				if (metaclassAttached != null) {
-					property = metaclassAttached.findProperty(propertyName);
-					isAttached = true;
-				} else {
-					LoggerManager.log(attribute.getNamespace() + " -> "
-							+ groupName + " is not found.");
-					return;
-				}
-			}
-		}
-		if (propertyName.equals(IConstants.XAML_DATA_CONTEXT)) {
-			property = null;
-		}
-		if (IConstants.XAML_COMMAND.equalsIgnoreCase(propertyName)
-				&& ICommand.class.isAssignableFrom(property.getType())
-				&& (target instanceof Widget)) {
-			addCommandExecuteListener(attribute.getValue(), (Widget) target);
-		}
-		if (property == null) {
-			IEvent event = metaclass.findEvent(attrName);
-			if (event == null) {
-				return;
-			}
-			// add events for controls and items.
-			if (!(target instanceof Widget)) {
-				return;
-			}
-			loadData.updateEvent((Widget) target, event, attribute.getValue());
-			return;
-		}
-
-		try {
-			String contentValue = attribute.getValue();
-			if ("MenuItem".equalsIgnoreCase(element.getName())
-					&& "Text".equalsIgnoreCase(attrName)) {
-				XamlAttribute attributeAccelerator = element
-						.getAttribute("Accelerator");
-				if (attributeAccelerator != null) {
-					contentValue = contentValue + '\t'
-							+ getContentValue(attributeAccelerator.getValue());
-				}
-			}
-
-			if (contentValue != null
-					&& "Accelerator".equalsIgnoreCase(attrName)) {
-				contentValue = XWTMaps.getCombAccelerator(contentValue);
-				if (contentValue.contains("'")) {
-					contentValue = removeSubString(contentValue, "'");
-				}
-			}
-			if (contentValue != null
-					&& loader.isFileResolveType(property.getType())) {
-				contentValue = getImagePath(contentValue);
-			}
-			// if (contentValue != null
-			// && (URL.class.isAssignableFrom(property.getType()))) {
-			// contentValue = getSourceURL(contentValue);
-			// }
-			Object value = null;
-			XamlNode[] children = attribute.getChildNodes().toArray(
-					new XamlNode[0]);
-			boolean usingExistingValue = false;
-			if (contentValue == null) {
-				Class<?> type = property.getType();
-				if (Collection.class.isAssignableFrom(type)) {
-					value = getCollectionProperty(type, target, attribute,
-							attrName);
-				} else {
-					Object directTarget = null;
-					if (TableViewerColumn.class.isAssignableFrom(type)
-							&& attrName.equalsIgnoreCase("columns")) {
-						children = NodesSorter.sortWithAttr(children, "Index")
-								.toArray(new XamlNode[children.length]);
-					} else {
-						try {
-							Object propertyValue = property.getValue(target);
-							if (UserData.getWidget(propertyValue) != null) {
-								directTarget = propertyValue;
-								// use the existing property value as parent,
-								// not need to add the constraint
-								if (!property.isValueAsParent()) {
-									if (isChildTypeCompatible(attribute, type)) {
-										directTarget = null;
-									}
-									else {
-										type = null;
-										usingExistingValue = true;									
-									}
-								}
-							}
-						} catch (Exception e) {
-						}
-					}
-					if (directTarget == null) {
-						directTarget = target;
-					}
-
-					for (XamlNode child : children) {
-						String name = child.getName();
-						String ns = child.getNamespace();
-						if (IConstants.XAML_X_STATIC.equalsIgnoreCase(name)
-								&& IConstants.XWT_X_NAMESPACE.equals(ns)) {
-							value = getStaticValue(child);
-						} else if (IConstants.XAML_STATICRESOURCES
-								.equalsIgnoreCase(name)
-								&& IConstants.XWT_NAMESPACE.equals(ns)) {
-							String key = child.getValue();
-							value = new StaticResourceBinding(
-									loadData.getCurrentWidget(), key);
-						} else if ((IConstants.XWT_X_NAMESPACE.equals(ns) && IConstants.XAML_X_ARRAY
-								.equalsIgnoreCase(name))) {
-							value = getArrayProperty(property.getType(),
-									directTarget, child, name);
-						} else if (property.getType().isArray()) {
-							value = getArrayProperty(property.getType(),
-									directTarget, attribute, name);
-							break;
-						} else if (isAssignableFrom(element, TableColumn.class)
-								&& isAssignableFrom(child, TableEditor.class)) {
-							value = child;
-						} else if (TableViewerColumn.class
-								.isAssignableFrom(property.getType())
-								&& attribute.getValue() != null) {
-							value = attribute.getValue();
-						} else {
-							if ("Null".equals(child.getName())
-									&& IConstants.XWT_X_NAMESPACE.equals(child
-											.getNamespace())) {
-								property.setValue(directTarget, null);
-								return;
-							} else {
-								value = doCreate(directTarget,
-										(XamlElement) child, type, EMPTY_MAP);
-								if (value == null
-										&& type != null
-										&& !(type == Table.class
-												&& "TableColumn".equals(child
-														.getName()) && Table.class
-												.isInstance(directTarget))) {
-									throw new XWTException(child.getName()
-											+ " cannot be a content of "
-											+ type.getName() + " "
-											+ target.getClass().getName() + "."
-											+ property.getName());
-								}
-								if (value instanceof IDynamicBinding) {
-									((IDynamicBinding) value).setType(attrName);
-								}
-							}
-						}
-					}
-				}
-			}
-			if (contentValue != null && value == null
-					&& !IConstants.XAML_COMMAND.equalsIgnoreCase(propertyName)) {
-				if (property.getType().isInstance(Class.class)) {
-					contentValue = expandNamespace(attribute, contentValue);
-				}
-				value = loader.convertFrom(property.getType(), contentValue);
-			}
-			if (!usingExistingValue) {
-				if (value != null) {
-					Class<?> propertyType = property.getType();
-					if (!propertyType.isAssignableFrom(value.getClass())
-							|| value instanceof IBinding) {
-						Object orginalValue = value;
-						IConverter converter = loader.findConvertor(
-								value.getClass(), propertyType);
-						if (converter != null) {
-							value = converter.convert(value);
-							if (value != null
-									&& orginalValue instanceof IBinding
-									&& !propertyType.isAssignableFrom(value
-											.getClass())) {
-								converter = loader.findConvertor(
-										value.getClass(), propertyType);
-								if (converter != null) {
-									value = converter.convert(value);
-								} else {
-									LoggerManager.log(new XWTException(
-											"Convertor "
-													+ value.getClass()
-															.getSimpleName()
-													+ "->"
-													+ propertyType
-															.getSimpleName()
-													+ " is not found"));
-								}
-							}
-						} else {
-							LoggerManager.log(new XWTException("Convertor "
-									+ value.getClass().getSimpleName() + "->"
-									+ propertyType.getSimpleName()
-									+ " is not found"));
-						}
-					}
-					if (isAttached) {
-						UserData.setLocalData(target, property, value);
-					} else {
-						if (value instanceof IDynamicValueBinding) {
-							IDynamicValueBinding dynamicValueBinding = (IDynamicValueBinding) value;
-							dynamicValueBinding.setControl(loadData
-									.findElement(Widget.class));
-							dynamicValueBinding.setProperty(property);
-							dynamicValueBinding.setObject(target);
-						}
-						property.setValue(target, value);
-					}
-				} else {
-					if (value == null) {
-						value = property.getValue(target);
-					}
-					if (value != null) {
-						// create children.
-						for (XamlNode child : children) {
-							String name = child.getName();
-							String ns = child.getNamespace();
-							if (!IConstants.XWT_X_NAMESPACE.equals(ns)
-									|| !IConstants.XAML_X_ARRAY
-											.equalsIgnoreCase(name)) {
-								Class<?> type = property.getType();
-								if (!Collection.class.isAssignableFrom(type)) {
-									doCreate(value, (XamlElement) child, null,
-											EMPTY_MAP);
-								}
-							}
-						}
-					}
-				}
-			}
-
-			if (attribute.attributeNames(IConstants.XWT_NAMESPACE).size() > 0) {
-				IMetaclass propertyMetaclass = loader.getMetaclass(property
-						.getType());
-				if (value == null) {
-					value = property.getValue(target);
-				}
-				if (value != null) {
-					Map<String, IProperty> delayedAttributes = new HashMap<String, IProperty>();
-					init(propertyMetaclass, value, attribute, delayedAttributes);
-					iniDelayedAttribute(metaclass, target, element, null,
-							delayedAttributes);
-				}
-			}
-		} catch (Exception e) {
-			if (e instanceof RuntimeException) {
-				RuntimeException exception = (RuntimeException) e;
-				throw exception;
-			}
-			throw new XWTException(e);
-		}
-	}
-
-	protected boolean isChildTypeCompatible(XamlAttribute attribute, Class<?> type) {
-		EList<XamlElement> children = attribute.getChildNodes();
-		if (children.size() != 1) {
-			return false;
-		}
-		XamlElement child = children.get(0);
-		String name = child.getName();
-		String namespace = child.getNamespace();
-		IMetaclass metaclass = loader.getMetaclass(name, namespace);
-		if (metaclass == null) {
-			return false;
-		}
-		return type.isAssignableFrom(metaclass.getType());
-	}
-	
-	/**
-	 * @param contentValue
-	 * @return
-	 */
-	protected String getSourceURL(String contentValue) {
-		URL url = null;
-		try {
-			url = new URL(contentValue);
-		} catch (MalformedURLException e) {
-			if (!contentValue.startsWith("/")) {
-				contentValue = "/" + contentValue;
-			}
-			ILoadingContext loadingContext = loader.getLoadingContext();
-			URL resource = loadingContext.getResource(contentValue);
-			if (resource == null) {
-				// try {
-				// resource = new URL(context.getResourcePath() + contentValue);
-				// } catch (MalformedURLException e1) {
-				// }
-			}
-			return resource.toString();
-		}
-		if (url != null) {
-			return url.toString();
-		}
-		return contentValue;
-	}
-
-	protected Class<?> getJavaType(XamlNode element) {
-		if (!(element instanceof XamlElement)) {
-			return null;
-		}
-		String name = element.getName();
-		String namespace = element.getNamespace();
-		if (IConstants.XWT_X_NAMESPACE.equalsIgnoreCase(namespace)
-				&& IConstants.XAML_X_NULL.equalsIgnoreCase(name)) {
-			return null;
-		}
-		IMetaclass metaclass = loader.getMetaclass(name, namespace);
-		if (metaclass == null) {
-			return null;
-		}
-		return metaclass.getType();
-	}
-
-	protected boolean isAssignableFrom(XamlNode element, Class<?> type) {
-		Class<?> targetType = getJavaType(element);
-		if (targetType == null) {
-			return false;
-		}
-		return targetType.isAssignableFrom(type);
-	}
-
-	protected Object getStaticValue(XamlNode child) {
-		XamlNode[] children = child.getChildNodes().toArray(new XamlNode[0]);
-		if (children.length == 1) {
-			XamlElement element = (XamlElement) children[0];
-			if (element != null) {
-				return XWTClassLoaderUtil.loadStaticMember(
-						loader.getLoadingContext(), element);
-			}
-		}
-		return null;
-	}
-
-	protected String getImagePath(String contentValue) {
-		try {
-			File file = new File(contentValue);
-			if (file.exists()) {
-				return file.toURI().toURL().toString();
-			}
-			if (!contentValue.startsWith("/")) {
-				contentValue = "/" + contentValue;
-			}
-			ILoadingContext loadingContext = loader.getLoadingContext();
-			URL resource = loadingContext.getResource(contentValue);
-			if (resource == null) {
-				URL resourcePath = loader.getResourcePath();
-				String fPath = resourcePath.getFile();
-				String absolutePath = PathHelper.getAbsolutePath(fPath,
-						contentValue);
-				if ((file = new File(absolutePath)).exists()) {
-					return file.toURI().toURL().toString();
-				}
-				resource = new URL(absolutePath);
-			}
-			return resource.toString();
-		} catch (MalformedURLException e) {
-			return contentValue;
-		}
-	}
-
-	protected String removeSubString(String str, String subString) {
-		StringBuffer stringBuffer = new StringBuffer();
-		int lenOfsource = str.length();
-		int i;
-		int posStart;
-		for (posStart = 0; (i = str.indexOf(subString, posStart)) >= 0; posStart = i
-				+ subString.length()) {
-			stringBuffer.append(str.substring(posStart, i));
-		}
-		if (posStart < lenOfsource) {
-			stringBuffer.append(str.substring(posStart));
-		}
-		return stringBuffer.toString();
-	}
-
-	protected String getContentValue(String text) {
-		StringBuffer stringBuffer = new StringBuffer();
-		String subString = "SWT.";
-		String str = XWTMaps.getCombAccelerator(text);
-
-		if (str.contains(subString)) {
-			str = removeSubString(str, subString);
-		}
-		if (str.contains("'")) {
-			str = removeSubString(str, "'");
-		}
-		if (str.contains(" ")) {
-			str = removeSubString(str, " ");
-		}
-		if (str.contains("|")) {
-			str = str.replace('|', '+');
-		}
-		stringBuffer.append(str);
-		return stringBuffer.toString();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/XWTClassLoaderUtil.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/XWTClassLoaderUtil.java
deleted file mode 100755
index 223b094..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/XWTClassLoaderUtil.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.loader;
-
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.ILoadingContext;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-public class XWTClassLoaderUtil extends org.eclipse.xwt.internal.utils.ClassLoaderUtil {
-
-	static public Object loadStaticMember(ILoadingContext loadingContext, XamlNode element) {
-		String name = element.getName();
-		String namespace = element.getNamespace();
-		Object value = doLoadMember(loadingContext, name, namespace);
-		if (value != null) {
-			return value;
-		}
-		String content = element.getValue();
-		if (content == null) {
-			XamlNode member = element.getAttribute(IConstants.XWT_NAMESPACE, IConstants.XAML_X_STATIC_MEMBER);
-			if (member == null) {
-				member = element;
-			}
-			if (member != null) {
-				content = member.getValue();
-				if (content == null) {
-					for (XamlNode documentObject : member.getChildNodes()) {
-						String ns = documentObject.getNamespace();
-						String n = documentObject.getName();
-						return doLoadMember(loadingContext, n, ns);
-					}
-				}
-			}
-		} else {
-			if (IConstants.XAML_X_STATIC.equals(name) && IConstants.XWT_X_NAMESPACE.equals(namespace)) {
-				namespace = IConstants.XWT_NAMESPACE;
-				return doLoadMember(loadingContext, content, namespace);
-			}
-		}
-		// TODO
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/XWTProxy.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/XWTProxy.java
deleted file mode 100755
index dcc947a..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/XWTProxy.java
+++ /dev/null
@@ -1,548 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.loader;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.IXWTLoader;
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.XWTLoaderManager;
-import org.eclipse.xwt.internal.utils.UserData;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.xwt.metadata.IProperty;
-import org.eclipse.xwt.metadata.ModelUtils;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.CoolBar;
-import org.eclipse.swt.widgets.Decorations;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.tools.ui.designer.core.util.swt.SWTTools;
-import org.eclipse.xwt.tools.ui.designer.swt.CoolBarHelper;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTModelUtil;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class XWTProxy {
-
-	public static final Point DEFAULT_SIZE = new Point(200, 100);
-
-	private final ResourceVisitor resourceVisitor;
-	private Shell device;
-
-	private Map<XamlNode, Object> componentsMap = new HashMap<XamlNode, Object>();
-
-	private Object rootComponent = null;
-	private Map<String, Object> options;
-
-	public XWTProxy(IFile file) {
-		// Register XWTVisualLoader when the designer is initialized, so we can
-		// share to use this Loader.
-		IXWTLoader xwtLoader = XWTLoaderManager.getActive();
-		if (xwtLoader == null || !(xwtLoader instanceof XWTVisualLoader)) {
-			xwtLoader = new XWTVisualLoader(file);
-			XWTLoaderManager.setActive(xwtLoader, true);
-		}
-		resourceVisitor = new ResourceVisitor((XWTVisualLoader) xwtLoader);
-		options = new HashMap<String, Object>();
-		options.put(IXWTLoader.DESIGN_MODE_PROPERTY, Boolean.TRUE);
-	}
-
-	public Object load(XamlElement node, Map<String, Object> options) {
-		Object result = resourceVisitor.createCLRElement(node, options);
-		if (result instanceof Widget) {
-			buildComponentMap((Widget) result);
-		}
-		return result;
-	}
-
-	public Object load(XamlDocument document) {
-		if (document == null) {
-			return null;
-		}
-		XamlElement element = document.getRootElement();
-		if (element == null) {
-			return null;
-		}
-		if (device == null || device.isDisposed()) {
-			device = new Shell(SWT.NO_TRIM);
-		}
-		device.setSize(0, 0);
-		componentsMap.clear();
-		if (!"shell".equalsIgnoreCase(element.getName())) {
-			Shell shell = new Shell(device);
-			Point offset = SWTTools.getOffset(shell);
-			shell.setLocation(-offset.x, -offset.y);
-			shell.setSize(DEFAULT_SIZE);
-			options.put(IXWTLoader.CONTAINER_PROPERTY, shell);
-		} else {
-			options.put(IXWTLoader.CONTAINER_PROPERTY, device);
-		}
-		rootComponent = load(element, options);
-		if (rootComponent == null) {
-			return null;
-		}
-		Control control = null;
-		if (rootComponent instanceof Shell) {
-			Shell shell = (Shell) rootComponent;
-			// 1.location
-			XamlAttribute bounds = element.getAttribute("bounds");
-			XamlAttribute location = element.getAttribute("location");
-			if (bounds == null && location == null) {
-				shell.setLocation(0, 0);
-			}
-		}
-		if (rootComponent instanceof Control) {
-			control = (Control) rootComponent;
-			layout(control);
-		} else if (rootComponent instanceof Viewer) {
-			control = ((Viewer) rootComponent).getControl();
-		}
-		layout(control);
-		// control.getShell().open();
-		device.open();
-		device.setVisible(false);
-		buildComponentMap(rootComponent);
-		return rootComponent;
-	}
-
-	public void layout(Control control) {
-		if (control == null || control.isDisposed() || control == device) {
-			return;
-		}
-		if (control instanceof Composite) {
-			Composite composite = (Composite) control;
-			Layout layout = composite.getLayout();
-			if (layout != null) {
-				composite.layout(true, true);
-			} /*
-			 * else { control.pack(); }
-			 */
-			Control[] childs = composite.getChildren();
-			for (int i = 0; i < childs.length; i++) {
-				if (childs[i] instanceof CoolBar)
-					CoolBarHelper.layout((CoolBar) childs[i]);
-			}
-		}
-		if (control instanceof CoolBar) {
-			CoolBarHelper.layout((CoolBar) control);
-		}
-		if (control == rootComponent && autoSize(getModel(control))) {
-			Point size = control.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-			if (control instanceof Composite) {
-				Composite composite = (Composite) control;
-				if (composite.getChildren().length == 0) {
-					size.x = Math.max(size.x, DEFAULT_SIZE.x);
-					size.y = Math.max(size.y, DEFAULT_SIZE.y);
-				}
-			}
-			control.setSize(size);
-
-			if (control instanceof Composite) {
-
-				((Composite) control).layout();
-
-			}
-		}
-		layout(control.getParent());
-	}
-
-	public Object getRoot() {
-		return rootComponent;
-	}
-
-	protected boolean autoSize(XamlNode xamlNode) {
-		if (xamlNode == null) {
-			return false;
-		}
-		XamlAttribute bounds = xamlNode.getAttribute("bounds");
-		if (bounds == null) {
-			bounds = xamlNode.getAttribute("bounds", IConstants.XWT_NAMESPACE);
-		}
-		XamlAttribute size = xamlNode.getAttribute("size");
-		if (size == null) {
-			size = xamlNode.getAttribute("size", IConstants.XWT_NAMESPACE);
-		}
-		return bounds == null && size == null;
-	}
-
-	public boolean shouldPack(XamlElement element) {
-		return autoSize(element) && !element.getChildNodes().isEmpty();
-	}
-
-	public Object createWidget(Object parent, XamlElement node) {
-		Map<String, Object> options = new HashMap<String, Object>();
-		options.put(IXWTLoader.CONTAINER_PROPERTY, parent);
-		return load(node, options);
-	}
-
-	// public void orderParent(Widget widget) {
-	// Widget parent = null;
-	// if (widget instanceof Control) {
-	// parent = ((Control) widget).getParent();
-	// } else if (widget instanceof Item) {
-	// try {
-	// Method getParentMethod = widget.getClass().getDeclaredMethod("getParent",
-	// new Class<?>[0]);
-	// Object obj = getParentMethod.invoke(widget, new Object[0]);
-	// if (obj != null && obj instanceof Widget) {
-	// parent = (Widget) obj;
-	// }
-	// } catch (Exception e) {
-	// }
-	// }
-	// if (parent != null) {
-	// WidgetOrder.order(parent);
-	// }
-	// }
-
-	public Object getComponent(EObject node) {
-		return componentsMap.get(node);
-	}
-
-	public Object getComponent(EObject node, boolean loadOnDemand) {
-		Object component = getComponent(node);
-		if (!loadOnDemand) {
-			return component;
-		} else if (isNull(component)) {
-			EObject container = node.eContainer();
-			while (container != null && !(container instanceof XamlElement)) {
-				container = container.eContainer();
-			}
-			if (container != null) {
-				Object parentComponent = getComponent(container, loadOnDemand);
-				if (!isNull(parentComponent)) {
-					component = createWidget(parentComponent,
-							(XamlElement) node);
-				}
-			}
-		}
-		return component;
-	}
-
-	public boolean isNull(Object component) {
-		if (component == null) {
-			return true;
-		} else if (component instanceof Widget) {
-			return ((Widget) component).isDisposed();
-		} else if (component instanceof Viewer) {
-			return ((Viewer) component).getControl() == null
-					|| ((Viewer) component).getControl().isDisposed();
-		}
-		return false;
-	}
-
-	private void buildComponentMap(Object component) {
-		if (component == null) {
-			return;
-		}
-		XamlNode key = null;
-		Widget widget = null;
-		if (component instanceof Viewer) {
-			widget = ((Viewer) component).getControl();
-			key = (XamlNode) ((Viewer) component)
-					.getData(ResourceVisitor.ELEMENT_KEY);
-			if (key != null) {
-				componentsMap.put(key, component);
-				key = XWTModelUtil.getAdaptableAttribute(key, "control",
-						IConstants.XWT_NAMESPACE);
-			}
-		} else if (component instanceof Widget) {
-			widget = (Widget) component;
-			key = (XamlNode) widget.getData(ResourceVisitor.ELEMENT_KEY);
-		}
-		if (key != null) {
-			componentsMap.put(key, widget);
-		}
-		if (widget != null && !widget.isDisposed()) {
-			Widget[] children = SWTTools.getChildren(widget);
-			for (Widget child : children) {
-				Object viewer = UserData.getLocalViewer(child);
-				if (viewer != null) {
-					buildComponentMap(viewer);
-				} else {
-					buildComponentMap(child);
-				}
-			}
-		}
-	}
-
-	public Object doCreate(XamlElement element) {
-		try {
-			return resourceVisitor.doCreate(null, element, null,
-					Collections.EMPTY_MAP);
-		} catch (Exception e) {
-			return null;
-		}
-	}
-
-	/**
-	 * @param attrValue
-	 * @return
-	 */
-	public static Object createValue(XamlElement element) {
-		return new XWTProxy(null).doCreate(element);
-	}
-
-	public boolean isDisposed() {
-		return device == null || device.isDisposed();
-	}
-
-	public boolean reset() {
-		return dispose();
-	}
-
-	public boolean dispose() {
-		return destroy(rootComponent) && destroy(device);
-	}
-
-	public boolean destroy(Object component) {
-		if (component == null) {
-			return false;
-		} else if (component instanceof Widget) {
-			Widget widget = (Widget) component;
-			XamlNode model = getModel(widget);
-			if (model != null) {
-				componentsMap.remove(model);
-			}
-			if (widget instanceof Menu) {
-				Decorations parent = ((Menu) widget).getParent();
-				if (parent instanceof Shell) {
-					Menu menuBar = ((Shell) parent).getMenuBar();
-					if (menuBar == widget) {
-						((Shell) parent).setMenuBar(null);
-					}
-				}
-			}
-			widget.dispose();
-		} else if (component instanceof Viewer) {
-			destroy(((Viewer) component).getControl());
-		}
-		component = null;
-		return true;
-	}
-
-	/**
-	 * This method only deal with general attribute. The style attribute is not
-	 * its duty.
-	 * 
-	 * @param object
-	 * @param attribute
-	 */
-	public boolean removeValue(Object object, XamlAttribute attribute) {
-		// TODO: At present, only the properties of a Widget Object can be
-		// removed(replaced with a default one). We should take care of JFace
-		// Viewers.
-		if (!(object instanceof Widget) && "style".equals(attribute.getName())) {
-			return false;
-		}
-		IMetaclass metaclass = XWT.getMetaclass(object);
-		if (metaclass == null) {
-			return false;
-		}
-		Object defaultValue = getDefaultValue(object, attribute);
-		try {
-			String name = ModelUtils.normalizePropertyName(attribute.getName());
-			IProperty property = metaclass.findProperty(name);
-			if (property != null) {
-				property.setValue(object, defaultValue);
-				return true;
-			}
-		} catch (Exception e) {
-		}
-		return false;
-	}
-
-	public Object getDefaultValue(Object object, XamlAttribute attribute) {
-		if (object == null || attribute == null || attribute.getName() == null) {
-			return null;
-		}
-		// we need to handle this case manually since the shell is never open.
-		// all widgets are not visible
-		String name = attribute.getName();
-		if (object instanceof Widget && "visible".equalsIgnoreCase(name)
-				&& IConstants.XWT_NAMESPACE.endsWith(attribute.getNamespace())) {
-			return true;
-		}
-		XamlNode model = null;
-		if (object instanceof Widget) {
-			model = getModel((Widget) object);
-		}
-		if (model == null) {
-			EObject container = attribute.eContainer();
-			if (container instanceof XamlElement) {
-				model = (XamlElement) container;
-			}
-		}
-		if (model == null) {
-			return null;
-		}
-		XamlElement newModel = (XamlElement) EcoreUtil.copy(model);
-		IMetaclass metaclass = XWTUtility.getMetaclass(newModel);
-		if (metaclass == null
-				|| !Control.class.isAssignableFrom(metaclass.getType())) {
-			return null;
-		}
-		Shell shell = new Shell(device);
-		Object tempObj = createWidget(shell, (XamlElement) EcoreUtil
-				.copy(model));
-		if (tempObj == null || !(tempObj instanceof Widget)) {
-			return false;
-		}
-		try {
-			if ("style".equalsIgnoreCase(name)
-					&& IConstants.XWT_X_NAMESPACE.endsWith(attribute
-							.getNamespace())) {
-				return ((Widget) tempObj).getStyle();
-			}
-			IProperty p = metaclass.findProperty(name);
-			if (p != null) {
-				return p.getValue(tempObj);
-			}
-		} catch (Exception e) {
-		} finally {
-			destroy(tempObj);
-			destroy(shell);
-		}
-		return null;
-	}
-
-	public boolean initAttribute(Object component, XamlAttribute attribute) {
-		try {
-			XamlElement container = (XamlElement) attribute.eContainer();
-			IMetaclass metaclass = XWTUtility.getMetaclass(container);
-			String attrName = attribute.getName();
-			String namespace = attribute.getNamespace();
-			if (container != null && metaclass != null && attrName != null) {
-				resourceVisitor.initAttribute(metaclass, component, container,
-						namespace, attrName);
-				buildComponentMap(component);
-				return true;
-			}
-		} catch (Exception e) {
-		}
-		return false;
-	}
-
-	/**
-	 * @return
-	 */
-	public String getClr() {
-		if (rootComponent == null) {
-			return null;
-		}
-		Widget widget = null;
-		if (rootComponent instanceof Widget) {
-			widget = (Widget) rootComponent;
-		} else if (rootComponent instanceof Viewer) {
-			widget = ((Viewer) rootComponent).getControl();
-		}
-		if (widget != null && !widget.isDisposed()) {
-			Object clr = UserData.getCLR(widget);
-			if (clr != null) {
-				return clr.getClass().getName();
-			}
-		}
-		return null;
-	}
-
-	public static XamlNode getModel(Object component) {
-		if (component == null) {
-			return null;
-		}
-		if (component instanceof Widget && !((Widget) component).isDisposed()) {
-			return (XamlNode) ((Widget) component)
-					.getData(ResourceVisitor.ELEMENT_KEY);
-		} else if (component instanceof Viewer) {
-			return (XamlNode) ((Viewer) component)
-					.getData(ResourceVisitor.ELEMENT_KEY);
-		}
-		return null;
-	}
-
-	public boolean removeLayout(Composite composite) {
-		if (composite == null || composite.isDisposed()) {
-			return false;
-		}
-		composite.setLayout(null);
-		for (Control control : composite.getChildren()) {
-			control.setLayoutData(null);
-		}
-		return true;
-	}
-
-	public boolean recreate(Widget widget) {
-		// cache runtime properties
-		XamlNode model = null;
-		if (widget != null && !widget.isDisposed()) {
-			model = getModel(widget);
-		}
-
-		if (model == null) {
-			return false;
-		}
-
-		// in case of SashFrom 
-		if (widget instanceof Control) {
-			Control control = (Control) widget;
-			Composite composite = control.getParent();
-			if (composite instanceof SashForm) {
-				
-			}
-		}
-	
-		// reload
-		destroy(rootComponent);
-		componentsMap.clear();
-		load(model.getOwnerDocument());
-
-		// try to restore some runtime properties.
-		if (model != null) {
-			widget = (Widget) componentsMap.get(model);
-			if (widget instanceof TabItem) {
-				TabItem tabItem = (TabItem) widget;
-				tabItem.getParent().setSelection(tabItem);
-			} else if (widget instanceof Control) {
-				Composite parent = ((Control) widget).getParent();
-				if (parent instanceof TabFolder) {
-					TabFolder tabFolder = (TabFolder) parent;
-					for (TabItem item : tabFolder.getItems()) {
-						if (item.getControl() == widget) {
-							tabFolder.setSelection(item);
-							break;
-						}
-					}
-				}
-			}
-		}
-		return widget != null && !widget.isDisposed();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/XWTVisualLoader.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/XWTVisualLoader.java
deleted file mode 100755
index 21b2f08..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/XWTVisualLoader.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.loader;
-
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.xwt.XWTLoader;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.xwt.metadata.IProperty;
-import org.eclipse.xwt.utils.PathHelper;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
-import org.eclipse.xwt.tools.ui.designer.editor.model.XWTModelBuilder;
-import org.eclipse.xwt.tools.ui.designer.loader.metadata.HeightProperty;
-import org.eclipse.xwt.tools.ui.designer.loader.metadata.WidthProperty;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-import org.eclipse.xwt.ui.utils.ProjectContext;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class XWTVisualLoader extends XWTLoader {
-
-	private static IProperty widthProperty;
-	private static IProperty heightProperty;
-	private IFile file;
-
-	public XWTVisualLoader(IFile file) {
-		if (file != null && file.exists()) {
-			IJavaProject project = JavaCore.create(file.getProject());
-			if (project != null && project.exists()) {
-				ProjectContext context = ProjectContext.getContext(project);
-				setLoadingContext(context);
-			}
-			this.file = file;
-		}
-	}
-
-	public URL getResourcePath() {
-		if (file != null && file.exists()) {
-			try {
-				return file.getLocation().toFile().toURI().toURL();
-			} catch (MalformedURLException e) {
-			}
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.xwt.XWTLoader#loadWithOptions(java.io.InputStream, java.net.URL, java.util.Map)
-	 */
-	public synchronized Object loadWithOptions(InputStream stream, URL base, Map<String, Object> options)
-			throws Exception {
-		// FIXME:
-		return super.loadWithOptions(stream, base, options);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.xwt.XWTLoader#loadWithOptions(java.net.URL, java.util.Map)
-	 */
-	public synchronized Control loadWithOptions(URL url, Map<String, Object> options) throws Exception {
-		IWorkspace workspace = ResourcesPlugin.getWorkspace();
-		IWorkspaceRoot root = workspace.getRoot();
-		String fileStr = url.getFile();
-		if (fileStr.indexOf(PathHelper.WHITE_SPACE_ASCII) != -1) {
-			fileStr = fileStr.replace(PathHelper.WHITE_SPACE_ASCII, " ");
-		}
-		IFile file = root.getFileForLocation(new Path(fileStr));
-		if (file != null) {
-			try {
-				// the url given an binary file of project, we need find the source file of it and the load and open.
-				IProject project = file.getProject();
-				String fullPath = file.getFullPath().toString();
-				IJavaProject javaProject = JavaCore.create(project);
-				String outputPath = javaProject.getOutputLocation().toString();
-				if (fullPath != null && outputPath != null && fullPath.startsWith(outputPath)) {
-					String fileSourcePath = fullPath.substring(outputPath.length());
-					IPackageFragmentRoot[] allPackageFragmentRoots = javaProject.getAllPackageFragmentRoots();
-					for (IPackageFragmentRoot pRoot : allPackageFragmentRoots) {
-						if (pRoot.getKind() == IPackageFragmentRoot.K_SOURCE) {
-							IFolder resource = (IFolder) pRoot.getResource();
-							IFile sourceFile = resource.getFile(new Path(fileSourcePath));
-							if (sourceFile != null && sourceFile.exists()) {
-								file = sourceFile;
-								break;
-							}
-						}
-					}
-				}
-			} catch (Exception e) {
-			}
-		}
-		if (file != null) {
-			IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-			IEditorPart activeEditor = activePage.getActiveEditor();
-			try {
-				XWTDesigner designer = (XWTDesigner) activePage.openEditor(new FileEditorInput(file),
-						XWTDesigner.EDITOR_ID, false);
-				XamlDocument xamlDocument = (XamlDocument) designer.getDocumentRoot();
-				XWTModelBuilder builder = null;
-				if (xamlDocument == null) {
-					builder = new XWTModelBuilder();
-					builder.doLoad(designer, null);
-					xamlDocument = builder.getDiagram();
-				}
-				Control control = (Control) new XWTProxy(file).load(xamlDocument.getRootElement(), options);
-				if (builder != null) {
-					builder.dispose();
-				}
-				return control;
-			} finally {
-				activePage.activate(activeEditor);
-			}
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.xwt.XWTLoader#registerMetaclass(java.lang.Class)
-	 */
-	public synchronized IMetaclass registerMetaclass(Class<?> type) {
-		IMetaclass metaclass = super.registerMetaclass(type);
-		if (metaclass != null && type != null && Control.class.isAssignableFrom(type)) {
-			IProperty[] properties = metaclass.getProperties();
-			if (properties != null) {
-				if (widthProperty == null) {
-					widthProperty = new WidthProperty();
-				}
-				if (heightProperty == null) {
-					heightProperty = new HeightProperty();
-				}
-				List<IProperty> propList = Arrays.asList(properties);
-				if (!propList.contains(widthProperty)) {
-					metaclass.addProperty(widthProperty);
-				}
-				if (!propList.contains(heightProperty)) {
-					metaclass.addProperty(heightProperty);
-				}
-			}
-		}
-		return metaclass;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/metadata/HeightProperty.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/metadata/HeightProperty.java
deleted file mode 100755
index 9bd7fda..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/metadata/HeightProperty.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.loader.metadata;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.xwt.javabean.metadata.properties.AbstractProperty;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.layout.RowData;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Layout;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class HeightProperty extends AbstractProperty {
-
-	public HeightProperty() {
-		super("height", int.class);
-	}
-
-	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
-		if (target == null || !Control.class.isAssignableFrom(target.getClass())) {
-			return SWT.DEFAULT;
-		}
-		Control control = (Control) target;
-		int height = control.getSize().y;
-		if (height < 0) {
-			Layout layout = control.getParent().getLayout();
-			Object layoutData = control.getLayoutData();
-			if (layout instanceof GridLayout && layoutData instanceof GridData) {
-				height = ((GridData) layoutData).heightHint;
-			} else if (layout instanceof RowLayout && layoutData instanceof RowData) {
-				height = ((RowData) layoutData).height;
-			} else if (layout instanceof FormLayout && layoutData instanceof FormData) {
-				height = ((FormData) layoutData).height;
-			}
-		}
-		return height;
-	}
-
-	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
-		if (target == null || !Control.class.isAssignableFrom(target.getClass())) {
-			return;
-		}
-		if (value == null || !(value instanceof Integer)) {
-			return;
-		}
-		int height = (Integer) value;
-		if (height <= 0) {
-			height = SWT.DEFAULT;
-		}
-		Control control = (Control) target;
-		Layout layout = control.getParent().getLayout();
-		Object layoutData = control.getLayoutData();
-		if (layout == null) {
-			Point size = control.getSize();
-			control.setSize(size.x, height);
-		} else if (layout instanceof GridLayout) {
-			if (layoutData == null || !(layoutData instanceof GridData)) {
-				layoutData = new GridData();
-				control.setLayoutData(layoutData);
-			}
-			((GridData) layoutData).heightHint = height;
-		} else if (layout instanceof RowLayout) {
-			if (layoutData == null || !(layoutData instanceof RowData)) {
-				layoutData = new RowData();
-				control.setLayoutData(layoutData);
-			}
-			((RowData) layoutData).height = height;
-		} else if (layout instanceof FormLayout) {
-			if (layoutData == null || !(layoutData instanceof FormData)) {
-				layoutData = new FormData();
-				control.setLayoutData(layoutData);
-			}
-			((FormData) layoutData).height = height;
-		}
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/metadata/WidthProperty.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/metadata/WidthProperty.java
deleted file mode 100755
index 84c76a9..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/metadata/WidthProperty.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.loader.metadata;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.xwt.javabean.metadata.properties.AbstractProperty;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.layout.RowData;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Layout;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class WidthProperty extends AbstractProperty {
-
-	public WidthProperty() {
-		super("width", int.class);
-	}
-
-	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
-		if (target == null || !Control.class.isAssignableFrom(target.getClass())) {
-			return SWT.DEFAULT;
-		}
-		Control control = (Control) target;
-		int width = control.getSize().x;
-		if (width < 0) {
-			Layout layout = control.getParent().getLayout();
-			Object layoutData = control.getLayoutData();
-			if (layout instanceof GridLayout && layoutData instanceof GridData) {
-				width = ((GridData) layoutData).widthHint;
-			} else if (layout instanceof RowLayout && layoutData instanceof RowData) {
-				width = ((RowData) layoutData).width;
-			} else if (layout instanceof FormLayout && layoutData instanceof FormData) {
-				width = ((FormData) layoutData).width;
-			}
-		}
-		return width;
-	}
-
-	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
-		if (target == null || !Control.class.isAssignableFrom(target.getClass())) {
-			return;
-		}
-		if (value == null || !(value instanceof Integer)) {
-			return;
-		}
-		int width = (Integer) value;
-		if (width <= 0) {
-			width = SWT.DEFAULT;
-		}
-		Control control = (Control) target;
-		Layout layout = control.getParent().getLayout();
-		Object layoutData = control.getLayoutData();
-		if (layout == null) {
-			Point size = control.getSize();
-			control.setSize(width, size.y);
-		} else if (layout instanceof GridLayout) {
-			if (layoutData == null || !(layoutData instanceof GridData)) {
-				layoutData = new GridData();
-				control.setLayoutData(layoutData);
-			}
-			((GridData) layoutData).widthHint = width;
-		} else if (layout instanceof RowLayout) {
-			if (layoutData == null || !(layoutData instanceof RowData)) {
-				layoutData = new RowData();
-				control.setLayoutData(layoutData);
-			}
-			((RowData) layoutData).width = width;
-		} else if (layout instanceof FormLayout) {
-			if (layoutData == null || !(layoutData instanceof FormData)) {
-				layoutData = new FormData();
-				control.setLayoutData(layoutData);
-			}
-			((FormData) layoutData).width = width;
-		}
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/model/RefreshAdapter.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/model/RefreshAdapter.java
deleted file mode 100755
index 1878afd..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/model/RefreshAdapter.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.model;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public abstract class RefreshAdapter extends AdapterImpl {
-
-	private XamlNode source;
-	private boolean isRefreshRequired = true;
-	private List<String> notifyAttributeNames = new ArrayList<String>();
-	private List<XamlAttribute> notifiedAttributes = new ArrayList<XamlAttribute>();
-
-	public RefreshAdapter(XamlNode source, String affectedAttr) {
-		this(source);
-		if (affectedAttr != null) {
-			notifyAttributeNames.add(affectedAttr);
-			listenAttrs();
-		}
-	}
-
-	public RefreshAdapter(XamlNode source) {
-		Assert.isNotNull(source);
-		this.source = source;
-		source.eAdapters().add(this);
-	}
-
-	public void setRefreshRequired(boolean isRefreshRequired) {
-		this.isRefreshRequired = isRefreshRequired;
-	}
-
-	private void listenAttrs() {
-		for (String attrName : notifyAttributeNames) {
-			listenAttr(source.getAttribute(attrName));
-		}
-	}
-
-	private void listenAttr(XamlAttribute attribute) {
-		if (attribute == null || attribute.eAdapters().contains(this)) {
-			return;
-		}
-		attribute.eAdapters().add(this);
-		notifiedAttributes.add(attribute);
-	}
-
-	public void addListenedAttr(String attrName) {
-		if (!notifyAttributeNames.contains(attrName)) {
-			notifyAttributeNames.add(attrName);
-			listenAttrs();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.emf.common.notify.impl.AdapterImpl#notifyChanged(org.eclipse
-	 * .emf.common.notify.Notification)
-	 */
-	public final void notifyChanged(Notification msg) {
-		if (msg.isTouch()) {
-			return;
-		}
-		if (notifyAttributeNames.isEmpty()) {
-			return;
-		}
-		Object notifier = msg.getNotifier();
-		if (source == notifier) {
-			Object oldValue = msg.getOldValue();
-			Object newValue = msg.getNewValue();
-			if (notifiedAttributes.contains(oldValue)) {
-				if (isRefreshRequired) {
-					performRefresh(msg);
-				}
-			} else if (newValue instanceof XamlAttribute) {
-				String name = ((XamlAttribute) newValue).getName();
-				if (notifyAttributeNames.contains(name)) {
-					listenAttr((XamlAttribute) newValue);
-					if (isRefreshRequired) {
-						performRefresh(msg);
-					}
-				}
-			}
-		} else if (notifiedAttributes.contains(notifier)) {
-			if (isRefreshRequired) {
-				performRefresh(msg);
-			}
-		}
-	}
-
-	public void dispose() {
-		source.eAdapters().remove(this);
-		for (XamlAttribute attr : notifiedAttributes) {
-			attr.eAdapters().remove(this);
-		}
-		notifiedAttributes.clear();
-		notifyAttributeNames.clear();
-	}
-
-	protected abstract void performRefresh(Notification msg);
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/model/XamlDocumentProvider.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/model/XamlDocumentProvider.java
deleted file mode 100755
index 1560236..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/model/XamlDocumentProvider.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.model;
-
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-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.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.xwt.internal.xml.Attribute;
-import org.eclipse.xwt.internal.xml.DocumentObject;
-import org.eclipse.xwt.internal.xml.Element;
-import org.eclipse.xwt.internal.xml.ElementManager;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public class XamlDocumentProvider {
-
-	private IFile file;
-	private XamlDocument document;
-	private boolean needReload = false;
-
-	private XamlDocumentProvider(IFile file) {
-		Assert.isTrue(file != null && file.exists());
-		this.file = file;
-		ResourcesPlugin.getWorkspace().addResourceChangeListener(
-				new IResourceChangeListener() {
-					public void resourceChanged(IResourceChangeEvent event) {
-						performResourceChanged(event);
-					}
-				});
-	}
-
-	private void performResourceChanged(IResourceChangeEvent event) {
-		if (file == null || !file.exists()) {
-			return;
-		}
-		IResourceDelta delta = event.getDelta();
-		try {
-			delta.accept(new IResourceDeltaVisitor() {
-				public boolean visit(IResourceDelta delta) throws CoreException {
-					IResource resource = delta.getResource();
-					if (resource != null
-							&& file.getFullPath()
-									.equals(resource.getFullPath())) {
-						needReload = true;
-						return false;// break
-					}
-					return true;
-				}
-			});
-		} catch (CoreException e) {
-		}
-	}
-
-	public XamlDocument getDocument() {
-		if (document == null) {
-			document = XamlFactory.eINSTANCE.createXamlDocument();
-		}
-		boolean reload = needReload || document.getRootElement() == null;
-		if (reload) {
-			reload();
-			needReload = false;
-		}
-		return document;
-	}
-
-	public boolean reload() {
-		if (document == null) {
-			return false;
-		}
-		try {
-			URL url = file.getLocationURI().toURL();
-			if (url == null) {
-				return false;
-			}
-			ElementManager manager = new ElementManager();
-			Element element = manager.load(file.getContents(), url);
-
-			XamlElement rootElement = document.getRootElement();
-			if (rootElement == null) {
-				rootElement = XamlFactory.eINSTANCE.createXamlElement();
-			}
-			updateNode(rootElement, element);
-			if (rootElement.eContainer() == null) {
-				document.setRootElement(rootElement);
-			}
-		} catch (Exception e) {
-			e.printStackTrace();
-			return false;
-		}
-		return true;
-	}
-
-	private void updateNode(XamlNode node, DocumentObject obj) {
-		if (node == null || obj == null) {
-			throw new NullPointerException();
-		}
-		String namespace = obj.getNamespace();
-		// 1. basic settings
-		node.setId(obj.getId());
-		node.setName(obj.getName());
-		node.setNamespace(namespace);
-		node.setValue(obj.getContent());
-
-		// 2. Attributes
-		if (obj instanceof Element) {
-			Element element = (Element) obj;
-			List<XamlAttribute> oldAttributes = new ArrayList<XamlAttribute>(
-					node.getAttributes());
-			oldAttributes.removeAll(updateAttributes(node, element, null));
-
-			String[] attributeNamespaces = element.attributeNamespaces();
-			for (String ns : attributeNamespaces) {
-				oldAttributes.removeAll(updateAttributes(node, element, ns));
-			}
-			for (XamlAttribute forRemove : oldAttributes) {
-				node.getAttributes().remove(forRemove);
-			}
-		}
-
-		// 3. Children
-		List<XamlElement> oldChildren = new ArrayList<XamlElement>(node
-				.getChildNodes());
-		oldChildren.removeAll(updateChildNodes(node, obj));
-		for (XamlElement forRemove : oldChildren) {
-			node.getChildNodes().remove(forRemove);
-		}
-	}
-
-	private List<XamlElement> updateChildNodes(XamlNode node, DocumentObject obj) {
-		List<XamlElement> updates = new ArrayList<XamlElement>();
-		DocumentObject[] children = obj.getChildren();
-		for (int index = 0; index < children.length; index++) {
-			DocumentObject documentObject = children[index];
-			XamlElement child = node.getChild(index);
-			if (child == null) {
-				child = XamlFactory.eINSTANCE.createXamlElement();
-			}
-			updateNode(child, documentObject);
-			if (child.eContainer() == null) {
-				node.getChildNodes().add(child);
-			}
-			updates.add(child);
-		}
-		return updates;
-	}
-
-	private List<XamlAttribute> updateAttributes(XamlNode node,
-			Element element, String namespace) {
-		if (node == null || element == null) {
-			throw new NullPointerException();
-		}
-		List<XamlAttribute> attrs = new ArrayList<XamlAttribute>();
-		String[] attributeNames = namespace == null ? element.attributeNames()
-				: element.attributeNames(namespace);
-		for (String attrName : attributeNames) {
-			Attribute attribute = namespace == null ? element
-					.getAttribute(attrName) : element.getAttribute(namespace,
-					attrName);
-			if (attribute == null) {
-				continue;
-			}
-			XamlAttribute xa = node.getAttribute(attrName, namespace);
-			if (xa == null) {
-				xa = XamlFactory.eINSTANCE.createAttribute(attrName, namespace);
-			}
-			updateNode(xa, attribute);
-			if (xa.eContainer() == null) {
-				node.getAttributes().add(xa);
-			}
-			attrs.add(xa);
-		}
-		return attrs;
-	}
-
-	public static XamlDocument getDocument(IFile file) {
-		return getProvider(file).getDocument();
-	}
-
-	public static XamlDocumentProvider getProvider(IFile file) {
-		XamlDocumentProvider p = providers.get(file);
-		if (p == null) {
-			providers.put(file, p = new XamlDocumentProvider(file));
-		}
-		return p;
-	}
-
-	private static final Map<IFile, XamlDocumentProvider> providers = new HashMap<IFile, XamlDocumentProvider>(
-			1);
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/BindingConnectionEditPart.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/BindingConnectionEditPart.java
deleted file mode 100755
index d29ba95..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/BindingConnectionEditPart.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.editparts.AbstractConnectionEditPart;
-import org.eclipse.gef.editpolicies.ConnectionEndpointEditPolicy;
-import org.eclipse.xwt.tools.ui.designer.core.parts.root.BindingLayer;
-import org.eclipse.xwt.tools.ui.designer.databinding.BindingInfo;
-import org.eclipse.xwt.tools.ui.designer.parts.figures.DataBindingConnection;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class BindingConnectionEditPart extends AbstractConnectionEditPart {
-
-	public BindingConnectionEditPart(BindingInfo bindingInfo) {
-		setModel(bindingInfo);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editparts.AbstractConnectionEditPart#activateFigure()
-	 */
-	protected void activateFigure() {
-		getLayer(BindingLayer.ID).add(getFigure());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editparts.AbstractConnectionEditPart#deactivateFigure()
-	 */
-	protected void deactivateFigure() {
-		getLayer(BindingLayer.ID).remove(getFigure());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editparts.AbstractConnectionEditPart#createFigure()
-	 */
-	protected IFigure createFigure() {
-		return new DataBindingConnection((BindingInfo) getModel());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editparts.AbstractEditPart#createEditPolicies()
-	 */
-	protected void createEditPolicies() {
-		// Selection handle edit policy.
-		// Makes the connection show a feedback, when selected by the user.
-		installEditPolicy(EditPolicy.CONNECTION_ENDPOINTS_ROLE, new ConnectionEndpointEditPolicy());
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ColumnEditPart.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ColumnEditPart.java
deleted file mode 100755
index f8e87b1..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ColumnEditPart.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts;
-
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ColumnEditPart extends ItemEditPart {
-
-	public ColumnEditPart(Item column, XamlNode model) {
-		super(column, model);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/CompositeEditPart.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/CompositeEditPart.java
deleted file mode 100755
index 50040fa..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/CompositeEditPart.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.XYLayout;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.SnapToGeometry;
-import org.eclipse.gef.SnapToHelper;
-import org.eclipse.gef.editpolicies.SnapFeedbackPolicy;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.tools.ui.designer.core.figures.ContentPaneFigure;
-import org.eclipse.xwt.tools.ui.designer.core.visuals.IVisualInfo;
-import org.eclipse.xwt.tools.ui.designer.core.visuals.swt.CompositeInfo;
-import org.eclipse.xwt.tools.ui.designer.editor.sash.SashFormChildResizableEditPolicy;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.ILayoutEditPolicy;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.LayoutEditPolicyFactory;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class CompositeEditPart extends ControlEditPart {
-	static final int WIDTH = 10;
-
-	private ILayoutEditPolicy layoutEditPolicy;
-
-	public CompositeEditPart(Composite composite, XamlNode model) {
-		super(composite, model);
-		setUseBorder(true);
-	}
-
-	protected IFigure createFigure() {
-		ContentPaneFigure cf = (ContentPaneFigure) super.createFigure();
-		cf.getContentPane().setLayoutManager(new XYLayout());
-		return cf;
-	}
-
-	/**
-	 * @see org.VisualEditPart.xaml.ve.editor.editparts.GraphicalNodeEditPart#createEditPolicies()
-	 */
-	protected void createEditPolicies() {
-		super.createEditPolicies();
-		layoutEditPolicy = LayoutEditPolicyFactory.getLayoutEditPolicy(this);
-		installEditPolicy(EditPolicy.LAYOUT_ROLE, layoutEditPolicy);
-		installEditPolicy("Snap Feedback", new SnapFeedbackPolicy());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#refresh()
-	 */
-	public void refresh() {
-		super.refresh();
-		// When the layout of the Composite is changed, we need to install a new one.
-		ILayoutEditPolicy policy = LayoutEditPolicyFactory.getLayoutEditPolicy(this);
-		if (layoutEditPolicy != null && layoutEditPolicy.getType() != policy.getType()) {
-			removeEditPolicy(EditPolicy.LAYOUT_ROLE);
-			installEditPolicy(EditPolicy.LAYOUT_ROLE, layoutEditPolicy = policy);
-		}
-		if (layoutEditPolicy != null) {
-			layoutEditPolicy.refresh();
-		}
-	}
-
-	public Layout getLayout() {
-		Widget widget = getWidget();
-		if (widget == null || widget.isDisposed() || !(widget instanceof Composite)) {
-			return null;
-		}
-		return ((Composite) widget).getLayout();
-	}
-
-	public XamlElement getLayoutModel() {
-		XamlElement model = (XamlElement) getModel();
-		XamlAttribute attribute = model.getAttribute("layout");
-		if (attribute == null) {
-			return null;
-		}
-		EList<XamlElement> childNodes = attribute.getChildNodes();
-		if (childNodes.size() == 1) {
-			return childNodes.get(0);
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#getAdapter(java.lang.Class)
-	 */
-	public Object getAdapter(Class key) {
-		if (key == SnapToHelper.class && (Boolean) getViewer().getProperty(SnapToGeometry.PROPERTY_SNAP_ENABLED)) {
-			if (layoutEditPolicy != null && layoutEditPolicy.getType() == LayoutType.NullLayout) {
-				return new SnapToGeometry(this);
-			}
-		} else if (key == ILayoutEditPolicy.class) {
-			return layoutEditPolicy;
-		}
-		return super.getAdapter(key);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.soyatec.xaml.ve.xwt.editparts.ControlEditPart#createVisualComponent()
-	 */
-	public IVisualInfo createVisualInfo() {
-		return new CompositeInfo((Composite) getWidget(), isRoot());
-	}
-
-	@Override
-	public EditPart getTargetEditPart(Request request) {
-		if (getParent() instanceof SashFormEditPart) {
-			EditPart editPart = SashFormChildResizableEditPolicy.getTargetEditPart(request, this);
-			if (editPart != null) {
-				return editPart;
-			}
-		}
-		return super.getTargetEditPart(request);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ControlEditPart.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ControlEditPart.java
deleted file mode 100755
index dd9769f..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ControlEditPart.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts;
-
-import java.util.List;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.xwt.metadata.IProperty;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.RequestConstants;
-import org.eclipse.gef.tools.DirectEditManager;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.tools.ui.designer.core.visuals.IVisualInfo;
-import org.eclipse.xwt.tools.ui.designer.core.visuals.swt.ControlInfo;
-import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
-import org.eclipse.xwt.tools.ui.designer.parts.direct.ElementCellEditLocator;
-import org.eclipse.xwt.tools.ui.designer.parts.direct.ElementDirectEditManager;
-import org.eclipse.xwt.tools.ui.designer.policies.ElementDirectEditPolicy;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.ControlLayoutEditPolicy;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class ControlEditPart extends WidgetEditPart {
-
-	protected DirectEditManager manager;
-
-	public ControlEditPart(Control control, XamlNode model) {
-		super(control, model);
-	}
-
-	public void performRequest(Request request) {
-		// Fixed bug: 0000860: the datatime should not have the attribute "text".
-		IProperty property = XWTUtility.getProperty(getCastModel(), "text");
-
-		if (request.getType() == RequestConstants.REQ_OPEN && property != null) {
-			if (manager == null) {
-				IFigure figure = getFigure();
-				manager = new ElementDirectEditManager(this, TextCellEditor.class, new ElementCellEditLocator(figure),
-						figure);
-			}
-			manager.show();
-		}
-		super.performRequest(request);
-	}
-
-	/**
-	 * @see org.soyatec.xaml.ve.editor.editparts.ElementGraphicalEditPart#getVisualInfo()
-	 */
-	public IVisualInfo createVisualInfo() {
-		return new ControlInfo(getWidget(), isRoot());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.soyatec.xaml.ve.xwt.editparts.WidgetEditPart#collectExternalModels()
-	 */
-	protected void collectExternalModels(List<Object> collector) {
-		super.collectExternalModels(collector);
-		Control control = (Control) getWidget();
-		if (control != null && !control.isDisposed()) {
-			Menu menu = control.getMenu();
-			if (menu != null) {
-				Object data = XWTProxy.getModel(menu);
-				if (data != null) {
-					collector.add(data);
-				}
-			}
-		}
-	}
-
-	public boolean isRightToLeft() {
-		Widget widget = getWidget();
-		if (widget == null || widget.isDisposed()) {
-			return false;
-		}
-		return ((widget.getStyle() & SWT.RIGHT_TO_LEFT) != 0);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.soyatec.xaml.ve.editor.editparts.GraphicalNodeEditPart#createEditPolicies()
-	 */
-	protected void createEditPolicies() {
-		installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new ElementDirectEditPolicy());
-		installEditPolicy(EditPolicy.LAYOUT_ROLE, new ControlLayoutEditPolicy());
-		super.createEditPolicies();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/CoolBarEditPart.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/CoolBarEditPart.java
deleted file mode 100755
index 998a5df..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/CoolBarEditPart.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts;
-
-import java.util.List;
-
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.CoolBar;
-import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
-import org.eclipse.xwt.tools.ui.designer.policies.CoolBarEditPolicy;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-public class CoolBarEditPart extends CompositeEditPart {
-
-	public CoolBarEditPart(CoolBar coolBar, XamlNode model) {
-		super(coolBar, model);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.xaml.ve.xwt.editparts.WidgetEditPart#collectExternalModels()
-	 */
-	protected void collectExternalModels(List<Object> collector) {
-		CoolBar coolBar = (CoolBar) getWidget();
-		if (coolBar != null && !coolBar.isDisposed()) {
-			Control[] children = coolBar.getChildren();
-			for (Control control : children) {
-				Object data = XWTProxy.getModel(control);
-				if (data != null) {
-					collector.add(data);
-				}
-			}
-		}
-	}
-
-	protected void createEditPolicies() {
-		super.createEditPolicies();
-		installEditPolicy(EditPolicy.LAYOUT_ROLE, new CoolBarEditPolicy());
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/CoolItemEditPart.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/CoolItemEditPart.java
deleted file mode 100755
index a9aeab7..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/CoolItemEditPart.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts;
-
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.swt.widgets.CoolItem;
-import org.eclipse.xwt.tools.ui.designer.policies.CoolItemEditPolicy;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-public class CoolItemEditPart extends ItemEditPart {
-
-	public CoolItemEditPart(CoolItem coolItem, XamlNode model) {
-		super(coolItem, model);
-	}
-
-	protected void createEditPolicies() {
-		super.createEditPolicies();
-		installEditPolicy(EditPolicy.LAYOUT_ROLE, new CoolItemEditPolicy());
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/DataContextEditPart.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/DataContextEditPart.java
deleted file mode 100755
index 1e20864..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/DataContextEditPart.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Ellipse;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
-import org.eclipse.xwt.tools.ui.designer.core.editor.IVisualRenderer;
-import org.eclipse.xwt.tools.ui.designer.databinding.BindingHelper;
-import org.eclipse.xwt.tools.ui.designer.databinding.BindingInfo;
-import org.eclipse.xwt.tools.ui.designer.databinding.DataContext;
-import org.eclipse.xwt.tools.ui.designer.databinding.IObservable;
-import org.eclipse.xwt.tools.ui.designer.editor.XWTVisualRenderer;
-import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class DataContextEditPart extends AbstractGraphicalEditPart {
-
-	private DataContext dataContext;
-
-	public DataContextEditPart(DataContext dataContext) {
-		setModel(dataContext);
-		this.dataContext = dataContext;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#getModelSourceConnections()
-	 */
-	protected List getModelSourceConnections() {
-		XWTVisualRenderer controlRender = (XWTVisualRenderer) EditDomain.getEditDomain(this).getViewerData(getViewer(), IVisualRenderer.KEY);
-		Object root = controlRender.getRoot();
-		if (root != null && root instanceof Widget) {
-			root = XWTProxy.getModel((Widget) root);
-			EditPart rootEp = (EditPart) getViewer().getEditPartRegistry().get(root);
-			if (rootEp != null) {
-				List<BindingInfo> sources = new ArrayList<BindingInfo>();
-				List<BindingInfo> allBindings = BindingHelper.getBindings(rootEp);
-				for (BindingInfo bindingInfo : allBindings) {
-					IObservable observeModel = bindingInfo.getModel();
-					if (dataContext.equals(observeModel.getSource())) {
-						sources.add(bindingInfo);
-					}
-				}
-				return sources;
-			}
-		}
-		return super.getModelSourceConnections();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#createFigure()
-	 */
-	protected IFigure createFigure() {
-		Ellipse figure = new Ellipse();
-		figure.setAntialias(SWT.ON);
-		figure.setForegroundColor(ColorConstants.blue);
-		figure.setBackgroundColor(ColorConstants.yellow);
-		figure.setLayoutManager(new ToolbarLayout(true));
-		// Label title = new Label("D");
-		// title.setTextAlignment(Label.CENTER);
-		// title.setSize(15, 15);
-		// title.setTextPlacement(PositionConstants.EAST);
-		// figure.add(title);
-		// ImageFigure imageFigure = new ImageFigure(ImageShop.get(ImageShop.IMAGE_OBSERVE_BEANS));
-		// figure.add(imageFigure);
-		Label label = new Label();
-		if (dataContext != null && dataContext.getKey() != null) {
-			label.setText(dataContext.getKey());
-		}
-		figure.setToolTip(label);
-		return figure;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editparts.AbstractEditPart#refreshVisuals()
-	 */
-	protected void refreshVisuals() {
-		GraphicalEditPart parent = (GraphicalEditPart) getParent();
-		Rectangle bounds = parent.getFigure().getBounds().getCopy();
-		Rectangle rect = new Rectangle();
-		rect.setLocation(bounds.x + 1, bounds.y + 1);
-		rect.setSize(16, 16);
-		getFigure().setBounds(rect);
-		super.refreshVisuals();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editparts.AbstractEditPart#createEditPolicies()
-	 */
-	protected void createEditPolicies() {
-
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/DiagramEditPart.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/DiagramEditPart.java
deleted file mode 100755
index 4cc9e4c..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/DiagramEditPart.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts;
-
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.xwt.tools.ui.designer.core.parts.AbstractDiagramEditPart;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.LayoutEditPolicyFactory;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class DiagramEditPart extends AbstractDiagramEditPart {
-
-	public DiagramEditPart(XamlDocument document) {
-		super(document);
-	}
-
-	/**
-	 * @see org.AbstractDiagramEditPart.xaml.ve.editor.editparts.DiagramGraphicalEditPart#createEditPolicies()
-	 */
-	protected void createEditPolicies() {
-		removeEditPolicy(EditPolicy.LAYOUT_ROLE);
-		installEditPolicy(EditPolicy.LAYOUT_ROLE, LayoutEditPolicyFactory.NULL_LAYOUT);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.gef.editparts.AbstractEditPart#getModelChildren()
-	 */
-	protected List getModelChildren() {
-		XamlDocument model = (XamlDocument) getModel();
-		if (model.getRootElement() != null) {
-			return Collections.singletonList(model.getRootElement());
-		}
-		return super.getModelChildren();
-	}
-
-	public String toString() {
-		return "";
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ExpandBarEditPart.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ExpandBarEditPart.java
deleted file mode 100755
index aa22ca7..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ExpandBarEditPart.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts;
-
-import java.util.List;
-
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.ExpandBar;
-import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
-import org.eclipse.xwt.tools.ui.designer.policies.ExpandBarEditPolicy;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author yahong.song@soyatec.com
- */
-public class ExpandBarEditPart extends CompositeEditPart {
-
-	public ExpandBarEditPart(ExpandBar expandBar, XamlNode model) {
-		super(expandBar, model);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.parts.ControlEditPart#CollectExternalModels()
-	 */
-	protected void collectExternalModels(List<Object> collector) {
-		ExpandBar expandBar = (ExpandBar) getWidget();
-		if (expandBar != null && !expandBar.isDisposed()) {
-			Control[] children = expandBar.getChildren();
-			for (Control control : children) {
-				Object data = XWTProxy.getModel(control);
-				if (data != null) {
-					collector.add(data);
-				}
-			}
-		}
-	}
-
-	protected void createEditPolicies() {
-		super.createEditPolicies();
-		installEditPolicy(EditPolicy.LAYOUT_ROLE, new ExpandBarEditPolicy());
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ExpandItemEditPart.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ExpandItemEditPart.java
deleted file mode 100755
index 5aa2455..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ExpandItemEditPart.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts;
-
-import org.eclipse.swt.widgets.ExpandItem;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author yahong.song@soyatec.com
- */
-public class ExpandItemEditPart extends ItemEditPart {
-
-	public ExpandItemEditPart(ExpandItem expandItem, XamlNode model) {
-		super(expandItem, model);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ItemEditPart.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ItemEditPart.java
deleted file mode 100755
index 1c8cfb0..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ItemEditPart.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.xwt.tools.ui.designer.core.figures.ContentPaneFigure;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ItemEditPart extends WidgetEditPart {
-
-	public ItemEditPart(Item item, XamlNode model) {
-		super(item, model);
-	}
-
-	protected IFigure createFigure() {
-		ContentPaneFigure figure = new ContentPaneFigure();
-		figure.add(new Label());
-		return figure;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/LabelEditPart.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/LabelEditPart.java
deleted file mode 100755
index 57eae27..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/LabelEditPart.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts;
-
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class LabelEditPart extends ControlEditPart {
-
-	public LabelEditPart(Label label, XamlNode model) {
-		super(label, model);
-		setUseBorder(true);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/MenuBarEditPart.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/MenuBarEditPart.java
deleted file mode 100755
index 7353278..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/MenuBarEditPart.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.RectangleFigure;
-import org.eclipse.draw2d.XYLayout;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.xwt.tools.ui.designer.core.figures.ContentPaneFigure;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.MenuBarLayoutEditPolicy;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class MenuBarEditPart extends MenuEditPart {
-
-	public MenuBarEditPart(Menu menuBar, XamlNode model) {
-		super(menuBar, model);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.xaml.ve.editor.editparts.GraphicalNodeEditPart#createFigure()
-	 */
-	protected IFigure createFigure() {
-		ContentPaneFigure figure = new ContentPaneFigure();
-		RectangleFigure rFigure = new RectangleFigure();
-		rFigure.setFill(false);
-		rFigure.setForegroundColor(ColorConstants.menuBackground);
-		rFigure.setLayoutManager(new XYLayout());
-		figure.setContentPane(rFigure);
-		return figure;
-	}
-
-	protected void createEditPolicies() {
-		super.createEditPolicies();
-		// removeEditPolicy(EditPolicy.LAYOUT_ROLE);
-		installEditPolicy(EditPolicy.LAYOUT_ROLE, new MenuBarLayoutEditPolicy());
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/MenuEditPart.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/MenuEditPart.java
deleted file mode 100755
index 77d2479..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/MenuEditPart.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts;
-
-import java.util.List;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.xwt.tools.ui.designer.core.figures.ContentPaneFigure;
-import org.eclipse.xwt.tools.ui.designer.parts.figures.MenuFigure;
-import org.eclipse.xwt.tools.ui.designer.policies.ExpandableEditPolicy;
-import org.eclipse.xwt.tools.ui.designer.policies.MenuLayoutEditPolicy;
-import org.eclipse.xwt.tools.ui.designer.policies.NewNonResizeEditPolicy;
-import org.eclipse.xwt.tools.ui.designer.policies.PolicyConstants;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-public class MenuEditPart extends WidgetEditPart {
-
-	public MenuEditPart(Menu menu, XamlNode model) {
-		super(menu, model);
-	}
-
-	protected void createEditPolicies() {
-		super.createEditPolicies();
-		installEditPolicy(EditPolicy.LAYOUT_ROLE, new MenuLayoutEditPolicy());
-		installEditPolicy(PolicyConstants.EXPANDABLE_EDITPOLICY,
-				new ExpandableEditPolicy());
-		installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
-				new NewNonResizeEditPolicy(false));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.soyatec.xaml.ve.editor.editparts.GraphicalNodeEditPart#createFigure()
-	 */
-	protected IFigure createFigure() {
-		ContentPaneFigure figure = new ContentPaneFigure();
-		figure.setContentPane(new MenuFigure(this));
-		return figure;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart#getModelChildren
-	 * ()
-	 */
-	protected List getModelChildren() {
-		return super.getModelChildren();
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/MenuItemEditPart.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/MenuItemEditPart.java
deleted file mode 100755
index cfb46eb..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/MenuItemEditPart.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts;
-
-import java.util.List;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.xwt.tools.ui.designer.core.figures.ContentPaneFigure;
-import org.eclipse.xwt.tools.ui.designer.loader.ResourceVisitor;
-import org.eclipse.xwt.tools.ui.designer.parts.figures.MenuItemFigure;
-import org.eclipse.xwt.tools.ui.designer.policies.MenuItemExpandableEditPolicy;
-import org.eclipse.xwt.tools.ui.designer.policies.PolicyConstants;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-public class MenuItemEditPart extends WidgetEditPart {
-
-	public MenuItemEditPart(MenuItem item, XamlNode model) {
-		super(item, model);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.xaml.ve.editor.editparts.GraphicalNodeEditPart#createFigure()
-	 */
-	protected IFigure createFigure() {
-		ContentPaneFigure figure = new ContentPaneFigure();
-		figure.setContentPane(new MenuItemFigure(this));
-		return figure;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.xaml.ve.xwt.editparts.WidgetEditPart#collectExternalModels()
-	 */
-	protected void collectExternalModels(List<Object> collector) {
-		MenuItem menuItem = (MenuItem) getWidget();
-		if (menuItem != null) {
-			Menu menu = menuItem.getMenu();
-			if (menu != null) {
-				Object data = menu.getData(ResourceVisitor.ELEMENT_KEY);
-				if (data != null && data instanceof XamlElement) {
-					collector.add(data);
-				}
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#removeChildVisual(org.eclipse.gef.EditPart)
-	 */
-	protected void removeChildVisual(EditPart childEditPart) {
-		IFigure child = ((GraphicalEditPart) childEditPart).getFigure();
-		if (child.getParent() != null) {
-			super.removeChildVisual(childEditPart);
-		}
-		// TODO: handle expandable items.
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.xaml.ve.editor.editparts.GraphicalNodeEditPart#createEditPolicies()
-	 */
-	protected void createEditPolicies() {
-		super.createEditPolicies();
-		installEditPolicy(PolicyConstants.EXPANDABLE_EDITPOLICY, new MenuItemExpandableEditPolicy());
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/SashEditPart.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/SashEditPart.java
deleted file mode 100755
index 324cb47..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/SashEditPart.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.RectangleFigure;
-import org.eclipse.xwt.IConstants;
-import org.eclipse.gef.DragTracker;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.RequestConstants;
-import org.eclipse.gef.SharedCursors;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.UnexecutableCommand;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Cursor;
-import org.eclipse.swt.widgets.Sash;
-import org.eclipse.xwt.tools.ui.designer.parts.misc.DragSashTracker;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jin.liu (jin.liu@soyatec.com)
- * 
- */
-public class SashEditPart extends ControlEditPart {
-
-	public SashEditPart(Sash sash, XamlNode model) {
-		super(sash, model);
-		if (model == null) {
-			model = XamlFactory.eINSTANCE.createElement("Sash",
-					IConstants.XWT_NAMESPACE);
-			setModel(model);
-		}
-	}
-	
-	@Override
-	protected IFigure createContentPane() {
-		RectangleFigure rectangle = new RectangleFigure();
-		rectangle.setForegroundColor(ColorConstants.lightGray);
-		rectangle.setFill(true);
-		return rectangle;
-	}
-
-	@Override
-	public Command getCommand(Request request) {
-		if (request.getType().equals(RequestConstants.REQ_DELETE)) {
-			return UnexecutableCommand.INSTANCE;
-		}
-		return super.getCommand(request);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.editparts.AbstractGraphicalEditPart#getDragTracker(org
-	 * .eclipse.gef.Request)
-	 */
-	public DragTracker getDragTracker(Request request) {
-		return new DragSashTracker(this);
-	}
-
-	public Cursor getDefaultCursor() {
-		if (isHorizontal()) {
-			return SharedCursors.SIZENS;			
-		}
-		return SharedCursors.SIZEWE;			
-	}
-	
-	public boolean isHorizontal() {
-		Sash sash = (Sash) getWidget();
-		if (sash != null && !sash.isDisposed()) {
-			return ((sash.getStyle() & SWT.HORIZONTAL) == SWT.HORIZONTAL);
-		}
-		return true;
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/SashFormEditPart.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/SashFormEditPart.java
deleted file mode 100755
index e619267..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/SashFormEditPart.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts;
-
-import java.util.List;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Sash;
-import org.eclipse.xwt.tools.ui.designer.editor.sash.SashFormLayoutEditPolicy;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jin.liu (jin.liu@soyatec.com)
- * 
- */
-public class SashFormEditPart extends CompositeEditPart {
-
-	public SashFormEditPart(SashForm composite, XamlNode model) {
-		super(composite, model);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart#
-	 * createEditPolicies()
-	 */
-	protected void createEditPolicies() {
-		super.createEditPolicies();
-		installEditPolicy(EditPolicy.LAYOUT_ROLE,
-				new SashFormLayoutEditPolicy());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart#refresh()
-	 */
-	public void refresh() {
-		super.refresh();
-		EditPolicy layoutPolicy = getEditPolicy(EditPolicy.LAYOUT_ROLE);
-		if (layoutPolicy != null) {
-			layoutPolicy.deactivate();
-			layoutPolicy.activate();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.xwt.tools.ui.designer.parts.ControlEditPart#getExternalModels
-	 * ()
-	 */
-	protected void collectExternalModels(List<Object> collector) {
-		super.collectExternalModels(collector);
-		SashForm sashForm = (SashForm) getWidget();
-		if (sashForm != null && !sashForm.isDisposed()) {
-			Control[] children = sashForm.getChildren();
-			int i = 1;
-			for (Control control : children) {
-				if (control instanceof Sash) {
-					collector.add(i, control);
-					i += 2;
-				}
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.editparts.AbstractEditPart#createChild(java.lang.Object)
-	 */
-	protected EditPart createChild(Object model) {
-		if (model instanceof Sash) {
-			return new SashEditPart((Sash) model, null);
-		}
-		return super.createChild(model);
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.FlowLayoutEditPolicy#isHorizontal()
-	 */
-	public boolean isHorizontal() {
-		SashForm sashForm = (SashForm) getWidget();
-		if (sashForm != null && !sashForm.isDisposed()) {
-			return (sashForm.getOrientation() & SWT.HORIZONTAL) != 0;
-		}
-		return true;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ShellEditPart.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ShellEditPart.java
deleted file mode 100755
index d6b2d67..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ShellEditPart.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts;
-
-import java.util.List;
-
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class ShellEditPart extends CompositeEditPart {
-
-	public ShellEditPart(Shell shell, XamlNode model) {
-		super(shell, model);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.xaml.ve.xwt.editparts.WidgetEditPart#collectExternalModels()
-	 */
-	protected void collectExternalModels(List<Object> collector) {
-		super.collectExternalModels(collector);
-		Shell shell = (Shell) getWidget();
-		if (shell != null && !shell.isDisposed()) {
-			Menu menuBar = shell.getMenuBar();
-			if (menuBar != null && !menuBar.isDisposed()) {
-				Object data = XWTProxy.getModel(menuBar);
-				if (data != null) {
-					collector.add(data);
-				}
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/StackItemEditPart.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/StackItemEditPart.java
deleted file mode 100755
index a1cf881..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/StackItemEditPart.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts;
-
-import org.eclipse.gef.Request;
-import org.eclipse.gef.RequestConstants;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jin.liu (jin.liu@soyatec.com)
- * 
- */
-public abstract class StackItemEditPart extends ItemEditPart {
-
-	public StackItemEditPart(Item item, XamlNode model) {
-		super(item, model);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.editparts.AbstractEditPart#performRequest(org.eclipse
-	 * .gef.Request)
-	 */
-	public void performRequest(Request req) {
-		if (req.getType() == RequestConstants.REQ_OPEN) {
-			popItem();
-		}
-		super.performRequest(req);
-	}
-	
-	protected abstract void popItem();
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/StackableEditPart.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/StackableEditPart.java
deleted file mode 100755
index 5f9add3..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/StackableEditPart.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts;
-
-import java.util.List;
-
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.StackableLayoutEditPolicy;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jin.liu (jin.liu@soyatec.com)
- * 
- */
-public abstract class StackableEditPart extends CompositeEditPart {
-
-	public StackableEditPart(Composite composite, XamlNode model) {
-		super(composite, model);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.xwt.tools.ui.designer.parts.ControlEditPart#collectExternalModels
-	 * ()
-	 */
-	protected void collectExternalModels(List<Object> collector) {
-		super.collectExternalModels(collector);
-		Control popControl = getPopControl();
-		if (popControl != null) {
-			XamlNode model = XWTProxy.getModel(popControl);
-			if (model != null) {
-				collector.add(model);
-			}
-		}
-	}
-
-	public StackItemEditPart getPopItemPart() {
-		Item popItem = getPopItem();
-		if (popItem == null || popItem.isDisposed()) {
-			return null;
-		}
-		XamlNode model = XWTProxy.getModel(popItem);
-		return (StackItemEditPart) getViewer().getEditPartRegistry().get(model);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart#
-	 * createEditPolicies()
-	 */
-	protected void createEditPolicies() {
-		super.createEditPolicies();
-		installEditPolicy(EditPolicy.LAYOUT_ROLE,
-				new StackableLayoutEditPolicy());
-	}
-
-	protected abstract Control getPopControl();
-
-	protected abstract Item getPopItem();
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/TabFolderEditPart.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/TabFolderEditPart.java
deleted file mode 100755
index fd1128b..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/TabFolderEditPart.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts;
-
-import java.util.List;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.TabFolderLayoutEditPolicy;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author rui.ban rui.ban@soyatec.com
- */
-public class TabFolderEditPart extends CompositeEditPart {
-
-	public TabFolderEditPart(Composite tabFolder, XamlNode model) {
-		super(tabFolder, model);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.xaml.ve.xwt.editparts.WidgetEditPart#collectExternalModels()
-	 */
-	protected void collectExternalModels(List<Object> collector) {
-		super.collectExternalModels(collector);
-		Control control = getActiveItemControl();
-		if (control != null && !control.isDisposed()) {
-			Object data = XWTProxy.getModel(control);
-			if (data != null) {
-				collector.add(data);
-			}
-		}
-	}
-
-	public Control getActiveItemControl() {
-		Item activeItem = getActiveItem();
-		if (activeItem == null || activeItem.isDisposed()) {
-			return null;
-		}
-		if (activeItem instanceof TabItem) {
-			return ((TabItem) activeItem).getControl();
-		} else if (activeItem instanceof CTabItem) {
-			return ((CTabItem) activeItem).getControl();
-		}
-		return null;
-	}
-
-	public Item getActiveItem() {
-		Widget widget = getWidget();
-		if (widget == null || widget.isDisposed()) {
-			return null;
-		}
-		if (widget instanceof TabFolder) {
-			TabItem[] selection = ((TabFolder) widget).getSelection();
-			if (selection != null && selection.length > 0) {
-				return selection[0];
-			}
-		} else if (widget instanceof CTabFolder) {
-			CTabFolder folder = (CTabFolder) widget;
-			CTabItem selection = folder.getSelection();
-			if (selection != null) {
-				return selection;
-			}
-			CTabItem[] items = folder.getItems();
-			if (items != null && items.length > 0) {
-				folder.setSelection(items[0]);
-				return items[0];
-			}
-		}
-		return null;
-	}
-
-	public EditPart getActiveItemPart() {
-		Item tabItem = getActiveItem();
-		if (tabItem == null) {
-			return null;
-		}
-		Object data = XWTProxy.getModel(tabItem);
-		if (data != null) {
-			return (EditPart) getViewer().getEditPartRegistry().get(data);
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart#
-	 * createEditPolicies()
-	 */
-	protected void createEditPolicies() {
-		super.createEditPolicies();
-		installEditPolicy(EditPolicy.LAYOUT_ROLE,
-				new TabFolderLayoutEditPolicy());
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/TabItemEditPart.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/TabItemEditPart.java
deleted file mode 100755
index 5335a29..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/TabItemEditPart.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.RequestConstants;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
-import org.eclipse.xwt.tools.ui.designer.core.parts.RefreshContext;
-import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author rui.ban rui.ban@soyatec.com
- */
-public class TabItemEditPart extends ItemEditPart {
-
-	public TabItemEditPart(Item item, XamlNode model) {
-		super(item, model);
-	}
-
-	/**
-	 * @see org.eclipse.gef.editparts.AbstractEditPart#performRequest(org.eclipse.gef.Request)
-	 */
-	public void performRequest(Request request) {
-		if (request.getType() == RequestConstants.REQ_OPEN) {
-			Widget widget = getWidget();
-			if (widget instanceof TabItem) {
-				TabItem item = (TabItem) widget;
-				TabFolder parent = item.getParent();
-				parent.setSelection(item);
-			}
-			EditPart parent = getParent();
-			EditDomain editDomain = EditDomain.getEditDomain(parent);
-			XWTDesigner designer = (XWTDesigner) editDomain.getEditorPart();
-			designer.refresh(parent, RefreshContext.ALL());
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ToolBarEditPart.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ToolBarEditPart.java
deleted file mode 100755
index f9a4a5e..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ToolBarEditPart.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts;
-
-import java.util.List;
-
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.ToolBarLayoutEditPolicy;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author rui.ban rui.ban@soyatec.com
- */
-public class ToolBarEditPart extends CompositeEditPart {
-
-	public ToolBarEditPart(ToolBar toolBar, XamlNode model) {
-		super(toolBar, model);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.parts.ControlEditPart#collectExternalModels()
-	 */
-	protected void collectExternalModels(List<Object> collector) {
-		ToolBar toolBar = (ToolBar) getWidget();
-		if (toolBar != null && !toolBar.isDisposed()) {
-			Control[] children = toolBar.getChildren();
-			for (Control control : children) {
-				Object data = XWTProxy.getModel(control);
-				if (data != null) {
-					collector.add(data);
-				}
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart#createEditPolicies()
-	 */
-	protected void createEditPolicies() {
-		super.createEditPolicies();
-		installEditPolicy(EditPolicy.LAYOUT_ROLE, new ToolBarLayoutEditPolicy());
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ToolItemEditPart.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ToolItemEditPart.java
deleted file mode 100755
index b8614d6..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ToolItemEditPart.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts;
-
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author rui.ban rui.ban@soyatec.com
- */
-public class ToolItemEditPart extends ItemEditPart {
-
-	public ToolItemEditPart(ToolItem item, XamlNode model) {
-		super(item, model);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ViewerEditPart.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ViewerEditPart.java
deleted file mode 100755
index fb8de8c..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ViewerEditPart.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts;
-
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.AbstractLayout;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.xwt.IConstants;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.editpolicies.ConstrainedLayoutEditPolicy;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.xwt.tools.ui.designer.core.figures.ContentPaneFigure;
-import org.eclipse.xwt.tools.ui.designer.core.parts.VisualEditPart;
-import org.eclipse.xwt.tools.ui.designer.core.visuals.IVisualInfo;
-import org.eclipse.xwt.tools.ui.designer.core.visuals.swt.ViewerInfo;
-import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTModelUtil;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ViewerEditPart extends VisualEditPart {
-
-	protected Viewer viewer;
-
-	public ViewerEditPart(Viewer viewer, XamlNode model) {
-		super(model);
-		this.viewer = viewer;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.soyatec.tools.designer.parts.GraphicalNodeEditPart#createVisualInfo()
-	 */
-	protected IVisualInfo createVisualInfo() {
-		return new ViewerInfo(viewer, isRoot());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.soyatec.tools.designer.parts.GraphicalNodeEditPart#createFigure()
-	 */
-	protected IFigure createFigure() {
-		ContentPaneFigure figure = new ContentPaneFigure();
-		Label pane = new Label();
-		// pane.setForegroundColor(ColorConstants.red);
-		pane.setLayoutManager(new AbstractLayout() {
-			public void layout(IFigure parent) {
-				Rectangle r = parent.getBounds().getCopy();
-				Iterator children = parent.getChildren().iterator();
-				IFigure f;
-				while (children.hasNext()) {
-					f = (IFigure) children.next();
-					f.setBounds(r.shrink(1, 1));
-				}
-			}
-
-			protected Dimension calculatePreferredSize(IFigure container, int wHint, int hHint) {
-				return container.getPreferredSize();
-			}
-		});
-		figure.setContentPane(pane);
-		return figure;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.xwt.tools.ui.designer.core.parts.GraphicalNodeEditPart#getModelChildren()
-	 */
-	protected List getModelChildren() {
-		if (viewer != null) {
-			Control control = viewer.getControl();
-			XamlNode model = XWTProxy.getModel(control);
-			if (model == null) {
-				model = XWTModelUtil.getAdaptableAttribute(getCastModel(), "control", IConstants.XWT_NAMESPACE);
-			}
-			if (model == null) {
-				model = XamlFactory.eINSTANCE.createAttribute("control", IConstants.XWT_NAMESPACE);
-				getCastModel().getAttributes().add((XamlAttribute) model);
-			}
-			return Collections.singletonList(model);
-		}
-		return super.getModelChildren();
-	}
-
-	public Viewer getJfaceViewer() {
-		return viewer;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.xwt.tools.ui.designer.core.parts.VisualEditPart#createEditPolicies()
-	 */
-	protected void createEditPolicies() {
-		super.createEditPolicies();
-		installEditPolicy(EditPolicy.LAYOUT_ROLE, new ConstrainedLayoutEditPolicy() {
-			protected Command createChangeConstraintCommand(EditPart child, Object constraint) {
-				return null;
-			}
-
-			protected Object getConstraintFor(Point point) {
-				return null;
-			}
-
-			protected Object getConstraintFor(Rectangle rect) {
-				return null;
-			}
-
-			protected Command getCreateCommand(CreateRequest request) {
-				return null;
-			}
-		});
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.xwt.tools.ui.designer.core.parts.VisualEditPart#getCastModel()
-	 */
-	public XamlNode getCastModel() {
-		return (XamlNode) super.getCastModel();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/WidgetEditPart.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/WidgetEditPart.java
deleted file mode 100755
index 7b6b19f..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/WidgetEditPart.java
+++ /dev/null
@@ -1,294 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.draw2d.ChopboxAnchor;
-import org.eclipse.draw2d.ConnectionAnchor;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.gef.ConnectionEditPart;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.NodeEditPart;
-import org.eclipse.gef.Request;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
-import org.eclipse.xwt.tools.ui.designer.core.editor.IVisualRenderer;
-import org.eclipse.xwt.tools.ui.designer.core.parts.VisualEditPart;
-import org.eclipse.xwt.tools.ui.designer.core.parts.root.BindingLayer;
-import org.eclipse.xwt.tools.ui.designer.core.visuals.IVisualInfo;
-import org.eclipse.xwt.tools.ui.designer.core.visuals.swt.WidgetInfo;
-import org.eclipse.xwt.tools.ui.designer.databinding.BindingHelper;
-import org.eclipse.xwt.tools.ui.designer.databinding.BindingInfo;
-import org.eclipse.xwt.tools.ui.designer.databinding.DataContext;
-import org.eclipse.xwt.tools.ui.designer.databinding.IObservable;
-import org.eclipse.xwt.tools.ui.designer.editor.XWTVisualRenderer;
-import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
-import org.eclipse.xwt.tools.ui.designer.policies.ComponentEditPolicy;
-import org.eclipse.xwt.tools.ui.designer.policies.GraphicalNodeEditPolicyImpl;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class WidgetEditPart extends VisualEditPart implements NodeEditPart {
-	private Widget widget;
-
-	public WidgetEditPart(Widget widget, XamlNode model) {
-		super(model);
-		this.widget = widget;
-	}
-
-	/**
-	 * @return the widget
-	 */
-	public Widget getWidget() {
-		if (!validate()) {
-			EditDomain editDomain = EditDomain.getEditDomain(this);
-			if (editDomain == null){
-				return null;
-			}
-			XWTVisualRenderer controlRender = (XWTVisualRenderer) editDomain
-					.getViewerData(getViewer(), IVisualRenderer.KEY);
-			if (controlRender != null) {
-				Object component = controlRender.getVisual(getCastModel());
-				if (component instanceof Widget) {
-					widget = (Widget) component;
-				}
-			}
-			if (validate()) {
-				((IVisualInfo) getVisualInfo()).setVisualObject(widget);
-			}
-		}
-		return widget;
-	}
-
-	public boolean validate() {
-		return widget != null && !widget.isDisposed();
-	}
-	
-	@Override
-	public boolean isSelectable() {
-		return validate() && getCastModel() != null && getCastModel().eContainer() != null && super.isSelectable();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.soyatec.xaml.ve.editor.editparts.GraphicalNodeEditPart#createVisualInfo
-	 * ()
-	 */
-	protected IVisualInfo createVisualInfo() {
-		return new WidgetInfo(widget, isRoot());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.soyatec.xaml.ve.editor.editparts.GraphicalNodeEditPart#getModelChildren
-	 * ()
-	 */
-	protected List getModelChildren() {
-		List modelChildren = new ArrayList(getCastModel().getChildNodes());
-		collectExternalModels(modelChildren);
-		return modelChildren;
-	}
-
-	protected void collectExternalModels(List<Object> collector) {
-		if (isRoot()) {
-			DataContext dataContext = BindingHelper.getDataContext(getWidget());
-			if (dataContext != null) {
-				collector.add(dataContext);
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.soyatec.tools.designer.parts.GraphicalNodeEditPart#createEditPolicies
-	 * ()
-	 */
-	protected void createEditPolicies() {
-		super.createEditPolicies();
-		installEditPolicy(EditPolicy.COMPONENT_ROLE, new ComponentEditPolicy());
-		installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE,
-				new GraphicalNodeEditPolicyImpl());
-	}
-
-	public boolean isTransparent() {
-		if (!(getParent() instanceof DiagramEditPart)) {
-			return true;
-		}
-		return super.isTransparent();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.xwt.tools.ui.designer.core.parts.VisualEditPart#
-	 * validateVisuals()
-	 */
-	protected boolean validateVisuals() {
-		getWidget();
-		return super.validateVisuals() && validate();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.editparts.AbstractGraphicalEditPart#addChildVisual(org
-	 * .eclipse.gef.EditPart, int)
-	 */
-	protected void addChildVisual(EditPart childEditPart, int index) {
-		if (childEditPart instanceof DataContextEditPart) {
-			IFigure child = ((GraphicalEditPart) childEditPart).getFigure();
-			IFigure layer = getLayer(BindingLayer.ID);
-			if (child != null && layer != null) {
-				layer.add(child);
-			}
-		} else {
-			super.addChildVisual(childEditPart, index);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.editparts.AbstractGraphicalEditPart#removeChildVisual
-	 * (org.eclipse.gef.EditPart)
-	 */
-	protected void removeChildVisual(EditPart childEditPart) {
-		if (childEditPart instanceof DataContextEditPart) {
-			IFigure child = ((GraphicalEditPart) childEditPart).getFigure();
-			IFigure layer = getLayer(BindingLayer.ID);
-			if (child != null && child.getParent() == layer) {
-				layer.remove(child);
-			}
-		} else {
-			super.removeChildVisual(childEditPart);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.editparts.AbstractGraphicalEditPart#getModelSourceConnections
-	 * ()
-	 */
-	protected List getModelSourceConnections() {
-		XWTVisualRenderer controlRender = (XWTVisualRenderer) EditDomain
-				.getEditDomain(this).getViewerData(getViewer(),
-						IVisualRenderer.KEY);
-		Object root = controlRender.getRoot();
-		if (root != null && root instanceof Widget) {
-			root = XWTProxy.getModel((Widget) root);
-			EditPart rootEp = (EditPart) getViewer().getEditPartRegistry().get(
-					root);
-			XamlNode model = getCastModel();
-			if (rootEp != null) {
-				List<BindingInfo> sources = new ArrayList<BindingInfo>();
-				List<BindingInfo> allBindings = BindingHelper
-						.getBindings(rootEp);
-				for (BindingInfo bindingInfo : allBindings) {
-					IObservable observeModel = bindingInfo.getModel();
-					if (model == observeModel.getSource()) {
-						sources.add(bindingInfo);
-					}
-				}
-				return sources;
-			}
-		}
-		return super.getModelSourceConnections();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.editparts.AbstractGraphicalEditPart#getModelTargetConnections
-	 * ()
-	 */
-	protected List getModelTargetConnections() {
-		List<BindingInfo> bindings = BindingHelper.getBindings(this);
-		if (bindings != null) {
-			return bindings;
-		}
-		return super.getModelTargetConnections();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.xwt.tools.ui.designer.core.parts.VisualEditPart#getCastModel
-	 * ()
-	 */
-	public XamlNode getCastModel() {
-		return (XamlNode) super.getCastModel();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.NodeEditPart#getSourceConnectionAnchor(org.eclipse.gef
-	 * .ConnectionEditPart)
-	 */
-	public ConnectionAnchor getSourceConnectionAnchor(
-			ConnectionEditPart connection) {
-		return new ChopboxAnchor(getFigure());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.NodeEditPart#getSourceConnectionAnchor(org.eclipse.gef
-	 * .Request)
-	 */
-	public ConnectionAnchor getSourceConnectionAnchor(Request request) {
-		return new ChopboxAnchor(getFigure());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.NodeEditPart#getTargetConnectionAnchor(org.eclipse.gef
-	 * .ConnectionEditPart)
-	 */
-	public ConnectionAnchor getTargetConnectionAnchor(
-			ConnectionEditPart connection) {
-		return new ChopboxAnchor(getFigure());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.NodeEditPart#getTargetConnectionAnchor(org.eclipse.gef
-	 * .Request)
-	 */
-	public ConnectionAnchor getTargetConnectionAnchor(Request request) {
-		return new ChopboxAnchor(getFigure());
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/XWTEditPartFactory.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/XWTEditPartFactory.java
deleted file mode 100755
index 11ac32b..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/XWTEditPartFactory.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts;
-
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.xwt.tools.ui.palette.page.editparts.EditPartFactory;
-import org.eclipse.gef.EditPart;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.CoolBar;
-import org.eclipse.swt.widgets.CoolItem;
-import org.eclipse.swt.widgets.ExpandBar;
-import org.eclipse.swt.widgets.ExpandItem;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.swt.widgets.TreeColumn;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.tools.ui.designer.core.editor.IVisualFactory;
-import org.eclipse.xwt.tools.ui.designer.databinding.BindingInfo;
-import org.eclipse.xwt.tools.ui.designer.databinding.DataContext;
-import org.eclipse.xwt.tools.ui.designer.utils.StyleHelper;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class XWTEditPartFactory extends EditPartFactory {
-
-	private IVisualFactory factory;
-
-	public void setVisualFactory(IVisualFactory factory) {
-		this.factory = factory;
-	}
-
-	public IVisualFactory getVisualFactory() {
-		return factory;
-	}
-
-	/**
-	 * @see org.eclipse.gef.EditPartFactory#createEditPart(org.eclipse.gef.EditPart,
-	 *      java.lang.Object)
-	 */
-	public EditPart createEditPart(EditPart context, Object model) {
-		if (model instanceof XamlDocument) {
-			return new DiagramEditPart((XamlDocument) model);
-		} else if (model instanceof DataContext) {
-			return new DataContextEditPart((DataContext) model);
-		} else if (model instanceof BindingInfo) {
-			return new BindingConnectionEditPart((BindingInfo) model);
-		} else if (model instanceof XamlNode) {
-			XamlNode element = (XamlNode) model;
-			Object visual = null;
-			if (factory != null) {
-				visual = factory.getVisual(element);
-			}
-			Class<?> type = null;
-			if (visual != null) {
-				type = visual.getClass();
-			} else if (element instanceof XamlElement) {
-				IMetaclass metaclass = XWTUtility
-						.getMetaclass((XamlElement) model);
-				if (metaclass != null && metaclass.getType() != null) {
-					type = metaclass.getType();
-				}
-			}
-			if (type == null) {
-				throw new UnsupportedOperationException("Unsupport Type: "
-						+ model.toString());
-			}
-			if (Shell.class.isAssignableFrom(type)) {
-				return new ShellEditPart((Shell) visual, element);
-			} else if (TabFolder.class.isAssignableFrom(type)
-					|| CTabFolder.class.isAssignableFrom(type)) {
-				return new TabFolderEditPart((Composite) visual, element);
-			} else if (CoolBar.class.isAssignableFrom(type)) {
-				return new CoolBarEditPart((CoolBar) visual, element);
-			} else if (ToolBar.class.isAssignableFrom(type)) {
-				return new ToolBarEditPart((ToolBar) visual, element);
-			} else if (ExpandBar.class.isAssignableFrom(type)) {
-				return new ExpandBarEditPart((ExpandBar) visual, element);
-			} else if (SashForm.class.isAssignableFrom(type)){
-				return new SashFormEditPart((SashForm) visual, element);
-			}else if (Composite.class.isAssignableFrom(type)) {
-				return new CompositeEditPart((Composite) visual, element);
-			} else if (Label.class.isAssignableFrom(type)) {
-				return new LabelEditPart((Label) visual, element);
-			} else if (Control.class.isAssignableFrom(type)) {
-				return new ControlEditPart((Control) visual, element);
-			} else if (TabItem.class.isAssignableFrom(type)
-					|| CTabItem.class.isAssignableFrom(type)) {
-				return new TabItemEditPart((Item) visual, element);
-			} else if (MenuItem.class.isAssignableFrom(type)) {
-				return new MenuItemEditPart((MenuItem) visual, element);
-			} else if (CoolItem.class.isAssignableFrom(type)) {
-				return new CoolItemEditPart((CoolItem) visual, element);
-			} else if (ToolItem.class.isAssignableFrom(type)) {
-				return new ToolItemEditPart((ToolItem) visual, element);
-			} else if (ExpandItem.class.isAssignableFrom(type)) {
-				return new ExpandItemEditPart((ExpandItem) visual, element);
-			} else if (TableColumn.class.isAssignableFrom(type)
-					|| TreeColumn.class.isAssignableFrom(type)) {
-				return new ColumnEditPart((Item) visual, element);
-			} else if (Menu.class.isAssignableFrom(type)) {
-				if (StyleHelper.checkStyle(element, SWT.BAR)) {
-					return new MenuBarEditPart((Menu) visual, element);
-				} else {
-					return new MenuEditPart((Menu) visual, element);
-				}
-			} else if (Item.class.isAssignableFrom(type)) {
-				return new ItemEditPart((Item) visual, element);
-			} else if (Widget.class.isAssignableFrom(type)) {
-				return new WidgetEditPart((Widget) visual, element);
-			} else {
-				try {
-					Class<?> jfaceViewer = Class
-							.forName("org.eclipse.jface.viewers.Viewer");
-					if (jfaceViewer.isAssignableFrom(type)) {
-						return new ViewerEditPart((Viewer) visual, element);
-					}
-				} catch (ClassNotFoundException e) {
-				}
-			}
-		}
-		throw new UnsupportedOperationException("Unsupport Type: "
-				+ model.toString());
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/direct/ElementCellEditLocator.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/direct/ElementCellEditLocator.java
deleted file mode 100755
index b22b347..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/direct/ElementCellEditLocator.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts.direct;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.tools.CellEditorLocator;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Text;
-
-public class ElementCellEditLocator implements CellEditorLocator {
-	private IFigure figure;
-
-	public ElementCellEditLocator(IFigure figure) {
-		this.figure = figure;
-	}
-
-	public void relocate(CellEditor celleditor) {
-		Text text = (Text) celleditor.getControl();
-		Point pref = text.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		Rectangle rect = this.figure.getBounds();
-		text.setBounds(rect.x - 1, rect.y - 1, pref.x + 1, pref.y + 1);
-
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/direct/ElementDirectEditManager.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/direct/ElementDirectEditManager.java
deleted file mode 100755
index 3395d5d..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/direct/ElementDirectEditManager.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts.direct;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.tools.CellEditorLocator;
-import org.eclipse.gef.tools.DirectEditManager;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.VerifyEvent;
-import org.eclipse.swt.events.VerifyListener;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Text;
-
-public class ElementDirectEditManager extends DirectEditManager {
-	protected VerifyListener verifyListener;
-	protected IFigure figure;
-
-	public ElementDirectEditManager(GraphicalEditPart source, Class editorType,
-			CellEditorLocator locator, IFigure figure) {
-		super(source, editorType, locator);
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.tools.DirectEditManager#initCellEditor()
-	 */
-	protected void initCellEditor() {
-		verifyListener = new VerifyListener() {
-			public void verifyText(VerifyEvent event) {
-				CellEditor cellEditor = getCellEditor();
-				if (cellEditor == null) {
-					return;
-				}
-				Text text = (Text) cellEditor.getControl();
-				if (text == null || text.isDisposed()) {
-					return;
-				}
-				text.setFocus();
-				String oldText = text.getText();
-				String leftText = oldText.substring(0, event.start);
-				String rightText = oldText.substring(event.end, oldText
-						.length());
-				GC gc = new GC(text);
-				Point size = gc.textExtent(leftText + event.text + rightText);
-				gc.dispose();
-				// if (size.x != 0) {
-				size = text.computeSize(50, SWT.DEFAULT);
-				// }
-				Display d = text.getDisplay();
-				if (text != null && !text.isDisposed() && d != null
-						&& !d.isDisposed()) {
-					text.setSize(size.x, size.y);
-				}
-			}
-
-		};
-
-		Text text = (Text) getCellEditor().getControl();
-		text.addVerifyListener(verifyListener);
-		text.selectAll();
-		text.setFocus();
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/figures/DataBindingConnection.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/figures/DataBindingConnection.java
deleted file mode 100755
index fee28e5..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/figures/DataBindingConnection.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts.figures;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.ConnectionEndpointLocator;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.LineBorder;
-import org.eclipse.draw2d.ManhattanConnectionRouter;
-import org.eclipse.draw2d.PolygonDecoration;
-import org.eclipse.draw2d.PolylineConnection;
-import org.eclipse.draw2d.PolylineDecoration;
-import org.eclipse.draw2d.RotatableDecoration;
-import org.eclipse.draw2d.geometry.PointList;
-import org.eclipse.swt.SWT;
-import org.eclipse.xwt.tools.ui.designer.databinding.BindingInfo;
-import org.eclipse.xwt.tools.ui.designer.databinding.IObservable;
-import org.eclipse.xwt.tools.ui.designer.databinding.Property;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class DataBindingConnection extends PolylineConnection {
-
-	private BindingInfo bindingInfo;
-	private Label sourceEndpoint;
-	private Label targetEndpoint;
-
-	public DataBindingConnection(BindingInfo bindingInfo) {
-		this.bindingInfo = bindingInfo;
-		setForegroundColor(ColorConstants.red);
-		setConnectionRouter(new ManhattanConnectionRouter());
-		setLineJoin(SWT.JOIN_ROUND);
-
-		setTargetDecoration(createTargetDecoration());
-
-		setDisplayEndpoints(true);
-	}
-
-	protected void addTargetEndpoint() {
-		if (bindingInfo == null) {
-			return;
-		}
-		IObservable observeTarget = bindingInfo.getTarget();
-		if (observeTarget == null) {
-			return;
-		}
-		Property property = bindingInfo.getTargetProperty();
-		if (property == null) {
-			return;
-		}
-		targetEndpoint = new Label(property.toString());
-		targetEndpoint.setOpaque(false);
-		targetEndpoint.setBackgroundColor(ColorConstants.buttonLightest);
-		targetEndpoint.setForegroundColor(ColorConstants.blue);
-		targetEndpoint.setBorder(new LineBorder());
-		ConnectionEndpointLocator locator = new ConnectionEndpointLocator(this, true);
-		locator.setUDistance(2);
-		locator.setVDistance(3);
-		add(targetEndpoint, locator);
-	}
-
-	protected void addSourceEndpoint() {
-		if (bindingInfo == null) {
-			return;
-		}
-		IObservable model = bindingInfo.getModel();
-		if (model == null) {
-			return;
-		}
-		Property property = bindingInfo.getModelProperty();
-		if (property == null) {
-			return;
-		}
-		sourceEndpoint = new Label(property.toString());
-		sourceEndpoint.setOpaque(false);
-		sourceEndpoint.setBackgroundColor(ColorConstants.buttonLightest);
-		sourceEndpoint.setForegroundColor(ColorConstants.blue);
-		sourceEndpoint.setBorder(new LineBorder());
-		ConnectionEndpointLocator locator = new ConnectionEndpointLocator(this, false);
-		locator.setUDistance(2);
-		locator.setVDistance(-3);
-		add(sourceEndpoint, locator);
-	}
-
-	protected RotatableDecoration createTargetDecoration() {
-		return new PolygonDecoration();
-	}
-
-	protected RotatableDecoration createSourceDecoration() {
-		PolylineDecoration sourceDec = new PolylineDecoration();
-
-		PointList pl = new PointList();
-		pl.addPoint(-2, 1);
-		pl.addPoint(0, 1);
-		pl.addPoint(0, -1);
-		pl.addPoint(-2, -1);
-		sourceDec.setTemplate(pl);
-		sourceDec.setScale(7, 3);
-
-		return sourceDec;
-	}
-
-	public void setDisplayEndpoints(boolean display) {
-		if (display) {
-			addSourceEndpoint();
-			addTargetEndpoint();
-		} else {
-			if (sourceEndpoint != null && this == sourceEndpoint.getParent()) {
-				remove(sourceEndpoint);
-				sourceEndpoint = null;
-			}
-			if (targetEndpoint != null && this == targetEndpoint.getParent()) {
-				remove(targetEndpoint);
-				targetEndpoint = null;
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/figures/Expandable.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/figures/Expandable.java
deleted file mode 100755
index 8e0c6fe..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/figures/Expandable.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts.figures;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.gef.GraphicalEditPart;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public interface Expandable extends IFigure {
-
-	public void expand();
-
-	public void collapse();
-
-	public GraphicalEditPart getHost();
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/figures/MenuFigure.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/figures/MenuFigure.java
deleted file mode 100755
index 99f8def..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/figures/MenuFigure.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts.figures;
-
-import java.util.List;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.xwt.tools.ui.designer.parts.MenuEditPart;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class MenuFigure extends Figure implements Expandable {
-
-	private static final int HEIGHT_HINT = 4;
-	private static final int WIDTH_HINT = 40;
-	private MenuEditPart host;
-	private Label initLabel = new Label(" (New Menu) ");
-
-	public MenuFigure(MenuEditPart host) {
-		this.host = host;
-		initLabel.setFont(Display.getCurrent().getSystemFont());
-		setBackgroundColor(ColorConstants.white);
-		setForegroundColor(ColorConstants.gray);
-		MenuLayout manager = new MenuLayout();
-		manager.setStretchMinorAxis(true);
-		manager.setHorizontalSpacing(4);
-		manager.setVerticalSpacing(2);
-		manager.setMinorAlignment(MenuLayout.ALIGN_CENTER);
-		setLayoutManager(manager);
-
-		add(initLabel);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.draw2d.Figure#add(org.eclipse.draw2d.IFigure, java.lang.Object, int)
-	 */
-	public void add(IFigure figure, Object constraint, int index) {
-		if (figure != null && figure != initLabel && initLabel.getParent() == this) {
-			remove(initLabel);
-		}
-		super.add(figure, constraint, index);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.draw2d.Figure#paintFigure(org.eclipse.draw2d.Graphics)
-	 */
-	protected void paintFigure(Graphics graphics) {
-		Rectangle r = getBounds().getCopy();
-		int x = r.x;
-		int y = r.y;
-		int w = r.width - 1;
-		int h = r.height - 1;
-		graphics.fillRectangle(r);
-		graphics.drawRectangle(new Rectangle(x, y, w, h));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.xaml.ve.xwt.editparts.figures.Expandable#collapse()
-	 */
-	public void collapse() {
-		setVisible(false);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.xaml.ve.xwt.editparts.figures.Expandable#expand()
-	 */
-	public void expand() {
-		List<IFigure> children = getChildren();
-		int width = 0;
-		int height = 0;
-		for (IFigure figure : children) {
-			Dimension size = figure.getPreferredSize();
-			width = Math.max(width, size.width);
-			height += size.height;
-			figure.setBackgroundColor(ColorConstants.white);
-			figure.setForegroundColor(ColorConstants.white);
-		}
-		if (width > 0 && height > 0) {
-			setSize(new Dimension(width + WIDTH_HINT, height + HEIGHT_HINT));
-			layout();
-			setVisible(true);
-		}
-		repaint();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.xaml.ve.xwt.editparts.figures.Expandable#getHost()
-	 */
-	public GraphicalEditPart getHost() {
-		return host;
-	}
-
-	private static class MenuLayout extends ToolbarLayout {
-		private int horizontalSpacing = 0;
-		private int verticalSpacing = 0;
-
-		public MenuLayout() {
-			setVertical(true);
-		}
-
-		public void layout(IFigure parent) {
-			super.layout(parent);
-			List<IFigure> children = parent.getChildren();
-			for (IFigure child : children) {
-				Rectangle r = child.getBounds().getCopy();
-				int height = r.height - getVerticalSpacing() * 2;
-				if (height < 1) {
-					height = 1;// for separator.
-				}
-				child.setBounds(new Rectangle(r.x + getHorizontalSpacing(), r.y + getVerticalSpacing(), r.width - getHorizontalSpacing() * 2, height));
-			}
-		}
-
-		/**
-		 * @param horizontalSpacing
-		 *            the horizontalSpacing to set
-		 */
-		public void setHorizontalSpacing(int horizontalSpacing) {
-			this.horizontalSpacing = horizontalSpacing;
-		}
-
-		/**
-		 * @return the horizontalSpacing
-		 */
-		public int getHorizontalSpacing() {
-			return horizontalSpacing;
-		}
-
-		/**
-		 * @param verticalSpacing
-		 *            the verticalSpacing to set
-		 */
-		public void setVerticalSpacing(int verticalSpacing) {
-			this.verticalSpacing = verticalSpacing;
-		}
-
-		/**
-		 * @return the verticalSpacing
-		 */
-		public int getVerticalSpacing() {
-			return verticalSpacing;
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/figures/MenuItemFigure.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/figures/MenuItemFigure.java
deleted file mode 100755
index 64dbb6f..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/figures/MenuItemFigure.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts.figures;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.PositionConstants;
-import org.eclipse.draw2d.RectangleFigure;
-import org.eclipse.draw2d.XYLayout;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.tools.ui.designer.parts.MenuItemEditPart;
-import org.eclipse.xwt.tools.ui.designer.utils.StyleHelper;
-
-public class MenuItemFigure extends RectangleFigure {
-
-	private MenuItemEditPart host;
-	private Label nameLabel = null;
-
-	public MenuItemFigure(MenuItemEditPart host) {
-		this.host = host;
-		setFill(false);
-		setLayoutManager(new XYLayout());
-		setForegroundColor(ColorConstants.menuBackground);
-		nameLabel = new Label();
-		nameLabel.setTextPlacement(PositionConstants.WEST);
-		nameLabel.setTextAlignment(PositionConstants.CENTER);
-		nameLabel.setLabelAlignment(PositionConstants.LEFT);
-		add(nameLabel);
-	}
-
-	public MenuItemEditPart getHost() {
-		return host;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.draw2d.Figure#getPreferredSize(int, int)
-	 */
-	public Dimension getPreferredSize(int hint, int hint2) {
-		if (host != null) {
-			return host.getVisualInfo().getBounds().getSize();
-		}
-		return super.getPreferredSize(hint, hint2);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.draw2d.Figure#setBounds(org.eclipse.draw2d.geometry.Rectangle)
-	 */
-	public void setBounds(Rectangle rect) {
-		super.setBounds(rect);
-		Rectangle copy = rect.getCopy().shrink(20, 0).resize(-4, 0);
-		nameLabel.setBounds(copy);
-	}
-
-	private boolean displayText() {
-		Widget widget = host.getWidget();
-		if (widget != null && !widget.isDisposed() && widget instanceof MenuItem) {
-			return !StyleHelper.isOnMenubar((MenuItem) widget);
-		}
-		return false;
-	}
-
-	private boolean isSeparator() {
-		Widget widget = host.getWidget();
-		return StyleHelper.checkStyle(widget, SWT.SEPARATOR);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.draw2d.Shape#paintFigure(org.eclipse.draw2d.Graphics)
-	 */
-	public void paintFigure(Graphics graphics) {
-		Rectangle r = getBounds().getCopy();
-		Widget widget = host.getWidget();
-		if (isSeparator()) {
-			graphics.setForegroundColor(ColorConstants.gray);
-			graphics.drawLine(r.x, r.y, r.x + r.width, r.y);
-		} else {
-			if (displayText()) {
-				if (widget != null && !widget.isDisposed() && widget instanceof MenuItem) {
-					nameLabel.setText(((MenuItem) widget).getText());
-				}
-				nameLabel.setForegroundColor(ColorConstants.black);
-			}
-			super.paintFigure(graphics);
-		}
-
-		if (displayText() && StyleHelper.checkStyle(widget, SWT.CASCADE)) {
-			Color fc = graphics.getForegroundColor();
-			Color bc = graphics.getBackgroundColor();
-
-			graphics.setBackgroundColor(ColorConstants.black);
-			graphics.setForegroundColor(ColorConstants.black);
-			Rectangle b = nameLabel.getBounds();
-			int x = b.x + b.width + 4;
-			int y = b.y;
-			drawRightArrow(graphics, x, y);
-
-			graphics.setForegroundColor(fc);
-			graphics.setBackgroundColor(bc);
-		}
-	}
-
-	protected void drawRightArrow(Graphics gc, int x, int y) {
-		x += 2;
-		y += 4;
-		gc.drawLine(x + 2, y, x + 5, y + 3);
-		gc.drawLine(x + 5, y + 4, x + 5, y + 4);
-		gc.drawLine(x + 4, y + 3, x + 4, y + 5);
-		gc.drawLine(x + 3, y + 1, x + 3, y + 6);
-		gc.drawLine(x + 2, y + 1, x + 2, y + 7);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/misc/CompositeEditPartHelper.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/misc/CompositeEditPartHelper.java
deleted file mode 100755
index c666b9d..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/misc/CompositeEditPartHelper.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts.misc;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
-import org.eclipse.xwt.tools.ui.designer.parts.ControlEditPart;
-
-public class CompositeEditPartHelper {
-
-	/**
-	 * Remove popup menus, just keep the ControlEditParts
-	 * 
-	 * @param compositeEditPart
-	 * @return
-	 */
-	public static List<ControlEditPart> getChildren(
-			CompositeEditPart compositeEditPart) {
-		List<ControlEditPart> collector = new ArrayList<ControlEditPart>();
-		for (Iterator<?> iterator = compositeEditPart.getChildren().iterator(); iterator
-				.hasNext();) {
-			Object element = iterator.next();
-			if (element instanceof ControlEditPart) {
-				collector.add((ControlEditPart) element);
-			}
-		}
-		return collector;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/misc/DragSashTracker.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/misc/DragSashTracker.java
deleted file mode 100755
index 45ca37c..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/misc/DragSashTracker.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.parts.misc;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.requests.ChangeBoundsRequest;
-import org.eclipse.gef.tools.DragEditPartsTracker;
-import org.eclipse.swt.graphics.Cursor;
-import org.eclipse.xwt.tools.ui.designer.commands.ChangeWeightsCommand;
-import org.eclipse.xwt.tools.ui.designer.parts.SashEditPart;
-import org.eclipse.xwt.tools.ui.designer.parts.SashFormEditPart;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public class DragSashTracker extends DragEditPartsTracker {
-
-	public DragSashTracker(SashEditPart sourceEditPart) {
-		super(sourceEditPart);
-	}
-
-	protected Command getCommand() {
-		ChangeBoundsRequest targetRequest = (ChangeBoundsRequest) getTargetRequest();
-		EditPart parent = getSourceEditPart().getParent();
-		if (parent instanceof SashFormEditPart) {
-			return new ChangeWeightsCommand((SashFormEditPart) parent,
-					targetRequest);
-		}
-		return super.getCommand();
-	}
-
-	protected Cursor getDefaultCursor() {
-		SashEditPart editPart = (SashEditPart) getSourceEditPart();
-		return editPart.getDefaultCursor();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/ComponentEditPolicy.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/ComponentEditPolicy.java
deleted file mode 100755
index 9877d06..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/ComponentEditPolicy.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.requests.GroupRequest;
-import org.eclipse.xwt.tools.ui.designer.commands.DeleteCommand;
-import org.eclipse.xwt.tools.ui.designer.core.parts.VisualEditPart;
-import org.eclipse.xwt.tools.ui.designer.core.policies.DefaultComponentEditPolicy;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ComponentEditPolicy extends DefaultComponentEditPolicy {
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.gef.editpolicies.ComponentEditPolicy#getDeleteCommand(org.eclipse.gef.requests.GroupRequest)
-	 */
-	protected Command getDeleteCommand(GroupRequest request) {
-		List editParts = request.getEditParts();
-		if (!editParts.isEmpty()) {
-			List<XamlNode> deleteItems = new ArrayList<XamlNode>();
-			for (Iterator iterator = editParts.iterator(); iterator.hasNext();) {
-				Object object = (Object) iterator.next();
-				if (object instanceof VisualEditPart) {
-					VisualEditPart part = (VisualEditPart) object;
-					deleteItems.add((XamlNode) part.getCastModel());
-				}
-			}
-			if (!deleteItems.isEmpty()) {
-				return new DeleteCommand(deleteItems);
-			}
-		}
-		return super.getDeleteCommand(request);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/CoolBarEditPolicy.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/CoolBarEditPolicy.java
deleted file mode 100755
index ce130cf..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/CoolBarEditPolicy.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.swt.SWT;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.RowLayoutEditPolicy;
-import org.eclipse.xwt.tools.ui.designer.utils.StyleHelper;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-
-public class CoolBarEditPolicy extends RowLayoutEditPolicy {
-
-	protected Command createAddCommand(EditPart child, EditPart after) {
-		return null;
-	}
-
-	protected Command createMoveChildCommand(EditPart child, EditPart after) {
-		return null;
-	}
-
-	protected EditPolicy createChildEditPolicy(EditPart child) {
-		return new NewNonResizeEditPolicy(false);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.policies.layout.RowLayoutEditPolicy #getCreateCommand(org.eclipse.gef.requests.CreateRequest)
-	 */
-	@Override
-	protected Command getCreateCommand(CreateRequest request) {
-		// TODO Auto-generated method stub
-		return super.getCreateCommand(request);
-	}
-
-	protected boolean isHorizontal() {
-		XamlElement model = (XamlElement) this.getHost().getModel();
-		return StyleHelper.checkStyle(model, SWT.HORIZONTAL);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/CoolItemEditPolicy.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/CoolItemEditPolicy.java
deleted file mode 100755
index 5b61569..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/CoolItemEditPolicy.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.xwt.tools.ui.designer.commands.AttachedPropertyCreateCommand;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.NonResizableLayoutEditPolicy;
-
-public class CoolItemEditPolicy extends NonResizableLayoutEditPolicy {
-
-	protected Command getCreateCommand(CreateRequest request) {
-		return new AttachedPropertyCreateCommand(getHost(), request, "control");
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/ElementDirectEditPolicy.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/ElementDirectEditPolicy.java
deleted file mode 100755
index ba0c5f2..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/ElementDirectEditPolicy.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.xwt.IConstants;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.editpolicies.DirectEditPolicy;
-import org.eclipse.gef.requests.DirectEditRequest;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.xwt.tools.ui.designer.commands.ApplyAttributeSettingCommand;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-
-public class ElementDirectEditPolicy extends DirectEditPolicy {
-	private boolean setting = false;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.DirectEditPolicy#getDirectEditCommand(org.eclipse.gef.requests.DirectEditRequest)
-	 */
-	protected Command getDirectEditCommand(DirectEditRequest request) {
-		String value = (String) request.getCellEditor().getValue();
-		XamlElement element = (XamlElement) (getHost().getModel());
-		return new ApplyAttributeSettingCommand(element, "text", IConstants.XWT_NAMESPACE, value);
-	}
-
-	@Override
-	protected void eraseDirectEditFeedback(DirectEditRequest request) {
-		super.eraseDirectEditFeedback(request);
-		setting = false;
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.DirectEditPolicy#showCurrentEditValue(org.eclipse.gef.requests.DirectEditRequest)
-	 */
-	protected void showCurrentEditValue(DirectEditRequest request) {
-	}
-
-	@Override
-	protected void showDirectEditFeedback(DirectEditRequest request) {
-		CellEditor cellEditor = request.getCellEditor();
-		if (cellEditor == null) {
-			return;
-		}
-		if (!setting) {
-			GraphicalEditPart graphicalEditPart = (GraphicalEditPart) getHost();
-			IFigure figure = graphicalEditPart.getFigure();
-			
-			XamlElement element = (XamlElement) (getHost().getModel());
-			XamlAttribute attribute = element.getAttribute("text", IConstants.XWT_NAMESPACE);
-			if (attribute == null) {
-				return;
-			}
-			String value = attribute.getValue();
-			cellEditor.setValue(value);
-			Control control = request.getCellEditor().getControl();
-			if (control instanceof Text) {
-				Rectangle rectangle = figure.getBounds();
-				Text text = (Text) control;
-				text.setLocation(rectangle.x, rectangle.y);
-				text.selectAll();
-			}
-		}
-		setting = true;
-	}
-	
-	@Override
-	public boolean understandsRequest(Request request) {
-		if (request instanceof DirectEditRequest) {
-			DirectEditRequest directEditRequest = (DirectEditRequest) request;
-			XamlElement element = (XamlElement) (getHost().getModel());
-			XamlAttribute attribute = element.getAttribute("text", IConstants.XWT_NAMESPACE);
-			if (directEditRequest.getCellEditor() == null || attribute == null) {
-				return false;
-			}
-		}
-		return super.understandsRequest(request);
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/ExpandBarEditPolicy.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/ExpandBarEditPolicy.java
deleted file mode 100755
index 8a9470d..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/ExpandBarEditPolicy.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies;
-
-import org.eclipse.draw2d.PositionConstants;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.RowLayoutEditPolicy;
-
-/**
- * @author yahong.song@soyatec.com
- */
-public class ExpandBarEditPolicy extends RowLayoutEditPolicy {
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.policies.layout.RowLayoutEditPolicy#createAddCommand(org.eclipse.gef.EditPart, org.eclipse.gef.EditPart)
-	 */
-	protected Command createAddCommand(EditPart child, EditPart after) {
-		return null;
-	}
-
-	protected Command createMoveChildCommand(EditPart child, EditPart after) {
-		return super.createMoveChildCommand(child, after);
-	}
-
-	protected EditPolicy createChildEditPolicy(EditPart child) {
-		return new NewResizableEditPolicy(PositionConstants.NONE, true);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.policies.layout.RowLayoutEditPolicy #getCreateCommand(org.eclipse.gef.requests.CreateRequest)
-	 */
-	@Override
-	protected Command getCreateCommand(CreateRequest request) {
-		// TODO Auto-generated method stub
-		return super.getCreateCommand(request);
-	}
-
-	protected boolean isHorizontal() {
-		return false;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/ExpandableEditPolicy.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/ExpandableEditPolicy.java
deleted file mode 100755
index f8247ed..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/ExpandableEditPolicy.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartListener;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.LayerConstants;
-import org.eclipse.gef.editpolicies.GraphicalEditPolicy;
-import org.eclipse.xwt.tools.ui.designer.core.util.DisplayUtil;
-import org.eclipse.xwt.tools.ui.designer.parts.figures.Expandable;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ExpandableEditPolicy extends GraphicalEditPolicy implements EditPartListener {
-
-	private List<Object> listenedParts = new ArrayList<Object>();
-
-	protected FocusListener focusListener = new FocusListener();
-
-	private class FocusListener extends EditPartListener.Stub {
-		public void selectedStateChanged(EditPart part) {
-			if (shouldExpanded(part)) {
-				expand();
-			} else {
-				collapse();
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.AbstractEditPolicy#activate()
-	 */
-	public void activate() {
-		super.activate();
-		addFocusListener(getHost());
-	}
-
-	private void addFocusListener(EditPart part) {
-		if (part == null) {
-			return;
-		}
-		if (!listenedParts.contains(part)) {
-			part.addEditPartListener(focusListener);
-			part.addEditPartListener(this);
-			listenedParts.add(part);
-		}
-		List<EditPart> childList = part.getChildren();
-		if (childList != null) {
-			for (EditPart ep : childList) {
-				addFocusListener(ep);
-			}
-		}
-	}
-
-	private void removeFocusListener(EditPart part) {
-		if (part == null) {
-			return;
-		}
-		if (listenedParts.remove(part)) {
-			part.removeEditPartListener(focusListener);
-			part.removeEditPartListener(this);
-		}
-		List<EditPart> childList = part.getChildren();
-		if (childList != null) {
-			for (EditPart ep : childList) {
-				removeFocusListener(ep);
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.AbstractEditPolicy#deactivate()
-	 */
-	public void deactivate() {
-		super.deactivate();
-		removeFocusListener(getHost());
-		IFigure figure = getHostFigure();
-		if (figure instanceof Expandable && getLayer() == figure.getParent()) {
-			getLayer().remove(figure);
-		}
-	}
-
-	public void expand() {
-		IFigure figure = getHostFigure();
-		if (figure instanceof Expandable && getLayer() != figure.getParent()) {
-			getLayer().add(figure);
-			((Expandable) figure).expand();
-		}
-	}
-
-	public IFigure getLayer() {
-		return getLayer(LayerConstants.CONNECTION_LAYER);
-	}
-
-	public void collapse() {
-		IFigure figure = getHostFigure();
-		if (figure instanceof Expandable) {
-			((Expandable) figure).collapse();
-			// getLayer().remove(figure);
-		}
-	}
-
-	protected boolean shouldExpanded(EditPart part) {
-		return part.getSelected() != EditPart.SELECTED_NONE;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.EditPartListener#childAdded(org.eclipse.gef.EditPart, int)
-	 */
-	public void childAdded(final EditPart child, int index) {
-		addFocusListener(child);
-		if (child instanceof GraphicalEditPart) {
-			IFigure figure = ((GraphicalEditPart) child).getFigure();
-			if (figure instanceof Expandable) {
-				((Expandable) figure).expand();
-				getLayer().add(figure);
-			}
-		}
-		DisplayUtil.asyncExec(new Runnable() {
-			public void run() {
-				child.getViewer().select(child);
-				expand();
-			}
-		});
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.EditPartListener#partActivated(org.eclipse.gef.EditPart)
-	 */
-	public void partActivated(EditPart editpart) {
-		// do nothing
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.EditPartListener#partDeactivated(org.eclipse.gef.EditPart)
-	 */
-	public void partDeactivated(EditPart editpart) {
-		// do nothing
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.EditPartListener#removingChild(org.eclipse.gef.EditPart, int)
-	 */
-	public void removingChild(EditPart child, int index) {
-		if (child instanceof GraphicalEditPart) {
-			IFigure figure = ((GraphicalEditPart) child).getFigure();
-			if (figure instanceof Expandable && figure.getParent() == getLayer()) {
-				((Expandable) figure).collapse();
-				getLayer().remove(figure);
-			}
-		}
-		removeFocusListener(child);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.EditPartListener#selectedStateChanged(org.eclipse.gef.EditPart)
-	 */
-	public void selectedStateChanged(EditPart editpart) {
-		// do nothing
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/GraphicalNodeEditPolicyImpl.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/GraphicalNodeEditPolicyImpl.java
deleted file mode 100755
index a23398f..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/GraphicalNodeEditPolicyImpl.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies;
-
-import org.eclipse.gef.ConnectionEditPart;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.NodeEditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.requests.CreateConnectionRequest;
-import org.eclipse.gef.requests.ReconnectRequest;
-import org.eclipse.xwt.tools.ui.designer.commands.BindingCreateCommand;
-import org.eclipse.xwt.tools.ui.designer.commands.BindingReconnectCommand;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class GraphicalNodeEditPolicyImpl extends org.eclipse.gef.editpolicies.GraphicalNodeEditPolicy {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.GraphicalNodeEditPolicy#getConnectionCompleteCommand(org.eclipse.gef.requests.CreateConnectionRequest)
-	 */
-	protected Command getConnectionCompleteCommand(CreateConnectionRequest request) {
-		BindingCreateCommand startCommand = (BindingCreateCommand) request.getStartCommand();
-		EditPart source = request.getSourceEditPart();
-		EditPart target = request.getTargetEditPart();
-		if (target == null || source == null || source == target || target == source.getParent()) {
-			return null;
-		}
-		return startCommand;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.GraphicalNodeEditPolicy#getConnectionCreateCommand(org.eclipse.gef.requests.CreateConnectionRequest)
-	 */
-	protected Command getConnectionCreateCommand(CreateConnectionRequest request) {
-		BindingCreateCommand command = new BindingCreateCommand(request);
-		request.setStartCommand(command);
-		return command;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.GraphicalNodeEditPolicy#getReconnectSourceCommand(org.eclipse.gef.requests.ReconnectRequest)
-	 */
-	protected Command getReconnectSourceCommand(ReconnectRequest request) {
-		NodeEditPart source = (NodeEditPart) getHost();
-		ConnectionEditPart connectionEditPart = request.getConnectionEditPart();
-		BindingReconnectCommand command = new BindingReconnectCommand(connectionEditPart);
-		command.setSource(source);
-		return command;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.GraphicalNodeEditPolicy#getReconnectTargetCommand(org.eclipse.gef.requests.ReconnectRequest)
-	 */
-	protected Command getReconnectTargetCommand(ReconnectRequest request) {
-		NodeEditPart target = (NodeEditPart) request.getTarget();
-		ConnectionEditPart connectionEditPart = request.getConnectionEditPart();
-		BindingReconnectCommand command = new BindingReconnectCommand(connectionEditPart);
-		command.setTarget(target);
-		return command;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/MenuItemExpandableEditPolicy.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/MenuItemExpandableEditPolicy.java
deleted file mode 100755
index bfafbee..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/MenuItemExpandableEditPolicy.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.xwt.tools.ui.designer.parts.MenuItemEditPart;
-import org.eclipse.xwt.tools.ui.designer.parts.figures.Expandable;
-import org.eclipse.xwt.tools.ui.designer.utils.StyleHelper;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class MenuItemExpandableEditPolicy extends ExpandableEditPolicy {
-	private ArrayList<Expandable> expandedFigures;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.xaml.ve.xwt.editpolicies.ExpandableEditPolicy#expand()
-	 */
-	public void expand() {
-		// Retrieve expandables from editpart directly.
-		List children = getHost().getChildren();
-		if (children == null || children.isEmpty()) {
-			return;
-		}
-		if (expandedFigures == null || expandedFigures.isEmpty()) {
-			expandedFigures = new ArrayList<Expandable>();
-			for (Object object : children) {
-				if (!(object instanceof GraphicalEditPart)) {
-					continue;
-				}
-				IFigure figure = ((GraphicalEditPart) object).getFigure();
-				if (figure instanceof Expandable) {
-					expandedFigures.add((Expandable) figure);
-				}
-			}
-		}
-
-		expandAll();
-	}
-
-	/**
-	 * @param hostFigure
-	 */
-	private void expandAll() {
-		IFigure hostFigure = getHostFigure();
-		for (Expandable f : expandedFigures) {
-			IFigure layer = getLayer();
-			if (f.getParent() != layer) {
-				layer.add(f);
-			}
-			Rectangle r = hostFigure.getBounds().getCopy();
-			hostFigure.translateToAbsolute(r);
-			if (r.isEmpty()) {
-				continue;
-			}
-			MenuItem menuItem = (MenuItem) ((MenuItemEditPart) getHost()).getWidget();
-			if (StyleHelper.isOnMenubar(menuItem)) {
-				f.setLocation(new Point(r.x + 1, r.y + r.height));
-			} else {
-				f.setLocation(new Point(r.x + r.width, r.y));
-			}
-			f.expand();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.xaml.ve.xwt.editpolicies.ExpandableEditPolicy#collapse()
-	 */
-	public void collapse() {
-		if (expandedFigures != null && !expandedFigures.isEmpty()) {
-			for (Expandable figure : expandedFigures) {
-				figure.collapse();
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/MenuLayoutEditPolicy.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/MenuLayoutEditPolicy.java
deleted file mode 100755
index 8579cbd..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/MenuLayoutEditPolicy.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies;
-
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.editpolicies.FlowLayoutEditPolicy;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.gef.requests.ForwardedRequest;
-import org.eclipse.xwt.tools.ui.designer.commands.DeleteCommand;
-import org.eclipse.xwt.tools.ui.designer.commands.InsertCreateCommand;
-
-public class MenuLayoutEditPolicy extends FlowLayoutEditPolicy {
-
-	protected Command createMoveChildCommand(EditPart child, EditPart after) {
-		return null;
-	}
-
-	protected EditPolicy createChildEditPolicy(EditPart child) {
-		return new NewNonResizeEditPolicy(false);
-	}/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.policies.layout.RowLayoutEditPolicy#getCreateCommand(org.eclipse.gef.requests.CreateRequest)
-	 */
-
-	protected Command getCreateCommand(CreateRequest request) {
-		return new InsertCreateCommand(getHost(), getInsertionReference(request), request);
-	}
-
-	protected boolean isHorizontal() {
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.OrderedLayoutEditPolicy#createAddCommand(org.eclipse.gef.EditPart, org.eclipse.gef.EditPart)
-	 */
-	protected Command createAddCommand(EditPart child, EditPart after) {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#getDeleteDependantCommand(org.eclipse.gef.Request)
-	 */
-	protected Command getDeleteDependantCommand(Request request) {
-		EditPart sender = ((ForwardedRequest) request).getSender();
-		List<EditPart> deleteObjects = Collections.singletonList(sender);
-		if (deleteObjects == null || deleteObjects.isEmpty()) {
-			return null;
-		}
-		return new DeleteCommand(deleteObjects);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/NewNonResizeEditPolicy.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/NewNonResizeEditPolicy.java
deleted file mode 100755
index 2e91d06..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/NewNonResizeEditPolicy.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.Handle;
-import org.eclipse.gef.SharedCursors;
-import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
-import org.eclipse.gef.handles.AbstractHandle;
-import org.eclipse.gef.handles.NonResizableHandleKit;
-import org.eclipse.gef.tools.SelectEditPartTracker;
-import org.eclipse.xwt.tools.ui.designer.core.parts.tools.SelectionHandle;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class NewNonResizeEditPolicy extends NonResizableEditPolicy {
-
-	private boolean displayNonHandles;
-
-	public NewNonResizeEditPolicy(boolean displayNonHandles) {
-		this.displayNonHandles = displayNonHandles;
-		setDragAllowed(false);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.NonResizableEditPolicy#createSelectionHandles()
-	 */
-	protected List<Handle> createSelectionHandles() {
-		List<Handle> list = new ArrayList<Handle>();
-		GraphicalEditPart host = (GraphicalEditPart) getHost();
-		if (displayNonHandles) {
-			if (isDragAllowed()) {
-				NonResizableHandleKit.addHandles(host, list);
-			} else {
-				NonResizableHandleKit.addHandles(host, list, new SelectEditPartTracker(getHost()), SharedCursors.ARROW);
-			}
-		} else {
-			if (isDragAllowed()) {
-				NonResizableHandleKit.addMoveHandle(host, list);
-			}
-			list.add(createSelectionHandle(host));
-		}
-		return list;
-	}
-
-	protected AbstractHandle createSelectionHandle(GraphicalEditPart host) {
-		return new SelectionHandle(host);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/NewResizableEditPolicy.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/NewResizableEditPolicy.java
deleted file mode 100755
index 5d56aa0..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/NewResizableEditPolicy.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.PositionConstants;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.PrecisionRectangle;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.Handle;
-import org.eclipse.gef.editpolicies.ResizableEditPolicy;
-import org.eclipse.gef.handles.NonResizableHandleKit;
-import org.eclipse.gef.handles.ResizableHandleKit;
-import org.eclipse.gef.requests.ChangeBoundsRequest;
-import org.eclipse.xwt.tools.ui.designer.utils.OffsetUtil;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class NewResizableEditPolicy extends ResizableEditPolicy {
-	protected static final int WIDTH = 50;
-	protected static final int HEIGHT = 16;
-
-	private boolean diaplayNonHandles = true;
-	private Label tooltip;
-
-	public NewResizableEditPolicy(int directions, boolean displayNonHandles) {
-		setResizeDirections(directions);
-		this.diaplayNonHandles = displayNonHandles;
-	}
-
-	/**
-	 * @see org.eclipse.gef.editpolicies.SelectionHandlesEditPolicy#createSelectionHandles()
-	 */
-	protected List<Handle> createSelectionHandles() {
-		List<Handle> list = new ArrayList<Handle>();
-		int directions = getResizeDirections();
-		if (directions == 0 && diaplayNonHandles)
-			NonResizableHandleKit.addHandles((GraphicalEditPart) getHost(), list);
-		else if (directions != -1) {
-			ResizableHandleKit.addMoveHandle((GraphicalEditPart) getHost(), list);
-			if ((directions & PositionConstants.EAST) != 0)
-				ResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.EAST);
-			else if (diaplayNonHandles)
-				NonResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.EAST);
-			if ((directions & PositionConstants.SOUTH_EAST) == PositionConstants.SOUTH_EAST)
-				ResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.SOUTH_EAST);
-			else if (diaplayNonHandles)
-				NonResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.SOUTH_EAST);
-			if ((directions & PositionConstants.SOUTH) != 0)
-				ResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.SOUTH);
-			else if (diaplayNonHandles)
-				NonResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.SOUTH);
-			if ((directions & PositionConstants.SOUTH_WEST) == PositionConstants.SOUTH_WEST)
-				ResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.SOUTH_WEST);
-			else if (diaplayNonHandles)
-				NonResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.SOUTH_WEST);
-			if ((directions & PositionConstants.WEST) != 0)
-				ResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.WEST);
-			else if (diaplayNonHandles)
-				NonResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.WEST);
-			if ((directions & PositionConstants.NORTH_WEST) == PositionConstants.NORTH_WEST)
-				ResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.NORTH_WEST);
-			else if (diaplayNonHandles)
-				NonResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.NORTH_WEST);
-			if ((directions & PositionConstants.NORTH) != 0)
-				ResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.NORTH);
-			else if (diaplayNonHandles)
-				NonResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.NORTH);
-			if ((directions & PositionConstants.NORTH_EAST) == PositionConstants.NORTH_EAST)
-				ResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.NORTH_EAST);
-			else if (diaplayNonHandles)
-				NonResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.NORTH_EAST);
-		}
-		return list;
-	}
-
-	protected Label getToolTip() {
-		if (tooltip == null) {
-			tooltip = new Label();
-		}
-		if (tooltip.getParent() == null) {
-			addFeedback(tooltip);
-		}
-		return tooltip;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.NonResizableEditPolicy#showChangeBoundsFeedback(org.eclipse.gef.requests.ChangeBoundsRequest)
-	 */
-	protected void showChangeBoundsFeedback(ChangeBoundsRequest request) {
-		IFigure feedback = getDragSourceFeedbackFigure();
-
-		Rectangle init = getInitialFeedbackBounds().getCopy();
-		PrecisionRectangle rect = new PrecisionRectangle(init);
-		getHostFigure().translateToAbsolute(rect);
-		Point remove = request.getMoveDelta();
-		rect.translate(remove);
-		Dimension resize = request.getSizeDelta();
-		rect.resize(resize);
-
-		feedback.translateToRelative(rect);
-		feedback.setBounds(rect);
-
-		Point p = rect.getRight();
-		int directions = request.getResizeDirection();
-		if (directions != -1) {
-			if ((directions & PositionConstants.SOUTH_EAST) == PositionConstants.SOUTH_EAST) {
-				p = rect.getLocation().getTranslated(rect.width, rect.height);
-			} else if ((directions & PositionConstants.SOUTH_WEST) == PositionConstants.SOUTH_WEST) {
-				p = rect.getLocation().getTranslated(-WIDTH, rect.height);
-			} else if ((directions & PositionConstants.NORTH_WEST) == PositionConstants.NORTH_WEST) {
-				p = rect.getLocation().getTranslated(-WIDTH, -HEIGHT);
-			} else if ((directions & PositionConstants.NORTH_EAST) == PositionConstants.NORTH_EAST) {
-				p = rect.getLocation().getTranslated(rect.width, -HEIGHT);
-			} else if ((directions & PositionConstants.SOUTH) != 0) {
-				p = rect.getLocation().getTranslated((rect.width - WIDTH) / 2, rect.height);
-			} else if ((directions & PositionConstants.EAST) != 0) {
-				p = rect.getLocation().getTranslated(rect.width, rect.height / 2);
-			} else if ((directions & PositionConstants.WEST) != 0) {
-				p = rect.getLocation().getTranslated(-WIDTH, rect.height / 2);
-			} else if ((directions & PositionConstants.NORTH) != 0) {
-				p = rect.getLocation().getTranslated((rect.width - WIDTH) / 2, -HEIGHT);
-			}
-		}
-
-		Dimension size = new Dimension(WIDTH, HEIGHT);
-		Label tip = getToolTip();
-		// tip.setOpaque(true);
-		// tip.setBackgroundColor(ColorConstants.red);
-		tip.setBounds(new Rectangle(p, size));
-		if (resize != null && (resize.width != 0 || resize.height != 0)) {
-			tip.setForegroundColor(ColorConstants.black);
-			tip.setText((init.width + resize.width) + "," + (init.height + resize.height));
-		} else if (remove != null && (remove.x != 0 || remove.y != 0)) {
-			tip.setForegroundColor(ColorConstants.blue);
-			Point moveTo = init.getLocation();
-			getHostFigure().translateToAbsolute(moveTo);
-			moveTo = moveTo.getTranslated(remove);
-			getHostFigure().translateToRelative(moveTo);
-			p = ((GraphicalEditPart) getHost().getParent()).getContentPane().getClientArea().getLocation().getNegated();
-			moveTo.translate(p);
-			int xOffset = OffsetUtil.getXOffset(getHost().getParent());
-			int yOffset = OffsetUtil.getYOffset(getHost().getParent());
-			moveTo.translate(-xOffset, -yOffset);
-			tip.setText((moveTo.x) + "," + (moveTo.y));
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.NonResizableEditPolicy#eraseChangeBoundsFeedback(org.eclipse.gef.requests.ChangeBoundsRequest)
-	 */
-	protected void eraseChangeBoundsFeedback(ChangeBoundsRequest request) {
-		super.eraseChangeBoundsFeedback(request);
-		if (tooltip != null && tooltip.getParent() != null) {
-			removeFeedback(tooltip);
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/PolicyConstants.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/PolicyConstants.java
deleted file mode 100755
index beb23ae..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/PolicyConstants.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public interface PolicyConstants {
-
-	/**
-	 * see {@link ExpandableEditPolicy}.
-	 */
-	String EXPANDABLE_EDITPOLICY = "Expandable EditPolicy";
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/feedback/CrossFeedback.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/feedback/CrossFeedback.java
deleted file mode 100755
index b290e3d..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/feedback/CrossFeedback.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.feedback;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.XYLayout;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.swt.SWT;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class CrossFeedback extends Figure {
-	private static final int WIDTH = 50;
-	private static final int HEIGHT = 50;
-	private Point center;
-	private Label tooltip;
-
-	public CrossFeedback(Point center) {
-		tooltip = new Label();
-		tooltip.setForegroundColor(ColorConstants.blue);
-		setCenter(center);
-		setLayoutManager(new XYLayout());
-		add(tooltip);
-	}
-
-	public void setCenter(Point center) {
-		this.center = center;
-		Point l = center.getTranslated(-(WIDTH / 2), -(HEIGHT / 2));
-		setBounds(new Rectangle(l.x, l.y, WIDTH, HEIGHT));
-		tooltip.setBounds(new Rectangle(l.x, l.y, 50, 25));
-		repaint();
-	}
-
-	public Point getCenter() {
-		return center;
-	}
-
-	public void setTooltipText(String text) {
-		if (text == null) {
-			text = "";
-		}
-		tooltip.setText(text);
-	}
-
-	protected void paintFigure(Graphics graphics) {
-		graphics.setLineStyle(SWT.LINE_DOT);
-		graphics.setForegroundColor(ColorConstants.blue);
-		int x = center.x;
-		int y = center.y;
-		Point p1 = new Point(x - (WIDTH / 2), y);
-		Point p2 = new Point(x + (WIDTH / 2), center.y);
-		graphics.drawLine(p1, p2);
-		Point p3 = new Point(x, y - (HEIGHT / 2));
-		Point p4 = new Point(x, y + (HEIGHT / 2));
-		graphics.drawLine(p3, p4);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/feedback/FeedbackHelper.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/feedback/FeedbackHelper.java
deleted file mode 100755
index e06cbb7..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/feedback/FeedbackHelper.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.feedback;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.Polygon;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.xwt.tools.ui.designer.core.figures.OutlineBorder;
-import org.eclipse.xwt.tools.ui.designer.editor.palette.CreateReqHelper;
-import org.eclipse.xwt.tools.ui.designer.parts.ShellEditPart;
-import org.eclipse.xwt.tools.ui.designer.utils.OffsetUtil;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class FeedbackHelper {
-
-	public static boolean showCreationFeedback(FeedbackManager fbm, CreateRequest createReq) {
-		if (fbm.contains(createReq)) {
-			return true;
-		}
-		CreateReqHelper helper = new CreateReqHelper(createReq);
-		if (helper.canCreate(fbm.getHost())) {
-			Rectangle r = fbm.getHostFigure().getBounds().getCopy();
-			if (helper.isCreate("layout") || helper.isCreate("menu")) {
-				return showFillFeedback(fbm, createReq);
-			} else if (helper.isCreate("menuBar")) {
-				r = getMenuFeedbackBounds(fbm);
-				if (r != null) {
-					Label feedback = new Label("Menu bar would be placed here");
-					feedback.setBounds(r);
-					feedback.setBackgroundColor(ColorConstants.button);
-					feedback.setOpaque(true);
-					feedback.setBorder(new OutlineBorder(ColorConstants.blue, ColorConstants.button));
-					fbm.addFeedback(createReq, feedback);
-					return true;
-				}
-			} else {
-				return false;
-			}
-		}
-		return false;
-	}
-
-	public static Polygon createTargetFeedback() {
-		Polygon polygon = new Polygon();
-		polygon.addPoint(new Point());
-		polygon.addPoint(new Point());
-		polygon.addPoint(new Point());
-		polygon.addPoint(new Point());
-		polygon.setForegroundColor(ColorConstants.blue);
-		return polygon;
-	}
-	
-	public static void updateTargetFeedback(GraphicalEditPart editPart, Polygon polygon ) {
-		IFigure figure = editPart.getFigure();
-		Rectangle rectangle = figure.getBounds().getCopy();
-		figure.translateToAbsolute(rectangle);
-		
-		Point p = rectangle.getBottomLeft();
-		polygon.translateToRelative(p);
-		polygon.setPoint(p, 0);
-		
-		p = rectangle.getBottomRight();
-		polygon.translateToRelative(p);
-		polygon.setPoint(p, 1);
-
-		p = rectangle.getTopRight();
-		polygon.translateToRelative(p);
-		polygon.setPoint(p, 2);
-		
-		p = rectangle.getTopLeft();
-		polygon.translateToRelative(p);
-		polygon.setPoint(p, 3);
-	}
-
-	public static boolean showFillFeedback(FeedbackManager fbm, CreateRequest createReq) {
-		if (fbm.contains(createReq)) {
-			return true;
-		}
-		CreateReqHelper helper = new CreateReqHelper(createReq);
-		if (helper.canCreate(fbm.getHost())) {
-			Rectangle r = fbm.getHostFigure().getBounds().getCopy();
-			FillFeedback feedback = new FillFeedback(new Rectangle(r.x, r.y, r.width, r.height));
-			fbm.addFeedback(createReq, feedback);
-			return true;
-		}
-		return false;
-	}
-
-	private static Rectangle getMenuFeedbackBounds(FeedbackManager fbm) {
-		EditPart host = fbm.getHost();
-		if (host instanceof ShellEditPart) {
-			int yOffset = OffsetUtil.getYOffset(host);
-			Rectangle r = fbm.getHostFigure().getBounds().getCopy();
-			return new Rectangle(r.x + 2, r.y + yOffset - 3, r.width - 4, 22);
-		}
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/feedback/FeedbackManager.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/feedback/FeedbackManager.java
deleted file mode 100755
index aaf9931..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/feedback/FeedbackManager.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.feedback;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.LayerConstants;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.editparts.LayerManager;
-import org.eclipse.gef.editpolicies.GraphicalEditPolicy;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class FeedbackManager {
-
-	private GraphicalEditPolicy policy;
-
-	public FeedbackManager(GraphicalEditPolicy policy) {
-		this.policy = policy;
-	}
-
-	private final Map<Request, IFigure> req2feedback = new HashMap<Request, IFigure>(1);
-
-	public synchronized void addFeedback(Request req, IFigure feedback) {
-		if (req2feedback.containsKey(req)) {
-			return;
-		}
-		req2feedback.put(req, feedback);
-		IFigure feedbackLayer = getFeedbackLayer();
-		if (feedbackLayer != null && feedback != null) {
-			feedbackLayer.add(feedback);
-		}
-	}
-
-	public synchronized boolean contains(Request req) {
-		return req2feedback.containsKey(req);
-	}
-
-	public IFigure getFeedbackLayer() {
-		return LayerManager.Helper.find(policy.getHost()).getLayer(LayerConstants.FEEDBACK_LAYER);
-	}
-
-	public synchronized IFigure eraseFeedback(Request req) {
-		IFigure feedback = req2feedback.remove(req);
-		IFigure feedbackLayer = getFeedbackLayer();
-		if (feedbackLayer != null && feedback != null) {
-			feedbackLayer.remove(feedback);
-		}
-		return feedback;
-	}
-
-	public EditPart getHost() {
-		return policy.getHost();
-	}
-
-	public IFigure getHostFigure() {
-		return ((GraphicalEditPart) getHost()).getFigure();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/feedback/FillFeedback.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/feedback/FillFeedback.java
deleted file mode 100755
index 27cc170..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/feedback/FillFeedback.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.feedback;
-
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.RectangleFigure;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class FillFeedback extends RectangleFigure {
-	private boolean opaque;
-	private static Color fillColor = new Color(null, 31, 31, 31);
-	private static Color lineColor = new Color(null, 255, 0, 255);
-
-	public FillFeedback(Rectangle r) {
-		this(r, 1, SWT.LINE_SOLID, fillColor, lineColor, true);
-	}
-
-	public FillFeedback(Rectangle r, int lineWidth, int lineStyle, Color background, Color foreground, boolean opaque) {
-		setBounds(r);
-		setLineWidth(lineWidth);
-		setLineStyle(lineStyle);
-		if (foreground != null)
-			setForegroundColor(foreground);
-		if (background != null)
-			setBackgroundColor(background);
-		setOpaque(opaque);
-		setFillXOR(true);
-		this.opaque = opaque;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.draw2d.Figure#setBackgroundColor(org.eclipse.swt.graphics.Color)
-	 */
-	public void setBackgroundColor(Color bg) {
-		Color backgroundColor = getBackgroundColor();
-		if ((backgroundColor == null && bg != null) || (backgroundColor != null && backgroundColor != bg)) {
-			opaque = true;
-		}
-		super.setBackgroundColor(bg);
-	}
-
-	public void fillShape(Graphics g) {
-		if (opaque) {
-			Rectangle r = getBounds().getCopy().resize(-1, -1);
-			g.fillRectangle(r);
-		}
-	}
-
-	public void outlineShape(Graphics g) {
-		Rectangle r = getBounds().getCopy().resize(-1, -1);
-		g.drawRectangle(r);
-
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/ControlLayoutEditPolicy.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/ControlLayoutEditPolicy.java
deleted file mode 100755
index 232ae33..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/ControlLayoutEditPolicy.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.editpolicies.LayoutEditPolicy;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.xwt.tools.ui.designer.commands.AbstractCreateCommand;
-import org.eclipse.xwt.tools.ui.designer.policies.feedback.FeedbackHelper;
-import org.eclipse.xwt.tools.ui.designer.policies.feedback.FeedbackManager;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * This class is used to create a LAYOUT_ROLE for each controls of SWT, so we can easily create or add some properties.
- * 
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ControlLayoutEditPolicy extends LayoutEditPolicy {
-	private FeedbackManager fbm = new FeedbackManager(this);
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#createChildEditPolicy(org.eclipse.gef.EditPart)
-	 */
-	protected EditPolicy createChildEditPolicy(EditPart child) {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#showLayoutTargetFeedback(org.eclipse.gef.Request)
-	 */
-	protected void showLayoutTargetFeedback(Request request) {
-		if (request instanceof CreateRequest) {
-			FeedbackHelper.showFillFeedback(fbm, (CreateRequest) request);
-		} else {
-			super.showLayoutTargetFeedback(request);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#eraseLayoutTargetFeedback(org.eclipse.gef.Request)
-	 */
-	protected void eraseLayoutTargetFeedback(Request request) {
-		fbm.eraseFeedback(request);
-		super.eraseLayoutTargetFeedback(request);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#getCreateCommand(org.eclipse.gef.requests.CreateRequest)
-	 */
-	protected Command getCreateCommand(CreateRequest request) {
-		return new AbstractCreateCommand(getHost(), request) {
-			protected void preExecute(XamlNode newNode, CreateRequest createRequest) {
-				// Do nothing.
-			}
-		};
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#getMoveChildrenCommand(org.eclipse.gef.Request)
-	 */
-	protected Command getMoveChildrenCommand(Request request) {
-		return null;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/FillLayoutEditPolicy.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/FillLayoutEditPolicy.java
deleted file mode 100755
index 3ea787a..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/FillLayoutEditPolicy.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
-import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
-import org.eclipse.xwt.tools.ui.designer.policies.NewNonResizeEditPolicy;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class FillLayoutEditPolicy extends RowLayoutEditPolicy {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.xaml.ve.xwt.editpolicies.RowLayoutEditPolicy#createChildEditPolicy(org.eclipse.gef.EditPart)
-	 */
-	protected EditPolicy createChildEditPolicy(EditPart child) {
-		NewNonResizeEditPolicy childEditPolicy = new NewNonResizeEditPolicy(false);
-		childEditPolicy.setDragAllowed(true);
-		return childEditPolicy;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.designer.policies.RowLayoutEditPolicy#isHorizontal()
-	 */
-	protected boolean isHorizontal() {
-		EditPart host = getHost();
-		if (host != null && host instanceof CompositeEditPart) {
-			Layout layout = ((CompositeEditPart) host).getLayout();
-			return layout != null && layout instanceof FillLayout && ((FillLayout) layout).type == SWT.HORIZONTAL;
-		}
-		return super.isHorizontal();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.policies.layout.RowLayoutEditPolicy#getType()
-	 */
-	public LayoutType getType() {
-		return LayoutType.FillLayout;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/FormLayoutEditPolicy.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/FormLayoutEditPolicy.java
deleted file mode 100755
index d2d8e42..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/FormLayoutEditPolicy.java
+++ /dev/null
@@ -1,273 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.PositionConstants;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CompoundCommand;
-import org.eclipse.gef.editpolicies.XYLayoutEditPolicy;
-import org.eclipse.gef.requests.ChangeBoundsRequest;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.gef.requests.ForwardedRequest;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.xwt.tools.ui.designer.commands.FormDataCreateCommand;
-import org.eclipse.xwt.tools.ui.designer.commands.FormDataDeleteCommand;
-import org.eclipse.xwt.tools.ui.designer.commands.ResizeCommand;
-import org.eclipse.xwt.tools.ui.designer.editor.dnd.EntryCreateRequest;
-import org.eclipse.xwt.tools.ui.designer.editor.palette.CreateReqHelper;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
-import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
-import org.eclipse.xwt.tools.ui.designer.parts.ControlEditPart;
-import org.eclipse.xwt.tools.ui.designer.policies.NewResizableEditPolicy;
-import org.eclipse.xwt.tools.ui.designer.policies.feedback.FeedbackHelper;
-import org.eclipse.xwt.tools.ui.designer.policies.feedback.FeedbackManager;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.form.FormDataFigure;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.form.FormLayoutData;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.form.FormLayoutHelper;
-import org.eclipse.xwt.tools.ui.designer.utils.FigureUtil;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class FormLayoutEditPolicy extends XYLayoutEditPolicy implements
-		ILayoutEditPolicy {
-	private FeedbackManager fbm = new FeedbackManager(this);
-	private FormLayoutHelper helper;
-	private FormDataFigure feedback;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#getCreateCommand(org.eclipse
-	 * .gef.requests.CreateRequest)
-	 */
-	protected Command getCreateCommand(CreateRequest request) {
-		return getFormDataCommand(request);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#activate()
-	 */
-	public void activate() {
-		helper = new FormLayoutHelper((CompositeEditPart) getHost());
-		super.activate();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.xwt.tools.ui.designer.policies.layout.ILayoutEditPolicy
-	 * #refresh()
-	 */
-	public void refresh() {
-
-	}
-
-	private FormLayoutData computeData(Request request) {
-		if (helper == null) {
-			helper = new FormLayoutHelper((CompositeEditPart) getHost());
-		}
-		Point location = null;
-		Dimension size = null;
-		Control control = null;
-		if (REQ_CREATE == request.getType()) {
-			location = ((EntryCreateRequest) request).getLocation().getCopy();
-			// size = ((EntryCreateRequest) request).getInitSize();
-		} else if (REQ_MOVE == request.getType()) {
-			location = ((ChangeBoundsRequest) request).getLocation().getCopy();
-			EditPart part = (EditPart) ((ChangeBoundsRequest) request)
-					.getEditParts().get(0);
-			if (part != null && part instanceof ControlEditPart) {
-				control = (Control) ((ControlEditPart) part).getWidget();
-				if (control != null && !control.isDisposed()) {
-					size = ((ControlEditPart) part).getVisualInfo().getBounds()
-							.getSize();
-				}
-			}
-		}
-		if (size == null) {
-			size = new Dimension(10, 10);
-		}
-		if (location != null && size != null) {
-			Point relative = FigureUtil.translateToRelative(getHost(), location
-					.getCopy());
-			FormLayoutData layoutData = helper.computeData(new Rectangle(
-					relative, size), control);
-			if (layoutData != null) {
-				layoutData.bounds = new Rectangle(location, size);
-			}
-			return layoutData;
-		}
-		return null;
-	}
-
-	private Command getFormDataCommand(Request request) {
-		EditPart parent = getHost();
-		XamlNode forCreate = null;
-		if (REQ_CREATE.equals(request.getType())) {
-			CreateReqHelper reqHelper = new CreateReqHelper(
-					(CreateRequest) request);
-			if (reqHelper.canCreate(parent)) {
-				forCreate = reqHelper.getNewObject();
-			}
-		} else if (REQ_MOVE_CHILDREN.equals(request.getType())) {
-			EditPart part = (EditPart) ((ChangeBoundsRequest) request)
-					.getEditParts().get(0);
-			if (part != null) {
-				forCreate = (XamlNode) part.getModel();
-			}
-		}
-		if (forCreate == null) {
-			return null;
-		}
-		FormLayoutData layoutData = null;
-		if (feedback != null) {
-			layoutData = feedback.getLayoutData();
-		}
-		if (layoutData == null) {
-			layoutData = computeData(request);
-		}
-		if (layoutData == null || layoutData.data == null) {
-			return null;
-		}
-		return new FormDataCreateCommand(parent, forCreate, layoutData.data);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.xwt.tools.ui.designer.policies.layout.NullLayoutEditPolicy
-	 * #showLayoutTargetFeedback(org.eclipse.gef.Request)
-	 */
-	protected void showLayoutTargetFeedback(Request request) {
-		if (REQ_CREATE.equals(request.getType())
-				&& FeedbackHelper.showCreationFeedback(fbm,
-						(CreateRequest) request)) {
-			return;
-		}
-		FormLayoutData data = computeData(request);
-		if (data != null) {
-			showFormdataFeedback(data);
-		} else {
-			super.showLayoutTargetFeedback(request);
-		}
-	}
-
-	private void showFormdataFeedback(FormLayoutData layoutData) {
-		if (layoutData == null || layoutData.data == null
-				|| layoutData.bounds == null) {
-			return;
-		}
-		if (feedback == null) {
-			feedback = new FormDataFigure(layoutData);
-		}
-		feedback.setLayoutData(layoutData);
-		feedback.setBounds(getHostFigure().getBounds());
-		addFeedback(feedback);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.xwt.tools.ui.designer.policies.layout.NullLayoutEditPolicy
-	 * #eraseLayoutTargetFeedback(org.eclipse.gef.Request)
-	 */
-	protected void eraseLayoutTargetFeedback(Request request) {
-		if (feedback != null) {
-			removeFeedback(feedback);
-			feedback = null;
-		}
-		super.eraseLayoutTargetFeedback(request);
-		fbm.eraseFeedback(request);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.xwt.tools.ui.designer.policies.layout.ILayoutEditPolicy
-	 * #getType()
-	 */
-	public LayoutType getType() {
-		return LayoutType.FormLayout;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.ConstrainedLayoutEditPolicy#
-	 * getMoveChildrenCommand(org.eclipse.gef.Request)
-	 */
-	protected Command getMoveChildrenCommand(Request request) {
-		return getFormDataCommand(request);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.ConstrainedLayoutEditPolicy#
-	 * getResizeChildrenCommand(org.eclipse.gef.requests.ChangeBoundsRequest)
-	 */
-	protected Command getResizeChildrenCommand(ChangeBoundsRequest request) {
-		CompoundCommand command = new CompoundCommand();
-		Dimension growth = request.getSizeDelta();
-		List editParts = request.getEditParts();
-		for (Iterator iterator = editParts.iterator(); iterator.hasNext();) {
-			EditPart child = (EditPart) iterator.next();
-			command.add(new ResizeCommand(child, growth));
-		}
-		return command.unwrap();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.ConstrainedLayoutEditPolicy#
-	 * createChangeConstraintCommand(org.eclipse.gef.EditPart, java.lang.Object)
-	 */
-	protected Command createChangeConstraintCommand(EditPart child,
-			Object constraint) {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#getDeleteDependantCommand
-	 * (org.eclipse.gef.Request)
-	 */
-	protected Command getDeleteDependantCommand(Request request) {
-		ForwardedRequest forwarded = (ForwardedRequest) request;
-		EditPart sender = forwarded.getSender();
-		return new FormDataDeleteCommand(getHost(), sender);
-	}
-
-	protected EditPolicy createChildEditPolicy(EditPart child) {
-		return new NewResizableEditPolicy(PositionConstants.NSEW, true);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/GridLayoutEditPolicy.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/GridLayoutEditPolicy.java
deleted file mode 100755
index 501badb..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/GridLayoutEditPolicy.java
+++ /dev/null
@@ -1,882 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.FigureListener;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.PositionConstants;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.xwt.tools.ui.palette.Entry;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartListener;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CompoundCommand;
-import org.eclipse.gef.commands.UnexecutableCommand;
-import org.eclipse.gef.editpolicies.LayoutEditPolicy;
-import org.eclipse.gef.requests.ChangeBoundsRequest;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.gef.requests.DropRequest;
-import org.eclipse.gef.requests.ForwardedRequest;
-import org.eclipse.gef.requests.GroupRequest;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.xwt.tools.ui.designer.commands.GridLayoutCommandsFactory;
-import org.eclipse.xwt.tools.ui.designer.commands.NoOpCommand;
-import org.eclipse.xwt.tools.ui.designer.editor.palette.CreateReqHelper;
-import org.eclipse.xwt.tools.ui.designer.editor.palette.EntryHelper;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
-import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
-import org.eclipse.xwt.tools.ui.designer.parts.MenuBarEditPart;
-import org.eclipse.xwt.tools.ui.designer.policies.NewNonResizeEditPolicy;
-import org.eclipse.xwt.tools.ui.designer.policies.NewResizableEditPolicy;
-import org.eclipse.xwt.tools.ui.designer.policies.feedback.FeedbackHelper;
-import org.eclipse.xwt.tools.ui.designer.policies.feedback.FeedbackManager;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridController;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridLayoutAddedCellFeedbackFigure;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridLayoutColumnFigure;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridLayoutFeedbackFigure;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridLayoutGridFigure;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridLayoutPolicyHelper;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridLayoutRequest;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridLayoutRowFigure;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridLayoutSpanFeedbackFigure;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridSpanHandle;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.IGridListener;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class GridLayoutEditPolicy extends LayoutEditPolicy implements
-		IGridListener, ILayoutEditPolicy {
-
-	public static final String REQ_GRIDLAYOUT_SPAN = "GridLayout span cells"; //$NON-NLS-1$
-
-	public static final int DEFAULT_CELL_WIDTH = 40;
-	public static final int DEFAULT_CELL_HEIGHT = 35;
-	private static final int ADDEDCELLBORDER = 3; // How much to expand cell for
-													// added cell to draw the
-													// new border.
-	private GridController gridController;
-	private boolean fShowGrid = false;
-	private GridLayoutGridFigure fGridLayoutGridFigure;
-	private GridLayoutSpanFeedbackFigure fGridLayoutSpanFigure;
-	private GridLayoutFeedbackFigure fGridLayoutCellFigure;
-	private IFigure fRowColFigure = null;
-	private EditPartListener editPartListener;
-	private GridLayoutPolicyHelper helper = new GridLayoutPolicyHelper();
-
-	private FeedbackManager fbm = new FeedbackManager(this);
-
-	protected FigureListener hostFigureListener = new FigureListener() {
-		public void figureMoved(IFigure source) {
-			refresh();
-		}
-	};
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#activate()
-	 */
-	public void activate() {
-		helper.setHost((CompositeEditPart) getHost());
-		gridController = new GridController();
-		GridController.registerEditPart(getHost(), gridController);
-		gridController.addGridListener(this);
-		getHostFigure().addFigureListener(hostFigureListener);
-		if (getHost().getSelected() == EditPart.SELECTED
-				|| getHost().getSelected() == EditPart.SELECTED_PRIMARY) {
-			gridController.setGridShowing(true);
-		}
-		editPartListener = createEditPartListener();
-		getHost().addEditPartListener(editPartListener);
-		List children = getHost().getChildren();
-		Iterator iterator = children.iterator();
-		while (iterator.hasNext())
-			((EditPart) iterator.next()).addEditPartListener(editPartListener);
-		super.activate();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#createChildEditPolicy(org
-	 * .eclipse.gef.EditPart)
-	 */
-	protected EditPolicy createChildEditPolicy(EditPart child) {
-		if (child instanceof MenuBarEditPart) {
-			return new NewNonResizeEditPolicy(false);
-		}
-		// return new NonResizableSpannableEditPolicy(this);
-		return new NewResizableEditPolicy(PositionConstants.SOUTH
-				| PositionConstants.EAST, true);
-	}
-
-	private EditPartListener createEditPartListener() {
-		return new EditPartListener.Stub() {
-			public void childAdded(EditPart editpart, int index) {
-				if (editPartListener != null)
-					editpart.addEditPartListener(editPartListener);
-				helper.refresh();
-				refreshGridFigure();
-			}
-
-			public void removingChild(EditPart editpart, int index) {
-				if (editPartListener != null)
-					editpart.removeEditPartListener(editPartListener);
-				helper.refresh();
-				refreshGridFigure();
-			}
-
-			public void selectedStateChanged(EditPart editpart) {
-				if ((editpart == null)
-						|| (editpart == getHost())
-						|| (isChildEditPart(editpart))
-						&& (editpart.getSelected() == EditPart.SELECTED || editpart
-								.getSelected() == EditPart.SELECTED_PRIMARY)) {
-					if (gridController != null) {
-						gridController.setGridShowing(true);
-					} else {
-						if (gridController != null)
-							gridController.setGridShowing(false);
-					}
-				} else {
-					// Hide the grid just in case we were show before and
-					// changed the prefs
-					if (gridController != null
-							&& gridController.isGridShowing())
-						gridController.setGridShowing(false);
-				}
-			}
-		};
-	}
-
-	private GridLayoutRequest createGridLayoutRequest(Point position) {
-		return getGridLayoutGridFigure().getGridLayoutRequest(position, helper);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#deactivate()
-	 */
-	public void deactivate() {
-
-		GridController gridController = GridController
-				.getGridController(getHost());
-		eraseGridFigure();
-		if (gridController != null) {
-			gridController.removeGridListener(this);
-			GridController.unregisterEditPart(getHost());
-		}
-
-		getHostFigure().removeFigureListener(hostFigureListener);
-		if (editPartListener != null) {
-			getHost().removeEditPartListener(editPartListener);
-			List children = getHost().getChildren();
-			Iterator iterator = children.iterator();
-			while (iterator.hasNext())
-				((EditPart) iterator.next())
-						.removeEditPartListener(editPartListener);
-			editPartListener = null;
-		}
-		super.deactivate();
-	}
-
-	/**
-	 * erase grid figure.
-	 */
-	private void eraseGridFigure() {
-		if (fGridLayoutGridFigure != null) {
-			if (fGridLayoutGridFigure.getParent() != null)
-				removeFeedback(fGridLayoutGridFigure);
-			fGridLayoutGridFigure = null;
-		}
-		fShowGrid = false;
-	}
-
-	public void eraseTargetFeedback(Request request) {
-		fbm.eraseFeedback(request);
-		if (!fShowGrid)
-			if (fGridLayoutGridFigure != null) {
-				if (fGridLayoutGridFigure.getParent() != null)
-					removeFeedback(fGridLayoutGridFigure);
-				fGridLayoutGridFigure = null;
-			}
-		if (fGridLayoutSpanFigure != null) {
-			removeFeedback(fGridLayoutSpanFigure);
-			fGridLayoutSpanFigure = null;
-		}
-		if (fGridLayoutCellFigure != null) {
-			removeFeedback(fGridLayoutCellFigure);
-			fGridLayoutCellFigure = null;
-		}
-		if (fRowColFigure != null) {
-			removeFeedback(fRowColFigure);
-			fRowColFigure = null;
-		}
-		super.eraseTargetFeedback(request);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#getCommand(org.eclipse.
-	 * gef.Request)
-	 */
-	public Command getCommand(Request request) {
-		// if (REQ_GRIDLAYOUT_SPAN.equals(request.getType())) {
-		// return getSpanChildrenCommand(request);
-		// }
-		if (REQ_RESIZE_CHILDREN.equals(request.getType())) {
-			return getResizeCommand(request);
-		}
-		return super.getCommand(request);
-	}
-
-	private Command getResizeCommand(Request request) {
-		ChangeBoundsRequest req = (ChangeBoundsRequest) request;
-		CompoundCommand resize = new CompoundCommand();
-		Command c;
-		GraphicalEditPart child;
-		List children = req.getEditParts();
-
-		for (int i = 0; i < children.size(); i++) {
-			child = (GraphicalEditPart) children.get(i);
-			c = createResizeChildrenCommand(request, child, req.getSizeDelta());
-			resize.add(c);
-		}
-		return resize.unwrap();
-	}
-
-	protected Command createResizeChildrenCommand(Request request,
-			EditPart child, Object newSize) {
-		GridLayoutCommandsFactory factory = new GridLayoutCommandsFactory(
-				(CompositeEditPart) getHost());
-		return factory.getResizeChildrenCommand(child,
-				(ChangeBoundsRequest) request);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#getAddCommand(org.eclipse
-	 * .gef.Request)
-	 */
-	protected Command getAddCommand(Request request) {
-		return getMoveChildrenCommand(request);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#getCreateCommand(org.eclipse
-	 * .gef.requests.CreateRequest)
-	 */
-	protected Command getCreateCommand(CreateRequest request) {
-		CreateReqHelper reqHelper = new CreateReqHelper(request);
-		if (!reqHelper.canCreate(getHost())) {
-			return null;
-		}
-		if (fGridLayoutGridFigure == null) {
-			// TODO: Maybe create layout here.
-			return UnexecutableCommand.INSTANCE;
-		}
-
-		Point position = getLocationFromRequest(request).getCopy();
-		GridLayoutRequest gridReq = createGridLayoutRequest(position);
-		Point cell = new Point(gridReq.column, gridReq.row);
-
-		Entry entry = (Entry) request.getNewObject();
-		XamlNode newObject = EntryHelper.getNode(entry);
-		if (newObject == null) {
-			return UnexecutableCommand.INSTANCE;
-		}
-		Object requestType = request.getType();
-		helper.startRequest();
-		switch (gridReq.type) {
-		case GridLayoutRequest.REPLACE_FILLER:
-			helper.replaceFiller(newObject, requestType, cell);
-			break;
-		case GridLayoutRequest.INSERT_COLUMN_WITHIN_ROW:
-			helper.insertColWithinRow(cell);
-			helper.replaceFillerOrEmpty(newObject, requestType, cell);
-			break;
-		case GridLayoutRequest.INSERT_COLUMN:
-		case GridLayoutRequest.ADD_COLUMN:
-			helper.createNewCol(cell.x);
-			helper.replaceFillerOrEmpty(newObject, requestType, cell);
-			break;
-		case GridLayoutRequest.INSERT_ROW:
-		case GridLayoutRequest.ADD_ROW:
-			helper.createNewRow(cell.y);
-			helper.replaceFillerOrEmpty(newObject, requestType, cell);
-			break;
-		case GridLayoutRequest.ADD_TO_EMPTY_CELL:
-			helper.replaceEmptyCell(newObject, requestType, cell);
-			break;
-		case GridLayoutRequest.ADD_ROW_COL:
-			cell.setLocation(helper.getNumColumns(), helper.getNumRows());
-			helper.createNewCol(cell.x);
-			if (cell.x != 0 || cell.y != 0)
-				helper.createNewRow(cell.y); // If other than (0,0) for add row
-												// col, we need a new row. If it
-												// was (0,0) then we are adding
-												// the first entry to the grid.
-			helper.replaceFillerOrEmpty(newObject, requestType, cell);
-			break;
-		case GridLayoutRequest.NO_ADD:
-			return UnexecutableCommand.INSTANCE;
-		}
-
-		Command result = helper.stopRequest();
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#getDeleteDependantCommand
-	 * (org.eclipse.gef.Request)
-	 */
-	protected Command getDeleteDependantCommand(Request request) {
-		// Get the commands to insert filler labels into the cells where the
-		// control used to be
-		if (request instanceof ForwardedRequest) {
-			EditPart editPart = ((ForwardedRequest) request).getSender();
-			if (editPart instanceof CompositeEditPart) {
-				helper.setHost((CompositeEditPart) editPart);
-				helper.startRequest();
-				helper.deleteChild((XamlNode) editPart.getModel());
-				return helper.stopRequest();
-			}
-		}
-		return UnexecutableCommand.INSTANCE;
-	}
-
-	protected Command getOrphanChildrenCommand(Request request) {
-		// Get the commands to insert filler labels into the cells where the
-		// control used to be
-		if (request instanceof GroupRequest) {
-			helper.startRequest();
-			List children = getChildren((GroupRequest) request);
-			helper.orphanChildren(children);
-			return helper.stopRequest();
-		} else
-			return UnexecutableCommand.INSTANCE;
-	}
-
-	public List getChildren(GroupRequest request) {
-		List cEP = request.getEditParts();
-		List children = new ArrayList(cEP.size());
-		Iterator itr = cEP.iterator();
-		while (itr.hasNext()) {
-			Object child = ((EditPart) itr.next()).getModel();
-			children.add(child);
-		}
-		return children;
-	}
-
-	public Rectangle getFullCellBounds(EditPart child) {
-		if (getGridLayoutGridFigure() == null)
-			return new Rectangle();
-		Rectangle dims = helper.getChildDimensions((EObject) child.getModel());
-		Rectangle bounds;
-		if (dims != null) {
-			bounds = getGridLayoutGridFigure()
-					.getGridBroundsForCellBounds(dims);
-		} else
-			bounds = new Rectangle();
-
-		return bounds;
-	}
-
-	protected GridLayoutGridFigure getGridLayoutGridFigure() {
-		if (fGridLayoutGridFigure == null) {
-			fGridLayoutGridFigure = new GridLayoutGridFigure(helper);
-		}
-		return fGridLayoutGridFigure;
-	}
-
-	/**
-	 * @return the helper
-	 */
-	public GridLayoutPolicyHelper getHelper() {
-		return helper;
-	}
-
-	/*
-	 * this gets the location from the request and then makes it absolute
-	 * (relative to the bounds of the host figure). If we didn't do this the
-	 * point is relative to the viewport that is displayed, not absolute wrt to
-	 * the entire canvas.
-	 */
-	private Point getLocationFromRequest(Request request) {
-		Point loc = ((DropRequest) request).getLocation().getCopy();
-		getHostFigure().translateToRelative(loc);
-		return loc;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#getMoveChildrenCommand(
-	 * org.eclipse.gef.Request)
-	 */
-	protected Command getMoveChildrenCommand(Request request) {
-		if (fGridLayoutGridFigure == null
-				|| !(request instanceof ChangeBoundsRequest))
-			return UnexecutableCommand.INSTANCE;
-		ChangeBoundsRequest req = (ChangeBoundsRequest) request;
-		List editparts = req.getEditParts();
-		// Only allow one object to be moved
-		if (editparts.size() > 1)
-			return UnexecutableCommand.INSTANCE;
-
-		XamlNode trueEObject = (XamlNode) ((EditPart) editparts.get(0))
-				.getModel();
-		if (trueEObject == null) {
-			return UnexecutableCommand.INSTANCE;
-		}
-
-		Point position = getLocationFromRequest(request).getCopy();
-		GridLayoutRequest gridReq = createGridLayoutRequest(position);
-		Point cell = new Point(gridReq.column, gridReq.row);
-
-		Object requestType = request.getType();
-
-		helper.startRequest();
-		switch (gridReq.type) {
-		case GridLayoutRequest.REPLACE_FILLER:
-			helper.replaceFiller(trueEObject, requestType, cell);
-			break;
-		case GridLayoutRequest.INSERT_COLUMN_WITHIN_ROW:
-			helper.insertColWithinRow(cell);
-			helper.replaceFillerOrEmpty(trueEObject, requestType, cell);
-			break;
-		case GridLayoutRequest.INSERT_COLUMN:
-		case GridLayoutRequest.ADD_COLUMN:
-			helper.createNewCol(cell.x);
-			helper.replaceFillerOrEmpty(trueEObject, requestType, cell);
-			break;
-		case GridLayoutRequest.INSERT_ROW:
-		case GridLayoutRequest.ADD_ROW:
-			helper.createNewRow(cell.y);
-			helper.replaceFillerOrEmpty(trueEObject, requestType, cell);
-			break;
-		case GridLayoutRequest.ADD_TO_EMPTY_CELL:
-			helper.replaceEmptyCell(trueEObject, requestType, cell);
-			break;
-		case GridLayoutRequest.ADD_ROW_COL:
-			cell.setLocation(helper.getNumColumns(), helper.getNumRows());
-			helper.createNewCol(cell.x);
-			if (cell.x != 0 || cell.y != 0)
-				helper.createNewRow(cell.y); // If other than (0,0) for add row
-												// col, we need a new row. If it
-												// was (0,0) then we are adding
-												// the first entry to the grid.
-			helper.replaceFillerOrEmpty(trueEObject, requestType, cell);
-			break;
-		case GridLayoutRequest.NO_ADD:
-			return UnexecutableCommand.INSTANCE;
-		}
-
-		Command command = helper.stopRequest();
-		return command;
-	}
-
-	protected Command getSpanChildrenCommand(Request generic) {
-		ChangeBoundsRequest request = (ChangeBoundsRequest) generic;
-		List editParts = request.getEditParts();
-		if (editParts.isEmpty() || editParts.size() > 1)
-			return UnexecutableCommand.INSTANCE;
-
-		// Get the cell location that the mouse was dragged to
-		Point spanToPosition = getLocationFromRequest(request).getCopy();
-		Point spanToCellLocation = getGridLayoutGridFigure().getCellLocation(
-				spanToPosition.x, spanToPosition.y);
-		// Get the cell location where we started the drag operation
-		Dimension dim = request.getSizeDelta();
-		int handleSizeOffset = GridSpanHandle.HANDLE_SIZE / 2;
-		Point startPosition = new Point(spanToPosition.x - dim.width
-				- handleSizeOffset, spanToPosition.y - dim.height
-				- handleSizeOffset);
-		// Get the cell location of the child component
-		GraphicalEditPart ep = (GraphicalEditPart) editParts.get(0);
-		EObject child = (EObject) ep.getModel();
-		Point childCellLocation = helper.getChildDimensions(child)
-				.getLocation();
-		Point startCellLocation = getGridLayoutGridFigure().getCellLocation(
-				startPosition);
-		// If the cell location where the pointer is located is different from
-		// the original cell location where we started,
-		// create the commands to change the gridwidth or gridheight
-		if ((spanToCellLocation.x >= childCellLocation.x && spanToCellLocation.y >= childCellLocation.y)
-				&& (spanToCellLocation.x != startCellLocation.x || spanToCellLocation.y != startCellLocation.y)) {
-			// Let the helper get the gridWidth or gridHeight commands based on
-			// the cell location
-			// where the pointer is and the span direction (EAST for gridwidth
-			// or SOUTH for gridheight)
-			helper.startRequest();
-			helper.spanChild(child, new Point(spanToCellLocation.x
-					- childCellLocation.x + 1, spanToCellLocation.y
-					- childCellLocation.y + 1), request.getResizeDirection(),
-					null);
-			return helper.stopRequest();
-		}
-		return NoOpCommand.INSTANCE;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.soyatec.xaml.ve.xwt.editpolicies.gridlayout.IGridListener#
-	 * gridHeightChanged(int, int)
-	 */
-	public void gridHeightChanged(int gridHeight, int oldGridHeight) {
-		// do nothing
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.soyatec.xaml.ve.xwt.editpolicies.gridlayout.IGridListener#
-	 * gridMarginChanged(int, int)
-	 */
-	public void gridMarginChanged(int gridMargin, int oldGridMargin) {
-		// do nothing
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.soyatec.xaml.ve.xwt.editpolicies.gridlayout.IGridListener#
-	 * gridVisibilityChanged(boolean)
-	 */
-	public void gridVisibilityChanged(boolean showGrid) {
-		if (showGrid) {
-			showGridFigure();
-		} else {
-			eraseGridFigure();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.soyatec.xaml.ve.xwt.editpolicies.gridlayout.IGridListener#
-	 * gridWidthChanged(int, int)
-	 */
-	public void gridWidthChanged(int gridWidth, int oldGridWidth) {
-		// do nothing
-	}
-
-	/*
-	 * Return true if ep is a child editpart of the host container
-	 */
-	private boolean isChildEditPart(EditPart ep) {
-		if (ep != null) {
-			List children = getHost().getChildren();
-			if (!children.isEmpty())
-				return (children.indexOf(ep) != -1);
-		}
-		return false;
-	}
-
-	/**
-	 * 
-	 */
-	protected void refreshGridFigure() {
-		Display.getDefault().asyncExec(new Runnable() {
-			public void run() {
-				if (fShowGrid) {
-					eraseGridFigure();
-					showGridFigure();
-				} else {
-					fGridLayoutGridFigure = null;
-				}
-			}
-		});
-	}
-
-	/**
-	 * Show the adding cell outside figure feedback.
-	 * 
-	 * @param cellBounds
-	 * 
-	 * @since 1.2.0
-	 */
-	protected void showAddedCellFeedback(Rectangle cellBounds) {
-		cellBounds = cellBounds.getExpanded(cellBounds.width < 10 ? 20 : 0,
-				cellBounds.height < 10 ? 20 : 0);
-		fRowColFigure = new GridLayoutAddedCellFeedbackFigure();
-		fRowColFigure.setBounds(cellBounds);
-		addFeedback(fRowColFigure);
-	}
-
-	/**
-	 * Show a new yellow column inserted into the grid near the column closest
-	 * to position and only within that row
-	 */
-	protected void showColumnFeedBackWithinARow(Rectangle cellBounds) {
-		cellBounds = cellBounds.getCopy();
-		cellBounds.x -= 3; // start to the right by three from side of cell.
-		cellBounds.width = 6; // But only six wide. So it will be centered over
-								// the right side of the cell.
-		fRowColFigure = new GridLayoutColumnFigure(cellBounds);
-		addFeedback(fRowColFigure);
-	}
-
-	/**
-	 * Show grid figure.
-	 */
-	private void showGridFigure() {
-		if (!fShowGrid) {
-			fShowGrid = true;
-			addFeedback(getGridLayoutGridFigure());
-		}
-		fShowGrid = true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#showTargetFeedback(org.
-	 * eclipse.gef.Request)
-	 */
-	public void showTargetFeedback(Request request) {
-		if (!(REQ_CREATE.equals(request.getType())
-				&& request instanceof CreateRequest && FeedbackHelper
-				.showCreationFeedback(fbm, (CreateRequest) request))) {
-			super.showTargetFeedback(request);
-		}
-	}
-
-	/**
-	 * Shows an insertion line if there is one or more current children.
-	 */
-	protected void showLayoutTargetFeedback(Request request) {
-		if (!(REQ_CREATE.equals(request.getType()) && FeedbackHelper
-				.showCreationFeedback(fbm, (CreateRequest) request))) {
-			super.showLayoutTargetFeedback(request);
-		}
-		if (!fShowGrid)
-			addFeedback(getGridLayoutGridFigure());
-
-		if (fRowColFigure != null) {
-			removeFeedback(fRowColFigure);
-			fRowColFigure = null;
-		}
-
-		if (fGridLayoutCellFigure != null) {
-			removeFeedback(fGridLayoutCellFigure);
-			fGridLayoutCellFigure = null;
-		}
-
-		Point position = getLocationFromRequest(request).getCopy();
-		GridLayoutRequest gridReq = createGridLayoutRequest(position);
-
-		Point cell = new Point(gridReq.column, gridReq.row);
-		Rectangle cellBounds = getGridLayoutGridFigure().getCellBounds(cell);
-
-		// Calculate the bounds of the target cell figure based on whether a
-		// column is added,
-		// row is added, or it's inserted before another control.
-		switch (gridReq.type) {
-		case GridLayoutRequest.INSERT_COLUMN:
-			// If a column is added, show the target figure in between the two
-			// columns
-			showNewColumnFeedBack(gridReq.column);
-			Rectangle colFigBounds = fRowColFigure.getBounds();
-			// mapModelToFigure(cellBounds);
-			cellBounds.width = DEFAULT_CELL_WIDTH;
-			if (cellBounds.height < 10)
-				cellBounds.expand(0, 20);
-			cellBounds.x = colFigBounds.x + colFigBounds.width / 2
-					- cellBounds.width / 2;
-			break;
-		case GridLayoutRequest.INSERT_ROW:
-			// If a row is added, show the target figure in between the two rows
-			showNewRowFeedBack(gridReq.row);
-			Rectangle rowFigBounds = fRowColFigure.getBounds();
-			// mapModelToFigure(cellBounds);
-			cellBounds.height = DEFAULT_CELL_HEIGHT;
-			if (cellBounds.width < 10)
-				cellBounds.expand(20, 0);
-			cellBounds.y = rowFigBounds.y + rowFigBounds.height / 2
-					- cellBounds.height / 2;
-			break;
-		case GridLayoutRequest.INSERT_COLUMN_WITHIN_ROW:
-			// In case cell is spanned vertically we need to have the complete
-			// cellbounds.
-			showColumnFeedBackWithinARow(cellBounds);
-			// mapModelToFigure(cellBounds);
-			colFigBounds = fRowColFigure.getBounds();
-			cellBounds.width = DEFAULT_CELL_WIDTH;
-			if (cellBounds.height < 10)
-				cellBounds.expand(0, 20);
-			cellBounds.x = colFigBounds.x + colFigBounds.width / 2
-					- cellBounds.width / 2;
-			break;
-		case GridLayoutRequest.ADD_COLUMN:
-		case GridLayoutRequest.ADD_ROW:
-		case GridLayoutRequest.ADD_ROW_COL:
-			showAddedCellFeedback(cellBounds);
-			colFigBounds = fRowColFigure.getBounds();
-			// Center the cell within these bounds.
-			cellBounds = colFigBounds.getCopy().shrink(ADDEDCELLBORDER,
-					ADDEDCELLBORDER);
-			break;
-		case GridLayoutRequest.NO_ADD:
-			return; // No feedback.
-		default:
-			// mapModelToFigure(cellBounds.expand(cellBounds.width < 10 ? 20 :
-			// 0, cellBounds.height < 10 ? 20 : 0));
-			break;
-		}
-
-		if (fGridLayoutCellFigure == null) {
-			fGridLayoutCellFigure = new GridLayoutFeedbackFigure();
-		}
-		fGridLayoutCellFigure.setBounds(cellBounds);
-		addFeedback(fGridLayoutCellFigure);
-	}
-
-	/**
-	 * Show a new yellow column inserted into the grid near the column closest
-	 * to position
-	 */
-	protected void showNewColumnFeedBack(int col) {
-		Rectangle rect = fGridLayoutGridFigure.getColumnRectangle(col);
-		rect.x -= 3;
-		rect.width = 6;
-		fRowColFigure = new GridLayoutColumnFigure(rect);
-		addFeedback(fRowColFigure);
-	}
-
-	/**
-	 * Show a new yellow row inserted into the grid near the row closest to
-	 * position
-	 */
-	protected void showNewRowFeedBack(int row) {
-		Rectangle rect = fGridLayoutGridFigure.getRowRectangle(row);
-		rect.translate(-2, -3);
-		rect.width += 4;
-		rect.height = 6;
-		fRowColFigure = new GridLayoutRowFigure(rect);
-		addFeedback(fRowColFigure);
-	}
-
-	/*
-	 * Show target feedback when dragging the span handles of a component.
-	 * Highlight the cells the component will occupy based on the begining cell
-	 * position and end cell position of the pointer.
-	 */
-	public void showSpanTargetFeedback(ChangeBoundsRequest request) {
-		// If the grid is not on, turn it on
-		if (!fShowGrid)
-			addFeedback(getGridLayoutGridFigure());
-
-		Point spanToPosition = request.getLocation().getCopy();
-
-		// Get the cell location of the child component
-		GraphicalEditPart ep = (GraphicalEditPart) request.getEditParts()
-				.get(0);
-		EObject child = (EObject) ep.getModel();
-		Rectangle childDim = getHelper().getChildDimensions(child);
-
-		// Get the start and end cell bounds in order to determine the entire
-		// bounds of the cell feedback figure.
-		Rectangle startCellBounds = getGridLayoutGridFigure().getCellBounds(
-				childDim.getLocation());
-		Rectangle endCellChildBounds = getGridLayoutGridFigure().getCellBounds(
-				childDim.getBottomRight().translate(-1, -1)); // This is the
-																// lower right
-																// of the child
-																// itself.
-		if (request.getResizeDirection() == PositionConstants.EAST
-				|| request.getResizeDirection() == PositionConstants.WEST) {
-			spanToPosition.y = endCellChildBounds.y; // This forces us to not
-														// span north/south when
-														// going east/west. And
-														// it will make it tall
-														// enough that entire
-														// cell spanned height
-														// is covered.
-		} else {
-			spanToPosition.x = endCellChildBounds.x + endCellChildBounds.width
-					- 1; // This forces us to not span left/right when going
-							// north/south. And it will make it wide enough that
-							// entire cell spanned width is covered.
-		}
-		Rectangle endCellBounds = getGridLayoutGridFigure().getCellBounds(
-				getGridLayoutGridFigure().getCellLocation(spanToPosition));
-		if (endCellBounds == null || endCellBounds.x < startCellBounds.x
-				|| endCellBounds.y < startCellBounds.y) {
-			// End is not within a cell, or the end is before the start cell.
-			if (fGridLayoutSpanFigure != null) {
-				removeFeedback(fGridLayoutSpanFigure);
-				fGridLayoutSpanFigure = null;
-			}
-			return;
-		}
-
-		Rectangle spanrect = startCellBounds.union(endCellBounds)
-				.resize(-1, -1);
-		if (fGridLayoutSpanFigure == null) {
-			fGridLayoutSpanFigure = new GridLayoutSpanFeedbackFigure(request
-					.getResizeDirection());
-		}
-		fGridLayoutSpanFigure.setLayoutFigureBounds(spanrect);
-		addFeedback(fGridLayoutSpanFigure);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.xwt.tools.ui.designer.policies.layout.ILayoutEditPolicy
-	 * #refresh()
-	 */
-	public void refresh() {
-		helper.refresh();
-		refreshGridFigure();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.xwt.tools.ui.designer.policies.layout.ILayoutEditPolicy
-	 * #getType()
-	 */
-	public LayoutType getType() {
-		return LayoutType.GridLayout;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/ILayoutEditPolicy.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/ILayoutEditPolicy.java
deleted file mode 100755
index 3d99fb7..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/ILayoutEditPolicy.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout;
-
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public interface ILayoutEditPolicy extends EditPolicy {
-
-	LayoutType getType();
-
-	void refresh();
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/LayoutEditPolicyFactory.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/LayoutEditPolicyFactory.java
deleted file mode 100755
index 6a959bf..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/LayoutEditPolicyFactory.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout;
-
-import org.eclipse.gef.editpolicies.LayoutEditPolicy;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
-import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class LayoutEditPolicyFactory {
-
-	public static LayoutEditPolicy NULL_LAYOUT = new NullLayoutEditPolicy();
-
-	public static ILayoutEditPolicy getLayoutEditPolicy(CompositeEditPart editPart) {
-		LayoutType type = LayoutsHelper.getLayoutType(editPart);
-		switch (type) {
-		case GridLayout:
-			return new GridLayoutEditPolicy();
-		case FillLayout:
-			return new FillLayoutEditPolicy();
-		case RowLayout:
-			return new RowLayoutEditPolicy();
-		case FormLayout:
-			return new FormLayoutEditPolicy();
-		case StackLayout:
-		default:
-			return new NullLayoutEditPolicy();
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/MenuBarLayoutEditPolicy.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/MenuBarLayoutEditPolicy.java
deleted file mode 100755
index c8b05c8..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/MenuBarLayoutEditPolicy.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.xwt.tools.ui.designer.policies.NewNonResizeEditPolicy;
-
-public class MenuBarLayoutEditPolicy extends RowLayoutEditPolicy {
-
-	protected EditPolicy createChildEditPolicy(EditPart child) {
-		return new NewNonResizeEditPolicy(false);
-	}
-
-	protected boolean isHorizontal() {
-		return true;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/NonResizableLayoutEditPolicy.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/NonResizableLayoutEditPolicy.java
deleted file mode 100755
index 2071722..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/NonResizableLayoutEditPolicy.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.editpolicies.LayoutEditPolicy;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.xwt.tools.ui.designer.policies.NewNonResizeEditPolicy;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class NonResizableLayoutEditPolicy extends LayoutEditPolicy {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#createChildEditPolicy(org.eclipse.gef.EditPart)
-	 */
-	protected EditPolicy createChildEditPolicy(EditPart child) {
-		return new NewNonResizeEditPolicy(false);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#getCreateCommand(org.eclipse.gef.requests.CreateRequest)
-	 */
-	protected Command getCreateCommand(CreateRequest request) {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#getMoveChildrenCommand(org.eclipse.gef.Request)
-	 */
-	protected Command getMoveChildrenCommand(Request request) {
-		return null;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
deleted file mode 100755
index 5fafbca..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout;
-
-/*
- * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.3 $ $Date: 2010/06/18 00:15:49 $
- */
-
-import java.util.List;
-
-import org.eclipse.draw2d.PositionConstants;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.Handle;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.UnexecutableCommand;
-import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
-import org.eclipse.gef.requests.ChangeBoundsRequest;
-import org.eclipse.gef.tools.ResizeTracker;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridSpanHandle;
-
-/**
- * EditPolicy for non-resizable handles, but span handles attached.
- * 
- * @since 1.1.0
- */
-public class NonResizableSpannableEditPolicy extends NonResizableEditPolicy {
-
-	protected GridLayoutEditPolicy layoutEditPolicy;
-
-	/**
-	 * 
-	 */
-	public NonResizableSpannableEditPolicy(GridLayoutEditPolicy layoutEditPolicy) {
-		super();
-		this.layoutEditPolicy = layoutEditPolicy;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.SelectionHandlesEditPolicy#
-	 * createSelectionHandles()
-	 */
-	protected List createSelectionHandles() {
-		List nonResizeHandles = super.createSelectionHandles();
-		if (getHost().getSelected() == EditPart.SELECTED_PRIMARY) {
-			// Can't hide the Right to left under model coor. here. We need to
-			// know if RTL so that we
-			// use WEST instead of EAST.
-			if (!layoutEditPolicy.getHelper().isRightToLeft())
-				nonResizeHandles.add(createHandle(
-						(GraphicalEditPart) getHost(), PositionConstants.EAST));
-			else
-				nonResizeHandles.add(createHandle(
-						(GraphicalEditPart) getHost(), PositionConstants.WEST));
-			nonResizeHandles.add(createHandle((GraphicalEditPart) getHost(),
-					PositionConstants.SOUTH));
-		}
-		return nonResizeHandles;
-	}
-
-	private Handle createHandle(GraphicalEditPart owner, int direction) {
-		GridSpanHandle handle = new GridSpanHandle(owner, direction,
-				layoutEditPolicy);
-		handle.setDragTracker(new ResizeTracker(owner, direction));
-		return handle;
-	}
-
-	public Command getCommand(Request request) {
-		if (REQ_RESIZE.equals(request.getType())
-				&& request instanceof ChangeBoundsRequest) {
-			return getSpanCommand((ChangeBoundsRequest) request);
-		}
-		return super.getCommand(request);
-	}
-
-	private Command getSpanCommand(ChangeBoundsRequest request) {
-		List editParts = request.getEditParts();
-		if (editParts.isEmpty() || editParts.size() > 1) {
-			return UnexecutableCommand.INSTANCE;
-		}
-		ChangeBoundsRequest req = createSpanRequest(request);
-		return getHost().getParent().getCommand(req);
-	}
-
-	/*
-	 * Return a ChangeBoundsRequest with type REQ_GRIDBAGLAYOUT_SPAN from a
-	 * REQ_RESIZE ChangeBoundsRequest
-	 */
-	private ChangeBoundsRequest createSpanRequest(ChangeBoundsRequest request) {
-		ChangeBoundsRequest req = new ChangeBoundsRequest(
-				GridLayoutEditPolicy.REQ_GRIDLAYOUT_SPAN);
-		req.setEditParts(getHost());
-		req.setMoveDelta(request.getMoveDelta());
-		req.setSizeDelta(request.getSizeDelta());
-		req.setLocation(request.getLocation());
-		req.setResizeDirection(request.getResizeDirection());
-		return req;
-	}
-
-	public void eraseSourceFeedback(Request request) {
-		if (REQ_RESIZE.equals(request.getType())) {
-			layoutEditPolicy.eraseTargetFeedback(request);
-		} else
-			super.eraseSourceFeedback(request);
-	}
-
-	public void showSourceFeedback(Request request) {
-		if (REQ_RESIZE.equals(request.getType())) {
-			if (request instanceof ChangeBoundsRequest
-					&& ((ChangeBoundsRequest) request).getEditParts().size() == 1) {
-				layoutEditPolicy
-						.showSpanTargetFeedback(createSpanRequest((ChangeBoundsRequest) request));
-			}
-		} else
-			super.showSourceFeedback(request);
-	}
-
-	public boolean understandsRequest(Request request) {
-		if (REQ_RESIZE.equals(request.getType()))
-			return true;
-		return super.understandsRequest(request);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/NullLayoutEditPolicy.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/NullLayoutEditPolicy.java
deleted file mode 100755
index 3a8f037..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/NullLayoutEditPolicy.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Polygon;
-import org.eclipse.draw2d.PositionConstants;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.editpolicies.XYLayoutEditPolicy;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.xwt.tools.ui.designer.commands.NullLayoutCommandsFactory;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
-import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
-import org.eclipse.xwt.tools.ui.designer.policies.NewResizableEditPolicy;
-import org.eclipse.xwt.tools.ui.designer.policies.feedback.CrossFeedback;
-import org.eclipse.xwt.tools.ui.designer.policies.feedback.FeedbackHelper;
-import org.eclipse.xwt.tools.ui.designer.policies.feedback.FeedbackManager;
-import org.eclipse.xwt.tools.ui.designer.utils.FigureUtil;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class NullLayoutEditPolicy extends XYLayoutEditPolicy implements ILayoutEditPolicy {
-
-	private FeedbackManager fbm = new FeedbackManager(this);
-	private CrossFeedback crossFeedback;
-	private Polygon targetFeedback;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.ConstrainedLayoutEditPolicy#createChangeConstraintCommand(org.eclipse.gef.EditPart, java.lang.Object)
-	 */
-	protected Command createChangeConstraintCommand(EditPart child, Object constraint) {
-		NullLayoutCommandsFactory factory = new NullLayoutCommandsFactory(child);
-		return factory.getChangeConstraintCommand(constraint);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.ConstrainedLayoutEditPolicy#createChildEditPolicy(org.eclipse.gef.EditPart)
-	 */
-	protected EditPolicy createChildEditPolicy(EditPart child) {
-		return new NewResizableEditPolicy(PositionConstants.NSEW, true);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#getCreateCommand(org.eclipse.gef.requests.CreateRequest)
-	 */
-	protected Command getCreateCommand(CreateRequest request) {
-		NullLayoutCommandsFactory factory = new NullLayoutCommandsFactory(getHost());
-		return factory.getCreateCommand(request);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#getDeleteDependantCommand(org.eclipse.gef.Request)
-	 */
-	protected Command getDeleteDependantCommand(Request request) {
-		NullLayoutCommandsFactory factory = new NullLayoutCommandsFactory(getHost());
-		return factory.getDeleteCommand(request);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#showLayoutTargetFeedback(org.eclipse.gef.Request)
-	 */
-	protected void showLayoutTargetFeedback(Request request) {
-		if (REQ_CREATE.equals(request.getType())) {
-			if (!FeedbackHelper.showCreationFeedback(fbm, (CreateRequest) request)) {
-				Point location = ((CreateRequest) request).getLocation().getCopy();
-				GraphicalEditPart parent = (GraphicalEditPart) getHost();
-				if (!(parent instanceof CompositeEditPart)) {
-					return;
-				}
-				if (crossFeedback == null) {
-					crossFeedback = new CrossFeedback(location);
-				}
-				if (targetFeedback == null) {
-					targetFeedback = FeedbackHelper.createTargetFeedback();
-				}
-				FeedbackHelper.updateTargetFeedback(parent, targetFeedback);
-				addFeedback(targetFeedback);
-				
-				Point center = FigureUtil.translateToRelative(parent, location);
-				crossFeedback.setTooltipText("(" + center.x + "," + center.y + ")");
-				crossFeedback.setCenter(location);
-				addFeedback(crossFeedback);
-			}
-		} else {
-			super.showLayoutTargetFeedback(request);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#eraseLayoutTargetFeedback(org.eclipse.gef.Request)
-	 */
-	protected void eraseLayoutTargetFeedback(Request request) {
-		fbm.eraseFeedback(request);
-		if (crossFeedback != null && crossFeedback.getParent() != null) {
-			removeFeedback(crossFeedback);
-		}
-		if (targetFeedback != null && targetFeedback.getParent() != null) {
-			removeFeedback(targetFeedback);
-		}
-		super.eraseLayoutTargetFeedback(request);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.policies.layout.ILayoutEditPolicy#refresh()
-	 */
-	public void refresh() {
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.policies.layout.ILayoutEditPolicy#getType()
-	 */
-	public LayoutType getType() {
-		return LayoutType.NullLayout;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/RowLayoutEditPolicy.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/RowLayoutEditPolicy.java
deleted file mode 100755
index c3a4756..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/RowLayoutEditPolicy.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout;
-
-import java.util.List;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Polyline;
-import org.eclipse.draw2d.PositionConstants;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CompoundCommand;
-import org.eclipse.gef.editpolicies.FlowLayoutEditPolicy;
-import org.eclipse.gef.requests.ChangeBoundsRequest;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.xwt.tools.ui.designer.commands.MoveChildCommand;
-import org.eclipse.xwt.tools.ui.designer.commands.RowLayoutCommandsFactory;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
-import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
-import org.eclipse.xwt.tools.ui.designer.policies.NewResizableEditPolicy;
-import org.eclipse.xwt.tools.ui.designer.policies.feedback.FeedbackHelper;
-import org.eclipse.xwt.tools.ui.designer.policies.feedback.FeedbackManager;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class RowLayoutEditPolicy extends FlowLayoutEditPolicy implements ILayoutEditPolicy {
-	private static final int HORIZONTAL = 1 << 8;
-	protected int type = HORIZONTAL;
-
-	private FeedbackManager fbm = new FeedbackManager(this);
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.OrderedLayoutEditPolicy#createChildEditPolicy(org.eclipse.gef.EditPart)
-	 */
-	protected EditPolicy createChildEditPolicy(EditPart child) {
-		return new NewResizableEditPolicy(PositionConstants.SOUTH_EAST, true);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.FlowLayoutEditPolicy#getLineFeedback()
-	 */
-	protected Polyline getLineFeedback() {
-		Polyline polyline = super.getLineFeedback();
-		polyline.setForegroundColor(ColorConstants.red);
-		return polyline;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.FlowLayoutEditPolicy#isHorizontal()
-	 */
-	protected boolean isHorizontal() {
-		return type == HORIZONTAL;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#activate()
-	 */
-	public void activate() {
-		super.activate();
-		determineType();
-	}
-
-	protected void determineType() {
-		EditPart host = getHost();
-		if (!(host instanceof CompositeEditPart)) {
-			return;
-		}
-		CompositeEditPart composite = (CompositeEditPart) host;
-		Layout layout = composite.getLayout();
-		if (layout != null && layout instanceof RowLayout) {
-			type = ((RowLayout) layout).type;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.OrderedLayoutEditPolicy#createAddCommand(org.eclipse.gef.EditPart, org.eclipse.gef.EditPart)
-	 */
-	protected Command createAddCommand(EditPart child, EditPart after) {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.OrderedLayoutEditPolicy#createMoveChildCommand(org.eclipse.gef.EditPart, org.eclipse.gef.EditPart)
-	 */
-	protected Command createMoveChildCommand(EditPart child, EditPart after) {
-		return new MoveChildCommand(child, after);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#getCommand(org.eclipse.gef.Request)
-	 */
-	public Command getCommand(Request request) {
-		if (REQ_RESIZE_CHILDREN.equals(request.getType())) {
-			return getResizeCommand(request);
-		}
-		return super.getCommand(request);
-	}
-
-	/**
-	 * @param request
-	 * @return
-	 */
-	private Command getResizeCommand(Request request) {
-		ChangeBoundsRequest req = (ChangeBoundsRequest) request;
-		CompoundCommand resize = new CompoundCommand();
-		Command c;
-		GraphicalEditPart child;
-		List children = req.getEditParts();
-
-		for (int i = 0; i < children.size(); i++) {
-			child = (GraphicalEditPart) children.get(i);
-			c = createResizeChildrenCommand(request, child, req.getSizeDelta());
-			resize.add(c);
-		}
-		return resize.unwrap();
-	}
-
-	protected Command createResizeChildrenCommand(Request request, EditPart child, Object newSize) {
-		RowLayoutCommandsFactory factory = new RowLayoutCommandsFactory(child);
-		return factory.getResizeChildCommand(newSize);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#getCreateCommand(org.eclipse.gef.requests.CreateRequest)
-	 */
-	protected Command getCreateCommand(CreateRequest request) {
-		RowLayoutCommandsFactory factory = new RowLayoutCommandsFactory(getHost());
-		EditPart insertionReference = getInsertionReference(request);
-		return factory.getCreateCommand(request, insertionReference);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#getDeleteDependantCommand(org.eclipse.gef.Request)
-	 */
-	protected Command getDeleteDependantCommand(Request request) {
-		RowLayoutCommandsFactory factory = new RowLayoutCommandsFactory(getHost());
-		return factory.getDeleteCommand(request);
-	}
-
-	protected void showLayoutTargetFeedback(Request request) {
-		if (REQ_CREATE.equals(request.getType())) {
-			if (!FeedbackHelper.showCreationFeedback(fbm, (CreateRequest) request)) {
-				super.showLayoutTargetFeedback(request);
-			}
-		} else {
-			super.showLayoutTargetFeedback(request);
-		}
-	}
-
-	protected void eraseLayoutTargetFeedback(Request request) {
-		fbm.eraseFeedback(request);
-		super.eraseLayoutTargetFeedback(request);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.policies.layout.ILayoutEditPolicy#refresh()
-	 */
-	public void refresh() {
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.policies.layout.ILayoutEditPolicy#getType()
-	 */
-	public LayoutType getType() {
-		return LayoutType.RowLayout;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/StackableLayoutEditPolicy.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/StackableLayoutEditPolicy.java
deleted file mode 100755
index 2b29052..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/StackableLayoutEditPolicy.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout;
-
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.editpolicies.LayoutEditPolicy;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.xwt.tools.ui.designer.commands.AttachedPropertyCreateCommand;
-import org.eclipse.xwt.tools.ui.designer.commands.DefaultCreateCommand;
-import org.eclipse.xwt.tools.ui.designer.editor.palette.CreateReqHelper;
-import org.eclipse.xwt.tools.ui.designer.parts.StackableEditPart;
-import org.eclipse.xwt.tools.ui.designer.policies.NewNonResizeEditPolicy;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jin.liu (jin.liu@soyatec.com)
- * 
- */
-public class StackableLayoutEditPolicy extends LayoutEditPolicy {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#createChildEditPolicy(org
-	 * .eclipse.gef.EditPart)
-	 */
-	protected EditPolicy createChildEditPolicy(EditPart child) {
-		return new NewNonResizeEditPolicy(false);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#getCreateCommand(org.eclipse
-	 * .gef.requests.CreateRequest)
-	 */
-	protected Command getCreateCommand(CreateRequest request) {
-		StackableEditPart host = (StackableEditPart) getHost();
-		CreateReqHelper helper = new CreateReqHelper(request);
-		XamlNode newObject = helper.getNewObject();
-		if (newObject == null) {
-			return null;
-		}
-		IMetaclass metaclass = XWTUtility.getMetaclass(newObject);
-		if (metaclass == null) {
-			return null;
-		}
-		if (Item.class.isAssignableFrom(metaclass.getType())) {
-			return new DefaultCreateCommand(host, request);
-		} else {
-			return new AttachedPropertyCreateCommand(host.getPopItemPart(),
-					request, "control");
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#getMoveChildrenCommand(
-	 * org.eclipse.gef.Request)
-	 */
-	protected Command getMoveChildrenCommand(Request request) {
-		return null;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/TabFolderLayoutEditPolicy.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/TabFolderLayoutEditPolicy.java
deleted file mode 100755
index a7a9860..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/TabFolderLayoutEditPolicy.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout;
-
-import org.eclipse.draw2d.Polygon;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.editpolicies.LayoutEditPolicy;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.xwt.tools.ui.designer.commands.AttachedPropertyCreateCommand;
-import org.eclipse.xwt.tools.ui.designer.commands.DefaultCreateCommand;
-import org.eclipse.xwt.tools.ui.designer.editor.palette.CreateReqHelper;
-import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
-import org.eclipse.xwt.tools.ui.designer.parts.TabFolderEditPart;
-import org.eclipse.xwt.tools.ui.designer.policies.NewNonResizeEditPolicy;
-import org.eclipse.xwt.tools.ui.designer.policies.feedback.CrossFeedback;
-import org.eclipse.xwt.tools.ui.designer.policies.feedback.FeedbackHelper;
-import org.eclipse.xwt.tools.ui.designer.utils.FigureUtil;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jin.liu (jin.liu@soyatec.com)
- * 
- */
-public class TabFolderLayoutEditPolicy extends LayoutEditPolicy {
-	private Polygon targetFeedback;
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#createChildEditPolicy(org
-	 * .eclipse.gef.EditPart)
-	 */
-	protected EditPolicy createChildEditPolicy(EditPart child) {
-		return new NewNonResizeEditPolicy(false);
-	}
-
-	protected void showLayoutTargetFeedback(Request request) {
-		if (REQ_CREATE.equals(request.getType())) {
-			TabFolderEditPart parent = (TabFolderEditPart) getHost();
-			if (targetFeedback == null) {
-				targetFeedback = FeedbackHelper.createTargetFeedback();
-			}
-			FeedbackHelper.updateTargetFeedback(parent, targetFeedback);
-			addFeedback(targetFeedback);
-		}
-		super.showLayoutTargetFeedback(request);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#eraseLayoutTargetFeedback(org.eclipse.gef.Request)
-	 */
-	protected void eraseLayoutTargetFeedback(Request request) {
-		if (targetFeedback != null && targetFeedback.getParent() != null) {
-			removeFeedback(targetFeedback);
-		}
-		super.eraseLayoutTargetFeedback(request);
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#getCreateCommand(org.eclipse
-	 * .gef.requests.CreateRequest)
-	 */
-	protected Command getCreateCommand(CreateRequest request) {
-		TabFolderEditPart host = (TabFolderEditPart) getHost();
-		CreateReqHelper helper = new CreateReqHelper(request);
-		XamlNode newObject = helper.getNewObject();
-		if (newObject == null) {
-			return null;
-		}
-		IMetaclass metaclass = XWTUtility.getMetaclass(newObject);
-		if (metaclass == null) {
-			return null;
-		}
-		if (Item.class.isAssignableFrom(metaclass.getType())) {
-			return new DefaultCreateCommand(host, request);
-		} else {
-			return new AttachedPropertyCreateCommand(host.getActiveItemPart(),
-					request, "control");
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#getMoveChildrenCommand(
-	 * org.eclipse.gef.Request)
-	 */
-	protected Command getMoveChildrenCommand(Request request) {
-		return null;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/ToolBarLayoutEditPolicy.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/ToolBarLayoutEditPolicy.java
deleted file mode 100755
index 9727c67..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/ToolBarLayoutEditPolicy.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.swt.SWT;
-import org.eclipse.xwt.tools.ui.designer.policies.NewNonResizeEditPolicy;
-import org.eclipse.xwt.tools.ui.designer.utils.StyleHelper;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-
-/**
- * @author rui.ban rui.ban@soyatec.com
- */
-public class ToolBarLayoutEditPolicy extends RowLayoutEditPolicy {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.policies.layout.RowLayoutEditPolicy#createChildEditPolicy(org.eclipse.gef.EditPart)
-	 */
-	protected EditPolicy createChildEditPolicy(EditPart child) {
-		NewNonResizeEditPolicy editPolicy = new NewNonResizeEditPolicy(false);
-		editPolicy.setDragAllowed(true);
-		return editPolicy;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.policies.layout.RowLayoutEditPolicy#isHorizontal()
-	 */
-	protected boolean isHorizontal() {
-		XamlElement model = (XamlElement) this.getHost().getModel();
-		return StyleHelper.checkStyle(model, SWT.HORIZONTAL);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/form/FormDataFigure.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/form/FormDataFigure.java
deleted file mode 100755
index 1a30c72..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/form/FormDataFigure.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout.form;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.PositionConstants;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.xwt.tools.ui.designer.core.util.Draw2dTools;
-import org.eclipse.xwt.tools.ui.designer.core.util.swt.SWTTools;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class FormDataFigure extends Figure {
-	private FormLayoutData layoutData;
-
-	public FormDataFigure(FormLayoutData layoutData) {
-		this.layoutData = layoutData;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.draw2d.Figure#paint(org.eclipse.draw2d.Graphics)
-	 */
-	public void paint(Graphics graphics) {
-		if (getLayoutData() == null || getLayoutData().data == null || getLayoutData().bounds == null) {
-			return;
-		}
-		Rectangle r = getLayoutData().bounds.getCopy();
-		IFigure parent = getParent();
-		if (parent != null) {
-			parent.translateToRelative(r);
-		}
-		graphics.setLineWidth(1);
-		graphics.setForegroundColor(ColorConstants.blue);
-		FormData formData = getLayoutData().data;
-		FormAttachment left = formData.left, top = formData.top, right = formData.right, bottom = formData.bottom;
-		if (left != null) {
-			if (SWT.LEFT == left.alignment) {
-				graphics.setLineStyle(SWT.LINE_DOT);
-				Point p1 = r.getLocation().getTranslated(0, 15);
-				Rectangle rc = getBounds(left.control);
-				int dis = r.bottom() - rc.bottom() - r.height;
-				Point p2 = p1.getTranslated(0, -dis - 30);
-				graphics.drawLine(p1, p2);
-			} else {
-				graphics.setLineStyle(SWT.LINE_DASH);
-				Point p1 = r.getLocation().getTranslated(0, r.height / 2);
-				Point p2 = p1.getTranslated(-left.offset, 0);
-				graphics.drawLine(p1, p2);
-				if (left.control != null) {
-					Rectangle rc = getBounds(left.control);
-					if (r.bottom() > rc.bottom()) {
-						int offset = r.bottom() - rc.bottom();
-						Point p3 = p2.getTranslated(0, -offset / 2 - 5);
-						Point p4 = p2.getTranslated(0, 15);
-						graphics.drawLine(p3, p4);
-					} else if (r.y < rc.y) {
-						int offset = rc.y - r.y;
-						Point p3 = p2.getTranslated(0, offset / 2 + 5);
-						Point p4 = p2.getTranslated(0, -15);
-						graphics.drawLine(p3, p4);
-					}
-				}
-				drawArc(p2, PositionConstants.WEST, graphics);
-			}
-		}
-		if (right != null) {
-			if (SWT.RIGHT == right.alignment) {
-				graphics.setLineStyle(SWT.LINE_DOT);
-				Point p1 = r.getLocation().getTranslated(r.width, 15);
-				Rectangle rc = getBounds(right.control);
-				int dis = r.bottom() - rc.bottom() - r.height;
-				Point p2 = p1.getTranslated(0, -dis - 30);
-				graphics.drawLine(p1, p2);
-			} else {
-				graphics.setLineStyle(SWT.LINE_DASH);
-				Point p1 = r.getLocation().getTranslated(r.width, r.height / 2);
-				Point p2 = p1.getTranslated(-right.offset, 0);
-				graphics.drawLine(p1, p2);
-				drawArc(p2, PositionConstants.EAST, graphics);
-			}
-		}
-		if (top != null) {
-			if (SWT.TOP == top.alignment) {
-				graphics.setLineStyle(SWT.LINE_DOT);
-				Point p1 = r.getLocation().getTranslated(15, 0);
-				Rectangle rc = getBounds(top.control);
-				int dis = r.right() - rc.right() - r.width;
-				Point p2 = p1.getTranslated(-dis - 30, 0);
-				graphics.drawLine(p1, p2);
-			} else {
-				graphics.setLineStyle(SWT.LINE_DASH);
-				Point p1 = r.getLocation().getTranslated(r.width / 2, 0);
-				Point p2 = p1.getTranslated(0, -top.offset);
-				graphics.drawLine(p1, p2);
-				if (top.control != null) {
-					Rectangle rc = getBounds(top.control);
-					if (r.right() > rc.right()) {
-						int offset = r.right() - rc.right();
-						Point p3 = p2.getTranslated(-offset / 2 - 5, 0);
-						Point p4 = p2.getTranslated(15, 0);
-						graphics.drawLine(p3, p4);
-					} else if (r.x < rc.x) {
-						int offset = rc.x - r.x;
-						Point p3 = p2.getTranslated(offset / 2 + 5, 0);
-						Point p4 = p2.getTranslated(-15, 0);
-						graphics.drawLine(p3, p4);
-					}
-				}
-				drawArc(p2, PositionConstants.NORTH, graphics);
-			}
-		}
-		if (bottom != null) {
-			if (SWT.BOTTOM == bottom.alignment) {
-				graphics.setLineStyle(SWT.LINE_DOT);
-				Point p1 = r.getLocation().getTranslated(15, r.height);
-				Rectangle rc = getBounds(bottom.control);
-				int dis = r.right() - rc.right() - r.width;
-				Point p2 = p1.getTranslated(-dis - 30, 0);
-				graphics.drawLine(p1, p2);
-			} else {
-				graphics.setLineStyle(SWT.LINE_DASH);
-				Point p1 = r.getLocation().getTranslated(r.width / 2, r.height);
-				Point p2 = p1.getTranslated(0, -bottom.offset);
-				graphics.drawLine(p1, p2);
-				drawArc(p2, PositionConstants.SOUTH, graphics);
-			}
-		}
-	}
-
-	private void drawArc(Point point, int position, Graphics g) {
-		try {
-			g.setAntialias(SWT.ON);
-		} catch (Exception e) {
-		}
-		g.setBackgroundColor(ColorConstants.blue);
-		Point p = point.getTranslated(-3, -3);
-		Dimension s = new Dimension(6, 6);
-		int offset = 90;
-		if (position == PositionConstants.WEST) {
-			offset = offset * 3;
-		} else if (position == PositionConstants.NORTH) {
-			offset = offset * 2;
-		} else if (position == PositionConstants.SOUTH) {
-			offset = offset * 4;
-		}
-		g.fillArc(new Rectangle(p, s), offset, 180);
-		try {
-			g.setAntialias(SWT.OFF);
-		} catch (Exception e) {
-		}
-	}
-
-	private Rectangle getBounds(Control control) {
-		Rectangle r = Draw2dTools.toDraw2d(SWTTools.getBounds(control));
-		return r;
-	}
-
-	public void setLayoutData(FormLayoutData layoutData) {
-		this.layoutData = layoutData;
-		repaint();
-	}
-
-	public FormLayoutData getLayoutData() {
-		return layoutData;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/form/FormLayoutData.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/form/FormLayoutData.java
deleted file mode 100755
index 838e5ff..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/form/FormLayoutData.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout.form;
-
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.swt.layout.FormData;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class FormLayoutData {
-
-	public FormData data;
-	public Rectangle bounds;
-
-	public FormLayoutData(FormData data, Rectangle bounds) {
-		this.data = data;
-		this.bounds = bounds;
-	}
-
-	public FormData getData() {
-		return data;
-	}
-
-	public Rectangle getBounds() {
-		return bounds;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/form/FormLayoutHelper.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/form/FormLayoutHelper.java
deleted file mode 100755
index 2b4490e..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/form/FormLayoutHelper.java
+++ /dev/null
@@ -1,316 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout.form;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.xwt.tools.ui.designer.core.util.Draw2dTools;
-import org.eclipse.xwt.tools.ui.designer.core.util.swt.SWTTools;
-import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
-import org.eclipse.xwt.tools.ui.designer.parts.ShellEditPart;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class FormLayoutHelper {
-
-	private CompositeEditPart compositeEp;
-
-	public FormLayoutHelper(CompositeEditPart compositeEditPart) {
-		this.compositeEp = compositeEditPart;
-	}
-
-	public Rectangle getClientArea() {
-		if (compositeEp instanceof ShellEditPart) {
-			return ((ShellEditPart) compositeEp).getFigure().getBounds();
-		} else if (compositeEp != null && compositeEp.getVisualInfo() != null) {
-			return compositeEp.getVisualInfo().getClientArea();
-		}
-		return new Rectangle();
-	}
-
-	private Composite getParent() {
-		if (compositeEp != null) {
-			return (Composite) compositeEp.getWidget();
-		}
-		return null;
-	}
-
-	public FormLayoutData computeData(Rectangle bounds, Control control) {
-		if (bounds.isEmpty()) {
-			return null;
-		}
-		Composite parent = getParent();
-		if (parent == null) {
-			return null;
-		}
-		Rectangle clientArea = getClientArea();
-		if (!clientArea.intersects(bounds)) {
-			return null;
-		}
-		FormData formData = new FormData();
-		if (!clientArea.isEmpty()) {
-			computeVerticalAttachment(formData, clientArea, bounds, control);
-			computeHorizontalAttachment(formData, clientArea, bounds, control);
-		}
-		return new FormLayoutData(formData, bounds);
-	}
-
-	private void computeHorizontalAttachment(FormData formData,
-			Rectangle clientArea, Rectangle bounds, Control control) {
-		int marginLeft = bounds.x;
-		int marginRight = clientArea.width - bounds.right();
-		// 1. alignment
-		Composite parent = getParent();
-		for (Control child : parent.getChildren()) {
-			Rectangle r = getBounds(child);
-			if (r.equals(bounds) || child == control) {
-				continue;
-			}
-			if (r.y == bounds.y) {
-				formData.top = new FormAttachment(child, 0, SWT.TOP);
-				formData.bottom = null;
-			} else if (r.bottom() == bounds.bottom()) {
-				formData.bottom = new FormAttachment(child, 0, SWT.BOTTOM);
-				formData.top = null;
-			} else {
-				continue;
-			}
-			if (bounds.right() > r.right()) {
-				int offset = bounds.right() - r.right() - bounds.width;
-				if (offset < marginRight) {
-					formData.left = new FormAttachment(child, offset);
-				} else {
-					formData.right = new FormAttachment(100, -marginRight);
-				}
-			} else {
-				int offset = r.right() + bounds.width - bounds.right();
-				if (offset < marginLeft) {
-					formData.right = new FormAttachment(child, offset);
-				} else {
-					formData.left = new FormAttachment(0, marginLeft);
-				}
-			}
-			// return;
-		}
-		if (formData.left != null || formData.right != null) {
-			return;
-		}
-		Control nearest = getHorizontalNearest(clientArea, bounds, control);
-		if (nearest != null) {
-			Rectangle r = getBounds(nearest);
-			if (bounds.right() > r.right()) {
-				int distance = bounds.right() - r.right() - bounds.width;
-				if (distance < marginRight) {
-					formData.left = new FormAttachment(nearest, distance);
-				} else {
-					formData.right = new FormAttachment(100, -marginRight);
-				}
-			} else {
-				int distance = r.right() - bounds.right() - r.width;
-				if (distance < marginLeft) {
-					formData.right = new FormAttachment(nearest, distance);
-				} else {
-					formData.left = new FormAttachment(0, marginLeft);
-				}
-			}
-		} else {
-			if (marginLeft < marginRight) {
-				formData.left = new FormAttachment(0, marginLeft);
-			} else {
-				formData.right = new FormAttachment(100, -marginRight);
-			}
-		}
-	}
-
-	private void computeVerticalAttachment(FormData formData,
-			Rectangle clientArea, Rectangle bounds, Control control) {
-		int marginTop = bounds.y;
-		int marginBottom = clientArea.height - bounds.bottom();
-		// 1. alignment
-		// TODO: get the nearest alignment....
-		Composite parent = getParent();
-		for (Control child : parent.getChildren()) {
-			Rectangle r = getBounds(child);
-			if (r.equals(bounds) || child == control) {
-				continue;
-			}
-			if (r.x == bounds.x) {
-				formData.left = new FormAttachment(child, 0, SWT.LEFT);
-				formData.right = null;
-			} else if (r.right() == bounds.right()) {
-				formData.right = new FormAttachment(child, 0, SWT.RIGHT);
-				formData.left = null;
-			} else {
-				continue;
-			}
-			if (bounds.bottom() > r.bottom()) {
-				int topOffset = bounds.bottom() - r.bottom() - bounds.height;
-				if (topOffset < marginBottom) {
-					formData.top = new FormAttachment(child, topOffset);
-				} else {
-					formData.bottom = new FormAttachment(100, -marginBottom);
-				}
-			} else {
-				int bottomOffset = bounds.bottom() - r.bottom() + r.height;
-				if (bottomOffset < marginTop) {
-					formData.bottom = new FormAttachment(child, bottomOffset);
-				} else {
-					formData.top = new FormAttachment(0, marginTop);
-				}
-			}
-			return;
-		}
-		if (formData.top != null || formData.bottom != null) {
-			return;
-		}
-		// 2. vertical area.
-		Control nearest = getVerticalNearest(clientArea, bounds, control);
-		if (nearest != null) {
-			Rectangle r = getBounds(nearest);
-			if (bounds.bottom() > r.bottom()) {
-				int distance = bounds.bottom() - r.bottom() - bounds.height;
-				if (distance < marginBottom) {
-					formData.top = new FormAttachment(nearest, distance);
-				} else {
-					formData.bottom = new FormAttachment(100, -marginBottom);
-				}
-			} else {
-				int distance = r.bottom() - bounds.bottom() - r.height;
-				if (distance < marginTop) {
-					formData.bottom = new FormAttachment(nearest, distance);
-				} else {
-					formData.top = new FormAttachment(0, marginTop);
-				}
-			}
-		} else {
-			if (marginTop < marginBottom) {
-				formData.top = new FormAttachment(0, marginTop);
-			} else {
-				formData.bottom = new FormAttachment(100, -marginBottom);
-			}
-		}
-	}
-
-	public Control getVerticalNearest(Rectangle clientArea, Rectangle bounds,
-			Control control) {
-		Control nearest = null;
-		int distance = 0;
-		Composite parent = getParent();
-		for (Control child : parent.getChildren()) {
-			Rectangle r = getBounds(child);
-			if (bounds.y < r.bottom() || r.equals(bounds) || child == control) {
-				continue;
-			}
-			if (bounds.right() < r.x || bounds.x > r.right()) {
-				continue;
-			}
-			int dis = 0;
-			if (bounds.bottom() > r.bottom()) {
-				dis = bounds.bottom() - r.bottom() - bounds.height;
-			} else {
-				dis = r.bottom() - bounds.bottom() - r.height;
-			}
-			if (nearest == null) {
-				nearest = child;
-				distance = dis;
-			} else if (dis < distance) {
-				nearest = child;
-				distance = dis;
-			}
-		}
-		return nearest;
-	}
-
-	public Control getHorizontalNearest(Rectangle clientArea, Rectangle bounds,
-			Control control) {
-		Control nearest = null;
-		int distance = 0;
-		Composite parent = getParent();
-		for (Control child : parent.getChildren()) {
-			Rectangle r = getBounds(child);
-			if (bounds.x < r.right() || r.equals(bounds) || child == control) {
-				continue;
-			}
-			if (bounds.bottom() < r.y || bounds.y > r.bottom()) {
-				continue;
-			}
-			int dis = 0;
-			if (bounds.right() > r.right()) {
-				dis = bounds.right() - r.right() - bounds.width;
-			} else {
-				dis = r.right() - bounds.right() - r.width;
-			}
-			if (nearest == null) {
-				nearest = child;
-				distance = dis;
-			} else if (dis < distance) {
-				nearest = child;
-				distance = dis;
-			}
-		}
-		return nearest;
-	}
-
-	public Rectangle getBounds(Control control) {
-		Rectangle r = Draw2dTools.toDraw2d(SWTTools.getBounds(control));
-		org.eclipse.swt.graphics.Point offset = SWTTools.getOffset(getParent());
-		// return FigureUtil.translateToRelative(compositeEp, r);
-		return r.translate(-offset.x, -offset.y);
-	}
-
-	public static Control[] getDependencies(Control control) {
-		if (control == null || control.isDisposed()) {
-			return new Control[0];
-		}
-		List<Control> dependencies = new ArrayList<Control>();
-		Composite parent = control.getParent();
-		for (Control child : parent.getChildren()) {
-			if (child == control || child.getLayoutData() == null) {
-				continue;
-			}
-			Object layoutData = child.getLayoutData();
-			if (layoutData == null || !(layoutData instanceof FormData)) {
-				continue;
-			}
-			if (isDepend((FormData) layoutData, control)) {
-				dependencies.add(child);
-			}
-		}
-		return dependencies.toArray(new Control[dependencies.size()]);
-	}
-
-	private static boolean isDepend(FormData formData, Control control) {
-		if (formData == null || control == null) {
-			return false;
-		}
-		if (formData.left != null && control == formData.left.control) {
-			return true;
-		}
-		if (formData.top != null && control == formData.top.control) {
-			return true;
-		}
-		if (formData.right != null && control == formData.right.control) {
-			return true;
-		}
-		if (formData.bottom != null && control == formData.bottom.control) {
-			return true;
-		}
-		return false;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridController.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridController.java
deleted file mode 100755
index 2935917..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridController.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout.grid;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartViewer;
-import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class GridController {
-	public static final String GRID_KEY = "org.soyatec.xaml.ve.xwt.editpolicies.gridlayout.gridkey"; //$NON-NLS-1$
-
-	private boolean showGrid = false;
-	private int gridWidth = 15;
-	private int gridHeight = 15;
-	private int gridMargin = 0;
-
-	private List<IGridListener> listeners = new ArrayList<IGridListener>();
-	protected Map<EditPart, GridController> registeredEPs = new HashMap<EditPart, GridController>(2);
-
-	public void addGridListener(IGridListener listener) {
-		if (!listeners.contains(listener)) {
-			listeners.add(listener);
-		}
-	}
-
-	public void removeGridListener(IGridListener listener) {
-		listeners.remove(listener);
-	}
-
-	/**
-	 * @param showGrid
-	 *            the showGrid to set
-	 */
-	public void setGridShowing(boolean showGrid) {
-		this.showGrid = showGrid;
-		for (int i = 0; i < listeners.size(); i++) {
-			((IGridListener) listeners.get(i)).gridVisibilityChanged(showGrid);
-		}
-	}
-
-	/**
-	 * @return the showGrid
-	 */
-	public boolean isGridShowing() {
-		return showGrid;
-	}
-
-	/**
-	 * @param gridWidth
-	 *            the gridWidth to set
-	 */
-	public void setGridWidth(int gridWidth) {
-		int oldGridWidth = this.gridWidth;
-		this.gridWidth = gridWidth;
-		for (int i = 0; i < listeners.size(); i++)
-			((IGridListener) listeners.get(i)).gridWidthChanged(gridWidth, oldGridWidth);
-
-	}
-
-	/**
-	 * @return the gridWidth
-	 */
-	public int getGridWidth() {
-		return gridWidth;
-	}
-
-	/**
-	 * @param gridHeight
-	 *            the gridHeight to set
-	 */
-	public void setGridHeight(int gridHeight) {
-		int oldGridHeight = this.gridHeight;
-		this.gridHeight = gridHeight;
-		for (int i = 0; i < listeners.size(); i++)
-			((IGridListener) listeners.get(i)).gridHeightChanged(gridHeight, oldGridHeight);
-
-	}
-
-	/**
-	 * @return the gridHeight
-	 */
-	public int getGridHeight() {
-		return gridHeight;
-	}
-
-	/**
-	 * @param gridMargin
-	 *            the gridMargin to set
-	 */
-	public void setGridMargin(int gridMargin) {
-		int oldGridMargin = this.gridMargin;
-		this.gridMargin = gridMargin;
-		for (int i = 0; i < listeners.size(); i++)
-			((IGridListener) listeners.get(i)).gridMarginChanged(gridMargin, oldGridMargin);
-
-	}
-
-	/**
-	 * @return the gridMargin
-	 */
-	public int getGridMargin() {
-		return gridMargin;
-	}
-
-	/**
-	 * Static helper method to return the grid controller for a specific editpart.
-	 */
-	public static GridController getGridController(EditPart editPart) {
-		EditPartViewer viewer = editPart.getRoot().getViewer();
-		EditDomain dom = (EditDomain) viewer.getEditDomain();
-		// This is the master grid controller for this viewer
-		GridController gc = (GridController) dom.getViewerData(viewer, GRID_KEY);
-		if (gc != null) {
-			return (GridController) gc.registeredEPs.get(editPart);
-		}
-		return null;
-	}
-
-	/**
-	 * Register the Editpart as having a grid on it.
-	 */
-	public static void registerEditPart(EditPart ep, GridController newgc) {
-		EditPartViewer viewer = ep.getRoot().getViewer();
-		EditDomain dom = (EditDomain) viewer.getEditDomain();
-		// This is the master grid controller for this viewer
-		GridController gc = (GridController) dom.getViewerData(viewer, GRID_KEY);
-		if (gc != null)
-			gc.registeredEPs.put(ep, newgc);
-	}
-
-	/**
-	 * Unregister the EditPart.
-	 */
-	public static void unregisterEditPart(EditPart ep) {
-		EditPartViewer viewer = ep.getRoot().getViewer();
-		EditDomain dom = (EditDomain) viewer.getEditDomain();
-		// This is the master grid controller for this viewer
-		GridController gc = (GridController) dom.getViewerData(viewer, GRID_KEY);
-		if (gc != null && gc.registeredEPs.get(ep) != null)
-			gc.registeredEPs.remove(ep);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutAddedCellFeedbackFigure.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutAddedCellFeedbackFigure.java
deleted file mode 100755
index 2b53372..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutAddedCellFeedbackFigure.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout.grid;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.RectangleFigure;
-import org.eclipse.swt.SWT;
-
-/**
- * Feedback figure to show outer line of an added cell outside the grid.
- * 
- * @since 1.2.0
- */
-public class GridLayoutAddedCellFeedbackFigure extends RectangleFigure {
-
-	public GridLayoutAddedCellFeedbackFigure() {
-		super();
-		setLineStyle(SWT.LINE_DASH);
-		setLineWidth(2);
-		setForegroundColor(ColorConstants.yellow);
-		setFill(false);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutColumnFigure.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutColumnFigure.java
deleted file mode 100755
index 5b04760..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutColumnFigure.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout.grid;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.swt.SWTException;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class GridLayoutColumnFigure extends Figure {
-	private Rectangle columnBounds;
-
-	public GridLayoutColumnFigure(Rectangle columnBounds) {
-		super();
-		this.columnBounds = columnBounds;
-		setBounds(columnBounds.getCopy().expand(6, 8));
-	}
-
-	public void paintFigure(Graphics g) {
-		try {
-			g.setAlpha(150);
-		} catch (SWTException e) {
-			// For OS platforms that don't support alpha
-		}
-		int[] polygonPoints = new int[] { bounds.x + 1, bounds.y + 1, // left upper corner
-				columnBounds.x, columnBounds.y, columnBounds.x, columnBounds.y + columnBounds.height, bounds.x + 1, bounds.y + bounds.height - 1, bounds.x + bounds.width - 1, bounds.y + bounds.height - 1, columnBounds.x + columnBounds.width, columnBounds.y + columnBounds.height, columnBounds.x + columnBounds.width, columnBounds.y, bounds.x + bounds.width - 1, bounds.y + 1, bounds.x + 1, bounds.y + 1 };
-		g.setBackgroundColor(ColorConstants.red);
-		g.fillPolygon(polygonPoints);
-		g.setBackgroundColor(ColorConstants.black);
-		g.drawPolygon(polygonPoints);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutFeedbackFigure.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutFeedbackFigure.java
deleted file mode 100755
index 8947e37..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutFeedbackFigure.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout.grid;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.RectangleFigure;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.swt.SWT;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class GridLayoutFeedbackFigure extends RectangleFigure {
-
-	public GridLayoutFeedbackFigure() {
-		super();
-		setLineStyle(SWT.LINE_SOLID);
-		setLineWidth(2);
-	}
-
-	public void fillShape(Graphics g) {
-		Rectangle r = getBounds().getCopy();
-		r.expand(-4, -4);
-		g.setBackgroundColor(ColorConstants.green);
-		try {
-			g.setAlpha(175);
-		} catch (Exception e) {
-			// For OS platforms that don't support setAlpha
-			g.setXORMode(true);
-			g.setBackgroundColor(ColorConstants.green);
-		}
-		g.fillRectangle(r.x, r.y, r.width, r.height);
-	}
-
-	public void outlineShape(Graphics g) {
-		Rectangle r = getBounds().getCopy();
-		r.expand(-4, -4);
-		g.drawRectangle(r.x, r.y, r.width, r.height);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutGridFigure.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutGridFigure.java
deleted file mode 100755
index 65cc643..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutGridFigure.java
+++ /dev/null
@@ -1,680 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout.grid;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.GridLayoutEditPolicy;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridLayoutPolicyHelper.GridComponent;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class GridLayoutGridFigure extends Figure {
-	// number of pixels either side of a row/column that will trigger showing the row/column insertion figure.
-	public static final int ROW_COLUMN_SENSITIVITY = 5;
-	private GridLayoutPolicyHelper helper;
-	private int marginWidth, marginHeight, verticalSpacing, horizontalSpacing;
-	// Note: all of these that have "model" in the name positions are relative in the model coordinate system (which may be Right-to-Left and so backwards
-	// from the GEF grid figure).
-	int[] columnModelPositions, rowModelPositions;
-	Point[] rowStartModelPositions, rowEndModelPositions;
-	Point[] columnStartModelPositions, columnEndModelPositions;
-	int[][] columnModelSegments, rowModelSegments;
-
-	/**
-	 * @param copy
-	 */
-	public GridLayoutGridFigure(GridLayoutPolicyHelper helper) {
-		this.helper = helper;
-		setBounds(helper.getClientArea());
-		if (helper != null) {
-			Rectangle spacing = helper.getLayoutSpacing();
-			marginWidth = spacing.x;
-			marginHeight = spacing.y;
-			verticalSpacing = spacing.height;
-			horizontalSpacing = spacing.width;
-		} else {
-			GridLayout example = new GridLayout();
-			marginWidth = example.marginWidth;
-			marginHeight = example.marginHeight;
-			horizontalSpacing = example.horizontalSpacing;
-			verticalSpacing = example.verticalSpacing;
-		}
-		if (helper != null) {
-			int[][] layoutDimensions = helper.getLayoutDimensions();
-			GridComponent[][] cellContents = helper.getLayoutTable();
-			if (layoutDimensions != null) {
-				int[] columnWidths = layoutDimensions[0];
-				int[] rowHeights = layoutDimensions[1];
-				columnModelSegments = calculateColumnDividers(columnWidths, rowHeights, cellContents);
-				rowModelSegments = calculateRowDividers(columnWidths, rowHeights, cellContents);
-			}
-		}
-	}
-
-	protected int[][] calculateColumnDividers(int[] columnWidths, int[] rowHeights, GridComponent[][] cellContents) {
-		if (rowHeights == null || columnWidths == null /* || helper.getClientArea() == null */)
-			return null;
-
-		int spacingLeft = (int) Math.ceil((double) horizontalSpacing / 2);
-		int spacingRight = (int) Math.floor((double) horizontalSpacing / 2);
-		int spacingTop = (int) Math.ceil((double) verticalSpacing / 2);
-		int spacingBottom = (int) Math.floor((double) verticalSpacing / 2);
-
-		int containerHeight = 0;
-		columnModelPositions = new int[columnWidths.length + 1];
-		columnStartModelPositions = new Point[columnModelPositions.length];
-		columnEndModelPositions = new Point[columnModelPositions.length];
-		int[][] columnSegments = new int[columnModelPositions.length][];
-
-		for (int i = 0; i < rowHeights.length; i++) {
-			containerHeight += rowHeights[i];
-		}
-		// add height for the spacing
-		containerHeight += marginHeight * 2;
-		containerHeight += verticalSpacing * (rowHeights.length - 1);
-
-		Rectangle clientArea = /* helper.getClientArea() */getBounds().getCopy();
-		int xPos = clientArea.x;
-		int yMin = clientArea.y;
-		int yMax = clientArea.y + containerHeight;
-		int xMax = xPos + clientArea.width - 1; // This is the far right side, less one so that it draws within the box (otherwise it would be outside the box).
-
-		// draw the first divider
-		columnModelPositions[0] = xPos;
-		columnStartModelPositions[0] = new Point(xPos, yMin);
-		columnEndModelPositions[0] = new Point(xPos, yMax);
-		columnSegments[0] = new int[] { yMin, yMax }; // The left border will always be one segemnt.
-
-		// move up by the initial margin width
-		xPos += marginWidth;
-
-		int[] colSegs = new int[2 + rowHeights.length * 2]; // Each entry is a y position. They are in 2-tuples (start,stop) for a segment. For a col, it is max of one segment(or 2 points) + 2 for start of next.
-		// draw the dividers in between and at the end
-		for (int i = 1; i < columnModelPositions.length; i++) {
-			xPos += columnWidths[i - 1];
-
-			// Place the position in the middle of the the horizontal spacing gap
-			if (i < columnWidths.length) {
-				xPos += spacingLeft;
-			} else {
-				// or after the end margin, if this is the last line
-				xPos += marginWidth;
-			}
-
-			xPos = Math.min(xPos, xMax);
-			Point startPoint = new Point(xPos, yMin);
-			columnModelPositions[i] = xPos;
-			columnStartModelPositions[i] = startPoint;
-			columnEndModelPositions[i] = new Point(xPos, yMax);
-
-			// Now calculate the column segments.
-			if (i < columnWidths.length && i < cellContents.length) {
-				GridComponent[] leftColumn = cellContents[i - 1];
-				GridComponent[] rightColumn = cellContents[i];
-				int yPos = yMin;
-				int lastRow = leftColumn.length - 1;
-				int colSegsNdx = 0; // This will always point to the start index of the next segment.
-				colSegs[colSegsNdx] = yMin; // Will always start at yMin.
-				boolean prevSpan = true; // Previous was a span. (We treat first one as previous span so as not to close off an empty segment)
-				// Walk each row, and compare left and right column to see if spanned.
-				for (int j = 0; j < leftColumn.length; j++) {
-					int trueRowHeight = 0;
-					if (j < rowHeights.length)// if there is not this condition,it may cause an exception;
-						trueRowHeight = rowHeights[j];
-					if (j == 0)
-						trueRowHeight += marginHeight;
-					else
-						trueRowHeight += spacingTop;
-					if (j != lastRow)
-						trueRowHeight += spacingBottom;
-					else
-						trueRowHeight += marginHeight;
-					GridComponent leftObject, rightObject;
-					if ((leftObject = leftColumn[j]) != helper.EMPTY_GRID && (rightObject = rightColumn[j]) != helper.EMPTY_GRID && leftObject == rightObject) {
-						// We are spanning, so skip it and move start of segment to next cell.
-						if (!prevSpan) {
-							// Need to close off previous one (if not first)
-							colSegs[++colSegsNdx] = yPos;
-							colSegsNdx++; // Move to start of next.
-						}
-						yPos += trueRowHeight;
-						colSegs[colSegsNdx] = yPos + 1; // Start of next seg.
-						prevSpan = true;
-					} else {
-						// We are not spanning, continue line through it.
-						prevSpan = false;
-						yPos += trueRowHeight;
-					}
-				}
-				if (colSegs[colSegsNdx] < yPos) {
-					// We have to something to draw for last segment.
-					colSegs[++colSegsNdx] = yMax;
-				} else
-					colSegsNdx--; // We had a segment start that is the same as the last stop, so get rid of it.
-				columnSegments[i] = new int[++colSegsNdx];
-				System.arraycopy(colSegs, 0, columnSegments[i], 0, colSegsNdx);
-			} else {
-				columnSegments[i] = new int[] { yMin, yMax }; // The right border will always be one segemnt.
-			}
-			// add the remainder of the spacing
-			xPos += spacingRight;
-		}
-
-		return columnSegments;
-	}
-
-	protected int[][] calculateRowDividers(int[] columnWidths, int[] rowHeights, GridComponent[][] cellContents) {
-		if (columnWidths == null || rowHeights == null /* || helper.getClientArea() == null */)
-			return null;
-
-		int spacingLeft = (int) Math.ceil((double) horizontalSpacing / 2);
-		int spacingRight = (int) Math.floor((double) horizontalSpacing / 2);
-		int spacingTop = (int) Math.ceil((double) verticalSpacing / 2);
-		int spacingBottom = (int) Math.floor((double) verticalSpacing / 2);
-
-		int containerWidth = 0;
-		rowModelPositions = new int[rowHeights.length + 1];
-		rowStartModelPositions = new Point[rowModelPositions.length];
-		rowEndModelPositions = new Point[rowModelPositions.length];
-		int[][] rowSegments = new int[rowModelPositions.length][];
-
-		for (int i = 0; i < columnWidths.length; i++) {
-			containerWidth += columnWidths[i];
-		}
-		// add width for the spacing
-		containerWidth += marginWidth * 2;
-		containerWidth += horizontalSpacing * (columnWidths.length - 1);
-
-		Rectangle clientArea = /* helper.getClientArea() */getBounds().getCopy();
-		int yPos = clientArea.y;
-		int xMin = clientArea.x;
-		int xMax = clientArea.x + containerWidth;
-		int yMax = yPos + clientArea.height - 1; // This is the bottom side, less one so that it draws within the box (otherwise it would be outside the box).
-
-		// draw the first divider
-		rowModelPositions[0] = yPos;
-		rowStartModelPositions[0] = new Point(xMin, yPos);
-		rowEndModelPositions[0] = new Point(xMax, yPos);
-		rowSegments[0] = new int[] { xMin, xMax }; // The top border will always be one segemnt.
-
-		// move up the initial margin height
-		yPos += marginHeight;
-
-		int[] rowSegs = new int[2 + columnWidths.length * 2]; // Each entry is an x position. They are in 2-tuples (start,stop) for a segment. For a row, it is max of one segment(or 2 points) + 2 for start of next.
-		// draw the dividers in between and at the end
-		for (int i = 1; i < rowModelPositions.length; i++) {
-			yPos += rowHeights[i - 1];
-
-			// Place the position in the middle of the the vertical spacing gap
-			if (i < rowHeights.length) {
-				yPos += spacingTop;
-			} else {
-				// or after the end margin, if this is the last line
-				yPos += marginHeight;
-			}
-
-			yPos = Math.min(yPos, yMax);
-			Point startPoint = new Point(xMin, yPos);
-			Point endPoint = new Point(xMax, yPos);
-			rowModelPositions[i] = yPos;
-			rowStartModelPositions[i] = startPoint;
-			rowEndModelPositions[i] = endPoint;
-
-			// Now calculate the row segments.
-			if (i < rowHeights.length) {
-				int upperRow = i - 1;
-				int lowerRow = i;
-				int xPos = xMin;
-				int length = Math.min(cellContents.length, columnWidths.length);
-				int lastCol = length - 1;
-				int rowSegsNdx = 0; // This will always point to the start index of the next segment.
-				rowSegs[rowSegsNdx] = xMin; // Will always start at xMin.
-				boolean prevSpan = true; // Previous was a span. (We treat first one as previous span so as not to close off an empty segment)
-				// Walk each column comparing upper row and lower to see if spanned.
-				for (int j = 0; j < length; j++) {
-					int trueColWidth = columnWidths[j];
-					if (j == 0)
-						trueColWidth += marginWidth;
-					else
-						trueColWidth += spacingLeft;
-					if (j != lastCol)
-						trueColWidth += spacingRight;
-					else
-						trueColWidth += marginWidth;
-					GridComponent upperObject, lowerObject;
-					if ((upperObject = cellContents[j][upperRow]) != helper.EMPTY_GRID && (lowerObject = cellContents[j][lowerRow]) != helper.EMPTY_GRID && upperObject == lowerObject) {
-						// We are spanning, so skip it and move start of segment to next cell.
-						if (!prevSpan) {
-							// Need to close off previous one (if not first)
-							rowSegs[++rowSegsNdx] = xPos;
-							rowSegsNdx++; // Move to start of next.
-						}
-						xPos += trueColWidth;
-						rowSegs[rowSegsNdx] = xPos + 1; // Start of next seg.
-						prevSpan = true;
-					} else {
-						// We are not spanning, continue line through it.
-						xPos += trueColWidth;
-						prevSpan = false;
-					}
-				}
-				if (rowSegs[rowSegsNdx] < xPos) {
-					// We have to something to draw for last segment.
-					rowSegs[++rowSegsNdx] = xMax;
-				} else
-					rowSegsNdx--; // We had a segment start that is the same as the last stop, so get rid of it.
-				rowSegments[i] = new int[++rowSegsNdx];
-				System.arraycopy(rowSegs, 0, rowSegments[i], 0, rowSegsNdx);
-			} else {
-				rowSegments[i] = new int[] { xMin, xMax }; // The bottom border will always be one segemnt.
-			}
-
-			// add the remainder of the spacing
-			yPos += spacingBottom;
-		}
-
-		return rowSegments;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.draw2d.Figure#paintFigure(org.eclipse.draw2d.Graphics)
-	 */
-	protected void paintFigure(Graphics g) {
-		g.setForegroundColor(ColorConstants.gray);
-		g.setLineStyle(Graphics.LINE_DOT);
-		drawRowDividers(g);
-		drawColumnDividers(g);
-	}
-
-	protected void drawColumnDividers(Graphics g) {
-		if (columnModelSegments == null || columnStartModelPositions == null)
-			return;
-		Point fromPoint = new Point();
-		Point toPoint = new Point();
-		for (int i = 0; i < columnModelSegments.length; i++) {
-			int[] colSegs = columnModelSegments[i];
-			int xPos = columnStartModelPositions[i].x;
-			int j = -1;
-			while (++j < colSegs.length) {
-				// Map from model to figure coordinates. First map to relative to figure, and then maps to absolute (through the figure bounds upper-left).
-				// mapModelToFigure(fromPoint.setLocation(xPos, colSegs[j]));
-				// mapModelToFigure(toPoint.setLocation(xPos, colSegs[++j]));
-				fromPoint.setLocation(xPos, colSegs[j]);
-				toPoint.setLocation(xPos, colSegs[++j]);
-				g.drawLine(fromPoint, toPoint);
-			}
-		}
-	}
-
-	/**
-	 * Draw the row dividers based on the GridBagLayout's origin and the row widths.
-	 */
-	protected void drawRowDividers(Graphics g) {
-		if (rowModelSegments == null || rowStartModelPositions == null)
-			return;
-		Point fromPoint = new Point();
-		Point toPoint = new Point();
-		for (int i = 0; i < rowModelSegments.length; i++) {
-			int[] rowSegs = rowModelSegments[i];
-			int yPos = rowStartModelPositions[i].y;
-			int j = -1;
-			while (++j < rowSegs.length) {
-				// Map from model to figure coordinates. First map to relative to figure, and then maps to absolute (through the figure bounds upper-left).
-				// mapModelToFigure(fromPoint.setLocation(rowSegs[j], yPos));
-				// mapModelToFigure(toPoint.setLocation(rowSegs[++j], yPos));
-				fromPoint.setLocation(rowSegs[j], yPos);
-				toPoint.setLocation(rowSegs[++j], yPos);
-				g.drawLine(fromPoint, toPoint);
-			}
-		}
-	}
-
-	/**
-	 * Get the cell location (i.e. the grid x/y) that the point (in model coordinates) is within.
-	 * 
-	 * @param p
-	 *            point to look for what cell it is in. It is in model coordinates.
-	 * @return the cell grid x/y as a point. '-1' for a grid means the incoming dimension was to the left/above the left-most/top-most col/row.
-	 * 
-	 * @since 1.2.0
-	 */
-	public Point getCellLocation(Point p) {
-		return getCellLocation(p.x, p.y);
-	}
-
-	/**
-	 * Get the cell bounds for the cell that the position is within.
-	 * 
-	 * @param pos
-	 *            position in col,row.
-	 * @return cell bounds in model coor of the cell that the pos is in. If outside model, it will have a default size. This point may be modified.
-	 * 
-	 * @since 1.2.0
-	 */
-	public Rectangle getCellBounds(Point pos) {
-		if (rowModelPositions == null || columnModelPositions == null)
-			return new Rectangle(0, 0, GridLayoutEditPolicy.DEFAULT_CELL_WIDTH, GridLayoutEditPolicy.DEFAULT_CELL_HEIGHT);
-
-		int cellxpos, cellypos, cellwidth, cellheight;
-		if (pos.x < 0)
-			cellxpos = columnModelPositions[0] - GridLayoutEditPolicy.DEFAULT_CELL_WIDTH;
-		else
-			cellxpos = columnModelPositions[pos.x];
-		if (pos.x < columnModelPositions.length - 1)
-			cellwidth = columnModelPositions[pos.x + 1] - cellxpos;
-		else
-			cellwidth = GridLayoutEditPolicy.DEFAULT_CELL_WIDTH;
-
-		if (pos.y < 0)
-			cellypos = rowModelPositions[0] - GridLayoutEditPolicy.DEFAULT_CELL_HEIGHT;
-		else
-			cellypos = rowModelPositions[pos.y];
-		if (pos.y < rowModelPositions.length - 1)
-			cellheight = rowModelPositions[pos.y + 1] - cellypos;
-		else
-			cellheight = GridLayoutEditPolicy.DEFAULT_CELL_HEIGHT;
-
-		return new Rectangle(cellxpos, cellypos, cellwidth, cellheight);
-	}
-
-	/**
-	 * Get the rectangle for the column left hand side (in model terms) for the column sent in.
-	 * 
-	 * @param col
-	 *            the column to get the rect for.
-	 * @return rect (0 width) for the left hand side of the column. This rect can be modified by caller. It will be in model coors.
-	 * 
-	 * @since 1.2.0
-	 */
-	public Rectangle getColumnRectangle(int col) {
-		if (columnStartModelPositions != null) {
-			return new Rectangle(columnStartModelPositions[col], columnEndModelPositions[col]).resize(-1, -1); // 1.
-		}
-		return new Rectangle();
-	}
-
-	/**
-	 * Get the rectangle for the row top hand side for the row sent in.
-	 * 
-	 * @param row
-	 *            the row to get the row rect for.
-	 * @return rect (0 width) for the top side of the row. It will be in model coors. It can be modified.
-	 * 
-	 * @since 1.2.0
-	 */
-	public Rectangle getRowRectangle(int row) {
-		if (rowStartModelPositions != null) {
-			return new Rectangle(rowStartModelPositions[row], rowEndModelPositions[row]).resize(-1, -1);
-		}
-		return new Rectangle();
-	}
-
-	/**
-	 * Get the cell location (i.e. the grid x/y) that the point (in model coordinates) is within.
-	 * 
-	 * @param x
-	 *            x to look for what cell it is in. It is in model coordinates.
-	 * @param y
-	 *            y to look for what cell it is in. It is in model coordinates.
-	 * @return the cell grid x/y as a point. '-1' for a grid means the incoming dimension was to the left/above the left-most/top-most col/row.
-	 * 
-	 * 
-	 * @since 1.2.0
-	 */
-	public Point getCellLocation(int x, int y) {
-		return getCellLocation(x, y, false, false);
-	}
-
-	/**
-	 * Get the cell location (i.e. the grid x/y) that the point (in model coordinates) is within.
-	 * 
-	 * @param x
-	 *            x to look for what cell it is in. It is in model coordinates.
-	 * @param y
-	 *            y to look for what cell it is in. It is in model coordinates.
-	 * @param includeEmptyColumns
-	 * @param includeEmptyRows
-	 * @return the cell grid x/y as a point. '-1' for a grid means the incoming dimension was to the left/above the left-most/top-most col/row.
-	 * 
-	 * @since 1.2.0
-	 */
-	public Point getCellLocation(int x, int y, boolean includeEmptyColumns, boolean includeEmptyRows) {
-		if (rowModelPositions == null || columnModelPositions == null)
-			return new Point(0, 0);
-
-		int gridx = -1, gridy = -1;
-		boolean foundx = false, foundy = false;
-		for (int i = 0; i < columnModelPositions.length - 1; i++) {
-			int xpos = columnModelPositions[i];
-			if (x >= xpos && x < columnModelPositions[i + 1]) {
-				gridx = i;
-				if (includeEmptyColumns) {
-					/*
-					 * Since column positions can be equal if there are columns that don't contain components, iterate back throught the columns positions to get the first one with this position.
-					 */
-					int j;
-					for (j = i; j >= 0 && columnModelPositions[i] == columnModelPositions[j]; j--)
-						// ;
-						gridx = j + 1;
-				}
-				foundx = true;
-				break;
-			}
-		}
-		for (int i = 0; i < rowModelPositions.length - 1; i++) {
-			int ypos = rowModelPositions[i];
-			if (y >= ypos && y < rowModelPositions[i + 1]) {
-				gridy = i;
-				if (includeEmptyRows) {
-					/*
-					 * Since row positions can be equal if there are rows that don't contain components, iterate back throught the rows to get the first one with this position.
-					 */
-					int j;
-					for (j = i; j >= 0 && rowModelPositions[i] == rowModelPositions[j]; j--)
-						gridy = j + 1;
-				}
-				foundy = true;
-				break;
-			}
-		}
-
-		if (!foundx && x >= columnModelPositions[columnModelPositions.length - 1])
-			gridx = columnModelPositions.length - 1;
-		if (!foundy && y >= rowModelPositions[rowModelPositions.length - 1])
-			gridy = rowModelPositions.length - 1;
-
-		return new Point(gridx, gridy);
-	}
-
-	/**
-	 * Get the grid figure rect for the specified cell dimensions. The cells dimensions are packed into a Rectangle according to the following rules:
-	 * 
-	 * rect.x = column position rect.y = row position rect.width = horizontal span rect.height = vertical span
-	 * 
-	 * @param cellsBounds
-	 *            The cell area to calculate
-	 * @return the rect in model coor. for the grid representing these cells.
-	 * 
-	 * @since 1.0.0
-	 */
-	public Rectangle getGridBroundsForCellBounds(Rectangle cellsBounds) {
-		Rectangle r = new Rectangle();
-		if (rowModelPositions != null && columnModelPositions != null && cellsBounds.y <= rowModelPositions.length - 1 && cellsBounds.x <= columnModelPositions.length - 1) {
-			r.x = columnModelPositions[cellsBounds.x];
-			r.y = rowModelPositions[cellsBounds.y];
-
-			if (cellsBounds.x + cellsBounds.width > columnModelPositions.length - 1) {
-				r.width = columnModelPositions[columnModelPositions.length - 1];
-			} else {
-				r.width = columnModelPositions[cellsBounds.x + cellsBounds.width];
-			}
-			r.width -= r.x;
-
-			if (cellsBounds.y + cellsBounds.height > rowModelPositions.length - 1) {
-				r.height = rowModelPositions[rowModelPositions.length - 1];
-			} else {
-				r.height = rowModelPositions[cellsBounds.y + cellsBounds.height];
-			}
-			r.height -= r.y;
-		}
-		return r;
-
-	}
-
-	/**
-	 * Get the grid layout request type from the given position in model coor.
-	 * 
-	 * @param pos
-	 *            position in model coor.
-	 * @param helper
-	 *            helper to use.
-	 * @return gridlayout request for the given position.
-	 * 
-	 * @since 1.2.0
-	 */
-	public GridLayoutRequest getGridLayoutRequest(Point pos, GridLayoutPolicyHelper helper) {
-		Point cell = getCellLocation(pos);// get the control position(column,row)
-		GridLayoutRequest req = new GridLayoutRequest();
-		req.column = cell.x;
-		req.row = cell.y;
-
-		if (req.column == -1 || req.row == -1)
-			req.type = GridLayoutRequest.NO_ADD; // We are above or to the left, we can't add.
-		else if (columnModelPositions == null || req.column >= columnModelPositions.length - 1)
-			if (rowModelPositions == null || req.row >= rowModelPositions.length - 1)
-				req.type = GridLayoutRequest.ADD_ROW_COL;
-			else
-				req.type = GridLayoutRequest.ADD_COLUMN;
-		else if (req.row >= rowEndModelPositions.length - 1)
-			req.type = GridLayoutRequest.ADD_ROW;
-		else {
-			int colSensitive;
-			int nextCol = req.column + 1;
-			int colWidth = columnModelPositions[nextCol] - columnModelPositions[req.column];
-			if (colWidth <= 2 * ROW_COLUMN_SENSITIVITY) {
-				// We are inside a cell that is too small (the row/col sensitivities would override and we couldn't drop in it)
-				// Reduce col sensitivity to a minimum. These reductions will mean that the col sensitivities from
-				// the right side and from the left side will not overlap. If they overlapped it would be difficult
-				// to figure which side should get the insert.
-				if (colWidth <= 5)
-					colSensitive = 0; // No sensitivity. Must be right on.
-				else
-					colSensitive = 1; // Decrease to 1.
-			} else
-				colSensitive = ROW_COLUMN_SENSITIVITY;
-			if (pos.x - columnModelPositions[req.column] <= colSensitive) {
-				if (helper.isEmptyAtCell(cell) || helper.isFillerLabelAtCell(cell))
-					req.type = GridLayoutRequest.INSERT_COLUMN;
-				else {
-					// We are over a control. If we are over a spanned section of the control, then it must be
-					// changed to insert column in row back at the left side of the control.
-					Rectangle childDim = helper.getChildDimensions(cell);
-					// If empty (childDim == null) then insert col.
-					if (childDim != null && childDim.x < cell.x) {
-						req.type = GridLayoutRequest.INSERT_COLUMN_WITHIN_ROW;
-						req.column = childDim.x; // Move back to start of child.
-					} else
-						req.type = GridLayoutRequest.INSERT_COLUMN; // It's ok, we are at the left side of the child.
-				}
-			} else if (columnModelPositions[nextCol] - pos.x <= colSensitive) {
-				cell.x = req.column = nextCol; // Nearer to next column.
-				if (req.column < columnModelPositions.length - 1) {
-					if (helper.isEmptyAtCell(cell) || helper.isFillerLabelAtCell(cell))
-						req.type = GridLayoutRequest.INSERT_COLUMN;
-					else {
-						// We are over a control. If we are over a spanned section of the control, then it must be
-						// changed to insert column in row back at the left side of the control.
-						Rectangle childDim = helper.getChildDimensions(cell);
-						// If empty (childDim == null) then insert column.
-						if (childDim != null && childDim.x < cell.x) {
-							req.type = GridLayoutRequest.INSERT_COLUMN_WITHIN_ROW;
-							req.column = childDim.x; // Move back to start of child.
-						} else
-							req.type = GridLayoutRequest.INSERT_COLUMN; // It's ok, we are at the left side of the child.
-					}
-				} else
-					req.type = GridLayoutRequest.ADD_COLUMN;
-			} else {
-				int rowSensitive;
-				int nextRow = req.row + 1;
-				int rowHeight = rowModelPositions[nextRow] - rowModelPositions[req.row];
-				if (rowHeight <= 2 * ROW_COLUMN_SENSITIVITY) {
-					// We are inside a cell that is too small (the row/col sensitivities would override and we couldn't drop in it)
-					// Reduce row sensitivity to a minimum. These reductions will mean that the row sensitivities from
-					// the top side and from the bottom side will not overlap. If they overlapped it would be difficult
-					// to figure which side should get the insert.
-					if (rowHeight <= 5)
-						rowSensitive = 0; // No sensitivity. Must be right on.
-					else
-						rowSensitive = 2; // Decrease to 2.
-				} else
-					rowSensitive = ROW_COLUMN_SENSITIVITY;
-				;
-				if (pos.y - rowModelPositions[req.row] <= rowSensitive) {
-					if (helper.isEmptyAtCell(cell) || helper.isFillerLabelAtCell(cell))
-						req.type = GridLayoutRequest.INSERT_ROW;
-					else {
-						// We are over a control. If we are over a spanned section of the control, then it must be
-						// changed to no add. Can't insert row over a vertically spanned control.
-						Rectangle childDim = helper.getChildDimensions(cell);
-						// If empty (childDim == null) then insert row.
-						if (childDim != null && childDim.y < cell.y) {
-							req.type = GridLayoutRequest.INSERT_COLUMN_WITHIN_ROW;
-							req.column = childDim.x; // Move back to start of child.
-						} else
-							req.type = GridLayoutRequest.INSERT_ROW; // It's ok, we are at the top side of the child.
-					}
-				} else if (rowModelPositions[nextRow] - pos.y <= rowSensitive) {
-					cell.y = req.row = nextRow; // Nearer to next row.
-					req.type = req.row < rowModelPositions.length - 1 ? GridLayoutRequest.INSERT_ROW : GridLayoutRequest.ADD_ROW; // Add if next
-					// row is
-					// actually
-					// outside.
-					if (req.row < rowModelPositions.length - 1) {
-						// We are over a control. If we are over a spanned section of the control, then it must be
-						// changed to no add. Can't insert row over a vertically spanned control.
-						Rectangle childDim = helper.getChildDimensions(cell);
-						// If empty (childDim == null) then insert row.
-						if (childDim != null && childDim.y < cell.y) {
-							req.type = GridLayoutRequest.INSERT_COLUMN_WITHIN_ROW;
-							req.column = childDim.x; // Move back to start of child.
-						} else
-							req.type = GridLayoutRequest.INSERT_ROW; // It's ok, we are at the top side of the child.
-					} else
-						req.type = GridLayoutRequest.ADD_ROW;
-
-				} else {
-					// In the cell, see if replace filler, insert column in row, or replace empty.
-					if (helper.isEmptyAtCell(cell))
-						req.type = GridLayoutRequest.ADD_TO_EMPTY_CELL;
-					else if (helper.isFillerLabelAtCell(cell))
-						req.type = GridLayoutRequest.REPLACE_FILLER;
-					else {
-						Rectangle childDim = helper.getChildDimensions(cell);
-						req.type = GridLayoutRequest.INSERT_COLUMN_WITHIN_ROW;
-						if (childDim != null && childDim.x < cell.x)
-							req.column = childDim.x; // Move back to start of child.
-					}
-				}
-			}
-		}
-
-		return req;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutPolicyHelper.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutPolicyHelper.java
deleted file mode 100755
index c26f816..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutPolicyHelper.java
+++ /dev/null
@@ -1,1466 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout.grid;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.PositionConstants;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.xwt.IConstants;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gef.RequestConstants;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CompoundCommand;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.xwt.tools.ui.designer.commands.ApplyAttributeSettingCommand;
-import org.eclipse.xwt.tools.ui.designer.commands.GridLayoutCommandsFactory;
-import org.eclipse.xwt.tools.ui.designer.core.util.swt.GridLayoutHelper;
-import org.eclipse.xwt.tools.ui.designer.core.util.swt.GridLayoutHelper_30;
-import org.eclipse.xwt.tools.ui.designer.core.visuals.VisualInfo;
-import org.eclipse.xwt.tools.ui.designer.loader.ResourceVisitor;
-import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
-import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
-import org.eclipse.xwt.tools.ui.designer.parts.ShellEditPart;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-import org.eclipse.xwt.tools.ui.xaml.tools.AnnotationTools;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class GridLayoutPolicyHelper {
-
-	public static final String FILLER_DATA = "Filter_DATA";
-	private static final String NO_MODS = "NOMODS"; //$NON-NLS-1$
-	private static final int NOT_MODIFIED_SPAN = -1;
-	private static final int SET_TO_DEFAULT_SPAN = -2;
-
-	public final GridComponent EMPTY_GRID = new GridComponent(null);
-	private XamlElement gridLayout;
-	private CompositeEditPart host;
-	protected GridComponent[][] glayoutTable;
-	protected int numColumns = -1;
-	protected int originalNumColumns;
-	protected int defaultHorizontalSpan, defaultVerticalSpan;
-	protected GridComponent first, last;
-	private List<XamlNode> deletedComponents = new ArrayList<XamlNode>();
-	private List<XamlNode> orphanedComponents;
-	private GridLayoutCommandsFactory factory;
-
-	public GridLayoutPolicyHelper() {
-		initializeDefaults();
-	}
-
-	public void setHost(CompositeEditPart host) {
-		this.host = host;
-		this.gridLayout = ((CompositeEditPart) host).getLayoutModel();
-		factory = new GridLayoutCommandsFactory(host);
-	}
-
-	protected void initializeDefaults() {
-		GridData gd = new GridData();
-		defaultHorizontalSpan = gd.horizontalSpan;
-		defaultVerticalSpan = gd.verticalSpan;
-	}
-
-	public Rectangle getLayoutSpacing() {
-		Rectangle result = new Rectangle();
-		GridLayout layout = (GridLayout) XWTProxy.createValue(gridLayout);
-		if (layout == null) {
-			layout = new GridLayout();
-		}
-		result.x = layout.marginWidth;
-		result.y = layout.marginHeight;
-		result.width = layout.horizontalSpacing;
-		result.height = layout.verticalSpacing;
-		return result;
-	}
-
-	/**
-	 * @return
-	 */
-	public int[][] getLayoutDimensions() {
-		Composite composite = getComposite();
-		if (composite == null) {
-			return null;
-		}
-		int[][] result = new int[2][];
-		int[] widths = null;
-		int[] heights = null;
-		int version = SWT.getVersion();
-		if (version > 3100) {
-			GridLayoutHelper helper = new GridLayoutHelper();
-			helper.setComposite(composite);
-			widths = helper.widths;
-			heights = helper.heights;
-		} else {
-			GridLayoutHelper_30 helper = new GridLayoutHelper_30();
-			helper.setComposite(composite);
-			widths = helper.widths;
-			heights = helper.heights;
-		}
-
-		if (widths == null) {
-			result[0] = new int[0];
-		} else {
-			result[0] = widths;
-		}
-		if (heights == null) {
-			result[1] = new int[0];
-		} else {
-			result[1] = heights;
-		}
-		return result;
-	}
-
-	/**
-	 * @return
-	 */
-	private Composite getComposite() {
-		if (host == null) {
-			return null;
-		}
-		VisualInfo visualComp = (VisualInfo) host.getVisualInfo();
-		if (visualComp == null || visualComp.getVisualObject() == null) {
-			return null;
-		}
-		return (Composite) visualComp.getVisualObject();
-	}
-
-	/**
-	 * @return
-	 */
-	public GridComponent[][] getLayoutTable() {
-		if (glayoutTable == null) {
-			int[][] dimensions = getLayoutDimensions();
-			if (dimensions == null) {
-				return null;
-			}
-			Composite composite = getComposite();
-			if (composite == null) {
-				return null;
-			}
-			GridLayout layout = getGridLayout();
-			if (layout == null) {
-				return null;
-			}
-			glayoutTable = new GridComponent[dimensions[0].length][dimensions[1].length];
-			// Original num columns is the actual setting in the layout.
-			originalNumColumns = layout.numColumns;
-			numColumns = dimensions[0].length;
-
-			// If empty container, don't continue.
-			if (glayoutTable.length < 1 || glayoutTable[0].length < 1) {
-				return glayoutTable;
-			}
-
-			int row = 0;
-			int col = 0;
-			int horizontalSpan;
-			int verticalSpan;
-
-			int childNum = 0;
-
-			Control[] children = composite.getChildren();
-			for (Control child : children) {
-				XamlNode model = (XamlNode) child.getData(ResourceVisitor.ELEMENT_KEY);
-				GridComponent gcomp = new GridComponent(model);
-				gcomp.filler = AnnotationTools.isAnnotated(model, FILLER_DATA);
-				addGridComponent(gcomp);
-				Object layoutData = child.getLayoutData();
-				if (layoutData == null || !(layoutData instanceof GridData)) {
-					horizontalSpan = defaultHorizontalSpan;
-					verticalSpan = defaultVerticalSpan;
-				} else {
-					GridData gd = (GridData) layoutData;
-					horizontalSpan = gd.horizontalSpan;
-					verticalSpan = gd.verticalSpan;
-				}
-				Rectangle r = new Rectangle();
-
-				// Find the next un-occupied cell
-				while (row < glayoutTable[0].length && glayoutTable[col][row] != null) {
-					col += 1;
-					if (col >= numColumns) {
-						row += 1;
-						col = 0;
-					}
-				}
-				// if there's not enough columns left for the horizontal span, go to
-				// next row
-				if (col != 0 && (col + horizontalSpan - 1) >= numColumns) {
-					row += 1;
-					col = 0;
-				}
-
-				// Add the child to the table in all spanned cells. Handle users coding mistakes by not spanning past the end of the table.
-				int maxColSpan = Math.min(col + horizontalSpan, glayoutTable.length);
-				int maxRowSpan = Math.min(row + verticalSpan, glayoutTable[col].length);
-				for (int coli = col; coli < maxColSpan; coli++) {
-					for (int rowj = row; rowj < maxRowSpan; rowj++) {
-						glayoutTable[coli][rowj] = gcomp;
-					}
-				}
-
-				r.x = col;
-				r.y = row;
-				r.width = maxColSpan - col; // True horizontal span
-				r.height = maxRowSpan - row; // True vertical span
-				gcomp.gridDimension = r;
-				if (r.width != horizontalSpan)
-					gcomp.setSpanWidth(r.width);
-				if (r.height != verticalSpan)
-					gcomp.setSpanHeight(r.height);
-				childNum++;
-
-				// Add the spanned columns to the column position
-				col += r.width - 1;
-			}
-		}
-		// Now change all null entries to be EMPTY.
-		for (int i = 0; i < glayoutTable.length; i++) {
-			for (int j = 0; j < glayoutTable[i].length; j++) {
-				if (glayoutTable[i][j] == null) {
-					glayoutTable[i][j] = EMPTY_GRID;
-				}
-			}
-		}
-		return glayoutTable;
-	}
-
-	public Rectangle getClientArea() {
-		if (host instanceof ShellEditPart){
-			return host.getVisualInfo().getClientArea();
-		}
-		return host.getFigure().getBounds();
-	}
-
-	protected void insertGridGomponentAtBeginning(GridComponent gc) {
-		gc.next = first;
-		gc.prev = null;
-		if (first == null)
-			last = gc;
-		else
-			first.prev = gc;
-		first = gc;
-	}
-
-	protected void insertGridComponentBefore(GridComponent gc, GridComponent before) {
-		if (before != null) {
-			if (before == first) {
-				first = gc;
-			} else
-				before.prev.next = gc;
-			gc.next = before;
-			gc.prev = before.prev;
-			before.prev = gc;
-		} else
-			addGridComponent(gc);
-	}
-
-	private void addGridComponent(GridComponent gc) {
-		if (last == null)
-			insertGridGomponentAtBeginning(gc);
-		else {
-			last.next = gc;
-			gc.prev = last;
-			gc.next = null;
-			last = gc;
-		}
-	}
-
-	private GridLayout getGridLayout() {
-		Composite composite = getComposite();
-		if (composite != null && !composite.isDisposed()) {
-			return (GridLayout) composite.getLayout();
-		}
-		return null;
-	}
-
-	/**
-	 * @return
-	 */
-	public CompositeEditPart getEditPart() {
-		return host;
-	}
-
-	public void refresh() {
-		glayoutTable = null;
-		first = last = null;
-		numColumns = originalNumColumns = -1;
-	}
-
-	protected XamlNode getLayoutData(Object parent) {
-		if (parent == null || !(parent instanceof XamlNode)) {
-			return null;
-		}
-		XamlNode model = (XamlNode) parent;
-		XamlNode layoutData = null;
-		XamlAttribute attr = model.getAttribute("layoutData", IConstants.XWT_NAMESPACE);
-		if (attr != null && !attr.getChildNodes().isEmpty()) {
-			layoutData = attr.getChildNodes().get(0);
-		}
-		return layoutData;
-	}
-
-	/**
-	 * @param cell
-	 * @return
-	 */
-	public boolean isEmptyAtCell(Point cell) {
-		getLayoutTable();
-		// Check to make sure the cell position is within the grid
-		if (cell.x >= 0 && cell.x < glayoutTable.length && cell.y >= 0 && cell.y < glayoutTable[0].length)
-			return glayoutTable[cell.x][cell.y] == EMPTY_GRID;
-		return false;
-	}
-
-	/**
-	 * @param cell
-	 * @return
-	 */
-	public boolean isFillerLabelAtCell(Point cell) {
-		// Check to make sure the cell position is within the grid
-		if (cell.x >= 0 && cell.x < glayoutTable.length && cell.y >= 0 && cell.y < glayoutTable[0].length)
-			return glayoutTable[cell.x][cell.y].isFillerLabel();
-		return false;
-	}
-
-	/**
-	 * @param cell
-	 * @return
-	 */
-	public Rectangle getChildDimensions(Point cell) {
-		getLayoutTable();
-		if (cell.x < 0 || cell.x >= glayoutTable.length || cell.y < 0 || cell.y >= glayoutTable[0].length)
-			return null;
-		GridComponent gc = glayoutTable[cell.x][cell.y];
-		if (gc != EMPTY_GRID)
-			return gc.gridDimension;
-		else
-			return null;
-	}
-
-	/**
-	 * Get the child dimensions for the child.
-	 * 
-	 * @param child
-	 *            child to find dimensions of.
-	 * @return rectangle of dimensions or <code>null</code> if child not a component. This rectangle must not be modified.
-	 * @since 1.2.0
-	 */
-	public Rectangle getChildDimensions(EObject child) {
-		getLayoutTable();
-		GridComponent gc = getComponent(child);
-		if (gc != null)
-			return gc.gridDimension;
-		else
-			return null;
-	}
-
-	/**
-	 * 
-	 */
-	public void startRequest() {
-		getLayoutTable();
-		deletedComponents.clear();
-		if (orphanedComponents != null) {
-			orphanedComponents.clear();
-		}
-	}
-
-	private GridComponent getComponentIfMove(EObject childEObject, Object requestType) {
-		if (RequestConstants.REQ_CREATE.equals(requestType) || RequestConstants.REQ_ADD.equals(requestType))
-			return null;
-		return getComponent(childEObject);
-	}
-
-	/**
-	 * Get the component for the given child.
-	 * 
-	 * @param childEObject
-	 * @return the component or <code>null</code> if not in the layout.
-	 * @since 1.2.0
-	 */
-	protected GridComponent getComponent(EObject childEObject) {
-		if (childEObject == null)
-			return null;
-		GridComponent gc = first;
-		while (gc != null) {
-			if (gc.model == childEObject)
-				return gc;
-			gc = gc.next;
-		}
-		return null;
-	}
-
-	protected void deleteComponent(GridComponent gcomp) {
-		if (gcomp.requestType != null && !gcomp.requestType.equals(RequestConstants.REQ_ADD)
-				&& !gcomp.requestType.equals(RequestConstants.REQ_CREATE)) {
-			// If it was create or add, then it wasn't here to begin with so no need to add to deleted list.
-			addToDeleted(gcomp.model);
-		}
-	}
-
-	protected void addToDeleted(XamlNode child) {
-		if (deletedComponents == null)
-			deletedComponents = new ArrayList<XamlNode>();
-		deletedComponents.add(child);
-	}
-
-	protected void addToOrphaned(XamlNode child) {
-		if (orphanedComponents == null)
-			orphanedComponents = new ArrayList<XamlNode>();
-		orphanedComponents.add(child);
-	}
-
-	/**
-	 * Used by callers to delete the child from the layout. It will clean up and remove now empty columns and rows that the child used to cover. It will also call the appropriate delete from the container policy.
-	 * <p>
-	 * Must call {@link #startRequest()} before this method can be called.
-	 * 
-	 * @param child
-	 * @param delete
-	 * @since 1.2.0
-	 */
-	public void deleteChild(XamlNode child) {
-		GridComponent gc = getComponent(child);
-		if (gc != null)
-			removeChild(gc, true, false); // Don't force removal of fillers. That is because if it would be replaced by a filler the user would get confused and think nothing happened. Instead they will get a not sign.
-		else
-			addToDeleted(child); // May be some other non-grid child. Let it get deleted.
-
-	}
-
-	/**
-	 * Used by callers to orphan the child from the layout. It will clean up and remove now empty columns and rows that the child used to cover. It will also call the appropriate orphan from the container policy.
-	 * <p>
-	 * Must call {@link #startRequest()} before this method can be called.
-	 * 
-	 * @param child
-	 * @param delete
-	 * @since 1.2.0
-	 */
-	public void orphanChild(XamlNode child) {
-		GridComponent gc = getComponent(child);
-		if (gc != null)
-			removeChild(gc, false, true); // Need to force removal because it is going away to a new parent.
-		addToOrphaned(child);
-	}
-
-	/**
-	 * Same as {@link #orphanChild(EObject)} except it does it for each child in the list.
-	 * 
-	 * @param children
-	 * @since 1.2.0
-	 */
-	public void orphanChildren(List<XamlNode> children) {
-		for (Iterator<XamlNode> iter = children.iterator(); iter.hasNext();) {
-			XamlNode child = iter.next();
-			orphanChild(child);
-		}
-	}
-
-	/**
-	 * Remove the gridcomponent from the table and clean up rows/cols if needed. Also set it as a child to delete from the container if the delete flag is true.
-	 * 
-	 * @param oldChild
-	 * @param delete
-	 * @param forceRemove
-	 *            force the remove. If the oldChild was a filler and this is <code>false</code> it doesn't actually remove it. That is because if it was removed, it would just put a filler back in its place, and then see if row/col should be deleted. If using <code>true</code> then it will force a removal of the filler. Even though a filler will go back in its place, this may still be necessary
-	 *            because the actual eobject has trully been orphaned or moved. And in that case we need to remove it.
-	 * @since 1.2.0
-	 */
-	protected void removeChild(GridComponent oldChild, boolean delete, boolean forceRemove) {
-		// First replace the child squares with Empties, then fill in with fillers.
-		// Remove the child from the linked list and delete it if requested
-		// And finally clear out now exposed empty rows/cols.
-
-		int toCol = oldChild.gridDimension.x + oldChild.gridDimension.width - 1;
-		int toRow = oldChild.gridDimension.y + oldChild.gridDimension.height - 1;
-		if (!oldChild.isFillerLabel() || forceRemove) {
-			removeGridComponent(oldChild);
-			if (delete)
-				deleteComponent(oldChild);
-
-			for (int col = oldChild.gridDimension.x; col <= toCol; col++) {
-				for (int row = oldChild.gridDimension.y; row <= toRow; row++) {
-					glayoutTable[col][row] = EMPTY_GRID;
-				}
-			}
-			for (int col = oldChild.gridDimension.x; col <= toCol; col++) {
-				for (int row = oldChild.gridDimension.y; row <= toRow; row++) {
-					replaceEmptyCell(createFillerComponent(), col, row);
-				}
-			}
-		}
-
-		// Now remove empty rows/cols.
-		for (int remRow = toRow; remRow >= oldChild.gridDimension.y; remRow--)
-			removeRowIfEmpty(remRow);
-		for (int remCol = toCol; remCol >= oldChild.gridDimension.x; remCol--)
-			removeColIfEmpty(remCol);
-	}
-
-	/**
-	 * Remove this row if contains nothing but empties, or fillers.
-	 * 
-	 * @param row
-	 * @return <code>true</code> if the row was removed.
-	 * @since 1.2.0
-	 */
-	protected boolean removeRowIfEmpty(int row) {
-		for (int col = 0; col < glayoutTable.length; col++) {
-			GridComponent gc = glayoutTable[col][row];
-			if (gc == EMPTY_GRID)
-				continue;
-			else if (gc.isFillerLabel())
-				continue;
-			else
-				return false; // We have one that starts on this row
-		}
-
-		// We have an empty row. Now go through and remove all of the fillers, decrease by one any vertical spans, and then just
-		// move up the entire layout one row.
-		for (int col = 0; col < glayoutTable.length; col++) {
-			GridComponent gc = glayoutTable[col][row];
-			if (gc == EMPTY_GRID)
-				continue;
-			else {
-				// It must be a filler. already verified that above.
-				removeGridComponent(gc);
-				deleteComponent(gc);
-			}
-		}
-
-		for (int col = 0; col < glayoutTable.length; col++) {
-			GridComponent[] oldCol = glayoutTable[col];
-			GridComponent[] newCol = glayoutTable[col] = new GridComponent[oldCol.length - 1];
-			System.arraycopy(oldCol, 0, newCol, 0, row);
-			System.arraycopy(oldCol, row + 1, newCol, row, newCol.length - row);
-			// And finally! update the grid dimensions of all of the moved controls.
-			for (int rrow = row; rrow < newCol.length; rrow++) {
-				GridComponent gc = newCol[rrow];
-				if (gc != EMPTY_GRID) {
-					if (gc.gridDimension.x == col && gc.gridDimension.y == rrow + 1) {
-						gc.gridDimension.y = rrow;
-					}
-					// Skip over control to get to next filled row.
-					rrow = (gc.gridDimension.y + gc.gridDimension.height - 1);
-				}
-			}
-		}
-
-		return true;
-	}
-
-	/**
-	 * Remove this col if contains nothing but empties, ir fillers.
-	 * 
-	 * @param col
-	 * @return <code>true</code> if the col was removed.
-	 * @since 1.2.0
-	 */
-	protected boolean removeColIfEmpty(int col) {
-		for (int row = 0; row < glayoutTable[col].length; row++) {
-			GridComponent gc = glayoutTable[col][row];
-			if (gc == EMPTY_GRID)
-				continue;
-			else if (gc.isFillerLabel())
-				continue;
-			else
-				return false; // We have one that starts on this col
-		}
-
-		// We have an empty col. Now go through and remove all of the fillers, decrease by one any horizontal spans, and then just
-		// move up the entire layout one col.
-		for (int row = 0; row < glayoutTable[col].length; row++) {
-			GridComponent gc = glayoutTable[col][row];
-			if (gc == EMPTY_GRID)
-				continue;
-			else {
-				// Must be a filler. Already verified that above.
-				removeGridComponent(gc);
-				deleteComponent(gc);
-			}
-		}
-
-		GridComponent[][] oldLayout = glayoutTable;
-		glayoutTable = new GridComponent[glayoutTable.length - 1][];
-		System.arraycopy(oldLayout, 0, glayoutTable, 0, col);
-		System.arraycopy(oldLayout, col + 1, glayoutTable, col, glayoutTable.length - col);
-		numColumns = glayoutTable.length;
-		// And finally! update the grid dimensions of all of the moved controls.
-		for (int rcol = col; rcol < glayoutTable.length; rcol++) {
-			// Need to rcol in the next for loop because we modify rcol within the for loop.
-			for (int rrow = 0; rcol < glayoutTable.length && rrow < glayoutTable[rcol].length; rrow++) {
-				GridComponent gc = glayoutTable[rcol][rrow];
-				if (gc != EMPTY_GRID) {
-					if (gc.gridDimension.x == rcol + 1 && gc.gridDimension.y == rrow) {
-						gc.gridDimension.x = rcol;
-					}
-					// Skip over control to get to next filled col.
-					rcol = (gc.gridDimension.x + gc.gridDimension.width - 1);
-				}
-			}
-		}
-
-		return true;
-	}
-
-	/**
-	 * Replace the empty cell. The child must be a new grid component. It cannot be one that already exists. It could be modified during the execution.
-	 * 
-	 * @param child
-	 * @param cellCol
-	 * @param cellRow
-	 * @since 1.2.0
-	 */
-	protected void replaceEmptyCell(GridComponent child, int cellCol, int cellRow) {
-		if (glayoutTable[cellCol][cellRow] != EMPTY_GRID)
-			return; // Invalid request.
-
-		GridComponent movedComponent = getComponentIfMove(child.model, child.requestType);
-
-		// Find the next occupied cell to be used as the before object.
-		GridComponent before = findNextValidGC(cellCol, cellRow);
-
-		// Need to find all empties between the object BEFORE the beforeObject (i.e. the object we are going AFTER)
-		// and our position. They need to be replaced with filler. Otherwise ours will not be placed correctly.
-		GridComponent componentBeforeUs = before != null ? before.prev : last;
-		Rectangle beforeUsDim = componentBeforeUs != null ? componentBeforeUs.gridDimension : new Rectangle();
-		int startCol = beforeUsDim.x;
-		for (int row = beforeUsDim.y; row <= cellRow; row++) {
-			int endCol = row != cellRow ? glayoutTable.length : cellCol; // Stop at our cell only on our row, else do entire row.
-			for (int col = startCol; col < endCol; col++) {
-				if (glayoutTable[col][row] == EMPTY_GRID) {
-					insertComponent(createFillerComponent(), before, col, row, 1, 1);
-				}
-			}
-			startCol = 0; // After the first row we want to start in first col.
-		}
-
-		if (movedComponent == null)
-			insertComponent(child, before, cellCol, cellRow, 1, 1);
-		else {
-			child.setMovedComponent(movedComponent);
-			insertComponent(child, before, cellCol, cellRow, 1, 1);
-			removeChild(movedComponent, false, true); // Need to force removal because if it was a filler it is now in a new place.
-		}
-	}
-
-	/**
-	 * Insert the component in the ordered list before the given component, and fill in the layout table with the new component. It is assumed that the slots taken by the new component are empty (or the current nameMap have been handled and can be replaced by this new component).
-	 * 
-	 * @param gc
-	 * @param beforeComponent
-	 *            component to be ordered before, <code>null</code> for add to end.
-	 * @param x
-	 * @param y
-	 * @param spanX
-	 * @param spanY
-	 * @since 1.2.0
-	 */
-	protected void insertComponent(GridComponent gc, GridComponent beforeComponent, int x, int y, int spanX, int spanY) {
-		gc.gridDimension = new Rectangle(x, y, spanX, spanY);
-		insertGridComponentBefore(gc, beforeComponent);
-		// Now fill in the slots
-		int stopCol = x + spanX;
-		int stopRow = y + spanY;
-		for (int col = x; col < stopCol; col++) {
-			for (int row = y; row < stopRow; row++)
-				glayoutTable[col][row] = gc;
-		}
-	}
-
-	private GridComponent findNextValidGC(int columnStart, int rowStart) {
-		if (glayoutTable.length == 0 || glayoutTable[0].length == 0)
-			return null;
-
-		// Find the next occupied cell to be used as the before object.
-		int col = columnStart, row = rowStart;
-		for (int i = row; i < glayoutTable[0].length; i++) {
-			for (int j = col; j < glayoutTable.length; j++) {
-				GridComponent child = glayoutTable[j][i];
-				if (child != EMPTY_GRID) {
-					// If the row is going through a control that is spanning vertically more than one
-					// row, skip it. This is checked by comparing this control's starting y (row) value
-					// with where we are in the table lookup. If it doesn't span vertically, then its gridY will be the same as the row.
-					if (child.gridDimension.y == i) {
-						return child;
-					}
-				}
-			}
-			col = 0; // Reset so that we now start from beginning of all subsequent rows.
-		}
-		return null;
-
-	}
-
-	/**
-	 * 
-	 */
-	private GridComponent createFillerComponent() {
-		XamlElement filler = XamlFactory.eINSTANCE.createElement("Label", IConstants.XWT_NAMESPACE);
-		// XamlElement comp = (XamlElement) host.getModel();
-		// comp.getChildNodes().add(filler);
-		GridComponent gc = new GridComponent(filler, true);
-		AnnotationTools.addAnnotation(filler, FILLER_DATA, FILLER_DATA);
-		return gc;
-	}
-
-	/**
-	 * @param child
-	 * @param requestType
-	 * @param cell
-	 */
-	public void replaceFiller(XamlNode child, Object requestType, Point cell) {
-		if (!isFillerLabelAtCell(cell))
-			return; // Invalid request.
-		GridComponent movedComponent = getComponentIfMove(child, requestType);
-		GridComponent compAtCell = glayoutTable[cell.x][cell.y];
-		deleteComponent(compAtCell); // Delete the filler.
-		if (movedComponent == null)
-			compAtCell.setComponent(child, requestType); // Just set in new stuff for same index position.
-		else {
-			// This is a move, so we will instead set into this filler component the moved child. This will be a copy and then
-			// the old child will be removed.
-			compAtCell.setComponent(child, requestType); // First make it new move component
-			compAtCell.setMovedComponent(movedComponent); // Then copy what is needed from old.
-			removeChild(movedComponent, false, true); // Need to force removal because if it is a filler, it is now in a new place.
-		}
-	}
-
-	private void removeGridComponent(GridComponent gc) {
-		if (first == gc)
-			first = gc.next;
-		else
-			gc.prev.next = gc.next;
-		if (last == gc)
-			last = gc.prev;
-		else
-			gc.next.prev = gc.prev;
-	}
-
-	/**
-	 * @param cell
-	 */
-	public boolean insertColWithinRow(Point cell) {
-		if (cell.x < 0 || cell.x >= glayoutTable.length || cell.y < 0 || cell.y >= glayoutTable[0].length)
-			return false;
-
-		// Create a column at the end if this row doesn't end with a filler or empty. None of the children of any row other than the one with the column being
-		// inserted will enter this column. Then the row starting with the insert col will be shifted left one column.
-		// If any one spans vertically then we will not allow the move. This is a restriction for now because
-		// it becomes very difficult to figure out what needs to move because the vertical span would push
-		// other components that would not normally be involved to also be shifted. It could cause shifting
-		// both above and below the new row.
-
-		// First test to see if a vertical span is involved. Don't do anything if it is.
-		for (int col = cell.x; col < glayoutTable.length; col++) {
-			GridComponent gc = glayoutTable[col][cell.y];
-			if (gc != EMPTY_GRID && gc.gridDimension.height > 1)
-				return false; // We have a vertical span, can't handle these at this time.
-		}
-
-		GridComponent lastCol = glayoutTable[numColumns - 1][cell.y];
-		if (lastCol != EMPTY_GRID && !last.isFillerLabel())
-			createNewCol(numColumns);
-
-		// Now start the needed shifting. Remove the new filler component just added in the new column and move over by one each until
-		// we reach the insert column.
-		GridComponent newFiller = glayoutTable[numColumns - 1][cell.y];
-		if (newFiller != EMPTY_GRID) {
-			removeGridComponent(newFiller);
-			deleteComponent(newFiller);
-		}
-		for (int col = glayoutTable.length - 2, toCol = col + 1; col >= cell.x; col--, toCol--) {
-			glayoutTable[toCol][cell.y] = glayoutTable[col][cell.y];
-		}
-		// Now put an empty in the col spot and replace with the new child.
-		glayoutTable[cell.x][cell.y] = EMPTY_GRID;
-		replaceEmptyCell(createFillerComponent(), cell.x, cell.y);
-		return true;
-	}
-
-	/**
-	 * @param newObject
-	 * @param requestType
-	 * @param cell
-	 */
-	public void replaceFillerOrEmpty(XamlNode newObject, Object requestType, Point cell) {
-		if (isFillerLabelAtCell(cell))
-			replaceFiller(newObject, requestType, cell);
-		else if (isEmptyAtCell(cell))
-			replaceEmptyCell(newObject, requestType, cell);
-	}
-
-	/**
-	 * @param x
-	 */
-	public void createNewCol(int newCol) {
-		if (newCol < 0 || newCol > glayoutTable.length)
-			return;
-		if (glayoutTable.length == 0) {
-			glayoutTable = new GridComponent[numColumns = 1][1];
-			glayoutTable[0][0] = EMPTY_GRID;
-			replaceEmptyCell(createFillerComponent(), 0, 0);
-			return;
-		}
-
-		GridComponent[][] newLayoutTable = new GridComponent[numColumns = glayoutTable.length + 1][glayoutTable[0].length];
-
-		// We need to create the new table. First copy each column up to but including new col as is since those won't change.
-		for (int col = 0; col < newCol; col++) {
-			System.arraycopy(glayoutTable[col], 0, newLayoutTable[col], 0, glayoutTable[col].length);
-		}
-
-		// First fill new col in with Empty so we don't get errors later accessing null slots.
-		Arrays.fill(newLayoutTable[newCol], EMPTY_GRID);
-
-		GridComponent[][] oldLayoutTable = glayoutTable;
-		glayoutTable = newLayoutTable; // Now have a valid table up to the prev col. We make it the table so that findNext, etc. will work.
-		// Now comes the hard part, we need to fill in the new col, but we have to be careful because of horizontal spans.
-		// First move all from old col to the last col over one col and updating their dimensions to their new col.
-		// This is needed so that when we create the new row after this we have valid "next valid objects".
-		// Note: The reason we are coming from the right is because that way we can tell when we hit the
-		// top-left of a a component. If we went from left to right we would keep incrementing the x coor (because
-		// we hit it, we increment it, and then on the next col we hit it again and would increment it again).
-		for (int col = oldLayoutTable.length - 1, toCol = col + 1; col >= newCol; col--, toCol--) {
-			for (int row = 0; row < oldLayoutTable[0].length; row++) {
-				GridComponent cellEntry = oldLayoutTable[col][row];
-				if (cellEntry == EMPTY_GRID)
-					glayoutTable[toCol][row] = EMPTY_GRID;
-				else {
-					if (cellEntry.gridDimension.x == col && cellEntry.gridDimension.y == row) {
-						cellEntry.gridDimension.x = toCol; // It is being moved over one.
-					}
-					int spanHeight = cellEntry.gridDimension.height;
-					// This will increment row for us to so we pick in the for loop with the next row after the span.
-					row--;
-					while (spanHeight-- > 0) {
-						glayoutTable[toCol][++row] = cellEntry;
-					}
-				}
-			}
-		}
-		int lastRow = oldLayoutTable[0].length - 1;
-		if (newCol != oldLayoutTable.length) {
-			// Now go through old col, and find any that are horizontal spanned but start before that col, increase their's by one because they now span new col.
-			// For those that don't, put in a filler instead. (Note: we could try to get smart and figure out if they should
-			// be empties or not, but that gets real complicated. Leave for a later exercise. :-) )
-			for (int row = 0; row <= lastRow; row++) {
-				GridComponent gc = oldLayoutTable[newCol][row];
-				if (gc != EMPTY_GRID && gc.gridDimension.x < newCol) {
-					gc.setSpanWidth(gc.gridDimension.width + 1);
-					int spanHeight = gc.gridDimension.height;
-					// This will increment col for us to so we pick in the for loop with the next col after the span.
-					row--;
-					while (spanHeight-- > 0) {
-						glayoutTable[newCol][++row] = gc;
-					}
-				} else
-					replaceEmptyCell(createFillerComponent(), newCol, row);
-			}
-		} else {
-			// Last col. Just replace with fillers
-			for (int row = 0; row < glayoutTable[0].length; row++) {
-				replaceEmptyCell(createFillerComponent(), newCol, row);
-			}
-		}
-	}
-
-	/**
-	 * @param newRow
-	 */
-	public void createNewRow(int newRow) {
-		if (newRow < 0 || (glayoutTable.length == 0 && newRow > 0) || newRow > glayoutTable[0].length)
-			return;
-
-		if (glayoutTable.length == 0) {
-			glayoutTable = new GridComponent[numColumns = 1][1];
-			glayoutTable[0][0] = EMPTY_GRID;
-			replaceEmptyCell(createFillerComponent(), 0, 0);
-			return;
-		}
-
-		GridComponent[][] newLayoutTable = new GridComponent[glayoutTable.length][glayoutTable[0].length + 1];
-		if (newRow > 0) {
-			// We need to create the new table. First for each column, copy up to but not including the new row as is since those won't change.
-			for (int col = 0; col < glayoutTable.length; col++) {
-				System.arraycopy(glayoutTable[col], 0, newLayoutTable[col], 0, newRow);
-			}
-		}
-
-		// First fill new row in with Empty so we don't get errors later accessing null slots.
-		for (int col = 0; col < glayoutTable.length; col++) {
-			newLayoutTable[col][newRow] = EMPTY_GRID;
-		}
-
-		GridComponent[][] oldLayoutTable = glayoutTable;
-		glayoutTable = newLayoutTable; // Now have a valid table up to the prev row. We make it the table so that findNext, etc. will work.
-		if (newRow == oldLayoutTable[0].length) {
-			// It is the last row, use replace empty on first col to fill it correctly.
-			replaceEmptyCell(createFillerComponent(), 0, newRow);
-		} else {
-			// Now comes the hard part, we need to fill in the new row, but we have to be careful because of vertical spans.
-			// First move all from old row to the last row down one row and updating their dimensions to their new row.
-			// This is needed so that when we create the new row after this we have valid "next valid objects".
-			// Note: The reason we are coming from the bottom up is because that way we can tell when we hit the
-			// top-left of a a component. If we went from top down we would keep incrementing the y coor (because
-			// we hit it, we increment it, and then on the next row we hit it again and would increment it again).
-			for (int row = oldLayoutTable[0].length - 1, toRow = row + 1; row >= newRow; row--, toRow--) {
-				for (int col = 0; col < oldLayoutTable.length; col++) {
-					GridComponent cellEntry = oldLayoutTable[col][row];
-					if (cellEntry == EMPTY_GRID)
-						glayoutTable[col][toRow] = EMPTY_GRID;
-					else {
-						if (cellEntry.gridDimension.y == row && cellEntry.gridDimension.x == col) {
-							cellEntry.gridDimension.y = toRow; // It is being moved down one.
-						}
-						int spanx = cellEntry.gridDimension.width;
-						// This will increment col for us to so we pick in the for loop with the next col after the span.
-						col--;
-						while (spanx-- > 0) {
-							glayoutTable[++col][toRow] = cellEntry;
-						}
-					}
-				}
-			}
-			// Now go through old row, and find any that are vertical spanned but start before that row, increase their's by one because they now span new row.
-			// For those that don't, put in a filler instead. (Note: we could try to get smart and figure out if they should
-			// be empties or not, but that gets real complicated. Leave for a later exercise. :-) )
-			for (int col = 0; col < oldLayoutTable.length; col++) {
-				GridComponent gc = oldLayoutTable[col][newRow];
-				if (gc != EMPTY_GRID && gc.gridDimension.y < newRow) {
-					gc.setSpanHeight(gc.gridDimension.height + 1);
-					int spanWidth = gc.gridDimension.width;
-					// This will increment col for us to so we pick in the for loop with the next col after the span.
-					col--;
-					while (spanWidth-- > 0) {
-						glayoutTable[++col][newRow] = gc;
-					}
-				} else
-					replaceEmptyCell(createFillerComponent(), col, newRow);
-			}
-		}
-	}
-
-	/**
-	 * @param newObject
-	 * @param requestType
-	 * @param cell
-	 */
-	public void replaceEmptyCell(XamlNode newObject, Object requestType, Point cell) {
-		if (glayoutTable[cell.x][cell.y] != EMPTY_GRID)
-			return; // Invalid request.
-		replaceEmptyCell(new GridComponent(newObject, requestType), cell.x, cell.y);
-
-	}
-
-	/**
-	 * @return
-	 */
-	public int getNumColumns() {
-		if (numColumns == -1) {
-			getLayoutTable();
-		}
-		return numColumns;
-	}
-
-	/**
-	 * @return
-	 */
-	public int getNumRows() {
-		getLayoutTable();
-		return glayoutTable.length != 0 ? glayoutTable[0].length : 0;
-	}
-
-	private void handleSpanAtEnd(GridComponent gc, CompoundCommand cb) {
-		if (gc.modSpanWidth != NOT_MODIFIED_SPAN || gc.modSpanHeight != NOT_MODIFIED_SPAN) {
-			XamlNode gridData = gc.useGriddata == null ? getLayoutData(gc.model) : gc.useGriddata;
-			XamlAttribute attribute = gridData == null ? null : gridData.getAttribute("horizontalSpan",
-					IConstants.XWT_NAMESPACE);
-			switch (gc.modSpanWidth) {
-			case SET_TO_DEFAULT_SPAN: {
-				if (gridData != null && attribute != null) {
-					int defaultHSpan = new GridData().horizontalSpan;
-					if (!String.valueOf(defaultHSpan).equals(attribute.getValue())) {
-						cb.add(ApplyAttributeSettingCommand.createCommand(gridData, "horizontalSpan",
-								IConstants.XWT_NAMESPACE, String.valueOf(defaultHSpan)));
-					}
-				}
-				break;
-			}
-			case NOT_MODIFIED_SPAN:
-				// Do nothing, not modified.
-				break;
-			default:
-				if (gridData != null && gc.modSpanWidth > 0) {
-					int defaultHSpan = new GridData().horizontalSpan;
-					if ((attribute == null && defaultHSpan != gc.modSpanWidth)
-							|| (attribute != null && (!String.valueOf(gc.modSpanWidth).equals(attribute.getValue())))) {
-						cb.add(ApplyAttributeSettingCommand.createCommand(gridData, "horizontalSpan",
-								IConstants.XWT_NAMESPACE, String.valueOf(gc.modSpanWidth)));
-					}
-				}
-				break;
-			}
-			switch (gc.modSpanHeight) {
-			case SET_TO_DEFAULT_SPAN:
-				if (gridData != null && attribute != null) {
-					int defaultVSpan = new GridData().verticalSpan;
-					if (!String.valueOf(defaultVSpan).equals(attribute.getValue())) {
-						cb.add(ApplyAttributeSettingCommand.createCommand(gridData, "verticalSpan",
-								IConstants.XWT_NAMESPACE, String.valueOf(defaultVSpan)));
-					}
-				}
-				break;
-			case NOT_MODIFIED_SPAN:
-				// Do nothing, not modified.
-				break;
-			default:
-				if (gridData != null && gc.modSpanHeight > 0) {
-					int defaultHSpan = new GridData().verticalSpan;
-					if ((attribute == null && defaultHSpan != gc.modSpanHeight)
-							|| (attribute != null && (!String.valueOf(gc.modSpanHeight).equals(attribute.getValue())))) {
-						cb.add(ApplyAttributeSettingCommand.createCommand(gridData, "verticalSpan",
-								IConstants.XWT_NAMESPACE, String.valueOf(gc.modSpanHeight)));
-					}
-				}
-				break;
-			}
-		}
-	}
-
-	/**
-	 * Span the child.
-	 * 
-	 * @param child
-	 * @param newSpan
-	 * @param spanDirection
-	 * @param griddata
-	 *            use <code>null</code> if should use griddata from the child or create one if it doesn't have one. Supply an explicit griddata here in the case of building up from an implicit and we can't fluff one up because there is one being created before this, but not yet applied.
-	 * @since 1.2.0
-	 */
-	public void spanChild(EObject child, Point newSpan, int spanDirection, XamlNode griddata) {
-		GridComponent gc = getComponent(child);
-		if (gc == null)
-			return;
-		gc.setGriddata(griddata);
-
-		if (spanDirection == PositionConstants.EAST || spanDirection == PositionConstants.WEST) {
-			int newgridDataWidth = newSpan.x;
-			if (newgridDataWidth != gc.gridDimension.width) {
-				if (newgridDataWidth > gc.gridDimension.width) {
-					// Increase the horizontalSpan
-					// but first see if we can expand into empty cells without increasing the number of columns
-					int numColsIncrement = spanHorizontalIntoEmptyColumns(gc, gc.gridDimension.y, gc.gridDimension.x
-							+ gc.gridDimension.width, gc.gridDimension.height, newgridDataWidth
-							- gc.gridDimension.width);
-					if (numColsIncrement > 0) {
-						// We now need to insert at this point this number of columns so that we can span into them.
-						int insertColAt = gc.gridDimension.x + gc.gridDimension.width; // Insert just after current end of control.
-						while (numColsIncrement-- > 0)
-							createNewCol(insertColAt);
-						spanHorizontalIntoEmptyColumns(gc, gc.gridDimension.y, gc.gridDimension.x
-								+ gc.gridDimension.width, gc.gridDimension.height, newgridDataWidth
-								- gc.gridDimension.width); // Now span into these new ones.
-					}
-				} else {
-					// Shrink by one column at a time from the right. Fill with filler and then see if column can go away.
-					if (gc.gridDimension.x == 0 && gc.gridDimension.y > 0) {
-						// However, there is a problem need to worry about. If this control is the first in the row and the previous
-						// row ends in at least the number of the new smaller span empty cells, then we need to fill in those empty
-						// with fillers. Otherwise the control will flow back onto the previous row.
-						//
-						// If we have too many empties, need to fill with filler. We'll do a little optimization here. We will actually
-						// leave one less empty than the new span width.
-						// If we simply instead fill the last empty in the row, then all of the row will be filled with fillers
-						// and this would create extra unneeded fillers.
-						//
-						// For example say we need to have no more than two empties in the prev row (i.e. span down to two for
-						// the control in the next row), and we had the following layout:
-						//
-						// C C C E E E E
-						//
-						// The most efficient is to change to:
-						//
-						// C C C F F F E
-						boolean allEmpties = true;
-						int prevRow = gc.gridDimension.y - 1;
-						for (int numCols = newgridDataWidth, colToTest = glayoutTable.length - 1; numCols > 0; numCols--, colToTest--) {
-							if (glayoutTable[colToTest][prevRow] != EMPTY_GRID) {
-								allEmpties = false;
-								break;
-							}
-						}
-						if (allEmpties) {
-							// So replace the first one in the span of empties of the size we needed so that there will no longer
-							// be enough room for the next control.
-							replaceEmptyCell(createFillerComponent(), glayoutTable.length - newgridDataWidth, prevRow);
-						}
-					}
-					int colToSpanOutOf = gc.gridDimension.x + gc.gridDimension.width - 1;
-					while (gc.gridDimension.width > newgridDataWidth) {
-						gc.setSpanWidth(gc.gridDimension.width - 1);
-						int nextRow = gc.gridDimension.y + gc.gridDimension.height;
-						Arrays.fill(glayoutTable[colToSpanOutOf], gc.gridDimension.y, nextRow, EMPTY_GRID);
-						for (int row = gc.gridDimension.y; row < nextRow; row++) {
-							replaceEmptyCell(createFillerComponent(), colToSpanOutOf, row);
-						}
-						removeColIfEmpty(colToSpanOutOf);
-						colToSpanOutOf--;
-					}
-				}
-			}
-		} else if (spanDirection == PositionConstants.SOUTH) {
-			int newgridDataHeight = newSpan.y;
-			if (newgridDataHeight != gc.gridDimension.height) {
-				if (newgridDataHeight > gc.gridDimension.height) {
-					// Increase the horizontalSpan
-					// but first see if we can expand into empty cells without increasing the number of columns
-					int numRowsIncrement = spanVerticalIntoEmptyRows(gc, gc.gridDimension.y + gc.gridDimension.height,
-							gc.gridDimension.x, gc.gridDimension.width, newgridDataHeight - gc.gridDimension.height);
-					if (numRowsIncrement > 0) {
-						// We now need to insert at this point this number of columns so that we can span into them.
-						int insertRowAt = gc.gridDimension.y + gc.gridDimension.height; // Insert just after current end of control.
-						while (numRowsIncrement-- > 0)
-							createNewRow(insertRowAt);
-						spanVerticalIntoEmptyRows(gc, gc.gridDimension.y + gc.gridDimension.height, gc.gridDimension.x,
-								gc.gridDimension.width, newgridDataHeight - gc.gridDimension.height); // Now span into these new ones.
-					}
-				} else {
-					// Shrink by one row at a time from the bottom. Fill with filler and then see if row can go away.
-					int rowToSpanOutOf = gc.gridDimension.y + gc.gridDimension.height - 1;
-					while (gc.gridDimension.height > newgridDataHeight) {
-						gc.setSpanHeight(gc.gridDimension.height - 1);
-						int nextCol = gc.gridDimension.x + gc.gridDimension.width;
-						for (int col = gc.gridDimension.x; col < nextCol; col++) {
-							glayoutTable[col][rowToSpanOutOf] = EMPTY_GRID;
-						}
-						for (int col = gc.gridDimension.x; col < nextCol; col++) {
-							replaceEmptyCell(createFillerComponent(), col, rowToSpanOutOf);
-						}
-						removeRowIfEmpty(rowToSpanOutOf);
-						rowToSpanOutOf--;
-					}
-				}
-			}
-		}
-	}
-
-	/*
-	 * For spanning horizontally, walk through the row starting atColumn and delete empty or filler labels so we can expand into the empty columns. If no empty cells, numColIncrement is returned so the number of columns can be incremented on the overall grid.
-	 */
-	private int spanHorizontalIntoEmptyColumns(GridComponent spanGC, int atRow, int atColumn, int childHeight,
-			int numColsIncrement) {
-		// Span as far as we can with empty vertical columns, move the spanGC into the new columns as we go.
-		if (atColumn < glayoutTable.length && atRow < glayoutTable[0].length) {
-			for (int col = atColumn; col < glayoutTable.length && numColsIncrement != 0; col++) {
-				int toRow = atRow + childHeight - 1;
-				if (isHorizontalSpaceAvailable(col, atRow, toRow)) {
-					for (int row = atRow; row <= toRow; row++) {
-						GridComponent gc = glayoutTable[col][row];
-						if (gc.isFillerLabel()) {
-							removeGridComponent(gc);
-							deleteComponent(gc);
-						}
-						glayoutTable[col][row] = spanGC;
-					}
-					spanGC.setSpanWidth(spanGC.gridDimension.width + 1);
-					numColsIncrement--;
-				} else
-					break; // We hit our first non-empty column. Can't span any further.
-			}
-		}
-		return numColsIncrement;
-	}
-
-	/*
-	 * For spanning vertically, walk through the col starting atRow and delete empty or filler labels so we can expand into the empty rows. If no empty cells, numRowIncrement is returned so the number of rows can be incremented on the overall grid.
-	 */
-	private int spanVerticalIntoEmptyRows(GridComponent spanGC, int atRow, int atColumn, int childWidth,
-			int numRowsIncrement) {
-		// Span as far as we can with empty horizontal rows, move the spanGC into the new rows as we go.
-		if (atColumn < glayoutTable.length && atRow < glayoutTable[0].length) {
-			for (int row = atRow; row < glayoutTable[0].length && numRowsIncrement != 0; row++) {
-				int toCol = atColumn + childWidth - 1;
-				if (isVerticalSpaceAvailable(row, atColumn, toCol)) {
-					for (int col = atColumn; col <= toCol; col++) {
-						GridComponent gc = glayoutTable[col][row];
-						if (gc.isFillerLabel()) {
-							removeGridComponent(gc);
-							deleteComponent(gc);
-						}
-						glayoutTable[col][row] = spanGC;
-					}
-					spanGC.setSpanHeight(spanGC.gridDimension.height + 1);
-					numRowsIncrement--;
-				} else
-					break; // We hit our first non-empty row. Can't span any further.
-			}
-		}
-		return numRowsIncrement;
-	}
-
-	/*
-	 * Return true if the cells atRow from columnStart to columnEnd have either an EMPTY object or is a filler label.
-	 */
-	private boolean isVerticalSpaceAvailable(int atRow, int columnStart, int columnEnd) {
-		if (glayoutTable.length == 0 || glayoutTable[0].length == 0 || columnStart >= glayoutTable.length
-				|| columnEnd >= glayoutTable.length || atRow >= glayoutTable[0].length)
-			return false;
-		for (int col = columnStart; col <= columnEnd; col++) {
-			if (glayoutTable[col][atRow] != EMPTY_GRID && !glayoutTable[col][atRow].isFillerLabel()) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/*
-	 * Return true if the cells atCol from rowStart to rowEnd have either an EMPTY object or is a filler label.
-	 */
-	private boolean isHorizontalSpaceAvailable(int atCol, int rowStart, int rowEnd) {
-		if (glayoutTable.length == 0 || glayoutTable[0].length == 0 || rowStart >= glayoutTable[0].length
-				|| rowEnd >= glayoutTable[0].length || atCol >= glayoutTable.length)
-			return false;
-		for (int row = rowStart; row <= rowEnd; row++) {
-			if (glayoutTable[atCol][row] != EMPTY_GRID && !glayoutTable[atCol][row].isFillerLabel()) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * @return
-	 */
-	public Command stopRequest() {
-
-		CompoundCommand cb = new CompoundCommand();
-
-		if (numColumns != originalNumColumns) {
-			createNumColumnsCommand(numColumns, cb);
-		}
-
-		// There is actually one optimization we can do and that is remove all trailing fillers. They don't
-		// add anything. They won't create extra columns and they could create empty rows at the end, but we don't
-		// want those anyway.
-
-		GridComponent end = last;
-		while (last != null && (last == EMPTY_GRID || last.isFillerLabel())) {
-			GridComponent next = last.prev;
-			if (last != EMPTY_GRID) {
-				removeGridComponent(end);
-				deleteComponent(end);
-				glayoutTable[end.gridDimension.x][end.gridDimension.y] = EMPTY_GRID;
-			}
-			end = next;
-		}
-
-		Object beforeComp = null;
-		Object currentModState = null;
-		List<GridComponent> currentComponentGCs = new ArrayList<GridComponent>();
-		Object prevComp = beforeComp;
-		// We build up from the end instead of from the beginning because we need to have the prevComp in place before we can put something
-		// in front of it. If we went from the beginning, something may of been moved to a later spot and it would not be in the correct
-		// order in the real list.
-		for (GridComponent gc = last; gc != null; gc = gc.prev) {
-			if (gc.requestType != NO_MODS) {
-				if (!gc.requestType.equals(currentModState)) {
-					// We are switching to a new type, send out the old group.
-					if (!currentComponentGCs.isEmpty()) {
-						getCommandForAddCreateMoveChildren(currentModState, currentComponentGCs, beforeComp, cb);
-						currentComponentGCs.clear();
-					}
-					beforeComp = prevComp; // This new guy will now go before the latest prev component.
-					currentModState = gc.requestType;
-				}
-				currentComponentGCs.add(0, gc); // Since we build up backwards, we insert from the front so that it results in forward.
-			} else {
-				// Switch to no change, so put what we have.
-				if (!currentComponentGCs.isEmpty()) {
-					getCommandForAddCreateMoveChildren(currentModState, currentComponentGCs, beforeComp, cb);
-					currentComponentGCs.clear();
-					currentModState = null;
-				}
-			}
-
-			handleSpanAtEnd(gc, cb); // Handle if the span had changed.
-			prevComp = gc.model;
-		}
-
-		// Do last group.
-		if (!currentComponentGCs.isEmpty()) {
-			getCommandForAddCreateMoveChildren(currentModState, currentComponentGCs, beforeComp, cb);
-		}
-
-		if (deletedComponents != null && !deletedComponents.isEmpty()) {
-			cb.add(factory.getDeleteDependentCommand(deletedComponents));
-		}
-		if (orphanedComponents != null && !orphanedComponents.isEmpty()) {
-			cb.add(factory.getOrphanChildrenCommand(orphanedComponents));
-		}
-
-		refresh();
-		return cb;
-	}
-
-	private void createNumColumnsCommand(int numCols, CompoundCommand cb) {
-		XamlNode parent = (XamlNode) host.getLayoutModel();
-		XamlAttribute attribute = parent.getAttribute("numColumns", IConstants.XWT_NAMESPACE);
-		int defaultNum = new GridLayout().numColumns;
-		if ((attribute == null && numCols != defaultNum)
-				|| (attribute != null && !String.valueOf(numCols).equals(attribute.getValue()))) {
-			Command cmd = ApplyAttributeSettingCommand.createCommand(parent, "numColumns", IConstants.XWT_NAMESPACE,
-					Integer.toString(numCols));
-			cb.add(cmd);
-		}
-	}
-
-	private void getCommandForAddCreateMoveChildren(Object requestType, List<GridComponent> childrenGC,
-			Object beforeObject, CompoundCommand cb) {
-		List<XamlNode> children = new ArrayList<XamlNode>(childrenGC.size());
-		List<XamlNode> constraints = new ArrayList<XamlNode>(childrenGC.size());
-		for (int i = 0; i < childrenGC.size(); i++) {
-			GridComponent gc = (GridComponent) childrenGC.get(i);
-			children.add(gc.model);
-			constraints.add(gc.useGriddata);
-		}
-		// // of it will mess up the policy commands created..
-		// // Create the appropriate set of constraints to apply with.
-		if (RequestConstants.REQ_CREATE.equals(requestType)) {
-			cb.add(factory.getCreateCommand(constraints, children, beforeObject));
-		} else if (RequestConstants.REQ_ADD.equals(requestType)) {
-			cb.add(factory.getAddCommand(constraints, children, beforeObject));
-		} else /* if (RequestConstants.REQ_MOVE_CHILDREN.equals(requestType)) */{
-			cb.add(factory.getMoveChildrenCommand(children, (XamlNode) beforeObject));
-		}
-	}
-
-	public static class GridComponent {
-
-		private XamlNode model;
-		private boolean filler;
-		Object requestType = NO_MODS;
-		int modSpanWidth = NOT_MODIFIED_SPAN;
-		int modSpanHeight = NOT_MODIFIED_SPAN;
-		Rectangle gridDimension;
-		GridComponent prev, next;
-		XamlNode useGriddata;
-
-		public GridComponent(XamlNode model) {
-			this.model = model;
-		}
-
-		public GridComponent(XamlNode model, boolean filler) {
-			this(model, RequestConstants.REQ_CREATE);
-			this.filler = filler;
-		}
-
-		public GridComponent(XamlNode model, Object requestType) {
-			this(model);
-			this.requestType = requestType;
-			setupUseGriddata(model, requestType);
-		}
-
-		/**
-		 * @return the filter
-		 */
-		public boolean isFillerLabel() {
-			return filler;
-		}
-
-		public void setSpanWidth(int spanWidth) {
-			gridDimension.width = modSpanWidth = spanWidth;
-			if (spanWidth == 1)
-				modSpanWidth = SET_TO_DEFAULT_SPAN;
-		}
-
-		public void setSpanHeight(int spanHeight) {
-			gridDimension.height = modSpanHeight = spanHeight;
-			if (spanHeight == 1)
-				modSpanHeight = SET_TO_DEFAULT_SPAN;
-		}
-
-		/**
-		 * Set into this component the moved component passed in. This is used for moved components. It is assumed that this GridComponent is the new GridComponent for the moved component sent in on the request. This "this" cannot be an existing component.
-		 * 
-		 * @param gc
-		 * @since 1.2.0
-		 */
-		void setMovedComponent(GridComponent gc) {
-			// If the moved component was not just added/created, (i.e. it was here before we started), then set to move state
-			// so that it will be picked up as needing to be moved in the stopRequest. Else leave as add/create/move so that
-			// it will be processed correctly for that appropriate state. We should not change an add/create to a move. It won't
-			// work correctly in the container policy.
-			requestType = NO_MODS.equals(gc.requestType) ? RequestConstants.REQ_MOVE : gc.requestType;
-			modSpanWidth = modSpanHeight = SET_TO_DEFAULT_SPAN; // Also cancel the span for the moved child.
-			filler = gc.filler;
-			useGriddata = gc.useGriddata;
-		}
-
-		public void setComponent(XamlNode model, Object requestType) {
-			this.model = model;
-			this.requestType = requestType;
-			modSpanWidth = modSpanHeight = NOT_MODIFIED_SPAN;
-			filler = false;
-			setupUseGriddata(model, requestType);
-		}
-
-		private void setupUseGriddata(XamlNode model, Object requestType) {
-			useGriddata = null;
-			if (RequestConstants.REQ_CREATE.equals(requestType) || RequestConstants.REQ_ADD.equals(requestType)) {
-				XamlAttribute attr = model.getAttribute("layoutData", IConstants.XWT_NAMESPACE);
-				if (attr != null && !attr.getChildNodes().isEmpty()) {
-					useGriddata = attr.getChildNodes().get(0);
-					modSpanHeight = modSpanWidth = SET_TO_DEFAULT_SPAN; // Need to cancel out any current settings
-				}
-			}
-		}
-
-		public void setGriddata(XamlNode griddata) {
-			if (useGriddata == null)
-				useGriddata = griddata;
-		}
-
-		public XamlNode getModel() {
-			return model;
-		}
-
-		public int getSpanWidth() {
-			return gridDimension.width;
-		}
-
-		public int getSpanHeight() {
-			return gridDimension.height;
-		}
-	}
-
-	/**
-	 * @return
-	 */
-	public boolean isRightToLeft() {
-		return getEditPart().isRightToLeft();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutRequest.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutRequest.java
deleted file mode 100755
index 31bbf12..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutRequest.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout.grid;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class GridLayoutRequest {
-	/*
-	 * Class used to identify the type of request relative to GridLayout.
-	 */
-
-	public static final int NO_ADD = -1;
-
-	public static final int INSERT_COLUMN = 0;
-
-	public static final int INSERT_COLUMN_WITHIN_ROW = 1;
-
-	public static final int INSERT_ROW = 2;
-
-	public static final int ADD_COLUMN = 3;
-
-	public static final int ADD_ROW = 4;
-
-	public static final int ADD_ROW_COL = 5;
-
-	public static final int REPLACE_FILLER = 6;
-
-	public static final int ADD_TO_EMPTY_CELL = 7;
-
-	public int type;
-
-	public int column;
-
-	public int row;
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutRowFigure.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutRowFigure.java
deleted file mode 100755
index dfbde4a..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutRowFigure.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout.grid;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.swt.SWTException;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class GridLayoutRowFigure extends Figure {
-	private Rectangle rowBounds;
-
-	public GridLayoutRowFigure(Rectangle rowBounds) {
-		super();
-		this.rowBounds = rowBounds;
-		setBounds(rowBounds.getCopy().expand(8, 6));
-	}
-
-	public void paintFigure(Graphics g) {
-		try {
-			g.setAlpha(150);
-		} catch (SWTException e) {
-			// For OS platforms that don't support alpha
-		}
-		int[] polygonPoints = new int[] { bounds.x + 1, bounds.y + 1, // left upper corner
-				bounds.x + 1, bounds.y + bounds.height - 1, rowBounds.x, rowBounds.y + rowBounds.height, rowBounds.x + rowBounds.width, rowBounds.y + rowBounds.height, bounds.x + bounds.width - 1, bounds.y + bounds.height - 1, bounds.x + bounds.width - 1, bounds.y + 1, rowBounds.x + rowBounds.width, rowBounds.y, rowBounds.x, rowBounds.y, bounds.x + 1, bounds.y + 1 };
-		g.setBackgroundColor(ColorConstants.yellow);
-		g.fillPolygon(polygonPoints);
-		g.setBackgroundColor(ColorConstants.black);
-		g.drawPolygon(polygonPoints);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutSpanFeedbackFigure.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutSpanFeedbackFigure.java
deleted file mode 100755
index 0e0d614..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutSpanFeedbackFigure.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout.grid;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.PositionConstants;
-import org.eclipse.draw2d.geometry.Rectangle;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class GridLayoutSpanFeedbackFigure extends Figure {
-	private final int spanDirection;
-
-	private GridLayoutFeedbackFigure layoutFeedbackFigure;
-
-	public GridLayoutSpanFeedbackFigure(int spanDirection) {
-		super();
-		this.spanDirection = spanDirection;
-		add(layoutFeedbackFigure = new GridLayoutFeedbackFigure());
-	}
-
-	public void setLayoutFigureBounds(Rectangle bounds) {
-		layoutFeedbackFigure.setBounds(bounds);
-		// Now increase this slight for our bounds and the line we want to draw.
-		// The"8" makes the end line 8 pixels out on each side. The "1" is necessary because we want to be over
-		// the next cell border and our bounds are just inside the cell border.
-		bounds = spanDirection == PositionConstants.EAST || spanDirection == PositionConstants.WEST ? bounds.getExpanded(1, 8) : bounds.getExpanded(8, 1);
-		setBounds(bounds);
-	}
-
-	protected void paintClientArea(Graphics graphics) {
-		super.paintClientArea(graphics);
-
-		// Paint span line.
-		graphics.setForegroundColor(ColorConstants.darkGray);
-		Rectangle bounds = getBounds();
-		switch (spanDirection) {
-		case PositionConstants.EAST:
-			int x = bounds.x + bounds.width - 1;
-			graphics.drawLine(x, bounds.y, x, bounds.y + bounds.height - 1);
-			break;
-		case PositionConstants.WEST:
-			x = bounds.x;
-			graphics.drawLine(x, bounds.y, x, bounds.y + bounds.height - 1);
-			break;
-		case PositionConstants.SOUTH:
-			int y = bounds.y + bounds.height - 1;
-			graphics.drawLine(bounds.x, y, bounds.x + bounds.width - 1, y);
-			break;
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
deleted file mode 100755
index 3da64a2..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout.grid;
-
-/*
- *  $RCSfile: GridSpanHandle.java,v $
- *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:48 $ 
- */
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.handles.ResizeHandle;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.GridLayoutEditPolicy;
-
-public class GridSpanHandle extends ResizeHandle {
-	public static int HANDLE_SIZE = DEFAULT_HANDLE_SIZE;
-
-	public GridSpanHandle(GraphicalEditPart owner, int direction, GridLayoutEditPolicy layoutEditPolicy) {
-		super(owner, direction);
-		setLocator(new GridSpanHandleLocator(owner, direction, layoutEditPolicy));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.handles.SquareHandle#getBorderColor()
-	 */
-	protected Color getBorderColor() {
-		return ColorConstants.darkGray;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.handles.SquareHandle#getFillColor()
-	 */
-	protected Color getFillColor() {
-		return ColorConstants.lightGreen;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.draw2d.Figure#paintFigure(org.eclipse.draw2d.Graphics)
-	 */
-	public void paintFigure(Graphics g) {
-		Rectangle r = getBounds();
-		r.shrink(1, 1);
-		try {
-			g.setBackgroundColor(getFillColor());
-			g.fillRectangle(r.x, r.y, r.width, r.height);
-			g.setForegroundColor(getBorderColor());
-			g.drawRectangle(r.x, r.y, r.width, r.height);
-		} finally {
-			// We don't really own rect 'r', so fix it.
-			r.expand(1, 1);
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandleLocator.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandleLocator.java
deleted file mode 100755
index 437a135..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandleLocator.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout.grid;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.handles.RelativeHandleLocator;
-import org.eclipse.xwt.tools.ui.designer.policies.layout.GridLayoutEditPolicy;
-
-public class GridSpanHandleLocator extends RelativeHandleLocator {
-	GridLayoutEditPolicy layoutEditPolicy;
-	GraphicalEditPart editpart;
-	Rectangle fullCellBounds = new Rectangle();
-
-	public GridSpanHandleLocator(GraphicalEditPart editpart, int location, GridLayoutEditPolicy layoutEditPolicy) {
-		super(editpart.getFigure(), location);
-		this.layoutEditPolicy = layoutEditPolicy;
-		this.editpart = editpart;
-	}
-
-	/*
-	 * Need to override in order to provide a bounding box that includes spanning horizontally and vertically.
-	 * 
-	 * @see org.eclipse.draw2d.RelativeLocator#getReferenceBox()
-	 */
-	protected Rectangle getReferenceBox() {
-		return fullCellBounds;
-	}
-
-	/*
-	 * Need to reset it's bounds since we've relocated.
-	 * 
-	 * @see org.eclipse.draw2d.Locator#relocate(org.eclipse.draw2d.IFigure)
-	 */
-	public void relocate(final IFigure target) {
-		// Need to spawn this off in an async runnable to give the gridlayout edit policy
-		// time to update it's grid and cell positions. Then when we get the cell bounds
-		// for the handle, it will be correct.
-		editpart.getViewer().getControl().getDisplay().asyncExec(new Runnable() {
-			public void run() {
-				doRelocate(target);
-			}
-		});
-	}
-
-	private void doRelocate(IFigure target) {
-		fullCellBounds = layoutEditPolicy.getFullCellBounds(editpart).expand(-1, -1);
-		super.relocate(target);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/IGridListener.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/IGridListener.java
deleted file mode 100755
index 4f01c5a..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/IGridListener.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.policies.layout.grid;
-
-import java.util.EventListener;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public interface IGridListener extends EventListener {
-	/**
-	 * Grid Height has changed.
-	 */
-	public void gridHeightChanged(int gridHeight, int oldGridHeight);
-
-	/**
-	 * Grid Width has changed.
-	 */
-	public void gridWidthChanged(int gridWidth, int oldGridWidth);
-
-	/**
-	 * Grid Margin has changed.
-	 */
-	public void gridMarginChanged(int gridMargin, int oldGridMargin);
-
-	/**
-	 * Grid Visibility has changed.
-	 */
-	public void gridVisibilityChanged(boolean isShowing);
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/preference/PreferenceInitializer.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/preference/PreferenceInitializer.java
deleted file mode 100755
index 9355e9b..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/preference/PreferenceInitializer.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.preference;
-
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.xwt.tools.ui.designer.core.DesignerPlugin;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
-
-public class PreferenceInitializer extends AbstractPreferenceInitializer {
-	public void initializeDefaultPreferences() {
-		IPreferenceStore store = DesignerPlugin.getDefault().getPreferenceStore();
-		store.setDefault(Preferences.PROMPT_DURING_CREATION, true);
-		store.setDefault(Preferences.DEFAULT_LAYOUT, LayoutType.GridLayout.value());
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/preference/Preferences.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/preference/Preferences.java
deleted file mode 100755
index 556cba0..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/preference/Preferences.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.preference;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.xwt.tools.ui.designer.core.DesignerPlugin;
-
-public class Preferences {
-	public static final String PROMPT_DURING_CREATION = "Prompt for widget name during creation.";
-	public static final String DEFAULT_LAYOUT = "Default Layout";
-
-	public static IPreferenceStore getPreferenceStore() {
-		IPreferenceStore preferenceStore = DesignerPlugin.getDefault().getPreferenceStore();
-		return preferenceStore;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/preference/XWTPreferencePage.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/preference/XWTPreferencePage.java
deleted file mode 100755
index 67cad65..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/preference/XWTPreferencePage.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.preference;
-
-import org.eclipse.jface.preference.BooleanFieldEditor;
-import org.eclipse.jface.preference.ComboFieldEditor;
-import org.eclipse.jface.preference.FieldEditorPreferencePage;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
-
-public class XWTPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
-
-	public XWTPreferencePage() {
-		super(GRID);
-		this.setPreferenceStore(Preferences.getPreferenceStore());
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
-	 */
-	protected void createFieldEditors() {
-		Composite parent = getFieldEditorParent();
-		addField(new BooleanFieldEditor(Preferences.PROMPT_DURING_CREATION, Preferences.PROMPT_DURING_CREATION, parent));
-
-		String[][] layouts = new String[][] { { LayoutType.NullLayout.value(), LayoutType.NullLayout.value() }, { LayoutType.FillLayout.value(), LayoutType.FillLayout.value() }, { LayoutType.GridLayout.value(), LayoutType.GridLayout.value() }, { LayoutType.RowLayout.value(), LayoutType.RowLayout.value() } };
-		addField(new ComboFieldEditor(Preferences.DEFAULT_LAYOUT, Preferences.DEFAULT_LAYOUT, layouts, parent));
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
-	 */
-	public void init(IWorkbench workbench) {
-
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/PropertyContext.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/PropertyContext.java
deleted file mode 100755
index 31d828b..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/PropertyContext.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.xwt.metadata.IProperty;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CompoundCommand;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.xwt.tools.ui.designer.commands.AddItemsCommand;
-import org.eclipse.xwt.tools.ui.designer.commands.AddNewChildCommand;
-import org.eclipse.xwt.tools.ui.designer.commands.ApplyAttributeSettingCommand;
-import org.eclipse.xwt.tools.ui.designer.commands.ChangeLayoutCommand;
-import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
-import org.eclipse.xwt.tools.ui.designer.core.properties.LabelProviderFactory;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
-import org.eclipse.xwt.tools.ui.designer.parts.ViewerEditPart;
-import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class PropertyContext {
-	// private Object source;
-	private EditPart editPart;
-	private XamlNode node;
-	private EditDomain editDomain;
-	private String category = "Attributes";
-	private PropertyContext parent;
-
-	public PropertyContext(EditPart editPart, PropertyContext parent) {
-		this((XamlNode) null, parent);
-		Assert.isNotNull(editPart);
-		this.editPart = editPart;
-	}
-
-	public PropertyContext(XamlNode node, PropertyContext parent) {
-		this.node = node;
-		this.parent = parent;
-	}
-
-	public Object getComponent() {
-		if (editPart == null) {
-			return null;
-		}
-		if (editPart instanceof WidgetEditPart) {
-			return ((WidgetEditPart) editPart).getWidget();
-		} else if (editPart instanceof ViewerEditPart) {
-			return ((ViewerEditPart) editPart).getViewer();
-		}
-		return null;
-	}
-
-	public Class<?> getType() {
-		IMetaclass metaclass = getMetaclass();
-		if (metaclass != null) {
-			return metaclass.getType();
-		}
-		throw new NullPointerException("Unknown object type");
-	}
-
-	public IMetaclass getMetaclass() {
-		IMetaclass metaclass = null;
-		if (node != null) {
-			metaclass = XWTUtility.getMetaclass(node);
-		}
-		if (metaclass == null) {
-			Object component = getComponent();
-			if (component != null) {
-				metaclass = XWT.getMetaclass(component);
-			}
-		}
-		return metaclass;
-	}
-
-	public XamlNode getNode() {
-		if (node == null && editPart != null) {
-			Object model = editPart.getModel();
-			if (model instanceof XamlNode) {
-				node = (XamlNode) model;
-			}
-		}
-		return node;
-	}
-
-	/**
-	 * @param editDomain
-	 *            the editDomain to set
-	 */
-	public void setEditDomain(EditDomain editDomain) {
-		this.editDomain = editDomain;
-	}
-
-	/**
-	 * @return the editDomain
-	 */
-	public EditDomain getEditDomain() {
-		if (editDomain == null && parent != null) {
-			editDomain = parent.getEditDomain();
-		}
-		return editDomain;
-	}
-
-	/**
-	 * @param category
-	 *            the category to set
-	 */
-	public void setCategory(String category) {
-		this.category = category;
-	}
-
-	/**
-	 * @return the category
-	 */
-	public String getCategory() {
-		return category;
-	}
-
-	/**
-	 * @return the parent
-	 */
-	public PropertyContext getParent() {
-		return parent;
-	}
-
-	public boolean isDirectEditType(Class<?> type) {
-		return type.isPrimitive() || String.class == type || Color.class == type || Font.class == type || Rectangle.class == type || Point.class == type || Image.class == type || Boolean.class == type || Character.class == type || Integer.class == type || Long.class == type || Double.class == type || Float.class == type || Byte.class == type;
-	}
-
-	public void setPropertyValue(Object id, Object value) {
-		execute(createSetValueCommand(id, value));
-	}
-
-	private Command createSetValueCommand(Object id, Object value) {
-		CompoundCommand cmd = new CompoundCommand();
-		IProperty property = (IProperty) id;
-		Class<?> type = property.getType();
-		if (isDirectEditType(type)) {
-			ILabelProvider lp = LabelProviderFactory.getLabelProvider(type);
-			cmd.add(new ApplyAttributeSettingCommand(node, property.getName(), IConstants.XWT_NAMESPACE, lp.getText(value)));
-			// make sure node is added.
-			XamlNode parentNode = parent == null ? null : parent.getNode();
-			XamlNode current = node;
-			XamlNode container = (XamlNode) current.eContainer();
-			if (parentNode != null) {
-				while (container != null && container != parentNode) {
-					current = container;
-					container = (XamlNode) current.eContainer();
-				}
-				if (container == null) {
-					container = parentNode;
-					cmd.add(new AddNewChildCommand(container, current));
-				}
-			}
-		} else if (Layout.class == type && editPart != null) {
-			cmd.add(new ChangeLayoutCommand(editPart, LayoutsHelper.getLayoutType(value)));
-		} else if (type.isArray() && type.getComponentType() == String.class && value.getClass() == String[].class) {
-			cmd.add(new AddItemsCommand((XamlElement) node, (String[]) value));
-		}
-		return cmd.unwrap();
-	}
-
-	private void execute(Command command) {
-		if (command == null || !command.canExecute()) {
-			return;
-		}
-		EditDomain editDomain = getEditDomain();
-		if (editDomain == null || editDomain.getCommandStack() == null) {
-			command.execute();
-		} else {
-			editDomain.getCommandStack().execute(command);
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/StylePropertyHelper.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/StylePropertyHelper.java
deleted file mode 100755
index 49a07bc..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/StylePropertyHelper.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.xwt.converters.StringToInteger;
-import org.eclipse.xwt.jface.ComboBoxCellEditor;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.xwt.tools.ui.designer.commands.SetStyleCommand;
-import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
-import org.eclipse.xwt.tools.ui.designer.core.properties.editors.BooleanCellEditor;
-import org.eclipse.xwt.tools.ui.designer.core.style.SWTStyles;
-import org.eclipse.xwt.tools.ui.designer.core.style.StyleGroup;
-import org.eclipse.xwt.tools.ui.designer.utils.StyleHelper;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class StylePropertyHelper {
-
-	private static final String CATEGORY = "Style";
-	private static final String PREFIX_STAR = "*";
-	// private Widget widget;
-	private XamlNode model;
-	private EditDomain editDomain;
-
-	public StylePropertyHelper(XamlNode model) {
-		this.model = model;
-	}
-
-	public List<IPropertyDescriptor> createPropertyDescriptors() {
-		if (model == null) {
-			return Collections.emptyList();
-		}
-		IMetaclass metaclass = XWTUtility.getMetaclass(model);
-		if (metaclass == null) {
-			return Collections.emptyList();
-		}
-		Class<?> type = metaclass.getType();
-		List<IPropertyDescriptor> descriptors = new ArrayList<IPropertyDescriptor>();
-		StyleGroup[] styleGrps = SWTStyles.getStyles(type);
-		for (StyleGroup styleGroup : styleGrps) {
-			if (!styleGroup.match(type)){
-				continue;
-			}
-			String groupName = styleGroup.getGroupName();
-			String[] styles = styleGroup.getStyles();
-			if ("default".equals(groupName)) {
-				for (String style : styles) {
-					descriptors.add(createDescriptor(style));
-				}
-			} else {
-				descriptors.add(createDescriptor(styleGroup));
-			}
-		}
-		return descriptors;
-	}
-
-	private IPropertyDescriptor createDescriptor(final StyleGroup styleGroup) {
-		PropertyDescriptor descriptor = new PropertyDescriptor(styleGroup, styleGroup.getGroupName()) {
-			public CellEditor createPropertyEditor(Composite parent) {
-				return new ComboBoxCellEditor(parent, styleGroup.getStyles());
-			}
-		};
-		descriptor.setCategory(CATEGORY);
-		return descriptor;
-	}
-
-	private IPropertyDescriptor createDescriptor(String style) {
-		PropertyDescriptor descriptor = new PropertyDescriptor(PREFIX_STAR + style, style.toLowerCase()) {
-			public CellEditor createPropertyEditor(Composite parent) {
-				return new BooleanCellEditor(parent);
-			}
-		};
-		descriptor.setCategory(CATEGORY);
-		return descriptor;
-	}
-
-	public Object getPropertyValue(Object id) {
-		if (id == null) {
-			return null;
-		} else if (id.toString().startsWith(PREFIX_STAR)) {
-			String style = id.toString().substring(1);
-			int intStyle = (Integer) StringToInteger.instance.convert(style);
-			if (StyleHelper.checkStyle(model, intStyle)) {
-				return "true";
-			}
-			return "false";
-		} else if (id instanceof StyleGroup) {
-			StyleGroup styles = (StyleGroup) id;
-			for (String style : styles.getStyles()) {
-				int intStyle = (Integer) StringToInteger.instance.convert(style);
-				if (StyleHelper.checkStyle(model, intStyle)) {
-					return style;
-				}
-			}
-		}
-		return null;
-	}
-
-	public void setPropertyValue(Object id, Object value) {
-		if (id == null || model == null) {
-			return;
-		}
-		SetStyleCommand command = null;
-		if (id.toString().startsWith(PREFIX_STAR)) {
-			String newStyle = id.toString().substring(PREFIX_STAR.length());
-			command = new SetStyleCommand(model, newStyle, Boolean.FALSE.equals(value));
-		} else if (id instanceof StyleGroup) {
-			command = new SetStyleCommand(model, value.toString(), (StyleGroup) id);
-		}
-		if (command != null && command.canExecute()) {
-			if (editDomain != null) {
-				editDomain.getCommandStack().execute(command);
-			} else {
-				command.execute();
-			}
-		}
-	}
-
-	public void setEditDomain(EditDomain editDomain) {
-		this.editDomain = editDomain;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/TypedProperties.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/TypedProperties.java
deleted file mode 100755
index b0faf49..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/TypedProperties.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties;
-
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.List;
-import java.util.ResourceBundle;
-import java.util.StringTokenizer;
-
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.SWT;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class TypedProperties {
-
-	private static List<String> types;
-	private static ResourceBundle TYPED_PROPERTIES = ResourceBundle.getBundle("org.eclipse.xwt.tools.ui.designer.properties.types");
-
-	public static synchronized List<String> getTypes() {
-		if (types == null) {
-			types = new ArrayList<String>();
-			Enumeration<String> enumeration = TYPED_PROPERTIES.getKeys();
-			while (enumeration.hasMoreElements()) {
-				types.add((String) enumeration.nextElement());
-			}
-
-			Collections.sort(types);
-		}
-		return types;
-	}
-
-	public static String[] getProperties(String type) {
-		List<String> result = new ArrayList<String>();
-		String value = TYPED_PROPERTIES.getString(type);
-		StringTokenizer stk = new StringTokenizer(value, ",");
-		while (stk.hasMoreElements()) {
-			result.add(stk.nextToken().trim());
-		}
-		return result.toArray(new String[0]);
-	}
-
-	public static int getValue(String property) {
-		try {
-			Field field = SWT.class.getDeclaredField(property);
-			return field.getInt(null);
-		} catch (Exception e) {
-		}
-		return -1;
-	}
-
-	public static ILabelProvider getLabelProvider(final String type) {
-		return new LabelProvider() {
-			public String getText(Object element) {
-				if (element instanceof Integer) {
-					int intValue = (Integer) element;
-					String[] properties = getProperties(type);
-					for (String prop : properties) {
-						if (intValue == getValue(prop)) {
-							return prop;
-						}
-					}
-				}
-				return super.getText(element);
-			}
-		};
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/XWTPropertyDescriptor.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/XWTPropertyDescriptor.java
deleted file mode 100755
index c67a7fa..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/XWTPropertyDescriptor.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties;
-
-import org.eclipse.xwt.metadata.IProperty;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.xwt.tools.ui.designer.core.properties.LabelProviderFactory;
-import org.eclipse.xwt.tools.ui.designer.core.properties.editors.ArrayCellEditor;
-import org.eclipse.xwt.tools.ui.designer.core.properties.editors.BooleanCellEditor;
-import org.eclipse.xwt.tools.ui.designer.core.properties.editors.CharacterCellEditor;
-import org.eclipse.xwt.tools.ui.designer.core.properties.editors.ColorCellEditor;
-import org.eclipse.xwt.tools.ui.designer.core.properties.editors.FontCellEditor;
-import org.eclipse.xwt.tools.ui.designer.core.properties.editors.ImageCellEditor;
-import org.eclipse.xwt.tools.ui.designer.core.properties.editors.IntegerCellEditor;
-import org.eclipse.xwt.tools.ui.designer.core.properties.editors.PointCellEditor;
-import org.eclipse.xwt.tools.ui.designer.core.properties.editors.RectangleCellEditor;
-import org.eclipse.xwt.tools.ui.designer.properties.editors.LayoutCellEditor;
-import org.eclipse.xwt.tools.ui.designer.properties.editors.ObjectCellEditor;
-import org.eclipse.xwt.tools.ui.designer.properties.editors.TextCellEditor;
-import org.eclipse.xwt.tools.ui.designer.properties.editors.TypedPropertiesCellEditor;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class XWTPropertyDescriptor extends PropertyDescriptor {
-
-	private PropertyContext fContext;
-
-	public XWTPropertyDescriptor(PropertyContext fContext, IProperty id) {
-		super(id, id.getName());
-		this.fContext = fContext;
-		initLabelProvider(id);
-	}
-
-	private void initLabelProvider(IProperty property) {
-		Class<?> type = property.getType();
-		String name = property.getName();
-		ILabelProvider labelProvider = null;
-		if (Integer.class == type || int.class == type) {
-			if (TypedProperties.getTypes().contains(name)) {
-				labelProvider = TypedProperties.getLabelProvider(name);
-			}
-		} else {
-			labelProvider = LabelProviderFactory.getLabelProvider(property.getType());
-		}
-		setLabelProvider(labelProvider);
-	}
-
-	public CellEditor createPropertyEditor(Composite parent) {
-		CellEditor editor = createCellEditor((IProperty) getId(), parent);
-		if (editor != null && getValidator() != null) {
-			editor.setValidator(getValidator());
-		}
-		return editor;
-	}
-
-	public CellEditor createCellEditor(IProperty property, Composite parent) {
-		Class<?> type = property.getType();
-		String name = property.getName();
-		CellEditor editor = null;
-		if (Color.class == type) {
-			editor = new ColorCellEditor(parent);
-		} else if (Font.class == type) {
-			editor = new FontCellEditor(parent);
-		} else if (Boolean.class == type || boolean.class == type) {
-			editor = new BooleanCellEditor(parent);
-		} else if (Image.class == type) {
-			editor = new ImageCellEditor(parent);
-		} else if (Point.class == type) {
-			editor = new PointCellEditor(parent);
-		} else if (Rectangle.class == type) {
-			editor = new RectangleCellEditor(parent);
-		} else if (Layout.class == type) {
-			editor = new LayoutCellEditor(parent);
-		} else if (Integer.class == type || int.class == type) {
-			if (TypedProperties.getTypes().contains(name)) {
-				editor = new TypedPropertiesCellEditor(parent, name);
-			} else {
-				editor = new IntegerCellEditor(parent);
-			}
-		} else if (IContentProvider.class.isAssignableFrom(type) || ILabelProvider.class.isAssignableFrom(type)) {
-			editor = new ObjectCellEditor(parent, type);
-		} else if (String.class == type) {
-			return new TextCellEditor(fContext, property, parent);
-		} else if (Character.class == type || char.class == type) {
-			return new CharacterCellEditor(parent);
-		} else if (String[].class == type) {
-			return new ArrayCellEditor(parent);
-		}
-		return editor;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/XWTPropertySource.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/XWTPropertySource.java
deleted file mode 100755
index 594a630..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/XWTPropertySource.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.javabean.metadata.properties.EventProperty;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.xwt.metadata.IProperty;
-import org.eclipse.gef.ui.parts.TreeViewer;
-import org.eclipse.jdt.core.dom.Modifier;
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.xwt.tools.ui.designer.XWTDesignerPlugin;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTModelUtil;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class XWTPropertySource implements IPropertySource {
-
-	private PropertyContext fContext;
-	private IPropertyDescriptor[] descriptors;
-	private StylePropertyHelper styleHelper;
-
-	public XWTPropertySource(PropertyContext propertyContext) {
-		Assert.isNotNull(propertyContext);
-		fContext = propertyContext;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
-	 */
-	public Object getEditableValue() {
-		return fContext.getComponent();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
-	 */
-	public IPropertyDescriptor[] getPropertyDescriptors() {
-		if (descriptors == null) {
-			descriptors = createPropertyDescriptors();
-		}
-		return descriptors;
-	}
-
-	private IPropertyDescriptor[] createPropertyDescriptors() {
-		List<IPropertyDescriptor> result = new ArrayList<IPropertyDescriptor>();
-		IMetaclass metaclass = fContext.getMetaclass();
-		if (metaclass == null) {
-			return new IPropertyDescriptor[0];// Fixed bug of switch.
-		}
-		IProperty[] properties = metaclass.getProperties();
-		List<String> done = new ArrayList<String>();
-		for (int i = properties.length - 1; i >= 0; i--) {
-			IProperty property = properties[i];
-			if (canEditable(metaclass, property)) {
-				done.add(property.getName());
-				IPropertyDescriptor descriptor = createDescriptor(property);
-				result.add(descriptor);
-			}
-		}
-		if (!done.contains("style")) {
-			Object editableValue = getEditableValue();
-			if (editableValue instanceof Widget) {
-				styleHelper = new StylePropertyHelper(fContext.getNode());
-				styleHelper.setEditDomain(fContext.getEditDomain());
-			}
-			if (styleHelper != null) {
-				result.addAll(styleHelper.createPropertyDescriptors());
-			}
-		}
-		return result.toArray(new IPropertyDescriptor[0]);
-	}
-
-	protected IPropertyDescriptor createDescriptor(IProperty property) {
-		XWTPropertyDescriptor descriptor = new XWTPropertyDescriptor(fContext, property);
-		descriptor.setCategory(fContext.getCategory());
-		return descriptor;
-	}
-
-	protected boolean canEditable(IMetaclass metaclass, IProperty property) {
-		// fail fast
-		if (property instanceof EventProperty) {
-			return false;
-		}
-		Class<?> classType = metaclass.getType();
-		Class<?> propertyType = property.getType();
-		String name = property.getName();
-		if (TableViewer.class.isAssignableFrom(classType) && "table".equals(name) && Table.class.isAssignableFrom(propertyType) || TreeViewer.class.isAssignableFrom(classType) && "tree".equals(name) && Tree.class.isAssignableFrom(propertyType) || ListViewer.class.isAssignableFrom(classType) && "list".equals(name) && org.eclipse.swt.widgets.List.class.isAssignableFrom(propertyType) || ComboViewer.class.isAssignableFrom(classType) && "combo".equals(name) && Combo.class.isAssignableFrom(propertyType)) {
-			return true;
-		}
-		try {
-			String setMethodName = "set" + Character.toUpperCase(name.charAt(0)) + name.substring(1);
-			Method setMethod = classType.getMethod(setMethodName, propertyType);
-			if (setMethod != null && (setMethod.getModifiers() & Modifier.PUBLIC) != 0) {
-				return true;
-			}
-		} catch (Exception e) {
-			XWTDesignerPlugin.logInfo(e);
-		}
-		try {
-			Field field = classType.getField(name);
-			if (field != null && /*field.getType().equals(propertyType) && */(field.getModifiers() & Modifier.PUBLIC) != 0) {
-				return true;
-			}
-		} catch (Exception e) {
-			XWTDesignerPlugin.logInfo(e);
-		}
-		return false;
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
-	 */
-	public Object getPropertyValue(Object id) {
-		Object value = null;
-		if (id instanceof IProperty) {
-			IProperty p = (IProperty) id;
-			try {
-				Class<?> type = p.getType();
-				XamlAttribute attribute = XWTModelUtil.getAdaptableAttribute(fContext.getNode(), p.getName(), IConstants.XWT_NAMESPACE);
-				Object component = fContext.getComponent();
-				if (fContext.isDirectEditType(type)) {
-					if (attribute != null && attribute.getValue() != null) {
-						value = attribute.getValue();
-					} else {
-						value = p.getValue(component);
-					}
-				} else if (type.isArray()) {
-					value = p.getValue(component);
-				} else {
-					boolean isAtrrNew = false;
-					if (attribute == null) {
-						attribute = XamlFactory.eINSTANCE.createAttribute(p.getName(), IConstants.XWT_NAMESPACE);
-						isAtrrNew = true;
-					}
-					Object childSource = p.getValue(component);
-					if (childSource != null) {
-						Class<? extends Object> childSourceType = childSource.getClass();
-						XamlNode child = null;
-						if (Widget.class.isAssignableFrom(childSourceType)) {
-							child = attribute;
-						} else if (!childSourceType.isArray()) {
-							String childName = childSource.getClass().getSimpleName();
-							child = attribute.getChild(childName, IConstants.XWT_NAMESPACE);
-							if (child == null) {
-								child = XamlFactory.eINSTANCE.createElement(childName, IConstants.XWT_NAMESPACE);
-								if (isAtrrNew) {
-									attribute.getChildNodes().add((XamlElement) child);
-								}
-							}
-						}
-						if (child != null && childSource != null) {
-							value = new PropertyContext(child, fContext);
-						}
-					}
-				}
-				if (value == null) {
-					if (Boolean.class == type || boolean.class == type) {
-						value = false;
-					} else if (String.class == type) {
-						value = "";
-					} else if (Integer.class == type || int.class == type) {
-						value = 0;
-					}
-				}
-			} catch (Exception e) {
-				XWTDesignerPlugin.logError(e);
-			}
-		} else if (styleHelper != null) {
-			value = styleHelper.getPropertyValue(id);
-		}
-		return value;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
-	 */
-	public boolean isPropertySet(Object id) {
-		if (id instanceof IProperty) {
-			return fContext.getNode().getAttribute(((IProperty) id).getName()) != null;
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
-	 */
-	public void resetPropertyValue(Object id) {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
-	 */
-	public void setPropertyValue(Object id, Object value) {
-		if (id instanceof IProperty) {
-			fContext.setPropertyValue(id, value);
-		} else if (styleHelper != null) {
-			styleHelper.setPropertyValue(id, value);
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/XWTPropertySourceProvider.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/XWTPropertySourceProvider.java
deleted file mode 100755
index 43bd945..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/XWTPropertySourceProvider.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.gef.EditPart;
-import org.eclipse.ui.progress.UIJob;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.IPropertySourceProvider;
-import org.eclipse.ui.views.properties.PropertySheetPage;
-import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class XWTPropertySourceProvider implements IPropertySourceProvider {
-	private EditDomain editDomain;
-	private Map<Object, IPropertySource> sourceMap = new HashMap<Object, IPropertySource>();
-
-	private Adapter refresher = new AdapterImpl() {
-		public void notifyChanged(Notification msg) {
-			if (msg.isTouch()) {
-				return;
-			}
-			refresh();
-		};
-	};
-	private PropertiesRefreshJob fPropertiesRefreshJob;
-	private PropertySheetPage propertyPage;
-
-	public XWTPropertySourceProvider(EditDomain editDomain, PropertySheetPage propertyPage) {
-		this.editDomain = editDomain;
-		this.propertyPage = propertyPage;
-	}
-
-	private void refresh() {
-		if (propertyPage != null) {
-			getPropertiesRefreshJob().doRefresh();
-		}
-	}
-
-	private PropertiesRefreshJob getPropertiesRefreshJob() {
-		if (fPropertiesRefreshJob == null) {
-			fPropertiesRefreshJob = new PropertiesRefreshJob();
-		}
-		return fPropertiesRefreshJob;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.IPropertySourceProvider#getPropertySource(java.lang.Object)
-	 */
-	public IPropertySource getPropertySource(Object object) {
-		IPropertySource propertySource = sourceMap.get(object);
-		if (propertySource == null) {
-			propertySource = createPropertySource(object);
-			sourceMap.put(object, propertySource);
-		}
-		return propertySource;
-	}
-
-	/**
-	 * @param object
-	 */
-	private IPropertySource createPropertySource(Object object) {
-		PropertyContext context = null;
-		if (object instanceof EditPart) {
-			EditPart editPart = (EditPart) object;
-			context = new PropertyContext(editPart, null);
-			if (editDomain == null) {
-				editDomain = (EditDomain) ((EditPart) object).getViewer().getEditDomain();
-			}
-			context.setEditDomain(editDomain);
-		} else if (object instanceof PropertyContext) {
-			context = (PropertyContext) object;
-		}
-		if (context != null) {
-			final XamlNode model = context.getNode();
-			if (!model.eAdapters().contains(refresher)) {
-				model.eAdapters().add(refresher);
-			}
-			return new XWTPropertySource(context) {
-				public void setPropertyValue(Object id, Object value) {
-					model.eAdapters().remove(refresher);
-					super.setPropertyValue(id, value);
-					model.eAdapters().add(refresher);
-				}
-			};
-		}
-		return null;
-	}
-
-	private class PropertiesRefreshJob extends UIJob {
-		public static final int UPDATE_DELAY = 200;
-
-		public PropertiesRefreshJob() {
-			super("Refresh Properties Page.");
-			setSystem(true);
-			setPriority(Job.SHORT);
-		}
-
-		public void doRefresh() {
-			schedule(UPDATE_DELAY);
-		}
-
-		public IStatus runInUIThread(IProgressMonitor monitor) {
-			if ((propertyPage != null) && (propertyPage.getControl() != null) && !propertyPage.getControl().isDisposed()) {
-				propertyPage.refresh();
-			}
-			return Status.OK_STATUS;
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/AbstractCellEditor.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/AbstractCellEditor.java
deleted file mode 100755
index 4032990..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/AbstractCellEditor.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.editors;
-
-import org.eclipse.jface.viewers.DialogCellEditor;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.xwt.tools.ui.designer.providers.LabelProviderFactory;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public abstract class AbstractCellEditor extends DialogCellEditor {
-
-	public AbstractCellEditor(Composite parent) {
-		super(parent);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.DialogCellEditor#updateContents(java.lang.Object)
-	 */
-	protected void updateContents(Object value) {
-		if (value != null) {
-			ILabelProvider labelProvider = LabelProviderFactory.getLabelProvider(value.getClass());
-			value = labelProvider.getText(value);
-		}
-		super.updateContents(value);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.DialogCellEditor#openDialogBox(org.eclipse.swt.widgets.Control)
-	 */
-	protected Object openDialogBox(Control cellEditorWindow) {
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/ArrayCellEditor.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/ArrayCellEditor.java
deleted file mode 100755
index ea46cad..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/ArrayCellEditor.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.editors;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.TraverseEvent;
-import org.eclipse.swt.events.TraverseListener;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ArrayCellEditor extends AbstractCellEditor {
-
-	public ArrayCellEditor(Composite parent) {
-		super(parent);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.properties.editors.AbstractCellEditor#openDialogBox(org.eclipse.swt.widgets.Control)
-	 */
-	protected Object openDialogBox(Control cellEditorWindow) {
-		Object value = getValue();
-		String[] initValue = null;
-		if (value instanceof String[]) {
-			initValue = (String[]) value;
-		}
-		ArrayDialog dialog = new ArrayDialog(cellEditorWindow.getShell(), initValue);
-		if (dialog.open() == Window.OK) {
-			initValue = dialog.getArray();
-		}
-		return initValue;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.properties.editors.AbstractCellEditor#updateContents(java.lang.Object)
-	 */
-	protected void updateContents(Object value) {
-		super.updateContents("[...]");
-	}
-
-	static class ArrayDialog extends Dialog {
-		private Text text;
-		private String result;
-		private String[] initValue;
-
-		protected ArrayDialog(Shell parentShell, String[] initValue) {
-			super(parentShell);
-			setShellStyle(SWT.SHELL_TRIM);
-			this.initValue = initValue;
-		}
-
-		protected Control createDialogArea(Composite parent) {
-			Composite control = (Composite) super.createDialogArea(parent);
-			control.setLayout(new FillLayout());
-			text = new Text(control, SWT.BORDER | SWT.MULTI | SWT.WRAP);
-			if (initValue != null) {
-				StringBuilder sb = new StringBuilder();
-				for (String item : initValue) {
-					sb.append(item);
-					sb.append("\n");
-				}
-				result = sb.toString();
-			}
-			if (result != null) {
-				text.setText(result);
-			}
-			text.addListener(SWT.Modify, new Listener() {
-				public void handleEvent(Event event) {
-					result = text.getText();
-				}
-			});
-			text.addTraverseListener(new TraverseListener() {
-				public void keyTraversed(TraverseEvent e) {
-					if (e.detail == SWT.TRAVERSE_RETURN) {
-						text.getParent().layout(true, true);
-						getDialogArea().getParent().layout();
-					}
-				}
-			});
-			return control;
-		}
-
-		public String getResult() {
-			return result;
-		}
-
-		public String[] getArray() {
-			if (result == null) {
-				return new String[0];
-			}
-			List<String> resultList = new ArrayList<String>();
-			StringTokenizer stk = new StringTokenizer(result, "\n");
-			while (stk.hasMoreElements()) {
-				resultList.add(stk.nextToken().trim());
-			}
-			return resultList.toArray(new String[0]);
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/BooleanCellEditor.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/BooleanCellEditor.java
deleted file mode 100755
index a32b859..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/BooleanCellEditor.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.editors;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class BooleanCellEditor extends AbstractCellEditor {
-	private Button checkBox;
-
-	public BooleanCellEditor(Composite parent) {
-		super(parent);
-	}
-
-	protected Control createControl(Composite parent) {
-		if (checkBox == null || checkBox.isDisposed()) {
-			checkBox = new Button(parent, SWT.CHECK);
-		}
-		return checkBox;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.CheckboxCellEditor#doSetValue(java.lang.Object)
-	 */
-	protected void doSetValue(Object newValue) {
-		boolean booleanValue = false;
-		if (newValue instanceof Boolean) {
-			booleanValue = ((Boolean) newValue).booleanValue();
-		} else if (newValue instanceof String) {
-			booleanValue = "true".equals(newValue);
-		}
-		checkBox.setSelection(booleanValue);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.CheckboxCellEditor#doGetValue()
-	 */
-	protected Object doGetValue() {
-		return checkBox.getSelection();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.DialogCellEditor#doSetFocus()
-	 */
-	protected void doSetFocus() {
-		checkBox.setFocus();
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/CharacterCellEditor.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/CharacterCellEditor.java
deleted file mode 100755
index 340d48d..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/CharacterCellEditor.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.editors;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class CharacterCellEditor extends org.eclipse.jface.viewers.TextCellEditor {
-
-	public CharacterCellEditor(Composite parent) {
-		super(parent);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.DialogCellEditor#doSetValue(java.lang.Object)
-	 */
-	protected void doSetValue(Object value) {
-		String textValue = value == null ? "" : value.toString();
-		super.doSetValue(textValue);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.TextCellEditor#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createControl(Composite parent) {
-		Text text = (Text) super.createControl(parent);
-		text.setTextLimit(1);
-		return text;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/ColorCellEditor.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/ColorCellEditor.java
deleted file mode 100755
index 5412543..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/ColorCellEditor.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.editors;
-
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.xwt.tools.ui.designer.dialogs.ColorChooser;
-import org.eclipse.xwt.tools.ui.designer.providers.LabelProviderFactory;
-
-public class ColorCellEditor extends AbstractCellEditor {
-
-	/**
-	 * constructor
-	 */
-	public ColorCellEditor(Composite parent) {
-		super(parent);
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.DialogCellEditor#openDialogBox(org.eclipse.swt.widgets.Control)
-	 */
-	protected Object openDialogBox(Control cellEditorWindow) {
-		String color = null;
-		Object value = getValue();
-		if (value instanceof Color) {
-			color = LabelProviderFactory.getLabelProvider(Color.class).getText(value);
-		} else if (value instanceof String) {
-			color = (String) value;
-		}
-		ColorChooser dialog = new ColorChooser(cellEditorWindow.getShell(), color);
-		if (dialog.open() == Window.OK) {
-			color = dialog.getColor();
-		}
-		return color;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/FontCellEditor.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/FontCellEditor.java
deleted file mode 100755
index 83a506b..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/FontCellEditor.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.editors;
-
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.FontDialog;
-
-public class FontCellEditor extends AbstractCellEditor {
-
-	/**
-	 * Creates a new Font dialog cell editor parented under the given control. The cell editor value is null initially, and has no validator.
-	 * 
-	 * @param parent
-	 *            the parent control
-	 */
-	public FontCellEditor(Composite parent) {
-		super(parent);
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.DialogCellEditor#openDialogBox(Control)
-	 */
-	protected Object openDialogBox(Control cellEditorWindow) {
-		FontDialog ftDialog = new FontDialog(cellEditorWindow.getShell());
-		Object value = getValue();
-		if (value != null && value instanceof Font) {
-			Font font = (Font) value;
-			if (font != null) {
-				FontData[] fontDatas = font.getFontData();
-				ftDialog.setFontList(fontDatas);
-			}
-		}
-		FontData fData = ftDialog.open();
-		if (fData != null) {
-			value = new Font(Display.getCurrent(), fData);
-		}
-		return value;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/ImageCellEditor.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/ImageCellEditor.java
deleted file mode 100755
index 49d29f9..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/ImageCellEditor.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.editors;
-
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.xwt.tools.ui.designer.XWTDesignerPlugin;
-import org.eclipse.xwt.tools.ui.designer.dialogs.ImageDialog;
-import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
-
-public class ImageCellEditor extends AbstractCellEditor {
-
-	public ImageCellEditor(Composite parent) {
-		super(parent);
-	}
-
-	protected Object openDialogBox(Control cellEditorWindow) {
-		XWTDesigner designer = XWTDesignerPlugin.getDefault().getActiveDesigner();
-		if (designer != null) {
-			ImageDialog dialog = new ImageDialog(cellEditorWindow.getShell(), designer.getFile());
-			if (Window.OK == dialog.open()) {
-				return dialog.getImagePath();
-			}
-		}
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/IntegerCellEditor.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/IntegerCellEditor.java
deleted file mode 100755
index b8a5ddb..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/IntegerCellEditor.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.editors;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Spinner;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class IntegerCellEditor extends AbstractCellEditor {
-
-	private Spinner spinner;
-
-	/**
-	 * @param parent
-	 */
-	public IntegerCellEditor(Composite parent) {
-		super(parent);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.DialogCellEditor#createContents(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createControl(Composite cell) {
-		if (spinner == null || spinner.isDisposed()) {
-			spinner = new Spinner(cell, SWT.NONE);
-			spinner.setMinimum(-1);
-			spinner.setMaximum(Integer.MAX_VALUE);
-		}
-		return spinner;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.DialogCellEditor#doSetValue(java.lang.Object)
-	 */
-	protected void doSetValue(Object value) {
-		if (spinner == null || spinner.isDisposed()) {
-			return;
-		}
-		int intValue = 0;
-		if (value instanceof Integer) {
-			intValue = ((Integer) value).intValue();
-		} else if (value instanceof String) {
-			try {
-				intValue = Integer.parseInt((String) value);
-			} catch (NumberFormatException e) {
-			}
-		}
-		spinner.setSelection(intValue);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.DialogCellEditor#doGetValue()
-	 */
-	protected Object doGetValue() {
-		if (spinner == null || spinner.isDisposed()) {
-			return 0;
-		}
-		return spinner.getSelection();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.DialogCellEditor#doSetFocus()
-	 */
-	protected void doSetFocus() {
-		if (spinner != null && !spinner.isDisposed()) {
-			spinner.setFocus();
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/LayoutCellEditor.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/LayoutCellEditor.java
deleted file mode 100755
index 0b33ddd..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/LayoutCellEditor.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.editors;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ComboBoxCellEditor;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class LayoutCellEditor extends ComboBoxCellEditor {
-	private static List<String> items = new ArrayList<String>();
-	static {
-		LayoutType[] values = LayoutType.values();
-		for (int i = 0; i < values.length; i++) {
-			String value = values[i].value();
-			if (value != null) {
-				items.add(value);
-			}
-		}
-	}
-
-	public LayoutCellEditor(Composite parent) {
-		super(parent, items.toArray(new String[0]));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.properties.editors.ComboCellEditor#doSetValue(java.lang.Object)
-	 */
-	protected void doSetValue(Object value) {
-		if (!(value instanceof Integer)) {
-			String realValue = LayoutsHelper.getLayoutType(value).value();
-			value = items.indexOf(realValue);
-		}
-		super.doSetValue(value);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ComboBoxCellEditor#doGetValue()
-	 */
-	protected Object doGetValue() {
-		Object value = super.doGetValue();
-		try {
-			if (value instanceof Integer) {
-				value = items.get((Integer) value);
-			}
-		} catch (Exception e) {
-			CCombo control = (CCombo) getControl();
-			if (control != null && !control.isDisposed()) {
-				value = control.getText();
-			}
-		}
-		return value;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/ObjectCellEditor.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/ObjectCellEditor.java
deleted file mode 100755
index 7607e5b..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/ObjectCellEditor.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.editors;
-
-import org.eclipse.jdt.core.search.IJavaSearchConstants;
-import org.eclipse.jdt.internal.ui.JavaUIMessages;
-import org.eclipse.jdt.internal.ui.dialogs.OpenTypeSelectionDialog;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.SelectionDialog;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ObjectCellEditor extends AbstractCellEditor {
-
-	public ObjectCellEditor(Composite parent, Class<?> type) {
-		super(parent);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.properties.editors.AbstractCellEditor#openDialogBox(org.eclipse.swt.widgets.Control)
-	 */
-	protected Object openDialogBox(Control cellEditorWindow) {
-		SelectionDialog dialog = new OpenTypeSelectionDialog(cellEditorWindow.getShell(), false, PlatformUI.getWorkbench().getProgressService(), null, IJavaSearchConstants.TYPE);
-		dialog.setTitle(JavaUIMessages.OpenTypeAction_dialogTitle);
-		dialog.setMessage(JavaUIMessages.OpenTypeAction_dialogMessage);
-		if (Window.OK == dialog.open()) {
-			Object[] result = dialog.getResult();
-		}
-		return super.openDialogBox(cellEditorWindow);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/PointCellEditor.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/PointCellEditor.java
deleted file mode 100755
index 432ac69..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/PointCellEditor.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.editors;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.xwt.XWT;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.xwt.tools.ui.designer.core.dialogs.IntArrayDialog;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class PointCellEditor extends AbstractCellEditor {
-
-	public PointCellEditor(Composite parent) {
-		super(parent);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.DialogCellEditor#openDialogBox(org.eclipse.swt.widgets.Control)
-	 */
-	protected Object openDialogBox(Control cellEditorWindow) {
-		Point point = new Point(0, 0);
-		Object value = getValue();
-		if (value instanceof Point) {
-			point.x = ((Point) value).x;
-			point.y = ((Point) value).y;
-		} else {
-			IConverter c = XWT.findConvertor(value.getClass(), Point.class);
-			if (c != null) {
-				point = (Point) c.convert(value);
-			}
-		}
-		IntArrayDialog dialog = new IntArrayDialog(cellEditorWindow.getShell(), new int[] { point.x, point.y },
-				new String[] { "x:", "y:" });
-		if (dialog.open() == Window.OK) {
-			int[] result = dialog.getResult();
-			point.x = result[0];
-			point.y = result[1];
-		}
-		return point;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/RectangleCellEditor.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/RectangleCellEditor.java
deleted file mode 100755
index fda3040..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/RectangleCellEditor.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.editors;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.xwt.XWT;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.xwt.tools.ui.designer.core.dialogs.IntArrayDialog;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class RectangleCellEditor extends AbstractCellEditor {
-
-	public RectangleCellEditor(Composite parent) {
-		super(parent);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.DialogCellEditor#openDialogBox(org.eclipse.swt.widgets.Control)
-	 */
-	protected Object openDialogBox(Control cellEditorWindow) {
-		Rectangle rect = new Rectangle(0, 0, 0, 0);
-		Object value = getValue();
-		if (value instanceof Rectangle) {
-			Rectangle r = (Rectangle) value;
-			rect.x = r.x;
-			rect.y = r.y;
-			rect.width = r.width;
-			rect.height = r.height;
-		} else {
-			IConverter c = XWT.findConvertor(value.getClass(), Rectangle.class);
-			if (c != null) {
-				rect = (Rectangle) c.convert(value);
-			}
-		}
-		IntArrayDialog dialog = new IntArrayDialog(cellEditorWindow.getShell(), new int[] { rect.x, rect.y, rect.width,
-				rect.height }, new String[] { "x:", "y:", "width:", "height:" });
-		if (dialog.open() == Window.OK) {
-			int[] result = dialog.getResult();
-			rect.x = result[0];
-			rect.y = result[1];
-			rect.width = result[2];
-			rect.height = result[3];
-		}
-		return rect;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/TextCellEditor.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/TextCellEditor.java
deleted file mode 100755
index abced97..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/TextCellEditor.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.editors;
-
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.metadata.IProperty;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.xwt.tools.ui.designer.XWTDesignerPlugin;
-import org.eclipse.xwt.tools.ui.designer.dialogs.ExternalizeTextDialog;
-import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
-import org.eclipse.xwt.tools.ui.designer.properties.PropertyContext;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTModelUtil;
-import org.eclipse.xwt.tools.ui.designer.wizards.ExternalizeStringsWizard;
-import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueEntry;
-import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueModel;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class TextCellEditor extends AbstractCellEditor {
-
-	private boolean canExternalize;
-	private PropertyContext fContext;
-	private IProperty property;
-	private XamlAttribute attribute;
-
-	public TextCellEditor(PropertyContext fContext, IProperty property, Composite parent) {
-		super(parent);
-		this.fContext = fContext;
-		this.property = property;
-	}
-
-	protected Object openDialogBox(Control cellEditorWindow) {
-		XWTDesigner designer = XWTDesignerPlugin.getDefault().getActiveDesigner();
-		attribute = createAttribute(fContext.getNode());
-		String oldValue = (String) getValue();
-		String value = attribute.getValue();
-
-		if (designer != null) {
-			if (value == null) {
-				canExternalize = false;
-			} else {
-				canExternalize = true;
-			}
-			ExternalizeTextDialog dialog = new ExternalizeTextDialog(cellEditorWindow.getShell(), oldValue, canExternalize, property.getName());
-			int returnValue = dialog.open();
-			if (Window.OK == returnValue) {
-				return dialog.getTextValue();
-			} else if (2 == returnValue) {
-				boolean isOK = externalizeText(dialog.getTextValue());
-				if (isOK) {
-					return dialog.getTextValue();
-				} else {
-					return oldValue;
-				}
-			}
-		}
-		return null;
-	}
-
-	protected XamlAttribute createAttribute(XamlNode parent) {
-		String attrName = property.getName();
-		if (attrName == null) {
-			throw new NullPointerException("Attribute name is null");
-		}
-		XamlAttribute attr = XWTModelUtil.getAdaptableAttribute(parent, attrName, IConstants.XWT_NAMESPACE);
-		if (attr == null) {
-			attr = XamlFactory.eINSTANCE.createAttribute(attrName, IConstants.XWT_NAMESPACE);
-		}
-		return attr;
-	}
-
-	private boolean externalizeText(String textValue) {
-		final XWTDesigner designer = XWTDesignerPlugin.getDefault().getActiveDesigner();
-		String oldValue = attribute.getValue();
-		// Externalize the value of the attribute.
-		TextValueModel textValueEntrys = new TextValueModel();
-		textValueEntrys.add(new TextValueEntry(textValue, "" + 0));
-		ExternalizeStringsWizard wizard = new ExternalizeStringsWizard(textValueEntrys, designer);
-		wizard.init(PlatformUI.getWorkbench(), null);
-		WizardDialog dialog = new WizardDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), wizard);
-		int returnValue = dialog.open();
-		if (Window.CANCEL == returnValue) {
-			attribute.setValue(oldValue);
-			return false;
-		}
-		return true;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/TypedPropertiesCellEditor.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/TypedPropertiesCellEditor.java
deleted file mode 100755
index 7b71905..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/TypedPropertiesCellEditor.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.editors;
-
-import org.eclipse.jface.viewers.ComboBoxCellEditor;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.xwt.tools.ui.designer.properties.TypedProperties;
-
-public class TypedPropertiesCellEditor extends ComboBoxCellEditor {
-
-	private String type;
-
-	public TypedPropertiesCellEditor(Composite parent, String type) {
-		super(parent, TypedProperties.getProperties(type));
-		this.type = type;
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.ComboBoxCellEditor#doGetValue()
-	 */
-	protected Object doGetValue() {
-		Object value = super.doGetValue();
-		String[] items = getItems();
-		try {
-			if (value instanceof Integer) {
-				value = items[(Integer) value];
-			}
-		} catch (Exception e) {
-			CCombo control = (CCombo) getControl();
-			if (control != null && !control.isDisposed()) {
-				value = control.getText();
-			}
-		}
-		return value;
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.ComboBoxCellEditor#doSetValue(java.lang.Object)
-	 */
-	protected void doSetValue(Object value) {
-		int intValue = -1;
-		String textValue = null;
-		String[] items = getItems();
-		if (value instanceof Integer) {
-			textValue = TypedProperties.getLabelProvider(type).getText((Integer) value);
-		} else {
-			textValue = value.toString();
-		}
-		if (textValue != null) {
-			for (int i = 0; i < items.length; i++) {
-				if (textValue.equals(items[i])) {
-					intValue = i;
-					break;
-				}
-			}
-			if (intValue == -1) {
-				((CCombo) getControl()).setText(textValue);
-			} else {
-				super.doSetValue(intValue);
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/AbstractAttributeSection.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/AbstractAttributeSection.java
deleted file mode 100755
index 38ac350..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/AbstractAttributeSection.java
+++ /dev/null
@@ -1,389 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.IXWTLoader;
-import org.eclipse.xwt.XWTException;
-import org.eclipse.xwt.XWTLoaderManager;
-import org.eclipse.xwt.core.IBinding;
-import org.eclipse.xwt.core.IDynamicBinding;
-import org.eclipse.xwt.internal.utils.LoggerManager;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.GraphicalViewer;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-import org.eclipse.xwt.tools.ui.designer.commands.AddNewChildCommand;
-import org.eclipse.xwt.tools.ui.designer.commands.ApplyAttributeSettingCommand;
-import org.eclipse.xwt.tools.ui.designer.commands.DeleteCommand;
-import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
-import org.eclipse.xwt.tools.ui.designer.core.util.DisplayUtil;
-import org.eclipse.xwt.tools.ui.designer.loader.ResourceVisitor;
-import org.eclipse.xwt.tools.ui.designer.loader.XWTClassLoaderUtil;
-import org.eclipse.xwt.tools.ui.designer.loader.XWTVisualLoader;
-import org.eclipse.xwt.tools.ui.designer.model.RefreshAdapter;
-import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
-import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTModelUtil;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public abstract class AbstractAttributeSection extends AbstractPropertySection
-		implements Listener {
-
-	private XamlNode parent;
-	private XamlAttribute attribute;
-	private WidgetEditPart editPart;
-	private Label attrLable;
-	static Map<String, Object> EMPTY_MAP = Collections.emptyMap();
-	private boolean needToRefresh = false;
-
-	// private RefreshAdapter refreshAdapter;
-	private Map<XamlNode, RefreshAdapter> refresherMap;
-	protected Display display;
-
-	public boolean isNeedToRefresh() {
-		return needToRefresh;
-	}
-
-	public void setNeedToRefresh(boolean needToRefresh) {
-		this.needToRefresh = needToRefresh;
-	}
-
-	public void createControls(Composite parent,
-			TabbedPropertySheetPage aTabbedPropertySheetPage) {
-		_createControls(parent, aTabbedPropertySheetPage);
-
-		Object layoutData = parent.getLayoutData();
-		if (layoutData != null && layoutData instanceof GridData) {
-			GridData gd = (GridData) layoutData;
-			gd.verticalAlignment = GridData.BEGINNING;
-			gd.grabExcessVerticalSpace = false;
-		}
-
-		GridLayout layout = new GridLayout(3, false);
-		layout.marginHeight = 0;
-		parent.setLayout(layout);
-
-		attrLable = getWidgetFactory().createLabel(parent, "");
-		Control section = createSection(parent);
-		display = section.getDisplay();
-		section.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		createClearButton(parent);
-	}
-
-	protected void _createControls(Composite parent,
-			TabbedPropertySheetPage aTabbedPropertySheetPage) {
-		super.createControls(parent, aTabbedPropertySheetPage);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.ui.views.properties.tabbed.AbstractPropertySection#
-	 * shouldUseExtraSpace()
-	 */
-	public boolean shouldUseExtraSpace() {
-		return true;
-	}
-
-	protected void handleModelChanged(Notification msg) {
-		if (msg.isTouch()) {
-			return;
-		}
-		Object notifier = msg.getNotifier();
-		if (notifier == null) {
-			return;
-		}
-		XamlAttribute attribute = getAttribute();
-		if (notifier == attribute) {
-			setNeedToRefresh(true);
-		} else if (notifier == parent
-				&& (attribute == msg.getOldValue() || attribute == msg
-						.getNewValue())) {
-			setNeedToRefresh(true);
-		}
-		refresh();
-	}
-
-	protected void createClearButton(Composite parent) {
-		ToolBar toolBar = new ToolBar(parent, SWT.FLAT);
-		toolBar.setBackground(parent.getDisplay().getSystemColor(
-				SWT.COLOR_WHITE));
-		ToolItem clearAction = new ToolItem(toolBar, SWT.PUSH);
-		clearAction.setImage(ImageShop.get(ImageShop.IMG_CLEAR_FILTER));
-		clearAction.setToolTipText("Clear setting values.");
-		clearAction.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event event) {
-				clearProperty();
-			}
-		});
-	}
-
-	protected void clearProperty() {
-		executeCommand(new DeleteCommand(getAttribute()));
-	}
-
-	public XamlAttribute getAttribute() {
-		// Maybe attribute had been created.
-		if (attribute != null && attribute.eContainer() == null) {
-			attribute = XWTModelUtil.getAdaptableAttribute(parent,
-					getAttributeName(), IConstants.XWT_NAMESPACE);
-		}
-		if (attribute == null) {
-			attribute = createAttribute(parent);
-		}
-		return attribute;
-	}
-
-	public XamlNode getParent() {
-		return parent;
-	}
-
-	protected void applyEditPart(WidgetEditPart editPart) {
-		if (this.editPart != null && this.editPart == editPart) {
-			return;
-		}
-		setNeedToRefresh(true);
-		this.editPart = editPart;
-		if (attrLable != null && !attrLable.isDisposed()) {
-			String name = getAttributeName();
-			if (name != null && name.length() > 0) {
-				attrLable.setText(Character.toUpperCase(name.charAt(0))
-						+ name.substring(1) + ":");
-				attrLable.getParent().layout();
-			}
-		}
-		parent = editPart.getCastModel();
-		attribute = createAttribute(parent);
-		getRefresher().addListenedAttr(getAttributeName());
-	}
-
-	protected RefreshAdapter getRefresher() {
-		if (refresherMap == null) {
-			refresherMap = new HashMap<XamlNode, RefreshAdapter>();
-		}
-		RefreshAdapter refreshAdapter = refresherMap.get(parent);
-		if (refreshAdapter == null) {
-			refreshAdapter = new RefreshAdapter(parent) {
-				protected void performRefresh(Notification msg) {
-					handleModelChanged(msg);
-				}
-			};
-			refresherMap.put(parent, refreshAdapter);
-		}
-		return refreshAdapter;
-	}
-
-	public void setInput(IWorkbenchPart part, ISelection selection) {
-		super.setInput(part, selection);
-		Object object = ((IStructuredSelection) selection).getFirstElement();
-		if (object instanceof WidgetEditPart) {
-			applyEditPart((WidgetEditPart) object);
-		} else if (object instanceof EditPart) {
-			IWorkbenchPage activePage = part.getSite().getWorkbenchWindow()
-					.getActivePage();
-			IEditorPart activeEditor = activePage.getActiveEditor();
-			GraphicalViewer graphicalViewer = (GraphicalViewer) activeEditor
-					.getAdapter(GraphicalViewer.class);
-			if (graphicalViewer != null) {
-				EditPart editPart = (EditPart) graphicalViewer
-						.getEditPartRegistry().get(
-								((EditPart) object).getModel());
-				if (editPart instanceof WidgetEditPart) {
-					applyEditPart((WidgetEditPart) editPart);
-				}
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.
-	 * Event)
-	 */
-	public void handleEvent(Event event) {
-		XamlAttribute attribute = getAttribute();
-		Command command = null;
-		if (parent.getAttributes().contains(attribute)) {
-			command = new ApplyAttributeSettingCommand(parent, attribute,
-					getNewValue(event));
-		} else {
-			attribute.setValue(getNewValue(event));
-			command = new AddNewChildCommand(parent, attribute);
-		}
-		executeCommand(command);
-	}
-
-	protected void executeCommand(Command command) {
-		if (command == null || !command.canExecute()) {
-			return;
-		}
-		getRefresher().setRefreshRequired(false);
-		EditDomain.getEditDomain(editPart).getCommandStack().execute(command);
-		getRefresher().setRefreshRequired(true);
-	}
-
-	protected String getValue() {
-		XamlAttribute attribute = getAttribute();
-		if (attribute == null || attribute.eContainer() == null) {
-			return null;
-		}
-		return attribute.getValue();
-	}
-
-	protected void setTextValue(Text textWidget) {
-		Object value = getValue();
-		if (value == null) {
-			XamlNode[] children = attribute.getChildNodes().toArray(
-					new XamlNode[0]);
-			IXWTLoader xwtLoader = XWTLoaderManager.getActive();
-			for (XamlNode child : children) {
-				String name = child.getName();
-				String ns = child.getNamespace();
-				if (name.equalsIgnoreCase(IConstants.XAML_X_STATIC)
-						&& ns.equals(IConstants.XWT_X_NAMESPACE)) {
-					value = (String) getStaticValue(child, xwtLoader);
-				} else if (name.equals(IConstants.XAML_BINDING)) {
-					Class<?> type = java.lang.String.class;
-					ResourceVisitor resourceVisitor = new ResourceVisitor(
-							(XWTVisualLoader) xwtLoader);
-					try {
-						value = resourceVisitor.doCreate(child.getParent(),
-								(XamlElement) child, type, EMPTY_MAP);
-						if (value != null) {
-							if (value instanceof IDynamicBinding) {
-								IDynamicBinding binding = (IDynamicBinding) value;
-								binding.setType("text");
-								binding.setControl(editPart.getWidget());
-								binding.setHost(editPart.getModel());
-							}
-							if (!type.isAssignableFrom(value.getClass())
-									|| value instanceof IBinding) {
-								Object orginalValue = value;
-								IConverter converter = ((XWTVisualLoader) xwtLoader)
-										.findConvertor(value.getClass(), type);
-								if (converter != null) {
-									value = converter.convert(value);
-									if (value != null
-											&& orginalValue instanceof IBinding
-											&& !type.isAssignableFrom(value
-													.getClass())) {
-										converter = ((XWTVisualLoader) xwtLoader)
-												.findConvertor(
-														value.getClass(), type);
-										if (converter != null) {
-											value = converter.convert(value);
-										} else {
-											LoggerManager
-													.log(new XWTException(
-															"Convertor "
-																	+ value.getClass()
-																			.getSimpleName()
-																	+ "->"
-																	+ type.getSimpleName()
-																	+ " is not found"));
-										}
-									}
-								}
-							}
-						}
-					} catch (Exception e) {
-						LoggerManager.log(e);
-					}
-				}
-			}
-		}
-		textWidget.setText((value == null ? "" : (String) value));
-	}
-
-	protected Object getStaticValue(XamlNode child, IXWTLoader xwtLoader) {
-		XamlNode[] children = child.getChildNodes().toArray(new XamlNode[0]);
-		if (children.length == 1) {
-			XamlElement element = (XamlElement) children[0];
-			if (element != null) {
-				return XWTClassLoaderUtil.loadStaticMember(
-						((XWTVisualLoader) xwtLoader).getLoadingContext(),
-						element);
-			}
-		}
-		return null;
-	}
-
-	public WidgetEditPart getEditPart() {
-		return editPart;
-	}
-
-	protected XamlAttribute createAttribute(XamlNode parent) {
-		String attrName = getAttributeName();
-		if (attrName == null) {
-			throw new NullPointerException("Attribute name is null");
-		}
-		XamlAttribute attr = XWTModelUtil.getAdaptableAttribute(parent,
-				attrName, IConstants.XWT_NAMESPACE);
-		if (attr == null) {
-			attr = XamlFactory.eINSTANCE.createAttribute(attrName,
-					IConstants.XWT_NAMESPACE);
-		}
-		return attr;
-	}
-
-	public final void refresh() {
-		if (!isNeedToRefresh()) {
-			return;
-		}
-		setNeedToRefresh(false);
-		DisplayUtil.syncExec(display, new Runnable() {
-			public void run() {
-				doRefresh();
-			}
-		});
-	}
-
-	protected abstract void doRefresh();
-
-	protected abstract String getNewValue(Event event);
-
-	protected abstract String getAttributeName();
-
-	protected abstract Control createSection(Composite parent);
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/AdvancedSection.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/AdvancedSection.java
deleted file mode 100755
index f22ffd5..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/AdvancedSection.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.AdvancedPropertySection;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-import org.eclipse.xwt.tools.ui.designer.properties.XWTPropertySourceProvider;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class AdvancedSection extends AdvancedPropertySection {
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.AdvancedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)
-	 */
-	public void createControls(Composite parent, TabbedPropertySheetPage atabbedPropertySheetPage) {
-		super.createControls(parent, atabbedPropertySheetPage);
-		page.setPropertySourceProvider(new XWTPropertySourceProvider(null, page));
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/BackgroundImageSection.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/BackgroundImageSection.java
deleted file mode 100755
index 2ddc30c..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/BackgroundImageSection.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class BackgroundImageSection extends ImageSection {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.ImageSection#getAttributeName()
-	 */
-	protected String getAttributeName() {
-		return "backgroundImage";
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/BackgroundSection.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/BackgroundSection.java
deleted file mode 100755
index 377af30..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/BackgroundSection.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class BackgroundSection extends ColorSection {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.ColorSection#defaultColor()
-	 */
-	protected String defaultColor() {
-		return "SWT.COLOR_WIDGET_BACKGROUND";
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.AbstractAttributeSection#getAttributeName()
-	 */
-	protected String getAttributeName() {
-		return "background";
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/ColorSection.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/ColorSection.java
deleted file mode 100755
index 6ece570..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/ColorSection.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections;
-
-import org.eclipse.xwt.XWTMaps;
-import org.eclipse.xwt.converters.StringToColor;
-import org.eclipse.xwt.utils.NamedColorsUtil;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.xwt.tools.ui.designer.dialogs.ColorChooser;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public abstract class ColorSection extends AbstractAttributeSection {
-
-	private Button colorSelector;
-	private CCombo swtColorsCombo;
-	private CCombo namedColorsCombo;
-	private Point fExtent;
-	private Image fImage;
-
-	private String colorStr;
-	private Color fColor;
-
-	public ColorSection() {
-		colorStr = defaultColor();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
-	 * AbstractAttributeSection#createSection(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createSection(Composite parent) {
-		Composite control = getWidgetFactory().createComposite(parent);
-		control.setLayout(new GridLayout(3, false));
-
-		swtColorsCombo = getWidgetFactory()
-				.createCCombo(control, SWT.READ_ONLY);
-		{
-			GridData gridData = new GridData(GridData.FILL_HORIZONTAL
-					| GridData.GRAB_HORIZONTAL);
-			gridData.widthHint = 100;
-			swtColorsCombo.setLayoutData(gridData);
-		}
-		swtColorsCombo.setItems(XWTMaps.getColorKeys().toArray(new String[0]));
-		swtColorsCombo.addListener(SWT.Selection, this);
-
-		namedColorsCombo = getWidgetFactory().createCCombo(control,
-				SWT.READ_ONLY);
-		{
-			GridData gridData = new GridData(GridData.FILL_HORIZONTAL
-					| GridData.GRAB_HORIZONTAL);
-			gridData.widthHint = 100;
-			namedColorsCombo.setLayoutData(gridData);
-		}
-		namedColorsCombo.setItems(NamedColorsUtil.getColorNames());
-		namedColorsCombo.addListener(SWT.Selection, this);
-
-		colorSelector = getWidgetFactory().createButton(control, "", SWT.NONE);
-		fExtent = computeImageSize(parent);
-		fImage = new Image(parent.getDisplay(), fExtent.x, fExtent.y);
-		GC gc = new GC(fImage);
-		gc.setBackground(colorSelector.getBackground());
-		gc.fillRectangle(0, 0, fExtent.x, fExtent.y);
-		gc.dispose();
-		colorSelector.setImage(fImage);
-		colorSelector.addListener(SWT.Selection, this);
-		colorSelector.addListener(SWT.Dispose, new Listener() {
-			public void handleEvent(Event event) {
-				if (fImage != null) {
-					fImage.dispose();
-				}
-			}
-		});
-		return control;
-	}
-
-	protected void updateColorImage() {
-		if (colorSelector == null || colorSelector.isDisposed()) {
-			return;
-		}
-
-		Display display = colorSelector.getDisplay();
-		if (fImage != null) {
-			fImage.dispose();
-		}
-		fImage = new Image(display, fExtent.x, fExtent.y);
-		GC gc = new GC(fImage);
-		gc.setForeground(display.getSystemColor(SWT.COLOR_BLACK));
-		gc.drawRectangle(0, 2, fExtent.x - 1, fExtent.y - 4);
-		fColor = (Color) StringToColor.instance.convert(colorStr);
-		if (fColor != null && !fColor.isDisposed()) {
-			gc.setBackground(fColor);
-		}
-		gc.fillRectangle(1, 3, fExtent.x - 2, fExtent.y - 5);
-		gc.dispose();
-		colorSelector.setImage(fImage);
-	}
-
-	public void doRefresh() {
-		colorStr = getValue();
-		if (colorStr == null) {
-			colorStr = defaultColor();
-			if (namedColorsCombo != null && !namedColorsCombo.isDisposed()) {
-				namedColorsCombo.setText("");
-			}
-			if (swtColorsCombo != null && !swtColorsCombo.isDisposed()) {
-				swtColorsCombo.setText("");
-			}
-		} else {
-			if (swtColorsCombo != null && !swtColorsCombo.isDisposed()
-					&& swtColorsCombo.indexOf(colorStr) != -1) {
-				swtColorsCombo.removeListener(SWT.Selection, this);
-				swtColorsCombo.select(swtColorsCombo.indexOf(colorStr));
-				swtColorsCombo.addListener(SWT.Selection, this);
-				namedColorsCombo.setText("");
-			}
-			if (namedColorsCombo != null && !namedColorsCombo.isDisposed()
-					&& namedColorsCombo.indexOf(colorStr) != -1) {
-				namedColorsCombo.removeListener(SWT.Selection, this);
-				namedColorsCombo.select(namedColorsCombo.indexOf(colorStr));
-				namedColorsCombo.addListener(SWT.Selection, this);
-				swtColorsCombo.setText("");
-			}
-		}
-		updateColorImage();
-	}
-
-	private Point computeImageSize(Control window) {
-		GC gc = new GC(window);
-		Font f = JFaceResources.getFontRegistry().get(
-				JFaceResources.DIALOG_FONT);
-		gc.setFont(f);
-		int height = gc.getFontMetrics().getHeight();
-		gc.dispose();
-		Point p = new Point(height * 3 - 6, height);
-		return p;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
-	 * AbstractAttributeSection#getNewValue()
-	 */
-	protected String getNewValue(Event event) {
-		if (event.widget == colorSelector) {
-			colorStr = chooseColor();
-		} else if (event.widget == swtColorsCombo) {
-			colorStr = swtColorsCombo.getItem(swtColorsCombo
-					.getSelectionIndex());
-			namedColorsCombo.setText("");
-		} else if (event.widget == namedColorsCombo) {
-			colorStr = namedColorsCombo.getItem(namedColorsCombo
-					.getSelectionIndex());
-			swtColorsCombo.setText("");
-		}
-		updateColorImage();
-		return colorStr;
-	}
-
-	private String chooseColor() {
-		ColorChooser chooser = new ColorChooser(new Shell(), colorStr);
-		if (chooser.open() == Window.OK) {
-			return chooser.getColor();
-		}
-		return colorStr;
-	}
-
-	protected abstract String defaultColor();
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/ConstraintSection.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/ConstraintSection.java
deleted file mode 100755
index e5fc7a6..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/ConstraintSection.java
+++ /dev/null
@@ -1,313 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections;
-
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.xwt.converters.StringToInteger;
-import org.eclipse.xwt.converters.StringToPoint;
-import org.eclipse.xwt.converters.StringToRectangle;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.xwt.metadata.IProperty;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Spinner;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-import org.eclipse.xwt.tools.ui.designer.commands.ChangeConstraintCommand;
-import org.eclipse.xwt.tools.ui.designer.commands.ResizeCommand;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
-import org.eclipse.xwt.tools.ui.designer.model.RefreshAdapter;
-import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
-import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ConstraintSection extends AbstractAttributeSection {
-
-	private Spinner xSpinner;
-	private Spinner heightSpinner;
-	private Spinner widthSpinner;
-	private Spinner ySpinner;
-	private int increment = 10;
-	private Spinner incrementSpinner;
-	private int widthCache = 0, heightCache = 0;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
-	 * AbstractAttributeSection#getAttributeName()
-	 */
-	protected String getAttributeName() {
-		return "";
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
-	 * AbstractAttributeSection
-	 * #createControls(org.eclipse.swt.widgets.Composite,
-	 * org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)
-	 */
-	public void createControls(Composite parent,
-			TabbedPropertySheetPage aTabbedPropertySheetPage) {
-		super.createControls(parent, aTabbedPropertySheetPage);
-		Composite comp = getWidgetFactory().createComposite(parent);
-		comp.setLayout(new GridLayout(2, false));
-		comp
-				.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false,
-						3, 1));
-		getWidgetFactory().createLabel(comp, "Increment of spinner:");
-		incrementSpinner = createSpinner(comp);
-		incrementSpinner.setIncrement(1);
-		incrementSpinner.setMaximum(100);
-		incrementSpinner.setMinimum(1);
-		incrementSpinner.setSelection(increment);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
-	 * AbstractAttributeSection
-	 * #createClearButton(org.eclipse.swt.widgets.Composite)
-	 */
-	protected void createClearButton(Composite parent) {
-		// remove the clear action.
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
-	 * AbstractAttributeSection#createSection(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createSection(Composite parent) {
-		Composite control = getWidgetFactory().createComposite(parent);
-		control.setLayout(new GridLayout(2, false));
-		Group locationGroup = getWidgetFactory().createGroup(control,
-				"Location");
-		locationGroup.setLayout(new GridLayout(4, false));
-		getWidgetFactory().createLabel(locationGroup, "x");
-		xSpinner = createSpinner(locationGroup);
-		getWidgetFactory().createLabel(locationGroup, "y");
-		ySpinner = createSpinner(locationGroup);
-
-		Group sizeGroup = getWidgetFactory().createGroup(control, "Size");
-		sizeGroup.setLayout(new GridLayout(4, false));
-		getWidgetFactory().createLabel(sizeGroup, "width");
-		widthSpinner = createSpinner(sizeGroup);
-		getWidgetFactory().createLabel(sizeGroup, "height");
-		heightSpinner = createSpinner(sizeGroup);
-		return control;
-	}
-
-	private Spinner createSpinner(Composite parent) {
-		Spinner spinner = new Spinner(parent, SWT.BORDER);
-		spinner.setMaximum(Integer.MAX_VALUE);
-		spinner.setMinimum(-1);
-		spinner.addListener(SWT.Selection, this);
-		spinner.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		spinner.setIncrement(increment);
-		return spinner;
-	}
-
-	public void doRefresh() {
-		Rectangle r = getModelValue();
-		if (r == null) {
-			return;
-		}
-		if (xSpinner != null && !xSpinner.isDisposed()
-				&& r.x != xSpinner.getSelection()) {
-			xSpinner.removeListener(SWT.Selection, this);
-			xSpinner.setSelection(r.x);
-			xSpinner.addListener(SWT.Selection, this);
-		}
-		if (ySpinner != null && !ySpinner.isDisposed()
-				&& r.y != ySpinner.getSelection()) {
-			ySpinner.removeListener(SWT.Selection, this);
-			ySpinner.setSelection(r.y);
-			ySpinner.addListener(SWT.Selection, this);
-		}
-		if (widthSpinner != null && !widthSpinner.isDisposed()
-				&& r.width != widthSpinner.getSelection()) {
-			widthSpinner.removeListener(SWT.Selection, this);
-			widthSpinner.setSelection(r.width);
-			widthSpinner.addListener(SWT.Selection, this);
-		}
-		if (heightSpinner != null && !heightSpinner.isDisposed()
-				&& r.height != heightSpinner.getSelection()) {
-			heightSpinner.removeListener(SWT.Selection, this);
-			heightSpinner.setSelection(r.height);
-			heightSpinner.addListener(SWT.Selection, this);
-		}
-		widthCache = r.width;
-		heightCache = r.height;
-		LayoutType containerLayout = getContainerLayout();
-		if (LayoutType.Unknown == containerLayout
-				|| LayoutType.NullLayout == containerLayout) {
-			xSpinner.setEnabled(true);
-			ySpinner.setEnabled(true);
-		} else {
-			xSpinner.setEnabled(false);
-			ySpinner.setEnabled(false);
-		}
-	}
-
-	private Rectangle getModelValue() {
-		Rectangle r = new Rectangle(-1, -1, -1, -1);
-		LayoutType containerLayout = getContainerLayout();
-		XamlNode parent = getParent();
-		if (parent == null) {
-			return r;
-		}
-		if (LayoutType.NullLayout == containerLayout) {
-			XamlAttribute attribute = parent.getAttribute("bounds");
-			if (attribute != null && attribute.getValue() != null) {
-				org.eclipse.swt.graphics.Rectangle rect = (org.eclipse.swt.graphics.Rectangle) StringToRectangle.instance
-						.convert(attribute.getValue());
-				r.setLocation(rect.x, rect.y);
-				r.setSize(rect.width, rect.height);
-			} else {
-				attribute = parent.getAttribute("location");
-				if (attribute != null && attribute.getValue() != null) {
-					Point location = (Point) StringToPoint.instance
-							.convert(attribute.getValue());
-					r.setLocation(location.x, location.y);
-				}
-				attribute = parent.getAttribute("size");
-				if (attribute != null && attribute.getValue() != null) {
-					Point size = (Point) StringToPoint.instance
-							.convert(attribute.getValue());
-					r.setSize(size.x, size.y);
-				}
-			}
-		} else if (LayoutType.Unknown != containerLayout) {
-			WidgetEditPart editPart = getEditPart();
-			Widget widget = editPart.getWidget();
-			IMetaclass metaclass = XWTUtility.getMetaclass(parent);
-			XamlAttribute widthAttr = parent.getAttribute("width");
-			if (widthAttr != null) {
-				r.width = (Integer) StringToInteger.instance.convert(widthAttr
-						.getValue());
-			} else if (metaclass != null) {
-				try {
-					IProperty widthProperty = metaclass.findProperty("width");
-					if (widthProperty != null) {
-						r.width = (Integer) widthProperty.getValue(widget);
-					}
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-			XamlAttribute heightAttr = parent.getAttribute("height");
-			if (heightAttr != null) {
-				r.height = (Integer) StringToInteger.instance
-						.convert(heightAttr.getValue());
-			} else if (metaclass != null) {
-				try {
-					IProperty heightProperty = metaclass.findProperty("height");
-					if (heightProperty != null) {
-						r.height = (Integer) heightProperty.getValue(widget);
-					}
-				} catch (Exception e) {
-					System.out.println();
-				}
-			}
-		}
-		return r;
-	}
-
-	private LayoutType getContainerLayout() {
-		WidgetEditPart editPart = getEditPart();
-		if (editPart == null) {
-			return null;
-		}
-		return LayoutsHelper.getLayoutType(editPart.getParent());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
-	 * AbstractAttributeSection#handleEvent(org.eclipse.swt.widgets.Event)
-	 */
-	public void handleEvent(Event event) {
-		if (event.widget == incrementSpinner) {
-			increment = incrementSpinner.getSelection();
-			xSpinner.setIncrement(increment);
-			ySpinner.setIncrement(increment);
-			widthSpinner.setIncrement(increment);
-			heightSpinner.setIncrement(increment);
-			return;
-		}
-		LayoutType containerLayout = getContainerLayout();
-		if (LayoutType.NullLayout == containerLayout) {
-			Rectangle r = new Rectangle();
-			r.x = xSpinner.getSelection();
-			r.y = ySpinner.getSelection();
-			r.width = widthCache = widthSpinner.getSelection();
-			r.height = heightCache = heightSpinner.getSelection();
-			ChangeConstraintCommand cmd = new ChangeConstraintCommand(
-					getEditPart(), r);
-			executeCommand(cmd);
-		} else if (LayoutType.Unknown != containerLayout) {
-			Dimension growth = new Dimension();
-			if (event.widget == widthSpinner) {
-				growth.width = widthSpinner.getSelection() - widthCache;
-				widthCache = widthSpinner.getSelection();
-			} else if (event.widget == heightSpinner) {
-				growth.height = heightSpinner.getSelection() - heightCache;
-				heightCache = heightSpinner.getSelection();
-			}
-			ResizeCommand cmd = new ResizeCommand(getEditPart(), growth);
-			executeCommand(cmd);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
-	 * AbstractAttributeSection#getRefresher()
-	 */
-	protected RefreshAdapter getRefresher() {
-		RefreshAdapter refresher = super.getRefresher();
-		refresher.addListenedAttr("bounds");
-		refresher.addListenedAttr("size");
-		refresher.addListenedAttr("location");
-		refresher.addListenedAttr("width");
-		refresher.addListenedAttr("height");
-		return refresher;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
-	 * AbstractAttributeSection#getNewValue(org.eclipse.swt.widgets.Event)
-	 */
-	protected String getNewValue(Event event) {
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/DataBindingSection.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/DataBindingSection.java
deleted file mode 100755
index b06e853..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/DataBindingSection.java
+++ /dev/null
@@ -1,241 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CompoundCommand;
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-import org.eclipse.xwt.tools.ui.designer.databinding.BindingContext;
-import org.eclipse.xwt.tools.ui.designer.databinding.BindingInfo;
-import org.eclipse.xwt.tools.ui.designer.databinding.IObservable;
-import org.eclipse.xwt.tools.ui.designer.databinding.Observable;
-import org.eclipse.xwt.tools.ui.designer.databinding.ObservableUtil;
-import org.eclipse.xwt.tools.ui.designer.databinding.Property;
-import org.eclipse.xwt.tools.ui.designer.databinding.ui.ObserveModelGroup;
-import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
-import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
-
-/**
- * @author rui.ban rui.ban@soyatec.com
- */
-public class DataBindingSection extends AbstractPropertySection {
-	private ComboViewer propertiesComboViewer;
-	private WidgetEditPart editPart;
-	private ObserveModelGroup observeModelGroup;
-	private Button bindButton;
-	private List<BindingInfo> createdBindings;
-
-	private BindingContext bindingContext;
-	
-	private boolean needToRefresh = false; 
-
-	public boolean isNeedToRefresh() {
-		return needToRefresh;
-	}
-
-	public void setNeedToRefresh(boolean needToRefresh) {
-		this.needToRefresh = needToRefresh;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.AbstractPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)
-	 */
-	public void createControls(Composite parent, TabbedPropertySheetPage aTabbedPropertySheetPage) {
-		super.createControls(parent, aTabbedPropertySheetPage);
-		Composite composite = getWidgetFactory().createComposite(parent);
-		composite.setLayout(new GridLayout(4, false));
-		getWidgetFactory().createCLabel(composite, "Properties");
-		CCombo propertiesCombo = getWidgetFactory().createCCombo(composite, SWT.READ_ONLY);
-		propertiesComboViewer = new ComboViewer(propertiesCombo);
-		propertiesComboViewer.setContentProvider(new IStructuredContentProvider() {
-			public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			}
-
-			public void dispose() {
-			}
-
-			public Object[] getElements(Object inputElement) {
-				if (inputElement instanceof IObservable) {
-					return ((IObservable) inputElement).getProperties();
-				}
-				return new Object[0];
-			}
-		});
-		propertiesComboViewer.setLabelProvider(new LabelProvider() {
-			public String getText(Object element) {
-				if (element instanceof Property) {
-					return ((Property) element).getName();
-				}
-				return super.getText(element);
-			}
-
-			public Image getImage(Object element) {
-				if (element instanceof Property) {
-					return ImageShop.getImageForType(((Property) element).getType());
-				}
-				return super.getImage(element);
-			}
-		});
-		propertiesComboViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				IStructuredSelection selection = (IStructuredSelection) event.getSelection();
-				bindingContext.setTargetProperty((Property) selection.getFirstElement());
-			}
-		});
-
-		bindButton = getWidgetFactory().createButton(composite, "Bind", SWT.PUSH);
-		bindButton.setEnabled(false);
-		bindButton.setImage(ImageShop.get(ImageShop.IMG_BINDING_ADD));
-		bindButton.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event event) {
-				createBinding();
-			}
-		});
-		createClearAction(composite);
-
-		bindingContext = new BindingContext();
-		bindingContext.addPropertyChangeListener(new PropertyChangeListener() {
-			public void propertyChange(PropertyChangeEvent evt) {
-				bindButton.setEnabled(bindingContext.isValid());
-			}
-		});
-
-		observeModelGroup = new ObserveModelGroup(bindingContext, null);
-		Composite modelsGroup = observeModelGroup.createGroup(composite, SWT.INHERIT_FORCE);
-		GridData layoutData = new GridData(GridData.FILL_HORIZONTAL);
-		layoutData.horizontalSpan = 4;
-		getWidgetFactory().adapt(modelsGroup);
-		modelsGroup.setBackgroundMode(SWT.INHERIT_FORCE);
-		modelsGroup.setLayoutData(layoutData);
-	}
-
-	public void setObserveModel(IObservable observeModel) {
-		if (bindButton != null && !bindButton.isDisposed()) {
-			bindButton.setEnabled(observeModel != null);
-		}
-	}
-
-	protected void createBinding() {
-		if (editPart == null || editPart.getWidget() == null) {
-			return;
-		}
-		BindingInfo bindingInfo = new BindingInfo(bindingContext);
-		Command bound = bindingInfo.bindWithCommand();
-		editPart.getViewer().getEditDomain().getCommandStack().execute(bound);
-		if (createdBindings == null) {
-			createdBindings = new ArrayList<BindingInfo>();
-		}
-		createdBindings.add(bindingInfo);
-	}
-
-	protected void createClearAction(Composite parent) {
-		ToolBar toolBar = new ToolBar(parent, SWT.FLAT);
-		toolBar.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WHITE));
-		ToolItem clearAction = new ToolItem(toolBar, SWT.PUSH);
-		clearAction.setImage(ImageShop.get(ImageShop.IMG_CLEAR_FILTER));
-		clearAction.setToolTipText("Clear setting values.");
-		clearAction.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event event) {
-				deleteBinding();
-			}
-		});
-	}
-
-	protected void deleteBinding() {
-		if (createdBindings == null) {
-			return;
-		}
-		CompoundCommand commands = new CompoundCommand();
-		for (BindingInfo binding : createdBindings) {
-			commands.add(binding.deleteWithCommand());
-		}
-		editPart.getViewer().getEditDomain().getCommandStack().execute(commands);
-	}
-
-	private EditPart getRoot(EditPart child) {
-		if (child == null) {
-			return null;
-		}
-		if (child instanceof WidgetEditPart && ((WidgetEditPart) child).isRoot()) {
-			return child;
-		}
-		return getRoot(child.getParent());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.AbstractPropertySection#refresh()
-	 */
-	public void refresh() {
-		if (editPart == null || propertiesComboViewer == null || observeModelGroup == null) {
-			return;
-		}
-		if (!isNeedToRefresh()) {
-			return;
-		}
-		setNeedToRefresh(false);
-		Widget widget = editPart.getWidget();
-		if (widget == null || widget.isDisposed()) {
-			return;
-		}
-		Observable observable = ObservableUtil.getObservable(widget);
-		bindingContext.setTarget(observable);
-		propertiesComboViewer.setInput(observable);
-
-		EditPart root = getRoot(editPart);
-		observeModelGroup.setRootEditPart(root);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.AbstractPropertySection#setInput(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-	 */
-	public void setInput(IWorkbenchPart part, ISelection selection) {
-		super.setInput(part, selection);
-		Object object = ((IStructuredSelection) selection).getFirstElement();
-		if (object instanceof WidgetEditPart) {
-			this.editPart = (WidgetEditPart) object;
-		}
-		setNeedToRefresh(true);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/FontSection.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/FontSection.java
deleted file mode 100755
index 75cae8a..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/FontSection.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
-import org.eclipse.xwt.tools.ui.designer.utils.FontUtil;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class FontSection extends AbstractAttributeSection {
-
-	private CCombo fontFamilyCombo;
-	private CCombo fontSizeCombo;
-	private Button fontBoldButton;
-	private Button fontItalicButton;
-
-	private String fontName;
-	private int height;
-	private int style;
-
-	public FontSection() {
-		initDefaults();
-	}
-
-	private void initDefaults() {
-		try {
-			Font systemFont = Display.getCurrent().getSystemFont();
-			if (systemFont != null) {
-				FontData fd = systemFont.getFontData()[0];
-				fontName = fd.getName();
-				height = fd.getHeight();
-				style = fd.getStyle();
-			}
-		} catch (Exception e) {
-			System.out.println();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
-	 * AbstractAttributeSection#createSection(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createSection(Composite parent) {
-		Composite fontGroup = getWidgetFactory().createComposite(parent);
-		GridLayout layout = new GridLayout(4, false);
-		layout.marginWidth = 1;
-		fontGroup.setLayout(layout);
-
-		fontFamilyCombo = getWidgetFactory().createCCombo(fontGroup,
-				SWT.READ_ONLY);
-		fontFamilyCombo.setItems(FontUtil.getFontNames());
-		fontFamilyCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		fontFamilyCombo.addListener(SWT.Selection, this);
-
-		fontSizeCombo = getWidgetFactory().createCCombo(fontGroup,
-				SWT.READ_ONLY);
-		fontSizeCombo.setItems(FontUtil.getFontSizes());
-		fontSizeCombo.addListener(SWT.Selection, this);
-
-		fontBoldButton = getWidgetFactory().createButton(fontGroup, "",
-				SWT.TOGGLE);
-		fontBoldButton.setImage(ImageShop.get(ImageShop.IMG_BOLD));
-		fontBoldButton.setToolTipText("font bold");
-		fontBoldButton.addListener(SWT.Selection, this);
-
-		fontItalicButton = getWidgetFactory().createButton(fontGroup, "",
-				SWT.TOGGLE);
-		fontItalicButton.setImage(ImageShop.get(ImageShop.IMG_ITALIC));
-		fontItalicButton.setToolTipText("font italic");
-		fontItalicButton.addListener(SWT.Selection, this);
-
-		return fontGroup;
-	}
-
-	public void doRefresh() {
-		FontData fd = FontUtil.getFontData(getValue());
-		if (fd != null) {
-			fontName = fd.getName();
-			height = fd.getHeight();
-			style = fd.getStyle();
-		} else {
-			initDefaults();
-		}
-		if (fontFamilyCombo != null && !fontFamilyCombo.isDisposed()) {
-			fontFamilyCombo.removeListener(SWT.Selection, this);
-			int index = fontFamilyCombo.indexOf(fontName);
-			fontFamilyCombo.select(index);
-			fontFamilyCombo.addListener(SWT.Selection, this);
-		}
-		if (fontSizeCombo != null && !fontSizeCombo.isDisposed()) {
-			fontSizeCombo.removeListener(SWT.Selection, this);
-			int index = fontSizeCombo.indexOf(Integer.toString(height));
-			fontSizeCombo.select(index);
-			fontSizeCombo.addListener(SWT.Selection, this);
-		}
-		if (fontBoldButton != null && !fontBoldButton.isDisposed()) {
-			fontBoldButton.removeListener(SWT.Selection, this);
-			fontBoldButton.setSelection((SWT.BOLD & style) != 0);
-			fontBoldButton.addListener(SWT.Selection, this);
-		}
-		if (fontItalicButton != null && !fontItalicButton.isDisposed()) {
-			fontItalicButton.removeListener(SWT.Selection, this);
-			fontItalicButton.setSelection((SWT.ITALIC & style) != 0);
-			fontItalicButton.addListener(SWT.Selection, this);
-		}
-		super.refresh();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
-	 * AbstractAttributeSection#getNewValue()
-	 */
-	protected String getNewValue(Event event) {
-		Widget widget = event.widget;
-		if (widget == fontFamilyCombo) {
-			fontName = (fontFamilyCombo.getText());
-		} else if (widget == fontSizeCombo) {
-			String text = fontSizeCombo.getText();
-			try {
-				height = Integer.parseInt(text);
-			} catch (NumberFormatException e) {
-			}
-		} else if (widget == fontBoldButton) {
-			if (fontBoldButton.getSelection()) {
-				style |= SWT.BOLD;
-			} else {
-				style ^= SWT.BOLD;
-			}
-		} else if (widget == fontItalicButton) {
-			if (fontItalicButton.getSelection()) {
-				style |= SWT.ITALIC;
-			} else {
-				style ^= SWT.ITALIC;
-			}
-		}
-		return FontUtil.getFontStr(new FontData(fontName, height, style));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
-	 * AbstractAttributeSection#getAttributeName()
-	 */
-	protected String getAttributeName() {
-		return "font";
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/ForegroundSection.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/ForegroundSection.java
deleted file mode 100755
index b2d93b7..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/ForegroundSection.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ForegroundSection extends ColorSection {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.AbstractAttributeSection#getAttributeName()
-	 */
-	protected String getAttributeName() {
-		return "foreground";
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.ColorSection#defaultColor()
-	 */
-	protected String defaultColor() {
-		return "SWT.COLOR_WIDGET_FOREGROUND";
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/ImageSection.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/ImageSection.java
deleted file mode 100755
index f6b5663..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/ImageSection.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.xwt.tools.ui.designer.dialogs.ImageDialog;
-import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ImageSection extends AbstractAttributeSection {
-
-	private Text imageText;
-	private Button chooseButton;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
-	 * AbstractAttributeSection#createSection(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createSection(Composite parent) {
-		Composite control = getWidgetFactory().createComposite(parent);
-		control.setLayout(new GridLayout(2, false));
-		imageText = getWidgetFactory().createText(control, "",
-				SWT.BORDER | SWT.READ_ONLY);
-		imageText.setBackground(control.getDisplay().getSystemColor(
-				SWT.COLOR_WHITE));
-		imageText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		imageText.addListener(SWT.Modify, this);
-
-		chooseButton = getWidgetFactory().createButton(control, "", SWT.PUSH);
-		chooseButton.setImage(ImageShop.get(ImageShop.IMAGE_OBSERVE_CUSTOM));
-		chooseButton.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event event) {
-				chooseImage();
-			}
-		});
-		return control;
-	}
-
-	public void doRefresh() {
-		if (imageText == null || imageText.isDisposed()) {
-			return;
-		}
-		String value = getValue();
-		imageText.removeListener(SWT.Modify, this);
-		imageText.setText(value == null ? "" : value);
-		imageText.addListener(SWT.Modify, this);
-	}
-
-	protected void chooseImage() {
-		IWorkbenchPart part = getPart();
-		Shell shell = part.getSite().getShell();
-		IFile file = (IFile) part.getAdapter(IFile.class);
-		ImageDialog dialog = new ImageDialog(shell, file);
-		if (dialog.open() == Window.OK) {
-			String imagePath = dialog.getImagePath();
-			if (imagePath != null) {
-				imageText.setText(imagePath);
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
-	 * AbstractAttributeSection#getAttributeName()
-	 */
-	protected String getAttributeName() {
-		return "image";
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
-	 * AbstractAttributeSection#getNewValue(org.eclipse.swt.widgets.Event)
-	 */
-	protected String getNewValue(Event event) {
-		return imageText.getText();
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/LayoutDataSection.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/LayoutDataSection.java
deleted file mode 100755
index 0ddc4bd..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/LayoutDataSection.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutDataType;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
-import org.eclipse.xwt.tools.ui.designer.layouts.pages.AssistancePageFactory;
-import org.eclipse.xwt.tools.ui.designer.layouts.pages.IAssistantPage;
-import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
-import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
-
-/**
- * @author rui.ban rui.ban@soyatec.com
- */
-public class LayoutDataSection extends AbstractAttributeSection {
-
-	private IAssistantPage layoutDataPage;
-	private Composite pageArea;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
-	 * AbstractAttributeSection
-	 * #createControls(org.eclipse.swt.widgets.Composite,
-	 * org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)
-	 */
-	public void createControls(Composite parent,
-			TabbedPropertySheetPage aTabbedPropertySheetPage) {
-		_createControls(parent, aTabbedPropertySheetPage);
-		ExpandableComposite expandable = getWidgetFactory()
-				.createExpandableComposite(
-						parent,
-						ExpandableComposite.TWISTIE
-								| ExpandableComposite.EXPANDED);
-		expandable.setText("Values");
-		expandable.setExpanded(true);
-
-		ToolBar toolBar = new ToolBar(expandable, SWT.FLAT);
-		toolBar.setBackground(parent.getDisplay().getSystemColor(
-				SWT.COLOR_WHITE));
-		ToolItem clearAction = new ToolItem(toolBar, SWT.PUSH);
-		clearAction.setImage(ImageShop.get(ImageShop.IMG_CLEAR_FILTER));
-		clearAction.setToolTipText("Clear setting values.");
-		clearAction.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event event) {
-				clearValues();
-			}
-		});
-		expandable.setTextClient(toolBar);
-
-		pageArea = getWidgetFactory().createComposite(expandable);
-		pageArea.setLayout(new FillLayout());
-		expandable.setClient(pageArea);
-		WidgetEditPart editPart = getEditPart();
-		if (editPart != null) {
-			refresh();
-		}
-	}
-
-	protected void clearValues() {
-		if (layoutDataPage != null) {
-			layoutDataPage.performDefault();
-		}
-	}
-
-	public void doRefresh() {
-		LayoutDataType layoutDataType = LayoutsHelper
-				.getLayoutDataType(getEditPart());
-		if (layoutDataType == LayoutDataType.Unknown) {
-			return;
-		}
-		if (layoutDataPage == null) {
-			layoutDataPage = AssistancePageFactory.createPage(layoutDataType);
-			if (layoutDataPage != null) {
-				layoutDataPage.getControl(pageArea);
-				pageArea.layout();
-			}
-		}
-		if (layoutDataPage != null) {
-			layoutDataPage.setEditPart(getEditPart());
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
-	 * AbstractAttributeSection#createSection(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createSection(Composite parent) {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
-	 * AbstractAttributeSection#getAttributeName()
-	 */
-	protected String getAttributeName() {
-		return "layoutData";
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
-	 * AbstractAttributeSection#getNewValue(org.eclipse.swt.widgets.Event)
-	 */
-	protected String getNewValue(Event event) {
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/LayoutSection.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/LayoutSection.java
deleted file mode 100755
index 1157eb5..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/LayoutSection.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.StackLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-import org.eclipse.xwt.tools.ui.designer.commands.ChangeLayoutCommand;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
-import org.eclipse.xwt.tools.ui.designer.layouts.pages.AssistancePageFactory;
-import org.eclipse.xwt.tools.ui.designer.layouts.pages.IAssistantPage;
-import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
-import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class LayoutSection extends AbstractAttributeSection {
-
-	private CCombo layoutCombo;
-	private Composite layoutPage;
-	private StackLayout pageLayout;
-	private Label noneInfoLable;
-
-	private Map<Object, IAssistantPage> pages = AssistancePageFactory
-			.newPages();
-
-	public void createControls(Composite parent,
-			TabbedPropertySheetPage aTabbedPropertySheetPage) {
-		_createControls(parent, aTabbedPropertySheetPage);
-		Composite composite = getWidgetFactory().createComposite(parent);
-		composite.setLayout(new GridLayout(3, false));
-
-		getWidgetFactory().createLabel(composite, "Type:");
-
-		Control control = createSection(composite);
-		control.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		createClearButton(composite);
-
-		ExpandableComposite expandable = getWidgetFactory()
-				.createExpandableComposite(
-						composite,
-						ExpandableComposite.TWISTIE
-								| ExpandableComposite.EXPANDED);
-		expandable.setText("Values");
-		expandable.setExpanded(true);
-		GridData layoutData = new GridData(GridData.FILL_BOTH);
-		layoutData.horizontalSpan = 3;
-		expandable.setLayoutData(layoutData);
-		ToolBar toolBar = new ToolBar(expandable, SWT.FLAT);
-		toolBar.setBackground(parent.getDisplay().getSystemColor(
-				SWT.COLOR_WHITE));
-		ToolItem clearAction = new ToolItem(toolBar, SWT.PUSH);
-		clearAction.setImage(ImageShop.get(ImageShop.IMG_CLEAR_FILTER));
-		clearAction.setToolTipText("Clear setting values.");
-		clearAction.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event event) {
-				clearValues();
-			}
-		});
-		expandable.setTextClient(toolBar);
-
-		layoutPage = getWidgetFactory().createComposite(expandable);
-		expandable.setClient(layoutPage);
-		pageLayout = new StackLayout();
-		layoutPage.setLayout(pageLayout);
-		noneInfoLable = getWidgetFactory().createLabel(layoutPage,
-				"There is no layout values.", SWT.TOP | SWT.CENTER);
-	}
-
-	protected void clearValues() {
-		Object data = pageLayout.topControl.getData();
-		if (data instanceof IAssistantPage) {
-			((IAssistantPage) data).performDefault();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
-	 * AbstractAttributeSection#createSection(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createSection(Composite parent) {
-		layoutCombo = getWidgetFactory().createCCombo(parent, SWT.READ_ONLY);
-		List<LayoutType> layoutsList = LayoutsHelper.layoutsList;
-		String[] items = new String[layoutsList.size()];
-		for (int i = 0; i < layoutsList.size(); i++) {
-			items[i] = layoutsList.get(i).value();
-		}
-		layoutCombo.setItems(items);
-		layoutCombo.addListener(SWT.Selection, this);
-
-		return layoutCombo;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
-	 * AbstractAttributeSection#getAttributeName()
-	 */
-	protected String getAttributeName() {
-		return "layout";
-	}
-
-	public void doRefresh() {
-		if (layoutCombo == null || layoutCombo.isDisposed()) {
-			return;
-		}
-		LayoutType layoutType = LayoutsHelper.getLayoutType(getEditPart());
-		int index = layoutCombo.indexOf(layoutType.value());
-		if (index >= 0 && index != layoutCombo.getSelectionIndex()) {
-			layoutCombo.removeListener(SWT.Selection, this);
-			layoutCombo.select(index);
-			refreshLayoutPage(layoutType);
-			layoutCombo.addListener(SWT.Selection, this);
-		}
-	}
-
-	private void refreshLayoutPage(LayoutType layoutType) {
-		if (layoutPage == null || layoutPage.isDisposed()) {
-			return;
-		}
-		WidgetEditPart editPart = getEditPart();
-		IAssistantPage page = pages.get(layoutType);
-		if (page != null) {
-			pageLayout.topControl = page.getControl(layoutPage);
-			page.setEditPart(editPart);
-		} else {
-			pageLayout.topControl = noneInfoLable;
-		}
-		layoutPage.layout();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
-	 * AbstractAttributeSection#handleEvent(org.eclipse.swt.widgets.Event)
-	 */
-	public void handleEvent(Event event) {
-		WidgetEditPart editPart = getEditPart();
-		if (editPart != null && event.widget == layoutCombo) {
-			String item = layoutCombo.getItem(layoutCombo.getSelectionIndex());
-			LayoutType layoutType = LayoutsHelper.getLayoutType(item);
-			executeCommand(new ChangeLayoutCommand(editPart, layoutType));
-			refreshLayoutPage(layoutType);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
-	 * AbstractAttributeSection#getNewValue(org.eclipse.swt.widgets.Event)
-	 */
-	protected String getNewValue(Event event) {
-		return null;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/TextSection.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/TextSection.java
deleted file mode 100755
index efa88cb..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/TextSection.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-import org.eclipse.xwt.tools.ui.designer.core.util.DisplayUtil;
-import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
-import org.eclipse.xwt.tools.ui.designer.wizards.ExternalizeStringsWizard;
-import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueEntry;
-import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueModel;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class TextSection extends AbstractAttributeSection {
-	protected TabbedPropertySheetPage tabbedPropertySheetPage;
-	private Text textWidget;
-	// private Button externalizeButton;
-	private Runnable delayRunnable;
-
-	protected void _createControls(Composite parent,
-			TabbedPropertySheetPage aTabbedPropertySheetPage) {
-		super._createControls(parent, aTabbedPropertySheetPage);
-		this.tabbedPropertySheetPage = aTabbedPropertySheetPage;
-	}
-
-	protected Control createSection(Composite parent) {
-		Composite control = getWidgetFactory().createComposite(parent);
-		control.setLayout(new GridLayout(2, false));
-
-		textWidget = getWidgetFactory().createText(control, "", SWT.BORDER);
-		textWidget.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		textWidget.addListener(SWT.Modify, this);
-
-		// externalizeButton = getWidgetFactory().createButton(control, "",
-		// SWT.PUSH);
-		// externalizeButton.setImage(ImageShop
-		// .get(ImageShop.IMAGE_OBSERVE_CUSTOM));
-		// externalizeButton.setToolTipText("Externalize String");
-		// externalizeButton.addListener(SWT.Selection, new Listener() {
-		// public void handleEvent(Event event) {
-		// externalizeText();
-		// }
-		// });
-		return control;
-	}
-
-	private void externalizeText() {
-		if (getValue() != null) {
-			XWTDesigner designer = (XWTDesigner) getPart();
-			TextValueModel textValueEntrys = new TextValueModel();
-			textValueEntrys
-					.add(new TextValueEntry(textWidget.getText(), "" + 0));
-			ExternalizeStringsWizard wizard = new ExternalizeStringsWizard(
-					textValueEntrys, designer);
-			wizard.init(PlatformUI.getWorkbench(), null);
-			WizardDialog dialog = new WizardDialog(PlatformUI.getWorkbench()
-					.getActiveWorkbenchWindow().getShell(), wizard);
-			dialog.open();
-		} else {
-			String dialogMessage = "No Strings to externalize found.";
-			String[] dialogButtonLabels = { "Ok" };
-			MessageDialog messageDialog = new MessageDialog(PlatformUI
-					.getWorkbench().getActiveWorkbenchWindow().getShell(),
-					"Externalize Strings", null, dialogMessage,
-					MessageDialog.INFORMATION, dialogButtonLabels, 0);
-			messageDialog.open();
-		}
-
-	}
-
-	public void doRefresh() {
-		if (textWidget == null || textWidget.isDisposed()
-				|| textWidget.isFocusControl() || getAttribute() == null) {
-			return;
-		}
-		textWidget.removeListener(SWT.Modify, this);
-		setTextValue(textWidget);
-		textWidget.addListener(SWT.Modify, this);
-		refreshTitleBar();
-	}
-
-	protected String getNewValue(Event event) {
-		if (textWidget == null || textWidget.isDisposed()) {
-			return null;
-		}
-		return textWidget.getText();
-	}
-
-	protected String getAttributeName() {
-		return "text";
-	}
-
-	private void refreshTitleBar() {
-		DisplayUtil.asyncExec(new Runnable() {
-			public void run() {
-				if (tabbedPropertySheetPage != null) {
-					tabbedPropertySheetPage.labelProviderChanged(null);
-				}
-			}
-		});
-	}
-
-	// public void handleEvent(final Event event) {
-	// if (System.currentTimeMillis() - lastEvent < 1000 && !delayed) {
-	// Runnable delayRunnable = new Runnable() {
-	// public void run() {
-	// TextSection.super.handleEvent(event);
-	// refreshTitleBar();
-	// delayed = false;
-	// lastEvent = -1;
-	// }
-	// };
-	// DisplayUtil.timerExec(display, 1000, delayRunnable);
-	// delayed = true;
-	// }
-	// lastEvent = System.currentTimeMillis();
-	// }
-	public void handleEvent(final Event event) {
-		if (!delayed) {
-			if (delayRunnable == null) {
-				delayRunnable = new Runnable() {
-					public void run() {
-						long current = System.currentTimeMillis();
-						if (current - lastEvent < 300) {
-							lastEvent = current;
-							DisplayUtil.timerExec(display, 300, delayRunnable);
-							return;
-						}
-						TextSection.super.handleEvent(event);
-						refreshTitleBar();
-						delayed = false;
-						lastEvent = -1;
-					}
-				};
-			}
-			DisplayUtil.timerExec(display, 300, delayRunnable);
-			delayed = true;
-		}
-		lastEvent = System.currentTimeMillis();
-	}
-
-	private long lastEvent = -1;
-	private boolean delayed = false;
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/BasicFilter.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/BasicFilter.java
deleted file mode 100755
index beee03a..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/BasicFilter.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.filters;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.jface.viewers.IFilter;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public class BasicFilter implements IFilter {
-
-	public boolean select(Object toTest) {
-		XamlNode node = null;
-		if (toTest instanceof XamlNode) {
-			node = (XamlNode) toTest;
-		} else if (toTest instanceof EditPart) {
-			Object model = ((EditPart) toTest).getModel();
-			return select(model);
-		}
-		return select(node);
-	}
-
-	protected boolean select(XamlNode node) {
-		return node != null;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/ConstraintSectionFilter.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/ConstraintSectionFilter.java
deleted file mode 100755
index bf941a3..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/ConstraintSectionFilter.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.filters;
-
-import org.eclipse.jface.viewers.IFilter;
-
-/**
- * @author rui.ban rui.ban@soyatec.com
- */
-public class ConstraintSectionFilter implements IFilter {
-
-	public boolean select(Object toTest) {
-		// if (toTest instanceof WidgetEditPart) {
-		// LayoutType layoutType = LayoutsHelper.getLayoutType(((WidgetEditPart) toTest).getParent());
-		// if (layoutType == LayoutType.NullLayout) {
-		// return true;
-		// }
-		// }
-		return true;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/LayoutDataSectionFilter.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/LayoutDataSectionFilter.java
deleted file mode 100755
index e2109eb..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/LayoutDataSectionFilter.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.filters;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.jface.viewers.IFilter;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutDataType;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
-import org.eclipse.xwt.tools.ui.designer.layouts.pages.AssistancePageFactory;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class LayoutDataSectionFilter implements IFilter {
-	public boolean select(Object toTest) {
-		if (toTest instanceof EditPart) {
-			LayoutDataType layoutDataType = LayoutsHelper
-					.getLayoutDataType((EditPart) toTest);
-			return AssistancePageFactory.isSupport(layoutDataType);
-		}
-		return false;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/LayoutSectionFilter.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/LayoutSectionFilter.java
deleted file mode 100755
index 3290fc5..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/LayoutSectionFilter.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.filters;
-
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
-import org.eclipse.xwt.tools.ui.designer.layouts.pages.AssistancePageFactory;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author rui.ban rui.ban@soyatec.com
- */
-public class LayoutSectionFilter extends BasicFilter {
-
-	public boolean select(XamlNode toTest) {
-		if (!super.select(toTest)) {
-			return false;
-		}
-		LayoutType layoutType = LayoutsHelper.getLayoutType(toTest);
-		return AssistancePageFactory.isSupport(layoutType);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/TextSectionFilter.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/TextSectionFilter.java
deleted file mode 100755
index 2d32417..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/TextSectionFilter.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.filters;
-
-import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author rui.ban rui.ban@soyatec.com
- */
-public class TextSectionFilter extends BasicFilter {
-
-	protected boolean select(XamlNode node) {
-		if (super.select(node)){
-			return XWTUtility.getProperty(node, "text") != null;
-		}
-		return super.select(node);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/types.properties b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/types.properties
deleted file mode 100755
index 450a2b4..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/types.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     Soyatec - initial API and implementation
-###############################################################################
-alignment=LEFT,RIGHT,CENTER,UP,DOWN
-backgroundMode=INHERIT_NONE,INHERIT_DEFAULT,INHERIT_FORCE
-type=HORIZONTAL,VERTICAL
-orientation=LEFT_TO_RIGHT,RIGHT_TO_LEFT
-verticalAlignment=BEGINNING,CENTER,END,FILL
-horizontalAlignment=BEGINNING,CENTER,END,FILL
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/ColorLabelProvider.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/ColorLabelProvider.java
deleted file mode 100755
index f9d08a6..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/ColorLabelProvider.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.providers;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.xwt.tools.ui.designer.core.util.StringUtil;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ColorLabelProvider extends LabelProvider {
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
-	 */
-	public String getText(Object element) {
-		if (element instanceof Color) {
-			Color color = (Color) element;
-			return StringUtil.format(new Object[] { color.getRed(), color.getGreen(), color.getBlue() });
-		}
-		return super.getText(element);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/ExternalizeStringContentProvider.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/ExternalizeStringContentProvider.java
deleted file mode 100755
index 1171c7d..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/ExternalizeStringContentProvider.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.providers;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueModel;
-
-/**
- * @author xrchen (xiaoru.chen@soyatec.com)
- */
-public class ExternalizeStringContentProvider implements IStructuredContentProvider {
-
-	private TextValueModel model;
-
-	public Object[] getElements(Object inputElement) {
-		this.model = (TextValueModel) inputElement;
-		return model.elements();
-	}
-
-	public void dispose() {
-
-	}
-
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/ExternalizeStringLabelProvider.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/ExternalizeStringLabelProvider.java
deleted file mode 100755
index 6a32a64..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/ExternalizeStringLabelProvider.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.providers;
-
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueEntry;
-
-/**
- * @author xrchen (xiaoru.chen@soyatec.com)
- */
-public class ExternalizeStringLabelProvider implements ITableLabelProvider {
-
-	// the prefix of the key
-	String prefix = "";
-
-	public ExternalizeStringLabelProvider(String prefix) {
-		this.prefix = prefix;
-	}
-
-	public Image getColumnImage(Object element, int columnIndex) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	public String getColumnText(Object element, int columnIndex) {
-		TextValueEntry textValueEntry = (TextValueEntry) element;
-		switch (columnIndex) {
-		case 1:
-			return textValueEntry.getValue();
-		case 2:
-			return prefix + textValueEntry.getKey();
-		}
-		return "";
-	}
-
-	public void addListener(ILabelProviderListener listener) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void dispose() {
-		// TODO Auto-generated method stub
-
-	}
-
-	public boolean isLabelProperty(Object element, String property) {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	public void removeListener(ILabelProviderListener listener) {
-		// TODO Auto-generated method stub
-
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/FontLabelProvider.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/FontLabelProvider.java
deleted file mode 100755
index fd7d4ab..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/FontLabelProvider.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.providers;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.xwt.tools.ui.designer.utils.FontUtil;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class FontLabelProvider extends LabelProvider {
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
-	 */
-	public String getText(Object element) {
-		if (element instanceof Font) {
-			FontData[] fontData = ((Font) element).getFontData();
-			if (fontData != null && fontData.length > 0) {
-				return FontUtil.getFontStr(fontData[0]);
-			}
-		}
-		return super.getText(element);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/LabelProviderFactory.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/LabelProviderFactory.java
deleted file mode 100755
index f1df725..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/LabelProviderFactory.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.providers;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Layout;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class LabelProviderFactory {
-	private static Map<Class<?>, ILabelProvider> cache = new HashMap<Class<?>, ILabelProvider>();
-
-	public static ILabelProvider getLabelProvider(Class<?> type) {
-		ILabelProvider labelProvider = cache.get(type);
-		if (labelProvider == null) {
-			labelProvider = createLabelProvider(type);
-			cache.put(type, labelProvider);
-		}
-		return labelProvider;
-	}
-
-	private static ILabelProvider createLabelProvider(Class<?> type) {
-		if (Color.class == type) {
-			return new ColorLabelProvider();
-		} else if (Font.class == type) {
-			return new FontLabelProvider();
-		} else if (Rectangle.class == type) {
-			return new RectangleLabelProvider();
-		} else if (Point.class == type) {
-			return new PointLabelProvider();
-		} else if (Layout.class == type) {
-			return new LayoutLabelProvider();
-		}
-		return new LabelProvider() {
-			public String getText(Object element) {
-				if (element.getClass().isArray()) {
-					return "[...]";
-				}
-				return super.getText(element);
-			}
-		};
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/LayoutLabelProvider.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/LayoutLabelProvider.java
deleted file mode 100755
index 6347f3d..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/LayoutLabelProvider.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.providers;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class LayoutLabelProvider extends LabelProvider {
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
-	 */
-	public String getText(Object element) {
-		if (element instanceof Layout) {
-			return LayoutsHelper.getLayoutType(element).value();
-		}
-		return super.getText(element);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/PointLabelProvider.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/PointLabelProvider.java
deleted file mode 100755
index df9b459..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/PointLabelProvider.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.providers;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.xwt.tools.ui.designer.core.util.StringUtil;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class PointLabelProvider extends LabelProvider {
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
-	 */
-	public String getText(Object element) {
-		if (element instanceof Point) {
-			Point p = (Point) element;
-			return StringUtil.format(p);
-		}
-		return super.getText(element);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/RectangleLabelProvider.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/RectangleLabelProvider.java
deleted file mode 100755
index 62153fb..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/RectangleLabelProvider.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.providers;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.xwt.tools.ui.designer.core.util.StringUtil;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class RectangleLabelProvider extends LabelProvider {
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
-	 */
-	public String getText(Object element) {
-		if (element instanceof Rectangle) {
-			Rectangle r = (Rectangle) element;
-			return StringUtil.format(r);
-		}
-		return super.getText(element);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/resources/ImageShop.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/resources/ImageShop.java
deleted file mode 100755
index 4aa4bb0..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/resources/ImageShop.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.resources;
-
-import java.util.Collection;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.xwt.tools.ui.designer.XWTDesignerPlugin;
-import org.eclipse.xwt.tools.ui.designer.utils.StyleHelper;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ImageShop {
-	private static final String ICON_PATH = "/icons/full";
-	public static final String OBJ16 = ICON_PATH + "/obj16/";
-	public static final String TOOLS = ICON_PATH + "/tools/";
-
-	public static final String IMG_PREVIEW = TOOLS + "preview.png";
-	public static final String IMG_LAYOUT_ASSIST = TOOLS + "layout_assist.gif";
-	public static final String IMG_RESOURCES = TOOLS + "resources.gif";
-	public static final String IMG_ELEMENT = TOOLS + "element.png";
-	public static final String IMG_EVENT = TOOLS + "event.png";
-	public static final String IMG_LISTENER_METHOD = TOOLS + "listener_method.gif";
-
-	public static final String IMG_BINDING = TOOLS + "binding/binding.png";
-	public static final String IMG_BINDING_ADD = TOOLS + "binding/binding_add.png";
-	public static final String IMG_BINDING_DELETE = TOOLS + "binding/binding_delete.png";
-	public static final String IMG_BINDING_REMOVE_ALL = TOOLS + "binding/binding_remove_all.png";
-	public static final String IMG_BINDING_EDIT = TOOLS + "binding/binding_edit.png";
-
-	public static final String IMG_ARRAY = TOOLS + "array.png";
-	public static final String IMG_BOOLEAN = TOOLS + "boolean.png";
-	public static final String IMG_COLLECTION = TOOLS + "collection.png";
-	public static final String IMG_COLOR = TOOLS + "color.png";
-	public static final String IMG_FONT = TOOLS + "font.png";
-	public static final String IMG_IMAGE = TOOLS + "image.png";
-	public static final String IMG_NUMBER = TOOLS + "number.png";
-	public static final String IMG_OBJECT = TOOLS + "object.png";
-	public static final String IMG_STRING = TOOLS + "string.png";
-	public static final String IMG_VIEWER_COLLECTION = TOOLS + "viewer_collection.png";
-	public static final String IMG_VIEWER = TOOLS + "viewer.png";
-	public static final String IMG_CLEAR_FILTER = TOOLS + "clear_filter.gif";
-	public static final String IMG_CLEAR = TOOLS + "clear.gif";
-
-	public static final String IMG_BOLD = TOOLS + "bold.gif";
-	public static final String IMG_ITALIC = TOOLS + "italic.gif";
-	public static final String IMG_IMAGE_EDIT = TOOLS + "image_edit.png";
-	public static final String IMG_BACKGROUND_IMAGE_EDIT = TOOLS + "background_image_edit.png";
-	public static final String IMG_BACKGROUND_FILL_COLOR = TOOLS + "background_fill_color.png";
-	public static final String IMG_FOREGROUND_FILL_COLOR = TOOLS + "foreground_fill_color.png";
-	public static final String IMG_FONT_DELETE = TOOLS + "font_delete.png";
-
-	public static final String IMAGE_OBSERVE_BEANS = TOOLS + "observe/beans.gif";
-	public static final String IMAGE_OBSERVE_EMF = TOOLS + "observe/emf.png";
-	public static final String IMAGE_OBSERVE_OBJECT = TOOLS + "observe/object.gif";
-	public static final String IMAGE_OBSERVE_WIDGETS = TOOLS + "observe/widgets.gif";
-	public static final String IMAGE_OBSERVE_XML = TOOLS + "observe/xml.gif";
-	public static final String IMAGE_OBSERVE_CUSTOM = TOOLS + "observe/custom.png";
-	public static final String IMG_XWT = TOOLS + "xaml.png";
-
-	public static final String IMG_GOTO_DEFINITION = TOOLS + "goto_definition.gif";
-
-	public static Image get(String imageFilePath) {
-		ImageDescriptor imageDesc = getImageDescriptor(imageFilePath);
-		if (imageDesc != null) {
-			return imageDesc.createImage();
-		}
-		return getImageRegistry().get(imageFilePath);
-	}
-
-	public static Image getObj16(String name) {
-		return get(OBJ16 + name + "_obj.gif");
-	}
-
-	public static Image getImageForWidget(Widget widget) {
-		if (widget == null || widget.isDisposed()) {
-			return null;
-		}
-		String name = widget.getClass().getSimpleName().toLowerCase();
-		if ("combo".equals(name)) {
-			name = "choice";
-		} else if ("coolitem".endsWith(name)) {
-			name = "coolbar";
-		} else if ("toolitem".equals(name)) {
-			if (StyleHelper.checkStyle(widget, SWT.PUSH)) {
-				name = "toolitempush";
-			} else if (StyleHelper.checkStyle(widget, SWT.DROP_DOWN)) {
-				name = "toolitemdrop";
-			} else if (StyleHelper.checkStyle(widget, SWT.CHECK)) {
-				name = "toolitemcheck";
-			} else if (StyleHelper.checkStyle(widget, SWT.RADIO)) {
-				name = "toolitemradio";
-			} else if (StyleHelper.checkStyle(widget, SWT.SEPARATOR)) {
-				name = "toolitemseparator";
-			}
-		} else if ("label".equals(name) && StyleHelper.checkStyle(widget, SWT.SEPARATOR)) {
-			name = "separator";
-		} else if ("list".equals(name)) {
-			name = "listbox";
-		} else if ("button".equals(name)) {
-			if (StyleHelper.checkStyle(widget, SWT.RADIO)) {
-				name = "radiobutton";
-			} else if (StyleHelper.checkStyle(widget, SWT.CHECK)) {
-				name = "checkbox";
-			} else if (StyleHelper.checkStyle(widget, SWT.TOGGLE)) {
-				name = "toggledbutton";
-			} else if (StyleHelper.checkStyle(widget, SWT.ARROW)) {
-				name = "radiobutton";
-			}
-		}
-		Image obj16 = getObj16(name);
-		if (obj16 == null) {
-			obj16 = getObj16("composite");
-		}
-		return obj16;
-	}
-
-	public static Image getImageForType(Class<?> type) {
-		if (type == null) {
-			return null;
-		}
-		if (type.isArray()) {
-			return ImageShop.get(ImageShop.IMG_ARRAY);
-		} else if (type == String.class) {
-			return ImageShop.get(ImageShop.IMG_STRING);
-		} else if (type == Color.class) {
-			return ImageShop.get(ImageShop.IMG_COLOR);
-		} else if (type == Font.class) {
-			return ImageShop.get(ImageShop.IMG_FONT);
-		} else if (type == int.class || type == Integer.class || float.class == type || Float.class == type) {
-			return ImageShop.get(ImageShop.IMG_NUMBER);
-		} else if (type == boolean.class || type == Boolean.class) {
-			return ImageShop.get(ImageShop.IMG_BOOLEAN);
-		} else if (Collection.class.isAssignableFrom(type)) {
-			return ImageShop.get(ImageShop.IMG_COLLECTION);
-		} else {
-			String name = type.getSimpleName().toLowerCase();
-			Image image = ImageShop.getObj16(name);
-			if (image != null) {
-				return image;
-			}
-		}
-		return ImageShop.get(ImageShop.IMG_OBJECT);
-	}
-
-	public static ImageRegistry getImageRegistry() {
-		return JFaceResources.getImageRegistry();
-	}
-
-	public static ImageDescriptor getImageDescriptor(String imageFilePath) {
-		return AbstractUIPlugin.imageDescriptorFromPlugin(XWTDesignerPlugin.PLUGIN_ID, imageFilePath);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/resources/Messages.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/resources/Messages.java
deleted file mode 100755
index 0204fe6..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/resources/Messages.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.resources;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class Messages extends NLS {
-
-	private static final String BUNDLE_NAME = "org.eclipse.xwt.tools.ui.designer.resources.messages"; //$NON-NLS-1$
-
-	public static String FillLayoutAssistantPage_MARGIN_HEIGHT_LABEL;
-	public static String FillLayoutAssistantPage_SPACING_GROUP_LABEL;
-	public static String FillLayoutAssistantPage_MARGIN_WIDTH_LABEL;
-	public static String FillLayoutAssistantPage_ORIENTATION_LABEL;
-	public static String FillLayoutAssistantPage_SPACING_LABEL;
-
-	public static String GridDataAssistantPage_ALIGNS_GROUP_LABEL;
-	public static String GridDataAssistantPage_COLUMN_SPAN_LABEL;
-	public static String GridDataAssistantPage_EXCLUDE_LABEL;
-	public static String GridDataAssistantPage_H_GRAB_LABEL;
-	public static String GridDataAssistantPage_H_INDENT_LABEL;
-	public static String GridDataAssistantPage_HEIGHT_LABEL;
-	public static String GridDataAssistantPage_HINTS_GROUP_NAME;
-	public static String GridDataAssistantPage_HORIZONTAL_GROUP_LABEL;
-	public static String GridDataAssistantPage_INDENTS_GROUP_LABEL;
-	public static String GridDataAssistantPage_MIN_HEIGHT_LABEL;
-	public static String GridDataAssistantPage_MIN_WIDTH_LABEL;
-	public static String GridDataAssistantPage_MINIMUM_GROUP_LABEL;
-	public static String GridDataAssistantPage_ROW_SPAN_LABEL;
-	public static String GridDataAssistantPage_SPANNING_GROUP_LABEL;
-	public static String GridDataAssistantPage_V_ALIGN_LABEL;
-	public static String GridDataAssistantPage_V_GRAB_LABEL;
-	public static String GridDataAssistantPage_V_INDENT_LABEL;
-	public static String GridDataAssistantPage_VERTICAL_GROUP_LABEL;
-	public static String GridDataAssistantPage_WIDTH_LABEL;
-
-	public static String GridLayoutAssistantPage_EQUAL_WIDTH_LABEL;
-	public static String GridLayoutAssistantPage_H_SPACING_LABEL;
-	public static String GridLayoutAssistantPage_M_BOTTOM_LABEL;
-	public static String GridLayoutAssistantPage_M_HEIGHT_LABEL;
-	public static String GridLayoutAssistantPage_M_LEFT_LABEL;
-	public static String GridLayoutAssistantPage_M_RIGHT_LABEL;
-	public static String GridLayoutAssistantPage_M_TOP_LABEL;
-	public static String GridLayoutAssistantPage_M_WIDTH_LABEL;
-	public static String GridLayoutAssistantPage_MARGINS_GROUP_LABEL;
-	public static String GridLayoutAssistantPage_MARGINS_SIDES_GROUP_LABEL;
-	public static String GridLayoutAssistantPage_NUM_COLUMNS_LABEL;
-	public static String GridLayoutAssistantPage_SPACING_GROUP_LABEL;
-	public static String GridLayoutAssistantPage_V_SPACING_LABEL;
-
-	public static String RowDataAssistantPage_EXCLUDE_LABEL;
-	public static String RowDataAssistantPage_HEIGHT_LABEL;
-	public static String RowDataAssistantPage_SIZE_GROUP_LABEL;
-	public static String RowDataAssistantPage_WIDTH_LABEL;
-
-	public static String RowLayoutAssistantPage_FILL_LABEL;
-	public static String RowLayoutAssistantPage_JUSTIFY_LABEL;
-	public static String RowLayoutAssistantPage_MARGIN_BOTTOM_LABEL;
-	public static String RowLayoutAssistantPage_MARGIN_HEIGHT_LABEL;
-	public static String RowLayoutAssistantPage_MARGIN_LEFT_LABEL;
-	public static String RowLayoutAssistantPage_MARGIN_RIGHT_LABEL;
-	public static String RowLayoutAssistantPage_MARGIN_SPACING_LABEL;
-	public static String RowLayoutAssistantPage_MARGIN_TOP_LABEL;
-	public static String RowLayoutAssistantPage_MARGIN_WIDTH_LABEL;
-	public static String RowLayoutAssistantPage_MARGINS_GROUP_LABEL;
-	public static String RowLayoutAssistantPage_OPTIONS_NAME;
-	public static String RowLayoutAssistantPage_ORIENTATION_LABEL;
-	public static String RowLayoutAssistantPage_PACK_LABEL;
-	public static String RowLayoutAssistantPage_SPACING_LABEL;
-	public static String RowLayoutAssistantPage_WRAP_LABEL;
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	private Messages() {
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/resources/messages.properties b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/resources/messages.properties
deleted file mode 100755
index f0743e2..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/resources/messages.properties
+++ /dev/null
@@ -1,70 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     Soyatec - initial API and implementation
-###############################################################################
-FillLayoutAssistantPage_MARGIN_HEIGHT_LABEL=Margin Height:
-FillLayoutAssistantPage_SPACING_GROUP_LABEL=Margin && Spacing
-FillLayoutAssistantPage_MARGIN_WIDTH_LABEL=Margin Width:
-FillLayoutAssistantPage_ORIENTATION_LABEL=Orientation
-FillLayoutAssistantPage_SPACING_LABEL=Spacing:
-
-GridDataAssistantPage_ALIGNS_GROUP_LABEL=Alignment
-GridDataAssistantPage_COLUMN_SPAN_LABEL=Column Span:
-GridDataAssistantPage_EXCLUDE_LABEL=Exclude
-GridDataAssistantPage_H_GRAB_LABEL=Grab
-GridDataAssistantPage_H_INDENT_LABEL=horizontal Indent:
-GridDataAssistantPage_HEIGHT_LABEL=Height
-GridDataAssistantPage_HINTS_GROUP_NAME=Hints
-GridDataAssistantPage_HORIZONTAL_GROUP_LABEL=Horizontal
-GridDataAssistantPage_INDENTS_GROUP_LABEL=Indents
-GridDataAssistantPage_MIN_HEIGHT_LABEL=Height:
-GridDataAssistantPage_MIN_WIDTH_LABEL=Width:
-GridDataAssistantPage_MINIMUM_GROUP_LABEL=Minimum
-GridDataAssistantPage_ROW_SPAN_LABEL=Row Span:
-GridDataAssistantPage_SPANNING_GROUP_LABEL=Spanning
-GridDataAssistantPage_V_ALIGN_LABEL=verticalAlignment
-GridDataAssistantPage_V_GRAB_LABEL=Grab
-GridDataAssistantPage_V_INDENT_LABEL=vertical Indent:
-GridDataAssistantPage_VERTICAL_GROUP_LABEL=Vertical
-GridDataAssistantPage_WIDTH_LABEL=Width
-
-GridLayoutAssistantPage_EQUAL_WIDTH_LABEL=Make columns equal width
-GridLayoutAssistantPage_H_SPACING_LABEL=Horizontal Spacing:
-GridLayoutAssistantPage_M_BOTTOM_LABEL=Bottom:
-GridLayoutAssistantPage_M_HEIGHT_LABEL=Margin Height:
-GridLayoutAssistantPage_M_LEFT_LABEL=Left:
-GridLayoutAssistantPage_M_RIGHT_LABEL=Right:
-GridLayoutAssistantPage_M_TOP_LABEL=Top:
-GridLayoutAssistantPage_M_WIDTH_LABEL=Margin Width:
-GridLayoutAssistantPage_MARGINS_GROUP_LABEL=Margins
-GridLayoutAssistantPage_MARGINS_SIDES_GROUP_LABEL=Margins for sides
-GridLayoutAssistantPage_NUM_COLUMNS_LABEL=Number of columns
-GridLayoutAssistantPage_SPACING_GROUP_LABEL=Spacing
-GridLayoutAssistantPage_V_SPACING_LABEL=Vertical Spacing:
-
-RowDataAssistantPage_EXCLUDE_LABEL=Exclude
-RowDataAssistantPage_HEIGHT_LABEL=Height:
-RowDataAssistantPage_SIZE_GROUP_LABEL=Size
-RowDataAssistantPage_WIDTH_LABEL=Width:
-
-RowLayoutAssistantPage_FILL_LABEL=fill
-RowLayoutAssistantPage_JUSTIFY_LABEL=justify
-RowLayoutAssistantPage_MARGIN_BOTTOM_LABEL=Margin Bottom:
-RowLayoutAssistantPage_MARGIN_HEIGHT_LABEL=Margin Height:
-RowLayoutAssistantPage_MARGIN_LEFT_LABEL=Margin Left:
-RowLayoutAssistantPage_MARGIN_RIGHT_LABEL=Margin Right:
-RowLayoutAssistantPage_MARGIN_SPACING_LABEL=Margin && Spacing
-RowLayoutAssistantPage_MARGIN_TOP_LABEL=Margin Top:
-RowLayoutAssistantPage_MARGIN_WIDTH_LABEL=Margin Width:
-RowLayoutAssistantPage_MARGINS_GROUP_LABEL=Margins for sides
-RowLayoutAssistantPage_OPTIONS_NAME=Options
-RowLayoutAssistantPage_ORIENTATION_LABEL=Orientation
-RowLayoutAssistantPage_PACK_LABEL=pack
-RowLayoutAssistantPage_SPACING_LABEL=Spacing:
-RowLayoutAssistantPage_WRAP_LABEL=wrap
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/swt/CoolBarHelper.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/swt/CoolBarHelper.java
deleted file mode 100755
index f58b57a..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/swt/CoolBarHelper.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.swt;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.layout.RowData;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.CoolBar;
-import org.eclipse.swt.widgets.CoolItem;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.ToolBar;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class CoolBarHelper {
-
-	public static void layout(CoolBar coolBar) {
-		if (coolBar == null || coolBar.isDisposed()) {
-			return;
-		}
-		Composite composit = coolBar.getParent();
-		Layout layout = composit.getLayout();
-		if (layout instanceof RowLayout) {
-			if (coolBar.getLayoutData() == null) {
-				coolBar.setLayoutData(new RowData(5, 5));
-			}
-		}
-		if (layout instanceof GridLayout) {
-			if (coolBar.getLayoutData() == null || coolBar.getItems().length == 0) {
-				GridData g = new GridData(GridData.FILL_BOTH);
-				coolBar.setLayoutData(g);
-			}
-		}
-		CoolItem[] coolItems = coolBar.getItems();
-		for (int i = 0; i < coolItems.length; i++) {
-			CoolItem coolItem = coolItems[i];
-			// Point oldSize = coolItem.getSize();
-			Control aControl = coolItem.getControl();
-			if (aControl != null) {
-				Point size = aControl.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-				Point coolSize = coolItem.computeSize(size.x, size.y);
-				if (aControl.getSize().x == 0 || aControl.getSize().y == 0) {
-					aControl.setSize(coolSize);
-				}
-				if (aControl instanceof ToolBar) {
-					ToolBar bar = (ToolBar) aControl;
-					if (bar.getItemCount() > 0) {
-						if ((coolBar.getStyle() & SWT.VERTICAL) != 0) {
-							size.y = bar.getItem(0).getBounds().height;
-						} else {
-							size.x = bar.getItem(0).getWidth();
-						}
-					}
-				}
-				coolItem.setMinimumSize(size);
-				// coolItem.setPreferredSize(coolSize);
-				coolItem.setSize(aControl.getSize());
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/CoolBarInitSize.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/CoolBarInitSize.java
deleted file mode 100755
index cc1fefe..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/CoolBarInitSize.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.utils;
-
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
-import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
-import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-import org.eclipse.xwt.tools.ui.xaml.tools.XamlCreateTools;
-
-public class CoolBarInitSize {
-	private XamlElement element;
-
-	public CoolBarInitSize(XamlElement element) {
-		// TODO Auto-generated constructor stub
-		this.element = element;
-	}
-
-	public void AddLayoutAttribute(CompositeEditPart editPart) {
-		LayoutType type = LayoutsHelper.getLayoutType(editPart);
-		switch (type) {
-		case GridLayout:
-			GridLayoutAttribute();
-			break;
-		case FillLayout:
-			return;
-		case RowLayout:
-			RowLayoutLayoutAttribute();
-			break;
-		case StackLayout:
-		case FormLayout:
-		default:
-			NullLayoutAttribute();
-
-		}
-	}
-
-	public void GridLayoutAttribute() {
-		// layoutData
-		if (element.getAttribute("layoutData") == null) {
-			XamlAttribute attr = XamlFactory.eINSTANCE.createXamlAttribute();
-			attr.setName("layoutData");
-			XamlElement newelement = XamlFactory.eINSTANCE.createXamlElement();
-			newelement.setName("GridData");
-			XamlCreateTools.addAttribute(newelement, "widthHint", IConstants.XWT_NAMESPACE, "50");
-			XamlCreateTools.addAttribute(newelement, "heightHint", IConstants.XWT_NAMESPACE, "25");
-			attr.getChildNodes().add(element);
-			element.getAttributes().add(attr);
-		}
-
-	}
-
-	public void RowLayoutLayoutAttribute() {
-		if (element.getAttribute("layoutData") == null) {
-			XamlAttribute attr = XamlFactory.eINSTANCE.createXamlAttribute();
-			attr.setName("layoutData");
-			XamlElement newelement = XamlFactory.eINSTANCE.createXamlElement();
-			newelement.setName("RowData");
-			XamlCreateTools.addAttribute(newelement, "width", IConstants.XWT_NAMESPACE, "50");
-			XamlCreateTools.addAttribute(newelement, "height", IConstants.XWT_NAMESPACE, "25");
-			attr.getChildNodes().add(newelement);
-			element.getAttributes().add(attr);
-		}
-	}
-
-	public void NullLayoutAttribute() {
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/FigureUtil.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/FigureUtil.java
deleted file mode 100755
index b226c49..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/FigureUtil.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.utils;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.GraphicalEditPart;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class FigureUtil {
-
-	public static Point translateToRelative(EditPart parent, Point point) {
-		if (!(parent instanceof GraphicalEditPart)) {
-			return point.getCopy();
-		}
-		IFigure parentFigure = ((GraphicalEditPart) parent).getFigure();
-		parentFigure.translateToRelative(point);
-		Rectangle bounds = parentFigure.getBounds();
-		int x = point.x - bounds.x;
-		int y = point.y - bounds.y;
-		return new Point(x, y);
-	}
-
-	public static Rectangle translateToRelative(EditPart parent,
-			Rectangle rectangle) {
-		Point location = rectangle.getLocation().getCopy();
-		Point p = translateToRelative(parent, location);
-		return new Rectangle(p, rectangle.getSize());
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/FontUtil.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/FontUtil.java
deleted file mode 100755
index 4152fce..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/FontUtil.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.utils;
-
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.xwt.converters.StringToFont;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.xwt.tools.ui.designer.core.util.StringUtil;
-
-/**
- * @author rui.ban rui.ban@soyatec.com
- */
-public class FontUtil {
-	private static String[] FONT_NAMES;
-
-	public static final String COMMA = ",";
-
-	/**
-	 * array of font sizes
-	 */
-	protected static final String[] FONT_SIZES = { "8", "9", "10", "11", "12", "14", "16", "18", "20", "22", "24", "26", "28", "36", "48", "72" };
-
-	/**
-	 * @return String array of font names as String objects for the default display.
-	 */
-	static public String[] getFontNames() {
-		if (FONT_NAMES != null)
-			return FONT_NAMES;
-
-		// add the names into a set to get a set of unique names
-		Set<String> stringItems = new HashSet<String>();
-		FontData[] fontDatas = getDisplay().getFontList(null, true);
-		for (int i = 0; i < fontDatas.length; i++) {
-			if (fontDatas[i].getName() != null) {
-				stringItems.add(fontDatas[i].getName());
-			}
-		}
-
-		// add strings into the array
-		String strings[] = new String[stringItems.size()];
-		int i = 0;
-		for (String item : stringItems) {
-			strings[i++] = item;
-		}
-
-		// sort the array
-		Arrays.sort(strings);
-
-		return FONT_NAMES = strings;
-	}
-
-	/**
-	 * @return - array of fomt sizes
-	 */
-	public static final String[] getFontSizes() {
-		return FONT_SIZES;
-	}
-
-	public static Display getDisplay() {
-		Display display = Display.getCurrent();
-		if (display == null && PlatformUI.isWorkbenchRunning()) {
-			display = PlatformUI.getWorkbench().getDisplay();
-		}
-		return display != null ? display : Display.getDefault();
-	}
-
-	public static FontData getFontData(String str) {
-		if (str == null) {
-			return null;
-		}
-		Font font = (Font) StringToFont.instance.convert(str);
-		if (font != null) {
-			return font.getFontData()[0];
-		}
-		FontData fontData = null;
-		if (str != null) {
-			fontData = new FontData();
-			String[] data = str.split(COMMA);
-			if (data.length >= 3) {
-				fontData.setName(data[0]);
-				fontData.setHeight(Integer.valueOf(data[1]));
-				fontData.setStyle(getIntFontStyle(data[2]));
-			}
-		}
-		return fontData;
-	}
-
-	public static int getIntFontStyle(String style) {
-		if ("NORMAL".equals(style)) {
-			return 0;
-		} else if ("BOLD".equals(style)) {
-			return 1;
-		} else if ("ITALIC".equals(style)) {
-			return 2;
-		} else if ("BOLD|ITALIC".equals(style)) {
-			return 3;
-		}
-		return 4;
-	}
-
-	public static String getStringFontStyle(int style) {
-		if (style == 0) {
-			return "NORMAL";
-		} else if (style == 1) {
-			return "BOLD";
-		} else if (style == 2) {
-			return "ITALIC";
-		} else if (style == 3) {
-			return "BOLD|ITALIC";
-		}
-		return "";
-	}
-
-	public static String getFontStr(FontData fontData) {
-		return StringUtil.format(new Object[] { fontData.getName(), fontData.getHeight(), getStringFontStyle(fontData.getStyle()) });
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/OffsetUtil.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/OffsetUtil.java
deleted file mode 100755
index d3ebeb9..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/OffsetUtil.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.utils;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.xwt.tools.ui.designer.core.parts.VisualEditPart;
-import org.eclipse.xwt.tools.ui.designer.core.visuals.IVisualInfo;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class OffsetUtil {
-
-	public static int getXOffset(EditPart part) {
-		int x = 0;
-		if (part != null && part instanceof VisualEditPart) {
-			IVisualInfo visualInfo = ((VisualEditPart) part).getVisualInfo();
-			x = visualInfo.getClientArea().x;
-		}
-		return x;
-	}
-
-	public static int getYOffset(EditPart part) {
-		int y = 0;
-		if (part != null && part instanceof VisualEditPart) {
-			IVisualInfo visualInfo = ((VisualEditPart) part).getVisualInfo();
-			y = visualInfo.getClientArea().y;
-		}
-		return y;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/StyleHelper.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/StyleHelper.java
deleted file mode 100755
index b17b790..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/StyleHelper.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.utils;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.converters.StringToInteger;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class StyleHelper {
-
-	public static boolean isMenuBar(Menu menu) {
-		return checkStyle(menu, SWT.BAR);
-	}
-
-	public static boolean isOnMenubar(MenuItem menuItem) {
-		return isMenuBar(menuItem.getParent());
-	}
-
-	public static boolean checkStyle(Widget widget, int style) {
-		return widget != null && !widget.isDisposed() && checkStyle(widget.getStyle(), style);
-	}
-
-	public static boolean checkStyle(int styles, String style) {
-		if ("SHELL_TRIM".equalsIgnoreCase(style) || "SWT.SHELL_TRIM".equalsIgnoreCase(style)) {
-			return checkStyle(styles, SWT.CLOSE) && checkStyle(styles, SWT.MIN) && checkStyle(styles, SWT.MAX) && checkStyle(styles, SWT.TITLE) && checkStyle(styles, SWT.RESIZE);
-		} else if ("DIALOG_TRIM".equalsIgnoreCase(style) || "SWT.DIALOG_TRIM".equalsIgnoreCase(style)) {
-			return checkStyle(styles, SWT.CLOSE) && checkStyle(styles, SWT.TITLE) && checkStyle(styles, SWT.BORDER);
-		}
-		int value = (Integer) StringToInteger.instance.convert(style);
-		return checkStyle(styles, value);
-	}
-
-	public static boolean checkStyle(int styles, int style) {
-		return (styles & style) != 0;
-	}
-
-	public static boolean checkStyle(XamlNode node, int style) {
-		return checkStyle(getStyle(node), style);
-	}
-
-	public static int getStyle(XamlNode node) {
-		if (node == null) {
-			return 0;
-		}
-		XamlAttribute attribute = node.getAttribute("style", IConstants.XWT_X_NAMESPACE);
-		if (attribute != null && attribute.getValue() != null) {
-			String styleValue = attribute.getValue();
-			IConverter c = XWT.findConvertor(String.class, Integer.class);
-			if (c != null) {
-				return (Integer) c.convert(styleValue);
-			}
-		}
-		return 0;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/XWTModelUtil.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/XWTModelUtil.java
deleted file mode 100755
index fa56a15..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/XWTModelUtil.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.utils;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.gef.ui.parts.TreeViewer;
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class XWTModelUtil {
-
-	/**
-	 * This method is use to get another attribute for given attrName, the name of another attribute should be contained in adapters.
-	 */
-	public static XamlAttribute getAdaptableAttribute(XamlNode parent, String[] adapters, String attrName, String namespace) {
-		XamlAttribute attribute = null;
-		if (adapters == null || adapters.length == 0) {
-			return null;
-		}
-		List<String> copyAdapters = new ArrayList<String>(Arrays.asList(adapters));
-		if (copyAdapters.remove(attrName)) {
-			for (String other : copyAdapters) {
-				attribute = parent.getAttribute(other, namespace);
-				if (attribute != null) {
-					break;
-				}
-			}
-		}
-		return attribute;
-	}
-
-	/**
-	 * This method is use to retrieve another attribute for given attrName, for TableViewer of JFace, both control and table are same objects.
-	 */
-	public static XamlAttribute getAdaptableAttribute(XamlNode parent, String attrName, String namespace) {
-		if (parent == null || attrName == null) {
-			return null;
-		}
-		XamlAttribute attribute = parent.getAttribute(attrName, namespace);
-		if (attribute == null) {
-			IMetaclass metaclass = XWTUtility.getMetaclass(parent);
-			if (metaclass == null) {
-				return null;
-			}
-			Class<?> type = metaclass.getType();
-			if (TableViewer.class.isAssignableFrom(type)) {
-				attribute = getAdaptableAttribute(parent, new String[] { "table", "control" }, attrName, namespace);
-			} else if (ListViewer.class.isAssignableFrom(type)) {
-				attribute = getAdaptableAttribute(parent, new String[] { "list", "control" }, attrName, namespace);
-			} else if (TreeViewer.class.isAssignableFrom(type)) {
-				attribute = getAdaptableAttribute(parent, new String[] { "tree", "control" }, attrName, namespace);
-			} else if (ComboViewer.class.isAssignableFrom(type)) {
-				attribute = getAdaptableAttribute(parent, new String[] { "combo", "control" }, attrName, namespace);
-			}
-		}
-		return attribute;
-	}
-
-	/**
-	 * This method is use to retrieve attribute from parent, for viewers of JFace, some attribute should be set to its control object.
-	 */
-	public static XamlAttribute getChildAttribute(XamlNode parent, String attrName, String namespace) {
-		if (parent == null || attrName == null) {
-			return null;
-		}
-		XamlAttribute attribute = parent.getAttribute(attrName, namespace);
-		if (attribute == null) {
-			IMetaclass metaclass = XWTUtility.getMetaclass(parent);
-			if (metaclass == null) {
-				return null;
-			}
-			Class<?> type = metaclass.getType();
-			if (TableViewer.class.isAssignableFrom(type)) {
-				attribute = getChildAttribute(parent, new String[] { "table", "control" }, attrName, namespace);
-			} else if (ListViewer.class.isAssignableFrom(type)) {
-				attribute = getChildAttribute(parent, new String[] { "list", "control" }, attrName, namespace);
-			} else if (TreeViewer.class.isAssignableFrom(type)) {
-				attribute = getChildAttribute(parent, new String[] { "tree", "control" }, attrName, namespace);
-			} else if (ComboViewer.class.isAssignableFrom(type)) {
-				attribute = getChildAttribute(parent, new String[] { "combo", "control" }, attrName, namespace);
-			}
-		}
-		return attribute;
-	}
-
-	public static XamlAttribute getChildAttribute(XamlNode parent, String[] adapters, String attrName, String namespace) {
-		XamlAttribute attribute = null;
-		if (adapters == null || adapters.length == 0) {
-			return null;
-		}
-		List<String> copyAdapters = new ArrayList<String>(Arrays.asList(adapters));
-		for (String other : copyAdapters) {
-			XamlAttribute adapter = parent.getAttribute(other, namespace);
-			if (adapter == null) {
-				continue;
-			}
-			attribute = adapter.getAttribute(attrName, namespace);
-			if (attribute != null) {
-				break;
-			}
-		}
-		return attribute;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/XWTUtility.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/XWTUtility.java
deleted file mode 100755
index d017583..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/XWTUtility.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.utils;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.xwt.metadata.IProperty;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class XWTUtility {
-
-	private static Map<String, IMetaclass> metaclassCache = new HashMap<String, IMetaclass>();
-
-	public static IMetaclass getMetaclass(XamlNode node) {
-		if (node == null) {
-			return null;
-		}
-		if (node instanceof XamlElement) {
-			XamlElement e = (XamlElement) node;
-			String name = e.getName();
-			String ns = e.getNamespace();
-			return getMetaclass(name, ns);
-		}
-		return null;
-	}
-
-	public static IMetaclass getMetaclass(String tagName, String ns) {
-		if ("#comment".equals(tagName) || "Array".equals(tagName)) {
-			return null;
-		}
-		if (tagName != null && tagName.length() > 1) {
-			tagName = Character.toUpperCase(tagName.charAt(0)) + tagName.substring(1);
-		}
-		String key = tagName + "=&&=" + ns;
-		IMetaclass metaclass = metaclassCache.get(key);
-		if (metaclass == null) {
-			try {
-				metaclass = XWT.getMetaclass(tagName, ns);
-				metaclassCache.put(key, metaclass);
-			} catch (Exception e) {
-			}
-		}
-		return metaclass;
-	}
-
-	public static IProperty getProperty(XamlNode node, String name) {
-		IMetaclass metaclass = getMetaclass(node);
-		if (metaclass == null) {
-			return null;
-		}
-		return metaclass.findProperty(name);
-	}
-
-	public static IProperty getProperty(XamlAttribute attribute) {
-		if (attribute == null) {
-			return null;
-		}
-		XamlNode node = (XamlNode) attribute.eContainer();
-		return getProperty(node, attribute.getName());
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/AccessorConfigureInfo.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/AccessorConfigureInfo.java
deleted file mode 100755
index d4c4566..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/AccessorConfigureInfo.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.wizards;
-
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-
-/**
- * @author xrchen (xiaoru.chen@soyatec.com)
- */
-public class AccessorConfigureInfo {
-
-	private String classFilePath;
-
-	private String sourceFolder;
-
-	private String sourcePackage;
-
-	private String className;
-
-	private String propertyFilePath;
-
-	private String propertyFolder;
-
-	private String propertyPackage;
-
-	private String propertyName;
-
-	private IPackageFragmentRoot classRoot;
-
-	private IPackageFragmentRoot propertyRoot;
-
-	public String getClassFilePath() {
-		return classFilePath;
-	}
-
-	public void setClassFilePath(String classFilePath) {
-		this.classFilePath = classFilePath;
-	}
-
-	public String getPropertyFilePath() {
-		return propertyFilePath;
-	}
-
-	public void setPropertyFilePath(String propertyFilePath) {
-		this.propertyFilePath = propertyFilePath;
-	}
-
-	public IPackageFragmentRoot getPropertyRoot() {
-		return propertyRoot;
-	}
-
-	public void setPropertyRoot(IPackageFragmentRoot propertyRoot) {
-		this.propertyRoot = propertyRoot;
-	}
-
-	public IPackageFragmentRoot getClassRoot() {
-		return classRoot;
-	}
-
-	public void setClassRoot(IPackageFragmentRoot classRoot) {
-		this.classRoot = classRoot;
-	}
-
-	public String getSourceFolder() {
-		return sourceFolder;
-	}
-
-	public void setSourceFolder(String sourceFolder) {
-		this.sourceFolder = sourceFolder;
-	}
-
-	public String getSourcePackage() {
-		return sourcePackage;
-	}
-
-	public void setSourcePackage(String sourcePackag) {
-		this.sourcePackage = sourcePackag;
-	}
-
-	public String getClassName() {
-		return className;
-	}
-
-	public void setClassName(String className) {
-		this.className = className;
-	}
-
-	public String getPropertyFolder() {
-		return propertyFolder;
-	}
-
-	public void setPropertyFolder(String propertyFolder) {
-		this.propertyFolder = propertyFolder;
-	}
-
-	public String getPropertyPackage() {
-		return propertyPackage;
-	}
-
-	public void setPropertyPackage(String propertyPackag) {
-		this.propertyPackage = propertyPackag;
-	}
-
-	public String getPropertyName() {
-		return propertyName;
-	}
-
-	public void setPropertyName(String propertyName) {
-		this.propertyName = propertyName;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/ExternalizeStringsCommon.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/ExternalizeStringsCommon.java
deleted file mode 100755
index b779fa4..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/ExternalizeStringsCommon.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.wizards;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-
-public class ExternalizeStringsCommon {
-	/**
-	 * Get the history nameMap of the class file.
-	 * 
-	 * @param iFile
-	 * @return getHistoryContents
-	 * @throws IOException
-	 */
-	public static StringBuffer getHistoryContents(IFile iFile) throws IOException {
-		StringBuffer fileContent = new StringBuffer();
-		File file = iFile.getLocation().toFile();
-		FileReader fr = new FileReader(file);
-		BufferedReader br = new BufferedReader(fr);
-		String line = br.readLine();
-		while (line != null) {
-			if (line.indexOf("static {") != -1) {
-				break;
-			}
-			fileContent.append(line + "\r");
-			line = br.readLine();
-		}
-		fr.close();
-		br.close();
-		return fileContent;
-	}
-
-	/**
-	 * Get file with path and name.
-	 * 
-	 * @param folderName
-	 * @param fileName
-	 * @return
-	 * @throws CoreException
-	 */
-	public static IFile getIFile(String folderName, String fileName) throws CoreException {
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		IResource resource = root.findMember(new Path(folderName));
-		if (resource == null || !resource.exists() || !(resource instanceof IContainer)) {
-			throwCoreException("Container \"" + folderName + "\" does not exist.");
-		}
-		IContainer container = (IContainer) resource;
-		final IFile file = container.getFile(new Path(fileName));
-		return file;
-	}
-
-	public static void throwCoreException(String message) throws CoreException {
-		IStatus status = new Status(IStatus.ERROR, "org.eclipse.xwt.tools.ui.designer", IStatus.OK, message, null);
-		throw new CoreException(status);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/ExternalizeStringsWizard.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/ExternalizeStringsWizard.java
deleted file mode 100755
index 9dc4c27..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/ExternalizeStringsWizard.java
+++ /dev/null
@@ -1,400 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.wizards;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.xwt.IConstants;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.RootEditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CompoundCommand;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWizard;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.xwt.tools.ui.designer.commands.AddNewChildCommand;
-import org.eclipse.xwt.tools.ui.designer.commands.DeleteCommand;
-import org.eclipse.xwt.tools.ui.designer.core.util.DisplayUtil;
-import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
-import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
-import org.eclipse.xwt.tools.ui.designer.wizards.contents.ProperyContents;
-import org.eclipse.xwt.tools.ui.designer.wizards.contents.SourceContents;
-import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueEntry;
-import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueModel;
-import org.eclipse.xwt.tools.ui.designer.wizards.pages.ExternalizeStringsWizardPage;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author xrchen (xiaoru.chen@soyatec.com)
- */
-public class ExternalizeStringsWizard extends Wizard implements INewWizard {
-	private ExternalizeStringsWizardPage externalizeStringsWizardPage;
-
-	private ISelection selection;
-
-	private TextValueModel textValueEntrys;
-
-	private XWTDesigner designer;
-
-	private String classPerfixName;
-
-	private String classFilePath;
-
-	private String className;
-
-	private String propertyFilePath;
-
-	private String propertyName;
-
-	private TextValueModel checkedItems;
-
-	private boolean openFlag;
-
-	private CompoundCommand commandList;
-
-	/**
-	 * Constructor for ExternalizeStringsWizard.
-	 */
-	public ExternalizeStringsWizard(TextValueModel textValueEntrys, XWTDesigner designer) {
-		super();
-		this.textValueEntrys = textValueEntrys;
-		this.designer = designer;
-		setNeedsProgressMonitor(true);
-	}
-
-	/**
-	 * Adding the page to the wizard.
-	 */
-	public void addPages() {
-		setWindowTitle("Externalize Strings");
-		externalizeStringsWizardPage = new ExternalizeStringsWizardPage(selection, textValueEntrys);
-		addPage(externalizeStringsWizardPage);
-		getDefaultAccessorContents();
-	}
-
-	private void getDefaultAccessorContents() {
-		IFile inputFile = designer.getFile();
-
-		IContainer container = inputFile.getParent();
-		IJavaElement javaElement =  JavaCore.create(container);
-		IPackageFragmentRoot defaultRoot = null;
-		if (javaElement != null && javaElement.exists()) {
-			IJavaProject javaProject = JavaCore.create(inputFile.getProject());
-			try {
-				IPackageFragmentRoot fragmentRoot[] = javaProject.getAllPackageFragmentRoots();
-				for (int i = 0; i < fragmentRoot.length; i++) {
-					if (fragmentRoot[i].getKind() == IPackageFragmentRoot.K_SOURCE) {
-						defaultRoot = fragmentRoot[i];
-						for (IJavaElement element : defaultRoot.getChildren()) {
-							if (element.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
-								javaElement = element;
-							}
-						}
-						break;
-					}
-				}
-			} catch (JavaModelException e) {
-				e.printStackTrace();
-			}
-		}
-		if (javaElement == null || !(javaElement instanceof IPackageFragment)) {
-			String projectName = inputFile.getProject().getName();
-			externalizeStringsWizardPage.setErrorMessage("The project " + projectName + " has not source folder.");
-			return;
-		}
-
-		externalizeStringsWizardPage.setDefaultRoot(defaultRoot);
-		externalizeStringsWizardPage.setDefaultFolder(defaultRoot.getResource().getFullPath().toString());
-		externalizeStringsWizardPage.setDefaultPackage(javaElement.getElementName());
-	}
-
-	/**
-	 * This method is called when 'Finish' button is pressed in the wizard. We will create an operation and run it using wizard as execution context.
-	 */
-	public boolean performFinish() {
-		classFilePath = externalizeStringsWizardPage.getInfo().getClassFilePath();
-		className = externalizeStringsWizardPage.getInfo().getClassName() + ".java";
-		propertyFilePath = externalizeStringsWizardPage.getInfo().getPropertyFilePath();
-		propertyName = externalizeStringsWizardPage.getInfo().getPropertyName() + ".properties";
-		try {
-			doFinish(new NullProgressMonitor());
-		} catch (CoreException e) {
-			e.printStackTrace();
-		} catch (IOException e) {
-			e.printStackTrace();
-			return false;
-		} catch (returnWizardPage e) {
-			return false;
-		}
-		return true;
-	}
-
-	/**
-	 * Show a dialog to ask user whether to open the created files.
-	 * 
-	 * @throws returnWizardPage
-	 */
-	private void showOpenFileDialog() throws returnWizardPage {
-		String dialogMessage = "Do you want to open " + externalizeStringsWizardPage.getInfo().getClassName() + ".java and " + externalizeStringsWizardPage.getInfo().getPropertyName() + ".properties after finish?";
-		String[] dialogButtonLabels = { "Open", "Cancel" };
-		MessageDialog messageDialog = new MessageDialog(getShell(), "Open created files", null, dialogMessage, MessageDialog.QUESTION, dialogButtonLabels, 1);
-		messageDialog.open();
-		if (messageDialog.getReturnCode() == 0) {
-			openFlag = true;
-		} else if (messageDialog.getReturnCode() == -1) {
-			throw new returnWizardPage();
-		} else {
-			openFlag = false;
-		}
-	}
-
-	/**
-	 * The worker method. It will find the container, create the file if missing or just replace its nameMap, and open the editor on the newly created file.
-	 * 
-	 * @param monitor
-	 * @throws CoreException
-	 * @throws IOException
-	 * @throws returnWizardPage
-	 */
-	private void doFinish(IProgressMonitor monitor) throws CoreException, IOException, returnWizardPage {
-		String propertyPerfixName = propertyName.substring(0, propertyName.length() - 11);
-		classPerfixName = className.substring(0, className.length() - 5);
-		checkedItems = externalizeStringsWizardPage.getCheckedItems();
-
-		showOpenFileDialog();
-
-		// create a property file
-		createFile(propertyFilePath, propertyName, propertyPerfixName, false, monitor);
-		// create a class file
-		createFile(classFilePath, className, propertyPerfixName, true, monitor);
-		// externalize string
-		final Command changTextCmd = changText();
-		DisplayUtil.asyncExec(new Runnable() {
-			public void run() {
-				RootEditPart rootEditPart = designer.getGraphicalViewer().getRootEditPart();
-				rootEditPart.getViewer().getEditDomain().getCommandStack().execute(changTextCmd);
-			}
-		});
-		monitor.worked(1);
-	}
-
-	/**
-	 * Create a file with file path and file name.
-	 * 
-	 * @param containerName
-	 * @param fileName
-	 * @param isClassFile
-	 * @param monitor
-	 * @throws CoreException
-	 * @throws returnWizardPage
-	 */
-	private void createFile(String containerName, String fileName, String propertyfileName, boolean isClassFile, IProgressMonitor monitor) throws CoreException, returnWizardPage {
-		monitor.beginTask("Creating " + fileName, 2);
-		final IFile file = ExternalizeStringsCommon.getIFile(containerName, fileName);
-		try {
-			InputStream stream;
-			if (!isClassFile) {
-				stream = openPropertyContentStream(checkedItems);
-			} else {
-				if (file.exists()) {
-					// Get the nameMap of the exist file.
-					StringBuffer historyContent = ExternalizeStringsCommon
-							.getHistoryContents(file);
-					// Create inputStream with exist files nameMap.
-					stream = openSourceContentStream(checkedItems, containerName, fileName, propertyfileName, historyContent);
-				} else {
-					// Create a new inputStream.
-					stream = openSourceContentStream(checkedItems, containerName, fileName, propertyfileName, null);
-				}
-			}
-			if (file.exists()) {
-				if (isClassFile) {
-					file.setContents(stream, true, true, monitor);
-				} else {
-					file.appendContents(stream, true, true, monitor);
-				}
-			} else {
-				file.create(stream, true, monitor);
-			}
-			stream.close();
-			// build class file
-			IProject project = file.getProject();
-			project.refreshLocal(IResource.DEPTH_INFINITE, monitor);
-			project.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, monitor);
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-		if (openFlag) {
-			getShell().getDisplay().asyncExec(new Runnable() {
-				public void run() {
-					IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-					try {
-						IDE.openEditor(page, file, true);
-					} catch (PartInitException e) {
-						e.printStackTrace();
-					}
-				}
-			});
-		}
-	}
-
-	/**
-	 * Initialize source file nameMap with a text.
-	 */
-	private InputStream openSourceContentStream(TextValueModel checkedItems, String containerName, String fileName, String porpertyfileName, StringBuffer historyContent) {
-		IPackageFragmentRoot classRoot = externalizeStringsWizardPage.getInfo().getClassRoot();
-		SourceContents sourceContents = new SourceContents(checkedItems, containerName, propertyFilePath, fileName, porpertyfileName, historyContent, classRoot);
-		String contents = sourceContents.getSourceContents();
-		return new ByteArrayInputStream(contents.getBytes());
-	}
-
-	/**
-	 * Initialize property file nameMap with a text.
-	 */
-	private InputStream openPropertyContentStream(TextValueModel checkedItems) {
-		ProperyContents properyContents = new ProperyContents(checkedItems);
-		String contents = properyContents.getPropertyContents();
-		return new ByteArrayInputStream(contents.getBytes());
-	}
-
-	/**
-	 * We will accept the selection in the workbench to see if we can initialize from it.
-	 * 
-	 * @see IWorkbenchWizard#init(IWorkbench, IStructuredSelection)
-	 */
-	public void init(IWorkbench workbench, IStructuredSelection selection) {
-		this.selection = selection;
-	}
-
-	/**
-	 * Externalize string.
-	 */
-	private Command changText() {
-		commandList = new CompoundCommand();
-		RootEditPart rootEditPart = designer.getGraphicalViewer().getRootEditPart();
-		EditPart contents = rootEditPart.getContents();
-		Object textValueEntry[] = externalizeStringsWizardPage.getCheckedItems().elements();
-		for (int i = 0; i < textValueEntry.length; i++) {
-			if (textValueEntry[i] instanceof TextValueEntry) {
-				String value = ((TextValueEntry) textValueEntry[i]).getValue();
-				String key = ((TextValueEntry) textValueEntry[i]).getKey();
-				externalizeText(contents, value, key, "text");
-				externalizeText(contents, value, key, "toolTipText");
-			}
-		}
-		return commandList.unwrap();
-	}
-
-	/**
-	 * Change the parent editPart text value to the key.
-	 * 
-	 * @param editPart
-	 * @param value
-	 * @param key
-	 */
-	private void externalizeText(EditPart editPart, String value, String key, String type) {
-		if (editPart instanceof WidgetEditPart) {
-			XamlNode node = ((WidgetEditPart) editPart).getCastModel();
-			XamlAttribute attribute = node.getAttribute(type, IConstants.XWT_NAMESPACE);
-			if (attribute != null) {
-				if (value.equals(attribute.getValue())) {
-
-					commandList.add(new DeleteCommand(attribute));
-					attribute = null;
-					if (attribute == null) {
-						attribute = XamlFactory.eINSTANCE.createAttribute(type, IConstants.XWT_NAMESPACE);
-					}
-					attribute.setUseFlatValue(true);
-					XamlElement child = attribute.getChild("Static", IConstants.XWT_X_NAMESPACE);
-					if (child == null) {
-						child = XamlFactory.eINSTANCE.createElement("Static", IConstants.XWT_X_NAMESPACE);
-					}
-					String classPakage = externalizeStringsWizardPage.getInfo().getSourcePackage();
-					XamlElement childElement = child.getChild(classPerfixName + "." + key, IConstants.XAML_CLR_NAMESPACE_PROTO + classPakage);
-					if (childElement != null) {
-						child.getChildNodes().remove(childElement);
-					}
-					childElement = XamlFactory.eINSTANCE.createElement(classPerfixName + "." + key, IConstants.XAML_CLR_NAMESPACE_PROTO + classPakage);
-
-					commandList.add(new AddNewChildCommand(child, childElement));
-					commandList.add(new AddNewChildCommand(attribute, child));
-					if (!node.getAttributes().contains(attribute)) {
-						commandList.add(new AddNewChildCommand(node, attribute));
-					}
-				}
-			}
-			if (editPart.getChildren().size() > 0) {
-				externalizeChildren(editPart, value, key, type);
-			}
-		} else if (editPart.getChildren().size() > 0) {
-			externalizeChildren(editPart, value, key, type);
-		}
-	}
-
-	/**
-	 * Change the editPart's children text value to the key.
-	 * 
-	 * @param editPart
-	 */
-	private void externalizeChildren(EditPart editPart, String value, String key, String type) {
-		List child = editPart.getChildren();
-		for (int i = 0; i < child.size(); i++) {
-			if (child.get(i) instanceof EditPart) {
-				externalizeText((EditPart) child.get(i), value, key, type);
-			}
-		}
-	}
-}
-
-/**
- * Create a exception to cancel externalize.
- * 
- * @author chenxiaoru
- * 
- */
-class returnWizardPage extends Exception {
-	/**
-	 * serialVersionUID
-	 */
-	private static final long serialVersionUID = -4274509502796514787L;
-
-	returnWizardPage() {
-		super("Return the wizard page");
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/TableCellModifier.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/TableCellModifier.java
deleted file mode 100755
index 4612178..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/TableCellModifier.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.wizards;
-
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueEntry;
-import org.eclipse.xwt.tools.ui.designer.wizards.pages.ExternalizeStringsWizardPage;
-
-/**
- * @author xrchen (xiaoru.chen@soyatec.com)
- */
-public class TableCellModifier implements ICellModifier {
-
-	public boolean canModify(Object element, String property) {
-		if (property.equals(ExternalizeStringsWizardPage.KEY_COLUMN_ID)) {
-			return true;
-		} else if (property
-				.equals(ExternalizeStringsWizardPage.VALUE_COLUMN_ID)) {
-			return true;
-		}
-		return false;
-	}
-
-	public Object getValue(Object element, String property) {
-		if (property.equals(ExternalizeStringsWizardPage.KEY_COLUMN_ID)) {
-			if (element instanceof TextValueEntry) {
-				return ((TextValueEntry) element).getKey();
-			}
-		} else if (property
-				.equals(ExternalizeStringsWizardPage.VALUE_COLUMN_ID)) {
-			if (element instanceof TextValueEntry) {
-				return ((TextValueEntry) element).getValue();
-			}
-		}
-		return null;
-	}
-
-	public void modify(Object element, String property, Object value) {
-		// Null indicates that the validator rejected the value.
-		if (value == null)
-			return;
-		if (element instanceof TableItem) {
-			element = ((TableItem) element).getData();
-		}
-		String text = ((String) value).trim();
-		if (property.equals(ExternalizeStringsWizardPage.KEY_COLUMN_ID)) {
-			((TextValueEntry) element).setKey(text);
-		}
-
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/TableViewerListener.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/TableViewerListener.java
deleted file mode 100755
index 7ae4b46..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/TableViewerListener.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.wizards;
-
-import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueEntry;
-
-/**
- * @author xrchen (xiaoru.chen@soyatec.com)
- */
-public interface TableViewerListener {
-
-	/**
-	 * value changed listener.
-	 */
-	void valueChanged(TextValueEntry textValue);
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/contents/ProperyContents.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/contents/ProperyContents.java
deleted file mode 100755
index e27a92c..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/contents/ProperyContents.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.wizards.contents;
-
-import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueEntry;
-import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueModel;
-
-/**
- * @author xrchen (xiaoru.chen@soyatec.com)
- */
-public class ProperyContents {
-	private TextValueModel checkedItems;
-
-	public ProperyContents(TextValueModel checkedItems) {
-		this.checkedItems = checkedItems;
-	}
-
-	public String getPropertyContents() {
-		StringBuffer contents = new StringBuffer();
-		String value = "";
-		String key = "";
-		int itemsLen = checkedItems.elements().length;
-		for (int i = 0; i < itemsLen; i++) {
-			if (checkedItems.elements()[i] instanceof TextValueEntry) {
-				key = ((TextValueEntry) checkedItems.elements()[i]).getKey();
-				value = ((TextValueEntry) checkedItems.elements()[i]).getValue();
-				contents.append(key + " = " + value + "\r");
-			}
-		}
-		return contents.toString();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/contents/SourceContents.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/contents/SourceContents.java
deleted file mode 100755
index ac68d13..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/contents/SourceContents.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.wizards.contents;
-
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueEntry;
-import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueModel;
-
-/**
- * @author xrchen (xiaoru.chen@soyatec.com)
- */
-public class SourceContents {
-	private StringBuffer contents = new StringBuffer();
-	private TextValueModel checkedItems;
-	private String path;
-	private String name;
-	private String porpertyFileName;
-	private String propertyFilePath;
-	private StringBuffer historyContent;
-	private String header = "/*******************************************************************************" + "\r" + "* Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others." + "\r" + "* All rights reserved. This program and the accompanying materials" + "\r" + "* are made available under the terms of the Eclipse Public License v1.0" + "\r" + "* which accompanies this distribution, and is available at" + "\r" + "* http://www.eclipse.org/legal/epl-v10.html" + "\r" + "* " + "\r" + "* Contributors:" + "\r" + "*     Soyatec - initial API and implementation" + "\r" + "*******************************************************************************/";
-	private String sourceKey;
-
-	public SourceContents(TextValueModel checkedItems, String path, String propertyFilePath, String name, String porpertyFileName, StringBuffer historyContent, IPackageFragmentRoot root) {
-		this.checkedItems = checkedItems;
-		this.path = path;
-		this.propertyFilePath = propertyFilePath;
-		this.porpertyFileName = porpertyFileName;
-		this.historyContent = historyContent;
-		sourceKey = root.getResource().toString();
-		if (name != null) {
-			this.name = name.substring(0, name.length() - 5);
-		}
-	}
-
-	public String getSourceContents() {
-		if (historyContent == null) {
-			String packagePath = getPackagePath(path);
-			String porpertypackagePath = getPackagePath(propertyFilePath);
-			contents.append(header);
-			appendStr("");
-			if (!("").equals(packagePath)) {
-				appendStr("package " + packagePath + ";");
-			}
-			appendStr("");
-			appendStr("import org.eclipse.osgi.util.NLS;");
-			appendStr("");
-			appendStr("public class " + name + " extends NLS {");
-			if (!("").equals(packagePath)) {
-				appendStr("\t" + "private static final String BUNDLE_NAME = \"" + porpertypackagePath + "." + porpertyFileName + "\";");
-			} else {
-				appendStr("\t" + "private static final String BUNDLE_NAME = \"" + porpertyFileName + "\";");
-			}
-			appendStr("");
-		} else {
-			contents.append(historyContent);
-		}
-		appendkeys();
-		appendStr("\t" + "static {");
-		appendStr("\t" + "\t" + "NLS.initializeMessages(BUNDLE_NAME, " + name + ".class);");
-		appendStr("\t" + "}");
-		appendStr("}");
-
-		return contents.toString();
-	}
-
-	private String getPackagePath(String filePath) {
-		String soureKey = sourceKey.substring(sourceKey.lastIndexOf("/") + 1);
-		int index = filePath.indexOf("/" + soureKey + "/");
-		String packagePath = "";
-		if (index != -1) {
-			packagePath = (filePath.substring(index + soureKey.length() + 2)).replace("/", ".");
-		}
-		return packagePath;
-	}
-
-	/**
-	 * append string with ";" and "\r".
-	 * 
-	 * @param str
-	 */
-	private void appendStr(String str) {
-		contents.append(str + "\r");
-	}
-
-	/**
-	 * append key's definition
-	 */
-	private void appendkeys() {
-		int itemsLen = checkedItems.elements().length;
-		for (int i = 0; i < itemsLen; i++) {
-			if (checkedItems.elements()[i] instanceof TextValueEntry) {
-				String key = ((TextValueEntry) checkedItems.elements()[i]).getKey();
-				appendStr("\t" + "public static String " + key + ";");
-				appendStr("");
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/models/TextValueElement.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/models/TextValueElement.java
deleted file mode 100755
index 15f0806..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/models/TextValueElement.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.wizards.models;
-
-/**
- * @author xrchen (xiaoru.chen@soyatec.com)
- */
-public abstract class TextValueElement {
-
-	private TextValueElement parent;
-
-	public TextValueElement getParent() {
-		return parent;
-	}
-
-	public void setParent(TextValueElement parent) {
-		this.parent = parent;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/models/TextValueEntry.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/models/TextValueEntry.java
deleted file mode 100755
index 4c5f7ac..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/models/TextValueEntry.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.wizards.models;
-
-/**
- * @author xrchen (xiaoru.chen@soyatec.com)
- */
-public class TextValueEntry extends TextValueElement {
-	private String value;
-
-	private String key;
-
-	public TextValueEntry(String value, String key) {
-		this.value = value;
-		this.key = key;
-	}
-
-	public String getValue() {
-		return value;
-	}
-
-	public void setValue(String value) {
-		this.value = value;
-	}
-
-	public String getKey() {
-		return key;
-	}
-
-	public void setKey(String key) {
-		this.key = key;
-		((TextValueModel) getParent()).keyChanged(this);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/models/TextValueModel.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/models/TextValueModel.java
deleted file mode 100755
index 884d08a..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/models/TextValueModel.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.wizards.models;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.xwt.tools.ui.designer.wizards.TableViewerListener;
-
-/**
- * @author xrchen (xiaoru.chen@soyatec.com)
- */
-public class TextValueModel extends TextValueElement {
-
-	private Vector content;
-
-	private List listeners = new ArrayList();
-
-	public TextValueModel() {
-		content = new Vector();
-	}
-
-	public void add(Object element) {
-		content.add(element);
-		if (element instanceof TextValueElement) {
-			((TextValueElement) element).setParent(this);
-		}
-	}
-
-	public void remove(Object element) {
-		content.remove(element);
-	}
-
-	public Object[] elements() {
-		return content.toArray();
-	}
-
-	public void addPropertyChangeListener(TableViewerListener listener) {
-		if (!listeners.contains(listener))
-			listeners.add(listener);
-	}
-
-	public void removePropertyChangeListener(TableViewerListener listener) {
-		listeners.remove(listener);
-	}
-
-	/**
-	 * key changed listener.
-	 */
-	void keyChanged(TextValueEntry textValue) {
-		Iterator iter = listeners.iterator();
-		while (iter.hasNext())
-			((TableViewerListener) iter.next()).valueChanged(textValue);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/pages/ExternalizeStringsWizardPage.java b/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/pages/ExternalizeStringsWizardPage.java
deleted file mode 100755
index 18a48d5..0000000
--- a/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/pages/ExternalizeStringsWizardPage.java
+++ /dev/null
@@ -1,537 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.designer.wizards.pages;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jface.dialogs.IDialogPage;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.xwt.tools.ui.designer.dialogs.AccessorConfigurationDialog;
-import org.eclipse.xwt.tools.ui.designer.providers.ExternalizeStringContentProvider;
-import org.eclipse.xwt.tools.ui.designer.providers.ExternalizeStringLabelProvider;
-import org.eclipse.xwt.tools.ui.designer.wizards.AccessorConfigureInfo;
-import org.eclipse.xwt.tools.ui.designer.wizards.ExternalizeStringsCommon;
-import org.eclipse.xwt.tools.ui.designer.wizards.TableCellModifier;
-import org.eclipse.xwt.tools.ui.designer.wizards.TableViewerListener;
-import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueEntry;
-import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueModel;
-
-/**
- * @author xrchen (xiaoru.chen@soyatec.com)
- */
-public class ExternalizeStringsWizardPage extends WizardPage {
-
-	private TextValueModel checkedItems;
-
-	private TextValueModel textValueEntrys;
-
-	private TableViewer tableViewer;
-
-	private Text commonPrefixText;
-
-	private boolean isChecked = false;
-
-	private int checkCount = 0;
-
-	public static final String CHECK_COLUMN_ID = "";
-
-	public static final String VALUE_COLUMN_ID = "Value";
-
-	public static final String KEY_COLUMN_ID = "Key";
-
-	private String defaultFolder;
-
-	private String defaultPackage;
-
-	private IPackageFragmentRoot defaultRoot;
-
-	private AccessorConfigureInfo info = new AccessorConfigureInfo();
-
-	private Combo combo;
-
-	private ArrayList<String> duplicateKeys;
-
-	// create a PropertyFileListener instance.
-	private final TableViewerListener tableViewerListener = new TableViewerListener() {
-
-		public void valueChanged(TextValueEntry textValueEntry) {
-			tableViewer.refresh(textValueEntry, true);
-			changeContents();
-		}
-
-	};
-
-	/**
-	 * Constructor for ExternalizeStringsWizardPage.
-	 * 
-	 * @param selection
-	 * @param textValueEntrys
-	 */
-	public ExternalizeStringsWizardPage(ISelection selection, TextValueModel textValueEntrys) {
-		super("wizardPage");
-		setTitle("Externalize Strings");
-		setDescription("Externalizes strings from code into a properties file. The auto-generated keys should be adjusted.");
-		this.textValueEntrys = textValueEntrys;
-	}
-
-	/**
-	 * @see IDialogPage#createControl(Composite)
-	 */
-	public void createControl(Composite parent) {
-		Composite container = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		container.setLayout(layout);
-
-		// Create filed for user to change the prefix of the key
-		Composite childcontainer = new Composite(container, SWT.NONE);
-		layout = new GridLayout();
-		layout.numColumns = 2;
-		childcontainer.setLayout(layout);
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
-		gridData.horizontalSpan = 2;
-		childcontainer.setLayoutData(gridData);
-
-		Label commonPrefixLabel = new Label(childcontainer, SWT.NONE);
-		commonPrefixLabel.setText("Enter common prefix for generated keys(optional):");
-
-		commonPrefixText = new Text(childcontainer, SWT.BORDER);
-		gridData = new GridData(GridData.FILL_HORIZONTAL);
-		commonPrefixText.setText("Text_");
-		commonPrefixText.setLayoutData(gridData);
-		commonPrefixText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				tableViewer.setLabelProvider(new ExternalizeStringLabelProvider(commonPrefixText.getText()));
-				if (checkCount > 0) {
-					checkPrefix();
-				}
-				changeContents();
-			}
-		});
-		setPageComplete(false);
-
-		// Create the tableViewer of the text value which have not been externalized or been binded.
-		createWidgetObserve(container);
-
-		// Create select all button.
-		createSelectAllButton(container);
-
-		// Create the the configure field.
-		createAccessorConfigure(container);
-
-		setControl(container);
-
-		// Initial the configure files information.
-		String defaultFilePath = "/" + defaultFolder + "/" + defaultPackage.replace(".", "/");
-
-		info.setClassFilePath(defaultFilePath);
-		info.setClassRoot(defaultRoot);
-		info.setSourceFolder(defaultFolder);
-		info.setSourcePackage(defaultPackage);
-		info.setClassName("Messages");
-
-		info.setPropertyFilePath(defaultFilePath);
-		info.setPropertyRoot(defaultRoot);
-		info.setPropertyFolder(defaultFolder);
-		info.setPropertyPackage(defaultPackage);
-		info.setPropertyName("messages");
-	}
-
-	/**
-	 * Create select all button
-	 */
-	private void createSelectAllButton(Composite container) {
-		Button button = new Button(container, SWT.PUSH);
-		button.setText("Select All");
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
-		button.setLayoutData(gridData);
-		gridData = new GridData(GridData.FILL_HORIZONTAL);
-		gridData.horizontalSpan = 2;
-		button.setLayoutData(gridData);
-		button.addSelectionListener(new SelectionListener() {
-
-			public void widgetSelected(SelectionEvent e) {
-				int length = tableViewer.getTable().getItems().length;
-				if (checkCount < length) {
-					for (int i = 0; i < length; i++) {
-						tableViewer.getTable().getItem(i).setChecked(true);
-						tableViewer.getTable().getItem(i).setBackground(new Color(Display.getDefault(), 226, 226, 226));
-					}
-					checkCount = length;
-				} else {
-					for (int i = 0; i < length; i++) {
-						tableViewer.getTable().getItem(i).setChecked(false);
-						tableViewer.getTable().getItem(i).setBackground(ColorConstants.listBackground);
-					}
-					checkCount = 0;
-				}
-				changeContents();
-				updatePageComplete(checkCount);
-			}
-
-			public void widgetDefaultSelected(SelectionEvent e) {
-
-			}
-		});
-	}
-
-	private void createAccessorConfigure(Composite container) {
-		combo = new Combo(container, SWT.READ_ONLY);
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
-		gridData.widthHint = convertWidthInCharsToPixels(30);
-		combo.setLayoutData(gridData);
-		combo.setItems(new String[] { defaultPackage + ".Messages.java - " + defaultPackage + ".messages.properties" });
-		combo.select(0);
-
-		Button configureButton = new Button(container, SWT.PUSH);
-		configureButton.setText("Configure...");
-		gridData = new GridData();
-		configureButton.setLayoutData(gridData);
-		configureButton.addSelectionListener(new SelectionListener() {
-
-			public void widgetSelected(SelectionEvent e) {
-				AccessorConfigurationDialog dialog = new AccessorConfigurationDialog(getShell(), info);
-				dialog.setTitle("Configure Accessor Class");
-
-				if (dialog.open() == Window.OK) {
-					// Get the information of configure files.
-					info.setClassFilePath(dialog.getClassFilePath());
-					info.setClassRoot(dialog.getclassRoot());
-					info.setSourceFolder(dialog.getSourceFolder());
-					info.setSourcePackage(dialog.getSourcePackage());
-					info.setClassName(dialog.getClassName());
-
-					info.setPropertyFilePath(dialog.getPropertyFilePath());
-					info.setPropertyRoot(dialog.getPropertyRoot());
-					info.setPropertyFolder(dialog.getPropertyFolder());
-					info.setPropertyPackage(dialog.getPropertyPackage());
-					info.setPropertyName(dialog.getPropertyName());
-					combo.setItems(new String[] { dialog.getSourcePackage() + ((dialog.getSourcePackage() == null || "".equals(dialog.getSourcePackage())) ? "" : ".") + dialog.getClassName() + ".java - " + dialog.getPropertyPackage() + "." + dialog.getPropertyName() + ".properties" });
-					combo.select(0);
-					changeContents();
-				}
-			}
-
-			public void widgetDefaultSelected(SelectionEvent e) {
-
-			}
-		});
-	}
-
-	/**
-	 * Create the widget's text values observe container
-	 * 
-	 * @param container
-	 */
-	private void createWidgetObserve(Composite container) {
-		Composite viewContainer = new Composite(container, SWT.BORDER);
-		GridLayout layout = new GridLayout();
-		viewContainer.setLayout(layout);
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
-		gridData.horizontalSpan = 2;
-
-		viewContainer.setLayoutData(gridData);
-
-		tableViewer = new TableViewer(viewContainer, SWT.CHECK | SWT.FULL_SELECTION | SWT.V_SCROLL | SWT.H_SCROLL);
-		Table table = tableViewer.getTable();
-		table.setHeaderVisible(true);
-		table.setLinesVisible(true);
-		gridData.heightHint = table.getItemHeight() * 11;
-		table.setLayoutData(gridData);
-		// Create the header of the table
-		String[] colNames = { "", "Value", "Key" };
-		int[] colWidths = { 50, 300, 300 };
-		for (int i = 0; i < colNames.length; i++) {
-			TableColumn tableColumn = new TableColumn(table, SWT.NONE);
-			tableColumn.setText(colNames[i]);
-			tableColumn.setWidth(colWidths[i]);
-		}
-		tableViewer.setLabelProvider(new ExternalizeStringLabelProvider(commonPrefixText.getText()));
-		tableViewer.setContentProvider(new ExternalizeStringContentProvider());
-		tableViewer.setInput(textValueEntrys);
-		tableViewer.getTable().getDisplay().asyncExec(new Runnable() {
-			public void run() {
-				TextValueModel textValueModel = (TextValueModel) tableViewer.getInput();
-				textValueModel.addPropertyChangeListener(tableViewerListener);
-			}
-		});
-		initTableEditor();
-		tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-
-			public void selectionChanged(SelectionChangedEvent event) {
-				changeContents();
-				updatePageComplete(checkCount);
-			}
-		});
-	}
-
-	/**
-	 * make cell of the tableViewer editable.
-	 */
-	private void initTableEditor() {
-		tableViewer.setColumnProperties(new String[] { CHECK_COLUMN_ID, VALUE_COLUMN_ID, KEY_COLUMN_ID });
-		final TextCellEditor valueEditor = new TextCellEditor(tableViewer.getTable());
-		final TextCellEditor keyEditor = new TextCellEditor(tableViewer.getTable());
-		tableViewer.setCellEditors(new CellEditor[] { null, valueEditor, keyEditor });
-		tableViewer.setCellModifier(new TableCellModifier());
-	}
-
-	public TextValueModel getCheckedItems() {
-		return checkedItems;
-	}
-
-	private void updatePageComplete(int checkNum) {
-		isChecked = false;
-		if (checkNum > 0) {
-			isChecked = true;
-			if (getErrorMessage() != null) {
-				setPageComplete(false);
-			} else {
-				setPageComplete(true);
-			}
-		} else {
-			updateStatus(null);
-		}
-
-	}
-
-	/**
-	 * check the prefix string format.
-	 */
-	private void checkPrefix() {
-		String checkValue = commonPrefixText.getText();
-		if (!"".equals(checkValue)) {
-			String regex = "^([_|a-zA-Z])[_\\w]*$";
-			checkFormat(checkValue, regex);
-		}
-	}
-
-	/**
-	 * check the prefix string format.
-	 */
-	private boolean checkKeyValue(String keyValue) {
-		String regex = "^([_|a-zA-Z])[_\\w]*$";
-		return checkFormat(keyValue, regex);
-	}
-
-	/**
-	 * check string format
-	 * 
-	 * @param value
-	 */
-	private boolean checkFormat(String value, String regex) {
-		Matcher matcher = Pattern.compile(regex).matcher(value);
-		if (!(matcher.find())) {
-			updateStatus("Some selected keys are not valid Java identifiers.");
-			return false;
-		} else {
-			updateStatus(null);
-			return true;
-		}
-	}
-
-	/**
-	 * Update the page's status.
-	 * 
-	 * @param message
-	 */
-	private void updateStatus(String message) {
-		setErrorMessage(message);
-		setPageComplete((message == null) && isChecked);
-	}
-
-	/**
-	 * Check the change nameMap and get the selected values.
-	 */
-	private void changeContents() {
-		int count = tableViewer.getTable().getItemCount();
-		String checkValue = "";
-		checkedItems = new TextValueModel();
-		for (int i = 0; i < count; i++) {
-			if (tableViewer.getTable().getItem(i).getChecked()) {
-				tableViewer.getTable().getItem(i).setBackground(new Color(Display.getDefault(), 226, 226, 226));
-				if (tableViewer.getElementAt(i) instanceof TextValueEntry) {
-					String value = ((TextValueEntry) (tableViewer.getElementAt(i))).getValue();
-					String key = commonPrefixText.getText() + ((TextValueEntry) (tableViewer.getElementAt(i))).getKey();
-					checkedItems.add(new TextValueEntry(value, key));
-				}
-				checkValue = commonPrefixText.getText() + ((TextValueEntry) (tableViewer.getElementAt(i))).getKey();
-				if (!checkKeyValue(checkValue)) {
-					break;
-				}
-			} else {
-				tableViewer.getTable().getItem(i).setBackground(ColorConstants.listBackground);
-			}
-		}
-		checkSameValue();
-		checkDuplicate(info.getClassFilePath(), info.getClassName() + ".java", info.getPropertyFilePath(), info.getPropertyName() + ".properties");
-		checkCount = getCheckNum();
-	}
-
-	/**
-	 * Get the checked number of tableViewer's items.
-	 * 
-	 * @return checkNum
-	 */
-	private int getCheckNum() {
-		int checkNum = 0;
-		for (int i = 0; i < tableViewer.getTable().getItems().length; i++) {
-			if (tableViewer.getTable().getItem(i).getChecked()) {
-				checkNum++;
-			}
-		}
-		return checkNum;
-	}
-
-	/**
-	 * check the selected keys whether have a same key.
-	 */
-	private void checkSameValue() {
-		Object selectedKeys[] = checkedItems.elements();
-		String key;
-		String value;
-		String compareKey;
-		String comparevalue;
-		String errorMsg = "Conflicting entries: Same key but different values";
-		for (int i = 0; i < selectedKeys.length; i++) {
-			if (selectedKeys[i] instanceof TextValueEntry) {
-				key = ((TextValueEntry) selectedKeys[i]).getKey();
-				value = ((TextValueEntry) selectedKeys[i]).getValue();
-				for (int j = i + 1; j < selectedKeys.length; j++) {
-					compareKey = ((TextValueEntry) selectedKeys[j]).getKey();
-					comparevalue = ((TextValueEntry) selectedKeys[j]).getValue();
-					if (compareKey.equals(key) && !comparevalue.equals(value)) {
-						updateStatus(errorMsg);
-						break;
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * Check whether have the same key values in the File.
-	 * 
-	 * @param sourceFolderName
-	 * @param className
-	 * @param propertyFolderName
-	 * @param propertyName
-	 * @throws CoreException
-	 * @throws IOException
-	 * @throws returnWizardPage
-	 */
-	private void checkDuplicate(String sourceFolderName, String className, String propertyFolderName, String propertyName) {
-		try {
-			duplicateKeys = new ArrayList<String>();
-			if (ExternalizeStringsCommon.getIFile(sourceFolderName, className).exists()) {
-				StringBuffer classHistoryContents = ExternalizeStringsCommon.getHistoryContents((ExternalizeStringsCommon.getIFile(sourceFolderName, className)));
-				checkDuplicateKey(checkedItems, classHistoryContents, true);
-			}
-			if (ExternalizeStringsCommon.getIFile(propertyFolderName, propertyName).exists()) {
-				StringBuffer PropertyHistoryContents = ExternalizeStringsCommon.getHistoryContents(ExternalizeStringsCommon.getIFile(propertyFolderName, propertyName));
-				checkDuplicateKey(checkedItems, PropertyHistoryContents, false);
-			}
-
-			if (duplicateKeys.size() > 0) {
-				StringBuffer dialogMessage = new StringBuffer("Key: ");
-				ArrayList<String> keys = new ArrayList<String>();
-				for (int i = 0; i < duplicateKeys.size(); i++) {
-					if (keys.indexOf(duplicateKeys.get(i)) == -1) {
-						keys.add(duplicateKeys.get(i));
-						dialogMessage.append("\"" + duplicateKeys.get(i)
-								+ "\" ");
-					}
-				}
-				dialogMessage.append("already exist in files. Please rename.");
-				updateStatus(dialogMessage.toString());
-			}
-		} catch (CoreException e1) {
-			e1.printStackTrace();
-		} catch (IOException e1) {
-			e1.printStackTrace();
-		}
-
-	}
-
-	/**
-	 * To match the duplicate key values in the File.
-	 * 
-	 * @param checkedItems
-	 * @param historyContent
-	 */
-	private void checkDuplicateKey(TextValueModel checkedItems, StringBuffer historyContent, boolean isClassFile) {
-		String regexSuffix;
-		String regexPrefix;
-		if (isClassFile) {
-			regexPrefix = "[\t ]+";
-			regexSuffix = "([\t ]*[\r ]*[\t ]*)*[;]";
-		} else {
-			regexPrefix = "[\t ]*";
-			regexSuffix = "[\t ]*[=]";
-		}
-		for (int i = 0; i < checkedItems.elements().length; i++) {
-			String key = ((TextValueEntry) checkedItems.elements()[i]).getKey();
-			if (!checkKeyValue(key))
-				return;
-			String regex = regexPrefix + key + regexSuffix;
-
-			Matcher matcher = Pattern.compile(regex).matcher(historyContent.toString());
-			if (matcher.find()) {
-				duplicateKeys.add(key);
-			}
-		}
-	}
-
-	public void setDefaultFolder(String defaultFolder) {
-		this.defaultFolder = defaultFolder;
-	}
-
-	public void setDefaultRoot(IPackageFragmentRoot defaultRoot) {
-		this.defaultRoot = defaultRoot;
-	}
-
-	public void setDefaultPackage(String defaultPackage) {
-		this.defaultPackage = defaultPackage;
-	}
-
-	public AccessorConfigureInfo getInfo() {
-		return info;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/build.properties b/org.eclipse.xwt.tools.ui.editor/build.properties
deleted file mode 100755
index bee4c5d..0000000
--- a/org.eclipse.xwt.tools.ui.editor/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               icons/,\
-               templates/,\
-               tools/,\
-               plugin.properties
diff --git a/org.eclipse.xwt.tools.ui.editor/plugin.properties b/org.eclipse.xwt.tools.ui.editor/plugin.properties
deleted file mode 100755
index 5dbbcc8..0000000
--- a/org.eclipse.xwt.tools.ui.editor/plugin.properties
+++ /dev/null
@@ -1,27 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-#******************************************************************************
-# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Soyatec - initial API and implementation
-#******************************************************************************/
-editor.name.0 = XWT Editor
-menu.label.0 = Java
-action.label.0 = Generate
-action.label.1 = OpenDefinition
-contextType.name.0 = XWT ContextType
-Bundle-Vendor.0 = Eclipse.org
-Bundle-Name.0 = XWT Editor Plug-in (Incubation)
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.editor/plugin.xml b/org.eclipse.xwt.tools.ui.editor/plugin.xml
deleted file mode 100755
index fd2fb22..0000000
--- a/org.eclipse.xwt.tools.ui.editor/plugin.xml
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/pom.xml b/org.eclipse.xwt.tools.ui.editor/pom.xml
deleted file mode 100755
index 57f2a8f..0000000
--- a/org.eclipse.xwt.tools.ui.editor/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt.tools.ui.editor</artifactId>
-	<version>0.10.0-SNAPSHOT</version>
-	<packaging>eclipse-plugin</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTCodeSynchronizer.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTCodeSynchronizer.java
deleted file mode 100755
index 308957b..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTCodeSynchronizer.java
+++ /dev/null
@@ -1,446 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.metadata.IEvent;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.jdt.core.IField;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IMethod;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.xwt.ui.editor.jdt.ASTHelper;
-import org.eclipse.xwt.vex.AbstractCodeSynchronizer;
-import org.eclipse.xwt.vex.dom.DomHelper;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * 
- * Generate InitializeComponent() method and all named elements;
- * 
- * @author jliu
- * 
- */
-public class XWTCodeSynchronizer extends AbstractCodeSynchronizer {
-	private static final String INIT_METHOD_NAME = "initializeComponent";
-
-	private IType type;
-
-	public XWTCodeSynchronizer(XWTEditor editor, IType type) {
-		super(editor);
-		this.type = type;
-		if (type == null) {
-			throw new NullPointerException("Java Source Type is Null!");
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.soyatec.eface.tools.ui.editors.jdt.CodeManager#remove(org.w3c.dom .Node)
-	 */
-	public void remove(final IDOMNode node) {
-		final String remove = getNode2name().remove(node);
-		if (remove != null) {
-			Display display = Display.getDefault();
-			if (display != null) {
-				display.syncExec(new Runnable() {
-					public void run() {
-						String fullTypeName = getFullTypeName(node);
-						if (fullTypeName == null) {
-							return;
-						}
-						removeFields(fullTypeName, remove);
-						buildInitialization();
-						ASTHelper.removeUnusedImports(type);
-					}
-				});
-			}
-		}
-	}
-
-	protected String getFullTypeName(IDOMNode node) {
-		String fullName = null;
-		String nodeName = node.getNodeName();
-		// Metaclass metaclass = UPF
-		// .getMetaclass(nodeName, DomHelper.lookupNamespaceURI(node));
-		// if (metaclass != null) {
-		// fullName = metaclass.getType().getName();
-		// }
-		return fullName;
-	}
-
-	public IType getType() {
-		return type;
-	}
-
-	public void setType(IType type) {
-		this.type = type;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.soyatec.eface.tools.ui.editors.jdt.CodeManager#generateFields(java .lang.String, java.lang.String)
-	 */
-	public void generateFields(String fullTypeName, String argName) {
-		ASTHelper.generateNamedFields(type, fullTypeName, argName);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.soyatec.eface.tools.ui.editors.jdt.CodeManager#removeFields(java. lang.String, java.lang.String)
-	 */
-	public void removeFields(String fullTypeName, String argName) {
-		try {
-			IField[] fields = type.getFields();
-			for (IField field : fields) {
-				if (argName.equals(field.getElementName())) {
-					field.delete(false, null);
-				}
-			}
-		} catch (JavaModelException e) {
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.soyatec.eface.tools.ui.editors.jdt.CodeManager#buildInitialization()
-	 */
-	public void buildInitialization() {
-		try {
-			Set<String> forGens = new HashSet<String>(getNode2name().values());
-			IField[] fields = type.getFields();
-			// for (IField field : fields) {
-			// String typeName = Signature.toString(field.getTypeSignature());
-			// Metaclass metaclass = UPF.getMetaclass(typeName);
-			// if (metaclass != null) {
-			// forGens.add(field.getElementName());
-			// }
-			// }
-			ASTHelper.generateInitialization(type, INIT_METHOD_NAME, forGens);
-		} catch (Exception e) {
-		}
-	}
-
-	/**
-	 * TODO
-	 * <p>
-	 * sync XAML with Java
-	 * </p>
-	 * <ul>
-	 * <li>field for each name element</li>
-	 * <li>initializeComponent() with the findElement() to initialize the named Field</li>
-	 * <li>add event handle</li>
-	 * </ul>
-	 */
-	public boolean generateHandles() {
-		StructuredTextViewer textViewer = getEditor().getTextEditor().getTextViewer();
-		int offset = textViewer.getTextWidget().getCaretOffset();
-		IndexedRegion treeNode = ContentAssistUtils.getNodeAt(textViewer, offset);
-
-		Node node = (Node) treeNode;
-		while ((node != null) && (node.getNodeType() == Node.TEXT_NODE) && (node.getParentNode() != null)) {
-			node = node.getParentNode();
-		}
-		IDOMNode xmlnode = (IDOMNode) node;
-		// generate java codes for named elements.
-		updateCodeManager();
-
-		String name = xmlnode.getNodeName();
-		if (name.indexOf(":") > 0) {
-			name = name.substring(name.indexOf(":") + 1);
-		}
-		IMetaclass metaclass = null;
-		try {
-			metaclass = XWT.getMetaclass(name, DomHelper.lookupNamespaceURI(xmlnode));
-		} catch (Exception e1) {
-			return false;
-		}
-		if (metaclass != null) {
-			NamedNodeMap nodeMap = xmlnode.getAttributes();
-			for (int i = nodeMap.getLength() - 1; i >= 0; i--) {
-				IDOMAttr attrNode = (IDOMAttr) nodeMap.item(i);
-				int endOffset = attrNode.getEndOffset();
-				int startOffset = attrNode.getStartOffset();
-				if (offset >= startOffset && offset <= endOffset) {
-					String propertyName = attrNode.getName();
-					IEvent event = metaclass.findEvent(propertyName);
-					if (event == null) {
-						int index = propertyName.indexOf('.');
-						if (index != -1) {
-							String typeName = propertyName.substring(0, index);
-							String eventName = propertyName.substring(index + 1);
-							metaclass = XWT.getMetaclass(typeName, DomHelper.lookupNamespaceURI(attrNode));
-							if (metaclass != null) {
-								event = metaclass.findEvent(eventName);
-							}
-						}
-					}
-					if (event != null) {
-						try {
-							ASTHelper.generateEventHandler(type, Event.class.getName(), attrNode.getValue());
-							return true;
-						} catch (Exception e) {
-							e.printStackTrace();
-						}
-						break;
-					}
-				}
-			}
-		}
-		return false;
-	}
-
-	public boolean openDefinition() {
-		StructuredTextViewer textViewer = getEditor().getTextEditor().getTextViewer();
-		int offset = textViewer.getTextWidget().getCaretOffset();
-		IndexedRegion treeNode = ContentAssistUtils.getNodeAt(textViewer, offset);
-		Node node = (Node) treeNode;
-		while ((node != null) && (node.getNodeType() == Node.TEXT_NODE) && (node.getParentNode() != null)) {
-			node = node.getParentNode();
-		}
-		IDOMNode xmlnode = (IDOMNode) node;
-
-		String name = xmlnode.getNodeName();
-		// Metaclass metaclass = UPF.getMetaclass(name, DomHelper.lookupNamespaceURI(node));
-		// if (metaclass != null) {
-		// NamedNodeMap nodeMap = xmlnode.getAttributes();
-		// int length = nodeMap.getLength();
-		// for (int i = length - 1; i >= 0; i--) {
-		// IDOMAttr attrNode = (IDOMAttr) nodeMap.item(i);
-		// String attrName = attrNode.getName();
-		// String attrValue = attrNode.getValue();
-		// int startOffset = attrNode.getStartOffset();
-		// int endOffset = startOffset + attrName.length()
-		// + attrValue.length() + 3;
-		// // if (offset <= startOffset || offset >= endOffset) {
-		// // }
-		// if (offset >= startOffset && offset < endOffset) {
-		// Event event = metaclass.findEvent(attrName);
-		// if (event != null) {
-		// String[] handlers = null;
-		// IMethod[] methods = null;
-		// try {
-		// methods = type.getMethods();
-		// handlers = new String[methods.length];
-		// for (int j = 0; j < methods.length; j++) {
-		// IMethod method = methods[j];
-		// String methodName = method.getElementName();
-		// if (methodName.equals(attrValue)) {
-		// jumpToJavaMethod(methods, methodName);
-		// return true;
-		// }
-		// handlers[j] = methodName;
-		// }
-		// } catch (JavaModelException e) {
-		// }
-		// }
-		// }
-		// }
-		// }
-		return false;
-	}
-
-	public boolean handleInputChanged(IDocument newInput) {
-		String value = newInput.get();
-		if (checkContent(value)) {
-			return false;
-		}
-
-		StructuredTextViewer textViewer = getEditor().getTextEditor().getTextViewer();
-		int offset = textViewer.getTextWidget().getCaretOffset();
-		IndexedRegion treeNode = ContentAssistUtils.getNodeAt(textViewer, offset);
-		Node node = (Node) treeNode;
-		while ((node != null) && (node.getNodeType() == Node.TEXT_NODE) && (node.getParentNode() != null)) {
-			node = node.getParentNode();
-		}
-		IDOMNode xmlnode = (IDOMNode) node;
-
-		String name = xmlnode.getNodeName();
-		// Metaclass metaclass = UPF.getMetaclass(name, DomHelper.lookupNamespaceURI(xmlnode));
-		// if (metaclass != null) {
-		// NamedNodeMap nodeMap = xmlnode.getAttributes();
-		// int length = nodeMap.getLength();
-		// if (length == 0) {
-		// // remove
-		// update(xmlnode);
-		// }
-		// for (int i = length - 1; i >= 0; i--) {
-		// IDOMAttr attrNode = (IDOMAttr) nodeMap.item(i);
-		// String attrName = attrNode.getName();
-		// String attrValue = attrNode.getValue();
-		// int startOffset = attrNode.getStartOffset();
-		// int endOffset = startOffset + attrName.length()
-		// + attrValue.length() + 3;
-		// // if (offset <= startOffset || offset >= endOffset) {
-		// // }
-		// if (offset >= startOffset && offset < endOffset) {
-		// final Node genNode = xmlnode;
-		// Display.getDefault().syncExec(new Runnable() {
-		// public void run() {
-		// update((IDOMNode) genNode);
-		// }
-		// });
-		//
-		// Event event = metaclass.findEvent(attrName);
-		// if (event != null) {
-		// String[] handlers = null;
-		// IMethod[] methods = null;
-		// try {
-		// methods = type.getMethods();
-		// handlers = new String[methods.length];
-		// for (int j = 0; j < methods.length; j++) {
-		// IMethod method = methods[j];
-		// String methodName = method.getElementName();
-		// if (methodName.equals(attrValue)) {
-		// return true;
-		// }
-		// handlers[j] = methodName;
-		// }
-		// } catch (JavaModelException e) {
-		// e.printStackTrace();
-		// }
-		//
-		// Display display = Display.getDefault();
-		// String title = "New or rename handler";
-		// EventHandlerDialog eventHandlerDialog = new EventHandlerDialog(
-		// textViewer, getOldAttrValue(), attrValue,
-		// handlers);
-		// StyledText styledText = textViewer.getTextWidget();
-		// Point localLocation = styledText.getLocationAtOffset(offset);
-		//						
-		// eventHandlerDialog.run(styledText.getShell(), title, styledText.toDisplay(localLocation));
-		// EventHandlerDialog.Operation operation = eventHandlerDialog
-		// .getOperation();
-		// String inputHandler = eventHandlerDialog
-		// .getInputHandler();
-		// String argumentType = event.getType().getType()
-		// .getName();
-		// IProgressMonitor monitor = getProgressMonitor();
-		// if (operation == EventHandlerDialog.Operation.New) {
-		// attrNode.setValue(inputHandler);
-		// try {
-		// ASTHelper.generateEventHandler(type,
-		// argumentType, inputHandler);
-		// } catch (Exception e) {
-		// e.printStackTrace();
-		// }
-		// } else if (operation == EventHandlerDialog.Operation.Rename) {
-		// IMethod method = findMethod(methods,
-		// getOldAttrValue());
-		// modifyAllRelativeHandlerName(textViewer, 0,
-		// inputHandler, getOldAttrValue());
-		// attrNode.setValue(inputHandler);
-		// if (method != null) {
-		// try {
-		// method.rename(inputHandler, true, monitor);
-		// } catch (JavaModelException e) {
-		// e.printStackTrace();
-		// }
-		// } else {
-		// try {
-		// ASTHelper.generateEventHandler(type,
-		// argumentType, inputHandler);
-		// } catch (Exception e) {
-		// e.printStackTrace();
-		// }
-		// }
-		// } else if (operation == EventHandlerDialog.Operation.Select) {
-		// attrNode.setValue(inputHandler);
-		// } else if (operation == EventHandlerDialog.Operation.Cancel) {
-		// }
-		// if (operation != EventHandlerDialog.Operation.Cancel) {
-		// jumpToJavaMethod(methods, inputHandler);
-		// }
-		// setCacheContent(updateCacheContent(newInput));
-		// return false;
-		// }
-		// }
-		// }
-		// }
-		return true;
-	}
-
-	private void jumpToJavaMethod(IMethod[] methods, String methodName) {
-		IJavaElement method = findMethod(methods, methodName);
-		CompilationUnitEditor javaEditor = ((XWTEditor) getEditor()).getJavaEditor();
-		if (method != null) {
-			javaEditor.setSelection(method);
-		}
-		getEditor().setActiveEditor(javaEditor);
-	}
-
-	private IMethod findMethod(IMethod[] methods, String methodName) {
-		for (int i = 0; i < methods.length; i++) {
-			IMethod method = methods[i];
-			if (method.getElementName().equals(methodName))
-				return method;
-		}
-		return null;
-	}
-
-	private void modifyAllRelativeHandlerName(StructuredTextViewer textViewer, int offset, String inputHandler, String oldAttrValue) {
-		IndexedRegion treeNode = ContentAssistUtils.getNodeAt(textViewer, offset);
-		Node node = (Node) treeNode;
-		modifyHandlerName(inputHandler, node, oldAttrValue);
-	}
-
-	private void modifyHandlerName(String inputHandler, Node node, String oldAttrValue) {
-		while ((node != null) && (node.getNodeType() == Node.TEXT_NODE) && (node.getParentNode() != null)) {
-			node = node.getParentNode();
-		}
-		String name = node.getNodeName();
-		if (node.getNodeType() == Node.ELEMENT_NODE) {
-			// Metaclass metaclass = UPF
-			// .getMetaclass(name, DomHelper.lookupNamespaceURI(node));
-			// if (metaclass != null) {
-			// NamedNodeMap nodeMap = node.getAttributes();
-			// for (int j = nodeMap.getLength() - 1; j >= 0; j--) {
-			// IDOMAttr attrNode = (IDOMAttr) nodeMap.item(j);
-			// String attrName = attrNode.getName();
-			// String attrValue = attrNode.getValue();
-			// Event event = metaclass.findEvent(attrName);
-			// if (event != null) {
-			// if (attrValue.equals(oldAttrValue)) {
-			// attrNode.setNodeValue(inputHandler);
-			// }
-			// }
-			// }
-			// }
-		}
-		NodeList nodes = node.getChildNodes();
-		int length = nodes.getLength();
-		for (int i = 0; i < length; i++) {
-			Node childNode = nodes.item(i);
-			if (childNode.getNodeType() == Node.ELEMENT_NODE) {
-				modifyHandlerName(inputHandler, childNode, oldAttrValue);
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTContentAssistProcessor.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTContentAssistProcessor.java
deleted file mode 100755
index 6af124a..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTContentAssistProcessor.java
+++ /dev/null
@@ -1,990 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.xwt.IEventConstants;
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.XWTMaps;
-import org.eclipse.xwt.internal.utils.UserData;
-import org.eclipse.xwt.javabean.metadata.Metaclass;
-import org.eclipse.xwt.metadata.IEvent;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.xwt.metadata.IProperty;
-import org.eclipse.xwt.utils.NamedColorsUtil;
-import org.eclipse.xwt.utils.ResourceManager;
-import org.eclipse.jdt.core.IMethod;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.internal.core.JavaProject;
-import org.eclipse.jdt.internal.ui.JavaPluginImages;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-import org.eclipse.wst.xml.ui.internal.contentassist.AbstractContentAssistProcessor;
-import org.eclipse.wst.xml.ui.internal.contentassist.ContentAssistRequest;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImages;
-import org.eclipse.wst.xml.ui.internal.preferences.XMLUIPreferenceNames;
-import org.eclipse.wst.xml.ui.internal.templates.TemplateContextTypeIdsXML;
-import org.eclipse.xwt.ui.utils.ImageManager;
-import org.eclipse.xwt.vex.contentassist.SelectionCompletionProposal;
-import org.eclipse.xwt.vex.contentassist.VEXTemplateCompletionProcessor;
-import org.eclipse.xwt.vex.dom.DomHelper;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-public class XWTContentAssistProcessor extends AbstractContentAssistProcessor
-		implements IPropertyChangeListener {
-	static final String HANDLER_PREFIX = "on";
-	static SelectionCompletionProposal[] booleanProposals;
-	static SelectionCompletionProposal[] colorsProposals;
-	static SelectionCompletionProposal[] stylesProposals;
-	static SelectionCompletionProposal[] acceleratorsProposals;
-
-	protected IPreferenceStore fPreferenceStore = null;
-	protected IResource fResource = null;
-	private VEXTemplateCompletionProcessor fTemplateProcessor = null;
-	private List<String> fTemplateContexts = new ArrayList<String>();
-
-	protected Comparator<ICompletionProposal> comparator = new Comparator<ICompletionProposal>() {
-
-		public int compare(ICompletionProposal o1, ICompletionProposal o2) {
-			return o1.getDisplayString().compareTo(o2.getDisplayString());
-		}
-	};
-
-	static SelectionCompletionProposal[] getBooleanProposals() {
-		if (booleanProposals == null) {
-			String[] values = new String[] { "True", "False" };
-			Image image = ImageManager
-					.get(XMLEditorPluginImages.IMG_OBJ_ATTRIBUTE);
-			booleanProposals = new SelectionCompletionProposal[values.length];
-			for (int j = 0; j < values.length; j++) {
-				String pattern = "\"" + values[j] + "\"";
-				booleanProposals[j] = new SelectionCompletionProposal(pattern,
-						0, 0, 1, values[j].length(), image, values[j], null,
-						null);
-			}
-		}
-		return booleanProposals;
-	}
-
-	static SelectionCompletionProposal[] getColorsProposals() {
-		if (colorsProposals == null) {
-			Collection<String> names = XWTMaps.getColorKeys();
-			String[] colorNames = NamedColorsUtil.getColorNames();
-			colorsProposals = new SelectionCompletionProposal[names.size()
-					+ colorNames.length];
-
-			int i = 0;
-			for (String colorStr : names) {
-				Color color = ResourceManager.resources.getColor(colorStr);
-				SelectionCompletionProposal p = createColorProposal(color,
-						colorStr);
-				if (p != null) {
-					colorsProposals[i++] = p;
-				}
-			}
-			for (String colorName : colorNames) {
-				Color color = ResourceManager.resources.getColor(colorName);
-				SelectionCompletionProposal p = createColorProposal(color,
-						colorName);
-				if (p != null) {
-					colorsProposals[i++] = p;
-				}
-			}
-		}
-		return colorsProposals;
-	}
-
-	static SelectionCompletionProposal createColorProposal(Color color,
-			String colorName) {
-		if (color != null) {
-			String pattern = "\"" + colorName + "\"";
-			Image image = new Image(null, 16, 16);
-			GC gc = new GC(image);
-			gc.setBackground(color);
-			gc.fillRectangle(0, 0, 16, 16);
-			gc.dispose();
-			return new SelectionCompletionProposal(pattern, 0, 0, 1,
-					colorName.length(), image, colorName, null, null);
-		}
-		return null;
-
-	}
-
-	static SelectionCompletionProposal[] getStylesProposals() {
-		if (stylesProposals == null) {
-			Collection<String> names = XWTMaps.getStyleKeys();
-			stylesProposals = new SelectionCompletionProposal[names.size()];
-			int i = 0;
-			for (String string : names) {
-				String pattern = "\"" + string + "\"";
-				stylesProposals[i++] = new SelectionCompletionProposal(pattern,
-						0, 0, 1, string.length(), null, string, null, null);
-			}
-		}
-		return stylesProposals;
-	}
-
-	static SelectionCompletionProposal[] getAcceleratorsProposals() {
-		if (acceleratorsProposals == null) {
-			Collection<String> names = XWTMaps.getAcceleratorKeys();
-			acceleratorsProposals = new SelectionCompletionProposal[names
-					.size()];
-			int i = 0;
-			for (String string : names) {
-				String pattern = "\"" + string + "\"";
-				acceleratorsProposals[i++] = new SelectionCompletionProposal(
-						pattern, 0, 0, 1, string.length(), null, string, null,
-						null);
-			}
-		}
-		return acceleratorsProposals;
-	}
-
-	@Override
-	protected void addAttributeNameProposals(
-			ContentAssistRequest contentAssistRequest) {
-		addXAMLPropertyNameProposals(contentAssistRequest);
-
-		addTemplates(contentAssistRequest, TemplateContextTypeIdsXML.ATTRIBUTE);
-		super.addAttributeNameProposals(contentAssistRequest);
-	}
-
-	private void addXAMLPropertyNameProposals(
-			ContentAssistRequest contentAssistRequest) {
-		List<ICompletionProposal> proposalCollector = new ArrayList<ICompletionProposal>();
-		List<ICompletionProposal> macrosCollector = new ArrayList<ICompletionProposal>();
-
-		//
-		Node node = contentAssistRequest.getNode();
-		String name = getNodeName(node);
-
-		HashSet<String> existing = new HashSet<String>();
-		NamedNodeMap namedNodeMap = node.getAttributes();
-		for (int i = 0; i < namedNodeMap.getLength(); i++) {
-			Node attributeNode = namedNodeMap.item(i);
-			String attributeName = attributeNode.getNodeName();
-			existing.add(attributeName);
-		}
-		boolean useProposalList = !contentAssistRequest.shouldSeparate();
-		int offset = contentAssistRequest.getReplacementBeginPosition();
-		int replacementLength = contentAssistRequest.getReplacementLength();
-		IDocument document = fTextViewer.getDocument();
-		String prefixed = null;
-		try {
-			prefixed = document.get(offset, replacementLength).toLowerCase();
-		} catch (BadLocationException e1) {
-		}
-
-		IMetaclass metaclass = XWT.getMetaclass(name,
-				DomHelper.lookupNamespaceURI(node));
-		if (metaclass != null) {
-			IProperty[] properties = metaclass.getProperties();
-			for (IProperty property : properties) {
-				Class<?> propertyType = property.getType();
-				if (propertyType != null
-						&& Control.class.isAssignableFrom(propertyType)) {
-					continue;
-				}
-
-				String propertyName = property.getName();
-				if (prefixed != null
-						&& !propertyName.toLowerCase().startsWith(prefixed)) {
-					continue;
-				}
-
-				if (!existing.contains(propertyName)) {
-					String defaultValueString = "";
-					if (propertyName.equalsIgnoreCase("style")) {
-						propertyName = "x:style";
-						defaultValueString = "SWT.NONE";
-					}
-					String replacementString = propertyName + "=\""
-							+ defaultValueString + "\" ";
-					Image image = JavaPluginImages
-							.get(JavaPluginImages.IMG_FIELD_PUBLIC);
-					SelectionCompletionProposal proposal = new SelectionCompletionProposal(
-							replacementString, offset, replacementLength,
-							propertyName.length() + 2,
-							defaultValueString.length(), image, propertyName,
-							null, "Property: " + propertyName);
-					if (useProposalList) {
-						proposalCollector.add(proposal);
-					} else {
-						macrosCollector.add(proposal);
-					}
-				}
-			}
-
-			IEvent[] events = metaclass.getEvents();
-			for (IEvent event : events) {
-				String eventName = event.getName();
-				if (prefixed != null
-						&& !eventName.toLowerCase().startsWith(prefixed)) {
-					continue;
-				}
-
-				eventName = Character.toUpperCase(eventName.charAt(0))
-						+ eventName.substring(1) + IEventConstants.SUFFIX;
-				if (event.getName() != null
-						&& (event.getName().equals(IEventConstants.XWT_LOADED) || 
-								event.getName().equals(IEventConstants.XWT_LOADED_EVENT))) {
-					eventName = IEventConstants.XWT_LOADED_EVENT;
-				}
-
-				if (!existing.contains(eventName)) {
-					String replacementString = eventName + "=\""
-							+ HANDLER_PREFIX + eventName + "\" ";
-					Image image = ImageManager.get(ImageManager.IMG_EVENT);
-					SelectionCompletionProposal proposal = new SelectionCompletionProposal(
-							replacementString, offset, replacementLength,
-							eventName.length() + 2, eventName.length()
-									+ HANDLER_PREFIX.length(), image,
-							eventName, null, "Event: " + eventName);
-					if (useProposalList) {
-						proposalCollector.add(proposal);
-					} else {
-						macrosCollector.add(proposal);
-					}
-				}
-			}
-		}
-
-		Node parentNode = node.getParentNode();
-		String parentName = getNodeName(parentNode);
-		try {
-			IMetaclass parentMetaclass = XWT.getMetaclass(parentName,
-					DomHelper.lookupNamespaceURI(parentNode));
-			if (parentMetaclass != null) {
-				// Attached property
-			}
-		} catch (Exception e) {
-		}
-
-		Collections.sort(proposalCollector, comparator);
-		Collections.sort(macrosCollector, comparator);
-
-		for (ICompletionProposal proposal : proposalCollector) {
-			contentAssistRequest.addProposal(proposal);
-		}
-
-		for (ICompletionProposal proposal : macrosCollector) {
-			contentAssistRequest.addMacro(proposal);
-		}
-	}
-
-	@Override
-	protected void addAttributeValueProposals(
-			ContentAssistRequest contentAssistRequest) {
-		addXAMLPropertyValueProposals(contentAssistRequest);
-
-		addTemplates(contentAssistRequest,
-				TemplateContextTypeIdsXML.ATTRIBUTE_VALUE);
-		super.addAttributeValueProposals(contentAssistRequest);
-	}
-
-	private void addXAMLPropertyValueProposals(
-			ContentAssistRequest contentAssistRequest) {
-		List<ICompletionProposal> proposalCollector = new ArrayList<ICompletionProposal>();
-		List<ICompletionProposal> macrosCollector = new ArrayList<ICompletionProposal>();
-
-		IDOMNode node = (IDOMNode) contentAssistRequest.getNode();
-		String name = getNodeName(node);
-		IMetaclass metaclass = XWT.getMetaclass(name,
-				DomHelper.lookupNamespaceURI(node));
-		StyledText textWidget = fTextViewer.getTextWidget();
-		if (metaclass != null) {
-			// Find the attribute region and name for which this position should
-			// have a value proposed
-			IStructuredDocumentRegion open = node
-					.getFirstStructuredDocumentRegion();
-			ITextRegionList openRegions = open.getRegions();
-			int m = openRegions.indexOf(contentAssistRequest.getRegion());
-			if (m < 0) {
-				return;
-			}
-			ITextRegion nameRegion = null;
-			while (m >= 0) {
-				nameRegion = openRegions.get(m--);
-				if (nameRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
-					break;
-				}
-			}
-
-			// the name region is REQUIRED to do anything useful
-			if (nameRegion != null) {
-				// Retrieve the declaration
-				CMElementDeclaration elementDecl = getCMElementDeclaration(node);
-
-				// String attributeName = nameRegion.getText();
-				String attributeName = open.getText(nameRegion);
-				IProperty property = metaclass.findProperty(attributeName);
-				if (attributeName.equalsIgnoreCase("x:style")
-						|| property != null) {
-					int offset = contentAssistRequest
-							.getReplacementBeginPosition();
-					int replacementLength = contentAssistRequest
-							.getReplacementLength();
-					boolean useProposalList = !contentAssistRequest
-							.shouldSeparate();
-
-					String prefixed = null;
-					String prefixedQuote = "";
-					boolean fullValue = true;
-					try {
-						int caretIndex = textWidget.getCaretOffset();
-						IDocument document = fTextViewer.getDocument();
-						prefixed = document.get(offset, caretIndex - offset)
-								.toLowerCase();
-						if (prefixed.equals("\"\"")) {
-							prefixed = null;
-						}
-					} catch (BadLocationException e1) {
-					}
-					if (prefixed != null) {
-						prefixedQuote = prefixed + "\"";
-						fullValue = false;
-					}
-
-					// filter accelerators of menu element.
-					if (attributeName.equalsIgnoreCase("accelerator")) {
-						SelectionCompletionProposal[] proposals = getAcceleratorsProposals();
-						for (int j = 0; j < proposals.length; j++) {
-							String pattern = proposals[j]
-									.getReplacementString();
-							if (prefixed != null
-									&& ((!pattern.toLowerCase().startsWith(
-											prefixed) && !fullValue) || prefixedQuote
-											.equalsIgnoreCase(pattern))) {
-								continue;
-							}
-
-							proposals[j].setReplacementOffset(offset);
-							proposals[j]
-									.setReplacementLength(replacementLength);
-							if (useProposalList) {
-								proposalCollector.add(proposals[j]);
-							} else {
-								macrosCollector.add(proposals[j]);
-							}
-						}
-						Collections.sort(proposalCollector, comparator);
-						Collections.sort(macrosCollector, comparator);
-
-						for (ICompletionProposal proposal : proposalCollector) {
-							contentAssistRequest.addProposal(proposal);
-						}
-
-						for (ICompletionProposal proposal : macrosCollector) {
-							contentAssistRequest.addMacro(proposal);
-						}
-						return;
-					}
-
-					// styles TODO: filter styles of each element.
-					if (attributeName.equalsIgnoreCase("x:style")) {
-						SelectionCompletionProposal[] proposals = getStylesProposals();
-						for (int j = 0; j < proposals.length; j++) {
-							String pattern = proposals[j]
-									.getReplacementString();
-							if (prefixed != null
-									&& ((!pattern.toLowerCase().startsWith(
-											prefixed) && !fullValue) || prefixedQuote
-											.equalsIgnoreCase(pattern))) {
-								continue;
-							}
-
-							proposals[j].setReplacementOffset(offset);
-							proposals[j]
-									.setReplacementLength(replacementLength);
-							if (useProposalList) {
-								proposalCollector.add(proposals[j]);
-							} else {
-								macrosCollector.add(proposals[j]);
-							}
-						}
-						Collections.sort(proposalCollector, comparator);
-						Collections.sort(macrosCollector, comparator);
-
-						for (ICompletionProposal proposal : proposalCollector) {
-							contentAssistRequest.addProposal(proposal);
-						}
-
-						for (ICompletionProposal proposal : macrosCollector) {
-							contentAssistRequest.addMacro(proposal);
-						}
-						return;
-					}
-					Class<?> javaType = property.getType();
-					if (javaType == Boolean.class || javaType == boolean.class) {
-						SelectionCompletionProposal[] proposals = getBooleanProposals();
-						for (int j = 0; j < proposals.length; j++) {
-							String pattern = proposals[j]
-									.getReplacementString();
-							if (prefixed != null
-									&& ((!pattern.toLowerCase().startsWith(
-											prefixed) && !fullValue) || prefixedQuote
-											.equalsIgnoreCase(pattern))) {
-								continue;
-							}
-
-							proposals[j].setReplacementOffset(offset);
-							proposals[j]
-									.setReplacementLength(replacementLength);
-							if (useProposalList) {
-								proposalCollector.add(proposals[j]);
-							} else {
-								macrosCollector.add(proposals[j]);
-							}
-						}
-					} else if (javaType != null && javaType.isEnum()) {
-						Object[] objects = javaType.getEnumConstants();
-
-						IConverter converter = XWT.findConvertor(javaType,
-								String.class);
-						for (int j = 0; j < objects.length; j++) {
-							String valueString = "";
-							if (converter != null) {
-								Object stringValue = converter
-										.convert(objects[j]);
-								if (stringValue != null) {
-									valueString = stringValue.toString();
-								}
-							} else {
-								valueString = objects[j].toString();
-							}
-							String pattern = "\"" + valueString + "\"";
-							if (prefixed != null
-									&& ((!pattern.toLowerCase().startsWith(
-											prefixed) && !fullValue) || prefixedQuote
-											.equalsIgnoreCase(pattern))) {
-								continue;
-							}
-							Image image = ImageManager
-									.get(XMLEditorPluginImages.IMG_OBJ_ENUM);
-							SelectionCompletionProposal proposal = new SelectionCompletionProposal(
-									pattern, offset, replacementLength, 1,
-									valueString.length(), image, valueString,
-									null, null);
-							if (useProposalList) {
-								proposalCollector.add(proposal);
-							} else {
-								macrosCollector.add(proposal);
-							}
-						}
-					} else if (javaType.isAssignableFrom(Color.class)) {
-						SelectionCompletionProposal[] colorsProposals = getColorsProposals();
-						for (SelectionCompletionProposal proposal : colorsProposals) {
-							String pattern = proposal.getReplacementString();
-							if (prefixed != null
-									&& ((!pattern.toLowerCase().startsWith(
-											prefixed) && !fullValue) || prefixedQuote
-											.equalsIgnoreCase(pattern))) {
-								continue;
-							}
-
-							proposal.setReplacementOffset(offset);
-							proposal.setReplacementLength(replacementLength);
-							if (useProposalList) {
-								proposalCollector.add(proposal);
-							} else {
-								macrosCollector.add(proposal);
-							}
-						}
-					}
-				} else {
-					IEvent[] allEvents = metaclass.getEvents();
-					JavaProject javaProject = (JavaProject) textWidget
-							.getData("javaProject");
-					String className = (String) textWidget.getData("className");
-					List<String> javaMethods = getJavaMethods(javaProject,
-							className);
-					int offset = contentAssistRequest
-							.getReplacementBeginPosition();
-					int caretIndex = textWidget.getCaretOffset();
-					IDocument document = fTextViewer.getDocument();
-					String prefixed = null;
-					try {
-						prefixed = document.get(offset + 1, caretIndex - offset
-								- 1);
-					} catch (BadLocationException e) {
-						e.printStackTrace();
-					}
-					int replacementLength = contentAssistRequest
-							.getReplacementLength();
-					boolean useProposalList = !contentAssistRequest
-							.shouldSeparate();
-					for (Iterator<String> iterator = javaMethods.iterator(); iterator
-							.hasNext();) {
-						String valueString = iterator.next();
-						if (valueString.equals(prefixed))
-							continue;
-						String pattern = "\"" + valueString + "\"";
-						SelectionCompletionProposal proposal = new SelectionCompletionProposal(
-								pattern, offset, replacementLength, 1,
-								valueString.length(), null, valueString, null,
-								null);
-						if (useProposalList) {
-							proposalCollector.add(proposal);
-						} else {
-							macrosCollector.add(proposal);
-						}
-					}
-				}
-			}
-		}
-
-		Collections.sort(proposalCollector, comparator);
-		Collections.sort(macrosCollector, comparator);
-
-		for (ICompletionProposal proposal : proposalCollector) {
-			contentAssistRequest.addProposal(proposal);
-		}
-
-		for (ICompletionProposal proposal : macrosCollector) {
-			contentAssistRequest.addMacro(proposal);
-		}
-	}
-
-	@Override
-	protected void addEmptyDocumentProposals(
-			ContentAssistRequest contentAssistRequest) {
-		addTemplates(contentAssistRequest, TemplateContextTypeIdsXML.NEW);
-		super.addEmptyDocumentProposals(contentAssistRequest);
-	}
-
-	@Override
-	protected void addTagInsertionProposals(
-			ContentAssistRequest contentAssistRequest, int childPosition) {
-		addXAMLElementProposals(contentAssistRequest);
-		addTemplates(contentAssistRequest, TemplateContextTypeIdsXML.TAG);
-		super.addTagInsertionProposals(contentAssistRequest, childPosition);
-	}
-
-	private void addXAMLElementProposals(
-			ContentAssistRequest contentAssistRequest) {
-		List<ICompletionProposal> proposalCollector = new ArrayList<ICompletionProposal>();
-		List<ICompletionProposal> macrosCollector = new ArrayList<ICompletionProposal>();
-
-		List<String> addedTags = new ArrayList<String>();
-
-		boolean useProposalList = !contentAssistRequest.shouldSeparate();
-		int offset = contentAssistRequest.getReplacementBeginPosition();
-		int replacementLength = contentAssistRequest.getReplacementLength();
-		String prefixed = null;
-		try {
-			IDocument document = fTextViewer.getDocument();
-			prefixed = document.get(offset, replacementLength).toLowerCase();
-		} catch (BadLocationException e1) {
-		}
-
-		Node node = contentAssistRequest.getNode();
-		if (node == null) {
-			return;
-		}
-		if (node instanceof IDOMText) {
-			IDOMText text = (IDOMText) node;
-			offset = text.getStartOffset();
-			replacementLength = text.getLength();
-			try {
-				IDocument document = fTextViewer.getDocument();
-				prefixed = document.get(offset, replacementLength).trim()
-						.toLowerCase();
-			} catch (BadLocationException e1) {
-			}
-		} else if (node instanceof IDOMNode) {
-			IDOMNode domNode = (IDOMNode) node;
-			NodeList children = domNode.getChildNodes();
-			for (int i = 0; i < children.getLength(); i++) {
-				Node child = children.item(i);
-				if (child instanceof IDOMText) {
-					IDOMText text = (IDOMText) child;
-					offset = text.getStartOffset();
-					replacementLength = text.getLength();
-					try {
-						IDocument document = fTextViewer.getDocument();
-						prefixed = document.get(offset, replacementLength)
-								.trim().toLowerCase();
-					} catch (BadLocationException e1) {
-					}
-					break;
-				}
-			}
-		}
-
-		while (node.getNodeType() != Node.ELEMENT_NODE) {
-			node = node.getParentNode();
-			if (node == null) {
-				return;
-			}
-		}
-
-		boolean containControls = false;
-		String name = getNodeName(node);
-		if (name.indexOf(".") != -1) {
-			if (name.toLowerCase().endsWith(".control")) {
-				name = "Control";// Add controls to TabItem, CoolItem...
-				containControls = true;
-			} else {
-				List<SelectionCompletionProposal> proposals = createPropertyNodeProposals(
-						name, offset, replacementLength);
-				if (useProposalList) {
-					proposalCollector.addAll(proposals);
-				} else {
-					macrosCollector.addAll(proposals);
-				}
-				Collections.sort(proposalCollector, comparator);
-				Collections.sort(macrosCollector, comparator);
-
-				for (ICompletionProposal proposal : proposalCollector) {
-					contentAssistRequest.addProposal(proposal);
-				}
-
-				for (ICompletionProposal proposal : macrosCollector) {
-					contentAssistRequest.addMacro(proposal);
-				}
-				return;
-			}
-		}
-		IMetaclass metaclass = XWT.getMetaclass(name,
-				DomHelper.lookupNamespaceURI(node));
-		String tagName = name + ".Resources";
-		if (!addedTags.contains(tagName)
-				&& (prefixed == null || tagName.toLowerCase().startsWith(
-						prefixed))) {
-			addedTags.add(tagName);
-
-			String pattern = "<" + tagName + "></" + tagName + ">";
-			Image image = ImageManager.get(ImageManager.IMG_RESOURCES);
-			SelectionCompletionProposal proposal = new SelectionCompletionProposal(
-					pattern, offset, replacementLength, tagName.length() + 2,
-					0, image, tagName, null, "Element resources");
-			if (useProposalList) {
-				proposalCollector.add(proposal);
-			} else {
-				macrosCollector.add(proposal);
-			}
-		}
-
-		// layout
-		String layout = name + ".layout";
-		if (!addedTags.contains(layout)
-				&& (prefixed == null || layout.startsWith(prefixed))) {
-			SelectionCompletionProposal layoutProposal = createLayoutProposal(
-					metaclass, layout, offset, replacementLength);
-			if (layoutProposal != null) {
-				if (useProposalList) {
-					proposalCollector.add(layoutProposal);
-				} else {
-					macrosCollector.add(layoutProposal);
-				}
-			}
-		}
-		// layoutData
-		String layoutData = name + ".layoutData";
-		if (!addedTags.contains(layout)
-				&& (prefixed == null || layout.startsWith(prefixed))) {
-			SelectionCompletionProposal proposal = createLayoutDataProposal(
-					metaclass, layoutData, offset, replacementLength);
-			if (proposal != null) {
-				if (useProposalList) {
-					proposalCollector.add(proposal);
-				} else {
-					macrosCollector.add(proposal);
-				}
-			}
-		}
-		if (metaclass != null) {
-			if (containControls
-					|| Composite.class.isAssignableFrom(metaclass.getType())) {
-				IMetaclass[] metaclasses = XWT.getAllMetaclasses();
-				for (IMetaclass type : metaclasses) {
-					if (Control.class.isAssignableFrom(type.getType())
-							&& !type.isAbstract()) {
-
-						String typeName = type.getName();
-						if (prefixed != null
-								&& !typeName.toLowerCase().startsWith(prefixed)) {
-							continue;
-						}
-						if (addedTags.contains(typeName)) {
-							continue;
-						} else {
-							addedTags.add(typeName);
-						}
-						String pattern = "<" + typeName + "></" + typeName
-								+ ">";
-						Image image = ImageManager
-								.get(ImageManager.IMG_ELEMENT);
-						SelectionCompletionProposal proposal = new SelectionCompletionProposal(
-								pattern, offset, replacementLength,
-								typeName.length() + 2, 0, image, typeName,
-								null, null);
-						if (useProposalList) {
-							proposalCollector.add(proposal);
-						} else {
-							macrosCollector.add(proposal);
-						}
-					}
-				}
-			}
-		}
-
-		Collections.sort(proposalCollector, comparator);
-		Collections.sort(macrosCollector, comparator);
-
-		for (ICompletionProposal proposal : proposalCollector) {
-			contentAssistRequest.addProposal(proposal);
-		}
-
-		for (ICompletionProposal proposal : macrosCollector) {
-			contentAssistRequest.addMacro(proposal);
-		}
-	}
-
-	private List<SelectionCompletionProposal> createPropertyNodeProposals(
-			String tagName, int offset, int replacementLength) {
-		int index = tagName.indexOf(".");
-		if (index == -1) {
-			return Collections.emptyList();
-		}
-		List<SelectionCompletionProposal> proposals = new ArrayList<SelectionCompletionProposal>();
-		String property = tagName.substring(index + 1);
-		if ("layout".equalsIgnoreCase(property)) {
-			String[] layouts = new String[] { "GridLayout", "FillLayout",
-					"RowLayout", "StackLayout", "FormLayout" };
-			for (int i = 0; i < layouts.length; i++) {
-				String pattern = "<" + layouts[i] + "/>";
-				Image image = ImageManager.get(ImageManager.IMG_ELEMENT);
-				SelectionCompletionProposal p = new SelectionCompletionProposal(
-						pattern, offset, replacementLength,
-						layouts[i].length() + 2, 0, image, layouts[i], null,
-						"Container Layout.");
-				proposals.add(p);
-			}
-		} else if ("layoutData".equalsIgnoreCase(property)) {
-			String[] layoutDatas = new String[] { "GridData", "StackData",
-					"FormData", "RowData" };
-			for (int i = 0; i < layoutDatas.length; i++) {
-				String pattern = "<" + layoutDatas[i] + "></" + layoutDatas[i]
-						+ ">";
-				Image image = ImageManager.get(ImageManager.IMG_ELEMENT);
-				SelectionCompletionProposal p = new SelectionCompletionProposal(
-						pattern, offset, replacementLength,
-						layoutDatas[i].length() + 2, 0, image, layoutDatas[i],
-						null, "Container LayoutData.");
-				proposals.add(p);
-			}
-		}
-		return proposals;
-	}
-
-	private SelectionCompletionProposal createLayoutDataProposal(
-			IMetaclass metaclass, String layoutData, int offset,
-			int replacementLength) {
-		if (!Control.class.isAssignableFrom(metaclass.getType())) {
-			return null;
-		}
-		String pattern = "<" + layoutData + "></" + layoutData + ">";
-		Image image = JavaPluginImages.get(JavaPluginImages.IMG_FIELD_PUBLIC);
-		return new SelectionCompletionProposal(pattern, offset,
-				replacementLength, layoutData.length() + 2, 0, image,
-				layoutData, null, "Control LayoutData.");
-	}
-
-	private SelectionCompletionProposal createLayoutProposal(
-			IMetaclass metaclass, String tagName, int offset,
-			int replacementLength) {
-		if (!Composite.class.isAssignableFrom(metaclass.getType())) {
-			return null;
-		}
-		String pattern = "<" + tagName + "></" + tagName + ">";
-		Image image = JavaPluginImages.get(JavaPluginImages.IMG_FIELD_PUBLIC);
-		return new SelectionCompletionProposal(pattern, offset,
-				replacementLength, tagName.length() + 2, 0, image, tagName,
-				null, "Container Layout.");
-	}
-
-	private String getNodeName(Node node) {
-		String name = node.getNodeName();
-		int index = name.indexOf(":");
-		if (index != -1) {
-			name = name.substring(index + 1);
-		}
-		return name;
-	}
-
-	/**
-	 * Adds templates to the list of proposals
-	 * 
-	 * @param contentAssistRequest
-	 * @param context
-	 */
-	private void addTemplates(ContentAssistRequest contentAssistRequest,
-			String context) {
-		addTemplates(contentAssistRequest, context,
-				contentAssistRequest.getReplacementBeginPosition());
-	}
-
-	/**
-	 * Adds templates to the list of proposals
-	 * 
-	 * @param contentAssistRequest
-	 * @param context
-	 * @param startOffset
-	 */
-	private void addTemplates(ContentAssistRequest contentAssistRequest,
-			String context, int startOffset) {
-		if (contentAssistRequest == null) {
-			return;
-		}
-
-		// if already adding template proposals for a certain context type, do
-		// not add again
-		if (!fTemplateContexts.contains(context)) {
-			fTemplateContexts.add(context);
-			boolean useProposalList = !contentAssistRequest.shouldSeparate();
-
-			if (getTemplateCompletionProcessor() != null) {
-				getTemplateCompletionProcessor().setContextType(context);
-				ICompletionProposal[] proposals = getTemplateCompletionProcessor()
-						.computeCompletionProposals(fTextViewer, startOffset);
-				for (int i = 0; i < proposals.length; ++i) {
-					if (useProposalList) {
-						contentAssistRequest.addProposal(proposals[i]);
-					} else {
-						contentAssistRequest.addMacro(proposals[i]);
-					}
-				}
-			}
-		}
-	}
-
-	@Override
-	protected ContentAssistRequest computeCompletionProposals(
-			int documentPosition, String matchString,
-			ITextRegion completionRegion, IDOMNode treeNode, IDOMNode xmlnode) {
-		ContentAssistRequest request = super.computeCompletionProposals(
-				documentPosition, matchString, completionRegion, treeNode,
-				xmlnode);
-		// bug115927 use original document position for all/any region
-		// templates
-		addTemplates(request, TemplateContextTypeIdsXML.ALL, documentPosition);
-		return request;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.xml.ui.contentassist.AbstractContentAssistProcessor#
-	 * computeCompletionProposals(org.eclipse.jface.text.ITextViewer, int)
-	 */
-	@Override
-	public ICompletionProposal[] computeCompletionProposals(
-			ITextViewer textViewer, int documentPosition) {
-		fTemplateContexts.clear();
-		return super.computeCompletionProposals(textViewer, documentPosition);
-	}
-
-	protected IPreferenceStore getPreferenceStore() {
-		if (fPreferenceStore == null) {
-			fPreferenceStore = XMLUIPlugin.getDefault().getPreferenceStore();
-		}
-		return fPreferenceStore;
-	}
-
-	protected VEXTemplateCompletionProcessor getTemplateCompletionProcessor() {
-		if (fTemplateProcessor == null) {
-			fTemplateProcessor = new VEXTemplateCompletionProcessor();
-		}
-		return fTemplateProcessor;
-	}
-
-	@Override
-	protected void init() {
-		getPreferenceStore().addPropertyChangeListener(this);
-		reinit();
-	}
-
-	public void propertyChange(PropertyChangeEvent event) {
-		String property = event.getProperty();
-
-		if ((property.compareTo(XMLUIPreferenceNames.AUTO_PROPOSE) == 0)
-				|| (property.compareTo(XMLUIPreferenceNames.AUTO_PROPOSE_CODE) == 0)) {
-			reinit();
-		}
-	}
-
-	protected void reinit() {
-		String key = XMLUIPreferenceNames.AUTO_PROPOSE;
-		boolean doAuto = getPreferenceStore().getBoolean(key);
-		if (doAuto) {
-			key = XMLUIPreferenceNames.AUTO_PROPOSE_CODE;
-			completionProposalAutoActivationCharacters = getPreferenceStore()
-					.getString(key).toCharArray();
-		} else {
-			completionProposalAutoActivationCharacters = null;
-		}
-	}
-
-	@Override
-	public void release() {
-		super.release();
-		getPreferenceStore().removePropertyChangeListener(this);
-	}
-
-	private List<String> getJavaMethods(JavaProject javaProject,
-			String className) {
-		List<String> javaMethods = new ArrayList<String>();
-		try {
-			IType type = javaProject.findType(className);
-			IMethod[] methods = type.getMethods();
-			for (int i = 0; i < methods.length; i++) {
-				IMethod method = methods[i];
-				String methodName = method.getElementName();
-				javaMethods.add(methodName);
-			}
-		} catch (JavaModelException e) {
-			e.printStackTrace();
-		}
-		return javaMethods;
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTContentOutlineConfiguration.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTContentOutlineConfiguration.java
deleted file mode 100755
index 39d3bce..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTContentOutlineConfiguration.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor;
-
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.ui.views.contentoutline.XMLContentOutlineConfiguration;
-import org.eclipse.xwt.ui.editor.treeviewer.XWTNodeActionManager;
-
-public class XWTContentOutlineConfiguration extends XMLContentOutlineConfiguration {
-
-	public XWTContentOutlineConfiguration() {
-	}
-
-	protected XWTNodeActionManager createNodeActionManager(TreeViewer treeViewer) {
-		return new XWTNodeActionManager((IStructuredModel) treeViewer.getInput(), treeViewer);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTCustomPalettePage.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTCustomPalettePage.java
deleted file mode 100755
index 98c9db7..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTCustomPalettePage.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor;
-
-import org.eclipse.gef.ui.palette.PaletteViewer;
-import org.eclipse.gef.ui.palette.PaletteViewerProvider;
-import org.eclipse.gef.ui.views.palette.PaletteViewerPage;
-
-/**
- * @author bqian
- * 
- */
-public class XWTCustomPalettePage extends PaletteViewerPage {
-	/**
-	 * Constructor
-	 * 
-	 * @param provider
-	 *            the provider used to create a PaletteViewer
-	 */
-	public XWTCustomPalettePage(PaletteViewerProvider provider) {
-		super(provider);
-	}
-
-	/**
-	 * @return the PaletteViewer created and displayed by this page
-	 */
-	public PaletteViewer getPaletteViewer() {
-		return viewer;
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTDocumentationTextHover.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTDocumentationTextHover.java
deleted file mode 100755
index 3c2a75a..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTDocumentationTextHover.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor;
-
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.ui.internal.taginfo.XMLTagInfoHoverProcessor;
-
-public class XWTDocumentationTextHover extends XMLTagInfoHoverProcessor {
-
-	public XWTDocumentationTextHover() {
-		// TODO Auto-generated constructor stub
-	}
-
-	@Override
-	protected String computeTagAttNameHelp(IDOMNode xmlnode, IDOMNode parentNode, IStructuredDocumentRegion flatNode, ITextRegion region) {
-		// TODO Auto-generated method stub
-		return super.computeTagAttNameHelp(xmlnode, parentNode, flatNode, region);
-	}
-
-	@Override
-	protected String computeTagAttValueHelp(IDOMNode xmlnode, IDOMNode parentNode, IStructuredDocumentRegion flatNode, ITextRegion region) {
-		// TODO Auto-generated method stub
-		return super.computeTagAttValueHelp(xmlnode, parentNode, flatNode, region);
-	}
-
-	@Override
-	protected String computeTagNameHelp(IDOMNode xmlnode, IDOMNode parentNode, IStructuredDocumentRegion flatNode, ITextRegion region) {
-		// TODO Auto-generated method stub
-		return super.computeTagNameHelp(xmlnode, parentNode, flatNode, region);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTDropTargetListener.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTDropTargetListener.java
deleted file mode 100755
index 1d630c4..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTDropTargetListener.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *
- * All rights reserved. This program and the accompanying materials            *
- * are made available under the terms of the Eclipse Public License v1.0       *
- * which accompanies this distribution, and is available at                    *
- * http://www.eclipse.org/legal/epl-v10.html                                   *  
- * Contributors:                                                               *  
- *     Soyatec - initial API and implementation                                * 
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.swt.dnd.DropTargetListener;
-import org.eclipse.xwt.ui.editor.dnd.DnDAdapter;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class XWTDropTargetListener implements DropTargetListener {
-
-	private List<DnDAdapter> dndAdapters = new ArrayList<DnDAdapter>();
-	private DnDAdapter acceptAdapter;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.dnd.DropTargetAdapter#dragOver(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	public void dragOver(DropTargetEvent event) {
-		updateAcceptAdapter();
-		if (acceptAdapter != null) {
-			acceptAdapter.dragOver(event);
-		}
-	}
-
-	/**
-	 * @param event
-	 */
-	private void updateAcceptAdapter() {
-		for (DnDAdapter dnd : dndAdapters) {
-			if (dnd.isAccept()) {
-				acceptAdapter = dnd;
-				break;
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.dnd.DropTargetAdapter#dropAccept(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	public void dropAccept(DropTargetEvent event) {
-		if (acceptAdapter != null) {
-			acceptAdapter.dropAccept(event);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.dnd.DropTargetAdapter#drop(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	public void drop(DropTargetEvent event) {
-		if (acceptAdapter != null) {
-			acceptAdapter.drop(event);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.dnd.DropTargetAdapter#dragEnter(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	public void dragEnter(DropTargetEvent event) {
-		updateAcceptAdapter();
-		if (acceptAdapter != null) {
-			acceptAdapter.dragEnter(event);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.dnd.DropTargetAdapter#dragOperationChanged(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	public void dragOperationChanged(DropTargetEvent event) {
-		updateAcceptAdapter();
-		if (acceptAdapter != null) {
-			acceptAdapter.dragOperationChanged(event);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.dnd.DropTargetAdapter#dragLeave(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	public void dragLeave(DropTargetEvent event) {
-		if (acceptAdapter != null) {
-			acceptAdapter.dragLeave(event);
-		}
-	}
-
-	public void addDnDAdapter(DnDAdapter adapter) {
-		dndAdapters.add(adapter);
-	}
-
-	/**
-	 * @param dndAdapters
-	 *            the dndAdapters to set
-	 */
-	public void setDndAdapters(List<DnDAdapter> dndAdapters) {
-		this.dndAdapters = dndAdapters;
-	}
-
-	/**
-	 * @return the dndAdapters
-	 */
-	public List<DnDAdapter> getDndAdapters() {
-		return dndAdapters;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTEditor.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTEditor.java
deleted file mode 100755
index b540e29..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTEditor.java
+++ /dev/null
@@ -1,408 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.xwt.XWT;
-import org.eclipse.jdt.core.ElementChangedEvent;
-import org.eclipse.jdt.core.IElementChangedListener;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.internal.core.JavaModelManager;
-import org.eclipse.jdt.internal.ui.JavaPluginImages;
-import org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor;
-import org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DragSource;
-import org.eclipse.swt.dnd.DragSourceAdapter;
-import org.eclipse.swt.dnd.DragSourceEvent;
-import org.eclipse.swt.dnd.DropTarget;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.swt.dnd.DropTargetListener;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.progress.ProgressManager;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-import org.eclipse.wst.xml.ui.internal.tabletree.IDesignViewer;
-import org.eclipse.wst.xml.ui.internal.tabletree.XMLTableTreeHelpContextIds;
-import org.eclipse.xwt.ui.ExceptionHandle;
-import org.eclipse.xwt.ui.XWTUIPlugin;
-import org.eclipse.xwt.ui.editor.dnd.ImageDnDAdapter;
-import org.eclipse.xwt.ui.editor.dnd.PaletteDnDAdapter;
-import org.eclipse.xwt.ui.editor.dnd.UserDefinedDnDAdapter;
-import org.eclipse.xwt.ui.editor.render.XWTRender;
-import org.eclipse.xwt.ui.editor.treeviewer.XWTTableTreeViewer;
-import org.eclipse.xwt.ui.utils.DisplayUtil;
-import org.eclipse.xwt.ui.utils.ImageManager;
-import org.eclipse.xwt.ui.utils.ProjectContext;
-import org.eclipse.xwt.ui.views.XWTView;
-import org.eclipse.xwt.vex.VEXCodeSynchronizer;
-import org.eclipse.xwt.vex.VEXEditor;
-import org.eclipse.xwt.vex.VEXFileChecker;
-import org.eclipse.xwt.vex.VEXFileFormator;
-import org.eclipse.xwt.vex.VEXRenderer;
-
-public class XWTEditor extends VEXEditor {
-	/** The Java editor. */
-	private CompilationUnitEditor javaEditor;
-
-	private IFile javaFile;
-	private String className;
-
-	private DropTargetListener dropTargetAdapter;
-
-	private ToolItem previewTool;
-	private ToolItem generateTool;
-	private long modificationStamp;
-	private IElementChangedListener elementChangedListener = new IElementChangedListener() {
-		public void elementChanged(ElementChangedEvent event) {
-			if (getFileChecker() != null) {
-				long timeStamp = javaFile.getModificationStamp();
-				if (modificationStamp == timeStamp) {
-					getFileChecker().doCheck(render.getHostClassName());
-				} else {
-					modificationStamp = timeStamp;
-				}
-			}
-		}
-	};
-
-	public XWTEditor() {
-		super(new XWTUIContext());
-	}
-
-	public CompilationUnitEditor getJavaEditor() {
-		return javaEditor;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.vex.VEXEditor#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
-	 */
-	public void init(IEditorSite site, IEditorInput input) throws PartInitException {
-		super.init(site, input);
-		XWTUIPlugin.getDefault().openXWTPerspective();
-	}
-
-	@Override
-	protected IDesignViewer createDesignPage() {
-		XWTTableTreeViewer tableTreeViewer = new XWTTableTreeViewer(getContainer());
-		// Set the default info pop for XML design viewer.
-		XMLUIPlugin.getInstance().getWorkbench().getHelpSystem().setHelp(tableTreeViewer.getControl(), XMLTableTreeHelpContextIds.XML_DESIGN_VIEW_HELPID);
-		return tableTreeViewer;
-	}
-
-	protected VEXRenderer createRender(Canvas container) {
-		return new XWTRender(container, changeListener);
-	}
-
-	protected void createToolBar(CTabFolder tabFolder) {
-		tabFolder.setTabPosition(SWT.TOP);
-		tabFolder.setSimple(false);
-
-		ToolBar toolBar = new ToolBar(tabFolder, SWT.FLAT | SWT.WRAP | SWT.RIGHT);
-		// toolBar.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		previewTool = new ToolItem(toolBar, SWT.PUSH);
-		previewTool.setImage(ImageManager.get(ImageManager.IMG_PREVIEW));
-		previewTool.setToolTipText("Preview");
-		previewTool.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				handlePreview();
-			}
-
-			public void widgetSelected(SelectionEvent e) {
-				handlePreview();
-			}
-		});
-
-		generateTool = new ToolItem(toolBar, SWT.PUSH);
-		generateTool.setImage(JavaPluginImages.get(JavaPluginImages.IMG_OBJS_CLASS));
-		generateTool.setToolTipText("Generate Java codes");
-
-		generateTool.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				generateCLRCodeAction();
-			}
-
-			public void widgetSelected(SelectionEvent e) {
-				generateCLRCodeAction();
-			}
-		});
-		generateTool.setEnabled(false);
-
-		tabFolder.setTopRight(toolBar);
-		tabFolder.setTabHeight(Math.max(toolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT).y, tabFolder.getTabHeight()));
-	}
-
-	void handlePreview() {
-		IFile file = (IFile) getEditorInput().getAdapter(IFile.class);
-		IJavaProject javaProject = JavaCore.create(file.getProject());
-		if (!javaProject.exists()) {
-			return;
-		}
-		try {
-			XWT.setLoadingContext(ProjectContext.getContext(javaProject));
-			DisplayUtil.open(file);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	protected void setJavaEditor(String fullyQualifiedName) {
-		IJavaProject javaProject = getJavaProject();
-		removeElementChangedListener(javaProject);
-		try {
-			if (fullyQualifiedName == null) {
-				return;
-			}
-			IType type = javaProject.findType(fullyQualifiedName);
-			if (type == null || !type.exists()) {
-				return;
-			}
-			javaFile = (IFile) type.getResource();
-			FileEditorInput editorInput = new FileEditorInput(javaFile);
-			if (javaEditor == null) {
-				javaEditor = new CompilationUnitEditor();
-				int javaPageIndex = addPage(javaEditor, editorInput);
-				setPageText(javaPageIndex, "Java");
-				setPageImage(javaPageIndex, JavaPluginImages.get(JavaPluginImages.IMG_OBJS_CLASS));
-
-			} else {
-				javaEditor.setInput(editorInput);
-			}
-			this.className = fullyQualifiedName;
-			if (generateTool != null) {
-				generateTool.setEnabled(true);
-			}
-			addElementChangedListener(javaProject);
-
-			XWTCodeSynchronizer codeSynchronizer = (XWTCodeSynchronizer) getCodeSynchronizer();
-			codeSynchronizer.setType(type);
-		} catch (PartInitException e) {
-			e.printStackTrace();
-		} catch (JavaModelException e) {
-			e.printStackTrace();
-		}
-	}
-
-	protected IJavaProject getJavaProject() {
-		IFile file = (IFile) getEditorInput().getAdapter(IFile.class);
-
-		IJavaProject javaProject = JavaCore.create(file.getProject());
-		if (!javaProject.exists()) {
-			return null;
-		}
-		return javaProject;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISaveablePart#doSave(org.eclipse.core.runtime.IProgressMonitor )
-	 */
-	@Override
-	public void doSave(IProgressMonitor monitor) {
-		super.doSave(monitor);
-		if (javaEditor != null) {
-			javaEditor.doSave(monitor);
-		}
-	}
-
-	protected boolean handleInputChanged(IDocument newInput) {
-		String value = newInput.get();
-		if (newInput == null) {
-			return false;
-		}
-		boolean handling = super.handleInputChanged(newInput);
-		if (handling) {
-			String className = render.getHostClassName();
-			if (this.className == null || !this.className.equals(className)) {
-				setJavaEditor(className);
-			}
-		}
-		refreshXWTView(value);
-		return handling;
-	}
-
-	private void refreshXWTView(String value) {
-		IFile file = (IFile) getEditorInput().getAdapter(IFile.class);
-
-		if (file != null) {
-			XWTUIPlugin.checkStartup();
-			try {
-				XWTView view = (XWTView) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(XWTView.ID);
-				if (view != null) {
-					view.setContentWithException(value, file);
-				}
-			} catch (Exception e) {
-				// No need to handle the refresh.s 
-				// ExceptionHandle.handle(e, "");
-			}
-		}
-	}
-
-	@Override
-	protected VEXFileChecker createFileChecker() {
-		return new XWTFileChecker(getTextEditor());
-	}
-
-	protected VEXCodeSynchronizer createCodeSynchronizer() {
-		try {
-			IJavaProject javaProject = getJavaProject();
-			if (javaProject == null || className == null) {
-				return null;
-			}
-			IType findType = javaProject.findType(className);
-			if (findType != null) {
-				return new XWTCodeSynchronizer(this, findType);
-			}
-		} catch (JavaModelException e) {
-		}
-		return null;
-	}
-
-	public void addElementChangedListener(IJavaProject javaProject) {
-		int eventMask = ElementChangedEvent.POST_CHANGE | ElementChangedEvent.POST_RECONCILE;
-		JavaModelManager.getDeltaState().addElementChangedListener(elementChangedListener, eventMask);
-	}
-
-	public void removeElementChangedListener(IJavaProject javaProject) {
-		int eventMask = ElementChangedEvent.POST_CHANGE | ElementChangedEvent.POST_RECONCILE;
-		JavaModelManager.getDeltaState().removeElementChangedListener(elementChangedListener);
-	}
-
-	public void initializeDND(VEXEditor editor) {
-		if (dropTargetAdapter == null) {
-			dropTargetAdapter = createDropTargetListener();
-		}
-		update(editor);
-	}
-
-	private void update(VEXEditor vexEditor) {
-		// clear up old
-		StyledText styledText = vexEditor.getTextWidget();
-		if (styledText != null) {
-			DropTarget dropTarget = (DropTarget) styledText.getData(DND.DROP_TARGET_KEY);
-			if (dropTarget != null) {
-				dropTarget.removeDropListener(dropTargetAdapter);
-			}
-		}
-
-		// setup new
-		vexEditor.getTextWidget().addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				StyledText styledText = (StyledText) e.widget;
-				DropTarget dropTarget = (DropTarget) styledText.getData(DND.DROP_TARGET_KEY);
-				if (dropTarget != null) {
-					dropTarget.removeDropListener(dropTargetAdapter);
-				}
-			}
-		});
-
-		DropTarget dropTarget = (DropTarget) styledText.getData(DND.DROP_TARGET_KEY);
-		if (dropTarget == null) {
-			dropTarget = new DropTarget(styledText, DND.DROP_MOVE | DND.DROP_COPY);
-			dropTarget.setTransfer(new Transfer[] { LocalSelectionTransfer.getTransfer() });
-		}
-		dropTarget.addDropListener(dropTargetAdapter);
-
-		DragSource dragSource = (DragSource) styledText.getData(DND.DRAG_SOURCE_KEY);
-		if (dragSource == null) {
-			dragSource = new DragSource(styledText, DND.DROP_COPY | DND.DROP_MOVE);
-
-			Transfer[] types = new Transfer[] { TextTransfer.getInstance() };
-
-			dragSource.setTransfer(types);
-		}
-		dragSource.addDragListener(dragSourceAdapter);
-		// if (dropProxy == null) {
-		// dropProxy = new XWTEditorDropProxy(this);
-		// }
-		final PackageExplorerPart part = PackageExplorerPart.getFromActivePerspective();
-		if (part != null) {
-			TreeViewer treeViewer = part.getTreeViewer();
-			dragSource = (DragSource) treeViewer.getControl().getData(DND.DRAG_SOURCE_KEY);
-			if (dragSource != null) {
-				dragSource.addDragListener(new DragSourceAdapter() {
-					public void dragStart(DragSourceEvent event) {
-						part.setLinkingEnabled(false);
-					}
-				});
-			}
-		}
-	}
-
-	private IProgressMonitor getProgressMonitor() {
-		ProgressManager progresManager = (ProgressManager) getSite().getWorkbenchWindow().getWorkbench().getProgressService();
-		IProgressMonitor monitor = progresManager.getDefaultMonitor();
-		return monitor;
-	}
-
-	private XWTDropTargetListener createDropTargetListener() {
-		XWTDropTargetListener dropTargetListener = new XWTDropTargetListener() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.dnd.DropTargetAdapter#drop(org.eclipse.swt.dnd.DropTargetEvent)
-			 */
-			public void drop(DropTargetEvent event) {
-				super.drop(event);
-				IFile file = (IFile) getTextEditor().getEditorInput().getAdapter(IFile.class);
-
-				VEXFileFormator formator = new VEXFileFormator();
-				IDocument document = getTextEditor().getTextViewer().getDocument();
-				try {
-					formator.format(document, file.getContentDescription().getContentType().getId());
-				} catch (CoreException e) {
-					e.printStackTrace();
-				}
-				PackageExplorerPart part = PackageExplorerPart.getFromActivePerspective();
-				if (part != null) {
-					part.setLinkingEnabled(true);
-				}
-			}
-		};
-		dropTargetListener.addDnDAdapter(new PaletteDnDAdapter(this));
-		dropTargetListener.addDnDAdapter(new UserDefinedDnDAdapter(this));
-		dropTargetListener.addDnDAdapter(new ImageDnDAdapter(this));
-		return dropTargetListener;
-	}
-
-	@Override
-	public void setFocus() {
-		super.setFocus();
-		refreshXWTView(super.getTextEditor().getTextViewer().getDocument().get());
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTEditorContributor.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTEditorContributor.java
deleted file mode 100755
index a4e17e8..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTEditorContributor.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor;
-
-import org.eclipse.jdt.internal.ui.JavaPluginImages;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-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.ui.IActionBars;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.ide.IDEActionFactory;
-import org.eclipse.ui.part.MultiPageEditorActionBarContributor;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.texteditor.ITextEditorActionConstants;
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-import org.eclipse.xwt.ui.utils.ImageManager;
-
-/**
- * Manages the installation/deinstallation of global actions for multi-page editors. Responsible for the redirection of global actions to the active editor. Multi-page contributor replaces the contributors for the individual editors in the multi-page editor.
- */
-public class XWTEditorContributor extends MultiPageEditorActionBarContributor {
-	private IEditorPart activeEditorPart;
-	private Action previewAction;
-	private Action javaAction;
-
-	/**
-	 * Creates a multi-page contributor.
-	 */
-	public XWTEditorContributor() {
-		super();
-		createActions();
-	}
-
-	/**
-	 * Returns the action registed with the given text editor.
-	 * 
-	 * @return IAction or null if editor is null.
-	 */
-	protected IAction getAction(ITextEditor editor, String actionID) {
-		return (editor == null ? null : editor.getAction(actionID));
-	}
-
-	/*
-	 * (non-JavaDoc) Method declared in AbstractMultiPageEditorActionBarContributor.
-	 */
-
-	public void setActivePage(IEditorPart part) {
-		if (activeEditorPart == part)
-			return;
-
-		activeEditorPart = part;
-
-		IActionBars actionBars = getActionBars();
-		if (actionBars != null) {
-
-			ITextEditor editor = (part instanceof ITextEditor) ? (ITextEditor) part : null;
-
-			actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(), getAction(editor, ITextEditorActionConstants.DELETE));
-			actionBars.setGlobalActionHandler(ActionFactory.UNDO.getId(), getAction(editor, ITextEditorActionConstants.UNDO));
-			actionBars.setGlobalActionHandler(ActionFactory.REDO.getId(), getAction(editor, ITextEditorActionConstants.REDO));
-			actionBars.setGlobalActionHandler(ActionFactory.CUT.getId(), getAction(editor, ITextEditorActionConstants.CUT));
-			actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(), getAction(editor, ITextEditorActionConstants.COPY));
-			actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(), getAction(editor, ITextEditorActionConstants.PASTE));
-			actionBars.setGlobalActionHandler(ActionFactory.SELECT_ALL.getId(), getAction(editor, ITextEditorActionConstants.SELECT_ALL));
-			actionBars.setGlobalActionHandler(ActionFactory.FIND.getId(), getAction(editor, ITextEditorActionConstants.FIND));
-			actionBars.setGlobalActionHandler(IDEActionFactory.BOOKMARK.getId(), getAction(editor, IDEActionFactory.BOOKMARK.getId()));
-			actionBars.updateActionBars();
-		}
-		previewAction.setEnabled(part != null);
-		javaAction.setEnabled(part != null);
-	}
-
-	private void createActions() {
-		previewAction = new Action() {
-			public void run() {
-				if (activeEditorPart instanceof StructuredTextEditor) {
-					StructuredTextEditor structuredTextEditor = (StructuredTextEditor) activeEditorPart;
-					IEditorPart editorPart = structuredTextEditor.getEditorPart();
-					if (editorPart instanceof XWTEditor) {
-						XWTEditor editor = (XWTEditor) editorPart;
-						editor.handlePreview();
-					}
-				}
-				// MessageDialog.openInformation(null, "Editors Plug-in",
-				// "Sample Action Executed");
-			}
-		};
-		previewAction.setText("Preview");
-		previewAction.setToolTipText("Preview");
-		previewAction.setImageDescriptor(ImageManager.OBJ_PREVIEW);
-
-		javaAction = new Action() {
-			public void run() {
-				if (activeEditorPart instanceof StructuredTextEditor) {
-					StructuredTextEditor structuredTextEditor = (StructuredTextEditor) activeEditorPart;
-					IEditorPart editorPart = structuredTextEditor.getEditorPart();
-					if (editorPart instanceof XWTEditor) {
-						XWTEditor editor = (XWTEditor) editorPart;
-						editor.generateCLRCodeAction();
-					}
-				}
-			}
-		};
-		javaAction.setText("Java");
-		javaAction.setToolTipText("Preview");
-		javaAction.setImageDescriptor(JavaPluginImages.DESC_OBJS_CLASS);
-	}
-
-	public void contributeToMenu(IMenuManager manager) {
-		IMenuManager menu = new MenuManager("XWT");
-		manager.prependToGroup(IWorkbenchActionConstants.MB_ADDITIONS, menu);
-		menu.add(previewAction);
-		menu.add(javaAction);
-	}
-
-	public void contributeToToolBar(IToolBarManager manager) {
-		manager.add(new Separator());
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTEditorPlugin.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTEditorPlugin.java
deleted file mode 100755
index 67e9815..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTEditorPlugin.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.pde.PDEPlugin;
-import org.eclipse.jface.text.templates.ContextTypeRegistry;
-import org.eclipse.jface.text.templates.persistence.TemplateStore;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.xwt.vex.palette.customize.CustomWidgetManager;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class XWTEditorPlugin extends AbstractUIPlugin {
-
-	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.xwt.tools.ui.editor";
-
-	// The shared instance
-	private static XWTEditorPlugin plugin;
-	/**
-	 * The template context type registry for the xml editor.
-	 */
-	private ContextTypeRegistry fContextTypeRegistry;
-	/**
-	 * The template store for the xml editor.
-	 * 
-	 */
-	private TemplateStore fTemplateStore;
-
-	/**
-	 * The constructor
-	 */
-	public XWTEditorPlugin() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext )
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-
-		PDEPlugin.getDefault();
-		
-		// Bug 274057 - Start
-		for (Class<?> cls: CustomWidgetManager.getInstance().getWidgetClassList())
-		{
-			XWT.registerMetaclass(cls);
-		}
-		// Bug 274057 - end
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext )
-	 */
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);
-	}
-
-	/**
-	 * Returns the shared instance
-	 * 
-	 * @return the shared instance
-	 */
-	public static XWTEditorPlugin getDefault() {
-		return plugin;
-	}
-
-	public static void log(Throwable e) {
-		getDefault().getLog().log(new Status(IStatus.ERROR, getDefault().getBundle().getSymbolicName(), -1, "", e));
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTFileChecker.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTFileChecker.java
deleted file mode 100755
index d058bb5..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTFileChecker.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.xwt.ui.editor;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-import org.eclipse.xwt.ui.utils.ProjectContext;
-import org.eclipse.xwt.vex.VEXFileChecker;
-import org.eclipse.xwt.vex.problems.IProblemChecker;
-import org.eclipse.xwt.vex.problems.Problem;
-import org.eclipse.xwt.vex.problems.ProblemCheckerRegistry;
-
-/**
- * @author jliu
- * 
- */
-public class XWTFileChecker implements VEXFileChecker {
-
-	public static final String EXTENSION_ID = "org.eclipse.xwt.tools.ui.editor.problemchecker";
-	private final String MARKER_ID = XWTEditorPlugin.PLUGIN_ID + ".XAMLEditorMaker";
-	private StructuredTextEditor fTextEditor = null;
-
-	public XWTFileChecker(StructuredTextEditor fTextEditor) {
-		this.fTextEditor = fTextEditor;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.vex.VEXFileChecker#doCheck(java.lang.String)
-	 */
-	public void doCheck(String javaName) {
-		ProjectContext.stop();
-		deleteMarkers();
-
-		List<IProblemChecker> allCheckers = ProblemCheckerRegistry.INSTANCE.getCheckers(EXTENSION_ID);
-		if (allCheckers.isEmpty()) {
-			return;
-		}
-
-		List<Problem> problems = new ArrayList<Problem>();
-		for (IProblemChecker checker : allCheckers) {
-			if (!checker.canChecked(fTextEditor, javaName)) {
-				continue;
-			}
-			List<Problem> subs = checker.checkProblems(fTextEditor, javaName);
-			if (subs != null) {
-				problems.addAll(subs);
-			}
-		}
-		if (problems.isEmpty()) {
-			return;
-		}
-		IFile file = (IFile) fTextEditor.getEditorInput().getAdapter(IFile.class);
-		for (Problem problem : problems) {
-			makeMaker(file, problem);
-		}
-		ProjectContext.start();
-	}
-
-	private void makeMaker(IFile file, Problem problem) {
-		try {
-			IMarker marker = file.createMarker(MARKER_ID);
-			marker.setAttribute(IMarker.TRANSIENT, true);
-			marker.setAttribute(IMarker.MESSAGE, problem.getMessage());
-			marker.setAttribute(IMarker.CHAR_START, problem.start);
-			marker.setAttribute(IMarker.CHAR_END, problem.end);
-			int type = problem.getType();
-			switch (type) {
-			case Problem.ERROR:
-				marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_ERROR);
-				break;
-			case Problem.INFO:
-				marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_INFO);
-				break;
-			case Problem.WARNING:
-				marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_WARNING);
-				break;
-			}
-			marker.setAttribute(IMarker.LINE_NUMBER, problem.line);
-		} catch (CoreException e) {
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.vex.VEXFileChecker#deleteMarkers()
-	 */
-	public void deleteMarkers() {
-		IFile file = (IFile) fTextEditor.getEditorInput().getAdapter(IFile.class);
-		try {
-			file.deleteMarkers(null, true, IResource.DEPTH_INFINITE);
-		} catch (CoreException e) {
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTStructuredTextViewerConfiguration.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTStructuredTextViewerConfiguration.java
deleted file mode 100755
index e826ee2..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTStructuredTextViewerConfiguration.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor;
-
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.wst.sse.core.text.IStructuredPartitions;
-import org.eclipse.wst.xml.core.text.IXMLPartitions;
-import org.eclipse.wst.xml.ui.StructuredTextViewerConfigurationXML;
-import org.eclipse.wst.xml.ui.internal.contentassist.NoRegionContentAssistProcessor;
-
-public class XWTStructuredTextViewerConfiguration extends StructuredTextViewerConfigurationXML {
-
-	public XWTStructuredTextViewerConfiguration() {
-	}
-
-	protected IContentAssistProcessor[] getContentAssistProcessors(ISourceViewer sourceViewer, String partitionType) {
-		IContentAssistProcessor[] processors = null;
-
-		if ((partitionType == IStructuredPartitions.DEFAULT_PARTITION) || (partitionType == IXMLPartitions.XML_DEFAULT)) {
-			processors = new IContentAssistProcessor[] { new XWTContentAssistProcessor() };
-		} else if (partitionType == IStructuredPartitions.UNKNOWN_PARTITION) {
-			processors = new IContentAssistProcessor[] { new NoRegionContentAssistProcessor() };
-		}
-
-		return processors;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTUIContext.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTUIContext.java
deleted file mode 100755
index fcb3933..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTUIContext.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor;
-
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.xwt.vex.AbstractContext;
-import org.eclipse.xwt.vex.dom.DomHelper;
-import org.w3c.dom.Node;
-
-public class XWTUIContext extends AbstractContext {
-
-	public URI getDefaultPaletteFile() {
-		return URI.createPlatformPluginURI(XWTEditorPlugin.PLUGIN_ID + "/tools/toolkit.toolpalette", false);
-	}
-
-	public String getToolViewID() {
-		return "org.eclipse.gef.ui.palette_view";
-	}
-
-	public String getTemplateContextID() {
-		return "org.eclipse.xwt.tools.ui.editor.contextType";
-	}
-
-	public boolean hasType(Node node) {
-		String name = getNodeName(node);
-		if (name.indexOf(".") != -1) {
-			return false;
-		}
-		IMetaclass metaclass = XWT.getMetaclass(name, DomHelper.lookupNamespaceURI(node));
-		return (metaclass != null);
-	}
-
-	private String getNodeName(Node node) {
-		String name = node.getNodeName();
-		int index = name.indexOf(":");
-		if (index != -1) {
-			name = name.substring(index + 1);
-		}
-		return name;
-	}
-
-	public boolean isEventHandle(Node node, String eventName) {
-		String name = getNodeName(node);
-		if (name.indexOf(".") != -1) {
-			return false;
-		}
-		IMetaclass metaclass = XWT.getMetaclass(name, DomHelper.lookupNamespaceURI(node));
-		return (metaclass != null) && metaclass.findEvent(eventName) != null;
-	}
-
-	protected boolean isKindOf(Node node, String targetType) {
-		if (node.getNodeType() == Node.DOCUMENT_NODE) {
-			return false;
-		}
-		String namespace = DomHelper.lookupNamespaceURI(node);
-		String tagName = getNodeName(node);
-		if (tagName.indexOf(".") > 0) {
-			tagName = (tagName.substring(tagName.lastIndexOf(".") + 1));
-			tagName = Character.toUpperCase(tagName.charAt(0)) + tagName.substring(1);
-			namespace = IConstants.XWT_NAMESPACE;
-		}
-		try {
-			return isKindOf(tagName, namespace, targetType);
-		} catch (Exception e) {
-			return false;
-		}
-	}
-
-	private boolean isKindOf(String nodeName, String namespace, String targetType) throws Exception {
-		if (nodeName == null || namespace == null || targetType == null) {
-			return false;
-		}
-		if ("Composite".equalsIgnoreCase(targetType)) {
-			IMetaclass metaclass = XWT.getMetaclass(nodeName, namespace);
-			if (metaclass == null) {
-				return false;
-			} else {
-				return Composite.class.isAssignableFrom(metaclass.getType());
-			}
-		} else if ("Control".equalsIgnoreCase(targetType)) {
-			IMetaclass metaclass = XWT.getMetaclass(nodeName, namespace);
-			if (metaclass == null) {
-				return false;
-			} else {
-				return Control.class.isAssignableFrom(metaclass.getType());
-			}
-		}
-		return targetType.equalsIgnoreCase(nodeName);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/AbstractProblemChecker.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/AbstractProblemChecker.java
deleted file mode 100755
index dad39fa..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/AbstractProblemChecker.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor.checkers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.xwt.vex.problems.IProblemChecker;
-import org.eclipse.xwt.vex.problems.Problem;
-import org.w3c.dom.Node;
-
-public abstract class AbstractProblemChecker implements IProblemChecker {
-
-	protected IJavaProject getJavaProject(StructuredTextEditor fTextEditor) {
-		return JavaCore.create(getFile(fTextEditor).getProject());
-	}
-
-	protected IFile getFile(StructuredTextEditor fTextEditor) {
-		return (IFile) fTextEditor.getEditorInput().getAdapter(IFile.class);
-	}
-
-	protected Node getRoot(StructuredTextEditor fTextEditor) {
-		StructuredTextViewer textViewer = fTextEditor.getTextViewer();
-		if (textViewer == null) {
-			return null;
-		}
-		IndexedRegion root = ContentAssistUtils.getNodeAt(textViewer, 0);
-		if (root instanceof Node) {
-			return (Node) root;
-		}
-		return null;
-	}
-
-	protected Node getNode(StructuredTextEditor textEditor) {
-		StructuredTextViewer textViewer = textEditor.getTextViewer();
-		if (textViewer == null) {
-			return null;
-		}
-
-		StyledText textWidget = textViewer.getTextWidget();
-		if (textWidget == null || textWidget.isDisposed()) {
-			return null;
-		}
-		int offset = 0;
-		try {
-			offset = textWidget.getCaretOffset();
-		} catch (Exception e) {
-			return null;
-		}
-		if (offset == 0) {
-			return null;
-		}
-		IndexedRegion treeNode = ContentAssistUtils.getNodeAt(textViewer, offset);
-		if (treeNode instanceof Node) {
-			return (Node) treeNode;
-		}
-		return null;
-	}
-
-	protected Problem createProblem(StructuredTextEditor fTextEditor, Node node, String msg, int type) {
-
-		int startOffset = 0;
-		if (node instanceof IDOMNode) {
-			startOffset = ((IDOMNode) node).getStartOffset();
-		}
-		int endOffset = 0;
-		if (node instanceof IDOMNode) {
-			endOffset = ((IDOMNode) node).getEndOffset();
-		}
-		int line = 0;
-		try {
-			StructuredTextViewer textViewer = fTextEditor.getTextViewer();
-			if (textViewer != null) {
-				line = textViewer.getDocument().getLineOfOffset(startOffset) + 1;
-			}
-		} catch (BadLocationException e) {
-		}
-		return createProblem(msg, type, node, startOffset, endOffset, line);
-	}
-
-	protected Problem createProblem(String message, int type, Object source, int start, int end, int line) {
-		Problem problem = new Problem(message, type);
-		problem.setSource(source);
-		problem.start = start;
-		problem.end = end;
-		problem.line = line;
-		return problem;
-	}
-
-	protected boolean isValid(Node node) {
-		if (node == null) {
-			return false;
-		}
-		String nodeName = node.getNodeName();
-		if (nodeName == null || nodeName.equals("") || nodeName.equals("#text")) {
-			return false;
-		}
-		return true;
-	}
-
-	protected String getTagName(Node node) {
-		if (!isValid(node)) {
-			return null;
-		}
-		return node.getNodeName();
-	}
-
-	public List<Problem> checkProblems(StructuredTextEditor textEditor, String javaName) {
-		List<Problem> problems = new ArrayList<Problem>();
-		Node root = getRoot(textEditor);
-		checkProblems(textEditor, javaName, root, problems, true);
-		return problems;
-	}
-
-	// protected List<Property> findProperties(String tagName, String ns) {
-	// List<Property> props = new ArrayList<Property>();
-	// Metaclass metaclass = UPF.getMetaclass(tagName, ns);
-	// if (metaclass != null) {
-	// props.addAll(metaclass.getAllProperties());
-	// props.addAll(metaclass.getAllAttachedProperties());
-	// }
-	// return props;
-	// }
-
-	protected abstract void checkProblems(StructuredTextEditor textEditor, String javaName, Node node, List<Problem> problems, boolean includeChildren);
-
-	public boolean canChecked(StructuredTextEditor textEditor, String javaName) {
-		return getRoot(textEditor) != null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/ElementEventsChecker.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/ElementEventsChecker.java
deleted file mode 100755
index 819323f..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/ElementEventsChecker.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor.checkers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IMethod;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-import org.eclipse.xwt.vex.dom.DomHelper;
-import org.eclipse.xwt.vex.problems.Problem;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * @author jliu
- * 
- */
-public class ElementEventsChecker extends AbstractProblemChecker {
-
-	protected void checkProblems(StructuredTextEditor textEditor, String javaName, Node node, List<Problem> problems, boolean includeChildren) {
-
-		if (!isValid(node)) {
-			return;
-		}
-
-		if (includeChildren) {
-			NodeList childNodes = node.getChildNodes();
-			if (childNodes != null) {
-				int length = childNodes.getLength();
-				for (int i = 0; i < length; i++) {
-					Node item = childNodes.item(i);
-					checkProblems(textEditor, javaName, item, problems, includeChildren);
-				}
-			}
-		}
-
-		String nodeName = getTagName(node);
-		NamedNodeMap attributes = node.getAttributes();
-		if (attributes == null) {
-			return;
-		}
-		int attrLength = attributes.getLength();
-		List<String> events = getEvents(nodeName, DomHelper.lookupNamespaceURI(node));
-		if (attrLength == 0 || events.isEmpty()) {
-			return;
-		}
-		for (int j = 0; j < attrLength; j++) {
-			Node attr = attributes.item(j);
-			String attrName = getTagName(attr);
-			if (attrName == null) {
-				continue;
-			}
-			if (events.contains(attrName)) {
-				String nodeValue = attr.getNodeValue();
-				if (nodeValue != null) {
-					List<String> methods = getJavaMethods(textEditor, javaName);
-					if (!methods.contains(nodeValue)) {
-						Problem problem = createProblem(textEditor, node, "Java method \"" + nodeValue + "\" as event of \"" + nodeName + "\" not found", Problem.ERROR);
-						problems.add(problem);
-					}
-				}
-			}
-		}
-
-	}
-
-	private List<String> getJavaMethods(StructuredTextEditor textEditor, String hostClassName) {
-		List<String> results = new ArrayList<String>();
-		IType javeType = getJaveType(textEditor, hostClassName);
-		if (javeType != null) {
-			try {
-				IMethod[] methods = javeType.getMethods();
-				for (IMethod method : methods) {
-					results.add(method.getElementName());
-				}
-			} catch (JavaModelException e) {
-				return results;
-			}
-		}
-		return results;
-	}
-
-	private IType getJaveType(StructuredTextEditor textEditor, String hostClassName) {
-		IJavaProject javaProject = getJavaProject(textEditor);
-		if (javaProject != null) {
-			try {
-				return javaProject.findType(hostClassName);
-			} catch (JavaModelException e) {
-				return null;
-			}
-		}
-		return null;
-	}
-
-	private List<String> getEvents(String tagName, String ns) {
-		List<String> events = new ArrayList<String>();
-		// Metaclass metaclass = UPF.getMetaclass(tagName, ns);
-		// if (metaclass == null) {
-		// return Collections.EMPTY_LIST;
-		// }
-		// Collection<Event> allEvents = metaclass.getAllEvents();
-		// for (Event event : allEvents) {
-		// events.add(event.getName());
-		// }
-		// Collection<Event> allAttachedEvents = metaclass.getAllAttachedEvents();
-		// for (Event event : allAttachedEvents) {
-		// events.add(event.getName());
-		// }
-		return events;
-	}
-
-	@Override
-	public boolean canChecked(StructuredTextEditor textEditor, String javaName) {
-		return javaName != null && super.canChecked(textEditor, javaName);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/ElementNameChecker.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/ElementNameChecker.java
deleted file mode 100755
index d769c27..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/ElementNameChecker.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor.checkers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-import org.eclipse.xwt.vex.problems.Problem;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * 
- * @author jliu
- */
-public class ElementNameChecker extends AbstractProblemChecker {
-
-	public List<Problem> checkProblems(StructuredTextEditor textEditor, String javaName) {
-
-		List<Problem> problems = new ArrayList<Problem>();
-
-		Node root = getRoot(textEditor);
-		checkProblems(textEditor, root, problems, new ArrayList<String>());
-
-		return problems;
-	}
-
-	private void checkProblems(StructuredTextEditor textEditor, Node node, List<Problem> problems, List<String> existedNames) {
-		if (!isValid(node)) {
-			return;
-		}
-
-		NodeList childNodes = node.getChildNodes();
-		if (childNodes != null) {
-			int length = childNodes.getLength();
-			for (int i = 0; i < length; i++) {
-				Node item = childNodes.item(i);
-				checkProblems(textEditor, item, problems, existedNames);
-			}
-		}
-
-		NamedNodeMap attributes = node.getAttributes();
-		if (attributes == null) {
-			return;
-		}
-		int attrLength = attributes.getLength();
-		for (int j = 0; j < attrLength; j++) {
-			Node attr = attributes.item(j);
-			String nodeName = attr.getNodeName();
-			if (nodeName == null) {
-				continue;
-			}
-			if ("x:Name".equalsIgnoreCase(nodeName)) {
-				String nodeValue = attr.getNodeValue();
-				if (nodeValue == null) {
-					continue;
-				}
-				if (existedNames.contains(nodeValue)) {
-					Problem problem = createProblem(textEditor, node, "Element Name \"" + nodeValue + "\" is already used.", Problem.ERROR);
-					problems.add(problem);
-				} else {
-					existedNames.add(nodeValue);
-				}
-			}
-		}
-	}
-
-	@Override
-	protected void checkProblems(StructuredTextEditor textEditor, String javaName, Node node, List<Problem> problems, boolean includeChildren) {
-		// Do nothing
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/ElementPropertiesChecker.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/ElementPropertiesChecker.java
deleted file mode 100755
index 068da7f..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/ElementPropertiesChecker.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor.checkers;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-import org.eclipse.xwt.vex.dom.DomHelper;
-import org.eclipse.xwt.vex.problems.Problem;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * 
- * @author jliu
- * 
- */
-public class ElementPropertiesChecker extends AbstractProblemChecker {
-
-	private static final String XMLNS_TAG = "xmlns";
-
-	protected void checkProblems(StructuredTextEditor textEditor, String javaName, Node node, List<Problem> problems, boolean includeChindren) {
-		if (!isValid(node)) {
-			return;
-		}
-		NodeList childNodes = node.getChildNodes();
-		if (includeChindren && childNodes != null) {
-			int length = childNodes.getLength();
-			for (int i = 0; i < length; i++) {
-				Node item = childNodes.item(i);
-				if (includeChindren) {
-					checkProblems(textEditor, javaName, item, problems, includeChindren);
-				}
-			}
-		}
-
-		NamedNodeMap attributes = node.getAttributes();
-		if (attributes == null) {
-			return;
-		}
-		int attrLength = attributes.getLength();
-		if (attrLength == 0) {
-			return;
-		}
-		String nodeName = getTagName(node);
-		HashMap<String, List<String>> map = null;
-		List<String> properties = getProperties(nodeName, DomHelper.lookupNamespaceURI(node), true);
-		if (properties == null) {
-			properties = Collections.EMPTY_LIST;
-		}
-
-		for (int j = 0; j < attrLength; j++) {
-			Node attr = attributes.item(j);
-			String attrName = getTagName(attr);
-			if (attrName == null || isLoadingTag(attrName)) {
-				continue;
-			}
-			int index = attrName.indexOf('.');
-			if (index != -1) {
-				String type = attrName.substring(0, index);
-				String propertyName = attrName.substring(index + 1);
-				if (map == null) {
-					map = new HashMap<String, List<String>>();
-				}
-				collectAttachedProperties(type, DomHelper.lookupNamespaceURI(node, attr), map, true);
-				List<String> attachedProperties = map.get(type);
-				if (attachedProperties == null) {
-					attachedProperties = Collections.EMPTY_LIST;
-				}
-				if (!attachedProperties.contains(propertyName)) {
-					Problem error = createProblem(textEditor, node, "Attached Property \"" + propertyName + "\" of \"" + type + "\" doesn't exist", Problem.ERROR);
-					problems.add(error);
-				}
-			} else if (!properties.contains(attrName)) {
-				Problem error = createProblem(textEditor, node, "Property \"" + attrName + "\" of \"" + nodeName + "\" doesn't exist", Problem.ERROR);
-				problems.add(error);
-			}
-		}
-	}
-
-	private boolean isLoadingTag(String tagName) {
-		if (tagName == null || tagName.equals("")) {
-			return false;
-		}
-		if (tagName.indexOf(":") != -1) {
-			return true;
-		}
-		return XMLNS_TAG.endsWith(tagName) || tagName.startsWith(XMLNS_TAG);
-	}
-
-	private List<String> getProperties(String nodeName, String namespace, boolean includedEvents) {
-		int index = nodeName.indexOf(':');
-		String elementName = nodeName.substring(index + 1);
-
-		// Metaclass metaclass = UPF.getMetaclass(elementName, namespace);
-		// if (metaclass == null) {
-		// // user defined class
-		// if (index != -1) {
-		// String packageName = namespace;
-		// if (namespace.startsWith(IConstants.XAML_CLR_NAMESPACE_PROTO)) {
-		// packageName = namespace.substring(IConstants.XAML_CLR_NAMESPACE_PROTO.length());
-		// }
-		// String qualidiedName = packageName + "." + elementName;
-		// try {
-		// Class kclass = UPF.getLoadingContext().getClassLoader().loadClass(qualidiedName);
-		// metaclass = UPF.bindsMetaclass(kclass);
-		// } catch (ClassNotFoundException e) {
-		// e.printStackTrace();
-		// }
-		// }
-		// if (metaclass == null) {
-		// return Collections.EMPTY_LIST;
-		// }
-		// }
-		List<String> properties = new ArrayList<String>();
-		// Collection<Property> allProperties = metaclass.getAllProperties();
-		// for (Property property : allProperties) {
-		// properties.add(property.getName());
-		// }
-		// if (includedEvents) {
-		// for (Event event : metaclass.getAllEvents()) {
-		// properties.add(event.getName());
-		// }
-		// }
-		return properties;
-	}
-
-	private void collectAttachedProperties(String nodeName, String namespace, HashMap<String, List<String>> map, boolean includedEvents) {
-		if (map.containsKey(nodeName)) {
-			return;
-		}
-		// Metaclass metaclass = UPF.getMetaclass(nodeName, namespace);
-		// if (metaclass == null) {
-		// return;
-		// }
-		// List<String> properties = new ArrayList<String>();
-		// map.put(nodeName, properties);
-		// Collection<Property> allProperties = metaclass.getAllAttachedProperties();
-		// for (Property property : allProperties) {
-		// properties.add(property.getName());
-		// }
-		// if (includedEvents) {
-		// for (Event event : metaclass.getAllAttachedEvents()) {
-		// properties.add(event.getName());
-		// }
-		// }
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/IntegerPropertyChecker.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/IntegerPropertyChecker.java
deleted file mode 100755
index 59c56d7..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/IntegerPropertyChecker.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor.checkers;
-
-import java.util.List;
-
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-import org.eclipse.xwt.vex.problems.Problem;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-public class IntegerPropertyChecker extends AbstractProblemChecker {
-
-	protected void checkProblems(StructuredTextEditor textEditor, String javaName, Node node, List<Problem> problems, boolean includeChildren) {
-		if (!isValid(node)) {
-			return;
-		}
-
-		NodeList childNodes = node.getChildNodes();
-		if (includeChildren && childNodes != null) {
-			int length = childNodes.getLength();
-			for (int i = 0; i < length; i++) {
-				Node child = childNodes.item(i);
-				checkProblems(textEditor, javaName, child, problems, includeChildren);
-			}
-		}
-
-		String nodeName = getTagName(node);
-
-		NamedNodeMap attributes = node.getAttributes();
-		if (attributes == null) {
-			return;
-		}
-		int length = attributes.getLength();
-		for (int i = 0; i < length; i++) {
-			Node attr = attributes.item(i);
-			String attrName = getTagName(attr);
-			if (attrName == null) {
-				continue;
-			}
-			boolean isDb = isInteger(node, attrName);
-			if (isDb) {
-				String nodeValue = attr.getNodeValue();
-				double value = -1;
-				try {
-					value = Integer.parseInt(nodeValue);
-				} catch (NumberFormatException e) {
-					Problem problem = createProblem(textEditor, node, "Error Integer Format for Property \"" + attrName + "\" of \"" + nodeName + "\".", Problem.ERROR);
-					problems.add(problem);
-				}
-				if (value <= 0) {
-					if (attrName.equals("ColumnSpan")) {
-						Problem problem = createProblem(textEditor, node, "\"ColumnSpan\" must more than 0.", Problem.ERROR);
-						problems.add(problem);
-					} else if (attrName.equals("RowSpan")) {
-						Problem problem = createProblem(textEditor, node, "\"RowSpan\" must more than 0.", Problem.ERROR);
-						problems.add(problem);
-					}
-				}
-			}
-		}
-	}
-
-	private boolean isInteger(Node node, String attrName) {
-		String nodeName = getTagName(node);
-		if (nodeName == null) {
-			return false;
-		}
-		// Metaclass metaclass = UPF.getMetaclass(nodeName, DomHelper.lookupNamespaceURI(node));
-		// if (metaclass == null) {
-		// return false;
-		// }
-		// Property property = metaclass.findProperty(attrName);
-		// if (property == null) {
-		// property = metaclass.findAttachedProperty(attrName);
-		// }
-		// Node parentNode = node.getParentNode();
-		// if (property == null && parentNode != null) {
-		// String parent = getTagName(parentNode);
-		// Metaclass pMetaclass = UPF.getMetaclass(parent, DomHelper.lookupNamespaceURI(parentNode));
-		// if (pMetaclass != null && pMetaclass.isSubclassOf(Panel.metaclass)) {
-		// return isInteger(parentNode, attrName);
-		// }
-		// }
-		// if (property == null) {
-		// return false;
-		// }
-		// return property instanceof IntegerProperty;
-		return false;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/DnDAdapter.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/DnDAdapter.java
deleted file mode 100755
index 31dfd85..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/DnDAdapter.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *
- * All rights reserved. This program and the accompanying materials            *
- * are made available under the terms of the Eclipse Public License v1.0       *
- * which accompanies this distribution, and is available at                    *
- * http://www.eclipse.org/legal/epl-v10.html                                   *  
- * Contributors:                                                               *  
- *     Soyatec - initial API and implementation                                * 
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor.dnd;
-
-import org.eclipse.swt.dnd.DropTargetListener;
-import org.eclipse.xwt.vex.toolpalette.ContextType;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public interface DnDAdapter extends DropTargetListener {
-
-	boolean isAccept();
-
-	String getScope();
-
-	ContextType getContextType();
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/DnDAdapterImpl.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/DnDAdapterImpl.java
deleted file mode 100755
index 97cf358..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/DnDAdapterImpl.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *
- * All rights reserved. This program and the accompanying materials            *
- * are made available under the terms of the Eclipse Public License v1.0       *
- * which accompanies this distribution, and is available at                    *
- * http://www.eclipse.org/legal/epl-v10.html                                   *  
- * Contributors:                                                               *  
- *     Soyatec - initial API and implementation                                * 
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor.dnd;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.templates.ContextTypeRegistry;
-import org.eclipse.jface.text.templates.DocumentTemplateContext;
-import org.eclipse.jface.text.templates.GlobalTemplateVariables;
-import org.eclipse.jface.text.templates.Template;
-import org.eclipse.jface.text.templates.TemplateBuffer;
-import org.eclipse.jface.text.templates.TemplateContextType;
-import org.eclipse.jface.text.templates.TemplateVariable;
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-import org.eclipse.xwt.ui.editor.XWTEditor;
-import org.eclipse.xwt.vex.VEXContext;
-import org.eclipse.xwt.vex.VEXTextEditorHelper;
-import org.w3c.dom.Node;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public abstract class DnDAdapterImpl implements DnDAdapter {
-
-	static final int CARET_WIDTH = 2;
-	private int dropCaretOffset = -1;
-	private XWTEditor editor;
-	private LocalSelectionTransfer transfer = LocalSelectionTransfer.getTransfer();
-
-	/**
-	 * 
-	 */
-	public DnDAdapterImpl(XWTEditor editor) {
-		this.setEditor(editor);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapter#drop(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	public void drop(DropTargetEvent event) {
-		Object selection = getSelection();
-		if (!isAccept()) {
-			return;
-		}
-
-		Template template = createTemplate(selection);
-		if (template == null) {
-			return;
-		}
-		drop(template, getDropCaretOffset(), 0);
-	}
-
-	/**
-	 * @param template
-	 */
-	protected void drop(Template template, int dropCaretOffset, int length) {
-		IDocument document = editor.getTextEditor().getTextViewer().getDocument();
-		ContextTypeRegistry registry = XMLUIPlugin.getDefault().getTemplateContextRegistry();
-		if (registry != null) {
-			TemplateContextType type = registry.getContextType(template.getContextTypeId());
-
-			DocumentTemplateContext templateContext = new DocumentTemplateContext(type, document, new Position(dropCaretOffset, length));
-			if (templateContext.canEvaluate(template)) {
-				try {
-					TemplateBuffer templateBuffer = templateContext.evaluate(template);
-					String templateString = templateBuffer.getString();
-					document.replace(dropCaretOffset, length, templateString);
-
-					StyledText styledText = editor.getTextWidget();
-					int position = getCursorOffset(templateBuffer) + dropCaretOffset;
-					styledText.setCaretOffset(position);
-					styledText.setFocus();
-				} catch (Exception e) {
-					throw new RuntimeException(e);
-				}
-			}
-		}
-	}
-
-	/**
-	 * @param selection
-	 *            TODO
-	 * @return
-	 */
-	protected abstract Template createTemplate(Object selection);
-
-	private int getCursorOffset(TemplateBuffer buffer) {
-		TemplateVariable[] variables = buffer.getVariables();
-		for (int i = 0; i != variables.length; i++) {
-			TemplateVariable variable = variables[i];
-			if (variable.getType().equals(GlobalTemplateVariables.Cursor.NAME))
-				return variable.getOffsets()[0];
-		}
-
-		return buffer.getString().length();
-	}
-
-	public void dragOver(DropTargetEvent event) {
-		if (!isAccept()) {
-			return;
-		}
-		VEXContext context = editor.getContext();
-
-		Node node = getCurrentNode(event);
-		int position = context.findDropPosition(node, getScope(), getContextType(), getCursor(event));
-		if (position < 0) {
-			event.detail = DND.DROP_NONE;
-		} else {
-			StyledText styledText = editor.getTextWidget();
-			setDropCaretOffset(position);
-			refreshCaret(styledText, getDropCaretOffset());
-		}
-	}
-
-	protected Node getCurrentNode(DropTargetEvent event) {
-		StructuredTextViewer textViewer = editor.getTextEditor().getTextViewer();
-		return VEXTextEditorHelper.getNode(textViewer, getCursor(event));
-	}
-
-	protected int getCursor(DropTargetEvent event) {
-		StructuredTextViewer textViewer = editor.getTextEditor().getTextViewer();
-		return VEXTextEditorHelper.getOffsetAtPoint(textViewer, new Point(event.x, event.y));
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.dnd.DropTargetListener#dragEnter(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	public void dragEnter(DropTargetEvent event) {
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.dnd.DropTargetListener#dragLeave(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	public void dragLeave(DropTargetEvent event) {
-		StyledText styledText = editor.getTextWidget();
-		if (getDropCaretOffset() != -1) {
-			refreshCaret(styledText, getDropCaretOffset());
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.dnd.DropTargetListener#dragOperationChanged(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	public void dragOperationChanged(DropTargetEvent event) {
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.dnd.DropTargetListener#dropAccept(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	public void dropAccept(DropTargetEvent event) {
-
-	}
-
-	protected void refreshCaret(StyledText text, int newOffset) {
-		if (newOffset != -1) {
-			Point newPos = text.getLocationAtOffset(newOffset);
-			int newHeight = text.getLineHeight(newOffset);
-			text.redraw(newPos.x, newPos.y, CARET_WIDTH, newHeight, false);
-		}
-	}
-
-	/**
-	 * @param editor
-	 *            the editor to set
-	 */
-	public void setEditor(XWTEditor editor) {
-		this.editor = editor;
-	}
-
-	/**
-	 * @return the editor
-	 */
-	public XWTEditor getEditor() {
-		return editor;
-	}
-
-	protected Object getSelection() {
-		IStructuredSelection selection = (IStructuredSelection) transfer.getSelection();
-		if (selection != null) {
-			return selection.getFirstElement();
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapter#isAccept()
-	 */
-	public boolean isAccept() {
-		Object selection = getSelection();
-		if (selection == null) {
-			return false;
-		}
-		return isAccept(selection);
-	}
-
-	/**
-	 * @param selection
-	 * @return
-	 */
-	protected abstract boolean isAccept(Object selection);
-
-	/**
-	 * @param dropCaretOffset
-	 *            the dropCaretOffset to set
-	 */
-	public void setDropCaretOffset(int dropCaretOffset) {
-		this.dropCaretOffset = dropCaretOffset;
-	}
-
-	/**
-	 * @return the dropCaretOffset
-	 */
-	public int getDropCaretOffset() {
-		return dropCaretOffset;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/ImageDnDAdapter.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/ImageDnDAdapter.java
deleted file mode 100755
index 6236440..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/ImageDnDAdapter.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *
- * All rights reserved. This program and the accompanying materials            *
- * are made available under the terms of the Eclipse Public License v1.0       *
- * which accompanies this distribution, and is available at                    *
- * http://www.eclipse.org/legal/epl-v10.html                                   *  
- * Contributors:                                                               *  
- *     Soyatec - initial API and implementation                                * 
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor.dnd;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.xwt.utils.PathHelper;
-import org.eclipse.jface.text.templates.Template;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.xwt.ui.editor.XWTEditor;
-import org.eclipse.xwt.vex.VEXContext;
-import org.eclipse.xwt.vex.dom.DomHelper;
-import org.eclipse.xwt.vex.toolpalette.ContextType;
-import org.w3c.dom.NamedNodeMap;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class ImageDnDAdapter extends DnDAdapterImpl {
-
-	private static List<String> supportedImageExts = new ArrayList<String>();
-	private static List<String> supportedImageAttrs = new ArrayList<String>();
-	static {
-		supportedImageExts.add("png");
-		supportedImageExts.add("gif");
-		supportedImageExts.add("bmp");
-	}
-	static {
-		supportedImageAttrs.add("image");
-		supportedImageAttrs.add("backgroundImage");
-	}
-	private IFile image;
-	private IFile editorInput;
-	private IDOMNode acceptAttr;
-
-	/**
-	 * @param editor
-	 */
-	public ImageDnDAdapter(XWTEditor editor) {
-		super(editor);
-		editorInput = ((FileEditorInput) editor.getEditorInput()).getFile();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapterImpl#createTemplate(java.lang.Object)
-	 */
-	protected Template createTemplate(Object selection) {
-		String pattern = computePath();
-		if (acceptAttr == null) {
-			pattern = "image=\"" + pattern + "\"";
-		}
-		return new Template("image", "", getContextType().getName(), pattern, true);
-	}
-
-	/**
-	 * @return
-	 */
-	private String computePath() {
-		if (editorInput != null) {
-			return PathHelper.getRelativePath(editorInput.getLocation().toString(), image.getLocation().toString());
-		}
-		return image.getLocation().toString();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapterImpl#isAccept(java.lang.Object)
-	 */
-	protected boolean isAccept(Object selection) {
-		if (selection instanceof IFile) {
-			String ext = ((IFile) selection).getFileExtension();
-			boolean contains = supportedImageExts.contains(ext);
-			if (contains) {
-				image = (IFile) selection;
-			}
-			return contains;
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapterImpl#drop(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	@Override
-	public void drop(DropTargetEvent event) {
-		Object selection = getSelection();
-		if (!isAccept()) {
-			return;
-		}
-
-		Template template = createTemplate(selection);
-		if (template == null) {
-			return;
-		}
-		String nodeValue = acceptAttr == null ? "" : acceptAttr.getNodeValue();
-		drop(template, getDropCaretOffset(), nodeValue == null ? 0 : nodeValue.length());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapterImpl#dragOver(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	@Override
-	public void dragOver(DropTargetEvent event) {
-		if (!isAccept()) {
-			return;
-		}
-		IDOMNode node = (IDOMNode) getCurrentNode(event);
-		int cursor = getCursor(event);
-		VEXContext context = getEditor().getContext();
-		int position = context.findDropPosition(node, getScope(), getContextType(), cursor);
-		if (position >= 0) {
-			NamedNodeMap attributes = node.getAttributes();
-			if (attributes != null) {
-				acceptAttr = getAttr(node, cursor);
-				StyledText styledText = getEditor().getTextWidget();
-				if (acceptAttr == null && hasImageFeature(node)) {
-					setDropCaretOffset(cursor);
-					refreshCaret(styledText, getDropCaretOffset());
-					return;
-				} else if (acceptAttr != null && supportedImageAttrs.contains(acceptAttr.getNodeName())) {
-					setDropCaretOffset(getInsertion(acceptAttr, cursor));
-					refreshCaret(styledText, getDropCaretOffset());
-					return;
-				}
-			}
-		}
-		event.detail = DND.DROP_NONE;
-	}
-
-	/**
-	 * @param node
-	 * @return
-	 */
-	private boolean hasImageFeature(IDOMNode node) {
-		boolean hasImageAttr = getImageAttr(node) == null;
-		String nodeName = node.getNodeName();
-		IMetaclass metaclass = XWT.getMetaclass(nodeName, DomHelper.lookupNamespaceURI(node));
-		if (metaclass != null) {
-			hasImageAttr &= metaclass.findProperty("image") != null;
-		}
-		return hasImageAttr;
-	}
-
-	/**
-	 * @param acceptAttr
-	 * @param cursor
-	 * @return
-	 */
-	private int getInsertion(IDOMNode acceptAttr, int cursor) {
-		if (acceptAttr == null) {
-			return cursor;
-		}
-		return acceptAttr.getStartOffset() + acceptAttr.getNodeName().length() + 2;
-	}
-
-	private IDOMNode getAttr(IDOMNode node, int cursor) {
-		NamedNodeMap attributes = node.getAttributes();
-		if (attributes == null) {
-			return null;
-		}
-		for (int i = 0; i < attributes.getLength(); i++) {
-			IDOMNode attr = (IDOMNode) attributes.item(i);
-			int startOffset = attr.getStartOffset();
-			int endOffset = attr.getEndOffset();
-			if (cursor >= startOffset && cursor < endOffset) {
-				return attr;
-			}
-		}
-		return null;
-	}
-
-	private IDOMNode getImageAttr(IDOMNode node) {
-		NamedNodeMap attributes = node.getAttributes();
-		if (attributes == null) {
-			return null;
-		}
-		for (int i = 0; i < attributes.getLength(); i++) {
-			IDOMNode attr = (IDOMNode) attributes.item(i);
-			if (supportedImageAttrs.contains(attr.getNodeName())) {
-				return attr;
-			}
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapter#getContextType()
-	 */
-	public ContextType getContextType() {
-		return ContextType.XML_ATTRIBUTE_VALUE;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapter#getScope()
-	 */
-	public String getScope() {
-		return null;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/PaletteDnDAdapter.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/PaletteDnDAdapter.java
deleted file mode 100755
index 04f7747..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/PaletteDnDAdapter.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *
- * All rights reserved. This program and the accompanying materials            *
- * are made available under the terms of the Eclipse Public License v1.0       *
- * which accompanies this distribution, and is available at                    *
- * http://www.eclipse.org/legal/epl-v10.html                                   *  
- * Contributors:                                                               *  
- *     Soyatec - initial API and implementation                                * 
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor.dnd;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.StringTokenizer;
-
-import org.eclipse.jface.text.templates.Template;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.xwt.ui.editor.XWTEditor;
-import org.eclipse.xwt.vex.VEXTextEditorHelper;
-import org.eclipse.xwt.vex.toolpalette.ContextType;
-import org.eclipse.xwt.vex.toolpalette.Entry;
-import org.w3c.dom.Node;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class PaletteDnDAdapter extends DnDAdapterImpl {
-
-	private Map<String, String> name2content = new HashMap<String, String>();
-	private Entry entry;
-
-	/**
-	 * @param editor
-	 */
-	public PaletteDnDAdapter(XWTEditor editor) {
-		super(editor);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapterImpl#createTemplate(java.lang.Object)
-	 */
-	@Override
-	protected Template createTemplate(Object selection) {
-		return new Template(entry.getName(), "", getContextType().getName(), entry.getContent(), true);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapter#getContextType()
-	 */
-	public ContextType getContextType() {
-		return entry.getContext();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapter#getScope()
-	 */
-	public String getScope() {
-		return entry.getScope();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapterImpl#dropAccept(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	public void dropAccept(DropTargetEvent event) {
-		if (isAccept()) {
-			// update layout and layoutData.
-			updateLayoutEntry(entry, event.x, event.y);
-			updateLayoutDataEntry(entry, event.x, event.y);
-		}
-	}
-
-	protected void updateLayoutEntry(Entry entry, int x, int y) {
-
-		StructuredTextEditor textEditor = getEditor().getTextEditor();
-		StructuredTextViewer textViewer = textEditor.getTextViewer();
-		int cursor = VEXTextEditorHelper.getOffsetAtPoint(textViewer, new Point(x, y));
-		Node node = VEXTextEditorHelper.getNode(textViewer, cursor);
-		while (node.getNodeType() == IDOMNode.TEXT_NODE) {
-			node = node.getParentNode();
-		}
-		String nodeName = node.getNodeName();
-		String name = entry.getName();
-		// String tagName = null;
-		if (nodeName != null && name.toLowerCase().endsWith("layout")) {
-			String content = name2content.get(name);
-			if (content == null) {
-				name2content.put(name, content = entry.getContent());
-			}
-			String source = "Composite";
-			StringTokenizer stk = new StringTokenizer(content, "<>");
-			while (stk.hasMoreTokens()) {
-				String nextToken = stk.nextToken();
-				if (nextToken.endsWith(".layout")) {
-					source = nextToken.substring(0, nextToken.lastIndexOf("."));
-					break;
-				}
-			}
-			String newContent = content.replace(source, nodeName);
-			entry.setContent(newContent);
-		}
-	}
-
-	protected void updateLayoutDataEntry(Entry entry, int x, int y) {
-		StructuredTextEditor textEditor = getEditor().getTextEditor();
-		StructuredTextViewer textViewer = textEditor.getTextViewer();
-		int cursor = VEXTextEditorHelper.getOffsetAtPoint(textViewer, new Point(x, y));
-		Node node = VEXTextEditorHelper.getNode(textViewer, cursor);
-		while (node.getNodeType() == IDOMNode.TEXT_NODE) {
-			node = node.getParentNode();
-		}
-		String nodeName = node.getNodeName();
-		String name = entry.getName();
-		String tagName = null;
-		if (nodeName != null && name.toLowerCase().endsWith("data")) {
-			if (nodeName.indexOf(":") != -1) {
-				tagName = nodeName.substring(nodeName.lastIndexOf(":") + 1);
-			} else {
-				tagName = nodeName;
-			}
-			String content = name2content.get(name);
-			if (content == null) {
-				name2content.put(name, content = entry.getContent());
-			}
-			String newContent = content.replace("Control", tagName);
-			entry.setContent(newContent);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapter#isAccept(java.lang.Object)
-	 */
-	public boolean isAccept(Object obj) {
-		if (obj instanceof Entry) {
-			this.entry = (Entry) obj;
-			return true;
-		}
-		return false;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/UserDefinedDnDAdapter.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/UserDefinedDnDAdapter.java
deleted file mode 100755
index b6ea304..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/UserDefinedDnDAdapter.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *
- * All rights reserved. This program and the accompanying materials            *
- * are made available under the terms of the Eclipse Public License v1.0       *
- * which accompanies this distribution, and is available at                    *
- * http://www.eclipse.org/legal/epl-v10.html                                   *  
- * Contributors:                                                               *  
- *     Soyatec - initial API and implementation                                * 
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor.dnd;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Random;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jface.text.templates.Template;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.xwt.ui.editor.XWTEditor;
-import org.eclipse.xwt.ui.utils.ProjectContext;
-import org.eclipse.xwt.vex.VEXTextEditorHelper;
-import org.eclipse.xwt.vex.toolpalette.ContextType;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class UserDefinedDnDAdapter extends DnDAdapterImpl {
-
-	private Map<String, String> nsURIs = new HashMap<String, String>();
-	private Map<String, Boolean> prefixStatus = new HashMap<String, Boolean>();
-	private String name;
-	private String namespace;
-	private String prefix;
-
-	/**
-	 * @param editor
-	 */
-	public UserDefinedDnDAdapter(XWTEditor editor) {
-		super(editor);
-		updateNsURIs();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapter#isAccept(java.lang.Object)
-	 */
-	public boolean isAccept(Object obj) {
-		if (obj instanceof ICompilationUnit) {
-			ICompilationUnit unit = (ICompilationUnit) obj;
-			IType type = unit.findPrimaryType();
-			String name = type.getElementName();
-			IJavaProject javaProject = unit.getJavaProject();
-			String fullyQualifiedName = type.getFullyQualifiedName();
-			try {
-				ProjectContext context = ProjectContext.getContext(javaProject);
-				Class<?> clazz = context.getClassLoader().loadClass(fullyQualifiedName);
-				this.name = clazz.getSimpleName();
-				this.namespace = "clr-namespace" + ":" + type.getPackageFragment().getElementName();
-				return Composite.class.isAssignableFrom(clazz) && clazz.getResource(name + ".xwt") != null;
-			} catch (ClassNotFoundException e) {
-				e.printStackTrace();
-			}
-		} else if (obj instanceof IFile) {
-			IFile file = (IFile) obj;
-			String ext = file.getFileExtension();
-			String name = file.getName();
-
-			if ("xwt".equals(ext)) {
-				IResource java = file.getParent().findMember(name.replace("xwt", "java"));
-				if (java.exists()) {
-					IProject project = file.getProject();
-					IJavaProject javaProject = JavaCore.create(project);
-					try {
-						ICompilationUnit unit = (ICompilationUnit) JavaCore.create(java);
-						IType type = unit.findPrimaryType();
-						String fullyQualifiedName = type.getFullyQualifiedName();
-						ProjectContext context = ProjectContext.getContext(javaProject);
-						Class<?> clazz = context.getClassLoader().loadClass(fullyQualifiedName);
-						this.name = clazz.getSimpleName();
-						this.namespace = "clr-namespace" + ":" + type.getPackageFragment().getElementName();
-						return Composite.class.isAssignableFrom(clazz);
-					} catch (ClassNotFoundException e) {
-						e.printStackTrace();
-					}
-				}
-			}
-		}
-		return false;
-	}
-
-	public String getName() {
-		String p = getPrefix();
-		return p == null ? name : p + ":" + name;
-	}
-
-	private void updateNsURIs() {
-		StructuredTextEditor textEditor = getEditor().getTextEditor();
-		StructuredTextViewer textViewer = textEditor.getTextViewer();
-		IDOMNode node = VEXTextEditorHelper.getNode(textViewer, 0);
-		updateNsURIs(node, nsURIs);
-	}
-
-	private String genPrefix(Collection<String> existings) {
-		char[] c = { 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'z', 'c', 'v', 'b', 'n', 'm' };
-		Random random = new Random();
-		String prefix = Character.toString(c[Math.abs(random.nextInt()) % c.length]);
-		while (existings.contains(prefix)) {
-			prefix = Character.toString(c[Math.abs(random.nextInt()) % c.length]);
-		}
-		return prefix;
-	}
-
-	public void updateNsURIs(Object obj, Map<String, String> nsURIs) {
-		if (obj instanceof Node) {
-			Node node = (Node) obj;
-			String p = node.getPrefix();
-			String ns = node.getNamespaceURI();
-			if (ns != null) {
-				nsURIs.put(ns, p);
-			}
-			NamedNodeMap attributes = node.getAttributes();
-			if (attributes != null) {
-				for (int i = 0; i < attributes.getLength(); i++) {
-					Node attr = attributes.item(i);
-					String nodeName = attr.getNodeName();
-					if (nodeName.startsWith("xmlns:")) {
-						p = nodeName.substring("xmlns:".length());
-						ns = attr.getNodeValue();
-						if (ns != null) {
-							nsURIs.put(ns, p);
-						}
-					}
-				}
-			}
-			NodeList childNodes = node.getChildNodes();
-			if (childNodes != null) {
-				for (int i = 0; i < childNodes.getLength(); i++) {
-					updateNsURIs(childNodes.item(i), nsURIs);
-				}
-			}
-		}
-	}
-
-	public String getContent() {
-		return "<" + getName() + "/>";
-	}
-
-	public String getPrefix() {
-		updateNsURIs();
-		prefix = nsURIs.get(namespace);
-		if (prefix == null) {
-			prefix = genPrefix(nsURIs.values());
-			prefixStatus.put(prefix, Boolean.TRUE);
-			nsURIs.put(namespace, prefix);
-		}
-		return prefix;
-	}
-
-	public boolean isNsURINew() {
-		String p = getPrefix();
-		if (p == null) {
-			return false;
-		}
-		return Boolean.TRUE.equals(prefixStatus.get(p));
-	}
-
-	public String getNamespace() {
-		return namespace;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapterImpl#createTemplate(java.lang.Object)
-	 */
-	protected Template createTemplate(Object selection) {
-		return new Template(name, "", ContextType.XML_TAG.getName(), getContent(), true);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapterImpl#dropAccept(org.eclipse.swt.dnd.DropTargetEvent)
-	 */
-	public void dropAccept(DropTargetEvent event) {
-		if (!isAccept()) {
-			return;
-		}
-		String prefix = getPrefix();
-		if (prefix != null && isNsURINew()) {
-			String pattern = "xmlns:" + prefix + "=\"" + getNamespace() + "\" ";
-			Template tem = new Template("xmlns:" + prefix, "", ContextType.XML_ATTRIBUTE.getName(), pattern, true);
-			StructuredTextEditor textEditor = getEditor().getTextEditor();
-			StructuredTextViewer textViewer = textEditor.getTextViewer();
-			IDOMNode node = VEXTextEditorHelper.getNode(textViewer, 0);
-			NamedNodeMap attributes = node.getAttributes();
-			int dropNsIndex = 0;
-			for (int i = 0; i < attributes.getLength(); i++) {
-				IDOMAttr attr = (IDOMAttr) attributes.item(i);
-				String nodeName = attr.getNodeName();
-				if ("xmlns:x".equals(nodeName)) {
-					dropNsIndex = attr.getEndOffset();
-					break;
-				}
-			}
-			setDropCaretOffset(getDropCaretOffset() + pattern.length());
-			drop(tem, dropNsIndex, 0);
-			prefixStatus.put(prefix, Boolean.FALSE);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapter#getContextType()
-	 */
-	public ContextType getContextType() {
-		return ContextType.XML_TAG;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapter#getScope()
-	 */
-	public String getScope() {
-		return "Composite";
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/jdt/ASTHelper.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/jdt/ASTHelper.java
deleted file mode 100755
index 175fde2..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/jdt/ASTHelper.java
+++ /dev/null
@@ -1,385 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor.jdt;
-
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jdt.core.IBuffer;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IField;
-import org.eclipse.jdt.core.IMethod;
-import org.eclipse.jdt.core.ISourceRange;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.Signature;
-import org.eclipse.jdt.core.compiler.IProblem;
-import org.eclipse.jdt.core.dom.AST;
-import org.eclipse.jdt.core.dom.ASTNode;
-import org.eclipse.jdt.core.dom.ASTParser;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-import org.eclipse.jdt.core.dom.ImportDeclaration;
-import org.eclipse.jdt.core.dom.rewrite.ImportRewrite;
-import org.eclipse.jdt.core.formatter.CodeFormatter;
-import org.eclipse.jdt.internal.core.manipulation.StubUtility;
-import org.eclipse.jdt.internal.corext.dom.ASTNodes;
-import org.eclipse.jdt.internal.corext.util.CodeFormatterUtil;
-import org.eclipse.jdt.internal.corext.util.JavaModelUtil;
-import org.eclipse.jdt.internal.corext.util.Strings;
-import org.eclipse.jdt.ui.CodeGeneration;
-import org.eclipse.jdt.ui.CodeStyleConfiguration;
-import org.eclipse.text.edits.TextEdit;
-
-public class ASTHelper {
-	public static class ImportsManager {
-
-		private ImportRewrite fImportsRewrite;
-
-		/* package */ImportsManager(CompilationUnit astRoot) throws CoreException {
-			fImportsRewrite = CodeStyleConfiguration.createImportRewrite(astRoot, true);
-		}
-
-		/* package */ICompilationUnit getCompilationUnit() {
-			return fImportsRewrite.getCompilationUnit();
-		}
-
-		/**
-		 * Adds a new import declaration that is sorted in the existing imports. If an import already exists or the import would conflict with an import of an other type with the same simple name, the import is not added.
-		 * 
-		 * @param qualifiedTypeName
-		 *            The fully qualified name of the type to import (dot separated).
-		 * @return Returns the simple type name that can be used in the code or the fully qualified type name if an import conflict prevented the import.
-		 */
-		public String addImport(String qualifiedTypeName) {
-			return fImportsRewrite.addImport(qualifiedTypeName);
-		}
-
-		/**
-		 * Adds a new import declaration that is sorted in the existing imports. If an import already exists or the import would conflict with an import of an other type with the same simple name, the import is not added.
-		 * 
-		 * @param typeBinding
-		 *            the binding of the type to import
-		 * 
-		 * @return Returns the simple type name that can be used in the code or the fully qualified type name if an import conflict prevented the import.
-		 */
-		public String addImport(ITypeBinding typeBinding) {
-			return fImportsRewrite.addImport(typeBinding);
-		}
-
-		/**
-		 * Adds a new import declaration for a static type that is sorted in the existing imports. If an import already exists or the import would conflict with an import of an other static import with the same simple name, the import is not added.
-		 * 
-		 * @param declaringTypeName
-		 *            The qualified name of the static's member declaring type
-		 * @param simpleName
-		 *            the simple name of the member; either a field or a method name.
-		 * @param isField
-		 *            <code>true</code> specifies that the member is a field, <code>false</code> if it is a method.
-		 * @return returns either the simple member name if the import was successful or else the qualified name if an import conflict prevented the import.
-		 * 
-		 * @since 3.2
-		 */
-		public String addStaticImport(String declaringTypeName, String simpleName, boolean isField) {
-			return fImportsRewrite.addStaticImport(declaringTypeName, simpleName, isField);
-		}
-
-		/* package */void create(boolean needsSave, IProgressMonitor monitor) throws CoreException {
-			TextEdit edit = fImportsRewrite.rewriteImports(monitor);
-			JavaModelUtil.applyEdit(fImportsRewrite.getCompilationUnit(), edit, needsSave, null);
-		}
-
-		/* package */void removeImport(String qualifiedName) {
-			fImportsRewrite.removeImport(qualifiedName);
-		}
-
-		/* package */void removeStaticImport(String qualifiedName) {
-			fImportsRewrite.removeStaticImport(qualifiedName);
-		}
-	}
-
-	public static void generateEventHandler(final IType type, final String argumentType, final String handleName) throws Exception {
-		final ASTHelper helper = new ASTHelper();
-		Runnable typeRunner = new Runnable() {
-			public void run() {
-				try {
-					helper.createEventHandlers(type, handleName, argumentType);
-				} catch (CoreException e) {
-				}
-			}
-		};
-		helper.generateTypeMembers(type, argumentType, true, typeRunner);
-	}
-
-	public static void generateInitialization(final IType type, final String method, final Set<String> fieldNames) throws Exception {
-		final ASTHelper helper = new ASTHelper();
-		Runnable typeRunner = new Runnable() {
-			public void run() {
-				try {
-					helper.createInitializeMembers(type, method, fieldNames);
-				} catch (CoreException e) {
-				}
-			}
-		};
-		helper.generateTypeMembers(type, null, true, typeRunner);
-	}
-
-	public void generateTypeMembers(IType type, String argumentType, boolean needsSave, Runnable typeRunner) throws Exception {
-		int indent = 0;
-		IProgressMonitor monitor = new NullProgressMonitor();
-
-		Set /* String (import names) */existingImports;
-
-		String lineDelimiter = StubUtility.getLineDelimiterUsed(type.getJavaProject());
-		ICompilationUnit cu = type.getCompilationUnit();
-		// create a working copy with a new owner
-
-		cu.becomeWorkingCopy(monitor);
-
-		CompilationUnit astRoot = createASTForImports(cu);
-		existingImports = getExistingImports(astRoot);
-
-		ImportsManager imports = new ImportsManager(astRoot);
-		if (argumentType != null) {
-			imports.addImport(argumentType);
-		}
-		typeRunner.run();
-		// add imports
-		imports.create(false, monitor);
-
-		removeUnusedImports(cu, existingImports, false);
-
-		JavaModelUtil.reconcile(cu);
-
-		ISourceRange range = type.getSourceRange();
-
-		IBuffer buf = cu.getBuffer();
-		String originalContent = buf.getText(range.getOffset(), range.getLength());
-
-		String formattedContent = CodeFormatterUtil.format(CodeFormatter.K_CLASS_BODY_DECLARATIONS, originalContent, indent, lineDelimiter, type.getJavaProject());
-		formattedContent = Strings.trimLeadingTabsAndSpaces(formattedContent);
-		buf.replace(range.getOffset(), range.getLength(), formattedContent);
-
-		if (needsSave) {
-			cu.commitWorkingCopy(true, new SubProgressMonitor(monitor, 1));
-		} else {
-			monitor.worked(1);
-		}
-	}
-
-	private CompilationUnit createASTForImports(ICompilationUnit cu) {
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setSource(cu);
-		parser.setResolveBindings(false);
-		parser.setFocalPosition(0);
-		return (CompilationUnit) parser.createAST(null);
-	}
-
-	private Set /* String */getExistingImports(CompilationUnit root) {
-		List imports = root.imports();
-		Set res = new HashSet(imports.size());
-		for (int i = 0; i < imports.size(); i++) {
-			res.add(ASTNodes.asString((ImportDeclaration) imports.get(i)));
-		}
-		return res;
-	}
-
-	public static void removeUnusedImports(IType type) {
-		try {
-			ASTHelper helper = new ASTHelper();
-			ICompilationUnit cu = type.getCompilationUnit();
-			CompilationUnit astRoot = helper.createASTForImports(cu);
-			Set existingImports = helper.getExistingImports(astRoot);
-			helper.removeUnusedImports(cu, existingImports, true);
-		} catch (CoreException e) {
-		}
-	}
-
-	private void removeUnusedImports(ICompilationUnit cu, Set existingImports, boolean needsSave) throws CoreException {
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setSource(cu);
-		parser.setResolveBindings(true);
-
-		CompilationUnit root = (CompilationUnit) parser.createAST(null);
-		if (root.getProblems().length == 0) {
-			return;
-		}
-
-		List importsDecls = root.imports();
-		if (importsDecls.isEmpty()) {
-			return;
-		}
-		ImportsManager imports = new ImportsManager(root);
-
-		int importsEnd = ASTNodes.getExclusiveEnd((ASTNode) importsDecls.get(importsDecls.size() - 1));
-		IProblem[] problems = root.getProblems();
-		for (int i = 0; i < problems.length; i++) {
-			IProblem curr = problems[i];
-			if (curr.getSourceEnd() < importsEnd) {
-				int id = curr.getID();
-				if (id == IProblem.UnusedImport || id == IProblem.NotVisibleType) { // not visible
-					// problems hide
-					// unused -> remove
-					// both
-					int pos = curr.getSourceStart();
-					for (int k = 0; k < importsDecls.size(); k++) {
-						ImportDeclaration decl = (ImportDeclaration) importsDecls.get(k);
-						if (decl.getStartPosition() <= pos && pos < decl.getStartPosition() + decl.getLength()) {
-							if (existingImports.isEmpty() || !existingImports.contains(ASTNodes.asString(decl))) {
-								String name = decl.getName().getFullyQualifiedName();
-								if (decl.isOnDemand()) {
-									name += ".*"; //$NON-NLS-1$
-								}
-								if (decl.isStatic()) {
-									imports.removeStaticImport(name);
-								} else {
-									imports.removeImport(name);
-								}
-							}
-							break;
-						}
-					}
-				}
-			}
-		}
-		imports.create(needsSave, null);
-	}
-
-	protected void createEventHandlers(IType type, String method, String argumentType) throws CoreException {
-		int lastIndexOf = argumentType.lastIndexOf(".");
-		String shortArgTypeName = argumentType.substring(lastIndexOf + 1);
-		StringBuffer buf = new StringBuffer();
-		final String lineDelim = "\n"; // OK, since content is formatted
-		// afterwards //$NON-NLS-1$
-		String comment = CodeGeneration.getMethodComment(type.getCompilationUnit(), type.getTypeQualifiedName('.'), method, new String[] { "event" }, new String[0], Signature.createTypeSignature("void", true), null, lineDelim); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		if (comment != null) {
-			buf.append(comment);
-			buf.append(lineDelim);
-		}
-		buf.append("public void " + method + "( "); //$NON-NLS-1$
-		buf.append(shortArgTypeName); //$NON-NLS-1$
-		buf.append(" event) {"); //$NON-NLS-1$
-		buf.append(lineDelim);
-
-		final String content = CodeGeneration.getMethodBodyContent(type.getCompilationUnit(), type.getTypeQualifiedName('.'), method, false, "", lineDelim); //$NON-NLS-1$ //$NON-NLS-2$
-		if (content != null && content.length() != 0)
-			buf.append(content);
-		buf.append(lineDelim);
-		buf.append("}"); //$NON-NLS-1$
-		type.createMethod(buf.toString(), null, false, null);
-	}
-
-	protected void createInitializeMembers(IType type, String method, Set<String> fieldNames) throws CoreException {
-		IMethod init = null;
-		IMethod[] methods = type.getMethods();
-		for (IMethod method2 : methods) {
-			if (method2.getElementName().equals(method)) {
-				init = method2;
-				break;
-			}
-		}
-		if (init != null) {
-			init.delete(false, null);
-		}
-		StringBuffer buf = new StringBuffer();
-		final String lineDelim = "\n";
-		String comment = "/**\n  * Generated Initialization.\n */";
-		if (comment != null) {
-			buf.append(comment);
-			buf.append(lineDelim);
-		}
-		buf.append("protected void " + method + " () {"); //$NON-NLS-1$
-		buf.append(lineDelim);
-
-		if (fieldNames.isEmpty()) {
-			final String content = CodeGeneration.getMethodBodyContent(type.getCompilationUnit(), type.getTypeQualifiedName('.'), method, false, "", lineDelim); //$NON-NLS-1$ //$NON-NLS-2$
-			if (content != null && content.length() != 0) {
-				buf.append(content);
-			}
-		}
-		for (String fieidName : fieldNames) {
-			IField field = type.getField(fieidName);
-			if (field != null) {
-				String initialize = fieidName + " = (" + Signature.toString(field.getTypeSignature()) + ") findElement(\"" + fieidName + "\");";
-				buf.append(initialize);
-			}
-		}
-		buf.append(lineDelim);
-		buf.append("}"); //$NON-NLS-1$
-		type.createMethod(buf.toString(), null, false, null);
-	}
-
-	public static void generateNamedFields(IType type, String fieldType, String fieldName) {
-		try {
-			ASTHelper helper = new ASTHelper();
-			helper.createNamedFields(type, fieldType, fieldName, true);
-		} catch (Exception e) {
-		}
-	}
-
-	public void createNamedFields(IType type, String fieldType, String fieldName, boolean needSave) throws Exception {
-		if (fieldType == null || fieldName == null) {
-			return;
-		}
-		IProgressMonitor monitor = new NullProgressMonitor();
-
-		Set /* String (import names) */existingImports;
-
-		String lineDelimiter = StubUtility.getLineDelimiterUsed(type.getJavaProject());
-		ICompilationUnit cu = type.getCompilationUnit();
-		// create a working copy with a new owner
-
-		cu.becomeWorkingCopy(monitor);
-
-		CompilationUnit astRoot = createASTForImports(cu);
-		existingImports = getExistingImports(astRoot);
-
-		ImportsManager imports = new ImportsManager(astRoot);
-		imports.addImport(fieldType);
-		createField(type, fieldType, fieldName);
-
-		// add imports
-		imports.create(false, monitor);
-
-		removeUnusedImports(cu, existingImports, false);
-
-		JavaModelUtil.reconcile(cu);
-
-		ISourceRange range = type.getSourceRange();
-
-		IBuffer buf = cu.getBuffer();
-		String originalContent = buf.getText(range.getOffset(), range.getLength());
-
-		String formattedContent = CodeFormatterUtil.format(CodeFormatter.K_CLASS_BODY_DECLARATIONS, originalContent, 0, lineDelimiter, type.getJavaProject());
-		formattedContent = Strings.trimLeadingTabsAndSpaces(formattedContent);
-		buf.replace(range.getOffset(), range.getLength(), formattedContent);
-
-		if (needSave) {
-			cu.commitWorkingCopy(true, new SubProgressMonitor(monitor, 1));
-		} else {
-			monitor.worked(1);
-		}
-	}
-
-	private void createField(IType type, String paraType, String paraName) throws Exception {
-		int lastIndexOf = paraType.lastIndexOf(".");
-		String property = paraType.substring(lastIndexOf + 1);
-		if (property == null || property.equals("")) {
-			property = paraType;
-		}
-		String contents = ("protected " + property + " " + paraName + ";");
-		type.createField(contents, null, false, null);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/render/CanvasManager.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/render/CanvasManager.java
deleted file mode 100755
index a693a78..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/render/CanvasManager.java
+++ /dev/null
@@ -1,250 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor.render;
-
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.ScrollBar;
-
-public class CanvasManager {
-
-	private Image originalImage;
-	private Canvas canvas;
-	private Image displayImage;
-	/* The width and height value of canvas image. */
-	public int imageWidth = -1, imageHeight = -1;
-	/* The visible width and height of canvas. */
-	private int visibleWidth, visibleHeight;
-	private ManagerContext displayMC = new ManagerContext();
-	private ManagerContext imageMC = new ManagerContext();
-
-	public CanvasManager(Canvas canvas) {
-		this.canvas = canvas;
-		initialize();
-	}
-
-	private void initialize() {
-		displayMC.gc = new GC(canvas);
-
-		canvas.addPaintListener(new PaintListener() {
-			public void paintControl(PaintEvent event) {
-				handlePaint(event);
-			}
-		});
-
-		canvas.addControlListener(new ControlAdapter() {
-			public void controlResized(ControlEvent event) {
-				handleResize();
-			}
-		});
-
-		ScrollBar horizontal = getHorizontalBar();
-		if (horizontal != null) {
-			horizontal.setVisible(true);
-			horizontal.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent event) {
-					scrollHorizontally((ScrollBar) event.widget);
-				}
-			});
-		}
-		ScrollBar vertical = getVerticalBar();
-		if (vertical != null) {
-			vertical.setVisible(true);
-			vertical.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent event) {
-					scrollVertically((ScrollBar) event.widget);
-				}
-			});
-		}
-
-		canvas.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				if (displayMC.gc != null) {
-					displayMC.gc.dispose();
-				}
-			}
-		});
-		handleResize();
-	}
-
-	/**
-	 * Build or refresh the canvas with given image.
-	 * 
-	 * @param image
-	 */
-	public synchronized void setImage(Image image) {
-		if (image != null) {
-			originalImage = image;
-			clearImage();
-			createDisplayImage();
-			canvas.redraw();
-			canvas.getDisplay().update();
-		}
-	}
-
-	private void createDisplayImage() {
-		if (originalImage == null || originalImage.isDisposed()) {
-			return;
-		}
-		Rectangle bounds = originalImage.getBounds();
-		int width = bounds.width;
-		int height = bounds.height;
-
-		Rectangle rect = canvas.getBounds();
-
-		imageWidth = Math.max(width + 17, rect.width);
-		imageHeight = Math.max(height + 17, rect.height);
-
-		displayImage = new Image(canvas.getDisplay(), imageWidth, imageHeight);
-
-		imageMC.gc = new GC(displayImage);
-		imageMC.gc.fillRectangle(0, 0, imageWidth, imageHeight);
-		imageMC.gc.drawImage(originalImage, 0, 0, width, height, (imageWidth - width - 17) / 2, (imageHeight - height - 17) / 2, width, height);
-
-		handleResize();
-	}
-
-	/**
-	 * Clear old images on the current canvas.
-	 */
-	private void clearImage() {
-		if (displayImage != null) {
-			displayImage.dispose();
-			displayImage = null;
-		}
-		if (imageMC.gc != null) {
-			imageMC.gc.dispose();
-			imageMC.gc = null;
-		}
-	}
-
-	public void dispose() {
-		canvas = null;
-		clearImage();
-		if (displayMC.gc != null) {
-			displayMC.gc.dispose();
-			displayMC = null;
-		}
-		if (displayImage != null) {
-			displayImage.dispose();
-		}
-	}
-
-	protected void scrollVertically(ScrollBar scrollBar) {
-		if (displayImage == null)
-			return;
-		if (imageHeight > visibleHeight) {
-			final int oldOffset = displayMC.yOffset;
-			final int newOffset = Math.min(scrollBar.getSelection(), imageHeight - visibleHeight);
-			if (oldOffset != newOffset) {
-				canvas.update();
-				displayMC.yOffset = newOffset;
-				canvas.scroll(0, Math.max(oldOffset - newOffset, 0), 0, Math.max(newOffset - oldOffset, 0), visibleWidth, visibleHeight, false);
-			}
-		}
-	}
-
-	protected void scrollHorizontally(ScrollBar scrollBar) {
-		if (displayImage == null)
-			return;
-		if (imageWidth > visibleWidth) {
-			final int oldOffset = displayMC.xOffset;
-			final int newOffset = Math.min(scrollBar.getSelection(), imageWidth - visibleWidth);
-			if (oldOffset != newOffset) {
-				canvas.update();
-				displayMC.xOffset = newOffset;
-				canvas.scroll(Math.max(oldOffset - newOffset, 0), 0, Math.max(newOffset - oldOffset, 0), 0, visibleWidth, visibleHeight, false);
-			}
-		}
-	}
-
-	protected void handleResize() {
-
-		canvas.update();
-
-		Rectangle visibleRect = canvas.getBounds();
-		visibleWidth = visibleRect.width;
-		visibleHeight = visibleRect.height;
-
-		ScrollBar horizontal = getHorizontalBar();
-		if (horizontal != null) {
-			displayMC.xOffset = Math.min(horizontal.getSelection(), imageWidth - visibleWidth);
-			if (imageWidth <= visibleWidth) {
-				horizontal.setVisible(false);
-				horizontal.setEnabled(false);
-				horizontal.setSelection(0);
-			} else {
-				horizontal.setVisible(true);
-				horizontal.setEnabled(true);
-				horizontal.setValues(displayMC.xOffset, 0, imageWidth, visibleWidth, 8, visibleWidth);
-			}
-		}
-
-		ScrollBar vertical = getVerticalBar();
-		if (vertical != null) {
-			displayMC.yOffset = Math.min(vertical.getSelection(), imageHeight - visibleHeight);
-			if (imageHeight <= visibleHeight) {
-				vertical.setEnabled(false);
-				vertical.setVisible(false);
-				vertical.setSelection(0);
-			} else {
-				vertical.setEnabled(true);
-				vertical.setVisible(true);
-				vertical.setValues(displayMC.yOffset, 0, imageHeight, visibleHeight, 8, visibleHeight);
-			}
-		}
-	}
-
-	private ScrollBar getVerticalBar() {
-		ScrollBar vertical = canvas.getVerticalBar();
-		if (vertical == null) {
-			vertical = canvas.getParent().getVerticalBar();
-		}
-		return vertical;
-	}
-
-	private ScrollBar getHorizontalBar() {
-		ScrollBar horizontal = canvas.getHorizontalBar();
-		if (horizontal == null) {
-			horizontal = canvas.getParent().getHorizontalBar();
-		}
-		return horizontal;
-	}
-
-	private void handlePaint(PaintEvent event) {
-		if (displayImage == null) {
-			return;
-		}
-		// srcX > 0 && srcY > 0
-		int srcX = displayMC.xOffset + event.x;
-		int srcY = displayMC.yOffset + event.y;
-		srcX = srcX < 0 ? 0 : srcX;
-		srcY = srcY < 0 ? 0 : srcY;
-		Rectangle bounds = displayImage.getBounds();
-		if ((bounds.width - srcX) < event.width || (bounds.height - srcY) < event.height) {
-			createDisplayImage();
-			handlePaint(event);
-		} else {
-			event.gc.drawImage(displayImage, srcX, srcY, event.width, event.height, event.x, event.y, event.width, event.height);
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/render/ManagerContext.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/render/ManagerContext.java
deleted file mode 100755
index 59f0999..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/render/ManagerContext.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor.render;
-
-import org.eclipse.swt.graphics.GC;
-
-public class ManagerContext {
-
-	public GC gc;
-
-	public int xOffset;
-
-	public int yOffset;
-
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/render/XWTRender.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/render/XWTRender.java
deleted file mode 100755
index 03ac82c..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/render/XWTRender.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor.render;
-
-import java.beans.PropertyChangeListener;
-import java.io.ByteArrayInputStream;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.xwt.IXWTLoader;
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.XWTException;
-import org.eclipse.xwt.ui.utils.ProjectContext;
-import org.eclipse.xwt.vex.VEXRenderer;
-import org.eclipse.xwt.vex.swt.ImageCapture;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.browser.ProgressEvent;
-import org.eclipse.swt.browser.ProgressListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Monitor;
-import org.eclipse.swt.widgets.Shell;
-
-public class XWTRender implements VEXRenderer {
-	private String hostClassName;
-	private Map<String, Object> options; 
-
-	/**
-	 * CanvasManager is used to draw the captured image and manage the ScrollBars.
-	 */
-	private CanvasManager canvasManager;
-	private ProjectContext projectContext;
-	private PropertyChangeListener changeListener;
-
-	private Shell shell;
-
-	/**
-	 * This is a count of the browser loading.
-	 */
-	private int time = 0;
-
-	public XWTRender(Canvas container, PropertyChangeListener changeListener) {
-		this.changeListener = changeListener;
-		canvasManager = new CanvasManager(container);
-		
-		options = new HashMap<String, Object>();
-		options.put(IXWTLoader.DESIGN_MODE_PROPERTY, Boolean.TRUE);
-	}
-
-	public void dispose() {
-		if (canvasManager != null) {
-			canvasManager.dispose();
-			canvasManager = null;
-		}
-		if (shell != null) {
-			shell.dispose();
-		}
-	}
-
-	public boolean updateView(String code, IFile file) {
-		if (shell != null) {
-			shell.dispose();
-		}
-		Control control = Display.getCurrent().getFocusControl();
-		try {
-			IJavaProject javaProject = JavaCore.create(file.getProject());
-			if (!javaProject.exists()) {
-				return false;
-			}
-
-			if (projectContext != null) {
-				projectContext.removePropertyChangeListener(changeListener);
-			}
-
-			projectContext = ProjectContext.getContext(javaProject);
-			XWT.setLoadingContext(projectContext);
-			Object rootElement;
-			try {
-				ByteArrayInputStream inputStream = new ByteArrayInputStream(code.getBytes());
-				rootElement = XWT.loadWithOptions(inputStream, file.getLocationURI().toURL(), options);
-			} catch (Exception e) {
-				return false;
-			}
-
-			if (rootElement != null) {
-				Rectangle rectangle = new Rectangle(0, 0, 0, 0);
-				for (Monitor monitor : Display.getDefault().getMonitors()) {
-					Rectangle bounds = monitor.getBounds();
-					rectangle = rectangle.union(bounds);
-				}
-
-				shell = XWT.findShell(rootElement);
-				if (shell == null) {
-					throw new XWTException("Root element is a control.");
-				}
-				shell.setFocus();
-//				shell.pack();
-				shell.setLocation(rectangle.x + rectangle.width + 200, rectangle.y + rectangle.height + 200);
-				shell.open();
-
-				Object hostClr = XWT.getCLR(rootElement);
-				if (hostClr != null) {
-					hostClassName = hostClr.getClass().getName();
-				}
-
-				final List<Browser> browsers = new ArrayList<Browser>();
-				findBrowser(rootElement, browsers);
-				if (!browsers.isEmpty()) {
-					/* Fixed the bug of browser: 1. Captured the image from browser after document loading finished. 2. Closed the parent shell when all documents loading finished. */
-					time = 0;
-					final int total = browsers.size();
-					ProgressListener listener = new ProgressListener() {
-						public void changed(ProgressEvent event) {
-							if (canvasManager == null || shell == null || shell.isDisposed()) {
-								return;
-							}
-							Image image = ImageCapture.getImageCapture().captureImage(shell);
-							canvasManager.setImage(image);
-						}
-
-						public void completed(ProgressEvent event) {
-							if (canvasManager == null || shell == null || shell.isDisposed()) {
-								return;
-							}
-							Image image = ImageCapture.getImageCapture().captureImage(shell);
-							canvasManager.setImage(image);
-							time++;
-							if (time == total) {
-								shell.close();
-							}
-						}
-					};
-					for (Browser browser : browsers) {
-						browser.addProgressListener(listener);
-					}
-				} else if (shell != null && !shell.isDisposed()) {
-					Image image = ImageCapture.getImageCapture().defaultCapture(shell);
-					canvasManager.setImage(image);
-					shell.close();
-				}
-
-				projectContext.addPropertyChangeListener(changeListener);
-			}
-		} finally {
-			if (control != null) {
-				control.setFocus();
-			}
-		}
-		return true;
-	}
-
-	private void findBrowser(Object control, List<Browser> browsers) {
-		if (control instanceof Composite) {
-			Composite parent = (Composite) control;
-			Control[] children = parent.getChildren();
-			for (Control child : children) {
-				if (child instanceof Browser) {
-					browsers.add((Browser) child);
-				}
-				findBrowser(child, browsers);
-			}
-		}
-	}
-
-	public String getHostClassName() {
-		return hostClassName;
-	}
-
-	public void setHostClassName(String hostClassName) {
-		this.hostClassName = hostClassName;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/treeviewer/ImageMenuManager.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/treeviewer/ImageMenuManager.java
deleted file mode 100755
index d0f0ef6..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/treeviewer/ImageMenuManager.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor.treeviewer;
-
-import java.lang.reflect.Field;
-
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.xwt.ui.utils.ImageManager;
-
-public class ImageMenuManager extends MenuManager {
-	protected ImageDescriptor imageDescriptor;
-
-	public ImageMenuManager() {
-	}
-
-	public ImageMenuManager(String text, ImageDescriptor imageDescriptor) {
-		super(text);
-		this.imageDescriptor = imageDescriptor;
-	}
-
-	public ImageMenuManager(String text, String id, ImageDescriptor imageDescriptor) {
-		super(text, id);
-		this.imageDescriptor = imageDescriptor;
-	}
-
-	@Override
-	public void fill(Menu parent, int index) {
-		super.fill(parent, index);
-		if (imageDescriptor != null) {
-			try {
-				Field field = MenuManager.class.getDeclaredField("menuItem");
-				field.setAccessible(true);
-				Object object = field.get(this);
-				if (object instanceof MenuItem) {
-					MenuItem menuItem = (MenuItem) object;
-					menuItem.setImage(ImageManager.getImage(imageDescriptor));
-				}
-			} catch (Exception e) {
-				throw new IllegalStateException("The field MenuManager.menuItem is not found. Maybe the version of SWT chnaged.");
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/treeviewer/XWTMenuBuilder.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/treeviewer/XWTMenuBuilder.java
deleted file mode 100755
index aeac6d7..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/treeviewer/XWTMenuBuilder.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor.treeviewer;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.wst.xml.ui.internal.actions.MenuBuilder;
-
-public class XWTMenuBuilder extends MenuBuilder {
-	protected ImageDescriptor image;
-
-	public XWTMenuBuilder() {
-	}
-
-	protected void createAlphebeticalGrouping(IMenuManager menu, List actionList) {
-		Object[] array = actionList.toArray();
-		if (array.length > 0) {
-			Arrays.sort(array, comparator);
-		}
-
-		int groupSize = 15;
-		int minGroupSize = 5;
-		int numberOfGroups = (array.length / groupSize) + ((array.length % groupSize > minGroupSize) ? 1 : 0);
-
-		for (int i = 0; i < numberOfGroups; i++) {
-			boolean isLastGroup = (i == (numberOfGroups - 1));
-			int firstIndex = i * groupSize;
-			int lastIndex = isLastGroup ? array.length - 1 : i * groupSize + groupSize - 1;
-			Action firstAction = (Action) array[firstIndex];
-			Action lastAction = (Action) array[lastIndex];
-			ImageMenuManager submenu = new ImageMenuManager(firstAction.getText() + " - " + lastAction.getText(), image); //$NON-NLS-1$
-			menu.add(submenu);
-			for (int j = firstIndex; j <= lastIndex; j++) {
-				submenu.add((Action) array[j]);
-			}
-		}
-	}
-
-	public ImageDescriptor getImageDescriptor() {
-		return image;
-	}
-
-	public void setImageDescriptor(ImageDescriptor image) {
-		this.image = image;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/treeviewer/XWTNodeActionManager.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/treeviewer/XWTNodeActionManager.java
deleted file mode 100755
index 37f3678..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/treeviewer/XWTNodeActionManager.java
+++ /dev/null
@@ -1,430 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor.treeviewer;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-
-import org.eclipse.jdt.internal.ui.JavaPluginImages;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.eclipse.wst.xml.ui.internal.contentoutline.XMLNodeActionManager;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-
-public class XWTNodeActionManager extends XMLNodeActionManager {
-
-	public XWTNodeActionManager(IStructuredModel model, Viewer viewer) {
-		super(model, viewer);
-	}
-
-	@Override
-	protected void contributeAddChildActions(IMenuManager menu, Node node, int ic, int vc) {
-		super.contributeAddChildActions(menu, node, ic, vc);
-
-		contributeXAMLAttributeMenu(menu, node, ic, vc);
-		contributeXAMLChildMenu(menu, node, ic, vc);
-	}
-
-	protected void contributeXAMLAttributeMenu(IMenuManager menu, Node node, int ic, int vc) {
-		IMenuManager addAttributeMenu = null;
-
-		String message = XMLUIMessages._UI_MENU_ADD_ATTRIBUTE;
-		for (IContributionItem item : menu.getItems()) {
-			if (item instanceof MenuManager) {
-				MenuManager manager = (MenuManager) item;
-				if (message.equals(manager.getMenuText())) {
-					addAttributeMenu = manager;
-					break;
-				}
-			}
-		}
-
-		if (addAttributeMenu == null) {
-			return;
-		}
-
-		IContributionItem[] items = addAttributeMenu.getItems();
-		addAttributeMenu.removeAll();
-
-		String tagName = node.getNodeName();
-		// Metaclass metaclass = UPF.getMetaclass(tagName, DomHelper.lookupNamespaceURI(node));
-		// if (metaclass == null) {
-		// return;
-		// }
-
-		List<Action> actionPropertyCollector = new ArrayList<Action>();
-		List<Action> actionAttachedPropertyCollector = new ArrayList<Action>();
-		List<Action> actionEventCollector = new ArrayList<Action>();
-
-		HashSet<String> existing = new HashSet<String>();
-		NamedNodeMap namedNodeMap = node.getAttributes();
-		for (int i = 0; i < namedNodeMap.getLength(); i++) {
-			Node attributeNode = namedNodeMap.item(i);
-			String attributeName = attributeNode.getNodeName();
-			existing.add(attributeName);
-		}
-
-		ImageDescriptor proppertyImageDescriptor = JavaPluginImages.getDescriptor(JavaPluginImages.IMG_FIELD_PUBLIC);
-		// ImageDescriptor eventImageDescriptor = ResourceManager.OBJ_EVENT;
-		// ImageDescriptor attachedProppertyImageDescriptor = JavaPluginImages
-		// .getDescriptor(JavaPluginImages.IMG_FIELD_PROTECTED);
-		//
-		// {
-		// Collection<Property> properties = metaclass.getAllProperties();
-		// for (Property property : properties) {
-		// if (property.isMany()) {
-		// continue;
-		// }
-		// Metaclass propertyType = property.getType();
-		// if (propertyType != null
-		// && propertyType.isAssignableFrom(UIElement.metaclass)) {
-		// continue;
-		// }
-		//
-		// String propertyName = property.getName();
-		//
-		// if (!existing.contains(propertyName)) {
-		// Object defaultValue = property.getDefaultValue();
-		// String defaultValueString = "";
-		// if (defaultValue != null) {
-		// IValueConverter converter = UPF.findConvertor(
-		// defaultValue.getClass(), String.class);
-		// if (converter != null) {
-		// Object stringValue = converter.convert(
-		// defaultValue, String.class, "", Locale
-		// .getDefault());
-		// if (stringValue != null) {
-		// defaultValueString = stringValue.toString();
-		// }
-		// } else {
-		// defaultValueString = defaultValue.toString();
-		// }
-		// }
-		// String replacementString = propertyName + "=\""
-		// + defaultValueString + "\" ";
-		//
-		// CMAttributeDeclarationImpl declaration = new CMAttributeDeclarationImpl(
-		// propertyName, CMAttributeDeclaration.OPTIONAL);
-		// Action action = createAddAttributeAction((Element) node,
-		// declaration);
-		// action.setImageDescriptor(proppertyImageDescriptor);
-		// actionPropertyCollector.add(action);
-		// }
-		// }
-		//
-		// Collection<Event> events = metaclass.getAllEvents();
-		// for (Event event : events) {
-		// String eventName = event.getName();
-		// if (!existing.contains(event)) {
-		//
-		// CMAttributeDeclarationImpl declaration = new CMAttributeDeclarationImpl(
-		// eventName, CMAttributeDeclaration.OPTIONAL);
-		// Action action = createAddAttributeAction((Element) node,
-		// declaration);
-		// action.setImageDescriptor(eventImageDescriptor);
-		// actionEventCollector.add(action);
-		// }
-		// }
-		// }
-		//
-		// {
-		// Node parentNode = node.getParentNode();
-		// String parentName = parentNode.getNodeName();
-		// Metaclass parentMetaclass = UPF.getMetaclass(parentName, DomHelper.lookupNamespaceURI(parentNode));
-		// if (parentMetaclass != null) {
-		// Property[] properties = parentMetaclass.getAttachedProperties();
-		// for (Property property : properties) {
-		// Metaclass propertyType = property.getType();
-		// if (propertyType != null
-		// && propertyType
-		// .isAssignableFrom(UIElement.metaclass)) {
-		// continue;
-		// }
-		//
-		// String propertyName = property.getName();
-		// if (!existing.contains(propertyName)) {
-		// Object defaultValue = property.getDefaultValue();
-		// String defaultValueString = "";
-		// if (defaultValue != null) {
-		// IValueConverter converter = UPF.findConvertor(
-		// defaultValue.getClass(), String.class);
-		// if (converter != null) {
-		// Object stringValue = converter.convert(
-		// defaultValue, String.class, "", Locale
-		// .getDefault());
-		// if (stringValue != null) {
-		// defaultValueString = stringValue.toString();
-		// }
-		// } else {
-		// defaultValueString = defaultValue.toString();
-		// }
-		// }
-		// String attachedName = parentName + "." + propertyName;
-		// String replacementString = attachedName + "=\""
-		// + defaultValueString + "\" ";
-		//
-		// CMAttributeDeclarationImpl declaration = new CMAttributeDeclarationImpl(
-		// attachedName, CMAttributeDeclaration.OPTIONAL);
-		// Action action = createAddAttributeAction(
-		// (Element) node, declaration);
-		// action
-		// .setImageDescriptor(attachedProppertyImageDescriptor);
-		// actionAttachedPropertyCollector.add(action);
-		// }
-		// }
-		// }
-		// }
-		// addAttributeMenu.add(new Separator());
-		// XAMLMenuBuilder imageMenuBuilder = null;
-		// if (!(menuBuilder instanceof XAMLMenuBuilder)) {
-		// menuBuilder = new XAMLMenuBuilder();
-		// }
-		// imageMenuBuilder = (XAMLMenuBuilder) menuBuilder;
-		//
-		// if (!actionPropertyCollector.isEmpty()) {
-		// imageMenuBuilder.setImageDescriptor(proppertyImageDescriptor);
-		// imageMenuBuilder.populateMenu(addAttributeMenu,
-		// actionPropertyCollector, true);
-		// addAttributeMenu.add(new Separator());
-		// }
-		// if (!actionAttachedPropertyCollector.isEmpty()) {
-		// imageMenuBuilder
-		// .setImageDescriptor(attachedProppertyImageDescriptor);
-		// imageMenuBuilder.populateMenu(addAttributeMenu,
-		// actionAttachedPropertyCollector, true);
-		// addAttributeMenu.add(new Separator());
-		// }
-		// if (!actionEventCollector.isEmpty()) {
-		// imageMenuBuilder.setImageDescriptor(eventImageDescriptor);
-		// imageMenuBuilder.populateMenu(addAttributeMenu,
-		// actionEventCollector, true);
-		// addAttributeMenu.add(new Separator());
-		// }
-		// imageMenuBuilder.setImageDescriptor(null);
-		//
-		// for (IContributionItem item : items) {
-		// addAttributeMenu.add(item);
-		// }
-	}
-
-	protected void contributeXAMLChildMenu(IMenuManager menu, Node node, int ic, int vc) {
-		IMenuManager addChildMenu = null;
-		String message = XMLUIMessages._UI_MENU_ADD_CHILD;
-		for (IContributionItem item : menu.getItems()) {
-			if (item instanceof MenuManager) {
-				MenuManager manager = (MenuManager) item;
-				if (message.equals(manager.getMenuText())) {
-					addChildMenu = manager;
-					break;
-				}
-			}
-		}
-		if (addChildMenu == null) {
-			return;
-		}
-
-		List<Action> propertyElementCollector = new ArrayList<Action>();
-		List<Action> elementCollector = new ArrayList<Action>();
-		List<Action> resourcesCollector = new ArrayList<Action>();
-
-		IContributionItem[] items = addChildMenu.getItems();
-		addChildMenu.removeAll();
-
-		// ImageDescriptor elementImageEDescriptor = ResourceManager.OBJ_ELEMENT;
-		// ImageDescriptor resourceImageDescriptor = ResourceManager.OBJ_RESOURCES;
-		//
-		// String name = node.getNodeName();
-		// Metaclass metaclass = UPF.getMetaclass(name, DomHelper.lookupNamespaceURI(node));
-		// if (metaclass != null) {
-		// Collection<Property> properties = metaclass.getAllProperties();
-		// for (Property property : properties) {
-		// Metaclass propertyType = property.getType();
-		// if (propertyType == null) {
-		// continue;
-		// }
-		// if (metaclass.isAssignableFrom(UIElement.metaclass)) {
-		// if (propertyType != null
-		// && propertyType
-		// .isAssignableFrom(UIElement.metaclass)
-		// && !propertyType.isAbstract()) {
-		// String typeName = property.getName();
-		// String tagName = name + "." + typeName;
-		//
-		// CMElementDeclarationImpl declaration = new CMElementDeclarationImpl(
-		// null, tagName);
-		// Action action = createAddElementAction((Element) node,
-		// declaration, -1);
-		// action.setImageDescriptor(elementImageEDescriptor);
-		// propertyElementCollector.add(action);
-		// }
-		// } else {
-		// if (property.getIsComposition()) {
-		// Metaclass[] metaclasses = UPF.getAllMetaclasses();
-		// for (Metaclass type : metaclasses) {
-		// if (TriggerBase.metaclass.isAssignableFrom(type)) {
-		// continue;
-		// }
-		// if (type.isSubclassOf(propertyType)
-		// && !type.isAbstract()) {
-		// String tagName = type.getName();
-		//
-		// CMElementDeclarationImpl declaration = new CMElementDeclarationImpl(
-		// null, tagName);
-		// Action action = createAddElementAction(
-		// (Element) node, declaration, -1);
-		// action
-		// .setImageDescriptor(elementImageEDescriptor);
-		// elementCollector.add(action);
-		// }
-		// }
-		// }
-		// }
-		// }
-		// String tagName = name + ".Resources";
-		//
-		// CMElementDeclarationImpl declaration = new CMElementDeclarationImpl(
-		// null, tagName);
-		// Action action = createAddElementAction((Element) node, declaration,
-		// -1);
-		// action.setImageDescriptor(elementImageEDescriptor);
-		// resourcesCollector.add(action);
-		// }
-		//
-		// if (metaclass != null) {
-		// if (UIElement.metaclass.isAssignableFrom(metaclass)) {
-		// Metaclass[] metaclasses = UPF.getAllMetaclasses();
-		// for (Metaclass type : metaclasses) {
-		// if (ListBoxItem.metaclass.isAssignableFrom(type)
-		// && !Selector.metaclass.isAssignableFrom(metaclass)) {
-		// continue;
-		// }
-		// if (TreeViewItem.metaclass.isAssignableFrom(type)
-		// && !TreeView.metaclass.isAssignableFrom(metaclass)) {
-		// continue;
-		// }
-		// if (TabItem.metaclass.isAssignableFrom(type)
-		// && !TabControl.metaclass
-		// .isAssignableFrom(metaclass)) {
-		// continue;
-		// }
-		//
-		// if (MenuItem.metaclass.isAssignableFrom(type)
-		// && !Menu.metaclass.isAssignableFrom(metaclass)) {
-		// continue;
-		// }
-		//
-		// if (type.getType().isAssignableFrom(IScopeObject.class)) {
-		// continue;
-		// }
-		// if (TriggerBase.metaclass.isAssignableFrom(type)) {
-		// continue;
-		// }
-		//
-		// if (UIElement.metaclass == type) {
-		// continue;
-		// }
-		//
-		// if (SetterBase.metaclass.isAssignableFrom(type)
-		// && !Style.metaclass.isAssignableFrom(metaclass)) {
-		// continue;
-		// }
-		//
-		// if (MenuItem.metaclass.isAssignableFrom(type)
-		// && !Menu.metaclass.isAssignableFrom(metaclass)) {
-		// continue;
-		// }
-		//
-		// if (UIElement.metaclass.isAssignableFrom(type)
-		// && !type.isAbstract()) {
-		// String tagName = type.getName();
-		//
-		// CMElementDeclarationImpl declaration = new CMElementDeclarationImpl(
-		// null, tagName);
-		// Action action = createAddElementAction((Element) node,
-		// declaration, -1);
-		// action.setImageDescriptor(elementImageEDescriptor);
-		// elementCollector.add(action);
-		// }
-		// }
-		// }
-		// } else if (name.endsWith(".Resources")) {
-		// Metaclass[] metaclasses = new Metaclass[] { Style.metaclass,
-		// ControlTemplate.metaclass, DataTemplate.metaclass,
-		// CollectionViewSource.metaclass };
-		// for (Metaclass type : metaclasses) {
-		// String typeName = type.getName();
-		//
-		// CMElementDeclarationImpl declaration = new CMElementDeclarationImpl(
-		// null, typeName);
-		// Action action = createAddElementAction((Element) node,
-		// declaration, -1);
-		// action.setImageDescriptor(elementImageEDescriptor);
-		// elementCollector.add(action);
-		// }
-		// } else if (name.endsWith(".Triggers")) {
-		// Metaclass[] metaclasses = new Metaclass[] { Style.metaclass,
-		// ControlTemplate.metaclass, DataTemplate.metaclass,
-		// CollectionViewSource.metaclass };
-		// for (Metaclass type : metaclasses) {
-		// if (!TriggerBase.metaclass.isAssignableFrom(type)) {
-		// continue;
-		// }
-		//
-		// String typeName = type.getName();
-		//
-		// CMElementDeclarationImpl declaration = new CMElementDeclarationImpl(
-		// null, typeName);
-		// Action action = createAddElementAction((Element) node,
-		// declaration, -1);
-		// action.setImageDescriptor(elementImageEDescriptor);
-		// elementCollector.add(action);
-		// }
-		// }
-		//
-		// addChildMenu.add(new Separator());
-		// XAMLMenuBuilder imageMenuBuilder = null;
-		// if (!(menuBuilder instanceof XAMLMenuBuilder)) {
-		// menuBuilder = new XAMLMenuBuilder();
-		// }
-		// imageMenuBuilder = (XAMLMenuBuilder) menuBuilder;
-		//
-		// if (!propertyElementCollector.isEmpty()) {
-		// imageMenuBuilder.setImageDescriptor(elementImageEDescriptor);
-		// imageMenuBuilder.populateMenu(addChildMenu,
-		// propertyElementCollector, true);
-		// addChildMenu.add(new Separator());
-		// }
-		// if (!elementCollector.isEmpty()) {
-		// imageMenuBuilder.setImageDescriptor(elementImageEDescriptor);
-		// imageMenuBuilder.populateMenu(addChildMenu, elementCollector, true);
-		// addChildMenu.add(new Separator());
-		// }
-		// if (!resourcesCollector.isEmpty()) {
-		// imageMenuBuilder.setImageDescriptor(resourceImageDescriptor);
-		// imageMenuBuilder.populateMenu(addChildMenu, resourcesCollector,
-		// true);
-		// addChildMenu.add(new Separator());
-		// }
-		// imageMenuBuilder.setImageDescriptor(null);
-		//
-		// for (IContributionItem item : items) {
-		// addChildMenu.add(item);
-		// }
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/treeviewer/XWTTableTreeViewer.java b/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/treeviewer/XWTTableTreeViewer.java
deleted file mode 100755
index e651fae..0000000
--- a/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/treeviewer/XWTTableTreeViewer.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.editor.treeviewer;
-
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.ui.internal.tabletree.XMLTableTreeViewer;
-
-public class XWTTableTreeViewer extends XMLTableTreeViewer {
-
-	public XWTTableTreeViewer(Composite parent) {
-		super(parent);
-	}
-
-	class NodeActionMenuListener implements IMenuListener {
-		public void menuAboutToShow(IMenuManager menuManager) {
-			// used to disable NodeSelection listening while running
-			// NodeAction
-			XWTNodeActionManager nodeActionManager = new XWTNodeActionManager(((IDOMDocument) getInput()).getModel(), XWTTableTreeViewer.this) {
-			};
-			nodeActionManager.fillContextMenu(menuManager, getSelection());
-		}
-	}
-
-	/**
-	 * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
-	 */
-	protected void createContextMenu() {
-		MenuManager contextMenu = new MenuManager("#PopUp"); //$NON-NLS-1$
-		contextMenu.add(new Separator("additions")); //$NON-NLS-1$
-		contextMenu.setRemoveAllWhenShown(true);
-		contextMenu.addMenuListener(new NodeActionMenuListener());
-		Menu menu = contextMenu.createContextMenu(getControl());
-		getControl().setMenu(menu);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.editor/templates/xamldefault-templates.properties b/org.eclipse.xwt.tools.ui.editor/templates/xamldefault-templates.properties
deleted file mode 100755
index 5918b81..0000000
--- a/org.eclipse.xwt.tools.ui.editor/templates/xamldefault-templates.properties
+++ /dev/null
@@ -1,45 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-Templates.static.resource.expression.name=StaticResource
-Templates.static.resource.expression.desc=StaticResource expression
-
-Templates.dynamic.resource.expression.name=DynamicResource
-Templates.dynamic.resource.expression.desc=DynamicResource expression
-
-Templates.static.resource.name=StaticResource
-Templates.static.resource.desc=StaticResource expression
-
-Templates.dynamic.resource.name=DynamicResource
-Templates.dynamic.resource.desc=DynamicResource expression
-
-Templates.static.binding.expression.name=BindingStatic
-Templates.static.binding.expression.desc=Static Resource Binding expression
-
-Templates.dynamic.binding.expression.name=BindingDynamic
-Templates.dynamic.binding.expression.desc=Dynamic Resource Binding expression
-
-Templates.static.binding.name=BindingStatic
-Templates.static.binding.desc=Binding Static Resource
-
-Templates.dynamic.binding.name=BindingDynamic
-Templates.dynamic.binding.desc=Binding Dynamic Resource
-
-Templates.style.name=Style
-Templates.style.desc=Style template
-
-Templates.xmlns.name=xmlns
-Templates.xmlns.desc=XWT default namespace
-
-Templates.xmlns.x.name=xmlns:x
-Templates.xmlns.x.desc=XWT mapping namespace
-
-Templates.xkey.name=xkey
-Templates.xkey.desc=x:Key=""
diff --git a/org.eclipse.xwt.tools.ui.editor/templates/xamldefault-templates.xml b/org.eclipse.xwt.tools.ui.editor/templates/xamldefault-templates.xml
deleted file mode 100755
index 81d8844..0000000
--- a/org.eclipse.xwt.tools.ui.editor/templates/xamldefault-templates.xml
+++ /dev/null
@@ -1,105 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-	/*******************************************************************************
-	* Copyright (c) 2004, 2009 IBM Corporation and others.
-	* All rights reserved. This program and the accompanying materials
-	* are made available under the terms of the Eclipse Public License v1.0
-	* which accompanies this distribution, and is available at
-	* http://www.eclipse.org/legal/epl-v10.html
-	* 
-	* Contributors:
-	*     IBM Corporation - initial API and implementation
-	*******************************************************************************/
--->
-<templates>
-
-	<template name="%Templates.static.resource.expression.name"
-		description="%Templates.static.resource.expression.desc"
-		id="org.eclipse.xwt.tools.ui.editors.templates.StaticResourceExpression" context="xml_attribute_value"
-		enabled="true">
-{StaticResource ${cursor}}
-	</template>
-
-	<template name="%Templates.dynamic.resource.expression.name"
-		description="%Templates.dynamic.resource.expression.desc"
-		id="org.eclipse.xwt.tools.ui.editors.templates.DynamicResourceExpression" context="xml_attribute_value"
-		enabled="true">
-{DynamicResource ${cursor}}
-	</template>
-
-	<template name="%Templates.static.resource.name"
-		description="%Templates.static.resource.desc"
-		id="org.eclipse.xwt.ui.editors.templates.StaticResource" context="xml_tag"
-		enabled="true">
-&lt;StaticResource ResourceKey="${cursor}"/&gt;
-	</template>
-
-	<template name="%Templates.dynamic.resource.name"
-		description="%Templates.dynamic.resource.desc"
-		id="org.eclipse.xwt.tools.ui.editors.templates.DynamicResource" context="xml_tag"
-		enabled="true">
-&lt;DynamicResource ResourceKey="${cursor}"/&gt;
-	</template>
-
-	<template name="%Templates.static.binding.expression.name"
-		description="%Templates.static.binding.expression.desc"
-		id="org.eclipse.xwt.tools.ui.editors.templates.static.BindingExpression" context="xml_attribute_value"
-		enabled="true">
-{Binding Source={StaticResource ${cursor}}, Path=Name}
-	</template>
-	
-	<template name="%Templates.dynamic.binding.expression.name"
-		description="%Templates.dynamic.binding.expression.desc"
-		id="org.eclipse.xwt.tools.ui.editors.templates.dynamic.BindingExpression" context="xml_attribute_value"
-		enabled="true">
-{Binding Source={DynamicResource ${cursor}}, Path=Name}
-	</template>
-
-	<template name="%Templates.static.binding.name"
-		description="%Templates.static.binding.desc"
-		id="org.eclipse.xwt.tools.ui.editors.templates.static.Binding" context="xml_tag"
-		enabled="true">
-&lt;Binding Source="{StaticResource ${cursor}}"
-				Path="Name"/&gt;
-  	</template>
-	
-	<template name="%Templates.dynamic.binding.name"
-		description="%Templates.dynamic.binding.desc"
-		id="org.eclipse.xwt.tools.ui.editors.templates.dynamic.Binding" context="xml_attribute_value"
-		enabled="true">
-&lt;Binding Source="{DynamicResource ${cursor}}"
-				Path="Name"/&gt;
-	</template>
-
-	<template name="%Templates.style.name"
-		description="%Templates.style.desc"
-		id="org.eclipse.xwt.tools.ui.style.Binding" context="xml_tag"
-		enabled="true">
-&lt;Style x:Key="key" TargetType="${cursor}"&gt;
-	&lt;Setter Property="propertyName" Value="16" /&gt;
-	&lt;Style.Triggers&gt;
-		&lt;Trigger Property="propertyName" Value="True"&gt;
-			&lt;Setter Property="propertyName" Value="Red" /&gt;
-		&lt;/Trigger&gt;
-	&lt;/Style.Triggers&gt;	
-&lt;/Style&gt;
-	</template>
-
-	<template name="%Templates.xmlns.name"
-		description="%Templates.xmlns.desc"
-		id="org.eclipse.xwt.tools.ui.style.Binding" context="xml_attribute"
-		enabled="true">xmlns="http://www.eclipse.org/swt/presentation"</template>
-
-	<template name="%Templates.xmlns.x.name"
-		description="%Templates.xmlns.x.desc"
-		id="org.eclipse.xwt.tools.ui.style.Binding" context="xml_attribute"
-		enabled="true">xmlns:x="http://www.eclipse.org/swt"</template>
-
-	<template name="%Templates.xkey.name"
-		description="%Templates.xkey.desc"
-		id="org.eclipse.xwt.tools.ui.style.Binding" context="xml_attribute"
-		enabled="true">
-		x:Key="${cursor}"
-	</template>
-
-</templates>
diff --git a/org.eclipse.xwt.tools.ui.imagecapture/OSGI-INF/l10n/bundle.properties b/org.eclipse.xwt.tools.ui.imagecapture/OSGI-INF/l10n/bundle.properties
deleted file mode 100755
index 21b77df..0000000
--- a/org.eclipse.xwt.tools.ui.imagecapture/OSGI-INF/l10n/bundle.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2009 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-#Properties file for org.eclipse.xwt.tools.ui.imagecapture
-Bundle-Vendor = Eclipse
-Bundle-Name = XWT VE Tools (Incubation)
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.imagecapture/build.properties b/org.eclipse.xwt.tools.ui.imagecapture/build.properties
deleted file mode 100755
index c768f4c..0000000
--- a/org.eclipse.xwt.tools.ui.imagecapture/build.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2009 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               os/,\
-               build.properties,\
-               OSGI-INF/l10n/bundle.properties
-src.includes = build.properties,\
-               .classpath,\
-               .project,\
-               .settings/,\
-               META-INF/,\
-               os/,\
-               src/
diff --git a/org.eclipse.xwt.tools.ui.imagecapture/pom.xml b/org.eclipse.xwt.tools.ui.imagecapture/pom.xml
deleted file mode 100755
index f089684..0000000
--- a/org.eclipse.xwt.tools.ui.imagecapture/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt.tools.ui.imagecapture</artifactId>
-	<version>0.10.0-SNAPSHOT</version>
-	<packaging>eclipse-plugin</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java b/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
deleted file mode 100755
index da73fe5..0000000
--- a/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $RCSfile: ImageCapture.java,v $
- *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
- */
-package org.eclipse.ve.internal.swt.targetvm.macosx;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Device;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Image Capture for Mac OS X platforms.
- * 
- * @since 1.2.0
- */
-
-public class ImageCapture extends org.eclipse.xwt.tools.ui.imagecapture.swt.ImageCapture {
-
-	private static Field shellHandleField = null;
-	private static Method HIViewGetRootMethod = null;
-	private static Method carbon_newMethod = null;
-
-	static {
-
-		System.loadLibrary("swt-carbon-print"); //$NON-NLS-1$
-
-		try {
-			shellHandleField = Shell.class.getDeclaredField("shellHandle"); //$NON-NLS-1$
-			shellHandleField.setAccessible(true);
-
-			Class<?> osClass = Class.forName("org.eclipse.swt.internal.carbon.OS"); //$NON-NLS-1$
-			HIViewGetRootMethod = osClass.getMethod("HIViewGetRoot", new Class[] { int.class }); //$NON-NLS-1$
-
-			carbon_newMethod = Image.class.getMethod("carbon_new", new Class[] { Device.class, int.class, int.class, int.class }); //$NON-NLS-1$
-
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	private native int captureImage(int controlHandle, int shellHandle);
-
-	protected Image getImage(Control control, int maxWidth, int maxHeight, boolean includeChildren) {
-
-		Rectangle rect = control.getBounds();
-		if (rect.width <= 0 || rect.height <= 0)
-			return null;
-
-		int width = Math.min(rect.width, maxWidth);
-		int height = Math.min(rect.height, maxHeight);
-
-		Image image = null;
-		if (!(control instanceof Shell)) {
-			Rectangle bounds = control.getBounds();
-			image = new Image(control.getDisplay(), bounds.width, bounds.height);
-			GC gc = new GC(image);
-			control.print(gc);
-			gc.dispose();
-			return image;
-		}
-
-		int controlHandle = -1;
-		int shellHandle = -1;
-
-		try {
-			if (control instanceof Shell) {
-				shellHandle = shellHandleField.getInt(control);
-				if (shellHandle != -1) {
-					Integer result = (Integer) HIViewGetRootMethod.invoke(null, new Object[] { new Integer(shellHandle) });
-					if (result != null) {
-						controlHandle = result.intValue();
-					}
-				}
-			} else {
-				controlHandle = getIntHandle(control);
-				shellHandle = shellHandleField.getInt(control.getShell());
-			}
-
-			int imageHandle = captureImage(controlHandle, shellHandle);
-
-			if (imageHandle != 0) {
-				// Create a temporary image using the captured image's handle
-				Image tempImage = (Image) carbon_newMethod.invoke(null, new Object[] { control.getDisplay(), new Integer(SWT.BITMAP), new Integer(imageHandle), new Integer(0) });
-				// image = Image.carbon_new(control.getDisplay(), SWT.BITMAP, imageHandle, 0);
-
-				// Create the result image
-				image = new Image(control.getDisplay(), width, height);
-
-				// Manually copy because the image's data handle isn't available
-				GC gc = new GC(tempImage);
-				gc.copyArea(image, 0, 0);
-				gc.dispose();
-
-				// Dispose of the temporary image allocated in the native call
-				tempImage.dispose();
-			}
-
-		} catch (IllegalArgumentException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (IllegalAccessException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (InvocationTargetException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-
-		return image;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/cocoa/ImageCapture.java b/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/cocoa/ImageCapture.java
deleted file mode 100755
index fd8957a..0000000
--- a/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/cocoa/ImageCapture.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation with help of Kevin Barnes 
- *               <krbarnes@ca.ibm.com>
- *******************************************************************************/
-package org.eclipse.ve.internal.swt.targetvm.macosx.cocoa;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * 
- * @author yyang <yves.yang@soyatec.com>
- * @author Kevin Barnes <krbarnes@ca.ibm.com>
- */
-public class ImageCapture extends org.eclipse.xwt.tools.ui.imagecapture.swt.ImageCapture {
-	static Field GC_handle;
-	static Field Control_view;
-	static Method NSView_superview;
-	static Method NSObject_isEqual;
-	static Method NSView_bounds;
-	static Method NSGraphicsContext_saveGraphicsState;
-	static Method NSGraphicsContext_restoreGraphicsState;
-	static Method NSGraphicsContext_setCurrentContext;
-
-	static Method NSAffineTransform_transform;
-
-	static Method NSAffineTransform_translateXBy;
-	static Method NSAffineTransform_scaleXBy;
-	static Method NSAffineTransform_concat;
-
-	static Method NSView_displayRectIgnoringOpacity;
-
-	static {
-		try {
-			Control_view = Control.class.getDeclaredField("view"); //$NON-NLS-1$
-			Control_view.setAccessible(true);
-
-			GC_handle = GC.class.getDeclaredField("handle"); //$NON-NLS-1$
-			GC_handle.setAccessible(true);
-
-			Class<?> NSViewClass = Class.forName("org.eclipse.swt.internal.cocoa.NSView"); //$NON-NLS-1$
-			NSView_superview = NSViewClass.getMethod("superview");
-
-			Class<?> idClass = Class.forName("org.eclipse.swt.internal.cocoa.id"); //$NON-NLS-1$
-			Class<?> NSObjectClass = Class.forName("org.eclipse.swt.internal.cocoa.NSObject"); //$NON-NLS-1$
-			NSObject_isEqual = NSObjectClass.getMethod("isEqual", idClass);
-
-			NSView_bounds = NSViewClass.getMethod("bounds");
-
-			Class<?> NSGraphicsContextClass = Class.forName("org.eclipse.swt.internal.cocoa.NSGraphicsContext"); //$NON-NLS-1$
-			NSGraphicsContext_saveGraphicsState = NSGraphicsContextClass.getMethod("saveGraphicsState");
-			NSGraphicsContext_setCurrentContext = NSGraphicsContextClass.getMethod("setCurrentContext", NSGraphicsContextClass);
-			NSGraphicsContext_restoreGraphicsState = NSGraphicsContextClass.getMethod("restoreGraphicsState");
-
-			Class<?> NSAffineTransformClass = Class.forName("org.eclipse.swt.internal.cocoa.NSAffineTransform"); //$NON-NLS-1$
-			NSAffineTransform_transform = NSAffineTransformClass.getMethod("transform");
-			NSAffineTransform_translateXBy = NSAffineTransformClass.getMethod("translateXBy", double.class, double.class);
-			if (NSAffineTransform_translateXBy == null) {
-				NSAffineTransform_translateXBy = NSAffineTransformClass.getMethod("translateXBy", float.class, float.class);
-			}
-			NSAffineTransform_scaleXBy = NSAffineTransformClass.getMethod("scaleXBy", double.class, double.class);
-			if (NSAffineTransform_scaleXBy == null) {
-				NSAffineTransform_scaleXBy = NSAffineTransformClass.getMethod("scaleXBy", float.class, float.class);
-			}
-			NSAffineTransform_concat = NSAffineTransformClass.getMethod("concat");
-
-			Class<?> NSRectClass = Class.forName("org.eclipse.swt.internal.cocoa.NSRect"); //$NON-NLS-1$
-
-			NSView_displayRectIgnoringOpacity = NSViewClass.getMethod("displayRectIgnoringOpacity", NSRectClass, NSGraphicsContextClass);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	@Override
-	protected Image getImage(Control control, int maxWidth, int maxHeight, boolean includeChildren) {
-		if (!(control instanceof Shell)) {
-			Rectangle bounds = control.getBounds();
-			Image image = new Image(control.getDisplay(), bounds.width, bounds.height);
-			GC gc = new GC(image);
-			control.print(gc);
-			gc.dispose();
-			return image;
-		}
-
-		Rectangle rectangle = new Rectangle(0, 0, maxWidth, maxHeight);
-		Image image = new Image(control.getDisplay(), rectangle);
-		GC gc = new GC(image);
-
-		try {
-			Object view = Control_view.get(control);
-			if (control instanceof Shell) {
-				Object superview = NSView_superview.invoke(view);
-				while (superview != null) {
-					view = superview;
-					superview = NSView_superview.invoke(view);
-				}
-			} else {
-				Composite parent = control.getParent();
-				Object parentView = Control_view.get(parent);
-
-				while (true) {
-					Object superview = NSView_superview.invoke(view);
-					Boolean equal = (Boolean) NSObject_isEqual.invoke(superview, parentView);
-					if (equal) {
-						break;
-					}
-					view = superview;
-				}
-			}
-			Object gcHandle = GC_handle.get(gc);
-			// gc.handle.saveGraphicsState();
-			NSGraphicsContext_saveGraphicsState.invoke(gcHandle);
-			// NSGraphicsContext.setCurrentContext(gc.handle);
-			NSGraphicsContext_setCurrentContext.invoke(null, gcHandle);
-			// NSAffineTransform transform = NSAffineTransform.transform ();
-			Object transform = NSAffineTransform_transform.invoke(null);
-			// transform.translateXBy (0, rectangle.height);
-			NSAffineTransform_translateXBy.invoke(transform, 0, rectangle.height);
-			// transform.scaleXBy (1, -1);
-			NSAffineTransform_scaleXBy.invoke(transform, 1, -1);
-			// transform.concat ();
-			NSAffineTransform_concat.invoke(transform);
-			// view.displayRectIgnoringOpacity(view.bounds(), gc.handle);
-			Object bounds = NSView_bounds.invoke(view);
-			NSView_displayRectIgnoringOpacity.invoke(view, bounds, gcHandle);
-
-			// gc.handle.restoreGraphicsState();
-			NSGraphicsContext_restoreGraphicsState.invoke(gcHandle);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-
-		gc.dispose();
-		return image;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/DisposeUtil.java b/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/DisposeUtil.java
deleted file mode 100755
index 0e291af..0000000
--- a/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/DisposeUtil.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ve.internal.swt.targetvm.unix;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.swt.graphics.GC;
-
-public class DisposeUtil {
-
-	/**
-	 * in MAC Cocoa, we should not dispose the GC for an image. The image will dispose
-	 * the gc automatically.
-	 * 
-	 * @param gc
-	 */
-	public static void dispose(GC gc) {
-		if (!Platform.getWS().equals(Platform.WS_COCOA)) {
-			gc.dispose();
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java b/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
deleted file mode 100755
index 1211cb1..0000000
--- a/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
+++ /dev/null
@@ -1,419 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $RCSfile: ImageCapture.java,v $
- *  $Revision: 1.3 $  $Date: 2009/12/22 15:40:54 $ 
- */
-package org.eclipse.ve.internal.swt.targetvm.unix;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.PaletteData;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Decorations;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * GTK version of Image Capture
- * 
- * @since 1.0.0
- */
-public class ImageCapture extends org.eclipse.xwt.tools.ui.imagecapture.swt.ImageCapture {
-	static Field Menu_handler;
-	static Field Control_handler;
-
-	static {
-		try {
-			Menu_handler = Menu.class.getField("handle");
-			Control_handler = Control.class.getField("handle");
-
-			System.loadLibrary("swt-gtk-print"); //$NON-NLS-1$
-		} catch (Exception error) {
-			error.printStackTrace();
-		} catch (UnsatisfiedLinkError error) {
-			error.printStackTrace();
-		}
-	}
-
-	static final int OBSCURED = 1 << 6; // Must be the same value as Widget.OBSCURED
-	static final String FIELD_STATE_NAME = "state"; //$NON-NLS-1$
-
-	private native int[] getPixels(int handle, int includeChildren, int maxWidth, int maxHeight, int arg4);
-
-	protected Point getTopLeftOfClientarea(Decorations decorations) {
-		Point trim = decorations.toControl(decorations.getLocation());
-		trim.x = -trim.x;
-		trim.y = -trim.y;
-		if (decorations.getMenuBar() != null) {
-			Menu menu = decorations.getMenuBar();
-			try {
-				Class<?> osClass = Class.forName("org.eclipse.swt.internal.gtk.OS"); //$NON-NLS-1$
-				Method method = osClass.getMethod("GTK_WIDGET_HEIGHT", new Class[] { int.class }); //$NON-NLS-1$
-				Object ret = method.invoke(menu, new Object[] { Menu_handler.getInt(menu) });
-				if (ret != null) {
-					int menuBarHeight = ((Integer) ret).intValue();
-					trim.y -= menuBarHeight;
-				}
-			} catch (Throwable t) {
-			}
-		}
-		return new Point(trim.x, trim.y);
-	}
-
-	protected Image getImageOfControl(Control control, int includeChildren, int maxWidth, int maxHeight) {
-		Image image = null;
-		if (control instanceof Shell) {
-			Shell shell = (Shell) control;
-			int handle = readIntFieldValue(shell.getClass(), shell, "shellHandle"); //$NON-NLS-1$
-			if (handle > 0) {
-				image = getImageOfHandle(handle, shell.getDisplay(), includeChildren, maxWidth, maxHeight);
-			}
-		}
-		try {
-			if (image == null) {
-				image = getImageOfHandle(Control_handler.getInt(control), control.getDisplay(), includeChildren, maxWidth, maxHeight);
-			}
-			if (control instanceof Decorations) {
-				Decorations decorations = (Decorations) control;
-				Rectangle shellBounds = decorations.getBounds();
-				Point topLeft = getTopLeftOfClientarea(decorations);
-				Image realShellImage = new Image(decorations.getDisplay(), shellBounds.width, shellBounds.height);
-				Image origImage = image;
-				try {
-					simulateDecoration(decorations, realShellImage, decorations.getBounds(), decorations.getClientArea(), topLeft);
-					GC gc = new GC(realShellImage);
-					gc.drawImage(image, topLeft.x, topLeft.y);
-					DisposeUtil.dispose(gc);
-					image = realShellImage;
-				} finally {
-					origImage.dispose();
-				}
-			}
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return image;
-	}
-
-	protected Image getImageOfHandle(int handle, Display display, int includeChildren, int maxWidth, int maxHeight) {
-		int[] tcData = getPixels(handle, includeChildren, maxWidth, maxHeight, 0);
-		int depth = display.getDepth();
-		if (depth == 15)
-			depth = 16; // SWT cant handle depth of 15. Similar to 16
-		if (depth > 24)
-			depth = 24;
-		if (tcData != null) {
-			int tcWidth = tcData[0];
-			int tcHeight = tcData[1];
-			int type = tcData[2];
-			if (type == 1) {
-				// Direct RGB values
-				int red_mask = tcData[3] == -1 ? 0x00FF : tcData[3];
-				int green_mask = tcData[4] == -1 ? 0x00FF00 : tcData[4];
-				int blue_mask = tcData[5] == -1 ? 0x00FF0000 : tcData[5];
-				// System.err.println("Masks: "+Integer.toHexString(red_mask)+","+Integer.toHexString(green_mask)+","+Integer.toHexString(blue_mask));
-				int[] tcPixels = new int[tcData.length - 6];
-				System.arraycopy(tcData, 6, tcPixels, 0, tcPixels.length);
-				ImageData tcImageData = new ImageData(tcWidth, tcHeight, depth, new PaletteData(red_mask, green_mask, blue_mask));
-				tcImageData.setPixels(0, 0, tcPixels.length, tcPixels, 0);
-				Image tcImage = new Image(display, tcImageData);
-				return tcImage;
-			} else if (type == 2) {
-				// Indexed values
-				int numColors = tcData[3];
-				RGB[] rgb = new RGB[numColors];
-				// System.err.println("### Num colors = "+numColors);
-				for (int colCount = 0; colCount < numColors; colCount++) {
-					int r = tcData[4 + (colCount * 3) + 0];
-					int g = tcData[4 + (colCount * 3) + 1];
-					int b = tcData[4 + (colCount * 3) + 2];
-					rgb[colCount] = new RGB(r, g, b);
-				}
-				PaletteData pd = new PaletteData(rgb);
-				ImageData id = new ImageData(tcWidth, tcHeight, depth, pd);
-				int offset = (4 + (rgb.length * 3));
-				int pixels[] = new int[tcData.length - offset];
-				System.arraycopy(tcData, offset, pixels, 0, pixels.length);
-				id.setPixels(0, 0, pixels.length, pixels, 0);
-				Image tcImage = new Image(display, id);
-				// System.err.println("### returning image");
-				return tcImage;
-			} else {
-				System.err.println("JNI Returned unknown image type"); //$NON-NLS-1$
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * @param decoration
-	 * @param realShellImage
-	 * @param bounds
-	 * @param clientArea
-	 * @param topLeft
-	 * 
-	 * @since 1.0.0
-	 */
-	private void simulateDecoration(Decorations decoration, Image realShellImage, Rectangle bounds, Rectangle clientArea, Point topLeft) {
-		GC gc = new GC(realShellImage);
-		try {
-			gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-			gc.fillRectangle(0, 0, bounds.width, bounds.height);
-			gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
-			gc.drawRectangle(topLeft.x - 1, topLeft.y - 1, clientArea.width + 2, clientArea.height + 2);
-
-			// little squares at bottom corners
-			gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_BACKGROUND));
-			gc.fillRectangle(0, bounds.height - topLeft.y, topLeft.y, bounds.height);
-			gc.fillRectangle(bounds.width - topLeft.y, bounds.height - topLeft.y, bounds.width, bounds.height);
-
-			// title bar
-			if ((decoration.getStyle() & (SWT.TITLE | SWT.CLOSE | SWT.MAX | SWT.MIN)) != 0 && topLeft.y > 2) {
-				int barHeight = topLeft.y - 2;
-				// There will be a title bar - draw the text
-				gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_BACKGROUND));
-				gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_FOREGROUND));
-				gc.fillGradientRectangle(0, 0, bounds.width, barHeight, false);
-				gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_FOREGROUND));
-				gc.drawText(decoration.getText(), topLeft.y, 2, true);
-				if (decoration.getImage() != null && !decoration.getImage().isDisposed()) {
-					Rectangle imageBounds = decoration.getImage().getBounds();
-					if (imageBounds.height <= barHeight) {
-						gc.drawImage(decoration.getImage(), 0, 0);
-					} else {
-						ImageData imageData = decoration.getImage().getImageData();
-						double factor = (double) barHeight / (double) imageBounds.height;
-						int newWidth = (int) (imageBounds.width * factor);
-						imageData = imageData.scaledTo(newWidth, barHeight);
-						Image newImage = new Image(decoration.getDisplay(), imageData);
-						gc.drawImage(newImage, 0, 0);
-						newImage.dispose();
-					}
-				}
-
-				int rightx = bounds.width - topLeft.y;
-
-				// title bar buttons
-				if ((decoration.getStyle() & SWT.CLOSE) != 0) {
-					gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-					gc.fillRectangle(rightx, 0, topLeft.y, topLeft.y);
-					gc.setLineWidth(1);
-					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
-					gc.drawRectangle(rightx, 0, topLeft.y, topLeft.y);
-					int lineWidth = topLeft.y / 6;
-					if (lineWidth < 1)
-						lineWidth = 1;
-					gc.setLineWidth(lineWidth);
-					lineWidth = lineWidth * 2;
-					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BORDER));
-					gc.drawLine(rightx + lineWidth, lineWidth, rightx + topLeft.y - lineWidth, topLeft.y - lineWidth);
-					gc.drawLine(rightx + lineWidth, topLeft.y - lineWidth, rightx + topLeft.y - lineWidth, lineWidth);
-					rightx -= topLeft.y;
-				}
-				if ((decoration.getStyle() & SWT.MAX) != 0) {
-					gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-					gc.fillRectangle(rightx, 0, topLeft.y, topLeft.y);
-					gc.setLineWidth(1);
-					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
-					gc.drawRectangle(rightx, 0, topLeft.y, topLeft.y);
-					int lineWidth = topLeft.y / 6;
-					if (lineWidth < 1)
-						lineWidth = 1;
-					gc.setLineWidth(lineWidth);
-					lineWidth = lineWidth * 2;
-					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BORDER));
-					gc.drawRectangle(rightx + lineWidth, lineWidth, topLeft.y - (2 * lineWidth), topLeft.y - (2 * lineWidth));
-					rightx -= topLeft.y;
-				}
-				if ((decoration.getStyle() & SWT.MIN) != 0) {
-					gc.setLineWidth(1);
-					gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-					gc.fillRectangle(rightx, 0, topLeft.y - 1, topLeft.y - 1);
-					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
-					gc.drawRectangle(rightx, 0, topLeft.y - 1, topLeft.y - 1);
-					int lineWidth = topLeft.y / 6;
-					if (lineWidth < 1)
-						lineWidth = 1;
-					gc.setLineWidth(lineWidth);
-					lineWidth = lineWidth * 2;
-					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BORDER));
-					gc.drawLine(rightx + lineWidth, topLeft.y - lineWidth, rightx + topLeft.y - lineWidth, topLeft.y - lineWidth);
-					rightx -= topLeft.y;
-				}
-
-				gc.setLineWidth(1);
-				gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
-				gc.drawLine(0, topLeft.y - 1, bounds.width, topLeft.y - 1);
-			}
-		} finally {
-			gc.dispose();
-		}
-	}
-
-	protected Map<Class<?>, Map<String, Object>> fieldAccessors = new HashMap<Class<?>, Map<String, Object>>(); // Map of Class->fieldName->field reflect
-
-	/**
-	 * @param object
-	 * @param fieldName
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	private int readIntFieldValue(Class<?> klass, Object object, String fieldName) {
-		try {
-			Field field = getField(klass, fieldName);
-			return field != null ? field.getInt(object) : 0;
-		} catch (IllegalArgumentException e) {
-		} catch (IllegalAccessException e) {
-		}
-		return -1;
-	}
-
-	private static final Object NO_FIELD = new Object();
-
-	private Field getField(Class<?> klass, String fieldName) {
-		Map<String, Object> nameToField = fieldAccessors.get(klass);
-		if (nameToField == null) {
-			fieldAccessors.put(klass, nameToField = new HashMap<String, Object>());
-		}
-		Object field = nameToField.get(fieldName);
-		if (field == null) {
-			try {
-				field = klass.getDeclaredField(fieldName);
-				((Field) field).setAccessible(true);
-			} catch (SecurityException e) {
-				field = NO_FIELD;
-				e.printStackTrace();
-			} catch (NoSuchFieldException e) {
-				field = NO_FIELD;
-				e.printStackTrace();
-			}
-			nameToField.put(fieldName, field);
-		}
-		return (Field) (field != NO_FIELD ? field : null);
-	}
-
-	/**
-	 * @param object
-	 * @param fieldName
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	private void writeIntFieldValue(Class<?> klass, Object object, String fieldName, int newInt) {
-		try {
-			Field field = getField(klass, fieldName);
-			field.setInt(object, newInt);
-		} catch (IllegalArgumentException e) {
-		} catch (IllegalAccessException e) {
-		}
-	}
-
-	protected Image getImage(Control control, int maxWidth, int maxHeight, boolean includeChildren) {
-		int ic = includeChildren ? 1 : 0;
-		Map<Control, Integer> map = new HashMap<Control, Integer>();
-		changeObscured(control, map, false);
-		Image image = null;
-		if (!(control instanceof Shell)) {
-			Rectangle bounds = control.getBounds();
-			image = new Image(control.getDisplay(), bounds.width, bounds.height);
-			GC gc = new GC(image);
-			control.print(gc);
-			gc.dispose();
-			return image;
-		}
-
-		try {
-			image = getImageOfControl(control, ic, maxWidth, maxHeight);
-		} finally {
-			changeObscured(control, map, true);
-		}
-		return image;
-	}
-
-	/**
-	 * @param control
-	 * @param map
-	 * 
-	 * @since 1.0.0
-	 */
-	private void changeObscured(Control control, Map<Control, Integer> map, boolean on) {
-		if (on) {
-			// restoring the obscured flags
-			if (map.containsKey(control)) {
-				// control had obscured flag changed - reset it
-				Integer originalValue = (Integer) map.get(control);
-				writeIntFieldValue(Widget.class, control, FIELD_STATE_NAME, originalValue.intValue());
-			}
-		} else {
-			// disabling the obscure flags
-			int stateValue = readIntFieldValue(Widget.class, control, FIELD_STATE_NAME);
-			if ((stateValue & OBSCURED) != 0) {
-				// obscured - disable flag and remember
-				map.put(control, new Integer(stateValue));
-				stateValue &= ~OBSCURED;
-				writeIntFieldValue(Widget.class, control, FIELD_STATE_NAME, stateValue);
-			}
-		}
-		if (control instanceof CCombo) {
-			// CCombo has a text field whose OBSCURED field needs to be changed
-			CCombo ccombo = (CCombo) control;
-			Object val = readObjectFieldValue(CCombo.class, ccombo, "text"); //$NON-NLS-1$
-			if (val instanceof Text) {
-				Text text = (Text) val;
-				changeObscured(text, map, on);
-			}
-		} else if (control instanceof Composite) {
-			Composite composite = (Composite) control;
-			Control[] children = composite.getChildren();
-			for (int cc = 0; children != null && cc < children.length; cc++) {
-				changeObscured(children[cc], map, on);
-			}
-		}
-	}
-
-	/**
-	 * @param object
-	 * @param fieldName
-	 * @return
-	 * 
-	 * @since 1.1.0.1
-	 */
-	private Object readObjectFieldValue(Class<?> klass, Object object, String fieldName) {
-		try {
-			Field field = klass.getDeclaredField(fieldName);
-			field.setAccessible(true);
-			return field.get(object);
-		} catch (SecurityException e) {
-		} catch (NoSuchFieldException e) {
-		} catch (IllegalArgumentException e) {
-		} catch (IllegalAccessException e) {
-		}
-		return null;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java b/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
deleted file mode 100755
index 1a144a5..0000000
--- a/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
+++ /dev/null
@@ -1,424 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $RCSfile: ImageCapture.java,v $
- *  $Revision: 1.3 $  $Date: 2009/12/22 15:40:54 $ 
- */
-package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.PaletteData;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Decorations;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ve.internal.swt.targetvm.unix.DisposeUtil;
-
-/**
- * GTK version of Image Capture
- * 
- * @since 1.0.0
- */
-public class ImageCapture extends org.eclipse.xwt.tools.ui.imagecapture.swt.ImageCapture {
-	static Field Menu_handler;
-
-	static {
-		try {
-			Menu_handler = Menu.class.getField("handle");
-			System.loadLibrary("swt-gtk-print"); //$NON-NLS-1$
-		} catch (Exception error) {
-			error.printStackTrace();
-		} catch (UnsatisfiedLinkError error) {
-			error.printStackTrace();
-		}
-	}
-	static final int OBSCURED = 1 << 6; // Must be the same value as Widget.OBSCURED
-	static final String FIELD_STATE_NAME = "state"; //$NON-NLS-1$
-
-	private native int[] getPixels(long handle, int includeChildren, int maxWidth, int maxHeight, int arg4);
-
-	protected Point getTopLeftOfClientarea(Decorations decorations) {
-		Point trim = decorations.toControl(decorations.getLocation());
-		trim.x = -trim.x;
-		trim.y = -trim.y;
-		if (decorations.getMenuBar() != null) {
-			Menu menu = decorations.getMenuBar();
-			try {
-				Class<?> osClass = Class.forName("org.eclipse.swt.internal.gtk.OS"); //$NON-NLS-1$
-				Method method = osClass.getMethod("GTK_WIDGET_HEIGHT", new Class[] { long.class }); //$NON-NLS-1$
-				Object ret = method.invoke(menu, new Object[] { Menu_handler.getLong(menu) });
-				if (ret != null) {
-					int menuBarHeight = ((Integer) ret).intValue();
-					trim.y -= menuBarHeight;
-				}
-			} catch (Throwable t) {
-			}
-		}
-		return new Point(trim.x, trim.y);
-	}
-
-	protected Image getImageOfControl(Control control, int includeChildren, int maxWidth, int maxHeight) {
-		Image image = null;
-		if (!(control instanceof Shell)) {
-			Rectangle bounds = control.getBounds();
-			image = new Image(control.getDisplay(), bounds.width, bounds.height);
-			GC gc = new GC(image);
-			control.print(gc);
-			DisposeUtil.dispose(gc);
-			return image;
-		}
-
-		if (control instanceof Shell) {
-			Shell shell = (Shell) control;
-			long handle = readLongFieldValue(shell.getClass(), shell, "shellHandle"); //$NON-NLS-1$
-			if (handle > 0) {
-				image = getImageOfHandle(handle, shell.getDisplay(), includeChildren, maxWidth, maxHeight);
-			}
-		}
-		if (image == null) {
-			// Use reflection to get the control handle to avoid linking problems with being
-			// compiled on a 32 bit machine against 32 bit swt.
-			long handle = readLongFieldValue(Widget.class, control, "handle"); //$NON-NLS-1$
-			image = getImageOfHandle(handle, control.getDisplay(), includeChildren, maxWidth, maxHeight);
-		}
-		if (control instanceof Decorations) {
-			Decorations decorations = (Decorations) control;
-			Rectangle shellBounds = decorations.getBounds();
-			Point topLeft = getTopLeftOfClientarea(decorations);
-			Image realShellImage = new Image(decorations.getDisplay(), shellBounds.width, shellBounds.height);
-			Image origImage = image;
-			try {
-				simulateDecoration(decorations, realShellImage, decorations.getBounds(), decorations.getClientArea(), topLeft);
-				GC gc = new GC(realShellImage);
-				gc.drawImage(image, topLeft.x, topLeft.y);
-				gc.dispose();
-				image = realShellImage;
-			} finally {
-				origImage.dispose();
-			}
-		}
-		return image;
-	}
-
-	protected Image getImageOfHandle(long handle, Display display, int includeChildren, int maxWidth, int maxHeight) {
-		int[] tcData = getPixels(handle, includeChildren, maxWidth, maxHeight, 0);
-		int depth = display.getDepth();
-		if (depth == 15)
-			depth = 16; // SWT cant handle depth of 15. Similar to 16
-		if (depth > 24)
-			depth = 24;
-		if (tcData != null) {
-			int tcWidth = tcData[0];
-			int tcHeight = tcData[1];
-			int type = tcData[2];
-			if (type == 1) {
-				// Direct RGB values
-				int red_mask = tcData[3] == -1 ? 0x00FF : tcData[3];
-				int green_mask = tcData[4] == -1 ? 0x00FF00 : tcData[4];
-				int blue_mask = tcData[5] == -1 ? 0x00FF0000 : tcData[5];
-				// System.err.println("Masks: "+Integer.toHexString(red_mask)+","+Integer.toHexString(green_mask)+","+Integer.toHexString(blue_mask));
-				int[] tcPixels = new int[tcData.length - 6];
-				System.arraycopy(tcData, 6, tcPixels, 0, tcPixels.length);
-				ImageData tcImageData = new ImageData(tcWidth, tcHeight, depth, new PaletteData(red_mask, green_mask, blue_mask));
-				tcImageData.setPixels(0, 0, tcPixels.length, tcPixels, 0);
-				Image tcImage = new Image(display, tcImageData);
-				return tcImage;
-			} else if (type == 2) {
-				// Indexed values
-				int numColors = tcData[3];
-				RGB[] rgb = new RGB[numColors];
-				// System.err.println("### Num colors = "+numColors);
-				for (int colCount = 0; colCount < numColors; colCount++) {
-					int r = tcData[4 + (colCount * 3) + 0];
-					int g = tcData[4 + (colCount * 3) + 1];
-					int b = tcData[4 + (colCount * 3) + 2];
-					rgb[colCount] = new RGB(r, g, b);
-				}
-				PaletteData pd = new PaletteData(rgb);
-				ImageData id = new ImageData(tcWidth, tcHeight, depth, pd);
-				int offset = (4 + (rgb.length * 3));
-				int pixels[] = new int[tcData.length - offset];
-				System.arraycopy(tcData, offset, pixels, 0, pixels.length);
-				id.setPixels(0, 0, pixels.length, pixels, 0);
-				Image tcImage = new Image(display, id);
-				// System.err.println("### returning image");
-				return tcImage;
-			} else {
-				System.err.println("JNI Returned unknown image type"); //$NON-NLS-1$
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * @param decoration
-	 * @param realShellImage
-	 * @param bounds
-	 * @param clientArea
-	 * @param topLeft
-	 * 
-	 * @since 1.0.0
-	 */
-	private void simulateDecoration(Decorations decoration, Image realShellImage, Rectangle bounds, Rectangle clientArea, Point topLeft) {
-		GC gc = new GC(realShellImage);
-		try {
-			gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-			gc.fillRectangle(0, 0, bounds.width, bounds.height);
-			gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
-			gc.drawRectangle(topLeft.x - 1, topLeft.y - 1, clientArea.width + 2, clientArea.height + 2);
-
-			// little squares at bottom corners
-			gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_BACKGROUND));
-			gc.fillRectangle(0, bounds.height - topLeft.y, topLeft.y, bounds.height);
-			gc.fillRectangle(bounds.width - topLeft.y, bounds.height - topLeft.y, bounds.width, bounds.height);
-
-			// title bar
-			if ((decoration.getStyle() & (SWT.TITLE | SWT.CLOSE | SWT.MAX | SWT.MIN)) != 0 && topLeft.y > 2) {
-				int barHeight = topLeft.y - 2;
-				// There will be a title bar - draw the text
-				gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_BACKGROUND));
-				gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_FOREGROUND));
-				gc.fillGradientRectangle(0, 0, bounds.width, barHeight, false);
-				gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_FOREGROUND));
-				gc.drawText(decoration.getText(), topLeft.y, 2, true);
-				if (decoration.getImage() != null && !decoration.getImage().isDisposed()) {
-					Rectangle imageBounds = decoration.getImage().getBounds();
-					if (imageBounds.height <= barHeight) {
-						gc.drawImage(decoration.getImage(), 0, 0);
-					} else {
-						ImageData imageData = decoration.getImage().getImageData();
-						double factor = (double) barHeight / (double) imageBounds.height;
-						int newWidth = (int) (imageBounds.width * factor);
-						imageData = imageData.scaledTo(newWidth, barHeight);
-						Image newImage = new Image(decoration.getDisplay(), imageData);
-						gc.drawImage(newImage, 0, 0);
-						newImage.dispose();
-					}
-				}
-
-				int rightx = bounds.width - topLeft.y;
-
-				// title bar buttons
-				if ((decoration.getStyle() & SWT.CLOSE) != 0) {
-					gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-					gc.fillRectangle(rightx, 0, topLeft.y, topLeft.y);
-					gc.setLineWidth(1);
-					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
-					gc.drawRectangle(rightx, 0, topLeft.y, topLeft.y);
-					int lineWidth = topLeft.y / 6;
-					if (lineWidth < 1)
-						lineWidth = 1;
-					gc.setLineWidth(lineWidth);
-					lineWidth = lineWidth * 2;
-					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BORDER));
-					gc.drawLine(rightx + lineWidth, lineWidth, rightx + topLeft.y - lineWidth, topLeft.y - lineWidth);
-					gc.drawLine(rightx + lineWidth, topLeft.y - lineWidth, rightx + topLeft.y - lineWidth, lineWidth);
-					rightx -= topLeft.y;
-				}
-				if ((decoration.getStyle() & SWT.MAX) != 0) {
-					gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-					gc.fillRectangle(rightx, 0, topLeft.y, topLeft.y);
-					gc.setLineWidth(1);
-					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
-					gc.drawRectangle(rightx, 0, topLeft.y, topLeft.y);
-					int lineWidth = topLeft.y / 6;
-					if (lineWidth < 1)
-						lineWidth = 1;
-					gc.setLineWidth(lineWidth);
-					lineWidth = lineWidth * 2;
-					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BORDER));
-					gc.drawRectangle(rightx + lineWidth, lineWidth, topLeft.y - (2 * lineWidth), topLeft.y - (2 * lineWidth));
-					rightx -= topLeft.y;
-				}
-				if ((decoration.getStyle() & SWT.MIN) != 0) {
-					gc.setLineWidth(1);
-					gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-					gc.fillRectangle(rightx, 0, topLeft.y - 1, topLeft.y - 1);
-					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
-					gc.drawRectangle(rightx, 0, topLeft.y - 1, topLeft.y - 1);
-					int lineWidth = topLeft.y / 6;
-					if (lineWidth < 1)
-						lineWidth = 1;
-					gc.setLineWidth(lineWidth);
-					lineWidth = lineWidth * 2;
-					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BORDER));
-					gc.drawLine(rightx + lineWidth, topLeft.y - lineWidth, rightx + topLeft.y - lineWidth, topLeft.y - lineWidth);
-					rightx -= topLeft.y;
-				}
-
-				gc.setLineWidth(1);
-				gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
-				gc.drawLine(0, topLeft.y - 1, bounds.width, topLeft.y - 1);
-			}
-		} finally {
-			gc.dispose();
-		}
-	}
-
-	protected Map<Class<?>, Map<String, Object>> fieldAccessors = new HashMap<Class<?>, Map<String, Object>>(); // Map of Class->fieldName->field reflect
-
-	/**
-	 * @param object
-	 * @param fieldName
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	private int readIntFieldValue(Class<?> klass, Object object, String fieldName) {
-		try {
-			Field field = getField(klass, fieldName);
-			return field != null ? field.getInt(object) : 0;
-		} catch (IllegalArgumentException e) {
-		} catch (IllegalAccessException e) {
-		}
-		return -1;
-	}
-
-	private long readLongFieldValue(Class<?> klass, Object object, String fieldName) {
-		try {
-			Field field = getField(klass, fieldName);
-			return field != null ? field.getLong(object) : 0;
-		} catch (IllegalArgumentException e) {
-		} catch (IllegalAccessException e) {
-		}
-		return -1;
-	}
-
-	private static final Object NO_FIELD = new Object();
-
-	private Field getField(Class<?> klass, String fieldName) {
-		Map<String, Object> nameToField = fieldAccessors.get(klass);
-		if (nameToField == null) {
-			fieldAccessors.put(klass, nameToField = new HashMap<String, Object>());
-		}
-		Object field = nameToField.get(fieldName);
-		if (field == null) {
-			try {
-				field = klass.getDeclaredField(fieldName);
-				((Field) field).setAccessible(true);
-			} catch (SecurityException e) {
-				field = NO_FIELD;
-				e.printStackTrace();
-			} catch (NoSuchFieldException e) {
-				field = NO_FIELD;
-				e.printStackTrace();
-			}
-			nameToField.put(fieldName, field);
-		}
-		return (Field) (field != NO_FIELD ? field : null);
-	}
-
-	/**
-	 * @param object
-	 * @param fieldName
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	private void writeIntFieldValue(Class<?> klass, Object object, String fieldName, int newInt) {
-		try {
-			Field field = getField(klass, fieldName);
-			field.setInt(object, newInt);
-		} catch (IllegalArgumentException e) {
-		} catch (IllegalAccessException e) {
-		}
-	}
-
-	protected Image getImage(Control control, int maxWidth, int maxHeight, boolean includeChildren) {
-		int ic = includeChildren ? 1 : 0;
-		Map<Control, Integer> map = new HashMap<Control, Integer>();
-		changeObscured(control, map, false);
-		Image image = null;
-		try {
-			image = getImageOfControl(control, ic, maxWidth, maxHeight);
-		} finally {
-			changeObscured(control, map, true);
-		}
-		return image;
-	}
-
-	/**
-	 * @param control
-	 * @param map
-	 * 
-	 * @since 1.0.0
-	 */
-	private void changeObscured(Control control, Map<Control, Integer> map, boolean on) {
-		if (on) {
-			// restoring the obscured flags
-			if (map.containsKey(control)) {
-				// control had obscured flag changed - reset it
-				Integer originalValue = (Integer) map.get(control);
-				writeIntFieldValue(Widget.class, control, FIELD_STATE_NAME, originalValue.intValue());
-			}
-		} else {
-			// disabling the obscure flags
-			int stateValue = readIntFieldValue(Widget.class, control, FIELD_STATE_NAME);
-			if ((stateValue & OBSCURED) != 0) {
-				// obscured - disable flag and remember
-				map.put(control, new Integer(stateValue));
-				stateValue &= ~OBSCURED;
-				writeIntFieldValue(Widget.class, control, FIELD_STATE_NAME, stateValue);
-			}
-		}
-		if (control instanceof CCombo) {
-			// CCombo has a text field whose OBSCURED field needs to be changed
-			CCombo ccombo = (CCombo) control;
-			Object val = readObjectFieldValue(CCombo.class, ccombo, "text"); //$NON-NLS-1$
-			if (val instanceof Text) {
-				Text text = (Text) val;
-				changeObscured(text, map, on);
-			}
-		} else if (control instanceof Composite) {
-			Composite composite = (Composite) control;
-			Control[] children = composite.getChildren();
-			for (int cc = 0; children != null && cc < children.length; cc++) {
-				changeObscured(children[cc], map, on);
-			}
-		}
-	}
-
-	/**
-	 * @param object
-	 * @param fieldName
-	 * @return
-	 * 
-	 * @since 1.1.0.1
-	 */
-	private Object readObjectFieldValue(Class<?> klass, Object object, String fieldName) {
-		try {
-			Field field = klass.getDeclaredField(fieldName);
-			field.setAccessible(true);
-			return field.get(object);
-		} catch (SecurityException e) {
-		} catch (NoSuchFieldException e) {
-		} catch (IllegalArgumentException e) {
-		} catch (IllegalAccessException e) {
-		}
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/win32/ImageCapture.java b/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/win32/ImageCapture.java
deleted file mode 100755
index 90700a2..0000000
--- a/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/win32/ImageCapture.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2010 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ve.internal.swt.targetvm.win32;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Spinner;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Tree;
-
-/**
- * Image Capture for Win32 platforms.
- * 
- * @since 1.1.0
- * 
- *        yyang (yves.yang@soyatec.com): change to reflection calls on OS
- * 
- */
-public class ImageCapture extends org.eclipse.xwt.tools.ui.imagecapture.swt.ImageCapture {
-
-	static Field Control_handler;
-	static Field GC_handler;
-	static Class<?> OleFrameClass;
-
-	static Method GetParent;
-
-	static Method SendMessage;
-
-	static {
-		try {
-			OleFrameClass = Class.forName("org.eclipse.swt.ole.win32.OleFrame");
-
-			Class<?> osClass = Class.forName("org.eclipse.swt.internal.win32.OS");
-			GetParent = osClass.getDeclaredMethod("GetParent", int.class);
-
-			Control_handler = Control.class.getField("handle");
-			GC_handler = GC.class.getField("handle");
-			GC_handler.setAccessible(true);
-			
-			SendMessage = osClass.getDeclaredMethod("SendMessage", int.class, int.class, int.class, int.class);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	protected Image getImage(Control control, int maxWidth, int maxHeight, boolean includeChildren) {
-//		if (!(control instanceof Shell)) {
-//			Rectangle bounds = control.getBounds();
-//			Image image = new Image(control.getDisplay(), bounds.width, bounds.height);
-//			GC gc = new GC(image);
-//			control.print(gc);
-//			gc.dispose();
-//			return image;
-//		}
-		Image myImage = getImage(control, maxWidth, maxHeight);
-		// We need to be able to handle right-to-left coordinates too. In that case the bounds rectangle will be reversed from what we
-		// think. We think the origin is upper-left, but the origin is really upper-right. To get out of this thinking we will
-		// instead convert all bounds to display bounds so that they will all be left-to-right.
-		if (myImage != null) {
-			// Get the images of all of the children
-			if (includeChildren && control instanceof Composite) {
-				Display display = control.getDisplay();
-				Rectangle parentBounds = control.getParent() == null ? control.getBounds() : display.map(control.getParent(), null, control.getBounds());
-				// Need to clip the bounds to the size of the image so we get just what we need.
-				Rectangle imgBounds = myImage.getBounds();
-				parentBounds.width = imgBounds.width;
-				parentBounds.height = imgBounds.height;
-				int parentRight = parentBounds.width + parentBounds.x;
-				int parentBottom = parentBounds.height + parentBounds.y;
-				Control[] children = ((Composite) control).getChildren();
-				GC myImageGC = new GC(myImage);
-				try {
-					int i = children.length;
-					while (--i >= 0) {
-						Control child = children[i];
-						// If the child is not visible then don't try and get its image
-						// An example of where this would cause a problem is TabFolder where all the controls
-						// for each page are children of the TabFolder, but only the visible one is being shown on the active page
-						if (!child.isVisible())
-							continue;
-						Rectangle childBounds = display.map(control, null, child.getBounds());
-						if (!parentBounds.intersects(childBounds))
-							continue; // Child is completely outside parent.
-						Image childImage = getImage(child, parentRight - childBounds.x, parentBottom - childBounds.y, true);
-						if (childImage != null) {
-							try {
-								// Paint the child image on top of our one
-								// Since the child bounds and parent bounds are both in display coors, the difference between
-								// the two is the offset of the child from the parent.
-								myImageGC.drawImage(childImage, childBounds.x - parentBounds.x, childBounds.y - parentBounds.y);
-							} finally {
-								childImage.dispose();
-							}
-						}
-					}
-				} finally {
-					myImageGC.dispose();
-				}
-			}
-		}
-		return myImage;
-	}
-
-	/**
-	 * Return the image of the argument. This includes the client and non-client area, but does not include any child controls. To get child control use {@link ImageCapture#getImage(Control, int, int, boolean)}.
-	 * 
-	 * @param aControl
-	 * @param maxWidth
-	 * @param maxHeight
-	 * @return image or <code>null</code> if not valid for some reason. (Like not yet sized).
-	 * 
-	 * @since 1.1.0
-	 */
-	protected Image getImage(Control aControl, int maxWidth, int maxHeight) {
-
-		Rectangle rect = aControl.getBounds();
-		if (rect.width <= 0 || rect.height <= 0)
-			return null;
-
-		Image image = new Image(aControl.getDisplay(), Math.min(rect.width, maxWidth), Math.min(rect.height, maxHeight));
-		int WM_PRINT = 0x0317;
-		// int WM_PRINTCLIENT = 0x0318;
-		// int PRF_CHECKVISIBLE = 0x00000001;
-		int PRF_NONCLIENT = 0x00000002;
-		int PRF_CLIENT = 0x00000004;
-		int PRF_ERASEBKGND = 0x00000008;
-		int PRF_CHILDREN = 0x00000010;
-		// int PRF_OWNED = 0x00000020;
-		int print_bits = PRF_NONCLIENT | PRF_CLIENT | PRF_ERASEBKGND;
-		// This method does not print immediate children because the z-order doesn't work correctly and needs to be
-		// dealt with separately, however Table's TableColumn widgets are children so must be handled differently
-		boolean specialClass = aControl instanceof Table || aControl instanceof Browser || OleFrameClass.isInstance(aControl) || aControl instanceof CCombo;
-		try {
-			specialClass |= aControl instanceof Spinner;
-		} catch (NoClassDefFoundError e) {
-		} // might not be on 3.1 of SWT
-		if (specialClass) {
-			print_bits |= PRF_CHILDREN;
-		}
-		GC gc = new GC(image);
-
-		// Need to handle cases where the GC font isn't automatically set by the control's image (e.g. CLabel)
-		// see bug 98830 (https://bugs.eclipse.org/bugs/show_bug.cgi?id=98830)
-		Font f = aControl.getFont();
-		if (f != null)
-			gc.setFont(f);
-
-		try {
-			int hwnd = Control_handler.getInt(aControl);
-			if (aControl instanceof Tree) {
-				int hwndParent = (Integer) GetParent.invoke(null, hwnd);
-				if (hwndParent != Control_handler.getInt(aControl.getParent())) {
-					hwnd = hwndParent;
-					print_bits |= PRF_CHILDREN;
-				}
-			}
-			Object handle = GC_handler.get(gc);
-			SendMessage.invoke(null, hwnd, WM_PRINT, handle, print_bits);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-
-		gc.dispose();
-		return image;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/xwt/tools/ui/imagecapture/swt/ImageCapture.java b/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/xwt/tools/ui/imagecapture/swt/ImageCapture.java
deleted file mode 100755
index eaa3eca..0000000
--- a/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/xwt/tools/ui/imagecapture/swt/ImageCapture.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *
- * All rights reserved. This program and the accompanying materials            *
- * are made available under the terms of the Eclipse Public License v1.0       *
- * which accompanies this distribution, and is available at                    *
- * http://www.eclipse.org/legal/epl-v10.html                                   *  
- * Contributors:                                                               *  
- *     Soyatec - initial API and implementation                                * 
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.imagecapture.swt;
-
-import java.lang.reflect.Field;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ve.internal.swt.targetvm.unix.DisposeUtil;
-
-/**
- * Capture and transmit the image back. There are platform specific subclasses to handle the grab of the image from a control.
- * 
- * @since 1.1.0
- */
-public abstract class ImageCapture {
-	static ImageCapture instance;
-
-	public Image captureImage(Object control) {
-		if (control instanceof Control) {
-			Control ctl = (Control) control;
-			return captureImage(ctl);
-		}
-		return null;
-	}
-
-	public Image captureImage(Control control) {
-		Rectangle rectangle = control.getBounds();
-		Display display = control.getDisplay();
-		Image image = null;
-		if (control instanceof Shell) {
-			Shell shell = (Shell) control;
-			shell.layout();
-			Point parentLocation = control.toDisplay(0, 0);
-			image = getImage(control, rectangle.width, rectangle.height, false);
-
-			rectangle.x = parentLocation.x;
-			rectangle.y = parentLocation.y;
-
-			GC myImageGC = new GC(image);
-			try {
-				for (Control child : shell.getChildren()) {
-					Rectangle childBounds = child.getBounds();
-					// bug of SWT on Win32, child bounds is not correct in the
-					// Window is not in the ToolBar
-					int x = (rectangle.width - childBounds.width) / 2;
-					int y = (rectangle.height - childBounds.height) - x;
-					childBounds.x = rectangle.x + x;
-					childBounds.y = rectangle.y + y;
-					if (!rectangle.intersects(childBounds))
-						continue; // Child is completely outside parent.
-
-					Image childImage = new Image(display, child.getBounds());
-					GC gc = new GC(childImage);
-					child.print(gc);
-					DisposeUtil.dispose(gc);
-					try {
-						myImageGC.drawImage(childImage, x, y);
-					} finally {
-						childImage.dispose();
-					}
-				}
-			} finally {
-				myImageGC.dispose();
-			}
-		} else {
-			image = capture(control);
-		}
-		return image;
-	}
-
-	public Image capture(Control control) {
-		Rectangle bounds = control.getBounds();
-		return capture(control, bounds.width, bounds.height, false);
-	}
-
-	public Image capture(Control control, int width, int height, boolean includeChildren) {
-		return getImage(control, width, height, includeChildren);
-	}
-
-	protected abstract Image getImage(Control control, int maxWidth, int maxHeight, boolean includeChildren);
-
-	public static ImageCapture getInstance() {
-		if (instance == null) {
-			if (Platform.OS_WIN32.equals(Platform.getOS()))
-				instance = new org.eclipse.ve.internal.swt.targetvm.win32.ImageCapture();
-			else if (Platform.WS_GTK.equals(Platform.getWS())) {
-				if (Platform.ARCH_IA64.equals(Platform.getOSArch()) || Platform.ARCH_X86_64.equals(Platform.getOSArch()))
-					instance = new org.eclipse.ve.internal.swt.targetvm.unix.bits64.ImageCapture();
-				else
-					instance = new org.eclipse.ve.internal.swt.targetvm.unix.ImageCapture();
-			} else if (Platform.OS_MACOSX.equals(Platform.getOS())) {
-				if (Platform.WS_COCOA.equals(Platform.getWS()))
-					instance = new org.eclipse.ve.internal.swt.targetvm.macosx.cocoa.ImageCapture();
-				else if (Platform.WS_CARBON.equals(Platform.getWS()))
-					instance = new org.eclipse.ve.internal.swt.targetvm.macosx.ImageCapture();
-				else
-					throw new UnsupportedOperationException(Platform.getOS());
-			} else {
-				throw new UnsupportedOperationException(Platform.getOS());
-			}
-		}
-		return instance;
-	}
-
-	public static int getIntHandle(Control control) {
-		try {
-			Field handleField = control.getClass().getField("handle");
-			handleField.setAccessible(true);
-			return (Integer) handleField.get(control);
-		} catch (SecurityException e) {
-			e.printStackTrace();
-		} catch (IllegalArgumentException e) {
-			e.printStackTrace();
-		} catch (NoSuchFieldException e) {
-			e.printStackTrace();
-		} catch (IllegalAccessException e) {
-			e.printStackTrace();
-		}
-		return -1;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.palette/build.properties b/org.eclipse.xwt.tools.ui.palette/build.properties
deleted file mode 100755
index eecbbc9..0000000
--- a/org.eclipse.xwt.tools.ui.palette/build.properties
+++ /dev/null
@@ -1,35 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     Soyatec - initial API and implementation
-###############################################################################
-
-# <copyright>
-# </copyright>
-#
-# $Id: build.properties,v 1.2 2010/06/18 00:15:59 yvyang Exp $
-
-bin.includes = .,\
-               META-INF/,\
-               plugin.xml,\
-               plugin.properties,\
-               schema/
-jars.compile.order = .
-source.. = src/
-output.. = bin/
-src.includes = templates/,\
-               src/,\
-               schema/,\
-               plugin.xml,\
-               plugin.properties,\
-               model/,\
-               build.properties,\
-               META-INF/,\
-               .settings/,\
-               .project,\
-               .classpath
diff --git a/org.eclipse.xwt.tools.ui.palette/plugin.properties b/org.eclipse.xwt.tools.ui.palette/plugin.properties
deleted file mode 100755
index a15e31c..0000000
--- a/org.eclipse.xwt.tools.ui.palette/plugin.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     Soyatec - initial API and implementation
-###############################################################################
-
-# <copyright>
-# </copyright>
-#
-# $Id: plugin.properties,v 1.2 2010/06/18 00:15:59 yvyang Exp $
-
-pluginName = Palette Model (Incubation)
-providerName = Eclipse.org
diff --git a/org.eclipse.xwt.tools.ui.palette/plugin.xml b/org.eclipse.xwt.tools.ui.palette/plugin.xml
deleted file mode 100755
index 325fc46..0000000
--- a/org.eclipse.xwt.tools.ui.palette/plugin.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-
-<!--
-    Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
-    All rights reserved. This program and the accompanying materials
-    are made available under the terms of the Eclipse Public License v1.0
-    which accompanies this distribution, and is available at
-    http://www.eclipse.org/legal/epl-v10.html
-   
-    Contributors:
-        Soyatec - initial API and implementation
- -->
-
-<plugin>
-   <extension-point id="resourceProvider" name="Palette Resource Provider" schema="schema/resourceProvider.exsd"/>
-   <extension-point id="paletteContribution" name="Palette Contribution" schema="schema/paletteContribution.exsd"/>
-
-   <extension point="org.eclipse.emf.ecore.generated_package">
-      <package
-            uri="http://www.eclipse.org/e4/xwt/tools/palette.xmi"
-            class="org.eclipse.xwt.tools.ui.palette.PalettePackage"
-            genModel="model/palette.genmodel"/>
-   </extension>
-
-</plugin>
diff --git a/org.eclipse.xwt.tools.ui.palette/pom.xml b/org.eclipse.xwt.tools.ui.palette/pom.xml
deleted file mode 100755
index ac5c901..0000000
--- a/org.eclipse.xwt.tools.ui.palette/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt.tools.ui.palette</artifactId>
-	<version>0.10.0-SNAPSHOT</version>
-	<packaging>eclipse-plugin</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/activator/PalettePlugin.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/activator/PalettePlugin.java
deleted file mode 100755
index 6ac02ad..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/activator/PalettePlugin.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.activator;
-
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class PalettePlugin extends AbstractUIPlugin {
-
-	// The plug-in ID
-	public static final String PLUGIN_ID = "org.soyatec.tools.palette";
-
-	// The shared instance
-	private static PalettePlugin plugin;
-
-	/**
-	 * The constructor
-	 */
-	public PalettePlugin() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext
-	 * )
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext
-	 * )
-	 */
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);
-	}
-
-	/**
-	 * Returns the shared instance
-	 * 
-	 * @return the shared instance
-	 */
-	public static PalettePlugin getDefault() {
-		return plugin;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/ContextType.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/ContextType.java
deleted file mode 100755
index 14a63cf..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/ContextType.java
+++ /dev/null
@@ -1,313 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette;
-
-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>Context Type</b></em>', and utility methods for working with them.
- * <!-- end-user-doc -->
- * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getContextType()
- * @model
- * @generated
- */
-public enum ContextType implements Enumerator {
-	/**
-	 * The '<em><b>Xml tag</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #XML_TAG_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	XML_TAG(5, "xml_tag", "xml_tag"),
-
-	/**
-	 * The '<em><b>Xml attribute value</b></em>' literal object. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #XML_ATTRIBUTE_VALUE_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	XML_ATTRIBUTE_VALUE(1, "xml_attribute_value", "xml_attribute_value"),
-
-	/**
-	 * The '<em><b>Xml attribute</b></em>' literal object.
-	 * <!-- begin-user-doc
-	 * --> <!-- end-user-doc -->
-	 * @see #XML_ATTRIBUTE_VALUE_
-	 * @generated
-	 * @ordered
-	 */
-	XML_ATTRIBUTE(2, "xml_attribute", "xml_attribute"),
-
-	/**
-	 * The '<em><b>Xml all</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #XML_ALL_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	XML_ALL(3, "xml_all", "xml_all"),
-
-	/**
-	 * The '<em><b>Xml new</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #XML_NEW_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	XML_NEW(4, "xml_new", "xml_new"),
-
-	/**
-	 * The '<em><b>None</b></em>' literal object.
-	 * <!-- begin-user-doc --> <!--
-	 * end-user-doc -->
-	 * @see #NONE_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	NONE(0, "none", "none");
-
-	/**
-	 * The '<em><b>Xml tag</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Xml tag</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #XML_TAG
-	 * @model name="xml_tag"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TAG_VALUE = 5;
-
-	/**
-	 * The '<em><b>Xml attribute value</b></em>' literal value. <!--
-	 * begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Xml attribute value</b></em>' literal object
-	 * isn't clear, there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * 
-	 * @see #XML_ATTRIBUTE_VALUE
-	 * @model name="xml_attribute_value"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ATTRIBUTE_VALUE_VALUE = 1;
-
-	/**
-	 * The '<em><b>Xml attribute</b></em>' literal value.
-	 * <!-- begin-user-doc
-	 * -->
-	 * <p>
-	 * If the meaning of '<em><b>Xml attribute</b></em>' literal object isn't
-	 * clear, there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #XML_ATTRIBUTE
-	 * @model name="xml_attribute"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ATTRIBUTE_VALUE_ = 2;
-
-	/**
-	 * The '<em><b>Xml all</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Xml all</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #XML_ALL
-	 * @model name="xml_all"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ALL_VALUE = 3;
-
-	/**
-	 * The '<em><b>Xml new</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Xml new</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #XML_NEW
-	 * @model name="xml_new"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_NEW_VALUE = 4;
-
-	/**
-	 * The '<em><b>None</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>None</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #NONE
-	 * @model name="none"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int NONE_VALUE = 0;
-
-	/**
-	 * An array of all the '<em><b>Context Type</b></em>' enumerators. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private static final ContextType[] VALUES_ARRAY = new ContextType[] {
-			XML_TAG,
-			XML_ATTRIBUTE_VALUE,
-			XML_ATTRIBUTE,
-			XML_ALL,
-			XML_NEW,
-			NONE,
-		};
-
-	/**
-	 * A public read-only list of all the '<em><b>Context Type</b></em>' enumerators.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final List<ContextType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
-
-	/**
-	 * Returns the '<em><b>Context Type</b></em>' literal with the specified literal value.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static ContextType get(String literal) {
-		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-			ContextType result = VALUES_ARRAY[i];
-			if (result.toString().equals(literal)) {
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Context Type</b></em>' literal with the specified name.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static ContextType getByName(String name) {
-		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-			ContextType result = VALUES_ARRAY[i];
-			if (result.getName().equals(name)) {
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Context Type</b></em>' literal with the specified integer value.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static ContextType get(int value) {
-		switch (value) {
-			case XML_TAG_VALUE: return XML_TAG;
-			case XML_ATTRIBUTE_VALUE_VALUE: return XML_ATTRIBUTE_VALUE;
-			case XML_ATTRIBUTE_VALUE_: return XML_ATTRIBUTE;
-			case XML_ALL_VALUE: return XML_ALL;
-			case XML_NEW_VALUE: return XML_NEW;
-			case NONE_VALUE: return NONE;
-		}
-		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 ContextType(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;
-	}
-
-} // ContextType
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/Entry.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/Entry.java
deleted file mode 100755
index 650a702..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/Entry.java
+++ /dev/null
@@ -1,397 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc --> A representation of the model object '
- * <em><b>Entry</b></em>'. <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.Entry#getToolTip <em>Tool Tip</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.Entry#getLargeIcon <em>Large Icon</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.Entry#getContent <em>Content</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.Entry#getName <em>Name</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.Entry#getEntries <em>Entries</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.Entry#getId <em>Id</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.Entry#getIcon <em>Icon</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.Entry#getContext <em>Context</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.Entry#getScope <em>Scope</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.Entry#isVisible <em>Visible</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.Entry#getType <em>Type</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.Entry#getInitializer <em>Initializer</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.Entry#getDataContext <em>Data Context</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getEntry()
- * @model
- * @generated
- */
-public interface Entry extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Tool Tip</b></em>' attribute. <!--
-	 * begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Tool Tip</em>' attribute isn't clear, there
-	 * really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * 
-	 * @return the value of the '<em>Tool Tip</em>' attribute.
-	 * @see #setToolTip(String)
-	 * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getEntry_ToolTip()
-	 * @model
-	 * @generated
-	 */
-	String getToolTip();
-
-	/**
-	 * Sets the value of the '
-	 * {@link org.eclipse.xwt.tools.ui.palette.Entry#getToolTip
-	 * <em>Tool Tip</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
-	 * -->
-	 * 
-	 * @param value
-	 *            the new value of the '<em>Tool Tip</em>' attribute.
-	 * @see #getToolTip()
-	 * @generated
-	 */
-	void setToolTip(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Large Icon</b></em>' attribute. <!--
-	 * begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Large Icon</em>' attribute isn't clear, there
-	 * really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * 
-	 * @return the value of the '<em>Large Icon</em>' attribute.
-	 * @see #setLargeIcon(String)
-	 * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getEntry_LargeIcon()
-	 * @model
-	 * @generated
-	 */
-	String getLargeIcon();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.palette.Entry#getLargeIcon <em>Large Icon</em>}' attribute.
-	 * <!-- begin-user-doc --> <!--
-	 * end-user-doc -->
-	 * @param value the new value of the '<em>Large Icon</em>' attribute.
-	 * @see #getLargeIcon()
-	 * @generated
-	 */
-	void setLargeIcon(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Content</b></em>' attribute. <!--
-	 * begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Content</em>' attribute isn't clear, there
-	 * really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * 
-	 * @return the value of the '<em>Content</em>' attribute.
-	 * @see #setContent(String)
-	 * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getEntry_Content()
-	 * @model
-	 * @generated
-	 */
-	String getContent();
-
-	/**
-	 * Sets the value of the '
-	 * {@link org.eclipse.xwt.tools.ui.palette.Entry#getContent
-	 * <em>Content</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
-	 * -->
-	 * 
-	 * @param value
-	 *            the new value of the '<em>Content</em>' attribute.
-	 * @see #getContent()
-	 * @generated
-	 */
-	void setContent(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute. <!--
-	 * begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear, there really
-	 * should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * 
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see #setName(String)
-	 * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getEntry_Name()
-	 * @model
-	 * @generated
-	 */
-	String getName();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.palette.Entry#getName <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Name</em>' attribute.
-	 * @see #getName()
-	 * @generated
-	 */
-	void setName(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Entries</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.xwt.tools.ui.palette.Entry}.
-	 * <!-- begin-user-doc
-	 * -->
-	 * <p>
-	 * If the meaning of the '<em>Entries</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>Entries</em>' containment reference list.
-	 * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getEntry_Entries()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<Entry> getEntries();
-
-	/**
-	 * Returns the value of the '<em><b>Id</b></em>' attribute.
-	 * The default value is <code>"\"\""</code>.
-	 * <!-- 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.xwt.tools.ui.palette.PalettePackage#getEntry_Id()
-	 * @model default="\"\"" id="true"
-	 * @generated
-	 */
-	String getId();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.palette.Entry#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>Icon</b></em>' attribute. <!--
-	 * begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Icon</em>' attribute isn't clear, there really
-	 * should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * 
-	 * @return the value of the '<em>Icon</em>' attribute.
-	 * @see #setIcon(String)
-	 * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getEntry_Icon()
-	 * @model
-	 * @generated
-	 */
-	String getIcon();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.palette.Entry#getIcon <em>Icon</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Icon</em>' attribute.
-	 * @see #getIcon()
-	 * @generated
-	 */
-	void setIcon(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Context</b></em>' attribute. The default
-	 * value is <code>""</code>. The literals are from the enumeration
-	 * {@link org.eclipse.xwt.tools.ui.palette.ContextType}. <!--
-	 * begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Context</em>' attribute isn't clear, there
-	 * really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * 
-	 * @return the value of the '<em>Context</em>' attribute.
-	 * @see org.eclipse.xwt.tools.ui.palette.ContextType
-	 * @see #setContext(ContextType)
-	 * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getEntry_Context()
-	 * @model default=""
-	 * @generated
-	 */
-	ContextType getContext();
-
-	/**
-	 * Sets the value of the '
-	 * {@link org.eclipse.xwt.tools.ui.palette.Entry#getContext
-	 * <em>Context</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
-	 * -->
-	 * 
-	 * @param value
-	 *            the new value of the '<em>Context</em>' attribute.
-	 * @see org.eclipse.xwt.tools.ui.palette.ContextType
-	 * @see #getContext()
-	 * @generated
-	 */
-	void setContext(ContextType value);
-
-	/**
-	 * Returns the value of the '<em><b>Scope</b></em>' attribute. <!--
-	 * begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Scope</em>' attribute isn't clear, there
-	 * really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * 
-	 * @return the value of the '<em>Scope</em>' attribute.
-	 * @see #setScope(String)
-	 * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getEntry_Scope()
-	 * @model
-	 * @generated
-	 */
-	String getScope();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.palette.Entry#getScope <em>Scope</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Scope</em>' attribute.
-	 * @see #getScope()
-	 * @generated
-	 */
-	void setScope(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Visible</b></em>' attribute. <!--
-	 * begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Visible</em>' attribute isn't clear, there
-	 * really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * 
-	 * @return the value of the '<em>Visible</em>' attribute.
-	 * @see #setVisible(boolean)
-	 * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getEntry_Visible()
-	 * @model
-	 * @generated
-	 */
-	boolean isVisible();
-
-	/**
-	 * Sets the value of the '
-	 * {@link org.eclipse.xwt.tools.ui.palette.Entry#isVisible
-	 * <em>Visible</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
-	 * -->
-	 * 
-	 * @param value
-	 *            the new value of the '<em>Visible</em>' attribute.
-	 * @see #isVisible()
-	 * @generated
-	 */
-	void setVisible(boolean value);
-
-	/**
-	 * Returns the value of the '<em><b>Initializer</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Initializer</em>' attribute isn't clear, there
-	 * really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Initializer</em>' reference.
-	 * @see #setInitializer(Initializer)
-	 * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getEntry_Initializer()
-	 * @model
-	 * @generated
-	 */
-	Initializer getInitializer();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.palette.Entry#getInitializer <em>Initializer</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Initializer</em>' reference.
-	 * @see #getInitializer()
-	 * @generated
-	 */
-	void setInitializer(Initializer value);
-
-	/**
-	 * Returns the value of the '<em><b>Data Context</b></em>' attribute. <!--
-	 * begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Data Context</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * 
-	 * @return the value of the '<em>Data Context</em>' attribute.
-	 * @see #setDataContext(Object)
-	 * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getEntry_DataContext()
-	 * @model
-	 * @generated
-	 */
-	Object getDataContext();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.palette.Entry#getDataContext <em>Data Context</em>}' attribute.
-	 * <!-- begin-user-doc --> <!--
-	 * end-user-doc -->
-	 * @param value the new value of the '<em>Data Context</em>' attribute.
-	 * @see #getDataContext()
-	 * @generated
-	 */
-	void setDataContext(Object value);
-
-	/**
-	 * Returns the value of the '<em><b>Type</b></em>' reference. <!--
-	 * begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Type</em>' reference isn't clear, there really
-	 * should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * 
-	 * @return the value of the '<em>Type</em>' reference.
-	 * @see #setType(EClass)
-	 * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getEntry_Type()
-	 * @model
-	 * @generated
-	 */
-	EClass getType();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.palette.Entry#getType <em>Type</em>}' reference.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Type</em>' reference.
-	 * @see #getType()
-	 * @generated
-	 */
-	void setType(EClass value);
-
-} // Entry
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/Palette.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/Palette.java
deleted file mode 100755
index 3bee3ea..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/Palette.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc --> A representation of the model object '
- * <em><b>Palette</b></em>'. <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.Palette#getName <em>Name</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.Palette#getEntries <em>Entries</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getPalette()
- * @model
- * @generated
- */
-public interface Palette extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute. <!--
-	 * begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear, there really
-	 * should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * 
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see #setName(String)
-	 * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getPalette_Name()
-	 * @model
-	 * @generated
-	 */
-	String getName();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.palette.Palette#getName <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Name</em>' attribute.
-	 * @see #getName()
-	 * @generated
-	 */
-	void setName(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Entries</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.xwt.tools.ui.palette.Entry}.
-	 * <!-- begin-user-doc
-	 * -->
-	 * <p>
-	 * If the meaning of the '<em>Entries</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>Entries</em>' containment reference list.
-	 * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getPalette_Entries()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<Entry> getEntries();
-
-} // Palette
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/PaletteFactory.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/PaletteFactory.java
deleted file mode 100755
index 7d1a522..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/PaletteFactory.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette;
-
-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.xwt.tools.ui.palette.PalettePackage
- * @generated
- */
-public interface PaletteFactory extends EFactory {
-	/**
-	 * The singleton instance of the factory.
-	 * <!-- begin-user-doc --> <!--
-	 * end-user-doc -->
-	 * @generated
-	 */
-	PaletteFactory eINSTANCE = org.eclipse.xwt.tools.ui.palette.impl.PaletteFactoryImpl.init();
-
-	/**
-	 * Returns a new object of class '<em>Palette</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Palette</em>'.
-	 * @generated
-	 */
-	Palette createPalette();
-
-	/**
-	 * Returns a new object of class '<em>Entry</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Entry</em>'.
-	 * @generated
-	 */
-	Entry createEntry();
-
-	/**
-	 * Returns a new object of class '<em>Compound Initializer</em>'. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @return a new object of class '<em>Compound Initializer</em>'.
-	 * @generated
-	 */
-	CompoundInitializer createCompoundInitializer();
-
-	/**
-	 * Returns the package supported by this factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the package supported by this factory.
-	 * @generated
-	 */
-	PalettePackage getPalettePackage();
-
-} // PaletteFactory
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/PalettePackage.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/PalettePackage.java
deleted file mode 100755
index 8b3b79d..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/PalettePackage.java
+++ /dev/null
@@ -1,723 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette;
-
-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.xwt.tools.ui.palette.PaletteFactory
- * @model kind="package"
- * @generated
- */
-public interface PalettePackage extends EPackage {
-	/**
-	 * The package name.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNAME = "palette";
-
-	/**
-	 * The package namespace URI.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNS_URI = "http://www.eclipse.org/e4/xwt/tools/palette.xmi";
-
-	/**
-	 * The package namespace name.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNS_PREFIX = "palette";
-
-	/**
-	 * The singleton instance of the package.
-	 * <!-- begin-user-doc --> <!--
-	 * end-user-doc -->
-	 * @generated
-	 */
-	PalettePackage eINSTANCE = org.eclipse.xwt.tools.ui.palette.impl.PalettePackageImpl.init();
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.xwt.tools.ui.palette.impl.PaletteImpl <em>Palette</em>}' class.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see org.eclipse.xwt.tools.ui.palette.impl.PaletteImpl
-	 * @see org.eclipse.xwt.tools.ui.palette.impl.PalettePackageImpl#getPalette()
-	 * @generated
-	 */
-	int PALETTE = 0;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 * @ordered
-	 */
-	int PALETTE__NAME = 0;
-
-	/**
-	 * The feature id for the '<em><b>Entries</b></em>' containment reference list.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PALETTE__ENTRIES = 1;
-
-	/**
-	 * The number of structural features of the '<em>Palette</em>' class. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 * @ordered
-	 */
-	int PALETTE_FEATURE_COUNT = 2;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl <em>Entry</em>}' class.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see org.eclipse.xwt.tools.ui.palette.impl.EntryImpl
-	 * @see org.eclipse.xwt.tools.ui.palette.impl.PalettePackageImpl#getEntry()
-	 * @generated
-	 */
-	int ENTRY = 1;
-
-	/**
-	 * The feature id for the '<em><b>Tool Tip</b></em>' attribute. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 * @ordered
-	 */
-	int ENTRY__TOOL_TIP = 0;
-
-	/**
-	 * The feature id for the '<em><b>Large Icon</b></em>' attribute. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 * @ordered
-	 */
-	int ENTRY__LARGE_ICON = 1;
-
-	/**
-	 * The feature id for the '<em><b>Content</b></em>' attribute. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 * @ordered
-	 */
-	int ENTRY__CONTENT = 2;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 * @ordered
-	 */
-	int ENTRY__NAME = 3;
-
-	/**
-	 * The feature id for the '<em><b>Entries</b></em>' containment reference list.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ENTRY__ENTRIES = 4;
-
-	/**
-	 * The feature id for the '<em><b>Id</b></em>' attribute. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 * @ordered
-	 */
-	int ENTRY__ID = 5;
-
-	/**
-	 * The feature id for the '<em><b>Icon</b></em>' attribute. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 * @ordered
-	 */
-	int ENTRY__ICON = 6;
-
-	/**
-	 * The feature id for the '<em><b>Context</b></em>' attribute. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 * @ordered
-	 */
-	int ENTRY__CONTEXT = 7;
-
-	/**
-	 * The feature id for the '<em><b>Scope</b></em>' attribute. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 * @ordered
-	 */
-	int ENTRY__SCOPE = 8;
-
-	/**
-	 * The feature id for the '<em><b>Visible</b></em>' attribute. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 * @ordered
-	 */
-	int ENTRY__VISIBLE = 9;
-
-	/**
-	 * The feature id for the '<em><b>Type</b></em>' reference. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 * @ordered
-	 */
-	int ENTRY__TYPE = 10;
-
-	/**
-	 * The feature id for the '<em><b>Initializer</b></em>' reference.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ENTRY__INITIALIZER = 11;
-
-	/**
-	 * The feature id for the '<em><b>Data Context</b></em>' attribute. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 * @ordered
-	 */
-	int ENTRY__DATA_CONTEXT = 12;
-
-	/**
-	 * The number of structural features of the '<em>Entry</em>' class. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 * @ordered
-	 */
-	int ENTRY_FEATURE_COUNT = 13;
-
-	/**
-	 * The meta object id for the '
-	 * {@link org.eclipse.xwt.tools.ui.palette.impl.InitializerImpl
-	 * <em>Initializer</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc
-	 * -->
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.palette.impl.InitializerImpl
-	 * @see org.eclipse.xwt.tools.ui.palette.impl.PalettePackageImpl#getInitializer()
-	 * @generated
-	 */
-	int INITIALIZER = 2;
-
-	/**
-	 * The feature id for the '<em><b>Id</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INITIALIZER__ID = 0;
-
-	/**
-	 * The number of structural features of the '<em>Initializer</em>' class.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INITIALIZER_FEATURE_COUNT = 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.xwt.tools.ui.palette.impl.CompoundInitializerImpl <em>Compound Initializer</em>}' class.
-	 * <!-- begin-user-doc --> <!--
-	 * end-user-doc -->
-	 * @see org.eclipse.xwt.tools.ui.palette.impl.CompoundInitializerImpl
-	 * @see org.eclipse.xwt.tools.ui.palette.impl.PalettePackageImpl#getCompoundInitializer()
-	 * @generated
-	 */
-	int COMPOUND_INITIALIZER = 3;
-
-	/**
-	 * The feature id for the '<em><b>Id</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COMPOUND_INITIALIZER__ID = INITIALIZER__ID;
-
-	/**
-	 * The feature id for the '<em><b>Initializers</b></em>' reference list.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COMPOUND_INITIALIZER__INITIALIZERS = INITIALIZER_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Compound Initializer</em>' class.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COMPOUND_INITIALIZER_FEATURE_COUNT = INITIALIZER_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '
-	 * {@link org.eclipse.xwt.tools.ui.palette.ContextType
-	 * <em>Context Type</em>}' enum. <!-- begin-user-doc --> <!-- end-user-doc
-	 * -->
-	 * 
-	 * @see org.eclipse.xwt.tools.ui.palette.ContextType
-	 * @see org.eclipse.xwt.tools.ui.palette.impl.PalettePackageImpl#getContextType()
-	 * @generated
-	 */
-	int CONTEXT_TYPE = 4;
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.xwt.tools.ui.palette.Palette <em>Palette</em>}'.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Palette</em>'.
-	 * @see org.eclipse.xwt.tools.ui.palette.Palette
-	 * @generated
-	 */
-	EClass getPalette();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.palette.Palette#getName <em>Name</em>}'.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see org.eclipse.xwt.tools.ui.palette.Palette#getName()
-	 * @see #getPalette()
-	 * @generated
-	 */
-	EAttribute getPalette_Name();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.xwt.tools.ui.palette.Palette#getEntries <em>Entries</em>}'.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Entries</em>'.
-	 * @see org.eclipse.xwt.tools.ui.palette.Palette#getEntries()
-	 * @see #getPalette()
-	 * @generated
-	 */
-	EReference getPalette_Entries();
-
-	/**
-	 * Returns the meta object for class '
-	 * {@link org.eclipse.xwt.tools.ui.palette.Entry <em>Entry</em>}'. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @return the meta object for class '<em>Entry</em>'.
-	 * @see org.eclipse.xwt.tools.ui.palette.Entry
-	 * @generated
-	 */
-	EClass getEntry();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.palette.Entry#getToolTip <em>Tool Tip</em>}'.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Tool Tip</em>'.
-	 * @see org.eclipse.xwt.tools.ui.palette.Entry#getToolTip()
-	 * @see #getEntry()
-	 * @generated
-	 */
-	EAttribute getEntry_ToolTip();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.palette.Entry#getLargeIcon <em>Large Icon</em>}'.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Large Icon</em>'.
-	 * @see org.eclipse.xwt.tools.ui.palette.Entry#getLargeIcon()
-	 * @see #getEntry()
-	 * @generated
-	 */
-	EAttribute getEntry_LargeIcon();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.palette.Entry#getContent <em>Content</em>}'.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Content</em>'.
-	 * @see org.eclipse.xwt.tools.ui.palette.Entry#getContent()
-	 * @see #getEntry()
-	 * @generated
-	 */
-	EAttribute getEntry_Content();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.palette.Entry#getName <em>Name</em>}'.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see org.eclipse.xwt.tools.ui.palette.Entry#getName()
-	 * @see #getEntry()
-	 * @generated
-	 */
-	EAttribute getEntry_Name();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.xwt.tools.ui.palette.Entry#getEntries <em>Entries</em>}'.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Entries</em>'.
-	 * @see org.eclipse.xwt.tools.ui.palette.Entry#getEntries()
-	 * @see #getEntry()
-	 * @generated
-	 */
-	EReference getEntry_Entries();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.palette.Entry#getId <em>Id</em>}'.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Id</em>'.
-	 * @see org.eclipse.xwt.tools.ui.palette.Entry#getId()
-	 * @see #getEntry()
-	 * @generated
-	 */
-	EAttribute getEntry_Id();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.palette.Entry#getIcon <em>Icon</em>}'.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Icon</em>'.
-	 * @see org.eclipse.xwt.tools.ui.palette.Entry#getIcon()
-	 * @see #getEntry()
-	 * @generated
-	 */
-	EAttribute getEntry_Icon();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.palette.Entry#getContext <em>Context</em>}'.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Context</em>'.
-	 * @see org.eclipse.xwt.tools.ui.palette.Entry#getContext()
-	 * @see #getEntry()
-	 * @generated
-	 */
-	EAttribute getEntry_Context();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.palette.Entry#getScope <em>Scope</em>}'.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Scope</em>'.
-	 * @see org.eclipse.xwt.tools.ui.palette.Entry#getScope()
-	 * @see #getEntry()
-	 * @generated
-	 */
-	EAttribute getEntry_Scope();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.palette.Entry#isVisible <em>Visible</em>}'.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Visible</em>'.
-	 * @see org.eclipse.xwt.tools.ui.palette.Entry#isVisible()
-	 * @see #getEntry()
-	 * @generated
-	 */
-	EAttribute getEntry_Visible();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.xwt.tools.ui.palette.Entry#getInitializer <em>Initializer</em>}'.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Initializer</em>'.
-	 * @see org.eclipse.xwt.tools.ui.palette.Entry#getInitializer()
-	 * @see #getEntry()
-	 * @generated
-	 */
-	EReference getEntry_Initializer();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.palette.Entry#getDataContext <em>Data Context</em>}'.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Data Context</em>'.
-	 * @see org.eclipse.xwt.tools.ui.palette.Entry#getDataContext()
-	 * @see #getEntry()
-	 * @generated
-	 */
-	EAttribute getEntry_DataContext();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.xwt.tools.ui.palette.Initializer <em>Initializer</em>}'.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Initializer</em>'.
-	 * @see org.eclipse.xwt.tools.ui.palette.Initializer
-	 * @generated
-	 */
-	EClass getInitializer();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.palette.Initializer#getId <em>Id</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Id</em>'.
-	 * @see org.eclipse.xwt.tools.ui.palette.Initializer#getId()
-	 * @see #getInitializer()
-	 * @generated
-	 */
-	EAttribute getInitializer_Id();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.xwt.tools.ui.palette.CompoundInitializer <em>Compound Initializer</em>}'.
-	 * <!-- begin-user-doc --> <!--
-	 * end-user-doc -->
-	 * @return the meta object for class '<em>Compound Initializer</em>'.
-	 * @see org.eclipse.xwt.tools.ui.palette.CompoundInitializer
-	 * @generated
-	 */
-	EClass getCompoundInitializer();
-
-	/**
-	 * Returns the meta object for the reference list '{@link org.eclipse.xwt.tools.ui.palette.CompoundInitializer#getInitializers <em>Initializers</em>}'.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Initializers</em>'.
-	 * @see org.eclipse.xwt.tools.ui.palette.CompoundInitializer#getInitializers()
-	 * @see #getCompoundInitializer()
-	 * @generated
-	 */
-	EReference getCompoundInitializer_Initializers();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.xwt.tools.ui.palette.Entry#getType <em>Type</em>}'.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Type</em>'.
-	 * @see org.eclipse.xwt.tools.ui.palette.Entry#getType()
-	 * @see #getEntry()
-	 * @generated
-	 */
-	EReference getEntry_Type();
-
-	/**
-	 * Returns the meta object for enum '{@link org.eclipse.xwt.tools.ui.palette.ContextType <em>Context Type</em>}'.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @return the meta object for enum '<em>Context Type</em>'.
-	 * @see org.eclipse.xwt.tools.ui.palette.ContextType
-	 * @generated
-	 */
-	EEnum getContextType();
-
-	/**
-	 * 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
-	 */
-	PaletteFactory getPaletteFactory();
-
-	/**
-	 * <!-- 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.xwt.tools.ui.palette.impl.PaletteImpl
-		 * <em>Palette</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc
-		 * -->
-		 * 
-		 * @see org.eclipse.xwt.tools.ui.palette.impl.PaletteImpl
-		 * @see org.eclipse.xwt.tools.ui.palette.impl.PalettePackageImpl#getPalette()
-		 * @generated
-		 */
-		EClass PALETTE = eINSTANCE.getPalette();
-
-		/**
-		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute PALETTE__NAME = eINSTANCE.getPalette_Name();
-
-		/**
-		 * The meta object literal for the '<em><b>Entries</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference PALETTE__ENTRIES = eINSTANCE.getPalette_Entries();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl <em>Entry</em>}' class.
-		 * <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * @see org.eclipse.xwt.tools.ui.palette.impl.EntryImpl
-		 * @see org.eclipse.xwt.tools.ui.palette.impl.PalettePackageImpl#getEntry()
-		 * @generated
-		 */
-		EClass ENTRY = eINSTANCE.getEntry();
-
-		/**
-		 * The meta object literal for the '<em><b>Tool Tip</b></em>' attribute feature.
-		 * <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute ENTRY__TOOL_TIP = eINSTANCE.getEntry_ToolTip();
-
-		/**
-		 * The meta object literal for the '<em><b>Large Icon</b></em>' attribute feature.
-		 * <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute ENTRY__LARGE_ICON = eINSTANCE.getEntry_LargeIcon();
-
-		/**
-		 * The meta object literal for the '<em><b>Content</b></em>' attribute feature.
-		 * <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute ENTRY__CONTENT = eINSTANCE.getEntry_Content();
-
-		/**
-		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute ENTRY__NAME = eINSTANCE.getEntry_Name();
-
-		/**
-		 * The meta object literal for the '<em><b>Entries</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ENTRY__ENTRIES = eINSTANCE.getEntry_Entries();
-
-		/**
-		 * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
-		 * <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute ENTRY__ID = eINSTANCE.getEntry_Id();
-
-		/**
-		 * The meta object literal for the '<em><b>Icon</b></em>' attribute feature.
-		 * <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute ENTRY__ICON = eINSTANCE.getEntry_Icon();
-
-		/**
-		 * The meta object literal for the '<em><b>Context</b></em>' attribute feature.
-		 * <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute ENTRY__CONTEXT = eINSTANCE.getEntry_Context();
-
-		/**
-		 * The meta object literal for the '<em><b>Scope</b></em>' attribute feature.
-		 * <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute ENTRY__SCOPE = eINSTANCE.getEntry_Scope();
-
-		/**
-		 * The meta object literal for the '<em><b>Visible</b></em>' attribute feature.
-		 * <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute ENTRY__VISIBLE = eINSTANCE.getEntry_Visible();
-
-		/**
-		 * The meta object literal for the '<em><b>Initializer</b></em>' reference feature.
-		 * <!-- begin-user-doc --> <!--
-		 * end-user-doc -->
-		 * @generated
-		 */
-		EReference ENTRY__INITIALIZER = eINSTANCE.getEntry_Initializer();
-
-		/**
-		 * The meta object literal for the '<em><b>Data Context</b></em>' attribute feature.
-		 * <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute ENTRY__DATA_CONTEXT = eINSTANCE.getEntry_DataContext();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.xwt.tools.ui.palette.impl.InitializerImpl <em>Initializer</em>}' class.
-		 * <!-- begin-user-doc --> <!--
-		 * end-user-doc -->
-		 * @see org.eclipse.xwt.tools.ui.palette.impl.InitializerImpl
-		 * @see org.eclipse.xwt.tools.ui.palette.impl.PalettePackageImpl#getInitializer()
-		 * @generated
-		 */
-		EClass INITIALIZER = eINSTANCE.getInitializer();
-
-		/**
-		 * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute INITIALIZER__ID = eINSTANCE.getInitializer_Id();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.xwt.tools.ui.palette.impl.CompoundInitializerImpl <em>Compound Initializer</em>}' class.
-		 * <!-- begin-user-doc --> <!--
-		 * end-user-doc -->
-		 * @see org.eclipse.xwt.tools.ui.palette.impl.CompoundInitializerImpl
-		 * @see org.eclipse.xwt.tools.ui.palette.impl.PalettePackageImpl#getCompoundInitializer()
-		 * @generated
-		 */
-		EClass COMPOUND_INITIALIZER = eINSTANCE.getCompoundInitializer();
-
-		/**
-		 * The meta object literal for the '<em><b>Initializers</b></em>' reference list feature.
-		 * <!-- begin-user-doc --> <!--
-		 * end-user-doc -->
-		 * @generated
-		 */
-		EReference COMPOUND_INITIALIZER__INITIALIZERS = eINSTANCE.getCompoundInitializer_Initializers();
-
-		/**
-		 * The meta object literal for the '<em><b>Type</b></em>' reference feature.
-		 * <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ENTRY__TYPE = eINSTANCE.getEntry_Type();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.xwt.tools.ui.palette.ContextType <em>Context Type</em>}' enum.
-		 * <!-- begin-user-doc --> <!--
-		 * end-user-doc -->
-		 * @see org.eclipse.xwt.tools.ui.palette.ContextType
-		 * @see org.eclipse.xwt.tools.ui.palette.impl.PalettePackageImpl#getContextType()
-		 * @generated
-		 */
-		EEnum CONTEXT_TYPE = eINSTANCE.getContextType();
-
-	}
-
-} // PalettePackage
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/contribution/CreationCommand.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/contribution/CreationCommand.java
deleted file mode 100755
index a5ae710..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/contribution/CreationCommand.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.contribution;
-
-import org.eclipse.xwt.tools.ui.palette.Entry;
-import org.eclipse.xwt.tools.ui.palette.Initializer;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.requests.CreateRequest;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public abstract class CreationCommand extends Command {
-
-	private CreateRequest createReq;
-	private Entry entry;
-
-	public CreationCommand(CreateRequest createRequest) {
-		this.createReq = createRequest;
-	}
-
-	public boolean canExecute() {
-		if (createReq == null) {
-			return false;
-		}
-		return (entry = (Entry) createReq.getNewObject()) != null;
-	}
-
-	final public void execute() {
-		Initializer initializer = entry.getInitializer();
-		if (initializer != null) {
-			Object newObject = initializer.parse(entry);
-			if (initializer.initialize(entry, newObject)) {
-				doCreate(entry, newObject);
-			}
-		} else {
-			doCreate(entry, null);
-		}
-	}
-
-	/**
-	 * Doing command here.
-	 */
-	protected abstract void doCreate(Entry entry, Object newObject);
-
-	public Entry getEntry() {
-		return entry;
-	}
-
-	/**
-	 * Doing something before command execute.
-	 */
-	protected boolean preExecute() {
-		if (entry == null) {
-			return false;
-		}
-		Initializer initializer = entry.getInitializer();
-		if (initializer != null) {
-			Object parse = initializer.parse(entry);
-			return initializer.initialize(parse);
-		}
-		return false;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/contribution/PaletteContribution.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/contribution/PaletteContribution.java
deleted file mode 100755
index e9d8eea..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/contribution/PaletteContribution.java
+++ /dev/null
@@ -1,321 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.contribution;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.xwt.tools.ui.palette.CompoundInitializer;
-import org.eclipse.xwt.tools.ui.palette.Entry;
-import org.eclipse.xwt.tools.ui.palette.Initializer;
-import org.eclipse.xwt.tools.ui.palette.PaletteFactory;
-import org.eclipse.xwt.tools.ui.palette.page.CustomPalettePage;
-import org.eclipse.xwt.tools.ui.palette.page.CustomPaletteViewerProvider;
-import org.eclipse.xwt.tools.ui.palette.page.resources.IPaletteResourceProvider;
-import org.eclipse.xwt.tools.ui.palette.root.PaletteRootFactory;
-import org.eclipse.gef.EditDomain;
-import org.eclipse.gef.Tool;
-import org.eclipse.gef.palette.PaletteRoot;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public class PaletteContribution implements IExecutableExtension {
-
-	public static final String EXTENSION_POINT_ID = "org.eclipse.xwt.tools.ui.palette.paletteContribution";
-	public static final String CONTRIBUTION = "Contribution";
-	public static final String CONTRIBUTION_TARGET_ID = "targetId";
-	public static final String RESOURCE = "Resource";
-	public static final String RESOURCE_URI = "uri";
-	public static final String RESOURCE_PROVIDER = "provider";
-	public static final String INITIALIZER = "Initializer";
-	public static final String INITIALIZER_TARGET = "target";
-	public static final String INITIALIZER_TARGET_ID = "id";
-	public static final String INITIALIZER_TARGET_OVERRIDE_ID = "overrideId";
-	public static final String INITIALIZER_TARGET_GLOBAL = "*";
-	public static final String INITIALIZER_CLASS = "class";
-	public static final String TOOL = "Tool";
-	public static final String TOOL_CLASS = "class";
-	public static final String TOOL_TYPE = "type";
-	public static final String TOOL_TYPE_CREATION = "creation";
-	public static final String TOOL_TYPE_SELECTION = "selection";
-
-	private String editorId;
-	private Map<String, Initializer> initializersMap;
-	private List<IPaletteResourceProvider> resourceProviders;
-
-	private Class<? extends Tool> creationTool;
-	private Class<? extends Tool> selectionTool;
-
-	private static final Map<String, PaletteContribution> contributions = new HashMap<String, PaletteContribution>();
-
-	private PaletteContribution(String editorId) {
-		this.editorId = editorId;
-		loadFromExtensions();
-	}
-
-	private void loadFromExtensions() {
-		IConfigurationElement[] configurations = Platform
-				.getExtensionRegistry().getConfigurationElementsFor(
-						EXTENSION_POINT_ID);
-		for (IConfigurationElement ctrib : configurations) {
-			String targetId = ctrib.getAttribute(CONTRIBUTION_TARGET_ID);
-			if (!editorId.equals(targetId)) {
-				continue;
-			}
-			loadResources(ctrib.getChildren(RESOURCE));
-			loadInitializers(ctrib.getChildren(INITIALIZER));
-			loadTools(ctrib.getChildren(TOOL));
-		}
-	}
-
-	private void loadResources(IConfigurationElement[] resources) {
-		if (resources == null || resources.length == 0) {
-			return;
-		}
-		if (resourceProviders == null) {
-			resourceProviders = new ArrayList<IPaletteResourceProvider>();
-		}
-		for (IConfigurationElement resConfig : resources) {
-			// String uri = resConfig.getAttribute(RESOURCE_URI);
-			try {
-				IPaletteResourceProvider provider = (IPaletteResourceProvider) resConfig
-						.createExecutableExtension(RESOURCE_PROVIDER);
-				resourceProviders.add(provider);
-			} catch (CoreException e) {
-				e.printStackTrace();
-			}
-		}
-	}
-
-	private void loadInitializers(IConfigurationElement[] initializers) {
-		if (initializers == null || initializers.length == 0) {
-			return;
-		}
-
-		for (IConfigurationElement initConfig : initializers) {
-			String target = normalizeTarget(initConfig
-					.getAttribute(INITIALIZER_TARGET));
-			String id = initConfig.getAttribute(INITIALIZER_TARGET_ID);
-			String overrideId = initConfig
-					.getAttribute(INITIALIZER_TARGET_OVERRIDE_ID);
-			Initializer initializer = null;
-			try {
-				initializer = (Initializer) initConfig
-						.createExecutableExtension(INITIALIZER_CLASS);
-
-			} catch (CoreException e) {
-				continue;
-			}
-			addInitializer(target, id, overrideId, initializer);
-		}
-	}
-
-	private void addInitializer(String target, String id, String overrideId,
-			Initializer initializer) {
-		if (id == null || initializer == null) {
-			return;
-		}
-		initializer.setId(id);
-
-		if (initializersMap == null) {
-			initializersMap = new HashMap<String, Initializer>();
-		}
-		// 1. quick fix orveride.
-		if (overrideId != null && findInitializerById(overrideId) != null) {
-			Initializer idOfInit = findInitializerById(overrideId);
-			if (idOfInit.equals(initializersMap.get(target))) {
-				initializersMap.put(target, initializer);
-			} else {
-				for (String key : new ArrayList<String>(initializersMap
-						.keySet())) {
-					if (idOfInit.equals(initializersMap.get(key))) {
-						initializersMap.put(key, initializer);
-					}
-				}
-			}
-		} else {
-			if (target != null && target.indexOf(",") != -1) {
-				StringTokenizer stk = new StringTokenizer(target, ",");
-				while (stk.hasMoreTokens()) {
-					addInitializer(stk.nextToken().trim(), id, null,
-							initializer);
-				}
-				return;
-			}
-			target = normalizeTarget(target);
-			Initializer oldInit = initializersMap.get(target);
-			if (oldInit == null) {
-				initializersMap.put(target, initializer);
-			} else if (oldInit instanceof CompoundInitializer) {
-				((CompoundInitializer) oldInit).getInitializers().add(
-						initializer);
-			} else {
-				CompoundInitializer newInit = PaletteFactory.eINSTANCE
-						.createCompoundInitializer();
-				newInit.getInitializers().add(oldInit);
-				newInit.getInitializers().add(initializer);
-				initializersMap.put(target, newInit);
-			}
-		}
-	}
-
-	public Initializer findInitializerById(String id) {
-		if (id == null || initializersMap == null) {
-			return null;
-		}
-		for (Initializer init : initializersMap.values()) {
-			if (id.equals(init.getId())) {
-				return init;
-			}
-		}
-		return null;
-	}
-
-	private String normalizeTarget(String target) {
-		if (target == null || "".equals(target)) {
-			target = INITIALIZER_TARGET_GLOBAL;
-		}
-		return target.toUpperCase();
-	}
-
-	private void loadTools(IConfigurationElement[] tools) {
-		if (tools == null || tools.length == 0) {
-			return;
-		}
-		for (IConfigurationElement toolConfig : tools) {
-			String type = toolConfig.getAttribute(TOOL_TYPE);
-			try {
-				Tool tool = (Tool) toolConfig
-						.createExecutableExtension(TOOL_CLASS);
-				if (TOOL_TYPE_CREATION.equals(type)) {
-					creationTool = tool.getClass();
-				} else if (TOOL_TYPE_SELECTION.equals(type)) {
-					selectionTool = tool.getClass();
-				}
-			} catch (CoreException e) {
-				continue;
-			}
-		}
-	}
-
-	public Class<? extends Tool> getCreationTool() {
-		return creationTool;
-	}
-
-	public Class<? extends Tool> getSelectionTool() {
-		return selectionTool;
-	}
-
-	public String getEditorId() {
-		return editorId;
-	}
-
-	public Initializer getInitializer(String type) {
-		if (initializersMap == null) {
-			return null;
-		}
-		type = normalizeTarget(type);
-		return initializersMap.get(type);
-	}
-
-	public void applyInitializer(Entry entry) {
-		if (entry == null || !entry.getEntries().isEmpty()) {
-			return;
-		}
-
-		List<Initializer> initializers = new ArrayList<Initializer>();
-
-		// get from NAME.
-		String name = entry.getName();
-		if (name != null) {
-			merge(initializersMap.get(name.toUpperCase()), initializers);
-		}
-		// get from ID.
-		String id = entry.getId();
-		if (id != null) {
-			merge(initializersMap.get(id.toUpperCase()), initializers);
-		}
-		// add old initializer.
-		Initializer oldInitializer = entry.getInitializer();
-		if (oldInitializer != null) {
-			merge(oldInitializer, initializers);
-		}
-		Initializer globalInitializer = getGlobalInitializer();
-		if (globalInitializer != null) {
-			merge(globalInitializer, initializers);
-		}
-		if (!initializers.isEmpty()) {
-			CompoundInitializer initializer = PaletteFactory.eINSTANCE
-					.createCompoundInitializer();
-			initializer.getInitializers().addAll(initializers);
-			entry.setInitializer(initializer.unwrap());
-		}
-	}
-
-	private void merge(Initializer initializer, List<Initializer> initList) {
-		if (initializer == null || initList == null) {
-			return;
-		}
-		if (initializer instanceof CompoundInitializer) {
-			initList.addAll(((CompoundInitializer) initializer)
-					.getInitializers());
-		} else {
-			initList.add(initializer);
-		}
-	}
-
-	public Initializer getGlobalInitializer() {
-		return getInitializer(INITIALIZER_TARGET_GLOBAL);
-	}
-
-	public boolean hasInitialiers() {
-		return initializersMap != null && initializersMap.size() > 0;
-	}
-
-	public List<IPaletteResourceProvider> getResourceProviders() {
-		return resourceProviders;
-	}
-
-	public void setInitializationData(IConfigurationElement config,
-			String propertyName, Object data) throws CoreException {
-
-	}
-
-	public CustomPalettePage createPalette(String editorId,
-			EditDomain editDomain) {
-		PaletteRootFactory factory = new PaletteRootFactory(resourceProviders,
-				creationTool, selectionTool);
-		PaletteRoot paletteRoot = factory.createPaletteRoot();
-		if (paletteRoot != null) {
-			editDomain.setPaletteRoot(paletteRoot);
-		}
-		CustomPaletteViewerProvider provider = new CustomPaletteViewerProvider(
-				editDomain);
-		return new CustomPalettePage(provider);
-	}
-
-	public static PaletteContribution getContribution(String editorId) {
-		PaletteContribution paletteContribution = contributions.get(editorId);
-		if (paletteContribution == null) {
-			paletteContribution = new PaletteContribution(editorId);
-			contributions.put(editorId, paletteContribution);
-		}
-		return paletteContribution;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/EntryImpl.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/EntryImpl.java
deleted file mode 100755
index 0e6e009..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/EntryImpl.java
+++ /dev/null
@@ -1,781 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.impl;
-
-import java.util.Collection;
-
-import org.eclipse.xwt.tools.ui.palette.ContextType;
-import org.eclipse.xwt.tools.ui.palette.Entry;
-import org.eclipse.xwt.tools.ui.palette.Initializer;
-import org.eclipse.xwt.tools.ui.palette.PalettePackage;
-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.EObjectImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-/**
- * <!-- begin-user-doc --> An implementation of the model object '
- * <em><b>Entry</b></em>'. <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl#getToolTip <em>Tool Tip</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl#getLargeIcon <em>Large Icon</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl#getContent <em>Content</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl#getName <em>Name</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl#getEntries <em>Entries</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl#getId <em>Id</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl#getIcon <em>Icon</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl#getContext <em>Context</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl#getScope <em>Scope</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl#isVisible <em>Visible</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl#getType <em>Type</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl#getInitializer <em>Initializer</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl#getDataContext <em>Data Context</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class EntryImpl extends EObjectImpl implements Entry {
-	/**
-	 * The default value of the '{@link #getToolTip() <em>Tool Tip</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getToolTip()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String TOOL_TIP_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getToolTip() <em>Tool Tip</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getToolTip()
-	 * @generated
-	 * @ordered
-	 */
-	protected String toolTip = TOOL_TIP_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getLargeIcon() <em>Large Icon</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getLargeIcon()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String LARGE_ICON_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getLargeIcon() <em>Large Icon</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getLargeIcon()
-	 * @generated
-	 * @ordered
-	 */
-	protected String largeIcon = LARGE_ICON_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getContent() <em>Content</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getContent()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String CONTENT_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getContent() <em>Content</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getContent()
-	 * @generated
-	 * @ordered
-	 */
-	protected String content = CONTENT_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getEntries() <em>Entries</em>}' containment reference list.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getEntries()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<Entry> entries;
-
-	/**
-	 * 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 = "\"\"";
-
-	/**
-	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #getId()
-	 * @generated
-	 * @ordered
-	 */
-	protected String id = ID_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getIcon() <em>Icon</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getIcon()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String ICON_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getIcon() <em>Icon</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getIcon()
-	 * @generated
-	 * @ordered
-	 */
-	protected String icon = ICON_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getContext() <em>Context</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getContext()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final ContextType CONTEXT_EDEFAULT = ContextType.XML_TAG;
-
-	/**
-	 * The cached value of the '{@link #getContext() <em>Context</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getContext()
-	 * @generated
-	 * @ordered
-	 */
-	protected ContextType context = CONTEXT_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getScope() <em>Scope</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getScope()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String SCOPE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getScope() <em>Scope</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getScope()
-	 * @generated
-	 * @ordered
-	 */
-	protected String scope = SCOPE_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #isVisible() <em>Visible</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #isVisible()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final boolean VISIBLE_EDEFAULT = false;
-
-	/**
-	 * The cached value of the '{@link #isVisible() <em>Visible</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #isVisible()
-	 * @generated
-	 * @ordered
-	 */
-	protected boolean visible = VISIBLE_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getType() <em>Type</em>}' reference.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getType()
-	 * @generated
-	 * @ordered
-	 */
-	protected EClass type;
-
-	/**
-	 * The cached value of the '{@link #getInitializer() <em>Initializer</em>}' reference.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getInitializer()
-	 * @generated
-	 * @ordered
-	 */
-	protected Initializer initializer;
-
-	/**
-	 * The default value of the '{@link #getDataContext() <em>Data Context</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getDataContext()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Object DATA_CONTEXT_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getDataContext() <em>Data Context</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getDataContext()
-	 * @generated
-	 * @ordered
-	 */
-	protected Object dataContext = DATA_CONTEXT_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EntryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return PalettePackage.Literals.ENTRY;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getToolTip() {
-		return toolTip;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setToolTip(String newToolTip) {
-		String oldToolTip = toolTip;
-		toolTip = newToolTip;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PalettePackage.ENTRY__TOOL_TIP, oldToolTip, toolTip));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getLargeIcon() {
-		return largeIcon;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setLargeIcon(String newLargeIcon) {
-		String oldLargeIcon = largeIcon;
-		largeIcon = newLargeIcon;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PalettePackage.ENTRY__LARGE_ICON, oldLargeIcon, largeIcon));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getContent() {
-		return content;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setContent(String newContent) {
-		String oldContent = content;
-		content = newContent;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PalettePackage.ENTRY__CONTENT, oldContent, content));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PalettePackage.ENTRY__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList<Entry> getEntries() {
-		if (entries == null) {
-			entries = new EObjectContainmentEList<Entry>(Entry.class, this, PalettePackage.ENTRY__ENTRIES);
-		}
-		return entries;
-	}
-
-	/**
-	 * <!-- 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, PalettePackage.ENTRY__ID, oldId, id));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getIcon() {
-		return icon;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setIcon(String newIcon) {
-		String oldIcon = icon;
-		icon = newIcon;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PalettePackage.ENTRY__ICON, oldIcon, icon));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ContextType getContext() {
-		return context;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setContext(ContextType newContext) {
-		ContextType oldContext = context;
-		context = newContext == null ? CONTEXT_EDEFAULT : newContext;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PalettePackage.ENTRY__CONTEXT, oldContext, context));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getScope() {
-		return scope;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setScope(String newScope) {
-		String oldScope = scope;
-		scope = newScope;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PalettePackage.ENTRY__SCOPE, oldScope, scope));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean isVisible() {
-		return visible;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setVisible(boolean newVisible) {
-		boolean oldVisible = visible;
-		visible = newVisible;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PalettePackage.ENTRY__VISIBLE, oldVisible, visible));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Initializer getInitializer() {
-		if (initializer != null && initializer.eIsProxy()) {
-			InternalEObject oldInitializer = (InternalEObject)initializer;
-			initializer = (Initializer)eResolveProxy(oldInitializer);
-			if (initializer != oldInitializer) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, PalettePackage.ENTRY__INITIALIZER, oldInitializer, initializer));
-			}
-		}
-		return initializer;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Initializer basicGetInitializer() {
-		return initializer;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setInitializer(Initializer newInitializer) {
-		Initializer oldInitializer = initializer;
-		initializer = newInitializer;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PalettePackage.ENTRY__INITIALIZER, oldInitializer, initializer));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object getDataContext() {
-		return dataContext;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setDataContext(Object newDataContext) {
-		Object oldDataContext = dataContext;
-		dataContext = newDataContext;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PalettePackage.ENTRY__DATA_CONTEXT, oldDataContext, dataContext));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getType() {
-		if (type != null && type.eIsProxy()) {
-			InternalEObject oldType = (InternalEObject)type;
-			type = (EClass)eResolveProxy(oldType);
-			if (type != oldType) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, PalettePackage.ENTRY__TYPE, oldType, type));
-			}
-		}
-		return type;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass basicGetType() {
-		return type;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setType(EClass newType) {
-		EClass oldType = type;
-		type = newType;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PalettePackage.ENTRY__TYPE, oldType, type));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID,
-			NotificationChain msgs) {
-		switch (featureID) {
-			case PalettePackage.ENTRY__ENTRIES:
-				return ((InternalEList<?>)getEntries()).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 PalettePackage.ENTRY__TOOL_TIP:
-				return getToolTip();
-			case PalettePackage.ENTRY__LARGE_ICON:
-				return getLargeIcon();
-			case PalettePackage.ENTRY__CONTENT:
-				return getContent();
-			case PalettePackage.ENTRY__NAME:
-				return getName();
-			case PalettePackage.ENTRY__ENTRIES:
-				return getEntries();
-			case PalettePackage.ENTRY__ID:
-				return getId();
-			case PalettePackage.ENTRY__ICON:
-				return getIcon();
-			case PalettePackage.ENTRY__CONTEXT:
-				return getContext();
-			case PalettePackage.ENTRY__SCOPE:
-				return getScope();
-			case PalettePackage.ENTRY__VISIBLE:
-				return isVisible();
-			case PalettePackage.ENTRY__TYPE:
-				if (resolve) return getType();
-				return basicGetType();
-			case PalettePackage.ENTRY__INITIALIZER:
-				if (resolve) return getInitializer();
-				return basicGetInitializer();
-			case PalettePackage.ENTRY__DATA_CONTEXT:
-				return getDataContext();
-		}
-		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 PalettePackage.ENTRY__TOOL_TIP:
-				setToolTip((String)newValue);
-				return;
-			case PalettePackage.ENTRY__LARGE_ICON:
-				setLargeIcon((String)newValue);
-				return;
-			case PalettePackage.ENTRY__CONTENT:
-				setContent((String)newValue);
-				return;
-			case PalettePackage.ENTRY__NAME:
-				setName((String)newValue);
-				return;
-			case PalettePackage.ENTRY__ENTRIES:
-				getEntries().clear();
-				getEntries().addAll((Collection<? extends Entry>)newValue);
-				return;
-			case PalettePackage.ENTRY__ID:
-				setId((String)newValue);
-				return;
-			case PalettePackage.ENTRY__ICON:
-				setIcon((String)newValue);
-				return;
-			case PalettePackage.ENTRY__CONTEXT:
-				setContext((ContextType)newValue);
-				return;
-			case PalettePackage.ENTRY__SCOPE:
-				setScope((String)newValue);
-				return;
-			case PalettePackage.ENTRY__VISIBLE:
-				setVisible((Boolean)newValue);
-				return;
-			case PalettePackage.ENTRY__TYPE:
-				setType((EClass)newValue);
-				return;
-			case PalettePackage.ENTRY__INITIALIZER:
-				setInitializer((Initializer)newValue);
-				return;
-			case PalettePackage.ENTRY__DATA_CONTEXT:
-				setDataContext(newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case PalettePackage.ENTRY__TOOL_TIP:
-				setToolTip(TOOL_TIP_EDEFAULT);
-				return;
-			case PalettePackage.ENTRY__LARGE_ICON:
-				setLargeIcon(LARGE_ICON_EDEFAULT);
-				return;
-			case PalettePackage.ENTRY__CONTENT:
-				setContent(CONTENT_EDEFAULT);
-				return;
-			case PalettePackage.ENTRY__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case PalettePackage.ENTRY__ENTRIES:
-				getEntries().clear();
-				return;
-			case PalettePackage.ENTRY__ID:
-				setId(ID_EDEFAULT);
-				return;
-			case PalettePackage.ENTRY__ICON:
-				setIcon(ICON_EDEFAULT);
-				return;
-			case PalettePackage.ENTRY__CONTEXT:
-				setContext(CONTEXT_EDEFAULT);
-				return;
-			case PalettePackage.ENTRY__SCOPE:
-				setScope(SCOPE_EDEFAULT);
-				return;
-			case PalettePackage.ENTRY__VISIBLE:
-				setVisible(VISIBLE_EDEFAULT);
-				return;
-			case PalettePackage.ENTRY__TYPE:
-				setType((EClass)null);
-				return;
-			case PalettePackage.ENTRY__INITIALIZER:
-				setInitializer((Initializer)null);
-				return;
-			case PalettePackage.ENTRY__DATA_CONTEXT:
-				setDataContext(DATA_CONTEXT_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case PalettePackage.ENTRY__TOOL_TIP:
-				return TOOL_TIP_EDEFAULT == null ? toolTip != null : !TOOL_TIP_EDEFAULT.equals(toolTip);
-			case PalettePackage.ENTRY__LARGE_ICON:
-				return LARGE_ICON_EDEFAULT == null ? largeIcon != null : !LARGE_ICON_EDEFAULT.equals(largeIcon);
-			case PalettePackage.ENTRY__CONTENT:
-				return CONTENT_EDEFAULT == null ? content != null : !CONTENT_EDEFAULT.equals(content);
-			case PalettePackage.ENTRY__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case PalettePackage.ENTRY__ENTRIES:
-				return entries != null && !entries.isEmpty();
-			case PalettePackage.ENTRY__ID:
-				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
-			case PalettePackage.ENTRY__ICON:
-				return ICON_EDEFAULT == null ? icon != null : !ICON_EDEFAULT.equals(icon);
-			case PalettePackage.ENTRY__CONTEXT:
-				return context != CONTEXT_EDEFAULT;
-			case PalettePackage.ENTRY__SCOPE:
-				return SCOPE_EDEFAULT == null ? scope != null : !SCOPE_EDEFAULT.equals(scope);
-			case PalettePackage.ENTRY__VISIBLE:
-				return visible != VISIBLE_EDEFAULT;
-			case PalettePackage.ENTRY__TYPE:
-				return type != null;
-			case PalettePackage.ENTRY__INITIALIZER:
-				return initializer != null;
-			case PalettePackage.ENTRY__DATA_CONTEXT:
-				return DATA_CONTEXT_EDEFAULT == null ? dataContext != null : !DATA_CONTEXT_EDEFAULT.equals(dataContext);
-		}
-		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(" (toolTip: ");
-		result.append(toolTip);
-		result.append(", largeIcon: ");
-		result.append(largeIcon);
-		result.append(", content: ");
-		result.append(content);
-		result.append(", name: ");
-		result.append(name);
-		result.append(", id: ");
-		result.append(id);
-		result.append(", icon: ");
-		result.append(icon);
-		result.append(", context: ");
-		result.append(context);
-		result.append(", scope: ");
-		result.append(scope);
-		result.append(", visible: ");
-		result.append(visible);
-		result.append(", dataContext: ");
-		result.append(dataContext);
-		result.append(')');
-		return result.toString();
-	}
-
-} // EntryImpl
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/PaletteFactoryImpl.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/PaletteFactoryImpl.java
deleted file mode 100755
index c058a0c..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/PaletteFactoryImpl.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.impl;
-
-import org.eclipse.xwt.tools.ui.palette.*;
-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;
-
-/**
- * <!-- begin-user-doc --> An implementation of the model <b>Factory</b>. <!--
- * end-user-doc -->
- * @generated
- */
-public class PaletteFactoryImpl extends EFactoryImpl implements PaletteFactory {
-	/**
-	 * Creates the default factory implementation.
-	 * <!-- begin-user-doc --> <!--
-	 * end-user-doc -->
-	 * @generated
-	 */
-	public static PaletteFactory init() {
-		try {
-			PaletteFactory thePaletteFactory = (PaletteFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/e4/xwt/tools/palette.xmi"); 
-			if (thePaletteFactory != null) {
-				return thePaletteFactory;
-			}
-		}
-		catch (Exception exception) {
-			EcorePlugin.INSTANCE.log(exception);
-		}
-		return new PaletteFactoryImpl();
-	}
-
-	/**
-	 * Creates an instance of the factory.
-	 * <!-- begin-user-doc --> <!--
-	 * end-user-doc -->
-	 * @generated
-	 */
-	public PaletteFactoryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EObject create(EClass eClass) {
-		switch (eClass.getClassifierID()) {
-			case PalettePackage.PALETTE: return createPalette();
-			case PalettePackage.ENTRY: return createEntry();
-			case PalettePackage.COMPOUND_INITIALIZER: return createCompoundInitializer();
-			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 PalettePackage.CONTEXT_TYPE:
-				return createContextTypeFromString(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 PalettePackage.CONTEXT_TYPE:
-				return convertContextTypeToString(eDataType, instanceValue);
-			default:
-				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Palette createPalette() {
-		PaletteImpl palette = new PaletteImpl();
-		return palette;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Entry createEntry() {
-		EntryImpl entry = new EntryImpl();
-		return entry;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public CompoundInitializer createCompoundInitializer() {
-		CompoundInitializerImpl compoundInitializer = new CompoundInitializerImpl();
-		return compoundInitializer;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ContextType createContextTypeFromString(EDataType eDataType, String initialValue) {
-		ContextType result = ContextType.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 convertContextTypeToString(EDataType eDataType, Object instanceValue) {
-		return instanceValue == null ? null : instanceValue.toString();
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public PalettePackage getPalettePackage() {
-		return (PalettePackage)getEPackage();
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @deprecated
-	 * @generated
-	 */
-	@Deprecated
-	public static PalettePackage getPackage() {
-		return PalettePackage.eINSTANCE;
-	}
-
-} // PaletteFactoryImpl
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/PaletteImpl.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/PaletteImpl.java
deleted file mode 100755
index 40c09e5..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/PaletteImpl.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.impl;
-
-import java.util.Collection;
-
-import org.eclipse.xwt.tools.ui.palette.Entry;
-import org.eclipse.xwt.tools.ui.palette.Palette;
-import org.eclipse.xwt.tools.ui.palette.PalettePackage;
-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.EObjectImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-/**
- * <!-- begin-user-doc --> An implementation of the model object '
- * <em><b>Palette</b></em>'. <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.PaletteImpl#getName <em>Name</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.PaletteImpl#getEntries <em>Entries</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class PaletteImpl extends EObjectImpl implements Palette {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getEntries() <em>Entries</em>}' containment reference list.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getEntries()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<Entry> entries;
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected PaletteImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return PalettePackage.Literals.PALETTE;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PalettePackage.PALETTE__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList<Entry> getEntries() {
-		if (entries == null) {
-			entries = new EObjectContainmentEList<Entry>(Entry.class, this, PalettePackage.PALETTE__ENTRIES);
-		}
-		return entries;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID,
-			NotificationChain msgs) {
-		switch (featureID) {
-			case PalettePackage.PALETTE__ENTRIES:
-				return ((InternalEList<?>)getEntries()).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 PalettePackage.PALETTE__NAME:
-				return getName();
-			case PalettePackage.PALETTE__ENTRIES:
-				return getEntries();
-		}
-		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 PalettePackage.PALETTE__NAME:
-				setName((String)newValue);
-				return;
-			case PalettePackage.PALETTE__ENTRIES:
-				getEntries().clear();
-				getEntries().addAll((Collection<? extends Entry>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case PalettePackage.PALETTE__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case PalettePackage.PALETTE__ENTRIES:
-				getEntries().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case PalettePackage.PALETTE__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case PalettePackage.PALETTE__ENTRIES:
-				return entries != null && !entries.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(" (name: ");
-		result.append(name);
-		result.append(')');
-		return result.toString();
-	}
-
-} // PaletteImpl
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/PalettePackageImpl.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/PalettePackageImpl.java
deleted file mode 100755
index dda0583..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/PalettePackageImpl.java
+++ /dev/null
@@ -1,440 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.impl;
-
-import org.eclipse.xwt.tools.ui.palette.CompoundInitializer;
-import org.eclipse.xwt.tools.ui.palette.ContextType;
-import org.eclipse.xwt.tools.ui.palette.Entry;
-import org.eclipse.xwt.tools.ui.palette.Initializer;
-import org.eclipse.xwt.tools.ui.palette.Palette;
-import org.eclipse.xwt.tools.ui.palette.PaletteFactory;
-import org.eclipse.xwt.tools.ui.palette.PalettePackage;
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EEnum;
-import org.eclipse.emf.ecore.EOperation;
-import org.eclipse.emf.ecore.EGenericType;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.impl.EPackageImpl;
-
-/**
- * <!-- begin-user-doc --> An implementation of the model <b>Package</b>. <!--
- * end-user-doc -->
- * @generated
- */
-public class PalettePackageImpl extends EPackageImpl implements PalettePackage {
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass paletteEClass = null;
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass entryEClass = null;
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass initializerEClass = null;
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass compoundInitializerEClass = null;
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EEnum contextTypeEEnum = 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.xwt.tools.ui.palette.PalettePackage#eNS_URI
-	 * @see #init()
-	 * @generated
-	 */
-	private PalettePackageImpl() {
-		super(eNS_URI, PaletteFactory.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 PalettePackage#eINSTANCE} when
-	 * that field is accessed. Clients should not invoke it directly. Instead,
-	 * they should simply access that field to obtain the package. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #eNS_URI
-	 * @see #createPackageContents()
-	 * @see #initializePackageContents()
-	 * @generated
-	 */
-	public static PalettePackage init() {
-		if (isInited) return (PalettePackage)EPackage.Registry.INSTANCE.getEPackage(PalettePackage.eNS_URI);
-
-		// Obtain or create and register package
-		PalettePackageImpl thePalettePackage = (PalettePackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof PalettePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new PalettePackageImpl());
-
-		isInited = true;
-
-		// Create package meta-data objects
-		thePalettePackage.createPackageContents();
-
-		// Initialize created meta-data
-		thePalettePackage.initializePackageContents();
-
-		// Mark meta-data to indicate it can't be changed
-		thePalettePackage.freeze();
-
-  
-		// Update the registry and return the package
-		EPackage.Registry.INSTANCE.put(PalettePackage.eNS_URI, thePalettePackage);
-		return thePalettePackage;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getPalette() {
-		return paletteEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getPalette_Name() {
-		return (EAttribute)paletteEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getPalette_Entries() {
-		return (EReference)paletteEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getEntry() {
-		return entryEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getEntry_ToolTip() {
-		return (EAttribute)entryEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getEntry_LargeIcon() {
-		return (EAttribute)entryEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getEntry_Content() {
-		return (EAttribute)entryEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getEntry_Name() {
-		return (EAttribute)entryEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getEntry_Entries() {
-		return (EReference)entryEClass.getEStructuralFeatures().get(4);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getEntry_Id() {
-		return (EAttribute)entryEClass.getEStructuralFeatures().get(5);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getEntry_Icon() {
-		return (EAttribute)entryEClass.getEStructuralFeatures().get(6);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getEntry_Context() {
-		return (EAttribute)entryEClass.getEStructuralFeatures().get(7);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getEntry_Scope() {
-		return (EAttribute)entryEClass.getEStructuralFeatures().get(8);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getEntry_Visible() {
-		return (EAttribute)entryEClass.getEStructuralFeatures().get(9);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getEntry_Initializer() {
-		return (EReference)entryEClass.getEStructuralFeatures().get(11);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getEntry_DataContext() {
-		return (EAttribute)entryEClass.getEStructuralFeatures().get(12);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getInitializer() {
-		return initializerEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getInitializer_Id() {
-		return (EAttribute)initializerEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getCompoundInitializer() {
-		return compoundInitializerEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getCompoundInitializer_Initializers() {
-		return (EReference)compoundInitializerEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getEntry_Type() {
-		return (EReference)entryEClass.getEStructuralFeatures().get(10);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EEnum getContextType() {
-		return contextTypeEEnum;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public PaletteFactory getPaletteFactory() {
-		return (PaletteFactory)getEFactoryInstance();
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	private boolean isCreated = false;
-
-	/**
-	 * Creates the meta-model objects for the package.  This method is
-	 * guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void createPackageContents() {
-		if (isCreated) return;
-		isCreated = true;
-
-		// Create classes and their features
-		paletteEClass = createEClass(PALETTE);
-		createEAttribute(paletteEClass, PALETTE__NAME);
-		createEReference(paletteEClass, PALETTE__ENTRIES);
-
-		entryEClass = createEClass(ENTRY);
-		createEAttribute(entryEClass, ENTRY__TOOL_TIP);
-		createEAttribute(entryEClass, ENTRY__LARGE_ICON);
-		createEAttribute(entryEClass, ENTRY__CONTENT);
-		createEAttribute(entryEClass, ENTRY__NAME);
-		createEReference(entryEClass, ENTRY__ENTRIES);
-		createEAttribute(entryEClass, ENTRY__ID);
-		createEAttribute(entryEClass, ENTRY__ICON);
-		createEAttribute(entryEClass, ENTRY__CONTEXT);
-		createEAttribute(entryEClass, ENTRY__SCOPE);
-		createEAttribute(entryEClass, ENTRY__VISIBLE);
-		createEReference(entryEClass, ENTRY__TYPE);
-		createEReference(entryEClass, ENTRY__INITIALIZER);
-		createEAttribute(entryEClass, ENTRY__DATA_CONTEXT);
-
-		initializerEClass = createEClass(INITIALIZER);
-		createEAttribute(initializerEClass, INITIALIZER__ID);
-
-		compoundInitializerEClass = createEClass(COMPOUND_INITIALIZER);
-		createEReference(compoundInitializerEClass, COMPOUND_INITIALIZER__INITIALIZERS);
-
-		// Create enums
-		contextTypeEEnum = createEEnum(CONTEXT_TYPE);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	private boolean isInitialized = false;
-
-	/**
-	 * Complete the initialization of the package and its meta-model. This
-	 * method is guarded to have no affect on any invocation but its first. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public void initializePackageContents() {
-		if (isInitialized) return;
-		isInitialized = true;
-
-		// Initialize package
-		setName(eNAME);
-		setNsPrefix(eNS_PREFIX);
-		setNsURI(eNS_URI);
-
-		// Create type parameters
-
-		// Set bounds for type parameters
-
-		// Add supertypes to classes
-		compoundInitializerEClass.getESuperTypes().add(this.getInitializer());
-
-		// Initialize classes and features; add operations and parameters
-		initEClass(paletteEClass, Palette.class, "Palette", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getPalette_Name(), ecorePackage.getEString(), "name", null, 0, 1, Palette.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getPalette_Entries(), this.getEntry(), null, "entries", null, 0, -1, Palette.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(entryEClass, Entry.class, "Entry", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getEntry_ToolTip(), ecorePackage.getEString(), "toolTip", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getEntry_LargeIcon(), ecorePackage.getEString(), "largeIcon", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getEntry_Content(), ecorePackage.getEString(), "content", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getEntry_Name(), ecorePackage.getEString(), "name", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getEntry_Entries(), this.getEntry(), null, "entries", null, 0, -1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getEntry_Id(), ecorePackage.getEString(), "id", "\"\"", 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getEntry_Icon(), ecorePackage.getEString(), "icon", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getEntry_Context(), this.getContextType(), "context", "", 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getEntry_Scope(), ecorePackage.getEString(), "scope", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getEntry_Visible(), ecorePackage.getEBoolean(), "visible", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getEntry_Type(), ecorePackage.getEClass(), null, "type", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getEntry_Initializer(), this.getInitializer(), null, "initializer", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getEntry_DataContext(), ecorePackage.getEJavaObject(), "dataContext", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(initializerEClass, Initializer.class, "Initializer", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getInitializer_Id(), ecorePackage.getEString(), "id", null, 0, 1, Initializer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		EOperation op = addEOperation(initializerEClass, ecorePackage.getEBoolean(), "initialize", 0, 1, IS_UNIQUE, IS_ORDERED);
-		addEParameter(op, ecorePackage.getEJavaObject(), "element", 0, 1, IS_UNIQUE, IS_ORDERED);
-
-		op = addEOperation(initializerEClass, ecorePackage.getEJavaObject(), "parse", 0, 1, IS_UNIQUE, IS_ORDERED);
-		addEParameter(op, this.getEntry(), "entry", 0, 1, IS_UNIQUE, IS_ORDERED);
-
-		op = addEOperation(initializerEClass, ecorePackage.getEBoolean(), "initialize", 0, 1, IS_UNIQUE, IS_ORDERED);
-		addEParameter(op, this.getEntry(), "entry", 0, 1, IS_UNIQUE, IS_ORDERED);
-		addEParameter(op, ecorePackage.getEJavaObject(), "newObject", 0, 1, IS_UNIQUE, IS_ORDERED);
-
-		initEClass(compoundInitializerEClass, CompoundInitializer.class, "CompoundInitializer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getCompoundInitializer_Initializers(), this.getInitializer(), null, "initializers", null, 0, -1, CompoundInitializer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		addEOperation(compoundInitializerEClass, this.getInitializer(), "unwrap", 0, 1, IS_UNIQUE, IS_ORDERED);
-
-		// Initialize enums and add enum literals
-		initEEnum(contextTypeEEnum, ContextType.class, "ContextType");
-		addEEnumLiteral(contextTypeEEnum, ContextType.XML_TAG);
-		addEEnumLiteral(contextTypeEEnum, ContextType.XML_ATTRIBUTE_VALUE);
-		addEEnumLiteral(contextTypeEEnum, ContextType.XML_ATTRIBUTE);
-		addEEnumLiteral(contextTypeEEnum, ContextType.XML_ALL);
-		addEEnumLiteral(contextTypeEEnum, ContextType.XML_NEW);
-		addEEnumLiteral(contextTypeEEnum, ContextType.NONE);
-
-		// Create resource
-		createResource(eNS_URI);
-	}
-
-} // PalettePackageImpl
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/ContributePalettePage.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/ContributePalettePage.java
deleted file mode 100755
index cd0d663..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/ContributePalettePage.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.page;
-
-import java.util.List;
-
-import org.eclipse.xwt.tools.ui.palette.Entry;
-import org.eclipse.xwt.tools.ui.palette.Palette;
-import org.eclipse.xwt.tools.ui.palette.contribution.PaletteContribution;
-import org.eclipse.xwt.tools.ui.palette.page.resources.IPaletteResourceProvider;
-import org.eclipse.xwt.tools.ui.palette.root.PaletteRootFactory;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.gef.DefaultEditDomain;
-import org.eclipse.gef.EditDomain;
-import org.eclipse.gef.Tool;
-import org.eclipse.gef.palette.PaletteRoot;
-import org.eclipse.ui.IEditorPart;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public class ContributePalettePage extends CustomPalettePage {
-
-	public ContributePalettePage(IEditorPart editorPart, EditDomain editDomain) {
-		super(new CustomPaletteViewerProvider(editDomain));
-		createPaletteRoot(editorPart, editDomain);
-	}
-
-	private void createPaletteRoot(IEditorPart editorPart, EditDomain editDomain) {
-		if (editorPart == null) {
-			return;
-		}
-		if (editDomain == null) {
-			editDomain = (EditDomain) editorPart.getAdapter(EditDomain.class);
-		}
-		if (editDomain == null) {
-			editDomain = new DefaultEditDomain(editorPart);
-		}
-
-		String editorId = editorPart.getSite().getId();
-		PaletteContribution contribution = PaletteContribution.getContribution(editorId);
-		List<IPaletteResourceProvider> resourceProviders = contribution.getResourceProviders();
-
-		boolean hasInitialiers = contribution.hasInitialiers();
-		if (hasInitialiers) {
-			for (IPaletteResourceProvider rp : resourceProviders) {
-				Resource res = rp.getPaletteResource();
-				if (res == null) {
-					continue;
-				}
-				EList<EObject> contents = res.getContents();
-				for (EObject eObject : contents) {
-					if (!(eObject instanceof Palette)) {
-						continue;
-					}
-					Palette palette = (Palette) eObject;
-					for (Entry entry : palette.getEntries()) {
-						applyInitializer(contribution, entry);
-					}
-				}
-			}
-		}
-
-		Class<? extends Tool> selectionTool = contribution.getSelectionTool();
-		Class<? extends Tool> creationTool = contribution.getCreationTool();
-		PaletteRootFactory factory = new PaletteRootFactory(resourceProviders, creationTool,
-				selectionTool);
-		PaletteRoot paletteRoot = factory.createPaletteRoot();
-		editDomain.setPaletteRoot(paletteRoot);
-
-	}
-
-	private void applyInitializer(PaletteContribution contribution, Entry entry) {
-		contribution.applyInitializer(entry);
-		for (Entry child : entry.getEntries()) {
-			applyInitializer(contribution, child);
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/CustomPalettePage.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/CustomPalettePage.java
deleted file mode 100755
index 7e9aed6..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/CustomPalettePage.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.page;
-
-import org.eclipse.gef.ui.palette.PaletteViewer;
-import org.eclipse.gef.ui.views.palette.PaletteViewerPage;
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class CustomPalettePage extends PaletteViewerPage {
-	private Composite parent;
-
-	public CustomPalettePage(CustomPaletteViewerProvider pvProvider) {
-		super(pvProvider);
-	}
-
-	/**
-	 * @return the PaletteViewer created and displayed by this page
-	 */
-	public PaletteViewer getPaletteViewer() {
-		return viewer;
-	}
-
-	/**
-	 * @see org.eclipse.gef.ui.views.palette.PaletteViewerPage#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createControl(Composite parent) {
-		this.parent = parent;
-		super.createControl(parent);
-	}
-
-	public void reCreate() {
-		if (parent != null && !parent.isDisposed()) {
-			viewer = provider.createPaletteViewer(parent);
-		}
-	}
-
-	public LocalSelectionTransfer getPaletteTransfer() {
-		return ((CustomPaletteViewerProvider) provider).getPaletteTransfer();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/CustomPaletteViewerProvider.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/CustomPaletteViewerProvider.java
deleted file mode 100755
index f68a77d..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/CustomPaletteViewerProvider.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.page;
-
-import org.eclipse.xwt.tools.ui.palette.page.editparts.EditPartFactory;
-import org.eclipse.gef.EditDomain;
-import org.eclipse.gef.ui.palette.PaletteViewer;
-import org.eclipse.gef.ui.palette.PaletteViewerProvider;
-import org.eclipse.gef.ui.parts.PaletteViewerKeyHandler;
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class CustomPaletteViewerProvider extends PaletteViewerProvider {
-
-	private LocalSelectionTransfer paletteTransfer;
-
-	public CustomPaletteViewerProvider(EditDomain graphicalViewerDomain) {
-		super(graphicalViewerDomain);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.ui.palette.PaletteViewerProvider#createPaletteViewer(
-	 * org.eclipse.swt.widgets.Composite)
-	 */
-	public PaletteViewer createPaletteViewer(Composite parent) {
-		PaletteViewer pViewer = new PaletteViewer();
-		pViewer.createControl(parent);
-		configurePaletteViewer(pViewer);
-		hookPaletteViewer(pViewer);
-		return pViewer;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.ui.palette.PaletteViewerProvider#configurePaletteViewer
-	 * (org.eclipse.gef.ui.palette.PaletteViewer)
-	 */
-	protected void configurePaletteViewer(PaletteViewer viewer) {
-		super.configurePaletteViewer(viewer);
-		EditDomain editDomain = getEditDomain();
-		if (editDomain != null) {
-			editDomain.setPaletteViewer(viewer);
-			viewer.setEditDomain(editDomain);
-		}
-		viewer.setKeyHandler(new PaletteViewerKeyHandler(viewer));
-		viewer.setEditPartFactory(new EditPartFactory());
-		viewer.addDragSourceListener(new DragSourceAdapter(viewer, getPaletteTransfer()));
-	}
-
-	/**
-	 * @return the paletteTransfer
-	 */
-	public LocalSelectionTransfer getPaletteTransfer() {
-		if (paletteTransfer == null) {
-			paletteTransfer = LocalSelectionTransfer.getTransfer();
-		}
-		return paletteTransfer;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/DragSourceAdapter.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/DragSourceAdapter.java
deleted file mode 100755
index 8d51896..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/DragSourceAdapter.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.page;
-
-import java.util.List;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartViewer;
-import org.eclipse.gef.dnd.AbstractTransferDragSourceListener;
-import org.eclipse.gef.palette.CombinedTemplateCreationEntry;
-import org.eclipse.gef.palette.PaletteTemplateEntry;
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.dnd.DragSourceEvent;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class DragSourceAdapter extends AbstractTransferDragSourceListener {
-
-	public DragSourceAdapter(EditPartViewer viewer, LocalSelectionTransfer transfer) {
-		super(viewer, transfer);
-	}
-
-	/**
-	 * @see AbstractTransferDragSourceListener#dragFinished(DragSourceEvent)
-	 */
-	public void dragFinished(DragSourceEvent event) {
-		((LocalSelectionTransfer) getTransfer()).setSelection(null);
-	}
-
-	/**
-	 * Get the <i>template</i> from the selected {@link PaletteTemplateEntry}
-	 * and sets it as the event data to be dropped.
-	 * 
-	 * @param event
-	 *            the DragSourceEvent
-	 */
-	public void dragSetData(DragSourceEvent event) {
-		event.data = getTemplate();
-	}
-
-	/**
-	 * Cancels the drag if the selected item does not represent a
-	 * PaletteTemplateEntry.
-	 * 
-	 * @see org.eclipse.swt.dnd.DragSourceListener#dragStart(DragSourceEvent)
-	 */
-	public void dragStart(DragSourceEvent event) {
-		Object template = getTemplate();
-		if (template == null) {
-			event.doit = false;
-			return;
-		}
-		IStructuredSelection selection = new StructuredSelection(template);
-		((LocalSelectionTransfer) getTransfer()).setSelection(selection);
-	}
-
-	/**
-	 * A helper method that returns <code>null</code> or the <i>template</i>
-	 * Object from the currently selected EditPart.
-	 * 
-	 * @return the template
-	 */
-	protected Object getTemplate() {
-		List selection = getViewer().getSelectedEditParts();
-		if (selection.size() == 1) {
-			EditPart editpart = (EditPart) getViewer().getSelectedEditParts().get(0);
-			Object model = editpart.getModel();
-			if (model instanceof PaletteTemplateEntry)
-				return ((PaletteTemplateEntry) model).getTemplate();
-			if (model instanceof CombinedTemplateCreationEntry)
-				return ((CombinedTemplateCreationEntry) model).getTemplate();
-		}
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/editparts/EditPartFactory.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/editparts/EditPartFactory.java
deleted file mode 100755
index e5623df..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/editparts/EditPartFactory.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.page.editparts;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.palette.PaletteDrawer;
-import org.eclipse.gef.ui.palette.PaletteEditPartFactory;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class EditPartFactory extends PaletteEditPartFactory {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.ui.palette.PaletteEditPartFactory#createDrawerEditPart
-	 * (org.eclipse.gef.EditPart, java.lang.Object)
-	 */
-	protected EditPart createDrawerEditPart(EditPart parentEditPart, Object model) {
-		return new PaletteDrawerEditPart((PaletteDrawer) model);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/editparts/PaletteDrawerEditPart.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/editparts/PaletteDrawerEditPart.java
deleted file mode 100755
index e166411..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/editparts/PaletteDrawerEditPart.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.page.editparts;
-
-import org.eclipse.draw2d.FocusEvent;
-import org.eclipse.draw2d.FocusListener;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.xwt.tools.ui.palette.page.editparts.figures.PaletteDrawerFigure;
-import org.eclipse.gef.internal.ui.palette.editparts.DrawerEditPart;
-import org.eclipse.gef.palette.PaletteDrawer;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-@SuppressWarnings("restriction")
-public class PaletteDrawerEditPart extends DrawerEditPart {
-
-	/**
-	 * @param drawer
-	 */
-	public PaletteDrawerEditPart(PaletteDrawer drawer) {
-		super(drawer);
-	}
-
-	public IFigure createFigure() {
-		if (getParent() instanceof PaletteDrawerEditPart) {
-			PaletteDrawerFigure fig = new PaletteDrawerFigure(getViewer().getControl());
-			fig.setExpanded(getDrawer().isInitiallyOpen());
-			fig.setPinned(getDrawer().isInitiallyPinned());
-			fig.getCollapseToggle().addFocusListener(new FocusListener.Stub() {
-				public void focusGained(FocusEvent fe) {
-					getViewer().select(PaletteDrawerEditPart.this);
-				}
-			});
-			return fig;
-		}
-		return super.createFigure();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/editparts/figures/PaletteDrawerFigure.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/editparts/figures/PaletteDrawerFigure.java
deleted file mode 100755
index fb3e5bb..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/editparts/figures/PaletteDrawerFigure.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.page.editparts.figures;
-
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.internal.ui.palette.editparts.DrawerFigure;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class PaletteDrawerFigure extends DrawerFigure {
-
-	private static final int X_OFFSET = 17;
-
-	/**
-	 * @param control
-	 */
-	public PaletteDrawerFigure(Control control) {
-		super(control);
-	}
-
-	public Rectangle getBounds() {
-		return new Rectangle(bounds.x + X_OFFSET, bounds.y, bounds.width, bounds.height);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/EntryContentProvider.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/EntryContentProvider.java
deleted file mode 100755
index fbd0fe9..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/EntryContentProvider.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.page.resources;
-
-import java.util.ArrayList;
-
-import org.eclipse.xwt.tools.ui.palette.Entry;
-import org.eclipse.xwt.tools.ui.palette.Palette;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-
-/**
- * entry content provider class (tree structure)
- * 
- * 
- * @author jliu (jin.liu@soyatec.com)
- */
-public class EntryContentProvider implements IPaletteContentProvider {
-
-	static Object[] EMPTY = new Object[0];
-
-	public Object[] getChildren(Object parent) {
-		EList<EObject> elements = null;
-		if (parent instanceof EObject) {
-			EObject object = (EObject) parent;
-			elements = object.eContents();
-		} else if (parent instanceof Resource) {
-			Resource resource = (Resource) parent;
-			EList<EObject> contents = resource.getContents();
-			if (contents.size() > 0) {
-				Object element = contents.get(0);
-				if (element instanceof Palette) {
-					Palette palette = (Palette) element;
-					elements = palette.eContents();
-				}
-			}
-		}
-
-		if (elements != null) {
-			ArrayList<EObject> arrayList = new ArrayList<EObject>();
-			for (EObject object : elements) {
-				if (object instanceof Entry) {
-					arrayList.add(object);
-				}
-			}
-			return arrayList.toArray();
-		}
-		return EMPTY;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/EntryLabelProvider.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/EntryLabelProvider.java
deleted file mode 100755
index acd78c2..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/EntryLabelProvider.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.page.resources;
-
-import org.eclipse.xwt.tools.ui.palette.Entry;
-import org.eclipse.xwt.tools.ui.palette.tools.ImageTools;
-import org.eclipse.jface.resource.ImageDescriptor;
-
-/**
- * entry label provider class (tree structure)
- * 
- * 
- * @author jliu (jin.liu@soyatec.com)
- */
-public class EntryLabelProvider implements IPaletteLabelProvider {
-
-	public String getSimpleName(Entry entry) {
-		String name = entry.getName();
-		if (name == null) {
-			return null;
-		}
-		int index = name.lastIndexOf('.');
-		if (index != -1) {
-			name = name.substring(index + 1);
-		}
-		return name;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.soyatec.tools.palette.page.resources.IPaletteLabelProvider#getContent
-	 * (java.lang.Object)
-	 */
-	public String getContent(Object obj) {
-		if (obj instanceof Entry) {
-			return ((Entry) obj).getContent();
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.soyatec.tools.palette.page.resources.IPaletteLabelProvider#getLargeIcon
-	 * (java.lang.Object)
-	 */
-	public ImageDescriptor getLargeIcon(Object obj) {
-		if (obj instanceof Entry) {
-			String largeIcon = ((Entry) obj).getLargeIcon();
-			if (largeIcon != null && largeIcon.trim().length() > 0) {
-				return ImageTools.getImageDescriptor(largeIcon);
-			}
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.soyatec.tools.palette.page.resources.IPaletteLabelProvider#getName
-	 * (java.lang.Object)
-	 */
-	public String getName(Object obj) {
-		if (obj instanceof Entry) {
-			return getSimpleName((Entry) obj);
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.soyatec.tools.palette.page.resources.IPaletteLabelProvider#getSmallIcon
-	 * (java.lang.Object)
-	 */
-	public ImageDescriptor getSmallIcon(Object obj) {
-		if (obj instanceof Entry) {
-			String icon = ((Entry) obj).getIcon();
-			if (icon != null && icon.trim().length() > 0) {
-				return ImageTools.getImageDescriptor(icon);
-			}
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.soyatec.tools.palette.page.resources.IPaletteLabelProvider#getTooltip
-	 * (java.lang.Object)
-	 */
-	public String getToolTip(Object obj) {
-		if (obj instanceof Entry) {
-			return ((Entry) obj).getToolTip();
-		}
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/EntryResourceProvider.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/EntryResourceProvider.java
deleted file mode 100755
index 019692b..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/EntryResourceProvider.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.page.resources;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public abstract class EntryResourceProvider implements IPaletteResourceProvider {
-
-	public IPaletteContentProvider getContentProvider() {
-		return new EntryContentProvider();
-	}
-
-	public IPaletteLabelProvider getLabelProvider() {
-		return new EntryLabelProvider();
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/ExtensionRegistry.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/ExtensionRegistry.java
deleted file mode 100755
index 8a595c2..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/ExtensionRegistry.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.page.resources;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.ui.IEditorPart;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ExtensionRegistry {
-	public static final String EXTENSION_ID = "org.eclipse.xwt.tools.ui.palette.resourceProvider";
-
-	public static final String PROVIDER = "provider";
-	public static final String RESOURCE = "resource";
-
-	public static final String EDITOR_ID = "editorId";
-	public static final String CLASS = "class";
-	public static final String URI = "uri";
-
-	private static List<IPaletteResourceProvider> registry = new ArrayList<IPaletteResourceProvider>();
-
-	public static List<IPaletteResourceProvider> allResourceExtensions(IEditorPart editorPart) {
-		String id = editorPart.getSite().getId();
-
-		List<IPaletteResourceProvider> providers = new ArrayList<IPaletteResourceProvider>();
-		IConfigurationElement[] configurationElements = Platform.getExtensionRegistry()
-				.getConfigurationElementsFor(EXTENSION_ID);
-		for (IConfigurationElement element : configurationElements) {
-			String editorId = element.getAttribute(EDITOR_ID);
-			if (id == null || id.equals(editorId)) {
-				if (PROVIDER.equals(element.getName())) {
-					try {
-						Object executable = element.createExecutableExtension(CLASS);
-						if (executable instanceof IPaletteResourceProvider) {
-							providers.add((IPaletteResourceProvider) executable);
-						}
-					} catch (CoreException e) {
-					}
-				} else if (RESOURCE.equals(element.getName())) {
-					String uri = element.getAttribute(URI);
-
-					String npId = element.getNamespaceIdentifier();
-
-					ResourceContentProvider provider = new ResourceContentProvider(uri, npId);
-					providers.add(provider);
-				}
-			}
-		}
-		providers.addAll(registry);
-		return providers;
-	}
-
-	public static void registerPaletteResourceProvider(IPaletteResourceProvider provider) {
-		registry.add(provider);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/IPaletteContentProvider.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/IPaletteContentProvider.java
deleted file mode 100755
index a659505..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/IPaletteContentProvider.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.page.resources;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public interface IPaletteContentProvider {
-
-	Object[] getChildren(Object parent);
-}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/IPaletteLabelProvider.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/IPaletteLabelProvider.java
deleted file mode 100755
index 05ed848..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/IPaletteLabelProvider.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.page.resources;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public interface IPaletteLabelProvider {
-
-	ImageDescriptor getSmallIcon(Object obj);
-
-	ImageDescriptor getLargeIcon(Object obj);
-
-	String getToolTip(Object obj);
-
-	String getName(Object obj);
-
-	String getContent(Object obj);
-}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/IPaletteResourceProvider.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/IPaletteResourceProvider.java
deleted file mode 100755
index 8c620e5..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/IPaletteResourceProvider.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.page.resources;
-
-import org.eclipse.emf.ecore.resource.Resource;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public interface IPaletteResourceProvider {
-
-	Resource getPaletteResource();
-
-	IPaletteContentProvider getContentProvider();
-
-	IPaletteLabelProvider getLabelProvider();
-}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/ResourceContentProvider.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/ResourceContentProvider.java
deleted file mode 100755
index 2e477ea..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/ResourceContentProvider.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.page.resources;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-
-public class ResourceContentProvider implements IPaletteResourceProvider {
-	protected Resource resource;
-
-	public ResourceContentProvider(String resourceUri, String bundleId) {
-		ResourceSet resourceSet = new ResourceSetImpl();
-		URI uri = URI.createURI(resourceUri);
-		if (uri.isRelative()) {
-			uri = URI.createPlatformPluginURI("/" + bundleId + "/" + resourceUri, true);
-		}
-		resource = resourceSet.getResource(uri, true);
-	}
-
-	public Resource getPaletteResource() {
-		return resource;
-	}
-
-	public IPaletteContentProvider getContentProvider() {
-		return new EntryContentProvider();
-	}
-
-	public IPaletteLabelProvider getLabelProvider() {
-		return new EntryLabelProvider();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/URIResourceProvider.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/URIResourceProvider.java
deleted file mode 100755
index 5ebb166..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/URIResourceProvider.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.page.resources;
-
-import org.eclipse.xwt.tools.ui.palette.impl.PalettePackageImpl;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public abstract class URIResourceProvider extends EntryResourceProvider {
-	private Resource resource;
-
-	public Resource getPaletteResource() {
-		if (resource == null) {
-			URI input = getPaletteResourceURI();
-			if (input != null) {
-				resource = loadResource(input);
-			}
-		}
-		return resource;
-	}
-
-	private Resource loadResource(URI input) {
-		PalettePackageImpl.init();
-		ResourceSet rs = new ResourceSetImpl();
-		Resource result = rs.getResource(input, true);
-		return result;
-	}
-
-	protected abstract URI getPaletteResourceURI();
-
-}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/request/EntryCreationFactory.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/request/EntryCreationFactory.java
deleted file mode 100755
index 6d325e7..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/request/EntryCreationFactory.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.request;
-
-import org.eclipse.xwt.tools.ui.palette.Entry;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.gef.requests.CreationFactory;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class EntryCreationFactory implements CreationFactory {
-
-	private Entry entry;
-
-	/**
-	 * 
-	 */
-	public EntryCreationFactory(Entry entry) {
-		this.entry = entry;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.requests.CreationFactory#getNewObject()
-	 */
-	public Object getNewObject() {
-		return entry;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.requests.CreationFactory#getObjectType()
-	 */
-	public Object getObjectType() {
-		if (entry == null) {
-			return null;
-		}
-		EClass type = entry.getType();
-		if (type != null) {
-			return type;
-		}
-		return entry.getScope();
-	}
-
-	public Entry getEntry() {
-		return entry;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/root/PaletteDrawerEx.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/root/PaletteDrawerEx.java
deleted file mode 100755
index c4a8a7f..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/root/PaletteDrawerEx.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.root;
-
-import org.eclipse.gef.palette.PaletteDrawer;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class PaletteDrawerEx extends PaletteDrawer {
-
-	/**
-	 * @param label
-	 */
-	public PaletteDrawerEx(String label) {
-		super(label);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.palette.PaletteDrawer#acceptsType(java.lang.Object)
-	 */
-	public boolean acceptsType(Object type) {
-		return true;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/root/PaletteRootFactory.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/root/PaletteRootFactory.java
deleted file mode 100755
index 0befce1..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/root/PaletteRootFactory.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.root;
-
-import java.util.Collection;
-
-import org.eclipse.xwt.tools.ui.palette.Entry;
-import org.eclipse.xwt.tools.ui.palette.page.resources.IPaletteContentProvider;
-import org.eclipse.xwt.tools.ui.palette.page.resources.IPaletteLabelProvider;
-import org.eclipse.xwt.tools.ui.palette.page.resources.IPaletteResourceProvider;
-import org.eclipse.xwt.tools.ui.palette.request.EntryCreationFactory;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.gef.Tool;
-import org.eclipse.gef.palette.CombinedTemplateCreationEntry;
-import org.eclipse.gef.palette.MarqueeToolEntry;
-import org.eclipse.gef.palette.PaletteContainer;
-import org.eclipse.gef.palette.PaletteDrawer;
-import org.eclipse.gef.palette.PaletteGroup;
-import org.eclipse.gef.palette.PaletteRoot;
-import org.eclipse.gef.palette.SelectionToolEntry;
-import org.eclipse.gef.tools.AbstractTool;
-import org.eclipse.jface.resource.ImageDescriptor;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class PaletteRootFactory {
-
-	private Collection<IPaletteResourceProvider> resourceProviders;
-	private Class<? extends Tool> creationToolClass;
-	private Class<? extends Tool> selectionToolClass;
-
-	public PaletteRootFactory(Collection<IPaletteResourceProvider> resourceProviders,
-			Class<? extends Tool> creationToolClass, Class<? extends Tool> selectionToolClass) {
-		this.resourceProviders = resourceProviders;
-		this.creationToolClass = creationToolClass;
-		this.selectionToolClass = selectionToolClass;
-	}
-
-	public PaletteRoot createPaletteRoot() {
-		PaletteRoot palette = new PaletteRoot();
-		if (resourceProviders == null) {
-			return palette;
-		}
-		{// create selection group.
-			PaletteGroup paletteGroup = new PaletteGroup("Selection Group");
-
-			SelectionToolEntry selectionToolEntry = new SelectionToolEntry();
-			paletteGroup.add(selectionToolEntry);
-			if (selectionToolClass != null) {
-				selectionToolEntry.setToolClass(selectionToolClass);
-			}
-
-			MarqueeToolEntry marqueeToolEntry = new MarqueeToolEntry();
-			marqueeToolEntry.setToolProperty(AbstractTool.PROPERTY_UNLOAD_WHEN_FINISHED, true);
-			paletteGroup.add(marqueeToolEntry);
-
-			palette.add(paletteGroup);
-			palette.setDefaultEntry(selectionToolEntry);
-		}
-
-		for (IPaletteResourceProvider resourceProvider : resourceProviders) {
-			Resource resource = resourceProvider.getPaletteResource();
-			if (resource != null) {
-				PaletteContainer rootDrawer = createRootDrawer(resource, resourceProvider);
-				palette.addAll(rootDrawer.getChildren());
-			}
-		}
-		return palette;
-	}
-
-	private PaletteContainer createRootDrawer(Resource resource, IPaletteResourceProvider provider) {
-		PaletteDrawer rootDrawer = createPaletteDrawer("Root");
-		IPaletteContentProvider contentProvider = provider.getContentProvider();
-		IPaletteLabelProvider labelProvider = provider.getLabelProvider();
-		createPaletteStructure(rootDrawer, contentProvider, labelProvider, resource);
-		return rootDrawer;
-	}
-
-	private void createPaletteStructure(PaletteDrawer parent,
-			IPaletteContentProvider contentProvider, IPaletteLabelProvider labelProvider,
-			Object source) {
-		if (parent == null || contentProvider == null || labelProvider == null || source == null) {
-			return;
-		}
-		Object[] children = contentProvider.getChildren(source);
-		String name = labelProvider.getName(source);
-		String description = labelProvider.getToolTip(source);
-		ImageDescriptor iconSmall = labelProvider.getSmallIcon(source);
-		ImageDescriptor iconLarge = labelProvider.getLargeIcon(source);
-
-		if (name != null && source instanceof Entry) {
-			if (children.length == 0) {
-				EntryCreationFactory creationFactory = new EntryCreationFactory((Entry) source);
-				CombinedTemplateCreationEntry component = new CombinedTemplateCreationEntry(name,
-						description, source, creationFactory, iconSmall, iconLarge);
-				if (creationToolClass != null) {
-					component.setToolClass(creationToolClass);
-				}
-				parent.add(component);
-			} else {
-				PaletteDrawer groupDrawer = createPaletteDrawer(name);
-				groupDrawer.setSmallIcon(iconSmall);
-				groupDrawer.setLargeIcon(iconLarge);
-				groupDrawer.setDescription(description);
-				parent.add(groupDrawer);
-				groupDrawer.setParent(parent);
-				parent = groupDrawer;
-			}
-		}
-		// Create single one firstly.
-		for (Object child : children) {
-			Object[] childNodes = contentProvider.getChildren(child);
-			if (childNodes == null || childNodes.length == 0) {
-				createPaletteStructure(parent, contentProvider, labelProvider, child);
-			}
-		}
-		for (Object child : children) {
-			Object[] childNodes = contentProvider.getChildren(child);
-			if (childNodes != null && childNodes.length != 0) {
-				createPaletteStructure(parent, contentProvider, labelProvider, child);
-			}
-		}
-	}
-
-	/**
-	 * Create a default Drawer.
-	 */
-	private PaletteDrawer createPaletteDrawer(String name) {
-		PaletteDrawer componentsDrawer = new PaletteDrawerEx(name);
-		componentsDrawer.setInitialState(PaletteDrawer.INITIAL_STATE_CLOSED);
-		return componentsDrawer;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/EntryHelper.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/EntryHelper.java
deleted file mode 100755
index c1dfac5..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/EntryHelper.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.tools;
-
-import org.eclipse.xwt.tools.ui.palette.Entry;
-import org.eclipse.xwt.tools.ui.palette.Initializer;
-import org.eclipse.gef.requests.CreateRequest;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public class EntryHelper {
-
-	public static Object getNewObject(Entry entry) {
-		if (entry == null) {
-			return null;
-		}
-		Initializer initializer = entry.getInitializer();
-		if (initializer != null) {
-			return initializer.parse(entry);
-		}
-		return null;
-	}
-
-	public static Object getNewObject(CreateRequest createReq) {
-		if (createReq == null) {
-			return null;
-		}
-		Object newObject = createReq.getNewObject();
-		if (newObject instanceof Entry) {
-			Object creatingObj = getNewObject((Entry) newObject);
-			if (creatingObj != null) {
-				newObject = creatingObj;
-			}
-		}
-		return newObject;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/ImageTools.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/ImageTools.java
deleted file mode 100755
index f4fc1db..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/ImageTools.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.tools;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class ImageTools {
-
-	public static ImageDescriptor getImageDescriptor(String imagePath) {
-		if (imagePath == null) {
-			return null;
-		}
-		if (imagePath.startsWith("platform:/plugin/")) {
-			imagePath = imagePath.substring("platform:/plugin/".length());
-			int index = imagePath.indexOf("/");
-			if (index != -1) {
-				String pluginId = imagePath.substring(0, index);
-				imagePath = imagePath.substring(index + 1);
-				return AbstractUIPlugin.imageDescriptorFromPlugin(pluginId, imagePath);
-			}
-		}
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/PaletteCreateRequest.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/PaletteCreateRequest.java
deleted file mode 100755
index 4bcbad6..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/PaletteCreateRequest.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.tools;
-
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.gef.requests.CreationFactory;
-
-public class PaletteCreateRequest extends CreateRequest {
-	public CreationFactory getFactory() {
-		return super.getFactory();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/PaletteCreationTool.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/PaletteCreationTool.java
deleted file mode 100755
index 7ec06a1..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/PaletteCreationTool.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.tools;
-
-import org.eclipse.gef.Request;
-import org.eclipse.gef.requests.CreateRequest;
-import org.eclipse.gef.tools.CreationTool;
-
-/**
- * @author Jin Liu(jin.liu@soyatec.com)
- */
-public class PaletteCreationTool extends CreationTool {
-	@Override
-	protected Request createTargetRequest() {
-		CreateRequest request = new PaletteCreateRequest();
-		request.setFactory(getFactory());
-		return request;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/PaletteTools.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/PaletteTools.java
deleted file mode 100755
index 625d8d8..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/PaletteTools.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.tools;
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.xwt.tools.ui.palette.page.CustomPalettePage;
-import org.eclipse.xwt.tools.ui.palette.page.CustomPaletteViewerProvider;
-import org.eclipse.xwt.tools.ui.palette.page.resources.ExtensionRegistry;
-import org.eclipse.xwt.tools.ui.palette.page.resources.IPaletteResourceProvider;
-import org.eclipse.xwt.tools.ui.palette.root.PaletteRootFactory;
-import org.eclipse.gef.DefaultEditDomain;
-import org.eclipse.gef.EditDomain;
-import org.eclipse.gef.Tool;
-import org.eclipse.gef.palette.PaletteRoot;
-import org.eclipse.ui.IEditorPart;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class PaletteTools {
-
-	public static CustomPalettePage createPalettePage(IEditorPart editorPart,
-			IPaletteResourceProvider resourceProvider, Class<? extends Tool> creationToolClass,
-			Class<? extends Tool> selectionToolClass) {
-		EditDomain editDomain = (EditDomain) editorPart.getAdapter(EditDomain.class);
-		if (editDomain == null) {
-			editDomain = new DefaultEditDomain(editorPart);
-		}
-		List<IPaletteResourceProvider> resourceProviders = ExtensionRegistry
-				.allResourceExtensions(editorPart);
-		if (resourceProvider != null) {
-			if (!resourceProviders.isEmpty()) {
-				resourceProviders.add(0, resourceProvider);
-			} else {
-				resourceProviders.add(resourceProvider);
-			}
-		}
-
-		PaletteRoot paletteRoot = createPaletteRoot(resourceProviders, creationToolClass,
-				selectionToolClass);
-		if (paletteRoot != null) {
-			editDomain.setPaletteRoot(paletteRoot);
-		}
-		CustomPaletteViewerProvider provider = new CustomPaletteViewerProvider(editDomain);
-		return new CustomPalettePage(provider);
-	}
-
-	private static PaletteRoot createPaletteRoot(
-			Collection<IPaletteResourceProvider> resourceProviders,
-			Class<? extends Tool> createToolClass, Class<? extends Tool> selectionToolClass) {
-		PaletteRootFactory factory = new PaletteRootFactory(resourceProviders, createToolClass,
-				selectionToolClass);
-		return factory.createPaletteRoot();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/util/PaletteAdapterFactory.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/util/PaletteAdapterFactory.java
deleted file mode 100755
index 628ee43..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/util/PaletteAdapterFactory.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.util;
-
-import org.eclipse.xwt.tools.ui.palette.*;
-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;
-
-/**
- * <!-- 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.xwt.tools.ui.palette.PalettePackage
- * @generated
- */
-public class PaletteAdapterFactory extends AdapterFactoryImpl {
-	/**
-	 * The cached model package.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected static PalettePackage modelPackage;
-
-	/**
-	 * Creates an instance of the adapter factory.
-	 * <!-- begin-user-doc --> <!--
-	 * end-user-doc -->
-	 * @generated
-	 */
-	public PaletteAdapterFactory() {
-		if (modelPackage == null) {
-			modelPackage = PalettePackage.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 PaletteSwitch<Adapter> modelSwitch = new PaletteSwitch<Adapter>() {
-			@Override
-			public Adapter casePalette(Palette object) {
-				return createPaletteAdapter();
-			}
-			@Override
-			public Adapter caseEntry(Entry object) {
-				return createEntryAdapter();
-			}
-			@Override
-			public Adapter caseInitializer(Initializer object) {
-				return createInitializerAdapter();
-			}
-			@Override
-			public Adapter caseCompoundInitializer(CompoundInitializer object) {
-				return createCompoundInitializerAdapter();
-			}
-			@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.xwt.tools.ui.palette.Palette <em>Palette</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.xwt.tools.ui.palette.Palette
-	 * @generated
-	 */
-	public Adapter createPaletteAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '
-	 * {@link org.eclipse.xwt.tools.ui.palette.Entry <em>Entry</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.xwt.tools.ui.palette.Entry
-	 * @generated
-	 */
-	public Adapter createEntryAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.xwt.tools.ui.palette.Initializer <em>Initializer</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.xwt.tools.ui.palette.Initializer
-	 * @generated
-	 */
-	public Adapter createInitializerAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.xwt.tools.ui.palette.CompoundInitializer <em>Compound Initializer</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.xwt.tools.ui.palette.CompoundInitializer
-	 * @generated
-	 */
-	public Adapter createCompoundInitializerAdapter() {
-		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;
-	}
-
-} // PaletteAdapterFactory
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/util/PaletteSwitch.java b/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/util/PaletteSwitch.java
deleted file mode 100755
index 462a7ab..0000000
--- a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/util/PaletteSwitch.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.palette.util;
-
-import java.util.List;
-
-import org.eclipse.xwt.tools.ui.palette.*;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- 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.xwt.tools.ui.palette.PalettePackage
- * @generated
- */
-public class PaletteSwitch<T> {
-	/**
-	 * The cached model package
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected static PalettePackage modelPackage;
-
-	/**
-	 * Creates an instance of the switch.
-	 * <!-- begin-user-doc --> <!--
-	 * end-user-doc -->
-	 * @generated
-	 */
-	public PaletteSwitch() {
-		if (modelPackage == null) {
-			modelPackage = PalettePackage.eINSTANCE;
-		}
-	}
-
-	/**
-	 * 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
-	 */
-	public T doSwitch(EObject theEObject) {
-		return doSwitch(theEObject.eClass(), theEObject);
-	}
-
-	/**
-	 * 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
-	 */
-	protected T doSwitch(EClass theEClass, EObject theEObject) {
-		if (theEClass.eContainer() == modelPackage) {
-			return doSwitch(theEClass.getClassifierID(), theEObject);
-		}
-		else {
-			List<EClass> eSuperTypes = theEClass.getESuperTypes();
-			return
-				eSuperTypes.isEmpty() ?
-					defaultCase(theEObject) :
-					doSwitch(eSuperTypes.get(0), theEObject);
-		}
-	}
-
-	/**
-	 * 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
-	 */
-	protected T doSwitch(int classifierID, EObject theEObject) {
-		switch (classifierID) {
-			case PalettePackage.PALETTE: {
-				Palette palette = (Palette)theEObject;
-				T result = casePalette(palette);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case PalettePackage.ENTRY: {
-				Entry entry = (Entry)theEObject;
-				T result = caseEntry(entry);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case PalettePackage.INITIALIZER: {
-				Initializer initializer = (Initializer)theEObject;
-				T result = caseInitializer(initializer);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case PalettePackage.COMPOUND_INITIALIZER: {
-				CompoundInitializer compoundInitializer = (CompoundInitializer)theEObject;
-				T result = caseCompoundInitializer(compoundInitializer);
-				if (result == null) result = caseInitializer(compoundInitializer);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			default: return defaultCase(theEObject);
-		}
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Palette</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>Palette</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T casePalette(Palette object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Entry</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>Entry</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEntry(Entry object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Initializer</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>Initializer</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseInitializer(Initializer object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Compound Initializer</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>Compound Initializer</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseCompoundInitializer(CompoundInitializer 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
-	 */
-	public T defaultCase(EObject object) {
-		return null;
-	}
-
-} // PaletteSwitch
diff --git a/org.eclipse.xwt.tools.ui.palette/templates/Header.javajetinc b/org.eclipse.xwt.tools.ui.palette/templates/Header.javajetinc
deleted file mode 100755
index 7035845..0000000
--- a/org.eclipse.xwt.tools.ui.palette/templates/Header.javajetinc
+++ /dev/null
@@ -1,10 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *
- * All rights reserved. This program and the accompanying materials            *
- * are made available under the terms of the Eclipse Public License v1.0       *
- * which accompanies this distribution, and is available at                    *
- * http://www.eclipse.org/legal/epl-v10.html                                   *
- *                                                                             *
- * Contributors:                                                               *
- *     Soyatec - initial API and implementation                                *
- *******************************************************************************/
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.palette/templates/emf-merge.xml b/org.eclipse.xwt.tools.ui.palette/templates/emf-merge.xml
deleted file mode 100755
index 04737e9..0000000
--- a/org.eclipse.xwt.tools.ui.palette/templates/emf-merge.xml
+++ /dev/null
@@ -1,254 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?<!--
-    Copyright (c) 2010 IBM Corporation and others.
-    All rights reserved. This program and the accompanying materials
-    are made available under the terms of the Eclipse Public License v1.0
-    which accompanies this distribution, and is available at
-    http://www.eclipse.org/legal/epl-v10.html
-   
-    Contributors:
-        IBM Corporation - initial API and implementation
- -->
-><!--
-    Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
-    All rights reserved. This program and the accompanying materials
-    are made available under the terms of the Eclipse Public License v1.0
-    which accompanies this distribution, and is available at
-    http://www.eclipse.org/legal/epl-v10.html
-   
-    Contributors:
-        Soyatec - initial API and implementation
- -->
-
-<merge:options 
-  indent="  "  
-  braceStyle="matching"  
-  redirect="Gen"
-  block="\s*@\s*generated\s*NOT\s*(?:\n\r?|\r\n?)"
-  noImport="\s*//\s*import\s+([\w.*]*)\s*;\s*(?:\n\r?|\r\n?)"
-  xmlns:merge="http://www.eclipse.org/org/eclipse/emf/codegen/jmerge/Options">
-
-<!-- Tabbed Standard
-
-  indent="&#x9;"  
-  braceStyle="standard"  
-
--->
-
-  <!-- this accepts both new and old style markup. -->
-
-  <merge:dictionaryPattern
-    name="modelMembers" 
-    select="Member/getComment" 
-    match="@\s*(model)"/>
-
-  <merge:dictionaryPattern
-    name="generatedUnmodifiableMembers" 
-    select="Member/getComment" 
-    match="@\s*(gen)erated\s*(This field/method[^(?:\n\r?|\r\n?)]*)*(?:\n\r?|\r\n?)"/>
-
-  <merge:dictionaryPattern
-    name="generatedModifiableMembers" 
-    select="Member/getComment" 
-    match="@\s*generated\s*(modifiable)\s*(?:\n\r?|\r\n?)"/>
-
-  <!-- This is like the above, but for backward compatibility -->
-  <merge:dictionaryPattern
-    name="generatedLastGenMembers" 
-    select="Member/getComment" 
-    match="@\s*(lastgen).*(?:\n\r?|\r\n?)"/>
-
-  <merge:dictionaryPattern
-    name="orderedMembers" 
-    select="Member/getComment" 
-    match="@\s*(ordered)\s*(?:\n\r?|\r\n?)"/>
-
-  <!-- Only push Annotations for the Members marked by gen-->
-  <merge:push targetParentMarkup="^gen$" select="Annotation"/>
-
-  <merge:pull 
-    sourceMarkup="^modifiable$"
-    sourceGet="Member/getComment"
-    sourceTransfer="(\s*&lt;!--\s*begin-user-doc.*?end-user-doc\s*-->\s*)(?:\n\r?|\r\n?)"
-    targetMarkup="^modifiable$"
-    targetPut="Member/setComment"/>
-  <merge:pull 
-    sourceMarkup="^gen$"
-    sourceGet="Member/getComment"
-    sourceTransfer="(\s*&lt;!--\s*begin-user-doc.*?end-user-doc\s*-->\s*)(?:\n\r?|\r\n?)"
-    targetMarkup="^gen$"
-    targetPut="Member/setComment"/>
-  <merge:pull 
-    sourceGet="Member/getFlags"
-    targetMarkup="^gen$"
-    equals="Member/getName"
-    targetPut="Member/setFlags"/>
-
-  <merge:pull 
-    sourceMarkup="^gen$"
-    sourceGet="AbstractType/getComment"
-    sourceTransfer="(\s*&lt;!--\s*begin-user-doc.*?end-user-doc\s*-->\s*)(?:\n\r?|\r\n?)"
-    targetMarkup="^modifiable$"
-    targetPut="AbstractType/setComment"/>
-
-  <merge:pull 
-    sourceGet="Type/getTypeParameters"
-    targetMarkup="^lastgen$|^gen$|^modifiable$|^model$"
-    targetPut="Type/setTypeParameters"/>
-  <merge:pull 
-    sourceGet="Type/getSuperclass"
-    targetMarkup="^lastgen$|^gen$|^modifiable$|^model$"
-    targetPut="Type/setSuperclass"/>
-  <merge:pull 
-    sourceGet="Type/getSuperInterfaces"
-    sourceTransfer="(\s*@\s*extends|\s*@\s*implements)(.*?)(?:&lt;!--|(?:\n\r?|\r\n?))"
-    targetMarkup="^lastgen$|^gen$|^modifiable$|^model$"
-    targetPut="Type/addSuperInterface"/>
-
-  <merge:pull 
-    sourceGet="Enum/getSuperInterfaces"
-    sourceTransfer="(\s*@\s*extends|\s*@\s*implements)(.*?)(?:&lt;!--|(?:\n\r?|\r\n?))"
-    targetMarkup="^lastgen$|^gen$|^modifiable$|^model$"
-    targetPut="Enum/addSuperInterface"/>
-
-  <merge:pull 
-    sourceGet="EnumConstant/getArguments"
-    targetMarkup="^lastgen$|^gen$|^modifiable$|^model$"
-    targetPut="EnumConstant/setArguments"/>
-  <merge:pull 
-    sourceGet="EnumConstant/getBody"
-    targetMarkup="^lastgen$|^gen$|^modifiable$|^model$$"
-    targetPut="EnumConstant/setBody"/>
-
-  <merge:pull 
-    sourceGet="AnnotationTypeMember/getType"
-    targetMarkup="^gen$"
-    targetPut="AnnotationTypeMember/setType"/>
-  <merge:pull 
-    sourceGet="AnnotationTypeMember/getDefaultValue"
-    targetMarkup="^gen$"
-    targetPut="AnnotationTypeMember/setDefaultValue"/>
-
-  <merge:pull 
-    sourceGet="Initializer/getBody"
-    targetMarkup="^gen$"
-    targetPut="Initializer/setBody"/>
-
-  <merge:pull 
-    sourceGet="Field/getType"
-    targetMarkup="^gen$"
-    targetPut="Field/setType"/>
-  <merge:pull 
-    sourceGet="Field/getInitializer"
-    targetMarkup="^gen$"
-    targetPut="Field/setInitializer"/>
-
-  <merge:pull 
-    sourceGet="Method/getTypeParameters"
-    targetMarkup="^gen$"
-    targetPut="Method/setTypeParameters"/>
-  <merge:pull 
-    sourceGet="Method/getReturnType"
-    targetMarkup="^gen$|^model$"
-    targetPut="Method/setReturnType"/>
-  <merge:pull 
-    sourceGet="Method/getParameters"
-    targetMarkup="^gen$"
-    targetPut="Method/setParameters"/>
-  <merge:pull 
-    sourceGet="Method/getBody"
-    targetMarkup="^gen$"
-    targetPut="Method/setBody"/>
-  <merge:pull 
-    sourceGet="Method/getExceptions"
-    targetMarkup="^gen$"
-    targetPut="Method/addException"/>
-
-  <merge:sweep markup="^gen$" select="Member"/>
-  <merge:sweep markup="^org.eclipse.emf.ecore.EMetaObject$" select="Import"/>
-  <merge:sweep markup="^org.eclipse.emf.ecore.impl.EMetaObjectImpl$" select="Import"/>
-  <merge:sweep markup="^org.eclipse.emf.ecore.util.EObjectCompositeEList$" select="Import"/>
-  <merge:sweep markup="^org.eclipse.emf.ecore.util.EObjectCompositeWithInverseEList$" select="Import"/>
-  <merge:sweep markup="^org.eclipse.emf.common.util.AbstractEnumerator$" select="Import"/>
-
-  <merge:sort markup="^ordered$" select="Field"/>
-  <merge:sort markup="^ordered$" select="EnumConstant"/>
-
-<!--Generate Header always.-->
-  <merge:pull 
-      sourceGet="CompilationUnit/getHeader"
-      targetPut="CompilationUnit/setHeader"/>
-<!-- Basic Rules
-
-
-    <merge:pull 
-      sourceGet="Package/getName"
-      targetPut="Package/setName"/>
-
-    <merge:pull 
-      sourceGet="Member/getFlags"
-      targetPut="Member/setFlags"/>
-    <merge:pull 
-      sourceGet="Member/getComment"
-      targetPut="Member/setComment"/>
-
-    <merge:pull 
-      sourceGet="Type/getSuperclass"
-      targetPut="Type/setSuperclass"/>
-    <merge:pull 
-      sourceGet="Type/getSuperInterfaces"
-      targetPut="Type/addSuperInterface"/>
-
-    <merge:pull 
-      sourceGet="Initializer/getBody"
-      targetPut="Initializer/setBody"/>
-
-    <merge:pull 
-      sourceGet="Field/getType"
-      targetPut="Field/setType"/>
-    <merge:pull 
-      sourceGet="Field/getInitializer"
-      targetPut="Field/setInitializer"/>
-
-    <merge:pull 
-      sourceGet="Method/getBody"
-      targetPut="Method/setBody"/>
-    <merge:pull 
-      sourceGet="Method/getReturnType"
-      targetPut="Method/setReturnType"/>
-    <merge:pull 
-      sourceGet="Method/getExceptions"
-      targetPut="Method/addException"/>
--->
-
-<!-- Push Enum Constants only for generated Enums -->
-<!-- 
-  <merge:push targetParentMarkup="^gen$" select="EnumConstant"/>
--->
-
-<!-- Push Annotation Type Members only for generated Annotation Types -->
-<!--
-  <merge:push targetParentMarkup="^gen$" select="AnnotationTypeMember"/>
--->
-
-<!-- Sets the content of annotations if the parent is marked with gen --> 
-<!--
-    <merge:pull 
-      sourceGet="Annotation/getContents"
-      targetParentMarkup="^gen$"
-      targetPut="Annotation/setContents"/>
--->      
-
-<!-- Remove annotations of generated target nodes if the annotation is not in the source -->
-<!--
-  <merge:sweep parentMarkup="^gen$" select="Annotation"/>
--->    
-
-<!-- 
-    <merge:pull 
-      sourceMarkup="^modifiable$"
-      sourceGet="Member/getComment"
-      targetMarkup="^gen$"
-      targetPut="Member/setComment"/>
--->
-
-</merge:options>
diff --git a/org.eclipse.xwt.tools.ui.vex/build.properties b/org.eclipse.xwt.tools.ui.vex/build.properties
deleted file mode 100755
index ddb7a3a..0000000
--- a/org.eclipse.xwt.tools.ui.vex/build.properties
+++ /dev/null
@@ -1,27 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# <copyright>
-# </copyright>
-#
-# $Id: build.properties,v 1.3 2010/06/22 13:55:41 obesedin Exp $
-
-bin.includes = .,\
-               src/model/,\
-               META-INF/,\
-               plugin.xml,\
-               plugin.properties,\
-               icons/,\
-               os/
-jars.compile.order = .
-source.. = src/
-output.. = bin/
-src.includes = schema/
diff --git a/org.eclipse.xwt.tools.ui.vex/plugin.properties b/org.eclipse.xwt.tools.ui.vex/plugin.properties
deleted file mode 100755
index ad55876..0000000
--- a/org.eclipse.xwt.tools.ui.vex/plugin.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# /*******************************************************************************
-#  * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
-#  * All rights reserved. This program and the accompanying materials
-#  * are made available under the terms of the Eclipse Public License v1.0
-#  * which accompanies this distribution, and is available at
-#  * http://www.eclipse.org/legal/epl-v10.html
-#  * 
-#  * Contributors:
-#  *     Soyatec - initial API and implementation
-#  *******************************************************************************/
-Bundle-Vendor.0 = Eclipse.org
-Bundle-Name.0 = VisualEditor for XML UI (Incubation)
-pluginName = VEX
-providerName = www.eclipse.org
diff --git a/org.eclipse.xwt.tools.ui.vex/pom.xml b/org.eclipse.xwt.tools.ui.vex/pom.xml
deleted file mode 100755
index 924791a..0000000
--- a/org.eclipse.xwt.tools.ui.vex/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt.tools.ui.vex</artifactId>
-	<version>0.10.0-SNAPSHOT</version>
-	<packaging>eclipse-plugin</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
deleted file mode 100755
index d3120df..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $RCSfile: ImageCapture.java,v $
- *  $Revision: 1.6 $  $Date: 2010/06/18 00:17:02 $ 
- */
-package org.eclipse.ve.internal.swt.targetvm.macosx;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Device;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Image Capture for Mac OS X platforms.
- * 
- * @since 1.2.0
- */
-
-public class ImageCapture extends org.eclipse.xwt.vex.swt.ImageCapture {
-
-	private static Field shellHandleField = null;
-	private static Method HIViewGetRootMethod = null;
-	private static Method carbon_newMethod = null;
-
-	static {
-
-		System.loadLibrary("swt-carbon-print"); //$NON-NLS-1$
-
-		try {
-			shellHandleField = Shell.class.getDeclaredField("shellHandle"); //$NON-NLS-1$
-			shellHandleField.setAccessible(true);
-
-			Class<?> osClass = Class.forName("org.eclipse.swt.internal.carbon.OS"); //$NON-NLS-1$
-			HIViewGetRootMethod = osClass.getMethod("HIViewGetRoot", new Class[] { int.class }); //$NON-NLS-1$
-
-			carbon_newMethod = Image.class.getMethod("carbon_new", new Class[] { Device.class, int.class, int.class, int.class }); //$NON-NLS-1$
-
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	private native int captureImage(int controlHandle, int shellHandle);
-
-	protected Image getImage(Control control, int maxWidth, int maxHeight, boolean includeChildren) {
-
-		Rectangle rect = control.getBounds();
-		if (rect.width <= 0 || rect.height <= 0)
-			return null;
-
-		int width = Math.min(rect.width, maxWidth);
-		int height = Math.min(rect.height, maxHeight);
-
-		Image image = null;
-
-		int controlHandle = -1;
-		int shellHandle = -1;
-
-		try {
-			if (control instanceof Shell) {
-				shellHandle = shellHandleField.getInt(control);
-				if (shellHandle != -1) {
-					Integer result = (Integer) HIViewGetRootMethod.invoke(null, new Object[] { new Integer(shellHandle) });
-					if (result != null) {
-						controlHandle = result.intValue();
-					}
-				}
-			} else {
-				controlHandle = getIntHandle(control);
-				shellHandle = shellHandleField.getInt(control.getShell());
-			}
-
-			int imageHandle = captureImage(controlHandle, shellHandle);
-
-			if (imageHandle != 0) {
-				// Create a temporary image using the captured image's handle
-				Image tempImage = (Image) carbon_newMethod.invoke(null, new Object[] { control.getDisplay(), new Integer(SWT.BITMAP), new Integer(imageHandle), new Integer(0) });
-				// image = Image.carbon_new(control.getDisplay(), SWT.BITMAP, imageHandle, 0);
-
-				// Create the result image
-				image = new Image(control.getDisplay(), width, height);
-
-				// Manually copy because the image's data handle isn't available
-				GC gc = new GC(tempImage);
-				gc.copyArea(image, 0, 0);
-				gc.dispose();
-
-				// Dispose of the temporary image allocated in the native call
-				tempImage.dispose();
-			}
-
-		} catch (IllegalArgumentException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (IllegalAccessException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (InvocationTargetException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-
-		return image;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/cocoa/ImageCapture.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/cocoa/ImageCapture.java
deleted file mode 100755
index 8425163..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/cocoa/ImageCapture.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation with help of Kevin Barnes 
- *               <krbarnes@ca.ibm.com>
- *******************************************************************************/
-package org.eclipse.ve.internal.swt.targetvm.macosx.cocoa;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Support of Mac Cocoa API
- * 
- * @author yyang <yves.yang@soyatec.com>
- * @author Kevin Barnes <krbarnes@ca.ibm.com>
- */
-public class ImageCapture extends org.eclipse.xwt.vex.swt.ImageCapture {
-	static Field GC_handle;
-	static Field Control_view;
-	static Method NSView_superview;
-	static Method NSObject_isEqual;
-	static Method NSView_bounds;
-	static Method NSGraphicsContext_saveGraphicsState;
-	static Method NSGraphicsContext_restoreGraphicsState;
-	static Method NSGraphicsContext_setCurrentContext;
-	
-	static Method NSAffineTransform_transform;
-	
-	static Method NSAffineTransform_translateXBy;
-	static Method NSAffineTransform_scaleXBy;
-	static Method NSAffineTransform_concat;
-	
-	static Method NSView_displayRectIgnoringOpacity;
-	
-	static {
-		try {
-			Control_view = Control.class.getDeclaredField("view"); //$NON-NLS-1$
-			Control_view.setAccessible(true);
-
-			GC_handle = GC.class.getDeclaredField("handle"); //$NON-NLS-1$
-			GC_handle.setAccessible(true);
-
-			Class<?> NSViewClass = Class.forName("org.eclipse.swt.internal.cocoa.NSView"); //$NON-NLS-1$
-			NSView_superview = NSViewClass.getMethod("superview");
-			
-			Class<?> idClass = Class.forName("org.eclipse.swt.internal.cocoa.id"); //$NON-NLS-1$
-			Class<?> NSObjectClass = Class.forName("org.eclipse.swt.internal.cocoa.NSObject"); //$NON-NLS-1$
-			NSObject_isEqual = NSObjectClass.getMethod("isEqual", idClass);
-			
-			NSView_bounds = NSViewClass.getMethod("bounds");
-
-			Class<?> NSGraphicsContextClass = Class.forName("org.eclipse.swt.internal.cocoa.NSGraphicsContext"); //$NON-NLS-1$
-			NSGraphicsContext_saveGraphicsState = NSGraphicsContextClass.getMethod("saveGraphicsState");
-			NSGraphicsContext_setCurrentContext = NSGraphicsContextClass.getMethod("setCurrentContext", NSGraphicsContextClass);
-			NSGraphicsContext_restoreGraphicsState = NSGraphicsContextClass.getMethod("restoreGraphicsState");
-
-			Class<?> NSAffineTransformClass = Class.forName("org.eclipse.swt.internal.cocoa.NSAffineTransform"); //$NON-NLS-1$
-			NSAffineTransform_transform = NSAffineTransformClass.getMethod("transform");
-			NSAffineTransform_translateXBy = NSAffineTransformClass.getMethod("translateXBy", double.class, double.class);
-			if (NSAffineTransform_translateXBy == null) {
-				NSAffineTransform_translateXBy = NSAffineTransformClass.getMethod("translateXBy", float.class, float.class);
-			}
-			NSAffineTransform_scaleXBy = NSAffineTransformClass.getMethod("scaleXBy", double.class, double.class);
-			if (NSAffineTransform_scaleXBy == null) {
-				NSAffineTransform_scaleXBy = NSAffineTransformClass.getMethod("scaleXBy", float.class, float.class);
-			}
-			NSAffineTransform_concat = NSAffineTransformClass.getMethod("concat");
-			
-			Class<?> NSRectClass = Class.forName("org.eclipse.swt.internal.cocoa.NSRect"); //$NON-NLS-1$
-
-			NSView_displayRectIgnoringOpacity = NSViewClass.getMethod("displayRectIgnoringOpacity", NSRectClass, NSGraphicsContextClass);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	
-	@Override
-	protected Image getImage(Control control, int maxWidth, int maxHeight,
-			boolean includeChildren) {
-		Rectangle rectangle = new Rectangle(0, 0, maxWidth, maxHeight);
-        Image image = new Image(control.getDisplay(), rectangle);
-        GC gc = new GC(image);
-        
-        try {
-			Object view = Control_view.get(control);
-			if (control instanceof Shell) {
-				Object superview = NSView_superview.invoke(view);
-			    while (superview != null) {
-			    	view = superview;
-			    	superview = NSView_superview.invoke(view);
-			    }
-			} else {
-			    Composite parent = control.getParent();
-			    Object parentView = Control_view.get(parent);
-			    
-			    while (true) {
-			    	Object superview = NSView_superview.invoke(view);
-			    	Boolean equal = (Boolean) NSObject_isEqual.invoke(superview, parentView);
-			    	if (equal) {
-			    		break;
-			    	}
-					view = superview;
-			    }
-			}
-			Object gcHandle = GC_handle.get(gc);
-			// gc.handle.saveGraphicsState();
-			NSGraphicsContext_saveGraphicsState.invoke(gcHandle);
-			// NSGraphicsContext.setCurrentContext(gc.handle);
-			NSGraphicsContext_setCurrentContext.invoke(null, gcHandle);
-			// NSAffineTransform transform = NSAffineTransform.transform ();
-			Object transform = NSAffineTransform_transform.invoke(null);
-			// transform.translateXBy (0, rectangle.height);
-			NSAffineTransform_translateXBy.invoke(transform, 0, rectangle.height);
-			// transform.scaleXBy (1, -1);
-			NSAffineTransform_scaleXBy.invoke(transform, 1, -1);
-			// transform.concat ();
-			NSAffineTransform_concat.invoke(transform);
-			// view.displayRectIgnoringOpacity(view.bounds(), gc.handle);
-			Object bounds = NSView_bounds.invoke(view);
-			NSView_displayRectIgnoringOpacity.invoke(view, bounds, gcHandle);
-			
-			//gc.handle.restoreGraphicsState();
-			NSGraphicsContext_restoreGraphicsState.invoke(gcHandle);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-        
-        gc.dispose();
-		return image;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
deleted file mode 100755
index 75d5877..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
+++ /dev/null
@@ -1,412 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $RCSfile: ImageCapture.java,v $
- *  $Revision: 1.8 $  $Date: 2010/06/18 00:17:02 $ 
- */
-package org.eclipse.ve.internal.swt.targetvm.unix;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.PaletteData;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Decorations;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.vex.swt.DisposeUtil;
-
-/**
- * GTK version of Image Capture
- * 
- * @since 1.0.0
- */
-public class ImageCapture extends org.eclipse.xwt.vex.swt.ImageCapture {
-	static Field Menu_handler;
-	static Field Control_handler;
-
-	
-	static {
-		try {
-			Menu_handler = Menu.class.getField("handle");			
-			Control_handler = Control.class.getField("handle");
-			
-			System.loadLibrary("swt-gtk-print"); //$NON-NLS-1$
-		} catch (Exception error) {
-			error.printStackTrace();
-		} catch (UnsatisfiedLinkError error) {
-			error.printStackTrace();
-		}
-	}
-
-	static final int OBSCURED = 1 << 6; // Must be the same value as Widget.OBSCURED
-	static final String FIELD_STATE_NAME = "state"; //$NON-NLS-1$
-
-	private native int[] getPixels(int handle, int includeChildren, int maxWidth, int maxHeight, int arg4);
-
-	protected Point getTopLeftOfClientarea(Decorations decorations) {
-		Point trim = decorations.toControl(decorations.getLocation());
-		trim.x = -trim.x;
-		trim.y = -trim.y;
-		if (decorations.getMenuBar() != null) {
-			Menu menu = decorations.getMenuBar();
-			try {
-				Class<?> osClass = Class.forName("org.eclipse.swt.internal.gtk.OS"); //$NON-NLS-1$
-				Method method = osClass.getMethod("GTK_WIDGET_HEIGHT", new Class[] { int.class }); //$NON-NLS-1$
-				Object ret = method.invoke(menu, new Object[] { Menu_handler.getInt(menu)});
-				if (ret != null) {
-					int menuBarHeight = ((Integer) ret).intValue();
-					trim.y -= menuBarHeight;
-				}
-			} catch (Throwable t) {
-			}
-		}
-		return new Point(trim.x, trim.y);
-	}
-
-	protected Image getImageOfControl(Control control, int includeChildren, int maxWidth, int maxHeight) {
-		Image image = null;
-		if (control instanceof Shell) {
-			Shell shell = (Shell) control;
-			int handle = readIntFieldValue(shell.getClass(), shell, "shellHandle"); //$NON-NLS-1$
-			if (handle > 0) {
-				image = getImageOfHandle(handle, shell.getDisplay(), includeChildren, maxWidth, maxHeight);
-			}
-		}
-		try {
-			if (image == null) {
-				image = getImageOfHandle(Control_handler.getInt(control), control.getDisplay(), includeChildren, maxWidth, maxHeight);
-			}
-			if (control instanceof Decorations) {
-				Decorations decorations = (Decorations) control;
-				Rectangle shellBounds = decorations.getBounds();
-				Point topLeft = getTopLeftOfClientarea(decorations);
-				Image realShellImage = new Image(decorations.getDisplay(), shellBounds.width, shellBounds.height);
-				Image origImage = image;
-				try {
-					simulateDecoration(decorations, realShellImage, decorations.getBounds(), decorations.getClientArea(), topLeft);
-					GC gc = new GC(realShellImage);
-					gc.drawImage(image, topLeft.x, topLeft.y);
-					DisposeUtil.dispose(gc);
-					image = realShellImage;
-				} finally {
-					origImage.dispose();
-				}
-			}
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return image;
-	}
-
-	protected Image getImageOfHandle(int handle, Display display, int includeChildren, int maxWidth, int maxHeight) {
-		int[] tcData = getPixels(handle, includeChildren, maxWidth, maxHeight, 0);
-		int depth = display.getDepth();
-		if (depth == 15)
-			depth = 16; // SWT cant handle depth of 15. Similar to 16
-		if (depth > 24)
-			depth = 24;
-		if (tcData != null) {
-			int tcWidth = tcData[0];
-			int tcHeight = tcData[1];
-			int type = tcData[2];
-			if (type == 1) {
-				// Direct RGB values
-				int red_mask = tcData[3] == -1 ? 0x00FF : tcData[3];
-				int green_mask = tcData[4] == -1 ? 0x00FF00 : tcData[4];
-				int blue_mask = tcData[5] == -1 ? 0x00FF0000 : tcData[5];
-				// System.err.println("Masks: "+Integer.toHexString(red_mask)+","+Integer.toHexString(green_mask)+","+Integer.toHexString(blue_mask));
-				int[] tcPixels = new int[tcData.length - 6];
-				System.arraycopy(tcData, 6, tcPixels, 0, tcPixels.length);
-				ImageData tcImageData = new ImageData(tcWidth, tcHeight, depth, new PaletteData(red_mask, green_mask, blue_mask));
-				tcImageData.setPixels(0, 0, tcPixels.length, tcPixels, 0);
-				Image tcImage = new Image(display, tcImageData);
-				return tcImage;
-			} else if (type == 2) {
-				// Indexed values
-				int numColors = tcData[3];
-				RGB[] rgb = new RGB[numColors];
-				// System.err.println("### Num colors = "+numColors);
-				for (int colCount = 0; colCount < numColors; colCount++) {
-					int r = tcData[4 + (colCount * 3) + 0];
-					int g = tcData[4 + (colCount * 3) + 1];
-					int b = tcData[4 + (colCount * 3) + 2];
-					rgb[colCount] = new RGB(r, g, b);
-				}
-				PaletteData pd = new PaletteData(rgb);
-				ImageData id = new ImageData(tcWidth, tcHeight, depth, pd);
-				int offset = (4 + (rgb.length * 3));
-				int pixels[] = new int[tcData.length - offset];
-				System.arraycopy(tcData, offset, pixels, 0, pixels.length);
-				id.setPixels(0, 0, pixels.length, pixels, 0);
-				Image tcImage = new Image(display, id);
-				// System.err.println("### returning image");
-				return tcImage;
-			} else {
-				System.err.println("JNI Returned unknown image type"); //$NON-NLS-1$
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * @param decoration
-	 * @param realShellImage
-	 * @param bounds
-	 * @param clientArea
-	 * @param topLeft
-	 * 
-	 * @since 1.0.0
-	 */
-	private void simulateDecoration(Decorations decoration, Image realShellImage, Rectangle bounds, Rectangle clientArea, Point topLeft) {
-		GC gc = new GC(realShellImage);
-		try {
-			gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-			gc.fillRectangle(0, 0, bounds.width, bounds.height);
-			gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
-			gc.drawRectangle(topLeft.x - 1, topLeft.y - 1, clientArea.width + 2, clientArea.height + 2);
-
-			// little squares at bottom corners
-			gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_BACKGROUND));
-			gc.fillRectangle(0, bounds.height - topLeft.y, topLeft.y, bounds.height);
-			gc.fillRectangle(bounds.width - topLeft.y, bounds.height - topLeft.y, bounds.width, bounds.height);
-
-			// title bar
-			if ((decoration.getStyle() & (SWT.TITLE | SWT.CLOSE | SWT.MAX | SWT.MIN)) != 0 && topLeft.y > 2) {
-				int barHeight = topLeft.y - 2;
-				// There will be a title bar - draw the text
-				gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_BACKGROUND));
-				gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_FOREGROUND));
-				gc.fillGradientRectangle(0, 0, bounds.width, barHeight, false);
-				gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_FOREGROUND));
-				gc.drawText(decoration.getText(), topLeft.y, 2, true);
-				if (decoration.getImage() != null && !decoration.getImage().isDisposed()) {
-					Rectangle imageBounds = decoration.getImage().getBounds();
-					if (imageBounds.height <= barHeight) {
-						gc.drawImage(decoration.getImage(), 0, 0);
-					} else {
-						ImageData imageData = decoration.getImage().getImageData();
-						double factor = (double) barHeight / (double) imageBounds.height;
-						int newWidth = (int) (imageBounds.width * factor);
-						imageData = imageData.scaledTo(newWidth, barHeight);
-						Image newImage = new Image(decoration.getDisplay(), imageData);
-						gc.drawImage(newImage, 0, 0);
-						newImage.dispose();
-					}
-				}
-
-				int rightx = bounds.width - topLeft.y;
-
-				// title bar buttons
-				if ((decoration.getStyle() & SWT.CLOSE) != 0) {
-					gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-					gc.fillRectangle(rightx, 0, topLeft.y, topLeft.y);
-					gc.setLineWidth(1);
-					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
-					gc.drawRectangle(rightx, 0, topLeft.y, topLeft.y);
-					int lineWidth = topLeft.y / 6;
-					if (lineWidth < 1)
-						lineWidth = 1;
-					gc.setLineWidth(lineWidth);
-					lineWidth = lineWidth * 2;
-					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BORDER));
-					gc.drawLine(rightx + lineWidth, lineWidth, rightx + topLeft.y - lineWidth, topLeft.y - lineWidth);
-					gc.drawLine(rightx + lineWidth, topLeft.y - lineWidth, rightx + topLeft.y - lineWidth, lineWidth);
-					rightx -= topLeft.y;
-				}
-				if ((decoration.getStyle() & SWT.MAX) != 0) {
-					gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-					gc.fillRectangle(rightx, 0, topLeft.y, topLeft.y);
-					gc.setLineWidth(1);
-					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
-					gc.drawRectangle(rightx, 0, topLeft.y, topLeft.y);
-					int lineWidth = topLeft.y / 6;
-					if (lineWidth < 1)
-						lineWidth = 1;
-					gc.setLineWidth(lineWidth);
-					lineWidth = lineWidth * 2;
-					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BORDER));
-					gc.drawRectangle(rightx + lineWidth, lineWidth, topLeft.y - (2 * lineWidth), topLeft.y - (2 * lineWidth));
-					rightx -= topLeft.y;
-				}
-				if ((decoration.getStyle() & SWT.MIN) != 0) {
-					gc.setLineWidth(1);
-					gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-					gc.fillRectangle(rightx, 0, topLeft.y - 1, topLeft.y - 1);
-					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
-					gc.drawRectangle(rightx, 0, topLeft.y - 1, topLeft.y - 1);
-					int lineWidth = topLeft.y / 6;
-					if (lineWidth < 1)
-						lineWidth = 1;
-					gc.setLineWidth(lineWidth);
-					lineWidth = lineWidth * 2;
-					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BORDER));
-					gc.drawLine(rightx + lineWidth, topLeft.y - lineWidth, rightx + topLeft.y - lineWidth, topLeft.y - lineWidth);
-					rightx -= topLeft.y;
-				}
-
-				gc.setLineWidth(1);
-				gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
-				gc.drawLine(0, topLeft.y - 1, bounds.width, topLeft.y - 1);
-			}
-		} finally {
-			gc.dispose();
-		}
-	}
-
-	protected Map<Class<?>, Map<String, Object>> fieldAccessors = new HashMap<Class<?>, Map<String, Object>>(); // Map of Class->fieldName->field reflect
-
-	/**
-	 * @param object
-	 * @param fieldName
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	private int readIntFieldValue(Class<?> klass, Object object, String fieldName) {
-		try {
-			Field field = getField(klass, fieldName);
-			return field != null ? field.getInt(object) : 0;
-		} catch (IllegalArgumentException e) {
-		} catch (IllegalAccessException e) {
-		}
-		return -1;
-	}
-
-	private static final Object NO_FIELD = new Object();
-
-	private Field getField(Class<?> klass, String fieldName) {
-		Map<String, Object> nameToField = fieldAccessors.get(klass);
-		if (nameToField == null) {
-			fieldAccessors.put(klass, nameToField = new HashMap<String, Object>());
-		}
-		Object field = nameToField.get(fieldName);
-		if (field == null) {
-			try {
-				field = klass.getDeclaredField(fieldName);
-				((Field) field).setAccessible(true);
-			} catch (SecurityException e) {
-				field = NO_FIELD;
-				e.printStackTrace();
-			} catch (NoSuchFieldException e) {
-				field = NO_FIELD;
-				e.printStackTrace();
-			}
-			nameToField.put(fieldName, field);
-		}
-		return (Field) (field != NO_FIELD ? field : null);
-	}
-
-	/**
-	 * @param object
-	 * @param fieldName
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	private void writeIntFieldValue(Class<?> klass, Object object, String fieldName, int newInt) {
-		try {
-			Field field = getField(klass, fieldName);
-			field.setInt(object, newInt);
-		} catch (IllegalArgumentException e) {
-		} catch (IllegalAccessException e) {
-		}
-	}
-
-	protected Image getImage(Control control, int maxWidth, int maxHeight, boolean includeChildren) {
-		int ic = includeChildren ? 1 : 0;
-		Map<Control, Integer> map = new HashMap<Control, Integer>();
-		changeObscured(control, map, false);
-		Image image = null;
-		try {
-			image = getImageOfControl(control, ic, maxWidth, maxHeight);
-		} finally {
-			changeObscured(control, map, true);
-		}
-		return image;
-	}
-
-	/**
-	 * @param control
-	 * @param map
-	 * 
-	 * @since 1.0.0
-	 */
-	private void changeObscured(Control control, Map<Control, Integer> map, boolean on) {
-		if (on) {
-			// restoring the obscured flags
-			if (map.containsKey(control)) {
-				// control had obscured flag changed - reset it
-				Integer originalValue = (Integer) map.get(control);
-				writeIntFieldValue(Widget.class, control, FIELD_STATE_NAME, originalValue.intValue());
-			}
-		} else {
-			// disabling the obscure flags
-			int stateValue = readIntFieldValue(Widget.class, control, FIELD_STATE_NAME);
-			if ((stateValue & OBSCURED) != 0) {
-				// obscured - disable flag and remember
-				map.put(control, new Integer(stateValue));
-				stateValue &= ~OBSCURED;
-				writeIntFieldValue(Widget.class, control, FIELD_STATE_NAME, stateValue);
-			}
-		}
-		if (control instanceof CCombo) {
-			// CCombo has a text field whose OBSCURED field needs to be changed
-			CCombo ccombo = (CCombo) control;
-			Object val = readObjectFieldValue(CCombo.class, ccombo, "text"); //$NON-NLS-1$
-			if (val instanceof Text) {
-				Text text = (Text) val;
-				changeObscured(text, map, on);
-			}
-		} else if (control instanceof Composite) {
-			Composite composite = (Composite) control;
-			Control[] children = composite.getChildren();
-			for (int cc = 0; children != null && cc < children.length; cc++) {
-				changeObscured(children[cc], map, on);
-			}
-		}
-	}
-
-	/**
-	 * @param object
-	 * @param fieldName
-	 * @return
-	 * 
-	 * @since 1.1.0.1
-	 */
-	private Object readObjectFieldValue(Class<?> klass, Object object, String fieldName) {
-		try {
-			Field field = klass.getDeclaredField(fieldName);
-			field.setAccessible(true);
-			return field.get(object);
-		} catch (SecurityException e) {
-		} catch (NoSuchFieldException e) {
-		} catch (IllegalArgumentException e) {
-		} catch (IllegalAccessException e) {
-		}
-		return null;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
deleted file mode 100755
index 196f2af..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
+++ /dev/null
@@ -1,416 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $RCSfile: ImageCapture.java,v $
- *  $Revision: 1.6 $  $Date: 2010/06/18 00:17:02 $ 
- */
-package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.PaletteData;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Decorations;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.vex.swt.DisposeUtil;
-
-/**
- * GTK version of Image Capture
- * 
- * @since 1.0.0
- */
-public class ImageCapture extends org.eclipse.xwt.vex.swt.ImageCapture {
-	static Field Menu_handler;
-
-	
-	static {
-		try {
-			Menu_handler = Menu.class.getField("handle");			
-			System.loadLibrary("swt-gtk-print"); //$NON-NLS-1$
-		} catch (Exception error) {
-			error.printStackTrace();
-		} catch (UnsatisfiedLinkError error) {
-			error.printStackTrace();
-		}
-	}
-	static final int OBSCURED = 1 << 6; // Must be the same value as Widget.OBSCURED
-	static final String FIELD_STATE_NAME = "state"; //$NON-NLS-1$
-
-	private native int[] getPixels(long handle, int includeChildren, int maxWidth, int maxHeight, int arg4);
-
-	protected Point getTopLeftOfClientarea(Decorations decorations) {
-		Point trim = decorations.toControl(decorations.getLocation());
-		trim.x = -trim.x;
-		trim.y = -trim.y;
-		if (decorations.getMenuBar() != null) {
-			Menu menu = decorations.getMenuBar();
-			try {
-				Class<?> osClass = Class.forName("org.eclipse.swt.internal.gtk.OS"); //$NON-NLS-1$
-				Method method = osClass.getMethod("GTK_WIDGET_HEIGHT", new Class[] { long.class }); //$NON-NLS-1$
-				Object ret = method.invoke(menu, new Object[] { Menu_handler.getLong(menu) });
-				if (ret != null) {
-					int menuBarHeight = ((Integer) ret).intValue();
-					trim.y -= menuBarHeight;
-				}
-			} catch (Throwable t) {
-			}
-		}
-		return new Point(trim.x, trim.y);
-	}
-
-	protected Image getImageOfControl(Control control, int includeChildren, int maxWidth, int maxHeight) {
-		Image image = null;
-		if (control instanceof Shell) {
-			Shell shell = (Shell) control;
-			long handle = readLongFieldValue(shell.getClass(), shell, "shellHandle"); //$NON-NLS-1$
-			if (handle > 0) {
-				image = getImageOfHandle(handle, shell.getDisplay(), includeChildren, maxWidth, maxHeight);
-			}
-		}
-		if (image == null) {
-			// Use reflection to get the control handle to avoid linking problems with being
-			// compiled on a 32 bit machine against 32 bit swt.
-			long handle = readLongFieldValue(Widget.class, control, "handle"); //$NON-NLS-1$
-			image = getImageOfHandle(handle, control.getDisplay(), includeChildren, maxWidth, maxHeight);
-		}
-		if (control instanceof Decorations) {
-			Decorations decorations = (Decorations) control;
-			Rectangle shellBounds = decorations.getBounds();
-			Point topLeft = getTopLeftOfClientarea(decorations);
-			Image realShellImage = new Image(decorations.getDisplay(), shellBounds.width, shellBounds.height);
-			Image origImage = image;
-			try {
-				simulateDecoration(decorations, realShellImage, decorations.getBounds(), decorations.getClientArea(), topLeft);
-				GC gc = new GC(realShellImage);
-				gc.drawImage(image, topLeft.x, topLeft.y);
-				DisposeUtil.dispose(gc);
-				image = realShellImage;
-			} finally {
-				origImage.dispose();
-			}
-		}
-		return image;
-	}
-
-	protected Image getImageOfHandle(long handle, Display display, int includeChildren, int maxWidth, int maxHeight) {
-		int[] tcData = getPixels(handle, includeChildren, maxWidth, maxHeight, 0);
-		int depth = display.getDepth();
-		if (depth == 15)
-			depth = 16; // SWT cant handle depth of 15. Similar to 16
-		if (depth > 24)
-			depth = 24;
-		if (tcData != null) {
-			int tcWidth = tcData[0];
-			int tcHeight = tcData[1];
-			int type = tcData[2];
-			if (type == 1) {
-				// Direct RGB values
-				int red_mask = tcData[3] == -1 ? 0x00FF : tcData[3];
-				int green_mask = tcData[4] == -1 ? 0x00FF00 : tcData[4];
-				int blue_mask = tcData[5] == -1 ? 0x00FF0000 : tcData[5];
-				// System.err.println("Masks: "+Integer.toHexString(red_mask)+","+Integer.toHexString(green_mask)+","+Integer.toHexString(blue_mask));
-				int[] tcPixels = new int[tcData.length - 6];
-				System.arraycopy(tcData, 6, tcPixels, 0, tcPixels.length);
-				ImageData tcImageData = new ImageData(tcWidth, tcHeight, depth, new PaletteData(red_mask, green_mask, blue_mask));
-				tcImageData.setPixels(0, 0, tcPixels.length, tcPixels, 0);
-				Image tcImage = new Image(display, tcImageData);
-				return tcImage;
-			} else if (type == 2) {
-				// Indexed values
-				int numColors = tcData[3];
-				RGB[] rgb = new RGB[numColors];
-				// System.err.println("### Num colors = "+numColors);
-				for (int colCount = 0; colCount < numColors; colCount++) {
-					int r = tcData[4 + (colCount * 3) + 0];
-					int g = tcData[4 + (colCount * 3) + 1];
-					int b = tcData[4 + (colCount * 3) + 2];
-					rgb[colCount] = new RGB(r, g, b);
-				}
-				PaletteData pd = new PaletteData(rgb);
-				ImageData id = new ImageData(tcWidth, tcHeight, depth, pd);
-				int offset = (4 + (rgb.length * 3));
-				int pixels[] = new int[tcData.length - offset];
-				System.arraycopy(tcData, offset, pixels, 0, pixels.length);
-				id.setPixels(0, 0, pixels.length, pixels, 0);
-				Image tcImage = new Image(display, id);
-				// System.err.println("### returning image");
-				return tcImage;
-			} else {
-				System.err.println("JNI Returned unknown image type"); //$NON-NLS-1$
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * @param decoration
-	 * @param realShellImage
-	 * @param bounds
-	 * @param clientArea
-	 * @param topLeft
-	 * 
-	 * @since 1.0.0
-	 */
-	private void simulateDecoration(Decorations decoration, Image realShellImage, Rectangle bounds, Rectangle clientArea, Point topLeft) {
-		GC gc = new GC(realShellImage);
-		try {
-			gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-			gc.fillRectangle(0, 0, bounds.width, bounds.height);
-			gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
-			gc.drawRectangle(topLeft.x - 1, topLeft.y - 1, clientArea.width + 2, clientArea.height + 2);
-
-			// little squares at bottom corners
-			gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_BACKGROUND));
-			gc.fillRectangle(0, bounds.height - topLeft.y, topLeft.y, bounds.height);
-			gc.fillRectangle(bounds.width - topLeft.y, bounds.height - topLeft.y, bounds.width, bounds.height);
-
-			// title bar
-			if ((decoration.getStyle() & (SWT.TITLE | SWT.CLOSE | SWT.MAX | SWT.MIN)) != 0 && topLeft.y > 2) {
-				int barHeight = topLeft.y - 2;
-				// There will be a title bar - draw the text
-				gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_BACKGROUND));
-				gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_FOREGROUND));
-				gc.fillGradientRectangle(0, 0, bounds.width, barHeight, false);
-				gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_FOREGROUND));
-				gc.drawText(decoration.getText(), topLeft.y, 2, true);
-				if (decoration.getImage() != null && !decoration.getImage().isDisposed()) {
-					Rectangle imageBounds = decoration.getImage().getBounds();
-					if (imageBounds.height <= barHeight) {
-						gc.drawImage(decoration.getImage(), 0, 0);
-					} else {
-						ImageData imageData = decoration.getImage().getImageData();
-						double factor = (double) barHeight / (double) imageBounds.height;
-						int newWidth = (int) (imageBounds.width * factor);
-						imageData = imageData.scaledTo(newWidth, barHeight);
-						Image newImage = new Image(decoration.getDisplay(), imageData);
-						gc.drawImage(newImage, 0, 0);
-						newImage.dispose();
-					}
-				}
-
-				int rightx = bounds.width - topLeft.y;
-
-				// title bar buttons
-				if ((decoration.getStyle() & SWT.CLOSE) != 0) {
-					gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-					gc.fillRectangle(rightx, 0, topLeft.y, topLeft.y);
-					gc.setLineWidth(1);
-					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
-					gc.drawRectangle(rightx, 0, topLeft.y, topLeft.y);
-					int lineWidth = topLeft.y / 6;
-					if (lineWidth < 1)
-						lineWidth = 1;
-					gc.setLineWidth(lineWidth);
-					lineWidth = lineWidth * 2;
-					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BORDER));
-					gc.drawLine(rightx + lineWidth, lineWidth, rightx + topLeft.y - lineWidth, topLeft.y - lineWidth);
-					gc.drawLine(rightx + lineWidth, topLeft.y - lineWidth, rightx + topLeft.y - lineWidth, lineWidth);
-					rightx -= topLeft.y;
-				}
-				if ((decoration.getStyle() & SWT.MAX) != 0) {
-					gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-					gc.fillRectangle(rightx, 0, topLeft.y, topLeft.y);
-					gc.setLineWidth(1);
-					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
-					gc.drawRectangle(rightx, 0, topLeft.y, topLeft.y);
-					int lineWidth = topLeft.y / 6;
-					if (lineWidth < 1)
-						lineWidth = 1;
-					gc.setLineWidth(lineWidth);
-					lineWidth = lineWidth * 2;
-					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BORDER));
-					gc.drawRectangle(rightx + lineWidth, lineWidth, topLeft.y - (2 * lineWidth), topLeft.y - (2 * lineWidth));
-					rightx -= topLeft.y;
-				}
-				if ((decoration.getStyle() & SWT.MIN) != 0) {
-					gc.setLineWidth(1);
-					gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-					gc.fillRectangle(rightx, 0, topLeft.y - 1, topLeft.y - 1);
-					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
-					gc.drawRectangle(rightx, 0, topLeft.y - 1, topLeft.y - 1);
-					int lineWidth = topLeft.y / 6;
-					if (lineWidth < 1)
-						lineWidth = 1;
-					gc.setLineWidth(lineWidth);
-					lineWidth = lineWidth * 2;
-					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BORDER));
-					gc.drawLine(rightx + lineWidth, topLeft.y - lineWidth, rightx + topLeft.y - lineWidth, topLeft.y - lineWidth);
-					rightx -= topLeft.y;
-				}
-
-				gc.setLineWidth(1);
-				gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
-				gc.drawLine(0, topLeft.y - 1, bounds.width, topLeft.y - 1);
-			}
-		} finally {
-			gc.dispose();
-		}
-	}
-
-	protected Map<Class<?>, Map<String, Object>> fieldAccessors = new HashMap<Class<?>, Map<String, Object>>(); // Map of Class->fieldName->field reflect
-
-	/**
-	 * @param object
-	 * @param fieldName
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	private int readIntFieldValue(Class<?> klass, Object object, String fieldName) {
-		try {
-			Field field = getField(klass, fieldName);
-			return field != null ? field.getInt(object) : 0;
-		} catch (IllegalArgumentException e) {
-		} catch (IllegalAccessException e) {
-		}
-		return -1;
-	}
-
-	private long readLongFieldValue(Class<?> klass, Object object, String fieldName) {
-		try {
-			Field field = getField(klass, fieldName);
-			return field != null ? field.getLong(object) : 0;
-		} catch (IllegalArgumentException e) {
-		} catch (IllegalAccessException e) {
-		}
-		return -1;
-	}
-
-	private static final Object NO_FIELD = new Object();
-
-	private Field getField(Class<?> klass, String fieldName) {
-		Map<String, Object> nameToField = fieldAccessors.get(klass);
-		if (nameToField == null) {
-			fieldAccessors.put(klass, nameToField = new HashMap<String, Object>());
-		}
-		Object field = nameToField.get(fieldName);
-		if (field == null) {
-			try {
-				field = klass.getDeclaredField(fieldName);
-				((Field) field).setAccessible(true);
-			} catch (SecurityException e) {
-				field = NO_FIELD;
-				e.printStackTrace();
-			} catch (NoSuchFieldException e) {
-				field = NO_FIELD;
-				e.printStackTrace();
-			}
-			nameToField.put(fieldName, field);
-		}
-		return (Field) (field != NO_FIELD ? field : null);
-	}
-
-	/**
-	 * @param object
-	 * @param fieldName
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	private void writeIntFieldValue(Class<?> klass, Object object, String fieldName, int newInt) {
-		try {
-			Field field = getField(klass, fieldName);
-			field.setInt(object, newInt);
-		} catch (IllegalArgumentException e) {
-		} catch (IllegalAccessException e) {
-		}
-	}
-
-	protected Image getImage(Control control, int maxWidth, int maxHeight, boolean includeChildren) {
-		int ic = includeChildren ? 1 : 0;
-		Map<Control, Integer> map = new HashMap<Control, Integer>();
-		changeObscured(control, map, false);
-		Image image = null;
-		try {
-			image = getImageOfControl(control, ic, maxWidth, maxHeight);
-		} finally {
-			changeObscured(control, map, true);
-		}
-		return image;
-	}
-
-	/**
-	 * @param control
-	 * @param map
-	 * 
-	 * @since 1.0.0
-	 */
-	private void changeObscured(Control control, Map<Control, Integer> map, boolean on) {
-		if (on) {
-			// restoring the obscured flags
-			if (map.containsKey(control)) {
-				// control had obscured flag changed - reset it
-				Integer originalValue = (Integer) map.get(control);
-				writeIntFieldValue(Widget.class, control, FIELD_STATE_NAME, originalValue.intValue());
-			}
-		} else {
-			// disabling the obscure flags
-			int stateValue = readIntFieldValue(Widget.class, control, FIELD_STATE_NAME);
-			if ((stateValue & OBSCURED) != 0) {
-				// obscured - disable flag and remember
-				map.put(control, new Integer(stateValue));
-				stateValue &= ~OBSCURED;
-				writeIntFieldValue(Widget.class, control, FIELD_STATE_NAME, stateValue);
-			}
-		}
-		if (control instanceof CCombo) {
-			// CCombo has a text field whose OBSCURED field needs to be changed
-			CCombo ccombo = (CCombo) control;
-			Object val = readObjectFieldValue(CCombo.class, ccombo, "text"); //$NON-NLS-1$
-			if (val instanceof Text) {
-				Text text = (Text) val;
-				changeObscured(text, map, on);
-			}
-		} else if (control instanceof Composite) {
-			Composite composite = (Composite) control;
-			Control[] children = composite.getChildren();
-			for (int cc = 0; children != null && cc < children.length; cc++) {
-				changeObscured(children[cc], map, on);
-			}
-		}
-	}
-
-	/**
-	 * @param object
-	 * @param fieldName
-	 * @return
-	 * 
-	 * @since 1.1.0.1
-	 */
-	private Object readObjectFieldValue(Class<?> klass, Object object, String fieldName) {
-		try {
-			Field field = klass.getDeclaredField(fieldName);
-			field.setAccessible(true);
-			return field.get(object);
-		} catch (SecurityException e) {
-		} catch (NoSuchFieldException e) {
-		} catch (IllegalArgumentException e) {
-		} catch (IllegalAccessException e) {
-		}
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/AbstractCodeSynchronizer.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/AbstractCodeSynchronizer.java
deleted file mode 100755
index ec557d8..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/AbstractCodeSynchronizer.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.internal.progress.ProgressManager;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Document;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-public abstract class AbstractCodeSynchronizer implements VEXCodeSynchronizer {
-	private final Map<Node, String> node2name;
-	private String oldAttrValue;
-
-	private VEXEditor editor;
-
-	private String cacheContent = "";
-
-	public AbstractCodeSynchronizer(VEXEditor editor) {
-		node2name = new HashMap<Node, String>();
-		this.editor = editor;
-	}
-
-	public String getOldAttrValue() {
-		return oldAttrValue;
-	}
-
-	public void setOldAttrValue(String oldAttrValue) {
-		this.oldAttrValue = oldAttrValue;
-	}
-
-	public String getCacheContent() {
-		return cacheContent;
-	}
-
-	public void setCacheContent(String cacheContent) {
-		this.cacheContent = cacheContent;
-	}
-
-	public Map<Node, String> getNode2name() {
-		return node2name;
-	}
-
-	public VEXEditor getEditor() {
-		return editor;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.soyatec.eface.tools.ui.editors.jdt.CodeManager#add(org.w3c.dom.Node, java.lang.String)
-	 */
-	public void add(final IDOMNode node, final String name) {
-		if (node != null && name != null && !name.equals("")) {
-			String oldName = node2name.get(node);
-			if (oldName != null) {
-				if (oldName.equals(name)) {
-					return;
-				} else {
-					remove(node);
-					add(node, name);
-				}
-			}
-			node2name.put(node, name);
-			Display display = Display.getDefault();
-			if (display != null) {
-				display.syncExec(new Runnable() {
-					public void run() {
-						String fullTypeName = getFullTypeName(node);
-						if (fullTypeName == null) {
-							return;
-						}
-						generateFields(fullTypeName, name);
-						buildInitialization();
-					}
-				});
-			}
-		}
-	}
-
-	abstract protected String getFullTypeName(IDOMNode node);
-
-	protected void updateCodeManager() {
-		StructuredTextViewer textViewer = editor.getTextEditor().getTextViewer();
-		int offset = textViewer.getTextWidget().getCaretOffset();
-		IndexedRegion treeNode = ContentAssistUtils.getNodeAt(textViewer, offset);
-		Node root = (Node) treeNode;
-		while ((root != null) && (root.getParentNode() != null) && !(root.getParentNode() instanceof Document)) {
-			root = root.getParentNode();
-		}
-		update((IDOMNode) root);
-	}
-
-	public void update(IDOMNode parentNode) {
-		if (parentNode.getNodeType() == Node.TEXT_NODE) {
-			return;
-		}
-		if (!editor.getContext().hasType(parentNode)) {
-			return;
-		}
-		boolean findNameAttr = false;
-		NamedNodeMap attributes = parentNode.getAttributes();
-		int length = attributes.getLength();
-		for (int i = 0; i < length; i++) {
-			Node item = attributes.item(i);
-			String nodeName = item.getNodeName();
-			if ("Name".equals(nodeName)) {
-				findNameAttr = true;
-				if (oldAttrValue != null) {
-					remove(parentNode);
-				}
-				add(parentNode, item.getNodeValue());
-			}
-		}
-		if (!findNameAttr) {
-			remove(parentNode);
-		}
-		NodeList childNodes = parentNode.getChildNodes();
-		int len = childNodes.getLength();
-		for (int i = 0; i < len; i++) {
-			Node item = childNodes.item(i);
-			update((IDOMNode) item);
-		}
-	}
-
-	public boolean codeAboutToBeChanged() {
-		StructuredTextViewer textViewer = editor.getTextEditor().getTextViewer();
-		int offset = textViewer.getTextWidget().getCaretOffset();
-		IndexedRegion treeNode = ContentAssistUtils.getNodeAt(textViewer, offset);
-		Node node = (Node) treeNode;
-		while ((node != null) && (node.getNodeType() == Node.TEXT_NODE) && (node.getParentNode() != null)) {
-			node = node.getParentNode();
-		}
-		IDOMNode xmlnode = (IDOMNode) node;
-		if (xmlnode != null && editor.getContext().hasType(xmlnode)) {
-			NamedNodeMap nodeMap = xmlnode.getAttributes();
-			for (int i = nodeMap.getLength() - 1; i >= 0; i--) {
-				IDOMAttr attrNode = (IDOMAttr) nodeMap.item(i);
-				String attrName = attrNode.getName();
-				String attrValue = attrNode.getValue();
-				int startOffset = attrNode.getStartOffset();
-				int endOffset = startOffset + attrName.length() + attrValue.length() + 3;
-				if (offset >= startOffset && offset < endOffset) {
-					oldAttrValue = attrValue;
-					return true;
-				}
-			}
-		}
-		oldAttrValue = null;
-		return false;
-	}
-
-	protected String updateCacheContent(IDocument newInput) {
-		StringBuffer buffer = new StringBuffer();
-		String content = newInput.get();
-		for (char c : content.toCharArray()) {
-			if (!Character.isWhitespace(c)) {
-				buffer.append(c);
-			}
-		}
-		return buffer.toString();
-	}
-
-	protected boolean checkContent(String content) {
-		StringBuffer buffer = new StringBuffer();
-
-		for (char c : content.toCharArray()) {
-			if (!Character.isWhitespace(c)) {
-				buffer.append(c);
-			}
-		}
-		String value = buffer.toString();
-
-		if (value.equals(cacheContent)) {
-			return true;
-		}
-		cacheContent = value;
-		return false;
-	}
-
-	protected String resolveHostClass(Node node) {
-		return null;
-	}
-
-	protected IProgressMonitor getProgressMonitor() {
-		ProgressManager progresManager = (ProgressManager) editor.getTextEditor().getSite().getWorkbenchWindow().getWorkbench().getProgressService();
-		IProgressMonitor monitor = progresManager.getDefaultMonitor();
-		return monitor;
-	}
-
-	protected IProject getProject() {
-		IResource resource = (IResource) editor.getEditorInput().getAdapter(IResource.class);
-		if (resource != null) {
-			return resource.getProject();
-		}
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/AbstractContext.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/AbstractContext.java
deleted file mode 100755
index 2267728..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/AbstractContext.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex;
-
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.xwt.vex.toolpalette.ContextType;
-import org.eclipse.xwt.vex.toolpalette.Entry;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-public abstract class AbstractContext implements VEXContext {
-
-	public int findDropPosition(Node node, Entry entry, int documentPosition) {
-		String scope = entry.getScope();
-		ContextType contextType = entry.getContext();
-
-		return findDropPosition(node, scope, contextType, documentPosition);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.vex.VEXContext#findDropPosition(org.w3c.dom.Node, java.lang.String, org.eclipse.xwt.vex.toolpalette.ContextType, int)
-	 */
-	public int findDropPosition(Node node, String scope, ContextType contextType, int cursorPosition) {
-		IDOMNode treeNode = (IDOMNode) node;
-		// check scope first
-		if (scope != null) {
-			String scopeName = scope.trim();
-			if (scopeName.length() > 0) {
-				// check from registered class
-				if (treeNode.getNodeType() == Node.TEXT_NODE) {
-					Node parentNode = treeNode.getParentNode();
-					if (parentNode == null || !isKindOf(parentNode, scopeName)) {
-						return -1;
-					}
-				}
-			}
-		}
-
-		switch (contextType) {
-		case XML_ALL:
-			break;
-		case XML_ATTRIBUTE:
-			break;
-		case XML_ATTRIBUTE_VALUE: {
-			ITextRegion completionRegion = VEXTextEditorHelper.getCompletionRegion(cursorPosition, treeNode);
-
-			String regionType = completionRegion.getType();
-
-			if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-				return ((IDOMNode) treeNode).getStartOffset();
-			}
-			return -1;
-		}
-		case NONE:
-			break;
-		case XML_NEW:
-			break;
-		case XML_TAG: {
-			if (treeNode.getNodeType() == Node.TEXT_NODE) {
-				return treeNode.getStartOffset();
-			}
-
-			// Node node = (Node) treeNode;
-			// while ((node != null) && (node.getNodeType() == Node.TEXT_NODE)
-			// && (node.getParentNode() != null)) {
-			// node = node.getParentNode();
-			// }
-			// IDOMNode xmlnode = treeNode;
-
-			ITextRegion completionRegion = VEXTextEditorHelper.getCompletionRegion(cursorPosition, treeNode);
-
-			String regionType = completionRegion.getType();
-
-			if (regionType == DOMRegionContext.XML_PI_CLOSE || regionType == DOMRegionContext.XML_PI_OPEN || regionType == DOMRegionContext.XML_CONTENT || regionType == DOMRegionContext.XML_TAG_OPEN || regionType == DOMRegionContext.XML_TAG_CLOSE || regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE || regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME || regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS || regionType == DOMRegionContext.XML_TAG_NAME || regionType == DOMRegionContext.XML_END_TAG_OPEN) {
-				// in case of attribute, find the first text node
-				NodeList nodeList = treeNode.getChildNodes();
-				int length = nodeList.getLength();
-				for (int i = 0; i < length; i++) {
-					Node child = nodeList.item(i);
-					if (child.getNodeType() == Node.TEXT_NODE) {
-						return ((IDOMNode) child).getEndOffset();
-					}
-				}
-
-				if (regionType == DOMRegionContext.XML_END_TAG_OPEN && length == 0) {
-					IStructuredDocumentRegion endStructuredDocumentRegion = treeNode.getEndStructuredDocumentRegion();
-					if (cursorPosition == endStructuredDocumentRegion.getStart()) {
-						return cursorPosition;
-					}
-				}
-			}
-		}
-			return -1;
-		default:
-			throw new UnsupportedOperationException();
-		}
-
-		return cursorPosition;
-	}
-
-	/**
-	 * 
-	 * @param node
-	 * @param targetType
-	 *            a qualified class name
-	 * @return
-	 */
-	protected abstract boolean isKindOf(Node node, String targetType);
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/AbstractEventHandlerDialog.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/AbstractEventHandlerDialog.java
deleted file mode 100755
index e280d73..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/AbstractEventHandlerDialog.java
+++ /dev/null
@@ -1,251 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
-import org.w3c.dom.Node;
-
-public abstract class AbstractEventHandlerDialog {
-	public enum Operation {
-		Cancel, New, Select, Rename;
-	};
-
-	protected Operation operation = Operation.Cancel;
-	protected String inputHandler = "";
-	protected String oldHandler;
-	protected String attrValue;
-	protected String[] handlers;
-	protected StructuredTextViewer textViewer;
-	protected int count;
-
-	public AbstractEventHandlerDialog(StructuredTextViewer textViewer, String oldHandler, String attrValue, String[] handlers) {
-		this.textViewer = textViewer;
-		this.oldHandler = oldHandler;
-		this.attrValue = attrValue;
-		this.handlers = handlers;
-
-	}
-
-	public void run(Shell parentShell, String title, Point position) {
-		Shell shell = new Shell(parentShell, SWT.NONE);
-		shell.setText(title);
-		createContents(shell);
-		shell.setLocation(position);
-		shell.pack();
-		shell.open();
-		while (!shell.isDisposed()) {
-			if (!shell.getDisplay().readAndDispatch()) {
-				shell.getDisplay().sleep();
-			}
-		}
-	}
-
-	private void createContents(final Shell shell) {
-		shell.setLayout(new GridLayout(2, false));
-		Group group = new Group(shell, SWT.LEFT);
-		group.setText(EditorMessages.EventHandleDialog_Operation);
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		data.horizontalSpan = 2;
-		group.setLayoutData(data);
-		GridLayout gridLayout = new GridLayout();
-		group.setLayout(gridLayout);
-
-		final Button rbt1 = new Button(group, SWT.RADIO);
-		rbt1.setText(EditorMessages.EventHandleDialog_New_Handler);
-		rbt1.setSelection(true);
-		GridData gridData1 = new GridData(GridData.FILL_HORIZONTAL);
-		gridData1.horizontalSpan = 2;
-		rbt1.setLayoutData(gridData1);
-		RBSelectionAdapter rbSelectionAdapter1 = new RBSelectionAdapter(1);
-		rbt1.addSelectionListener(rbSelectionAdapter1);
-		rbt1.setToolTipText(EditorMessages.EventHandleDialog_New_Handler_ToolTip);
-		rbt1.setForeground(rbt1.getDisplay().getSystemColor(SWT.COLOR_DARK_BLUE));
-
-		final Button rbt2 = new Button(group, SWT.RADIO);
-		rbt2.setText(EditorMessages.EventHandleDialog_Rename_Handler);
-		GridData gridData2 = new GridData(GridData.FILL_HORIZONTAL);
-		gridData2.horizontalSpan = 2;
-		rbt2.setLayoutData(gridData2);
-		RBSelectionAdapter rbSelectionAdapter2 = new RBSelectionAdapter(2);
-		rbt2.addSelectionListener(rbSelectionAdapter2);
-		rbt2.setToolTipText(EditorMessages.EventHandleDialog_Rename_Handler_ToolTip);
-		rbt2.setForeground(rbt2.getDisplay().getSystemColor(SWT.COLOR_DARK_BLUE));
-		rbt2.setEnabled(oldHandler != null && oldHandler.length() > 0);
-
-		final Button rbt3 = new Button(group, SWT.RADIO);
-		rbt3.setText(EditorMessages.EventHandleDialog_Select_Existing_Handler);
-		GridData gridData3 = new GridData(GridData.FILL_HORIZONTAL);
-		gridData3.horizontalSpan = 2;
-		rbt3.setLayoutData(gridData3);
-		RBSelectionAdapter rbSelectionAdapter3 = new RBSelectionAdapter(3);
-		rbt3.addSelectionListener(rbSelectionAdapter3);
-		rbt3.setToolTipText(EditorMessages.EventHandleDialog_Select_Existing_Handler_ToolTip);
-		rbt3.setForeground(rbt3.getDisplay().getSystemColor(SWT.COLOR_DARK_BLUE));
-		rbt3.setEnabled(handlers != null && handlers.length > 0);
-
-		Label hNameLabel = new Label(shell, SWT.LEFT);
-		hNameLabel.setText(EditorMessages.EventHandleDialog_Input_Handler_Name);
-		final Text nameText = new Text(shell, SWT.BORDER);
-		nameText.setText(attrValue);
-		GridData gridData4 = new GridData();
-		gridData4.widthHint = 100;
-		nameText.setLayoutData(gridData4);
-		rbSelectionAdapter1.setText(nameText);
-		rbSelectionAdapter2.setText(nameText);
-		rbSelectionAdapter3.setText(nameText);
-
-		Label selectHandlerLabel = new Label(shell, SWT.LEFT);
-		selectHandlerLabel.setText(EditorMessages.EventHandleDialog_Select_Handler);
-		GridData gridData5 = new GridData(GridData.FILL_HORIZONTAL);
-		selectHandlerLabel.setLayoutData(gridData5);
-		final Combo handlersCombo = new Combo(shell, SWT.DROP_DOWN | SWT.READ_ONLY);
-		if (handlers != null && handlers.length != 0) {
-			handlersCombo.setItems(handlers);
-			handlersCombo.setText(handlers[0]);
-		}
-		handlersCombo.setEnabled(false);
-		GridData gridData6 = new GridData(GridData.FILL_HORIZONTAL);
-		gridData6.horizontalAlignment = SWT.LEFT;
-		handlersCombo.setLayoutData(gridData6);
-		rbSelectionAdapter1.setCombo(handlersCombo);
-		rbSelectionAdapter2.setCombo(handlersCombo);
-		rbSelectionAdapter3.setCombo(handlersCombo);
-
-		Button okButton = new Button(shell, SWT.PUSH | SWT.CR);
-		okButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				boolean exists = false;
-				if (!rbt3.getSelection()) {
-					if (nameText.getText().trim().equals("")) {
-						MessageDialog.openInformation(shell, "Dialog", EditorMessages.EventHandleDialog_Error_Handler_Name_Null);
-						nameText.forceFocus();
-						return;
-					}
-
-					exists = handlerExists(nameText.getText(), handlers);
-					if (exists) {
-						int length = nameText.getText().length();
-						nameText.setSelection(0, length);
-						nameText.forceFocus();
-						return;
-					}
-				}
-				if (rbt1.getSelection()) {
-					operation = Operation.New;
-					inputHandler = nameText.getText();
-				} else if (rbt2.getSelection()) {
-					inputHandler = nameText.getText();
-					Node rootNode = (Node) ContentAssistUtils.getNodeAt(textViewer, 0);
-					count = 0;
-					boolean usedByOther = usedByOther(rootNode, oldHandler);
-					if (usedByOther) {
-						String message = NLS.bind(EditorMessages.EventHandleDialog_Question_Handler_Name_Refactoring, oldHandler);
-						boolean confirm = MessageDialog.openConfirm(shell, "Dialog", message);
-						if (!confirm) {
-							int length = nameText.getText().length();
-							nameText.setSelection(0, length);
-							nameText.forceFocus();
-							return;
-						}
-					}
-					operation = Operation.Rename;
-				} else if (rbt3.getSelection()) {
-					operation = Operation.Select;
-					inputHandler = handlersCombo.getText();
-				}
-
-				if (exists == false) {
-					shell.dispose();
-				}
-			}
-
-			private boolean handlerExists(String handlerName, String[] handlers) {
-				for (int i = 0; i < handlers.length; i++) {
-					if (handlerName != null && handlerName.equals(handlers[i])) {
-						MessageDialog.openInformation(shell, "Dialog", EditorMessages.EventHandleDialog_Error_Handler_Name_Exists);
-						return true;
-					}
-				}
-				return false;
-			}
-		});
-		okButton.setText("OK");
-		GridData okData = new GridData();
-		okData.horizontalAlignment = GridData.CENTER;
-		okButton.setLayoutData(okData);
-
-		Button cancelButton = new Button(shell, SWT.PUSH);
-		cancelButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				shell.dispose();
-			}
-		});
-		cancelButton.setText("Cancel");
-		GridData cancelData = new GridData();
-		cancelData.horizontalAlignment = GridData.CENTER;
-		cancelData.grabExcessHorizontalSpace = true;
-		shell.setDefaultButton(okButton);
-	}
-
-	public Operation getOperation() {
-		return operation;
-	}
-
-	public String getInputHandler() {
-		return inputHandler;
-	}
-
-	private class RBSelectionAdapter extends SelectionAdapter {
-		private Text text;
-		private Combo combo;
-		private int number;
-
-		protected RBSelectionAdapter(int number) {
-			this.number = number;
-		}
-
-		public void widgetSelected(SelectionEvent e) {
-
-			if (number == 3) {
-				text.setEnabled(false);
-				combo.setEnabled(true);
-			} else {
-				text.setEnabled(true);
-				combo.setEnabled(false);
-			}
-		}
-
-		protected void setText(Text text) {
-			this.text = text;
-		}
-
-		protected void setCombo(Combo combo) {
-			this.combo = combo;
-		}
-	}
-
-	protected abstract boolean usedByOther(Node node, String oldHandler);
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/AbstractVEXRenderer.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/AbstractVEXRenderer.java
deleted file mode 100755
index 7a6df73..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/AbstractVEXRenderer.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex;
-
-import org.eclipse.swt.widgets.Composite;
-
-public abstract class AbstractVEXRenderer implements VEXRenderer {
-
-	private Composite composite;
-
-	public Composite getContainer() {
-		return composite;
-	}
-
-	public void setContainer(Composite container) {
-		this.composite = container;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/Activator.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/Activator.java
deleted file mode 100755
index 6c2d083..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/Activator.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *     Anaik Trihoreau <anaik@anyware-tech.com> - Bug 274057
- *******************************************************************************/
-package org.eclipse.xwt.vex;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class Activator extends AbstractUIPlugin {
-	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.xwt.vex";
-
-	// The shared instance
-	private static Activator plugin;
-
-	/**
-	 * The constructor
-	 */
-	public Activator() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext )
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext )
-	 */
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);
-	}
-
-	/**
-	 * Returns the shared instance
-	 * 
-	 * @return the shared instance
-	 */
-	public static Activator getDefault() {
-		return plugin;
-	}
-	
-	// Bug 274057 - Modification - Start
-	/**
-	 * Get an image from the local ImageRegistry. If the given Image's path is not already
-	 * registered, do it.
-	 * 
-	 * @param imagePath
-	 *        String, path and key identifying the image in the ImageRegistry
-	 * 
-	 * @return Image or null if nothing corresponds to the given key
-	 */
-	public static Image getImage(String imagePath)
-	{
-		return getImage(PLUGIN_ID, imagePath);
-	}
-
-	/**
-	 * Get an image at the given plug-in relative path from the local ImageRegistry. If the given
-	 * Image's path is not already registered, do it.
-	 * 
-	 * @param pluginId
-	 *        the plug-in identifier
-	 * @param imagePath
-	 *        String, path and key identifying the image in the ImageRegistry
-	 * 
-	 * @return Image or null if nothing corresponds to the given key
-	 */
-	public static Image getImage(String pluginId, String imagePath)
-	{
-		ImageRegistry imageRegistry = getDefault().getImageRegistry();
-		String key = pluginId + "_" + imagePath;
-		Image result = imageRegistry.get(key);
-
-		if (result == null && imagePath != null)
-		{
-			ImageDescriptor descriptor = AbstractUIPlugin.imageDescriptorFromPlugin(pluginId,
-				imagePath);
-			imageRegistry.put(key, descriptor);
-			result = imageRegistry.get(key);
-		}
-
-		return result;
-	}
-
-	/**
-	 * Get an image descriptor from the local ImageRegistry. If the given Image's path is not
-	 * already registered, do it.
-	 * 
-	 * @param imagePath
-	 *        String, path and key identifying the image in the ImageRegistry
-	 * 
-	 * @return ImageDescriptor or null if nothing corresponds to the given key
-	 */
-	public static ImageDescriptor getImageDescriptor(String imagePath)
-	{
-		return getImageDescriptor(PLUGIN_ID, imagePath);
-	}
-
-	/**
-	 * Get an image descriptor at the given plug-in relative path from the local ImageRegistry. If
-	 * the given Image's path is not already registered, do it.
-	 * 
-	 * @param pluginId
-	 *        the plug-in identifier
-	 * @param imagePath
-	 *        String, path and key identifying the image in the ImageRegistry
-	 * 
-	 * @return ImageDescriptor or null if nothing corresponds to the given key
-	 */
-	public static ImageDescriptor getImageDescriptor(String pluginId, String imagePath)
-	{
-		ImageRegistry imageRegistry = getDefault().getImageRegistry();
-		String key = pluginId + "_" + imagePath;
-		ImageDescriptor result = imageRegistry.getDescriptor(key);
-
-		if (result == null && imagePath != null)
-		{
-			result = AbstractUIPlugin.imageDescriptorFromPlugin(pluginId, imagePath);
-			imageRegistry.put(key, result);
-		}
-
-		return result;
-	}
-	// Bug 274057 - Modification - End
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/EditorMessages.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/EditorMessages.java
deleted file mode 100755
index 45c6b74..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/EditorMessages.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex;
-
-import org.eclipse.osgi.util.NLS;
-
-public class EditorMessages extends NLS {
-
-	public static String CustomizeComponentFactory_Customize;
-	public static String CustomizeComponentFactory_CustomizeCategory;
-	public static String CustomizeComponentFactory_VIEWER_EDITOR;
-	public static String CustomizePaletteDialog_BrowseIcon;
-	public static String CustomizePaletteDialog_BrowseLargeIcon;
-	public static String CustomizePaletteDialog_CodeTemplate;
-	public static String CustomizePaletteDialog_Content;
-	public static String CustomizePaletteDialog_ContentError;
-	public static String CustomizePaletteDialog_ErrorMessage;
-	public static String CustomizePaletteDialog_ErrorTitle;
-	public static String CustomizePaletteDialog_Header;
-	public static String CustomizePaletteDialog_Icon;
-	public static String CustomizePaletteDialog_LargeIcon;
-	public static String CustomizePaletteDialog_Message;
-	public static String CustomizePaletteDialog_Name;
-	public static String CustomizePaletteDialog_NameError;
-	public static String CustomizePaletteDialog_Scope;
-	public static String CustomizePaletteDialog_ScopeError;
-	public static String CustomizePaletteDialog_SelectionDialog_LargeText;
-	public static String CustomizePaletteDialog_SelectionDialog_LargeTitle;
-	public static String CustomizePaletteDialog_SelectionDialog_Text;
-	public static String CustomizePaletteDialog_SelectionDialog_Title;
-	public static String CustomizePaletteDialog_Title;
-	public static String CustomizePaletteDialog_ToolTip;
-
-	public static String CustomizePaletteDialog_Name_ToolTip;
-	public static String CustomizePaletteDialog_Scope_ToolTip;
-	public static String CustomizePaletteDialog_ToolTip_ToolTip;
-	public static String CustomizePaletteDialog_Content_ToolTip;
-	public static String CustomizePaletteDialog_Icon_ToolTip;
-	public static String CustomizePaletteDialog_LargeIcon_ToolTip;
-
-	public static String EventHandleDialogTitle;
-	public static String EventHandleDialog_Operation;
-	public static String EventHandleDialog_New_Handler;
-	public static String EventHandleDialog_New_Handler_ToolTip;
-	public static String EventHandleDialog_Rename_Handler;
-	public static String EventHandleDialog_Rename_Handler_ToolTip;
-	public static String EventHandleDialog_Select_Existing_Handler;
-	public static String EventHandleDialog_Select_Existing_Handler_ToolTip;
-	public static String EventHandleDialog_Select_Handler;
-	public static String EventHandleDialog_Input_Handler_Name;
-
-	public static String EventHandleDialog_Error_Handler_Name_Null;
-	public static String EventHandleDialog_Error_Handler_Name_Exists;
-	public static String EventHandleDialog_Question_Handler_Name_Refactoring;
-	public static String PaletteResourceManager_icons;
-	public static String PaletteResourceManager_toolkit;
-	public static String PaletteRootFactory_Customize;
-	public static String PaletteRootFactory_Dynamic;
-	public static String PaletteRootFactory_Shapes;
-	public static String VEXEditor_Dynamic;
-	public static String VEXEditor_DynamicCategory;
-
-	public static String VEXEditor_NODE;
-	public static String VEXEditor_SUBFIX_FAIL;
-	public static String VEXEditor_SUBFIX_OK;
-
-	public static String ImportCustomizeComponentsAction_ActionText;
-	public static String ImportCustomizeComponentsAction_DialogText;
-	public static String ImportCustomizeComponentsAction_ERROR;
-	public static String ImportCustomizeComponentsAction_ERROR_INFORMATION;
-	public static String ExportCustomizeComponentsAction_ActionText;
-	public static String ExportCustomizeComponentsAction_DialogText;
-	public static String ExportCustomizeComponentsAction_INFORMATION;
-	public static String ExportCustomizeComponentsAction_SUCCESS;
-
-	private static final String BUNDLE_NAME = EditorMessages.class.getPackage().getName() + ".messages"; //$NON-NLS-1$
-	static {
-		NLS.initializeMessages(BUNDLE_NAME, EditorMessages.class);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/PalletteSelectionTransfer.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/PalletteSelectionTransfer.java
deleted file mode 100755
index 3db8dcb..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/PalletteSelectionTransfer.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex;
-
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.dnd.TransferData;
-
-public class PalletteSelectionTransfer extends LocalSelectionTransfer {
-
-	private static PalletteSelectionTransfer _instance = new PalletteSelectionTransfer();
-	/**
-	 * The get/set methods delegate to JFace's LocalSelectionTransfer to allow
-	 * data to be exchanged freely whether the client uses this
-	 * LocalSelectionTransfer or JFace's LocalSelectionTransfer. Protected
-	 * methods such as getTypeIds() are handled via inheritance, not delegation
-	 * due to visibility constraints.
-	 */
-	private org.eclipse.jface.util.LocalSelectionTransfer jfaceTransfer = org.eclipse.jface.util.LocalSelectionTransfer.getTransfer();
-
-	private PalletteSelectionTransfer() {
-	}
-
-	/**
-	 * Returns the singleton instance of the TextTransfer class.
-	 * 
-	 * @return the singleton instance of the TextTransfer class
-	 */
-	public static PalletteSelectionTransfer getInstance() {
-		return _instance;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.util.LocalSelectionTransfer#getSelection()
-	 */
-	public ISelection getSelection() {
-		return jfaceTransfer.getSelection();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.util.LocalSelectionTransfer#getSelectionSetTime()
-	 */
-	public long getSelectionSetTime() {
-		return jfaceTransfer.getSelectionSetTime();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.util.LocalSelectionTransfer#setSelection(org.eclipse.jface.viewers.ISelection)
-	 */
-	public void setSelection(ISelection s) {
-		jfaceTransfer.setSelection(s);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.util.LocalSelectionTransfer#setSelectionSetTime(long)
-	 */
-	public void setSelectionSetTime(long time) {
-		jfaceTransfer.setSelectionSetTime(time);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.util.LocalSelectionTransfer#javaToNative(java.lang.Object, org.eclipse.swt.dnd.TransferData)
-	 */
-	public void javaToNative(Object object, TransferData transferData) {
-		jfaceTransfer.javaToNative(object, transferData);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.util.LocalSelectionTransfer#nativeToJava(org.eclipse.swt.dnd.TransferData)
-	 */
-	public Object nativeToJava(TransferData transferData) {
-		return jfaceTransfer.nativeToJava(transferData);
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/ResourceManager.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/ResourceManager.java
deleted file mode 100755
index 481acc8..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/ResourceManager.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex;
-
-import java.net.URL;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-import org.osgi.framework.Bundle;
-
-public class ResourceManager {
-	private static String ICONS_PATH = "$nl$/icons/full/"; //$NON-NLS-1$
-
-	// Use IPath and toOSString to build the names to ensure they have the
-	// slashes correct
-	private final static String OBJ = ICONS_PATH + "obj16/"; //$NON-NLS-1$
-
-	static final String PREFIX_OBJ = Activator.PLUGIN_ID + ".obj16."; //$NON-NLS-1$
-
-	public static final String IMG_OBJ_TOOL_ADD = PREFIX_OBJ + "add_tool.gif"; //$NON-NLS-1$
-	public static final String IMG_OBJ_TOOL_DELETE = PREFIX_OBJ + "delete.gif"; //$NON-NLS-1$
-	public static final String IMG_OBJ_TOOL_CUSTOM = PREFIX_OBJ + "custom_palette.gif"; //$NON-NLS-1$
-	public static final String IMG_OBJ_TOOL_EFACE = PREFIX_OBJ + "eFace16.png"; //$NON-NLS-1$
-
-	public static final String IMG_OBJ_ECLIPSE_ICON = PREFIX_OBJ + "eclipse_icon.png"; //$NON-NLS-1$
-
-	public static final String IMG_ELEMENT = PREFIX_OBJ + "Element.png"; //$NON-NLS-1$
-	public static final String IMG_TABLE = PREFIX_OBJ + "Table.gif"; //$NON-NLS-1$
-	public static final String IMG_BUSY = PREFIX_OBJ + "Busy.gif"; //$NON-NLS-1$
-
-	public static final String URL_PATH_BUSY = OBJ + "Busy.gif";
-
-	private static ResourceManager manager = new ResourceManager();
-
-	/**
-	 * The image registry containing {@link Image images}.
-	 */
-	private ImageRegistry fgImageRegistry;
-
-	/**
-	 * Declare all images
-	 */
-	private void declareImages() {
-		// Ant Editor images
-		declareRegistryImage(IMG_OBJ_TOOL_ADD, OBJ + "add_tool.gif"); //$NON-NLS-1$
-		declareRegistryImage(IMG_OBJ_TOOL_DELETE, OBJ + "delete.gif"); //$NON-NLS-1$
-		declareRegistryImage(IMG_OBJ_TOOL_CUSTOM, OBJ + "custom_palette.gif"); //$NON-NLS-1$
-		declareRegistryImage(IMG_OBJ_TOOL_EFACE, OBJ + "eFace16.png"); //$NON-NLS-1$
-		declareRegistryImage(IMG_OBJ_ECLIPSE_ICON, OBJ + "eclipse_icon.png"); //$NON-NLS-1$
-		declareRegistryImage(IMG_ELEMENT, OBJ + "Element.png"); //$NON-NLS-1$
-		declareRegistryImage(IMG_TABLE, OBJ + "Table.gif"); //$NON-NLS-1$
-		declareRegistryImage(IMG_BUSY, OBJ + "Busy.gif"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Declare an Image in the registry table.
-	 * 
-	 * @param key
-	 *            The key to use when registering the image
-	 * @param path
-	 *            The path where the image can be found. This path is relative to where this plugin class is found (i.e. typically the packages directory)
-	 */
-	private final void declareRegistryImage(String key, String path) {
-		ImageDescriptor desc = ImageDescriptor.getMissingImageDescriptor();
-		URL url = getImageURL(path);
-		if (url != null) {
-			desc = ImageDescriptor.createFromURL(url);
-		}
-		getImageRegistry().put(key, desc);
-	}
-
-	/**
-	 * Declare an Image in the registry table.
-	 * 
-	 * @param key
-	 *            The key to use when registering the image
-	 * @param path
-	 *            The path where the image can be found. This path is relative to where this plugin class is found (i.e. typically the packages directory)
-	 */
-	public static final URL getImageURL(String path) {
-		Bundle bundle = Platform.getBundle(Activator.PLUGIN_ID);
-		if (bundle != null) {
-			return FileLocator.find(bundle, new Path(path), null);
-		}
-		return null;
-	}
-
-	public ImageRegistry getImageRegistry() {
-		if (fgImageRegistry == null) {
-			fgImageRegistry = Activator.getDefault().getImageRegistry();
-			declareImages();
-		}
-		return fgImageRegistry;
-	}
-
-	public static Image getImage(String key) {
-		return manager.getImageRegistry().get(key);
-	}
-
-	public static ImageDescriptor getImageDescriptor(String path) {
-		ImageRegistry imageRegistry = manager.getImageRegistry();
-		return imageRegistry.getDescriptor(path);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXCodeSynchronizer.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXCodeSynchronizer.java
deleted file mode 100755
index 35c115c..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXCodeSynchronizer.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-
-public interface VEXCodeSynchronizer {
-
-	void add(IDOMNode node, String name);
-
-	void remove(IDOMNode node);
-
-	void update(IDOMNode node);
-
-	/**
-	 * Generate the fields
-	 * 
-	 * @return
-	 */
-	void generateFields(String fullTypeName, String argName);
-
-	/**
-	 * Remove generated fields
-	 * 
-	 * @return
-	 */
-	void removeFields(String fullTypeName, String argName);
-
-	void buildInitialization();
-
-	/**
-	 * Generate event handles
-	 * 
-	 * @return
-	 */
-	boolean generateHandles();
-
-	/**
-	 * Jump to the java definition
-	 * 
-	 * @return
-	 */
-	boolean openDefinition();
-
-	boolean codeAboutToBeChanged();
-
-	/**
-	 * Editor code get changed
-	 * 
-	 * @return
-	 */
-	boolean handleInputChanged(IDocument newInput);
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXContext.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXContext.java
deleted file mode 100755
index bd90c98..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXContext.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.xwt.vex.toolpalette.ContextType;
-import org.eclipse.xwt.vex.toolpalette.Entry;
-import org.w3c.dom.Node;
-
-public interface VEXContext {
-
-	/**
-	 * Return the Tool view ID, which is used to open Tool View
-	 * 
-	 * @return
-	 */
-	String getToolViewID();
-
-	/**
-	 * Return the template context id
-	 * 
-	 * @return
-	 */
-	String getTemplateContextID();
-
-	/**
-	 * return the default tool palette resource file
-	 * 
-	 * @return
-	 */
-	URI getDefaultPaletteFile();
-
-	/**
-	 * test if the node corresponds to UI element type
-	 * 
-	 * @param node
-	 * @return
-	 */
-	boolean hasType(Node node);
-
-	/**
-	 * test if the node is an event one
-	 * 
-	 * @param node
-	 * @param name
-	 * @return
-	 */
-	boolean isEventHandle(Node node, String name);
-
-	/**
-	 * Find the drop insert position.
-	 * 
-	 * @param node
-	 *            research start node
-	 * @param entry
-	 *            entry provides research context information such as contextType and scope
-	 * @param cursorPosition
-	 *            cursor location in the text
-	 * @return -1 if non position found
-	 */
-	int findDropPosition(Node node, Entry entry, int cursorPosition);
-
-	int findDropPosition(Node node, String scope, ContextType contextType, int cursorPosition);
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXEditor.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXEditor.java
deleted file mode 100755
index 47924a6..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXEditor.java
+++ /dev/null
@@ -1,998 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.io.IOException;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.RootEditPart;
-import org.eclipse.gef.palette.CombinedTemplateCreationEntry;
-import org.eclipse.gef.palette.PaletteEntry;
-import org.eclipse.gef.palette.PaletteGroup;
-import org.eclipse.gef.palette.PaletteRoot;
-import org.eclipse.gef.requests.SimpleFactory;
-import org.eclipse.gef.ui.palette.PaletteViewer;
-import org.eclipse.gef.ui.views.palette.PalettePage;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.SubStatusLineManager;
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentListener;
-import org.eclipse.jface.text.IRewriteTarget;
-import org.eclipse.jface.text.ITextListener;
-import org.eclipse.jface.text.ITextViewerExtension;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.TextEvent;
-import org.eclipse.jface.text.templates.ContextTypeRegistry;
-import org.eclipse.jface.text.templates.DocumentTemplateContext;
-import org.eclipse.jface.text.templates.GlobalTemplateVariables;
-import org.eclipse.jface.text.templates.Template;
-import org.eclipse.jface.text.templates.TemplateBuffer;
-import org.eclipse.jface.text.templates.TemplateContextType;
-import org.eclipse.jface.text.templates.TemplateVariable;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.window.ApplicationWindow;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DragSource;
-import org.eclipse.swt.dnd.DragSourceEvent;
-import org.eclipse.swt.dnd.DragSourceListener;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Caret;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-import org.eclipse.wst.xml.ui.internal.tabletree.XMLMultiPageEditorPart;
-import org.eclipse.xwt.vex.palette.CustomPalettePage;
-import org.eclipse.xwt.vex.palette.PaletteResourceManager;
-import org.eclipse.xwt.vex.palette.PaletteViewManager;
-import org.eclipse.xwt.vex.palette.customize.CustomizeComponentFactory;
-import org.eclipse.xwt.vex.palette.customize.model.CustomizeComponent;
-import org.eclipse.xwt.vex.palette.part.DynamicPaletteViewer;
-import org.eclipse.xwt.vex.swt.AnimatedImage;
-import org.eclipse.xwt.vex.swt.CustomSashForm;
-import org.eclipse.xwt.vex.toolpalette.Entry;
-import org.eclipse.xwt.vex.toolpalette.ToolPalette;
-import org.eclipse.xwt.vex.toolpalette.ToolPaletteFactory;
-import org.eclipse.xwt.vex.util.ImageHelper;
-import org.w3c.dom.Document;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * @author BOB
- * 
- */
-public abstract class VEXEditor extends XMLMultiPageEditorPart {
-	static boolean toolViewShown = false;
-	protected VEXContext context;
-
-	private VEXCodeSynchronizer codeSynchronizer;
-	private VEXFileChecker fileChecker;
-
-	protected VEXRenderer render;
-
-	protected Canvas container;
-	protected ScrolledComposite scrolledComposite;
-	protected SashForm sashForm;
-
-	protected AnimatedImage loadingMessage;
-
-	/** The text editor. */
-	private StructuredTextEditor fTextEditor;
-	private Refresher refresher = new Refresher();
-
-	/** Tools Palette objects */
-	private PaletteResourceManager tResourceManager;
-	private static PalettePage palettePage;
-
-	private IStatusLineManager slManager;
-
-	protected PropertyChangeListener changeListener = new PropertyChangeListener() {
-		public void propertyChange(PropertyChangeEvent evt) {
-			invokeInputChanged();
-		}
-	};
-
-	private KeyAdapter keyAdapter = new KeyAdapter() {
-
-		@Override
-		public void keyPressed(KeyEvent e) {
-			super.keyPressed(e);
-			handleKeyEvent(e);
-		}
-	};
-
-	private MouseAdapter mouseAdapter = new MouseAdapter() {
-		@Override
-		public void mouseDown(MouseEvent e) {
-			super.mouseDown(e);
-			handleMouseEvent(e);
-		}
-	};
-
-	/**
-	 * @param e
-	 */
-	public void handleMouseEvent(MouseEvent e) {
-		doDynamicPalette(new Point(e.x, e.y));
-	}
-
-	/**
-	 * @param e
-	 */
-	public void handleKeyEvent(KeyEvent e) {
-		StyledText control = (StyledText) e.widget;
-		Caret caret = control.getCaret();
-		if (caret != null) {
-			doDynamicPalette(caret.getLocation());
-		}
-	}
-
-	/**
-	 * @param point
-	 */
-	public void doDynamicPalette(Point point) {
-		IDOMNode node = getDOMNode(point);
-		if (palettePage == null) {
-			return;
-		}
-
-		if (node != null) {
-			Node parentNode = null;
-			if (node instanceof IDOMText) {
-				parentNode = node.getParentNode();
-			} else {
-				parentNode = node;
-			}
-
-			tResourceManager = getPaletteResourceManager();
-			Resource dynamicResource = tResourceManager.getDynamicResource();
-			Resource resource = tResourceManager.getResource();
-			// EMF model
-			ToolPalette toolPalette = (ToolPalette) resource.getContents().get(0);
-			EList<Entry> entries = toolPalette.getEntries();
-
-			// ToolPalette dynamicPalette = (ToolPalette) dynamicResource.getContents().get(0);
-			// EList<Entry> dynamicEntries = dynamicPalette.getEntries();
-
-			Entry dynamicEntryRoot = null;
-			for (Entry entry : entries) {
-				if (entry.getName().equals(EditorMessages.VEXEditor_Dynamic)) {
-					dynamicEntryRoot = entry;
-					break;
-				}
-			}
-			if (dynamicEntryRoot != null) {
-				entries.remove(dynamicEntryRoot);
-			}
-			dynamicEntryRoot = ToolPaletteFactory.eINSTANCE.createEntry();
-			dynamicEntryRoot.setName(EditorMessages.VEXEditor_Dynamic);
-			dynamicEntryRoot.setToolTip(EditorMessages.VEXEditor_DynamicCategory);
-			entries.add(dynamicEntryRoot);
-
-			PaletteViewer paletteViewer = ((CustomPalettePage) palettePage).getPaletteViewer();
-
-			DynamicPaletteViewer dynamicPaletteViewer = null;
-			Object objectPaletteViewer = paletteViewer.getProperty("Dynamic_PaletteViewer");
-			if (objectPaletteViewer instanceof DynamicPaletteViewer) {
-				dynamicPaletteViewer = (DynamicPaletteViewer) objectPaletteViewer;
-			}
-			if (dynamicPaletteViewer == null) {
-				return;
-			}
-			PaletteRoot root = dynamicPaletteViewer.getPaletteRoot();
-			List paletteChildren = root.getChildren();
-			PaletteGroup dynamicPaletteGroup = null;
-			for (Object object : paletteChildren) {
-				if (((PaletteGroup) object).getLabel().equals(EditorMessages.VEXEditor_Dynamic)) {
-					dynamicPaletteGroup = (PaletteGroup) object;
-					break;
-				}
-			}
-			if (dynamicPaletteGroup == null) {
-				dynamicPaletteGroup = new PaletteGroup(EditorMessages.VEXEditor_Dynamic);
-			}
-			List children = dynamicPaletteGroup.getChildren();
-			int count = children.size();
-			for (int i = 0; i < count; i++) {
-				dynamicPaletteGroup.remove((PaletteEntry) children.get(0));
-			}
-			root.remove(dynamicPaletteGroup);
-
-			// add the dynamic palette
-			if (parentNode.getLocalName() != null && !parentNode.getLocalName().equals("")) { //$NON-NLS-1$
-
-				List<Entry> insert = getSubEntries(parentNode, entries);
-				// insert.addAll(customizeComponentList);
-				if (insert != null) {
-					for (Entry ent : insert) {
-						if (ent.getScope() != null && ent.getScope().equals(parentNode.getLocalName())) {
-							Entry subEntry = (Entry) EcoreUtil.copy(ent);
-							// add sub entry
-							dynamicEntryRoot.getEntries().add(subEntry);
-
-							CombinedTemplateCreationEntry component = new CombinedTemplateCreationEntry(subEntry.getName(), subEntry.getToolTip(), subEntry, new SimpleFactory(dynamicResource.getClass()), ImageHelper.getImageDescriptor(tResourceManager, subEntry.getIcon()), ImageHelper.getImageDescriptor(tResourceManager, subEntry.getLargeIcon()));
-							dynamicPaletteGroup.add(component);
-
-						}
-					}
-				}
-				List<Entry> customizeComponentList = getCustomizeEntries();
-				for (Entry entry : customizeComponentList) {
-					if (entry.getScope() != null && entry.getScope().equals(parentNode.getLocalName())) {
-						Entry subEntry = (Entry) EcoreUtil.copy(entry);
-						// add sub entry
-						dynamicEntryRoot.getEntries().add(subEntry);
-						CombinedTemplateCreationEntry component = new CombinedTemplateCreationEntry(subEntry.getName(), subEntry.getToolTip(), subEntry, new SimpleFactory(dynamicResource.getClass()), ImageHelper.getImageDescriptor(tResourceManager, subEntry.getIcon()), ImageHelper.getImageDescriptor(tResourceManager, subEntry.getLargeIcon()));
-						dynamicPaletteGroup.add(component);
-					}
-				}
-			}
-			root.add(dynamicPaletteGroup);
-			RootEditPart rootEditPart = dynamicPaletteViewer.getRootEditPart();
-			refreshAllEditParts(rootEditPart);
-		}
-	}
-
-	public List<Entry> getCustomizeEntries() {
-		List<Entry> result = new ArrayList<Entry>();
-		List<String> customizeComponentNameList = CustomizeComponentFactory.getCustomizeComponentFactory().getCustomizeComponentNameList();
-		if (customizeComponentNameList != null) {
-			Entry entry = null;
-			for (int i = 0; i < customizeComponentNameList.size(); i++) {
-				CustomizeComponent customizeComponent = CustomizeComponentFactory.getCustomizeComponentFactory().getCustomizeComponentByName(customizeComponentNameList.get(i));
-				if (customizeComponent != null) {
-					entry = ToolPaletteFactory.eINSTANCE.createEntry();
-					entry.setName(customizeComponent.getName());
-					entry.setScope(customizeComponent.getScope());
-					entry.setIcon(customizeComponent.getIcon());
-					entry.setLargeIcon(customizeComponent.getLargeIcon());
-					entry.setToolTip(customizeComponent.getTooptip());
-					entry.setContent(customizeComponent.getContent());
-				}
-				if (entry != null) {
-					result.add(entry);
-				}
-			}
-		}
-		return result;
-	}
-
-	private void refreshAllEditParts(EditPart part) {
-		part.refresh();
-		List children = part.getChildren();
-		for (Iterator iter = children.iterator(); iter.hasNext();) {
-			EditPart child = (EditPart) iter.next();
-			refreshAllEditParts(child);
-		}
-	}
-
-	/**
-	 * @param point
-	 * @return
-	 */
-	private IDOMNode getDOMNode(Point point) {
-		// to get dom node based on current insertion point for text
-		StructuredTextViewer textViewer = fTextEditor.getTextViewer();
-		StyledText styledText = textViewer.getTextWidget();
-		Point absolutePosition = new Point(point.x, point.y);
-
-		int widgetOffset = 0;
-		try {
-			Method method = StyledText.class.getDeclaredMethod("getOffsetAtPoint", int.class, int.class, int[].class, //$NON-NLS-1$
-					boolean.class);
-			method.setAccessible(true);
-
-			int[] trailing = new int[1];
-			widgetOffset = (Integer) method.invoke(styledText, absolutePosition.x, absolutePosition.y, trailing, false);
-			widgetOffset += trailing[0];
-		} catch (Exception ex) {
-			throw new RuntimeException(ex);
-		}
-		IDOMNode node = VEXTextEditorHelper.getNode(textViewer, widgetOffset);
-
-		return node;
-	}
-
-	private List<Entry> getSubEntries(Node node, List<Entry> entries) {
-		List<Entry> result = null;
-		for (Entry entry : entries) {
-			if (entry.getName().equalsIgnoreCase(node.getLocalName())) {
-				result = entry.getEntries();
-			}
-			if (result == null) {
-				result = getSubEntries(node, entry.getEntries());
-			}
-		}
-		return result;
-	}
-
-	class Refresher implements Runnable {
-		private IDocument document;
-		private long time = -1;
-
-		public void run() {
-			if ((System.currentTimeMillis() - time) < 800 || Display.getDefault().getActiveShell() == null) {
-				Display.getDefault().timerExec(1000, this);
-				return;
-			}
-			try {
-				handleInputChanged(document);
-			} finally {
-				document = null;
-				time = -1;
-			}
-		}
-
-		public IDocument getDocument() {
-			return document;
-		}
-
-		public void setDocument(IDocument document) {
-			this.document = document;
-			this.time = System.currentTimeMillis();
-		}
-
-		public long getTime() {
-			return time;
-		}
-
-		public void setTime(long time) {
-			this.time = time;
-		}
-	}
-
-	public VEXEditor(VEXContext context) {
-		this.context = context;
-	}
-
-	public IProject getProject() {
-		IResource resource = (IResource) getEditorInput().getAdapter(IResource.class);
-		if (resource != null) {
-			return resource.getProject();
-		}
-		throw new IllegalStateException();
-	}
-
-	@Override
-	public void init(IEditorSite site, IEditorInput input) throws PartInitException {
-		super.init(site, input);
-
-		IWorkbenchPage activePage = getSite().getWorkbenchWindow().getActivePage();
-		if (activePage != null && !toolViewShown) {
-			activePage.showView(context.getToolViewID());
-			toolViewShown = true;
-		}
-	}
-
-	@Override
-	public void dispose() {
-		super.dispose();
-		if (fileChecker != null) {
-			fileChecker.deleteMarkers();
-		}
-		if (render != null) {
-			render.dispose();
-		}
-	}
-
-	@Override
-	protected Composite createPageContainer(Composite parent) {
-		sashForm = new CustomSashForm(parent, SWT.VERTICAL);
-		sashForm.setLayoutData(new GridData(GridData.FILL_BOTH));
-		sashForm.setBackgroundMode(SWT.INHERIT_DEFAULT);
-
-		scrolledComposite = new org.eclipse.swt.custom.ScrolledComposite(sashForm, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-		scrolledComposite.setExpandHorizontal(true);
-		scrolledComposite.setExpandVertical(true);
-		scrolledComposite.setBackgroundMode(SWT.INHERIT_DEFAULT);
-		scrolledComposite.setBackground(scrolledComposite.getDisplay().getSystemColor(SWT.COLOR_WHITE));
-
-		container = new Canvas(scrolledComposite, SWT.V_SCROLL | SWT.H_SCROLL);
-		container.setBackground(container.getDisplay().getSystemColor(SWT.COLOR_WHITE));
-		container.setBackgroundMode(SWT.INHERIT_DEFAULT);
-
-		container.setLayout(new GridLayout());
-
-		loadingMessage = new AnimatedImage(container, SWT.CENTER);
-		loadingMessage.setLayoutData(new GridData(GridData.FILL_BOTH));
-		loadingMessage.setHorizontalAlignment(SWT.CENTER);
-		loadingMessage.setVerticalAlignment(SWT.CENTER);
-		loadingMessage.setBackgroundMode(SWT.INHERIT_DEFAULT);
-		loadingMessage.setBackground(container.getDisplay().getSystemColor(SWT.COLOR_WHITE));
-
-		scrolledComposite.setContent(container);
-		try {
-			loadingMessage.setImageFile(ResourceManager.getImageURL(ResourceManager.URL_PATH_BUSY));
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-
-		Composite composite = super.createPageContainer(sashForm);
-
-		render = VEXRenderRegistry.getRender(container);
-		if (render == null) {
-			render = createRender(container);
-		}
-		slManager = getEditorSite().getActionBars().getStatusLineManager();
-		return composite;
-	}
-
-	protected VEXRenderer createRender(Canvas container) {
-		return null;
-	}
-
-	protected abstract VEXFileChecker createFileChecker();
-
-	public VEXFileChecker getFileChecker() {
-		if (fileChecker == null) {
-			fileChecker = createFileChecker();
-		}
-		return fileChecker;
-	}
-
-	class DocumentListener implements IDocumentListener {
-		public void documentChanged(DocumentEvent event) {
-			invokeInputChanged();
-		}
-
-		public void documentAboutToBeChanged(DocumentEvent event) {
-			codeAboutToBeChanged();
-		}
-	}
-
-	protected void codeAboutToBeChanged() {
-		VEXCodeSynchronizer codeSync = getCodeSynchronizer();
-		if (codeSync != null) {
-			codeSync.codeAboutToBeChanged();
-		}
-	}
-
-	protected void invokeInputChanged() {
-		long previous = refresher.getTime();
-		if (fTextEditor.getTextViewer() != null) {
-			refresher.setDocument(fTextEditor.getTextViewer().getDocument());
-			if (previous == -1) {
-				Display.getDefault().timerExec(1000, refresher);
-			}
-		}
-	}
-
-	@Override
-	public int addPage(IEditorPart editor, IEditorInput input) throws PartInitException {
-		if (editor instanceof StructuredTextEditor) {
-			fTextEditor = (StructuredTextEditor) editor;
-		}
-		sashForm.setWeights(new int[] { 60, 40 });
-		return super.addPage(editor, input);
-	}
-
-	@Override
-	protected void createPages() {
-		super.createPages();
-
-		if (fTextEditor != null) {
-			StructuredTextViewer textViewer = fTextEditor.getTextViewer();
-
-			textViewer.getTextWidget().addMouseListener(mouseAdapter);
-			textViewer.getTextWidget().addKeyListener(keyAdapter);
-
-			textViewer.addPostSelectionChangedListener(new ISelectionChangedListener() {
-				public void selectionChanged(SelectionChangedEvent event) {
-					StructuredTextViewer textViewer = fTextEditor.getTextViewer();
-					StyledText control = (StyledText) textViewer.getTextWidget();
-					Caret caret = control.getCaret();
-					if (caret != null) {
-						Point location = caret.getLocation();
-						// if (!isExecuted) {
-						doDynamicPalette(location);
-						// }
-						// isExecuted = false;
-					}
-				}
-			});
-
-			textViewer.addTextListener(new ITextListener() {
-				public void textChanged(TextEvent event) {
-					// TODO Auto-generated method stub
-					StructuredTextViewer textViewer = fTextEditor.getTextViewer();
-					StyledText control = (StyledText) textViewer.getTextWidget();
-					Caret caret = control.getCaret();
-					if (caret != null) {
-						Point location = caret.getLocation();
-						// updatePasteActionState(location);
-					}
-				}
-			});
-
-			IDocument document = textViewer.getDocument();
-			document.addDocumentListener(new DocumentListener());
-			invokeInputChanged();
-			initializeDND(this);
-
-			Composite composite = getContainer();
-			if (composite instanceof CTabFolder) {
-				CTabFolder tabFolder = (CTabFolder) composite;
-				createToolBar(tabFolder);
-			}
-
-			// TODO
-			for (int i = 0; i < getPageCount(); i++) {
-				if (getPageText(i).equals("")) { //$NON-NLS-1$
-					setPageImage(i, ResourceManager.getImage(ResourceManager.IMG_ELEMENT));
-				}
-				if (getPageText(i).equals("")) { //$NON-NLS-1$
-					setPageImage(i, ResourceManager.getImage(ResourceManager.IMG_TABLE));
-				}
-			}
-		}
-	}
-
-	public void initializeDND(VEXEditor editor) {
-
-		StyledText styledText = this.getTextWidget();
-		if (styledText != null) {
-			DragSource dragSource = (DragSource) styledText.getData(DND.DRAG_SOURCE_KEY);
-			if (dragSource != null) {
-				dragSource.removeDragListener(dragSourceAdapter);
-			}
-		}
-
-		DragSource dragSource = (DragSource) styledText.getData(DND.DRAG_SOURCE_KEY);
-		if (dragSource == null) {
-			dragSource = new DragSource(styledText, DND.DROP_COPY | DND.DROP_MOVE);
-
-			Transfer[] types = new Transfer[] { TextTransfer.getInstance() };
-
-			dragSource.setTransfer(types);
-		}
-		dragSource.addDragListener(dragSourceAdapter);
-
-	}
-
-	protected DragSourceListener dragSourceAdapter = new DragSourceListener() {
-
-		private String dragDataText;
-
-		public void dragFinished(DragSourceEvent event) {
-			dragDataText = null;
-		}
-
-		public void dragSetData(DragSourceEvent event) {
-			if (TextTransfer.getInstance().isSupportedType(event.dataType)) {
-				event.data = dragDataText;
-			}
-		}
-
-		public void dragStart(DragSourceEvent event) {
-			dragDataText = getTextWidget().getSelectionText();
-		}
-
-	};
-
-	public Object getAdapter(Class type) {
-		if (type == PalettePage.class) {
-			return getPalettePage();
-		}
-		if (type == PaletteResourceManager.class) {
-			return getPaletteResourceManager();
-		}
-		return super.getAdapter(type);
-	}
-
-	/**
-	 * @return
-	 */
-	public PaletteResourceManager getPaletteResourceManager() {
-		if (tResourceManager == null) {
-			tResourceManager = new PaletteResourceManager(this);
-		}
-
-		return tResourceManager;
-	}
-
-	private PalettePage getPalettePage() {
-		if (palettePage == null) {
-			PaletteViewManager manager = new PaletteViewManager(this);
-			palettePage = new CustomPalettePage(manager.getPaletteViewerProvider());
-		}
-		return palettePage;
-	}
-
-	public PalettePage getVEXEditorPalettePage() {
-		return palettePage;
-	}
-
-	protected abstract void createToolBar(CTabFolder tabFolder);
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISaveablePart#doSave(org.eclipse.core.runtime.IProgressMonitor )
-	 */
-	@Override
-	public void doSave(IProgressMonitor monitor) {
-		try {
-			updateCodeManager();
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		fTextEditor.doSave(monitor);
-	}
-
-	protected boolean handleInputChanged(IDocument newInput) {
-		VEXCodeSynchronizer codeSynchronizer = getCodeSynchronizer();
-		if (codeSynchronizer != null) {
-			boolean handling = codeSynchronizer.handleInputChanged(newInput);
-			if (!handling) {
-				return false;
-			}
-		}
-
-		// View synchronize
-		try {
-			ApplicationWindow applicationWindow = (ApplicationWindow) getSite().getPage().getWorkbenchWindow();
-			MenuManager menuManager = applicationWindow.getMenuBarManager();
-			if (menuManager != null) {
-				menuManager.updateAll(true);
-			}
-
-			String value = newInput.get();
-			IFile file = (IFile) getEditorInput().getAdapter(IFile.class);
-
-			if (container.getDisplay() != null) {
-				container.setCursor(container.getDisplay().getSystemCursor(SWT.CURSOR_WAIT));
-				while (!container.getDisplay().readAndDispatch()) {
-				}
-				if (render != null && render.updateView(value, file)) {
-					if (loadingMessage != null && !loadingMessage.isDisposed()) {
-						loadingMessage.dispose();
-						loadingMessage = null;
-					}
-					return true;
-				}
-				if (loadingMessage != null && !loadingMessage.isDisposed()) {
-					loadingMessage.stop();
-					loadingMessage.setText("No window found or an error occurs."); //$NON-NLS-1$
-				}
-			}
-		} catch (Exception e) {
-			e.printStackTrace();
-		} finally {
-			container.setCursor(null);
-			if (render != null) {
-				getFileChecker().doCheck(render.getHostClassName());
-			}
-		}
-		return false;
-	}
-
-	protected VEXCodeSynchronizer getCodeSynchronizer() {
-		if (codeSynchronizer == null) {
-			codeSynchronizer = createCodeSynchronizer();
-		}
-		return codeSynchronizer;
-	}
-
-	protected abstract VEXCodeSynchronizer createCodeSynchronizer();
-
-	public void generateCLRCodeAction() {
-		getCodeSynchronizer().generateHandles();
-	}
-
-	public void openDefinitionAction() {
-		getCodeSynchronizer().openDefinition();
-	}
-
-	protected void updateCodeManager() {
-		StructuredTextViewer textViewer = fTextEditor.getTextViewer();
-		int offset = textViewer.getTextWidget().getCaretOffset();
-		IndexedRegion treeNode = ContentAssistUtils.getNodeAt(textViewer, offset);
-		Node root = (Node) treeNode;
-		while ((root != null) && (root.getParentNode() != null) && !(root.getParentNode() instanceof Document)) {
-			root = root.getParentNode();
-		}
-		updateCodeManager((IDOMNode) root);
-	}
-
-	protected void updateCodeManager(IDOMNode parentNode) {
-		VEXCodeSynchronizer generator = getCodeSynchronizer();
-		if (generator == null) {
-			return;
-		}
-		generator.update(parentNode);
-	}
-
-	public StyledText getTextWidget() {
-		if (fTextEditor == null || fTextEditor.getTextViewer() == null) {
-			return null;
-		}
-		return fTextEditor.getTextViewer().getTextWidget();
-	}
-
-	private String updateCacheContent(IDocument newInput) {
-		StringBuffer buffer = new StringBuffer();
-		String content = newInput.get();
-		for (char c : content.toCharArray()) {
-			if (!Character.isWhitespace(c)) {
-				buffer.append(c);
-			}
-		}
-		return buffer.toString();
-	}
-
-	public StructuredTextEditor getTextEditor() {
-		return fTextEditor;
-	}
-
-	private void modifyAllRelativeHandlerName(StructuredTextViewer textViewer, int offset, String inputHandler, String oldAttrValue) {
-		IndexedRegion treeNode = ContentAssistUtils.getNodeAt(textViewer, offset);
-		Node node = (Node) treeNode;
-		modifyHandlerName(inputHandler, node, oldAttrValue);
-	}
-
-	private void modifyHandlerName(String inputHandler, Node node, String oldAttrValue) {
-		while ((node != null) && (node.getNodeType() == Node.TEXT_NODE) && (node.getParentNode() != null)) {
-			node = node.getParentNode();
-		}
-		IDOMNode domNode = (IDOMNode) node;
-
-		if (node.getNodeType() == Node.ELEMENT_NODE) {
-			if (context.hasType(domNode)) {
-				NamedNodeMap nodeMap = node.getAttributes();
-				for (int j = nodeMap.getLength() - 1; j >= 0; j--) {
-					IDOMAttr attrNode = (IDOMAttr) nodeMap.item(j);
-					String attrName = attrNode.getName();
-					String attrValue = attrNode.getValue();
-					if (context.isEventHandle(domNode, attrName)) {
-						if (attrValue.equals(oldAttrValue)) {
-							attrNode.setNodeValue(inputHandler);
-						}
-					}
-				}
-			}
-		}
-		NodeList nodes = node.getChildNodes();
-		int length = nodes.getLength();
-		for (int i = 0; i < length; i++) {
-			Node childNode = nodes.item(i);
-			if (childNode.getNodeType() == Node.ELEMENT_NODE) {
-				modifyHandlerName(inputHandler, childNode, oldAttrValue);
-			}
-		}
-	}
-
-	public VEXContext getContext() {
-		return context;
-	}
-
-	/**
-	 * Using for add an entry to VEX editor
-	 * 
-	 * @author BOB
-	 * @param entry
-	 */
-	public void defaultCreation(Entry entry) {
-		StyledText control = fTextEditor.getTextViewer().getTextWidget();
-		Caret caret = control.getCaret();
-		if (caret != null) {
-			Point location = caret.getLocation();
-			IDOMNode node = getDOMNode(location);
-			IStructuredDocumentRegion refionDocumentRegion = node.getFirstStructuredDocumentRegion();
-			int caretOffset = getAddEntryPosition(refionDocumentRegion, location, node, entry);
-			if (caretOffset >= 0) {
-				insertEntry(caretOffset, entry);
-				updateStatusBarMessage(EditorMessages.VEXEditor_NODE + entry.getName() + EditorMessages.VEXEditor_SUBFIX_OK);
-			} else {
-				updateStatusBarMessage(EditorMessages.VEXEditor_NODE + entry.getName() + EditorMessages.VEXEditor_SUBFIX_FAIL);
-			}
-			adjustAfterDefaultCreation(node);
-		}
-
-	}
-
-	/**
-	 * @param node
-	 */
-	public void adjustAfterDefaultCreation(Node node) {
-		Point location = getCurrentLocation();
-		doDynamicPalette(location);
-	}
-
-	/**
-	 * @return
-	 */
-	public Point getCurrentLocation() {
-		StructuredTextEditor textEditor = getTextEditor();
-		StructuredTextViewer textViewer = textEditor.getTextViewer();
-		StyledText control = (StyledText) textViewer.getTextWidget();
-		Caret caret = control.getCaret();
-		Point location = caret.getLocation();
-		return location;
-	}
-
-	/**
-	 * get the insert position from the given start location, using for add an node to VEX editor
-	 * 
-	 * @param refionDocumentRegion
-	 * @param startLocation
-	 * @param addNode
-	 * @param addEntry
-	 * @return
-	 */
-	protected int getAddEntryPosition(IStructuredDocumentRegion refionDocumentRegion, Point startLocation, IDOMNode addNode, Entry addEntry) {
-		StructuredTextEditor textEditor = getTextEditor();
-		StructuredTextViewer textViewer = textEditor.getTextViewer();
-		int cursor = VEXTextEditorHelper.getOffsetAtPoint(textViewer, startLocation);
-		if (addNode.getParentNode() == null) {
-			return -1;
-		}
-		int caretOffset = context.findDropPosition(addNode, addEntry, cursor);
-		if (caretOffset < 0) {
-			IStructuredDocumentRegion refionDocumentRegion2 = refionDocumentRegion.getNext();
-			int starat = 0;
-			int end = 0;
-			if (refionDocumentRegion2 != null) {
-				starat = refionDocumentRegion2.getStartOffset();
-				end = refionDocumentRegion2.getEndOffset();
-			}
-			Point point = new Point(starat, end);
-			IStructuredDocumentRegion endStructuredDocumentRegion = addNode.getEndStructuredDocumentRegion();
-			int insertPosition = -1;
-			if (endStructuredDocumentRegion != null) {
-				insertPosition = endStructuredDocumentRegion.getEnd();
-			} else {
-				IStructuredDocumentRegion startStructuredDocumentRegion = addNode.getStartStructuredDocumentRegion();
-				if (startStructuredDocumentRegion != null) {
-					insertPosition = startStructuredDocumentRegion.getEnd();
-				}
-			}
-			addNode = (IDOMNode) addNode.getParentNode();
-			int firstValue = getAddEntryPosition(refionDocumentRegion2, point, addNode, addEntry);
-			if (firstValue > insertPosition) {
-				return firstValue;
-			}
-			if (firstValue == -1) {
-				return -1;
-			}
-			return insertPosition;
-		}
-		return caretOffset;
-	}
-
-	/**
-	 * insert node at special location
-	 * 
-	 * @param caretOffset
-	 * @param addEntry
-	 */
-	private void insertEntry(int caretOffset, Entry addEntry) {
-		IDocument document = getTextEditor().getTextViewer().getDocument();
-		Template template = new Template(addEntry.getName(), "", addEntry.getContext().getName(), addEntry.getContent(), true); //$NON-NLS-1$
-		ContextTypeRegistry registry = XMLUIPlugin.getDefault().getTemplateContextRegistry();
-		if (registry != null) {
-			TemplateContextType type = registry.getContextType(template.getContextTypeId());
-
-			int length = 0;
-
-			DocumentTemplateContext templateContext = new DocumentTemplateContext(type, document, new Position(caretOffset, length));
-			if (templateContext.canEvaluate(template)) {
-				try {
-					// fix bug about dnd element undo
-					IRewriteTarget target = null;
-					StructuredTextEditor textEditor = getTextEditor();
-					StructuredTextViewer textViewer = textEditor.getTextViewer();
-					if (textViewer instanceof ITextViewerExtension) {
-						ITextViewerExtension extension = (ITextViewerExtension) textViewer;
-						target = extension.getRewriteTarget();
-					}
-					if (target != null)
-						target.beginCompoundChange();
-
-					TemplateBuffer templateBuffer = templateContext.evaluate(template);
-					String templateString = templateBuffer.getString();
-					document.replace(caretOffset, length, templateString);
-
-					StyledText styledText = getTextWidget();
-					int position = getCursorOffset(templateBuffer) + caretOffset;
-					styledText.setCaretOffset(position);
-					styledText.setFocus();
-				} catch (Exception e) {
-					throw new RuntimeException(e);
-				}
-			}
-		}
-
-		IFile file = (IFile) getTextEditor().getEditorInput().getAdapter(IFile.class);
-
-		VEXFileFormator formator = new VEXFileFormator();
-		try {
-			formator.format(document, file.getContentDescription().getContentType().getId());
-		} catch (CoreException e) {
-			e.printStackTrace();
-		}
-
-	}
-
-	/**
-	 * @param buffer
-	 * @return
-	 */
-	private int getCursorOffset(TemplateBuffer buffer) {
-		TemplateVariable[] variables = buffer.getVariables();
-		for (int i = 0; i != variables.length; i++) {
-			TemplateVariable variable = variables[i];
-			if (variable.getType().equals(GlobalTemplateVariables.Cursor.NAME))
-				return variable.getOffsets()[0];
-		}
-
-		return buffer.getString().length();
-	}
-
-	/**
-	 * update eclipse workbench status bar message
-	 * 
-	 * @author BOB
-	 * @param message
-	 */
-	private void updateStatusBarMessage(String message) {
-		if (slManager != null) {
-			if (slManager instanceof SubStatusLineManager) {
-				((SubStatusLineManager) slManager).setVisible(true);
-			}
-			slManager.setMessage(message);
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXFileChecker.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXFileChecker.java
deleted file mode 100755
index e2ee2e8..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXFileChecker.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex;
-
-public interface VEXFileChecker {
-
-	public abstract void doCheck(String javaName);
-
-	public abstract void deleteMarkers();
-
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXFileFormator.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXFileFormator.java
deleted file mode 100755
index 872715e..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXFileFormator.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex;
-
-import java.io.IOException;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatProcessor;
-import org.eclipse.wst.sse.ui.internal.FormatProcessorsExtensionReader;
-
-/**
- * @author yyang
- */
-public class VEXFileFormator {
-	public void format(IDocument document, String contentId) {
-		format(document, contentId, 0, document.getLength());
-	}
-
-	public void format(IDocument document, String contentId, int offset, int length) {
-		try {
-			IStructuredFormatProcessor processor = getFormatProcessor(contentId);
-			if (processor != null) {
-				processor.formatDocument(document, offset, length);
-			}
-		} catch (IOException e) {
-			e.printStackTrace();
-		} catch (CoreException e) {
-			e.printStackTrace();
-		}
-	}
-
-	protected IStructuredFormatProcessor getFormatProcessor(String contentTypeId) {
-		return FormatProcessorsExtensionReader.getInstance().getFormatProcessor(contentTypeId);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXRenderRegistry.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXRenderRegistry.java
deleted file mode 100755
index effa963..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXRenderRegistry.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.swt.widgets.Composite;
-
-public class VEXRenderRegistry {
-
-	public static final String EXTENSION_ID = "org.eclipse.xwt.vex.render";
-
-	private VEXRenderRegistry() {
-	}
-
-	public static VEXRenderer getRender(Composite container) {
-		VEXRenderer render = getRender();
-		if (render != null && render instanceof AbstractVEXRenderer) {
-			((AbstractVEXRenderer) render).setContainer(container);
-		}
-		return render;
-	}
-
-	public static VEXRenderer getRender() {
-		IConfigurationElement[] configElem = Platform.getExtensionRegistry().getConfigurationElementsFor(EXTENSION_ID);
-		if (configElem != null && configElem.length > 0) {
-			try {
-				return (VEXRenderer) configElem[0].createExecutableExtension("class");
-			} catch (CoreException e) {
-				return null;
-			}
-		}
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXRenderer.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXRenderer.java
deleted file mode 100755
index 9097061..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXRenderer.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex;
-
-import org.eclipse.core.resources.IFile;
-
-public interface VEXRenderer {
-
-	boolean updateView(String code, IFile file);
-
-	void dispose();
-
-	/**
-	 * return the class to handle the events
-	 * 
-	 * @return
-	 */
-	String getHostClassName();
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXSharedImages.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXSharedImages.java
deleted file mode 100755
index 6039f87..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXSharedImages.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex;
-
-import java.io.File;
-import java.net.URL;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-import org.osgi.framework.Bundle;
-
-/**
- * Image manager.
- * 
- * @author yyang
- */
-public class VEXSharedImages {
-	public static final String[] IMAGE_SUFFIX = new String[] { ".png", ".gif" };
-
-	public static final IPath ICONS_PATH = new Path("icons"); //$NON-NLS-1$
-	private static ImageRegistry fgImageRegistry;
-
-	/**
-	 * Returns the image managed under the given key in this registry.
-	 * 
-	 * @param key
-	 *            the image's key
-	 * @return the image managed under the given key
-	 */
-	public static Image get(String key) {
-		Image image = getImageRegistry().get(key);
-		if (image == null) {
-			image = ImageDescriptor.getMissingImageDescriptor().createImage();
-		}
-		return image;
-	}
-
-	public static ImageDescriptor getImageDescriptor(String key) {
-		ImageDescriptor des = getImageRegistry().getDescriptor(key);
-		if (des == null) {
-			des = ImageDescriptor.getMissingImageDescriptor();
-		}
-		return des;
-	}
-
-	private static ImageRegistry getImageRegistry() {
-		if (fgImageRegistry == null) {
-			fgImageRegistry = new ImageRegistry();
-			loadImages();
-		}
-		return fgImageRegistry;
-	}
-
-	private static void loadImages() {
-		Bundle bundle = Activator.getDefault().getBundle();
-		String prefix = "platform:/plugin/" + bundle.getSymbolicName() + "/" + ICONS_PATH + "/";
-		try {
-			URL url = FileLocator.find(bundle, ICONS_PATH, null);
-			URL iconUrl = FileLocator.toFileURL(url);
-			String iconUrlString = iconUrl.toString();
-
-			File iconFolder = new File(new Path(iconUrl.getPath()).toOSString());
-			List<File> images = new LinkedList<File>();
-			retreiveImages(iconFolder, images);
-			for (File file : images) {
-				URL fileURL = file.toURI().toURL();
-				ImageDescriptor descriptor = ImageDescriptor.createFromURL(fileURL);
-				String fileURLString = fileURL.toString();
-				if (fileURLString.startsWith(iconUrlString)) {
-					String suffix = fileURLString.substring(iconUrlString.length());
-					String key = prefix + suffix;
-					fgImageRegistry.put(key, descriptor);
-				}
-			}
-
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-
-	}
-
-	private static void retreiveImages(File icon, List<File> images) {
-		if (icon.isDirectory()) {
-			for (File file : icon.listFiles()) {
-				retreiveImages(file, images);
-			}
-		} else {
-			String name = icon.getName();
-			if (name.endsWith(IMAGE_SUFFIX[0]) || name.endsWith(IMAGE_SUFFIX[1])) {
-				images.add(icon);
-			}
-		}
-	}
-
-	public static void initialize() {
-		getImageRegistry();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXTextEditorHelper.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXTextEditorHelper.java
deleted file mode 100755
index 700d159..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXTextEditorHelper.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex;
-
-import java.lang.reflect.Method;
-
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.xwt.vex.toolpalette.ContextType;
-import org.w3c.dom.Node;
-
-public class VEXTextEditorHelper {
-	public static int getOffsetAtPoint(ITextViewer textViewer, Point absolutePosition) {
-		StyledText styledText = textViewer.getTextWidget();
-		Point relativePosition = styledText.toControl(absolutePosition);
-
-		try {
-			Method method = StyledText.class.getDeclaredMethod("getOffsetAtPoint", int.class, int.class, int[].class, boolean.class);
-			method.setAccessible(true);
-
-			int[] trailing = new int[1];
-			int widgetOffset = (Integer) method.invoke(styledText, relativePosition.x, relativePosition.y, trailing, false);
-			widgetOffset += trailing[0];
-			return widgetOffset;
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	public static IDOMNode getCurrentNode(ITextViewer textViewer, Point absolutePosition) {
-		return getNode(textViewer, getOffsetAtPoint(textViewer, absolutePosition));
-	}
-
-	public static IDOMNode getNode(ITextViewer textViewer, int documentPosition) {
-		return (IDOMNode) ContentAssistUtils.getNodeAt(textViewer, documentPosition);
-	}
-
-	/**
-	 * find the car
-	 * 
-	 * @param textViewer
-	 * @param contextType
-	 * @return
-	 */
-	public static int findContextTypeOffset(ITextViewer textViewer, ContextType contextType) {
-		int documentPosition = textViewer.getTextWidget().getCaretOffset();
-		return findContextTypeOffset(textViewer, documentPosition, contextType);
-	}
-
-	public static int findContextTypeOffset(ITextViewer textViewer, int documentPosition, ContextType contextType) {
-		Node node = getNode(textViewer, documentPosition);
-		ITextRegion completionRegion = getCompletionRegion(documentPosition, node);
-		System.out.println(completionRegion.getStart() + ", " + completionRegion.getEnd() + ", " + completionRegion.getLength());
-		String regionType = completionRegion.getType();
-
-		return documentPosition;
-	}
-
-	public static ContextType getCurrentContextType(ITextViewer textViewer) {
-		int documentPosition = textViewer.getTextWidget().getCaretOffset();
-		return getContextType(textViewer, documentPosition);
-	}
-
-	public static ContextType getContextType(ITextViewer textViewer, int documentPosition) {
-		Node node = getNode(textViewer, documentPosition);
-		ITextRegion completionRegion = getCompletionRegion(documentPosition, node);
-		System.out.println(completionRegion.getStart() + ", " + completionRegion.getEnd() + ", " + completionRegion.getLength());
-		String regionType = completionRegion.getType();
-
-		IStructuredDocumentRegion sdRegion = ContentAssistUtils.getStructuredDocumentRegion(textViewer, documentPosition);
-		return ContextType.NONE;
-	}
-
-	static public ITextRegion getCompletionRegion(int documentPosition, Node domnode) {
-		if (domnode == null) {
-			return null;
-		}
-
-		ITextRegion region = null;
-		int offset = documentPosition;
-		IStructuredDocumentRegion flatNode = null;
-		IDOMNode node = (IDOMNode) domnode;
-
-		if (node.getNodeType() == Node.DOCUMENT_NODE) {
-			if (node.getStructuredDocument().getLength() == 0) {
-				return null;
-			}
-			ITextRegion result = node.getStructuredDocument().getRegionAtCharacterOffset(offset).getRegionAtCharacterOffset(offset);
-			while (result == null) {
-				offset--;
-				result = node.getStructuredDocument().getRegionAtCharacterOffset(offset).getRegionAtCharacterOffset(offset);
-			}
-			return result;
-		}
-
-		IStructuredDocumentRegion startTag = node.getStartStructuredDocumentRegion();
-		IStructuredDocumentRegion endTag = node.getEndStructuredDocumentRegion();
-
-		// Determine if the offset is within the start
-		// IStructuredDocumentRegion, end IStructuredDocumentRegion, or
-		// somewhere within the Node's XML content.
-		if ((startTag != null) && (startTag.getStartOffset() <= offset) && (offset < startTag.getStartOffset() + startTag.getLength())) {
-			flatNode = startTag;
-		} else if ((endTag != null) && (endTag.getStartOffset() <= offset) && (offset < endTag.getStartOffset() + endTag.getLength())) {
-			flatNode = endTag;
-		}
-
-		if (flatNode != null) {
-			// the offset is definitely within the start or end tag, continue
-			// on and find the region
-			region = getCompletionRegion(offset, flatNode);
-		} else {
-			// the docPosition is neither within the start nor the end, so it
-			// must be content
-			flatNode = node.getStructuredDocument().getRegionAtCharacterOffset(offset);
-			// (pa) ITextRegion refactor
-			// if (flatNode.contains(documentPosition)) {
-			if ((flatNode.getStartOffset() <= documentPosition) && (flatNode.getEndOffset() >= documentPosition)) {
-				// we're interesting in completing/extending the previous
-				// IStructuredDocumentRegion if the current
-				// IStructuredDocumentRegion isn't plain content or if it's
-				// preceded by an orphan '<'
-				if ((offset == flatNode.getStartOffset()) && (flatNode.getPrevious() != null) && (((flatNode.getRegionAtCharacterOffset(documentPosition) != null) && (flatNode.getRegionAtCharacterOffset(documentPosition).getType() != DOMRegionContext.XML_CONTENT)) || (flatNode.getPrevious().getLastRegion().getType() == DOMRegionContext.XML_TAG_OPEN) || (flatNode.getPrevious().getLastRegion().getType() == DOMRegionContext.XML_END_TAG_OPEN))) {
-					// Is the region also the start of the node? If so, the
-					// previous IStructuredDocumentRegion is
-					// where to look for a useful region.
-					region = flatNode.getPrevious().getLastRegion();
-				} else if (flatNode.getEndOffset() == documentPosition) {
-					region = flatNode.getLastRegion();
-				} else {
-					region = flatNode.getFirstRegion();
-				}
-			} else {
-				// catch end of document positions where the docPosition isn't
-				// in a IStructuredDocumentRegion
-				region = flatNode.getLastRegion();
-			}
-		}
-
-		return region;
-	}
-
-	static protected ITextRegion getCompletionRegion(int offset, IStructuredDocumentRegion sdRegion) {
-		ITextRegion region = sdRegion.getRegionAtCharacterOffset(offset);
-		if (region == null) {
-			return null;
-		}
-
-		if (sdRegion.getStartOffset(region) == offset) {
-			// The offset is at the beginning of the region
-			if ((sdRegion.getStartOffset(region) == sdRegion.getStartOffset()) && (sdRegion.getPrevious() != null) && (!sdRegion.getPrevious().isEnded())) {
-				// Is the region also the start of the node? If so, the
-				// previous IStructuredDocumentRegion is
-				// where to look for a useful region.
-				region = sdRegion.getPrevious().getRegionAtCharacterOffset(offset - 1);
-			} else {
-				// Is there no separating whitespace from the previous region?
-				// If not,
-				// then that region is the important one
-				ITextRegion previousRegion = sdRegion.getRegionAtCharacterOffset(offset - 1);
-				if ((previousRegion != null) && (previousRegion != region) && (previousRegion.getTextLength() == previousRegion.getLength())) {
-					region = previousRegion;
-				}
-			}
-		} else {
-			// The offset is NOT at the beginning of the region
-			if (offset > sdRegion.getStartOffset(region) + region.getTextLength()) {
-				// Is the offset within the whitespace after the text in this
-				// region?
-				// If so, use the next region
-				ITextRegion nextRegion = sdRegion.getRegionAtCharacterOffset(sdRegion.getStartOffset(region) + region.getLength());
-				if (nextRegion != null) {
-					region = nextRegion;
-				}
-			} else {
-				// Is the offset within the important text for this region?
-				// If so, then we've already got the right one.
-			}
-		}
-
-		// valid WHITE_SPACE region handler (#179924)
-		if ((region != null) && (region.getType() == DOMRegionContext.WHITE_SPACE)) {
-			ITextRegion previousRegion = sdRegion.getRegionAtCharacterOffset(sdRegion.getStartOffset(region) - 1);
-			if (previousRegion != null) {
-				region = previousRegion;
-			}
-		}
-
-		return region;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/actions/GenerateActionDelegate.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/actions/GenerateActionDelegate.java
deleted file mode 100755
index 2431974..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/actions/GenerateActionDelegate.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IEditorActionDelegate;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-import org.eclipse.xwt.vex.VEXEditor;
-
-public class GenerateActionDelegate implements IEditorActionDelegate {
-	protected VEXEditor editor;
-
-	public void run(IAction action) {
-		if (editor != null) {
-			editor.generateCLRCodeAction();
-		}
-	}
-
-	public void selectionChanged(IAction action, ISelection selection) {
-		action.setEnabled(editor != null);
-	}
-
-	public void setActiveEditor(IAction action, IEditorPart targetEditor) {
-		if (targetEditor instanceof StructuredTextEditor) {
-			StructuredTextEditor structuredTextEditor = (StructuredTextEditor) targetEditor;
-			IEditorPart editorPart = structuredTextEditor.getEditorPart();
-			if (editorPart instanceof VEXEditor) {
-				editor = (VEXEditor) editorPart;
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/actions/OpenDefinitionActionDelegate.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/actions/OpenDefinitionActionDelegate.java
deleted file mode 100755
index 401405e..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/actions/OpenDefinitionActionDelegate.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IEditorActionDelegate;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-import org.eclipse.xwt.vex.VEXEditor;
-
-public class OpenDefinitionActionDelegate implements IEditorActionDelegate {
-	protected VEXEditor editor;
-
-	public void run(IAction action) {
-		if (editor != null) {
-			editor.openDefinitionAction();
-		}
-	}
-
-	public void selectionChanged(IAction action, ISelection selection) {
-		action.setEnabled(editor != null);
-	}
-
-	public void setActiveEditor(IAction action, IEditorPart targetEditor) {
-		if (targetEditor instanceof StructuredTextEditor) {
-			StructuredTextEditor structuredTextEditor = (StructuredTextEditor) targetEditor;
-			IEditorPart editorPart = structuredTextEditor.getEditorPart();
-			if (editorPart instanceof VEXEditor) {
-				editor = (VEXEditor) editorPart;
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/contentassist/CustomTemplateProposal.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/contentassist/CustomTemplateProposal.java
deleted file mode 100755
index 77e3f69..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/contentassist/CustomTemplateProposal.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.contentassist;
-
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.templates.Template;
-import org.eclipse.jface.text.templates.TemplateContext;
-import org.eclipse.jface.text.templates.TemplateProposal;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.sse.ui.internal.contentassist.IRelevanceCompletionProposal;
-
-/**
- * Purpose of this class is to make the additional proposal info into content fit for an HTML viewer (by escaping characters)
- */
-public class CustomTemplateProposal extends TemplateProposal implements IRelevanceCompletionProposal {
-	// copies of this class exist in:
-	// org.eclipse.jst.jsp.ui.internal.contentassist
-	// org.eclipse.wst.html.ui.internal.contentassist
-	// org.eclipse.wst.xml.ui.internal.contentassist
-
-	public CustomTemplateProposal(Template template, TemplateContext context, IRegion region, Image image, int relevance) {
-		super(template, context, region, image, relevance);
-	}
-
-	public String getAdditionalProposalInfo() {
-		String additionalInfo = super.getAdditionalProposalInfo();
-		return StringUtils.convertToHTMLContent(additionalInfo);
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/contentassist/SelectionCompletionProposal.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/contentassist/SelectionCompletionProposal.java
deleted file mode 100755
index 5a97020..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/contentassist/SelectionCompletionProposal.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.contentassist;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-
-public class SelectionCompletionProposal implements ICompletionProposal {
-
-	/** The string to be displayed in the completion proposal popup. */
-	private String fDisplayString;
-	/** The replacement string. */
-	private String fReplacementString;
-	/** The replacement offset. */
-	private int fReplacementOffset;
-	/** The replacement length. */
-	private int fReplacementLength;
-	/** The cursor position after this proposal has been applied. */
-	private int fCursorPosition;
-
-	/** The length of selection after this proposal has been applied. */
-	private int fSelectionlength;
-
-	/** The image to be displayed in the completion proposal popup. */
-	private Image fImage;
-	/** The context information of this proposal. */
-	private IContextInformation fContextInformation;
-	/** The additional info of this proposal. */
-	private String fAdditionalProposalInfo;
-
-	/**
-	 * Creates a new completion proposal based on the provided information. The replacement string is considered being the display string too. All remaining fields are set to <code>null</code>.
-	 * 
-	 * @param replacementString
-	 *            the actual string to be inserted into the document
-	 * @param replacementOffset
-	 *            the offset of the text to be replaced
-	 * @param replacementLength
-	 *            the length of the text to be replaced
-	 * @param cursorPosition
-	 *            the position of the cursor following the insert relative to replacementOffset
-	 */
-	public SelectionCompletionProposal(String replacementString, int replacementOffset, int replacementLength, int cursorPosition) {
-		this(replacementString, replacementOffset, replacementLength, cursorPosition, 0, null, null, null, null);
-	}
-
-	/**
-	 * Creates a new completion proposal. All fields are initialized based on the provided information.
-	 * 
-	 * @param replacementString
-	 *            the actual string to be inserted into the document
-	 * @param replacementOffset
-	 *            the offset of the text to be replaced
-	 * @param replacementLength
-	 *            the length of the text to be replaced
-	 * @param cursorPosition
-	 *            the position of the cursor following the insert relative to replacementOffset
-	 * @param image
-	 *            the image to display for this proposal
-	 * @param displayString
-	 *            the string to be displayed for the proposal
-	 * @param contextInformation
-	 *            the context information associated with this proposal
-	 * @param additionalProposalInfo
-	 *            the additional information associated with this proposal
-	 */
-	public SelectionCompletionProposal(String replacementString, int replacementOffset, int replacementLength, int cursorPosition, int selectionLength, Image image, String displayString, IContextInformation contextInformation, String additionalProposalInfo) {
-		Assert.isNotNull(replacementString);
-		Assert.isTrue(replacementOffset >= 0);
-		Assert.isTrue(replacementLength >= 0);
-		Assert.isTrue(cursorPosition >= 0);
-
-		fReplacementString = replacementString;
-		fReplacementOffset = replacementOffset;
-		fReplacementLength = replacementLength;
-		fCursorPosition = cursorPosition;
-		fSelectionlength = selectionLength;
-		fImage = image;
-		fDisplayString = displayString;
-		fContextInformation = contextInformation;
-		fAdditionalProposalInfo = additionalProposalInfo;
-	}
-
-	/*
-	 * @see ICompletionProposal#apply(IDocument)
-	 */
-	public void apply(IDocument document) {
-		try {
-			document.replace(fReplacementOffset, fReplacementLength, fReplacementString);
-		} catch (BadLocationException x) {
-			// ignore
-		}
-	}
-
-	/*
-	 * @see ICompletionProposal#getSelection(IDocument)
-	 */
-	public Point getSelection(IDocument document) {
-		return new Point(fReplacementOffset + fCursorPosition, fSelectionlength);
-	}
-
-	/*
-	 * @see ICompletionProposal#getContextInformation()
-	 */
-	public IContextInformation getContextInformation() {
-		return fContextInformation;
-	}
-
-	/*
-	 * @see ICompletionProposal#getImage()
-	 */
-	public Image getImage() {
-		return fImage;
-	}
-
-	/*
-	 * @see ICompletionProposal#getDisplayString()
-	 */
-	public String getDisplayString() {
-		if (fDisplayString != null)
-			return fDisplayString;
-		return fReplacementString;
-	}
-
-	/*
-	 * @see ICompletionProposal#getAdditionalProposalInfo()
-	 */
-	public String getAdditionalProposalInfo() {
-		return fAdditionalProposalInfo;
-	}
-
-	public void setDisplayString(String displayString) {
-		fDisplayString = displayString;
-	}
-
-	public String getReplacementString() {
-		return fReplacementString;
-	}
-
-	public void setReplacementString(String replacementString) {
-		fReplacementString = replacementString;
-	}
-
-	public int getReplacementOffset() {
-		return fReplacementOffset;
-	}
-
-	public void setReplacementOffset(int replacementOffset) {
-		fReplacementOffset = replacementOffset;
-	}
-
-	public int getReplacementLength() {
-		return fReplacementLength;
-	}
-
-	public void setReplacementLength(int replacementLength) {
-		fReplacementLength = replacementLength;
-	}
-
-	public int getCursorPosition() {
-		return fCursorPosition;
-	}
-
-	public void setCursorPosition(int cursorPosition) {
-		fCursorPosition = cursorPosition;
-	}
-
-	public int getSelectionlength() {
-		return fSelectionlength;
-	}
-
-	public void setSelectionlength(int selectionlength) {
-		fSelectionlength = selectionlength;
-	}
-
-	public void setImage(Image image) {
-		fImage = image;
-	}
-
-	public void setContextInformation(IContextInformation contextInformation) {
-		fContextInformation = contextInformation;
-	}
-
-	public void setAdditionalProposalInfo(String additionalProposalInfo) {
-		fAdditionalProposalInfo = additionalProposalInfo;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/contentassist/VEXQuickAssistProcessor.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/contentassist/VEXQuickAssistProcessor.java
deleted file mode 100755
index 6d5cf43..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/contentassist/VEXQuickAssistProcessor.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.contentassist;
-
-public class VEXQuickAssistProcessor extends org.eclipse.wst.xml.ui.internal.correction.XMLQuickAssistProcessor {
-
-	public VEXQuickAssistProcessor() {
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/contentassist/VEXTemplateCompletionProcessor.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/contentassist/VEXTemplateCompletionProcessor.java
deleted file mode 100755
index 8773b36..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/contentassist/VEXTemplateCompletionProcessor.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.contentassist;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.text.templates.ContextTypeRegistry;
-import org.eclipse.jface.text.templates.Template;
-import org.eclipse.jface.text.templates.TemplateCompletionProcessor;
-import org.eclipse.jface.text.templates.TemplateContext;
-import org.eclipse.jface.text.templates.TemplateContextType;
-import org.eclipse.jface.text.templates.TemplateException;
-import org.eclipse.jface.text.templates.TemplateProposal;
-import org.eclipse.jface.text.templates.persistence.TemplateStore;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-import org.eclipse.wst.xml.ui.internal.contentassist.ReplaceNameTemplateContext;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImageHelper;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImages;
-
-/**
- * Completion processor for XML Templates. Most of the work is already done by the XML Content Assist processor, so by the time the XMLTemplateCompletionProcessor is asked for content assist proposals, the XML content assist processor has already set the context type for templates.
- */
-public class VEXTemplateCompletionProcessor extends TemplateCompletionProcessor {
-	private static final class ProposalComparator implements Comparator {
-		public int compare(Object o1, Object o2) {
-			return ((TemplateProposal) o2).getRelevance() - ((TemplateProposal) o1).getRelevance();
-		}
-	}
-
-	private static final Comparator fgProposalComparator = new ProposalComparator();
-	private String fContextTypeId = null;
-
-	/*
-	 * Copied from super class except instead of calling createContext(viewer, region) call createContext(viewer, region, offset) instead
-	 */
-	public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int offset) {
-
-		ITextSelection selection = (ITextSelection) viewer.getSelectionProvider().getSelection();
-
-		// adjust offset to end of normalized selection
-		if (selection.getOffset() == offset) {
-			offset = selection.getOffset() + selection.getLength();
-		}
-
-		String prefix = extractPrefix(viewer, offset);
-		Region region = new Region(offset - prefix.length(), prefix.length());
-		TemplateContext context = createContext(viewer, region, offset);
-		if (context == null) {
-			return new ICompletionProposal[0];
-		}
-
-		// name of the selection variables {line, word}_selection
-		context.setVariable("selection", selection.getText()); //$NON-NLS-1$
-
-		Template[] templates = getTemplates(context.getContextType().getId());
-
-		List matches = new ArrayList();
-		for (int i = 0; i < templates.length; i++) {
-			Template template = templates[i];
-			try {
-				context.getContextType().validate(template.getPattern());
-			} catch (TemplateException e) {
-				continue;
-			}
-			if (template.matches(prefix, context.getContextType().getId())) {
-				matches.add(createProposal(template, context, (IRegion) region, getRelevance(template, prefix)));
-			}
-		}
-
-		Collections.sort(matches, fgProposalComparator);
-
-		return (ICompletionProposal[]) matches.toArray(new ICompletionProposal[matches.size()]);
-	}
-
-	/**
-	 * Creates a concrete template context for the given region in the document. This involves finding out which context type is valid at the given location, and then creating a context of this type. The default implementation returns a <code>SmartReplaceTemplateContext</code> for the context type at the given location. This takes the offset at which content assist was invoked into consideration.
-	 * 
-	 * @param viewer
-	 *            the viewer for which the context is created
-	 * @param region
-	 *            the region into <code>document</code> for which the context is created
-	 * @param offset
-	 *            the original offset where content assist was invoked
-	 * @return a template context that can handle template insertion at the given location, or <code>null</code>
-	 */
-	private TemplateContext createContext(ITextViewer viewer, IRegion region, int offset) {
-		// pretty much same code as super.createContext except create
-		// SmartReplaceTemplateContext
-		TemplateContextType contextType = getContextType(viewer, region);
-		if (contextType != null) {
-			IDocument document = viewer.getDocument();
-			return new ReplaceNameTemplateContext(contextType, document, region.getOffset(), region.getLength(), offset);
-		}
-		return null;
-	}
-
-	protected ICompletionProposal createProposal(Template template, TemplateContext context, IRegion region, int relevance) {
-		return new CustomTemplateProposal(template, context, region, getImage(template), relevance);
-	}
-
-	protected TemplateContextType getContextType(ITextViewer viewer, IRegion region) {
-		TemplateContextType type = null;
-
-		ContextTypeRegistry registry = getTemplateContextRegistry();
-		if (registry != null) {
-			type = registry.getContextType(fContextTypeId);
-		}
-
-		return type;
-	}
-
-	protected Image getImage(Template template) {
-		// just return the same image for now
-		return XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_TAG_MACRO);
-	}
-
-	private ContextTypeRegistry getTemplateContextRegistry() {
-		return XMLUIPlugin.getDefault().getTemplateContextRegistry();
-	}
-
-	protected Template[] getTemplates(String contextTypeId) {
-		Template templates[] = null;
-
-		TemplateStore store = getTemplateStore();
-		if (store != null) {
-			templates = store.getTemplates(contextTypeId);
-		}
-
-		return templates;
-	}
-
-	private TemplateStore getTemplateStore() {
-		return XMLUIPlugin.getDefault().getTemplateStore();
-	}
-
-	public void setContextType(String contextTypeId) {
-		fContextTypeId = contextTypeId;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/dom/DomHelper.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/dom/DomHelper.java
deleted file mode 100755
index f93a9d3..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/dom/DomHelper.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.dom;
-
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-
-public class DomHelper {
-	public static String XMLNS = "xmlns";
-
-	/**
-	 * resolve the namespace
-	 * 
-	 * @param node
-	 * @return
-	 */
-	public static String lookupNamespaceURI(Node node) {
-		String string = node.getNamespaceURI();
-		if (string != null) {
-			return string;
-		}
-		return lookupNamespaceURI(node, node.getPrefix());
-	}
-
-	public static String lookupNamespaceURI(Node node, Node attr) {
-		String string = attr.getNamespaceURI();
-		if (string != null) {
-			return string;
-		}
-		return lookupNamespaceURI(node, attr.getPrefix());
-	}
-
-	public static String lookupNamespaceURI(Node node, String prefix) {
-		NamedNodeMap map = node.getAttributes();
-		if (map != null && map.getLength() > 0) {
-			for (int i = 0; i < map.getLength(); i++) {
-				Node attr = map.item(i);
-				String name = attr.getNodeName();
-				if (name.startsWith(XMLNS)) {
-					int index = name.indexOf(':');
-					if (index == -1 || prefix == null) {
-						if (index == -1 && prefix == null) {
-							return attr.getNodeValue();
-						}
-						continue;
-					}
-					String prefixName = name.substring(index + 1);
-					if (prefix.equals(prefixName)) {
-						return attr.getNodeValue();
-					}
-				}
-			}
-		}
-
-		Node nodeParent = node.getParentNode();
-		if (nodeParent != null) {
-			return lookupNamespaceURI(nodeParent, prefix);
-		}
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/messages.properties b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/messages.properties
deleted file mode 100755
index 0928954..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/messages.properties
+++ /dev/null
@@ -1,84 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# /*******************************************************************************
-#  * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
-#  * All rights reserved. This program and the accompanying materials
-#  * are made available under the terms of the Eclipse Public License v1.0
-#  * which accompanies this distribution, and is available at
-#  * http://www.eclipse.org/legal/epl-v10.html
-#  * 
-#  * Contributors:
-#  *     Soyatec - initial API and implementation
-#  *******************************************************************************/
-CustomizeComponentFactory_Customize=Customize
-CustomizePaletteDialog_BrowseLargeIcon=Browse...
-CustomizePaletteDialog_CodeTemplate=Code Template:
-CustomizePaletteDialog_Content=Content:
-CustomizePaletteDialog_ContentError=The content field should have contents
-CustomizePaletteDialog_ErrorMessage=This components already exist, please use another name
-CustomizePaletteDialog_ErrorTitle=Error
-CustomizePaletteDialog_Header=Customize Dialog
-CustomizePaletteDialog_Icon=Icon:
-CustomizePaletteDialog_LargeIcon=Large Icon:
-CustomizePaletteDialog_Message=Please set information about customize component
-CustomizePaletteDialog_Name=Name:
-CustomizePaletteDialog_NameError=The name field should have contents
-CustomizePaletteDialog_Scope=Scope:
-CustomizePaletteDialog_ScopeError=The scope field should have contents
-CustomizePaletteDialog_SelectionDialog_LargeText=Please select an large icon from tree list
-CustomizePaletteDialog_SelectionDialog_LargeTitle=Select an large icon
-CustomizePaletteDialog_SelectionDialog_Text=Please select an icon from tree list
-CustomizePaletteDialog_SelectionDialog_Title=Select an icon
-CustomizePaletteDialog_Title=Customize Palette Component
-CustomizePaletteDialog_ToolTip=ToolTip:
-CustomizePaletteDialog_BrowseIcon=Browse...
-EventHandleDialogTitle = Handler Operation
-EventHandleDialog_New_Handler = New
-EventHandleDialog_New_Handler_ToolTip = Generate a new event handler
-EventHandleDialog_Rename_Handler = Rename
-EventHandleDialog_Rename_Handler_ToolTip = Rename existing event handler
-EventHandleDialog_Select_Existing_Handler = Select an existing
-EventHandleDialog_Select_Existing_Handler_ToolTip = Select an existing event handler
-EventHandleDialog_Operation = Event Handler Operation:
-EventHandleDialog_Input_Handler_Name = Name:
-EventHandleDialog_Select_Handler = Handler:
-EventHandleDialog_Error_Handler_Name_Null = The handle's name can't be null.
-EventHandleDialog_Error_Handler_Name_Exists = The name exists, please input another.
-EventHandleDialog_Question_Handler_Name_Refactoring = The handler {0} is used by other elements, do you want to rename it.
-ExportCustomizeComponentsAction_ActionText=&Export Customize Components
-ExportCustomizeComponentsAction_DialogText=export customize components
-ExportCustomizeComponentsAction_INFORMATION=Information
-ExportCustomizeComponentsAction_SUCCESS=The customize component successfuly export into file 
-PaletteResourceManager_icons=icons
-PaletteResourceManager_toolkit=tools/toolkit.toolpalette
-PaletteRootFactory_Customize=Customize
-PaletteRootFactory_Dynamic=Dynamic
-PaletteRootFactory_Shapes=Shapes
-ToolPaletteViewerProvider.VIEWER_EDITOR=VIEWER_EDITOR
-VEXEditor_Dynamic=Dynamic
-VEXEditor_DynamicCategory=Dynamic Category
-VEXEditor.Dynamic=Dynamic
-VEXEditor.DynamicCategory=Dynamic Category
-VEXEditor_NODE=node 
-VEXEditor_SUBFIX_FAIL=\ can not be insert
-VEXEditor_SUBFIX_OK=\ has been insert
-CustomizeComponentFactory_CustomizeCategory=Customize Category
-CustomizeComponentFactory_VIEWER_EDITOR=VIEWER_EDITOR
-CustomizePaletteDialog_Name_ToolTip=Please enter customized component name
-CustomizePaletteDialog_Scope_ToolTip=Please enter customized component scope
-CustomizePaletteDialog_ToolTip_ToolTip=Please enter customized component tooltip
-CustomizePaletteDialog_Content_ToolTip=Please enter customized component content template
-CustomizePaletteDialog_Icon_ToolTip=Click 'Browse' button to select an Icon for customized component
-CustomizePaletteDialog_LargeIcon_ToolTip=Click 'Browse' button to select an Large Icon for customized component
-ImportCustomizeComponentsAction_ActionText=&Import Customize Components
-ImportCustomizeComponentsAction_DialogText=import customize components
-ImportCustomizeComponentsAction_ERROR=error
-ImportCustomizeComponentsAction_ERROR_INFORMATION=the customize component can not be imported, please check the customize component file
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/CustomPalettePage.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/CustomPalettePage.java
deleted file mode 100755
index fab3903..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/CustomPalettePage.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette;
-
-import org.eclipse.gef.ui.palette.PaletteViewer;
-import org.eclipse.gef.ui.palette.PaletteViewerProvider;
-import org.eclipse.gef.ui.views.palette.PaletteViewerPage;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.xwt.vex.palette.actions.HideCustomizePartPaletteAction;
-import org.eclipse.xwt.vex.palette.actions.HideDynamicPartPaletteAction;
-import org.eclipse.xwt.vex.palette.actions.HideToolPartPaletteAction;
-
-/**
- * @author yyang
- * 
- */
-public class CustomPalettePage extends PaletteViewerPage {
-
-	private HideToolPartPaletteAction hideToolPartPaletteAction;
-	private HideDynamicPartPaletteAction hideDynamicPartPaletteAction;
-	private HideCustomizePartPaletteAction hideCustomizePartPaletteAction;
-
-	/**
-	 * Constructor
-	 * 
-	 * @param provider
-	 *            the provider used to create a PaletteViewer
-	 */
-	public CustomPalettePage(PaletteViewerProvider provider) {
-		super(provider);
-	}
-
-	/**
-	 * @return the PaletteViewer created and displayed by this page
-	 */
-	public PaletteViewer getPaletteViewer() {
-		return viewer;
-	}
-
-	@Override
-	public void setActionBars(IActionBars actionBars) {
-		// TODO Auto-generated method stub
-		hideToolPartPaletteAction = new HideToolPartPaletteAction();
-		hideDynamicPartPaletteAction = new HideDynamicPartPaletteAction();
-		hideCustomizePartPaletteAction = new HideCustomizePartPaletteAction();
-
-		fillMenuBar(actionBars.getMenuManager());
-		fillToolBar(actionBars.getToolBarManager());
-	}
-
-	private void fillMenuBar(IMenuManager manager) {
-		manager.add(hideToolPartPaletteAction);
-		manager.add(hideDynamicPartPaletteAction);
-		manager.add(hideCustomizePartPaletteAction);
-	}
-
-	protected void fillToolBar(IToolBarManager manager) {
-		manager.add(hideToolPartPaletteAction);
-		manager.add(hideDynamicPartPaletteAction);
-		manager.add(hideCustomizePartPaletteAction);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/CustomWidgetDrawer.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/CustomWidgetDrawer.java
deleted file mode 100755
index 049670d..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/CustomWidgetDrawer.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Anaik Trihoreau <anaik@anyware-tech.com> - inital API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.gef.palette.CombinedTemplateCreationEntry;
-import org.eclipse.gef.palette.PaletteDrawer;
-import org.eclipse.gef.palette.PaletteEntry;
-import org.eclipse.gef.requests.SimpleFactory;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.xwt.vex.Activator;
-import org.eclipse.xwt.vex.palette.customize.CustomWidgetManager;
-import org.eclipse.xwt.vex.palette.customize.CustomWidgetManager.Category;
-import org.eclipse.xwt.vex.palette.customize.CustomWidgetManager.Tool;
-import org.eclipse.xwt.vex.palette.customize.CustomWidgetManager.WidgetIcon;
-import org.eclipse.xwt.vex.palette.part.ToolPaletteDrawer;
-import org.eclipse.xwt.vex.toolpalette.Entry;
-import org.eclipse.xwt.vex.toolpalette.ToolPaletteFactory;
-
-public class CustomWidgetDrawer
-{
-
-	public static void addCustomWidgets(PaletteDrawer parentDrawer)
-	{
-
-		Map<Category, List<Tool>> widgetMap = CustomWidgetManager.getInstance().getWidgetCategories();
-
-		for (Map.Entry<Category, List<Tool>> widgetMapEntry: widgetMap.entrySet())
-		{
-			Category widgetCategory = widgetMapEntry.getKey();
-			List<Tool> widgetList = widgetMapEntry.getValue();
-			if (!widgetList.isEmpty())
-			{
-				// Create a new palette drawer
-				String nameCat = widgetCategory.getName();
-				PaletteDrawer componentsDrawer = findPaletteDrawer(parentDrawer, nameCat);
-				if (componentsDrawer == null)
-				{
-					componentsDrawer = new ToolPaletteDrawer(widgetCategory.getName());
-					componentsDrawer.setInitialState(PaletteDrawer.INITIAL_STATE_CLOSED);
-					ImageDescriptor iconCat = _getImageDescriptor(widgetCategory.getIcon());
-					componentsDrawer.setSmallIcon(iconCat);
-					componentsDrawer.setLargeIcon(iconCat);
-					parentDrawer.add(componentsDrawer);
-				}
-
-				for (Tool widget: widgetList)
-				{
-					Entry entry = ToolPaletteFactory.eINSTANCE.createEntry();
-					entry.setName(widget.getName());
-					entry.setScope(widget.getScope());
-					entry.setToolTip(widget.getToolTip());
-					entry.setContent(widget.getContent());
-					ImageDescriptor icon = _getImageDescriptor(widget.getIcon());
-
-					PaletteEntry paletteEntry = new CombinedTemplateCreationEntry(entry.getName(),
-						entry.getToolTip(), entry, new SimpleFactory(entry.getClass()), icon, icon);
-					componentsDrawer.add(paletteEntry);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Finds the PaletteDrawer corresponding to the given name.
-	 * 
-	 * @param name
-	 *        the name
-	 * @return the PaletteDrawer
-	 */
-	private static PaletteDrawer findPaletteDrawer(PaletteDrawer parentDrawer, String name)
-	{
-		if (name != null)
-		{
-			for (Object object: parentDrawer.getChildren())
-			{
-				if (object instanceof PaletteDrawer)
-				{
-					PaletteDrawer paletteDrawer = (PaletteDrawer) object;
-					if (name.equals(paletteDrawer.getLabel()))
-					{
-						return paletteDrawer;
-					}
-				}
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the <code>ImageDescriptor</code> corresponding to the specified
-	 * <code>WidgetIcon</code>
-	 * 
-	 * @param widgetIcon
-	 *        the <code>WidgetIcon</code>
-	 * @return the <code>ImageDescriptor</code>
-	 */
-	private static ImageDescriptor _getImageDescriptor(WidgetIcon widgetIcon)
-	{
-		return Activator.getImageDescriptor(widgetIcon.getBundleID(), widgetIcon.getPath());
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/EntryContentProvider.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/EntryContentProvider.java
deleted file mode 100755
index 89f48c4..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/EntryContentProvider.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette;
-
-import java.util.ArrayList;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.xwt.vex.toolpalette.Entry;
-import org.eclipse.xwt.vex.toolpalette.ToolPalette;
-
-/**
- * @author yyang
- * 
- */
-public class EntryContentProvider implements ITreeContentProvider {
-	static Object[] EMPTY = new Object[0];
-
-	public void dispose() {
-	}
-
-	public Object[] getElements(Object inputElement) {
-		EList<EObject> elements = null;
-		if (inputElement instanceof EObject) {
-			EObject object = (EObject) inputElement;
-			elements = object.eContents();
-		} else if (inputElement instanceof Resource) {
-			Resource resource = (Resource) inputElement;
-			EList<EObject> contents = resource.getContents();
-			if (contents.size() > 0) {
-				Object element = contents.get(0);
-				if (element instanceof ToolPalette) {
-					ToolPalette toolPalette = (ToolPalette) element;
-					elements = toolPalette.eContents();
-				}
-			}
-		}
-
-		if (elements != null) {
-			ArrayList<EObject> arrayList = new ArrayList<EObject>();
-			for (EObject object : elements) {
-				if (object instanceof Entry) {
-					arrayList.add(object);
-				}
-			}
-			return arrayList.toArray();
-		}
-		return EMPTY;
-	}
-
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-	}
-
-	public Object[] getChildren(Object parentElement) {
-		return getElements(parentElement);
-	}
-
-	public Object getParent(Object element) {
-		return null;
-	}
-
-	public boolean hasChildren(Object element) {
-		return getElements(element).length > 0;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/EntryLabelProvider.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/EntryLabelProvider.java
deleted file mode 100755
index adf730a..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/EntryLabelProvider.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.xwt.vex.VEXSharedImages;
-import org.eclipse.xwt.vex.toolpalette.Entry;
-import org.eclipse.xwt.vex.toolpalette.util.ToolPaletteHelper;
-
-/**
- * @author yyang
- * 
- */
-public class EntryLabelProvider extends LabelProvider {
-
-	public Image getImage(Object object) {
-		if (object instanceof Entry) {
-			Entry element = (Entry) object;
-			String iconPath = element.getIcon();
-			if (iconPath != null && iconPath.trim().length() > 0) {
-				return VEXSharedImages.get(iconPath);
-			}
-		}
-		return null;
-	}
-
-	public ImageDescriptor getImageDescriptor(Object object) {
-		if (object instanceof Entry) {
-			Entry element = (Entry) object;
-			String iconPath = element.getIcon();
-			if (iconPath != null && iconPath.trim().length() > 0) {
-				return VEXSharedImages.getImageDescriptor(iconPath);
-			}
-		}
-		return null;
-	}
-
-	public ImageDescriptor getLargeImageDescriptor(Object object) {
-		if (object instanceof Entry) {
-			Entry element = (Entry) object;
-			String iconPath = element.getLargeIcon();
-			if (iconPath != null && iconPath.trim().length() > 0) {
-				return VEXSharedImages.getImageDescriptor(iconPath);
-			}
-		}
-		return null;
-	}
-
-	public String getText(Object object) {
-		if (object instanceof Entry) {
-			Entry element = (Entry) object;
-			return ToolPaletteHelper.getSimpleName(element);
-		}
-		return object.toString();
-	}
-
-	public String getDescription(Object object) {
-		if (object instanceof Entry) {
-			Entry element = (Entry) object;
-			String description = element.getToolTip();
-
-			if (description != null) {
-				return description;
-			}
-			return ToolPaletteHelper.getSimpleName(element);
-		}
-		return object.toString();
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/IPaletteContentProvider.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/IPaletteContentProvider.java
deleted file mode 100755
index 155adbd..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/IPaletteContentProvider.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.xwt.vex.palette;
-
-import java.io.InputStream;
-
-public interface IPaletteContentProvider {
-	InputStream getPaletteInputStream();
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/PalettePathRegistry.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/PalettePathRegistry.java
deleted file mode 100755
index 27531ab..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/PalettePathRegistry.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.xwt.vex.palette;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IContributor;
-import org.eclipse.core.runtime.Platform;
-
-/**
- * A class of loading resourcePath and iconsPath from EXTENSION-POINT.
- * 
- * @author jliu
- */
-public class PalettePathRegistry {
-
-	public static final String EXTENSION_ID = "org.eclipse.xwt.vex.palettePath";
-
-	public static final String DEFAULT_PATH = "/tools/toolkit.toolpalette";
-	public static final String DEFAULT_ICONS_PATH = "/icons";
-
-	private static final String PATH = "path";
-	private static final String ICONS_PATH = "iconsPath";
-
-	private PalettePathRegistry() {
-	}
-
-	public static String getPath(String editorId) {
-		if (editorId == null) {
-			return DEFAULT_PATH;
-		}
-		IConfigurationElement[] configElem = Platform.getExtensionRegistry().getConfigurationElementsFor(EXTENSION_ID);
-		for (IConfigurationElement ce : configElem) {
-			IContributor contributor = ce.getContributor();
-			if (editorId.equals(contributor.getName())) {
-				String attribute = ce.getAttribute(PATH);
-				if (attribute != null) {
-					return attribute;
-				}
-			}
-		}
-		return DEFAULT_PATH;
-	}
-
-	public static String getIconsPath(String editorId) {
-		IConfigurationElement[] configElem = Platform.getExtensionRegistry().getConfigurationElementsFor(EXTENSION_ID);
-		for (IConfigurationElement ce : configElem) {
-			IContributor contributor = ce.getContributor();
-			if (editorId.equals(contributor.getName())) {
-				String attribute = ce.getAttribute(ICONS_PATH);
-				if (attribute != null) {
-					return attribute;
-				}
-			}
-		}
-		return DEFAULT_ICONS_PATH;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/PaletteResourceManager.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/PaletteResourceManager.java
deleted file mode 100755
index 94e3125..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/PaletteResourceManager.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette;
-
-import java.io.IOException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceImpl;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.xwt.vex.Activator;
-import org.eclipse.xwt.vex.EditorMessages;
-import org.eclipse.xwt.vex.VEXEditor;
-
-/**
- * This class is used to provided palette resource and iconsPath for PaletteView. The <code>reourcePath</code> and <code>iconsPath</code> can be registied through "org.eclipse.xwt.vex.palettePath" extension-point.
- * 
- * @author yyang
- */
-public class PaletteResourceManager {
-	private static final String DEFAULT_PATH = EditorMessages.PaletteResourceManager_toolkit;
-	private static final String DEFAULT_ICON_PATH = EditorMessages.PaletteResourceManager_icons;
-
-	public static final String PALETTE_CONTENT_PROVIDER_ID = Activator.PLUGIN_ID + ".paletteContentProvider";
-	public static final String GENARATOR = "generator";
-	public static final String CLASS = "class";
-
-	private URI resourcePath;
-	private URI iconsPath;
-	private Resource resource;
-	private Resource dynamicResource;
-	private Resource customizeResource;
-	private VEXEditor host = null;
-
-	/**
-	 * Constructor a new {@link PaletteResourceManager} with given editor,
-	 * 
-	 * see getAdaptor() method at VEXEditor.
-	 */
-	public PaletteResourceManager(VEXEditor editor) {
-		assert host != null;
-		host = editor;
-	}
-
-	public Resource getResource() {
-		IConfigurationElement[] configurationElements = Platform.getExtensionRegistry().getConfigurationElementsFor(PALETTE_CONTENT_PROVIDER_ID);
-		for (IConfigurationElement configurationElement : configurationElements) {
-			if (GENARATOR.equals(configurationElement.getName())) {
-				// get PaletteContentProvider here
-				try {
-					IPaletteContentProvider paletteContentProvider = (IPaletteContentProvider) configurationElement.createExecutableExtension(CLASS);
-					if (paletteContentProvider != null) {
-						ResourceSet rs = new ResourceSetImpl();
-						String location = Activator.getDefault().getStateLocation().toPortableString(); // .getBundle().getLocation();
-						URI uri = URI.createFileURI(location + "/tools/toolkit.toolpalette");
-						Resource newResource = rs.createResource(uri);
-						newResource.load(paletteContentProvider.getPaletteInputStream(), null);
-						return newResource;
-					}
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		}
-
-		if (resource == null) {
-			URI modelFilePath = getResourceFile();
-			if (modelFilePath != null) {
-				ResourceSet resourceSet = new ResourceSetImpl();
-				resource = resourceSet.getResource(modelFilePath, true);
-			}
-		}
-		return resource;
-	}
-
-	/**
-	 * get dynamic palette resource
-	 * 
-	 * @return
-	 */
-	public Resource getDynamicResource() {
-		if (dynamicResource == null) {
-			dynamicResource = new ResourceImpl();
-		}
-		return dynamicResource;
-	}
-
-	/**
-	 * get customize palette resource
-	 * 
-	 * @return
-	 */
-	public Resource getCustomizeResource() {
-		if (customizeResource == null) {
-			customizeResource = new ResourceImpl();
-		}
-		return customizeResource;
-	}
-
-	private IProject getCurrentProject() {
-		IEditorInput editorInput = host.getEditorInput();
-		IFile file = (IFile) editorInput.getAdapter(IFile.class);
-		IProject project = file.getProject();
-		if (!project.exists()) {
-			return null;
-		}
-		return project;
-	}
-
-	public URI getIconsPath() {
-		if (iconsPath == null) {
-			iconsPath = computeIconsPath();
-		}
-		return iconsPath;
-	}
-
-	private URI computeIconsPath() {
-		IProject currentProject = getCurrentProject();
-		if (currentProject != null) {
-			try {
-				currentProject.refreshLocal(IResource.DEPTH_INFINITE, null);
-			} catch (CoreException e) {
-				e.printStackTrace();
-			}
-			IFile file = currentProject.getFile(DEFAULT_ICON_PATH);
-			if (file.exists()) {
-				return URI.createFileURI(file.getLocation().toString());
-			}
-		}
-		// Loading iconsPath from Extension Registry.
-		String pluginId = host.getEditorSite().getPluginId();
-		String path = PalettePathRegistry.getIconsPath(pluginId);
-		if (!path.startsWith("/")) {
-			path = "/" + path;
-		}
-		return URI.createPlatformPluginURI(pluginId + path, false);
-	}
-
-	public URI getResourceFile() {
-		if (resourcePath == null) {
-			resourcePath = computeResourcePath();
-		}
-		return resourcePath;
-	}
-
-	private URI computeResourcePath() {
-		IProject currentProject = getCurrentProject();
-		if (currentProject != null) {
-			try {
-				currentProject.refreshLocal(IResource.DEPTH_INFINITE, null);
-			} catch (CoreException e) {
-				e.printStackTrace();
-			}
-			IFile file = currentProject.getFile(DEFAULT_PATH);
-			if (file.exists()) {
-				return URI.createFileURI(file.getLocation().toString());
-			}
-		}
-		// Loading path from Extension Registry.
-		String pluginId = host.getEditorSite().getPluginId();
-		String path = PalettePathRegistry.getPath(pluginId);
-		if (!path.startsWith("/")) {
-			path = "/" + path;
-		}
-		return URI.createPlatformPluginURI(pluginId + path, false);
-	}
-
-	public void saveToolDefinition() {
-		IProject currentProject = getCurrentProject();
-		if (currentProject != null) {
-			String currentProjectPath = currentProject.getName();
-			String filePath = currentProjectPath + "/" + DEFAULT_PATH;
-			try {
-				resource.setURI(URI.createPlatformResourceURI(filePath, false));
-				resource.save(null);
-			} catch (IOException exception) {
-				exception.printStackTrace();
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/PaletteRootFactory.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/PaletteRootFactory.java
deleted file mode 100755
index 879bd4a..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/PaletteRootFactory.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette;
-
-import java.util.List;
-
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.gef.palette.CombinedTemplateCreationEntry;
-import org.eclipse.gef.palette.PaletteContainer;
-import org.eclipse.gef.palette.PaletteDrawer;
-import org.eclipse.gef.palette.PaletteGroup;
-import org.eclipse.gef.palette.PaletteRoot;
-import org.eclipse.gef.requests.SimpleFactory;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.xwt.vex.EditorMessages;
-import org.eclipse.xwt.vex.VEXEditor;
-import org.eclipse.xwt.vex.palette.customize.CustomizeComponentFactory;
-import org.eclipse.xwt.vex.palette.customize.model.CustomizeComponent;
-import org.eclipse.xwt.vex.palette.part.ToolPaletteDrawer;
-import org.eclipse.xwt.vex.toolpalette.ContextType;
-import org.eclipse.xwt.vex.toolpalette.Entry;
-import org.eclipse.xwt.vex.toolpalette.ToolPaletteFactory;
-import org.eclipse.xwt.vex.util.ImageHelper;
-
-/**
- * Utility class that can create a GEF Palette.
- * 
- * @see #createPalette()
- */
-public class PaletteRootFactory {
-
-	/**
-	 * PaletteResourceManager can provider resourcePath and iconsPath.
-	 */
-	private PaletteResourceManager trManager;
-
-	public PaletteRootFactory(PaletteResourceManager trManager) {
-		this.trManager = trManager;
-
-	}
-
-	/**
-	 *Create a new PaletteRoot.
-	 */
-	public PaletteRoot createPaletteRoot() {
-		PaletteRoot palette = new PaletteRoot();
-		Resource resource = trManager.getResource();
-		if (resource != null) {
-			/*
-			 * ToolPalette toolPalette = (ToolPalette) resource.getContents().get(0); EList<Entry> entries = toolPalette.getEntries(); // add dynamic entry. Entry dynamicEntry = ToolPaletteFactory.eINSTANCE.createEntry(); dynamicEntry.setName(EditorMessages.PaletteRootFactory_Dynamic); dynamicEntry.setContext(ContextType.XML_TAG); entries.add(dynamicEntry); dynamicEntry.getEntries().add(ToolPaletteFactory.eINSTANCE.createEntry());
-			 * 
-			 * // add custom entry. Entry customEntry = ToolPaletteFactory.eINSTANCE.createEntry(); customEntry.setName(EditorMessages.PaletteRootFactory_Customize); customEntry.setContext(ContextType.XML_TAG); entries.add(customEntry);
-			 * 
-			 * List<CustomizeComponent> result = CustomizeComponentFactory.loadCustomizeComponents(); if (result.isEmpty()) { customEntry.getEntries().add(ToolPaletteFactory.eINSTANCE.createEntry()); } for (CustomizeComponent customizeComponent : result) { Entry subEntry = ToolPaletteFactory.eINSTANCE.createEntry(); subEntry.setName(customizeComponent.getName()); subEntry.setScope(customizeComponent.getScope()); subEntry.setIcon(customizeComponent.getIcon()); subEntry.setLargeIcon(customizeComponent.getLargeIcon()); subEntry.setToolTip(customizeComponent.getTooptip()); subEntry.setContent(customizeComponent.getContent()); subEntry.setContext(ContextType.XML_TAG); // add sub entry customEntry.getEntries().add(subEntry); }
-			 */
-
-			PaletteContainer createShapesDrawer = createShapesDrawer(resource);
-			palette.addAll(createShapesDrawer.getChildren());
-		}
-
-		return palette;
-	}
-
-	/**
-	 * Create the "Shapes" drawer.
-	 * 
-	 * @param resource
-	 */
-	private PaletteContainer createShapesDrawer(Resource resource) {
-		PaletteDrawer componentsDrawer = createPaletteDrawer(EditorMessages.PaletteRootFactory_Shapes);
-		if (trManager != null) {
-			EntryContentProvider contentProvider = new EntryContentProvider();
-			EntryLabelProvider labelProvider = new EntryLabelProvider();
-			createToolPaletteStructure(componentsDrawer, contentProvider, labelProvider, resource);
-		}
-		
-		//  Bug 274057 - Modification - Start
-		CustomWidgetDrawer.addCustomWidgets(componentsDrawer);
-		//  Bug 274057 - Modification - End
-		return componentsDrawer;
-	}
-
-	/**
-	 *Create a default Drawer.
-	 */
-	private PaletteDrawer createPaletteDrawer(String name) {
-		PaletteDrawer componentsDrawer = new ToolPaletteDrawer(name);
-		componentsDrawer.setInitialState(PaletteDrawer.INITIAL_STATE_CLOSED);
-		return componentsDrawer;
-	}
-
-	/**
-	 * Create Tools.
-	 * 
-	 * @param parentDrawer
-	 * @param contentProvider
-	 * @param labelProvider
-	 * @param resource
-	 */
-	private void createToolPaletteStructure(PaletteDrawer parentDrawer, EntryContentProvider contentProvider, EntryLabelProvider labelProvider, Object resource) {
-
-		Object[] children = contentProvider.getElements(resource);
-		String name = labelProvider.getText(resource);
-		if (name == null) {
-			return;
-		}
-		String description = labelProvider.getDescription(resource);
-		ImageDescriptor image = getImageDescriptor(resource);
-		if (image == null) {
-			image = labelProvider.getImageDescriptor(resource);
-		}
-		ImageDescriptor largeImage = getLargeImageDescriptor(resource);
-		if (largeImage == null) {
-			largeImage = labelProvider.getLargeImageDescriptor(resource);
-		}
-		if (children.length == 0) {
-			CombinedTemplateCreationEntry component = new CombinedTemplateCreationEntry(name, description, resource, new SimpleFactory(resource.getClass()), image, largeImage);
-			component.setDescription(description);
-			parentDrawer.add(component);
-		} else {
-			if (resource instanceof Entry) {
-				PaletteDrawer componentsDrawer = createPaletteDrawer(name);
-				componentsDrawer.setSmallIcon(image);
-				componentsDrawer.setLargeIcon(largeImage);
-				componentsDrawer.setDescription(description);
-				parentDrawer.add(componentsDrawer);
-				componentsDrawer.setParent(parentDrawer);
-				// if (EditorMessages.PaletteRootFactory_Dynamic.equals(name) || EditorMessages.PaletteRootFactory_Customize.equals(name)) {
-				// componentsDrawer.setInitialState(PaletteDrawer.INITIAL_STATE_OPEN);
-				// }
-
-				for (Object child : children) {
-					createToolPaletteStructure(componentsDrawer, contentProvider, labelProvider, child);
-				}
-
-			} else {
-				for (Object child : children) {
-					createToolPaletteStructure(parentDrawer, contentProvider, labelProvider, child);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Create ImageDescriptor of given object. Load images from extension registry.
-	 */
-	private ImageDescriptor getImageDescriptor(Object source) {
-		if (source instanceof Entry) {
-			return ImageHelper.getImageDescriptor(trManager, ((Entry) source).getIcon());
-		}
-		return null;
-	}
-
-	/**
-	 *Create Large ImageDescriptor of given object. Load images from extension registry.
-	 */
-	private ImageDescriptor getLargeImageDescriptor(Object source) {
-		if (source instanceof Entry) {
-			return ImageHelper.getImageDescriptor(trManager, ((Entry) source).getLargeIcon());
-		}
-		return null;
-	}
-
-	/**
-	 * Creates the PaletteRoot and adds all palette elements. Use this factory method to create a new palette for your graphical editor.
-	 * 
-	 * @param editorPart
-	 * 
-	 * @return a new PaletteRoot
-	 */
-	public static PaletteRoot createPalette(IEditorPart editorPart) {
-		PaletteRoot palette = new PaletteRoot();
-		if (!(editorPart instanceof VEXEditor)) {
-			return palette;
-		}
-		PaletteResourceManager trManager = (PaletteResourceManager) editorPart.getAdapter(PaletteResourceManager.class);
-		PaletteRootFactory paletteFactory = new PaletteRootFactory(trManager);
-		return paletteFactory.createPaletteRoot();
-	}
-
-	public static PaletteRoot createPaletteByResourceManager(PaletteResourceManager resourceManager) {
-		PaletteRootFactory paletteFactory = new PaletteRootFactory(resourceManager);
-		return paletteFactory.createPaletteRoot();
-	}
-
-	public static PaletteRoot createDynamicPalette(IEditorPart editorPart) {
-		PaletteRoot palette = new PaletteRoot();
-		if (!(editorPart instanceof VEXEditor)) {
-			return palette;
-		}
-		PaletteResourceManager trManager = (PaletteResourceManager) editorPart.getAdapter(PaletteResourceManager.class);
-		PaletteRootFactory paletteFactory = new PaletteRootFactory(trManager);
-		return paletteFactory.createDynamicPaletteRoot();
-	}
-
-	public PaletteRoot createDynamicPaletteRoot() {
-		PaletteRoot palette = new PaletteRoot();
-		PaletteGroup dynamicGroup = new PaletteGroup(EditorMessages.VEXEditor_Dynamic);
-		palette.add(dynamicGroup);
-		return palette;
-	}
-
-	public static PaletteRoot createCustomizePalette(IEditorPart editorPart) {
-		PaletteRoot palette = new PaletteRoot();
-		if (!(editorPart instanceof VEXEditor)) {
-			return palette;
-		}
-		PaletteResourceManager trManager = (PaletteResourceManager) editorPart.getAdapter(PaletteResourceManager.class);
-		PaletteRootFactory paletteFactory = new PaletteRootFactory(trManager);
-		return paletteFactory.createCustomizePaletteRoot();
-	}
-
-	public PaletteRoot createCustomizePaletteRoot() {
-		PaletteRoot palette = new PaletteRoot();
-
-		PaletteGroup customizeGroup = new PaletteGroup("Customize");
-		Resource resource = trManager.getCustomizeResource();
-		if (resource != null) {
-			List<CustomizeComponent> result = CustomizeComponentFactory.loadCustomizeComponents();
-			for (CustomizeComponent customizeComponent : result) {
-				Entry customizeEntry = ToolPaletteFactory.eINSTANCE.createEntry();
-				customizeEntry.setName(customizeComponent.getName());
-				customizeEntry.setScope(customizeComponent.getScope());
-				String iconString = customizeComponent.getIcon();
-				if (iconString != null && iconString.length() > 0) {
-					customizeEntry.setIcon(iconString);
-				}
-				iconString = customizeComponent.getLargeIcon();
-				if (iconString != null && iconString.length() > 0) {
-					customizeEntry.setLargeIcon(iconString);
-				}
-				customizeEntry.setToolTip(customizeComponent.getTooptip());
-				customizeEntry.setContent(customizeComponent.getContent());
-				customizeEntry.setContext(ContextType.XML_TAG);
-				CombinedTemplateCreationEntry component = new CombinedTemplateCreationEntry(customizeEntry.getName(), customizeEntry.getToolTip(), customizeEntry, new SimpleFactory(resource.getClass()), ImageHelper.getImageDescriptor(trManager, customizeEntry.getIcon()), ImageHelper.getImageDescriptor(trManager, customizeEntry.getLargeIcon()));
-
-				customizeGroup.add(component);
-			}
-		}
-		palette.add(customizeGroup);
-		return palette;
-	}
-
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/PaletteViewManager.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/PaletteViewManager.java
deleted file mode 100755
index a8d9b2f..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/PaletteViewManager.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette;
-
-import org.eclipse.gef.DefaultEditDomain;
-import org.eclipse.gef.EditDomain;
-import org.eclipse.gef.palette.PaletteRoot;
-import org.eclipse.gef.ui.palette.PaletteViewerProvider;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.xwt.vex.palette.part.ToolPaletteViewerProvider;
-
-/**
- * @author bqian
- * 
- */
-public class PaletteViewManager {
-	private PaletteViewerProvider provider;
-	private PaletteRoot paletteRoot;
-	private IEditorPart editorPart;
-	private DefaultEditDomain editDomain;
-
-	/**
-	 * @param editorPart
-	 */
-	public PaletteViewManager(IEditorPart editorPart) {
-		this.editorPart = editorPart;
-	}
-
-	public PaletteViewerProvider getPaletteViewerProvider() {
-		if (provider == null)
-			provider = createPaletteViewerProvider();
-		return provider;
-	}
-
-	private PaletteViewerProvider createPaletteViewerProvider() {
-		return new ToolPaletteViewerProvider(getEditDomain(), editorPart);
-	}
-
-	private EditDomain getEditDomain() {
-		if (editDomain == null) {
-			editDomain = new DefaultEditDomain(editorPart);
-			editDomain.setPaletteRoot(getPaletteRoot());
-		}
-		return editDomain;
-	}
-
-	public PaletteRoot getPaletteRoot() {
-		if (paletteRoot == null)
-			paletteRoot = PaletteRootFactory.createPalette(editorPart);
-		return paletteRoot;
-	}
-
-	public PaletteRoot getPaletteRootByResourceManager(PaletteResourceManager resourceManager) {
-		paletteRoot = PaletteRootFactory.createPaletteByResourceManager(resourceManager);
-		return paletteRoot;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/actions/HideCustomizePartPaletteAction.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/actions/HideCustomizePartPaletteAction.java
deleted file mode 100755
index 28875cc..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/actions/HideCustomizePartPaletteAction.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette.actions;
-
-import org.eclipse.gef.ui.palette.PaletteViewer;
-import org.eclipse.jface.action.Action;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.xwt.vex.Activator;
-import org.eclipse.xwt.vex.VEXEditor;
-import org.eclipse.xwt.vex.palette.CustomPalettePage;
-import org.eclipse.xwt.vex.palette.part.CustomizePaletteViewer;
-import org.eclipse.xwt.vex.palette.part.DynamicPaletteViewer;
-import org.eclipse.xwt.vex.swt.CustomSashForm;
-
-public class HideCustomizePartPaletteAction extends Action {
-
-	private PaletteViewer paletteViewer;
-	private CustomizePaletteViewer customizePaletteViewer;
-	private DynamicPaletteViewer dynamicPaletteViewer;
-	private CustomSashForm sashFormMain;
-	private CustomSashForm dynamicAndCustomizeSashForm;
-	private Composite customizeComposite;
-
-	public HideCustomizePartPaletteAction() {
-		super("Hide/Show Customize Tools.", AS_CHECK_BOX);
-		setToolTipText("Hide Customize Tools.");
-		setImageDescriptor(Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/full/obj16/hide1.gif"));
-	}
-
-	@Override
-	public void run() {
-		// TODO Auto-generated method stub
-		Object editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
-		if (editor instanceof VEXEditor) {
-			paletteViewer = ((CustomPalettePage) ((VEXEditor) editor).getVEXEditorPalettePage()).getPaletteViewer();
-		}
-
-		Object mainForm = paletteViewer.getProperty("SashFormMain");
-		if (mainForm instanceof CustomSashForm) {
-			sashFormMain = (CustomSashForm) mainForm;
-		}
-
-		Object objectDynamicPalette = paletteViewer.getProperty("Dynamic_PaletteViewer");
-		if (objectDynamicPalette instanceof DynamicPaletteViewer) {
-			dynamicPaletteViewer = (DynamicPaletteViewer) objectDynamicPalette;
-		}
-
-		Object objectCustomizePalette = paletteViewer.getProperty("Customize_PaletteViewer");
-		if (objectCustomizePalette instanceof CustomizePaletteViewer) {
-			customizePaletteViewer = (CustomizePaletteViewer) objectCustomizePalette;
-		}
-
-		Object customizeSashForm = customizePaletteViewer.getProperty("DynamicAndCustomizeSashForm");
-		if (customizeSashForm instanceof CustomSashForm) {
-			dynamicAndCustomizeSashForm = (CustomSashForm) customizeSashForm;
-		}
-
-		Object composite = customizePaletteViewer.getProperty("CustomizeComposite");
-		if (composite instanceof Composite) {
-			customizeComposite = (Composite) composite;
-		}
-
-		if (isChecked()) {
-			customizePaletteViewer.setVisible(false);
-			customizeComposite.setVisible(false);
-			dynamicAndCustomizeSashForm.setWeights((new int[] { 1, 0 }));
-			if ((customizePaletteViewer.isVisible() == false) && (dynamicPaletteViewer.isVisible() == false)) {
-				dynamicAndCustomizeSashForm.setVisible(false);
-				sashFormMain.setWeights(new int[] { 1, 0 });
-			}
-			setToolTipText("Show Customize Tools.");
-		} else {
-			customizeComposite.setVisible(true);
-			customizePaletteViewer.setVisible(true);
-			dynamicAndCustomizeSashForm.setVisible(true);
-			dynamicAndCustomizeSashForm.setWeights((new int[] { 1, 1 }));
-			sashFormMain.setWeights(new int[] { 2, 1 });
-			setToolTipText("Hide Customize Tools.");
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/actions/HideDynamicPartPaletteAction.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/actions/HideDynamicPartPaletteAction.java
deleted file mode 100755
index 53968b7..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/actions/HideDynamicPartPaletteAction.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette.actions;
-
-import org.eclipse.gef.ui.palette.PaletteViewer;
-import org.eclipse.jface.action.Action;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.xwt.vex.Activator;
-import org.eclipse.xwt.vex.VEXEditor;
-import org.eclipse.xwt.vex.palette.CustomPalettePage;
-import org.eclipse.xwt.vex.palette.part.CustomizePaletteViewer;
-import org.eclipse.xwt.vex.palette.part.DynamicPaletteViewer;
-import org.eclipse.xwt.vex.swt.CustomSashForm;
-
-public class HideDynamicPartPaletteAction extends Action {
-
-	private PaletteViewer paletteViewer;
-	private DynamicPaletteViewer dynamicPaletteViewer;
-	private CustomizePaletteViewer customizePaletteViewer;
-	private CustomSashForm sashFormMain;
-	private CustomSashForm dynamicAndCustomizeSashForm;
-	private Composite dynamicComposite;
-
-	public HideDynamicPartPaletteAction() {
-		super("Hide/Show Contextual Tools", AS_CHECK_BOX);
-		// TODO Auto-generated constructor stub
-		setToolTipText("Hide Contextual Tools");
-		setImageDescriptor(Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/full/obj16/hide2.gif"));
-	}
-
-	@Override
-	public void run() {
-		// TODO Auto-generated method stub
-		Object editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
-		if (editor instanceof VEXEditor) {
-			paletteViewer = ((CustomPalettePage) ((VEXEditor) editor).getVEXEditorPalettePage()).getPaletteViewer();
-		}
-
-		Object mainForm = paletteViewer.getProperty("SashFormMain");
-		if (mainForm instanceof CustomSashForm) {
-			sashFormMain = (CustomSashForm) mainForm;
-		}
-
-		Object objectDynamicPalette = paletteViewer.getProperty("Dynamic_PaletteViewer");
-		if (objectDynamicPalette instanceof DynamicPaletteViewer) {
-			dynamicPaletteViewer = (DynamicPaletteViewer) objectDynamicPalette;
-		}
-
-		Object objectCustomizePalette = paletteViewer.getProperty("Customize_PaletteViewer");
-		if (objectCustomizePalette instanceof CustomizePaletteViewer) {
-			customizePaletteViewer = (CustomizePaletteViewer) objectCustomizePalette;
-		}
-
-		Object dynamicSashForm = dynamicPaletteViewer.getProperty("DynamicAndCustomizeSashForm");
-		if (dynamicSashForm instanceof CustomSashForm) {
-			dynamicAndCustomizeSashForm = (CustomSashForm) dynamicSashForm;
-		}
-
-		Object composite = dynamicPaletteViewer.getProperty("DynamicComposite");
-		if (composite instanceof Composite) {
-			dynamicComposite = (Composite) composite;
-		}
-
-		if (isChecked()) {
-			dynamicPaletteViewer.setVisible(false);
-			dynamicComposite.setVisible(false);
-			dynamicAndCustomizeSashForm.setWeights((new int[] { 0, 1 }));
-			if ((customizePaletteViewer.isVisible() == false) && (dynamicPaletteViewer.isVisible() == false)) {
-				dynamicAndCustomizeSashForm.setVisible(false);
-				sashFormMain.setWeights(new int[] { 1, 0 });
-			}
-			setToolTipText("Show Contextual Tools");
-		} else {
-			dynamicPaletteViewer.setVisible(true);
-			dynamicComposite.setVisible(true);
-			dynamicAndCustomizeSashForm.setVisible(true);
-			dynamicAndCustomizeSashForm.setWeights((new int[] { 1, 1 }));
-			sashFormMain.setWeights(new int[] { 2, 1 });
-			setToolTipText("Hide Contextual Tools");
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/actions/HideToolPartPaletteAction.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/actions/HideToolPartPaletteAction.java
deleted file mode 100755
index e912eda..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/actions/HideToolPartPaletteAction.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette.actions;
-
-import org.eclipse.gef.ui.palette.PaletteViewer;
-import org.eclipse.jface.action.Action;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.xwt.vex.Activator;
-import org.eclipse.xwt.vex.VEXEditor;
-import org.eclipse.xwt.vex.palette.CustomPalettePage;
-import org.eclipse.xwt.vex.swt.CustomSashForm;
-
-public class HideToolPartPaletteAction extends Action {
-
-	private PaletteViewer paletteViewer;
-	private CustomSashForm toolSashForm;
-	private CustomSashForm sashFormMain;
-
-	public HideToolPartPaletteAction() {
-		super("Hide/Show Standard Tools", AS_CHECK_BOX);
-		// TODO Auto-generated constructor stub
-		setToolTipText("Hide Standard Tools");
-		setImageDescriptor(Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/full/obj16/hide3.gif"));
-	}
-
-	@Override
-	public void run() {
-		// TODO Auto-generated method stub
-		Object editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
-		if (editor instanceof VEXEditor) {
-			paletteViewer = ((CustomPalettePage) ((VEXEditor) editor).getVEXEditorPalettePage()).getPaletteViewer();
-		}
-
-		Object toolForm = paletteViewer.getProperty("ToolSashForm");
-		if (toolForm instanceof CustomSashForm) {
-			toolSashForm = (CustomSashForm) toolForm;
-		}
-
-		Object mainForm = paletteViewer.getProperty("SashFormMain");
-		if (mainForm instanceof CustomSashForm) {
-			sashFormMain = (CustomSashForm) mainForm;
-		}
-
-		if (isChecked()) {
-			toolSashForm.setVisible(false);
-			sashFormMain.setWeights(new int[] { 0, 1 });
-			setToolTipText("Show Standard Tools");
-		} else {
-			toolSashForm.setVisible(true);
-			sashFormMain.setWeights(new int[] { 2, 1 });
-			setToolTipText("Hide Standard Tools");
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/CustomWidgetManager.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/CustomWidgetManager.java
deleted file mode 100755
index 3602f99..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/CustomWidgetManager.java
+++ /dev/null
@@ -1,326 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *     Anaik Trihoreau <anaik@anyware-tech.com> - Bug 274057
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette.customize;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.osgi.framework.Bundle;
-
-/**
- * 
- * Class allowing to include custom widgets in the XWT palette
- * Contributors:
- *     Anaik Trihoreau <anaik@anyware-tech.com> - inital API and implementation
- */
-public class CustomWidgetManager
-{
-	private static final String CUSTOM_PALETTE_EXTENSION_ID = "org.eclipse.xwt.vex.customPalette";
-	private static final String WIDGET_CATEGORY_ELEMENT = "category";
-	private static final String WIDGET_CATEGORY_NAME_ATTR = "name";
-	private static final String WIDGET_CATEGORY_ICON_ATTR = "icon";
-	private static final String WIDGET_ELEMENT = "tool";
-	private static final String WIDGET_NAME_ATTR = "name";
-	private static final String WIDGET_CLASS_ATTR = "class";
-	private static final String WIDGET_SCOPE_ATTR = "scope";
-	private static final String WIDGET_ICON_ATTR = "icon";
-	private static final String WIDGET_TOOLTIP_ATTR = "tooltip";
-	private static final String WIDGET_CONTENT_ATTR = "content";
-
-	private static CustomWidgetManager __instance;
-
-	private Map<Category, List<Tool>> widgetMap = null;
-	private Collection<Class<?>> widgetClassList = null;
-
-	/**
-	 * Private constructor
-	 */
-	private CustomWidgetManager()
-	{
-		initWidgetCategories();
-	}
-
-	/**
-	 * Returns the singleton
-	 * 
-	 * @return
-	 */
-	public static CustomWidgetManager getInstance()
-	{
-		if (__instance == null)
-		{
-			__instance = new CustomWidgetManager();
-		}
-		return __instance;
-	}
-
-	/**
-	 * Returns the custom widgets which are defined in the extension. The custom widget are grouped
-	 * by categories
-	 * 
-	 * @return the custom widgets grouped by categories
-	 */
-	public Map<Category, List<Tool>> getWidgetCategories()
-	{
-		return widgetMap;
-	}
-
-	/**
-	 * Returns the list of the classes corresponding to the custom widgets which are defined in the
-	 * extension.
-	 * 
-	 * @return the list of the classes
-	 */
-	public Collection<Class<?>> getWidgetClassList()
-	{
-		return widgetClassList;
-	}
-
-	/**
-	 * Initialize the custom widgets which are defined in the extension
-	 */
-	private void initWidgetCategories()
-	{
-		// Init
-		widgetMap = new HashMap<Category, List<Tool>>();
-		widgetClassList = new ArrayList<Class<?>>();
-
-		List<Tool> widgetList = null;
-
-		List<IConfigurationElement> confEltList = getExtensions(CUSTOM_PALETTE_EXTENSION_ID);
-		if (confEltList != null && !confEltList.isEmpty())
-		{
-			for (Iterator<IConfigurationElement> it = confEltList.iterator(); it.hasNext();)
-			{
-				IConfigurationElement cfgElt = it.next();
-				String eltName = cfgElt.getName();
-
-				if (WIDGET_CATEGORY_ELEMENT.equals(eltName))
-				{
-					// Name of the category
-					String nameCat = cfgElt.getAttribute(WIDGET_CATEGORY_NAME_ATTR);
-					if (nameCat == null || nameCat.length() == 0)
-					{
-						continue;
-					}
-
-					// Gets the extension bundle
-					String extPlugInID = cfgElt.getContributor().getName();
-
-					// Gets the icon of the category
-					WidgetIcon iconCat = new WidgetIcon(extPlugInID,
-						cfgElt.getAttribute(WIDGET_CATEGORY_ICON_ATTR));
-
-					// Adds the new category
-					Category widgetCat = new Category(nameCat, iconCat);
-					widgetList = widgetMap.get(widgetCat);
-					if (widgetList == null)
-					{
-						widgetList = new ArrayList<Tool>();
-						widgetMap.put(widgetCat, widgetList);
-					}
-					// Gets the Widget elements
-					IConfigurationElement[] widgetElts = cfgElt.getChildren(WIDGET_ELEMENT);
-					if (widgetElts != null && widgetElts.length > 0)
-					{
-						for (IConfigurationElement widgetElt: widgetElts)
-						{
-							try
-							{
-								String bundleName = widgetElt.getContributor().getName();
-								// Load the class of the widget
-								Bundle bundle = Platform.getBundle(bundleName);
-								String className = widgetElt.getAttribute(WIDGET_CLASS_ATTR);
-								if (className != null) {
-									Class<?> theClass = bundle.loadClass(widgetElt.getAttribute(WIDGET_CLASS_ATTR));
-									widgetClassList.add(theClass);
-								}
-
-								// Get the icons
-								WidgetIcon icon = new WidgetIcon(extPlugInID,
-									widgetElt.getAttribute(WIDGET_ICON_ATTR));
-
-								// Creates the entry corresponding to the widget
-								String name = widgetElt.getAttribute(WIDGET_NAME_ATTR);
-								String scope = widgetElt.getAttribute(WIDGET_SCOPE_ATTR);
-								String tooltip = widgetElt.getAttribute(WIDGET_TOOLTIP_ATTR);
-								String content = widgetElt.getAttribute(WIDGET_CONTENT_ATTR);
-
-								widgetList.add(new Tool(name, scope, tooltip, content, icon));
-							}
-							catch (Exception e)
-							{
-								// Nothing to do
-							}
-						}
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * Returns the <code>IConfigurationElement</code> list corresponding to the extension defined by
-	 * <code>extensionId</code>
-	 * 
-	 * @param extensionId
-	 *        the extension identifier
-	 * @return the <code>IConfigurationElement</code> list
-	 */
-	private List<IConfigurationElement> getExtensions(String extensionId)
-	{
-
-		IExtensionRegistry registry = Platform.getExtensionRegistry();
-		IExtensionPoint extensionPoint = registry.getExtensionPoint(extensionId);
-		IExtension[] extensions = extensionPoint.getExtensions();
-
-		List<IConfigurationElement> resList = new ArrayList<IConfigurationElement>();
-		for (int i = 0; i < extensions.length; i++)
-		{
-			IConfigurationElement[] elements = extensions[i].getConfigurationElements();
-			for (int j = 0; j < elements.length; j++)
-			{
-				resList.add(elements[j]);
-			}
-		}
-		return resList;
-	}
-
-	/**
-	 * Class which defines a widget category
-	 */
-	public class Category
-	{
-		private String name = null;
-		private WidgetIcon icon = null;
-
-		public Category(String name, WidgetIcon icon)
-		{
-			this.name = name;
-			this.icon = icon;
-		}
-
-		public String getName()
-		{
-			return name;
-		}
-
-		public WidgetIcon getIcon()
-		{
-			return icon;
-		}
-
-		@Override
-		public boolean equals(Object obj)
-		{
-
-			boolean equals = super.equals(obj);
-			if (!equals && obj instanceof Category)
-			{
-				Category widgetCat = (Category) obj;
-				equals = (name == null && widgetCat.name == null)
-					|| (name != null && name.equals(widgetCat.name));
-			}
-			return equals;
-		}
-
-		@Override
-		public int hashCode()
-		{
-			if (name != null)
-			{
-				return name.hashCode();
-			}
-			return super.hashCode();
-		}
-	}
-
-	/**
-	 * Class which defines a widget
-	 */
-	public class Tool
-	{
-		private String name = null;
-		private String scope = null;
-		private String tooltip = null;
-		private String content = null;
-		private WidgetIcon icon = null;
-
-		public Tool(String name, String scope, String tooltip, String content, WidgetIcon icon)
-		{
-			this.name = name;
-			this.scope = scope;
-			this.tooltip = tooltip;
-			this.content = content;
-			this.icon = icon;
-		}
-
-		public String getName()
-		{
-			return name;
-		}
-
-		public String getScope()
-		{
-			return scope;
-		}
-
-		public String getToolTip()
-		{
-			return tooltip;
-		}
-
-		public String getContent()
-		{
-			return content;
-		}
-
-		public WidgetIcon getIcon()
-		{
-			return icon;
-		}
-	}
-
-	/**
-	 * Class which defines a widget icon
-	 */
-	public class WidgetIcon
-	{
-		private String bundleID = null;
-		private String path = null;
-
-		public WidgetIcon(String bundleID, String path)
-		{
-			this.bundleID = bundleID;
-			this.path = path;
-		}
-
-		public String getBundleID()
-		{
-			return bundleID;
-		}
-
-		public String getPath()
-		{
-			return path;
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/CustomerPaletteContextMenuProvider.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/CustomerPaletteContextMenuProvider.java
deleted file mode 100755
index e9aa123..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/CustomerPaletteContextMenuProvider.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette.customize;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.internal.ui.palette.editparts.ToolEntryEditPart;
-import org.eclipse.gef.palette.CombinedTemplateCreationEntry;
-import org.eclipse.gef.ui.actions.GEFActionConstants;
-import org.eclipse.gef.ui.palette.PaletteContextMenuProvider;
-import org.eclipse.gef.ui.palette.PaletteViewer;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.xwt.vex.palette.customize.actions.AddCustomizePaletteAction;
-import org.eclipse.xwt.vex.palette.customize.actions.DeleteCustomizeComponentAction;
-import org.eclipse.xwt.vex.palette.customize.actions.ExportCustomizeComponentsAction;
-import org.eclipse.xwt.vex.palette.customize.actions.ImportCustomizeComponentsAction;
-import org.eclipse.xwt.vex.palette.customize.actions.ModifyCustomizeComponentAction;
-import org.eclipse.xwt.vex.palette.part.CustomizePaletteViewer;
-
-public class CustomerPaletteContextMenuProvider extends PaletteContextMenuProvider {
-
-	public CustomerPaletteContextMenuProvider(PaletteViewer palette) {
-		super(palette);
-		// TODO Auto-generated constructor stub
-	}
-
-	@Override
-	public void buildContextMenu(IMenuManager menu) {
-		super.buildContextMenu(menu);
-		PaletteViewer paletteViewer = getPaletteViewer();
-		if (paletteViewer instanceof CustomizePaletteViewer) {
-			EditPart selectedPart = (EditPart) paletteViewer.getSelectedEditParts().get(0);
-			// add the add customize menu to the popup menu
-			menu.appendToGroup(GEFActionConstants.GROUP_REST, new AddCustomizePaletteAction(paletteViewer, null, InvokeType.MenuAdd));
-			menu.appendToGroup(GEFActionConstants.GROUP_SAVE, new ExportCustomizeComponentsAction());
-			menu.appendToGroup(GEFActionConstants.GROUP_SAVE, new ImportCustomizeComponentsAction());
-			if (selectedPart instanceof ToolEntryEditPart) {
-				String selectedComponentName = ((CombinedTemplateCreationEntry) selectedPart.getModel()).getLabel();
-				String selectComponentName = selectedComponentName;
-				// add modify menu
-				menu.appendToGroup(GEFActionConstants.GROUP_REST, new ModifyCustomizeComponentAction(paletteViewer, selectComponentName));
-
-				// add delete menu
-				menu.appendToGroup(GEFActionConstants.GROUP_REST, new DeleteCustomizeComponentAction(paletteViewer, selectComponentName));
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/CustomizeComponentFactory.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/CustomizeComponentFactory.java
deleted file mode 100755
index 0d9374b..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/CustomizeComponentFactory.java
+++ /dev/null
@@ -1,426 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette.customize;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.gef.palette.CombinedTemplateCreationEntry;
-import org.eclipse.gef.palette.PaletteEntry;
-import org.eclipse.gef.palette.PaletteGroup;
-import org.eclipse.gef.palette.PaletteRoot;
-import org.eclipse.gef.requests.SimpleFactory;
-import org.eclipse.gef.ui.palette.PaletteViewer;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.preferences.ScopedPreferenceStore;
-import org.eclipse.xwt.vex.Activator;
-import org.eclipse.xwt.vex.EditorMessages;
-import org.eclipse.xwt.vex.VEXEditor;
-import org.eclipse.xwt.vex.palette.CustomPalettePage;
-import org.eclipse.xwt.vex.palette.PaletteResourceManager;
-import org.eclipse.xwt.vex.palette.customize.model.CustomizeComponent;
-import org.eclipse.xwt.vex.palette.part.CustomizePaletteViewer;
-import org.eclipse.xwt.vex.toolpalette.Entry;
-import org.eclipse.xwt.vex.toolpalette.ToolPalette;
-import org.eclipse.xwt.vex.toolpalette.ToolPaletteFactory;
-import org.eclipse.xwt.vex.toolpalette.impl.ToolPaletteImpl;
-import org.eclipse.xwt.vex.util.ImageHelper;
-
-/**
- * @author BOB
- * 
- */
-public class CustomizeComponentFactory {
-	private final static String CUSTOMER_COMPONENT_ROOT = "VEX_CUSTOMIZE_COMPONENT_LIST"; //$NON-NLS-1$
-
-	private List<VEXEditor> allVEXEditorList = new ArrayList<VEXEditor>(); // to support multiple vex editor
-
-	// prefix and postfix strings
-	private final static String PREFIX_COMPONENT = "CUSTOMIZE_COMPONENT_"; //$NON-NLS-1$
-	private final static String POSTFIX_NAME = "_name"; //$NON-NLS-1$
-	private final static String POSTFIX_SCOPE = "_scope"; //$NON-NLS-1$
-	private final static String POSTFIX_ICON = "_icon"; //$NON-NLS-1$
-	private final static String POSTFIX_LARGE_ICON = "_large_icon"; //$NON-NLS-1$
-	private final static String POSTFIX_TOOLTIP = "_tooltip"; //$NON-NLS-1$
-	private final static String POSTFIX_CONTENT = "_content"; //$NON-NLS-1$
-
-	private static CustomizeComponentFactory customizeComponentFactory;
-	private static List<CustomizeComponent> customizeComponentList = new ArrayList<CustomizeComponent>();
-
-	// factory
-	public static CustomizeComponentFactory getCustomizeComponentFactory() {
-		if (customizeComponentFactory == null) {
-			customizeComponentFactory = new CustomizeComponentFactory();
-		}
-		return customizeComponentFactory;
-	}
-
-	private void refreshVEXEditorList() {
-		/* --------------------------support multiple editor----------------------------- */
-		allVEXEditorList.clear();
-		IEditorReference[] editorList = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getEditorReferences();
-		for (IEditorReference editorReference : editorList) {
-			IEditorPart editorTemp = editorReference.getEditor(false);
-			if (editorTemp instanceof VEXEditor) {
-				allVEXEditorList.add((VEXEditor) editorTemp);
-			}
-		}
-		/* --------------------------support multiple editor----------------------------- */
-
-	}
-
-	// constructor
-	private CustomizeComponentFactory() {
-		customizeComponentList.addAll(loadCustomizeComponents());
-	}
-
-	// Load Customize Components, then refresh the customize palette
-	public static List<CustomizeComponent> loadCustomizeComponents() {
-		List<CustomizeComponent> result = new ArrayList<CustomizeComponent>();
-		String customizeComponents = getCustomizeComponentNames();
-		if ((customizeComponents != null) && (!customizeComponents.equals(""))) { //$NON-NLS-1$
-			List<String> componentNameList = getSubString(customizeComponents);
-			for (String componentName : componentNameList) {
-				result.add(loadComponent(componentName));
-			}
-		}
-		return result;
-	}
-
-	private static String getCustomizeComponentNames() {
-		IPreferenceStore preferences = Activator.getDefault().getPreferenceStore();
-		String customizeComponents = preferences.getString(CUSTOMER_COMPONENT_ROOT);
-		return customizeComponents;
-	}
-
-	/**
-	 * save current customize components in memory to the preference storage
-	 * 
-	 * @author BOB
-	 * */
-	private void saveChangeAndRefresh() {
-		// 1. delete the existing storage
-		deleteRootComponentPreferenceStorage();
-		// 2.add the current memory customize component to preference
-		addComponentPreferenceStorage();
-		// 3.refresh palette
-		refreshPalette();
-		return;
-	}
-
-	private void deleteRootComponentPreferenceStorage() {
-		IPreferenceStore preferences = Activator.getDefault().getPreferenceStore();
-		preferences.setValue(CUSTOMER_COMPONENT_ROOT, ""); //$NON-NLS-1$
-		try {
-			((ScopedPreferenceStore) preferences).save();
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-		return;
-	}
-
-	private void addComponentPreferenceStorage() {
-		if (customizeComponentList.size() > 0) {
-			IPreferenceStore preferences = Activator.getDefault().getPreferenceStore();
-
-			String customizeComponents = ""; //$NON-NLS-1$
-			StringBuilder sb = new StringBuilder();
-
-			for (CustomizeComponent customizeComponent : customizeComponentList) {
-				updateComponentInPreference(preferences, customizeComponent);
-				sb.append(customizeComponent.getName() + ","); //$NON-NLS-1$
-			}
-			customizeComponents = sb.substring(0, sb.length() - 1);
-			// set the root value
-			preferences.setValue(CUSTOMER_COMPONENT_ROOT, customizeComponents);
-			try {
-				((ScopedPreferenceStore) preferences).save();
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-		}
-		return;
-	}
-
-	private void updateComponentInPreference(IPreferenceStore preferences, CustomizeComponent customizeComponent) {
-		preferences.setValue(getComponentNameKey(customizeComponent.getName()), customizeComponent.getName());
-		preferences.setValue(getComponentScopeKey(customizeComponent.getName()), customizeComponent.getScope());
-		preferences.setValue(getComponentIconKey(customizeComponent.getName()), customizeComponent.getIcon());
-		preferences.setValue(getComponentLargeIconKey(customizeComponent.getName()), customizeComponent.getLargeIcon());
-		preferences.setValue(getComponentTooltipKey(customizeComponent.getName()), customizeComponent.getTooptip());
-		preferences.setValue(getComponentContentKey(customizeComponent.getName()), customizeComponent.getContent());
-		try {
-			((ScopedPreferenceStore) preferences).save();
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-		return;
-	}
-
-	/** Refresh Customize Palette */
-	public void refreshPalette() {
-		// 1. get the vex editor
-		refreshVEXEditorList();
-
-		for (VEXEditor editor : allVEXEditorList) {
-			PaletteViewer paletteViewer;
-			PaletteResourceManager tResourceManager;
-
-			paletteViewer = ((CustomPalettePage) ((VEXEditor) editor).getVEXEditorPalettePage()).getPaletteViewer();
-			tResourceManager = ((VEXEditor) editor).getPaletteResourceManager();
-			if (tResourceManager == null) {
-				return;
-			}
-
-			Resource resource = tResourceManager.getCustomizeResource();
-			CustomizePaletteViewer customizePaletteViewer = null;
-			Object objectPaletteViewer = paletteViewer.getProperty("Customize_PaletteViewer");
-			if (objectPaletteViewer instanceof CustomizePaletteViewer) {
-				customizePaletteViewer = (CustomizePaletteViewer) objectPaletteViewer;
-			}
-			if (customizePaletteViewer == null) {
-				return;
-			}
-			PaletteRoot root = customizePaletteViewer.getPaletteRoot();
-			List paletteChildren = root.getChildren();
-			PaletteGroup customizePaletteGroup = null;
-			for (Object object : paletteChildren) {
-				if (((PaletteGroup) object).getLabel().equals(EditorMessages.CustomizeComponentFactory_Customize)) {
-					customizePaletteGroup = (PaletteGroup) object;
-					break;
-				}
-			}
-			if (customizePaletteGroup == null) {
-				customizePaletteGroup = new PaletteGroup(EditorMessages.CustomizeComponentFactory_Customize);
-			}
-			List children = customizePaletteGroup.getChildren();
-			int count = children.size();
-			for (int i = 0; i < count; i++) {
-				customizePaletteGroup.remove((PaletteEntry) children.get(0));
-			}
-			root.remove(customizePaletteGroup);
-
-			// 5. add customize components to emf model and gef palette drawer
-			if (customizeComponentList.size() > 0) {
-				// add customize components
-				for (CustomizeComponent customizeComponent : customizeComponentList) {
-					Entry subEntry = ToolPaletteFactory.eINSTANCE.createEntry();
-					subEntry.setName(customizeComponent.getName());
-					subEntry.setScope(customizeComponent.getScope());
-					subEntry.setIcon(customizeComponent.getIcon());
-					subEntry.setLargeIcon(customizeComponent.getLargeIcon());
-					subEntry.setToolTip(customizeComponent.getTooptip());
-					subEntry.setContent(customizeComponent.getContent());
-
-					CombinedTemplateCreationEntry component = new CombinedTemplateCreationEntry(subEntry.getName(), subEntry.getToolTip(), subEntry, new SimpleFactory(resource.getClass()), ImageHelper.getImageDescriptor(tResourceManager, subEntry.getIcon()), ImageHelper.getImageDescriptor(tResourceManager, subEntry.getLargeIcon()));
-
-					customizePaletteGroup.add(component);
-				}
-			}
-			root.add(customizePaletteGroup);
-
-		}
-	}
-
-	/**
-	 * @return
-	 */
-	public ToolPalette getCustomizeToolPalette() {
-		ToolPalette toolPalette = ToolPaletteFactory.eINSTANCE.createToolPalette();
-		if (customizeComponentList.size() > 0) {
-			// add customize components
-			for (CustomizeComponent customizeComponent : customizeComponentList) {
-				Entry entry = ToolPaletteFactory.eINSTANCE.createEntry();
-				entry.setName(customizeComponent.getName());
-				entry.setScope(customizeComponent.getScope());
-				entry.setIcon(customizeComponent.getIcon());
-				entry.setLargeIcon(customizeComponent.getLargeIcon());
-				entry.setToolTip(customizeComponent.getTooptip());
-				entry.setContent(customizeComponent.getContent());
-
-				toolPalette.getEntries().add(entry);
-			}
-		}
-		return toolPalette;
-	}
-
-	/**
-	 * @param resource
-	 */
-	public void importCustomizeTool(Resource resource) {
-		EList<EObject> contents = resource.getContents();
-		for (EObject object : contents) {
-			if (object instanceof ToolPaletteImpl) {
-				ToolPaletteImpl toolPaletteImpl = (ToolPaletteImpl) object;
-				EList<Entry> entries = toolPaletteImpl.getEntries();
-				for (Entry entry : entries) {
-					CustomizeComponent component = new CustomizeComponent();
-					component.setName(entry.getName());
-					component.setScope(entry.getScope());
-					component.setIcon(entry.getIcon());
-					component.setLargeIcon(entry.getLargeIcon());
-					component.setTooptip(entry.getToolTip());
-					component.setContent(entry.getContent());
-					customizeComponentList.add(component);
-				}
-			}
-		}
-		refreshPalette();
-	}
-
-	/**
-	 * return customize components model list
-	 * */
-	public List<CustomizeComponent> getComponents() {
-		return customizeComponentList;
-	}
-
-	/**
-	 * add component to preference storage, then refresh the customize palette
-	 * */
-	public void addComponent(CustomizeComponent component) {
-		customizeComponentList.add(component);
-		saveChangeAndRefresh();
-	}
-
-	/**
-	 * modify component, and save to preference storage, then refresh palette
-	 * 
-	 * @param component
-	 */
-	public void modifyComponent(CustomizeComponent component, String oldName) {
-		if (component == null) {
-			return;
-		}
-
-		for (CustomizeComponent customizeComponent : customizeComponentList) {
-			if (customizeComponent.getName().equals(oldName)) {
-				customizeComponent.setName(component.getName());
-				customizeComponent.setScope(component.getScope());
-				customizeComponent.setIcon(component.getIcon());
-				customizeComponent.setLargeIcon(component.getLargeIcon());
-				customizeComponent.setTooptip(component.getTooptip());
-				customizeComponent.setContent(component.getContent());
-			}
-		}
-		saveChangeAndRefresh();
-	}
-
-	/**
-	 * delete component to preference storage, then refresh the customize palette
-	 */
-	public void deleteComponent(String componentName) {
-		if (customizeComponentList.size() > 0) {
-			for (CustomizeComponent customizeComponent : customizeComponentList) {
-				if (customizeComponent.getName().equals(componentName)) {
-					customizeComponentList.remove(customizeComponent);
-					break;
-				}
-			}
-			saveChangeAndRefresh();
-		}
-	}
-
-	/** get string list from a string, compart by "," */
-	private static List<String> getSubString(String str) {
-		ArrayList<String> arrayList = new ArrayList<String>();
-		String[] parts = str.split(","); //$NON-NLS-1$
-
-		for (int i = 0; i < parts.length; i++) {
-			arrayList.add(parts[i]);
-		}
-		return arrayList;
-	}
-
-	private static String getComponentNameKey(String componentName) {
-		return PREFIX_COMPONENT + componentName + POSTFIX_NAME;
-	}
-
-	private static String getComponentScopeKey(String componentName) {
-		return PREFIX_COMPONENT + componentName + POSTFIX_SCOPE;
-	}
-
-	private static String getComponentIconKey(String componentName) {
-		return PREFIX_COMPONENT + componentName + POSTFIX_ICON;
-	}
-
-	private static String getComponentLargeIconKey(String componentName) {
-		return PREFIX_COMPONENT + componentName + POSTFIX_LARGE_ICON;
-	}
-
-	private static String getComponentTooltipKey(String componentName) {
-		return PREFIX_COMPONENT + componentName + POSTFIX_TOOLTIP;
-	}
-
-	private static String getComponentContentKey(String componentName) {
-		return PREFIX_COMPONENT + componentName + POSTFIX_CONTENT;
-	}
-
-	/**
-	 * load customize component preference model object according to componentName
-	 */
-	public static CustomizeComponent loadComponent(String componentName) {
-		IPreferenceStore preferences = Activator.getDefault().getPreferenceStore();
-		CustomizeComponent component = new CustomizeComponent();
-		// set values
-		component.setName(preferences.getString(getComponentNameKey(componentName)));
-		component.setScope(preferences.getString(getComponentScopeKey(componentName)));
-		component.setIcon(preferences.getString(getComponentIconKey(componentName)));
-		component.setLargeIcon(preferences.getString(getComponentLargeIconKey(componentName)));
-		component.setTooptip(preferences.getString(getComponentTooltipKey(componentName)));
-		component.setContent(preferences.getString(getComponentContentKey(componentName)));
-		return component;
-	}
-
-	public boolean isComponentExist(String componentName) {
-		if (customizeComponentList == null) {
-			return false;
-		}
-		for (CustomizeComponent component : customizeComponentList) {
-			if (component.getName().equals(componentName)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	public List<String> getCustomizeComponentNameList() {
-		List<String> customizeComponentNameList = new ArrayList<String>();
-
-		if (customizeComponentList != null) {
-			for (CustomizeComponent component : customizeComponentList) {
-				String name = component.getName();
-				customizeComponentNameList.add(name);
-			}
-		}
-		return customizeComponentNameList;
-	}
-
-	public CustomizeComponent getCustomizeComponentByName(String name) {
-		CustomizeComponent component = null;
-		if (customizeComponentList != null) {
-			for (CustomizeComponent comp : customizeComponentList) {
-				if (comp.getName().equals(name)) {
-					component = comp;
-					break;
-				}
-			}
-		}
-		return component;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/InvokeType.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/InvokeType.java
deleted file mode 100755
index 93ecb5d..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/InvokeType.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette.customize;
-
-public enum InvokeType {
-	MenuAdd, DragAdd, Modify
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/AddCustomizePaletteAction.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/AddCustomizePaletteAction.java
deleted file mode 100755
index 5e6a8b0..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/AddCustomizePaletteAction.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette.customize.actions;
-
-import org.eclipse.gef.ui.palette.PaletteViewer;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.xwt.vex.palette.customize.InvokeType;
-import org.eclipse.xwt.vex.palette.customize.dialogs.CustomizePaletteDialog;
-
-/**
- * An action to launch the customize palette component dialog for the given palette.
- * 
- * @author BOB
- */
-public class AddCustomizePaletteAction extends Action {
-
-	private PaletteViewer paletteViewer;
-	private InvokeType invokeType;
-	private String selectionText;
-
-	/**
-	 * Constructor
-	 * 
-	 * @param palette
-	 *            The Palette which has to be customized when this action is run
-	 */
-	public AddCustomizePaletteAction(PaletteViewer palette, String selectionText, InvokeType invokeType) {
-		super();
-		setText("&Add Customize Component");
-		paletteViewer = palette;
-		this.selectionText = selectionText;
-		this.invokeType = invokeType;
-	}
-
-	/**
-	 * Opens the customize palette dialog
-	 * 
-	 * @see org.eclipse.jface.action.Action#run()
-	 */
-	public void run() {
-		Dialog customizeDialog;
-
-		if (invokeType == InvokeType.MenuAdd) {
-			customizeDialog = new CustomizePaletteDialog(InvokeType.MenuAdd, null, null);
-		} else { // drad add
-			customizeDialog = new CustomizePaletteDialog(InvokeType.DragAdd, null, selectionText);
-		}
-		customizeDialog.open();
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/DeleteCustomizeComponentAction.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/DeleteCustomizeComponentAction.java
deleted file mode 100755
index 6d16171..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/DeleteCustomizeComponentAction.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette.customize.actions;
-
-import org.eclipse.gef.ui.palette.PaletteViewer;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.xwt.vex.palette.customize.CustomizeComponentFactory;
-
-public class DeleteCustomizeComponentAction extends Action {
-	private String selectComponentName = "";
-	private PaletteViewer paletteViewer;
-
-	public DeleteCustomizeComponentAction(PaletteViewer paletteViewer, String selectComponentName) {
-		super();
-		setText("&Delete Selected Component");
-		this.paletteViewer = paletteViewer;
-		this.selectComponentName = selectComponentName;
-	}
-
-	@Override
-	public void run() {
-		super.run();
-		if (MessageDialog.openConfirm(paletteViewer.getControl().getShell(), "Confirm", "Are you sure to delete customize component " + selectComponentName + " ?")) {
-			// delete customize component
-			CustomizeComponentFactory customizeComponentFactory = CustomizeComponentFactory.getCustomizeComponentFactory();
-			customizeComponentFactory.deleteComponent(selectComponentName);
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/ExportCustomizeComponentsAction.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/ExportCustomizeComponentsAction.java
deleted file mode 100755
index adec20c..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/ExportCustomizeComponentsAction.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.xwt.vex.palette.customize.actions;
-
-import java.io.IOException;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.xwt.vex.EditorMessages;
-import org.eclipse.xwt.vex.palette.customize.CustomizeComponentFactory;
-import org.eclipse.xwt.vex.toolpalette.ToolPalette;
-
-/**
- * @author ZHOUBO
- * 
- */
-public class ExportCustomizeComponentsAction extends Action {
-	/**
-	 * 
-	 */
-	public ExportCustomizeComponentsAction() {
-		super();
-		setText(EditorMessages.ExportCustomizeComponentsAction_ActionText);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.Action#run()
-	 */
-	@Override
-	public void run() {
-		super.run();
-		FileDialog saveDialog = new FileDialog(new Shell(), SWT.SAVE);
-		saveDialog.setText(EditorMessages.ExportCustomizeComponentsAction_DialogText);
-		String fileName = saveDialog.open();
-		if (fileName != null) {
-			URI uri = URI.createFileURI(fileName);
-
-			CustomizeComponentFactory customizeComponentFactory = CustomizeComponentFactory.getCustomizeComponentFactory();
-			ToolPalette customizeToolPalette = customizeComponentFactory.getCustomizeToolPalette();
-			ResourceSet rs = new ResourceSetImpl();
-			Resource resource = rs.createResource(uri);
-			resource.getContents().add(customizeToolPalette);
-			try {
-				resource.save(null);
-				MessageDialog.openInformation(null, EditorMessages.ExportCustomizeComponentsAction_INFORMATION, EditorMessages.ExportCustomizeComponentsAction_SUCCESS + fileName);
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/ImportCustomizeComponentsAction.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/ImportCustomizeComponentsAction.java
deleted file mode 100755
index 65999fa..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/ImportCustomizeComponentsAction.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.xwt.vex.palette.customize.actions;
-
-import java.io.IOException;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.xwt.vex.EditorMessages;
-import org.eclipse.xwt.vex.palette.customize.CustomizeComponentFactory;
-
-/**
- * @author ZHOUBO
- * 
- */
-public class ImportCustomizeComponentsAction extends Action {
-
-	/**
-	 * 
-	 */
-	public ImportCustomizeComponentsAction() {
-		setText(EditorMessages.ImportCustomizeComponentsAction_ActionText);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.Action#run()
-	 */
-	@Override
-	public void run() {
-		super.run();
-
-		FileDialog saveDialog = new FileDialog(new Shell(), SWT.OPEN);
-		saveDialog.setText(EditorMessages.ImportCustomizeComponentsAction_DialogText);
-		String fileName = saveDialog.open();
-		if (fileName != null) {
-			try {
-				URI uri = URI.createFileURI(fileName);
-				ResourceSet rs = new ResourceSetImpl();
-				Resource resource = rs.createResource(uri);
-				resource.load(null);
-				CustomizeComponentFactory customizeComponentFactory = CustomizeComponentFactory.getCustomizeComponentFactory();
-				customizeComponentFactory.importCustomizeTool(resource);
-			} catch (IOException e) {
-				MessageDialog.openError(null, EditorMessages.ImportCustomizeComponentsAction_ERROR, EditorMessages.ImportCustomizeComponentsAction_ERROR_INFORMATION);
-				e.printStackTrace();
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/ModifyCustomizeComponentAction.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/ModifyCustomizeComponentAction.java
deleted file mode 100755
index 969f0c6..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/ModifyCustomizeComponentAction.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette.customize.actions;
-
-import org.eclipse.gef.ui.palette.PaletteViewer;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.xwt.vex.palette.customize.CustomizeComponentFactory;
-import org.eclipse.xwt.vex.palette.customize.InvokeType;
-import org.eclipse.xwt.vex.palette.customize.dialogs.CustomizePaletteDialog;
-
-public class ModifyCustomizeComponentAction extends Action {
-	private String selectComponentName = "";
-	private PaletteViewer paletteViewer;
-
-	public ModifyCustomizeComponentAction(PaletteViewer paletteViewer, String selectComponentName) {
-		super();
-		setText("&Modify Selected Component");
-		this.paletteViewer = paletteViewer;
-		this.selectComponentName = selectComponentName;
-	}
-
-	@Override
-	public void run() {
-		super.run();
-		// modify customize component
-		// CustomizeComponentFactory customizeComponentFactory = CustomizeComponentFactory
-		// .getCustomizeComponentFactory();
-		Dialog customizeDialog = new CustomizePaletteDialog(InvokeType.Modify, selectComponentName, null);
-		customizeDialog.open();
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/dialogs/CustomizePaletteDialog.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/dialogs/CustomizePaletteDialog.java
deleted file mode 100755
index 391740a..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/dialogs/CustomizePaletteDialog.java
+++ /dev/null
@@ -1,284 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette.customize.dialogs;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.TitleAreaDialog;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.dialogs.ElementTreeSelectionDialog;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-import org.eclipse.xwt.vex.EditorMessages;
-import org.eclipse.xwt.vex.palette.customize.CustomizeComponentFactory;
-import org.eclipse.xwt.vex.palette.customize.InvokeType;
-import org.eclipse.xwt.vex.palette.customize.model.CustomizeComponent;
-
-public class CustomizePaletteDialog extends TitleAreaDialog {
-	// private PaletteViewer paletteViewer;
-	private Text textName;
-	private Text textScope;
-	private Text textIcon;
-	private Text textLargeIcon;
-	private Text textToolTip;
-	private Text textContent;
-	InvokeType invokeType;
-	CustomizeComponent customizeComponent;
-	String templateDnDText;
-
-	public CustomizePaletteDialog(InvokeType invokeType, String componentName, String templateDnDText) {
-		super(null);
-
-		this.invokeType = invokeType;
-		if (invokeType == InvokeType.Modify) {
-			customizeComponent = CustomizeComponentFactory.loadComponent(componentName);
-		}
-		if (invokeType == InvokeType.DragAdd) {
-			this.templateDnDText = templateDnDText;
-		}
-	}
-
-	@Override
-	protected Control createContents(Composite parent) {
-		Control contents = super.createContents(parent);
-
-		Rectangle screenSize = Display.getDefault().getClientArea();
-		Rectangle frameSize = this.getShell().getBounds();
-		this.getShell().setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
-
-		// Set the title
-		setTitle(EditorMessages.CustomizePaletteDialog_Title);
-		// Set the message
-		setMessage(EditorMessages.CustomizePaletteDialog_Message, IMessageProvider.INFORMATION);
-		return contents;
-	}
-
-	@Override
-	protected void configureShell(Shell newShell) {
-		// TODO Auto-generated method stub
-		super.configureShell(newShell);
-		newShell.setText(EditorMessages.CustomizePaletteDialog_Header);
-		newShell.setSize(500, 500);
-	}
-
-	/**
-	 * create the dialog area
-	 * */
-	protected Control createDialogArea(Composite parent) {
-		Composite composite = (Composite) super.createDialogArea(parent);
-		final Composite compositeNew = new Composite(composite, SWT.NONE);
-
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 5;
-		compositeNew.setLayout(layout);
-
-		GridData data;
-		data = new GridData(GridData.FILL_BOTH);
-		compositeNew.setLayoutData(data);
-
-		// name
-		Label labelName = new Label(compositeNew, SWT.LEFT);
-		labelName.setText(EditorMessages.CustomizePaletteDialog_Name);
-		textName = new Text(compositeNew, SWT.SINGLE | SWT.BORDER);
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		textName.setLayoutData(data);
-		textName.setToolTipText(EditorMessages.CustomizePaletteDialog_Name_ToolTip);
-
-		// scope
-		Label labelScope = new Label(compositeNew, SWT.LEFT);
-		labelScope.setText(EditorMessages.CustomizePaletteDialog_Scope);
-		textScope = new Text(compositeNew, SWT.SINGLE | SWT.BORDER);
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		data.horizontalSpan = 2;
-		textScope.setLayoutData(data);
-		textScope.setToolTipText(EditorMessages.CustomizePaletteDialog_Scope_ToolTip);
-
-		// icon
-		Label labelIcon = new Label(compositeNew, SWT.LEFT);
-		labelIcon.setText(EditorMessages.CustomizePaletteDialog_Icon);
-		textIcon = new Text(compositeNew, SWT.SINGLE | SWT.BORDER);
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		data.horizontalSpan = 3;
-		data.minimumWidth = 280;
-		textIcon.setLayoutData(data);
-		textIcon.setToolTipText(EditorMessages.CustomizePaletteDialog_Icon_ToolTip);
-		Button buttonBrowseIcon = new Button(compositeNew, SWT.PUSH);
-		buttonBrowseIcon.setText(EditorMessages.CustomizePaletteDialog_BrowseIcon);
-		buttonBrowseIcon.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-			}
-
-			public void widgetSelected(SelectionEvent e) {
-				ElementTreeSelectionDialog selectionDialog = new ElementTreeSelectionDialog(compositeNew.getShell(), new WorkbenchLabelProvider(), new WorkbenchContentProvider());
-				selectionDialog.setAllowMultiple(false);
-				selectionDialog.setTitle(EditorMessages.CustomizePaletteDialog_SelectionDialog_Title);
-				selectionDialog.setMessage(EditorMessages.CustomizePaletteDialog_SelectionDialog_Text);
-				selectionDialog.setInput(ResourcesPlugin.getWorkspace().getRoot());
-				if (selectionDialog.open() == Window.OK) {
-					IFile file = (IFile) selectionDialog.getFirstResult();
-					String workspacePath = file.getWorkspace().getRoot().getLocation().toOSString();
-					String filePath = file.getFullPath().toOSString();
-					textIcon.setText(workspacePath + filePath);
-				}
-			}
-		});
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		data.minimumWidth = 100;
-		buttonBrowseIcon.setLayoutData(data);
-
-		// large icon
-		Label labelLargeIcon = new Label(compositeNew, SWT.LEFT);
-		labelLargeIcon.setText(EditorMessages.CustomizePaletteDialog_LargeIcon);
-		textLargeIcon = new Text(compositeNew, SWT.SINGLE | SWT.BORDER);
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		data.horizontalSpan = 3;
-		textLargeIcon.setLayoutData(data);
-		textLargeIcon.setToolTipText(EditorMessages.CustomizePaletteDialog_LargeIcon_ToolTip);
-		Button buttonBrowseLargeIcon = new Button(compositeNew, SWT.PUSH);
-		buttonBrowseLargeIcon.setText(EditorMessages.CustomizePaletteDialog_BrowseLargeIcon);
-		buttonBrowseLargeIcon.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-			}
-
-			public void widgetSelected(SelectionEvent e) {
-				ElementTreeSelectionDialog selectionDialog = new ElementTreeSelectionDialog(compositeNew.getShell(), new WorkbenchLabelProvider(), new WorkbenchContentProvider());
-				selectionDialog.setAllowMultiple(false);
-				selectionDialog.setTitle(EditorMessages.CustomizePaletteDialog_SelectionDialog_LargeTitle);
-				selectionDialog.setMessage(EditorMessages.CustomizePaletteDialog_SelectionDialog_LargeText);
-				selectionDialog.setInput(ResourcesPlugin.getWorkspace().getRoot());
-				if (selectionDialog.open() == Window.OK) {
-					IFile file = (IFile) selectionDialog.getFirstResult();
-					String workspacePath = file.getWorkspace().getRoot().getLocation().toOSString();
-					String filePath = file.getFullPath().toOSString();
-					textLargeIcon.setText(workspacePath + filePath);
-				}
-			}
-		});
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		buttonBrowseLargeIcon.setLayoutData(data);
-
-		// ToolTip
-		Label labelToolTip = new Label(compositeNew, SWT.LEFT);
-		labelToolTip.setText(EditorMessages.CustomizePaletteDialog_ToolTip);
-		textToolTip = new Text(compositeNew, SWT.SINGLE | SWT.BORDER);
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		data.horizontalSpan = 4;
-		textToolTip.setLayoutData(data);
-		textToolTip.setToolTipText(EditorMessages.CustomizePaletteDialog_ToolTip_ToolTip);
-
-		// Content
-		Label labelContent = new Label(compositeNew, SWT.LEFT);
-		labelContent.setText(EditorMessages.CustomizePaletteDialog_Content);
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		data.horizontalSpan = 5;
-		labelContent.setLayoutData(data);
-		textContent = new Text(compositeNew, SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
-		data = new GridData(GridData.FILL_BOTH);
-		data.horizontalSpan = 5;
-		textContent.setLayoutData(data);
-		textContent.setToolTipText(EditorMessages.CustomizePaletteDialog_Content_ToolTip);
-
-		if (invokeType == InvokeType.DragAdd) {
-			textContent.setText(templateDnDText);
-		}
-
-		setModifyComponentContent();
-
-		return composite;
-	}
-
-	private void setModifyComponentContent() {
-		if (invokeType == InvokeType.Modify) {
-			textName.setText(customizeComponent.getName());
-			textScope.setText(customizeComponent.getScope());
-			textIcon.setText(customizeComponent.getIcon());
-			textLargeIcon.setText(customizeComponent.getLargeIcon());
-			textToolTip.setText(customizeComponent.getTooptip());
-			textContent.setText(customizeComponent.getContent());
-		}
-	}
-
-	@Override
-	protected void okPressed() {
-		if (doAddCustomizePaletteComponent() == true) {
-			super.okPressed();
-		}
-	}
-
-	private boolean doAddCustomizePaletteComponent() {
-		if (!validInput()) {
-			return false;
-		}
-
-		CustomizeComponentFactory customizeComponentFactory = CustomizeComponentFactory.getCustomizeComponentFactory();
-
-		if ((invokeType != InvokeType.Modify) && customizeComponentFactory.isComponentExist(textName.getText())) {
-			MessageDialog.openError(null, EditorMessages.CustomizePaletteDialog_ErrorTitle, EditorMessages.CustomizePaletteDialog_ErrorMessage);
-			return false;
-		} else if (invokeType == InvokeType.Modify) {
-			if (!textName.getText().equals(customizeComponent.getName()) && customizeComponentFactory.isComponentExist(textName.getText())) {
-				MessageDialog.openError(null, EditorMessages.CustomizePaletteDialog_ErrorTitle, EditorMessages.CustomizePaletteDialog_ErrorMessage);
-				return false;
-			}
-		}
-		CustomizeComponent component = new CustomizeComponent();
-		component.setName(textName.getText());
-		component.setScope(textScope.getText());
-		component.setIcon(textIcon.getText());
-		component.setLargeIcon(textLargeIcon.getText());
-		component.setTooptip(textToolTip.getText());
-		component.setContent(textContent.getText());
-		// InvokeType.Modify or add an new one
-		if (invokeType == InvokeType.Modify) {
-			// modify
-			customizeComponentFactory.modifyComponent(component, customizeComponent.getName());
-		} else {
-			customizeComponentFactory.addComponent(component);
-		}
-		return true;
-	}
-
-	private boolean validInput() {
-		boolean result = true;
-
-		// name
-		if (textName.getText() == null || textName.getText().trim().equals("")) { //$NON-NLS-1$
-			MessageDialog.openError(null, EditorMessages.CustomizePaletteDialog_ErrorTitle, EditorMessages.CustomizePaletteDialog_NameError);
-			textName.setFocus();
-			textName.selectAll();
-			return false;
-		}
-
-		if (textContent.getText() == null || textContent.getText().trim().equals("")) { //$NON-NLS-1$
-			MessageDialog.openError(null, EditorMessages.CustomizePaletteDialog_ErrorTitle, EditorMessages.CustomizePaletteDialog_ContentError);
-			textContent.setFocus();
-			textContent.selectAll();
-			return false;
-		}
-
-		return result;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/model/CustomizeComponent.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/model/CustomizeComponent.java
deleted file mode 100755
index 5667611..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/model/CustomizeComponent.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette.customize.model;
-
-/**
- * model class of customize component
- * 
- * @author BOB
- */
-public class CustomizeComponent {
-	private String name = null;
-	private String scope = null;
-	private String icon = null;
-	private String largeIcon = null;
-	private String tooptip = null;
-	private String content = null;
-
-	public String getName() {
-		return name;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	public String getScope() {
-		return scope;
-	}
-
-	public void setScope(String scope) {
-		this.scope = scope;
-	}
-
-	public String getIcon() {
-		return icon;
-	}
-
-	public void setIcon(String icon) {
-		this.icon = icon;
-	}
-
-	public String getLargeIcon() {
-		return largeIcon;
-	}
-
-	public void setLargeIcon(String largeIcon) {
-		this.largeIcon = largeIcon;
-	}
-
-	public String getTooptip() {
-		return tooptip;
-	}
-
-	public void setTooptip(String tooptip) {
-		this.tooptip = tooptip;
-	}
-
-	public String getContent() {
-		return content;
-	}
-
-	public void setContent(String content) {
-		this.content = content;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/CustomizePaletteViewer.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/CustomizePaletteViewer.java
deleted file mode 100755
index dce3951..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/CustomizePaletteViewer.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette.part;
-
-import org.eclipse.gef.ui.palette.PaletteViewer;
-
-public class CustomizePaletteViewer extends PaletteViewer {
-	private boolean visible = true;
-
-	public boolean isVisible() {
-		return visible;
-	}
-
-	public void setVisible(boolean visible) {
-		this.visible = visible;
-	}
-
-	public CustomizePaletteViewer() {
-		super();
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/DynamicPaletteViewer.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/DynamicPaletteViewer.java
deleted file mode 100755
index 0a71fe4..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/DynamicPaletteViewer.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette.part;
-
-import org.eclipse.gef.ui.palette.PaletteViewer;
-import org.eclipse.gef.ui.parts.PaletteViewerKeyHandler;
-
-public class DynamicPaletteViewer extends PaletteViewer {
-	private boolean visible = true;
-
-	public boolean isVisible() {
-		return visible;
-	}
-
-	public void setVisible(boolean visible) {
-		this.visible = visible;
-	}
-
-	public DynamicPaletteViewer() {
-		setKeyHandler(new PaletteViewerKeyHandler(this));
-		setEditPartFactory(new ToolPaletteEditPartFactory());
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolDrawerEditPart.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolDrawerEditPart.java
deleted file mode 100755
index 3c13e85..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolDrawerEditPart.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette.part;
-
-import org.eclipse.draw2d.FocusEvent;
-import org.eclipse.draw2d.FocusListener;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.gef.internal.ui.palette.editparts.DrawerEditPart;
-import org.eclipse.gef.palette.PaletteDrawer;
-
-/**
- * 
- */
-public class ToolDrawerEditPart extends DrawerEditPart {
-
-	private int childLevel = 0;
-
-	public ToolDrawerEditPart(PaletteDrawer drawer) {
-		super(drawer);
-	}
-
-	public IFigure createFigure() {
-		if (getParent() instanceof ToolDrawerEditPart) {
-			ToolDrawerEditPart parent = (ToolDrawerEditPart) getParent();
-			childLevel = parent.childLevel + 1;
-
-			ToolDrawerFigure fig = new ToolDrawerFigure(getViewer().getControl(), childLevel) {
-
-				IFigure buildTooltip() {
-					return createToolTip();
-				}
-			};
-			fig.setExpanded(getDrawer().isInitiallyOpen());
-			fig.setPinned(getDrawer().isInitiallyPinned());
-
-			fig.getCollapseToggle().addFocusListener(new FocusListener.Stub() {
-
-				public void focusGained(FocusEvent fe) {
-					getViewer().select(ToolDrawerEditPart.this);
-				}
-			});
-
-			return fig;
-		}
-		return super.createFigure();
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolDrawerFigure.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolDrawerFigure.java
deleted file mode 100755
index 3c834cc..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolDrawerFigure.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette.part;
-
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.internal.ui.palette.editparts.DrawerFigure;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * 
- */
-public class ToolDrawerFigure extends DrawerFigure {
-
-	private static final int COLOR_INCREMENT = 15;
-
-	private static final int X_OFFSET = 17;
-
-	public ToolDrawerFigure(Control control, int childLevel) {
-		super(control);
-
-		// Color baseColor = control.getBackground();
-		// Color backgroundColor = new Color(Display.getCurrent(), getNewValue(baseColor.getRed(), childLevel), getNewValue(
-		// baseColor.getGreen(), childLevel), getNewValue(baseColor.getBlue(), childLevel));
-		// getContentPane().setBackgroundColor(backgroundColor);
-	}
-
-	private int getNewValue(int oldValue, int childLevel) {
-		int result = oldValue - childLevel * COLOR_INCREMENT;
-		return (result > 0 ? result : 0);
-	}
-
-	@Override
-	public Rectangle getBounds() {
-		return new Rectangle(bounds.x + X_OFFSET, bounds.y, bounds.width, bounds.height);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolPaletteDrawer.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolPaletteDrawer.java
deleted file mode 100755
index caa29c0..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolPaletteDrawer.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette.part;
-
-import org.eclipse.gef.palette.PaletteDrawer;
-
-/**
- * 
- */
-public class ToolPaletteDrawer extends PaletteDrawer {
-
-	public ToolPaletteDrawer(String label) {
-		super(label);
-	}
-
-	@Override
-	public boolean acceptsType(Object type) {
-		return true;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolPaletteEditPartFactory.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolPaletteEditPartFactory.java
deleted file mode 100755
index 91c2bf3..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolPaletteEditPartFactory.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette.part;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.palette.PaletteDrawer;
-import org.eclipse.gef.ui.palette.PaletteEditPartFactory;
-
-/**
- * 
- */
-public class ToolPaletteEditPartFactory extends PaletteEditPartFactory {
-
-	protected EditPart createDrawerEditPart(EditPart parentEditPart, Object model) {
-		return new ToolDrawerEditPart((PaletteDrawer) model);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolPaletteViewer.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolPaletteViewer.java
deleted file mode 100755
index e11eb72..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolPaletteViewer.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette.part;
-
-import org.eclipse.gef.EditDomain;
-import org.eclipse.gef.ui.palette.PaletteViewer;
-import org.eclipse.gef.ui.parts.PaletteViewerKeyHandler;
-
-/**
- * 
- */
-public class ToolPaletteViewer extends PaletteViewer {
-
-	public ToolPaletteViewer(EditDomain graphicalViewerDomain) {
-		setEditDomain(graphicalViewerDomain);
-		setKeyHandler(new PaletteViewerKeyHandler(this));
-		setEditPartFactory(new ToolPaletteEditPartFactory());
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolPaletteViewerProvider.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolPaletteViewerProvider.java
deleted file mode 100755
index 8c69fa0..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolPaletteViewerProvider.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette.part;
-
-import java.util.List;
-
-import org.eclipse.gef.EditDomain;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.palette.CombinedTemplateCreationEntry;
-import org.eclipse.gef.ui.palette.PaletteViewer;
-import org.eclipse.gef.ui.palette.PaletteViewerProvider;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DropTarget;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.swt.dnd.DropTargetListener;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.PageBook;
-import org.eclipse.xwt.vex.EditorMessages;
-import org.eclipse.xwt.vex.VEXEditor;
-import org.eclipse.xwt.vex.palette.PaletteRootFactory;
-import org.eclipse.xwt.vex.palette.customize.CustomerPaletteContextMenuProvider;
-import org.eclipse.xwt.vex.palette.customize.InvokeType;
-import org.eclipse.xwt.vex.palette.customize.dialogs.CustomizePaletteDialog;
-import org.eclipse.xwt.vex.swt.CustomSashForm;
-import org.eclipse.xwt.vex.toolpalette.impl.EntryImpl;
-
-/**
- * @author BOB
- */
-public class ToolPaletteViewerProvider extends PaletteViewerProvider {
-
-	private IEditorPart editorPart;
-	private PaletteViewer toolPaletteViewer;
-	private DynamicPaletteViewer dynamicPaletteViewer;
-	private CustomizePaletteViewer customizePaletteViewer;
-	private CustomSashForm sashFormMain;
-	private CustomSashForm dynamicAndCustomizeSashForm;
-
-	public ToolPaletteViewerProvider(EditDomain graphicalViewerDomain, IEditorPart editorPart) {
-		super(graphicalViewerDomain);
-		this.editorPart = editorPart;
-	}
-
-	public PaletteViewer createPaletteViewer(Composite parent) {
-		PageBook pageBook = (PageBook) parent;
-
-		sashFormMain = new CustomSashForm(pageBook, SWT.VERTICAL);
-
-		// sashForm.
-		CustomSashForm toolSashForm = new CustomSashForm(sashFormMain, SWT.VERTICAL);
-
-		toolPaletteViewer = new ToolPaletteViewer(this.getEditDomain());
-		toolPaletteViewer.createControl(toolSashForm);
-		configurePaletteViewer(toolPaletteViewer);
-		hookPaletteViewer(toolPaletteViewer);
-		dynamicAndCustomizeSashForm = new CustomSashForm(sashFormMain, SWT.VERTICAL);
-
-		Composite dynamicComposite = new Composite(dynamicAndCustomizeSashForm, SWT.BORDER);
-		dynamicComposite.setLayout(new FillLayout());
-		Composite customizeComposite = new Composite(dynamicAndCustomizeSashForm, SWT.BORDER);
-		customizeComposite.setLayout(new FillLayout());
-
-		// dynamic part
-		dynamicPaletteViewer = new DynamicPaletteViewer();
-		dynamicPaletteViewer.createControl(dynamicComposite);
-		configurePaletteViewer(dynamicPaletteViewer);
-		dynamicPaletteViewer.setPaletteRoot(PaletteRootFactory.createDynamicPalette(editorPart));
-
-		// customize part
-		customizePaletteViewer = new CustomizePaletteViewer();
-		customizePaletteViewer.createControl(customizeComposite);
-		configurePaletteViewer(customizePaletteViewer);
-		customizePaletteViewer.setPaletteRoot(PaletteRootFactory.createCustomizePalette(editorPart));
-
-		DropTarget dropTarget = new DropTarget(customizeComposite, DND.DROP_COPY | DND.DROP_MOVE);
-		Transfer[] types = new Transfer[] { TextTransfer.getInstance() };
-		dropTarget.setTransfer(types);
-		dropTarget.addDropListener(dropTargetAdapter);
-
-		sashFormMain.setWeights(new int[] { 2, 1 });
-		dynamicAndCustomizeSashForm.setWeights(new int[] { 1, 1 });
-
-		// Show the sashForm manually.
-		pageBook.showPage(sashFormMain);
-
-		toolPaletteViewer.setProperty(EditorMessages.CustomizeComponentFactory_VIEWER_EDITOR, editorPart); //$NON-NLS-1$
-		toolPaletteViewer.setProperty("Dynamic_PaletteViewer", dynamicPaletteViewer);
-		toolPaletteViewer.setProperty("Customize_PaletteViewer", customizePaletteViewer);
-		toolPaletteViewer.setProperty("ToolSashForm", toolSashForm);
-		toolPaletteViewer.setProperty("SashFormMain", sashFormMain);
-		dynamicPaletteViewer.setProperty("DynamicAndCustomizeSashForm", dynamicAndCustomizeSashForm);
-		dynamicPaletteViewer.setProperty("DynamicComposite", dynamicComposite);
-		customizePaletteViewer.setProperty("DynamicAndCustomizeSashForm", dynamicAndCustomizeSashForm);
-		customizePaletteViewer.setProperty("CustomizeComposite", customizeComposite);
-		return toolPaletteViewer;
-	}
-
-	public DynamicPaletteViewer getDynamicPaletteViewer() {
-		return dynamicPaletteViewer;
-	}
-
-	public CustomizePaletteViewer getCustomizePaletteViewer() {
-		return customizePaletteViewer;
-	}
-
-	protected DropTargetListener dropTargetAdapter = new DropTargetListener() {
-
-		public void dragEnter(DropTargetEvent event) {
-		}
-
-		public void dragLeave(DropTargetEvent event) {
-		}
-
-		public void dragOperationChanged(DropTargetEvent event) {
-		}
-
-		public void dragOver(DropTargetEvent event) {
-		}
-
-		public void drop(DropTargetEvent event) {
-			Dialog customizeDialog;
-			customizeDialog = new CustomizePaletteDialog(InvokeType.DragAdd, null, event.data.toString());
-			customizeDialog.open();
-		}
-
-		public void dropAccept(DropTargetEvent event) {
-		}
-
-	};
-
-	/*
-	 * override the configurePaletteViewer by using CustomerPaletteContextMenuProvider so that we can add customize popup
-	 * 
-	 * @see org.eclipse.gef.ui.palette.PaletteViewerProvider#configurePaletteViewer (org.eclipse.gef.ui.palette.PaletteViewer)
-	 */
-	protected void configurePaletteViewer(final PaletteViewer viewer) {
-		// super.configurePaletteViewer(viewer);
-		viewer.setContextMenu(new CustomerPaletteContextMenuProvider(viewer));
-		viewer.addDragSourceListener(new ToolTransferDragSourceListener(viewer));
-		viewer.getControl().addMouseListener(new MouseAdapter() {
-
-			@Override
-			public void mouseDoubleClick(MouseEvent e) {
-				super.mouseDoubleClick(e);
-				List<?> selectedEditParts = viewer.getSelectedEditParts();
-				CombinedTemplateCreationEntry selectedEntry = null;
-				for (Object object : selectedEditParts) {
-					selectedEntry = (CombinedTemplateCreationEntry) ((EditPart) object).getModel();
-				}
-
-				EntryImpl entryTemplate = (EntryImpl) selectedEntry.getTemplate();
-
-				VEXEditor currentVEXEditor;
-				IEditorPart activeEditor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
-				if (activeEditor instanceof VEXEditor) {
-					currentVEXEditor = (VEXEditor) activeEditor;
-					currentVEXEditor.defaultCreation(entryTemplate);
-				}
-			}
-
-		});
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolTransferDragSourceListener.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolTransferDragSourceListener.java
deleted file mode 100755
index 07dd1d7..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolTransferDragSourceListener.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette.part;
-
-import java.util.List;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartViewer;
-import org.eclipse.gef.dnd.AbstractTransferDragSourceListener;
-import org.eclipse.gef.palette.CombinedTemplateCreationEntry;
-import org.eclipse.gef.palette.PaletteTemplateEntry;
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.dnd.DragSourceEvent;
-
-public class ToolTransferDragSourceListener extends AbstractTransferDragSourceListener {
-
-	public ToolTransferDragSourceListener(EditPartViewer viewer) {
-		super(viewer, LocalSelectionTransfer.getTransfer());
-	}
-
-	/**
-	 * @see AbstractTransferDragSourceListener#dragFinished(DragSourceEvent)
-	 */
-	public void dragFinished(DragSourceEvent event) {
-		LocalSelectionTransfer.getTransfer().setSelection(null);
-	}
-
-	/**
-	 * Get the <i>template</i> from the selected {@link PaletteTemplateEntry} and sets it as the event data to be dropped.
-	 * 
-	 * @param event
-	 *            the DragSourceEvent
-	 */
-	public void dragSetData(DragSourceEvent event) {
-		event.data = getTemplate();
-	}
-
-	/**
-	 * Cancels the drag if the selected item does not represent a PaletteTemplateEntry.
-	 * 
-	 * @see org.eclipse.swt.dnd.DragSourceListener#dragStart(DragSourceEvent)
-	 */
-	public void dragStart(DragSourceEvent event) {
-		Object template = getTemplate();
-		if (template == null) {
-			event.doit = false;
-			return;
-		}
-		IStructuredSelection selection = new StructuredSelection(template);
-		LocalSelectionTransfer.getTransfer().setSelection(selection);
-	}
-
-	/**
-	 * A helper method that returns <code>null</code> or the <i>template</i> Object from the currently selected EditPart.
-	 * 
-	 * @return the template
-	 */
-	protected Object getTemplate() {
-		List selection = getViewer().getSelectedEditParts();
-		if (selection.size() == 1) {
-			EditPart editpart = (EditPart) getViewer().getSelectedEditParts().get(0);
-			Object model = editpart.getModel();
-			if (model instanceof PaletteTemplateEntry)
-				return ((PaletteTemplateEntry) model).getTemplate();
-			if (model instanceof CombinedTemplateCreationEntry)
-				return ((CombinedTemplateCreationEntry) model).getTemplate();
-		}
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolTransferDropTargetListener.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolTransferDropTargetListener.java
deleted file mode 100755
index efac3fe..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolTransferDropTargetListener.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.palette.part;
-
-import org.eclipse.gef.EditPartViewer;
-import org.eclipse.gef.dnd.AbstractTransferDropTargetListener;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.xwt.vex.PalletteSelectionTransfer;
-
-public class ToolTransferDropTargetListener extends AbstractTransferDropTargetListener {
-
-	public ToolTransferDropTargetListener(EditPartViewer viewer) {
-		super(viewer, PalletteSelectionTransfer.getInstance());
-		setEnablementDeterminedByCommand(false);
-	}
-
-	@Override
-	protected void updateTargetRequest() {
-
-	}
-
-	@Override
-	public boolean isEnabled(DropTargetEvent event) {
-		System.out.println(event.toString());
-		return true;
-		// return super.isEnabled(event);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/problems/IProblemChecker.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/problems/IProblemChecker.java
deleted file mode 100755
index f538983..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/problems/IProblemChecker.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.problems;
-
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-
-/**
- * @author jliu
- * 
- */
-public interface IProblemChecker {
-
-	List<Problem> EMPTY = Collections.emptyList();
-
-	List<Problem> checkProblems(StructuredTextEditor textEditor, String javaClassName);
-
-	boolean canChecked(StructuredTextEditor textEditor, String javaClassName);
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/problems/Problem.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/problems/Problem.java
deleted file mode 100755
index 5b10da7..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/problems/Problem.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.problems;
-
-/**
- * @author jliu
- */
-public class Problem {
-
-	// Problem Types.
-	public static final int NONE = 0;
-	public static final int WARNING = 1;
-	public static final int INFO = 2;
-	public static final int ERROR = 3;
-
-	private String message;
-	private int type = NONE;
-
-	public int start;
-	public int end;
-	public int line;
-
-	private Object source;
-
-	public Problem(String message, int type) {
-		this.message = message;
-		this.type = type;
-	}
-
-	public String getMessage() {
-		return message;
-	}
-
-	public void setMessage(String message) {
-		this.message = message;
-	}
-
-	public int getType() {
-		return type;
-	}
-
-	public void setType(int type) {
-		this.type = type;
-	}
-
-	public Object getSource() {
-		return source;
-	}
-
-	public void setSource(Object source) {
-		this.source = source;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/problems/ProblemCheckerRegistry.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/problems/ProblemCheckerRegistry.java
deleted file mode 100755
index 6267014..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/problems/ProblemCheckerRegistry.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.problems;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.Platform;
-
-public class ProblemCheckerRegistry {
-
-	public static final String EXTENSION_ID = "org.eclipse.xwt.vex.problemChecker";
-	private static final String CHECKER = "class";
-
-	public final static ProblemCheckerRegistry INSTANCE = new ProblemCheckerRegistry();
-
-	private Map<String, IProblemChecker> name2checker = new HashMap<String, IProblemChecker>();
-
-	private ProblemCheckerRegistry() {
-		// 
-	}
-
-	public List<IProblemChecker> getCheckers(String pointId) {
-		List<IProblemChecker> checkers = new ArrayList<IProblemChecker>();
-		IConfigurationElement[] configElem = Platform.getExtensionRegistry().getConfigurationElementsFor(EXTENSION_ID);
-		for (IConfigurationElement ce : configElem) {
-			try {
-				IExtension parent = (IExtension) ce.getParent();
-				String uniqueIdentifier = parent.getUniqueIdentifier();
-				if (!pointId.equals(uniqueIdentifier)) {
-					continue;
-				}
-				String attribute = ce.getAttribute(CHECKER);
-				IProblemChecker checker = name2checker.get(attribute);
-				if (checker == null) {
-					checker = (IProblemChecker) ce.createExecutableExtension(CHECKER);
-					name2checker.put(attribute, checker);
-				}
-				checkers.add(checker);
-			} catch (CoreException e) {
-				return Collections.emptyList();
-			}
-		}
-		return checkers;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/properties/VEXPropertySheetConfiguration.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/properties/VEXPropertySheetConfiguration.java
deleted file mode 100755
index 9efb3ad..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/properties/VEXPropertySheetConfiguration.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.properties;
-
-import org.eclipse.wst.xml.ui.views.properties.XMLPropertySheetConfiguration;
-
-public class VEXPropertySheetConfiguration extends XMLPropertySheetConfiguration {
-
-	public VEXPropertySheetConfiguration() {
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/provisional/VEXSourceEditingTextTools.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/provisional/VEXSourceEditingTextTools.java
deleted file mode 100755
index 5ef1bc8..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/provisional/VEXSourceEditingTextTools.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.provisional;
-
-import org.eclipse.wst.xml.ui.internal.provisional.XMLSourceEditingTextTools;
-
-public class VEXSourceEditingTextTools extends XMLSourceEditingTextTools {
-
-	public VEXSourceEditingTextTools() {
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/AnimatedImage.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/AnimatedImage.java
deleted file mode 100755
index 1f9fbf2..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/AnimatedImage.java
+++ /dev/null
@@ -1,261 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.swt;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.ImageLoader;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-
-public class AnimatedImage extends CLabel {
-	protected InputStream imageFile;
-	protected boolean stop = true;
-	protected boolean useGIFBackground = false;
-	protected int horizontalAlignment = SWT.LEFT;
-	protected int verticalAlignment = SWT.TOP;
-
-	protected AnimationRunnable animateThread = new AnimationRunnable();
-
-	class AnimationRunnable implements Runnable {
-		protected ImageLoader loader;
-		protected Image image;
-		protected ImageData[] imageDataArray;
-		protected GC targetGC;
-		protected Image offScreenImage;
-		protected GC offScreenImageGC;
-		protected int imageDataIndex = 0;
-		protected int repeatCount;
-
-		public void run() {
-			if (isDisposed() || stop) {
-				clearStop();
-				return;
-			}
-			Display display = getDisplay();
-			Color background = getBackground();
-			if (loader == null) {
-				setText("");
-				loader = new ImageLoader();
-				imageDataArray = loader.load(imageFile);
-				targetGC = new GC(AnimatedImage.this);
-				/*
-				 * Create an off-screen image to draw on, and fill it with the shell background.
-				 */
-				offScreenImage = new Image(display, loader.logicalScreenWidth, loader.logicalScreenHeight);
-				offScreenImageGC = new GC(offScreenImage);
-				offScreenImageGC.setBackground(background);
-				offScreenImageGC.fillRectangle(0, 0, loader.logicalScreenWidth, loader.logicalScreenHeight);
-
-				/*
-				 * Create the first image and draw it on the off-screen image.
-				 */
-				imageDataIndex = 0;
-				ImageData imageData = imageDataArray[imageDataIndex];
-				if (image != null && !image.isDisposed())
-					image.dispose();
-				image = new Image(display, imageData);
-				offScreenImageGC.drawImage(image, 0, 0, imageData.width, imageData.height, imageData.x, imageData.y, imageData.width, imageData.height);
-				repeatCount = loader.repeatCount;
-			}
-
-			try {
-				/*
-				 * Now loop through the images, creating and drawing each one on the off-screen image before drawing it on the shell.
-				 */
-				ImageData imageData = imageDataArray[imageDataIndex];
-				if (loader.repeatCount == 0 || repeatCount > 0) {
-					switch (imageData.disposalMethod) {
-					case SWT.DM_FILL_BACKGROUND:
-						/*
-						 * Fill with the background color before drawing.
-						 */
-						Color bgColor = null;
-						if (useGIFBackground && loader.backgroundPixel != -1) {
-							bgColor = new Color(display, imageData.palette.getRGB(loader.backgroundPixel));
-						}
-						offScreenImageGC.setBackground(bgColor != null ? bgColor : background);
-						offScreenImageGC.fillRectangle(imageData.x, imageData.y, imageData.width, imageData.height);
-						if (bgColor != null)
-							bgColor.dispose();
-						break;
-					case SWT.DM_FILL_PREVIOUS:
-						/*
-						 * Restore the previous image before drawing.
-						 */
-						offScreenImageGC.drawImage(image, 0, 0, imageData.width, imageData.height, imageData.x, imageData.y, imageData.width, imageData.height);
-						break;
-					}
-
-					imageDataIndex = (imageDataIndex + 1) % imageDataArray.length;
-					imageData = imageDataArray[imageDataIndex];
-					image.dispose();
-					image = new Image(display, imageData);
-					offScreenImageGC.drawImage(image, 0, 0, imageData.width, imageData.height, imageData.x, imageData.y, imageData.width, imageData.height);
-
-					/* Draw the off-screen image to the composite. */
-					Rectangle container = getBounds();
-					Rectangle imageBound = offScreenImage.getBounds();
-					int x = 0;
-					int y = 0;
-					switch (horizontalAlignment) {
-					case SWT.LEFT:
-						break;
-					case SWT.RIGHT:
-						x = (container.width - imageBound.width);
-						break;
-					case SWT.CENTER:
-						x = (container.width - imageBound.width) / 2;
-						break;
-					default:
-						throw new IllegalStateException("HorizontalAlignment " + horizontalAlignment);
-					}
-					switch (verticalAlignment) {
-					case SWT.TOP:
-						break;
-					case SWT.CENTER:
-						y = (container.height - imageBound.height) / 2;
-						break;
-					case SWT.BOTTOM:
-						y = (container.height - imageBound.height);
-						break;
-					default:
-						throw new IllegalStateException("VerticalAlignment " + verticalAlignment);
-					}
-
-					if (x < 0) {
-						x = 0;
-					}
-					if (y < 0) {
-						y = 0;
-					}
-
-					targetGC.drawImage(offScreenImage, x, y);
-
-					/*
-					 * Sleep for the specified delay time (adding commonly-used slow-down fudge factors).
-					 */
-					{
-						int ms = imageData.delayTime * 10;
-						if (ms < 20)
-							ms += 30;
-						if (ms < 30)
-							ms += 10;
-						getDisplay().timerExec(ms, this);
-					}
-
-					/*
-					 * If we have just drawn the last image, decrement the repeat count and start again.
-					 */
-					if (imageDataIndex == imageDataArray.length - 1)
-						repeatCount--;
-				} else {
-					clearStop();
-				}
-			} catch (SWTException ex) {
-				System.out.println("There was an error animating the GIF");
-			} finally {
-			}
-		}
-
-		protected void clearStop() {
-			if (offScreenImage != null && !offScreenImage.isDisposed()) {
-				try {
-					offScreenImage.dispose();
-				} catch (Exception e) {
-				}
-			}
-			if (offScreenImageGC != null && !offScreenImageGC.isDisposed()) {
-				try {
-					offScreenImageGC.dispose();
-				} catch (Exception e) {
-				}
-			}
-			if (image != null && !image.isDisposed()) {
-				try {
-					image.dispose();
-				} catch (Exception e) {
-				}
-			}
-			if (targetGC != null && !targetGC.isDisposed()) {
-				try {
-					targetGC.dispose();
-				} catch (Exception e) {
-				}
-			}
-			targetGC = null;
-			image = null;
-			offScreenImageGC = null;
-			offScreenImage = null;
-			loader = null;
-			imageDataArray = null;
-			imageDataIndex = 0;
-			repeatCount = 0;
-			stop = true;
-		}
-	};
-
-	public AnimatedImage(Composite parent, int style) {
-		super(parent, style);
-	}
-
-	public int getHorizontalAlignment() {
-		return horizontalAlignment;
-	}
-
-	public void setHorizontalAlignment(int horizontalAlignment) {
-		this.horizontalAlignment = horizontalAlignment;
-	}
-
-	public int getVerticalAlignment() {
-		return verticalAlignment;
-	}
-
-	public void setVerticalAlignment(int verticalAlignment) {
-		this.verticalAlignment = verticalAlignment;
-	}
-
-	public void setImageFile(URL imageFile) throws IOException {
-		if (!stop) {
-			throw new IllegalStateException("Animation is running");
-		}
-
-		this.imageFile = imageFile.openStream();
-		if (imageFile != null) {
-			start();
-		}
-	}
-
-	public void start() {
-		stop = false;
-		getDisplay().asyncExec(animateThread);
-	}
-
-	public void stop() {
-		stop = true;
-	}
-
-	@Override
-	public void dispose() {
-		stop = true;
-		super.dispose();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/CustomSashForm.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/CustomSashForm.java
deleted file mode 100755
index e602cd0..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/CustomSashForm.java
+++ /dev/null
@@ -1,940 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.swt;
-
-/*
- *  $RCSfile: CustomSashForm.java,v $
- *  $Revision: 1.3 $  $Date: 2010/06/18 00:17:01 $ 
- */
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.Cursors;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.ControlListener;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.eclipse.swt.events.MouseTrackAdapter;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Sash;
-
-/**
- * A SashForm that allows move to/from max controls on sash.
- * 
- * It only works with one sash (two children). It doesn't make sense for the arrows when there is more than one sash. Things get confusing for a restore position.
- * 
- * Currently only handle top/bottom orientation. Wouldn't take much to handle left/right.
- * 
- * @author richkulp
- */
-public class CustomSashForm extends SashForm {
-
-	public static final String copyright = "(c) Copyright IBM Corporation 2002."; //$NON-NLS-1$
-	/**
-	 * Custom style bits. They set whether max to one side of the other is not permitted. For example, if NO_MAX_UP, then there will be only one arrow. When not maxed, it will point down (and will do a max down), and when maxed down, it will point up (and will do a restore to the previous weight). There won't be a max to the top arrow.
-	 */
-	public static final int NO_MAX_LEFT = 0x1, // Custom style bit for not allow
-			// max left
-			NO_MAX_UP = NO_MAX_LEFT, // Custom style bit for not allow max up
-			NO_MAX_RIGHT = 0x2, // Custom style bit for not allow max right
-			NO_MAX_DOWN = NO_MAX_RIGHT; // Custom style bit for not allow max
-	// down
-
-	private static final int NO_WEIGHT = -1;
-	private static final int NO_ARROW = -1;
-
-	private static class SashInfo {
-		public Sash sash;
-		public boolean enabled; // Whether this sashinfo is enabled (i.e. if
-		// there is more than one, this will be
-		// disabled).
-		public int weight = NO_WEIGHT; // If slammed to an edge this is the
-		// restore weight. -1 means not slammed.
-		// This is the weight in the next form
-		// (i.e. sash[0] == weight[1].
-		public int cursorOver = NO_ARROW; // Which arrow is cursor over,
-		public boolean sashBorderLeft; // Draw sash border left/top
-		public boolean sashBorderRight; // Draw sash border right/bottom
-		public int[][] sashLocs; // There is one entry for each arrow, It is
-
-		// arrowType/arrowDrawn/x/y/height/width of
-		// the arrow area.
-
-		// There may not be a second entry, in which case we have only one
-		// arrow.
-		public SashInfo(Sash sash) {
-			this.sash = sash;
-		}
-	};
-
-	public static interface ICustomSashFormListener {
-		public void dividerMoved(int firstControlWeight, int secondControlWeight);
-	}
-
-	protected SashInfo currentSashInfo = null; // When the sash goes away, its
-	// entry is made null.
-	protected boolean inMouseClick = false; // Because we can't stop drag even
-	// when we are in the arrow area, we
-	// need
-	// to know that mouse down is in process so that when drag is completed, we
-	// know not to recompute our position because a mouse up is about to happen
-	// and we want the correct arrow handled correctly.
-
-	protected boolean sashBorders[]; // Whether cooresponding control needs a
-	// sash border
-
-	protected boolean noMaxUp, noMaxDown;
-	protected List customSashFormListeners = null;
-
-	protected static final int UP_ARROW = 0, UP_MAX_ARROW = 1, DOWN_ARROW = 2, DOWN_MAX_ARROW = 3,
-
-	MAX_ARROWS = 4;
-
-	protected static final int ARROW_TYPE_INDEX = 0, ARROW_DRAWN_INDEX = 1, X_INDEX = 2, Y_INDEX = 3, WIDTH_INDEX = 4, HEIGHT_INDEX = 5;
-
-	/**
-	 * Constructor for CustomSashForm.
-	 * 
-	 * @param parent
-	 * @param style
-	 */
-	public CustomSashForm(Composite parent, int style) {
-		this(parent, style, SWT.NONE);
-	}
-
-	/**
-	 * Constructor taking a custom style too. Or in the Custom style bits defined above (e.g. NO_MAX_RIGHT,...)
-	 */
-	public CustomSashForm(Composite parent, int style, int customStyle) {
-		super(parent, style);
-
-		// Need listener to force a layout
-		this.addListener(SWT.Resize, new Listener() {
-			public void handleEvent(Event e) {
-				layout(true);
-			}
-		});
-
-		noMaxUp = ((customStyle & NO_MAX_UP) != 0);
-		noMaxDown = ((customStyle & NO_MAX_DOWN) != 0);
-
-		if (noMaxUp & noMaxDown)
-			return; // If you can't max up or down, there there is no need for
-		// arrows.
-
-		SASH_WIDTH = 3 + getOrientation() == SWT.VERTICAL ? ARROW_HEIGHT : ARROW_SIZE;
-
-		arrowColor = new Color(parent.getDisplay(), 99, 101, 156);
-		borderColor = new Color(parent.getDisplay(), 132, 130, 132);
-
-		addDisposeListener(new DisposeListener() {
-			/**
-			 * @see org.eclipse.swt.events.DisposeListener#widgetDisposed(DisposeEvent)
-			 */
-			public void widgetDisposed(DisposeEvent e) {
-				arrowColor.dispose();
-				borderColor.dispose();
-				arrowColor = borderColor = null;
-			}
-
-		});
-	}
-
-	/**
-	 * Call to set to max up
-	 */
-	public void maxUp() {
-		if (noMaxUp)
-			return;
-
-		if (currentSashInfo == null)
-			currentSashInfo = new SashInfo(null);
-		upMaxClicked(currentSashInfo);
-	}
-
-	/**
-	 * Call to set to max left
-	 */
-	public void maxLeft() {
-		maxUp();
-	}
-
-	/**
-	 * Call to set to max down
-	 */
-	public void maxDown() {
-		if (noMaxDown)
-			return;
-
-		if (currentSashInfo == null)
-			currentSashInfo = new SashInfo(null);
-
-		downMaxClicked(currentSashInfo);
-	}
-
-	/**
-	 * Call to set to max left
-	 */
-	public void maxRight() {
-		maxDown();
-	}
-
-	/**
-	 * Set the need sash borders for the controls.
-	 */
-	public void setSashBorders(boolean[] sashBorders) {
-		int[] weights = getWeights(); // KLUDGE This is a kludge just to see how
-		// many controls we have.
-		if (weights.length != 2 || (sashBorders != null && sashBorders.length != 2)) {
-			SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-		}
-		this.sashBorders = sashBorders;
-	}
-
-	/**
-	 * @see org.eclipse.swt.widgets.Composite#layout(boolean)
-	 */
-	public void layout(boolean changed) {
-		super.layout(changed);
-
-		if (noMaxUp && noMaxDown)
-			return; // No arrows to handle in this case.
-
-		if (getMaximizedControl() != null)
-			return; // We have a maximized control, so we don't need to worry
-		// about the sash.
-
-		// Let's get the list of all sashes the sash form now has. If there is
-		// more than one then just disable the sashinfo.
-		// If there is no current sash, and there is only one sash, then create
-		// the sashinfo for it.
-		Control[] children = getChildren();
-		Sash newSash = null;
-		for (int i = 0; i < children.length; i++) {
-			if (children[i] instanceof Sash)
-				if (newSash == null)
-					newSash = (Sash) children[i];
-				else {
-					// We have more than one sash, so need to disable current
-					// sash, if we have one.
-					if (currentSashInfo != null)
-						currentSashInfo.enabled = false;
-					return; // Don't go on.
-				}
-		}
-
-		if (newSash == null)
-			return; // We have no sashes at all.
-
-		// Now we need to see if this is a new sash.
-		if (currentSashInfo == null || currentSashInfo.sash == null) {
-			if (currentSashInfo == null)
-				currentSashInfo = new SashInfo(newSash);
-			else
-				currentSashInfo.sash = newSash;
-			newSash.addPaintListener(new PaintListener() {
-				/**
-				 * @see org.eclipse.swt.events.PaintListener#paintControl(PaintEvent)
-				 */
-				public void paintControl(PaintEvent e) {
-					// Need to find the index of the sash we're interested in.
-
-					GC gc = e.gc;
-					Color oldFg = gc.getForeground();
-					Color oldBg = gc.getBackground();
-
-					drawArrow(gc, currentSashInfo.sashLocs[0], currentSashInfo.cursorOver == 0); // Draw first
-					// arrow
-					if (currentSashInfo.sashLocs.length > 1)
-						drawArrow(gc, currentSashInfo.sashLocs[1], currentSashInfo.cursorOver == 1); // Draw second
-					// arrow
-
-					if (currentSashInfo.sashBorderLeft)
-						drawSashBorder(gc, currentSashInfo.sash, true);
-					if (currentSashInfo.sashBorderRight)
-						drawSashBorder(gc, currentSashInfo.sash, false);
-
-					gc.setForeground(oldFg);
-					gc.setBackground(oldBg);
-				}
-
-			});
-
-			newSash.addControlListener(new ControlListener() {
-				/**
-				 * @see org.eclipse.swt.events.ControlAdapter#controlMoved(ControlEvent)
-				 */
-				public void controlMoved(ControlEvent e) {
-					recomputeSashInfo();
-				}
-
-				/**
-				 * @see org.eclipse.swt.events.ControlAdapter#controlResized(ControlEvent)
-				 */
-				public void controlResized(ControlEvent e) {
-					recomputeSashInfo();
-				}
-
-			});
-
-			newSash.addDisposeListener(new DisposeListener() {
-				/**
-				 * @see org.eclipse.swt.events.DisposeListener#widgetDisposed(DisposeEvent)
-				 */
-				public void widgetDisposed(DisposeEvent e) {
-					// Need to clear out the widget from current.
-					currentSashInfo = null;
-				}
-			});
-
-			// This is a kludge because we can't override the set cursor hit
-			// test.
-			newSash.addMouseMoveListener(new MouseMoveListener() {
-				/**
-				 * @see org.eclipse.swt.events.MouseMoveListener#mouseMove(MouseEvent)
-				 */
-				public void mouseMove(MouseEvent e) {
-					// See if within one of the arrows.
-					int x = e.x;
-					int y = e.y;
-					for (int i = 0; i < currentSashInfo.sashLocs.length; i++) {
-						int[] locs = currentSashInfo.sashLocs[i];
-						boolean vertical = getOrientation() == SWT.VERTICAL;
-						int loc = vertical ? x : y;
-						int locIndex = vertical ? X_INDEX : Y_INDEX;
-						int sizeIndex = vertical ? WIDTH_INDEX : HEIGHT_INDEX;
-						if (locs[locIndex] <= loc && loc <= locs[locIndex] + locs[sizeIndex]) {
-							if (currentSashInfo.cursorOver == NO_ARROW) {
-								currentSashInfo.sash.setCursor(Cursors.ARROW);
-							}
-							if (currentSashInfo.cursorOver != i) {
-								currentSashInfo.cursorOver = i;
-								currentSashInfo.sash.redraw();
-								switch (locs[ARROW_TYPE_INDEX]) {
-								case UP_ARROW:
-								case DOWN_ARROW:
-									currentSashInfo.sash.setToolTipText("Restore Previous Location");
-									break;
-								case UP_MAX_ARROW:
-								case DOWN_MAX_ARROW:
-									currentSashInfo.sash.setToolTipText("Maximize Pane");
-									break;
-								}
-							}
-							return;
-						}
-					}
-					if (currentSashInfo.cursorOver != NO_ARROW) {
-						currentSashInfo.sash.setCursor(null);
-						currentSashInfo.cursorOver = NO_ARROW;
-						currentSashInfo.sash.redraw();
-						currentSashInfo.sash.setToolTipText(null);
-					}
-				}
-
-			});
-
-			// Need to know when we leave so that we can clear the cursor
-			// feedback if set.
-			newSash.addMouseTrackListener(new MouseTrackAdapter() {
-				/**
-				 * @see org.eclipse.swt.events.MouseTrackAdapter#mouseExit(MouseEvent)
-				 */
-				public void mouseExit(MouseEvent e) {
-					if (currentSashInfo.cursorOver != NO_ARROW) {
-						// Undo the cursor.
-						currentSashInfo.sash.setCursor(null);
-						currentSashInfo.cursorOver = NO_ARROW;
-						currentSashInfo.sash.redraw();
-						currentSashInfo.sash.setToolTipText(null);
-					}
-				}
-			});
-
-			// Want to handle mouse down as a selection.
-			newSash.addMouseListener(new MouseAdapter() {
-				/**
-				 * @see org.eclipse.swt.events.MouseAdapter#mouseDown(MouseEvent)
-				 */
-				public void mouseDown(MouseEvent e) {
-					inMouseClick = true;
-					// If we're within a button, then redraw to wipe out stipple
-					// and get button push effect.
-					int x = e.x;
-					int y = e.y;
-					for (int i = 0; i < currentSashInfo.sashLocs.length; i++) {
-						int[] locs = currentSashInfo.sashLocs[i];
-						boolean vertical = getOrientation() == SWT.VERTICAL;
-						int loc = vertical ? x : y;
-						int locIndex = vertical ? X_INDEX : Y_INDEX;
-						int sizeIndex = vertical ? WIDTH_INDEX : HEIGHT_INDEX;
-						if (locs[locIndex] <= loc && loc <= locs[locIndex] + locs[sizeIndex]) {
-							currentSashInfo.sash.redraw();
-							break;
-						}
-					}
-				}
-
-				/**
-				 * @see org.eclipse.swt.events.MouseListener#mouseDown(MouseEvent)
-				 */
-				public void mouseUp(MouseEvent e) {
-					// See if within one of the arrows.
-					inMouseClick = false; // No longer in down click
-					int x = e.x;
-					int y = e.y;
-					for (int i = 0; i < currentSashInfo.sashLocs.length; i++) {
-						int[] locs = currentSashInfo.sashLocs[i];
-						boolean vertical = getOrientation() == SWT.VERTICAL;
-						int loc = vertical ? x : y;
-						int locIndex = vertical ? X_INDEX : Y_INDEX;
-						int sizeIndex = vertical ? WIDTH_INDEX : HEIGHT_INDEX;
-						if (locs[locIndex] <= loc && loc <= locs[locIndex] + locs[sizeIndex]) {
-							// We found it.
-							switch (locs[ARROW_TYPE_INDEX]) {
-							case UP_ARROW:
-								upClicked(currentSashInfo);
-								break;
-							case UP_MAX_ARROW:
-								upMaxClicked(currentSashInfo);
-								break;
-							case DOWN_ARROW:
-								downClicked(currentSashInfo);
-								break;
-							case DOWN_MAX_ARROW:
-								downMaxClicked(currentSashInfo);
-								break;
-							}
-							break;
-						}
-					}
-
-					currentSashInfo.sash.redraw(); // Make sure stipple goes
-					// away from the mouse up if
-					// not over an arrow button.
-					fireDividerMoved();
-				}
-
-			});
-			recomputeSashInfo(); // Get initial setting
-		}
-
-	}
-
-	protected void recomputeSashInfo() {
-		if (inMouseClick && currentSashInfo.cursorOver != NO_WEIGHT)
-			return; // Don't process because we are in the down mouse button on
-		// an arrow.
-
-		// We need to refigure size for the sash arrows.
-		int[] addArrows = null;
-		int[] drawArrows = null;
-		int[] weights = getWeights(); // This should be two entries only. We
-		// shouldn't of gotton here if there
-		// were more than two.
-		if (noMaxUp) {
-			addArrows = new int[1];
-			drawArrows = new int[1];
-			if (weights[1] == 0) {
-				// Slammed to the bottom
-				addArrows[0] = UP_ARROW;
-				drawArrows[0] = UP_ARROW;
-				currentSashInfo.sashBorderLeft = sashBorders != null ? sashBorders[0] : false;
-				currentSashInfo.sashBorderRight = false;
-			} else {
-				// Not slammed
-				addArrows[0] = DOWN_MAX_ARROW;
-				drawArrows[0] = DOWN_ARROW;
-				currentSashInfo.weight = NO_WEIGHT; // Since we are in the
-				// middle, there is no
-				// weight. We've could of
-				// been dragged here.
-				currentSashInfo.sashBorderLeft = sashBorders != null ? sashBorders[0] : false;
-				currentSashInfo.sashBorderRight = sashBorders != null ? sashBorders[1] : false;
-			}
-		} else if (noMaxDown) {
-			addArrows = new int[1];
-			drawArrows = new int[1];
-			if (weights[0] == 0) {
-				// Slammed to the top
-				addArrows[0] = DOWN_ARROW;
-				drawArrows[0] = DOWN_ARROW;
-				currentSashInfo.sashBorderLeft = false;
-				currentSashInfo.sashBorderRight = sashBorders != null ? sashBorders[1] : false;
-			} else {
-				// Not slammed
-				addArrows[0] = UP_MAX_ARROW;
-				drawArrows[0] = UP_ARROW;
-				currentSashInfo.weight = NO_WEIGHT; // Since we are in the
-				// middle, there is no
-				// weight. We've could of
-				// been dragged here.
-				currentSashInfo.sashBorderLeft = sashBorders != null ? sashBorders[0] : false;
-				currentSashInfo.sashBorderRight = sashBorders != null ? sashBorders[1] : false;
-			}
-		} else {
-			addArrows = new int[2];
-			drawArrows = new int[2];
-			// TODO: SashForm as changed the folllwing is a temporary kludge
-			Rectangle sashBounds = currentSashInfo.sash.getBounds();
-			Rectangle clientArea = getClientArea();
-			final int DRAG_MINIMUM = 20; // TODO: kludge see
-			// SashForm.DRAG_MINIMUM
-			if (weights[0] == 0 || (currentSashInfo.weight != NO_WEIGHT && sashBounds.y <= DRAG_MINIMUM)) {
-				// Slammed to the top.
-				addArrows[0] = DOWN_MAX_ARROW;
-				drawArrows[0] = DOWN_MAX_ARROW;
-				addArrows[1] = DOWN_ARROW;
-				drawArrows[1] = DOWN_ARROW;
-				currentSashInfo.sashBorderLeft = false;
-				currentSashInfo.sashBorderRight = sashBorders != null ? sashBorders[1] : false;
-			} else if (weights[1] == 0 || (currentSashInfo.weight != NO_WEIGHT && sashBounds.y + sashBounds.height >= clientArea.height - DRAG_MINIMUM)) {
-				// Slammed to the bottom
-				addArrows[0] = UP_ARROW;
-				drawArrows[0] = UP_ARROW;
-				addArrows[1] = UP_MAX_ARROW;
-				drawArrows[1] = UP_MAX_ARROW;
-				currentSashInfo.sashBorderLeft = sashBorders != null ? sashBorders[0] : false;
-				currentSashInfo.sashBorderRight = false;
-			} else {
-				// Not slammed
-				addArrows[0] = UP_MAX_ARROW;
-				drawArrows[0] = UP_ARROW;
-				addArrows[1] = DOWN_MAX_ARROW;
-				drawArrows[1] = DOWN_ARROW;
-				currentSashInfo.weight = NO_WEIGHT; // Since we are in the
-				// middle, there is no
-				// weight. We've could of
-				// been dragged here.
-				currentSashInfo.sashBorderLeft = sashBorders != null ? sashBorders[0] : false;
-				currentSashInfo.sashBorderRight = sashBorders != null ? sashBorders[1] : false;
-			}
-		}
-		getNewSashArray(currentSashInfo, addArrows, drawArrows);
-
-		currentSashInfo.sash.redraw(); // Need to schedule a redraw because it
-		// has already drawn the old ones during
-		// the set bounds in super layout.
-	}
-
-	protected void upClicked(SashInfo sashinfo) {
-		// This means restore just the sash below weight and reduce the above
-		// weight by the right amount.
-		int[] weights = getWeights();
-
-		weights[0] = 1000 - sashinfo.weight; // Assume weights are always in
-		// units of 1000.
-		weights[1] = sashinfo.weight;
-		sashinfo.weight = NO_WEIGHT;
-
-		setWeights(weights);
-		fireDividerMoved();
-	}
-
-	protected void upMaxClicked(SashInfo sashinfo) {
-		int[] weights = getWeights();
-
-		// Up max, so save the current weight of 1 into the sash info, and move
-		// to the top.
-		if (currentSashInfo.weight == NO_WEIGHT)
-			currentSashInfo.weight = weights[1]; // Not currently maxed, save
-		// position.
-
-		weights[1] = 1000;
-		weights[0] = 0;
-
-		// If the upper panel has focus, flip focus to the lower panel because
-		// the upper panel is now hidden.
-		Control[] children = getChildren();
-		boolean upperFocus = isFocusAncestorA(children[0]);
-		setWeights(weights);
-		if (upperFocus)
-			children[1].setFocus();
-		fireDividerMoved();
-	}
-
-	protected void downClicked(SashInfo sashinfo) {
-		// This means restore just the sash below weight and increase the above
-		// weight by that amount.
-		int[] weights = getWeights();
-
-		weights[0] = 1000 - sashinfo.weight; // Assume weights are always in
-		// units of 1000.
-		weights[1] = sashinfo.weight;
-		sashinfo.weight = NO_WEIGHT;
-
-		setWeights(weights);
-		fireDividerMoved();
-	}
-
-	protected void downMaxClicked(SashInfo sashinfo) {
-		int[] weights = getWeights();
-
-		// Down max, so save the current weight of 1 into the sash info, and
-		// move to the bottom.
-		if (currentSashInfo.weight == NO_WEIGHT)
-			currentSashInfo.weight = weights[1]; // Not currently maxed, save
-		// current weight.
-		weights[0] = 1000;
-		weights[1] = 0;
-
-		// If the lower panel has focus, flip focus to the upper panel because
-		// the lower panel is now hidden.
-		Control[] children = getChildren();
-		boolean lowerFocus = isFocusAncestorA(children[1]);
-		setWeights(weights);
-		if (lowerFocus)
-			children[0].setFocus();
-		fireDividerMoved();
-	}
-
-	/*
-	 * This determines if the control or one of its children has the focus. It was hidden by SWT, but it is really useful.
-	 */
-	protected boolean isFocusAncestorA(Control control) {
-		Display display = getDisplay();
-		Control focusControl = display.getFocusControl();
-		while (focusControl != null && focusControl != control) {
-			focusControl = focusControl.getParent();
-		}
-		return control == focusControl;
-	}
-
-	protected void getNewSashArray(SashInfo sashInfo, int[] addArrowTypes, int[] drawArrowTypes) {
-
-		int[][] thisSash = sashInfo.sashLocs;
-		if (thisSash == null)
-			thisSash = sashInfo.sashLocs = new int[addArrowTypes.length][];
-
-		int aSize = ARROW_SIZE; // Width of arrow
-		int tSize = aSize + 2 * ARROW_MARGIN; // Total Width (arrow + margin)
-		int neededSize = tSize * addArrowTypes.length;
-
-		boolean vertical = getOrientation() == SWT.VERTICAL;
-		Point s = sashInfo.sash.getSize();
-		int start = 0;
-		int x = 0;
-		int y = 0;
-		int width = 0;
-		int height = 0;
-		if (vertical) {
-			start = (s.x - neededSize) / 2;
-			x = start;
-			y = (s.y - ARROW_HEIGHT) / 2; // Center vertically, no margin
-			// required.
-			width = tSize;
-			height = aSize;
-		} else {
-			start = (s.y - neededSize) / 2;
-			y = start;
-			x = (s.x - ARROW_HEIGHT) / 2; // Center horizontally, no margin
-			// required.
-			width = aSize;
-			height = tSize;
-		}
-		for (int j = 0; j < addArrowTypes.length; j++) {
-			if (thisSash[j] == null)
-				thisSash[j] = new int[] { addArrowTypes[j], drawArrowTypes[j], x, y, width, height };
-			else {
-				// Reuse the array
-				thisSash[j][ARROW_TYPE_INDEX] = addArrowTypes[j];
-				thisSash[j][ARROW_DRAWN_INDEX] = drawArrowTypes[j];
-				thisSash[j][X_INDEX] = x;
-				thisSash[j][Y_INDEX] = y;
-				thisSash[j][WIDTH_INDEX] = width;
-				thisSash[j][HEIGHT_INDEX] = height;
-			}
-			if (vertical)
-				x += tSize;
-			else
-				y += tSize;
-		}
-	}
-
-	protected void drawSashBorder(GC gc, Sash sash, boolean leftBorder) {
-		gc.setForeground(borderColor);
-		if (getOrientation() == SWT.VERTICAL) {
-			Point s = sash.getSize();
-			if (leftBorder)
-				gc.drawLine(0, 0, s.x - 1, 0);
-			else
-				gc.drawLine(0, s.y - 1, s.x - 1, s.y - 1);
-		} else {
-			Point s = sash.getSize();
-			if (leftBorder)
-				gc.drawLine(0, 0, 0, s.y - 1);
-			else
-				gc.drawLine(s.x - 1, 0, s.x - 1, s.y - 1);
-		}
-	}
-
-	protected void drawArrow(GC gc, int[] sashLoc, boolean selected) {
-		int indent = 0;
-		if (selected) {
-			if (!inMouseClick) {
-				// Draw the selection box.
-				Color highlightShadow = getDisplay().getSystemColor(SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW);
-				Color normalShadow = getDisplay().getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);
-				gc.setForeground(highlightShadow);
-				gc.drawLine(sashLoc[X_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX], sashLoc[X_INDEX], sashLoc[Y_INDEX]);
-				gc.drawLine(sashLoc[X_INDEX], sashLoc[Y_INDEX], sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX]);
-
-				gc.setForeground(normalShadow);
-				gc.drawLine(sashLoc[X_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX], sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX]);
-				gc.drawLine(sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX], sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX]);
-			} else {
-				// Draw pushed selection box.
-				indent = 1;
-				Color highlightShadow = getDisplay().getSystemColor(SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW);
-				Color normalShadow = getDisplay().getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);
-				gc.setForeground(normalShadow);
-				gc.drawLine(sashLoc[X_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX], sashLoc[X_INDEX], sashLoc[Y_INDEX]);
-				gc.drawLine(sashLoc[X_INDEX], sashLoc[Y_INDEX], sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX]);
-
-				gc.setForeground(highlightShadow);
-				gc.drawLine(sashLoc[X_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX], sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX]);
-				gc.drawLine(sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX], sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX]);
-			}
-		}
-		if (getOrientation() == SWT.VERTICAL) {
-			switch (sashLoc[ARROW_DRAWN_INDEX]) {
-			case UP_ARROW:
-				drawUpArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
-				break;
-			case DOWN_ARROW:
-				drawDownArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
-				break;
-			case UP_MAX_ARROW:
-				drawUpMaxArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
-				break;
-			case DOWN_MAX_ARROW:
-				drawDownMaxArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
-				break;
-			}
-		} else {
-			switch (sashLoc[ARROW_DRAWN_INDEX]) {
-			case UP_ARROW:
-				drawLeftArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
-				break;
-			case DOWN_ARROW:
-				drawRightArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
-				break;
-			case UP_MAX_ARROW:
-				drawLeftMaxArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
-				break;
-			case DOWN_MAX_ARROW:
-				drawRightMaxArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
-				break;
-			}
-		}
-	}
-
-	// These are for the up/down arrow. Just swap them for left/right arrow.
-	protected static final int ARROW_SIZE = 8, ARROW_HEIGHT = 8, ARROW_MARGIN = 3; // Margin on each side of arrow
-
-	protected Color arrowColor, borderColor;
-
-	// Draw at the given x/y (upper left corner of arrow area).
-	protected void drawUpArrow(GC gc, int x, int y) {
-		gc.setForeground(arrowColor);
-
-		x += ARROW_MARGIN;
-		gc.drawLine(x + 4, y + 2, x + 7, y + 5);
-		gc.drawLine(x + 3, y + 2, x + 3, y + 2);
-
-		gc.drawLine(x + 2, y + 3, x + 4, y + 3);
-		gc.drawLine(x + 1, y + 4, x + 5, y + 4);
-		gc.drawLine(x, y + 5, x + 6, y + 5);
-	}
-
-	// Draw at the given x/y (upper left corner of arrow area).
-	protected void drawUpMaxArrow(GC gc, int x, int y) {
-		gc.setForeground(arrowColor);
-
-		x += ARROW_MARGIN;
-		gc.drawLine(x, y, x + 7, y);
-		gc.drawLine(x, y + 1, x + 7, y + 1);
-
-		gc.drawLine(x + 4, y + 2, x + 7, y + 5);
-		gc.drawLine(x + 3, y + 2, x + 3, y + 2);
-
-		gc.drawLine(x + 2, y + 3, x + 4, y + 3);
-		gc.drawLine(x + 1, y + 4, x + 5, y + 4);
-		gc.drawLine(x, y + 5, x + 6, y + 5);
-	}
-
-	// Draw at the given x/y (upper left corner of arrow area).
-	protected void drawDownArrow(GC gc, int x, int y) {
-		gc.setForeground(arrowColor);
-
-		x += ARROW_MARGIN;
-		gc.drawLine(x, y + 2, x + 3, y + 5);
-		gc.drawLine(x + 4, y + 5, x + 4, y + 5);
-
-		gc.drawLine(x + 3, y + 4, x + 5, y + 4);
-		gc.drawLine(x + 1, y + 3, x + 6, y + 3);
-		gc.drawLine(x + 1, y + 2, x + 7, y + 2);
-	}
-
-	// Draw at the given x/y (upper left corner of arrow area).
-	protected void drawDownMaxArrow(GC gc, int x, int y) {
-		gc.setForeground(arrowColor);
-
-		x += ARROW_MARGIN;
-		gc.drawLine(x, y + 6, x + 7, y + 6);
-		gc.drawLine(x, y + 7, x + 7, y + 7);
-
-		gc.drawLine(x, y + 2, x + 3, y + 5);
-		gc.drawLine(x + 4, y + 5, x + 4, y + 5);
-
-		gc.drawLine(x + 3, y + 4, x + 5, y + 4);
-		gc.drawLine(x + 1, y + 3, x + 6, y + 3);
-		gc.drawLine(x + 1, y + 2, x + 7, y + 2);
-	}
-
-	// Draw at the given x/y (upper left corner of arrow area).
-	protected void drawLeftArrow(GC gc, int x, int y) {
-		gc.setForeground(arrowColor);
-
-		y += ARROW_MARGIN;
-		gc.drawLine(x + 2, y + 4, x + 5, y + 7);
-		gc.drawLine(x + 2, y + 3, x + 2, y + 3);
-
-		gc.drawLine(x + 3, y + 2, x + 3, y + 4);
-		gc.drawLine(x + 4, y + 1, x + 4, y + 5);
-		gc.drawLine(x + 5, y, x + 5, y + 6);
-	}
-
-	// Draw at the given x/y (upper left corner of arrow area).
-	protected void drawLeftMaxArrow(GC gc, int x, int y) {
-		gc.setForeground(arrowColor);
-
-		y += ARROW_MARGIN;
-		gc.drawLine(x, y, x, y + 7);
-		gc.drawLine(x + 1, y, x + 1, y + 7);
-
-		gc.drawLine(x + 2, y + 4, x + 5, y + 7);
-		gc.drawLine(x + 2, y + 3, x + 2, y + 3);
-
-		gc.drawLine(x + 3, y + 2, x + 3, y + 4);
-		gc.drawLine(x + 4, y + 1, x + 4, y + 5);
-		gc.drawLine(x + 5, y, x + 5, y + 6);
-	}
-
-	// Draw at the given x/y (upper left corner of arrow area).
-	protected void drawRightArrow(GC gc, int x, int y) {
-		gc.setForeground(arrowColor);
-
-		y += ARROW_MARGIN;
-		gc.drawLine(x + 2, y, x + 5, y + 3);
-		gc.drawLine(x + 5, y + 4, x + 5, y + 4);
-
-		gc.drawLine(x + 4, y + 3, x + 4, y + 5);
-		gc.drawLine(x + 3, y + 1, x + 3, y + 6);
-		gc.drawLine(x + 2, y + 1, x + 2, y + 7);
-	}
-
-	// Draw at the given x/y (upper left corner of arrow area).
-	protected void drawRightMaxArrow(GC gc, int x, int y) {
-		gc.setForeground(arrowColor);
-
-		y += ARROW_MARGIN;
-		gc.drawLine(x + 6, y, x + 6, y + 7);
-		gc.drawLine(x + 7, y, x + 7, y + 7);
-
-		gc.drawLine(x + 2, y, x + 5, y + 3);
-		gc.drawLine(x + 5, y + 4, x + 5, y + 4);
-
-		gc.drawLine(x + 4, y + 3, x + 4, y + 5);
-		gc.drawLine(x + 3, y + 1, x + 3, y + 6);
-		gc.drawLine(x + 2, y + 1, x + 2, y + 7);
-	}
-
-	public int getSavedWeight() {
-		if (currentSashInfo != null)
-			return currentSashInfo.weight;
-		else
-			return -1;
-	}
-
-	protected Sash getSash() {
-		Control[] kids = getChildren();
-		for (int i = 0; i < kids.length; i++) {
-			if (kids[i] instanceof Sash)
-				return (Sash) kids[i];
-		}
-		return null;
-	}
-
-	public void setCurrentSavedWeight(int weight) {
-		if (weight >= 0 && currentSashInfo != null) {
-			recomputeSashInfo();
-			currentSashInfo.weight = weight;
-		}
-	}
-
-	/**
-	 * Adds a custom sashform listener. This listener will be removed when this control is disposed.
-	 * 
-	 * @param listener
-	 * 
-	 * @since 1.2.0
-	 */
-	public void addCustomSashFormListener(ICustomSashFormListener listener) {
-		if (customSashFormListeners == null)
-			customSashFormListeners = new ArrayList();
-		customSashFormListeners.add(listener);
-	}
-
-	/**
-	 * Removes the custom sashform listener.
-	 * 
-	 * @param listener
-	 * 
-	 * @since 1.2.0
-	 */
-	public void removeCustomSashFormListener(ICustomSashFormListener listener) {
-		if (customSashFormListeners != null) {
-			customSashFormListeners.remove(listener);
-		}
-	}
-
-	protected void fireDividerMoved() {
-		if (customSashFormListeners != null && customSashFormListeners.size() > 0) {
-			int[] weights = getWeights();
-			if (weights != null && weights.length == 2) {
-				int firstControlWeight = weights[0];
-				int secondControlWeight = weights[1];
-				for (Iterator listenerItr = customSashFormListeners.iterator(); listenerItr.hasNext();) {
-					ICustomSashFormListener listener = (ICustomSashFormListener) listenerItr.next();
-					listener.dividerMoved(firstControlWeight, secondControlWeight);
-				}
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/DisposeUtil.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/DisposeUtil.java
deleted file mode 100755
index bfa97c8..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/DisposeUtil.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.swt;
-
-import org.eclipse.swt.graphics.GC;
-
-public class DisposeUtil {
-	
-	/**
-	 * in MAC Cocoa, we should not dispose the GC for an image. The image will dispose
-	 * the gc automatically.
-	 * 
-	 * @param gc
-	 */
-	public static void dispose(GC gc) {
-		gc.dispose();
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/ImageCapture.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/ImageCapture.java
deleted file mode 100755
index a7056a7..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/ImageCapture.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $RCSfile: ImageCapture.java,v $
- *  $Revision: 1.7 $  $Date: 2009/12/22 15:40:57 $ 
- */
-package org.eclipse.xwt.vex.swt;
-
-import java.lang.reflect.Field;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Capture and transmit the image back. There are platform specific subclasses to handle the grab of the image from a control.
- * 
- * @since 1.1.0
- */
-public abstract class ImageCapture {
-	static ImageCapture instance;
-
-	public Image captureImage(Control control) {
-		Rectangle rectangle = control.getBounds();
-		Display display = control.getDisplay();
-		Image image = null;
-		if (control instanceof Shell) {
-			Shell shell = (Shell) control;
-			shell.layout();
-			Point parentLocation = control.toDisplay(0, 0);
-			image = getImage(control, rectangle.width, rectangle.height, false);
-
-			rectangle.x = parentLocation.x;
-			rectangle.y = parentLocation.y;
-
-			GC myImageGC = new GC(image);
-			try {
-				for (Control child : shell.getChildren()) {
-					Rectangle childBounds = child.getBounds();
-					// bug of SWT on Win32, child bounds is not correct in the Window is not in the ToolBar
-					int x = (rectangle.width - childBounds.width) / 2;
-					int y = (rectangle.height - childBounds.height) - x;
-					childBounds.x = rectangle.x + x;
-					childBounds.y = rectangle.y + y;
-					if (!rectangle.intersects(childBounds))
-						continue; // Child is completely outside parent.
-
-					Image childImage = new Image(display, child.getBounds());
-					GC gc = new GC(childImage);
-					child.print(gc);
-					DisposeUtil.dispose(gc);
-					try {
-						myImageGC.drawImage(childImage, x, y);
-					} finally {
-						childImage.dispose();
-					}
-				}
-			} finally {
-				myImageGC.dispose();
-			}
-		} else {
-			image = defaultCapture(control);
-		}
-		return image;
-	}
-
-	public Image defaultCapture(Control control) {
-		Image image = new Image(control.getDisplay(), control.getBounds());
-		GC gc = new GC(image);
-		try {
-			if (control.print(gc)) {
-				return image;
-			} else {
-				image.dispose();
-				Rectangle bounds = control.getBounds();
-				return getImage(control, bounds.width, bounds.height, true);	
-			}	
-		} finally {
-			DisposeUtil.dispose(gc);
-		}
-	}
-
-	protected abstract Image getImage(Control control, int maxWidth, int maxHeight, boolean includeChildren);
-
-	public static ImageCapture getImageCapture() {
-		if (instance == null) {
-			if (Platform.OS_WIN32.equals(Platform.getOS()))
-				instance = new Win32ImageCapture();
-			else if (Platform.WS_GTK.equals(Platform.getWS())) {
-				if (Platform.ARCH_IA64.equals(Platform.getOSArch()) || Platform.ARCH_X86_64.equals(Platform.getOSArch()))
-					instance = new org.eclipse.ve.internal.swt.targetvm.unix.bits64.ImageCapture();
-				else
-					instance = new org.eclipse.ve.internal.swt.targetvm.unix.ImageCapture();
-			} else if (Platform.OS_MACOSX.equals(Platform.getOS())) {
-				if (Platform.WS_COCOA.equals(Platform.getWS())) {
-					instance = new org.eclipse.ve.internal.swt.targetvm.macosx.cocoa.ImageCapture();
-				}
-				else if (Platform.WS_CARBON.equals(Platform.getWS())) {
-					instance = new org.eclipse.ve.internal.swt.targetvm.macosx.ImageCapture();
-				}
-				else { 
-					throw new UnsupportedOperationException(Platform.getOS());
-				}
-			} else {
-				throw new UnsupportedOperationException(Platform.getOS());
-			}
-		}
-		return instance;
-	}
-	
-	public static int getIntHandle(Control control) {
-		try {
-			Field handleField = control.getClass().getField("handle");
-			handleField.setAccessible(true);
-			return (Integer) handleField.get(control);
-		} catch (SecurityException e) {
-			e.printStackTrace();
-		} catch (IllegalArgumentException e) {
-			e.printStackTrace();
-		} catch (NoSuchFieldException e) {
-			e.printStackTrace();
-		} catch (IllegalAccessException e) {
-			e.printStackTrace();
-		}
-		return -1;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/Win32ImageCapture.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/Win32ImageCapture.java
deleted file mode 100755
index fcdbee0..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/Win32ImageCapture.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.swt;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Spinner;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Tree;
-
-/**
- * Image Capture for Win32 platforms.
- * 
- * @since 1.1.0
- */
-public class Win32ImageCapture extends org.eclipse.xwt.vex.swt.ImageCapture {
-	static protected Class<?> OleFrameClass;
-	static protected Method sendMessage;
-	static protected Method getParent;
-
-	static {
-		try {
-			OleFrameClass = GC.class.getClassLoader().loadClass("org.eclipse.swt.ole.win32.OleFrame");
-			Class<?> OSClass = GC.class.getClassLoader().loadClass("org.eclipse.swt.internal.win32.OS");
-			sendMessage = OSClass.getMethod("SendMessage", int.class, int.class, int.class, int.class);
-			getParent = OSClass.getMethod("GetParent", int.class);
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	protected Image getImage(Control control, int maxWidth, int maxHeight, boolean includeChildren) {
-		Image myImage = getImage(control, maxWidth, maxHeight);
-		// We need to be able to handle right-to-left coordinates too. In that
-		// case the bounds rectangle will be reversed from what we
-		// think. We think the origin is upper-left, but the origin is really
-		// upper-right. To get out of this thinking we will
-		// instead convert all bounds to display bounds so that they will all be
-		// left-to-right.
-		if (myImage != null) {
-			// Get the images of all of the children
-			if (includeChildren && control instanceof Composite) {
-				Display display = control.getDisplay();
-				Rectangle parentBounds = control.getParent() == null ? control.getBounds() : display.map(control.getParent(), null, control.getBounds());
-				// Need to clip the bounds to the size of the image so we get
-				// just what we need.
-				Rectangle imgBounds = myImage.getBounds();
-				parentBounds.width = imgBounds.width;
-				parentBounds.height = imgBounds.height;
-				int parentRight = parentBounds.width + parentBounds.x;
-				int parentBottom = parentBounds.height + parentBounds.y;
-				Control[] children = ((Composite) control).getChildren();
-				GC myImageGC = new GC(myImage);
-				try {
-					int i = children.length;
-					while (--i >= 0) {
-						Control child = children[i];
-						// If the child is not visible then don't try and get
-						// its image
-						// An example of where this would cause a problem is
-						// TabFolder where all the controls
-						// for each page are children of the TabFolder, but only
-						// the visible one is being shown on the active page
-						if (!child.isVisible())
-							continue;
-						Rectangle childBounds = display.map(control, null, child.getBounds());
-						if (!parentBounds.intersects(childBounds))
-							continue; // Child is completely outside parent.
-						Image childImage = getImage(child, parentRight - childBounds.x, parentBottom - childBounds.y, true);
-						if (childImage != null) {
-							try {
-								// Paint the child image on top of our one
-								// Since the child bounds and parent bounds are
-								// both in display coors, the difference between
-								// the two is the offset of the child from the
-								// parent.
-								myImageGC.drawImage(childImage, childBounds.x - parentBounds.x, childBounds.y - parentBounds.y);
-							} finally {
-								childImage.dispose();
-							}
-						}
-					}
-				} finally {
-					myImageGC.dispose();
-				}
-			}
-		}
-		return myImage;
-	}
-
-	/**
-	 * Return the image of the argument. This includes the client and non-client area, but does not include any child controls. To get child control use {@link Win32ImageCapture#getImage(Control, int, int, boolean)}.
-	 * 
-	 * @param aControl
-	 * @param maxWidth
-	 * @param maxHeight
-	 * @return image or <code>null</code> if not valid for some reason. (Like not yet sized).
-	 * 
-	 * @since 1.1.0
-	 */
-	protected Image getImage(Control aControl, int maxWidth, int maxHeight) {
-
-		Rectangle rect = aControl.getBounds();
-		if (rect.width <= 0 || rect.height <= 0)
-			return null;
-
-		Image image = new Image(aControl.getDisplay(), Math.min(rect.width, maxWidth), Math.min(rect.height, maxHeight));
-		int WM_PRINT = 0x0317;
-		// int WM_PRINTCLIENT = 0x0318;
-		// int PRF_CHECKVISIBLE = 0x00000001;
-		int PRF_NONCLIENT = 0x00000002;
-		int PRF_CLIENT = 0x00000004;
-		int PRF_ERASEBKGND = 0x00000008;
-		int PRF_CHILDREN = 0x00000010;
-		// int PRF_OWNED = 0x00000020;
-		int print_bits = PRF_NONCLIENT | PRF_CLIENT | PRF_ERASEBKGND;
-		// This method does not print immediate children because the z-order
-		// doesn't work correctly and needs to be
-		// dealt with separately, however Table's TableColumn widgets are
-		// children so must be handled differently
-		boolean specialClass = aControl instanceof Table || aControl instanceof Browser || OleFrameClass.isInstance(aControl) || aControl instanceof CCombo;
-		try {
-			specialClass |= aControl instanceof Spinner;
-		} catch (NoClassDefFoundError e) {
-		} // might not be on 3.1 of SWT
-		if (specialClass) {
-			print_bits |= PRF_CHILDREN;
-		}
-		GC gc = new GC(image);
-
-		// Need to handle cases where the GC font isn't automatically set by the
-		// control's image (e.g. CLabel)
-		// see bug 98830 (https://bugs.eclipse.org/bugs/show_bug.cgi?id=98830)
-		Font f = aControl.getFont();
-		if (f != null)
-			gc.setFont(f);
-
-		try {
-			int hwnd = getIntHandle(aControl);			
-			if (aControl instanceof Tree) {
-				int hwndParent = (Integer) getParent.invoke(null, hwnd);
-				if (hwndParent != getIntHandle(aControl.getParent())) {
-					hwnd = hwndParent;
-					print_bits |= PRF_CHILDREN;
-				}
-			}
-
-			sendMessage.invoke(null, hwnd, WM_PRINT, gc.handle, print_bits);
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		}
-
-		gc.dispose();
-		return image;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/templates/VEXDocumentTemplateContext.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/templates/VEXDocumentTemplateContext.java
deleted file mode 100755
index a683bfd..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/templates/VEXDocumentTemplateContext.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.templates;
-
-import java.util.HashMap;
-import java.util.HashSet;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.templates.DocumentTemplateContext;
-import org.eclipse.jface.text.templates.TemplateContextType;
-
-public abstract class VEXDocumentTemplateContext extends DocumentTemplateContext {
-	static final String XMLNS = "xmlns";
-
-	protected String defaultNamespace = null;
-
-	protected HashMap<String, String> ns2Prefix = new HashMap<String, String>();
-	protected HashSet<String> assemblies = new HashSet<String>();
-
-	public VEXDocumentTemplateContext(TemplateContextType type, IDocument document, int offset, int length) {
-		super(type, document, offset, length);
-	}
-
-	public VEXDocumentTemplateContext(TemplateContextType type, IDocument document, Position position) {
-		super(type, document, position);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/templates/VEXTemplateContextTypeXML.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/templates/VEXTemplateContextTypeXML.java
deleted file mode 100755
index b7e7b71..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/templates/VEXTemplateContextTypeXML.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.templates;
-
-import org.eclipse.wst.xml.ui.internal.templates.TemplateContextTypeXML;
-
-public class VEXTemplateContextTypeXML extends TemplateContextTypeXML {
-
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/templates/VEXTemplateVariable.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/templates/VEXTemplateVariable.java
deleted file mode 100755
index e251d23..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/templates/VEXTemplateVariable.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.templates;
-
-import org.eclipse.jface.text.templates.TemplateVariable;
-import org.eclipse.jface.text.templates.TemplateVariableType;
-
-public class VEXTemplateVariable extends TemplateVariable {
-
-	public VEXTemplateVariable(String type, String defaultValue, int[] offsets) {
-		super(type, defaultValue, offsets);
-	}
-
-	public VEXTemplateVariable(String type, String[] values, int[] offsets) {
-		super(type, values, offsets);
-	}
-
-	public VEXTemplateVariable(String type, String name, String defaultValue, int[] offsets) {
-		super(type, name, defaultValue, offsets);
-	}
-
-	public VEXTemplateVariable(TemplateVariableType type, String name, String defaultValue, int[] offsets) {
-		super(type, name, defaultValue, offsets);
-	}
-
-	public VEXTemplateVariable(String type, String name, String[] values, int[] offsets) {
-		super(type, name, values, offsets);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/text/VEXDocumentRegionEdgeMatcher.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/text/VEXDocumentRegionEdgeMatcher.java
deleted file mode 100755
index 8d43c06..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/text/VEXDocumentRegionEdgeMatcher.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.text;
-
-import org.eclipse.wst.xml.ui.internal.text.XMLDocumentRegionEdgeMatcher;
-
-public class VEXDocumentRegionEdgeMatcher extends XMLDocumentRegionEdgeMatcher {
-
-	public VEXDocumentRegionEdgeMatcher() {
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/ContextType.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/ContextType.java
deleted file mode 100755
index 1c129ac..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/ContextType.java
+++ /dev/null
@@ -1,295 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.toolpalette;
-
-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>Context Type</b></em>', and utility methods for working with them. <!-- end-user-doc -->
- * 
- * @see org.eclipse.xwt.vex.toolpalette.ToolPalettePackage#getContextType()
- * @model
- * @generated
- */
-public enum ContextType implements Enumerator {
-	/**
-	 * The '<em><b>Xml tag</b></em>' literal object. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #XML_TAG_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	XML_TAG(5, "xml_tag", "xml_tag"),
-
-	/**
-	 * The '<em><b>Xml attribute value</b></em>' literal object. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #XML_ATTRIBUTE_VALUE_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	XML_ATTRIBUTE_VALUE(1, "xml_attribute_value", "xml_attribute_value"),
-
-	/**
-	 * The '<em><b>Xml attribute</b></em>' literal object. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #XML_ATTRIBUTE_VALUE_
-	 * @generated
-	 * @ordered
-	 */
-	XML_ATTRIBUTE(2, "xml_attribute", "xml_attribute"), /**
-	 * The '<em><b>Xml all</b></em>' literal object. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #XML_ALL_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	XML_ALL(3, "xml_all", "xml_all"), /**
-	 * The '<em><b>Xml new</b></em>' literal object. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #XML_NEW_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	XML_NEW(4, "xml_new", "xml_new"), /**
-	 * The '<em><b>None</b></em>' literal object. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #NONE_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	NONE(0, "none", "none");
-
-	/**
-	 * The '<em><b>Xml tag</b></em>' literal value. <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Xml tag</b></em>' literal object isn't clear, there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * 
-	 * @see #XML_TAG
-	 * @model name="xml_tag"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TAG_VALUE = 5;
-
-	/**
-	 * The '<em><b>Xml attribute value</b></em>' literal value. <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Xml attribute value</b></em>' literal object isn't clear, there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * 
-	 * @see #XML_ATTRIBUTE_VALUE
-	 * @model name="xml_attribute_value"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ATTRIBUTE_VALUE_VALUE = 1;
-
-	/**
-	 * The '<em><b>Xml attribute</b></em>' literal value. <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Xml attribute</b></em>' literal object isn't clear, there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * 
-	 * @see #XML_ATTRIBUTE
-	 * @model name="xml_attribute"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ATTRIBUTE_VALUE_ = 2;
-
-	/**
-	 * The '<em><b>Xml all</b></em>' literal value. <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Xml all</b></em>' literal object isn't clear, there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * 
-	 * @see #XML_ALL
-	 * @model name="xml_all"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ALL_VALUE = 3;
-
-	/**
-	 * The '<em><b>Xml new</b></em>' literal value. <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Xml new</b></em>' literal object isn't clear, there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * 
-	 * @see #XML_NEW
-	 * @model name="xml_new"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_NEW_VALUE = 4;
-
-	/**
-	 * The '<em><b>None</b></em>' literal value. <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>None</b></em>' literal object isn't clear, there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * 
-	 * @see #NONE
-	 * @model name="none"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int NONE_VALUE = 0;
-
-	/**
-	 * An array of all the '<em><b>Context Type</b></em>' enumerators. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private static final ContextType[] VALUES_ARRAY = new ContextType[] { XML_TAG, XML_ATTRIBUTE_VALUE, XML_ATTRIBUTE, XML_ALL, XML_NEW, NONE, };
-
-	/**
-	 * A public read-only list of all the '<em><b>Context Type</b></em>' enumerators. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public static final List<ContextType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
-
-	/**
-	 * Returns the '<em><b>Context Type</b></em>' literal with the specified literal value. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public static ContextType get(String literal) {
-		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-			ContextType result = VALUES_ARRAY[i];
-			if (result.toString().equals(literal)) {
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Context Type</b></em>' literal with the specified name. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public static ContextType getByName(String name) {
-		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-			ContextType result = VALUES_ARRAY[i];
-			if (result.getName().equals(name)) {
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Context Type</b></em>' literal with the specified integer value. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public static ContextType get(int value) {
-		switch (value) {
-		case XML_TAG_VALUE:
-			return XML_TAG;
-		case XML_ATTRIBUTE_VALUE_VALUE:
-			return XML_ATTRIBUTE_VALUE;
-		case XML_ATTRIBUTE_VALUE_:
-			return XML_ATTRIBUTE;
-		case XML_ALL_VALUE:
-			return XML_ALL;
-		case XML_NEW_VALUE:
-			return XML_NEW;
-		case NONE_VALUE:
-			return NONE;
-		}
-		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 ContextType(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;
-	}
-
-} // ContextType
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/Entry.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/Entry.java
deleted file mode 100755
index 0cbba28..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/Entry.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.toolpalette;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc --> A representation of the model object '<em><b>Entry</b></em>'. <!-- end-user-doc -->
- * 
- * <p>
- * The following features are supported:
- * <ul>
- * <li>{@link org.eclipse.xwt.vex.toolpalette.Entry#getToolTip <em>Tool Tip</em>}</li>
- * <li>{@link org.eclipse.xwt.vex.toolpalette.Entry#getLargeIcon <em>Large Icon</em>}</li>
- * <li>{@link org.eclipse.xwt.vex.toolpalette.Entry#getContent <em>Content</em>}</li>
- * <li>{@link org.eclipse.xwt.vex.toolpalette.Entry#getName <em>Name</em>}</li>
- * <li>{@link org.eclipse.xwt.vex.toolpalette.Entry#getEntries <em>Entries</em>}</li>
- * <li>{@link org.eclipse.xwt.vex.toolpalette.Entry#getId <em>Id</em>}</li>
- * <li>{@link org.eclipse.xwt.vex.toolpalette.Entry#getIcon <em>Icon</em>}</li>
- * <li>{@link org.eclipse.xwt.vex.toolpalette.Entry#getContext <em>Context</em>}</li>
- * <li>{@link org.eclipse.xwt.vex.toolpalette.Entry#getScope <em>Scope</em>}</li>
- * </ul>
- * </p>
- * 
- * @see org.eclipse.xwt.vex.toolpalette.ToolPalettePackage#getEntry()
- * @model
- * @generated
- */
-public interface Entry extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Tool Tip</b></em>' attribute. <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Tool Tip</em>' attribute isn't clear, there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * 
-	 * @return the value of the '<em>Tool Tip</em>' attribute.
-	 * @see #setToolTip(String)
-	 * @see org.eclipse.xwt.vex.toolpalette.ToolPalettePackage#getEntry_ToolTip()
-	 * @model
-	 * @generated
-	 */
-	String getToolTip();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.vex.toolpalette.Entry#getToolTip <em>Tool Tip</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @param value
-	 *            the new value of the '<em>Tool Tip</em>' attribute.
-	 * @see #getToolTip()
-	 * @generated
-	 */
-	void setToolTip(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Large Icon</b></em>' attribute. <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Large Icon</em>' attribute isn't clear, there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * 
-	 * @return the value of the '<em>Large Icon</em>' attribute.
-	 * @see #setLargeIcon(String)
-	 * @see org.eclipse.xwt.vex.toolpalette.ToolPalettePackage#getEntry_LargeIcon()
-	 * @model
-	 * @generated
-	 */
-	String getLargeIcon();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.vex.toolpalette.Entry#getLargeIcon <em>Large Icon</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @param value
-	 *            the new value of the '<em>Large Icon</em>' attribute.
-	 * @see #getLargeIcon()
-	 * @generated
-	 */
-	void setLargeIcon(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Content</b></em>' attribute. <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Content</em>' attribute isn't clear, there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * 
-	 * @return the value of the '<em>Content</em>' attribute.
-	 * @see #setContent(String)
-	 * @see org.eclipse.xwt.vex.toolpalette.ToolPalettePackage#getEntry_Content()
-	 * @model
-	 * @generated
-	 */
-	String getContent();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.vex.toolpalette.Entry#getContent <em>Content</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @param value
-	 *            the new value of the '<em>Content</em>' attribute.
-	 * @see #getContent()
-	 * @generated
-	 */
-	void setContent(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute. <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear, there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * 
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see #setName(String)
-	 * @see org.eclipse.xwt.vex.toolpalette.ToolPalettePackage#getEntry_Name()
-	 * @model
-	 * @generated
-	 */
-	String getName();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.vex.toolpalette.Entry#getName <em>Name</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @param value
-	 *            the new value of the '<em>Name</em>' attribute.
-	 * @see #getName()
-	 * @generated
-	 */
-	void setName(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Entries</b></em>' containment reference list. The list nameMap are of type {@link org.eclipse.xwt.vex.toolpalette.Entry}. <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Entries</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>Entries</em>' containment reference list.
-	 * @see org.eclipse.xwt.vex.toolpalette.ToolPalettePackage#getEntry_Entries()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<Entry> getEntries();
-
-	/**
-	 * Returns the value of the '<em><b>Id</b></em>' attribute. The default value is <code>"\"\""</code>. <!-- 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.xwt.vex.toolpalette.ToolPalettePackage#getEntry_Id()
-	 * @model default="\"\"" id="true"
-	 * @generated
-	 */
-	String getId();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.vex.toolpalette.Entry#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>Icon</b></em>' attribute. <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Icon</em>' attribute isn't clear, there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * 
-	 * @return the value of the '<em>Icon</em>' attribute.
-	 * @see #setIcon(String)
-	 * @see org.eclipse.xwt.vex.toolpalette.ToolPalettePackage#getEntry_Icon()
-	 * @model
-	 * @generated
-	 */
-	String getIcon();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.vex.toolpalette.Entry#getIcon <em>Icon</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @param value
-	 *            the new value of the '<em>Icon</em>' attribute.
-	 * @see #getIcon()
-	 * @generated
-	 */
-	void setIcon(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Context</b></em>' attribute. The default value is <code>""</code>. The literals are from the enumeration {@link org.eclipse.xwt.vex.toolpalette.ContextType}. <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Context</em>' attribute isn't clear, there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * 
-	 * @return the value of the '<em>Context</em>' attribute.
-	 * @see org.eclipse.xwt.vex.toolpalette.ContextType
-	 * @see #setContext(ContextType)
-	 * @see org.eclipse.xwt.vex.toolpalette.ToolPalettePackage#getEntry_Context()
-	 * @model default=""
-	 * @generated
-	 */
-	ContextType getContext();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.vex.toolpalette.Entry#getContext <em>Context</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @param value
-	 *            the new value of the '<em>Context</em>' attribute.
-	 * @see org.eclipse.xwt.vex.toolpalette.ContextType
-	 * @see #getContext()
-	 * @generated
-	 */
-	void setContext(ContextType value);
-
-	/**
-	 * Returns the value of the '<em><b>Scope</b></em>' attribute. <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Scope</em>' attribute isn't clear, there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * 
-	 * @return the value of the '<em>Scope</em>' attribute.
-	 * @see #setScope(String)
-	 * @see org.eclipse.xwt.vex.toolpalette.ToolPalettePackage#getEntry_Scope()
-	 * @model
-	 * @generated
-	 */
-	String getScope();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.vex.toolpalette.Entry#getScope <em>Scope</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @param value
-	 *            the new value of the '<em>Scope</em>' attribute.
-	 * @see #getScope()
-	 * @generated
-	 */
-	void setScope(String value);
-
-} // Entry
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/ToolPalette.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/ToolPalette.java
deleted file mode 100755
index aab797a..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/ToolPalette.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.toolpalette;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc --> A representation of the model object '<em><b>Tool Palette</b></em>'. <!-- end-user-doc -->
- * 
- * <p>
- * The following features are supported:
- * <ul>
- * <li>{@link org.eclipse.xwt.vex.toolpalette.ToolPalette#getName <em>Name</em>}</li>
- * <li>{@link org.eclipse.xwt.vex.toolpalette.ToolPalette#getEntries <em>Entries</em>}</li>
- * </ul>
- * </p>
- * 
- * @see org.eclipse.xwt.vex.toolpalette.ToolPalettePackage#getToolPalette()
- * @model
- * @generated
- */
-public interface ToolPalette extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute. <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear, there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * 
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see #setName(String)
-	 * @see org.eclipse.xwt.vex.toolpalette.ToolPalettePackage#getToolPalette_Name()
-	 * @model
-	 * @generated
-	 */
-	String getName();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.vex.toolpalette.ToolPalette#getName <em>Name</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @param value
-	 *            the new value of the '<em>Name</em>' attribute.
-	 * @see #getName()
-	 * @generated
-	 */
-	void setName(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Entries</b></em>' containment reference list. The list nameMap are of type {@link org.eclipse.xwt.vex.toolpalette.Entry}. <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Entries</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>Entries</em>' containment reference list.
-	 * @see org.eclipse.xwt.vex.toolpalette.ToolPalettePackage#getToolPalette_Entries()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<Entry> getEntries();
-
-} // ToolPalette
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/ToolPaletteFactory.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/ToolPaletteFactory.java
deleted file mode 100755
index 90da9ed..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/ToolPaletteFactory.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.toolpalette;
-
-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.xwt.vex.toolpalette.ToolPalettePackage
- * @generated
- */
-public interface ToolPaletteFactory extends EFactory {
-	/**
-	 * The singleton instance of the factory. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	ToolPaletteFactory eINSTANCE = org.eclipse.xwt.vex.toolpalette.impl.ToolPaletteFactoryImpl.init();
-
-	/**
-	 * Returns a new object of class '<em>Tool Palette</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @return a new object of class '<em>Tool Palette</em>'.
-	 * @generated
-	 */
-	ToolPalette createToolPalette();
-
-	/**
-	 * Returns a new object of class '<em>Entry</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @return a new object of class '<em>Entry</em>'.
-	 * @generated
-	 */
-	Entry createEntry();
-
-	/**
-	 * Returns the package supported by this factory. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @return the package supported by this factory.
-	 * @generated
-	 */
-	ToolPalettePackage getToolPalettePackage();
-
-} // ToolPaletteFactory
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/ToolPalettePackage.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/ToolPalettePackage.java
deleted file mode 100755
index 3d3261a..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/ToolPalettePackage.java
+++ /dev/null
@@ -1,457 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.toolpalette;
-
-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.xwt.vex.toolpalette.ToolPaletteFactory
- * @model kind="package"
- * @generated
- */
-public interface ToolPalettePackage extends EPackage {
-	/**
-	 * The package name. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	String eNAME = "toolpalette";
-
-	/**
-	 * The package namespace URI. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	String eNS_URI = "http://www.eclipse.org/ve/xml/toolpalette";
-
-	/**
-	 * The package namespace name. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	String eNS_PREFIX = "com.soyatec.eface.tools.ui.editors.toolpalette";
-
-	/**
-	 * The singleton instance of the package. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	ToolPalettePackage eINSTANCE = org.eclipse.xwt.vex.toolpalette.impl.ToolPalettePackageImpl.init();
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.xwt.vex.toolpalette.impl.EntryImpl <em>Entry</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see org.eclipse.xwt.vex.toolpalette.impl.EntryImpl
-	 * @see org.eclipse.xwt.vex.toolpalette.impl.ToolPalettePackageImpl#getEntry()
-	 * @generated
-	 */
-	int ENTRY = 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.xwt.vex.toolpalette.impl.ToolPaletteImpl <em>Tool Palette</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see org.eclipse.xwt.vex.toolpalette.impl.ToolPaletteImpl
-	 * @see org.eclipse.xwt.vex.toolpalette.impl.ToolPalettePackageImpl#getToolPalette()
-	 * @generated
-	 */
-	int TOOL_PALETTE = 0;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 * @ordered
-	 */
-	int TOOL_PALETTE__NAME = 0;
-
-	/**
-	 * The feature id for the '<em><b>Entries</b></em>' containment reference list. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 * @ordered
-	 */
-	int TOOL_PALETTE__ENTRIES = 1;
-
-	/**
-	 * The number of structural features of the '<em>Tool Palette</em>' class. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 * @ordered
-	 */
-	int TOOL_PALETTE_FEATURE_COUNT = 2;
-
-	/**
-	 * The feature id for the '<em><b>Tool Tip</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 * @ordered
-	 */
-	int ENTRY__TOOL_TIP = 0;
-
-	/**
-	 * The feature id for the '<em><b>Large Icon</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 * @ordered
-	 */
-	int ENTRY__LARGE_ICON = 1;
-
-	/**
-	 * The feature id for the '<em><b>Content</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 * @ordered
-	 */
-	int ENTRY__CONTENT = 2;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 * @ordered
-	 */
-	int ENTRY__NAME = 3;
-
-	/**
-	 * The feature id for the '<em><b>Entries</b></em>' containment reference list. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 * @ordered
-	 */
-	int ENTRY__ENTRIES = 4;
-
-	/**
-	 * The feature id for the '<em><b>Id</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 * @ordered
-	 */
-	int ENTRY__ID = 5;
-
-	/**
-	 * The feature id for the '<em><b>Icon</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 * @ordered
-	 */
-	int ENTRY__ICON = 6;
-
-	/**
-	 * The feature id for the '<em><b>Context</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 * @ordered
-	 */
-	int ENTRY__CONTEXT = 7;
-
-	/**
-	 * The feature id for the '<em><b>Scope</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 * @ordered
-	 */
-	int ENTRY__SCOPE = 8;
-
-	/**
-	 * The number of structural features of the '<em>Entry</em>' class. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 * @ordered
-	 */
-	int ENTRY_FEATURE_COUNT = 9;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.xwt.vex.toolpalette.ContextType <em>Context Type</em>}' enum. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see org.eclipse.xwt.vex.toolpalette.ContextType
-	 * @see org.eclipse.xwt.vex.toolpalette.impl.ToolPalettePackageImpl#getContextType()
-	 * @generated
-	 */
-	int CONTEXT_TYPE = 2;
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.xwt.vex.toolpalette.ToolPalette <em>Tool Palette</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @return the meta object for class '<em>Tool Palette</em>'.
-	 * @see org.eclipse.xwt.vex.toolpalette.ToolPalette
-	 * @generated
-	 */
-	EClass getToolPalette();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.vex.toolpalette.ToolPalette#getName <em>Name</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see org.eclipse.xwt.vex.toolpalette.ToolPalette#getName()
-	 * @see #getToolPalette()
-	 * @generated
-	 */
-	EAttribute getToolPalette_Name();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.xwt.vex.toolpalette.ToolPalette#getEntries <em>Entries</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @return the meta object for the containment reference list '<em>Entries</em>'.
-	 * @see org.eclipse.xwt.vex.toolpalette.ToolPalette#getEntries()
-	 * @see #getToolPalette()
-	 * @generated
-	 */
-	EReference getToolPalette_Entries();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.xwt.vex.toolpalette.Entry <em>Entry</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @return the meta object for class '<em>Entry</em>'.
-	 * @see org.eclipse.xwt.vex.toolpalette.Entry
-	 * @generated
-	 */
-	EClass getEntry();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.vex.toolpalette.Entry#getToolTip <em>Tool Tip</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @return the meta object for the attribute '<em>Tool Tip</em>'.
-	 * @see org.eclipse.xwt.vex.toolpalette.Entry#getToolTip()
-	 * @see #getEntry()
-	 * @generated
-	 */
-	EAttribute getEntry_ToolTip();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.vex.toolpalette.Entry#getLargeIcon <em>Large Icon</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @return the meta object for the attribute '<em>Large Icon</em>'.
-	 * @see org.eclipse.xwt.vex.toolpalette.Entry#getLargeIcon()
-	 * @see #getEntry()
-	 * @generated
-	 */
-	EAttribute getEntry_LargeIcon();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.vex.toolpalette.Entry#getContent <em>Content</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @return the meta object for the attribute '<em>Content</em>'.
-	 * @see org.eclipse.xwt.vex.toolpalette.Entry#getContent()
-	 * @see #getEntry()
-	 * @generated
-	 */
-	EAttribute getEntry_Content();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.vex.toolpalette.Entry#getName <em>Name</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see org.eclipse.xwt.vex.toolpalette.Entry#getName()
-	 * @see #getEntry()
-	 * @generated
-	 */
-	EAttribute getEntry_Name();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.xwt.vex.toolpalette.Entry#getEntries <em>Entries</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @return the meta object for the containment reference list '<em>Entries</em>'.
-	 * @see org.eclipse.xwt.vex.toolpalette.Entry#getEntries()
-	 * @see #getEntry()
-	 * @generated
-	 */
-	EReference getEntry_Entries();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.vex.toolpalette.Entry#getId <em>Id</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @return the meta object for the attribute '<em>Id</em>'.
-	 * @see org.eclipse.xwt.vex.toolpalette.Entry#getId()
-	 * @see #getEntry()
-	 * @generated
-	 */
-	EAttribute getEntry_Id();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.vex.toolpalette.Entry#getIcon <em>Icon</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @return the meta object for the attribute '<em>Icon</em>'.
-	 * @see org.eclipse.xwt.vex.toolpalette.Entry#getIcon()
-	 * @see #getEntry()
-	 * @generated
-	 */
-	EAttribute getEntry_Icon();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.vex.toolpalette.Entry#getContext <em>Context</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @return the meta object for the attribute '<em>Context</em>'.
-	 * @see org.eclipse.xwt.vex.toolpalette.Entry#getContext()
-	 * @see #getEntry()
-	 * @generated
-	 */
-	EAttribute getEntry_Context();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.vex.toolpalette.Entry#getScope <em>Scope</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @return the meta object for the attribute '<em>Scope</em>'.
-	 * @see org.eclipse.xwt.vex.toolpalette.Entry#getScope()
-	 * @see #getEntry()
-	 * @generated
-	 */
-	EAttribute getEntry_Scope();
-
-	/**
-	 * Returns the meta object for enum '{@link org.eclipse.xwt.vex.toolpalette.ContextType <em>Context Type</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @return the meta object for enum '<em>Context Type</em>'.
-	 * @see org.eclipse.xwt.vex.toolpalette.ContextType
-	 * @generated
-	 */
-	EEnum getContextType();
-
-	/**
-	 * 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
-	 */
-	ToolPaletteFactory getToolPaletteFactory();
-
-	/**
-	 * <!-- 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.xwt.vex.toolpalette.impl.ToolPaletteImpl <em>Tool Palette</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * 
-		 * @see org.eclipse.xwt.vex.toolpalette.impl.ToolPaletteImpl
-		 * @see org.eclipse.xwt.vex.toolpalette.impl.ToolPalettePackageImpl#getToolPalette()
-		 * @generated
-		 */
-		EClass TOOL_PALETTE = eINSTANCE.getToolPalette();
-
-		/**
-		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature. <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * 
-		 * @generated
-		 */
-		EAttribute TOOL_PALETTE__NAME = eINSTANCE.getToolPalette_Name();
-
-		/**
-		 * The meta object literal for the '<em><b>Entries</b></em>' containment reference list feature. <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * 
-		 * @generated
-		 */
-		EReference TOOL_PALETTE__ENTRIES = eINSTANCE.getToolPalette_Entries();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.xwt.vex.toolpalette.impl.EntryImpl <em>Entry</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * 
-		 * @see org.eclipse.xwt.vex.toolpalette.impl.EntryImpl
-		 * @see org.eclipse.xwt.vex.toolpalette.impl.ToolPalettePackageImpl#getEntry()
-		 * @generated
-		 */
-		EClass ENTRY = eINSTANCE.getEntry();
-
-		/**
-		 * The meta object literal for the '<em><b>Tool Tip</b></em>' attribute feature. <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * 
-		 * @generated
-		 */
-		EAttribute ENTRY__TOOL_TIP = eINSTANCE.getEntry_ToolTip();
-
-		/**
-		 * The meta object literal for the '<em><b>Large Icon</b></em>' attribute feature. <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * 
-		 * @generated
-		 */
-		EAttribute ENTRY__LARGE_ICON = eINSTANCE.getEntry_LargeIcon();
-
-		/**
-		 * The meta object literal for the '<em><b>Content</b></em>' attribute feature. <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * 
-		 * @generated
-		 */
-		EAttribute ENTRY__CONTENT = eINSTANCE.getEntry_Content();
-
-		/**
-		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature. <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * 
-		 * @generated
-		 */
-		EAttribute ENTRY__NAME = eINSTANCE.getEntry_Name();
-
-		/**
-		 * The meta object literal for the '<em><b>Entries</b></em>' containment reference list feature. <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * 
-		 * @generated
-		 */
-		EReference ENTRY__ENTRIES = eINSTANCE.getEntry_Entries();
-
-		/**
-		 * The meta object literal for the '<em><b>Id</b></em>' attribute feature. <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * 
-		 * @generated
-		 */
-		EAttribute ENTRY__ID = eINSTANCE.getEntry_Id();
-
-		/**
-		 * The meta object literal for the '<em><b>Icon</b></em>' attribute feature. <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * 
-		 * @generated
-		 */
-		EAttribute ENTRY__ICON = eINSTANCE.getEntry_Icon();
-
-		/**
-		 * The meta object literal for the '<em><b>Context</b></em>' attribute feature. <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * 
-		 * @generated
-		 */
-		EAttribute ENTRY__CONTEXT = eINSTANCE.getEntry_Context();
-
-		/**
-		 * The meta object literal for the '<em><b>Scope</b></em>' attribute feature. <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * 
-		 * @generated
-		 */
-		EAttribute ENTRY__SCOPE = eINSTANCE.getEntry_Scope();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.xwt.vex.toolpalette.ContextType <em>Context Type</em>}' enum. <!-- begin-user-doc --> <!-- end-user-doc -->
-		 * 
-		 * @see org.eclipse.xwt.vex.toolpalette.ContextType
-		 * @see org.eclipse.xwt.vex.toolpalette.impl.ToolPalettePackageImpl#getContextType()
-		 * @generated
-		 */
-		EEnum CONTEXT_TYPE = eINSTANCE.getContextType();
-
-	}
-
-} // ToolPalettePackage
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/impl/EntryImpl.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/impl/EntryImpl.java
deleted file mode 100755
index 6d91e43..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/impl/EntryImpl.java
+++ /dev/null
@@ -1,588 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.toolpalette.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.EObjectImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.xwt.vex.toolpalette.ContextType;
-import org.eclipse.xwt.vex.toolpalette.Entry;
-import org.eclipse.xwt.vex.toolpalette.ToolPalettePackage;
-
-/**
- * <!-- begin-user-doc --> An implementation of the model object '<em><b>Entry</b></em>'. <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- * <li>{@link org.eclipse.xwt.vex.toolpalette.impl.EntryImpl#getToolTip <em>Tool Tip</em>}</li>
- * <li>{@link org.eclipse.xwt.vex.toolpalette.impl.EntryImpl#getLargeIcon <em>Large Icon</em>}</li>
- * <li>{@link org.eclipse.xwt.vex.toolpalette.impl.EntryImpl#getContent <em>Content</em>}</li>
- * <li>{@link org.eclipse.xwt.vex.toolpalette.impl.EntryImpl#getName <em>Name</em>}</li>
- * <li>{@link org.eclipse.xwt.vex.toolpalette.impl.EntryImpl#getEntries <em>Entries</em>}</li>
- * <li>{@link org.eclipse.xwt.vex.toolpalette.impl.EntryImpl#getId <em>Id</em>}</li>
- * <li>{@link org.eclipse.xwt.vex.toolpalette.impl.EntryImpl#getIcon <em>Icon</em>}</li>
- * <li>{@link org.eclipse.xwt.vex.toolpalette.impl.EntryImpl#getContext <em>Context</em>}</li>
- * <li>{@link org.eclipse.xwt.vex.toolpalette.impl.EntryImpl#getScope <em>Scope</em>}</li>
- * </ul>
- * </p>
- * 
- * @generated
- */
-public class EntryImpl extends EObjectImpl implements Entry {
-	/**
-	 * The default value of the '{@link #getToolTip() <em>Tool Tip</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #getToolTip()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String TOOL_TIP_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getToolTip() <em>Tool Tip</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #getToolTip()
-	 * @generated
-	 * @ordered
-	 */
-	protected String toolTip = TOOL_TIP_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getLargeIcon() <em>Large Icon</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #getLargeIcon()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String LARGE_ICON_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getLargeIcon() <em>Large Icon</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #getLargeIcon()
-	 * @generated
-	 * @ordered
-	 */
-	protected String largeIcon = LARGE_ICON_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getContent() <em>Content</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #getContent()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String CONTENT_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getContent() <em>Content</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #getContent()
-	 * @generated
-	 * @ordered
-	 */
-	protected String content = CONTENT_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getEntries() <em>Entries</em>}' containment reference list. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #getEntries()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<Entry> entries;
-
-	/**
-	 * 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 = "\"\"";
-
-	/**
-	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #getId()
-	 * @generated
-	 * @ordered
-	 */
-	protected String id = ID_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getIcon() <em>Icon</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #getIcon()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String ICON_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getIcon() <em>Icon</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #getIcon()
-	 * @generated
-	 * @ordered
-	 */
-	protected String icon = ICON_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getContext() <em>Context</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #getContext()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final ContextType CONTEXT_EDEFAULT = ContextType.XML_TAG;
-
-	/**
-	 * The cached value of the '{@link #getContext() <em>Context</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #getContext()
-	 * @generated
-	 * @ordered
-	 */
-	protected ContextType context = CONTEXT_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getScope() <em>Scope</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #getScope()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String SCOPE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getScope() <em>Scope</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #getScope()
-	 * @generated
-	 * @ordered
-	 */
-	protected String scope = SCOPE_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	protected EntryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return ToolPalettePackage.Literals.ENTRY;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public String getToolTip() {
-		return toolTip;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public void setToolTip(String newToolTip) {
-		String oldToolTip = toolTip;
-		toolTip = newToolTip;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, ToolPalettePackage.ENTRY__TOOL_TIP, oldToolTip, toolTip));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated NOT
-	 */
-	public String getLargeIcon() {
-		if (largeIcon == null || largeIcon.trim().length() == 0) {
-			return getIcon();
-		}
-		return largeIcon;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public void setLargeIcon(String newLargeIcon) {
-		String oldLargeIcon = largeIcon;
-		largeIcon = newLargeIcon;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, ToolPalettePackage.ENTRY__LARGE_ICON, oldLargeIcon, largeIcon));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public String getContent() {
-		return content;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public void setContent(String newContent) {
-		String oldContent = content;
-		content = newContent;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, ToolPalettePackage.ENTRY__CONTENT, oldContent, content));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, ToolPalettePackage.ENTRY__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public EList<Entry> getEntries() {
-		if (entries == null) {
-			entries = new EObjectContainmentEList<Entry>(Entry.class, this, ToolPalettePackage.ENTRY__ENTRIES);
-		}
-		return entries;
-	}
-
-	/**
-	 * <!-- 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, ToolPalettePackage.ENTRY__ID, oldId, id));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public String getIcon() {
-		return icon;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public void setIcon(String newIcon) {
-		String oldIcon = icon;
-		icon = newIcon;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, ToolPalettePackage.ENTRY__ICON, oldIcon, icon));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public ContextType getContext() {
-		return context;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public void setContext(ContextType newContext) {
-		ContextType oldContext = context;
-		context = newContext == null ? CONTEXT_EDEFAULT : newContext;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, ToolPalettePackage.ENTRY__CONTEXT, oldContext, context));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public String getScope() {
-		return scope;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public void setScope(String newScope) {
-		String oldScope = scope;
-		scope = newScope;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, ToolPalettePackage.ENTRY__SCOPE, oldScope, scope));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-		case ToolPalettePackage.ENTRY__ENTRIES:
-			return ((InternalEList<?>) getEntries()).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 ToolPalettePackage.ENTRY__TOOL_TIP:
-			return getToolTip();
-		case ToolPalettePackage.ENTRY__LARGE_ICON:
-			return getLargeIcon();
-		case ToolPalettePackage.ENTRY__CONTENT:
-			return getContent();
-		case ToolPalettePackage.ENTRY__NAME:
-			return getName();
-		case ToolPalettePackage.ENTRY__ENTRIES:
-			return getEntries();
-		case ToolPalettePackage.ENTRY__ID:
-			return getId();
-		case ToolPalettePackage.ENTRY__ICON:
-			return getIcon();
-		case ToolPalettePackage.ENTRY__CONTEXT:
-			return getContext();
-		case ToolPalettePackage.ENTRY__SCOPE:
-			return getScope();
-		}
-		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 ToolPalettePackage.ENTRY__TOOL_TIP:
-			setToolTip((String) newValue);
-			return;
-		case ToolPalettePackage.ENTRY__LARGE_ICON:
-			setLargeIcon((String) newValue);
-			return;
-		case ToolPalettePackage.ENTRY__CONTENT:
-			setContent((String) newValue);
-			return;
-		case ToolPalettePackage.ENTRY__NAME:
-			setName((String) newValue);
-			return;
-		case ToolPalettePackage.ENTRY__ENTRIES:
-			getEntries().clear();
-			getEntries().addAll((Collection<? extends Entry>) newValue);
-			return;
-		case ToolPalettePackage.ENTRY__ID:
-			setId((String) newValue);
-			return;
-		case ToolPalettePackage.ENTRY__ICON:
-			setIcon((String) newValue);
-			return;
-		case ToolPalettePackage.ENTRY__CONTEXT:
-			setContext((ContextType) newValue);
-			return;
-		case ToolPalettePackage.ENTRY__SCOPE:
-			setScope((String) newValue);
-			return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-		case ToolPalettePackage.ENTRY__TOOL_TIP:
-			setToolTip(TOOL_TIP_EDEFAULT);
-			return;
-		case ToolPalettePackage.ENTRY__LARGE_ICON:
-			setLargeIcon(LARGE_ICON_EDEFAULT);
-			return;
-		case ToolPalettePackage.ENTRY__CONTENT:
-			setContent(CONTENT_EDEFAULT);
-			return;
-		case ToolPalettePackage.ENTRY__NAME:
-			setName(NAME_EDEFAULT);
-			return;
-		case ToolPalettePackage.ENTRY__ENTRIES:
-			getEntries().clear();
-			return;
-		case ToolPalettePackage.ENTRY__ID:
-			setId(ID_EDEFAULT);
-			return;
-		case ToolPalettePackage.ENTRY__ICON:
-			setIcon(ICON_EDEFAULT);
-			return;
-		case ToolPalettePackage.ENTRY__CONTEXT:
-			setContext(CONTEXT_EDEFAULT);
-			return;
-		case ToolPalettePackage.ENTRY__SCOPE:
-			setScope(SCOPE_EDEFAULT);
-			return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-		case ToolPalettePackage.ENTRY__TOOL_TIP:
-			return TOOL_TIP_EDEFAULT == null ? toolTip != null : !TOOL_TIP_EDEFAULT.equals(toolTip);
-		case ToolPalettePackage.ENTRY__LARGE_ICON:
-			return LARGE_ICON_EDEFAULT == null ? largeIcon != null : !LARGE_ICON_EDEFAULT.equals(largeIcon);
-		case ToolPalettePackage.ENTRY__CONTENT:
-			return CONTENT_EDEFAULT == null ? content != null : !CONTENT_EDEFAULT.equals(content);
-		case ToolPalettePackage.ENTRY__NAME:
-			return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-		case ToolPalettePackage.ENTRY__ENTRIES:
-			return entries != null && !entries.isEmpty();
-		case ToolPalettePackage.ENTRY__ID:
-			return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
-		case ToolPalettePackage.ENTRY__ICON:
-			return ICON_EDEFAULT == null ? icon != null : !ICON_EDEFAULT.equals(icon);
-		case ToolPalettePackage.ENTRY__CONTEXT:
-			return context != CONTEXT_EDEFAULT;
-		case ToolPalettePackage.ENTRY__SCOPE:
-			return SCOPE_EDEFAULT == null ? scope != null : !SCOPE_EDEFAULT.equals(scope);
-		}
-		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(" (toolTip: ");
-		result.append(toolTip);
-		result.append(", largeIcon: ");
-		result.append(largeIcon);
-		result.append(", content: ");
-		result.append(content);
-		result.append(", name: ");
-		result.append(name);
-		result.append(", id: ");
-		result.append(id);
-		result.append(", icon: ");
-		result.append(icon);
-		result.append(", context: ");
-		result.append(context);
-		result.append(", scope: ");
-		result.append(scope);
-		result.append(')');
-		return result.toString();
-	}
-
-} // EntryImpl
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/impl/ToolPaletteFactoryImpl.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/impl/ToolPaletteFactoryImpl.java
deleted file mode 100755
index d7eb342..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/impl/ToolPaletteFactoryImpl.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.toolpalette.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.xwt.vex.toolpalette.ContextType;
-import org.eclipse.xwt.vex.toolpalette.Entry;
-import org.eclipse.xwt.vex.toolpalette.ToolPalette;
-import org.eclipse.xwt.vex.toolpalette.ToolPaletteFactory;
-import org.eclipse.xwt.vex.toolpalette.ToolPalettePackage;
-
-/**
- * <!-- begin-user-doc --> An implementation of the model <b>Factory</b>. <!-- end-user-doc -->
- * 
- * @generated
- */
-public class ToolPaletteFactoryImpl extends EFactoryImpl implements ToolPaletteFactory {
-	/**
-	 * Creates the default factory implementation. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public static ToolPaletteFactory init() {
-		try {
-			ToolPaletteFactory theToolPaletteFactory = (ToolPaletteFactory) EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/ve/xml/toolpalette");
-			if (theToolPaletteFactory != null) {
-				return theToolPaletteFactory;
-			}
-		} catch (Exception exception) {
-			EcorePlugin.INSTANCE.log(exception);
-		}
-		return new ToolPaletteFactoryImpl();
-	}
-
-	/**
-	 * Creates an instance of the factory. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public ToolPaletteFactoryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public EObject create(EClass eClass) {
-		switch (eClass.getClassifierID()) {
-		case ToolPalettePackage.TOOL_PALETTE:
-			return createToolPalette();
-		case ToolPalettePackage.ENTRY:
-			return createEntry();
-		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 ToolPalettePackage.CONTEXT_TYPE:
-			return createContextTypeFromString(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 ToolPalettePackage.CONTEXT_TYPE:
-			return convertContextTypeToString(eDataType, instanceValue);
-		default:
-			throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public ToolPalette createToolPalette() {
-		ToolPaletteImpl toolPalette = new ToolPaletteImpl();
-		return toolPalette;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public Entry createEntry() {
-		EntryImpl entry = new EntryImpl();
-		return entry;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public ContextType createContextTypeFromString(EDataType eDataType, String initialValue) {
-		ContextType result = ContextType.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 convertContextTypeToString(EDataType eDataType, Object instanceValue) {
-		return instanceValue == null ? null : instanceValue.toString();
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public ToolPalettePackage getToolPalettePackage() {
-		return (ToolPalettePackage) getEPackage();
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @deprecated
-	 * @generated
-	 */
-	@Deprecated
-	public static ToolPalettePackage getPackage() {
-		return ToolPalettePackage.eINSTANCE;
-	}
-
-} // ToolPaletteFactoryImpl
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/impl/ToolPaletteImpl.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/impl/ToolPaletteImpl.java
deleted file mode 100755
index 3872a21..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/impl/ToolPaletteImpl.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.toolpalette.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.EObjectImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.xwt.vex.toolpalette.Entry;
-import org.eclipse.xwt.vex.toolpalette.ToolPalette;
-import org.eclipse.xwt.vex.toolpalette.ToolPalettePackage;
-
-/**
- * <!-- begin-user-doc --> An implementation of the model object '<em><b>Tool Palette</b></em>'. <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- * <li>{@link org.eclipse.xwt.vex.toolpalette.impl.ToolPaletteImpl#getName <em>Name</em>}</li>
- * <li>{@link org.eclipse.xwt.vex.toolpalette.impl.ToolPaletteImpl#getEntries <em>Entries</em>}</li>
- * </ul>
- * </p>
- * 
- * @generated
- */
-public class ToolPaletteImpl extends EObjectImpl implements ToolPalette {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getEntries() <em>Entries</em>}' containment reference list. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #getEntries()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<Entry> entries;
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	protected ToolPaletteImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return ToolPalettePackage.Literals.TOOL_PALETTE;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, ToolPalettePackage.TOOL_PALETTE__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public EList<Entry> getEntries() {
-		if (entries == null) {
-			entries = new EObjectContainmentEList<Entry>(Entry.class, this, ToolPalettePackage.TOOL_PALETTE__ENTRIES);
-		}
-		return entries;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-		case ToolPalettePackage.TOOL_PALETTE__ENTRIES:
-			return ((InternalEList<?>) getEntries()).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 ToolPalettePackage.TOOL_PALETTE__NAME:
-			return getName();
-		case ToolPalettePackage.TOOL_PALETTE__ENTRIES:
-			return getEntries();
-		}
-		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 ToolPalettePackage.TOOL_PALETTE__NAME:
-			setName((String) newValue);
-			return;
-		case ToolPalettePackage.TOOL_PALETTE__ENTRIES:
-			getEntries().clear();
-			getEntries().addAll((Collection<? extends Entry>) newValue);
-			return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-		case ToolPalettePackage.TOOL_PALETTE__NAME:
-			setName(NAME_EDEFAULT);
-			return;
-		case ToolPalettePackage.TOOL_PALETTE__ENTRIES:
-			getEntries().clear();
-			return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-		case ToolPalettePackage.TOOL_PALETTE__NAME:
-			return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-		case ToolPalettePackage.TOOL_PALETTE__ENTRIES:
-			return entries != null && !entries.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(" (name: ");
-		result.append(name);
-		result.append(')');
-		return result.toString();
-	}
-
-} // ToolPaletteImpl
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/impl/ToolPalettePackageImpl.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/impl/ToolPalettePackageImpl.java
deleted file mode 100755
index f7d1942..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/impl/ToolPalettePackageImpl.java
+++ /dev/null
@@ -1,335 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.toolpalette.impl;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EEnum;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.impl.EPackageImpl;
-import org.eclipse.xwt.vex.toolpalette.ContextType;
-import org.eclipse.xwt.vex.toolpalette.Entry;
-import org.eclipse.xwt.vex.toolpalette.ToolPalette;
-import org.eclipse.xwt.vex.toolpalette.ToolPaletteFactory;
-import org.eclipse.xwt.vex.toolpalette.ToolPalettePackage;
-
-/**
- * <!-- begin-user-doc --> An implementation of the model <b>Package</b>. <!-- end-user-doc -->
- * 
- * @generated
- */
-public class ToolPalettePackageImpl extends EPackageImpl implements ToolPalettePackage {
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private EClass toolPaletteEClass = null;
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private EClass entryEClass = null;
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private EEnum contextTypeEEnum = 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.xwt.vex.toolpalette.ToolPalettePackage#eNS_URI
-	 * @see #init()
-	 * @generated
-	 */
-	private ToolPalettePackageImpl() {
-		super(eNS_URI, ToolPaletteFactory.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. Simple dependencies are satisfied by calling this method on all dependent packages before doing anything else. This method drives initialization for interdependent packages directly, in parallel with this package, itself.
-	 * <p>
-	 * Of this package and its interdependencies, all packages which have not yet been registered by their URI values are first created and registered. The packages are then initialized in two steps: meta-model objects for all of the packages are created before any are initialized, since one package's meta-model objects may refer to those of another.
-	 * <p>
-	 * Invocation of this method will not affect any packages that have already been initialized. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #eNS_URI
-	 * @see #createPackageContents()
-	 * @see #initializePackageContents()
-	 * @generated
-	 */
-	public static ToolPalettePackage init() {
-		if (isInited)
-			return (ToolPalettePackage) EPackage.Registry.INSTANCE.getEPackage(ToolPalettePackage.eNS_URI);
-
-		// Obtain or create and register package
-		ToolPalettePackageImpl theToolPalettePackage = (ToolPalettePackageImpl) (EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof ToolPalettePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new ToolPalettePackageImpl());
-
-		isInited = true;
-
-		// Create package meta-data objects
-		theToolPalettePackage.createPackageContents();
-
-		// Initialize created meta-data
-		theToolPalettePackage.initializePackageContents();
-
-		// Mark meta-data to indicate it can't be changed
-		theToolPalettePackage.freeze();
-
-		return theToolPalettePackage;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public EClass getToolPalette() {
-		return toolPaletteEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public EAttribute getToolPalette_Name() {
-		return (EAttribute) toolPaletteEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public EReference getToolPalette_Entries() {
-		return (EReference) toolPaletteEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public EClass getEntry() {
-		return entryEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public EAttribute getEntry_ToolTip() {
-		return (EAttribute) entryEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public EAttribute getEntry_LargeIcon() {
-		return (EAttribute) entryEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public EAttribute getEntry_Content() {
-		return (EAttribute) entryEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public EAttribute getEntry_Name() {
-		return (EAttribute) entryEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public EReference getEntry_Entries() {
-		return (EReference) entryEClass.getEStructuralFeatures().get(4);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public EAttribute getEntry_Id() {
-		return (EAttribute) entryEClass.getEStructuralFeatures().get(5);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public EAttribute getEntry_Icon() {
-		return (EAttribute) entryEClass.getEStructuralFeatures().get(6);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public EAttribute getEntry_Context() {
-		return (EAttribute) entryEClass.getEStructuralFeatures().get(7);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public EAttribute getEntry_Scope() {
-		return (EAttribute) entryEClass.getEStructuralFeatures().get(8);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public EEnum getContextType() {
-		return contextTypeEEnum;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public ToolPaletteFactory getToolPaletteFactory() {
-		return (ToolPaletteFactory) getEFactoryInstance();
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private boolean isCreated = false;
-
-	/**
-	 * Creates the meta-model objects for the package. This method is guarded to have no affect on any invocation but its first. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public void createPackageContents() {
-		if (isCreated)
-			return;
-		isCreated = true;
-
-		// Create classes and their features
-		toolPaletteEClass = createEClass(TOOL_PALETTE);
-		createEAttribute(toolPaletteEClass, TOOL_PALETTE__NAME);
-		createEReference(toolPaletteEClass, TOOL_PALETTE__ENTRIES);
-
-		entryEClass = createEClass(ENTRY);
-		createEAttribute(entryEClass, ENTRY__TOOL_TIP);
-		createEAttribute(entryEClass, ENTRY__LARGE_ICON);
-		createEAttribute(entryEClass, ENTRY__CONTENT);
-		createEAttribute(entryEClass, ENTRY__NAME);
-		createEReference(entryEClass, ENTRY__ENTRIES);
-		createEAttribute(entryEClass, ENTRY__ID);
-		createEAttribute(entryEClass, ENTRY__ICON);
-		createEAttribute(entryEClass, ENTRY__CONTEXT);
-		createEAttribute(entryEClass, ENTRY__SCOPE);
-
-		// Create enums
-		contextTypeEEnum = createEEnum(CONTEXT_TYPE);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	private boolean isInitialized = false;
-
-	/**
-	 * Complete the initialization of the package and its meta-model. This method is guarded to have no affect on any invocation but its first. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public void initializePackageContents() {
-		if (isInitialized)
-			return;
-		isInitialized = true;
-
-		// Initialize package
-		setName(eNAME);
-		setNsPrefix(eNS_PREFIX);
-		setNsURI(eNS_URI);
-
-		// Create type parameters
-
-		// Set bounds for type parameters
-
-		// Add supertypes to classes
-
-		// Initialize classes and features; add operations and parameters
-		initEClass(toolPaletteEClass, ToolPalette.class, "ToolPalette", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getToolPalette_Name(), ecorePackage.getEString(), "name", null, 0, 1, ToolPalette.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getToolPalette_Entries(), this.getEntry(), null, "entries", null, 0, -1, ToolPalette.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(entryEClass, Entry.class, "Entry", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getEntry_ToolTip(), ecorePackage.getEString(), "toolTip", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getEntry_LargeIcon(), ecorePackage.getEString(), "largeIcon", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getEntry_Content(), ecorePackage.getEString(), "content", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getEntry_Name(), ecorePackage.getEString(), "name", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getEntry_Entries(), this.getEntry(), null, "entries", null, 0, -1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getEntry_Id(), ecorePackage.getEString(), "id", "\"\"", 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getEntry_Icon(), ecorePackage.getEString(), "icon", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getEntry_Context(), this.getContextType(), "context", "", 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getEntry_Scope(), ecorePackage.getEString(), "scope", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		// Initialize enums and add enum literals
-		initEEnum(contextTypeEEnum, ContextType.class, "ContextType");
-		addEEnumLiteral(contextTypeEEnum, ContextType.XML_TAG);
-		addEEnumLiteral(contextTypeEEnum, ContextType.XML_ATTRIBUTE_VALUE);
-		addEEnumLiteral(contextTypeEEnum, ContextType.XML_ATTRIBUTE);
-		addEEnumLiteral(contextTypeEEnum, ContextType.XML_ALL);
-		addEEnumLiteral(contextTypeEEnum, ContextType.XML_NEW);
-		addEEnumLiteral(contextTypeEEnum, ContextType.NONE);
-
-		// Create resource
-		createResource(eNS_URI);
-	}
-
-} // ToolPalettePackageImpl
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/util/ToolPaletteAdapterFactory.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/util/ToolPaletteAdapterFactory.java
deleted file mode 100755
index f8bc17c..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/util/ToolPaletteAdapterFactory.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.toolpalette.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.xwt.vex.toolpalette.Entry;
-import org.eclipse.xwt.vex.toolpalette.ToolPalette;
-import org.eclipse.xwt.vex.toolpalette.ToolPalettePackage;
-
-/**
- * <!-- 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.xwt.vex.toolpalette.ToolPalettePackage
- * @generated
- */
-public class ToolPaletteAdapterFactory extends AdapterFactoryImpl {
-	/**
-	 * The cached model package. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	protected static ToolPalettePackage modelPackage;
-
-	/**
-	 * Creates an instance of the adapter factory. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public ToolPaletteAdapterFactory() {
-		if (modelPackage == null) {
-			modelPackage = ToolPalettePackage.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 ToolPaletteSwitch<Adapter> modelSwitch = new ToolPaletteSwitch<Adapter>() {
-		@Override
-		public Adapter caseToolPalette(ToolPalette object) {
-			return createToolPaletteAdapter();
-		}
-
-		@Override
-		public Adapter caseEntry(Entry object) {
-			return createEntryAdapter();
-		}
-
-		@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.xwt.vex.toolpalette.ToolPalette <em>Tool Palette</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.xwt.vex.toolpalette.ToolPalette
-	 * @generated
-	 */
-	public Adapter createToolPaletteAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.xwt.vex.toolpalette.Entry <em>Entry</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.xwt.vex.toolpalette.Entry
-	 * @generated
-	 */
-	public Adapter createEntryAdapter() {
-		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;
-	}
-
-} // ToolPaletteAdapterFactory
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/util/ToolPaletteHelper.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/util/ToolPaletteHelper.java
deleted file mode 100755
index 40ca9e0..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/util/ToolPaletteHelper.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.toolpalette.util;
-
-import org.eclipse.xwt.vex.toolpalette.Entry;
-
-public class ToolPaletteHelper {
-
-	public static String getSimpleName(Entry entry) {
-		String name = entry.getName();
-		if (name == null) {
-			return null;
-		}
-		int index = name.lastIndexOf('.');
-		if (index != -1) {
-			name = name.substring(index + 1);
-		}
-		return name;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/util/ToolPaletteSwitch.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/util/ToolPaletteSwitch.java
deleted file mode 100755
index 8c56a26..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/util/ToolPaletteSwitch.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.toolpalette.util;
-
-import java.util.List;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.xwt.vex.toolpalette.Entry;
-import org.eclipse.xwt.vex.toolpalette.ToolPalette;
-import org.eclipse.xwt.vex.toolpalette.ToolPalettePackage;
-
-/**
- * <!-- 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.xwt.vex.toolpalette.ToolPalettePackage
- * @generated
- */
-public class ToolPaletteSwitch<T> {
-	/**
-	 * The cached model package <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	protected static ToolPalettePackage modelPackage;
-
-	/**
-	 * Creates an instance of the switch. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public ToolPaletteSwitch() {
-		if (modelPackage == null) {
-			modelPackage = ToolPalettePackage.eINSTANCE;
-		}
-	}
-
-	/**
-	 * 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
-	 */
-	public T doSwitch(EObject theEObject) {
-		return doSwitch(theEObject.eClass(), theEObject);
-	}
-
-	/**
-	 * 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
-	 */
-	protected T doSwitch(EClass theEClass, EObject theEObject) {
-		if (theEClass.eContainer() == modelPackage) {
-			return doSwitch(theEClass.getClassifierID(), theEObject);
-		} else {
-			List<EClass> eSuperTypes = theEClass.getESuperTypes();
-			return eSuperTypes.isEmpty() ? defaultCase(theEObject) : doSwitch(eSuperTypes.get(0), theEObject);
-		}
-	}
-
-	/**
-	 * 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
-	 */
-	protected T doSwitch(int classifierID, EObject theEObject) {
-		switch (classifierID) {
-		case ToolPalettePackage.TOOL_PALETTE: {
-			ToolPalette toolPalette = (ToolPalette) theEObject;
-			T result = caseToolPalette(toolPalette);
-			if (result == null)
-				result = defaultCase(theEObject);
-			return result;
-		}
-		case ToolPalettePackage.ENTRY: {
-			Entry entry = (Entry) theEObject;
-			T result = caseEntry(entry);
-			if (result == null)
-				result = defaultCase(theEObject);
-			return result;
-		}
-		default:
-			return defaultCase(theEObject);
-		}
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Tool Palette</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>Tool Palette</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseToolPalette(ToolPalette object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Entry</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>Entry</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEntry(Entry 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
-	 */
-	public T defaultCase(EObject object) {
-		return null;
-	}
-
-} // ToolPaletteSwitch
diff --git a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/util/ImageHelper.java b/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/util/ImageHelper.java
deleted file mode 100755
index c39d672..0000000
--- a/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/util/ImageHelper.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.vex.util;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.xwt.vex.palette.PaletteResourceManager;
-
-/**
- * @author BOB
- * 
- */
-public class ImageHelper {
-
-	/**
-	 * Create ImageDescriptor of given path. Load images from extension registry.
-	 */
-	public static ImageDescriptor getImageDescriptor(PaletteResourceManager tResourceManager, String iconPath) {
-		if (tResourceManager == null || iconPath == null) {
-			return null;
-		}
-		if (iconPath.startsWith("/")) {
-			iconPath = iconPath.substring(1);
-		}
-		URI registryPath = tResourceManager.getIconsPath();
-		String newIconPath = registryPath.toString() + iconPath;
-		URL url;
-		try {
-			File file = new File(iconPath);
-			if (file.exists()) {
-				// try customize component first
-				url = file.toURL();
-			} else {
-				// if don't work, try system component then
-				url = new URL(newIconPath);
-			}
-			ImageDescriptor imageDescriptor = ImageDescriptor.createFromURL(url);
-			if (imageDescriptor.getImageData() != null) {
-				return imageDescriptor;
-			} else {
-				return null;
-			}
-
-		} catch (MalformedURLException e) {
-			// if both don't work, return null
-			return null;
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.workbench/pom.xml b/org.eclipse.xwt.tools.ui.workbench/pom.xml
deleted file mode 100755
index e49b304..0000000
--- a/org.eclipse.xwt.tools.ui.workbench/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt.tools.ui.workbench</artifactId>
-	<version>0.10.0-SNAPSHOT</version>
-	<packaging>eclipse-plugin</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/WorkbenchFactory.java b/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/WorkbenchFactory.java
deleted file mode 100755
index baca00d..0000000
--- a/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/WorkbenchFactory.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.model.workbench;
-
-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.xwt.tools.ui.model.workbench.WorkbenchPackage
- * @generated
- */
-public interface WorkbenchFactory extends EFactory {
-	/**
-	 * The singleton instance of the factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	WorkbenchFactory eINSTANCE = org.eclipse.xwt.tools.ui.model.workbench.impl.WorkbenchFactoryImpl.init();
-
-	/**
-	 * Returns a new object of class '<em>XWT Part Initializer</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>XWT Part Initializer</em>'.
-	 * @generated
-	 */
-	XWTPartInitializer createXWTPartInitializer();
-
-	/**
-	 * Returns the package supported by this factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the package supported by this factory.
-	 * @generated
-	 */
-	WorkbenchPackage getWorkbenchPackage();
-
-} //WorkbenchFactory
diff --git a/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/WorkbenchPackage.java b/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/WorkbenchPackage.java
deleted file mode 100755
index 13233c2..0000000
--- a/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/WorkbenchPackage.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.model.workbench;
-
-import org.eclipse.xwt.tools.ui.palette.PalettePackage;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EPackage;
-
-/**
- * <!-- 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.xwt.tools.ui.model.workbench.WorkbenchFactory
- * @model kind="package"
- * @generated
- */
-public interface WorkbenchPackage extends EPackage {
-	/**
-	 * The package name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNAME = "workbench";
-
-	/**
-	 * The package namespace URI.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNS_URI = "http://www.eclipse.org/e4/xwt/workbench/desiger";
-
-	/**
-	 * The package namespace name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNS_PREFIX = "wb";
-
-	/**
-	 * The singleton instance of the package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	WorkbenchPackage eINSTANCE = org.eclipse.xwt.tools.ui.model.workbench.impl.WorkbenchPackageImpl.init();
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.xwt.tools.ui.model.workbench.impl.XWTPartInitializerImpl <em>XWT Part Initializer</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.xwt.tools.ui.model.workbench.impl.XWTPartInitializerImpl
-	 * @see org.eclipse.xwt.tools.ui.model.workbench.impl.WorkbenchPackageImpl#getXWTPartInitializer()
-	 * @generated
-	 */
-	int XWT_PART_INITIALIZER = 0;
-
-	/**
-	 * The feature id for the '<em><b>Id</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XWT_PART_INITIALIZER__ID = PalettePackage.INITIALIZER__ID;
-
-	/**
-	 * The feature id for the '<em><b>Content Form</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XWT_PART_INITIALIZER__CONTENT_FORM = PalettePackage.INITIALIZER_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>XWT Part Initializer</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XWT_PART_INITIALIZER_FEATURE_COUNT = PalettePackage.INITIALIZER_FEATURE_COUNT + 1;
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.xwt.tools.ui.model.workbench.XWTPartInitializer <em>XWT Part Initializer</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>XWT Part Initializer</em>'.
-	 * @see org.eclipse.xwt.tools.ui.model.workbench.XWTPartInitializer
-	 * @generated
-	 */
-	EClass getXWTPartInitializer();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.model.workbench.XWTPartInitializer#getContentForm <em>Content Form</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Content Form</em>'.
-	 * @see org.eclipse.xwt.tools.ui.model.workbench.XWTPartInitializer#getContentForm()
-	 * @see #getXWTPartInitializer()
-	 * @generated
-	 */
-	EAttribute getXWTPartInitializer_ContentForm();
-
-	/**
-	 * 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
-	 */
-	WorkbenchFactory getWorkbenchFactory();
-
-	/**
-	 * <!-- 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.xwt.tools.ui.model.workbench.impl.XWTPartInitializerImpl <em>XWT Part Initializer</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.xwt.tools.ui.model.workbench.impl.XWTPartInitializerImpl
-		 * @see org.eclipse.xwt.tools.ui.model.workbench.impl.WorkbenchPackageImpl#getXWTPartInitializer()
-		 * @generated
-		 */
-		EClass XWT_PART_INITIALIZER = eINSTANCE.getXWTPartInitializer();
-
-		/**
-		 * The meta object literal for the '<em><b>Content Form</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute XWT_PART_INITIALIZER__CONTENT_FORM = eINSTANCE.getXWTPartInitializer_ContentForm();
-
-	}
-
-} //WorkbenchPackage
diff --git a/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/impl/WorkbenchFactoryImpl.java b/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/impl/WorkbenchFactoryImpl.java
deleted file mode 100755
index a3e2157..0000000
--- a/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/impl/WorkbenchFactoryImpl.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.model.workbench.impl;
-
-import org.eclipse.xwt.tools.ui.model.workbench.*;
-
-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;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Factory</b>.
- * <!-- end-user-doc -->
- * @generated
- */
-public class WorkbenchFactoryImpl extends EFactoryImpl implements WorkbenchFactory {
-	/**
-	 * Creates the default factory implementation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static WorkbenchFactory init() {
-		try {
-			WorkbenchFactory theWorkbenchFactory = (WorkbenchFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/e4/xwt/workbench/desiger"); 
-			if (theWorkbenchFactory != null) {
-				return theWorkbenchFactory;
-			}
-		}
-		catch (Exception exception) {
-			EcorePlugin.INSTANCE.log(exception);
-		}
-		return new WorkbenchFactoryImpl();
-	}
-
-	/**
-	 * Creates an instance of the factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public WorkbenchFactoryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EObject create(EClass eClass) {
-		switch (eClass.getClassifierID()) {
-			case WorkbenchPackage.XWT_PART_INITIALIZER: return createXWTPartInitializer();
-			default:
-				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XWTPartInitializer createXWTPartInitializer() {
-		XWTPartInitializerImpl xwtPartInitializer = new XWTPartInitializerImpl();
-		return xwtPartInitializer;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public WorkbenchPackage getWorkbenchPackage() {
-		return (WorkbenchPackage)getEPackage();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @deprecated
-	 * @generated
-	 */
-	@Deprecated
-	public static WorkbenchPackage getPackage() {
-		return WorkbenchPackage.eINSTANCE;
-	}
-
-} //WorkbenchFactoryImpl
diff --git a/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/impl/WorkbenchPackageImpl.java b/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/impl/WorkbenchPackageImpl.java
deleted file mode 100755
index a5f09a1..0000000
--- a/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/impl/WorkbenchPackageImpl.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.model.workbench.impl;
-
-import org.eclipse.xwt.tools.ui.model.workbench.WorkbenchFactory;
-import org.eclipse.xwt.tools.ui.model.workbench.WorkbenchPackage;
-
-import org.eclipse.xwt.tools.ui.model.workbench.XWTPartInitializer;
-import org.eclipse.xwt.tools.ui.palette.PalettePackage;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EPackage;
-
-import org.eclipse.emf.ecore.impl.EPackageImpl;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Package</b>.
- * <!-- end-user-doc -->
- * @generated
- */
-public class WorkbenchPackageImpl extends EPackageImpl implements WorkbenchPackage {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xwtPartInitializerEClass = 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.xwt.tools.ui.model.workbench.WorkbenchPackage#eNS_URI
-	 * @see #init()
-	 * @generated
-	 */
-	private WorkbenchPackageImpl() {
-		super(eNS_URI, WorkbenchFactory.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 WorkbenchPackage#eINSTANCE} when that field is accessed.
-	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #eNS_URI
-	 * @see #createPackageContents()
-	 * @see #initializePackageContents()
-	 * @generated
-	 */
-	public static WorkbenchPackage init() {
-		if (isInited) return (WorkbenchPackage)EPackage.Registry.INSTANCE.getEPackage(WorkbenchPackage.eNS_URI);
-
-		// Obtain or create and register package
-		WorkbenchPackageImpl theWorkbenchPackage = (WorkbenchPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof WorkbenchPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new WorkbenchPackageImpl());
-
-		isInited = true;
-
-		// Initialize simple dependencies
-		PalettePackage.eINSTANCE.eClass();
-
-		// Create package meta-data objects
-		theWorkbenchPackage.createPackageContents();
-
-		// Initialize created meta-data
-		theWorkbenchPackage.initializePackageContents();
-
-		// Mark meta-data to indicate it can't be changed
-		theWorkbenchPackage.freeze();
-
-  
-		// Update the registry and return the package
-		EPackage.Registry.INSTANCE.put(WorkbenchPackage.eNS_URI, theWorkbenchPackage);
-		return theWorkbenchPackage;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getXWTPartInitializer() {
-		return xwtPartInitializerEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getXWTPartInitializer_ContentForm() {
-		return (EAttribute)xwtPartInitializerEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public WorkbenchFactory getWorkbenchFactory() {
-		return (WorkbenchFactory)getEFactoryInstance();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private boolean isCreated = false;
-
-	/**
-	 * Creates the meta-model objects for the package.  This method is
-	 * guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void createPackageContents() {
-		if (isCreated) return;
-		isCreated = true;
-
-		// Create classes and their features
-		xwtPartInitializerEClass = createEClass(XWT_PART_INITIALIZER);
-		createEAttribute(xwtPartInitializerEClass, XWT_PART_INITIALIZER__CONTENT_FORM);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private boolean isInitialized = false;
-
-	/**
-	 * Complete the initialization of the package and its meta-model.  This
-	 * method is guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void initializePackageContents() {
-		if (isInitialized) return;
-		isInitialized = true;
-
-		// Initialize package
-		setName(eNAME);
-		setNsPrefix(eNS_PREFIX);
-		setNsURI(eNS_URI);
-
-		// Obtain other dependent packages
-		PalettePackage thePalettePackage = (PalettePackage)EPackage.Registry.INSTANCE.getEPackage(PalettePackage.eNS_URI);
-
-		// Create type parameters
-
-		// Set bounds for type parameters
-
-		// Add supertypes to classes
-		xwtPartInitializerEClass.getESuperTypes().add(thePalettePackage.getInitializer());
-
-		// Initialize classes and features; add operations and parameters
-		initEClass(xwtPartInitializerEClass, XWTPartInitializer.class, "XWTPartInitializer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getXWTPartInitializer_ContentForm(), ecorePackage.getEString(), "contentForm", null, 0, 1, XWTPartInitializer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		// Create resource
-		createResource(eNS_URI);
-	}
-
-} //WorkbenchPackageImpl
diff --git a/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/impl/XWTPartInitializerImpl.java b/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/impl/XWTPartInitializerImpl.java
deleted file mode 100755
index bbd51fb..0000000
--- a/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/impl/XWTPartInitializerImpl.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.model.workbench.impl;
-
-import org.eclipse.xwt.tools.ui.model.workbench.WorkbenchPackage;
-import org.eclipse.xwt.tools.ui.model.workbench.XWTPartInitializer;
-import org.eclipse.xwt.tools.ui.palette.Entry;
-import org.eclipse.xwt.tools.ui.palette.impl.InitializerImpl;
-import org.eclipse.xwt.tools.ui.workbench.PartInitializerAction;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-/**
- * <!-- begin-user-doc --> An implementation of the model object '
- * <em><b>XWT Part Initializer</b></em>'. <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- * <li>
- * {@link org.eclipse.xwt.tools.ui.model.workbench.impl.XWTPartInitializerImpl#getContentForm
- * <em>Content Form</em>}</li>
- * </ul>
- * </p>
- * 
- * @generated
- */
-public class XWTPartInitializerImpl extends InitializerImpl implements XWTPartInitializer {
-	private PartInitializerAction action;
-
-	/**
-	 * The default value of the '{@link #getContentForm() <em>Content Form</em>}
-	 * ' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #getContentForm()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String CONTENT_FORM_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getContentForm() <em>Content Form</em>}'
-	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @see #getContentForm()
-	 * @generated
-	 * @ordered
-	 */
-	protected String contentForm = CONTENT_FORM_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	protected XWTPartInitializerImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return WorkbenchPackage.Literals.XWT_PART_INITIALIZER;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public String getContentForm() {
-		return contentForm;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public void setContentForm(String newContentForm) {
-		String oldContentForm = contentForm;
-		contentForm = newContentForm;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET,
-					WorkbenchPackage.XWT_PART_INITIALIZER__CONTENT_FORM, oldContentForm,
-					contentForm));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-		case WorkbenchPackage.XWT_PART_INITIALIZER__CONTENT_FORM:
-			return getContentForm();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-		case WorkbenchPackage.XWT_PART_INITIALIZER__CONTENT_FORM:
-			setContentForm((String) newValue);
-			return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-		case WorkbenchPackage.XWT_PART_INITIALIZER__CONTENT_FORM:
-			setContentForm(CONTENT_FORM_EDEFAULT);
-			return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-		case WorkbenchPackage.XWT_PART_INITIALIZER__CONTENT_FORM:
-			return CONTENT_FORM_EDEFAULT == null ? contentForm != null : !CONTENT_FORM_EDEFAULT
-					.equals(contentForm);
-		}
-		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(" (contentForm: ");
-		result.append(contentForm);
-		result.append(')');
-		return result.toString();
-	}
-
-	public boolean initialize(Object element) {
-		if (action == null) {
-			action = new PartInitializerAction(loadClass());
-		}
-		return action.run(element);
-	}
-
-	protected Class<?> loadClass() {
-		try {
-			String contentForm = getContentForm();
-			return getClass().getClassLoader().loadClass(contentForm);
-		} catch (ClassNotFoundException e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.xwt.tools.ui.palette.impl.InitializerImpl#parse(org.eclipse
-	 * .e4.xwt.tools.ui.palette.Entry)
-	 */
-	@Override
-	public Object parse(Entry entry) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.xwt.tools.ui.palette.impl.InitializerImpl#initialize(org
-	 * .eclipse.e4.xwt.tools.ui.palette.Entry, java.lang.Object)
-	 */
-	@Override
-	public boolean initialize(Entry entry, Object newObject) {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-} // XWTPartInitializerImpl
diff --git a/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/util/WorkbenchAdapterFactory.java b/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/util/WorkbenchAdapterFactory.java
deleted file mode 100755
index 5b7b61d..0000000
--- a/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/util/WorkbenchAdapterFactory.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.model.workbench.util;
-
-import org.eclipse.xwt.tools.ui.model.workbench.*;
-
-import org.eclipse.xwt.tools.ui.palette.Initializer;
-
-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;
-
-/**
- * <!-- 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.xwt.tools.ui.model.workbench.WorkbenchPackage
- * @generated
- */
-public class WorkbenchAdapterFactory extends AdapterFactoryImpl {
-	/**
-	 * The cached model package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected static WorkbenchPackage modelPackage;
-
-	/**
-	 * Creates an instance of the adapter factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public WorkbenchAdapterFactory() {
-		if (modelPackage == null) {
-			modelPackage = WorkbenchPackage.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 WorkbenchSwitch<Adapter> modelSwitch =
-		new WorkbenchSwitch<Adapter>() {
-			@Override
-			public Adapter caseXWTPartInitializer(XWTPartInitializer object) {
-				return createXWTPartInitializerAdapter();
-			}
-			@Override
-			public Adapter caseInitializer(Initializer object) {
-				return createInitializerAdapter();
-			}
-			@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.xwt.tools.ui.model.workbench.XWTPartInitializer <em>XWT Part Initializer</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.xwt.tools.ui.model.workbench.XWTPartInitializer
-	 * @generated
-	 */
-	public Adapter createXWTPartInitializerAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.xwt.tools.ui.palette.Initializer <em>Initializer</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.xwt.tools.ui.palette.Initializer
-	 * @generated
-	 */
-	public Adapter createInitializerAdapter() {
-		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;
-	}
-
-} //WorkbenchAdapterFactory
diff --git a/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/util/WorkbenchSwitch.java b/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/util/WorkbenchSwitch.java
deleted file mode 100755
index a8b1bb0..0000000
--- a/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/util/WorkbenchSwitch.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.model.workbench.util;
-
-import java.util.List;
-
-import org.eclipse.xwt.tools.ui.model.workbench.*;
-
-import org.eclipse.xwt.tools.ui.palette.Initializer;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- 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.xwt.tools.ui.model.workbench.WorkbenchPackage
- * @generated
- */
-public class WorkbenchSwitch<T> {
-	/**
-	 * The cached model package
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected static WorkbenchPackage modelPackage;
-
-	/**
-	 * Creates an instance of the switch.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public WorkbenchSwitch() {
-		if (modelPackage == null) {
-			modelPackage = WorkbenchPackage.eINSTANCE;
-		}
-	}
-
-	/**
-	 * 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
-	 */
-	public T doSwitch(EObject theEObject) {
-		return doSwitch(theEObject.eClass(), theEObject);
-	}
-
-	/**
-	 * 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
-	 */
-	protected T doSwitch(EClass theEClass, EObject theEObject) {
-		if (theEClass.eContainer() == modelPackage) {
-			return doSwitch(theEClass.getClassifierID(), theEObject);
-		}
-		else {
-			List<EClass> eSuperTypes = theEClass.getESuperTypes();
-			return
-				eSuperTypes.isEmpty() ?
-					defaultCase(theEObject) :
-					doSwitch(eSuperTypes.get(0), theEObject);
-		}
-	}
-
-	/**
-	 * 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
-	 */
-	protected T doSwitch(int classifierID, EObject theEObject) {
-		switch (classifierID) {
-			case WorkbenchPackage.XWT_PART_INITIALIZER: {
-				XWTPartInitializer xwtPartInitializer = (XWTPartInitializer)theEObject;
-				T result = caseXWTPartInitializer(xwtPartInitializer);
-				if (result == null) result = caseInitializer(xwtPartInitializer);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			default: return defaultCase(theEObject);
-		}
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>XWT Part Initializer</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>XWT Part Initializer</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXWTPartInitializer(XWTPartInitializer object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Initializer</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>Initializer</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseInitializer(Initializer 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
-	 */
-	public T defaultCase(EObject object) {
-		return null;
-	}
-
-} //WorkbenchSwitch
diff --git a/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/Activator.java b/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/Activator.java
deleted file mode 100755
index 6533d24..0000000
--- a/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/Activator.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.workbench;
-
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class Activator extends AbstractUIPlugin {
-
-	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.xwt.tools.ui.workbench"; //$NON-NLS-1$
-
-	// The shared instance
-	private static Activator plugin;
-	
-	/**
-	 * The constructor
-	 */
-	public Activator() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);
-	}
-
-	/**
-	 * Returns the shared instance
-	 *
-	 * @return the shared instance
-	 */
-	public static Activator getDefault() {
-		return plugin;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/PartInitializerAction.java b/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/PartInitializerAction.java
deleted file mode 100755
index 888d674..0000000
--- a/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/PartInitializerAction.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.workbench;
-
-import org.eclipse.e4.ui.model.application.ui.basic.MPart;
-import org.eclipse.xwt.jface.XWTTitleAreaDialog;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * 
- * @author yyang <yves.yang@soyatec.com>
- */
-public class PartInitializerAction {
-	private Class<?> cls;
-
-	public PartInitializerAction(Class<?> cls) {
-		this.cls = cls;
-	}
-
-	public boolean run(Object element) {
-		if (!(element instanceof MPart)) {
-			return false;
-		}
-		XWTTitleAreaDialog dialog = new XWTTitleAreaDialog(getCurrentShell(),
-				cls, element);
-		return (dialog.open() == Window.OK);
-	}
-
-	protected Shell getCurrentShell() {
-		Display display = Display.getCurrent();
-		if (display == null) {
-			display = Display.getDefault();
-		}
-		Shell shell = Display.getDefault().getActiveShell();
-		if (shell != null) {
-			return shell;
-		}
-		IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench()
-				.getActiveWorkbenchWindow();
-		if (workbenchWindow != null) {
-			return workbenchWindow.getShell();
-		}
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/PartInitializerForm.java b/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/PartInitializerForm.java
deleted file mode 100755
index fa76037..0000000
--- a/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/PartInitializerForm.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.workbench;
-
-import org.eclipse.xwt.XWT;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-
-public class PartInitializerForm extends Composite {
-
-	public PartInitializerForm(Composite parent, int style) {
-		super(parent, style);
-	}
-	
-	protected void onLoaded(Object sent, Event event) {
-		EObject object = (EObject) XWT.getDataContext(this); 
-		if (object == null) {
-			return;
-		}
-		URI uri = object.eResource().getURI();
-		System.out.println(uri.toString());
-	}
-}
- 
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/StaticPartInitializerForm.java b/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/StaticPartInitializerForm.java
deleted file mode 100755
index 6f89b97..0000000
--- a/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/StaticPartInitializerForm.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.workbench;
-
-import org.eclipse.xwt.XWT;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-
-public class StaticPartInitializerForm extends Composite {
-
-	public StaticPartInitializerForm(Composite parent, int style) {
-		super(parent, style);
-	}
-	
-	protected void onLoaded(Object sent, Event event) {
-		EObject object = (EObject) XWT.getDataContext(this); 
-		if (object == null) {
-			return;
-		}
-		URI uri = object.eResource().getURI();
-		System.out.println(uri.toString());
-	}
-}
- 
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.xaml/build.properties b/org.eclipse.xwt.tools.ui.xaml/build.properties
deleted file mode 100755
index 8c57525..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/build.properties
+++ /dev/null
@@ -1,33 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     Soyatec - initial API and implementation
-###############################################################################
-
-# <copyright>
-# </copyright>
-#
-# $Id: build.properties,v 1.2 2010/06/18 00:16:29 yvyang Exp $
-
-bin.includes = .,\
-               META-INF/,\
-               plugin.xml,\
-               plugin.properties
-jars.compile.order = .
-source.. = src/
-output.. = bin/
-src.includes = templates/,\
-               src/,\
-               plugin.xml,\
-               plugin.properties,\
-               model/,\
-               build.properties,\
-               META-INF/,\
-               .settings/,\
-               .project,\
-               .classpath
diff --git a/org.eclipse.xwt.tools.ui.xaml/model/xaml.genmodel b/org.eclipse.xwt.tools.ui.xaml/model/xaml.genmodel
deleted file mode 100755
index 169a7e8..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/model/xaml.genmodel
+++ /dev/null
@@ -1,86 +0,0 @@
-<?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" copyrightText="Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.&#xD;&#xA; All rights reserved. This program and the accompanying materials&#xD;&#xA; are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA; which accompanies this distribution, and is available at&#xD;&#xA; http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA; &#xD;&#xA; Contributors:&#xD;&#xA;     Soyatec - initial API and implementation"
-    modelDirectory="/org.eclipse.xwt.tools.ui.xaml/src" creationIcons="false" modelPluginID="org.eclipse.xwt.tools.ui.xaml"
-    templateDirectory="" redirection="" modelName="Xaml" modelPluginClass="" codeFormatting="true"
-    importerID="org.eclipse.emf.importer.ecore" complianceLevel="6.0" copyrightFields="false"
-    usedGenPackages="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore">
-  <foreignModel>xaml.ecore</foreignModel>
-  <genPackages prefix="Xaml" basePackage="org.eclipse.xwt.tools.ui" disposableProviderFactory="true"
-      ecorePackage="xaml.ecore#/">
-    <genDataTypes ecoreDataType="xaml.ecore#//Node"/>
-    <genDataTypes ecoreDataType="xaml.ecore#//Document"/>
-    <genClasses ecoreClass="xaml.ecore#//XamlDocument">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference xaml.ecore#//XamlDocument/rootElement"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference xaml.ecore#//XamlDocument/declaredNamespaces"/>
-      <genOperations ecoreOperation="xaml.ecore#//XamlDocument/addDeclaredNamespace">
-        <genParameters ecoreParameter="xaml.ecore#//XamlDocument/addDeclaredNamespace/prefix"/>
-        <genParameters ecoreParameter="xaml.ecore#//XamlDocument/addDeclaredNamespace/namespace"/>
-      </genOperations>
-      <genOperations ecoreOperation="xaml.ecore#//XamlDocument/getDeclaredNamespace">
-        <genParameters ecoreParameter="xaml.ecore#//XamlDocument/getDeclaredNamespace/prefix"/>
-      </genOperations>
-    </genClasses>
-    <genClasses ecoreClass="xaml.ecore#//AnnotatedObject">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference xaml.ecore#//AnnotatedObject/annotations"/>
-      <genOperations ecoreOperation="xaml.ecore#//AnnotatedObject/getAnnotation">
-        <genParameters ecoreParameter="xaml.ecore#//AnnotatedObject/getAnnotation/source"/>
-      </genOperations>
-    </genClasses>
-    <genClasses image="false" ecoreClass="xaml.ecore#//XamlNode">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute xaml.ecore#//XamlNode/name"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute xaml.ecore#//XamlNode/prefix"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute xaml.ecore#//XamlNode/namespace"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute xaml.ecore#//XamlNode/value"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference xaml.ecore#//XamlNode/childNodes"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference xaml.ecore#//XamlNode/attributes"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute xaml.ecore#//XamlNode/id"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference xaml.ecore#//XamlNode/comments"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute xaml.ecore#//XamlNode/widget"/>
-      <genOperations ecoreOperation="xaml.ecore#//XamlNode/getAttribute">
-        <genParameters ecoreParameter="xaml.ecore#//XamlNode/getAttribute/name"/>
-        <genParameters ecoreParameter="xaml.ecore#//XamlNode/getAttribute/namespace"/>
-      </genOperations>
-      <genOperations ecoreOperation="xaml.ecore#//XamlNode/getAttribute.1">
-        <genParameters ecoreParameter="xaml.ecore#//XamlNode/getAttribute.1/name"/>
-      </genOperations>
-      <genOperations ecoreOperation="xaml.ecore#//XamlNode/getChild">
-        <genParameters ecoreParameter="xaml.ecore#//XamlNode/getChild/name"/>
-        <genParameters ecoreParameter="xaml.ecore#//XamlNode/getChild/namespace"/>
-      </genOperations>
-      <genOperations ecoreOperation="xaml.ecore#//XamlNode/getChild.1">
-        <genParameters ecoreParameter="xaml.ecore#//XamlNode/getChild.1/name"/>
-      </genOperations>
-      <genOperations ecoreOperation="xaml.ecore#//XamlNode/getChild.2">
-        <genParameters ecoreParameter="xaml.ecore#//XamlNode/getChild.2/index"/>
-      </genOperations>
-      <genOperations ecoreOperation="xaml.ecore#//XamlNode/getOwnerDocument"/>
-      <genOperations ecoreOperation="xaml.ecore#//XamlNode/attributeNames"/>
-      <genOperations ecoreOperation="xaml.ecore#//XamlNode/attributeNames.1">
-        <genParameters ecoreParameter="xaml.ecore#//XamlNode/attributeNames.1/namespace"/>
-      </genOperations>
-      <genOperations ecoreOperation="xaml.ecore#//XamlNode/attributeNamespaces"/>
-      <genOperations ecoreOperation="xaml.ecore#//XamlNode/getParent"/>
-      <genOperations ecoreOperation="xaml.ecore#//XamlNode/generate">
-        <genParameters ecoreParameter="xaml.ecore#//XamlNode/generate/document"/>
-        <genParameters ecoreParameter="xaml.ecore#//XamlNode/generate/options"/>
-      </genOperations>
-      <genOperations ecoreOperation="xaml.ecore#//XamlNode/getFlatValue"/>
-    </genClasses>
-    <genClasses ecoreClass="xaml.ecore#//XamlElement"/>
-    <genClasses ecoreClass="xaml.ecore#//XamlAttribute">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute xaml.ecore#//XamlAttribute/useFlatValue"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute xaml.ecore#//XamlAttribute/groupName"/>
-    </genClasses>
-    <genClasses ecoreClass="xaml.ecore#//Annotation">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute xaml.ecore#//Annotation/source"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference xaml.ecore#//Annotation/details"/>
-    </genClasses>
-    <genClasses ecoreClass="xaml.ecore#//Comment">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute xaml.ecore#//Comment/content"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference xaml.ecore#//Comment/prev"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference xaml.ecore#//Comment/next"/>
-    </genClasses>
-  </genPackages>
-</genmodel:GenModel>
diff --git a/org.eclipse.xwt.tools.ui.xaml/plugin.properties b/org.eclipse.xwt.tools.ui.xaml/plugin.properties
deleted file mode 100755
index aadefd2..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/plugin.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     Soyatec - initial API and implementation
-###############################################################################
-
-# <copyright>
-# </copyright>
-#
-# $Id: plugin.properties,v 1.2 2010/06/18 00:16:29 yvyang Exp $
-
-pluginName = XAML Model (Incubation)
-providerName = Eclipse.org
diff --git a/org.eclipse.xwt.tools.ui.xaml/plugin.xml b/org.eclipse.xwt.tools.ui.xaml/plugin.xml
deleted file mode 100755
index 1724906..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/plugin.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-
-<!--
-    Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
-    All rights reserved. This program and the accompanying materials
-    are made available under the terms of the Eclipse Public License v1.0
-    which accompanies this distribution, and is available at
-    http://www.eclipse.org/legal/epl-v10.html
-   
-    Contributors:
-        Soyatec - initial API and implementation
- -->
-
-<plugin>
-
-   <extension point="org.eclipse.emf.ecore.generated_package">
-      <package
-            uri="http://www.eclipse.org/e4/xwt/tools/designer/xaml"
-            class="org.eclipse.xwt.tools.ui.xaml.XamlPackage"
-            genModel="model/xaml.genmodel"/>
-   </extension>
-</plugin>
diff --git a/org.eclipse.xwt.tools.ui.xaml/pom.xml b/org.eclipse.xwt.tools.ui.xaml/pom.xml
deleted file mode 100755
index 32492d3..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt.tools.ui.xaml</artifactId>
-	<version>0.10.0-SNAPSHOT</version>
-	<packaging>eclipse-plugin</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/AnnotatedObject.java b/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/AnnotatedObject.java
deleted file mode 100755
index 3c7fac0..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/AnnotatedObject.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.xaml;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc --> A representation of the model object '<em><b>Annotated Object</b></em>'. <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.AnnotatedObject#getAnnotations <em>Annotations</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getAnnotatedObject()
- * @model
- * @generated
- */
-public interface AnnotatedObject extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Annotations</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.xwt.tools.ui.xaml.Annotation}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Annotations</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>Annotations</em>' containment reference list.
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getAnnotatedObject_Annotations()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<Annotation> getAnnotations();
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @model
-	 * @generated
-	 */
-	Annotation getAnnotation(String source);
-
-} // AnnotatedObject
diff --git a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/Annotation.java b/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/Annotation.java
deleted file mode 100755
index 80163ef..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/Annotation.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.xaml;
-
-import org.eclipse.emf.common.util.EMap;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc --> A representation of the model object '<em><b>Annotation</b></em>'. <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.Annotation#getSource <em>Source</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.Annotation#getDetails <em>Details</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getAnnotation()
- * @model
- * @generated
- */
-public interface Annotation extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Source</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Source</em>' attribute isn't clear, there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Source</em>' attribute.
-	 * @see #setSource(String)
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getAnnotation_Source()
-	 * @model
-	 * @generated
-	 */
-	String getSource();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.xaml.Annotation#getSource <em>Source</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Source</em>' attribute.
-	 * @see #getSource()
-	 * @generated
-	 */
-	void setSource(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Details</b></em>' map.
-	 * The key is of type {@link java.lang.String},
-	 * and the value is of type {@link java.lang.String},
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Details</em>' map isn't clear, there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Details</em>' map.
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getAnnotation_Details()
-	 * @model mapType="org.eclipse.emf.ecore.EStringToStringMapEntry<org.eclipse.emf.ecore.EString, org.eclipse.emf.ecore.EString>"
-	 * @generated
-	 */
-	EMap<String, String> getDetails();
-
-} // Annotation
diff --git a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/Comment.java b/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/Comment.java
deleted file mode 100755
index aa7812c..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/Comment.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.xaml;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc --> A representation of the model object '<em><b>Comment</b></em>'. <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.Comment#getContent <em>Content</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.Comment#getPrev <em>Prev</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.Comment#getNext <em>Next</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getComment()
- * @model
- * @generated
- */
-public interface Comment extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Content</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Content</em>' attribute isn't clear, there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Content</em>' attribute.
-	 * @see #setContent(String)
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getComment_Content()
-	 * @model
-	 * @generated
-	 */
-	String getContent();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.xaml.Comment#getContent <em>Content</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Content</em>' attribute.
-	 * @see #getContent()
-	 * @generated
-	 */
-	void setContent(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Prev</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Prev</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>Prev</em>' reference.
-	 * @see #setPrev(XamlNode)
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getComment_Prev()
-	 * @model
-	 * @generated
-	 */
-	XamlNode getPrev();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.xaml.Comment#getPrev <em>Prev</em>}' reference.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Prev</em>' reference.
-	 * @see #getPrev()
-	 * @generated
-	 */
-	void setPrev(XamlNode value);
-
-	/**
-	 * Returns the value of the '<em><b>Next</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Next</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>Next</em>' reference.
-	 * @see #setNext(XamlNode)
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getComment_Next()
-	 * @model
-	 * @generated
-	 */
-	XamlNode getNext();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.xaml.Comment#getNext <em>Next</em>}' reference.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Next</em>' reference.
-	 * @see #getNext()
-	 * @generated
-	 */
-	void setNext(XamlNode value);
-
-} // Comment
diff --git a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlAttribute.java b/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlAttribute.java
deleted file mode 100755
index c24ce2a..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlAttribute.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.xaml;
-
-/**
- * 
- *If <True>, the value of attribute should be generated like:
- * 
- *<code><Composite dataContext="{StaticResource myData}"></code>
- * 
- *otherwise if <False>, the value should be like:
- * 
- *<code>
- * <Composite>
- * 		<Composite.dataContext>
- * 			<StaticResource>myData<StaticResource>
- * 		</Composite.dataContext>
- * </Composite>
- * </code>
- * 
- * <p>
- * The following features are supported:
- * <ul>
- * <li>{@link org.eclipse.xwt.tools.ui.xaml.XamlAttribute#isUseFlatValue <em>Use Flat Value</em>}</li>
- * </ul>
- * </p>
- * 
- * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlAttribute()
- * @model
- * @generated
- */
-public interface XamlAttribute extends XamlNode {
-	/**
-	 * Returns the value of the '<em><b>Use Flat Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Use Flat 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>Use Flat Value</em>' attribute.
-	 * @see #setUseFlatValue(boolean)
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlAttribute_UseFlatValue()
-	 * @model
-	 * @generated
-	 */
-	boolean isUseFlatValue();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.xaml.XamlAttribute#isUseFlatValue <em>Use Flat Value</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Use Flat Value</em>' attribute.
-	 * @see #isUseFlatValue()
-	 * @generated
-	 */
-	void setUseFlatValue(boolean value);
-
-	/**
-	 * Returns the value of the '<em><b>Group Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Group Name</em>' attribute isn't clear, there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Group Name</em>' attribute.
-	 * @see #setGroupName(String)
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlAttribute_GroupName()
-	 * @model
-	 * @generated
-	 */
-	String getGroupName();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.xaml.XamlAttribute#getGroupName <em>Group Name</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Group Name</em>' attribute.
-	 * @see #getGroupName()
-	 * @generated
-	 */
-	void setGroupName(String value);
-
-} // XamlAttribute
diff --git a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlDocument.java b/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlDocument.java
deleted file mode 100755
index a56ade2..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlDocument.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.xaml;
-
-import org.eclipse.emf.common.util.EMap;
-
-/**
- * <!-- begin-user-doc --> A representation of the model object '<em><b>Document</b></em>'. <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.XamlDocument#getRootElement <em>Root Element</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.XamlDocument#getDeclaredNamespaces <em>Declared Namespaces</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlDocument()
- * @model
- * @generated
- */
-public interface XamlDocument extends AnnotatedObject {
-	/**
-	 * Returns the value of the '<em><b>Root Element</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Root Element</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 Element</em>' containment reference.
-	 * @see #setRootElement(XamlElement)
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlDocument_RootElement()
-	 * @model containment="true" required="true"
-	 * @generated
-	 */
-	XamlElement getRootElement();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.xaml.XamlDocument#getRootElement <em>Root Element</em>}' containment reference.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Root Element</em>' containment reference.
-	 * @see #getRootElement()
-	 * @generated
-	 */
-	void setRootElement(XamlElement value);
-
-	/**
-	 * Returns the value of the '<em><b>Declared Namespaces</b></em>' map.
-	 * The key is of type {@link java.lang.String},
-	 * and the value is of type {@link java.lang.String},
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Declared Namespaces</em>' map isn't clear, there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Declared Namespaces</em>' map.
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlDocument_DeclaredNamespaces()
-	 * @model mapType="org.eclipse.emf.ecore.EStringToStringMapEntry<org.eclipse.emf.ecore.EString, org.eclipse.emf.ecore.EString>"
-	 * @generated
-	 */
-	EMap<String, String> getDeclaredNamespaces();
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @model
-	 * @generated
-	 */
-	void addDeclaredNamespace(String prefix, String namespace);
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @model
-	 * @generated
-	 */
-	String getDeclaredNamespace(String prefix);
-
-} // XamlDocument
diff --git a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlElement.java b/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlElement.java
deleted file mode 100755
index 5dc646c..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlElement.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.xaml;
-
-/**
- * <!-- begin-user-doc --> A representation of the model object '<em><b>Element</b></em>'. <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlElement()
- * @model
- * @generated
- */
-public interface XamlElement extends XamlNode {
-
-} // XamlElement
diff --git a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlFactory.java b/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlFactory.java
deleted file mode 100755
index 780d7c3..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlFactory.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.xaml;
-
-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.xwt.tools.ui.xaml.XamlPackage
- * @generated
- */
-public interface XamlFactory extends EFactory {
-	/**
-	 * The singleton instance of the factory.
-	 * <!-- begin-user-doc --> <!--
-	 * end-user-doc -->
-	 * @generated
-	 */
-	XamlFactory eINSTANCE = org.eclipse.xwt.tools.ui.xaml.impl.XamlFactoryImpl
-			.init();
-
-	/**
-	 * Returns a new object of class '<em>Document</em>'.
-	 * <!-- begin-user-doc
-	 * --> <!-- end-user-doc -->
-	 * @return a new object of class '<em>Document</em>'.
-	 * @generated
-	 */
-	XamlDocument createXamlDocument();
-
-	/**
-	 * Returns a new object of class '<em>Annotated Object</em>'. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @return a new object of class '<em>Annotated Object</em>'.
-	 * @generated
-	 */
-	AnnotatedObject createAnnotatedObject();
-
-	/**
-	 * Returns a new object of class '<em>Element</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Element</em>'.
-	 * @generated
-	 */
-	XamlElement createXamlElement();
-
-	/**
-	 * Returns a new object of class '<em>Attribute</em>'.
-	 * <!-- begin-user-doc
-	 * --> <!-- end-user-doc -->
-	 * @return a new object of class '<em>Attribute</em>'.
-	 * @generated
-	 */
-	XamlAttribute createXamlAttribute();
-
-	/**
-	 * Returns a new object of class '<em>Annotation</em>'.
-	 * <!-- begin-user-doc
-	 * --> <!-- end-user-doc -->
-	 * @return a new object of class '<em>Annotation</em>'.
-	 * @generated
-	 */
-	Annotation createAnnotation();
-
-	/**
-	 * Returns a new object of class '<em>Comment</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Comment</em>'.
-	 * @generated
-	 */
-	Comment createComment();
-
-	/**
-	 * Returns the package supported by this factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the package supported by this factory.
-	 * @generated
-	 */
-	XamlPackage getXamlPackage();
-
-	XamlElement createElement(String name, String ns);
-
-	XamlAttribute createAttribute(String name, String ns);
-
-} // XamlFactory
diff --git a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlNode.java b/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlNode.java
deleted file mode 100755
index f0f1834..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlNode.java
+++ /dev/null
@@ -1,316 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.xaml;
-
-import java.util.Map;
-import org.eclipse.emf.common.util.EList;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
-/**
- * <!-- begin-user-doc --> A representation of the model object '<em><b>Node</b></em>'. <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getName <em>Name</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getPrefix <em>Prefix</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getNamespace <em>Namespace</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getValue <em>Value</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getChildNodes <em>Child Nodes</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getAttributes <em>Attributes</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getId <em>Id</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getComments <em>Comments</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getWidget <em>Widget</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlNode()
- * @model abstract="true"
- * @generated
- */
-public interface XamlNode extends AnnotatedObject {
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear, there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see #setName(String)
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlNode_Name()
-	 * @model required="true"
-	 * @generated
-	 */
-	String getName();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getName <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Name</em>' attribute.
-	 * @see #getName()
-	 * @generated
-	 */
-	void setName(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Prefix</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Prefix</em>' attribute isn't clear, there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Prefix</em>' attribute.
-	 * @see #setPrefix(String)
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlNode_Prefix()
-	 * @model required="true"
-	 * @generated
-	 */
-	String getPrefix();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getPrefix <em>Prefix</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Prefix</em>' attribute.
-	 * @see #getPrefix()
-	 * @generated
-	 */
-	void setPrefix(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Namespace</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Namespace</em>' attribute isn't clear, there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Namespace</em>' attribute.
-	 * @see #setNamespace(String)
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlNode_Namespace()
-	 * @model required="true"
-	 * @generated
-	 */
-	String getNamespace();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getNamespace <em>Namespace</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Namespace</em>' attribute.
-	 * @see #getNamespace()
-	 * @generated
-	 */
-	void setNamespace(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Value</em>' attribute isn't clear, there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Value</em>' attribute.
-	 * @see #setValue(String)
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlNode_Value()
-	 * @model
-	 * @generated
-	 */
-	String getValue();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#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>Child Nodes</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.xwt.tools.ui.xaml.XamlElement}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Child Nodes</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>Child Nodes</em>' containment reference list.
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlNode_ChildNodes()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<XamlElement> getChildNodes();
-
-	/**
-	 * Returns the value of the '<em><b>Attributes</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.xwt.tools.ui.xaml.XamlAttribute}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Attributes</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>Attributes</em>' containment reference list.
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlNode_Attributes()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<XamlAttribute> getAttributes();
-
-	/**
-	 * 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.xwt.tools.ui.xaml.XamlPackage#getXamlNode_Id()
-	 * @model id="true"
-	 * @generated
-	 */
-	String getId();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#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>Comments</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.xwt.tools.ui.xaml.Comment}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Comments</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>Comments</em>' containment reference list.
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlNode_Comments()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<Comment> getComments();
-
-	/**
-	 * Returns the value of the '<em><b>Widget</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Widget</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Widget</em>' attribute.
-	 * @see #setWidget(Object)
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlNode_Widget()
-	 * @model
-	 * @generated
-	 */
-	Object getWidget();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getWidget <em>Widget</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Widget</em>' attribute.
-	 * @see #getWidget()
-	 * @generated
-	 */
-	void setWidget(Object value);
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @model
-	 * @generated
-	 */
-	XamlAttribute getAttribute(String name, String namespace);
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @model
-	 * @generated
-	 */
-	XamlAttribute getAttribute(String name);
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @model
-	 * @generated
-	 */
-	XamlElement getChild(String name, String namespace);
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @model
-	 * @generated
-	 */
-	XamlElement getChild(String name);
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @model
-	 * @generated
-	 */
-	XamlElement getChild(int index);
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @model kind="operation"
-	 * @generated
-	 */
-	XamlDocument getOwnerDocument();
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @model
-	 * @generated
-	 */
-	EList<String> attributeNames();
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @model
-	 * @generated
-	 */
-	EList<String> attributeNames(String namespace);
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @model
-	 * @generated
-	 */
-	EList<String> attributeNamespaces();
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @model kind="operation"
-	 * @generated
-	 */
-	XamlNode getParent();
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @model dataType="org.eclipse.xwt.tools.ui.xaml.Node" documentDataType="org.eclipse.xwt.tools.ui.xaml.Document"
-	 * @generated
-	 */
-	Node generate(Document document, Map<String, Object> options);
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @model kind="operation"
-	 * @generated
-	 */
-	String getFlatValue();
-
-} // XamlNode
diff --git a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlPackage.java b/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlPackage.java
deleted file mode 100755
index e108756..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlPackage.java
+++ /dev/null
@@ -1,1162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.xaml;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EDataType;
-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.xwt.tools.ui.xaml.XamlFactory
- * @model kind="package"
- * @generated
- */
-public interface XamlPackage extends EPackage {
-	/**
-	 * The package name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNAME = "xaml";
-
-	/**
-	 * The package namespace URI.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNS_URI = "http://www.eclipse.org/e4/xwt/tools/designer/xaml";
-
-	/**
-	 * The package namespace name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNS_PREFIX = "xaml";
-
-	/**
-	 * The singleton instance of the package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	XamlPackage eINSTANCE = org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl
-			.init();
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.xwt.tools.ui.xaml.impl.AnnotatedObjectImpl <em>Annotated Object</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.xwt.tools.ui.xaml.impl.AnnotatedObjectImpl
-	 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getAnnotatedObject()
-	 * @generated
-	 */
-	int ANNOTATED_OBJECT = 1;
-
-	/**
-	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ANNOTATED_OBJECT__ANNOTATIONS = 0;
-
-	/**
-	 * The number of structural features of the '<em>Annotated Object</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ANNOTATED_OBJECT_FEATURE_COUNT = 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlDocumentImpl <em>Document</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlDocumentImpl
-	 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getXamlDocument()
-	 * @generated
-	 */
-	int XAML_DOCUMENT = 0;
-
-	/**
-	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_DOCUMENT__ANNOTATIONS = ANNOTATED_OBJECT__ANNOTATIONS;
-
-	/**
-	 * The feature id for the '<em><b>Root Element</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_DOCUMENT__ROOT_ELEMENT = ANNOTATED_OBJECT_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Declared Namespaces</b></em>' map.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_DOCUMENT__DECLARED_NAMESPACES = ANNOTATED_OBJECT_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Document</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_DOCUMENT_FEATURE_COUNT = ANNOTATED_OBJECT_FEATURE_COUNT + 2;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlNodeImpl <em>Node</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlNodeImpl
-	 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getXamlNode()
-	 * @generated
-	 */
-	int XAML_NODE = 2;
-
-	/**
-	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_NODE__ANNOTATIONS = ANNOTATED_OBJECT__ANNOTATIONS;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_NODE__NAME = ANNOTATED_OBJECT_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Prefix</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_NODE__PREFIX = ANNOTATED_OBJECT_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Namespace</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_NODE__NAMESPACE = ANNOTATED_OBJECT_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_NODE__VALUE = ANNOTATED_OBJECT_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Child Nodes</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_NODE__CHILD_NODES = ANNOTATED_OBJECT_FEATURE_COUNT + 4;
-
-	/**
-	 * The feature id for the '<em><b>Attributes</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_NODE__ATTRIBUTES = ANNOTATED_OBJECT_FEATURE_COUNT + 5;
-
-	/**
-	 * The feature id for the '<em><b>Id</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_NODE__ID = ANNOTATED_OBJECT_FEATURE_COUNT + 6;
-
-	/**
-	 * The feature id for the '<em><b>Comments</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_NODE__COMMENTS = ANNOTATED_OBJECT_FEATURE_COUNT + 7;
-
-	/**
-	 * The feature id for the '<em><b>Widget</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_NODE__WIDGET = ANNOTATED_OBJECT_FEATURE_COUNT + 8;
-
-	/**
-	 * The number of structural features of the '<em>Node</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_NODE_FEATURE_COUNT = ANNOTATED_OBJECT_FEATURE_COUNT + 9;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlElementImpl <em>Element</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlElementImpl
-	 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getXamlElement()
-	 * @generated
-	 */
-	int XAML_ELEMENT = 3;
-
-	/**
-	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_ELEMENT__ANNOTATIONS = XAML_NODE__ANNOTATIONS;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_ELEMENT__NAME = XAML_NODE__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Prefix</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_ELEMENT__PREFIX = XAML_NODE__PREFIX;
-
-	/**
-	 * The feature id for the '<em><b>Namespace</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_ELEMENT__NAMESPACE = XAML_NODE__NAMESPACE;
-
-	/**
-	 * The feature id for the '<em><b>Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_ELEMENT__VALUE = XAML_NODE__VALUE;
-
-	/**
-	 * The feature id for the '<em><b>Child Nodes</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_ELEMENT__CHILD_NODES = XAML_NODE__CHILD_NODES;
-
-	/**
-	 * The feature id for the '<em><b>Attributes</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_ELEMENT__ATTRIBUTES = XAML_NODE__ATTRIBUTES;
-
-	/**
-	 * The feature id for the '<em><b>Id</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_ELEMENT__ID = XAML_NODE__ID;
-
-	/**
-	 * The feature id for the '<em><b>Comments</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_ELEMENT__COMMENTS = XAML_NODE__COMMENTS;
-
-	/**
-	 * The feature id for the '<em><b>Widget</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_ELEMENT__WIDGET = XAML_NODE__WIDGET;
-
-	/**
-	 * The number of structural features of the '<em>Element</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_ELEMENT_FEATURE_COUNT = XAML_NODE_FEATURE_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlAttributeImpl <em>Attribute</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlAttributeImpl
-	 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getXamlAttribute()
-	 * @generated
-	 */
-	int XAML_ATTRIBUTE = 4;
-
-	/**
-	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_ATTRIBUTE__ANNOTATIONS = XAML_NODE__ANNOTATIONS;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_ATTRIBUTE__NAME = XAML_NODE__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Prefix</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_ATTRIBUTE__PREFIX = XAML_NODE__PREFIX;
-
-	/**
-	 * The feature id for the '<em><b>Namespace</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_ATTRIBUTE__NAMESPACE = XAML_NODE__NAMESPACE;
-
-	/**
-	 * The feature id for the '<em><b>Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_ATTRIBUTE__VALUE = XAML_NODE__VALUE;
-
-	/**
-	 * The feature id for the '<em><b>Child Nodes</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_ATTRIBUTE__CHILD_NODES = XAML_NODE__CHILD_NODES;
-
-	/**
-	 * The feature id for the '<em><b>Attributes</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_ATTRIBUTE__ATTRIBUTES = XAML_NODE__ATTRIBUTES;
-
-	/**
-	 * The feature id for the '<em><b>Id</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_ATTRIBUTE__ID = XAML_NODE__ID;
-
-	/**
-	 * The feature id for the '<em><b>Comments</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_ATTRIBUTE__COMMENTS = XAML_NODE__COMMENTS;
-
-	/**
-	 * The feature id for the '<em><b>Widget</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_ATTRIBUTE__WIDGET = XAML_NODE__WIDGET;
-
-	/**
-	 * The feature id for the '<em><b>Use Flat Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_ATTRIBUTE__USE_FLAT_VALUE = XAML_NODE_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Group Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_ATTRIBUTE__GROUP_NAME = XAML_NODE_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Attribute</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int XAML_ATTRIBUTE_FEATURE_COUNT = XAML_NODE_FEATURE_COUNT + 2;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.xwt.tools.ui.xaml.impl.AnnotationImpl <em>Annotation</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.xwt.tools.ui.xaml.impl.AnnotationImpl
-	 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getAnnotation()
-	 * @generated
-	 */
-	int ANNOTATION = 5;
-
-	/**
-	 * The feature id for the '<em><b>Source</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ANNOTATION__SOURCE = 0;
-
-	/**
-	 * The feature id for the '<em><b>Details</b></em>' map.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ANNOTATION__DETAILS = 1;
-
-	/**
-	 * The number of structural features of the '<em>Annotation</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ANNOTATION_FEATURE_COUNT = 2;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.xwt.tools.ui.xaml.impl.CommentImpl <em>Comment</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.xwt.tools.ui.xaml.impl.CommentImpl
-	 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getComment()
-	 * @generated
-	 */
-	int COMMENT = 6;
-
-	/**
-	 * The feature id for the '<em><b>Content</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COMMENT__CONTENT = 0;
-
-	/**
-	 * The feature id for the '<em><b>Prev</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COMMENT__PREV = 1;
-
-	/**
-	 * The feature id for the '<em><b>Next</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COMMENT__NEXT = 2;
-
-	/**
-	 * The number of structural features of the '<em>Comment</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COMMENT_FEATURE_COUNT = 3;
-
-	/**
-	 * The meta object id for the '<em>Node</em>' data type.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.w3c.dom.Node
-	 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getNode()
-	 * @generated
-	 */
-	int NODE = 7;
-
-	/**
-	 * The meta object id for the '<em>Document</em>' data type.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.w3c.dom.Document
-	 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getDocument()
-	 * @generated
-	 */
-	int DOCUMENT = 8;
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.xwt.tools.ui.xaml.XamlDocument <em>Document</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Document</em>'.
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlDocument
-	 * @generated
-	 */
-	EClass getXamlDocument();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.xwt.tools.ui.xaml.XamlDocument#getRootElement <em>Root Element</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Root Element</em>'.
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlDocument#getRootElement()
-	 * @see #getXamlDocument()
-	 * @generated
-	 */
-	EReference getXamlDocument_RootElement();
-
-	/**
-	 * Returns the meta object for the map '{@link org.eclipse.xwt.tools.ui.xaml.XamlDocument#getDeclaredNamespaces <em>Declared Namespaces</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the map '<em>Declared Namespaces</em>'.
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlDocument#getDeclaredNamespaces()
-	 * @see #getXamlDocument()
-	 * @generated
-	 */
-	EReference getXamlDocument_DeclaredNamespaces();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.xwt.tools.ui.xaml.AnnotatedObject <em>Annotated Object</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Annotated Object</em>'.
-	 * @see org.eclipse.xwt.tools.ui.xaml.AnnotatedObject
-	 * @generated
-	 */
-	EClass getAnnotatedObject();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.xwt.tools.ui.xaml.AnnotatedObject#getAnnotations <em>Annotations</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Annotations</em>'.
-	 * @see org.eclipse.xwt.tools.ui.xaml.AnnotatedObject#getAnnotations()
-	 * @see #getAnnotatedObject()
-	 * @generated
-	 */
-	EReference getAnnotatedObject_Annotations();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode <em>Node</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Node</em>'.
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlNode
-	 * @generated
-	 */
-	EClass getXamlNode();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getName <em>Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlNode#getName()
-	 * @see #getXamlNode()
-	 * @generated
-	 */
-	EAttribute getXamlNode_Name();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getPrefix <em>Prefix</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Prefix</em>'.
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlNode#getPrefix()
-	 * @see #getXamlNode()
-	 * @generated
-	 */
-	EAttribute getXamlNode_Prefix();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getNamespace <em>Namespace</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Namespace</em>'.
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlNode#getNamespace()
-	 * @see #getXamlNode()
-	 * @generated
-	 */
-	EAttribute getXamlNode_Namespace();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getValue <em>Value</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Value</em>'.
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlNode#getValue()
-	 * @see #getXamlNode()
-	 * @generated
-	 */
-	EAttribute getXamlNode_Value();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getChildNodes <em>Child Nodes</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Child Nodes</em>'.
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlNode#getChildNodes()
-	 * @see #getXamlNode()
-	 * @generated
-	 */
-	EReference getXamlNode_ChildNodes();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getAttributes <em>Attributes</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Attributes</em>'.
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlNode#getAttributes()
-	 * @see #getXamlNode()
-	 * @generated
-	 */
-	EReference getXamlNode_Attributes();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getId <em>Id</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Id</em>'.
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlNode#getId()
-	 * @see #getXamlNode()
-	 * @generated
-	 */
-	EAttribute getXamlNode_Id();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getComments <em>Comments</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Comments</em>'.
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlNode#getComments()
-	 * @see #getXamlNode()
-	 * @generated
-	 */
-	EReference getXamlNode_Comments();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getWidget <em>Widget</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Widget</em>'.
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlNode#getWidget()
-	 * @see #getXamlNode()
-	 * @generated
-	 */
-	EAttribute getXamlNode_Widget();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.xwt.tools.ui.xaml.XamlElement <em>Element</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Element</em>'.
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlElement
-	 * @generated
-	 */
-	EClass getXamlElement();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.xwt.tools.ui.xaml.XamlAttribute <em>Attribute</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Attribute</em>'.
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlAttribute
-	 * @generated
-	 */
-	EClass getXamlAttribute();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.xaml.XamlAttribute#isUseFlatValue <em>Use Flat Value</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Use Flat Value</em>'.
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlAttribute#isUseFlatValue()
-	 * @see #getXamlAttribute()
-	 * @generated
-	 */
-	EAttribute getXamlAttribute_UseFlatValue();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.xaml.XamlAttribute#getGroupName <em>Group Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Group Name</em>'.
-	 * @see org.eclipse.xwt.tools.ui.xaml.XamlAttribute#getGroupName()
-	 * @see #getXamlAttribute()
-	 * @generated
-	 */
-	EAttribute getXamlAttribute_GroupName();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.xwt.tools.ui.xaml.Annotation <em>Annotation</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Annotation</em>'.
-	 * @see org.eclipse.xwt.tools.ui.xaml.Annotation
-	 * @generated
-	 */
-	EClass getAnnotation();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.xaml.Annotation#getSource <em>Source</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Source</em>'.
-	 * @see org.eclipse.xwt.tools.ui.xaml.Annotation#getSource()
-	 * @see #getAnnotation()
-	 * @generated
-	 */
-	EAttribute getAnnotation_Source();
-
-	/**
-	 * Returns the meta object for the map '{@link org.eclipse.xwt.tools.ui.xaml.Annotation#getDetails <em>Details</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the map '<em>Details</em>'.
-	 * @see org.eclipse.xwt.tools.ui.xaml.Annotation#getDetails()
-	 * @see #getAnnotation()
-	 * @generated
-	 */
-	EReference getAnnotation_Details();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.xwt.tools.ui.xaml.Comment <em>Comment</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Comment</em>'.
-	 * @see org.eclipse.xwt.tools.ui.xaml.Comment
-	 * @generated
-	 */
-	EClass getComment();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.xaml.Comment#getContent <em>Content</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Content</em>'.
-	 * @see org.eclipse.xwt.tools.ui.xaml.Comment#getContent()
-	 * @see #getComment()
-	 * @generated
-	 */
-	EAttribute getComment_Content();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.xwt.tools.ui.xaml.Comment#getPrev <em>Prev</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Prev</em>'.
-	 * @see org.eclipse.xwt.tools.ui.xaml.Comment#getPrev()
-	 * @see #getComment()
-	 * @generated
-	 */
-	EReference getComment_Prev();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.xwt.tools.ui.xaml.Comment#getNext <em>Next</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Next</em>'.
-	 * @see org.eclipse.xwt.tools.ui.xaml.Comment#getNext()
-	 * @see #getComment()
-	 * @generated
-	 */
-	EReference getComment_Next();
-
-	/**
-	 * Returns the meta object for data type '{@link org.w3c.dom.Node <em>Node</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for data type '<em>Node</em>'.
-	 * @see org.w3c.dom.Node
-	 * @model instanceClass="org.w3c.dom.Node"
-	 * @generated
-	 */
-	EDataType getNode();
-
-	/**
-	 * Returns the meta object for data type '{@link org.w3c.dom.Document <em>Document</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for data type '<em>Document</em>'.
-	 * @see org.w3c.dom.Document
-	 * @model instanceClass="org.w3c.dom.Document"
-	 * @generated
-	 */
-	EDataType getDocument();
-
-	/**
-	 * 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
-	 */
-	XamlFactory getXamlFactory();
-
-	/**
-	 * <!-- 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.xwt.tools.ui.xaml.impl.XamlDocumentImpl <em>Document</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlDocumentImpl
-		 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getXamlDocument()
-		 * @generated
-		 */
-		EClass XAML_DOCUMENT = eINSTANCE.getXamlDocument();
-
-		/**
-		 * The meta object literal for the '<em><b>Root Element</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference XAML_DOCUMENT__ROOT_ELEMENT = eINSTANCE
-				.getXamlDocument_RootElement();
-
-		/**
-		 * The meta object literal for the '<em><b>Declared Namespaces</b></em>' map feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference XAML_DOCUMENT__DECLARED_NAMESPACES = eINSTANCE
-				.getXamlDocument_DeclaredNamespaces();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.xwt.tools.ui.xaml.impl.AnnotatedObjectImpl <em>Annotated Object</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.xwt.tools.ui.xaml.impl.AnnotatedObjectImpl
-		 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getAnnotatedObject()
-		 * @generated
-		 */
-		EClass ANNOTATED_OBJECT = eINSTANCE.getAnnotatedObject();
-
-		/**
-		 * The meta object literal for the '<em><b>Annotations</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ANNOTATED_OBJECT__ANNOTATIONS = eINSTANCE
-				.getAnnotatedObject_Annotations();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlNodeImpl <em>Node</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlNodeImpl
-		 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getXamlNode()
-		 * @generated
-		 */
-		EClass XAML_NODE = eINSTANCE.getXamlNode();
-
-		/**
-		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute XAML_NODE__NAME = eINSTANCE.getXamlNode_Name();
-
-		/**
-		 * The meta object literal for the '<em><b>Prefix</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute XAML_NODE__PREFIX = eINSTANCE.getXamlNode_Prefix();
-
-		/**
-		 * The meta object literal for the '<em><b>Namespace</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute XAML_NODE__NAMESPACE = eINSTANCE.getXamlNode_Namespace();
-
-		/**
-		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute XAML_NODE__VALUE = eINSTANCE.getXamlNode_Value();
-
-		/**
-		 * The meta object literal for the '<em><b>Child Nodes</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference XAML_NODE__CHILD_NODES = eINSTANCE.getXamlNode_ChildNodes();
-
-		/**
-		 * The meta object literal for the '<em><b>Attributes</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference XAML_NODE__ATTRIBUTES = eINSTANCE.getXamlNode_Attributes();
-
-		/**
-		 * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute XAML_NODE__ID = eINSTANCE.getXamlNode_Id();
-
-		/**
-		 * The meta object literal for the '<em><b>Comments</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference XAML_NODE__COMMENTS = eINSTANCE.getXamlNode_Comments();
-
-		/**
-		 * The meta object literal for the '<em><b>Widget</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute XAML_NODE__WIDGET = eINSTANCE.getXamlNode_Widget();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlElementImpl <em>Element</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlElementImpl
-		 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getXamlElement()
-		 * @generated
-		 */
-		EClass XAML_ELEMENT = eINSTANCE.getXamlElement();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlAttributeImpl <em>Attribute</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlAttributeImpl
-		 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getXamlAttribute()
-		 * @generated
-		 */
-		EClass XAML_ATTRIBUTE = eINSTANCE.getXamlAttribute();
-
-		/**
-		 * The meta object literal for the '<em><b>Use Flat Value</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute XAML_ATTRIBUTE__USE_FLAT_VALUE = eINSTANCE
-				.getXamlAttribute_UseFlatValue();
-
-		/**
-		 * The meta object literal for the '<em><b>Group Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute XAML_ATTRIBUTE__GROUP_NAME = eINSTANCE
-				.getXamlAttribute_GroupName();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.xwt.tools.ui.xaml.impl.AnnotationImpl <em>Annotation</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.xwt.tools.ui.xaml.impl.AnnotationImpl
-		 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getAnnotation()
-		 * @generated
-		 */
-		EClass ANNOTATION = eINSTANCE.getAnnotation();
-
-		/**
-		 * The meta object literal for the '<em><b>Source</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute ANNOTATION__SOURCE = eINSTANCE.getAnnotation_Source();
-
-		/**
-		 * The meta object literal for the '<em><b>Details</b></em>' map feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ANNOTATION__DETAILS = eINSTANCE.getAnnotation_Details();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.xwt.tools.ui.xaml.impl.CommentImpl <em>Comment</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.xwt.tools.ui.xaml.impl.CommentImpl
-		 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getComment()
-		 * @generated
-		 */
-		EClass COMMENT = eINSTANCE.getComment();
-
-		/**
-		 * The meta object literal for the '<em><b>Content</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute COMMENT__CONTENT = eINSTANCE.getComment_Content();
-
-		/**
-		 * The meta object literal for the '<em><b>Prev</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference COMMENT__PREV = eINSTANCE.getComment_Prev();
-
-		/**
-		 * The meta object literal for the '<em><b>Next</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference COMMENT__NEXT = eINSTANCE.getComment_Next();
-
-		/**
-		 * The meta object literal for the '<em>Node</em>' data type.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.w3c.dom.Node
-		 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getNode()
-		 * @generated
-		 */
-		EDataType NODE = eINSTANCE.getNode();
-
-		/**
-		 * The meta object literal for the '<em>Document</em>' data type.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.w3c.dom.Document
-		 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getDocument()
-		 * @generated
-		 */
-		EDataType DOCUMENT = eINSTANCE.getDocument();
-
-	}
-
-} //XamlPackage
diff --git a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/AnnotatedObjectImpl.java b/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/AnnotatedObjectImpl.java
deleted file mode 100755
index 1411703..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/AnnotatedObjectImpl.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.xaml.impl;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.xwt.tools.ui.xaml.AnnotatedObject;
-import org.eclipse.xwt.tools.ui.xaml.Annotation;
-import org.eclipse.xwt.tools.ui.xaml.XamlPackage;
-
-/**
- * <!-- begin-user-doc --> An implementation of the model object '<em><b>Annotated Object</b></em>'. <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.AnnotatedObjectImpl#getAnnotations <em>Annotations</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class AnnotatedObjectImpl extends EObjectImpl implements AnnotatedObject {
-	/**
-	 * The cached value of the '{@link #getAnnotations() <em>Annotations</em>}' containment reference list.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getAnnotations()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<Annotation> annotations;
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AnnotatedObjectImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return XamlPackage.Literals.ANNOTATED_OBJECT;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList<Annotation> getAnnotations() {
-		if (annotations == null) {
-			annotations = new EObjectContainmentEList<Annotation>(
-					Annotation.class, this,
-					XamlPackage.ANNOTATED_OBJECT__ANNOTATIONS);
-		}
-		return annotations;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated NOT
-	 */
-	public Annotation getAnnotation(String source) {
-		EList<Annotation> annotations = getAnnotations();
-		for (Annotation annotation : annotations) {
-			if (source.equals(annotation.getSource())) {
-				return annotation;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd,
-			int featureID, NotificationChain msgs) {
-		switch (featureID) {
-		case XamlPackage.ANNOTATED_OBJECT__ANNOTATIONS:
-			return ((InternalEList<?>) getAnnotations()).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 XamlPackage.ANNOTATED_OBJECT__ANNOTATIONS:
-			return getAnnotations();
-		}
-		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 XamlPackage.ANNOTATED_OBJECT__ANNOTATIONS:
-			getAnnotations().clear();
-			getAnnotations()
-					.addAll((Collection<? extends Annotation>) newValue);
-			return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-		case XamlPackage.ANNOTATED_OBJECT__ANNOTATIONS:
-			getAnnotations().clear();
-			return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-		case XamlPackage.ANNOTATED_OBJECT__ANNOTATIONS:
-			return annotations != null && !annotations.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} // AnnotatedObjectImpl
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/AnnotationImpl.java b/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/AnnotationImpl.java
deleted file mode 100755
index 7e630e5..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/AnnotationImpl.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.xaml.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EMap;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EcorePackage;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.eclipse.emf.ecore.impl.EStringToStringMapEntryImpl;
-import org.eclipse.emf.ecore.util.EcoreEMap;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.xwt.tools.ui.xaml.Annotation;
-import org.eclipse.xwt.tools.ui.xaml.XamlPackage;
-
-/**
- * <!-- begin-user-doc --> An implementation of the model object '<em><b>Annotation</b></em>'. <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.AnnotationImpl#getSource <em>Source</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.AnnotationImpl#getDetails <em>Details</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class AnnotationImpl extends EObjectImpl implements Annotation {
-	/**
-	 * The default value of the '{@link #getSource() <em>Source</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getSource()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String SOURCE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getSource() <em>Source</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getSource()
-	 * @generated
-	 * @ordered
-	 */
-	protected String source = SOURCE_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getDetails() <em>Details</em>}' map.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getDetails()
-	 * @generated
-	 * @ordered
-	 */
-	protected EMap<String, String> details;
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AnnotationImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return XamlPackage.Literals.ANNOTATION;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getSource() {
-		return source;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setSource(String newSource) {
-		String oldSource = source;
-		source = newSource;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET,
-					XamlPackage.ANNOTATION__SOURCE, oldSource, source));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EMap<String, String> getDetails() {
-		if (details == null) {
-			details = new EcoreEMap<String, String>(
-					EcorePackage.Literals.ESTRING_TO_STRING_MAP_ENTRY,
-					EStringToStringMapEntryImpl.class, this,
-					XamlPackage.ANNOTATION__DETAILS);
-		}
-		return details;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd,
-			int featureID, NotificationChain msgs) {
-		switch (featureID) {
-		case XamlPackage.ANNOTATION__DETAILS:
-			return ((InternalEList<?>) getDetails())
-					.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 XamlPackage.ANNOTATION__SOURCE:
-			return getSource();
-		case XamlPackage.ANNOTATION__DETAILS:
-			if (coreType)
-				return getDetails();
-			else
-				return getDetails().map();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-		case XamlPackage.ANNOTATION__SOURCE:
-			setSource((String) newValue);
-			return;
-		case XamlPackage.ANNOTATION__DETAILS:
-			((EStructuralFeature.Setting) getDetails()).set(newValue);
-			return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-		case XamlPackage.ANNOTATION__SOURCE:
-			setSource(SOURCE_EDEFAULT);
-			return;
-		case XamlPackage.ANNOTATION__DETAILS:
-			getDetails().clear();
-			return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-		case XamlPackage.ANNOTATION__SOURCE:
-			return SOURCE_EDEFAULT == null ? source != null : !SOURCE_EDEFAULT
-					.equals(source);
-		case XamlPackage.ANNOTATION__DETAILS:
-			return details != null && !details.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(" (source: ");
-		result.append(source);
-		result.append(')');
-		return result.toString();
-	}
-
-} // AnnotationImpl
diff --git a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/CommentImpl.java b/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/CommentImpl.java
deleted file mode 100755
index cf6cb31..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/CommentImpl.java
+++ /dev/null
@@ -1,281 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.xaml.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.EObjectImpl;
-import org.eclipse.xwt.tools.ui.xaml.Comment;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-import org.eclipse.xwt.tools.ui.xaml.XamlPackage;
-
-/**
- * <!-- begin-user-doc --> An implementation of the model object '<em><b>Comment</b></em>'. <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.CommentImpl#getContent <em>Content</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.CommentImpl#getPrev <em>Prev</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.CommentImpl#getNext <em>Next</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class CommentImpl extends EObjectImpl implements Comment {
-	/**
-	 * The default value of the '{@link #getContent() <em>Content</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getContent()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String CONTENT_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getContent() <em>Content</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getContent()
-	 * @generated
-	 * @ordered
-	 */
-	protected String content = CONTENT_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getPrev() <em>Prev</em>}' reference.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getPrev()
-	 * @generated
-	 * @ordered
-	 */
-	protected XamlNode prev;
-
-	/**
-	 * The cached value of the '{@link #getNext() <em>Next</em>}' reference.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getNext()
-	 * @generated
-	 * @ordered
-	 */
-	protected XamlNode next;
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected CommentImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return XamlPackage.Literals.COMMENT;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getContent() {
-		return content;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setContent(String newContent) {
-		String oldContent = content;
-		content = newContent;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET,
-					XamlPackage.COMMENT__CONTENT, oldContent, content));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XamlNode getPrev() {
-		if (prev != null && prev.eIsProxy()) {
-			InternalEObject oldPrev = (InternalEObject) prev;
-			prev = (XamlNode) eResolveProxy(oldPrev);
-			if (prev != oldPrev) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE,
-							XamlPackage.COMMENT__PREV, oldPrev, prev));
-			}
-		}
-		return prev;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XamlNode basicGetPrev() {
-		return prev;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setPrev(XamlNode newPrev) {
-		XamlNode oldPrev = prev;
-		prev = newPrev;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET,
-					XamlPackage.COMMENT__PREV, oldPrev, prev));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XamlNode getNext() {
-		if (next != null && next.eIsProxy()) {
-			InternalEObject oldNext = (InternalEObject) next;
-			next = (XamlNode) eResolveProxy(oldNext);
-			if (next != oldNext) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE,
-							XamlPackage.COMMENT__NEXT, oldNext, next));
-			}
-		}
-		return next;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XamlNode basicGetNext() {
-		return next;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setNext(XamlNode newNext) {
-		XamlNode oldNext = next;
-		next = newNext;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET,
-					XamlPackage.COMMENT__NEXT, oldNext, next));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-		case XamlPackage.COMMENT__CONTENT:
-			return getContent();
-		case XamlPackage.COMMENT__PREV:
-			if (resolve)
-				return getPrev();
-			return basicGetPrev();
-		case XamlPackage.COMMENT__NEXT:
-			if (resolve)
-				return getNext();
-			return basicGetNext();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-		case XamlPackage.COMMENT__CONTENT:
-			setContent((String) newValue);
-			return;
-		case XamlPackage.COMMENT__PREV:
-			setPrev((XamlNode) newValue);
-			return;
-		case XamlPackage.COMMENT__NEXT:
-			setNext((XamlNode) newValue);
-			return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-		case XamlPackage.COMMENT__CONTENT:
-			setContent(CONTENT_EDEFAULT);
-			return;
-		case XamlPackage.COMMENT__PREV:
-			setPrev((XamlNode) null);
-			return;
-		case XamlPackage.COMMENT__NEXT:
-			setNext((XamlNode) null);
-			return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-		case XamlPackage.COMMENT__CONTENT:
-			return CONTENT_EDEFAULT == null ? content != null
-					: !CONTENT_EDEFAULT.equals(content);
-		case XamlPackage.COMMENT__PREV:
-			return prev != null;
-		case XamlPackage.COMMENT__NEXT:
-			return next != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy())
-			return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (content: ");
-		result.append(content);
-		result.append(')');
-		return result.toString();
-	}
-
-} // CommentImpl
diff --git a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlAttributeImpl.java b/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlAttributeImpl.java
deleted file mode 100755
index 9e73b57..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlAttributeImpl.java
+++ /dev/null
@@ -1,301 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.xaml.impl;
-
-import java.util.Map;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-import org.eclipse.xwt.tools.ui.xaml.XamlPackage;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * <!-- begin-user-doc --> An implementation of the model object '<em><b>Attribute</b></em>'. <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlAttributeImpl#isUseFlatValue <em>Use Flat Value</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlAttributeImpl#getGroupName <em>Group Name</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class XamlAttributeImpl extends XamlNodeImpl implements XamlAttribute {
-
-	/**
-	 * The default value of the '{@link #isUseFlatValue() <em>Use Flat Value</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #isUseFlatValue()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final boolean USE_FLAT_VALUE_EDEFAULT = false;
-	/**
-	 * The cached value of the '{@link #isUseFlatValue() <em>Use Flat Value</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #isUseFlatValue()
-	 * @generated
-	 * @ordered
-	 */
-	protected boolean useFlatValue = USE_FLAT_VALUE_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getGroupName() <em>Group Name</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getGroupName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String GROUP_NAME_EDEFAULT = null;
-	/**
-	 * The cached value of the '{@link #getGroupName() <em>Group Name</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getGroupName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String groupName = GROUP_NAME_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XamlAttributeImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return XamlPackage.Literals.XAML_ATTRIBUTE;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean isUseFlatValue() {
-		return useFlatValue;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setUseFlatValue(boolean newUseFlatValue) {
-		boolean oldUseFlatValue = useFlatValue;
-		useFlatValue = newUseFlatValue;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET,
-					XamlPackage.XAML_ATTRIBUTE__USE_FLAT_VALUE,
-					oldUseFlatValue, useFlatValue));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getGroupName() {
-		return groupName;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated NOT
-	 */
-	public void setGroupName(String newGroupName) {
-		if (equals(groupName, newGroupName)) {
-			return;
-		}
-		String oldGroupName = groupName;
-		groupName = newGroupName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET,
-					XamlPackage.XAML_ATTRIBUTE__GROUP_NAME, oldGroupName,
-					groupName));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-		case XamlPackage.XAML_ATTRIBUTE__USE_FLAT_VALUE:
-			return isUseFlatValue();
-		case XamlPackage.XAML_ATTRIBUTE__GROUP_NAME:
-			return getGroupName();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-		case XamlPackage.XAML_ATTRIBUTE__USE_FLAT_VALUE:
-			setUseFlatValue((Boolean) newValue);
-			return;
-		case XamlPackage.XAML_ATTRIBUTE__GROUP_NAME:
-			setGroupName((String) newValue);
-			return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-		case XamlPackage.XAML_ATTRIBUTE__USE_FLAT_VALUE:
-			setUseFlatValue(USE_FLAT_VALUE_EDEFAULT);
-			return;
-		case XamlPackage.XAML_ATTRIBUTE__GROUP_NAME:
-			setGroupName(GROUP_NAME_EDEFAULT);
-			return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-		case XamlPackage.XAML_ATTRIBUTE__USE_FLAT_VALUE:
-			return useFlatValue != USE_FLAT_VALUE_EDEFAULT;
-		case XamlPackage.XAML_ATTRIBUTE__GROUP_NAME:
-			return GROUP_NAME_EDEFAULT == null ? groupName != null
-					: !GROUP_NAME_EDEFAULT.equals(groupName);
-		}
-		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(" (useFlatValue: ");
-		result.append(useFlatValue);
-		result.append(", groupName: ");
-		result.append(groupName);
-		result.append(')');
-		return result.toString();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.tools.designer.xaml.Generation#generate(org.w3c.dom.Document, org.w3c.dom.Node, java.util.Map)
-	 */
-	public Node generate(Document document, Map<String, Object> options) {
-		if (document == null) {
-			return null;
-		}
-		Node attrNode = null;
-		String name = getName();
-		String value = getValue();
-		if (value != null) {// Just create a simple attribute.
-			attrNode = document.createAttributeNS(getNamespace(),
-					getQualifiedName());
-			attrNode.setNodeValue(value);
-		} else if (isUseFlatValue()) {
-			attrNode = document.createAttributeNS(getNamespace(),
-					getQualifiedName());
-			attrNode.setNodeValue("{" + getFlatValue() + "}");
-		} else if (!getAttributes().isEmpty() || !getChildNodes().isEmpty()) {
-			// 1. <Control.layoutData><GridData/></Control.layoutData>
-			// 2. <TableViewer.table.layoutData><GridData/></TableViewer.table.layoutData>
-			// 3. <TableViewer.table HeadVisible="false"/>
-			String parentName = null;
-			XamlNode parentElement = null;
-			if (getParent() != null) {
-				parentElement = getParent();
-				while (parentElement != null) {
-					if (parentName == null) {
-						parentName = parentElement.getName();
-					} else {
-						parentName = parentElement.getName() + "." + parentName;
-					}
-					if (parentElement instanceof XamlElement) {
-						break;
-					}
-					parentElement = parentElement.getParent();
-				}
-			}
-			if (parentName != null) {
-				name = parentName + "." + name;
-			}
-			attrNode = document.createElementNS(namespace,
-					getQualifiedName(name));
-			for (XamlAttribute childAttr : getAttributes()) {
-				Node newAttr = childAttr.generate(document, options);
-				if (newAttr == null) {
-					continue;
-				}
-				if (newAttr instanceof Attr) {
-					((Element) attrNode).setAttributeNode((Attr) newAttr);
-				} else {
-					((Element) attrNode).appendChild(newAttr);
-				}
-			}
-			for (XamlElement childEle : getChildNodes()) {
-				Node newChild = childEle.generate(document, options);
-				if (newChild != null) {
-					attrNode.appendChild(newChild);
-				}
-			}
-		}
-		return attrNode;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.tools.designer.xaml.XamlNode#getFlatValue()
-	 */
-	public String getFlatValue() {
-		EList<XamlElement> childNodes = getChildNodes();
-		if (childNodes.isEmpty()) {
-			return getValue();
-		}
-		return getChildNodes().get(0).getFlatValue();
-	}
-
-} // XamlAttributeImpl
diff --git a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlDocumentImpl.java b/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlDocumentImpl.java
deleted file mode 100755
index 0f08d1a..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlDocumentImpl.java
+++ /dev/null
@@ -1,252 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.xaml.impl;
-
-import java.util.Map;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EMap;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.EcorePackage;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.EStringToStringMapEntryImpl;
-import org.eclipse.emf.ecore.util.EcoreEMap;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlPackage;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
-/**
- * <!-- begin-user-doc --> An implementation of the model object '<em><b>Document</b></em>'. <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlDocumentImpl#getRootElement <em>Root Element</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlDocumentImpl#getDeclaredNamespaces <em>Declared Namespaces</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class XamlDocumentImpl extends AnnotatedObjectImpl implements
-		XamlDocument {
-	/**
-	 * The cached value of the '{@link #getRootElement() <em>Root Element</em>}' containment reference.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getRootElement()
-	 * @generated
-	 * @ordered
-	 */
-	protected XamlElement rootElement;
-
-	/**
-	 * The cached value of the '{@link #getDeclaredNamespaces() <em>Declared Namespaces</em>}' map.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getDeclaredNamespaces()
-	 * @generated
-	 * @ordered
-	 */
-	protected EMap<String, String> declaredNamespaces;
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XamlDocumentImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return XamlPackage.Literals.XAML_DOCUMENT;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XamlElement getRootElement() {
-		return rootElement;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetRootElement(XamlElement newRootElement,
-			NotificationChain msgs) {
-		XamlElement oldRootElement = rootElement;
-		rootElement = newRootElement;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this,
-					Notification.SET, XamlPackage.XAML_DOCUMENT__ROOT_ELEMENT,
-					oldRootElement, newRootElement);
-			if (msgs == null)
-				msgs = notification;
-			else
-				msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setRootElement(XamlElement newRootElement) {
-		if (newRootElement != rootElement) {
-			NotificationChain msgs = null;
-			if (rootElement != null)
-				msgs = ((InternalEObject) rootElement).eInverseRemove(this,
-						EOPPOSITE_FEATURE_BASE
-								- XamlPackage.XAML_DOCUMENT__ROOT_ELEMENT,
-						null, msgs);
-			if (newRootElement != null)
-				msgs = ((InternalEObject) newRootElement).eInverseAdd(this,
-						EOPPOSITE_FEATURE_BASE
-								- XamlPackage.XAML_DOCUMENT__ROOT_ELEMENT,
-						null, msgs);
-			msgs = basicSetRootElement(newRootElement, msgs);
-			if (msgs != null)
-				msgs.dispatch();
-		} else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET,
-					XamlPackage.XAML_DOCUMENT__ROOT_ELEMENT, newRootElement,
-					newRootElement));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EMap<String, String> getDeclaredNamespaces() {
-		if (declaredNamespaces == null) {
-			declaredNamespaces = new EcoreEMap<String, String>(
-					EcorePackage.Literals.ESTRING_TO_STRING_MAP_ENTRY,
-					EStringToStringMapEntryImpl.class, this,
-					XamlPackage.XAML_DOCUMENT__DECLARED_NAMESPACES);
-		}
-		return declaredNamespaces;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated NOT
-	 */
-	public void addDeclaredNamespace(String prefix, String namespace) {
-		getDeclaredNamespaces().put(prefix, namespace);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated NOT
-	 */
-	public String getDeclaredNamespace(String prefix) {
-		return getDeclaredNamespaces().get(prefix);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd,
-			int featureID, NotificationChain msgs) {
-		switch (featureID) {
-		case XamlPackage.XAML_DOCUMENT__ROOT_ELEMENT:
-			return basicSetRootElement(null, msgs);
-		case XamlPackage.XAML_DOCUMENT__DECLARED_NAMESPACES:
-			return ((InternalEList<?>) getDeclaredNamespaces()).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 XamlPackage.XAML_DOCUMENT__ROOT_ELEMENT:
-			return getRootElement();
-		case XamlPackage.XAML_DOCUMENT__DECLARED_NAMESPACES:
-			if (coreType)
-				return getDeclaredNamespaces();
-			else
-				return getDeclaredNamespaces().map();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-		case XamlPackage.XAML_DOCUMENT__ROOT_ELEMENT:
-			setRootElement((XamlElement) newValue);
-			return;
-		case XamlPackage.XAML_DOCUMENT__DECLARED_NAMESPACES:
-			((EStructuralFeature.Setting) getDeclaredNamespaces())
-					.set(newValue);
-			return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-		case XamlPackage.XAML_DOCUMENT__ROOT_ELEMENT:
-			setRootElement((XamlElement) null);
-			return;
-		case XamlPackage.XAML_DOCUMENT__DECLARED_NAMESPACES:
-			getDeclaredNamespaces().clear();
-			return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-		case XamlPackage.XAML_DOCUMENT__ROOT_ELEMENT:
-			return rootElement != null;
-		case XamlPackage.XAML_DOCUMENT__DECLARED_NAMESPACES:
-			return declaredNamespaces != null && !declaredNamespaces.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} // XamlDocumentImpl
diff --git a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlElementImpl.java b/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlElementImpl.java
deleted file mode 100755
index b0aca7f..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlElementImpl.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.xaml.impl;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlPackage;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.Text;
-
-/**
- * <!-- begin-user-doc --> An implementation of the model object ' <em><b>Element</b></em>'. <!-- end-user-doc -->
- * <p>
- * </p>
- *
- * @generated
- */
-public class XamlElementImpl extends XamlNodeImpl implements XamlElement {
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XamlElementImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return XamlPackage.Literals.XAML_ELEMENT;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.tools.designer.xaml.Generation#generate(org.w3c.dom.Document, org.w3c.dom.Node, java.util.Map)
-	 */
-	public Node generate(Document document, Map<String, Object> options) {
-		if (document == null) {
-			return null;
-		}
-		String prefix = getPrefix();
-		if (prefix != null) {
-			Element root = document.getDocumentElement();
-			Attr prefixNode = root.getAttributeNode(prefix);
-			if (prefixNode == null) {
-				root.setAttribute("xmlns:" + prefix, namespace);
-				if (getOwnerDocument() != null) {
-					getOwnerDocument().addDeclaredNamespace(prefix, namespace);
-				}
-			}
-		}
-		String qualifiedName = prefix == null ? getName() : prefix + ":"
-				+ getName();
-		String namespace = getNamespace();
-		Element node = document.createElementNS(namespace, qualifiedName);
-		for (XamlAttribute attribute : getAttributes()) {
-			Node newAttr = attribute.generate(document, options);
-			if (newAttr == null) {
-				continue;
-			}
-			if (newAttr instanceof Attr) {
-				node.setAttributeNode((Attr) newAttr);
-			} else if (newAttr.getChildNodes().getLength() != 0
-					|| newAttr.getAttributes().getLength() != 0) {
-				node.appendChild(newAttr);
-			}
-		}
-		for (XamlElement child : getChildNodes()) {
-			Node newChild = child.generate(document, options);
-			if (newChild != null) {
-				node.appendChild(newChild);
-			}
-		}
-		String value = getValue();
-		if (value != null) {
-			generateContent(document, node, value);
-		}
-		return node;
-	}
-
-	protected void generateContent(Document document, Node node, String value) {
-		String content = getContent(node);
-		if (equals(value, content)) {
-			return;
-		}
-		value = value == null ? "" : value;
-		if (content != null) {
-			List<Text> contentNodes = getContentNodes(node);
-			for (Text text : contentNodes) {
-				String nodeValue = text.getNodeValue();
-				if (nodeValue == null || filter(nodeValue).length() == 0) {
-					continue;
-				}
-				text.setData(value);
-			}
-		} else {
-			Text textNode = document.createTextNode(value == null ? "" : value);
-			node.appendChild(textNode);
-		}
-	}
-
-	/**
-	 * Return content of a Node, "<j:String>hello world</j:String>"
-	 */
-	protected String getContent(Node parent) {
-		List<Text> textNodes = getContentNodes(parent);
-		if (textNodes.isEmpty()) {
-			return null;
-		}
-		StringBuilder content = new StringBuilder();
-		for (Text text : textNodes) {
-			String value = text.getNodeValue();
-			if (value == null) {
-				continue;
-			}
-			value = filter(value);
-			if (value.length() != 0) {
-				content.append(value);
-			}
-		}
-		return content.length() > 0 ? content.toString() : null;
-	}
-
-	protected List<Text> getContentNodes(Node node) {
-		NodeList childNodes = node.getChildNodes();
-		int length = childNodes.getLength();
-		if (length == 0) {
-			return Collections.emptyList();
-		}
-		List<Text> contentTexts = new ArrayList<Text>();
-		for (int i = 0; i < length; i++) {
-			Node item = childNodes.item(i);
-			if (item.getNodeType() == Node.TEXT_NODE) {
-				contentTexts.add((Text) item);
-			}
-		}
-		return contentTexts;
-	}
-
-	protected String filter(String value) {
-		value = value.replace("\n", "");
-		value = value.replace("\t", "");
-		value = value.replace("\r", "");
-		return value;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.tools.designer.xaml.XamlNode#getFlatValue()
-	 */
-	public String getFlatValue() {
-		StringBuilder result = new StringBuilder();
-		String p = getPrefix();
-		if (p != null) {
-			result.append(p);
-			result.append(":");
-		}
-		result.append(name);
-		EList<XamlAttribute> attributes = getAttributes();
-		EList<XamlElement> children = getChildNodes();
-		if (!attributes.isEmpty()) {
-			result.append(" ");
-			for (int i = 0; i < attributes.size(); i++) {
-				XamlAttribute attr = attributes.get(i);
-				result.append(attr.getName());
-				result.append("=");
-				String flatValue = attr.getFlatValue();
-				if (flatValue == null) {
-					flatValue = "";
-				}
-				String value = flatValue.trim();
-				if (value.indexOf(" ") != -1) {
-					result.append("{" + value + "}");
-				} else {
-					result.append(value);
-				}
-				if (i + 1 < attributes.size()) {
-					result.append(", ");
-				}
-			}
-		} else if (!children.isEmpty()) {
-			for (XamlElement child : children) {
-				String flatValue = child.getFlatValue();
-				if (flatValue == null) {
-					continue;
-				}
-				result.append(" ");
-				result.append(flatValue);
-			}
-		} else if (value != null) {
-			result.append(" ");
-			result.append(value);
-		}
-		return result.toString();
-	}
-
-} // XamlElementImpl
diff --git a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlFactoryImpl.java b/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlFactoryImpl.java
deleted file mode 100755
index 8df6a57..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlFactoryImpl.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.xaml.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.xwt.tools.ui.xaml.*;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
-/**
- * <!-- begin-user-doc --> An implementation of the model <b>Factory</b>. <!-- end-user-doc -->
- * @generated
- */
-public class XamlFactoryImpl extends EFactoryImpl implements XamlFactory {
-	/**
-	 * Creates the default factory implementation.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static XamlFactory init() {
-		try {
-			XamlFactory theXamlFactory = (XamlFactory) EPackage.Registry.INSTANCE
-					.getEFactory("http://www.eclipse.org/e4/xwt/tools/designer/xaml");
-			if (theXamlFactory != null) {
-				return theXamlFactory;
-			}
-		} catch (Exception exception) {
-			EcorePlugin.INSTANCE.log(exception);
-		}
-		return new XamlFactoryImpl();
-	}
-
-	/**
-	 * Creates an instance of the factory.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XamlFactoryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EObject create(EClass eClass) {
-		switch (eClass.getClassifierID()) {
-		case XamlPackage.XAML_DOCUMENT:
-			return createXamlDocument();
-		case XamlPackage.ANNOTATED_OBJECT:
-			return createAnnotatedObject();
-		case XamlPackage.XAML_ELEMENT:
-			return createXamlElement();
-		case XamlPackage.XAML_ATTRIBUTE:
-			return createXamlAttribute();
-		case XamlPackage.ANNOTATION:
-			return createAnnotation();
-		case XamlPackage.COMMENT:
-			return createComment();
-		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 XamlPackage.NODE:
-			return createNodeFromString(eDataType, initialValue);
-		case XamlPackage.DOCUMENT:
-			return createDocumentFromString(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 XamlPackage.NODE:
-			return convertNodeToString(eDataType, instanceValue);
-		case XamlPackage.DOCUMENT:
-			return convertDocumentToString(eDataType, instanceValue);
-		default:
-			throw new IllegalArgumentException("The datatype '"
-					+ eDataType.getName() + "' is not a valid classifier");
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XamlDocument createXamlDocument() {
-		XamlDocumentImpl xamlDocument = new XamlDocumentImpl();
-		return xamlDocument;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AnnotatedObject createAnnotatedObject() {
-		AnnotatedObjectImpl annotatedObject = new AnnotatedObjectImpl();
-		return annotatedObject;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XamlElement createXamlElement() {
-		XamlElementImpl xamlElement = new XamlElementImpl();
-		return xamlElement;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XamlAttribute createXamlAttribute() {
-		XamlAttributeImpl xamlAttribute = new XamlAttributeImpl();
-		return xamlAttribute;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Annotation createAnnotation() {
-		AnnotationImpl annotation = new AnnotationImpl();
-		return annotation;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Comment createComment() {
-		CommentImpl comment = new CommentImpl();
-		return comment;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Node createNodeFromString(EDataType eDataType, String initialValue) {
-		return (Node) super.createFromString(eDataType, initialValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String convertNodeToString(EDataType eDataType, Object instanceValue) {
-		return super.convertToString(eDataType, instanceValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Document createDocumentFromString(EDataType eDataType,
-			String initialValue) {
-		return (Document) super.createFromString(eDataType, initialValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String convertDocumentToString(EDataType eDataType,
-			Object instanceValue) {
-		return super.convertToString(eDataType, instanceValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XamlPackage getXamlPackage() {
-		return (XamlPackage) getEPackage();
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @deprecated
-	 * @generated
-	 */
-	@Deprecated
-	public static XamlPackage getPackage() {
-		return XamlPackage.eINSTANCE;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.tools.designer.xaml.XamlFactory#createAttribute(java.lang.String, java.lang.String)
-	 */
-	public XamlAttribute createAttribute(String name, String ns) {
-		XamlAttribute attr = createXamlAttribute();
-		attr.setName(name);
-		attr.setNamespace(ns);
-		return attr;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.soyatec.tools.designer.xaml.XamlFactory#createElement(java.lang.String, java.lang.String)
-	 */
-	public XamlElement createElement(String name, String ns) {
-		XamlElement ele = createXamlElement();
-		ele.setName(name);
-		ele.setNamespace(ns);
-		return ele;
-	}
-
-} // XamlFactoryImpl
diff --git a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlNodeImpl.java b/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlNodeImpl.java
deleted file mode 100755
index 38649bd..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlNodeImpl.java
+++ /dev/null
@@ -1,808 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.xaml.impl;
-
-import java.util.Collection;
-import java.util.Map;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.BasicEList;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.common.util.EMap;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.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.xwt.tools.ui.xaml.Comment;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-import org.eclipse.xwt.tools.ui.xaml.XamlPackage;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
-/**
- * <!-- begin-user-doc --> An implementation of the model object '<em><b>Node</b></em>'. <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlNodeImpl#getName <em>Name</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlNodeImpl#getPrefix <em>Prefix</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlNodeImpl#getNamespace <em>Namespace</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlNodeImpl#getValue <em>Value</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlNodeImpl#getChildNodes <em>Child Nodes</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlNodeImpl#getAttributes <em>Attributes</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlNodeImpl#getId <em>Id</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlNodeImpl#getComments <em>Comments</em>}</li>
- *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlNodeImpl#getWidget <em>Widget</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public abstract class XamlNodeImpl extends AnnotatedObjectImpl implements
-		XamlNode {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getPrefix() <em>Prefix</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getPrefix()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String PREFIX_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getPrefix() <em>Prefix</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getPrefix()
-	 * @generated
-	 * @ordered
-	 */
-	protected String prefix = PREFIX_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getNamespace() <em>Namespace</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getNamespace()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAMESPACE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getNamespace() <em>Namespace</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getNamespace()
-	 * @generated
-	 * @ordered
-	 */
-	protected String namespace = NAMESPACE_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getValue()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final 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 cached value of the '{@link #getChildNodes() <em>Child Nodes</em>}' containment reference list.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getChildNodes()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XamlElement> childNodes;
-
-	/**
-	 * The cached value of the '{@link #getAttributes() <em>Attributes</em>}' containment reference list.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getAttributes()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XamlAttribute> attributes;
-
-	/**
-	 * 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 #getComments() <em>Comments</em>}' containment reference list.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #getComments()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<Comment> comments;
-
-	/**
-	 * The default value of the '{@link #getWidget() <em>Widget</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getWidget()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Object WIDGET_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getWidget() <em>Widget</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getWidget()
-	 * @generated
-	 * @ordered
-	 */
-	protected Object widget = WIDGET_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XamlNodeImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return XamlPackage.Literals.XAML_NODE;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated NOT
-	 */
-	public void setName(String newName) {
-		if (equals(name, newName)) {
-			return;
-		}
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET,
-					XamlPackage.XAML_NODE__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated NOT
-	 */
-	public String getPrefix() {
-		if (prefix == null && namespace != null && getOwnerDocument() != null) {
-			EMap<String, String> declaredNamespaces = getOwnerDocument()
-					.getDeclaredNamespaces();
-			for (String key : declaredNamespaces.keySet()) {
-				if (namespace.equals(declaredNamespaces.get(key))) {
-					prefix = key;
-					break;
-				}
-			}
-		}
-		return prefix;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated NOT
-	 */
-	public void setPrefix(String newPrefix) {
-		if (equals(prefix, newPrefix)) {
-			return;
-		}
-		String oldPrefix = prefix;
-		prefix = newPrefix;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET,
-					XamlPackage.XAML_NODE__PREFIX, oldPrefix, prefix));
-	}
-
-	boolean equals(Object source, Object target) {
-		return (source == null && target == null)
-				|| (source != null && source.equals(target));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getNamespace() {
-		return namespace;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated NOT
-	 */
-	public void setNamespace(String newNamespace) {
-		if (equals(name, newNamespace)) {
-			return;
-		}
-		String oldNamespace = namespace;
-		namespace = newNamespace;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET,
-					XamlPackage.XAML_NODE__NAMESPACE, oldNamespace, namespace));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getValue() {
-		return value;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated NOT
-	 */
-	public void setValue(String newValue) {
-		if (equals(value, newValue)) {
-			return;
-		}
-		String oldValue = value;
-		value = newValue;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET,
-					XamlPackage.XAML_NODE__VALUE, oldValue, value));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList<XamlElement> getChildNodes() {
-		if (childNodes == null) {
-			childNodes = new EObjectContainmentEList<XamlElement>(
-					XamlElement.class, this, XamlPackage.XAML_NODE__CHILD_NODES);
-		}
-		return childNodes;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList<XamlAttribute> getAttributes() {
-		if (attributes == null) {
-			attributes = new EObjectContainmentEList<XamlAttribute>(
-					XamlAttribute.class, this,
-					XamlPackage.XAML_NODE__ATTRIBUTES);
-		}
-		return attributes;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getId() {
-		return id;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated NOT
-	 */
-	public void setId(String newId) {
-		if (equals(id, newId)) {
-			return;
-		}
-		String oldId = id;
-		id = newId;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET,
-					XamlPackage.XAML_NODE__ID, oldId, id));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList<Comment> getComments() {
-		if (comments == null) {
-			comments = new EObjectContainmentEList<Comment>(Comment.class,
-					this, XamlPackage.XAML_NODE__COMMENTS);
-		}
-		return comments;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object getWidget() {
-		return widget;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setWidget(Object newWidget) {
-		Object oldWidget = widget;
-		widget = newWidget;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET,
-					XamlPackage.XAML_NODE__WIDGET, oldWidget, widget));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated NOT
-	 */
-	public XamlAttribute getAttribute(String name, String namespace) {
-		if (name == null || namespace == null) {
-			return null;
-		}
-		EList<XamlAttribute> attributes = getAttributes();
-		for (XamlAttribute attribute : attributes) {
-			String attrName = attribute.getName();
-			String attrNS = attribute.getNamespace();
-			if (name.equalsIgnoreCase(attrName)
-					&& namespace.equalsIgnoreCase(attrNS)) {
-				return attribute;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated NOT
-	 */
-	public XamlAttribute getAttribute(String name) {
-		if (name == null) {
-			return null;
-		}
-		return getAttribute(name, namespace);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated NOT
-	 */
-	public XamlElement getChild(String name, String namespace) {
-		if (name == null) {
-			return null;
-		}
-		EList<XamlElement> children = getChildren(namespace);
-		for (XamlElement element : children) {
-			if (name.equalsIgnoreCase(element.getName())
-					&& equals(namespace, element.getNamespace())) {
-				return element;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated NOT
-	 */
-	public EList<XamlElement> getChildren(String namespace) {
-		EList<XamlElement> children = new BasicEList<XamlElement>();
-		EList<XamlElement> all = getChildNodes();
-		for (XamlElement element : all) {
-			if ((namespace == null && element.getNamespace() == null)
-					|| (namespace != null && namespace.equals(element
-							.getNamespace()))) {
-				children.add(element);
-			}
-		}
-		return children;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated NOT
-	 */
-	public XamlElement getChild(String name) {
-		if (name == null) {
-			return null;
-		}
-		String ns = getNamespace();
-		XamlDocument ownerDocument = getOwnerDocument();
-		if (ownerDocument != null) {
-			ns = ownerDocument.getDeclaredNamespace(null);
-		}
-		return getChild(name, ns);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 */
-	public XamlElement getChild(int index) {
-		try {
-			return getChildNodes().get(index);
-		} catch (Exception e) {
-		}
-		return null;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated NOT
-	 */
-	public XamlDocument getOwnerDocument() {
-		EObject container = eContainer();
-		while (container != null) {
-			if (container instanceof XamlDocument) {
-				return (XamlDocument) container;
-			}
-			container = container.eContainer();
-		}
-		return null;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated NOT
-	 */
-	public EList<String> attributeNames() {
-		EList<String> attributeNames = new BasicEList<String>();
-		EList<XamlAttribute> attributes = getAttributes();
-		for (XamlAttribute attribute : attributes) {
-			String name = attribute.getName();
-			if (!attributeNames.contains(name)) {
-				attributeNames.add(name);
-			}
-		}
-		return attributeNames;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 */
-	public EList<String> attributeNames(String namespace) {
-		EList<String> attributeNames = new BasicEList<String>();
-		if (namespace != null) {
-			EList<XamlAttribute> attributes = getAttributes();
-			for (XamlAttribute attribute : attributes) {
-				String name = attribute.getName();
-				String ns = attribute.getNamespace();
-				if (!attributeNames.contains(name) && namespace.equals(ns)) {
-					attributeNames.add(name);
-				}
-			}
-		}
-		return attributeNames;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 */
-	public EList<String> attributeNamespaces() {
-		EList<String> attributeNamespaces = new BasicEList<String>();
-		EList<XamlAttribute> attributes = getAttributes();
-		for (XamlAttribute attribute : attributes) {
-			String ns = attribute.getNamespace();
-			if (!attributeNamespaces.contains(ns)) {
-				attributeNamespaces.add(ns);
-			}
-		}
-		return attributeNamespaces;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated NOT
-	 */
-	public XamlNode getParent() {
-		if (eContainer() instanceof XamlNode) {
-			return (XamlNode) eContainer();
-		}
-		return null;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Node generate(Document document, Map<String, Object> options) {
-		// TODO: implement this method
-		// Ensure that you remove @generated or mark it @generated NOT
-		throw new UnsupportedOperationException();
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getFlatValue() {
-		// TODO: implement this method
-		// Ensure that you remove @generated or mark it @generated NOT
-		throw new UnsupportedOperationException();
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd,
-			int featureID, NotificationChain msgs) {
-		switch (featureID) {
-		case XamlPackage.XAML_NODE__CHILD_NODES:
-			return ((InternalEList<?>) getChildNodes()).basicRemove(otherEnd,
-					msgs);
-		case XamlPackage.XAML_NODE__ATTRIBUTES:
-			return ((InternalEList<?>) getAttributes()).basicRemove(otherEnd,
-					msgs);
-		case XamlPackage.XAML_NODE__COMMENTS:
-			return ((InternalEList<?>) getComments()).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 XamlPackage.XAML_NODE__NAME:
-			return getName();
-		case XamlPackage.XAML_NODE__PREFIX:
-			return getPrefix();
-		case XamlPackage.XAML_NODE__NAMESPACE:
-			return getNamespace();
-		case XamlPackage.XAML_NODE__VALUE:
-			return getValue();
-		case XamlPackage.XAML_NODE__CHILD_NODES:
-			return getChildNodes();
-		case XamlPackage.XAML_NODE__ATTRIBUTES:
-			return getAttributes();
-		case XamlPackage.XAML_NODE__ID:
-			return getId();
-		case XamlPackage.XAML_NODE__COMMENTS:
-			return getComments();
-		case XamlPackage.XAML_NODE__WIDGET:
-			return getWidget();
-		}
-		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 XamlPackage.XAML_NODE__NAME:
-			setName((String) newValue);
-			return;
-		case XamlPackage.XAML_NODE__PREFIX:
-			setPrefix((String) newValue);
-			return;
-		case XamlPackage.XAML_NODE__NAMESPACE:
-			setNamespace((String) newValue);
-			return;
-		case XamlPackage.XAML_NODE__VALUE:
-			setValue((String) newValue);
-			return;
-		case XamlPackage.XAML_NODE__CHILD_NODES:
-			getChildNodes().clear();
-			getChildNodes()
-					.addAll((Collection<? extends XamlElement>) newValue);
-			return;
-		case XamlPackage.XAML_NODE__ATTRIBUTES:
-			getAttributes().clear();
-			getAttributes().addAll(
-					(Collection<? extends XamlAttribute>) newValue);
-			return;
-		case XamlPackage.XAML_NODE__ID:
-			setId((String) newValue);
-			return;
-		case XamlPackage.XAML_NODE__COMMENTS:
-			getComments().clear();
-			getComments().addAll((Collection<? extends Comment>) newValue);
-			return;
-		case XamlPackage.XAML_NODE__WIDGET:
-			setWidget(newValue);
-			return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-		case XamlPackage.XAML_NODE__NAME:
-			setName(NAME_EDEFAULT);
-			return;
-		case XamlPackage.XAML_NODE__PREFIX:
-			setPrefix(PREFIX_EDEFAULT);
-			return;
-		case XamlPackage.XAML_NODE__NAMESPACE:
-			setNamespace(NAMESPACE_EDEFAULT);
-			return;
-		case XamlPackage.XAML_NODE__VALUE:
-			setValue(VALUE_EDEFAULT);
-			return;
-		case XamlPackage.XAML_NODE__CHILD_NODES:
-			getChildNodes().clear();
-			return;
-		case XamlPackage.XAML_NODE__ATTRIBUTES:
-			getAttributes().clear();
-			return;
-		case XamlPackage.XAML_NODE__ID:
-			setId(ID_EDEFAULT);
-			return;
-		case XamlPackage.XAML_NODE__COMMENTS:
-			getComments().clear();
-			return;
-		case XamlPackage.XAML_NODE__WIDGET:
-			setWidget(WIDGET_EDEFAULT);
-			return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-		case XamlPackage.XAML_NODE__NAME:
-			return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT
-					.equals(name);
-		case XamlPackage.XAML_NODE__PREFIX:
-			return PREFIX_EDEFAULT == null ? prefix != null : !PREFIX_EDEFAULT
-					.equals(prefix);
-		case XamlPackage.XAML_NODE__NAMESPACE:
-			return NAMESPACE_EDEFAULT == null ? namespace != null
-					: !NAMESPACE_EDEFAULT.equals(namespace);
-		case XamlPackage.XAML_NODE__VALUE:
-			return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT
-					.equals(value);
-		case XamlPackage.XAML_NODE__CHILD_NODES:
-			return childNodes != null && !childNodes.isEmpty();
-		case XamlPackage.XAML_NODE__ATTRIBUTES:
-			return attributes != null && !attributes.isEmpty();
-		case XamlPackage.XAML_NODE__ID:
-			return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
-		case XamlPackage.XAML_NODE__COMMENTS:
-			return comments != null && !comments.isEmpty();
-		case XamlPackage.XAML_NODE__WIDGET:
-			return WIDGET_EDEFAULT == null ? widget != null : !WIDGET_EDEFAULT
-					.equals(widget);
-		}
-		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(" (name: ");
-		result.append(name);
-		result.append(", prefix: ");
-		result.append(prefix);
-		result.append(", namespace: ");
-		result.append(namespace);
-		result.append(", value: ");
-		result.append(value);
-		result.append(", id: ");
-		result.append(id);
-		result.append(", widget: ");
-		result.append(widget);
-		result.append(')');
-		return result.toString();
-	}
-
-	protected String getQualifiedName() {
-		return getQualifiedName(name);
-	}
-
-	protected String getQualifiedName(String name) {
-		if (prefix != null) {
-			return prefix + ":" + name;
-		}
-		return name;
-	}
-
-} // XamlNodeImpl
diff --git a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlPackageImpl.java b/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlPackageImpl.java
deleted file mode 100755
index d604895..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlPackageImpl.java
+++ /dev/null
@@ -1,721 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.xaml.impl;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecore.EGenericType;
-import org.eclipse.emf.ecore.EOperation;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.EcorePackage;
-import org.eclipse.emf.ecore.impl.EPackageImpl;
-import org.eclipse.xwt.tools.ui.xaml.AnnotatedObject;
-import org.eclipse.xwt.tools.ui.xaml.Annotation;
-import org.eclipse.xwt.tools.ui.xaml.Comment;
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-import org.eclipse.xwt.tools.ui.xaml.XamlPackage;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Package</b>.
- * <!-- end-user-doc -->
- * @generated
- */
-public class XamlPackageImpl extends EPackageImpl implements XamlPackage {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xamlDocumentEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass annotatedObjectEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xamlNodeEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xamlElementEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xamlAttributeEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass annotationEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass commentEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EDataType nodeEDataType = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EDataType documentEDataType = 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.xwt.tools.ui.xaml.XamlPackage#eNS_URI
-	 * @see #init()
-	 * @generated
-	 */
-	private XamlPackageImpl() {
-		super(eNS_URI, XamlFactory.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 XamlPackage#eINSTANCE} when that field is accessed.
-	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #eNS_URI
-	 * @see #createPackageContents()
-	 * @see #initializePackageContents()
-	 * @generated
-	 */
-	public static XamlPackage init() {
-		if (isInited)
-			return (XamlPackage) EPackage.Registry.INSTANCE
-					.getEPackage(XamlPackage.eNS_URI);
-
-		// Obtain or create and register package
-		XamlPackageImpl theXamlPackage = (XamlPackageImpl) (EPackage.Registry.INSTANCE
-				.get(eNS_URI) instanceof XamlPackageImpl ? EPackage.Registry.INSTANCE
-				.get(eNS_URI)
-				: new XamlPackageImpl());
-
-		isInited = true;
-
-		// Initialize simple dependencies
-		EcorePackage.eINSTANCE.eClass();
-
-		// Create package meta-data objects
-		theXamlPackage.createPackageContents();
-
-		// Initialize created meta-data
-		theXamlPackage.initializePackageContents();
-
-		// Mark meta-data to indicate it can't be changed
-		theXamlPackage.freeze();
-
-		// Update the registry and return the package
-		EPackage.Registry.INSTANCE.put(XamlPackage.eNS_URI, theXamlPackage);
-		return theXamlPackage;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getXamlDocument() {
-		return xamlDocumentEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getXamlDocument_RootElement() {
-		return (EReference) xamlDocumentEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getXamlDocument_DeclaredNamespaces() {
-		return (EReference) xamlDocumentEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAnnotatedObject() {
-		return annotatedObjectEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAnnotatedObject_Annotations() {
-		return (EReference) annotatedObjectEClass.getEStructuralFeatures().get(
-				0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getXamlNode() {
-		return xamlNodeEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getXamlNode_Name() {
-		return (EAttribute) xamlNodeEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getXamlNode_Prefix() {
-		return (EAttribute) xamlNodeEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getXamlNode_Namespace() {
-		return (EAttribute) xamlNodeEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getXamlNode_Value() {
-		return (EAttribute) xamlNodeEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getXamlNode_ChildNodes() {
-		return (EReference) xamlNodeEClass.getEStructuralFeatures().get(4);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getXamlNode_Attributes() {
-		return (EReference) xamlNodeEClass.getEStructuralFeatures().get(5);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getXamlNode_Id() {
-		return (EAttribute) xamlNodeEClass.getEStructuralFeatures().get(6);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getXamlNode_Comments() {
-		return (EReference) xamlNodeEClass.getEStructuralFeatures().get(7);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getXamlNode_Widget() {
-		return (EAttribute) xamlNodeEClass.getEStructuralFeatures().get(8);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getXamlElement() {
-		return xamlElementEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getXamlAttribute() {
-		return xamlAttributeEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getXamlAttribute_UseFlatValue() {
-		return (EAttribute) xamlAttributeEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getXamlAttribute_GroupName() {
-		return (EAttribute) xamlAttributeEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getAnnotation() {
-		return annotationEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getAnnotation_Source() {
-		return (EAttribute) annotationEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getAnnotation_Details() {
-		return (EReference) annotationEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getComment() {
-		return commentEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getComment_Content() {
-		return (EAttribute) commentEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getComment_Prev() {
-		return (EReference) commentEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getComment_Next() {
-		return (EReference) commentEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EDataType getNode() {
-		return nodeEDataType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EDataType getDocument() {
-		return documentEDataType;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XamlFactory getXamlFactory() {
-		return (XamlFactory) getEFactoryInstance();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private boolean isCreated = false;
-
-	/**
-	 * Creates the meta-model objects for the package.  This method is
-	 * guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void createPackageContents() {
-		if (isCreated)
-			return;
-		isCreated = true;
-
-		// Create classes and their features
-		xamlDocumentEClass = createEClass(XAML_DOCUMENT);
-		createEReference(xamlDocumentEClass, XAML_DOCUMENT__ROOT_ELEMENT);
-		createEReference(xamlDocumentEClass, XAML_DOCUMENT__DECLARED_NAMESPACES);
-
-		annotatedObjectEClass = createEClass(ANNOTATED_OBJECT);
-		createEReference(annotatedObjectEClass, ANNOTATED_OBJECT__ANNOTATIONS);
-
-		xamlNodeEClass = createEClass(XAML_NODE);
-		createEAttribute(xamlNodeEClass, XAML_NODE__NAME);
-		createEAttribute(xamlNodeEClass, XAML_NODE__PREFIX);
-		createEAttribute(xamlNodeEClass, XAML_NODE__NAMESPACE);
-		createEAttribute(xamlNodeEClass, XAML_NODE__VALUE);
-		createEReference(xamlNodeEClass, XAML_NODE__CHILD_NODES);
-		createEReference(xamlNodeEClass, XAML_NODE__ATTRIBUTES);
-		createEAttribute(xamlNodeEClass, XAML_NODE__ID);
-		createEReference(xamlNodeEClass, XAML_NODE__COMMENTS);
-		createEAttribute(xamlNodeEClass, XAML_NODE__WIDGET);
-
-		xamlElementEClass = createEClass(XAML_ELEMENT);
-
-		xamlAttributeEClass = createEClass(XAML_ATTRIBUTE);
-		createEAttribute(xamlAttributeEClass, XAML_ATTRIBUTE__USE_FLAT_VALUE);
-		createEAttribute(xamlAttributeEClass, XAML_ATTRIBUTE__GROUP_NAME);
-
-		annotationEClass = createEClass(ANNOTATION);
-		createEAttribute(annotationEClass, ANNOTATION__SOURCE);
-		createEReference(annotationEClass, ANNOTATION__DETAILS);
-
-		commentEClass = createEClass(COMMENT);
-		createEAttribute(commentEClass, COMMENT__CONTENT);
-		createEReference(commentEClass, COMMENT__PREV);
-		createEReference(commentEClass, COMMENT__NEXT);
-
-		// Create data types
-		nodeEDataType = createEDataType(NODE);
-		documentEDataType = createEDataType(DOCUMENT);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private boolean isInitialized = false;
-
-	/**
-	 * Complete the initialization of the package and its meta-model.  This
-	 * method is guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void initializePackageContents() {
-		if (isInitialized)
-			return;
-		isInitialized = true;
-
-		// Initialize package
-		setName(eNAME);
-		setNsPrefix(eNS_PREFIX);
-		setNsURI(eNS_URI);
-
-		// Obtain other dependent packages
-		EcorePackage theEcorePackage = (EcorePackage) EPackage.Registry.INSTANCE
-				.getEPackage(EcorePackage.eNS_URI);
-
-		// Create type parameters
-
-		// Set bounds for type parameters
-
-		// Add supertypes to classes
-		xamlDocumentEClass.getESuperTypes().add(this.getAnnotatedObject());
-		xamlNodeEClass.getESuperTypes().add(this.getAnnotatedObject());
-		xamlElementEClass.getESuperTypes().add(this.getXamlNode());
-		xamlAttributeEClass.getESuperTypes().add(this.getXamlNode());
-
-		// Initialize classes and features; add operations and parameters
-		initEClass(xamlDocumentEClass, XamlDocument.class, "XamlDocument",
-				!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getXamlDocument_RootElement(), this.getXamlElement(),
-				null, "rootElement", null, 1, 1, XamlDocument.class,
-				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
-				!IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
-				IS_ORDERED);
-		initEReference(getXamlDocument_DeclaredNamespaces(), theEcorePackage
-				.getEStringToStringMapEntry(), null, "declaredNamespaces",
-				null, 0, -1, XamlDocument.class, !IS_TRANSIENT, !IS_VOLATILE,
-				IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
-				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		EOperation op = addEOperation(xamlDocumentEClass, null,
-				"addDeclaredNamespace", 0, 1, IS_UNIQUE, IS_ORDERED);
-		addEParameter(op, ecorePackage.getEString(), "prefix", 0, 1, IS_UNIQUE,
-				IS_ORDERED);
-		addEParameter(op, ecorePackage.getEString(), "namespace", 0, 1,
-				IS_UNIQUE, IS_ORDERED);
-
-		op = addEOperation(xamlDocumentEClass, ecorePackage.getEString(),
-				"getDeclaredNamespace", 0, 1, IS_UNIQUE, IS_ORDERED);
-		addEParameter(op, ecorePackage.getEString(), "prefix", 0, 1, IS_UNIQUE,
-				IS_ORDERED);
-
-		initEClass(annotatedObjectEClass, AnnotatedObject.class,
-				"AnnotatedObject", !IS_ABSTRACT, !IS_INTERFACE,
-				IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getAnnotatedObject_Annotations(), this.getAnnotation(),
-				null, "annotations", null, 0, -1, AnnotatedObject.class,
-				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
-				!IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
-				IS_ORDERED);
-
-		op = addEOperation(annotatedObjectEClass, this.getAnnotation(),
-				"getAnnotation", 0, 1, IS_UNIQUE, IS_ORDERED);
-		addEParameter(op, ecorePackage.getEString(), "source", 0, 1, IS_UNIQUE,
-				IS_ORDERED);
-
-		initEClass(xamlNodeEClass, XamlNode.class, "XamlNode", IS_ABSTRACT,
-				!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getXamlNode_Name(), ecorePackage.getEString(), "name",
-				null, 1, 1, XamlNode.class, !IS_TRANSIENT, !IS_VOLATILE,
-				IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
-				IS_ORDERED);
-		initEAttribute(getXamlNode_Prefix(), ecorePackage.getEString(),
-				"prefix", null, 1, 1, XamlNode.class, !IS_TRANSIENT,
-				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
-				!IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXamlNode_Namespace(), ecorePackage.getEString(),
-				"namespace", null, 1, 1, XamlNode.class, !IS_TRANSIENT,
-				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
-				!IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXamlNode_Value(), ecorePackage.getEString(), "value",
-				null, 0, 1, XamlNode.class, !IS_TRANSIENT, !IS_VOLATILE,
-				IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
-				IS_ORDERED);
-		initEReference(getXamlNode_ChildNodes(), this.getXamlElement(), null,
-				"childNodes", null, 0, -1, XamlNode.class, !IS_TRANSIENT,
-				!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
-				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getXamlNode_Attributes(), this.getXamlAttribute(), null,
-				"attributes", null, 0, -1, XamlNode.class, !IS_TRANSIENT,
-				!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
-				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXamlNode_Id(), ecorePackage.getEString(), "id", null,
-				0, 1, XamlNode.class, !IS_TRANSIENT, !IS_VOLATILE,
-				IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED,
-				IS_ORDERED);
-		initEReference(getXamlNode_Comments(), this.getComment(), null,
-				"comments", null, 0, -1, XamlNode.class, !IS_TRANSIENT,
-				!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
-				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXamlNode_Widget(), ecorePackage.getEJavaObject(),
-				"widget", null, 0, 1, XamlNode.class, !IS_TRANSIENT,
-				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
-				!IS_DERIVED, IS_ORDERED);
-
-		op = addEOperation(xamlNodeEClass, this.getXamlAttribute(),
-				"getAttribute", 0, 1, IS_UNIQUE, IS_ORDERED);
-		addEParameter(op, ecorePackage.getEString(), "name", 0, 1, IS_UNIQUE,
-				IS_ORDERED);
-		addEParameter(op, ecorePackage.getEString(), "namespace", 0, 1,
-				IS_UNIQUE, IS_ORDERED);
-
-		op = addEOperation(xamlNodeEClass, this.getXamlAttribute(),
-				"getAttribute", 0, 1, IS_UNIQUE, IS_ORDERED);
-		addEParameter(op, theEcorePackage.getEString(), "name", 0, 1,
-				IS_UNIQUE, IS_ORDERED);
-
-		op = addEOperation(xamlNodeEClass, this.getXamlElement(), "getChild",
-				0, 1, IS_UNIQUE, IS_ORDERED);
-		addEParameter(op, ecorePackage.getEString(), "name", 0, 1, IS_UNIQUE,
-				IS_ORDERED);
-		addEParameter(op, ecorePackage.getEString(), "namespace", 0, 1,
-				IS_UNIQUE, IS_ORDERED);
-
-		op = addEOperation(xamlNodeEClass, this.getXamlElement(), "getChild",
-				0, 1, IS_UNIQUE, IS_ORDERED);
-		addEParameter(op, theEcorePackage.getEString(), "name", 0, 1,
-				IS_UNIQUE, IS_ORDERED);
-
-		op = addEOperation(xamlNodeEClass, this.getXamlElement(), "getChild",
-				0, 1, IS_UNIQUE, IS_ORDERED);
-		addEParameter(op, ecorePackage.getEInt(), "index", 0, 1, IS_UNIQUE,
-				IS_ORDERED);
-
-		addEOperation(xamlNodeEClass, this.getXamlDocument(),
-				"getOwnerDocument", 0, 1, IS_UNIQUE, IS_ORDERED);
-
-		addEOperation(xamlNodeEClass, ecorePackage.getEString(),
-				"attributeNames", 0, -1, IS_UNIQUE, IS_ORDERED);
-
-		op = addEOperation(xamlNodeEClass, ecorePackage.getEString(),
-				"attributeNames", 0, -1, IS_UNIQUE, IS_ORDERED);
-		addEParameter(op, ecorePackage.getEString(), "namespace", 0, 1,
-				IS_UNIQUE, IS_ORDERED);
-
-		addEOperation(xamlNodeEClass, ecorePackage.getEString(),
-				"attributeNamespaces", 0, -1, IS_UNIQUE, IS_ORDERED);
-
-		addEOperation(xamlNodeEClass, this.getXamlNode(), "getParent", 0, 1,
-				IS_UNIQUE, IS_ORDERED);
-
-		op = addEOperation(xamlNodeEClass, this.getNode(), "generate", 0, 1,
-				IS_UNIQUE, IS_ORDERED);
-		addEParameter(op, this.getDocument(), "document", 0, 1, IS_UNIQUE,
-				IS_ORDERED);
-		EGenericType g1 = createEGenericType(ecorePackage.getEMap());
-		EGenericType g2 = createEGenericType(ecorePackage.getEString());
-		g1.getETypeArguments().add(g2);
-		g2 = createEGenericType(ecorePackage.getEJavaObject());
-		g1.getETypeArguments().add(g2);
-		addEParameter(op, g1, "options", 0, 1, IS_UNIQUE, IS_ORDERED);
-
-		addEOperation(xamlNodeEClass, ecorePackage.getEString(),
-				"getFlatValue", 0, 1, IS_UNIQUE, IS_ORDERED);
-
-		initEClass(xamlElementEClass, XamlElement.class, "XamlElement",
-				!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xamlAttributeEClass, XamlAttribute.class, "XamlAttribute",
-				!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getXamlAttribute_UseFlatValue(), ecorePackage
-				.getEBoolean(), "useFlatValue", null, 0, 1,
-				XamlAttribute.class, !IS_TRANSIENT, !IS_VOLATILE,
-				IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
-				IS_ORDERED);
-		initEAttribute(getXamlAttribute_GroupName(), ecorePackage.getEString(),
-				"groupName", null, 0, 1, XamlAttribute.class, !IS_TRANSIENT,
-				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
-				!IS_DERIVED, IS_ORDERED);
-
-		initEClass(annotationEClass, Annotation.class, "Annotation",
-				!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getAnnotation_Source(), theEcorePackage.getEString(),
-				"source", null, 0, 1, Annotation.class, !IS_TRANSIENT,
-				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
-				!IS_DERIVED, IS_ORDERED);
-		initEReference(getAnnotation_Details(), theEcorePackage
-				.getEStringToStringMapEntry(), null, "details", null, 0, -1,
-				Annotation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
-				IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
-				!IS_DERIVED, IS_ORDERED);
-
-		initEClass(commentEClass, Comment.class, "Comment", !IS_ABSTRACT,
-				!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getComment_Content(), theEcorePackage.getEString(),
-				"content", null, 0, 1, Comment.class, !IS_TRANSIENT,
-				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
-				!IS_DERIVED, IS_ORDERED);
-		initEReference(getComment_Prev(), this.getXamlNode(), null, "prev",
-				null, 0, 1, Comment.class, !IS_TRANSIENT, !IS_VOLATILE,
-				IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
-				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getComment_Next(), this.getXamlNode(), null, "next",
-				null, 0, 1, Comment.class, !IS_TRANSIENT, !IS_VOLATILE,
-				IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
-				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		// Initialize data types
-		initEDataType(nodeEDataType, Node.class, "Node", IS_SERIALIZABLE,
-				!IS_GENERATED_INSTANCE_CLASS);
-		initEDataType(documentEDataType, Document.class, "Document",
-				IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
-
-		// Create resource
-		createResource(eNS_URI);
-	}
-
-} //XamlPackageImpl
diff --git a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/tools/AnnotationTools.java b/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/tools/AnnotationTools.java
deleted file mode 100755
index 21c65cc..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/tools/AnnotationTools.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.xaml.tools;
-
-import org.eclipse.xwt.tools.ui.xaml.Annotation;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class AnnotationTools {
-
-	public static void addAnnotation(XamlNode node, String key, String value) {
-		if (node == null) {
-			return;
-		}
-		Annotation annotation = node.getAnnotation(key);
-		if (annotation == null) {
-			annotation = XamlFactory.eINSTANCE.createAnnotation();
-			annotation.setSource(key);
-			node.getAnnotations().add(annotation);
-		}
-		annotation.getDetails().put(key, value);
-	}
-
-	public static void removeAnnotation(XamlNode node, String key) {
-		if (node == null) {
-			return;
-		}
-		Annotation annotation = node.getAnnotation(key);
-		if (annotation != null) {
-			node.getAnnotations().remove(annotation);
-		}
-	}
-
-	public static boolean isAnnotated(XamlNode node, String key) {
-		if (node == null) {
-			return false;
-		}
-		Annotation annotation = node.getAnnotation(key);
-		return annotation != null && annotation.getDetails().containsKey(key);
-	}
-
-	public static String getAnnotationValue(XamlNode node, String key) {
-		if (node == null) {
-			return null;
-		}
-		if (isAnnotated(node, key)) {
-			return node.getAnnotation(key).getDetails().get(key);
-		}
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/tools/XamlCreateTools.java b/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/tools/XamlCreateTools.java
deleted file mode 100755
index 6e0279f..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/tools/XamlCreateTools.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.xaml.tools;
-
-import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
-import org.eclipse.xwt.tools.ui.xaml.XamlElement;
-import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
-import org.eclipse.xwt.tools.ui.xaml.XamlNode;
-
-/**
- * @author jliu (jin.liu@soyatec.com)
- */
-public class XamlCreateTools {
-
-	public static XamlAttribute addAttribute(XamlNode parent, String name,
-			String namespace, String value) {
-		if (parent == null || name == null || namespace == null) {
-			throw new NullPointerException();
-		}
-		XamlAttribute attribute = parent.getAttribute(name, namespace);
-		boolean isNew = false;
-		if (attribute == null) {
-			attribute = XamlFactory.eINSTANCE.createXamlAttribute();
-			attribute.setName(name);
-			attribute.setNamespace(namespace);
-			isNew = true;
-		}
-		if (value != null) {
-			attribute.setValue(value);
-		}
-		if (isNew) {
-			parent.getAttributes().add(attribute);
-		}
-		return attribute;
-	}
-
-	public static XamlAttribute addAttribute(XamlNode parent, String name,
-			String namespace) {
-		return addAttribute(parent, name, namespace, null);
-	}
-
-	public static XamlAttribute addComplexAttribute(XamlElement parent,
-			String name, String namespace, String childName,
-			String childNamespace) {
-		return addComplexAttribute(parent, name, namespace, childName,
-				childNamespace, false);
-	}
-
-	public static XamlAttribute addComplexAttribute(XamlElement parent,
-			String name, String namespace, String childName,
-			String childNamespace, boolean allowMutilChild) {
-		if (parent == null || name == null || namespace == null
-				|| childName == null || childNamespace == null) {
-			throw new NullPointerException();
-		}
-		XamlAttribute attribute = parent.getAttribute(name, namespace);
-		if (attribute == null) {
-			attribute = createAttribute(name, namespace);
-			XamlElement child = createElement(childName, childNamespace);
-			attribute.getChildNodes().add(child);
-			parent.getAttributes().add(attribute);
-		} else if (attribute.getChild(childName, childNamespace) == null) {
-			XamlElement child = createElement(childName, childNamespace);
-			if (!allowMutilChild) {
-				attribute.getChildNodes().clear();
-			}
-			attribute.getChildNodes().add(child);
-		}
-		return attribute;
-	}
-
-	public static XamlAttribute createAttribute(String name, String namespace) {
-		if (name == null || namespace == null) {
-			throw new NullPointerException();
-		}
-		XamlAttribute attribute = XamlFactory.eINSTANCE.createXamlAttribute();
-		attribute.setName(name);
-		attribute.setNamespace(namespace);
-		return attribute;
-	}
-
-	public static XamlElement createElement(String name, String namespace) {
-		if (name == null || namespace == null) {
-			throw new NullPointerException();
-		}
-		XamlElement element = XamlFactory.eINSTANCE.createXamlElement();
-		element.setName(name);
-		element.setNamespace(namespace);
-		return element;
-	}
-
-	private XamlCreateTools() {
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/util/XamlAdapterFactory.java b/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/util/XamlAdapterFactory.java
deleted file mode 100755
index ddf456a..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/util/XamlAdapterFactory.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.xaml.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.xwt.tools.ui.xaml.*;
-
-/**
- * <!-- 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.xwt.tools.ui.xaml.XamlPackage
- * @generated
- */
-public class XamlAdapterFactory extends AdapterFactoryImpl {
-	/**
-	 * The cached model package.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected static XamlPackage modelPackage;
-
-	/**
-	 * Creates an instance of the adapter factory.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XamlAdapterFactory() {
-		if (modelPackage == null) {
-			modelPackage = XamlPackage.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 XamlSwitch<Adapter> modelSwitch = new XamlSwitch<Adapter>() {
-		@Override
-		public Adapter caseXamlDocument(XamlDocument object) {
-			return createXamlDocumentAdapter();
-		}
-
-		@Override
-		public Adapter caseAnnotatedObject(AnnotatedObject object) {
-			return createAnnotatedObjectAdapter();
-		}
-
-		@Override
-		public Adapter caseXamlNode(XamlNode object) {
-			return createXamlNodeAdapter();
-		}
-
-		@Override
-		public Adapter caseXamlElement(XamlElement object) {
-			return createXamlElementAdapter();
-		}
-
-		@Override
-		public Adapter caseXamlAttribute(XamlAttribute object) {
-			return createXamlAttributeAdapter();
-		}
-
-		@Override
-		public Adapter caseAnnotation(Annotation object) {
-			return createAnnotationAdapter();
-		}
-
-		@Override
-		public Adapter caseComment(Comment object) {
-			return createCommentAdapter();
-		}
-
-		@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.xwt.tools.ui.xaml.XamlDocument <em>Document</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.xwt.tools.ui.xaml.XamlDocument
-	 * @generated
-	 */
-	public Adapter createXamlDocumentAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.xwt.tools.ui.xaml.AnnotatedObject <em>Annotated Object</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.xwt.tools.ui.xaml.AnnotatedObject
-	 * @generated
-	 */
-	public Adapter createAnnotatedObjectAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode <em>Node</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.xwt.tools.ui.xaml.XamlNode
-	 * @generated
-	 */
-	public Adapter createXamlNodeAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.xwt.tools.ui.xaml.XamlElement <em>Element</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.xwt.tools.ui.xaml.XamlElement
-	 * @generated
-	 */
-	public Adapter createXamlElementAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.xwt.tools.ui.xaml.XamlAttribute <em>Attribute</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.xwt.tools.ui.xaml.XamlAttribute
-	 * @generated
-	 */
-	public Adapter createXamlAttributeAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.xwt.tools.ui.xaml.Annotation <em>Annotation</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.xwt.tools.ui.xaml.Annotation
-	 * @generated
-	 */
-	public Adapter createAnnotationAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.xwt.tools.ui.xaml.Comment <em>Comment</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.xwt.tools.ui.xaml.Comment
-	 * @generated
-	 */
-	public Adapter createCommentAdapter() {
-		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;
-	}
-
-} // XamlAdapterFactory
diff --git a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/util/XamlSwitch.java b/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/util/XamlSwitch.java
deleted file mode 100755
index 81326ac..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/util/XamlSwitch.java
+++ /dev/null
@@ -1,239 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.tools.ui.xaml.util;
-
-import java.util.List;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.xwt.tools.ui.xaml.*;
-
-/**
- * <!-- 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.xwt.tools.ui.xaml.XamlPackage
- * @generated
- */
-public class XamlSwitch<T> {
-	/**
-	 * The cached model package
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected static XamlPackage modelPackage;
-
-	/**
-	 * Creates an instance of the switch.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XamlSwitch() {
-		if (modelPackage == null) {
-			modelPackage = XamlPackage.eINSTANCE;
-		}
-	}
-
-	/**
-	 * 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
-	 */
-	public T doSwitch(EObject theEObject) {
-		return doSwitch(theEObject.eClass(), theEObject);
-	}
-
-	/**
-	 * 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
-	 */
-	protected T doSwitch(EClass theEClass, EObject theEObject) {
-		if (theEClass.eContainer() == modelPackage) {
-			return doSwitch(theEClass.getClassifierID(), theEObject);
-		} else {
-			List<EClass> eSuperTypes = theEClass.getESuperTypes();
-			return eSuperTypes.isEmpty() ? defaultCase(theEObject) : doSwitch(
-					eSuperTypes.get(0), theEObject);
-		}
-	}
-
-	/**
-	 * 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
-	 */
-	protected T doSwitch(int classifierID, EObject theEObject) {
-		switch (classifierID) {
-		case XamlPackage.XAML_DOCUMENT: {
-			XamlDocument xamlDocument = (XamlDocument) theEObject;
-			T result = caseXamlDocument(xamlDocument);
-			if (result == null)
-				result = caseAnnotatedObject(xamlDocument);
-			if (result == null)
-				result = defaultCase(theEObject);
-			return result;
-		}
-		case XamlPackage.ANNOTATED_OBJECT: {
-			AnnotatedObject annotatedObject = (AnnotatedObject) theEObject;
-			T result = caseAnnotatedObject(annotatedObject);
-			if (result == null)
-				result = defaultCase(theEObject);
-			return result;
-		}
-		case XamlPackage.XAML_NODE: {
-			XamlNode xamlNode = (XamlNode) theEObject;
-			T result = caseXamlNode(xamlNode);
-			if (result == null)
-				result = caseAnnotatedObject(xamlNode);
-			if (result == null)
-				result = defaultCase(theEObject);
-			return result;
-		}
-		case XamlPackage.XAML_ELEMENT: {
-			XamlElement xamlElement = (XamlElement) theEObject;
-			T result = caseXamlElement(xamlElement);
-			if (result == null)
-				result = caseXamlNode(xamlElement);
-			if (result == null)
-				result = caseAnnotatedObject(xamlElement);
-			if (result == null)
-				result = defaultCase(theEObject);
-			return result;
-		}
-		case XamlPackage.XAML_ATTRIBUTE: {
-			XamlAttribute xamlAttribute = (XamlAttribute) theEObject;
-			T result = caseXamlAttribute(xamlAttribute);
-			if (result == null)
-				result = caseXamlNode(xamlAttribute);
-			if (result == null)
-				result = caseAnnotatedObject(xamlAttribute);
-			if (result == null)
-				result = defaultCase(theEObject);
-			return result;
-		}
-		case XamlPackage.ANNOTATION: {
-			Annotation annotation = (Annotation) theEObject;
-			T result = caseAnnotation(annotation);
-			if (result == null)
-				result = defaultCase(theEObject);
-			return result;
-		}
-		case XamlPackage.COMMENT: {
-			Comment comment = (Comment) theEObject;
-			T result = caseComment(comment);
-			if (result == null)
-				result = defaultCase(theEObject);
-			return result;
-		}
-		default:
-			return defaultCase(theEObject);
-		}
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Document</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>Document</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXamlDocument(XamlDocument object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Annotated Object</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>Annotated Object</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseAnnotatedObject(AnnotatedObject object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Node</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>Node</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXamlNode(XamlNode object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Element</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>Element</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXamlElement(XamlElement object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Attribute</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>Attribute</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXamlAttribute(XamlAttribute object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Annotation</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>Annotation</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseAnnotation(Annotation object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Comment</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>Comment</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseComment(Comment 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
-	 */
-	public T defaultCase(EObject object) {
-		return null;
-	}
-
-} // XamlSwitch
diff --git a/org.eclipse.xwt.tools.ui.xaml/templates/Header.javajetinc b/org.eclipse.xwt.tools.ui.xaml/templates/Header.javajetinc
deleted file mode 100755
index 0666043..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/templates/Header.javajetinc
+++ /dev/null
@@ -1,10 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.xaml/templates/emf-merge.xml b/org.eclipse.xwt.tools.ui.xaml/templates/emf-merge.xml
deleted file mode 100755
index 00f743c..0000000
--- a/org.eclipse.xwt.tools.ui.xaml/templates/emf-merge.xml
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui/build.properties b/org.eclipse.xwt.tools.ui/build.properties
deleted file mode 100755
index 9c0550f..0000000
--- a/org.eclipse.xwt.tools.ui/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               icons/,\
-               plugin.properties
diff --git a/org.eclipse.xwt.tools.ui/plugin.properties b/org.eclipse.xwt.tools.ui/plugin.properties
deleted file mode 100755
index 6b0086f..0000000
--- a/org.eclipse.xwt.tools.ui/plugin.properties
+++ /dev/null
@@ -1,43 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-#******************************************************************************
-# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Soyatec - initial API and implementation
-#******************************************************************************/
-action.label.0 = Open dialog
-category.name.0 = XWT
-wizard.name.0 = New UI File
-wizard.description.0 = Create a stand-alone .xwt file
-wizard.name.1 = New UI Presentation
-wizard.description.1 = Create a presentation to handle the interactive between user and data. 
-wizard.name.2 = New UI Element
-wizard.description.2 = Create a UI element. 
-wizard.name.3 = New e4 Static Part
-wizard.description.3 = Create a static View Part for e4. 
-wizard.name.4 = New e4 Dynamic Part
-wizard.description.4 = Create a Dynamic View Part for e4. 
-content-type.name.0 = XWT File
-perspective.name.0 = XWT
-Bundle-Vendor.0 = Eclipse.org
-Bundle-Name.0 = XWT UI Plug-in (Incubation)
-menu.label.0 = XWT Preview
-action.label.1 = Open in View
-menu.label.1 = XWT Open
-action.label.2 = Open in View
-
-view.name.0 = XWT View
-category.name.1 = XWT
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui/plugin.xml b/org.eclipse.xwt.tools.ui/plugin.xml
deleted file mode 100755
index 29f7a22..0000000
--- a/org.eclipse.xwt.tools.ui/plugin.xml
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui/pom.xml b/org.eclipse.xwt.tools.ui/pom.xml
deleted file mode 100755
index b4e73fd..0000000
--- a/org.eclipse.xwt.tools.ui/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt.tools.ui</artifactId>
-	<version>0.10.0-SNAPSHOT</version>
-	<packaging>eclipse-plugin</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/ExceptionHandle.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/ExceptionHandle.java
deleted file mode 100755
index 82e94f4..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/ExceptionHandle.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-
-public class ExceptionHandle {
-
-	static public void handle(Exception e, String message) {
-		if (e.getMessage() != null) {
-			message += "\n" + e.getMessage();
-		}
-		MessageDialog.openError(XWTUIPlugin.getShell(), "Erreur: ", message);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/XWTPerspectiveFactory.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/XWTPerspectiveFactory.java
deleted file mode 100755
index 42db0a5..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/XWTPerspectiveFactory.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui;
-
-import org.eclipse.jdt.ui.JavaUI;
-import org.eclipse.ui.IFolderLayout;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-import org.eclipse.xwt.ui.views.XWTView;
-
-public class XWTPerspectiveFactory implements IPerspectiveFactory {
-
-	public static final String XWT_PERSPECTIVE_ID = "org.eclipse.xwt.ui.perspective";
-	private IPageLayout factory;
-
-	public void createInitialLayout(IPageLayout factory) {
-		this.factory = factory;
-		addViews();
-		addActionSets();
-		addNewWizardShortcuts();
-		addPerspectiveShortcuts();
-		addViewShortcuts();
-	}
-
-	private void addViews() {
-		factory.setFixed(false);
-		String editorArea = factory.getEditorArea();
-		// Left Top
-		IFolderLayout leftTop = factory.createFolder("leftTop", IPageLayout.LEFT, (float) 0.25, editorArea); //$NON-NLS-1$
-		leftTop.addPlaceholder(IPageLayout.ID_RES_NAV);
-		leftTop.addView(JavaUI.ID_PACKAGES);
-
-		// Left Top
-		IFolderLayout leftButtom = factory.createFolder("leftBottom", IPageLayout.BOTTOM, (float) 0.50, "leftTop"); //$NON-NLS-1$
-		leftButtom.addView(IPageLayout.ID_OUTLINE);
-
-		// Right
-		IFolderLayout right = factory.createFolder("right", IPageLayout.RIGHT, (float) 0.75, editorArea);
-		right.addView("org.eclipse.gef.ui.palette_view");
-
-		// Bottom
-		IFolderLayout bottom = factory.createFolder("bottom", IPageLayout.BOTTOM, (float) 0.75, editorArea); //$NON-NLS-1$
-		bottom.addView(IPageLayout.ID_PROP_SHEET);
-		bottom.addView(IPageLayout.ID_PROBLEM_VIEW);
-		bottom.addView(XWTView.ID);
-	}
-
-	private void addActionSets() {
-		factory.addActionSet(JavaUI.ID_ACTION_SET);
-		factory.addActionSet(JavaUI.ID_ELEMENT_CREATION_ACTION_SET);
-	}
-
-	private void addNewWizardShortcuts() {
-
-		// XWT Creation Wizards.
-		factory.addNewWizardShortcut("org.eclipse.xwt.ui.wizards.newUIFile");
-		factory.addNewWizardShortcut("org.eclipse.xwt.ui.wizards.NewPresentationWizard");
-		factory.addNewWizardShortcut("org.eclipse.xwt.ui.wizards.NewUIElementWizard");
-		factory.addNewWizardShortcut("org.eclipse.xwt.ui.wizards.NewE4StaticPartWizard");
-		factory.addNewWizardShortcut("org.eclipse.xwt.ui.wizards.NewE4DynamicPartWizard");
-
-		// Default JDT Wizards.
-		factory.addNewWizardShortcut("org.eclipse.jdt.ui.wizards.NewPackageCreationWizard"); //$NON-NLS-1$
-		factory.addNewWizardShortcut("org.eclipse.jdt.ui.wizards.NewClassCreationWizard"); //$NON-NLS-1$
-		factory.addNewWizardShortcut("org.eclipse.jdt.ui.wizards.NewInterfaceCreationWizard"); //$NON-NLS-1$
-		factory.addNewWizardShortcut("org.eclipse.jdt.ui.wizards.NewSourceFolderCreationWizard"); //$NON-NLS-1$
-		// Eclipse Resource Wizards.
-		factory.addNewWizardShortcut("org.eclipse.ui.wizards.new.folder");//$NON-NLS-1$
-		factory.addNewWizardShortcut("org.eclipse.ui.wizards.new.file");//$NON-NLS-1$
-	}
-
-	private void addPerspectiveShortcuts() {
-		factory.addPerspectiveShortcut("org.eclipse.ui.resourcePerspective"); //$NON-NLS-1$
-		factory.addPerspectiveShortcut(JavaUI.ID_PERSPECTIVE);
-	}
-
-	private void addViewShortcuts() {
-		factory.addShowViewShortcut(JavaUI.ID_PACKAGES);
-		factory.addShowViewShortcut(IPageLayout.ID_RES_NAV);
-		factory.addShowViewShortcut(IPageLayout.ID_PROBLEM_VIEW);
-		factory.addShowViewShortcut(IPageLayout.ID_OUTLINE);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/XWTUIPlugin.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/XWTUIPlugin.java
deleted file mode 100755
index dff1ace..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/XWTUIPlugin.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.xwt.ui.utils.ProjectContext;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.BundleException;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class XWTUIPlugin extends AbstractUIPlugin {
-
-	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.xwt.tools.ui";
-
-	// The shared instance
-	private static XWTUIPlugin plugin;
-
-	/**
-	 * The constructor
-	 */
-	public XWTUIPlugin() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext )
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		ProjectContext.start();
-		plugin = this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext )
-	 */
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		ProjectContext.stop();
-		super.stop(context);
-	}
-
-	/**
-	 * Returns the shared instance
-	 * 
-	 * @return the shared instance
-	 */
-	public static XWTUIPlugin getDefault() {
-		return plugin;
-	}
-
-	public static Shell getShell() {
-		IWorkbench workbench = PlatformUI.getWorkbench();
-		IWorkbenchWindow activeWorkbenchWindow = workbench.getActiveWorkbenchWindow();
-		if (activeWorkbenchWindow == null)
-			return null;
-		return activeWorkbenchWindow.getShell();
-	}
-
-	public static void log(int severity, int code, String message, Throwable exception) {
-		getDefault().getLog().log(new Status(severity, getDefault().getBundle().getSymbolicName(), code, message, exception));
-	}
-
-	public static void log(int severity, int code, String message) {
-		getDefault().getLog().log(new Status(severity, getDefault().getBundle().getSymbolicName(), code, message, null));
-	}
-
-	public static void log(int severity, String message) {
-		getDefault().getLog().log(new Status(severity, getDefault().getBundle().getSymbolicName(), -1, message, null));
-	}
-
-	public static void log(Throwable exception) {
-		getDefault().getLog().log(new Status(IStatus.ERROR, getDefault().getBundle().getSymbolicName(), -1, "", exception));
-	}
-
-	public static ImageDescriptor getBundledImageDescriptor(String path) {
-		return AbstractUIPlugin.imageDescriptorFromPlugin(getDefault().getBundle().getSymbolicName(), path);
-	}
-
-	public Image getBundledImage(String path) {
-		Image image = getImageRegistry().get(path);
-		if (image == null) {
-			getImageRegistry().put(path, getBundledImageDescriptor(path));
-			image = getImageRegistry().get(path);
-		}
-		return image;
-	}
-
-	public static void checkStartup() {
-		Bundle bundle = getDefault().getBundle();
-		if (bundle.getState() != Bundle.ACTIVE) {
-			try {
-				bundle.start();
-			} catch (BundleException e) {
-				e.printStackTrace();
-			}
-		}
-	}
-
-	public void openXWTPerspective() {
-		IWorkbench workbench = getWorkbench();
-		int count = workbench.getWorkbenchWindowCount();
-		if (count == 0) {
-			return;
-		}
-		IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
-		if (window == null) {
-			window = workbench.getWorkbenchWindows()[0];
-		}
-		IPerspectiveDescriptor pers = workbench.getPerspectiveRegistry().findPerspectiveWithId(XWTPerspectiveFactory.XWT_PERSPECTIVE_ID);
-		if (pers == null) {
-			return;
-		}
-		try {
-			workbench.showPerspective(XWTPerspectiveFactory.XWT_PERSPECTIVE_ID, window);
-		} catch (WorkbenchException e) {
-			System.out.println("Can't Open XWT Perspective");
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/AddContainerJars.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/AddContainerJars.java
deleted file mode 100755
index 6c3e495..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/AddContainerJars.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.actions;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IActionDelegate;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.xwt.ui.jdt.ProjectHelper;
-
-public class AddContainerJars implements IObjectActionDelegate {
-	protected IWorkbenchPart part;
-
-	protected IAction action;
-
-	protected ISelection sel;
-
-	/**
-	 * Constructor for Action1.
-	 */
-	public AddContainerJars() {
-		super();
-	}
-
-	/**
-	 * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
-	 */
-	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
-		this.part = targetPart;
-		this.action = action;
-	}
-
-	/**
-	 * @see IActionDelegate#run(IAction) It get back the project name , the create the Main Creation wizard dialog, and open it.
-	 */
-	public void run(IAction action) {
-		IStructuredSelection structured = (IStructuredSelection) sel;
-		Object object = structured.getFirstElement();
-
-		IJavaProject javaProject = null;
-
-		if (object instanceof IProject) // case of Navigator View
-		{
-			javaProject = JavaCore.create((IProject) object);
-		} else if (object instanceof IJavaProject) {
-			javaProject = ((IJavaProject) object);
-		} else {
-			return;
-		}
-
-		if (javaProject != null) {
-			ProjectHelper.AddJars(javaProject);
-		}
-	}
-
-	/**
-	 * @see IActionDelegate#selectionChanged(IAction, ISelection)
-	 */
-	public void selectionChanged(IAction action, ISelection selection) {
-		sel = selection;
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/RemoveContainerJars.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/RemoveContainerJars.java
deleted file mode 100755
index 0f8aa8c..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/RemoveContainerJars.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.actions;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IActionDelegate;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.xwt.ui.jdt.ProjectHelper;
-
-public class RemoveContainerJars implements IObjectActionDelegate {
-	protected IWorkbenchPart part;
-
-	protected IAction action;
-
-	protected ISelection sel;
-
-	/**
-	 * Constructor for Action1.
-	 */
-	public RemoveContainerJars() {
-		super();
-	}
-
-	/**
-	 * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
-	 */
-	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
-		this.part = targetPart;
-		this.action = action;
-	}
-
-	/**
-	 * @see IActionDelegate#run(IAction) It get back the project name , the create the Main Creation wizard dialog, and open it.
-	 */
-	public void run(IAction action) {
-		IStructuredSelection structured = (IStructuredSelection) sel;
-		Object object = structured.getFirstElement();
-
-		IJavaProject javaProject = null;
-
-		if (object instanceof IProject) // case of Navigator View
-		{
-			javaProject = JavaCore.create((IProject) object);
-		} else if (object instanceof IJavaProject) {
-			javaProject = ((IJavaProject) object);
-		} else {
-			return;
-		}
-
-		if (javaProject != null) {
-			ProjectHelper.RemoveJars(javaProject);
-		}
-	}
-
-	/**
-	 * @see IActionDelegate#selectionChanged(IAction, ISelection)
-	 */
-	public void selectionChanged(IAction action, ISelection selection) {
-		sel = selection;
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/XWTGenerateView.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/XWTGenerateView.java
deleted file mode 100755
index b11e016..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/XWTGenerateView.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.actions;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
-
-public class XWTGenerateView implements IObjectActionDelegate {
-
-	protected Collection<IType> types = new ArrayList<IType>();
-
-	public XWTGenerateView() {
-	}
-
-	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
-	}
-
-	public void run(IAction action) {
-		if (types != null && !types.isEmpty()) {
-			// ToolsUIPlugin.checkStartup();
-
-			for (IType type : types) {
-				generateXMLFor(type);
-			}
-		}
-	}
-
-	protected void generateXMLFor(IType type) {
-	}
-
-	public void selectionChanged(IAction action, ISelection selection) {
-		types.clear();
-		IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-		for (Iterator<?> iterator = structuredSelection.iterator(); iterator.hasNext();) {
-			Object element = iterator.next();
-			if (element instanceof IType) {
-				types.add((IType) element);
-			} else if (element instanceof ICompilationUnit) {
-				ICompilationUnit unit = (ICompilationUnit) element;
-				try {
-					IType[] children = unit.getAllTypes();
-					for (int i = 0; i < children.length; i++) {
-						types.add(children[i]);
-					}
-				} catch (JavaModelException e) {
-					e.printStackTrace();
-				}
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/XWTOpen.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/XWTOpen.java
deleted file mode 100755
index efaa360..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/XWTOpen.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.actions;
-
-import java.util.Iterator;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.xwt.ui.utils.DisplayUtil;
-
-public class XWTOpen implements IObjectActionDelegate {
-
-	protected IFile file;
-
-	public XWTOpen() {
-	}
-
-	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
-	}
-
-	public void run(IAction action) {
-		if (file != null) {
-			DisplayUtil.open(file);
-		}
-	}
-
-	public void selectionChanged(IAction action, ISelection selection) {
-		IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-		for (Iterator<?> iterator = structuredSelection.iterator(); iterator.hasNext();) {
-			Object element = iterator.next();
-			if (element instanceof IFile) {
-				file = (IFile) element;
-				break;
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/XWTViewOpenAction.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/XWTViewOpenAction.java
deleted file mode 100755
index acb2d0f..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/XWTViewOpenAction.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.actions;
-
-import java.util.Iterator;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.xwt.ui.ExceptionHandle;
-import org.eclipse.xwt.ui.XWTUIPlugin;
-import org.eclipse.xwt.ui.views.XWTView;
-
-public class XWTViewOpenAction implements IObjectActionDelegate {
-
-	protected IFile file;
-
-	public XWTViewOpenAction() {
-
-	}
-
-	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
-
-	}
-
-	public void run(IAction action) {
-		if (file != null) {
-			XWTUIPlugin.checkStartup();
-			try {
-				XWTView view = (XWTView) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView(XWTView.ID);
-				view.setContent(null, file);
-			} catch (Exception e) {
-				ExceptionHandle.handle(e, "");
-			}
-		}
-	}
-
-	public void selectionChanged(IAction action, ISelection selection) {
-		IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-		for (Iterator<?> iterator = structuredSelection.iterator(); iterator.hasNext();) {
-			Object element = iterator.next();
-			if (element instanceof IFile) {
-				file = (IFile) element;
-				break;
-			}
-		}
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/ASTHelper.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/ASTHelper.java
deleted file mode 100755
index 18d24e7..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/ASTHelper.java
+++ /dev/null
@@ -1,489 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.jdt;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.core.Flags;
-import org.eclipse.jdt.core.IBuffer;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IMethod;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.ISourceRange;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.core.Signature;
-import org.eclipse.jdt.core.compiler.IProblem;
-import org.eclipse.jdt.core.dom.AST;
-import org.eclipse.jdt.core.dom.ASTNode;
-import org.eclipse.jdt.core.dom.ASTParser;
-import org.eclipse.jdt.core.dom.AbstractTypeDeclaration;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-import org.eclipse.jdt.core.dom.ImportDeclaration;
-import org.eclipse.jdt.core.dom.rewrite.ImportRewrite;
-import org.eclipse.jdt.core.formatter.CodeFormatter;
-import org.eclipse.jdt.internal.corext.codemanipulation.AddUnimplementedConstructorsOperation;
-import org.eclipse.jdt.internal.corext.codemanipulation.AddUnimplementedMethodsOperation;
-import org.eclipse.jdt.internal.corext.codemanipulation.CodeGenerationSettings;
-import org.eclipse.jdt.internal.core.manipulation.StubUtility;
-import org.eclipse.jdt.internal.corext.dom.ASTNodes;
-import org.eclipse.jdt.internal.corext.util.CodeFormatterUtil;
-import org.eclipse.jdt.internal.corext.util.JavaModelUtil;
-import org.eclipse.jdt.internal.corext.util.Strings;
-import org.eclipse.jdt.internal.ui.preferences.JavaPreferencesSettings;
-import org.eclipse.jdt.ui.CodeGeneration;
-import org.eclipse.jdt.ui.CodeStyleConfiguration;
-import org.eclipse.text.edits.TextEdit;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class ASTHelper {
-
-	public static IType createType(IPackageFragment pack, String typeName, Collection<Class<?>> superInterfaces, Class<?> superClass) {
-		try {
-			IType createdType;
-			ImportsManager imports;
-			Set<String> existingImports;
-
-			String lineDelimiter = StubUtility.getLineDelimiterUsed(pack.getJavaProject());
-
-			String cuName = typeName + ".java";
-			ICompilationUnit parentCU = pack.createCompilationUnit(cuName, "", false, null); //$NON-NLS-1$
-			// create a working copy with a new owner
-
-			parentCU.becomeWorkingCopy(null); // cu is now a (primary) working
-			// copy
-
-			IBuffer buffer = parentCU.getBuffer();
-
-			String simpleTypeStub = constructSimpleTypeStub(typeName);
-			String cuContent = constructCUContent(parentCU, simpleTypeStub, lineDelimiter);
-			buffer.setContents(cuContent);
-
-			CompilationUnit astRoot = createASTForImports(parentCU);
-			existingImports = getExistingImports(astRoot);
-
-			imports = new ImportsManager(astRoot);
-			// add an import that will be removed again. Having this import
-			// solves 14661
-			imports.addImport(JavaModelUtil.concatenateName(pack.getElementName(), typeName));
-
-			String typeContent = constructTypeStub(typeName, superInterfaces, superClass, parentCU, imports, lineDelimiter);
-			int index = cuContent.lastIndexOf(simpleTypeStub);
-			if (index == -1) {
-				AbstractTypeDeclaration typeNode = (AbstractTypeDeclaration) astRoot.types().get(0);
-				int start = ((ASTNode) typeNode.modifiers().get(0)).getStartPosition();
-				int end = typeNode.getStartPosition() + typeNode.getLength();
-				buffer.replace(start, end - start, typeContent);
-			} else {
-				buffer.replace(index, simpleTypeStub.length(), typeContent);
-			}
-
-			createdType = parentCU.getType(typeName);
-
-			// add imports for superclass/interfaces, so types can be resolved
-			// correctly
-
-			ICompilationUnit cu = createdType.getCompilationUnit();
-
-			imports.create(false, null);
-
-			JavaModelUtil.reconcile(cu);
-
-			// set up again
-			astRoot = createASTForImports(imports.getCompilationUnit());
-			imports = new ImportsManager(astRoot);
-
-			createTypeMembers(createdType, imports);
-
-			// add imports
-			imports.create(false, null);
-
-			removeUnusedImports(cu, existingImports, false);
-
-			JavaModelUtil.reconcile(cu);
-
-			format(createdType, lineDelimiter);
-
-			return createdType;
-		} catch (Exception e) {
-			return null;
-		}
-	}
-
-	/**
-	 * @param type
-	 * @param lineDelimiter
-	 * @throws JavaModelException
-	 */
-	private static void format(IType type, String lineDelimiter) throws JavaModelException {
-		ISourceRange range = type.getSourceRange();
-		ICompilationUnit cu = type.getCompilationUnit();
-		IBuffer buf = cu.getBuffer();
-		String originalContent = buf.getText(range.getOffset(), range.getLength());
-
-		String formattedContent = CodeFormatterUtil.format(CodeFormatter.K_CLASS_BODY_DECLARATIONS, originalContent, 0, lineDelimiter, type.getJavaProject());
-		formattedContent = Strings.trimLeadingTabsAndSpaces(formattedContent);
-		buf.replace(range.getOffset(), range.getLength(), formattedContent);
-		cu.commitWorkingCopy(true, null);
-	}
-
-	public static IMethod createMethod(IType type, String methodName, Class<?> returnType, String contentReturnValue, List<Class<?>> arguments) {
-		try {
-			ICompilationUnit cu = type.getCompilationUnit();
-			JavaModelUtil.reconcile(cu);
-			CompilationUnit astUnit = createASTForImports(cu);
-			ImportsManager imports = new ImportsManager(astUnit);
-			Set existingImports = getExistingImports(astUnit);
-
-			List<String> paraNames = new ArrayList<String>();
-			if (arguments != null) {
-				for (Class<?> arg : arguments) {
-					paraNames.add(arg.getSimpleName());
-					imports.addImport(arg.getName());
-				}
-			}
-
-			String lineDelimiter = StubUtility.getLineDelimiterUsed(type.getJavaProject());
-			StringBuilder contents = new StringBuilder();
-			String comment = CodeGeneration.getMethodComment(type.getCompilationUnit(), type.getTypeQualifiedName('.'), methodName, paraNames.toArray(new String[paraNames.size()]), new String[0], Signature.createTypeSignature((returnType == null ? "void" : returnType.getSimpleName()), true), null, lineDelimiter); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			if (comment != null) {
-				contents.append(comment);
-				contents.append(lineDelimiter);
-			}
-			if (returnType != null) {
-				imports.addImport(returnType.getName());
-			}
-			contents.append("public " + (returnType == null ? "void " : returnType.getSimpleName() + " ") + methodName + "("); //$NON-NLS-1$
-			for (int i = 0; i < paraNames.size(); i++) {
-				String arg = paraNames.get(i);
-				contents.append(arg + " " + Character.toLowerCase(arg.charAt(0)) + arg.substring(1));
-				if (i < paraNames.size()) {
-					contents.append(" ");
-				}
-			}
-			contents.append(") {"); //$NON-NLS-1$
-			contents.append(lineDelimiter);
-
-			final String content = CodeGeneration.getMethodBodyContent(type.getCompilationUnit(), type.getTypeQualifiedName('.'), methodName, false, "", lineDelimiter); //$NON-NLS-1$ //$NON-NLS-2$
-			if (content != null && content.length() != 0)
-				contents.append("\t" + content);
-			// nameMap.append("\n");
-			if (returnType != null) {
-				contents.append("\treturn " + contentReturnValue + ";");
-				contents.append(lineDelimiter);
-			}
-			contents.append("}"); //$NON-NLS-1$
-			removeUnusedImports(cu, existingImports, true);
-
-			JavaModelUtil.reconcile(cu);
-			format(type, lineDelimiter);
-			return type.createMethod(contents.toString(), null, true, null);
-		} catch (CoreException e) {
-		}
-		return null;
-
-	}
-
-	protected static void createTypeMembers(IType type, ImportsManager imports) throws CoreException {
-		createInheritedMethods(type, true, true, imports);
-	}
-
-	protected static IMethod[] createInheritedMethods(IType type, boolean doConstructors, boolean doUnimplementedMethods, ImportsManager imports) throws CoreException {
-		final ICompilationUnit cu = type.getCompilationUnit();
-		JavaModelUtil.reconcile(cu);
-		IMethod[] typeMethods = type.getMethods();
-		Set handleIds = new HashSet(typeMethods.length);
-		for (int index = 0; index < typeMethods.length; index++)
-			handleIds.add(typeMethods[index].getHandleIdentifier());
-		ArrayList<IMethod> newMethods = new ArrayList<IMethod>();
-		CodeGenerationSettings settings = JavaPreferencesSettings.getCodeGenerationSettings(type.getJavaProject());
-		settings.createComments = false;
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setResolveBindings(true);
-		parser.setSource(cu);
-		CompilationUnit unit = (CompilationUnit) parser.createAST(null);
-		final ITypeBinding binding = ASTNodes.getTypeBinding(unit, type);
-		if (binding != null) {
-			if (doUnimplementedMethods) {
-				AddUnimplementedMethodsOperation operation = new AddUnimplementedMethodsOperation(unit, binding, null, -1, false, true, false);
-				operation.setCreateComments(false);
-				operation.run(null);
-				createImports(imports, operation.getCreatedImports());
-			}
-			if (doConstructors) {
-				AddUnimplementedConstructorsOperation operation = new AddUnimplementedConstructorsOperation(unit, binding, null, -1, false, true, false, null);
-				operation.setOmitSuper(true);
-				operation.setCreateComments(false);
-				operation.run(null);
-				createImports(imports, operation.getCreatedImports());
-			}
-		}
-		JavaModelUtil.reconcile(cu);
-		typeMethods = type.getMethods();
-		for (int index = 0; index < typeMethods.length; index++)
-			if (!handleIds.contains(typeMethods[index].getHandleIdentifier()))
-				newMethods.add(typeMethods[index]);
-		IMethod[] methods = new IMethod[newMethods.size()];
-		newMethods.toArray(methods);
-		return methods;
-	}
-
-	private static void createImports(ImportsManager imports, String[] createdImports) {
-		for (int index = 0; index < createdImports.length; index++)
-			imports.addImport(createdImports[index]);
-	}
-
-	private static void removeUnusedImports(ICompilationUnit cu, Set existingImports, boolean needsSave) throws CoreException {
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setSource(cu);
-		parser.setResolveBindings(true);
-
-		CompilationUnit root = (CompilationUnit) parser.createAST(null);
-		if (root.getProblems().length == 0) {
-			return;
-		}
-
-		List importsDecls = root.imports();
-		if (importsDecls.isEmpty()) {
-			return;
-		}
-		ImportsManager imports = new ImportsManager(root);
-
-		int importsEnd = ASTNodes.getExclusiveEnd((ASTNode) importsDecls.get(importsDecls.size() - 1));
-		IProblem[] problems = root.getProblems();
-		for (int i = 0; i < problems.length; i++) {
-			IProblem curr = problems[i];
-			if (curr.getSourceEnd() < importsEnd) {
-				int id = curr.getID();
-				if (id == IProblem.UnusedImport || id == IProblem.NotVisibleType) { // not visible
-					// problems hide
-					// unused -> remove
-					// both
-					int pos = curr.getSourceStart();
-					for (int k = 0; k < importsDecls.size(); k++) {
-						ImportDeclaration decl = (ImportDeclaration) importsDecls.get(k);
-						if (decl.getStartPosition() <= pos && pos < decl.getStartPosition() + decl.getLength()) {
-							if (existingImports.isEmpty() || !existingImports.contains(ASTNodes.asString(decl))) {
-								String name = decl.getName().getFullyQualifiedName();
-								if (decl.isOnDemand()) {
-									name += ".*"; //$NON-NLS-1$
-								}
-								if (decl.isStatic()) {
-									imports.removeStaticImport(name);
-								} else {
-									imports.removeImport(name);
-								}
-							}
-							break;
-						}
-					}
-				}
-			}
-		}
-		imports.create(needsSave, null);
-	}
-
-	private static Set /* String */getExistingImports(CompilationUnit root) {
-		List imports = root.imports();
-		Set res = new HashSet(imports.size());
-		for (int i = 0; i < imports.size(); i++) {
-			res.add(ASTNodes.asString((ImportDeclaration) imports.get(i)));
-		}
-		return res;
-	}
-
-	private static CompilationUnit createASTForImports(ICompilationUnit cu) {
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setSource(cu);
-		parser.setResolveBindings(false);
-		parser.setFocalPosition(0);
-		return (CompilationUnit) parser.createAST(null);
-	}
-
-	protected static String constructCUContent(ICompilationUnit cu, String typeContent, String lineDelimiter) throws CoreException {
-		String fileComment = "";
-		String typeComment = "";
-		IPackageFragment pack = (IPackageFragment) cu.getParent();
-		String content = CodeGeneration.getCompilationUnitContent(cu, fileComment, typeComment, typeContent, lineDelimiter);
-		if (content != null) {
-			ASTParser parser = ASTParser.newParser(AST.JLS3);
-			parser.setProject(cu.getJavaProject());
-			parser.setSource(content.toCharArray());
-			CompilationUnit unit = (CompilationUnit) parser.createAST(null);
-			if ((pack.isDefaultPackage() || unit.getPackage() != null) && !unit.types().isEmpty()) {
-				return content;
-			}
-		}
-		StringBuffer buf = new StringBuffer();
-		if (!pack.isDefaultPackage()) {
-			buf.append("package ").append(pack.getElementName()).append(';'); //$NON-NLS-1$
-		}
-		buf.append(lineDelimiter).append(lineDelimiter);
-		if (typeComment != null) {
-			buf.append(typeComment).append(lineDelimiter);
-		}
-		buf.append(typeContent);
-		return buf.toString();
-	}
-
-	/*
-	 * Called from createType to construct the source for this type
-	 */
-	private static String constructTypeStub(String typeName, Collection<Class<?>> superInterfaces, Class<?> superClass, ICompilationUnit parentCU, ImportsManager imports, String lineDelimiter) throws CoreException {
-		StringBuffer buf = new StringBuffer();
-
-		int modifiers = Flags.AccPublic;
-		buf.append(Flags.toString(modifiers));
-		if (modifiers != 0) {
-			buf.append(' ');
-		}
-		String type = "class ";//$NON-NLS-1$
-		String templateID = CodeGeneration.CLASS_BODY_TEMPLATE_ID;
-		buf.append(type);
-		buf.append(typeName);
-		writeSuperClass(buf, imports, superClass);
-		writeSuperInterfaces(buf, imports, superInterfaces);
-
-		buf.append(" {").append(lineDelimiter); //$NON-NLS-1$
-		String typeBody = CodeGeneration.getTypeBody(templateID, parentCU, typeName, lineDelimiter);
-		if (typeBody != null) {
-			buf.append(typeBody);
-		} else {
-			buf.append(lineDelimiter);
-		}
-		buf.append('}').append(lineDelimiter);
-		return buf.toString();
-	}
-
-	private static void writeSuperClass(StringBuffer buf, ImportsManager imports, Class<?> superType) {
-		if (superType == null) {
-			return;
-		}
-		String superclass = superType.getName();
-		buf.append(" extends "); //$NON-NLS-1$
-		buf.append(imports.addImport(superclass));
-	}
-
-	private static void writeSuperInterfaces(StringBuffer buf, ImportsManager imports, Collection<Class<?>> superInterfaces) {
-		if (superInterfaces == null || superInterfaces.isEmpty()) {
-			return;
-		}
-		List<String> interfaces = new ArrayList<String>();
-		for (Class<?> t : superInterfaces) {
-			String name = t.getName();
-			interfaces.add(name);
-			imports.addImport(name);
-		}
-		int last = interfaces.size() - 1;
-		if (last >= 0) {
-			buf.append(" implements "); //$NON-NLS-1$
-			String[] intfs = (String[]) interfaces.toArray(new String[interfaces.size()]);
-			ITypeBinding[] bindings;
-			bindings = new ITypeBinding[intfs.length];
-			for (int i = 0; i <= last; i++) {
-				ITypeBinding binding = bindings[i];
-				if (binding != null) {
-					buf.append(imports.addImport(binding));
-				} else {
-					buf.append(imports.addImport(intfs[i]));
-				}
-				if (i < last) {
-					buf.append(',');
-				}
-			}
-		}
-	}
-
-	private static String constructSimpleTypeStub(String typeName) {
-		StringBuffer buf = new StringBuffer("public class "); //$NON-NLS-1$
-		buf.append(typeName);
-		buf.append("{ }"); //$NON-NLS-1$
-		return buf.toString();
-	}
-
-	/**
-	 * Class used in stub creation routines to add needed imports to a compilation unit.
-	 */
-	public static class ImportsManager {
-
-		private ImportRewrite fImportsRewrite;
-
-		public ImportsManager(CompilationUnit astRoot) {
-			fImportsRewrite = CodeStyleConfiguration.createImportRewrite(astRoot, true);
-		}
-
-		public ICompilationUnit getCompilationUnit() {
-			return fImportsRewrite.getCompilationUnit();
-		}
-
-		/**
-		 * Adds a new import declaration that is sorted in the existing imports. If an import already exists or the import would conflict with an import of an other type with the same simple name, the import is not added.
-		 * 
-		 * @param qualifiedTypeName
-		 *            The fully qualified name of the type to import (dot separated).
-		 * @return Returns the simple type name that can be used in the code or the fully qualified type name if an import conflict prevented the import.
-		 */
-		public String addImport(String qualifiedTypeName) {
-			return fImportsRewrite.addImport(qualifiedTypeName);
-		}
-
-		/**
-		 * Adds a new import declaration that is sorted in the existing imports. If an import already exists or the import would conflict with an import of an other type with the same simple name, the import is not added.
-		 * 
-		 * @param typeBinding
-		 *            the binding of the type to import
-		 * 
-		 * @return Returns the simple type name that can be used in the code or the fully qualified type name if an import conflict prevented the import.
-		 */
-		public String addImport(ITypeBinding typeBinding) {
-			return fImportsRewrite.addImport(typeBinding);
-		}
-
-		/**
-		 * Adds a new import declaration for a static type that is sorted in the existing imports. If an import already exists or the import would conflict with an import of an other static import with the same simple name, the import is not added.
-		 * 
-		 * @param declaringTypeName
-		 *            The qualified name of the static's member declaring type
-		 * @param simpleName
-		 *            the simple name of the member; either a field or a method name.
-		 * @param isField
-		 *            <code>true</code> specifies that the member is a field, <code>false</code> if it is a method.
-		 * @return returns either the simple member name if the import was successful or else the qualified name if an import conflict prevented the import.
-		 * 
-		 * @since 3.2
-		 */
-		public String addStaticImport(String declaringTypeName, String simpleName, boolean isField) {
-			return fImportsRewrite.addStaticImport(declaringTypeName, simpleName, isField);
-		}
-
-		public void create(boolean needsSave, IProgressMonitor monitor) throws CoreException {
-			TextEdit edit = fImportsRewrite.rewriteImports(monitor);
-			JavaModelUtil.applyEdit(fImportsRewrite.getCompilationUnit(), edit, needsSave, null);
-		}
-
-		public void removeImport(String qualifiedName) {
-			fImportsRewrite.removeImport(qualifiedName);
-		}
-
-		public void removeStaticImport(String qualifiedName) {
-			fImportsRewrite.removeStaticImport(qualifiedName);
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/ClasspathContainer.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/ClasspathContainer.java
deleted file mode 100755
index adc7c5c..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/ClasspathContainer.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.jdt;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jdt.core.IClasspathContainer;
-import org.eclipse.jdt.core.IClasspathEntry;
-
-public class ClasspathContainer implements IClasspathContainer {
-	IClasspathEntry[] entries;
-
-	/**
-	 * 
-	 */
-	public ClasspathContainer(IClasspathEntry[] entries) {
-		this.entries = entries;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.core.IClasspathContainer#getClasspathEntries()
-	 */
-	public IClasspathEntry[] getClasspathEntries() {
-		return entries;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.core.IClasspathContainer#getDescription()
-	 */
-	public String getDescription() {
-		return IContainerConstants.DESCRIPTION;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.core.IClasspathContainer#getKind()
-	 */
-	public int getKind() {
-		return K_APPLICATION;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.core.IClasspathContainer#getPath()
-	 */
-	public IPath getPath() {
-		return new Path(IContainerConstants.LIB_CONTAINER);
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/ClasspathContainerInitializer.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/ClasspathContainerInitializer.java
deleted file mode 100755
index 0904286..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/ClasspathContainerInitializer.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.jdt;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jdt.core.IClasspathContainer;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-
-public class ClasspathContainerInitializer extends org.eclipse.jdt.core.ClasspathContainerInitializer {
-
-	public ClasspathContainerInitializer() {
-	}
-
-	@Override
-	public void initialize(IPath containerPath, IJavaProject project) throws CoreException {
-		int size = containerPath.segmentCount();
-		if (size > 0) {
-			if (containerPath.segment(0).equals(IContainerConstants.LIB_CONTAINER)) {
-				ClasspathContainer container = ProjectHelper.createContainer();
-				JavaCore.setClasspathContainer(containerPath, new IJavaProject[] { project }, new IClasspathContainer[] { container }, null);
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/IContainerConstants.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/IContainerConstants.java
deleted file mode 100755
index 886761a..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/IContainerConstants.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.jdt;
-
-public interface IContainerConstants {
-	String LIB_CONTAINER = "org.eclipse.xwt.tools.ui.CONTAINER";
-
-	String DESCRIPTION = "SWT Library";
-
-	String JAR_FILE_EXTENSION = "jar";
-
-	String JAR_LIB = "plugins";
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/ProjectHelper.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/ProjectHelper.java
deleted file mode 100755
index 973ef94..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/ProjectHelper.java
+++ /dev/null
@@ -1,250 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.jdt;
-
-import java.io.IOException;
-import java.lang.reflect.Field;
-import java.net.URL;
-import java.util.ArrayList;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IBundleGroup;
-import org.eclipse.core.runtime.IBundleGroupProvider;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jdt.core.IClasspathContainer;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.pde.core.plugin.IPluginBase;
-import org.eclipse.pde.core.plugin.IPluginImport;
-import org.eclipse.pde.core.plugin.IPluginReference;
-import org.eclipse.pde.internal.core.ICoreConstants;
-import org.eclipse.pde.internal.core.bundle.WorkspaceBundleFragmentModel;
-import org.eclipse.pde.internal.core.bundle.WorkspaceBundlePluginModel;
-import org.eclipse.pde.internal.core.bundle.WorkspaceBundlePluginModelBase;
-import org.osgi.framework.Bundle;
-
-public class ProjectHelper {
-	static String[] bundleNames = new String[] { "org.eclipse.swt." + Platform.getWS() + "." + Platform.getOS() + "." + Platform.getOSArch(), "org.eclipse.swt." + Platform.getWS() + "." + Platform.getOS(), "org.eclipse.jface" };
-
-	/**
-	 * Collect all jars
-	 * 
-	 * @return
-	 */
-	public static ClasspathContainer createContainer() {
-		ArrayList<IClasspathEntry> entries = new ArrayList<IClasspathEntry>();
-
-		for (String bundleName : bundleNames) {
-			Bundle bundle = Platform.getBundle(bundleName);
-			try {
-				if (bundle == null) {
-					continue;
-				}
-				String fileName = bundle.getLocation(); // maybe hard coded
-				if (fileName != null && fileName.startsWith("reference:file:")) {
-					fileName = fileName.substring(15);
-				}
-				IPath path = new Path(fileName);
-				if (path.toFile().exists()) {
-					if (IContainerConstants.JAR_FILE_EXTENSION.equalsIgnoreCase(path.getFileExtension())) {
-						entries.add(JavaCore.newLibraryEntry(path, null, null));
-					}
-				}
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
-		}
-		IClasspathEntry[] paths = new IClasspathEntry[entries.size()];
-		entries.toArray(paths);
-
-		return new ClasspathContainer(paths);
-	}
-
-	public static void checkDependenceJars(IProject project) {
-		checkDependenceJars(JavaCore.create(project));
-	}
-
-	/**
-	 * Check if it is a plugin. If it is, check if com.soyatec.eface.ui is used.
-	 * 
-	 * @param javaProject
-	 */
-	public static void checkDependenceJars(IJavaProject javaProject) {
-		if (javaProject == null) {
-			return;
-		}
-		IProject project = javaProject.getProject();
-		IFile file = project.getFile(ICoreConstants.BUNDLE_FILENAME_DESCRIPTOR);
-
-		if (file != null && file.exists()) {
-			WorkspaceBundlePluginModelBase fModel = null;
-			IFile fragmentFile = project.getFile(ICoreConstants.FRAGMENT_FILENAME_DESCRIPTOR);
-			IFile pluginFile = project.getFile(ICoreConstants.PLUGIN_FILENAME_DESCRIPTOR);
-			if (fragmentFile != null && fragmentFile.exists()) {
-				fModel = new WorkspaceBundleFragmentModel(file, fragmentFile);
-			} else {
-				fModel = new WorkspaceBundlePluginModel(file, pluginFile);
-			}
-			IPluginBase pluginBase = fModel.getPluginBase();
-			IPluginImport[] imports = pluginBase.getImports();
-			for (IPluginImport pluginImport : imports) {
-				// if (eFaceRCPPlugin.PLUGIN_ID.equals(pluginImport.getName())) {
-				return;
-				// }
-			}
-
-			try {
-				IPluginReference[] dependencies = getDependencies();
-				for (IPluginReference pluginReference : dependencies) {
-					IPluginImport iimport = fModel.getPluginFactory().createImport();
-					iimport.setId(pluginReference.getId());
-					iimport.setVersion(pluginReference.getVersion());
-					iimport.setMatch(pluginReference.getMatch());
-					pluginBase.add(iimport);
-				}
-				fModel.save();
-			} catch (CoreException e) {
-				e.printStackTrace();
-			}
-		} else {
-			AddJars(javaProject);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.pde.ui.templates.AbstractTemplateSection#getDependencies(java.lang.String)
-	 */
-	public static IPluginReference[] getDependencies() {
-		return new IPluginReference[0];
-	}
-
-	protected static Bundle findProjectBundle(IProject project) {
-		try {
-			URL location = project.getLocationURI().toURL();
-
-			IBundleGroupProvider[] groupProviders = Platform.getBundleGroupProviders();
-			for (IBundleGroupProvider bundleGroupProvider : groupProviders) {
-				for (IBundleGroup bundleGroup : bundleGroupProvider.getBundleGroups()) {
-					for (Bundle bundle : bundleGroup.getBundles()) {
-						URL bundlePath = bundle.getEntry("/");
-						URL url = FileLocator.resolve(bundlePath);
-						if (location.equals(url)) {
-							return bundle;
-						}
-					}
-				}
-			}
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-
-	protected static boolean containsJar(IJavaProject javaProject, IClasspathEntry entry, String jarName) {
-		switch (entry.getEntryKind()) {
-		case IClasspathEntry.CPE_VARIABLE:
-			IClasspathEntry resolvedEntry = JavaCore.getJavaCore().getResolvedClasspathEntry(entry);
-			IPath resolvedPath = resolvedEntry.getPath();
-			String string = resolvedPath.toString();
-			if (string.indexOf(jarName) != -1) {
-				return true;
-			}
-			break;
-		case IClasspathEntry.CPE_CONTAINER:
-			try {
-				IPath path = entry.getPath();
-				IClasspathContainer classpathContainer = JavaCore.getJavaCore().getClasspathContainer(path, javaProject);
-				if (classpathContainer != null) {
-					classpathContainer.getClasspathEntries();
-					IClasspathEntry[] oldclasspath = classpathContainer.getClasspathEntries();
-					for (int i = 0; i < oldclasspath.length; i++) {
-						if (containsJar(javaProject, oldclasspath[i], jarName)) {
-							return true;
-						}
-					}
-				}
-			} catch (JavaModelException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
-			break;
-		case IClasspathEntry.CPE_SOURCE:
-		case IClasspathEntry.CPE_LIBRARY:
-			IPath path = entry.getPath();
-			String value = path.toString();
-			if (value.indexOf(jarName) != -1) {
-				return true;
-			}
-		}
-
-		return false;
-	}
-
-	public static void AddJars(IJavaProject javaProject) {
-		try {
-			IClasspathEntry[] oldclasspath = javaProject.getRawClasspath();
-			for (int i = 0; i < oldclasspath.length; i++) {
-				if ((oldclasspath[i]).getPath().toString().equals(IContainerConstants.LIB_CONTAINER)) {
-					return;
-				}
-			}
-
-			ClasspathContainer container = ProjectHelper.createContainer();
-
-			IClasspathEntry newContainerEntry = JavaCore.newContainerEntry(container.getPath());
-			JavaCore.setClasspathContainer(newContainerEntry.getPath(), new IJavaProject[] { javaProject }, new IClasspathContainer[] { container }, null);
-
-			IClasspathEntry[] newclasspath = new IClasspathEntry[oldclasspath.length + 1];
-			for (int i = 0; i < oldclasspath.length; i++) {
-				newclasspath[i] = oldclasspath[i];
-			}
-			newclasspath[newclasspath.length - 1] = newContainerEntry;
-			javaProject.setRawClasspath(newclasspath, null);
-		} catch (JavaModelException javaModelException) {
-			javaModelException.printStackTrace();
-		}
-	}
-
-	public static void RemoveJars(IJavaProject javaProject) {
-		try {
-			IClasspathEntry[] oldclasspath = javaProject.getRawClasspath();
-			for (int i = 0; i < oldclasspath.length; i++) {
-				IPath path = oldclasspath[i].getPath();
-				if (path.toString().equals(IContainerConstants.LIB_CONTAINER)) {
-					oldclasspath[i] = null;
-					break;
-				}
-				if (i == oldclasspath.length - 1) {
-					return;
-				}
-			}
-
-			IClasspathEntry[] newclasspath = new IClasspathEntry[oldclasspath.length - 1];
-			for (int i = 0, m = 0; i < oldclasspath.length; i++) {
-				if (oldclasspath[i] != null) {
-					newclasspath[m++] = oldclasspath[i];
-				}
-			}
-			javaProject.setRawClasspath(newclasspath, null);
-		} catch (JavaModelException javaModelException) {
-			javaModelException.printStackTrace();
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/AbstractBuilder.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/AbstractBuilder.java
deleted file mode 100755
index 003a7f9..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/AbstractBuilder.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.utils;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.pde.core.plugin.IPluginBase;
-import org.eclipse.pde.core.plugin.IPluginModelBase;
-import org.eclipse.pde.core.plugin.PluginRegistry;
-import org.eclipse.xwt.ui.XWTUIPlugin;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public abstract class AbstractBuilder {
-
-	IProject project;
-
-	public AbstractBuilder(IProject project) {
-		this.project = project;
-	}
-
-	public IProject getProject() {
-		return project;
-	}
-
-	public IPluginModelBase getModel() {
-		return PluginRegistry.findModel(project);
-	}
-
-	public IPluginBase getPluginBase() {
-		IPluginModelBase model = getModel();
-		if (model != null) {
-			return model.getPluginBase(true);
-		}
-		return null;
-	}
-
-	protected IStatus warning(String message) {
-		return new Status(IStatus.WARNING, XWTUIPlugin.PLUGIN_ID, message);
-	}
-
-	protected IStatus info(String message) {
-		return new Status(IStatus.INFO, XWTUIPlugin.PLUGIN_ID, message);
-	}
-
-	protected IStatus error(String message) {
-		return new Status(IStatus.ERROR, XWTUIPlugin.PLUGIN_ID, message);
-	}
-
-	protected void refreshLocal() throws CoreException {
-		project.refreshLocal(IProject.DEPTH_INFINITE, null);
-	}
-
-	protected void buildClean() throws CoreException {
-		project.build(IncrementalProjectBuilder.FULL_BUILD, null);
-	}
-
-	public abstract IStatus build();
-
-	public abstract IStatus unbuild();
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/ClassLoaderHelper.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/ClassLoaderHelper.java
deleted file mode 100755
index 5d63179..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/ClassLoaderHelper.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.utils;
-
-import java.io.File;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-
-public class ClassLoaderHelper {
-
-	public static URL getResourceAsURL(IJavaProject javaProject, String name) {
-		if (javaProject == null)
-			return null;
-
-		Set<IJavaProject> visited = new HashSet<IJavaProject>();
-		URL url = findResourceURL(javaProject, visited, true, name);
-		if (url == null) {
-			IFile file = javaProject.getProject().getFile(name);
-			if (file.exists()) {
-				url = toURL(file.getLocation());
-			}
-		}
-		return url;
-	}
-
-	public static byte[] getClassContent(IJavaProject javaProject, String className) {
-		if (javaProject == null || !javaProject.exists())
-			return null;
-		String resourceName = className.replace('.', '/') + ".class";
-		try {
-			IPath outPath = javaProject.getProject().getLocation().removeLastSegments(1).append(javaProject.getOutputLocation());
-			outPath = outPath.addTrailingSeparator();
-			{
-				URL url = toURL(outPath.append(resourceName));
-				if (url != null) {
-					InputStream inputStream = url.openStream();
-					byte[] content = new byte[inputStream.available()];
-					inputStream.read(content);
-					return content;
-				}
-				for (IProject project : javaProject.getProject().getReferencedProjects()) {
-					if (!project.isOpen()) {
-						continue;
-					}
-					IJavaProject javaReferencedProject = JavaCore.create(project);
-					if (javaReferencedProject.exists()) {
-						byte[] content = getClassContent(javaReferencedProject, className);
-						if (content != null) {
-							return content;
-						}
-					}
-				}
-			}
-			IType type = javaProject.findType(className);
-			if (type != null && type.exists()) {
-				if (type.isBinary()) {
-					return type.getClassFile().getBytes();
-				} else {
-					IJavaProject typeProject = type.getJavaProject();
-					if (!javaProject.equals(typeProject)) {
-						return getClassContent(typeProject, className);
-					}
-				}
-			}
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-
-	public static URL[] getClasspathAsURLArray(IJavaProject javaProject) {
-		if (javaProject == null)
-			return null;
-		Set<IJavaProject> visited = new HashSet<IJavaProject>();
-		List<URL> urls = new ArrayList<URL>(20);
-		collectClasspathURLs(javaProject, urls, visited, true);
-		URL[] result = new URL[urls.size()];
-		urls.toArray(result);
-		return result;
-	}
-
-	private static URL findResourceURL(IJavaProject javaProject, Set<IJavaProject> visited, boolean isFirstProject, String name) {
-		if (visited.contains(javaProject))
-			return null;
-		visited.add(javaProject);
-		try {
-			IPath outPath = javaProject.getProject().getLocation().removeLastSegments(1).append(javaProject.getOutputLocation());
-			outPath = outPath.addTrailingSeparator();
-			{
-				URL url = toURL(outPath.append(name));
-				if (url != null) {
-					return url;
-				}
-			}
-			for (IPackageFragmentRoot fragment : javaProject.getPackageFragmentRoots()) {
-				if (fragment.getKind() == IPackageFragmentRoot.K_SOURCE) {
-					URL url = toURL(fragment.getResource().getLocation().append(name));
-					if (url != null) {
-						return url;
-					}
-				}
-			}
-			// urls.add(out);
-			IClasspathEntry[] entries = javaProject.getResolvedClasspath(true);
-			for (IClasspathEntry entry : entries) {
-				switch (entry.getEntryKind()) {
-				case IClasspathEntry.CPE_LIBRARY: {
-					// TODO
-					IClasspathEntry resolveEntry = JavaCore.getResolvedClasspathEntry(entry);
-					File file = resolveEntry.getPath().toFile();
-					IPath path = resolveEntry.getPath();
-					if (!file.exists()) {
-						String projectName = path.segment(0);
-						IProject project = javaProject.getProject().getWorkspace().getRoot().getProject(projectName);
-						path = project.getLocation().append(path.removeFirstSegments(1));
-					}
-					String spec = "jar:file:" + path.toString() + "!/" + name;
-					try {
-						URL url2 = new URL(spec);
-						url2.getContent();
-						return url2;
-					} catch (Exception e) {
-					}
-				}
-					break;
-				case IClasspathEntry.CPE_CONTAINER:
-
-					break;
-				case IClasspathEntry.CPE_VARIABLE: {
-					{
-						// TODO
-						URL url = toURL(outPath.append(name));
-						if (url != null) {
-							return url;
-						}
-					}
-				}
-					break;
-				case IClasspathEntry.CPE_PROJECT: {
-					if (isFirstProject || entry.isExported()) {
-						URL url = findResourceURL(getJavaProject(entry), visited, false, name);
-						if (url != null) {
-							return url;
-						}
-					}
-					break;
-				}
-				}
-			}
-		} catch (JavaModelException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-
-	private static URL toURL(IPath outPath) {
-		File file = outPath.toFile();
-		if (file != null && file.exists()) {
-			try {
-				return file.toURI().toURL();
-			} catch (MalformedURLException e) {
-				e.printStackTrace();
-			}
-		}
-		return null;
-	}
-
-	private static void collectClasspathURLs(IJavaProject javaProject, List<URL> urls, Set<IJavaProject> visited, boolean isFirstProject) {
-		if (visited.contains(javaProject))
-			return;
-		visited.add(javaProject);
-		try {
-			IPath outPath = javaProject.getProject().getWorkspace().getRoot().getFullPath().append(javaProject.getOutputLocation());
-			outPath = outPath.addTrailingSeparator();
-			URL out = createFileURL(outPath);
-			urls.add(out);
-			IClasspathEntry[] entries = null;
-			entries = javaProject.getResolvedClasspath(true);
-			for (IClasspathEntry entry : entries) {
-				switch (entry.getEntryKind()) {
-				case IClasspathEntry.CPE_LIBRARY:
-				case IClasspathEntry.CPE_CONTAINER:
-				case IClasspathEntry.CPE_VARIABLE:
-					collectClasspathEntryURL(entry, urls);
-					break;
-				case IClasspathEntry.CPE_PROJECT: {
-					if (isFirstProject || entry.isExported())
-						collectClasspathURLs(getJavaProject(entry), urls, visited, false);
-					break;
-				}
-				}
-			}
-		} catch (JavaModelException e) {
-			return;
-		}
-	}
-
-	private static URL createFileURL(IPath path) {
-		URL url = null;
-		try {
-			url = new URL("file://" + path.toOSString());
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-		return url;
-	}
-
-	private static void collectClasspathEntryURL(IClasspathEntry entry, List<URL> urls) {
-		URL url = createFileURL(entry.getPath());
-		if (url != null)
-			urls.add(url);
-	}
-
-	private static IJavaProject getJavaProject(IClasspathEntry entry) {
-		IProject proj = ResourcesPlugin.getWorkspace().getRoot().getProject(entry.getPath().segment(0));
-		if (proj != null)
-			return JavaCore.create(proj);
-		return null;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/DependencyBuilder.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/DependencyBuilder.java
deleted file mode 100755
index 36f1e56..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/DependencyBuilder.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.utils;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.pde.core.plugin.IPluginBase;
-import org.eclipse.pde.core.plugin.IPluginImport;
-import org.eclipse.pde.core.plugin.IPluginModel;
-import org.eclipse.pde.core.plugin.IPluginModelBase;
-import org.eclipse.pde.core.plugin.IPluginModelFactory;
-import org.eclipse.pde.core.plugin.ISharedExtensionsModel;
-import org.eclipse.pde.core.plugin.PluginRegistry;
-import org.eclipse.pde.internal.core.bundle.BundlePluginBase;
-import org.eclipse.pde.internal.core.bundle.BundlePluginModelBase;
-import org.eclipse.pde.internal.core.bundle.WorkspaceBundleModel;
-import org.eclipse.pde.internal.core.ibundle.IBundle;
-import org.eclipse.pde.internal.core.ibundle.IBundlePluginModelBase;
-import org.eclipse.pde.internal.core.plugin.AbstractPluginModelBase;
-import org.eclipse.pde.internal.core.plugin.PluginBase;
-import org.eclipse.pde.internal.core.plugin.WorkspaceExtensionsModel;
-import org.eclipse.pde.internal.core.text.plugin.PluginBaseNode;
-import org.eclipse.pde.internal.core.text.plugin.PluginDocumentNodeFactory;
-import org.eclipse.pde.internal.core.util.VersionUtil;
-import org.osgi.framework.Constants;
-import org.osgi.framework.Version;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class DependencyBuilder extends AbstractBuilder {
-	private IPluginModelBase[] dependencies;
-	private boolean[] optionals;
-
-	public DependencyBuilder(IProject project, IPluginModelBase[] dependencies) {
-		this(project, dependencies, null);
-	}
-
-	public DependencyBuilder(IProject project, IPluginModelBase[] dependencies, boolean[] optionals) {
-		super(project);
-		this.dependencies = dependencies;
-		this.optionals = optionals;
-		if (optionals == null) {
-			this.optionals = new boolean[dependencies.length];
-			for (int i = 0; i < this.optionals.length; i++) {
-				this.optionals[i] = false;
-			}
-		}
-	}
-
-	public IStatus build() {
-		if (dependencies == null || dependencies.length == 0) {
-			return warning("No dependencies found");
-		}
-		return addDependencies(Arrays.asList(dependencies));
-	}
-
-	private boolean equals(IPluginModelBase source, IPluginModelBase target) {
-		if (source == null) {
-			return target == null;
-		}
-		if (target == null) {
-			return false;
-		}
-		IPluginBase sourceBase = source.getPluginBase();
-		String sourceId = sourceBase.getId();
-		String sourceVersion = sourceBase.getVersion();
-		if (sourceVersion != null) {
-			sourceVersion = new Version(sourceVersion).toString();
-		}
-
-		IPluginBase targetBase = target.getPluginBase();
-		String targetId = targetBase.getId();
-		String targetVersion = targetBase.getVersion();
-		if (targetVersion != null) {
-			targetVersion = new Version(targetVersion).toString();
-		}
-		if (sourceVersion == null || targetVersion == null) {
-			return sourceId.equals(targetId);
-		}
-		return sourceId.equals(targetId) && sourceVersion.equals(targetVersion);
-	}
-
-	private void filter(List<IPluginModelBase> pluginImports, IPluginImport pluginImport) {
-		IPluginModelBase target = PluginRegistry.findModel(pluginImport.getId());
-		for (Iterator iterator = pluginImports.iterator(); iterator.hasNext();) {
-			IPluginModelBase source = (IPluginModelBase) iterator.next();
-			if (equals(source, target)) {
-				iterator.remove();
-			}
-		}
-	}
-
-	public IStatus addDependencies(List<IPluginModelBase> pluginImports) {
-		try {
-			refreshLocal();
-			IBundlePluginModelBase model = (IBundlePluginModelBase) getModel();
-			IPluginBase pluginBase = model.getPluginBase();
-			IPluginImport[] existedImports = pluginBase.getImports();
-			for (IPluginImport dep : existedImports) {
-				filter(pluginImports, dep);
-			}
-			if (pluginImports.isEmpty()) {
-				return warning("There's no dependency found.");
-			}
-			WorkspaceBundleModel bundleModel = (WorkspaceBundleModel) model.getBundleModel();
-			synchronized (bundleModel) {
-				bundleModel.load();
-				boolean isBundleEditable = bundleModel.isEditable();
-				if (!isBundleEditable){
-					bundleModel.setEditable(true);
-				}
-				ISharedExtensionsModel extensionsModel = model.getExtensionsModel();
-				if (extensionsModel != null && extensionsModel instanceof WorkspaceExtensionsModel){
-					((WorkspaceExtensionsModel)extensionsModel).setEditable(true);
-				}
-				
-				IPluginImport[] imports = new IPluginImport[pluginImports.size()];
-				for (int i = 0; i < pluginImports.size(); i++) {
-					IPluginModel candidate = (IPluginModel) pluginImports.get(i);
-					String pluginId = candidate.getPlugin().getId();
-					IPluginImport importNode = createImport(model.getPluginFactory(), pluginId);
-					importNode.setOptional(optionals[i]);
-					imports[i] = importNode;
-				}
-				addImports(pluginBase, imports);
-
-				bundleModel.save();
-				if (!isBundleEditable){
-					bundleModel.setEditable(false);
-				}
-				if (extensionsModel != null && extensionsModel instanceof WorkspaceExtensionsModel){
-					((WorkspaceExtensionsModel)extensionsModel).setEditable(false);
-				}
-			}
-			buildClean();
-		} catch (Exception e) {
-			return error("Build dependency error: " + e.getMessage());
-		}
-		return Status.OK_STATUS;
-	}
-
-	private IPluginImport createImport(IPluginModelFactory factory, String id) {
-		if (factory instanceof AbstractPluginModelBase) {
-			return ((AbstractPluginModelBase) factory).createImport(id);
-		} else if (factory instanceof BundlePluginModelBase) {
-			return ((BundlePluginModelBase) factory).createImport(id);
-		} else if (factory instanceof PluginDocumentNodeFactory) {
-			return ((PluginDocumentNodeFactory) factory).createImport(id);
-		}
-		return null;
-	}
-
-	private void addImports(IPluginBase base, IPluginImport[] imports) throws Exception {
-		if (base instanceof BundlePluginBase) {
-			((BundlePluginBase) base).add(imports);
-		} else if (base instanceof PluginBase) {
-			((PluginBase) base).add(imports);
-		} else if (base instanceof PluginBaseNode) {
-			((PluginBaseNode) base).add(imports);
-		}
-	}
-
-	public IStatus unbuild() {
-		if (dependencies == null || dependencies.length == 0) {
-			return warning("No dependency found");
-		}
-		try {
-			refreshLocal();
-			IBundlePluginModelBase model = (IBundlePluginModelBase) getModel();
-			IPluginBase pluginBase = model.getPluginBase();
-			List<IPluginImport> removes = new ArrayList<IPluginImport>();
-			IPluginImport[] existings = pluginBase.getImports();
-			for (IPluginImport pluginImport : existings) {
-				IPluginModelBase importModel = PluginRegistry.findModel(pluginImport.getId());
-				for (IPluginModelBase dep : dependencies) {
-					if (equals(importModel, dep)) {
-						removes.add(pluginImport);
-					}
-				}
-			}
-			if (removes.isEmpty()) {
-				return warning("No dependency found for remove");
-			}
-			IBundle bundle = model.getBundleModel().getBundle();
-			WorkspaceBundleModel bundleModel = (WorkspaceBundleModel) model.getBundleModel();
-			synchronized (bundleModel) {
-				bundleModel.load();
-				bundleModel.setEditable(true);
-				removeImports(pluginBase, removes.toArray(new IPluginImport[0]));
-				removeDependencies(bundle, removes.toArray(new IPluginImport[0]));
-				bundleModel.save();
-				bundleModel.setEditable(false);
-			}
-			buildClean();
-		} catch (Exception e) {
-			return error("Build dependency error: " + e.getMessage());
-		}
-		return Status.OK_STATUS;
-	}
-
-	private void removeImports(IPluginBase base, IPluginImport[] imports) throws CoreException {
-		if (base instanceof BundlePluginBase)
-			((BundlePluginBase) base).remove(imports);
-		else if (base instanceof PluginBase)
-			((PluginBase) base).remove(imports);
-		else if (base instanceof PluginBaseNode)
-			((PluginBaseNode) base).remove(imports);
-	}
-
-	/**
-	 * Fixed a bug of removing library from IPluginBase.remove(pluginImports), the bundle does not update at all.
-	 */
-	private void removeDependencies(IBundle bundle, IPluginImport[] imports) {
-		String oldValue = bundle.getHeader(Constants.REQUIRE_BUNDLE);
-		if (oldValue == null || oldValue.equals("")) {
-			return;
-		}
-		List<String> values = new ArrayList<String>();
-		StringTokenizer stk = new StringTokenizer(oldValue, ",");
-		while (stk.hasMoreTokens()) {
-			values.add(stk.nextToken().trim());
-		}
-		for (IPluginImport dep : imports) {
-			String name = dep.getId();
-			for (Iterator<String> iterator = values.iterator(); iterator.hasNext();) {
-				String requiredDep = iterator.next();
-				if (requiredDep.startsWith(name)) {
-					iterator.remove();
-				}
-			}
-		}
-		String newValue = null;
-		for (int i = 0; i < values.size(); i++) {
-			if (newValue == null) {
-				newValue = values.get(i);
-			} else {
-				newValue += "," + values.get(i);
-			}
-		}
-		bundle.setHeader(Constants.REQUIRE_BUNDLE, newValue);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/DisplayUtil.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/DisplayUtil.java
deleted file mode 100755
index 73c265c..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/DisplayUtil.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.utils;
-
-import java.net.URI;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.XWTException;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-
-public class DisplayUtil {
-
-	public static void open(IFile file) {
-		if (file != null) {
-			IJavaProject javaProject = JavaCore.create(file.getProject());
-			if (!javaProject.exists()) {
-				return;
-			}
-			URI uri = file.getLocationURI();
-			try {
-				XWT.setLoadingContext(ProjectContext.getContext(javaProject));
-				Object widget = XWT.load(uri.toURL());
-				if (!(widget instanceof Control)) {
-					throw new XWTException("Root element must be a control.");
-				}
-				Shell shell = ((Control)widget).getShell();
-				shell.pack();
-				shell.open();
-				while (!shell.isDisposed())
-					if (!shell.getDisplay().readAndDispatch())
-						shell.getDisplay().sleep();
-			} catch (Exception e) {
-				e.printStackTrace();
-				if (e instanceof RuntimeException) {
-					throw (RuntimeException) e;
-				}
-				throw new RuntimeException(e);
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/IBuildPropertiesConstants.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/IBuildPropertiesConstants.java
deleted file mode 100755
index 945a35e..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/IBuildPropertiesConstants.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2010 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.utils;
-
-public interface IBuildPropertiesConstants {
-	public final static String PERMISSIONS = "permissions"; //$NON-NLS-1$
-	public final static String LINK = "link"; //$NON-NLS-1$
-	public final static String EXECUTABLE = "executable"; //$NON-NLS-1$
-	public final static String ROOT_PREFIX = "root."; //$NON-NLS-1$
-	public final static String ROOT = "root"; //$NON-NLS-1$
-	public final static String ROOT_FOLDER_PREFIX = ROOT_PREFIX + "folder."; //$NON-NLS-1$
-	public final static String FOLDER_INFIX = ".folder."; //$NON-NLS-1$
-
-	public final static String TRUE = "true"; //$NON-NLS-1$
-	public final static String FALSE = "false"; //$NON-NLS-1$
-
-	public static final String PROPERTY_JAR_EXTRA_CLASSPATH = "jars.extra.classpath"; //$NON-NLS-1$
-	public static final String PROPERTY_JAR_ORDER = "jars.compile.order"; //$NON-NLS-1$
-	public static final String PROPERTY_SOURCE_PREFIX = "source."; //$NON-NLS-1$
-	public static final String PROPERTY_OUTPUT_PREFIX = "output."; //$NON-NLS-1$
-	public static final String PROPERTY_EXTRAPATH_PREFIX = "extra."; //$NON-NLS-1$	
-	public static final String PROPERTY_EXCLUDE_PREFIX = "exclude."; //$NON-NLS-1$
-	public static final String PROPERTY_JAR_SUFFIX = ".jar"; //$NON-NLS-1$
-	public static final String PROPERTY_MANIFEST_PREFIX = "manifest."; //$NON-NLS-1$
-
-	public static final String PROPERTY_CONVERTED_MANIFEST = "convertedManifest"; //$NON-NLS-1$
-	public static final String PROPERTY_QUALIFIER = "qualifier"; //$NON-NLS-1$
-	public static final String PROPERTY_VERSION_REPLACEMENT = "versionReplacement"; //$NON-NLS-1$
-	public static final String PROPERTY_NONE = "none"; //$NON-NLS-1$
-	public static final String PROPERTY_CONTEXT = "context"; //$NON-NLS-1$
-
-	public final static String GENERATION_SOURCE_PREFIX = "generate."; //$NON-NLS-1$
-	public final static String GENERATION_SOURCE_FEATURE_PREFIX = GENERATION_SOURCE_PREFIX + "feature@"; //$NON-NLS-1$
-	public final static String GENERATION_SOURCE_PLUGIN_PREFIX = GENERATION_SOURCE_PREFIX + "plugin@"; //$NON-NLS-1$
-	public final static String PROPERTY_SOURCE_FEATURE_NAME = "sourceFeature.name"; //$NON-NLS-1$
-
-	public static final String PROPERTY_CUSTOM = "custom"; //$NON-NLS-1$
-	public static final String PROPERTY_GENERATE_SOURCE_BUNDLE = "generateSourceBundle"; //$NON-NLS-1$
-	public static final String PROPERTY_ZIP_SUFFIX = ".zip"; //$NON-NLS-1$
-
-	public static final String PROPERTY_BIN_EXCLUDES = "bin.excludes"; //$NON-NLS-1$
-	public static final String PROPERTY_BIN_INCLUDES = "bin.includes"; //$NON-NLS-1$
-
-	public static final String PROPERTY_SRC_EXCLUDES = "src.excludes"; //$NON-NLS-1$
-	public static final String PROPERTY_SRC_INCLUDES = "src.includes"; //$NON-NLS-1$
-	public static final String PROPERTY_SRC_ROOTS = "src.additionalRoots"; //$NON-NLS-1$
-
-	public static final String PROPERTY_JAVAC_DEFAULT_ENCODING_PREFIX = "javacDefaultEncoding."; //$NON-NLS-1$
-	public static final String PROPERTY_JAVAC_CUSTOM_ENCODINGS_PREFIX = "javacCustomEncodings."; //$NON-NLS-1$
-	public static final String PROPERTY_JAVAC_WARNINGS_PREFIX = "javacWarnings."; //$NON-NLS-1$
-
-	public static final String DEFAULT_MATCH_ALL = "*"; //$NON-NLS-1$
-	public static final String DEFAULT_FINAL_SHAPE = "*"; //$NON-NLS-1$
-
-	public static final String PROPERTY_OVERWRITE_ROOTFILES = "overwriteRootFiles"; //$NON-NLS-1$
-
-	public static final String PROPERTY_CUSTOM_BUILD_CALLBACKS = "customBuildCallbacks"; //$NON-NLS-1$
-	public static final String PROPERTY_CUSTOM_CALLBACKS_BUILDPATH = "customBuildCallbacks.buildpath"; //$NON-NLS-1$
-	public static final String PROPERTY_CUSTOM_CALLBACKS_FAILONERROR = "customBuildCallbacks.failonerror"; //$NON-NLS-1$
-	public static final String PROPERTY_CUSTOM_CALLBACKS_INHERITALL = "customBuildCallbacks.inheritall"; //$NON-NLS-1$
-	public static final String PROPERTY_JAVAC_SOURCE = "javacSource"; //$NON-NLS-1$
-	public static final String PROPERTY_JAVAC_TARGET = "javacTarget"; //$NON-NLS-1$
-	public static final String PROPERTY_BOOT_CLASSPATH = "bootClasspath"; //$NON-NLS-1$
-	public static final String PROPERTY_JRE_COMPILATION_PROFILE = "jre.compilation.profile"; //$NON-NLS-1$
-
-	public static final String PROPERTY_SIGNIFICANT_VERSION_DIGITS = "significantVersionDigits"; //$NON-NLS-1$
-	public static final String PROPERTY_GENERATED_VERSION_LENGTH = "generatedVersionLength"; //$NON-NLS-1$
-
-	public static final String PROPERTY_RESOLVER_MODE = "osgi.resolverMode"; //$NON-NLS-1$
-	public static final String VALUE_DEVELOPMENT = "development"; //$NON-NLS-1$
-
-	public static final String RESOLVER_DEV_MODE = "resolution.devMode"; //$NON-NLS-1$
-	public static final String PROPERTY_INDIVIDUAL_SOURCE = "individualSourceBundles"; //$NON-NLS-1$
-	public static final String PROPERTY_ALLOW_BINARY_CYCLES = "allowBinaryCycles"; //$NON-NLS-1$
-
-	public static final String PROPERTY_P2_METADATA_REPO = "p2.metadata.repo"; //$NON-NLS-1$
-	public static final String PROPERTY_P2_ARTIFACT_REPO = "p2.artifact.repo"; //$NON-NLS-1$
-	public static final String PROPERTY_P2_PUBLISH_ARTIFACTS = "p2.publish.artifacts"; //$NON-NLS-1$
-	public static final String PROPERTY_P2_CATEGORY_SITE = "p2.category.site"; //$NON-NLS-1$
-	public static final String PROPERTY_P2_ROOT_NAME = "p2.root.name"; //$NON-NLS-1$
-	public static final String PROPERTY_P2_ROOT_VERSION = "p2.root.version"; //$NON-NLS-1$
-	public static final String PROPERTY_P2_FINAL_MODE_OVERRIDE = "p2.final.mode.override"; //$NON-NLS-1$
-	public static final String PROPERTY_P2_FLAVOR = "p2.flavor"; //$NON-NLS-1$
-	public static final String PROPERTY_P2_APPEND = "p2.append"; //$NON-NLS-1$
-	public static final String PROPERTY_P2_COMPRESS = "p2.compress"; //$NON-NLS-1$
-	public static final String PROPERTY_P2_METADATA_REPO_NAME = "p2.metadata.repo.name"; //$NON-NLS-1$
-	public static final String PROPERTY_P2_ARTIFACT_REPO_NAME = "p2.artifact.repo.name"; //$NON-NLS-1$
-	//Internal usage only
-	public static final String PROPERTY_P2_GENERATION_MODE = "p2.generation.mode"; //$NON-NLS-1$
-	public static final String SOURCE_PLUGIN = "sourcePlugin"; //$NON-NLS-1$
-
-	public static final String PROPERTY_PACKAGER_MODE = "packagerMode"; //$NON-NLS-1$
-	public static final String PROPERTY_PACKAGER_AS_NORMALIZER = "packagerAsNormalizer"; //$NON-NLS-1$
-}
-
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/ImageManager.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/ImageManager.java
deleted file mode 100755
index d904149..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/ImageManager.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.utils;
-
-import java.net.URL;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.xwt.ui.XWTUIPlugin;
-import org.osgi.framework.Bundle;
-
-public class ImageManager {
-
-	public static final IPath ICONS_PATH = new Path("/icons/full"); //$NON-NLS-1$
-
-	private static final String NAME_PREFIX = XWTUIPlugin.getDefault().getBundle().getSymbolicName() + ".";
-	private static final int NAME_PREFIX_LENGTH = NAME_PREFIX.length();
-
-	private static final String T_OBJ = "obj16"; //$NON-NLS-1$
-	private static final String T_OVR = "ovr16"; //$NON-NLS-1$
-	private static final String T_WIZBAN = "wizban"; //$NON-NLS-1$
-	private static final String T_ELCL = "elcl16"; //$NON-NLS-1$
-	private static final String T_DLCL = "dlcl16"; //$NON-NLS-1$
-	private static final String T_ETOOL = "etool16"; //$NON-NLS-1$
-	private static final String T_EVIEW = "eview16"; //$NON-NLS-1$
-
-	/*
-	 * Keys for images available from the Java-UI plug-in image registry.
-	 */
-	public static final String IMG_ELEMENT = NAME_PREFIX + "Element.png"; //$NON-NLS-1$
-	public static final String IMG_EVENT = NAME_PREFIX + "Event.png"; //$NON-NLS-1$
-	public static final String IMG_RESOURCES = NAME_PREFIX + "Resources.gif"; //$NON-NLS-1$
-	public static final String IMG_TRIGGER = NAME_PREFIX + "Trigger.gif"; //$NON-NLS-1$
-	public static final String IMG_PREVIEW = NAME_PREFIX + "Preview.png"; //$NON-NLS-1$
-	public static final String IMG_TABLE = NAME_PREFIX + "Table.gif"; //$NON-NLS-1$
-
-	/*
-	 * Set of predefined Image Descriptors.
-	 */
-	public static final ImageDescriptor OBJ_ELEMENT = createManagedFromKey(T_OBJ, IMG_ELEMENT); //$NON-NLS-1$
-	public static final ImageDescriptor OBJ_EVENT = createManagedFromKey(T_OBJ, IMG_EVENT); //$NON-NLS-1$
-	public static final ImageDescriptor OBJ_RESOURCES = createManagedFromKey(T_OBJ, IMG_RESOURCES); //$NON-NLS-1$
-	public static final ImageDescriptor OBJ_TRIGGER = createManagedFromKey(T_OBJ, IMG_TRIGGER); //$NON-NLS-1$
-	public static final ImageDescriptor OBJ_PREVIEW = createManagedFromKey(T_OBJ, IMG_PREVIEW); //$NON-NLS-1$
-	public static final ImageDescriptor OBJ_TABLE = createManagedFromKey(T_OBJ, IMG_TABLE); //$NON-NLS-1$
-
-	private static ImageDescriptor createManagedFromKey(String prefix, String key) {
-		return createManaged(prefix, key.substring(NAME_PREFIX_LENGTH), key);
-	}
-
-	private static ImageDescriptor createManaged(String prefix, String name, String key) {
-		ImageDescriptor result = create(prefix, name, true);
-		JFaceResources.getImageRegistry().put(key, result);
-		return result;
-	}
-
-	/*
-	 * Creates an image descriptor for the given path in a bundle. The path can contain variables like $NL$. If no image could be found, <code>useMissingImageDescriptor</code> decides if either the 'missing image descriptor' is returned or <code>null</code>. Added for 3.1.1.
-	 */
-	public static ImageDescriptor createImageDescriptor(Bundle bundle, IPath path, boolean useMissingImageDescriptor) {
-		URL url = FileLocator.find(bundle, path, null);
-		if (url != null) {
-			return ImageDescriptor.createFromURL(url);
-		}
-		if (useMissingImageDescriptor) {
-			return ImageDescriptor.getMissingImageDescriptor();
-		}
-		return null;
-	}
-
-	/*
-	 * Creates an image descriptor for the given prefix and name in the JDT UI bundle. The path can contain variables like $NL$. If no image could be found, <code>useMissingImageDescriptor</code> decides if either the 'missing image descriptor' is returned or <code>null</code>. or <code>null</code>.
-	 */
-	private static ImageDescriptor create(String prefix, String name, boolean useMissingImageDescriptor) {
-		IPath path = ICONS_PATH.append(prefix).append(name);
-		return createImageDescriptor(XWTUIPlugin.getDefault().getBundle(), path, useMissingImageDescriptor);
-	}
-
-	/*
-	 * Creates an image descriptor for the given prefix and name in the JDT UI bundle. The path can contain variables like $NL$. If no image could be found, the 'missing image descriptor' is returned.
-	 */
-	private static ImageDescriptor createUnManaged(String prefix, String name) {
-		return create(prefix, name, true);
-	}
-
-	/**
-	 * Returns the image managed under the given key in this registry.
-	 * 
-	 * @param key
-	 *            the image's key
-	 * @return the image managed under the given key
-	 */
-	public static Image get(String key) {
-		return JFaceResources.getImageRegistry().get(key);
-	}
-
-	public static Image getImage(ImageDescriptor imageDescriptor) {
-		return (Image) JFaceResources.getResources().get(imageDescriptor);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/LibraryBuilder.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/LibraryBuilder.java
deleted file mode 100755
index 65bd617..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/LibraryBuilder.java
+++ /dev/null
@@ -1,308 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.utils;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.pde.core.build.IBuild;
-import org.eclipse.pde.core.build.IBuildEntry;
-import org.eclipse.pde.core.build.IBuildModel;
-import org.eclipse.pde.core.plugin.IPluginBase;
-import org.eclipse.pde.core.plugin.IPluginLibrary;
-import org.eclipse.pde.core.plugin.IPluginModelBase;
-import org.eclipse.pde.internal.core.bundle.WorkspaceBundleModel;
-import org.eclipse.pde.internal.core.ibundle.IBundle;
-import org.eclipse.pde.internal.core.ibundle.IBundlePluginModelBase;
-import org.osgi.framework.Constants;
-
-/**
- * @author jliu jin.liu@soyatec.com
- */
-public class LibraryBuilder extends AbstractBuilder {
-
-	private String[] libraries;
-
-	public LibraryBuilder(IProject project, String[] libraries) {
-		super(project);
-		this.libraries = libraries;
-	}
-
-	public IStatus build() {
-		if (libraries == null || libraries.length == 0) {
-			return Status.CANCEL_STATUS;
-		}
-		try {
-			refreshLocal();
-			IBundlePluginModelBase model = (IBundlePluginModelBase) getModel();
-			IPluginBase pluginBase = model.getPluginBase();
-			WorkspaceBundleModel bundleModel = (WorkspaceBundleModel) model.getBundleModel();
-			synchronized (bundleModel) {
-				bundleModel.load();
-				boolean isNonEdit = bundleModel.isEditable();
-				if (!isNonEdit) {
-					bundleModel.setEditable(true);
-				}
-				for (String libPath : libraries) {
-					IPluginLibrary library = model.getPluginFactory().createLibrary();
-					library.setName(libPath.toString());
-					library.setExported(true);
-					pluginBase.add(library);
-				}
-				checkSourceRootEntry();
-				updateBuildProperties(new String[libraries.length], libraries, false);
-				updateJavaClasspathLibs(new String[libraries.length], libraries);
-
-				bundleModel.save();
-				if (!isNonEdit) {
-					bundleModel.setEditable(false);
-				}
-			}
-			buildClean();
-		} catch (CoreException e) {
-			error(e.getMessage());
-		}
-		return Status.OK_STATUS;
-	}
-
-	private void checkSourceRootEntry() {
-		IBundlePluginModelBase pluginModel = (IBundlePluginModelBase) getModel();
-		IPluginLibrary[] libraries = pluginModel.getPluginBase().getLibraries();
-		for (int i = 0; i < libraries.length; i++)
-			if (libraries[i].getName().equals(".")) //$NON-NLS-1$
-				return;
-		IBuildModel model = pluginModel.getBuildModel();
-		if (model == null)
-			return;
-
-		IBuildEntry[] entires = model.getBuild().getBuildEntries();
-		for (int i = 0; i < entires.length; i++) {
-			if (entires[i].getName().equals(IBuildPropertiesConstants.PROPERTY_SOURCE_PREFIX + '.')) {
-				IPluginLibrary library = pluginModel.getPluginFactory().createLibrary();
-				try {
-					library.setName("."); //$NON-NLS-1$
-					pluginModel.getPluginBase().add(library);
-				} catch (CoreException e) {
-				}
-			}
-		}
-	}
-
-	private IBuildModel getBuildModel() {
-		IBundlePluginModelBase pluginModel = (IBundlePluginModelBase) getModel();
-		if (pluginModel != null) {
-			return pluginModel.getBuildModel();
-		}
-		return null;
-	}
-
-	private void updateBuildProperties(final String[] oldPaths, final String[] newPaths, boolean modifySourceEntry) {
-		IBuildModel bmodel = getBuildModel();
-		if (bmodel == null)
-			return;
-
-		IBuild build = bmodel.getBuild();
-
-		IBuildEntry entry = build.getEntry(IBuildPropertiesConstants.PROPERTY_BIN_INCLUDES);
-		if (entry == null)
-			entry = bmodel.getFactory().createEntry(IBuildPropertiesConstants.PROPERTY_BIN_INCLUDES);
-
-		try {
-			// adding new entries
-			if (oldPaths[0] == null) {
-				for (int i = 0; i < newPaths.length; i++)
-					if (newPaths[i] != null) {
-						entry.addToken(newPaths[i]);
-						if (modifySourceEntry)
-							configureSourceBuildEntry(bmodel, null, newPaths[i]);
-					}
-				// removing entries
-			} else if (newPaths[0] == null) {
-				for (int i = 0; i < oldPaths.length; i++)
-					if (oldPaths[i] != null) {
-						entry.removeToken(oldPaths[i]);
-						if (modifySourceEntry)
-							configureSourceBuildEntry(bmodel, oldPaths[i], null);
-					}
-				if (entry.getTokens().length == 0)
-					build.remove(entry);
-				// rename entries
-			} else {
-				for (int i = 0; i < oldPaths.length; i++)
-					if (newPaths[i] != null && oldPaths[i] != null) {
-						entry.renameToken(oldPaths[i], newPaths[i]);
-						if (modifySourceEntry)
-							configureSourceBuildEntry(bmodel, oldPaths[i], newPaths[i]);
-					}
-			}
-		} catch (CoreException e) {
-		}
-	}
-
-	private void configureSourceBuildEntry(IBuildModel bmodel, String oldPath, String newPath) throws CoreException {
-		IBuild build = bmodel.getBuild();
-		IBuildEntry entry = build.getEntry(IBuildPropertiesConstants.PROPERTY_SOURCE_PREFIX + (oldPath != null ? oldPath : newPath));
-		try {
-			if (newPath != null) {
-				if (entry == null) {
-					IJavaProject jproject = JavaCore.create(project);
-					ArrayList tokens = new ArrayList();
-					IClasspathEntry[] entries = jproject.getRawClasspath();
-					for (int i = 0; i < entries.length; i++)
-						if (entries[i].getEntryKind() == IClasspathEntry.CPE_SOURCE)
-							tokens.add(entries[i].getPath().removeFirstSegments(1).addTrailingSeparator().toString());
-					if (tokens.size() == 0)
-						return;
-
-					entry = bmodel.getFactory().createEntry(IBuildPropertiesConstants.PROPERTY_SOURCE_PREFIX + newPath);
-					for (int i = 0; i < tokens.size(); i++)
-						entry.addToken((String) tokens.get(i));
-					build.add(entry);
-				} else
-					entry.setName(IBuildPropertiesConstants.PROPERTY_SOURCE_PREFIX + newPath);
-			} else if (entry != null && newPath == null)
-				build.remove(entry);
-		} catch (JavaModelException e) {
-		}
-	}
-
-	private void updateJavaClasspathLibs(String[] oldPaths, String[] newPaths) {
-		IJavaProject jproject = JavaCore.create(project);
-		try {
-			IClasspathEntry[] entries = jproject.getRawClasspath();
-			ArrayList toBeAdded = new ArrayList();
-			int index = -1;
-			entryLoop: for (int i = 0; i < entries.length; i++) {
-				if (entries[i].getEntryKind() == IClasspathEntry.CPE_LIBRARY) {
-					if (index == -1)
-						index = i;
-					// do not add the old paths (handling deletion/renaming)
-					IPath path = entries[i].getPath().removeFirstSegments(1).removeTrailingSeparator();
-					for (int j = 0; j < oldPaths.length; j++)
-						if (oldPaths[j] != null && path.equals(new Path(oldPaths[j]).removeTrailingSeparator()))
-							continue entryLoop;
-				} else if (entries[i].getEntryKind() == IClasspathEntry.CPE_CONTAINER)
-					if (index == -1)
-						index = i;
-				toBeAdded.add(entries[i]);
-			}
-			if (index == -1)
-				index = entries.length;
-
-			// add paths
-			for (int i = 0; i < newPaths.length; i++) {
-				if (newPaths[i] == null)
-					continue;
-				IClasspathEntry entry = JavaCore.newLibraryEntry(project.getFullPath().append(newPaths[i]), null, null, true);
-				if (!toBeAdded.contains(entry))
-					toBeAdded.add(index++, entry);
-			}
-
-			if (toBeAdded.size() == entries.length)
-				return;
-
-			IClasspathEntry[] updated = (IClasspathEntry[]) toBeAdded.toArray(new IClasspathEntry[toBeAdded.size()]);
-			jproject.setRawClasspath(updated, null);
-		} catch (JavaModelException e) {
-		}
-	}
-
-	public IStatus unbuild() {
-		if (libraries == null || libraries.length == 0) {
-			return warning("No library found.");
-		}
-		IPluginModelBase pluginModel = getModel();
-		IBundlePluginModelBase model = (IBundlePluginModelBase) pluginModel;
-		IPluginBase pluginBase = model.getPluginBase();
-		IPluginLibrary[] exists = pluginBase.getLibraries();
-		List<IPluginLibrary> libForRemove = new ArrayList<IPluginLibrary>();
-		for (IPluginLibrary pluginLibrary : exists) {
-			for (String libName : libraries) {
-				if (pluginLibrary.getName().equals(libName)) {
-					libForRemove.add(pluginLibrary);
-				}
-			}
-		}
-		if (libForRemove.isEmpty()) {
-			return warning("No library found.");
-		}
-
-		try {
-			refreshLocal();
-			WorkspaceBundleModel bundleModel = (WorkspaceBundleModel) model.getBundleModel();
-			synchronized (bundleModel) {
-				bundleModel.load();
-				boolean isNonEdit = bundleModel.isEditable();
-				if (!isNonEdit) {
-					bundleModel.setEditable(true);
-				}
-				String[] remove = new String[libForRemove.size()];
-				int i = 0;
-				IBundle bundle = bundleModel.getBundle();
-				for (IPluginLibrary pluginLibrary : libForRemove) {
-					pluginBase.remove(pluginLibrary);
-					String name = pluginLibrary.getName();
-					remove[i++] = name;
-				}
-				removeLibraries(bundle, remove);
-				bundleModel.save();
-				if (!isNonEdit) {
-					bundleModel.setEditable(false);
-				}
-				updateBuildProperties(remove, new String[remove.length], true);
-				updateJavaClasspathLibs(remove, new String[remove.length]);
-			}
-			buildClean();
-		} catch (CoreException e) {
-			error(e.getMessage());
-		}
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Fixed a bug of removing library from IPluginBase.remove(pluginLibrary), the bundle does not update at all.
-	 */
-	private void removeLibraries(IBundle bundle, String[] remove) {
-		String oldValue = bundle.getHeader(Constants.BUNDLE_CLASSPATH);
-		if (oldValue == null || oldValue.equals("")) {
-			return;
-		}
-		List<String> values = new ArrayList<String>();
-		StringTokenizer stk = new StringTokenizer(oldValue, ",");
-		while (stk.hasMoreTokens()) {
-			values.add(stk.nextToken().trim());
-		}
-		for (String r : remove) {
-			values.remove(r);
-		}
-		String newValue = null;
-		for (int i = 0; i < values.size(); i++) {
-			if (newValue == null) {
-				newValue = values.get(i);
-			} else {
-				newValue += "," + values.get(i);
-			}
-		}
-		bundle.setHeader(Constants.BUNDLE_CLASSPATH, newValue);
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/LoadingContext.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/LoadingContext.java
deleted file mode 100755
index 417ecf8..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/LoadingContext.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.utils;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.lang.ref.WeakReference;
-import java.util.ArrayList;
-
-import org.eclipse.xwt.IConstants;
-
-public class LoadingContext extends org.eclipse.xwt.DefaultLoadingContext {
-	String namespace = IConstants.XWT_NAMESPACE;
-	protected ArrayList<WeakReference<PropertyChangeListener>> changeSupport = new ArrayList<WeakReference<PropertyChangeListener>>();
-
-	public String getNamespace() {
-		return namespace;
-	}
-
-	public void setNamespace(String namespace) {
-		this.namespace = namespace;
-	}
-
-	public void addPropertyChangeListener(PropertyChangeListener changeListener) {
-		for (WeakReference<PropertyChangeListener> reference : changeSupport) {
-			if (reference.get() == changeListener) {
-				return;
-			}
-		}
-		changeSupport.add(new WeakReference<PropertyChangeListener>(changeListener));
-	}
-
-	public void removePropertyChangeListener(PropertyChangeListener changeListener) {
-		for (WeakReference<PropertyChangeListener> reference : changeSupport) {
-			if (reference.get() == changeListener) {
-				changeSupport.remove(reference);
-				return;
-			}
-		}
-	}
-
-	public void firePropertyChangeListener(PropertyChangeEvent event) {
-		for (WeakReference<PropertyChangeListener> reference : changeSupport) {
-			PropertyChangeListener listener = reference.get();
-			if (listener != null) {
-				listener.propertyChange(event);
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/Log.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/Log.java
deleted file mode 100755
index 104fa79..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/Log.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.xwt.ui.utils;
-
-import java.io.PrintStream;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.xwt.ILogger;
-import org.eclipse.xwt.Tracking;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsole;
-import org.eclipse.ui.console.IConsoleManager;
-import org.eclipse.ui.console.MessageConsole;
-import org.eclipse.ui.console.MessageConsoleStream;
-
-/**
- * @author zl
- * 
- */
-public class Log implements ILogger {
-
-	private MessageConsoleStream messageConsoleStream = null;
-	private Map<Tracking, String> messageMap = new HashMap<Tracking, String>();
-	private MessageConsole console;
-
-	private MessageConsoleStream getConsoleStream() {
-		if (messageConsoleStream == null) {
-			ConsolePlugin plugin = ConsolePlugin.getDefault();
-			if (plugin == null) {
-				return null;
-			}
-			console = new MessageConsole("XWT Application [XWT Application]", null);
-			// add console
-			IConsoleManager manager = (IConsoleManager) plugin.getConsoleManager();
-			manager.addConsoles(new IConsole[] { console });
-			// show console
-			manager.showConsoleView(console);
-			// return console stream
-			messageConsoleStream = console.newMessageStream();
-			messageConsoleStream.setColor(Display.getDefault().getSystemColor(SWT.COLOR_BLACK));
-		}
-		return messageConsoleStream;
-	}
-
-	public void printInfo(String message, Tracking tracking, Set<Tracking> trackTypes) {
-		String printMessage = "";
-
-		if (trackTypes != null && trackTypes.size() > 0) {
-			if (trackTypes.contains(tracking)) {
-				printMessage = (String) messageMap.get(tracking);
-			}
-		}
-		MessageConsoleStream msgStream = getConsoleStream();
-		console.clearConsole();
-		if (msgStream != null)
-			msgStream.print(printMessage);
-	}
-
-	public void addMessage(String message, Tracking tracking) {
-		if (messageMap.containsKey(tracking)) {
-			messageMap.remove(tracking);
-		}
-		messageMap.put(tracking, message);
-	}
-
-	public void removeMessage(Tracking tracking) {
-		if (messageMap.containsKey(tracking)) {
-			messageMap.remove(tracking);
-		}
-	}
-
-	public void error(Throwable e) {
-		MessageConsoleStream msgStream = getConsoleStream();
-		if (msgStream != null) {
-			Color color = msgStream.getColor();
-			msgStream.setColor(Display.getDefault().getSystemColor(SWT.COLOR_RED));
-			PrintStream printStream = new PrintStream(msgStream);
-			e.printStackTrace(printStream);
-			msgStream.setColor(color);
-		}
-	}
-
-	public void error(Throwable e, String message) {
-		MessageConsoleStream msgStream = getConsoleStream();
-		if (msgStream != null) {
-			Color color = msgStream.getColor();
-			msgStream.setColor(Display.getDefault().getSystemColor(SWT.COLOR_RED));
-			PrintStream printStream = new PrintStream(msgStream);
-			msgStream.print(message);
-			e.printStackTrace(printStream);
-			msgStream.setColor(color);
-		}
-	}
-
-	public void message(String message) {
-		MessageConsoleStream msgStream = getConsoleStream();
-		if (msgStream != null) {
-			msgStream.print(message);
-		}
-	}
-
-	public void warning(String message) {
-		message(message);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/ProjectContext.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/ProjectContext.java
deleted file mode 100755
index 6a011d2..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/ProjectContext.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.utils;
-
-import java.beans.PropertyChangeEvent;
-import java.net.URL;
-import java.util.HashSet;
-import java.util.WeakHashMap;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jdt.core.IJavaProject;
-
-public class ProjectContext extends LoadingContext {
-	protected static WeakHashMap<String, ProjectContext> contexts = new WeakHashMap<String, ProjectContext>();
-
-	protected static IResourceChangeListener changeListener = new IResourceChangeListener() {
-		public void resourceChanged(IResourceChangeEvent event) {
-			IResourceDelta delta = event.getDelta();
-			if (!contexts.isEmpty() && delta != null) {
-				processDelta(delta);
-			}
-		}
-
-		protected void processDelta(IResourceDelta delta) {
-			for (IResourceDelta resourceDelta : delta.getAffectedChildren()) {
-				IProject project = resourceDelta.getResource().getProject();
-				if (project != null && project.exists()) {
-					String name = project.getName();
-					ProjectContext projectContext = contexts.get(name);
-					if (projectContext != null) {
-						projectContext.processDelta(delta);
-						continue;
-					}
-				}
-				processDelta(resourceDelta);
-			}
-		}
-	};
-
-	protected IJavaProject javaProject;
-	protected HashSet<String> classes = new HashSet<String>();
-
-	class RuntimeLoader extends ClassLoader {
-
-		public RuntimeLoader(ClassLoader parent) {
-			super(parent);
-		}
-
-		@Override
-		protected Class<?> findClass(String name) throws ClassNotFoundException {
-			Class<?> type = null;
-			try {
-				type = super.findClass(name);
-			} catch (ClassNotFoundException e) {
-				if (type == null) {
-					type = redefined(name);
-				}
-				if (type == null) {
-					throw e;
-				} else {
-					classes.add(name);
-				}
-			}
-			return type;
-		}
-
-		public Class<?> redefined(String name) {
-			try {
-				byte[] content = ClassLoaderHelper.getClassContent(ProjectContext.this.javaProject, name);
-				if (content != null) {
-					return defineClass(name, content, 0, content.length);
-				}
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
-			return null;
-		}
-
-		@Override
-		protected URL findResource(String name) {
-			URL url = super.findResource(name);
-			if (url == null) {
-				url = ClassLoaderHelper.getResourceAsURL(ProjectContext.this.javaProject, name);
-
-			}
-			return url;
-		}
-	}
-
-	private ProjectContext(IJavaProject javaProject) {
-		this.javaProject = javaProject;
-		resetLoader();
-	}
-
-	protected void resetLoader() {
-		ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
-		setClassLoader(new RuntimeLoader(classLoader));
-		firePropertyChangeListener(new PropertyChangeEvent(this, "ClassLoader", null, getClassLoader()));
-	}
-
-	protected boolean processDelta(IResourceDelta delta) {
-		IResourceDelta[] resourceDeltas = delta.getAffectedChildren();
-		for (IResourceDelta resourceDelta : resourceDeltas) {
-			switch (resourceDelta.getKind()) {
-			case IResourceDelta.CHANGED:
-			case IResourceDelta.MOVED_FROM:
-			case IResourceDelta.MOVED_TO:
-				IPath path = resourceDelta.getProjectRelativePath();
-				if (!path.isEmpty() && "class".equals(path.getFileExtension())) {
-					resetLoader();
-					return true;
-				}
-				break;
-			}
-			for (IResourceDelta childDelta : resourceDelta.getAffectedChildren()) {
-				IPath path = childDelta.getProjectRelativePath();
-				if (!path.isEmpty() && "class".equals(path.getFileExtension())) {
-					resetLoader();
-					return true;
-				}
-				if (processDelta(childDelta)) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	public static ProjectContext getContext(IJavaProject javaProject) {
-		String elementName = javaProject.getElementName();
-		ProjectContext context = contexts.get(elementName);
-		if (context == null) {
-			context = new ProjectContext(javaProject);
-			contexts.put(elementName, context);
-		}
-		return context;
-	}
-
-	static public void start() {
-		ResourcesPlugin.getWorkspace().addResourceChangeListener(changeListener);
-	}
-
-	static public void stop() {
-		ResourcesPlugin.getWorkspace().removeResourceChangeListener(changeListener);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/ProjectUtil.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/ProjectUtil.java
deleted file mode 100755
index 1bb85de..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/ProjectUtil.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.utils;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.pde.core.plugin.IPluginBase;
-import org.eclipse.pde.core.plugin.IPluginImport;
-import org.eclipse.pde.core.plugin.IPluginLibrary;
-import org.eclipse.pde.core.plugin.IPluginModelBase;
-import org.eclipse.pde.core.plugin.PluginRegistry;
-
-/**
- * 
- * @author yyang <yves.yang@soyatec.com>
- */
-public class ProjectUtil {
-
-	static String[] WORKBENCH_BUNDLES = new String[]{
-			"org.eclipse.e4.ui.services", "org.eclipse.e4.ui.workbench",
-			"org.eclipse.e4.core.di",
-			"org.eclipse.e4.core.di.extensions", "org.eclipse.e4.core.contexts",
-			"org.eclipse.e4.core.services", "org.eclipse.e4.ui.workbench.swt",
-			"org.eclipse.e4.ui.css.core", "org.w3c.css.sac",
-			"org.eclipse.e4.core.commands", "org.eclipse.e4.ui.bindings",
-			"org.eclipse.xwt.css", "org.eclipse.xwt.ui.workbench",
-			"javax.inject"};
-
-	static String[] XWT_CORE_BUNDLES = new String[]{"org.eclipse.xwt",
-			"org.eclipse.jface.databinding", "org.eclipse.swt",
-			"org.eclipse.jface", "org.eclipse.core.databinding", "com.ibm.icu"};
-
-	static String[] XWT_DATABINING_BUNDLES = new String[]{
-			"org.eclipse.core.databinding.beans",
-			"org.eclipse.core.databinding.property"};
-
-	static String[] XWT_EMF_BUNDLES = new String[]{"org.eclipse.xwt.emf",
-			"org.eclipse.emf.databinding",
-			"org.eclipse.core.databinding.property"};
-
-	public static void updateXWTCoreDependencies(IProject project) {
-		addDependencies(project, XWT_CORE_BUNDLES);
-	}
-
-	public static void updateXWTDataBindingDependencies(IProject project) {
-		addDependencies(project, XWT_CORE_BUNDLES, XWT_DATABINING_BUNDLES);
-	}
-
-	public static void updateXWTWorkbenchDependencies(IProject project) {
-		addDependencies(project, XWT_CORE_BUNDLES, XWT_DATABINING_BUNDLES,
-				WORKBENCH_BUNDLES);
-	}
-	public static void updateXWTEMFDependencies(IProject project) {
-		addDependencies(project, XWT_CORE_BUNDLES, XWT_EMF_BUNDLES);
-	}
-	public static IStatus addDependencies(IProject project,
-			String[]... pluginIds) {
-		IPluginModelBase[] dependencies = getDependencies(project, true,
-				pluginIds);
-		return new DependencyBuilder(project, dependencies).build();
-	}
-
-	public static IStatus addDependencies(IProject project,
-			IPluginModelBase[] pluginImports) {
-		return new DependencyBuilder(project, pluginImports).build();
-	}
-
-	public static IStatus removeDependencies(IProject project,
-			String[]... pluginIds) {
-		IPluginModelBase[] dependencies = getDependencies(project, false,
-				pluginIds);
-		return new DependencyBuilder(project, dependencies).unbuild();
-	}
-
-	public static IStatus removeDependencies(IProject project,
-			IPluginModelBase[] pluginImports) {
-		return new DependencyBuilder(project, pluginImports).unbuild();
-	}
-
-	public static IStatus addLibraries(IProject project, String[] jarPaths) {
-		String[] libraries = getLibraries(project, jarPaths, true);
-		return new LibraryBuilder(project, libraries).build();
-	}
-
-	public static IStatus removeLibraries(IProject project, String[] jarPaths) {
-		String[] libraries = getLibraries(project, jarPaths, false);
-		return new LibraryBuilder(project, libraries).unbuild();
-	}
-
-	public static IPluginModelBase[] getDependencies(IProject project,
-			boolean ignoreExists, String[]... pluginIds) {
-		if (pluginIds == null || pluginIds.length == 0) {
-			return new IPluginModelBase[0];
-		}
-
-		List<String> existingImports = new ArrayList<String>();
-		if (ignoreExists) {
-			IPluginBase pluginBase = getPluginBase(project);
-			if (pluginBase != null) {
-				IPluginImport[] imports = pluginBase.getImports();
-				for (IPluginImport pluginImport : imports) {
-					existingImports.add(pluginImport.getId());
-				}
-			}
-		}
-		List<IPluginModelBase> models = new ArrayList<IPluginModelBase>();
-		for (String[] ids : pluginIds) {
-			for (String pluginId : ids) {
-				if (ignoreExists && existingImports.contains(pluginId)) {
-					continue;
-				}
-				IPluginModelBase model = PluginRegistry.findModel(pluginId);
-				if (model == null) {
-					continue;
-				}
-				models.add(model);
-			}
-		}
-		return models.toArray(new IPluginModelBase[models.size()]);
-	}
-
-	public static IPluginBase getPluginBase(IProject project) {
-		if (project == null || !project.exists()) {
-			return null;
-		}
-		IPluginModelBase model = PluginRegistry.findModel(project);
-		if (model != null) {
-			return model.getPluginBase(true);
-		}
-		return null;
-	}
-
-	public static String[] getLibraries(IProject project, String[] jarPaths,
-			boolean ignoreExists) {
-		if (jarPaths == null || jarPaths.length == 0) {
-			return new String[0];
-		}
-		List<String> existingLibraries = new ArrayList<String>();
-		if (ignoreExists) {
-			IPluginBase pluginBase = getPluginBase(project);
-			if (pluginBase != null) {
-				IPluginLibrary[] libraries = pluginBase.getLibraries();
-				for (IPluginLibrary pluginLibrary : libraries) {
-					existingLibraries.add(pluginLibrary.getName());
-				}
-			}
-		}
-		List<String> libraries = new ArrayList<String>();
-		for (String path : jarPaths) {
-			if (ignoreExists && existingLibraries.contains(path)) {
-				continue;
-			}
-			libraries.add(path);
-		}
-		return libraries.toArray(new String[libraries.size()]);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/views/IContentProvider.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/views/IContentProvider.java
deleted file mode 100755
index 2eacaff..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/views/IContentProvider.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.views;
-
-import java.net.URL;
-
-import org.eclipse.xwt.ILoadingContext;
-
-public interface IContentProvider {
-	/**
-	 * 
-	 * @return
-	 */
-	ILoadingContext getLoadingContext();
-
-	/**
-	 * Content URL
-	 * 
-	 * @return
-	 */
-	URL getContentURL();
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/views/ProjectContentProvider.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/views/ProjectContentProvider.java
deleted file mode 100755
index 072c733..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/views/ProjectContentProvider.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.views;
-
-import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URL;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.xwt.ILoadingContext;
-import org.eclipse.xwt.ui.utils.ProjectContext;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-
-public class ProjectContentProvider implements IContentProvider {
-	protected URL contentURL;
-	protected ILoadingContext loadingContext;
-
-	public ProjectContentProvider(IFile file) {
-		URI uri = file.getLocationURI();
-
-		IJavaProject javaProject = JavaCore.create(file.getProject());
-		if (javaProject.exists()) {
-			loadingContext = ProjectContext.getContext(javaProject);
-		}
-		try {
-			contentURL = uri.toURL();
-		} catch (MalformedURLException e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	public URL getContentURL() {
-		return contentURL;
-	}
-
-	public ILoadingContext getLoadingContext() {
-		return loadingContext;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/views/XWTView.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/views/XWTView.java
deleted file mode 100755
index ace49f8..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/views/XWTView.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.views;
-
-import java.io.ByteArrayInputStream;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.xwt.ILoadingContext;
-import org.eclipse.xwt.IXWTLoader;
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.ui.ExceptionHandle;
-import org.eclipse.xwt.ui.XWTUIPlugin;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.part.ViewPart;
-
-public class XWTView extends ViewPart {
-
-	public static final String ID = "org.eclipse.xwt.ui.views.XWTView";
-
-	protected Composite container;
-	protected Map<String, Object> options;
-
-	/**
-	 * The constructor.
-	 */
-	public XWTView() {
-		options = new HashMap<String, Object>();
-		options.put(IXWTLoader.DESIGN_MODE_PROPERTY, Boolean.TRUE);
-	}
-
-	/**
-	 * This is a callback that will allow us to create the viewer and initialize it.
-	 */
-	public void createPartControl(Composite parent) {
-		container = new Composite(parent, SWT.NONE);
-		container.setLayoutData(new GridData(GridData.FILL_BOTH));
-		container.setLayout(new GridLayout());
-		container.setBackgroundMode(SWT.INHERIT_DEFAULT);
-	}
-
-	public void setContent(String code, IFile file) {
-		try {
-			setContentWithException(code, file, new ProjectContentProvider(file));
-		} catch (Exception e) {
-			ExceptionHandle.handle(e, "Open view fails");
-		}
-	}
-
-	public void setContentWithException(String code, IFile file, IContentProvider contentProvider) throws Exception {
-		XWTUIPlugin.checkStartup();
-		for (Control child : container.getChildren()) {
-			child.dispose();
-		}
-		ILoadingContext loadingContext = contentProvider.getLoadingContext();
-		if (loadingContext != null) {
-			XWT.setLoadingContext(loadingContext);
-		}
-		options.put(IXWTLoader.CONTAINER_PROPERTY, container);
-		if (code != null) {
-			XWT.loadWithOptions(new ByteArrayInputStream(code.getBytes()), file.getLocation().toFile().toURL(), options);
-		} else {
-			XWT.loadWithOptions(file.getLocation().toFile().toURL(), options);
-		}
-		container.layout(true, true);
-	}
-
-	public void setContentWithException(String code, IFile file) throws Exception {
-		setContentWithException(code, file, new ProjectContentProvider(file));
-	}
-
-	/**
-	 * Passing the focus request to the viewer's control.
-	 */
-	public void setFocus() {
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewE4DynamicPartWizard.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewE4DynamicPartWizard.java
deleted file mode 100755
index b49f034..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewE4DynamicPartWizard.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.wizards;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.internal.ui.JavaPlugin;
-import org.eclipse.jdt.internal.ui.JavaPluginImages;
-import org.eclipse.jdt.internal.ui.wizards.NewElementWizard;
-import org.eclipse.xwt.ui.XWTUIPlugin;
-import org.eclipse.xwt.ui.utils.ProjectUtil;
-
-public class NewE4DynamicPartWizard extends NewElementWizard {
-
-	private NewE4DynamicPartWizardPage fPage;
-
-	public NewE4DynamicPartWizard() {
-		setDefaultPageImageDescriptor(JavaPluginImages.DESC_WIZBAN_NEWCLASS);
-		setDialogSettings(JavaPlugin.getDefault().getDialogSettings());
-		setWindowTitle("New e4 Dynamic Part in XWT");
-	}
-
-	public NewE4DynamicPartWizard(IType contextType) {
-		setDefaultPageImageDescriptor(JavaPluginImages.DESC_WIZBAN_NEWCLASS);
-		setDialogSettings(JavaPlugin.getDefault().getDialogSettings());
-		setWindowTitle("New e4 Dynamic Part in XWT");
-	}
-
-	public void addPages() {
-		fPage = new NewE4DynamicPartWizardPage();
-		fPage.init(getSelection());
-		addPage(fPage);
-	}
-
-	public boolean performFinish() {
-		warnAboutTypeCommentDeprecation();
-		boolean res = super.performFinish();
-		if (res) {
-			tryToOpenResource();
-			ProjectUtil.updateXWTWorkbenchDependencies(getCreatedElement().getResource().getProject());
-		}
-		XWTUIPlugin.getDefault().openXWTPerspective();
-		return res;
-	}
-
-	private void tryToOpenResource() {
-		IResource resource = fPage.getModifiedResource();
-		if (resource != null) {
-			selectAndReveal(resource);
-		}
-		openResource((IFile) resource);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#getCreatedElement()
-	 */
-	public IJavaElement getCreatedElement() {
-		return fPage.getCreatedType();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#canRunForked()
-	 */
-	protected boolean canRunForked() {
-		return !fPage.isEnclosingTypeSelected();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#finishPage(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	protected void finishPage(IProgressMonitor monitor) throws InterruptedException, CoreException {
-		fPage.createType(monitor); // use the full progress monitor
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewE4DynamicPartWizardPage.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewE4DynamicPartWizardPage.java
deleted file mode 100755
index e2a9a85..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewE4DynamicPartWizardPage.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.wizards;
-
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.internal.ui.IJavaHelpContextIds;
-import org.eclipse.jdt.ui.wizards.NewClassWizardPage;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.PlatformUI;
-
-public class NewE4DynamicPartWizardPage extends NewClassWizardPage {
-
-	public NewE4DynamicPartWizardPage() {
-		setTitle("New Wizard Creation");
-		setDescription("This wizard creates a view part for e4 workbench.");
-	}
-	
-	protected String getSuperClassName() {
-		return "org.eclipse.xwt.ui.workbench.views.XWTDynamicPart";
-	}
-	
-	@Override
-	protected void initTypePage(IJavaElement elem) {
-		super.initTypePage(elem);
-		setSuperClass(getSuperClassName(), false);
-	}
-
-	public int getModifiers() {
-		return F_PUBLIC;
-	}
-	
-	public void createControl(Composite parent) {
-		initializeDialogUnits(parent);
-
-		Composite composite = new Composite(parent, SWT.NONE);
-		composite.setFont(parent.getFont());
-
-		int nColumns = 4;
-
-		GridLayout layout = new GridLayout();
-		layout.numColumns = nColumns;
-		composite.setLayout(layout);
-
-		// pick & choose the wanted UI components
-
-		createContainerControls(composite, nColumns);
-		createPackageControls(composite, nColumns);
-
-		createTypeNameControls(composite, nColumns);
-
-		createSeparator(composite, nColumns);
-
-		createCommentControls(composite, nColumns);
-		enableCommentControl(true);
-
-		createSeparator(composite, nColumns);
-
-		setControl(composite);
-
-		Dialog.applyDialogFont(composite);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(composite,
-				IJavaHelpContextIds.NEW_CLASS_WIZARD_PAGE);
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewE4StaticPartWizard.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewE4StaticPartWizard.java
deleted file mode 100755
index b0b75f9..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewE4StaticPartWizard.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.wizards;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.internal.ui.JavaPlugin;
-import org.eclipse.jdt.internal.ui.JavaPluginImages;
-import org.eclipse.jdt.internal.ui.wizards.NewElementWizard;
-import org.eclipse.xwt.ui.XWTUIPlugin;
-import org.eclipse.xwt.ui.utils.ProjectUtil;
-
-public class NewE4StaticPartWizard extends NewElementWizard {
-
-	private NewE4StaticPartWizardPage fPage;
-
-	public NewE4StaticPartWizard() {
-		setDefaultPageImageDescriptor(JavaPluginImages.DESC_WIZBAN_NEWCLASS);
-		setDialogSettings(JavaPlugin.getDefault().getDialogSettings());
-		setWindowTitle("New e4 Static Part in XWT");
-	}
-
-	public NewE4StaticPartWizard(IType contextType) {
-		setDefaultPageImageDescriptor(JavaPluginImages.DESC_WIZBAN_NEWCLASS);
-		setDialogSettings(JavaPlugin.getDefault().getDialogSettings());
-		setWindowTitle("New e4 Static Part in XWT");
-	}
-
-	public void addPages() {
-		fPage = new NewE4StaticPartWizardPage();
-		fPage.init(getSelection());
-		addPage(fPage);
-	}
-
-	public boolean performFinish() {
-		warnAboutTypeCommentDeprecation();
-		boolean res = super.performFinish();
-		if (res) {
-			tryToOpenResource();
-			ProjectUtil.updateXWTWorkbenchDependencies(getCreatedElement().getResource().getProject());
-		}
-		XWTUIPlugin.getDefault().openXWTPerspective();
-		return res;
-	}
-
-	private void tryToOpenResource() {
-		IResource resource = fPage.getModifiedResource();
-		if (resource != null) {
-			selectAndReveal(resource);
-		}
-		IResource guiResource = fPage.getGuiResource();
-		if (guiResource != null) {
-			selectAndReveal(guiResource);
-			openResource((IFile) guiResource);
-		} else {
-			openResource((IFile) resource);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#getCreatedElement()
-	 */
-	public IJavaElement getCreatedElement() {
-		return fPage.getCreatedType();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#canRunForked()
-	 */
-	protected boolean canRunForked() {
-		return !fPage.isEnclosingTypeSelected();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#finishPage(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	protected void finishPage(IProgressMonitor monitor) throws InterruptedException, CoreException {
-		fPage.createType(monitor); // use the full progress monitor
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewE4StaticPartWizardPage.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewE4StaticPartWizardPage.java
deleted file mode 100755
index a901d90..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewE4StaticPartWizardPage.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.wizards;
-
-public class NewE4StaticPartWizardPage extends NewUIElementWizardPage {
-
-	public NewE4StaticPartWizardPage() {
-		setTitle("New Wizard Creation");
-		setDescription("This wizard creates a view part for e4 workbench.");
-	}
-	
-	protected String getSuperClassName() {
-		return "org.eclipse.xwt.ui.workbench.views.XWTStaticPart";
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewPresentationWizard.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewPresentationWizard.java
deleted file mode 100755
index c97bc24..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewPresentationWizard.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.wizards;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.internal.ui.JavaPlugin;
-import org.eclipse.jdt.internal.ui.JavaPluginImages;
-import org.eclipse.jdt.internal.ui.wizards.NewElementWizard;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.xwt.ui.XWTUIPlugin;
-import org.eclipse.xwt.ui.utils.ProjectUtil;
-
-public class NewPresentationWizard extends NewElementWizard {
-
-	private NewPresentationWizardPage fPage;
-
-	public NewPresentationWizard() {
-		setDefaultPageImageDescriptor(JavaPluginImages.DESC_WIZBAN_NEWCLASS);
-		setDialogSettings(JavaPlugin.getDefault().getDialogSettings());
-		setWindowTitle("New Data Presentation in XWT");
-	}
-
-	public NewPresentationWizard(IType contextType) {
-		setDefaultPageImageDescriptor(JavaPluginImages.DESC_WIZBAN_NEWCLASS);
-		setDialogSettings(JavaPlugin.getDefault().getDialogSettings());
-		setWindowTitle("New Data Presentation in XWT");
-	}
-	
-	public void addPages() {
-		Object element = getSelection().getFirstElement();
-		if (!(element instanceof ICompilationUnit) && !(element instanceof IType)) {
-			getShell().setAlpha(0);
-			MessageDialog.openError(getShell(), "Error", "Please select a Java class.");
-			getShell().getDisplay().asyncExec(new Runnable() {				
-				public void run() {
-					getShell().close();
-				}
-			});
-			return;
-		}
-		fPage = new NewPresentationWizardPage();
-		fPage.init(getSelection());
-		addPage(fPage);
-	}
-	
-
-	public boolean performFinish() {
-		warnAboutTypeCommentDeprecation();
-		boolean res = super.performFinish();
-		if (res) {
-			tryToOpenResource();
-			ProjectUtil.updateXWTDataBindingDependencies(getCreatedElement().getResource().getProject());
-		}
-		XWTUIPlugin.getDefault().openXWTPerspective();
-		return res;
-	}
-
-	private void tryToOpenResource() {
-		IResource resource = fPage.getModifiedResource();
-		if (resource != null) {
-			selectAndReveal(resource);
-		}
-		IResource guiResource = fPage.getGuiResource();
-		if (guiResource != null) {
-			selectAndReveal(guiResource);
-			openResource((IFile) guiResource);
-		} else {
-			openResource((IFile) resource);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#getCreatedElement()
-	 */
-	public IJavaElement getCreatedElement() {
-		return fPage.getCreatedType();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#canRunForked()
-	 */
-	protected boolean canRunForked() {
-		return !fPage.isEnclosingTypeSelected();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#finishPage(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	protected void finishPage(IProgressMonitor monitor) throws InterruptedException, CoreException {
-		fPage.createType(monitor); // use the full progress monitor
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewPresentationWizardPage.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewPresentationWizardPage.java
deleted file mode 100755
index 4d268ec..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewPresentationWizardPage.java
+++ /dev/null
@@ -1,463 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.wizards;
-
-import java.beans.BeanInfo;
-import java.beans.IntrospectionException;
-import java.beans.PropertyDescriptor;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-import java.io.PrintStream;
-import java.net.URL;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-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.xwt.IConstants;
-import org.eclipse.xwt.javabean.metadata.Metaclass;
-import org.eclipse.xwt.ui.ExceptionHandle;
-import org.eclipse.xwt.ui.XWTUIPlugin;
-import org.eclipse.xwt.ui.jdt.ASTHelper;
-import org.eclipse.xwt.ui.jdt.ProjectHelper;
-import org.eclipse.xwt.ui.utils.ProjectContext;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.core.search.IJavaSearchConstants;
-import org.eclipse.jdt.core.search.IJavaSearchScope;
-import org.eclipse.jdt.core.search.SearchEngine;
-import org.eclipse.jdt.internal.ui.IJavaHelpContextIds;
-import org.eclipse.jdt.internal.ui.dialogs.FilteredTypesSelectionDialog;
-import org.eclipse.jdt.internal.ui.wizards.NewElementWizard;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.DialogField;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.IDialogFieldListener;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.IStringButtonAdapter;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.LayoutUtil;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.StringButtonDialogField;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.PlatformUI;
-
-public class NewPresentationWizardPage extends org.eclipse.jdt.ui.wizards.NewClassWizardPage {
-	protected String superClass;
-
-	protected IResource guiResource;
-
-	private boolean shouldGenMetaclass = false;
-
-	private StringButtonDialogField fieldEditor;
-	private Button metaclassButton;
-
-	private IPackageFragment packageFragment;
-	
-	private String dataContext;
-
-	public NewPresentationWizardPage() {
-		setTitle("New Wizard Creation");
-		setDescription("This wizard creates a data presentation.");
-	}
-
-	public void createControl(Composite parent) {
-		initializeDialogUnits(parent);
-
-		Composite composite = new Composite(parent, SWT.NONE);
-		composite.setFont(parent.getFont());
-
-		int nColumns = 4;
-
-		GridLayout layout = new GridLayout();
-		layout.numColumns = nColumns;
-		composite.setLayout(layout);
-
-		// pick & choose the wanted UI components
-
-		createContainerControls(composite, nColumns);
-		createPackageControls(composite, nColumns);
-
-		createTypeNameControls(composite, nColumns);
-
-		createSeparator(composite, nColumns);
-		{
-			new Label(composite, SWT.NONE);
-			metaclassButton = new Button(composite, SWT.CHECK);
-			metaclassButton.setSelection(shouldGenMetaclass);
-			metaclassButton.setText("Generating Metaclass");
-			GridData data = new GridData();
-			data.horizontalSpan = 3;
-			metaclassButton.setLayoutData(data);
-			metaclassButton.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					shouldGenMetaclass = metaclassButton.getSelection();
-				}
-			});
-
-			createDataContextComp(composite);
-		}
-
-		createCommentControls(composite, nColumns);
-		enableCommentControl(true);
-
-		createSeparator(composite, nColumns);
-
-		setControl(composite);
-
-		NewElementWizard wizard = (NewElementWizard) getWizard();
-		IStructuredSelection selection = (IStructuredSelection) wizard.getSelection();
-		IType dataContextType = null;
-		for (Iterator iterator = selection.iterator(); iterator.hasNext();) {
-			Object element = iterator.next();
-			if (element instanceof ICompilationUnit) {
-				ICompilationUnit unit = (ICompilationUnit) element;
-				dataContextType = unit.findPrimaryType();
-				break;
-			}
-			if (element instanceof IType) {
-				dataContextType = (IType) element;
-				break;
-			}
-		}
-
-		if (dataContextType != null) {
-			setTypeName(dataContextType.getElementName(), true);
-			fieldEditor.setText(dataContextType.getFullyQualifiedName('.'));
-			metaclassButton.setSelection(shouldGenMetaclass);
-		}
-		
-		Dialog.applyDialogFont(composite);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, IJavaHelpContextIds.NEW_CLASS_WIZARD_PAGE);
-	}
-
-	/**
-	 * @param composite
-	 * @return
-	 */
-	private void createDataContextComp(Composite composite) {
-		DataContextFieldAdapter adapter = new DataContextFieldAdapter();
-		fieldEditor = new StringButtonDialogField(adapter);
-		fieldEditor.setDialogFieldListener(adapter);
-		fieldEditor.setButtonLabel("Browse...");
-		fieldEditor.setLabelText("Data Context Type:");
-		fieldEditor.doFillIntoGrid(composite, 4);
-		LayoutUtil.setWidthHint(fieldEditor.getTextControl(null), getMaxFieldWidth());
-	}
-
-	private class DataContextFieldAdapter implements IStringButtonAdapter, IDialogFieldListener {
-
-		// -------- IStringButtonAdapter
-		public void changeControlPressed(DialogField field) {
-			IType type = chooseDataContext();
-			if (type != null) {
-				((StringButtonDialogField) field).setText(type.getFullyQualifiedName());
-			}
-		}
-
-		// -------- IDialogFieldListener
-		public void dialogFieldChanged(DialogField field) {
-			dataContext = ((StringButtonDialogField) field).getText();
-			validateDataContext();
-		}
-	}
-
-	public boolean isCreateConstructors() {
-		return true;
-	}
-
-	/**
-	 * 
-	 */
-	public void validateDataContext() {
-		String newMessage = "Invalid Java Type for initializing DataContext.";
-		String errorMessage = getErrorMessage();
-		if (dataContext != null) {
-			ProjectContext context = ProjectContext.getContext(getJavaProject());
-			try {
-				context.getClassLoader().loadClass(dataContext);
-				if (newMessage.equals(errorMessage)) {
-					setErrorMessage(null);
-				} else {
-					setErrorMessage(errorMessage);
-				}
-			} catch (ClassNotFoundException e) {
-				setErrorMessage(newMessage);
-			}
-		} else {
-			if (newMessage.equals(errorMessage)) {
-				setErrorMessage(null);
-			} else {
-				setErrorMessage(errorMessage);
-			}
-		}
-	}
-
-	/**
-	 * @param field
-	 */
-	public IType chooseDataContext() {
-		IJavaProject project = getJavaProject();
-		if (project == null) {
-			return null;
-		}
-
-		IJavaElement[] elements = new IJavaElement[] { project };
-		IJavaSearchScope scope = SearchEngine.createJavaSearchScope(elements);
-
-		FilteredTypesSelectionDialog dialog = new FilteredTypesSelectionDialog(getShell(), false, getWizard().getContainer(), scope, IJavaSearchConstants.CLASS);
-		dialog.setTitle("Choose a JavaBean");
-		dialog.setMessage("Choose a JavaBean as a DataContext Type.");
-		dialog.setInitialPattern("java.lang.Object");
-
-		if (dialog.open() == Window.OK) {
-			return (IType) dialog.getFirstResult();
-		}
-		return null;
-	}
-
-	@Override
-	protected void initTypePage(IJavaElement elem) {
-		super.initTypePage(elem);
-		setSuperClass(getSuperClassName(), false);
-	}
-	
-	@Override
-	public void setPackageFragment(IPackageFragment pack, boolean canBeModified) {
-		
-		
-		String name = pack.getElementName() + ".ui";
-		IPackageFragmentRoot root = (IPackageFragmentRoot) pack.getParent();
-		IPackageFragment packageFragment = root.getPackageFragment(name);
-		super.setPackageFragment(packageFragment, canBeModified);
-	}
-	
-	protected String getSuperClassName() {
-		return Composite.class.getName();
-	}
-
-	public int getModifiers() {
-		return F_PUBLIC;
-	}
-
-	/**
-	 * Returns the chosen super interfaces.
-	 * 
-	 * @return a list of chosen super interfaces. The list's elements are of type <code>String</code>
-	 */
-	public List getSuperInterfaces() {
-		return Collections.EMPTY_LIST;
-	}
-
-	/**
-	 * Returns the current selection state of the 'Create Main' checkbox.
-	 * 
-	 * @return the selection state of the 'Create Main' checkbox
-	 */
-	public boolean isCreateMain() {
-		return false;
-	}
-
-	protected InputStream getContentStream() {
-		IType type = getCreatedType();
-		String hostClassName = type.getFullyQualifiedName();
-		ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
-		PrintStream printStream = new PrintStream(arrayOutputStream);
-
-		printStream.println("<Composite xmlns=\"" + IConstants.XWT_NAMESPACE + "\"");
-
-		printStream.println("\t xmlns:x=\"" + IConstants.XWT_X_NAMESPACE + "\"");
-		String packageName = type.getPackageFragment().getElementName();
-		if (packageName != null/* && packageName.length() > 0 */) {
-			printStream.println("\t xmlns:c=\"" + IConstants.XAML_CLR_NAMESPACE_PROTO + packageName + "\"");
-		}
-		printStream.println("\t xmlns:j=\"" + IConstants.XAML_CLR_NAMESPACE_PROTO +  "java.lang\"");
-		printStream.println("\t x:Class=\"" + hostClassName + "\">");
-		printStream.println("\t <Composite.layout>");
-		printStream.println("\t\t <GridLayout " + " numColumns=\"4\" />");
-		printStream.println("\t </Composite.layout>");
-
-		appendBeanContent(printStream);
-
-		printStream.println("</Composite>");
-
-		try {
-			byte[] content = arrayOutputStream.toByteArray();
-			printStream.close();
-			arrayOutputStream.close();
-			return new ByteArrayInputStream(content);
-		} catch (Exception e) {
-			XWTUIPlugin.log(e);
-			ExceptionHandle.handle(e, "save failed in the file: " + getModifiedResource().getLocation());
-		}
-		return new ByteArrayInputStream(new byte[] {});
-	}
-
-	/**
-	 * @param printStream
-	 */
-	private void appendBeanContent(PrintStream printStream) {
-		Class<?> type = getDataContextType();
-		if (type == null) {
-			return;
-		}
-		try {
-			BeanInfo beanInfo = java.beans.Introspector.getBeanInfo(type);
-			PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
-			for (PropertyDescriptor pd : propertyDescriptors) {
-				String name = pd.getName();
-				if (name == null || "class".equals(name)) {
-					continue;
-				}
-				Class<?> propertyType = pd.getPropertyType();
-				if (propertyType.isPrimitive() || propertyType == String.class || propertyType == URL.class) {
-					printStream.println("\t <Label text=\"" + pd.getDisplayName() + "\"/>");
-					printStream.println("\t <Text x:Style=\"Border\" text=\"{Binding path=" + pd.getName() + "}\">");
-					printStream.println("\t\t <Text.layoutData>");
-					printStream.println("\t\t\t <GridData grabExcessHorizontalSpace=\"true\"");
-					printStream.println("\t\t\t\t horizontalAlignment=\"GridData.FILL\" widthHint=\"100\"/>");
-					printStream.println("\t\t </Text.layoutData>");
-					printStream.println("\t </Text>");
-				} else if (propertyType.isEnum()) {
-					printStream.println("\t <Label text=\"" + pd.getDisplayName() + "\"/>");
-					printStream.println("\t <Combo text=\"{Binding path=" + pd.getName() + "}\">");
-					printStream.println("\t\t <Combo.layoutData>");
-					printStream.println("\t\t\t <GridData grabExcessHorizontalSpace=\"true\"");
-					printStream.println("\t\t\t\t horizontalAlignment=\"GridData.FILL\" widthHint=\"100\"/>");
-					printStream.println("\t\t </Combo.layoutData>");
-					
-					printStream.println("\t\t <Combo.items>");
-					for (Object object : propertyType.getEnumConstants()) {
-						printStream.println("\t\t\t <j:String>" + object.toString() + "</j:String>");						
-					}
-					printStream.println("\t\t </Combo.items>");
-					printStream.println("\t </Combo>");
-					
-				} else {
-					printStream.println("\t <Group text=\"" + pd.getDisplayName() + "\">");
-					printStream.println("\t\t <Group.layout>");
-					printStream.println("\t\t\t <FillLayout/>");
-					printStream.println("\t\t </Group.layout>");
-
-					String elementType = propertyType.getSimpleName();
-					printStream.println("\t\t <c:" + elementType + " DataContext=\"{Binding path=" + pd.getName() + "}\"/>");
-
-					printStream.println("\t\t <Group.layoutData>");
-					printStream.println("\t\t\t <GridData grabExcessHorizontalSpace=\"true\" horizontalSpan=\"4\"");
-					printStream.println("\t\t\t\t horizontalAlignment=\"GridData.FILL\" widthHint=\"200\"/>");
-					printStream.println("\t\t </Group.layoutData>");
-
-					printStream.println("\t </Group>");
-				}
-			}
-		} catch (IntrospectionException e) {
-		}
-	}
-
-	public void createType(IProgressMonitor monitor) throws CoreException, InterruptedException {
-		// Add external Jars before create a new Java Source Type.
-		ProjectHelper.checkDependenceJars(getJavaProject());
-		super.createType(monitor);
-
-		if (shouldGenMetaclass) {
-			createMetaclass();
-		}
-
-		IResource resource = getModifiedResource();
-		IPath resourcePath = resource.getProjectRelativePath().removeFileExtension();
-		resourcePath = resourcePath.addFileExtension(IConstants.XWT_EXTENSION);
-		try {
-			IFile file = resource.getProject().getFile(resourcePath);
-			file.create(getContentStream(), IResource.FORCE | IResource.KEEP_HISTORY, monitor);
-			guiResource = file;
-		} catch (Exception e) {
-			e.printStackTrace();
-			ExceptionHandle.handle(e, "save failed in the file: " + getModifiedResource().getLocation());
-		}
-		return;
-	}
-
-	public void createMetaclass() {
-		IType type = getCreatedType();
-		String typeName = type.getElementName();
-		String metaclassName = typeName + "Metaclass";
-		IType metaclassType = ASTHelper.createType(getPackageFragment(), metaclassName, null, Metaclass.class);
-		if (metaclassType != null && dataContext != null) {
-			ASTHelper.createMethod(metaclassType, "getDataContentType", getDataContextType().getClass(), "" + getDataContextType().getName() + ".class", null);
-		}
-		ICompilationUnit cu = metaclassType.getCompilationUnit();
-		try {
-			cu.commitWorkingCopy(true, new NullProgressMonitor());
-		} catch (JavaModelException e) {
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.ui.wizards.NewTypeWizardPage#getTypeName()
-	 */
-	public String getTypeName() {
-		String typeName = super.getTypeName();
-		if (typeName == null || typeName.equals("")) {
-			return typeName;
-		}
-		/*
-		 * Make sure the first character of the new Class name is a upperCase one. Because the Element parser of the XWT file convert the top element to this format.
-		 */
-		return Character.toUpperCase(typeName.charAt(0)) + typeName.substring(1);
-	}
-
-	/**
-	 * Returns the current selection state of the 'Create inherited abstract methods' checkbox.
-	 * 
-	 * @return the selection state of the 'Create inherited abstract methods' checkbox
-	 */
-	public boolean isCreateInherited() {
-		return true;
-	}
-
-	public boolean shouldGenMetaclass() {
-		return shouldGenMetaclass;
-	}
-
-	public Class<?> getDataContextType() {
-		if (dataContext == null || dataContext.trim().length() == 0) {
-			return null;
-		}
-		ProjectContext context = ProjectContext.getContext(getJavaProject());
-		try {
-			return context.getClassLoader().loadClass(dataContext);
-		} catch (ClassNotFoundException e) {
-		}
-		return null;
-	}
-
-	public IResource getGuiResource() {
-		return guiResource;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewUIElementWizard.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewUIElementWizard.java
deleted file mode 100755
index 51b8477..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewUIElementWizard.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.wizards;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.internal.ui.JavaPlugin;
-import org.eclipse.jdt.internal.ui.JavaPluginImages;
-import org.eclipse.jdt.internal.ui.wizards.NewElementWizard;
-import org.eclipse.xwt.ui.XWTUIPlugin;
-import org.eclipse.xwt.ui.utils.ProjectUtil;
-
-public class NewUIElementWizard extends NewElementWizard {
-
-	private NewUIElementWizardPage fPage;
-
-	public NewUIElementWizard() {
-		setDefaultPageImageDescriptor(JavaPluginImages.DESC_WIZBAN_NEWCLASS);
-		setDialogSettings(JavaPlugin.getDefault().getDialogSettings());
-		setWindowTitle("New UI Element in XWT");
-	}
-
-	public NewUIElementWizard(IType contextType) {
-		setDefaultPageImageDescriptor(JavaPluginImages.DESC_WIZBAN_NEWCLASS);
-		setDialogSettings(JavaPlugin.getDefault().getDialogSettings());
-		setWindowTitle("New UI Element in XWT");
-	}
-
-	public void addPages() {
-		fPage = new NewUIElementWizardPage();
-		fPage.init(getSelection());
-		addPage(fPage);
-	}
-
-	public boolean performFinish() {
-		warnAboutTypeCommentDeprecation();
-		boolean res = super.performFinish();
-		if (res) {
-			tryToOpenResource();
-			ProjectUtil.updateXWTCoreDependencies(getCreatedElement().getResource().getProject());
-		}
-		XWTUIPlugin.getDefault().openXWTPerspective();
-		return res;
-	}
-
-	private void tryToOpenResource() {
-		IResource resource = fPage.getModifiedResource();
-		if (resource != null) {
-			selectAndReveal(resource);
-		}
-		IResource guiResource = fPage.getGuiResource();
-		if (guiResource != null) {
-			selectAndReveal(guiResource);
-			openResource((IFile) guiResource);
-		} else {
-			openResource((IFile) resource);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#getCreatedElement()
-	 */
-	public IJavaElement getCreatedElement() {
-		return fPage.getCreatedType();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#canRunForked()
-	 */
-	protected boolean canRunForked() {
-		return !fPage.isEnclosingTypeSelected();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#finishPage(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	protected void finishPage(IProgressMonitor monitor) throws InterruptedException, CoreException {
-		fPage.createType(monitor); // use the full progress monitor
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewUIElementWizardPage.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewUIElementWizardPage.java
deleted file mode 100755
index 1d0c079..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewUIElementWizardPage.java
+++ /dev/null
@@ -1,239 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.wizards;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-import java.io.PrintStream;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.ui.ExceptionHandle;
-import org.eclipse.xwt.ui.XWTUIPlugin;
-import org.eclipse.xwt.ui.jdt.ProjectHelper;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.search.IJavaSearchConstants;
-import org.eclipse.jdt.core.search.IJavaSearchScope;
-import org.eclipse.jdt.core.search.SearchEngine;
-import org.eclipse.jdt.internal.ui.IJavaHelpContextIds;
-import org.eclipse.jdt.internal.ui.dialogs.FilteredTypesSelectionDialog;
-import org.eclipse.jdt.internal.ui.wizards.NewElementWizard;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.StringButtonDialogField;
-import org.eclipse.jdt.ui.wizards.NewClassWizardPage;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.PlatformUI;
-
-public class NewUIElementWizardPage extends
-		NewClassWizardPage {
-	protected String superClass;
-
-	protected IResource guiResource;
-
-	public NewUIElementWizardPage() {
-		setTitle("New Wizard Creation");
-		setDescription("This wizard creates a *.xwt file with java host class.");
-	}
-
-	public void createControl(Composite parent) {
-		initializeDialogUnits(parent);
-
-		Composite composite = new Composite(parent, SWT.NONE);
-		composite.setFont(parent.getFont());
-
-		int nColumns = 4;
-
-		GridLayout layout = new GridLayout();
-		layout.numColumns = nColumns;
-		composite.setLayout(layout);
-
-		// pick & choose the wanted UI components
-
-		createContainerControls(composite, nColumns);
-		createPackageControls(composite, nColumns);
-
-		createTypeNameControls(composite, nColumns);
-
-		createSeparator(composite, nColumns);
-
-		createCommentControls(composite, nColumns);
-		enableCommentControl(true);
-
-		createSeparator(composite, nColumns);
-
-		setControl(composite);
-
-		Dialog.applyDialogFont(composite);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(composite,
-				IJavaHelpContextIds.NEW_CLASS_WIZARD_PAGE);
-	}
-
-	public boolean isCreateConstructors() {
-		return true;
-	}
-
-	/**
-	 * 
-	 */
-	public void validateDataContext() {
-		String newMessage = "Invalid Java Type for initializing DataContext.";
-		String errorMessage = getErrorMessage();
-		if (newMessage.equals(errorMessage)) {
-			setErrorMessage(null);
-		} else {
-			setErrorMessage(errorMessage);
-		}
-	}
-
-	@Override
-	protected void initTypePage(IJavaElement elem) {
-		super.initTypePage(elem);
-		setSuperClass(getSuperClassName(), false);
-	}
-
-	protected String getSuperClassName() {
-		return Composite.class.getName();
-	}
-
-	public int getModifiers() {
-		return F_PUBLIC;
-	}
-
-	/**
-	 * Returns the chosen super interfaces.
-	 * 
-	 * @return a list of chosen super interfaces. The list's elements are of
-	 *         type <code>String</code>
-	 */
-	public List getSuperInterfaces() {
-		return Collections.EMPTY_LIST;
-	}
-
-	/**
-	 * Returns the current selection state of the 'Create Main' checkbox.
-	 * 
-	 * @return the selection state of the 'Create Main' checkbox
-	 */
-	public boolean isCreateMain() {
-		return false;
-	}
-
-	protected InputStream getContentStream() {
-		IType type = getCreatedType();
-		String hostClassName = type.getFullyQualifiedName();
-		ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
-		PrintStream printStream = new PrintStream(arrayOutputStream);
-
-		printStream.println("<Composite xmlns=\"" + IConstants.XWT_NAMESPACE
-				+ "\"");
-
-		printStream
-				.println("\t xmlns:x=\"" + IConstants.XWT_X_NAMESPACE + "\"");
-		String packageName = type.getPackageFragment().getElementName();
-		if (packageName != null/* && packageName.length() > 0 */) {
-			printStream.println("\t xmlns:c=\""
-					+ IConstants.XAML_CLR_NAMESPACE_PROTO + packageName + "\"");
-		}
-		printStream.println("\t xmlns:j=\""
-				+ IConstants.XAML_CLR_NAMESPACE_PROTO + "java.lang\"");
-		printStream.println("\t x:Class=\"" + hostClassName + "\">");
-		printStream.println("\t <Composite.layout>");
-		printStream.println("\t\t <GridLayout " + " numColumns=\"4\" />");
-		printStream.println("\t </Composite.layout>");
-
-		printStream.println("</Composite>");
-
-		try {
-			byte[] content = arrayOutputStream.toByteArray();
-			printStream.close();
-			arrayOutputStream.close();
-			return new ByteArrayInputStream(content);
-		} catch (Exception e) {
-			XWTUIPlugin.log(e);
-			ExceptionHandle.handle(e, "save failed in the file: "
-					+ getModifiedResource().getLocation());
-		}
-		return new ByteArrayInputStream(new byte[] {});
-	}
-
-	public void createType(IProgressMonitor monitor) throws CoreException,
-			InterruptedException {
-		// Add external Jars before create a new Java Source Type.
-		ProjectHelper.checkDependenceJars(getJavaProject());
-		super.createType(monitor);
-
-		IResource resource = getModifiedResource();
-		IPath resourcePath = resource.getProjectRelativePath()
-				.removeFileExtension();
-		resourcePath = resourcePath.addFileExtension(IConstants.XWT_EXTENSION);
-		try {
-			IFile file = resource.getProject().getFile(resourcePath);
-			file.create(getContentStream(), IResource.FORCE
-					| IResource.KEEP_HISTORY, monitor);
-			guiResource = file;
-		} catch (Exception e) {
-			e.printStackTrace();
-			ExceptionHandle.handle(e, "save failed in the file: "
-					+ getModifiedResource().getLocation());
-		}
-		return;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.ui.wizards.NewTypeWizardPage#getTypeName()
-	 */
-	public String getTypeName() {
-		String typeName = super.getTypeName();
-		if (typeName == null || typeName.equals("")) {
-			return typeName;
-		}
-		/*
-		 * Make sure the first character of the new Class name is a upperCase
-		 * one. Because the Element parser of the XWT file convert the top
-		 * element to this format.
-		 */
-		return Character.toUpperCase(typeName.charAt(0))
-				+ typeName.substring(1);
-	}
-
-	/**
-	 * Returns the current selection state of the 'Create inherited abstract
-	 * methods' checkbox.
-	 * 
-	 * @return the selection state of the 'Create inherited abstract methods'
-	 *         checkbox
-	 */
-	public boolean isCreateInherited() {
-		return true;
-	}
-
-	public IResource getGuiResource() {
-		return guiResource;
-	}
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewUIFileWizard.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewUIFileWizard.java
deleted file mode 100755
index f9839f8..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewUIFileWizard.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.wizards;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.PrintStream;
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.xwt.IConstants;
-import org.eclipse.xwt.ui.ExceptionHandle;
-import org.eclipse.xwt.ui.XWTUIPlugin;
-import org.eclipse.xwt.ui.utils.ProjectUtil;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-
-public class NewUIFileWizard extends Wizard implements INewWizard {
-
-	private NewUIFileWizardPage fileWizardPage;
-
-	private IStructuredSelection selection;
-
-	public NewUIFileWizard() {
-		setNeedsProgressMonitor(true);
-		setWindowTitle("New Widget File Wizard.");
-	}
-
-	public void addPages() {
-		fileWizardPage = new NewUIFileWizardPage(selection);
-		addPage(fileWizardPage);
-	}
-
-	public boolean performFinish() {
-		final String containerName = fileWizardPage.getContainerName();
-		final String fileName = fileWizardPage.getFileName();
-		IRunnableWithProgress op = new IRunnableWithProgress() {
-			public void run(IProgressMonitor monitor) throws InvocationTargetException {
-				try {
-					IFile file = doFinish(containerName, fileName, monitor);
-					tryToOpenPerspective();
-					ProjectUtil.updateXWTCoreDependencies(file.getProject());
-				} catch (CoreException e) {
-					throw new InvocationTargetException(e);
-				} finally {
-					monitor.done();
-				}
-			}
-		};
-		try {
-			getContainer().run(true, false, op);
-		} catch (InterruptedException e) {
-			return false;
-		} catch (InvocationTargetException e) {
-			Throwable realException = e.getTargetException();
-			MessageDialog.openError(getShell(), "Error", realException.getMessage());
-			return false;
-		}
-		return true;
-	}
-
-	protected void tryToOpenPerspective() {
-		getShell().getDisplay().asyncExec(new Runnable() {
-			public void run() {
-				XWTUIPlugin.getDefault().openXWTPerspective();
-			}
-		});
-	}
-
-	/**
-	 * The worker method. It will find the container, create the file if missing or just replace its nameMap, and open the editor on the newly created file.
-	 */
-
-	private IFile doFinish(String containerName, String fileName, IProgressMonitor monitor) throws CoreException {
-		// create a sample file
-		monitor.beginTask("Creating " + fileName, 2);
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		IResource resource = root.findMember(new Path(containerName));
-		if (!resource.exists() || !(resource instanceof IContainer)) {
-			throwCoreException("Container \"" + containerName + "\" does not exist.");
-		}
-		IContainer container = (IContainer) resource;
-		final IFile file = container.getFile(new Path(fileName));
-		try {
-			InputStream stream = openContentStream(file);
-			if (file.exists()) {
-				file.setContents(stream, true, true, monitor);
-			} else {
-				file.create(stream, true, monitor);
-			}
-			stream.close();
-		} catch (IOException e) {
-		}
-		monitor.worked(1);
-		monitor.setTaskName("Opening file for editing...");
-		getShell().getDisplay().asyncExec(new Runnable() {
-			public void run() {
-				IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-				try {
-					IDE.openEditor(page, file, true);
-				} catch (PartInitException e) {
-				}
-			}
-		});
-		monitor.worked(1);
-		return file;
-	}
-
-	/**
-	 * We will initialize file nameMap with a sample text.
-	 */
-
-	private InputStream openContentStream(IFile file) {
-		ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
-		PrintStream printStream = new PrintStream(arrayOutputStream);
-
-		printStream.println("<Composite");
-		printStream.println("\t xmlns=\"" + IConstants.XWT_NAMESPACE + "\"");
-		printStream.println("\t xmlns:x=\"" + IConstants.XWT_X_NAMESPACE + "\">");
-		printStream.println("</Composite>");
-
-		try {
-			byte[] content = arrayOutputStream.toByteArray();
-			printStream.close();
-			arrayOutputStream.close();
-			return new ByteArrayInputStream(content);
-		} catch (Exception e) {
-			XWTUIPlugin.log(e);
-			ExceptionHandle.handle(e, "save failed in the file: " + fileWizardPage.getFileName());
-		}
-		return new ByteArrayInputStream(new byte[] {});
-	}
-
-	private void throwCoreException(String message) throws CoreException {
-		IStatus status = new Status(IStatus.ERROR, XWTUIPlugin.PLUGIN_ID, IStatus.OK, message, null);
-		throw new CoreException(status);
-	}
-
-	public void init(IWorkbench workbench, IStructuredSelection selection) {
-		this.selection = selection;
-	}
-
-}
diff --git a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewUIFileWizardPage.java b/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewUIFileWizardPage.java
deleted file mode 100755
index 92b8b39..0000000
--- a/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewUIFileWizardPage.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.ui.wizards;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.xwt.IConstants;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.dialogs.ContainerSelectionDialog;
-
-public class NewUIFileWizardPage extends WizardPage {
-	private Text containerText;
-
-	private Text fileText;
-
-	private ISelection selection;
-
-	protected NewUIFileWizardPage(ISelection selection) {
-		super("NewWidgetFileWizardPage");
-		setTitle("New Widget File Creation");
-		setDescription("This wizard creates a new file with *.xwt extension.");
-		this.selection = selection;
-	}
-
-	public void createControl(Composite parent) {
-		Composite container = new Composite(parent, SWT.NULL);
-		GridLayout layout = new GridLayout();
-		container.setLayout(layout);
-		layout.numColumns = 3;
-		layout.verticalSpacing = 9;
-		Label label = new Label(container, SWT.NULL);
-		label.setText("&Container:");
-
-		containerText = new Text(container, SWT.BORDER | SWT.SINGLE);
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		containerText.setLayoutData(gd);
-		containerText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				dialogChanged();
-			}
-		});
-
-		Button button = new Button(container, SWT.PUSH);
-		button.setText("Browse...");
-		button.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				handleBrowse();
-			}
-		});
-		label = new Label(container, SWT.NULL);
-		label.setText("&File name:");
-
-		fileText = new Text(container, SWT.BORDER | SWT.SINGLE);
-		gd = new GridData(GridData.FILL_HORIZONTAL);
-		fileText.setLayoutData(gd);
-		fileText.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				dialogChanged();
-			}
-		});
-
-		initialize();
-		dialogChanged();
-		setControl(container);
-	}
-
-	/**
-	 * Tests if the current workbench selection is a suitable container to use.
-	 */
-
-	private void initialize() {
-		if (selection != null && selection.isEmpty() == false && selection instanceof IStructuredSelection) {
-			IStructuredSelection ssel = (IStructuredSelection) selection;
-			if (ssel.size() > 1)
-				return;
-			IContainer container = null;
-			Object obj = ssel.getFirstElement();
-			if (obj instanceof IAdaptable) {
-				IAdaptable adaptable = (IAdaptable) obj;
-				IResource resource = (IResource) adaptable.getAdapter(IResource.class);
-				if (resource instanceof IContainer)
-					container = (IContainer) resource;
-				else
-					container = resource.getParent();
-			}
-
-			if (obj instanceof IResource) {
-				if (obj instanceof IContainer)
-					container = (IContainer) obj;
-				else
-					container = ((IResource) obj).getParent();
-			}
-			if (containerText != null) {
-				containerText.setText(container.getFullPath().toString());
-			}
-		}
-		fileText.setText("NewWidget.xwt");
-	}
-
-	/**
-	 * Uses the standard container selection dialog to choose the new value for the container field.
-	 */
-	private void handleBrowse() {
-		ContainerSelectionDialog dialog = new ContainerSelectionDialog(getShell(), ResourcesPlugin.getWorkspace().getRoot(), false, "Select new file container");
-		if (dialog.open() == ContainerSelectionDialog.OK) {
-			Object[] result = dialog.getResult();
-			if (result.length == 1) {
-				containerText.setText(((Path) result[0]).toString());
-			}
-		}
-	}
-
-	/**
-	 * Ensures that both text fields are set.
-	 */
-	private void dialogChanged() {
-		IResource container = ResourcesPlugin.getWorkspace().getRoot().findMember(new Path(getContainerName()));
-		String fileName = getFileName();
-
-		if (getContainerName().length() == 0) {
-			updateStatus("File container must be specified");
-			return;
-		}
-		if (container == null || (container.getType() & (IResource.PROJECT | IResource.FOLDER)) == 0) {
-			updateStatus("File container must exist");
-			return;
-		}
-		if (!container.isAccessible()) {
-			updateStatus("Project must be writable");
-			return;
-		}
-		if (fileName.length() == 0) {
-			updateStatus("File name must be specified");
-			return;
-		}
-		if (fileName.replace('\\', '/').indexOf('/', 1) > 0) {
-			updateStatus("File name must be valid");
-			return;
-		}
-		int dotLoc = fileName.lastIndexOf('.');
-		if (dotLoc != -1) {
-			String ext = fileName.substring(dotLoc + 1);
-			if (ext.equalsIgnoreCase(IConstants.XWT_EXTENSION) == false) {
-				updateStatus("File extension must be \"" + IConstants.XWT_EXTENSION + "\"");
-				return;
-			}
-		}
-		updateStatus(null);
-	}
-
-	private void updateStatus(String message) {
-		setErrorMessage(message);
-		setPageComplete(message == null);
-	}
-
-	public String getContainerName() {
-		return containerText.getText();
-	}
-
-	public String getFileName() {
-		return fileText.getText();
-	}
-}
diff --git a/org.eclipse.xwt.ui.workbench/.classpath b/org.eclipse.xwt.ui.workbench/.classpath
deleted file mode 100644
index 45f024e..0000000
--- a/org.eclipse.xwt.ui.workbench/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<classpath>

-	<classpathentry kind="src" path="src"/>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>

-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

-	<classpathentry kind="output" path="bin"/>

-</classpath>

diff --git a/org.eclipse.xwt.ui.workbench/.project b/org.eclipse.xwt.ui.workbench/.project
deleted file mode 100644
index bef08c3..0000000
--- a/org.eclipse.xwt.ui.workbench/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.xwt.ui.workbench</name>

-	<comment></comment>

-	<projects>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.jdt.core.javabuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.ManifestBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.SchemaBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.pde.PluginNature</nature>

-		<nature>org.eclipse.jdt.core.javanature</nature>

-	</natures>

-</projectDescription>

diff --git a/org.eclipse.xwt.ui.workbench/META-INF/MANIFEST.MF b/org.eclipse.xwt.ui.workbench/META-INF/MANIFEST.MF
deleted file mode 100644
index 5960292..0000000
--- a/org.eclipse.xwt.ui.workbench/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,49 +0,0 @@
-Manifest-Version: 1.0

-Bundle-ManifestVersion: 2

-Bundle-Name: %Bundle-Name.0

-Bundle-SymbolicName: org.eclipse.xwt.ui.workbench

-Bundle-Version: 1.4.0.qualifier

-Bundle-Vendor: %Bundle-Vendor.0

-Require-Bundle: 

- org.eclipse.xwt;bundle-version="1.0.0",

- org.eclipse.xwt.css;bundle-version="1.0.0",

- org.eclipse.e4.core.services;bundle-version="1.0.0",

- org.eclipse.e4.core.contexts;bundle-version="1.0.0",

- org.eclipse.e4.core.di;bundle-version="1.0.0",

- org.eclipse.swt;bundle-version="3.4.0",

- org.eclipse.jface;bundle-version="3.4.0",

- org.eclipse.e4.core.commands;bundle-version="0.10.0",

- org.eclipse.core.runtime;bundle-version="3.6.0",

- org.eclipse.core.databinding;bundle-version="1.3.0",

- org.eclipse.jface.databinding;bundle-version="1.3.100",

- org.eclipse.ui.views.properties.tabbed;bundle-version="3.5.0",

- org.eclipse.emf;bundle-version="2.6.0",

- org.eclipse.emf.edit;bundle-version="2.8.0",

- org.eclipse.xwt.emf;bundle-version="1.0.0",

- org.eclipse.e4.ui.services;bundle-version="0.10.2",

- org.eclipse.e4.ui.workbench;bundle-version="0.10.3",

- org.eclipse.e4.ui.model.workbench;bundle-version="0.10.1",

- javax.inject;bundle-version="[1.0.0,2.0.0)"

-Bundle-RequiredExecutionEnvironment: J2SE-1.5

-Bundle-ActivationPolicy: lazy

-Export-Package: org.eclipse.xwt.ui.workbench,

- org.eclipse.xwt.ui.workbench.editors;uses:="org.eclipse.core.databinding.observable,org.eclipse.core.runtime,org.eclipse.xwt.ui.workbench.views",

- org.eclipse.xwt.ui.workbench.properties;

-  uses:="org.eclipse.ui.views.properties.tabbed,

-   org.eclipse.ui,

-   org.eclipse.jface.viewers,

-   org.eclipse.swt.widgets,

-   org.eclipse.emf.edit.domain",

- org.eclipse.xwt.ui.workbench.views;

-  uses:="org.eclipse.xwt.ui.workbench,

-   org.eclipse.e4.core.contexts,

-   org.eclipse.e4.core.commands,

-   org.eclipse.e4.ui.services,

-   org.eclipse.swt.widgets",

- org.eclipse.xwt.ui.workbench.wizard;

-  uses:="org.eclipse.jface.wizard,

-   org.eclipse.core.databinding.observable,

-   org.eclipse.xwt.internal.core,

-   org.eclipse.jface.resource,

-   org.eclipse.xwt.databinding,

-   org.eclipse.swt.widgets"

diff --git a/org.eclipse.xwt.ui.workbench/about.html b/org.eclipse.xwt.ui.workbench/about.html
deleted file mode 100644
index c258ef5..0000000
--- a/org.eclipse.xwt.ui.workbench/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!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 5, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.ui.workbench/build.properties b/org.eclipse.xwt.ui.workbench/build.properties
deleted file mode 100644
index a4e1bcd..0000000
--- a/org.eclipse.xwt.ui.workbench/build.properties
+++ /dev/null
@@ -1,30 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# <copyright>
-# </copyright>
-#
-# $Id: build.properties,v 1.3 2010/06/18 00:15:13 yvyang Exp $
-
-bin.includes = .,\
-               model/,\
-               META-INF/,\
-               plugin.properties,\
-               about.html,\
-               .classpath,\
-               .project,\
-               notice.html
-jars.compile.order = .
-source.. = src/
-output.. = bin/
-src.includes = about.html,\
-               model/,\
-               notice.html
diff --git a/org.eclipse.xwt.ui.workbench/model/XWTWorkBench.ecore b/org.eclipse.xwt.ui.workbench/model/XWTWorkBench.ecore
deleted file mode 100644
index 6338449..0000000
--- a/org.eclipse.xwt.ui.workbench/model/XWTWorkBench.ecore
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<ecore:EPackage xmi:version="2.0"

-    xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

-    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="model"

-    nsURI="http://www.eclipse.org/xwt/workbench" nsPrefix="XWT">

-  <eClassifiers xsi:type="ecore:EClass" name="StaticContributedPart">

-    <eTypeParameters name="P">

-      <eBounds eClassifier="ecore:EClass platform:/plugin/org.eclipse.e4.ui.model.workbench/model/Application.ecore#//MPart">

-        <eTypeArguments/>

-      </eBounds>

-    </eTypeParameters>

-  </eClassifiers>

-  <eClassifiers xsi:type="ecore:EClass" name="DynamicContributedPart">

-    <eTypeParameters name="P">

-      <eBounds eClassifier="ecore:EClass platform:/plugin/org.eclipse.e4.ui.model.workbench/model/Application.ecore#//MPart">

-        <eTypeArguments/>

-      </eBounds>

-    </eTypeParameters>

-  </eClassifiers>

-</ecore:EPackage>

diff --git a/org.eclipse.xwt.ui.workbench/model/XWTWorkBench.genmodel b/org.eclipse.xwt.ui.workbench/model/XWTWorkBench.genmodel
deleted file mode 100644
index 75bcccd..0000000
--- a/org.eclipse.xwt.ui.workbench/model/XWTWorkBench.genmodel
+++ /dev/null
@@ -1,19 +0,0 @@
-<?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.xwt.ui.workbench/src"

-    modelPluginID="org.eclipse.xwt.ui.workbench" modelName="XWTWorkBench" importerID="org.eclipse.emf.importer.ecore"

-    complianceLevel="5.0" copyrightFields="false" usedGenPackages="../../org.eclipse.e4.ui.model.workbench/model/Application.genmodel#//application">

-  <foreignModel>XWTWorkBench.ecore</foreignModel>

-  <genPackages prefix="XWT" basePackage="org.eclipse.xwt.ui.workbench" disposableProviderFactory="true"

-      ecorePackage="XWTWorkBench.ecore#/">

-    <genClasses ecoreClass="XWTWorkBench.ecore#//StaticContributedPart">

-      <genTypeParameters ecoreTypeParameter="XWTWorkBench.ecore#//StaticContributedPart/P"/>

-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XWTWorkBench.ecore#//StaticContributedPart/contentURL"/>

-    </genClasses>

-    <genClasses ecoreClass="XWTWorkBench.ecore#//DynamicContributedPart">

-      <genTypeParameters ecoreTypeParameter="XWTWorkBench.ecore#//DynamicContributedPart/P"/>

-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XWTWorkBench.ecore#//DynamicContributedPart/contentProvider"/>

-    </genClasses>

-  </genPackages>

-</genmodel:GenModel>

diff --git a/org.eclipse.xwt.ui.workbench/notice.html b/org.eclipse.xwt.ui.workbench/notice.html
deleted file mode 100644
index c3d34c3..0000000
--- a/org.eclipse.xwt.ui.workbench/notice.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 9, 2014</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/org.eclipse.xwt.ui.workbench/plugin.properties b/org.eclipse.xwt.ui.workbench/plugin.properties
deleted file mode 100644
index 17c2bb4..0000000
--- a/org.eclipse.xwt.ui.workbench/plugin.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################

-# Copyright (c) 2010 IBM Corporation and others.

-# All rights reserved. This program and the accompanying materials

-# are made available under the terms of the Eclipse Public License v1.0

-# which accompanies this distribution, and is available at

-# http://www.eclipse.org/legal/epl-v10.html

-#

-# Contributors:

-#     IBM Corporation - initial API and implementation

-###############################################################################

-"******************************************************************************

-# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

-# All rights reserved. This program and the accompanying materials

-# are made available under the terms of the Eclipse Public License v1.0

-# which accompanies this distribution, and is available at

-# http://www.eclipse.org/legal/epl-v10.html

-# 

-# Contributors:

-#     Soyatec - initial API and implementation

-#******************************************************************************/

-Bundle-Vendor.0 = Eclipse XWT

-Bundle-Name.0 = XWT Workbench

diff --git a/org.eclipse.xwt.ui.workbench/pom.xml b/org.eclipse.xwt.ui.workbench/pom.xml
deleted file mode 100755
index 9597580..0000000
--- a/org.eclipse.xwt.ui.workbench/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt.ui.workbench</artifactId>
-	<version>1.4.0-SNAPSHOT</version>
-	<packaging>eclipse-plugin</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/IContentPart.java b/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/IContentPart.java
deleted file mode 100644
index ccb4f12..0000000
--- a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/IContentPart.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.ui.workbench;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public interface IContentPart {

-	Object getDataContext();

-

-	ClassLoader getClassLoader();

-}

diff --git a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/IPartContentProvider.java b/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/IPartContentProvider.java
deleted file mode 100644
index ce5b517..0000000
--- a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/IPartContentProvider.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.ui.workbench;

-

-import java.io.InputStream;

-import java.net.URL;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public interface IPartContentProvider {

-

-	/**

-	 * Content stream

-	 * 

-	 * @return

-	 */

-	InputStream getContent();

-

-	/**

-	 * Resource location, used to resolve relative resources

-	 * 

-	 * @return

-	 */

-	URL getBase();

-

-	/**

-	 * Resource loader

-	 * 

-	 * @return

-	 */

-	ClassLoader getClassLoader();

-}

diff --git a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/IStaticPart.java b/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/IStaticPart.java
deleted file mode 100644
index 08c19b3..0000000
--- a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/IStaticPart.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.ui.workbench;

-

-import java.net.URL;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public interface IStaticPart extends IContentPart {

-	URL getURL();

-}

diff --git a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/editors/XWTSaveablePart.java b/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/editors/XWTSaveablePart.java
deleted file mode 100644
index 1786aea..0000000
--- a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/editors/XWTSaveablePart.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.ui.workbench.editors;

-

-import java.io.IOException;

-import java.net.URL;

-

-import javax.inject.Inject;

-

-import org.eclipse.core.databinding.observable.ChangeEvent;

-import org.eclipse.core.databinding.observable.IChangeListener;

-import org.eclipse.core.runtime.IProgressMonitor;

-import org.eclipse.e4.core.di.annotations.Optional;

-import org.eclipse.e4.ui.model.application.ui.MDirtyable;

-import org.eclipse.e4.ui.model.application.ui.MUILabel;

-import org.eclipse.jface.databinding.swt.ISWTObservable;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.ui.workbench.views.XWTStaticPart;

-

-/**

- * This class defines the common infrastructure as editor part of eclipse workbench.

- * 

- * @author yyang <yves.yang@soyatec.com>

- */

-public abstract class XWTSaveablePart extends XWTStaticPart {

-	@Inject

-	private MDirtyable dirtyable;

-	

-	@Inject

-	private MUILabel uiItem;

-	

-	private DirtyManager dirtyManager = new DirtyManager();

-	

-	class DirtyManager implements IChangeListener {

-		public void handleChange(ChangeEvent event) {

-			if (dirtyable.isDirty()) {

-				return;

-			}

-			Object source = event.getSource();

-			if (!(source instanceof ISWTObservable)) {

-				setDirty(true);

-			}

-		}

-	}

-

-	// TBD is this the right place for the @Persist tag?

-	// org.eclipse.e4.ui.di.Persist @Persist

-	public abstract void doSave(@Optional IProgressMonitor monitor) throws IOException,

-	InterruptedException;

- 	

-	public boolean isSaveOnCloseNeeded() {

-		return true;

-	}

-	

-	@Override

-	protected void refresh(URL url, Object dataContext, ClassLoader loader) {

-		Control loadedRoot = null;

-		Control[] children = getParent().getChildren();

-		if (children.length > 0) {

-			loadedRoot = children[0];

-		}

-		if (loadedRoot != null) {

-			XWT.removeObservableChangeListener(loadedRoot, dirtyManager);			

-		}

-		

-		super.refresh(url, dataContext, loader);

-		

-		dirtyable.setDirty(false);

-		

-		children = getParent().getChildren();

-		if (children.length > 0) {

-			loadedRoot = children[0];

-		}

-		if (loadedRoot != null) {

-			XWT.addObservableChangeListener(loadedRoot, dirtyManager);

-		}

-	}

-	

-	protected void updatePartTitle(String title) {

-		uiItem.setLabel(title.toString());

-	}

-		

-	public boolean isDirty() {

-		return dirtyable.isDirty();

-	}

-	

-	public void setDirty(Boolean dirty) {

-		dirtyable.setDirty(dirty);

-	}

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/ApplicationPropertySheetPage.java b/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/ApplicationPropertySheetPage.java
deleted file mode 100644
index 29e3956..0000000
--- a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/ApplicationPropertySheetPage.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2014 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.ui.workbench.properties;

-

-import org.eclipse.emf.edit.domain.EditingDomain;

-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;

-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;

-

-public class ApplicationPropertySheetPage extends TabbedPropertySheetPage {

-

-	private EditingDomain editingDomain;

-

-	public ApplicationPropertySheetPage(

-			EditingDomain editingDomain,

-			ITabbedPropertySheetPageContributor tabbedPropertySheetPageContributor) {

-		this(editingDomain, tabbedPropertySheetPageContributor, true);

-	}

-

-	public ApplicationPropertySheetPage(

-			EditingDomain editingDomain,

-			ITabbedPropertySheetPageContributor tabbedPropertySheetPageContributor,

-			boolean showTitleBar) {

-		super(tabbedPropertySheetPageContributor, showTitleBar);

-		this.editingDomain = editingDomain;

-	}

-

-	public EditingDomain getEditingDomain() {

-		return editingDomain;

-	}

-

-}

diff --git a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/XWTSection.java b/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/XWTSection.java
deleted file mode 100644
index e2638f2..0000000
--- a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/XWTSection.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2014 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.ui.workbench.properties;

-

-import java.net.URL;

-import java.util.HashMap;

-

-import org.eclipse.jface.viewers.ISelection;

-import org.eclipse.jface.viewers.IStructuredSelection;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.layout.GridData;

-import org.eclipse.swt.layout.GridLayout;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.ui.IWorkbenchPart;

-import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;

-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;

-import org.eclipse.xwt.DefaultLoadingContext;

-import org.eclipse.xwt.ILoadingContext;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTLoader;

-import org.eclipse.xwt.emf.EMFBinding;

-

-public class XWTSection extends AbstractPropertySection {

-	private ILoadingContext loadingContext = new DefaultLoadingContext(

-			getClass().getClassLoader());

-

-	private URL sectionURL;

-

-	private Composite self;

-

-	private boolean xwtCaching = true;

-	

-	public XWTSection(URL sectionURL) {

-		this.sectionURL = sectionURL;

-	}

-

-	@Override

-	public void createControls(Composite parent,

-			TabbedPropertySheetPage aTabbedPropertySheetPage) {

-		self = new Composite(parent, SWT.NONE);

-

-		GridLayout layout = new GridLayout(1, false);

-		layout.marginHeight = 0;

-		layout.marginWidth = 0;

-		self.setLayout(layout);

-

-		layout = new GridLayout(1, false);

-		layout.verticalSpacing = 5;

-		layout.marginHeight = 5;

-		layout.marginWidth = 5;

-		parent.setLayout(layout);

-

-		GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);

-		self.setLayoutData(data);

-

-		self.setBackground(parent.getBackground());

-		self.setBackgroundMode(SWT.INHERIT_DEFAULT);

-	}

-

-	@Override

-	public void refresh() {

-		if (self == null || self.isDisposed()) {

-			dispose();

-			return;

-		}

-		for (Control child : self.getChildren()) {

-			child.dispose();

-		}

-		Object source = getDataObject();

-		if (source == null) {

-			return;

-		}

-		if (sectionURL != null) {

-			createSection(self, sectionURL, source);

-		}

-		layout(self);

-	}

-	

-	public boolean isXWTCaching() {

-		return xwtCaching;

-	}

-

-	public void setXWTCaching(boolean pmfCaching) {

-		this.xwtCaching = pmfCaching;

-	}

-

-	private Object getDataObject() {

-		IStructuredSelection selection = getSelection();

-		return selection.getFirstElement();

-	}

-

-	private Control createSection(Composite parent, URL xwtFile, Object source) {

-		EMFBinding.initialze();

-		ILoadingContext xwtContext = XWT.getLoadingContext();

-		XWT.setLoadingContext(loadingContext);

-

-		Control control = null;

-		try {

-			HashMap<String, Object> newOptions = new HashMap<String, Object>();

-			newOptions.put(XWTLoader.CONTAINER_PROPERTY, parent);

-			newOptions.put(XWTLoader.DATACONTEXT_PROPERTY, source);

-			newOptions.put(XWTLoader.CLASS_PROPERTY, this);

-			if (isXWTCaching()) {

-				newOptions.put(XWTLoader.XML_CACHE_PROPERTY, this);

-			}

-			control = (Control) XWT.loadWithOptions(xwtFile, newOptions);

-

-			if (control != null) {

-				control.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true,

-						true));

-			}

-		} catch (Exception ex) {

-			Label label = new Label(parent, SWT.NONE);

-			label.setText("An error occured in the property view. The file " + xwtFile + " could not be loaded"); //$NON-NLS-1$ //$NON-NLS-2$

-			ex.printStackTrace();

-		}

-		// layout(parent);

-

-		XWT.setLoadingContext(xwtContext);

-

-		return control;

-	}

-

-	private void layout(Composite parent) {

-		parent.getParent().getParent().layout();

-		parent.getParent().layout();

-		parent.layout();

-	}

-

-	@Override

-	public void dispose() {

-		if (self != null) {

-			self.dispose();

-		}

-		super.dispose();

-	}

-

-	@Override

-	public void setInput(IWorkbenchPart part, ISelection selection) {

-		if (selection == getSelection()) {

-			return;

-		}

-		super.setInput(part, selection);

-	}

-

-	@Override

-	public IStructuredSelection getSelection() {

-		return (IStructuredSelection) super.getSelection();

-	}

-}

diff --git a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/XWTSectionDescriptor.java b/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/XWTSectionDescriptor.java
deleted file mode 100644
index 9cd4140..0000000
--- a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/XWTSectionDescriptor.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2014 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.ui.workbench.properties;

-

-import java.net.URL;

-import java.util.ArrayList;

-import java.util.List;

-

-import org.eclipse.core.runtime.Assert;

-import org.eclipse.ui.views.properties.tabbed.AbstractSectionDescriptor;

-import org.eclipse.ui.views.properties.tabbed.ISection;

-import org.eclipse.xwt.IConstants;

-

-public class XWTSectionDescriptor extends AbstractSectionDescriptor {

-

-	private String id;

-	private String targetTab;

-	private String sectionTypeName;

-	private List<String> inputTypes;

-

-	public XWTSectionDescriptor(String id, String targetTab,

-			String sectionTypeName) {

-		Assert.isNotNull(id, "Section id can not be null");

-		Assert.isNotNull(targetTab, "Tab id can not be null");

-		Assert.isNotNull(sectionTypeName,

-				"URL for renderering section can not be null");

-		this.id = id;

-		this.targetTab = targetTab;

-		this.sectionTypeName = sectionTypeName;

-	}

-

-	public String getId() {

-		return id;

-	}

-

-	public ISection getSectionClass() {

-		URL sectionURL = null;

-		try {

-			Class<?> type = Class.forName(sectionTypeName);

-			sectionURL = type.getResource(type.getSimpleName()

-					+ IConstants.XWT_EXTENSION_SUFFIX);

-		} catch (ClassNotFoundException e) {

-			e.printStackTrace();

-		}

-		return new XWTSection(sectionURL);

-	}

-

-	public String getTargetTab() {

-		return targetTab;

-	}

-

-	public List<String> getInputTypes() {

-		if (inputTypes == null) {

-			inputTypes = new ArrayList<String>();

-		}

-		return inputTypes;

-	}

-

-	public void addInputType(String inputType) {

-		getInputTypes().add(inputType);

-	}

-}

diff --git a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/XWTTabDescriptor.java b/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/XWTTabDescriptor.java
deleted file mode 100644
index 416f1e4..0000000
--- a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/XWTTabDescriptor.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2014 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.ui.workbench.properties;

-

-import org.eclipse.core.runtime.Assert;

-import org.eclipse.ui.views.properties.tabbed.AbstractTabDescriptor;

-

-public class XWTTabDescriptor extends AbstractTabDescriptor {

-

-	private String id;

-	private String label;

-	private String category;

-

-	public XWTTabDescriptor(String id, String label, String category) {

-		Assert.isNotNull(id, "Tab id can not be null");

-		this.id = id;

-		this.category = category;

-		this.label = label;

-	}

-

-	public String getCategory() {

-		return category;

-	}

-

-	public String getId() {

-		return id;

-	}

-

-	public String getLabel() {

-		return label;

-	}

-

-}

diff --git a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/XWTTabDescriptorProvider.java b/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/XWTTabDescriptorProvider.java
deleted file mode 100644
index 44b4afa..0000000
--- a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/XWTTabDescriptorProvider.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2014 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.ui.workbench.properties;

-

-import java.lang.reflect.InvocationTargetException;

-import java.lang.reflect.Method;

-import java.util.ArrayList;

-import java.util.List;

-

-import org.eclipse.jface.viewers.ISelection;

-import org.eclipse.ui.IWorkbenchPart;

-import org.eclipse.ui.internal.views.properties.tabbed.view.TabbedPropertyRegistry;

-import org.eclipse.ui.internal.views.properties.tabbed.view.TabbedPropertyRegistryFactory;

-import org.eclipse.ui.views.properties.tabbed.ITabDescriptor;

-import org.eclipse.ui.views.properties.tabbed.ITabDescriptorProvider;

-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;

-

-@SuppressWarnings("restriction")

-public abstract class XWTTabDescriptorProvider implements ITabDescriptorProvider {

-

-	private IWorkbenchPart previousPart;

-

-	private ISelection previousSelection;

-

-	private ITabDescriptor[] cachedResult;

-

-	public ITabDescriptor[] getTabDescriptors(IWorkbenchPart part,

-			ISelection selection) {

-		if (part != previousPart || selection != previousSelection) {

-			this.previousPart = part;

-			this.previousSelection = selection;

-			List<ITabDescriptor> descriptors = new ArrayList<ITabDescriptor>();

-

-			addTabDescriptors(descriptors);

-

-			// TODO: 2. Define/Get "category" of a TabDescriptor.

-

-			// TODO: Add custom defined Tabs and Section from extensions.

-			// FIXME: In some cases (e.g. Selection in the Papyrus Tree

-			// outline), the IWorkbenchPart is not an

-			// ITabbedPropertySheetPageContributor

-			// TODO: Investigate on this case and fix the issue (contributor ==

-			// null in this case)

-			ITabbedPropertySheetPageContributor contributor;

-			if (part instanceof ITabbedPropertySheetPageContributor) {

-				contributor = (ITabbedPropertySheetPageContributor) part;

-			} else {

-				contributor = (ITabbedPropertySheetPageContributor) (part

-						.getAdapter(ITabbedPropertySheetPageContributor.class));

-			}

-

-			if (contributor != null) {

-				// get all tab descriptors for the registered extension points

-				// Memory leak here

-				TabbedPropertyRegistry registry = TabbedPropertyRegistryFactory

-						.getInstance().createRegistry(contributor);

-

-				// invoke dynamically on the tab registry, as method is private

-				// problem of implementation of tabbed properties tabbed

-				// registry. Either contribution using extension points, either

-				// a tabprovider

-				// both contribution can not exist together, the only solution

-				// is to make a workaround.

-				try {

-					Method method = TabbedPropertyRegistry.class

-							.getDeclaredMethod("getAllTabDescriptors"); //$NON-NLS-1$

-					method.setAccessible(true);

-					ITabDescriptor[] registeredTabDesriptors;

-

-					registeredTabDesriptors = (ITabDescriptor[]) method

-							.invoke(registry);

-

-					if (registeredTabDesriptors != null) {

-						for (ITabDescriptor descriptor : registeredTabDesriptors) {

-							if (descriptor.getSectionDescriptors().size() > 0) {

-								descriptors.add(descriptor);

-							}

-						}

-					}

-				} catch (IllegalArgumentException e) {

-					e.printStackTrace();

-				} catch (IllegalAccessException e) {

-					e.printStackTrace();

-				} catch (InvocationTargetException e) {

-					e.printStackTrace();

-				} catch (SecurityException e) {

-					e.printStackTrace();

-				} catch (NoSuchMethodException e) {

-					e.printStackTrace();

-				}

-			}

-

-			// TODO: need a sort?

-			cachedResult = descriptors.toArray(new ITabDescriptor[descriptors

-					.size()]);

-		}

-		return cachedResult;

-	}

-

-	abstract protected void addTabDescriptors(List<ITabDescriptor> descriptors);

-}

diff --git a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTAbstractPart.java b/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTAbstractPart.java
deleted file mode 100644
index 7da193d..0000000
--- a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTAbstractPart.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.ui.workbench.views;

-

-import java.beans.PropertyChangeEvent;

-import java.beans.PropertyChangeListener;

-import java.beans.PropertyChangeSupport;

-import java.net.URL;

-import java.util.HashMap;

-

-import javax.annotation.PostConstruct;

-import javax.inject.Inject;

-

-import org.eclipse.e4.core.commands.ECommandService;

-import org.eclipse.e4.core.commands.EHandlerService;

-import org.eclipse.e4.core.contexts.IEclipseContext;

-import org.eclipse.e4.ui.services.IStylingEngine;

-import org.eclipse.jface.layout.GridLayoutFactory;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.xwt.DefaultLoadingContext;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTLoader;

-import org.eclipse.xwt.css.CSSHandler;

-import org.eclipse.xwt.internal.utils.LoggerManager;

-import org.eclipse.xwt.ui.workbench.IContentPart;

-

-/**

- * The default class to handle the connection with e4 workbench.

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public abstract class XWTAbstractPart implements IContentPart {

-	private PropertyChangeSupport changeSupport = new PropertyChangeSupport(

-			this);

-	

-	private boolean constructing = true;

-

-	private boolean xwtCaching = true;

-	

-	@Inject

-	private Composite parent;

-

-	@Inject

-	private IStylingEngine engine;

-

-	@Inject

-	private EHandlerService handlerService;

-

-	@Inject

-	private ECommandService commandService;

-

-	private IEclipseContext context;

-

-	protected Object dataContext;

-

-	static {

-		try {

-			XWT.registerNamespaceHandler(CSSHandler.NAMESPACE,

-					CSSHandler.handler);

-		} catch (Exception e) {

-		}

-	}

-

-	public IEclipseContext getContext() {

-		return context;

-	}

-

-	@Inject

-	public void setContext(IEclipseContext context) {

-		if (context == null) {

-			return;

-		}

-		this.context = context;

-	}

-

-	/*

-	 * Called by injection engine

-	 */

-	@SuppressWarnings("unused")

-	@PostConstruct

-	final private void partPostConstruct() {

-		constructing = false;

-	}

-		

-	public boolean isConstructing() {

-		return constructing;

-	}

-	

-	public IStylingEngine getStyleEngine() {

-		return engine;

-	}

-	

-	public boolean isXWTCaching() {

-		return xwtCaching;

-	}

-

-	public void setXWTCaching(boolean pmfCaching) {

-		this.xwtCaching = pmfCaching;

-	}

-

-	public EHandlerService getHandlerService() {

-		return handlerService;

-	}

-

-	public ECommandService getCommandService() {

-		return commandService;

-	}

-

-	public Object getDataContext() {

-		return dataContext;

-	}

-	

-	

-	public void setDataContext(Object dataContext) {

-		this.dataContext = dataContext;

-	}

-

-	public Composite getParent() {

-		return parent;

-	}

-

-	@Inject

-	public void setParent(Composite parent) {

-		if (parent != null && this.parent == null) {

-			this.parent = parent;

-			parent.getShell().setBackgroundMode(SWT.INHERIT_DEFAULT);

-		}

-	}

-

-	public void addPropertyChangeListener(String propertyName,

-			PropertyChangeListener listener) {

-		changeSupport.addPropertyChangeListener(propertyName, listener);

-	}

-

-	public void removePropertyChangeListener(String propertyName,

-			PropertyChangeListener listener) {

-		changeSupport.removePropertyChangeListener(propertyName, listener);

-	}

-

-	public void firePropertyChange(PropertyChangeEvent evt) {

-		changeSupport.firePropertyChange(evt);

-	}

-	

-	public ClassLoader getClassLoader() {

-		return this.getClass().getClassLoader();

-	}

-

-	protected void refresh(URL url, Object dataContext, ClassLoader loader) {

-		if (parent == null || isConstructing()) {

-			return;

-		}

-		parent.setVisible(false);

-		for (Control child : parent.getChildren()) {

-			child.dispose();

-		}

-		ClassLoader classLoader = Thread.currentThread()

-				.getContextClassLoader();

-		try {

-			XWT.setLoadingContext(new DefaultLoadingContext(loader));

-			HashMap<String, Object> newOptions = new HashMap<String, Object>();

-			newOptions.put(XWTLoader.CONTAINER_PROPERTY, parent);

-			newOptions.put(XWTLoader.DATACONTEXT_PROPERTY, dataContext);

-			newOptions.put(XWTLoader.CLASS_PROPERTY, this);

-			if (isXWTCaching()) {

-				newOptions.put(XWTLoader.XML_CACHE_PROPERTY, this);

-			}

-			XWT.loadWithOptions(url, newOptions);

-			GridLayoutFactory.fillDefaults().generateLayout(parent);

-			parent.layout(true, true);

-		} catch (Exception e) {

-			LoggerManager.log(e);

-		} finally {

-			Thread.currentThread().setContextClassLoader(classLoader);

-			parent.setVisible(true);

-		}

-	}

-	

-	public Shell getShell() {

-		return parent.getShell();

-	}

-}

diff --git a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTDynamicPart.java b/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTDynamicPart.java
deleted file mode 100644
index dc5887c..0000000
--- a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTDynamicPart.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.ui.workbench.views;

-

-import java.util.HashMap;

-

-import javax.annotation.PostConstruct;

-

-import org.eclipse.jface.layout.GridLayoutFactory;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTLoader;

-import org.eclipse.xwt.ui.workbench.IPartContentProvider;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public abstract class XWTDynamicPart extends XWTAbstractPart {

-	protected IPartContentProvider contentProvider;

-

-	protected IPartContentProvider getContentProvider() {

-		if (contentProvider == null) {

-			contentProvider = createContentProvider();

-		}

-		return contentProvider;

-	}

-

-	protected abstract IPartContentProvider createContentProvider();

-

-	@PostConstruct

-	protected void init() {

-		refresh(getDataContext());

-	}

-

-	public void refresh(Object dataContext) {

-		if (isConstructing()) {

-			return;

-		}

-		Composite parent = getParent();

-		parent.setVisible(false);

-		for (Control child : parent.getChildren()) {

-			child.dispose();

-		}

-		ClassLoader classLoader = Thread.currentThread()

-				.getContextClassLoader();

-		try {

-			Thread.currentThread().setContextClassLoader(

-					getContentProvider().getClassLoader());

-			HashMap<String, Object> newOptions = new HashMap<String, Object>();

-			newOptions.put(XWTLoader.CONTAINER_PROPERTY, parent);

-			newOptions.put(XWTLoader.DATACONTEXT_PROPERTY, dataContext);

-			newOptions.put(XWTLoader.CLASS_PROPERTY, this);

-			XWT.loadWithOptions(getContentProvider().getContent(),

-					getContentProvider().getBase(), newOptions);

-			GridLayoutFactory.fillDefaults().generateLayout(parent);

-			parent.layout(true, true);

-		} catch (Exception e) {

-			e.printStackTrace();

-		} finally {

-			Thread.currentThread().setContextClassLoader(classLoader);

-			parent.setVisible(true);

-		}

-	}

-}

diff --git a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTInputPart.java b/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTInputPart.java
deleted file mode 100644
index 62a38d6..0000000
--- a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTInputPart.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.ui.workbench.views;

-

-/**

- * The default class to handle the connection with e4 workbench.

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class XWTInputPart extends XWTStaticPart {

-	protected Object input;

-	protected Class<?> inputType;

-

-	public XWTInputPart() {

-	}

-

-	public Class<?> getInputType() {

-		return inputType;

-	}

-

-	public void setInput(Object input) {

-		if (this.input == input) {

-			return;

-		}

-		Class<?> inputType = getInputType();

-		if (inputType == null || inputType.isInstance(input)) {

-			refresh(getURL(), input, getClassLoader());

-		}

-		this.input = input;

-	}

-}

diff --git a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTPartSwitcher.java b/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTPartSwitcher.java
deleted file mode 100644
index 0b6bd67..0000000
--- a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTPartSwitcher.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.ui.workbench.views;

-

-import org.eclipse.xwt.ui.workbench.IStaticPart;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public abstract class XWTPartSwitcher extends XWTStaticPart {

-

-	protected void refresh() {

-		IStaticPart switcher = getCurrentPart();

-		switchPart(switcher);

-	}

-

-	protected abstract IStaticPart getCurrentPart();

-

-	public void switchPart(IStaticPart part) {

-		refresh(part.getURL(), part.getDataContext(), part.getClassLoader());

-	}

-}

diff --git a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTSelectionStaticPart.java b/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTSelectionStaticPart.java
deleted file mode 100644
index b9fb8b3..0000000
--- a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTSelectionStaticPart.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.ui.workbench.views;

-

-import javax.inject.Inject;

-import javax.inject.Named;

-

-import org.eclipse.e4.core.di.annotations.Optional;

-import org.eclipse.e4.ui.services.IServiceConstants;

-

-/**

- * This part uses the Selection variable as data context

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class XWTSelectionStaticPart extends XWTStaticPart {

-

-	public XWTSelectionStaticPart() {

-	}

-

-	@Inject

-	public void setSelection(@Optional @Named(IServiceConstants.SELECTION) Object selection) {

-		dataContext = selection;

-		if (isConstructing()) {

-			return;

-		}

-		refresh();

-	}

-}

diff --git a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTStaticPart.java b/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTStaticPart.java
deleted file mode 100644
index e78a535..0000000
--- a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTStaticPart.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.ui.workbench.views;

-

-import java.net.URL;

-

-import javax.annotation.PostConstruct;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.ui.workbench.IStaticPart;

-

-/**

- * The default class to handle the connection with e4 workbench. As the value of

- * data context. by default, there are two possibilities: Selection and

- * DataContext

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class XWTStaticPart extends XWTAbstractPart implements IStaticPart {

-	

-	@PostConstruct

-	protected void postInit() {

-		refresh();

-	}

-

-	protected void refresh() {

-		if (isConstructing()) {

-			return;

-		}

-		refresh(getURL(), getDataContext(), getClassLoader());

-	}

-

-	public URL getURL() {

-		return this.getClass().getResource(

-				this.getClass().getSimpleName()

-						+ IConstants.XWT_EXTENSION_SUFFIX);

-	}

-	

-	

-	@Override

-	public void setDataContext(Object dataContext) {

-		super.setDataContext(dataContext);

-		try {

-			if (!isConstructing()) {

-				refresh();

-			}

-		} catch (Exception e) {

-		}

-	}

-}

diff --git a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/wizard/XWTWizardPage.java b/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/wizard/XWTWizardPage.java
deleted file mode 100644
index 8104e02..0000000
--- a/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/wizard/XWTWizardPage.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec and Valoueee - initial API and implementation

- *       http://www.eclipse.org/forums/index.php?t=msg&th=199619&start=0&S=eeee2217897168580b83685b5756bc21

- *******************************************************************************/

-package org.eclipse.xwt.ui.workbench.wizard;

-

-import java.io.InputStream;

-import java.net.URL;

-import java.util.HashMap;

-

-import org.eclipse.core.databinding.AggregateValidationStatus;

-import org.eclipse.core.databinding.observable.ChangeEvent;

-import org.eclipse.core.databinding.observable.IChangeListener;

-import org.eclipse.core.runtime.IStatus;

-import org.eclipse.jface.databinding.swt.ISWTObservable;

-import org.eclipse.jface.resource.ImageDescriptor;

-import org.eclipse.jface.wizard.WizardPage;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTLoader;

-import org.eclipse.xwt.databinding.BindingContext;

-import org.eclipse.xwt.internal.core.UIResource;

-

-public abstract class XWTWizardPage extends WizardPage {

-

-	private Object dataContext;

-	private BindingContext bindingContext;

-	private AggregateValidationStatus validationStatus;

-

-	private PageStateManager pageStateManager = new PageStateManager();

-

-	private UIResource uiResource;

-	

-	private boolean xwtCaching = true;

-

-	class PageStateManager implements IChangeListener {

-		public void handleChange(ChangeEvent event) {

-			Object source = event.getSource();

-			if (!(source instanceof ISWTObservable)) {

-				setPageComplete(false);

-			}

-		}

-	}

-

-	public boolean isXWTCaching() {

-		return xwtCaching;

-	}

-

-	public void setXWTCaching(boolean pmfCaching) {

-		this.xwtCaching = pmfCaching;

-	}

-

-	protected XWTWizardPage(String pageName, String title,

-			ImageDescriptor titleImage, Object dataContext) {

-		this(pageName, title, titleImage, dataContext, null);

-	}

-

-	protected XWTWizardPage(String pageName, String title,

-			ImageDescriptor titleImage, Object dataContext, UIResource uiResource) {

-		this(pageName, title, titleImage, dataContext, null, uiResource);

-	}

-

-	protected XWTWizardPage(String pageName, String title,

-			ImageDescriptor titleImage, Object dataContext,

-			BindingContext bindingContext, UIResource uiResource) {

-		super(pageName, title, null);

-		this.dataContext = dataContext;

-		this.bindingContext = bindingContext;

-		this.uiResource = uiResource;

-	}

-

-	public void createControl(Composite _parent) {

-		if (bindingContext == null) {

-			bindingContext = new BindingContext(_parent);

-		}

-		validationStatus = bindingContext.getStatus();

-		validationStatus.addChangeListener(new IChangeListener() {

-			public void handleChange(ChangeEvent event) {

-				IStatus status = (IStatus) validationStatus.getValue();

-				if (status.getSeverity() == IStatus.ERROR) {

-					setMessage(status.getMessage(),ERROR);

-					setPageComplete(false);

-				}

-		        else {

-    				setMessage(status.getMessage(),status.getSeverity());

-    				setPageComplete(true);

-		        }

-			}

-		});

-

-		ClassLoader classLoader = Thread.currentThread()

-				.getContextClassLoader();

-		try {

-			Thread.currentThread().setContextClassLoader(getClassLoader());

-			HashMap<String, Object> newOptions = new HashMap<String, Object>();

-			newOptions.put(XWTLoader.CONTAINER_PROPERTY, _parent);

-			Object dataContext = getDataContext();

-			if (dataContext != null) {

-				newOptions.put(XWTLoader.DATACONTEXT_PROPERTY, dataContext);

-			}

-			BindingContext bindingContext = getBindingContext();

-			if (bindingContext != null) {

-				newOptions.put(XWTLoader.BINDING_CONTEXT_PROPERTY,

-						bindingContext);

-			}

-			if (isXWTCaching()) {

-				newOptions.put(XWTLoader.XML_CACHE_PROPERTY, this);

-			}

-

-			InputStream inputStream = getContentInputStream();

-

-			Object element = null;

-			if (uiResource != null) {

-				element = XWT.loadWithOptions(uiResource, newOptions);

-			} else {

-				element = (inputStream == null ? XWT.loadWithOptions(

-						getContentURL(), newOptions) : XWT.loadWithOptions(

-						inputStream, getContentURL(), newOptions));

-			}

-			if (element instanceof Control) {

-				Control control = (Control) element;

-				setControl(control);

-				XWT.addObservableChangeListener(control, pageStateManager);

-			}

-		} catch (Exception e) {

-			e.printStackTrace();

-		} finally {

-			Thread.currentThread().setContextClassLoader(classLoader);

-			_parent.setVisible(true);

-		}

-	}

-

-	@Override

-	public void dispose() {

-		Control control = getControl();

-		if (control != null) {

-			XWT.removeObservableChangeListener(control, pageStateManager);

-		}

-		super.dispose();

-	}

-

-	abstract protected URL getContentURL();

-

-	protected InputStream getContentInputStream() {

-		return null;

-	}

-

-	public UIResource getUIResource() {

-		return uiResource;

-	}

-

-	public void setUIResource(UIResource uiResource) {

-		this.uiResource = uiResource;

-	}

-

-	protected ClassLoader getClassLoader() {

-		return Thread.currentThread().getContextClassLoader();

-	}

-

-	public Object getDataContext() {

-		return dataContext;

-	}

-

-	public BindingContext getBindingContext() {

-		return bindingContext;

-	}

-

-	public void setBindingContext(BindingContext bindingContext) {

-		this.bindingContext = bindingContext;

-	}

-}

diff --git a/org.eclipse.xwt.workbench.feature/.project b/org.eclipse.xwt.workbench.feature/.project
deleted file mode 100644
index 7eaa846..0000000
--- a/org.eclipse.xwt.workbench.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.xwt.workbench.feature</name>

-	<comment></comment>

-	<projects>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.pde.FeatureBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.pde.FeatureNature</nature>

-	</natures>

-</projectDescription>

diff --git a/org.eclipse.xwt.workbench.feature/about.html b/org.eclipse.xwt.workbench.feature/about.html
deleted file mode 100644
index c258ef5..0000000
--- a/org.eclipse.xwt.workbench.feature/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!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 5, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.workbench.feature/build.properties b/org.eclipse.xwt.workbench.feature/build.properties
deleted file mode 100644
index df8c3e0..0000000
--- a/org.eclipse.xwt.workbench.feature/build.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,\
-               feature.properties,\
-               about.html,\
-               epl-v10.html,\
-               license.html
-src.includes = .project,\
-               about.html,\
-               build.properties,\
-               feature.properties,\
-               feature.xml,\
-               epl-v10.html,\
-               license.html
diff --git a/org.eclipse.xwt.workbench.feature/epl-v10.html b/org.eclipse.xwt.workbench.feature/epl-v10.html
deleted file mode 100755
index ed4b196..0000000
--- a/org.eclipse.xwt.workbench.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>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.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>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. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>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. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>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.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>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.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>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.</span> </p>
-
-<p><span style='font-size:10.0pt'>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. </span></p>
-
-<p><span style='font-size:10.0pt'>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. </span></p>
-
-<p><span style='font-size:10.0pt'>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.</span> </p>
-
-<p><span style='font-size:10.0pt'>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.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.workbench.feature/feature.properties b/org.eclipse.xwt.workbench.feature/feature.properties
deleted file mode 100644
index 5f92acb..0000000
--- a/org.eclipse.xwt.workbench.feature/feature.properties
+++ /dev/null
@@ -1,43 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2009 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - 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=Eclipse XWT Workbench Integration
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse XWT
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Project Updates
-
-# "secondarySiteName" property - label for the update site
-secondaryUpdateSiteName=Luna Discovery Site
-
-
-# "description" property - description of the feature
-description=Eclipse XWT Workbench Integration
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2009 Soyatec Corporation and others.\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\
-    Soyatec Corporation - initial API and implementation\n
-################ end of copyright property ####################################
diff --git a/org.eclipse.xwt.workbench.feature/feature.xml b/org.eclipse.xwt.workbench.feature/feature.xml
deleted file mode 100644
index 6dae46c..0000000
--- a/org.eclipse.xwt.workbench.feature/feature.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Copyright (c) 2010 IBM Corporation and others.
-    All rights reserved. This program and the accompanying materials
-    are made available under the terms of the Eclipse Public License v1.0
-    which accompanies this distribution, and is available at
-    http://www.eclipse.org/legal/epl-v10.html
-   
-    Contributors:
-        IBM Corporation - initial API and implementation
- -->
-<feature
-      id="org.eclipse.xwt.workbench.feature"
-      label="%featureName"
-      version="1.4.0.qualifier"
-      provider-name="%providerName"
-      license-feature="org.eclipse.license"
-      license-feature-version="2.0.2">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <url>
-      <update label="XWT Workbench Integration Update Site" url="http://www.eclipse.org/downloads/download.php?format=xml&amp;file=/xwt/updates"/>
-   </url>
-
-   <requires>
-      <import feature="org.eclipse.xwt.feature" version="1.0.0.qualifier"/>
-   </requires>
-
-   <plugin
-         id="org.eclipse.xwt.ui.workbench"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/org.eclipse.xwt.workbench.feature/license.html b/org.eclipse.xwt.workbench.feature/license.html
deleted file mode 100755
index c6af966..0000000
--- a/org.eclipse.xwt.workbench.feature/license.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>March 17, 2005</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-   
-<ul>
-	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>   
- 
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-	<li>Plug-in and Fragment directories</li>
-	<li>Inside Plug-ins and Fragments packaged as JARs</li>
-	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-	<li>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>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</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>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>
-   
-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   
-</body>
-</html>
diff --git a/org.eclipse.xwt.workbench.feature/notice.html b/org.eclipse.xwt.workbench.feature/notice.html
deleted file mode 100644
index c3d34c3..0000000
--- a/org.eclipse.xwt.workbench.feature/notice.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 9, 2014</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/org.eclipse.xwt.workbench.feature/pom.xml b/org.eclipse.xwt.workbench.feature/pom.xml
deleted file mode 100755
index 8ce90a5..0000000
--- a/org.eclipse.xwt.workbench.feature/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt.workbench.feature</artifactId>
-	<version>1.4.0-SNAPSHOT</version>
-	<packaging>eclipse-feature</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.workbench.feature/sourceTemplateFeature/epl-v10.html b/org.eclipse.xwt.workbench.feature/sourceTemplateFeature/epl-v10.html
deleted file mode 100644
index 90f2d5e..0000000
--- a/org.eclipse.xwt.workbench.feature/sourceTemplateFeature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"

-xmlns:w="urn:schemas-microsoft-com:office:word"

-xmlns="http://www.w3.org/TR/REC-html40">

-

-<head>

-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">

-<meta name=ProgId content=Word.Document>

-<meta name=Generator content="Microsoft Word 9">

-<meta name=Originator content="Microsoft Word 9">

-<link rel=File-List

-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">

-<title>Eclipse Public License - Version 1.0</title>

-<!--[if gte mso 9]><xml>

- <o:DocumentProperties>

-  <o:Revision>2</o:Revision>

-  <o:TotalTime>3</o:TotalTime>

-  <o:Created>2004-03-05T23:03:00Z</o:Created>

-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>

-  <o:Pages>4</o:Pages>

-  <o:Words>1626</o:Words>

-  <o:Characters>9270</o:Characters>

-   <o:Lines>77</o:Lines>

-  <o:Paragraphs>18</o:Paragraphs>

-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>

-  <o:Version>9.4402</o:Version>

- </o:DocumentProperties>

-</xml><![endif]--><!--[if gte mso 9]><xml>

- <w:WordDocument>

-  <w:TrackRevisions/>

- </w:WordDocument>

-</xml><![endif]-->

-<style>

-<!--

- /* Font Definitions */

-@font-face

-	{font-family:Tahoma;

-	panose-1:2 11 6 4 3 5 4 4 2 4;

-	mso-font-charset:0;

-	mso-generic-font-family:swiss;

-	mso-font-pitch:variable;

-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}

- /* Style Definitions */

-p.MsoNormal, li.MsoNormal, div.MsoNormal

-	{mso-style-parent:"";

-	margin:0in;

-	margin-bottom:.0001pt;

-	mso-pagination:widow-orphan;

-	font-size:12.0pt;

-	font-family:"Times New Roman";

-	mso-fareast-font-family:"Times New Roman";}

-p

-	{margin-right:0in;

-	mso-margin-top-alt:auto;

-	mso-margin-bottom-alt:auto;

-	margin-left:0in;

-	mso-pagination:widow-orphan;

-	font-size:12.0pt;

-	font-family:"Times New Roman";

-	mso-fareast-font-family:"Times New Roman";}

-p.BalloonText, li.BalloonText, div.BalloonText

-	{mso-style-name:"Balloon Text";

-	margin:0in;

-	margin-bottom:.0001pt;

-	mso-pagination:widow-orphan;

-	font-size:8.0pt;

-	font-family:Tahoma;

-	mso-fareast-font-family:"Times New Roman";}

-@page Section1

-	{size:8.5in 11.0in;

-	margin:1.0in 1.25in 1.0in 1.25in;

-	mso-header-margin:.5in;

-	mso-footer-margin:.5in;

-	mso-paper-source:0;}

-div.Section1

-	{page:Section1;}

--->

-</style>

-</head>

-

-<body lang=EN-US style='tab-interval:.5in'>

-

-<div class=Section1>

-

-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>

-</p>

-

-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER

-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,

-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE

-OF THIS AGREEMENT.</span> </p>

-

-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>

-

-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)

-in the case of the initial Contributor, the initial code and documentation

-distributed under this Agreement, and<br clear=left>

-b) in the case of each subsequent Contributor:</span></p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)

-changes to the Program, and</span></p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)

-additions to the Program;</span></p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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. </span></p>

-

-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or

-entity that distributes the Program.</span> </p>

-

-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent

-claims licensable by a Contributor which are necessarily infringed by the use

-or sale of its Contribution alone or when combined with the Program. </span></p>

-

-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions

-distributed in accordance with this Agreement.</span> </p>

-

-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who

-receives the Program under this Agreement, including all Contributors.</span> </p>

-

-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)

-Subject to the terms of this Agreement, each Contributor hereby grants Recipient

-a non-exclusive, worldwide, royalty-free copyright license to<span

-style='color:red'> </span>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.</span></p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)

-Subject to the terms of this Agreement, each Contributor hereby grants

-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>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. </span></p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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.</span></p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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. </span></p>

-

-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>

-

-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the

-Program in object code form under its own license agreement, provided that:</span>

-</p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)

-it complies with the terms and conditions of this Agreement; and</span></p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)

-its license agreement:</span></p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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; </span></p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)

-effectively excludes on behalf of all Contributors all liability for damages,

-including direct, indirect, special, incidental and consequential damages, such

-as lost profits; </span></p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)

-states that any provisions which differ from this Agreement are offered by that

-Contributor alone and not by any other party; and</span></p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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.<span style='color:blue'> </span></span></p>

-

-<p><span style='font-size:10.0pt'>When the Program is made available in source

-code form:</span> </p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)

-it must be made available under this Agreement; and </span></p>

-

-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a

-copy of this Agreement must be included with each copy of the Program. </span></p>

-

-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any

-copyright notices contained within the Program. </span></p>

-

-<p><span style='font-size:10.0pt'>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. </span></p>

-

-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>

-

-<p><span style='font-size:10.0pt'>Commercial distributors of software may

-accept certain responsibilities with respect to end users, business partners

-and the like. While this license is intended to facilitate the commercial use

-of the Program, the Contributor who includes the Program in a commercial

-product offering should do so in a manner which does not create potential

-liability for other Contributors. Therefore, if a Contributor includes the

-Program in a commercial product offering, such Contributor (&quot;Commercial

-Contributor&quot;) hereby agrees to defend and indemnify every other

-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and

-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other

-legal actions brought by a third party against the Indemnified Contributor to

-the extent caused by the acts or omissions of such Commercial Contributor in

-connection with its distribution of the Program in a commercial product

-offering. The obligations in this section do not apply to any claims or Losses

-relating to any actual or alleged intellectual property infringement. In order

-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial

-Contributor in writing of such claim, and b) allow the Commercial Contributor

-to control, and cooperate with the Commercial Contributor in, the defense and

-any related settlement negotiations. The Indemnified Contributor may participate

-in any such claim at its own expense.</span> </p>

-

-<p><span style='font-size:10.0pt'>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.</span> </p>

-

-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>

-

-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS

-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT

-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,

-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,

-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely

-responsible for determining the appropriateness of using and distributing the

-Program and assumes all risks associated with its exercise of rights under this

-Agreement , including but not limited to the risks and costs of program errors,

-compliance with applicable laws, damage to or loss of data, programs or

-equipment, and unavailability or interruption of operations. </span></p>

-

-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>

-

-<p><span style='font-size:10.0pt'>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.</span> </p>

-

-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>

-

-<p><span style='font-size:10.0pt'>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.</span> </p>

-

-<p><span style='font-size:10.0pt'>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. </span></p>

-

-<p><span style='font-size:10.0pt'>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. </span></p>

-

-<p><span style='font-size:10.0pt'>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.</span> </p>

-

-<p><span style='font-size:10.0pt'>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.</span> </p>

-

-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>

-

-</div>

-

-</body>

-

-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.workbench.feature/sourceTemplateFeature/feature.properties b/org.eclipse.xwt.workbench.feature/sourceTemplateFeature/feature.properties
deleted file mode 100644
index 00d08b1..0000000
--- a/org.eclipse.xwt.workbench.feature/sourceTemplateFeature/feature.properties
+++ /dev/null
@@ -1,144 +0,0 @@
-###############################################################################

-# Copyright (c) 2000, 2009 IBM Corporation and others.

-# All rights reserved. This program and the accompanying materials

-# are made available under the terms of the Eclipse Public License v1.0

-# which accompanies this distribution, and is available at

-# http://www.eclipse.org/legal/epl-v10.html

-# 

-# Contributors:

-#     IBM Corporation - 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=Eclipse XWT CSS Workbench

-

-# "providerName" property - name of the company that provides the feature

-providerName=Eclipse XWT

-

-# "updateSiteName" property - label for the update site

-updateSiteName=The Eclipse Project Updates

-

-# "description" property - description of the feature

-description=Source code zips for Eclipse e4 XWT Workbench Source .

-

-# "copyright" property - text of the "Feature Update Copyright"

-copyright=\

-Copyright (c) 2000, 2009 IBM Corporation and others.\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\

-    IBM Corporation - initial API and implementation\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\

-March 17, 2005\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 Eclipse Foundation\n\

-is provided to you under the terms and conditions of the Eclipse Public\n\

-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\

-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.org CVS\n\

-repository ("Repository") in CVS 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? 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\

-Features may also include other Features ("Included Features"). Files named\n\

-"feature.xml" may contain a list of the names and version numbers of\n\

-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\

-Eclipse Update Manager, you must agree to a license ("Feature Update\n\

-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". Such Abouts,\n\

-Feature Licenses and Feature Update Licenses contain the terms and\n\

-conditions (or references to such terms and conditions) that govern your\n\

-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\

-    - 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\

-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\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\

-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,\n\

-and re-export of encryption software, to see if this is permitted.\n\

-\n\

-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n

-########### end of license property ##########################################

diff --git a/org.eclipse.xwt.workbench.feature/sourceTemplateFeature/license.html b/org.eclipse.xwt.workbench.feature/sourceTemplateFeature/license.html
deleted file mode 100644
index 15a10cf..0000000
--- a/org.eclipse.xwt.workbench.feature/sourceTemplateFeature/license.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">

-<html>

-<head>

-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">

-<title>Eclipse.org Software User Agreement</title>

-</head>

-

-<body lang="EN-US" link=blue vlink=purple>

-<h2>Eclipse Foundation Software User Agreement</h2>

-<p>March 17, 2005</p>

-

-<h3>Usage Of Content</h3>

-

-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS

-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND

-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE

-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR

-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND

-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>

-   

-<h3>Applicable Licenses</h3>   

-   

-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0

-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.

-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>

-

-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS

-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>

-   

-<ul>

-	<li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>

-	<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>

-	<li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins

-      and/or Fragments associated with that Feature.</li>

-	<li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>

-</ul>   

- 

-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and

-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module

-including, but not limited to the following locations:</p>

-

-<ul>

-	<li>The top-level (root) directory</li>

-	<li>Plug-in and Fragment directories</li>

-	<li>Inside Plug-ins and Fragments packaged as JARs</li>

-	<li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>

-	<li>Feature directories</li>

-</ul>

-		

-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the

-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or

-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.

-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in

-that directory.</p>

-

-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE

-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>

-

-<ul>

-	<li>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>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</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>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>

-   

-<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>   

-</body>

-</html>

diff --git a/org.eclipse.xwt.workbench.feature/sourceTemplatePlugin/build.properties b/org.eclipse.xwt.workbench.feature/sourceTemplatePlugin/build.properties
deleted file mode 100644
index 75c0a8f..0000000
--- a/org.eclipse.xwt.workbench.feature/sourceTemplatePlugin/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################

-# Copyright (c) 2000, 2009 IBM Corporation and others.

-# All rights reserved. This program and the accompanying materials

-# are made available under the terms of the Eclipse Public License v1.0

-# which accompanies this distribution, and is available at

-# http://www.eclipse.org/legal/epl-v10.html

-#

-# Contributors:

-#     IBM Corporation - initial API and implementation

-###############################################################################

-bin.includes = plugin.xml, src/**, META-INF/

-sourcePlugin = true

diff --git a/org.eclipse.xwt.xml/.classpath b/org.eclipse.xwt.xml/.classpath
deleted file mode 100644
index 2d1a430..0000000
--- a/org.eclipse.xwt.xml/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>

-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

-	<classpathentry kind="src" path="src"/>

-	<classpathentry kind="output" path="bin"/>

-</classpath>

diff --git a/org.eclipse.xwt.xml/.project b/org.eclipse.xwt.xml/.project
deleted file mode 100644
index 52ca541..0000000
--- a/org.eclipse.xwt.xml/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.xwt.xml</name>

-	<comment></comment>

-	<projects>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.jdt.core.javabuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.ManifestBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.SchemaBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.pde.PluginNature</nature>

-		<nature>org.eclipse.jdt.core.javanature</nature>

-	</natures>

-</projectDescription>

diff --git a/org.eclipse.xwt.xml/META-INF/MANIFEST.MF b/org.eclipse.xwt.xml/META-INF/MANIFEST.MF
deleted file mode 100644
index 267f966..0000000
--- a/org.eclipse.xwt.xml/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,14 +0,0 @@
-Manifest-Version: 1.0

-Bundle-ManifestVersion: 2

-Bundle-Name: %Bundle-Name.0

-Bundle-SymbolicName: org.eclipse.xwt.xml

-Bundle-Version: 1.4.0.qualifier

-Bundle-Activator: org.eclipse.xwt.xml.Activator

-Require-Bundle: org.eclipse.core.runtime;bundle-version="3.8.0",

- org.eclipse.xwt;bundle-version="0.9.0",

- org.eclipse.core.databinding;bundle-version="1.1.0",

- org.eclipse.core.databinding.property;bundle-version="1.1.0"

-Bundle-ActivationPolicy: lazy

-Bundle-RequiredExecutionEnvironment: J2SE-1.5

-Export-Package: org.eclipse.xwt.xml

-Bundle-Vendor: %Bundle-Vendor.0

diff --git a/org.eclipse.xwt.xml/OSGI-INF/l10n/bundle.properties b/org.eclipse.xwt.xml/OSGI-INF/l10n/bundle.properties
deleted file mode 100644
index 6c4feb1..0000000
--- a/org.eclipse.xwt.xml/OSGI-INF/l10n/bundle.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################

-# Copyright (c) 2010 IBM Corporation and others.

-# All rights reserved. This program and the accompanying materials

-# are made available under the terms of the Eclipse Public License v1.0

-# which accompanies this distribution, and is available at

-# http://www.eclipse.org/legal/epl-v10.html

-#

-# Contributors:

-#     IBM Corporation - initial API and implementation

-###############################################################################

-"******************************************************************************

-# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

-# All rights reserved. This program and the accompanying materials

-# are made available under the terms of the Eclipse Public License v1.0

-# which accompanies this distribution, and is available at

-# http://www.eclipse.org/legal/epl-v10.html

-# 

-# Contributors:

-#     Soyatec - initial API and implementation

-#******************************************************************************/

-Bundle-Vendor.0 = Eclipse XWT

-Bundle-Name.0 = XWT XML Plug-in
\ No newline at end of file
diff --git a/org.eclipse.xwt.xml/about.html b/org.eclipse.xwt.xml/about.html
deleted file mode 100644
index c258ef5..0000000
--- a/org.eclipse.xwt.xml/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!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 5, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.xml/build.properties b/org.eclipse.xwt.xml/build.properties
deleted file mode 100644
index 835b579..0000000
--- a/org.eclipse.xwt.xml/build.properties
+++ /dev/null
@@ -1,25 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               OSGI-INF/l10n/bundle.properties,\
-               about.html,\
-               notice.html
-src.includes = .classpath,\
-               .project,\
-               META-INF/,\
-               OSGI-INF/,\
-               about.html,\
-               build.properties,\
-               src/,\
-               notice.html
diff --git a/org.eclipse.xwt.xml/notice.html b/org.eclipse.xwt.xml/notice.html
deleted file mode 100644
index c3d34c3..0000000
--- a/org.eclipse.xwt.xml/notice.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 9, 2014</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/org.eclipse.xwt.xml/pom.xml b/org.eclipse.xwt.xml/pom.xml
deleted file mode 100755
index 72ef292..0000000
--- a/org.eclipse.xwt.xml/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt.xml</artifactId>
-	<version>1.4.0-SNAPSHOT</version>
-	<packaging>eclipse-plugin</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.xml/src/org/eclipse/xwt/xml/Activator.java b/org.eclipse.xwt.xml/src/org/eclipse/xwt/xml/Activator.java
deleted file mode 100644
index b00a121..0000000
--- a/org.eclipse.xwt.xml/src/org/eclipse/xwt/xml/Activator.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *     Erdal Karaca - removed dependency on org.eclipse.ui

- *******************************************************************************/

-package org.eclipse.xwt.xml;

-

-import org.eclipse.xwt.XWT;

-import org.osgi.framework.BundleActivator;

-import org.osgi.framework.BundleContext;

-

-/**

- * The activator class controls the plug-in life cycle

- */

-public class Activator implements BundleActivator {

-

-	// The plug-in ID

-	public static final String PLUGIN_ID = "org.eclipse.xwt.xml";

-

-	// The shared instance

-	private static Activator plugin;

-

-	/**

-	 * The constructor

-	 */

-	public Activator() {

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext

-	 * )

-	 */

-	public void start(BundleContext context) throws Exception {

-		plugin = this;

-

-		XWT.registerMetaclass(XmlDataProvider.class);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext

-	 * )

-	 */

-	public void stop(BundleContext context) throws Exception {

-		plugin = null;

-	}

-

-	/**

-	 * Returns the shared instance

-	 * 

-	 * @return the shared instance

-	 */

-	public static Activator getDefault() {

-		return plugin;

-	}

-

-}

diff --git a/org.eclipse.xwt.xml/src/org/eclipse/xwt/xml/IXmlDataProvider.java b/org.eclipse.xwt.xml/src/org/eclipse/xwt/xml/IXmlDataProvider.java
deleted file mode 100644
index ea6eac8..0000000
--- a/org.eclipse.xwt.xml/src/org/eclipse/xwt/xml/IXmlDataProvider.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.xml;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IDataProvider;

-

-/**

- * @author jliu (jin.liu@soyatec.com)

- */

-public interface IXmlDataProvider extends IDataProvider {

-

-	void setSource(URL xmlSource);

-

-	URL getSource();

-

-	void setPath(String path);

-

-	String getPath();

-}

diff --git a/org.eclipse.xwt.xml/src/org/eclipse/xwt/xml/XmlDataProvider.java b/org.eclipse.xwt.xml/src/org/eclipse/xwt/xml/XmlDataProvider.java
deleted file mode 100644
index a39a7c2..0000000
--- a/org.eclipse.xwt.xml/src/org/eclipse/xwt/xml/XmlDataProvider.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.xml;

-

-import java.io.ByteArrayInputStream;

-import java.net.URL;

-

-import javax.xml.parsers.DocumentBuilder;

-import javax.xml.parsers.DocumentBuilderFactory;

-import javax.xml.xpath.XPath;

-import javax.xml.xpath.XPathConstants;

-import javax.xml.xpath.XPathExpression;

-import javax.xml.xpath.XPathExpressionException;

-import javax.xml.xpath.XPathFactory;

-

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.core.databinding.property.value.IValueProperty;

-import org.eclipse.xwt.dataproviders.AbstractDataProvider;

-import org.eclipse.xwt.internal.core.UpdateSourceTrigger;

-import org.w3c.dom.Document;

-import org.w3c.dom.Node;

-

-/**

- * @author jliu (jin.liu@soyatec.com)

- */

-public class XmlDataProvider extends AbstractDataProvider implements

-		IXmlDataProvider {

-	static DataModelService dataModelService = new DataModelService() {

-		public Object toModelType(Object data) {

-			throw new UnsupportedOperationException();

-		}

-

-		public Object loadModelType(String className) {

-			throw new UnsupportedOperationException();

-		}

-

-		public Object toModelPropertyType(Object object, String propertyName) {

-			throw new UnsupportedOperationException();

-		}

-	};

-

-	static final String XDATA = "XData";

-

-	private URL source;

-

-	private String path;

-

-	private Document document;

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.dataproviders.IXmlDataProvider#getDocument()

-	 */

-	public Document getDocument() {

-		if (document == null) {

-			try {

-				DocumentBuilderFactory domFactory = DocumentBuilderFactory

-						.newInstance();

-				domFactory.setNamespaceAware(true); // never forget this!

-				DocumentBuilder builder = domFactory.newDocumentBuilder();

-				if (source != null) {

-					document = builder.parse(source.openStream());

-				}

-				String xdata = getXDataContent();

-				if (xdata != null) {

-					try {

-						document = builder.parse(new ByteArrayInputStream(xdata

-								.getBytes()));

-					} catch (Exception e) {

-					}

-				}

-			} catch (Exception e) {

-				e.printStackTrace();

-			}

-		}

-		return document;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.dataproviders.IXmlDataProvider#getSource()

-	 */

-	public URL getSource() {

-		return source;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.dataproviders.IXmlDataProvider#getXPath()

-	 */

-	public String getPath() {

-		return path;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @seeorg.eclipse.xwt.dataproviders.IXmlDataProvider#setSource(java.io.

-	 * InputStream)

-	 */

-	public void setSource(URL xmlSource) {

-		this.source = xmlSource;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.dataproviders.IXmlDataProvider#setXPath(java.lang.

-	 * String)

-	 */

-	public void setPath(String path) {

-		this.path = path;

-	}

-

-	private Object getRoot() {

-		Document doc = getDocument();

-		if (doc == null) {

-			return null;

-		}

-		if (path != null) {

-			return selectSingleNode(doc, path);

-		}

-		return doc;

-	}

-

-	/**

-	 * @param node

-	 * @param path

-	 * @return

-	 */

-	private Object selectSingleNode(Node node, String path) {

-		try {

-			XPathFactory factory = XPathFactory.newInstance();

-			XPath xpath = factory.newXPath();

-			XPathExpression expr = xpath.compile(path);

-			return expr.evaluate(node, XPathConstants.NODE);

-		} catch (XPathExpressionException e) {

-			e.printStackTrace();

-		}

-		return null;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.dataproviders.IDataProvider#getData()

-	 */

-	public Object getData(Object object, String path) {

-		if (object == null || path == null) {

-			return null;

-		}

-		if (object instanceof Node) {

-			Object selectObject = selectSingleNode((Node) object, path);

-			return selectObject;

-		}

-		return object;

-	}

-

-	public Object getData(String path) {

-		return getData(getRoot(), path);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.dataproviders.IDataProvider#getData()

-	 */

-	public void setData(Object object, String path, Object value) {

-		// TODO

-	}

-

-	public void setData(String path, Object value) {

-		// TODO

-	}

-

-	public Class<?> getDataType(String path) {

-		Object data = getData(path);

-		if (data == null) {

-			return null;

-		}

-		return data.getClass();

-	}

-

-	public IValueProperty observeValueProperty(Object valueType, String path,

-			UpdateSourceTrigger updateSourceTrigger) {

-		return null; // TODOD

-	}

-

-	@Override

-	protected IObservableValue observeValue(Object bean, String propertyName) {

-		Object data = getData(propertyName);

-		if (data != null && data instanceof Node) {

-			Class<?> valueType = data.getClass();

-			return new XmlObservableValue(valueType, (Node) data, path);

-		}

-		return null;

-	}

-

-	@Override

-	protected IObservableValue observeDetailValue(IObservableValue bean,

-			Object ownerType, String propertyName, Object propertyType) {

-		return null;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.dataproviders.IXmlDataProvider#getXDataContent()

-	 */

-	protected String getXDataContent() {

-		Object xDataProperty = getProperty(XDATA);

-		if (xDataProperty != null) {

-			return xDataProperty.toString();

-		}

-		return null;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.dataproviders.IXmlDataProvider#setXDataContent(java

-	 * .lang.String)

-	 */

-	protected void setXDataContent(Object content) {

-		setProperty(XDATA, content);

-	}

-

-	public DataModelService getModelService() {

-		return dataModelService;

-	}

-}

diff --git a/org.eclipse.xwt.xml/src/org/eclipse/xwt/xml/XmlObservableValue.java b/org.eclipse.xwt.xml/src/org/eclipse/xwt/xml/XmlObservableValue.java
deleted file mode 100644
index ada8d23..0000000
--- a/org.eclipse.xwt.xml/src/org/eclipse/xwt/xml/XmlObservableValue.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.xml;

-

-import org.eclipse.xwt.databinding.XWTObservableValue;

-import org.w3c.dom.Node;

-

-/**

- * @author jliu (jin.liu@soyatec.com)

- */

-public class XmlObservableValue extends XWTObservableValue {

-

-	public XmlObservableValue(Class<?> valueType, Node node, String path) {

-		super(valueType, node, path);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.dataproviders.xml.XWTObservableValue#doSetApprovedValue

-	 * (java.lang.Object)

-	 */

-	protected void doSetApprovedValue(Object value) {

-		String newValue = value == null ? "" : value.toString();

-		((Node) getObserved()).setNodeValue(newValue);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.dataproviders.xml.XWTObservableValue#doGetValue()

-	 */

-	protected Object doGetValue() {

-		return ((Node) getObserved()).getNodeValue();

-	}

-}

diff --git a/org.eclipse.xwt/.classpath b/org.eclipse.xwt/.classpath
deleted file mode 100644
index 2d1a430..0000000
--- a/org.eclipse.xwt/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<classpath>

-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>

-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

-	<classpathentry kind="src" path="src"/>

-	<classpathentry kind="output" path="bin"/>

-</classpath>

diff --git a/org.eclipse.xwt/.project b/org.eclipse.xwt/.project
deleted file mode 100644
index a1a89f4..0000000
--- a/org.eclipse.xwt/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<projectDescription>

-	<name>org.eclipse.xwt</name>

-	<comment></comment>

-	<projects>

-	</projects>

-	<buildSpec>

-		<buildCommand>

-			<name>org.eclipse.jdt.core.javabuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.ManifestBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-		<buildCommand>

-			<name>org.eclipse.pde.SchemaBuilder</name>

-			<arguments>

-			</arguments>

-		</buildCommand>

-	</buildSpec>

-	<natures>

-		<nature>org.eclipse.jdt.core.javanature</nature>

-		<nature>org.eclipse.pde.PluginNature</nature>

-	</natures>

-</projectDescription>

diff --git a/org.eclipse.xwt/META-INF/MANIFEST.MF b/org.eclipse.xwt/META-INF/MANIFEST.MF
deleted file mode 100644
index 6f016c5..0000000
--- a/org.eclipse.xwt/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,44 +0,0 @@
-Manifest-Version: 1.0

-Bundle-ManifestVersion: 2

-Bundle-Name: %Bundle-Name.0

-Bundle-SymbolicName: org.eclipse.xwt;singleton:=true

-Bundle-Version: 1.4.0.qualifier

-DynamicImport-Package: *

-Require-Bundle: 

- org.eclipse.jface.databinding;bundle-version="1.2.0",

- org.eclipse.core.databinding.beans;bundle-version="1.1.0",

- org.eclipse.swt;bundle-version="3.4.0",

- org.eclipse.core.databinding;bundle-version="1.1.0",

- org.eclipse.jface;bundle-version="3.4.0",

- org.eclipse.core.databinding.property;bundle-version="1.1.0",

- org.pushingpixels.trident;bundle-version="1.2.0";resolution:=optional,

- org.eclipse.equinox.common;bundle-version="3.4.0",

- com.ibm.icu;bundle-version="63.1.0",

- org.eclipse.osgi

-Export-Package: org.eclipse.xwt,

- org.eclipse.xwt.animation,

- org.eclipse.xwt.annotation,

- org.eclipse.xwt.callback,

- org.eclipse.xwt.collection,

- org.eclipse.xwt.converters,

- org.eclipse.xwt.core,

- org.eclipse.xwt.databinding,

- org.eclipse.xwt.dataproviders,

- org.eclipse.xwt.graphics,

- org.eclipse.xwt.input,

- org.eclipse.xwt.internal.core,

- org.eclipse.xwt.internal.databinding.menuitem,

- org.eclipse.xwt.internal.utils,

- org.eclipse.xwt.internal.xml,

- org.eclipse.xwt.javabean,

- org.eclipse.xwt.javabean.metadata,

- org.eclipse.xwt.javabean.metadata.properties,

- org.eclipse.xwt.jface,

- org.eclipse.xwt.metadata,

- org.eclipse.xwt.utils,

- org.eclipse.xwt.validation

-Bundle-Vendor: %Bundle-Vendor.0

-Bundle-Localization: plugin

-Bundle-ActivationPolicy: lazy

-Bundle-RequiredExecutionEnvironment: J2SE-1.5

-Bundle-Activator: org.eclipse.xwt.internal.Activator

diff --git a/org.eclipse.xwt/about.html b/org.eclipse.xwt/about.html
deleted file mode 100644
index c258ef5..0000000
--- a/org.eclipse.xwt/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!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 5, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt/build.properties b/org.eclipse.xwt/build.properties
deleted file mode 100644
index c829a28..0000000
--- a/org.eclipse.xwt/build.properties
+++ /dev/null
@@ -1,27 +0,0 @@
-###############################################################################
-# Copyright (c) 2010 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-bin.includes = META-INF/,\
-               .,\
-               plugin.properties,\
-               plugin.xml,\
-               about.html,\
-               notice.html
-src.includes = .classpath,\
-               .gitignore,\
-               .project,\
-               META-INF/,\
-               about.html,\
-               build.properties,\
-               plugin.properties,\
-               plugin.xml,\
-               src/,\
-               notice.html
diff --git a/org.eclipse.xwt/notice.html b/org.eclipse.xwt/notice.html
deleted file mode 100644
index c3d34c3..0000000
--- a/org.eclipse.xwt/notice.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>April 9, 2014</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/org.eclipse.xwt/plugin.properties b/org.eclipse.xwt/plugin.properties
deleted file mode 100644
index 3fa8565..0000000
--- a/org.eclipse.xwt/plugin.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################

-# Copyright (c) 2010 IBM Corporation and others.

-# All rights reserved. This program and the accompanying materials

-# are made available under the terms of the Eclipse Public License v1.0

-# which accompanies this distribution, and is available at

-# http://www.eclipse.org/legal/epl-v10.html

-#

-# Contributors:

-#     IBM Corporation - initial API and implementation

-###############################################################################

-#******************************************************************************

-# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

-# All rights reserved. This program and the accompanying materials

-# are made available under the terms of the Eclipse Public License v1.0

-# which accompanies this distribution, and is available at

-# http://www.eclipse.org/legal/epl-v10.html

-# 

-# Contributors:

-#     Soyatec - initial API and implementation

-#******************************************************************************/

-Bundle-Vendor.0 = Eclipse XWT

-Bundle-Name.0 = XWT
\ No newline at end of file
diff --git a/org.eclipse.xwt/plugin.xml b/org.eclipse.xwt/plugin.xml
deleted file mode 100644
index f30fe45..0000000
--- a/org.eclipse.xwt/plugin.xml
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.xwt/pom.xml b/org.eclipse.xwt/pom.xml
deleted file mode 100755
index 05208ab..0000000
--- a/org.eclipse.xwt/pom.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.xwt</groupId>
-		<artifactId>org.eclipse.xwt-root</artifactId>
-		<version>1.4.0-SNAPSHOT</version>
-	</parent>
-	
-	<artifactId>org.eclipse.xwt</artifactId>
-	<version>1.4.0-SNAPSHOT</version>
-	<packaging>eclipse-plugin</packaging>
-</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/DefaultLoadingContext.java b/org.eclipse.xwt/src/org/eclipse/xwt/DefaultLoadingContext.java
deleted file mode 100644
index 1dda572..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/DefaultLoadingContext.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt;

-

-import java.net.URL;

-

-public class DefaultLoadingContext implements ILoadingContext {

-	public static final DefaultLoadingContext defaultLoadingContext = new DefaultLoadingContext();

-

-	protected ClassLoader classLoader;

-

-	public DefaultLoadingContext() {

-	}

-

-	public DefaultLoadingContext(ClassLoader classLoader) {

-		this.classLoader = classLoader;

-	}

-

-	public ClassLoader getClassLoader() {

-		if (classLoader == null) {

-			return Thread.currentThread().getContextClassLoader();

-		}

-		return classLoader;

-	}

-

-	public void setClassLoader(ClassLoader classLoader) {

-		this.classLoader = classLoader;

-	}

-

-	public String getNamespace() {

-		return IConstants.XWT_NAMESPACE;

-	}

-	

-	public Class<?> loadClass(String name) {

-		Class<?> type = doLoadClass(name);

-		if (type != null) {

-			return type;

-		}

-		int index = name.lastIndexOf('.');

-		while(index != -1) {

-			name = name.substring(0, index) + "$" + name.substring(index + 1);

-			type = doLoadClass(name);

-			if (type != null) {

-				return type;

-			}

-			index = name.lastIndexOf('.');

-		}

-		return null;

-	}

-

-	protected Class<?> doLoadClass(String name) {

-		try {

-			return getClassLoader().loadClass(name);

-		} catch (ClassNotFoundException e) {

-		}

-		return null;

-	}

-

-	public URL getResource(String name) {

-		return getClassLoader().getResource(name);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/ICLRFactory.java b/org.eclipse.xwt/src/org/eclipse/xwt/ICLRFactory.java
deleted file mode 100644
index 4b5ed5f..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/ICLRFactory.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *     Angelo Zerr <angelo.zerr@gmail.com> - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt;

-

-import java.util.Map;

-

-public interface ICLRFactory {

-	/**

-	 * This method is used to create a CLR instance to handle events.

-	 * 

-	 * @param args

-	 *            null if the default CLRFactory comes from XWT.getCLRFactory()

-	 *            or CLASS_FACTORY. Otherwise, it is the value x:ClassFactory

-	 * @options contains structures used by XWT (ex : URL, DataContext). Keys of

-	 *          this Map come from {@link IXWTLoader}.

-	 * @return

-	 */

-	Object createCLR(String args, Map<String, Object> options);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/IConstants.java b/org.eclipse.xwt/src/org/eclipse/xwt/IConstants.java
deleted file mode 100644
index 3444d05..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/IConstants.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt;

-

-import java.net.URL;

-import java.util.Enumeration;

-import java.util.ListResourceBundle;

-import java.util.ResourceBundle;

-

-import org.eclipse.xwt.internal.xml.DocumentObject;

-

-/**

- * Shared constants

- * 

- * @author yyang

- */

-public interface IConstants {

-	public final String XAML_X_KEY = "Key";

-	public final String XAML_X_TYPE = "Type";

-	public final String XAML_X_TARGET_TYPE = "TargetType";

-	public final String XAML_X_TYPE_NAME = "TypeName";

-	public final String XAML_CLR_ASSEMBLY = "assembly=";

-

-	public final String XAML_X_STATIC = "Static";

-	public final String XAML_X_STATIC_MEMBER = "Member";

-	public final String XAML_X_ARRAY = "Array";

-	public final String XAML_X_CLASS = "Class";

-	public final String XAML_X_CLASS_FACTORY = "ClassFactory";

-	public final String XAML_X_NAME = "Name";

-	public final String XAML_X_NULL = "Null";

-	public final String XAML_X_SHARED = "Shared";

-	public final String XAML_DATA_CONTEXT = "DataContext";

-	public final String XAML_BINDING_CONTEXT = "BindingContext";

-	public final String XAML_RENDER_TRANSFORM = "RenderTransform";

-	public final String XAML_RENDER_TRANSFORM_ORIGIN = "RenderTransformOrigin";

-	public final String XAML_TRIGGERS = "Triggers";

-	public final String XAML_STYLE = "Style";

-	public final String XAML_COMMAND = "Command";

-	public final String XAML_CLR_NAMESPACE_PROTO = "clr-namespace:";

-	public final String XAML_RESOURCES = "Resources";

-

-	public final String XAML_STATICRESOURCES = "StaticResource";

-	public final String XAML_DYNAMICRESOURCES = "DynamicResource";

-	public final String XAML_BINDING = "Binding";

-

-	public final String XML_NS = "xmlns";

-

-	public static final String XWT_NAMESPACE = "http://www.eclipse.org/xwt/presentation";

-	public static final String XWT_X_NAMESPACE = "http://www.eclipse.org/xwt";

-

-	public static final String XWT_EXTENSION = "xwt";

-	public static final String XWT_EXTENSION_SUFFIX = "." + XWT_EXTENSION;

-

-	public static final Enumeration<URL> EMPTY_ENUMERATION = new Enumeration<URL>() {

-

-		/*

-		 * (non-Javadoc)

-		 * 

-		 * @see java.util.Enumeration#hasMoreElements()

-		 */

-		public boolean hasMoreElements() {

-			return false;

-		}

-

-		/*

-		 * (non-Javadoc)

-		 * 

-		 * @see java.util.Enumeration#nextElement()

-		 */

-		public URL nextElement() {

-			return null;

-		}

-	};

-

-	public static final ResourceBundle EMPTY_RESOURCE_BUNDLE = new ListResourceBundle() {

-

-		private Object[][] EMPTY = new Object[0][0];

-

-		/*

-		 * (non-Javadoc)

-		 * 

-		 * @see java.util.ListResourceBundle#getContents()

-		 */

-		@Override

-		protected Object[][] getContents() {

-			return EMPTY;

-		}

-	};

-

-	public static final String[] EMPTY_STRING_ARRAY = new String[0];

-

-	public static final DocumentObject[] EMPTY_DOCOBJ_ARRAY = new DocumentObject[0];

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/IDataBinding.java b/org.eclipse.xwt/src/org/eclipse/xwt/IDataBinding.java
deleted file mode 100644
index 6404192..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/IDataBinding.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public interface IDataBinding extends IDataBindingInfo {

-	/**

-	 * The argument is used to determine the filtering. If type is null, no filtering

-	 * 

-	 * @return

-	 */

-	public Object getValue(Class<?> targetType);

-

-	public Object getControl();

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/IDataBindingInfo.java b/org.eclipse.xwt/src/org/eclipse/xwt/IDataBindingInfo.java
deleted file mode 100644
index 1af88e0..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/IDataBindingInfo.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt;

-

-import org.eclipse.xwt.databinding.BindingMode;

-

-public interface IDataBindingInfo {

-	public IDataProvider getDataProvider();

-

-	BindingMode getMode();

-

-	IValueConverter getConverter();

-

-	IValidationRule[] getValidators();

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/IDataProvider.java b/org.eclipse.xwt/src/org/eclipse/xwt/IDataProvider.java
deleted file mode 100644
index 2f2f8eb..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/IDataProvider.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt;

-

-import org.eclipse.core.databinding.observable.IObservable;

-import org.eclipse.core.databinding.property.value.IValueProperty;

-

-/**

- * A Data Binding provider defines the nature of Data Binding such as Bean Object Binding, EMF Object Binding, XML data Binding or Data Base binding

- *

- * @author yyang

- */

-public interface IDataProvider {

-

-	/**

-	 * Return the data of the provider, this value can be not used for databindings.

-	 *

-	 * @param path

-	 * @return

-	 */

-	Object getData(String path);

-

-	/**

-	 * Return the data of the provider, this value can be not used for databindings.

-	 *

-	 * @param path

-	 * @return

-	 */

-	Object getData(Object target, String path);

-

-	/**

-	 * Return the data of the provider, this value can be not used for databindings.

-	 *

-	 * @param path

-	 * @return

-	 */

-	void setData(String path, Object value);

-

-	/**

-	 * Return the data of the provider, this value can be not used for databindings.

-	 *

-	 * @param path

-	 * @return

-	 */

-	void setData(Object target, String path, Object value);

-

-	/**

-	 * Return the data type of the provider.lue

-	 *

-	 * @param path

-	 * @return

-	 */

-	Object getDataType(String path);

-

-	/**

-	 * check if the property is read only.

-	 *

-	 * @param path

-	 * @return

-	 */

-	boolean isPropertyReadOnly(String path);

-

-	Object getProperty(String property);

-

-	void setProperty(String property, Object object);

-

-	boolean hasProperty(String property);

-

-	void removeProperty(String property);

-

-	IObservable observe(Object data, String path, Object targetType, int observeKind);

-

-	IValueProperty createValueProperty(Object type, String fullPath);

-

-	interface DataModelService {

-		/**

-		 * get the type of this object

-		 *

-		 * @param object

-		 * @return

-		 */

-		Object toModelType(Object object);

-

-		Object loadModelType(String typeName);

-

-		Object toModelPropertyType(Object object, String propertyName);

-	}

-

-	DataModelService getModelService();

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/IDataProviderFactory.java b/org.eclipse.xwt/src/org/eclipse/xwt/IDataProviderFactory.java
deleted file mode 100644
index b4fd3da..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/IDataProviderFactory.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public interface IDataProviderFactory {

-	/**

-	 * The type of the Data provider

-	 * @return

-	 */

-	Class<?> getType();

-

-	/**

-	 * 

-	 * @param dataContext

-	 * @return null if this factory doesn't match with the data context

-	 */

-	IDataProvider create(Object dataContext);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/IEventConstants.java b/org.eclipse.xwt/src/org/eclipse/xwt/IEventConstants.java
deleted file mode 100644
index 44f6f7a..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/IEventConstants.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt;

-

-public final class IEventConstants {

-	public static final String DATA_PREFIX = "_event.";

-	public static final String SUFFIX = "Event";

-	public static final String SUFFIX_KEY = "event";

-	public static final String PREFIX = "is";

-

-	public static final String KEY_DOWN = "KeyDown";

-	public static final String KEY_UP = "KeyUp";

-	public static final String[] KEY_GROUP = new String[] {KEY_DOWN, KEY_UP};

-	

-	public static final String XWT_KEY_DOWN = "KeyDown" + SUFFIX;

-	public static final String XWT_KEY_UP = "KeyUp" + SUFFIX;

-	

-	public static final String MOUSE_DOWN = "MouseDown";

-	public static final String MOUSE_UP = "MouseUp";

-	public static final String[] MOUSE_GROUP = new String[] {MOUSE_DOWN, MOUSE_UP};

-	

-	public static final String XWT_MOUSE_DOWN = "MouseDown" + SUFFIX;

-	public static final String XWT_MOUSE_UP = "MouseUp" + SUFFIX;

-	

-	public static final String MOUSE_MOVE = "MouseMove";

-	public static final String MOUSE_ENTER = "MouseEnter";

-	public static final String MOUSE_EXIT = "MouseExit";

-	public static final String MOUSE_HOVER = "MouseHover";

-	public static final String[] MOUSE_MOVING_GROUP = new String[] {MOUSE_ENTER, MOUSE_EXIT};

-

-	public static final String XWT_MOUSE_MOVE = "MouseMove" + SUFFIX;

-	public static final String XWT_MOUSE_ENTER = "MouseEnter" + SUFFIX;

-	public static final String XWT_MOUSE_EXIT = "MouseExit" + SUFFIX;

-	public static final String XWT_MOUSE_HOVER = "MouseHover" + SUFFIX;

-

-	public static final String MOUSE_DOUBLE_CLICK = "MouseDoubleClick";

-

-	public static final String XWT_MOUSE_DOUBLE_CLICK = MOUSE_DOUBLE_CLICK + SUFFIX;

-

-	public static final String PAINT = "Paint";

-	public static final String MOVE = "Move";

-	public static final String RESIZE = "Resize";

-	public static final String DISPOSE = "Dispose";

-

-	public static final String XWT_PAINT = "Paint" + SUFFIX;

-	public static final String XWT_MOVE = "Move" + SUFFIX;

-	public static final String XWT_RESIZE = "Resize" + SUFFIX;

-	public static final String XWT_DISPOSE = "Dispose" + SUFFIX;

-

-	public static final String SELECTION = "Selection";

-	public static final String DEFAULT_SELECTION = "DefaultSelection";

-

-	public static final String XWT_SELECTION = "Selection" + SUFFIX;

-	public static final String XWT_DEFAULT_SELECTION = "DefaultSelection" + SUFFIX;

-

-	public static final String FOCUS_IN = "FocusIn";

-	public static final String FOCUS_OUT = "FocusOut";

-	public static final String[] FOCUS_GROUP = new String[] {FOCUS_IN, FOCUS_OUT};

-

-	public static final String XWT_FOCUS_IN = "FocusIn" + SUFFIX;

-	public static final String XWT_FOCUS_OUT = "FocusOut" + SUFFIX;

-

-	public static final String EXPAND = "Expand";

-	public static final String COLLAPSE = "Collapse";

-	public static final String[] EXPAND_GROUP = new String[] {EXPAND, COLLAPSE};

-	

-	public static final String XWT_EXPAND = "Expand" + SUFFIX;

-	public static final String XWT_COLLAPSE = "Collapse" + SUFFIX;

-

-	public static final String ICONIFY = "Iconify";

-	public static final String DEICONIFY = "Deiconify";

-	public static final String CLOSE = "Close";

-	public static final String SHOW = "Show";

-	public static final String HIDE = "Hide";

-	public static final String[] WINDOW_GROUP = new String[] {ICONIFY, DEICONIFY, CLOSE, SHOW, HIDE};

-	

-	public static final String XWT_ICONIFY = "Iconify" + SUFFIX;

-	public static final String XWT_DEICONIFY = "Deiconify" + SUFFIX;

-	public static final String XWT_CLOSE = "Close" + SUFFIX;

-	public static final String XWT_SHOW = "Show" + SUFFIX;

-	public static final String XWT_HIDE = "Hide" + SUFFIX;

-

-	public static final String MODIFY = "Modify";

-	public static final String VERIFY = "Verify";

-	

-	public static final String XWT_MODIFY = "Modify" + SUFFIX;

-	public static final String XWT_VERIFY = "Verify" + SUFFIX;

-	

-	public static final String ACTIVATE = "Activate";

-	public static final String DEACTIVATE = "Deactivate";

-	public static final String[] ACTIVATION_GROUP = new String[] {ACTIVATE, DEACTIVATE};

-	

-	public static final String XWT_ACTIVATE = "Activate" + SUFFIX;

-	public static final String XWT_DEACTIVATE = "Deactivate" + SUFFIX;

-

-	public static final String HELP = "Help";

-	

-	public static final String XWT_HELP = "Help" + SUFFIX;

-	

-	public static final String DRAG_SELECT = "DragDetect";

-	

-	public static final String XWT_DRAG_SELECT = "DragDetect" + SUFFIX;

-

-	public static final String ARM = "Arm";

-	

-	public static final String XWT_ARM = "Arm" + SUFFIX;

-	

-	public static final String TRAVERSE = "Traverse";

-	

-	public static final String XWT_TRAVERSE = "Traverse" + SUFFIX;

-

-	public static final String HARD_KEY_DOWN = "HardKeyDown";

-	public static final String HARD_KEY_UP = "HardKeyUp";

-	public static final String[] HARD_KEY = new String[] {HARD_KEY_DOWN, HARD_KEY_UP};

-	

-	public static final String XWT_HARD_KEY_DOWN = "HardKeyDown" + SUFFIX;

-	public static final String XWT_HARD_KEY_UP = "HardKeyUp" + SUFFIX;

-

-	public static final String MENU_DETECT = "MenuDetect";

-	

-	public static final String XWT_MENU_DETECT = "MenuDetect" + SUFFIX;

-

-	public static final String MOUSE_WHEEL = "MouseWheel";

-	

-	public static final String XWT_MOUSE_WHEEL = "MouseWheel" + SUFFIX;

-	

-	public static final String SETTINGS = "Settings";

-	

-	public static final String XWT_SETTINGS = "Settings" + SUFFIX;

-

-	public static final String ERASE_ITEM = "EraseItem";

-	public static final String MEASURE_ITEM = "MeasureItem";

-	

-	public static final String XWT_ERASE_ITEM = "EraseItem" + SUFFIX;

-	public static final String XWT_MEASURE_ITEM = "MeasureItem" + SUFFIX;

-

-	public static final String PAINT_ITEM = "PaintItem";

-	public static final String SET_DATA = "SetData";

-	public static final String IME_COMPOSITION = "ImeComposition";

-

-	public static final String XWT_PAINT_ITEM = "PaintItem" + SUFFIX;

-	public static final String XWT_SET_DATA = "SetData" + SUFFIX;

-	public static final String XWT_IME_COMPOSITION = "ImeComposition" + SUFFIX;

-

-	public static final int XWT_SWT_LOADED = 1025; // SWT custom event

-	public static final String XWT_LOADED = "Loaded"; // deprecated

-	public static final String XWT_LOADED_EVENT = XWT_LOADED + SUFFIX;

-	

-	static public String getEventName(String swtEventName) {

-		return normalize(swtEventName + SUFFIX);

-	}

-	

-	static public String normalize(String name) {

-		return name.toLowerCase();

-	}

-

-	static public String getEventPropertyName(String name) {

-		return PREFIX + name + SUFFIX;

-	}

-	

-	static public String getEventPropertyDataName(String name) {

-		return DATA_PREFIX + PREFIX + name + SUFFIX;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/IEventGroup.java b/org.eclipse.xwt/src/org/eclipse/xwt/IEventGroup.java
deleted file mode 100644
index 660dd01..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/IEventGroup.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt;

-

-import org.eclipse.xwt.metadata.IProperty;

-

-/**

- * This class manages the coordination between events' state

- * 

- * @author yyang

- */

-public interface IEventGroup {

-	String[] getEventNames();

-	

-	/**

-	 * Fire the event to update other when an event occurs 

-	 * 

-	 * @param object

-	 * @param property

-	 */

-	void fireEvent(IObservableValueListener manager, IProperty property);

-

-	/**

-	 * Register the event

-	 * 

-	 * @param manager

-	 * @param property

-	 */

-	void registerEvent(IObservableValueListener manager, IProperty property);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/IEventHandler.java b/org.eclipse.xwt/src/org/eclipse/xwt/IEventHandler.java
deleted file mode 100644
index 69b5791..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/IEventHandler.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt;

-

-/**

- * This class provides an open solution to manage the events. By default, 

- * XWT uses Java reflection to find the method to handle an event. If the class 

- * specified by <code>x:Class</code> implements this interface, this class can provide 

- * the IEventInvoker for each event.   

- * 

- * @author yyang

- */

-public interface IEventHandler {

-	IEventInvoker getEventInvoker(String name, Class<?> elementType,

-			Class<?> eventType);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/IEventInvoker.java b/org.eclipse.xwt/src/org/eclipse/xwt/IEventInvoker.java
deleted file mode 100644
index f0fba83..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/IEventInvoker.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt;

-

-import org.eclipse.swt.widgets.Event;

-

-public interface IEventInvoker {

-	void invoke(Object sender, Event event);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/IIndexedElement.java b/org.eclipse.xwt/src/org/eclipse/xwt/IIndexedElement.java
deleted file mode 100644
index ee4150c..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/IIndexedElement.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt;

-

-public interface IIndexedElement {

-	void setIndex(Object parent, int index);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/ILoadingContext.java b/org.eclipse.xwt/src/org/eclipse/xwt/ILoadingContext.java
deleted file mode 100644
index 80c7cad..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/ILoadingContext.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt;

-

-import java.net.URL;

-

-public interface ILoadingContext {

-	URL getResource(String name);

-

-	String getNamespace();

-	

-	Class<?> loadClass(String name);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/ILogger.java b/org.eclipse.xwt/src/org/eclipse/xwt/ILogger.java
deleted file mode 100644
index edf1bef..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/ILogger.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt;

-

-import java.util.Set;

-

-/**

- * Looger interface

- * 

- * @author yyang

- */

-public interface ILogger {

-	void error(Throwable e);

-

-	void error(Throwable e, String message);

-

-	void warning(String message);

-

-	void message(String message);

-

-	// print messages into console view

-	void printInfo(String message, Tracking tracking, Set<Tracking> trackType);

-

-	// add messages

-	void addMessage(String message, Tracking tracking);

-

-	void removeMessage(Tracking tracking);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/IMetaclassFactory.java b/org.eclipse.xwt/src/org/eclipse/xwt/IMetaclassFactory.java
deleted file mode 100644
index a06c89b..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/IMetaclassFactory.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt;

-

-import org.eclipse.xwt.metadata.IMetaclass;

-

-/**

- * Metaclass factory provides a customizable Metaclass creation mechanism.

- * 

- * @author yyang

- * 

- */

-public interface IMetaclassFactory {

-	boolean isFactoryOf(Class<?> type);

-

-	IMetaclass create(Class<?> type, IMetaclass superMetaclass, IXWTLoader xwtLoader);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/IMultiValueConverter.java b/org.eclipse.xwt/src/org/eclipse/xwt/IMultiValueConverter.java
deleted file mode 100644
index 9a2b8d8..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/IMultiValueConverter.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt;

-

-/**

- * Data converter used in MultiBinding

- * 

- * @author yyang

- *

- */

-public interface IMultiValueConverter extends IValueConverter {

-	Object[] convertBack(Object value);

-

-	Object convert(Object[] value);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/INamespaceHandler.java b/org.eclipse.xwt/src/org/eclipse/xwt/INamespaceHandler.java
deleted file mode 100644
index d6b481a..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/INamespaceHandler.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt;

-

-import org.eclipse.swt.widgets.Widget;

-

-/**

- * This class defines the public behavior to handle the foreigner namespace

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public interface INamespaceHandler {

-	void handleAttribute(Widget widget, Object target, String name, String value);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/IObservableValueListener.java b/org.eclipse.xwt/src/org/eclipse/xwt/IObservableValueListener.java
deleted file mode 100644
index 292a880..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/IObservableValueListener.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt;

-

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.xwt.metadata.IProperty;

-

-public interface IObservableValueListener {	

-	void registerValue(IProperty property, IObservableValue observableValue);

-	

-	IObservableValue getValue(IProperty property);

-	

-	void changeValueHandle(Object object, Event event);

-	

-	Object getHost();

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/IStyle.java b/org.eclipse.xwt/src/org/eclipse/xwt/IStyle.java
deleted file mode 100644
index 9da940f..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/IStyle.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public interface IStyle {

-

-	/**

-	 * The element to apply the style. The argument is an instance created through XML. It can be a Widget, or others such as TableViewer.

-	 * 

-	 * @param target

-	 */

-	void applyStyle(Object target);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/IUIExtensionProvider.java b/org.eclipse.xwt/src/org/eclipse/xwt/IUIExtensionProvider.java
deleted file mode 100644
index f6966a9..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/IUIExtensionProvider.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt;

-

-/**

- * In some UI elements, property data may not be provided in the element it-self.  

- * 

- * @author yyang

- */

-public interface IUIExtensionProvider {

-	Object getExtensionValue(Object item, String propertyName);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/IUIResource.java b/org.eclipse.xwt/src/org/eclipse/xwt/IUIResource.java
deleted file mode 100644
index 9b2052e..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/IUIResource.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt;

-

-public interface IUIResource {

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/IValidationRule.java b/org.eclipse.xwt/src/org/eclipse/xwt/IValidationRule.java
deleted file mode 100644
index 26e0ec3..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/IValidationRule.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt;

-

-import org.eclipse.core.databinding.validation.IValidator;

-import org.eclipse.core.runtime.IStatus;

-

-/**

- * @author hceylan

- *

- */

-public interface IValidationRule extends IValidator {

-	public static IValidationRule[] EMPTY_ARRAY = new IValidationRule[0];

-

-	public enum Phase {

-		AfterGet, //

-		AfterConvert, //

-		BeforeSet

-	}

-

-	public enum Direction {

-		SourceToTarget, //

-		TargetToSource, //

-		Both

-	}

-

-	/**

-	 * Returns the direction of the validation

-	 *

-	 * @return {@link Direction} indicating the direction of the validation.

-	 *         Never null

-	 */

-	public Direction getBindingMode();

-

-	/**

-	 * Returns the phase this validator applies to

-	 *

-	 * @return {@link Phase} to indicate the phase of the validation. Never null

-	 */

-	public Phase getPhase();

-

-	/**

-	 * Determines if the given value is valid.

-	 *

-	 * @param value

-	 *            the value to validate

-	 * @return a status object indicating whether the validation succeeded

-	 *         {@link IStatus#isOK()} or not. Never null.

-	 */

-	public IStatus validateBack(Object value);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/IValueConverter.java b/org.eclipse.xwt/src/org/eclipse/xwt/IValueConverter.java
deleted file mode 100644
index 9cc79af..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/IValueConverter.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-

-/**

- * For a data binding, the conversion could be bidirectional. The standard IConverter is not enough. This class is designed to meet this requirement.

- * 

- * @author yyang

- * 

- */

-public interface IValueConverter extends IConverter {

-	Object convertBack(Object value);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/IXWTInitializer.java b/org.eclipse.xwt/src/org/eclipse/xwt/IXWTInitializer.java
deleted file mode 100644
index 793d7ec..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/IXWTInitializer.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package org.eclipse.xwt;

-

-public interface IXWTInitializer {

-	void initialize(IXWTLoader loader);

-	

-	boolean isInitialized();

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/IXWTLoader.java b/org.eclipse.xwt/src/org/eclipse/xwt/IXWTLoader.java
deleted file mode 100644
index 73bfc09..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/IXWTLoader.java
+++ /dev/null
@@ -1,868 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2017 Soyatec (http://www.soyatec.com), CEA, and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Soyatec - initial API and implementation

- *     Christian W. Damus (CEA) - bug 435432

- *     EclipseSource - bug 521931

- *     

- *******************************************************************************/

-package org.eclipse.xwt;

-

-import java.io.InputStream;

-import java.net.URL;

-import java.util.Collection;

-import java.util.Map;

-import java.util.Set;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.core.databinding.observable.IChangeListener;

-import org.eclipse.core.databinding.observable.IObservable;

-import org.eclipse.core.databinding.observable.Realm;

-import org.eclipse.core.databinding.observable.list.IObservableList;

-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;

-import org.eclipse.core.databinding.observable.set.IObservableSet;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.xwt.callback.IBeforeParsingCallback;

-import org.eclipse.xwt.callback.ICreatedCallback;

-import org.eclipse.xwt.callback.ILoadedCallback;

-import org.eclipse.xwt.core.TriggerBase;

-import org.eclipse.xwt.databinding.BindingContext;

-import org.eclipse.xwt.databinding.IBindingContext;

-import org.eclipse.xwt.input.ICommand;

-import org.eclipse.xwt.internal.core.UpdateSourceTrigger;

-import org.eclipse.xwt.internal.xml.IElementCache;

-import org.eclipse.xwt.metadata.IMetaclass;

-import org.eclipse.xwt.metadata.IProperty;

-

-/**

- * XWT loader interface

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public interface IXWTLoader {

-	// Properties

-	

-	/**

-	 * The URL which open XWT file

-	 * 

-	 */

-	String URL_PROPERTY = "XWT.URL";

-

-	/**

-	 * style of type int is used to create SWT element

-	 */

-	String CONTAINER_PROPERTY = "XWT.Container";

-	String INIT_STYLE_PROPERTY = "XWT.Style";

-

-	/**

-	 * Used for editor/designer to pass design mode

-	 */

-	String DESIGN_MODE_PROPERTY = "XWT.DesignMode";

-

-	/**

-	 * Default styles to apply. The value should be a collection or Array of

-	 * IStyle

-	 * 

-	 */

-	String DEFAULT_STYLES_PROPERTY = "XWT.DefaultStyles";

-	/**

-	 * Enabled or disabled the styles. By default, it is enabled

-	 * 

-	 */

-	String DISABLE_STYLES_PROPERTY = "XWT.DisabledStyles";

-	/**

-	 * The DataContext to setup in root element

-	 * 

-	 */

-	String DATACONTEXT_PROPERTY = "XWT.DataContext";

-

-	/**

-	 * The BindingContext to setup in root element

-	 * 

-	 */

-	String BINDING_CONTEXT_PROPERTY = "XWT.BindingContext";

-

-	/**

-	 * The CLR class

-	 * 

-	 */

-	String CLASS_PROPERTY = "XWT.Class";

-

-	/**

-	 * The CLR class factory

-	 * 

-	 */

-	String CLASS_FACTORY_PROPERTY = "XWT.ClassFactory";

-

-	/**

-	 * Resources to associate to root element

-	 * 

-	 */

-	String RESOURCE_DICTIONARY_PROPERTY = "XWT.Resources";

-

-	/**

-	 * Resources to associate to root element

-	 * 

-	 */

-	String LOADED_CALLBACK = ILoadedCallback.class.getName();

-

-	/**

-	 * Action to invoke after the creation of each UI element before the properties setting

-	 * 

-	 */

-	String CREATED_CALLBACK = ICreatedCallback.class.getName();

-

-	/**

-	 * Action to invoke before parsing the XML file

-	 * 

-	 */

-	String BEFORE_PARSING_CALLBACK = IBeforeParsingCallback.class.getName();

-	

-	/**

-	 * Parsed XML element caching option. In the public API, this may be only either a {@link Boolean} indicating whether to cache the XML content

-	 * parsed from XWT resources (the cache having some unspecified default size) or a positive {@link Integer} indicating the size of XML cache.

-	 * This load option is a bit odd in that, if specified, it is replaced by the actual cache, which then should be supplied as the option value

-	 * for subsequent calls. Thus, the following idiom is recommended:

-	 * 

-	 * <pre>

-	 *   private Object xmlCache; // the XML cache

-	 *   

-	 *   // other fields ...

-	 *   

-	 *   void whatever() {

-	 *       Map&lt;String, Object&gt; options = new HashMap&lt;String, Object&gt;();

-	 *       options.put(IXWTLoader.XML_CACHE_PROPERTY, (xmlCache != null) ? xmlCache : Boolean.TRUE);

-	 *       // ... set other options as needed ...

-	 *   

-	 *       URL url = getResourceURL(); // however this is obtained

-	 *       

-	 *       Object ui = XWT.loadWithOptions(url, options);

-	 *       

-	 *       // Get the cache to reuse next time

-	 *       xmlCache = options.get(IXWTLoader.XML_CACHE_PROPERTY);

-	 *       

-	 *       doSomethingWithTheUI(ui);

-	 *   }

-	 * </pre>

-	 */

-	String XML_CACHE_PROPERTY = IElementCache.class.getName();

-	

-	/**

-	 * Option to cache access to 'User control' resources

-	 * Possible values:

-	 * <ul>

-	 * 	<li>Unspecified (Default): Use a default, static (singleton) cache</li>

-	 * 	<li>{@link Boolean#TRUE}: Create a new cache instance for this session</li>

-	 * 	<li>{@link Boolean#FALSE}: Do not use a cache</li>

-	 * 	<li>An {@link IResourceCache}: Use the specified cache instance</li>

-	 * 	<li>All other values will be treated like {@link Boolean#FALSE Boolean.FALSE}, i.e. no cache will be used</li>

-	 * </ul>

-	 * When specifying {@link Boolean#TRUE Boolean.TRUE}, the map entry will be replaced

-	 * by a new cache instance, so you can retrieve (and reuse) that cache later. For example:

-	 * <pre>

-	 *   private Object resourceCache; // the Resource cache

-	 *   

-	 *   // other fields ...

-	 *   

-	 *   void whatever() {

-	 *       Map&lt;String, Object&gt; options = new HashMap&lt;String, Object&gt;();

-	 *       options.put(IXWTLoader.USER_CONTROL_CACHE_PROPERTY, (resourceCache != null) ? resourceCache : Boolean.TRUE);

-	 *       // ... set other options as needed ...

-	 *   

-	 *       URL url = getResourceURL(); // however this is obtained

-	 *       

-	 *       Object ui = XWT.loadWithOptions(url, options);

-	 *       

-	 *       // Get the cache to reuse next time

-	 *       resourceCache = options.get(IXWTLoader.USER_CONTROL_CACHE_PROPERTY);

-	 *       

-	 *       doSomethingWithTheUI(ui);

-	 *   }

-	 * </pre>

-	 * Note: the default/shared cache will never be returned in the options. If the 

-	 * {@link #USER_CONTROL_CACHE_PROPERTY} option is initially unspecified, it will 

-	 * not be replaced when the XWT resource is loaded.

-	 */

-	String USER_CONTROL_CACHE_PROPERTY = "UserControlCache";

-	

-	/**

-	 * Boolean option to enable or disable the user controls. By default, they are enabled

-	 */

-	String DISABLE_USER_CONTROLS = "XWT.DISABLE_USER_CONTROLS";

-

-	String[] ALL_PROPERTIES = { URL_PROPERTY, 

-			CONTAINER_PROPERTY,

-			INIT_STYLE_PROPERTY,

-			DATACONTEXT_PROPERTY,

-			BINDING_CONTEXT_PROPERTY,

-			RESOURCE_DICTIONARY_PROPERTY,

-			CLASS_PROPERTY,

-			CLASS_FACTORY_PROPERTY,

-			LOADED_CALLBACK,

-			CREATED_CALLBACK,

-			BEFORE_PARSING_CALLBACK,

-			DESIGN_MODE_PROPERTY,

-			XML_CACHE_PROPERTY,

-			USER_CONTROL_CACHE_PROPERTY,

-			DISABLE_USER_CONTROLS};

-	

-	/**

-	 * Register an Observable IChangeListener for a given UI element. The second

-	 * registration of the same listener on the same UI Element has no effect.

-	 * 

-	 * @param control

-	 * @param listener

-	 * @return

-	 */

-	boolean addObservableChangeListener(Object control, IChangeListener listener);

-

-	/**

-	 * Undo the registration of the Observable IChangeListener for a given UI

-	 * element.

-	 * 

-	 * @param context

-	 * @param listener

-	 */

-	void removeObservableChangeListener(Object context, IChangeListener listener);

-

-	/**

-	 * Find the used IObservable value for given data.

-	 * 

-	 * @param nsmapace

-	 * @return

-	 */

-	IObservable observe(Object context, Object data, String propertyName,

-			UpdateSourceTrigger updateSourceTrigger);

-

-	/**

-	 * Find the used IObservableFactory value for given data.

-	 * 

-	 * @param nsmapace

-	 * @return

-	 */

-	IObservableFactory observableFactory(Object context, String propertyName,

-			UpdateSourceTrigger updateSourceTrigger);

-

-	/**

-	 * Find the used IObservableValue value for given data.

-	 * 

-	 * @param nsmapace

-	 * @return

-	 */

-	IObservableValue observableValue(Object context, Object data,

-			String propertyName, UpdateSourceTrigger updateSourceTrigger);

-

-	/**

-	 * Find the used IObservableList value for given data.

-	 * 

-	 * @param nsmapace

-	 * @return

-	 */

-	IObservableList findObservableList(Object context, Object data,

-			String propertyName);

-

-	/**

-	 * Find the used IObservableList value for given data.

-	 * 

-	 * @param nsmapace

-	 * @return

-	 */

-	IObservableSet findObservableSet(Object context, Object data,

-			String propertyName);

-

-	/**

-	 * Find the used IObservableValue value for given data.

-	 * 

-	 * @param context

-	 * @param data

-	 * @param propertyName

-	 * @return

-	 */

-	IObservableValue findObservableValue(Object context, Object data,

-			String propertyName);

-	

-	/**

-	 * Find the resource in Resources Dictionary attached in the UI Element.

-	 * If the key isn't found, the research will be propagated in its parent. 

-	 * 

-	 * @param object

-	 * @param key

-	 * @return

-	 */

-	Object findResource(Object object, String key);

-

-	/**

-	 * Get the Resources Dictionary attached in the UI Element.

-	 * 

-	 * @param object

-	 * @return

-	 */

-	Map<String, Object> getResources(Object object);

-

-	/**

-	 * 

-	 * @param nsmapace

-	 * @param handler

-	 */

-	void registerNamespaceHandler(String nsmapace, INamespaceHandler handler);

-

-	/**

-	 * 

-	 * @param nsmapace

-	 */

-	void unregisterNamespaceHandler(String nsmapace);

-

-	/**

-	 * 

-	 * @param nsmapace

-	 * @return

-	 */

-	INamespaceHandler getNamespaceHandler(String nsmapace);

-

-	/**

-	 * 

-	 * @return

-	 */

-	Realm getRealm();

-

-	/**

-	 * Get the system logger.

-	 * 

-	 * @return

-	 */

-	ILogger getLogger();

-

-	/**

-	 * Change the system logger

-	 * 

-	 * @param logger

-	 */

-	void setLogger(ILogger log);

-

-	/**

-	 * This namespace service returns the associated or declared namespace for a

-	 * given class.

-	 * 

-	 * @param javaclass

-	 * @return

-	 */

-	String getNamespace(Class<?> javaclass);

-

-	/**

-	 * Get the name of the element, which is defined by <code>Name</code> or

-	 * <code>x:Name</code>. Return <code>null</code>

-	 * 

-	 * @param object

-	 * @return

-	 */

-	String getElementName(Object object);

-

-	/**

-	 * Find a named UI element.

-	 * 

-	 * @param context

-	 *            the start point of research.

-	 * @param name

-	 * @return

-	 */

-	Object findElementByName(Object context, String name);

-

-	/**

-	 * Get the DataContext of given element

-	 * 

-	 * @param context

-	 * @return

-	 */

-	Object getDataContext(Object element);

-

-	/**

-	 * Get the Triggers of given element

-	 * 

-	 * @param context

-	 * @return

-	 */

-	TriggerBase[] getTriggers(Object element);

-

-	/**

-	 * Change the DataContext of given element

-	 * 

-	 * @param context

-	 * @return

-	 */

-	void setDataContext(Object widget, Object dataContext);

-

-	/**

-	 * Changes the default data context of given element

-	 * 

-	 * @param widget

-	 * @param dataBindingContext

-	 */

-	void setDataBindingContext(Object widget, Object dataBindingContext);

-

-	/**

-	 * Change the Triggers of given element

-	 * 

-	 * @param context

-	 * @return

-	 */

-	void setTriggers(Object widget, TriggerBase[] triggers);

-

-	/**

-	 * Find the closet parent of type Composite

-	 * 

-	 * @param context

-	 * @return

-	 */

-	Composite findCompositeParent(Object context);

-

-	/**

-	 * Get the Metaclass of the given object

-	 * 

-	 * @param context

-	 * @return

-	 */

-	IMetaclass getMetaclass(Object object);

-

-	/**

-	 * Load the file content. All widget will be created but they are showed.

-	 * This method return the root element.

-	 * 

-	 */

-	Object load(URL file) throws Exception;

-

-	/**

-	 * Load the file content with a DataContext. All widget will be created but

-	 * they are showed. This method returns the root element. The DataContext

-	 * will be associated to the root element.

-	 */

-	Object load(URL file, Object dataContext) throws Exception;

-

-	Object load(IUIResource resource, Object dataContext) throws Exception;

-

-	/**

-	 * Load the file content under a UI Object. All widget will be created. This

-	 * method returns the root element. The DataContext will be associated to

-	 * the root element.

-	 */

-	Object load(Object parent, URL file) throws Exception;

-

-	/**

-	 * Load the file content under a UI Object. All widget will be created. This

-	 * method returns the root element. The DataContext will be associated to

-	 * the root element.

-	 */

-	Object load(Object parent, IUIResource resource) throws Exception;

-

-	/**

-	 * Load the file content under a UI Object with a DataContext. All widget

-	 * will be created. This method returns the root element. The DataContext

-	 * will be associated to the root element.

-	 */

-	Object load(Object parent, URL file, Object dataContext)

-			throws Exception;

-

-	/**

-	 * Load the file content under a UI Object with a DataContext. All widget

-	 * will be created. This method returns the root element. The DataContext

-	 * will be associated to the root element.

-	 */

-	Object load(Object parent, IUIResource resource, Object dataContext)

-			throws Exception;

-

-	/**

-	 * Load the file content under a UI Object with a DataContext. All widget

-	 * will be created. This method returns the root element. The DataContext

-	 * will be associated to the root element.

-	 */

-	Object load(Object parent, IUIResource resource, Map<String, Object> options)

-			throws Exception;

-

-	/**

-	 * Load the file content under a UI Object with a DataContext. All widget

-	 * will be created. This method returns the root element. The DataContext

-	 * will be associated to the root element.

-	 */

-	Object load(Object parent, Class<?> viewType, Object dataContext)

-			throws Exception;

-

-	/**

-	 * Load the file content under a UI Object with a DataContext. All widget

-	 * will be created. This method returns the root element. The DataContext

-	 * will be associated to the root element.

-	 */

-	Object loadWithOptions(Class<?> viewType, Map<String, Object> options)

-			throws Exception;

-

-	/**

-	 * Open and show the file content in a new Shell.

-	 */

-	void open(Class<?> type) throws Exception;

-

-	/**

-	 * Open and show the file content in a new Shell.

-	 */

-	void open(URL url) throws Exception;

-

-	void open(IUIResource resource) throws Exception;

-

-	/**

-	 * load the content from a stream with a style, a DataContext and a

-	 * ResourceDictionary. The root elements will be hold by UI Object parent

-	 */

-	Object load(Object parent, InputStream stream, URL file,

-			Object dataContext) throws Exception;

-

-	/**

-	 * load the file content. The corresponding UI element is not yet created

-	 */

-	void open(URL url, Object dataContext) throws Exception;

-

-	void open(IUIResource resource, Object dataContext) throws Exception;

-

-	/**

-	 * load the file content. The corresponding UI element is not yet created

-	 */

-	void open(Class<?> type, Object dataContext) throws Exception;

-

-	/**

-	 * load the file content. The corresponding UI element is not yet created

-	 */

-	void open(URL url, Map<String, Object> options) throws Exception;

-

-	void open(IUIResource resource, final Map<String, Object> options) throws Exception;

-

-	/**

-	 * Data conversion service from String to a given type

-	 * 

-	 * @param type

-	 * @param string

-	 * @return

-	 */

-	Object convertFrom(IMetaclass type, String string);

-

-	/**

-	 * Data conversion service from String to a given type

-	 * 

-	 * @param targetType

-	 * @param string

-	 * @return

-	 */

-	Object convertFrom(Class<?> targetType, String string);

-

-	Object loadWithOptions(URL url, Map<String, Object> options)

-			throws Exception;

-

-	/**

-	 * 

-	 * @param stream

-	 * @param url

-	 * @param options

-	 * @return

-	 * @throws Exception

-	 */

-	Object load(InputStream stream, URL url) throws Exception;

-

-	Object load(IUIResource resource) throws Exception;

-

-	public IUIResource loadAsResource(InputStream stream, URL input) throws Exception;

-

-	public IUIResource loadAsResource(InputStream stream, URL input,

-			IBeforeParsingCallback parsingCallback) throws Exception;

-

-	public IUIResource loadAsResource(URL input) throws Exception;

-

-	public IUIResource loadAsResource(URL input,

-			IBeforeParsingCallback parsingCallback) throws Exception;

-

-	/**

-	 * Generic load method

-	 * 

-	 * @param stream

-	 * @param url

-	 * @param loadData

-	 * @return

-	 * @throws Exception

-	 */

-	Object loadWithOptions(InputStream stream, URL url,

-			Map<String, Object> options) throws Exception;

-

-	Object loadWithOptions(IUIResource resource,

-			Map<String, Object> options) throws Exception;

-

-	/**

-	 * Metaclass services to return all registered Metaclasses.

-	 * 

-	 * @param stream

-	 * @param url

-	 * @param loadData

-	 * @return

-	 * @throws Exception

-	 */

-	IMetaclass[] getAllMetaclasses();

-

-	/**

-	 * Get the corresponding Metaclass

-	 * 

-	 * @param tagName

-	 * @param ns

-	 *            The namespace

-	 * @return

-	 */

-	IMetaclass getMetaclass(String tagName, String ns);

-

-	/**

-	 * Register UI type

-	 * 

-	 * @param javaclass

-	 */

-	IMetaclass registerMetaclass(Class<?> type);

-

-	/**

-	 * Register UI type

-	 * 

-	 * @param javaclass

-	 */

-	void registerMetaclass(IMetaclass type);

-

-	/**

-	 * Get the dynamic property value

-	 * 

-	 * @param javaclass

-	 */

-	Object getPropertyValue(Object uiElement, IProperty property);

-

-	/**

-	 * Set the dynamic property value

-	 * 

-	 * @param javaclass

-	 */

-	void setPropertyValue(Object uiElement, IProperty property, Object value);

-

-	/**

-	 * Remove the dynamic property value

-	 * 

-	 * @param javaclass

-	 */

-	void removePropertyValue(Object uiElement, IProperty property);

-

-	/**

-	 * Remove the dynamic property value

-	 * 

-	 * @param javaclass

-	 */

-	boolean hasPropertyValue(Object uiElement, IProperty property);

-

-	/**

-	 * Register Metaclass factory

-	 * 

-	 * @param javaclass

-	 */

-	void registerMetaclassFactory(IMetaclassFactory metaclassFactory);

-

-	/**

-	 * Find a Data converter

-	 * 

-	 * @param converter

-	 * @param type

-	 */

-	IConverter findConvertor(Class<?> source, Class<?> target);

-

-	/**

-	 * Register a Data converter

-	 * 

-	 * @param converter

-	 * @param type

-	 */

-	void registerConvertor(IConverter converter);

-

-	/**

-	 * Add a tracking option

-	 * 

-	 * @param tracking

-	 */

-	void addTracking(Tracking tracking);

-

-	/**

-	 * Test if the tracking on argument is enabled.

-	 * 

-	 * @param tracking

-	 * @return

-	 */

-	boolean isTracking(Tracking tracking);

-

-	/**

-	 * Get all tracking options

-	 * 

-	 * @return

-	 */

-	Set<Tracking> getTrackings();

-

-	/**

-	 * Remove a tracking option.

-	 * 

-	 * @param tracking

-	 */

-	void removeTracking(Tracking tracking);

-

-	/**

-	 * Register a command to a name

-	 * 

-	 * @param name

-	 * @param command

-	 */

-	void registerCommand(String name, ICommand command);

-

-	/**

-	 * Register a command to a name

-	 * 

-	 * @param name

-	 * @param command

-	 */

-	void registerEventGroup(Class<?> type, IEventGroup eventGroup);

-

-	/**

-	 * Find a command by name

-	 * 

-	 * @param name

-	 * @return

-	 */

-	ICommand getCommand(String name);

-

-	/**

-	 * Return all registered commands

-	 * 

-	 * @return

-	 */

-	Map<String, ICommand> getCommands();

-

-	/**

-	 * Unregister a command

-	 * 

-	 * @param name

-	 */

-	void unregisterCommand(String name);

-

-	/**

-	 * Add a default style

-	 * 

-	 * @param style

-	 * @return

-	 */

-	void addDefaultStyle(IStyle style);

-

-	/**

-	 * Remove a default style

-	 * 

-	 * @param style

-	 * @return

-	 */

-	void removeDefaultStyle(IStyle style);

-

-	Collection<IStyle> getDefaultStyles();

-

-	void addDataProviderFactory(String name,

-			IDataProviderFactory dataProviderFactory);

-

-	void removeDataProviderFactory(String name);

-

-	void removeDataProviderFactory(IDataProviderFactory dataProvider);

-

-	Collection<IDataProviderFactory> getDataProviderFactories();

-

-	IDataProvider findDataProvider(Object dataContext);

-

-	ILoadingContext findLoadingContext(Object container);

-

-	ILoadingContext getLoadingContext(Object object);

-

-	ILoadingContext getLoadingContext();

-

-	void setLoadingContext(ILoadingContext loadingContext);

-

-	/**

-	 * Create a UI Profile with the provide data and apply it immediately.

-	 * 

-	 * @param profileData

-	 * @return

-	 */

-	public Object createUIProfile();

-

-	/**

-	 * Put the Profile in place

-	 * 

-	 * @param profile

-	 * @return

-	 */

-	public boolean applyProfile(Object profile);

-

-	/**

-	 * Restore the previous profile

-	 * 

-	 * @return

-	 */

-	public Object restoreProfile();

-

-	/**

-	 * Set up the default ICLRFactory 

-	 * 

-	 * @param factory

-	 */

-	public void setCLRFactory(ICLRFactory factory);

-

-	/**

-	 * The default CLRFactory.

-	 * 

-	 * @return

-	 */

-	public ICLRFactory getCLRFactory();

-

-	/**

-	 * Returns the {@link BindingContext} of the element

-	 * 

-	 * @param element

-	 * @param contextName

-	 * @return

-	 */

-	IBindingContext getBindingContext(Object element);

-

-	/**

-	 * Check if the value of a property is to resolve.

-	 * 

-	 * @param type type of property

-	 * @return

-	 */

-	boolean isFileResolveType(Class<?> type);

-

-	/**

-	 * Register the value of a property is to resolve.

-	 * 

-	 * @param type type of property

-	 * @return

-	 */

-	void registerFileResolveType(Class<?> type);

-

-	/**

-	 * Register the value of a property is to resolve.

-	 * 

-	 * @param type type of property

-	 * @return

-	 */

-	void unregisterFileResolveType(Class<?> type);

-	

-	public class Utilities {

-		public static boolean isPropertyName(String name) {	

-			for (String propertyName : ALL_PROPERTIES) {

-				if (propertyName.equalsIgnoreCase(name)) {

-					return true;

-				}

-			}

-			return false;

-		}

-	}

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/InverseValueConverter.java b/org.eclipse.xwt/src/org/eclipse/xwt/InverseValueConverter.java
deleted file mode 100644
index 765cf51..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/InverseValueConverter.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt;

-

-/**

- * The operation to inverse the converter direction.

- * 

- * @author yyang

- * 

- */

-public class InverseValueConverter implements IValueConverter {

-	private IValueConverter source;

-

-	public InverseValueConverter(IValueConverter source) {

-		this.source = source;

-	}

-

-	public Object convertBack(Object value) {

-		return source.convert(value);

-	}

-

-	public Object convert(Object fromObject) {

-		return source.convertBack(fromObject);

-	}

-

-	public Object getFromType() {

-		return source.getToType();

-	}

-

-	public Object getToType() {

-		return source.getFromType();

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/ResourceDictionary.java b/org.eclipse.xwt/src/org/eclipse/xwt/ResourceDictionary.java
deleted file mode 100644
index 54cb4a1..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/ResourceDictionary.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt;

-

-import java.util.HashMap;

-

-public class ResourceDictionary extends HashMap<String, Object> {

-	/**

-	 * Copyright (c) 2006, 2010 Soyatec

-	 */

-	private static final long serialVersionUID = 6913227814340840893L;

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/Tracking.java b/org.eclipse.xwt/src/org/eclipse/xwt/Tracking.java
deleted file mode 100644
index bc85934..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/Tracking.java
+++ /dev/null
@@ -1,16 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-

-package org.eclipse.xwt;

-

-public enum Tracking {

-	DATABINDING, NAME;

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/XWT.java b/org.eclipse.xwt/src/org/eclipse/xwt/XWT.java
deleted file mode 100644
index 441c77c..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/XWT.java
+++ /dev/null
@@ -1,1128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *     Anyware-tech - add multiple loaders
- *******************************************************************************/
-package org.eclipse.xwt;
-
-import java.io.InputStream;
-import java.lang.reflect.Field;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.callback.IBeforeParsingCallback;
-import org.eclipse.xwt.core.IBinding;
-import org.eclipse.xwt.core.TriggerBase;
-import org.eclipse.xwt.databinding.BindingContext;
-import org.eclipse.xwt.databinding.IBindingContext;
-import org.eclipse.xwt.input.ICommand;
-import org.eclipse.xwt.internal.core.UpdateSourceTrigger;
-import org.eclipse.xwt.internal.utils.UserData;
-import org.eclipse.xwt.metadata.IEvent;
-import org.eclipse.xwt.metadata.IMetaclass;
-import org.eclipse.xwt.metadata.IProperty;
-
-/**
- * XWT is the main class of the XWT framework. It provides most of the services
- * in API.
- * 
- * @author yyang
- */
-public class XWT {
-
-	private static List<IXWTInitializer> initializers = new ArrayList<IXWTInitializer>();
-	private static Thread displayThread;
-	private static final Object displayLock = new Object();
-
-	/**
-	 * Get the system logger.
-	 * 
-	 * @returnF
-	 */
-	public static ILogger getLogger() {
-		return XWTLoaderManager.getActive().getLogger();
-	}
-
-	/**
-	 * Create a UI Profile with the provide data and apply it immediately.
-	 * 
-	 * @param profileData
-	 * @return
-	 */
-	public static Object createUIProfile() {
-		return XWTLoaderManager.getActive().createUIProfile();
-	}
-
-	/**
-	 * Put the Profile in place
-	 * 
-	 * @param profile
-	 * @return
-	 */
-	public static boolean applyProfile(Object profile) {
-		return XWTLoaderManager.getActive().applyProfile(profile);
-	}
-
-	/**
-	 * Restore the previous profile
-	 * 
-	 * @return
-	 */
-	public static Object restoreProfile() {
-		return XWTLoaderManager.getActive().restoreProfile();
-	}
-
-	/**
-	 * 
-	 * @param nsmapace
-	 * @param handler
-	 */
-	public static void registerNamespaceHandler(String nsmapace,
-			INamespaceHandler handler) {
-		XWTLoaderManager.getActive()
-				.registerNamespaceHandler(nsmapace, handler);
-	}
-
-	/**
-	 * 
-	 * @param nsmapace
-	 */
-	public static void unregisterNamespaceHandler(String nsmapace) {
-		XWTLoaderManager.getActive().unregisterNamespaceHandler(nsmapace);
-	}
-
-	/**
-	 * 
-	 * @param nsmapace
-	 * @return
-	 */
-	public static INamespaceHandler getNamespaceHandler(String nsmapace) {
-		return XWTLoaderManager.getActive().getNamespaceHandler(nsmapace);
-	}
-
-	/**
-	 * Register an Observable IChangeListener for a given UI element. The second
-	 * registration of the same listener on the same UI Element has no effect.
-	 * 
-	 * @param context
-	 * @param listener
-	 * @return
-	 */
-	public static boolean addObservableChangeListener(Object context,
-			IChangeListener listener) {
-		return XWTLoaderManager.getActive().addObservableChangeListener(
-				context, listener);
-	}
-
-	/**
-	 * Undo the registration of the Observable IChangeListener for a given UI
-	 * element.
-	 * 
-	 * @param context
-	 * @param listener
-	 */
-	public static void removeObservableChangeListener(Object context,
-			IChangeListener listener) {
-		XWTLoaderManager.getActive().removeObservableChangeListener(context,
-				listener);
-	}
-
-	/**
-	 * Find an existing IObservableValue
-	 * 
-	 * @param nsmapace
-	 * @return null if it doesn't exist.
-	 */
-	public static IObservableValue findObservableValue(Object context,
-			Object data, String propertyName) {
-		return XWTLoaderManager.getActive().findObservableValue(context, data,
-				propertyName);
-	}
-
-	/**
-	 * Find an existing IObservableValue
-	 * 
-	 * @param nsmapace
-	 * @return null if it doesn't exist.
-	 */
-	public static IObservableList findObservableList(Object context,
-			Object data, String propertyName) {
-		return XWTLoaderManager.getActive().findObservableList(context, data,
-				propertyName);
-	}
-
-	/**
-	 * Find an existing IObservableValue
-	 * 
-	 * @param nsmapace
-	 * @return null if it doesn't exist.
-	 */
-	public static IObservableSet findObservableSet(Object context, Object data,
-			String propertyName) {
-		return XWTLoaderManager.getActive().findObservableSet(context, data,
-				propertyName);
-	}
-
-	/**
-	 * get or create a IObservableValue
-	 * 
-	 * @param nsmapace
-	 * @return return null or raises an exception XWTException if fails
-	 */
-	public static IObservableValue observableValue(Object context, Object data,
-			String propertyName, UpdateSourceTrigger updateSourceTrigger) {
-		return XWTLoaderManager.getActive().observableValue(context, data,
-				propertyName, updateSourceTrigger);
-	}
-
-	/**
-	 * get or create a IObservable
-	 * 
-	 * @param nsmapace
-	 * @return return null or raises an exception XWTException if fails
-	 */
-	public static IObservable observe(Object context, Object data,
-			String propertyName, UpdateSourceTrigger updateSourceTrigger) {
-		return XWTLoaderManager.getActive().observe(context, data,
-				propertyName, updateSourceTrigger);
-	}
-
-	/**
-	 * get or create a IObservable
-	 * 
-	 * @param nsmapace
-	 * @return return null or raises an exception XWTException if fails
-	 */
-	public static IObservableFactory observableFactory(Object context,
-			String propertyName, UpdateSourceTrigger updateSourceTrigger) {
-		return XWTLoaderManager.getActive().observableFactory(context,
-				propertyName, updateSourceTrigger);
-	}
-
-	/**
-	 * get or create a IObservableValue
-	 * 
-	 * @param nsmapace
-	 * @return return null or raises an exception XWTException if fails
-	 */
-	public static IObservableValue observableValue(Object context, Object data,
-			String propertyName) {
-		return XWTLoaderManager.getActive().observableValue(context, data,
-				propertyName, UpdateSourceTrigger.Default);
-	}
-
-	/**
-	 * Change the system logger
-	 * 
-	 * @param logger
-	 */
-	public static void setLogger(ILogger log) {
-		XWTLoaderManager.getActive().setLogger(log);
-	}
-
-	/**
-	 * Get the name of the element, which is defined by <code>Name</code> or
-	 * <code>x:Name</code>. Return <code>null</code>
-	 * 
-	 * @param object
-	 * @return
-	 */
-	public static String getElementName(Object object) {
-		return XWTLoaderManager.getActive().getElementName(object);
-	}
-
-	/**
-	 * Find a named UI element.
-	 * 
-	 * @param context
-	 *            the start point of research.
-	 * @param name
-	 * @return
-	 */
-	public static Object findElementByName(Object context, String name) {
-		return XWTLoaderManager.getActive().findElementByName(context, name);
-	}
-
-	/**
-	 * Get the DataContext of given element
-	 * 
-	 * @param context
-	 * @return
-	 */
-	public static Object getDataContext(Object element, Class<?> targetType) {
-		Object value = XWTLoaderManager.getActive().getDataContext(element);
-		if (targetType == null || !targetType.isInstance(value)) {
-			if (value instanceof IBinding) {
-				return ((IBinding) value).getValue(targetType);
-			}
-			if (value instanceof IObservableValue) {
-				return ((IObservableValue) value).getValue();
-			}
-		}
-		return value;
-	}
-
-	/**
-	 * Returns the {@link BindingContext} within the upper scope of the control.
-	 * <p>
-	 * Each UI Element may have a local DataBindingContext property. While
-	 * locating DataBindingContext, if the current UI Element has not the
-	 * property, the parent's will be used.
-	 * <p>
-	 * If none is found, a default one will be created as default for the
-	 * current scope
-	 * <p>
-	 * If still not found {@link XWTException} thrown...
-	 * 
-	 * @param element
-	 * @return
-	 */
-	public static IBindingContext getBindingContext(Object element) {
-		return (IBindingContext) XWTLoaderManager.getActive()
-				.getBindingContext(element);
-	}
-
-	/**
-	 * Get the DataContext of given element
-	 * 
-	 * @param context
-	 * @return
-	 */
-	public static Object getDataContext(Object element) {
-		return getDataContext(element, null);
-	}
-
-	/**
-	 * Set the DataContext of given element
-	 * 
-	 * @param context
-	 * @return
-	 */
-	public static void setDataContext(Object element, Object dataContext) {
-		XWTLoaderManager.getActive().setDataContext(UserData.getWidget(element), dataContext);
-	}
-
-	/**
-	 * Get the Triggers of given element
-	 * 
-	 * @param context
-	 * @return
-	 */
-	public static TriggerBase[] getTriggers(Widget element) {
-		return XWTLoaderManager.getActive().getTriggers(element);
-	}
-
-	/**
-	 * Get the Triggers of given element
-	 * 
-	 * @param context
-	 * @return
-	 */
-	public static void setTriggers(Widget element, TriggerBase[] triggers) {
-		XWTLoaderManager.getActive().setTriggers(element, triggers);
-	}
-
-	/**
-	 * Get the CLR (Common Language Runtime) object. If no CLR object is found
-	 * in this element, the research will be propagated in it parent.
-	 * 
-	 * @param widget
-	 * @return
-	 */
-	public static Object getCLR(Object widget) {
-		return UserData.getCLR(widget);
-	}
-
-	/**
-	 * Find the root shell
-	 * 
-	 * @param context
-	 * @return
-	 */
-	public static Shell findShell(Object context) {
-		return UserData.findShell(context);
-	}
-
-	public static IProperty findProperty(Object object, String name) {
-		IMetaclass metaclass = XWTLoaderManager.getActive()
-				.getMetaclass(object);
-		return metaclass.findProperty(name);
-	}
-
-	public static Object findResource(Object object, String name) {
-		return XWTLoaderManager.getActive().findResource(object, name);
-	}
-
-	public static Map<String, Object> getResources(Object object) {
-		return XWTLoaderManager.getActive().getResources(object);
-	}
-
-	public static IEvent findEvent(Object object, String name) {
-		IMetaclass metaclass = XWTLoaderManager.getActive()
-				.getMetaclass(object);
-		return metaclass.findEvent(name);
-	}
-
-	public static IMetaclass getMetaclass(Object object) {
-		return XWTLoaderManager.getActive().getMetaclass(object);
-	}
-
-	/**
-	 * Load the file content. All widget will be created but they are showed.
-	 * This method return the root element.
-	 * 
-	 */
-	static public Object load(URL file) throws Exception {
-		XWT.checkInitialization();
-		return XWTLoaderManager.getActive().load(file);
-	}
-
-	/**
-	 * Load the content from IUIResource. All widget will be created but they
-	 * are showed. This method return the root element.
-	 * 
-	 */
-	static public Object load(IUIResource resource) throws Exception {
-		XWT.checkInitialization();
-		return XWTLoaderManager.getActive().load(resource);
-	}
-
-	/**
-	 * Load the file content. All widget will be created but they are showed.
-	 * This method return the root element.
-	 * 
-	 */
-	static public Object load(URL file, Object dataContext) throws Exception {
-		XWT.checkInitialization();
-		return XWTLoaderManager.getActive().load(file, dataContext);
-	}
-
-	/**
-	 * Load the content from IUIResource. All widget will be created but they
-	 * are showed. This method return the root element.
-	 * 
-	 */
-	static public Object load(IUIResource resource, Object dataContext)
-			throws Exception {
-		XWT.checkInitialization();
-		return XWTLoaderManager.getActive().load(resource, dataContext);
-	}
-
-	/**
-	 * Load the file content under a UI Object. All widget will be created. This
-	 * method returns the root element. The DataContext will be associated to
-	 * the root element.
-	 */
-	static public Object load(Object parent, URL file) throws Exception {
-		return XWTLoaderManager.getActive().load(parent, file);
-	}
-
-	/**
-	 * Load the file content under a UI Object. All widget will be created. This
-	 * method returns the root element. The DataContext will be associated to
-	 * the root element.
-	 * 
-	 */
-	static public Object load(Object parent, IUIResource resource)
-			throws Exception {
-		return XWTLoaderManager.getActive().load(parent, resource);
-	}
-
-	/**
-	 * Load the file content under a UI Object with a DataContext. All widget
-	 * will be created. This method returns the root element. The DataContext
-	 * will be associated to the root element.
-	 */
-	static public Object load(Object parent, URL file, Object dataContext)
-			throws Exception {
-		return XWTLoaderManager.getActive().load(parent, file, dataContext);
-	}
-
-	/**
-	 * Load the content from IUIResource.
-	 * 
-	 * @param stream
-	 * @param input
-	 * @param parsingCallback
-	 *            null if the callback is not necessary
-	 * @return
-	 * @throws Exception
-	 */
-	static public IUIResource loadAsResource(InputStream stream, URL input,
-			IBeforeParsingCallback parsingCallback) throws Exception {
-		return XWTLoaderManager.getActive().loadAsResource(stream, input,
-				parsingCallback);
-	}
-
-	/**
-	 * Load the content from IUIResource.
-	 * 
-	 * @param stream
-	 * @param input
-	 * @param parsingCallback
-	 *            null if the callback is not necessary
-	 * @return
-	 * @throws Exception
-	 */
-	static public IUIResource loadAsResource(InputStream stream, URL input)
-			throws Exception {
-		return XWTLoaderManager.getActive().loadAsResource(stream, input);
-	}
-
-	/**
-	 * Load the content from IUIResource.
-	 * 
-	 * @param input
-	 * @param parsingCallback
-	 *            null if the callback is not necessary
-	 * @return
-	 * @throws Exception
-	 */
-	static public IUIResource loadAsResource(URL input,
-			IBeforeParsingCallback parsingCallback) throws Exception {
-		return XWTLoaderManager.getActive().loadAsResource(null, input,
-				parsingCallback);
-	}
-
-	/**
-	 * Load the content from IUIResource.
-	 * 
-	 * @param input
-	 * @return
-	 * @throws Exception
-	 */
-	static public IUIResource loadAsResource(URL input) throws Exception {
-		return XWTLoaderManager.getActive().loadAsResource(null, input);
-	}
-
-	/**
-	 * Load the file content under a UI Object with a DataContext. All widget
-	 * will be created. This method returns the root element. The DataContext
-	 * will be associated to the root element.
-	 */
-	static public Object load(Object parent, IUIResource resource,
-			Object dataContext) throws Exception {
-		return XWTLoaderManager.getActive().load(parent, resource, dataContext);
-	}
-
-	static public Object load(Object parent, IUIResource resource,
-			Map<String, Object> options) throws Exception {
-		return XWTLoaderManager.getActive().load(parent, resource, options);
-	}
-
-	/**
-	 * Open and show the file content in a new Shell.
-	 */
-	static public void open(final URL url) throws Exception {
-		XWT.checkInitialization();
-		XWTLoaderManager.getActive().open(url);
-	}
-
-	/**
-	 * Open and show the file content in a new Shell.
-	 */
-	static public void open(final Class<?> type) throws Exception {
-		XWT.checkInitialization();
-		XWTLoaderManager.getActive().open(type);
-	}
-
-	/**
-	 * Open and show the file content in a new Shell.
-	 */
-	static public void open(final IUIResource resource) throws Exception {
-		XWT.checkInitialization();
-		XWTLoaderManager.getActive().open(resource);
-	}
-
-	/**
-	 * load the content from a stream with a style, a DataContext and a
-	 * ResourceDictionary. The root elements will be hold by UI Object parent
-	 */
-	static public Object load(Object parent, InputStream stream, URL file,
-			Object dataContext) throws Exception {
-		return XWTLoaderManager.getActive().load(parent, stream, file,
-				dataContext);
-	}
-
-	/**
-	 * load the file content. The corresponding UI element is not yet created
-	 */
-	static public void open(URL url, Object dataContext) throws Exception {
-		XWT.checkInitialization();
-		XWTLoaderManager.getActive().open(url, dataContext);
-	}
-
-	/**
-	 * load the content from IUIResource. The corresponding UI element is not
-	 * yet created
-	 */
-	static public void open(IUIResource resource, Object dataContext)
-			throws Exception {
-		XWT.checkInitialization();
-		XWTLoaderManager.getActive().open(resource, dataContext);
-	}
-
-	/**
-	 * load the file content. The corresponding UI element is not yet created
-	 */
-	static public void open(Class<?> type, Object dataContext) throws Exception {
-		open(type.getResource(type.getSimpleName()
-				+ IConstants.XWT_EXTENSION_SUFFIX), dataContext);
-	}
-
-	/**
-	 * load the file content. The corresponding UI element is not yet created
-	 */
-	static public void open(URL url, Map<String, Object> options)
-			throws Exception {
-		XWT.checkInitialization();
-		XWTLoaderManager.getActive().open(url, options);
-	}
-
-	/**
-	 * load the content from IUIResource. The corresponding UI element is not
-	 * yet created
-	 */
-	static public void open(IUIResource resource, Map<String, Object> options)
-			throws Exception {
-		XWT.checkInitialization();
-		XWTLoaderManager.getActive().open(resource, options);
-	}
-
-	static public Object convertFrom(Class<?> targetType, String string) {
-		return XWTLoaderManager.getActive().convertFrom(targetType, string);
-	}
-
-	static public Object loadWithOptions(URL url, Map<String, Object> options)
-			throws Exception {
-		return XWTLoaderManager.getActive().loadWithOptions(url, options);
-	}
-
-	static public Object loadWithOptions(IUIResource resource,
-			Map<String, Object> options) throws Exception {
-		return XWTLoaderManager.getActive().loadWithOptions(resource, options);
-	}
-
-	/**
-	 * 
-	 * @param stream
-	 * @param url
-	 * @param options
-	 * @return
-	 * @throws Exception
-	 */
-	static public Object load(InputStream stream, URL url) throws Exception {
-		XWT.checkInitialization();
-		return loadWithOptions(stream, url, Collections.EMPTY_MAP);
-	}
-
-	/**
-	 * 
-	 * @param stream
-	 * @param url
-	 * @param options
-	 * @return
-	 * @throws Exception
-	 */
-	static public Object loadWithOptions(InputStream stream, URL url,
-			Map<String, Object> options) throws Exception {
-		XWT.checkInitialization();
-		return XWTLoaderManager.getActive().loadWithOptions(stream, url,
-				options);
-	}
-
-	/**
-	 * Metaclass services to return all registered Metaclasses.
-	 * 
-	 * @param stream
-	 * @param url
-	 * @param loadData
-	 * @return
-	 * @throws Exception
-	 */
-	static public IMetaclass[] getAllMetaclasses() {
-		return XWTLoaderManager.getActive().getAllMetaclasses();
-	}
-
-	/**
-	 * Get the corresponding Metaclass
-	 * 
-	 * @param tagName
-	 * @param ns
-	 *            The namespace
-	 * @return
-	 */
-	static public IMetaclass getMetaclass(String tagName, String ns) {
-		return XWTLoaderManager.getActive().getMetaclass(tagName, ns);
-	}
-
-	/**
-	 * Register a Data converter
-	 * 
-	 * @param converter
-	 * @param type
-	 */
-	public static void registerEventGroup(Class<?> type, IEventGroup eventGroup) {
-		XWTLoaderManager.getActive().registerEventGroup(type, eventGroup);
-	}
-
-	/**
-	 * Register a Data converter
-	 * 
-	 * @param converter
-	 * @param type
-	 */
-	public static void registerConvertor(IConverter converter) {
-		XWTLoaderManager.getActive().registerConvertor(converter);
-	}
-
-	/**
-	 * Register a command to a name
-	 * 
-	 * @param name
-	 * @param command
-	 */
-	public static void registerCommand(String name, ICommand command) {
-		XWTLoaderManager.getActive().registerCommand(name, command);
-	}
-
-	/**
-	 * Add a default style
-	 * 
-	 * @param style
-	 * @return
-	 */
-	public static void addDefaultStyle(IStyle style) {
-		XWTLoaderManager.getActive().addDefaultStyle(style);
-	}
-
-	public static void addDataProviderFactory(String name,
-			IDataProviderFactory dataProviderFactory) {
-		XWTLoaderManager.getActive().addDataProviderFactory(name,
-				dataProviderFactory);
-	}
-
-	public static void removeDataProviderFactory(String name) {
-		XWTLoaderManager.getActive().removeDataProviderFactory(name);
-	}
-
-	public static void removeDataProviderFactory(
-			IDataProviderFactory dataProviderFactory) {
-		XWTLoaderManager.getActive().removeDataProviderFactory(
-				dataProviderFactory);
-	}
-
-	public static Collection<IDataProviderFactory> getDataProviderFactories() {
-		return XWTLoaderManager.getActive().getDataProviderFactories();
-	}
-
-	/**
-	 * Register UI type
-	 * 
-	 * @param javaclass
-	 */
-	static public IMetaclass registerMetaclass(Class<?> type) {
-		return XWTLoaderManager.getActive().registerMetaclass(type);
-	}
-
-	/**
-	 * Register UI type
-	 * 
-	 * @param javaclass
-	 */
-	static public void registerMetaclass(IMetaclass type) {
-		XWTLoaderManager.getActive().registerMetaclass(type);
-	}
-
-	/**
-	 * Get the dynamic property value
-	 * 
-	 * @param javaclass
-	 */
-	static public Object getPropertyValue(Object uiElement, IProperty property) {
-		return XWTLoaderManager.getActive().getPropertyValue(uiElement,
-				property);
-	}
-
-	/**
-	 * Get the dynamic property value
-	 * 
-	 * @param javaclass
-	 */
-	static public Object getPropertyValue(Object uiElement, String propertyName) {
-		IMetaclass metaclass = XWT.getMetaclass(uiElement);
-		IProperty property = metaclass.findProperty(propertyName);
-		if (property == null) {
-			return null;
-		}
-		return XWTLoaderManager.getActive().getPropertyValue(uiElement,
-				property);
-	}
-
-	/**
-	 * Set the dynamic property value
-	 * 
-	 * @param javaclass
-	 */
-	static public void setPropertyValue(Object uiElement, IProperty property,
-			Object value) {
-		XWTLoaderManager.getActive().setPropertyValue(uiElement, property,
-				value);
-	}
-
-	/**
-	 * Set the dynamic property value
-	 * 
-	 * @param javaclass
-	 */
-	static public void setPropertyValue(Object uiElement, String propertyName,
-			Object value) {
-		IMetaclass metaclass = XWT.getMetaclass(uiElement);
-		IProperty property = metaclass.findProperty(propertyName);
-		if (property == null) {
-			throw new XWTException("Property " + propertyName + " not found.");
-		}
-		XWTLoaderManager.getActive().setPropertyValue(uiElement, property,
-				value);
-	}
-
-	/**
-	 * Remove the dynamic property value
-	 * 
-	 * @param javaclass
-	 */
-	static public void removePropertyValue(Object uiElement, IProperty property) {
-		XWTLoaderManager.getActive().removePropertyValue(uiElement, property);
-	}
-
-	/**
-	 * Remove the dynamic property value
-	 * 
-	 * @param javaclass
-	 */
-	static public boolean hasPropertyValue(Object uiElement, IProperty property) {
-		return XWTLoaderManager.getActive().hasPropertyValue(uiElement,
-				property);
-	}
-
-	/**
-	 * Find a Data converter
-	 * 
-	 * @param converter
-	 * @param type
-	 */
-	static public IConverter findConvertor(Class<?> source, Class<?> target) {
-		return XWTLoaderManager.getActive().findConvertor(source, target);
-	}
-
-	/**
-	 * Switch current loading context
-	 * 
-	 */
-	public static void setLoadingContext(ILoadingContext loadingContext) {
-		XWTLoaderManager.getActive().setLoadingContext(loadingContext);
-	}
-
-	/**
-	 * Return current loading context
-	 * 
-	 * @return ILoadingContext
-	 */
-	public static ILoadingContext getLoadingContext() {
-		return XWTLoaderManager.getActive().getLoadingContext();
-	}
-
-	/**
-	 * Add a tracking option
-	 * 
-	 * @param tracking
-	 */
-	static public void addTracking(Tracking tracking) {
-		XWTLoaderManager.getActive().addTracking(tracking);
-	}
-
-	/**
-	 * Test if the tracking on argument is enabled.
-	 * 
-	 * @param tracking
-	 * @return
-	 */
-	static public boolean isTracking(Tracking tracking) {
-		return XWTLoaderManager.getActive().isTracking(tracking);
-	}
-
-	/**
-	 * Get all tracking options
-	 * 
-	 * @return
-	 */
-	static public Set<Tracking> getTrackings() {
-		return XWTLoaderManager.getActive().getTrackings();
-	}
-
-	/**
-	 * Set up the default ICLRFactory
-	 * 
-	 * @param factory
-	 */
-	static public void setCLRFactory(ICLRFactory factory) {
-		XWTLoaderManager.getActive().setCLRFactory(factory);
-	}
-
-	static public boolean checkInitialization() {
-		if (isAllInitializersInitialized()) {
-			return false;
-		}
-		return checkInitialization(-1);
-	}
-
-	static public boolean checkInitialization(long timeoutMillis) {
-		long started = System.currentTimeMillis();
-		while (true) {
-			if (timeoutMillis != -1
-					&& System.currentTimeMillis() - started > timeoutMillis) {
-				return false;
-			}
-
-			if (isAllInitializersInitialized()) {
-				return false;
-			}
-
-			try {
-				Thread.sleep(500);
-			} catch (InterruptedException e) {
-				return false;
-			}
-		}
-	}
-
-	private static boolean isAllInitializersInitialized() {
-		synchronized (initializers) {
-			for (IXWTInitializer initializer : initializers) {
-				if (!initializer.isInitialized()) {
-					return false;
-				}
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * The default CLRFactory.
-	 * 
-	 * @return
-	 */
-	static public ICLRFactory getCLRFactory() {
-		return XWTLoaderManager.getActive().getCLRFactory();
-	}
-
-	/**
-	 * Find a command by name
-	 * 
-	 * @param name
-	 * @return
-	 */
-	static public ICommand getCommand(String name) {
-		return XWTLoaderManager.getActive().getCommand(name);
-	}
-
-	public static IDataProvider findDataProvider(Object dataContext) {
-		return XWTLoaderManager.getActive().findDataProvider(dataContext);
-	}
-
-	static public Realm getRealm() {
-		return XWTLoaderManager.getActive().getRealm();
-	}
-
-	static public boolean isXWTNamespace(String namespace) {
-		return IConstants.XWT_X_NAMESPACE.equals(namespace)
-				|| IConstants.XWT_NAMESPACE.equals(namespace)
-				|| namespace.startsWith(IConstants.XAML_CLR_NAMESPACE_PROTO);
-	}
-
-	/**
-	 * Check if the value of a property is to resolve.
-	 * 
-	 * @param type
-	 *            type of property
-	 * @return
-	 */
-	public static boolean isFileResolveType(Class<?> type) {
-		return XWTLoaderManager.getActive().isFileResolveType(type);
-	}
-
-	/**
-	 * Register the value of a property is to resolve.
-	 * 
-	 * @param type
-	 *            type of property
-	 * @return
-	 */
-	public static void registerFileResolveType(Class<?> type) {
-		XWTLoaderManager.getActive().registerFileResolveType(type);
-	}
-
-	/**
-	 * Register the value of a property is to resolve.
-	 * 
-	 * @param type
-	 *            type of property
-	 * @return
-	 */
-	public static void unregisterFileResolveType(Class<?> type) {
-		XWTLoaderManager.getActive().unregisterFileResolveType(type);
-	}
-
-	static class DisplayThread extends Thread implements Listener {
-		protected long startTime = -1;
-		protected boolean toStop = false;
-		protected Runnable runnable;
-
-		public DisplayThread(Runnable runnable) {
-			this.runnable = runnable;
-		}
-
-		public void handleEvent(Event event) {
-		}
-	}
-
-	/**
-	 * Run in UI context.
-	 * 
-	 * @param runnable
-	 */
-	public static void runOnUIThread(final Runnable runnable) {
-		String platform = SWT.getPlatform();
-		if (platform.startsWith("win") || platform.endsWith("cocoa") || platform.startsWith("rap")) {
-			XWTLoaderManager.getDefault();
-			runnable.run();
-		} else if (platform.endsWith("gtk")) {
-			synchronized (displayLock) {
-				if (displayThread == null || !displayThread.isAlive()) {
-					try {
-						Field field = Display.class.getDeclaredField("Default");
-						if (field != null) {
-							field.setAccessible(true);
-							Display defaultDisplay = (Display) field.get(null);
-							if (defaultDisplay != null) {
-								displayThread = defaultDisplay.getThread();
-							}
-						}
-					} catch (Exception e) {
-					}
-				}
-
-				if (displayThread == null || !displayThread.isAlive()) {
-					displayThread = new Thread() {
-						private long startTime = -1;
-						private Display display;
-						private boolean toStop = false;
-						private boolean ignoreNotification = false;
-						protected Runnable runnable = new Runnable() {
-							public void run() {
-								if (ignoreNotification) {
-									startTime = -1;
-									return;
-								}
-								if (startTime == -1) {
-									startTime = System.currentTimeMillis();
-								} else {
-									if ((System.currentTimeMillis() - startTime) > 10000
-											&& display.getActiveShell() == null
-											&& display.getShells().length == 0) {
-										toStop = true;
-										display.wake();
-									} else {
-										startTime = System.currentTimeMillis();
-									}
-								}
-							}
-						};
-
-						@Override
-						public void run() {
-							// Set default XWT ICLRFactory
-							XWTLoaderManager.getDefault();
-							display = Display.getDefault();
-							runnable.run();
-							while (true) {
-								if (!display.readAndDispatch()) {
-									display.timerExec(10000, runnable);
-									display.sleep();
-									ignoreNotification = true;
-								}
-								if (toStop) {
-									break;
-								}
-								startTime = -1;
-							}
-						}
-					};
-					displayThread.start();
-				} else {
-					XWTLoaderManager.getDefault();
-					XWT.checkInitialization();
-					Display display = Display.findDisplay(displayThread);
-					if (display != null) {
-						display.syncExec(runnable);
-					}
-				}
-			}
-		} else {
-			throw new UnsupportedOperationException();
-		}
-	}
-
-	public static void addInitializer(IXWTInitializer initializer) {
-		synchronized (initializers) {
-			if (!XWTLoaderManager.isStarted()) {
-				initializers.add(initializer);
-			}
-		}
-	}
-
-	static List<IXWTInitializer> getInitializers() {
-		return initializers;
-	}
-
-	public static Object findParent(Object element, Class<?> type) {
-		Widget widget = UserData.getWidget(element);
-		if (widget == null) {
-			return null;
-		}
-		return UserData.findParent(widget, type);
-	}
-
-	static void runInitializers(IXWTLoader loader) {
-		synchronized (initializers) {
-			for (IXWTInitializer initializer : XWT.getInitializers()) {
-				initializer.initialize(loader);
-			}
-		}
-	}
-}
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/XWTException.java b/org.eclipse.xwt/src/org/eclipse/xwt/XWTException.java
deleted file mode 100644
index 65caa50..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/XWTException.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt;

-

-public class XWTException extends RuntimeException {

-	/**

-	 * Copyright (c) 2006, 2010 Soyatec

-	 */

-	private static final long serialVersionUID = 7568262060419780948L;

-

-	public XWTException(String message, Throwable cause) {

-		super(message, cause);

-	}

-

-	public XWTException(String message) {

-		super(message);

-	}

-

-	public XWTException(Throwable cause) {

-		super(cause);

-	}

-

-	public XWTException() {

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/XWTLoader.java b/org.eclipse.xwt/src/org/eclipse/xwt/XWTLoader.java
deleted file mode 100644
index 0e3d782..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/XWTLoader.java
+++ /dev/null
@@ -1,1984 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Soyatec - initial API and implementation

- *     Anyware-tech - add multiple loaders

- *******************************************************************************/

-package org.eclipse.xwt;

-

-import java.io.InputStream;

-import java.lang.reflect.InvocationTargetException;

-import java.net.URL;

-import java.util.ArrayList;

-import java.util.Collection;

-import java.util.Collections;

-import java.util.Date;

-import java.util.HashMap;

-import java.util.Map;

-import java.util.Set;

-import java.util.Stack;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.core.databinding.conversion.NumberToStringConverter;

-import org.eclipse.core.databinding.conversion.StringToNumberConverter;

-import org.eclipse.core.databinding.observable.IChangeListener;

-import org.eclipse.core.databinding.observable.IObservable;

-import org.eclipse.core.databinding.observable.Realm;

-import org.eclipse.core.databinding.observable.list.IObservableList;

-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;

-import org.eclipse.core.databinding.observable.set.IObservableSet;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.jface.databinding.swt.SWTObservables;

-import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;

-import org.eclipse.jface.databinding.viewers.ObservableSetContentProvider;

-import org.eclipse.jface.internal.databinding.swt.DateTimeSelectionProperty;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.custom.ControlEditor;

-import org.eclipse.swt.custom.TableEditor;

-import org.eclipse.swt.events.DisposeEvent;

-import org.eclipse.swt.events.DisposeListener;

-import org.eclipse.swt.graphics.Image;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.swt.widgets.ExpandItem;

-import org.eclipse.swt.widgets.Group;

-import org.eclipse.swt.widgets.IME;

-import org.eclipse.swt.widgets.Label;

-import org.eclipse.swt.widgets.Link;

-import org.eclipse.swt.widgets.List;

-import org.eclipse.swt.widgets.Listener;

-import org.eclipse.swt.widgets.Menu;

-import org.eclipse.swt.widgets.MenuItem;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.swt.widgets.TableItem;

-import org.eclipse.swt.widgets.TreeItem;

-import org.eclipse.xwt.animation.BackEase;

-import org.eclipse.xwt.animation.BeginStoryboard;

-import org.eclipse.xwt.animation.BounceEase;

-import org.eclipse.xwt.animation.CircleEase;

-import org.eclipse.xwt.animation.ColorAnimation;

-import org.eclipse.xwt.animation.CubicEase;

-import org.eclipse.xwt.animation.DoubleAnimation;

-import org.eclipse.xwt.animation.Drawing;

-import org.eclipse.xwt.animation.ElasticEase;

-import org.eclipse.xwt.animation.ExponentialEase;

-import org.eclipse.xwt.animation.FloatAnimation;

-import org.eclipse.xwt.animation.IntAnimation;

-import org.eclipse.xwt.animation.PauseStoryboard;

-import org.eclipse.xwt.animation.PointAnimation;

-import org.eclipse.xwt.animation.PowerEase;

-import org.eclipse.xwt.animation.QuadraticEase;

-import org.eclipse.xwt.animation.QuarticEase;

-import org.eclipse.xwt.animation.QuinticEase;

-import org.eclipse.xwt.animation.RectangleAnimation;

-import org.eclipse.xwt.animation.ResumeStoryboard;

-import org.eclipse.xwt.animation.SineEase;

-import org.eclipse.xwt.animation.SizeAnimation;

-import org.eclipse.xwt.animation.StopStoryboard;

-import org.eclipse.xwt.animation.Storyboard;

-import org.eclipse.xwt.callback.IBeforeParsingCallback;

-import org.eclipse.xwt.collection.CollectionViewSource;

-import org.eclipse.xwt.converters.BindingToObject;

-import org.eclipse.xwt.converters.CollectionToBoolean;

-import org.eclipse.xwt.converters.CollectionToInteger;

-import org.eclipse.xwt.converters.DateToString;

-import org.eclipse.xwt.converters.EnumToString;

-import org.eclipse.xwt.converters.IStatusToBoolean;

-import org.eclipse.xwt.converters.IStatusToString;

-import org.eclipse.xwt.converters.ListToIObservableCollection;

-import org.eclipse.xwt.converters.ListToSet;

-import org.eclipse.xwt.converters.ObjectToBoolean;

-import org.eclipse.xwt.converters.ObjectToISelection;

-import org.eclipse.xwt.converters.ObjectToString;

-import org.eclipse.xwt.converters.SelectionToBoolean;

-import org.eclipse.xwt.converters.SetToIObservableCollection;

-import org.eclipse.xwt.converters.StringToBoolean;

-import org.eclipse.xwt.converters.StringToChar;

-import org.eclipse.xwt.converters.StringToColor;

-import org.eclipse.xwt.converters.StringToDoubleArray;

-import org.eclipse.xwt.converters.StringToDuration;

-import org.eclipse.xwt.converters.StringToFont;

-import org.eclipse.xwt.converters.StringToFormAttachment;

-import org.eclipse.xwt.converters.StringToIValidationRule;

-import org.eclipse.xwt.converters.StringToIValueConverter;

-import org.eclipse.xwt.converters.StringToImage;

-import org.eclipse.xwt.converters.StringToIntArray;

-import org.eclipse.xwt.converters.StringToInteger;

-import org.eclipse.xwt.converters.StringToKeySpline;

-import org.eclipse.xwt.converters.StringToKeyTime;

-import org.eclipse.xwt.converters.StringToPoint;

-import org.eclipse.xwt.converters.StringToRectangle;

-import org.eclipse.xwt.converters.StringToRepeatBehavior;

-import org.eclipse.xwt.converters.StringToTimeSpan;

-import org.eclipse.xwt.converters.StringToType;

-import org.eclipse.xwt.converters.StringToURL;

-import org.eclipse.xwt.core.Condition;

-import org.eclipse.xwt.core.DataTrigger;

-import org.eclipse.xwt.core.EventTrigger;

-import org.eclipse.xwt.core.IBinding;

-import org.eclipse.xwt.core.IUserDataConstants;

-import org.eclipse.xwt.core.MultiDataTrigger;

-import org.eclipse.xwt.core.MultiTrigger;

-import org.eclipse.xwt.core.RadioEventGroup;

-import org.eclipse.xwt.core.Setter;

-import org.eclipse.xwt.core.Style;

-import org.eclipse.xwt.core.Trigger;

-import org.eclipse.xwt.core.TriggerBase;

-import org.eclipse.xwt.core.ValidationStatus;

-import org.eclipse.xwt.databinding.BindingContext;

-import org.eclipse.xwt.databinding.IBindingContext;

-import org.eclipse.xwt.dataproviders.ObjectDataProvider;

-import org.eclipse.xwt.input.ICommand;

-import org.eclipse.xwt.internal.core.BindingExpressionPath;

-import org.eclipse.xwt.internal.core.Core;

-import org.eclipse.xwt.internal.core.MetaclassManager;

-import org.eclipse.xwt.internal.core.MultiBinding;

-import org.eclipse.xwt.internal.core.ScopeKeeper;

-import org.eclipse.xwt.internal.core.ScopeManager;

-import org.eclipse.xwt.internal.core.UIResource;

-import org.eclipse.xwt.internal.core.UpdateSourceTrigger;

-import org.eclipse.xwt.internal.utils.ObjectUtil;

-import org.eclipse.xwt.internal.utils.UserData;

-import org.eclipse.xwt.javabean.ResourceLoaderFactory;

-import org.eclipse.xwt.javabean.ValueConvertorRegister;

-import org.eclipse.xwt.javabean.metadata.BindingMetaclass;

-import org.eclipse.xwt.javabean.metadata.ComboBoxCellEditorMetaclass;

-import org.eclipse.xwt.javabean.metadata.ExpandItemHeightAction;

-import org.eclipse.xwt.javabean.metadata.TableEditorMetaclass;

-import org.eclipse.xwt.javabean.metadata.TableViewerColumnMetaClass;

-import org.eclipse.xwt.javabean.metadata.properties.AbstractProperty;

-import org.eclipse.xwt.javabean.metadata.properties.ColumnViewerColumnsProperty;

-import org.eclipse.xwt.javabean.metadata.properties.DataProperty;

-import org.eclipse.xwt.javabean.metadata.properties.DynamicBeanProperty;

-import org.eclipse.xwt.javabean.metadata.properties.DynamicProperty;

-import org.eclipse.xwt.javabean.metadata.properties.InputBeanProperty;

-import org.eclipse.xwt.javabean.metadata.properties.MultiSelectionBeanProperty;

-import org.eclipse.xwt.javabean.metadata.properties.PropertiesConstants;

-import org.eclipse.xwt.javabean.metadata.properties.SingleSelectionBeanProperty;

-import org.eclipse.xwt.javabean.metadata.properties.StyleProperty;

-import org.eclipse.xwt.javabean.metadata.properties.TableColumnEditorProperty;

-import org.eclipse.xwt.javabean.metadata.properties.TableEditorDynamicProperty;

-import org.eclipse.xwt.javabean.metadata.properties.TableItemEditorProperty;

-import org.eclipse.xwt.javabean.metadata.properties.TableItemProperty;

-import org.eclipse.xwt.javabean.metadata.properties.TableViewerColumnDynamicProperty;

-import org.eclipse.xwt.javabean.metadata.properties.TableViewerColumnImageProperty;

-import org.eclipse.xwt.javabean.metadata.properties.TableViewerColumnTextProperty;

-import org.eclipse.xwt.javabean.metadata.properties.TableViewerColumnWidthProperty;

-import org.eclipse.xwt.javabean.metadata.properties.TriggersProperty;

-import org.eclipse.xwt.jface.ComboBoxCellEditor;

-import org.eclipse.xwt.jface.DefaultCellModifier;

-import org.eclipse.xwt.jface.JFaceInitializer;

-import org.eclipse.xwt.jface.JFacesHelper;

-import org.eclipse.xwt.jface.ObservableTreeContentProvider;

-import org.eclipse.xwt.jface.ViewerFilter;

-import org.eclipse.xwt.metadata.DefaultLoadingType;

-import org.eclipse.xwt.metadata.DelegateProperty;

-import org.eclipse.xwt.metadata.ILoadingType;

-import org.eclipse.xwt.metadata.IMetaclass;

-import org.eclipse.xwt.metadata.IProperty;

-import org.eclipse.xwt.metadata.IValueLoading;

-import org.eclipse.xwt.utils.ResourceManager;

-

-/**

- * Default XWT loader

- * 

- * @author yyang (yves.yang@soyatec.com) jliu (jin.liu@soyatec.com)

- */

-public class XWTLoader implements IXWTLoader {

-	// Declarations

-	private Stack<Core> cores;

-

-	public Realm realm;

-

-	public XWTLoader() {

-		initialize();

-	}

-

-	public Object createUIProfile() {

-		Core core = new Core(new ResourceLoaderFactory(), this);

-		cores.push(core);

-		return core;

-	}

-

-	public boolean applyProfile(Object profile) {

-		if (profile instanceof Core) {

-			if (cores.peek() == profile) {

-				return false;

-			}

-			cores.push((Core) profile);

-			return true;

-		}

-		throw new XWTException("Wrong UI Profile.");

-	}

-

-	public Object restoreProfile() {

-		if (cores.size() > 1) {

-			return cores.pop();

-		}

-		throw new XWTException("No user-defined UI Profile.");

-	}

-

-	public Realm getRealm() {

-		if (realm != null)

-			return realm;

-		Display display = Display.getCurrent();

-		if (display == null) {

-			display = Display.getDefault();

-		}

-		return SWTObservables.getRealm(display);

-	}

-

-	protected Core getCurrentCore() {

-		return cores.peek();

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#getLogger()

-	 */

-	public ILogger getLogger() {

-		return getCurrentCore().getLogger();

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#setLogger(org.eclipse.xwt.ILogger)

-	 */

-	public void setLogger(ILogger log) {

-		getCurrentCore().setLogger(log);

-	}

-

-	/**

-	 * Get the dynamic property value

-	 * 

-	 * @param javaclass

-	 */

-	public Object getPropertyValue(Object uiElement, IProperty property) {

-		return UserData.getLocalData(uiElement, property);

-	}

-

-	/**

-	 * Set the dynamic property value

-	 * 

-	 * @param javaclass

-	 */

-	public void setPropertyValue(Object uiElement, IProperty property,

-			Object value) {

-		UserData.setLocalData(uiElement, property, value);

-	}

-

-	/**

-	 * Remove the dynamic property value

-	 * 

-	 * @param javaclass

-	 */

-	public void removePropertyValue(Object uiElement, IProperty property) {

-		UserData.removeLocalData(uiElement, property);

-	}

-

-	/**

-	 * Remove the dynamic property value

-	 * 

-	 * @param javaclass

-	 */

-	public boolean hasPropertyValue(Object uiElement, IProperty property) {

-		return UserData.hasLocalData(uiElement, property);

-	}

-

-	/**

-	 * Register an Observable IChangeListener for a given UI element. The second

-	 * registration of the same listener on the same UI Element has no effect.

-	 * 

-	 * @param context

-	 * @param listener

-	 * @return <code>true</code> the listener is added, <code>false</code> if

-	 *         the listener already exists

-	 */

-	public boolean addObservableChangeListener(Object control,

-			IChangeListener listener) {

-		ScopeKeeper scope = UserData.findScopeKeeper(control);

-		if (scope != null) {

-			return scope.addChangeListener(listener);

-		}

-		return false;

-	}

-

-	/**

-	 * Undo the registration of the Observable IChangeListener for a given UI

-	 * element.

-	 * 

-	 * @param context

-	 * @param listener

-	 */

-	public void removeObservableChangeListener(Object control,

-			IChangeListener listener) {

-		ScopeKeeper scope = UserData.findScopeKeeper(control);

-		if (scope != null) {

-			scope.removeChangeListener(listener);

-		}

-	}

-

-	/**

-	 * 

-	 * @param nsmapace

-	 * @return

-	 */

-	public IObservable observe(Object control, Object data, String fullPath,

-			UpdateSourceTrigger updateSourceTrigger) {

-		return ScopeManager.observe(control, data, new BindingExpressionPath(

-				fullPath), updateSourceTrigger);

-	}

-

-	/**

-	 * 

-	 * @param nsmapace

-	 * @return

-	 */

-	public IObservableFactory observableFactory(Object control,

-			String fullPath, UpdateSourceTrigger updateSourceTrigger) {

-		return ScopeManager.observableFactory(control,

-				new BindingExpressionPath(fullPath), updateSourceTrigger);

-	}

-

-	/**

-	 * 

-	 * @param nsmapace

-	 * @return

-	 */

-	public IObservableList findObservableList(Object context, Object data,

-			String fullPath) {

-		return ScopeManager.findObservableList(context, null, data, fullPath);

-	}

-

-	/**

-	 * 

-	 * @param nsmapace

-	 * @return

-	 */

-	public IObservableSet findObservableSet(Object context, Object data,

-			String fullPath) {

-		return ScopeManager.findObservableSet(context, null, data, fullPath);

-	}

-

-	/**

-	 * 

-	 * @param nsmapace

-	 * @return

-	 */

-	public IObservableValue observableValue(Object control, Object data,

-			String fullPath, UpdateSourceTrigger updateSourceTrigger) {

-		return ScopeManager.observableValue(control, data, fullPath,

-				updateSourceTrigger);

-	}

-

-	/**

-	 * 

-	 * @param nsmapace

-	 * @return

-	 */

-	public IObservableValue findObservableValue(Object context, Object data,

-			String fullPath) {

-		return ScopeManager.findObservableValue(context, null, data, fullPath);

-	}

-

-	/**

-	 * 

-	 */

-	public Object findResource(Object object, String key) {

-		return UserData.findResource(object, key);

-	}

-

-	public Map<String, Object> getResources(Object object) {

-		return UserData.getLocalResources(object);

-	}

-

-	/**

-	 * 

-	 * @param nsmapace

-	 * @param handler

-	 */

-	public void registerNamespaceHandler(String nsmapace,

-			INamespaceHandler handler) {

-		getCurrentCore().registerNamespaceHandler(nsmapace, handler);

-	}

-

-	/**

-	 * 

-	 * @param nsmapace

-	 */

-	public void unregisterNamespaceHandler(String nsmapace) {

-		getCurrentCore().unregisterNamespaceHandler(nsmapace);

-	}

-

-	/**

-	 * 

-	 * @param nsmapace

-	 * @return

-	 */

-	public INamespaceHandler getNamespaceHandler(String nsmapace) {

-		for (int i = cores.size() - 1; i >= 0; i--) {

-			Core core = cores.get(i);

-			INamespaceHandler handler = core.getNamespaceHandler(nsmapace);

-			if (handler != null) {

-				return handler;

-			}

-		}

-		return null;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#getNamespace(java.lang.Class)

-	 */

-	public String getNamespace(Class<?> javaclass) {

-		if (getMetaclass(javaclass) != null) {

-			return IConstants.XWT_NAMESPACE;

-		}

-		Package javaPackage = javaclass.getPackage();

-		if (javaPackage == null) {

-			return IConstants.XAML_CLR_NAMESPACE_PROTO;

-		}

-		return IConstants.XAML_CLR_NAMESPACE_PROTO

-				+ javaclass.getPackage().getName();

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#getElementName(java.lang.Object)

-	 */

-	public String getElementName(Object object) {

-		return UserData.getElementName(object);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#findElementByName(org.eclipse.swt.widgets

-	 * .Widget, java.lang.String)

-	 */

-	public Object findElementByName(Object context, String name) {

-		return UserData.findElementByName(context, name);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#getDataBindingContext(java.lang.Object,

-	 * java.lang.String)

-	 */

-	public IBindingContext getBindingContext(Object element) {

-		IBindingContext dataBindingContext = UserData

-				.getBindingContext(element);

-		if (dataBindingContext == null) {

-			dataBindingContext = UserData.createBindingContext(element);

-		}

-		return dataBindingContext;

-	}

-

-	public ICLRFactory getCLRFactory() {

-		for (int i = cores.size() - 1; i >= 0; i--) {

-			Core core = cores.get(i);

-			ICLRFactory factory = core.getCLRFactory();

-			if (factory != null) {

-				return factory;

-			}

-		}

-		return null;

-	}

-

-	public void setCLRFactory(ICLRFactory clrFactory) {

-		cores.peek().setCLRFactory(clrFactory);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#getDataContext(org.eclipse.swt.widgets.

-	 * Widget)

-	 */

-	public Object getDataContext(Object element) {

-		return UserData.getDataContext(element);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#getDataContext(org.eclipse.swt.widgets.

-	 * Widget)

-	 */

-	public TriggerBase[] getTriggers(Object element) {

-		return UserData.getTriggers(element);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#setDataBindingContext(java.lang.Object,

-	 * java.lang.Object)

-	 */

-	public void setDataBindingContext(Object widget, Object dataBindingContext) {

-		UserData.setBindingContext(widget, dataBindingContext);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#setDataContext(org.eclipse.swt.widgets.

-	 * Widget, java.lang.Object)

-	 */

-	public void setDataContext(Object widget, Object dataContext) {

-		UserData.setDataContext(widget, dataContext);

-	}

-

-	/**

-	 * Get the Triggers of given element

-	 * 

-	 * @param context

-	 * @return

-	 */

-	public void setTriggers(Object element, TriggerBase[] triggers) {

-		UserData.setTriggers(element, triggers);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.IXWTLoader#findCompositeParent(org.eclipse.swt.widgets

-	 * .Widget)

-	 */

-	public Composite findCompositeParent(Object context) {

-		return UserData.findCompositeParent(context);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#getMetaclass(java.lang.Object)

-	 */

-	public IMetaclass getMetaclass(Object object) {

-		for (int i = cores.size() - 1; i >= 0; i--) {

-			Core core = cores.get(i);

-			IMetaclass metaclass = core.findMetaclass(object);

-			if (metaclass != null) {

-				return metaclass;

-			}

-		}

-		Class<?> javaClass = null;

-		if (object instanceof Class<?>) {

-			javaClass = (Class<?>) object;

-		} else {

-			javaClass = object.getClass();

-		}

-		Class<?> superclass = javaClass.getSuperclass();

-		IMetaclass superMetaclass = null;

-		if (superclass != null) {

-			superMetaclass = getMetaclass(superclass);

-		}

-		return getCurrentCore().registerMetaclass(javaClass,

-				IConstants.XWT_NAMESPACE, superMetaclass);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#load(java.net.URL)

-	 */

-	public Object load(URL file) throws Exception {

-		return loadWithOptions(file, Collections.EMPTY_MAP);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#load(java.net.URL, java.lang.Object)

-	 */

-	public Object load(URL file, Object dataContext) throws Exception {

-		return load(null, file, dataContext);

-	}

-

-	public Object load(IUIResource resource, Object dataContext)

-			throws Exception {

-		return load(null, resource, dataContext);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#load(org.eclipse.swt.widgets.Composite,

-	 * java.net.URL)

-	 */

-	public Object load(Object parent, URL file) throws Exception {

-		HashMap<String, Object> options = new HashMap<String, Object>();

-		options.put(CONTAINER_PROPERTY, parent);

-		return loadWithOptions(file, options);

-	}

-

-	public Object load(Object parent, IUIResource resource) throws Exception {

-		HashMap<String, Object> options = new HashMap<String, Object>();

-		options.put(CONTAINER_PROPERTY, parent);

-		return loadWithOptions(resource, options);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#load(org.eclipse.swt.widgets.Composite,

-	 * java.net.URL, java.lang.Object)

-	 */

-	public Object load(Object parent, URL file, Object dataContext)

-			throws Exception {

-		HashMap<String, Object> options = new HashMap<String, Object>();

-		options.put(CONTAINER_PROPERTY, parent);

-		options.put(DATACONTEXT_PROPERTY, dataContext);

-		return loadWithOptions(file, options);

-	}

-

-	public Object load(Object parent, IUIResource resource, Object dataContext)

-			throws Exception {

-		HashMap<String, Object> options = new HashMap<String, Object>();

-		options.put(CONTAINER_PROPERTY, parent);

-		options.put(DATACONTEXT_PROPERTY, dataContext);

-		return loadWithOptions(resource, options);

-	}

-

-	public Object load(Object parent, IUIResource resource,

-			Map<String, Object> options) throws Exception {

-		if (options.isEmpty()) {

-			options = new HashMap<String, Object>();

-		}

-		options.put(CONTAINER_PROPERTY, parent);

-		return loadWithOptions(resource, options);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#load(org.eclipse.swt.widgets.Composite,

-	 * java.lang.Class, java.lang.Object)

-	 */

-	public Object load(Object parent, Class<?> viewType, Object dataContext)

-			throws Exception {

-		HashMap<String, Object> options = new HashMap<String, Object>();

-		options.put(CONTAINER_PROPERTY, parent);

-		options.put(DATACONTEXT_PROPERTY, dataContext);

-		return loadWithOptions(viewType, options);

-	}

-

-	protected Map<String, Object> prepareOptions(Map<String, Object> options,

-			URL url) {

-		Boolean disabledStyle = (Boolean) options.get(DISABLE_STYLES_PROPERTY);

-		if (!Boolean.TRUE.equals(disabledStyle)) {

-			Collection<IStyle> defaultStyles = getDefaultStyles();

-			Object styles = options.get(DEFAULT_STYLES_PROPERTY);

-			if (styles != null) {

-				if (styles instanceof IStyle) {

-					defaultStyles.add((IStyle) styles);

-				} else if (styles instanceof Collection) {

-					for (IStyle style : (Collection<IStyle>) styles) {

-						defaultStyles.add(style);

-					}

-				} else if (styles instanceof Object[]) {

-					for (Object element : (Object[]) styles) {

-						if (element instanceof IStyle) {

-							defaultStyles.add((IStyle) element);

-						} else {

-							throw new XWTException(

-									"IStyle is expected in [styles] paramters.");

-						}

-					}

-				}

-				options.remove(DEFAULT_STYLES_PROPERTY);

-			}

-			if (!defaultStyles.isEmpty()) {

-				ResourceDictionary dictionary = (ResourceDictionary) options

-						.get(RESOURCE_DICTIONARY_PROPERTY);

-				if (dictionary == null) {

-					dictionary = new ResourceDictionary();

-					if (options == Collections.EMPTY_MAP) {

-						options = new HashMap<String, Object>();

-					}

-					options.put(RESOURCE_DICTIONARY_PROPERTY, dictionary);

-				}

-				dictionary.put(Core.DEFAULT_STYLES_KEY, defaultStyles);

-			}

-		}

-		// Register URL property

-		if (options == Collections.EMPTY_MAP) {

-			options = new HashMap<String, Object>();

-		}

-		options.put(URL_PROPERTY, url);

-		return options;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#loadWithOptions(java.lang.Class,

-	 * java.util.Map)

-	 */

-	public Object loadWithOptions(Class<?> viewType, Map<String, Object> options)

-			throws Exception {

-		ILoadingContext context = getLoadingContext();

-		try {

-			setLoadingContext(new DefaultLoadingContext(

-					viewType.getClassLoader()));

-			options = prepareOptions(options, null);

-			return loadWithOptions(

-					viewType.getResource(viewType.getSimpleName() + ".xwt"),

-					options);

-		} finally {

-			setLoadingContext(context);

-		}

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#open(java.lang.Class)

-	 */

-	public void open(Class<?> type) throws Exception {

-		open(type.getResource(type.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX), Collections.EMPTY_MAP);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#open(java.net.URL)

-	 */

-	public void open(URL url) throws Exception {

-		open(url, Collections.EMPTY_MAP);

-	}

-

-	public void open(IUIResource resource) throws Exception {

-		open(resource, Collections.EMPTY_MAP);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#load(org.eclipse.swt.widgets.Composite,

-	 * java.io.InputStream, java.net.URL, java.lang.Object)

-	 */

-	public Object load(Object parent, InputStream stream, URL file,

-			Object dataContext) throws Exception {

-		HashMap<String, Object> options = new HashMap<String, Object>();

-		options.put(CONTAINER_PROPERTY, parent);

-		options.put(DATACONTEXT_PROPERTY, dataContext);

-		return loadWithOptions(stream, file, options);

-	}

-

-	public IUIResource loadAsResource(InputStream stream, URL input)

-			throws Exception {

-		return loadAsResource(stream, input, null);

-	}

-

-	public IUIResource loadAsResource(InputStream stream, URL input,

-			IBeforeParsingCallback parsingCallback) throws Exception {

-		return getCurrentCore().loadAsResource(stream, input, parsingCallback);

-	}

-

-	public IUIResource loadAsResource(URL input) throws Exception {

-		return loadAsResource(null, input, null);

-	}

-

-	public IUIResource loadAsResource(URL input,

-			IBeforeParsingCallback parsingCallback) throws Exception {

-		return loadAsResource(null, input, parsingCallback);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#open(java.net.URL, java.lang.Object)

-	 */

-	public void open(URL url, Object dataContext) throws Exception {

-		HashMap<String, Object> options = new HashMap<String, Object>();

-		options.put(DATACONTEXT_PROPERTY, dataContext);

-		open(url, options);

-	}

-

-	public void open(IUIResource resource, Object dataContext) throws Exception {

-		HashMap<String, Object> options = new HashMap<String, Object>();

-		options.put(DATACONTEXT_PROPERTY, dataContext);

-		open(resource, options);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#open(java.lang.Class, java.lang.Object)

-	 */

-	public void open(Class<?> type, Object dataContext) throws Exception {

-		open(type.getResource(type.getSimpleName()

-				+ IConstants.XWT_EXTENSION_SUFFIX), dataContext);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#open(java.net.URL, java.util.Map)

-	 */

-	public void open(final URL url, final Map<String, Object> options)

-			throws Exception {

-		if (SWT.getPlatform().startsWith("win")) {

-			if (Display.getCurrent() == null) {

-				new Display();

-			}

-			Realm.runWithDefault(getRealm(), new Runnable() {

-				public void run() {

-					try {

-						if (url == null) {

-							throw new XWTException("UI Resource is not found.");

-						}

-						Object element = loadWithOptions(url, options);

-						Shell shell = XWT.findShell(element);

-						if (shell == null) {

-							throw new XWTException(

-									"Root element must be a control.");

-						}

-						shell.addDisposeListener(new DisposeListener() {

-							public void widgetDisposed(DisposeEvent e) {

-								Shell[] shells = Display.getCurrent()

-										.getShells();

-								if (shells.length == 0) {

-									ResourceManager.resources.dispose();

-								}

-							}

-						});

-						shell.open();

-						while (!shell.isDisposed()) {

-							if (!shell.getDisplay().readAndDispatch())

-								shell.getDisplay().sleep();

-						}

-					} catch (Exception e) {

-						e.printStackTrace();

-					}

-				}

-			});

-			return;

-		}

-		Display defaultDisplay = Display.getDefault();

-		if (Thread.currentThread() == defaultDisplay.getThread()) {

-			Realm.runWithDefault(getRealm(), new Runnable() {

-				public void run() {

-					try {

-						if (url == null) {

-							throw new XWTException("UI Resource is not found.");

-						}

-						Object element = loadWithOptions(url, options);

-						Shell shell = XWT.findShell(element);

-						shell.open();

-						long startTime = -1;

-						while (true) {

-							if (!Display.getDefault().readAndDispatch()) {

-								Display.getDefault().sleep();

-							}

-							Shell[] shells = Display.getDefault().getShells();

-							if (shells.length == 0) {

-								if (startTime == -1) {

-									startTime = System.currentTimeMillis();

-								} else if ((System.currentTimeMillis() - startTime) > 1000) {

-									break;

-								}

-							} else {

-								startTime = -1;

-							}

-						}

-					} catch (Exception e) {

-						e.printStackTrace();

-					}

-				}

-			});

-		} else {

-			defaultDisplay.asyncExec(new Runnable() {

-				public void run() {

-					Realm.runWithDefault(getRealm(), new Runnable() {

-						public void run() {

-							try {

-								if (url == null) {

-									throw new XWTException(

-											"UI Resource is not found.");

-								}

-								Object element = loadWithOptions(url, options);

-								Shell shell = XWT.findShell(element);

-								if (shell == null) {

-									throw new XWTException(

-											"Root element must be a control.");

-								}

-								shell.open();

-							} catch (Exception e) {

-								e.printStackTrace();

-							}

-						}

-					});

-				}

-			});

-		}

-	}

-

-	public void open(final IUIResource resource,

-			final Map<String, Object> options) throws Exception {

-		if (SWT.getPlatform().startsWith("win")) {

-			if (Display.getCurrent() == null) {

-				new Display();

-			}

-			Realm.runWithDefault(getRealm(), new Runnable() {

-				public void run() {

-					try {

-						Object element = loadWithOptions(resource, options);

-						Shell shell = XWT.findShell(element);

-						if (shell == null) {

-							throw new XWTException(

-									"Root element must be a control.");

-						}

-						shell.addDisposeListener(new DisposeListener() {

-							public void widgetDisposed(DisposeEvent e) {

-								Shell[] shells = Display.getCurrent()

-										.getShells();

-								if (shells.length == 0) {

-									ResourceManager.resources.dispose();

-								}

-							}

-						});

-						shell.open();

-						while (!shell.isDisposed()) {

-							if (!shell.getDisplay().readAndDispatch())

-								shell.getDisplay().sleep();

-						}

-					} catch (Exception e) {

-						e.printStackTrace();

-					}

-				}

-			});

-			return;

-		}

-		Display defaultDisplay = Display.getDefault();

-		if (Thread.currentThread() == defaultDisplay.getThread()) {

-			Realm.runWithDefault(getRealm(), new Runnable() {

-				public void run() {

-					try {

-						Object element = loadWithOptions(resource, options);

-						Shell shell = XWT.findShell(element);

-						if (shell == null) {

-							throw new XWTException(

-									"Root element must be a control.");

-						}

-						shell.open();

-						long startTime = -1;

-						while (true) {

-							if (!Display.getDefault().readAndDispatch()) {

-								Display.getDefault().sleep();

-							}

-							Shell[] shells = Display.getDefault().getShells();

-							if (shells.length == 0) {

-								if (startTime == -1) {

-									startTime = System.currentTimeMillis();

-								} else if ((System.currentTimeMillis() - startTime) > 1000) {

-									break;

-								}

-							} else {

-								startTime = -1;

-							}

-						}

-					} catch (Exception e) {

-						e.printStackTrace();

-					}

-				}

-			});

-		} else {

-			defaultDisplay.asyncExec(new Runnable() {

-				public void run() {

-					Realm.runWithDefault(getRealm(), new Runnable() {

-						public void run() {

-							try {

-								Object element = loadWithOptions(resource,

-										options);

-								Shell shell = XWT.findShell(element);

-								if (shell == null) {

-									throw new XWTException(

-											"Root element must be a control.");

-								}

-								shell.open();

-							} catch (Exception e) {

-								e.printStackTrace();

-							}

-						}

-					});

-				}

-			});

-		}

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#convertFrom(org.eclipse.xwt.metadata

-	 * .IMetaclass, java.lang.String)

-	 */

-	public Object convertFrom(IMetaclass type, String string) {

-		Class<?> targetType = type.getType();

-		return convertFrom(targetType, string);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#convertFrom(java.lang.Class,

-	 * java.lang.String)

-	 */

-	public Object convertFrom(Class<?> targetType, String string) {

-		if (targetType == String.class) {

-			return string;

-		}

-		IConverter converter = findConvertor(String.class, targetType);

-		if (converter != null) {

-			return converter.convert(string);

-		}

-		if (targetType == Object.class) {

-			return string;

-		}

-		throw new XWTException("Converter is missing of type: "

-				+ targetType.getName() + " from String");

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#loadWithOptions(java.net.URL,

-	 * java.util.Map)

-	 */

-	public Object loadWithOptions(URL url, Map<String, Object> options)

-			throws Exception {

-		if (url == null) {

-			throw new XWTException("UI Resource is not found.");

-		}

-		Composite object = (Composite) options.get(CONTAINER_PROPERTY);

-		ILoadingContext loadingContext = (object != null ? getLoadingContext(object)

-				: getLoadingContext());

-		options = prepareOptions(options, url);

-		Object visualObject = getCurrentCore().load(loadingContext, url,

-				options);

-		return visualObject;

-	}

-

-	public Object loadWithOptions(IUIResource resource,

-			Map<String, Object> options) throws Exception {

-		UIResource uiResource = (UIResource) resource;

-		Object object = options.get(CONTAINER_PROPERTY);

-		ILoadingContext loadingContext = (object != null ? getLoadingContext(object)

-				: getLoadingContext());

-		options = prepareOptions(options, uiResource.getURL());

-		Object visualObject = getCurrentCore().load(loadingContext, resource,

-				options);

-		return visualObject;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#load(java.io.InputStream, java.net.URL)

-	 */

-	public Object load(InputStream stream, URL url) throws Exception {

-		return loadWithOptions(stream, url, Collections.EMPTY_MAP);

-	}

-

-	public Object load(IUIResource resource) throws Exception {

-		return loadWithOptions(resource, Collections.EMPTY_MAP);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#loadWithOptions(java.io.InputStream,

-	 * java.net.URL, java.util.Map)

-	 */

-	public Object loadWithOptions(InputStream stream, URL base,

-			Map<String, Object> options) throws Exception {

-		Composite object = (Composite) options.get(CONTAINER_PROPERTY);

-		ILoadingContext loadingContext = (object != null ? getLoadingContext(object)

-				: getLoadingContext());

-		options = prepareOptions(options, base);

-		Control visualObject = getCurrentCore().load(loadingContext, stream,

-				base, options);

-		return visualObject;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#getAllMetaclasses()

-	 */

-	public IMetaclass[] getAllMetaclasses() {

-		Collection<IMetaclass> collector = new ArrayList<IMetaclass>();

-		for (int i = cores.size() - 1; i >= 0; i--) {

-			Core core = cores.get(i);

-			Collection<IMetaclass> metaclasses = core

-					.getAllMetaclasses(IConstants.XWT_NAMESPACE);

-			collector.addAll(metaclasses);

-		}

-

-		return collector.toArray(new IMetaclass[collector.size()]);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#getMetaclass(java.lang.String,

-	 * java.lang.String)

-	 */

-	public IMetaclass getMetaclass(String tagName, String ns) {

-

-		for (int i = cores.size() - 1; i >= 0; i--) {

-			Core core = cores.get(i);

-			IMetaclass metaclass = core.getMetaclass(getLoadingContext(),

-					tagName, ns);

-			if (metaclass != null) {

-				return metaclass;

-			}

-		}

-		throw new XWTException("Type " + tagName + " is not found.");

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#registerMetaclass(java.lang.Class)

-	 */

-	public IMetaclass registerMetaclass(Class<?> type) {

-		return getCurrentCore().registerMetaclass(type,

-				IConstants.XWT_NAMESPACE);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#registerMetaclass(java.lang.Class)

-	 */

-	public void registerMetaclass(IMetaclass type) {

-		getCurrentCore().registerMetaclass(type, IConstants.XWT_NAMESPACE);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#registerMetaclassFactory(org.eclipse.e4

-	 * .xwt.IMetaclassFactory)

-	 */

-	public void registerMetaclassFactory(IMetaclassFactory metaclassFactory) {

-		getCurrentCore().registerMetaclassFactory(metaclassFactory);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#findConvertor(java.lang.Class,

-	 * java.lang.Class)

-	 */

-	public IConverter findConvertor(Class<?> source, Class<?> target) {

-		source = ObjectUtil.normalizedType(source);

-		target = ObjectUtil.normalizedType(target);

-		for (int i = cores.size() - 1; i >= 0; i--) {

-			Core core = cores.get(i);

-			IConverter converter = core.findConvertor(source, target);

-			if (converter != null) {

-				return converter;

-			}

-		}

-		return null;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.IXWTLoader#registerConvertor(org.eclipse.core.databinding

-	 * .conversion.IConverter)

-	 */

-	public void registerConvertor(IConverter converter) {

-		getCurrentCore().registerConvertor(converter);

-	}

-

-	protected void registerConvertor(Class<?> converter, String methodName) {

-		getCurrentCore().registerConvertor(converter, methodName);

-	}

-

-	protected void registerConvertor(Class<?> converterType, String methodName,

-			boolean value) {

-		getCurrentCore().registerConvertor(converterType, methodName, value);

-	}

-

-	protected void registerConvertor(ValueConvertorRegister convertorRegister,

-			Class<?> source, Class<?> target, Class<?> converterType,

-			String methodName, boolean value) {

-		getCurrentCore().registerConvertor(convertorRegister, source, target,

-				converterType, methodName, value);

-	}

-

-	protected IConverter loadConvertor(Class<?> converter, String methodName,

-			boolean value) {

-		return getCurrentCore().loadConvertor(converter, methodName, value);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#addTracking(org.eclipse.xwt.Tracking)

-	 */

-	public void addTracking(Tracking tracking) {

-		getCurrentCore().addTracking(tracking);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#isTracking(org.eclipse.xwt.Tracking)

-	 */

-	public boolean isTracking(Tracking tracking) {

-		return getCurrentCore().isTracking(tracking);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#getTrackings()

-	 */

-	public Set<Tracking> getTrackings() {

-		return getCurrentCore().getTrackings();

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#removeTracking(org.eclipse.xwt.Tracking)

-	 */

-	public void removeTracking(Tracking tracking) {

-		getCurrentCore().removeTracking(tracking);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#registerCommand(java.lang.String,

-	 * org.eclipse.xwt.input.ICommand)

-	 */

-	public void registerCommand(String name, ICommand command) {

-		getCurrentCore().registerCommand(name, command);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#getCommand(java.lang.String)

-	 */

-	public ICommand getCommand(String name) {

-		for (int i = cores.size() - 1; i >= 0; i--) {

-			Core core = cores.get(i);

-			ICommand command = core.getCommand(name);

-			if (command != null) {

-				return command;

-			}

-		}

-		return null;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#getCommands()

-	 */

-	public Map<String, ICommand> getCommands() {

-		HashMap<String, ICommand> collector = new HashMap<String, ICommand>();

-		for (int i = cores.size() - 1; i >= 0; i--) {

-			Core core = cores.get(i);

-			Map<String, ICommand> map = core.getCommands();

-			if (map != null) {

-				collector.putAll(map);

-			}

-		}

-		return collector;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#unregisterCommand(java.lang.String)

-	 */

-	public void unregisterCommand(String name) {

-		getCurrentCore().unregisterCommand(name);

-	}

-

-	/**

-	 * Register a command to a name

-	 * 

-	 * @param name

-	 * @param command

-	 */

-	public void registerEventGroup(Class<?> type, IEventGroup eventGroup) {

-		IMetaclass metaclass = getMetaclass(type);

-		metaclass.addEventGroup(eventGroup);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#addDefaultStyle(org.eclipse.xwt.IStyle)

-	 */

-	public void addDefaultStyle(IStyle style) {

-		getCurrentCore().addDefaultStyle(style);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#removeDefaultStyle(org.eclipse.xwt.IStyle

-	 * )

-	 */

-	public void removeDefaultStyle(IStyle style) {

-		getCurrentCore().removeDefaultStyle(style);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#getDefaultStyles()

-	 */

-	public Collection<IStyle> getDefaultStyles() {

-		return getCurrentCore().getDefaultStyles();

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#addDataProviderFactory(org.eclipse.xwt

-	 * .IDataProviderFactory)

-	 */

-	public void addDataProviderFactory(String name,

-			IDataProviderFactory dataProviderFactory) {

-		getCurrentCore().addDataProviderFactory(name, dataProviderFactory);

-		registerMetaclass(dataProviderFactory.getType());

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#removeDataProviderFactory(org.eclipse.e4

-	 * .xwt.IDataProviderFactory)

-	 */

-	public void removeDataProviderFactory(String name) {

-		getCurrentCore().removeDataProviderFactory(name);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#removeDataProviderFactory(org.eclipse.e4

-	 * .xwt.IDataProviderFactory)

-	 */

-	public void removeDataProviderFactory(

-			IDataProviderFactory dataProviderFactory) {

-		getCurrentCore().removeDataProviderFactory(dataProviderFactory);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#getDataProviderFactories()

-	 */

-	public Collection<IDataProviderFactory> getDataProviderFactories() {

-		ArrayList<IDataProviderFactory> collector = new ArrayList<IDataProviderFactory>();

-		for (int i = cores.size() - 1; i >= 0; i--) {

-			Core core = cores.get(i);

-			Collection<IDataProviderFactory> factories = core

-					.getDataProviderFactories();

-			if (factories != null) {

-				collector.addAll(factories);

-			}

-		}

-		return collector;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#findDataProvider(java.lang.Object)

-	 */

-	public IDataProvider findDataProvider(Object dataContext) {

-		for (int i = cores.size() - 1; i >= 0; i--) {

-			Core core = cores.get(i);

-			IDataProvider provider = core.findDataProvider(dataContext);

-			if (provider != null) {

-				return provider;

-			}

-		}

-		return null;

-	}

-

-	private synchronized void initialize() {

-		cores = new Stack<Core>();

-		Core core = new Core(new ResourceLoaderFactory(), this);

-		cores.push(core);

-

-		core.registerService(ValueConvertorRegister.class,

-				new ValueConvertorRegister());

-

-		core.registerMetaclassManager(IConstants.XWT_NAMESPACE,

-				new MetaclassManager(null, null, this));

-		core.registerMetaclass(new BindingMetaclass(this),

-				IConstants.XWT_NAMESPACE);

-		core.registerMetaclass(new BindingMetaclass(MultiBinding.class, this),

-				IConstants.XWT_NAMESPACE);

-		core.registerMetaclass(

-				new TableEditorMetaclass(core.getMetaclass(ControlEditor.class,

-						IConstants.XWT_NAMESPACE), this),

-				IConstants.XWT_NAMESPACE);

-

-		registerConvertor(ObjectToString.FROM_OBJECT);

-		registerConvertor(DateToString.instance);

-		registerConvertor(EnumToString.instance);

-		registerConvertor(StringToInteger.instance);

-		registerConvertor(StringToChar.instance);

-		

-		// It is not supported by eclipse 3.4.1

-		registerConvertor(StringToNumberConverter.class, "toBigDecimal");

-		registerConvertor(StringToNumberConverter.class, "toBigInteger");

-		registerConvertor(StringToNumberConverter.class, "toByte", false);

-

-		registerConvertor(StringToNumberConverter.toLong(false));

-

-		// It is not supported by eclipse 3.4.1

-		registerConvertor(StringToNumberConverter.class, "toShort", false);

-

-		registerConvertor(StringToNumberConverter.toFloat(false));

-		registerConvertor(StringToNumberConverter.toDouble(false));

-

-		registerConvertor(NumberToStringConverter.fromInteger(false));

-

-		// It is not supported by eclipse 3.4.1

-		registerConvertor(NumberToStringConverter.class, "fromBigDecimal");

-		registerConvertor(NumberToStringConverter.class, "fromBigInteger");

-		registerConvertor(NumberToStringConverter.class, "fromByte", false);

-

-		registerConvertor(NumberToStringConverter.fromLong(false));

-

-		// It is not supported by eclipse 3.4.1

-		registerConvertor(NumberToStringConverter.class, "fromShort", false);

-

-		registerConvertor(NumberToStringConverter.fromFloat(false));

-		registerConvertor(NumberToStringConverter.fromDouble(false));

-

-		registerConvertor(StringToBoolean.instance);

-		registerConvertor(ObjectToBoolean.instance);

-		registerConvertor(SelectionToBoolean.instance);

-		registerConvertor(CollectionToBoolean.instance);

-		registerConvertor(CollectionToInteger.instance);

-		registerConvertor(StringToIntArray.instance);

-		registerConvertor(StringToDoubleArray.instance);

-		registerConvertor(BindingToObject.instance);

-		registerConvertor(StringToColor.instance);

-		registerConvertor(StringToFont.instance);

-		registerConvertor(StringToImage.instance);

-		registerConvertor(StringToPoint.instance);

-		registerConvertor(StringToRectangle.instance);

-		registerConvertor(StringToURL.instance);

-		registerConvertor(StringToType.instance);

-		registerConvertor(StringToFormAttachment.instance);

-		registerConvertor(StringToIValidationRule.instance);

-		registerConvertor(StringToIValueConverter.instance);

-		registerConvertor(ListToIObservableCollection.instance);

-		registerConvertor(SetToIObservableCollection.instance);

-		registerConvertor(ObjectToISelection.instance);

-		registerConvertor(ListToSet.instance);

-		registerConvertor(StringToKeyTime.instance);

-		registerConvertor(StringToKeySpline.instance);

-

-		registerConvertor(IStatusToString.instance);

-		registerConvertor(IStatusToBoolean.instance);

-

-		ValueConvertorRegister convertorRegister = (ValueConvertorRegister) core

-				.getService(ValueConvertorRegister.class);

-		convertorRegister.register(String.class, float.class,

-				StringToNumberConverter.toFloat(true));

-		convertorRegister.register(String.class, int.class,

-				StringToInteger.instance);

-

-		// It is not supported by eclipse 3.4.1

-		// convertorRegister.register(String.class, short.class,

-		// StringToNumberConverter.toShort(true));

-		registerConvertor(convertorRegister, String.class, short.class,

-				StringToNumberConverter.class, "toShort", true);

-

-		convertorRegister.register(String.class, long.class,

-				StringToNumberConverter.toLong(true));

-

-		// It is not supported by eclipse 3.4.1

-		// convertorRegister.register(String.class, byte.class,

-		// StringToNumberConverter.toByte(true));

-		registerConvertor(convertorRegister, String.class, byte.class,

-				StringToNumberConverter.class, "toByte", true);

-

-		convertorRegister.register(String.class, boolean.class,

-				StringToBoolean.instance);

-		convertorRegister.register(String.class, double.class,

-				StringToNumberConverter.toDouble(true));

-

-		convertorRegister.register(float.class, String.class,

-				NumberToStringConverter.fromFloat(true));

-		convertorRegister.register(int.class, String.class,

-				NumberToStringConverter.fromInteger(true));

-

-		// It is not supported by eclipse 3.4.1

-		// convertorRegister.register(short.class, String.class,

-		// NumberToStringConverter.fromShort(true));

-		registerConvertor(convertorRegister, short.class, String.class,

-				NumberToStringConverter.class, "fromShort", true);

-

-		convertorRegister.register(long.class, String.class,

-				NumberToStringConverter.fromLong(true));

-

-		// It is not supported by eclipse 3.4.1

-		// convertorRegister.register(byte.class, String.class,

-		// NumberToStringConverter.fromByte(true));

-		registerConvertor(convertorRegister, byte.class, String.class,

-				NumberToStringConverter.class, "fromByte", true);

-

-		convertorRegister.register(double.class, String.class,

-				NumberToStringConverter.fromDouble(true));

-

-		Class<?> type = org.eclipse.swt.widgets.Widget.class;

-		IMetaclass metaclass = (IMetaclass) registerMetaclass(type);

-		IProperty drawingProperty = new AbstractProperty(

-				IUserDataConstants.XWT_DRAWING_KEY, Drawing.class) {

-			public void setValue(Object target, Object value)

-					throws IllegalArgumentException, IllegalAccessException,

-					InvocationTargetException, SecurityException,

-					NoSuchFieldException {

-				if (!ObjectUtil.isAssignableFrom(IBinding.class, getType())) {

-					if (value != null) {

-						value = ObjectUtil

-								.resolveValue(value, getType(), value);

-					}

-				}

-			}

-

-			public Object getValue(Object target)

-					throws IllegalArgumentException, IllegalAccessException,

-					InvocationTargetException, SecurityException,

-					NoSuchFieldException {

-				return null;

-			}

-		};

-		metaclass.addProperty(drawingProperty);

-		IProperty dataContextProperty = new DataProperty(

-				IConstants.XAML_DATA_CONTEXT,

-				IUserDataConstants.XWT_DATACONTEXT_KEY);

-		metaclass.addProperty(dataContextProperty);

-		ILoadingType loadingType = new DefaultLoadingType(

-				IValueLoading.PostChildren,

-				new IProperty[] { dataContextProperty });

-

-		metaclass.addProperty(new DataProperty(IConstants.XAML_BINDING_CONTEXT,

-				IUserDataConstants.XWT_BINDING_CONTEXT_KEY));

-		metaclass.addProperty(new TriggersProperty(loadingType));

-		metaclass.addProperty(new StyleProperty());

-		registerEventGroup(type, new RadioEventGroup(IEventConstants.KEY_GROUP));

-		registerEventGroup(type, new RadioEventGroup(

-				IEventConstants.MOUSE_GROUP));

-		registerEventGroup(type, new RadioEventGroup(

-				IEventConstants.MOUSE_MOVING_GROUP));

-		registerEventGroup(type, new RadioEventGroup(

-				IEventConstants.FOCUS_GROUP));

-		registerEventGroup(type, new RadioEventGroup(

-				IEventConstants.EXPAND_GROUP));

-		registerEventGroup(type, new RadioEventGroup(

-				IEventConstants.WINDOW_GROUP));

-		registerEventGroup(type, new RadioEventGroup(

-				IEventConstants.ACTIVATION_GROUP));

-		registerEventGroup(type, new RadioEventGroup(IEventConstants.HARD_KEY));

-		type = org.eclipse.swt.browser.Browser.class;

-		IMetaclass browserMetaclass = (IMetaclass) registerMetaclass(type);

-

-		browserMetaclass.addProperty(new DynamicProperty(type, String.class,

-				PropertiesConstants.PROPERTY_URL, loadingType));

-		browserMetaclass.addProperty(new DynamicProperty(type, String.class,

-				PropertiesConstants.PROPERTY_TEXT, loadingType));

-

-		IMetaclass buttonMetaclass = (IMetaclass) registerMetaclass(Button.class);

-		buttonMetaclass.addProperty(new DataProperty(IConstants.XAML_COMMAND,

-				IUserDataConstants.XWT_COMMAND_KEY, ICommand.class));

-

-		registerMetaclass(org.eclipse.swt.widgets.Canvas.class);

-		registerMetaclass(org.eclipse.swt.widgets.Caret.class);

-		metaclass = registerMetaclass(org.eclipse.swt.widgets.Combo.class);

-		if (metaclass != null) {

-			IProperty property = metaclass.findProperty("text");

-			IProperty inputProperty = new DelegateProperty(property,

-					loadingType);

-			metaclass.addProperty(inputProperty);

-		}

-

-		registerMetaclass(org.eclipse.swt.widgets.Composite.class);

-		registerMetaclass(org.eclipse.swt.widgets.CoolBar.class);

-		registerMetaclass(org.eclipse.swt.widgets.CoolItem.class);

-		

-		IMetaclass dateTimeMetaclass =  registerMetaclass(org.eclipse.swt.widgets.DateTime.class);

-	    dateTimeMetaclass.addProperty(new DataProperty("selection", "selection", Date.class));

-	    

-		registerMetaclass(org.eclipse.swt.widgets.Decorations.class);

-		registerMetaclass(org.eclipse.swt.widgets.ExpandBar.class);

-		IMetaclass expandItemMetaclass = registerMetaclass(ExpandItem.class);

-		expandItemMetaclass.findProperty("control").addSetPostAction(

-				new ExpandItemHeightAction());

-

-		registerMetaclass(Group.class);

-		registerMetaclass(IME.class);

-		registerMetaclass(Label.class);

-		registerMetaclass(Link.class);

-		registerMetaclass(Listener.class);

-		registerMetaclass(List.class);

-		registerMetaclass(Menu.class);

-		IMetaclass menuItemMetaclass = (IMetaclass) registerMetaclass(MenuItem.class);

-		menuItemMetaclass.addProperty(new DataProperty(IConstants.XAML_COMMAND,

-				IUserDataConstants.XWT_COMMAND_KEY, ICommand.class));

-

-		registerMetaclass(org.eclipse.swt.widgets.MessageBox.class);

-		registerMetaclass(org.eclipse.swt.widgets.ProgressBar.class);

-		registerMetaclass(org.eclipse.swt.widgets.Sash.class);

-

-		registerMetaclass(org.eclipse.swt.widgets.Scale.class);

-		registerMetaclass(org.eclipse.swt.widgets.ScrollBar.class);

-		registerMetaclass(org.eclipse.swt.widgets.Shell.class);

-		registerMetaclass(org.eclipse.swt.widgets.Slider.class);

-		registerMetaclass(org.eclipse.swt.widgets.Spinner.class);

-		registerMetaclass(org.eclipse.swt.widgets.TabFolder.class);

-		registerMetaclass(org.eclipse.swt.widgets.TabItem.class);

-

-		registerMetaclass(org.eclipse.swt.widgets.Table.class);

-		type = org.eclipse.swt.widgets.TableItem.class;

-		metaclass = (IMetaclass) registerMetaclass(type);

-		metaclass.addProperty(new TableItemProperty());

-		metaclass.addProperty(new TableItemEditorProperty());

-		metaclass.addProperty(new DynamicBeanProperty(TableItem.class,

-				String[].class, PropertiesConstants.PROPERTY_TEXTS,

-				PropertiesConstants.PROPERTY_TEXT));

-

-		registerMetaclass(TableItemProperty.Cell.class);

-		registerMetaclass(ControlEditor.class);

-		registerMetaclass(TableEditor.class);

-

-		IMetaclass TableEditorMetaclass = core.getMetaclass(TableEditor.class,

-				IConstants.XWT_NAMESPACE);

-		TableEditorMetaclass.addProperty(new TableEditorDynamicProperty(

-				loadingType));

-

-		type = org.eclipse.swt.widgets.TableColumn.class;

-		metaclass = (IMetaclass) registerMetaclass(type);

-		metaclass.addProperty(new TableColumnEditorProperty());

-

-		registerMetaclass(org.eclipse.swt.widgets.Text.class);

-		registerMetaclass(org.eclipse.swt.widgets.ToolBar.class);

-		registerMetaclass(org.eclipse.swt.widgets.ToolItem.class);

-		registerMetaclass(org.eclipse.swt.widgets.ToolTip.class);

-		registerMetaclass(org.eclipse.swt.widgets.Tracker.class);

-		registerMetaclass(org.eclipse.swt.widgets.Tray.class);

-		registerMetaclass(org.eclipse.swt.widgets.Tree.class);

-		registerMetaclass(org.eclipse.swt.widgets.TreeColumn.class);

-		type = org.eclipse.swt.widgets.TreeItem.class;

-		registerMetaclass(type);

-		metaclass = (IMetaclass) registerMetaclass(type);

-		metaclass.addProperty(new DynamicBeanProperty(TreeItem.class,

-				String[].class, PropertiesConstants.PROPERTY_TEXTS,

-				PropertiesConstants.PROPERTY_TEXT));

-		if (metaclass != null) {

-			IProperty property = metaclass.findProperty("expanded");

-			IProperty expandedProperty = new DelegateProperty(property,

-					loadingType);

-			metaclass.addProperty(expandedProperty);

-		}

-

-		// registerMetaclass(org.eclipse.swt.layout.FillData.class);

-		registerMetaclass(org.eclipse.swt.layout.FillLayout.class);

-		registerMetaclass(org.eclipse.swt.layout.FormAttachment.class);

-		registerMetaclass(org.eclipse.swt.layout.FormData.class);

-		registerMetaclass(org.eclipse.swt.layout.FormLayout.class);

-		registerMetaclass(org.eclipse.swt.layout.GridData.class);

-		registerMetaclass(org.eclipse.swt.layout.GridLayout.class);

-		registerMetaclass(org.eclipse.swt.layout.RowData.class);

-		registerMetaclass(org.eclipse.swt.layout.RowLayout.class);

-		registerMetaclass(org.eclipse.swt.custom.StackLayout.class);

-

-		registerMetaclass(org.eclipse.swt.custom.CLabel.class);

-		metaclass = registerMetaclass(org.eclipse.swt.custom.CCombo.class);

-		if (metaclass != null) {

-			IProperty property = metaclass.findProperty("text");

-			IProperty inputProperty = new DelegateProperty(property,

-					loadingType);

-			metaclass.addProperty(inputProperty);

-		}

-		registerMetaclass(org.eclipse.swt.custom.CTabFolder.class);

-		registerMetaclass(org.eclipse.swt.custom.CTabItem.class);

-		metaclass = registerMetaclass(org.eclipse.swt.custom.SashForm.class);

-		if (metaclass != null) {

-			IProperty property = metaclass.findProperty("weights");

-			IProperty inputProperty = new DelegateProperty(property,

-					loadingType);

-			metaclass.addProperty(inputProperty);

-		}

-

-		registerMetaclass(org.eclipse.swt.custom.StyledText.class);

-		registerMetaclass(org.eclipse.swt.custom.ScrolledComposite.class);

-		registerMetaclass(org.eclipse.swt.custom.ViewForm.class);

-		registerMetaclass(org.eclipse.swt.custom.CBanner.class);

-		registerMetaclass(org.eclipse.swt.custom.TableCursor.class);

-

-		type = org.eclipse.jface.viewers.Viewer.class;

-		metaclass = (IMetaclass) core.getMetaclass(type,

-				IConstants.XWT_NAMESPACE);

-		if (metaclass != null) {

-			IProperty property = metaclass.findProperty("Input");

-			IProperty inputProperty = new InputBeanProperty(property,

-					loadingType);

-			metaclass.addProperty(inputProperty);

-			metaclass.addProperty(new DataProperty(

-					IConstants.XAML_DATA_CONTEXT,

-					IUserDataConstants.XWT_DATACONTEXT_KEY));

-

-			metaclass.removeProperty("selection");

-

-			metaclass.addProperty(new DataProperty(

-					PropertiesConstants.PROPERTY_BINDING_PATH,

-					IUserDataConstants.XWT_PROPERTY_DATA_KEY, String.class));

-			metaclass.addProperty(new DataProperty(

-					PropertiesConstants.PROPERTY_ITEM_TEXT,

-					IUserDataConstants.XWT_PROPERTY_ITEM_TEXT_KEY,

-					IBinding.class));

-			metaclass.addProperty(new DataProperty(

-					PropertiesConstants.PROPERTY_ITEM_IMAGE,

-					IUserDataConstants.XWT_PROPERTY_ITEM_IMAGE_KEY,

-					IBinding.class));

-			ILoadingType inputLoadingType = new DefaultLoadingType(

-					IValueLoading.PostChildren,

-					new IProperty[] { inputProperty });

-			metaclass.addProperty(new SingleSelectionBeanProperty(

-					PropertiesConstants.PROPERTY_SINGLE_SELECTION,

-					inputLoadingType));

-			metaclass.addProperty(new MultiSelectionBeanProperty(

-					PropertiesConstants.PROPERTY_MULTI_SELECTION,

-					inputLoadingType));

-		}

-

-		type = org.eclipse.jface.viewers.AbstractListViewer.class;

-		metaclass = (IMetaclass) core.getMetaclass(type,

-				IConstants.XWT_NAMESPACE);

-		if (metaclass != null) {

-			metaclass.addInitializer(new JFaceInitializer());

-		}

-

-		type = org.eclipse.jface.viewers.ColumnViewer.class;

-		metaclass = (IMetaclass) core.getMetaclass(type,

-				IConstants.XWT_NAMESPACE);

-		if (metaclass != null) {

-			metaclass.addProperty(new DynamicBeanProperty(type, String[].class,

-					PropertiesConstants.PROPERTY_COLUMN_PROPERTIES));

-			metaclass.addProperty(new ColumnViewerColumnsProperty());

-

-			metaclass.addInitializer(new JFaceInitializer());

-		}

-

-		for (Class<?> cls : JFacesHelper.getSupportedElements()) {

-			registerMetaclass(cls);

-		}

-		type = org.eclipse.jface.viewers.TableViewer.class;

-		metaclass = (IMetaclass) core.getMetaclass(type,

-				IConstants.XWT_NAMESPACE);

-		IProperty property = metaclass.findProperty("table");

-		if (property instanceof AbstractProperty) {

-			AbstractProperty abstractProperty = (AbstractProperty) property;

-			abstractProperty.setValueAsParent(true);

-		}

-

-		core.registerMetaclass(

-				new ComboBoxCellEditorMetaclass(core.getMetaclass(

-						ComboBoxCellEditor.class.getSuperclass(),

-						IConstants.XWT_NAMESPACE), this),

-				IConstants.XWT_NAMESPACE);

-

-		type = org.eclipse.jface.viewers.TableViewerColumn.class;

-		core.registerMetaclass(

-				new TableViewerColumnMetaClass(core.getMetaclass(

-						type.getSuperclass(), IConstants.XWT_NAMESPACE), this),

-				IConstants.XWT_NAMESPACE);

-

-		metaclass = (IMetaclass) core.getMetaclass(type,

-				IConstants.XWT_NAMESPACE);

-		//

-		// PROPERTY_DATA_KEY

-		//

-		metaclass.addProperty(new TableViewerColumnWidthProperty());

-		metaclass.addProperty(new TableViewerColumnTextProperty());

-		metaclass.addProperty(new TableViewerColumnImageProperty());

-		metaclass.addProperty(new TableViewerColumnDynamicProperty(

-				PropertiesConstants.PROPERTY_BINDING_PATH,

-				IUserDataConstants.XWT_PROPERTY_DATA_KEY, String.class));

-		metaclass.addProperty(new TableViewerColumnDynamicProperty(

-				PropertiesConstants.PROPERTY_ITEM_TEXT,

-				IUserDataConstants.XWT_PROPERTY_ITEM_TEXT_KEY, IBinding.class));

-		metaclass

-				.addProperty(new TableViewerColumnDynamicProperty(

-						PropertiesConstants.PROPERTY_ITEM_IMAGE,

-						IUserDataConstants.XWT_PROPERTY_ITEM_IMAGE_KEY,

-						IBinding.class));

-

-		registerMetaclass(DefaultCellModifier.class);

-		registerMetaclass(ViewerFilter.class);

-

-		// DataBinding stuff

-		registerMetaclass(BindingContext.class);

-

-		registerMetaclass(ObjectDataProvider.class);

-

-		registerMetaclass(Style.class);

-		registerMetaclass(Setter.class);

-

-		registerMetaclass(Trigger.class);

-		registerMetaclass(MultiTrigger.class);

-		registerMetaclass(EventTrigger.class);

-		registerMetaclass(DataTrigger.class);

-		registerMetaclass(MultiDataTrigger.class);

-		registerMetaclass(Condition.class);

-

-		registerMetaclass(ValidationStatus.class);

-		// Animation

-		registerMetaclass(Storyboard.class);

-		registerMetaclass(BeginStoryboard.class);

-		registerMetaclass(StopStoryboard.class);

-		registerMetaclass(PauseStoryboard.class);

-		registerMetaclass(ResumeStoryboard.class);

-		registerMetaclass(IntAnimation.class);

-		registerMetaclass(FloatAnimation.class);

-		registerMetaclass(DoubleAnimation.class);

-		registerMetaclass(ColorAnimation.class);

-		registerMetaclass(PointAnimation.class);

-		registerMetaclass(RectangleAnimation.class);

-		registerMetaclass(SizeAnimation.class);

-

-		try {

-			Class.forName("org.pushingpixels.trident.Timeline");

-			registerMetaclass(BackEase.class);

-			registerMetaclass(BounceEase.class);

-			registerMetaclass(CircleEase.class);

-			registerMetaclass(CubicEase.class);

-			registerMetaclass(ElasticEase.class);

-			registerMetaclass(ExponentialEase.class);

-			registerMetaclass(PowerEase.class);

-			registerMetaclass(QuadraticEase.class);

-			registerMetaclass(QuarticEase.class);

-			registerMetaclass(QuinticEase.class);

-			registerMetaclass(SineEase.class);

-		} catch (ClassNotFoundException e) {

-		}

-

-		registerConvertor(StringToDuration.instance);

-		registerConvertor(StringToTimeSpan.instance);

-		registerConvertor(StringToRepeatBehavior.instance);

-

-		registerMetaclass(CollectionViewSource.class);

-

-		registerMetaclass(ObservableListContentProvider.class);

-		registerMetaclass(ObservableSetContentProvider.class);

-		registerMetaclass(ObservableTreeContentProvider.class);

-

-		registerFileResolveType(Image.class);

-		registerFileResolveType(URL.class);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#findLoadingContext(java.lang.Object)

-	 */

-	public ILoadingContext findLoadingContext(Object container) {

-		for (int i = cores.size() - 1; i >= 0; i--) {

-			Core core = cores.get(i);

-			ILoadingContext context = core.findLoadingContext(container);

-			if (context != null) {

-				return context;

-			}

-		}

-		return null;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#getLoadingContext(org.eclipse.swt.widgets

-	 * .Composite)

-	 */

-	public ILoadingContext getLoadingContext(Object object) {

-		return findLoadingContext(object);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#getLoadingContext()

-	 */

-	public ILoadingContext getLoadingContext() {

-		return getCurrentCore().getLoadingContext();

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @seeorg.eclipse.xwt.IXWTLoader#setLoadingContext(org.eclipse.xwt.

-	 * ILoadingContext)

-	 */

-	public void setLoadingContext(ILoadingContext loadingContext) {

-		getCurrentCore().setLoadingContext(loadingContext);

-	}

-

-	/**

-	 * Check if the value of a property is to resolve.

-	 * 

-	 * @param type

-	 *            type of property

-	 * @return

-	 */

-	public boolean isFileResolveType(Class<?> type) {

-		return getCurrentCore().isFileResolveType(type);

-	}

-

-	/**

-	 * Register the value of a property is to resolve.

-	 * 

-	 * @param type

-	 *            type of property

-	 * @return

-	 */

-	public void registerFileResolveType(Class<?> type) {

-		getCurrentCore().registerFileResolveType(type);

-	}

-

-	/**

-	 * Register the value of a property is to resolve.

-	 * 

-	 * @param type

-	 *            type of property

-	 * @return

-	 */

-	public void unregisterFileResolveType(Class<?> type) {

-		getCurrentCore().unregisterFileResolveType(type);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/XWTLoaderManager.java b/org.eclipse.xwt/src/org/eclipse/xwt/XWTLoaderManager.java
deleted file mode 100644
index 8229ee5..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/XWTLoaderManager.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *     Anyware-tech - add multiple loaders

- *******************************************************************************/

-package org.eclipse.xwt;

-

-/**

- * Class allowing to keep the reference on the XWT loader active

- */

-public class XWTLoaderManager {

-	/** Default XWT loader */

-	private static IXWTLoader defaultXWTLoader;

-

-	/** Active XWT loader */

-	private static IXWTLoader activeXWTLoader;

-

-	/**

-	 * Returns the default instance of the XWT loader

-	 * 

-	 * @return the default instance of the XWT loader

-	 */

-	public static IXWTLoader getDefault() {

-		if (defaultXWTLoader == null) {

-			defaultXWTLoader = new XWTLoader();

-			XWT.runInitializers(defaultXWTLoader);			

-		}

-		return defaultXWTLoader;

-	}

-

-	public static boolean isStarted() {

-		return defaultXWTLoader != null;

-	}

-

-	/**

-	 * Returns the instance of the XWT loader active. If no XWT loader are active, returns the default XWT loader

-	 * 

-	 * @return the instance of the XWT loader active

-	 */

-	public static IXWTLoader getActive() {

-		IXWTLoader xwtLoader = activeXWTLoader;

-		if (xwtLoader == null) {

-			xwtLoader = getDefault();

-		}

-		return xwtLoader;

-	}

-

-	/**

-	 * Sets the active XWT loader

-	 * 

-	 * @param xwtLoader

-	 *            the XWT loader

-	 * @param active

-	 *            true if the XWT loader is active, otherwise false

-	 */

-	public static void setActive(IXWTLoader xwtLoader, boolean active) {

-		if (active) {

-			activeXWTLoader = xwtLoader;

-		} else if (xwtLoader != null && xwtLoader.equals(activeXWTLoader)) {

-			activeXWTLoader = null;

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/XWTMaps.java b/org.eclipse.xwt/src/org/eclipse/xwt/XWTMaps.java
deleted file mode 100644
index 8adee0b..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/XWTMaps.java
+++ /dev/null
@@ -1,691 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-

-package org.eclipse.xwt;

-

-import java.util.Collection;

-import java.util.HashMap;

-import java.util.Map;

-

-import org.eclipse.swt.SWT;

-

-/**

- * @author jliu

- */

-public class XWTMaps {

-	private static final Map<String, Integer> styles = new HashMap<String, Integer>();

-	private static final Map<String, Integer> colors = new HashMap<String, Integer>();

-	private static final Map<String, Integer> events = new HashMap<String, Integer>();

-	private static final Map<String, Integer> accelerators = new HashMap<String, Integer>();

-

-	private XWTMaps() {

-	}

-

-	private static void checkAndInit() {

-		if (styles.isEmpty() || colors.isEmpty() || events.isEmpty() || accelerators.isEmpty()) {

-			init();

-		}

-	}

-

-	private static void init() {

-		// styles

-		styles.put("SWT.NONE", SWT.NONE);

-		styles.put("SWT.FILL", SWT.FILL);

-		styles.put("SWT.BORDER", SWT.BORDER);

-		styles.put("SWT.PUSH", SWT.PUSH);

-		styles.put("SWT.CHECK", SWT.CHECK);

-		styles.put("SWT.RADIO", SWT.RADIO);

-		styles.put("SWT.TOGGLE", SWT.TOGGLE);

-		styles.put("SWT.ARROW", SWT.ARROW);

-		styles.put("SWT.ARROW_DOWN", SWT.ARROW_DOWN);

-		styles.put("SWT.ARROW_LEFT", SWT.ARROW_LEFT);

-		styles.put("SWT.ARROW_RIGHT", SWT.ARROW_RIGHT);

-		styles.put("SWT.ARROW_UP", SWT.ARROW_UP);

-		styles.put("SWT.FLAT", SWT.FLAT);

-		styles.put("SWT.DROP_DOWN", SWT.DROP_DOWN);

-		styles.put("SWT.SIMPLE", SWT.SIMPLE);

-		styles.put("SWT.READ_ONLY", SWT.READ_ONLY);

-		styles.put("SWT.LEFT", SWT.LEFT);

-		styles.put("SWT.UP", SWT.UP);

-		styles.put("SWT.DOWN", SWT.DOWN);

-		styles.put("SWT.CENTER", SWT.CENTER);

-		styles.put("SWT.RIGHT", SWT.RIGHT);

-		styles.put("SWT.H_SCROLL", SWT.H_SCROLL);

-		styles.put("SWT.V_SCROLL", SWT.V_SCROLL);

-		styles.put("SWT.DATE", SWT.DATE);

-		styles.put("SWT.TIME", SWT.TIME);

-		styles.put("SWT.CALENDAR", SWT.CALENDAR);

-		styles.put("SWT.SHORT", SWT.SHORT);

-		styles.put("SWT.MEDIUM", SWT.MEDIUM);

-		styles.put("SWT.LONG", SWT.LONG);

-		styles.put("SWT.WRAP", SWT.WRAP);

-		styles.put("SWT.HORIZONTAL", SWT.HORIZONTAL);

-		styles.put("SWT.VERTICAL", SWT.VERTICAL);

-		styles.put("SWT.SEPARATOR", SWT.SEPARATOR);

-		styles.put("SWT.SHADOW_IN", SWT.SHADOW_IN);

-		styles.put("SWT.SHADOW_NONE", SWT.SHADOW_NONE);

-		styles.put("SWT.SHADOW_OUT", SWT.SHADOW_OUT);

-		styles.put("SWT.NO_TRIM", SWT.NO_TRIM);

-		styles.put("SWT.SHELL_TRIM", SWT.SHELL_TRIM);

-		styles.put("SWT.DIALOG_TRIM", SWT.DIALOG_TRIM);

-		

-		styles.put("SWT.CLOSE", SWT.CLOSE);

-		styles.put("SWT.MIN", SWT.MIN);

-		styles.put("SWT.MAX", SWT.MAX);

-		styles.put("SWT.RESIZE", SWT.RESIZE);

-		styles.put("SWT.TOOL", SWT.TOOL);

-		styles.put("SWT.ON_TOP", SWT.ON_TOP);

-		styles.put("SWT.MODELESS", SWT.MODELESS);

-		styles.put("SWT.PRIMARY_MODAL", SWT.PRIMARY_MODAL);

-		styles.put("SWT.APPLICATION_MODAL", SWT.APPLICATION_MODAL);

-		styles.put("SWT.SYSTEM_MODAL", SWT.SYSTEM_MODAL);

-		styles.put("SWT.TITLE", SWT.TITLE);

-		styles.put("SWT.SINGLE", SWT.SINGLE);

-		styles.put("SWT.MULTI", SWT.MULTI);

-		styles.put("SWT.PASSWORD", SWT.PASSWORD);

-		styles.put("SWT.SEARCH", SWT.SEARCH);

-		styles.put("SWT.CANCEL", SWT.CANCEL);

-		// styles: icon

-		tryPut(styles,"SWT.ICON");

-		styles.put("SWT.ICON_ERROR", SWT.ICON_ERROR);

-		styles.put("SWT.ICON_INFORMATION", SWT.ICON_INFORMATION);

-		styles.put("SWT.ICON_QUESTION", SWT.ICON_QUESTION);

-		styles.put("SWT.ICON_WARNING", SWT.ICON_WARNING);

-		styles.put("SWT.ICON_WORKING", SWT.ICON_WORKING);

-		tryPut(styles,"SWT.SHADOW_ETCHED_IN");

-		tryPut(styles,"SWT.SHADOW_ETCHED_OUT");

-		tryPut(styles,"SWT.BALLOON");

-		tryPut(styles,"SWT.NO_BACKGROUND");

-		styles.put("SWT.NO_FOCUS", SWT.NO_FOCUS);

-		tryPut(styles,"SWT.NO_MERGE_PAINTS");

-		tryPut(styles,"SWT.NO_REDRAW_RESIZE");

-		styles.put("SWT.DOUBLE_BUFFERED", SWT.DOUBLE_BUFFERED);

-		styles.put("SWT.SMOOTH", SWT.SMOOTH);

-		styles.put("SWT.INDETERMINATE", SWT.INDETERMINATE);

-		styles.put("SWT.FULL_SELECTION", SWT.FULL_SELECTION);

-		styles.put("SWT.TOP", SWT.TOP);

-		styles.put("SWT.BOTTOM", SWT.BOTTOM);

-		styles.put("SWT.NORMAL", SWT.NORMAL);

-		styles.put("SWT.ITALIC", SWT.ITALIC);

-		styles.put("SWT.BOLD", SWT.BOLD);

-		styles.put("SWT.LEFT_TO_RIGHT", SWT.LEFT_TO_RIGHT);

-		tryPut(styles,"SWT.RIGHT_TO_LEFT");

-		styles.put("SWT.BAR", SWT.BAR);

-		styles.put("SWT.CASCADE", SWT.CASCADE);

-		tryPut(styles,"SWT.NO_RADIO_GROUP");

-		styles.put("SWT.POP_UP", SWT.POP_UP);

-		styles.put("SWT.INHERIT_DEFAULT", SWT.INHERIT_DEFAULT);

-		styles.put("SWT.INHERIT_NONE", SWT.INHERIT_NONE);

-		styles.put("SWT.INHERIT_FORCE", SWT.INHERIT_FORCE);

-

-		// colors

-		colors.put("SWT.COLOR_BLACK", SWT.COLOR_BLACK);

-		colors.put("SWT.COLOR_BLUE", SWT.COLOR_BLUE);

-		colors.put("SWT.COLOR_CYAN", SWT.COLOR_CYAN);

-		colors.put("SWT.COLOR_DARK_BLUE", SWT.COLOR_DARK_BLUE);

-		colors.put("SWT.COLOR_DARK_CYAN", SWT.COLOR_DARK_CYAN);

-		colors.put("SWT.COLOR_DARK_GREEN", SWT.COLOR_DARK_GREEN);

-		colors.put("SWT.COLOR_DARK_MAGENTA", SWT.COLOR_DARK_MAGENTA);

-		colors.put("SWT.COLOR_DARK_RED", SWT.COLOR_DARK_RED);

-		colors.put("SWT.COLOR_DARK_YELLOW", SWT.COLOR_DARK_YELLOW);

-		colors.put("SWT.COLOR_GRAY", SWT.COLOR_GRAY);

-		colors.put("SWT.COLOR_GREEN", SWT.COLOR_GREEN);

-		colors.put("SWT.COLOR_INFO_BACKGROUND", SWT.COLOR_INFO_BACKGROUND);

-		colors.put("SWT.COLOR_INFO_FOREGROUND", SWT.COLOR_INFO_FOREGROUND);

-		colors.put("SWT.COLOR_LIST_BACKGROUND", SWT.COLOR_LIST_BACKGROUND);

-		colors.put("SWT.COLOR_LIST_FOREGROUND", SWT.COLOR_LIST_FOREGROUND);

-		colors.put("SWT.COLOR_LIST_SELECTION", SWT.COLOR_LIST_SELECTION);

-		colors.put("SWT.COLOR_LIST_SELECTION_TEXT", SWT.COLOR_LIST_SELECTION_TEXT);

-		colors.put("SWT.COLOR_MAGENTA", SWT.COLOR_MAGENTA);

-		colors.put("SWT.COLOR_RED", SWT.COLOR_RED);

-		colors.put("SWT.COLOR_TITLE_BACKGROUND", SWT.COLOR_TITLE_BACKGROUND);

-		colors.put("SWT.COLOR_TITLE_BACKGROUND_GRADIENT", SWT.COLOR_TITLE_BACKGROUND_GRADIENT);

-		colors.put("SWT.COLOR_TITLE_FOREGROUND", SWT.COLOR_TITLE_FOREGROUND);

-		colors.put("SWT.COLOR_TITLE_INACTIVE_BACKGROUND", SWT.COLOR_TITLE_INACTIVE_BACKGROUND);

-		colors.put("SWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT", SWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT);

-		colors.put("SWT.COLOR_TITLE_INACTIVE_FOREGROUND", SWT.COLOR_TITLE_INACTIVE_FOREGROUND);

-		colors.put("SWT.COLOR_WHITE", SWT.COLOR_WHITE);

-		colors.put("SWT.COLOR_WIDGET_BACKGROUND", SWT.COLOR_WIDGET_BACKGROUND);

-		colors.put("SWT.COLOR_WIDGET_BORDER", SWT.COLOR_WIDGET_BORDER);

-		colors.put("SWT.COLOR_WIDGET_DARK_SHADOW", SWT.COLOR_WIDGET_DARK_SHADOW);

-		colors.put("SWT.COLOR_WIDGET_FOREGROUND", SWT.COLOR_WIDGET_FOREGROUND);

-		colors.put("SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW", SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW);

-		colors.put("SWT.COLOR_WIDGET_LIGHT_SHADOW", SWT.COLOR_WIDGET_LIGHT_SHADOW);

-		colors.put("SWT.COLOR_WIDGET_NORMAL_SHADOW", SWT.COLOR_WIDGET_NORMAL_SHADOW);

-		colors.put("SWT.COLOR_YELLOW", SWT.COLOR_YELLOW);

-

-		// Events

-		events.put("swt.activate", SWT.Activate);

-		events.put("swt.arm", SWT.Arm);

-		events.put("swt.close", SWT.Close);

-		events.put("swt.collapse", SWT.Collapse);

-		events.put("swt.deactivate", SWT.Deactivate);

-		events.put("swt.defaultselection", SWT.DefaultSelection);

-		tryPut(events, "swt.deiconify", "SWT.Deiconify");

-		events.put("swt.dispose", SWT.Dispose);

-		events.put("swt.dragdetect", SWT.DragDetect);

-		tryPut(events, "swt.eraseitem", "SWT.EraseItem");

-		events.put("swt.expand", SWT.Expand);

-		events.put("swt.focusin", SWT.FocusIn);

-		events.put("swt.focusout", SWT.FocusOut);

-		tryPut(events, "swt.hardkeydown", "SWT.HardKeyDown");

-		tryPut(events, "swt.hardkeyup", "SWT.HardKeyUp");

-		events.put("swt.help", SWT.Help);

-		events.put("swt.hide", SWT.Hide);

-		tryPut(events, "swt.iconify", "SWT.Iconify");

-		events.put("swt.keydown", SWT.KeyDown);

-		events.put("swt.keyup", SWT.KeyUp);

-		tryPut(events, "swt.measureitem", "SWT.MeasureItem");

-		events.put("swt.menudetect", SWT.MenuDetect);

-		events.put("swt.modify", SWT.Modify);

-		events.put("swt.mousedoubleclick", SWT.MouseDoubleClick);

-		events.put("swt.mousedown", SWT.MouseDown);

-		tryPut(events, "swt.mouseenter", "SWT.MouseEnter");

-		tryPut(events, "swt.mouseexit", "SWT.MouseExit");

-		tryPut(events, "swt.mousehover", "SWT.MouseHover");

-		tryPut(events, "swt.mousemove", "SWT.MouseMove");

-		events.put("swt.mouseup", SWT.MouseUp);

-		tryPut(events, "swt.mousewheel", "SWT.MouseWheel");

-		events.put("swt.move", SWT.Move);

-		tryPut(events, "swt.paint", "SWT.Paint");

-		tryPut(events, "swt.paintitem", "SWT.PaintItem");

-		events.put("swt.resize", SWT.Resize);

-		events.put("swt.selection", SWT.Selection);

-		events.put("swt.setdata", SWT.SetData);

-		tryPut(events, "swt.settings", "SWT.Settings");

-		events.put("swt.show", SWT.Show);

-		events.put("swt.traverse", SWT.Traverse);

-		events.put("swt.verify", SWT.Verify);

-		tryPut(events, "swt.imecomposition", "SWT.ImeComposition");

-

-		// accelerators

-		accelerators.put("SWT.ALT", SWT.ALT);

-		accelerators.put("SWT.ARROW_UP", SWT.ARROW_UP);

-		accelerators.put("SWT.ARROW_DOWN", SWT.ARROW_DOWN);

-		accelerators.put("SWT.ARROW_LEFT", SWT.ARROW_LEFT);

-		accelerators.put("SWT.ARROW_RIGHT", SWT.ARROW_RIGHT);

-		accelerators.put("SWT.BREAK", SWT.BREAK);

-		accelerators.put("SWT.CAPS_LOCK", SWT.CAPS_LOCK);

-		accelerators.put("SWT.CENTER", SWT.CENTER);

-		accelerators.put("SWT.CTRL", SWT.CTRL);

-		accelerators.put("SWT.DEFAULT", SWT.DEFAULT);

-		tryPut(accelerators,"SWT.EMBEDDED");

-		accelerators.put("SWT.END", SWT.END);

-		accelerators.put("SWT.F1", SWT.F1);

-		accelerators.put("SWT.F2", SWT.F2);

-		accelerators.put("SWT.F3", SWT.F3);

-		accelerators.put("SWT.F4", SWT.F4);

-		accelerators.put("SWT.F5", SWT.F5);

-		accelerators.put("SWT.F6", SWT.F6);

-		accelerators.put("SWT.F7", SWT.F7);

-		accelerators.put("SWT.F8", SWT.F8);

-		accelerators.put("SWT.F9", SWT.F9);

-		accelerators.put("SWT.F10", SWT.F10);

-		accelerators.put("SWT.F11", SWT.F11);

-		accelerators.put("SWT.F12", SWT.F12);

-		accelerators.put("SWT.HELP", SWT.HELP);

-		accelerators.put("SWT.HOME", SWT.HOME);

-		accelerators.put("SWT.IMAGE_UNDEFINED", SWT.IMAGE_UNDEFINED);

-		accelerators.put("SWT.INSERT", SWT.INSERT);

-		accelerators.put("SWT.KEYPAD_ADD", SWT.KEYPAD_ADD);

-		accelerators.put("SWT.KEYPAD_CR", SWT.KEYPAD_CR);

-		accelerators.put("SWT.KEYPAD_DECIMAL", SWT.KEYPAD_DECIMAL);

-		accelerators.put("SWT.KEYPAD_DIVIDE", SWT.KEYPAD_DIVIDE);

-		accelerators.put("SWT.KEYPAD_EQUAL", SWT.KEYPAD_EQUAL);

-		accelerators.put("SWT.KEYPAD_MULTIPLY", SWT.KEYPAD_MULTIPLY);

-		accelerators.put("SWT.KEYPAD_SUBTRACT", SWT.KEYPAD_SUBTRACT);

-		accelerators.put("SWT.KEYPAD_0", SWT.KEYPAD_0);

-		accelerators.put("SWT.KEYPAD_1", SWT.KEYPAD_1);

-		accelerators.put("SWT.KEYPAD_2", SWT.KEYPAD_2);

-		accelerators.put("SWT.KEYPAD_3", SWT.KEYPAD_3);

-		accelerators.put("SWT.KEYPAD_4", SWT.KEYPAD_4);

-		accelerators.put("SWT.KEYPAD_5", SWT.KEYPAD_5);

-		accelerators.put("SWT.KEYPAD_6", SWT.KEYPAD_6);

-		accelerators.put("SWT.KEYPAD_7", SWT.KEYPAD_7);

-		accelerators.put("SWT.KEYPAD_8", SWT.KEYPAD_8);

-		accelerators.put("SWT.KEYPAD_9", SWT.KEYPAD_9);

-		accelerators.put("SWT.NUM_LOCK", SWT.NUM_LOCK);

-		accelerators.put("SWT.PAUSE", SWT.PAUSE);

-		accelerators.put("SWT.PAGE_DOWN", SWT.PAGE_DOWN);

-		accelerators.put("SWT.PAGE_UP", SWT.PAGE_UP);

-		accelerators.put("SWT.PRINT_SCREEN", SWT.PRINT_SCREEN);

-		accelerators.put("SWT.SCROLL_LOCK", SWT.SCROLL_LOCK);

-		accelerators.put("SWT.SHIFT", SWT.SHIFT);

-

-	}

-

-	public static Collection<String> getStyleKeys() {

-		checkAndInit();

-		return styles.keySet();

-	}

-

-	public static int getStyle(String key) {

-		if (key == null) {

-			return SWT.NONE;

-		}

-		checkAndInit();

-		String mapKey = key.toUpperCase();

-		if (!mapKey.startsWith("SWT.")) {

-			mapKey = "SWT." + mapKey;

-		}

-		Integer style = styles.get(mapKey);

-		return (style == null ? SWT.NONE : style);

-	}

-

-	public static Collection<String> getColorKeys() {

-		checkAndInit();

-		return colors.keySet();

-	}

-

-	public static int getColor(String key) {

-		if (key == null || key.equals("")) {

-			return SWT.NONE;

-		}

-		checkAndInit();

-		String mapKey = key.toUpperCase();

-		if (!mapKey.startsWith("SWT.")) {

-			mapKey = "SWT." + mapKey;

-		}

-		Integer color = colors.get(mapKey);

-		return color == null ? SWT.NONE : color;

-	}

-

-	public static Collection<String> getEventKeys() {

-		checkAndInit();

-		return events.keySet();

-	}

-

-	public static int getEvent(String key) {

-		if (key == null || key.equals("")) {

-			return SWT.None;

-		}

-		checkAndInit();

-		String mapKey = key.toLowerCase();

-		if (!mapKey.startsWith("swt.")) {

-			mapKey = "swt." + mapKey;

-		}

-		Integer event = events.get(mapKey);

-		return event == null ? SWT.None : event;

-	}

-

-	public static Collection<String> getAcceleratorKeys() {

-		checkAndInit();

-		return accelerators.keySet();

-	}

-

-	public static int getAccelerator(String key) {

-		char letter;

-		if (key == null || key.equals("")) {

-			return SWT.NONE;

-		}

-		checkAndInit();

-		if (key.equals("BS")) {

-			Integer accelerator = Integer.valueOf(SWT.BS);

-			return accelerator == null ? SWT.NONE : accelerator;

-		} else if (key.equals("ENTER")) {

-			Integer accelerator = Integer.valueOf(SWT.CR);

-			return accelerator == null ? SWT.NONE : accelerator;

-		} else if (key.equals("DEL")) {

-			Integer accelerator = Integer.valueOf(SWT.DEL);

-			return accelerator == null ? SWT.NONE : accelerator;

-		} else if (key.equals("SPACE")) {

-			Integer accelerator = Integer.valueOf(' ');

-			return accelerator == null ? SWT.NONE : accelerator;

-		} else if (key.length() == 1) {

-			letter = key.charAt(0);

-			if (letter >= 'A' && letter <= 'Z' || letter >= 'a' && letter <= 'z') {

-				Integer accelerator = Integer.valueOf(letter);

-				return accelerator == null ? SWT.NONE : accelerator;

-			}

-		}

-

-		String mapKey = key.toUpperCase();

-		if (!mapKey.startsWith("SWT.")) {

-			mapKey = "SWT." + mapKey;

-		}

-

-		Integer accelerator = accelerators.get(mapKey);

-		return accelerator == null ? SWT.NONE : accelerator;

-	}

-

-	public static int getValue(String key) {

-		int value = getStyle(key);

-		if (value == SWT.NONE) {

-			value = getColor(key);

-		}

-		if (value == SWT.NONE) {

-			value = getEvent(key);

-		}

-		if (value == SWT.NONE) {

-			value = getAccelerator(key);

-		}

-		return value;

-	}

-

-	public static String getCombAccelerator(String content) {

-		if (content.equals("Alt0")) {

-			return "SWT.ALT | SWT.KEYPAD_0";

-		} else if (content.equals("Alt1")) {

-			return "SWT.ALT | SWT.KEYPAD_1";

-		} else if (content.equals("Alt2")) {

-			return "SWT.ALT | SWT.KEYPAD_2";

-		} else if (content.equals("Alt3")) {

-			return "SWT.ALT | SWT.KEYPAD_3";

-		} else if (content.equals("Alt4")) {

-			return "SWT.ALT | SWT.KEYPAD_4";

-		} else if (content.equals("Alt5")) {

-			return "SWT.ALT | SWT.KEYPAD_5";

-		} else if (content.equals("Alt6")) {

-			return "SWT.ALT | SWT.KEYPAD_6";

-		} else if (content.equals("Alt7")) {

-			return "SWT.ALT | SWT.KEYPAD_7";

-		} else if (content.equals("Alt8")) {

-			return "SWT.ALT | SWT.KEYPAD_8";

-		} else if (content.equals("Alt9")) {

-			return "SWT.ALT | SWT.KEYPAD_9";

-		} else if (content.equals("AltBksp")) {

-			return "SWT.ALT | BS";

-		} else if (content.equals("AltDownArrow")) {

-			return "SWT.ALT | SWT.ARROW_DOWN";

-		} else if (content.equals("AltF1")) {

-			return "SWT.ALT | SWT.F1";

-		} else if (content.equals("AltF10")) {

-			return "SWT.ALT | SWT.F10";

-		} else if (content.equals("AltF11")) {

-			return "SWT.ALT | SWT.F11";

-		} else if (content.equals("AltF12")) {

-			return "SWT.ALT | SWT.F12";

-		} else if (content.equals("AltF2")) {

-			return "SWT.ALT | SWT.F2";

-		} else if (content.equals("AltF3")) {

-			return "SWT.ALT | SWT.F3";

-		} else if (content.equals("AltF4")) {

-			return "SWT.ALT | SWT.F4";

-		} else if (content.equals("AltF5")) {

-			return "SWT.ALT | SWT.F5";

-		} else if (content.equals("AltF6")) {

-			return "SWT.ALT | SWT.F6";

-		} else if (content.equals("AltF7")) {

-			return "SWT.ALT | SWT.F7";

-		} else if (content.equals("AltF8")) {

-			return "SWT.ALT | SWT.F8";

-		} else if (content.equals("AltF9")) {

-			return "SWT.ALT | SWT.F9";

-		} else if (content.equals("AltLeftArrow")) {

-			return "SWT.ALT | SWT.ARROW_LEFT";

-		} else if (content.equals("AltRightArrow")) {

-			return "SWT.ALT | SWT.ARROW_RIGHT";

-		} else if (content.equals("AltUpArrow")) {

-			return "SWT.ALT | SWT.ARROW_UP";

-		} else if (content.equals("AltEnter")) {

-			return "SWT.ALT | Enter";

-		} else if (content.equals("AltSpace")) {

-			return "SWT.ALT | Space";

-		} else if (content.equals("Ctrl0")) {

-			return "SWT.CTRL | SWT.KEYPAD_0";

-		} else if (content.equals("Ctrl1")) {

-			return "SWT.CTRL | SWT.KEYPAD_1";

-		} else if (content.equals("Ctrl2")) {

-			return "SWT.CTRL | SWT.KEYPAD_2";

-		} else if (content.equals("Ctrl3")) {

-			return "SWT.CTRL | SWT.KEYPAD_3";

-		} else if (content.equals("Ctrl4")) {

-			return "SWT.CTRL | SWT.KEYPAD_4";

-		} else if (content.equals("Ctrl5")) {

-			return "SWT.CTRL | SWT.KEYPAD_5";

-		} else if (content.equals("Ctrl6")) {

-			return "SWT.CTRL | SWT.KEYPAD_6";

-		} else if (content.equals("Ctrl7")) {

-			return "SWT.CTRL | SWT.KEYPAD_7";

-		} else if (content.equals("Ctrl8")) {

-			return "SWT.CTRL | SWT.KEYPAD_8";

-		} else if (content.equals("Ctrl9")) {

-			return "SWT.CTRL | SWT.KEYPAD_9";

-		} else if (content.equals("CtrlA")) {

-			return "SWT.CTRL | A";

-		} else if (content.equals("CtrlB")) {

-			return "SWT.CTRL | B";

-		} else if (content.equals("CtrlC")) {

-			return "SWT.CTRL | C";

-		} else if (content.equals("CtrlD")) {

-			return "SWT.CTRL | D";

-		} else if (content.equals("CtrlDel")) {

-			return "SWT.CTRL | DEL";

-		} else if (content.equals("CtrlEnter")) {

-			return "SWT.CTRL | Enter";

-		} else if (content.equals("CtrlSpace")) {

-			return "SWT.CTRL | Space";

-		} else if (content.equals("CtrlE")) {

-			return "SWT.CTRL | E";

-		} else if (content.equals("CtrlF")) {

-			return "SWT.CTRL | F";

-		} else if (content.equals("CtrlF1")) {

-			return "SWT.CTRL | SWT.F1";

-		} else if (content.equals("CtrlF10")) {

-			return "SWT.CTRL | SWT.F10";

-		} else if (content.equals("CtrlF11")) {

-			return "SWT.CTRL | SWT.F11";

-		} else if (content.equals("CtrlF12")) {

-			return "SWT.CTRL | SWT.F12";

-		} else if (content.equals("CtrlF2")) {

-			return "SWT.CTRL | SWT.F2";

-		} else if (content.equals("CtrlF3")) {

-			return "SWT.CTRL | SWT.F3";

-		} else if (content.equals("CtrlF4")) {

-			return "SWT.CTRL | SWT.F4";

-		} else if (content.equals("CtrlF5")) {

-			return "SWT.CTRL | SWT.F5";

-		} else if (content.equals("CtrlF6")) {

-			return "SWT.CTRL | SWT.F6";

-		} else if (content.equals("CtrlF7")) {

-			return "SWT.CTRL | SWT.F7";

-		} else if (content.equals("CtrlF8")) {

-			return "SWT.CTRL | SWT.F8";

-		} else if (content.equals("CtrlF9")) {

-			return "SWT.CTRL | SWT.F9";

-		} else if (content.equals("CtrlG")) {

-			return "SWT.CTRL | G";

-		} else if (content.equals("CtrlH")) {

-			return "SWT.CTRL | H";

-		} else if (content.equals("CtrlI")) {

-			return "SWT.CTRL | I";

-		} else if (content.equals("CtrlIns")) {

-			return "SWT.CTRL | SWT.INSERT";

-		} else if (content.equals("CtrlJ")) {

-			return "SWT.CTRL | J";

-		} else if (content.equals("CtrlK")) {

-			return "SWT.CTRL | K";

-		} else if (content.equals("CtrlL")) {

-			return "SWT.CTRL | L";

-		} else if (content.equals("CtrlM")) {

-			return "SWT.CTRL | M";

-		} else if (content.equals("CtrlN")) {

-			return "SWT.CTRL | N";

-		} else if (content.equals("CtrlO")) {

-			return "SWT.CTRL | O";

-		} else if (content.equals("CtrlP")) {

-			return "SWT.CTRL | P";

-		} else if (content.equals("CtrlQ")) {

-			return "SWT.CTRL | Q";

-		} else if (content.equals("CtrlR")) {

-			return "SWT.CTRL | R";

-		} else if (content.equals("CtrlS")) {

-			return "SWT.CTRL | S";

-		} else if (content.equals("CtrlShift0")) {

-			return "SWT.CTRL | SWT.SHIFT | SWT.KEYPAD_0";

-		} else if (content.equals("CtrlShift1")) {

-			return "SWT.CTRL | SWT.SHIFT | SWT.KEYPAD_1";

-		} else if (content.equals("CtrlShift2")) {

-			return "SWT.CTRL | SWT.SHIFT | SWT.KEYPAD_2";

-		} else if (content.equals("CtrlShift3")) {

-			return "SWT.CTRL | SWT.SHIFT | SWT.KEYPAD_3";

-		} else if (content.equals("CtrlShift4")) {

-			return "SWT.CTRL | SWT.SHIFT | SWT.KEYPAD_4";

-		} else if (content.equals("CtrlShift5")) {

-			return "SWT.CTRL | SWT.SHIFT | SWT.KEYPAD_5";

-		} else if (content.equals("CtrlShift6")) {

-			return "SWT.CTRL | SWT.SHIFT | SWT.KEYPAD_6";

-		} else if (content.equals("CtrlShift7")) {

-			return "SWT.CTRL | SWT.SHIFT | SWT.KEYPAD_7";

-		} else if (content.equals("CtrlShift8")) {

-			return "SWT.CTRL | SWT.SHIFT | SWT.KEYPAD_8";

-		} else if (content.equals("CtrlShift9")) {

-			return "SWT.CTRL | SWT.SHIFT | SWT.KEYPAD_9";

-		} else if (content.equals("CtrlShiftA")) {

-			return "SWT.CTRL | SWT.SHIFT | A";

-		} else if (content.equals("CtrlShiftB")) {

-			return "SWT.CTRL | SWT.SHIFT | B";

-		} else if (content.equals("CtrlShiftC")) {

-			return "SWT.CTRL | SWT.SHIFT | C";

-		} else if (content.equals("CtrlShiftD")) {

-			return "SWT.CTRL | SWT.SHIFT | D";

-		} else if (content.equals("CtrlShiftE")) {

-			return "SWT.CTRL | SWT.SHIFT | E";

-		} else if (content.equals("CtrlShiftF")) {

-			return "SWT.CTRL | SWT.SHIFT | F";

-		} else if (content.equals("CtrlShiftF1")) {

-			return "SWT.CTRL | SWT.SHIFT | SWT.F1";

-		} else if (content.equals("CtrlShiftF10")) {

-			return "SWT.CTRL | SWT.SHIFT | SWT.F10";

-		} else if (content.equals("CtrlShiftF11")) {

-			return "SWT.CTRL | SWT.SHIFT | SWT.F11";

-		} else if (content.equals("CtrlShiftF12")) {

-			return "SWT.CTRL | SWT.SHIFT | SWT.F12";

-		} else if (content.equals("CtrlShiftF2")) {

-			return "SWT.CTRL | SWT.SHIFT | SWT.F2";

-		} else if (content.equals("CtrlShiftF3")) {

-			return "SWT.CTRL | SWT.SHIFT | SWT.F3";

-		} else if (content.equals("CtrlShiftF4")) {

-			return "SWT.CTRL | SWT.SHIFT | SWT.F4";

-		} else if (content.equals("CtrlShiftF5")) {

-			return "SWT.CTRL | SWT.SHIFT | SWT.F5";

-		} else if (content.equals("CtrlShiftF6")) {

-			return "SWT.CTRL | SWT.SHIFT | SWT.F6";

-		} else if (content.equals("CtrlShiftF7")) {

-			return "SWT.CTRL | SWT.SHIFT | SWT.F7";

-		} else if (content.equals("CtrlShiftF8")) {

-			return "SWT.CTRL | SWT.SHIFT | SWT.F8";

-		} else if (content.equals("CtrlShiftF9")) {

-			return "SWT.CTRL | SWT.SHIFT | SWT.F9";

-		} else if (content.equals("CtrlShiftH")) {

-			return "SWT.CTRL | SWT.SHIFT | H";

-		} else if (content.equals("CtrlShiftI")) {

-			return "SWT.CTRL | SWT.SHIFT | I";

-		} else if (content.equals("CtrlShiftJ")) {

-			return "SWT.CTRL | SWT.SHIFT | J";

-		} else if (content.equals("CtrlShiftK")) {

-			return "SWT.CTRL | SWT.SHIFT | K";

-		} else if (content.equals("CtrlShiftL")) {

-			return "SWT.CTRL | SWT.SHIFT | L";

-		} else if (content.equals("CtrlShiftM")) {

-			return "SWT.CTRL | SWT.SHIFT | M";

-		} else if (content.equals("CtrlShiftN")) {

-			return "SWT.CTRL | SWT.SHIFT | N";

-		} else if (content.equals("CtrlShiftO")) {

-			return "SWT.CTRL | SWT.SHIFT | O";

-		} else if (content.equals("CtrlShiftP")) {

-			return "SWT.CTRL | SWT.SHIFT | P";

-		} else if (content.equals("CtrlShiftQ")) {

-			return "SWT.CTRL | SWT.SHIFT | Q";

-		} else if (content.equals("CtrlShiftR")) {

-			return "SWT.CTRL | SWT.SHIFT | R";

-		} else if (content.equals("CtrlShiftS")) {

-			return "SWT.CTRL | SWT.SHIFT | S";

-		} else if (content.equals("CtrlShiftT")) {

-			return "SWT.CTRL | SWT.SHIFT | T";

-		} else if (content.equals("CtrlShiftU")) {

-			return "SWT.CTRL | SWT.SHIFT | U";

-		} else if (content.equals("CtrlShiftV")) {

-			return "SWT.CTRL | SWT.SHIFT | V";

-		} else if (content.equals("CtrlShiftW")) {

-			return "SWT.CTRL | SWT.SHIFT | W";

-		} else if (content.equals("CtrlShiftX")) {

-			return "SWT.CTRL | SWT.SHIFT | X";

-		} else if (content.equals("CtrlShiftY")) {

-			return "SWT.CTRL | SWT.SHIFT | Y";

-		} else if (content.equals("CtrlShiftZ")) {

-			return "SWT.CTRL | SWT.SHIFT | Z";

-		} else if (content.equals("CtrlShiftEnter")) {

-			return "SWT.CTRL | SWT.SHIFT | Enter";

-		} else if (content.equals("CtrlShiftSpace")) {

-			return "SWT.CTRL | SWT.SHIFT | Space";

-		} else if (content.equals("CtrlT")) {

-			return "SWT.CTRL | T";

-		} else if (content.equals("CtrlU")) {

-			return "SWT.CTRL | U";

-		} else if (content.equals("CtrlV")) {

-			return "SWT.CTRL | V";

-		} else if (content.equals("CtrlW")) {

-			return "SWT.CTRL | W";

-		} else if (content.equals("CtrlX")) {

-			return "SWT.CTRL | X";

-		} else if (content.equals("CtrlY")) {

-			return "SWT.CTRL | Y";

-		} else if (content.equals("CtrlZ")) {

-			return "SWT.CTRL | Z";

-		} else if (content.equals("ShiftDel")) {

-			return "SWT.SHIFT | DEL";

-		} else if (content.equals("ShiftF1")) {

-			return "SWT.SHIFT | SWT.F1";

-		} else if (content.equals("ShiftF10")) {

-			return "SWT.SHIFT | SWT.F10";

-		} else if (content.equals("ShiftF11")) {

-			return "SWT.SHIFT | SWT.F11";

-		} else if (content.equals("ShiftF12")) {

-			return "SWT.SHIFT | SWT.F12";

-		} else if (content.equals("ShiftF3")) {

-			return "SWT.SHIFT | SWT.F2";

-		} else if (content.equals("ShiftF3")) {

-			return "SWT.SHIFT | SWT.F3";

-		} else if (content.equals("ShiftF4")) {

-			return "SWT.SHIFT | SWT.F4";

-		} else if (content.equals("ShiftF5")) {

-			return "SWT.SHIFT | SWT.F5";

-		} else if (content.equals("ShiftF6")) {

-			return "SWT.SHIFT | SWT.F6";

-		} else if (content.equals("ShiftF7")) {

-			return "SWT.SHIFT | SWT.F7";

-		} else if (content.equals("ShiftF8")) {

-			return "SWT.SHIFT | SWT.F8";

-		} else if (content.equals("ShiftF9")) {

-			return "SWT.SHIFT | SWT.F9";

-		} else if (content.equals("ShiftIns")) {

-			return "SWT.SHIFT | SWT.INSERT";

-		} else if (content.equals("ShiftEnter")) {

-			return "SWT.SHIFT | Enter";

-		} else if (content.equals("ShiftSpace")) {

-			return "SWT.SHIFT | Space";

-		} else if (content.equals("Enter")) {

-			return "Enter";

-		} else if (content.equals("Space")) {

-			return "Space";

-		} else {

-			return content;

-		}

-	}

-

-	private static void tryPut(Map<String,Integer> map, String swtConst) {

-		tryPut(map, swtConst, swtConst);

-	}

-

-	private static void tryPut(Map<String,Integer> map, String mapKey, String swtConst) {

-		try {

-			map.put(mapKey, SWT.class.getField(swtConst.substring(swtConst.lastIndexOf('.')+1, swtConst.length())).getInt(null));

-		} catch (Exception e) {

-			String message = "Failed to register SWT Constant "

-				+ swtConst

-				+ ". Excecption: "

-				+ e.getClass().getName()

-				+ " - "+ e.getMessage();

-			System.out.println(message);

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/AnimationTimeline.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/AnimationTimeline.java
deleted file mode 100644
index c6eab57..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/AnimationTimeline.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.animation.internal.ITimeline;

-import org.eclipse.xwt.animation.internal.PathPropertyAccessor;

-import org.eclipse.xwt.internal.utils.UserData;

-import org.eclipse.xwt.metadata.IMetaclass;

-import org.eclipse.xwt.metadata.IProperty;

-

-public abstract class AnimationTimeline extends Timeline {

-	private boolean isDestinationDefault;

-	private String targetName;

-	private String targetProperty;

-

-	private Object initValue;

-	private Object cacheValue;

-

-	public String getTargetName() {

-		return targetName;

-	}

-

-	public void setTargetName(String targetName) {

-		this.targetName = targetName;

-	}

-

-	public String getTargetProperty() {

-		return targetProperty;

-	}

-

-	public void setTargetProperty(String targetProperty) {

-		this.targetProperty = targetProperty;

-	}

-

-	/**

-	 * Getter of the property <tt>IsDestinationDefault</tt>

-	 * 

-	 * @return Returns the isDestinationDefault.

-	 * @uml.property name="IsDestinationDefault"

-	 */

-	public boolean getIsDestinationDefault() {

-		return isDestinationDefault;

-	}

-

-	/**

-	 * Setter of the property <tt>IsDestinationDefault</tt>

-	 * 

-	 * @param IsDestinationDefaultProperty

-	 *            The isDestinationDefault to set.

-	 * @uml.property name="IsDestinationDefault"

-	 */

-	public void setIsDestinationDefault(boolean isDestinationDefault) {

-		this.isDestinationDefault = isDestinationDefault;

-	}

-

-	protected void setCacheValue(Object cacheValue) {

-		this.cacheValue = cacheValue;

-	}

-

-	protected Object getCacheValue() {

-		return cacheValue;

-	}

-

-	protected Object getInitValue() {

-		return initValue;

-	}

-

-	protected void initialize(Object target) {

-		initValue = getCurrentValue(target);

-		cacheValue = initValue;

-	}

-	

-	protected void endFinalize(Object target) {

-		if (getFillBehavior() == FillBehavior.Stop) {

-			Object element = findTarget(target);

-			IMetaclass metaclass = XWT.getMetaclass(element);

-			IProperty property = metaclass.findProperty(getTargetProperty());

-			if (property == null) {

-				throw new XWTException("Property \"" + getTargetProperty()

-						+ "\" is not found in " + metaclass.getType().getName());

-			}

-			try {

-				property.setValue(element, initValue);

-			} catch (Exception e) {

-				throw new XWTException(e);

-			}

-		}

-	}

-	

-	protected Object getCurrentValue(Object target) {

-		Object element = findTarget(target);

-		IMetaclass metaclass = XWT.getMetaclass(element);

-		

-		String targetProperty = getTargetProperty();

-		int index = targetProperty.lastIndexOf('.');

-		if (index != -1) {

-			String lastNodePath = targetProperty.substring(0, index);

-			String lastNodeName = targetProperty.substring(index + 1);

-			PathPropertyAccessor<?> accessor = new PathPropertyAccessor(lastNodePath);

-			return accessor.get(element, lastNodeName);

-		}

-		else {

-			IProperty property = metaclass.findProperty(getTargetProperty());

-			if (property == null) {

-				throw new XWTException("Property \"" + getTargetProperty()

-						+ "\" is not found in " + metaclass.getType().getName());

-			}

-			try {

-				return property.getValue(element);

-			} catch (Exception e) {

-				throw new XWTException(e);

-			}			

-		}

-	}

-

-	@Override

-	protected Object findTarget(Object target) {

-		String targetName = getTargetName();

-		if (targetName == null) {

-			return target;

-		}

-		Object newTarget = UserData.findElementByName(target, targetName);

-		if (newTarget == null) {

-			throw new XWTException("Name element " + targetName

-					+ " is not found in animation.");

-		}

-		return super.findTarget(newTarget);

-	}

-

-	protected void update(ITimeline timeline) {

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/BackEase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/BackEase.java
deleted file mode 100644
index 4b74c70..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/BackEase.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.xwt.XWTException;

-

-/**

- * 

- * @author yyang

- */

-public class BackEase extends EasingFunctionBase {

-	private double amplitude = 1;

-

-	public double getAmplitude() {

-		return amplitude;

-	}

-

-	public void setAmplitude(double amplitude) {

-		this.amplitude = amplitude;

-	}

-

-	public double ease(double normalizedTime) {

-		switch (getEasingMode()) {

-		case EaseIn:

-			return easeValue(normalizedTime, getAmplitude());

-		case EaseOut:

-			return 1 - easeValue(1 - normalizedTime, getAmplitude());

-		case EaseInOut:

-			normalizedTime /= 0.5;

-			if (normalizedTime < 1)

-				return easeValue(normalizedTime, getAmplitude()) / 2;

-			return (2 - easeValue(2 - normalizedTime, getAmplitude())) / 2;

-		default:

-			throw new XWTException(getEasingMode().name() + " is supported.");

-		}

-	}

-

-	protected double easeValue(double normalizedTime, double amplitude) {

-		return normalizedTime * normalizedTime * normalizedTime

-				- normalizedTime * amplitude

-				* Math.sin(normalizedTime * Math.PI);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/BeginStoryboard.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/BeginStoryboard.java
deleted file mode 100644
index 9ae16f0..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/BeginStoryboard.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.xwt.core.TriggerAction;

-import org.eclipse.xwt.internal.utils.UserData;

-

-public class BeginStoryboard extends TriggerAction {

-	private HandoffBehavior handoffBehavior = HandoffBehavior.SnapshotAndReplace;

-	private String name;

-	private Storyboard storyboard;

-		

-	/**

-	 * Getter of the property <tt>HandoffBehavior</tt>

-	 * 

-	 * @return Returns the handoffBehavior.

-	 * @uml.property name="HandoffBehavior"

-	 */

-	public HandoffBehavior getHandoffBehavior() {

-		return handoffBehavior;

-	}

-

-	/**

-	 * Setter of the property <tt>HandoffBehavior</tt>

-	 * 

-	 * @param HandoffBehaviorProperty

-	 *            The handoffBehavior to set.

-	 * @uml.property name="HandoffBehavior"

-	 */

-	public void setHandoffBehavior(HandoffBehavior handoffBehavior) {

-		this.handoffBehavior = handoffBehavior;

-	}

-

-	/**

-	 * Getter of the property <tt>Name</tt>

-	 * 

-	 * @return Returns the name.

-	 * @uml.property name="Name"

-	 */

-	public String getName() {

-		return name;

-	}

-

-	/**

-	 * Setter of the property <tt>Name</tt>

-	 * 

-	 * @param NameProperty

-	 *            The name to set.

-	 * @uml.property name="Name"

-	 */

-	public void setName(String name) {

-		this.name = name;

-	}

-	

-	/**

-	 * Getter of the property <tt>Storyboard</tt>

-	 * 

-	 * @return Returns the Storyboard.

-	 * @uml.property name="Storyboard"

-	 */

-	public Storyboard getStoryboard() {

-		return storyboard;

-	}

-

-	/**

-	 * Setter of the property <tt>Storyboard</tt>

-	 * 

-	 * @param NameProperty

-	 *            The Storyboard to set.

-	 * @uml.property name="Storyboard"

-	 */

-	public void setStoryboard(Storyboard storyboard) {

-		this.storyboard = storyboard;

-	}

-	

-	@Override

-	public void initialize(Object target) {

-		if (name != null) {

-			UserData.findScopeKeeper(target).addNamedObject(name, this);			

-		}

-		getStoryboard().initialize(target);

-	}

-

-	@Override

-	public void endFinalize(Object target) {

-		getStoryboard().endFinalize(target);

-	}

-

-	@Override

-	public void run(Event event, Object target, Runnable stateChangedRunnable) {

-		getStoryboard().start(event, target, stateChangedRunnable);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/BooleanAnimationBase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/BooleanAnimationBase.java
deleted file mode 100644
index 551c3d1..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/BooleanAnimationBase.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public abstract class BooleanAnimationBase extends AnimationTimeline {

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/BounceEase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/BounceEase.java
deleted file mode 100644
index 54514a9..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/BounceEase.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.xwt.XWTException;

-

-/**

- * 

- * @author yyang

- */

-public class BounceEase extends EasingFunctionBase {

-	private int bounces = 5;

-	private double bounciness = 2;

-

-	public int getBounces() {

-		return bounces;

-	}

-

-	public void setBounces(int bounces) {

-		this.bounces = bounces;

-	}

-

-	public double getBounciness() {

-		return bounciness;

-	}

-

-	public void setBounciness(double bounciness) {

-		this.bounciness = bounciness;

-	}

-

-	public double ease(double normalizedTime) {

-		switch (getEasingMode()) {

-		case EaseIn:

-			return easeValue(normalizedTime, getBounces(), getBounciness());

-		case EaseOut:

-			return 1 - easeValue(1 - normalizedTime, getBounces(),

-					getBounciness());

-		case EaseInOut:

-			normalizedTime /= 0.5;

-			if (normalizedTime < 1)

-				return easeValue(normalizedTime, getBounces(), getBounciness()) / 2;

-			return (2 - easeValue(2 - normalizedTime, getBounces(),

-					getBounciness())) / 2;

-		default:

-			throw new XWTException(getEasingMode().name() + " is supported.");

-		}

-	}

-

-	protected static double easeValue(double current, int bounces, double bounciness) {

-		if (current == 0)

-			return 0;

-		if (current == 1)

-			return 1;

-		double angle = (Math.PI) * (bounces + 1);

-		double s = Math.asin(1) / angle;

-		return Math.pow(2, 10 * (current -= 1)) * Math.abs(Math

-				.sin((current - s) * angle));

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/ByteAnimationBase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/ByteAnimationBase.java
deleted file mode 100644
index 1356b61..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/ByteAnimationBase.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public abstract class ByteAnimationBase extends AnimationTimeline {

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/CharAnimationBase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/CharAnimationBase.java
deleted file mode 100644
index 464748e..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/CharAnimationBase.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public abstract class CharAnimationBase extends AnimationTimeline {

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/CircleEase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/CircleEase.java
deleted file mode 100644
index 84d222b..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/CircleEase.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.xwt.XWTException;

-

-/**

- * 

- * @author yyang

- */

-public class CircleEase extends EasingFunctionBase {

-	public double ease(double normalizedTime) {

-		if (normalizedTime < -1) {

-			normalizedTime = -1;

-		}

-		if (normalizedTime > 1) {

-			normalizedTime = 1;

-		}

-		switch (getEasingMode()) {

-		case EaseIn:

-			return easeValue(normalizedTime);

-		case EaseOut:

-			return  1 - (easeValue(1 - normalizedTime));

-		case EaseInOut:

-			normalizedTime /= 0.5;

-			if (normalizedTime < 1)

-				return (easeValue(normalizedTime)) / 2;

-			return (2 - easeValue(2 - normalizedTime)) / 2;

-		default:

-			throw new XWTException(getEasingMode().name() + " is supported.");

-		}

-	}

-	

-	protected double easeValue(double normalizedTime) {

-		return 1 - Math.sqrt(1 - normalizedTime * normalizedTime);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/Clock.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/Clock.java
deleted file mode 100644
index 2520f0f..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/Clock.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public class Clock {

-	protected Clock parent;

-	protected boolean isPaused = false;

-	protected Duration naturalDuration;

-	protected Timeline currentTime;

-	protected double currentGlobalSpeed;

-	protected TimeSpan currentGlobalTime;

-	protected int currentIteration;

-	protected double currentProgress;

-	protected ClockState currentState;

-	protected ClockController controller;

-	protected boolean hasControllableRoot;

-

-	public Clock getParent() {

-		return parent;

-	}

-	public void setParent(Clock parent) {

-		this.parent = parent;

-	}

-	public boolean isPaused() {

-		return isPaused;

-	}

-	public void setPaused(boolean isPaused) {

-		this.isPaused = isPaused;

-	}

-	public Duration getNaturalDuration() {

-		return naturalDuration;

-	}

-	public void setNaturalDuration(Duration naturalDuration) {

-		this.naturalDuration = naturalDuration;

-	}

-	public Timeline getCurrentTime() {

-		return currentTime;

-	}

-	public void setCurrentTime(Timeline currentTime) {

-		this.currentTime = currentTime;

-	}

-	public double getCurrentGlobalSpeed() {

-		return currentGlobalSpeed;

-	}

-	public void setCurrentGlobalSpeed(double currentGlobalSpeed) {

-		this.currentGlobalSpeed = currentGlobalSpeed;

-	}

-	public TimeSpan getCurrentGlobalTime() {

-		return currentGlobalTime;

-	}

-	public void setCurrentGlobalTime(TimeSpan currentGlobalTime) {

-		this.currentGlobalTime = currentGlobalTime;

-	}

-	public int getCurrentIteration() {

-		return currentIteration;

-	}

-	public void setCurrentIteration(int currentIteration) {

-		this.currentIteration = currentIteration;

-	}

-	public double getCurrentProgress() {

-		return currentProgress;

-	}

-	public void setCurrentProgress(double currentProgress) {

-		this.currentProgress = currentProgress;

-	}

-	public ClockState getCurrentState() {

-		return currentState;

-	}

-	public void setCurrentState(ClockState currentState) {

-		this.currentState = currentState;

-	}

-	public ClockController getController() {

-		return controller;

-	}

-	public void setController(ClockController controller) {

-		this.controller = controller;

-	}

-	public boolean isHasControllableRoot() {

-		return this.hasControllableRoot;

-	}

-	public void setHasControllableRoot(boolean hasControllableRoot) {

-		this.hasControllableRoot = hasControllableRoot;

-	}	

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/ClockController.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/ClockController.java
deleted file mode 100644
index a9c5f46..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/ClockController.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public class ClockController {

-	protected Clock clock;

-	protected double speedRatio;

-

-	public Clock getClock() {

-		return clock;

-	}

-	public void setClock(Clock clock) {

-		this.clock = clock;

-	}

-	public double getSpeedRatio() {

-		return speedRatio;

-	}

-	public void setSpeedRatio(double speedRatio) {

-		this.speedRatio = speedRatio;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/ClockState.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/ClockState.java
deleted file mode 100644
index 7a64f24..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/ClockState.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public enum ClockState {

-	Active, Filling, Stopped;

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/ColorAnimation.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/ColorAnimation.java
deleted file mode 100644
index 136c7d9..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/ColorAnimation.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.swt.graphics.Color;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.animation.internal.ITimeline;

-import org.eclipse.xwt.animation.internal.TridentTimeline;

-

-public class ColorAnimation extends AnimationTimeline {

-	private Color from;

-	private Color by;

-	private Color to;

-	

-	public Color getTo() {

-		return to;

-	}

-	

-	public void setTo(Color to) {

-		this.to = to;

-	}

-	

-	public Color getFrom() {

-		return from;

-	}

-	

-	public void setFrom(Color from) {

-		this.from = from;

-	}

-	

-	public Color getBy() {

-		return by;

-	}

-	

-	public void setBy(Color by) {

-		this.by = by;

-	}

-		

-	protected void updateTimeline(ITimeline timeline, Object target) {

-		super.updateTimeline(timeline, target);

-		if (timeline instanceof TridentTimeline) {

-			TridentTimeline tridentTimeline = (TridentTimeline) (timeline);

-			Color from = getFrom();

-			Color to = getTo();

-			if (from == null && to == null) {

-				from = (Color) getCacheValue();

-				to = (Color) getCurrentValue(target);

-				if (from != null && from.equals(to)) {

-					throw new XWTException("action ignored");

-				}

-			}

-			tridentTimeline.addPropertyToInterpolate(getTargetProperty(), from, to);

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/ControllableStoryboardAction.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/ControllableStoryboardAction.java
deleted file mode 100644
index ee921bb..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/ControllableStoryboardAction.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.core.TriggerAction;

-import org.eclipse.xwt.internal.utils.UserData;

-

-public abstract class ControllableStoryboardAction extends TriggerAction {

-	private String beginStoryboardName;

-	private Storyboard storyboard;

-	

-	protected Storyboard getStoryboard() {

-		return storyboard;

-	}

-

-	/**

-	 * Getter of the property <tt>BeginStoryboardName</tt>

-	 * 

-	 * @return Returns the beginStoryboardName.

-	 * @uml.property name="BeginStoryboardName"

-	 */

-	public String getBeginStoryboardName() {

-		return beginStoryboardName;

-	}

-

-	/**

-	 * Setter of the property <tt>BeginStoryboardName</tt>

-	 * 

-	 * @param BeginStoryboardNameProperty

-	 *            The beginStoryboardName to set.

-	 * @uml.property name="BeginStoryboardName"

-	 */

-	public void setBeginStoryboardName(String beginStoryboardName) {

-		this.beginStoryboardName = beginStoryboardName;

-	}

-	

-	@Override

-	public void initialize(Object target) {

-		String beginStoryboardName = getBeginStoryboardName();

-		if (beginStoryboardName == null || beginStoryboardName.length() == 0) {

-			return;

-		}

-		Object element = UserData.findElementByName(target, beginStoryboardName);

-		if (element instanceof BeginStoryboard) {

-			BeginStoryboard beginStoryboard = (BeginStoryboard) element;

-			storyboard = beginStoryboard.getStoryboard();

-		}

-		else {

-			throw new XWTException("NeginStoryboardName " + beginStoryboardName + " is not found.");

-		}

-	}

-	

-	public void endFinalize(Object target) {

-		storyboard.endFinalize(target);

-	}

-	

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/CubicEase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/CubicEase.java
deleted file mode 100644
index c1af265..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/CubicEase.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.xwt.XWTException;

-

-/**

- * 

- * @author yyang

- */

-public class CubicEase extends EasingFunctionBase {

-	public double ease(double normalizedTime) {

-		switch (getEasingMode()) {

-		case EaseIn:

-			return normalizedTime * normalizedTime * normalizedTime;

-		case EaseOut:

-			normalizedTime = 1 - normalizedTime;

-			return 1 - normalizedTime * normalizedTime * normalizedTime;

-		case EaseInOut:

-			normalizedTime /= 0.5;

-			if (normalizedTime < 1)

-				return normalizedTime * normalizedTime * normalizedTime / 2;

-			normalizedTime = 2 - normalizedTime;

-			return ( 2 - normalizedTime * normalizedTime * normalizedTime) / 2;

-		default:

-			throw new XWTException(getEasingMode().name() + " is supported.");

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/DecimalAnimationBase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/DecimalAnimationBase.java
deleted file mode 100644
index 8f57841..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/DecimalAnimationBase.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public abstract class DecimalAnimationBase extends AnimationTimeline {

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/DiscreteDoubleKeyFrame.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/DiscreteDoubleKeyFrame.java
deleted file mode 100644
index f331a7e..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/DiscreteDoubleKeyFrame.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.pushingpixels.trident.Timeline;

-

-public class DiscreteDoubleKeyFrame extends DoubleKeyFrame {

-	

-	@Override

-	protected void start(Timeline timeline, Object target) {

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleAnimation.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleAnimation.java
deleted file mode 100644
index a4c46ef..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleAnimation.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.animation.internal.ITimeline;

-import org.eclipse.xwt.animation.internal.TridentTimeline;

-

-public class DoubleAnimation extends DoubleAnimationBase {

-	private Double by;

-	private Double from;

-	private Double to;

-	private IEasingFunction easingFunction;

-	

-	/**

-	 * The <code>additive</code> property specifies whether you want the output value of 

-	 * an animation added to the starting value (base value) of an animated property. You 

-	 * can use the <code>additive</code> property with most basic animations and most key 

-	 * frame animations. 

-	 * 

-	 * For more information, see Animation Overview and Key-Frame Animations Overview.

-	 */

-	protected boolean additive = false;

-	

-	/**

-	 * Use the <code>cumulative</code> property to accumulate base values of an animation 

-	 * across repeating cycles. For example, if you set an animation to repeat 9 times 

-	 * (RepeatBehavior = “9x”) and you set the property to animate between 10 and 15 

-	 * (From = 10 To = 15), the property animates from 10 to 15 during the first cycle, 

-	 * from 15 to 20 during the second cycle, from 20 to 25 during the third cycle, 

-	 * and so on. Hence, each animation cycle uses the ending animation value from the 

-	 * previous animation cycle as its base value.

-	 * 

-	 * You can use the <code>cumulative</code> property with most basic animations and 

-	 * most key frame animations. 

-	 * 

-	 * For more information, see Animation Overview and Key-Frame Animations Overview.

-	 */

-	protected boolean cumulative = false;

-

-	public DoubleAnimation() {

-	}

-	

-	public DoubleAnimation(Double toValue, Duration duration) {

-		setTo(toValue);

-		setDuration(duration);

-	}

-	

-	public DoubleAnimation(Double fromValue, Double toValue, Duration duration) {

-		setTo(toValue);

-		setFrom(fromValue);

-		setDuration(duration);

-	}

-	

-	public DoubleAnimation(Double toValue, Duration duration, FillBehavior fillBehavior) {

-		setTo(toValue);

-		setDuration(duration);

-		setFillBehavior(fillBehavior);

-	}

-	

-	public DoubleAnimation(Double fromValue, Double toValue, Duration duration, FillBehavior fillBehavior) {

-		setTo(toValue);

-		setFrom(fromValue);

-		setDuration(duration);

-		setFillBehavior(fillBehavior);

-	}

-

-	public IEasingFunction getEasingFunction() {

-		return easingFunction;

-	}

-

-	public void setEasingFunction(IEasingFunction easingFunction) {

-		this.easingFunction = easingFunction;

-	}

-

-	public Double getBy() {

-		return by;

-	}

-

-	public void setBy(Double by) {

-		this.by = by;

-	}

-

-	public Double getFrom() {

-		return from;

-	}

-

-	public void setFrom(Double from) {

-		this.from = from;

-	}

-

-	public Double getTo() {

-		return to;

-	}

-

-	public void setTo(Double to) {

-		this.to = to;

-	}

-

-	public boolean isAdditive() {

-		return additive;

-	}

-

-	public void setAdditive(boolean additive) {

-		this.additive = additive;

-	}

-

-	public boolean isCumulative() {

-		return cumulative;

-	}

-

-	public void setCumulative(boolean cumulative) {

-		this.cumulative = cumulative;

-	}

-	

-	protected void updateTimeline(ITimeline timeline, Object target) {

-		super.updateTimeline(timeline, target);

-		if (timeline instanceof TridentTimeline) {

-			TridentTimeline tridentTimeline = (TridentTimeline) (timeline);

-			Double from = getFrom();

-			Double to = getTo();

-			if (from == null && to == null) {

-				from = (Double) getCacheValue();

-				to = (Double) getCurrentValue(target);

-				if (from != null && from.equals(to)) {

-					throw new XWTException("action ignored");

-				}

-			}

-			tridentTimeline.addPropertyToInterpolate(getTargetProperty(), from, to);

-			tridentTimeline.setEasingFunction(getEasingFunction());

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleAnimationBase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleAnimationBase.java
deleted file mode 100644
index 9ae137b..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleAnimationBase.java
+++ /dev/null
@@ -1,14 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public abstract class DoubleAnimationBase extends AnimationTimeline {

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleAnimationUsingKeyFrames.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleAnimationUsingKeyFrames.java
deleted file mode 100644
index a428587..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleAnimationUsingKeyFrames.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.xwt.animation.internal.ITimeline;

-

-public class DoubleAnimationUsingKeyFrames extends DoubleAnimationBase {

-	/**

-	 * Use the <code>cumulative</code> property to accumulate base values of an animation 

-	 * across repeating cycles. For example, if you set an animation to repeat 9 times 

-	 * (RepeatBehavior = “9x”) and you set the property to animate between 10 and 15 

-	 * (From = 10 To = 15), the property animates from 10 to 15 during the first cycle, 

-	 * from 15 to 20 during the second cycle, from 20 to 25 during the third cycle, 

-	 * and so on. Hence, each animation cycle uses the ending animation value from the 

-	 * previous animation cycle as its base value.

-	 * 

-	 * You can use the <code>cumulative</code> property with most basic animations and 

-	 * most key frame animations. 

-	 * 

-	 * For more information, see Animation Overview and Key-Frame Animations Overview.

-	 */

-	private boolean cumulative = false;

-	

-	/**

-	 * The <code>additive</code> property specifies whether you want the output value of 

-	 * an animation added to the starting value (base value) of an animated property. You 

-	 * can use the <code>additive</code> property with most basic animations and most key 

-	 * frame animations. 

-	 * 

-	 * For more information, see Animation Overview and Key-Frame Animations Overview.

-	 */

-	private boolean additive = false;

-	private DoubleKeyFrame[] keyFrames = DoubleKeyFrame.EMPTY_ARRAY;

-	

-	public DoubleKeyFrame[] getKeyFrames() {

-		return keyFrames;

-	}

-

-	public void setKeyFrames(DoubleKeyFrame[] keyFrames) {

-		this.keyFrames = keyFrames;

-	}

-

-	public boolean isCumulative() {

-		return cumulative;

-	}

-

-	public void setCumulative(boolean cumulative) {

-		this.cumulative = cumulative;

-	}

-

-	public boolean isAdditive() {

-		return additive;

-	}

-

-	public void setAdditive(boolean additive) {

-		this.additive = additive;

-	}

-

-	protected void updateTimeline(ITimeline timeline, Object target) {

-		super.updateTimeline(timeline, target);

-//		for (DoubleKeyFrame doubleKeyFrame : getKeyFrames()) {

-//		doubleKeyFrame.start(timeline, target);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleAnimationUsingPath.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleAnimationUsingPath.java
deleted file mode 100644
index 8e72b88..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleAnimationUsingPath.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.xwt.animation.internal.ITimeline;

-

-public class DoubleAnimationUsingPath extends DoubleAnimationBase {

-

-	protected void updateTimeline(ITimeline timeline, Object target) {

-		super.updateTimeline(timeline, target);

-//		for (DoubleKeyFrame doubleKeyFrame : getKeyFrames()) {

-//		doubleKeyFrame.start(timeline, target);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleKeyFrame.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleKeyFrame.java
deleted file mode 100644
index 76755a4..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleKeyFrame.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.pushingpixels.trident.Timeline;

-

-public abstract class DoubleKeyFrame {

-	public static final DoubleKeyFrame[] EMPTY_ARRAY = {}; 

-	private KeyTime keyTime;

-	private Double value;

-

-	public KeyTime getKeyTime() {

-		return keyTime;

-	}

-

-	public void setKeyTime(KeyTime keyTime) {

-		this.keyTime = keyTime;

-	}

-

-	public Double getValue() {

-		return value;

-	}

-

-	public void setValue(Double value) {

-		this.value = value;

-	}

-

-	protected void start(Timeline timeline, Object target) {

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/Drawing.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/Drawing.java
deleted file mode 100644
index 706a26f..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/Drawing.java
+++ /dev/null
@@ -1,16 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *     Anyware-tech - add multiple loaders

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public class Drawing {

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/Duration.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/Duration.java
deleted file mode 100644
index 077f2a9..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/Duration.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public class Duration {

-	enum DurationType {

-		Automatic, Forever, TimeSpan;

-	}

-

-	/**

-	 * Property getter.

-	 * 

-	 * @property(Automatic)

-	 */

-	public static Duration getAutomatic() {

-		Duration duration1 = new Duration();

-		duration1.durationType = DurationType.Automatic;

-		return duration1;

-	}

-

-	/**

-	 * Property getter.

-	 * 

-	 * @property(Forever)

-	 */

-	public static Duration getForever() {

-		Duration duration1 = new Duration();

-		duration1.durationType = DurationType.Forever;

-		return duration1;

-	}

-

-	protected DurationType durationType;

-	protected TimeSpan timeSpan;

-

-	protected Duration() {

-	}

-

-	public Duration(TimeSpan timeSpan) {

-		this.durationType = DurationType.TimeSpan;

-		this.timeSpan = timeSpan;

-	}

-

-	/**

-	 * Property getter.

-	 * 

-	 * @property(HasTimeSpan)

-	 */

-	public boolean hasTimeSpan() {

-		return (this.durationType == DurationType.TimeSpan);

-	}

-

-	/**

-	 * Property getter.

-	 * 

-	 * @property(TimeSpan)

-	 */

-	public TimeSpan getTimeSpan() {

-		if (!this.hasTimeSpan()) {

-			throw new UnsupportedOperationException();

-		}

-		return this.timeSpan;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/EasingDoubleKeyFrame.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/EasingDoubleKeyFrame.java
deleted file mode 100644
index b65c1f5..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/EasingDoubleKeyFrame.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-

-public class EasingDoubleKeyFrame extends DoubleKeyFrame {

-	private IEasingFunction easingFunction;

-	

-	public IEasingFunction getEasingFunction() {

-		return easingFunction;

-	}

-

-	public void setEasingFunction(IEasingFunction easingFunction) {

-		this.easingFunction = easingFunction;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/EasingFunctionBase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/EasingFunctionBase.java
deleted file mode 100644
index 0d8eb8d..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/EasingFunctionBase.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public abstract class EasingFunctionBase implements IEasingFunction {

-	private EasingMode easingMode = EasingMode.EaseOut; 

-	

-	public EasingMode getEasingMode() {

-		return easingMode;

-	}

-

-	public void setEasingMode(EasingMode easingMode) {

-		this.easingMode = easingMode;

-	}

-

-	final public float map(float durationFraction) {

-		return (float) ease(durationFraction);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/EasingMode.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/EasingMode.java
deleted file mode 100644
index 16370f2..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/EasingMode.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public enum EasingMode {

-	EaseOut, EaseIn, EaseInOut;

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/ElasticEase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/ElasticEase.java
deleted file mode 100644
index 6227af8..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/ElasticEase.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.xwt.XWTException;

-

-/**

- * 

- * @author yyang

- */

-public class ElasticEase extends EasingFunctionBase {

-	private int oscillations = 3;

-	private double springiness = 3;

-

-	public int getOscillations() {

-		return oscillations;

-	}

-

-	public void setOscillations(int oscillations) {

-		this.oscillations = oscillations;

-	}

-

-	public double getSpringiness() {

-		return springiness;

-	}

-

-	public void setSpringiness(double springiness) {

-		this.springiness = springiness;

-	}

-

-	public double ease(double normalizedTime) {

-		switch (getEasingMode()) {

-		case EaseIn:

-			return easeValue(normalizedTime, getOscillations(),

-					getSpringiness());

-		case EaseOut:

-			return 1 - easeValue(1 - normalizedTime, getOscillations(),

-					getSpringiness());

-		case EaseInOut:

-			normalizedTime /= 0.5;

-			if (normalizedTime < 1)

-				return easeValue(normalizedTime, getOscillations(),

-						getSpringiness()) / 2;

-			return (2 - easeValue(2 - normalizedTime, getOscillations(),

-					getSpringiness())) / 2;

-		default:

-			throw new XWTException(getEasingMode().name() + " is supported.");

-		}

-	}

-

-	protected double easeValue(double current, int oscillations,

-			double springiness) {

-		if (current == 0)

-			return 0;

-		if (current == 1)

-			return 1;

-		double s = Math.asin(1) / ((2 * Math.PI) * oscillations);

-		return -(Math.pow(2, 10 * (current -= 1)) * Math.sin((current - s)

-				* (2 * Math.PI) * oscillations));

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/ExponentialEase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/ExponentialEase.java
deleted file mode 100644
index 3bc5705..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/ExponentialEase.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.xwt.XWTException;

-

-/**

- * 

- * @author yyang

- */

-public class ExponentialEase extends EasingFunctionBase {

-	private double exponent = 2;

-

-	public double getExponent() {

-		return exponent;

-	}

-

-	public void setExponent(double exponent) {

-		this.exponent = exponent;

-	}

-

-	public double ease(double normalizedTime) {

-		switch (getEasingMode()) {

-		case EaseIn:

-			return easeValue(normalizedTime);

-		case EaseOut:

-			return 1 - easeValue(1 - normalizedTime);

-		case EaseInOut:

-			normalizedTime /= 0.5;

-			if (normalizedTime < 1)

-				return easeValue(normalizedTime) / 2;

-			return (2 - easeValue(2 - normalizedTime)) / 2;

-		default:

-			throw new XWTException(getEasingMode().name() + " is supported.");

-		}

-	}

-

-	protected double easeValue(double normalizedTime) {

-		return (Math.exp(normalizedTime * getExponent()) - 1)

-				/ (Math.exp(getExponent()) - 1);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/FillBehavior.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/FillBehavior.java
deleted file mode 100644
index 18382da..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/FillBehavior.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public enum FillBehavior {

-	HoldEnd, Stop;

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/FloatAnimation.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/FloatAnimation.java
deleted file mode 100644
index 7271c66..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/FloatAnimation.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.animation.internal.ITimeline;

-import org.eclipse.xwt.animation.internal.TridentTimeline;

-

-/**

- * 

- * @author yyang

- */

-public class FloatAnimation extends FloatAnimationBase {

-	protected Float by;

-	protected Float from;

-	protected Float to;

-	

-	private IEasingFunction easingFunction;

-

-	/**

-	 * The <code>additive</code> property specifies whether you want the output value of 

-	 * an animation added to the starting value (base value) of an animated property. You 

-	 * can use the <code>additive</code> property with most basic animations and most key 

-	 * frame animations. 

-	 * 

-	 * For more information, see Animation Overview and Key-Frame Animations Overview.

-	 */

-	protected boolean additive = false;

-	

-	/**

-	 * Use the <code>cumulative</code> property to accumulate base values of an animation 

-	 * across repeating cycles. For example, if you set an animation to repeat 9 times 

-	 * (RepeatBehavior = “9x”) and you set the property to animate between 10 and 15 

-	 * (From = 10 To = 15), the property animates from 10 to 15 during the first cycle, 

-	 * from 15 to 20 during the second cycle, from 20 to 25 during the third cycle, 

-	 * and so on. Hence, each animation cycle uses the ending animation value from the 

-	 * previous animation cycle as its base value.

-	 * 

-	 * You can use the <code>cumulative</code> property with most basic animations and 

-	 * most key frame animations. 

-	 * 

-	 * For more information, see Animation Overview and Key-Frame Animations Overview.

-	 */

-	protected boolean cumulative = false;

-

-	public FloatAnimation() {

-	}

-	

-	public IEasingFunction getEasingFunction() {

-		return easingFunction;

-	}

-

-	public void setEasingFunction(IEasingFunction easingFunction) {

-		this.easingFunction = easingFunction;

-	}

-

-	public FloatAnimation(Float toValue, Duration duration) {

-		setTo(toValue);

-		setDuration(duration);

-	}

-	

-	public FloatAnimation(Float fromValue, Float toValue, Duration duration) {

-		setTo(toValue);

-		setFrom(fromValue);

-		setDuration(duration);

-	}

-	

-	public FloatAnimation(Float toValue, Duration duration, FillBehavior fillBehavior) {

-		setTo(toValue);

-		setDuration(duration);

-		setFillBehavior(fillBehavior);

-	}

-	

-	public FloatAnimation(Float fromValue, Float toValue, Duration duration, FillBehavior fillBehavior) {

-		setTo(toValue);

-		setFrom(fromValue);

-		setDuration(duration);

-		setFillBehavior(fillBehavior);

-	}

-

-	public Float getBy() {

-		return by;

-	}

-

-	public void setBy(Float by) {

-		this.by = by;

-	}

-

-	public Float getFrom() {

-		return from;

-	}

-

-	public void setFrom(Float from) {

-		this.from = from;

-	}

-

-	public Float getTo() {

-		return to;

-	}

-

-	public void setTo(Float to) {

-		this.to = to;

-	}

-

-	public boolean isAdditive() {

-		return additive;

-	}

-

-	public void setAdditive(boolean additive) {

-		this.additive = additive;

-	}

-

-	public boolean isCumulative() {

-		return cumulative;

-	}

-

-	public void setCumulative(boolean cumulative) {

-		this.cumulative = cumulative;

-	}

-	

-	protected void updateTimeline(ITimeline timeline, Object target) {

-		super.updateTimeline(timeline, target);

-		if (timeline instanceof TridentTimeline) {

-			TridentTimeline tridentTimeline = (TridentTimeline) (timeline);

-			Float from = getFrom();

-			Float to = getTo();

-			if (from == null && to == null) {

-				from = (Float) getCacheValue();

-				to = (Float) getCurrentValue(target);

-				if (from != null && from.equals(to)) {

-					throw new XWTException("action ignored");

-				}

-			}

-			tridentTimeline.addPropertyToInterpolate(getTargetProperty(), from, to);

-			tridentTimeline.setEasingFunction(getEasingFunction());

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/FloatAnimationBase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/FloatAnimationBase.java
deleted file mode 100644
index d946723..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/FloatAnimationBase.java
+++ /dev/null
@@ -1,14 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public abstract class FloatAnimationBase extends AnimationTimeline {

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/HandoffBehavior.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/HandoffBehavior.java
deleted file mode 100644
index d7058c6..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/HandoffBehavior.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public enum HandoffBehavior {

-	SnapshotAndReplace, Compose;

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/IEasingFunction.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/IEasingFunction.java
deleted file mode 100644
index 720ca16..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/IEasingFunction.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.pushingpixels.trident.ease.TimelineEase;

-

-/**

- * 

- * @author yyang

- */

-public interface IEasingFunction extends TimelineEase {

-	double ease(double normalizedTime);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/Int16AnimationBase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/Int16AnimationBase.java
deleted file mode 100644
index 4a02d9d..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/Int16AnimationBase.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public abstract class Int16AnimationBase extends AnimationTimeline {

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/Int64AnimationBase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/Int64AnimationBase.java
deleted file mode 100644
index 2e2d11f..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/Int64AnimationBase.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public abstract class Int64AnimationBase extends AnimationTimeline {

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/IntAnimation.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/IntAnimation.java
deleted file mode 100644
index 4afb496..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/IntAnimation.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.xwt.animation.internal.ITimeline;

-import org.eclipse.xwt.animation.internal.TridentTimeline;

-

-/**

- * 

- * @author yyang

- */

-public class IntAnimation extends AnimationTimeline {

-	private Integer from;

-	private Integer by;

-	private Integer to;

-

-	private IEasingFunction easingFunction;

-

-	public IEasingFunction getEasingFunction() {

-		return easingFunction;

-	}

-

-	public void setEasingFunction(IEasingFunction easingFunction) {

-		this.easingFunction = easingFunction;

-	}

-

-	public Integer getTo() {

-		return to;

-	}

-

-	public void setTo(Integer to) {

-		this.to = to;

-	}

-

-	public Integer getFrom() {

-		return from;

-	}

-

-	public void setFrom(Integer from) {

-		this.from = from;

-	}

-

-	public Integer getBy() {

-		return by;

-	}

-

-	public void setBy(Integer by) {

-		this.by = by;

-	}

-

-	protected void updateTimeline(ITimeline timeline, Object target) {

-		super.updateTimeline(timeline, target);

-		if (timeline instanceof TridentTimeline) {

-			TridentTimeline tridentTimeline = (TridentTimeline) (timeline);

-			Integer from = getFrom();

-			Integer to = getTo();

-			if (from == null && to == null) {

-				from = (Integer) getCacheValue();

-				to = (Integer) getCurrentValue(target);

-				if (from != null && from.equals(to)) {

-					return;

-				}

-			}

-			tridentTimeline.addPropertyToInterpolate(getTargetProperty(), from,

-					to);

-			tridentTimeline.setEasingFunction(getEasingFunction());

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/KeySpline.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/KeySpline.java
deleted file mode 100644
index 4d74386..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/KeySpline.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.graphics.Point;

-

-public class KeySpline {

-	private Point controlPoint1;

-	private Point controlPoint2;

-

-	public Point getControlPoint1() {

-		return controlPoint1;

-	}

-

-	public void setControlPoint1(Point controlPoint1) {

-		this.controlPoint1 = controlPoint1;

-	}

-

-	public Point getControlPoint2() {

-		return controlPoint2;

-	}

-

-	public void setControlPoint2(Point controlPoint2) {

-		this.controlPoint2 = controlPoint2;

-	}

-		

-	public static KeySpline fromString(String content) {

-		String[] segments = content.split("[, \t\n\r\f]");

-		if (segments.length == 4) {

-			double[] values = new double[segments.length];

-			for (int i = 0; i < values.length; i++) {

-				values[i] = Double.parseDouble(segments[i]);

-			}

-			KeySpline keySpline = new KeySpline();

-			keySpline.setControlPoint1(new Point(values[0], values[1]));

-			keySpline.setControlPoint2(new Point(values[2], values[3]));

-			return keySpline;

-		}

-		throw new XWTException("Wrong format: " + content);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/KeyTime.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/KeyTime.java
deleted file mode 100644
index def7bfc..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/KeyTime.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.xwt.XWTException;

-

-public class KeyTime {

-	private TimeSpan timeSpan;

-	private double percent;

-	private KeyTimeType type;

-	

-	public static KeyTime Paced = new KeyTime(KeyTimeType.Paced);

-	public static KeyTime Uniform = new KeyTime(KeyTimeType.Uniform);

-	

-	protected KeyTime(KeyTimeType type) {

-		this.type = type;

-	}

-	

-	protected KeyTime(String content) {

-		if (content.endsWith("%")) {

-			type = KeyTimeType.Percent;

-			

-			return;

-		}

-		int index = content.indexOf(":");

-		if (index != -1) {

-			type = KeyTimeType.TimeSpan;

-			timeSpan = TimeSpan.parse(content);

-			return;

-		}

-		throw new XWTException("Wrong syntax: " + content);

-	}

-	

-	public TimeSpan getTimeSpan() {

-		return timeSpan;

-	}

-

-	public double getPercent() {

-		return percent;

-	}

-

-	public KeyTimeType getType() {

-		return type;

-	}

-	

-	public static KeyTime fromString(String content) {

-		if ("Paced".equalsIgnoreCase(content)) {

-			return Paced;

-		}

-		else if ("Uniform".equalsIgnoreCase(content)) {

-			return Uniform;

-		}

-		return new KeyTime(content);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/KeyTimeType.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/KeyTimeType.java
deleted file mode 100644
index 2b59637..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/KeyTimeType.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public enum KeyTimeType {

-	/**

-	 * Uniform Specifies that the allotted total time for an animation sequence

-	 * is divided evenly amongst each of the key frames.

-	 */

-	Uniform,

-	/**

-	 * Percent Specifies that each KeyTime value is expressed as a percentage of

-	 * the total time allotted for a given animation sequence.

-	 */

-	Percent,

-	/**

-	 * TimeSpan Specifies that each KeyTime is expressed as a TimeSpan value

-	 * relative to the BeginTime of an animation sequence.

-	 */

-	TimeSpan,

-	/**

-	 * Paced Specifies that adjacent KeyFrames are each allotted a slice of time

-	 * proportional to their length, respectively. The overall goal is to

-	 * produce a length value that keeps the pace of the animation sequence

-	 * constant.

-	 */

-	Paced;

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/LinearDoubleKeyFrame.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/LinearDoubleKeyFrame.java
deleted file mode 100644
index 2e350ae..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/LinearDoubleKeyFrame.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.pushingpixels.trident.Timeline;

-

-public class LinearDoubleKeyFrame extends DoubleKeyFrame {

-	@Override

-	protected void start(Timeline timeline, Object target) {

-		super.start(timeline, target);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/MatrixAnimationBase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/MatrixAnimationBase.java
deleted file mode 100644
index c5613fe..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/MatrixAnimationBase.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public abstract class MatrixAnimationBase extends AnimationTimeline {

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/ObjectAnimationBase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/ObjectAnimationBase.java
deleted file mode 100644
index 3c214f3..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/ObjectAnimationBase.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public abstract class ObjectAnimationBase extends AnimationTimeline {

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/ParallelTimeline.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/ParallelTimeline.java
deleted file mode 100644
index a9a06e1..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/ParallelTimeline.java
+++ /dev/null
@@ -1,14 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public class ParallelTimeline extends TimelineGroup {

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/ParseNumbers.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/ParseNumbers.java
deleted file mode 100644
index 9935e52..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/ParseNumbers.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public class ParseNumbers {

-	

-	public static String intToString(int n, int m, int digits, char ch, int d) {

-		String value = Integer.toString(n, m);

-

-		if (ch != 0) {

-			String prefix = Character.toString(ch);

-

-			for (int i = digits - value.length(); i > 0; i--) {

-				value = prefix + value;

-			}

-		}

-

-		return value;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/PauseStoryboard.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/PauseStoryboard.java
deleted file mode 100644
index caf6507..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/PauseStoryboard.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.swt.widgets.Event;

-

-public class PauseStoryboard extends ControllableStoryboardAction {

-	@Override

-	public void run(Event event, Object target, Runnable stateChangedRunnable) {

-		Storyboard storyboard = getStoryboard();

-		if (storyboard != null) {

-			storyboard.pause(event, stateChangedRunnable);

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/Point3DAnimationBase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/Point3DAnimationBase.java
deleted file mode 100644
index 3a93d74..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/Point3DAnimationBase.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public abstract class Point3DAnimationBase extends AnimationTimeline {

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/PointAnimation.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/PointAnimation.java
deleted file mode 100644
index 9f1556d..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/PointAnimation.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.swt.graphics.Point;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.animation.internal.ITimeline;

-import org.eclipse.xwt.animation.internal.TridentTimeline;

-import org.eclipse.xwt.animation.interpolator.PointPropertyInterpolator;

-import org.pushingpixels.trident.TridentConfig;

-

-/**

- * 

- * @author yyang

- */

-public class PointAnimation extends AnimationTimeline {

-	private Point from;

-	private Point to;

-	private Point by;

-	private IEasingFunction easingFunction;

-

-	static {

-		TridentConfig.getInstance().addPropertyInterpolator(new PointPropertyInterpolator());

-	}

-

-	public IEasingFunction getEasingFunction() {

-		return easingFunction;

-	}

-

-	public void setEasingFunction(IEasingFunction easingFunction) {

-		this.easingFunction = easingFunction;

-	}

-

-	public Point getFrom() {

-		return from;

-	}

-

-	public void setFrom(Point from) {

-		this.from = from;

-	}

-

-	public Point getTo() {

-		return to;

-	}

-

-	public void setTo(Point to) {

-		this.to = to;

-	}

-	

-	protected void updateTimeline(ITimeline timeline, Object target) {

-		super.updateTimeline(timeline, target);

-		if (timeline instanceof TridentTimeline) {

-			TridentTimeline tridentTimeline = (TridentTimeline) (timeline);

-			Point from = getFrom();

-			Point to = getTo();

-			if (from == null && to == null) {

-				from = (Point) getCacheValue();

-				to = (Point) getCurrentValue(target);

-				if (from.x == 0 && from.y == 0) {

-					setCacheValue(to);

-					throw new XWTException("action ignored");

-				}

-				if (from != null && from.equals(to)) {

-					throw new XWTException("action ignored");

-				}

-			}

-			tridentTimeline.addPropertyToInterpolate(getTargetProperty(), from, to);

-			tridentTimeline.setEasingFunction(getEasingFunction());

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/PowerEase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/PowerEase.java
deleted file mode 100644
index b6129de..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/PowerEase.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.xwt.XWTException;

-

-/**

- * 

- * @author yyang

- */

-public class PowerEase extends EasingFunctionBase {

-	private double power = 2;

-

-	public double getPower() {

-		return power;

-	}

-

-	public void setPower(double power) {

-		this.power = power;

-	}

-

-	public double ease(double normalizedTime) {

-		switch (getEasingMode()) {

-		case EaseIn:

-			return Math.pow(normalizedTime, getPower());

-		case EaseOut:

-			return 1 - Math.pow(1 - normalizedTime, getPower());

-		case EaseInOut:

-			normalizedTime /= 0.5;

-			if (normalizedTime < 1)

-				return Math.pow(normalizedTime, getPower()) / 2;

-			return (2 - Math.pow(2 - normalizedTime, getPower())) / 2;

-		default:

-			throw new XWTException(getEasingMode().name() + " is supported.");

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/QuadraticEase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/QuadraticEase.java
deleted file mode 100644
index a5356d2..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/QuadraticEase.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.xwt.XWTException;

-

-/**

- * 

- * @author yyang

- */

-public class QuadraticEase extends EasingFunctionBase {

-	public double ease(double normalizedTime) {

-		switch (getEasingMode()) {

-		case EaseIn:

-			return normalizedTime * normalizedTime;

-		case EaseOut:

-			normalizedTime = 1 - normalizedTime;

-			return 1 - normalizedTime * normalizedTime;

-		case EaseInOut:

-			normalizedTime /= 0.5;

-			if (normalizedTime < 1)

-				return normalizedTime * normalizedTime / 2;

-			normalizedTime = 2 - normalizedTime;

-			return (2 - normalizedTime * normalizedTime) / 2;

-		default:

-			throw new XWTException(getEasingMode().name() + " is supported.");

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/QuarticEase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/QuarticEase.java
deleted file mode 100644
index 833061b..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/QuarticEase.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.xwt.XWTException;

-

-/**

- * 

- * @author yyang

- */

-public class QuarticEase extends EasingFunctionBase {

-	public double ease(double normalizedTime) {

-		switch (getEasingMode()) {

-		case EaseIn:

-			return Math.pow(normalizedTime, 4);

-		case EaseOut:

-			return 1 - Math.pow(1 - normalizedTime, 4);

-		case EaseInOut:

-			normalizedTime /= 0.5;

-			if (normalizedTime < 1)

-				return Math.pow(normalizedTime, 4) / 2;

-			return (2 - Math.pow(2 - normalizedTime, 4)) / 2;

-		default:

-			throw new XWTException(getEasingMode().name() + " is supported.");

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/QuaternionAnimationBase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/QuaternionAnimationBase.java
deleted file mode 100644
index a4216c8..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/QuaternionAnimationBase.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public abstract class QuaternionAnimationBase extends AnimationTimeline {

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/QuinticEase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/QuinticEase.java
deleted file mode 100644
index 30382c1..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/QuinticEase.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.xwt.XWTException;

-

-/**

- * 

- * @author yyang

- */

-public class QuinticEase extends EasingFunctionBase {

-	public double ease(double normalizedTime) {

-		switch (getEasingMode()) {

-		case EaseIn:

-			return Math.pow(normalizedTime, 5);

-		case EaseOut:

-			return 1 - Math.pow(1 - normalizedTime, 5);

-		case EaseInOut:

-			normalizedTime /= 0.5;

-			if (normalizedTime < 1)

-				return Math.pow(normalizedTime, 5) / 2;

-			return (2 - Math.pow(2 - normalizedTime, 5)) / 2;

-		default:

-			throw new XWTException(getEasingMode().name() + " is supported.");

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/RectangleAnimation.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/RectangleAnimation.java
deleted file mode 100644
index db2a3ec..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/RectangleAnimation.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.swt.graphics.Rectangle;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.animation.internal.ITimeline;

-import org.eclipse.xwt.animation.internal.TridentTimeline;

-import org.eclipse.xwt.animation.interpolator.RectanglePropertyInterpolator;

-import org.pushingpixels.trident.TridentConfig;

-

-/**

- * 

- * @author yyang

- */

-public class RectangleAnimation extends AnimationTimeline {

-	private Rectangle from;

-	private Rectangle to;

-	private Rectangle by;

-	

-	private IEasingFunction easingFunction;

-

-	static {

-		TridentConfig.getInstance().addPropertyInterpolator(new RectanglePropertyInterpolator());

-	}

-	

-	public Rectangle getFrom() {

-		return from;

-	}

-

-	public void setFrom(Rectangle from) {

-		this.from = from;

-	}

-

-	public Rectangle getTo() {

-		return to;

-	}

-

-	public void setTo(Rectangle to) {

-		this.to = to;

-	}

-	

-	public IEasingFunction getEasingFunction() {

-		return easingFunction;

-	}

-

-	public void setEasingFunction(IEasingFunction easingFunction) {

-		this.easingFunction = easingFunction;

-	}

-

-	protected void updateTimeline(ITimeline timeline, Object target) {

-		super.updateTimeline(timeline, target);

-		if (timeline instanceof TridentTimeline) {

-			TridentTimeline tridentTimeline = (TridentTimeline) (timeline);

-			Rectangle from = getFrom();

-			Rectangle to = getTo();

-			if (from == null && to == null) {

-				from = (Rectangle) getCacheValue();

-				to = (Rectangle) getCurrentValue(target);

-				if (from == null || from.width == 0 && from.height == 0) {

-					setCacheValue(to);

-					throw new XWTException("action ignored");

-				}

-				if (from != null && from.equals(to)) {

-					throw new XWTException("action ignored");

-				}

-			}

-			tridentTimeline.addPropertyToInterpolate(getTargetProperty(), from, to);

-			tridentTimeline.setEasingFunction(getEasingFunction());

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/RepeatBehavior.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/RepeatBehavior.java
deleted file mode 100644
index a58ce44..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/RepeatBehavior.java
+++ /dev/null
@@ -1,213 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-/**

- * 

- * @author yyang

- */

-public class RepeatBehavior {

-	// Fields

-	private double count = 1;

-	private Duration repeatDuration;

-	private RepeatBehaviorType type;

-	

-	private static RepeatBehavior forever;

-	static {

-		forever = new RepeatBehavior();

-		forever.type = RepeatBehaviorType.Forever;

-	}

-	

-	// Nested Types

-	enum RepeatBehaviorType {

-		IterationCount, RepeatDuration, Forever;

-	}

-

-	public static final RepeatBehavior once = new RepeatBehavior(1);

-

-	interface IFormatProvider {

-	}

-

-	RepeatBehavior() {

-	}

-

-	// Methods

-	public RepeatBehavior(double count) {

-		if ((Double.isInfinite(count) || Double.isNaN(count)) || (count < 0)) {

-			throw new IllegalArgumentException("count: " + count);

-		}

-		this.repeatDuration = new Duration(new TimeSpan(0L));

-		this.count = count;

-		this.type = RepeatBehaviorType.IterationCount;

-	}

-

-	public RepeatBehavior(Duration duration) {

-		this.count = 0;

-		this.repeatDuration = duration;

-		this.type = RepeatBehaviorType.RepeatDuration;

-	}

-

-	public boolean equals(Object value) {

-		if ((value instanceof RepeatBehavior)) {

-			return this.equals((RepeatBehavior) value);

-		}

-		return false;

-	}

-

-	public boolean equals(RepeatBehavior repeatBehavior) {

-		if (this.type == repeatBehavior.type) {

-			switch (this.type) {

-			case IterationCount: {

-				return (this.count == repeatBehavior.count);

-			}

-			case RepeatDuration: {

-				return (this.repeatDuration == repeatBehavior.repeatDuration);

-			}

-			case Forever: {

-				return true;

-			}

-			}

-		}

-		return false;

-	}

-

-	public static boolean equals(RepeatBehavior repeatBehavior1,

-			RepeatBehavior repeatBehavior2) {

-		return repeatBehavior1.equals(repeatBehavior2);

-	}

-

-	public int hashCode() {

-		switch (this.type) {

-		case IterationCount: {

-			return (int) this.count;

-		}

-		case RepeatDuration: {

-			return this.repeatDuration.hashCode();

-		}

-		case Forever: {

-			return 2147483605;

-		}

-		}

-		return super.hashCode();

-	}

-

-	String internalToString(String format, IFormatProvider formatProvider) {

-		switch (this.type) {

-		case IterationCount: {

-			StringBuilder builder1 = new StringBuilder();

-			// builder1.append(formatProvider, "{0:", format, "}x"), new

-			// Object[] {

-			// this.iterationCount

-			// });

-			return builder1.toString();

-		}

-		case RepeatDuration: {

-			return this.repeatDuration.toString();

-		}

-		case Forever: {

-			return "Forever";

-		}

-		}

-		return null;

-	}

-

-	public static boolean opEquality(RepeatBehavior repeatBehavior1,

-			RepeatBehavior repeatBehavior2) {

-		return repeatBehavior1.equals(repeatBehavior2);

-	}

-

-	public static boolean opInequality(RepeatBehavior repeatBehavior1,

-			RepeatBehavior repeatBehavior2) {

-		return !repeatBehavior1.equals(repeatBehavior2);

-	}

-

-	public String toString(String format, IFormatProvider formatProvider) {

-		return this.internalToString(format, formatProvider);

-	}

-

-	public String toString() {

-		return this.internalToString(null, null);

-	}

-

-	public String toString(IFormatProvider formatProvider) {

-		return this.internalToString(null, formatProvider);

-	}

-

-	// Properties

-	/**

-	 * Property getter.

-	 * 

-	 * @property(Count)

-	 */

-	public double getCount() {

-		if (this.type != RepeatBehaviorType.IterationCount) {

-			throw new UnsupportedOperationException();

-		}

-		return this.count;

-	}

-

-	/**

-	 * Property getter.

-	 * 

-	 * @property(Duration)

-	 */

-	public Duration getDuration() {

-		if (this.type != RepeatBehaviorType.RepeatDuration) {

-			throw new UnsupportedOperationException();

-		}

-		return this.repeatDuration;

-	}

-

-	/**

-	 * Property getter.

-	 * 

-	 * @property(Forever)

-	 */

-	public static RepeatBehavior getForever() {

-		return forever;

-	}

-

-	/**

-	 * Property getter.

-	 * 

-	 * @property(HasCount)

-	 */

-	public boolean getHasCount() {

-		return (this.type == RepeatBehaviorType.IterationCount);

-	}

-

-	/**

-	 * Property getter.

-	 * 

-	 * @property(HasDuration)

-	 */

-	public boolean getHasDuration() {

-		return (this.type == RepeatBehaviorType.RepeatDuration);

-	}

-

-	public RepeatBehaviorType getRepeatBehaviorType() {

-		return type;

-	}	

-	

-	public static RepeatBehavior parse(String string) {

-		if (string.toLowerCase().equals("forever")) {

-			return getForever();

-		}

-		if (string.toLowerCase().endsWith("x")) {

-			// count

-			string = string.substring(0, string.length() - 1);

-			double count = Double.parseDouble(string);

-			return new RepeatBehavior(count);

-		}

-		

-		return new RepeatBehavior(new Duration(TimeSpan.parse(string)));

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/ResumeStoryboard.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/ResumeStoryboard.java
deleted file mode 100644
index 5568216..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/ResumeStoryboard.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.swt.widgets.Event;

-

-public class ResumeStoryboard extends ControllableStoryboardAction {

-	@Override

-	public void run(Event event, Object target, Runnable stateChangedRunnable) {

-		Storyboard storyboard = getStoryboard();

-		if (storyboard != null) {

-			storyboard.resume(event, stateChangedRunnable);

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/Rotation3DAnimationBase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/Rotation3DAnimationBase.java
deleted file mode 100644
index cdfb812..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/Rotation3DAnimationBase.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public abstract class Rotation3DAnimationBase extends AnimationTimeline {

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/SineEase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/SineEase.java
deleted file mode 100644
index 5234268..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/SineEase.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.xwt.XWTException;

-

-/**

- * 

- * @author yyang

- */

-public class SineEase extends EasingFunctionBase {

-	public double ease(double normalizedTime) {

-		switch (getEasingMode()) {

-		case EaseIn:

-			return easeValue(normalizedTime);

-		case EaseOut:

-			return 1 - easeValue(1 - normalizedTime);

-		case EaseInOut:

-			normalizedTime /= 0.5;

-			if (normalizedTime < 1)

-				return easeValue(normalizedTime) / 2;

-			return (2 - easeValue(2 - normalizedTime)) / 2;

-		default:

-			throw new XWTException(getEasingMode().name() + " is supported.");

-		}

-	}

-

-	protected double easeValue(double normalizedTime) {

-		return 1 - Math.sin((1 - normalizedTime) * Math.PI / 2.0);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/SingleAnimationBase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/SingleAnimationBase.java
deleted file mode 100644
index cae8ba7..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/SingleAnimationBase.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public abstract class SingleAnimationBase extends AnimationTimeline {

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/SizeAnimation.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/SizeAnimation.java
deleted file mode 100644
index 1c367ad..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/SizeAnimation.java
+++ /dev/null
@@ -1,14 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public class SizeAnimation extends PointAnimation {

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/SlipBehavior.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/SlipBehavior.java
deleted file mode 100644
index 972ceed..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/SlipBehavior.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public enum SlipBehavior {

-	Grow, Slip;

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/SplineDoubleKeyFrame.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/SplineDoubleKeyFrame.java
deleted file mode 100644
index 8a2932c..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/SplineDoubleKeyFrame.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.pushingpixels.trident.Timeline;

-

-public class SplineDoubleKeyFrame extends DoubleKeyFrame {

-	private KeySpline keySpline;

-	

-	public KeySpline getKeySpline() {

-		return keySpline;

-	}

-

-	public void setKeySpline(KeySpline keySpline) {

-		this.keySpline = keySpline;

-	}

-

-	@Override

-	protected void start(Timeline timeline, Object target) {

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/StopStoryboard.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/StopStoryboard.java
deleted file mode 100644
index 98febba..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/StopStoryboard.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.swt.widgets.Event;

-

-public class StopStoryboard extends ControllableStoryboardAction {

-	@Override

-	public void run(Event event, Object target, Runnable stateChangedRunnable) {

-		Storyboard storyboard = getStoryboard();

-		if (storyboard != null) {

-			storyboard.stop(event, stateChangedRunnable);

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/Storyboard.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/Storyboard.java
deleted file mode 100644
index 318f325..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/Storyboard.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.xwt.metadata.IProperty;

-

-public class Storyboard extends ParallelTimeline {

-	private String targetName;

-	private IProperty targetProperty;

-	

-	public String getTargetName() {

-		return targetName;

-	}

-

-	public void setTargetName(String targetName) {

-		this.targetName = targetName;

-	}

-

-	public IProperty getTargetProperty() {

-		return targetProperty;

-	}

-

-	public void setTargetProperty(IProperty targetProperty) {

-		this.targetProperty = targetProperty;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/StringAnimationBase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/StringAnimationBase.java
deleted file mode 100644
index 07f0fad..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/StringAnimationBase.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public abstract class StringAnimationBase extends AnimationTimeline {

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/ThicknessAnimationBase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/ThicknessAnimationBase.java
deleted file mode 100644
index 243f5be..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/ThicknessAnimationBase.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public abstract class ThicknessAnimationBase extends AnimationTimeline {

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/TimeSpan.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/TimeSpan.java
deleted file mode 100644
index 0e0cc16..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/TimeSpan.java
+++ /dev/null
@@ -1,733 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import java.io.Serializable;

-

-import org.eclipse.xwt.XWTException;

-

-public class TimeSpan implements Serializable, Comparable {

-

-	public static final long TicksPerMillisecond = 10000; // scale

-

-	private static final double MillisecondsPerTick = 0.0001;

-

-	public static final long TicksPerSecond = 0x989680;

-

-	private static final double SecondsPerTick = 1E-07;

-

-	public static final long TicksPerMinute = 0x23C34600;

-

-	private static final double MinutesPerTick = 1.6666666666666667E-09;

-

-	public static final long TicksPerHour = Long.valueOf("861c46800", 16);

-

-	private static final double HoursPerTick = 2.7777777777777777E-11;

-

-	// Represents the number of ticks in 1 day

-

-	public static final long TicksPerDay = Long.valueOf("c92a69c000", 16);

-

-	private static final double DaysPerTick = 1.1574074074074074E-12;

-

-	private static final int MillisPerSecond = 1000;

-

-	private static final int MillisPerMinute = 60000;

-

-	private static final int MillisPerHour = 3600000;

-

-	private static final int MillisPerDay = 86400000;

-

-	private static final long MaxSeconds = Long.valueOf("d6bf94d5e5", 16);

-

-	private static final long MinSeconds = Long.valueOf("-922337203685", 10);

-

-	private static final long MaxMilliSeconds = Long.valueOf("346dc5d638865",

-			16);

-

-	private static final long MinMilliSeconds = Long.valueOf(

-			"-922337203685477", 10);

-

-	public static final long SencondsPerHour = 3600;

-

-	public static final long HoursPerDay = 24;

-

-	public static final TimeSpan Zero;

-

-	public static final TimeSpan MaxValue;

-

-	/*

-	 * Represents the maximum TimeSpanvalue

-	 */

-	public static final TimeSpan MinValue;

-

-	public static final String TimeSpan = null;

-

-	public long ticks;

-

-	public TimeSpan(long ticks) {

-		this.ticks = ticks;

-	}

-

-	/*

-	 * Initializes a new TimeSpan to a specified number of hours, minutes, and

-	 * seconds.

-	 */

-	public TimeSpan(int hours, int minutes, int seconds) throws Exception {

-		this.ticks = timeToTicks(hours, minutes, seconds);

-	}

-

-	/*

-	 * Initializes a new TimeSpan to a specified number of days, hours, minutes,

-	 * and seconds.

-	 */

-	public TimeSpan(int days, int hours, int minutes, int seconds)

-			throws Exception {

-		this(days, hours, minutes, seconds, 0);

-	}

-

-	/*

-	 * Initializes a new TimeSpan to a specified number of days, hours, minutes,

-	 * seconds, and milliseconds. calcualte total ticks

-	 */

-

-	public TimeSpan(int days, int hours, int minutes, int seconds,

-			int milliseconds) throws Exception {

-		long num = (MillisPerSecond * (((((SencondsPerHour * (long) days) * HoursPerDay) + ((long) hours * SencondsPerHour)) + ((long) minutes * 60)) + seconds))

-				+ milliseconds;

-		if ((num > Long.valueOf(MaxMilliSeconds))

-				|| (num < Long.valueOf(MinMilliSeconds))) {

-			throw new Exception("Overflow_TimeSpanTooLong");

-		}

-		this.ticks = num * TicksPerMillisecond;

-	}

-

-	public long getTicks() {

-		return this.ticks;

-	}

-

-	public int getDays() {

-		return (int) (this.ticks / Long.valueOf(TicksPerDay));

-	}

-

-	// not total hours, just hours not more than 24

-	public int getHours() {

-		return (int) ((this.ticks / Long.valueOf(TicksPerHour)) % ((long) HoursPerDay));

-	}

-

-	public int getMilliseconds() {

-		return (int) ((this.ticks / ((long) TicksPerMillisecond)));

-	}

-

-	public int getMinutes() {

-		return (int) ((this.ticks / ((long) TicksPerMinute)) % ((long) 60));

-	}

-

-	public int getSeconds() {

-		return (int) ((this.ticks / ((long) TicksPerSecond)) % ((long) 60));

-	}

-

-	public double getTotalDays() {

-		return (this.ticks * DaysPerTick);

-	}

-

-	public double getTotalHours() {

-		return (this.ticks * HoursPerTick);

-	}

-

-	/*

-	 * Gets the value of the current TimeSpan structure expressed in whole and

-	 * fractional milliseconds.

-	 */

-	public double getTotalMilliseconds() {

-

-		double num = this.ticks * MillisecondsPerTick;

-		if (num > Long.valueOf(MaxMilliSeconds)) {

-			return Long.valueOf(MaxMilliSeconds);

-		}

-		if (num < Long.valueOf(MinMilliSeconds)) {

-			return Long.valueOf(MinMilliSeconds);

-		}

-		return num;

-	}

-

-	public double getTotalMinutes() {

-		return (this.ticks * MinutesPerTick);

-	}

-

-	public double getTotalSeconds() {

-		return (this.ticks * 1E-07);

-	}

-

-	/* Adds the specified TimeSpan to this instance. */

-	public TimeSpan add(TimeSpan ts) throws Exception {

-		long ticks = this.ticks + ts.ticks;

-		// less than MinValue or more than MaxValue, exception

-		if (((this.ticks >> 0x3f) == (ts.ticks >> 0x3f))

-				&& ((this.ticks >> 0x3f) != (ticks >> 0x3f))) {

-			throw new Exception("Overflow_TimeSpan Too Long");

-		}

-		return new TimeSpan(ticks);

-	}

-

-	/*

-	 * Compares two TimeSpan values and returns an integer that indicates their

-	 * relationship.

-	 */

-	public static int compare(TimeSpan t1, TimeSpan t2) {

-		if (t1.ticks > t2.ticks) {

-			return 1;

-		}

-		if (t1.ticks < t2.ticks) {

-			return -1;

-		}

-		return 0;

-	}

-

-	/*

-	 * Overloaded. Compares this instance to a specified object or TimeSpan and

-	 * returns an indication of their relative values.

-	 */

-	public int compareTo(Object value) {

-		if (value == null) {

-			return 1;

-		}

-		if (!(value instanceof TimeSpan)) {

-			throw new RuntimeException("Arg_MustBeTimeSpan");

-		}

-		long num = ((TimeSpan) value).ticks;

-		if (this.ticks > num) {

-			return 1;

-		}

-		if (this.ticks < num) {

-			return -1;

-		}

-		return 0;

-	}

-

-	/*

-	 * Returns a TimeSpan that represents a specified number of days, where the

-	 * specification is accurate to the nearest millisecond.

-	 */

-	public static TimeSpan fromDays(double value) throws Exception {

-		return interval(value, MillisPerDay);

-	}

-

-	/*

-	 * Returns a new TimeSpan object whose value is the absolute value of the

-	 * current TimeSpan object

-	 */

-	public TimeSpan duration() throws Exception {

-		if (this.ticks == MinValue.ticks) {

-			throw new Exception("Overflow_Duration");

-		}

-		return new TimeSpan((this.ticks >= 0) ? this.ticks : -this.ticks);

-	}

-

-	/*

-	 * Overloaded. Overridden. Returns a value indicating whether two instances

-	 * of TimeSpan are equal.

-	 */

-	public boolean equals(Object value) {

-		if (value instanceof TimeSpan) {

-			return (this.ticks == ((TimeSpan) value).ticks);

-		}

-		return false;

-	}

-

-	public static boolean equals(TimeSpan t1, TimeSpan t2) {

-		return (t1.ticks == t2.ticks);

-	}

-

-	public int hashCode() {

-		return (((int) this.ticks) ^ ((int) (this.ticks >> 0x20)));

-	}

-

-	/*

-	 * Returns a TimeSpan that represents a specified number of hours, where the

-	 * specification is accurate to the nearest millisecond.

-	 */

-	public static TimeSpan fromHours(double value) throws Exception {

-		return interval(value, 0x36ee80);

-	}

-

-	/* calculate time interval in ticks */

-	private static TimeSpan interval(double value, int scale) throws Exception {

-		if (Double.isNaN(value)) {

-			throw new Exception("Arg_CannotBeNaN");

-		}

-

-		double num = value * scale;

-		if ((num > Long.valueOf(MaxMilliSeconds))

-				|| (num < Long.valueOf(MinMilliSeconds))) {

-			throw new Exception("Overflow_TimeSpanTooLong");

-		}

-		return new TimeSpan((long) ((num) * TicksPerMillisecond));

-	}

-

-	/* Returns a TimeSpan that represents a specified number of milliseconds. */

-	public static TimeSpan fromMilliseconds(double value) throws Exception {

-		return interval(value, 1);

-	}

-

-	/*

-	 * Returns a TimeSpan that represents a specified number of minutes, where

-	 * the specification is accurate to the nearest millisecond.

-	 */

-	public static TimeSpan fromMinutes(double value) throws Exception {

-		return interval(value, MillisPerMinute);

-	}

-

-	/* Returns a TimeSpan whose value is the negated value of this instance. */

-	public TimeSpan negate() throws Exception {

-		if (this.ticks == MinValue.ticks) {

-			throw new Exception("Overflow_NegateTwosCompNum");

-		}

-		return new TimeSpan(-this.ticks);

-	}

-

-	/*

-	 * Constructs a new TimeSpan object from a time interval specified in a

-	 * string.

-	 */

-	public static TimeSpan parse(String s) {

-

-		StringParser parser = new StringParser();

-

-		return new TimeSpan(parser.parse(s));

-	}

-

-	/*

-	 * Constructs a new TimeSpan object from a time interval specified in a

-	 * string.

-	 */

-	public static boolean tryParse(String s, OutParameter result) {

-		long num = 0;

-		OutParameter out = new OutParameter(num);

-		StringParser parser = new StringParser();

-		if (parser.tryParse(s, out)) {

-			result.timeSpan = new TimeSpan(out.value);

-			return true;

-		}

-		result.timeSpan = new TimeSpan((long) 0);

-		return false;

-	}

-

-	public static TimeSpan fromSeconds(double value) throws Exception {

-		return interval(value, MillisPerSecond);

-	}

-

-	/* Subtracts a specified TimeSpan from another specified TimeSpan. */

-	public TimeSpan subtract(TimeSpan ts) throws Exception {

-		long ticks = this.ticks - ts.ticks;

-		if (((this.ticks >> 0x3f) != (ts.ticks >> 0x3f))

-				&& ((this.ticks >> 0x3f) != (ticks >> 0x3f))) {

-			throw new Exception("Overflow_TimeSpanTooLong");

-		}

-		return new TimeSpan(ticks);

-	}

-

-	public static TimeSpan fromTicks(long value) {

-		return new TimeSpan(value);

-	}

-

-	public static long timeToTicks(int hour, int minute, int second)

-			throws Exception {

-		long num = ((SencondsPerHour * (long) hour) + ((long) minute * 60)) + (long) second;

-		if ((num > Long.valueOf(MaxSeconds))

-				|| (num < Long.valueOf(MinSeconds))) {

-			throw new Exception("Overflow_TimeSpanTooLong");

-		}

-		return (num * TicksPerSecond);

-	}

-

-	private String intToString(int n, int digits) {

-		return ParseNumbers.intToString(n, 10, digits, (char) 0, 0);

-	}

-

-	/*

-	 * Overridden. Returns the string representation of the value of this

-	 * instance.

-	 */

-	public String toString() {

-		StringBuilder builder = new StringBuilder();

-		int num = (int) (this.ticks / Long.valueOf(TicksPerDay)); // days

-		long num2 = this.ticks % Long.valueOf(TicksPerDay); // Ticks in one

-		// days

-		if (this.ticks < 0) {

-			builder.append("-");

-			num = -num;

-			num2 = -num2;

-		}

-		if (num != 0) {// if day exists

-			builder.append(num);

-			builder.append(".");// append "."beween days and hours

-		}

-

-		// hours, ranging from 0 to 23

-		builder.append(this.intToString((int) ((num2 / Long

-				.valueOf(TicksPerHour)) % ((long) HoursPerDay)), 2));

-		builder.append(":");

-

-		// munites, ranging from 0 to 59

-		builder.append(this.intToString(

-				(int) ((num2 / ((long) TicksPerMinute)) % ((long) 60)), 2));

-		builder.append(":");

-		// seconds, ranging from 0 to 59

-		builder.append(this.intToString(

-				(int) ((num2 / ((long) TicksPerSecond)) % ((long) 60)), 2));

-		int n = (int) (num2 % ((long) TicksPerSecond));

-		if (n != 0) {

-			builder.append(".");

-			builder.append(this.intToString(n, 7));

-		}

-		return builder.toString();

-	}

-

-	/**

-	 * imitate

-	 * 

-	 * 

-	 */

-	public static TimeSpan operatorMinus(TimeSpan t) throws Exception {

-		if (t.ticks == MinValue.ticks) {

-			throw new Exception("Overflow_NegateTwosCompNum");

-		}

-		return new TimeSpan(-t.ticks);

-	}

-

-	public static TimeSpan operatorMinus(TimeSpan t1, TimeSpan t2)

-			throws Exception {

-		return t1.subtract(t2);

-	}

-

-	public static TimeSpan operatorPlus(TimeSpan t) {

-		return t;

-	}

-

-	public static TimeSpan operatorPlus(TimeSpan t1, TimeSpan t2)

-			throws Exception {

-		return t1.add(t2);

-	}

-

-	public static boolean operatorEqual(TimeSpan t1, TimeSpan t2) {

-		return (t1.ticks == t2.ticks);

-	}

-

-	public static boolean operatorNotEqual(TimeSpan t1, TimeSpan t2) {

-		return (t1.ticks != t2.ticks);

-	}

-

-	public static boolean operatorLess(TimeSpan t1, TimeSpan t2) {

-		return (t1.ticks < t2.ticks);

-	}

-

-	public static boolean operatorLessEqual(TimeSpan t1, TimeSpan t2) {

-		return (t1.ticks <= t2.ticks);

-	}

-

-	public static boolean operatorMore(TimeSpan t1, TimeSpan t2) {

-		return (t1.ticks > t2.ticks);

-	}

-

-	public static boolean operatorMoreEqual(TimeSpan t1, TimeSpan t2) {

-		return (t1.ticks >= t2.ticks);

-	}

-

-	static {

-		Zero = new TimeSpan((long) 0);

-		MaxValue = new TimeSpan(Long.valueOf("7fffffffffffffff", 16));

-		MinValue = new TimeSpan(Long.valueOf(MinMilliSeconds));

-	}

-}

-

-/**

- * DOC x class global comment. Detailled comment <br/>

- * 

- */

-class StringParser {

-

-	public static final long TicksPerDay = Long.valueOf("c92a69c000", 16);

-

-	public static final long TicksPerHour = Long.valueOf("861c46800", 16);

-

-	public static final long TicksPerMinute = 0x23C34600;

-

-	public static final long TicksPerSecond = 0x989680;

-

-	String str;

-

-	char ch;

-

-	int pos;

-

-	int len;

-

-	private ParseError error;

-

-	/* get the next char position and corresponding value */

-	private void nextChar() {

-		if (this.pos < this.len) {

-			this.pos++;

-		}

-		this.ch = (this.pos < this.len) ? this.str.charAt(this.pos) : '\0';

-	}

-

-	private char nextNonDigit() {

-

-		for (int i = this.pos; i < this.len; i++) {

-			char ch = this.str.charAt(i);

-			if ((ch < '0') || (ch > '9')) {

-				return ch;

-			}

-		}

-		return '\0';

-	}

-

-	/*

-	 * Constructs a new TimeSpan object from a time interval specified in a

-	 * string.

-	 */

-	public long parse(String s) {

-		long num = 0;

-		OutParameter out = new OutParameter(num);

-

-		if (this.tryParse(s, out)) {

-			return out.value;

-		}

-		switch (this.error) {

-		case Format:

-			throw new XWTException("Format_InvalidString");

-

-		case Overflow:

-			throw new XWTException("Overflow_TimeSpanTooLong");

-

-		case OverflowHoursMinutesSeconds:

-			throw new XWTException("Overflow_TimeSpanElementTooLarge");

-

-		case ArgumentNull:

-			throw new XWTException("s");

-		}

-		return (long) 0;

-	}

-

-	/*

-	 * Constructs a new TimeSpan object from a time interval specified in a

-	 * string. Parameters specify the time interval and the variable where the

-	 * new TimeSpan object is returned.

-	 */

-

-	/*

-	 * this piece of code is not correct, because in .net it support "out",

-	 * while in Java , it dose not

-	 */

-	public boolean tryParse(String s, OutParameter out) {// TODO,

-

-		long time = 0;

-		out.value = 0;

-

-		OutParameter timeOut = new OutParameter(time);

-

-		if (s == null) {

-			this.error = ParseError.ArgumentNull;

-			return false;

-		}

-

-		this.str = s;

-		this.len = s.length();

-		this.pos = -1;

-		this.nextChar();

-		this.skipBlanks();

-		boolean flag = false;

-

-		if (this.ch == '-') { // year, month, date

-			flag = true;

-			this.nextChar();

-		}

-

-		if (this.nextNonDigit() == ':') {// hour, minutes, seconds

-			if (!this.parseTime(timeOut)) {

-				return false;

-			}

-		} else {

-

-			int i = 0;

-			OutParameter iOut = new OutParameter(i);

-

-			if (!this.parseInt(0xa2e3ff, iOut)) {

-				return false;

-			}

-			timeOut.value = iOut.value * 0xc92a69c000L;

-			if (this.ch == '.') {

-				long num3 = 0;

-				OutParameter num3Out = new OutParameter(num3);

-				this.nextChar();

-				if (!this.parseTime(num3Out)) {

-					return false;

-				}

-				timeOut.value += num3Out.value;

-			}

-		}

-		if (flag) {

-			timeOut.value = -timeOut.value;

-			if (timeOut.value > 0) {

-				this.error = ParseError.Overflow;

-				return false;

-			}

-		} else if (timeOut.value < 0) {

-			this.error = ParseError.Overflow;

-			return false;

-		}

-

-		this.skipBlanks();

-

-		if (this.pos < this.len) {

-			this.error = ParseError.Format;

-			return false;

-		}

-

-		out.value = timeOut.value;

-		return true;

-	}

-

-	/* max stands hours, minutes 59 */

-	private boolean parseInt(int max, OutParameter out) {// i is munites <60,

-		// decide minutes

-		// are whether

-		// overflow

-		out.value = 0;

-		int pos = this.pos;

-

-		while ((this.ch >= '0') && (this.ch <= '9')) {

-

-			if ((((long) out.value) & 0xf0000000L) != 0) {

-				this.error = ParseError.Overflow;

-				return false;

-			}

-

-			out.value = ((out.value * 10) + this.ch) - 0x30;

-

-			if (out.value < 0) {

-				this.error = ParseError.Overflow;

-				return false;

-			}

-			this.nextChar();

-		}

-		if (pos == this.pos) {

-			this.error = ParseError.Format;

-			return false;

-		}

-		if (out.value > max) {

-			this.error = ParseError.Overflow;

-			return false;

-		}

-		return true;

-	}

-

-	private boolean parseTime(OutParameter out) {

-		int i = 0;

-		out.value = 0;

-

-		OutParameter iOut = new OutParameter(i);

-

-		if (!this.parseInt(0x17, iOut)) {// parse hours 0-23

-			if (this.error == ParseError.Overflow) {

-				this.error = ParseError.OverflowHoursMinutesSeconds;

-			}

-			return false;

-		}

-

-		out.value = iOut.value * 0x861c46800L;

-

-		if (this.ch != ':') {// not time format

-			this.error = ParseError.Format;

-			return false;

-		}

-

-		this.nextChar();

-

-		if (!this.parseInt(0x3b, iOut)) {// parse minutes 0-59

-			if (this.error == ParseError.Overflow) {

-				this.error = ParseError.OverflowHoursMinutesSeconds;

-			}

-			return false;

-		}

-

-		out.value += (iOut.value * 0x23c34600L);

-

-		if (this.ch == ':') {

-			this.nextChar();

-			if (this.ch != '.') {

-

-				if (!this.parseInt(0x3b, iOut)) {// parse seconds 0-59

-					if (this.error == ParseError.Overflow) {

-						this.error = ParseError.OverflowHoursMinutesSeconds;

-					}

-					return false;

-				}

-				out.value += (iOut.value * 0x989680L);

-			}

-

-			if (this.ch == '.') {

-

-				this.nextChar();

-				int num2 = 0x989680;

-

-				while (((num2 > 1) && (this.ch >= '0')) && (this.ch <= '9')) {

-					num2 /= 10;

-					out.value += (this.ch - '0') * num2;

-					this.nextChar();

-				}

-			}

-		}

-		return true;

-	}

-

-	private void skipBlanks() {

-		while ((this.ch == ' ') || (this.ch == '\t')) {

-			this.nextChar();

-		}

-	}

-

-	private enum ParseError {

-

-		Format,

-

-		Overflow,

-

-		OverflowHoursMinutesSeconds,

-

-		ArgumentNull;

-	}

-}

-

-class OutParameter {

-

-	long value = 0;

-

-	TimeSpan timeSpan = null;

-

-	/**

-	 * DOC x OutParameter constructor comment.

-	 * 

-	 * @param value

-	 */

-	public OutParameter(long value) {

-		super();

-		this.value = value;

-	}

-

-	public OutParameter(TimeSpan timeSpan) {

-		super();

-		this.timeSpan = timeSpan;

-	}

-}

-

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/Timeline.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/Timeline.java
deleted file mode 100644
index 0756971..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/Timeline.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import org.eclipse.xwt.animation.internal.ITimeline;

-

-/**

- * 

- * @author yyang

- */

-public abstract class Timeline {

-	static public Timeline[] EMPTY_ARRAY = new Timeline[0];

-

-	protected int desiredFrameRate = 0;

-	protected double accelerationRatio = 0;

-	protected boolean autoReverse = false;

-	protected TimeSpan beginTime = null;

-	protected double decelerationRatio = 0;

-	protected Duration duration = Duration.getAutomatic();

-	protected FillBehavior fillBehavior = FillBehavior.HoldEnd;

-	protected String name;

-	protected double speedRatio = 0;

-	protected RepeatBehavior repeatBehavior = RepeatBehavior.once;

-

-	public int getDesiredFrameRate() {

-		return desiredFrameRate;

-	}

-

-	public void setDesiredFrameRate(int desiredFrameRate) {

-		this.desiredFrameRate = desiredFrameRate;

-	}

-

-	public double getAccelerationRatio() {

-		return accelerationRatio;

-	}

-

-	public void setAccelerationRatio(double accelerationRatio) {

-		this.accelerationRatio = accelerationRatio;

-	}

-

-	public boolean isAutoReverse() {

-		return autoReverse;

-	}

-

-	public void setAutoReverse(boolean autoReverse) {

-		this.autoReverse = autoReverse;

-	}

-

-	public TimeSpan getBeginTime() {

-		return beginTime;

-	}

-

-	public void setBeginTime(TimeSpan beginTime) {

-		this.beginTime = beginTime;

-	}

-

-	public double getDecelerationRatio() {

-		return decelerationRatio;

-	}

-

-	public void setDecelerationRatio(double decelerationRatio) {

-		this.decelerationRatio = decelerationRatio;

-	}

-

-	public Duration getDuration() {

-		return duration;

-	}

-

-	public void setDuration(Duration duration) {

-		this.duration = duration;

-	}

-

-	public FillBehavior getFillBehavior() {

-		return fillBehavior;

-	}

-

-	public void setFillBehavior(FillBehavior fillBehavior) {

-		this.fillBehavior = fillBehavior;

-	}

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-

-	public double getSpeedRatio() {

-		return speedRatio;

-	}

-

-	public void setSpeedRatio(double speedRatio) {

-		this.speedRatio = speedRatio;

-	}

-

-	public RepeatBehavior getRepeatBehavior() {

-		return repeatBehavior;

-	}

-

-	public void setRepeatBehavior(RepeatBehavior repeatBehavior) {

-		this.repeatBehavior = repeatBehavior;

-	}

-

-	protected void updateTimeline(ITimeline timeline, Object target) {

-	}

-

-	protected void initialize(Object target) {

-	}

-

-	protected void endFinalize(Object target) {

-	}

-	

-	protected Object findTarget(Object target) {

-		return target;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/TimelineGroup.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/TimelineGroup.java
deleted file mode 100644
index a0f115f..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/TimelineGroup.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-import java.util.HashMap;

-import java.util.Map;

-import java.util.WeakHashMap;

-

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Widget;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.animation.internal.AnimationManager;

-import org.eclipse.xwt.animation.internal.ITimeline;

-import org.eclipse.xwt.animation.internal.ITimelineGroup;

-import org.eclipse.xwt.animation.internal.ScenarioTimeline;

-import org.eclipse.xwt.animation.internal.TridentTimeline;

-import org.eclipse.xwt.annotation.Containment;

-import org.pushingpixels.trident.TimelineScenario;

-

-public class TimelineGroup extends Timeline {

-	private Timeline[] children = EMPTY_ARRAY;

-

-	private Map<Widget, ITimeline> timelines = new WeakHashMap<Widget, ITimeline>();

-

-	@Containment

-	public Timeline[] getChildren() {

-		return children;

-	}

-

-	public void setChildren(Timeline[] children) {

-		this.children = children;

-	}

-

-	protected ITimelineGroup createTimelineGroup(Object target) {

-		return new ScenarioTimeline(this, new TimelineScenario(), target);

-	}

-

-	public void initialize(Object target) {

-		for (Timeline child : children) {

-			child.initialize(target);

-		}

-	}

-	

-	public void endFinalize(Object target) {

-		for (Timeline child : children) {

-			child.endFinalize(target);

-		}

-	}

-	

-	public void start(final Event event, final Object target, Runnable endRunnable) {

-		ITimeline timeline = createTimelineGroup(findTarget(target));

-		timelines.put(event.widget, timeline);

-		AnimationManager.getInstance().addTimeline(timeline);

-		updateTimeline(timeline, target);

-		timeline.addStateChangedRunnable(endRunnable);

-		AnimationManager.getInstance().play(timeline);

-	}

-

-	public void stop(Event event, Runnable stateChangedRunnable) {

-		ITimeline timeline = timelines.get(event.widget);

-		if (timeline != null) {

-			timeline.addStateChangedRunnable(stateChangedRunnable);

-			AnimationManager.getInstance().stop(timeline);

-		}

-	}

-

-	public void pause(Event event, Runnable endRunnable) {

-		ITimeline timeline = timelines.get(event.widget);

-		if (timeline != null) {

-			timeline.addStateChangedRunnable(endRunnable);

-			AnimationManager.getInstance().pause(timeline);

-		}

-	}

-

-	public void resume(Event event, Runnable endRunnable) {

-		ITimeline timeline = timelines.get(event.widget);

-		if (timeline != null) {

-			timeline.addStateChangedRunnable(endRunnable);

-			AnimationManager.getInstance().resume(timeline);

-		}

-	}

-

-	public void playReverse(Event event, Runnable endRunnable) {

-		ITimeline timeline = timelines.get(event.widget);

-		if (timeline != null) {

-			timeline.addStateChangedRunnable(endRunnable);

-			AnimationManager.getInstance().playReverse(timeline);

-		}

-	}

-

-	@Override

-	protected void updateTimeline(ITimeline timeline, Object target) {

-		super.updateTimeline(timeline, target);

-		ITimelineGroup timelineGroup = (ITimelineGroup) timeline;

-		HashMap<Object, HashMap<TimeSpan, TridentTimeline>> map = new HashMap<Object, HashMap<TimeSpan, TridentTimeline>>();

-

-		for (Timeline child : children) {

-			if (child instanceof ParallelTimeline) {

-				TimelineScenario scenario = new TimelineScenario.Parallel();

-				ScenarioTimeline scenarioTimeline = new ScenarioTimeline(child,

-						scenario, child.findTarget(target));

-				child.updateTimeline(scenarioTimeline, target);

-				timelineGroup.addTimeline(scenarioTimeline);

-			} else if (child instanceof TimelineGroup) {

-				TimelineScenario scenario = new TimelineScenario.Sequence();

-				ScenarioTimeline scenarioTimeline = new ScenarioTimeline(child,

-						scenario, child.findTarget(target));

-				child.updateTimeline(scenarioTimeline, target);

-				timelineGroup.addTimeline(scenarioTimeline);

-			} else {

-				Object resolveTarget = child.findTarget(target);

-				HashMap<TimeSpan, TridentTimeline> tridentTimelineMap = map.get(resolveTarget);

-				if (tridentTimelineMap == null) {

-					tridentTimelineMap = new HashMap<TimeSpan, TridentTimeline>(); 

-					map.put(resolveTarget, tridentTimelineMap);

-				}

-				

-				TimeSpan timeSpan = child.getBeginTime();

-				TridentTimeline tridentTimeline = tridentTimelineMap.get(child.getBeginTime());

-				if (tridentTimeline == null) {

-					if (!(resolveTarget instanceof Widget)) {

-						throw new XWTException("The target of animation should be a Widget");

-					}

-					tridentTimeline = new TridentTimeline(child,

-							(Widget) resolveTarget);

-					timelineGroup.addTimeline(tridentTimeline);

-					tridentTimelineMap.put(timeSpan, tridentTimeline);

-				}

-				child.updateTimeline(tridentTimeline, target);

-			}

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/Vector3DAnimationBase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/Vector3DAnimationBase.java
deleted file mode 100644
index 02a96de..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/Vector3DAnimationBase.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public abstract class Vector3DAnimationBase extends AnimationTimeline {

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/VectorAnimationBase.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/VectorAnimationBase.java
deleted file mode 100644
index 29497ae..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/VectorAnimationBase.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation;

-

-public abstract class VectorAnimationBase extends AnimationTimeline {

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/AnimationManager.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/AnimationManager.java
deleted file mode 100644
index 73cd892..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/AnimationManager.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation.internal;

-

-import java.util.ArrayList;

-import java.util.Collection;

-import java.util.WeakHashMap;

-

-/**

- * This class manages all scenarios and orchestrates the scenarios execution.

- * 

- * @author yyang

- */

-public class AnimationManager {

-	private WeakHashMap<Object, ScenarioManager> scenarioManagers = new WeakHashMap<Object, ScenarioManager>();

-	private static AnimationManager INSTANCE;

-		

-	/**

-	 * This class manages all scenarios of an UI element. It orchestrates the scenarios execution.

-	 * 

-	 * @author yyang

-	 */

-	static class ScenarioManager {

-		private Collection<ITimeline> timelines = new ArrayList<ITimeline>();

-

-		public void play(ITimeline timeline) {

-			for (ITimeline timelineScenario : timelines) {

-				if (timelineScenario != timeline) {

-					timelineScenario.cancel();

-				}

-			}

-			timeline.play();

-		}

-

-		public void cancel(ITimeline timeline) {

-			timeline.end();

-		}

-		

-		public void pause(ITimeline timeline) {

-			timeline.pause();

-		}

-		

-		public void resume(ITimeline timeline) {

-			timeline.resume();

-		}

-		

-		public void playReverse(ITimeline timeline) {

-			timeline.playReverse();

-		}

-

-		public void addTimeline(ITimeline timeline) {

-			timelines.add(timeline);	

-		}

-	}

-	

-	public static AnimationManager getInstance() {

-		if (INSTANCE == null) {

-			INSTANCE = new AnimationManager();

-		}

-		return INSTANCE;

-	}

-	

-	

-	public void play(ITimeline timeline) {

-		ScenarioManager manager = scenarioManagers.get(timeline.getTarget());

-		if (manager != null) {

-			manager.play(timeline);

-		}

-	}

-	

-	public void stop(ITimeline timeline) {

-		ScenarioManager manager = scenarioManagers.get(timeline.getTarget());

-		if (manager != null) {

-			manager.cancel(timeline);

-		}

-	}

-	

-	public void pause(ITimeline timeline) {

-		ScenarioManager manager = scenarioManagers.get(timeline.getTarget());

-		if (manager != null) {

-			manager.pause(timeline);

-		}

-	}

-

-	public void resume(ITimeline timeline) {

-		ScenarioManager manager = scenarioManagers.get(timeline.getTarget());

-		if (manager != null) {

-			manager.resume(timeline);

-		}

-	}

-

-	public void playReverse(ITimeline timeline) {

-		ScenarioManager manager = scenarioManagers.get(timeline.getTarget());

-		if (manager != null) {

-			manager.playReverse(timeline);

-		}

-	}

-

-	public void addTimeline(ITimeline timeline) {

-		ScenarioManager manager = scenarioManagers.get(timeline.getTarget());

-		if (manager == null) {

-			manager = new ScenarioManager();

-			scenarioManagers.put(timeline.getTarget(), manager);

-		}

-		manager.addTimeline(timeline);	

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/ITimeline.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/ITimeline.java
deleted file mode 100644
index 46f2a39..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/ITimeline.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation.internal;

-

-import org.pushingpixels.trident.TimelineScenario.TimelineScenarioActor;

-

-public interface ITimeline extends TimelineScenarioActor {

-	public Object getTarget();

-	

-	public void playReverse();

-

-	public void end();

-

-	public void abort();

-

-	public void cancel();

-

-	public void pause();

-

-	public void resume();

-	

-	public void addStateChangedRunnable(Runnable runnable);

-	

-	public void removeStateChangedRunnable(Runnable runnable);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/ITimelineGroup.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/ITimelineGroup.java
deleted file mode 100644
index fcdc4c6..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/ITimelineGroup.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation.internal;

-

-public interface ITimelineGroup extends ITimeline {

-	public void addTimeline(ITimeline timeline);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/PathPropertyAccessor.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/PathPropertyAccessor.java
deleted file mode 100644
index 0da4892..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/PathPropertyAccessor.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation.internal;

-

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.metadata.IMetaclass;

-import org.eclipse.xwt.metadata.IProperty;

-import org.eclipse.xwt.metadata.ModelUtils;

-import org.pushingpixels.trident.TimelinePropertyBuilder.PropertyAccessor;

-

-public class PathPropertyAccessor<T> implements PropertyAccessor<T> {

-	private String path;

-	private String[] segments;

-

-	private Object cacheObject;

-	private Object cacheHost;

-	private IProperty property;

-

-	public PathPropertyAccessor(String path) {

-		this.path = path;

-		segments = path.split("\\.");

-	}

-

-	public T get(Object object, String fieldName) {

-		checkCache(object);

-		try {

-			return (T) property.getValue(cacheObject);

-		} catch (Exception e) {

-			throw new XWTException("Value access fails: property \""

-					+ segments[segments.length - 1] + "\" of the path \""

-					+ path + "\" is not found in the class \""

-					+ object.getClass().getName() + "\".");

-		}

-	}

-

-	public void set(Object object, String fieldName, T value) {

-		checkCache(object);

-

-		try {

-			property.setValue(cacheObject, value);

-		} catch (Exception e) {

-			throw new XWTException("Value access fails: property \""

-					+ segments[segments.length - 1] + "\" of the path \""

-					+ path + "\" is not found in the class \""

-					+ object.getClass().getName() + "\".");

-		}

-	}

-

-	protected void checkCache(Object object) {

-		if (object == cacheHost && cacheObject != null) {

-			return;

-		}

-		Object target = object;

-		IProperty currentProperty = null;

-		IMetaclass metaclass = XWT.getMetaclass(target);

-		for (int i = 0; i < segments.length; i++) {

-			String segment = ModelUtils.normalizePropertyName(segments[i]);

-			currentProperty = metaclass.findProperty(segment);

-			if (currentProperty == null) {

-				cacheObject = null;

-				throw new XWTException("Property \"" + segment

-						+ "\" of the path \"" + path

-						+ "\" is not found in the class \""

-						+ object.getClass().getName() + "\".");

-			}

-			try {

-				cacheObject = target;

-				target = currentProperty.getValue(target);

-				metaclass = XWT.getMetaclass(target);

-			} catch (Exception e) {

-				cacheObject = null;

-				throw new XWTException("Value access fails: property \""

-						+ segment + "\" of the path \"" + path

-						+ "\" is not found in the class \""

-						+ object.getClass().getName() + "\".");

-			}

-		}

-		property = currentProperty;

-		cacheHost = object;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/ScenarioTimeline.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/ScenarioTimeline.java
deleted file mode 100644
index 94bcacb..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/ScenarioTimeline.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation.internal;

-

-import java.util.ArrayList;

-import java.util.Collection;

-

-import org.eclipse.xwt.animation.RepeatBehavior;

-import org.pushingpixels.trident.TimelineScenario;

-import org.pushingpixels.trident.callback.TimelineScenarioCallback;

-

-public class ScenarioTimeline extends TimelineScenario implements ITimelineGroup {

-	protected TimelineScenario tridentTimelineScenario;

-	protected org.eclipse.xwt.animation.Timeline xwtTimeline;

-	protected Object target;

-	protected boolean done = false;

-	private Collection<ITimeline> actors = new ArrayList<ITimeline>();

-	private Collection<Runnable> stateChangedRunnables = new ArrayList<Runnable>();

-

-	public ScenarioTimeline(org.eclipse.xwt.animation.Timeline xwtTimeline, TimelineScenario tridentTimelineScenario, Object target) {

-		this.xwtTimeline = xwtTimeline;

-		this.target = target;

-		this.tridentTimelineScenario = tridentTimelineScenario;

-		this.tridentTimelineScenario.addCallback(new TimelineScenarioCallback() {

-			public void onTimelineScenarioDone() {

-				synchronized (ScenarioTimeline.this) {

-					done = true;

-					for (Runnable runnable : getStateChangedRunnables()) {

-						runnable.run();

-					}

-				}

-			}

-		});

-	}

-

-	public Collection<Runnable> getStateChangedRunnables() {

-		return stateChangedRunnables;

-	}

-

-	public void addStateChangedRunnable(Runnable stateChangedRunnable) {

-		if (stateChangedRunnable == null) {

-			return;

-		}

-		if (!this.stateChangedRunnables.contains(stateChangedRunnable)) {

-			this.stateChangedRunnables.add(stateChangedRunnable);			

-		}

-	}

-

-	public void removeStateChangedRunnable(Runnable stateChangedRunnable) {

-		this.stateChangedRunnables.remove(stateChangedRunnable);

-	}

-	

-	public Object getTarget() {

-		return target;

-	}

-

-	public void play() {

-		for (ITimeline timeline : actors) {

-			timeline.resetDoneFlag();

-			this.tridentTimelineScenario.addScenarioActor(timeline);

-		}

-		this.tridentTimelineScenario.play();

-	}

-	

-	public void playLoop(RepeatBehavior behavior) {

-		this.tridentTimelineScenario.playLoop();

-	}

-

-	public void end() {

-		if (this.tridentTimelineScenario == null) {

-			return;

-		}

-		this.tridentTimelineScenario.cancel();

-		for (ITimeline timeline : actors) {

-			timeline.end();

-		}

-	}

-

-	public void cancel() {

-		if (this.tridentTimelineScenario == null) {

-			return;

-		}

-		this.tridentTimelineScenario.cancel();

-		for (ITimeline timeline : actors) {

-			timeline.cancel();

-		}

-	}

-

-	public void abort() {

-		if (this.tridentTimelineScenario == null) {

-			return;

-		}

-		this.tridentTimelineScenario.cancel();

-		for (ITimeline timeline : actors) {

-			timeline.abort();

-		}		

-	}

-	

-	public void pause() {

-		if (this.tridentTimelineScenario == null) {

-			return;

-		}

-		this.tridentTimelineScenario.suspend();

-	}

-

-	public void resume() {

-		if (this.tridentTimelineScenario == null) {

-			return;

-		}

-		this.tridentTimelineScenario.resume();

-	}

-

-	public void playReverse() {

-	}

-	

-	public boolean isDone() {

-		synchronized (ScenarioTimeline.this) {

-			return done;

-		}

-	}

-	

-	public void resetDoneFlag() {

-		done = false;

-	}

-	

-	public boolean supportsReplay() {

-		return false;

-	}

-	

-	public void addTimeline(ITimeline timeline) {

-		actors.add(timeline);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/TridentTimeline.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/TridentTimeline.java
deleted file mode 100644
index f83ab80..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/TridentTimeline.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation.internal;

-

-import java.util.ArrayList;

-import java.util.Collection;

-

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Widget;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.animation.Duration;

-import org.eclipse.xwt.animation.IEasingFunction;

-import org.eclipse.xwt.animation.RepeatBehavior;

-import org.eclipse.xwt.animation.TimeSpan;

-import org.pushingpixels.trident.Timeline;

-import org.pushingpixels.trident.TimelinePropertyBuilder;

-import org.pushingpixels.trident.Timeline.TimelineState;

-import org.pushingpixels.trident.TimelinePropertyBuilder.DefaultPropertySetter;

-import org.pushingpixels.trident.TimelineScenario.TimelineScenarioActor;

-import org.pushingpixels.trident.callback.TimelineCallback;

-import org.pushingpixels.trident.swt.SWTRepaintCallback;

-

-public class TridentTimeline implements ITimeline, TimelineScenarioActor {

-	protected Timeline tridentTimeline;

-	protected org.eclipse.xwt.animation.Timeline xwtTimeline;

-	protected Object target;

-	private boolean isPlayed = false;

-	private Collection<Runnable> stateChangedRunnables = new ArrayList<Runnable>();

-

-	public TridentTimeline(org.eclipse.xwt.animation.Timeline xwtTimeline,

-			Widget target) {

-		this.xwtTimeline = xwtTimeline;

-		this.target = target;

-		this.tridentTimeline = createTimeline(target);

-		tridentTimeline.addCallback(new TimelineCallback() {

-			public void onTimelineStateChanged(TimelineState oldState,

-					TimelineState newState, float durationFraction,

-					float timelinePosition) {

-				for (Runnable runnable : getStateChangedRunnables()) {

-					runnable.run();

-				}

-			}

-			public void onTimelinePulse(float durationFraction, float timelinePosition) {

-			}

-		});

-	}

-

-	public Collection<Runnable> getStateChangedRunnables() {

-		return stateChangedRunnables;

-	}

-

-	public void addStateChangedRunnable(Runnable stateChangedRunnable) {

-		if (!this.stateChangedRunnables.contains(stateChangedRunnable)) {

-			this.stateChangedRunnables.add(stateChangedRunnable);			

-		}

-	}

-

-	public void removeStateChangedRunnable(Runnable stateChangedRunnable) {

-		this.stateChangedRunnables.remove(stateChangedRunnable);

-	}

-

-	public Object getTarget() {

-		return target;

-	}

-

-	public void play() {

-		if (this.isPlayed) {

-			this.tridentTimeline.replay();

-		} else {

-			Duration duration = this.xwtTimeline.getDuration();

-			if (duration != null && duration.hasTimeSpan()) {

-				this.tridentTimeline.setDuration(duration.getTimeSpan()

-						.getMilliseconds());

-			} else {

-				this.tridentTimeline.setDuration(10000);

-			}

-			RepeatBehavior behavior = xwtTimeline.getRepeatBehavior();

-			playLoop(behavior);

-			isPlayed = true;

-		}

-	}

-

-	protected void setInitialValue() {

-

-	}

-

-	protected Timeline createTimeline(Widget target) {

-		org.pushingpixels.trident.Timeline timeline = new org.pushingpixels.trident.Timeline(

-				target);

-		Control control = (target instanceof Control ? (Control) target

-				: (Control) XWT.findParent(target, Control.class));

-		timeline.addCallback(new SWTRepaintCallback(control));

-

-		Duration duration = this.xwtTimeline.getDuration();

-		if (duration != null && duration.hasTimeSpan()) {

-			timeline.setDuration(duration.getTimeSpan().getMilliseconds());

-		} else {

-			timeline.setDuration(10000);

-		}

-		return timeline;

-	}

-

-	public void playLoop(RepeatBehavior behavior) {

-		org.pushingpixels.trident.Timeline.RepeatBehavior loopBehavior = org.pushingpixels.trident.Timeline.RepeatBehavior.LOOP;

-		if (xwtTimeline.isAutoReverse()) {

-			loopBehavior = org.pushingpixels.trident.Timeline.RepeatBehavior.REVERSE;

-		}

-

-		if (behavior.getHasCount()) {

-			double loopCount = behavior.getCount();

-			if (!behavior.getHasDuration()) {

-				this.tridentTimeline.playLoop((int) loopCount, loopBehavior);

-			} else {

-				Duration duration = behavior.getDuration();

-				this.tridentTimeline.playLoopSkipping((int) loopCount,

-						loopBehavior, duration.getTimeSpan().getMilliseconds());

-			}

-		} else {

-			if (!behavior.getHasDuration()) {

-				this.tridentTimeline.playLoop(loopBehavior);

-			} else {

-				Duration duration = behavior.getDuration();

-				this.tridentTimeline.playLoopSkipping(loopBehavior, duration

-						.getTimeSpan().getMilliseconds());

-			}

-		}

-	}

-

-	public void end() {

-		if (this.tridentTimeline == null) {

-			return;

-		}

-		this.tridentTimeline.end();

-	}

-

-	public void cancel() {

-		if (this.tridentTimeline == null) {

-			return;

-		}

-		this.tridentTimeline.cancel();

-	}

-

-	public void abort() {

-		if (this.tridentTimeline == null) {

-			return;

-		}

-		this.tridentTimeline.abort();

-	}

-

-	public void pause() {

-		if (this.tridentTimeline == null) {

-			return;

-		}

-		this.tridentTimeline.suspend();

-	}

-

-	public void resume() {

-		if (this.tridentTimeline == null) {

-			return;

-		}

-		this.tridentTimeline.resume();

-	}

-

-	public void playReverse() {

-		if (this.tridentTimeline == null) {

-			return;

-		}

-		this.tridentTimeline.playReverse();

-	}

-

-	public final <T> void addPropertyToInterpolate(String propName, T from, T to) {

-		if (to == null) {

-			throw new XWTException(

-					"\"to\" property of Animation cannot be null.");

-		}

-		TimelinePropertyBuilder<T> builder = Timeline.<T> property(propName);

-		if (from == null) {

-			builder.fromCurrent();

-		} else {

-			builder.from(from);

-		}

-		builder.to(to);

-		int index = propName.indexOf('.');

-		PathPropertyAccessor<T> propertyAccessor = null;

-		if (index != -1) {

-			propertyAccessor = new PathPropertyAccessor<T>(propName);

-			builder.accessWith(propertyAccessor);

-		}

-		this.tridentTimeline.addPropertyToInterpolate(builder);

-

-		TimeSpan timeSpan = this.xwtTimeline.getBeginTime();

-		if (timeSpan != null && timeSpan.ticks != 0) {

-			this.tridentTimeline.setInitialDelay(timeSpan.getMilliseconds());

-		} else if (from != null) {

-			if (propertyAccessor != null) {

-				propertyAccessor.set(target, propName, from);

-			} else {

-				DefaultPropertySetter<T> propertySetter = new DefaultPropertySetter<T>(

-						target, propName);

-				propertySetter.set(target, propName, from);

-			}

-		}

-	}

-

-	public void setEasingFunction(IEasingFunction easingFunction) {

-		if (easingFunction != null) {

-			this.tridentTimeline.setEase(easingFunction);

-		}

-	}

-

-	public boolean isDone() {

-		return tridentTimeline.isDone();

-	}

-

-	public void resetDoneFlag() {

-		tridentTimeline.resetDoneFlag();

-	}

-

-	public boolean supportsReplay() {

-		return tridentTimeline.supportsReplay();

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/interpolator/PointPropertyInterpolator.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/interpolator/PointPropertyInterpolator.java
deleted file mode 100644
index 6480d6e..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/interpolator/PointPropertyInterpolator.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation.interpolator;

-

-import org.eclipse.swt.graphics.Point;

-import org.pushingpixels.trident.interpolator.PropertyInterpolator;

-

-public class PointPropertyInterpolator implements PropertyInterpolator<Point>{

-	private Point value = new Point(0, 0);

-	

-	public PointPropertyInterpolator() {

-	}

-	

-	public Class<?> getBasePropertyClass() {

-		return Point.class;

-	}

-	

-	public Point interpolate(Point from, Point to, float timelinePosition) {

-		double x = from.x + (to.x - from.x) * timelinePosition;

-		double y = from.y + (to.y - from.y) * timelinePosition;

-		value.x = (int)x;

-		value.y = (int)y;

-		return value;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/animation/interpolator/RectanglePropertyInterpolator.java b/org.eclipse.xwt/src/org/eclipse/xwt/animation/interpolator/RectanglePropertyInterpolator.java
deleted file mode 100644
index e4f920f..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/animation/interpolator/RectanglePropertyInterpolator.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.animation.interpolator;

-

-import org.eclipse.swt.graphics.Rectangle;

-import org.pushingpixels.trident.interpolator.PropertyInterpolator;

-

-public class RectanglePropertyInterpolator implements

-		PropertyInterpolator<Rectangle> {

-	private Rectangle value = new Rectangle(0, 0, 0, 0);

-

-	public RectanglePropertyInterpolator() {

-	}

-

-	public Class<?> getBasePropertyClass() {

-		return Rectangle.class;

-	}

-

-	public Rectangle interpolate(Rectangle from, Rectangle to,

-			float timelinePosition) {

-		double x = from.x + (to.x - from.x) * timelinePosition;

-		double y = from.y + (to.y - from.y) * timelinePosition;

-		double width = from.width + (to.width - from.width) * timelinePosition;

-		double height = from.height + (to.height - from.height)

-				* timelinePosition;

-		value.x = (int) x;

-		value.y = (int) y;

-		value.width = (int) width;

-		value.height = (int) height;

-		return value;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/annotation/Containment.java b/org.eclipse.xwt/src/org/eclipse/xwt/annotation/Containment.java
deleted file mode 100644
index d3180d4..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/annotation/Containment.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.annotation;

-

-import java.lang.annotation.ElementType;

-import java.lang.annotation.Retention;

-import java.lang.annotation.RetentionPolicy;

-import java.lang.annotation.Target;

-

-/**

- * To annotate which field should be containment

- * 

- * @author yyang

- */

-@Retention(RetentionPolicy.RUNTIME)

-@Target({ElementType.METHOD, ElementType.FIELD})

-public @interface Containment {

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/annotation/UI.java b/org.eclipse.xwt/src/org/eclipse/xwt/annotation/UI.java
deleted file mode 100644
index 45e0e9c..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/annotation/UI.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.annotation;

-

-import java.lang.annotation.ElementType;

-import java.lang.annotation.Retention;

-import java.lang.annotation.RetentionPolicy;

-import java.lang.annotation.Target;

-

-@Retention(RetentionPolicy.RUNTIME)

-@Target(ElementType.FIELD)

-public @interface UI {

-	String value() default "";

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/annotation/UIBounds.java b/org.eclipse.xwt/src/org/eclipse/xwt/annotation/UIBounds.java
deleted file mode 100644
index 2a2f9f1..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/annotation/UIBounds.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.annotation;

-

-import java.lang.annotation.ElementType;

-import java.lang.annotation.Retention;

-import java.lang.annotation.RetentionPolicy;

-import java.lang.annotation.Target;

-

-@Retention(RetentionPolicy.RUNTIME)

-@Target(ElementType.METHOD)

-public @interface UIBounds {

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/callback/IBeforeParsingCallback.java b/org.eclipse.xwt/src/org/eclipse/xwt/callback/IBeforeParsingCallback.java
deleted file mode 100644
index 905a4f3..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/callback/IBeforeParsingCallback.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.callback;

-

-public interface IBeforeParsingCallback {

-	String onParsing(String content);

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/callback/ICreatedCallback.java b/org.eclipse.xwt/src/org/eclipse/xwt/callback/ICreatedCallback.java
deleted file mode 100644
index 800ccae..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/callback/ICreatedCallback.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.callback;

-

-public interface ICreatedCallback {

-	void onCreated(Object sender);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/callback/ILoadedCallback.java b/org.eclipse.xwt/src/org/eclipse/xwt/callback/ILoadedCallback.java
deleted file mode 100644
index 7379865..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/callback/ILoadedCallback.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.callback;

-

-public interface ILoadedCallback {

-	void onLoaded(Object sender);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/collection/CollectionView.java b/org.eclipse.xwt/src/org/eclipse/xwt/collection/CollectionView.java
deleted file mode 100644
index f16cf61..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/collection/CollectionView.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.collection;

-

-import java.util.Collection;

-import java.util.Collections;

-import java.util.Locale;

-

-import org.eclipse.xwt.core.ICollectionView;

-

-/**

- * Represents a view for grouping, sorting, filtering, and navigating a data

- * collection.`

- * 

- * @author yyang

- */

-public class CollectionView<T> implements ICollectionView<T> {

-	private T currentItem;

-	private int currentPosition = 0;

-	private Collection<T> sourceCollection = Collections.EMPTY_LIST;

-	private GroupDescription[] groupDescription = GroupDescription.EMPTY_ARRAY;

-	private Collection<T> groups = Collections.EMPTY_LIST;

-	

-	private Locale locale = Locale.getDefault();

-

-	private SortDescription[] sortDescription = SortDescription.EMPTY_ARRAY;

-

-	public GroupDescription[] getGroupDescription() {

-		return groupDescription;

-	}

-

-	public void setGroupDescription(GroupDescription[] groupDescription) {

-		this.groupDescription = groupDescription;

-	}

-

-	public Collection<T> getGroups() {

-		return groups;

-	}

-

-	public void setGroups(Collection<T> groups) {

-		this.groups = groups;

-	}

-

-	public Locale getLocale() {

-		return locale;

-	}

-

-	public void setLocale(Locale locale) {

-		this.locale = locale;

-	}

-

-	public SortDescription[] getSortDescription() {

-		return sortDescription;

-	}

-

-	public void setSortDescription(SortDescription[] sortDescription) {

-		this.sortDescription = sortDescription;

-	}

-

-	public void setCurrentPosition(int currentPosition) {

-		this.currentPosition = currentPosition;

-	}

-

-	public void setSourceCollection(Collection<T> sourceCollection) {

-		this.sourceCollection = sourceCollection;

-	}

-

-	public boolean canFilter() {

-		return false;

-	}

-

-	public boolean canGroup() {

-		return groupDescription.length > 0;

-	}

-

-	public boolean canSort() {

-		return sortDescription.length > 0;

-	}

-

-	public T getCurrentItem() {

-		return currentItem;

-	}

-	

-	public void setCurrentItem(T currentItem) {

-		this.currentItem = currentItem;

-	}

-

-	public int getCurrentPosition() {

-		return currentPosition;

-	}

-

-	public Collection<T> getSourceCollection() {

-		return sourceCollection;

-	}

-

-	public boolean isEmpty() {

-		if (canGroup()) {

-			return groups.isEmpty();

-		}

-		return sourceCollection.isEmpty();

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/collection/CollectionViewSource.java b/org.eclipse.xwt/src/org/eclipse/xwt/collection/CollectionViewSource.java
deleted file mode 100644
index f76b529..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/collection/CollectionViewSource.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.collection;

-

-import java.util.ArrayList;

-import java.util.Arrays;

-import java.util.List;

-import java.util.Locale;

-import java.util.Set;

-

-import org.eclipse.core.databinding.observable.IObservableCollection;

-import org.eclipse.core.databinding.observable.list.WritableList;

-import org.eclipse.core.databinding.observable.set.WritableSet;

-import org.eclipse.xwt.XWT;

-

-/**

- * The proxy of a CollectionView class.

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class CollectionViewSource {

-	/**

-	 * Gets or sets the collection object from which to create this view. This is a dependency property. 

-	 */

-	private Object source;

-	

-	/**

-	 * Gets the view object that is currently associated with this instance of CollectionViewSource. This is a dependency property. 

-	 * 

-	 */	

-	private IObservableCollection view;

-		

-	private GroupDescription[] groupDescription = GroupDescription.EMPTY_ARRAY;

-

-	private SortDescription[] sortDescription = SortDescription.EMPTY_ARRAY;

-

-	private Locale locale = Locale.getDefault();

-	

-	/**

-	 * Gets or sets the desired view type.

-	 */

-	private Class<?> collectionViewType = Object.class;

-

-	public Object getSource() {

-		if (source == null) {			

-			source = new ArrayList<Object>();

-		}

-		return source;

-	}

-

-	public void setSource(Object source) {

-		if (this.source == source) {

-			return;

-		}

-		view = null;

-		this.source = source;

-	}

-

-	public IObservableCollection getView() {

-		if (view == null) {

-			Object source = getSource();

-			if (!(source instanceof IObservableCollection)) {

-				Class<?> elementType = getCollectionViewType();

-				if (source.getClass().isArray()) {

-					Object[] array = (Object[])source;

-					elementType = source.getClass().getComponentType();

-					source = Arrays.asList(array);

-				}

-				if (source instanceof List<?>) {

-					view = new WritableList(XWT.getRealm(), (List<?>)source, elementType);

-				}

-				else if (source instanceof Set<?>) {

-					view = new WritableSet(XWT.getRealm(), (List<?>)source, elementType);

-				}

-			}

-		}

-		return view;

-	}

-

-	public GroupDescription[] getGroupDescription() {

-		return groupDescription;

-	}

-

-	public void setGroupDescription(GroupDescription[] groupDescription) {

-		this.groupDescription = groupDescription;

-	}

-

-	public SortDescription[] getSortDescription() {

-		return sortDescription;

-	}

-

-	public void setSortDescription(SortDescription[] sortDescription) {

-		this.sortDescription = sortDescription;

-	}

-

-	public Class<?> getCollectionViewType() {

-		return collectionViewType;

-	}

-

-	public void setCollectionViewType(Class<?> collectionViewType) {

-		this.collectionViewType = collectionViewType;

-	}

-

-	public Locale getLocale() {

-		return locale;

-	}

-

-	public void setLocale(Locale locale) {

-		this.locale = locale;

-	} 

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/collection/GroupDescription.java b/org.eclipse.xwt/src/org/eclipse/xwt/collection/GroupDescription.java
deleted file mode 100644
index 4fff13a..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/collection/GroupDescription.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.collection;

-

-/**

- * Provides an abstract base class for types that describe how to divide the items in a collection into groups.

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class GroupDescription {

-	public static GroupDescription[] EMPTY_ARRAY = new GroupDescription[0];

-	

-	/**

-	 * Gets the collection of names that are used to initialize a group with a set of subgroups with the given names.

-	 */

-	protected String[] groupNames;

-

-	/**

-	 * 

-	 * @return

-	 */

-	public String[] getGroupNames() {

-		return groupNames;

-	}

-

-	/**

-	 * 

-	 * @param groupNames

-	 */

-	public void setGroupNames(String[] groupNames) {

-		this.groupNames = groupNames;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/collection/ListSortDirection.java b/org.eclipse.xwt/src/org/eclipse/xwt/collection/ListSortDirection.java
deleted file mode 100644
index 75a3d23..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/collection/ListSortDirection.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.collection;

-

-/**

- * Specifies the direction of a sort operation.

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public enum ListSortDirection {

-	Ascending, Descending;

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/collection/SortDescription.java b/org.eclipse.xwt/src/org/eclipse/xwt/collection/SortDescription.java
deleted file mode 100644
index 860e6a8..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/collection/SortDescription.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.collection;

-

-/**

- * Defines the direction and the property name to be used as the criteria for sorting a collection.

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class SortDescription {

-	public static SortDescription[] EMPTY_ARRAY = new SortDescription[0];

-

-	/**

-	 * Gets or sets a value that indicates whether to sort in ascending or descending order.

-	 */

-	private ListSortDirection direction = ListSortDirection.Ascending; 

-	

-	/**

-	 * Gets or sets the property name being used as the sorting criteria.

-	 */

-	private String propertyName;

-	

-	public ListSortDirection getDirection() {

-		return direction;

-	}

-	

-	public void setDirection(ListSortDirection direction) {

-		this.direction = direction;

-	}

-	

-	public String getPropertyName() {

-		return propertyName;

-	}

-	

-	public void setPropertyName(String propertyName) {

-		this.propertyName = propertyName;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/AbstractMultiValueConverter.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/AbstractMultiValueConverter.java
deleted file mode 100644
index 4b35f50..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/AbstractMultiValueConverter.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import org.eclipse.xwt.IMultiValueConverter;

-

-/**

- * Default implementation class of IMultiValueConverter

- * 

- * @author yyang <yesc.yang@soyatec.com>

- */

-public abstract class AbstractMultiValueConverter implements IMultiValueConverter {

-	

-	public Object convert(Object fromObject) {

-		if (!fromObject.getClass().isArray()) {

-			fromObject = new Object[]{fromObject};

-		}

-		return convert((Object[])fromObject);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/BindingToObject.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/BindingToObject.java
deleted file mode 100644
index 7f89516..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/BindingToObject.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.xwt.core.IBinding;

-

-/**

- * Binding to Object covnerter

- * 

- * @author yyang

- */

-public class BindingToObject implements IConverter {

-	public static BindingToObject instance = new BindingToObject();

-

-	public Object convert(Object fromObject) {

-		IBinding binding = (IBinding) fromObject;

-		return binding.getValue(null);

-	}

-

-	public Object getFromType() {

-		return IBinding.class;

-	}

-

-	public Object getToType() {

-		return Object.class;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/CollectionToBoolean.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/CollectionToBoolean.java
deleted file mode 100644
index 18c7098..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/CollectionToBoolean.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import java.util.Collection;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-

-/**

- * String to Boolean converter

- * 

- * @author yyang

- */

-public class CollectionToBoolean implements IConverter {

-	public static CollectionToBoolean instance = new CollectionToBoolean();

-

-	public Object convert(Object fromObject) {

-		Collection<?> collection = (Collection<?>) fromObject;

-		return !collection.isEmpty();

-	}

-

-	public Object getFromType() {

-		return Collection.class;

-	}

-

-	public Object getToType() {

-		return Boolean.class;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/CollectionToInteger.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/CollectionToInteger.java
deleted file mode 100644
index a733f23..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/CollectionToInteger.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import java.util.Collection;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-

-/**

- * String to Boolean converter

- * 

- * @author yyang

- */

-public class CollectionToInteger implements IConverter {

-	public static CollectionToInteger instance = new CollectionToInteger();

-

-	public Object convert(Object fromObject) {

-		Collection<?> collection = (Collection<?>) fromObject;

-		return collection.size();

-	}

-

-	public Object getFromType() {

-		return Collection.class;

-	}

-

-	public Object getToType() {

-		return Integer.class;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/DateToString.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/DateToString.java
deleted file mode 100644
index 5332dde..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/DateToString.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import java.text.SimpleDateFormat;

-import java.util.Date;

-

-/**

- * Date to String converter

- * 

- * @author yyang

- */

-public class DateToString extends ObjectToString {

-	private static final SimpleDateFormat FORMATTER = new SimpleDateFormat();

-	public static DateToString instance = new DateToString();

-

-	public DateToString() {

-		this(Date.class);

-	}

-

-	protected DateToString(Class<?> fromType) {

-		super(fromType);

-	}

-

-	public Object convert(Object fromObject) {

-		if (fromObject == null) {

-			return super.convert(null);

-		}

-		return FORMATTER.format((Date) fromObject);

-	}

-

-	public Object getToType() {

-		return String.class;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/EnumToString.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/EnumToString.java
deleted file mode 100644
index ca8264b..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/EnumToString.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-

-package org.eclipse.xwt.converters;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-

-public class EnumToString implements IConverter {

-	public static EnumToString instance = new EnumToString();

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)

-	 */

-	public Object convert(Object fromObject) {

-		return ((Enum<?>) fromObject).toString();

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()

-	 */

-	public Object getFromType() {

-		return Enum.class;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()

-	 */

-	public Object getToType() {

-		return String.class;

-	}

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/IStatusToBoolean.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/IStatusToBoolean.java
deleted file mode 100644
index fcd8db5..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/IStatusToBoolean.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.core.runtime.IStatus;

-

-/**

- * Binding to Object covnerter

- * 

- * @author yyang

- */

-public class IStatusToBoolean implements IConverter {

-	public static IStatusToBoolean instance = new IStatusToBoolean();

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.

-	 * Object)

-	 */

-	public Object convert(Object fromObject) {

-		IStatus status = (IStatus) fromObject;

-		return status.isOK();

-	}

-

-	public Object getFromType() {

-		return IStatus.class;

-	}

-

-	public Object getToType() {

-		return Boolean.class;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/IStatusToString.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/IStatusToString.java
deleted file mode 100644
index ab1ff29..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/IStatusToString.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.core.runtime.IStatus;

-

-/**

- * Binding to Object covnerter

- * 

- * @author yyang

- */

-public class IStatusToString implements IConverter {

-	public static IStatusToString instance = new IStatusToString();

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.

-	 * Object)

-	 */

-	public Object convert(Object fromObject) {

-		IStatus status = (IStatus) fromObject;

-		if (status.isOK()) {

-			return "";

-		}

-		return status.getMessage();

-	}

-

-	public Object getFromType() {

-		return IStatus.class;

-	}

-

-	public Object getToType() {

-		return String.class;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/ListToIObservableCollection.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/ListToIObservableCollection.java
deleted file mode 100644
index 6b5956a..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/ListToIObservableCollection.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import java.util.List;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.core.databinding.observable.IObservableCollection;

-import org.eclipse.core.databinding.observable.list.WritableList;

-import org.eclipse.xwt.XWT;

-

-/**

- * List to IObservableCollection converter

- * 

- * @author yyang

- */

-public class ListToIObservableCollection implements IConverter {

-	public static ListToIObservableCollection instance = new ListToIObservableCollection();

-

-	public Object convert(Object fromObject) {

-		List<?> list = (List<?>) fromObject;

-		return new WritableList(XWT.getRealm(), (List<?>)list, Object.class);

-	}

-

-	public Object getFromType() {

-		return List.class;

-	}

-

-	public Object getToType() {

-		return IObservableCollection.class;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/ListToSet.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/ListToSet.java
deleted file mode 100644
index 1818785..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/ListToSet.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import java.util.HashSet;

-import java.util.List;

-import java.util.Set;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-

-/**

- * String to Boolean converter

- * 

- * @author yyang

- */

-public class ListToSet implements IConverter {

-	public static ListToSet instance = new ListToSet();

-

-	public Object convert(Object fromObject) {

-		List<?> list = (List<?>) fromObject;

-		return new HashSet<Object>(list);

-	}

-

-	public Object getFromType() {

-		return List.class;

-	}

-

-	public Object getToType() {

-		return Set.class;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/ObjectToBoolean.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/ObjectToBoolean.java
deleted file mode 100644
index 7e3b271..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/ObjectToBoolean.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-

-/**

- * String to Boolean converter

- * 

- * @author yyang

- */

-public class ObjectToBoolean implements IConverter {

-	public static ObjectToBoolean instance = new ObjectToBoolean();

-

-	public Object convert(Object fromObject) {

-		return fromObject != null;

-	}

-

-	public Object getFromType() {

-		return Object.class;

-	}

-

-	public Object getToType() {

-		return Boolean.class;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/ObjectToISelection.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/ObjectToISelection.java
deleted file mode 100644
index f383425..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/ObjectToISelection.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-

-package org.eclipse.xwt.converters;

-

-import java.util.Collection;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.jface.viewers.ISelection;

-import org.eclipse.jface.viewers.StructuredSelection;

-

-/**

- * Safely SWT context values, it used to avoid a NullPointerException when set

- * text values to SWT Widgets.

- * 

- * @author jliu

- */

-public class ObjectToISelection implements IConverter {

-	public static ObjectToISelection instance = new ObjectToISelection();

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.

-	 * Object)

-	 */

-	public Object convert(Object fromObject) {

-		if (fromObject == null) {

-			return new StructuredSelection();

-		}

-		if (fromObject instanceof Collection<?>) {

-			return new StructuredSelection(((Collection<?>) fromObject)

-					.toArray());

-		} else if (fromObject.getClass().isArray()) {

-			return new StructuredSelection((Object[]) fromObject);

-		}

-		return new StructuredSelection(fromObject);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()

-	 */

-	public Object getFromType() {

-		return Object.class;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()

-	 */

-	public Object getToType() {

-		return ISelection.class;

-	}

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/ObjectToObject.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/ObjectToObject.java
deleted file mode 100644
index e0203bd..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/ObjectToObject.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-

-/**

- * Object to Object converter: null converter

- * 

- * @author yyang

- */

-public class ObjectToObject implements IConverter {

-	public static ObjectToObject instance = new ObjectToObject();

-

-	public Object convert(Object fromObject) {

-		return fromObject;

-	}

-

-	public Object getFromType() {

-		return Object.class;

-	}

-

-	public Object getToType() {

-		return Object.class;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/ObjectToString.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/ObjectToString.java
deleted file mode 100644
index d322676..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/ObjectToString.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-

-package org.eclipse.xwt.converters;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-

-/**

- * Safely SWT context values, it used to avoid a NullPointerException when set text values to SWT Widgets.

- * 

- * @author jliu

- */

-public class ObjectToString implements IConverter {

-	public static ObjectToString FROM_OBJECT = new ObjectToString(Object.class);

-	public static ObjectToString FROM_INTEGER = new ObjectToString(Integer.class);

-	public static ObjectToString FROM_SHORT = new ObjectToString(Short.class);

-	public static ObjectToString FROM_LONG = new ObjectToString(Long.class);

-	private Class<?> fromType;

-	

-	public ObjectToString(Class<?> fromType) {

-		this.fromType = fromType;

-	}

-	

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)

-	 */

-	public Object convert(Object fromObject) {

-		if (fromObject == null) {

-			return "";

-		}

-		return fromObject.toString();

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()

-	 */

-	public Object getFromType() {

-		if (fromType == null) {

-			return Object.class;			

-		}

-		return fromType;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()

-	 */

-	public Object getToType() {

-		return String.class;

-	}

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/SelectionToBoolean.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/SelectionToBoolean.java
deleted file mode 100644
index f3861ae..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/SelectionToBoolean.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.jface.viewers.ISelection;

-

-/**

- * String to Boolean converter

- * 

- * @author yyang

- */

-public class SelectionToBoolean implements IConverter {

-	public static SelectionToBoolean instance = new SelectionToBoolean();

-

-	public Object convert(Object fromObject) {

-		ISelection selection = (ISelection) fromObject;

-		return !selection.isEmpty();

-	}

-

-	public Object getFromType() {

-		return ISelection.class;

-	}

-

-	public Object getToType() {

-		return Boolean.class;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/SetToIObservableCollection.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/SetToIObservableCollection.java
deleted file mode 100644
index de5372c..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/SetToIObservableCollection.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import java.util.Set;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.core.databinding.observable.IObservableCollection;

-import org.eclipse.core.databinding.observable.set.WritableSet;

-import org.eclipse.xwt.XWT;

-

-/**

- * Set to IObservableCollection converter

- * 

- * @author yyang

- */

-public class SetToIObservableCollection implements IConverter {

-	public static SetToIObservableCollection instance = new SetToIObservableCollection();

-

-	public Object convert(Object fromObject) {

-		Set<?> set = (Set<?>) fromObject;

-		return new WritableSet(XWT.getRealm(), (Set<?>)set, Object.class);

-	}

-

-	public Object getFromType() {

-		return Set.class;

-	}

-

-	public Object getToType() {

-		return IObservableCollection.class;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringMultiValueConerter.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringMultiValueConerter.java
deleted file mode 100644
index 4537841..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringMultiValueConerter.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-/**

- * Default implementation of MultiValueConverter from a string

- * 

- * @author yyang <yesc.yang@soyatec.com>

- *

- */

-public class StringMultiValueConerter extends AbstractMultiValueConverter {

-	private String separatorExpression = null;

-

-	public Object[] convertBack(Object value) {

-		if (value instanceof Object[]) {

-			return (Object[]) value;

-		}

-		String valueString = value.toString();

-		return valueString.split(getSeparatorExpression());

-	}

-

-	public String getSeparatorExpression() {

-		if (separatorExpression == null) {

-			return "[ \t\r\n]+";

-		}

-		return separatorExpression;

-	}

-

-	public void setSeparatorExpression(String separatorExpression) {

-		this.separatorExpression = separatorExpression;

-	}

-	

-	protected String getSeparator() {

-		if (separatorExpression == null || separatorExpression.length() == 0) {

-			return " ";

-		}

-		return "" + separatorExpression.charAt(0);

-	}

-	

-	public Object convert(Object[] value) {

-		StringBuffer buffer = new StringBuffer();

-		String separator = getSeparator();

-		for (int i = 0; i < value.length; i++) {

-			if (i != 0) {

-				buffer.append(separator);

-			}

-			buffer.append(value[i]);

-		}

-		return buffer.toString();

-	}

-

-	public Object getFromType() {

-		return String[].class;

-	}

-

-	public Object getToType() {

-		return String.class;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToBoolean.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToBoolean.java
deleted file mode 100644
index e647162..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToBoolean.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.xwt.XWTException;

-

-/**

- * String to Boolean converter

- * 

- * @author yyang

- */

-public class StringToBoolean implements IConverter {

-	public static StringToBoolean instance = new StringToBoolean();

-

-	public Object convert(Object fromObject) {

-		String str = (String) fromObject;

-		if (str == null || "".equalsIgnoreCase(str)) {

-			return false;

-		}

-		else if ("true".equalsIgnoreCase(str)) {

-			return true;

-		}

-		else if ("false".equalsIgnoreCase(str)) {

-			return false;

-		}

-		throw new XWTException(str + " is not a boolean");

-	}

-

-	public Object getFromType() {

-		return String.class;

-	}

-

-	public Object getToType() {

-		return Boolean.class;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToChar.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToChar.java
deleted file mode 100644
index 04f2e1f..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToChar.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.xwt.XWTException;

-

-/**

- * String to Boolean converter

- * 

- * @author yyang

- */

-public class StringToChar implements IConverter {

-	public static StringToChar instance = new StringToChar();

-

-	public Object convert(Object fromObject) {

-		String str = (String) fromObject;

-		if (str != null) {

-			str = str.trim();

-			if (str.length() > 0) {

-				char c = str.charAt(0);

-				return c;

-			}

-		}

-		throw new XWTException(str + " is not a character");

-	}

-

-	public Object getFromType() {

-		return String.class;

-	}

-

-	public Object getToType() {

-		return Character.class;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToColor.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToColor.java
deleted file mode 100644
index 3ab485e..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToColor.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.swt.graphics.Color;

-import org.eclipse.xwt.utils.ResourceManager;

-

-/**

- * String to Color converter

- * 

- * @author jliu

- */

-public class StringToColor implements IConverter {

-	public static StringToColor instance = new StringToColor();

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)

-	 */

-	public Object convert(Object fromObject) {

-		return ResourceManager.resources.getColor((String) fromObject);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()

-	 */

-	public Object getFromType() {

-		return String.class;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()

-	 */

-	public Object getToType() {

-		return Color.class;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToDoubleArray.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToDoubleArray.java
deleted file mode 100644
index fac276a..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToDoubleArray.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import java.util.ArrayList;

-import java.util.List;

-import java.util.StringTokenizer;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.xwt.XWTException;

-

-/**

- * String to double[] converter

- * 

- * @author jliu

- */

-public class StringToDoubleArray implements IConverter {

-	public static StringToDoubleArray instance = new StringToDoubleArray();

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang. Object)

-	 */

-	public Object convert(Object fromObject) {

-		String source = (String) fromObject;

-		List<Double> result = new ArrayList<Double>();

-		StringTokenizer stk = new StringTokenizer(source, ", \t\n\r\f");

-		while (stk.hasMoreTokens()) {

-			String nextToken = stk.nextToken();

-			try {

-				result.add(Double.parseDouble(nextToken.trim()));

-			} catch (NumberFormatException e) {

-				throw new XWTException(source + " is not integer array");

-			}

-		}

-		double[] intArray = new double[result.size()];

-		for (int i = 0; i < result.size(); i++) {

-			intArray[i] = result.get(i);

-		}

-		return intArray;

-	}

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()

-	 */

-	public Object getFromType() {

-		return String.class;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()

-	 */

-	public Object getToType() {

-		return double[].class;

-	}

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToDuration.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToDuration.java
deleted file mode 100644
index 2908a21..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToDuration.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-

-package org.eclipse.xwt.converters;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.xwt.animation.Duration;

-import org.eclipse.xwt.animation.TimeSpan;

-

-/**

- * Safely SWT context values, it used to avoid a NullPointerException when set text values to SWT Widgets.

- * 

- * @author jliu

- */

-public class StringToDuration implements IConverter {

-	public static StringToDuration instance = new StringToDuration();

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)

-	 */

-	public Object convert(Object fromObject) {

-		return new Duration(TimeSpan.parse(fromObject.toString()));

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()

-	 */

-	public Object getFromType() {

-		return String.class;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()

-	 */

-	public Object getToType() {

-		return Duration.class;

-	}

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToEnum.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToEnum.java
deleted file mode 100644
index ceb1376..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToEnum.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *  

- * Contributors:                                                               *  

- *     Soyatec - initial API and implementation                                * 

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-

-/**

- * @author jliu (jin.liu@soyatec.com)

- */

-public class StringToEnum implements IConverter {

-

-	private Class<?> toType;

-

-	public StringToEnum(Class<?> toType) {

-		this.toType = toType;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)

-	 */

-	public Object convert(Object fromObject) {

-		if (fromObject == null || "".equals(fromObject)) {

-			Class<?> type = (Class<?>) getToType();

-			Object[] values = type.getEnumConstants();

-			if (values != null && values.length > 0) {

-				return values[0];

-			}

-		}

-		

-		return Enum.valueOf((Class) getToType(), (String)fromObject);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()

-	 */

-	public Object getFromType() {

-		return String.class;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()

-	 */

-	public Object getToType() {

-		return toType;

-	}

-

-	public void setToType(Class<?> toType) {

-		this.toType = toType;

-	}

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToFont.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToFont.java
deleted file mode 100644
index d6050c5..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToFont.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.swt.graphics.Font;

-import org.eclipse.xwt.utils.ResourceManager;

-

-/**

- * String to Font converter

- * 

- * @author yyang

- */

-public class StringToFont implements IConverter {

-	public static StringToFont instance = new StringToFont();

-

-	public Object convert(Object fromObject) {

-		return ResourceManager.resources.getFont((String) fromObject);

-	}

-

-	public Object getFromType() {

-		return String.class;

-	}

-

-	public Object getToType() {

-		return Font.class;

-	}

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToFormAttachment.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToFormAttachment.java
deleted file mode 100644
index a34888b..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToFormAttachment.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *  

- * Contributors:                                                               *  

- *     Soyatec - initial API and implementation                                * 

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import java.util.ArrayList;

-import java.util.List;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.swt.layout.FormAttachment;

-

-/**

- * This converter can easily convert string value to FormAttachment object in these format:

- * <nl>

- * <li><FormData top="0"></li> would be parsed to FormAttachment(0).

- * <li><FormData top="0,20"></li> would be parsed to FormAttachment(0, 20).

- * <li><FormData top="0,100,20"></li> would be parsed to FormAttachment(0, 100, 20).

- * <nl>

- * This converter can not parse some arguments which have Control type.

- * 

- * @author jliu (jin.liu@soyatec.com)

- */

-public class StringToFormAttachment implements IConverter {

-	public static IConverter instance = new StringToFormAttachment();

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)

-	 */

-	public Object convert(Object fromObject) {

-		if (fromObject == null) {

-			return null;

-		}

-		String strValue = fromObject.toString();

-		int numerator = 0, denominator = 100, offset = 0;

-		List<Integer> intValues = new ArrayList<Integer>();

-		String[] split = strValue.split(",");

-		for (int i = 0; i < split.length; i++) {

-			String trim = split[i].trim();

-			try {

-				int value = Integer.parseInt(trim);

-				intValues.add(value);

-			} catch (NumberFormatException e) {

-			}

-		}

-		FormAttachment result = new FormAttachment();

-		int size = intValues.size();

-		try {

-			numerator = intValues.get(0);

-			if (size == 2) {

-				offset = intValues.get(1);

-			} else if (size == 3) {

-				denominator = intValues.get(1);

-				offset = intValues.get(2);

-			}

-		} catch (Exception e) {

-		}

-		result.denominator = denominator;

-		result.numerator = numerator;

-		result.offset = offset;

-		return result;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()

-	 */

-	public Object getFromType() {

-		return String.class;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()

-	 */

-	public Object getToType() {

-		return FormAttachment.class;

-	}

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToIValidationRule.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToIValidationRule.java
deleted file mode 100644
index eae9d9e..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToIValidationRule.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.xwt.IValidationRule;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTException;

-

-/**

- * @author jliu (jin.liu@soyatec.com)

- */

-public class StringToIValidationRule implements IConverter {

-	public static StringToIValidationRule instance = new StringToIValidationRule();

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)

-	 */

-	public Object convert(Object fromObject) {

-		try {

-			Class<?> type = XWT.getLoadingContext().loadClass(fromObject.toString());

-			if (type == null) {

-				throw new XWTException("Class " + fromObject.toString() + " is not found.");				

-			}

-			return type.newInstance();

-		} catch (Exception e) {

-			throw new XWTException(e);

-		}

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()

-	 */

-	public Object getFromType() {

-		return String.class;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()

-	 */

-	public Object getToType() {

-		return IValidationRule.class;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToIValueConverter.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToIValueConverter.java
deleted file mode 100644
index 269dcfd..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToIValueConverter.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.xwt.IValueConverter;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTException;

-

-/**

- * @author jliu (jin.liu@soyatec.com)

- */

-public class StringToIValueConverter implements IConverter {

-	public static StringToIValueConverter instance = new StringToIValueConverter();

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)

-	 */

-	public Object convert(Object fromObject) {

-		try {

-			Class<?> type = XWT.getLoadingContext().loadClass(fromObject.toString());

-			if (type == null) {

-				throw new XWTException("Class " + fromObject.toString() + " is not found.");				

-			}

-			return type.newInstance();

-		} catch (Exception e) {

-			throw new XWTException(e);

-		}

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()

-	 */

-	public Object getFromType() {

-		return String.class;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()

-	 */

-	public Object getToType() {

-		return IValueConverter.class;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToImage.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToImage.java
deleted file mode 100644
index 750d841..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToImage.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.swt.graphics.Image;

-import org.eclipse.xwt.utils.ResourceManager;

-

-/**

- * String to Image converter

- * 

- * @author jliu

- */

-public class StringToImage implements IConverter {

-	public static StringToImage instance = new StringToImage();

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)

-	 */

-	public Object convert(Object fromObject) {

-		return ResourceManager.resources.getImage((String) fromObject);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()

-	 */

-	public Object getFromType() {

-		return String.class;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()

-	 */

-	public Object getToType() {

-		return Image.class;

-	}

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToIntArray.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToIntArray.java
deleted file mode 100644
index b125d41..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToIntArray.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import java.util.ArrayList;

-import java.util.List;

-import java.util.StringTokenizer;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.xwt.XWTException;

-

-/**

- * String to int[] converter

- * 

- * @author jliu

- */

-public class StringToIntArray implements IConverter {

-	public static StringToIntArray instance = new StringToIntArray();

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang. Object)

-	 */

-	public Object convert(Object fromObject) {

-		String source = (String) fromObject;

-		List<Integer> result = new ArrayList<Integer>();

-		StringTokenizer stk = new StringTokenizer(source, ",");

-		while (stk.hasMoreTokens()) {

-			String nextToken = stk.nextToken();

-			try {

-				result.add(Integer.parseInt(nextToken.trim()));

-			} catch (NumberFormatException e) {

-				throw new XWTException(source + " is not integer array");

-			}

-		}

-		int[] intArray = new int[result.size()];

-		for (int i = 0; i < result.size(); i++) {

-			intArray[i] = result.get(i);

-		}

-		return intArray;

-	}

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()

-	 */

-	public Object getFromType() {

-		return String.class;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()

-	 */

-	public Object getToType() {

-		return int[].class;

-	}

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToInteger.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToInteger.java
deleted file mode 100644
index 2acc1f7..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToInteger.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import java.lang.reflect.Field;

-import java.lang.reflect.Modifier;

-import java.util.ArrayList;

-import java.util.List;

-import java.util.StringTokenizer;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.core.databinding.conversion.StringToNumberConverter;

-import org.eclipse.swt.layout.GridData;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.XWTMaps;

-import org.eclipse.xwt.metadata.IMetaclass;

-

-/**

- * String to Integer converter

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class StringToInteger implements IConverter {

-	private static final String GRIDDATA_PREFIX = "GRIDDATA.";

-	private static final String STYLES_SEP = "|";

-	public static StringToInteger instance = new StringToInteger();

-	protected StringToNumberConverter toNumberConverter = StringToNumberConverter.toInteger(false);

-	

-	public Object convert(Object fromObject) {

-		String str = (String) fromObject;

-		if (str.indexOf(STYLES_SEP) != -1) {

-			List<String> values = new ArrayList<String>();

-			StringTokenizer stk = new StringTokenizer(str, STYLES_SEP);

-			while (stk.hasMoreTokens()) {

-				values.add(stk.nextToken());

-			}

-			int result = 0;

-			for (String value : values) {

-				result |= convertInt(value.trim());

-			}

-			return result;

-		}

-		return convertInt(str);

-	}

-

-	protected int convertInt(String str) {

-		if (str == null || str.equals("")) {

-			return 0;

-		}

-		try {

-			// Quick solution for numbers.			

-			return (Integer) toNumberConverter.convert(str);

-		} catch (Exception e) {

-			String normalizedStr = str.toUpperCase().trim();

-			if (normalizedStr.startsWith(GRIDDATA_PREFIX)) {

-				return convertGridDataInt(normalizedStr);

-			}

-				try {

-					int index = str.lastIndexOf('.');

-					if (str.indexOf('.') != -1) {

-						String className = str.substring(0, index);

-						if (className.startsWith("(") && className.endsWith("")) {

-							className = className.substring(1, className.length()-1);

-							Class<?> type = XWT.getLoadingContext().loadClass(className);

-							if (type != null) {

-								String memberName = str.substring(index+1);

-								Field field = type.getField(memberName);

-								if (Modifier.isStatic(field.getModifiers())) {

-									return field.getInt(null);

-								}

-							}

-						}

-						else {

-							IMetaclass metaclass = XWT.getMetaclass(className, IConstants.XWT_NAMESPACE);

-							if (metaclass != null) {

-								Class<?> type = metaclass.getType();

-								if (type != null) {

-									String memberName = str.substring(index+1);

-									Field field = type.getField(memberName);

-									if (Modifier.isStatic(field.getModifiers())) {

-										return field.getInt(null);

-									}

-								}							

-							}

-						}

-					}

-				} catch (SecurityException e1) {

-				} catch (IllegalArgumentException e1) {

-				} catch (NoSuchFieldException e1) {

-				} catch (IllegalAccessException e1) {

-				} catch (XWTException e1) {

-				}

-			return defaultConvertInt(str);

-		}

-	}

-	

-	protected int convertGridDataInt(String str) {

-		if ("GridData.BEGINNING".equalsIgnoreCase(str)) {

-			return GridData.BEGINNING;

-		} else if ("GridData.CENTER".equalsIgnoreCase(str)) {

-			return GridData.CENTER;

-		} else if ("GridData.END".equalsIgnoreCase(str)) {

-			return GridData.END;

-		} else if ("GridData.FILL".equalsIgnoreCase(str)) {

-			return GridData.FILL;

-		} else if ("GridData.FILL_BOTH".equalsIgnoreCase(str)) {

-			return GridData.FILL_BOTH;

-		} else if ("GridData.FILL_HORIZONTAL".equalsIgnoreCase(str)) {

-			return GridData.FILL_HORIZONTAL;

-		} else if ("GridData.GRAB_HORIZONTAL".equalsIgnoreCase(str)) {

-			return GridData.GRAB_HORIZONTAL;

-		} else if ("GridData.GRAB_VERTICAL".equalsIgnoreCase(str)) {

-			return GridData.GRAB_VERTICAL;

-		} else if ("GridData.HORIZONTAL_ALIGN_BEGINNING".equalsIgnoreCase(str)) {

-			return GridData.HORIZONTAL_ALIGN_BEGINNING;

-		} else if ("GridData.HORIZONTAL_ALIGN_CENTER".equalsIgnoreCase(str)) {

-			return GridData.HORIZONTAL_ALIGN_CENTER;

-		} else if ("GridData.HORIZONTAL_ALIGN_END".equalsIgnoreCase(str)) {

-			return GridData.HORIZONTAL_ALIGN_END;

-		} else if ("GridData.HORIZONTAL_ALIGN_FILL".equalsIgnoreCase(str)) {

-			return GridData.HORIZONTAL_ALIGN_FILL;

-		} else if ("GridData.VERTICAL_ALIGN_BEGINNING".equalsIgnoreCase(str)) {

-			return GridData.VERTICAL_ALIGN_BEGINNING;

-		} else if ("GridData.VERTICAL_ALIGN_CENTER".equalsIgnoreCase(str)) {

-			return GridData.VERTICAL_ALIGN_CENTER;

-		} else if ("GridData.VERTICAL_ALIGN_END".equalsIgnoreCase(str)) {

-			return GridData.VERTICAL_ALIGN_END;

-		} else if ("GridData.VERTICAL_ALIGN_FILL".equalsIgnoreCase(str)) {

-			return GridData.VERTICAL_ALIGN_FILL;

-		}

-		return 0;

-	}

-

-	protected int defaultConvertInt(String str) {

-		return XWTMaps.getValue(str);

-	}

-

-	public Object getFromType() {

-		return String.class;

-	}

-

-	public Object getToType() {

-		return Integer.class;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToKeySpline.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToKeySpline.java
deleted file mode 100644
index c63d590..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToKeySpline.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.xwt.animation.KeySpline;

-

-/**

- * String to Font converter

- * 

- * @author yyang

- */

-public class StringToKeySpline implements IConverter {

-	public static StringToKeySpline instance = new StringToKeySpline();

-

-	public Object convert(Object fromObject) {

-		return KeySpline.fromString((String) fromObject);

-	}

-

-	public Object getFromType() {

-		return String.class;

-	}

-

-	public Object getToType() {

-		return KeySpline.class;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToKeyTime.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToKeyTime.java
deleted file mode 100644
index bfc5cd0..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToKeyTime.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.xwt.animation.KeyTime;

-

-/**

- * String to Font converter

- * 

- * @author yyang

- */

-public class StringToKeyTime implements IConverter {

-	public static StringToKeyTime instance = new StringToKeyTime();

-

-	public Object convert(Object fromObject) {

-		return KeyTime.fromString((String) fromObject);

-	}

-

-	public Object getFromType() {

-		return String.class;

-	}

-

-	public Object getToType() {

-		return KeyTime.class;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToPoint.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToPoint.java
deleted file mode 100644
index 4532770..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToPoint.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.swt.graphics.Point;

-

-/**

- * String to Point converter

- * 

- * @author yyang

- */

-public class StringToPoint implements IConverter {

-	public static StringToPoint instance = new StringToPoint();

-

-	public Object convert(Object fromObject) {

-		int x = 0;

-		int y = 0;

-		if (fromObject != null) {

-			StringToIntArray convArray = new StringToIntArray();

-			int[] array = (int[]) convArray.convert(fromObject);

-			if (array.length == 2) {

-				x = array[0];

-				y = array[1];

-			}

-		}

-		return new Point(x, y);

-	}

-

-	public Object getFromType() {

-		return String.class;

-	}

-

-	public Object getToType() {

-		return Point.class;

-	}

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToRectangle.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToRectangle.java
deleted file mode 100644
index 7acb74c..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToRectangle.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.swt.graphics.Rectangle;

-

-/**

- * String to Rectangle converter

- * 

- * @author yyang

- */

-public class StringToRectangle implements IConverter {

-	public static StringToRectangle instance = new StringToRectangle();

-

-	public Object convert(Object fromObject) {

-		int x = 0;

-		int y = 0;

-		int width = 0;

-		int height = 0;

-		if (fromObject != null) {

-			StringToIntArray arrayConvertor = new StringToIntArray();

-			int[] array = (int[]) arrayConvertor.convert(fromObject);

-			if (array.length == 4) {

-				x = array[0];

-				y = array[1];

-				width = array[2];

-				height = array[3];

-			}

-		}

-		return new Rectangle(x, y, width, height);

-	}

-

-	public Object getFromType() {

-		return String.class;

-	}

-

-	public Object getToType() {

-		return Rectangle.class;

-	}

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToRepeatBehavior.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToRepeatBehavior.java
deleted file mode 100644
index 47c8f30..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToRepeatBehavior.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-

-package org.eclipse.xwt.converters;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.xwt.animation.RepeatBehavior;

-

-/**

- * Safely SWT context values, it used to avoid a NullPointerException when set text values to SWT Widgets.

- * 

- * @author jliu

- */

-public class StringToRepeatBehavior implements IConverter {

-	public static StringToRepeatBehavior instance = new StringToRepeatBehavior();

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)

-	 */

-	public Object convert(Object fromObject) {

-		return RepeatBehavior.parse(fromObject.toString());

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()

-	 */

-	public Object getFromType() {

-		return String.class;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()

-	 */

-	public Object getToType() {

-		return RepeatBehavior.class;

-	}

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToTimeSpan.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToTimeSpan.java
deleted file mode 100644
index 31d508a..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToTimeSpan.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-

-package org.eclipse.xwt.converters;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.xwt.animation.Duration;

-import org.eclipse.xwt.animation.TimeSpan;

-

-/**

- * Safely SWT context values, it used to avoid a NullPointerException when set text values to SWT Widgets.

- * 

- * @author jliu

- */

-public class StringToTimeSpan implements IConverter {

-	public static StringToTimeSpan instance = new StringToTimeSpan();

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)

-	 */

-	public Object convert(Object fromObject) {

-		return TimeSpan.parse(fromObject.toString());

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()

-	 */

-	public Object getFromType() {

-		return String.class;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()

-	 */

-	public Object getToType() {

-		return TimeSpan.class;

-	}

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToType.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToType.java
deleted file mode 100644
index a65dbbe..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToType.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.metadata.IMetaclass;

-

-/**

- * String to Type converter

- * 

- * @author yyang

- */

-public class StringToType implements IConverter {

-	public static StringToType instance = new StringToType();

-

-	public Object convert(Object fromObject) {

-		String str = (String) fromObject;

-		String typeName = str;

-		String namespace = IConstants.XWT_NAMESPACE;

-		int index = str.lastIndexOf(':');

-		if (index != -1) {

-			typeName = str.substring(index + 1);

-			namespace = str.substring(0, index);

-		}

-		IMetaclass metaclass = XWT.getMetaclass(typeName, namespace);

-		if (metaclass != null) {

-			return metaclass.getType();

-		}

-		return null;

-	}

-

-	public Object getFromType() {

-		return String.class;

-	}

-

-	public Object getToType() {

-		return Class.class;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToURL.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToURL.java
deleted file mode 100644
index 9fce72c..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToURL.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import java.net.MalformedURLException;

-import java.net.URL;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-

-/**

- * @author jliu (jin.liu@soyatec.com)

- */

-public class StringToURL implements IConverter {

-	public static StringToURL instance = new StringToURL();

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)

-	 */

-	public Object convert(Object fromObject) {

-		try {

-			return new URL(fromObject.toString());

-		} catch (MalformedURLException e) {

-			return null;

-		}

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()

-	 */

-	public Object getFromType() {

-		return String.class;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()

-	 */

-	public Object getToType() {

-		return URL.class;

-	}

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/converters/ValueConverterAdapter.java b/org.eclipse.xwt/src/org/eclipse/xwt/converters/ValueConverterAdapter.java
deleted file mode 100644
index 58b69fb..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/converters/ValueConverterAdapter.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.converters;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.xwt.IValueConverter;

-import org.eclipse.xwt.XWT;

-

-/**

- * The operation to inverse the converter direction.

- * 

- * @author yyang

- * 

- */

-public class ValueConverterAdapter implements IValueConverter {

-	private IConverter fromConvertor;

-	private IConverter toConvertor;

-	

-	public ValueConverterAdapter(IConverter fromConvertor, IConverter toConvertor) {

-		this.fromConvertor = fromConvertor;

-		this.toConvertor = toConvertor;

-	}

-

-	public Object convertBack(Object value) {

-		return toConvertor.convert(value);

-	}

-

-	public Object convert(Object fromObject) {

-		return fromConvertor.convert(fromObject);

-	}

-

-	public Object getFromType() {

-		return fromConvertor.getFromType();

-	}

-

-	public Object getToType() {

-		return toConvertor.getFromType();

-	}

-	

-	public static ValueConverterAdapter create(Class<?> sourceType, Class<?> targetType) {

-		IConverter fromConvertor = XWT.findConvertor(sourceType, targetType);

-		if (fromConvertor == null) {

-			return null;

-		}

-		IConverter toConvertor = XWT.findConvertor(targetType, sourceType);

-		if (toConvertor == null) {

-			return null;

-		}

-		return new ValueConverterAdapter(fromConvertor, toConvertor);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/core/AbstractEventGroup.java b/org.eclipse.xwt/src/org/eclipse/xwt/core/AbstractEventGroup.java
deleted file mode 100644
index 90ea5fd..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/core/AbstractEventGroup.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.core;

-

-import org.eclipse.xwt.IEventGroup;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public abstract class AbstractEventGroup implements IEventGroup {

-	protected String[] names; 

-	

-	public AbstractEventGroup(String ... names) {

-		this.names = names;

-	}

-	

-	public String[] getEventNames() {

-		return names;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/core/Condition.java b/org.eclipse.xwt/src/org/eclipse/xwt/core/Condition.java
deleted file mode 100644
index dd2d389..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/core/Condition.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.core;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.internal.utils.LoggerManager;

-import org.eclipse.xwt.metadata.IMetaclass;

-import org.eclipse.xwt.metadata.IProperty;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class Condition {

-	public static final Condition[] EMPTY_ARRAY = new Condition[0];

-

-	private IBinding binding;

-	private String property;

-	private Operator operator = Operator.EQ;

-

-	private String sourceName;

-	private Object value;

-	

-	private CacheData cacheData;

-	

-	static class CacheData {

-		protected Object value;

-		protected IProperty property;

-	}

-

-	public Operator getOperator() {

-		return operator;

-	}

-

-	public void setOperator(Operator operator) {

-		this.operator = operator;

-	}

-

-	public IBinding getBinding() {

-		return binding;

-	}

-

-	public void setBinding(IBinding binding) {

-		this.binding = binding;

-	}

-

-	public String getProperty() {

-		return property;

-	}

-

-	public void setProperty(String property) {

-		this.property = property;

-	}

-

-	public String getSourceName() {

-		return sourceName;

-	}

-

-	public void setSourceName(String sourceName) {

-		this.sourceName = sourceName;

-	}

-

-	public Object getValue() {

-		return value;

-	}

-

-	public void setValue(Object value) {

-		this.value = value;

-	}

-

-	public boolean evaluate(Object element) {

-		String propertyName = getProperty();

-		String sourceName = getSourceName();

-		IBinding binding = getBinding();

-		Object value = getValue();

-		if (value == null) {

-			return false;

-		}

-		while (value instanceof IObservableValue) {

-			value = ((IObservableValue) value).getValue();

-		}

-

-		Object dataObject = TriggerBase.getElementByName(element, sourceName);

-

-		if (propertyName != null) {

-			if (cacheData != null) {

-				try {

-					Object existingValue = cacheData.property.getValue(dataObject);

-					return Operator.compare(existingValue, operator, cacheData.value);

-				} catch (Exception e) {

-					LoggerManager.log(e);

-				}

-			}

-			cacheData = new CacheData();

-	

-			IMetaclass metaclass = XWT.getMetaclass(dataObject);

-			IProperty prop = metaclass.findProperty(propertyName);

-			if (prop != null && value != null) {

-				cacheData.property = prop;

-				Class<?> valueType = value.getClass();

-				IConverter converter = XWT.findConvertor(valueType, prop

-						.getType());

-				Object trueValue = value;

-				if (converter != null) {

-					trueValue = converter.convert(trueValue);

-				}

-				cacheData.value = trueValue;

-				try {

-					Object existingValue = prop.getValue(dataObject);

-					return Operator.compare(existingValue, operator, trueValue);

-				} catch (Exception e) {

-					LoggerManager.log(e);

-				}

-			}

-		} else if (binding != null) {

-			Object existingValue = binding.getValue(null);

-			if (existingValue == null) {

-				return false;

-			}

-			while (existingValue instanceof IObservableValue) {

-				existingValue = ((IObservableValue) existingValue).getValue();

-			}

-			Class<?> existingValueType = existingValue.getClass();

-			Class<?> valueType = value.getClass();

-			Object normalizedValue = value;

-			if (!existingValueType.isAssignableFrom(valueType) && !valueType.isAssignableFrom(existingValueType)) {

-				IConverter converter = XWT.findConvertor(valueType, existingValueType);

-				if (converter != null) {

-					normalizedValue = converter.convert(normalizedValue);

-				}

-				else if (value.toString().trim().length() > 0){

-					boolean found = false;

-					// in case where the value is a boolean

-					converter = XWT.findConvertor(valueType, Boolean.class);

-					if (converter != null) {

-						try {

-							Object booleanValue = converter.convert(value);

-							if (booleanValue != null) {

-								converter = XWT.findConvertor(existingValueType, Boolean.class);

-								if (converter != null) {

-									existingValue = converter.convert(existingValue);

-									normalizedValue = booleanValue;

-									found = true;

-								}

-							}

-						} catch (RuntimeException e) {

-						}

-					}

-					if (!found) {

-						converter = XWT.findConvertor(valueType, int.class);

-						if (converter != null) {

-							try {

-								Object booleanValue = converter.convert(value);

-								if (booleanValue != null) {

-									converter = XWT.findConvertor(existingValueType, int.class);

-									if (converter != null) {

-										existingValue = converter.convert(existingValue);

-										normalizedValue = booleanValue;

-										found = true;

-									}

-								}

-							} catch (Exception e) {

-							}

-						}						

-					}

-					if (!found) {

-						converter = XWT.findConvertor(valueType, double.class);

-						if (converter != null) {

-							try {

-								Object booleanValue = converter.convert(value);

-								if (booleanValue != null) {

-									converter = XWT.findConvertor(existingValueType, double.class);

-									if (converter != null) {

-										existingValue = converter.convert(existingValue);

-										normalizedValue = booleanValue;

-										found = true;

-									}

-								}

-							} catch (Exception e) {

-							}

-						}						

-					}

-					if (!found) {

-						converter = XWT.findConvertor(valueType, String.class);

-						if (converter != null) {

-							try {

-								Object booleanValue = converter.convert(value);

-								if (booleanValue != null) {

-									converter = XWT.findConvertor(existingValueType, String.class);

-									if (converter != null) {

-										existingValue = converter.convert(existingValue);

-										normalizedValue = booleanValue;

-										found = true;

-									}

-								}

-							} catch (Exception e) {

-							}

-						}						

-					}

-				}

-			}

-			return Operator.compare(existingValue, operator, normalizedValue);

-		}

-		return false;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/core/DataTrigger.java b/org.eclipse.xwt/src/org/eclipse/xwt/core/DataTrigger.java
deleted file mode 100644
index b1a822a..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/core/DataTrigger.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.core;

-

-import java.util.HashMap;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.core.databinding.observable.ChangeEvent;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.swt.widgets.Widget;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.internal.utils.UserData;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class DataTrigger extends TriggerBase {

-	private Object value;

-	private Operator operator = Operator.EQ;

-	private IBinding binding;

-	private SetterBase[] setters;

-	private ValueChangeListener changeListener;

-

-	public Operator getOperator() {

-		return operator;

-	}

-

-	public void setOperator(Operator operator) {

-		this.operator = operator;

-	}

-

-	public Object getValue() {

-		return value;

-	}

-	

-	public void setValue(Object value) {

-		this.value = value;

-	}

-

-	public IBinding getBinding() {

-		return binding;

-	}

-	

-	public void setBinding(IBinding binding) {

-		this.binding = binding;

-	}

-

-	public SetterBase[] getSetters() {

-		if (setters == null) {

-			return Setter.EMPTY_SETTERS;

-		}

-		return setters;

-	}

-

-	public void setSetters(SetterBase[] setters) {

-		this.setters = setters;

-	}	

-	

-	class ValueChangeListener extends AbstractChangeListener {

-		public ValueChangeListener(Object element) {

-			super(element);

-		}

-

-		public void handleChange(ChangeEvent event) {

-			doHandleChange(true);				

-		}

-

-		public void doHandleChange(boolean update) {

-			Widget widget = UserData.getWidget(element);

-			if (widget == null) {

-				return;

-			}

-			Object currentValue = binding.getValue(null);

-			if (currentValue == null) {

-				return;

-			}

-			while (currentValue instanceof IObservableValue) {

-				currentValue = ((IObservableValue) currentValue).getValue();

-			}

-

-			Class<?> currentValueType = currentValue.getClass();

-			Class<?> valueType = value.getClass();

-			Object normalizedValue = value;

-			if (!currentValueType.isAssignableFrom(valueType) && !valueType.isAssignableFrom(currentValueType)) {

-				IConverter converter = XWT.findConvertor(valueType, currentValueType);

-				if (converter != null) {

-					normalizedValue = converter.convert(normalizedValue);

-				}

-				else if (value != null && value.toString().trim().length() > 0){

-					boolean found = false;

-					// in case where the value is a boolean

-					converter = XWT.findConvertor(valueType, Boolean.class);

-					if (converter != null) {

-						try {

-							Object booleanValue = converter.convert(value);

-							if (booleanValue != null) {

-								converter = XWT.findConvertor(currentValueType, Boolean.class);

-								if (converter != null) {

-									currentValue = converter.convert(currentValue);

-									normalizedValue = booleanValue;

-									found = true;

-								}

-							}

-						} catch (RuntimeException e) {

-						}

-					}

-					if (!found) {

-						converter = XWT.findConvertor(valueType, Integer.class);

-						if (converter != null) {

-							try {

-								Object booleanValue = converter.convert(value);

-								if (booleanValue != null) {

-									converter = XWT.findConvertor(currentValueType, Integer.class);

-									if (converter != null) {

-										currentValue = converter.convert(currentValue);

-										normalizedValue = booleanValue;

-										found = true;

-									}

-								}

-							} catch (Exception e) {

-							}

-						}

-					}

-					if (!found) {

-						converter = XWT.findConvertor(valueType, Double.class);

-						if (converter != null) {

-							try {

-								Object booleanValue = converter.convert(value);

-								if (booleanValue != null) {

-									converter = XWT.findConvertor(currentValueType, Double.class);

-									if (converter != null) {

-										currentValue = converter.convert(currentValue);

-										normalizedValue = booleanValue;

-										found = true;

-									}

-								}

-							} catch (Exception e) {

-							}

-						}

-					}

-					if (!found) {

-						converter = XWT.findConvertor(valueType, String.class);

-						if (converter != null) {

-							try {

-								Object booleanValue = converter.convert(value);

-								if (booleanValue != null) {

-									converter = XWT.findConvertor(currentValueType, String.class);

-									if (converter != null) {

-										currentValue = converter.convert(currentValue);

-										normalizedValue = booleanValue;

-										found = true;

-									}

-								}

-							} catch (Exception e) {

-							}

-						}

-					}

-				}

-			}

-			if (!Operator.compare(currentValue, operator, normalizedValue) && update) {

-				restoreValues();

-				return;

-			}

-

-			for (SetterBase setter : getSetters()) {

-				try {

-					Object oldValue = setter.applyTo(element, update);

-					if (!update) {

-						if (oldvalues == null) {

-							oldvalues = new HashMap<SetterBase, Object>();

-						}

-						oldvalues.put(setter, oldValue);

-					}

-				} catch (RuntimeException e) {

-					continue;

-				}

-			}

-		}

-	}

-

-	public void prepare(Object target) {

-		if (value == null) {

-			return;

-		}

-		Widget widget = UserData.getWidget(target);

-		if (widget == null) {

-			return;

-		}		

-		Object bindingTarget = null;

-		if (binding != null) {

-			if (binding instanceof IDynamicBinding) {

-				IDynamicBinding dynamicBinding = (IDynamicBinding) binding;

-				bindingTarget = dynamicBinding.createBoundSource();

-			}

-			else {

-				bindingTarget = binding.getValue(null);

-			}			

-		}

-		else {

-			bindingTarget = XWT.getDataContext(widget);

-		}

-		if (!(bindingTarget instanceof IObservableValue)) {

-			return;

-		}

-		IObservableValue observableValue = (IObservableValue) bindingTarget;

-		changeListener = new ValueChangeListener(target);

-		observableValue.addChangeListener(changeListener);

-		changeListener.doHandleChange(false); // get default value

-	}

-

-	@Override

-	public void on(Object target) {

-		changeListener.doHandleChange(true);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/core/EventTrigger.java b/org.eclipse.xwt/src/org/eclipse/xwt/core/EventTrigger.java
deleted file mode 100644
index 8483082..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/core/EventTrigger.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.core;

-

-import java.lang.reflect.Method;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Listener;

-import org.eclipse.swt.widgets.Widget;

-import org.eclipse.xwt.IEventConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTMaps;

-import org.eclipse.xwt.annotation.Containment;

-import org.eclipse.xwt.internal.core.IEventController;

-import org.eclipse.xwt.internal.utils.LoggerManager;

-import org.eclipse.xwt.internal.utils.UserData;

-import org.eclipse.xwt.javabean.Controller;

-import org.eclipse.xwt.metadata.IEvent;

-import org.eclipse.xwt.metadata.IMetaclass;

-import org.eclipse.xwt.metadata.ModelUtils;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class EventTrigger extends TriggerBase {

-	private String sourceName;

-	private String routedEvent;

-	private TriggerAction[] actions = TriggerAction.EMPTY_ARRAY;

-

-	public String getSourceName() {

-		return sourceName;

-	}

-

-	public void setSourceName(String sourceName) {

-		this.sourceName = sourceName;

-	}

-

-	public String getRoutedEvent() {

-		return routedEvent;

-	}

-

-	public void setRoutedEvent(String routedEvent) {

-		this.routedEvent = routedEvent;

-	}

-

-	@Containment

-	public TriggerAction[] getActions() {

-		return actions;

-	}

-

-	public void setActions(TriggerAction[] actions) {

-		this.actions = actions;

-	}

-

-	@Override

-	public void prepare(Object target) {

-		String routedEvent = getRoutedEvent();

-		if (routedEvent != null) {

-			Object source = getElementByName(target, getSourceName());

-			IMetaclass metaclass = XWT.getMetaclass(source);

-			IEvent event = metaclass.findEvent(ModelUtils

-					.normalizeEventName(routedEvent));

-			if (event == null) {

-				if (routedEvent != null

-						&& !routedEvent.toLowerCase().endsWith(

-								IEventConstants.SUFFIX_KEY)) {

-					LoggerManager.log("Event " + routedEvent

-							+ " is not found in " + source.getClass().getName()

-							+ ". Please add a suffix \"Event\"!");

-				} else {

-					LoggerManager

-							.log("Event " + routedEvent + " is not found in "

-									+ source.getClass().getName());

-				}

-				return;

-			}

-

-			for (TriggerAction triggerAction : getActions()) {

-				triggerAction.initialize(target);

-			}

-

-			String name = event.getName();

-			if ("loadedevent".equalsIgnoreCase(name)) {

-				Widget widget = UserData.getWidget(source);

-				IEventController eventController = UserData

-						.updateEventController(source);

-				RunablePaintAction paintRunnable = createPaintRunnable(source);

-				try {

-					Method method = paintRunnable.getClass().getDeclaredMethod(

-							"run", Object.class, Event.class);

-					eventController.setEvent(event, widget, paintRunnable,

-							this, method);

-				} catch (Exception e) {

-					LoggerManager.log(e);

-				}

-			} else {

-				RunableAction runnable = createRunnable(source);

-				try {

-					runnable.setEventTrigger(event);

-				} catch (Exception e) {

-					LoggerManager.log(e);

-				}

-			}

-		}

-	}

-

-	public void on(Object target) {

-	}

-

-	protected RunableAction createRunnable(Object target) {

-		return new RunableAction(target);

-	}

-

-	protected RunablePaintAction createPaintRunnable(Object target) {

-		return new RunablePaintAction(target);

-	}

-

-	class RunablePaintAction {

-		protected Object target;

-

-		public RunablePaintAction(Object target) {

-			this.target = target;

-		}

-

-		public void run(Object object, Event event) {

-			for (TriggerAction triggerAction : EventTrigger.this.getActions()) {

-				triggerAction.run(event, target, null);

-			}

-		}

-	}

-

-	class RunableAction implements Listener, Runnable {

-		protected Object target;

-		private int count = 0;

-		boolean started = false;

-		boolean transition = false;

-		private Event event;

-		private int eventType;

-

-		public RunableAction(Object target) {

-			this.target = target;

-		}

-

-		public void run() {

-			count--;

-			if (count == 0 && !event.widget.isDisposed()) {

-				final Display display = event.widget.getDisplay();

-				display.syncExec(new Runnable() {

-					public void run() {

-						if (transition) {

-							for (TriggerAction triggerAction : getActions()) {

-								triggerAction.initialize(target);

-							}

-						} else {

-							for (TriggerAction triggerAction : getActions()) {

-								triggerAction.endFinalize(target);

-							}

-						}

-						display.removeFilter(eventType, RunableAction.this);

-						if (!event.widget.isDisposed()) {

-							event.widget.notifyListeners(eventType, event);

-							display.addFilter(eventType, RunableAction.this);

-						}

-						started = false;

-					}

-				});

-			}

-		}

-

-		protected void setEventTrigger(IEvent event) {

-			Widget widget = UserData.getWidget(target);

-			String name = event.getName();

-			this.eventType = Controller.getEventTypeByName(name);

-			if (this.eventType != SWT.None) {

-				widget.getDisplay().addFilter(this.eventType, this);

-				transition = (this.eventType == XWTMaps.getEvent("swt.move") || this.eventType == XWTMaps

-						.getEvent("swt.resize"));

-			}

-		}

-

-		public void handleEvent(Event event) {

-			Widget widget = UserData.getWidget(target);

-			if (event.widget != widget || widget.isDisposed()) {

-				return;

-			}

-			if (started) {

-				event.type = SWT.NONE;

-				return;

-			}

-

-			// execute the animation actions first and then normal events

-			count = EventTrigger.this.getActions().length;

-			started = true;

-			try {

-				this.event = Controller.copy(event);

-

-				if (!transition) {

-					for (TriggerAction triggerAction : getActions()) {

-						triggerAction.initialize(target);

-					}

-				}

-

-				for (TriggerAction triggerAction : EventTrigger.this

-						.getActions()) {

-					triggerAction.run(event, target, this);

-				}

-			} catch (Exception e) {

-				started = false;

-			}

-			event.type = SWT.NONE;

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/core/IBinding.java b/org.eclipse.xwt/src/org/eclipse/xwt/core/IBinding.java
deleted file mode 100644
index a28d416..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/core/IBinding.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.core;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public interface IBinding {

-	/**

-	 * The argument is used to determine the filtering. If type is null, no filtering

-	 * 

-	 * @return

-	 */

-	Object getValue(Class<?> type);

-	void reset();

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/core/ICollectionView.java b/org.eclipse.xwt/src/org/eclipse/xwt/core/ICollectionView.java
deleted file mode 100644
index 7ddd358..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/core/ICollectionView.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.core;

-

-import java.util.Collection;

-import java.util.Locale;

-

-import org.eclipse.xwt.collection.GroupDescription;

-import org.eclipse.xwt.collection.SortDescription;

-

-/**

- * The interface is implemented by the CollectionView class, which is the base class for Collection 

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public interface ICollectionView<T> {

-	

-	/**

-	 * Gets a value that indicates whether this view supports filtering via the Filter property.

-	 * 

-	 * @return

-	 */

-	boolean canFilter();

-

-	/**

-	 * Gets a value that indicates whether this view supports grouping via the GroupDescriptions property.

-	 * 

-	 * @return

-	 */

-	boolean canGroup();

-	

-	

-	/**

-	 * Gets a value that indicates whether this view supports sorting via the SortDescriptions property.

-	 * 

-	 * @return

-	 */

-	boolean canSort();

-	

-	/**

-	 * Gets the current item in the view.

-	 * 

-	 * @return

-	 */

-	T getCurrentItem();

-	

-	/**

-	 * Gets the ordinal position of the CurrentItem within the view.

-	 * 

-	 * @return

-	 */

-	int getCurrentPosition();

-	

-	

-	/**

-	 * Returns a value that indicates whether the resulting view is empty.

-	 * 

-	 * @return

-	 */

-	boolean isEmpty();

-	

-	/**

-	 * Source collection

-	 * 

-	 * @return

-	 */

-	Collection<T> getSourceCollection(); 

-

-	/**

-	 * Gets a collection of GroupDescription objects that describe how the items in the collection are grouped in the view.

-	 * 

-	 * @return

-	 */

-	GroupDescription[] getGroupDescription();

-	

-	/**

-	 * Gets a collection of SortDescription objects that describe how the items in the collection are sorted in the view.

-	 * 

-	 * @return

-	 */

-	SortDescription[] getSortDescription();

-	

-	/**

-	 * Gets the top-level groups.

-	 * 

-	 * @return

-	 */

-	Collection<T> getGroups();

-	

-	/**

-	 * Gets or sets the cultural info for any operations of the view that may differ by culture, such as sorting.

-	 * 

-	 * @return

-	 */

-	Locale getLocale();

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/core/IDynamicBinding.java b/org.eclipse.xwt/src/org/eclipse/xwt/core/IDynamicBinding.java
deleted file mode 100644
index b69f7f8..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/core/IDynamicBinding.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.core;

-

-import org.eclipse.xwt.databinding.IBindingContext;

-

-/**

- *

- * @author yyang (yves.yang@soyatec.com)

- */

-public interface IDynamicBinding extends IBinding {

-	Object createBoundSource();

-

-	void setControl(Object control);

-

-	Object getControl();

-

-	String getName();

-	void setHost(Object control);

-

-	Object getHost();

-

-

-	void setType(String type);

-

-	String getType();

-

-	boolean isSourceControl();

-

-	/**

-	 * Returns the {@link BindingContext} associated with this binding

-	 *

-	 * @return the {@link BindingContext}

-	 */

-	IBindingContext getBindingContext();

-

-	/**

-	 * Sets the {@link BindingContext} this binding is associated with

-	 *

-	 * @param dataBindingContext

-	 */

-	void setBindingContext(IBindingContext dataBindingContext);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/core/IDynamicValueBinding.java b/org.eclipse.xwt/src/org/eclipse/xwt/core/IDynamicValueBinding.java
deleted file mode 100644
index 628f10f..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/core/IDynamicValueBinding.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.core;

-

-import org.eclipse.xwt.metadata.IProperty;

-

-public interface IDynamicValueBinding extends IDynamicBinding {

-	public IProperty getProperty();

-	public void setProperty(IProperty property);

-	

-	public Object getObject();

-	public void setObject(Object object);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/core/IElementLoaderFactory.java b/org.eclipse.xwt/src/org/eclipse/xwt/core/IElementLoaderFactory.java
deleted file mode 100644
index 39a02cf..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/core/IElementLoaderFactory.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.core;

-

-import org.eclipse.xwt.IXWTLoader;

-

-public interface IElementLoaderFactory {

-	IVisualElementLoader createElementLoader(IRenderingContext context, IXWTLoader loader);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/core/IRenderingContext.java b/org.eclipse.xwt/src/org/eclipse/xwt/core/IRenderingContext.java
deleted file mode 100644
index 36e970a..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/core/IRenderingContext.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.core;

-

-import java.io.IOException;

-import java.io.InputStream;

-import java.net.URL;

-

-import org.eclipse.xwt.ILoadingContext;

-

-/**

- * @author yyang

- * @version 1.0

- */

-public interface IRenderingContext {

-	public String getNamespace();

-

-	public URL getResourcePath();

-

-	public InputStream openStream(String path) throws IOException;

-

-	public String getEncoding();

-

-	public Object getProperty(String name);

-

-	public void setProperty(String name, Object value);

-

-	public ILoadingContext getLoadingContext();

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/core/IUserDataConstants.java b/org.eclipse.xwt/src/org/eclipse/xwt/core/IUserDataConstants.java
deleted file mode 100644
index 7900688..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/core/IUserDataConstants.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.core;

-

-public interface IUserDataConstants {

-	public static String XWT_CONTROLLER_KEY = "Controller";

-	public static String XWT_RESOURCES_KEY = "Resources";

-	public static String XWT_STYLE_KEY = "Style";

-	public static String XWT_DRAWING_KEY = "Drawing";

-	public static String XWT_DATACONTEXT_KEY = "DataContext";

-	public static String XWT_BINDING_CONTEXT_KEY = "DefaultDataBindingContext";

-	public static String XWT_RENDER_TRANSFORM_KEY = "RenderTransform";

-	public static String XWT_RENDER_TRANSFORM_ORIGIN_KEY = "RenderTransformOrigin";

-	public static String XWT_TRIGGERS_KEY = "Triggers";

-	public static String XWT_NAME_KEY = "Name";

-	public static String XWT_PARENT_KEY = "Parent";

-	public static String XWT_VIEWER_KEY = "Viewer";

-	public static String XWT_NAMECONTEXT_KEY = "NameContext";

-	public static String XWT_COMMAND_KEY = "Command";

-	public static String XWT_CLR_KEY = "clr";

-

-	public static String XWT_USER_DATA_KEY = "__XWT.UserData";

-	

-	public static String XWT_PROPERTY_DATA_KEY = "_XWT.TableViewerColumnDisplayPath";

-	public static String XWT_PROPERTY_ITEM_TEXT_KEY = "_XWT.TableViewerColumnItemText";

-	public static String XWT_PROPERTY_ITEM_IMAGE_KEY = "_XWT.TableViewerColumnItemImage";

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/core/IVisualElementLoader.java b/org.eclipse.xwt/src/org/eclipse/xwt/core/IVisualElementLoader.java
deleted file mode 100644
index 178b3d5..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/core/IVisualElementLoader.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.core;

-

-import java.util.Map;

-

-import org.eclipse.xwt.internal.xml.Element;

-

-public interface IVisualElementLoader {

-	public Object createUIElement(Element element, Map<String, Object> options);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/core/MultiDataTrigger.java b/org.eclipse.xwt/src/org/eclipse/xwt/core/MultiDataTrigger.java
deleted file mode 100644
index 86314cf..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/core/MultiDataTrigger.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.core;

-

-import java.util.HashMap;

-

-import org.eclipse.core.databinding.observable.ChangeEvent;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.swt.widgets.Widget;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.internal.utils.UserData;

-

-public class MultiDataTrigger extends TriggerBase {

-	private Condition[] conditions = Condition.EMPTY_ARRAY;

-	private Setter[] setters;

-	private ValueChangeListener changeListener;

-

-	public Condition[] getConditions() {

-		return conditions;

-	}

-

-	public void setConditions(Condition[] conditions) {

-		this.conditions = conditions;

-	}

-

-	public Setter[] getSetters() {

-		return setters;

-	}

-

-	public void setSetters(Setter[] setters) {

-		this.setters = setters;

-	}

-

-	class ValueChangeListener extends AbstractChangeListener {

-		public ValueChangeListener(Object element) {

-			super(element);

-		}

-

-		public void handleChange(ChangeEvent event) {

-			doHandleChange(true);

-		}

-

-		public void doHandleChange(boolean update) {

-			for (Condition condition : getConditions()) {

-				if (!condition.evaluate(element)) {

-					restoreValues();

-					return;

-				}

-			}

-

-			for (SetterBase setter : getSetters()) {

-				try {

-					Object oldValue = setter.applyTo(element, update);

-					if (oldvalues == null) {

-						oldvalues = new HashMap<SetterBase, Object>();

-					}

-					oldvalues.put(setter, oldValue);

-				} catch (RuntimeException e) {

-					continue;

-				}

-			}

-		}

-	}

-

-	@Override

-	public void prepare(Object target) {

-		if (getConditions().length == 0) {

-			return;

-		}

-		Widget widget = UserData.getWidget(target);

-		if (widget == null) {

-			return;

-		}

-

-		changeListener = new ValueChangeListener(target);

-		for (Condition condition : getConditions()) {

-			String sourceName = condition.getSourceName();

-

-			IBinding binding = condition.getBinding();

-			Object bindingTarget = null;

-			if (binding != null) {

-				if (binding instanceof IDynamicBinding) {

-					IDynamicBinding dynamicBinding = (IDynamicBinding) binding;

-					bindingTarget = dynamicBinding.createBoundSource();

-				} else {

-					bindingTarget = binding.getValue(null);

-				}

-			} else {

-				Object sourceObject = getElementByName(target, sourceName);

-				Widget sourceWidget = UserData.getWidget(sourceObject);

-				bindingTarget = XWT.getDataContext(sourceWidget);

-			}

-

-			if (!(bindingTarget instanceof IObservableValue)) {

-				return;

-			}

-			IObservableValue observableValue = (IObservableValue) bindingTarget;

-			observableValue.addChangeListener(changeListener);

-		}

-		changeListener.doHandleChange(false);

-	}

-

-	public void on(Object target) {

-		changeListener.doHandleChange(true);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/core/MultiTrigger.java b/org.eclipse.xwt/src/org/eclipse/xwt/core/MultiTrigger.java
deleted file mode 100644
index 5df72ee..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/core/MultiTrigger.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.core;

-

-import java.util.HashMap;

-

-import org.eclipse.core.databinding.observable.ChangeEvent;

-import org.eclipse.core.databinding.observable.IObservable;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.internal.core.ScopeManager;

-import org.eclipse.xwt.internal.core.UpdateSourceTrigger;

-

-public class MultiTrigger extends TriggerBase {

-	private Condition[] conditions = Condition.EMPTY_ARRAY;

-	private SetterBase[] setters;

-

-	public Condition[] getConditions() {

-		return conditions;

-	}

-

-	public void setConditions(Condition[] conditions) {

-		this.conditions = conditions;

-	}

-

-	public SetterBase[] getSetters() {

-		return setters;

-	}

-

-	public void setSetters(SetterBase[] setters) {

-		this.setters = setters;

-	}

-

-	class ValueChangeListener extends AbstractChangeListener {

-		public ValueChangeListener(Object element) {

-			super(element);

-		}

-

-		public void handleChange(ChangeEvent event) {

-			for (Condition condition : getConditions()) {

-				if (!condition.evaluate(element)) {

-					restoreValues();

-					return;

-				}

-			}

-

-			if (oldvalues != null && !oldvalues.isEmpty()) {

-				return;

-			}

-

-			for (SetterBase setter : getSetters()) {

-				try {

-					Object oldValue = setter.applyTo(element, true);

-					if (oldvalues == null) {

-						oldvalues = new HashMap<SetterBase, Object>();

-					}

-					oldvalues.put(setter, oldValue);

-				} catch (RuntimeException e) {

-					continue;

-				}

-			}

-		}

-	}

-	

-	@Override

-	public void on(Object target) {

-	}

-

-	@Override

-	public void prepare(Object target) {

-		if (getConditions().length == 0) {

-			return;

-		}

-		ValueChangeListener changeListener = new ValueChangeListener(target);

-		for (Condition condition : getConditions()) {

-			String propertyName = condition.getProperty();

-			String sourceName = condition.getSourceName();

-

-			Object source = getElementByName(target, sourceName);

-			if (source == null) {

-				throw new XWTException("No element is found with the name = "

-						+ sourceName);

-			}

-			IObservable observableValue = ScopeManager.observeValue(source,

-					source, propertyName, UpdateSourceTrigger.PropertyChanged);

-			observableValue.addChangeListener(changeListener);

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/core/Operator.java b/org.eclipse.xwt/src/org/eclipse/xwt/core/Operator.java
deleted file mode 100644
index 0e0b4e6..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/core/Operator.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.core;

-

-import java.math.BigDecimal;

-import java.util.regex.Matcher;

-import java.util.regex.Pattern;

-

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.utils.OperatorExceptionMessage;

-

-public enum Operator {

-	EQ, NE, GT, LT, GE, LE, LIKE, IS_A, IS_KIND_OF;

-	

-	/**

-	 * The utility helper method, to implement the compare between two objects

-	 * 

-	 * @param operant1

-	 * @param operator

-	 * @param operant2

-	 * @return

-	 * @throws XWTException

-	 */

-	public static boolean compare(Object operant1, Operator operator,

-			Object operant2) throws XWTException {

-		boolean result = false;

-

-		switch (operator) {

-		case EQ:

-			result = objectCompare(operant1, operant2);

-			break;

-

-		case NE:

-			if (!objectCompare(operant1, operant2))

-				result = true;

-			break;

-

-		case GT:

-			if (numberCompare(operant1, operant2) == 1)

-				return true;

-			break;

-

-		case LT:

-			if (numberCompare(operant1, operant2) == -1) {

-				result = true;

-			}

-			break;

-

-		case GE:

-			if (numberCompare(operant1, operant2) == 1

-					|| numberCompare(operant1, operant2) == 0) {

-				result = true;

-			}

-			break;

-

-		case LE:

-			if (numberCompare(operant1, operant2) == -1

-					|| numberCompare(operant1, operant2) == 0) {

-				result = true;

-			}

-			break;

-

-		case LIKE:

-			return LikeCompare(operant1, operant2);

-

-		case IS_A:

-			if(operant2 instanceof Class<?>){

-				return ISACompare(operant1,(Class<?>) operant2);

-			}else{

-				throw new XWTException(OperatorExceptionMessage.TYPE_WRONG);

-			}

-

-		case IS_KIND_OF:

-			return isKindOfCompare(operant1, operant2);

-		}

-		return result;

-	}

-

-	private static boolean isKindOfCompare(Object operant1, Object operant2) {

-		return operant2.getClass().isInstance(operant1);

-	}

-

-	/**

-	 * @param operant1

-	 * @param operant2

-	 * @return

-	 * @throws XWTException

-	 */

-	private static int numberCompare(Object operant1, Object operant2)

-			throws XWTException {

-		if (operant1 == null || operant2 == null) {

-			throw new XWTException(OperatorExceptionMessage.OPRERANR_NULL);

-		}

-		Double longoperant1 = convertToDouble(operant1);

-		Double longoperant2 = convertToDouble(operant2);

-		return DoubleCompare(longoperant1, longoperant2);

-	}

-

-	/**

-	 * convert the type of operant to the Double

-	 * 

-	 * @param operant

-	 * @return

-	 * @throws XWTException

-	 */

-	private static Double convertToDouble(Object operant) throws XWTException {

-		if (operant instanceof Double) {

-			return (Double) operant;

-		}

-		if(operant instanceof Float){

-			Float floatvalue = (Float) operant;

-			return Double.parseDouble(String.valueOf(floatvalue));

-		}

-		if (operant instanceof Integer) {

-			Integer integer = (Integer) operant;

-			return Double.parseDouble(String.valueOf(integer));

-		}

-		if (operant instanceof Character) {

-			Character character = (Character) operant;

-			if (Character.isDigit(character)) {

-				int numericValue = Character.getNumericValue(character);

-				return Double.parseDouble(String.valueOf(numericValue));

-			}

-		}

-		if (operant instanceof Short) {

-			Short shortvalue = (Short) operant;

-			return Double.parseDouble(String.valueOf(shortvalue));

-		}

-		if (operant instanceof Byte) {

-			Byte bytevalue = (Byte) operant;

-			return Double.parseDouble(String.valueOf(bytevalue));

-		}

-		if (operant instanceof Long) {

-			Long floatvalue = (Long) operant;

-			return Double.parseDouble(String.valueOf(floatvalue));

-		}

-		if (operant instanceof BigDecimal) {

-			BigDecimal bigdecimalvalue = (BigDecimal) operant;

-			return Double.parseDouble(String.valueOf(bigdecimalvalue));

-		} else

-			throw new XWTException(OperatorExceptionMessage.TYPE_WRONG);

-	}

-

-	/**

-	 * the compare of two object for NE,EQ

-	 * 

-	 * @param operant1

-	 * @param operant2

-	 * @return

-	 */

-	private static boolean objectCompare(Object operant1, Object operant2) {

-		if (operant1 == operant2) {

-			return true;			

-		}

-		if (operant1 != null) {

-			return operant1.equals(operant2);

-		}

-		else if (operant1 != null) {

-			return operant2.equals(operant1);

-		}

-		return false;

-	}

-

-	/**

-	 * the compare of two object for ISA

-	 * 

-	 * @param operant1

-	 * @param operant2

-	 * @return

-	 * @throws XWTException

-	 */

-	private static boolean ISACompare(Object operant1, Class<?> clazz) {

-		return clazz.isInstance(operant1);

-	}

-

-	/**

-	 * the compare of two Double

-	 * 

-	 * @param operant1

-	 * @param operant2

-	 * @return

-	 */

-	private static int DoubleCompare(Double operant1, Double operant2) {

-		return (operant1.compareTo(operant2) < 0 ? -1 : (operant1

-				.compareTo(operant2) == 0 ? 0 : 1));

-	}

-

-	/**

-	 * the compare of two String for Like

-	 * 

-	 * @param operant1

-	 * @param operant2

-	 * @return

-	 * @throws XWTException

-	 */

-	private static boolean LikeCompare(Object operant1, Object operant2)

-			throws XWTException {

-		if (operant1 == null || operant2 == null) {

-			throw new XWTException(OperatorExceptionMessage.OPRERANR_NULL);

-		}

-		if (operant1 instanceof String && operant2 instanceof String) {

-			String operant1String = (String) operant1;

-			String operant2String = (String) operant2;

-			String queryString = parseRegularExpressionString(operant1String);

-			Pattern pattern = Pattern.compile(queryString);

-			Matcher matcher = pattern.matcher(operant2String);

-			return matcher.find();

-		}

-		throw new XWTException(OperatorExceptionMessage.TYPE_WRONG);

-	}

-

-	/**

-	 * build the regular expressions

-	 * 

-	 * @param queryString

-	 * @return

-	 */

-	public static String parseRegularExpressionString(String queryString) {

-		String result = queryString;

-		result = result.replace("?", ".");

-		result = result.replace("*", ".*");

-		return result;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/core/RadioEventGroup.java b/org.eclipse.xwt/src/org/eclipse/xwt/core/RadioEventGroup.java
deleted file mode 100644
index 5aaee63..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/core/RadioEventGroup.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.core;

-

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.xwt.IEventConstants;

-import org.eclipse.xwt.IObservableValueListener;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.internal.core.IEventController;

-import org.eclipse.xwt.internal.utils.LoggerManager;

-import org.eclipse.xwt.internal.utils.UserData;

-import org.eclipse.xwt.javabean.metadata.properties.EventProperty;

-import org.eclipse.xwt.metadata.IEvent;

-import org.eclipse.xwt.metadata.IMetaclass;

-import org.eclipse.xwt.metadata.IProperty;

-

-public class RadioEventGroup extends AbstractEventGroup {

-

-	public RadioEventGroup(String... names) {

-		super(names);

-	}

-

-	public void fireEvent(IObservableValueListener manager, IProperty property) {

-		Object host = manager.getHost();

-		IMetaclass metaclass = XWT.getMetaclass(host); 

-

-		EventProperty reaisedEventProperty = (EventProperty) property;

-		String raisedName = reaisedEventProperty.getEvent().getName();

-		for (String name : getEventNames()) {

-			if (name.equalsIgnoreCase(raisedName)) {

-				continue;

-			}

-			String eventPropertyName = IEventConstants.getEventPropertyName(name);

-			IProperty eventProperty = metaclass.findProperty(eventPropertyName);

-

-			IObservableValue value = manager.getValue(eventProperty);

-			if (value != null) {

-				value.setValue(false);

-			}

-		}

-	}

-

-	public void registerEvent(IObservableValueListener manager,

-			IProperty property) {

-		Object host = manager.getHost();

-		IEventController controller = UserData.findEventController(host);

-		if (controller == null) {

-			controller = UserData.updateEventController(host);

-		}

-		IMetaclass metaclass = XWT.getMetaclass(host); 

-

-		EventProperty reaisedEventProperty = (EventProperty) property;

-		String raisedName = reaisedEventProperty.getEvent().getName();

-		for (String name : getEventNames()) {

-			if (name.equalsIgnoreCase(raisedName)) {

-				continue;

-			}

-			String eventPropertyName = IEventConstants.getEventPropertyName(name);

-			String eventName = IEventConstants.getEventName(name);

-			IEvent event = metaclass.findEvent(eventName);

-			IProperty eventProperty = metaclass.findProperty(eventPropertyName);

-			

-			try {

-				controller.setEvent(event, UserData.getWidget(host), manager, eventProperty, IObservableValueListener.class.getDeclaredMethod("changeValueHandle", Object.class, org.eclipse.swt.widgets.Event.class));

-			} catch (Exception e) {

-				LoggerManager.log(e);

-				return;

-			}

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/core/Setter.java b/org.eclipse.xwt/src/org/eclipse/xwt/core/Setter.java
deleted file mode 100644
index d29bd24..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/core/Setter.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.core;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.metadata.IMetaclass;

-import org.eclipse.xwt.metadata.IProperty;

-

-

-/**

- * Setter of the class Style, which is used to define the in-line XAML style

- * 

- * @see Style

- * @author yyang

- */

-public class Setter extends SetterBase {

-	protected String property;

-	protected Object value;

-	protected String targetName;

-

-	public String getTargetName() {

-		return targetName;

-	}

-

-	public void setTargetName(String targetName) {

-		this.targetName = targetName;

-	}

-

-	public String getProperty() {

-		return property;

-	}

-

-	public void setProperty(String property) {

-		this.property = property;

-	}

-

-	public Object getValue() {

-		return value;

-	}

-

-	public void setValue(Object value) {

-		this.value = value;

-	}

-

-	public Object applyTo(Object element, boolean update) {

-		String propName = getProperty();

-		Object propValue = getValue();

-		String targetName = getTargetName();

-		Object setterTarget = element;

-		Object oldValue = null;

-		if (targetName != null) {

-			setterTarget = TriggerBase.getElementByName(element, targetName);

-		}

-		IMetaclass metaclass = XWT.getMetaclass(setterTarget);

-		IProperty prop = metaclass.findProperty(propName);

-		if (prop != null && propValue != null) {

-			Object toValue = propValue;

-			Class<?> valueType = propValue.getClass();

-			Class<?> targetType = prop.getType();

-			if (targetType != null && !targetType.isAssignableFrom(valueType)) {

-				IConverter converter = XWT.findConvertor(valueType, targetType);

-				if (converter != null) {

-					toValue = converter.convert(propValue);					

-				}

-				else {

-					throw new XWTException("Converter doesn't exist from \"" + valueType.getName() + "\" to \"" + targetType.getName());

-				}

-			}

-			try {

-				oldValue = prop.getValue(setterTarget);

-				if (update) {

-					prop.setValue(setterTarget, toValue);

-				}

-			} catch (Exception e) {

-				throw new RuntimeException(e);

-			}

-		}

-		return oldValue;

-	}

-

-	public void undo(Object element, Object value) {

-		String propName = getProperty();

-		String targetName = getTargetName();

-		Object setterTarget = element;

-		if (targetName != null) {

-			setterTarget = TriggerBase.getElementByName(element, targetName);

-		}

-		IMetaclass metaclass = XWT.getMetaclass(setterTarget);

-		IProperty prop = metaclass.findProperty(propName);

-		if (prop != null) {

-			try {

-				prop.setValue(setterTarget, value);

-			} catch (Exception e) {

-				throw new RuntimeException(e);

-			}

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/core/SetterBase.java b/org.eclipse.xwt/src/org/eclipse/xwt/core/SetterBase.java
deleted file mode 100644
index c22a2f2..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/core/SetterBase.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.core;

-

-public abstract class SetterBase {

-	public static final SetterBase[] EMPTY_SETTERS = new SetterBase[0];

-

-	public abstract Object applyTo(Object element, boolean update);

-	public abstract void undo(Object element, Object value);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/core/Style.java b/org.eclipse.xwt/src/org/eclipse/xwt/core/Style.java
deleted file mode 100644
index 7280132..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/core/Style.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.core;

-

-/**

- * The class defines the in-line XAML style

- * 

- * @author yyang

- */

-public class Style {

-	protected Class<?> targetType;

-	protected SetterBase[] setters;

-	protected TriggerBase[] triggers;

-

-	public TriggerBase[] getTriggers() {

-		if (triggers == null) {

-			return TriggerBase.EMPTY_ARRAY;

-		}

-		return triggers;

-	}

-

-	public void setTriggers(TriggerBase[] triggers) {

-		this.triggers = triggers;

-	}

-

-	public Class<?> getTargetType() {

-		return targetType;

-	}

-

-	public void setTargetType(Class<?> targetType) {

-		this.targetType = targetType;

-	}

-

-	public SetterBase[] getSetters() {

-		if (setters == null) {

-			return SetterBase.EMPTY_SETTERS;

-		}

-		return setters;

-	}

-

-	public void setSetters(SetterBase[] setters) {

-		this.setters = setters;

-	}

-

-	public void apply(Object target) {

-		for (SetterBase setter : getSetters()) {

-			setter.applyTo(target, true);

-		}

-		

-		for (TriggerBase triggerBase : getTriggers()) {

-			triggerBase.prepare(target);

-		}

-		

-		for (TriggerBase triggerBase : getTriggers()) {

-			triggerBase.on(target);				

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/core/Trigger.java b/org.eclipse.xwt/src/org/eclipse/xwt/core/Trigger.java
deleted file mode 100644
index 2db0d8b..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/core/Trigger.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.core;

-

-import java.util.HashMap;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.core.databinding.observable.ChangeEvent;

-import org.eclipse.core.databinding.observable.IObservable;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.swt.widgets.Widget;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.databinding.JFaceXWTDataBinding;

-import org.eclipse.xwt.internal.core.ScopeManager;

-import org.eclipse.xwt.internal.core.UpdateSourceTrigger;

-import org.eclipse.xwt.internal.utils.LoggerManager;

-import org.eclipse.xwt.internal.utils.UserData;

-

-public class Trigger extends TriggerBase {

-	private String property;

-	private String sourceName;

-	private Operator operator = Operator.EQ;

-	private Object value;

-	private SetterBase[] setters;

-	

-	public Operator getOperator() {

-		return operator;

-	}

-

-	public void setOperator(Operator operator) {

-		this.operator = operator;

-	}

-

-	public String getProperty() {

-		return property;

-	}

-

-	public void setProperty(String property) {

-		this.property = property;

-	}

-

-	public String getSourceName() {

-		return sourceName;

-	}

-

-	public void setSourceName(String sourceName) {

-		this.sourceName = sourceName;

-	}

-

-	public Object getValue() {

-		return value;

-	}

-

-	public void setValue(Object value) {

-		this.value = value;

-	}

-

-	public SetterBase[] getSetters() {

-		if (setters == null) {

-			return SetterBase.EMPTY_SETTERS;

-		}

-		return setters;

-	}

-

-	public void setSetters(SetterBase[] setters) {

-		this.setters = setters;

-	}

-

-	public void on(Object target) {

-	}

-

-	public void prepare(Object target) {

-		if (property != null) {

-			final Object source = getElementByName(target, sourceName);

-			if (source == null) {

-				throw new XWTException("No element is found with the name = " + sourceName);

-			}

-			IObservable observableValue = ScopeManager.observeValue(source, source, property, UpdateSourceTrigger.PropertyChanged);

-			observableValue.addChangeListener(new AbstractChangeListener(target) {

-				public void handleChange(ChangeEvent event) {

-					Class<?> valueType = JFaceXWTDataBinding.getValueType(source.getClass(), property);

-					if (valueType == null) {

-						LoggerManager.log("Type of the property " + property + " is not found in " + source

-								.getClass().getName());

-						return;

-					}

-					Widget widget = UserData.getWidget(source);

-					if (widget == null) {

-						return;

-					}

-					

-					//

-					// test value ==

-					//

-					Object realValue = value;

-					if (value != null) {

-						IConverter converter = XWT.findConvertor(value.getClass(), valueType);

-						if (converter != null) {

-							realValue = converter.convert(value);						

-						}

-					}

-					Object newValue = event.getSource();

-					if (newValue instanceof IObservableValue) {

-						IObservableValue observableValue = (IObservableValue) newValue;

-						newValue = observableValue.getValue();

-					}

-					if (newValue != null) {

-						IConverter newConverter = XWT.findConvertor(newValue.getClass(), valueType);

-						if (newConverter != null) {

-							newValue = newConverter.convert(newValue);						

-						}

-					}

-

-					if (!Operator.compare(newValue, operator, realValue)) {

-						restoreValues();

-						if (oldvalues != null) {

-							oldvalues.clear();

-						}

-						return;

-					}

-					

-					if (oldvalues != null && !oldvalues.isEmpty()) {

-						return;

-					}

-

-					for (SetterBase setter : getSetters()) {

-						try {

-							Object oldValue = setter.applyTo(element, true);

-							if (oldvalues == null) {

-								oldvalues = new HashMap<SetterBase, Object>();

-							}

-							oldvalues.put(setter, oldValue);

-						} catch (RuntimeException e) {

-							continue;

-						}

-					}

-				}

-			});

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/core/TriggerAction.java b/org.eclipse.xwt/src/org/eclipse/xwt/core/TriggerAction.java
deleted file mode 100644
index 83cd8ad..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/core/TriggerAction.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.core;

-

-import org.eclipse.swt.widgets.Event;

-

-public abstract class TriggerAction {

-	public static final TriggerAction[] EMPTY_ARRAY = new TriggerAction[0];

-	

-	public abstract void run(Event event, Object target, Runnable stateChangedRunnable);

-	

-	public abstract void initialize(Object target);

-	

-	public abstract void endFinalize(Object target);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/core/TriggerBase.java b/org.eclipse.xwt/src/org/eclipse/xwt/core/TriggerBase.java
deleted file mode 100644
index b2366ae..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/core/TriggerBase.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.core;

-

-import java.util.HashMap;

-

-import org.eclipse.core.databinding.observable.IChangeListener;

-import org.eclipse.swt.widgets.Widget;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.internal.utils.LoggerManager;

-import org.eclipse.xwt.internal.utils.UserData;

-

-public abstract class TriggerBase {

-	public final static TriggerBase[] EMPTY_ARRAY = new TriggerBase[0];

-	protected TriggerAction[] entryActions;

-	protected TriggerAction[] exitActions;

-

-	public TriggerAction[] getEntryActions() {

-		if (entryActions == null) {

-			return TriggerAction.EMPTY_ARRAY;

-		}

-		return entryActions;

-	}

-

-	public void setEntryActions(TriggerAction[] entryActions) {

-		this.entryActions = entryActions;

-	}

-

-	public TriggerAction[] getExitActions() {

-		if (exitActions == null) {

-			return TriggerAction.EMPTY_ARRAY;

-		}

-		return exitActions;

-	}

-

-	public void setExitActions(TriggerAction[] exitActions) {

-		this.exitActions = exitActions;

-	}

-	

-	public abstract void on(Object target);

-	public abstract void prepare(Object target);

-	

-	abstract class AbstractChangeListener implements IChangeListener {

-		protected HashMap<SetterBase, Object> oldvalues = null;

-		protected Object element;

-

-		public AbstractChangeListener(Object element) {

-			this.element = element;

-		}

-		

-		protected void restoreValues() {

-			if (oldvalues == null) {

-				return;

-			}

-			for (SetterBase setter : oldvalues.keySet()) {

-				setter.undo(element, oldvalues.get(setter));

-			}

-		}

-	}

-	

-	public static Object getElementByName(Object target, String elementName) {

-		if (elementName != null && elementName.length() > 0) {

-			Widget widget = UserData.getWidget(target);

-			if (widget != null) {

-				Object element = XWT.findElementByName(widget, elementName);

-				if (element != null) {

-					return element;

-				}

-				LoggerManager.log("EventTrigger: Source \n" + elementName + "\n is not found in " + target.getClass().getName());

-			}

-		}

-		return target;

-	}

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/core/ValidationStatus.java b/org.eclipse.xwt/src/org/eclipse/xwt/core/ValidationStatus.java
deleted file mode 100644
index 1587777..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/core/ValidationStatus.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2015 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.core;

-

-/**

- * @author Nguyen Viet Hoa from Soyatec

- * 

- */

-public class ValidationStatus {

-

-	/** reference to the parent Binding. */

-	private Object parent;

-

-	public Object getParent() {

-		return parent;

-	}

-

-	public void setParent(Object parent) {

-		this.parent = parent;

-	}

-

-	/**

-	 * The direct widget that contains the validation status

-	 */

-	private Object control;

-

-	/**

-	 * The name of the binding whose binding context's status will be the source

-	 * data of the validationstatus's binding

-	 */

-	private String sourceName;

-

-	public Object getControl() {

-		return control;

-	}

-

-	public void setControl(Object control) {

-		this.control = control;

-	}

-

-	public String getSourceName() {

-		return sourceName;

-	}

-

-	public void setSourceName(String sourceName) {

-		this.sourceName = sourceName;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/AbstractDataBinding.java b/org.eclipse.xwt/src/org/eclipse/xwt/databinding/AbstractDataBinding.java
deleted file mode 100644
index 6768a13..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/AbstractDataBinding.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.databinding;

-

-import org.eclipse.core.databinding.observable.IObservable;

-import org.eclipse.xwt.IDataBinding;

-import org.eclipse.xwt.IDataProvider;

-import org.eclipse.xwt.IValidationRule;

-import org.eclipse.xwt.IValueConverter;

-import org.eclipse.xwt.internal.core.Binding;

-import org.eclipse.xwt.internal.core.BindingExpressionPath;

-import org.eclipse.xwt.internal.core.UpdateSourceTrigger;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public abstract class AbstractDataBinding implements IDataBinding {

-	private IDataProvider dataProvider;

-

-	private Binding binding;

-

-	private BindingExpressionPath targetPropertySegments;

-

-	public BindingExpressionPath getSourcePropertyExpression() {

-		return binding.getPathPropertySegments();

-	}

-

-	public BindingExpressionPath getTargetPropertyExpression() {

-		return targetPropertySegments;

-	}

-

-	public AbstractDataBinding(Binding binding, IDataProvider dataProvider) {

-		this.binding = binding;

-		this.dataProvider = dataProvider;

-

-		targetPropertySegments = new BindingExpressionPath(getTargetProperty());

-	}

-

-	/**

-	 * @return the dataProvider

-	 */

-	public IDataProvider getDataProvider() {

-		return dataProvider;

-	}

-

-	/**

-	 * @param dataProvider

-	 *            the dataProvider to set

-	 */

-	public void setDataProvider(IDataProvider dataProvider) {

-		this.dataProvider = dataProvider;

-	}

-

-	/**

-	 *

-	 */

-	public BindingMode getBindingMode() {

-		return binding.getMode();

-	}

-

-	/**

-	 * Returns the name of the data binding context this binding is associated

-	 * with

-	 * 

-	 * @return

-	 */

-	protected IBindingContext getDataBindingContext() {

-		return binding.getBindingContext();

-	}

-

-	/**

-	 *

-	 */

-	public IValueConverter getConverter() {

-		return binding.getConverter();

-	}

-

-	/**

-	 * @return the target

-	 */

-	public Object getControl() {

-		return binding.getControl();

-	}

-

-	/**

-	 * @return the target

-	 */

-	public Object getHost() {

-		return binding.getHost();

-	}

-

-	/**

-	 * 

-	 * @return

-	 */

-	public BindingMode getMode() {

-		return binding.getMode();

-	}

-

-	/**

-	 * 

-	 * @param mode

-	 */

-	public void setMode(BindingMode mode) {

-		binding.setMode(mode);

-	}

-

-	/**

-	 * 

-	 * @return

-	 */

-	protected String getSourceProperty() {

-		return binding.getPath();

-	}

-

-	/**

-	 * 

-	 * @return

-	 */

-	protected String getTargetProperty() {

-		return binding.getType();

-	}

-

-	public IValidationRule[] getValidators() {

-		return binding.getValidationRules();

-	}

-

-	public UpdateSourceTrigger getUpdateSourceTrigger() {

-		return binding.getUpdateSourceTrigger();

-	}

-

-	protected IObservable getObservableSource() {

-		return binding.getObservableSource();

-	}

-

-	protected void setObservableSource(IObservable observableSource) {

-		binding.setObservableSource(observableSource);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/AggregateObservableValue.java b/org.eclipse.xwt/src/org/eclipse/xwt/databinding/AggregateObservableValue.java
deleted file mode 100644
index cc551f0..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/AggregateObservableValue.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2005, 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *     Brad Reynolds - bug 164653

- *******************************************************************************/

-package org.eclipse.xwt.databinding;

-

-import org.eclipse.core.databinding.observable.Diffs;

-import org.eclipse.core.databinding.observable.Realm;

-import org.eclipse.core.databinding.observable.value.AbstractObservableValue;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.core.databinding.observable.value.IValueChangeListener;

-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;

-import org.eclipse.xwt.IMultiValueConverter;

-import org.eclipse.xwt.XWT;

-

-/**

- * @since 3.2

- *

- */

-public class AggregateObservableValue extends AbstractObservableValue {

-

-	private IObservableValue[] observableValues;

-

-	private boolean updating = false;

-	private IMultiValueConverter converter;

-

-	private Object currentValue;

-

-	private IValueChangeListener listener = new IValueChangeListener() {

-		public void handleValueChange(ValueChangeEvent event) {

-			if (!updating) {

-				fireValueChange(Diffs.createValueDiff(currentValue,

-						doGetValue()));

-			}

-		}

-	};

-

-	/**

-	 * @param observableValues

-	 * @param delimiter

-	 */

-	public AggregateObservableValue(IObservableValue[] observableValues,

-			IMultiValueConverter converter) {

-		super(findRealm(observableValues));

-		this.converter = converter;

-

-		this.observableValues = observableValues;

-		for (int i = 0; i < observableValues.length; i++) {

-			observableValues[i].addValueChangeListener(listener);

-		}

-		doGetValue();

-	}

-	

-	private static Realm findRealm(IObservableValue[] observableValues) {

-		for (IObservableValue observableValue : observableValues) {

-			return observableValue.getRealm();

-		}

-		return XWT.getRealm();

-	}

-

-	public void doSetValue(Object value) {

-		Object oldValue = doGetValue();

-

-		try {

-			updating = true;

-			Object[] values = converter.convertBack(value);

-			for (int i = 0; i < observableValues.length; i++) {

-				if (i < values.length) {

-					observableValues[i].setValue(values[i]);

-				}

-				else {

-					observableValues[i].setValue(null);					

-				}

-			}

-		} finally {

-			updating = false;

-		}

-		doGetValue();

-		currentValue = value;

-		fireValueChange(Diffs.createValueDiff(oldValue, value));

-	}

-

-	public Object doGetValue() {

-		Object[] values = new Object[observableValues.length];

-		for (int i = 0; i < values.length; i++) {

-			values[i] = observableValues[i].getValue();		

-		}

-		return converter.convert(values);

-	}

-

-	public Object getValueType() {

-		return String[].class;

-	}

-

-	public synchronized void dispose() {

-		for (int i = 0; i < observableValues.length; i++) {

-			observableValues[i].removeValueChangeListener(listener);

-		}

-		super.dispose();

-	}

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/BindingContext.java b/org.eclipse.xwt/src/org/eclipse/xwt/databinding/BindingContext.java
deleted file mode 100644
index e03ddaa..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/BindingContext.java
+++ /dev/null
@@ -1,277 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Soyatec & hceylan - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.databinding;

-

-import org.eclipse.core.databinding.AggregateValidationStatus;

-import org.eclipse.core.databinding.Binding;

-import org.eclipse.core.databinding.UpdateListStrategy;

-import org.eclipse.core.databinding.UpdateSetStrategy;

-import org.eclipse.core.databinding.UpdateValueStrategy;

-import org.eclipse.core.databinding.ValidationStatusProvider;

-import org.eclipse.core.databinding.observable.Realm;

-import org.eclipse.core.databinding.observable.list.IObservableList;

-import org.eclipse.core.databinding.observable.map.IObservableMap;

-import org.eclipse.core.databinding.observable.set.IObservableSet;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.swt.events.DisposeEvent;

-import org.eclipse.swt.events.DisposeListener;

-import org.eclipse.swt.widgets.Widget;

-import org.eclipse.xwt.XWT;

-

-/**

- * @author hceylan

- */

-public class BindingContext implements IBindingContext {

-

-	private org.eclipse.core.databinding.DataBindingContext context;

-

-	private Realm realm;

-

-	private AggregateValidationStatus status;

-

-	private int statusType = MAX_SEVERITY;

-

-	private final Widget parent;

-

-	public BindingContext(Widget parent) {

-		super();

-		this.parent = parent;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.databinding.IDataBindingContext#getContext()

-	 */

-	public org.eclipse.core.databinding.DataBindingContext getContext() {

-		if (this.context == null) {

-			if (this.realm != null) {

-				this.context = new org.eclipse.core.databinding.DataBindingContext(

-						this.realm);

-			} else {

-				this.context = new org.eclipse.core.databinding.DataBindingContext(

-						XWT.getRealm());

-			}

-

-			if (this.parent != null) {

-				this.parent.addDisposeListener(new DisposeListener() {

-					public void widgetDisposed(DisposeEvent e) {

-						context.dispose();

-					}

-				});

-			}

-		}

-		return this.context;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.databinding.IDataBindingContext#getRealm()

-	 */

-	public Realm getRealm() {

-		return this.realm;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.databinding.IDataBindingContext#getStatus()

-	 */

-	public AggregateValidationStatus getStatus() {

-		if (this.status == null) {

-			this.status = new AggregateValidationStatus(getContext(),

-					this.statusType);

-			if (this.parent != null) {

-				this.parent.addDisposeListener(new DisposeListener() {

-					public void widgetDisposed(DisposeEvent e) {

-						status.dispose();

-					}

-				});

-			}

-		}

-		return this.status;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.databinding.IDataBindingContext#getStatusType()

-	 */

-	public int getStatusType() {

-		return statusType;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.databinding.IDataBindingContext#bindValue(org.eclipse.core.databinding.observable.value.IObservableValue, org.eclipse.core.databinding.observable.value.IObservableValue)

-	 */

-	public final Binding bindValue(IObservableValue targetObservableValue,

-			IObservableValue modelObservableValue) {

-		return getContext().bindValue(targetObservableValue,

-				modelObservableValue);

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.databinding.IDataBindingContext#equals(java.lang.Object)

-	 */

-	public boolean equals(Object obj) {

-		if (!(obj instanceof BindingContext)) {

-			return false;			

-		}

-		org.eclipse.core.databinding.DataBindingContext context = getContext();

-		if (context != null) {

-			return context.equals(((BindingContext)obj).getContext());							

-		}

-		if (((BindingContext)obj).getContext() != null) {

-			return false;

-		}

-		return super.equals(obj);

-	}

-	

-	@Override

-	public int hashCode() {

-		return getContext().hashCode();

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.databinding.IDataBindingContext#bindValue(org.eclipse.core.databinding.observable.value.IObservableValue, org.eclipse.core.databinding.observable.value.IObservableValue, org.eclipse.core.databinding.UpdateValueStrategy, org.eclipse.core.databinding.UpdateValueStrategy)

-	 */

-	public final Binding bindValue(IObservableValue targetObservableValue,

-			IObservableValue modelObservableValue,

-			UpdateValueStrategy targetToModel, UpdateValueStrategy modelToTarget) {

-		return getContext().bindValue(targetObservableValue,

-				modelObservableValue, targetToModel, modelToTarget);

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.databinding.IDataBindingContext#bindList(org.eclipse.core.databinding.observable.list.IObservableList, org.eclipse.core.databinding.observable.list.IObservableList)

-	 */

-	public final Binding bindList(IObservableList targetObservableList,

-			IObservableList modelObservableList) {

-		return getContext()

-				.bindList(targetObservableList, modelObservableList);

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.databinding.IDataBindingContext#bindList(org.eclipse.core.databinding.observable.list.IObservableList, org.eclipse.core.databinding.observable.list.IObservableList, org.eclipse.core.databinding.UpdateListStrategy, org.eclipse.core.databinding.UpdateListStrategy)

-	 */

-	public final Binding bindList(IObservableList targetObservableList,

-			IObservableList modelObservableList,

-			UpdateListStrategy targetToModel, UpdateListStrategy modelToTarget) {

-		return getContext().bindList(targetObservableList,

-				modelObservableList, targetToModel, modelToTarget);

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.databinding.IDataBindingContext#bindSet(org.eclipse.core.databinding.observable.set.IObservableSet, org.eclipse.core.databinding.observable.set.IObservableSet)

-	 */

-	public final Binding bindSet(IObservableSet targetObservableSet,

-			IObservableSet modelObservableSet) {

-		return getContext().bindSet(targetObservableSet, modelObservableSet);

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.databinding.IDataBindingContext#bindSet(org.eclipse.core.databinding.observable.set.IObservableSet, org.eclipse.core.databinding.observable.set.IObservableSet, org.eclipse.core.databinding.UpdateSetStrategy, org.eclipse.core.databinding.UpdateSetStrategy)

-	 */

-	public final Binding bindSet(IObservableSet targetObservableSet,

-			IObservableSet modelObservableSet, UpdateSetStrategy targetToModel,

-			UpdateSetStrategy modelToTarget) {

-		return getContext().bindSet(targetObservableSet, modelObservableSet,

-				targetToModel, modelToTarget);

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.databinding.IDataBindingContext#dispose()

-	 */

-	public final void dispose() {

-		getContext().dispose();

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.databinding.IDataBindingContext#getBindings()

-	 */

-	public final IObservableList getBindings() {

-		return getContext().getBindings();

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.databinding.IDataBindingContext#getValidationStatusProviders()

-	 */

-	public final IObservableList getValidationStatusProviders() {

-		return getContext().getValidationStatusProviders();

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.databinding.IDataBindingContext#getValidationStatusMap()

-	 */

-	public final IObservableMap getValidationStatusMap() {

-		return getContext().getValidationStatusMap();

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.databinding.IDataBindingContext#addBinding(org.eclipse.core.databinding.Binding)

-	 */

-	public void addBinding(Binding binding) {

-		getContext().addBinding(binding);

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.databinding.IDataBindingContext#addValidationStatusProvider(org.eclipse.core.databinding.ValidationStatusProvider)

-	 */

-	public void addValidationStatusProvider(

-			ValidationStatusProvider validationStatusProvider) {

-		getContext().addValidationStatusProvider(validationStatusProvider);

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.databinding.IDataBindingContext#updateModels()

-	 */

-	public final void updateModels() {

-		getContext().updateModels();

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.databinding.IDataBindingContext#updateTargets()

-	 */

-	public final void updateTargets() {

-		getContext().updateTargets();

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.databinding.IDataBindingContext#removeBinding(org.eclipse.core.databinding.Binding)

-	 */

-	public boolean removeBinding(Binding binding) {

-		return getContext().removeBinding(binding);

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.databinding.IDataBindingContext#removeValidationStatusProvider(org.eclipse.core.databinding.ValidationStatusProvider)

-	 */

-	public boolean removeValidationStatusProvider(

-			ValidationStatusProvider validationStatusProvider) {

-		return getContext().removeValidationStatusProvider(

-				validationStatusProvider);

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.databinding.IDataBindingContext#getValidationRealm()

-	 */

-	public final Realm getValidationRealm() {

-		return getContext().getValidationRealm();

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.databinding.IDataBindingContext#setRealm(org.eclipse.core.databinding.observable.Realm)

-	 */

-	public void setRealm(Realm realm) {

-		this.realm = realm;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.databinding.IDataBindingContext#setStatusType(int)

-	 */

-	public void setStatusType(int statusType) {

-		this.statusType = statusType;

-	}

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/BindingMode.java b/org.eclipse.xwt/src/org/eclipse/xwt/databinding/BindingMode.java
deleted file mode 100644
index 2da3865..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/BindingMode.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.databinding;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public enum BindingMode {

-	TwoWay, OneWay, OneTime;

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/ControlDataBinding.java b/org.eclipse.xwt/src/org/eclipse/xwt/databinding/ControlDataBinding.java
deleted file mode 100644
index 9409b64..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/ControlDataBinding.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-

-package org.eclipse.xwt.databinding;

-

-import org.eclipse.core.databinding.observable.IObservable;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.xwt.IDataProvider;

-import org.eclipse.xwt.IValueConverter;

-import org.eclipse.xwt.internal.core.Binding;

-import org.eclipse.xwt.internal.core.BindingGate;

-import org.eclipse.xwt.internal.core.ScopeManager;

-import org.eclipse.xwt.internal.utils.UserData;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class ControlDataBinding extends AbstractDataBinding {

-	private Object source;

-

-	public ControlDataBinding(Object source, Binding binding,

-			IDataProvider dataProvider) {

-		super(binding, dataProvider);

-		this.source = source;

-	}

-

-	/**

-	 * Get bind value of two bindings.

-	 */

-	public Object getValue(Class<?> targetType) {

-		IObservableValue targetWidget = null;

-		Object target = getControl();

-		if (target != null) {

-			targetWidget = ScopeManager.observeValue(target, target,

-					getTargetProperty(), getUpdateSourceTrigger());

-		}

-		if (source == null) {

-			return null;

-		}

-

-		Object control = UserData.getWidget(source);

-		if (control == null) {

-			control = getControl();

-		}

-

-		IObservableValue sourceWidget = ScopeManager.observeValue(control, source,

-				getSourceProperty(), getUpdateSourceTrigger());

-

-		if (targetWidget == null) {

-			if (sourceWidget != null) {

-				if (targetType != null && !targetType.isInstance(sourceWidget)) {

-					return sourceWidget;			

-				}

-				Object value = sourceWidget.getValue();

-				while(value instanceof IObservableValue) {

-					value = ((IObservableValue)value).getValue();

-				}

-				IValueConverter converter = getConverter();

-				if (converter != null) {

-					value = converter.convert(value);

-				}

-				return value;

-			}

-			return source;

-		}

-

-		IBindingContext dataBindingContext = getDataBindingContext();

-		BindingGate bindingGate = new BindingGate(dataBindingContext);

-		bindingGate.bind(sourceWidget, targetWidget, this);

-		if (sourceWidget != null) {

-			if (targetType != null && !targetType.isInstance(sourceWidget)) {

-				return sourceWidget;			

-			}

-			// convert to final value

-			Object value = sourceWidget.getValue();

-			while(value instanceof IObservableValue) {

-				value = ((IObservableValue)value).getValue();

-			}

-			IValueConverter converter = getConverter();

-			if (converter != null) {

-				value = converter.convert(value);

-			}

-			return value;

-		}

-		return source;

-	}

-	

-	/**

-	 * 

-	 * @return

-	 */

-	protected Object getSource() {

-		return source;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/DataBinding.java b/org.eclipse.xwt/src/org/eclipse/xwt/databinding/DataBinding.java
deleted file mode 100644
index a087962..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/DataBinding.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.databinding;

-

-import org.eclipse.core.databinding.observable.IObservable;

-import org.eclipse.core.databinding.observable.list.IObservableList;

-import org.eclipse.core.databinding.observable.set.IObservableSet;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.jface.viewers.Viewer;

-import org.eclipse.swt.custom.CCombo;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Combo;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.DateTime;

-import org.eclipse.swt.widgets.MenuItem;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.xwt.IDataProvider;

-import org.eclipse.xwt.IValueConverter;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.internal.core.Binding;

-import org.eclipse.xwt.internal.core.BindingExpressionPath;

-import org.eclipse.xwt.internal.core.BindingGate;

-import org.eclipse.xwt.internal.core.ScopeManager;

-import org.eclipse.xwt.metadata.ModelUtils;

-

-/**

- * The default implementation of the dataBinding object.

- * 

- * @author jliu (jin.liu@soyatec.com)

- */

-public class DataBinding extends AbstractDataBinding {

-

-	private IObservable observableWidget;

-

-	private BindingGate bindingGate;

-

-	/**

-	 * Constructor for dataProvider.

-	 */

-	public DataBinding(Binding binding, IDataProvider dataProvider) {

-		super(binding, dataProvider);

-		assert dataProvider != null : "DataProvider is null";

-	}

-

-	/**

-	 * Get bind value of two bindings.

-	 */

-	public Object getValue(Class<?> targetType) {

-		IObservable observableWidget = getObservableWidget();

-		IObservable observableSource = getObservableSource(ScopeManager.VALUE);

-

-		/*

-		 * If observableWidget is null, we need only return the data from

-		 * provider.

-		 */

-		if (observableWidget == null) {

-			if (observableSource == null) {

-				// TODO should raise an exception

-				return null;

-			}

-			if (targetType != null && !targetType.isInstance(observableSource)) {

-				return observableSource;			

-			}

-			

-			// convert to final value

-			Object value = observableSource;

-			if (observableSource instanceof IObservableValue) {

-				value = ((IObservableValue) observableSource).getValue();

-			}

-			return convertedValue(value);

-		}

-

-		BindingGate bindingContext = getBindingGate();

-

-		if (bindingContext != null && observableSource != null) {

-			Object target = getControl();

-			if (target instanceof Text

-					&& getTargetProperty().equalsIgnoreCase("text")) {

-				if (isSourcePropertyReadOnly()) {

-					Text text = (Text) target;

-					text.setEditable(false);

-				}

-			} else if (target instanceof Button

-					&& getTargetProperty().equalsIgnoreCase("selection")) {

-				if (isSourcePropertyReadOnly()) {

-					Button button = (Button) target;

-					button.setEnabled(false);

-				}

-			} else if ((target instanceof Combo || target instanceof CCombo)

-					&& getTargetProperty().equalsIgnoreCase("text")) {

-				if (isSourcePropertyReadOnly()) {

-					Control control = (Control) target;

-					control.setEnabled(false);

-				}

-			} else if (target instanceof MenuItem

-					&& getTargetProperty().equalsIgnoreCase("selection")) {

-				if (isSourcePropertyReadOnly()) {

-					MenuItem menuItem = (MenuItem) target;

-					menuItem.setEnabled(false);

-				}

-			} else if (target instanceof DateTime

-					&& getTargetProperty().equalsIgnoreCase("selection")) {

-				if (isSourcePropertyReadOnly()) {

-					DateTime dateTime = (DateTime) target;

-					dateTime.setEnabled(false);

-				}

-			}

-			bindingContext.bind(observableSource, observableWidget, this);

-		}

-

-		if (targetType != null && !targetType.isInstance(observableSource)) {

-			return observableSource;			

-		}

-

-		// convert to final value

-		Object value = observableSource;

-		while (value instanceof IObservableValue) {

-			value = ((IObservableValue) value).getValue();

-		}

-		return convertedValue(value);

-	}

-

-	private BindingGate getBindingGate() {

-		if (this.bindingGate == null) {

-			IBindingContext dataBindingContext = getDataBindingContext();

-			this.bindingGate = new BindingGate(dataBindingContext);

-		}

-

-		return this.bindingGate;

-	}

-

-	private Object convertedValue(Object value) {

-		IValueConverter converter = getConverter();

-		if (converter != null) {

-			value = converter.convert(value);

-		}

-		return value;

-	}

-

-	public boolean isSourcePropertyReadOnly() {

-		IDataProvider dataProvider = getDataProvider();

-		try {

-			return ScopeManager.isPropertyReadOnly(dataProvider,

-					getSourcePropertyExpression());

-		} catch (XWTException e) {

-		}

-		return false;

-	}

-

-	public IObservable getObservableSource(int observeKind) {

-		IObservable observableSource = getObservableSource();

-		if (observableSource == null) {

-			IDataProvider dataProvider = getDataProvider();

-			observableSource = ScopeManager.observe(getControl(), dataProvider

-					.getData(null), getSourcePropertyExpression(),

-					getUpdateSourceTrigger(), observeKind);

-			if (observableSource != null) {

-				setObservableSource(observableSource);

-			}

-		}

-		return observableSource;

-	}

-

-	public IObservable getObservableWidget() {

-		if (observableWidget == null) {

-			Object target = getControl();

-			Object host = getHost();

-			String targetProperty = getTargetProperty();

-			targetProperty = ModelUtils.normalizePropertyName(targetProperty);

-			int observeKind = ScopeManager.AUTO;

-			if (host instanceof Viewer && "input".equals(targetProperty)) {

-				// It is possible to use List

-				getObservableSource(ScopeManager.COLLECTION);

-				IObservable observableSource = getObservableSource();

-				if (observableSource instanceof IObservableList) {

-					return null;

-				} else if (observableSource instanceof IObservableSet) {

-					return null;

-				}

-			}

-			try {

-				BindingExpressionPath path = getTargetPropertyExpression();

-				if (path.isEmptyPath()) {

-					return null;

-				}

-				observableWidget = ScopeManager.observe(target, host, path,

-						getUpdateSourceTrigger(), observeKind);

-			} catch (XWTException e) {

-			}

-		}

-		return observableWidget;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/Event.java b/org.eclipse.xwt/src/org/eclipse/xwt/databinding/Event.java
deleted file mode 100644
index de35411..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/Event.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.databinding;

-

-/**

- * @author jliu jin.liu@soyatec.com

- */

-public class Event {

-

-	private Object eventTarget;

-	private Object oldValue;

-	private Object newValue;

-	private String eventType;

-

-	public Event(Object eventTarget, Object oldValue, Object newValue, String eventType) {

-		this.eventTarget = eventTarget;

-		this.oldValue = oldValue;

-		this.newValue = newValue;

-		this.eventType = eventType;

-	}

-

-	/**

-	 * @return the eventTarget

-	 */

-	public Object getEventTarget() {

-		return eventTarget;

-	}

-

-	/**

-	 * @param eventTarget

-	 *            the eventTarget to set

-	 */

-	public void setEventTarget(Object eventTarget) {

-		this.eventTarget = eventTarget;

-	}

-

-	/**

-	 * @return the oldValue

-	 */

-	public Object getOldValue() {

-		return oldValue;

-	}

-

-	/**

-	 * @param oldValue

-	 *            the oldValue to set

-	 */

-	public void setOldValue(Object oldValue) {

-		this.oldValue = oldValue;

-	}

-

-	/**

-	 * @return the newValue

-	 */

-	public Object getNewValue() {

-		return newValue;

-	}

-

-	/**

-	 * @param newValue

-	 *            the newValue to set

-	 */

-	public void setNewValue(Object newValue) {

-		this.newValue = newValue;

-	}

-

-	/**

-	 * @return the eventType

-	 */

-	public String getEventType() {

-		return eventType;

-	}

-

-	/**

-	 * @param eventType

-	 *            the eventType to set

-	 */

-	public void setEventType(String eventType) {

-		this.eventType = eventType;

-	}

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/EventListener.java b/org.eclipse.xwt/src/org/eclipse/xwt/databinding/EventListener.java
deleted file mode 100644
index 1c9a699..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/EventListener.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.databinding;

-

-/**

- * @author jliu jin.liu@soyatec.com

- */

-public interface EventListener {

-	void handleEvent(Event evt);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/EventManager.java b/org.eclipse.xwt/src/org/eclipse/xwt/databinding/EventManager.java
deleted file mode 100644
index 37b3a43..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/EventManager.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.databinding;

-

-import java.util.ArrayList;

-import java.util.HashMap;

-import java.util.List;

-import java.util.Map;

-

-import org.eclipse.core.databinding.observable.Realm;

-

-/**

- * This class <code>EventManager</code> is used to manage all event listeners for a observed object.

- * 

- * @author jliu jin.liu@soyatec.com

- */

-public class EventManager {

-

-	private static Map<Object, EventManager> managers = new HashMap<Object, EventManager>();

-

-	private Realm realm;

-	private Map<String, List<EventListener>> type2listeners = new HashMap<String, List<EventListener>>();

-

-	/**

-	 * private constructor, lazy creating.

-	 */

-	private EventManager(Object observed, Realm realm) {

-		this.realm = realm;

-	}

-

-	public static EventManager getEventManager(Object eventTarget, Realm realm) {

-		EventManager eventManager = managers.get(eventTarget);

-		if (eventManager == null || eventManager.realm != realm) {

-			eventManager = new EventManager(eventTarget, realm);

-			managers.put(eventTarget, eventManager);

-		}

-		return eventManager;

-	}

-

-	public void dispatchEvent(Event event) {

-		String eventType = event.getEventType();

-		List<EventListener> listeners = type2listeners.get(eventType);

-		for (EventListener l : listeners) {

-			l.handleEvent(event);

-		}

-	}

-

-	public void addEventListener(String eventType, EventListener eventListener) {

-		List<EventListener> listeners = type2listeners.get(eventType);

-		if (listeners == null) {

-			listeners = new ArrayList<EventListener>();

-			type2listeners.put(eventType, listeners);

-		}

-		listeners.add(eventListener);

-	}

-

-	public void removeEventListener(String eventType, EventListener eventListener) {

-		List<EventListener> listeners = type2listeners.get(eventType);

-		if (listeners != null) {

-			listeners.remove(eventListener);

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/EventPropertyObservableValue.java b/org.eclipse.xwt/src/org/eclipse/xwt/databinding/EventPropertyObservableValue.java
deleted file mode 100644
index b5830dd..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/EventPropertyObservableValue.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.databinding;

-

-import org.eclipse.xwt.IObservableValueListener;

-import org.eclipse.xwt.internal.core.IEventController;

-import org.eclipse.xwt.internal.utils.LoggerManager;

-import org.eclipse.xwt.internal.utils.ObservableValueManager;

-import org.eclipse.xwt.internal.utils.UserData;

-import org.eclipse.xwt.javabean.metadata.properties.EventProperty;

-import org.eclipse.xwt.metadata.IEvent;

-

-public class EventPropertyObservableValue extends XWTObservableValue {

-	private EventProperty property;

-		

-	public EventPropertyObservableValue(Object observed, EventProperty property) {

-		super(Boolean.class, observed, property.getName());

-		this.property = property;

-		IEventController controller = UserData.findEventController(observed);

-		if (controller == null) {

-			controller = UserData.updateEventController(observed);

-		}

-		IEvent event = property.getEvent();

-

-		IObservableValueListener manager = UserData.getObservableValueManager(observed);

-		if (manager == null) {

-			manager = new ObservableValueManager(observed);

-			UserData.setObservableValueManager(observed, manager);

-		}

-		try {

-			controller.setEvent(event, UserData.getWidget(observed), manager, property, IObservableValueListener.class.getDeclaredMethod("changeValueHandle", Object.class, org.eclipse.swt.widgets.Event.class));

-			manager.registerValue(property, this);

-		} catch (Exception e) {

-			LoggerManager.log(e);

-			return;

-		}

-	}

-

-	@Override

-	protected void doSetApprovedValue(Object value) {

-		UserData.setLocalData(getObserved(), property.getName(), value);		

-	}

-

-	protected Object doGetValue() {

-		return UserData.getLocalData(getObserved(), property.getName());

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/IBindingContext.java b/org.eclipse.xwt/src/org/eclipse/xwt/databinding/IBindingContext.java
deleted file mode 100644
index 815a9d4..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/IBindingContext.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.databinding;

-

-import org.eclipse.core.databinding.AggregateValidationStatus;

-import org.eclipse.core.databinding.Binding;

-import org.eclipse.core.databinding.UpdateListStrategy;

-import org.eclipse.core.databinding.UpdateSetStrategy;

-import org.eclipse.core.databinding.UpdateValueStrategy;

-import org.eclipse.core.databinding.ValidationStatusProvider;

-import org.eclipse.core.databinding.observable.Realm;

-import org.eclipse.core.databinding.observable.list.IObservableList;

-import org.eclipse.core.databinding.observable.map.IObservableMap;

-import org.eclipse.core.databinding.observable.set.IObservableSet;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-

-public interface IBindingContext {

-

-	/**

-	 * 

-	 * @see @see org.eclipse.core.databinding.AggregateValidationStatus#MERGED

-	 */

-	public static final int MERGED = org.eclipse.core.databinding.AggregateValidationStatus.MERGED;

-	/**

-	 * 

-	 * @see org.eclipse.core.databinding.AggregateValidationStatus#MAX_SEVERITY

-	 */

-	public static final int MAX_SEVERITY = org.eclipse.core.databinding.AggregateValidationStatus.MAX_SEVERITY;

-

-	/**

-	 * @return the delegate

-	 */

-	public abstract org.eclipse.core.databinding.DataBindingContext getContext();

-

-	/**

-	 * @return the realm

-	 */

-	public abstract Realm getRealm();

-

-	/**

-	 * @return the status

-	 */

-	public abstract AggregateValidationStatus getStatus();

-

-	/**

-	 * The status type of the status. One of the values

-	 * 

-	 * @return the statusType

-	 */

-	public abstract int getStatusType();

-

-	/**

-	 * @param targetObservableValue

-	 * @param modelObservableValue

-	 * @return

-	 * @see org.eclipse.core.databinding.DataBindingContext#bindValue(org.eclipse.core.databinding.observable.value.IObservableValue,

-	 *      org.eclipse.core.databinding.observable.value.IObservableValue)

-	 */

-	public abstract Binding bindValue(IObservableValue targetObservableValue,

-			IObservableValue modelObservableValue);

-

-	/**

-	 * @param obj

-	 * @return

-	 * @see java.lang.Object#equals(java.lang.Object)

-	 */

-	public abstract boolean equals(Object obj);

-

-	/**

-	 * @param targetObservableValue

-	 * @param modelObservableValue

-	 * @param targetToModel

-	 * @param modelToTarget

-	 * @return

-	 * @see org.eclipse.core.databinding.DataBindingContext#bindValue(org.eclipse.core.databinding.observable.value.IObservableValue,

-	 *      org.eclipse.core.databinding.observable.value.IObservableValue,

-	 *      org.eclipse.core.databinding.UpdateValueStrategy,

-	 *      org.eclipse.core.databinding.UpdateValueStrategy)

-	 */

-	public abstract Binding bindValue(IObservableValue targetObservableValue,

-			IObservableValue modelObservableValue,

-			UpdateValueStrategy targetToModel, UpdateValueStrategy modelToTarget);

-

-	/**

-	 * @param targetObservableList

-	 * @param modelObservableList

-	 * @return

-	 * @see org.eclipse.core.databinding.DataBindingContext#bindList(org.eclipse.core.databinding.observable.list.IObservableList,

-	 *      org.eclipse.core.databinding.observable.list.IObservableList)

-	 */

-	public abstract Binding bindList(IObservableList targetObservableList,

-			IObservableList modelObservableList);

-

-	/**

-	 * @param targetObservableList

-	 * @param modelObservableList

-	 * @param targetToModel

-	 * @param modelToTarget

-	 * @return

-	 * @see org.eclipse.core.databinding.DataBindingContext#bindList(org.eclipse.core.databinding.observable.list.IObservableList,

-	 *      org.eclipse.core.databinding.observable.list.IObservableList,

-	 *      org.eclipse.core.databinding.UpdateListStrategy,

-	 *      org.eclipse.core.databinding.UpdateListStrategy)

-	 */

-	public abstract Binding bindList(IObservableList targetObservableList,

-			IObservableList modelObservableList,

-			UpdateListStrategy targetToModel, UpdateListStrategy modelToTarget);

-

-	/**

-	 * @param targetObservableSet

-	 * @param modelObservableSet

-	 * @return

-	 * @see org.eclipse.core.databinding.DataBindingContext#bindSet(org.eclipse.core.databinding.observable.set.IObservableSet,

-	 *      org.eclipse.core.databinding.observable.set.IObservableSet)

-	 */

-	public abstract Binding bindSet(IObservableSet targetObservableSet,

-			IObservableSet modelObservableSet);

-

-	/**

-	 * @param targetObservableSet

-	 * @param modelObservableSet

-	 * @param targetToModel

-	 * @param modelToTarget

-	 * @return

-	 * @see org.eclipse.core.databinding.DataBindingContext#bindSet(org.eclipse.core.databinding.observable.set.IObservableSet,

-	 *      org.eclipse.core.databinding.observable.set.IObservableSet,

-	 *      org.eclipse.core.databinding.UpdateSetStrategy,

-	 *      org.eclipse.core.databinding.UpdateSetStrategy)

-	 */

-	public abstract Binding bindSet(IObservableSet targetObservableSet,

-			IObservableSet modelObservableSet, UpdateSetStrategy targetToModel,

-			UpdateSetStrategy modelToTarget);

-

-	/**

-	 * 

-	 * @see org.eclipse.core.databinding.DataBindingContext#dispose()

-	 */

-	public abstract void dispose();

-

-	/**

-	 * @return

-	 * @see org.eclipse.core.databinding.DataBindingContext#getBindings()

-	 */

-	public abstract IObservableList getBindings();

-

-	/**

-	 * @return

-	 * @see org.eclipse.core.databinding.DataBindingContext#getValidationStatusProviders()

-	 */

-	public abstract IObservableList getValidationStatusProviders();

-

-	/**

-	 * @return

-	 * @deprecated

-	 * @see org.eclipse.core.databinding.DataBindingContext#getValidationStatusMap()

-	 */

-	public abstract IObservableMap getValidationStatusMap();

-

-	/**

-	 * @param binding

-	 * @see org.eclipse.core.databinding.DataBindingContext#addBinding(org.eclipse.core.databinding.Binding)

-	 */

-	public abstract void addBinding(Binding binding);

-

-	/**

-	 * @param validationStatusProvider

-	 * @see org.eclipse.core.databinding.DataBindingContext#addValidationStatusProvider(org.eclipse.core.databinding.ValidationStatusProvider)

-	 */

-	public abstract void addValidationStatusProvider(

-			ValidationStatusProvider validationStatusProvider);

-

-	/**

-	 * 

-	 * @see org.eclipse.core.databinding.DataBindingContext#updateModels()

-	 */

-	public abstract void updateModels();

-

-	/**

-	 * 

-	 * @see org.eclipse.core.databinding.DataBindingContext#updateTargets()

-	 */

-	public abstract void updateTargets();

-

-	/**

-	 * @param binding

-	 * @return

-	 * @see org.eclipse.core.databinding.DataBindingContext#removeBinding(org.eclipse.core.databinding.Binding)

-	 */

-	public abstract boolean removeBinding(Binding binding);

-

-	/**

-	 * @param validationStatusProvider

-	 * @return

-	 * @see org.eclipse.core.databinding.DataBindingContext#removeValidationStatusProvider(org.eclipse.core.databinding.ValidationStatusProvider)

-	 */

-	public abstract boolean removeValidationStatusProvider(

-			ValidationStatusProvider validationStatusProvider);

-

-	/**

-	 * @return

-	 * @see org.eclipse.core.databinding.DataBindingContext#getValidationRealm()

-	 */

-	public abstract Realm getValidationRealm();

-

-	/**

-	 * @param realm

-	 *            the realm to set

-	 */

-	public abstract void setRealm(Realm realm);

-

-	/**

-	 * @param statusType

-	 *            the statusType to set

-	 */

-	public abstract void setStatusType(int statusType);

-

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/JFaceXWTDataBinding.java b/org.eclipse.xwt/src/org/eclipse/xwt/databinding/JFaceXWTDataBinding.java
deleted file mode 100644
index 72a7e6c..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/JFaceXWTDataBinding.java
+++ /dev/null
@@ -1,508 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.databinding;

-

-import java.beans.BeanInfo;

-import java.beans.PropertyChangeListener;

-import java.beans.PropertyDescriptor;

-import java.lang.reflect.Field;

-import java.lang.reflect.Method;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.core.databinding.observable.IObservable;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.core.databinding.property.value.SimpleValueProperty;

-import org.eclipse.core.internal.databinding.property.value.SimplePropertyObservableValue;

-import org.eclipse.jface.databinding.swt.SWTObservables;

-import org.eclipse.jface.databinding.viewers.ViewerProperties;

-import org.eclipse.jface.databinding.viewers.ViewersObservables;

-import org.eclipse.jface.internal.databinding.swt.DateTimeSelectionProperty;

-import org.eclipse.jface.viewers.Viewer;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.custom.StyledText;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.DateTime;

-import org.eclipse.swt.widgets.MenuItem;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.xwt.IDataProvider;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.internal.core.ScopeManager;

-import org.eclipse.xwt.internal.core.UpdateSourceTrigger;

-import org.eclipse.xwt.internal.databinding.menuitem.MenuItemEnabledObservableValue;

-import org.eclipse.xwt.internal.databinding.menuitem.MenuItemSelectionObservableValue;

-import org.eclipse.xwt.internal.utils.LoggerManager;

-import org.eclipse.xwt.internal.utils.UserData;

-import org.eclipse.xwt.javabean.metadata.properties.EventProperty;

-import org.eclipse.xwt.metadata.IMetaclass;

-import org.eclipse.xwt.metadata.IProperty;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class JFaceXWTDataBinding {

-	static final String ENABLED = "enabled";

-	static final String SELECTION = "selection";

-

-	static final String TEXT = "text";

-	public static final Class<?>[] CONTROL_ARGUMENT_TYPES = new Class[] { Control.class };

-	public static final Class<?>[] VIEWER_ARGUMENT_TYPES = new Class[] { Viewer.class };

-	

-	static String[] VIEWERS_PROPERTIES = null;

-	static {

-		Method[] methods = ViewerProperties.class.getDeclaredMethods();

-		VIEWERS_PROPERTIES = new String[methods.length];

-		for (int i = 0; i < methods.length; i++) {

-			VIEWERS_PROPERTIES[i] =  methods[i].getName();

-		}		

-	}

-

-	public static boolean isViewerProperty(String propertyName) {

-		for (String name : VIEWERS_PROPERTIES) {

-			if (name.equals(propertyName)) {

-				return true;

-			}

-		}

-		return false;

-	}

-

-	public static Class<?> getValueType(Class<?> type, String propertyName) {

-		if (type == null || propertyName == null || propertyName.indexOf(".") != -1) {

-			return null;

-		}

-		try {

-			IMetaclass metaclass = XWT.getMetaclass(type);

-			IProperty property = metaclass.findProperty(propertyName);

-			if (property != null) {

-				return property.getType();

-			}

-		} catch (Exception e) {

-			LoggerManager.log(e);

-		}

-		return null;

-	}

-	

-	public static Object getValue(Object target, String propertyName) {

-		if (target == null || propertyName == null || propertyName.indexOf(".") != -1) {

-			return target;

-		}

-		Class<?> type = target.getClass();

-		try {

-			BeanInfo beanInfo = java.beans.Introspector.getBeanInfo(type);

-			PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();

-			for (PropertyDescriptor pd : propertyDescriptors) {

-				if (propertyName.equalsIgnoreCase(pd.getName())) {

-					Method readMethod = pd.getReadMethod();

-					if (readMethod != null) {

-						return readMethod.invoke(target);

-					}

-				}

-			}

-			Field[] fields = type.getDeclaredFields();

-			for (Field field : fields) {

-				if (propertyName.equalsIgnoreCase(field.getName())) {

-					Object object = field.get(target);

-					return object;

-				}

-			}

-			return UserData.getLocalData(target, propertyName);

-		} catch (Exception e) {

-			LoggerManager.log(e);

-		}

-		return null;

-	}

-	

-	public static void setValue(Object target, String propertyName, Object value) {

-		Class<?> type = target.getClass();

-		try {

-			BeanInfo beanInfo = java.beans.Introspector.getBeanInfo(type);

-			PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();

-			for (PropertyDescriptor pd : propertyDescriptors) {

-				if (propertyName.equals(pd.getName())) {

-					Method writeMethod = pd.getWriteMethod();

-					if (writeMethod == null) {

-						return;

-					}

-					if (!writeMethod.isAccessible()) {

-						writeMethod.setAccessible(true);

-					}

-					Class<?>[] parameterTypes = writeMethod.getParameterTypes();

-					Class targetType = parameterTypes[0];

-					if (targetType != value.getClass()) {

-						if (targetType.isEnum() && value instanceof String) {

-							try {

-								writeMethod.invoke(target, new Object[] { Enum.valueOf(targetType, (String) value) });

-								return;

-							} catch (Exception e) {

-							}

-						}

-						IConverter c = XWT.findConvertor(value.getClass(), targetType);

-						if (c != null) {

-							value = c.convert(value);

-						}

-					}

-					writeMethod.invoke(target, new Object[] { value });

-					return;

-				}

-			}

-			Field[] fields = type.getDeclaredFields();

-			for (Field field : fields) {

-				if (propertyName.equals(field.getName())) {

-					if (!field.isAccessible()) {

-						field.setAccessible(true);

-					}

-					Class fieldType = field.getType();

-					if (fieldType.isEnum() && value instanceof String) {

-						try {

-							field.set(target, Enum.valueOf(fieldType, (String) value));

-							return;

-						} catch (Exception e) {

-						}

-					}

-					IConverter c = XWT.findConvertor(value.getClass(), fieldType);

-					if (c != null) {

-						value = c.convert(value);

-					}

-					field.set(target, value);

-					return;

-				}

-			}

-			

-			IMetaclass metaclass = XWT.getMetaclass(type);

-			IProperty property = metaclass.findProperty(propertyName);

-			if (property != null) {

-				property.setValue(target, value);

-			}

-		} catch (Exception e) {

-			e.printStackTrace();

-		}

-	}

-

-	public static boolean isPropertyReadOnly(Class<?> type, String propertyName) {

-		if (type == null || propertyName == null || propertyName.indexOf(".") != -1) {

-			return true;

-		}

-		try {			

-			IMetaclass metaclass = XWT.getMetaclass(type);

-			IProperty property = metaclass.findProperty(propertyName);

-			if (property != null) {

-				return property.isReadOnly();

-			}

-		} catch (Exception e) {

-			LoggerManager.log(e);

-		}

-		return true;

-	}

-

-	

-	public static boolean isBeanSupport(Object target) {

-		Class<?> type = toType(target);

-		Method method = null;

-		try {

-			try {

-				method = type.getMethod("addPropertyChangeListener", new Class[] { String.class, PropertyChangeListener.class });

-			} catch (NoSuchMethodException e) {

-				method = type.getMethod("addPropertyChangeListener", new Class[] { PropertyChangeListener.class });

-			}

-		} catch (SecurityException e) {

-		} catch (NoSuchMethodException e) {

-		}

-		return method != null;

-	}

-

-	public static Class<?> toType(Object target) {

-		Class<?> type = null;

-		if (target instanceof IObservableValue) {

-			IObservableValue value = (IObservableValue) target;

-			Object valueType = value.getValueType();

-			if (valueType instanceof Class<?>) {

-				type = (Class<?>) valueType;

-			}

-		} else if (target instanceof Class<?>) {

-			type = (Class<?>)target;			

-		} else if (target instanceof IDataProvider) {

-			IDataProvider dataProvider = (IDataProvider) target;

-			type = (Class<?>) toType(dataProvider.getData(null));			

-		} else {

-			type = target.getClass();

-		}

-		if (type == null) {

-			return Object.class;

-		}

-		return type;

-	}

-

-	public static boolean isValueProperty(Class<?> object, String propertyName) {

-		if (propertyName == null) {

-			return false;

-		}

-

-		if (Viewer.class.isAssignableFrom(object)) {

-			return isViewerValueProperty(object, propertyName);

-		} else if (MenuItem.class.isAssignableFrom(object)) {

-			//

-			// https://bugs.eclipse.org/bugs/show_bug.cgi?id=280157

-			// testcase:

-			// org.eclipse.xwt.tests.databinding.bindcontrol.BindMenuItem

-			//

-			if (ENABLED.equalsIgnoreCase(propertyName)) {

-				return true;

-			} else if (SELECTION.equalsIgnoreCase(propertyName)) {

-				return true;

-			}

-		}

-		boolean isProperty = isControlValueProperty(object, propertyName);

-		if (isProperty) {

-			return true;

-		}

-		return false;

-	}

-

-	public static IObservable observeWidget(Object object,

-			String propertyName, UpdateSourceTrigger updateSourceTrigger, int observedKind) {

-		if (propertyName == null) {

-			return null;

-		}

-		try {

-			switch (observedKind) {

-			case ScopeManager.AUTO:

-				return observePropertyValue(object,

-						propertyName, updateSourceTrigger);

-			case ScopeManager.COLLECTION:

-			case ScopeManager.SET:

-			case ScopeManager.LIST:

-				break;				

-			case ScopeManager.VALUE:

-				return observePropertyValue(object,

-						propertyName, updateSourceTrigger);

-			default:

-				break;

-			}

-		} catch (XWTException e) {

-		}

-		return null;

-	}

-

-	protected static IObservable observePropertyValue(Object object,

-			String propertyName, UpdateSourceTrigger updateSourceTrigger) {

-		if (object instanceof Viewer) {

-			if ("input".equals(propertyName)) {

-				Viewer viewer = (Viewer) object;

-				SimpleValueProperty property = (SimpleValueProperty) ViewerProperties.input();

-				IObservableValue observableValue = new SimplePropertyObservableValue(XWT.getRealm(), viewer, property);

-				return new TypedViewerObservableValueDecorator(observableValue, viewer);

-			}

-			else if ("singleSelection".equals(propertyName)) {

-				Viewer viewer = (Viewer) object;

-				SimpleValueProperty property = (SimpleValueProperty) ViewerProperties.singleSelection();

-				IObservableValue observableValue = new SimplePropertyObservableValue(XWT.getRealm(), viewer, property);

-				return new TypedViewerObservableValueDecorator(observableValue, viewer);

-			}

-			return observePropertyValue((Viewer) object, propertyName, updateSourceTrigger);

-		} else if (object instanceof MenuItem) {

-			//

-			// TODO https://bugs.eclipse.org/bugs/show_bug.cgi?id=280157

-			// testcase:

-			// org.eclipse.xwt.tests.databinding.bindcontrol.BindMenuItem

-			//

-			if (ENABLED.equalsIgnoreCase(propertyName)) {

-				return new MenuItemEnabledObservableValue((MenuItem) object);

-			} else if (SELECTION.equalsIgnoreCase(propertyName)) {

-				return new MenuItemSelectionObservableValue((MenuItem) object);

-			}

-		} else if (object instanceof Control) {

-			return observePropertyValue((Control) object, propertyName, updateSourceTrigger);

-		}

-		return null;

-	}

-

-	protected static boolean isControlValueProperty(Class<?> type,

-			String propertyName) {

-		if (TEXT.equalsIgnoreCase(propertyName)) {

-			if (Text.class.isAssignableFrom(type)) {

-				return true;

-			}

-			// widget button is not supported at 3.4 version.

-			if (SWT.getVersion() == 3449 && Button.class.isAssignableFrom(type)) {

-				return false;

-			}

-		}

-		String getterName = "observe"

-				+ propertyName.substring(0, 1).toUpperCase()

-				+ propertyName.substring(1);

-		Method method;

-		try {

-			method = SWTObservables.class.getMethod(getterName,

-					CONTROL_ARGUMENT_TYPES);

-			if (method == null) {

-				for (Method element : SWTObservables.class.getMethods()) {

-					if (element.getParameterTypes().length != 0) {

-						continue;

-					}

-					if (element.getName().equalsIgnoreCase(getterName)) {

-						return true;

-					}

-				}

-			}

-		} catch (Exception e) {

-			throw new XWTException(e);

-		}

-		IMetaclass mateclass = XWT.getMetaclass(type);

-		IProperty property = mateclass.findProperty(propertyName);

-		if (property instanceof EventProperty) {

-			return true;

-		}

-		return false;

-	}

-

-	protected static IObservableValue observePropertyValue(Control control,

-			String propertyName, UpdateSourceTrigger updateSourceTrigger) {

-		if (TEXT.equalsIgnoreCase(propertyName)) {

-			if (control instanceof Text || control instanceof StyledText) {

-				int event = SWT.None;

-				switch (updateSourceTrigger) {

-				case Default:

-					event = SWT.FocusOut;

-					break;

-				case LostFocus:

-					event = SWT.FocusOut;

-					break;

-				case PropertyChanged:					

-					event = SWT.Modify;

-					break;

-				default:

-					throw new IllegalStateException("UpdateSourceTrigger of value " + updateSourceTrigger.name());

-				}

-				IObservableValue observableValue = SWTObservables.observeText(

-						control, event);

-				if (observableValue != null) {

-					return observableValue;

-				}

-			}

-			// widget button is not supported at 3.4 version.

-			if (SWT.getVersion() == 3449 && control instanceof Button) {

-				return null;

-			}

-			if (control instanceof DateTime) {

-				IObservableValue observableValue = SWTObservables.observeSelection(control);

-				if (observableValue != null) {

-					return observableValue;

-				}

-			}

-			

-			try {

-				IObservableValue observableValue = SWTObservables

-						.observeText(control);

-				if (observableValue != null) {

-					return observableValue;

-				}

-			} catch (IllegalArgumentException e) {

-				throw new XWTException(e);

-			}

-		} else {

-			if (propertyName == null) {

-				return null;

-			}

-			String getterName = "observe"

-					+ propertyName.substring(0, 1).toUpperCase()

-					+ propertyName.substring(1);

-			Method method;

-			try {

-				method = SWTObservables.class.getMethod(getterName,

-						CONTROL_ARGUMENT_TYPES);

-				if (method == null) {

-					for (Method element : SWTObservables.class.getMethods()) {

-						if (element.getParameterTypes().length != 0) {

-							continue;

-						}

-						if (element.getName().equalsIgnoreCase(getterName)) {

-							method = element;

-							break;

-						}

-					}

-				}

-				if (method != null) {

-					IObservableValue observableValue = (IObservableValue) method

-							.invoke(null, control);

-					if (observableValue != null) {

-						return observableValue;

-					}

-				}

-			} catch (Exception e) {

-				throw new XWTException(e);

-			}

-		}

-		IMetaclass mateclass = XWT.getMetaclass(control);

-		IProperty property = mateclass.findProperty(propertyName);

-		if (property instanceof EventProperty) {

-			return new EventPropertyObservableValue(control,

-					(EventProperty) property);

-		}

-		return null;

-	}

-

-	protected static boolean isViewerValueProperty(Class<?> viewerType,

-			String property) {

-		String getterName = "observe" + property.substring(0, 1).toUpperCase()

-				+ property.substring(1);

-		try {

-			Method method = ViewersObservables.class.getMethod(getterName,

-					VIEWER_ARGUMENT_TYPES);

-			if (method == null) {

-				for (Method element : ViewersObservables.class.getMethods()) {

-					if (element.getParameterTypes().length != 0) {

-						continue;

-					}

-					if (element.getName().equalsIgnoreCase(getterName)) {

-						return true;

-					}

-				}

-			}

-		} catch (Exception e) {

-			throw new XWTException(e);

-		}

-		return false;

-	}

-

-	protected static IObservable observePropertyValue(Viewer viewer,

-			String property, UpdateSourceTrigger updateSourceTrigger) {

-		String getterName = "observe" + property.substring(0, 1).toUpperCase()

-				+ property.substring(1);

-		Method method;

-		try {

-			method = ViewersObservables.class.getMethod(getterName,

-					VIEWER_ARGUMENT_TYPES);

-			if (method == null) {

-				for (Method element : ViewersObservables.class.getMethods()) {

-					if (element.getParameterTypes().length != 0) {

-						continue;

-					}

-					if (element.getName().equalsIgnoreCase(getterName)) {

-						method = element;

-						break;

-					}

-				}

-			}

-			if (method != null) {

-				IObservable observableValue = (IObservable) method

-						.invoke(null, viewer);

-				if (observableValue != null) {

-					return observableValue;

-				}

-			}

-		} catch (Exception e) {

-			throw new XWTException(e);

-		}

-		return null;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/ListToArrayObservableValue.java b/org.eclipse.xwt/src/org/eclipse/xwt/databinding/ListToArrayObservableValue.java
deleted file mode 100644
index a639970..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/ListToArrayObservableValue.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-

-package org.eclipse.xwt.databinding;

-

-import java.lang.reflect.Array;

-

-import org.eclipse.core.databinding.observable.ChangeEvent;

-import org.eclipse.core.databinding.observable.Diffs;

-import org.eclipse.core.databinding.observable.DisposeEvent;

-import org.eclipse.core.databinding.observable.IChangeListener;

-import org.eclipse.core.databinding.observable.IDisposeListener;

-import org.eclipse.core.databinding.observable.list.IObservableList;

-import org.eclipse.core.databinding.observable.value.AbstractObservableValue;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-

-/**

- * Manage the Array to List and then update from List to Array 

- * 

- * @author yyang

- */

-public class ListToArrayObservableValue extends AbstractObservableValue {

-	protected IObservableList source;

-	protected IObservableValue target;

-	protected Object valueType;

-	protected Object cacheData;

-

-	public ListToArrayObservableValue(IObservableList source,

-			IObservableValue target) {

-		super(source.getRealm());

-		this.source = source;

-		this.target = target;

-

-		source.addChangeListener(new IChangeListener() {

-			public void handleChange(ChangeEvent event) {

-				ListToArrayObservableValue.this.handleChange();

-			}

-		});

-

-		source.addDisposeListener(new IDisposeListener() {

-			public void handleDispose(DisposeEvent event) {

-				ListToArrayObservableValue.this.dispose();

-			}

-		});

-	}

-

-	protected Object doGetValue() {

-		return source;

-	}

-

-	protected void doSetValue(Object value) {

-		super.doSetValue(value);

-	}

-

-	public Object getValueType() {

-		return source.getElementType();

-	}

-

-	@Override

-	public synchronized void dispose() {

-		super.dispose();

-		source.dispose();

-		target.dispose();

-		source = null;

-		target = null;

-	}

-

-	protected void handleChange() {

-		try {

-			Object elements = Array.newInstance((Class<?>) getValueType(),

-					source.size());

-			Object[] objects = source.toArray((Object[]) elements);

-			if (cacheData == null) {

-				cacheData = target.getValue();

-			}

-			target.setValue(objects);

-			fireValueChange(Diffs.createValueDiff(cacheData, objects));

-			cacheData = objects;

-		} catch (NegativeArraySizeException e) {

-			e.printStackTrace();

-		}

-	}

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/TypedViewerObservableValueDecorator.java b/org.eclipse.xwt/src/org/eclipse/xwt/databinding/TypedViewerObservableValueDecorator.java
deleted file mode 100644
index 0535276..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/TypedViewerObservableValueDecorator.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.databinding;

-

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.jface.internal.databinding.viewers.ViewerObservableValueDecorator;

-import org.eclipse.jface.viewers.Viewer;

-

-public class TypedViewerObservableValueDecorator extends

-		ViewerObservableValueDecorator {

-	protected Object elementType;

-

-	public TypedViewerObservableValueDecorator(IObservableValue decorated,

-			Viewer viewer) {

-		super(decorated, viewer);

-	}

-

-	public Object getElementType() {

-		return elementType;

-	}

-

-	public void setElementType(Object elementType) {

-		this.elementType = elementType;

-	}

-

-	@Override

-	public boolean equals(Object obj) {

-		if (!(obj instanceof TypedViewerObservableValueDecorator)) {

-			return false;

-		}

-		TypedViewerObservableValueDecorator decorator = (TypedViewerObservableValueDecorator) obj;

-		if (elementType != null) {

-			if (!elementType.equals(decorator.elementType)) {

-				return false;

-			}

-		} else if (decorator.elementType != null) {

-			return false;

-		}

-		return super.equals(obj);

-	}

-	

-	@Override

-	public int hashCode() {

-		if (elementType == null) {

-			return super.hashCode();			

-		}

-		return elementType.hashCode() * super.hashCode();

-	}

-	

-	@Override

-	public Object getValueType() {

-		Object elementType = getElementType();

-		if (elementType != null) {

-			return elementType;

-		}

-		return super.getValueType();

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/XWTObservableValue.java b/org.eclipse.xwt/src/org/eclipse/xwt/databinding/XWTObservableValue.java
deleted file mode 100644
index b8103c2..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/databinding/XWTObservableValue.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.databinding;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.core.databinding.observable.Diffs;

-import org.eclipse.core.databinding.observable.IObserving;

-import org.eclipse.core.databinding.observable.value.AbstractObservableValue;

-import org.eclipse.core.databinding.observable.value.ValueDiff;

-import org.eclipse.jface.util.Util;

-import org.eclipse.xwt.XWT;

-

-/**

- * Notes: Binding type is java.lang.String.

- * 

- * @author jliu (jin.liu@soyatec.com)

- */

-public abstract class XWTObservableValue extends AbstractObservableValue implements IObserving {

-

-	private Object observed;

-	private Class<?> valueType;

-

-	private EventManager eventManager;

-	private EventListener eventListener;

-	private String path;

-

-	private boolean updating = false;

-

-	/**

-	 * 

-	 */

-	public XWTObservableValue(Class<?> valueType, Object observed, String path) {

-		super(XWT.getRealm());

-		this.valueType = valueType;

-		this.observed = observed;

-		this.path = path;

-		init();

-	}

-

-	/**

-	 * Add listener to observed.

-	 */

-	private void init() {

-		if (eventListener == null) {

-			eventListener = new EventListener() {

-				public void handleEvent(Event evt) {

-					if (!updating) {

-						final ValueDiff diff = Diffs.createValueDiff(evt.getOldValue(), evt.getNewValue());

-						getRealm().exec(new Runnable() {

-							public void run() {

-								fireValueChange(diff);

-							}

-						});

-					}

-				}

-			};

-		}

-		eventManager = EventManager.getEventManager(observed, getRealm());

-		eventManager.addEventListener(path, eventListener);

-	}

-

-	/**

-	 * @return the observed

-	 */

-	public Object getObserved() {

-		return observed;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.observable.value.AbstractObservableValue#doSetValue(java.lang.Object)

-	 */

-	protected void doSetValue(Object value) {

-		updating = true;

-		Object oldValue = doGetValue();

-		value = convert(oldValue == null ? null : oldValue.getClass(), value);

-		if (!Util.equals(oldValue, value)) {

-			doSetApprovedValue(value);

-			fireValueChange(Diffs.createValueDiff(oldValue, value));

-			eventManager.dispatchEvent(new Event(observed, oldValue, value, getPath()));

-		}

-		updating = false;

-	}

-

-	/**

-	 * @param value

-	 * @return

-	 */

-	protected Object convert(Class type, Object value) {

-		if (value != null) {

-			if (type != null && type.isEnum() && value instanceof String) {

-				return Enum.valueOf(type, (String) value);

-			}

-			IConverter c = XWT.findConvertor(value.getClass(), (Class<?>) getValueType());

-			if (c != null) {

-				return c.convert(value);

-			}

-		}

-		return value;

-	}

-

-	/**

-	 * @param value

-	 */

-	protected abstract void doSetApprovedValue(Object value);

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.observable.value.AbstractObservableValue#doGetValue()

-	 */

-	protected Object doGetValue() {

-		return observed;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.core.databinding.observable.value.IObservableValue#getValueType()

-	 */

-	public Class<?> getValueType() {

-		return valueType;

-	}

-

-	public String getPath() {

-		return path;

-	}

-

-	public void setPath(String path) {

-		this.path = path;

-	}

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/dataproviders/AbstractDataProvider.java b/org.eclipse.xwt/src/org/eclipse/xwt/dataproviders/AbstractDataProvider.java
deleted file mode 100644
index 713bea5..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/dataproviders/AbstractDataProvider.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *

- * Contributors:                                                               *

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.dataproviders;

-

-import java.util.HashMap;

-import java.util.List;

-import java.util.Set;

-

-import org.eclipse.core.databinding.observable.IObservable;

-import org.eclipse.core.databinding.observable.list.IObservableList;

-import org.eclipse.core.databinding.observable.set.IObservableSet;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.core.databinding.property.value.IValueProperty;

-import org.eclipse.xwt.IDataProvider;

-import org.eclipse.xwt.core.IBinding;

-import org.eclipse.xwt.internal.core.ScopeManager;

-

-/**

- * @author jliu (jin.liu@soyatec.com)

- */

-public abstract class AbstractDataProvider implements IDataProvider {

-

-	private HashMap<String, Object> properties = new HashMap<String, Object>();

-

-	public Object getProperty(String property) {

-		return properties.get(property);

-	}

-

-	public void setProperty(String property, Object value) {

-		properties.put(property, value);

-	}

-

-	public boolean hasProperty(String property) {

-		return properties.containsKey(property);

-	}

-

-	public void removeProperty(String property) {

-		properties.remove(property);

-	}

-

-	public boolean isPropertyReadOnly(String path) {

-		return false;

-	}

-

-	public IObservable observe(Object data, String path, Object elementType,

-			int observeKind) {

-		Object type = null;

-		if (elementType == null) {

-			type = getModelService().toModelType(data);

-		} else {

-			type = elementType;

-		}

-		Object propertyType = getModelService().toModelPropertyType(type, path);

-		Class<?> propertyTypeClass = null;

-

-		if (propertyType instanceof Class<?>) {

-			propertyTypeClass = (Class<?>) propertyType;

-			if (IBinding.class.isAssignableFrom(propertyTypeClass)) {

-				return null;

-			}

-		}

-

-		switch (observeKind) {

-		case ScopeManager.AUTO:

-			if (propertyTypeClass != null

-					&& (propertyTypeClass.isArray() || List.class

-							.isAssignableFrom(propertyTypeClass))) {

-				if (data instanceof IObservableValue) {

-					IObservableValue observable = (IObservableValue) data;

-					return observeDetailList(observable, type, path,

-							propertyType);

-				}

-				return observeList(data, path);

-			} else if (propertyTypeClass != null

-					&& (Set.class.isAssignableFrom(propertyTypeClass))) {

-				if (data instanceof IObservableValue) {

-					IObservableValue observable = (IObservableValue) data;

-					return observeDetailSet(observable, type, path,

-							propertyType);

-				}

-				return observeSet(data, path);

-			} else {

-				if (data instanceof IObservableValue) {

-					IObservableValue observable = (IObservableValue) data;

-					return observeDetailValue(observable, type, path,

-							propertyType);

-				}

-				return observeValue(data, path);

-			}

-		case ScopeManager.VALUE:

-			if (data instanceof IObservableValue) {

-				IObservableValue observable = (IObservableValue) data;

-				return observeDetailValue(observable, type, path, propertyType);

-			}

-			return observeValue(data, path);

-		case ScopeManager.COLLECTION:

-			if (propertyTypeClass != null

-					&& Set.class.isAssignableFrom(propertyTypeClass)) {

-				if (data instanceof IObservableValue) {

-					IObservableValue observable = (IObservableValue) data;

-					return observeDetailSet(observable, type, path,

-							propertyType);

-				}

-				return observeSet(data, path);

-			}

-			if (data instanceof IObservableValue) {

-				IObservableValue observable = (IObservableValue) data;

-				return observeDetailList(observable, type, path, propertyType);

-			}

-			return observeList(data, path);

-		case ScopeManager.SET:

-			if (data instanceof IObservableValue) {

-				IObservableValue observable = (IObservableValue) data;

-				return observeDetailSet(observable, type, path, propertyType);

-			}

-			return observeSet(data, path);

-		case ScopeManager.LIST:

-			if (data instanceof IObservableValue) {

-				IObservableValue observable = (IObservableValue) data;

-				return observeDetailList(observable, type, path, propertyType);

-			}

-			return observeList(data, path);

-		}

-		return null;

-	}

-

-	protected abstract IObservableValue observeValue(Object bean,

-			String propertyName);

-

-	protected IObservableList observeList(Object bean, String propertyName) {

-		return null;

-	}

-

-	protected IObservableSet observeSet(Object bean, String propertyName) {

-		return null;

-	}

-

-	protected IObservableList observeDetailList(IObservableValue bean,

-			Object elementType, String propertyName, Object propertyType) {

-		return null;

-	}

-

-	protected IObservableSet observeDetailSet(IObservableValue bean,

-			Object elementType, String propertyName, Object propertyType) {

-		return null;

-	}

-

-	protected abstract IObservableValue observeDetailValue(

-			IObservableValue bean, Object elementType, String propertyName,

-			Object propertyType);

-

-	// TODO to remove

-	public IValueProperty createValueProperty(Object type, String fullPath) {

-		throw new UnsupportedOperationException("to remove this method");

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/dataproviders/IObjectDataProvider.java b/org.eclipse.xwt/src/org/eclipse/xwt/dataproviders/IObjectDataProvider.java
deleted file mode 100644
index 348e6d8..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/dataproviders/IObjectDataProvider.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.dataproviders;

-

-import java.util.List;

-

-import org.eclipse.xwt.IDataProvider;

-

-/**

- * @author jliu (jin.liu@soyatec.com)

- */

-public interface IObjectDataProvider extends IDataProvider {

-

-	void setObjectType(Class<?> objectType);

-

-	Class<?> getObjectType();

-

-	void setObjectInstance(Object objectInstance);

-

-	Object getObjectInstance();

-

-	void setMethodName(String methodName);

-

-	String getMethodName();

-

-	List<Object> getMethodParameters();

-

-	void setMethodParameters(List<Object> parameters);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/dataproviders/ObjectDataProvider.java b/org.eclipse.xwt/src/org/eclipse/xwt/dataproviders/ObjectDataProvider.java
deleted file mode 100644
index a7c5bf7..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/dataproviders/ObjectDataProvider.java
+++ /dev/null
@@ -1,365 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *

- * Contributors:                                                               *

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.dataproviders;

-

-import java.lang.reflect.InvocationTargetException;

-import java.lang.reflect.Method;

-import java.util.ArrayList;

-import java.util.List;

-

-import org.eclipse.core.databinding.beans.BeanProperties;

-import org.eclipse.core.databinding.beans.BeansObservables;

-import org.eclipse.core.databinding.beans.PojoObservables;

-import org.eclipse.core.databinding.beans.PojoProperties;

-import org.eclipse.core.databinding.observable.list.IObservableList;

-import org.eclipse.core.databinding.observable.set.IObservableSet;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.core.databinding.property.value.IValueProperty;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.core.IBinding;

-import org.eclipse.xwt.databinding.JFaceXWTDataBinding;

-import org.eclipse.xwt.metadata.IMetaclass;

-import org.eclipse.xwt.metadata.IProperty;

-

-/**

- * @author jliu (jin.liu@soyatec.com)

- */

-public class ObjectDataProvider extends AbstractDataProvider implements

-		IObjectDataProvider {

-	static DataModelService dataModelService = new DataModelService() {

-

-		public Object toModelType(Object object) {

-			return JFaceXWTDataBinding.toType(object);

-		}

-

-		public Object loadModelType(String className) {

-			return XWT.getLoadingContext().loadClass(className);

-		}

-

-		public Object toModelPropertyType(Object type, String propertyName) {

-			IMetaclass metaclass = XWT.getMetaclass(type);

-			IProperty property = metaclass.findProperty(propertyName);

-

-			if (property == null) {

-				throw new XWTException(" Property \"" + propertyName

-						+ "\" is not found in the class "

-						+ metaclass.getType().getName());

-			}

-			return property.getType();

-		}

-	};

-

-	private Object objectInstance;

-	private Class<?> objectType;

-

-	private String methodName;

-

-	private List<Object> methodParameters;

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.dataproviders.IObjectDataProvider#getMethodName()

-	 */

-	public String getMethodName() {

-		return methodName;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.dataproviders.IObjectDataProvider#getMethodParameters

-	 * ()

-	 */

-	public List<Object> getMethodParameters() {

-		return methodParameters;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.dataproviders.IObjectDataProvider#getObjectInstance()

-	 */

-	public Object getObjectInstance() {

-		if (objectInstance == null && objectType != null) {

-			try {

-				objectInstance = objectType.newInstance();

-			} catch (Exception e) {

-				throw new XWTException(e);

-			}

-		}

-		return objectInstance;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.dataproviders.IObjectDataProvider#getObjectType()

-	 */

-	public Class<?> getObjectType() {

-		if (objectType == null && objectInstance != null) {

-			objectType = objectInstance.getClass();

-		}

-		return objectType;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.dataproviders.IObjectDataProvider#setMethodName(java

-	 * .lang.String)

-	 */

-	public void setMethodName(String methodName) {

-		this.methodName = methodName;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.dataproviders.IObjectDataProvider#setMethodParameters

-	 * (java.util.List)

-	 */

-	public void setMethodParameters(List<Object> parameters) {

-		this.methodParameters = parameters;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.dataproviders.IObjectDataProvider#setObjectInstance

-	 * (java.lang.Object)

-	 */

-	public void setObjectInstance(Object objectImstance) {

-		this.objectInstance = objectImstance;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.dataproviders.IObjectDataProvider#setObjectType(java

-	 * .lang.Class)

-	 */

-	public void setObjectType(Class<?> objectType) {

-		this.objectType = objectType;

-	}

-

-	protected Object getTarget() {

-		Object target = getObjectInstance();

-		if (target == null) {

-			return null;

-		}

-		Class<?> targetType = getObjectType();

-		Method method = null;

-		if (methodName != null) {

-			List<Class<?>> paras = new ArrayList<Class<?>>();

-			if (methodParameters != null) {

-				for (Object p : methodParameters) {

-					paras.add(p.getClass());

-				}

-			}

-			try {

-				if (paras.isEmpty()) {

-					method = targetType.getDeclaredMethod(methodName);

-					return method.invoke(target);

-				} else {

-					method = targetType.getDeclaredMethod(methodName, paras

-							.toArray(new Class<?>[paras.size()]));

-					return method.invoke(target, methodParameters

-							.toArray(new Object[methodParameters.size()]));

-				}

-			} catch (SecurityException e) {

-			} catch (IllegalArgumentException e) {

-			} catch (NoSuchMethodException e) {

-			} catch (IllegalAccessException e) {

-			} catch (InvocationTargetException e) {

-			}

-		}

-		return target;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.dataproviders.IDataProvider#getData(java.lang.String)

-	 */

-	public Object getData(String path) {

-		if (path == null) {

-			return getTarget();

-		}

-		return getData(getTarget(), path);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.dataproviders.IDataProvider#getData(java.lang.String)

-	 */

-	public Object getData(Object object, String path) {

-		if (object instanceof IObservableValue) {

-			object = ((IObservableValue) object).getValue();

-		}

-		if (path == null || path.trim().length() == 0 || path.equals(".")) {

-			return JFaceXWTDataBinding.getValue(object, null);

-		}

-		int index = path.indexOf(".");

-		while (index != -1 && object != null) {

-			object = JFaceXWTDataBinding.getValue(object, path.substring(0,

-					index));

-			path = path.substring(index + 1);

-			index = path.indexOf(".");

-		}

-		return JFaceXWTDataBinding.getValue(object, path);

-	}

-

-	public void setData(Object object, String path, Object value) {

-		if (object instanceof IObservableValue) {

-			object = ((IObservableValue) object).getValue();

-		}

-		int index = path.indexOf(".");

-		while (index != -1 && object != null) {

-			object = JFaceXWTDataBinding.getValue(object, path.substring(0,

-					index));

-			path = path.substring(index + 1);

-			index = path.indexOf(".");

-		}

-		JFaceXWTDataBinding.setValue(object, path, value);

-	}

-

-	public void setData(String path, Object value) {

-		setData(getTarget(), path, value);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.dataproviders.IDataProvider#getDataType(java.lang.

-	 * String)

-	 */

-	public Class<?> getDataType(String path) {

-		Object target = getTarget();

-		if (target == null) {

-			return null;

-		}

-		Class<?> type = JFaceXWTDataBinding.toType(target);

-		if (path == null) {

-			return type;

-		}

-		return JFaceXWTDataBinding.getValueType(type, path);

-	}

-

-	/**

-	 * check if the property is read only

-	 * 

-	 * @param path

-	 * @return

-	 */

-	public boolean isPropertyReadOnly(String path) {

-		Object target = getTarget();

-		if (target == null || path == null) {

-			return true;

-		}

-		if (target instanceof IBinding) {

-			target = ((IBinding) target).getValue(null);

-		}

-		Class<?> type = JFaceXWTDataBinding.toType(target);

-		int index = path.indexOf(".");

-		while (index != -1 && target != null) {

-			type = JFaceXWTDataBinding.getValueType(type, path.substring(0,

-					index));

-			path = path.substring(index + 1);

-			index = path.indexOf(".");

-		}

-		return JFaceXWTDataBinding.isPropertyReadOnly(type, path);

-	}

-

-	@Override

-	protected IObservableValue observeValue(Object bean, String propertyName) {

-		if (JFaceXWTDataBinding.isBeanSupport(bean)) {

-			return BeansObservables.observeValue(XWT.getRealm(), bean,

-					propertyName);

-		}

-		return PojoObservables.observeValue(XWT.getRealm(), bean, propertyName);

-	}

-

-	protected IObservableList observeList(Object bean, String propertyName) {

-		if (JFaceXWTDataBinding.isBeanSupport(bean)) {

-			return BeansObservables.observeList(XWT.getRealm(), bean,

-					propertyName);

-		}

-		return PojoObservables.observeList(XWT.getRealm(), bean, propertyName);

-	}

-

-	protected IObservableSet observeSet(Object bean, String propertyName) {

-		if (JFaceXWTDataBinding.isBeanSupport(bean)) {

-			return BeansObservables.observeSet(XWT.getRealm(), bean,

-					propertyName);

-		}

-		return PojoObservables.observeSet(XWT.getRealm(), bean, propertyName);

-	}

-

-	protected IObservableList observeDetailList(IObservableValue bean,

-			Object elementType, String propertyName, Object propertyType) {

-		if (JFaceXWTDataBinding.isBeanSupport(bean)) {

-			return BeansObservables.observeDetailList(bean, propertyName,

-					(Class<?>) propertyType);

-		}

-		return PojoObservables.observeDetailList(bean, propertyName,

-				(Class<?>) propertyType);

-	}

-

-	protected IObservableSet observeDetailSet(IObservableValue bean,

-			Object elementType, String propertyName, Object propertyType) {

-		if (JFaceXWTDataBinding.isBeanSupport(bean)) {

-			return BeansObservables.observeDetailSet(bean, propertyName,

-					(Class<?>) propertyType);

-		}

-		return PojoObservables.observeDetailSet(bean, propertyName,

-				(Class<?>) propertyType);

-	}

-

-	@Override

-	protected IObservableValue observeDetailValue(IObservableValue master,

-			Object elementType, String propertyName, Object propertyType) {

-		Class<?> beanClass = (Class<?>) elementType;

-		if (beanClass == null && master.getValueType() instanceof Class<?>) {

-			beanClass = (Class<?>) master.getValueType();

-		}

-		if (JFaceXWTDataBinding.isBeanSupport(beanClass)) {

-			return BeanProperties.value(beanClass, propertyName,

-					(Class<?>) propertyType).observeDetail(master);

-		}

-		return PojoProperties.value(beanClass, propertyName,

-				(Class<?>) propertyType).observeDetail(master);

-	}

-

-	public IValueProperty createValueProperty(Object type, String propertyName) {

-		if (JFaceXWTDataBinding.isBeanSupport(type)) {

-			return BeanProperties.value(JFaceXWTDataBinding.toType(type),

-					propertyName);

-		}

-		return PojoProperties.value(JFaceXWTDataBinding.toType(type),

-				propertyName);

-	}

-

-	public DataModelService getModelService() {

-		return dataModelService;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/graphics/Color.java b/org.eclipse.xwt/src/org/eclipse/xwt/graphics/Color.java
deleted file mode 100644
index 7923674..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/graphics/Color.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.graphics;

-

-/**

- * Color consists of four elements: alpha, blue, green and red. 

- * 

- * @author yyang

- */

-public class Color {

-

-	private int alaha = 0xFF;

-	private int blue;

-	private int green;

-	private int red;

-	private org.eclipse.swt.graphics.Color swtColor;

-

-	public Color() {

-	}

-	

-	public Color(org.eclipse.swt.graphics.Color swtColor) {

-		setValue(swtColor);

-	}

-	

-	public int getBlue() {

-		return blue;

-	}

-

-	public void setBlue(int blue) {

-		this.blue = blue;

-	}

-

-	public int getGreen() {

-		return green;

-	}

-

-	public void setGreen(int green) {

-		this.green = green;

-	}

-

-	public int getRed() {

-		return red;

-	}

-

-	public void setRed(int red) {

-		this.red = red;

-	}

-

-	public int getAlpha() {

-		return alaha;

-	}

-

-	public void setAlaha(int alaha) {

-		this.alaha = alaha;

-	}

-	

-	public org.eclipse.swt.graphics.Color toSWTColor() {

-		if (swtColor == null) {

-			swtColor = new org.eclipse.swt.graphics.Color(null, red, green, blue);

-		}

-		return swtColor;

-	}

-	

-	public void setValue(org.eclipse.swt.graphics.Color swtColor) {

-		this.swtColor = swtColor;

-		this.blue = swtColor.getBlue();

-		this.red = swtColor.getRed();

-		this.green = swtColor.getGreen();

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/graphics/Point.java b/org.eclipse.xwt/src/org/eclipse/xwt/graphics/Point.java
deleted file mode 100644
index a178ac1..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/graphics/Point.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.graphics;

-

-/**

- * Color consists of four elements: alpha, blue, green and red.

- * 

- * @author yyang

- */

-public class Point {

-	public static final Point[] EMPTY_ARRAY = new Point[]{}; 

-	private double x;

-	private double y;	

-

-	public Point() {

-	}

-

-	public Point(double x, double y) {

-		setX(x);

-		setY(y);

-	}

-

-	public double getX() {

-		return x;

-	}

-

-	public void setX(double x) {

-		this.x = x;

-	}

-

-	public double getY() {

-		return y;

-	}

-

-	public void setY(double y) {

-		this.y = y;

-	}

-	

-	@Override

-	public boolean equals(Object obj) {

-		if (!(obj instanceof Point)) {

-			return false;

-		}

-		Point point = (Point) obj;

-		return x == point.getX() && y == point.getY();

-	}

-	

-	@Override

-	public String toString() {

-		return "(" + x + ", " + y + ")";

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/graphics/Rect.java b/org.eclipse.xwt/src/org/eclipse/xwt/graphics/Rect.java
deleted file mode 100644
index 1dffbfd..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/graphics/Rect.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.graphics;

-

-import org.eclipse.swt.graphics.Rectangle;

-

-/**

- * Color consists of four elements: alpha, blue, green and red.

- * 

- * @author yyang

- */

-public class Rect {

-	private double x;

-	private double y;

-	private double width;

-	private double height;

-

-	public Rect() {

-	}

-

-	public Rect(double x, double y, double width, double height) {

-		setX(x);

-		setY(y);

-		setWidth(width);

-		setHeight(height);

-	}

-

-	public Rect(Rectangle rectangle) {

-		setX(rectangle.x);

-		setY(rectangle.y);

-		setWidth(rectangle.width);

-		setHeight(rectangle.height);

-	}

-

-	public double getWidth() {

-		return width;

-	}

-

-	public void setWidth(double width) {

-		this.width = width;

-	}

-

-	public double getHeight() {

-		return height;

-	}

-

-	public void setHeight(double height) {

-		this.height = height;

-	}

-

-	public double getX() {

-		return x;

-	}

-

-	public void setX(double x) {

-		this.x = x;

-	}

-

-	public double getY() {

-		return y;

-	}

-

-	public void setY(double y) {

-		this.y = y;

-	}

-

-	@Override

-	public boolean equals(Object obj) {

-		if (!(obj instanceof Rect)) {

-			return false;

-		}

-		Rect rect = (Rect) obj;

-		return x == rect.getX() && y == rect.getY() && width == rect.getWidth()

-				&& height == rect.getHeight();

-	}

-

-	@Override

-	public String toString() {

-		return "(" + x + ", " + y + ", " + width + ", " + height + ")";

-	}

-

-	/**

-	 * Returns <code>true</code> if the point specified by the arguments is

-	 * inside the area specified by the receiver, and <code>false</code>

-	 * otherwise.

-	 * 

-	 * @param x

-	 *            the x coordinate of the point to test for containment

-	 * @param y

-	 *            the y coordinate of the point to test for containment

-	 * @return <code>true</code> if the rectangle contains the point and

-	 *         <code>false</code> otherwise

-	 */

-	public boolean contains(double x, double y) {

-		return (x >= this.x) && (y >= this.y) && x < (this.x + width)

-				&& y < (this.y + height);

-	}

-

-	/**

-	 * Returns <code>true</code> if the given point is inside the area specified

-	 * by the receiver, and <code>false</code> otherwise.

-	 * 

-	 * @param pt

-	 *            the point to test for containment

-	 * @return <code>true</code> if the rectangle contains the point and

-	 *         <code>false</code> otherwise

-	 * 

-	 * @exception IllegalArgumentException

-	 *                <ul>

-	 *                <li>ERROR_NULL_ARGUMENT - if the argument is null</li>

-	 *                </ul>

-	 */

-	public boolean contains(Point pt) {

-		return contains(pt.getX(), pt.getY());

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/input/CanExecuteChangedListener.java b/org.eclipse.xwt/src/org/eclipse/xwt/input/CanExecuteChangedListener.java
deleted file mode 100644
index a40ffc4..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/input/CanExecuteChangedListener.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.input;

-

-import java.beans.PropertyChangeListener;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public interface CanExecuteChangedListener extends PropertyChangeListener {

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/input/CommandBinding.java b/org.eclipse.xwt/src/org/eclipse/xwt/input/CommandBinding.java
deleted file mode 100644
index e65fd92..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/input/CommandBinding.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.input;

-

-import java.beans.PropertyChangeEvent;

-import java.beans.PropertyChangeSupport;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class CommandBinding {

-	protected PropertyChangeSupport canExecuteSupport = new PropertyChangeSupport(this);

-	protected PropertyChangeSupport executeSupport = new PropertyChangeSupport(this);

-

-	protected ICommand command;

-

-	public ICommand getCommand() {

-		return command;

-	}

-

-	public CommandBinding() {

-	}

-

-	public CommandBinding(ICommand command) {

-		this.command = command;

-	}

-

-	public void setCommand(ICommand command) {

-		this.command = command;

-	}

-

-	public void addCanExecuteChangedListener(CanExecuteChangedListener listener) {

-		canExecuteSupport.addPropertyChangeListener(listener);

-	}

-

-	public void removeCanExecuteChangedListener(CanExecuteChangedListener listener) {

-		canExecuteSupport.removePropertyChangeListener(listener);

-	}

-

-	public void fireCanExecuteChangedListener(PropertyChangeEvent args) {

-		canExecuteSupport.firePropertyChange(args);

-	}

-

-	public void addExecuteChangedListener(CanExecuteChangedListener listener) {

-		canExecuteSupport.addPropertyChangeListener(listener);

-	}

-

-	public void removeExecuteChangedListener(CanExecuteChangedListener listener) {

-		canExecuteSupport.removePropertyChangeListener(listener);

-	}

-

-	public void fireExecuteChangedListener(PropertyChangeEvent args) {

-		canExecuteSupport.firePropertyChange(args);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/input/ICommand.java b/org.eclipse.xwt/src/org/eclipse/xwt/input/ICommand.java
deleted file mode 100644
index 42671c1..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/input/ICommand.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.input;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public interface ICommand {

-	boolean canExecute();

-

-	void execute(Object parameter);

-

-	void addCanExecuteChangedListener(CanExecuteChangedListener listener);

-

-	void removeCanExecuteChangedListener(CanExecuteChangedListener listener);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/input/InputBinding.java b/org.eclipse.xwt/src/org/eclipse/xwt/input/InputBinding.java
deleted file mode 100644
index fbf8ee4..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/input/InputBinding.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.input;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class InputBinding {

-	protected KeyGesture gesture;

-	protected Object commandTarget;

-	protected Object commandParameter;

-	protected ICommand command;

-

-	public Object getCommandTarget() {

-		return commandTarget;

-	}

-

-	public void setCommandTarget(Object commandTarget) {

-		this.commandTarget = commandTarget;

-	}

-

-	public Object getCommandParameter() {

-		return commandParameter;

-	}

-

-	public void setCommandParameter(Object commandParameter) {

-		this.commandParameter = commandParameter;

-	}

-

-	public ICommand getCommand() {

-		return command;

-	}

-

-	public void setCommand(ICommand command) {

-		this.command = command;

-	}

-

-	public KeyGesture getGesture() {

-		return gesture;

-	}

-

-	public void setGesture(KeyGesture gesture) {

-		this.gesture = gesture;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/input/KeyBinding.java b/org.eclipse.xwt/src/org/eclipse/xwt/input/KeyBinding.java
deleted file mode 100644
index 9b6fc9e..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/input/KeyBinding.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.input;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class KeyBinding extends InputBinding {

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/input/KeyGesture.java b/org.eclipse.xwt/src/org/eclipse/xwt/input/KeyGesture.java
deleted file mode 100644
index a8e56cd..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/input/KeyGesture.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.input;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class KeyGesture {

-	protected String key;

-	protected String displayString;

-	protected ModifierKeys modifiers;

-

-	public String getKey() {

-		return key;

-	}

-

-	public void setKey(String key) {

-		this.key = key;

-	}

-

-	public String getDisplayString() {

-		return displayString;

-	}

-

-	public void setDisplayString(String displayString) {

-		this.displayString = displayString;

-	}

-

-	public ModifierKeys getModifiers() {

-		return modifiers;

-	}

-

-	public void setModifiers(ModifierKeys modifiers) {

-		this.modifiers = modifiers;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/input/ModifierKeys.java b/org.eclipse.xwt/src/org/eclipse/xwt/input/ModifierKeys.java
deleted file mode 100644
index bbe668e..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/input/ModifierKeys.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.input;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public enum ModifierKeys {

-	None, Alt, Control, Shift, Windows;

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/input/MouseAction.java b/org.eclipse.xwt/src/org/eclipse/xwt/input/MouseAction.java
deleted file mode 100644
index 6918c5c..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/input/MouseAction.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.input;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public enum MouseAction {

-	None, LeftClick, RightClick, MiddleClick, WheelClick, LeftDoubleClick, RightDoubleClick, MiddleDoubleClick;

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/input/RoutedCommand.java b/org.eclipse.xwt/src/org/eclipse/xwt/input/RoutedCommand.java
deleted file mode 100644
index 714bb50..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/input/RoutedCommand.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.input;

-

-import java.beans.PropertyChangeEvent;

-import java.beans.PropertyChangeSupport;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class RoutedCommand implements ICommand {

-	protected PropertyChangeSupport canExecuteSupport = new PropertyChangeSupport(this);

-

-	public boolean canExecute() {

-		return true;

-	}

-

-	public void execute(Object parameter) {

-	}

-

-	public void addCanExecuteChangedListener(CanExecuteChangedListener listener) {

-		canExecuteSupport.addPropertyChangeListener(listener);

-	}

-

-	public void removeCanExecuteChangedListener(CanExecuteChangedListener listener) {

-		canExecuteSupport.removePropertyChangeListener(listener);

-	}

-

-	public void fireCanExecuteChangedListener(PropertyChangeEvent args) {

-		canExecuteSupport.firePropertyChange(args);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/Activator.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/Activator.java
deleted file mode 100644
index 2171583..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/Activator.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package org.eclipse.xwt.internal;

-

-import org.eclipse.xwt.IXWTInitializer;

-import org.eclipse.xwt.IXWTLoader;

-import org.eclipse.xwt.XWT;

-import org.osgi.framework.BundleActivator;

-import org.osgi.framework.BundleContext;

-

-public class Activator implements BundleActivator, IXWTInitializer {

-

-	private boolean initialized;

-

-	public void start(BundleContext context) throws Exception {

-		initialized = false;

-		XWT.addInitializer(this);

-		XWT.runOnUIThread(new Runnable() {

-			public void run() {

-			}

-		});

-	}

-

-	public void initialize(IXWTLoader loader) {

-		initialized = true;		

-	}

-

-	public void stop(BundleContext context) throws Exception {

-	}

-	

-	public boolean isInitialized() {

-		return initialized;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/Binding.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/Binding.java
deleted file mode 100644
index 7bd01a9..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/Binding.java
+++ /dev/null
@@ -1,314 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.internal.core;

-

-import org.eclipse.core.databinding.observable.IObservable;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.jface.viewers.Viewer;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Widget;

-import org.eclipse.xwt.IDataProvider;

-import org.eclipse.xwt.IValidationRule;

-import org.eclipse.xwt.IValueConverter;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.core.IBinding;

-import org.eclipse.xwt.core.IDynamicBinding;

-import org.eclipse.xwt.databinding.ControlDataBinding;

-import org.eclipse.xwt.databinding.DataBinding;

-import org.eclipse.xwt.internal.utils.UserData;

-

-/**

- * Generic Binding definition

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class Binding extends DynamicBinding {

-	public static Binding[] EMPTY_ARRAY = new Binding[0];

-

-	private String path;

-

-	private Object source;

-

-	private String elementName;

-	private IValueConverter converter;

-

-	private IValidationRule[] validationRules = IValidationRule.EMPTY_ARRAY;

-

-	private IObservable observableSource;

-

-	public Binding() {

-		super();

-	}

-

-	/**

-	 * <p>

-	 * Default

-	 * </p>

-	 * 

-	 */

-	private UpdateSourceTrigger updateSourceTrigger = UpdateSourceTrigger.Default;

-

-	private BindingExpressionPath pathSegments;

-

-	public BindingExpressionPath getPathPropertySegments() {

-		if (pathSegments == null) {

-			pathSegments = new BindingExpressionPath(getPath());

-		}

-		return pathSegments;

-	}

-

-	public UpdateSourceTrigger getUpdateSourceTrigger() {

-		return updateSourceTrigger;

-	}

-

-	public void setUpdateSourceTrigger(UpdateSourceTrigger updateSourceTrigger) {

-		this.updateSourceTrigger = updateSourceTrigger;

-	}

-

-	public IValueConverter getConverter() {

-		return converter;

-	}

-

-	public void setConverter(IValueConverter converter) {

-		this.converter = converter;

-	}

-

-	public String getPath() {

-		return path;

-	}

-

-	public Object getSource() {

-		return source;

-	}

-

-	public void setSource(Object source) {

-		this.source = source;

-		if (this.source instanceof IObservable) {

-			this.observableSource = (IObservable) this.source;

-		}

-	}

-

-	public void setPath(String path) {

-		this.path = path;

-	}

-

-	public String getElementName() {

-		return elementName;

-	}

-

-	public void setElementName(String elementName) {

-		this.elementName = elementName;

-	}

-

-	protected Object getSourceObject() {

-		if (source != null) {

-			return source;

-		} else if (elementName != null) {

-			return XWT.findElementByName(getControl(), elementName);

-		}

-		return null;

-	}

-

-	protected boolean isSelfBinding(Object data) {

-		if (data != this) {

-			return false;

-		}

-		Binding binding = (Binding) data;

-		return BindingExpressionPath.isEmptyPath(binding.getPath());

-	}

-

-	public Object createBoundSource() {

-		Object control = getControl();

-		Object source = getSourceObject();

-		if (source == null) {

-			source = XWT.getDataContext(control, IDynamicBinding.class);

-			Object localDataContext = UserData.getLocalDataContext(control);

-			if (localDataContext == this) {

-				return source;

-			}

-		}

-		if (source instanceof IDynamicBinding) {

-			Object value = ((IDynamicBinding) source).createBoundSource();

-			if (value != null && path != null) {

-				Widget widget = UserData.getWidget(value);

-				if (widget == null) {

-					widget = UserData.getWidget(control);

-				}

-				return ScopeManager.observeValue(widget, value,

-						getPathPropertySegments(), getUpdateSourceTrigger());

-			}

-		}

-		if (source != null && !BindingExpressionPath.isEmptyPath(path)) {

-			Widget widget = UserData.getWidget(source);

-			if (widget == null) {

-				widget = UserData.getWidget(control);

-			}

-			return ScopeManager.observeValue(widget, source,

-					getPathPropertySegments(), getUpdateSourceTrigger());

-		}

-		return source;

-	}

-

-	public boolean isSourceControl() {

-		Object source = getSourceObject();

-		if (source == null) {

-			Object dataContextHost = getDataContextHost();

-			if (dataContextHost != null) {

-				source = UserData.getLocalDataContext(dataContextHost);

-			}

-		}

-

-		if (source instanceof IDynamicBinding) {

-			return ((IDynamicBinding) source).isSourceControl();

-		}

-		if (source instanceof IBinding) {

-			source = ((IBinding) source).getValue(null);

-		}

-

-		if (path == null) {

-			return false;

-		}

-

-		int index = BindingExpressionPath.lastIndexOf(path);

-		if (index == -1) {

-			return (source instanceof Control || source instanceof Viewer);

-		}

-

-		if (source instanceof IDataProvider) {

-			return false;

-		}

-		String parentPath = path.substring(0, index);

-		IObservable observable = ScopeManager.observeValue(getControl(),

-				source, parentPath, getUpdateSourceTrigger());

-		if (observable != null) {

-			IObservableValue observableValue = (IObservableValue) observable;

-			Object type = observableValue.getValueType();

-			if (type != null) {

-				return UserData.isUIElementType(type);

-			}

-		}

-		return false;

-	}

-

-	public Object getValue(Class<?> targetType) {

-		Object dataContext = getSourceObject();

-		if (dataContext == null) {

-			Object dataContextHost = getDataContextHost();

-			if (dataContextHost != null) {

-				dataContext = UserData.getLocalDataContext(dataContextHost);

-				if (dataContext instanceof IDynamicBinding) {

-					IDynamicBinding dynamicBinding = (IDynamicBinding) dataContext;

-					Object boundSource = dynamicBinding.createBoundSource();

-					if (boundSource != null) {

-						dataContext = boundSource;

-					}

-				}

-			}

-		}

-

-		// direct binding

-		if (dataContext instanceof IBinding) {

-			dataContext = ((IBinding) dataContext).getValue(null);

-		}

-

-		IDataProvider dataProvider = getDataProvider(dataContext);

-

-		try {

-			if (isSourceControl()) {

-				ControlDataBinding controlDataBinding = new ControlDataBinding(

-						dataContext, this, dataProvider);

-				return controlDataBinding.getValue(targetType);

-			}

-		} catch (XWTException e) {

-			// in case the property cannot be bound. return value

-		}

-

-		DataBinding dataBinding = null;

-		if (dataProvider != null

-				&& (path != null || dataContext instanceof IObservable)) {

-			dataBinding = new DataBinding(this, dataProvider);

-		}

-		if (dataBinding != null) {

-			return dataBinding.getValue(targetType);

-		}

-		return convertedValue(dataContext);

-	}

-

-	private Object convertedValue(Object value) {

-		IValueConverter converter = getConverter();

-		if (converter != null) {

-			value = converter.convert(value);

-		}

-		return value;

-	}

-

-	public boolean isSourcePropertyReadOnly() {

-		IDataProvider dataProvider = getDataProvider();

-		try {

-			return ScopeManager.isPropertyReadOnly(dataProvider,

-					getPathPropertySegments());

-		} catch (XWTException e) {

-		}

-		return false;

-	}

-

-	public IObservable getObservableSource() {

-		return observableSource;

-	}

-

-	public void setObservableSource(IObservable observableSource) {

-		this.observableSource = observableSource;

-	}

-

-	/**

-	 * Returns the validationRules for the binding

-	 * 

-	 * @return the array of validationRules

-	 */

-	public IValidationRule[] getValidationRules() {

-		return this.validationRules;

-	}

-

-	/**

-	 * Sets a single validationRule

-	 * 

-	 * @param validator

-	 */

-	public IValidationRule getValidationRule() {

-		if (this.validationRules != null && this.validationRules.length > 0) {

-			return this.validationRules[0];

-		}

-		return null;

-	}

-

-	/**

-	 * Set the validationRules for the binding

-	 * 

-	 * @param validators

-	 */

-	public void setValidationRules(IValidationRule[] validationRules) {

-		this.validationRules = validationRules;

-	}

-

-	/**

-	 * Sets a single validationRule

-	 * 

-	 * @param validator

-	 */

-	public void setValidationRule(IValidationRule validationRule) {

-		this.validationRules = new IValidationRule[] { validationRule };

-	}

-

-	public void reset() {

-		observableSource = null;

-	}

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/BindingExpressionPath.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/BindingExpressionPath.java
deleted file mode 100644
index 955ad57..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/BindingExpressionPath.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.internal.core;

-

-import java.util.ArrayList;

-import java.util.Stack;

-

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.metadata.ModelUtils;

-

-public class BindingExpressionPath {

-	protected String fullPath;

-	protected String stripedPath;

-

-	protected String[] segments;

-	

-	public BindingExpressionPath(String value) {

-		if (value == null) {

-			return;

-		}

-		this.fullPath = value;

-		this.stripedPath = null;

-		

-		int level = 0;

-		Stack<Character> separators = new Stack<Character>();

-		ArrayList<String> collector = new ArrayList<String>();

-		int start = 0;

-		int stripStart = 0;

-		int stripEnd = 0;

-		char[] array = value.toCharArray();

-		for (int i = 0; i < array.length; i++) {

-			switch (array[i]) {

-			case '}':

-				{

-					Character character = separators.pop();

-					if (character.charValue() != '{') {

-						throw new XWTException("Syntax error is binding expression " + value + " at " + i);

-					}

-				}

-				level --;

-				break;

-			case ']':

-				{

-					Character character = separators.pop();

-					if (character.charValue() != '[') {

-						throw new XWTException("Syntax error is binding expression " + value + " at " + i);

-					}

-				}

-				level --;

-				break;

-			case ')':

-				{

-					Character character = separators.pop();

-					if (character.charValue() != '(') {

-						throw new XWTException("Syntax error is binding expression " + value + " at " + i);

-					}

-				}

-				level --;

-				if (level == 0) {

-					stripEnd = i - 1;

-				}

-				break;

-			case '(':

-				if (level == 0) {

-					stripStart = i + 1;

-				}

-				separators.push(array[i]);

-				level ++;

-				break;

-			case '{':

-			case '[':

-				separators.push(array[i]);

-				level ++;

-				break;

-			case '.':

-				if (level == 0) {

-					String element = value.substring(start, i);

-					element = ModelUtils.normalizePropertyName(element);

-					collector.add(element);

-					updateStripped(value, stripStart, stripEnd, element);

-					start = i + 1;

-				}

-				break;

-			}

-		}

-		if (level == 0) {

-			String element = value.substring(start, array.length);

-			element = ModelUtils.normalizePropertyName(element);

-			collector.add(element);

-

-			updateStripped(value, stripStart, stripEnd, element);

-		}

-		

-		segments = collector.toArray(new String[collector.size()]);

-	}

-

-	private void updateStripped(String value, int stripStart, int stripEnd, String element) {

-		if (stripStart != 0) {

-			element = value.substring(stripStart, stripEnd + 1);

-			int index = element.lastIndexOf('.');

-			if (index != -1) {

-				element = element.substring(index + 1);

-			}

-			element = ModelUtils.normalizePropertyName(element);			

-		}

-		

-		if (this.stripedPath == null) {

-			this.stripedPath = element;

-		}

-		else {

-			this.stripedPath += "." + element;						

-		}

-	}

-	

-	public String getFullPath() {

-		return fullPath;

-	}

-

-	public String getStripedPath() {

-		return stripedPath;

-	}

-

-	public String[] getSegments() {

-		return segments;

-	}

-

-	public boolean isEmptyPath() {

-		return isEmptyPath(getFullPath());

-	}

-	

-	public static boolean isEmptyPath(String value) {

-		return value == null || value.trim().length() == 0 || ".".equals(value.trim());

-	}

-	

-	public static int lastIndexOf(String value) {

-		int level = 0;

-		Stack<Character> separators = new Stack<Character>();

-		char[] array = value.toCharArray();

-		for (int i = array.length - 1; i >= 0 ; i--) {

-			switch (array[i]) {

-			case '{':

-				{

-					Character character = separators.pop();

-					if (character.charValue() != '}') {

-						throw new XWTException("Syntax error is binding expression " + value + " at " + i);

-					}

-				}

-				level --;

-				break;

-			case '[':

-				{

-					Character character = separators.pop();

-					if (character.charValue() != '}') {

-						throw new XWTException("Syntax error is binding expression " + value + " at " + i);

-					}

-				}

-				level --;

-				break;

-			case '(':

-				{

-					Character character = separators.pop();

-					if (character.charValue() != ')') {

-						throw new XWTException("Syntax error is binding expression " + value + " at " + i);

-					}

-				}

-				level --;

-				break;

-			case '}':

-			case ']':

-			case ')':

-				separators.push(array[i]);

-				level ++;

-				break;

-			case '.':

-				if (level == 0) {

-					return i;

-				}

-				break;

-			}

-			

-			if (array[i] == '.') {

-			}

-		}

-		return -1;

-	}

-

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/BindingGate.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/BindingGate.java
deleted file mode 100644
index 33e4899..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/BindingGate.java
+++ /dev/null
@@ -1,465 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.internal.core;

-

-import org.eclipse.core.databinding.Binding;

-import org.eclipse.core.databinding.UpdateListStrategy;

-import org.eclipse.core.databinding.UpdateSetStrategy;

-import org.eclipse.core.databinding.UpdateValueStrategy;

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.core.databinding.observable.IObservable;

-import org.eclipse.core.databinding.observable.list.IObservableList;

-import org.eclipse.core.databinding.observable.set.IObservableSet;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.xwt.IDataBindingInfo;

-import org.eclipse.xwt.IDataProvider;

-import org.eclipse.xwt.IValidationRule;

-import org.eclipse.xwt.IValueConverter;

-import org.eclipse.xwt.InverseValueConverter;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.databinding.IBindingContext;

-import org.eclipse.xwt.internal.utils.ObjectUtil;

-import org.eclipse.xwt.validation.InverseValidationRule;

-

-/**

- * @author jliu <jin.liu@soyatec.com>

- */

-public class BindingGate {

-	public static final UpdateSetStrategy POLICY_UPDATE = new UpdateSetStrategy(

-			UpdateSetStrategy.POLICY_UPDATE);

-	private final IBindingContext dataBindingContext;

-

-	public BindingGate(IBindingContext dataBindingContext) {

-		super();

-		this.dataBindingContext = dataBindingContext;

-	}

-

-	public Binding bind(IObservableValue source, IObservableValue target) {

-		return bind(source, target, null);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.databinding.IBindingContext#bind(org.eclipse.core.

-	 * databinding.observable.value.IObservableValue,

-	 * org.eclipse.core.databinding.observable.value.IObservableValue)

-	 */

-	public Binding bind(IObservable source, IObservable target,

-			IDataBindingInfo dataBinding) {

-		if (source instanceof IObservableValue

-				&& target instanceof IObservableValue) {

-			return bindValue((IObservableValue) source,

-					(IObservableValue) target, dataBinding);

-		} else if (source instanceof IObservableSet

-				&& target instanceof IObservableSet) {

-			IValueConverter converter = null;

-			int sourceToTargetPolicy = UpdateSetStrategy.POLICY_UPDATE;

-			int targetToSourcePolicy = UpdateSetStrategy.POLICY_UPDATE;

-			// Set policy to UpdateValueStrategy.

-			if (dataBinding != null) {

-				switch (dataBinding.getMode()) {

-				case OneWay:

-					targetToSourcePolicy = UpdateSetStrategy.POLICY_NEVER;

-					break;

-				case OneTime:

-					sourceToTargetPolicy = UpdateSetStrategy.POLICY_NEVER;

-					targetToSourcePolicy = UpdateSetStrategy.POLICY_NEVER;

-					break;

-				default:

-					break;

-				}

-				converter = dataBinding.getConverter();

-			}

-			UpdateSetStrategy sourceToTarget = new UpdateSetStrategy(

-					sourceToTargetPolicy);

-			UpdateSetStrategy targetToSource = new UpdateSetStrategy(

-					targetToSourcePolicy);

-			return bindSet((IObservableSet) target, (IObservableSet) source,

-					targetToSource, sourceToTarget, converter);

-		} else if (source instanceof IObservableList

-				&& target instanceof IObservableList) {

-			IValueConverter converter = null;

-			int sourceToTargetPolicy = UpdateListStrategy.POLICY_UPDATE;

-			int targetToSourcePolicy = UpdateListStrategy.POLICY_UPDATE;

-			// Set policy to UpdateValueStrategy.

-			if (dataBinding != null) {

-				switch (dataBinding.getMode()) {

-				case OneWay:

-					targetToSourcePolicy = UpdateListStrategy.POLICY_NEVER;

-					break;

-				case OneTime:

-					sourceToTargetPolicy = UpdateListStrategy.POLICY_NEVER;

-					targetToSourcePolicy = UpdateListStrategy.POLICY_NEVER;

-					break;

-				default:

-					break;

-				}

-				converter = dataBinding.getConverter();

-			}

-			UpdateListStrategy sourceToTarget = new UpdateListStrategy(

-					sourceToTargetPolicy);

-			UpdateListStrategy targetToSource = new UpdateListStrategy(

-					targetToSourcePolicy);

-			return bindList((IObservableList) target, (IObservableList) source,

-					targetToSource, sourceToTarget, converter);

-		}

-		throw new IllegalStateException();

-

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.databinding.IBindingContext#bind(org.eclipse.core.

-	 * databinding.observable.value.IObservableValue,

-	 * org.eclipse.core.databinding.observable.value.IObservableValue)

-	 */

-	public Binding bindList(IObservableList source, IObservableList target,

-			UpdateListStrategy sourceToTarget,

-			UpdateListStrategy targetToSource, IValueConverter converter) {

-		if (converter != null) {

-			return bindList(source, target, sourceToTarget, targetToSource,

-					converter, new InverseValueConverter(converter));

-		} else {

-			return bindList(source, target, sourceToTarget, targetToSource,

-					null, null);

-		}

-	}

-

-	/**

-	 * 

-	 * @param source

-	 * @param target

-	 * @param sourceToTarget

-	 *            if it is null, the default converter will be update policy

-	 * @param targetToSource

-	 *            if it is null, the default converter will be update policy

-	 * @param sourceToTargetConvertor

-	 *            if it is null, the default converter will be used

-	 * @param targetToSourceConvertor

-	 *            if it is null, the default converter will be used

-	 */

-	public Binding bindList(IObservableList source, IObservableList target,

-			UpdateListStrategy sourceToTarget,

-			UpdateListStrategy targetToSource,

-			IConverter sourceToTargetConvertor,

-			IConverter targetToSourceConvertor) {

-		if (source != null && target != null) {

-			if (sourceToTarget == null) {

-				sourceToTarget = new UpdateListStrategy(

-						UpdateListStrategy.POLICY_UPDATE);

-			}

-			if (targetToSource == null) {

-				targetToSource = new UpdateListStrategy(

-						UpdateListStrategy.POLICY_UPDATE);

-			}

-

-			if (sourceToTargetConvertor != null) {

-				sourceToTarget.setConverter(sourceToTargetConvertor);

-			}

-

-			if (targetToSourceConvertor != null) {

-				targetToSource.setConverter(targetToSourceConvertor);

-			}

-

-			this.dataBindingContext.bindList(target, source, targetToSource,

-					sourceToTarget);

-		}

-		return null;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.databinding.IBindingContext#bind(org.eclipse.core.

-	 * databinding.observable.value.IObservableValue,

-	 * org.eclipse.core.databinding.observable.value.IObservableValue)

-	 */

-	public Binding bindSet(IObservableSet source, IObservableSet target,

-			UpdateSetStrategy sourceToTarget, UpdateSetStrategy targetToSource,

-			IValueConverter converter) {

-		if (converter != null) {

-			return bindSet(source, target, sourceToTarget, targetToSource,

-					converter, new InverseValueConverter(converter));

-		} else {

-			return bindSet(source, target, sourceToTarget, targetToSource,

-					null, null);

-		}

-	}

-

-	/**

-	 * 

-	 * @param source

-	 * @param target

-	 * @param sourceToTarget

-	 *            if it is null, the default converter will be update policy

-	 * @param targetToSource

-	 *            if it is null, the default converter will be update policy

-	 * @param sourceToTargetConvertor

-	 *            if it is null, the default converter will be used

-	 * @param targetToSourceConvertor

-	 *            if it is null, the default converter will be used

-	 */

-	public Binding bindSet(IObservableSet source, IObservableSet target,

-			UpdateSetStrategy sourceToTarget, UpdateSetStrategy targetToSource,

-			IConverter sourceToTargetConvertor,

-			IConverter targetToSourceConvertor) {

-		if (source != null && target != null) {

-			if (sourceToTarget == null) {

-				sourceToTarget = new UpdateSetStrategy(

-						UpdateSetStrategy.POLICY_UPDATE);

-			}

-			if (targetToSource == null) {

-				targetToSource = new UpdateSetStrategy(

-						UpdateSetStrategy.POLICY_UPDATE);

-			}

-

-			if (sourceToTargetConvertor != null) {

-				sourceToTarget.setConverter(sourceToTargetConvertor);

-			}

-

-			if (targetToSourceConvertor != null) {

-				targetToSource.setConverter(targetToSourceConvertor);

-			}

-

-			this.dataBindingContext.bindSet(target, source, targetToSource,

-					sourceToTarget);

-		}

-		return null;

-	}

-

-	/**

-	 * 

-	 * @param source

-	 * @param target

-	 * @param sourceToTarget

-	 *            if it is null, the default converter will be update policy

-	 * @param targetToSource

-	 *            if it is null, the default converter will be update policy

-	 * @param sourceToTargetConvertor

-	 *            if it is null, the default converter will be used

-	 * @param targetToSourceConvertor

-	 *            if it is null, the default converter will be used

-	 */

-	public Binding bind(IObservableList source, IObservableList target,

-			UpdateListStrategy sourceToTarget,

-			UpdateListStrategy targetToSource,

-			IConverter sourceToTargetConvertor,

-			IConverter targetToSourceConvertor) {

-		if (source != null && target != null) {

-			if (sourceToTarget == null) {

-				sourceToTarget = new UpdateListStrategy(

-						UpdateListStrategy.POLICY_UPDATE);

-			}

-			if (targetToSource == null) {

-				targetToSource = new UpdateListStrategy(

-						UpdateListStrategy.POLICY_UPDATE);

-			}

-

-			if (sourceToTargetConvertor != null) {

-				sourceToTarget.setConverter(sourceToTargetConvertor);

-			}

-

-			if (targetToSourceConvertor != null) {

-				targetToSource.setConverter(targetToSourceConvertor);

-			}

-

-			this.dataBindingContext.bindList(target, source, targetToSource,

-					sourceToTarget);

-		}

-		return null;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.databinding.IBindingContext#bind(org.eclipse.core.

-	 * databinding.observable.value.IObservableValue,

-	 * org.eclipse.core.databinding.observable.value.IObservableValue)

-	 */

-	private Binding bindValue(IObservableValue source, IObservableValue target,

-			IDataBindingInfo dataBinding) {

-		IValueConverter converter = null;

-		IValidationRule[] validators = null;

-		int sourceToTargetPolicy = UpdateValueStrategy.POLICY_UPDATE;

-		int targetToSourcePolicy = UpdateValueStrategy.POLICY_UPDATE;

-		// Set policy to UpdateValueStrategy.

-		if (dataBinding != null) {

-			switch (dataBinding.getMode()) {

-			case OneWay:

-				targetToSourcePolicy = UpdateValueStrategy.POLICY_NEVER;

-				break;

-			case OneTime:

-				sourceToTargetPolicy = UpdateValueStrategy.POLICY_NEVER;

-				targetToSourcePolicy = UpdateValueStrategy.POLICY_NEVER;

-				break;

-			default:

-				break;

-			}

-			converter = dataBinding.getConverter();

-			validators = dataBinding.getValidators();

-		}

-		UpdateValueStrategy sourceToTarget = new UpdateValueStrategy(

-				sourceToTargetPolicy);

-		UpdateValueStrategy targetToSource = new UpdateValueStrategy(

-				targetToSourcePolicy);

-

-		bindValidators(validators, sourceToTarget, targetToSource);

-

-		return bind(source, target, sourceToTarget, targetToSource, converter);

-	}

-

-	private void bindValidators(IValidationRule[] validators,

-			UpdateValueStrategy sourceToTarget,

-			UpdateValueStrategy targetToSource) {

-		if (validators != null) {

-			for (IValidationRule validator : validators) {

-				switch (validator.getBindingMode()) {

-				case SourceToTarget:

-					addValidatorToStrategy(sourceToTarget, validator);

-					break;

-				case TargetToSource:

-					addValidatorToStrategy(targetToSource,

-							new InverseValidationRule(validator));

-					break;

-				case Both:

-				default:

-					addValidatorToStrategy(sourceToTarget, validator);

-					addValidatorToStrategy(targetToSource,

-							new InverseValidationRule(validator));

-				}

-			}

-		}

-	}

-

-	private void addValidatorToStrategy(UpdateValueStrategy strategy,

-			IValidationRule validator) {

-		switch (validator.getPhase()) {

-		case AfterGet:

-			strategy.setAfterGetValidator(validator);

-			break;

-		case AfterConvert:

-			strategy.setAfterConvertValidator(validator);

-			break;

-		case BeforeSet:

-		default:

-			strategy.setBeforeSetValidator(validator);

-		}

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.databinding.IBindingContext#bind(org.eclipse.core.

-	 * databinding.observable.value.IObservableValue,

-	 * org.eclipse.core.databinding.observable.value.IObservableValue)

-	 */

-	public Binding bind(IObservableValue source, IObservableValue target,

-			UpdateValueStrategy sourceToTarget,

-			UpdateValueStrategy targetToSource, IValueConverter converter) {

-		if (converter != null) {

-			return bind(source, target, sourceToTarget, targetToSource,

-					converter, new InverseValueConverter(converter));

-		} else {

-			return bind(source, target, sourceToTarget, targetToSource, null,

-					null);

-		}

-	}

-

-	/**

-	 * 

-	 * @param source

-	 * @param target

-	 * @param sourceToTarget

-	 *            if it is null, the default converter will be update policy

-	 * @param targetToSource

-	 *            if it is null, the default converter will be update policy

-	 * @param sourceToTargetConvertor

-	 *            if it is null, the default converter will be used

-	 * @param targetToSourceConvertor

-	 *            if it is null, the default converter will be used

-	 */

-	public Binding bind(IObservableValue source, IObservableValue target,

-			UpdateValueStrategy sourceToTarget,

-			UpdateValueStrategy targetToSource,

-			IConverter sourceToTargetConvertor,

-			IConverter targetToSourceConvertor) {

-		if (source != null && target != null) {

-			if (sourceToTarget == null) {

-				sourceToTarget = new UpdateValueStrategy(

-						UpdateValueStrategy.POLICY_UPDATE);

-			}

-			if (targetToSource == null) {

-				targetToSource = new UpdateValueStrategy(

-						UpdateValueStrategy.POLICY_UPDATE);

-			}

-

-			// Add converter to UpdateValueStrategy.

-			IDataProvider sourceDataProvider = XWT.findDataProvider(source);

-			Object sourceValueType = sourceDataProvider.getDataType(null);

-			if (sourceValueType == null) {

-				sourceValueType = Object.class;

-			}

-			IDataProvider targetDataProvider = XWT.findDataProvider(target);

-			Object targetValueType = targetDataProvider.getDataType(null);

-			if (targetValueType == null) {

-				targetValueType = Object.class;

-			}

-			Class<?> sourceType = (sourceValueType instanceof Class<?>) ? (Class<?>) sourceValueType

-					: sourceValueType.getClass();

-			Class<?> targetType = (targetValueType instanceof Class<?>) ? (Class<?>) targetValueType

-					: targetValueType.getClass();

-			if (sourceType == null) {

-				sourceType = Object.class;

-			} else {

-				sourceType = ObjectUtil.normalizedType(sourceType);

-			}

-

-			if (targetType == null) {

-				targetType = Object.class;

-			} else {

-				targetType = ObjectUtil.normalizedType(targetType);

-			}

-

-			if (sourceToTarget.getUpdatePolicy() != UpdateValueStrategy.POLICY_NEVER) {

-				if (sourceToTargetConvertor != null) {

-					sourceToTarget.setConverter(sourceToTargetConvertor);

-				} else if (!targetType.isAssignableFrom(sourceType)) {

-					IConverter m2t = XWT.findConvertor(sourceType, targetType);

-					if (m2t != null) {

-						sourceToTarget.setConverter(m2t);

-					}

-				}

-			}

-

-			if (targetToSource.getUpdatePolicy() != UpdateValueStrategy.POLICY_NEVER) {

-				if (targetToSourceConvertor != null) {

-					targetToSource.setConverter(targetToSourceConvertor);

-				} else if (!sourceType.isAssignableFrom(targetType)) {

-					IConverter t2m = XWT.findConvertor(targetType, sourceType);

-					if (t2m != null) {

-						targetToSource.setConverter(t2m);

-					}

-				}

-			}

-

-			this.dataBindingContext.bindValue(target, source, targetToSource,

-					sourceToTarget);

-		}

-		return null;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/Core.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/Core.java
deleted file mode 100644
index 945b71f..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/Core.java
+++ /dev/null
@@ -1,983 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2014 Soyatec (http://www.soyatec.com), CEA, and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *     Christian W. Damus (CEA) - bug 435432

- *     

- *******************************************************************************/

-package org.eclipse.xwt.internal.core;

-

-import static org.eclipse.xwt.IXWTLoader.XML_CACHE_PROPERTY;

-

-import java.io.ByteArrayInputStream;

-import java.io.IOException;

-import java.io.InputStream;

-import java.lang.reflect.InvocationTargetException;

-import java.lang.reflect.Method;

-import java.net.URL;

-import java.util.ArrayList;

-import java.util.Collection;

-import java.util.HashMap;

-import java.util.HashSet;

-import java.util.LinkedHashMap;

-import java.util.Map;

-import java.util.Set;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.jface.viewers.Viewer;

-import org.eclipse.swt.graphics.Point;

-import org.eclipse.swt.graphics.Rectangle;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.xwt.DefaultLoadingContext;

-import org.eclipse.xwt.ICLRFactory;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.IDataProvider;

-import org.eclipse.xwt.IDataProviderFactory;

-import org.eclipse.xwt.ILoadingContext;

-import org.eclipse.xwt.ILogger;

-import org.eclipse.xwt.IMetaclassFactory;

-import org.eclipse.xwt.INamespaceHandler;

-import org.eclipse.xwt.IStyle;

-import org.eclipse.xwt.IUIResource;

-import org.eclipse.xwt.IXWTLoader;

-import org.eclipse.xwt.Tracking;

-import org.eclipse.xwt.callback.IBeforeParsingCallback;

-import org.eclipse.xwt.converters.ObjectToObject;

-import org.eclipse.xwt.converters.StringToEnum;

-import org.eclipse.xwt.core.IElementLoaderFactory;

-import org.eclipse.xwt.core.IRenderingContext;

-import org.eclipse.xwt.core.IVisualElementLoader;

-import org.eclipse.xwt.dataproviders.ObjectDataProvider;

-import org.eclipse.xwt.input.ICommand;

-import org.eclipse.xwt.internal.xml.Attribute;

-import org.eclipse.xwt.internal.xml.DefaultElementCache;

-import org.eclipse.xwt.internal.xml.DocumentObject;

-import org.eclipse.xwt.internal.xml.DocumentRoot;

-import org.eclipse.xwt.internal.xml.Element;

-import org.eclipse.xwt.internal.xml.ElementManager;

-import org.eclipse.xwt.internal.xml.IElementCache;

-import org.eclipse.xwt.javabean.ValueConvertorRegister;

-import org.eclipse.xwt.metadata.IMetaclass;

-

-public class Core {

-	static public final Object[] EMPTY_ARRAY = new Object[0];

-	public static final String[] EMPTY_STRING_ARRAY = new String[0];

-

-	static public final String DEFAULT_STYLES_KEY = "XWT.DefaultStyles";

-

-	static public boolean TRACE_BENCH = false;

-

-	private HashMap<Class<?>, Object> registrations;

-

-	private HashMap<DocumentObject, IVisualElementLoader> elementsLoaders = new HashMap<DocumentObject, IVisualElementLoader>();

-

-	private MetaclassService metaclassService;

-

-	private IElementLoaderFactory loaderFactory;

-

-	private ILoadingContext _loadingContext = null;

-

-	private ICLRFactory clrFactory = null;

-

-	private Set<Tracking> trackingSet = new HashSet<Tracking>();

-	private Map<String, ICommand> commands = new HashMap<String, ICommand>();

-	private Map<String, INamespaceHandler> nsHandlers = new HashMap<String, INamespaceHandler>();

-	private ILogger logger;

-	private Collection<IStyle> defaultStyles = new ArrayList<IStyle>();

-

-	private static LinkedHashMap<String, IDataProviderFactory> dataProviderFactories = new LinkedHashMap<String, IDataProviderFactory>();

-

-	private Collection<Class<?>> resolveTypes = new ArrayList<Class<?>>();

-

-	private IXWTLoader xwtLoader;

-

-	static public ILogger nullLog = new ILogger() {

-		private Map<Tracking, String> messageMap = new HashMap<Tracking, String>();

-

-		public void error(Throwable e) {

-		}

-

-		public void error(Throwable e, String message) {

-		}

-

-		public void message(String message) {

-		}

-

-		public void warning(String message) {

-		}

-

-		public void printInfo(String message, Tracking tracking, Set trackType) {

-			String printMessage = "";

-

-			if (trackType != null && trackType.size() > 0) {

-				if (trackType.contains(tracking)) {

-					printMessage = (String) messageMap.get(tracking);

-				}

-			}

-			System.out.println(printMessage);

-		}

-

-		public void addMessage(String message, Tracking tracking) {

-			if (messageMap.containsKey(tracking)) {

-				messageMap.remove(tracking);

-			}

-			messageMap.put(tracking, message);

-		}

-

-		public void removeMessage(Tracking tracking) {

-			if (messageMap.containsKey(tracking)) {

-				messageMap.remove(tracking);

-			}

-		}

-	};

-

-	public Core(IElementLoaderFactory loaderFactory, IXWTLoader xwtLoader) {

-		this.loaderFactory = loaderFactory;

-		this.registrations = new HashMap<Class<?>, Object>();

-		this.xwtLoader = xwtLoader;

-		this.metaclassService = new MetaclassService(xwtLoader);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#getLogger()

-	 */

-	public ILogger getLogger() {

-		if (logger == null) {

-			return Core.nullLog;

-		}

-		return logger;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#setLogger(org.eclipse.xwt.ILogger)

-	 */

-	public void setLogger(ILogger log) {

-		logger = log;

-	}

-

-	public ICLRFactory getCLRFactory() {

-		return clrFactory;

-	}

-

-	public void setCLRFactory(ICLRFactory clrFactory) {

-		this.clrFactory = clrFactory;

-	}

-

-	/**

-	 * 

-	 * @param nsmapace

-	 * @param handler

-	 */

-	public void registerNamespaceHandler(String nsmapace,

-			INamespaceHandler handler) {

-		nsHandlers.put(nsmapace, handler);

-	}

-

-	/**

-	 * 

-	 * @param nsmapace

-	 */

-	public void unregisterNamespaceHandler(String nsmapace) {

-		nsHandlers.remove(nsmapace);

-	}

-

-	/**

-	 * 

-	 * @param nsmapace

-	 * @return

-	 */

-	public INamespaceHandler getNamespaceHandler(String nsmapace) {

-		return nsHandlers.get(nsmapace);

-	}

-

-	class ConverterService {

-		protected Map<Class<?>, IConverter> converters = new HashMap<Class<?>, IConverter>();

-

-		public IConverter getConverter(Class<?> type) {

-			IConverter converter = converters.get(type);

-			if (converter != null) {

-				return converter;

-			}

-

-			return null;

-		}

-

-		public void register(Class<?> type, IConverter converter) {

-			converters.put(type, converter);

-		}

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#findConvertor(java.lang.Class,

-	 * java.lang.Class)

-	 */

-	public IConverter findConvertor(Class<?> source, Class<?> target) {

-		if (source == target

-				|| (source != Object.class && source.isAssignableFrom(target))) {

-			return ObjectToObject.instance;

-		}

-		if (String.class == source && target.isEnum()) {

-			return new StringToEnum(target);

-		}

-		ValueConvertorRegister convertorRegister = (ValueConvertorRegister) getService(ValueConvertorRegister.class);

-		if (convertorRegister == null) {

-			return null;

-		}

-		return convertorRegister.findConverter(source, target);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.IXWTLoader#registerConvertor(org.eclipse.core.databinding

-	 * .conversion.IConverter)

-	 */

-	public void registerConvertor(IConverter converter) {

-		Class<?> source = (Class<?>) converter.getFromType();

-		Class<?> target = (Class<?>) converter.getToType();

-		ValueConvertorRegister convertorRegister = (ValueConvertorRegister) getService(ValueConvertorRegister.class);

-		convertorRegister.register(source, target, converter);

-	}

-

-	public void registerConvertor(Class<?> converter, String methodName) {

-		try {

-			Method method = converter.getDeclaredMethod(methodName);

-			Object object = method.invoke(null);

-			if (object instanceof IConverter) {

-				registerConvertor((IConverter) object);

-			}

-		} catch (SecurityException e) {

-		} catch (IllegalArgumentException e) {

-		} catch (NoSuchMethodException e) {

-		} catch (IllegalAccessException e) {

-		} catch (InvocationTargetException e) {

-		}

-	}

-

-	public void registerConvertor(Class<?> converterType, String methodName,

-			boolean value) {

-		IConverter converter = loadConvertor(converterType, methodName, value);

-		if (converter != null) {

-			registerConvertor(converter);

-		}

-	}

-

-	public void registerConvertor(ValueConvertorRegister convertorRegister,

-			Class<?> source, Class<?> target, Class<?> converterType,

-			String methodName, boolean value) {

-		IConverter converter = loadConvertor(converterType, methodName, value);

-		if (converter != null) {

-			convertorRegister.register(source, target, converter);

-		}

-	}

-

-	public IConverter loadConvertor(Class<?> converter, String methodName,

-			boolean value) {

-		try {

-			Method method = converter.getDeclaredMethod(methodName, boolean.class);

-			Object object = method.invoke(null, value);

-			if (object instanceof IConverter) {

-				return (IConverter) object;

-			}

-		} catch (SecurityException e) {

-		} catch (IllegalArgumentException e) {

-		} catch (NoSuchMethodException e) {

-		} catch (IllegalAccessException e) {

-		} catch (InvocationTargetException e) {

-		}

-		return null;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#getConverterService()

-	 */

-	public ConverterService getConverterService() {

-		ConverterService service = (ConverterService) getService(ConverterService.class);

-		if (service == null) {

-			service = new ConverterService();

-			registerService(ConverterService.class, service);

-			service.register(Object.class, new IConverter() {

-				public Object convert(Object fromObject) {

-					return null;

-				}

-

-				public Object getFromType() {

-					return Object.class;

-				}

-

-				public Object getToType() {

-					return String.class;

-				}

-			});

-		}

-		return service;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.IXWTLoader#addTracking(org.eclipse.xwt.Tracking)

-	 */

-	public void addTracking(Tracking tracking) {

-		if (!trackingSet.contains(tracking)) {

-			trackingSet.add(tracking);

-		}

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.IXWTLoader#isTracking(org.eclipse.xwt.Tracking)

-	 */

-	public boolean isTracking(Tracking tracking) {

-		return trackingSet.contains(tracking);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#getTrackings()

-	 */

-	public Set<Tracking> getTrackings() {

-		return trackingSet;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.IXWTLoader#removeTracking(org.eclipse.xwt.Tracking)

-	 */

-	public void removeTracking(Tracking tracking) {

-		if (trackingSet.contains(tracking)) {

-			trackingSet.remove(tracking);

-		}

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#registerCommand(java.lang.String,

-	 * org.eclipse.xwt.input.ICommand)

-	 */

-	public void registerCommand(String name, ICommand command) {

-		commands.put(name, command);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#getCommand(java.lang.String)

-	 */

-	public ICommand getCommand(String name) {

-		return commands.get(name);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#getCommands()

-	 */

-	public Map<String, ICommand> getCommands() {

-		return commands;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#unregisterCommand(java.lang.String)

-	 */

-	public void unregisterCommand(String name) {

-		commands.remove(name);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.IXWTLoader#addDefaultStyle(org.eclipse.xwt.IStyle)

-	 */

-	public void addDefaultStyle(IStyle style) {

-		defaultStyles.add(style);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.IXWTLoader#removeDefaultStyle(org.eclipse.xwt.IStyle

-	 * )

-	 */

-	public void removeDefaultStyle(IStyle style) {

-		defaultStyles.remove(style);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#getDefaultStyles()

-	 */

-	public Collection<IStyle> getDefaultStyles() {

-		return new ArrayList<IStyle>(defaultStyles);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.IXWTLoader#addDataProviderFactory(org.eclipse.xwt

-	 * .IDataProviderFactory)

-	 */

-	public void addDataProviderFactory(String name,

-			IDataProviderFactory dataProviderFactory) {

-		if (dataProviderFactory == null) {

-			return;

-		}

-		dataProviderFactories.put(name, dataProviderFactory);

-		registerMetaclass(dataProviderFactory.getType());

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#registerMetaclass(java.lang.Class)

-	 */

-	public IMetaclass registerMetaclass(Class<?> type) {

-		return registerMetaclass(type, IConstants.XWT_NAMESPACE);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.IXWTLoader#removeDataProviderFactory(org.eclipse.e4

-	 * .xwt.IDataProviderFactory)

-	 */

-	public void removeDataProviderFactory(String name) {

-		if (name == null) {

-			return;

-		}

-		dataProviderFactories.remove(name);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.IXWTLoader#removeDataProviderFactory(org.eclipse.e4

-	 * .xwt.IDataProviderFactory)

-	 */

-	public void removeDataProviderFactory(

-			IDataProviderFactory dataProviderFactory) {

-		if (dataProviderFactory == null) {

-			return;

-		}

-		for (String name : dataProviderFactories.keySet()) {

-			IDataProviderFactory value = dataProviderFactories.get(name);

-			if (dataProviderFactory == value) {

-				dataProviderFactories.remove(name);

-			}

-		}

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#getDataProviderFactories()

-	 */

-	public Collection<IDataProviderFactory> getDataProviderFactories() {

-		return dataProviderFactories.values();

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#findDataProvider(java.lang.Object)

-	 */

-	public IDataProvider findDataProvider(Object dataContext) {

-		if (dataContext instanceof IDataProvider) {

-			return (IDataProvider) dataContext;

-		}

-		for (IDataProviderFactory factory : dataProviderFactories.values()) {

-			IDataProvider dataProvider = factory.create(dataContext);

-			if (dataProvider != null) {

-				return dataProvider;

-			}

-		}

-		ObjectDataProvider dataProvider = new ObjectDataProvider();

-		dataProvider.setObjectInstance(dataContext);

-		return dataProvider;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#getLoadingContext()

-	 */

-	public ILoadingContext getLoadingContext() {

-		if (_loadingContext == null) {

-			return DefaultLoadingContext.defaultLoadingContext;

-		}

-		return _loadingContext;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @seeorg.eclipse.xwt.IXWTLoader#setLoadingContext(org.eclipse.xwt.

-	 * ILoadingContext)

-	 */

-	public void setLoadingContext(ILoadingContext loadingContext) {

-		_loadingContext = loadingContext;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IXWTLoader#findLoadingContext(java.lang.Object)

-	 */

-	public ILoadingContext findLoadingContext(Object container) {

-		return getLoadingContext();

-	}

-

-	public IMetaclass getMetaclass(ILoadingContext context, String name,

-			String namespace) {

-		return getMetaclassService().getMetaclass(context, name, namespace);

-	}

-

-	public IMetaclass findMetaclass(Object object) {

-		if (object instanceof Class<?>) {

-			return getMetaclassService().findMetaclass((Class<?>) object);

-		}

-		return getMetaclassService().findMetaclass(object.getClass());

-	}

-

-	public IMetaclass getMetaclass(Object object) {

-		if (object instanceof Class<?>) {

-			return getMetaclassService().getMetaclass((Class<?>) object);

-		}

-		return getMetaclassService().getMetaclass(object.getClass());

-	}

-

-	public IMetaclass getMetaclass(Object object, String namespace) {

-		if (object instanceof Class) {

-			return getMetaclassService().getMetaclass((Class<?>) object,

-					namespace);

-		}

-		return getMetaclassService().getMetaclass(object.getClass(), namespace);

-	}

-

-	public Collection<IMetaclass> getAllMetaclasses(String namespace) {

-		return getMetaclassService().getAllMetaclasses(namespace);

-	}

-

-	public void registerMetaclass(IMetaclass metaclass, String namespace) {

-		getMetaclassService().register(metaclass, namespace);

-	}

-

-	public void registerMetaclassFactory(IMetaclassFactory metaclassFactory) {

-		getMetaclassService().registerFactory(metaclassFactory);

-	}

-

-	public IMetaclass registerMetaclass(Class<?> metaclass, String namespace) {

-		return getMetaclassService().register(metaclass, namespace);

-	}

-

-	public IMetaclass registerMetaclass(Class<?> metaclass, String namespace,

-			IMetaclass superMetaclass) {

-		return getMetaclassService().register(metaclass, namespace,

-				superMetaclass);

-	}

-

-	public void registerMetaclassManager(String namespace,

-			MetaclassManager manager) {

-		getMetaclassService().register(namespace, manager);

-	}

-

-	public Object getService(Class<?> type) {

-		return this.registrations.get(type);

-	}

-

-	public void registerService(Class<?> serviceType, Object service) {

-		registrations.put(serviceType, service);

-	}

-

-	protected Object createCLRElement(IRenderingContext context,

-			Element element, Map<String, Object> options) {

-		IVisualElementLoader loader = findElementLoader(element);

-		if (loader != null) {

-			return loader.createUIElement(element, options);

-		}

-		loader = createElementLoader(context, element);

-		Object visualObject = loader.createUIElement(element, options);

-		removeElementLoader(element);

-		return visualObject;

-	}

-

-	protected IVisualElementLoader findElementLoader(DocumentObject element) {

-		IVisualElementLoader loader = elementsLoaders.get(element);

-		if (loader != null) {

-			return loader;

-		}

-		if (element.getParent() != null) {

-			return findElementLoader(element.getParent());

-		}

-		return null;

-	}

-

-	protected IVisualElementLoader createElementLoader(

-			IRenderingContext context, DocumentObject element) {

-		IVisualElementLoader creator = loaderFactory.createElementLoader(

-				context, xwtLoader);

-		elementsLoaders.put(element, creator);

-		return creator;

-	}

-

-	protected void removeElementLoader(DocumentObject element) {

-		elementsLoaders.remove(element);

-	}

-

-	public Object load(ILoadingContext loadingContext, URL input,

-			Map<String, Object> options) throws Exception {

-		return load(loadingContext, null, input, options);

-	}

-

-	public IUIResource loadAsResource(InputStream stream, URL input,

-			IBeforeParsingCallback parsingCallback) throws Exception {

-		ElementManager manager = new ElementManager();

-		Element element = null;

-		if (stream == null) {

-			element = manager.load(input, parsingCallback);

-		} else {

-			InputStream inputStream = stream;

-			if (parsingCallback != null) {

-				int size = stream.read();

-				byte[] buffer = new byte[size];

-				stream.read(buffer);

-				String content = new String(buffer);

-				stream.close();

-				content = parsingCallback.onParsing(content);

-				inputStream = new ByteArrayInputStream(content.getBytes());

-				element = manager.load(stream, input);

-			}

-			element = manager.load(inputStream, input);

-		}

-		return new UIResource(input, element);

-	}

-

-	public Object load(ILoadingContext loadingContext, IUIResource pattern,

-			Map<String, Object> options) throws Exception {

-		UIResource uiResource = (UIResource) pattern;

-		Control control = null;

-		ElementManager manager = new ElementManager(uiResource.getURL());

-		Element element = uiResource.getContent();

-		IRenderingContext context = new ExtensionContext(loadingContext,

-				manager, element.getNamespace());

-		Object visual = createCLRElement(context, element, options);

-		if (visual instanceof Control) {

-			control = (Control) visual;

-		} else if (visual instanceof Viewer) {

-			control = ((Viewer) visual).getControl();

-		} else {

-			Class<?> jfaceWindow = Class

-					.forName("org.eclipse.jface.window.Window");

-			if (jfaceWindow != null && jfaceWindow.isInstance(visual)) {

-				Method createMethod = jfaceWindow.getDeclaredMethod("create");

-				createMethod.invoke(visual);

-				Method method = jfaceWindow.getDeclaredMethod("getShell");

-				control = (Control) method.invoke(visual);

-			}

-		}

-

-		if (control instanceof Composite) {

-			Object parent = options.get(IXWTLoader.CONTAINER_PROPERTY);

-			Object designMode = options.get(IXWTLoader.DESIGN_MODE_PROPERTY);

-			if (parent instanceof Composite) {

-				Composite parentComposite = (Composite) parent;

-				if (parentComposite.getLayout() == null

-						|| designMode == Boolean.TRUE) {

-					autoLayout(parentComposite, element);

-				}

-			} else if (parent == null || designMode == Boolean.TRUE) {

-				if (control instanceof Shell) {

-					autoLayout((Shell) control, element);

-				} else {

-					autoLayout(control.getShell(), element);

-				}

-			}

-		}

-		return visual;

-	}

-

-	public Control load(ILoadingContext loadingContext, InputStream stream,

-			URL input, Map<String, Object> options) throws Exception {

-		// Detect from url or file path.

-		long start = System.currentTimeMillis();

-		Control control = null;

-		ElementManager manager = new ElementManager();

-		if (input != null) {

-			Element element = null;

-			IElementCache cache = getCache(options);

-			element = cache.getElement(input);

-			if (element != null) {

-				manager.setRootElement(element);

-				

-				// Got an element from the cache, so we don't need an input stream

-				if (stream != null) {

-					stream.close();

-				}

-			} else {

-				if (stream == null) {

-					element = manager.load(input, (IBeforeParsingCallback) options

-							.get(IXWTLoader.BEFORE_PARSING_CALLBACK));

-				} else {

-					IBeforeParsingCallback callback = (IBeforeParsingCallback) options

-							.get(IXWTLoader.BEFORE_PARSING_CALLBACK);

-					InputStream inputStream = stream;

-					if (callback != null) {

-						int size = stream.read();

-						byte[] buffer = new byte[size];

-						stream.read(buffer);

-						String content = new String(buffer);

-						stream.close();

-						content = callback.onParsing(content);

-						inputStream = new ByteArrayInputStream(content.getBytes());

-						element = manager.load(stream, input);

-					}

-					element = manager.load(inputStream, input);

-				}

-

-				cache.cache(input, element);

-			}

-			IRenderingContext context = new ExtensionContext(loadingContext,

-					manager, manager.getRootElement().getNamespace());

-			Object visual = createCLRElement(context, element, options);

-			if (TRACE_BENCH) {

-				System.out.println("Loaded: "

-						+ (System.currentTimeMillis() - start) + "  "

-						+ input.toString());

-			}

-			if (visual instanceof Control) {

-				control = (Control) visual;

-			} else if (visual instanceof Viewer) {

-				control = ((Viewer) visual).getControl();

-			} else {

-				Class<?> jfaceWindow = Class

-						.forName("org.eclipse.jface.window.Window");

-				if (jfaceWindow != null && jfaceWindow.isInstance(visual)) {

-					Method createMethod = jfaceWindow

-							.getDeclaredMethod("create");

-					createMethod.invoke(visual);

-					Method method = jfaceWindow.getDeclaredMethod("getShell");

-					control = (Control) method.invoke(visual);

-				}

-			}

-

-			Object parent = options.get(IXWTLoader.CONTAINER_PROPERTY);

-			Object designMode = options.get(IXWTLoader.DESIGN_MODE_PROPERTY);

-			if (control instanceof Composite) {

-				if (parent instanceof Composite) {

-					Composite parentComposite = (Composite) parent;

-					if (parentComposite.getLayout() == null

-							|| designMode == Boolean.TRUE) {

-						autoLayout(parentComposite, element);

-					}

-				} else if (parent == null || designMode == Boolean.TRUE) {

-					if (control instanceof Shell) {

-						autoLayout((Shell) control, element);

-					} else {

-						autoLayoutShell(control, element);

-					}

-				}

-			}

-			else if (control != null && (parent == null || designMode == Boolean.TRUE)) {

-				autoLayoutShell(control, element);

-			}

-		}

-		return control;

-	}

-

-	private IElementCache getCache(Map<String, Object> options) {

-		Object option = (options == null) ? IElementCache.NULL : options.get(XML_CACHE_PROPERTY);

-		if (option instanceof Boolean) {

-			// Enable caching according to the option

-			if (((Boolean)option).booleanValue()) {

-				option = new DefaultElementCache();

-			} else {

-				option = IElementCache.NULL;

-			}

-			options.put(XML_CACHE_PROPERTY, option);

-		} else if (option instanceof Number) {

-			// create a default cache of this size

-			option = new DefaultElementCache(((Number)option).intValue());

-			options.put(XML_CACHE_PROPERTY, option);

-		} else if (!(option instanceof IElementCache)) {

-			option = IElementCache.NULL;

-			options.put(XML_CACHE_PROPERTY, option);

-		}

-

-		return (IElementCache)option;

-	}

-	

-	protected void autoLayout(Control composite, Element element) {

-		if (element == null) {

-			return;

-		}

-		Attribute bounds = element.getAttribute("Bounds");

-		if (bounds == null) {

-			bounds = element.getAttribute("Bounds", IConstants.XWT_NAMESPACE);

-		}

-		Attribute size = element.getAttribute("Size");

-		if (size == null) {

-			size = element.getAttribute("Size", IConstants.XWT_NAMESPACE);

-		}

-		if (bounds == null && size == null) {

-			composite.pack();

-		}

-	}

-

-	protected void autoLayoutShell(Control control, Element element) {

-		if (element == null) {

-			return;

-		}

-		Attribute bounds = element.getAttribute("Bounds");

-		if (bounds == null) {

-			bounds = element.getAttribute("Bounds", IConstants.XWT_NAMESPACE);

-		}

-		Attribute size = element.getAttribute("Size");

-		if (size == null) {

-			size = element.getAttribute("Size", IConstants.XWT_NAMESPACE);

-		}

-		if (bounds == null && size == null) {

-			control.pack();

-		}

-		else {

-			Shell shell = control.getShell();

-			Point targetSize = control.getSize();

-			Rectangle rectangle = shell.getBounds();			

-			Rectangle clientArea = shell.getClientArea();

-			targetSize.x += rectangle.width - clientArea.width;

-			targetSize.y += rectangle.height - clientArea.height;

-			shell.setSize(targetSize);

-		}

-	}

-

-	static private class ExtensionContext implements IRenderingContext {

-

-		private Map<String, Object> properties = new HashMap<String, Object>();

-

-		private URL resourcePath;

-

-		private DocumentRoot documentRoot;

-

-		private String namespace;

-

-		private String encoding;

-

-		protected ILoadingContext loadingContext;

-

-		public ExtensionContext(ILoadingContext loadingContext,

-				ElementManager elementManager, String namespace) {

-			documentRoot = elementManager.getDocumentRoot();

-			resourcePath = documentRoot.getPath();

-			this.namespace = namespace;

-			this.loadingContext = loadingContext;

-			encoding = elementManager.getEncoding();

-		}

-

-		public String getNamespace() {

-			return namespace;

-		}

-

-		public InputStream openStream(String path) throws IOException {

-			return documentRoot.openStream(path);

-		}

-

-		public URL getResourcePath() {

-			return resourcePath;

-		}

-

-		/*

-		 * (non-Javadoc)

-		 * 

-		 * @see org.soyatec.xaml.IExtensionContext#getEncoding()

-		 */

-		public String getEncoding() {

-			return encoding;

-		}

-

-		public Object getProperty(String name) {

-			return properties.get(name);

-		}

-

-		public void setProperty(String name, Object value) {

-			properties.put(name, value);

-		}

-

-		public ILoadingContext getLoadingContext() {

-			return loadingContext;

-		}

-	}

-

-	public MetaclassService getMetaclassService() {

-		return metaclassService;

-	}

-

-	/**

-	 * Check if the value of a property is to resolve.

-	 * 

-	 * @param type

-	 *            type of property

-	 * @return

-	 */

-	public boolean isFileResolveType(Class<?> type) {

-		for (Class<?> resolveType : resolveTypes) {

-			if (resolveType.isAssignableFrom(type)) {

-				return true;

-			}

-		}

-		return false;

-	}

-

-	/**

-	 * Register the value of a property is to resolve.

-	 * 

-	 * @param type

-	 *            type of property

-	 * @return

-	 */

-	public void registerFileResolveType(Class<?> type) {

-		if (!resolveTypes.contains(type)) {

-			resolveTypes.add(type);

-		}

-	}

-

-	/**

-	 * Register the value of a property is to resolve.

-	 * 

-	 * @param type

-	 *            type of property

-	 * @return

-	 */

-	public void unregisterFileResolveType(Class<?> type) {

-		resolveTypes.remove(type);

-	}

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/DataBindingTrack.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/DataBindingTrack.java
deleted file mode 100644
index fd4d9b8..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/DataBindingTrack.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-

-package org.eclipse.xwt.internal.core;

-

-import java.lang.reflect.InvocationTargetException;

-import java.lang.reflect.Method;

-import java.util.ArrayList;

-import java.util.HashMap;

-import java.util.HashSet;

-import java.util.Iterator;

-import java.util.List;

-import java.util.Map;

-import java.util.Set;

-

-import org.eclipse.swt.widgets.Widget;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.Tracking;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.internal.utils.LoggerManager;

-import org.eclipse.xwt.internal.utils.ObjectUtil;

-import org.eclipse.xwt.internal.xml.Attribute;

-import org.eclipse.xwt.internal.xml.Element;

-import org.eclipse.xwt.jface.JFacesHelper;

-

-/**

- * @author liang.zhang

- * 

- */

-public class DataBindingTrack {

-	private String bindingError = "";

-	private Set<String> errorElements = null;

-

-	private List<Element> widgetList = null;

-	private Map<Element, String> bindingMap;

-

-	public DataBindingTrack() {

-		widgetList = new ArrayList<Element>();

-		errorElements = new HashSet<String>();

-		bindingMap = new HashMap<Element, String>();

-	}

-

-	public void addWidgetElement(Element element) {

-		widgetList.add(element);

-	}

-

-	private void addErrorWidgetId(String elementId) {

-		errorElements.add(elementId);

-	}

-

-	private void addBindingMessageToMap(Element element, String bindingMessage) {

-		bindingMap.put(element, bindingMessage);

-	}

-

-	private int validateParentElementError(Element bindingElement) {

-		int isError = 0;

-		if (!bindingError.equals("")) {

-			Object parentObj = bindingElement.getParent();

-			while (parentObj != null) {

-				bindingElement = (Element) parentObj;

-				if (errorElements.contains(bindingElement.getId())) {

-					isError = 1;

-					break;

-				}

-				parentObj = bindingElement.getParent();

-			}

-		}

-		return isError;

-	}

-

-	private String getCurrentWidgetPosition(Element element) {

-		if (element.getParent() != null) {

-			return " " + getCurrentWidgetPosition((Element) element.getParent());

-		}

-		return "";

-	}

-

-	public String getDataBindMessage() {

-		StringBuffer message = new StringBuffer("");

-		Iterator<Element> widgetIt = widgetList.iterator();

-		Set<Element> keys = bindingMap.keySet();

-		while (widgetIt.hasNext()) {

-			Element element = widgetIt.next();

-			int parentHasError = validateParentElementError(element);

-			if (parentHasError == 0) {

-				String content = getCurrentWidgetPosition(element);

-				if (!message.toString().equals("")) {

-					content += "+ ";

-				}

-				content = content + element.getName();

-				if (XWT.isTracking(Tracking.NAME)) {

-					Attribute nameAttr = element.getAttribute("Name");

-					if (nameAttr == null) {

-						nameAttr = element.getAttribute(IConstants.XWT_X_NAMESPACE, "Name");

-					}

-					if (nameAttr != null) {

-						content += " <" + nameAttr.getContent() + ">";

-					}

-				}

-				message.append(content);

-				if (XWT.isTracking(Tracking.DATABINDING)) {

-					if (keys.contains(element)) {

-						message.append(bindingMap.get(element));

-					} else {

-						message.append("\n");

-					}

-				}

-			}

-		}

-		return message.toString();

-	}

-

-	private void setBindingErrorMessage(String bindingError) {

-		this.bindingError = bindingError;

-	}

-

-	public void tracking(Object swtObject, Element element, Object dataContext) {

-		String bindingMessage = "";

-		if (swtObject instanceof Binding) {

-			String error = "";

-			Binding newInstance = (Binding) swtObject;

-			String path = null;

-			Attribute attr = element.getAttribute("Path");

-			if (null == attr)

-				attr = element.getAttribute("path");

-			if (null != attr)

-				path = attr.getContent();

-			Object dataContext2 = null;

-			try {

-				dataContext2 = newInstance.getValue(null);

-				if (path != null && path.length() > 0) {

-					String[] paths = path.trim().split("\\.");

-					if (paths.length > 1) {

-						String path1 = "";

-						for (int i = 0; i < paths.length - 1; i++) {

-							path1 = paths[i];

-							if (dataContext2 != null) {

-								dataContext2 = getObserveData(dataContext2, path1);

-							}

-						}

-					}

-				}

-			} catch (Exception ex) {

-				addErrorWidgetId(element.getParent().getParent().getId());

-				setBindingErrorMessage("-> Error");

-				error = "-> Error";

-			}

-			if (dataContext2 != null) {

-				bindingMessage = " (DataContext=" + dataContext2.getClass().getSimpleName() + ", Path=" + path + ")" + error + "\n";

-				addBindingMessageToMap((Element) element.getParent().getParent(), bindingMessage);// bindingMap.put((Element) element.getParent().getParent(), bindingMessage);

-			}

-		} else if (swtObject instanceof Widget) {

-			addWidgetElement(element);

-			if (dataContext != null) {

-				bindingMessage = " (DataContext=" + dataContext.getClass().getSimpleName() + ")\n";

-				addBindingMessageToMap(element, bindingMessage);

-			}

-		} else if (JFacesHelper.isViewer(swtObject)) {

-			if (dataContext != null) {

-				bindingMessage = " (DataContext=" + dataContext.getClass().getSimpleName() + ")\n";

-				addBindingMessageToMap(element, bindingMessage);// bindingMap.put(element, bindingMessage);

-			}

-		} else if (element.attributeNames(IConstants.XWT_X_NAMESPACE).length > 0) {

-			// ??

-			if (element.getParent() != null && element.getParent().getParent() != null) {

-				bindingMessage = " (DataContext=" + element.getName() + ")\n";

-				addBindingMessageToMap((Element) element.getParent().getParent(), bindingMessage);// bindingMap.put((Element) element.getParent().getParent(), bindingMessage);

-			}

-		}

-	}

-

-	public static Object getObserveData(Object dataContext, String path) {

-		try {

-			Class<?> dataContextClass = dataContext.getClass();

-			Method getMethod = ObjectUtil.findGetter(dataContextClass, path, null);

-			if (getMethod != null) {

-				return getMethod.invoke(dataContext);

-			}

-		} catch (SecurityException e) {

-			LoggerManager.log(e);

-		} catch (IllegalArgumentException e) {

-			LoggerManager.log(e);

-		} catch (IllegalAccessException e) {

-			LoggerManager.log(e);

-		} catch (InvocationTargetException e) {

-			LoggerManager.log(e);

-		}

-		return null;

-	}

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/DynamicBinding.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/DynamicBinding.java
deleted file mode 100644
index 6466fee..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/DynamicBinding.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.internal.core;

-

-import java.lang.reflect.Method;

-

-import org.eclipse.core.databinding.DataBindingContext;

-import org.eclipse.swt.graphics.Rectangle;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Item;

-import org.eclipse.swt.widgets.Widget;

-import org.eclipse.xwt.IDataProvider;

-import org.eclipse.xwt.IXWTLoader;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.annotation.UIBounds;

-import org.eclipse.xwt.core.IDynamicBinding;

-import org.eclipse.xwt.core.IUserDataConstants;

-import org.eclipse.xwt.databinding.BindingMode;

-import org.eclipse.xwt.databinding.IBindingContext;

-import org.eclipse.xwt.internal.utils.UserData;

-

-/**

- * Generic Binding definition

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public abstract class DynamicBinding implements IDynamicBinding {

-	private Object control;

-

-	private Object host;

-

-	private BindingMode mode = BindingMode.TwoWay;

-

-	private IXWTLoader xwtLoader;

-

-	private String name;

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-

-	/**

-	 * The name of the {@link DataBindingContext} that we will look up in static

-	 * resources

-	 */

-	private IBindingContext bindingContext;

-

-	/**

-	 * which used to decide binding type, not only text.

-	 */

-	private String type;

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.core.IDynamicBinding#getContextName()

-	 */

-	public IBindingContext getBindingContext() {

-		if (this.bindingContext == null) {

-			Object element = (control == null ? host : control);

-			this.bindingContext = XWT.getBindingContext(element);

-		}

-		return this.bindingContext;

-	}

-

-	public Object getHost() {

-		return host;

-	}

-

-	public void setHost(Object host) {

-		this.host = host;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * org.eclipse.xwt.core.IDynamicBinding#setBindingContext(IBindingContext

-	 * )

-	 */

-	public void setBindingContext(IBindingContext bindingContext) {

-		this.bindingContext = bindingContext;

-	}

-

-	public void setControl(Object control) {

-		this.control = control;

-	}

-

-	public Object getControl() {

-		return this.control;

-	}

-

-	/**

-	 * @param type

-	 *            the type to set

-	 */

-	public void setType(String type) {

-		this.type = type;

-	}

-

-	/**

-	 * @return the type

-	 */

-	public String getType() {

-		return type;

-	}

-

-	public BindingMode getMode() {

-		return mode;

-	}

-

-	public void setMode(BindingMode mode) {

-		this.mode = mode;

-	}

-

-	public void setXWTLoader(IXWTLoader xwtLoader) {

-		this.xwtLoader = xwtLoader;

-	}

-

-	protected Object getDataContextHost() {

-		Object control = getControl();

-		if (control == null) {

-			return null;

-		}

-		Object data = UserData.getLocalDataContext(control);

-		if (data == null || data == this) {

-			if (data == null

-					&& UserData.hasLocalData(control,

-							IUserDataConstants.XWT_DATACONTEXT_KEY)) {

-				return control;

-			}

-			Widget parent = UserData.getParent(control);

-			if (parent != null) {

-				return UserData.getDataContextHost(parent);

-			}

-			return null;

-		}

-		if (data != null) {

-			return control;

-		}

-		return UserData.getDataContextHost(control);

-	}

-

-	protected Object getDataContext() {

-		if (control != null) {

-			return UserData.getDataContext(control);

-		}

-		return null;

-	}

-

-	protected IDataProvider getDataProvider(Object dataContext) {

-		if (dataContext != null) {

-			if (dataContext instanceof IDataProvider) {

-				return (IDataProvider) dataContext;

-			} else {

-				return xwtLoader.findDataProvider(dataContext);

-			}

-		}

-		return null;

-	}

-

-	public IDataProvider getDataProvider() {

-		return getDataProvider(getDataContext());

-	}

-

-	protected Rectangle getControlBounds() {

-		Widget widget = (Widget) getControl();

-		if (widget instanceof Control) {

-			Control control = (Control) widget;

-			return control.getBounds();

-		}

-		Method drawMethod = findBoundsMethod(widget.getClass());

-		if (drawMethod != null) {

-			try {

-				drawMethod.setAccessible(true);

-				return (Rectangle) drawMethod.invoke(widget);

-			} catch (Exception e) {

-				throw new XWTException(e);

-			}

-		}

-		Control control = findHostControl();

-		return control.getBounds();

-	}

-	

-	protected Control findHostControl() {

-		Widget widget = (Widget) getControl();

-		Control host;

-		if (widget instanceof Item) {

-			Item item = (Item) widget;

-			host = (Control) XWT.findParent(item, Control.class);

-		}

-		else if (widget instanceof Control) {

-			host = (Control) widget;			

-		}

-		else {

-			throw new XWTException();

-		}

-		return host;

-	}

-

-	private Method findBoundsMethod(Class<?> type) {

-		for (Method method : type.getDeclaredMethods()) {

-			if (method.getAnnotation(UIBounds.class) != null

-					&& method.getTypeParameters().length == 0

-					&& method.getReturnType() == Rectangle.class) {

-				return method;

-			}

-		}

-		Class<?> supertype = type.getSuperclass();

-		if (supertype != null && supertype != Widget.class) {

-			Method method = findBoundsMethod(supertype);

-			if (method != null) {

-				return method;

-			}

-		}

-		for (Class<?> anInterface : type.getInterfaces()) {

-			Method method = findBoundsMethod(anInterface);

-			if (method != null) {

-				return method;

-			}

-		}

-		try {

-			Method method = type.getDeclaredMethod("getBounds");

-			if (method.getReturnType() == Rectangle.class) {

-				return method;

-			}

-		} catch (Exception e) {

-		}

-		return null;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/DynamicValueBinding.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/DynamicValueBinding.java
deleted file mode 100644
index 3b18106..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/DynamicValueBinding.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.internal.core;

-

-import org.eclipse.xwt.core.IDynamicValueBinding;

-import org.eclipse.xwt.metadata.IProperty;

-

-public class DynamicValueBinding<T> extends DynamicBinding implements

-		IDynamicValueBinding {

-	private T sourceValue;

-

-	private IProperty property;

-	private Object object;

-

-	public DynamicValueBinding(T sourceValue) {

-		this.sourceValue = sourceValue;

-	}

-

-	public IProperty getProperty() {

-		return property;

-	}

-

-	public void setProperty(IProperty property) {

-		this.property = property;

-	}

-

-	public Object getObject() {

-		return object;

-	}

-

-	public void setObject(Object object) {

-		this.object = object;

-	}

-

-	public T getSourceValue() {

-		return sourceValue;

-	}

-

-	public Object getValue(Class<?> type) {

-		return sourceValue;

-	}

-

-	public void reset() {

-	}

-

-	public Object createBoundSource() {

-		return null;

-	}

-

-	public boolean isSourceControl() {

-		return false;

-	}

-	

-	

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/IEventController.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/IEventController.java
deleted file mode 100644
index 7b082cc..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/IEventController.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.internal.core;

-

-import java.lang.reflect.Method;

-

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Widget;

-import org.eclipse.xwt.IEventInvoker;

-import org.eclipse.xwt.metadata.IEvent;

-

-public interface IEventController {

-

-	boolean hasEvent(Object receiver, IEvent event);

-

-	void addEvent(int eventType, String name, IEvent event,

-			Widget control, Object receiver, Object arg, Method method);

-

-	void addEvent(int eventType, String name, IEvent event,

-			Widget control, Object arg, IEventInvoker eventInvoker);

-

-	void setEvent(IEvent event, Widget control,

-			Object receiver, Object arg, Method method);

-

-	void setEvent(IEvent event, Widget control,

-			Object arg, IEventInvoker eventInvoker);

-

-	void handleEvent(Event e);

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/MetaclassManager.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/MetaclassManager.java
deleted file mode 100644
index 05821f8..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/MetaclassManager.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.internal.core;

-

-import java.util.Collection;

-import java.util.HashMap;

-import java.util.HashSet;

-import java.util.Map;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.ILoadingContext;

-import org.eclipse.xwt.IMetaclassFactory;

-import org.eclipse.xwt.IXWTLoader;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.internal.utils.ClassLoaderUtil;

-import org.eclipse.xwt.javabean.metadata.Metaclass;

-import org.eclipse.xwt.metadata.IMetaclass;

-

-/**

- * @author yyang (yves.yang@soyatec.com)

- */

-public class MetaclassManager {

-	protected Map<String, IMetaclass> nameRegister = new HashMap<String, IMetaclass>();

-	protected Collection<Class<?>> classRegister = new HashSet<Class<?>>();

-	protected MetaclassManager parent;

-	protected MetaclassService service;

-

-	private IXWTLoader xwtLoader;

-

-	public MetaclassManager(MetaclassService service, MetaclassManager parent,

-			IXWTLoader xwtLoader) {

-		this.parent = parent;

-		this.service = service;

-		this.xwtLoader = xwtLoader;

-	}

-

-	public Collection<IMetaclass> getAllMetaclasses() {

-		return nameRegister.values();

-	}

-

-	public void register(IMetaclass metaclass) {

-		Class<?> type = metaclass.getType();

-		if (classRegister.contains(type)) {

-			return;

-		}

-		String key = type.getSimpleName();

-		nameRegister.put(key, metaclass);

-		classRegister.add(type);

-	}

-

-	public IMetaclass register(Class<?> javaClass) {

-		return register(javaClass, null);

-	}

-

-	public IMetaclass register(Class<?> javaClass, IMetaclass superMetaclass) {

-		IMetaclass metaclass = getMetaclass(javaClass);

-		if (metaclass != null) {

-			return metaclass;

-		}

-		if (superMetaclass == null) {

-			Class<?> superclass = javaClass.getSuperclass();

-			if (superclass != null && superclass != Object.class) {

-				register(superclass, null);

-			}

-			superMetaclass = getMetaclass(superclass);

-		}

-		IMetaclass thisMetaclass = createMetaclass(javaClass, superMetaclass);

-		register(thisMetaclass);

-		return thisMetaclass;

-	}

-

-	protected IMetaclass createMetaclass(Class<?> javaClass,

-			IMetaclass superMetaclass) {

-		if (service != null) {

-			IMetaclassFactory factory = service.findFactory(javaClass);

-			if (factory != null) {

-				return factory.create(javaClass, superMetaclass, xwtLoader);

-			}

-		}

-		boolean lazyLoading = false; // TODO Get value from preference

-		return new Metaclass(javaClass, superMetaclass, lazyLoading, xwtLoader);

-	}

-

-	public IMetaclass getMetaclass(ILoadingContext context, String name,

-			String namespace) {

-		IMetaclass metaclass = nameRegister.get(name);

-		if (metaclass != null) {

-			if (namespace == null || namespace.equals(IConstants.XWT_NAMESPACE)) {

-				return metaclass;

-			}

-			if (namespace != null

-					&& namespace

-							.startsWith(IConstants.XAML_CLR_NAMESPACE_PROTO)) {

-				String packageName = namespace

-						.substring(IConstants.XAML_CLR_NAMESPACE_PROTO.length());

-				int index = packageName.indexOf('=');

-				if (index != -1) {

-					packageName = packageName.substring(0, index);

-				}

-				// if using default package(null), use only name as class name,

-				// else use package.class as class name

-				String className = packageName.length() == 0 ? name

-						: (packageName + "." + name);

-				if (metaclass.getType().getName().equals(className)) {

-					return metaclass;

-				}

-			}

-		}

-		if (namespace == null

-				|| !namespace.startsWith(IConstants.XAML_CLR_NAMESPACE_PROTO)) {

-			return null;

-		}

-		String packageName = namespace

-				.substring(IConstants.XAML_CLR_NAMESPACE_PROTO.length());

-		int index = packageName.indexOf('=');

-		if (index != -1) {

-			packageName = packageName.substring(0, index);

-		}

-		// if using default package(null), use only name as class name, else use

-		// package.class as class name

-		String className = packageName.length() == 0 ? name : (packageName

-				+ "." + name);

-		// try {

-		Class<?> type = ClassLoaderUtil.loadClass(context, className);

-		if (type == null) {

-			throw new XWTException("Cannot load " + className);

-		}

-		metaclass = register(type, null);

-		// There is no need to mapping a CLR class, since the ClassLoader will

-		// be changed.

-		nameRegister.remove(type.getSimpleName());

-		return metaclass;

-	}

-

-	public IMetaclass getMetaclass(Object object) {

-		if (object instanceof Class) {

-			return getMetaclass((Class<?>) object);

-		} else if (object instanceof String) {

-			return getMetaclass((String) object);

-		}

-		Class<?> type = object.getClass();

-		return getMetaclass(type);

-	}

-

-	public IMetaclass getMetaclass(Class<?> type) {

-		if (classRegister.contains(type)) {

-			IMetaclass metaclass = nameRegister.get(type.getSimpleName());

-			if (metaclass != null && metaclass.getType() == type) {

-				return metaclass;

-			}

-		}

-		if (parent != null) {

-			IMetaclass metaclass = parent.getMetaclass(type);

-			if (metaclass != null) {

-				return metaclass;

-			}

-		}

-		return null;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/MetaclassService.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/MetaclassService.java
deleted file mode 100644
index 936dc04..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/MetaclassService.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.internal.core;

-

-import java.util.ArrayList;

-import java.util.Collection;

-import java.util.HashMap;

-import java.util.Map;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.ILoadingContext;

-import org.eclipse.xwt.IMetaclassFactory;

-import org.eclipse.xwt.IXWTLoader;

-import org.eclipse.xwt.metadata.IMetaclass;

-

-/**

- * @author yyang (yves.yang@soyatec.com)

- */

-public class MetaclassService {

-	protected Map<String, MetaclassManager> map = new HashMap<String, MetaclassManager>();

-	protected ArrayList<IMetaclassFactory> factories = new ArrayList<IMetaclassFactory>();

-

-	private IXWTLoader xwtLoader;

-

-	public MetaclassService(IXWTLoader xwtLoader) {

-		this.xwtLoader = xwtLoader;

-	}

-

-	public IMetaclass getMetaclass(ILoadingContext context, String name, String namespace) {

-		MetaclassManager manager = map.get(namespace);

-		if (manager == null) {

-			manager = new MetaclassManager(this, map.get(IConstants.XWT_NAMESPACE), xwtLoader);

-			map.put(namespace, manager);

-		}

-		return manager.getMetaclass(context, name, namespace);

-	}

-

-	public IMetaclass findMetaclass(Class<?> type) {

-		MetaclassManager manager = map.get(IConstants.XWT_NAMESPACE);

-		if (manager == null) {

-			return null;

-		}

-		return manager.getMetaclass(type);

-	}

-	

-	public IMetaclass getMetaclass(Class<?> type) {

-		MetaclassManager manager = map.get(IConstants.XWT_NAMESPACE);

-		if (manager == null) {

-			return null;

-		}

-		IMetaclass metaclass = manager.getMetaclass(type);

-		if (metaclass == null) {

-			String packageName = "";

-			Package packageObject = type.getPackage();

-			if (packageObject != null) {

-				packageName = packageObject.getName();

-			}

-			String key = IConstants.XAML_CLR_NAMESPACE_PROTO + ":" + packageName;

-			MetaclassManager childManager = map.get(key);

-			if (childManager == null) {

-				childManager = new MetaclassManager(this, manager, xwtLoader);

-				map.put(key, childManager);

-			}

-			metaclass = childManager.getMetaclass(type);

-			if (metaclass == null) {

-				childManager.register(type);

-				metaclass = childManager.getMetaclass(type);

-			}

-		}

-		return metaclass;

-	}

-

-	public IMetaclass getMetaclass(Class<?> type, String namespace) {

-		MetaclassManager manager = map.get(namespace);

-		if (manager == null) {

-			manager = new MetaclassManager(this, null, xwtLoader);

-			map.put(namespace, manager);

-		}

-		IMetaclass metaclass = manager.getMetaclass(type);

-		if (metaclass == null) {

-			metaclass = manager.getMetaclass(type);

-			if (metaclass == null) {

-				manager.register(type);

-				metaclass = manager.getMetaclass(type);

-			}

-		}

-		return metaclass;

-	}

-

-	public IMetaclass register(Class<?> metaclass, String namespace) {

-		MetaclassManager manager = map.get(namespace);

-		if (manager == null) {

-			throw new IllegalStateException();

-		}

-		return manager.register(metaclass);

-	}

-

-	public IMetaclass register(Class<?> metaclass, String namespace, IMetaclass superMetaclass) {

-		MetaclassManager manager = map.get(namespace);

-		if (manager == null) {

-			throw new IllegalStateException();

-		}

-		return manager.register(metaclass, superMetaclass);

-	}

-

-	public void register(IMetaclass metaclass, String namespace) {

-		MetaclassManager manager = map.get(namespace);

-		if (manager == null) {

-			manager = new MetaclassManager(this, null, xwtLoader);

-			map.put(namespace, manager);

-		}

-		manager.register(metaclass);

-	}

-

-	public Collection<IMetaclass> getAllMetaclasses(String namespace) {

-		MetaclassManager manager = map.get(namespace);

-		if (manager == null) {

-			throw new IllegalStateException();

-		}

-		return manager.getAllMetaclasses();

-	}

-

-	public void register(String namespace, MetaclassManager manager) {

-		map.put(namespace, manager);

-	}

-

-	public void registerFactory(IMetaclassFactory metaclassFactory) {

-		factories.add(metaclassFactory);

-	}

-

-	public IMetaclassFactory findFactory(Class<?> javaClass) {

-		for (int i = factories.size() - 1; i >= 0; i--) {

-			IMetaclassFactory factory = factories.get(i);

-			if (factory.isFactoryOf(javaClass)) {

-				return factory;

-			}

-		}

-		return null;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/MultiBinding.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/MultiBinding.java
deleted file mode 100644
index 04db0e1..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/MultiBinding.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.internal.core;

-

-import org.eclipse.core.databinding.observable.IObservable;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.swt.custom.CCombo;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Combo;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.DateTime;

-import org.eclipse.swt.widgets.MenuItem;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.xwt.IDataBindingInfo;

-import org.eclipse.xwt.IDataProvider;

-import org.eclipse.xwt.IMultiValueConverter;

-import org.eclipse.xwt.IValidationRule;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.converters.StringMultiValueConerter;

-import org.eclipse.xwt.core.IDynamicBinding;

-import org.eclipse.xwt.databinding.AggregateObservableValue;

-import org.eclipse.xwt.databinding.IBindingContext;

-import org.eclipse.xwt.internal.utils.LoggerManager;

-import org.eclipse.xwt.internal.utils.UserData;

-

-/**

- * Support the aggregation of data binding

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class MultiBinding extends DynamicBinding implements IDataBindingInfo {

-	private Binding[] bindings = Binding.EMPTY_ARRAY;

-

-	private IMultiValueConverter valueConverter;

-

-	private IValidationRule[] valueValidators = IValidationRule.EMPTY_ARRAY;

-

-	private AggregateObservableValue observableValue;

-

-	private IObservableValue observableWidget;

-	private BindingExpressionPath targetPropertySegments;

-

-	/**

-	 * <p>

-	 * Default

-	 * </p>

-	 * 

-	 */

-	private UpdateSourceTrigger updateSourceTrigger = UpdateSourceTrigger.Default;

-

-	private BindingGate bindingGate;

-

-	public UpdateSourceTrigger getUpdateSourceTrigger() {

-		return updateSourceTrigger;

-	}

-

-	public void setUpdateSourceTrigger(UpdateSourceTrigger updateSourceTrigger) {

-		this.updateSourceTrigger = updateSourceTrigger;

-	}

-

-	public Binding[] getBindings() {

-		return bindings;

-	}

-

-	public void setBindings(Binding[] bindings) {

-		this.bindings = bindings;

-	}

-

-	public IMultiValueConverter getConverter() {

-		if (valueConverter == null) {

-			valueConverter = new StringMultiValueConerter();

-		}

-		return valueConverter;

-	}

-

-	public void setConverter(IMultiValueConverter valueConverter) {

-		this.valueConverter = valueConverter;

-	}

-

-	public boolean isSourcePropertyReadOnly() {

-		for (Binding binding : bindings) {

-			if (binding.isSourcePropertyReadOnly()) {

-				return true;

-			}

-		}

-		return false;

-	}

-

-	public Object getValue(Class<?> targetType) {

-		if (observableValue == null) {

-			IObservableValue[] values = new IObservableValue[bindings.length];

-			for (int i = 0; i < values.length; i++) {

-				bindings[i].getValue(targetType);

-				IObservable observable = bindings[i].getObservableSource();

-				if (observable instanceof IObservableValue) {

-					values[i] = (IObservableValue) observable;

-				} else {

-					LoggerManager.log("Binding expression has a problem with "

-							+ bindings[i].getPath());

-					return null;

-				}

-			}

-

-			observableValue = new AggregateObservableValue(values,

-					getConverter());

-		}

-

-		IObservableValue observableWidget = getObservableWidget();

-

-		IDataProvider dataProvider = getDataProvider();

-		if (dataProvider != null) {

-			BindingGate bindingGate = getBindingGate();

-			if (bindingGate != null) {

-				Object target = getControl();

-				if (target instanceof Text

-						&& getType().equalsIgnoreCase("text")) {

-					if (isSourcePropertyReadOnly()) {

-						Text text = (Text) target;

-						text.setEditable(false);

-					}

-				} else if (target instanceof Button

-						&& getType().equalsIgnoreCase("selection")) {

-					if (isSourcePropertyReadOnly()) {

-						Button button = (Button) target;

-						button.setEnabled(false);

-					}

-				} else if ((target instanceof Combo || target instanceof CCombo)

-						&& getType().equalsIgnoreCase("text")) {

-					if (isSourcePropertyReadOnly()) {

-						Control control = (Control) target;

-						control.setEnabled(false);

-					}

-				} else if (target instanceof MenuItem

-						&& getType().equalsIgnoreCase("selection")) {

-					if (isSourcePropertyReadOnly()) {

-						MenuItem menuItem = (MenuItem) target;

-						menuItem.setEnabled(false);

-					}

-				}

-				else if (target instanceof DateTime

-						&& getType().equalsIgnoreCase("selection")) {

-					if (isSourcePropertyReadOnly()) {

-						DateTime dateTime = (DateTime) target;

-						dateTime.setEnabled(false);

-					}

-				}

-			}

-			bindingGate.bind(observableValue, observableWidget, this);

-		}

-

-		if (targetType == null || !targetType.isInstance(observableValue)) {

-			return observableValue.getValue();			

-		}

-		return observableValue;

-	}

-

-	private BindingGate getBindingGate() {

-		if (this.bindingGate == null) {

-			IBindingContext dataBindingContext = XWT

-					.getBindingContext(getControl());

-			this.bindingGate = new BindingGate(dataBindingContext);

-		}

-

-		return this.bindingGate;

-	}

-

-	public IObservableValue getObservableWidget() {

-		if (observableWidget == null) {

-			Object target = getControl();

-			Object host = getHost();

-			try {

-				observableWidget = ScopeManager.observeValue(target, host,

-						getTargettPropertyExpression(),

-						getUpdateSourceTrigger());

-			} catch (XWTException e) {

-			}

-		}

-		return observableWidget;

-	}

-

-	public Object createBoundSource() {

-		Object control = getControl();

-		Object source = XWT.getDataContext(control);

-		Object localDataContext = UserData.getLocalDataContext(control);

-		if (localDataContext == this) {

-			return source;

-		}

-

-		if (source instanceof IDynamicBinding) {

-			return ((IDynamicBinding) source).createBoundSource();

-		}

-		return source;

-	}

-

-	public boolean isSourceControl() {

-		Object source = null;

-		Object dataContextHost = getDataContextHost();

-		if (dataContextHost != null) {

-			source = UserData.getLocalDataContext(dataContextHost);

-		}

-

-		if (source instanceof IDynamicBinding) {

-			return ((IDynamicBinding) source).isSourceControl();

-		}

-		return false;

-	}

-

-	public BindingExpressionPath getTargettPropertyExpression() {

-		if (targetPropertySegments == null) {

-			targetPropertySegments = new BindingExpressionPath(getType());

-		}

-		return targetPropertySegments;

-	}

-

-	public IValidationRule[] getValidators() {

-		return valueValidators;

-	}

-

-	public void setValidators(IValidationRule[] valueValidators) {

-		this.valueValidators = valueValidators;

-	}

-	

-	public void reset() {

-		for (Binding binding : bindings) {

-			binding.reset();

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/ScopeKeeper.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/ScopeKeeper.java
deleted file mode 100644
index 21d46d7..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/ScopeKeeper.java
+++ /dev/null
@@ -1,271 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.internal.core;

-

-import java.util.ArrayList;

-import java.util.Collection;

-import java.util.Collections;

-import java.util.HashMap;

-import java.util.List;

-

-import org.eclipse.core.databinding.observable.ChangeEvent;

-import org.eclipse.core.databinding.observable.IChangeListener;

-import org.eclipse.core.databinding.observable.IObservable;

-import org.eclipse.core.databinding.observable.list.IObservableList;

-import org.eclipse.core.databinding.observable.set.IObservableSet;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.swt.events.DisposeEvent;

-import org.eclipse.swt.events.DisposeListener;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Widget;

-import org.eclipse.xwt.internal.utils.UserData;

-

-public class ScopeKeeper implements DisposeListener {

-	private static final long serialVersionUID = 1L;

-

-	protected HashMap<String, Object> nameMap = new HashMap<String, Object>();

-

-	protected HashMap<Widget, HashMap<Object, HashMap<String, IObservable>>> bindingData = new HashMap<Widget, HashMap<Object, HashMap<String, IObservable>>>();

-

-	protected Widget host;

-

-	private final ScopeKeeper parent;

-

-	private ChangeListenerSupport changeListenerSupport = new ChangeListenerSupport();

-

-	class ChangeListenerSupport implements IChangeListener {

-		private List<IChangeListener> changeListeners = Collections.EMPTY_LIST;

-

-		public void handleChange(ChangeEvent event) {

-			for (IChangeListener changeListener : changeListeners) {

-				changeListener.handleChange(event);

-			}

-

-			// notify to parent as well.

-			Widget parent = UserData.getTreeParent(host);

-			ScopeKeeper scopeKeeper = UserData.findScopeKeeper(parent);

-			if (scopeKeeper != null) {

-				scopeKeeper.fireChangeListener(event);

-			}

-		}

-

-		public boolean addChangeListener(IChangeListener listener) {

-			if (changeListeners.contains(listener)) {

-				return false;

-			}

-			if (changeListeners == Collections.EMPTY_LIST) {

-				changeListeners = new ArrayList<IChangeListener>();

-			}

-			changeListeners.add(listener);

-			return true;

-		}

-

-		public void removeChangeListener(IChangeListener listener) {

-			changeListeners.remove(listener);

-		}

-

-		public void dispose() {

-			changeListeners = null;

-		}

-	}

-

-	public ScopeKeeper(ScopeKeeper parent, Widget host) {

-		super();

-		this.parent = parent;

-		host.addDisposeListener(this);

-		this.host = host;

-	}

-

-	public void widgetDisposed(DisposeEvent e) {

-		Widget source = e.widget;

-		if (source == host) {

-			for (HashMap<Object, HashMap<String, IObservable>> hashMap : bindingData

-					.values()) {

-				for (HashMap<String, IObservable> map : hashMap.values()) {

-					for (IObservable observable : map.values()) {

-						observable.removeChangeListener(changeListenerSupport);

-					}

-				}

-			}

-			changeListenerSupport.dispose();

-		}

-		HashMap<Object, HashMap<String, IObservable>> hashMap = bindingData

-				.get(source);

-		if (hashMap != null) {

-			for (HashMap<String, IObservable> map : hashMap.values()) {

-				for (IObservable observable : map.values()) {

-					observable.removeChangeListener(changeListenerSupport);

-				}

-			}

-			bindingData.remove(source);

-		}

-	}

-

-	public void addNamedObject(String name, Object object) {

-		nameMap.put(name, object);

-	}

-

-	public Widget getHost() {

-		return host;

-	}

-

-	public Object getNamedObject(String name) {

-		Object object = nameMap.get(name);

-		if (object != null)

-			return object;

-		return parent == null ? null : parent.getNamedObject(name);

-	}

-

-	public Collection<String> names() {

-		return nameMap.keySet();

-	}

-

-	public boolean containsName(String name) {

-		if (nameMap.containsKey(name))

-			return true;

-		return parent == null ? false : parent.containsName(name);

-	}

-

-	/**

-	 * Register a change listener. The second call to register a same listener

-	 * has no effect.

-	 * 

-	 * @param listener

-	 */

-	public boolean addChangeListener(IChangeListener listener) {

-		return changeListenerSupport.addChangeListener(listener);

-	}

-

-	/**

-	 * Remove the registered change listener

-	 * 

-	 * @param listener

-	 */

-	public void removeChangeListener(IChangeListener listener) {

-		changeListenerSupport.removeChangeListener(listener);

-	}

-

-	public void fireChangeListener(ChangeEvent event) {

-		changeListenerSupport.handleChange(event);

-	}

-

-	void addObservableValue(Widget widget, Object data, String property,

-			IObservable value) {

-		if (widget == null) {

-			widget = host;

-		} else {

-			widget.addDisposeListener(this);

-		}

-

-		HashMap<Object, HashMap<String, IObservable>> widgetData = bindingData

-				.get(widget);

-		if (widgetData == null) {

-			widgetData = new HashMap<Object, HashMap<String, IObservable>>();

-			bindingData.put(widget, widgetData);

-		}

-

-		HashMap<String, IObservable> objectData = widgetData.get(data);

-		if (objectData == null) {

-			objectData = new HashMap<String, IObservable>();

-			widgetData.put(data, objectData);

-		}

-		if (objectData.containsKey(property)) {

-			throw new IllegalStateException();

-		}

-		objectData.put(property, value);

-

-		value.addChangeListener(changeListenerSupport);

-	}

-

-	IObservableValue getObservableValue(Widget control, Object data,

-			String property) {

-		IObservable observable = getObservable(control, data, property);

-		if (observable instanceof IObservableValue) {

-			return (IObservableValue) observable;

-		}

-

-		return null;

-	}

-

-	IObservableList getObservableList(Widget control, Object data,

-			String property) {

-		IObservable observable = getObservable(control, data, property);

-		if (observable instanceof IObservableList) {

-			return (IObservableList) observable;

-		}

-		return null;

-	}

-

-	IObservableSet getObservableSet(Widget control, Object data, String property) {

-		IObservable observable = getObservable(control, data, property);

-		if (observable instanceof IObservableSet) {

-			return (IObservableSet) observable;

-		}

-		return null;

-	}

-

-	IObservable localGetObservable(Widget control, Object data, String property) {

-		// find locally

-		for (HashMap<Object, HashMap<String, IObservable>> widgetData : bindingData

-				.values()) {

-			if (widgetData != null) {

-				HashMap<String, IObservable> objectData = widgetData.get(data);

-				if (objectData != null) {

-					IObservable observable = objectData.get(property);

-					if (observable != null) {

-						return observable;

-					}

-				}

-			}

-		}

-		return null;

-	}

-

-	IObservable getObservable(Widget control, Object data, String property) {

-		// find locally

-		IObservable observable = localGetObservable(control, data, property);

-		if (observable != null) {

-			return observable;

-		}

-

-		// find in other ScopeKeeper and then keep it in this ScopeKeeper.

-		Widget rootWidget = UserData.findRootWidget(control);

-		observable = deepFindObservable(rootWidget, data, property);

-		if (observable != null) {

-			addObservableValue(control, data, property, observable);

-		}

-		return observable;

-	}

-

-	static IObservable deepFindObservable(Widget control, Object data,

-			String property) {

-		ScopeKeeper scopeKeeper = UserData.getLocalScopeKeeper(control);

-		if (scopeKeeper != null) {

-			IObservable observable = scopeKeeper.localGetObservable(control,

-					data, property);

-			if (observable != null) {

-				return observable;

-			}

-		}

-		if (control instanceof Composite) {

-			Composite composite = (Composite) control;

-			for (Control child : composite.getChildren()) {

-				IObservable observable = deepFindObservable(child, data,

-						property);

-				if (observable != null) {

-					return observable;

-				}

-			}

-		}

-		return null;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/ScopeManager.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/ScopeManager.java
deleted file mode 100644
index 10313e5..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/ScopeManager.java
+++ /dev/null
@@ -1,555 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.internal.core;

-

-import java.util.ArrayList;

-import java.util.Collection;

-

-import org.eclipse.core.databinding.observable.IObservable;

-import org.eclipse.core.databinding.observable.list.IObservableList;

-import org.eclipse.core.databinding.observable.list.WritableList;

-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;

-import org.eclipse.core.databinding.observable.set.IObservableSet;

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.core.databinding.property.value.IValueProperty;

-import org.eclipse.swt.widgets.Widget;

-import org.eclipse.xwt.IDataProvider;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.core.IBinding;

-import org.eclipse.xwt.databinding.EventPropertyObservableValue;

-import org.eclipse.xwt.databinding.JFaceXWTDataBinding;

-import org.eclipse.xwt.databinding.ListToArrayObservableValue;

-import org.eclipse.xwt.databinding.TypedViewerObservableValueDecorator;

-import org.eclipse.xwt.dataproviders.IObjectDataProvider;

-import org.eclipse.xwt.internal.utils.UserData;

-import org.eclipse.xwt.javabean.metadata.properties.EventProperty;

-import org.eclipse.xwt.metadata.IMetaclass;

-import org.eclipse.xwt.metadata.IProperty;

-import org.eclipse.xwt.metadata.ModelUtils;

-

-public class ScopeManager {

-	public static final int AUTO = 0;

-	public static final int VALUE = 1;

-	public static final int SET = 2;

-	public static final int LIST = 3;

-	public static final int COLLECTION = 4;

-

-	public static IObservableValue observableValue(Object control,

-			Object value, String fullPath,

-			UpdateSourceTrigger updateSourceTrigger) {

-		try {

-			return observeValue(control, value, fullPath, updateSourceTrigger);

-		} catch (Exception e) {

-		}

-		return null;

-	}

-

-	public static IObservableList observableList(Object control, Object value,

-			String fullPath, UpdateSourceTrigger updateSourceTrigger) {

-		try {

-			return (IObservableList) observe(control, value, fullPath,

-					updateSourceTrigger, ScopeManager.LIST);

-		} catch (Exception e) {

-		}

-		return null;

-	}

-

-	public static IObservableSet observableSet(Object control, Object value,

-			String fullPath, UpdateSourceTrigger updateSourceTrigger) {

-		try {

-			return (IObservableSet) observe(control, value, fullPath,

-					updateSourceTrigger, ScopeManager.SET);

-		} catch (Exception e) {

-		}

-		return null;

-	}

-

-	/**

-	 * Reserved only for the calling from XWTLoader

-	 * 

-	 * @param context

-	 * @param data

-	 * @param propertyName

-	 * @return

-	 */

-	public static IObservableValue findObservableValue(Object context,

-			Object control, Object data, String propertyName) {

-		ScopeKeeper scope = UserData.findScopeKeeper(context);

-		if (control == null) {

-			control = context;

-		}

-		return scope.getObservableValue(UserData.getWidget(control), data,

-				propertyName);

-	}

-

-	/**

-	 * Reserved only for the calling from XWTLoader

-	 * 

-	 * @param context

-	 * @param data

-	 * @param propertyName

-	 * @return

-	 */

-	public static IObservableSet findObservableSet(Object context,

-			Object control, Object data, String propertyName) {

-		ScopeKeeper scope = UserData.findScopeKeeper(context);

-		if (control == null) {

-			control = context;

-		}

-		return scope.getObservableSet(UserData.getWidget(control), data,

-				propertyName);

-	}

-

-	/**

-	 * Reserved only for the calling from XWTLoader

-	 * 

-	 * @param context

-	 * @param data

-	 * @param propertyName

-	 * @return

-	 */

-	public static IObservableList findObservableList(Object context,

-			Object control, Object data, String propertyName) {

-		ScopeKeeper scope = UserData.findScopeKeeper(context);

-		if (control == null) {

-			control = context;

-		}

-		return scope.getObservableList(UserData.getWidget(control), data,

-				propertyName);

-	}

-

-	static class ObservableValueBuilder {

-		private Widget widget;

-		private Object control;

-		private Object value;

-		private Object elementType;

-		private BindingExpressionPath expressionPath;

-		private UpdateSourceTrigger updateSourceTrigger;

-		private IDataProvider dataProvider;

-		private String currentPath;

-		private int observeKind = VALUE;

-

-		public ObservableValueBuilder(Object control, Object elementType,

-				BindingExpressionPath expressionPath,

-				UpdateSourceTrigger updateSourceTrigger, int observeKind) {

-			this.control = control;

-			this.expressionPath = expressionPath;

-			this.elementType = elementType;

-			this.updateSourceTrigger = updateSourceTrigger;

-			this.observeKind = observeKind;

-		}

-

-		public IObservable observe(Object targetValue) {

-			this.value = targetValue;

-			widget = UserData.getWidget(control);

-			ScopeKeeper scopeManager = UserData.findScopeKeeper(widget);

-			if (scopeManager == null) {

-				return null;

-			}

-

-			if (expressionPath.getFullPath() == null) {

-				if (targetValue instanceof IObservable) {

-					return (IObservable) targetValue;

-				}

-			}

-

-			IObservable observable = scopeManager.getObservable(widget, value,

-					expressionPath.getStripedPath());

-			if (observable != null) {

-				while (observable instanceof IObservableValue

-						&& ((IObservableValue) observable).getValue() instanceof IObservable) {

-					observable = (IObservable) ((IObservableValue) observable)

-							.getValue();

-				}

-				return observable;

-			}

-			dataProvider = XWT.findDataProvider(value);

-			Object dataValue = value;

-			if (value instanceof IDataProvider) {

-				IDataProvider dataProvider = (IDataProvider) value;

-				dataValue = dataProvider.getData(null);

-			}

-			currentPath = null;

-			Object type = elementType;

-			String[] segments = expressionPath.getSegments();

-			if (segments == null || segments.length == 0) {

-				String segment = ModelUtils

-						.normalizePropertyName(expressionPath.getFullPath());

-				observable = resolveObservablevalue(scopeManager, dataValue,

-						type, segment);

-			} else {

-				if (observeKind == COLLECTION) {

-					// if the first is viewers' property

-					if (!JFaceXWTDataBinding.isViewerProperty(segments[0])) {

-						int kindValue = VALUE;

-						Object targetValueType = dataValue;

-						if (dataValue instanceof IObservableValue) {

-							targetValueType = ((IObservableValue) dataValue).getValueType();

-						}

-						Object propertyType = dataProvider.getModelService().toModelPropertyType(targetValueType, segments[0]);

-						if (propertyType instanceof Class<?>) {

-							Class<?> propertyTypeClass = (Class<?>) propertyType;

-							if (Collection.class.isAssignableFrom(propertyTypeClass) || propertyTypeClass.isArray()) {

-								kindValue = COLLECTION;

-							}

-						}

-						observeKind = kindValue;

-					}

-				}

-				int size = segments.length;

-				int lastObserveKind = observeKind;

-				observeKind = VALUE;

-				for (int i = 0; i < size; i++) {

-					String segment = segments[i];

-					if (i == (size - 1)) {

-						observeKind = lastObserveKind;

-					}

-					observable = resolveObservablevalue(scopeManager,

-							dataValue, type, segment);

-					// Hasan: As long as this is already an IObservableValue we

-					// should look deep into the chain

-					while (observable instanceof IObservableValue

-							&& ((IObservableValue) observable).getValue() instanceof IObservable) {

-						observable = (IObservable) ((IObservableValue) observable)

-								.getValue();

-					}

-					dataValue = observable;

-					if (i != size - 1) {

-						type = dataProvider.getModelService().toModelType(

-								dataValue);

-						if (type != null) {

-							dataProvider = XWT.findDataProvider(type);

-						}

-					}

-				}

-			}

-			return observable;

-		}

-

-		private IObservable resolveObservablevalue(ScopeKeeper scopeManager,

-				Object dataValue, Object type, String segment) {

-			if (!BindingExpressionPath.isEmptyPath(segment)) {

-				int length = segment.length();

-				if (length > 1 && segment.charAt(0) == '('

-						&& segment.charAt(length - 1) == ')') {

-					// It is class

-					String path = segment.substring(1, segment.length() - 1);

-					int index = path.lastIndexOf('.');

-					if (index != -1) {

-						String className = path.substring(0, index);

-						segment = path.substring(index + 1);

-						type = dataProvider.getModelService().loadModelType(

-								className);

-						if (type == null) {

-							type = dataProvider.getModelService()

-									.loadModelType(path);

-							if (type != null) {

-								segment = null;

-							}

-						}

-						if (type == null) {

-							throw new XWTException("Class " + className

-									+ " not found");

-						}

-						dataProvider = XWT.findDataProvider(type);

-					}

-				}

-			}

-			if (currentPath == null) {

-				currentPath = segment;

-			} else if (segment != null) {

-				currentPath = currentPath + '.' + segment;

-			}

-

-			IObservable segmentValue = scopeManager.getObservableValue(widget,

-					value, currentPath);

-			try {

-				if (segmentValue == null) {

-					if (segment != null) {

-						segmentValue = createValueProperty(dataValue, segment,

-								type);

-						if (segmentValue == null) {

-							throw new XWTException(" Property " + segment

-									+ " is not found in "

-									+ expressionPath.getFullPath());

-							// maybe to

-							// raise an

-							// exception

-						}

-						scopeManager.addObservableValue(widget, value,

-								currentPath, segmentValue);

-					} else  if (dataValue instanceof IObservable){

-						segmentValue = (IObservable)dataValue;

-					}

-				}

-				else if (segment == null && type != null) {

-					if (segmentValue instanceof TypedViewerObservableValueDecorator) {

-						TypedViewerObservableValueDecorator typedViewerObservableValueDecorator = (TypedViewerObservableValueDecorator) segmentValue;

-						typedViewerObservableValueDecorator.setElementType(type);

-					}

-				}

-			} catch (IllegalArgumentException e) {

-				// Property is not found

-				String message = e.getMessage();

-				if (!message.startsWith("Could not find property with name")) {

-					throw e;

-				}

-				throw new XWTException(" Property " + segment

-						+ " is not found in " + expressionPath.getFullPath()); // maybe

-																				// to

-																				// raise

-																				// an

-				// exception

-			}

-			return segmentValue;

-		}

-

-		protected IObservable createValueProperty(Object object,

-				String propertyName, Object targetType) {

-			IObservable observable = null;

-			Object type = null;

-			if (targetType == null) {

-				type = dataProvider.getModelService().toModelType(object);

-			} else {

-				type = targetType;

-			}

-

-			if (UserData.getWidget(object) != null) {

-				observable = JFaceXWTDataBinding.observeWidget(object,

-						propertyName, updateSourceTrigger, observeKind);

-			}

-

-			if (observable == null

-					&& dataProvider instanceof IObjectDataProvider) {

-				IMetaclass mateclass = XWT.getMetaclass(type);

-				IProperty property = mateclass.findProperty(propertyName);

-				if (property instanceof EventProperty) {

-					observable = new EventPropertyObservableValue(object,

-							(EventProperty) property);

-				}

-			}

-

-			if (observable != null) {

-				return observable;

-			}

-			observable = dataProvider.observe(object, propertyName, type,

-					observeKind);

-			if (observable instanceof IObservableValue) {

-				IObservableValue activeValue = (IObservableValue) observable;

-

-				Object valueType = activeValue.getValueType();

-				if (valueType instanceof Class<?>) {

-					// TODO maybe need to moved in IDataProvider

-					Class<?> classType = (Class<?>) valueType;

-					if (valueType != null && classType.isArray()) {

-						// Create a IObserableValue to handle the connection

-						// between

-						// Array and List

-

-						Object values = dataProvider.getData(propertyName);

-						ArrayList<Object> array = new ArrayList<Object>();

-						if (values != null) {

-							for (Object value : (Object[]) values) {

-								array.add(value);

-							}

-						}

-						WritableList writableList = new WritableList(XWT

-								.getRealm(), array, classType

-								.getComponentType());

-

-						return new ListToArrayObservableValue(writableList,

-								activeValue);

-					}

-				}

-			}

-			return observable;

-		}

-	}

-

-	static class ObservableFactory extends ObservableValueBuilder implements

-			IObservableFactory {

-

-		public ObservableFactory(Object control,

-				BindingExpressionPath expressionPath,

-				UpdateSourceTrigger updateSourceTrigger) {

-			super(control, null, expressionPath, updateSourceTrigger, AUTO);

-		}

-

-		public IObservable createObservable(Object target) {

-			return observe(target);

-		}

-	}

-

-	public static IObservableValue observeValue(Object control, Object value,

-			String fullPath, UpdateSourceTrigger updateSourceTrigger) {

-		return observeValue(control, value,

-				new BindingExpressionPath(fullPath), updateSourceTrigger);

-	}

-

-	public static IObservableValue observeValue(Object control, Object value,

-			BindingExpressionPath expressionPath,

-			UpdateSourceTrigger updateSourceTrigger) {

-		if (value == null) {

-			value = control;

-		}

-		ObservableValueBuilder builder = new ObservableValueBuilder(control,

-				null, expressionPath, updateSourceTrigger, ScopeManager.VALUE);

-		return (IObservableValue) builder.observe(value);

-	}

-

-	public static IObservable observe(Object control, Object value,

-			BindingExpressionPath expressionPath,

-			UpdateSourceTrigger updateSourceTrigger) {

-		return observe(control, value, expressionPath, updateSourceTrigger,

-				AUTO);

-	}

-

-	public static IObservableFactory observableFactory(Object control,

-			BindingExpressionPath expressionPath,

-			UpdateSourceTrigger updateSourceTrigger) {

-		return new ObservableFactory(control, expressionPath,

-				updateSourceTrigger);

-	}

-	

-	public static IObservable observe(Object control, Object value,

-			String fullPath, UpdateSourceTrigger updateSourceTrigger,

-			int observeKind) {

-		return observe(control, value, new BindingExpressionPath(fullPath),

-				updateSourceTrigger, observeKind);

-	}

-

-	public static IObservable observe(Object control, Object value,

-			BindingExpressionPath expressionPath,

-			UpdateSourceTrigger updateSourceTrigger, int observeKind) {

-		if (value == null) {

-			value = control;

-		}

-		ObservableValueBuilder builder = new ObservableValueBuilder(control,

-				null, expressionPath, updateSourceTrigger, observeKind);

-		return builder.observe(value);

-	}

-

-	public static IObservableValue observeValue(Object control, Object value,

-			Class<?> type, BindingExpressionPath expressionPath,

-			UpdateSourceTrigger updateSourceTrigger) {

-		ObservableValueBuilder builder = new ObservableValueBuilder(control,

-				type, expressionPath, updateSourceTrigger, ScopeManager.VALUE);

-		return (IObservableValue) builder.observe(value);

-	}

-

-	public static IValueProperty createValueProperty(Object control,

-			Object type, BindingExpressionPath expressionPath) {

-		IValueProperty valueProperty = null;

-

-		String[] segments = expressionPath.getSegments();

-		if (segments == null || segments.length == 0) {

-			String segment = expressionPath.getFullPath();

-			valueProperty = doCreateValueProperty(type, segment);

-		} else {

-			for (String segment : segments) {

-				IValueProperty segmentValueProperty = doCreateValueProperty(

-						type, segment);

-				if (valueProperty == null) {

-					valueProperty = segmentValueProperty;

-				} else {

-					valueProperty = valueProperty.value(segmentValueProperty);

-				}

-				type = valueProperty.getValueType();

-			}

-		}

-

-		return valueProperty;

-	}

-

-	protected static IValueProperty doCreateValueProperty(Object type,

-			String fullPath) {

-		IDataProvider dataProvider = XWT.findDataProvider(type);

-		return dataProvider.createValueProperty(type, fullPath);

-	}

-

-	/**

-	 * Reserved only for the calling from XWTLoader

-	 * 

-	 * @param context

-	 * @param data

-	 * @param propertyName

-	 * @return

-	 */

-	public static boolean isPropertyReadOnly(IDataProvider dataProvider,

-			BindingExpressionPath expressionPath) {

-		String[] segments = expressionPath.getSegments();

-		if (segments == null || segments.length == 0) {

-			String segment = expressionPath.getFullPath();

-			return dataProvider.isPropertyReadOnly(segment);

-		} else {

-			Object type = null;

-

-			int last = segments.length - 1;

-			for (int i = 0; i < last; i++) {

-				String segment = segments[i];

-				int length = segment.length();

-				if (length > 1 && segment.charAt(0) == '('

-						&& segment.charAt(length - 1) == ')') {

-					// It is class

-					String path = segment.substring(1, segment.length() - 1);

-					int index = path.lastIndexOf('.');

-					if (index != -1) {

-						String className = path.substring(0, index);

-						segment = path.substring(index + 1);

-						type = dataProvider.getModelService().loadModelType(

-								className);

-						if (type == null) {

-							throw new XWTException("Class " + className

-									+ " not found");

-						}

-						dataProvider = XWT.findDataProvider(type);

-					}

-				}

-

-				type = dataProvider.getDataType(segment);

-

-				if (type != null) {

-					dataProvider = XWT.findDataProvider(type);

-					if (dataProvider == null) {

-						throw new XWTException(

-								"Data probider is not found for the type "

-										+ type.toString());

-					}

-				} else {

-					throw new XWTException(

-							"Type is not found for the property " + segment);

-				}

-			}

-			String segment = segments[last];

-

-			int length = segment.length();

-			if (length > 1 && segment.charAt(0) == '('

-					&& segment.charAt(length - 1) == ')') {

-				// It is class

-				String path = segment.substring(1, segment.length() - 1);

-				int index = path.lastIndexOf('.');

-				if (index != -1) {

-					String className = path.substring(0, index);

-					segment = path.substring(index + 1);

-					type = dataProvider.getModelService().loadModelType(

-							className);

-					if (type == null) {

-						throw new XWTException("Class " + className

-								+ " not found");

-					}

-					dataProvider = XWT.findDataProvider(type);

-				}

-			}

-			return dataProvider.isPropertyReadOnly(segment);

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/UIResource.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/UIResource.java
deleted file mode 100644
index 4dc0474..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/UIResource.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.eclipse.xwt.internal.core;

-

-import java.net.URL;

-

-import org.eclipse.xwt.IUIResource;

-import org.eclipse.xwt.internal.xml.Element;

-

-public class UIResource implements IUIResource {

-	protected Element content;

-	protected URL url;

-	

-	public UIResource(URL url, Element content) {

-		this.content = content;

-		this.url = url;

-	}

-

-	public Element getContent() {

-		return content;

-	}

-

-	public URL getURL() {

-		return url;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/UpdateSourceTrigger.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/UpdateSourceTrigger.java
deleted file mode 100644
index bd7240a..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/UpdateSourceTrigger.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.internal.core;

-

-/**

- * <p>

- * Default

- * </p>

- * <p>

- * The default UpdateSourceTrigger value of the binding target property. The

- * default value for most dependency properties is PropertyChanged, while the

- * Text property has a default value of LostFocus.

- * </p>

- * <p>

- * A programmatic way to determine the default UpdateSourceTrigger value of a

- * dependency property is to get the property metadata of the property using

- * GetMetadata and then check the value of the DefaultUpdateSourceTrigger

- * property.

- * </p>

- * <p/>

- * <p>

- * PropertyChanged

- * </p>

- * <p>

- * Updates the binding source immediately whenever the binding target property

- * changes.

- * </p>

- * <p/>

- * <p>

- * LostFocus

- * </p>

- * <p>

- * Updates the binding source whenever the binding target element loses focus.

- * </p>

- * 

- * @author yyang

- * 

- */

-public enum UpdateSourceTrigger {

-	Default, PropertyChanged, LostFocus;

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/databinding/menuitem/AbstractMenuItemObservableValue.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/databinding/menuitem/AbstractMenuItemObservableValue.java
deleted file mode 100644
index 06ad8b7..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/databinding/menuitem/AbstractMenuItemObservableValue.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.internal.databinding.menuitem;

-

-import org.eclipse.core.databinding.observable.Realm;

-import org.eclipse.core.databinding.observable.value.AbstractObservableValue;

-import org.eclipse.jface.databinding.swt.SWTObservables;

-import org.eclipse.swt.events.DisposeEvent;

-import org.eclipse.swt.events.DisposeListener;

-import org.eclipse.swt.widgets.MenuItem;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public abstract class AbstractMenuItemObservableValue extends AbstractObservableValue {

-	private final MenuItem menuItem;

-

-	/**

-	 * Standard constructor for a MenuItem ObservableValue. Makes sure that the observable gets disposed when the MenuItem is disposed.

-	 * 

-	 * @param widget

-	 */

-	protected AbstractMenuItemObservableValue(MenuItem menuItem) {

-		this(SWTObservables.getRealm(menuItem.getDisplay()), menuItem);

-	}

-

-	/**

-	 * Constructor that allows for the setting of the realm. Makes sure that the observable gets disposed when the MenuItem is disposed.

-	 * 

-	 * @param realm

-	 * @param widget

-	 * @since 1.2

-	 */

-	protected AbstractMenuItemObservableValue(Realm realm, MenuItem menuItem) {

-		super(realm);

-		this.menuItem = menuItem;

-		menuItem.addDisposeListener(disposeListener);

-	}

-

-	private DisposeListener disposeListener = new DisposeListener() {

-		public void widgetDisposed(DisposeEvent e) {

-			AbstractMenuItemObservableValue.this.dispose();

-		}

-	};

-

-	/**

-	 * @return Returns the MenuItem.

-	 */

-	public MenuItem getMenuItem() {

-		return menuItem;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/databinding/menuitem/MenuItemEnabledObservableValue.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/databinding/menuitem/MenuItemEnabledObservableValue.java
deleted file mode 100644
index a9f2743..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/databinding/menuitem/MenuItemEnabledObservableValue.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.internal.databinding.menuitem;

-

-import org.eclipse.core.databinding.observable.Realm;

-import org.eclipse.swt.widgets.MenuItem;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class MenuItemEnabledObservableValue extends AbstractMenuItemObservableValue {

-

-	public MenuItemEnabledObservableValue(MenuItem menuItem) {

-		super(menuItem);

-	}

-

-	public MenuItemEnabledObservableValue(Realm realm, MenuItem menuItem) {

-		super(realm, menuItem);

-	}

-

-	@Override

-	protected Object doGetValue() {

-		return getMenuItem().getEnabled();

-	}

-

-	public Object getValueType() {

-		return Boolean.class;

-	}

-

-	protected void doSetValue(Object value) {

-		getMenuItem().setEnabled((Boolean) value);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/databinding/menuitem/MenuItemSelectionObservableValue.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/databinding/menuitem/MenuItemSelectionObservableValue.java
deleted file mode 100644
index c711490..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/databinding/menuitem/MenuItemSelectionObservableValue.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.internal.databinding.menuitem;

-

-import org.eclipse.core.databinding.observable.Realm;

-import org.eclipse.swt.widgets.MenuItem;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class MenuItemSelectionObservableValue extends AbstractMenuItemObservableValue {

-

-	public MenuItemSelectionObservableValue(MenuItem menuItem) {

-		super(menuItem);

-	}

-

-	public MenuItemSelectionObservableValue(Realm realm, MenuItem menuItem) {

-		super(realm, menuItem);

-	}

-

-	@Override

-	protected Object doGetValue() {

-		return getMenuItem().getSelection();

-	}

-

-	public Object getValueType() {

-		return Boolean.class;

-	}

-

-	protected void doSetValue(Object value) {

-		getMenuItem().setSelection((Boolean) value);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/ClassLoaderUtil.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/ClassLoaderUtil.java
deleted file mode 100644
index bfa1ff6..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/ClassLoaderUtil.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.internal.utils;

-

-import java.lang.reflect.Field;

-import java.lang.reflect.Method;

-import java.lang.reflect.Modifier;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.ILoadingContext;

-import org.eclipse.xwt.internal.xml.DocumentObject;

-import org.eclipse.xwt.internal.xml.Element;

-

-public class ClassLoaderUtil {

-	static final String[] DefaultPackages = new String[] {

-	/*

-	 * UIElement.class.getPackage().getName(), Validation.class.getPackage().getName(), Timeline.class.getPackage().getName(), Binding.class.getPackage().getName(),

-	 */};

-

-	static public Class<?> loadClass(ILoadingContext loadingContext, String className) {

-		Class<?> type = doLoadClass(loadingContext, className);

-		if (type != null) {

-			return type;

-		}

-		int index = className.indexOf('.');

-		if (index == -1) {

-			for (String packageName : DefaultPackages) {

-				type = doLoadClass(loadingContext, packageName + "." + className);

-				if (type != null) {

-					return type;

-				}

-			}

-		}

-		return null;

-	}

-

-	private static Class<?> doLoadClass(ILoadingContext loadingContext, String className) {

-		Class<?> type = loadingContext.loadClass(className);

-		if (type != null) {

-			return type;

-		}

-		try {

-			return Class.forName(className);

-		} catch (ClassNotFoundException e1) {

-		}

-		return null;

-	}

-

-	static public Object loadMember(ILoadingContext loadingContext, String className, String memberName, boolean raiseException) {

-		Class<?> type = loadClass(loadingContext, className);

-		return loadMember(loadingContext, type, memberName, raiseException);

-	}

-

-	static public Object loadMember(ILoadingContext loadingContext, Class<?> type, String memberName, boolean raiseException) {

-

-		try {

-			Field field = type.getField(memberName);

-			if (raiseException && !Modifier.isStatic(field.getModifiers())) {

-				throw new IllegalStateException(type.getName() + "." + memberName + " is not static member.");

-			}

-			return field.get(null);

-		} catch (Exception e) {

-			if (e instanceof NoSuchFieldException) {

-				Method method = ObjectUtil.findGetter(type, memberName, null);

-				if (raiseException && (method == null || !Modifier.isStatic(method.getModifiers()))) {

-					throw new IllegalStateException(type.getName() + "." + memberName + " is not static member.");

-				}

-				try {

-					return method.invoke(null);

-				} catch (Exception exception) {

-					e = exception;

-				}

-			}

-			if (raiseException) {

-				e.printStackTrace();

-				throw new IllegalStateException(e);

-			}

-		}

-		return null;

-	}

-

-	static public Object loadStaticMember(ILoadingContext loadingContext, Element element) {

-		String name = element.getName();

-		String namespace = element.getNamespace();

-		Object value = doLoadMember(loadingContext, name, namespace);

-		if (value != null) {

-			return value;

-		}

-		String content = element.getContent();

-		if (content == null) {

-			DocumentObject member = element.getAttribute(IConstants.XWT_NAMESPACE, IConstants.XAML_X_STATIC_MEMBER);

-			if (member == null) {

-				member = element;

-			}

-			if (member != null) {

-				content = member.getContent();

-				if (content == null) {

-					for (DocumentObject documentObject : member.getChildren()) {

-						String ns = documentObject.getNamespace();

-						String n = documentObject.getName();

-						return doLoadMember(loadingContext, n, ns);

-					}

-				}

-			}

-		} else {

-			if (IConstants.XAML_X_STATIC.equals(name) && IConstants.XWT_X_NAMESPACE.equals(namespace)) {

-				namespace = IConstants.XWT_NAMESPACE;

-				return doLoadMember(loadingContext, content, namespace);

-			}

-		}

-		// TODO

-		return null;

-	}

-

-	protected static Object doLoadMember(ILoadingContext loadingContext, String name, String namespace) {

-		int lastIndex = name.lastIndexOf('.');

-		if (lastIndex == -1) {

-			throw new IllegalStateException("Separator '.' is missing in:" + name);

-		}

-		String className = name.substring(0, lastIndex);

-		String memberName = name.substring(lastIndex + 1);

-

-		try {

-			Class type = NamespaceHelper.loadCLRClass(loadingContext, className, namespace);

-			if (type != null) {

-				return ClassLoaderUtil.loadMember(loadingContext, type, memberName, true);

-			}

-		} catch (ClassNotFoundException e) {

-			throw new RuntimeException(e);

-		}

-		return null;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/DocumentObjectSorter.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/DocumentObjectSorter.java
deleted file mode 100644
index e9c5775..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/DocumentObjectSorter.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.internal.utils;

-

-import java.io.Serializable;

-import java.util.Collections;

-import java.util.Comparator;

-import java.util.LinkedList;

-import java.util.List;

-

-import org.eclipse.xwt.internal.xml.Attribute;

-import org.eclipse.xwt.internal.xml.DocumentObject;

-import org.eclipse.xwt.internal.xml.Element;

-

-public class DocumentObjectSorter {

-

-	public static List<DocumentObject> sortWithAttr(DocumentObject[] sourceArray, String attrName) {

-		return sortWithAttr(sourceArray, new AttrComparator(attrName), attrName);

-	}

-

-	public static List<DocumentObject> sortWithAttr(DocumentObject[] sourceArray, Comparator<Element> comparator, String attrName) {

-		List<DocumentObject> columnsList = new LinkedList<DocumentObject>();

-		for (DocumentObject column : sourceArray) {

-			Element columnElement = (Element) column;

-			Attribute indexAttr = columnElement.getAttribute(attrName);

-			if (indexAttr == null) {

-				columnsList.add(column);

-			}

-		}

-

-		List<Element> tempList = new LinkedList<Element>();

-		for (DocumentObject column : sourceArray) {

-			Element columnElement = (Element) column;

-			Attribute indexAttr = columnElement.getAttribute(attrName);

-			if (indexAttr != null) {

-				tempList.add(columnElement);

-			}

-		}

-

-		if (comparator == null) {

-			comparator = new AttrComparator(attrName);

-		}

-		Collections.sort(tempList, comparator);

-

-		for (Element columnElement : tempList) {

-			Attribute indexAttr = columnElement.getAttribute(attrName);

-			try {

-				int index = Integer.parseInt(indexAttr.getContent());

-				columnsList.add(index, columnElement);

-			} catch (Exception e) {

-				columnsList.add(columnsList.size(), columnElement);

-			}

-		}

-

-		return columnsList;

-	}

-

-	private static class AttrComparator implements Comparator<Element>, Serializable {

-		private String attrName;

-

-		public AttrComparator(String attrName) {

-			this.attrName = attrName;

-		}

-

-		public int compare(Element e1, Element e2) {

-			Attribute attr1 = e1.getAttribute(attrName);

-			Attribute attr2 = e2.getAttribute(attrName);

-			String compare1 = attr1.getContent();

-			String compare2 = attr2.getContent();

-			if (compare1 == null || compare2 == null) {

-				return 0;

-			}

-			try {

-				int index1 = Integer.parseInt(compare1);

-				int index2 = Integer.parseInt(compare2);

-				return index1 > index2 ? 1 : -1;

-			} catch (Exception e) {

-				return compare1.compareTo(compare2);

-			}

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/LoggerManager.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/LoggerManager.java
deleted file mode 100644
index 809cd9e..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/LoggerManager.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-

-package org.eclipse.xwt.internal.utils;

-

-import java.util.logging.Level;

-import java.util.logging.Logger;

-

-/**

- * Logger Manager.

- * 

- * @author jliu

- */

-public class LoggerManager {

-

-	private static Logger logger = Logger.getLogger("org.eclipse.xwt.utils.LoggerManager");

-

-	private LoggerManager() {

-	}

-

-	public static void log(Throwable e, String message) {

-		logger.log(Level.SEVERE, message, e);

-	}

-

-	public static void log(Throwable e) {

-		log(e, null);

-	}

-

-	public static void log(String message) {

-		log(null, message);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/NamespaceHelper.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/NamespaceHelper.java
deleted file mode 100644
index 32a6190..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/NamespaceHelper.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.internal.utils;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.ILoadingContext;

-

-public class NamespaceHelper {

-	static public Class<?> loadCLRClass(ILoadingContext loadingContext, String name, String namespace) throws ClassNotFoundException {

-		// xmlns:custom="clr-namespace:SDKSample;assembly=SDKSampleLibrary"

-		if (namespace.startsWith(IConstants.XAML_CLR_NAMESPACE_PROTO)) {

-			String contentSegment = namespace.substring(IConstants.XAML_CLR_NAMESPACE_PROTO.length());

-			String packageName = contentSegment;

-			String assembly = null;

-			int index = contentSegment.indexOf(";");

-			if (index != -1) {

-				packageName = contentSegment.substring(0, index);

-				contentSegment = contentSegment.substring(index + 1);

-				if (contentSegment.startsWith(IConstants.XAML_CLR_ASSEMBLY)) {

-					assembly = contentSegment.substring(IConstants.XAML_CLR_ASSEMBLY.length());

-				} else {

-					throw new IllegalStateException(IConstants.XAML_CLR_ASSEMBLY);

-				}

-			}

-			if (assembly != null) {

-				// TODO Load jar using URLClassLoader

-			}

-			if (packageName != null && packageName.length() > 0) {

-				name = packageName + "." + name;

-			}

-			return ClassLoaderUtil.loadClass(loadingContext, name);

-		}

-		return null;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/ObjectUtil.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/ObjectUtil.java
deleted file mode 100644
index adec2f4..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/ObjectUtil.java
+++ /dev/null
@@ -1,406 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.internal.utils;

-

-import java.lang.reflect.Constructor;

-import java.lang.reflect.Method;

-import java.util.ArrayList;

-import java.util.LinkedHashSet;

-import java.util.List;

-import java.util.Set;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.xwt.XWT;

-

-/**

- * Object Tools.

- * 

- * @author yyang (yves.yang@soyatec.com)

- * @version 1.0

- */

-public class ObjectUtil {

-

-	public static final Class<?>[] EMPTY = new Class[0];

-

-	private ObjectUtil() {

-	}

-	

-	public static Class<?> normalizedType(Class<?> type) {

-		if (type == int.class) {

-			return Integer.class;

-		}

-		if (type == double.class) {

-			return Double.class;

-		}

-		if (type == float.class) {

-			return Float.class;

-		}

-		if (type == boolean.class) {

-			return Boolean.class;

-		}

-		if (type == char.class) {

-			return Character.class;

-		}

-		if (type == byte.class) {

-			return Byte.class;

-		}

-		return type;

-	}

-

-	public static boolean isAssignableFrom(Class<?> source, Class<?> target) {

-		if (normalizedType(source) == normalizedType(target)) {

-			return true;

-		}

-		return source.isAssignableFrom(target);

-	}

-	

-	/**

-	 * Find the compatible class. This includes superclasses, interfaces and so on.

-	 * 

-	 * @param clazz

-	 *            the specified class.

-	 * @return Returns the class array includes its superclasses, interfaces and itself.

-	 */

-	public static final Class<?>[] findCompatibleClasses(Class<?> clazz) {

-		Set<Class<?>> classes = new LinkedHashSet<Class<?>>();

-

-		// Add itself to list.

-		classes.add(clazz);

-

-		// Add primitive compatible type

-		if (clazz == Boolean.class) {

-			classes.add(boolean.class);

-		} else if (clazz == Byte.class) {

-			classes.add(byte.class);

-		} else if (clazz == Short.class) {

-			classes.add(short.class);

-		} else if (clazz == Integer.class) {

-			classes.add(int.class);

-		} else if (clazz == Long.class) {

-			classes.add(long.class);

-		} else if (clazz == Float.class) {

-			classes.add(float.class);

-		} else if (clazz == Double.class) {

-			classes.add(double.class);

-		} else if (clazz == Character.class) {

-			classes.add(char.class);

-		} else if (clazz == boolean.class) {

-			classes.add(Boolean.class);

-		} else if (clazz == byte.class) {

-			classes.add(Byte.class);

-		} else if (clazz == short.class) {

-			classes.add(Short.class);

-		} else if (clazz == int.class) {

-			classes.add(Integer.class);

-		} else if (clazz == long.class) {

-			classes.add(Long.class);

-		} else if (clazz == float.class) {

-			classes.add(Float.class);

-		} else if (clazz == double.class) {

-			classes.add(Double.class);

-		} else if (clazz == char.class) {

-			classes.add(Character.class);

-		}

-

-		// Add its interfaces

-		findInterfaces(classes, clazz);

-

-		// Add its superclasses

-		findSuperClasses(classes, clazz);

-

-		// At last, add Object class.

-		classes.add(Object.class);

-

-		return classes.toArray(EMPTY);

-	}

-

-	public static Object resolveValue(Object value, Class<?> targetType, Object defaultValue) {

-		return resolveValue(value, value.getClass(), targetType, defaultValue);

-	}

-

-	public static Object resolveValue(Object value, Class<?> sourceType, Class<?> targetType, Object defaultValue) {

-		IConverter converter = XWT.findConvertor(sourceType, targetType);

-		if (converter != null) {

-			return converter.convert(value);

-		}

-		return defaultValue;

-	}

-

-	/**

-	 * Find compatible constructor for specified class.

-	 * 

-	 * @param clazz

-	 *            the specified class.

-	 * @param argumentTypes

-	 *            constructor argument types.

-	 * @return Returns constructor instance. If snot find, returns null.

-	 */

-	public static final Constructor<?> findConstructor(Class<?> clazz, Class<?>... argumentTypes) {

-

-		Class<?>[][] classesArray = new Class[argumentTypes.length][];

-

-		for (int i = 0, len = argumentTypes.length; i < len; i++) {

-			Class<?>[] classes = findCompatibleClasses(argumentTypes[i]);

-			classesArray[i] = classes;

-		}

-

-		int totalPossibles = 1;

-		for (int i = 0; i < classesArray.length; i++) {

-			totalPossibles *= classesArray[i].length;

-		}

-

-		List<Class<?>[]> classList = new ArrayList<Class<?>[]>(totalPossibles);

-		computeArguments(classList, classesArray, new Class[classesArray.length], 0);

-

-		for (Class<?>[] arguments : classList) {

-			try {

-				return clazz.getConstructor(arguments);

-			} catch (NoSuchMethodException e) {

-				continue;

-			}

-		}

-

-		return null;

-	}

-

-	/**

-	 * Find compatible public method for specified class.

-	 * 

-	 * @param clazz

-	 *            the specified class.

-	 * @param name

-	 *            method name.

-	 * @param argumentTypes

-	 *            method argument types. If it is a null value, system will find method without argument types.

-	 * @return Returns method instance. If not find, returns null.

-	 */

-	public static final Method findMethod(Class<?> clazz, String name, Class<?>... argumentTypes) {

-

-		if (argumentTypes != null && argumentTypes.length > 0) {

-

-			Class<?>[][] classesArray = new Class[argumentTypes.length][];

-

-			for (int i = 0, len = argumentTypes.length; i < len; i++) {

-				Class<?>[] classes = findCompatibleClasses(argumentTypes[i]);

-				classesArray[i] = classes;

-			}

-

-			int totalPossibles = 1;

-			for (int i = 0; i < classesArray.length; i++) {

-				totalPossibles *= classesArray[i].length;

-			}

-

-			List<Class<?>[]> classList = new ArrayList<Class<?>[]>(totalPossibles);

-			computeArguments(classList, classesArray, new Class[classesArray.length], 0);

-

-			for (Class<?>[] arguments : classList) {

-				try {

-					return clazz.getDeclaredMethod(name, arguments);

-				} catch (NoSuchMethodException e) {

-					continue;

-				}

-			}

-		} else {

-

-			// find method without argument types;

-

-			Method[] methods = clazz.getMethods();

-			for (Method method : methods) {

-				if (method.getName().equals(name)) {

-					return method;

-				}

-			}

-		}

-

-		return null;

-	}

-

-	/**

-	 * Find compatible method for specified class.

-	 * 

-	 * @param clazz

-	 *            the specified class.

-	 * @param name

-	 *            method name.

-	 * @param argumentTypes

-	 *            method argument types. If it is a null value, system will find method without argument types.

-	 * @return Returns method instance. If not find, returns null.

-	 */

-	public static final Method findDeclaredMethod(Class<?> clazz, String name, Class<?>... argumentTypes) {

-

-		if (argumentTypes != null && argumentTypes.length > 0) {

-

-			Class<?>[][] classesArray = new Class[argumentTypes.length][];

-

-			for (int i = 0, len = argumentTypes.length; i < len; i++) {

-				Class<?>[] classes = findCompatibleClasses(argumentTypes[i]);

-				classesArray[i] = classes;

-			}

-

-			int totalPossibles = 1;

-			for (int i = 0; i < classesArray.length; i++) {

-				totalPossibles *= classesArray[i].length;

-			}

-

-			List<Class<?>[]> classList = new ArrayList<Class<?>[]>(totalPossibles);

-			computeArguments(classList, classesArray, new Class[classesArray.length], 0);

-

-			for (Class<?>[] arguments : classList) {

-				try {

-					return clazz.getDeclaredMethod(name, arguments);

-				} catch (NoSuchMethodException e) {

-					continue;

-				}

-			}

-		} else {

-

-			// find method without argument types;

-			Method[] methods = clazz.getDeclaredMethods();

-			for (Method method : methods) {

-				if (method.getName().equals(name) && method.getParameterTypes().length == 0) {

-					return method;

-				}

-			}

-		}

-		Class<?> superclass = clazz.getSuperclass();

-		if (superclass != null) {

-			return findDeclaredMethod(superclass, name, argumentTypes);

-		}

-

-		return null;

-	}

-

-	/**

-	 * Find property getter method for specified class.

-	 * 

-	 * @param clazz

-	 *            the specified class.

-	 * @param name

-	 *            property name

-	 * @param type

-	 *            property type. If it is a null value, system will find the suitable method.

-	 * @return Returns method instance. If not find, returns null.

-	 */

-	public static final Method findGetter(Class<?> clazz, String name, Class<?> type) {

-		if (name == null || name.length() == 0) {

-			throw new IllegalArgumentException("Invalid getter method name, null value found");

-		}

-

-		String getterName = "get" + name.substring(0, 1).toUpperCase() + name.substring(1);

-

-		Method method;

-		try {

-			if (clazz.isEnum()) {

-				method = clazz.getClass().getMethod(getterName, EMPTY);

-			}

-			else {

-				method = clazz.getMethod(getterName, EMPTY);

-			}				

-		} catch (NoSuchMethodException e1) {

-

-			// :Check if it is a boolean getter

-			getterName = "is" + name.substring(0, 1).toUpperCase() + name.substring(1);

-			try {

-				method = clazz.getMethod(getterName, EMPTY);

-				if (method.getReturnType() != Boolean.class && method.getReturnType() != boolean.class) {

-					return null;

-				}

-			} catch (NoSuchMethodException e2) {

-				method = findCaseIgnoreGetter(clazz, name, type);

-			}

-			// :~

-		}

-

-		if (type == null) {

-			return method;

-		} else {

-			if (method != null) {

-				Class<?> returnType = method.getReturnType();

-				Class<?>[] types = findCompatibleClasses(type);

-				for (Class<?> t : types) {

-					if (t == returnType) {

-						return method;

-					}

-				}

-			}

-		}

-

-		return null;

-	}

-

-	private static Method findCaseIgnoreGetter(Class<?> clazz, String name, Class<?> type) {

-		String getterName = "get" + name.substring(0, 1).toUpperCase() + name.substring(1);

-		String isName = "is" + name.substring(0, 1).toUpperCase() + name.substring(1);

-

-		for (Method element : clazz.getMethods()) {

-			if (element.getParameterTypes().length != 0) {

-				continue;

-			}

-			if (element.getName().equalsIgnoreCase(getterName)) {

-				return element;

-			}

-			if (element.getName().equalsIgnoreCase(isName) && element.getReturnType() != Boolean.class && element.getReturnType() != boolean.class) {

-				return element;

-			}

-		}

-		return null;

-	}	

-	

-	/**

-	 * Find superclasses and add them to list.

-	 */

-	private static void findSuperClasses(Set<Class<?>> list, Class<?> clazz) {

-		if (clazz != null) {

-			Class<?> superClass = clazz.getSuperclass();

-

-			if (superClass != Object.class) {

-				list.add(superClass);

-

-				findInterfaces(list, superClass);

-

-				findSuperClasses(list, superClass);

-			}

-		}

-	}

-

-	/**

-	 * Find interfaces and add them to list.

-	 */

-	private static void findInterfaces(Set<Class<?>> list, Class<?> clazz) {

-		if (clazz != null) {

-			Class<?>[] interfaces = clazz.getInterfaces();

-

-			for (Class<?> interfac1 : interfaces) {

-				list.add(interfac1);

-				findInterfaces(list, interfac1);

-			}

-		}

-	}

-

-	/**

-	 * Combine arithmetic.

-	 */

-	private static void computeArguments(List<Class<?>[]> list, Class<?>[][] arguments, Class<?>[] buffer, int start) {

-		if (start >= arguments.length) {

-			Class<?>[] classes = new Class<?>[arguments.length];

-			for (int i = 0; i < arguments.length; ++i) {

-				classes[i] = buffer[i];

-			}

-			list.add(classes);

-			return;

-		}

-

-		for (int i = 0; i < arguments[start].length; ++i) {

-			buffer[start] = arguments[start][i];

-			computeArguments(list, arguments, buffer, start + 1);

-		}

-	}

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/ObservableValueManager.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/ObservableValueManager.java
deleted file mode 100644
index fca5a0c..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/ObservableValueManager.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.internal.utils;

-

-import java.util.HashMap;

-

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.xwt.IEventGroup;

-import org.eclipse.xwt.IObservableValueListener;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.javabean.metadata.properties.EventProperty;

-import org.eclipse.xwt.metadata.IMetaclass;

-import org.eclipse.xwt.metadata.IProperty;

-import org.eclipse.xwt.metadata.ModelUtils;

-

-public class ObservableValueManager implements IObservableValueListener {

-	protected HashMap<String, IObservableValue> map;

-	protected Object host;

-	

-	public ObservableValueManager(Object host) {

-		this.host = host;

-	}

-	

-	public Object getHost() {

-		return host;

-	}

-	

-	public void changeValueHandle(Object object, Event event){

-		// TODO the cast is not clean. 

-		EventProperty property = (EventProperty) object;

-		IObservableValue value = map.get(property.getName());

-		if (value != null) {

-			Boolean oldValue = (Boolean) value.getValue();

-			if (oldValue == null) {

-				oldValue = false;

-			}

-			value.setValue(!oldValue);

-		}

-		

-		IMetaclass metaclass = XWT.getMetaclass(host);

-		

-		// TODO this conversion should be simplied

-		String eventName = ModelUtils.normalizePropertyName(property.getEvent().getName());

-		IEventGroup eventGroup = metaclass.getEventGroup(eventName);

-		if (eventGroup != null) {

-			eventGroup.fireEvent(this, property);

-		}

-	}

-	

-	public void registerValue(IProperty property, IObservableValue observableValue) {

-		if (map == null) {

-			map = new HashMap<String, IObservableValue>();

-		}

-		map.put(property.getName(), observableValue);

-		

-		IMetaclass metaclass = XWT.getMetaclass(host);

-		// TODO it is not clean. 

-		EventProperty eventProperty  = (EventProperty) property;

-		

-		// TODO this conversion should be simplied

-		String eventName = ModelUtils.normalizePropertyName(eventProperty.getEvent().getName());		

-		IEventGroup eventGroup = metaclass.getEventGroup(eventName);

-		if (eventGroup != null) {

-			eventGroup.registerEvent(this, property);

-		}

-	}

-	

-	public IObservableValue getValue(IProperty property) {

-		if (map == null) {

-			return null;

-		}

-		return map.get(property.getName());

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/TableEditorHelper.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/TableEditorHelper.java
deleted file mode 100644
index 321b0b2..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/TableEditorHelper.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.internal.utils;

-

-import org.eclipse.swt.custom.CCombo;

-import org.eclipse.swt.events.ModifyEvent;

-import org.eclipse.swt.events.ModifyListener;

-import org.eclipse.swt.events.SelectionEvent;

-import org.eclipse.swt.events.SelectionListener;

-import org.eclipse.swt.widgets.Combo;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.TableItem;

-import org.eclipse.swt.widgets.Text;

-

-public class TableEditorHelper {

-	public static void initEditor(final TableItem tableItem, Control editor, final int column) {

-		if (editor instanceof Text) {

-			final Text text = (Text) editor;

-			text.setText(tableItem.getText(column));

-			text.addModifyListener(new ModifyListener() {

-				public void modifyText(ModifyEvent e) {

-					tableItem.setText(column, text.getText());

-				}

-			});

-		} else if (editor instanceof CCombo) {

-			final CCombo combo = (CCombo) editor;

-			combo.setText(tableItem.getText(column));

-			combo.addSelectionListener(new SelectionListener() {

-				public void widgetDefaultSelected(SelectionEvent e) {

-					tableItem.setText(column, combo.getText());

-				}

-

-				public void widgetSelected(SelectionEvent e) {

-					tableItem.setText(column, combo.getItem(combo.getSelectionIndex()));

-				}

-			});

-		} else if (editor instanceof Combo) {

-			final Combo combo = (Combo) editor;

-			combo.setText(tableItem.getText(column));

-			combo.addSelectionListener(new SelectionListener() {

-				public void widgetDefaultSelected(SelectionEvent e) {

-					tableItem.setText(column, combo.getText());

-				}

-

-				public void widgetSelected(SelectionEvent e) {

-					tableItem.setText(column, combo.getItem(combo.getSelectionIndex()));

-				}

-			});

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/UserData.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/UserData.java
deleted file mode 100644
index e79c090..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/UserData.java
+++ /dev/null
@@ -1,756 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.internal.utils;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.swt.custom.ControlEditor;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.widgets.Caret;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.CoolItem;
-import org.eclipse.swt.widgets.ExpandItem;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.ScrollBar;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TabItem;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.swt.widgets.ToolTip;
-import org.eclipse.swt.widgets.TreeColumn;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.IObservableValueListener;
-import org.eclipse.xwt.XWT;
-import org.eclipse.xwt.core.IUserDataConstants;
-import org.eclipse.xwt.core.TriggerBase;
-import org.eclipse.xwt.databinding.BindingContext;
-import org.eclipse.xwt.databinding.IBindingContext;
-import org.eclipse.xwt.internal.core.IEventController;
-import org.eclipse.xwt.internal.core.ScopeKeeper;
-import org.eclipse.xwt.javabean.Controller;
-import org.eclipse.xwt.jface.JFacesHelper;
-import org.eclipse.xwt.metadata.IProperty;
-
-public class UserData {
-	private HashMap<Object, Object> dictionary = null;
-	private IObservableValueListener observableValueManager;
-
-	protected IObservableValueListener getObservableValueManager() {
-		return observableValueManager;
-	}
-
-	protected void setObservableValueManager(
-			IObservableValueListener observableValueManager) {
-		this.observableValueManager = observableValueManager;
-	}
-
-	public void setData(Object key, Object value) {
-		if (dictionary == null) {
-			dictionary = new HashMap<Object, Object>();
-		}
-		dictionary.put(key, value);
-		if (observableValueManager != null && (key instanceof IProperty)) {
-			IObservableValue observableValue = observableValueManager
-					.getValue((IProperty) key);
-			observableValue.setValue(value);
-		}
-	}
-
-	public Object getData(Object key) {
-		if (dictionary == null) {
-			return null;
-		}
-		return dictionary.get(key);
-	}
-
-	public Object removeData(Object key) {
-		if (dictionary == null) {
-			return null;
-		}
-		return dictionary.remove(key);
-	}
-
-	public boolean containsKey(Object key) {
-		if (dictionary == null) {
-			return false;
-		}
-		return dictionary.containsKey(key);
-	}
-
-	public Collection<Object> keySet() {
-		if (dictionary == null) {
-			return Collections.EMPTY_LIST;
-		}
-		return dictionary.keySet();
-	}
-
-	public static boolean isUIElementType(Object element) {
-		if (element instanceof Class<?>) {
-			Class<?> elementType = (Class<?>) element;
-			return Widget.class.isAssignableFrom(elementType)
-					|| Viewer.class.isAssignableFrom(elementType)
-					|| ControlEditor.class.isAssignableFrom(elementType);
-		}
-		return false;
-	}
-
-	public static void bindNameContext(Object element, ScopeKeeper nameContext) {
-		Widget widget = getWidget(element);
-		if (widget == null) {
-			return;
-		}
-		UserData dataDictionary = updateDataDictionary(widget);
-		if (dataDictionary.getData(IUserDataConstants.XWT_NAMECONTEXT_KEY) != null) {
-			throw new IllegalStateException("Name context is already set");
-		}
-		dataDictionary.setData(IUserDataConstants.XWT_NAMECONTEXT_KEY,
-				nameContext);
-	}
-
-	protected static UserData updateDataDictionary(Object target) {
-		Widget widget = getWidget(target);
-		if (widget == null) {
-			return null;
-		}
-		UserData dataDictionary = (UserData) widget
-				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
-		if (dataDictionary == null) {
-			dataDictionary = new UserData();
-			widget.setData(IUserDataConstants.XWT_USER_DATA_KEY, dataDictionary);
-		}
-		return dataDictionary;
-	}
-
-	public static Shell findShell(Object element) {
-		Widget widget = getWidget(element);
-		if (widget == null) {
-			return null;
-		}
-		if (widget instanceof Shell) {
-			return (Shell) widget;
-		}
-		Control parent = (Control) findParent(widget, Control.class);
-		if (parent != null) {
-			return parent.getShell();
-		}
-		return null;
-	}
-
-	/**
-	 * Find the root widget used by XWT. In fact, it tries to find the root
-	 * ScopeKeeper
-	 * 
-	 * @param element
-	 * @return
-	 */
-	public static Widget findRootWidget(Object element) {
-		Widget root = null;
-		Widget current = getWidget(element);
-		while (current != null) {
-			ScopeKeeper scopeKeeper = findScopeKeeper(current);
-			if (scopeKeeper != null) {
-				root = current;
-			}
-			current = getTreeParent(current);
-		}
-
-		return root;
-	}
-
-	public static Composite findCompositeParent(Object element) {
-		Widget widget = getWidget(element);
-		if (widget == null) {
-			return null;
-		}
-		Control control = getParent(widget);
-		while (control != null && !(control instanceof Composite)) {
-			control = getParent(control);
-		}
-		return (Composite) control;
-	}
-
-	public static Object findParent(Widget element, Class<?> type) {
-		Widget widget = getTreeParent(element);
-		while (widget != null && !(type.isInstance(widget))) {
-			widget = getTreeParent(widget);
-		}
-		return widget;
-	}
-
-	public static ScopeKeeper findScopeKeeper(Object element) {
-		ScopeKeeper scopeKeeper = getLocalScopeKeeper(element);
-		if (scopeKeeper != null) {
-			return scopeKeeper;
-		}
-		Widget parent = getTreeParent(element);
-		if (parent != null && !parent.isDisposed()) {
-			return findScopeKeeper(parent);
-		}
-		return null;
-	}
-
-	public static Widget findScopeRoot(Object element) {
-		Widget widget = getWidget(element);
-		if (widget == null) {
-			return null;
-		}
-
-		Widget current = widget;
-		while (current != null) {
-			UserData dataDictionary = (UserData) current
-					.getData(IUserDataConstants.XWT_USER_DATA_KEY);
-			if (dataDictionary != null) {
-				Object data = dataDictionary
-						.getData(IUserDataConstants.XWT_NAMECONTEXT_KEY);
-				if (data != null) {
-					return current;
-				}
-			}
-
-			current = getTreeParent(current);
-		}
-
-		return null;
-	}
-
-	public static ScopeKeeper getLocalScopeKeeper(Object element) {
-		Widget widget = getWidget(element);
-		if (widget == null) {
-			return null;
-		}
-		UserData dataDictionary = (UserData) widget
-				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
-		if (dataDictionary != null) {
-			Object data = dataDictionary
-					.getData(IUserDataConstants.XWT_NAMECONTEXT_KEY);
-			if (data != null) {
-				return (ScopeKeeper) data;
-			}
-		}
-		return null;
-	}
-
-	public static Object findElementByName(Object context, String name) {
-		Widget widget = getWidget(context);
-		if (widget == null) {
-			return null;
-		}
-		UserData dataDictionary = (UserData) widget
-				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
-		if (dataDictionary != null) {
-			ScopeKeeper nameContext = (ScopeKeeper) dataDictionary
-					.getData(IUserDataConstants.XWT_NAMECONTEXT_KEY);
-			if (nameContext != null) {
-				Object element = nameContext.getNamedObject(name);
-				if (element != null) {
-					return element;
-				}
-			}
-		}
-		Widget parent = getTreeParent(widget);
-		if (parent != null) {
-			return findElementByName(parent, name);
-		}
-		return null;
-	}
-
-	public static String getElementName(Object object) {
-		Widget widget = getWidget(object);
-		if (widget == null) {
-			return null;
-		}
-		UserData dataDictionary = (UserData) widget
-				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
-		if (dataDictionary != null) {
-			return (String) dataDictionary
-					.getData(IUserDataConstants.XWT_NAME_KEY);
-		}
-		return null;
-	}
-
-	public static void setElementName(Object object, String name,
-			boolean updateScope) {
-		Widget widget = getWidget(object);
-		UserData dataDictionary = (UserData) widget
-				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
-		if (dataDictionary != null) {
-			dataDictionary.setData(IUserDataConstants.XWT_NAME_KEY, name);
-			if (updateScope) {
-				ScopeKeeper keeper = findScopeKeeper(object);
-				if (keeper != null) {
-					keeper.addNamedObject(name, object);
-				}
-			}
-		}
-	}
-
-	public static void setCLR(Object widget, Object type) {
-		setLocalData(widget, IUserDataConstants.XWT_CLR_KEY, type);
-	}
-
-	public static Object getCLR(Object element) {
-		Widget widget = getWidget(element);
-		if (widget == null) {
-			return null;
-		}
-		UserData dataDictionary = (UserData) widget
-				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
-		if (dataDictionary != null) {
-			Object data = dataDictionary
-					.getData(IUserDataConstants.XWT_CLR_KEY);
-			if (data != null) {
-				return data;
-			}
-		}
-		Widget parent = getParent(widget);
-		if (parent != null) {
-			return getCLR(parent);
-		}
-		return null;
-	}
-
-	public static Widget getTreeParent(Object element) {
-		Widget widget = getWidget(element);
-		if (widget == null) {
-			return null;
-		}
-		UserData dataDictionary = (UserData) widget
-				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
-		if (dataDictionary != null) {
-			widget = (Widget) dataDictionary
-					.getData(IUserDataConstants.XWT_PARENT_KEY);
-			if (widget != null) {
-				return widget;
-			}
-		}
-		return getParent(element);
-	}
-
-	public static Control getParent(Object element) {
-		Widget widget = getWidget(element);
-		if (widget instanceof Control) {
-			Control control = (Control) widget;
-			return control.getParent();
-		} else if (widget instanceof Menu) {
-			Menu item = (Menu) widget;
-			return item.getParent();
-		} else if (widget instanceof MenuItem) {
-			MenuItem item = (MenuItem) widget;
-			Menu menu = item.getParent();
-			if (menu == null) {
-				return null;
-			}
-			return menu.getParent();
-		} else if (widget instanceof ScrollBar) {
-			ScrollBar item = (ScrollBar) widget;
-			return item.getParent();
-		} else if (widget instanceof ToolTip) {
-			ToolTip item = (ToolTip) widget;
-			return item.getParent();
-		} else if (widget instanceof CoolItem) {
-			CoolItem item = (CoolItem) widget;
-			return item.getParent();
-		} else if (widget instanceof CTabItem) {
-			CTabItem item = (CTabItem) widget;
-			return item.getParent();
-		} else if (widget instanceof ExpandItem) {
-			ExpandItem item = (ExpandItem) widget;
-			return item.getParent();
-		} else if (widget instanceof TabItem) {
-			TabItem item = (TabItem) widget;
-			return item.getParent();
-		} else if (widget instanceof TableColumn) {
-			TableColumn item = (TableColumn) widget;
-			return item.getParent();
-		} else if (widget instanceof TableItem) {
-			TableItem item = (TableItem) widget;
-			return item.getParent();
-		} else if (widget instanceof ToolItem) {
-			ToolItem item = (ToolItem) widget;
-			return item.getParent();
-		} else if (widget instanceof TreeColumn) {
-			TreeColumn item = (TreeColumn) widget;
-			return item.getParent();
-		} else if (widget instanceof TreeItem) {
-			TreeItem item = (TreeItem) widget;
-			return item.getParent();
-		} else if (widget instanceof Caret) {
-			Caret item = (Caret) widget;
-			return item.getParent();
-		}
-		return null;
-	}
-
-	public static IEventController findEventController(Object widget) {
-		return (IEventController) findData(widget,
-				IUserDataConstants.XWT_CONTROLLER_KEY);
-	}
-
-	public static Object getDataContext(Object widget) {
-		return findData(widget, IUserDataConstants.XWT_DATACONTEXT_KEY);
-	}
-
-	public static IBindingContext getBindingContext(Object widget) {
-		return (IBindingContext) findData(widget,
-				IUserDataConstants.XWT_BINDING_CONTEXT_KEY);
-	}
-
-	public static TriggerBase[] getTriggers(Object element) {
-		Widget widget = getWidget(element);
-		if (widget == null) {
-			return TriggerBase.EMPTY_ARRAY;
-		}
-		UserData dataDictionary = (UserData) widget
-				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
-		if (dataDictionary != null) {
-			TriggerBase[] triggers = (TriggerBase[]) dataDictionary
-					.getData(IUserDataConstants.XWT_TRIGGERS_KEY);
-			if (triggers != null) {
-				return triggers;
-			}
-		}
-		return TriggerBase.EMPTY_ARRAY;
-	}
-
-	public static void setTriggers(Object widget, TriggerBase[] triggers) {
-		setLocalData(widget, IUserDataConstants.XWT_TRIGGERS_KEY, triggers);
-	}
-
-	public static Widget getDataContextHost(Object element) {
-		Widget widget = getWidget(element);
-		if (widget == null) {
-			return null;
-		}
-		UserData dataDictionary = (UserData) widget
-				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
-		Object host = null;
-		if (dataDictionary != null) {
-			host = dataDictionary
-					.getData(IUserDataConstants.XWT_DATACONTEXT_KEY);
-			if (host != null) {
-				return widget;
-			}
-		}
-		Widget parent = widget;
-		while (parent != null) {
-			dataDictionary = (UserData) parent
-					.getData(IUserDataConstants.XWT_USER_DATA_KEY);
-			if (dataDictionary != null) {
-				host = dataDictionary
-						.getData(IUserDataConstants.XWT_DATACONTEXT_KEY);
-				if (host != null) {
-					return parent;
-				}
-				parent = (Widget) dataDictionary
-						.getData(IUserDataConstants.XWT_PARENT_KEY);
-			} else {
-				parent = getParent(parent);
-			}
-		}
-		return null;
-	}
-
-	public static void setBindingContext(Object widget, Object bindingContext) {
-		setLocalData(widget, IUserDataConstants.XWT_BINDING_CONTEXT_KEY,
-				bindingContext);
-	}
-
-	public static void setDataContext(Object widget, Object dataContext) {
-		setLocalData(widget, IUserDataConstants.XWT_DATACONTEXT_KEY,
-				dataContext);
-	}
-
-	public static Widget getWidget(Object target) {
-		if (JFacesHelper.isViewer(target)) {
-			return JFacesHelper.getControl(target);
-		} else if (target instanceof Widget) {
-			return (Widget) target;
-		} else if (target instanceof TableViewerColumn) {
-			return ((TableViewerColumn) target).getColumn();
-		} else if (target instanceof ControlEditor) {
-			return ((ControlEditor) target).getEditor();
-		} else if (target instanceof EditingSupport) {
-			return JFacesHelper.getControl(((EditingSupport) target)
-					.getViewer());
-		} else if (target instanceof CellEditor) {
-			return ((CellEditor) target).getControl();
-		}
-		return null;
-	}
-
-	public static Viewer getLocalViewer(Object object) {
-		return (Viewer) getLocalData(object, IUserDataConstants.XWT_VIEWER_KEY);
-	}
-
-	public static Object getLocalDataContext(Object object) {
-		return getLocalData(object, IUserDataConstants.XWT_DATACONTEXT_KEY);
-	}
-
-	public static boolean hasLocalDataContext(Object object) {
-		return hasLocalData(object, IUserDataConstants.XWT_DATACONTEXT_KEY);
-	}
-
-	public static Object getLocalData(Object object, IProperty property) {
-		Widget widget = getWidget(object);
-		if (widget == null) {
-			return null;
-		}
-		UserData dataDictionary = (UserData) widget
-				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
-		if (dataDictionary == null) {
-			return null;
-		}
-		return dataDictionary.getData(property);
-	}
-
-	public static Object getLocalData(Object object, String key) {
-		Widget widget = getWidget(object);
-		if (widget == null) {
-			return null;
-		}
-		UserData dataDictionary = (UserData) widget
-				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
-		if (dataDictionary == null) {
-			return null;
-		}
-		return dataDictionary.getData(key);
-	}
-
-	public static boolean hasLocalData(Object object, String propertyName) {
-		Widget widget = getWidget(object);
-		if (widget == null) {
-			return false;
-		}
-		UserData dataDictionary = (UserData) widget
-				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
-		if (dataDictionary == null) {
-			return false;
-		}
-		return dataDictionary.containsKey(propertyName);
-	}
-
-	public static boolean hasLocalData(Object object, IProperty property) {
-		Widget widget = getWidget(object);
-		if (widget == null) {
-			return false;
-		}
-		UserData dataDictionary = (UserData) widget
-				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
-		if (dataDictionary == null) {
-			return false;
-		}
-		return dataDictionary.containsKey(property);
-	}
-
-	public static void removeLocalData(Object object, IProperty property) {
-		Widget widget = getWidget(object);
-		if (widget == null) {
-			return;
-		}
-		UserData dataDictionary = (UserData) widget
-				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
-		if (dataDictionary == null) {
-			return;
-		}
-		dataDictionary.removeData(property);
-	}
-
-	public static void removeLocalData(Object object, String key) {
-		Widget widget = getWidget(object);
-		if (widget == null) {
-			return;
-		}
-		UserData dataDictionary = (UserData) widget
-				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
-		if (dataDictionary == null) {
-			return;
-		}
-		dataDictionary.removeData(key);
-	}
-
-	public static Map<String, Object> getLocalResources(Object object) {
-		return (Map<String, Object>) getLocalData(object,
-				IUserDataConstants.XWT_RESOURCES_KEY);
-	}
-
-	public static Object findResource(Object object, String key) {
-		Map<String, Object> map = (Map<String, Object>) getLocalData(object,
-				IUserDataConstants.XWT_RESOURCES_KEY);
-		if (map.containsKey(key)) {
-			return map.get(key);
-		}
-
-		Object parent = getTreeParent(object);
-		if (parent != null) {
-			return findResource(parent, key);
-		}
-		return null;
-	}
-
-	public static void setResources(Object object, Map<?, ?> resources) {
-		setLocalData(object, IUserDataConstants.XWT_RESOURCES_KEY, resources);
-	}
-
-	public static void setParent(Object object, Object parent) {
-		setLocalData(object, IUserDataConstants.XWT_PARENT_KEY, parent);
-	}
-
-	public static void setViewer(Object object, Object parent) {
-		setLocalData(object, IUserDataConstants.XWT_VIEWER_KEY, parent);
-	}
-
-	public static void setEventController(Object object,
-			IEventController controller) {
-		setLocalData(object, IUserDataConstants.XWT_CONTROLLER_KEY, controller);
-	}
-
-	public static IEventController updateEventController(Object object) {
-		UserData dataDictionary = updateDataDictionary(object);
-		IEventController controller = (IEventController) dataDictionary
-				.getData(IUserDataConstants.XWT_CONTROLLER_KEY);
-		if (controller == null) {
-			controller = new Controller();
-			dataDictionary.setData(IUserDataConstants.XWT_CONTROLLER_KEY,
-					controller);
-		}
-		return controller;
-	}
-
-	public static void setLocalData(Object object, String key, Object value) {
-		UserData dataDictionary = updateDataDictionary(object);
-		dataDictionary.setData(key, value);
-	}
-
-	public static void setLocalData(Object object, IProperty property,
-			Object value) {
-		UserData dataDictionary = updateDataDictionary(object);
-		dataDictionary.setData(property, value);
-	}
-
-	public static IObservableValueListener getObservableValueManager(
-			Object object) {
-		Widget widget = getWidget(object);
-		if (widget == null) {
-			return null;
-		}
-
-		UserData userData = (UserData) widget
-				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
-		if (userData != null) {
-			return userData.getObservableValueManager();
-		}
-		return null;
-	}
-
-	public static void setObservableValueManager(Object object,
-			IObservableValueListener eventManager) {
-		Widget widget = getWidget(object);
-		if (widget == null) {
-			throw new IllegalStateException("Not SWT Widget");
-		}
-		UserData userData = (UserData) updateDataDictionary(object);
-		userData.setObservableValueManager(eventManager);
-	}
-
-	public static Object findData(Object object, String key) {
-		Widget widget = getWidget(object);
-		if (widget == null) {
-			return Collections.EMPTY_MAP;
-		}
-
-		UserData dataDictionary = (UserData) widget
-				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
-		Object resources = null;
-		if (dataDictionary != null) {
-			resources = dataDictionary.getData(key);
-			if (resources != null) {
-				return resources;
-			}
-		}
-		Widget parent = widget;
-		while (parent != null) {
-			dataDictionary = (UserData) parent
-					.getData(IUserDataConstants.XWT_USER_DATA_KEY);
-			if (dataDictionary != null) {
-				resources = dataDictionary.getData(key);
-				if (resources != null) {
-					return resources;
-				}
-				parent = (Widget) dataDictionary
-						.getData(IUserDataConstants.XWT_PARENT_KEY);
-			} else {
-				parent = getParent(parent);
-			}
-		}
-		return null;
-	}
-
-	public static Map<?, ?> getResources(Object object) {
-		return (Map<?, ?>) findData(object,
-				IUserDataConstants.XWT_RESOURCES_KEY);
-	}
-
-	public static void setObjectName(Object object, String name) {
-		Widget widget = getWidget(object);
-		ScopeKeeper nameScoped;
-		if (UserData.findElementByName(widget, name) != null) {
-			// throw an exception or log a message?
-			return;
-		}
-		Widget parent = UserData.getTreeParent(widget);
-		UserData dataDictionary = (UserData) parent
-				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
-		if (dataDictionary != null) {
-			if (dataDictionary.getData(IUserDataConstants.XWT_NAMECONTEXT_KEY) != null) {
-				nameScoped = (ScopeKeeper) dataDictionary
-						.getData(IUserDataConstants.XWT_NAMECONTEXT_KEY);
-			} else {
-				ScopeKeeper parentNameScope = findScopeKeeper(parent);
-				nameScoped = new ScopeKeeper(parentNameScope, widget);
-				bindNameContext(parent, nameScoped);
-			}
-			nameScoped.addNamedObject(name, widget);
-		}
-		// throw an exception or log a message?
-	}
-
-	public static IBindingContext createBindingContext(Object host) {
-		Widget widget = getWidget(host);
-		final IBindingContext dataBindingContext = new BindingContext(widget);
-		dataBindingContext.setRealm(XWT.getRealm());
-		widget.addDisposeListener(new DisposeListener() {
-
-			public void widgetDisposed(DisposeEvent e) {
-				dataBindingContext.dispose();
-			}
-		});
-
-		UserData.setLocalData(host, IUserDataConstants.XWT_BINDING_CONTEXT_KEY,
-				dataBindingContext);
-
-		return dataBindingContext;
-	}
-
-}
\ No newline at end of file
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/Attribute.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/Attribute.java
deleted file mode 100644
index ac38c4a..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/Attribute.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.internal.xml;

-

-import java.util.Collection;

-

-/**

- * @author yyang

- * @version 1.0

- */

-public class Attribute extends Element {

-	protected String namePrefix;

-

-	/**

-	 * @param manager

-	 * @param namespace

-	 * @param name

-	 * @param id

-	 */

-	public Attribute(String namespace, String name, String id) {

-		super(namespace, name, null);

-		assert id != null;

-		setId(id);

-	}

-

-	public Attribute(String namespace, String name, String path, String id, Collection<Attribute> attributes) {

-		super(namespace, name, path, attributes, null);

-		assert id != null;

-		setId(id);

-	}

-

-	@Override

-	public Object clone() throws CloneNotSupportedException {

-		Attribute attribute = (Attribute) super.clone();

-		attribute.setId(getId());

-		return attribute;

-	}

-

-	public String getNamePrefix() {

-		return namePrefix;

-	}

-

-	public void setNamePrefix(String namePrefix) {

-		this.namePrefix = namePrefix;

-	}

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/DefaultElementCache.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/DefaultElementCache.java
deleted file mode 100644
index 3d99c5c..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/DefaultElementCache.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2014 CEA and others.
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   Christian W. Damus (CEA) - Initial API and implementation
- *
- *******************************************************************************/
-package org.eclipse.xwt.internal.xml;
-
-import java.net.URL;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-
-/**
- * The default implementation of the cache of parsed XML elements for XWT source files.
- */
-public class DefaultElementCache implements IElementCache {
-
-	/** The default cache size (currently {@value}). */
-	static int DEFAULT_CACHE_SIZE = 128;
-
-	private final int cacheSize;
-
-	private final Map<String, Element> cache = new LinkedHashMap<String, Element>() {
-
-		private static final long serialVersionUID = 1L;
-
-		protected boolean removeEldestEntry(Map.Entry<String, Element> eldest) {
-			return size() > cacheSize;
-		}
-	};
-
-
-	/**
-	 * Initializes me with a cache of the {@linkplain #DEFAULT_CACHE_SIZE default size}.
-	 */
-	public DefaultElementCache() {
-		this(DEFAULT_CACHE_SIZE);
-	}
-
-	/**
-	 * Initializes me with a specific size of cache.
-	 * 
-	 * @param cacheSize
-	 *        the maximal number of cached XML elements to keep
-	 * 
-	 * @throws IllegalArgumentException
-	 *         if the {@code cacheSize} is not positive
-	 */
-	public DefaultElementCache(int cacheSize) {
-		super();
-
-		if (cacheSize <= 0) {
-			throw new IllegalArgumentException("non-positive cacheSize"); //$NON-NLS-1$
-		}
-
-		this.cacheSize = cacheSize;
-	}
-
-	public Element getElement(URL url) {
-		return cache.get(url.toExternalForm());
-	}
-
-	public void cache(URL url, Element element) {
-		cache.put(url.toExternalForm(), element);
-	}
-}
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/DocumentObject.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/DocumentObject.java
deleted file mode 100644
index a374230..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/DocumentObject.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.internal.xml;

-

-import java.io.IOException;

-import java.io.InputStream;

-import java.util.LinkedList;

-import java.util.List;

-import java.util.Observable;

-

-import org.eclipse.xwt.IConstants;

-import org.xml.sax.SAXException;

-

-/**

- * @author yyang

- * @version 1.0

- */

-public class DocumentObject extends Observable implements Cloneable {

-

-	private String id;

-

-	private String name;

-

-	private String namespace;

-

-	private String content;

-

-	private List<DocumentObject> children;

-

-	protected DocumentObject parent;

-

-	/**

-	 * @param manager

-	 * @param namespace

-	 * @param name

-	 */

-	public DocumentObject(String namespace, String name) {

-		assert namespace != null;

-		assert name != null;

-		this.children = new LinkedList<DocumentObject>();

-		setNamespace(namespace);

-		setName(name);

-

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.soyatec.xaml.IDocumentObject#addChild(org.soyatec.xaml.IDocumentObject )

-	 */

-	public void addChild(DocumentObject child) {

-		assert child != null;

-

-		if (children.add(child)) {

-			DocumentObject oParent = (DocumentObject) (child).getParent();

-			if (oParent != null) {

-				oParent.delChild(child);

-			}

-			// Assign the new parent.

-			((DocumentObject) child).setParent(this);

-		}

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.soyatec.xaml.IDocumentObject#getChildren()

-	 */

-	public DocumentObject[] getChildren() {

-		return children.toArray(IConstants.EMPTY_DOCOBJ_ARRAY);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.soyatec.xaml.IDocumentObject#getContent()

-	 */

-	public String getContent() {

-		return content;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.soyatec.xaml.IDocumentObject#getId()

-	 */

-	public String getId() {

-		return id;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.soyatec.xaml.IDocumentObject#getName()

-	 */

-	public String getName() {

-		return name;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.soyatec.xaml.IDocumentObject#getNamespace()

-	 */

-	public String getNamespace() {

-		return namespace;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.soyatec.xaml.IDocumentObject#hasCildren()

-	 */

-	public boolean hasChildren() {

-		return !children.isEmpty();

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.soyatec.xaml.IDocumentObject#include(java.io.InputStream)

-	 */

-	public void include(ElementManager elementManager, InputStream input) throws IOException {

-		try {

-			elementManager.load(input, this);

-		} catch (SAXException e) {

-			throw new IOException(e.getLocalizedMessage());

-		}

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.soyatec.xaml.IDocumentObject#include(java.lang.String)

-	 */

-	public void include(ElementManager elementManager, String path) throws IOException {

-		InputStream input = elementManager.getDocumentRoot().openStream(path);

-		if (input != null) {

-			include(elementManager, input);

-		}

-		input.close();

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.soyatec.xaml.IDocumentObject#setContent(java.lang.String)

-	 */

-	public void setContent(String text) {

-		this.content = text;

-	}

-

-	@Override

-	public Object clone() throws CloneNotSupportedException {

-		DocumentObject docobj = (DocumentObject) super.clone();

-

-		// Clear object id.

-		docobj.id = null;

-

-		// Clone children.

-		for (DocumentObject child : getChildren()) {

-			DocumentObject nChild = (DocumentObject) child.clone();

-			docobj.addChild(nChild);

-		}

-

-		return docobj;

-	}

-

-	/**

-	 * @param id

-	 *            the id to set

-	 */

-	protected void setId(String id) {

-		if (this.id != null) {

-			throw new IllegalStateException("Element id is already defined");

-		}

-

-		assert id != null;

-

-		this.id = id;

-	}

-

-	/**

-	 * @param namespace

-	 *            the namespace to set

-	 * @uml.property name="namespace"

-	 */

-	protected void setNamespace(String namespace) {

-		assert namespace != null : "Element namespace is null";

-		assert this.namespace == null : "Element namespace is defined";

-

-		this.namespace = namespace;

-	}

-

-	/**

-	 * @param name

-	 *            the name to set

-	 * @uml.property name="name"

-	 */

-	protected void setName(String name) {

-		assert name != null : "Element name is null";

-		assert this.name == null : "Element name is defined";

-

-		this.name = name;

-	}

-

-	/**

-	 * Remove child from parent.

-	 * 

-	 * @param child

-	 *            the removed parent.

-	 */

-	protected void delChild(DocumentObject child) {

-		assert child != null;

-

-		if (child instanceof Element) {

-			DocumentObject parent = ((Element) child).getParent();

-			if (parent != null && parent.equals(this)) {

-				children.remove(child);

-				((Element) child).setParent(null);

-			}

-		}

-	}

-

-	public DocumentObject getParent() {

-		return parent;

-	}

-

-	public void setParent(DocumentObject parent) {

-		this.parent = parent;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/DocumentRoot.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/DocumentRoot.java
deleted file mode 100644
index 028e1fa..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/DocumentRoot.java
+++ /dev/null
@@ -1,478 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2013 Soyatec (http://www.soyatec.com), CEA, and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *     Christian W. Damus (CEA) - Fix failure to propagate stream handlers of URLs (CDO)

- *******************************************************************************/

-package org.eclipse.xwt.internal.xml;

-

-import java.io.File;

-import java.io.FileFilter;

-import java.io.FileInputStream;

-import java.io.FileOutputStream;

-import java.io.IOException;

-import java.io.InputStream;

-import java.io.PushbackInputStream;

-import java.net.MalformedURLException;

-import java.net.URISyntaxException;

-import java.net.URL;

-import java.util.zip.GZIPInputStream;

-import java.util.zip.ZipEntry;

-import java.util.zip.ZipInputStream;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWTException;

-

-/**

- * @author yyang

- * @since 1.0

- */

-public class DocumentRoot {

-	/**

-	 * The file type(Can be resolved by java.io.File)

-	 */

-	public static final int TYPE_FILE = 0;

-

-	/**

-	 * The path type(Can be resolved by java.net.URL)

-	 */

-	public static final int TYPE_PATH = 1;

-

-	/**

-	 * The zip format.

-	 */

-	public static final int FORMAT_ZIP = 2;

-

-	/**

-	 * The gzip format.

-	 */

-	public static final int FORMAT_GZIP = 3;

-

-	/**

-	 * The plain format.

-	 */

-	public static final int FORMAT_NONE = 4;

-

-	private int type = TYPE_PATH;

-

-	private int format = FORMAT_NONE;

-

-	/**

-	 * The absolute path.

-	 */

-	private String basePath;

-

-	/**

-	 * The relative path.

-	 */

-	private URL baseURL;

-

-	/**

-	 * The main file name.

-	 */

-	private String baseFile;

-

-	private static URL DOCUMENT_ROOT;

-

-	static {

-		try {

-			DOCUMENT_ROOT = new File(System.getProperty("user.dir")).toURI().toURL();

-		} catch (MalformedURLException e) {

-			DOCUMENT_ROOT = null;

-		}

-	}

-

-	public DocumentRoot() {

-		reset();

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.soyatec.xaml.IDocumentRoot#getFormat()

-	 */

-	public int getFormat() {

-		return format;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.soyatec.xaml.IDocumentRoot#getType()

-	 */

-	public int getType() {

-		return type;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.soyatec.xaml.IDocumentRoot#getPath()

-	 */

-	public URL getPath() {

-		return baseURL;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.soyatec.xaml.IDocumentRoot#getFile()

-	 */

-	public String getFile() {

-		return baseFile;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.soyatec.xaml.IDocumentRoot#openStream()

-	 */

-	public InputStream openStream() throws IOException {

-		switch (format) {

-		case FORMAT_GZIP:

-			return new GZIPInputStream(new URL(basePath + "/" + baseFile).openStream());

-		default:

-			if ((basePath != null) && (basePath.length() > 0)) {

-				return new URL(baseURL, basePath + "/" + baseFile).openStream(); // preserve the stream handler

-			}

-			return new URL(baseURL, baseFile).openStream(); // preserve the stream handler

-		}

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.soyatec.xaml.IDocumentRoot#openStream(java.lang.String)

-	 */

-	public InputStream openStream(String path) throws IOException {

-		assert path != null;

-		InputStream in = null;

-

-		if (path.indexOf(':') < 0) {

-			if (format == FORMAT_ZIP) {

-				// If it is zip format, that means all directories and files in

-				// zip file are extracted to temporary directory.

-				File file = new File(basePath + "/" + path);

-				in = new FileInputStream(file);

-			} else {

-				// Else, maybe the file parent or url path.

-				switch (type) {

-				case TYPE_FILE:

-					File file;

-					if (path.startsWith("/")) {

-						// Use absolute path

-						file = new File(path);

-					} else {

-						// Use relative path

-						file = new File(basePath + "/" + path);

-					}

-					in = new FileInputStream(file);

-					break;

-				case TYPE_PATH:

-					URL url = new URL(basePath + "/" + path);

-					in = url.openStream();

-					break;

-				}

-			}

-		} else {

-			if (path.startsWith("classpath:")) {

-				// Use class path

-				String p = path.substring(10);

-				in = getClass().getResourceAsStream(p);

-				if (in == null) {

-					in = String.class.getResourceAsStream(p);

-				}

-				if (in == null) {

-					in = Thread.currentThread().getClass().getResourceAsStream(p);

-				}

-				if (in == null) {

-					throw new IOException("File not found in classpath: " + p);

-				}

-			} else {

-				File file = new File(path);

-				if (file.exists()) {

-					// Use Windows File path. For example, G:\\somefile.txt

-					in = new FileInputStream(file);

-				} else {

-					// Use URL path

-					in = new URL(path).openStream();

-				}

-			}

-		}

-

-		// Automatically select the stream type

-		PushbackInputStream pis = new PushbackInputStream(in, 4);

-		if (Format.isGZIP(pis)) {

-			return new GZIPInputStream(pis);

-		} else if (Format.isZIP(pis)) {

-			ZipInputStream zis = new ZipInputStream(pis);

-			// Skip entry of directory or file which contains directory

-			// path("someDirectory/someFile.suffix").

-			for (ZipEntry entry = zis.getNextEntry(); entry != null && (entry.isDirectory() || entry.getName().indexOf('/') != -1); entry = zis.getNextEntry())

-				;

-			return zis;

-		} else {

-			return pis;

-		}

-	}

-

-	/**

-	 * This method is used in <code>ModelLoader</code>

-	 * 

-	 * @param file

-	 *            the xaml file path.

-	 */

-	protected void init(InputStream inputStream, URL url) throws IOException {

-		File file = null;

-		

-		try {

-			file = "file".equals(url.getProtocol()) ? new File(url.toURI()) : null;

-		} catch (URISyntaxException e) {

-			// not a valid file URL.  Fine

-		}

-		

-		if((inputStream == null) && (file != null) && file.exists()) {

-			// Is file

-			init(file);

-		} else {

-			// Is URL

-			basePath = null;

-			baseURL = url;

-			PushbackInputStream pis = null;

-			boolean shouldClose_pis = false;

-			if (inputStream instanceof PushbackInputStream) {

-				pis = (PushbackInputStream) inputStream;

-			} else {

-				if (inputStream == null) {

-					pis = new PushbackInputStream(baseURL.openStream(), 4);

-					shouldClose_pis = true;

-				} else {

-					pis = new PushbackInputStream(inputStream, 4);

-				}

-			}

-			if (Format.isGZIP(pis)) {

-				format = FORMAT_GZIP;

-			} else if (Format.isZIP(pis)) {

-				format = FORMAT_ZIP;

-				File tempDir = extractZipToTemporary(pis);

-				basePath = "file:/" + tempDir.getAbsolutePath();

-				baseFile = getMainFile(tempDir);

-			}

-			if (shouldClose_pis) {

-				pis.close();

-			}

-

-			if (basePath == null) {

-				String path = url.getPath();

-				while (path.endsWith("/")) {

-					path = path.substring(0, path.length() - 1);

-				}

-

-				int lastIndex = path.lastIndexOf("/");

-				if (lastIndex > 0) {

-					basePath = path.substring(0, lastIndex);

-					baseFile = path.substring(lastIndex + 1);

-					baseURL = new URL(url, basePath); // be sure to preserve the stream handler

-				} else if ("file".equals(url.getProtocol())) {

-					basePath = System.getProperty("user.dir");

-					baseURL = new File(basePath).toURI().toURL();

-					baseFile = path;

-				} else {

-					basePath = "";

-					baseFile = path;

-					baseURL = new URL(url, basePath); // be sure to preserve the stream handler

-				}

-			}

-

-			type = TYPE_PATH;

-		}

-	}

-

-	/**

-	 * This method is used in <code>ModelLoader</code>

-	 */

-	protected void reset() {

-		type = TYPE_PATH;

-		format = FORMAT_NONE;

-		baseURL = DOCUMENT_ROOT;

-		basePath = DOCUMENT_ROOT.toString();

-		baseFile = null;

-	}

-

-	/**

-	 * This method is used in <code>ModelLoader</code>

-	 * 

-	 * @param file

-	 *            the XAML file.

-	 */

-	private void init(File file) throws IOException {

-		FileInputStream fis = new FileInputStream(file);

-		PushbackInputStream pis = new PushbackInputStream(fis, 4);

-		baseURL = file.getParentFile().toURI().toURL();

-		basePath = baseURL.toString();

-		baseFile = file.getName();

-		if (Format.isGZIP(pis)) {

-			format = FORMAT_GZIP;

-		} else if (Format.isZIP(pis)) {

-			format = FORMAT_ZIP;

-			File tempDir = extractZipToTemporary(pis);

-			basePath = "file:/" + tempDir.getAbsolutePath();

-			baseFile = getMainFile(tempDir);

-			baseURL = file.toURI().toURL();

-		}

-

-		type = TYPE_FILE;

-	}

-

-	private String getMainFile(File tempDir) {

-		File[] tempFiles = tempDir.listFiles(new FileFilter() {

-			public boolean accept(File pathname) {

-				return pathname.isFile() && pathname.getName().toLowerCase().endsWith(IConstants.XWT_EXTENSION_SUFFIX);

-			}

-		});

-		for (File tempFile : tempFiles) {

-			return tempFile.getName();

-		}

-		return null;

-	}

-

-	/**

-	 * Extract zip stream to temporary directory.

-	 * 

-	 * @param stream

-	 *            zip stream.

-	 * @return Returns the directory file the zip stream extracted.

-	 */

-	private File extractZipToTemporary(InputStream stream) throws IOException {

-		File file = new File(System.getProperty("java.io.tmpdir") + "/cb" + System.currentTimeMillis() + Math.random());

-		if (!file.mkdir()) {

-			throw new XWTException("Folder creation fails: " + file.toString());

-		}

-		file.deleteOnExit();

-

-		String directory = file.getAbsolutePath();

-		ZipInputStream in = new ZipInputStream(stream);

-		ZipEntry z;

-		while ((z = in.getNextEntry()) != null) {

-			if (z.isDirectory()) {

-				String name = z.getName();

-				name = name.substring(0, name.length() - 1);

-				File f = new File(directory + File.separator + name);

-				if (!f.mkdir()) {

-					throw new XWTException("Folder creation fails: " + f.toString());

-				}

-				f.deleteOnExit();

-			} else {

-				File f = new File(directory + File.separator + z.getName());

-				if (!f.createNewFile()) {

-					throw new XWTException("File creation fails: " + f.toString());

-				}

-				f.deleteOnExit();

-				FileOutputStream out = new FileOutputStream(f);

-				byte[] cache = new byte[4096];

-				for (int i = in.read(cache); i != -1; i = in.read(cache)) {

-					out.write(cache, 0, i);

-				}

-				out.close();

-			}

-		}

-		in.close();

-

-		return file;

-	}

-

-	/**

-	 * File format uitility.

-	 * <p>

-	 * To check the format of file or stream.

-	 * </p>

-	 * 

-	 */

-	static class Format {

-

-		/**

-		 * Check the stream is a gzip format or not.

-		 * 

-		 * @param stream

-		 *            the checked stream.

-		 * @return Returns true is the stream is a gzip format.

-		 */

-		public static boolean isGZIP(PushbackInputStream stream) throws IOException {

-			assert stream != null;

-

-			byte[] cachedBytes = new byte[2];

-			if (stream.read(cachedBytes) != cachedBytes.length) {

-				throw new RuntimeException("data content wrong.");

-			}

-			stream.unread(cachedBytes);

-			// GZIP's header data starts with two bytes{1F,8B},

-			if ((cachedBytes[0] & 0xff) == 0x1f && (cachedBytes[1] & 0xff) == 0x8b) {

-				return true;

-			} else {

-				return false;

-			}

-		}

-

-		/**

-		 * Check the file is a gzip format or not.

-		 * 

-		 * @param file

-		 *            the checked file.

-		 * @return Returns true is the file is a gzip format.

-		 */

-		public static boolean isGZIP(File file) throws IOException {

-			assert file != null;

-

-			FileInputStream fis = new FileInputStream(file);

-			PushbackInputStream pis = new PushbackInputStream(fis, 2);

-			boolean returnValue = isGZIP(pis);

-			pis.close();

-			return returnValue;

-		}

-

-		/**

-		 * Check the stream is a zip format or not.

-		 * 

-		 * @param stream

-		 *            the checked stream.

-		 * @return Returns true is the stream is a zip format.

-		 */

-		public static boolean isZIP(PushbackInputStream stream) throws IOException {

-			assert stream != null;

-

-			byte[] cachedBytes = new byte[4];

-			if (stream.read(cachedBytes) != cachedBytes.length) {

-				throw new RuntimeException("data content wrong.");

-			}

-			stream.unread(cachedBytes);

-			// ZIP's header data starts with four bytes{0x50, 0x4b, 0x03, 0x04},

-			if ((cachedBytes[0] & 0xff) == 0x50 && (cachedBytes[1] & 0xff) == 0x4b && (cachedBytes[2] & 0xff) == 0x03 && (cachedBytes[3] & 0xff) == 0x04) {

-				return true;

-			} else {

-				return false;

-			}

-		}

-

-		/**

-		 * Check the file is a zip format or not.

-		 * 

-		 * @param file

-		 *            the checked file.

-		 * @return Returns true is the file is a zip format.

-		 */

-		public static boolean isZIP(File file) throws IOException {

-			assert file != null;

-

-			FileInputStream fis = new FileInputStream(file);

-			PushbackInputStream pis = new PushbackInputStream(fis, 4);

-			boolean returnValue = isZIP(pis);

-			pis.close();

-			return returnValue;

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/Element.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/Element.java
deleted file mode 100644
index ae24474..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/Element.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.internal.xml;

-

-import java.util.Collection;

-import java.util.Collections;

-import java.util.HashMap;

-import java.util.LinkedHashMap;

-import java.util.Map;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.internal.core.Core;

-

-/**

- * @since 1.0

- * @author yyang

- */

-public class Element extends DocumentObject {

-

-	private static final String[] EMPTY_STRING_ARRAY = new String[0];

-	private String path;

-	private Map<String, Attribute> originalAttributes;

-

-	private Map<String, Map<String, Attribute>> externalAttributes;

-

-	private String[] xmlnsMapping;

-	

-	/**

-	 * @return the path of this element, i.e. indexes of this element and its parents in XML.

-	 */

-	public String getPath() {

-		return path;

-	}

-

-	public String getXmlns(String prefix) {

-		if (prefix == null) {

-			prefix = "";

-		}

-		if (xmlnsMapping != null) {

-			for (int i = 0; i < xmlnsMapping.length; i++) {

-				if (prefix.equals(xmlnsMapping[i++])) {

-					return xmlnsMapping[i];

-				}

-			}

-		}

-		return null;

-	}

-

-	/**

-	 * Default constructor

-	 * 

-	 * @param context

-	 *            bundle context

-	 * @param namespace

-	 *            element namespace

-	 * @param name

-	 *            element name

-	 * @param originalAttributes

-	 *            element arributes

-	 */

-	public Element(String namespace, String name, Map<String, String> xmlnsMapping) {

-		this(namespace, name, null, null, xmlnsMapping);

-	}

-

-	public Element(String namespace, String name, String path, Collection<Attribute> attributes, Map<String, String> xmlnsMapping) {

-		super(namespace, name);

-		this.path = path;

-		if (xmlnsMapping != null) {

-			this.xmlnsMapping = new String[xmlnsMapping.size() * 2];

-			int i = 0;

-			for (Map.Entry<String, String> entry : xmlnsMapping.entrySet()) {

-				String key = entry.getKey();

-				if (key == null) {

-					key = "";

-				}

-				this.xmlnsMapping[i++] = key;

-				this.xmlnsMapping[i++] = entry.getValue();

-			}

-		}

-

-		this.originalAttributes = Collections.EMPTY_MAP;

-		this.externalAttributes = Collections.EMPTY_MAP;

-

-		if (attributes != null) {

-			for (Attribute attribute : attributes) {

-				setInternalAttribute(attribute);

-			}

-		}

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see com.soyatec.eface.core.IElement#attributeNames()

-	 */

-	public String[] attributeNames() {

-		return originalAttributes.keySet().toArray(EMPTY_STRING_ARRAY);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see com.soyatec.eface.core.IElement#attributeNamespaces()

-	 */

-	public String[] attributeNamespaces() {

-		return externalAttributes.keySet().toArray(EMPTY_STRING_ARRAY);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @seecom.soyatec.eface.core.IElement#setAttribute(com.soyatec.eface.core. IAttribute)

-	 */

-	public void setAttribute(Attribute attribute) {

-		setInternalAttribute(attribute);

-		firePropertyChanged(attribute);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see com.soyatec.eface.IElement#attributeNames(java.lang.String)

-	 */

-	public String[] attributeNames(String namespace) {

-		if (getNamespace().equals(namespace)) {

-			return attributeNames();

-		}

-		Map<String, Attribute> externalAttribute = externalAttributes.get(namespace);

-		if (externalAttribute != null) {

-			return externalAttribute.keySet().toArray(EMPTY_STRING_ARRAY);

-		} else {

-			return Core.EMPTY_STRING_ARRAY;

-		}

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see com.soyatec.eface.core.IElement#getAttribute(java.lang.String)

-	 */

-	public Attribute getAttribute(String name) {

-		assert name != null;

-		return originalAttributes.get(name);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see com.soyatec.eface.core.IElement#getAttribute(java.lang.String, java.lang.String)

-	 */

-	public Attribute getAttribute(String namespace, String name) {

-		Map<String, Attribute> externalAttribute = externalAttributes.get(namespace);

-		if (externalAttribute != null) {

-			return externalAttribute.get(name);

-		} else {

-			return null;

-		}

-	}

-

-	@Override

-	public Object clone() throws CloneNotSupportedException {

-		Element element = (Element) super.clone();

-

-		element.parent = null;

-

-		if (originalAttributes.isEmpty()) {

-			originalAttributes = Collections.EMPTY_MAP;

-		} else {

-			element.originalAttributes = new LinkedHashMap<String, Attribute>(originalAttributes.size());

-			for (String attrName : originalAttributes.keySet()) {

-				Attribute attrValue = (Attribute) originalAttributes.get(attrName).clone();

-				element.originalAttributes.put(attrName, attrValue);

-			}

-		}

-

-		if (externalAttributes.isEmpty()) {

-			element.originalAttributes = Collections.EMPTY_MAP;

-		} else {

-			element.externalAttributes = new LinkedHashMap<String, Map<String, Attribute>>(externalAttributes.size());

-			for (String ns : externalAttributes.keySet()) {

-				Map<String, Attribute> oAttributes = externalAttributes.get(ns);

-				Map<String, Attribute> nAttributes = new LinkedHashMap<String, Attribute>(oAttributes.size());

-				for (Map.Entry<String, Attribute> entry : oAttributes.entrySet()) {

-					String attrName = entry.getKey();

-					Attribute attrValue = (Attribute) entry.getValue().clone();

-					nAttributes.put(attrName, attrValue);

-				}

-				element.externalAttributes.put(ns, nAttributes);

-			}

-		}

-

-		return element;

-	}

-

-	protected void setAttributes(Collection<Attribute> attributes) {

-		for (Attribute attribute : attributes) {

-			setInternalAttribute(attribute);

-		}

-		firePropertyChanged(attributes);

-	}

-

-	private void firePropertyChanged(Attribute attribute) {

-		notifyObservers(attribute);

-	}

-

-	private void firePropertyChanged(Collection<Attribute> attributes) {

-		notifyObservers(attributes);

-	}

-

-	private boolean isXWTNamespace(String namespace) {

-		String scopeNamespace = getNamespace();

-		if (namespace == null || "".equals(namespace)) {

-			return true;

-		}

-		if (scopeNamespace.startsWith(IConstants.XAML_CLR_NAMESPACE_PROTO) || scopeNamespace.equals(IConstants.XWT_NAMESPACE)) {

-			return namespace.equalsIgnoreCase(scopeNamespace) || namespace.equals(IConstants.XWT_NAMESPACE);

-		}

-		return false;

-	}

-	

-	/**

-	 * Set attribute without notifying event.

-	 * 

-	 * @param attribute

-	 *            the modified attribute.

-	 */

-	private void setInternalAttribute(Attribute attribute) {

-		assert attribute != null;

-

-		String namespace = attribute.getNamespace();

-		String name = attribute.getName();

-

-		if (isXWTNamespace(namespace)) {

-			if (originalAttributes == Collections.EMPTY_MAP) {

-				originalAttributes = new LinkedHashMap<String, Attribute>();

-			}

-			originalAttributes.put(name, attribute);

-		} else {

-			Map<String, Attribute> externalAttribute = externalAttributes.get(namespace);

-			if (externalAttribute == null) {

-				externalAttribute = new HashMap<String, Attribute>();

-			}

-			if (externalAttributes == Collections.EMPTY_MAP) {

-				externalAttributes = new LinkedHashMap<String, Map<String, Attribute>>();

-			}

-			externalAttribute.put(name, attribute);

-			externalAttributes.put(namespace, externalAttribute);

-		}

-		((DocumentObject) attribute).setParent(this);

-	}

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/ElementHandler.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/ElementHandler.java
deleted file mode 100644
index 88dc3e5..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/ElementHandler.java
+++ /dev/null
@@ -1,818 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.internal.xml;

-

-import java.text.MessageFormat;

-import java.util.ArrayList;

-import java.util.Collection;

-import java.util.HashMap;

-import java.util.HashSet;

-import java.util.NoSuchElementException;

-import java.util.Set;

-import java.util.Stack;

-import java.util.StringTokenizer;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.xml.sax.Attributes;

-import org.xml.sax.ContentHandler;

-import org.xml.sax.Locator;

-import org.xml.sax.SAXException;

-import org.xml.sax.ext.Locator2;

-import org.xml.sax.helpers.DefaultHandler;

-

-/**

- * XAML-DOM handler.

- * 

- * @author yyang

- * @version 1.0

- */

-class ElementHandler extends DefaultHandler implements ContentHandler {

-	private Stack<StringBuffer> bufferStack = new Stack<StringBuffer>();

-	private static final String[] BINDING_PROPERTIES = new String[] {

-		"path", "validationRule", "converter"

-	};

-	

-	

-	/**

-	 * Temporary element hierarchy

-	 */

-	private Stack<DocumentObject> elementStack = new Stack<DocumentObject>();

-	

-	private Stack<Integer> elementIndexStack;

-	

-	private Stack<Boolean> switchStack;

-

-	private StringBuffer textBuffer = null;

-

-	private Locator locator;

-

-	private boolean ignoreSystemProcession;

-

-	private boolean hasSetDefaultEncoding;

-

-	private ElementManager elementManager;

-

-	private String defaultNamespace;

-

-	private ExtensionParser extensionParser = new ExtensionParser();

-

-	private HashMap<String, String> namespaceMapping = new HashMap<String, String>();

-

-	private boolean needNormalizeName = true;

-

-	/**

-	 * Parse the XAML extension Markup: {StaticResource test} {StaticResource RessourceKey=test} {DynamicResource {x:Static SystemColors.ControlBrushKey}}

-	 * 

-	 * @author yyang

-	 * 

-	 */

-	private class ExtensionParser {

-		private Element root;

-		private DocumentObject current;

-

-		public void parse(DocumentObject element, String text) {

-			if (root != null) {

-				ExtensionParser parser = new ExtensionParser();

-				parser.parse(element, text);

-				return;

-			}

-

-			StringTokenizer stringTokenizer = new StringTokenizer(text, "{}", true);

-			String previous = null;

-			String nextPrevious = null;

-			while (stringTokenizer.hasMoreTokens()) {

-				String token = stringTokenizer.nextToken();

-

-				if (previous != null) {

-					if (previous.equals("{")) {

-						if (token.equals("}")) {

-							// escape sequence

-							if (stringTokenizer.hasMoreTokens()) {

-								handleBlock(stringTokenizer.nextToken(" \t\n\r\f"), false);

-							}

-						} else {

-							startBlock();

-						}

-					} else if (previous.equals("}")) {

-						endBlock();

-					} else {

-						StringBuilder builder = new StringBuilder();

-						builder.append(previous);

-						if (token.equals("{")) {

-							int level = 1;

-							builder.append(token);

-							while (stringTokenizer.hasMoreTokens() && level >= 0) {

-								String value = stringTokenizer.nextToken();

-								if (value.equals("{")) {

-									level++;

-								} else if (value.equals("}")) {

-									level--;

-								}

-								if (level >= 0) {

-									builder.append(value);

-								}

-							}

-						}

-						handleBlock(builder.toString(), (nextPrevious == null || !nextPrevious.equals("}")));

-					}

-				}

-				nextPrevious = previous;

-				previous = token;

-			}

-			element.addChild(root);

-			root = null;

-			current = null;

-		}

-

-		protected void startBlock() {

-		}

-

-		protected void endBlock() {

-			if (current != null) {

-				current = current.getParent().getParent();

-			}

-		}

-

-		protected Element createElement(String token) {

-			int index = token.indexOf(':');

-			String namespace = null;

-			String name = token;

-			if (index != -1) {

-				String prefix = token.substring(0, index);

-				name = token.substring(index + 1);

-				namespace = namespaceMapping.get(prefix);

-			}

-			if (namespace == null) {

-				namespace = defaultNamespace;

-			}

-			Element element = new Element(namespace, name, namespaceMapping);

-			element.setId(elementManager.generateID(name));

-			if (current != null) {

-				current.addChild(element);

-			} else {

-				if (root == null) {

-					root = element;

-				}

-			}

-			current = element;

-			return element;

-		}

-

-		protected void handleBlock(String content, boolean newElement) {

-			String rootPattern = " \t\n\r\f=,";

-			StringTokenizer tokenizer = new StringTokenizer(content, rootPattern, true);

-			String attributeName = null;

-			String attributeValue = null;

-			boolean equals = false;

-			Element element = null;

-			if (!newElement && current instanceof Element) {

-				element = (Element) current;

-			}

-

-			boolean skip = false;

-			String token = null;

-			while (skip || tokenizer.hasMoreTokens()) {

-				if (!skip) {

-					token = tokenizer.nextToken(rootPattern).trim();

-				}

-				skip = false;

-				if (token.length() == 0) {

-					continue;

-				}

-				if (element == null) {

-					element = createElement(token);

-				} else {

-					if (token.equals("=")) {

-						equals = true;

-						if ("xpath".equalsIgnoreCase(attributeName)) {

-							attributeValue = tokenizer.nextToken(",");

-						}

-						continue;

-					}

-					if (token.equals(",")) {

-						if (attributeName != null) {

-							if (attributeValue != null) {

-								Attribute attribute = new Attribute(normalizeAttrNamespace(current.getNamespace()), attributeName, elementManager.generateID(current.getName()));

-								if (isExpendedProperty(attributeName) 

-										&& "Binding".equalsIgnoreCase(element.getName())) {

-									attributeValue = expandNamespaces(element, attributeValue);

-								}

-								handleContent(attribute, attributeValue);

-								element.setAttribute(attribute);

-								current = attribute;

-							} else {

-								element.setContent(attributeName);

-							}

-							attributeName = null;

-							attributeValue = null;

-							equals = false;

-						}

-					} else {

-						if (attributeName == null) {

-							attributeName = token;

-						} else {

-							StringBuilder builder = new StringBuilder();

-							builder.append(token);

-							if (token.startsWith("{")) {

-								int level = 1;

-								while (tokenizer.hasMoreTokens() && level > 0) {

-									String value = tokenizer.nextToken("{}");

-									if (value.equals("{")) {

-										level++;

-									} else if (value.equals("}")) {

-										level--;

-									}

-									builder.append(value);

-								}

-							}

-							attributeValue = builder.toString();

-

-							try {

-								token = tokenizer.nextToken(rootPattern).trim();

-								skip = true;

-								continue;

-							} catch (NoSuchElementException e) {

-							}

-						}

-					}

-				}

-				skip = false;

-			}

-

-			if (equals) {

-				Attribute attribute = new Attribute(normalizeAttrNamespace(current.getNamespace()), attributeName, elementManager.generateID(current.getName()));

-				if (isExpendedProperty(attributeName) && "Binding".equalsIgnoreCase(element.getName())) {

-					attributeValue = expandNamespaces(element, attributeValue);

-				}

-				

-				if (attributeValue != null) {

-					handleContent(attribute, attributeValue);

-					element.setAttribute(attribute);

-				} else {

-					element.setAttribute(attribute);

-					current = attribute;

-				}

-			} else if (attributeName != null) {

-				int index = attributeName.indexOf(":");

-				if (index != -1) {

-					element = createElement(attributeName);

-					current = current.getParent();

-				} else {

-					current.setContent(attributeName);

-				}

-			}

-		}

-	};

-	

-	static boolean isExpendedProperty(String name) {

-		// TODO need a generic solution for each property of Binding 

-		for (String propertyName : BINDING_PROPERTIES) {

-			if (propertyName.equalsIgnoreCase(name)) {

-				return true;

-			}

-		}

-		return false;

-	}

-

-	protected String expandNamespaces(DocumentObject element, String value) {

-		if (value.startsWith("{") || (value.indexOf(':') == -1)) {

-			return value;

-		}

-		int length = IConstants.XAML_CLR_NAMESPACE_PROTO.length();

-		for (String prefix : namespaceMapping.keySet()) {

-			String namespace = namespaceMapping.get(prefix);

-			if (namespace.startsWith(IConstants.XAML_CLR_NAMESPACE_PROTO)) {

-				String packageName = namespace.substring(length);

-				value = value.replace(prefix + ":", packageName + '.');

-			}

-		}

-		return value;

-	}

-	

-	/**

-	 * Default constructor.

-	 * 

-	 * @param manager

-	 *            loader instance.

-	 */

-	public ElementHandler(ElementManager elementManager) {

-		this.ignoreSystemProcession = false;

-		this.hasSetDefaultEncoding = false;

-		this.elementManager = elementManager;

-	}

-

-	/**

-	 * Internal constructor.

-	 * 

-	 * @param loader

-	 *            loader instance.

-	 * @param parent

-	 *            the parent element of loading stream.

-	 */

-	public ElementHandler(DocumentObject parent, ElementManager elementManager) {

-		if (parent != null) {

-			elementStack.push(parent);

-			bufferStack.push(textBuffer);

-		}

-		ignoreSystemProcession = true;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.xml.sax.helpers.DefaultHandler#setDocumentLocator(org.xml.sax.Locator)

-	 */

-	@Override

-	public void setDocumentLocator(Locator locator) {

-		this.locator = locator;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.xml.sax.helpers.DefaultHandler#startDocument()

-	 */

-	@Override

-	public void startDocument() throws SAXException {

-		elementIndexStack = new Stack<Integer>();

-		elementIndexStack.push(0);

-		switchStack = new Stack<Boolean>();

-		defaultNamespace = IConstants.XWT_NAMESPACE;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.xml.sax.helpers.DefaultHandler#startPrefixMapping(java.lang.String, java.lang.String)

-	 */

-	@Override

-	public void startPrefixMapping(String prefix, String uri) throws SAXException {

-		if (prefix.length() == 0 && !ignoreSystemProcession) {

-			defaultNamespace = uri;

-		}

-		namespaceMapping.put(prefix, uri);

-	}

-

-	public void endPrefixMapping(String prefix) throws SAXException {

-		namespaceMapping.remove(prefix);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.xml.sax.helpers.DefaultHandler#endDocument()

-	 */

-	@Override

-	public void endDocument() throws SAXException {

-		elementStack.clear();

-		bufferStack.clear();

-		switchStack.clear();

-		switchStack = null;

-		defaultNamespace = null;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.xml.sax.helpers.DefaultHandler#characters(char[], int, int)

-	 */

-	@Override

-	public void characters(char[] arg0, int arg1, int arg2) throws SAXException {

-

-		if (!switchStack.isEmpty() && !switchStack.peek()) {

-			return;

-		}

-

-		String string = new String(arg0, arg1, arg2);

-		if (string.length() > 0) {

-			if (textBuffer == null) {

-				textBuffer = new StringBuffer(string);

-			} else {

-				textBuffer.append(string);

-			}

-		}

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.xml.sax.helpers.DefaultHandler#skippedEntity(java.lang.String)

-	 */

-	public void skippedEntity(String name) throws SAXException {

-		super.skippedEntity(name);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.xml.sax.helpers.DefaultHandler#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)

-	 */

-	@Override

-	public void startElement(String uri, String localName, String qName, Attributes attrs) throws SAXException {

-

-		// Set xml's encoding to default.

-		if (!ignoreSystemProcession && !hasSetDefaultEncoding) {

-			if (locator instanceof Locator2) {

-				Locator2 locator2 = (Locator2) locator;

-				String encoding = locator2.getEncoding();

-				if (encoding != null && encoding.length() > 0) {

-					elementManager.setEncoding(encoding);

-				}

-			}

-			hasSetDefaultEncoding = true;

-		}

-

-		uri = normalizeNamespace(uri);

-

-		// If super condition does not allow parse children, ignore it.

-		if (!switchStack.isEmpty() && !switchStack.peek()) {

-			if (uri.equalsIgnoreCase(IConstants.XWT_NAMESPACE)) {

-				if ("Switch".equals(localName)) {

-					// If children is switch element, than set false to it.

-					switchStack.push(false);

-				}

-			}

-			return;

-		}

-

-		if (localName.indexOf('.') > 0) {

-			preProperty(uri, localName, attrs);

-		} else {

-			preElement(uri, localName, attrs);

-		}

-

-		elementIndexStack.push(0);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.xml.sax.helpers.DefaultHandler#endElement(java.lang.String, java.lang.String, java.lang.String)

-	 */

-	@Override

-	public void endElement(String uri, String localName, String qName) throws SAXException {

-

-		elementIndexStack.pop();

-		if (!elementIndexStack.isEmpty()) {

-			int nextIndex = elementIndexStack.pop();

-			elementIndexStack.push(nextIndex + 1);

-		}

-

-		uri = normalizeNamespace(uri);

-

-		// If super condition does not allow parse children, ignore it.

-		if (!switchStack.isEmpty() && !switchStack.peek()) {

-			if (uri.equalsIgnoreCase(IConstants.XWT_NAMESPACE)) {

-				if ("Switch".equals(localName)) {

-					switchStack.pop();

-				}

-			}

-			return;

-		}

-

-		if (!elementStack.isEmpty()) {

-			// remove current node from stack

-			DocumentObject element = elementStack.peek();

-

-			if (element instanceof Attribute) {

-				postProperty(uri, localName);

-			} else {

-				postElement(uri, localName);

-			}

-		}

-	}

-

-	private void preElement(String namespace, String name, Attributes attrs) throws SAXException {

-

-		// Process element ID

-

-		namespace = normalizeNamespace(namespace);

-		name = normalizeName(name);

-		if (name.equalsIgnoreCase("xdata")) {

-			needNormalizeName = false;

-		}

-		// Check the reference element.

-		String id = ElementManager.generateID(name);

-

-		// Check the same id elements.

-		if (elementManager.hasElement(id)) {

-			throw new SAXException(getFormattedMessage("Element already exists: ", id));

-		}

-

-		// Process attributes: original, external

-		Set<Attribute> attributes = new HashSet<Attribute>();

-		for (int i = 0, len = attrs.getLength(); i < len; i++) {

-			String attrUri = normalizeAttrNamespace(attrs.getURI(i));

-			String attrName = attrs.getLocalName(i);

-

-			Attribute attribute;

-			int index = attrName.lastIndexOf('.');

-			if (index != -1) {

-				String prefix = normalizeName(attrName.substring(0, index));

-				String attributeName = (XWT.isXWTNamespace(attrUri) ? normalizeName(attrName.substring(index + 1)) : attrName);

-

-				attribute = new Attribute(attrUri, attributeName, id);

-				attribute.setNamePrefix(prefix);

-			} else {

-				attribute = new Attribute(attrUri, (XWT.isXWTNamespace(attrUri) ? normalizeName(attrName) : attrName), id);

-			}

-			handleContent(attribute, attrs.getValue(i));

-			attributes.add(attribute);

-		}

-

-		// Create or reference element.

-		Element element = new Element(namespace, name, getIndexPath(), attributes, namespaceMapping);

-		element.setId(id);

-

-		// Add current node to stack

-		if (!elementStack.isEmpty()) {

-			elementStack.peek().addChild(element);

-		}

-

-		elementStack.push(element);

-		bufferStack.push(textBuffer);

-		textBuffer = null;

-

-		// Register to the element registry

-		elementManager.preElement(element);

-	}

-

-	private void postElement(String namespace, String name) throws SAXException {

-

-		// : The same as postReference : //

-

-		if (!elementStack.isEmpty()) {

-			// remove current node from stack

-			DocumentObject element = elementStack.pop();

-

-			// Setting element text content

-			if (textBuffer != null) {

-				String text = textBuffer.toString().trim();

-				if (text.length() > 0) {

-					handleContent(element, text);

-				}

-			}

-			textBuffer = bufferStack.pop();

-

-			// Post the element registration.

-			elementManager.postElement((Element) element);

-		}

-

-		if (name.equalsIgnoreCase("xdata")) {

-			needNormalizeName = true;

-		}

-	}

-

-	protected void handleContent(DocumentObject element, String text) {

-		if (text.startsWith("{") && text.endsWith("}")) {

-			extensionParser.parse(element, text);

-			return;

-		} else {

-			// handle the case: <x:Array Type="ns:Type" >

-			if (IConstants.XAML_X_TYPE.equals(element.getName()) || IConstants.XAML_X_STATIC.equals(element.getName())) {

-				int index = text.indexOf(':');

-				if (index != -1) {

-					String ns = text.substring(0, index);

-					String content = text.substring(index + 1);

-					String namespace = namespaceMapping.get(ns);

-					if (namespace != null) {

-						Element childElement = new Element(namespace, content, namespaceMapping);

-						childElement.setId(elementManager.generateID(element.getName()));

-						element.addChild(childElement);

-						return;

-					}

-				}

-			}

-		}

-		if (element instanceof Attribute

-				&& IConstants.XWT_X_NAMESPACE.equals(element.getNamespace())) {

-			if (IConstants.XAML_STYLE.equalsIgnoreCase(element.getName())

-					|| IConstants.XAML_X_CLASS.equalsIgnoreCase(element

-							.getName())

-					|| IConstants.XAML_X_CLASS_FACTORY.equalsIgnoreCase(element

-							.getName())) {

-				// handle the expansion of x:Style = "(j:class).variable"

-				// and handle the expansion of x:Class = "(j:class).variable"

-				text = expandNamespaces(element, text);

-			}

-		}

-		element.setContent(text);

-	}

-

-	/**

-	 * It is compatible with XAML.

-	 * <p>

-	 * It must support the following features:

-	 * 

-	 * 1. <Panel> <Button> <Button.Content>Hello World</Button.Content> </Button> </Panel>

-	 * 

-	 * 2. <Panel> <Panel.Composite> <Button Content="Hello World" /> </Panel.Composite> </Panel>

-	 * 

-	 * 3. <Panel> <Panel.Composite> <Button> <Button.Content>Hello World</Button.Content> </Button> </Panel.Composite> </Panel>

-	 * 

-	 * 4. <Panel> <Panel.Composite> <Button> <Button.Content>Hello</Button.Content> </Button> <Button> <Button.Content>World</Button.Content> </Button> </Panel.Composite> </Panel>

-	 * </p>

-	 * 

-	 * @param namespace

-	 *            attribute namespace

-	 * @param name

-	 *            attribute full name. like: Button.Content

-	 */

-	private void preProperty(String namespace, String name, Attributes attrs) throws SAXException {

-		String elementTag = normalizeName(name.substring(0, name.indexOf('.')));

-		String attributeName = (XWT.isXWTNamespace(namespace) ? normalizeName(name.substring(name.indexOf('.') + 1)) : name);

-		String elementId = null;

-

-		// Search the owner element and get the ID.

-		for (int i = elementStack.size() - 1; i >= 0; i--) {

-			DocumentObject element = elementStack.get(i);

-			if (element instanceof Element && element.getName().equals(elementTag)) {

-				elementId = element.getId();

-				break;

-			}

-		}

-

-		if (elementId == null) {

-			preElement(namespace, name, attrs);

-		} else {

-			namespace = normalizeNamespace(namespace);

-			// Process attributes: original, external

-			Collection<Attribute> collection = new ArrayList<Attribute>();

-			for (int i = 0, len = attrs.getLength(); i < len; i++) {

-

-				String attrUri = normalizeNamespace(attrs.getURI(i));

-				String attrName = attrs.getLocalName(i);

-

-				Attribute attr;

-				int index = attrName.lastIndexOf('.');

-				if (index != -1) {

-					String prefix = normalizeName(attrName.substring(0, index));

-					String aName = (XWT.isXWTNamespace(namespace) ? normalizeName(attrName.substring(index + 1)) : attrName);

-					attr = new Attribute(attrUri, aName, elementId);

-					attr.setNamePrefix(prefix);

-				} else {

-					attr = new Attribute(attrUri, (XWT.isXWTNamespace(namespace) ? normalizeName(attrName) : attrName), elementId);

-				}

-				handleContent(attr, attrs.getValue(i));

-				collection.add(attr);

-			}

-

-			Attribute attribute = new Attribute(normalizeAttrNamespace(namespace), attributeName, getIndexPath(), elementId, collection);

-			elementStack.push(attribute);

-			bufferStack.push(textBuffer);

-			textBuffer = null;

-		}

-	}

-

-	/**

-	 * @see #preProperty(String, String)

-	 */

-	private void postProperty(String namespace, String name) throws SAXException {

-		if (!elementStack.isEmpty()) {

-			// remove current node from stack

-			Attribute attribute = (Attribute) elementStack.pop();

-

-			// Setting attribute content

-			if (textBuffer != null) {

-				String text = textBuffer.toString().trim();

-				if (text.length() > 0) {

-					handleContent(attribute, text);

-				}

-			}

-			textBuffer = bufferStack.pop();

-

-			Element element = elementManager.getElement(attribute.getId());

-			element.setAttribute(attribute);

-		}

-	}

-

-	/**

-	 * Normalize the namespace string. If uri is null or length is zero, returns default namespace.

-	 * 

-	 * @param uri

-	 *            The namespace which to normalize.

-	 * @return Returns the normalized namespace.

-	 */

-	private String normalizeNamespace(String uri) {

-		if (uri == null || uri.length() == 0) {

-			uri = defaultNamespace;

-		}

-		if (uri.startsWith(IConstants.XAML_CLR_NAMESPACE_PROTO)) {

-			return uri;

-		}

-		return uri.toLowerCase();

-	}

-

-	/**

-	 * Normalize the namespace string. If uri is null or length is zero, returns default namespace.

-	 * 

-	 * @param uri

-	 *            The namespace which to normalize.

-	 * @return Returns the normalized namespace.

-	 */

-	private String normalizeAttrNamespace(String uri) {

-		if (uri == null || uri.length() == 0) {

-			uri = defaultNamespace;

-		}

-		if (uri.startsWith(IConstants.XAML_CLR_NAMESPACE_PROTO)) {

-			uri = defaultNamespace;

-		}

-		return uri.toLowerCase();

-	}

-

-	/**

-	 * <p>

-	 * Normalize the tag name to class-formal format.

-	 * </p>

-	 * <p>

-	 * e.g. Normalize &quot;font-face-name&quot; to &quot;FontFaceName&quot;

-	 * </p>

-	 * 

-	 * @param tagName

-	 *            The tag name which to normalize.

-	 * @return the normalized tag name.

-	 */

-	private String normalizeName(String tagName) {

-		if (!needNormalizeName) {

-			return tagName;

-		}

-		StringBuffer buffer = new StringBuffer();

-

-		boolean isH = false;

-		for (int i = 0, len = tagName.length(); i < len; i++) {

-			char c = tagName.charAt(i);

-			if (i == 0) {

-				buffer.append(Character.toUpperCase(c));

-			} else {

-				switch (c) {

-				case '-':

-					isH = true;

-					break;

-				case '.':

-					isH = true;

-					buffer.append(c);

-					break;

-				default:

-					if (isH) {

-						buffer.append(Character.toUpperCase(c));

-						isH = false;

-					} else {

-						buffer.append(c);

-					}

-					break;

-				}

-			}

-		}

-		return buffer.toString();

-	}

-

-	/**

-	 * Get attribute value in default namespace scope.

-	 * 

-	 * @param attrs

-	 *            sax attributes.

-	 * @param name

-	 *            attribute name.

-	 * @return Returns attribute value. If attribute not found, returns null;

-	 */

-	private String getDefaultAttribute(Attributes attrs, String name) {

-		String value = attrs.getValue(IConstants.XWT_NAMESPACE, name);

-		if (value == null || value.length() == 0) {

-			value = attrs.getValue(name);

-		}

-		if (value == null || value.length() == 0) {

-			return null;

-		} else {

-			return value;

-		}

-	}

-

-	private String getFormattedMessage(String msg, Object... args) {

-		StringBuffer buffer = new StringBuffer("[" + locator.getLineNumber() + "," + locator.getColumnNumber() + "] ");

-		buffer.append(msg);

-		return MessageFormat.format(buffer.toString(), args);

-	}

-

-	/**

-	 * @return the '/' separated, zero based, path of current {@link Element}.

-	 */

-	private String getIndexPath() {

-		StringBuilder sb = new StringBuilder();

-		for (Integer index : elementIndexStack) {

-			if (sb.length() != 0) {

-				sb.append('/');

-			}

-			sb.append(index.intValue());

-		}

-		return sb.toString();

-	}

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/ElementManager.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/ElementManager.java
deleted file mode 100644
index f71659c..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/ElementManager.java
+++ /dev/null
@@ -1,435 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2014 Soyatec (http://www.soyatec.com), CEA, and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *     Christian W. Damus (CEA) - Fix failure to propagate stream handlers of URLs (CDO)

- *     Christian W. Damus (CEA) - bug 435432

- *     

- *******************************************************************************/

-package org.eclipse.xwt.internal.xml;

-

-import java.io.ByteArrayInputStream;

-import java.io.IOException;

-import java.io.InputStream;

-import java.io.PushbackInputStream;

-import java.net.URL;

-import java.util.HashMap;

-import java.util.Map;

-import java.util.Random;

-

-import javax.xml.parsers.ParserConfigurationException;

-import javax.xml.parsers.SAXParser;

-import javax.xml.parsers.SAXParserFactory;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.callback.IBeforeParsingCallback;

-import org.eclipse.xwt.internal.core.Core;

-import org.xml.sax.ErrorHandler;

-import org.xml.sax.SAXException;

-import org.xml.sax.SAXParseException;

-

-/**

- * @author yyang

- * @since 1.0

- */

-public class ElementManager {

-

-	private DocumentRoot documentRoot;

-

-	private SAXParserFactory parserFactory;

-

-	private ErrorHandler errorHandler;

-

-	private String encoding;

-

-	/**

-	 * Cache all elements.

-	 */

-	private Map<String, Element> elements;

-

-	/**

-	 * Only cache root elements.

-	 */

-	private Element rootElement;

-

-	private Element xDataElement;

-

-	private static Random RANDOM = new Random();

-

-	public static String generateID(String typeName) {

-		return typeName + RANDOM.nextInt(Integer.MAX_VALUE);

-	}

-

-	public ElementManager() {

-		this(null);

-	}

-

-	public ElementManager(URL url) {

-		this.documentRoot = new DocumentRoot();

-		this.elements = new HashMap<String, Element>();

-		this.encoding = System.getProperty("file.encoding");

-

-		this.parserFactory = SAXParserFactory.newInstance();

-		this.parserFactory.setNamespaceAware(true);

-		this.parserFactory.setValidating(true);

-		if (url != null) {

-			try {

-				documentRoot.init(null, url);

-			} catch (IOException e) {

-			}

-		}

-		

-		this.errorHandler = new ErrorHandler() {

-

-			// IFrameworkAdaptor adaptor =

-			// FrameworkUtil.getFrameworkAdaptor(context);

-

-			/*

-			 * (non-Javadoc)

-			 * 

-			 * @see

-			 * org.xml.sax.ErrorHandler#error(org.xml.sax.SAXParseException)

-			 */

-			public void error(SAXParseException exception) throws SAXException {

-				Exception cause = exception.getException();

-				try {

-					if (cause != null) {

-						XWT.getLogger().error(cause);

-					} else {

-						XWT.getLogger().error(exception);

-					}

-				} catch (Exception e) {

-					if (cause != null) {

-						throw new SAXException(exception.getLocalizedMessage(),

-								cause);

-					} else {

-						throw new SAXException(exception);

-					}

-				}

-			}

-

-			/*

-			 * (non-Javadoc)

-			 * 

-			 * @see

-			 * org.xml.sax.ErrorHandler#fatalError(org.xml.sax.SAXParseException

-			 * )

-			 */

-			public void fatalError(SAXParseException exception)

-					throws SAXException {

-				Exception cause = exception.getException();

-				try {

-					if (cause != null) {

-						XWT.getLogger().error(cause);

-					} else {

-						XWT.getLogger().error(exception);

-					}

-				} catch (Exception e) {

-					if (cause != null) {

-						throw new SAXException(exception.getLocalizedMessage(),

-								cause);

-					} else {

-						throw new SAXException(exception);

-					}

-				}

-				throw new RuntimeException();

-			}

-

-			/*

-			 * (non-Javadoc)

-			 * 

-			 * @see

-			 * org.xml.sax.ErrorHandler#warning(org.xml.sax.SAXParseException)

-			 */

-			public void warning(SAXParseException exception)

-					throws SAXException {

-				Exception cause = exception.getException();

-				try {

-					if (cause != null) {

-						XWT.getLogger().error(cause);

-					} else {

-						XWT.getLogger().error(exception);

-					}

-				} catch (Exception e) {

-					if (cause != null) {

-						throw new SAXException(exception.getLocalizedMessage(),

-								cause);

-					} else {

-						throw new SAXException(exception);

-					}

-				}

-			}

-		};

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.soyatec.xaml.IElementManager#getDocumentRoot()

-	 */

-	public DocumentRoot getDocumentRoot() {

-		return documentRoot;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.soyatec.xaml.IElementManager#getElement(java.lang.String)

-	 */

-	public Element getElement(String id) {

-		assert id != null;

-		return elements.get(id);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.soyatec.xaml.IElementManager#getElements()

-	 */

-	public String[] getElements() {

-		return elements.keySet().toArray(IConstants.EMPTY_STRING_ARRAY);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.soyatec.xaml.IElementManager#getEncoding()

-	 */

-	public String getEncoding() {

-		return encoding;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.soyatec.xaml.IElementManager#getRootElement()

-	 */

-	public Element getRootElement() {

-		return rootElement;

-	}

-	

-	/**

-	 * Sets my root element (either loaded by me or perhaps obtained from some cache or other source).

-	 * 

-	 * @param rootElement

-	 *        my root element

-	 */

-	public void setRootElement(Element rootElement) {

-		this.rootElement = rootElement;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.soyatec.xaml.IElementManager#hasElement(java.lang.String)

-	 */

-	public boolean hasElement(String id) {

-		assert id != null;

-		return elements.containsKey(id);

-	}

-

-	protected void setEncoding(String encoding) {

-		assert encoding != null;

-		this.encoding = encoding;

-	}

-

-	/**

-	 * @see Core

-	 */

-	public Element load(URL url, IBeforeParsingCallback callback) throws Exception {

-

-		reset();

-

-		if (callback == null) {

-			// Initialize document root

-			documentRoot.init(null, url);

-

-			InputStream input = url.openStream();

-			try {

-				doLoad(input);

-			} finally {

-				input.close();

-			}

-

-			input = documentRoot.openStream();

-			try {

-				loadXData(input);

-			} finally {

-				input.close();

-			}

-		}

-		else {

-			String content = callback.onParsing(url.toString());

-			

-			documentRoot.init(null, new URL(url, content)); // preserve the stream handler

-

-			InputStream input = new ByteArrayInputStream(content.getBytes());

-			try {

-				doLoad(input);

-			} finally {

-				input.close();

-			}

-

-			input = documentRoot.openStream();

-			try {

-				loadXData(input);

-			} finally {

-				input.close();

-			}

-		}

-		return rootElement;			

-	}

-

-	/**

-	 * @see Core

-	 */

-	public Element load(InputStream stream, URL url) throws Exception {

-

-		reset();

-

-		// Initialize document root

-		PushbackInputStream pis = null;

-		if (stream != null) {

-			if (stream instanceof PushbackInputStream) {

-				pis = (PushbackInputStream) stream;

-			} else {

-				pis = new PushbackInputStream(stream, 4);

-			}

-		}

-

-		documentRoot.init(pis, url);

-

-		InputStream input = pis;

-		if (pis == null) {

-			input = documentRoot.openStream();

-		}

-		doLoad(input);

-

-		input = documentRoot.openStream();

-		loadXData(input);

-		input.close();

-		return rootElement;

-	}

-

-	/**

-	 * @see ElementHandler

-	 */

-	public void load(InputStream stream, DocumentObject parent)

-			throws SAXException {

-		assert stream != null;

-

-		ElementHandler contentHandler = new ElementHandler(parent, this);

-		try {

-			SAXParser parser = parserFactory.newSAXParser();

-			parser.getXMLReader().setErrorHandler(errorHandler);

-			parser.parse(stream, contentHandler);

-		} catch (ParserConfigurationException pce) {

-			throw new SAXException(pce.getLocalizedMessage(), pce);

-		} catch (IOException ioe) {

-			throw new SAXException(ioe.getLocalizedMessage(), ioe);

-		}

-	}

-

-	private void loadXData(InputStream stream) {

-		if (xDataElement != null) {

-			try {

-				SAXParser parser = parserFactory.newSAXParser();

-				parser.getXMLReader().setErrorHandler(errorHandler);

-				StringBuilder out = new StringBuilder();

-				parser.parse(stream, new XDataHandler(out));

-				String content = out.toString();

-				xDataElement.setContent(content);

-			} catch (ParserConfigurationException e) {

-			} catch (SAXException e) {

-			} catch (IOException e) {

-			}

-		}

-	}

-

-	/**

-	 * @see ElementHandler

-	 */

-	protected void preElement(Element element) {

-		assert element != null;

-		assert !elements.containsKey(element.getId()) : "Element already exists in registry: "

-				+ element.getId();

-

-		// Add to cache.

-		elements.put(element.getId(), element);

-

-		// If it is a runnable element, add to top-level cache.

-		if (element.getParent() == null && rootElement == null) {

-			rootElement = element;

-		}

-	}

-

-	/**

-	 * @see ElementHandler

-	 */

-	protected void postElement(Element element) {

-		assert element != null;

-		assert elements.containsKey(element.getId()) : "Element not found in registry: "

-				+ element.getId();

-		if ("xdata".equalsIgnoreCase(element.getName())

-				&& IConstants.XWT_X_NAMESPACE.equals(element.getNamespace())) {

-			xDataElement = element;

-		}

-	}

-

-	/**

-	 * @see #load(File)

-	 * @see #load(URL)

-	 */

-	private void doLoad(InputStream stream) throws Exception {

-		assert stream != null;

-		ElementHandler contentHandler = new ElementHandler(this);

-		try {

-			SAXParser parser = parserFactory.newSAXParser();

-			parser.getXMLReader().setErrorHandler(errorHandler);

-			parser.parse(stream, contentHandler);

-		} catch (SAXException saxe) {

-			// Exception cause = saxe.getException();

-			// try {

-			// if (cause != null) {

-			// XWT.getLogger().error(cause);

-			// } else {

-			// XWT.getLogger().error(saxe);

-			// }

-			// } catch (Exception e) {

-			// // e.printStackTrace();

-			// }

-			throw saxe;

-		} catch (ParserConfigurationException pce) {

-			try {

-				XWT.getLogger().error(pce);

-			} catch (Exception e) {

-				e.printStackTrace();

-			}

-			throw pce;

-		} catch (IOException ioe) {

-			try {

-				XWT.getLogger().error(ioe);

-			} catch (Exception e) {

-				e.printStackTrace();

-			}

-			throw ioe;

-		}

-	}

-

-	/**

-	 * @see #load(File)

-	 * @see #load(URL)

-	 */

-	private void reset() {

-

-		// Reset code base.

-		documentRoot.reset();

-	}

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/IElementCache.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/IElementCache.java
deleted file mode 100644
index 9dc09e9..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/IElementCache.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2014 CEA and others.
- * 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   Christian W. Damus (CEA) - Initial API and implementation
- *
- *******************************************************************************/
-package org.eclipse.xwt.internal.xml;
-
-import java.net.URL;
-
-
-/**
- * A cache of reusable XML elements previously parsed from specific {@code URL}s. Implementations may selectively
- * cache content, for example caching only elements for <tt>platform:/resource</tt> or OSGi bundle URLs because
- * others such as HTTP URLs reference potentially changeable resources.
- */
-public interface IElementCache {
-
-	/** An implementation of the protocol that doesn't actually cache anything. */
-	IElementCache NULL = new IElementCache() {
-
-		public Element getElement(URL url) {
-			return null;
-		}
-
-		public void cache(URL url, Element element) {
-			// Pass
-		}
-	};
-
-	/**
-	 * Obtains the previously cached element parsed from the given {@code url}.
-	 * 
-	 * @param url
-	 *        the URL of an XWT resource
-	 * 
-	 * @return the previously parsed contents of the resource, or {@code null} if the cache has nothing for this {@code url}
-	 */
-	Element getElement(URL url);
-
-	/**
-	 * Adds an {@code element} parsed from the resource indicated by the given {@code url}.
-	 * 
-	 * @param url
-	 *        the URL of an XWT resource that was parsed
-	 * @param element
-	 *        the element that was parsed from it
-	 */
-	void cache(URL url, Element element);
-}
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/XDataHandler.java b/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/XDataHandler.java
deleted file mode 100644
index de10907..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/XDataHandler.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.internal.xml;

-

-import org.xml.sax.Attributes;

-import org.xml.sax.ContentHandler;

-import org.xml.sax.helpers.DefaultHandler;

-

-/**

- * @author jliu jin.liu@soyatec.com

- */

-public class XDataHandler extends DefaultHandler implements ContentHandler {

-

-	private boolean namespaceBegin = false;

-	private String currentNamespace;

-	private String currentNamespaceUri;

-	private StringBuilder out;

-	private boolean started;

-

-	public XDataHandler(StringBuilder out) {

-		this.out = out;

-	}

-

-	public void startPrefixMapping(String prefix, String uri) {

-		namespaceBegin = true;

-		currentNamespace = prefix;

-		currentNamespaceUri = uri;

-	}

-

-	public void startElement(String namespaceURI, String localName, String qName, Attributes atts) {

-		if (started) {

-			out.append("<" + qName);

-			if (namespaceBegin) {

-				out.append(" xmlns:" + currentNamespace + "=\"" + currentNamespaceUri + "\"");

-				namespaceBegin = false;

-			}

-			for (int i = 0; i < atts.getLength(); i++) {

-				out.append(" " + atts.getQName(i) + "=\"" + atts.getValue(i) + "\"");

-			}

-			out.append(">");

-		}

-		if (localName.equalsIgnoreCase("xdata")) {

-			started = true;

-		}

-	}

-

-	public void endElement(String namespaceURI, String localName, String qName) {

-		if (localName.equalsIgnoreCase("xdata")) {

-			started = false;

-		}

-		if (started) {

-			out.append("</" + qName + ">");

-		}

-	}

-

-	public void characters(char[] ch, int start, int length) {

-		if (started) {

-			for (int i = start; i < start + length; i++) {

-				out.append(ch[i]);

-			}

-		}

-	}

-

-	public void ignorableWhitespace(char[] ch, int start, int length) {

-		if (started) {

-			for (int i = start; i < start + length; i++) {

-				out.append(ch[i]);

-			}

-		}

-	}

-

-	public void processingInstruction(String target, String data) {

-		if (started) {

-			out.append("<?" + target + " " + data + "?>");

-		}

-	}

-

-	public void skippedEntity(String name) {

-		if (started) {

-			out.append("&" + name + ";");

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/Controller.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/Controller.java
deleted file mode 100644
index 926dc2e..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/Controller.java
+++ /dev/null
@@ -1,350 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     Soyatec - initial API and implementation
- *******************************************************************************/
-package org.eclipse.xwt.javabean;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.xwt.IEventConstants;
-import org.eclipse.xwt.IEventInvoker;
-import org.eclipse.xwt.XWTMaps;
-import org.eclipse.xwt.internal.core.IEventController;
-import org.eclipse.xwt.metadata.IEvent;
-
-public class Controller implements Listener, IEventController {
-	int waterMark = 0;
-	protected int[] eventTypes = null;
-	protected String[] names = null;
-	protected Object[] handlers = null;
-	protected Object[] receivers = null;
-	protected Object[] args = null;
-
-	protected void fireEvent(Event e) {
-		int eventType = e.type;
-		if (eventTypes == null) {
-			return;
-		}
-
-		for (int i = 0; i < eventTypes.length; i++) {
-			if (eventTypes[i] == eventType) {
-				Object handler = handlers[i];
-				if (handler instanceof IEventInvoker) {
-					IEventInvoker eventInvoker = (IEventInvoker) handler;
-					try {
-						eventInvoker.invoke(args[i], e);
-					} catch (Exception e1) {
-						e1.printStackTrace();
-						return;
-					}
-				} else {
-					Method method = (Method) handler;
-					try {
-						method.setAccessible(true);
-						// support old style
-						if (method.getParameterTypes().length == 1) {
-							method.invoke(receivers[i], e);
-						} else if (method.getParameterTypes().length == 0) {
-							method.invoke(receivers[i]);
-						} else {
-							method.invoke(receivers[i], args[i], e);
-						}
-					} catch (Exception e1) {
-						e1.printStackTrace();
-						return;
-					}
-				}
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.javabean.IEventHandler#hasEvent(java.lang.Object,
-	 * org.eclipse.xwt.metadata.IEvent)
-	 */
-	public boolean hasEvent(Object receiver, IEvent event) {
-		if (receivers == null) {
-			return false;
-		}
-		for (int i = 0; i < receivers.length; i++) {
-			if (receivers[i] == receiver
-					&& names[i].equalsIgnoreCase(event.getName())) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.xwt.javabean.IEventHandler#addEvent(int,
-	 * java.lang.String, org.eclipse.xwt.metadata.IEvent,
-	 * org.eclipse.swt.widgets.Widget, java.lang.Object, java.lang.Object,
-	 * java.lang.reflect.Method)
-	 */
-	public void addEvent(int eventType, String name, IEvent event,
-			Widget control, Object receiver, Object arg, Method method) {
-		doAddEvent(eventType, name, event, control, receiver, arg, method);
-	}
-
-	public void addEvent(int eventType, String name, IEvent event,
-			Widget control, Object arg, IEventInvoker eventInvoker) {
-		doAddEvent(eventType, name, event, control, null, arg, eventInvoker);
-	}
-
-	protected void doAddEvent(int eventType, String name, IEvent event,
-			Widget control, Object receiver, Object arg, Object method) {
-		if (eventTypes == null) {
-			eventTypes = new int[3];
-			handlers = new Method[3];
-			names = new String[3];
-			receivers = new Object[3];
-			args = new Object[3];
-		} else {
-			for (int i = 0; i < eventTypes.length; i++) {
-				if (eventTypes[i] == eventType && handlers[i] == method
-						&& receivers[i] == receivers && args[i] == arg) {
-					return;
-				}
-			}
-		}
-		if (waterMark >= eventTypes.length) {
-			int[] oldEventTypes = eventTypes;
-			Object[] oldHandlers = handlers;
-			Object[] oldReceivers = receivers;
-			Object[] oldNames = names;
-			Object[] oldArgs = args;
-
-			eventTypes = new int[waterMark + 3];
-			handlers = new Object[waterMark + 3];
-			receivers = new Object[waterMark + 3];
-			names = new String[waterMark + 3];
-			args = new Object[waterMark + 3];
-
-			System.arraycopy(oldEventTypes, 0, eventTypes, 0, waterMark);
-			System.arraycopy(oldHandlers, 0, handlers, 0, waterMark);
-			System.arraycopy(oldReceivers, 0, receivers, 0, waterMark);
-			System.arraycopy(oldArgs, 0, args, 0, waterMark);
-			System.arraycopy(oldNames, 0, names, 0, waterMark);
-		}
-
-		eventTypes[waterMark] = eventType;
-		handlers[waterMark] = method;
-		receivers[waterMark] = receiver;
-		args[waterMark] = arg;
-		names[waterMark++] = name;
-
-		if (eventType == IEventConstants.XWT_SWT_LOADED) {
-			int swt_paint = XWTMaps.getEvent("swt.paint");
-			if (swt_paint != SWT.None) { // for RAP integration
-				Listener[] listeners = control.getListeners(swt_paint);
-				if (listeners.length > 0) {
-					for (Listener listener : listeners) {
-						control.removeListener(swt_paint, listener);
-					}
-					control.addListener(swt_paint, new LoadedEventListener(
-							control));
-					for (Listener listener : listeners) {
-						control.addListener(swt_paint, listener);
-					}
-				} else {
-					control.addListener(swt_paint, new LoadedEventListener(
-							control));
-				}
-			}
-		}
-		control.addListener(eventType, this);
-	}
-
-	class LoadedEventListener implements Listener {
-		protected Widget control;
-
-		public LoadedEventListener(Widget control) {
-			this.control = control;
-		}
-
-		public void handleEvent(Event event) {
-			Event loadedEvent = copy(event);
-			loadedEvent.type = IEventConstants.XWT_SWT_LOADED;
-			if (XWTMaps.getEvent("swt.paint") != SWT.None) {
-				control.removeListener(XWTMaps.getEvent("swt.paint"), this);
-			}
-			Controller.this.handleEvent(loadedEvent);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.xwt.javabean.IEventHandler#setEvent(org.eclipse.xwt
-	 * .metadata.IEvent, org.eclipse.swt.widgets.Widget, java.lang.Object,
-	 * java.lang.Object, java.lang.reflect.Method)
-	 */
-	public void setEvent(IEvent event, Widget control, Object receiver,
-			Object arg, Method method) {
-		String name = event.getName();
-		int eventType = getEventTypeByName(name);
-		if (eventType != SWT.None) {
-			addEvent(eventType, name, event, control, receiver, arg, method);
-		}
-	}
-
-	public void setEvent(IEvent event, Widget control, Object arg,
-			IEventInvoker eventInvoker) {
-		String name = event.getName();
-		int eventType = getEventTypeByName(name);
-		if (eventType != SWT.None) {
-			doAddEvent(eventType, name, event, control, null, arg, eventInvoker);
-		}
-	}
-
-	public static Event copy(Event event) {
-		Event copyEvent = new Event();
-		for (Field field : event.getClass().getDeclaredFields()) {
-			try {
-				field.set(copyEvent, field.get(event));
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
-		}
-		return copyEvent;
-	}
-
-	public static int getEventTypeByName(String name) {
-		if (IEventConstants.KEY_DOWN.equalsIgnoreCase(name)) {
-			return SWT.KeyDown;
-		} else if (IEventConstants.KEY_UP.equalsIgnoreCase(name)) {
-			return SWT.KeyUp;
-		} else if (IEventConstants.MOUSE_DOWN.equalsIgnoreCase(name)) {
-			return SWT.MouseDown;
-		} else if (IEventConstants.MOUSE_UP.equalsIgnoreCase(name)) {
-			return SWT.MouseUp;
-		} else if (IEventConstants.MOUSE_MOVE.equalsIgnoreCase(name)) {
-			return XWTMaps.getEvent("swt.mousemove");
-		} else if (IEventConstants.MOUSE_ENTER.equalsIgnoreCase(name)) {
-			return XWTMaps.getEvent("swt.mouseenter");
-		} else if (IEventConstants.MOUSE_EXIT.equalsIgnoreCase(name)) {
-			return XWTMaps.getEvent("swt.mouseexit");
-		} else if (IEventConstants.MOUSE_DOUBLE_CLICK.equalsIgnoreCase(name)) {
-			return SWT.MouseDoubleClick;
-		} else if (IEventConstants.PAINT.equalsIgnoreCase(name)) {
-			return XWTMaps.getEvent("swt.paint");
-		} else if (IEventConstants.MOVE.equalsIgnoreCase(name)) {
-			return SWT.Move;
-		} else if (IEventConstants.RESIZE.equalsIgnoreCase(name)) {
-			return SWT.Resize;
-		} else if (IEventConstants.DISPOSE.equalsIgnoreCase(name)) {
-			return SWT.Dispose;
-		} else if (IEventConstants.SELECTION.equalsIgnoreCase(name)) {
-			return SWT.Selection;
-		} else if (IEventConstants.DEFAULT_SELECTION.equalsIgnoreCase(name)) {
-			return SWT.DefaultSelection;
-		} else if (IEventConstants.FOCUS_IN.equalsIgnoreCase(name)) {
-			return SWT.FocusIn;
-		} else if (IEventConstants.FOCUS_OUT.equalsIgnoreCase(name)) {
-			return SWT.FocusOut;
-		} else if (IEventConstants.EXPAND.equalsIgnoreCase(name)) {
-			return SWT.Expand;
-		} else if (IEventConstants.COLLAPSE.equalsIgnoreCase(name)) {
-			return SWT.Collapse;
-		} else if (IEventConstants.ICONIFY.equalsIgnoreCase(name)) {
-			return XWTMaps.getEvent("swt.iconify");
-		} else if (IEventConstants.DEICONIFY.equalsIgnoreCase(name)) {
-			return XWTMaps.getEvent("swt.deiconify");
-		} else if (IEventConstants.CLOSE.equalsIgnoreCase(name)) {
-			return SWT.Close;
-		} else if (IEventConstants.SHOW.equalsIgnoreCase(name)) {
-			return SWT.Show;
-		} else if (IEventConstants.HIDE.equalsIgnoreCase(name)) {
-			return SWT.Hide;
-		} else if (IEventConstants.MODIFY.equalsIgnoreCase(name)) {
-			return SWT.Modify;
-		} else if (IEventConstants.VERIFY.equalsIgnoreCase(name)) {
-			return SWT.Verify;
-		} else if (IEventConstants.ACTIVATE.equalsIgnoreCase(name)) {
-			return SWT.Activate;
-		} else if (IEventConstants.DEACTIVATE.equalsIgnoreCase(name)) {
-			return SWT.Deactivate;
-		} else if (IEventConstants.HELP.equalsIgnoreCase(name)) {
-			return SWT.Help;
-		} else if (IEventConstants.DRAG_SELECT.equalsIgnoreCase(name)) {
-			return SWT.DragDetect;
-		} else if (IEventConstants.ARM.equalsIgnoreCase(name)) {
-			return SWT.Arm;
-		} else if (IEventConstants.TRAVERSE.equalsIgnoreCase(name)) {
-			return SWT.Traverse;
-		} else if (IEventConstants.MOUSE_HOVER.equalsIgnoreCase(name)) {
-			return XWTMaps.getEvent("swt.mousehover");
-		} else if (IEventConstants.HARD_KEY_DOWN.equalsIgnoreCase(name)) {
-			return XWTMaps.getEvent("swt.hardkeydown");
-		} else if (IEventConstants.HARD_KEY_UP.equalsIgnoreCase(name)) {
-			return XWTMaps.getEvent("swt.hardkeyup");
-		} else if (IEventConstants.MENU_DETECT.equalsIgnoreCase(name)) {
-			return SWT.MenuDetect;
-		} else if (IEventConstants.MOUSE_WHEEL.equalsIgnoreCase(name)) {
-			return XWTMaps.getEvent("swt.mousewheel");
-		} else if (IEventConstants.SETTINGS.equalsIgnoreCase(name)) {
-			return XWTMaps.getEvent("swt.settings");
-		} else if (IEventConstants.ERASE_ITEM.equalsIgnoreCase(name)) {
-			return XWTMaps.getEvent("swt.eraseitem");
-		} else if (IEventConstants.MEASURE_ITEM.equalsIgnoreCase(name)) {
-			return XWTMaps.getEvent("swt.measureitem");
-		} else if (IEventConstants.PAINT_ITEM.equalsIgnoreCase(name)) {
-			return XWTMaps.getEvent("swt.paintitem");
-		} else if (IEventConstants.XWT_LOADED.equalsIgnoreCase(name)
-				|| IEventConstants.XWT_LOADED_EVENT.equalsIgnoreCase(name)) {
-			return IEventConstants.XWT_SWT_LOADED;
-		}
-		// case SWT.PaintItem:
-		// firePaintItem(e);
-		// break;
-		// case DND.DragStart:
-		// dnde = new DNDEventWrapper(e);
-		// fireGiveFeedback(dnde);
-		// break;
-		// case DND.DragEnter:
-		// dnde = new DNDEventWrapper(e);
-		// fireDragEnter(dnde);
-		// break;
-		// case DND.DragLeave:
-		// dnde = new DNDEventWrapper(e);
-		// fireDragLeaves(dnde);
-		// break;
-		// case DND.DragOver:
-		// dnde = new DNDEventWrapper(e);
-		// fireDragOver(dnde);
-		// break;
-		// case DND.Drop:
-		// dnde = new DNDEventWrapper(e);
-		// fireDrop(dnde);
-		// break;
-		// }
-		return SWT.None;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.xwt.javabean.IEventHandler#handleEvent(org.eclipse.swt
-	 * .widgets.Event)
-	 */
-	public void handleEvent(Event e) {
-		fireEvent(e);
-	}
-}
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/IResourceCache.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/IResourceCache.java
deleted file mode 100644
index 26f3cff..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/IResourceCache.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2017 EclipseSource and others.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *  EclipseSource - Initial API and implementation: Bug 521931
- *
- *****************************************************************************/
-package org.eclipse.xwt.javabean;
-
-import java.net.URL;
-
-import org.eclipse.xwt.metadata.IMetaclass;
-
-/**
- * A Cache to store results of calls to {@link Class#getResource(String)}.
- * The main usage is to speed-up access to User Controls
- */
-public interface IResourceCache {
-
-	/**
-	 * Tests whether this cache contains a value for the given resource. Note that
-	 * the cache may contain a "null" value (if cacheResource(x, y, null) was
-	 * called), in which case "hasCached(x, y)" will return {@link Boolean#TRUE
-	 * true}.
-	 * 
-	 * @param metaclass
-	 * @param resourcePath
-	 * @return true if a value was cached for the (metaclass, resourcePath) pair,
-	 *         false otherwise.
-	 */
-	boolean hasCached(IMetaclass metaclass, String resourcePath);
-
-	/**
-	 * Returns the (potentially null) cached URL for this resource. Note: this
-	 * method doesn't may return null in two distinct cases:
-	 * <ul>
-	 * <li>The resource was never cached</li>
-	 * <li>The "null" value was cached</li>
-	 * </ul>
-	 * 
-	 * To distinguish between "null" and "unknown" values, use
-	 * {@link #hasCached(IMetaclass, String)}
-	 * 
-	 * @param metaclass
-	 * @param resourcePath
-	 * @return
-	 */
-	URL getCachedResource(IMetaclass metaclass, String resourcePath);
-
-	/**
-	 * Adds the specified (potentially null) resource to the cache.
-	 * 
-	 * @param metaclass
-	 * @param resourcePath
-	 * @param resource
-	 */
-	void cacheResource(IMetaclass metaclass, String resourcePath, URL resource);
-}
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/ResourceCache.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/ResourceCache.java
deleted file mode 100644
index 07dc580..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/ResourceCache.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2017 EclipseSource and others.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *  EclipseSource - Initial API and implementation: Bug 521931
- *
- *****************************************************************************/
-package org.eclipse.xwt.javabean;
-
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.xwt.metadata.IMetaclass;
-
-/**
- * <p>
- * Default implementation of {@link IResourceCache}. This implementation stores
- * the URL for each resource. The mapping is based on the
- * {@link IMetaclass#getType() metaclass' type}, i.e. if two instances of
- * {@link IMetaclass} have the same type (according to
- * {@link Class#equals(Object)}), they will share the same cache.
- * </p>
- * <p>
- * Cached URLs may be null (Typically when the resource doesn't exist).
- * </p>
- * 
- * <p>
- * This class also provides a {@link #getInstance() singleton} instance, which
- * is the default shared cache for XWT applications.
- * </p>
- */
-public class ResourceCache implements IResourceCache {
-
-	/**
-	 * @return The default (and shared) {@link IResourceCache} for storing User
-	 *         control resources URLs
-	 */
-	public static IResourceCache getInstance() {
-		return instance;
-	}
-
-	@Override
-	public boolean hasCached(IMetaclass metaclass, String resourcePath) {
-		return getTypeCache(metaclass).containsKey(resourcePath);
-	}
-
-	@Override
-	public URL getCachedResource(IMetaclass metaclass, String resourcePath) {
-		return getTypeCache(metaclass).get(resourcePath);
-	}
-
-	@Override
-	public void cacheResource(IMetaclass metaclass, String resourcePath, URL resource) {
-		getTypeCache(metaclass).put(resourcePath, resource);
-	}
-
-	private Map<String, URL> getTypeCache(IMetaclass metaclass) {
-		Class<?> type = metaclass.getType();
-		if (!resourceCache.containsKey(type)) {
-			resourceCache.put(type, new HashMap<String, URL>());
-		}
-		return resourceCache.get(type);
-	}
-
-	private static IResourceCache instance = new ResourceCache();
-
-	private Map<Class<?>, Map<String, URL>> resourceCache = new HashMap<Class<?>, Map<String, URL>>();
-
-}
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/ResourceLoader.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/ResourceLoader.java
deleted file mode 100644
index 63bb95a..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/ResourceLoader.java
+++ /dev/null
@@ -1,2084 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.javabean;

-

-import java.io.File;

-import java.lang.reflect.Array;

-import java.lang.reflect.Constructor;

-import java.lang.reflect.Field;

-import java.lang.reflect.InvocationTargetException;

-import java.lang.reflect.Method;

-import java.lang.reflect.Modifier;

-import java.net.MalformedURLException;

-import java.net.URL;

-import java.util.ArrayList;

-import java.util.Collection;

-import java.util.Collections;

-import java.util.HashMap;

-import java.util.HashSet;

-import java.util.List;

-import java.util.Map;

-import java.util.Set;

-import java.util.StringTokenizer;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.jface.viewers.TableViewerColumn;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.custom.ControlEditor;

-import org.eclipse.swt.custom.TableEditor;

-import org.eclipse.swt.layout.FillLayout;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Listener;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.swt.widgets.Table;

-import org.eclipse.swt.widgets.TableColumn;

-import org.eclipse.swt.widgets.TableItem;

-import org.eclipse.swt.widgets.Widget;

-import org.eclipse.xwt.ICLRFactory;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.IDataProvider;

-import org.eclipse.xwt.IEventHandler;

-import org.eclipse.xwt.IEventInvoker;

-import org.eclipse.xwt.IIndexedElement;

-import org.eclipse.xwt.ILoadingContext;

-import org.eclipse.xwt.INamespaceHandler;

-import org.eclipse.xwt.IStyle;

-import org.eclipse.xwt.IXWTLoader;

-import org.eclipse.xwt.ResourceDictionary;

-import org.eclipse.xwt.Tracking;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.XWTLoader;

-import org.eclipse.xwt.XWTMaps;

-import org.eclipse.xwt.annotation.UI;

-import org.eclipse.xwt.callback.ICreatedCallback;

-import org.eclipse.xwt.callback.ILoadedCallback;

-import org.eclipse.xwt.core.IBinding;

-import org.eclipse.xwt.core.IDynamicBinding;

-import org.eclipse.xwt.core.IDynamicValueBinding;

-import org.eclipse.xwt.core.IRenderingContext;

-import org.eclipse.xwt.core.IVisualElementLoader;

-import org.eclipse.xwt.core.Setter;

-import org.eclipse.xwt.core.Style;

-import org.eclipse.xwt.core.ValidationStatus;

-import org.eclipse.xwt.input.ICommand;

-import org.eclipse.xwt.internal.core.Binding;

-import org.eclipse.xwt.internal.core.Core;

-import org.eclipse.xwt.internal.core.DataBindingTrack;

-import org.eclipse.xwt.internal.core.IEventController;

-import org.eclipse.xwt.internal.core.ScopeKeeper;

-import org.eclipse.xwt.internal.utils.ClassLoaderUtil;

-import org.eclipse.xwt.internal.utils.DocumentObjectSorter;

-import org.eclipse.xwt.internal.utils.LoggerManager;

-import org.eclipse.xwt.internal.utils.NamespaceHelper;

-import org.eclipse.xwt.internal.utils.ObjectUtil;

-import org.eclipse.xwt.internal.utils.TableEditorHelper;

-import org.eclipse.xwt.internal.utils.UserData;

-import org.eclipse.xwt.internal.xml.Attribute;

-import org.eclipse.xwt.internal.xml.DocumentObject;

-import org.eclipse.xwt.internal.xml.Element;

-import org.eclipse.xwt.javabean.metadata.properties.PropertiesConstants;

-import org.eclipse.xwt.javabean.metadata.properties.TableItemProperty;

-import org.eclipse.xwt.jface.JFacesHelper;

-import org.eclipse.xwt.metadata.IEvent;

-import org.eclipse.xwt.metadata.IMetaclass;

-import org.eclipse.xwt.metadata.IProperty;

-import org.eclipse.xwt.metadata.IValueLoading;

-import org.eclipse.xwt.utils.PathHelper;

-

-/**

- * @author jliu (jin.liu@soyatec.com)

- */

-public class ResourceLoader implements IVisualElementLoader {

-	static Map<String, Object> EMPTY_MAP = Collections.EMPTY_MAP;

-

-	static private String VALIDATION_STATUS_CONSTANT = "status";

-

-	static final String RESOURCE_LOADER_PROPERTY = "XWT.ResourceLoader";

-

-	private static final String COLUMN = "Column";

-

-	private Map<String, Object> options;

-

-	private Collection<IDynamicBinding> bindings;

-	

-	private Collection<ValidationStatus> status;

-

-	public Collection<IDynamicBinding> getBindings() {

-		return bindings;

-	}

-

-	protected ResourceLoader parentLoader;

-	protected IRenderingContext context;

-	protected IXWTLoader loader;

-

-	protected Object scopedObject;

-	protected ScopeKeeper nameScoped;

-	protected LoadingData loadData = new LoadingData();

-

-	protected Event loadedEvent = new Event();

-

-	class LoadingData {

-		protected LoadingData parent;

-		protected Object clr;

-		protected Collection<IStyle> styles = Collections.EMPTY_LIST;

-		private Object currentWidget = null;

-		private Object host = null;

-		private Object dataContext = null;

-

-		public Object getDataContext() {

-			return dataContext;

-		}

-

-		public void setDataContext(Object dataContext) {

-			this.dataContext = dataContext;

-		}

-

-		public Object getHost() {

-			return host;

-		}

-

-		public Object getCurrentWidget() {

-			return currentWidget;

-		}

-

-		public Object findElement(Class<?> type) {

-			if (type.isInstance(currentWidget)) {

-				return currentWidget;

-			}

-			if (parent != null) {

-				return parent.findElement(type);

-			}

-			return null;

-		}

-

-		public void setCurrentWidget(Object currentWidget) {

-			this.currentWidget = currentWidget;

-		}

-

-		public LoadingData getParent() {

-			return parent;

-		}

-

-		public LoadingData() {

-		}

-

-		public LoadingData(LoadingData loadingData, Object host) {

-			this.parent = loadingData;

-			this.styles = loadingData.styles;

-			this.clr = loadingData.clr;

-			this.currentWidget = loadingData.currentWidget;

-			this.dataContext = loadingData.dataContext;

-			this.host = host;

-		}

-

-		public Collection<IStyle> getStyles() {

-			return styles;

-		}

-

-		public void setStyles(Collection<IStyle> styles) {

-			this.styles = styles;

-		}

-

-		public Object getClr() {

-			return clr;

-		}

-

-		public void setClr(Object clr) {

-			this.clr = clr;

-		}

-

-		public void inject(Object targetObject, String name) {

-			doInject(targetObject, name, null);

-		}

-

-		protected void doInject(Object targetObject, String name,

-				Object previousClr) {

-			Class<?> filedType = targetObject.getClass();

-			if (clr != null && (previousClr != clr || previousClr == null)) {

-				for (Field field : clr.getClass().getDeclaredFields()) {

-					UI annotation = field.getAnnotation(UI.class);

-					if (annotation != null) {

-						if (!field.getType().isAssignableFrom(filedType)) {

-							continue;

-						}

-						String annotationValue = annotation.value();

-						if (annotationValue == null

-								|| annotationValue.length() == 0) {

-							if (field.getName().equals(name)) {

-								field.setAccessible(true);

-								try {

-									field.set(clr, targetObject);

-									return;

-								} catch (Exception e) {

-								}

-							}

-						} else if (annotationValue.equals(name)) {

-							field.setAccessible(true);

-							try {

-								field.set(clr, targetObject);

-								break;

-							} catch (Exception e) {

-							}

-						}

-					}

-				}

-			}

-			if (parent != null) {

-				parent.doInject(targetObject, name, clr);

-			}

-		}

-

-		public void updateEvent(IRenderingContext context, Widget control,

-				IEvent event, String handler) {

-			IEventController eventController = UserData

-					.updateEventController(control);

-			Method method = null;

-			Object clrObject = null;

-			LoadingData current = this;

-			ResourceLoader currentParentLoader = parentLoader;

-			while (current != null) {

-				Object receiver = current.getClr();

-				if (receiver instanceof IEventHandler) {

-					IEventHandler eventManager = (IEventHandler) receiver;

-					IEventInvoker eventInvoker = eventManager.getEventInvoker(

-							handler, control.getClass(), Event.class);

-					if (eventInvoker != null) {

-						eventController.setEvent(event, control, control,

-								eventInvoker);

-					}

-				} else if (receiver != null) {

-					Class<?> clazz = receiver.getClass();

-					method = ObjectUtil.findMethod(clazz, handler,

-							control.getClass(), Event.class);

-					if (method == null) {

-						method = ObjectUtil.findMethod(clazz, handler,

-								Event.class);

-					}

-					if (method == null) {

-						// Load again.

-						clazz = ClassLoaderUtil.loadClass(

-								context.getLoadingContext(), clazz.getName());

-						method = ObjectUtil.findMethod(clazz, handler,

-								Event.class);

-					}

-					if (method == null) {

-						method = ObjectUtil.findMethod(clazz, handler);

-					}

-					if (method != null) {

-						clrObject = receiver;

-						eventController.setEvent(event, control, clrObject,

-								control, method);

-						break;

-					}

-				}

-				current = current.getParent();

-				if (current == null && currentParentLoader != null) {

-					current = currentParentLoader.loadData;

-					currentParentLoader = currentParentLoader.parentLoader;

-				}

-			}

-			if (method == null) {

-				LoggerManager.log(new XWTException("Event handler \"" + handler

-						+ "\" is not found."));

-			}

-		}

-

-		public void end() {

-			if (parent == null || clr != parent.getClr()) {

-				Method method = ObjectUtil.findDeclaredMethod(clr.getClass(),

-						"initializeComponent");

-				if (method == null) {

-					method = ObjectUtil.findDeclaredMethod(clr.getClass(),

-							"InitializeComponent");

-				}

-				if (method != null) {

-					try {

-						method.setAccessible(true);

-						method.invoke(clr);

-					} catch (Exception e) {

-						LoggerManager.log(e);

-					}

-				}

-			}

-		}

-

-		public void addStyle(IStyle style) {

-			if (styles == Collections.EMPTY_LIST) {

-				styles = new ArrayList<IStyle>();

-			}

-			styles.add(style);

-		}

-	}

-

-	private DataBindingTrack dataBindingTrack;

-

-	/**

-	 * @param context

-	 */

-	public ResourceLoader(IRenderingContext context, IXWTLoader loader) {

-		this.context = context;

-		this.loader = loader;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.IVisualElementLoader#createUIElement(org.eclipse.

-	 * e4.xwt.Element, org.eclipse.xwt.ILoadData,

-	 * org.eclipse.xwt.IResourceDictionary)

-	 */

-	public Object createUIElement(Element element, Map<String, Object> options) {

-		try {

-			this.options = options;

-			Object container = options.get(IXWTLoader.CONTAINER_PROPERTY);

-			Widget parent = UserData.getWidget(container);

-			if (!loader.getTrackings().isEmpty()) {

-				dataBindingTrack = new DataBindingTrack();

-			}

-			parentLoader = (ResourceLoader) options

-					.get(RESOURCE_LOADER_PROPERTY);

-			options.remove(RESOURCE_LOADER_PROPERTY);

-			ResourceDictionary resourceDictionary = (ResourceDictionary) options

-					.get(IXWTLoader.RESOURCE_DICTIONARY_PROPERTY);

-

-			if (resourceDictionary != null) {

-				Object styles = resourceDictionary.get(Core.DEFAULT_STYLES_KEY);

-				if (styles != null) {

-					loadData.setStyles((Collection<IStyle>) styles);

-					resourceDictionary.remove(Core.DEFAULT_STYLES_KEY);

-				}

-			}

-			if (!options.containsKey(IXWTLoader.CLASS_FACTORY_PROPERTY)) {

-				try {

-					options.put(IXWTLoader.CLASS_FACTORY_PROPERTY,

-							loader.getCLRFactory());

-				} catch (UnsupportedOperationException e) {

-					if (options.isEmpty()) {

-						options = new HashMap<String, Object>();

-						options.put(IXWTLoader.CLASS_FACTORY_PROPERTY,

-								loader.getCLRFactory());

-					} else {

-						throw e;

-					}

-				}

-			}

-

-			Object control = doCreate(parent, element, null, options);

-

-			// get databinding messages and print into console view

-			if (dataBindingTrack != null) {

-				String dataBindingMessage = dataBindingTrack

-						.getDataBindMessage();// getDataBindMessage();

-				org.eclipse.xwt.ILogger log = loader.getLogger();

-				log.addMessage(dataBindingMessage, Tracking.DATABINDING);

-				log.printInfo(dataBindingMessage, Tracking.DATABINDING,

-						loader.getTrackings());

-			}

-			if (control instanceof Composite) {

-				((Composite) control).layout();

-			}

-			ILoadedCallback loadedAction = (ILoadedCallback) options

-					.get(IXWTLoader.LOADED_CALLBACK);

-			if (loadedAction != null) {

-				loadedAction.onLoaded(control);

-			}

-			return control;

-		} catch (Exception e) {

-			if (e instanceof RuntimeException) {

-				throw ((RuntimeException) e);

-			}

-

-			throw new XWTException(e);

-		}

-	}

-

-	protected Object doCreate(Object parent, Element element,

-			Class<?> constraintType, Map<String, Object> options)

-			throws Exception {

-		int styles = -1;

-		if (options.containsKey(IXWTLoader.INIT_STYLE_PROPERTY)) {

-			styles = (Integer) options.get(IXWTLoader.INIT_STYLE_PROPERTY);

-		}

-

-		ResourceDictionary dico = (ResourceDictionary) options

-				.get(IXWTLoader.RESOURCE_DICTIONARY_PROPERTY);

-		Object dataContext = options.get(IXWTLoader.DATACONTEXT_PROPERTY);

-		Object bindingContext = options

-				.get(IXWTLoader.BINDING_CONTEXT_PROPERTY);

-		String name = element.getName();

-		String namespace = element.getNamespace();

-		if (IConstants.XWT_X_NAMESPACE.equalsIgnoreCase(namespace)) {

-			if (IConstants.XAML_X_NULL.equalsIgnoreCase(name)) {

-				return null;

-			}

-			if (IConstants.XAML_X_TYPE.equalsIgnoreCase(name)

-					&& constraintType != null

-					&& constraintType instanceof Class<?>) {

-				DocumentObject[] children = element.getChildren();

-				if (children != null && children.length > 0) {

-					if (children[0] instanceof Element) {

-						Element type = (Element) children[0];

-						IMetaclass metaclass = loader.getMetaclass(

-								type.getName(), type.getNamespace());

-						if (metaclass != null) {

-							return metaclass.getType();

-						}

-					}

-				} else {

-					String content = element.getContent();

-					return loader.convertFrom(Class.class, content);

-				}

-			}

-			return null;

-		}

-		IMetaclass metaclass = loader.getMetaclass(name, namespace);

-		if (constraintType != null

-				&& !(IBinding.class.isAssignableFrom(metaclass.getType()))

-				&& (!constraintType.isAssignableFrom(metaclass.getType()))) {

-			if (!constraintType.isArray()

-					|| !constraintType.getComponentType().isAssignableFrom(

-							metaclass.getType())) {

-				IConverter converter = XWT.findConvertor(metaclass.getType(),

-						constraintType);

-				if (converter == null) {

-					return null;

-				}

-			}

-		}

-		Object targetObject = null;

-		Integer styleValue = getStyleValue(element, styles);

-

-		if (parent == null || metaclass.getType() == Shell.class) {

-			if (dataBindingTrack != null) {

-				dataBindingTrack.addWidgetElement(element);

-			}

-			Shell shell = null;

-			if ((parent == null && metaclass.getType() != Shell.class)

-					|| styleValue == null || styleValue == -1) {

-				styleValue = SWT.SHELL_TRIM;

-			}

-			Display display = Display.getCurrent();

-			shell = new Shell(display, styleValue);

-			targetObject = shell;

-			invokeCreatededAction(element, targetObject);

-			loadData.setCurrentWidget(shell);

-

-			if (metaclass.getType() != Shell.class) {

-				shell.setLayout(new FillLayout());

-				return doCreate(targetObject, element, constraintType, options);

-			} else {

-				if (bindingContext != null) {

-					setBindingContext(metaclass, targetObject, dico,

-							bindingContext);

-				}

-				if (dataContext != null) {

-					setDataContext(metaclass, targetObject, dico, dataContext);

-				}

-			}

-			pushStack(parent);

-

-			// for Shell

-			Attribute classAttribute = element.getAttribute(

-					IConstants.XWT_X_NAMESPACE, IConstants.XAML_X_CLASS);

-			if (classAttribute != null) {

-				String className = classAttribute.getContent();

-				loadShellCLR(className, shell);

-			} else {

-				Attribute classFactoryAttribute = element.getAttribute(

-						IConstants.XWT_X_NAMESPACE,

-						IConstants.XAML_X_CLASS_FACTORY);

-				ICLRFactory clrFactory = (ICLRFactory) options

-						.get(XWTLoader.CLASS_FACTORY_PROPERTY);

-				if (classFactoryAttribute != null) {

-					String content = classFactoryAttribute.getContent();

-					Object clr = loadFactoryCLR(content, clrFactory);

-					loadData.setClr(clr);

-					UserData.setCLR(shell, clr);

-				} else {

-					if (clrFactory != null) {

-						Object clr = clrFactory.createCLR(null, options);

-						loadData.setClr(clr);

-						UserData.setCLR(shell, clr);

-					}

-				}

-			}

-		} else {

-			pushStack(parent);

-

-			//

-			// load the content in case of UserControl

-			//

-			Class<?> type = metaclass.getType();

-			URL file = getResource(metaclass, type.getSimpleName()

-					+ IConstants.XWT_EXTENSION_SUFFIX);

-			if (file != null && nameScoped != null) {

-				if (parent instanceof Composite) {

-					Object childDataContext = getDataContext(element,

-							(Widget) parent);

-					Object childBindingContext = getBindingContext(element,

-							(Widget) parent);

-					if (dataContext != null) {

-						childDataContext = dataContext;

-					}

-					if (bindingContext != null) {

-						childBindingContext = bindingContext;

-					}

-					Map<String, Object> nestedOptions = new HashMap<String, Object>();

-					nestedOptions.put(IXWTLoader.CONTAINER_PROPERTY, parent);

-					if (styleValue != null) {

-						nestedOptions.put(IXWTLoader.INIT_STYLE_PROPERTY,

-								styleValue);

-					}

-					nestedOptions.put(IXWTLoader.DATACONTEXT_PROPERTY,

-							childDataContext);

-					nestedOptions.put(IXWTLoader.BINDING_CONTEXT_PROPERTY,

-							childBindingContext);

-					nestedOptions.put(RESOURCE_LOADER_PROPERTY, this);

-					nestedOptions.put(IXWTLoader.CLASS_FACTORY_PROPERTY, null); // disable

-																				// the

-																				// global

-																				// setting

-					targetObject = loader.loadWithOptions(file, nestedOptions);

-					if (targetObject == null) {

-						return null;

-					}

-					invokeCreatededAction(element, targetObject);

-				} else

-					throw new XWTException(

-							"Cannot add user control: Parent is not a composite");

-			} else {

-				Object[] parameters = null;

-				if (TableViewerColumn.class.isAssignableFrom(type)) {

-					int columnIndex = getColumnIndex(element);

-					parameters = (styleValue != null ? new Object[] { parent,

-							styleValue, columnIndex } : new Object[] { parent,

-							SWT.NONE, columnIndex });

-				} else {

-					parameters = (styleValue != null ? new Object[] { parent,

-							styleValue } : new Object[] { parent });

-				}

-

-				// x:Class

-				{

-					boolean hasClass = false;

-					Attribute classAttribute = element

-							.getAttribute(IConstants.XWT_X_NAMESPACE,

-									IConstants.XAML_X_CLASS);

-					if (classAttribute != null) {

-						String className = classAttribute.getContent();

-						targetObject = loadCLR(className, parameters,

-								metaclass.getType(), options);

-						hasClass = true;

-					} else {

-						Object clr = options.get(XWTLoader.CLASS_PROPERTY);

-						if (clr != null) {

-							loadData.setClr(clr);

-							hasClass = true;

-						}

-					}

-					if (!hasClass) {

-						Attribute classFactoryAttribute = element.getAttribute(

-								IConstants.XWT_X_NAMESPACE,

-								IConstants.XAML_X_CLASS_FACTORY);

-						ICLRFactory clrFactory = (ICLRFactory) options

-								.get(XWTLoader.CLASS_FACTORY_PROPERTY);

-						if (classFactoryAttribute != null) {

-							Object clr = loadFactoryCLR(

-									classFactoryAttribute.getContent(),

-									clrFactory);

-							if (clr != null) {

-								loadData.setClr(clr);

-							}

-						} else {

-							if (clrFactory != null) {

-								loadData.setClr(clrFactory.createCLR(null,

-										options));

-							}

-						}

-					}

-

-					if (targetObject == null) {

-						targetObject = metaclass.newInstance(parameters);

-						invokeCreatededAction(element, targetObject);

-						Widget widget = UserData.getWidget(targetObject);

-						if (widget != null) {

-							Object clr = loadData.getClr();

-							if (clr != null) {

-								UserData.setCLR(widget, clr);

-							}

-						}

-					} else {

-						metaclass = loader.getMetaclass(targetObject);

-					}

-				}

-

-				if (targetObject == null) {

-					return null;

-				}

-			}

-		}

-		Widget widget = UserData.getWidget(targetObject);

-		if (widget != null) {

-			loadData.setCurrentWidget(targetObject);

-		}

-		if (scopedObject == null && widget != null) {

-			scopedObject = widget;

-			nameScoped = new ScopeKeeper((parent == null ? null

-					: UserData.findScopeKeeper((Widget) parent)), widget);

-			UserData.bindNameContext((Widget) widget, nameScoped);

-		}

-

-		// set first data context and resource dictionary

-		setDataContext(metaclass, targetObject, dico, dataContext);

-		if (bindingContext != null) {

-			setBindingContext(metaclass, targetObject, dico, bindingContext);

-		}

-

-		if (dataBindingTrack != null) {

-			dataBindingTrack.tracking(targetObject, element, dataContext);

-		}

-

-		// set parent relationship and viewer

-		if (targetObject instanceof Widget) {

-			if (parent != null) {

-				UserData.setParent(targetObject, parent);

-			}

-		} else if (JFacesHelper.isViewer(targetObject)) {

-			UserData.setParent(targetObject, parent);

-			UserData.setViewer(targetObject, targetObject);

-		} else if (targetObject instanceof TableItemProperty.Cell) {

-			((TableItemProperty.Cell) targetObject)

-					.setParent((TableItem) parent);

-		}

-

-		applyStyles(element, targetObject);

-

-		for (Map.Entry<String, Object> entry : options.entrySet()) {

-			String key = entry.getKey();

-			if (IXWTLoader.Utilities.isPropertyName(key)) {

-				continue;

-			}

-			IProperty property = metaclass.findProperty(key);

-			if (property == null) {

-				throw new XWTException("Property " + key + " not found.");

-			}

-			property.setValue(targetObject, entry.getValue());

-		}

-

-		Map<String, IProperty> delayedAttributes = new HashMap<String, IProperty>();

-		init(metaclass, targetObject, element, delayedAttributes);

-		if (targetObject instanceof Style && element.getChildren().length > 0) {

-			Collection<Setter> setters = new ArrayList<Setter>();

-			for (DocumentObject doc : element.getChildren()) {

-				Object child = doCreate(targetObject, (Element) doc, null,

-						Collections.EMPTY_MAP);

-				if (!(child instanceof Setter)) {

-					throw new XWTException("Setter is expected in Style.");

-				}

-				setters.add((Setter) child);

-			}

-			((Style) targetObject).setSetters(setters

-					.toArray(new Setter[setters.size()]));

-		} else if (targetObject instanceof ControlEditor) {

-			for (DocumentObject doc : element.getChildren()) {

-				Object editor = doCreate(parent, (Element) doc, null,

-						Collections.EMPTY_MAP);

-				if (editor != null && editor instanceof Control) {

-					((ControlEditor) targetObject).setEditor((Control) editor);

-					((Control) editor).setData(

-							PropertiesConstants.DATA_CONTROLEDITOR_OF_CONTROL,

-							targetObject);

-				}

-			}

-		} else if (targetObject instanceof IDataProvider) {

-			for (DocumentObject doc : element.getChildren()) {

-				if (IConstants.XWT_X_NAMESPACE.equals(doc.getNamespace())) {

-					String content = doc.getContent();

-					if (content != null) {

-						((IDataProvider) targetObject).setProperty(

-								doc.getName(), content);

-					}

-				}

-			}

-		} else {

-			for (DocumentObject doc : element.getChildren()) {

-				doCreate(targetObject, (Element) doc, null,

-						Collections.EMPTY_MAP);

-			}

-		}

-

-		iniDelayedAttribute(metaclass, targetObject, element, null,

-				delayedAttributes);

-

-		postCreation(targetObject);

-		popStack();

-		return targetObject;

-	}

-

-	protected void iniDelayedAttribute(IMetaclass metaclass,

-			Object targetObject, Element element, String namespace,

-			Map<String, IProperty> delayedAttributes) throws Exception {

-		Set<String> keys = delayedAttributes.keySet();

-		while (!keys.isEmpty()) {

-			for (String delayed : keys.toArray(new String[keys.size()])) {

-				IProperty property = delayedAttributes.get(delayed);

-				boolean hasDependency = false;

-				IProperty[] dependencies = property.getLoadingType()

-						.getDependencies();

-				if (dependencies.length > 0) {

-					for (IProperty dependency : dependencies) {

-						if (delayedAttributes.containsValue(dependency)) {

-							hasDependency = true;

-							break;

-						}

-					}

-				}

-				if (!hasDependency) {

-					initAttribute(metaclass, targetObject, element, null,

-							delayed);

-					keys.remove(delayed);

-				}

-			}

-		}

-	}

-

-	private URL getResource(IMetaclass metaclass, String resourcePath) {

-		Object userControlsDisabled = this.options.get(IXWTLoader.DISABLE_USER_CONTROLS);

-		if (!Boolean.TRUE.equals(userControlsDisabled)) {

-			IResourceCache resourceCache = getResourceCache();

-			if (resourceCache == null) {

-				return doGetResource(metaclass, resourcePath);

-			} else {

-				if (resourceCache.hasCached(metaclass, resourcePath)) {

-					return resourceCache.getCachedResource(metaclass, resourcePath);

-				}

-

-				URL url = doGetResource(metaclass, resourcePath);

-				resourceCache.cacheResource(metaclass, resourcePath, url);

-				return url;

-			} 

-		}

-		return null;

-	}

-

-	private URL doGetResource(IMetaclass type, String resourcePath) {

-		return type.getType().getResource(resourcePath);

-	}

-

-	private IResourceCache getResourceCache() {

-		Object object = options.get(IXWTLoader.USER_CONTROL_CACHE_PROPERTY);

-		if (object == null) {

-			//By default, use the singleton cache

-			return ResourceCache.getInstance();

-		} else if (object instanceof IResourceCache) {

-			//A cache has been specified explicitly: use it

-			return (IResourceCache) object;

-		} else if (Boolean.TRUE.equals(object)) { 

-			//Store a new cache instance in the options

-			IResourceCache resourceCache = new ResourceCache();

-			options.put(IXWTLoader.USER_CONTROL_CACHE_PROPERTY, resourceCache);

-			return resourceCache;

-		} else { 

-			//Boolean.FALSE or invalid value: no cache

-			return null;

-		}

-	}

-

-	/**

-	 * This method is invoked directly after creation of component instance, but

-	 * before applying its attributes and creating children.

-	 * 

-	 * @param element

-	 *            the source element in XML.

-	 * @param targetObject

-	 *            the created visual object.

-	 */

-	protected void postCreation0(Element element, Object targetObject) {

-

-		if (targetObject instanceof IDynamicBinding) {

-			if (bindings == null)

-				bindings = new ArrayList<IDynamicBinding>();

-			bindings.add((IDynamicBinding) targetObject);

-		}

-	}

-

-	private void invokeCreatededAction(Element element, Object targetObject) {

-		if (targetObject != null) {

-			postCreation0(element, targetObject);

-		}

-		if (options != null) {

-			ICreatedCallback createdAction = (ICreatedCallback) options

-					.get(IXWTLoader.CREATED_CALLBACK);

-			if (createdAction != null) {

-				createdAction.onCreated(targetObject);

-			}

-		}

-	}

-

-	/**

-	 * This method is invoked after full creation of component, i.e. after

-	 * creating its instance, applying its attributes and creating children.

-	 */

-	protected void postCreation(Object target) {

-

-		// after create a binding with validationstatus tag, the datasource of

-		// the binding should be updated to the corresponding bindingcontext

-		Collection<ValidationStatus> removedStatus = new ArrayList<ValidationStatus>();

-		if (status != null && !status.isEmpty()) {

-			for (ValidationStatus validationStatus : status) {

-				if (bindings != null && !bindings.isEmpty()) {

-					for (IDynamicBinding binding : bindings) {

-						if (binding.getName() != null

-								&& validationStatus.getSourceName() != null

-								&& validationStatus.getSourceName().equals(

-										binding.getName())) {

-							removedStatus.add(validationStatus);

-							Control control = (Control) validationStatus

-									.getControl();

-							if (binding.getControl().equals(control))

-								if (binding != null) {

-									Binding targetBinding = (Binding) validationStatus

-											.getParent();

-									targetBinding.setSource(binding

-											.getBindingContext());

-									targetBinding

-											.setPath(VALIDATION_STATUS_CONSTANT);

-								}

-						}

-					}

-				}

-			}

-			if (removedStatus != null) {

-				status.removeAll(removedStatus);

-				removedStatus.clear();

-			}

-		}

-

-	}

-

-	protected void setDataContext(IMetaclass metaclass, Object targetObject,

-			ResourceDictionary dico, Object dataContext)

-			throws IllegalAccessException, InvocationTargetException,

-			NoSuchFieldException {

-		Object control = null;

-		IMetaclass widgetMetaclass = metaclass;

-		if (JFacesHelper.isViewer(targetObject)) {

-			Widget widget = JFacesHelper.getControl(targetObject);

-			widgetMetaclass = loader.getMetaclass(widget.getClass());

-			control = targetObject;

-		} else if (targetObject instanceof Widget) {

-			control = (Widget) targetObject;

-		} else {

-			control = loadData.getCurrentWidget();

-		}

-		if (control != null) {

-			if (targetObject instanceof IDynamicBinding) {

-				IDynamicBinding dynamicBinding = (IDynamicBinding) targetObject;

-				dynamicBinding.setControl(control);

-				dynamicBinding.setHost(loadData.getHost());

-			}

-			if (dico != null) {

-				UserData.setResources(control, dico);

-			}

-			if (dataContext != null) {

-				IProperty property = widgetMetaclass

-						.findProperty(IConstants.XAML_DATA_CONTEXT);

-				if (property != null) {

-					property.setValue(UserData.getWidget(control), dataContext);

-				} else {

-					throw new XWTException("DataContext is missing in "

-							+ widgetMetaclass.getType().getName());

-				}

-			}

-		}

-	}

-

-	protected void setBindingContext(IMetaclass metaclass, Object targetObject,

-			ResourceDictionary dico, Object bindingContext)

-			throws IllegalAccessException, InvocationTargetException,

-			NoSuchFieldException {

-		Object control = null;

-		IMetaclass widgetMetaclass = metaclass;

-		if (JFacesHelper.isViewer(targetObject)) {

-			Widget widget = JFacesHelper.getControl(targetObject);

-			widgetMetaclass = loader.getMetaclass(widget.getClass());

-			control = targetObject;

-		} else if (targetObject instanceof Widget) {

-			control = (Widget) targetObject;

-		} else {

-			control = loadData.getCurrentWidget();

-		}

-		if (control != null) {

-			if (targetObject instanceof IDynamicBinding) {

-				IDynamicBinding dynamicBinding = (IDynamicBinding) targetObject;

-				dynamicBinding.setControl(control);

-				dynamicBinding.setHost(loadData.getHost());

-			}

-			if (dico != null) {

-				UserData.setResources(control, dico);

-			}

-			if (bindingContext != null) {

-				IProperty property = widgetMetaclass

-						.findProperty(IConstants.XAML_BINDING_CONTEXT);

-				if (property != null) {

-					property.setValue(UserData.getWidget(control),

-							bindingContext);

-				} else {

-					throw new XWTException("DataContext is missing in "

-							+ widgetMetaclass.getType().getName());

-				}

-			}

-		}

-	}

-

-	protected void applyStyles(Element element, Object targetObject)

-			throws Exception {

-		if (targetObject instanceof Widget) {

-			Widget widget = (Widget) targetObject;

-			Map<String, Object> dico = UserData.getLocalResources(widget);

-			Attribute attribute = element

-					.getAttribute(IConstants.XAML_RESOURCES);

-			if (attribute == null) {

-				attribute = element.getAttribute(IConstants.XWT_NAMESPACE,

-						IConstants.XAML_RESOURCES);

-			}

-			if (attribute != null) {

-				if (attribute.getChildren().length > 0) {

-					if (dico == null) {

-						dico = new ResourceDictionary();

-						UserData.setResources(widget, dico);

-					}

-

-					for (DocumentObject doc : attribute.getChildren()) {

-						Element elem = (Element) doc;

-						Object doCreate = doCreate(widget, elem, null,

-								EMPTY_MAP);

-						Attribute keyAttribute = elem.getAttribute(

-								IConstants.XWT_X_NAMESPACE,

-								IConstants.XAML_X_KEY);

-						if (keyAttribute == null) {

-							keyAttribute = elem.getAttribute(

-									IConstants.XWT_X_NAMESPACE,

-									IConstants.XAML_X_TYPE);

-						}

-						if (keyAttribute != null) {

-							dico.put(keyAttribute.getContent(), doCreate);

-						}

-						if (doCreate instanceof IStyle) {

-							IStyle style = (IStyle) doCreate;

-							loadData.addStyle(style);

-						}

-					}

-				}

-			}

-

-			// apply the styles defined in parent's resources via TargetType

-			Widget current = widget;

-			while (current != null) {

-				dico = UserData.getLocalResources(current);

-				if (dico != null) {

-					for (Object value : dico.values()) {

-						if (value instanceof Style) {

-							Style style = (Style) value;

-							Class<?> targetType = style.getTargetType();

-							if (targetType != null

-									&& targetType.isInstance(widget)) {

-								style.apply(targetObject);

-							}

-						}

-					}

-				}

-				current = UserData.getTreeParent(current);

-			}

-		}

-

-		for (IStyle style : loadData.getStyles()) {

-			style.applyStyle(targetObject);

-		}

-	}

-

-	protected int getColumnIndex(Element columnElement) {

-		String name = columnElement.getName();

-		String namespace = columnElement.getNamespace();

-		IMetaclass metaclass = loader.getMetaclass(name, namespace);

-		int index = -1;

-		Class<?> type = metaclass.getType();

-		if (TableViewerColumn.class.isAssignableFrom(type)) {

-			DocumentObject parent = columnElement.getParent();

-			List<DocumentObject> children = DocumentObjectSorter.sortWithAttr(

-					parent.getChildren(), "Index");

-			index = children.indexOf(columnElement);

-		}

-

-		return index;

-	}

-

-	/**

-	 * @param tableItem

-	 */

-	protected void installTableEditors(TableItem tableItem) {

-		Table table = tableItem.getParent();

-		TableColumn[] columns = table.getColumns();

-		if (columns == null || columns.length == 0) {

-			return;

-		}

-		for (TableColumn tableColumn : columns) {

-			Object data = tableColumn

-					.getData(PropertiesConstants.DATA_DEFINED_EDITOR);

-			if (data == null || !(data instanceof Element)) {

-				continue;

-			}

-			int column = table.indexOf(tableColumn);

-			Element editor = (Element) data;

-			try {

-				TableEditor tableEditor = (TableEditor) doCreate(table, editor,

-						null, EMPTY_MAP);

-				if (tableEditor != null) {

-					tableEditor.setColumn(column);

-					tableEditor.setItem(tableItem);

-				}

-			} catch (Exception e) {

-				continue;

-			}

-		}

-	}

-

-	protected Object getDataContext(Element element, Widget swtObject) {

-		// x:DataContext

-		try {

-			Object dataContext = loadData.getDataContext();

-			if (dataContext != null) {

-				return dataContext;

-			}

-			{

-				Attribute dataContextAttribute = element

-						.getAttribute(IConstants.XAML_DATA_CONTEXT);

-				if (dataContextAttribute != null) {

-					Widget composite = (Widget) swtObject;

-					DocumentObject documentObject = dataContextAttribute

-							.getChildren()[0];

-					if (IConstants.XAML_STATICRESOURCES.equals(documentObject

-							.getName())

-							|| IConstants.XAML_DYNAMICRESOURCES

-									.equals(documentObject.getName())) {

-						String key = documentObject.getContent();

-						dataContext = new StaticResourceBinding(composite, key);

-						loadData.setDataContext(dataContext);

-						return dataContext;

-					} else if (IConstants.XAML_BINDING.equals(documentObject

-							.getName())) {

-						dataContext = doCreate(swtObject,

-								(Element) documentObject, null, EMPTY_MAP);

-						loadData.setDataContext(dataContext);

-						return dataContext;

-					} else {

-						LoggerManager.log(new UnsupportedOperationException(

-								documentObject.getName()));

-					}

-				}

-			}

-		} catch (Exception e) {

-			LoggerManager.log(e);

-		}

-

-		return null;

-	}

-

-	protected Object getBindingContext(Element element, Widget swtObject) {

-		// x:DataContext

-		try {

-			{

-

-				Attribute dataContextAttribute = element

-						.getAttribute(IConstants.XAML_BINDING_CONTEXT);

-				if (dataContextAttribute != null) {

-					Widget composite = (Widget) swtObject;

-					DocumentObject documentObject = dataContextAttribute

-							.getChildren()[0];

-					if (IConstants.XAML_STATICRESOURCES.equals(documentObject

-							.getName())

-							|| IConstants.XAML_DYNAMICRESOURCES

-									.equals(documentObject.getName())) {

-						String key = documentObject.getContent();

-						return new StaticResourceBinding(composite, key);

-					} else if (IConstants.XAML_BINDING.equals(documentObject

-							.getName())) {

-						return doCreate(swtObject, (Element) documentObject,

-								null, EMPTY_MAP);

-					} else {

-						LoggerManager.log(new UnsupportedOperationException(

-								documentObject.getName()));

-					}

-				}

-			}

-		} catch (Exception e) {

-			LoggerManager.log(e);

-		}

-

-		return null;

-	}

-

-	protected void pushStack(Object host) {

-		loadData = new LoadingData(loadData, host);

-	}

-

-	protected void popStack() {

-		LoadingData previous = loadData;

-		loadData = previous.getParent();

-

-		previous.end();

-	}

-

-	protected Integer getStyleValue(Element element, int styles) {

-		Attribute attribute = element.getAttribute(IConstants.XWT_X_NAMESPACE,

-				IConstants.XAML_STYLE);

-		if (attribute == null) {

-			if (styles != -1) {

-				return styles;

-			}

-			return null;

-		}

-		if (styles == -1) {

-			return (Integer) loader.findConvertor(String.class, Integer.class)

-					.convert(attribute.getContent());

-		}

-		return styles

-				| (Integer) loader.findConvertor(String.class, Integer.class)

-						.convert(attribute.getContent());

-	}

-

-	protected void init(IMetaclass metaclass, Object targetObject,

-			Element element, Map<String, IProperty> delayedAttributes)

-			throws Exception {

-		// editors for TableItem,

-		if (targetObject instanceof TableItem) {

-			installTableEditors((TableItem) targetObject);

-		}

-

-		// x:DataContext

-		if (loadData.getDataContext() == null) {

-			Attribute dataContextAttribute = element

-					.getAttribute(IConstants.XAML_DATA_CONTEXT);

-			if (dataContextAttribute != null) {

-				IProperty property = metaclass

-						.findProperty(IConstants.XAML_DATA_CONTEXT);

-				Widget composite = (Widget) UserData.getWidget(targetObject);

-				DocumentObject documentObject = dataContextAttribute

-						.getChildren()[0];

-				if (IConstants.XAML_STATICRESOURCES.equals(documentObject

-						.getName())

-						|| IConstants.XAML_DYNAMICRESOURCES

-								.equals(documentObject.getName())) {

-					String key = documentObject.getContent();

-					property.setValue(composite, new StaticResourceBinding(

-							composite, key));

-				} else if (IConstants.XAML_BINDING.equals(documentObject

-						.getName())) {

-					Object object = doCreate(targetObject,

-							(Element) documentObject, null, EMPTY_MAP);

-					property.setValue(composite, object);

-				} else {

-					LoggerManager.log(new UnsupportedOperationException(

-							documentObject.getName()));

-				}

-			}

-		}

-

-		HashSet<String> done = new HashSet<String>();

-

-		Attribute nameAttr = element.getAttribute(IConstants.XAML_X_NAME);

-		if (nameAttr == null) {

-			nameAttr = element.getAttribute(IConstants.XWT_X_NAMESPACE,

-					IConstants.XAML_X_NAME);

-		}

-		if (nameAttr != null && UserData.getWidget(targetObject) != null) {

-			String value = nameAttr.getContent();

-			loadData.inject(targetObject, value);

-

-			nameScoped.addNamedObject(value, targetObject);

-			UserData.setElementName(targetObject, value, false);

-			done.add(IConstants.XAML_X_NAME);

-		}

-

-		for (String attrName : element.attributeNames()) {

-			IProperty property = metaclass.findProperty(attrName);

-

-			if (property == null) {

-				IMetaclass mc = XWT.getMetaclass(targetObject);

-				property = mc.findProperty(attrName);

-

-				if (property != null) {

-					metaclass = mc;

-				}

-			}

-

-			if (IConstants.XWT_X_NAMESPACE.equals(element

-					.getAttribute(attrName).getNamespace())) {

-				continue;

-			} else if (delayedAttributes != null

-					&& property != null

-					&& property.getLoadingType().getValueLoading() != IValueLoading.Normal)

-				delayedAttributes.put(attrName, property);

-			else {

-				if (!done.contains(attrName)) {

-					initAttribute(metaclass, targetObject, element, null,

-							attrName);

-					done.add(attrName);

-				}

-			}

-		}

-

-		for (String namespace : element.attributeNamespaces()) {

-			if (IConstants.XWT_X_NAMESPACE.equals(namespace)) {

-				for (String attrName : element.attributeNames(namespace)) {

-					if ("class".equalsIgnoreCase(attrName)

-							|| IConstants.XAML_STYLE.equalsIgnoreCase(attrName)) {

-						continue; // done before

-					} else if (IConstants.XAML_X_NAME

-							.equalsIgnoreCase(attrName)) {

-						nameScoped.addNamedObject(

-								element.getAttribute(namespace, attrName)

-										.getContent(), targetObject);

-						done.add(attrName);

-					} else if (IConstants.XAML_DATA_CONTEXT

-							.equalsIgnoreCase(attrName)) {

-						continue; // done before

-					} else if (IConstants.XAML_X_ARRAY

-							.equalsIgnoreCase(attrName)) {

-						IProperty property = metaclass.findProperty(attrName);

-						Class<?> type = property.getType();

-						Object value = getArrayProperty(type, targetObject,

-								element, attrName);

-						if (value != null) {

-							property.setValue(targetObject, value);

-						}

-					} else if (IConstants.XAML_RESOURCES

-							.equalsIgnoreCase(attrName)) {

-						continue;

-					} else {

-						if (!done.contains(attrName)) {

-							initAttribute(metaclass, targetObject, element,

-									namespace, attrName);

-							done.add(attrName);

-						}

-					}

-				}

-				continue;

-			}

-

-			for (String attrName : element.attributeNames(namespace)) {

-				if (IConstants.XAML_X_NAME.equalsIgnoreCase(attrName)

-						&& (targetObject instanceof Widget)) {

-					continue;

-				}

-				if (!done.contains(attrName)) {

-					initAttribute(metaclass, targetObject, element, namespace,

-							attrName);

-					done.add(attrName);

-				}

-			}

-		}

-		for (String attrName : element.attributeNames()) {

-			if (IConstants.XAML_X_NAME.equalsIgnoreCase(attrName)

-					&& UserData.getWidget(targetObject) != null) {

-				continue;

-			}

-			if (!done.contains(attrName)

-					&& !delayedAttributes.containsKey(attrName)) {

-				initAttribute(metaclass, targetObject, element, null, attrName);

-				done.add(attrName);

-			}

-		}

-

-		//

-		// handle foreigner namespace

-		//

-		for (String namespace : element.attributeNamespaces()) {

-			if (XWT.isXWTNamespace(namespace)) {

-				continue;

-			}

-			INamespaceHandler namespaceHandler = loader

-					.getNamespaceHandler(namespace);

-			if (namespaceHandler != null) {

-				for (String attrName : element.attributeNames(namespace)) {

-					Attribute attribute = element.getAttribute(namespace,

-							attrName);

-					Widget widget = UserData.getWidget(loadData

-							.getCurrentWidget());

-					namespaceHandler.handleAttribute(widget, targetObject,

-							attrName, attribute.getContent());

-				}

-			}

-		}

-	}

-

-	protected Object getArrayProperty(Class<?> type, Object swtObject,

-			DocumentObject docObject, String attrName)

-			throws IllegalAccessException, InvocationTargetException,

-			NoSuchFieldException {

-		Class<?> arrayType = null;

-		if (type == Object.class) {

-			if (docObject instanceof Element) {

-				Element element = (Element) docObject;

-				Attribute attribute = element.getAttribute(

-						IConstants.XWT_NAMESPACE, IConstants.XAML_X_TYPE);

-				if (attribute == null) {

-					throw new XWTException(

-							"The type attribute is missing in the element x:Array.");

-				}

-				String value = attribute.getContent();

-				IMetaclass metaclass = XWT.getMetaclass(value,

-						attribute.getNamespace());

-				if (metaclass == null) {

-					throw new XWTException("The type \"" + value

-							+ "\" is not found.");

-				}

-				arrayType = metaclass.getType();

-			}

-		} else {

-			if (!type.isArray()) {

-				throw new XWTException("Type mismatch: property " + attrName

-						+ " isn't an array.");

-			}

-			arrayType = type.getComponentType();

-		}

-		if (arrayType != null) {

-			List<Object> list = new ArrayList<Object>();

-			for (DocumentObject childModel : docObject.getChildren()) {

-				if (!(childModel instanceof Element)) {

-					continue;

-				}

-				Object child = createInstance(swtObject, (Element) childModel);

-				list.add(child);

-			}

-			Object[] array = (Object[]) Array.newInstance(arrayType,

-					list.size());

-			list.toArray(array);

-

-			for (int i = 0; i < array.length; i++) {

-				if (array[i] instanceof IIndexedElement) {

-					((IIndexedElement) array[i]).setIndex(swtObject, i);

-				}

-			}

-			return array;

-		}

-		return null;

-	}

-

-	@SuppressWarnings("unchecked")

-	protected Object getCollectionProperty(Class<?> type, Object swtObject,

-			DocumentObject element, String attrName)

-			throws IllegalAccessException, InvocationTargetException,

-			NoSuchFieldException {

-		Collection<Object> collector = null;

-		if (type.isInterface()) {

-			collector = new ArrayList<Object>();

-		} else {

-			if (Modifier.isAbstract(type.getModifiers())) {

-				LoggerManager.log(new XWTException("Collection "

-						+ type.getSimpleName() + " is abstract type"));

-			}

-			try {

-				collector = (Collection) type.newInstance();

-			} catch (InstantiationException e) {

-				LoggerManager.log(new XWTException(e));

-			}

-		}

-

-		for (DocumentObject childModel : element.getChildren()) {

-			if (!(childModel instanceof Element)) {

-				continue;

-			}

-			Object child = createInstance(swtObject, (Element) childModel);

-			collector.add(child);

-			if (child instanceof IIndexedElement) {

-				((IIndexedElement) child).setIndex(swtObject,

-						collector.size() - 1);

-			}

-		}

-		return collector;

-	}

-

-	protected String findNamespace(DocumentObject context, String prefix) {

-		while (context != null && !(context instanceof Element)) {

-			context = context.getParent();

-		}

-		if (context == null) {

-			return null;

-		}

-		Element element = (Element) context;

-

-		if (prefix != null) {

-			prefix = (prefix.length() == 0 ? null : prefix);

-		}

-

-		String namespace = element.getXmlns(prefix);

-		if (namespace != null) {

-			return namespace;

-		}

-		DocumentObject parent = element.getParent();

-		return findNamespace(parent, prefix);

-	}

-

-	protected Object createInstance(Object swtObject, Element element) {

-		String name = element.getName();

-		String namespace = element.getNamespace();

-		if (IConstants.XWT_X_NAMESPACE.equalsIgnoreCase(namespace)

-				&& IConstants.XAML_X_NULL.equalsIgnoreCase(name)) {

-			return null;

-		}

-		try {

-			Class<?> type = NamespaceHelper.loadCLRClass(

-					context.getLoadingContext(), name, namespace);

-			IMetaclass metaclass = loader.getMetaclass(name, namespace);

-			if (type == null) {

-				if (metaclass != null)

-					type = metaclass.getType();

-			}

-			if (metaclass == null) {

-				throw new XWTException("Class for " + name + " is not found.");

-			}

-			// type = expected type;

-			// Need to support the

-			String content = element.getContent();

-			Object instance = null;

-			if (content == null) {

-				instance = metaclass.newInstance(new Object[] { swtObject });

-				invokeCreatededAction(element, instance);

-				if (instance instanceof TableEditor) {

-					// TODO should be moved into IMetaclass

-					TableEditor tableEditor = (TableEditor) instance;

-					if (swtObject instanceof TableItem) {

-						TableItem item = (TableItem) swtObject;

-						tableEditor.setItem(item);

-						for (DocumentObject doc : element.getChildren()) {

-							Control control = (Control) doCreate(

-									((TableItem) swtObject).getParent(),

-									(Element) doc, null, EMPTY_MAP);

-							tableEditor.setEditor(control);

-							int column = getColumnValue(element);

-							TableEditorHelper.initEditor(item, control, column);

-						}

-					}

-				}

-			} else {

-				Constructor<?> constructor = type.getConstructor(type);

-				if (constructor != null) {

-					instance = constructor.newInstance(loader.convertFrom(type,

-							content));

-					invokeCreatededAction(element, instance);

-				} else {

-					LoggerManager.log(new XWTException("Constructor \"" + name

-							+ "(" + type.getSimpleName() + ")\" is not found"));

-				}

-			}

-			Map<String, IProperty> delayedAttributes = new HashMap<String, IProperty>();

-			init(metaclass, instance, element, delayedAttributes);

-			iniDelayedAttribute(metaclass, instance, element, null,

-					delayedAttributes);

-

-			for (DocumentObject doc : element.getChildren()) {

-				doCreate(instance, (Element) doc, null, Collections.EMPTY_MAP);

-			}

-			return instance;

-		} catch (Exception e) {

-			LoggerManager.log(e);

-		}

-		return null;

-	}

-

-	static protected int getColumnValue(Element context) {

-		Attribute attribute = context.getAttribute(COLUMN);

-		if (attribute != null) {

-			String content = attribute.getContent();

-			if (content != null) {

-				return Integer.parseInt(content);

-			}

-		}

-		return 0;

-	}

-

-	protected void loadShellCLR(String className, Shell shell) {

-		Class<?> type = ClassLoaderUtil.loadClass(context.getLoadingContext(),

-				className);

-		try {

-			Object instance = type.newInstance();

-			loadData.setClr(instance);

-			UserData.setCLR(shell, instance);

-		} catch (Exception e) {

-			LoggerManager.log(e);

-		}

-	}

-

-	protected Object loadFactoryCLR(String value, ICLRFactory factory) {

-		String token;

-		String arg;

-		if (value.startsWith("+")) {

-			if (factory == null) {

-				throw new XWTException("ICLRFactory option is missing.");

-			}

-			arg = value.substring(1).trim();

-			return factory.createCLR(arg, options);

-		} else {

-			StringTokenizer stringTokenizer = new StringTokenizer(value);

-			if (!stringTokenizer.hasMoreTokens()) {

-				throw new XWTException("x:ClassFactory is empty");

-			}

-			token = stringTokenizer.nextToken();

-			arg = value.substring(token.length()).trim();

-		}

-		int index = token.lastIndexOf('.');

-		if (index != -1) {

-			String memberName = token.substring(index + 1);

-			String typeName = token.substring(0, index);

-			Class<?> type = ClassLoaderUtil.loadClass(

-					context.getLoadingContext(), typeName);

-			if (type != null) {

-				Object member = ClassLoaderUtil.loadMember(

-						context.getLoadingContext(), type, memberName, false);

-				if (member instanceof ICLRFactory) {

-					factory = (ICLRFactory) member;

-				}

-				if (factory != null) {

-					return factory.createCLR(arg, options);

-				}

-			}

-		}

-		Class<?> type = ClassLoaderUtil.loadClass(context.getLoadingContext(),

-				token);

-		if (type != null && ICLRFactory.class.isAssignableFrom(type)) {

-			try {

-				ICLRFactory localFactory = (ICLRFactory) type.newInstance();

-				return localFactory.createCLR(arg, options);

-			} catch (Exception e) {

-				throw new XWTException(e);

-			}

-		}

-		throw new XWTException(value + " ClassFactory not found.");

-	}

-

-	protected Object loadCLR(String className, Object[] parameters,

-			Class<?> currentTagType, Map<String, Object> options) {

-		Class<?> type = ClassLoaderUtil.loadClass(context.getLoadingContext(),

-				className);

-		if (type == null) {

-			return null;

-		}

-		try {

-			Object clr = options.get(XWTLoader.CLASS_PROPERTY);

-			if (clr != null && type.isInstance(clr)) {

-				loadData.setClr(clr);

-				if (clr instanceof Widget) {

-					UserData.setCLR((Widget) clr, clr);

-				}

-			} else if (currentTagType != null

-					&& currentTagType.isAssignableFrom(type)) {

-				IMetaclass metaclass = loader.getMetaclass(type);

-				Object instance = metaclass.newInstance(parameters);

-				loadData.setClr(instance);

-				// use x:Class's instance

-				if (instance instanceof Widget) {

-					UserData.setCLR((Widget) instance, instance);

-				}

-				return instance;

-			} else {

-				Object instance = type.newInstance();

-				loadData.setClr(instance);

-				if (instance instanceof Widget) {

-					UserData.setCLR((Widget) instance, instance);

-				}

-			}

-		} catch (Exception e) {

-			LoggerManager.log(e);

-		}

-		return null;

-	}

-

-	protected void initAttribute(IMetaclass metaclass, Object targetObject,

-			Element element, String namespace, String attrName)

-			throws Exception {

-		if (attrName.indexOf('.') != -1) {

-			String[] segments = attrName.split("\\.");

-			IMetaclass currentMetaclass = metaclass;

-			Object target = targetObject;

-			for (int i = 0; i < segments.length - 1; i++) {

-				IProperty property = currentMetaclass.findProperty(segments[i]);

-				if (property != null) {

-					target = property.getValue(target);

-					if (target == null) {

-						LoggerManager.log(new XWTException("Property \""

-								+ segments[i] + "\" is null."));

-					}

-					currentMetaclass = loader.getMetaclass(target);

-				} else {

-					LoggerManager.log(new XWTException("Property \""

-							+ segments[i] + "\" not found in "

-							+ element.getName() + "."));

-				}

-			}

-			initSegmentAttribute(currentMetaclass,

-					segments[segments.length - 1], target, element, namespace,

-					attrName);

-			return;

-		}

-		initSegmentAttribute(metaclass, attrName, targetObject, element,

-				namespace, attrName);

-	}

-

-	protected void addCommandExecuteListener(String commandName,

-			final Widget targetButton) {

-		final ICommand commandObj = loader.getCommand(commandName);

-		if (commandObj != null) {

-			targetButton.addListener(SWT.Selection, new Listener() {

-				public void handleEvent(Event event) {

-					commandObj.execute(targetButton);

-				}

-			});

-		}

-	}

-

-	protected void initSegmentAttribute(IMetaclass metaclass,

-			String propertyName, Object target, Element element,

-			String namespace, String attrName) throws Exception {

-		Attribute attribute = namespace == null ? element

-				.getAttribute(attrName) : element.getAttribute(namespace,

-				attrName);

-		if (attribute == null) {

-			attribute = element.getAttribute(attrName);

-		}

-		IProperty property = null;

-		boolean isAttached = false;

-		{

-			String namePrefix = attribute.getNamePrefix();

-			if (namePrefix == null) {

-				property = metaclass.findProperty(propertyName);

-			} else {

-				//

-				IMetaclass metaclassAttached = loader.getMetaclass(namePrefix,

-						attribute.getNamespace());

-				if (metaclassAttached != null) {

-					property = metaclassAttached.findProperty(propertyName);

-					isAttached = true;

-				} else {

-					LoggerManager.log(attribute.getNamespace() + " -> "

-							+ namePrefix + " is not found.");

-					return;

-				}

-			}

-		}

-

-		if (propertyName.equals(IConstants.XAML_DATA_CONTEXT)) {

-			property = null;

-		}

-		if (IConstants.XAML_COMMAND.equalsIgnoreCase(propertyName)

-				&& ICommand.class.isAssignableFrom(property.getType())

-				&& (target instanceof Widget)) {

-			addCommandExecuteListener(attribute.getContent(), (Widget) target);

-		}

-		if (property == null) {

-			if (options.get(IXWTLoader.DESIGN_MODE_PROPERTY) == Boolean.TRUE) {

-				return;

-			}

-			// prepare event

-			IEvent event = metaclass.findEvent(attrName);

-			if (event == null) {

-				return;

-			}

-			// add events for controls and items.

-			if (!(target instanceof Widget)) {

-				return;

-			}

-			loadData.updateEvent(context, (Widget) target, event,

-					attribute.getContent());

-			return;

-		}

-

-		String contentValue = attribute.getContent();

-		if ("MenuItem".equalsIgnoreCase(element.getName())

-				&& "Text".equalsIgnoreCase(attrName)) {

-			Attribute attributeAccelerator = element

-					.getAttribute("Accelerator");

-			if (attributeAccelerator != null) {

-				contentValue = contentValue + '\t'

-						+ getContentValue(attributeAccelerator.getContent());

-			}

-		}

-

-		if (contentValue != null && "Accelerator".equalsIgnoreCase(attrName)) {

-			contentValue = XWTMaps.getCombAccelerator(contentValue);

-			if (contentValue.contains("'")) {

-				contentValue = removeSubString(contentValue, "'");

-			}

-		}

-		if (contentValue != null

-				&& loader.isFileResolveType(property.getType())) {

-			contentValue = getImagePath(contentValue);

-		}

-		// if (contentValue != null

-		// && (URL.class.isAssignableFrom(property.getType()))) {

-		// contentValue = getSourceURL(contentValue);

-		// }

-		Object value = null;

-		DocumentObject[] children = attribute.getChildren();

-		boolean usingExistingValue = false;

-		if (contentValue == null) {

-			Class<?> type = property.getType();

-			if (Collection.class.isAssignableFrom(type)) {

-				value = getCollectionProperty(type, target, attribute, attrName);

-			} else {

-				Object directTarget = null;

-				if (TableViewerColumn.class.isAssignableFrom(type)

-						&& attrName.equalsIgnoreCase("columns")) {

-					children = DocumentObjectSorter.sortWithAttr(children,

-							"Index").toArray(

-							new DocumentObject[children.length]);

-				} else {

-					try {

-						Object propertyValue = property.getValue(target);

-						if (UserData.getWidget(propertyValue) != null) {

-							directTarget = propertyValue;

-							// use the existing property value as parent,

-							// not need to add the constraint

-							if (!property.isValueAsParent()) {

-								if (isChildTypeCompatible(attribute, type)) {

-									directTarget = null;

-								} else {

-									type = null;

-									usingExistingValue = true;

-								}

-							}

-						}

-					} catch (Exception e) {

-					}

-				}

-				if (directTarget == null) {

-					directTarget = target;

-				}

-

-				for (DocumentObject child : children) {

-					String name = child.getName();

-					String ns = child.getNamespace();

-					if (name.equalsIgnoreCase(IConstants.XAML_X_STATIC)

-							&& ns.equals(IConstants.XWT_X_NAMESPACE)) {

-						value = getStaticValue(child);

-					} else if (name

-							.equalsIgnoreCase(IConstants.XAML_STATICRESOURCES)

-							&& ns.equals(IConstants.XWT_NAMESPACE)) {

-						String key = child.getContent();

-						value = new StaticResourceBinding(

-								loadData.getCurrentWidget(), key);

-					} else if ((IConstants.XWT_X_NAMESPACE.equals(ns) && IConstants.XAML_X_ARRAY

-							.equalsIgnoreCase(name))) {

-						value = getArrayProperty(property.getType(),

-								directTarget, child, name);

-					} else if (property.getType().isArray()) {

-						value = getArrayProperty(property.getType(),

-								directTarget, attribute, name);

-						break;

-					} else if (isAssignableFrom(element, TableColumn.class)

-							&& isAssignableFrom(child, TableEditor.class)) {

-						value = child;

-					} else if (TableViewerColumn.class

-							.isAssignableFrom(property.getType())

-							&& attribute.getContent() != null) {

-						value = attribute.getContent();

-					} else {

-						if ("Null".equals(child.getName())

-								&& IConstants.XWT_X_NAMESPACE.equals(child

-										.getNamespace())) {

-							property.setValue(directTarget, null);

-							return;

-						} else {

-							value = doCreate(directTarget, (Element) child,

-									type, EMPTY_MAP);

-							if (value == null

-									&& type != null

-									&& !(type == Table.class

-											&& "TableColumn".equals(child

-													.getName()) && Table.class

-												.isInstance(directTarget))) {

-								throw new XWTException(child.getName()

-										+ " cannot be a content of "

-										+ type.getName() + " "

-										+ target.getClass().getName() + "."

-										+ property.getName());

-							}

-							if (value instanceof IDynamicBinding) {

-								((IDynamicBinding) value).setType(attrName);

-							}

-						}

-					}

-				}

-			}

-		}

-		if (contentValue != null && value == null

-				&& !IConstants.XAML_COMMAND.equalsIgnoreCase(propertyName)) {

-			if (property.getType().isInstance(Class.class)) {

-				int index = contentValue.lastIndexOf(':');

-				if (index != -1) {

-					String prefix = contentValue.substring(0, index);

-					contentValue = findNamespace(attribute, prefix)

-							+ contentValue.substring(index);

-				}

-			}

-			value = loader.convertFrom(property.getType(), contentValue);

-		}

-		if (!usingExistingValue) {

-			if (value != null) {

-				Class<?> propertyType = property.getType();

-				if (!propertyType.isAssignableFrom(value.getClass())

-						|| (value instanceof IBinding && !(IBinding.class

-								.isAssignableFrom(propertyType)))) {

-					Object orginalValue = value;

-					IConverter converter = loader.findConvertor(

-							value.getClass(), propertyType);

-					if (converter != null) {

-						value = converter.convert(value);

-						if (value != null

-								&& orginalValue instanceof IBinding

-								&& !propertyType.isAssignableFrom(value

-										.getClass())) {

-							converter = loader.findConvertor(value.getClass(),

-									propertyType);

-							if (converter != null) {

-								value = converter.convert(value);

-							} else {

-								LoggerManager.log(new XWTException("Convertor "

-										+ value.getClass().getSimpleName()

-										+ "->" + propertyType.getSimpleName()

-										+ " is not found"));

-							}

-						}

-					} else {

-						LoggerManager.log(new XWTException("Convertor "

-								+ value.getClass().getSimpleName() + "->"

-								+ propertyType.getSimpleName()

-								+ " is not found"));

-					}

-				}

-				if (isAttached) {

-					UserData.setLocalData(target, property, value);

-				} else {

-					if (value instanceof IDynamicValueBinding) {

-						IDynamicValueBinding dynamicValueBinding = (IDynamicValueBinding) value;

-						dynamicValueBinding.setControl(loadData

-								.findElement(Widget.class));

-						dynamicValueBinding.setProperty(property);

-						dynamicValueBinding.setObject(target);

-					}

-					// deal with validation staus

-					if ((value instanceof ValidationStatus)

-							&& (property.getName().equals("source"))

-							&& (target instanceof Binding)) {

-						ValidationStatus validationStatus = (ValidationStatus) value;

-						validationStatus.setParent(target);

-						if (status == null)

-							status = new ArrayList<ValidationStatus>();

-						status.add(validationStatus);

-					} else {

-						property.setValue(target, value);

-

-					}

-				}

-			} else {

-				if (value == null) {

-					value = property.getValue(target);

-				}

-				if (value != null) {

-					// create children.

-					for (DocumentObject child : children) {

-						String name = child.getName();

-						String ns = child.getNamespace();

-						if (!IConstants.XWT_X_NAMESPACE.equals(ns)

-								|| !IConstants.XAML_X_ARRAY

-										.equalsIgnoreCase(name)) {

-							Class<?> type = property.getType();

-							if (!Collection.class.isAssignableFrom(type)) {

-								doCreate(value, (Element) child, null,

-										EMPTY_MAP);

-							}

-						}

-					}

-				}

-			}

-		}

-

-		if (attribute.attributeNames(IConstants.XWT_NAMESPACE).length > 0) {

-			IMetaclass propertyMetaclass = loader.getMetaclass(property

-					.getType());

-			if (value == null) {

-				value = property.getValue(target);

-			}

-			if (value != null) {

-				Map<String, IProperty> delayedAttributes = new HashMap<String, IProperty>();

-				init(propertyMetaclass, value, attribute, delayedAttributes);

-				iniDelayedAttribute(metaclass, target, element, namespace,

-						delayedAttributes);

-			}

-		}

-	}

-

-	protected boolean isChildTypeCompatible(Attribute attribute, Class<?> type) {

-		DocumentObject[] children = attribute.getChildren();

-		if (children.length != 1) {

-			return false;

-		}

-		DocumentObject child = children[0];

-		if (!(child instanceof Element)) {

-			return false;

-		}

-		Element childElement = (Element) child;

-

-		String name = childElement.getName();

-		String namespace = childElement.getNamespace();

-		IMetaclass metaclass = loader.getMetaclass(name, namespace);

-		if (metaclass == null) {

-			return false;

-		}

-		return type.isAssignableFrom(metaclass.getType());

-	}

-

-	/**

-	 * @param contentValue

-	 * @return

-	 */

-	protected String getSourceURL(String contentValue) {

-		URL url = null;

-		try {

-			url = new URL(contentValue);

-		} catch (MalformedURLException e) {

-			if (!contentValue.startsWith("/")) {

-				contentValue = "/" + contentValue;

-			}

-			ILoadingContext loadingContext = context.getLoadingContext();

-			URL resource = loadingContext.getResource(contentValue);

-			if (resource == null) {

-				try {

-					resource = new URL(context.getResourcePath() + contentValue);

-					return resource.toString();

-				} catch (MalformedURLException e1) {

-				}

-			} else {

-				return resource.toString();

-			}

-		}

-		if (url != null) {

-			return url.toString();

-		}

-		return contentValue;

-	}

-

-	protected Class<?> getJavaType(DocumentObject element) {

-		String name = element.getName();

-		String namespace = element.getNamespace();

-		if (IConstants.XWT_X_NAMESPACE.equalsIgnoreCase(namespace)

-				&& IConstants.XAML_X_NULL.equalsIgnoreCase(name)) {

-			return null;

-		}

-		IMetaclass metaclass = loader.getMetaclass(name, namespace);

-		if (metaclass == null) {

-			return null;

-		}

-		return metaclass.getType();

-	}

-

-	protected boolean isAssignableFrom(DocumentObject element, Class<?> type) {

-		Class<?> targetType = getJavaType(element);

-		if (targetType == null) {

-			return false;

-		}

-		return targetType.isAssignableFrom(type);

-	}

-

-	protected Object getStaticValue(DocumentObject child) {

-		DocumentObject[] children = child.getChildren();

-		if (children.length == 1) {

-			Element element = (Element) children[0];

-			if (element != null) {

-				return ClassLoaderUtil.loadStaticMember(

-						context.getLoadingContext(), element);

-			}

-		}

-		return null;

-	}

-

-	protected String getImagePath(String contentValue) {

-		String value = contentValue;

-		try {

-			File file = new File(contentValue);

-			if (file.exists()) {

-				return file.toURI().toURL().toString();

-			}

-			if (!contentValue.startsWith("/")) {

-				URL url = context.getResourcePath();

-				if (url != null) {

-					return url.toString() + "/" + contentValue;

-				}

-				contentValue = "/" + contentValue;

-			}

-			ILoadingContext loadingContext = context.getLoadingContext();

-			URL resource = loadingContext.getResource(contentValue);

-			if (resource == null) {

-				URL resourcePath = context.getResourcePath();

-				String fPath = resourcePath.toString();

-				String absolutePath = PathHelper.getAbsolutePath(fPath,

-						contentValue);

-				if ((file = new File(absolutePath)).exists()) {

-					return file.toURI().toURL().toString();

-				}

-				resource = new URL(absolutePath);

-			}

-			return resource.toString();

-		} catch (MalformedURLException e) {

-			return value;

-		}

-	}

-

-	protected String removeSubString(String str, String subString) {

-		StringBuffer stringBuffer = new StringBuffer();

-		int lenOfsource = str.length();

-		int i;

-		int posStart;

-		for (posStart = 0; (i = str.indexOf(subString, posStart)) >= 0; posStart = i

-				+ subString.length()) {

-			stringBuffer.append(str.substring(posStart, i));

-		}

-		if (posStart < lenOfsource) {

-			stringBuffer.append(str.substring(posStart));

-		}

-		return stringBuffer.toString();

-	}

-

-	protected String getContentValue(String text) {

-		StringBuffer stringBuffer = new StringBuffer();

-		String subString = "SWT.";

-		String str = XWTMaps.getCombAccelerator(text);

-

-		if (str.contains(subString)) {

-			str = removeSubString(str, subString);

-		}

-		if (str.contains("'")) {

-			str = removeSubString(str, "'");

-		}

-		if (str.contains(" ")) {

-			str = removeSubString(str, " ");

-		}

-		if (str.contains("|")) {

-			str = str.replace('|', '+');

-		}

-		stringBuffer.append(str);

-		return stringBuffer.toString();

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/ResourceLoaderFactory.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/ResourceLoaderFactory.java
deleted file mode 100644
index 5245782..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/ResourceLoaderFactory.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.javabean;

-

-import org.eclipse.xwt.IXWTLoader;

-import org.eclipse.xwt.core.IElementLoaderFactory;

-import org.eclipse.xwt.core.IRenderingContext;

-import org.eclipse.xwt.core.IVisualElementLoader;

-

-public class ResourceLoaderFactory implements IElementLoaderFactory {

-	public ResourceLoaderFactory() {

-	}

-

-	public IVisualElementLoader createElementLoader(IRenderingContext context, IXWTLoader loader) {

-		return new ResourceLoader(context, loader);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/StaticResourceBinding.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/StaticResourceBinding.java
deleted file mode 100644
index bb695ce..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/StaticResourceBinding.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.javabean;

-

-import java.util.Map;

-

-import org.eclipse.swt.widgets.Widget;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.core.IBinding;

-import org.eclipse.xwt.internal.utils.UserData;

-

-public class StaticResourceBinding implements IBinding {

-	protected Object widget;

-	protected String key;

-

-	public StaticResourceBinding(Object widget, String key) {

-		this.widget = widget;

-		this.key = key;

-	}

-

-	public Object getValue(Class<?> targetType) {

-		Widget parent = UserData.getWidget(widget);

-		while (parent != null) {

-			Map<String, Object> dico = UserData.getLocalResources(parent);

-			if (dico != null && dico.containsKey(key)) {

-				Object data = dico.get(key);

-				if (data instanceof IBinding) {

-					return ((IBinding) data).getValue(targetType);

-				}

-				return data;

-			}

-			parent = (Widget) UserData.getParent(parent);

-		}

-		throw new XWTException("Key " + key + " is not found.");			

-	}

-	

-	public void reset() {

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/ValueConvertorRegister.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/ValueConvertorRegister.java
deleted file mode 100644
index 8c92d51..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/ValueConvertorRegister.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.javabean;

-

-import java.util.HashMap;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-

-public class ValueConvertorRegister {

-	static protected HashMap<Class<?>, HashMap<Class<?>, IConverter>> register = new HashMap<Class<?>, HashMap<Class<?>, IConverter>>();

-

-	public void register(Class<?> source, Class<?> target, IConverter converter) {

-		HashMap<Class<?>, IConverter> convertors = register.get(source);

-		if (convertors == null) {

-			convertors = new HashMap<Class<?>, IConverter>();

-			register.put(source, convertors);

-		}

-		convertors.put(target, converter);

-	}

-

-	public IConverter findConverter(Class<?> source, Class<?> target) {

-		HashMap<Class<?>, IConverter> convertors = register.get(source);

-		if (convertors == null) {

-			if (source.isEnum()) {

-				convertors = register.get(Enum.class);

-				if (convertors == null) {

-					return null;

-				}

-			} else {

-				Class<?>[] interfacees = source.getInterfaces();

-				for (Class<?> class1 : interfacees) {

-					IConverter converter = findConverter(class1, target);

-					if (converter != null) {

-						return converter;

-					}

-				}

-				Class<?> superclass = source.getSuperclass();

-				if (superclass != null) {

-					IConverter converter = findConverter(superclass, target);

-					if (converter != null) {

-						return converter;

-					}

-				}

-				return null;

-			}

-		}

-		return findConverter(convertors, target);

-	}

-

-	private IConverter findConverter(HashMap<Class<?>, IConverter> convertors, Class<?> current) {

-		IConverter converter = convertors.get(current);

-		if (converter == null) {

-			if (current.isEnum()) {

-				converter = convertors.get(Enum.class);

-			}

-		}

-		if (converter == null) {

-			Class<?> superclass = current.getSuperclass();

-			if (superclass == null && current != Object.class) {

-				superclass = Object.class;

-			}

-			if (superclass != null) {

-				converter = findConverter(convertors, superclass);

-			}

-		}

-		return converter;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/AbstractMetaclass.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/AbstractMetaclass.java
deleted file mode 100644
index 5c6daac..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/AbstractMetaclass.java
+++ /dev/null
@@ -1,838 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata;

-

-import java.beans.BeanInfo;

-import java.beans.EventSetDescriptor;

-import java.beans.IntrospectionException;

-import java.beans.PropertyDescriptor;

-import java.lang.reflect.Array;

-import java.lang.reflect.Constructor;

-import java.lang.reflect.Field;

-import java.lang.reflect.InvocationTargetException;

-import java.lang.reflect.Method;

-import java.lang.reflect.Modifier;

-import java.util.ArrayList;

-import java.util.Collection;

-import java.util.Collections;

-import java.util.HashMap;

-import java.util.Map;

-

-import org.eclipse.core.databinding.validation.ValidationStatus;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.graphics.Region;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.swt.widgets.Monitor;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.swt.widgets.Widget;

-import org.eclipse.xwt.IEventConstants;

-import org.eclipse.xwt.IEventGroup;

-import org.eclipse.xwt.IXWTLoader;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.XWTMaps;

-import org.eclipse.xwt.core.IBinding;

-import org.eclipse.xwt.internal.core.Binding;

-import org.eclipse.xwt.internal.utils.UserData;

-import org.eclipse.xwt.javabean.metadata.properties.BeanProperty;

-import org.eclipse.xwt.javabean.metadata.properties.DynamicProperty;

-import org.eclipse.xwt.javabean.metadata.properties.EventProperty;

-import org.eclipse.xwt.javabean.metadata.properties.FieldProperty;

-import org.eclipse.xwt.jface.JFacesHelper;

-import org.eclipse.xwt.metadata.IEvent;

-import org.eclipse.xwt.metadata.IMetaclass;

-import org.eclipse.xwt.metadata.IObjectInitializer;

-import org.eclipse.xwt.metadata.IProperty;

-

-/**

- * 

- * @author xye (xiaowei.ye@soyatec.com)

- */

-public abstract class AbstractMetaclass implements IMetaclass {

-	public static IObjectInitializer[] EMPTY_INITIALIZERS = new IObjectInitializer[0];

-

-	public static IProperty[] EMPTY_PROPERTIES = new IProperty[0];

-	public static IEvent[] EMPTY_ROUTED_EVENTS = new IEvent[0];

-

-	protected final Map<String, IProperty> propertyCache = new HashMap<String, IProperty>();

-	protected Map<String, IEvent> routedEventCache = new HashMap<String, IEvent>();

-	protected Map<String, IEventGroup> eventGroupCache = Collections.EMPTY_MAP;

-

-	protected Class<?> type;

-	protected String name;

-	protected IMetaclass superClass;

-

-	protected IXWTLoader xwtLoader;

-

-	protected boolean buildTypedEvents;

-

-	private boolean initialize = false;

-	private IObjectInitializer[] initializers = EMPTY_INITIALIZERS;

-

-	protected boolean shouldIgnored(Class<?> declaredType, String propertyName,

-			Class<?> propertyType) {

-		String packageName = "";

-		if (type.getPackage() != null) {

-			packageName = declaredType.getPackage().getName();

-		}

-		if (("data".equals(propertyName) && packageName

-				.startsWith("org.eclipse.swt."))) {

-			return true;

-		}

-		if ("class".equals(propertyName)) {

-			return true;

-		}

-		if (("handle".equals(propertyName) && int.class == propertyType)

-				|| ("monitor".equals(propertyName) && Monitor.class == propertyType)

-				|| ("region".equals(propertyName) && Region.class == propertyType)

-				|| ("parent".equals(propertyName) && Composite.class == propertyType)

-				|| ("shell".equals(propertyName) && Shell.class == propertyType)

-				|| ("display".equals(propertyName) && Display.class == propertyType)) {

-			return true;

-		}

-		return false;

-	}

-

-	protected boolean isWidgetType(Class<?> type) {

-		Class<?> superClass = type.getSuperclass();

-		if (superClass != null) {

-			if (superClass.getName().equalsIgnoreCase(Widget.class.getName())) {

-				return true;

-			} else {

-				return isWidgetType(superClass);

-			}

-		}

-		return false;

-	}

-

-	protected final IXWTLoader getXWTLoader() {

-		return xwtLoader;

-	}

-

-	public IProperty addProperty(IProperty property) {

-		String name = normalize(property.getName());

-		return propertyCache.put(name, property);

-	}

-

-	public void removeProperty(String propertyName) {

-		String name = normalize(propertyName);

-		propertyCache.remove(name);

-	}

-

-	private void buildTypedEvents() {

-		if (buildTypedEvents) {

-			return;

-		}

-		if (isSubclassOf(getXWTLoader().getMetaclass(Widget.class))) {

-			addTypedEvent(IEventConstants.ACTIVATE, SWT.Activate);

-			addTypedEvent(IEventConstants.ARM, SWT.Arm);

-			addTypedEvent(IEventConstants.CLOSE, SWT.Close);

-			addTypedEvent(IEventConstants.COLLAPSE, SWT.Collapse);

-			addTypedEvent(IEventConstants.DEACTIVATE, SWT.Deactivate);

-			addTypedEvent(IEventConstants.DEFAULT_SELECTION,

-					SWT.DefaultSelection);

-			addTypedEvent(IEventConstants.DEICONIFY,

-					XWTMaps.getEvent("swt.deiconify"));

-			addTypedEvent(IEventConstants.DISPOSE, SWT.Dispose);

-			addTypedEvent(IEventConstants.DRAG_SELECT, SWT.DragDetect);

-			addTypedEvent(IEventConstants.ERASE_ITEM,

-					XWTMaps.getEvent("swt.eraseitem"));

-			addTypedEvent(IEventConstants.EXPAND, SWT.Expand);

-			addTypedEvent(IEventConstants.FOCUS_IN, SWT.FocusIn);

-			addTypedEvent(IEventConstants.FOCUS_OUT, SWT.FocusOut);

-			addTypedEvent(IEventConstants.HARD_KEY_DOWN,

-					XWTMaps.getEvent("swt.hardkeydown"));

-			addTypedEvent(IEventConstants.HARD_KEY_UP,

-					XWTMaps.getEvent("swt.hardkeyup"));

-			addTypedEvent(IEventConstants.HELP, SWT.Help);

-			addTypedEvent(IEventConstants.HIDE, SWT.Hide);

-			addTypedEvent(IEventConstants.ICONIFY,

-					XWTMaps.getEvent("swt.iconify"));

-			addTypedEvent(IEventConstants.KEY_DOWN, SWT.KeyDown);

-			addTypedEvent(IEventConstants.KEY_UP, SWT.KeyUp);

-			addTypedEvent(IEventConstants.MEASURE_ITEM,

-					XWTMaps.getEvent("swt.measureitem"));

-			addTypedEvent(IEventConstants.MENU_DETECT, SWT.MenuDetect);

-			addTypedEvent(IEventConstants.MODIFY, SWT.Modify);

-			addTypedEvent(IEventConstants.MOUSE_DOUBLE_CLICK,

-					SWT.MouseDoubleClick);

-			addTypedEvent(IEventConstants.MOUSE_DOWN, SWT.MouseDown);

-			addTypedEvent(IEventConstants.MOUSE_ENTER,

-					XWTMaps.getEvent("swt.mouseenter"));

-			addTypedEvent(IEventConstants.MOUSE_EXIT,

-					XWTMaps.getEvent("swt.mouseexit"));

-			addTypedEvent(IEventConstants.MOUSE_HOVER,

-					XWTMaps.getEvent("swt.mousehover"));

-			addTypedEvent(IEventConstants.MOUSE_MOVE,

-					XWTMaps.getEvent("swt.mousemove"));

-			addTypedEvent(IEventConstants.MOUSE_UP, SWT.MouseUp);

-			addTypedEvent(IEventConstants.MOUSE_WHEEL,

-					XWTMaps.getEvent("swt.mousewheel"));

-			addTypedEvent(IEventConstants.MOVE, SWT.Move);

-			addTypedEvent(IEventConstants.PAINT, XWTMaps.getEvent("swt.paint"));

-			addTypedEvent(IEventConstants.PAINT_ITEM,

-					XWTMaps.getEvent("swt.paintitem"));

-			addTypedEvent(IEventConstants.RESIZE, SWT.Resize);

-			addTypedEvent(IEventConstants.SELECTION, SWT.Selection); // sash

-			addTypedEvent(IEventConstants.SET_DATA, SWT.SetData);

-			// addTypedEvent ("Settings", SWT.Settings); // note: this event

-			// only goes to Display

-			addTypedEvent(IEventConstants.SHOW, SWT.Show);

-			addTypedEvent(IEventConstants.TRAVERSE, SWT.Traverse);

-			addTypedEvent(IEventConstants.VERIFY, SWT.Verify);

-			addTypedEvent(IEventConstants.IME_COMPOSITION,

-					XWTMaps.getEvent("swt.imecomposition"));

-		}

-		buildTypedEvents = true;

-	}

-

-	private void addTypedEvent(String name, int eventType) {

-		String eventName = IEventConstants.getEventName(name);

-		if (!routedEventCache.containsKey(eventName)) {

-			TypedEvent typedEvent = new TypedEvent(name, eventType);

-			routedEventCache.put(eventName, typedEvent);

-			String eventPropertyName = IEventConstants

-					.getEventPropertyName(name);

-			String eventDataName = IEventConstants

-					.getEventPropertyDataName(name);

-			addProperty(new EventProperty(eventPropertyName, eventDataName,

-					typedEvent));

-		}

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see com.soyatec.xaswt.core.metadata.IMetaclass#findDefaultProperty()

-	 */

-	public IProperty findDefaultProperty() {

-		return null;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * com.soyatec.xaswt.core.metadata.IMetaclass#findEvent(java.lang.String)

-	 */

-	public IEvent findEvent(String name) {

-		assertInitialize();

-		return routedEventCache.get(normalize(name));

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * com.soyatec.xaswt.core.metadata.IMetaclass#findProperty(java.lang.String)

-	 */

-	public IProperty findProperty(String name) {

-		assertInitialize();

-		IProperty property = propertyCache.get(normalize(name));

-		if (property == null && superClass != null) {

-			property = superClass.findProperty(name);

-		}

-		if (property == null) {

-			Method getter = null;

-			Method setter = null;

-			Class<?> propertyType = null;

-			try {

-				getter = DynamicProperty.createGetter(type, name);

-			} catch (NoSuchMethodException e) {

-			}

-			if (getter == null) {

-				return null;

-			}

-			propertyType = getter.getReturnType();

-			if (shouldIgnored(getter.getDeclaringClass(), name, propertyType)) {

-				return null;

-			}

-			try {

-				setter = DynamicProperty.createSetter(type, propertyType, name);

-			} catch (NoSuchMethodException e) {

-

-			}

-			if (getter != null) {

-				return new DynamicProperty(propertyType, setter, getter, name);

-			}

-		}

-		return property;

-	}

-

-	protected String normalize(String name) {

-		return name == null ? name : name.toLowerCase();

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see com.soyatec.xaswt.core.metadata.IMetaclass#getEvents()

-	 */

-	public IEvent[] getEvents() {

-		assertInitialize();

-		return routedEventCache.values().toArray(new IEvent[] {});

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see com.soyatec.xaswt.core.metadata.IMetaclass#getName()

-	 */

-	public String getName() {

-		return name;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see com.soyatec.xaswt.core.metadata.IMetaclass#getProperties()

-	 */

-	public IProperty[] getProperties() {

-		assertInitialize();

-		return propertyCache.values().toArray(

-				new IProperty[propertyCache.size()]);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see com.soyatec.xaswt.core.metadata.IMetaclass#getSuperClass()

-	 */

-	public IMetaclass getSuperClass() {

-		return superClass;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see com.soyatec.xaswt.core.metadata.IMetaclass#getType()

-	 */

-	public Class<?> getType() {

-		return type;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see com.soyatec.xaswt.core.metadata.IMetaclass#isAbstract()

-	 */

-	public boolean isAbstract() {

-		return Modifier.isAbstract(type.getModifiers());

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * com.soyatec.xaswt.core.metadata.IMetaclass#isAssignableFrom(com.soyatec

-	 * .xaswt.core.metadata.IMetaclass)

-	 */

-	public boolean isAssignableFrom(IMetaclass metaclass) {

-		return getType().isAssignableFrom(metaclass.getType());

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * com.soyatec.xaswt.core.metadata.IMetaclass#isInstance(java.lang.Object)

-	 */

-	public boolean isInstance(Object object) {

-		return type.isInstance(object);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * com.soyatec.xaswt.core.metadata.IMetaclass#isSubclassOf(com.soyatec.xaswt

-	 * .core.metadata.IMetaclass)

-	 */

-	public boolean isSubclassOf(IMetaclass metaclass) {

-		assertInitialize();

-		if (metaclass == null) {

-			return false;

-		}

-		if (this == metaclass) {

-			return true;

-		}

-		if (superClass == metaclass) {

-			return true;

-		}

-		if (superClass != null) {

-			return superClass.isSubclassOf(metaclass);

-		}

-		return false;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see

-	 * com.soyatec.xaswt.core.metadata.IMetaclass#isSuperclassOf(com.soyatec

-	 * .xaswt.core.metadata.IMetaclass)

-	 */

-	public boolean isSuperclassOf(IMetaclass metaclass) {

-		return metaclass.isSubclassOf(this);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see com.soyatec.xaswt.core.metadata.IMetaclass#newInstance()

-	 */

-	public Object newInstance(Object[] parameters) {

-		assertInitialize();

-		Object object = doNewInstance(parameters);

-		if (parameters != null && parameters.length > 0) {

-			try {

-				updateContainment(parameters[0], object);

-				initialize(object);

-			} catch (Exception e) {

-				throw new XWTException(e);

-			}

-		}

-		return object;

-	}

-

-	private void updateContainment(Object parent, Object childElement)

-			throws IllegalAccessException, InvocationTargetException,

-			NoSuchFieldException {

-		if (childElement != null && parent != null

-				&& !(parent instanceof Widget)) {

-			//

-			// Add to default property identified by the type

-			//

-			IMetaclass parentMetaclass = XWT.getMetaclass(parent);

-			IProperty[] properties = parentMetaclass.getProperties();

-			IProperty useProperty = null;

-			int count = 0;

-			Class<?> childType = childElement.getClass();

-

-			// deal with the ValidationStatus tag

-			IMetaclass childMetaclass = XWT.getMetaclass(childElement);

-

-			if (childMetaclass.getType().equals(

-					org.eclipse.xwt.core.ValidationStatus.class)

-					&& parentMetaclass.getClass()

-							.equals(BindingMetaclass.class)) {

-				IProperty childControlProperty = childMetaclass

-						.findProperty("control");

-				IProperty parentControlProperty = parentMetaclass

-						.findProperty("control");

-				

-				

-

-				childControlProperty.setValue(childElement,

-						parentControlProperty.getValue(parent));

-			}

-

-			for (IProperty property : properties) {

-				

-				Class<?> propertyType = property.getType();

-				if (propertyType == null || propertyType == Object.class) {

-					continue;

-				}

-				if (property.isContainement()) {

-					useProperty = property;

-					count++;

-				}

-			}

-			if (count > 1) {

-				StringBuilder builder = new StringBuilder();

-				builder.append("Class has more containment properties: ");

-				count = 0;

-				for (IProperty property : properties) {

-					Class<?> propertyType = property.getType();

-					if (propertyType == null || propertyType == Object.class) {

-						continue;

-					}

-					if (property.isContainement()) {

-						if (count != 0) {

-							builder.append(", ");

-						}

-						builder.append(property.getName());

-						count++;

-					}

-				}

-				throw new XWTException(

-						"Class has more containment properties: ");

-			}

-

-			if (count == 0) {

-				for (IProperty property : properties) {

-					Class<?> propertyType = property.getType();

-					if (propertyType == null || propertyType == Object.class) {

-						continue;

-					}

-					if (propertyType.isArray()) {

-						Class<?> dataType = propertyType.getComponentType();

-						if (dataType.isAssignableFrom(childType)) {

-							if (useProperty == null) {

-								useProperty = property;

-							}

-							count++;

-						}

-					} else if (Collection.class.isAssignableFrom(propertyType)) {

-						if (useProperty == null) {

-							useProperty = property;

-						}

-						count++;

-					} else if (propertyType.isAssignableFrom(childType)) {

-						if (useProperty == null) {

-							useProperty = property;

-						}

-						count++;

-					}

-				}

-			}

-			if (count == 1) {

-				Class<?> propertyType = useProperty.getType();

-				if (propertyType.isArray()) {

-					Object[] existingValue = (Object[]) useProperty

-							.getValue(parent);

-					Class<?> dataType = propertyType.getComponentType();

-					Object[] value = null;

-					if (existingValue == null) {

-						value = (Object[]) Array.newInstance(dataType, 1);

-						value[0] = childElement;

-					} else {

-						value = (Object[]) Array.newInstance(dataType,

-								existingValue.length + 1);

-						System.arraycopy(existingValue, 0, value, 0,

-								existingValue.length);

-						value[existingValue.length] = childElement;

-					}

-					useProperty.setValue(parent, value);

-				} else if (Collection.class.isAssignableFrom(propertyType)

-						&& !(childElement instanceof IBinding)) {

-					Collection existingValue = (Collection) useProperty

-							.getValue(parent);

-					if (existingValue == null) {

-						existingValue = new ArrayList();

-					}

-					existingValue.add(childElement);

-					useProperty.setValue(parent, existingValue);

-				} else if (propertyType.isAssignableFrom(childType)) {

-					useProperty.setValue(parent, childElement);

-				}

-			}

-		}

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see com.soyatec.xaswt.core.metadata.IMetaclass#newInstance()

-	 */

-	public Object doNewInstance(Object[] parameters) {

-		assertInitialize();

-		try {

-			if (parameters.length == 0

-					|| (!(parameters[0] instanceof Widget || JFacesHelper

-							.isViewer(parameters[0])))) {

-				return getType().newInstance();

-			}

-		} catch (InstantiationException e1) {

-		} catch (IllegalAccessException e1) {

-		}

-

-		try {

-			Object swtObject = null;

-			Object parent = parameters[0];

-			Widget directParent = UserData.getWidget(parent);

-			if (directParent == null) {

-				directParent = UserData.getTreeParent(parent);

-			}

-			if (directParent != null

-					&& Control.class.isAssignableFrom(getType())

-					&& !(directParent instanceof Composite)) {

-				directParent = getXWTLoader().findCompositeParent(directParent);

-			}

-

-			Object styleValue = null;

-			if (parameters.length == 2

-					&& parameters[1] != null

-					&& (parameters[1].getClass() == int.class || parameters[1]

-							.getClass() == Integer.class)) {

-				styleValue = parameters[1];

-			}

-

-			Constructor<?> defaultConstructor = null;

-			for (Constructor<?> constructor : getType().getConstructors()) {

-				Class<?>[] parameterTypes = constructor.getParameterTypes();

-				if (parameterTypes.length > 2 || parameterTypes.length == 0) {

-					if (parameterTypes.length == 0) {

-						defaultConstructor = constructor;

-					}

-					continue;

-				}

-

-				if (parameterTypes[0].isAssignableFrom(parent.getClass())) {

-					if (parameterTypes.length == 1) {

-						if (styleValue == null) {

-							swtObject = constructor

-									.newInstance(new Object[] { parent });

-							break;

-						}

-					} else if (parameterTypes[1].isAssignableFrom(int.class)) {

-						if (styleValue == null)

-							swtObject = constructor.newInstance(new Object[] {

-									parent, 0 });

-						else

-							swtObject = constructor.newInstance(new Object[] {

-									parent, styleValue });

-						break;

-					}

-				}

-			}

-

-			if (swtObject == null) {

-				for (Constructor<?> constructor : getType().getConstructors()) {

-					Class<?>[] parameterTypes = constructor.getParameterTypes();

-					if (parameterTypes.length > 2 || parameterTypes.length == 0) {

-						if (parameterTypes.length == 0) {

-							defaultConstructor = constructor;

-						}

-						continue;

-					}

-

-					if (directParent != null

-							&& parameterTypes[0].isAssignableFrom(directParent

-									.getClass())) {

-						if (parameterTypes.length == 1) {

-							swtObject = constructor

-									.newInstance(new Object[] { directParent });

-							break;

-						} else if (parameterTypes[1]

-								.isAssignableFrom(int.class)) {

-							if (styleValue == null)

-								swtObject = constructor

-										.newInstance(new Object[] {

-												directParent, 0 });

-							else

-								swtObject = constructor

-										.newInstance(new Object[] {

-												directParent, styleValue });

-							break;

-						}

-					}

-				}

-			}

-			if (swtObject == null) {

-				if (defaultConstructor == null) {

-					if (UserData.isUIElementType(getType())) {

-						// this is used for Visual

-						Shell shell = new Shell();

-						try {

-							Constructor<?> constructor = getType()

-									.getConstructor(Composite.class, int.class);

-							if (constructor != null) {

-								return constructor.newInstance(shell, SWT.NONE);

-							}

-						} catch (Exception e) {

-							throw new XWTException("Constructor "

-									+ getType().getName() + " no found.");

-						}

-					}

-					try {

-						swtObject = getType().newInstance();

-					} catch (Exception e) {

-						throw new XWTException("Constructor "

-								+ getType().getName() + " no found.");

-					}

-				} else {

-					swtObject = defaultConstructor.newInstance();

-				}

-			}

-			return swtObject;

-		} catch (SecurityException e) {

-			throw new XWTException(e);

-		} catch (IllegalArgumentException e) {

-			throw new XWTException(e);

-		} catch (InstantiationException e) {

-			throw new XWTException(e);

-		} catch (IllegalAccessException e) {

-			throw new XWTException(e);

-		} catch (InvocationTargetException e) {

-			throw new XWTException(e);

-		}

-	}

-

-	public Class<?> getDataContextType() {

-		return Object.class;

-	}

-

-	private void assertInitialize() {

-		initialize(type, superClass);

-	}

-

-	protected void initialize(Class<?> type, IMetaclass superClass) {

-		if (isInitialize()) {

-			return;

-		}

-		try {

-			BeanInfo beanInfo = java.beans.Introspector.getBeanInfo(type);

-			PropertyDescriptor[] propertyDescriptors = beanInfo

-					.getPropertyDescriptors();

-			for (PropertyDescriptor p : propertyDescriptors) {

-				String propertyName = p.getName();

-				Class<?> propertyType = p.getPropertyType();

-				if (p.getReadMethod() == null) {

-					continue;

-				}

-				if (shouldIgnored(p.getReadMethod().getDeclaringClass(),

-						propertyName, propertyType)

-						|| propertyCache

-								.containsKey(propertyName.toLowerCase())) {

-					continue;

-				}

-				if (p.getPropertyType() != null) {

-					IProperty property = (superClass != null ? superClass

-							.findProperty(p.getName().toLowerCase()) : null);

-					if (property != null && !property.isDefault()) {

-						addProperty(property);

-					} else {

-						if (p.getWriteMethod() != null

-								|| !p.getPropertyType().isPrimitive()) {

-							addProperty(new BeanProperty(p));

-						}

-					}

-				}

-			}

-			for (Field f : type.getDeclaredFields()) {

-				if (Modifier.isStatic(f.getModifiers())) {

-					continue;

-				}

-				String propertyName = f.getName();

-				Class<?> propertyType = f.getType();

-				if (shouldIgnored(f.getDeclaringClass(), propertyName,

-						propertyType)) {

-					continue;

-				}

-

-				if (!propertyCache.containsKey(normalize(propertyName))

-						&& !Modifier.isFinal(f.getModifiers())

-						&& Modifier.isPublic(f.getModifiers())) {

-					addProperty(new FieldProperty(f));

-				}

-			}

-

-			for (EventSetDescriptor eventSetDescriptor : beanInfo

-					.getEventSetDescriptors()) {

-				String name = IEventConstants.getEventName(eventSetDescriptor

-						.getName());

-				BeanEvent event = new BeanEvent(eventSetDescriptor.getName(),

-						eventSetDescriptor);

-				routedEventCache.put(name, event);

-				String propertyName = IEventConstants

-						.getEventPropertyName(eventSetDescriptor.getName());

-				String propertyDataName = IEventConstants

-						.getEventPropertyDataName(eventSetDescriptor.getName());

-				addProperty(new EventProperty(propertyName, propertyDataName,

-						event));

-			}

-			if (isWidgetType(type)) {

-				LoadedEvent loadedEvent = new LoadedEvent(

-						IEventConstants.XWT_LOADED_EVENT);

-				routedEventCache.put(normalize(IEventConstants.XWT_LOADED),

-						loadedEvent);

-				routedEventCache.put(

-						normalize(IEventConstants.XWT_LOADED_EVENT),

-						loadedEvent);

-			}

-

-			markInitialized();

-			buildTypedEvents();

-		} catch (SecurityException e) {

-			e.printStackTrace();

-		} catch (IntrospectionException e) {

-			e.printStackTrace();

-		}

-	}

-

-	private void markInitialized() {

-		initialize = true;

-	}

-

-	private boolean isInitialize() {

-		return initialize;

-	}

-

-	public void addEventGroup(IEventGroup eventGroup) {

-		if (eventGroupCache == Collections.EMPTY_MAP) {

-			eventGroupCache = new HashMap<String, IEventGroup>();

-		}

-		for (String string : eventGroup.getEventNames()) {

-			if (eventGroupCache.containsKey(string)) {

-				throw new IllegalArgumentException("Event \"" + string

-						+ "\" already existis in a group.");

-			}

-			String key = normalize(string);

-			if ("menudetecteventevent".equals(key)) {

-				System.out.println(string);

-			}

-

-			eventGroupCache.put(key, eventGroup);

-		}

-	}

-

-	public IEventGroup getEventGroup(String event) {

-		IEventGroup eventGroup = eventGroupCache.get(event);

-		if (eventGroup == null && superClass != null) {

-			return superClass.getEventGroup(event);

-		}

-		return eventGroup;

-	}

-

-	public void addInitializer(IObjectInitializer initializer) {

-		for (int i = 0; i < initializers.length; i++) {

-			if (initializers[i] == initializer) {

-				return;

-			}

-		}

-		IObjectInitializer[] oldValue = initializers;

-		initializers = new IObjectInitializer[oldValue.length + 1];

-		System.arraycopy(oldValue, 0, initializers, 0, oldValue.length);

-		initializers[oldValue.length] = initializer;

-	}

-

-	public void removeInitializer(IObjectInitializer initializer) {

-		for (int i = 0; i < initializers.length; i++) {

-			if (initializers[i] == initializer) {

-				IObjectInitializer[] oldValue = initializers;

-				initializers = new IObjectInitializer[oldValue.length - 1];

-				System.arraycopy(oldValue, 0, initializers, 0, i);

-				System.arraycopy(oldValue, i + 1, initializers, i,

-						oldValue.length - i - 1);

-				return;

-			}

-		}

-	}

-

-	public IObjectInitializer[] getInitializers() {

-		return initializers;

-	}

-

-	public void initialize(Object instance) {

-		if (superClass != null) {

-			superClass.initialize(instance);

-		}

-

-		for (int i = 0; i < initializers.length; i++) {

-			if (initializers[i] != null) {

-				initializers[i].initialize(instance);

-			}

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/BeanEvent.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/BeanEvent.java
deleted file mode 100644
index a386c57..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/BeanEvent.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata;

-

-import java.beans.EventSetDescriptor;

-

-import org.eclipse.xwt.metadata.IEvent;

-

-/**

- * @author yyang (yves.yang@soyatec.com)

- */

-public class BeanEvent extends Behavior implements IEvent {

-	protected EventSetDescriptor eventSetDescriptor;

-

-	public BeanEvent(String name, EventSetDescriptor eventSetDescriptor) {

-		super(name);

-		this.eventSetDescriptor = eventSetDescriptor;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/Behavior.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/Behavior.java
deleted file mode 100644
index a503fed..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/Behavior.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata;

-

-import org.eclipse.xwt.metadata.IBehavior;

-

-/**

- * @author yyang (yves.yang@soyatec.com)

- */

-public abstract class Behavior implements IBehavior {

-	private String name;

-	protected int flags;

-

-	public Behavior(String name) {

-		this.name = name;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see com.soyatec.xaswt.core.metadata.IBehavior#getName()

-	 */

-	public final String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/BindingMetaclass.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/BindingMetaclass.java
deleted file mode 100644
index 8d7f4c1..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/BindingMetaclass.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata;

-

-import org.eclipse.jface.viewers.ViewerColumn;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Item;

-import org.eclipse.xwt.IXWTLoader;

-import org.eclipse.xwt.internal.core.Binding;

-import org.eclipse.xwt.internal.core.DynamicBinding;

-import org.eclipse.xwt.javabean.metadata.properties.TableItemProperty;

-import org.eclipse.xwt.jface.JFacesHelper;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class BindingMetaclass extends Metaclass {

-	public BindingMetaclass(IXWTLoader xwtLoader) {

-		this(Binding.class, xwtLoader);

-	}

-

-	public BindingMetaclass(Class<?> type, IXWTLoader xwtLoader) {

-		super(type, null, xwtLoader);

-	}

-

-	@Override

-	public Object newInstance(Object[] parameters) {

-		DynamicBinding newInstance = (DynamicBinding) super.newInstance(parameters);

-		if (JFacesHelper.isViewer(parameters[0]))

-			newInstance.setControl(parameters[0]);

-		else if (parameters[0] instanceof Control)

-			newInstance.setControl((Control) parameters[0]);

-		else if (parameters[0] instanceof TableItemProperty.Cell)

-			newInstance.setControl(((TableItemProperty.Cell) parameters[0]).getParent());

-		else if (parameters[0] instanceof Item)

-			newInstance.setControl((Item) parameters[0]);

-		else if (parameters[0] instanceof ViewerColumn) {

-			newInstance.setControl((ViewerColumn) parameters[0]);

-		}

-		newInstance.setXWTLoader(xwtLoader);

-		return newInstance;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/ComboBoxCellEditorMetaclass.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/ComboBoxCellEditorMetaclass.java
deleted file mode 100644
index 4cd40e4..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/ComboBoxCellEditorMetaclass.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata;

-

-import java.lang.reflect.Constructor;

-import java.lang.reflect.InvocationTargetException;

-

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Widget;

-import org.eclipse.xwt.IXWTLoader;

-import org.eclipse.xwt.jface.ComboBoxCellEditor;

-import org.eclipse.xwt.jface.JFacesHelper;

-import org.eclipse.xwt.metadata.IMetaclass;

-

-public class ComboBoxCellEditorMetaclass extends Metaclass {

-

-	public ComboBoxCellEditorMetaclass(IMetaclass superClass, IXWTLoader xwtLoader) {

-		super(ComboBoxCellEditor.class, superClass, xwtLoader);

-	}

-

-	/**

-	 * @see org.eclipse.xwt.javabean.metadata.Metaclass#newInstance(java.lang. Object[])

-	 */

-	@Override

-	public Object newInstance(Object[] parameters) {

-		try {

-			if (parameters.length == 1) {

-				Constructor<?> constructor = getType().getConstructor(Composite.class, String[].class);

-				return constructor.newInstance(getParent(parameters[0]), new String[] {});

-			} else if (parameters.length == 2) {

-				Constructor<?> constructor = getType().getConstructor(Composite.class, String[].class, int.class);

-				return constructor.newInstance(getParent(parameters[0]), new String[] {}, parameters[2]);

-			} else if (parameters.length == 3) {

-				Constructor<?> constructor = getType().getConstructor(Composite.class, String[].class, int.class);

-				return constructor.newInstance(getParent(parameters[0]), parameters[1], parameters[2]);

-			}

-		} catch (SecurityException e1) {

-		} catch (IllegalArgumentException e1) {

-		} catch (NoSuchMethodException e1) {

-		} catch (InstantiationException e1) {

-		} catch (IllegalAccessException e1) {

-		} catch (InvocationTargetException e1) {

-		}

-		return super.newInstance(parameters);

-	}

-

-	private Widget getParent(Object object) {

-		Widget parent = null;

-		Widget directParent = null;

-

-		if (object instanceof Widget) {

-			directParent = parent = (Widget) object;

-		} else if (JFacesHelper.isViewer(object)) {

-			directParent = parent = JFacesHelper.getControl(object);

-		} else

-			throw new IllegalStateException();

-		if (Control.class.isAssignableFrom(getType()) && !(parent instanceof Composite)) {

-			directParent = xwtLoader.findCompositeParent(parent);

-		}

-

-		return directParent;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/ExpandItemHeightAction.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/ExpandItemHeightAction.java
deleted file mode 100644
index 07c7108..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/ExpandItemHeightAction.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.ExpandItem;

-import org.eclipse.xwt.metadata.IProperty;

-import org.eclipse.xwt.metadata.ISetPostAction;

-

-/**

- * @author yyang (yves.yang@soyatec.com)

- */

-public class ExpandItemHeightAction implements ISetPostAction {

-

-	public void action(Object target, IProperty property, Object value) {

-		if (target instanceof ExpandItem && value instanceof Control) {

-			ExpandItem targetControl = (ExpandItem) target;

-			Control valueControl = (Control) value;

-			targetControl.setHeight(valueControl.computeSize(SWT.DEFAULT, SWT.DEFAULT).y);

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/LoadedEvent.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/LoadedEvent.java
deleted file mode 100644
index 4b7cfe0..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/LoadedEvent.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata;

-

-import org.eclipse.xwt.metadata.IEvent;

-

-/**

- * @author yyang (yves.yang@soyatec.com)

- */

-public class LoadedEvent implements IEvent {

-

-	private String name;

-

-	public LoadedEvent(String name) {

-		this.name = name;

-	}

-

-	public String getName() {

-		return name;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/Metaclass.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/Metaclass.java
deleted file mode 100644
index 3da0fb3..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/Metaclass.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata;

-

-import org.eclipse.xwt.IXWTLoader;

-import org.eclipse.xwt.XWTLoaderManager;

-import org.eclipse.xwt.metadata.IMetaclass;

-

-/**

- * @author yyang (yves.yang@soyatec.com)

- */

-public class Metaclass extends AbstractMetaclass {

-

-	/**

-	 * 

-	 * @param type

-	 * @param superClass

-	 * @param initialize

-	 */

-	public Metaclass(Class<?> type, IMetaclass superClass, boolean initialize) {

-		this(type, superClass, XWTLoaderManager.getDefault());

-	}

-

-	/**

-	 * 

-	 * @param type

-	 * @param superClass

-	 * @param initialize

-	 * @param xwtLoader

-	 */

-	public Metaclass(Class<?> type, IMetaclass superClass, boolean initialize, IXWTLoader xwtLoader) {

-		this.type = type;

-		this.name = type.getSimpleName();

-		this.superClass = superClass;

-		this.xwtLoader = xwtLoader;

-		if (initialize) {

-			initialize(type, superClass);

-		}

-	}

-

-	/**

-	 * Default initialize it

-	 * 

-	 * @param type

-	 * @param superClass

-	 */

-	public Metaclass(Class<?> type, IMetaclass superClass) {

-		this(type, superClass, false, XWTLoaderManager.getDefault());

-	}

-

-	/**

-	 * Default initialize it

-	 * 

-	 * @param type

-	 * @param superClass

-	 */

-	public Metaclass(Class<?> type, IMetaclass superClass, IXWTLoader xwtLoader) {

-		this(type, superClass, false, xwtLoader);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/TableEditorMetaclass.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/TableEditorMetaclass.java
deleted file mode 100644
index efe8968..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/TableEditorMetaclass.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata;

-

-import org.eclipse.swt.custom.TableEditor;

-import org.eclipse.swt.widgets.Table;

-import org.eclipse.swt.widgets.Widget;

-import org.eclipse.xwt.IXWTLoader;

-import org.eclipse.xwt.internal.utils.UserData;

-import org.eclipse.xwt.metadata.IMetaclass;

-

-public class TableEditorMetaclass extends Metaclass {

-

-	public TableEditorMetaclass(IMetaclass superClass,IXWTLoader xwtLoader) {

-		super(TableEditor.class, superClass,xwtLoader);

-	}

-

-	/**

-	 * @see org.eclipse.xwt.javabean.metadata.Metaclass#newInstance(java.lang.

-	 *      Object[])

-	 */

-	@Override

-	public Object newInstance(Object[] parameters) {

-		Object widget = parameters[0];

-		if (parameters.length == 0 || !(widget instanceof Widget)) {

-			throw new IllegalStateException("Table parent is missing.");

-		}

-		Table table = null;

-		if (widget instanceof Table) {

-			table = (Table) widget;

-		} else {

-			table = (Table) UserData.findParent((Widget) widget, Table.class);

-		}

-		if (table == null) {

-			throw new IllegalStateException("Table parent is missing.");

-		}

-		return super.newInstance(new Object[] { table });

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/TableViewerColumnMetaClass.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/TableViewerColumnMetaClass.java
deleted file mode 100644
index 1a4014b..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/TableViewerColumnMetaClass.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata;

-

-import java.lang.reflect.Constructor;

-import java.lang.reflect.InvocationTargetException;

-

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.jface.viewers.TableViewerColumn;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.widgets.TableColumn;

-import org.eclipse.xwt.IXWTLoader;

-import org.eclipse.xwt.metadata.IMetaclass;

-

-public class TableViewerColumnMetaClass extends Metaclass {

-

-	public TableViewerColumnMetaClass(IMetaclass superClass, IXWTLoader xwtLoader) {

-		super(TableViewerColumn.class, superClass, xwtLoader);

-	}

-

-	/**

-	 * @see org.eclipse.xwt.javabean.metadata.Metaclass#newInstance(java.lang.

-	 *      Object[])

-	 */

-	@Override

-	public Object newInstance(Object[] parameters) {

-		Object object = doNewInstance(parameters);

-		if (object != null) {

-			initialize(object);

-		}

-		return object;

-	}

-	

-	@Override

-	public Object doNewInstance(Object[] parameters) {

-			try {

-				if (parameters.length == 1 && parameters[0] instanceof TableViewer) {

-					Constructor<?> constructor = getType().getConstructor(TableViewer.class, int.class);

-					return constructor.newInstance(parameters[0], SWT.NONE);

-				} else if (parameters.length == 2) {

-					if (parameters[0] instanceof TableViewer && parameters[1] instanceof Integer) {

-						Constructor<?> constructor = getType().getConstructor(TableViewer.class, int.class);

-						return constructor.newInstance(parameters);

-					} else if (parameters[0] instanceof TableViewer && parameters[1] instanceof TableColumn) {

-						Constructor<?> constructor = getType().getConstructor(TableViewer.class, TableColumn.class);

-						return constructor.newInstance(parameters);

-					}

-				} else if (parameters.length == 3 && parameters[0] instanceof TableViewer

-						&& parameters[1] instanceof Integer && parameters[2] instanceof Integer) {

-					Constructor<?> constructor = getType().getConstructor(TableViewer.class, int.class, int.class);

-					return constructor.newInstance(parameters[0], ((Integer) parameters[1]).intValue(), ((Integer) parameters[2]).intValue());

-				}

-			} catch (SecurityException e) {

-			} catch (IllegalArgumentException e) {

-			} catch (NoSuchMethodException e) {

-			} catch (InstantiationException e) {

-			} catch (IllegalAccessException e) {

-			} catch (InvocationTargetException e) {

-			}

-

-		return super.doNewInstance(parameters);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/TypedEvent.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/TypedEvent.java
deleted file mode 100644
index 2f0a349..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/TypedEvent.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata;

-

-import org.eclipse.xwt.metadata.IEvent;

-

-/**

- * @author jliu

- */

-public class TypedEvent implements IEvent {

-

-	private String name;

-	private int eventType;

-

-	/**

-	 * SWT event type.

-	 */

-	public TypedEvent(String name, int eventType) {

-		this.name = name;

-		this.eventType = eventType;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.core.metadata.IBehavior#getName()

-	 */

-	public String getName() {

-		return name;

-	}

-

-	public int getEventType() {

-		return eventType;

-	}

-

-	public void setName(String name) {

-		this.name = name;

-	}

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/AbstractProperty.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/AbstractProperty.java
deleted file mode 100644
index d1d6449..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/AbstractProperty.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata.properties;

-

-import java.util.ArrayList;

-import java.util.Collection;

-import java.util.Collections;

-

-import org.eclipse.xwt.javabean.metadata.Behavior;

-import org.eclipse.xwt.metadata.ILoadingType;

-import org.eclipse.xwt.metadata.IProperty;

-import org.eclipse.xwt.metadata.ISetPostAction;

-

-public abstract class AbstractProperty extends Behavior implements IProperty {

-	static final int VALUE_AS_PARENT = 1<<1;

-	

-	protected Collection<ISetPostAction> setPostActions = Collections.EMPTY_LIST;

-	private Class<?> type;

-	protected ILoadingType loadingType;

-

-	public AbstractProperty(String name, Class<?> type) {

-		this(name, type, ILoadingType.DEFAULT);

-	}

-

-	public AbstractProperty(String name, Class<?> type, ILoadingType loadingType) {

-		super(name);

-		setType(type);

-		this.loadingType = loadingType;

-	}

-

-	public void addSetPostAction(ISetPostAction setPostAction) {

-		if (setPostActions == Collections.EMPTY_LIST) {

-			setPostActions = new ArrayList<ISetPostAction>();

-		}

-		if (!setPostActions.contains(setPostAction)) {

-			setPostActions.add(setPostAction);

-		}

-	}

-

-	public void removeSetPostAction(ISetPostAction setPostAction) {

-		setPostActions.remove(setPostAction);

-	}

-

-	protected void fireSetPostAction(Object target, IProperty property, Object value) {

-		for (ISetPostAction setPostAction : setPostActions) {

-			setPostAction.action(target, property, value);

-		}

-	}

-

-	public boolean isDefault() {

-		return false;

-	}

-	

-	public boolean isContainement() {

-		return false;

-	}

-

-	public boolean isReadOnly() {

-		return false;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.metadata.IProperty#setType(java.lang.Class)

-	 */

-	public void setType(Class<?> type) {

-		if (type == boolean.class) {

-			type = Boolean.class;

-		}

-		else if (type == int.class) {

-			type = Integer.class;

-		}

-		else if (type == long.class) {

-			type = Long.class;

-		}

-		else if (type == char.class) {

-			type = Character.class;

-		}

-		else if (type == float.class) {

-			type = Float.class;

-		}

-		else if (type == double.class) {

-			type = Double.class;

-		}

-		else if (type == byte.class) {

-			type = Byte.class;

-		}

-		else if (type == short.class) {

-			type = Short.class;

-		}

-		this.type = type;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.metadata.IProperty#getType()

-	 */

-	public Class<?> getType() {

-		return type;

-	}

-	

-	public boolean isValueAsParent() {

-		return (flags & VALUE_AS_PARENT) == VALUE_AS_PARENT;

-	}

-	

-	public void setValueAsParent(boolean value) {

-		flags |= VALUE_AS_PARENT;

-	}

-

-	public ILoadingType getLoadingType() {

-		return loadingType;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/BeanProperty.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/BeanProperty.java
deleted file mode 100644
index a42ebf1..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/BeanProperty.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata.properties;

-

-import java.beans.PropertyDescriptor;

-import java.lang.annotation.Annotation;

-import java.lang.reflect.InvocationTargetException;

-import java.lang.reflect.Method;

-

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.annotation.Containment;

-import org.eclipse.xwt.core.IBinding;

-import org.eclipse.xwt.internal.utils.ObjectUtil;

-import org.eclipse.xwt.internal.utils.UserData;

-import org.eclipse.xwt.metadata.ILoadingType;

-import org.eclipse.xwt.metadata.IProperty;

-

-public class BeanProperty extends AbstractProperty {

-	protected PropertyDescriptor descriptor;

-	private boolean containment = false;

-	

-	public BeanProperty(PropertyDescriptor descriptor) {

-		this(descriptor, ILoadingType.DEFAULT);

-	}

-

-	public BeanProperty(PropertyDescriptor descriptor, ILoadingType loadingType) {

-		super(descriptor.getName(), descriptor.getPropertyType(), loadingType);

-		this.descriptor = descriptor;

-		

-		Method readMethod = descriptor.getReadMethod();

-		if (readMethod != null) {

-			Annotation annotation = readMethod.getAnnotation(Containment.class);

-			if (annotation != null) {

-				containment = true;

-			}

-		}

-		Method writeMethod = descriptor.getWriteMethod();

-		if (writeMethod != null) {

-			Annotation annotation = writeMethod.getAnnotation(Containment.class);

-			if (annotation != null) {

-				containment = true;

-			}

-		}

-	}

-

-	public void setValue(Object target, Object value)

-			throws IllegalArgumentException, IllegalAccessException,

-			InvocationTargetException, SecurityException, NoSuchFieldException {

-		if (descriptor != null && descriptor.getWriteMethod() != null) {

-			Method writeMethod = descriptor.getWriteMethod();

-			// Bug of invoke boolean value.

-			Class<?>[] parameterTypes = writeMethod.getParameterTypes();

-			if (parameterTypes.length == 1) {

-				Class<?> type = parameterTypes[0];

-				Class<?> propertyType = getType();

-				if (propertyType != Object.class) {

-					type = propertyType;

-				}

-				if (!ObjectUtil.isAssignableFrom(IBinding.class, propertyType)) {

-					if (value != null && type != value.getClass()) {

-						value = ObjectUtil.resolveValue(value, type, value);

-					}

-				}

-

-				Object oldValue = null;

-				Method readMethod = descriptor.getReadMethod();

-				if (readMethod != null) {

-					oldValue = readMethod.invoke(target);

-				}

-

-				if (value == null && type != null

-						&& UserData.getWidget(target) != null) {

-					if (type == String.class) {

-						value = "";

-					} else if (type == Boolean.class) {

-						value = false;

-					}

-				}

-

-				if (oldValue != value) {

-					writeMethod.setAccessible(true);

-					try {

-						writeMethod.invoke(target, value);

-						fireSetPostAction(target, this, value);

-					} catch (IllegalArgumentException e) {

-						if (value == null) {

-							throw new XWTException("Property type " + getName()

-									+ " of " + target.getClass().getName()

-									+ " cannot be null.", e);

-						}

-						throw new XWTException("Property type " + getName()

-								+ " of " + target.getClass().getName()

-								+ " is mismatch with "

-								+ value.getClass().getName()

-								+ " expected type is "

-								+ parameterTypes[0].getName(), e);

-					}

-					catch (InvocationTargetException e) {

-						throw new XWTException("Problem of invoke " + getName()

-								+ " of " + target.getClass().getName()

-								+ " with a value of type "

-								+ value.getClass().getName(), e);

-					}

-				}

-			}

-		}

-	}

-

-	public Object getValue(Object target) throws IllegalArgumentException,

-			IllegalAccessException, InvocationTargetException,

-			SecurityException, NoSuchFieldException {

-		if (descriptor != null && descriptor.getReadMethod() != null) {

-			Method readMethod = descriptor.getReadMethod();

-			readMethod.setAccessible(true);

-			return readMethod.invoke(target);

-		}

-		return null;

-	}

-

-	@Override

-	public boolean isDefault() {

-		return true;

-	}

-	

-	public boolean isContainement() {

-		return containment;

-	}

-

-	public boolean isReadOnly(Object target, Object value) {

-		return descriptor.getWriteMethod() == null;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/ColumnViewerColumnsProperty.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/ColumnViewerColumnsProperty.java
deleted file mode 100644
index 7476e5c..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/ColumnViewerColumnsProperty.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata.properties;

-

-import java.lang.reflect.InvocationTargetException;

-

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.jface.viewers.TableViewerColumn;

-import org.eclipse.swt.widgets.Table;

-import org.eclipse.swt.widgets.TableColumn;

-import org.eclipse.xwt.core.IUserDataConstants;

-import org.eclipse.xwt.internal.utils.UserData;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class ColumnViewerColumnsProperty extends AbstractProperty {

-

-	public ColumnViewerColumnsProperty() {

-		super(PropertiesConstants.PROPERTY_COLUMNS, TableViewerColumn.class);

-	}

-

-	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {

-		return null;

-	}

-

-	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {

-		TableViewer tableViewer = (TableViewer) target;

-		Table table = (Table) tableViewer.getControl();

-		int count = table.getColumnCount();

-		if (count != 0) {

-			String[] columnProperties = new String[count];

-			for (int i = 0; i < columnProperties.length; i++) {

-				TableColumn column = table.getColumn(i);

-				columnProperties[i] = (String) UserData.getLocalData(column, IUserDataConstants.XWT_PROPERTY_DATA_KEY);

-				if (columnProperties[i] != null) {

-					UserData.setLocalData(column, IUserDataConstants.XWT_PROPERTY_DATA_KEY, null);

-				}

-			}

-			tableViewer.setColumnProperties(columnProperties);

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/DataProperty.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/DataProperty.java
deleted file mode 100644
index be8be32..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/DataProperty.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata.properties;

-

-import org.eclipse.xwt.internal.utils.UserData;

-import org.eclipse.xwt.metadata.ILoadingType;

-

-/**

- * Additional property to store in user data in widget

- * 

- * @author yyang

- *

- */

-public class DataProperty extends AbstractProperty {

-	protected String key;

-	protected Object defaultValue;

-

-	public DataProperty(String name, String key) {

-		this(name, key, Object.class, null);

-	}

-

-	public DataProperty(String name, String key, Class<?> propertyType) {

-		this(name, key, propertyType, null);

-	}

-

-	public DataProperty(String name, String key, Class<?> propertyType, Object defaultValue) {

-		this(name, key, propertyType, defaultValue, ILoadingType.DEFAULT);

-	}

-

-	public DataProperty(String name, String key, Class<?> propertyType, Object defaultValue, ILoadingType loadingType) {

-		super(name, propertyType, loadingType);

-		this.key = key;

-		this.defaultValue = defaultValue;

-	}

-

-	public Object getValue(Object target) {

-		Object object = UserData.getLocalData(target, key);

-		if (object == null) {

-			return defaultValue;

-		}

-		return object;

-	}

-

-	public void setValue(Object target, Object value) {

-		UserData.setLocalData(target, key, value);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/DynamicBeanProperty.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/DynamicBeanProperty.java
deleted file mode 100644
index dc0d88b..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/DynamicBeanProperty.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata.properties;

-

-import java.lang.reflect.InvocationTargetException;

-

-/**

- * 

- * This is a new type of dynamic properties, some properties, such as texts for TableItem and TreeItem, we used the setText(String[]) and String = getText();

- * 

- * @author jliu

- * 

- */

-public class DynamicBeanProperty extends DynamicProperty {

-

-	public DynamicBeanProperty(Class<?> type, Class<?> propertyType, String propertyName) {

-		super(propertyType, createSetter0(type, propertyType, propertyName), null, propertyName);

-	}

-

-	public DynamicBeanProperty(Class<?> type, Class<?> propertyType, String propertyName, String setterName) {

-		super(propertyType, createSetter0(type, propertyType, setterName), null, propertyName);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.javabean.metadata.properties.DynamicProperty#getValue (java.lang.Object)

-	 */

-	@Override

-	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {

-		throw new UnsupportedOperationException();

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/DynamicProperty.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/DynamicProperty.java
deleted file mode 100644
index ba1c3eb..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/DynamicProperty.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata.properties;

-

-import java.lang.reflect.InvocationTargetException;

-import java.lang.reflect.Method;

-

-import org.eclipse.xwt.internal.utils.ObjectUtil;

-import org.eclipse.xwt.metadata.ILoadingType;

-import org.eclipse.xwt.metadata.IProperty;

-

-/**

- * This class is used to extend the Java Bean model

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class DynamicProperty extends AbstractProperty {

-

-	private final Method setter;

-	private final Method getter;

-

-	public DynamicProperty(Class<?> type, Class<?> propertyType, String name) {

-		this(propertyType, createSetter0(type, propertyType, name), createGetter0(propertyType, name), name);

-	}

-

-	public DynamicProperty(Class<?> type, Class<?> propertyType, String name, ILoadingType loadingType) {

-		this(propertyType, createSetter0(type, propertyType, name), createGetter0(propertyType, name), name, loadingType);

-	}

-

-	public DynamicProperty(Class<?> propertyType, Method setter, Method getter, String name) {

-		this(propertyType, setter, getter, name, ILoadingType.DEFAULT);

-	}

-

-	public DynamicProperty(Class<?> propertyType, Method setter, Method getter, String name, ILoadingType loadingType) {

-		super(name, propertyType, loadingType);

-		this.setter = setter;

-		this.getter = getter;

-	}

-

-	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {

-		setter.invoke(target, value);

-		fireSetPostAction(target, this, value);

-	}

-

-	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {

-		return getter.invoke(target, null);

-	}

-

-	protected static Method createSetter0(Class<?> type, Class<?> propertyType, String name) {

-		try {

-			return createSetter(type, propertyType, name);

-		} catch (Exception e) {

-		}

-		return null;

-	}

-

-	@Override

-	public boolean isReadOnly() {

-		return this.setter == null;

-	}

-	

-	public static Method createSetter(Class<?> type, Class<?> propertyType, String name) throws SecurityException, NoSuchMethodException {

-		return type.getMethod("set" + Character.toUpperCase(name.charAt(0)) + name.substring(1), propertyType);

-	}

-

-	protected static Method createGetter0(Class<?> type, String name) {

-		try {

-			return createGetter(type, name);

-		} catch (Exception e) {

-		}

-		return null;

-	}

-

-	public static Method createGetter(Class<?> type, String name) throws SecurityException, NoSuchMethodException {

-		return ObjectUtil.findGetter(type, name, null);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/EventProperty.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/EventProperty.java
deleted file mode 100644
index 106d37f..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/EventProperty.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata.properties;

-

-import org.eclipse.xwt.metadata.IEvent;

-

-/**

- * A property to hold the event state

- *

- * @author yyang (yves.yang@soyatec.com)

- */

-public class EventProperty extends DataProperty {

-	protected IEvent event;

-	

-	public EventProperty(String name, String key, IEvent event) {

-		super(name, key, Boolean.class, false);

-		this.event = event;

-	}

-

-	public IEvent getEvent() {

-		return event;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/FieldProperty.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/FieldProperty.java
deleted file mode 100644
index bf8d0e7..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/FieldProperty.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata.properties;

-

-import java.lang.reflect.Field;

-import java.lang.reflect.InvocationTargetException;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.internal.utils.ObjectUtil;

-

-/**

- * @author jliu

- * 

- */

-public class FieldProperty extends AbstractProperty {

-

-	private Field field;

-

-	public FieldProperty(Field field) {

-		super(field.getName(), field.getType());

-		this.field = field;

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.metadata.IProperty#getValue(java.lang.Object)

-	 */

-	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {

-		return field.get(target);

-	}

-

-	/*

-	 * (non-Javadoc)

-	 * 

-	 * @see org.eclipse.xwt.metadata.IProperty#setValue(java.lang.Object, java.lang.Object)

-	 */

-	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {

-		if (value != null) {

-			Class<?> fieldType = field.getType();

-			Class<?> valueType = value.getClass();

-			if (!ObjectUtil.isAssignableFrom(fieldType, valueType)) {

-				IConverter converter = XWT.findConvertor(valueType, fieldType);

-				if (converter != null) {

-					value = converter.convert(value);

-				} else {

-					throw new XWTException("Converter " + valueType.getName() + "->" + fieldType.getName());

-				}

-			}

-		}

-		field.set(target, value);

-		fireSetPostAction(target, this, value);

-	}

-

-	@Override

-	public boolean isDefault() {

-		return true;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/InputBeanProperty.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/InputBeanProperty.java
deleted file mode 100644
index 01767fe..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/InputBeanProperty.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata.properties;

-

-import java.lang.reflect.InvocationTargetException;

-import java.util.Arrays;

-import java.util.Collection;

-import java.util.Iterator;

-import java.util.List;

-import java.util.Set;

-

-import org.eclipse.core.databinding.observable.IObservableCollection;

-import org.eclipse.core.databinding.observable.list.IObservableList;

-import org.eclipse.core.databinding.observable.list.WritableList;

-import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;

-import org.eclipse.jface.databinding.viewers.ObservableSetContentProvider;

-import org.eclipse.jface.viewers.AbstractTreeViewer;

-import org.eclipse.jface.viewers.ContentViewer;

-import org.eclipse.jface.viewers.IBaseLabelProvider;

-import org.eclipse.jface.viewers.IContentProvider;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.collection.CollectionViewSource;

-import org.eclipse.xwt.internal.utils.ObjectUtil;

-import org.eclipse.xwt.jface.DefaultViewerLabelProvider;

-import org.eclipse.xwt.jface.JFacesHelper;

-import org.eclipse.xwt.jface.ObservableMapLabelProvider;

-import org.eclipse.xwt.jface.ObservableTreeContentProvider;

-import org.eclipse.xwt.metadata.DelegateProperty;

-import org.eclipse.xwt.metadata.ILoadingType;

-import org.eclipse.xwt.metadata.IProperty;

-

-/**

- * Handle manually the type conversion. Maybe it can be done using the

- * IConverter. Only the type of IProperty should be IObservableCollection

- * 

- * @author yyang

- * 

- */

-public class InputBeanProperty extends DelegateProperty {

-

-//	public InputBeanProperty(IProperty delegate) {

-//		super(delegate);

-//	}

-

-	public InputBeanProperty(IProperty delegate, ILoadingType loadingType) {

-		super(delegate, loadingType);

-	}

-

-	@Override

-	public void setValue(Object target, Object value)

-			throws IllegalArgumentException, IllegalAccessException,

-			InvocationTargetException, SecurityException, NoSuchFieldException {

-		if (value == null) {

-			return;

-		}

-

-		if (value instanceof Class<?>) {

-			Class<?> type = (Class<?>) value;

-			if (type.isEnum()) {

-				value = new WritableList(XWT.getRealm(), Arrays.asList(type

-						.getEnumConstants()), type);

-			}

-		}

-

-		Class<?> elementType = getElementType();

-		if (value.getClass().isArray()) {

-			elementType = value.getClass().getComponentType();

-		}

-		if (value instanceof IObservableList) {

-			IObservableList list = (IObservableList) value;

-			Object listElementType = list.getElementType();

-			if (listElementType instanceof Class<?>) {

-				elementType = (Class<?>) listElementType;

-			}

-		} else if (elementType == Object.class

-				&& value instanceof Collection<?>) {

-			Collection<?> collection = (Collection<?>) value;

-			for (Iterator<?> iterator = collection.iterator(); iterator

-					.hasNext();) {

-				Object object = (Object) iterator.next();

-				if (object != null) {

-					elementType = object.getClass();

-					break;

-				}

-			}

-		}

-

-		if (target instanceof ContentViewer) {

-			ContentViewer viewer = (ContentViewer) target;

-

-			String[] propertyNames = JFacesHelper.getViewerProperties(viewer);

-			if (target instanceof AbstractTreeViewer) {

-				IContentProvider contentProvider = (IContentProvider) viewer

-						.getContentProvider();

-				if (contentProvider instanceof ObservableTreeContentProvider) {

-					ObservableTreeContentProvider xwtContentProvider = (ObservableTreeContentProvider) contentProvider;

-					xwtContentProvider.updateContext(viewer, value);

-				}

-				if (contentProvider instanceof ObservableTreeContentProvider) {

-					ObservableTreeContentProvider listContentProvider = (ObservableTreeContentProvider) contentProvider;

-					viewer.setLabelProvider(new ObservableMapLabelProvider(

-							viewer, listContentProvider.getKnownElements(),

-							propertyNames));

-				}

-			} else {

-				IContentProvider contentProvider = viewer.getContentProvider();

-				if (value instanceof List<?> || value.getClass().isArray()) {

-					if (contentProvider == null) {

-						contentProvider = new ObservableListContentProvider();

-						viewer.setContentProvider(contentProvider);

-					}

-					if (propertyNames != null

-							&& propertyNames.length > 0

-							&& hasDefaultLabelProvider(viewer)

-							&& contentProvider instanceof ObservableListContentProvider) {

-						ObservableListContentProvider listContentProvider = (ObservableListContentProvider) contentProvider;

-						viewer.setLabelProvider(new ObservableMapLabelProvider(

-								viewer, listContentProvider.getKnownElements(),

-								propertyNames));

-					}

-				} else if (value instanceof Set<?>) {

-					if (contentProvider == null) {

-						contentProvider = new ObservableSetContentProvider();

-						viewer.setContentProvider(contentProvider);

-					}

-					if (propertyNames != null

-							&& propertyNames.length > 0

-							&& hasDefaultLabelProvider(viewer)

-							&& contentProvider instanceof ObservableSetContentProvider) {

-						ObservableSetContentProvider setContentProvider = (ObservableSetContentProvider) contentProvider;

-						viewer.setLabelProvider(new ObservableMapLabelProvider(

-								viewer, setContentProvider.getKnownElements(),

-								propertyNames));

-					}

-				}

-			}

-		}

-		if (value instanceof CollectionViewSource) {

-			value = ((CollectionViewSource) value).getView();

-		} else if ((value instanceof Collection<?>)

-				&& !(value instanceof IObservableCollection)) {

-			value = ObjectUtil.resolveValue(value, IObservableCollection.class,

-					value);

-		}

-		super.setValue(target, value);

-	}

-

-	protected boolean hasDefaultLabelProvider(ContentViewer viewer) {

-		IBaseLabelProvider labelProvider = viewer.getLabelProvider();

-		return (labelProvider == null || labelProvider.getClass() == DefaultViewerLabelProvider.class);

-	}

-

-	protected Class<?> getElementType() {

-		IProperty property = getDelegate();

-		Class<?> type = property.getType();

-		if (type == null) {

-			return Object.class;

-		}

-		if (type.isArray()) {

-			return type.getComponentType();

-		}

-		return Object.class;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/MultiSelectionBeanProperty.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/MultiSelectionBeanProperty.java
deleted file mode 100644
index bd00224..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/MultiSelectionBeanProperty.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata.properties;

-

-import java.lang.reflect.InvocationTargetException;

-import java.util.Collections;

-import java.util.List;

-import java.util.Set;

-

-import org.eclipse.jface.viewers.ISelection;

-import org.eclipse.jface.viewers.ISelectionProvider;

-import org.eclipse.jface.viewers.IStructuredSelection;

-import org.eclipse.jface.viewers.StructuredSelection;

-import org.eclipse.xwt.metadata.ILoadingType;

-import org.eclipse.xwt.metadata.IProperty;

-

-/**

- * Handle manually the type conversion. Maybe it can be done using the

- * IConverter. Only the type of IProperty should be IObservableCollection

- * 

- * @author yyang

- * 

- */

-public class MultiSelectionBeanProperty extends AbstractProperty {

-	public MultiSelectionBeanProperty(String name) {

-		this(name, ILoadingType.DEFAULT);

-	}

-

-	public MultiSelectionBeanProperty(String name, ILoadingType loadingType) {

-		super(name, Object.class, loadingType);

-	}

-	

-	public Object getValue(Object source) throws IllegalArgumentException,

-			IllegalAccessException, InvocationTargetException,

-			SecurityException, NoSuchFieldException {

-		ISelection selection = ((ISelectionProvider) source).getSelection();

-		if (selection instanceof IStructuredSelection) {

-			return ((IStructuredSelection) selection).toList();

-		}

-		return Collections.EMPTY_LIST;

-	}

-	

-	public void setValue(Object source, Object value)

-			throws IllegalArgumentException, IllegalAccessException,

-			InvocationTargetException, SecurityException, NoSuchFieldException {

-		if (value instanceof List<?>) {

-			List<?> list = (List<?>)value;

-			((ISelectionProvider) source).setSelection(new StructuredSelection(list));		

-		}

-		else if (value instanceof Set<?>) {

-			Set<?> set = (Set<?>)value;

-			((ISelectionProvider) source).setSelection(new StructuredSelection(set.toArray()));

-			return;

-		}

-		else if (value.getClass().isArray()) {

-			((ISelectionProvider) source).setSelection(new StructuredSelection((Object[])value));

-			return;

-		}

-		((ISelectionProvider) source).setSelection(StructuredSelection.EMPTY);		

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/PropertiesConstants.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/PropertiesConstants.java
deleted file mode 100644
index 3709371..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/PropertiesConstants.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata.properties;

-

-/**

- * @author jliu

- * 

- */

-public final class PropertiesConstants {

-

-	// Properties

-	public static final String PROPERTY_EDITOR = "editor";

-	public static final String PROPERTY_EDITORS = "editors";

-	public static final String PROPERTY_DYNAMIC = "dynamic";

-	public static final String PROPERTY_CELLS = "cells";

-	public static final String PROPERTY_TEXTS = "texts";

-	public static final String PROPERTY_TEXT = "text";

-	public static final String PROPERTY_URL = "url";

-	public static final String PROPERTY_WIDTH = "width";

-	public static final String PROPERTY_BINDING_PATH = "bindingPath";

-	public static final String PROPERTY_ITEM_TEXT = "itemText";

-	public static final String PROPERTY_ITEM_IMAGE = "itemImage";

-	public static final String PROPERTY_IMAGE = "image";

-	public static final String PROPERTY_COLUMNS = "columns";

-	public static final String PROPERTY_COLUMN_PROPERTIES = "columnProperties";

-	public static final String PROPERTY_SINGLE_SELECTION = "singleSelection";

-	public static final String PROPERTY_MULTI_SELECTION = "multiSelection";

-

-	// Data

-	public static final String DATA_DEFINED_EDITOR = "Defined table editors";

-	public static final String DATA_TABLE_UTIL = "tableUtil";

-	public static final String DATA_CONTROLEDITOR_OF_CONTROL = "TableEditor of a control";

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/SingleSelectionBeanProperty.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/SingleSelectionBeanProperty.java
deleted file mode 100644
index 5dd185e..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/SingleSelectionBeanProperty.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata.properties;

-

-import java.lang.reflect.InvocationTargetException;

-

-import org.eclipse.jface.viewers.ISelection;

-import org.eclipse.jface.viewers.ISelectionProvider;

-import org.eclipse.jface.viewers.IStructuredSelection;

-import org.eclipse.jface.viewers.StructuredSelection;

-import org.eclipse.jface.viewers.Viewer;

-import org.eclipse.xwt.metadata.ILoadingType;

-import org.eclipse.xwt.metadata.IProperty;

-

-/**

- * IViewer property

- * 

- * @author yyang

- */

-public class SingleSelectionBeanProperty extends AbstractProperty {

-	public SingleSelectionBeanProperty(String name) {

-		this(name, ILoadingType.DEFAULT);

-	}

-

-	public SingleSelectionBeanProperty(String name, ILoadingType loadingType) {

-		super(name, Object.class, loadingType);

-	}

-

-	public Object getValue(Object source) throws IllegalArgumentException,

-			IllegalAccessException, InvocationTargetException,

-			SecurityException, NoSuchFieldException {

-		ISelection selection = ((ISelectionProvider) source).getSelection();

-		if (selection instanceof IStructuredSelection) {

-			return ((IStructuredSelection) selection).getFirstElement();

-		}

-		return null;

-	}

-	

-	public void setValue(Object source, Object value)

-			throws IllegalArgumentException, IllegalAccessException,

-			InvocationTargetException, SecurityException, NoSuchFieldException {

-		IStructuredSelection selection = value == null ? StructuredSelection.EMPTY

-				: new StructuredSelection(value);

-		if (source instanceof Viewer) {

-			((Viewer) source).setSelection(selection, true);

-		} else {

-			((ISelectionProvider) source).setSelection(selection);

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/StyleProperty.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/StyleProperty.java
deleted file mode 100644
index a3d33c0..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/StyleProperty.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata.properties;

-

-import java.lang.reflect.InvocationTargetException;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.core.Style;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class StyleProperty extends AbstractProperty {

-

-	public StyleProperty() {

-		super(IConstants.XAML_STYLE, Object.class);

-	}

-

-	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {

-		return null;

-	}

-

-	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {

-		if (!(value instanceof Style)) {

-			throw new XWTException("Style is expected.");

-		}

-		Style style = (Style) value;

-		style.apply(target);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableColumnEditorProperty.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableColumnEditorProperty.java
deleted file mode 100644
index 33e63fe..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableColumnEditorProperty.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata.properties;

-

-import java.lang.reflect.InvocationTargetException;

-

-import org.eclipse.swt.widgets.TableColumn;

-import org.eclipse.xwt.internal.xml.Element;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class TableColumnEditorProperty extends AbstractProperty {

-

-	public TableColumnEditorProperty() {

-		super(PropertiesConstants.PROPERTY_EDITOR, Element.class);

-	}

-

-	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {

-		TableColumn tableColumn = (TableColumn) target;

-		return tableColumn.getData(PropertiesConstants.DATA_DEFINED_EDITOR);

-	}

-

-	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {

-		TableColumn tableColumn = (TableColumn) target;

-		tableColumn.setData(PropertiesConstants.DATA_DEFINED_EDITOR, value);

-	}

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableEditorDynamicProperty.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableEditorDynamicProperty.java
deleted file mode 100644
index 8a5f426..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableEditorDynamicProperty.java
+++ /dev/null
@@ -1,322 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata.properties;

-

-import java.lang.reflect.InvocationTargetException;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.custom.TableEditor;

-import org.eclipse.swt.events.FocusAdapter;

-import org.eclipse.swt.events.FocusEvent;

-import org.eclipse.swt.events.KeyAdapter;

-import org.eclipse.swt.events.KeyEvent;

-import org.eclipse.swt.events.KeyListener;

-import org.eclipse.swt.events.MouseAdapter;

-import org.eclipse.swt.events.MouseEvent;

-import org.eclipse.swt.events.SelectionEvent;

-import org.eclipse.swt.events.SelectionListener;

-import org.eclipse.swt.graphics.Point;

-import org.eclipse.swt.graphics.Rectangle;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Event;

-import org.eclipse.swt.widgets.Table;

-import org.eclipse.swt.widgets.TableColumn;

-import org.eclipse.swt.widgets.TableItem;

-import org.eclipse.xwt.XWTMaps;

-import org.eclipse.xwt.metadata.ILoadingType;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class TableEditorDynamicProperty extends AbstractProperty {

-

-	public TableEditorDynamicProperty() {

-		super(PropertiesConstants.PROPERTY_DYNAMIC, Boolean.class);

-	}

-

-	public TableEditorDynamicProperty(ILoadingType loadingType) {

-		super(PropertiesConstants.PROPERTY_DYNAMIC, Boolean.class, loadingType);

-	}

-

-	/**

-	 * @see org.eclipse.xwt.metadata.IProperty#getValue(java.lang.Object)

-	 */

-	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {

-		return null;

-	}

-

-	/**

-	 * @see org.eclipse.xwt.metadata.IProperty#setValue(java.lang.Object, java.lang.Object)

-	 */

-	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {

-

-		Boolean isDynamic = (Boolean) value;

-		TableEditor tableEditor = (TableEditor) target;

-		final Control control = tableEditor.getEditor();

-		Table tableParent = null;

-		Composite parent = control.getParent();

-		if (parent instanceof Table) {

-			tableParent = (Table) parent;

-		} else if (tableEditor.getItem() != null) {

-			tableParent = tableEditor.getItem().getParent();

-		}

-		if (tableParent == null) {

-			return;

-		}

-		final Table table = tableParent;

-		if (isDynamic) {

-			control.setVisible(false);

-			control.addFocusListener(new FocusAdapter() {

-				@Override

-				public void focusLost(FocusEvent e) {

-					control.setVisible(false);

-				}

-			});

-

-			control.addKeyListener(new KeyAdapter() {

-				@Override

-				public void keyPressed(KeyEvent e) {

-					if (e.character == SWT.CR && control.isFocusControl()) {

-						table.notifyListeners(SWT.DefaultSelection, new Event());

-					}

-				}

-			});

-

-			Object mouseHander = table.getData(PropertiesConstants.DATA_TABLE_UTIL);

-			if (mouseHander == null) {

-				TableUtil tableUtil = new TableUtil(table);

-				table.setData(PropertiesConstants.DATA_TABLE_UTIL, tableUtil);

-			}

-

-			table.addSelectionListener(new TableSelectionHandler(table, tableEditor));

-		}

-	}

-

-	static private class TableSelectionHandler implements SelectionListener {

-

-		private Table table;

-		private TableEditor tableEditor;

-

-		public TableSelectionHandler(Table table, TableEditor tableEditor) {

-			this.table = table;

-			this.tableEditor = tableEditor;

-		}

-

-		public void widgetDefaultSelected(SelectionEvent e) {

-			Control editor = tableEditor.getEditor();

-			if (editor.isDisposed()) {

-				return;

-			}

-			if (editor.isFocusControl()) {

-				editor.setVisible(false);

-			} else {

-				editor.setFocus();

-			}

-		}

-

-		public void widgetSelected(SelectionEvent e) {

-			Control editor = tableEditor.getEditor();

-			if (editor.isDisposed()) {

-				return;

-			}

-			TableUtil tableUtil = (TableUtil) table.getData(PropertiesConstants.DATA_TABLE_UTIL);

-			TableItem item = tableUtil.getItem();

-			int column = tableUtil.getColumn();

-

-			if (item == tableEditor.getItem() && column == tableEditor.getColumn()) {

-				editor.setVisible(true);

-			} else {

-				editor.setVisible(false);

-			}

-		}

-	}

-

-	private static class TableUtil extends MouseAdapter implements KeyListener {

-

-		private Table table;

-

-		private TableItem item;

-

-		private TableColumn column;

-

-		public TableUtil(Table table) {

-			this.table = table;

-			table.addMouseListener(this);

-			table.addKeyListener(this);

-		}

-

-		@Override

-		public void mouseDown(MouseEvent e) {

-			if (table.isDisposed() || !table.isVisible())

-				return;

-			Point pt = new Point(e.x, e.y);

-			int lineWidth = table.getLinesVisible() ? table.getGridLineWidth() : 0;

-			TableItem item = table.getItem(pt);

-

-			int start = item != null ? table.indexOf(item) : table.getTopIndex();

-			int end = table.getItemCount();

-			Rectangle clientRect = table.getClientArea();

-			for (int i = start; i < end; i++) {

-				TableItem nextItem = table.getItem(i);

-				Rectangle rect = nextItem.getBounds(0);

-				if (pt.y >= rect.y && pt.y < rect.y + rect.height + lineWidth) {

-					item = nextItem;

-					break;

-				}

-				if (rect.y > clientRect.y + clientRect.height)

-					return;

-			}

-			if (item == null)

-				return;

-

-			this.item = item;

-

-			TableColumn newColumn = null;

-			int columnCount = table.getColumnCount();

-			if (columnCount == 0) {

-				if ((table.getStyle() & SWT.FULL_SELECTION) == 0) {

-					Rectangle rect = item.getBounds(0);

-					rect.width += lineWidth;

-					rect.height += lineWidth;

-					if (!rect.contains(pt))

-						return;

-				}

-			} else {

-				for (int i = 0; i < columnCount; i++) {

-					Rectangle rect = item.getBounds(i);

-					rect.width += lineWidth;

-					rect.height += lineWidth;

-					if (rect.contains(pt)) {

-						newColumn = table.getColumn(i);

-						break;

-					}

-				}

-				if (newColumn == null) {

-					if ((table.getStyle() & SWT.FULL_SELECTION) == 0)

-						return;

-					newColumn = table.getColumn(0);

-				}

-			}

-

-			column = newColumn;

-			table.notifyListeners(SWT.DefaultSelection, new Event());

-		}

-

-		public TableItem getItem() {

-			return item;

-		}

-

-		public int getRow() {

-			return item == null ? (table.getItemCount() > 0 ? 0 : -1) : table.indexOf(item);

-		}

-

-		public void setRow(int rowIndex) {

-			if (rowIndex >= 0 && rowIndex < table.getItemCount()) {

-				item = table.getItem(rowIndex);

-			} else {

-				item = null;

-			}

-		}

-

-		public int getColumn() {

-			return column == null ? (table.getColumnCount() > 0 ? 0 : -1) : table.indexOf(column);

-		}

-

-		public void setColumn(int columnIndex) {

-			if (columnIndex >= 0 && columnIndex < table.getColumnCount()) {

-				column = table.getColumn(columnIndex);

-			} else {

-				column = null;

-			}

-		}

-

-		public void keyPressed(KeyEvent event) {

-			int rowIndex = getRow();

-			int columnIndex = column == null ? 0 : table.indexOf(column);

-

-			switch (event.keyCode) {

-			case SWT.ARROW_UP:

-				setRow(Math.max(0, rowIndex - 1));

-				break;

-			case SWT.ARROW_DOWN:

-				setRow(Math.min(rowIndex + 1, table.getItemCount() - 1));

-				break;

-			case SWT.ARROW_LEFT:

-			case SWT.ARROW_RIGHT:

-				int columnCount = table.getColumnCount();

-				if (columnCount == 0)

-					break;

-				int[] order = table.getColumnOrder();

-				int index = 0;

-				while (index < order.length) {

-					if (order[index] == columnIndex)

-						break;

-					index++;

-				}

-				if (index == order.length)

-					index = 0;

-				int leadKey = (XWTMaps.getStyle("SWT.RIGHT_TO_LEFT") != SWT.NONE)

-						? ((table.getStyle() & XWTMaps.getStyle("SWT.RIGHT_TO_LEFT")) != 0 ? SWT.ARROW_RIGHT : SWT.ARROW_LEFT)

-						: SWT.ARROW_LEFT;

-				if (event.keyCode == leadKey) {

-					setColumn(order[Math.max(0, index - 1)]);

-				} else {

-					setColumn(order[Math.min(columnCount - 1, index + 1)]);

-				}

-				table.notifyListeners(SWT.Selection, new Event());

-				break;

-			case SWT.HOME:

-				setRow(0);

-				setColumn(columnIndex);

-				break;

-			case SWT.END:

-				setRow(table.getItemCount() - 1);

-				setColumn(columnIndex);

-				break;

-			case SWT.PAGE_UP:

-				int topIndex = table.getTopIndex();

-				if (topIndex == rowIndex) {

-					Rectangle rect = table.getClientArea();

-					TableItem item = table.getItem(topIndex);

-					Rectangle itemRect = item.getBounds(0);

-					rect.height -= itemRect.y;

-					int height = table.getItemHeight();

-					int page = Math.max(1, rect.height / height);

-					topIndex = Math.max(0, topIndex - page + 1);

-				}

-

-				setRow(topIndex);

-				break;

-			case SWT.PAGE_DOWN:

-				int downIndex = table.getTopIndex();

-				Rectangle rect = table.getClientArea();

-				TableItem item = table.getItem(downIndex);

-				Rectangle itemRect = item.getBounds(0);

-				rect.height -= itemRect.y;

-				int height = table.getItemHeight();

-				int page = Math.max(1, rect.height / height);

-				int end = table.getItemCount() - 1;

-				downIndex = Math.min(end, downIndex + page - 1);

-				if (downIndex == rowIndex) {

-					downIndex = Math.min(end, downIndex + page - 1);

-				}

-				setRow(downIndex);

-				break;

-			}

-		}

-

-		public void keyReleased(KeyEvent e) {

-			// Ignore

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableItemEditorProperty.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableItemEditorProperty.java
deleted file mode 100644
index dc0f44a..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableItemEditorProperty.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata.properties;

-

-import java.lang.reflect.InvocationTargetException;

-import java.util.Collection;

-

-import org.eclipse.swt.custom.TableEditor;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Table;

-import org.eclipse.swt.widgets.TableItem;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class TableItemEditorProperty extends AbstractProperty {

-

-	public TableItemEditorProperty() {

-		super(PropertiesConstants.PROPERTY_EDITORS, Collection.class);

-	}

-

-	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {

-		return null;

-	}

-

-	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {

-		TableItem tableItem = (TableItem) target;

-		Collection<TableEditor> tableEditors = (Collection<TableEditor>) value;

-

-		for (TableEditor tableEditor : tableEditors) {

-			if (tableEditor != null) {

-				disposeOldEditor(tableEditor.getColumn(), tableItem);

-				tableEditor.setItem(tableItem);

-			}

-		}

-	}

-

-	/**

-	 * Dispose old Table editors for current tableItem at given column index.

-	 * 

-	 * @param column

-	 * @param tableItem

-	 */

-	private void disposeOldEditor(int column, TableItem tableItem) {

-		Table table = tableItem.getParent();

-		Control[] children = table.getChildren();

-		for (Control control : children) {

-			Object editor = control.getData(PropertiesConstants.DATA_CONTROLEDITOR_OF_CONTROL);

-			if (editor == null || !(editor instanceof TableEditor)) {

-				continue;

-			}

-			if (column == ((TableEditor) editor).getColumn() && tableItem == ((TableEditor) editor).getItem()) {

-				control.dispose();

-			}

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableItemProperty.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableItemProperty.java
deleted file mode 100644
index 9870cf7..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableItemProperty.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata.properties;

-

-import java.lang.reflect.InvocationTargetException;

-import java.util.Collection;

-

-import org.eclipse.swt.graphics.Image;

-import org.eclipse.swt.widgets.TableItem;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class TableItemProperty extends AbstractProperty {

-

-	public static class Cell {

-		public Cell() {

-		}

-

-		private TableItem parent;

-		private String text;

-		private Image image;

-

-		public TableItem getParent() {

-			return parent;

-		}

-

-		public void setParent(TableItem parent) {

-			this.parent = parent;

-		}

-

-		public String getText() {

-			return text;

-		}

-

-		public void setText(String text) {

-			this.text = text;

-		}

-

-		public Image getImage() {

-			return image;

-		}

-

-		public void setImage(Image image) {

-			this.image = image;

-		}

-	}

-

-	public TableItemProperty() {

-		super(PropertiesConstants.PROPERTY_CELLS, Collection.class);

-	}

-

-	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {

-

-		Collection<Cell> cells = (Collection<Cell>) value;

-		TableItem tableItem = (TableItem) target;

-

-		String[] texts = new String[cells.size()];

-		Image[] images = new Image[cells.size()];

-

-		int i = 0;

-		for (Cell cell : cells) {

-			String text = (cell).getText();

-			texts[i] = text == null ? "" : text;

-			images[i] = cell.getImage();

-			i++;

-		}

-		tableItem.setText(texts);

-		tableItem.setImage(images);

-	}

-

-	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {

-		return null;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableViewerColumnDynamicProperty.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableViewerColumnDynamicProperty.java
deleted file mode 100644
index 6c4d4d9..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableViewerColumnDynamicProperty.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata.properties;

-

-import java.lang.reflect.InvocationTargetException;

-

-import org.eclipse.jface.viewers.TableViewerColumn;

-import org.eclipse.swt.widgets.TableColumn;

-import org.eclipse.xwt.internal.utils.UserData;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class TableViewerColumnDynamicProperty extends AbstractProperty {

-	private String propertyKey; 

-	

-	public String getPropertyKey() {

-		return propertyKey;

-	}

-

-	public TableViewerColumnDynamicProperty(String propertyName, String propertyKey, Class<?> type) {

-		super(propertyName, type);

-		this.propertyKey = propertyKey;

-	}

-

-	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {

-		return null;

-	}

-

-	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {

-		TableViewerColumn tableViewerColumn = (TableViewerColumn) target;

-		TableColumn tableColumn = tableViewerColumn.getColumn();

-		UserData.setLocalData(tableColumn, getPropertyKey(), value);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableViewerColumnImageProperty.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableViewerColumnImageProperty.java
deleted file mode 100644
index bc5e5f7..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableViewerColumnImageProperty.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata.properties;

-

-import java.lang.reflect.InvocationTargetException;

-

-import org.eclipse.jface.viewers.TableViewerColumn;

-import org.eclipse.swt.graphics.Image;

-import org.eclipse.swt.widgets.TableColumn;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class TableViewerColumnImageProperty extends AbstractProperty {

-

-	public TableViewerColumnImageProperty() {

-		super(PropertiesConstants.PROPERTY_IMAGE, Image.class);

-	}

-

-	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {

-		return null;

-	}

-

-	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {

-		TableViewerColumn tableViewerColumn = (TableViewerColumn) target;

-		TableColumn tableColumn = tableViewerColumn.getColumn();

-		Image image = (Image) value;

-		tableColumn.setImage(image);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableViewerColumnTextProperty.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableViewerColumnTextProperty.java
deleted file mode 100644
index 2b22873..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableViewerColumnTextProperty.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata.properties;

-

-import java.lang.reflect.InvocationTargetException;

-

-import org.eclipse.jface.viewers.TableViewerColumn;

-import org.eclipse.swt.widgets.TableColumn;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class TableViewerColumnTextProperty extends AbstractProperty {

-

-	public TableViewerColumnTextProperty() {

-		super(PropertiesConstants.PROPERTY_TEXT, String.class);

-	}

-

-	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {

-		return null;

-	}

-

-	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {

-		TableViewerColumn tableViewerColumn = (TableViewerColumn) target;

-		TableColumn tableColumn = tableViewerColumn.getColumn();

-		String text = (String) value;

-		tableColumn.setText(text);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableViewerColumnWidthProperty.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableViewerColumnWidthProperty.java
deleted file mode 100644
index d2fbea7..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableViewerColumnWidthProperty.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *

- *                                                                             *  

- * Contributors:                                                               *        

- *     Soyatec - initial API and implementation                                *

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata.properties;

-

-import java.lang.reflect.InvocationTargetException;

-

-import org.eclipse.jface.viewers.TableViewerColumn;

-import org.eclipse.swt.widgets.TableColumn;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class TableViewerColumnWidthProperty extends AbstractProperty {

-

-	public TableViewerColumnWidthProperty() {

-		super(PropertiesConstants.PROPERTY_WIDTH, int.class);

-	}

-

-	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {

-		return null;

-	}

-

-	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {

-		TableViewerColumn tableViewerColumn = (TableViewerColumn) target;

-		TableColumn tableColumn = tableViewerColumn.getColumn();

-		int width = (Integer) value;

-		tableColumn.setWidth(width);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TriggersProperty.java b/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TriggersProperty.java
deleted file mode 100644
index 2eb7e90..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TriggersProperty.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.javabean.metadata.properties;

-

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.core.IUserDataConstants;

-import org.eclipse.xwt.core.TriggerBase;

-import org.eclipse.xwt.metadata.ILoadingType;

-

-public class TriggersProperty extends DataProperty {

-

-	public TriggersProperty(ILoadingType loadingType) {

-		super(IConstants.XAML_TRIGGERS,

-				IUserDataConstants.XWT_TRIGGERS_KEY, TriggerBase[].class, TriggerBase.EMPTY_ARRAY, loadingType);

-	}

-

-	@Override

-	public void setValue(Object target, Object value) {

-		super.setValue(target, value);

-		

-		TriggerBase[] triggers = (TriggerBase[]) value;

-		for (TriggerBase triggerBase : triggers) {

-			if (triggerBase != null) {

-				triggerBase.prepare(target);

-			}

-		}

-		for (TriggerBase triggerBase : triggers) {

-			if (triggerBase != null) {

-				triggerBase.on(target);

-			}

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/jface/AbstractDialog.java b/org.eclipse.xwt/src/org/eclipse/xwt/jface/AbstractDialog.java
deleted file mode 100644
index 593730c..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/jface/AbstractDialog.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.jface;

-

-import java.net.URL;

-import java.util.HashMap;

-

-import org.eclipse.jface.dialogs.Dialog;

-import org.eclipse.jface.layout.GridLayoutFactory;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.XWTLoader;

-

-public abstract class AbstractDialog extends Dialog {

-	protected Object dataContext;

-	protected String title;

-

-	public AbstractDialog(Shell parentShell, String title, Object dataContext) {

-		super(parentShell);

-		this.dataContext = dataContext;

-		this.title = title;

-	}

-

-	@Override

-	protected Control createDialogArea(Composite parent) {

-		if (title != null) {

-			getShell().setText(title);

-		}

-

-		ClassLoader classLoader = Thread.currentThread().getContextClassLoader();

-		try {

-			Thread.currentThread().setContextClassLoader(getClassLoader());

-			HashMap<String, Object> newOptions = new HashMap<String, Object>();

-			initOptions(parent, newOptions);

-			Object element = XWT.loadWithOptions(getContentURL(), newOptions);

-			if (!(element instanceof Control)) {

-				throw new XWTException("Root element must a control.");

-			}

-			GridLayoutFactory.fillDefaults().generateLayout(parent);

-			parent.layout(true, true);

-			return (Control) element;

-		} catch (Exception e) {

-			e.printStackTrace();

-		} finally {

-			Thread.currentThread().setContextClassLoader(classLoader);

-			parent.setVisible(true);

-		}

-		return null;

-	}

-

-	protected void initOptions(Composite parent,

-			HashMap<String, Object> newOptions) {

-		newOptions.put(XWTLoader.CONTAINER_PROPERTY, parent);

-		newOptions.put(XWTLoader.DATACONTEXT_PROPERTY, dataContext);

-		newOptions.put(XWTLoader.CLASS_PROPERTY, geCLR());

-	}

-

-	protected abstract URL getContentURL();

-	

-	protected ClassLoader getClassLoader() {

-		return this.getClass().getClassLoader();

-	}

-	

-	protected Object geCLR() {

-		return this;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/jface/CellEditorHelper.java b/org.eclipse.xwt/src/org/eclipse/xwt/jface/CellEditorHelper.java
deleted file mode 100644
index de902fb..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/jface/CellEditorHelper.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.jface;

-

-import java.beans.BeanInfo;

-import java.beans.IntrospectionException;

-import java.beans.PropertyDescriptor;

-

-import org.eclipse.jface.viewers.ISelection;

-import org.eclipse.jface.viewers.IStructuredSelection;

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.xwt.XWTException;

-

-public class CellEditorHelper {

-	protected TableViewer tableViewer;

-	protected int index;

-

-	public CellEditorHelper(TableViewer parent, int index) {

-		this.index = index;

-		this.tableViewer = parent;

-	}

-

-	public Class<?> getTargetType() {

-		ISelection selection = this.tableViewer.getSelection();

-		if (!selection.isEmpty() && selection instanceof IStructuredSelection) {

-			IStructuredSelection structuredSelection = (IStructuredSelection) selection;

-			Object element = structuredSelection.getFirstElement();

-			Object property = this.tableViewer.getColumnProperties()[index];

-			String propertyName = property.toString();

-			try {

-				BeanInfo beanInfo = java.beans.Introspector.getBeanInfo(element.getClass());

-				PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();

-				for (PropertyDescriptor propertyDescriptor : propertyDescriptors) {

-					if (propertyDescriptor.getName().equalsIgnoreCase(propertyName)) {

-						return propertyDescriptor.getPropertyType();

-					}

-				}

-			} catch (IntrospectionException e) {

-				throw new XWTException(e);

-			}

-		}

-

-		return null;

-	}

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/jface/ComboBoxCellEditor.java b/org.eclipse.xwt/src/org/eclipse/xwt/jface/ComboBoxCellEditor.java
deleted file mode 100644
index f8e4d33..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/jface/ComboBoxCellEditor.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.jface;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.xwt.IIndexedElement;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTException;

-

-public class ComboBoxCellEditor extends org.eclipse.jface.viewers.ComboBoxCellEditor implements IIndexedElement {

-	protected CellEditorHelper cellEditorHelper;

-

-	public ComboBoxCellEditor() {

-		super();

-	}

-

-	public ComboBoxCellEditor(Composite parent, String[] items, int style) {

-		super(parent, items, style);

-	}

-

-	public ComboBoxCellEditor(Composite parent, String[] items) {

-		super(parent, items);

-	}

-

-	@Override

-	protected void doSetValue(Object value) {

-		if (value != null) {

-			Class<?> targetType = getTargetType();

-			if (targetType != String.class) {

-				IConverter converter = XWT.findConvertor(targetType, String.class);

-				if (converter != null) {

-					value = converter.convert(value);

-				}

-			}

-			String[] items = getItems();

-			for (int i = 0; i < items.length; i++) {

-				if (items[i].equals(value)) {

-					super.doSetValue(i);

-					return;

-				}

-			}

-		}

-		super.doSetValue(-1);

-	}

-

-	@Override

-	protected Object doGetValue() {

-		Object value = super.doGetValue();

-		String[] items = getItems();

-		int selected = (Integer) value;

-		if (selected < 0) {

-			return null;

-		}

-		String selectedString = items[selected];

-		Class<?> targetType = getTargetType();

-		if (targetType != String.class) {

-			IConverter converter = XWT.findConvertor(String.class, targetType);

-			if (converter != null) {

-				return converter.convert(value);

-			}

-		}

-		return selectedString;

-	}

-

-	protected Class<?> getTargetType() {

-		if (cellEditorHelper != null) {

-			return cellEditorHelper.getTargetType();

-		}

-		return Object.class;

-	}

-

-	public void setIndex(Object parent, int index) {

-		if (!(parent instanceof TableViewer)) {

-			throw new XWTException("TableView is expected, not \"" + parent.getClass().getName() + "\"");

-		}

-		cellEditorHelper = new CellEditorHelper((TableViewer) parent, index);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/jface/DefaultCellModifier.java b/org.eclipse.xwt/src/org/eclipse/xwt/jface/DefaultCellModifier.java
deleted file mode 100644
index 3d04e88..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/jface/DefaultCellModifier.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.jface;

-

-import java.beans.BeanInfo;

-import java.beans.IntrospectionException;

-import java.beans.PropertyDescriptor;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.jface.viewers.ICellModifier;

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.swt.widgets.TableItem;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTException;

-

-public class DefaultCellModifier implements ICellModifier {

-	protected TableViewer tableViewer;

-

-	public DefaultCellModifier(TableViewer tableViewer) {

-		this.tableViewer = tableViewer;

-	}

-

-	private BeanInfo getBeanInfo(Object element) {

-		try {

-			return java.beans.Introspector.getBeanInfo(element.getClass());

-		} catch (IntrospectionException e) {

-			e.printStackTrace();

-		}

-		return null;

-	}

-

-	public boolean canModify(Object element, String property) {

-		return getDescriptor(element, property) != null;

-	}

-

-	public Object getValue(Object element, String property) {

-		PropertyDescriptor descriptor = getDescriptor(element, property);

-		if (descriptor != null) {

-			try {

-				return descriptor.getReadMethod().invoke(element);

-			} catch (Exception e) {

-				e.printStackTrace();

-			}

-		}

-		return "";

-	}

-

-	public void modify(Object element, String property, Object value) {

-		if (element instanceof TableItem) {

-			TableItem tableItem = (TableItem) element;

-			Object data = tableItem.getData();

-			PropertyDescriptor descriptor = getDescriptor(data, property);

-			if (descriptor != null) {

-				try {

-					Class<?> type = descriptor.getPropertyType();

-					IConverter converter = XWT.findConvertor(value.getClass(), type);

-					if (converter != null) {

-						Object newValue = converter.convert(value);

-						descriptor.getWriteMethod().invoke(data, newValue);

-						tableViewer.refresh(data);

-					} else {

-						throw new XWTException("Converter doesn't exist from \"" + value.getClass().getName() + "\" to \"" + type.getName());

-					}

-				} catch (Exception e) {

-					e.printStackTrace();

-				}

-			}

-		}

-	}

-

-	private PropertyDescriptor getDescriptor(Object element, String property) {

-		BeanInfo beanInfo = getBeanInfo(element);

-		if (beanInfo != null) {

-			PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();

-			for (PropertyDescriptor propertyDescriptor : propertyDescriptors) {

-				if (propertyDescriptor.getName().equalsIgnoreCase(property)) {

-					return propertyDescriptor;

-				}

-			}

-		}

-		return null;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/jface/DefaultListContentProvider.java b/org.eclipse.xwt/src/org/eclipse/xwt/jface/DefaultListContentProvider.java
deleted file mode 100644
index c6f9bf6..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/jface/DefaultListContentProvider.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.jface;

-

-import java.util.Collection;

-

-import org.eclipse.jface.viewers.IStructuredContentProvider;

-import org.eclipse.jface.viewers.Viewer;

-import org.eclipse.xwt.internal.core.Core;

-

-public class DefaultListContentProvider implements IStructuredContentProvider {

-	public Object[] getElements(Object inputElement) {

-		if (inputElement instanceof Collection<?>) {

-			Collection<?> collection = (Collection<?>) inputElement;

-			return collection.toArray();

-		}

-		if (inputElement instanceof Object[]) {

-			return (Object[]) inputElement;

-		}

-		return Core.EMPTY_ARRAY;

-	}

-

-	public void dispose() {

-	}

-

-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/jface/DefaultViewerLabelProvider.java b/org.eclipse.xwt/src/org/eclipse/xwt/jface/DefaultViewerLabelProvider.java
deleted file mode 100644
index 0450434..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/jface/DefaultViewerLabelProvider.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.jface;

-

-import org.eclipse.jface.viewers.AbstractTableViewer;

-import org.eclipse.jface.viewers.ILabelProvider;

-import org.eclipse.jface.viewers.ILabelProviderListener;

-import org.eclipse.jface.viewers.ITableLabelProvider;

-import org.eclipse.jface.viewers.Viewer;

-import org.eclipse.swt.graphics.Image;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.core.IUserDataConstants;

-import org.eclipse.xwt.internal.core.Core;

-import org.eclipse.xwt.internal.utils.UserData;

-import org.eclipse.xwt.javabean.metadata.properties.PropertiesConstants;

-import org.eclipse.xwt.metadata.IMetaclass;

-import org.eclipse.xwt.metadata.IProperty;

-

-/**

- * 

- * @author yyang (yves.yang@soyatec.com)

- */

-public class DefaultViewerLabelProvider implements ITableLabelProvider, ILabelProvider {

-	private Viewer viewer;

-	

-	protected String bindingPath;

-

-	private IProperty columnsProperty;

-

-	public DefaultViewerLabelProvider(Viewer viewer) {

-		this.viewer = viewer;

-	}

-

-	public String getBindingPath() {

-		return bindingPath;

-	}

-

-	public void setBindingPath(String bindingPath) {

-		this.bindingPath = bindingPath;

-	}

-	

-	protected IProperty getColumnsProperty() {

-		if (columnsProperty == null) {

-			IMetaclass metaclass = XWT.getMetaclass(viewer.getClass());

-			columnsProperty = metaclass.findProperty(PropertiesConstants.PROPERTY_COLUMNS);

-			if (columnsProperty == null) {

-				throw new XWTException("Columns property is not found.");

-			}

-		}

-		return columnsProperty;

-	}

-	

-	protected Viewer getViewer() {

-		return viewer;

-	}

-

-	public void addListener(ILabelProviderListener listener) {

-	}

-

-	public void dispose() {

-	}

-

-	public boolean isLabelProperty(Object element, String property) {

-		return false;

-	}

-

-	public void removeListener(ILabelProviderListener listener) {

-	}

-

-	public Image getImage(Object element) {

-		return getColumnImage(element, 0);

-	}

-	

-	public String getText(Object dataContext) {

-		return getColumnText(dataContext, 0);

-	}

-	

-	public String getColumnText(Object element, int columnIndex) {

-		return JFacesHelper.getColumnText(getViewer(), element, columnIndex, getPaths());

-	}

-

-	public Image getColumnImage(Object element, int columnIndex) {

-		return JFacesHelper.getColumnImage(getViewer(), element, columnIndex, getPaths());

-	}

-

-	protected Object[] getPaths() {

-		Viewer viewer = getViewer();

-		if (viewer instanceof AbstractTableViewer) {

-			Object[] objects = ((AbstractTableViewer) getViewer()).getColumnProperties();

-			if (objects != null) {

-				for (int i = 0; i < objects.length; i++) {

-					if ((objects[i] == null)) {

-						objects[i] = getBindingPath();

-					}

-				}

-				return objects;

-			}

-		}

-		String path = bindingPath;

-		if (path == null) {

-			path = (String) UserData.getLocalData(getViewer(), IUserDataConstants.XWT_PROPERTY_DATA_KEY);

-		}

-		if (path == null) {

-			return Core.EMPTY_ARRAY;

-		}

-		return new String[] {path};

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/jface/JFaceInitializer.java b/org.eclipse.xwt/src/org/eclipse/xwt/jface/JFaceInitializer.java
deleted file mode 100644
index 70e1be5..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/jface/JFaceInitializer.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.jface;

-

-import org.eclipse.jface.viewers.AbstractListViewer;

-import org.eclipse.jface.viewers.AbstractTableViewer;

-import org.eclipse.xwt.metadata.IObjectInitializer;

-

-public class JFaceInitializer implements IObjectInitializer {

-

-	public void initialize(Object object) {

-		if (object instanceof AbstractListViewer) {

-			AbstractListViewer viewer = (AbstractListViewer) object;

-			viewer.setLabelProvider(new DefaultViewerLabelProvider(viewer));

-		}

-		else if (object instanceof AbstractTableViewer) {

-			AbstractTableViewer viewer = (AbstractTableViewer) object;

-			viewer.setLabelProvider(new DefaultViewerLabelProvider(viewer));			

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/jface/JFacesHelper.java b/org.eclipse.xwt/src/org/eclipse/xwt/jface/JFacesHelper.java
deleted file mode 100644
index ae2ddc1..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/jface/JFacesHelper.java
+++ /dev/null
@@ -1,257 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.jface;

-

-import java.lang.reflect.Method;

-import java.util.ArrayList;

-import java.util.List;

-

-import org.eclipse.core.databinding.observable.value.IObservableValue;

-import org.eclipse.jface.viewers.CheckboxCellEditor;

-import org.eclipse.jface.viewers.ColumnViewer;

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.jface.viewers.Viewer;

-import org.eclipse.swt.graphics.Image;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Table;

-import org.eclipse.swt.widgets.TableColumn;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTException;

-import org.eclipse.xwt.core.IBinding;

-import org.eclipse.xwt.core.IUserDataConstants;

-import org.eclipse.xwt.internal.core.Core;

-import org.eclipse.xwt.internal.utils.ObjectUtil;

-import org.eclipse.xwt.internal.utils.UserData;

-import org.eclipse.xwt.metadata.IMetaclass;

-import org.eclipse.xwt.metadata.IProperty;

-

-public class JFacesHelper {

-

-	public static Class<?>[] getSupportedElements() {

-		return JFACES_SUPPORTED_ELEMENTS;

-	}

-

-	public static boolean isViewer(Object obj) {

-		if (JFACES_VIEWER == null || obj == null)

-			return false;

-		return JFACES_VIEWER.isAssignableFrom(obj.getClass());

-	}

-

-	public static Control getControl(Object obj) {

-		if (!isViewer(obj))

-			throw new XWTException("Expecting a JFaces viewer:" + obj);

-		try {

-			Method method = JFACES_VIEWER.getMethod("getControl");

-			return (Control) method.invoke(obj);

-		} catch (Exception e) {

-			e.printStackTrace();

-			return null;

-		}

-	}

-

-	private static Class<?>[] JFACES_SUPPORTED_ELEMENTS;

-	private static Class<?> JFACES_VIEWER;

-

-	static {

-		List<Class<?>> collector = new ArrayList<Class<?>>();

-		try {

-

-			JFACES_VIEWER = Class.forName("org.eclipse.jface.viewers.Viewer");

-			String[] jfaceClasses = new String[] {

-					"org.eclipse.xwt.jface.RadioGroupViewer",

-					"org.eclipse.jface.viewers.ComboViewer",

-					"org.eclipse.jface.viewers.ListViewer",

-					"org.eclipse.jface.viewers.TreeViewer",

-					"org.eclipse.jface.viewers.TableViewer",

-					"org.eclipse.jface.viewers.TableTreeViewer",

-					"org.eclipse.jface.viewers.CheckboxTableViewer",

-					"org.eclipse.jface.viewers.CheckboxTreeViewer",

-					// Dialogs

-					"org.eclipse.jface.dialogs.TrayDialog",

-					"org.eclipse.jface.dialogs.TitleAreaDialog",

-					// Add CellEditors for JFave Viewers.

-					"org.eclipse.jface.viewers.CellEditor",

-					"org.eclipse.jface.viewers.ComboBoxViewerCellEditor",

-					TextCellEditor.class.getName(),

-					CheckboxCellEditor.class.getName()

-			};

-			for(String clazz : jfaceClasses) {

-				try {

-					collector.add(Class.forName(clazz));

-				} catch (Throwable e) {

-					System.out.println("No JFaces support for " + clazz);

-				}

-			}

-		} catch (ClassNotFoundException e) {

-			System.out.println("No JFaces support");

-		}

-		JFACES_SUPPORTED_ELEMENTS = collector.toArray(new Class[collector.size()]);

-	}

-	

-	public static String[] getViewerProperties(Viewer viewer) {

-		if (viewer instanceof ColumnViewer) {

-			ColumnViewer columnViewer = (ColumnViewer) viewer;

-			Object[] properties = columnViewer.getColumnProperties();

-			String[] propertyNames = Core.EMPTY_STRING_ARRAY;

-			if (properties != null) {

-				int size = 0;

-				for (int i = 0; i < properties.length; i++) {

-					if (properties[i] != null) {

-						size ++;

-					}

-				}

-	

-				propertyNames = new String[size];

-				for (int i = 0, j = 0; i < properties.length; i++) {

-					if (properties[i] != null) {

-						propertyNames[j++] = properties[i].toString();												

-					}

-				}

-			}

-			if (propertyNames.length != 0) {				

-				return propertyNames;

-			}

-		}

-		String path = (String)UserData.getLocalData(viewer, IUserDataConstants.XWT_PROPERTY_DATA_KEY);

-		if (path != null) {

-			return new String [] {path};

-		}

-		return Core.EMPTY_STRING_ARRAY;

-	}

-

-	public static Object getColumnObject(Object element, int columnIndex, Object[] properties) {

-		if (element == null) {

-			return null;

-		}

-		Object dataContext = element;

-		

-		if (properties != null && columnIndex < properties.length) {

-			Object propertyElement = properties[columnIndex];

-			if (propertyElement != null) {

-				String propertyName = propertyElement.toString();

-				if (propertyName != null) {

-					try {

-						IMetaclass metaclass = XWT.getMetaclass(dataContext);

-						IProperty property = metaclass.findProperty(propertyName.toLowerCase());

-						if (property != null) {

-							dataContext = property.getValue(dataContext);

-							if (dataContext != null) {		

-								Class<?> type = dataContext.getClass();

-								Class<?> propertyType = property.getType();

-								if (propertyType != null && !propertyType.isAssignableFrom(type)) {

-									dataContext = ObjectUtil.resolveValue(dataContext, type, propertyType, dataContext);

-								}

-							}

-						}

-					} catch (Exception e) {

-						throw new XWTException(e);

-					}			

-				}

-			}

-		}

-		return dataContext;

-	}

-

-	public static String getColumnText(Viewer viewer, Object element, int columnIndex) {

-		String[] propertyNames = JFacesHelper.getViewerProperties(viewer);

-		return getColumnText(viewer, element, columnIndex, propertyNames);

-	}

-

-	public static String getColumnText(Viewer viewer, Object element, int columnIndex, Object[] properties) {

-		Object value = getColumnObject(element, columnIndex, properties);

-

-		try {

-			if (viewer instanceof TableViewer) {

-				Table table = ((TableViewer)viewer).getTable();

-				TableColumn[] columns = table.getColumns();

-				TableColumn column = columns[columnIndex];

-				if (UserData.hasLocalData(column,

-						IUserDataConstants.XWT_PROPERTY_ITEM_TEXT_KEY)) {

-					Object userDataValue = UserData.getLocalData(column,

-							IUserDataConstants.XWT_PROPERTY_ITEM_TEXT_KEY);

-					if (userDataValue instanceof IBinding) {

-						IBinding binding = (IBinding) userDataValue;

-						binding.reset();

-						UserData.setDataContext(column, value);

-						value = binding.getValue(null);

-					} else {

-						value = userDataValue;

-					}

-				}

-				else if (UserData.hasLocalData(column,

-						IUserDataConstants.XWT_PROPERTY_ITEM_IMAGE_KEY)) {

-					return null;

-				}

-			}

-		} catch (Exception e) {

-			throw new XWTException(e);

-		}

-		if (value != null) {

-			return value.toString();

-		}

-		return "";

-	}

-	

-	public static Image getColumnImage(Viewer viewer, Object element, int columnIndex) {

-		String[] propertyNames = JFacesHelper.getViewerProperties(viewer);

-		return getColumnImage(viewer, element, columnIndex, propertyNames);

-	}

-

-	public static Image getColumnImage(Viewer viewer, Object element, int columnIndex, Object[] properties) {

-		Object value = getColumnObject(element, columnIndex, properties);

-		if (value == null) {

-			return null;

-		}

-		try {

-			if (viewer instanceof TableViewer) {

-				Table table = ((TableViewer)viewer).getTable();

-				TableColumn[] columns = table.getColumns();

-				TableColumn column = columns[columnIndex];

-				if (UserData.hasLocalData(column,

-							IUserDataConstants.XWT_PROPERTY_ITEM_IMAGE_KEY)) {

-					Object userDataValue = UserData.getLocalData(column,

-							IUserDataConstants.XWT_PROPERTY_ITEM_IMAGE_KEY);

-					if (userDataValue instanceof IBinding) {

-						IBinding binding = (IBinding) userDataValue;

-						binding.reset();

-						UserData.setDataContext(column, value);

-						value = binding.getValue(null);

-					} else {

-						value = userDataValue;

-					}

-				}

-				else{

-					return null;

-				}

-			}

-		} catch (Exception e) {

-			throw new XWTException(e);

-		}

-		if (value instanceof IObservableValue) {

-			IObservableValue observableValue = (IObservableValue) value;

-			value = observableValue.getValue();

-		}

-		if (value instanceof Image) {

-			return (Image) value;

-		} else if (value != null) {

-			value = ObjectUtil.resolveValue(value, Image.class, value);

-			if (value == null) {

-				return null;

-			}

-			if (value instanceof Image) {

-				return (Image) value;

-			}

-			throw new XWTException("Converter from " + value.getClass()

-					+ " to Image is missing.");

-		}

-		return null;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/jface/ObservableMapLabelProvider.java b/org.eclipse.xwt/src/org/eclipse/xwt/jface/ObservableMapLabelProvider.java
deleted file mode 100644
index 47e363a..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/jface/ObservableMapLabelProvider.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *     Brad Reynolds - bug 164247

- *     Brad Reynolds - bug 164134

- *     yves yang     - port to XWT

- *******************************************************************************/

-package org.eclipse.xwt.jface;

-

-import java.util.Set;

-

-import org.eclipse.core.databinding.observable.map.IMapChangeListener;

-import org.eclipse.core.databinding.observable.map.IObservableMap;

-import org.eclipse.core.databinding.observable.map.MapChangeEvent;

-import org.eclipse.core.databinding.observable.set.IObservableSet;

-import org.eclipse.jface.viewers.ILabelProvider;

-import org.eclipse.jface.viewers.ITableLabelProvider;

-import org.eclipse.jface.viewers.LabelProvider;

-import org.eclipse.jface.viewers.LabelProviderChangedEvent;

-import org.eclipse.jface.viewers.Viewer;

-import org.eclipse.swt.graphics.Image;

-

-/**

- * A label provider based on one or more observable maps that track attributes

- * that this label provider uses for display. Clients may customize by

- * subclassing and overriding {@link #getColumnText(Object, int)},

- * {@link #getColumnImage(Object, int)}, for tables or trees with columns, or by

- * implementing additional mixin interfaces for colors, fonts etc.

- * 

- * @since 1.1

- * 

- */

-public class ObservableMapLabelProvider extends LabelProvider implements

-		ILabelProvider, ITableLabelProvider {

-

-	private final IObservableMap[] textMaps;

-	private Viewer viewer;

-	

-	private IMapChangeListener mapChangeListener = new IMapChangeListener() {

-		public void handleMapChange(MapChangeEvent event) {

-			Set<?> affectedElements = event.diff.getChangedKeys();

-			LabelProviderChangedEvent newEvent = new LabelProviderChangedEvent(

-					ObservableMapLabelProvider.this, affectedElements.toArray());

-			fireLabelProviderChanged(newEvent);

-		}

-	};

-	

-	/**

-	 * @param textMaps

-	 */

-	public ObservableMapLabelProvider(Viewer viewer, IObservableSet domain,

-			String[] propertyNames) {

-		textMaps = new XWTObservableWrapper[propertyNames.length];

-		

-		for (int i = 0; i < textMaps.length; i++) {

-			textMaps[i] = new XWTObservableWrapper(domain, viewer, propertyNames[i]);

-			textMaps[i].addMapChangeListener(mapChangeListener);

-		}

-		this.viewer = viewer;

-	}

-

-	public void dispose() {

-		for (int i = 0; i < textMaps.length; i++) {

-			textMaps[i].removeMapChangeListener(mapChangeListener);

-		}

-		super.dispose();

-	}

-

-	public Image getImage(Object element) {

-		return getColumnImage(element, 0);

-	}

-	

-	public Image getColumnImage(Object element, int columnIndex) {

-		if (columnIndex < textMaps.length) {

-			Object result = textMaps[columnIndex].get(element);

-			return JFacesHelper.getColumnImage(viewer, result, columnIndex);

-		}

-		return null;

-	}

-

-	public String getText(Object element) {

-		return getColumnText(element, 0);

-	}

-

-	public String getColumnText(Object element, int columnIndex) {

-		if (columnIndex < textMaps.length) {

-			Object result = textMaps[columnIndex].get(element);

-			return JFacesHelper.getColumnText(viewer, result, columnIndex);

-		}

-		return null;

-	}

-}

-

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/jface/ObservableTreeContentProvider.java b/org.eclipse.xwt/src/org/eclipse/xwt/jface/ObservableTreeContentProvider.java
deleted file mode 100644
index 9d84080..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/jface/ObservableTreeContentProvider.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2010 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.jface;

-

-import org.eclipse.core.databinding.observable.IObservable;

-import org.eclipse.core.databinding.observable.list.IObservableList;

-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;

-import org.eclipse.core.databinding.observable.set.IObservableSet;

-import org.eclipse.jface.databinding.viewers.ObservableListTreeContentProvider;

-import org.eclipse.jface.databinding.viewers.ObservableSetTreeContentProvider;

-import org.eclipse.jface.viewers.ITreeContentProvider;

-import org.eclipse.jface.viewers.Viewer;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.internal.core.Core;

-import org.eclipse.xwt.internal.core.UpdateSourceTrigger;

-

-public class ObservableTreeContentProvider implements ITreeContentProvider {

-	private String contentPath;

-	private Object context;

-	private Object value;

-	private ITreeContentProvider delegate;

-

-	public String getContentPath() {

-		return contentPath;

-	}

-

-	public void setContentPath(String contentPath) {

-		this.contentPath = contentPath;

-	}

-		

-	public void dispose() {

-		if (delegate == null) {

-			return;

-		}

-		delegate.dispose();

-	}

-	

-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {	

-		if (newInput == null) {

-			return;

-		}

-		updateContext(viewer, newInput);

-		delegate.inputChanged(viewer, oldInput, newInput);

-	}

-	

-	

-	public Object[] getChildren(Object parentElement) {

-		if (delegate == null) {

-			return Core.EMPTY_ARRAY;

-		}

-		return delegate.getChildren(parentElement);

-	}

-	

-	public Object[] getElements(Object inputElement) {

-		return getChildren(inputElement);

-	}

-	

-	public boolean hasChildren(Object element) {

-		if (delegate == null) {

-			return false;

-		}

-		return delegate.hasChildren(element);

-	}

-		

-	public Object getParent(Object element) {

-		if (delegate == null) {

-			return null;

-		}

-		return delegate.getParent(element);

-	}

-	

-	public IObservableSet getKnownElements() {

-		if (delegate == null) {

-			return null;

-		}

-		if (delegate instanceof ObservableSetTreeContentProvider) {

-			ObservableSetTreeContentProvider contentProvider = (ObservableSetTreeContentProvider) delegate;

-			return contentProvider.getKnownElements();

-		}

-		if (delegate instanceof ObservableListTreeContentProvider) {

-			ObservableListTreeContentProvider contentProvider = (ObservableListTreeContentProvider) delegate;

-			return contentProvider.getKnownElements();

-		}

-		throw new IllegalStateException();

-	}

-		

-	public void updateContext(Object context, Object value) {

-		if (context == this.context && this.value == value) {

-			return;

-		}

-		this.context = context;

-		this.value = value;

-		IObservableFactory observableFactory = XWT.observableFactory(context, getContentPath(), UpdateSourceTrigger.Default);

-		IObservable observable = observableFactory.createObservable(value);

-		

-		if (observable instanceof IObservableList) {

-			delegate = new ObservableListTreeContentProvider(observableFactory, null);			

-		} 

-		else if (observable instanceof IObservableSet) {

-			delegate = new ObservableSetTreeContentProvider(observableFactory, null);						

-		}

-		else {

-			throw new UnsupportedOperationException(observable.getClass().getName());

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/jface/TextCellEditor.java b/org.eclipse.xwt/src/org/eclipse/xwt/jface/TextCellEditor.java
deleted file mode 100644
index 4347fec..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/jface/TextCellEditor.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.jface;

-

-import org.eclipse.core.databinding.conversion.IConverter;

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.xwt.IIndexedElement;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTException;

-

-public class TextCellEditor extends org.eclipse.jface.viewers.TextCellEditor implements IIndexedElement {

-	protected CellEditorHelper cellEditorHelper;

-

-	public TextCellEditor(Composite parent) {

-		super(parent);

-	}

-

-	public TextCellEditor(Composite parent, int style) {

-		super(parent, style);

-	}

-

-	@Override

-	protected void doSetValue(Object value) {

-		if (value == null) {

-			super.doSetValue("");

-		} else {

-			Class<?> targetType = getTargetType();

-			if (targetType != String.class) {

-				IConverter converter = XWT.findConvertor(targetType, String.class);

-				if (converter != null) {

-					value = converter.convert(value);

-				}

-			}

-			super.doSetValue(value);

-		}

-	}

-

-	@Override

-	protected Object doGetValue() {

-		Object value = super.doGetValue();

-		Class<?> targetType = getTargetType();

-		if (targetType != value.getClass()) {

-			IConverter converter = XWT.findConvertor(value.getClass(), targetType);

-			if (converter != null) {

-				value = converter.convert(value);

-			}

-		}

-		return value;

-	}

-

-	protected Class<?> getTargetType() {

-		if (cellEditorHelper != null) {

-			return cellEditorHelper.getTargetType();

-		}

-		return Object.class;

-	}

-

-	public void setIndex(Object parent, int index) {

-		if (!(parent instanceof TableViewer)) {

-			throw new XWTException("TableView is expected, not \"" + parent.getClass().getName() + "\"");

-		}

-		cellEditorHelper = new CellEditorHelper((TableViewer) parent, index);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/jface/ViewerFilter.java b/org.eclipse.xwt/src/org/eclipse/xwt/jface/ViewerFilter.java
deleted file mode 100644
index 11cab85..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/jface/ViewerFilter.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.jface;

-

-import org.eclipse.jface.viewers.Viewer;

-import org.eclipse.xwt.core.Condition;

-

-public class ViewerFilter extends org.eclipse.jface.viewers.ViewerFilter {

-	protected Condition[] conditions = Condition.EMPTY_ARRAY;

-	

-	public Condition[] getConditions() {

-		return conditions;

-	}

-

-	public void setConditions(Condition[] conditions) {

-		this.conditions = conditions;

-	}

-

-	@Override

-	public boolean select(Viewer viewer, Object parentElement, Object element) {

-		// No condition is same as no filter

-		if (conditions.length == 0) {

-			return false;

-		}

-		for (Condition condition : conditions) {

-			if (!condition.evaluate(element)) {

-				return false;

-			}

-		}

-		return true;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/jface/XWTDialog.java b/org.eclipse.xwt/src/org/eclipse/xwt/jface/XWTDialog.java
deleted file mode 100644
index de9c217..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/jface/XWTDialog.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.jface;

-

-import java.net.URL;

-

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.xwt.IConstants;

-

-/**

- * Default XWT Dialog with a content via static URL 

- * 

- * @author yyang <yves.yang@soyatec.com>

- */

-public class XWTDialog extends AbstractDialog {

-	private Class<?> contentForm;

-

-	public XWTDialog(Shell parentShell, String title, Object dataContext,

-			Class<?> contentForm) {

-		super(parentShell, title, dataContext);

-		this.contentForm = contentForm;

-	}

-

-	@Override

-	protected URL getContentURL() {

-		if (contentForm != null) {

-			return contentForm.getResource(contentForm.getSimpleName()

-					+ IConstants.XWT_EXTENSION_SUFFIX);

-		}

-		return null;

-	}

-	

-	@Override

-	protected ClassLoader getClassLoader() {

-		return contentForm.getClassLoader();

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/jface/XWTObservableWrapper.java b/org.eclipse.xwt/src/org/eclipse/xwt/jface/XWTObservableWrapper.java
deleted file mode 100644
index 9abf174..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/jface/XWTObservableWrapper.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Erdal Karaca - bug 423749
- *******************************************************************************/
-package org.eclipse.xwt.jface;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IDisposeListener;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.map.IMapChangeListener;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.property.value.IValueProperty;
-import org.eclipse.xwt.internal.core.BindingExpressionPath;
-import org.eclipse.xwt.internal.core.ScopeManager;
-
-public class XWTObservableWrapper implements IObservableMap {
-	private IObservableMap delegate;
-
-	private IObservableSet domain;
-	private Object control;
-	private Object data;
-	private String path;
-
-	private List<IMapChangeListener> changeListeners = Collections.EMPTY_LIST;
-
-	public XWTObservableWrapper(IObservableSet domain, Object control,
-			String path) {
-		this.control = control;
-		this.domain = domain;
-		this.path = path;
-	}
-
-	public Object getData() {
-		return data;
-	}
-
-	public void setData(Object data) {
-		this.data = data;
-	}
-
-	public void addMapChangeListener(IMapChangeListener listener) {
-		if (delegate == null) {
-			if (changeListeners.isEmpty()) {
-				changeListeners = new ArrayList<IMapChangeListener>();
-			}
-			changeListeners.add(listener);
-		} else {
-			delegate.addMapChangeListener(listener);
-		}
-	}
-
-	public void clear() {
-		checkDelegated();
-		delegate.clear();
-	}
-
-	public boolean containsKey(Object key) {
-		checkDelegated();
-		return delegate.containsKey(key);
-	}
-
-	public boolean containsValue(Object value) {
-		checkDelegated();
-		return delegate.containsValue(value);
-	}
-
-	public Set entrySet() {
-		checkDelegated();
-		return delegate.entrySet();
-	}
-
-	public boolean equals(Object o) {
-		checkDelegated();
-		return delegate.equals(o);
-	}
-
-	public Object get(Object key) {
-		if (data == null) {
-			data = key;
-		}
-		checkDelegated();
-		return delegate.get(key);
-	}
-
-	public Object getKeyType() {
-		checkDelegated();
-		return delegate.getKeyType();
-	}
-
-	public Object getValueType() {
-		checkDelegated();
-		return delegate.getValueType();
-	}
-
-	public int hashCode() {
-		checkDelegated();
-		return delegate.hashCode();
-	}
-
-	public boolean isEmpty() {
-		checkDelegated();
-		return delegate.isEmpty();
-	}
-
-	public Set keySet() {
-		checkDelegated();
-		return delegate.keySet();
-	}
-
-	public Object put(Object key, Object value) {
-		checkDelegated();
-		return delegate.put(key, value);
-	}
-
-	public void putAll(Map t) {
-		checkDelegated();
-		delegate.putAll(t);
-	}
-
-	public Object remove(Object key) {
-		checkDelegated();
-		return delegate.remove(key);
-	}
-
-	public void removeMapChangeListener(IMapChangeListener listener) {
-		if (delegate == null) {
-			changeListeners.remove(listener);
-		} else {
-			delegate.removeMapChangeListener(listener);
-		}
-	}
-
-	public int size() {
-		checkDelegated();
-		return delegate.size();
-	}
-
-	public Collection values() {
-		checkDelegated();
-		return delegate.values();
-	}
-
-	public void addChangeListener(IChangeListener listener) {
-		checkDelegated();
-		delegate.addChangeListener(listener);
-	}
-
-	public void addDisposeListener(IDisposeListener listener) {
-		checkDelegated();
-		delegate.addDisposeListener(listener);
-	}
-
-	public void addStaleListener(IStaleListener listener) {
-		checkDelegated();
-		delegate.addStaleListener(listener);
-	}
-
-	public void dispose() {
-		if (delegate != null) {
-			delegate.dispose();
-		}
-	}
-
-	public Realm getRealm() {
-		checkDelegated();
-		return delegate.getRealm();
-	}
-
-	public boolean isDisposed() {
-		checkDelegated();
-		return delegate.isDisposed();
-	}
-
-	public boolean isStale() {
-		checkDelegated();
-		return delegate.isStale();
-	}
-
-	public void removeChangeListener(IChangeListener listener) {
-		checkDelegated();
-		delegate.removeChangeListener(listener);
-	}
-
-	public void removeDisposeListener(IDisposeListener listener) {
-		checkDelegated();
-		delegate.removeDisposeListener(listener);
-	}
-
-	public void removeStaleListener(IStaleListener listener) {
-		checkDelegated();
-		delegate.removeStaleListener(listener);
-	}
-
-	protected void checkDelegated() {
-		if (delegate == null) {
-			BindingExpressionPath expressionPath = new BindingExpressionPath(
-					path);
-
-			// FIXME bug 423749: workaround for supporting nested properties: if
-			// stripped path does not equal to provided path, then re-parse the
-			// expression
-			if (!expressionPath.getStripedPath().equals(path)) {
-				expressionPath = new BindingExpressionPath(
-						expressionPath.getStripedPath());
-			}
-
-			IValueProperty property = ScopeManager.createValueProperty(control,
-					data, expressionPath);
-			delegate = property.observeDetail(domain);
-			for (IMapChangeListener listener : changeListeners) {
-				delegate.addMapChangeListener(listener);
-			}
-			changeListeners.clear();
-		}
-	}
-}
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/jface/XWTTitleAreaDialog.java b/org.eclipse.xwt/src/org/eclipse/xwt/jface/XWTTitleAreaDialog.java
deleted file mode 100644
index b8491b8..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/jface/XWTTitleAreaDialog.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.jface;

-

-import java.net.URL;

-import java.util.HashMap;

-

-import org.eclipse.core.databinding.AggregateValidationStatus;

-import org.eclipse.core.databinding.observable.ChangeEvent;

-import org.eclipse.core.databinding.observable.IChangeListener;

-import org.eclipse.core.runtime.IStatus;

-import org.eclipse.jface.dialogs.TitleAreaDialog;

-import org.eclipse.jface.layout.GridLayoutFactory;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.xwt.IConstants;

-import org.eclipse.xwt.XWT;

-import org.eclipse.xwt.XWTLoader;

-import org.eclipse.xwt.databinding.BindingContext;

-

-/**

- * 

- * @author yyang <yves.yang@soyatec.com>

- */

-public class XWTTitleAreaDialog extends TitleAreaDialog {

-	private Object dataContext;

-	private BindingContext bindingContext;

-	private AggregateValidationStatus validationStatus;

-

-	private Class<?> contentCLS;

-

-	public XWTTitleAreaDialog(Shell parentShell,

-			Object dataContext, BindingContext bindingContext) {

-		super(parentShell);

-		this.dataContext = dataContext;

-		this.bindingContext = bindingContext;

-	}

-

-	public XWTTitleAreaDialog(Shell parentShell, Class<?> contentCLS,

-			Object dataContext) {

-		this(parentShell, contentCLS, dataContext, null);

-	}

-

-	public XWTTitleAreaDialog(Shell parentShell, Class<?> contentCLS,

-			Object dataContext, BindingContext bindingContext) {

-		super(parentShell);

-		this.contentCLS = contentCLS;

-		this.dataContext = dataContext;

-		this.bindingContext = bindingContext;

-	}

-

-	@Override

-	protected Control createDialogArea(Composite parent) {

-		Control control = super.createDialogArea(parent);

-

-		if (bindingContext == null) {

-			bindingContext = new BindingContext(parent);

-		}

-		validationStatus = bindingContext.getStatus();

-		validationStatus.addChangeListener(new IChangeListener() {

-			public void handleChange(ChangeEvent event) {

-				IStatus status = (IStatus) validationStatus.getValue();

-				setMessage(status.getMessage(), status.getSeverity());

-			}

-		});

-

-		ClassLoader classLoader = Thread.currentThread()

-				.getContextClassLoader();

-		try {

-			Thread.currentThread().setContextClassLoader(

-					contentCLS.getClassLoader());

-			HashMap<String, Object> newOptions = new HashMap<String, Object>();

-			newOptions.put(XWTLoader.CONTAINER_PROPERTY, parent);

-			Object dataContext = getDataContext();

-			if (dataContext != null) {

-				newOptions.put(XWTLoader.DATACONTEXT_PROPERTY, dataContext);

-			}

-			BindingContext bindingContext = getBindingContext();

-			if (bindingContext != null) {

-				newOptions.put(XWTLoader.BINDING_CONTEXT_PROPERTY,

-						bindingContext);

-			}

-			newOptions.put(XWTLoader.CLASS_PROPERTY, contentCLS);

-

-			XWT.loadWithOptions(getContentURL(), newOptions);

-			GridLayoutFactory.fillDefaults().generateLayout(parent);

-			parent.layout(true, true);

-		} catch (Exception e) {

-			e.printStackTrace();

-		} finally {

-			Thread.currentThread().setContextClassLoader(classLoader);

-			parent.setVisible(true);

-		}

-		return control;

-	}

-

-	public URL getContentURL() {

-		if (contentCLS != null) {

-			return contentCLS.getResource(contentCLS.getSimpleName()

-					+ IConstants.XWT_EXTENSION_SUFFIX);

-		}

-		return null; 

-	}

-

-	public Object getDataContext() {

-		return dataContext;

-	}

-

-	public BindingContext getBindingContext() {

-		return bindingContext;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/metadata/DefaultLoadingType.java b/org.eclipse.xwt/src/org/eclipse/xwt/metadata/DefaultLoadingType.java
deleted file mode 100644
index 806c358..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/metadata/DefaultLoadingType.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.metadata;

-

-public class DefaultLoadingType implements ILoadingType {

-	private IValueLoading valueLoading;

-	private IProperty[] properties;

-

-	public DefaultLoadingType(IValueLoading valueLoading, IProperty[] properties) {

-		this.valueLoading = valueLoading;

-		this.properties = properties;

-	}

-

-	public IValueLoading getValueLoading() {

-		return valueLoading;

-	}

-

-	public IProperty[] getDependencies() {

-		return properties;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/metadata/DelegateProperty.java b/org.eclipse.xwt/src/org/eclipse/xwt/metadata/DelegateProperty.java
deleted file mode 100644
index 648b744..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/metadata/DelegateProperty.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.metadata;

-

-import java.lang.reflect.InvocationTargetException;

-

-/**

- * 

- * Facility class to override the default behavior

- * @author yyang

- */

-public class DelegateProperty implements IProperty {

-	protected IProperty delegate;

-	protected ILoadingType loadingType;

-	

-	public DelegateProperty(IProperty delegate) {

-		this(delegate, ILoadingType.DEFAULT);

-	}

-	

-	public DelegateProperty(ILoadingType loadingType) {

-		this(null, loadingType);

-	}

-

-	public DelegateProperty(IProperty delegate, ILoadingType loadingType) {

-		this.delegate = delegate;

-		this.loadingType = loadingType;

-	}

-

-	public void addSetPostAction(ISetPostAction setPostAction) {

-		this.delegate.addSetPostAction(setPostAction);

-	}

-

-	public Class<?> getType() {

-		return this.delegate.getType();

-	}

-

-	public Object getValue(Object target) throws IllegalArgumentException,

-			IllegalAccessException, InvocationTargetException,

-			SecurityException, NoSuchFieldException {

-		return this.delegate.getValue(target);

-	}

-

-	public boolean isDefault() {

-		return false;

-	}

-

-	public boolean isContainement() {

-		return false;

-	}

-

-	public void removeSetPostAction(ISetPostAction setPostAction) {

-		this.delegate.removeSetPostAction(setPostAction);

-	}

-	

-	public boolean isReadOnly() {

-		return this.delegate.isReadOnly();

-	}

-

-	public void setType(Class<?> type) {

-		this.delegate.setType(type);

-	}

-

-	public void setValue(Object target, Object value)

-			throws IllegalArgumentException, IllegalAccessException,

-			InvocationTargetException, SecurityException, NoSuchFieldException {

-		this.delegate.setValue(target, value);

-	}

-

-	public String getName() {

-		return this.delegate.getName();

-	}

-

-	public void setName(String name) {

-		this.delegate.setName(name);

-	}

-

-	public IProperty getDelegate() {

-		return delegate;

-	}

-

-	public void setDelegate(IProperty delegate) {

-		this.delegate = delegate;

-	}

-	

-	public boolean isValueAsParent() {

-		return this.delegate.isValueAsParent();

-	}

-

-	public ILoadingType getLoadingType() {

-		return loadingType;

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IBehavior.java b/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IBehavior.java
deleted file mode 100644
index 0271495..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IBehavior.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.metadata;

-

-/**

- * Common behavior of Property and event

- * 

- * @author yyang

- */

-public interface IBehavior {

-

-	/**

-	 * Getter of the property <tt>name</tt>

-	 * 

-	 * @return Returns the name.

-	 */

-	public String getName();

-

-	public void setName(String name);

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IEvent.java b/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IEvent.java
deleted file mode 100644
index 5b1ca79..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IEvent.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.metadata;

-

-/**

- * UI event

- * 

- * @author yyang

- */

-public interface IEvent extends IBehavior {

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/metadata/ILoadingType.java b/org.eclipse.xwt/src/org/eclipse/xwt/metadata/ILoadingType.java
deleted file mode 100644
index 81c640a..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/metadata/ILoadingType.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.metadata;

-

-/**

- * This class is used to indicate when the property can be 

- * initialized during the XML Loading. 

- * 

- * @author yyang <yves.yang@soyatec.com>

- */

-public interface ILoadingType {

-	public ILoadingType DEFAULT = new ILoadingType() {

-		public IValueLoading getValueLoading() {

-			return IValueLoading.Normal;

-		}		

-		public IProperty[] getDependencies() {

-			return IProperty.EMPTY_ARRAY;

-		}

-	};

-	

-	/**

-	 * When the property can be loaded.

-	 * @return

-	 */

-	IValueLoading getValueLoading();

-

-	/**

-	 * The dependency properties must be loaded before.  

-	 * @return

-	 */

-	IProperty[] getDependencies();

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IMetaclass.java b/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IMetaclass.java
deleted file mode 100644
index b16407c..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IMetaclass.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.metadata;

-

-import org.eclipse.xwt.IEventGroup;

-

-/**

- * UI metaclass

- * 

- * @author yyang

- */

-public interface IMetaclass {

-	public String getName();

-

-	public IProperty[] getProperties();

-

-	public IMetaclass getSuperClass();

-

-	public IEvent[] getEvents();

-

-	public IProperty findProperty(String name);

-

-	public void removeProperty(String name);

-

-	public IProperty findDefaultProperty();

-

-	public IEvent findEvent(String name);

-

-	public Object newInstance(Object[] parameters);

-

-	public boolean isAbstract();

-

-	public boolean isInstance(Object object);

-

-	public boolean isSubclassOf(IMetaclass metaclass);

-

-	public boolean isSuperclassOf(IMetaclass metaclass);

-

-	public boolean isAssignableFrom(IMetaclass metaclass);

-

-	public Class<?> getType();

-

-	public IProperty addProperty(IProperty property);

-

-	public Class<?> getDataContextType();

-	

-	public void addEventGroup(IEventGroup eventGroup);

-	

-	public IEventGroup getEventGroup(String event);

-	

-	public void addInitializer(IObjectInitializer initializer);

-	

-	public void removeInitializer(IObjectInitializer initializer);

-	

-	public IObjectInitializer[] getInitializers();

-	

-	public void initialize(Object instance);	

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IObjectInitializer.java b/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IObjectInitializer.java
deleted file mode 100644
index d2b2809..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IObjectInitializer.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.metadata;

-

-/**

- * Provide a mechanism to initialize the instance

- * 

- * @author yyang

- *

- */

-public interface IObjectInitializer {

-	void initialize(Object object);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IProperty.java b/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IProperty.java
deleted file mode 100644
index c65130d..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IProperty.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.metadata;

-

-import java.lang.reflect.InvocationTargetException;

-

-/**

- * UI property

- * 

- * @author yyang

- */

-public interface IProperty extends IBehavior {

-	IProperty[] EMPTY_ARRAY = new IProperty[] {};

-	

-	public Class<?> getType();

-

-	public void setType(Class<?> type);

-

-	/**

-	 * Can generate event

-	 * 

-	 * @return

-	 */

-	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException;

-

-	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException;

-

-	public void addSetPostAction(ISetPostAction setPostAction);

-

-	public void removeSetPostAction(ISetPostAction setPostAction);

-

-	public boolean isDefault();

-	

-	public boolean isContainement();

-	

-	public boolean isReadOnly();

-	

-	/**

-	 * use the value ad parent for the children. Table.table, Form.setHeadClient etc

-	 * @return

-	 */

-	public boolean isValueAsParent();

-	

-	public ILoadingType getLoadingType();

-}
\ No newline at end of file
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/metadata/ISetPostAction.java b/org.eclipse.xwt/src/org/eclipse/xwt/metadata/ISetPostAction.java
deleted file mode 100644
index 9d6acaf..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/metadata/ISetPostAction.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.metadata;

-

-public interface ISetPostAction {

-	void action(Object target, IProperty property, Object value);

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IValueLoading.java b/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IValueLoading.java
deleted file mode 100644
index a138927..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IValueLoading.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.metadata;

-

-/**

- * This class is used to indicate when the property can be 

- * initialized during the XML Loading. 

- * 

- * @author yyang <yves.yang@soyatec.com>

- */

-public enum IValueLoading {

-	/**

-	 * Set property just after Widget creation. It is the default value.

-	 */

-	Normal,

-

-	/**

-	 * Set property just after the complete initialization before the creation

-	 * of children

-	 */

-	PostInitialization,

-

-	/**

-	 * Set property just after the creation of children

-	 */

-	PostChildren;

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/metadata/ModelUtils.java b/org.eclipse.xwt/src/org/eclipse/xwt/metadata/ModelUtils.java
deleted file mode 100644
index f4471fc..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/metadata/ModelUtils.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.metadata;

-

-import java.beans.Introspector;

-

-/**

- * 

- * @author yyang

- *

- */

-public class ModelUtils {

-	public static String normalizeEventName(String name) {

-		return name.toLowerCase();

-	}

-		

-	public static String normalizePropertyName(String name) {

-		if (name == null || name.length() == 0) {

-			return name;

-		}

-		return Introspector.decapitalize(name);

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/utils/NamedColorsUtil.java b/org.eclipse.xwt/src/org/eclipse/xwt/utils/NamedColorsUtil.java
deleted file mode 100644
index 960baac..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/utils/NamedColorsUtil.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *  

- * Contributors:                                                               *  

- *     Soyatec - initial API and implementation                                * 

- *******************************************************************************/

-package org.eclipse.xwt.utils;

-

-import java.util.ArrayList;

-import java.util.Arrays;

-import java.util.Enumeration;

-import java.util.List;

-import java.util.ResourceBundle;

-

-import org.eclipse.swt.graphics.Color;

-import org.eclipse.xwt.internal.utils.ObjectUtil;

-

-/**

- * @author jliu (jin.liu@soyatec.com)

- */

-public class NamedColorsUtil {

-	private static ResourceBundle COLORS = ResourceBundle.getBundle("org.eclipse.xwt.utils.colors");

-

-	private static String[] colorNames;

-	static {		

-		List<String> colors = new ArrayList<String>();

-		Enumeration<String> keys = COLORS.getKeys();

-		while (keys.hasMoreElements()) {

-			String color = keys.nextElement();

-			colors.add(color);

-		}

-		if (!colors.isEmpty()) {

-			colorNames = colors.toArray(new String[0]);

-			Arrays.sort(colorNames);

-		}

-	}

-

-	public static String[] getColorNames() {

-		return colorNames;

-	}

-

-	public static String getColorValue(String name) {

-		if (!hasColor(name)) {

-			return null;

-		}

-		String value = COLORS.getString(name);

-		if (value != null) {

-			value = value.trim();

-		}

-		return value;

-	}

-

-	public static boolean hasColor(String name) {

-		if (name == null) {

-			return false;

-		}

-		String[] colorNames = getColorNames();

-		if (colorNames == null) {

-			return false;

-		}

-		return Arrays.asList(colorNames).contains(name);

-	}

-

-	public static Color getColor(String name) {

-		if (!hasColor(name)) {

-			return null;

-		}

-		String colorValue = getColorValue(name);

-		if (colorValue != null) {

-			return (Color) ObjectUtil.resolveValue(colorValue, Color.class, null);

-		}

-		return null;

-	}

-

-	/**

-	 * Utility class.

-	 */

-	private NamedColorsUtil() {

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/utils/OperatorExceptionMessage.java b/org.eclipse.xwt/src/org/eclipse/xwt/utils/OperatorExceptionMessage.java
deleted file mode 100644
index 3b2d570..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/utils/OperatorExceptionMessage.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.utils;

-

-/**

- * @author YaHong.Song(yahong.song@soyatec.com)

- * 

- */

-public final class OperatorExceptionMessage {

-	public static final String TYPE_UN_SAME = "different data type exception";

-	public static final String OPRERANR_NULL = "the operant value is null exception";

-	public static final String TYPE_WRONG = "type is not supported exception";

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/utils/PathHelper.java b/org.eclipse.xwt/src/org/eclipse/xwt/utils/PathHelper.java
deleted file mode 100644
index f357063..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/utils/PathHelper.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.       *

- * All rights reserved. This program and the accompanying materials            *

- * are made available under the terms of the Eclipse Public License v1.0       *

- * which accompanies this distribution, and is available at                    *

- * http://www.eclipse.org/legal/epl-v10.html                                   *  

- * Contributors:                                                               *  

- *     Soyatec - initial API and implementation                                * 

- *******************************************************************************/

-package org.eclipse.xwt.utils;

-

-import java.io.File;

-import java.util.StringTokenizer;

-

-/**

- * @author jliu jin.liu@soyatec.com

- */

-public class PathHelper {

-

-	public static final String URL_IDENTIFY_PREFIX = "file:";

-	public static final String BACKWARD_SLASH = "\\";

-	public static final String FORWARD_SLASH = "/";

-	public static final String RELATIVE_PATH_SIG = "../";

-	public static final String WHITE_SPACE_ASCII = "%20";

-

-	public static String getRelativePath(String source, String target) {

-		if (source == null || target == null) {

-			return target;

-		}

-		File sourceFile = new File(source);

-		if (!sourceFile.exists()) {

-			return target;

-		}

-		File targetFile = new File(target);

-		if (!targetFile.exists()) {

-			return target;

-		}

-		source = switchToForwardSlashes(source);

-		target = switchToForwardSlashes(target);

-		int index = target.indexOf(FORWARD_SLASH);

-		String container = null;

-		while (index != -1) {

-			container = target.substring(0, index);

-			if (!source.startsWith(container + FORWARD_SLASH)) {

-				break;

-			}

-			source = source.substring(index + 1);

-			target = target.substring(index + 1);

-			index = target.indexOf(FORWARD_SLASH);

-		}

-		index = source.indexOf(FORWARD_SLASH);

-		while (index != -1) {

-			target = RELATIVE_PATH_SIG + target;

-			source = source.substring(index + 1);

-			index = source.indexOf(FORWARD_SLASH);

-		}

-		return target;

-	}

-

-	/**

-	 * Switch to file path slashes

-	 */

-	public static String switchToForwardSlashes(String path) {

-		path = path.replace(File.separatorChar, FORWARD_SLASH.charAt(0));

-		path = path.replace(BACKWARD_SLASH.charAt(0), FORWARD_SLASH.charAt(0));

-		return path;

-	}

-

-	public static String getAbsolutePath(String source, String relative) {

-		if (source.indexOf(WHITE_SPACE_ASCII) != -1) {

-			source = source.replace(WHITE_SPACE_ASCII, " ");

-		}

-		if (relative.indexOf(WHITE_SPACE_ASCII) != -1) {

-			relative = relative.replace(WHITE_SPACE_ASCII, " ");

-		}

-		if (source.startsWith(FORWARD_SLASH)) {

-			source = source.substring(1);

-		}

-		String prefix = null;

-		if (source.startsWith(URL_IDENTIFY_PREFIX)) {

-			prefix = URL_IDENTIFY_PREFIX;

-			source = source.substring(URL_IDENTIFY_PREFIX.length());

-			if (System.getProperty("os.arch").startsWith("Win")) {

-				source = source.substring(1);

-			}

-		}

-		File file = new File(source);

-		if (!file.exists()) {

-			return relative;

-		}

-		if (file.isFile()) {

-			source = file.getParent();

-		}

-		source = switchToForwardSlashes(source);

-		relative = switchToForwardSlashes(relative);

-		if (relative.startsWith(FORWARD_SLASH)) {

-			relative = relative.substring(1);

-		}

-		int index = relative.lastIndexOf(FORWARD_SLASH);

-		if (index != -1) {

-			String container = relative.substring(0, index);

-			int i = source.indexOf(container);

-			if (i != -1) {

-				source = source.substring(0, i);

-			} else {

-				int j = relative.indexOf(RELATIVE_PATH_SIG);

-				while (j != -1) {

-					relative = relative.substring(j + RELATIVE_PATH_SIG.length());

-					source = source.substring(0, source.lastIndexOf(FORWARD_SLASH));

-					j = relative.indexOf(RELATIVE_PATH_SIG);

-				}

-			}

-		}

-		if (System.getProperty("os.arch").startsWith("Win")) {

-			source = "/" + source;

-		}

-

-		return (prefix != null ? prefix : "") + source + FORWARD_SLASH + relative;

-	}

-

-	/**

-	 * Convert to relative url based on base

-	 */

-	public static String convertToRelative(String input, String base) {

-		StringTokenizer inputTokenizer = new StringTokenizer(input, FORWARD_SLASH);

-		StringTokenizer baseTokenizer = new StringTokenizer(base, FORWARD_SLASH);

-		String token1 = "", token2 = "";

-		//

-		while (true) {

-			if (!inputTokenizer.hasMoreTokens() || !baseTokenizer.hasMoreTokens())

-				break;

-			token1 = baseTokenizer.nextToken();

-			token2 = inputTokenizer.nextToken();

-			if (!token1.equals(token2))

-				break;

-		}

-		StringBuilder builder = new StringBuilder();

-		while (baseTokenizer.hasMoreTokens()) {

-			baseTokenizer.nextToken();

-			builder.append(RELATIVE_PATH_SIG);

-		}

-		builder.append(token2);

-		while (inputTokenizer.hasMoreTokens()) {

-			builder.append(FORWARD_SLASH + inputTokenizer.nextToken());

-		}

-		return builder.toString();

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/utils/ResourceManager.java b/org.eclipse.xwt/src/org/eclipse/xwt/utils/ResourceManager.java
deleted file mode 100644
index c0a9fc0..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/utils/ResourceManager.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.utils;

-

-import java.io.IOException;

-import java.io.InputStream;

-import java.net.URL;

-import java.util.ArrayList;

-import java.util.Collection;

-import java.util.HashMap;

-import java.util.List;

-import java.util.Map;

-import java.util.StringTokenizer;

-

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.graphics.Color;

-import org.eclipse.swt.graphics.Font;

-import org.eclipse.swt.graphics.Image;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.xwt.XWTMaps;

-import org.eclipse.xwt.internal.utils.ObjectUtil;

-

-/**

- * @author jliu

- */

-public class ResourceManager {

-

-	public static ResourceManager resources = new ResourceManager();

-

-	private Map<String, Color> key2Colors = new HashMap<String, Color>();

-	private Map<String, Font> key2Fonts = new HashMap<String, Font>();

-	private Map<String, Image> key2Images = new HashMap<String, Image>();

-

-	/**

-	 * Default constructor.

-	 */

-	private ResourceManager() {

-	}

-

-	public Color getColor(String colorStr) {

-		Color color = key2Colors.get(colorStr);

-		if (color == null || color.isDisposed()) {

-			key2Colors.put(colorStr, color = ColorTool.getColor(colorStr));

-		}

-		return color;

-	}

-

-	public Font getFont(String fontStr) {

-		Font font = key2Fonts.get(fontStr);

-		if (font == null || font.isDisposed()) {

-			key2Fonts.put(fontStr, font = FontTool.getFont(fontStr));

-		}

-		return font;

-	}

-

-	public Image getImage(String imagePath) {

-		if (imagePath == null) {

-			return null;

-		}

-		try {

-			return getImage(new URL(imagePath));

-		} catch (Exception e) {

-			return null;

-		}

-	}

-

-	public Image getImage(URL file) {

-		String key = file.toString();

-		Image image = key2Images.get(key);

-		if (image == null || image.isDisposed()) {

-			key2Images.put(key, image = ImageTool.getImage(file));

-		}

-		return image;

-	}

-

-	public synchronized void dispose() {

-		// dispose colors.

-		Collection<Color> colors = key2Colors.values();

-		for (Color color : colors) {

-			if (color != null) {

-				color.dispose();

-			}

-		}

-		key2Colors.clear();

-

-		// dispose fonts.

-		Collection<Font> fonts = key2Fonts.values();

-		for (Font font : fonts) {

-			if (font != null) {

-				font.dispose();

-			}

-		}

-		key2Colors.clear();

-

-		// dispose images

-		Collection<Image> images = key2Images.values();

-		for (Image image : images) {

-			if (image != null) {

-				image.dispose();

-			}

-		}

-	}

-

-	static class ColorTool {

-		static Color getColor(String colorStr) {

-			if (NamedColorsUtil.hasColor(colorStr)) {

-				return NamedColorsUtil.getColor(colorStr);

-			}

-			if (colorStr.toLowerCase().startsWith("swt.")) {

-				return getSWTColor(colorStr);

-			} else if (colorStr.startsWith("#")) {

-				try {

-					int rgb = Integer.parseInt(colorStr.substring(1), 16);

-					return getColor(rgb);

-				} catch (NumberFormatException e) {

-					return null;

-				}

-			} else if (colorStr.indexOf(",") != -1) {

-				List<String> rgbs = new ArrayList<String>();

-				StringTokenizer stk = new StringTokenizer(colorStr, ",");

-				while (stk.hasMoreTokens()) {

-					rgbs.add(stk.nextToken());

-				}

-				if (rgbs.size() == 3) {

-					try {

-						int r = Integer.parseInt(rgbs.get(0).trim());

-						int g = Integer.parseInt(rgbs.get(1).trim());

-						int b = Integer.parseInt(rgbs.get(2).trim());

-						return getColor(r, g, b);

-					} catch (NumberFormatException e) {

-						return null;

-					}

-				}

-			}

-			return getSWTColor(colorStr);

-		}

-

-		static Color getColor(int red, int green, int blue) {

-			if (red > 255 || green > 255 || blue > 255 || red < 0 || green < 0 || blue < 0) {

-				return null;

-			}

-			return new Color(Display.getCurrent(), red, green, blue);

-		}

-

-		static Color getColor(int rgb) {

-			int value = 0xff000000 | rgb;

-			int red = (value >> 16) & 0xFF;

-			int green = (value >> 8) & 0xFF;

-			int blue = (value >> 0) & 0xFF;

-			return getColor(red, green, blue);

-		}

-

-		static Color getSWTColor(String colorStr) {

-			if (!(colorStr.toLowerCase().startsWith("swt."))) {

-				if (!(colorStr.toLowerCase().startsWith("color_"))) {

-					colorStr = "COLOR_" + colorStr;

-				}

-				colorStr = "SWT." + colorStr;

-			}

-			int swtColor = XWTMaps.getColor(colorStr);

-			return getSWTColor(swtColor);

-		}

-

-		static Color getSWTColor(int swtValue) {

-			return Display.getCurrent().getSystemColor(swtValue);

-		}

-	}

-

-	static class FontTool {

-

-		static Font getFont(String fontStr) {

-			if (fontStr.indexOf(",") != -1) {

-				StringTokenizer stk = new StringTokenizer(fontStr, ",");

-				String name = null;

-				int height = 0;

-				int style = SWT.NORMAL;

-				while (stk.hasMoreTokens()) {

-					String token = stk.nextToken().trim();

-					if (token.equalsIgnoreCase("normal") || token.equalsIgnoreCase("bold") || token.equalsIgnoreCase("italic") || token.contains("|")) {

-						style = (Integer) ObjectUtil.resolveValue(token, Integer.class, style);

-					} else if (isInt(token)) {

-						height = Integer.parseInt(token);

-					} else {

-						name = token;

-					}

-				}

-				return getFont(name, height, style);

-			}

-			return getFont(fontStr, 12, SWT.NORMAL);

-		}

-

-		static boolean isInt(String value) {

-			try {

-				Integer.parseInt(value);

-			} catch (NumberFormatException e) {

-				return false;

-			}

-			return true;

-		}

-

-		static Font getFont(String name, int height, int style) {

-			if (name == null) {

-				return null;

-			}

-			return new Font(Display.getCurrent(), name, height, style);

-		}

-

-		static Font getSWTFont() {

-			return Display.getCurrent().getSystemFont();

-		}

-	}

-

-	static class ImageTool {

-

-		static Image getImage(String resource) {

-			return getImage(ResourceManager.class.getResource(resource));

-		}

-

-		static Image getImage(URL url) {

-			if (url == null) {

-				return null;

-			}

-			try {

-				InputStream stream = url.openStream();

-				try {

-					return new Image(Display.getCurrent(), stream);

-				} finally {

-					stream.close();

-				}

-			} catch (IOException e) {

-				return null;

-			}

-		}

-	}

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/utils/colors.properties b/org.eclipse.xwt/src/org/eclipse/xwt/utils/colors.properties
deleted file mode 100644
index d9306a3..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/utils/colors.properties
+++ /dev/null
@@ -1,150 +0,0 @@
-###############################################################################

-# Copyright (c) 2010 IBM Corporation and others.

-# All rights reserved. This program and the accompanying materials

-# are made available under the terms of the Eclipse Public License v1.0

-# which accompanies this distribution, and is available at

-# http://www.eclipse.org/legal/epl-v10.html

-#

-# Contributors:

-#     IBM Corporation - initial API and implementation

-###############################################################################

-AliceBlue 	#F0F8FF	 

-AntiqueWhite 	#FAEBD7	 

-Aqua 	#00FFFF	 

-Aquamarine 	#7FFFD4	 

-Azure 	#F0FFFF	 

-Beige 	#F5F5DC	 

-Bisque 	#FFE4C4	 

-Black 	#000000	 

-BlanchedAlmond 	#FFEBCD	 

-Blue 	#0000FF	 

-BlueViolet 	#8A2BE2	 

-Brown 	#A52A2A	 

-BurlyWood 	#DEB887	 

-CadetBlue 	#5F9EA0	 

-Chartreuse 	#7FFF00	 

-Chocolate 	#D2691E	 

-Coral 	#FF7F50	 

-CornflowerBlue 	#6495ED	 

-Cornsilk 	#FFF8DC	 

-Crimson 	#DC143C	 

-Cyan 	#00FFFF	 

-DarkBlue 	#00008B	 

-DarkCyan 	#008B8B	 

-DarkGoldenRod 	#B8860B	 

-DarkGray 	#A9A9A9	 

-DarkGreen 	#006400	 

-DarkKhaki 	#BDB76B	 

-DarkMagenta 	#8B008B	 

-DarkOliveGreen 	#556B2F	 

-Darkorange 	#FF8C00	 

-DarkOrchid 	#9932CC	 

-DarkRed 	#8B0000	 

-DarkSalmon 	#E9967A	 

-DarkSeaGreen 	#8FBC8F	 

-DarkSlateBlue 	#483D8B	 

-DarkSlateGray 	#2F4F4F	 

-DarkTurquoise 	#00CED1	 

-DarkViolet 	#9400D3	 

-DeepPink 	#FF1493	 

-DeepSkyBlue 	#00BFFF	 

-DimGray 	#696969	 

-DodgerBlue 	#1E90FF	 

-FireBrick 	#B22222	 

-FloralWhite 	#FFFAF0	 

-ForestGreen 	#228B22	 

-Fuchsia 	#FF00FF	 

-Gainsboro 	#DCDCDC	 

-GhostWhite 	#F8F8FF	 

-Gold 	#FFD700	 

-GoldenRod 	#DAA520	 

-Gray 	#808080	 

-Green 	#008000	 

-GreenYellow 	#ADFF2F	 

-HoneyDew 	#F0FFF0	 

-HotPink 	#FF69B4	 

-IndianRed  	#CD5C5C	 

-Indigo  	#4B0082	 

-Ivory 	#FFFFF0	 

-Khaki 	#F0E68C	 

-Lavender 	#E6E6FA	 

-LavenderBlush 	#FFF0F5	 

-LawnGreen 	#7CFC00	 

-LemonChiffon 	#FFFACD	 

-LightBlue 	#ADD8E6	 

-LightCoral 	#F08080	 

-LightCyan 	#E0FFFF	 

-LightGoldenRodYellow 	#FAFAD2	 

-LightGrey 	#D3D3D3	 

-LightGreen 	#90EE90	 

-LightPink 	#FFB6C1	 

-LightSalmon 	#FFA07A	 

-LightSeaGreen 	#20B2AA	 

-LightSkyBlue 	#87CEFA	 

-LightSlateGray 	#778899	 

-LightSteelBlue 	#B0C4DE	 

-LightYellow 	#FFFFE0	 

-Lime 	#00FF00	 

-LimeGreen 	#32CD32	 

-Linen 	#FAF0E6	 

-Magenta 	#FF00FF	 

-Maroon 	#800000	 

-MediumAquaMarine 	#66CDAA	 

-MediumBlue 	#0000CD	 

-MediumOrchid 	#BA55D3	 

-MediumPurple 	#9370D8	 

-MediumSeaGreen 	#3CB371	 

-MediumSlateBlue 	#7B68EE	 

-MediumSpringGreen 	#00FA9A	 

-MediumTurquoise 	#48D1CC	 

-MediumVioletRed 	#C71585	 

-MidnightBlue 	#191970	 

-MintCream 	#F5FFFA	 

-MistyRose 	#FFE4E1	 

-Moccasin 	#FFE4B5	 

-NavajoWhite 	#FFDEAD	 

-Navy 	#000080	 

-OldLace 	#FDF5E6	 

-Olive 	#808000	 

-OliveDrab 	#6B8E23	 

-Orange 	#FFA500	 

-OrangeRed 	#FF4500	 

-Orchid 	#DA70D6	 

-PaleGoldenRod 	#EEE8AA	 

-PaleGreen 	#98FB98	 

-PaleTurquoise 	#AFEEEE	 

-PaleVioletRed 	#D87093	 

-PapayaWhip 	#FFEFD5	 

-PeachPuff 	#FFDAB9	 

-Peru 	#CD853F	 

-Pink 	#FFC0CB	 

-Plum 	#DDA0DD	 

-PowderBlue 	#B0E0E6	 

-Purple 	#800080	 

-Red 	#FF0000	 

-RosyBrown 	#BC8F8F	 

-RoyalBlue 	#4169E1	 

-SaddleBrown 	#8B4513	 

-Salmon 	#FA8072	 

-SandyBrown 	#F4A460	 

-SeaGreen 	#2E8B57	 

-SeaShell 	#FFF5EE	 

-Sienna 	#A0522D	 

-Silver 	#C0C0C0	 

-SkyBlue 	#87CEEB	 

-SlateBlue 	#6A5ACD	 

-SlateGray 	#708090	 

-Snow 	#FFFAFA	 

-SpringGreen 	#00FF7F	 

-SteelBlue 	#4682B4	 

-Tan 	#D2B48C	 

-Teal 	#008080	 

-Thistle 	#D8BFD8	 

-Tomato 	#FF6347	 

-Turquoise 	#40E0D0	 

-Violet 	#EE82EE	 

-Wheat 	#F5DEB3	 

-White 	#FFFFFF	 

-WhiteSmoke 	#F5F5F5	 

-Yellow 	#FFFF00	 

-YellowGreen 	#9ACD32
\ No newline at end of file
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/validation/AbstractValidationRule.java b/org.eclipse.xwt/src/org/eclipse/xwt/validation/AbstractValidationRule.java
deleted file mode 100644
index 17780bb..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/validation/AbstractValidationRule.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.validation;

-

-import org.eclipse.xwt.IValidationRule;

-

-/**

- * Abstract implementation of {@link IValidationRule}

- *

- * @author hceylan

- */

-public abstract class AbstractValidationRule implements IValidationRule {

-

-	/**

-	 *

-	 */

-	public AbstractValidationRule() {

-		super();

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.IValueValidator#getBindingMode()

-	 */

-	public Direction getBindingMode() {

-		return Direction.Both;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.IValueValidator#getPhase()

-	 */

-	public Phase getPhase() {

-		return Phase.AfterGet;

-	}

-

-}

diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/validation/InverseValidationRule.java b/org.eclipse.xwt/src/org/eclipse/xwt/validation/InverseValidationRule.java
deleted file mode 100644
index 149410b..0000000
--- a/org.eclipse.xwt/src/org/eclipse/xwt/validation/InverseValidationRule.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- * 

- * Contributors:

- *     Soyatec - initial API and implementation

- *******************************************************************************/

-package org.eclipse.xwt.validation;

-

-import org.eclipse.core.runtime.IStatus;

-import org.eclipse.xwt.IValidationRule;

-

-public class InverseValidationRule implements IValidationRule {

-

-	private final IValidationRule delegate;

-

-	public InverseValidationRule(IValidationRule delegate) {

-		super();

-

-		this.delegate = delegate;

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.IValueValidator#getBindingMode()

-	 */

-	public Direction getBindingMode() {

-		switch (delegate.getBindingMode()) {

-		case SourceToTarget:

-			return Direction.TargetToSource;

-		case TargetToSource:

-			return Direction.SourceToTarget;

-		case Both:

-		default:

-			return Direction.Both;

-		}

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.IValueValidator#getPhase()

-	 */

-	public Phase getPhase() {

-		return delegate.getPhase();

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.xwt.IValueValidator#validateBack(java.lang.Object)

-	 */

-	public IStatus validateBack(Object value) {

-		return delegate.validate(value);

-	}

-

-	/* (non-Javadoc)

-	 * @see org.eclipse.core.databinding.validation.IValidator#validate(java.lang.Object)

-	 */

-	public IStatus validate(Object value) {

-		return delegate.validateBack(value);

-	}

-

-}

diff --git a/org.eclipse.xwt.tools.ui.designer.core/.classpath b/plugins/org.eclipse.xwt.css/.classpath
old mode 100755
new mode 100644
similarity index 100%
copy from org.eclipse.xwt.tools.ui.designer.core/.classpath
copy to plugins/org.eclipse.xwt.css/.classpath
diff --git a/org.eclipse.xwt.css/.gitignore b/plugins/org.eclipse.xwt.css/.gitignore
similarity index 100%
rename from org.eclipse.xwt.css/.gitignore
rename to plugins/org.eclipse.xwt.css/.gitignore
diff --git a/plugins/org.eclipse.xwt.css/.project b/plugins/org.eclipse.xwt.css/.project
new file mode 100644
index 0000000..2c6fa28
--- /dev/null
+++ b/plugins/org.eclipse.xwt.css/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.xwt.css</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.xwt.css/META-INF/MANIFEST.MF b/plugins/org.eclipse.xwt.css/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..3870f4a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.css/META-INF/MANIFEST.MF
@@ -0,0 +1,13 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name.0
+Bundle-SymbolicName: org.eclipse.xwt.css
+Bundle-Version: 1.4.0.qualifier
+Require-Bundle: org.eclipse.xwt;bundle-version="0.9.0",
+ org.eclipse.swt;bundle-version="3.4.0",
+ org.eclipse.e4.ui.css.core;bundle-version="0.9.0",
+ org.w3c.css.sac;bundle-version="1.3.0"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.xwt.css
+Bundle-Vendor: Eclipse XWT
diff --git a/plugins/org.eclipse.xwt.css/OSGI-INF/l10n/bundle.properties b/plugins/org.eclipse.xwt.css/OSGI-INF/l10n/bundle.properties
new file mode 100644
index 0000000..db6b3de
--- /dev/null
+++ b/plugins/org.eclipse.xwt.css/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1,25 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+"******************************************************************************
+# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+# 
+# Contributors:
+#     Soyatec - initial API and implementation
+#******************************************************************************/
+Bundle-Name.0 = XWT CSS Plug-in
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.css/about.html b/plugins/org.eclipse.xwt.css/about.html
new file mode 100644
index 0000000..46a80b6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.css/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 5, 2006</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.css/build.properties b/plugins/org.eclipse.xwt.css/build.properties
new file mode 100644
index 0000000..fad0887
--- /dev/null
+++ b/plugins/org.eclipse.xwt.css/build.properties
@@ -0,0 +1,27 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               OSGI-INF/l10n/bundle.properties,\
+               about.html,\
+               notice.html
+src.includes = .classpath,\
+               .project,\
+               META-INF/,\
+               OSGI-INF/,\
+               about.html,\
+               build.properties,\
+               src/,\
+               notice.html
diff --git a/plugins/org.eclipse.xwt.css/notice.html b/plugins/org.eclipse.xwt.css/notice.html
new file mode 100644
index 0000000..2949b01
--- /dev/null
+++ b/plugins/org.eclipse.xwt.css/notice.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 9, 2014</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 2.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/plugins/org.eclipse.xwt.css/pom.xml b/plugins/org.eclipse.xwt.css/pom.xml
new file mode 100755
index 0000000..e45aa59
--- /dev/null
+++ b/plugins/org.eclipse.xwt.css/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-plugins</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt.css</artifactId>
+	<version>1.4.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+</project>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.css/src/org/eclipse/xwt/css/AbstractCSSStyle.java b/plugins/org.eclipse.xwt.css/src/org/eclipse/xwt/css/AbstractCSSStyle.java
new file mode 100644
index 0000000..fc65922
--- /dev/null
+++ b/plugins/org.eclipse.xwt.css/src/org/eclipse/xwt/css/AbstractCSSStyle.java
@@ -0,0 +1,223 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.css;
+
+import java.io.InputStream;
+import java.io.StringReader;
+import java.lang.reflect.Method;
+import java.net.URL;
+
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
+import org.eclipse.e4.ui.css.core.engine.CSSErrorHandler;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.xwt.IStyle;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+
+/**
+ * Base class for CSS Style.
+ * 
+ * @author yyang
+ * @author <a href="mailto:angelo.zerr@gmail.com">Angelo ZERR</a>
+ */
+public abstract class AbstractCSSStyle implements IStyle, CSSErrorHandler {
+	protected URL url;
+	protected String content;
+
+	private CSSEngine engine;
+	private Display display;
+
+	private Class<?> jfaceViewerClass;
+	private Method getControl;
+
+	public AbstractCSSStyle() {
+		this((String) null);
+	}
+
+	public AbstractCSSStyle(URL url) {
+		this.url = url;
+		init();
+	}
+
+	public AbstractCSSStyle(String content) {
+		this.content = content;
+		init();
+	}
+
+	public AbstractCSSStyle(CSSEngine engine) {
+		this.engine = engine;
+		init();
+	}
+
+	/**
+	 * Initialize class and method of JFace Viewer.
+	 * 
+	 */
+	private void init() {
+		try {
+			// FIXME : Yves, jfaceViewerClass and getControl, can be cached, or
+			// is it OSGI constraint?
+			jfaceViewerClass = Class
+					.forName("org.eclipse.jface.viewers.Viewer"); //$NON-NLS-1$
+			getControl = jfaceViewerClass.getMethod("getControl");
+		} catch (Throwable e) {
+		}
+	}
+
+	public void initializeIfNeed(Control control) {
+		Display display = control.getDisplay();
+		if (this.display != null && this.display == display) {
+			// CSS engine was already initalized, return.
+			return;
+
+		}
+		this.display = display;
+		try {
+			// Instantiate SWT CSS Engine
+			if (engine == null) {
+				// Search engine into Shell
+				engine = CSSXWT.getCSSEngine(control);
+				if (engine == null) {
+					// Create it and register it into Shell
+					engine = createCSSEngine(display);
+					CSSXWT.setCSSEngine(control.getShell(), engine);
+				}
+			}
+			engine.setErrorHandler(this);
+
+			// Load style sheet content
+			if (content != null) {
+				// Style sheet come from String content
+				engine.parseStyleSheet(new StringReader(content));
+			} else {
+				// Style sheet come from URL
+
+				// Get URL
+				Method urlResolver = null;
+				try {
+					Class<?> fileLocatorClass = loadClass("org.eclipse.core.runtime.FileLocator"); //$NON-NLS-1$
+					urlResolver = fileLocatorClass.getMethod(
+							"resolve", new Class[] { URL.class }); //$NON-NLS-1$
+				} catch (Throwable e) {
+				}
+
+				URL contentURL = url;
+				if (urlResolver != null) {
+					try {
+						contentURL = (URL) urlResolver.invoke(null,
+								new Object[] { contentURL });
+					} catch (Throwable e) {
+
+					}
+				}
+
+				// Parse style sheet
+				InputStream stream = contentURL.openStream();
+				engine.parseStyleSheet(stream);
+				stream.close();
+			}
+		} catch (Throwable e) {
+			System.err
+					.println("Warning - could not initialize CSS styling : " + e.toString()); //$NON-NLS-1$
+		}
+	}
+
+	public URL getUrl() {
+		return url;
+	}
+
+	public void setUrl(URL url) {
+		if (this.url == url || (this.url != null && this.url.equals(url))) {
+			return;
+		}
+		this.url = url;
+		reset();
+	}
+
+	public String getContent() {
+		return content;
+	}
+
+	public void setContent(String content) {
+		if (this.content == content
+				|| (this.content != null && this.content.equals(content))) {
+			return;
+		}
+		this.content = content;
+		reset();
+	}
+
+	protected void reset() {
+		display = null;
+		if (engine != null) {
+			engine.reset();
+			engine = null;
+		}
+	}
+
+	public void applyStyle(Object target) {
+		if (url == null && content == null && engine == null) {
+			return;
+		}
+
+		String name = XWT.getElementName(target);
+		Control control = null;
+		if (target instanceof Control) {
+			control = (Control) target;
+		} else if (getControl != null && jfaceViewerClass.isInstance(target)) {
+			try {
+				control = (Control) getControl.invoke(target);
+			} catch (Throwable e) {
+				throw new XWTException(e);
+			}
+		}
+		if (control != null) {
+			initializeIfNeed(control);
+			if (name != null) {
+				control.setData("org.eclipse.e4.ui.css.id", name);
+			}
+			try {
+				engine.applyStyles(control, false, true);
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+	}
+
+	public CSSEngine getEngine() {
+		return engine;
+	}
+
+	public void error(Exception e) {
+		throw new XWTException(e);
+	}
+
+	protected Class<?> loadClass(String className)
+			throws ClassNotFoundException {
+		try {
+			return Class.forName(className); //$NON-NLS-1$
+		} catch (ClassNotFoundException e) {
+			return Thread.currentThread().getContextClassLoader().loadClass(
+					className);
+		}
+	}
+
+	/**
+	 * Create CSS engine from {@link Display}.
+	 * 
+	 * @param display
+	 * @return
+	 */
+	protected abstract CSSEngine createCSSEngine(Display display);
+}
diff --git a/plugins/org.eclipse.xwt.css/src/org/eclipse/xwt/css/CSSEngineNotFoundException.java b/plugins/org.eclipse.xwt.css/src/org/eclipse/xwt/css/CSSEngineNotFoundException.java
new file mode 100644
index 0000000..ea590c3
--- /dev/null
+++ b/plugins/org.eclipse.xwt.css/src/org/eclipse/xwt/css/CSSEngineNotFoundException.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2009 Angelo Zerr and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Angelo Zerr <angelo.zerr@gmail.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.css;
+
+import org.eclipse.xwt.XWTException;
+
+/**
+ * Exception used when CSS Engine is not retrieved.
+ * 
+ * @author <a href="mailto:angelo.zerr@gmail.com">Angelo ZERR</a>
+ */
+public class CSSEngineNotFoundException extends XWTException {
+
+	public CSSEngineNotFoundException(Throwable throwable) {
+		super(throwable);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.css/src/org/eclipse/xwt/css/CSSHandler.java b/plugins/org.eclipse.xwt.css/src/org/eclipse/xwt/css/CSSHandler.java
new file mode 100644
index 0000000..7a4e4c8
--- /dev/null
+++ b/plugins/org.eclipse.xwt.css/src/org/eclipse/xwt/css/CSSHandler.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.css;
+
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.INamespaceHandler;
+
+public class CSSHandler implements INamespaceHandler {
+	public static final String NAMESPACE = "http://www.eclipse.org/css";
+	public static final CSSHandler handler = new CSSHandler();
+
+	public void handleAttribute(Widget widget, Object target, String name,
+			String value) {
+		widget.setData("org.eclipse.e4.ui.css." + name, value);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.css/src/org/eclipse/xwt/css/CSSStyle.java b/plugins/org.eclipse.xwt.css/src/org/eclipse/xwt/css/CSSStyle.java
new file mode 100644
index 0000000..5cf2cd9
--- /dev/null
+++ b/plugins/org.eclipse.xwt.css/src/org/eclipse/xwt/css/CSSStyle.java
@@ -0,0 +1,86 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.css;
+
+import java.lang.reflect.Constructor;
+import java.net.URL;
+
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
+import org.eclipse.swt.widgets.Display;
+
+/**
+ * This class handles the CSS style for XWT element. It can be used in two ways:
+ * <ol>
+ * <ul>
+ * 1. Global style<br/>
+ * XWT.addDefaultStyle()
+ * </ul>
+ * <ul>
+ * 2. Inline style
+ * 
+ * <pre>
+ * &lt;Composite&gt;
+ *   &lt;Composite.Resources&gt;
+ *     &lt;CSSStyle x:Key=&quot;style&quot; url=&quot;/test/style.css&quot;/&gt;
+ *   &lt;/Composite.Resources&gt;
+ *   &lt;Label text=&quot;Hello&quot;/&gt;
+ * &lt;/Composite&gt;
+ * </pre>
+ * 
+ * </ul>
+ * </ol>
+ * 
+ * @author yyang
+ * @author <a href="mailto:angelo.zerr@gmail.com">Angelo ZERR</a>
+ */
+public class CSSStyle extends AbstractCSSStyle {
+
+	public CSSStyle() {
+		super();
+	}
+
+	public CSSStyle(URL url) {
+		super(url);
+	}
+
+	public CSSStyle(String content) {
+		super(content);
+	}
+
+	public CSSStyle(CSSEngine engine) {
+		super(engine);
+	}
+
+	protected CSSEngine createCSSEngine(Display display) {
+		try {
+			Class<?> engineClass = getEngineClass();
+			Constructor<?> ctor = engineClass.getConstructor(new Class[] {
+					Display.class, Boolean.TYPE });
+			return (CSSEngine) ctor.newInstance(new Object[] { display,
+					Boolean.FALSE });
+		} catch (Throwable e) {
+			throw new CSSEngineNotFoundException(e);
+		}
+
+	}
+
+	private Class getEngineClass() throws ClassNotFoundException {
+		Class engineClass = null;
+		try {
+			engineClass = loadClass("org.eclipse.e4.ui.css.nebula.engine.CSSNebulaEngineImpl"); //$NON-NLS-1$
+		} catch (Throwable e) {
+			engineClass = loadClass("org.eclipse.e4.ui.css.swt.engine.CSSSWTEngineImpl"); //$NON-NLS-1$
+		}
+		return engineClass;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.css/src/org/eclipse/xwt/css/CSSXWT.java b/plugins/org.eclipse.xwt.css/src/org/eclipse/xwt/css/CSSXWT.java
new file mode 100644
index 0000000..c7c7ca1
--- /dev/null
+++ b/plugins/org.eclipse.xwt.css/src/org/eclipse/xwt/css/CSSXWT.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2009 Angelo Zerr and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Angelo Zerr <angelo.zerr@gmail.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.css;
+
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Widget;
+
+/**
+ * 
+ * Helper method for get CSS engine from SWT widgets.
+ * 
+ * @author <a href="mailto:angelo.zerr@gmail.com">Angelo ZERR</a>
+ * 
+ */
+public class CSSXWT {
+
+	private static final String CSSENGINE_KEY = "___CSSENGINE___";
+
+	public static CSSEngine getCSSEngine(Widget widget) {
+		// CSS engine is stored into Shell
+		if (widget instanceof Control) {
+			Shell shell = null;
+			if (widget instanceof Shell) {
+				shell = (Shell) widget;
+			} else {
+				shell = ((Control) widget).getShell();
+			}
+			return (CSSEngine) shell.getData(CSSENGINE_KEY);
+		}
+		return null;
+	}
+
+	public static void setCSSEngine(Shell shell, CSSEngine engine) {
+		shell.setData(CSSENGINE_KEY, engine);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.doc.user/.project b/plugins/org.eclipse.xwt.doc.user/.project
new file mode 100644
index 0000000..ac31b12
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/.project
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.xwt.doc.user</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.xwt.doc.user/META-INF/MANIFEST.MF b/plugins/org.eclipse.xwt.doc.user/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..8f66bc4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/META-INF/MANIFEST.MF
@@ -0,0 +1,7 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: XWT User Documentation
+Bundle-SymbolicName: org.eclipse.xwt.doc.user;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Require-Bundle: org.eclipse.help;bundle-version="3.3.100"
+Bundle-Vendor: Eclipse XWT
diff --git a/plugins/org.eclipse.xwt.doc.user/about.html b/plugins/org.eclipse.xwt.doc.user/about.html
new file mode 100644
index 0000000..46a80b6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/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 5, 2006</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.doc.user/about.ini b/plugins/org.eclipse.xwt.doc.user/about.ini
new file mode 100644
index 0000000..df1510b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/about.ini
@@ -0,0 +1,24 @@
+# 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=%blurb
+
+# Property "windowImage" contains path to window icon (16x16)
+# needed for primary features only
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=eclipse32.png
+
+# Property "aboutImage" contains path to product image (500x330 or 115x164)
+# needed for primary features only
+
+# Property "appName" contains name of the application (translated)
+# needed for primary features only
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+# optional
+
diff --git a/plugins/org.eclipse.xwt.doc.user/about.mappings b/plugins/org.eclipse.xwt.doc.user/about.mappings
new file mode 100644
index 0000000..bddaab4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/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=@build@
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.doc.user/about.properties b/plugins/org.eclipse.xwt.doc.user/about.properties
new file mode 100644
index 0000000..f083db4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/about.properties
@@ -0,0 +1,27 @@
+#*******************************************************************************
+# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+# 
+# Contributors:
+#     Soyatec - initial API and implementation
+#*******************************************************************************/
+###############################################################################
+# about.properties
+# contains externalized strings for about.ini
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# fill-ins are supplied by about.mappings
+# This file should be translated.
+
+blurb=Eclipse XWT user guide\n\
+\n\
+Version: {featureVersion}\n\
+Build id: {0}\n\
+\n\
+(c) Copyright Soyatec. and others 2000, 2016.  All rights reserved.\n\
+Visit http://www.eclipse.org/
+
diff --git a/plugins/org.eclipse.xwt.doc.user/book.css b/plugins/org.eclipse.xwt.doc.user/book.css
new file mode 100644
index 0000000..e8d4a64
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/book.css
@@ -0,0 +1,22 @@
+span.control {
+  font-weight: bold;
+}
+
+span.name {
+  font-style: italic;
+}
+
+span.code {
+  font-family: monospace;
+}
+
+p.nav_footer {
+	font-weight: bold;
+}
+
+p.nav_footer a {
+	font-weight: bold;
+	font-style: italic;
+}
+
+@import "code.css";
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/build.properties b/plugins/org.eclipse.xwt.doc.user/build.properties
similarity index 100%
rename from org.eclipse.xwt.doc.user/build.properties
rename to plugins/org.eclipse.xwt.doc.user/build.properties
diff --git a/plugins/org.eclipse.xwt.doc.user/code.css b/plugins/org.eclipse.xwt.doc.user/code.css
new file mode 100644
index 0000000..c350070
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/code.css
@@ -0,0 +1,233 @@
+body,h1,h2,h3,h4,h5,h6,p,table,td,caption,th,dl,li,dd,dt {
+	font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif;
+	font-size: 10pt;
+	color: black margin :   0px;
+	padding: 0px;
+	background: white
+}
+
+P.Code,pre.Code {
+	font-family: Courier New, Courier, monospace;
+	display: block;
+	text-align: left;
+	text-indent: 0.00pt;
+	margin-left: 15pt;
+	font-weight: medium;
+	font-style: Regular;
+	text-decoration: none;
+	vertical-align: baseline;
+	text-transform: none;
+}
+
+H6.CaptionFigColumn {
+	display: block;
+	text-align: left;
+	margin-top: 3pt;
+	margin-bottom: 11pt;
+	font-size: 9pt;
+	font-weight: medium;
+	font-style: Italic;
+	color: #000000;
+	text-decoration: none;
+	vertical-align: baseline;
+	text-transform: none;
+}
+
+P.Note,p.Note {
+	display: block;
+	text-align: left;
+	text-indent: 0pt;
+	margin-top: 20pt;
+	margin-bottom: 20pt;
+	margin-left: 30pt;
+	font-size: 11pt;
+	font-weight: medium;
+	font-style: Italic;
+	color: #000000;
+	text-decoration: none;
+	vertical-align: baseline;
+	text-transform: none;
+}
+
+EM.UILabel {
+	font-weight: Bold;
+	font-style: Regular;
+	text-decoration: none;
+	vertical-align: baseline;
+	text-transform: none;
+}
+
+EM.CodeName {
+	font-weight: Bold;
+	font-style: Regular;
+	text-decoration: none;
+	vertical-align: baseline;
+	text-transform: none;
+}
+
+pre {
+	margin-left: 6;
+	font-size: 10pt
+}
+
+h1 {
+	font-size: 18pt;
+	margin-top: 5;
+	margin-bottom: 1
+}
+
+h2 {
+	font-size: 14pt;
+	margin-top: 25;
+	margin-bottom: 3
+}
+
+h3 {
+	font-size: 11pt;
+	margin-top: 20;
+	margin-bottom: 3
+}
+
+h4 {
+	font-size: 10pt;
+	margin-top: 20;
+	margin-bottom: 3;
+	font-style: italic
+}
+
+a {
+	font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif;
+	font-weight: bold;
+	color: #003366;
+	text-decoration: none;
+}
+
+a:visited {
+	font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif;
+	font-weight: bold;
+	color: #003366;
+	text-decoration: none;
+}
+
+a:hover {
+	font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif;
+	font-weight: bold;
+	color: #116DF9;
+	text-decoration: none;
+}
+
+.XMLElementTag {
+	color: #339999;
+}
+
+.XMLAttrTag {
+	color: #800080;
+}
+
+.XMLAttrValue {
+	color: #0000CC;
+}
+
+.JavaKeyword {
+	font-weight: bold;
+	color: #7f0055;
+}
+
+.JavaComment {
+	color: #3f7f5f;
+}
+
+.JavaString {
+	color: #4444CC;
+}
+
+.JavaVariable {
+	color: #4444CC;
+}
+
+.JavaDoc {
+	color: #4444CC;
+}
+
+.JavaMember {
+	color: #0000c0;
+}
+
+.XMLTag {
+	color: #0000FF;
+}
+
+.XMLHead {
+	color: #A31515;
+}
+
+.XMLAttr {
+	color: #FF0033;
+}
+
+.XMLValue {
+	color: #0000FF;
+}
+
+.XMLComment {
+	color: #3F5F97;
+}
+
+.CSKeyword {
+	color: #0000FF;
+}
+
+.CSComment {
+	color: #008000;
+}
+
+.CSString {
+	color: #A31515;
+}
+
+strong {
+	font-weight: bold
+}
+
+em {
+	font-style: italic
+}
+
+var {
+	font-style: italic
+}
+
+div.revision {
+	border-left-style: solid;
+	border-left-width: thin;
+	border-left-color: #7B68EE;
+	padding-left: 5
+}
+
+th {
+	font-weight: bold
+}
+
+div.copyright {
+	margin-top: 3em
+}
+
+.Filename {
+	font-style: italic
+}
+
+.Label {
+	font-weight: bold
+}
+
+.Note {
+	font-style: italic
+}
+
+div.copyright img {
+	border-width: 0px
+}
+
+kbd {
+	font-weight: bold
+}
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/concepts/application_integration/images/mac-feature_07.png b/plugins/org.eclipse.xwt.doc.user/concepts/application_integration/images/mac-feature_07.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/concepts/application_integration/images/mac-feature_07.png
rename to plugins/org.eclipse.xwt.doc.user/concepts/application_integration/images/mac-feature_07.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/concepts/application_integration/images/mac-feature_10.png b/plugins/org.eclipse.xwt.doc.user/concepts/application_integration/images/mac-feature_10.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/concepts/application_integration/images/mac-feature_10.png
rename to plugins/org.eclipse.xwt.doc.user/concepts/application_integration/images/mac-feature_10.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/concepts/application_integration/images/mac-feature_20.png b/plugins/org.eclipse.xwt.doc.user/concepts/application_integration/images/mac-feature_20.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/concepts/application_integration/images/mac-feature_20.png
rename to plugins/org.eclipse.xwt.doc.user/concepts/application_integration/images/mac-feature_20.png
Binary files differ
diff --git a/plugins/org.eclipse.xwt.doc.user/concepts/application_integration/index.html b/plugins/org.eclipse.xwt.doc.user/concepts/application_integration/index.html
new file mode 100644
index 0000000..a5a1003
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/concepts/application_integration/index.html
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<link href="../../book.css" rel="stylesheet" type="text/css" />
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Application integration</title>
+</head>
+
+<body>
+<h1>Application Integration</h1>
+<p>Although XWT is bundled in e4, it is in fact designed, developed
+and tested in classic eclipse environment. It can be used in
+applications on top of SWT/Jface with or without eclipse platform. So
+the integration with standard SWT application is really straight
+forward.</p>
+
+<h2>Stand-alone Java application</h2>
+The module "org.eclipse.xwt" is the core engine of XWT. It depends
+only on SWT/JFace and JFace data binding. It can be used directly in any
+stand-alone Java application.
+
+<h2>Eclipse integration</h2>
+The plugin "org.eclipse.xwt.pde" takes over this bridge role between
+XWT and eclipse environment. It implements mainly all extensions points
+to extend XWT at the current stage, more integration facilities will be
+provided in next releases.
+
+<h2>Resource loading and UI creation</h2>
+
+<p>This paragraph explains the integration concept of XWT in an
+existing SWT application: how an existing classic SWT applications using
+XWT. XWT provides some APIs to load a UI component as a child of an
+existing Composite via the class XWT.</p>
+<p>The customized UI &quot;UserControl&quot; contains a Button with
+a selection event, that clicking the button changes the button content from
+'Hello, world' to 'OK'.</p>
+
+<p><img src="images/mac-feature_20.png" /></p>
+
+<p>XWT supports directly integrating user-defined SWT widgets in
+your declarative UI. <!-- 
+Now integrate the above example into a new XWT
+component directly. See the screenshot below.
+-->It's quite easy to implement in XWT XML. You need only to declare the
+application class path and name in the place where you want. See the
+example below, it using <tt>&lt;y:UserControl /&gt;</tt>, <tt>y</tt> is
+the class path specified in the root as <tt>xmlns:y =
+"clr-namespace:org.eclipse.xwt.test.usercontrol"</tt>.</p>
+<p><img src="images/mac-feature_10.png" /></p>
+
+<p>Run the Container application and click the button. Implicitly,
+UserControl application is invoked.</p>
+<p><img src="images/mac-feature_07.png" /></p>
+
+</body>
+<p><img src="../../cpy.png" /></p>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/concepts/component/images/component_01.png b/plugins/org.eclipse.xwt.doc.user/concepts/component/images/component_01.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/concepts/component/images/component_01.png
rename to plugins/org.eclipse.xwt.doc.user/concepts/component/images/component_01.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/concepts/component/images/component_02.png b/plugins/org.eclipse.xwt.doc.user/concepts/component/images/component_02.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/concepts/component/images/component_02.png
rename to plugins/org.eclipse.xwt.doc.user/concepts/component/images/component_02.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/concepts/component/images/component_03.png b/plugins/org.eclipse.xwt.doc.user/concepts/component/images/component_03.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/concepts/component/images/component_03.png
rename to plugins/org.eclipse.xwt.doc.user/concepts/component/images/component_03.png
Binary files differ
diff --git a/plugins/org.eclipse.xwt.doc.user/concepts/component/index.html b/plugins/org.eclipse.xwt.doc.user/concepts/component/index.html
new file mode 100644
index 0000000..a00ea17
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/concepts/component/index.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<link href="../../book.css" rel="stylesheet" type="text/css" />
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Component</title>
+</head>
+
+<body>
+<h1>Component</h1>
+<p>UI Component in XWT is not a simple UI widget such as Button,
+Label or List. It is in fact a <strong>Presentation</strong> <strong>unit</strong>
+that manages the ways of data display and edition. A UI Component is <strong>flexible</strong>
+and <strong>connectable</strong> software element, which is
+characterized at least by following aspects:</p>
+<ul>
+  <li>Independence </li>
+  <li>Reusable</li>
+  <li>Embeddable</li>
+</ul>
+<p>Precisely, a UI component is composed of three elements: UI
+Views, Presentation Data and Java controllers.</p>
+<ul>
+	<li>UI View<br />
+	UI View is UI controls defined in XWT XML, instead of low level SWT in
+	Java. It corresponds with a XML file.</li>
+	<li>Java controller<br />
+	It is a class associated to a UI View to handle UI events and it
+	handles the relationship between the Presentation data and the business
+	logic services.</li>
+	<li>Presentation Data<br />
+	It is the main information to manage by users via UI View and Java
+	controller.</li>
+</ul>
+
+<p>Hence, a component has an implicit &quot;data context&quot;
+comparing traditional UI framework.</p>
+<!-- 
+<p>In the following example, we create a simple component of Person.</p>
+ -->
+<p>The following example is a custom UI component.</p>
+
+<pre>
+<span class="XMLElementTag">&lt;j:PersonView</span> <span
+	class="XMLAttrTag">xmlns</span>=<span class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:j</span>=<span
+	class="XMLAttrValue">"clr-namespace:ui"</span><span
+	class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;j:PersonView.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;GridLayout</span> <span class="XMLAttrTag">numColumns</span>=<span
+	class="XMLAttrValue">"2"</span> <span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/j:PersonView.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span
+	class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"First name:"</span> <span
+	class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Text</span> <span
+	class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span
+	class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"Last name:"</span> <span
+	class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Text</span>  <span
+	class="XMLElementTag">/&gt;</span>
+<span class="XMLElementTag">&lt;/j:PersonView&gt;</span>
+</pre>
+
+<p>The component above defined two columns with each has a Label and
+a Text. It is a pure UI component. In XWT, the component can establish a
+connection with business logic using data binding. The contents of the
+Text can synchronized with binding target.</p>
+
+<pre>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span
+	class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"First name:"</span> <span
+	class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Text</span> <span
+	class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"{Binding Path=firstName}"</span> <span
+	class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span
+	class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"Last name:"</span> <span
+	class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Text</span> <span
+	class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"{Binding Path=lastName}"</span> <span
+	class="XMLElementTag">/&gt;</span>
+
+<!-- 
+<span class="XMLElementTag">&lt;Shell</span> <span class="XMLAttrTag">xmlns</span>=<span class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:x</span>=<span class="XMLAttrValue">"http://www.eclipse.org/xwt"</span> 
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:y</span>=<span class="XMLAttrValue">"clr-namespace:org.eclipse.xwt.tests.view"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">DataContext</span>=<span class="XMLAttrValue">"{StaticResource Data}"</span><span class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Shell.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;GridLayout</span> <span class="XMLAttrTag">numColumns</span>=<span class="XMLAttrValue">"2"</span> <span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Shell.layout&gt;</span>
+	
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;x:Shell.Resources&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;y:Person</span> <span class="XMLAttrTag">x:Key</span>=<span class="XMLAttrValue">"Data"</span><span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/x:Shell.Resources&gt;</span>
+	
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"First name:"</span> <span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Text</span> <span class="XMLAttrTag">x:Style</span>=<span class="XMLAttrValue">"BORDER"</span> <span class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"{Binding Path=firstName}"</span> <span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"Last name:"</span> <span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Text</span> <span class="XMLAttrTag">x:Style</span>=<span class="XMLAttrValue">"BORDER"</span> <span class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"{Binding Path=lastName}"</span> <span class="XMLElementTag">/&gt;</span>
+<span class="XMLElementTag">&lt;/Shell&gt;</span>
+-->
+</pre>
+
+<p>Implicitly, the dataContext this view is Person. The first Text
+binds to the property &quot;firstName&quot; and the second to
+&quot;lastName&quot;.</p>
+<p><image src="images/component_01.png" /></p>
+
+
+<h3>Independence, Reusable and Embeddable</h3>
+<p>UI component in XWT are independence, reusable and embeddable.
+The characters are correlative with each other. Independence is the
+necessary condition of reusable and embeddable, reusable and embeddable
+decide the component is independence. A defined UI component is like an
+unit, it can be reused in other applications or be embedded as a child
+in a new component.</p>
+<p>For example, we embed the above component into another View
+Component. First, create a new class named Company and then new a Person
+instance like the code below.</p>
+
+<pre>
+<span class="JavaKeyword">public class</span> Company {
+&nbsp;&nbsp;&nbsp;&nbsp;...
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="JavaKeyword">protected</span> String <span
+	class="JavaMember">name</span>;
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="JavaKeyword">protected</span> Person <span
+	class="JavaMember">manager</span> = <span class="JavaKeyword">new</span> Person();
+&nbsp;&nbsp;&nbsp;&nbsp;...
+}
+</pre>
+<!-- 
+<p>In the next, we create another View Component for Company, which
+reuses the component above. The PersonView is bounds to the property
+&quot;manager&quot; of the Company.</p>
+ -->
+<p>In XWT XML, put the PersonView component into a Group. Then put
+the Group on the place where you want.</p>
+
+<pre>
+<span class="XMLElementTag">&lt;j:CompanyView</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns</span>=<span
+	class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:x</span>=<span
+	class="XMLAttrValue">"http://www.eclipse.org/xwt"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:j</span>=<span
+	class="XMLAttrValue">"clr-namespace:org.eclipse.xwt.tests.view"</span><span
+	class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;j:CompanyView.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;GridLayout</span> <span class="XMLAttrTag">numColumns</span>=<span
+	class="XMLAttrValue">"2"</span><span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/j:CompanyView.layout&gt;</span>
+
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span
+	class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"Company name:"</span><span
+	class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Text</span> <span
+	class="XMLAttrTag">x:Style</span>=<span class="XMLAttrValue">"BORDER"</span> <span
+	class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"{Binding Path=name}"</span><span
+	class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span
+	class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"Manager:"</span><span
+	class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Group</span> <span
+	class="XMLAttrTag">text</span>=<span class="XMLAttrValue">"Person View:"</span><span
+	class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;Group.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;FillLayout/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;/Group.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;j:PersonView</span> <span class="XMLAttrTag">DataContext</span>=<span
+	class="XMLAttrValue">"{Binding Path=manager}"</span><span
+	class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Group&gt;</span>
+<span class="XMLElementTag">&lt;/j:CompanyView&gt;</span>
+</pre>
+
+<p>The UI views like below. The content in red pane is PersonView.</p>
+<p><image src="images/component_02.png" /></p>
+
+
+
+
+
+
+
+
+
+</body>
+<p><img src="../../cpy.png" /></p>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.doc.user/concepts/control_binding/index.html b/plugins/org.eclipse.xwt.doc.user/concepts/control_binding/index.html
new file mode 100644
index 0000000..cf3db76
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/concepts/control_binding/index.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<link href="../../book.css" rel="stylesheet" type="text/css" />
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Control Binding</title>
+</head>
+
+<body>
+<h1>Control Binding</h1>
+<p>XWT binding provides a simple and consistent way for application
+to present and interact with UI elements.</p>
+
+<ul>
+	<li><a href="#control_binding_01">What is Control Binding?</a></li>
+	<!--  
+	<li><a href="#control_binding_02">Basic Control Binding
+	Concepts</a></li>
+	-->
+	<li><a href="#control_binding_03">Creating a Control Binding</a></li>
+</ul>
+
+<h3><a name="control_binding_01"></a>What is Control Binding?</h3>
+
+<p>Control Binding is the mechanism to establish a connection
+between two UI controls. If the control binding has the correct
+settings, then when the property value of the target controls is
+changed, the controls are bound to the target control reflect changes
+automatically. For example, ***************sample***************.</p>
+
+<!-- 
+<p>Control Binding is the mechanism to establish a connection
+between two UI controls. Control Binding is different from Data Binding,
+Control Binding doesn't deal with the associated data. For example, if
+UI element 'A' is bound correctly to UI element 'B', then, when the UI
+'B' element change its property value, UI 'A' element changes
+automatically.</p>
+
+<h3><a name="control_binding_02"></a>Basic Control Binding Concepts</h3>
+<p>Control Binding also has four elements: a binding target object,
+a target property, a binding source and an ElementName path. For
+example, if you want to bind the width of button A to the button B, your
+target object is the button A, the target property is the 'Width'
+property, the value to use is the width of button B and the source
+object is the Button B.</p>
+ -->
+
+<h3><a name="control_binding_03"></a>Creating a Control Binding</h3>
+<p>In XWT, you establish a binding using the Binding object. This
+section discusses how to set up a control binding.</p>
+
+<p>There are four necessary components: binding target, target
+property, binding source, and a path to the source value to use.
+Consider the following example, <tt>Button1</tt> is the target object,
+the target property is the 'top' property, *****************.</p>
+
+<!-- 
+<pre>
+<span class="XMLElementTag">&lt;Shell</span> <span class="XMLAttrTag">xmlns</span>=<span
+	class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:x</span>=<span
+	class="XMLAttrValue">"http://www.eclipse.org/xwt"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">x:Class</span>=<span
+	class="XMLAttrValue">"org.eclipse.xwt.tests.layout.FormLayout_Test"</span><span
+	class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Shell.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;FormLayout /&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Shell.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Group</span> <span
+	class="XMLAttrTag">text</span>=<span class="XMLAttrValue">"layout"</span><span
+	class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;Group.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;FormLayout /&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;/Group.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;Group.layoutData&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;GridData</span> <span class="XMLAttrTag">horizontalAlignment</span>=<span
+	class="XMLAttrValue">"FILL"</span> <span class="XMLAttrTag">verticalAlignment</span>=<span
+	class="XMLAttrValue">"FILL"</span><span class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;/GridData&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;/Group.layoutData&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;Button</span> <span class="XMLAttrTag">x:Name</span>=<span
+	class="XMLAttrValue">"Button1"</span> <span class="XMLAttrTag">text</span>=<span
+	class="XMLAttrValue">"button1"</span><span class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;Button.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;FormData</span> <span class="XMLAttrTag">top</span>=<span
+	class="XMLAttrValue">"10, 10"</span> <span class="XMLAttrTag">left</span>=<span
+	class="XMLAttrValue">"0, 10"</span> <span class="XMLAttrTag">bottom</span>=<span
+	class="XMLAttrValue">"30, 0"</span> <span class="XMLAttrTag">right</span>=<span
+	class="XMLAttrValue">"40, 0"</span> <span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;/Button.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;/Button&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;Button</span> <span class="XMLAttrTag">text</span>=<span
+	class="XMLAttrValue">"button2"</span><span class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;Button.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;FormData</span> <span class="XMLAttrTag">top</span>=<span
+	class="XMLAttrValue">"{Binding ElementName=Button1}, 10"</span> <span
+	class="XMLAttrTag">left</span>=<span class="XMLAttrValue">"0, 0"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLAttrTag">bottom</span>=<span class="XMLAttrValue">"40, 0"</span> <span
+	class="XMLAttrTag">right</span>=<span class="XMLAttrValue">"40, 0"</span> <span
+	class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;/Button.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;/Button&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Group&gt;</span>
+<span class="XMLElementTag">&lt;/Shell&gt;</span>
+</pre>
+ -->
+
+<p>********code***********</p>
+
+<p>Notice that in the above example, in which the binding source
+object is Button1. There provide an ElementName property to specify the
+source object.</p>
+
+</body>
+<p><img src="../../cpy.png" /></p>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/concepts/databinding/images/databinding_01.png b/plugins/org.eclipse.xwt.doc.user/concepts/databinding/images/databinding_01.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/concepts/databinding/images/databinding_01.png
rename to plugins/org.eclipse.xwt.doc.user/concepts/databinding/images/databinding_01.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/concepts/databinding/images/databinding_02.png b/plugins/org.eclipse.xwt.doc.user/concepts/databinding/images/databinding_02.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/concepts/databinding/images/databinding_02.png
rename to plugins/org.eclipse.xwt.doc.user/concepts/databinding/images/databinding_02.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/concepts/databinding/images/mac-feature_22.png b/plugins/org.eclipse.xwt.doc.user/concepts/databinding/images/mac-feature_22.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/concepts/databinding/images/mac-feature_22.png
rename to plugins/org.eclipse.xwt.doc.user/concepts/databinding/images/mac-feature_22.png
Binary files differ
diff --git a/plugins/org.eclipse.xwt.doc.user/concepts/databinding/index.html b/plugins/org.eclipse.xwt.doc.user/concepts/databinding/index.html
new file mode 100644
index 0000000..8dbe518
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/concepts/databinding/index.html
@@ -0,0 +1,449 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<link href="../../book.css" rel="stylesheet" type="text/css" />
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Data Binding</title>
+</head>
+
+<body>
+<h1>Data Binding</h1>
+
+
+
+<p></p>
+
+<ul>
+	<li><a href="#databinding_01">What is Data Binding?</a></li>
+	<li><a href="#databinding_02">Basic Data Binding Concepts</a></li>
+	<li><a href="#databinding_03">Creating a Data Binding</a></li>
+	<li><a href="#databinding_04">Specifying the path expression
+	of data binding</a></li>
+	<!-- 
+	<li><a href="#databinding_05">Based on JFace Data binding</a></li>
+	 -->
+</ul>
+
+<h3><a name="databinding_01"></a>What is Data Binding?</h3>
+<p>Data Binding is the process that establishes a connection between
+the application UI and business logic. If the binding has the correct
+settings and the data provides the proper notifications, then, when the
+data changes its value, the elements bound to the data reflect
+changes automatically. Data binding can also mean that if an outer
+representation of the data in an element changes, then the underlying
+data can be automatically updated to reflect the change. For example, if
+the user edits the value in a Text element, the underlying data is
+automatically updated to reflect that change.</p>
+
+<p>A typical use of data binding is to place server or local
+configuration data into forms or other UI controls. In XWT, this concept
+is expanded to include the binding of a broad range of properties to a
+variety of data sources. In XWT, dependency properties of elements can
+be bound to CLR objects and XML data.</p>
+
+
+<h3><a name="databinding_02"></a>Basic Data Binding Concepts</h3>
+<p>Regardless of what element you are binding and the nature of your
+data source, each binding always follows the model illustrated by the
+following figure:</p>
+<p align="center"><img src="images/databinding_01.png" /></p>
+
+<p>As illustrated by the above figure, data binding is essentially
+the bridge between your binding target and your binding source. The
+figure demonstrates the following fundamental XWT data binding concepts.
+</p>
+<ul>
+	<li>Typically, each binding has these four components: a binding
+	target object, a target property, a binding source and a path to the
+	value in the binding source to use.</li>
+	<li>The target property must be a dependency property. Most
+	UIElement properties are dependency properties and most dependency
+	properties, except read-only ones, support data binding by default.</li>
+	<li>Although not specified in the figure, it should be noted that
+	the binding source object is not restricted to being a custom CLR
+	object. XWT data binding supports data in the form of CLR objects and
+	XML.</li>
+</ul>
+
+<p>It is important to remember that when you are establishing a
+binding, you are binding a binding target to a binding source. For
+example, if you are displaying some underlying XML data in a Text using
+data binding, you are binding your Text to the XML data.</p>
+
+<p>To establish a binding, you use the Binding object. The rest of
+this topic discusses many of the concepts associated with and some of
+the properties and usage of the Binding object.</p>
+
+<p><b>Direction of the Data Flow</b></p>
+<p>As mentioned previously and as indicated by the arrow in the
+figure above, the data flow of a binding can go from the binding target
+to the binding source or from the binding source to the binding target
+if the binding source provides the proper notifications.</p>
+
+<p>You may want your application to enable users to change the data
+and propagate it back to the source object. Or you may not want to
+enable users to update the source data. You can control this by setting
+the Mode property of your Binding object. XWT supports three ways to handle the 
+binding: <tt>One Way</tt>, <tt>One Time</tt> and <tt>Two Way</tt>.</p>
+
+<ul>
+	<li><tt>One Way</tt> binding causes changes to the source property
+	to automatically update the target property, but changes to the target
+	property are not propagated back to the source property. This type of
+	binding is appropriate if the control being bound is implicitly
+	read-only. For instance, you may bind to a source such as a stock
+	ticker or perhaps your target property has no control interface
+	provided for making changes, such as a data-bound background color of a
+	table. If there is no need to monitor the changes of the target
+	property, using the OneWay binding mode avoids the overhead of the
+	TwoWay binding mode.</li>
+
+	<li><tt>One Time</tt> bind causes changes to the source property
+	to the target property only at the startup, and any changes to the
+	source property are ignored once the control is filled with data the
+	first time.</li>
+
+	<li><tt>Two Way</tt> binding causes changes to either the source
+	property or the target property to automatically update the other. This
+	type of binding is appropriate for editable forms or other
+	fully-interactive UI scenarios. All properties default to <tt>TwoWay</tt>
+	binding.</li>
+
+</ul>
+
+<h3><a name="databinding_03"></a>Creating a Data Binding</h3>
+
+<p>In XWT project, you establish a data binding using the Binding
+object, and each binding usually has four components: binding target,
+target property, binding source, and a path to the source value to use.
+This section discusses how to set up a data binding.</p>
+
+<!-- 
+<p>First, create an XWT project named DataBinding, Creating UI like
+below.</p>
+
+<pre>
+<span class="XMLElementTag">&lt;Shell</span> <span class="XMLAttrTag">xmlns</span>=<span
+	class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:x</span>=<span
+	class="XMLAttrValue">"http://www.eclipse.org/xwt"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:y</span>=<span
+	class="XMLAttrValue">"clr-namespace:org.eclipse.xwt.tests.databinding"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">Size</span>=<span
+	class="XMLAttrValue">"400, 300"</span><span class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Shell.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;GridLayout</span> <span class="XMLAttrTag">numColumns</span>=<span
+	class="XMLAttrValue">"3"</span> <span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Shell.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span
+	class="XMLAttrTag">text</span>=<span class="XMLAttrValue">"Name"</span> <span
+	class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Text</span> <span
+	class="XMLAttrTag">x:style</span>=<span class="XMLAttrValue">"BORDER"</span><span
+	class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;Text.layoutData&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;GridData</span> <span class="XMLAttrTag">horizontalAlignment</span>=<span
+	class="XMLAttrValue">"FILL"</span> <span class="XMLAttrTag">grabExcessHorizontalSpace</span>=<span
+	class="XMLAttrValue">"true"</span> <span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Text.layoutData&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Text&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;Label.layoutData&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;GridData</span> <span class="XMLAttrTag">horizontalAlignment</span>=<span
+	class="XMLAttrValue">"FILL"</span> <span class="XMLAttrTag">grabExcessHorizontalSpace</span>=<span
+	class="XMLAttrValue">"true"</span> <span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Label.layoutData&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Label&gt;</span>
+<span class="XMLElementTag">&lt;/Shell&gt;</span>
+</pre>
+
+<p>The code shows the UI like the following presentation.</p>
+<p><img src="images/" /></p>
+
+
+<p>The next step, based on above code, enrich it like following.</p>
+
+ -->
+
+
+<pre>
+<span class="XMLElementTag">&lt;Shell</span> <span class="XMLAttrTag">xmlns</span>=<span
+	class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:x</span>=<span
+	class="XMLAttrValue">"http://www.eclipse.org/xwt"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:y</span>=<span
+	class="XMLAttrValue">"clr-namespace:org.eclipse.xwt.tests.databinding"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">Size</span>=<span
+	class="XMLAttrValue">"400, 300"</span> <span class="XMLAttrTag">DataContext</span>=<span
+	class="XMLAttrValue">"{StaticResource myData}"</span><span
+	class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Shell.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;GridLayout</span> <span class="XMLAttrTag">numColumns</span>=<span
+	class="XMLAttrValue">"3"</span> <span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Shell.layout&gt;</span>
+	
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;x:Shell.Resources&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;y:Person</span> <span class="XMLAttrTag">x:Key</span>=<span
+	class="XMLAttrValue">"myData"</span> <span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/x:Shell.Resources&gt;</span>
+	
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span
+	class="XMLAttrTag">text</span>=<span class="XMLAttrValue">"Name"</span> <span
+	class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Text</span> <span
+	class="XMLAttrTag">x:style</span>=<span class="XMLAttrValue">"BORDER"</span> <span
+	class="XMLAttrTag">text</span>=<span class="XMLAttrValue">"{Binding Path=name}"</span><span
+	class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;Text.layoutData&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;GridData</span> <span class="XMLAttrTag">horizontalAlignment</span>=<span
+	class="XMLAttrValue">"FILL"</span> <span class="XMLAttrTag">grabExcessHorizontalSpace</span>=<span
+	class="XMLAttrValue">"true"</span> <span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;/Text.layoutData&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Text&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span
+	class="XMLAttrTag">text</span>=<span class="XMLAttrValue">"{Binding Path=name}"</span><span
+	class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;Label.layoutData&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;GridData</span> <span class="XMLAttrTag">horizontalAlignment</span>=<span
+	class="XMLAttrValue">"FILL"</span> <span class="XMLAttrTag">grabExcessHorizontalSpace</span>=<span
+	class="XMLAttrValue">"true"</span> <span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;/Label.layoutData&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Label&gt;</span>
+<span class="XMLElementTag">&lt;/Shell&gt;</span>
+</pre>
+
+<p>Notice that in the previous example, the binding source is
+specified by setting the text property on the Text element. To
+reiterate, the binding source object is necessary components of a
+binding. Therefore, without the binding source object being specified,
+the binding would do nothing.</p>
+<p>we associate a new Person object in Shell to a key "myData" to a
+property initialization.</p>
+<pre>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;x:Shell.Resources&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;y:Person</span> <span class="XMLAttrTag">x:Key</span>=<span
+	class="XMLAttrValue">"myData"</span> <span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/x:Shell.Resources&gt;</span>
+</pre>
+
+<p>But you must define the DataContext first, then the data binding
+can works.</p>
+
+<pre>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">DataContext</span>=<span
+	class="XMLAttrValue">"{StaticResource myData}"</span>
+</pre>
+
+<p>In this example we specify the binding source by setting the
+source property directly on the binding declaration of Text and Label.
+There are several ways to specify the binding source object. Also can
+using one property on a parent element is useful when you are binding
+multiple properties to the same source.</p>
+
+<p>If your binding source is an object, you use the Path property to
+specify the value to use for your binding. If you are binding to XML
+data, you use the XPath property to specify the value. In some cases, it
+may be applicable to use the Path property event when your data is XML.</p>
+
+<p>Here we associate the property value of the Person object to Text
+and Label. So keep synchronously the value of Text and Label. Please see
+the following codes.</p>
+
+<pre>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Text</span> <span
+	class="XMLAttrTag">x:style</span>=<span class="XMLAttrValue">"BORDER"</span> <span
+	class="XMLAttrTag">text</span>=<span class="XMLAttrValue">"{Binding Path=name}"</span><span
+	class="XMLElementTag">&gt;</span>
+	
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span
+	class="XMLAttrTag">text</span>=<span class="XMLAttrValue">"{Binding Path=name}"</span><span
+	class="XMLElementTag">&gt;</span>
+</pre>
+
+<p>Notice that the Path value <tt>name</tt> is declared in the Person class.</p>
+
+<!--  
+<p>Click preview to view the UI or right click DataBinding.xwt,
+select 'Open dialog' to see UI. This code shows the string in Label
+binds the string of Text. When you change the string in Text, the
+content of Label changed synchronously.</p>
+<p><img src="images/" /></p>
+-->
+
+<h3><a name="databinding_04"></a>Specifying the path expression of
+data binding</h3>
+<p>Notice that in the previous example, the binding source is
+specified by setting the <tt>DataContext</tt> property on the Shell
+element. The Text and Label inherits the DataContext value from the
+Shell, which is its parent element. Here the binding path <tt>name</tt>
+is declared in the Person class. So the binding target can find the
+binding source directly. But in some case, the binding source is not the
+associated class, in XWT, there is a another solutions: specifying the
+path expression of the data binding.</p>
+
+<p>For example, in an application we associate a Company object in
+Shell to a key "myData".</p>
+
+<pre>
+<span class="XMLElementTag">&lt;Shell</span> 
+&nbsp;&nbsp;&nbsp;&nbsp;...
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">DataContext</span>=<span
+	class="XMLAttrValue">"{StaticResource myData}"</span><span
+	class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;...
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Shell.Resources&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;y:Company</span> <span class="XMLAttrTag">x:Key</span>=<span
+	class="XMLAttrValue">"myData"</span><span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Shell.Resources&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;...
+<span class="XMLElementTag">&lt;/Shell&gt;</span>
+</pre>
+
+<p>There are three object class: Company, Person and Address. The
+Address object contains a string city. And the <tt>address</tt> is
+initialized in Person constructor.</p>
+<p>Person:</p>
+<pre>
+<span class="JavaKeyword">public class</span> Person {
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="JavaKeyword">private</span> Address <span
+	class="JavaMember">address</span>;
+
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="JavaKeyword">public</span> Person() {
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="JavaMember">address</span> = <span
+	class="JavaKeyword">new</span> Address();
+&nbsp;&nbsp;&nbsp;&nbsp;}
+&nbsp;&nbsp;&nbsp;&nbsp;...
+}
+</pre>
+<p>In Company class, there instance a Person type variable <tt>manager</tt>.</p>
+<p>Company:</p>
+<pre>
+<span class="JavaKeyword">public class</span> Company {
+&nbsp;&nbsp;&nbsp;&nbsp;...
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="JavaKeyword">private</span> Person <span
+	class="JavaMember">manager</span> = <span class="JavaKeyword">new</span> Person();
+&nbsp;&nbsp;&nbsp;&nbsp;...
+}
+</pre>
+
+<p>Now, if the user wants to create a Text in Shell and bind the
+value to the city member, XWT supplies a simple way of path expression 
+to set in the Path property value of Binding as <tt>manager.address.city</tt>, See
+the code below.</p>
+
+<pre>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Text</span> <span
+	class="XMLAttrTag">x:style</span>=<span class="XMLAttrValue">"BORDER"</span> <span
+	class="XMLAttrTag">text</span>=<span class="XMLAttrValue">"{Binding Path=manager.address.city}"</span><span
+	class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;Text.layoutData&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;GridData</span> <span class="XMLAttrTag">horizontalAlignment</span>=<span
+	class="XMLAttrValue">"FILL"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLAttrTag">grabExcessHorizontalSpace</span>=<span
+	class="XMLAttrValue">"true"</span><span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;/Text.layoutData&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Text&gt;</span>
+</pre>
+<!-- 
+<p>In XWT, it also support path expression of data binding. If your
+binding source is an object, you can use the Path property to specify
+the value to use for your binding. For example, if you want binding the
+city of the manager of a company, which is the data context of the
+window. you can specify the path as "manager.address.city".</p>
+
+<p><img src="images/mac-feature_22.png" /></p>
+ -->
+
+<!-- 
+<h3>Binding to Collections</h3>
+
+<p>A binding source object can be treated either as a single object
+of which the properties contain data or as a data collection of
+polymorphic objects that are often grouped together (such as the result
+of a query to a database). So far we've only discussed binding to single
+objects, however, binding to a data collection is a common scenario. For
+example, a common scenario is to use an ItemsControl such as a
+ListViewer or TableViewer to display a data collection.</p>
+
+
+
+<h3><a name="databinding_05"></a>Based on JFace Data binding</h3>
+
+
+
+<pre>
+<span class="XMLElementTag">&lt;Composite</span> 
+&nbsp;&nbsp;&nbsp;&nbsp;...
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">DataContext</span>=<span
+	class="XMLAttrValue">"{StaticResource myCompany}"</span><span
+	class="XMLElementTag">&gt;</span> 
+&nbsp;&nbsp;&nbsp;&nbsp;...
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;x:Composite.Resources&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;j:Company</span> <span class="XMLAttrTag">x:Key</span>=<span
+	class="XMLAttrValue">"myCompany"</span><span class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;j:Company.employees&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;j:Employee</span> <span class="XMLAttrTag">Name</span>=<span
+	class="XMLAttrValue">"Thomas"</span> <span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;j:Employee</span> <span class="XMLAttrTag">Name</span>=<span
+	class="XMLAttrValue">"Jin"</span> <span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;/j:Company.employees&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;/j:Company&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/x:Composite.Resources&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;ListViewer</span> <span
+	class="XMLAttrTag">input</span>=<span class="XMLAttrValue">"{Binding Path=employees}"</span><span
+	class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/ListViewer&gt;</span>
+<span class="XMLElementTag">&lt;/Composite&gt;</span>
+</pre>
+ -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</body>
+<p><img src="../../cpy.png" /></p>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.doc.user/concepts/element_naming_and_finding/index.html b/plugins/org.eclipse.xwt.doc.user/concepts/element_naming_and_finding/index.html
new file mode 100644
index 0000000..1aebdd7
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/concepts/element_naming_and_finding/index.html
@@ -0,0 +1,163 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<link href="../../book.css" rel="stylesheet" type="text/css" />
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Element naming and finding</title>
+</head>
+
+<body>
+<h1>Naming and Element finding</h1>
+<p>Naming a UI component is used to find an element by a unique name
+in UI structure tree. This concept is used both in Java class by
+programming and in XML via Control Binding concept.</p>
+<p>The name must be in unique in a scope, named as &quot;Named
+scope&quot;. The named scope corresponds with an XWT resource file.</p>
+<h2>Finding in Java</h2>
+<p>XWT uses x:Name property or Name property to name a component.
+This section will show how to name an element and how to find an element
+by its name in Java class.</p>
+
+<p>In the example below, we will create a Label named Message and a
+Button.</p>
+<p>XAML:</p>
+
+<pre>
+<span class="XMLElementTag">&lt;Shell</span> <span class="XMLAttrTag">xmlns</span>=<span
+	class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:x</span>=<span
+	class="XMLAttrValue">"http://www.eclipse.org/xwt"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">x:Class</span>=<span
+	class="XMLAttrValue">"org.eclipse.xwt.tests.name.Name_x"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">text</span>=<span
+	class="XMLAttrValue">"NameT test"</span><span class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Shell.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;GridLayout</span> <span class="XMLAttrTag">numColumns</span>=<span
+	class="XMLAttrValue">"2"</span> <span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Shell.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span
+	class="XMLAttrTag">Name</span>=<span class="XMLAttrValue">"Message"</span> <span
+	class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Button</span> <span
+	class="XMLAttrTag">SelectionEvent</span>=<span class="XMLAttrValue">"handleButton"</span> <span
+	class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"Click Here"</span> <span
+	class="XMLElementTag">/&gt;</span>
+<span class="XMLElementTag">&lt;/Shell&gt;</span>
+</pre>
+
+<p>Consider the example above, the Label gets a name "Message", and
+set the contents of the button with string "Click Here". Then we add an
+event handling here by SelectionEvent property and named the event
+"handleButton". In the rendered window, when we click the button, the
+handleButton tries to find the Label. If it works, dialog "Name works"
+will pop-up. Otherwise, an error dialog "Label message is not found"
+will open instead. Please see the Java code below.</p>
+
+<p>Java:</p>
+<pre>
+<span class="JavaKeyword">protected void</span> handleButton(Event event) {
+&nbsp;&nbsp;&nbsp;&nbsp;Label message = (Label) XWT.findElementByName(event.widget, "Message");
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="JavaKeyword">if</span> (message == null) {
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageDialog.openError(XWT.findShell(event.<span
+	class="JavaMember">widget</span>), <span class="JavaString">"Test Name"</span>, <span
+	class="JavaString">"Label message is not found"</span>);
+&nbsp;&nbsp;&nbsp;&nbsp;} <span class="JavaKeyword">else</span> {
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageDialog.openInformation(XWT.findShell(event.<span
+	class="JavaMember">widget</span>), <span class="JavaString">"Test Name"</span>, <span
+	class="JavaString">"Name works."</span>);
+&nbsp;&nbsp;&nbsp;&nbsp;}
+}
+</pre>
+
+<p>The first argument of findElementByName() indicates the start
+point of search. Precisely, the search starts with its NamedScope. If
+the name is not find in the current NamedScope, the search will proceed
+in its parent NamedScope. The &quot;null&quot; will be returned if the
+name is not found in the entire tree structure.<br>
+</p>
+<h2>Element Finding</h2>
+<p>In XWT XML, an element also can be found by its name. It mostly
+used in control binding. Control binding is used to establish a
+connection among two or more UI elements.</p>
+
+<pre>
+<span class="XMLElementTag">&lt;Shell</span> <span class="XMLAttrTag">xmlns</span>=<span
+	class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:x</span>=<span
+	class="XMLAttrValue">"http://www.eclipse.org/xwt"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">x:Class</span>=<span
+	class="XMLAttrValue">"org.eclipse.xwt.tests.layout.FormLayout_Test"</span><span
+	class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Shell.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;FormLayout /&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Shell.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Group</span> <span
+	class="XMLAttrTag">text</span>=<span class="XMLAttrValue">"layout"</span><span
+	class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;Group.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;FormLayout /&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;/Group.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;Group.layoutData&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;GridData</span> <span class="XMLAttrTag">horizontalAlignment</span>=<span
+	class="XMLAttrValue">"FILL"</span> <span class="XMLAttrTag">verticalAlignment</span>=<span
+	class="XMLAttrValue">"FILL"</span><span class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;/GridData&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;/Group.layoutData&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;Button</span> <span class="XMLAttrTag">x:Name</span>=<span
+	class="XMLAttrValue">"Button1"</span> <span class="XMLAttrTag">text</span>=<span
+	class="XMLAttrValue">"button1"</span><span class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;Button.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;FormData</span> <span class="XMLAttrTag">top</span>=<span
+	class="XMLAttrValue">"10, 10"</span> <span class="XMLAttrTag">left</span>=<span
+	class="XMLAttrValue">"0, 10"</span> <span class="XMLAttrTag">bottom</span>=<span
+	class="XMLAttrValue">"30, 0"</span> <span class="XMLAttrTag">right</span>=<span
+	class="XMLAttrValue">"40, 0"</span> <span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;/Button.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;/Button&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;Button</span> <span class="XMLAttrTag">text</span>=<span
+	class="XMLAttrValue">"button2"</span><span class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;Button.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;FormData</span> <span class="XMLAttrTag">top</span>=<span
+	class="XMLAttrValue">"{Binding ElementName=Button1}, 10"</span> <span
+	class="XMLAttrTag">left</span>=<span class="XMLAttrValue">"0, 0"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLAttrTag">bottom</span>=<span class="XMLAttrValue">"40, 0"</span> <span
+	class="XMLAttrTag">right</span>=<span class="XMLAttrValue">"40, 0"</span> <span
+	class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;/Button.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;/Button&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Group&gt;</span>
+<span class="XMLElementTag">&lt;/Shell&gt;</span>
+</pre>
+
+<p>Consider the above example, it start to search from <tt>top="{Binding
+ElementName=Button1}</tt>, it try to find the element named <tt>Button1</tt>
+in the current NamedScope, if not found, the search will proceed in its
+parent NamedScope. If the element is exist in the tree structure and it
+has the correct settings. the <tt>top</tt> property of the second button
+synchronized with <tt>Button1</tt>, Or the code will show error.</p>
+
+
+</body>
+<p><img src="../../cpy.png" /></p>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/concepts/extensibility/images/mac-feature_10.png b/plugins/org.eclipse.xwt.doc.user/concepts/extensibility/images/mac-feature_10.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/concepts/extensibility/images/mac-feature_10.png
rename to plugins/org.eclipse.xwt.doc.user/concepts/extensibility/images/mac-feature_10.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/concepts/extensibility/images/mac-feature_20.png b/plugins/org.eclipse.xwt.doc.user/concepts/extensibility/images/mac-feature_20.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/concepts/extensibility/images/mac-feature_20.png
rename to plugins/org.eclipse.xwt.doc.user/concepts/extensibility/images/mac-feature_20.png
Binary files differ
diff --git a/plugins/org.eclipse.xwt.doc.user/concepts/extensibility/index.html b/plugins/org.eclipse.xwt.doc.user/concepts/extensibility/index.html
new file mode 100644
index 0000000..eef2aaa
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/concepts/extensibility/index.html
@@ -0,0 +1,129 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<link href="../../book.css" rel="stylesheet" type="text/css" />
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Extensibility</title>
+</head>
+
+<body>
+<h1>Extensibility</h1>
+<p>The following topic relate to extensibility in XWT. There are two
+types of extensibility: Support of new kind of user-defined UI element
+and Support register IMetaclass factory via API or EP.</p>
+
+<ul>
+	<li><b>User-defined UI Element</b>: The user-defined UI element
+	can be used directly in XWT when the customer respects the SWT standard
+	signature with two arguments: Composite/Widget parent and Style.</li>
+	<li><b>IMetaclass factory</b>: The IMetaclass factory is used to
+	create some special IMetaclass, which takes care of the UI creation.</li>
+</ul>
+
+<h3>User-defined UI Element</h3>
+<p>XWT support user-defined UI element which is extends from
+Composite class or other SWT class. The following is a user defined
+button.</p>
+<p>XWT XML:</p>
+<pre>
+<span class="XMLElementTag">&lt;j:UserControl</span> <span
+	class="XMLAttrTag">xmlns</span>=<span class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:x</span>=<span
+	class="XMLAttrValue">"http://www.eclipse.org/xwt"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:j</span>=<span
+	class="XMLAttrValue">"clr-namespace:org.eclipse.xwt.tests.usercontrol"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">x:Class</span>=<span
+	class="XMLAttrValue">"org.eclipse.xwt.tests.usercontrol.UserControl"</span><span
+	class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;...	
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Button</span> text="Hello, world" <span
+	class="XMLElementTag">/&gt;</span>
+<span class="XMLElementTag">&lt;/j:UserControl&gt;</span>
+</pre>
+
+<p>java:</p>
+
+<pre>
+<span class="JavaKeyword">public class</span> UserControl extends Composite {
+
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="JavaKeyword">public</span> UserControl(Composite parent, <span
+	class="JavaKeyword">int</span> style) {
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="JavaKeyword">super</span>(parent, style);
+&nbsp;&nbsp;&nbsp;&nbsp;}
+}
+</pre>
+
+<p>The defined element can be used directly in XWT. In XWT XML, only
+need to declare the application class path and name in the place where
+you want like the following code.</p>
+
+<!-- 
+<p>Please see the example below to show you the User-defined UI
+element. The customized UI &quot;UserControl&quot; contains a Button
+with a selection event.</p>
+
+<p><img src="images/mac-feature_20.png" /></p>
+
+<p>Now integrate the above example into a new XWT component
+directly. See the screenshot below.</p>
+<p><img src="images/mac-feature_10.png" /></p>
+ -->
+
+<pre>
+<span class="XMLElementTag">&lt;Composite</span> <span
+	class="XMLAttrTag">xmlns</span>=<span class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:x</span>=<span
+	class="XMLAttrValue">"http://www.eclipse.org/xwt"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:y</span>=<span
+	class="XMLAttrValue">"clr-namespace:org.eclipse.xwt.tests.usercontrol"</span><span
+	class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Composite.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;GridLayout</span> <span class="XMLAttrTag">numColumns</span>=<span
+	class="XMLAttrValue">"2"</span><span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Composite.layout&gt;</span>	
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;y:UserControl/&gt;</span>
+<span class="XMLElementTag">&lt;/Composite&gt;</span>
+</pre>
+
+<h3>IMetaclass factory</h3>
+<p>XWT provide another way to registrate user defined component:
+IMetaclass Factory. The IMetaclass factory is used to create some
+special IMetaclass, Metaclass class implement IMetaclass interface. User
+can define component by a special Metaclass. Compared with User-defined
+UI Element, these component no need to extends from any SWT class.</p>
+
+
+******************** Sample ********************
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</body>
+<p><img src="../../cpy.png" /></p>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/concepts/internationalization/images/i18n_04.png b/plugins/org.eclipse.xwt.doc.user/concepts/internationalization/images/i18n_04.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/concepts/internationalization/images/i18n_04.png
rename to plugins/org.eclipse.xwt.doc.user/concepts/internationalization/images/i18n_04.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/concepts/internationalization/images/i18n_05.png b/plugins/org.eclipse.xwt.doc.user/concepts/internationalization/images/i18n_05.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/concepts/internationalization/images/i18n_05.png
rename to plugins/org.eclipse.xwt.doc.user/concepts/internationalization/images/i18n_05.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/concepts/internationalization/images/i18n_06.png b/plugins/org.eclipse.xwt.doc.user/concepts/internationalization/images/i18n_06.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/concepts/internationalization/images/i18n_06.png
rename to plugins/org.eclipse.xwt.doc.user/concepts/internationalization/images/i18n_06.png
Binary files differ
diff --git a/plugins/org.eclipse.xwt.doc.user/concepts/internationalization/index.html b/plugins/org.eclipse.xwt.doc.user/concepts/internationalization/index.html
new file mode 100644
index 0000000..c3ef4c1
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/concepts/internationalization/index.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<link href="../../book.css" rel="stylesheet" type="text/css" />
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Internationalization</title>
+</head>
+
+<body>
+<h1>Internationalization</h1>
+<p>Internationalization is the process of making software that
+accommodates differences in language, culture and hardware.
+Internationalization presents users with a consistent look, feel and
+functionality across different language editions of a product.</p>
+
+<p>The XWT is internationalization support, in this section, we will
+move with an example to understand internationalization.</p>
+
+<p>First thing we will require for internationalization is a set of
+properties files. Each file contains a key/value pair for each message
+that you expect your application to present. The naming format for these
+files are <b>*.properties</b>.</p>
+<p><image src="images/i18n_05.png" /></p>
+
+<p>Besides, There need to a special java file for bind. The <b>BUNDLE_NAME</b>
+is a String type which specifies the path of the message.properties
+file. And also the key "title" in <b>*.Properties</b> file should be
+declaration here as String.</p>
+<p><image src="images/i18n_06.png" /></p>
+
+<p>The text of the button is specified as "x:Static
+java:Message.title". It bind to the value of title which defined in
+message.properties file.</p>
+<p><image src="images/i18n_04.png" /></p>
+
+</body>
+<p><img src="../../cpy.png" /></p>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.doc.user/concepts/markup_language/index.html b/plugins/org.eclipse.xwt.doc.user/concepts/markup_language/index.html
new file mode 100644
index 0000000..8a41510
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/concepts/markup_language/index.html
@@ -0,0 +1,333 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<link href="../../book.css" rel="stylesheet" type="text/css" />
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Markup-language</title>
+</head>
+
+<body>
+<h1>Markup language</h1>
+<p>Markup languages are designed for the processing, definition and
+presentation of text. XWT provides an Extensible UI Markup Language for
+declarative Eclipse application programming.</p>
+
+<ul>
+	<li><a href="#language_01">A Declarative language with Flow
+	Control Support</a></li>
+	<li><a href="#language_02">XWT Object Elements</a></li>
+	<li><a href="#language_03">Setting Properties</a></li>
+	<li><a href="#language_06">Reference Values and Markup
+	Extensions</li>
+	<li><a href="#language_07">Case and Whitespace</a></li>
+
+	<li><a href="#language_04">XWT Root Elements and XML
+	Namespaces</a></li>
+	<li><a href="#language_05">Events and XWT Code-behind</a></li>
+</ul>
+
+
+<h3><a name="language_01"></a>A Declarative language with Flow
+Control Support</h3>
+<p>XWT simplifies creating a UI for Java programming. You can create
+visible UI elements in the XWT declarative markup, and then separate the
+UI definition from the run-time logic by using code-behind files. The
+ability to mix code with markup in XWT is important because XML by
+itself is declarative, and does not really suggest a model for flow
+control.</p>
+
+<p>The following XWT example shows how markup is necessary to create
+a button as part of a UI.</p>
+
+<pre>
+<span class="XMLElementTag">&lt;Shell.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;GridLayout</span> <span
+	class="XMLAttrTag">numColumns</span>=<span class="XMLAttrValue">"1"</span> <span
+	class="XMLElementTag">/&gt;</span>
+<span class="XMLElementTag">&lt;/Shell.layout&gt;</span>
+<span class="XMLElementTag">&lt;Button</span> <span class="XMLAttrTag">text</span>=<span
+	class="XMLAttrValue">"Hello"</span> <span class="XMLElementTag">/&gt;</span>
+</pre>
+
+<h3><a name="language_02"></a> XWT Object Elements</h3>
+<p>XWT has a set of rules that map object elements into classes or
+structures, attributes into properties or events, and XML namespaces to
+Java packages.</p>
+
+<p>The preceding example specified two object elements: <span
+	class="XMLElementTag">&lt;GridLayout /&gt;</span> and <span
+	class="XMLElementTag">&lt;Button /&gt;</span>. The string <span
+	class="XMLElementTag">GridLayout</span> and <span class="XMLElementTag">Button</span>
+each map to the name of a class that is defined by XWT and is part of
+the XWT assemblies. When you specify an object element tag, you create
+an instruction for XWT processing to create a new instance of the named
+class when your XWT page is loaded. Each instance is created by calling
+the default constructor of the underlying class or structure and storing
+the result. To be usable as an object element in XWT, the class or
+structure must expose a public default (parameterless) constructor.</p>
+
+<h3><a name="language_03"></a>Setting Properties</h3>
+<p>Properties in XWT are set by setting properties on an object
+element, using a variety of possible syntaxes. Which syntaxes can be
+used for a given property will vary, based on the characteristics of the
+property that you are setting.</p>
+
+<p>By setting values of properties, you add features or
+characteristics to object element. The initial state of the underlying
+object instance for an object element is based on the default
+constructor behavior. Typically, your application will use something
+other than a completely default instance of any given object.</p>
+
+<p><b>Attribute Syntax</b></p>
+
+<p>In XWT, properties can often be expressed as attributes.
+Attribute syntax is the most streamlined property setting syntax and
+will be the most intuitive syntax to use for developers that have used
+markup languages in the past. For example, the following markup creates
+a button that with push style, as well as display text specified as <span
+	class="XMLAttrTag">test</span>.</p>
+
+<pre>
+<span class="XMLElementTag">&lt;Button</span> <span class="XMLAttrTag">x:style</span>=<span
+	class="XMLAttrValue">"PUSH"</span> <span class="XMLAttrTag">text</span>=<span
+	class="XMLAttrValue">"Hello, world!"</span> <span class="XMLElementTag">/&gt;</span>
+</pre>
+
+
+<p><b>Property Element Syntax</b></p>
+<p>For some properties of an object element, attribute syntax is not
+possible, because the object or information necessary to provide the
+property value cannot be adequately expressed as a simple string. For
+these cases, a different syntax known as property element syntax can be
+used. Property element syntax sets the referenced property of the
+containing element with the content of the tag. Generally, the content
+is an object of the type that the property takes as its value. The
+syntax for property element itself is &lt;TypeName.Property&gt;. After
+specifying content, you must close the property element with a closing
+tag just like any other element (with syntax
+&lt;/TypeName.Property&gt;). For properties where both attribute and
+property element syntax are supported, the two syntaxes generally have
+the same result, although subtleties such as whitespace handling can
+vary slightly between syntaxes. The following example is using property
+element syntax for <span class="XMLAttrTag">text</span> properties of
+the Button.</p>
+
+
+<pre>
+<span class="XMLElementTag">&lt;Button&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Button.text&gt;</span> 
+&nbsp;&nbsp;&nbsp;&nbsp;This is a Button
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Button.text&gt;</span>
+<span class="XMLElementTag">&lt;/Button&gt;</span>
+</pre>
+
+<h3><a name="language_06"></a>Reference Values and Markup
+Extensions</h3>
+<p>Markup extensions are an XWT concept. In attribute syntax, curly
+braces ({ and }) indicate a markup extension usage. This usage directs
+the XWT processing to escape from the general treatment of attribute
+values are either a literal string or directly string-convertible value.</p>
+
+<p>When properties take a reference type value, these properties
+will often require either property element syntax (which always creates
+a new instance) or an object reference through a markup extension. A
+markup extension usage can potentially return an existing instance, and
+thus can be more versatile or might incur less object overhead.</p>
+
+<p>When a markup extension is used to provide an attribute value,
+the attribute value should instead be provided by the logic within the
+backing class for the relevant markup extension. The most common markup
+extensions used in XWT application programming are <b>Binding</b>, used
+for data binding expressions and the resource reference <b>StaticResource</b>
+and <b>DynamicResource</b>. By using markup extension, you can use
+attribute syntax to provide reference values for properties even if that
+the property does not support an attribute syntax for direct object
+instantiation, or enable specific behavior that defers the general
+behavior of the requirement that XAML properties must be filled by
+values of the property's type.</p>
+
+<p>For instance, the following example sets the value of text
+property using attribute syntax. The text binds a Person class.</p>
+
+
+<pre>
+<span class="XMLElementTag">&lt;Shell</span> 
+&nbsp;&nbsp;&nbsp;&nbsp;...
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">DataContext</span>=<span
+	class="XMLAttrValue">"{StaticResource myData}"</span><span
+	class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;...
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;x:Shell.Resources&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;y:Person</span> <span class="XMLAttrTag">x:Key</span>=<span
+	class="XMLAttrValue">"myData"</span><span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/x:Shell.Resources&gt;</span>
+
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Text</span> <span
+	class="XMLAttrTag">x:style</span>=<span class="XMLAttrValue">"BORDER"</span> <span
+	class="XMLAttrTag">text</span>=<span class="XMLAttrValue">"{Binding Path=name}"</span><span
+	class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;Text.layoutData&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;GridData</span> <span class="XMLAttrTag">horizontalAlignment</span>=<span
+	class="XMLAttrValue">"FILL"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLAttrTag">grabExcessHorizontalSpace</span>=<span
+	class="XMLAttrValue">"true"</span><span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;/Text.layoutData&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Text&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;...
+<span class="XMLElementTag">&lt;/Shell&gt;</span>
+</pre>
+
+<h3><a name="language_07"></a>Case and Whitespace</h3>
+<p>XWT is in general case sensitive. Object elements and property elements must all be specified by using the proper case when
+compared by name to the underlying type in programming language, or to a member
+of a type. There is one exception for attribute name. The first letter and only the first letter of attribute name is not case-sensitive.</p>
+
+<p>The values for attributes are not always case sensitive. Case
+sensitivity for values will depend on the type converter behavior
+associated with the property that takes the value, or the property value
+type. For instance, properties that take Boolean type can take
+either true or True as equivalent values, but only because the default
+string type conversion for Boolean already permits these as equivalents.
+</p>
+
+<p>XWT processors and serializers will ignore or drop all
+non-significant whitespace, and will normalize any significant
+whitespace. This behavior is generally only of consequence when you
+specify strings within XWT content properties. In simplest terms, XWT
+converts space, line feed and tab characters into spaces and then
+preserves one space if found at either end of a contiguous string.</p>
+
+<h3><a name="language_04"></a>XWT Root Elements and XML Namespaces</h3>
+<p>An XWT file must have only one root element, in order to be both a
+well-formed XML file and a valid XWT file. Typically you should choose
+an element that is part of the application model. The following example
+shows the root element of a typical XWT file with the root element
+Composite.</p>
+
+
+<pre>
+<span class="XMLElementTag">&lt;Composite</span> <span
+	class="XMLAttrTag">xmlns</span>=<span class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:x</span>=<span
+	class="XMLAttrValue">"http://www.eclipse.org/xwt"</span><span
+	class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;...
+<span class="XMLElementTag">&lt;/Composite&gt;</span>
+</pre>
+
+<p>The root element also contains the attributes <b>xmlns</b> and <b>xmlns:x</b>.
+These attributes indicate to an XWT processor which XML namespaces
+contain the element definitions for elements that the markup will
+reference. The <b>xmlns</b> attribute specifically indicates the default
+XML namespace. Within the default XML namespace, object elements in the
+markup can be specified without a prefix. The default XML namespace is
+mapped to the namespace
+&quot;http://www.eclipse.org/xwt/presentation&quot;. The <b>xmlns:x</b>
+attribute indicates an additional XML namespace, which maps the XWT
+language namespace &quot;http://www.eclipse.org/xwt&quot;. Required
+language components defined by the XWT specification are prefixed by <b>x:</b>
+when referenced in the markup of a file with this mapping.</p>
+
+
+<p><b>The x:Prefix</b></p>
+<p>In the previous root element example, the prefix <b>x:</b> was
+used to map the XWT XML namespace
+&quot;http://www.eclipse.org/xwt&quot;. This <b>x:</b> prefix will be
+used to map the XWT XML namespace in the templates for projects. The <b>x:</b>prefix
+XML namespace contain several programming constructs that you will use
+quite frequently in your XWT. The following is a listing of the most
+common x:prefix namespace programming constructs you will use:</p>
+
+<ul>
+	<li>x:Key: Sets a unique key for each resource in a DataContext.</li>
+	<li>x:Class: Specifies the CLR namespace and class name for the
+	class that provides code-behind for an XWT page. You must have such a
+	class to support code-behind, and it is for this reason that you almost
+	always see x: mapped, even if there are no resources.</li>
+	<li>x:Name: Specifies a object name for the instance.</li>
+	<li>x:Null: <strong>null</strong> in Java.</li>
+	<li>x:Static: Enables a value reference that gets a static value
+	that is not otherwise an XWT-compatible property.</li>
+	<li>x:Type: Constructs a Type reference based on a type name.</li>
+	<li>x:Array: Provides general support for arrays of objects in
+	XWT.</li>
+	<li>x:Style: Specifies the type of a instance.</li>
+</ul>
+
+<h3><a name="language_05"></a>Events and XWT Code-behind</h3>
+<p>Most XWT applications consist of both markup and code-behind.
+Within a project, the XWT is written as .xwt file and a synchronized
+java class is used to write a code-behind file. When an XWT file is
+loaded, the location of the XWT code-behind file for each XWT page is
+identified by specifying a namespace and class as the x:Class attribute
+of the root element of the XWT page.</p>
+
+<p>In the examples so far, you have seen several buttons, but none
+of these buttons had any logical behavior associated with them yet. The
+primary application-level mechanism for adding a behavior for an object
+element is to use an existing event of the element class, and to write a
+specific handler for that event that is invoked when that event is
+raised at run time. The event name and the name of the handler to use
+are specified in the markup, whereas the code that implements your
+handler is defined in the code-behind.</p>
+
+<p>XWT:</p>
+<pre>
+<span class="XMLElementTag">&lt;Shell</span> <span class="XMLAttrTag">xmlns</span>=<span
+	class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:x</span>=<span
+	class="XMLAttrValue">"http://www.eclipse.org/xwt"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">x:Class</span>=<span
+	class="XMLAttrValue">"org.eclipse.xwt.tests.events.ButtonHandler"</span><span
+	class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Shell.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;GridLayout</span> <span class="XMLAttrTag">numColumns</span>=<span
+	class="XMLAttrValue">"2"</span><span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Shell.layout&gt;</span>	
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Button</span> <span
+	class="XMLAttrTag">text</span>=<span class="XMLAttrValue">"Hello, world"</span> <span
+	class="XMLAttrTag">SelectionEvent</span>=<span class="XMLAttrValue">"selection"</span><span
+	class="XMLElementTag">/&gt;</span>
+<span class="XMLElementTag">&lt;/Shell&gt;</span>
+</pre>
+
+<p>Java:</p>
+<pre>
+<span class="JavaKeyword">protected void</span> selection(Event event) {
+&nbsp;&nbsp;&nbsp;&nbsp;Button button = (Button) event.<span
+	class="JavaMember">widget</span>;
+&nbsp;&nbsp;&nbsp;&nbsp;button.setText(<span class="JavaString">"OK"</span>);
+}
+</pre>
+
+<p><b>Event Attribute Syntax</b></p>
+
+<p>When you specify behavior through events in markup, you typically
+use attribute syntax to attach handlers. The object element where the
+event attribute is specified becomes the instance that listens for the
+event and calls the handler. The name of the specific event you want to
+handle is the attribute name. The attribute value is the method name of
+the handler you will define. You must then provide the handler
+implementation in code-behind, with the handler being based on the
+delegate for that event.</p>
+
+
+
+
+
+
+
+
+
+
+
+</body>
+<p><img src="../../cpy.png" /></p>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/concepts/overview/images/XWTComponent.png b/plugins/org.eclipse.xwt.doc.user/concepts/overview/images/XWTComponent.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/concepts/overview/images/XWTComponent.png
rename to plugins/org.eclipse.xwt.doc.user/concepts/overview/images/XWTComponent.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/concepts/overview/images/XWTPosition.png b/plugins/org.eclipse.xwt.doc.user/concepts/overview/images/XWTPosition.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/concepts/overview/images/XWTPosition.png
rename to plugins/org.eclipse.xwt.doc.user/concepts/overview/images/XWTPosition.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/concepts/overview/images/architecture.png b/plugins/org.eclipse.xwt.doc.user/concepts/overview/images/architecture.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/concepts/overview/images/architecture.png
rename to plugins/org.eclipse.xwt.doc.user/concepts/overview/images/architecture.png
Binary files differ
diff --git a/plugins/org.eclipse.xwt.doc.user/concepts/overview/index.html b/plugins/org.eclipse.xwt.doc.user/concepts/overview/index.html
new file mode 100644
index 0000000..c01c017
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/concepts/overview/index.html
@@ -0,0 +1,82 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<link href="../../book.css" rel="stylesheet" type="text/css" />
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Project</title>
+</head>
+
+<body>
+<h1>Project</h1>
+
+<ul>
+	<li><a href="#project_01">What is XWT?</a></li>
+	<li><a href="#project_02">Benefices of XWT for eclipse</a></li>
+	<li><a href="#project_03">Architecture</a></li>
+</ul>
+
+<h3><a name="project_01"></a>What is XWT?</h3>
+<p>Declarative UI is a new programming paradigm, which is widely  used in Web application development. In Eclipse, UI development in Java is  the only proposed solution. This solution presents several drawbacks:</p>
+<ul>
+  <li>High technology pre-requisite as UI developer</li>
+  <li>Difficult to separate UI appearance and business logic</li>
+  <li>Poor reusability</li>
+  <li>Limitation of the dynamic UI support</li>
+  <li>Very hard to integrate with development tools </li>
+</ul>
+<p align="center"><img src="images/XWTPosition.png" width="800" height="435"></p>
+<p>XWT is designed specially for eclipse to resolve these  problems by providing a foundation infrastructure. It is a UI framework based on an extensible markup language for  application development in declarative programming paradism.
+  It adopts directly SWT/JFace UI model as XML serialization model. It uses in fact a direct mapping approach between  XML grammar and UI runtime libraries.</p>
+<p>XWT simplifies UI programming. You can create visible UI elements
+in the declarative XML markup with a physical separation of the UI
+definition from the run-time logic. An XML based declarative language is
+very intuitive for creating interfaces ranging from prototype to
+production, especially for people with a background in web design and
+technologies. Unlike most other markup languages, XWT directly
+represents the instantiation of managed objects.</p>
+<p align="center"><img src="images/XWTComponent.png" width="627" height="388"></p>
+<p>XWT is XML UI for eclipse.</p>
+<ul>
+	<li>XWT is a XML dialect</li>
+	<li>Designed for human-editable and tooling</li>
+	<li>Dynamic mapping with programming model</li>
+	<li>Complete declarative UI framework integrated natively with SWT/JFace</li>
+    <li>Powerful Declarative Data Binding solution on top of JFace data binding</li>
+    <li>Reusable data presentation component</li>
+</ul>
+
+<h3><a name="project_02"></a>Benefices of XWT for eclipse</h3>
+<p>The main benefices of XWT are following:</p>
+<ul>
+	<li>More human-readable and light-weight markup without ambiguity
+	between properties and child type</li>
+	<li>High Extensible</li>
+	<li>Well defined and complete specification</li>
+	<li>Mature and Generic Declarative UI solution</li>
+</ul>
+
+<h3><a name="project_03"></a>Architecture</h3>
+
+<div align="center"><img src="images/architecture.png" />
+  
+</div>
+<ul>
+	<li>SWT Model as XWT Model<br />
+	- This model comes from the JavaBean reflection and additional models
+	to enhance the limitations of SWT API.</li>
+	<li>This model can be changed to another</li>
+	<li>XWT provides more concepts on top of XML<br />
+	<ul>
+		<li>Resource separation between UI and Event handling</li>
+		<li>Dynamic mapping with UI Model and programming language</li>
+		<li>Resource management</li>
+		<li>Markup extensions</li>
+		<li>Binding expression language</li>
+	</ul>
+	</li>
+</ul>
+
+</body>
+<p><img src="../../cpy.png" /></p>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/concepts/style/images/mac-feature_11.png b/plugins/org.eclipse.xwt.doc.user/concepts/style/images/mac-feature_11.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/concepts/style/images/mac-feature_11.png
rename to plugins/org.eclipse.xwt.doc.user/concepts/style/images/mac-feature_11.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/concepts/style/images/mac-feature_13.png b/plugins/org.eclipse.xwt.doc.user/concepts/style/images/mac-feature_13.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/concepts/style/images/mac-feature_13.png
rename to plugins/org.eclipse.xwt.doc.user/concepts/style/images/mac-feature_13.png
Binary files differ
diff --git a/plugins/org.eclipse.xwt.doc.user/concepts/style/index.html b/plugins/org.eclipse.xwt.doc.user/concepts/style/index.html
new file mode 100644
index 0000000..d08b2aa
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/concepts/style/index.html
@@ -0,0 +1,129 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<link href="../../book.css" rel="stylesheet" type="text/css" />
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Style</title>
+</head>
+
+<body>
+<h1>Style</h1>
+
+<p>All the controls in XWT are support the feature "Style". By using
+styles, user can define a common appearance such as fonts, colors and
+images to a control.</p>
+
+<!--  
+<p>Style define the pieces that mark up a control respectively. All
+the control in XWT are support this feature. By using styles, you can
+modify the default values of properties that are set on the control to
+which the style is applied. For example, you can select a style object
+where you can define a common appearance such as fonts, colors and
+images.</p>
+-->
+
+<!-- 
+<p>These style properties can be overridden by the values that are
+set on the control itself. For example, if you set the background color
+to red in the style of a Label, the Label will appear red when it is
+drawn on the live display area.</p>
+
+<p><img src="images/mac-feature_11.png" /></p>
+ -->
+
+<p>The controls in XWT have a default style, users can change it by
+setting Style property. For example, we can set a Control's background
+red with the following code.</p>
+
+<!-- 
+<pre>
+<span class="XMLElementTag">&lt;Composite</span> <span
+	class="XMLAttrTag">xmlns</span>=<span class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:x</span>=<span
+	class="XMLAttrValue">"http://www.eclipse.org/xwt"</span><span
+	class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Composite.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;GridLayout</span> <span class="XMLAttrTag">numColumns</span>=<span
+	class="XMLAttrValue">"2"</span><span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Composite.layout&gt;</span>	
+	
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Composite.Resources&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;Style</span> <span class="XMLAttrTag">x:Key</span>=<span
+	class="XMLAttrValue">"myStyle"</span><span class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;Setter</span> <span class="XMLAttrTag">Property</span>=<span
+	class="XMLAttrValue">"Background"</span> <span class="XMLAttrTag">Value</span>=<span
+	class="XMLAttrValue">"Red"</span><span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;/Style&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Composite.Resources&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span
+	class="XMLAttrTag">Style</span>=<span class="XMLAttrValue">"{StaticResource myStyle}"</span> <span
+	class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"Hello"</span><span
+	class="XMLElementTag">/&gt;</span>
+<span class="XMLElementTag">&lt;/Composite&gt;</span>
+</pre>
+ -->
+<pre>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Composite.Resources&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;Style</span> <span class="XMLAttrTag">x:Key</span>=<span
+	class="XMLAttrValue">"myStyle"</span><span class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;Setter</span> <span class="XMLAttrTag">Property</span>=<span
+	class="XMLAttrValue">"Background"</span> <span class="XMLAttrTag">Value</span>=<span
+	class="XMLAttrValue">"Red"</span><span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;/Style&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Composite.Resources&gt;</span>
+</pre>
+
+<p>The above code is only the defined resource, can do nothing
+without controls. <tt>x:Key="myStyle"</tt> is used to define the
+Resourcekey for this requested resource. User can specifying the value
+of the ResourceKey property by using StaticeResource. There list a Label
+for example.</p>
+
+<pre>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Label</span> <span
+	class="XMLAttrTag">Style</span>=<span class="XMLAttrValue">"{StaticResource myStyle}"</span> <span
+	class="XMLAttrTag">Text</span>=<span class="XMLAttrValue">"Hello"</span><span
+	class="XMLElementTag">/&gt;</span>
+</pre>
+***************photos******************
+<p><img src="images/" /></p>
+
+<p>The Style feature also can be applied for the integrated
+applications. There is a little different from the above sample. In the
+above sample, Style resource is defined stand along with a key. Any
+controls can use it with the key. But here, the resource is bind to
+define the integrated applications.</p>
+
+<pre>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Composite.Resources&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Style</span> <span class="XMLAttrTag">TargetType</span>=<span class="XMLAttrValue">"{x:Type j:MyUserControl}"</span><span class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Setter</span> <span class="XMLAttrTag">Property</span>=<span class="XMLAttrValue">"Background"</span> <span class="XMLAttrTag">Value</span>=<span class="XMLAttrValue">"Red"</span><span class="XMLElementTag">/&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Style&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Composite.Resources&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;...
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;j:MyUserControl/&gt;</span>
+</pre>
+
+
+
+<p><img src="images/" /></p>
+<!-- 
+<p>Otherwise, it is possible to define a style for a specific type.
+It is applied to all UI elements of this type under the UI tree
+structure. For example, MyUserControl component is a Label with text
+"Hello, world". We can embed it into MyUserControl_default_x_Customized
+component with a style.</p>
+
+<p><img src="images/mac-feature_13.png" /></p>
+ -->
+</body>
+<p><img src="../../cpy.png" /></p>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/cpy.png b/plugins/org.eclipse.xwt.doc.user/cpy.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/cpy.png
rename to plugins/org.eclipse.xwt.doc.user/cpy.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/eclipse32.png b/plugins/org.eclipse.xwt.doc.user/eclipse32.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/eclipse32.png
rename to plugins/org.eclipse.xwt.doc.user/eclipse32.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/features/images/BindingMode1.PNG b/plugins/org.eclipse.xwt.doc.user/features/images/BindingMode1.PNG
similarity index 100%
rename from org.eclipse.xwt.doc.user/features/images/BindingMode1.PNG
rename to plugins/org.eclipse.xwt.doc.user/features/images/BindingMode1.PNG
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/features/images/BindingMode2.PNG b/plugins/org.eclipse.xwt.doc.user/features/images/BindingMode2.PNG
similarity index 100%
rename from org.eclipse.xwt.doc.user/features/images/BindingMode2.PNG
rename to plugins/org.eclipse.xwt.doc.user/features/images/BindingMode2.PNG
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/features/images/PersonDemo.png b/plugins/org.eclipse.xwt.doc.user/features/images/PersonDemo.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/features/images/PersonDemo.png
rename to plugins/org.eclipse.xwt.doc.user/features/images/PersonDemo.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/features/images/WidgetBinding1.png b/plugins/org.eclipse.xwt.doc.user/features/images/WidgetBinding1.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/features/images/WidgetBinding1.png
rename to plugins/org.eclipse.xwt.doc.user/features/images/WidgetBinding1.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/features/images/WidgetBinding2.png b/plugins/org.eclipse.xwt.doc.user/features/images/WidgetBinding2.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/features/images/WidgetBinding2.png
rename to plugins/org.eclipse.xwt.doc.user/features/images/WidgetBinding2.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/features/images/code.png b/plugins/org.eclipse.xwt.doc.user/features/images/code.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/features/images/code.png
rename to plugins/org.eclipse.xwt.doc.user/features/images/code.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/features/images/mac-feature_01.png b/plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_01.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/features/images/mac-feature_01.png
rename to plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_01.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/features/images/mac-feature_02.png b/plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_02.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/features/images/mac-feature_02.png
rename to plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_02.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/features/images/mac-feature_03.png b/plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_03.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/features/images/mac-feature_03.png
rename to plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_03.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/features/images/mac-feature_06.png b/plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_06.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/features/images/mac-feature_06.png
rename to plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_06.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/features/images/mac-feature_07.png b/plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_07.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/features/images/mac-feature_07.png
rename to plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_07.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/features/images/mac-feature_10.png b/plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_10.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/features/images/mac-feature_10.png
rename to plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_10.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/features/images/mac-feature_11.png b/plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_11.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/features/images/mac-feature_11.png
rename to plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_11.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/features/images/mac-feature_12.png b/plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_12.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/features/images/mac-feature_12.png
rename to plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_12.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/features/images/mac-feature_13.png b/plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_13.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/features/images/mac-feature_13.png
rename to plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_13.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/features/images/mac-feature_20.png b/plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_20.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/features/images/mac-feature_20.png
rename to plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_20.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/features/images/mac-feature_22.png b/plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_22.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/features/images/mac-feature_22.png
rename to plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_22.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/features/images/mac-feature_23.png b/plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_23.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/features/images/mac-feature_23.png
rename to plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_23.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/features/images/mac-feature_25.png b/plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_25.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/features/images/mac-feature_25.png
rename to plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_25.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/features/images/mac-feature_26.png b/plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_26.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/features/images/mac-feature_26.png
rename to plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_26.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/features/images/mac-feature_29.png b/plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_29.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/features/images/mac-feature_29.png
rename to plugins/org.eclipse.xwt.doc.user/features/images/mac-feature_29.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/features/images/wizard1.png b/plugins/org.eclipse.xwt.doc.user/features/images/wizard1.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/features/images/wizard1.png
rename to plugins/org.eclipse.xwt.doc.user/features/images/wizard1.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/features/images/wizard2.png b/plugins/org.eclipse.xwt.doc.user/features/images/wizard2.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/features/images/wizard2.png
rename to plugins/org.eclipse.xwt.doc.user/features/images/wizard2.png
Binary files differ
diff --git a/plugins/org.eclipse.xwt.doc.user/features/index.html b/plugins/org.eclipse.xwt.doc.user/features/index.html
new file mode 100644
index 0000000..a8478a3
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/features/index.html
@@ -0,0 +1,484 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<link href="../book.css" rel="stylesheet" type="text/css" />
+<style type="text/css">
+<!--
+.style1 {
+	color: #FF0000;
+	font-style: italic;
+	font-weight: bold;
+}
+-->
+</style>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Features</title>
+</head>
+
+<body>
+<h1>Features</h1>
+<p>The following is the new features of XWT.</p>
+<table border="0" width="80%" cellpadding="10" cellspacing="0">
+	<tr>
+		<td colspan="2">
+		<hr />
+		</td>
+	</tr>
+	<tr id="itemname1">
+		<td width="30%" valign="top" align="left">
+		<h3>XWT comes to e4</h3>
+		</td>
+		<td width="70%" valign="top">
+		<p>The XWT declarative widget framework has been added to the e4
+		incubator. XWT allows you to specify UI components declaratively, thus
+		separating the design and structure of your UI from specific
+		implementation details. Repetitive boilerplate SWT code is generated
+		automatically from the xml-based UI declaration, thus reducing
+		development cost, improving UI consistency, and opening the door to
+		skinning or otherwise customized rendering of an application.</p>
+
+		<p>XWT supports all standard SWT layouts such as FillLayout,
+		FormLayout, GridLayout, RowLayout, StackLayout. It also handles all
+		SWT events and an additional loaded event. The loaded event occurs
+		when the resource file is loaded, and is used by the control class for
+		the purpose of initialization. A convenience method <tt>InitializeComponent</tt>
+		can be used in your control class for the same purpose.</p>
+		</td>
+	</tr>
+
+
+	<!-- 
+	<tr>
+		<td colspan="2">
+		<hr />
+		</td>
+	</tr>
+	<tr id="itemname1">
+		<td width="30%" valign="top" align="left">
+		<h3>Support of all SWT widgets</h3>
+		</td>
+		<td width="70%" valign="top">
+		<p>The XWT supports all standard layouts such as FillLayout,
+		FormLayout, GridLayout, RowLayout, StackLayout.</p>
+		<p>It also handles all SWT events and two additional events
+		"Initialized" and "loaded". "Initialized" is the event occurs when the
+		UI is initialized and "Loaded" is the event occurs when the window or
+		page is load.</p>
+		</td>
+	</tr>
+ -->
+	<tr>
+		<td colspan="2">
+		<hr />
+		</td>
+	</tr>
+	<tr id="itemname2">
+		<td width="30%" valign="top" align="left">
+		<h3>Dynamic event handling</h3>
+		</td>
+		<td width="70%" valign="top">
+		<p>The association between UI widgets and your control class is
+		setup automatically during UI loading. In the following example, the
+		event <tt>SelectionEvent</tt> is handled by the method <tt>selection</tt>
+		of <tt>ButtonHandler</tt>.</p>
+		<p><img src="images/mac-feature_01.png" /></p>
+
+		<p>Here is the class implements the event handler.</p>
+		<p><img src="images/mac-feature_03.png" /></p>
+
+		<p>When click the button, the content be changed to "OK".</p>
+		<p><img src="images/mac-feature_07.png" /></p>
+		</td>
+	</tr>
+
+	<tr>
+		<td colspan="2">
+		<hr />
+		</td>
+	</tr>
+	<tr id="itemname3">
+		<td width="30%" valign="top" align="left">
+		<h3>Support for JFaces viewers</h3>
+		</td>
+		<td width="70%" valign="top">
+		<p>XWT supports JFace ListViewer and TableViewer. The following
+		Viewer binds to a Company object. The "input" data must be an array or
+		a collection.</p>
+		<p>Here is an example using ListViewer.</p>
+		<p><img src="images/mac-feature_06.png" /></p>
+
+		<p>Below is a TableViewer example with the definition of two table
+		columns.</p>
+		<p><img src="images/mac-feature_02.png" /></p>
+		</td>
+
+
+	</tr>
+
+	<tr>
+		<td colspan="2">
+		<hr />
+		</td>
+	</tr>
+	<tr id="itemname4">
+		<td width="30%" valign="top" align="left">
+		<h3>custom widget support</h3>
+		</td>
+		<td width="70%" valign="top">
+		<p>XWT supports directly integrating user-defined SWT widgets in
+		your declarative UI. In the following example, a customized <tt>UserControl</tt>
+		widget contains a button that responds to a selection event.</p>
+
+		<p><img src="images/mac-feature_20.png" /></p>
+
+		<p>Now we can integrate the custom control directly into a new XWT
+		component:</p>
+		<p><img src="images/mac-feature_10.png" /></p>
+
+		<p>Here is the result.</p>
+		<p><img src="images/mac-feature_07.png" /></p>
+		</td>
+	</tr>
+
+	<tr>
+		<td colspan="2">
+		<hr />
+		</td>
+	</tr>
+	<tr id="itemname5">
+		<td width="30%" valign="top" align="left">
+		<h3>Specifying and customizing style</h3>
+		</td>
+		<td width="70%" valign="top">
+		<p>All controls in XWT can have an additional <tt>style</tt>
+		property. This property specifies a style object that defines widget
+		properties such as fonts, colors and images.</p>
+		<p>In the following example, we define a style with a background
+		color of red, and apply it to a label control:</p>
+		<p><img src="images/mac-feature_11.png" /></p>
+		<p>You can also define a style for a specific widget type. It is
+		applied to all UI elements of this type under a given UI tree
+		structure.</p>
+
+		<p>In the following example, the MyUserControl component consists
+		of a Label with text "Hello, world". We embed it into a customized
+		component and declare a style to be applied to components of that
+		type.</p>
+
+		<p><img src="images/mac-feature_13.png" /></p>
+		<p>In addition to embedded XML-based style, XWT provides a
+		customizable styling mechanism. Styling can be applied at several
+		levels:</p>
+		<ul>
+			<li>Application</li>
+			<li>Resource view</li>
+			<li>UI element</li>
+		</ul>
+		<p>Integration with e4 CSS is already provided as one of the
+		standard styling solutions.</p>
+
+		</td>
+	</tr>
+
+
+	<tr>
+		<td colspan="2">
+		<hr />
+		</td>
+	</tr>
+	<tr>
+		<td width="30%" valign="top" align="left"><b>JFace data
+		binding support</b></td>
+		<td width="70%" valign="top">
+		<p>XWT directly supports JFace data bindings. Each node in the XWT
+		tree structure has a data context. If a node does not have a data
+		context specification, it inherits the data context of its parent. The
+		data binding expression relies on the data context of a node in the UI
+		tree.</p>
+		<p>In the example below, a JFace list viewer is bound to the set
+		of employees in a Company object.</p>
+
+		<p><img src="images/mac-feature_29.png" /></p>
+		</td>
+	</tr>
+	<tr>
+		<td colspan="2">
+		<hr />
+		</td>
+	</tr>
+	<!-- 
+	<tr>
+		<td width="30%" valign="top" align="left"><b>Data Binding and
+		Data context in tree node</b></td>
+		<td width="70%" valign="top">
+		<p>In XWT, each node in the UI tree structure has a data context.
+		If a node has not a data context specification, it inherits the data
+		context of his parent. The data binding expression in a property
+		relies on the data context of Node.</p>
+		<p>&nbsp;</p>
+		</td>
+	</tr>
+	<tr>
+		<td colspan="2">
+		<hr />
+		</td>
+	</tr>
+	 -->
+	<tr>
+		<td width="30%" valign="top" align="left"><b>Data binding
+		path expression support</b></td>
+		<td width="70%" valign="top">
+		<p>The presentation of data through references can be expressed in
+		path expression.</p>
+		<p>The following example will show the city of the manager of a
+		company, which is the data context of Window. The path is specified as
+		&quot;manager.address.city&quot;.</p>
+		<p><img src="images/mac-feature_22.png" /></p>
+		</td>
+	</tr>
+	<tr>
+		<td colspan="2">
+		<hr />
+		</td>
+	</tr>
+	<tr>
+		<td width="30%" valign="top" align="left"><b>Debug tracking</b></td>
+		<td width="70%" valign="top">
+		<p>Data binding requires a consistent configuration between the
+		data model, binding expression and UI structure. In real world
+		applications, this relationship quickly becomes complex and
+		trouble-shooting can be onerous without tooling support. XWT supports
+		an option to print out the UI element tree structure with the
+		associated data context and data binding expression. This option
+		facilitates identification and resolution of data binding bugs.</p>
+		<p>Take the example above, add an event button. Run the project.</p>
+		<p><img src="images/mac-feature_25.png" /></p>
+		<p>Click the button. The log is displayed in the Console.</p>
+		<p><img src="images/mac-feature_26.png" /></p>
+		</td>
+	</tr>
+
+	<tr>
+		<td colspan="2">
+		<hr />
+		</td>
+	</tr>
+	<tr id="itemname7">
+		<td width="30%" valign="top" align="left">
+		<h3>Command support for MenuItem and Button</h3>
+		</td>
+		<td width="70%" valign="top">
+		<p>A command is behavior associated with a widget selection event.
+		It is defined on <tt>Button</tt> and <tt>MenuItem</tt>, for example
+		the action "Open" or "Close" to open or close a window. Commands must
+		be registered programmatically with the framework:</p>
+		<p><tt>XWT.registerCommand(&quot;&lt;command's
+		name&gt;&quot;, aCommand)</tt></p>
+		<p>&nbsp;</p>
+		</td>
+	</tr>
+
+	<!-- 
+	<tr>
+		<td colspan="2">
+		<hr />
+		</td>
+	</tr>
+	<tr id="itemname8">
+		<td width="30%" valign="top" align="left">
+		<h3>Reusable UI Component</h3>
+		</td>
+		<td width="70%" valign="top">
+		<p>Reusable UI Component is a UI component that can be used
+		directly without modification and adaptation.</p>
+		</td>
+	</tr>
+
+
+	<tr>
+		<td colspan="2">
+		<hr />
+		</td>
+	</tr>
+	<tr id="itemname9">
+		<td width="30%" valign="top" align="left">
+		<h3>Key binding</h3>
+		</td>
+		<td width="70%" valign="top">
+		<p>The Key Binding specifies keyboard shortcuts for an action. In
+		XWT, it corresponds to the accelerator property of SWT.</p>
+		</td>
+	</tr>
+ -->
+	<tr>
+		<td colspan="2">
+		<hr />
+		</td>
+	</tr>
+
+
+	<tr id="itemname10">
+		<td width="30%" valign="top" align="left">
+		<h3>High extensibility</h3>
+		</td>
+		<td width="70%" valign="top"></td>
+	</tr>
+	<tr>
+		<td colspan="2">
+		<hr />
+		</td>
+	</tr>
+	<tr>
+		<td width="30%" valign="top" align="left"><b>&nbsp;&nbsp;&nbsp;&nbsp;Metaclass</b></td>
+		<td width="70%" valign="top">
+		<p>Metaclass is the converter between SWT and XWT XML. All the SWT
+		component is encapsulated as a Metaclass which is used to load the
+		.XWT files.</p>
+		</td>
+	</tr>
+	<tr>
+		<td colspan="2">
+		<hr />
+		</td>
+	</tr>
+	<tr>
+		<td width="30%" valign="top" align="left"><b>&nbsp;&nbsp;&nbsp;&nbsp;MetaclassFactory</b></td>
+		<td width="70%" valign="top">
+		<p>The IMetaclass factory is used to create some special
+		IMetaclass, which takes care of the UI creation.</p>
+		</td>
+	</tr>
+	<!-- 
+	<tr>
+		<td colspan="2">
+		<hr />
+		</td>
+	</tr>
+	<tr>
+		<td width="30%" valign="top" align="left"><b>&nbsp;&nbsp;&nbsp;&nbsp;Logger</b></td>
+		<td width="70%" valign="top"></td>
+	</tr>
+	<tr>
+		<td colspan="2">
+		<hr />
+		</td>
+	</tr>
+	<tr>
+		<td width="30%" valign="top" align="left"><b>&nbsp;&nbsp;&nbsp;&nbsp;Data Converter</b></td>
+		<td width="70%" valign="top"></td>
+	</tr>
+	<tr>
+		<td colspan="2">
+		<hr />
+		</td>
+	</tr>
+	<tr>
+		<td width="30%" valign="top" align="left"><b>&nbsp;&nbsp;&nbsp;&nbsp;Command</b></td>
+		<td width="70%" valign="top"></td>
+	</tr>
+	 -->
+	<tr>
+		<td colspan="2">
+		<hr />
+		</td>
+	</tr>
+
+
+	<tr id="itemname11">
+		<td width="30%" valign="top" align="left">
+		<h3>Internationalization</h3>
+		</td>
+		<td width="70%" valign="top">
+		<p>XWT includes simple internationalization support in the current
+		release.</p>
+		<p>In the example below, the content of the button is specified by
+		the "title" value of a messages.properties file.</p>
+		<p><img src="images/mac-feature_23.png" /></p>
+		</td>
+	</tr>
+
+  <tr>
+    <td colspan="2"><hr /></td>
+  </tr>
+
+<tr id="itemname10">
+		<td width="30%" valign="top" align="left">
+		<h1>M3</h1>
+		</td>
+		<td width="70%" valign="top"></td>
+	</tr>
+
+  <tr>
+    <td colspan="2"><hr />
+      <h2>XWT</h2>
+      <hr /></td>
+  </tr>
+  <tr id="itemname">
+    <td width="30%" valign="top" align="left"><b>Multilple Data Binding models</b></td>
+    <td width="70%" valign="top"><p>Data binding depends closely on a particular data model. For Java,         the first class data binding model is Java Beans, which is already supported in previous versions of XWT.         An enterprise application also deals with other data models such as XML, EMF Ecore, RDBMS,         Web services, etc. A flexible and customizable solution in XWT is absolutely necessary to support         all possible data models. </p>
+      <p>In M3, XWT introduces a new concept to handle some different types of data than Java POJOs.         This concept relies on the classes IDataProvider, IBindingContext and IDataBinding. Each data type         should implement these three types to integrate their data model with XWT's data binding engine.         The Java Bean data binding is mainly handled by the class ObjectDataProvider. </p>
+    <p>A new plugin "org.eclipse.xwt.xml" has been added to implement the XML data provider.</p>    </td>
+  </tr>
+  <tr>
+    <td colspan="2"><hr /></td>
+  </tr>
+  <tr id="itemname2">
+    <td width="30%" valign="top" align="left"><strong>Widget Binding</strong></td>
+    <td width="70%" valign="top"><p>Widget binding is a kind of data binding between UI Widgets.       In <a href="http://en.wikipedia.org/wiki/Model-view-controller">MVC</a> terms,       every widget can be used not only as a <em>view</em>, but also as <em>model</em>. Proper synchronization       between UI widgets provides a powerful declarative solution to simply handle dynamic       aspects of UI design and to get rid of bulky listeners in Java code. </p>
+      <p>This solution relies on the new features of JFace data binding for SWT.</p>
+      <p>The following code is used to bind the selection state of  two Buttons on the property "Selection". </p>
+      <p><img src="images/code.png" width="655" height="76" /></p>
+      <p align="center"><img src="images/WidgetBinding1.png" width="319" height="289" /></p>
+    <p align="left">The widgets in the left column are in sync with the respective widgets in the right column. </p>
+    <p align="center"><img src="images/WidgetBinding2.png" width="319" height="289" /></p>
+    <p>A single widget can also be bound to multiple widgets. In the above case,       the text of two Combo instances is synchronized with the "background"       and "foreground" of a Label. When the selection of either Combo changes,       the label appearance gets updated immediately. </p></td>
+  </tr>
+  <tr>
+    <td colspan="2"><hr/>    </td>
+  </tr>
+  <tr id="itemname3">
+    <td width="30%" valign="top" align="left"><b>Advanced UI Mediator wizard</b></td>
+    <td width="70%" valign="top"><p>Mediator is a new concept added to XWT in this milestone.       It is in fact a data Presentation Unit. It handles the interactions between users and        application data via graphic UI. It consists of up to four elements: </p>
+      <ul>
+        <li>View, graphic UI</li>
+        <li>Controller, the agent to deal with UI event and application logic</li>
+        <li>Data context, the type of data to show</li>
+        <li>Meta-model service, provides the structure of mediator</li>
+      </ul>
+      <p>Each mediator can be plugged in anywhere under the same kind of data context.</p>
+      <p>The wizard "UI Component" has been renamed to "UI Mediator". The wizard has be         improved to create a Mediator from a selected class, which is used as the data context.</p>
+      <p><img src="images/wizard1.png" width="600" height="442" />    
+    <p>
+    
+    <p align="center"><img src="images/wizard2.png" width="491" height="456" />        
+    <p align="justify">This wizard will create a mediator with three files: XML view, Java       controller and Meta-model service in Java, and it will generate the default content based on the data context model.    
+    <p align="justify">Here is an example of a person object with attributes: name, age, nationality and a reference address.    
+    <p align="center"><img src="images/PersonDemo.png" width="410" height="179" /></td>
+  </tr>
+  <tr>
+    <td colspan="2"><hr />    </td>
+  </tr>
+  <tr id="itemname4">
+   <td width="30%" valign="top" align="left"><b>Data binding direction</b></td>
+    <td width="70%" valign="top"><p>Data flow of a binding can go from the view to the  model (for example, the source value changes when a user edits  the value of a Text) and/or from the model to the view (for example, your Text field gets updated with changes in the model). Date flow is controlled by a property &quot;Mode&quot; of type enumeration BindingMode:</p>
+      <ul>
+        <li><b>TwoWay </b>Moves changes, from either the bound control or the source of the binding, to one other in a bi-directional way. (This is the default mode.)</li>
+        <li><b>OneWay</b> Moves changes only from the source to the control. As changes occur in the source, the bound control's data is changed.</li>
+        <li><b>OneTime</b> Data is bound only at startup, and changes to the source are ignored once the control is filled with data the first time.</li>
+     </ul>
+     <p>The following example shows how to set the Mode property.</p>
+     <p align="center"><img src="images/BindingMode1.png" width="649" height="332" />     
+     <p align="center"><img src="images/BindingMode3.png"  /> 
+     </td>
+  </tr>
+  <tr>
+    <td colspan="2"><hr />    </td>
+  </tr>
+  <tr>
+    <td colspan="2">&nbsp;</td>
+  </tr>
+</table>
+</body>
+<p><img src="../cpy.png" /></p>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/getting_started/Event_Handling/images/event_01.png b/plugins/org.eclipse.xwt.doc.user/getting_started/Event_Handling/images/event_01.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/getting_started/Event_Handling/images/event_01.png
rename to plugins/org.eclipse.xwt.doc.user/getting_started/Event_Handling/images/event_01.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/getting_started/Event_Handling/images/event_02.png b/plugins/org.eclipse.xwt.doc.user/getting_started/Event_Handling/images/event_02.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/getting_started/Event_Handling/images/event_02.png
rename to plugins/org.eclipse.xwt.doc.user/getting_started/Event_Handling/images/event_02.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/getting_started/Event_Handling/images/event_03.png b/plugins/org.eclipse.xwt.doc.user/getting_started/Event_Handling/images/event_03.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/getting_started/Event_Handling/images/event_03.png
rename to plugins/org.eclipse.xwt.doc.user/getting_started/Event_Handling/images/event_03.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/getting_started/Event_Handling/images/hello_08.png b/plugins/org.eclipse.xwt.doc.user/getting_started/Event_Handling/images/hello_08.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/getting_started/Event_Handling/images/hello_08.png
rename to plugins/org.eclipse.xwt.doc.user/getting_started/Event_Handling/images/hello_08.png
Binary files differ
diff --git a/plugins/org.eclipse.xwt.doc.user/getting_started/Event_Handling/index.html b/plugins/org.eclipse.xwt.doc.user/getting_started/Event_Handling/index.html
new file mode 100644
index 0000000..b81b271
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/getting_started/Event_Handling/index.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<link href="../../book.css" rel="stylesheet" type="text/css" />
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Event Handling</title>
+</head>
+
+<body>
+<h1>Event Handling</h1>
+<p>This example illustrates the key concept of XWT as markup declarative UI about the separation between UI appearance
+and event handling.</p>
+<p>Create an XWT project first (for more information, please see <a
+	href="..//hello_world/index.html">HelloWorld</a>), then new a button
+with text 'Click Me!'. The appearance is defined in XWT like below.</p>
+<pre class="code">
+<span class="XMLElementTag">&lt;Shell</span> <span class="XMLAttrTag">xmlns</span>=<span
+	class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>
+    <span class="XMLAttrTag">xmlns:x</span>=<span class="XMLAttrValue">"http://www.eclipse.org/xwt"</span>
+    <span class="XMLAttrTag">x:Class</span>=<span class="XMLAttrValue">"ui.EventHandler"</span><span
+	class="XMLElementTag">&gt;</span>
+    <span class="XMLElementTag">&lt;Shell.layout&gt;</span>
+       <span class="XMLElementTag">&lt;GridLayout/&gt;</span>
+    <span class="XMLElementTag">&lt;/Shell.layout&gt;</span>
+    <span class="XMLElementTag">&lt;Button</span> <span
+	class="XMLAttrTag">text</span>=<span class="XMLAttrValue">"Click Me!"</span><span
+	class="XMLElementTag">&gt;</span>
+    <span class="XMLElementTag">&lt;/Button&gt;</span>
+<span class="XMLElementTag">&lt;/Shell&gt;</span>
+</pre>
+
+<p>Save the file, and click <image src="images/hello_08.png" /> to
+view it. It running as below.</p>
+<image src="images/event_01.png" />
+
+<p>Next, we add an event handler to the button.</p>
+<pre>
+<span class="XMLElementTag">&lt;Button</span> <span class="XMLAttrTag">text</span>=<span
+	class="XMLAttrValue">"Hello, World!"</span> <span class="XMLAttrTag">SelectionEvent</span>=<span
+	class="XMLAttrValue">"clickButton"</span><span class="XMLElementTag">&gt;</span>
+</pre>
+<p>Focus on the event handler code and click <image
+	src="images/event_03.png" />, the corresponding java method will
+generate automatically. We can add event in the method directly.</p>
+
+<pre>
+<span class="JavaKeyWord">import</span> org.eclipse.swt.Event;
+<span class="JavaKeyWord">import</span> org.eclipse.swt.Button;
+
+<span class="JavaKeyWord">public class</span> EventHandler {
+	<span class="JavaKeyWord">public void</span> clickButton(Event event) {
+		Button button = (Button)event.<span class="JavaMember">widget</span>;
+		button.setText(<span class="JavaString">"Hello World!"</span>);
+	}
+}
+</pre>
+
+<p>Save the file and click <image src="images/hello_08.png" />. The
+view is rendered as following.</p>
+<image src="images/event_01.png" />
+<p>Click the button to invoke the method clickButton, the content of
+the button changes to 'Hello, World!'.</p>
+<image src="images/event_02.png" />
+
+
+</body>
+<p><img src="../../cpy.png" /></p>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/getting_started/hello_world/download/HelloWorld.zip b/plugins/org.eclipse.xwt.doc.user/getting_started/hello_world/download/HelloWorld.zip
similarity index 100%
rename from org.eclipse.xwt.doc.user/getting_started/hello_world/download/HelloWorld.zip
rename to plugins/org.eclipse.xwt.doc.user/getting_started/hello_world/download/HelloWorld.zip
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/getting_started/hello_world/image/hello_01.png b/plugins/org.eclipse.xwt.doc.user/getting_started/hello_world/image/hello_01.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/getting_started/hello_world/image/hello_01.png
rename to plugins/org.eclipse.xwt.doc.user/getting_started/hello_world/image/hello_01.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/getting_started/hello_world/image/hello_02.png b/plugins/org.eclipse.xwt.doc.user/getting_started/hello_world/image/hello_02.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/getting_started/hello_world/image/hello_02.png
rename to plugins/org.eclipse.xwt.doc.user/getting_started/hello_world/image/hello_02.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/getting_started/hello_world/image/hello_03.png b/plugins/org.eclipse.xwt.doc.user/getting_started/hello_world/image/hello_03.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/getting_started/hello_world/image/hello_03.png
rename to plugins/org.eclipse.xwt.doc.user/getting_started/hello_world/image/hello_03.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/getting_started/hello_world/image/hello_04.png b/plugins/org.eclipse.xwt.doc.user/getting_started/hello_world/image/hello_04.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/getting_started/hello_world/image/hello_04.png
rename to plugins/org.eclipse.xwt.doc.user/getting_started/hello_world/image/hello_04.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/getting_started/hello_world/image/hello_08.png b/plugins/org.eclipse.xwt.doc.user/getting_started/hello_world/image/hello_08.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/getting_started/hello_world/image/hello_08.png
rename to plugins/org.eclipse.xwt.doc.user/getting_started/hello_world/image/hello_08.png
Binary files differ
diff --git a/plugins/org.eclipse.xwt.doc.user/getting_started/hello_world/index.html b/plugins/org.eclipse.xwt.doc.user/getting_started/hello_world/index.html
new file mode 100644
index 0000000..429084a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/getting_started/hello_world/index.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<link href="../../book.css" rel="stylesheet" type="text/css" />
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Hello World</title>
+</head>
+
+<body>
+<h1>Hello World</h1>
+
+<p>In this topic will show you how to get started with XWT by
+developing a "Hello World" step by step.</p>
+
+<ul>
+	<li><a href="#hello_01">How to create a Mediator</a></li>
+	<li><a href="#hello_02">How to use XWT editor to develop UI
+	appearance</a></li>
+	<li><a href="#hello_03">How to load and open the Mediator
+	in API</a></li>
+	<li><a href="#hello_04">Download</a></li>
+</ul>
+
+<h3><a name="hello_01"></a>How to create a Mediator</h3>
+<p>First of all, we need to create a Java project to host our
+application. If there is already one, you can reuse it without any
+additional configuration. In this sample, we name our Java project
+"Hello".</p>
+
+<p>Then, right click the Java project, select
+the context menu New &rarr; Other... &rarr; XWT &rarr; New Mediator and click Next button.</p>
+<p align="center"><image src="image/hello_01.png" /></p>
+
+<p>In the pop-up dialog, fill the Package as 'demo' and Name as
+'Hello'.</p>
+<p align="center"><image src="image/hello_02.png" /></p>
+
+<p>Click the Finish button. We create a Mediator which consists of the two files: </p>
+<ul>
+  <li>Hello.xwt</li>
+  <li>Hello.java</li>
+</ul>
+<p>The Hello.xwt is a UI resource file, and Hello.java is the associated Java class to handle relative events. </p>
+<p>Now our project looks like below.</p>
+<p align="center"><image src="image/hello_03.png" /></p>
+
+
+<h3><a name="hello_02"></a>How to use XWT editor to develop UI
+appearance</h3>
+<p>Open Hello.xwt file, switch on the &ldquo;Source&rdquo; mode edition in the XWT  UI editor to modify directly the XML code. This editor provides a  powerful code completion and palette tools to help the UI design. </p>
+
+<p>Modify the XWT code as below:</p>
+<pre>
+<span class="XMLElementTag">&lt;Composite</span> <span
+	class="XMLAttrTag">xmlns</span>=<span class="XMLAttrValue">"http://www.eclipse.org/xwt/presentation"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">xmlns:x</span>=<span
+	class="XMLAttrValue">"http://www.eclipse.org/xwt"</span> <span
+	class="XMLAttrTag">xmlns:j</span>=<span class="XMLAttrValue">"clr-namespace:demo"</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLAttrTag">x:Class</span>=<span
+	class="XMLAttrValue">"demo.Hello"</span><span class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Composite.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="XMLElementTag">&lt;FillLayout /&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Composite.layout&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;Button</span> <span
+	class="XMLAttrTag">text</span>=<span class="XMLAttrValue">"Hello, world!"</span><span
+	class="XMLElementTag">&gt;</span>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="XMLElementTag">&lt;/Button&gt;</span>
+<span class="XMLElementTag">&lt;/Composite&gt;</span>
+</pre>
+
+<p>If you are a SWT developer, you can find the mapping from XML to SWT  library is direct 1-1. It gives the result as the corresponding code in  Java:</p>
+<pre>Composite composite = <span class="JavaKeyword">new</span> Composite(parent, SWT.NONE);
+composite.addLayout(<span class="JavaKeyword">new</span> FillLayout());
+Button button = <span class="JavaKeyword">new</span> Button(composite, SWT.NONE);
+button.setText(<span class="JavaString">"Hello, world!"</span>);
+</pre>
+<p>Save the file, and click <image src="image/hello_08.png" /> to
+view it. It running as below.</p>
+<image src="image/hello_04.png" />
+
+<h3><a name="hello_03"></a>How to load and open the Mediator in
+API</h3>
+<p>The load and open a Mediator in API is pretty straightforward.  We need call the services of the class XWT: load() or open() . </p>
+<p>Create a new Java class named &lsquo;Application&rsquo; with main method and you  can use the following codes to load and open our Mediator.</p>
+<pre>
+<span class="JavaKeyword">public class</span> Application {
+
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="JavaKeyword">public static void</span> main(String[] argus){
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;URI content = Hello.class.getResource("Hello.xwt");
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Shell shell = XWT.load(content).getShell();
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.pack();
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.open();
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="JavaKeyword">while</span> (!shell.isDisposed()) {
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
+	class="JavaKeyword">if</span> (!shell.getDisplay().readAndDispatch()) {
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.getDisplay().sleep();
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
+&nbsp;&nbsp;&nbsp;&nbsp;}
+}
+</pre>
+<p>Or simply </p>
+<pre><span class="JavaKeyword">public</span> <span class="JavaKeyword">class</span> Application {
+    <span class="JavaKeyword">public</span> <span class="JavaKeyword">static</span> <span class="JavaKeyword">void</span> main(String[] argus){
+        URI content = Hello.class.getResource(<span class="JavaString">"Hello.xwt"</span>);
+        <span class="JavaKeyword">try</span> {
+              XWT.open(content);
+        } <span class="JavaKeyword">catch</span> (Exception e) {
+              e.printStackTrace();
+        }
+    }
+}  </pre>
+<!-- 
+<p>Running the class and will get the following button.</p>
+<image src="image/hello_09.png" />
+ -->
+<h3><a name="hello_04"></a>Download</h3>
+<p>This is the "HelloWorld" project, please click <a
+	href="download/HelloWorld.zip">here</a> for download.</p>
+
+</body>
+<p><img src="../../cpy.png" /></p>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/allclasses-frame.html b/plugins/org.eclipse.xwt.doc.user/javadoc/allclasses-frame.html
new file mode 100644
index 0000000..7a5ab38
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/allclasses-frame.html
@@ -0,0 +1,80 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:38 CET 2009 -->
+<TITLE>
+All Classes
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B>All Classes</B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input" target="classFrame"><I>CanExecuteChangedListener</I></A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input" target="classFrame">CommandBinding</A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata" target="classFrame"><I>IBehavior</I></A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input" target="classFrame"><I>ICommand</I></A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt" target="classFrame"><I>IConstants</I></A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/IDataBindingProvider.html" title="interface in org.eclipse.xwt" target="classFrame"><I>IDataBindingProvider</I></A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata" target="classFrame"><I>IEvent</I></A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt" target="classFrame"><I>ILoadData</I></A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt" target="classFrame"><I>ILoadingContext</I></A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt" target="classFrame"><I>ILogger</I></A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata" target="classFrame"><I>IMetaclass</I></A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt" target="classFrame"><I>IMetaclassFactory</I></A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input" target="classFrame">InputBinding</A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata" target="classFrame"><I>IProperty</I></A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata" target="classFrame"><I>ISetPostAction</I></A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input" target="classFrame">KeyBinding</A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input" target="classFrame">KeyGesture</A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input" target="classFrame">ModifierKeys</A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input" target="classFrame">MouseAction</A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input" target="classFrame">MouseBinding</A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt" target="classFrame">ResourceDictionary</A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input" target="classFrame">RoutedCommand</A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt" target="classFrame">Tracking</A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt" target="classFrame">XWT</A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt" target="classFrame">XWTException</A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt" target="classFrame">XWTMaps</A>
+<BR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/allclasses-noframe.html b/plugins/org.eclipse.xwt.doc.user/javadoc/allclasses-noframe.html
new file mode 100644
index 0000000..93aaa8a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/allclasses-noframe.html
@@ -0,0 +1,80 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:38 CET 2009 -->
+<TITLE>
+All Classes
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B>All Classes</B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input"><I>CanExecuteChangedListener</I></A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input">CommandBinding</A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata"><I>IBehavior</I></A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input"><I>ICommand</I></A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt"><I>IConstants</I></A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/IDataBindingProvider.html" title="interface in org.eclipse.xwt"><I>IDataBindingProvider</I></A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata"><I>IEvent</I></A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt"><I>ILoadData</I></A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt"><I>ILoadingContext</I></A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt"><I>ILogger</I></A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata"><I>IMetaclass</I></A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt"><I>IMetaclassFactory</I></A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata"><I>IProperty</I></A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata"><I>ISetPostAction</I></A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input">KeyBinding</A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input">MouseBinding</A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input">RoutedCommand</A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt">XWTException</A>
+<BR>
+<A HREF="org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt">XWTMaps</A>
+<BR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/book.css b/plugins/org.eclipse.xwt.doc.user/javadoc/book.css
new file mode 100644
index 0000000..e8d4a64
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/book.css
@@ -0,0 +1,22 @@
+span.control {
+  font-weight: bold;
+}
+
+span.name {
+  font-style: italic;
+}
+
+span.code {
+  font-family: monospace;
+}
+
+p.nav_footer {
+	font-weight: bold;
+}
+
+p.nav_footer a {
+	font-weight: bold;
+	font-style: italic;
+}
+
+@import "code.css";
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/constant-values.html b/plugins/org.eclipse.xwt.doc.user/javadoc/constant-values.html
new file mode 100644
index 0000000..d5a504d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/constant-values.html
@@ -0,0 +1,302 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Constant Field Values
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Constant Field Values";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+Constant Field Values</H1>
+</CENTER>
+<HR SIZE="4" NOSHADE>
+<B>Contents</B><UL>
+<LI><A HREF="#org.eclipse">org.eclipse.*</A>
+</UL>
+
+<A NAME="org.eclipse"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left"><FONT SIZE="+2">
+org.eclipse.*</FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="3">org.eclipse.xwt.<A HREF="org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.xwt.IConstants.XAML_BINDING"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_BINDING">XAML_BINDING</A></CODE></TD>
+<TD ALIGN="right"><CODE>"Binding"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.xwt.IConstants.XAML_CLR_ASSEMBLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_CLR_ASSEMBLY">XAML_CLR_ASSEMBLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>"assembly="</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.xwt.IConstants.XAML_CLR_NAMESPACE_PROTO"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_CLR_NAMESPACE_PROTO">XAML_CLR_NAMESPACE_PROTO</A></CODE></TD>
+<TD ALIGN="right"><CODE>"clr-namespace:"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.xwt.IConstants.XAML_COMMAND"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_COMMAND">XAML_COMMAND</A></CODE></TD>
+<TD ALIGN="right"><CODE>"Command"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.xwt.IConstants.XAML_DATACONTEXT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_DATACONTEXT">XAML_DATACONTEXT</A></CODE></TD>
+<TD ALIGN="right"><CODE>"DataContext"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.xwt.IConstants.XAML_DYNAMICRESOURCES"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_DYNAMICRESOURCES">XAML_DYNAMICRESOURCES</A></CODE></TD>
+<TD ALIGN="right"><CODE>"DynamicResource"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.xwt.IConstants.XAML_STATICRESOURCES"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_STATICRESOURCES">XAML_STATICRESOURCES</A></CODE></TD>
+<TD ALIGN="right"><CODE>"StaticResource"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.xwt.IConstants.XAML_X_ARRAY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_X_ARRAY">XAML_X_ARRAY</A></CODE></TD>
+<TD ALIGN="right"><CODE>"Array"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.xwt.IConstants.XAML_X_CLASS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_X_CLASS">XAML_X_CLASS</A></CODE></TD>
+<TD ALIGN="right"><CODE>"Class"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.xwt.IConstants.XAML_X_KEY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_X_KEY">XAML_X_KEY</A></CODE></TD>
+<TD ALIGN="right"><CODE>"Key"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.xwt.IConstants.XAML_X_NAME"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_X_NAME">XAML_X_NAME</A></CODE></TD>
+<TD ALIGN="right"><CODE>"Name"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.xwt.IConstants.XAML_X_NULL"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_X_NULL">XAML_X_NULL</A></CODE></TD>
+<TD ALIGN="right"><CODE>"Null"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.xwt.IConstants.XAML_X_SHARED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_X_SHARED">XAML_X_SHARED</A></CODE></TD>
+<TD ALIGN="right"><CODE>"Shared"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.xwt.IConstants.XAML_X_STATIC"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_X_STATIC">XAML_X_STATIC</A></CODE></TD>
+<TD ALIGN="right"><CODE>"Static"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.xwt.IConstants.XAML_X_STATIC_MEMBER"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_X_STATIC_MEMBER">XAML_X_STATIC_MEMBER</A></CODE></TD>
+<TD ALIGN="right"><CODE>"Member"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.xwt.IConstants.XAML_X_TARGET_TYPE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_X_TARGET_TYPE">XAML_X_TARGET_TYPE</A></CODE></TD>
+<TD ALIGN="right"><CODE>"TargetType"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.xwt.IConstants.XAML_X_TYPE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_X_TYPE">XAML_X_TYPE</A></CODE></TD>
+<TD ALIGN="right"><CODE>"Type"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.xwt.IConstants.XAML_X_TYPE_NAME"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XAML_X_TYPE_NAME">XAML_X_TYPE_NAME</A></CODE></TD>
+<TD ALIGN="right"><CODE>"TypeName"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.xwt.IConstants.XML_NS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XML_NS">XML_NS</A></CODE></TD>
+<TD ALIGN="right"><CODE>"xmlns"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.xwt.IConstants.XWT_EXTENSION"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XWT_EXTENSION">XWT_EXTENSION</A></CODE></TD>
+<TD ALIGN="right"><CODE>"xwt"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.xwt.IConstants.XWT_EXTENSION_SUFFIX"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XWT_EXTENSION_SUFFIX">XWT_EXTENSION_SUFFIX</A></CODE></TD>
+<TD ALIGN="right"><CODE>".xwt"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.xwt.IConstants.XWT_NAMESPACE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XWT_NAMESPACE">XWT_NAMESPACE</A></CODE></TD>
+<TD ALIGN="right"><CODE>"http://www.eclipse.org/xwt/presentation"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="org.eclipse.xwt.IConstants.XWT_X_NAMESPACE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="org/eclipse/e4/xwt/IConstants.html#XWT_X_NAMESPACE">XWT_X_NAMESPACE</A></CODE></TD>
+<TD ALIGN="right"><CODE>"http://www.eclipse.org/xwt"</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/deprecated-list.html b/plugins/org.eclipse.xwt.doc.user/javadoc/deprecated-list.html
new file mode 100644
index 0000000..56bd6d7
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/deprecated-list.html
@@ -0,0 +1,142 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:38 CET 2009 -->
+<TITLE>
+Deprecated List
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Deprecated List";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Deprecated API</B></H2>
+</CENTER>
+<HR SIZE="4" NOSHADE>
+<B>Contents</B><UL>
+</UL>
+
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/help-doc.html b/plugins/org.eclipse.xwt.doc.user/javadoc/help-doc.html
new file mode 100644
index 0000000..5b11d4d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/help-doc.html
@@ -0,0 +1,219 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:38 CET 2009 -->
+<TITLE>
+API Help
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="API Help";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+How This API Document Is Organized</H1>
+</CENTER>
+This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.<H3>
+Overview</H3>
+<BLOCKQUOTE>
+
+<P>
+The <A HREF="overview-summary.html">Overview</A> page is the front page of this API document and provides a list of all packages with a summary for each.  This page can also contain an overall description of the set of packages.</BLOCKQUOTE>
+<H3>
+Package</H3>
+<BLOCKQUOTE>
+
+<P>
+Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:<UL>
+<LI>Interfaces (italic)<LI>Classes<LI>Enums<LI>Exceptions<LI>Errors<LI>Annotation Types</UL>
+</BLOCKQUOTE>
+<H3>
+Class/Interface</H3>
+<BLOCKQUOTE>
+
+<P>
+Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:<UL>
+<LI>Class inheritance diagram<LI>Direct Subclasses<LI>All Known Subinterfaces<LI>All Known Implementing Classes<LI>Class/interface declaration<LI>Class/interface description
+<P>
+<LI>Nested Class Summary<LI>Field Summary<LI>Constructor Summary<LI>Method Summary
+<P>
+<LI>Field Detail<LI>Constructor Detail<LI>Method Detail</UL>
+Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</BLOCKQUOTE>
+</BLOCKQUOTE>
+<H3>
+Annotation Type</H3>
+<BLOCKQUOTE>
+
+<P>
+Each annotation type has its own separate page with the following sections:<UL>
+<LI>Annotation Type declaration<LI>Annotation Type description<LI>Required Element Summary<LI>Optional Element Summary<LI>Element Detail</UL>
+</BLOCKQUOTE>
+</BLOCKQUOTE>
+<H3>
+Enum</H3>
+<BLOCKQUOTE>
+
+<P>
+Each enum has its own separate page with the following sections:<UL>
+<LI>Enum declaration<LI>Enum description<LI>Enum Constant Summary<LI>Enum Constant Detail</UL>
+</BLOCKQUOTE>
+<H3>
+Use</H3>
+<BLOCKQUOTE>
+Each documented package, class and interface has its own Use page.  This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A.  You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.</BLOCKQUOTE>
+<H3>
+Tree (Class Hierarchy)</H3>
+<BLOCKQUOTE>
+There is a <A HREF="overview-tree.html">Class Hierarchy</A> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.<UL>
+<LI>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.<LI>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</UL>
+</BLOCKQUOTE>
+<H3>
+Deprecated API</H3>
+<BLOCKQUOTE>
+The <A HREF="deprecated-list.html">Deprecated API</A> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</BLOCKQUOTE>
+<H3>
+Index</H3>
+<BLOCKQUOTE>
+The <A HREF="index-files/index-1.html">Index</A> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</BLOCKQUOTE>
+<H3>
+Prev/Next</H3>
+These links take you to the next or previous class, interface, package, or related page.<H3>
+Frames/No Frames</H3>
+These links show and hide the HTML frames.  All pages are available with or without frames.
+<P>
+<H3>
+Serialized Form</H3>
+Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.
+<P>
+<H3>
+Constant Field Values</H3>
+The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.
+<P>
+<FONT SIZE="-1">
+<EM>
+This help file applies to API documentation generated using the standard doclet.</EM>
+</FONT>
+<BR>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-1.html b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-1.html
new file mode 100644
index 0000000..bace776
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-1.html
@@ -0,0 +1,168 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+A-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="A-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV LETTER&nbsp;
+&nbsp;<A HREF="index-2.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-1.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-1.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+<A NAME="_A_"><!-- --></A><H2>
+<B>A</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/e4/xwt/metadata/ISetPostAction.html#action(java.lang.Object, org.eclipse.xwt.metadata.IProperty, java.lang.Object)"><B>action(Object, IProperty, Object)</B></A> - 
+Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata">ISetPostAction</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#addArrayProperty(org.eclipse.xwt.metadata.IProperty)"><B>addArrayProperty(IProperty)</B></A> - 
+Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>
+<DD>TODO
+<DT><A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html#addCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><B>addCanExecuteChangedListener(CanExecuteChangedListener)</B></A> - 
+Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input">CommandBinding</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/input/ICommand.html#addCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><B>addCanExecuteChangedListener(CanExecuteChangedListener)</B></A> - 
+Method in interface org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/input/RoutedCommand.html#addCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><B>addCanExecuteChangedListener(CanExecuteChangedListener)</B></A> - 
+Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input">RoutedCommand</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html#addExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><B>addExecuteChangedListener(CanExecuteChangedListener)</B></A> - 
+Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input">CommandBinding</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/ILogger.html#addMessage(java.lang.String, org.eclipse.xwt.Tracking)"><B>addMessage(String, Tracking)</B></A> - 
+Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#addProperty(org.eclipse.xwt.metadata.IProperty)"><B>addProperty(IProperty)</B></A> - 
+Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/metadata/IProperty.html#addSetPostAction(org.eclipse.xwt.metadata.ISetPostAction)"><B>addSetPostAction(ISetPostAction)</B></A> - 
+Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#addTracking(org.eclipse.xwt.Tracking)"><B>addTracking(Tracking)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Add a tracking option
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV LETTER&nbsp;
+&nbsp;<A HREF="index-2.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-1.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-1.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-10.html b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-10.html
new file mode 100644
index 0000000..3e17406
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-10.html
@@ -0,0 +1,144 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+M-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="M-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-9.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-11.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-10.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-10.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+<A NAME="_M_"><!-- --></A><H2>
+<B>M</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/e4/xwt/ILogger.html#message(java.lang.String)"><B>message(String)</B></A> - 
+Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input"><B>ModifierKeys</B></A> - Enum in <A HREF="../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input"><B>MouseAction</B></A> - Enum in <A HREF="../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input"><B>MouseBinding</B></A> - Class in <A HREF="../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/input/MouseBinding.html#MouseBinding()"><B>MouseBinding()</B></A> - 
+Constructor for class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input">MouseBinding</A>
+<DD>&nbsp;
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-9.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-11.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-10.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-10.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-11.html b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-11.html
new file mode 100644
index 0000000..eae62ba
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-11.html
@@ -0,0 +1,141 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+N-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="N-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-10.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-12.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-11.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-11.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+<A NAME="_N_"><!-- --></A><H2>
+<B>N</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#newInstance(java.lang.Object[])"><B>newInstance(Object[])</B></A> - 
+Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>
+<DD>&nbsp;
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-10.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-12.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-11.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-11.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-12.html b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-12.html
new file mode 100644
index 0000000..d28d61a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-12.html
@@ -0,0 +1,147 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+O-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="O-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-11.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-13.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-12.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-12.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+<A NAME="_O_"><!-- --></A><H2>
+<B>O</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#open(java.net.URL)"><B>open(URL)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Open and show the file content in a new Shell.
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#open(java.net.URL, java.lang.Object)"><B>open(URL, Object)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>load the file content.
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#open(java.net.URL, java.lang.Object, org.eclipse.xwt.ResourceDictionary)"><B>open(URL, Object, ResourceDictionary)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>load the file content.
+<DT><A HREF="../org/eclipse/e4/xwt/package-summary.html"><B>org.eclipse.xwt</B></A> - package org.eclipse.xwt<DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/input/package-summary.html"><B>org.eclipse.xwt.input</B></A> - package org.eclipse.xwt.input<DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/metadata/package-summary.html"><B>org.eclipse.xwt.metadata</B></A> - package org.eclipse.xwt.metadata<DD>&nbsp;</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-11.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-13.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-12.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-12.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-13.html b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-13.html
new file mode 100644
index 0000000..625605e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-13.html
@@ -0,0 +1,141 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+P-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="P-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-12.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-14.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-13.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-13.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+<A NAME="_P_"><!-- --></A><H2>
+<B>P</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/e4/xwt/ILogger.html#printInfo(java.lang.String, org.eclipse.xwt.Tracking, java.util.Set)"><B>printInfo(String, Tracking, Set&lt;Tracking&gt;)</B></A> - 
+Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A>
+<DD>&nbsp;
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-12.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-14.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-13.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-13.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-14.html b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-14.html
new file mode 100644
index 0000000..2b681a2
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-14.html
@@ -0,0 +1,180 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:38 CET 2009 -->
+<TITLE>
+R-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="R-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-13.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-15.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-14.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-14.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+<A NAME="_R_"><!-- --></A><H2>
+<B>R</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#register(java.lang.Class, java.lang.String)"><B>register(Class&lt;?&gt;, String)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Register UI type
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#registerCommand(java.lang.String, org.eclipse.xwt.input.ICommand)"><B>registerCommand(String, ICommand)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Register a command to a name
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#registerConvertor(org.eclipse.core.databinding.conversion.IConverter)"><B>registerConvertor(IConverter)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Register a Data converter
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#registerMetaclass(java.lang.Class)"><B>registerMetaclass(Class)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Register UI type
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#registerMetaclassFactory(org.eclipse.xwt.IMetaclassFactory)"><B>registerMetaclassFactory(IMetaclassFactory)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Register Metaclass factory
+<DT><A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html#removeCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><B>removeCanExecuteChangedListener(CanExecuteChangedListener)</B></A> - 
+Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input">CommandBinding</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/input/ICommand.html#removeCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><B>removeCanExecuteChangedListener(CanExecuteChangedListener)</B></A> - 
+Method in interface org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/input/RoutedCommand.html#removeCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><B>removeCanExecuteChangedListener(CanExecuteChangedListener)</B></A> - 
+Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input">RoutedCommand</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html#removeExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><B>removeExecuteChangedListener(CanExecuteChangedListener)</B></A> - 
+Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input">CommandBinding</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/ILogger.html#removeMessage(org.eclipse.xwt.Tracking)"><B>removeMessage(Tracking)</B></A> - 
+Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/metadata/IProperty.html#removeSetPostAction(org.eclipse.xwt.metadata.ISetPostAction)"><B>removeSetPostAction(ISetPostAction)</B></A> - 
+Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#removeTracking(org.eclipse.xwt.Tracking)"><B>removeTracking(Tracking)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Remove a tracking option.
+<DT><A HREF="../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt"><B>ResourceDictionary</B></A> - Class in <A HREF="../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/ResourceDictionary.html#ResourceDictionary()"><B>ResourceDictionary()</B></A> - 
+Constructor for class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input"><B>RoutedCommand</B></A> - Class in <A HREF="../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/input/RoutedCommand.html#RoutedCommand()"><B>RoutedCommand()</B></A> - 
+Constructor for class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input">RoutedCommand</A>
+<DD>&nbsp;
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-13.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-15.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-14.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-14.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-15.html b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-15.html
new file mode 100644
index 0000000..12c92bd
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-15.html
@@ -0,0 +1,192 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:38 CET 2009 -->
+<TITLE>
+S-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="S-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-14.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-16.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-15.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-15.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+<A NAME="_S_"><!-- --></A><H2>
+<B>S</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html#setCommand(org.eclipse.xwt.input.ICommand)"><B>setCommand(ICommand)</B></A> - 
+Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input">CommandBinding</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/input/InputBinding.html#setCommand(org.eclipse.xwt.input.ICommand)"><B>setCommand(ICommand)</B></A> - 
+Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/input/InputBinding.html#setCommandParameter(java.lang.Object)"><B>setCommandParameter(Object)</B></A> - 
+Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/input/InputBinding.html#setCommandTarget(java.lang.Object)"><B>setCommandTarget(Object)</B></A> - 
+Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/ILoadData.html#setDataContext(java.lang.Object)"><B>setDataContext(Object)</B></A> - 
+Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#setDataContext(org.eclipse.swt.widgets.Widget, java.lang.Object)"><B>setDataContext(Widget, Object)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Change the DataContext of given element
+<DT><A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html#setDisplayString(java.lang.String)"><B>setDisplayString(String)</B></A> - 
+Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/input/InputBinding.html#setGesture(org.eclipse.xwt.input.KeyGesture)"><B>setGesture(KeyGesture)</B></A> - 
+Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html#setKey(java.lang.String)"><B>setKey(String)</B></A> - 
+Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#setLoadingContext(org.eclipse.xwt.ILoadingContext)"><B>setLoadingContext(ILoadingContext)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#setLogger(org.eclipse.xwt.ILogger)"><B>setLogger(ILogger)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Change the system logger
+<DT><A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html#setModifiers(org.eclipse.xwt.input.ModifierKeys)"><B>setModifiers(ModifierKeys)</B></A> - 
+Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/metadata/IBehavior.html#setName(java.lang.String)"><B>setName(String)</B></A> - 
+Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata">IBehavior</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/ILoadData.html#setParent(org.eclipse.swt.widgets.Composite)"><B>setParent(Composite)</B></A> - 
+Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/ILoadData.html#setResourceDictionary(org.eclipse.xwt.ResourceDictionary)"><B>setResourceDictionary(ResourceDictionary)</B></A> - 
+Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/ILoadData.html#setStyles(int)"><B>setStyles(int)</B></A> - 
+Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/metadata/IProperty.html#setType(java.lang.Class)"><B>setType(Class&lt;?&gt;)</B></A> - 
+Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/metadata/IProperty.html#setValue(java.lang.Object, java.lang.Object)"><B>setValue(Object, Object)</B></A> - 
+Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>
+<DD>Can generate event
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-14.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-16.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-15.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-15.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-16.html b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-16.html
new file mode 100644
index 0000000..5d833dc
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-16.html
@@ -0,0 +1,138 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:38 CET 2009 -->
+<TITLE>
+T-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="T-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-15.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-17.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-16.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-16.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+<A NAME="_T_"><!-- --></A><H2>
+<B>T</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt"><B>Tracking</B></A> - Enum in <A HREF="../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A><DD>&nbsp;</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-15.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-17.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-16.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-16.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-17.html b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-17.html
new file mode 100644
index 0000000..e0edbd7
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-17.html
@@ -0,0 +1,141 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:38 CET 2009 -->
+<TITLE>
+U-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="U-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-16.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-18.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-17.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-17.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+<A NAME="_U_"><!-- --></A><H2>
+<B>U</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#unregisterCommand(java.lang.String)"><B>unregisterCommand(String)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Unregister a command
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-16.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-18.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-17.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-17.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-18.html b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-18.html
new file mode 100644
index 0000000..0c2c230
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-18.html
@@ -0,0 +1,159 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:38 CET 2009 -->
+<TITLE>
+V-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="V-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-17.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-19.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-18.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-18.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+<A NAME="_V_"><!-- --></A><H2>
+<B>V</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/e4/xwt/input/ModifierKeys.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
+Static method in enum org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A>
+<DD>Returns the enum constant of this type with the specified name.
+<DT><A HREF="../org/eclipse/e4/xwt/input/MouseAction.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
+Static method in enum org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A>
+<DD>Returns the enum constant of this type with the specified name.
+<DT><A HREF="../org/eclipse/e4/xwt/Tracking.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> - 
+Static method in enum org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>
+<DD>Returns the enum constant of this type with the specified name.
+<DT><A HREF="../org/eclipse/e4/xwt/input/ModifierKeys.html#values()"><B>values()</B></A> - 
+Static method in enum org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A>
+<DD>Returns an array containing the constants of this enum type, in
+the order they're declared.
+<DT><A HREF="../org/eclipse/e4/xwt/input/MouseAction.html#values()"><B>values()</B></A> - 
+Static method in enum org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A>
+<DD>Returns an array containing the constants of this enum type, in
+the order they're declared.
+<DT><A HREF="../org/eclipse/e4/xwt/Tracking.html#values()"><B>values()</B></A> - 
+Static method in enum org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>
+<DD>Returns an array containing the constants of this enum type, in
+the order they're declared.
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-17.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-19.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-18.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-18.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-19.html b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-19.html
new file mode 100644
index 0000000..5c1bfef
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-19.html
@@ -0,0 +1,141 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:38 CET 2009 -->
+<TITLE>
+W-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="W-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-18.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-20.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-19.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-19.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+<A NAME="_W_"><!-- --></A><H2>
+<B>W</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/e4/xwt/ILogger.html#warning(java.lang.String)"><B>warning(String)</B></A> - 
+Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A>
+<DD>&nbsp;
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-18.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-20.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-19.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-19.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-2.html b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-2.html
new file mode 100644
index 0000000..26752f1
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-2.html
@@ -0,0 +1,159 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+C-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="C-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-1.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-3.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-2.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-2.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+<A NAME="_C_"><!-- --></A><H2>
+<B>C</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/e4/xwt/input/ICommand.html#canExecute()"><B>canExecute()</B></A> - 
+Method in interface org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/input/RoutedCommand.html#canExecute()"><B>canExecute()</B></A> - 
+Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input">RoutedCommand</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input"><B>CanExecuteChangedListener</B></A> - Interface in <A HREF="../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input"><B>CommandBinding</B></A> - Class in <A HREF="../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html#CommandBinding()"><B>CommandBinding()</B></A> - 
+Constructor for class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input">CommandBinding</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html#CommandBinding(org.eclipse.xwt.input.ICommand)"><B>CommandBinding(ICommand)</B></A> - 
+Constructor for class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input">CommandBinding</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#convertFrom(org.eclipse.xwt.metadata.IMetaclass, java.lang.String)"><B>convertFrom(IMetaclass, String)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Data conversion service from String to a given type
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#convertFrom(java.lang.Class, java.lang.String)"><B>convertFrom(Class&lt;?&gt;, String)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Data conversion service from String to a given type
+<DT><A HREF="../org/eclipse/e4/xwt/IMetaclassFactory.html#create(java.lang.Class, org.eclipse.xwt.metadata.IMetaclass)"><B>create(Class&lt;?&gt;, IMetaclass)</B></A> - 
+Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt">IMetaclassFactory</A>
+<DD>&nbsp;
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-1.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-3.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-2.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-2.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-20.html b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-20.html
new file mode 100644
index 0000000..beb06f8
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-20.html
@@ -0,0 +1,222 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:38 CET 2009 -->
+<TITLE>
+X-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="X-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-19.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;NEXT LETTER</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-20.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-20.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+<A NAME="_X_"><!-- --></A><H2>
+<B>X</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_BINDING"><B>XAML_BINDING</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_CLR_ASSEMBLY"><B>XAML_CLR_ASSEMBLY</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_CLR_NAMESPACE_PROTO"><B>XAML_CLR_NAMESPACE_PROTO</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_COMMAND"><B>XAML_COMMAND</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_DATACONTEXT"><B>XAML_DATACONTEXT</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_DYNAMICRESOURCES"><B>XAML_DYNAMICRESOURCES</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_STATICRESOURCES"><B>XAML_STATICRESOURCES</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_ARRAY"><B>XAML_X_ARRAY</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_CLASS"><B>XAML_X_CLASS</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_KEY"><B>XAML_X_KEY</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_NAME"><B>XAML_X_NAME</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_NULL"><B>XAML_X_NULL</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_SHARED"><B>XAML_X_SHARED</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_STATIC"><B>XAML_X_STATIC</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_STATIC_MEMBER"><B>XAML_X_STATIC_MEMBER</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_TARGET_TYPE"><B>XAML_X_TARGET_TYPE</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_TYPE"><B>XAML_X_TYPE</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_TYPE_NAME"><B>XAML_X_TYPE_NAME</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XML_NS"><B>XML_NS</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt"><B>XWT</B></A> - Class in <A HREF="../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A><DD>XWT is the main class of the XWT framework.<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#XWT()"><B>XWT()</B></A> - 
+Constructor for class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XWT_EXTENSION"><B>XWT_EXTENSION</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XWT_EXTENSION_SUFFIX"><B>XWT_EXTENSION_SUFFIX</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XWT_NAMESPACE"><B>XWT_NAMESPACE</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XWT_X_NAMESPACE"><B>XWT_X_NAMESPACE</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt"><B>XWTException</B></A> - Exception in <A HREF="../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/XWTException.html#XWTException(java.lang.String, java.lang.Throwable)"><B>XWTException(String, Throwable)</B></A> - 
+Constructor for exception org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt">XWTException</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWTException.html#XWTException(java.lang.String)"><B>XWTException(String)</B></A> - 
+Constructor for exception org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt">XWTException</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWTException.html#XWTException(java.lang.Throwable)"><B>XWTException(Throwable)</B></A> - 
+Constructor for exception org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt">XWTException</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWTException.html#XWTException()"><B>XWTException()</B></A> - 
+Constructor for exception org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt">XWTException</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt"><B>XWTMaps</B></A> - Class in <A HREF="../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A><DD>&nbsp;</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-19.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;NEXT LETTER</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-20.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-20.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-21.html b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-21.html
new file mode 100644
index 0000000..4b586f5
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-21.html
@@ -0,0 +1,222 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->
+<TITLE>
+X-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="X-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-20.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;NEXT LETTER</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-21.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-21.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">G</A> <A HREF="index-8.html">I</A> <A HREF="index-9.html">K</A> <A HREF="index-10.html">L</A> <A HREF="index-11.html">M</A> <A HREF="index-12.html">N</A> <A HREF="index-13.html">O</A> <A HREF="index-14.html">P</A> <A HREF="index-15.html">R</A> <A HREF="index-16.html">S</A> <A HREF="index-17.html">T</A> <A HREF="index-18.html">U</A> <A HREF="index-19.html">V</A> <A HREF="index-20.html">W</A> <A HREF="index-21.html">X</A> <HR>
+<A NAME="_X_"><!-- --></A><H2>
+<B>X</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_BINDING"><B>XAML_BINDING</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_CLR_ASSEMBLY"><B>XAML_CLR_ASSEMBLY</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_CLR_NAMESPACE_PROTO"><B>XAML_CLR_NAMESPACE_PROTO</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_COMMAND"><B>XAML_COMMAND</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_DATACONTEXT"><B>XAML_DATACONTEXT</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_DYNAMICRESOURCES"><B>XAML_DYNAMICRESOURCES</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_STATICRESOURCES"><B>XAML_STATICRESOURCES</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_ARRAY"><B>XAML_X_ARRAY</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_CLASS"><B>XAML_X_CLASS</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_KEY"><B>XAML_X_KEY</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_NAME"><B>XAML_X_NAME</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_NULL"><B>XAML_X_NULL</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_SHARED"><B>XAML_X_SHARED</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_STATIC"><B>XAML_X_STATIC</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_STATIC_MEMBER"><B>XAML_X_STATIC_MEMBER</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_TARGET_TYPE"><B>XAML_X_TARGET_TYPE</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_TYPE"><B>XAML_X_TYPE</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XAML_X_TYPE_NAME"><B>XAML_X_TYPE_NAME</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XML_NS"><B>XML_NS</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt"><B>XWT</B></A> - Class in <A HREF="../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A><DD>XWT is the main class of the XWT framework.<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#XWT()"><B>XWT()</B></A> - 
+Constructor for class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XWT_EXTENSION"><B>XWT_EXTENSION</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XWT_EXTENSION_SUFFIX"><B>XWT_EXTENSION_SUFFIX</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XWT_NAMESPACE"><B>XWT_NAMESPACE</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#XWT_X_NAMESPACE"><B>XWT_X_NAMESPACE</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt"><B>XWTException</B></A> - Exception in <A HREF="../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/XWTException.html#XWTException(java.lang.String, java.lang.Throwable)"><B>XWTException(String, Throwable)</B></A> - 
+Constructor for exception org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt">XWTException</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWTException.html#XWTException(java.lang.String)"><B>XWTException(String)</B></A> - 
+Constructor for exception org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt">XWTException</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWTException.html#XWTException(java.lang.Throwable)"><B>XWTException(Throwable)</B></A> - 
+Constructor for exception org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt">XWTException</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWTException.html#XWTException()"><B>XWTException()</B></A> - 
+Constructor for exception org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt">XWTException</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt"><B>XWTMaps</B></A> - Class in <A HREF="../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A><DD>&nbsp;</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-20.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;NEXT LETTER</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-21.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-21.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">B</A> <A HREF="index-3.html">C</A> <A HREF="index-4.html">D</A> <A HREF="index-5.html">E</A> <A HREF="index-6.html">F</A> <A HREF="index-7.html">G</A> <A HREF="index-8.html">I</A> <A HREF="index-9.html">K</A> <A HREF="index-10.html">L</A> <A HREF="index-11.html">M</A> <A HREF="index-12.html">N</A> <A HREF="index-13.html">O</A> <A HREF="index-14.html">P</A> <A HREF="index-15.html">R</A> <A HREF="index-16.html">S</A> <A HREF="index-17.html">T</A> <A HREF="index-18.html">U</A> <A HREF="index-19.html">V</A> <A HREF="index-20.html">W</A> <A HREF="index-21.html">X</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-3.html b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-3.html
new file mode 100644
index 0000000..77416fc
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-3.html
@@ -0,0 +1,141 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+D-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="D-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-2.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-4.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-3.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-3.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+<A NAME="_D_"><!-- --></A><H2>
+<B>D</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/e4/xwt/ILoadData.html#DefaultLoadData"><B>DefaultLoadData</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A>
+<DD>&nbsp;
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-2.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-4.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-3.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-3.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-4.html b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-4.html
new file mode 100644
index 0000000..8d4faf5
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-4.html
@@ -0,0 +1,162 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+E-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="E-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-3.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-5.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-4.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-4.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+<A NAME="_E_"><!-- --></A><H2>
+<B>E</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#EMPTY_DOCOBJ_ARRAY"><B>EMPTY_DOCOBJ_ARRAY</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#EMPTY_ENUMERATION"><B>EMPTY_ENUMERATION</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#EMPTY_RESOURCE_BUNDLE"><B>EMPTY_RESOURCE_BUNDLE</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html#EMPTY_STRING_ARRAY"><B>EMPTY_STRING_ARRAY</B></A> - 
+Static variable in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/ILogger.html#error(java.lang.Throwable)"><B>error(Throwable)</B></A> - 
+Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/ILogger.html#error(java.lang.Throwable, java.lang.String)"><B>error(Throwable, String)</B></A> - 
+Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/input/ICommand.html#execute(java.lang.Object)"><B>execute(Object)</B></A> - 
+Method in interface org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/input/RoutedCommand.html#execute(java.lang.Object)"><B>execute(Object)</B></A> - 
+Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input">RoutedCommand</A>
+<DD>&nbsp;
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-3.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-5.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-4.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-4.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-5.html b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-5.html
new file mode 100644
index 0000000..0c3072d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-5.html
@@ -0,0 +1,174 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+F-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="F-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-4.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-6.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-5.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-5.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+<A NAME="_F_"><!-- --></A><H2>
+<B>F</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#findCompositeParent(org.eclipse.swt.widgets.Widget)"><B>findCompositeParent(Widget)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Find the closet parent of type Composite
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#findConvertor(java.lang.Class, java.lang.Class)"><B>findConvertor(Class&lt;?&gt;, Class&lt;?&gt;)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Find a Data converter
+<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#findDefaultProperty()"><B>findDefaultProperty()</B></A> - 
+Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#findElementByName(org.eclipse.swt.widgets.Widget, java.lang.String)"><B>findElementByName(Widget, String)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Find a named UI element.
+<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#findEvent(java.lang.String)"><B>findEvent(String)</B></A> - 
+Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#findLoadingContext(java.lang.Object)"><B>findLoadingContext(Object)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#findNameContext(org.eclipse.swt.widgets.Widget)"><B>findNameContext(Widget)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>A NameContext is a manager of UI element's name in a scope.
+<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#findProperty(java.lang.String)"><B>findProperty(String)</B></A> - 
+Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#findShell(org.eclipse.swt.widgets.Widget)"><B>findShell(Widget)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Find the root shell
+<DT><A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html#fireCanExecuteChangedListener(java.beans.PropertyChangeEvent)"><B>fireCanExecuteChangedListener(PropertyChangeEvent)</B></A> - 
+Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input">CommandBinding</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/input/RoutedCommand.html#fireCanExecuteChangedListener(java.beans.PropertyChangeEvent)"><B>fireCanExecuteChangedListener(PropertyChangeEvent)</B></A> - 
+Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input">RoutedCommand</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html#fireExecuteChangedListener(java.beans.PropertyChangeEvent)"><B>fireExecuteChangedListener(PropertyChangeEvent)</B></A> - 
+Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input">CommandBinding</A>
+<DD>&nbsp;
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-4.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-6.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-5.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-5.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-6.html b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-6.html
new file mode 100644
index 0000000..2382750
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-6.html
@@ -0,0 +1,273 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+G-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="G-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-5.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-7.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-6.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-6.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+<A NAME="_G_"><!-- --></A><H2>
+<B>G</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/e4/xwt/XWTMaps.html#getAccelerator(java.lang.String)"><B>getAccelerator(String)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt">XWTMaps</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWTMaps.html#getAcceleratorKeys()"><B>getAcceleratorKeys()</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt">XWTMaps</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#getAllMetaclasses()"><B>getAllMetaclasses()</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Metaclass services to return all registered Metaclasses.
+<DT><A HREF="../org/eclipse/e4/xwt/ILoadingContext.html#getClassLoader()"><B>getClassLoader()</B></A> - 
+Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#getCLR(org.eclipse.swt.widgets.Widget)"><B>getCLR(Widget)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Get the CLR (Common Language Runtime) object.
+<DT><A HREF="../org/eclipse/e4/xwt/XWTMaps.html#getColor(java.lang.String)"><B>getColor(String)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt">XWTMaps</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWTMaps.html#getColorKeys()"><B>getColorKeys()</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt">XWTMaps</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWTMaps.html#getCombAccelerator(java.lang.String)"><B>getCombAccelerator(String)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt">XWTMaps</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html#getCommand()"><B>getCommand()</B></A> - 
+Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input">CommandBinding</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/input/InputBinding.html#getCommand()"><B>getCommand()</B></A> - 
+Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#getCommand(java.lang.String)"><B>getCommand(String)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Find a command by name
+<DT><A HREF="../org/eclipse/e4/xwt/input/InputBinding.html#getCommandParameter()"><B>getCommandParameter()</B></A> - 
+Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#getCommands()"><B>getCommands()</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Return all registered commands
+<DT><A HREF="../org/eclipse/e4/xwt/input/InputBinding.html#getCommandTarget()"><B>getCommandTarget()</B></A> - 
+Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#getConverterService()"><B>getConverterService()</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/ILoadData.html#getDataContext()"><B>getDataContext()</B></A> - 
+Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#getDataContext(org.eclipse.swt.widgets.Widget)"><B>getDataContext(Widget)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Get the DataContext of given element
+<DT><A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html#getDisplayString()"><B>getDisplayString()</B></A> - 
+Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWTMaps.html#getEvent(java.lang.String)"><B>getEvent(String)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt">XWTMaps</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWTMaps.html#getEventKeys()"><B>getEventKeys()</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt">XWTMaps</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#getEvents()"><B>getEvents()</B></A> - 
+Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/input/InputBinding.html#getGesture()"><B>getGesture()</B></A> - 
+Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html#getKey()"><B>getKey()</B></A> - 
+Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#getLoadingContext(org.eclipse.swt.widgets.Composite)"><B>getLoadingContext(Composite)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#getLoadingContext()"><B>getLoadingContext()</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#getLogger()"><B>getLogger()</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Get the system logger.
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#getMetaclass(java.lang.Object)"><B>getMetaclass(Object)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Get the Metaclass of the given object
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#getMetaclass(java.lang.String, java.lang.String)"><B>getMetaclass(String, String)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Get the corresponding Metaclass
+<DT><A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html#getModifiers()"><B>getModifiers()</B></A> - 
+Method in class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/metadata/IBehavior.html#getName()"><B>getName()</B></A> - 
+Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata">IBehavior</A>
+<DD>Getter of the property <tt>name</tt>
+<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#getName()"><B>getName()</B></A> - 
+Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/ILoadingContext.html#getNamespace()"><B>getNamespace()</B></A> - 
+Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#getNamespace(java.lang.Class)"><B>getNamespace(Class&lt;?&gt;)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>This namespace service returns the associated or declared namespace for a given class.
+<DT><A HREF="../org/eclipse/e4/xwt/ILoadData.html#getParent()"><B>getParent()</B></A> - 
+Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#getProperties()"><B>getProperties()</B></A> - 
+Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/ILoadData.html#getResourceDictionary()"><B>getResourceDictionary()</B></A> - 
+Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWTMaps.html#getStyle(java.lang.String)"><B>getStyle(String)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt">XWTMaps</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWTMaps.html#getStyleKeys()"><B>getStyleKeys()</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt">XWTMaps</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/ILoadData.html#getStyles()"><B>getStyles()</B></A> - 
+Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#getSuperClass()"><B>getSuperClass()</B></A> - 
+Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#getTrackings()"><B>getTrackings()</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Get all tracking options
+<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#getType()"><B>getType()</B></A> - 
+Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/metadata/IProperty.html#getType()"><B>getType()</B></A> - 
+Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/metadata/IProperty.html#getValue(java.lang.Object)"><B>getValue(Object)</B></A> - 
+Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWTMaps.html#getValue(java.lang.String)"><B>getValue(String)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt">XWTMaps</A>
+<DD>&nbsp;
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-5.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-7.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-6.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-6.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-7.html b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-7.html
new file mode 100644
index 0000000..14dd6ba
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-7.html
@@ -0,0 +1,165 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+I-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="I-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-6.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-8.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-7.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-7.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+<A NAME="_I_"><!-- --></A><H2>
+<B>I</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata"><B>IBehavior</B></A> - Interface in <A HREF="../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A><DD>Common behavior of Property and event<DT><A HREF="../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input"><B>ICommand</B></A> - Interface in <A HREF="../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt"><B>IConstants</B></A> - Interface in <A HREF="../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A><DD>Shared constants<DT><A HREF="../org/eclipse/e4/xwt/IDataBindingProvider.html" title="interface in org.eclipse.xwt"><B>IDataBindingProvider</B></A> - Interface in <A HREF="../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A><DD>A Data Binding provider defines the nature of Data Binding such as Bean Object Binding, EMF Object Binding, XML data Binding or Data Base binding<DT><A HREF="../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata"><B>IEvent</B></A> - Interface in <A HREF="../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A><DD>UI event<DT><A HREF="../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt"><B>ILoadData</B></A> - Interface in <A HREF="../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt"><B>ILoadingContext</B></A> - Interface in <A HREF="../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt"><B>ILogger</B></A> - Interface in <A HREF="../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A><DD>Looger interface<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata"><B>IMetaclass</B></A> - Interface in <A HREF="../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A><DD>UI metaclass<DT><A HREF="../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt"><B>IMetaclassFactory</B></A> - Interface in <A HREF="../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A><DD>Metaclass factory provides a customizable Metaclass creation mechanism.<DT><A HREF="../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input"><B>InputBinding</B></A> - Class in <A HREF="../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/input/InputBinding.html#InputBinding()"><B>InputBinding()</B></A> - 
+Constructor for class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata"><B>IProperty</B></A> - Interface in <A HREF="../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A><DD>UI property<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#isAbstract()"><B>isAbstract()</B></A> - 
+Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#isAssignableFrom(org.eclipse.xwt.metadata.IMetaclass)"><B>isAssignableFrom(IMetaclass)</B></A> - 
+Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata"><B>ISetPostAction</B></A> - Interface in <A HREF="../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/IMetaclassFactory.html#isFactoryOf(java.lang.Class)"><B>isFactoryOf(Class&lt;?&gt;)</B></A> - 
+Method in interface org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt">IMetaclassFactory</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#IsInitialized()"><B>IsInitialized()</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Check if the framework is initialized.
+<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#isInstance(java.lang.Object)"><B>isInstance(Object)</B></A> - 
+Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#isSubclassOf(org.eclipse.xwt.metadata.IMetaclass)"><B>isSubclassOf(IMetaclass)</B></A> - 
+Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html#isSuperclassOf(org.eclipse.xwt.metadata.IMetaclass)"><B>isSuperclassOf(IMetaclass)</B></A> - 
+Method in interface org.eclipse.xwt.metadata.<A HREF="../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#isTracking(org.eclipse.xwt.Tracking)"><B>isTracking(Tracking)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Test if the tracking on argument is enabled.
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-6.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-8.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-7.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-7.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-8.html b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-8.html
new file mode 100644
index 0000000..0293eda
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-8.html
@@ -0,0 +1,144 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+K-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="K-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-7.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-9.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-8.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-8.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+<A NAME="_K_"><!-- --></A><H2>
+<B>K</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input"><B>KeyBinding</B></A> - Class in <A HREF="../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/input/KeyBinding.html#KeyBinding()"><B>KeyBinding()</B></A> - 
+Constructor for class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input">KeyBinding</A>
+<DD>&nbsp;
+<DT><A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input"><B>KeyGesture</B></A> - Class in <A HREF="../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A><DD>&nbsp;<DT><A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html#KeyGesture()"><B>KeyGesture()</B></A> - 
+Constructor for class org.eclipse.xwt.input.<A HREF="../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A>
+<DD>&nbsp;
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-7.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-9.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-8.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-8.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-9.html b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-9.html
new file mode 100644
index 0000000..c0d27b7
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/index-files/index-9.html
@@ -0,0 +1,177 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+L-Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="L-Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-8.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-10.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-9.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-9.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+<A NAME="_L_"><!-- --></A><H2>
+<B>L</B></H2>
+<DL>
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#load(java.net.URL)"><B>load(URL)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Load the file content.
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#load(java.net.URL, int, java.lang.Object)"><B>load(URL, int, Object)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Load the file content with a DataContext.
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#load(java.net.URL, int, java.lang.Object, org.eclipse.xwt.ResourceDictionary)"><B>load(URL, int, Object, ResourceDictionary)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Load the file content with a DataContext and a ResourceDictionary.
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#load(java.net.URL, java.lang.Object)"><B>load(URL, Object)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Load the file content with a DataContext.
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.net.URL)"><B>load(Composite, URL)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Load the file content under a Composite.
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.net.URL, java.lang.Object)"><B>load(Composite, URL, Object)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Load the file content under a Composite with a DataContext.
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.net.URL, int, java.lang.Object)"><B>load(Composite, URL, int, Object)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Load the file content under a Composite with a style and a DataContext.
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.net.URL, int, java.lang.Object, org.eclipse.xwt.ResourceDictionary)"><B>load(Composite, URL, int, Object, ResourceDictionary)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Load the file content under a Composite with a style, a DataContext and a ResourceDictionary.
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#load(java.io.InputStream, java.net.URL)"><B>load(InputStream, URL)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>load the file content.
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.io.InputStream, java.net.URL, java.lang.Object)"><B>load(Composite, InputStream, URL, Object)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>load the content from a stream with a given DataContext.
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.io.InputStream, java.net.URL, int, java.lang.Object)"><B>load(Composite, InputStream, URL, int, Object)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>load the content from a stream with a style and a DataContext.
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.io.InputStream, java.net.URL, int, java.lang.Object, org.eclipse.xwt.ResourceDictionary)"><B>load(Composite, InputStream, URL, int, Object, ResourceDictionary)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>load the content from a stream with a style, a DataContext and a ResourceDictionary.
+<DT><A HREF="../org/eclipse/e4/xwt/XWT.html#load(java.io.InputStream, java.net.URL, org.eclipse.xwt.ILoadData)"><B>load(InputStream, URL, ILoadData)</B></A> - 
+Static method in class org.eclipse.xwt.<A HREF="../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A>
+<DD>Generic load method
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="index-8.html"><B>PREV LETTER</B></A>&nbsp;
+&nbsp;<A HREF="index-10.html"><B>NEXT LETTER</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?index-filesindex-9.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-9.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<A HREF="index-1.html">A</A> <A HREF="index-2.html">C</A> <A HREF="index-3.html">D</A> <A HREF="index-4.html">E</A> <A HREF="index-5.html">F</A> <A HREF="index-6.html">G</A> <A HREF="index-7.html">I</A> <A HREF="index-8.html">K</A> <A HREF="index-9.html">L</A> <A HREF="index-10.html">M</A> <A HREF="index-11.html">N</A> <A HREF="index-12.html">O</A> <A HREF="index-13.html">P</A> <A HREF="index-14.html">R</A> <A HREF="index-15.html">S</A> <A HREF="index-16.html">T</A> <A HREF="index-17.html">U</A> <A HREF="index-18.html">V</A> <A HREF="index-19.html">W</A> <A HREF="index-20.html">X</A> <HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/index.html b/plugins/org.eclipse.xwt.doc.user/javadoc/index.html
new file mode 100644
index 0000000..e3dc4ac
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/index.html
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc on Tue Feb 03 01:38:38 CET 2009-->
+<TITLE>
+Generated Documentation (Untitled)
+</TITLE>
+<SCRIPT type="text/javascript">
+    targetPage = "" + window.location.search;
+    if (targetPage != "" && targetPage != "undefined")
+       targetPage = targetPage.substring(1);
+    function loadFrames() {
+        if (targetPage != "" && targetPage != "undefined")
+             top.classFrame.location = top.targetPage;
+    }
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+</HEAD>
+<FRAMESET cols="20%,80%" title="" onLoad="top.loadFrames()">
+<FRAMESET rows="30%,70%" title="" onLoad="top.loadFrames()">
+<FRAME src="overview-frame.html" name="packageListFrame" title="All Packages">
+<FRAME src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
+</FRAMESET>
+<FRAME src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
+<NOFRAMES>
+<H2>
+Frame Alert</H2>
+
+<P>
+This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
+<BR>
+Link to<A HREF="overview-summary.html">Non-frame version.</A>
+</NOFRAMES>
+</FRAMESET>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/IConstants.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/IConstants.html
new file mode 100644
index 0000000..a9d2b2f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/IConstants.html
@@ -0,0 +1,677 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:35 CET 2009 -->
+<TITLE>
+IConstants
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.IConstants interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="IConstants";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IConstants.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/IDataBindingProvider.html" title="interface in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/IConstants.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IConstants.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt</FONT>
+<BR>
+Interface IConstants</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>IConstants</B></DL>
+</PRE>
+
+<P>
+Shared constants
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>yyang</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;org.eclipse.xwt.xml.DocumentObject[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#EMPTY_DOCOBJ_ARRAY">EMPTY_DOCOBJ_ARRAY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.util.Enumeration&lt;java.net.URL&gt;</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#EMPTY_ENUMERATION">EMPTY_ENUMERATION</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.util.ResourceBundle</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#EMPTY_RESOURCE_BUNDLE">EMPTY_RESOURCE_BUNDLE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#EMPTY_STRING_ARRAY">EMPTY_STRING_ARRAY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_BINDING">XAML_BINDING</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_CLR_ASSEMBLY">XAML_CLR_ASSEMBLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_CLR_NAMESPACE_PROTO">XAML_CLR_NAMESPACE_PROTO</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_COMMAND">XAML_COMMAND</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_DATACONTEXT">XAML_DATACONTEXT</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_DYNAMICRESOURCES">XAML_DYNAMICRESOURCES</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_STATICRESOURCES">XAML_STATICRESOURCES</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_X_ARRAY">XAML_X_ARRAY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_X_CLASS">XAML_X_CLASS</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_X_KEY">XAML_X_KEY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_X_NAME">XAML_X_NAME</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_X_NULL">XAML_X_NULL</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_X_SHARED">XAML_X_SHARED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_X_STATIC">XAML_X_STATIC</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_X_STATIC_MEMBER">XAML_X_STATIC_MEMBER</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_X_TARGET_TYPE">XAML_X_TARGET_TYPE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_X_TYPE">XAML_X_TYPE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XAML_X_TYPE_NAME">XAML_X_TYPE_NAME</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XML_NS">XML_NS</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XWT_EXTENSION">XWT_EXTENSION</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XWT_EXTENSION_SUFFIX">XWT_EXTENSION_SUFFIX</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XWT_NAMESPACE">XWT_NAMESPACE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html#XWT_X_NAMESPACE">XWT_X_NAMESPACE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="XAML_X_KEY"><!-- --></A><H3>
+XAML_X_KEY</H3>
+<PRE>
+static final java.lang.String <B>XAML_X_KEY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_X_KEY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="XAML_X_TYPE"><!-- --></A><H3>
+XAML_X_TYPE</H3>
+<PRE>
+static final java.lang.String <B>XAML_X_TYPE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_X_TYPE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="XAML_X_TARGET_TYPE"><!-- --></A><H3>
+XAML_X_TARGET_TYPE</H3>
+<PRE>
+static final java.lang.String <B>XAML_X_TARGET_TYPE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_X_TARGET_TYPE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="XAML_X_TYPE_NAME"><!-- --></A><H3>
+XAML_X_TYPE_NAME</H3>
+<PRE>
+static final java.lang.String <B>XAML_X_TYPE_NAME</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_X_TYPE_NAME">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="XAML_CLR_ASSEMBLY"><!-- --></A><H3>
+XAML_CLR_ASSEMBLY</H3>
+<PRE>
+static final java.lang.String <B>XAML_CLR_ASSEMBLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_CLR_ASSEMBLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="XAML_X_STATIC"><!-- --></A><H3>
+XAML_X_STATIC</H3>
+<PRE>
+static final java.lang.String <B>XAML_X_STATIC</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_X_STATIC">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="XAML_X_STATIC_MEMBER"><!-- --></A><H3>
+XAML_X_STATIC_MEMBER</H3>
+<PRE>
+static final java.lang.String <B>XAML_X_STATIC_MEMBER</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_X_STATIC_MEMBER">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="XAML_X_ARRAY"><!-- --></A><H3>
+XAML_X_ARRAY</H3>
+<PRE>
+static final java.lang.String <B>XAML_X_ARRAY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_X_ARRAY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="XAML_X_CLASS"><!-- --></A><H3>
+XAML_X_CLASS</H3>
+<PRE>
+static final java.lang.String <B>XAML_X_CLASS</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_X_CLASS">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="XAML_X_NAME"><!-- --></A><H3>
+XAML_X_NAME</H3>
+<PRE>
+static final java.lang.String <B>XAML_X_NAME</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_X_NAME">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="XAML_X_NULL"><!-- --></A><H3>
+XAML_X_NULL</H3>
+<PRE>
+static final java.lang.String <B>XAML_X_NULL</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_X_NULL">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="XAML_X_SHARED"><!-- --></A><H3>
+XAML_X_SHARED</H3>
+<PRE>
+static final java.lang.String <B>XAML_X_SHARED</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_X_SHARED">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="XAML_DATACONTEXT"><!-- --></A><H3>
+XAML_DATACONTEXT</H3>
+<PRE>
+static final java.lang.String <B>XAML_DATACONTEXT</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_DATACONTEXT">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="XAML_COMMAND"><!-- --></A><H3>
+XAML_COMMAND</H3>
+<PRE>
+static final java.lang.String <B>XAML_COMMAND</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_COMMAND">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="XAML_CLR_NAMESPACE_PROTO"><!-- --></A><H3>
+XAML_CLR_NAMESPACE_PROTO</H3>
+<PRE>
+static final java.lang.String <B>XAML_CLR_NAMESPACE_PROTO</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_CLR_NAMESPACE_PROTO">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="XAML_STATICRESOURCES"><!-- --></A><H3>
+XAML_STATICRESOURCES</H3>
+<PRE>
+static final java.lang.String <B>XAML_STATICRESOURCES</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_STATICRESOURCES">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="XAML_DYNAMICRESOURCES"><!-- --></A><H3>
+XAML_DYNAMICRESOURCES</H3>
+<PRE>
+static final java.lang.String <B>XAML_DYNAMICRESOURCES</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_DYNAMICRESOURCES">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="XAML_BINDING"><!-- --></A><H3>
+XAML_BINDING</H3>
+<PRE>
+static final java.lang.String <B>XAML_BINDING</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XAML_BINDING">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="XML_NS"><!-- --></A><H3>
+XML_NS</H3>
+<PRE>
+static final java.lang.String <B>XML_NS</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XML_NS">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="XWT_NAMESPACE"><!-- --></A><H3>
+XWT_NAMESPACE</H3>
+<PRE>
+static final java.lang.String <B>XWT_NAMESPACE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XWT_NAMESPACE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="XWT_X_NAMESPACE"><!-- --></A><H3>
+XWT_X_NAMESPACE</H3>
+<PRE>
+static final java.lang.String <B>XWT_X_NAMESPACE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XWT_X_NAMESPACE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="XWT_EXTENSION"><!-- --></A><H3>
+XWT_EXTENSION</H3>
+<PRE>
+static final java.lang.String <B>XWT_EXTENSION</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XWT_EXTENSION">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="XWT_EXTENSION_SUFFIX"><!-- --></A><H3>
+XWT_EXTENSION_SUFFIX</H3>
+<PRE>
+static final java.lang.String <B>XWT_EXTENSION_SUFFIX</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.eclipse.xwt.IConstants.XWT_EXTENSION_SUFFIX">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="EMPTY_ENUMERATION"><!-- --></A><H3>
+EMPTY_ENUMERATION</H3>
+<PRE>
+static final java.util.Enumeration&lt;java.net.URL&gt; <B>EMPTY_ENUMERATION</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="EMPTY_RESOURCE_BUNDLE"><!-- --></A><H3>
+EMPTY_RESOURCE_BUNDLE</H3>
+<PRE>
+static final java.util.ResourceBundle <B>EMPTY_RESOURCE_BUNDLE</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="EMPTY_STRING_ARRAY"><!-- --></A><H3>
+EMPTY_STRING_ARRAY</H3>
+<PRE>
+static final java.lang.String[] <B>EMPTY_STRING_ARRAY</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="EMPTY_DOCOBJ_ARRAY"><!-- --></A><H3>
+EMPTY_DOCOBJ_ARRAY</H3>
+<PRE>
+static final org.eclipse.xwt.xml.DocumentObject[] <B>EMPTY_DOCOBJ_ARRAY</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IConstants.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/IDataBindingProvider.html" title="interface in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/IConstants.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IConstants.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/IDataBindingProvider.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/IDataBindingProvider.html
new file mode 100644
index 0000000..0af605a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/IDataBindingProvider.html
@@ -0,0 +1,173 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:36 CET 2009 -->
+<TITLE>
+IDataBindingProvider
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.IDataBindingProvider interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="IDataBindingProvider";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IDataBindingProvider.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/IDataBindingProvider.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IDataBindingProvider.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt</FONT>
+<BR>
+Interface IDataBindingProvider</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>IDataBindingProvider</B></DL>
+</PRE>
+
+<P>
+A Data Binding provider defines the nature of Data Binding such as Bean Object Binding, EMF Object Binding, XML data Binding or Data Base binding
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>yyang</DD>
+</DL>
+<HR>
+
+<P>
+
+<P>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IDataBindingProvider.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/IDataBindingProvider.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IDataBindingProvider.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/ILoadData.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/ILoadData.html
new file mode 100644
index 0000000..20b4776
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/ILoadData.html
@@ -0,0 +1,372 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:36 CET 2009 -->
+<TITLE>
+ILoadData
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.ILoadData interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ILoadData";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ILoadData.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/IDataBindingProvider.html" title="interface in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/ILoadData.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ILoadData.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt</FONT>
+<BR>
+Interface ILoadData</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>ILoadData</B></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html#DefaultLoadData">DefaultLoadData</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html#getDataContext()">getDataContext</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;org.eclipse.swt.widgets.Composite</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html#getParent()">getParent</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html#getResourceDictionary()">getResourceDictionary</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html#getStyles()">getStyles</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html#setDataContext(java.lang.Object)">setDataContext</A></B>(java.lang.Object&nbsp;dataContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html#setParent(org.eclipse.swt.widgets.Composite)">setParent</A></B>(org.eclipse.swt.widgets.Composite&nbsp;parent)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html#setResourceDictionary(org.eclipse.xwt.ResourceDictionary)">setResourceDictionary</A></B>(<A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dico)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html#setStyles(int)">setStyles</A></B>(int&nbsp;styles)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="DefaultLoadData"><!-- --></A><H3>
+DefaultLoadData</H3>
+<PRE>
+static final <A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A> <B>DefaultLoadData</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getParent()"><!-- --></A><H3>
+getParent</H3>
+<PRE>
+org.eclipse.swt.widgets.Composite <B>getParent</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getStyles()"><!-- --></A><H3>
+getStyles</H3>
+<PRE>
+int <B>getStyles</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setStyles(int)"><!-- --></A><H3>
+setStyles</H3>
+<PRE>
+void <B>setStyles</B>(int&nbsp;styles)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setParent(org.eclipse.swt.widgets.Composite)"><!-- --></A><H3>
+setParent</H3>
+<PRE>
+void <B>setParent</B>(org.eclipse.swt.widgets.Composite&nbsp;parent)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getResourceDictionary()"><!-- --></A><H3>
+getResourceDictionary</H3>
+<PRE>
+<A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A> <B>getResourceDictionary</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setResourceDictionary(org.eclipse.xwt.ResourceDictionary)"><!-- --></A><H3>
+setResourceDictionary</H3>
+<PRE>
+void <B>setResourceDictionary</B>(<A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dico)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDataContext()"><!-- --></A><H3>
+getDataContext</H3>
+<PRE>
+java.lang.Object <B>getDataContext</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setDataContext(java.lang.Object)"><!-- --></A><H3>
+setDataContext</H3>
+<PRE>
+void <B>setDataContext</B>(java.lang.Object&nbsp;dataContext)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ILoadData.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/IDataBindingProvider.html" title="interface in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/ILoadData.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ILoadData.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/ILoadingContext.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/ILoadingContext.html
new file mode 100644
index 0000000..6a6c921
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/ILoadingContext.html
@@ -0,0 +1,222 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:36 CET 2009 -->
+<TITLE>
+ILoadingContext
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.ILoadingContext interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ILoadingContext";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ILoadingContext.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/ILoadingContext.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ILoadingContext.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt</FONT>
+<BR>
+Interface ILoadingContext</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>ILoadingContext</B></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.ClassLoader</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html#getClassLoader()">getClassLoader</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html#getNamespace()">getNamespace</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getClassLoader()"><!-- --></A><H3>
+getClassLoader</H3>
+<PRE>
+java.lang.ClassLoader <B>getClassLoader</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNamespace()"><!-- --></A><H3>
+getNamespace</H3>
+<PRE>
+java.lang.String <B>getNamespace</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ILoadingContext.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/ILoadingContext.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ILoadingContext.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/ILogger.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/ILogger.html
new file mode 100644
index 0000000..562b634
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/ILogger.html
@@ -0,0 +1,333 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:36 CET 2009 -->
+<TITLE>
+ILogger
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.ILogger interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ILogger";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ILogger.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/ILogger.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ILogger.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt</FONT>
+<BR>
+Interface ILogger</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>ILogger</B></DL>
+</PRE>
+
+<P>
+Looger interface
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>yyang</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILogger.html#addMessage(java.lang.String, org.eclipse.xwt.Tracking)">addMessage</A></B>(java.lang.String&nbsp;message,
+           <A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILogger.html#error(java.lang.Throwable)">error</A></B>(java.lang.Throwable&nbsp;e)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILogger.html#error(java.lang.Throwable, java.lang.String)">error</A></B>(java.lang.Throwable&nbsp;e,
+      java.lang.String&nbsp;message)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILogger.html#message(java.lang.String)">message</A></B>(java.lang.String&nbsp;message)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILogger.html#printInfo(java.lang.String, org.eclipse.xwt.Tracking, java.util.Set)">printInfo</A></B>(java.lang.String&nbsp;message,
+          <A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking,
+          java.util.Set&lt;<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&gt;&nbsp;trackType)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILogger.html#removeMessage(org.eclipse.xwt.Tracking)">removeMessage</A></B>(<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ILogger.html#warning(java.lang.String)">warning</A></B>(java.lang.String&nbsp;message)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="error(java.lang.Throwable)"><!-- --></A><H3>
+error</H3>
+<PRE>
+void <B>error</B>(java.lang.Throwable&nbsp;e)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="error(java.lang.Throwable, java.lang.String)"><!-- --></A><H3>
+error</H3>
+<PRE>
+void <B>error</B>(java.lang.Throwable&nbsp;e,
+           java.lang.String&nbsp;message)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="warning(java.lang.String)"><!-- --></A><H3>
+warning</H3>
+<PRE>
+void <B>warning</B>(java.lang.String&nbsp;message)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="message(java.lang.String)"><!-- --></A><H3>
+message</H3>
+<PRE>
+void <B>message</B>(java.lang.String&nbsp;message)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="printInfo(java.lang.String, org.eclipse.xwt.Tracking, java.util.Set)"><!-- --></A><H3>
+printInfo</H3>
+<PRE>
+void <B>printInfo</B>(java.lang.String&nbsp;message,
+               <A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking,
+               java.util.Set&lt;<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&gt;&nbsp;trackType)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addMessage(java.lang.String, org.eclipse.xwt.Tracking)"><!-- --></A><H3>
+addMessage</H3>
+<PRE>
+void <B>addMessage</B>(java.lang.String&nbsp;message,
+                <A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeMessage(org.eclipse.xwt.Tracking)"><!-- --></A><H3>
+removeMessage</H3>
+<PRE>
+void <B>removeMessage</B>(<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ILogger.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/ILogger.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ILogger.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/IMetaclassFactory.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/IMetaclassFactory.html
new file mode 100644
index 0000000..893fb91
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/IMetaclassFactory.html
@@ -0,0 +1,232 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:36 CET 2009 -->
+<TITLE>
+IMetaclassFactory
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.IMetaclassFactory interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="IMetaclassFactory";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IMetaclassFactory.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/IMetaclassFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IMetaclassFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt</FONT>
+<BR>
+Interface IMetaclassFactory</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>IMetaclassFactory</B></DL>
+</PRE>
+
+<P>
+Metaclass factory provides a customizable Metaclass creation mechanism.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>yyang</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IMetaclassFactory.html#create(java.lang.Class, org.eclipse.xwt.metadata.IMetaclass)">create</A></B>(java.lang.Class&lt;?&gt;&nbsp;type,
+       <A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;superMetaclass)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IMetaclassFactory.html#isFactoryOf(java.lang.Class)">isFactoryOf</A></B>(java.lang.Class&lt;?&gt;&nbsp;type)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="isFactoryOf(java.lang.Class)"><!-- --></A><H3>
+isFactoryOf</H3>
+<PRE>
+boolean <B>isFactoryOf</B>(java.lang.Class&lt;?&gt;&nbsp;type)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="create(java.lang.Class, org.eclipse.xwt.metadata.IMetaclass)"><!-- --></A><H3>
+create</H3>
+<PRE>
+<A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A> <B>create</B>(java.lang.Class&lt;?&gt;&nbsp;type,
+                  <A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;superMetaclass)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IMetaclassFactory.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/IMetaclassFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IMetaclassFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/IStyleProvider.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/IStyleProvider.html
new file mode 100644
index 0000000..747ac49
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/IStyleProvider.html
@@ -0,0 +1,209 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:32 CET 2009 -->
+<TITLE>
+IStyleProvider
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.IStyleProvider interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="IStyleProvider";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IStyleProvider.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/IStyleProvider.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IStyleProvider.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt</FONT>
+<BR>
+Interface IStyleProvider</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>IStyleProvider</B></DL>
+</PRE>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>yyang</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/IStyleProvider.html#apply(java.lang.String, org.eclipse.swt.widgets.Widget)">apply</A></B>(java.lang.String&nbsp;content,
+      org.eclipse.swt.widgets.Widget&nbsp;toApply)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="apply(java.lang.String, org.eclipse.swt.widgets.Widget)"><!-- --></A><H3>
+apply</H3>
+<PRE>
+void <B>apply</B>(java.lang.String&nbsp;content,
+           org.eclipse.swt.widgets.Widget&nbsp;toApply)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IStyleProvider.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/IStyleProvider.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IStyleProvider.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/ResourceDictionary.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/ResourceDictionary.html
new file mode 100644
index 0000000..e7e0fe5
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/ResourceDictionary.html
@@ -0,0 +1,255 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:36 CET 2009 -->
+<TITLE>
+ResourceDictionary
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.ResourceDictionary class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ResourceDictionary";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ResourceDictionary.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/ResourceDictionary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ResourceDictionary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.util.HashMap">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt</FONT>
+<BR>
+Class ResourceDictionary</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">java.util.AbstractMap&lt;K,V&gt;
+      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">java.util.HashMap&lt;java.lang.String,java.lang.Object&gt;
+          <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.ResourceDictionary</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable, java.lang.Cloneable, java.util.Map&lt;java.lang.String,java.lang.Object&gt;</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>ResourceDictionary</B><DT>extends java.util.HashMap&lt;java.lang.String,java.lang.Object&gt;</DL>
+</PRE>
+
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#org.eclipse.xwt.ResourceDictionary">Serialized Form</A></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html#ResourceDictionary()">ResourceDictionary</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.util.HashMap"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.util.HashMap</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clear, clone, containsKey, containsValue, entrySet, get, isEmpty, keySet, put, putAll, remove, size, values</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.util.AbstractMap"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.util.AbstractMap</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, hashCode, toString</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>getClass, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.util.Map"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from interface java.util.Map</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, hashCode</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ResourceDictionary()"><!-- --></A><H3>
+ResourceDictionary</H3>
+<PRE>
+public <B>ResourceDictionary</B>()</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ResourceDictionary.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/ResourceDictionary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ResourceDictionary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.util.HashMap">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/Tracking.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/Tracking.html
new file mode 100644
index 0000000..7113dd3
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/Tracking.html
@@ -0,0 +1,318 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:36 CET 2009 -->
+<TITLE>
+Tracking
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.Tracking class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Tracking";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Tracking.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/Tracking.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Tracking.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt</FONT>
+<BR>
+Enum Tracking</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">java.lang.Enum&lt;<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&gt;
+      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.Tracking</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable, java.lang.Comparable&lt;<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&gt;</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public enum <B>Tracking</B><DT>extends java.lang.Enum&lt;<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&gt;</DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+
+<A NAME="enum_constant_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Enum Constant Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/Tracking.html#DATABINDING">DATABINDING</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/Tracking.html#NAME">NAME</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/Tracking.html#valueOf(java.lang.String)">valueOf</A></B>(java.lang.String&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/Tracking.html#values()">values</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in
+the order they're declared.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Enum"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Enum</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>getClass, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+
+<A NAME="enum_constant_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Enum Constant Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="DATABINDING"><!-- --></A><H3>
+DATABINDING</H3>
+<PRE>
+public static final <A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A> <B>DATABINDING</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="NAME"><!-- --></A><H3>
+NAME</H3>
+<PRE>
+public static final <A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A> <B>NAME</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="values()"><!-- --></A><H3>
+values</H3>
+<PRE>
+public static final <A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>[] <B>values</B>()</PRE>
+<DL>
+<DD>Returns an array containing the constants of this enum type, in
+the order they're declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for(Tracking c : Tracking.values())
+        System.out.println(c);
+</pre>
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an array containing the constants of this enum type, in
+the order they're declared</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="valueOf(java.lang.String)"><!-- --></A><H3>
+valueOf</H3>
+<PRE>
+public static <A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A> <B>valueOf</B>(java.lang.String&nbsp;name)</PRE>
+<DL>
+<DD>Returns the enum constant of this type with the specified name.
+The string must match <I>exactly</I> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the enum constant to be returned.
+<DT><B>Returns:</B><DD>the enum constant with the specified name
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.IllegalArgumentException</CODE> - if this enum type has no constant
+with the specified name</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Tracking.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/Tracking.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Tracking.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/XWT.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/XWT.html
new file mode 100644
index 0000000..ad05851
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/XWT.html
@@ -0,0 +1,1431 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:36 CET 2009 -->
+<TITLE>
+XWT
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.XWT class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="XWT";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/XWT.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/XWT.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="XWT.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt</FONT>
+<BR>
+Class XWT</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.XWT</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>XWT</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+XWT is the main class of the XWT framework. It provides most of the services in API.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>jliu and yyang</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#XWT()">XWT</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#addTracking(org.eclipse.xwt.Tracking)">addTracking</A></B>(<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add a tracking option</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#convertFrom(java.lang.Class, java.lang.String)">convertFrom</A></B>(java.lang.Class&lt;?&gt;&nbsp;targetType,
+            java.lang.String&nbsp;string)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Data conversion service from String to a given type</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#convertFrom(org.eclipse.xwt.metadata.IMetaclass, java.lang.String)">convertFrom</A></B>(<A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;type,
+            java.lang.String&nbsp;string)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Data conversion service from String to a given type</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;org.eclipse.swt.widgets.Composite</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#findCompositeParent(org.eclipse.swt.widgets.Widget)">findCompositeParent</A></B>(org.eclipse.swt.widgets.Widget&nbsp;context)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Find the closet parent of type Composite</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;org.eclipse.core.databinding.conversion.IConverter</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#findConvertor(java.lang.Class, java.lang.Class)">findConvertor</A></B>(java.lang.Class&lt;?&gt;&nbsp;source,
+              java.lang.Class&lt;?&gt;&nbsp;target)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Find a Data converter</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#findElementByName(org.eclipse.swt.widgets.Widget, java.lang.String)">findElementByName</A></B>(org.eclipse.swt.widgets.Widget&nbsp;context,
+                  java.lang.String&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Find a named UI element.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#findLoadingContext(java.lang.Object)">findLoadingContext</A></B>(java.lang.Object&nbsp;container)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;org.eclipse.xwt.impl.NameContext</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#findNameContext(org.eclipse.swt.widgets.Widget)">findNameContext</A></B>(org.eclipse.swt.widgets.Widget&nbsp;widget)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A NameContext is a manager of UI element's name in a scope.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;org.eclipse.swt.widgets.Shell</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#findShell(org.eclipse.swt.widgets.Widget)">findShell</A></B>(org.eclipse.swt.widgets.Widget&nbsp;context)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Find the root shell</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#getAllMetaclasses()">getAllMetaclasses</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Metaclass services to return all registered Metaclasses.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#getCLR(org.eclipse.swt.widgets.Widget)">getCLR</A></B>(org.eclipse.swt.widgets.Widget&nbsp;widget)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the CLR (Common Language Runtime) object.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#getCommand(java.lang.String)">getCommand</A></B>(java.lang.String&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Find a command by name</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.util.Map&lt;java.lang.String,<A HREF="../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&gt;</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#getCommands()">getCommands</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return all registered commands</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;org.eclipse.xwt.XWT.ConverterService</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#getConverterService()">getConverterService</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#getDataContext(org.eclipse.swt.widgets.Widget)">getDataContext</A></B>(org.eclipse.swt.widgets.Widget&nbsp;element)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the DataContext of given element</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#getLoadingContext()">getLoadingContext</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#getLoadingContext(org.eclipse.swt.widgets.Composite)">getLoadingContext</A></B>(org.eclipse.swt.widgets.Composite&nbsp;object)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#getLogger()">getLogger</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the system logger.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#getMetaclass(java.lang.Object)">getMetaclass</A></B>(java.lang.Object&nbsp;object)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the Metaclass of the given object</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#getMetaclass(java.lang.String, java.lang.String)">getMetaclass</A></B>(java.lang.String&nbsp;tagName,
+             java.lang.String&nbsp;ns)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the corresponding Metaclass</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#getNamespace(java.lang.Class)">getNamespace</A></B>(java.lang.Class&lt;?&gt;&nbsp;javaclass)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This namespace service returns the associated or declared namespace for a given class.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.util.Set&lt;<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&gt;</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#getTrackings()">getTrackings</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get all tracking options</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#IsInitialized()">IsInitialized</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Check if the framework is initialized.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#isTracking(org.eclipse.xwt.Tracking)">isTracking</A></B>(<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Test if the tracking on argument is enabled.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.io.InputStream, java.net.URL, int, java.lang.Object)">load</A></B>(org.eclipse.swt.widgets.Composite&nbsp;parent,
+     java.io.InputStream&nbsp;stream,
+     java.net.URL&nbsp;file,
+     int&nbsp;styles,
+     java.lang.Object&nbsp;dataContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;load the content from a stream with a style and a DataContext.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.io.InputStream, java.net.URL, int, java.lang.Object, org.eclipse.xwt.ResourceDictionary)">load</A></B>(org.eclipse.swt.widgets.Composite&nbsp;parent,
+     java.io.InputStream&nbsp;stream,
+     java.net.URL&nbsp;file,
+     int&nbsp;styles,
+     java.lang.Object&nbsp;dataContext,
+     <A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dictionary)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;load the content from a stream with a style, a DataContext and a ResourceDictionary.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.io.InputStream, java.net.URL, java.lang.Object)">load</A></B>(org.eclipse.swt.widgets.Composite&nbsp;parent,
+     java.io.InputStream&nbsp;stream,
+     java.net.URL&nbsp;file,
+     java.lang.Object&nbsp;dataContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;load the content from a stream with a given DataContext.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.net.URL)">load</A></B>(org.eclipse.swt.widgets.Composite&nbsp;parent,
+     java.net.URL&nbsp;file)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Load the file content under a Composite.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.net.URL, int, java.lang.Object)">load</A></B>(org.eclipse.swt.widgets.Composite&nbsp;parent,
+     java.net.URL&nbsp;file,
+     int&nbsp;styles,
+     java.lang.Object&nbsp;dataContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Load the file content under a Composite with a style and a DataContext.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.net.URL, int, java.lang.Object, org.eclipse.xwt.ResourceDictionary)">load</A></B>(org.eclipse.swt.widgets.Composite&nbsp;parent,
+     java.net.URL&nbsp;file,
+     int&nbsp;styles,
+     java.lang.Object&nbsp;dataContext,
+     <A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dictionary)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Load the file content under a Composite with a style, a DataContext and a ResourceDictionary.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.net.URL, java.lang.Object)">load</A></B>(org.eclipse.swt.widgets.Composite&nbsp;parent,
+     java.net.URL&nbsp;file,
+     java.lang.Object&nbsp;dataContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Load the file content under a Composite with a DataContext.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#load(java.io.InputStream, java.net.URL)">load</A></B>(java.io.InputStream&nbsp;stream,
+     java.net.URL&nbsp;file)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;load the file content.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#load(java.io.InputStream, java.net.URL, org.eclipse.xwt.ILoadData)">load</A></B>(java.io.InputStream&nbsp;stream,
+     java.net.URL&nbsp;url,
+     <A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A>&nbsp;loadData)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generic load method</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#load(java.net.URL)">load</A></B>(java.net.URL&nbsp;file)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Load the file content.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#load(java.net.URL, int, java.lang.Object)">load</A></B>(java.net.URL&nbsp;file,
+     int&nbsp;styles,
+     java.lang.Object&nbsp;dataContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Load the file content with a DataContext.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#load(java.net.URL, int, java.lang.Object, org.eclipse.xwt.ResourceDictionary)">load</A></B>(java.net.URL&nbsp;file,
+     int&nbsp;styles,
+     java.lang.Object&nbsp;dataContext,
+     <A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dictionary)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Load the file content with a DataContext and a ResourceDictionary.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#load(java.net.URL, java.lang.Object)">load</A></B>(java.net.URL&nbsp;file,
+     java.lang.Object&nbsp;dataContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Load the file content with a DataContext.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#open(java.net.URL)">open</A></B>(java.net.URL&nbsp;url)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Open and show the file content in a new Shell.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#open(java.net.URL, java.lang.Object)">open</A></B>(java.net.URL&nbsp;url,
+     java.lang.Object&nbsp;dataContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;load the file content.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#open(java.net.URL, java.lang.Object, org.eclipse.xwt.ResourceDictionary)">open</A></B>(java.net.URL&nbsp;url,
+     java.lang.Object&nbsp;dataContext,
+     <A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dictionary)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;load the file content.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#register(java.lang.Class, java.lang.String)">register</A></B>(java.lang.Class&lt;?&gt;&nbsp;javaclass,
+         java.lang.String&nbsp;namespace)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Register UI type</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#registerCommand(java.lang.String, org.eclipse.xwt.input.ICommand)">registerCommand</A></B>(java.lang.String&nbsp;name,
+                <A HREF="../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&nbsp;command)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Register a command to a name</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#registerConvertor(org.eclipse.core.databinding.conversion.IConverter)">registerConvertor</A></B>(org.eclipse.core.databinding.conversion.IConverter&nbsp;converter)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Register a Data converter</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#registerMetaclass(java.lang.Class)">registerMetaclass</A></B>(java.lang.Class&nbsp;type)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Register UI type</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#registerMetaclassFactory(org.eclipse.xwt.IMetaclassFactory)">registerMetaclassFactory</A></B>(<A HREF="../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt">IMetaclassFactory</A>&nbsp;metaclassFactory)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Register Metaclass factory</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#removeTracking(org.eclipse.xwt.Tracking)">removeTracking</A></B>(<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Remove a tracking option.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#setDataContext(org.eclipse.swt.widgets.Widget, java.lang.Object)">setDataContext</A></B>(org.eclipse.swt.widgets.Widget&nbsp;widget,
+               java.lang.Object&nbsp;dataContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Change the DataContext of given element</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#setLoadingContext(org.eclipse.xwt.ILoadingContext)">setLoadingContext</A></B>(<A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A>&nbsp;loadingContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#setLogger(org.eclipse.xwt.ILogger)">setLogger</A></B>(<A HREF="../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A>&nbsp;logger)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Change the system logger</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html#unregisterCommand(java.lang.String)">unregisterCommand</A></B>(java.lang.String&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unregister a command</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="XWT()"><!-- --></A><H3>
+XWT</H3>
+<PRE>
+public <B>XWT</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getLogger()"><!-- --></A><H3>
+getLogger</H3>
+<PRE>
+public static <A HREF="../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A> <B>getLogger</B>()</PRE>
+<DL>
+<DD>Get the system logger.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setLogger(org.eclipse.xwt.ILogger)"><!-- --></A><H3>
+setLogger</H3>
+<PRE>
+public static void <B>setLogger</B>(<A HREF="../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A>&nbsp;logger)</PRE>
+<DL>
+<DD>Change the system logger
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>logger</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="IsInitialized()"><!-- --></A><H3>
+IsInitialized</H3>
+<PRE>
+public static boolean <B>IsInitialized</B>()</PRE>
+<DL>
+<DD>Check if the framework is initialized.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getNamespace(java.lang.Class)"><!-- --></A><H3>
+getNamespace</H3>
+<PRE>
+public static java.lang.String <B>getNamespace</B>(java.lang.Class&lt;?&gt;&nbsp;javaclass)</PRE>
+<DL>
+<DD>This namespace service returns the associated or declared namespace for a given class.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>javaclass</CODE> - 
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="findNameContext(org.eclipse.swt.widgets.Widget)"><!-- --></A><H3>
+findNameContext</H3>
+<PRE>
+public static org.eclipse.xwt.impl.NameContext <B>findNameContext</B>(org.eclipse.swt.widgets.Widget&nbsp;widget)</PRE>
+<DL>
+<DD>A NameContext is a manager of UI element's name in a scope. A name in a NameContext must be unique.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>widget</CODE> - 
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="findElementByName(org.eclipse.swt.widgets.Widget, java.lang.String)"><!-- --></A><H3>
+findElementByName</H3>
+<PRE>
+public static java.lang.Object <B>findElementByName</B>(org.eclipse.swt.widgets.Widget&nbsp;context,
+                                                 java.lang.String&nbsp;name)</PRE>
+<DL>
+<DD>Find a named UI element.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>context</CODE> - the start point of research.<DD><CODE>name</CODE> - 
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDataContext(org.eclipse.swt.widgets.Widget)"><!-- --></A><H3>
+getDataContext</H3>
+<PRE>
+public static java.lang.Object <B>getDataContext</B>(org.eclipse.swt.widgets.Widget&nbsp;element)</PRE>
+<DL>
+<DD>Get the DataContext of given element
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>context</CODE> - 
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setDataContext(org.eclipse.swt.widgets.Widget, java.lang.Object)"><!-- --></A><H3>
+setDataContext</H3>
+<PRE>
+public static void <B>setDataContext</B>(org.eclipse.swt.widgets.Widget&nbsp;widget,
+                                  java.lang.Object&nbsp;dataContext)</PRE>
+<DL>
+<DD>Change the DataContext of given element
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>context</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCLR(org.eclipse.swt.widgets.Widget)"><!-- --></A><H3>
+getCLR</H3>
+<PRE>
+public static java.lang.Object <B>getCLR</B>(org.eclipse.swt.widgets.Widget&nbsp;widget)</PRE>
+<DL>
+<DD>Get the CLR (Common Language Runtime) object. If no CLR object is found in this element, the research will be propagated in it parent.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>widget</CODE> - 
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="findShell(org.eclipse.swt.widgets.Widget)"><!-- --></A><H3>
+findShell</H3>
+<PRE>
+public static org.eclipse.swt.widgets.Shell <B>findShell</B>(org.eclipse.swt.widgets.Widget&nbsp;context)</PRE>
+<DL>
+<DD>Find the root shell
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>context</CODE> - 
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="findCompositeParent(org.eclipse.swt.widgets.Widget)"><!-- --></A><H3>
+findCompositeParent</H3>
+<PRE>
+public static org.eclipse.swt.widgets.Composite <B>findCompositeParent</B>(org.eclipse.swt.widgets.Widget&nbsp;context)</PRE>
+<DL>
+<DD>Find the closet parent of type Composite
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>context</CODE> - 
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMetaclass(java.lang.Object)"><!-- --></A><H3>
+getMetaclass</H3>
+<PRE>
+public static <A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A> <B>getMetaclass</B>(java.lang.Object&nbsp;object)</PRE>
+<DL>
+<DD>Get the Metaclass of the given object
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>context</CODE> - 
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="load(java.net.URL)"><!-- --></A><H3>
+load</H3>
+<PRE>
+public static org.eclipse.swt.widgets.Control <B>load</B>(java.net.URL&nbsp;file)
+                                            throws java.lang.Exception</PRE>
+<DL>
+<DD>Load the file content. All widget will be created but they are showed. This method return the root element.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.Exception</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="load(java.net.URL, int, java.lang.Object)"><!-- --></A><H3>
+load</H3>
+<PRE>
+public static org.eclipse.swt.widgets.Control <B>load</B>(java.net.URL&nbsp;file,
+                                                   int&nbsp;styles,
+                                                   java.lang.Object&nbsp;dataContext)
+                                            throws java.lang.Exception</PRE>
+<DL>
+<DD>Load the file content with a DataContext. All widget will be created but they are showed. This method returns the root element. The DataContext will be associated to the root element.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.Exception</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="load(java.net.URL, int, java.lang.Object, org.eclipse.xwt.ResourceDictionary)"><!-- --></A><H3>
+load</H3>
+<PRE>
+public static org.eclipse.swt.widgets.Control <B>load</B>(java.net.URL&nbsp;file,
+                                                   int&nbsp;styles,
+                                                   java.lang.Object&nbsp;dataContext,
+                                                   <A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dictionary)
+                                            throws java.lang.Exception</PRE>
+<DL>
+<DD>Load the file content with a DataContext and a ResourceDictionary. All widget will be created but they are showed. This method returns the root element. The DataContext will be associated to the root element.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.Exception</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="load(java.net.URL, java.lang.Object)"><!-- --></A><H3>
+load</H3>
+<PRE>
+public static org.eclipse.swt.widgets.Control <B>load</B>(java.net.URL&nbsp;file,
+                                                   java.lang.Object&nbsp;dataContext)
+                                            throws java.lang.Exception</PRE>
+<DL>
+<DD>Load the file content with a DataContext. All widget will be created but they are showed. This method returns the root element. The DataContext will be associated to the root element.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.Exception</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="load(org.eclipse.swt.widgets.Composite, java.net.URL)"><!-- --></A><H3>
+load</H3>
+<PRE>
+public static org.eclipse.swt.widgets.Control <B>load</B>(org.eclipse.swt.widgets.Composite&nbsp;parent,
+                                                   java.net.URL&nbsp;file)
+                                            throws java.lang.Exception</PRE>
+<DL>
+<DD>Load the file content under a Composite. All widget will be created. This method returns the root element. The DataContext will be associated to the root element.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.Exception</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="load(org.eclipse.swt.widgets.Composite, java.net.URL, java.lang.Object)"><!-- --></A><H3>
+load</H3>
+<PRE>
+public static org.eclipse.swt.widgets.Control <B>load</B>(org.eclipse.swt.widgets.Composite&nbsp;parent,
+                                                   java.net.URL&nbsp;file,
+                                                   java.lang.Object&nbsp;dataContext)
+                                            throws java.lang.Exception</PRE>
+<DL>
+<DD>Load the file content under a Composite with a DataContext. All widget will be created. This method returns the root element. The DataContext will be associated to the root element.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.Exception</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="load(org.eclipse.swt.widgets.Composite, java.net.URL, int, java.lang.Object)"><!-- --></A><H3>
+load</H3>
+<PRE>
+public static org.eclipse.swt.widgets.Control <B>load</B>(org.eclipse.swt.widgets.Composite&nbsp;parent,
+                                                   java.net.URL&nbsp;file,
+                                                   int&nbsp;styles,
+                                                   java.lang.Object&nbsp;dataContext)
+                                            throws java.lang.Exception</PRE>
+<DL>
+<DD>Load the file content under a Composite with a style and a DataContext. All widget will be created. This method returns the root element. The DataContext will be associated to the root element.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.Exception</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="load(org.eclipse.swt.widgets.Composite, java.net.URL, int, java.lang.Object, org.eclipse.xwt.ResourceDictionary)"><!-- --></A><H3>
+load</H3>
+<PRE>
+public static org.eclipse.swt.widgets.Control <B>load</B>(org.eclipse.swt.widgets.Composite&nbsp;parent,
+                                                   java.net.URL&nbsp;file,
+                                                   int&nbsp;styles,
+                                                   java.lang.Object&nbsp;dataContext,
+                                                   <A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dictionary)
+                                            throws java.lang.Exception</PRE>
+<DL>
+<DD>Load the file content under a Composite with a style, a DataContext and a ResourceDictionary. All widget will be created. This method returns the root element. The DataContext will be associated to the root element.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.Exception</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="open(java.net.URL)"><!-- --></A><H3>
+open</H3>
+<PRE>
+public static void <B>open</B>(java.net.URL&nbsp;url)
+                 throws java.lang.Exception</PRE>
+<DL>
+<DD>Open and show the file content in a new Shell.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.Exception</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="load(java.io.InputStream, java.net.URL)"><!-- --></A><H3>
+load</H3>
+<PRE>
+public static org.eclipse.swt.widgets.Control <B>load</B>(java.io.InputStream&nbsp;stream,
+                                                   java.net.URL&nbsp;file)
+                                            throws java.lang.Exception</PRE>
+<DL>
+<DD>load the file content. The corresponding UI element is not yet created
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.Exception</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="load(org.eclipse.swt.widgets.Composite, java.io.InputStream, java.net.URL, java.lang.Object)"><!-- --></A><H3>
+load</H3>
+<PRE>
+public static org.eclipse.swt.widgets.Control <B>load</B>(org.eclipse.swt.widgets.Composite&nbsp;parent,
+                                                   java.io.InputStream&nbsp;stream,
+                                                   java.net.URL&nbsp;file,
+                                                   java.lang.Object&nbsp;dataContext)
+                                            throws java.lang.Exception</PRE>
+<DL>
+<DD>load the content from a stream with a given DataContext. The root elements will be hold by Composite parent
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.Exception</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="load(org.eclipse.swt.widgets.Composite, java.io.InputStream, java.net.URL, int, java.lang.Object)"><!-- --></A><H3>
+load</H3>
+<PRE>
+public static org.eclipse.swt.widgets.Control <B>load</B>(org.eclipse.swt.widgets.Composite&nbsp;parent,
+                                                   java.io.InputStream&nbsp;stream,
+                                                   java.net.URL&nbsp;file,
+                                                   int&nbsp;styles,
+                                                   java.lang.Object&nbsp;dataContext)
+                                            throws java.lang.Exception</PRE>
+<DL>
+<DD>load the content from a stream with a style and a DataContext. The root elements will be hold by Composite parent
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.Exception</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="load(org.eclipse.swt.widgets.Composite, java.io.InputStream, java.net.URL, int, java.lang.Object, org.eclipse.xwt.ResourceDictionary)"><!-- --></A><H3>
+load</H3>
+<PRE>
+public static org.eclipse.swt.widgets.Control <B>load</B>(org.eclipse.swt.widgets.Composite&nbsp;parent,
+                                                   java.io.InputStream&nbsp;stream,
+                                                   java.net.URL&nbsp;file,
+                                                   int&nbsp;styles,
+                                                   java.lang.Object&nbsp;dataContext,
+                                                   <A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dictionary)
+                                            throws java.lang.Exception</PRE>
+<DL>
+<DD>load the content from a stream with a style, a DataContext and a ResourceDictionary. The root elements will be hold by Composite parent
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.Exception</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="open(java.net.URL, java.lang.Object)"><!-- --></A><H3>
+open</H3>
+<PRE>
+public static void <B>open</B>(java.net.URL&nbsp;url,
+                        java.lang.Object&nbsp;dataContext)
+                 throws java.lang.Exception</PRE>
+<DL>
+<DD>load the file content. The corresponding UI element is not yet created
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.Exception</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="open(java.net.URL, java.lang.Object, org.eclipse.xwt.ResourceDictionary)"><!-- --></A><H3>
+open</H3>
+<PRE>
+public static void <B>open</B>(java.net.URL&nbsp;url,
+                        java.lang.Object&nbsp;dataContext,
+                        <A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dictionary)
+                 throws java.lang.Exception</PRE>
+<DL>
+<DD>load the file content. The corresponding UI element is not yet created
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.Exception</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="convertFrom(org.eclipse.xwt.metadata.IMetaclass, java.lang.String)"><!-- --></A><H3>
+convertFrom</H3>
+<PRE>
+public static java.lang.Object <B>convertFrom</B>(<A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;type,
+                                           java.lang.String&nbsp;string)</PRE>
+<DL>
+<DD>Data conversion service from String to a given type
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>type</CODE> - <DD><CODE>string</CODE> - 
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="convertFrom(java.lang.Class, java.lang.String)"><!-- --></A><H3>
+convertFrom</H3>
+<PRE>
+public static java.lang.Object <B>convertFrom</B>(java.lang.Class&lt;?&gt;&nbsp;targetType,
+                                           java.lang.String&nbsp;string)</PRE>
+<DL>
+<DD>Data conversion service from String to a given type
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>targetType</CODE> - <DD><CODE>string</CODE> - 
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="load(java.io.InputStream, java.net.URL, org.eclipse.xwt.ILoadData)"><!-- --></A><H3>
+load</H3>
+<PRE>
+public static org.eclipse.swt.widgets.Control <B>load</B>(java.io.InputStream&nbsp;stream,
+                                                   java.net.URL&nbsp;url,
+                                                   <A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A>&nbsp;loadData)
+                                            throws java.lang.Exception</PRE>
+<DL>
+<DD>Generic load method
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>stream</CODE> - <DD><CODE>url</CODE> - <DD><CODE>loadData</CODE> - 
+<DT><B>Returns:</B><DD>
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.Exception</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getAllMetaclasses()"><!-- --></A><H3>
+getAllMetaclasses</H3>
+<PRE>
+public static <A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>[] <B>getAllMetaclasses</B>()</PRE>
+<DL>
+<DD>Metaclass services to return all registered Metaclasses.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>stream</CODE> - <DD><CODE>url</CODE> - <DD><CODE>loadData</CODE> - 
+<DT><B>Returns:</B><DD>
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.Exception</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMetaclass(java.lang.String, java.lang.String)"><!-- --></A><H3>
+getMetaclass</H3>
+<PRE>
+public static <A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A> <B>getMetaclass</B>(java.lang.String&nbsp;tagName,
+                                      java.lang.String&nbsp;ns)</PRE>
+<DL>
+<DD>Get the corresponding Metaclass
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>tagName</CODE> - <DD><CODE>ns</CODE> - The namespace
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="registerMetaclass(java.lang.Class)"><!-- --></A><H3>
+registerMetaclass</H3>
+<PRE>
+public static <A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A> <B>registerMetaclass</B>(java.lang.Class&nbsp;type)</PRE>
+<DL>
+<DD>Register UI type
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>javaclass</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="registerMetaclassFactory(org.eclipse.xwt.IMetaclassFactory)"><!-- --></A><H3>
+registerMetaclassFactory</H3>
+<PRE>
+public static void <B>registerMetaclassFactory</B>(<A HREF="../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt">IMetaclassFactory</A>&nbsp;metaclassFactory)</PRE>
+<DL>
+<DD>Register Metaclass factory
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>javaclass</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="register(java.lang.Class, java.lang.String)"><!-- --></A><H3>
+register</H3>
+<PRE>
+public static <A HREF="../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A> <B>register</B>(java.lang.Class&lt;?&gt;&nbsp;javaclass,
+                                  java.lang.String&nbsp;namespace)</PRE>
+<DL>
+<DD>Register UI type
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>javaclass</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getConverterService()"><!-- --></A><H3>
+getConverterService</H3>
+<PRE>
+public static org.eclipse.xwt.XWT.ConverterService <B>getConverterService</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="findConvertor(java.lang.Class, java.lang.Class)"><!-- --></A><H3>
+findConvertor</H3>
+<PRE>
+public static org.eclipse.core.databinding.conversion.IConverter <B>findConvertor</B>(java.lang.Class&lt;?&gt;&nbsp;source,
+                                                                               java.lang.Class&lt;?&gt;&nbsp;target)</PRE>
+<DL>
+<DD>Find a Data converter
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>converter</CODE> - <DD><CODE>type</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="registerConvertor(org.eclipse.core.databinding.conversion.IConverter)"><!-- --></A><H3>
+registerConvertor</H3>
+<PRE>
+public static void <B>registerConvertor</B>(org.eclipse.core.databinding.conversion.IConverter&nbsp;converter)</PRE>
+<DL>
+<DD>Register a Data converter
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>converter</CODE> - <DD><CODE>type</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="findLoadingContext(java.lang.Object)"><!-- --></A><H3>
+findLoadingContext</H3>
+<PRE>
+public static <A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A> <B>findLoadingContext</B>(java.lang.Object&nbsp;container)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLoadingContext(org.eclipse.swt.widgets.Composite)"><!-- --></A><H3>
+getLoadingContext</H3>
+<PRE>
+public static <A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A> <B>getLoadingContext</B>(org.eclipse.swt.widgets.Composite&nbsp;object)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLoadingContext()"><!-- --></A><H3>
+getLoadingContext</H3>
+<PRE>
+public static <A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A> <B>getLoadingContext</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setLoadingContext(org.eclipse.xwt.ILoadingContext)"><!-- --></A><H3>
+setLoadingContext</H3>
+<PRE>
+public static void <B>setLoadingContext</B>(<A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A>&nbsp;loadingContext)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addTracking(org.eclipse.xwt.Tracking)"><!-- --></A><H3>
+addTracking</H3>
+<PRE>
+public static void <B>addTracking</B>(<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</PRE>
+<DL>
+<DD>Add a tracking option
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>tracking</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isTracking(org.eclipse.xwt.Tracking)"><!-- --></A><H3>
+isTracking</H3>
+<PRE>
+public static boolean <B>isTracking</B>(<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</PRE>
+<DL>
+<DD>Test if the tracking on argument is enabled.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>tracking</CODE> - 
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getTrackings()"><!-- --></A><H3>
+getTrackings</H3>
+<PRE>
+public static java.util.Set&lt;<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&gt; <B>getTrackings</B>()</PRE>
+<DL>
+<DD>Get all tracking options
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeTracking(org.eclipse.xwt.Tracking)"><!-- --></A><H3>
+removeTracking</H3>
+<PRE>
+public static void <B>removeTracking</B>(<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</PRE>
+<DL>
+<DD>Remove a tracking option.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>tracking</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="registerCommand(java.lang.String, org.eclipse.xwt.input.ICommand)"><!-- --></A><H3>
+registerCommand</H3>
+<PRE>
+public static void <B>registerCommand</B>(java.lang.String&nbsp;name,
+                                   <A HREF="../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&nbsp;command)</PRE>
+<DL>
+<DD>Register a command to a name
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>name</CODE> - <DD><CODE>command</CODE> - </DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCommand(java.lang.String)"><!-- --></A><H3>
+getCommand</H3>
+<PRE>
+public static <A HREF="../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A> <B>getCommand</B>(java.lang.String&nbsp;name)</PRE>
+<DL>
+<DD>Find a command by name
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>name</CODE> - 
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCommands()"><!-- --></A><H3>
+getCommands</H3>
+<PRE>
+public static java.util.Map&lt;java.lang.String,<A HREF="../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&gt; <B>getCommands</B>()</PRE>
+<DL>
+<DD>Return all registered commands
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="unregisterCommand(java.lang.String)"><!-- --></A><H3>
+unregisterCommand</H3>
+<PRE>
+public static void <B>unregisterCommand</B>(java.lang.String&nbsp;name)</PRE>
+<DL>
+<DD>Unregister a command
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>name</CODE> - </DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/XWT.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/XWT.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="XWT.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/XWTException.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/XWTException.html
new file mode 100644
index 0000000..d059690
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/XWTException.html
@@ -0,0 +1,282 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:36 CET 2009 -->
+<TITLE>
+XWTException
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.XWTException class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="XWTException";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/XWTException.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/XWTException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="XWTException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt</FONT>
+<BR>
+Class XWTException</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">java.lang.Throwable
+      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">java.lang.Exception
+          <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">java.lang.RuntimeException
+              <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.XWTException</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>XWTException</B><DT>extends java.lang.RuntimeException</DL>
+</PRE>
+
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#org.eclipse.xwt.XWTException">Serialized Form</A></DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWTException.html#XWTException()">XWTException</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWTException.html#XWTException(java.lang.String)">XWTException</A></B>(java.lang.String&nbsp;message)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWTException.html#XWTException(java.lang.String, java.lang.Throwable)">XWTException</A></B>(java.lang.String&nbsp;message,
+             java.lang.Throwable&nbsp;cause)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWTException.html#XWTException(java.lang.Throwable)">XWTException</A></B>(java.lang.Throwable&nbsp;cause)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Throwable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Throwable</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="XWTException(java.lang.String, java.lang.Throwable)"><!-- --></A><H3>
+XWTException</H3>
+<PRE>
+public <B>XWTException</B>(java.lang.String&nbsp;message,
+                    java.lang.Throwable&nbsp;cause)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="XWTException(java.lang.String)"><!-- --></A><H3>
+XWTException</H3>
+<PRE>
+public <B>XWTException</B>(java.lang.String&nbsp;message)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="XWTException(java.lang.Throwable)"><!-- --></A><H3>
+XWTException</H3>
+<PRE>
+public <B>XWTException</B>(java.lang.Throwable&nbsp;cause)</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="XWTException()"><!-- --></A><H3>
+XWTException</H3>
+<PRE>
+public <B>XWTException</B>()</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/XWTException.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/XWTException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="XWTException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Throwable">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/XWTMaps.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/XWTMaps.html
new file mode 100644
index 0000000..77bfb26
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/XWTMaps.html
@@ -0,0 +1,391 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:36 CET 2009 -->
+<TITLE>
+XWTMaps
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.XWTMaps class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="XWTMaps";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/XWTMaps.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/XWTMaps.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="XWTMaps.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt</FONT>
+<BR>
+Class XWTMaps</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.XWTMaps</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>XWTMaps</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>jliu</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWTMaps.html#getAccelerator(java.lang.String)">getAccelerator</A></B>(java.lang.String&nbsp;key)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.util.Collection&lt;java.lang.String&gt;</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWTMaps.html#getAcceleratorKeys()">getAcceleratorKeys</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWTMaps.html#getColor(java.lang.String)">getColor</A></B>(java.lang.String&nbsp;key)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.util.Collection&lt;java.lang.String&gt;</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWTMaps.html#getColorKeys()">getColorKeys</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWTMaps.html#getCombAccelerator(java.lang.String)">getCombAccelerator</A></B>(java.lang.String&nbsp;content)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWTMaps.html#getEvent(java.lang.String)">getEvent</A></B>(java.lang.String&nbsp;key)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.util.Collection&lt;java.lang.String&gt;</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWTMaps.html#getEventKeys()">getEventKeys</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWTMaps.html#getStyle(java.lang.String)">getStyle</A></B>(java.lang.String&nbsp;key)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.util.Collection&lt;java.lang.String&gt;</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWTMaps.html#getStyleKeys()">getStyleKeys</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../org/eclipse/e4/xwt/XWTMaps.html#getValue(java.lang.String)">getValue</A></B>(java.lang.String&nbsp;key)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getStyleKeys()"><!-- --></A><H3>
+getStyleKeys</H3>
+<PRE>
+public static java.util.Collection&lt;java.lang.String&gt; <B>getStyleKeys</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getStyle(java.lang.String)"><!-- --></A><H3>
+getStyle</H3>
+<PRE>
+public static int <B>getStyle</B>(java.lang.String&nbsp;key)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getColorKeys()"><!-- --></A><H3>
+getColorKeys</H3>
+<PRE>
+public static java.util.Collection&lt;java.lang.String&gt; <B>getColorKeys</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getColor(java.lang.String)"><!-- --></A><H3>
+getColor</H3>
+<PRE>
+public static int <B>getColor</B>(java.lang.String&nbsp;key)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEventKeys()"><!-- --></A><H3>
+getEventKeys</H3>
+<PRE>
+public static java.util.Collection&lt;java.lang.String&gt; <B>getEventKeys</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEvent(java.lang.String)"><!-- --></A><H3>
+getEvent</H3>
+<PRE>
+public static int <B>getEvent</B>(java.lang.String&nbsp;key)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getAcceleratorKeys()"><!-- --></A><H3>
+getAcceleratorKeys</H3>
+<PRE>
+public static java.util.Collection&lt;java.lang.String&gt; <B>getAcceleratorKeys</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getAccelerator(java.lang.String)"><!-- --></A><H3>
+getAccelerator</H3>
+<PRE>
+public static int <B>getAccelerator</B>(java.lang.String&nbsp;key)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getValue(java.lang.String)"><!-- --></A><H3>
+getValue</H3>
+<PRE>
+public static int <B>getValue</B>(java.lang.String&nbsp;key)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCombAccelerator(java.lang.String)"><!-- --></A><H3>
+getCombAccelerator</H3>
+<PRE>
+public static java.lang.String <B>getCombAccelerator</B>(java.lang.String&nbsp;content)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/XWTMaps.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/XWTMaps.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="XWTMaps.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/IConstants.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/IConstants.html
new file mode 100644
index 0000000..d9ba93d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/IConstants.html
@@ -0,0 +1,140 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Interface org.eclipse.xwt.IConstants
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Interface org.eclipse.xwt.IConstants";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useIConstants.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IConstants.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.xwt.IConstants</B></H2>
+</CENTER>
+No usage of org.eclipse.xwt.IConstants
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useIConstants.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IConstants.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/IDataBindingProvider.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/IDataBindingProvider.html
new file mode 100644
index 0000000..f03deb1
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/IDataBindingProvider.html
@@ -0,0 +1,140 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Interface org.eclipse.xwt.IDataBindingProvider
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Interface org.eclipse.xwt.IDataBindingProvider";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/IDataBindingProvider.html" title="interface in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useIDataBindingProvider.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IDataBindingProvider.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.xwt.IDataBindingProvider</B></H2>
+</CENTER>
+No usage of org.eclipse.xwt.IDataBindingProvider
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/IDataBindingProvider.html" title="interface in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useIDataBindingProvider.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IDataBindingProvider.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/ILoadData.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/ILoadData.html
new file mode 100644
index 0000000..cc3383c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/ILoadData.html
@@ -0,0 +1,194 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Interface org.eclipse.xwt.ILoadData
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Interface org.eclipse.xwt.ILoadData";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useILoadData.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ILoadData.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.xwt.ILoadData</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt"><B>org.eclipse.xwt</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A> in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> declared as <A HREF="../../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A></CODE></FONT></TD>
+<TD><CODE><B>ILoadData.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/ILoadData.html#DefaultLoadData">DefaultLoadData</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> with parameters of type <A HREF="../../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>
+<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#load(java.io.InputStream, java.net.URL, org.eclipse.xwt.ILoadData)">load</A></B>(java.io.InputStream&nbsp;stream,
+     java.net.URL&nbsp;url,
+     <A HREF="../../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A>&nbsp;loadData)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generic load method</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useILoadData.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ILoadData.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/ILoadingContext.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/ILoadingContext.html
new file mode 100644
index 0000000..b66a98f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/ILoadingContext.html
@@ -0,0 +1,208 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Interface org.eclipse.xwt.ILoadingContext
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Interface org.eclipse.xwt.ILoadingContext";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useILoadingContext.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ILoadingContext.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.xwt.ILoadingContext</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt"><B>org.eclipse.xwt</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A> in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> that return <A HREF="../../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A></CODE></FONT></TD>
+<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#findLoadingContext(java.lang.Object)">findLoadingContext</A></B>(java.lang.Object&nbsp;container)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A></CODE></FONT></TD>
+<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#getLoadingContext()">getLoadingContext</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A></CODE></FONT></TD>
+<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#getLoadingContext(org.eclipse.swt.widgets.Composite)">getLoadingContext</A></B>(org.eclipse.swt.widgets.Composite&nbsp;object)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> with parameters of type <A HREF="../../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#setLoadingContext(org.eclipse.xwt.ILoadingContext)">setLoadingContext</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A>&nbsp;loadingContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useILoadingContext.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ILoadingContext.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/ILogger.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/ILogger.html
new file mode 100644
index 0000000..65dd29f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/ILogger.html
@@ -0,0 +1,192 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Interface org.eclipse.xwt.ILogger
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Interface org.eclipse.xwt.ILogger";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useILogger.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ILogger.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.xwt.ILogger</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt"><B>org.eclipse.xwt</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A> in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> that return <A HREF="../../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A></CODE></FONT></TD>
+<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#getLogger()">getLogger</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the system logger.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> with parameters of type <A HREF="../../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#setLogger(org.eclipse.xwt.ILogger)">setLogger</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A>&nbsp;logger)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Change the system logger</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useILogger.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ILogger.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/IMetaclassFactory.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/IMetaclassFactory.html
new file mode 100644
index 0000000..e645c7f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/IMetaclassFactory.html
@@ -0,0 +1,176 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Interface org.eclipse.xwt.IMetaclassFactory
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Interface org.eclipse.xwt.IMetaclassFactory";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useIMetaclassFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IMetaclassFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.xwt.IMetaclassFactory</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt">IMetaclassFactory</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt"><B>org.eclipse.xwt</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt">IMetaclassFactory</A> in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> with parameters of type <A HREF="../../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt">IMetaclassFactory</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#registerMetaclassFactory(org.eclipse.xwt.IMetaclassFactory)">registerMetaclassFactory</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt">IMetaclassFactory</A>&nbsp;metaclassFactory)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Register Metaclass factory</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useIMetaclassFactory.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IMetaclassFactory.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/IStyleProvider.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/IStyleProvider.html
new file mode 100644
index 0000000..d06dfbe
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/IStyleProvider.html
@@ -0,0 +1,140 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->
+<TITLE>
+Uses of Interface org.eclipse.xwt.IStyleProvider
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Interface org.eclipse.xwt.IStyleProvider";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/IStyleProvider.html" title="interface in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useIStyleProvider.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IStyleProvider.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.xwt.IStyleProvider</B></H2>
+</CENTER>
+No usage of org.eclipse.xwt.IStyleProvider
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/IStyleProvider.html" title="interface in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useIStyleProvider.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IStyleProvider.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/ResourceDictionary.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/ResourceDictionary.html
new file mode 100644
index 0000000..c491023
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/ResourceDictionary.html
@@ -0,0 +1,238 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Class org.eclipse.xwt.ResourceDictionary
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.xwt.ResourceDictionary";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useResourceDictionary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ResourceDictionary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.xwt.ResourceDictionary</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt"><B>org.eclipse.xwt</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A> in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> that return <A HREF="../../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A></CODE></FONT></TD>
+<TD><CODE><B>ILoadData.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/ILoadData.html#getResourceDictionary()">getResourceDictionary</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> with parameters of type <A HREF="../../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>
+<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.io.InputStream, java.net.URL, int, java.lang.Object, org.eclipse.xwt.ResourceDictionary)">load</A></B>(org.eclipse.swt.widgets.Composite&nbsp;parent,
+     java.io.InputStream&nbsp;stream,
+     java.net.URL&nbsp;file,
+     int&nbsp;styles,
+     java.lang.Object&nbsp;dataContext,
+     <A HREF="../../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dictionary)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;load the content from a stream with a style, a DataContext and a ResourceDictionary.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>
+<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#load(org.eclipse.swt.widgets.Composite, java.net.URL, int, java.lang.Object, org.eclipse.xwt.ResourceDictionary)">load</A></B>(org.eclipse.swt.widgets.Composite&nbsp;parent,
+     java.net.URL&nbsp;file,
+     int&nbsp;styles,
+     java.lang.Object&nbsp;dataContext,
+     <A HREF="../../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dictionary)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Load the file content under a Composite with a style, a DataContext and a ResourceDictionary.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;org.eclipse.swt.widgets.Control</CODE></FONT></TD>
+<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#load(java.net.URL, int, java.lang.Object, org.eclipse.xwt.ResourceDictionary)">load</A></B>(java.net.URL&nbsp;file,
+     int&nbsp;styles,
+     java.lang.Object&nbsp;dataContext,
+     <A HREF="../../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dictionary)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Load the file content with a DataContext and a ResourceDictionary.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#open(java.net.URL, java.lang.Object, org.eclipse.xwt.ResourceDictionary)">open</A></B>(java.net.URL&nbsp;url,
+     java.lang.Object&nbsp;dataContext,
+     <A HREF="../../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dictionary)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;load the file content.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>ILoadData.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/ILoadData.html#setResourceDictionary(org.eclipse.xwt.ResourceDictionary)">setResourceDictionary</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A>&nbsp;dico)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useResourceDictionary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ResourceDictionary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/Tracking.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/Tracking.html
new file mode 100644
index 0000000..33f8482
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/Tracking.html
@@ -0,0 +1,278 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Class org.eclipse.xwt.Tracking
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.xwt.Tracking";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useTracking.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Tracking.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.xwt.Tracking</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt"><B>org.eclipse.xwt</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A> in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> that return <A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A></CODE></FONT></TD>
+<TD><CODE><B>Tracking.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html#valueOf(java.lang.String)">valueOf</A></B>(java.lang.String&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>[]</CODE></FONT></TD>
+<TD><CODE><B>Tracking.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html#values()">values</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in
+the order they're declared.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> that return types with arguments of type <A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.util.Set&lt;<A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&gt;</CODE></FONT></TD>
+<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#getTrackings()">getTrackings</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get all tracking options</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> with parameters of type <A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>ILogger.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/ILogger.html#addMessage(java.lang.String, org.eclipse.xwt.Tracking)">addMessage</A></B>(java.lang.String&nbsp;message,
+           <A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#addTracking(org.eclipse.xwt.Tracking)">addTracking</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add a tracking option</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#isTracking(org.eclipse.xwt.Tracking)">isTracking</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Test if the tracking on argument is enabled.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>ILogger.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/ILogger.html#printInfo(java.lang.String, org.eclipse.xwt.Tracking, java.util.Set)">printInfo</A></B>(java.lang.String&nbsp;message,
+          <A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking,
+          java.util.Set&lt;<A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&gt;&nbsp;trackType)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>ILogger.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/ILogger.html#removeMessage(org.eclipse.xwt.Tracking)">removeMessage</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>XWT.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/XWT.html#removeTracking(org.eclipse.xwt.Tracking)">removeTracking</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Remove a tracking option.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Method parameters in <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> with type arguments of type <A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>ILogger.</B><B><A HREF="../../../../../org/eclipse/e4/xwt/ILogger.html#printInfo(java.lang.String, org.eclipse.xwt.Tracking, java.util.Set)">printInfo</A></B>(java.lang.String&nbsp;message,
+          <A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&nbsp;tracking,
+          java.util.Set&lt;<A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A>&gt;&nbsp;trackType)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useTracking.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Tracking.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/XWT.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/XWT.html
new file mode 100644
index 0000000..53efdcb
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/XWT.html
@@ -0,0 +1,140 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Class org.eclipse.xwt.XWT
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.xwt.XWT";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useXWT.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="XWT.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.xwt.XWT</B></H2>
+</CENTER>
+No usage of org.eclipse.xwt.XWT
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useXWT.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="XWT.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/XWTException.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/XWTException.html
new file mode 100644
index 0000000..d82f929
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/XWTException.html
@@ -0,0 +1,140 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Class org.eclipse.xwt.XWTException
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.xwt.XWTException";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useXWTException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="XWTException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.xwt.XWTException</B></H2>
+</CENTER>
+No usage of org.eclipse.xwt.XWTException
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useXWTException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="XWTException.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/XWTMaps.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/XWTMaps.html
new file mode 100644
index 0000000..2a7a8db
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/class-use/XWTMaps.html
@@ -0,0 +1,140 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Class org.eclipse.xwt.XWTMaps
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.xwt.XWTMaps";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useXWTMaps.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="XWTMaps.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.xwt.XWTMaps</B></H2>
+</CENTER>
+No usage of org.eclipse.xwt.XWTMaps
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/\class-useXWTMaps.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="XWTMaps.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/BindingToObject.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/BindingToObject.html
new file mode 100644
index 0000000..9935e89
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/BindingToObject.html
@@ -0,0 +1,343 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:32 CET 2009 -->
+<TITLE>
+BindingToObject
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.converters.BindingToObject class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="BindingToObject";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/BindingToObject.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/BindingToObject.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BindingToObject.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt.converters</FONT>
+<BR>
+Class BindingToObject</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.converters.BindingToObject</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>org.eclipse.core.databinding.conversion.IConverter</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>BindingToObject</B><DT>extends java.lang.Object<DT>implements org.eclipse.core.databinding.conversion.IConverter</DL>
+</PRE>
+
+<P>
+Binding to Object covnerter
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>yyang</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html" title="class in org.eclipse.xwt.converters">BindingToObject</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html#instance">instance</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html#BindingToObject()">BindingToObject</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html#convert(java.lang.Object)">convert</A></B>(java.lang.Object&nbsp;fromObject)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html#getFromType()">getFromType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html#getToType()">getToType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="instance"><!-- --></A><H3>
+instance</H3>
+<PRE>
+public static <A HREF="../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html" title="class in org.eclipse.xwt.converters">BindingToObject</A> <B>instance</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="BindingToObject()"><!-- --></A><H3>
+BindingToObject</H3>
+<PRE>
+public <B>BindingToObject</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="convert(java.lang.Object)"><!-- --></A><H3>
+convert</H3>
+<PRE>
+public java.lang.Object <B>convert</B>(java.lang.Object&nbsp;fromObject)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>convert</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getFromType()"><!-- --></A><H3>
+getFromType</H3>
+<PRE>
+public java.lang.Object <B>getFromType</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getFromType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getToType()"><!-- --></A><H3>
+getToType</H3>
+<PRE>
+public java.lang.Object <B>getToType</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getToType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/BindingToObject.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/BindingToObject.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BindingToObject.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/DateToString.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/DateToString.html
new file mode 100644
index 0000000..6daf380
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/DateToString.html
@@ -0,0 +1,344 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:32 CET 2009 -->
+<TITLE>
+DateToString
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.converters.DateToString class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="DateToString";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/DateToString.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/DateToString.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="DateToString.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt.converters</FONT>
+<BR>
+Class DateToString</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters">org.eclipse.xwt.converters.ObjectToString</A>
+      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.converters.DateToString</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>org.eclipse.core.databinding.conversion.IConverter</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>DateToString</B><DT>extends <A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters">ObjectToString</A></DL>
+</PRE>
+
+<P>
+Date to String converter
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>yyang</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters">DateToString</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/DateToString.html#instance">instance</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/DateToString.html#DateToString()">DateToString</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/DateToString.html#convert(java.lang.Object)">convert</A></B>(java.lang.Object&nbsp;fromObject)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/DateToString.html#getFromType()">getFromType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/DateToString.html#getToType()">getToType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="instance"><!-- --></A><H3>
+instance</H3>
+<PRE>
+public static <A HREF="../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters">DateToString</A> <B>instance</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="DateToString()"><!-- --></A><H3>
+DateToString</H3>
+<PRE>
+public <B>DateToString</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="convert(java.lang.Object)"><!-- --></A><H3>
+convert</H3>
+<PRE>
+public java.lang.Object <B>convert</B>(java.lang.Object&nbsp;fromObject)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>convert</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html#convert(java.lang.Object)">convert</A></CODE> in class <CODE><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters">ObjectToString</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getFromType()"><!-- --></A><H3>
+getFromType</H3>
+<PRE>
+public java.lang.Object <B>getFromType</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getFromType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html#getFromType()">getFromType</A></CODE> in class <CODE><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters">ObjectToString</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getToType()"><!-- --></A><H3>
+getToType</H3>
+<PRE>
+public java.lang.Object <B>getToType</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getToType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html#getToType()">getToType</A></CODE> in class <CODE><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters">ObjectToString</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/DateToString.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/DateToString.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="DateToString.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/IntegerToString.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/IntegerToString.html
new file mode 100644
index 0000000..21865fc
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/IntegerToString.html
@@ -0,0 +1,331 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:32 CET 2009 -->
+<TITLE>
+IntegerToString
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.converters.IntegerToString class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="IntegerToString";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IntegerToString.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/IntegerToString.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IntegerToString.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt.converters</FONT>
+<BR>
+Class IntegerToString</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters">org.eclipse.xwt.converters.ObjectToString</A>
+      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.converters.IntegerToString</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>org.eclipse.core.databinding.conversion.IConverter</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>IntegerToString</B><DT>extends <A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters">ObjectToString</A></DL>
+</PRE>
+
+<P>
+Integer to String converter
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>yyang</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters">IntegerToString</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html#instance">instance</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html#IntegerToString()">IntegerToString</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html#getFromType()">getFromType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html#getToType()">getToType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_org.eclipse.xwt.converters.ObjectToString"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class org.eclipse.xwt.converters.<A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters">ObjectToString</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html#convert(java.lang.Object)">convert</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="instance"><!-- --></A><H3>
+instance</H3>
+<PRE>
+public static <A HREF="../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters">IntegerToString</A> <B>instance</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="IntegerToString()"><!-- --></A><H3>
+IntegerToString</H3>
+<PRE>
+public <B>IntegerToString</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getFromType()"><!-- --></A><H3>
+getFromType</H3>
+<PRE>
+public java.lang.Object <B>getFromType</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getFromType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html#getFromType()">getFromType</A></CODE> in class <CODE><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters">ObjectToString</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getToType()"><!-- --></A><H3>
+getToType</H3>
+<PRE>
+public java.lang.Object <B>getToType</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getToType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html#getToType()">getToType</A></CODE> in class <CODE><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters">ObjectToString</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IntegerToString.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/IntegerToString.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IntegerToString.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/ObjectToObject.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/ObjectToObject.html
new file mode 100644
index 0000000..d1946e7
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/ObjectToObject.html
@@ -0,0 +1,343 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:32 CET 2009 -->
+<TITLE>
+ObjectToObject
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.converters.ObjectToObject class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ObjectToObject";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ObjectToObject.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/ObjectToObject.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ObjectToObject.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt.converters</FONT>
+<BR>
+Class ObjectToObject</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.converters.ObjectToObject</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>org.eclipse.core.databinding.conversion.IConverter</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>ObjectToObject</B><DT>extends java.lang.Object<DT>implements org.eclipse.core.databinding.conversion.IConverter</DL>
+</PRE>
+
+<P>
+Object to Object converter: null converter
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>yyang</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html" title="class in org.eclipse.xwt.converters">ObjectToObject</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html#instance">instance</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html#ObjectToObject()">ObjectToObject</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html#convert(java.lang.Object)">convert</A></B>(java.lang.Object&nbsp;fromObject)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html#getFromType()">getFromType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html#getToType()">getToType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="instance"><!-- --></A><H3>
+instance</H3>
+<PRE>
+public static <A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html" title="class in org.eclipse.xwt.converters">ObjectToObject</A> <B>instance</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ObjectToObject()"><!-- --></A><H3>
+ObjectToObject</H3>
+<PRE>
+public <B>ObjectToObject</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="convert(java.lang.Object)"><!-- --></A><H3>
+convert</H3>
+<PRE>
+public java.lang.Object <B>convert</B>(java.lang.Object&nbsp;fromObject)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>convert</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getFromType()"><!-- --></A><H3>
+getFromType</H3>
+<PRE>
+public java.lang.Object <B>getFromType</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getFromType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getToType()"><!-- --></A><H3>
+getToType</H3>
+<PRE>
+public java.lang.Object <B>getToType</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getToType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ObjectToObject.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/ObjectToObject.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ObjectToObject.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/ObjectToString.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/ObjectToString.html
new file mode 100644
index 0000000..7ab4bd0
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/ObjectToString.html
@@ -0,0 +1,310 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:33 CET 2009 -->
+<TITLE>
+ObjectToString
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.converters.ObjectToString class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ObjectToString";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ObjectToString.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToBoolean.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/ObjectToString.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ObjectToString.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt.converters</FONT>
+<BR>
+Class ObjectToString</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.converters.ObjectToString</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>org.eclipse.core.databinding.conversion.IConverter</DD>
+</DL>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters">DateToString</A>, <A HREF="../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters">IntegerToString</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>ObjectToString</B><DT>extends java.lang.Object<DT>implements org.eclipse.core.databinding.conversion.IConverter</DL>
+</PRE>
+
+<P>
+Safely SWT context values, it used to avoid a NullPointerException when set text values to SWT Widgets.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>jliu</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html#ObjectToString()">ObjectToString</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html#convert(java.lang.Object)">convert</A></B>(java.lang.Object&nbsp;fromObject)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html#getFromType()">getFromType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html#getToType()">getToType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ObjectToString()"><!-- --></A><H3>
+ObjectToString</H3>
+<PRE>
+public <B>ObjectToString</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="convert(java.lang.Object)"><!-- --></A><H3>
+convert</H3>
+<PRE>
+public java.lang.Object <B>convert</B>(java.lang.Object&nbsp;fromObject)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>convert</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getFromType()"><!-- --></A><H3>
+getFromType</H3>
+<PRE>
+public java.lang.Object <B>getFromType</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getFromType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getToType()"><!-- --></A><H3>
+getToType</H3>
+<PRE>
+public java.lang.Object <B>getToType</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getToType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ObjectToString.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToBoolean.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/ObjectToString.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ObjectToString.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToBoolean.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToBoolean.html
new file mode 100644
index 0000000..1ea730d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToBoolean.html
@@ -0,0 +1,343 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:33 CET 2009 -->
+<TITLE>
+StringToBoolean
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.converters.StringToBoolean class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="StringToBoolean";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToBoolean.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToColor.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToBoolean.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToBoolean.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt.converters</FONT>
+<BR>
+Class StringToBoolean</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.converters.StringToBoolean</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>org.eclipse.core.databinding.conversion.IConverter</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>StringToBoolean</B><DT>extends java.lang.Object<DT>implements org.eclipse.core.databinding.conversion.IConverter</DL>
+</PRE>
+
+<P>
+String to Boolean converter
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>yyang</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters">StringToInteger</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToBoolean.html#instance">instance</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToBoolean.html#StringToBoolean()">StringToBoolean</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToBoolean.html#convert(java.lang.Object)">convert</A></B>(java.lang.Object&nbsp;fromObject)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToBoolean.html#getFromType()">getFromType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToBoolean.html#getToType()">getToType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="instance"><!-- --></A><H3>
+instance</H3>
+<PRE>
+public static <A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters">StringToInteger</A> <B>instance</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="StringToBoolean()"><!-- --></A><H3>
+StringToBoolean</H3>
+<PRE>
+public <B>StringToBoolean</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="convert(java.lang.Object)"><!-- --></A><H3>
+convert</H3>
+<PRE>
+public java.lang.Object <B>convert</B>(java.lang.Object&nbsp;fromObject)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>convert</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getFromType()"><!-- --></A><H3>
+getFromType</H3>
+<PRE>
+public java.lang.Object <B>getFromType</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getFromType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getToType()"><!-- --></A><H3>
+getToType</H3>
+<PRE>
+public java.lang.Object <B>getToType</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getToType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToBoolean.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToColor.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToBoolean.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToBoolean.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToColor.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToColor.html
new file mode 100644
index 0000000..f2e3181
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToColor.html
@@ -0,0 +1,307 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:33 CET 2009 -->
+<TITLE>
+StringToColor
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.converters.StringToColor class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="StringToColor";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToColor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToBoolean.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToFont.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToColor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToColor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt.converters</FONT>
+<BR>
+Class StringToColor</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.converters.StringToColor</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>org.eclipse.core.databinding.conversion.IConverter</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>StringToColor</B><DT>extends java.lang.Object<DT>implements org.eclipse.core.databinding.conversion.IConverter</DL>
+</PRE>
+
+<P>
+String to Color converter
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>jliu</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToColor.html#StringToColor()">StringToColor</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToColor.html#convert(java.lang.Object)">convert</A></B>(java.lang.Object&nbsp;fromObject)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToColor.html#getFromType()">getFromType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToColor.html#getToType()">getToType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="StringToColor()"><!-- --></A><H3>
+StringToColor</H3>
+<PRE>
+public <B>StringToColor</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="convert(java.lang.Object)"><!-- --></A><H3>
+convert</H3>
+<PRE>
+public java.lang.Object <B>convert</B>(java.lang.Object&nbsp;fromObject)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>convert</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getFromType()"><!-- --></A><H3>
+getFromType</H3>
+<PRE>
+public java.lang.Object <B>getFromType</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getFromType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getToType()"><!-- --></A><H3>
+getToType</H3>
+<PRE>
+public java.lang.Object <B>getToType</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getToType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToColor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToBoolean.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToFont.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToColor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToColor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToFont.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToFont.html
new file mode 100644
index 0000000..df32cc7
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToFont.html
@@ -0,0 +1,307 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:33 CET 2009 -->
+<TITLE>
+StringToFont
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.converters.StringToFont class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="StringToFont";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToFont.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToColor.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToImage.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToFont.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToFont.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt.converters</FONT>
+<BR>
+Class StringToFont</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.converters.StringToFont</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>org.eclipse.core.databinding.conversion.IConverter</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>StringToFont</B><DT>extends java.lang.Object<DT>implements org.eclipse.core.databinding.conversion.IConverter</DL>
+</PRE>
+
+<P>
+String to Font converter
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>yyang</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToFont.html#StringToFont()">StringToFont</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToFont.html#convert(java.lang.Object)">convert</A></B>(java.lang.Object&nbsp;fromObject)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToFont.html#getFromType()">getFromType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToFont.html#getToType()">getToType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="StringToFont()"><!-- --></A><H3>
+StringToFont</H3>
+<PRE>
+public <B>StringToFont</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="convert(java.lang.Object)"><!-- --></A><H3>
+convert</H3>
+<PRE>
+public java.lang.Object <B>convert</B>(java.lang.Object&nbsp;fromObject)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>convert</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getFromType()"><!-- --></A><H3>
+getFromType</H3>
+<PRE>
+public java.lang.Object <B>getFromType</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getFromType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getToType()"><!-- --></A><H3>
+getToType</H3>
+<PRE>
+public java.lang.Object <B>getToType</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getToType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToFont.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToColor.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToImage.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToFont.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToFont.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToImage.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToImage.html
new file mode 100644
index 0000000..52600a1
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToImage.html
@@ -0,0 +1,307 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:33 CET 2009 -->
+<TITLE>
+StringToImage
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.converters.StringToImage class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="StringToImage";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToImage.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToFont.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToIntArray.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToImage.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToImage.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt.converters</FONT>
+<BR>
+Class StringToImage</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.converters.StringToImage</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>org.eclipse.core.databinding.conversion.IConverter</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>StringToImage</B><DT>extends java.lang.Object<DT>implements org.eclipse.core.databinding.conversion.IConverter</DL>
+</PRE>
+
+<P>
+String to Image converter
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>jliu</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToImage.html#StringToImage()">StringToImage</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToImage.html#convert(java.lang.Object)">convert</A></B>(java.lang.Object&nbsp;fromObject)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToImage.html#getFromType()">getFromType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToImage.html#getToType()">getToType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="StringToImage()"><!-- --></A><H3>
+StringToImage</H3>
+<PRE>
+public <B>StringToImage</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="convert(java.lang.Object)"><!-- --></A><H3>
+convert</H3>
+<PRE>
+public java.lang.Object <B>convert</B>(java.lang.Object&nbsp;fromObject)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>convert</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getFromType()"><!-- --></A><H3>
+getFromType</H3>
+<PRE>
+public java.lang.Object <B>getFromType</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getFromType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getToType()"><!-- --></A><H3>
+getToType</H3>
+<PRE>
+public java.lang.Object <B>getToType</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getToType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToImage.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToFont.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToIntArray.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToImage.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToImage.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToIntArray.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToIntArray.html
new file mode 100644
index 0000000..f84b541
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToIntArray.html
@@ -0,0 +1,307 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:33 CET 2009 -->
+<TITLE>
+StringToIntArray
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.converters.StringToIntArray class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="StringToIntArray";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToIntArray.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToImage.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToIntArray.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToIntArray.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt.converters</FONT>
+<BR>
+Class StringToIntArray</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.converters.StringToIntArray</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>org.eclipse.core.databinding.conversion.IConverter</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>StringToIntArray</B><DT>extends java.lang.Object<DT>implements org.eclipse.core.databinding.conversion.IConverter</DL>
+</PRE>
+
+<P>
+String to int[] converter
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>jliu</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToIntArray.html#StringToIntArray()">StringToIntArray</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToIntArray.html#convert(java.lang.Object)">convert</A></B>(java.lang.Object&nbsp;fromObject)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToIntArray.html#getFromType()">getFromType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToIntArray.html#getToType()">getToType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="StringToIntArray()"><!-- --></A><H3>
+StringToIntArray</H3>
+<PRE>
+public <B>StringToIntArray</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="convert(java.lang.Object)"><!-- --></A><H3>
+convert</H3>
+<PRE>
+public java.lang.Object <B>convert</B>(java.lang.Object&nbsp;fromObject)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>convert</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getFromType()"><!-- --></A><H3>
+getFromType</H3>
+<PRE>
+public java.lang.Object <B>getFromType</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getFromType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getToType()"><!-- --></A><H3>
+getToType</H3>
+<PRE>
+public java.lang.Object <B>getToType</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getToType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToIntArray.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToImage.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToIntArray.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToIntArray.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToInteger.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToInteger.html
new file mode 100644
index 0000000..0658021
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToInteger.html
@@ -0,0 +1,343 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:33 CET 2009 -->
+<TITLE>
+StringToInteger
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.converters.StringToInteger class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="StringToInteger";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToInteger.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToIntArray.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToPoint.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToInteger.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToInteger.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt.converters</FONT>
+<BR>
+Class StringToInteger</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.converters.StringToInteger</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>org.eclipse.core.databinding.conversion.IConverter</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>StringToInteger</B><DT>extends java.lang.Object<DT>implements org.eclipse.core.databinding.conversion.IConverter</DL>
+</PRE>
+
+<P>
+String to Integer converter
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>yyang</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters">StringToInteger</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html#instance">instance</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html#StringToInteger()">StringToInteger</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html#convert(java.lang.Object)">convert</A></B>(java.lang.Object&nbsp;fromObject)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html#getFromType()">getFromType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html#getToType()">getToType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="instance"><!-- --></A><H3>
+instance</H3>
+<PRE>
+public static <A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters">StringToInteger</A> <B>instance</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="StringToInteger()"><!-- --></A><H3>
+StringToInteger</H3>
+<PRE>
+public <B>StringToInteger</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="convert(java.lang.Object)"><!-- --></A><H3>
+convert</H3>
+<PRE>
+public java.lang.Object <B>convert</B>(java.lang.Object&nbsp;fromObject)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>convert</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getFromType()"><!-- --></A><H3>
+getFromType</H3>
+<PRE>
+public java.lang.Object <B>getFromType</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getFromType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getToType()"><!-- --></A><H3>
+getToType</H3>
+<PRE>
+public java.lang.Object <B>getToType</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getToType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToInteger.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToIntArray.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToPoint.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToInteger.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToInteger.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToPoint.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToPoint.html
new file mode 100644
index 0000000..852271d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToPoint.html
@@ -0,0 +1,307 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:33 CET 2009 -->
+<TITLE>
+StringToPoint
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.converters.StringToPoint class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="StringToPoint";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToPoint.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToRectangle.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToPoint.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToPoint.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt.converters</FONT>
+<BR>
+Class StringToPoint</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.converters.StringToPoint</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>org.eclipse.core.databinding.conversion.IConverter</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>StringToPoint</B><DT>extends java.lang.Object<DT>implements org.eclipse.core.databinding.conversion.IConverter</DL>
+</PRE>
+
+<P>
+String to Point converter
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>yyang</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToPoint.html#StringToPoint()">StringToPoint</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToPoint.html#convert(java.lang.Object)">convert</A></B>(java.lang.Object&nbsp;fromObject)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToPoint.html#getFromType()">getFromType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToPoint.html#getToType()">getToType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="StringToPoint()"><!-- --></A><H3>
+StringToPoint</H3>
+<PRE>
+public <B>StringToPoint</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="convert(java.lang.Object)"><!-- --></A><H3>
+convert</H3>
+<PRE>
+public java.lang.Object <B>convert</B>(java.lang.Object&nbsp;fromObject)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>convert</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getFromType()"><!-- --></A><H3>
+getFromType</H3>
+<PRE>
+public java.lang.Object <B>getFromType</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getFromType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getToType()"><!-- --></A><H3>
+getToType</H3>
+<PRE>
+public java.lang.Object <B>getToType</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getToType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToPoint.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToRectangle.html" title="class in org.eclipse.xwt.converters"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToPoint.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToPoint.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToRectangle.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToRectangle.html
new file mode 100644
index 0000000..218c09d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/StringToRectangle.html
@@ -0,0 +1,307 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:33 CET 2009 -->
+<TITLE>
+StringToRectangle
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.converters.StringToRectangle class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="StringToRectangle";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToRectangle.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToPoint.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToRectangle.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToRectangle.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt.converters</FONT>
+<BR>
+Class StringToRectangle</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.converters.StringToRectangle</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>org.eclipse.core.databinding.conversion.IConverter</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>StringToRectangle</B><DT>extends java.lang.Object<DT>implements org.eclipse.core.databinding.conversion.IConverter</DL>
+</PRE>
+
+<P>
+String to Rectangle converter
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>yyang</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToRectangle.html#StringToRectangle()">StringToRectangle</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToRectangle.html#convert(java.lang.Object)">convert</A></B>(java.lang.Object&nbsp;fromObject)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToRectangle.html#getFromType()">getFromType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToRectangle.html#getToType()">getToType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="StringToRectangle()"><!-- --></A><H3>
+StringToRectangle</H3>
+<PRE>
+public <B>StringToRectangle</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="convert(java.lang.Object)"><!-- --></A><H3>
+convert</H3>
+<PRE>
+public java.lang.Object <B>convert</B>(java.lang.Object&nbsp;fromObject)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>convert</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getFromType()"><!-- --></A><H3>
+getFromType</H3>
+<PRE>
+public java.lang.Object <B>getFromType</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getFromType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getToType()"><!-- --></A><H3>
+getToType</H3>
+<PRE>
+public java.lang.Object <B>getToType</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>getToType</CODE> in interface <CODE>org.eclipse.core.databinding.conversion.IConverter</CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/StringToRectangle.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToPoint.html" title="class in org.eclipse.xwt.converters"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/StringToRectangle.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToRectangle.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/BindingToObject.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/BindingToObject.html
new file mode 100644
index 0000000..08287bb
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/BindingToObject.html
@@ -0,0 +1,176 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->
+<TITLE>
+Uses of Class org.eclipse.xwt.converters.BindingToObject
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.xwt.converters.BindingToObject";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useBindingToObject.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BindingToObject.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.xwt.converters.BindingToObject</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html" title="class in org.eclipse.xwt.converters">BindingToObject</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt.converters"><B>org.eclipse.xwt.converters</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt.converters"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html" title="class in org.eclipse.xwt.converters">BindingToObject</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A> declared as <A HREF="../../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html" title="class in org.eclipse.xwt.converters">BindingToObject</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html" title="class in org.eclipse.xwt.converters">BindingToObject</A></CODE></FONT></TD>
+<TD><CODE><B>BindingToObject.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html#instance">instance</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useBindingToObject.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BindingToObject.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/DateToString.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/DateToString.html
new file mode 100644
index 0000000..072ed02
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/DateToString.html
@@ -0,0 +1,176 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->
+<TITLE>
+Uses of Class org.eclipse.xwt.converters.DateToString
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.xwt.converters.DateToString";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useDateToString.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="DateToString.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.xwt.converters.DateToString</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters">DateToString</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt.converters"><B>org.eclipse.xwt.converters</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt.converters"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters">DateToString</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A> declared as <A HREF="../../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters">DateToString</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters">DateToString</A></CODE></FONT></TD>
+<TD><CODE><B>DateToString.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/converters/DateToString.html#instance">instance</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useDateToString.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="DateToString.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/IntegerToString.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/IntegerToString.html
new file mode 100644
index 0000000..f78aaa4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/IntegerToString.html
@@ -0,0 +1,176 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->
+<TITLE>
+Uses of Class org.eclipse.xwt.converters.IntegerToString
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.xwt.converters.IntegerToString";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useIntegerToString.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IntegerToString.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.xwt.converters.IntegerToString</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters">IntegerToString</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt.converters"><B>org.eclipse.xwt.converters</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt.converters"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters">IntegerToString</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A> declared as <A HREF="../../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters">IntegerToString</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters">IntegerToString</A></CODE></FONT></TD>
+<TD><CODE><B>IntegerToString.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html#instance">instance</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useIntegerToString.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IntegerToString.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/ObjectToObject.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/ObjectToObject.html
new file mode 100644
index 0000000..6132427
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/ObjectToObject.html
@@ -0,0 +1,176 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->
+<TITLE>
+Uses of Class org.eclipse.xwt.converters.ObjectToObject
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.xwt.converters.ObjectToObject";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useObjectToObject.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ObjectToObject.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.xwt.converters.ObjectToObject</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html" title="class in org.eclipse.xwt.converters">ObjectToObject</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt.converters"><B>org.eclipse.xwt.converters</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt.converters"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html" title="class in org.eclipse.xwt.converters">ObjectToObject</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A> declared as <A HREF="../../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html" title="class in org.eclipse.xwt.converters">ObjectToObject</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html" title="class in org.eclipse.xwt.converters">ObjectToObject</A></CODE></FONT></TD>
+<TD><CODE><B>ObjectToObject.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html#instance">instance</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useObjectToObject.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ObjectToObject.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/ObjectToString.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/ObjectToString.html
new file mode 100644
index 0000000..9db3863
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/ObjectToString.html
@@ -0,0 +1,184 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->
+<TITLE>
+Uses of Class org.eclipse.xwt.converters.ObjectToString
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.xwt.converters.ObjectToString";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useObjectToString.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ObjectToString.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.xwt.converters.ObjectToString</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters">ObjectToString</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt.converters"><B>org.eclipse.xwt.converters</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt.converters"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters">ObjectToString</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters">ObjectToString</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters">DateToString</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Date to String converter</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters">IntegerToString</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Integer to String converter</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useObjectToString.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ObjectToString.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToBoolean.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToBoolean.html
new file mode 100644
index 0000000..b4ebe8b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToBoolean.html
@@ -0,0 +1,140 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->
+<TITLE>
+Uses of Class org.eclipse.xwt.converters.StringToBoolean
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.xwt.converters.StringToBoolean";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToBoolean.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToBoolean.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToBoolean.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.xwt.converters.StringToBoolean</B></H2>
+</CENTER>
+No usage of org.eclipse.xwt.converters.StringToBoolean
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToBoolean.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToBoolean.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToBoolean.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToColor.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToColor.html
new file mode 100644
index 0000000..7911964
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToColor.html
@@ -0,0 +1,140 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->
+<TITLE>
+Uses of Class org.eclipse.xwt.converters.StringToColor
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.xwt.converters.StringToColor";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToColor.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToColor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToColor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.xwt.converters.StringToColor</B></H2>
+</CENTER>
+No usage of org.eclipse.xwt.converters.StringToColor
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToColor.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToColor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToColor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToFont.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToFont.html
new file mode 100644
index 0000000..954f879
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToFont.html
@@ -0,0 +1,140 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->
+<TITLE>
+Uses of Class org.eclipse.xwt.converters.StringToFont
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.xwt.converters.StringToFont";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToFont.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToFont.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToFont.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.xwt.converters.StringToFont</B></H2>
+</CENTER>
+No usage of org.eclipse.xwt.converters.StringToFont
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToFont.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToFont.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToFont.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToImage.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToImage.html
new file mode 100644
index 0000000..1005fc4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToImage.html
@@ -0,0 +1,140 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->
+<TITLE>
+Uses of Class org.eclipse.xwt.converters.StringToImage
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.xwt.converters.StringToImage";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToImage.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToImage.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToImage.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.xwt.converters.StringToImage</B></H2>
+</CENTER>
+No usage of org.eclipse.xwt.converters.StringToImage
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToImage.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToImage.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToImage.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToIntArray.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToIntArray.html
new file mode 100644
index 0000000..5534ed1
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToIntArray.html
@@ -0,0 +1,140 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->
+<TITLE>
+Uses of Class org.eclipse.xwt.converters.StringToIntArray
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.xwt.converters.StringToIntArray";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToIntArray.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToIntArray.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToIntArray.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.xwt.converters.StringToIntArray</B></H2>
+</CENTER>
+No usage of org.eclipse.xwt.converters.StringToIntArray
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToIntArray.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToIntArray.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToIntArray.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToInteger.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToInteger.html
new file mode 100644
index 0000000..924bb01
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToInteger.html
@@ -0,0 +1,184 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->
+<TITLE>
+Uses of Class org.eclipse.xwt.converters.StringToInteger
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.xwt.converters.StringToInteger";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToInteger.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToInteger.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.xwt.converters.StringToInteger</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters">StringToInteger</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt.converters"><B>org.eclipse.xwt.converters</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt.converters"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters">StringToInteger</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Fields in <A HREF="../../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A> declared as <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters">StringToInteger</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters">StringToInteger</A></CODE></FONT></TD>
+<TD><CODE><B>StringToInteger.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html#instance">instance</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters">StringToInteger</A></CODE></FONT></TD>
+<TD><CODE><B>StringToBoolean.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToBoolean.html#instance">instance</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToInteger.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToInteger.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToPoint.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToPoint.html
new file mode 100644
index 0000000..4dae050
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToPoint.html
@@ -0,0 +1,140 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->
+<TITLE>
+Uses of Class org.eclipse.xwt.converters.StringToPoint
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.xwt.converters.StringToPoint";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToPoint.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToPoint.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToPoint.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.xwt.converters.StringToPoint</B></H2>
+</CENTER>
+No usage of org.eclipse.xwt.converters.StringToPoint
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToPoint.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToPoint.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToPoint.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToRectangle.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToRectangle.html
new file mode 100644
index 0000000..edfe98a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/class-use/StringToRectangle.html
@@ -0,0 +1,140 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->
+<TITLE>
+Uses of Class org.eclipse.xwt.converters.StringToRectangle
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.xwt.converters.StringToRectangle";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToRectangle.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToRectangle.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToRectangle.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.xwt.converters.StringToRectangle</B></H2>
+</CENTER>
+No usage of org.eclipse.xwt.converters.StringToRectangle
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/converters/StringToRectangle.html" title="class in org.eclipse.xwt.converters"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/converters/\class-useStringToRectangle.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="StringToRectangle.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/package-frame.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/package-frame.html
new file mode 100644
index 0000000..250b517
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/package-frame.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:33 CET 2009 -->
+<TITLE>
+org.eclipse.xwt.converters
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.converters package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../org/eclipse/e4/xwt/converters/package-summary.html" target="classFrame">org.eclipse.xwt.converters</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="BindingToObject.html" title="class in org.eclipse.xwt.converters" target="classFrame">BindingToObject</A>
+<BR>
+<A HREF="DateToString.html" title="class in org.eclipse.xwt.converters" target="classFrame">DateToString</A>
+<BR>
+<A HREF="IntegerToString.html" title="class in org.eclipse.xwt.converters" target="classFrame">IntegerToString</A>
+<BR>
+<A HREF="ObjectToObject.html" title="class in org.eclipse.xwt.converters" target="classFrame">ObjectToObject</A>
+<BR>
+<A HREF="ObjectToString.html" title="class in org.eclipse.xwt.converters" target="classFrame">ObjectToString</A>
+<BR>
+<A HREF="StringToBoolean.html" title="class in org.eclipse.xwt.converters" target="classFrame">StringToBoolean</A>
+<BR>
+<A HREF="StringToColor.html" title="class in org.eclipse.xwt.converters" target="classFrame">StringToColor</A>
+<BR>
+<A HREF="StringToFont.html" title="class in org.eclipse.xwt.converters" target="classFrame">StringToFont</A>
+<BR>
+<A HREF="StringToImage.html" title="class in org.eclipse.xwt.converters" target="classFrame">StringToImage</A>
+<BR>
+<A HREF="StringToIntArray.html" title="class in org.eclipse.xwt.converters" target="classFrame">StringToIntArray</A>
+<BR>
+<A HREF="StringToInteger.html" title="class in org.eclipse.xwt.converters" target="classFrame">StringToInteger</A>
+<BR>
+<A HREF="StringToPoint.html" title="class in org.eclipse.xwt.converters" target="classFrame">StringToPoint</A>
+<BR>
+<A HREF="StringToRectangle.html" title="class in org.eclipse.xwt.converters" target="classFrame">StringToRectangle</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/package-summary.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/package-summary.html
new file mode 100644
index 0000000..79ad441
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/package-summary.html
@@ -0,0 +1,202 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:33 CET 2009 -->
+<TITLE>
+org.eclipse.xwt.converters
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.converters package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="org.eclipse.xwt.converters";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package org.eclipse.xwt.converters
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html" title="class in org.eclipse.xwt.converters">BindingToObject</A></B></TD>
+<TD>Binding to Object covnerter</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters">DateToString</A></B></TD>
+<TD>Date to String converter</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters">IntegerToString</A></B></TD>
+<TD>Integer to String converter</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html" title="class in org.eclipse.xwt.converters">ObjectToObject</A></B></TD>
+<TD>Object to Object converter: null converter</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters">ObjectToString</A></B></TD>
+<TD>Safely SWT context values, it used to avoid a NullPointerException when set text values to SWT Widgets.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToBoolean.html" title="class in org.eclipse.xwt.converters">StringToBoolean</A></B></TD>
+<TD>String to Boolean converter</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToColor.html" title="class in org.eclipse.xwt.converters">StringToColor</A></B></TD>
+<TD>String to Color converter</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToFont.html" title="class in org.eclipse.xwt.converters">StringToFont</A></B></TD>
+<TD>String to Font converter</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToImage.html" title="class in org.eclipse.xwt.converters">StringToImage</A></B></TD>
+<TD>String to Image converter</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToIntArray.html" title="class in org.eclipse.xwt.converters">StringToIntArray</A></B></TD>
+<TD>String to int[] converter</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters">StringToInteger</A></B></TD>
+<TD>String to Integer converter</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToPoint.html" title="class in org.eclipse.xwt.converters">StringToPoint</A></B></TD>
+<TD>String to Point converter</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToRectangle.html" title="class in org.eclipse.xwt.converters">StringToRectangle</A></B></TD>
+<TD>String to Rectangle converter</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/package-tree.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/package-tree.html
new file mode 100644
index 0000000..474ae16
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/package-tree.html
@@ -0,0 +1,162 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:33 CET 2009 -->
+<TITLE>
+org.eclipse.xwt.converters Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="org.eclipse.xwt.converters Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package org.eclipse.xwt.converters
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">org.eclipse.xwt.converters.<A HREF="../../../../../org/eclipse/e4/xwt/converters/BindingToObject.html" title="class in org.eclipse.xwt.converters"><B>BindingToObject</B></A> (implements org.eclipse.core.databinding.conversion.IConverter)
+<LI TYPE="circle">org.eclipse.xwt.converters.<A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToObject.html" title="class in org.eclipse.xwt.converters"><B>ObjectToObject</B></A> (implements org.eclipse.core.databinding.conversion.IConverter)
+<LI TYPE="circle">org.eclipse.xwt.converters.<A HREF="../../../../../org/eclipse/e4/xwt/converters/ObjectToString.html" title="class in org.eclipse.xwt.converters"><B>ObjectToString</B></A> (implements org.eclipse.core.databinding.conversion.IConverter)
+<UL>
+<LI TYPE="circle">org.eclipse.xwt.converters.<A HREF="../../../../../org/eclipse/e4/xwt/converters/DateToString.html" title="class in org.eclipse.xwt.converters"><B>DateToString</B></A><LI TYPE="circle">org.eclipse.xwt.converters.<A HREF="../../../../../org/eclipse/e4/xwt/converters/IntegerToString.html" title="class in org.eclipse.xwt.converters"><B>IntegerToString</B></A></UL>
+<LI TYPE="circle">org.eclipse.xwt.converters.<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToBoolean.html" title="class in org.eclipse.xwt.converters"><B>StringToBoolean</B></A> (implements org.eclipse.core.databinding.conversion.IConverter)
+<LI TYPE="circle">org.eclipse.xwt.converters.<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToColor.html" title="class in org.eclipse.xwt.converters"><B>StringToColor</B></A> (implements org.eclipse.core.databinding.conversion.IConverter)
+<LI TYPE="circle">org.eclipse.xwt.converters.<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToFont.html" title="class in org.eclipse.xwt.converters"><B>StringToFont</B></A> (implements org.eclipse.core.databinding.conversion.IConverter)
+<LI TYPE="circle">org.eclipse.xwt.converters.<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToImage.html" title="class in org.eclipse.xwt.converters"><B>StringToImage</B></A> (implements org.eclipse.core.databinding.conversion.IConverter)
+<LI TYPE="circle">org.eclipse.xwt.converters.<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToIntArray.html" title="class in org.eclipse.xwt.converters"><B>StringToIntArray</B></A> (implements org.eclipse.core.databinding.conversion.IConverter)
+<LI TYPE="circle">org.eclipse.xwt.converters.<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToInteger.html" title="class in org.eclipse.xwt.converters"><B>StringToInteger</B></A> (implements org.eclipse.core.databinding.conversion.IConverter)
+<LI TYPE="circle">org.eclipse.xwt.converters.<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToPoint.html" title="class in org.eclipse.xwt.converters"><B>StringToPoint</B></A> (implements org.eclipse.core.databinding.conversion.IConverter)
+<LI TYPE="circle">org.eclipse.xwt.converters.<A HREF="../../../../../org/eclipse/e4/xwt/converters/StringToRectangle.html" title="class in org.eclipse.xwt.converters"><B>StringToRectangle</B></A> (implements org.eclipse.core.databinding.conversion.IConverter)
+</UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/package-use.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/package-use.html
new file mode 100644
index 0000000..c823e34
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/converters/package-use.html
@@ -0,0 +1,196 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Sun Jan 18 01:52:34 CET 2009 -->
+<TITLE>
+Uses of Package org.eclipse.xwt.converters
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../book.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Package org.eclipse.xwt.converters";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Package<br>org.eclipse.xwt.converters</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt.converters"><B>org.eclipse.xwt.converters</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt.converters"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Classes in <A HREF="../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A> used by <A HREF="../../../../../org/eclipse/e4/xwt/converters/package-summary.html">org.eclipse.xwt.converters</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/class-use/BindingToObject.html#org.eclipse.xwt.converters"><B>BindingToObject</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Binding to Object covnerter</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/class-use/DateToString.html#org.eclipse.xwt.converters"><B>DateToString</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Date to String converter</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/class-use/IntegerToString.html#org.eclipse.xwt.converters"><B>IntegerToString</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Integer to String converter</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/class-use/ObjectToObject.html#org.eclipse.xwt.converters"><B>ObjectToObject</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object to Object converter: null converter</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/class-use/ObjectToString.html#org.eclipse.xwt.converters"><B>ObjectToString</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Safely SWT context values, it used to avoid a NullPointerException when set text values to SWT Widgets.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/converters/class-use/StringToInteger.html#org.eclipse.xwt.converters"><B>StringToInteger</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String to Integer converter</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/converters/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/CanExecuteChangedListener.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/CanExecuteChangedListener.html
new file mode 100644
index 0000000..934c3ef
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/CanExecuteChangedListener.html
@@ -0,0 +1,187 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+CanExecuteChangedListener
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.input.CanExecuteChangedListener interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="CanExecuteChangedListener";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/CanExecuteChangedListener.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CanExecuteChangedListener.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt.input</FONT>
+<BR>
+Interface CanExecuteChangedListener</H2>
+<DL>
+<DT><B>All Superinterfaces:</B> <DD>java.util.EventListener, java.beans.PropertyChangeListener</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>CanExecuteChangedListener</B><DT>extends java.beans.PropertyChangeListener</DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.beans.PropertyChangeListener"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from interface java.beans.PropertyChangeListener</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>propertyChange</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/CanExecuteChangedListener.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CanExecuteChangedListener.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/CommandBinding.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/CommandBinding.html
new file mode 100644
index 0000000..19b8e3f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/CommandBinding.html
@@ -0,0 +1,396 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+CommandBinding
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.input.CommandBinding class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="CommandBinding";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/CommandBinding.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/CommandBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CommandBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt.input</FONT>
+<BR>
+Class CommandBinding</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.input.CommandBinding</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>CommandBinding</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#CommandBinding()">CommandBinding</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#CommandBinding(org.eclipse.xwt.input.ICommand)">CommandBinding</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&nbsp;command)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#addCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">addCanExecuteChangedListener</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#addExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">addExecuteChangedListener</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#fireCanExecuteChangedListener(java.beans.PropertyChangeEvent)">fireCanExecuteChangedListener</A></B>(java.beans.PropertyChangeEvent&nbsp;args)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#fireExecuteChangedListener(java.beans.PropertyChangeEvent)">fireExecuteChangedListener</A></B>(java.beans.PropertyChangeEvent&nbsp;args)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#getCommand()">getCommand</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#removeCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">removeCanExecuteChangedListener</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#removeExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">removeExecuteChangedListener</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#setCommand(org.eclipse.xwt.input.ICommand)">setCommand</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&nbsp;command)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="CommandBinding()"><!-- --></A><H3>
+CommandBinding</H3>
+<PRE>
+public <B>CommandBinding</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="CommandBinding(org.eclipse.xwt.input.ICommand)"><!-- --></A><H3>
+CommandBinding</H3>
+<PRE>
+public <B>CommandBinding</B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&nbsp;command)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getCommand()"><!-- --></A><H3>
+getCommand</H3>
+<PRE>
+public <A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A> <B>getCommand</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setCommand(org.eclipse.xwt.input.ICommand)"><!-- --></A><H3>
+setCommand</H3>
+<PRE>
+public void <B>setCommand</B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&nbsp;command)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><!-- --></A><H3>
+addCanExecuteChangedListener</H3>
+<PRE>
+public void <B>addCanExecuteChangedListener</B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><!-- --></A><H3>
+removeCanExecuteChangedListener</H3>
+<PRE>
+public void <B>removeCanExecuteChangedListener</B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="fireCanExecuteChangedListener(java.beans.PropertyChangeEvent)"><!-- --></A><H3>
+fireCanExecuteChangedListener</H3>
+<PRE>
+public void <B>fireCanExecuteChangedListener</B>(java.beans.PropertyChangeEvent&nbsp;args)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><!-- --></A><H3>
+addExecuteChangedListener</H3>
+<PRE>
+public void <B>addExecuteChangedListener</B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><!-- --></A><H3>
+removeExecuteChangedListener</H3>
+<PRE>
+public void <B>removeExecuteChangedListener</B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="fireExecuteChangedListener(java.beans.PropertyChangeEvent)"><!-- --></A><H3>
+fireExecuteChangedListener</H3>
+<PRE>
+public void <B>fireExecuteChangedListener</B>(java.beans.PropertyChangeEvent&nbsp;args)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/CommandBinding.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/CommandBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CommandBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/ICommand.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/ICommand.html
new file mode 100644
index 0000000..81bd9f9
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/ICommand.html
@@ -0,0 +1,263 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+ICommand
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.input.ICommand interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ICommand";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ICommand.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/ICommand.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ICommand.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt.input</FONT>
+<BR>
+Interface ICommand</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input">RoutedCommand</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>ICommand</B></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html#addCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">addCanExecuteChangedListener</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html#canExecute()">canExecute</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html#execute(java.lang.Object)">execute</A></B>(java.lang.Object&nbsp;parameter)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html#removeCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">removeCanExecuteChangedListener</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="canExecute()"><!-- --></A><H3>
+canExecute</H3>
+<PRE>
+boolean <B>canExecute</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="execute(java.lang.Object)"><!-- --></A><H3>
+execute</H3>
+<PRE>
+void <B>execute</B>(java.lang.Object&nbsp;parameter)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><!-- --></A><H3>
+addCanExecuteChangedListener</H3>
+<PRE>
+void <B>addCanExecuteChangedListener</B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><!-- --></A><H3>
+removeCanExecuteChangedListener</H3>
+<PRE>
+void <B>removeCanExecuteChangedListener</B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ICommand.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/ICommand.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ICommand.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/InputBinding.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/InputBinding.html
new file mode 100644
index 0000000..339d3c9
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/InputBinding.html
@@ -0,0 +1,385 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+InputBinding
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.input.InputBinding class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="InputBinding";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/InputBinding.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/InputBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="InputBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt.input</FONT>
+<BR>
+Class InputBinding</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.input.InputBinding</B>
+</PRE>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../../org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input">KeyBinding</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input">MouseBinding</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>InputBinding</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#InputBinding()">InputBinding</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#getCommand()">getCommand</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#getCommandParameter()">getCommandParameter</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#getCommandTarget()">getCommandTarget</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#getGesture()">getGesture</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#setCommand(org.eclipse.xwt.input.ICommand)">setCommand</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&nbsp;command)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#setCommandParameter(java.lang.Object)">setCommandParameter</A></B>(java.lang.Object&nbsp;commandParameter)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#setCommandTarget(java.lang.Object)">setCommandTarget</A></B>(java.lang.Object&nbsp;commandTarget)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#setGesture(org.eclipse.xwt.input.KeyGesture)">setGesture</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A>&nbsp;gesture)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="InputBinding()"><!-- --></A><H3>
+InputBinding</H3>
+<PRE>
+public <B>InputBinding</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getCommandTarget()"><!-- --></A><H3>
+getCommandTarget</H3>
+<PRE>
+public java.lang.Object <B>getCommandTarget</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setCommandTarget(java.lang.Object)"><!-- --></A><H3>
+setCommandTarget</H3>
+<PRE>
+public void <B>setCommandTarget</B>(java.lang.Object&nbsp;commandTarget)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCommandParameter()"><!-- --></A><H3>
+getCommandParameter</H3>
+<PRE>
+public java.lang.Object <B>getCommandParameter</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setCommandParameter(java.lang.Object)"><!-- --></A><H3>
+setCommandParameter</H3>
+<PRE>
+public void <B>setCommandParameter</B>(java.lang.Object&nbsp;commandParameter)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCommand()"><!-- --></A><H3>
+getCommand</H3>
+<PRE>
+public <A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A> <B>getCommand</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setCommand(org.eclipse.xwt.input.ICommand)"><!-- --></A><H3>
+setCommand</H3>
+<PRE>
+public void <B>setCommand</B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&nbsp;command)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGesture()"><!-- --></A><H3>
+getGesture</H3>
+<PRE>
+public <A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A> <B>getGesture</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setGesture(org.eclipse.xwt.input.KeyGesture)"><!-- --></A><H3>
+setGesture</H3>
+<PRE>
+public void <B>setGesture</B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A>&nbsp;gesture)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/InputBinding.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/InputBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="InputBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/KeyBinding.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/KeyBinding.html
new file mode 100644
index 0000000..c7026b9
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/KeyBinding.html
@@ -0,0 +1,231 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+KeyBinding
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.input.KeyBinding class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="KeyBinding";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/KeyBinding.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/KeyBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="KeyBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_org.eclipse.xwt.input.InputBinding">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt.input</FONT>
+<BR>
+Class KeyBinding</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">org.eclipse.xwt.input.InputBinding</A>
+      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.input.KeyBinding</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>KeyBinding</B><DT>extends <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/KeyBinding.html#KeyBinding()">KeyBinding</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_org.eclipse.xwt.input.InputBinding"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class org.eclipse.xwt.input.<A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#getCommand()">getCommand</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#getCommandParameter()">getCommandParameter</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#getCommandTarget()">getCommandTarget</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#getGesture()">getGesture</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#setCommand(org.eclipse.xwt.input.ICommand)">setCommand</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#setCommandParameter(java.lang.Object)">setCommandParameter</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#setCommandTarget(java.lang.Object)">setCommandTarget</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#setGesture(org.eclipse.xwt.input.KeyGesture)">setGesture</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="KeyBinding()"><!-- --></A><H3>
+KeyBinding</H3>
+<PRE>
+public <B>KeyBinding</B>()</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/KeyBinding.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/KeyBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="KeyBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_org.eclipse.xwt.input.InputBinding">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/KeyGesture.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/KeyGesture.html
new file mode 100644
index 0000000..d64d54c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/KeyGesture.html
@@ -0,0 +1,344 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+KeyGesture
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.input.KeyGesture class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="KeyGesture";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/KeyGesture.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/KeyGesture.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="KeyGesture.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt.input</FONT>
+<BR>
+Class KeyGesture</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.input.KeyGesture</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>KeyGesture</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html#KeyGesture()">KeyGesture</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html#getDisplayString()">getDisplayString</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html#getKey()">getKey</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html#getModifiers()">getModifiers</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html#setDisplayString(java.lang.String)">setDisplayString</A></B>(java.lang.String&nbsp;displayString)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html#setKey(java.lang.String)">setKey</A></B>(java.lang.String&nbsp;key)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html#setModifiers(org.eclipse.xwt.input.ModifierKeys)">setModifiers</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A>&nbsp;modifiers)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="KeyGesture()"><!-- --></A><H3>
+KeyGesture</H3>
+<PRE>
+public <B>KeyGesture</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getKey()"><!-- --></A><H3>
+getKey</H3>
+<PRE>
+public java.lang.String <B>getKey</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setKey(java.lang.String)"><!-- --></A><H3>
+setKey</H3>
+<PRE>
+public void <B>setKey</B>(java.lang.String&nbsp;key)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDisplayString()"><!-- --></A><H3>
+getDisplayString</H3>
+<PRE>
+public java.lang.String <B>getDisplayString</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setDisplayString(java.lang.String)"><!-- --></A><H3>
+setDisplayString</H3>
+<PRE>
+public void <B>setDisplayString</B>(java.lang.String&nbsp;displayString)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getModifiers()"><!-- --></A><H3>
+getModifiers</H3>
+<PRE>
+public <A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A> <B>getModifiers</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setModifiers(org.eclipse.xwt.input.ModifierKeys)"><!-- --></A><H3>
+setModifiers</H3>
+<PRE>
+public void <B>setModifiers</B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A>&nbsp;modifiers)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/KeyGesture.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/KeyGesture.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="KeyGesture.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/ModifierKeys.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/ModifierKeys.html
new file mode 100644
index 0000000..cb00a45
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/ModifierKeys.html
@@ -0,0 +1,366 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+ModifierKeys
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.input.ModifierKeys class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ModifierKeys";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ModifierKeys.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/ModifierKeys.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ModifierKeys.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt.input</FONT>
+<BR>
+Enum ModifierKeys</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Enum&lt;<A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A>&gt;
+      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.input.ModifierKeys</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable, java.lang.Comparable&lt;<A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A>&gt;</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public enum <B>ModifierKeys</B><DT>extends java.lang.Enum&lt;<A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A>&gt;</DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+
+<A NAME="enum_constant_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Enum Constant Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html#Alt">Alt</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html#Control">Control</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html#None">None</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html#Shift">Shift</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html#Windows">Windows</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html#valueOf(java.lang.String)">valueOf</A></B>(java.lang.String&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html#values()">values</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in
+the order they're declared.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Enum"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Enum</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>getClass, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+
+<A NAME="enum_constant_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Enum Constant Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="None"><!-- --></A><H3>
+None</H3>
+<PRE>
+public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A> <B>None</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="Alt"><!-- --></A><H3>
+Alt</H3>
+<PRE>
+public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A> <B>Alt</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="Control"><!-- --></A><H3>
+Control</H3>
+<PRE>
+public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A> <B>Control</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="Shift"><!-- --></A><H3>
+Shift</H3>
+<PRE>
+public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A> <B>Shift</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="Windows"><!-- --></A><H3>
+Windows</H3>
+<PRE>
+public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A> <B>Windows</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="values()"><!-- --></A><H3>
+values</H3>
+<PRE>
+public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A>[] <B>values</B>()</PRE>
+<DL>
+<DD>Returns an array containing the constants of this enum type, in
+the order they're declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for(ModifierKeys c : ModifierKeys.values())
+        System.out.println(c);
+</pre>
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an array containing the constants of this enum type, in
+the order they're declared</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="valueOf(java.lang.String)"><!-- --></A><H3>
+valueOf</H3>
+<PRE>
+public static <A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A> <B>valueOf</B>(java.lang.String&nbsp;name)</PRE>
+<DL>
+<DD>Returns the enum constant of this type with the specified name.
+The string must match <I>exactly</I> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the enum constant to be returned.
+<DT><B>Returns:</B><DD>the enum constant with the specified name
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.IllegalArgumentException</CODE> - if this enum type has no constant
+with the specified name</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ModifierKeys.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/ModifierKeys.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ModifierKeys.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/MouseAction.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/MouseAction.html
new file mode 100644
index 0000000..febbf2f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/MouseAction.html
@@ -0,0 +1,414 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+MouseAction
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.input.MouseAction class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="MouseAction";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/MouseAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/MouseAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MouseAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt.input</FONT>
+<BR>
+Enum MouseAction</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by ">java.lang.Enum&lt;<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A>&gt;
+      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.input.MouseAction</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable, java.lang.Comparable&lt;<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A>&gt;</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public enum <B>MouseAction</B><DT>extends java.lang.Enum&lt;<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A>&gt;</DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+
+<A NAME="enum_constant_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Enum Constant Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html#LeftClick">LeftClick</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html#LeftDoubleClick">LeftDoubleClick</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html#MiddleClick">MiddleClick</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html#MiddleDoubleClick">MiddleDoubleClick</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html#None">None</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html#RightClick">RightClick</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html#RightDoubleClick">RightDoubleClick</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html#WheelClick">WheelClick</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html#valueOf(java.lang.String)">valueOf</A></B>(java.lang.String&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html#values()">values</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in
+the order they're declared.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Enum"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Enum</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>getClass, notify, notifyAll, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+
+<A NAME="enum_constant_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Enum Constant Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="None"><!-- --></A><H3>
+None</H3>
+<PRE>
+public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A> <B>None</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="LeftClick"><!-- --></A><H3>
+LeftClick</H3>
+<PRE>
+public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A> <B>LeftClick</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="RightClick"><!-- --></A><H3>
+RightClick</H3>
+<PRE>
+public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A> <B>RightClick</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="MiddleClick"><!-- --></A><H3>
+MiddleClick</H3>
+<PRE>
+public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A> <B>MiddleClick</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="WheelClick"><!-- --></A><H3>
+WheelClick</H3>
+<PRE>
+public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A> <B>WheelClick</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="LeftDoubleClick"><!-- --></A><H3>
+LeftDoubleClick</H3>
+<PRE>
+public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A> <B>LeftDoubleClick</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="RightDoubleClick"><!-- --></A><H3>
+RightDoubleClick</H3>
+<PRE>
+public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A> <B>RightDoubleClick</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="MiddleDoubleClick"><!-- --></A><H3>
+MiddleDoubleClick</H3>
+<PRE>
+public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A> <B>MiddleDoubleClick</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="values()"><!-- --></A><H3>
+values</H3>
+<PRE>
+public static final <A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A>[] <B>values</B>()</PRE>
+<DL>
+<DD>Returns an array containing the constants of this enum type, in
+the order they're declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for(MouseAction c : MouseAction.values())
+        System.out.println(c);
+</pre>
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an array containing the constants of this enum type, in
+the order they're declared</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="valueOf(java.lang.String)"><!-- --></A><H3>
+valueOf</H3>
+<PRE>
+public static <A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A> <B>valueOf</B>(java.lang.String&nbsp;name)</PRE>
+<DL>
+<DD>Returns the enum constant of this type with the specified name.
+The string must match <I>exactly</I> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the enum constant to be returned.
+<DT><B>Returns:</B><DD>the enum constant with the specified name
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.IllegalArgumentException</CODE> - if this enum type has no constant
+with the specified name</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/MouseAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/MouseAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MouseAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/MouseBinding.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/MouseBinding.html
new file mode 100644
index 0000000..48631a7
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/MouseBinding.html
@@ -0,0 +1,231 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+MouseBinding
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.input.MouseBinding class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="MouseBinding";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/MouseBinding.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/MouseBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MouseBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_org.eclipse.xwt.input.InputBinding">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt.input</FONT>
+<BR>
+Class MouseBinding</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">org.eclipse.xwt.input.InputBinding</A>
+      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.input.MouseBinding</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>MouseBinding</B><DT>extends <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/MouseBinding.html#MouseBinding()">MouseBinding</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_org.eclipse.xwt.input.InputBinding"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class org.eclipse.xwt.input.<A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#getCommand()">getCommand</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#getCommandParameter()">getCommandParameter</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#getCommandTarget()">getCommandTarget</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#getGesture()">getGesture</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#setCommand(org.eclipse.xwt.input.ICommand)">setCommand</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#setCommandParameter(java.lang.Object)">setCommandParameter</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#setCommandTarget(java.lang.Object)">setCommandTarget</A>, <A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html#setGesture(org.eclipse.xwt.input.KeyGesture)">setGesture</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="MouseBinding()"><!-- --></A><H3>
+MouseBinding</H3>
+<PRE>
+public <B>MouseBinding</B>()</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/MouseBinding.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/MouseBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MouseBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_org.eclipse.xwt.input.InputBinding">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/RoutedCommand.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/RoutedCommand.html
new file mode 100644
index 0000000..228b88b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/RoutedCommand.html
@@ -0,0 +1,343 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+RoutedCommand
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.input.RoutedCommand class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="RoutedCommand";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/RoutedCommand.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/RoutedCommand.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RoutedCommand.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt.input</FONT>
+<BR>
+Class RoutedCommand</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.eclipse.xwt.input.RoutedCommand</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>RoutedCommand</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html#RoutedCommand()">RoutedCommand</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html#addCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">addCanExecuteChangedListener</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html#canExecute()">canExecute</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html#execute(java.lang.Object)">execute</A></B>(java.lang.Object&nbsp;parameter)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html#fireCanExecuteChangedListener(java.beans.PropertyChangeEvent)">fireCanExecuteChangedListener</A></B>(java.beans.PropertyChangeEvent&nbsp;args)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html#removeCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">removeCanExecuteChangedListener</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="RoutedCommand()"><!-- --></A><H3>
+RoutedCommand</H3>
+<PRE>
+public <B>RoutedCommand</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="canExecute()"><!-- --></A><H3>
+canExecute</H3>
+<PRE>
+public boolean <B>canExecute</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html#canExecute()">canExecute</A></CODE> in interface <CODE><A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="execute(java.lang.Object)"><!-- --></A><H3>
+execute</H3>
+<PRE>
+public void <B>execute</B>(java.lang.Object&nbsp;parameter)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html#execute(java.lang.Object)">execute</A></CODE> in interface <CODE><A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><!-- --></A><H3>
+addCanExecuteChangedListener</H3>
+<PRE>
+public void <B>addCanExecuteChangedListener</B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html#addCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">addCanExecuteChangedListener</A></CODE> in interface <CODE><A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)"><!-- --></A><H3>
+removeCanExecuteChangedListener</H3>
+<PRE>
+public void <B>removeCanExecuteChangedListener</B>(<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html#removeCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">removeCanExecuteChangedListener</A></CODE> in interface <CODE><A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="fireCanExecuteChangedListener(java.beans.PropertyChangeEvent)"><!-- --></A><H3>
+fireCanExecuteChangedListener</H3>
+<PRE>
+public void <B>fireCanExecuteChangedListener</B>(java.beans.PropertyChangeEvent&nbsp;args)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/RoutedCommand.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/RoutedCommand.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RoutedCommand.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/CanExecuteChangedListener.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/CanExecuteChangedListener.html
new file mode 100644
index 0000000..b195a9a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/CanExecuteChangedListener.html
@@ -0,0 +1,232 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Interface org.eclipse.xwt.input.CanExecuteChangedListener
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Interface org.eclipse.xwt.input.CanExecuteChangedListener";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useCanExecuteChangedListener.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CanExecuteChangedListener.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.xwt.input.CanExecuteChangedListener</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt.input"><B>org.eclipse.xwt.input</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt.input"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A> with parameters of type <A HREF="../../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>RoutedCommand.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html#addCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">addCanExecuteChangedListener</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>ICommand.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html#addCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">addCanExecuteChangedListener</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>CommandBinding.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#addCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">addCanExecuteChangedListener</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>CommandBinding.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#addExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">addExecuteChangedListener</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>RoutedCommand.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html#removeCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">removeCanExecuteChangedListener</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>ICommand.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html#removeCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">removeCanExecuteChangedListener</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>CommandBinding.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#removeCanExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">removeCanExecuteChangedListener</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>CommandBinding.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#removeExecuteChangedListener(org.eclipse.xwt.input.CanExecuteChangedListener)">removeExecuteChangedListener</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A>&nbsp;listener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useCanExecuteChangedListener.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CanExecuteChangedListener.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/CommandBinding.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/CommandBinding.html
new file mode 100644
index 0000000..27da4f0
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/CommandBinding.html
@@ -0,0 +1,140 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Class org.eclipse.xwt.input.CommandBinding
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.xwt.input.CommandBinding";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useCommandBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CommandBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.xwt.input.CommandBinding</B></H2>
+</CENTER>
+No usage of org.eclipse.xwt.input.CommandBinding
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useCommandBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="CommandBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/ICommand.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/ICommand.html
new file mode 100644
index 0000000..8a9548d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/ICommand.html
@@ -0,0 +1,300 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Interface org.eclipse.xwt.input.ICommand
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Interface org.eclipse.xwt.input.ICommand";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useICommand.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ICommand.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.xwt.input.ICommand</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt"><B>org.eclipse.xwt</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt.input"><B>org.eclipse.xwt.input</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> that return <A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></CODE></FONT></TD>
+<TD><CODE><B>XWT.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/XWT.html#getCommand(java.lang.String)">getCommand</A></B>(java.lang.String&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Find a command by name</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> that return types with arguments of type <A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.util.Map&lt;java.lang.String,<A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&gt;</CODE></FONT></TD>
+<TD><CODE><B>XWT.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/XWT.html#getCommands()">getCommands</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return all registered commands</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> with parameters of type <A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>XWT.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/XWT.html#registerCommand(java.lang.String, org.eclipse.xwt.input.ICommand)">registerCommand</A></B>(java.lang.String&nbsp;name,
+                <A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&nbsp;command)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Register a command to a name</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt.input"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Classes in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A> that implement <A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input">RoutedCommand</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A> that return <A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></CODE></FONT></TD>
+<TD><CODE><B>InputBinding.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/InputBinding.html#getCommand()">getCommand</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></CODE></FONT></TD>
+<TD><CODE><B>CommandBinding.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#getCommand()">getCommand</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A> with parameters of type <A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>InputBinding.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/InputBinding.html#setCommand(org.eclipse.xwt.input.ICommand)">setCommand</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&nbsp;command)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>CommandBinding.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#setCommand(org.eclipse.xwt.input.ICommand)">setCommand</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&nbsp;command)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Constructors in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A> with parameters of type <A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/CommandBinding.html#CommandBinding(org.eclipse.xwt.input.ICommand)">CommandBinding</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>&nbsp;command)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useICommand.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ICommand.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/InputBinding.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/InputBinding.html
new file mode 100644
index 0000000..c8f5187
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/InputBinding.html
@@ -0,0 +1,184 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Class org.eclipse.xwt.input.InputBinding
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.xwt.input.InputBinding";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useInputBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="InputBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.xwt.input.InputBinding</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt.input"><B>org.eclipse.xwt.input</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt.input"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input">KeyBinding</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;class</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input">MouseBinding</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useInputBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="InputBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/KeyBinding.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/KeyBinding.html
new file mode 100644
index 0000000..6eeb18b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/KeyBinding.html
@@ -0,0 +1,140 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Class org.eclipse.xwt.input.KeyBinding
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.xwt.input.KeyBinding";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useKeyBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="KeyBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.xwt.input.KeyBinding</B></H2>
+</CENTER>
+No usage of org.eclipse.xwt.input.KeyBinding
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useKeyBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="KeyBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/KeyGesture.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/KeyGesture.html
new file mode 100644
index 0000000..3e86668
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/KeyGesture.html
@@ -0,0 +1,192 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Class org.eclipse.xwt.input.KeyGesture
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.xwt.input.KeyGesture";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useKeyGesture.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="KeyGesture.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.xwt.input.KeyGesture</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt.input"><B>org.eclipse.xwt.input</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt.input"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A> that return <A HREF="../../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A></CODE></FONT></TD>
+<TD><CODE><B>InputBinding.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/InputBinding.html#getGesture()">getGesture</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A> with parameters of type <A HREF="../../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>InputBinding.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/InputBinding.html#setGesture(org.eclipse.xwt.input.KeyGesture)">setGesture</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A>&nbsp;gesture)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useKeyGesture.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="KeyGesture.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/ModifierKeys.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/ModifierKeys.html
new file mode 100644
index 0000000..babbd2c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/ModifierKeys.html
@@ -0,0 +1,209 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Class org.eclipse.xwt.input.ModifierKeys
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.xwt.input.ModifierKeys";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useModifierKeys.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ModifierKeys.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.xwt.input.ModifierKeys</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt.input"><B>org.eclipse.xwt.input</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt.input"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A> that return <A HREF="../../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A></CODE></FONT></TD>
+<TD><CODE><B>KeyGesture.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/KeyGesture.html#getModifiers()">getModifiers</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A></CODE></FONT></TD>
+<TD><CODE><B>ModifierKeys.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html#valueOf(java.lang.String)">valueOf</A></B>(java.lang.String&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A>[]</CODE></FONT></TD>
+<TD><CODE><B>ModifierKeys.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html#values()">values</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in
+the order they're declared.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A> with parameters of type <A HREF="../../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>KeyGesture.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/KeyGesture.html#setModifiers(org.eclipse.xwt.input.ModifierKeys)">setModifiers</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A>&nbsp;modifiers)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useModifierKeys.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ModifierKeys.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/MouseAction.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/MouseAction.html
new file mode 100644
index 0000000..16d9050
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/MouseAction.html
@@ -0,0 +1,185 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Class org.eclipse.xwt.input.MouseAction
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.xwt.input.MouseAction";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useMouseAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MouseAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.xwt.input.MouseAction</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt.input"><B>org.eclipse.xwt.input</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt.input"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A> that return <A HREF="../../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A></CODE></FONT></TD>
+<TD><CODE><B>MouseAction.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/MouseAction.html#valueOf(java.lang.String)">valueOf</A></B>(java.lang.String&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A>[]</CODE></FONT></TD>
+<TD><CODE><B>MouseAction.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/input/MouseAction.html#values()">values</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in
+the order they're declared.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useMouseAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MouseAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/MouseBinding.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/MouseBinding.html
new file mode 100644
index 0000000..236ecc1
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/MouseBinding.html
@@ -0,0 +1,140 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Class org.eclipse.xwt.input.MouseBinding
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.xwt.input.MouseBinding";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useMouseBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MouseBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.xwt.input.MouseBinding</B></H2>
+</CENTER>
+No usage of org.eclipse.xwt.input.MouseBinding
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useMouseBinding.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="MouseBinding.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/RoutedCommand.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/RoutedCommand.html
new file mode 100644
index 0000000..00b2220
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/class-use/RoutedCommand.html
@@ -0,0 +1,140 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Class org.eclipse.xwt.input.RoutedCommand
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Class org.eclipse.xwt.input.RoutedCommand";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useRoutedCommand.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RoutedCommand.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>org.eclipse.xwt.input.RoutedCommand</B></H2>
+</CENTER>
+No usage of org.eclipse.xwt.input.RoutedCommand
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/input/\class-useRoutedCommand.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RoutedCommand.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/package-frame.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/package-frame.html
new file mode 100644
index 0000000..f801ea4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/package-frame.html
@@ -0,0 +1,68 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+org.eclipse.xwt.input
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.input package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../org/eclipse/e4/xwt/input/package-summary.html" target="classFrame">org.eclipse.xwt.input</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input" target="classFrame"><I>CanExecuteChangedListener</I></A>
+<BR>
+<A HREF="ICommand.html" title="interface in org.eclipse.xwt.input" target="classFrame"><I>ICommand</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="CommandBinding.html" title="class in org.eclipse.xwt.input" target="classFrame">CommandBinding</A>
+<BR>
+<A HREF="InputBinding.html" title="class in org.eclipse.xwt.input" target="classFrame">InputBinding</A>
+<BR>
+<A HREF="KeyBinding.html" title="class in org.eclipse.xwt.input" target="classFrame">KeyBinding</A>
+<BR>
+<A HREF="KeyGesture.html" title="class in org.eclipse.xwt.input" target="classFrame">KeyGesture</A>
+<BR>
+<A HREF="MouseBinding.html" title="class in org.eclipse.xwt.input" target="classFrame">MouseBinding</A>
+<BR>
+<A HREF="RoutedCommand.html" title="class in org.eclipse.xwt.input" target="classFrame">RoutedCommand</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Enums</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="ModifierKeys.html" title="enum in org.eclipse.xwt.input" target="classFrame">ModifierKeys</A>
+<BR>
+<A HREF="MouseAction.html" title="enum in org.eclipse.xwt.input" target="classFrame">MouseAction</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/package-summary.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/package-summary.html
new file mode 100644
index 0000000..5290506
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/package-summary.html
@@ -0,0 +1,210 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+org.eclipse.xwt.input
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.input package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="org.eclipse.xwt.input";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package org.eclipse.xwt.input
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input">CanExecuteChangedListener</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input">CommandBinding</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input">InputBinding</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input">KeyBinding</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input">KeyGesture</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input">MouseBinding</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input">RoutedCommand</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Enum Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input">ModifierKeys</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input">MouseAction</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/package-tree.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/package-tree.html
new file mode 100644
index 0000000..8cb05f2
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/package-tree.html
@@ -0,0 +1,171 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+org.eclipse.xwt.input Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="org.eclipse.xwt.input Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package org.eclipse.xwt.input
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">org.eclipse.xwt.input.<A HREF="../../../../../org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input"><B>CommandBinding</B></A><LI TYPE="circle">org.eclipse.xwt.input.<A HREF="../../../../../org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input"><B>InputBinding</B></A><UL>
+<LI TYPE="circle">org.eclipse.xwt.input.<A HREF="../../../../../org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input"><B>KeyBinding</B></A><LI TYPE="circle">org.eclipse.xwt.input.<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input"><B>MouseBinding</B></A></UL>
+<LI TYPE="circle">org.eclipse.xwt.input.<A HREF="../../../../../org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input"><B>KeyGesture</B></A><LI TYPE="circle">org.eclipse.xwt.input.<A HREF="../../../../../org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input"><B>RoutedCommand</B></A> (implements org.eclipse.xwt.input.<A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>)
+</UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.util.EventListener<UL>
+<LI TYPE="circle">java.beans.PropertyChangeListener<UL>
+<LI TYPE="circle">org.eclipse.xwt.input.<A HREF="../../../../../org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input"><B>CanExecuteChangedListener</B></A></UL>
+</UL>
+<LI TYPE="circle">org.eclipse.xwt.input.<A HREF="../../../../../org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input"><B>ICommand</B></A></UL>
+<H2>
+Enum Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">java.lang.Enum&lt;E&gt; (implements java.lang.Comparable&lt;T&gt;, java.io.Serializable)
+<UL>
+<LI TYPE="circle">org.eclipse.xwt.input.<A HREF="../../../../../org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input"><B>MouseAction</B></A><LI TYPE="circle">org.eclipse.xwt.input.<A HREF="../../../../../org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input"><B>ModifierKeys</B></A></UL>
+</UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/package-use.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/package-use.html
new file mode 100644
index 0000000..30d5559
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/input/package-use.html
@@ -0,0 +1,215 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Package org.eclipse.xwt.input
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Package org.eclipse.xwt.input";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Package<br>org.eclipse.xwt.input</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt"><B>org.eclipse.xwt</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt.input"><B>org.eclipse.xwt.input</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Classes in <A HREF="../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A> used by <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/input/class-use/ICommand.html#org.eclipse.xwt"><B>ICommand</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt.input"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Classes in <A HREF="../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A> used by <A HREF="../../../../../org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/input/class-use/CanExecuteChangedListener.html#org.eclipse.xwt.input"><B>CanExecuteChangedListener</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/input/class-use/ICommand.html#org.eclipse.xwt.input"><B>ICommand</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/input/class-use/InputBinding.html#org.eclipse.xwt.input"><B>InputBinding</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/input/class-use/KeyGesture.html#org.eclipse.xwt.input"><B>KeyGesture</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/input/class-use/ModifierKeys.html#org.eclipse.xwt.input"><B>ModifierKeys</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/input/class-use/MouseAction.html#org.eclipse.xwt.input"><B>MouseAction</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/input/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/IBehavior.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/IBehavior.html
new file mode 100644
index 0000000..b3df1d3
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/IBehavior.html
@@ -0,0 +1,236 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:36 CET 2009 -->
+<TITLE>
+IBehavior
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.metadata.IBehavior interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="IBehavior";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IBehavior.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/IBehavior.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IBehavior.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt.metadata</FONT>
+<BR>
+Interface IBehavior</H2>
+<DL>
+<DT><B>All Known Subinterfaces:</B> <DD><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata">IEvent</A>, <A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>IBehavior</B></DL>
+</PRE>
+
+<P>
+Common behavior of Property and event
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>yyang</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html#getName()">getName</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Getter of the property <tt>name</tt></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html#setName(java.lang.String)">setName</A></B>(java.lang.String&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getName()"><!-- --></A><H3>
+getName</H3>
+<PRE>
+java.lang.String <B>getName</B>()</PRE>
+<DL>
+<DD>Getter of the property <tt>name</tt>
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Returns the name.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setName(java.lang.String)"><!-- --></A><H3>
+setName</H3>
+<PRE>
+void <B>setName</B>(java.lang.String&nbsp;name)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IBehavior.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/IBehavior.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IBehavior.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/IEvent.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/IEvent.html
new file mode 100644
index 0000000..02c08c9
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/IEvent.html
@@ -0,0 +1,195 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:36 CET 2009 -->
+<TITLE>
+IEvent
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.metadata.IEvent interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="IEvent";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IEvent.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/IEvent.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IEvent.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt.metadata</FONT>
+<BR>
+Interface IEvent</H2>
+<DL>
+<DT><B>All Superinterfaces:</B> <DD><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata">IBehavior</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>IEvent</B><DT>extends <A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata">IBehavior</A></DL>
+</PRE>
+
+<P>
+UI event
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>yyang</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_org.eclipse.xwt.metadata.IBehavior"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from interface org.eclipse.xwt.metadata.<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata">IBehavior</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html#getName()">getName</A>, <A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html#setName(java.lang.String)">setName</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IEvent.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/IEvent.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IEvent.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/IMetaclass.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/IMetaclass.html
new file mode 100644
index 0000000..53a31b3
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/IMetaclass.html
@@ -0,0 +1,499 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:36 CET 2009 -->
+<TITLE>
+IMetaclass
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.metadata.IMetaclass interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="IMetaclass";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IMetaclass.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/IMetaclass.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IMetaclass.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt.metadata</FONT>
+<BR>
+Interface IMetaclass</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>IMetaclass</B></DL>
+</PRE>
+
+<P>
+UI metaclass
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>yyang</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#addArrayProperty(org.eclipse.xwt.metadata.IProperty)">addArrayProperty</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>&nbsp;property)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#addProperty(org.eclipse.xwt.metadata.IProperty)">addProperty</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>&nbsp;property)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#findDefaultProperty()">findDefaultProperty</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata">IEvent</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#findEvent(java.lang.String)">findEvent</A></B>(java.lang.String&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#findProperty(java.lang.String)">findProperty</A></B>(java.lang.String&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata">IEvent</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#getEvents()">getEvents</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#getName()">getName</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#getProperties()">getProperties</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#getSuperClass()">getSuperClass</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Class&lt;?&gt;</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#getType()">getType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#isAbstract()">isAbstract</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#isAssignableFrom(org.eclipse.xwt.metadata.IMetaclass)">isAssignableFrom</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;metaclass)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#isInstance(java.lang.Object)">isInstance</A></B>(java.lang.Object&nbsp;object)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#isSubclassOf(org.eclipse.xwt.metadata.IMetaclass)">isSubclassOf</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;metaclass)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#isSuperclassOf(org.eclipse.xwt.metadata.IMetaclass)">isSuperclassOf</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;metaclass)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#newInstance(java.lang.Object[])">newInstance</A></B>(java.lang.Object[]&nbsp;parameters)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getName()"><!-- --></A><H3>
+getName</H3>
+<PRE>
+java.lang.String <B>getName</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getProperties()"><!-- --></A><H3>
+getProperties</H3>
+<PRE>
+<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>[] <B>getProperties</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSuperClass()"><!-- --></A><H3>
+getSuperClass</H3>
+<PRE>
+<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A> <B>getSuperClass</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEvents()"><!-- --></A><H3>
+getEvents</H3>
+<PRE>
+<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata">IEvent</A>[] <B>getEvents</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="findProperty(java.lang.String)"><!-- --></A><H3>
+findProperty</H3>
+<PRE>
+<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A> <B>findProperty</B>(java.lang.String&nbsp;name)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="findDefaultProperty()"><!-- --></A><H3>
+findDefaultProperty</H3>
+<PRE>
+<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A> <B>findDefaultProperty</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="findEvent(java.lang.String)"><!-- --></A><H3>
+findEvent</H3>
+<PRE>
+<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata">IEvent</A> <B>findEvent</B>(java.lang.String&nbsp;name)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="newInstance(java.lang.Object[])"><!-- --></A><H3>
+newInstance</H3>
+<PRE>
+java.lang.Object <B>newInstance</B>(java.lang.Object[]&nbsp;parameters)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isAbstract()"><!-- --></A><H3>
+isAbstract</H3>
+<PRE>
+boolean <B>isAbstract</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isInstance(java.lang.Object)"><!-- --></A><H3>
+isInstance</H3>
+<PRE>
+boolean <B>isInstance</B>(java.lang.Object&nbsp;object)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isSubclassOf(org.eclipse.xwt.metadata.IMetaclass)"><!-- --></A><H3>
+isSubclassOf</H3>
+<PRE>
+boolean <B>isSubclassOf</B>(<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;metaclass)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isSuperclassOf(org.eclipse.xwt.metadata.IMetaclass)"><!-- --></A><H3>
+isSuperclassOf</H3>
+<PRE>
+boolean <B>isSuperclassOf</B>(<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;metaclass)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isAssignableFrom(org.eclipse.xwt.metadata.IMetaclass)"><!-- --></A><H3>
+isAssignableFrom</H3>
+<PRE>
+boolean <B>isAssignableFrom</B>(<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;metaclass)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getType()"><!-- --></A><H3>
+getType</H3>
+<PRE>
+java.lang.Class&lt;?&gt; <B>getType</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addArrayProperty(org.eclipse.xwt.metadata.IProperty)"><!-- --></A><H3>
+addArrayProperty</H3>
+<PRE>
+<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A> <B>addArrayProperty</B>(<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>&nbsp;property)</PRE>
+<DL>
+<DD>TODO
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>property</CODE> - 
+<DT><B>Returns:</B><DD></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addProperty(org.eclipse.xwt.metadata.IProperty)"><!-- --></A><H3>
+addProperty</H3>
+<PRE>
+<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A> <B>addProperty</B>(<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>&nbsp;property)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IMetaclass.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/IMetaclass.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IMetaclass.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/IProperty.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/IProperty.html
new file mode 100644
index 0000000..1b9a567
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/IProperty.html
@@ -0,0 +1,362 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:36 CET 2009 -->
+<TITLE>
+IProperty
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.metadata.IProperty interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="IProperty";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IProperty.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/IProperty.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IProperty.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt.metadata</FONT>
+<BR>
+Interface IProperty</H2>
+<DL>
+<DT><B>All Superinterfaces:</B> <DD><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata">IBehavior</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>IProperty</B><DT>extends <A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata">IBehavior</A></DL>
+</PRE>
+
+<P>
+UI property
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>yyang</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html#addSetPostAction(org.eclipse.xwt.metadata.ISetPostAction)">addSetPostAction</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata">ISetPostAction</A>&nbsp;setPostAction)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Class&lt;?&gt;</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html#getType()">getType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html#getValue(java.lang.Object)">getValue</A></B>(java.lang.Object&nbsp;target)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html#removeSetPostAction(org.eclipse.xwt.metadata.ISetPostAction)">removeSetPostAction</A></B>(<A HREF="../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata">ISetPostAction</A>&nbsp;setPostAction)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html#setType(java.lang.Class)">setType</A></B>(java.lang.Class&lt;?&gt;&nbsp;type)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html#setValue(java.lang.Object, java.lang.Object)">setValue</A></B>(java.lang.Object&nbsp;target,
+         java.lang.Object&nbsp;value)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Can generate event</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_org.eclipse.xwt.metadata.IBehavior"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from interface org.eclipse.xwt.metadata.<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata">IBehavior</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html#getName()">getName</A>, <A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html#setName(java.lang.String)">setName</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getType()"><!-- --></A><H3>
+getType</H3>
+<PRE>
+java.lang.Class&lt;?&gt; <B>getType</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setType(java.lang.Class)"><!-- --></A><H3>
+setType</H3>
+<PRE>
+void <B>setType</B>(java.lang.Class&lt;?&gt;&nbsp;type)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setValue(java.lang.Object, java.lang.Object)"><!-- --></A><H3>
+setValue</H3>
+<PRE>
+void <B>setValue</B>(java.lang.Object&nbsp;target,
+              java.lang.Object&nbsp;value)
+              throws java.lang.IllegalArgumentException,
+                     java.lang.IllegalAccessException,
+                     java.lang.reflect.InvocationTargetException,
+                     java.lang.SecurityException,
+                     java.lang.NoSuchFieldException</PRE>
+<DL>
+<DD>Can generate event
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.IllegalArgumentException</CODE>
+<DD><CODE>java.lang.IllegalAccessException</CODE>
+<DD><CODE>java.lang.reflect.InvocationTargetException</CODE>
+<DD><CODE>java.lang.SecurityException</CODE>
+<DD><CODE>java.lang.NoSuchFieldException</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getValue(java.lang.Object)"><!-- --></A><H3>
+getValue</H3>
+<PRE>
+java.lang.Object <B>getValue</B>(java.lang.Object&nbsp;target)
+                          throws java.lang.IllegalArgumentException,
+                                 java.lang.IllegalAccessException,
+                                 java.lang.reflect.InvocationTargetException,
+                                 java.lang.SecurityException,
+                                 java.lang.NoSuchFieldException</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.IllegalArgumentException</CODE>
+<DD><CODE>java.lang.IllegalAccessException</CODE>
+<DD><CODE>java.lang.reflect.InvocationTargetException</CODE>
+<DD><CODE>java.lang.SecurityException</CODE>
+<DD><CODE>java.lang.NoSuchFieldException</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addSetPostAction(org.eclipse.xwt.metadata.ISetPostAction)"><!-- --></A><H3>
+addSetPostAction</H3>
+<PRE>
+void <B>addSetPostAction</B>(<A HREF="../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata">ISetPostAction</A>&nbsp;setPostAction)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeSetPostAction(org.eclipse.xwt.metadata.ISetPostAction)"><!-- --></A><H3>
+removeSetPostAction</H3>
+<PRE>
+void <B>removeSetPostAction</B>(<A HREF="../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata">ISetPostAction</A>&nbsp;setPostAction)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/IProperty.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/IProperty.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IProperty.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/ISetPostAction.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/ISetPostAction.html
new file mode 100644
index 0000000..4c4fd62
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/ISetPostAction.html
@@ -0,0 +1,207 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+ISetPostAction
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.metadata.ISetPostAction interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ISetPostAction";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ISetPostAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/ISetPostAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ISetPostAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.eclipse.xwt.metadata</FONT>
+<BR>
+Interface ISetPostAction</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>ISetPostAction</B></DL>
+</PRE>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html#action(java.lang.Object, org.eclipse.xwt.metadata.IProperty, java.lang.Object)">action</A></B>(java.lang.Object&nbsp;target,
+       <A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>&nbsp;property,
+       java.lang.Object&nbsp;value)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="action(java.lang.Object, org.eclipse.xwt.metadata.IProperty, java.lang.Object)"><!-- --></A><H3>
+action</H3>
+<PRE>
+void <B>action</B>(java.lang.Object&nbsp;target,
+            <A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>&nbsp;property,
+            java.lang.Object&nbsp;value)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ISetPostAction.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/ISetPostAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ISetPostAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/IBehavior.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/IBehavior.html
new file mode 100644
index 0000000..afc3d50
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/IBehavior.html
@@ -0,0 +1,184 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Interface org.eclipse.xwt.metadata.IBehavior
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Interface org.eclipse.xwt.metadata.IBehavior";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/metadata/\class-useIBehavior.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IBehavior.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.xwt.metadata.IBehavior</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata">IBehavior</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt.metadata"><B>org.eclipse.xwt.metadata</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt.metadata"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata">IBehavior</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Subinterfaces of <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata">IBehavior</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;interface</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata">IEvent</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UI event</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;interface</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UI property</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/metadata/\class-useIBehavior.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IBehavior.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/IEvent.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/IEvent.html
new file mode 100644
index 0000000..750e031
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/IEvent.html
@@ -0,0 +1,184 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Interface org.eclipse.xwt.metadata.IEvent
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Interface org.eclipse.xwt.metadata.IEvent";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/metadata/\class-useIEvent.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IEvent.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.xwt.metadata.IEvent</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata">IEvent</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt.metadata"><B>org.eclipse.xwt.metadata</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt.metadata"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata">IEvent</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A> that return <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata">IEvent</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata">IEvent</A></CODE></FONT></TD>
+<TD><CODE><B>IMetaclass.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#findEvent(java.lang.String)">findEvent</A></B>(java.lang.String&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata">IEvent</A>[]</CODE></FONT></TD>
+<TD><CODE><B>IMetaclass.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#getEvents()">getEvents</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/metadata/\class-useIEvent.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IEvent.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/IMetaclass.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/IMetaclass.html
new file mode 100644
index 0000000..cd5a214
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/IMetaclass.html
@@ -0,0 +1,306 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Interface org.eclipse.xwt.metadata.IMetaclass
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Interface org.eclipse.xwt.metadata.IMetaclass";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/metadata/\class-useIMetaclass.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IMetaclass.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.xwt.metadata.IMetaclass</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt"><B>org.eclipse.xwt</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt.metadata"><B>org.eclipse.xwt.metadata</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> that return <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></CODE></FONT></TD>
+<TD><CODE><B>IMetaclassFactory.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/IMetaclassFactory.html#create(java.lang.Class, org.eclipse.xwt.metadata.IMetaclass)">create</A></B>(java.lang.Class&lt;?&gt;&nbsp;type,
+       <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;superMetaclass)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>[]</CODE></FONT></TD>
+<TD><CODE><B>XWT.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/XWT.html#getAllMetaclasses()">getAllMetaclasses</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Metaclass services to return all registered Metaclasses.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></CODE></FONT></TD>
+<TD><CODE><B>XWT.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/XWT.html#getMetaclass(java.lang.Object)">getMetaclass</A></B>(java.lang.Object&nbsp;object)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the Metaclass of the given object</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></CODE></FONT></TD>
+<TD><CODE><B>XWT.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/XWT.html#getMetaclass(java.lang.String, java.lang.String)">getMetaclass</A></B>(java.lang.String&nbsp;tagName,
+             java.lang.String&nbsp;ns)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the corresponding Metaclass</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></CODE></FONT></TD>
+<TD><CODE><B>XWT.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/XWT.html#register(java.lang.Class, java.lang.String)">register</A></B>(java.lang.Class&lt;?&gt;&nbsp;javaclass,
+         java.lang.String&nbsp;namespace)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Register UI type</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></CODE></FONT></TD>
+<TD><CODE><B>XWT.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/XWT.html#registerMetaclass(java.lang.Class)">registerMetaclass</A></B>(java.lang.Class&nbsp;type)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Register UI type</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> with parameters of type <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.Object</CODE></FONT></TD>
+<TD><CODE><B>XWT.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/XWT.html#convertFrom(org.eclipse.xwt.metadata.IMetaclass, java.lang.String)">convertFrom</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;type,
+            java.lang.String&nbsp;string)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Data conversion service from String to a given type</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></CODE></FONT></TD>
+<TD><CODE><B>IMetaclassFactory.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/IMetaclassFactory.html#create(java.lang.Class, org.eclipse.xwt.metadata.IMetaclass)">create</A></B>(java.lang.Class&lt;?&gt;&nbsp;type,
+       <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;superMetaclass)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt.metadata"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A> that return <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></CODE></FONT></TD>
+<TD><CODE><B>IMetaclass.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#getSuperClass()">getSuperClass</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A> with parameters of type <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B>IMetaclass.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#isAssignableFrom(org.eclipse.xwt.metadata.IMetaclass)">isAssignableFrom</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;metaclass)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B>IMetaclass.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#isSubclassOf(org.eclipse.xwt.metadata.IMetaclass)">isSubclassOf</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;metaclass)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B>IMetaclass.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#isSuperclassOf(org.eclipse.xwt.metadata.IMetaclass)">isSuperclassOf</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A>&nbsp;metaclass)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/metadata/\class-useIMetaclass.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IMetaclass.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/IProperty.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/IProperty.html
new file mode 100644
index 0000000..19be410
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/IProperty.html
@@ -0,0 +1,242 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Interface org.eclipse.xwt.metadata.IProperty
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Interface org.eclipse.xwt.metadata.IProperty";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/metadata/\class-useIProperty.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IProperty.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.xwt.metadata.IProperty</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt.metadata"><B>org.eclipse.xwt.metadata</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt.metadata"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A> that return <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></CODE></FONT></TD>
+<TD><CODE><B>IMetaclass.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#addArrayProperty(org.eclipse.xwt.metadata.IProperty)">addArrayProperty</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>&nbsp;property)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></CODE></FONT></TD>
+<TD><CODE><B>IMetaclass.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#addProperty(org.eclipse.xwt.metadata.IProperty)">addProperty</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>&nbsp;property)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></CODE></FONT></TD>
+<TD><CODE><B>IMetaclass.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#findDefaultProperty()">findDefaultProperty</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></CODE></FONT></TD>
+<TD><CODE><B>IMetaclass.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#findProperty(java.lang.String)">findProperty</A></B>(java.lang.String&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>[]</CODE></FONT></TD>
+<TD><CODE><B>IMetaclass.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#getProperties()">getProperties</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A> with parameters of type <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>ISetPostAction.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html#action(java.lang.Object, org.eclipse.xwt.metadata.IProperty, java.lang.Object)">action</A></B>(java.lang.Object&nbsp;target,
+       <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>&nbsp;property,
+       java.lang.Object&nbsp;value)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></CODE></FONT></TD>
+<TD><CODE><B>IMetaclass.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#addArrayProperty(org.eclipse.xwt.metadata.IProperty)">addArrayProperty</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>&nbsp;property)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TODO</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></CODE></FONT></TD>
+<TD><CODE><B>IMetaclass.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html#addProperty(org.eclipse.xwt.metadata.IProperty)">addProperty</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A>&nbsp;property)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/metadata/\class-useIProperty.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IProperty.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/ISetPostAction.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/ISetPostAction.html
new file mode 100644
index 0000000..bb4d438
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/class-use/ISetPostAction.html
@@ -0,0 +1,184 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Interface org.eclipse.xwt.metadata.ISetPostAction
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Interface org.eclipse.xwt.metadata.ISetPostAction";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/metadata/\class-useISetPostAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ISetPostAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Interface<br>org.eclipse.xwt.metadata.ISetPostAction</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata">ISetPostAction</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt.metadata"><B>org.eclipse.xwt.metadata</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt.metadata"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Uses of <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata">ISetPostAction</A> in <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A> with parameters of type <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata">ISetPostAction</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>IProperty.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html#addSetPostAction(org.eclipse.xwt.metadata.ISetPostAction)">addSetPostAction</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata">ISetPostAction</A>&nbsp;setPostAction)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B>IProperty.</B><B><A HREF="../../../../../../org/eclipse/e4/xwt/metadata/IProperty.html#removeSetPostAction(org.eclipse.xwt.metadata.ISetPostAction)">removeSetPostAction</A></B>(<A HREF="../../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata">ISetPostAction</A>&nbsp;setPostAction)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../../index.html?org/eclipse/e4/xwt/metadata/\class-useISetPostAction.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ISetPostAction.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/package-frame.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/package-frame.html
new file mode 100644
index 0000000..bdb0fe8
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/package-frame.html
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+org.eclipse.xwt.metadata
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.metadata package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../../org/eclipse/e4/xwt/metadata/package-summary.html" target="classFrame">org.eclipse.xwt.metadata</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="IBehavior.html" title="interface in org.eclipse.xwt.metadata" target="classFrame"><I>IBehavior</I></A>
+<BR>
+<A HREF="IEvent.html" title="interface in org.eclipse.xwt.metadata" target="classFrame"><I>IEvent</I></A>
+<BR>
+<A HREF="IMetaclass.html" title="interface in org.eclipse.xwt.metadata" target="classFrame"><I>IMetaclass</I></A>
+<BR>
+<A HREF="IProperty.html" title="interface in org.eclipse.xwt.metadata" target="classFrame"><I>IProperty</I></A>
+<BR>
+<A HREF="ISetPostAction.html" title="interface in org.eclipse.xwt.metadata" target="classFrame"><I>ISetPostAction</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/package-summary.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/package-summary.html
new file mode 100644
index 0000000..cf9a098
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/package-summary.html
@@ -0,0 +1,170 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+org.eclipse.xwt.metadata
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt.metadata package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="org.eclipse.xwt.metadata";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;NEXT PACKAGE</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package org.eclipse.xwt.metadata
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata">IBehavior</A></B></TD>
+<TD>Common behavior of Property and event</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata">IEvent</A></B></TD>
+<TD>UI event</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata">IMetaclass</A></B></TD>
+<TD>UI metaclass</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata">IProperty</A></B></TD>
+<TD>UI property</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata">ISetPostAction</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;NEXT PACKAGE</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/package-tree.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/package-tree.html
new file mode 100644
index 0000000..f34b1c0
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/package-tree.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+org.eclipse.xwt.metadata Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="org.eclipse.xwt.metadata Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package org.eclipse.xwt.metadata
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">org.eclipse.xwt.metadata.<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata"><B>IBehavior</B></A><UL>
+<LI TYPE="circle">org.eclipse.xwt.metadata.<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata"><B>IEvent</B></A><LI TYPE="circle">org.eclipse.xwt.metadata.<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata"><B>IProperty</B></A></UL>
+<LI TYPE="circle">org.eclipse.xwt.metadata.<A HREF="../../../../../org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata"><B>IMetaclass</B></A><LI TYPE="circle">org.eclipse.xwt.metadata.<A HREF="../../../../../org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata"><B>ISetPostAction</B></A></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../../org/eclipse/e4/xwt/input/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/package-use.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/package-use.html
new file mode 100644
index 0000000..898e9e3
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/metadata/package-use.html
@@ -0,0 +1,209 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Package org.eclipse.xwt.metadata
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Package org.eclipse.xwt.metadata";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Package<br>org.eclipse.xwt.metadata</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt"><B>org.eclipse.xwt</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt.metadata"><B>org.eclipse.xwt.metadata</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Classes in <A HREF="../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A> used by <A HREF="../../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/class-use/IMetaclass.html#org.eclipse.xwt"><B>IMetaclass</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UI metaclass</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt.metadata"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Classes in <A HREF="../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A> used by <A HREF="../../../../../org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/class-use/IBehavior.html#org.eclipse.xwt.metadata"><B>IBehavior</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Common behavior of Property and event</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/class-use/IEvent.html#org.eclipse.xwt.metadata"><B>IEvent</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UI event</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/class-use/IMetaclass.html#org.eclipse.xwt.metadata"><B>IMetaclass</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UI metaclass</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/class-use/IProperty.html#org.eclipse.xwt.metadata"><B>IProperty</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UI property</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../../org/eclipse/e4/xwt/metadata/class-use/ISetPostAction.html#org.eclipse.xwt.metadata"><B>ISetPostAction</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../../index.html?org/eclipse/e4/xwt/metadata/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/package-frame.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/package-frame.html
new file mode 100644
index 0000000..5ec910d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/package-frame.html
@@ -0,0 +1,79 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+org.eclipse.xwt
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../org/eclipse/e4/xwt/package-summary.html" target="classFrame">org.eclipse.xwt</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="IConstants.html" title="interface in org.eclipse.xwt" target="classFrame"><I>IConstants</I></A>
+<BR>
+<A HREF="IDataBindingProvider.html" title="interface in org.eclipse.xwt" target="classFrame"><I>IDataBindingProvider</I></A>
+<BR>
+<A HREF="ILoadData.html" title="interface in org.eclipse.xwt" target="classFrame"><I>ILoadData</I></A>
+<BR>
+<A HREF="ILoadingContext.html" title="interface in org.eclipse.xwt" target="classFrame"><I>ILoadingContext</I></A>
+<BR>
+<A HREF="ILogger.html" title="interface in org.eclipse.xwt" target="classFrame"><I>ILogger</I></A>
+<BR>
+<A HREF="IMetaclassFactory.html" title="interface in org.eclipse.xwt" target="classFrame"><I>IMetaclassFactory</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="ResourceDictionary.html" title="class in org.eclipse.xwt" target="classFrame">ResourceDictionary</A>
+<BR>
+<A HREF="XWT.html" title="class in org.eclipse.xwt" target="classFrame">XWT</A>
+<BR>
+<A HREF="XWTMaps.html" title="class in org.eclipse.xwt" target="classFrame">XWTMaps</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Enums</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="Tracking.html" title="enum in org.eclipse.xwt" target="classFrame">Tracking</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Exceptions</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="XWTException.html" title="class in org.eclipse.xwt" target="classFrame">XWTException</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/package-summary.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/package-summary.html
new file mode 100644
index 0000000..53ddad6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/package-summary.html
@@ -0,0 +1,224 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+org.eclipse.xwt
+</TITLE>
+
+<META NAME="keywords" CONTENT="org.eclipse.xwt package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="org.eclipse.xwt";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV PACKAGE&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/input/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package org.eclipse.xwt
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt">IConstants</A></B></TD>
+<TD>Shared constants</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/e4/xwt/IDataBindingProvider.html" title="interface in org.eclipse.xwt">IDataBindingProvider</A></B></TD>
+<TD>A Data Binding provider defines the nature of Data Binding such as Bean Object Binding, EMF Object Binding, XML data Binding or Data Base binding</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt">ILoadData</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt">ILoadingContext</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt">ILogger</A></B></TD>
+<TD>Looger interface</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt">IMetaclassFactory</A></B></TD>
+<TD>Metaclass factory provides a customizable Metaclass creation mechanism.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">ResourceDictionary</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt">XWT</A></B></TD>
+<TD>XWT is the main class of the XWT framework.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt">XWTMaps</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Enum Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt">Tracking</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Exception Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt">XWTException</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV PACKAGE&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/input/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/package-tree.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/package-tree.html
new file mode 100644
index 0000000..9291498
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/package-tree.html
@@ -0,0 +1,177 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+org.eclipse.xwt Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="org.eclipse.xwt Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/input/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package org.eclipse.xwt
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">java.util.AbstractMap&lt;K,V&gt; (implements java.util.Map&lt;K,V&gt;)
+<UL>
+<LI TYPE="circle">java.util.HashMap&lt;K,V&gt; (implements java.lang.Cloneable, java.util.Map&lt;K,V&gt;, java.io.Serializable)
+<UL>
+<LI TYPE="circle">org.eclipse.xwt.<A HREF="../../../../org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt"><B>ResourceDictionary</B></A></UL>
+</UL>
+<LI TYPE="circle">java.lang.Throwable (implements java.io.Serializable)
+<UL>
+<LI TYPE="circle">java.lang.Exception<UL>
+<LI TYPE="circle">java.lang.RuntimeException<UL>
+<LI TYPE="circle">org.eclipse.xwt.<A HREF="../../../../org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt"><B>XWTException</B></A></UL>
+</UL>
+</UL>
+<LI TYPE="circle">org.eclipse.xwt.<A HREF="../../../../org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt"><B>XWT</B></A><LI TYPE="circle">org.eclipse.xwt.<A HREF="../../../../org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt"><B>XWTMaps</B></A></UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">org.eclipse.xwt.<A HREF="../../../../org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt"><B>IConstants</B></A><LI TYPE="circle">org.eclipse.xwt.<A HREF="../../../../org/eclipse/e4/xwt/IDataBindingProvider.html" title="interface in org.eclipse.xwt"><B>IDataBindingProvider</B></A><LI TYPE="circle">org.eclipse.xwt.<A HREF="../../../../org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt"><B>ILoadData</B></A><LI TYPE="circle">org.eclipse.xwt.<A HREF="../../../../org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt"><B>ILoadingContext</B></A><LI TYPE="circle">org.eclipse.xwt.<A HREF="../../../../org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt"><B>ILogger</B></A><LI TYPE="circle">org.eclipse.xwt.<A HREF="../../../../org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt"><B>IMetaclassFactory</B></A></UL>
+<H2>
+Enum Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">java.lang.Enum&lt;E&gt; (implements java.lang.Comparable&lt;T&gt;, java.io.Serializable)
+<UL>
+<LI TYPE="circle">org.eclipse.xwt.<A HREF="../../../../org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt"><B>Tracking</B></A></UL>
+</UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;<A HREF="../../../../org/eclipse/e4/xwt/input/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/package-use.html b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/package-use.html
new file mode 100644
index 0000000..10180e0
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/org/eclipse/e4/xwt/package-use.html
@@ -0,0 +1,196 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Uses of Package org.eclipse.xwt
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Uses of Package org.eclipse.xwt";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Package<br>org.eclipse.xwt</B></H2>
+</CENTER>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Packages that use <A HREF="../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><A HREF="#org.eclipse.xwt"><B>org.eclipse.xwt</B></A></TD>
+<TD>&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<A NAME="org.eclipse.xwt"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+Classes in <A HREF="../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A> used by <A HREF="../../../../org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../org/eclipse/e4/xwt/class-use/ILoadData.html#org.eclipse.xwt"><B>ILoadData</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../org/eclipse/e4/xwt/class-use/ILoadingContext.html#org.eclipse.xwt"><B>ILoadingContext</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../org/eclipse/e4/xwt/class-use/ILogger.html#org.eclipse.xwt"><B>ILogger</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Looger interface</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../org/eclipse/e4/xwt/class-use/IMetaclassFactory.html#org.eclipse.xwt"><B>IMetaclassFactory</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Metaclass factory provides a customizable Metaclass creation mechanism.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../org/eclipse/e4/xwt/class-use/ResourceDictionary.html#org.eclipse.xwt"><B>ResourceDictionary</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><B><A HREF="../../../../org/eclipse/e4/xwt/class-use/Tracking.html#org.eclipse.xwt"><B>Tracking</B></A></B>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?org/eclipse/e4/xwt/package-use.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/overview-frame.html b/plugins/org.eclipse.xwt.doc.user/javadoc/overview-frame.html
new file mode 100644
index 0000000..3d0d286
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/overview-frame.html
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Overview
+</TITLE>
+
+<META NAME="keywords" CONTENT="Overview">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TH ALIGN="left" NOWRAP><FONT size="+1" CLASS="FrameTitleFont">
+<B></B></FONT></TH>
+</TR>
+</TABLE>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="allclasses-frame.html" target="packageFrame">All Classes</A></FONT>
+<P>
+<FONT size="+1" CLASS="FrameHeadingFont">
+Packages</FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/eclipse/e4/xwt/package-frame.html" target="packageFrame">org.eclipse.xwt</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/eclipse/e4/xwt/input/package-frame.html" target="packageFrame">org.eclipse.xwt.input</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="org/eclipse/e4/xwt/metadata/package-frame.html" target="packageFrame">org.eclipse.xwt.metadata</A></FONT>
+<BR>
+</TD>
+</TR>
+</TABLE>
+
+<P>
+&nbsp;
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/overview-summary.html b/plugins/org.eclipse.xwt.doc.user/javadoc/overview-summary.html
new file mode 100644
index 0000000..e052509
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/overview-summary.html
@@ -0,0 +1,156 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:38 CET 2009 -->
+<TITLE>
+Overview
+</TITLE>
+
+<META NAME="keywords" CONTENT="Overview">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Overview";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?overview-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Packages</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="org/eclipse/e4/xwt/package-summary.html">org.eclipse.xwt</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="org/eclipse/e4/xwt/input/package-summary.html">org.eclipse.xwt.input</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="org/eclipse/e4/xwt/metadata/package-summary.html">org.eclipse.xwt.metadata</A></B></TD>
+<TD>&nbsp;</TD>
+</TR>
+</TABLE>
+
+<P>
+&nbsp;<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?overview-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/overview-tree.html b/plugins/org.eclipse.xwt.doc.user/javadoc/overview-tree.html
new file mode 100644
index 0000000..049919f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/overview-tree.html
@@ -0,0 +1,185 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For All Packages</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="org/eclipse/e4/xwt/package-tree.html">org.eclipse.xwt</A>, <A HREF="org/eclipse/e4/xwt/input/package-tree.html">org.eclipse.xwt.input</A>, <A HREF="org/eclipse/e4/xwt/metadata/package-tree.html">org.eclipse.xwt.metadata</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">java.util.AbstractMap&lt;K,V&gt; (implements java.util.Map&lt;K,V&gt;)
+<UL>
+<LI TYPE="circle">java.util.HashMap&lt;K,V&gt; (implements java.lang.Cloneable, java.util.Map&lt;K,V&gt;, java.io.Serializable)
+<UL>
+<LI TYPE="circle">org.eclipse.xwt.<A HREF="org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt"><B>ResourceDictionary</B></A></UL>
+</UL>
+<LI TYPE="circle">org.eclipse.xwt.input.<A HREF="org/eclipse/e4/xwt/input/CommandBinding.html" title="class in org.eclipse.xwt.input"><B>CommandBinding</B></A><LI TYPE="circle">org.eclipse.xwt.input.<A HREF="org/eclipse/e4/xwt/input/InputBinding.html" title="class in org.eclipse.xwt.input"><B>InputBinding</B></A><UL>
+<LI TYPE="circle">org.eclipse.xwt.input.<A HREF="org/eclipse/e4/xwt/input/KeyBinding.html" title="class in org.eclipse.xwt.input"><B>KeyBinding</B></A><LI TYPE="circle">org.eclipse.xwt.input.<A HREF="org/eclipse/e4/xwt/input/MouseBinding.html" title="class in org.eclipse.xwt.input"><B>MouseBinding</B></A></UL>
+<LI TYPE="circle">org.eclipse.xwt.input.<A HREF="org/eclipse/e4/xwt/input/KeyGesture.html" title="class in org.eclipse.xwt.input"><B>KeyGesture</B></A><LI TYPE="circle">org.eclipse.xwt.input.<A HREF="org/eclipse/e4/xwt/input/RoutedCommand.html" title="class in org.eclipse.xwt.input"><B>RoutedCommand</B></A> (implements org.eclipse.xwt.input.<A HREF="org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input">ICommand</A>)
+<LI TYPE="circle">java.lang.Throwable (implements java.io.Serializable)
+<UL>
+<LI TYPE="circle">java.lang.Exception<UL>
+<LI TYPE="circle">java.lang.RuntimeException<UL>
+<LI TYPE="circle">org.eclipse.xwt.<A HREF="org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt"><B>XWTException</B></A></UL>
+</UL>
+</UL>
+<LI TYPE="circle">org.eclipse.xwt.<A HREF="org/eclipse/e4/xwt/XWT.html" title="class in org.eclipse.xwt"><B>XWT</B></A><LI TYPE="circle">org.eclipse.xwt.<A HREF="org/eclipse/e4/xwt/XWTMaps.html" title="class in org.eclipse.xwt"><B>XWTMaps</B></A></UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.util.EventListener<UL>
+<LI TYPE="circle">org.eclipse.xwt.input.<A HREF="org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input"><B>CanExecuteChangedListener</B></A><LI TYPE="circle">java.beans.PropertyChangeListener<UL>
+<LI TYPE="circle">org.eclipse.xwt.input.<A HREF="org/eclipse/e4/xwt/input/CanExecuteChangedListener.html" title="interface in org.eclipse.xwt.input"><B>CanExecuteChangedListener</B></A></UL>
+</UL>
+<LI TYPE="circle">org.eclipse.xwt.metadata.<A HREF="org/eclipse/e4/xwt/metadata/IBehavior.html" title="interface in org.eclipse.xwt.metadata"><B>IBehavior</B></A><UL>
+<LI TYPE="circle">org.eclipse.xwt.metadata.<A HREF="org/eclipse/e4/xwt/metadata/IEvent.html" title="interface in org.eclipse.xwt.metadata"><B>IEvent</B></A><LI TYPE="circle">org.eclipse.xwt.metadata.<A HREF="org/eclipse/e4/xwt/metadata/IProperty.html" title="interface in org.eclipse.xwt.metadata"><B>IProperty</B></A></UL>
+<LI TYPE="circle">org.eclipse.xwt.input.<A HREF="org/eclipse/e4/xwt/input/ICommand.html" title="interface in org.eclipse.xwt.input"><B>ICommand</B></A><LI TYPE="circle">org.eclipse.xwt.<A HREF="org/eclipse/e4/xwt/IConstants.html" title="interface in org.eclipse.xwt"><B>IConstants</B></A><LI TYPE="circle">org.eclipse.xwt.<A HREF="org/eclipse/e4/xwt/IDataBindingProvider.html" title="interface in org.eclipse.xwt"><B>IDataBindingProvider</B></A><LI TYPE="circle">org.eclipse.xwt.<A HREF="org/eclipse/e4/xwt/ILoadData.html" title="interface in org.eclipse.xwt"><B>ILoadData</B></A><LI TYPE="circle">org.eclipse.xwt.<A HREF="org/eclipse/e4/xwt/ILoadingContext.html" title="interface in org.eclipse.xwt"><B>ILoadingContext</B></A><LI TYPE="circle">org.eclipse.xwt.<A HREF="org/eclipse/e4/xwt/ILogger.html" title="interface in org.eclipse.xwt"><B>ILogger</B></A><LI TYPE="circle">org.eclipse.xwt.metadata.<A HREF="org/eclipse/e4/xwt/metadata/IMetaclass.html" title="interface in org.eclipse.xwt.metadata"><B>IMetaclass</B></A><LI TYPE="circle">org.eclipse.xwt.<A HREF="org/eclipse/e4/xwt/IMetaclassFactory.html" title="interface in org.eclipse.xwt"><B>IMetaclassFactory</B></A><LI TYPE="circle">org.eclipse.xwt.metadata.<A HREF="org/eclipse/e4/xwt/metadata/ISetPostAction.html" title="interface in org.eclipse.xwt.metadata"><B>ISetPostAction</B></A></UL>
+<H2>
+Enum Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">java.lang.Enum&lt;E&gt; (implements java.lang.Comparable&lt;T&gt;, java.io.Serializable)
+<UL>
+<LI TYPE="circle">org.eclipse.xwt.<A HREF="org/eclipse/e4/xwt/Tracking.html" title="enum in org.eclipse.xwt"><B>Tracking</B></A><LI TYPE="circle">org.eclipse.xwt.input.<A HREF="org/eclipse/e4/xwt/input/MouseAction.html" title="enum in org.eclipse.xwt.input"><B>MouseAction</B></A><LI TYPE="circle">org.eclipse.xwt.input.<A HREF="org/eclipse/e4/xwt/input/ModifierKeys.html" title="enum in org.eclipse.xwt.input"><B>ModifierKeys</B></A></UL>
+</UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/package-list b/plugins/org.eclipse.xwt.doc.user/javadoc/package-list
new file mode 100644
index 0000000..e94d8da
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/package-list
@@ -0,0 +1,3 @@
+org.eclipse.xwt
+org.eclipse.xwt.input
+org.eclipse.xwt.metadata
diff --git a/org.eclipse.xwt.doc.user/javadoc/resources/inherit.gif b/plugins/org.eclipse.xwt.doc.user/javadoc/resources/inherit.gif
similarity index 100%
rename from org.eclipse.xwt.doc.user/javadoc/resources/inherit.gif
rename to plugins/org.eclipse.xwt.doc.user/javadoc/resources/inherit.gif
Binary files differ
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/serialized-form.html b/plugins/org.eclipse.xwt.doc.user/javadoc/serialized-form.html
new file mode 100644
index 0000000..685f414
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/serialized-form.html
@@ -0,0 +1,170 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Feb 03 01:38:37 CET 2009 -->
+<TITLE>
+Serialized Form
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Serialized Form";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?serialized-form.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="serialized-form.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+Serialized Form</H1>
+</CENTER>
+<HR SIZE="4" NOSHADE>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="center"><FONT SIZE="+2">
+<B>Package</B> <B>org.eclipse.xwt</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="org.eclipse.xwt.ResourceDictionary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class <A HREF="org/eclipse/e4/xwt/ResourceDictionary.html" title="class in org.eclipse.xwt">org.eclipse.xwt.ResourceDictionary</A> extends java.util.HashMap&lt;java.lang.String,java.lang.Object&gt; implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<A NAME="org.eclipse.xwt.XWTException"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class <A HREF="org/eclipse/e4/xwt/XWTException.html" title="class in org.eclipse.xwt">org.eclipse.xwt.XWTException</A> extends java.lang.RuntimeException implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?serialized-form.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="serialized-form.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/javadoc/stylesheet.css b/plugins/org.eclipse.xwt.doc.user/javadoc/stylesheet.css
new file mode 100644
index 0000000..6d31fdb
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/javadoc/stylesheet.css
@@ -0,0 +1,29 @@
+/* Javadoc style sheet */
+
+/* Define colors, fonts and other style attributes here to override the defaults */
+
+/* Page background color */
+body { background-color: #FFFFFF }
+
+/* Headings */
+h1 { font-size: 145% }
+
+/* Table colors */
+.TableHeadingColor     { background: #CCCCFF } /* Dark mauve */
+.TableSubHeadingColor  { background: #EEEEFF } /* Light mauve */
+.TableRowColor         { background: #FFFFFF } /* White */
+
+/* Font used in left-hand frame lists */
+.FrameTitleFont   { font-size: 100%; font-family: Helvetica, Arial, sans-serif }
+.FrameHeadingFont { font-size:  90%; font-family: Helvetica, Arial, sans-serif }
+.FrameItemFont    { font-size:  90%; font-family: Helvetica, Arial, sans-serif }
+
+/* Navigation bar fonts and colors */
+.NavBarCell1    { background-color:#EEEEFF;} /* Light mauve */
+.NavBarCell1Rev { background-color:#00008B;} /* Dark Blue */
+.NavBarFont1    { font-family: Arial, Helvetica, sans-serif; color:#000000;}
+.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;}
+
+.NavBarCell2    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}
+.NavBarCell3    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}
+
diff --git a/plugins/org.eclipse.xwt.doc.user/plugin.xml b/plugins/org.eclipse.xwt.doc.user/plugin.xml
new file mode 100644
index 0000000..c6c43d4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/plugin.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+   <extension
+         point="org.eclipse.help.toc">
+      <toc
+            file="toc.xml"
+            primary="true">
+      </toc>
+   </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.xwt.doc.user/pom.xml b/plugins/org.eclipse.xwt.doc.user/pom.xml
new file mode 100755
index 0000000..1193013
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-plugins</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt.doc.user</artifactId>
+	<version>1.0.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+</project>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.doc.user/reference/extension_points/commands.html b/plugins/org.eclipse.xwt.doc.user/reference/extension_points/commands.html
new file mode 100644
index 0000000..3a1b6ad
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/reference/extension_points/commands.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<link href="../../book.css" rel="stylesheet" type="text/css" />
+<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>commands</title>
+<style type="text/css">@import url("file:/D:/Develop/Java/Eclipse/340/plugins/org.eclipse.sdk_3.4.0.v200806172000/book.css");</style>
+<style type="text/css">@import url("file:/D:/Develop/Java/Eclipse/340/configuration/org.eclipse.osgi/bundles/203/1/.cp/schema.css");</style>
+</HEAD>
+<BODY>
+<H1>Commands</H1>
+<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Identifier: </h6>org.eclipse.xwt.pde.commands<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Since: </h6>[Enter the first release in which this extension point appears.]
+<p></p>
+
+<h6 class="CaptionFigColumn SchemaHeader">Description: </h6>This extension point is used to register a command with a name<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Configuration Markup:</h6>
+<p></p>
+<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.command">command</a>*)&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST extension</p>
+<p class="code SchemaDtdAttlist">point&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.command">command</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST command</p>
+<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">class&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>name</b> - the name</li>
+<li><b>class</b> - The class of command must implement the interface org.eclipse.xwt.ICommand</li>
+</ul>
+<br><h6 class="CaptionFigColumn SchemaHeader">Examples: </h6>Here is an example to define a commands: 
+<pre class="Example"><span class="code SchemaTag">
+   &lt;extension
+         point=</span><span class="code SchemaCstring">&quot;org.eclipse.xwt.pde.commands&quot;</span><span class="code SchemaTag">&gt;
+      &lt;command
+            class=</span><span class="code SchemaCstring">&quot;org.eclipse.xwt.demo.MessageCommand&quot;</span><span class="code SchemaTag">
+            name=</span><span class="code SchemaCstring">&quot;Message&quot;</span><span class="code SchemaTag">&gt;
+      &lt;/command&gt;
+   &lt;/extension&gt;
+</span></pre>
+<p></p>
+
+<h6 class="CaptionFigColumn SchemaHeader">API Information: </h6>[Enter API information here.]
+<p></p>
+
+<h6 class="CaptionFigColumn SchemaHeader">Supplied Implementation: </h6>[Enter information about supplied implementation of this extension point.]
+<p></p>
+
+<br>
+<p class="note SchemaCopyright">
+</p>
+</BODY>
+<p><img src="../../cpy.png" /></p>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/reference/extension_points/converters.html b/plugins/org.eclipse.xwt.doc.user/reference/extension_points/converters.html
new file mode 100644
index 0000000..4527118
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/reference/extension_points/converters.html
@@ -0,0 +1,87 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<link href="../../book.css" rel="stylesheet" type="text/css" />
+<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>converters</title>
+<style type="text/css">@import url("file:/D:/Develop/Java/Eclipse/340/plugins/org.eclipse.sdk_3.4.0.v200806172000/book.css");</style>
+<style type="text/css">@import url("file:/D:/Develop/Java/Eclipse/340/configuration/org.eclipse.osgi/bundles/203/1/.cp/schema.css");</style>
+</HEAD>
+<BODY>
+<H1>Converters</H1>
+<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Identifier: </h6>org.eclipse.xwt.pde.converters<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Since: </h6>[Enter the first release in which this extension point appears.]
+<p></p>
+
+<h6 class="CaptionFigColumn SchemaHeader">Description: </h6>This extension point is used to declare a new data converter<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Configuration Markup:</h6>
+<p></p>
+<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.converter">converter</a>*)&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST extension</p>
+<p class="code SchemaDtdAttlist">point&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.converter">converter</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST converter</p>
+<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">class&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+Data converter element</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>name</b> - the name</li>
+<li><b>class</b> - The class of converter must implement the interface  org.eclipse.core.databinding.conversion.IConverter</li>
+</ul>
+<br><h6 class="CaptionFigColumn SchemaHeader">Examples: </h6>Here is an example to define the converter from String to URL: 
+<pre class="Example"><span class="code SchemaTag">
+   &lt;extension
+         point=</span><span class="code SchemaCstring">&quot;org.eclipse.xwt.pde.converters&quot;</span><span class="code SchemaTag">&gt;
+      &lt;converter
+            class=</span><span class="code SchemaCstring">&quot;org.eclipse.xwt.demo.URLConverter&quot;</span><span class="code SchemaTag">
+            name=</span><span class="code SchemaCstring">&quot;URLConverter&quot;</span><span class="code SchemaTag">&gt;
+      &lt;/converter&gt;
+   &lt;/extension&gt;
+</span></pre>
+
+<p>The class implementation should be: </p>
+<pre class="Example"><span class="code SchemaTag">
+package org.eclipse.xwt.demo;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+
+public class URLConverter implements IConverter {
+  public Object convert(Object fromObject) {
+    try {
+      return new URL((String) fromObject);
+    } catch (MalformedURLException e) {
+      throw new RuntimeException(e);
+    }
+  }
+
+  public Object getFromType() {
+    return String.class;
+  }
+
+  public Object getToType() {
+    return URL.class;
+  }
+}
+</span></pre>
+<p></p>
+
+<h6 class="CaptionFigColumn SchemaHeader">API Information: </h6>[Enter API information here.]
+<p></p>
+
+<h6 class="CaptionFigColumn SchemaHeader">Supplied Implementation: </h6>[Enter information about supplied implementation of this extension point.]
+<p></p>
+
+<br>
+<p class="note SchemaCopyright">
+</p>
+</BODY>
+<p><img src="../../cpy.png" /></p>
+</HTML>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.doc.user/reference/extension_points/index.html b/plugins/org.eclipse.xwt.doc.user/reference/extension_points/index.html
new file mode 100644
index 0000000..e88c127
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/reference/extension_points/index.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<link href="../../book.css" rel="stylesheet" type="text/css" />
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Hello World</title>
+</head>
+
+<body>
+
+</body>
+<p><img src="../../cpy.png" /></p>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.doc.user/reference/extension_points/logger.html b/plugins/org.eclipse.xwt.doc.user/reference/extension_points/logger.html
new file mode 100644
index 0000000..325f2e5
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/reference/extension_points/logger.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<link href="../../book.css" rel="stylesheet" type="text/css" />
+<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>logger</title>
+<style type="text/css">@import url("file:/D:/Develop/Java/Eclipse/340/plugins/org.eclipse.sdk_3.4.0.v200806172000/book.css");</style>
+<style type="text/css">@import url("file:/D:/Develop/Java/Eclipse/340/configuration/org.eclipse.osgi/bundles/203/1/.cp/schema.css");</style>
+</HEAD>
+<BODY>
+<H1>Logger</H1>
+<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Identifier: </h6>org.eclipse.xwt.pde.logger<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Since: </h6>[Enter the first release in which this extension point appears.]
+<p></p>
+
+<h6 class="CaptionFigColumn SchemaHeader">Description: </h6>The logger class will be used by XWT framework.<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Configuration Markup:</h6>
+<p></p>
+<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.logger">logger</a>)&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST extension</p>
+<p class="code SchemaDtdAttlist">point&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.logger">logger</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST logger</p>
+<p class="code SchemaDtdAttlist">class&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+Tracker logger will be set in XWT class and will be used by XWT Framework</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>class</b> - The logger class must implements the interface org.eclipse.xwt.ILogger</li>
+</ul>
+<br><h6 class="CaptionFigColumn SchemaHeader">Examples: </h6>Here is an example to declare the logger: 
+<pre class="Example"><span class="code SchemaTag">
+   &lt;extension
+         point=</span><span class="code SchemaCstring">&quot;org.eclipse.xwt.pde.logger&quot;</span><span class="code SchemaTag">&gt;
+      &lt;logger
+            class=</span><span class="code SchemaCstring">&quot;org.eclipse.xwt.demo.Logger&quot;</span><span class="code SchemaTag">&gt;
+      &lt;/logger&gt;
+   &lt;/extension&gt;
+</span></pre>
+<p></p>
+
+<h6 class="CaptionFigColumn SchemaHeader">API Information: </h6>[Enter API information here.]
+<p></p>
+
+<h6 class="CaptionFigColumn SchemaHeader">Supplied Implementation: </h6>[Enter information about supplied implementation of this extension point.]
+<p></p>
+
+<br>
+<p class="note SchemaCopyright">
+</p>
+</BODY>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/reference/extension_points/metaclasses.html b/plugins/org.eclipse.xwt.doc.user/reference/extension_points/metaclasses.html
new file mode 100644
index 0000000..616908f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/reference/extension_points/metaclasses.html
@@ -0,0 +1,81 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<link href="../../book.css" rel="stylesheet" type="text/css" />
+<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>metaclasses</title>
+<style type="text/css">@import url("file:/D:/Develop/Java/Eclipse/340/plugins/org.eclipse.sdk_3.4.0.v200806172000/book.css");</style>
+<style type="text/css">@import url("file:/D:/Develop/Java/Eclipse/340/configuration/org.eclipse.osgi/bundles/203/1/.cp/schema.css");</style>
+</HEAD>
+<BODY>
+<H1>Metaclasses</H1>
+<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Identifier: </h6>org.eclipse.xwt.pde.metaclasses<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Since: </h6>[Enter the first release in which this extension point appears.]
+<p></p>
+
+<h6 class="CaptionFigColumn SchemaHeader">Description: </h6>This extension point is used to register a metaclass in XWT Framework<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Configuration Markup:</h6>
+<p></p>
+<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.metaclass">metaclass</a>*)&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST extension</p>
+<p class="code SchemaDtdAttlist">point&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.metaclass">metaclass</a> (<a href="#e.property">property</a>*)*&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST metaclass</p>
+<p class="code SchemaDtdAttlist">type&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+A metaclass</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>type</b> - The Java type</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.property">property</a> (<a href="#e.SetPostAction">SetPostAction</a>*)*&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST property</p>
+<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class="code SchemaDtdAttlist">type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class="code SchemaDtdAttlist">amount&nbsp;&nbsp;&nbsp;&nbsp;(single|array) "single"<p class="code SchemaDtdAttlist">overwrite&nbsp;(true | false) "false"&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+property in UI element</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>name</b> - </li>
+<li><b>class</b> - </li>
+<li><b>type</b> - </li>
+<li><b>amount</b> - If you want to register an array property, select the "array", otherwise use the "single".</li>
+<li><b>overwrite</b> - If you want to overwrite the property, set true</li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.event">event</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST event</p>
+<p class="code SchemaDtdAttlist">name&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">java&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+Event in UI element</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>name</b> - </li>
+<li><b>java</b> - </li>
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.SetPostAction">SetPostAction</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST SetPostAction</p>
+<p class="code SchemaDtdAttlist">SetPostActionName&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>SetPostActionName</b> - </li>
+</ul>
+<br><h6 class="CaptionFigColumn SchemaHeader">Examples: </h6>[Enter extension point usage example here.]
+<p></p>
+
+<h6 class="CaptionFigColumn SchemaHeader">API Information: </h6>[Enter API information here.]
+<p></p>
+
+<h6 class="CaptionFigColumn SchemaHeader">Supplied Implementation: </h6>[Enter information about supplied implementation of this extension point.]
+<p></p>
+
+<br>
+<p class="note SchemaCopyright">
+</p>
+</BODY>
+<p><img src="../../cpy.png" /></p>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/reference/extension_points/metaclassfactories.html b/plugins/org.eclipse.xwt.doc.user/reference/extension_points/metaclassfactories.html
new file mode 100644
index 0000000..6d6ba93
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/reference/extension_points/metaclassfactories.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<link href="../../book.css" rel="stylesheet" type="text/css" />
+<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Metaclass Factory</title>
+<style type="text/css">@import url("file:/D:/Develop/Java/Eclipse/340/plugins/org.eclipse.sdk_3.4.0.v200806172000/book.css");</style>
+<style type="text/css">@import url("file:/D:/Develop/Java/Eclipse/340/configuration/org.eclipse.osgi/bundles/203/1/.cp/schema.css");</style>
+</HEAD>
+<BODY>
+<H1>MetaclassFactory</H1>
+<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Identifier: </h6>org.eclipse.xwt.pde.metaclassFactories<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Since: </h6>[Enter the first release in which this extension point appears.]
+<p></p>
+
+<h6 class="CaptionFigColumn SchemaHeader">Description: </h6>This extension point is used to register a MetaclassFactory<p></p>
+<h6 class="CaptionFigColumn SchemaHeader">Configuration Markup:</h6>
+<p></p>
+<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.metaclassFactory">metaclassFactory</a>*)&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST extension</p>
+<p class="code SchemaDtdAttlist">point&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class="ConfigMarkupAttlistDesc">
+</ul>
+<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.metaclassFactory">MetaclassFactory</a> EMPTY&gt;</p>
+<p class="code SchemaDtd">&lt;!ATTLIST metaclassFactory</p>
+<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">metaclass&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<p class="ConfigMarkupElementDesc">
+Metaclass definition</p>
+<br>
+<ul class="ConfigMarkupAttlistDesc">
+<li><b>name</b> - </li>
+<li><b>metaclass</b> - The factopry class</li>
+</ul>
+<br><h6 class="CaptionFigColumn SchemaHeader">Examples: </h6>Here is an example to declare the Metaclassfactory class to create the specific metaclasses for JFreeChart library: 
+<pre class="Example"><span class="code SchemaTag">
+   &lt;extension
+         point=</span><span class="code SchemaCstring">&quot;org.eclipse.xwt.pde.metaclassFactories&quot;</span><span class="code SchemaTag">&gt;
+      &lt;metaclassFactory
+            metaclass=</span><span class="code SchemaCstring">&quot;org.eclipse.xwt.demo.JFreeChartFactory&quot;</span><span class="code SchemaTag">
+            name=</span><span class="code SchemaCstring">&quot;JFreeChart&quot;</span><span class="code SchemaTag">&gt;
+      &lt;/metaclassFactory&gt;
+   &lt;/extension&gt;
+</span></pre>
+<p></p>
+
+<h6 class="CaptionFigColumn SchemaHeader">API Information: </h6>[Enter API information here.]
+<p></p>
+
+<h6 class="CaptionFigColumn SchemaHeader">Supplied Implementation: </h6>[Enter information about supplied implementation of this extension point.]
+<p></p>
+
+<br>
+<p class="note SchemaCopyright">
+</p>
+</BODY>
+<p><img src="../../cpy.png" /></p>
+</HTML>
diff --git a/plugins/org.eclipse.xwt.doc.user/toc.xml b/plugins/org.eclipse.xwt.doc.user/toc.xml
new file mode 100644
index 0000000..56255bf
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/toc.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<toc label="XWT Developer Guide" link_to="Yves YANG">
+   <topic href="concepts/overview/index.html" label="Overview">
+   </topic>
+   <topic label="Concepts">
+      <topic href="concepts/markup_language/index.html" label="Markup language">
+      </topic>
+      <topic href="concepts/component/index.html" label="UI Component">
+      </topic>
+      <topic href="concepts/control_binding/index.html" label="Control Binding">
+      </topic>
+      <topic href="concepts/databinding/index.html" label="Data Binding">
+      </topic>
+      <topic href="concepts/application_integration/index.html" label="Integration with existing application">
+      </topic>
+      <topic href="concepts/extensibility/index.html" label="Extensibility">
+      </topic>
+      <topic href="concepts/style/index.html" label="Style">
+      </topic>
+      <topic href="concepts/internationalization/index.html" label="Internationalization">
+      </topic>
+      <topic href="concepts/element_naming_and_finding/index.html" label="Element naming and finding">
+      </topic>
+   </topic>
+   <topic label="Tools">
+      <topic href="tools/new_presentation/index.html" label="New UI Presentation Wizard">
+      </topic>
+      <topic href="tools/new_ui_file/index.html" label="New UI File">
+      </topic>
+      <topic href="tools/ui_editor/index.html" label="Open Component editor">
+      </topic>
+   </topic>
+   <topic label="Tutorials">
+      <topic href="getting_started/hello_world/index.html" label="Hello world">
+      </topic>
+   </topic>
+   <topic label="Reference">
+      <topic label="Object mapping">
+      </topic>
+      <topic label="Extension Points Reference">
+         <topic href="reference/extension_points/commands.html" label="org.eclipse.xwt.pde.commands">
+         </topic>
+         <topic href="reference/extension_points/converters.html" label="org.eclipse.xwt.pde.converters">
+         </topic>
+         <topic href="reference/extension_points/logger.html" label="org.eclipse.xwt.pde.logger">
+         </topic>
+         <topic href="reference/extension_points/metaclassfactories.html" label="org.eclipse.xwt.pde.metaclassfactories">
+         </topic>
+         <topic href="reference/extension_points/metaclasses.html" label="org.eclipse.xwt.pde.metaclasses">
+         </topic>
+      </topic>
+      <topic href="javadoc/index.html" label="Java documentation">
+      </topic>
+   </topic>
+</toc>
diff --git a/org.eclipse.xwt.doc.user/tools/new_presentation/images/hello_01.png b/plugins/org.eclipse.xwt.doc.user/tools/new_presentation/images/hello_01.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/tools/new_presentation/images/hello_01.png
rename to plugins/org.eclipse.xwt.doc.user/tools/new_presentation/images/hello_01.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/tools/new_presentation/images/new_01.png b/plugins/org.eclipse.xwt.doc.user/tools/new_presentation/images/new_01.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/tools/new_presentation/images/new_01.png
rename to plugins/org.eclipse.xwt.doc.user/tools/new_presentation/images/new_01.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/tools/new_presentation/images/new_02.png b/plugins/org.eclipse.xwt.doc.user/tools/new_presentation/images/new_02.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/tools/new_presentation/images/new_02.png
rename to plugins/org.eclipse.xwt.doc.user/tools/new_presentation/images/new_02.png
Binary files differ
diff --git a/plugins/org.eclipse.xwt.doc.user/tools/new_presentation/index.html b/plugins/org.eclipse.xwt.doc.user/tools/new_presentation/index.html
new file mode 100644
index 0000000..acfcf91
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/tools/new_presentation/index.html
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<link href="../../book.css" rel="stylesheet" type="text/css" />
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>New UI Presentation Wizard</title>
+</head>
+
+<body>
+<h1>New Presentation Wizard</h1>
+<p>First of all, create a Java project to host the application.</p>
+<p>Then, right click the java project, select
+'New->Other...->XWT->New UI Presentation' and click Next button.</p>
+<p align="center"><image src="images/hello_01.png" /></p>
+
+<p>Fill the Package as 'demo' and Name as 'Demo'.</p>
+<p align="center"><image src="images/new_01.png" /></p>
+
+<p>Click Finish button. The project is created. It contains a
+'*.java' and a '*.xwt' files and looks like below.</p>
+<p align="center"><image src="images/new_02.png" /></p>
+
+
+</body>
+<p><img src="../../cpy.png" /></p>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/tools/new_ui_file/images/newfile_01.png b/plugins/org.eclipse.xwt.doc.user/tools/new_ui_file/images/newfile_01.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/tools/new_ui_file/images/newfile_01.png
rename to plugins/org.eclipse.xwt.doc.user/tools/new_ui_file/images/newfile_01.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/tools/new_ui_file/images/newfile_02.png b/plugins/org.eclipse.xwt.doc.user/tools/new_ui_file/images/newfile_02.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/tools/new_ui_file/images/newfile_02.png
rename to plugins/org.eclipse.xwt.doc.user/tools/new_ui_file/images/newfile_02.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/tools/new_ui_file/images/newfile_03.png b/plugins/org.eclipse.xwt.doc.user/tools/new_ui_file/images/newfile_03.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/tools/new_ui_file/images/newfile_03.png
rename to plugins/org.eclipse.xwt.doc.user/tools/new_ui_file/images/newfile_03.png
Binary files differ
diff --git a/plugins/org.eclipse.xwt.doc.user/tools/new_ui_file/index.html b/plugins/org.eclipse.xwt.doc.user/tools/new_ui_file/index.html
new file mode 100644
index 0000000..a495eb4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/tools/new_ui_file/index.html
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<link href="../../book.css" rel="stylesheet" type="text/css" />
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>XWT file</title>
+</head>
+
+<body>
+<h1>XWT file</h1>
+<p>First of all, create a Java project to host the application.</p>
+<p>Then, right click the java project, select
+'New->Other...->XWT->New UI File' and click Next button.</p>
+<p align="center"><image src="images/newfile_01.png" /></p>
+
+<p>Named the File name as Demo.xwt.</p>
+
+
+<p align="center"><image src="images/newfile_02.png" /></p>
+
+
+<p>Click Finish button. The project is created. It contains a
+'*.xwt' file and looks like below.</p>
+
+<p align="center"><image src="images/newfile_03.png" /></p>
+
+
+</body>
+<p><img src="../../cpy.png" /></p>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.doc.user/tools/ui_editor/images/ui_editor_01.png b/plugins/org.eclipse.xwt.doc.user/tools/ui_editor/images/ui_editor_01.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/tools/ui_editor/images/ui_editor_01.png
rename to plugins/org.eclipse.xwt.doc.user/tools/ui_editor/images/ui_editor_01.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/tools/ui_editor/images/ui_editor_02.png b/plugins/org.eclipse.xwt.doc.user/tools/ui_editor/images/ui_editor_02.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/tools/ui_editor/images/ui_editor_02.png
rename to plugins/org.eclipse.xwt.doc.user/tools/ui_editor/images/ui_editor_02.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/tools/ui_editor/images/ui_editor_03.png b/plugins/org.eclipse.xwt.doc.user/tools/ui_editor/images/ui_editor_03.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/tools/ui_editor/images/ui_editor_03.png
rename to plugins/org.eclipse.xwt.doc.user/tools/ui_editor/images/ui_editor_03.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/tools/ui_editor/images/ui_editor_04.png b/plugins/org.eclipse.xwt.doc.user/tools/ui_editor/images/ui_editor_04.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/tools/ui_editor/images/ui_editor_04.png
rename to plugins/org.eclipse.xwt.doc.user/tools/ui_editor/images/ui_editor_04.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/tools/ui_editor/images/ui_editor_05.png b/plugins/org.eclipse.xwt.doc.user/tools/ui_editor/images/ui_editor_05.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/tools/ui_editor/images/ui_editor_05.png
rename to plugins/org.eclipse.xwt.doc.user/tools/ui_editor/images/ui_editor_05.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/tools/ui_editor/images/xaml_01.png b/plugins/org.eclipse.xwt.doc.user/tools/ui_editor/images/xaml_01.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/tools/ui_editor/images/xaml_01.png
rename to plugins/org.eclipse.xwt.doc.user/tools/ui_editor/images/xaml_01.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/tools/ui_editor/images/xaml_02.png b/plugins/org.eclipse.xwt.doc.user/tools/ui_editor/images/xaml_02.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/tools/ui_editor/images/xaml_02.png
rename to plugins/org.eclipse.xwt.doc.user/tools/ui_editor/images/xaml_02.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/tools/ui_editor/images/xaml_03.png b/plugins/org.eclipse.xwt.doc.user/tools/ui_editor/images/xaml_03.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/tools/ui_editor/images/xaml_03.png
rename to plugins/org.eclipse.xwt.doc.user/tools/ui_editor/images/xaml_03.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/tools/ui_editor/images/xaml_04.png b/plugins/org.eclipse.xwt.doc.user/tools/ui_editor/images/xaml_04.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/tools/ui_editor/images/xaml_04.png
rename to plugins/org.eclipse.xwt.doc.user/tools/ui_editor/images/xaml_04.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/tools/ui_editor/images/xaml_05.png b/plugins/org.eclipse.xwt.doc.user/tools/ui_editor/images/xaml_05.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/tools/ui_editor/images/xaml_05.png
rename to plugins/org.eclipse.xwt.doc.user/tools/ui_editor/images/xaml_05.png
Binary files differ
diff --git a/org.eclipse.xwt.doc.user/tools/ui_editor/images/xaml_06.png b/plugins/org.eclipse.xwt.doc.user/tools/ui_editor/images/xaml_06.png
similarity index 100%
rename from org.eclipse.xwt.doc.user/tools/ui_editor/images/xaml_06.png
rename to plugins/org.eclipse.xwt.doc.user/tools/ui_editor/images/xaml_06.png
Binary files differ
diff --git a/plugins/org.eclipse.xwt.doc.user/tools/ui_editor/index.html b/plugins/org.eclipse.xwt.doc.user/tools/ui_editor/index.html
new file mode 100644
index 0000000..3b13590
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc.user/tools/ui_editor/index.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<link href="../../book.css" rel="stylesheet" type="text/css" />
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>XAML Editor</title>
+</head>
+
+<body>
+<h1>XWT Editor</h1>
+<p>Double click on '*.xwt' file, or right click on '*.xwt' file and
+select 'Open with->XWT Editor' from pop-up menu will open the XWT
+Editor.</p>
+
+<p>The XAML Editor for XWT has many features to help you visually
+create user interfaces for your XWT application. You arrange controls
+and elements on a visual design surface which represents a window in
+your application.</p>
+
+<h3>Split View of XWT Editor</h3>
+<p>Split view consists of two panes separated by a bar. The upper is
+live display area, it's the graphic view where any changes of UI
+description in the xaml editor will display instantaneously. The bottom
+pane is a xaml editor which used to edit xaml code.</p>
+
+<p align="center"><image src="images/ui_editor_01.png" /></p>
+
+<p>Also you can directly new XWT elements in Design window.</p>
+
+<p align="center"><image src="images/ui_editor_02.png" /></p>
+
+<p>For a complicated application, usually need to declare a new
+namespace and add a reference. User can type it in XWT editor directly
+or add it in Design window.</p>
+
+<p>Right click container component, select 'Edit Namespaces...'. In
+the pop-up dialog click 'Add' button, select 'Specify New Namespace.'
+Then enter the required prefix and namespace URI like following.</p>
+
+<p align="center"><image src="images/ui_editor_03.png" /></p>
+
+<p>When there is an event handling, you can edit the corresponding
+java code in Java eare.</p>
+<p align="center"><image src="images/ui_editor_04.png" /></p>
+
+<p>The XWT provide a convenient way to edit the UI. You can drag
+component which you want to the xaml editor directly.</p>
+<p align="center"><image src="images/ui_editor_05.png" /></p>
+
+
+
+
+
+</body>
+<p><img src="../../cpy.png" /></p>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.doc/.project b/plugins/org.eclipse.xwt.doc/.project
new file mode 100644
index 0000000..6397b33
--- /dev/null
+++ b/plugins/org.eclipse.xwt.doc/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.xwt.doc</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.xwt.doc/XWT.pdf b/plugins/org.eclipse.xwt.doc/XWT.pdf
similarity index 100%
rename from org.eclipse.xwt.doc/XWT.pdf
rename to plugins/org.eclipse.xwt.doc/XWT.pdf
Binary files differ
diff --git a/org.eclipse.xwt.e4/.classpath b/plugins/org.eclipse.xwt.e4/.classpath
similarity index 100%
rename from org.eclipse.xwt.e4/.classpath
rename to plugins/org.eclipse.xwt.e4/.classpath
diff --git a/org.eclipse.xwt.e4/.gitignore b/plugins/org.eclipse.xwt.e4/.gitignore
similarity index 100%
rename from org.eclipse.xwt.e4/.gitignore
rename to plugins/org.eclipse.xwt.e4/.gitignore
diff --git a/org.eclipse.xwt.e4/.project b/plugins/org.eclipse.xwt.e4/.project
similarity index 100%
rename from org.eclipse.xwt.e4/.project
rename to plugins/org.eclipse.xwt.e4/.project
diff --git a/org.eclipse.xwt.e4/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.xwt.e4/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
rename from org.eclipse.xwt.e4/.settings/org.eclipse.jdt.core.prefs
rename to plugins/org.eclipse.xwt.e4/.settings/org.eclipse.jdt.core.prefs
diff --git a/org.eclipse.xwt.e4/.settings/org.eclipse.pde.core.prefs b/plugins/org.eclipse.xwt.e4/.settings/org.eclipse.pde.core.prefs
similarity index 100%
rename from org.eclipse.xwt.e4/.settings/org.eclipse.pde.core.prefs
rename to plugins/org.eclipse.xwt.e4/.settings/org.eclipse.pde.core.prefs
diff --git a/org.eclipse.xwt.e4/META-INF/MANIFEST.MF b/plugins/org.eclipse.xwt.e4/META-INF/MANIFEST.MF
similarity index 100%
rename from org.eclipse.xwt.e4/META-INF/MANIFEST.MF
rename to plugins/org.eclipse.xwt.e4/META-INF/MANIFEST.MF
diff --git a/plugins/org.eclipse.xwt.e4/about.html b/plugins/org.eclipse.xwt.e4/about.html
new file mode 100644
index 0000000..4e81f03
--- /dev/null
+++ b/plugins/org.eclipse.xwt.e4/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>November 20, 2008</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.e4/build.properties b/plugins/org.eclipse.xwt.e4/build.properties
similarity index 100%
rename from org.eclipse.xwt.e4/build.properties
rename to plugins/org.eclipse.xwt.e4/build.properties
diff --git a/plugins/org.eclipse.xwt.e4/notice.html b/plugins/org.eclipse.xwt.e4/notice.html
new file mode 100644
index 0000000..2949b01
--- /dev/null
+++ b/plugins/org.eclipse.xwt.e4/notice.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 9, 2014</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 2.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/plugins/org.eclipse.xwt.e4/pom.xml b/plugins/org.eclipse.xwt.e4/pom.xml
new file mode 100755
index 0000000..618074f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.e4/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-plugins</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt.e4</artifactId>
+	<version>1.0.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+</project>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/E4XWTUI.java b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/E4XWTUI.java
new file mode 100644
index 0000000..a63565b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/E4XWTUI.java
@@ -0,0 +1,237 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Eclipse XWT Project.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Erdal Karaca - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.xwt.e4;
+
+import java.net.URL;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.logging.Logger;
+
+import javax.annotation.PostConstruct;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.DefaultLoadingContext;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.INamespaceHandler;
+import org.eclipse.xwt.IXWTLoader;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.core.IUserDataConstants;
+import org.eclipse.xwt.e4.internal.Case;
+import org.eclipse.xwt.e4.internal.DataBean;
+import org.eclipse.xwt.e4.internal.Export;
+import org.eclipse.xwt.e4.internal.ExportsProperty;
+import org.eclipse.xwt.e4.internal.Make;
+import org.eclipse.xwt.e4.internal.Switch;
+import org.eclipse.xwt.e4.internal.UIRefProperty;
+import org.eclipse.xwt.e4.internal.Var;
+import org.eclipse.xwt.e4.internal.VarsProperty;
+import org.eclipse.xwt.e4.internal.converters.Instanceof;
+import org.eclipse.xwt.e4.internal.widgets.PageBook;
+import org.eclipse.xwt.e4.internal.widgets.PageBookItem;
+import org.eclipse.xwt.internal.core.Binding;
+import org.eclipse.xwt.internal.core.ScopeKeeper;
+import org.eclipse.xwt.internal.utils.UserData;
+import org.eclipse.xwt.metadata.IMetaclass;
+
+public class E4XWTUI {
+	static {
+		XWT.registerMetaclass(DataBean.class);
+		XWT.registerMetaclass(Make.class);
+
+		{
+			XWT.registerMetaclass(Export.class);
+			XWT.registerMetaclass(Var.class);
+			IMetaclass mc = XWT.getMetaclass(Widget.class);
+			mc.addProperty(new ExportsProperty());
+			mc.addProperty(new VarsProperty());
+		}
+
+		{
+			XWT.registerMetaclass(Switch.class);
+			XWT.registerMetaclass(Case.class);
+		}
+
+		{
+			IMetaclass mc = XWT.getMetaclass(Composite.class);
+			mc.addProperty(new UIRefProperty());
+		}
+
+		XWT.registerMetaclass(PageBook.class);
+		XWT.registerMetaclass(PageBookItem.class);
+
+		XWT.registerMetaclass(Instanceof.class);
+
+		XWT.registerConvertor(new IConverter() {
+			@Override
+			public Object getToType() {
+				return Object.class;
+			}
+
+			@Override
+			public Object getFromType() {
+				return Make.class;
+			}
+
+			@Override
+			public Object convert(Object fromObject) {
+				Make make = (Make) fromObject;
+				return make.getMade();
+			}
+		});
+
+		XWT.registerNamespaceHandler("http://www.eclipse.org/xwt/e4",
+				new INamespaceHandler() {
+					@Override
+					public void handleAttribute(Widget widget, Object target,
+							String name, String value) {
+						// TODO
+					}
+				});
+	}
+
+	protected Logger log = Logger.getLogger(this.getClass().getName());
+
+	private Object root;
+	private DataBean dataBean = new DataBean();
+
+	public void setInput(Object newInput) {
+		dataBean.setInput(newInput);
+	}
+
+	protected URL doGetUrl() {
+		Class<?> clazz = this.getClass();
+		return clazz.getResource(clazz.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+	}
+
+	@PostConstruct
+	public void createUI(Composite container, IEclipseContext context) {
+		if (root != null) {
+			throw new IllegalStateException("This UI has already been loaded.");
+		}
+
+		if (container.getLayout() == null) {
+			container.setLayout(new FillLayout());
+		}
+
+		container.setData(IEclipseContext.class.getName(), context);
+		container.setData(E4XWTUI.class.getName(), this);
+
+		URL url = doGetUrl();
+		Map<String, Object> options = new HashMap<String, Object>();
+		populateOptions(options);
+
+		if (container != null) {
+			options.put(IXWTLoader.CONTAINER_PROPERTY, container);
+		}
+
+		try {
+			XWT.setLoadingContext(new DefaultLoadingContext(this.getClass()
+					.getClassLoader()));
+			root = XWT.loadWithOptions(url, options);
+			injectXWTBindings(context);
+		} catch (Exception e) {
+			log.severe(e.getMessage());
+			e.printStackTrace();
+		}
+	}
+
+	private void injectXWTBindings(IEclipseContext context) {
+		UserData userData = (UserData) ((Widget) root)
+				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
+		ScopeKeeper map = (ScopeKeeper) userData
+				.getData(IUserDataConstants.XWT_NAMECONTEXT_KEY);
+		Collection<String> names = map.names();
+		for (String name : names) {
+			Object object = map.getNamedObject(name);
+
+			if (object instanceof Var) {
+				continue;
+			}
+
+			context.set(name, object);
+		}
+	}
+
+	protected void populateOptions(Map<String, Object> options) {
+		options.put(IXWTLoader.CLASS_PROPERTY, this);
+		options.put(IXWTLoader.DATACONTEXT_PROPERTY, dataBean);
+	}
+
+	public void open() {
+		URL url = doGetUrl();
+		Map<String, Object> options = new HashMap<String, Object>();
+		populateOptions(options);
+
+		try {
+			XWT.open(url, options);
+			root = Display.getDefault().getActiveShell();
+		} catch (Exception e) {
+			log.severe(e.getMessage());
+			e.printStackTrace();
+		}
+	}
+
+	public Object getRoot() {
+		return root;
+	}
+
+	@SuppressWarnings("unchecked")
+	protected <T> T findByName(String name) {
+		return (T) XWT.findElementByName(getRoot(), name);
+	}
+
+	public URL getUrl() {
+		return doGetUrl();
+	}
+
+	@SuppressWarnings("unchecked")
+	public static <T> T findData(Class<T> t, Object target) {
+		if (target instanceof Widget) {
+			T ret = (T) ((Widget) target).getData(t.getName());
+
+			if (ret != null) {
+				return ret;
+			}
+		}
+
+		if (target instanceof Control) {
+			return findData(t, ((Control) target).getParent());
+		}
+
+		if (target instanceof Viewer) {
+			Control control = ((Viewer) target).getControl();
+			return findData(t, control);
+		}
+
+		if (target instanceof Binding) {
+			T data = findData(t, ((Binding) target).getControl());
+
+			if (data != null) {
+				return data;
+			}
+
+			return findData(t, ((Binding) target).getHost());
+		}
+
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/E4XWTWizard.java b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/E4XWTWizard.java
new file mode 100644
index 0000000..d14a19b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/E4XWTWizard.java
@@ -0,0 +1,115 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Eclipse XWT Project.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Erdal Karaca - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.xwt.e4;
+
+import org.eclipse.e4.core.contexts.ContextInjectionFactory;
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.jface.wizard.IWizard;
+import org.eclipse.jface.wizard.IWizardPage;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+
+public class E4XWTWizard extends Wizard {
+	private IEclipseContext context;
+	private Object finishHandler;
+	private Object finishResult;
+
+	public E4XWTWizard(IEclipseContext parentContext) {
+		super();
+		context = parentContext.createChild(this.getClass().getName());
+		context.set(IWizard.class, this);
+	}
+
+	@Override
+	public boolean performFinish() {
+		if (finishHandler == null) {
+			return true;
+		}
+
+		finishResult = ContextInjectionFactory.invoke(finishHandler,
+				Execute.class, context);
+		return finishResult instanceof Boolean ? (Boolean) finishResult : true;
+	}
+
+	public IWizardPage createNewPage(String pageName,
+			Class<? extends E4XWTUI> uiClass) {
+		E4XWTWizardPage page = new E4XWTWizardPage(pageName, context, uiClass);
+		addPage(page);
+		return page;
+	}
+
+	public boolean show(Shell shell) {
+		WizardDialog dialog = new WizardDialog(shell == null ? Display
+				.getDefault().getActiveShell() : shell, this) {
+			@Override
+			protected void configureShell(Shell newShell) {
+				super.configureShell(newShell);
+				newShell.setSize(Math.min(640, newShell.getSize().x),
+						Math.min(480, newShell.getSize().y));
+			}
+		};
+
+		return dialog.open() == WizardDialog.OK;
+	}
+
+	public IEclipseContext getContext() {
+		return context;
+	}
+
+	public void setFinishHandler(Object finishHandler) {
+		this.finishHandler = finishHandler;
+		ContextInjectionFactory.inject(finishHandler, context);
+	}
+
+	public Object getFinishResult() {
+		return finishResult;
+	}
+
+	public static class E4XWTWizardPage extends WizardPage {
+		private IEclipseContext context;
+		private Class<? extends E4XWTUI> uiClass;
+
+		protected E4XWTWizardPage(String pageName,
+				IEclipseContext parentContext, Class<? extends E4XWTUI> uiClass) {
+			super(pageName);
+			this.uiClass = uiClass;
+			context = parentContext.createChild(pageName);
+			context.set(IWizardPage.class, this);
+		}
+
+		@Override
+		public void createControl(Composite parent) {
+			Composite container = new Composite(parent, SWT.None);
+			container.setLayout(new FillLayout());
+			context.set(Composite.class, container);
+			ContextInjectionFactory.make(uiClass, context);
+			setControl(container);
+		}
+
+		@Override
+		public boolean isPageComplete() {
+			return super.isPageComplete();
+		}
+
+		public IEclipseContext getContext() {
+			return context;
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/WizardConfig.java b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/WizardConfig.java
new file mode 100644
index 0000000..21ade8f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/WizardConfig.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Eclipse XWT Project.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Erdal Karaca - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.xwt.e4;
+
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.jface.wizard.IWizardPage;
+import org.eclipse.swt.widgets.Shell;
+
+public class WizardConfig {
+	private E4XWTWizard wizard;
+
+	public WizardConfig(IEclipseContext parentContext) {
+		wizard = new E4XWTWizard(parentContext);
+	}
+
+	public WizardConfig onFinish(Object object) {
+		wizard.setFinishHandler(object);
+		return this;
+	}
+
+	public WizardConfig setTitle(String title) {
+		wizard.setWindowTitle(title);
+		return this;
+	}
+
+	public WizardConfig addPage(PageConfig pageConfig) {
+		IWizardPage page = wizard.createNewPage(pageConfig.getUiClass()
+				.getName(), pageConfig.getUiClass());
+		page.setDescription(pageConfig.getDescription());
+		return this;
+	}
+
+	public WizardConfig bind(String key, Object value) {
+		wizard.getContext().set(key, value);
+		return this;
+	}
+
+	public <T> WizardConfig bind(Class<T> type, T t) {
+		wizard.getContext().set(type, t);
+		return this;
+	}
+
+	public boolean show(Shell activeShell) {
+		return wizard.show(activeShell);
+	}
+
+	@SuppressWarnings("unchecked")
+	public <T> T getResult() {
+		return (T) wizard.getFinishResult();
+	}
+
+	public static class PageConfig {
+		private Class<? extends E4XWTUI> uiClass;
+		private String description;
+
+		public PageConfig(Class<? extends E4XWTUI> uiClass) {
+			this.uiClass = uiClass;
+		}
+
+		public String getDescription() {
+			return description;
+		}
+
+		public PageConfig setDescription(String description) {
+			this.description = description;
+			return this;
+		}
+
+		public Class<? extends E4XWTUI> getUiClass() {
+			return uiClass;
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Case.java b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Case.java
new file mode 100644
index 0000000..56ef0e0
--- /dev/null
+++ b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Case.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Eclipse XWT Project.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Erdal Karaca - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.xwt.e4.internal;
+
+import org.eclipse.xwt.IValidationRule;
+import org.eclipse.xwt.e4.E4XWTUI;
+
+public class Case {
+	private Class<? extends E4XWTUI> uiClass;
+	private IValidationRule when;
+
+	public Case(Switch container) {
+		container.addCase(this);
+	}
+
+	public Class<? extends E4XWTUI> getUiClass() {
+		return uiClass;
+	}
+
+	public void setUiClass(Class<? extends E4XWTUI> uiClass) {
+		this.uiClass = uiClass;
+	}
+
+	public IValidationRule getWhen() {
+		return when;
+	}
+
+	public void setWhen(IValidationRule when) {
+		this.when = when;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/DataBean.java b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/DataBean.java
new file mode 100644
index 0000000..52cdfb7
--- /dev/null
+++ b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/DataBean.java
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Eclipse XWT Project.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Erdal Karaca - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.xwt.e4.internal;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+
+public class DataBean {
+	private PropertyChangeSupport changeSupport = new PropertyChangeSupport(
+			this);
+
+	private Object input;
+
+	public DataBean() {
+	}
+
+	public DataBean(Object data) {
+		input = data;
+	}
+
+	public void addPropertyChangeListener(String propertyName,
+			PropertyChangeListener listener) {
+		this.changeSupport.addPropertyChangeListener(propertyName, listener);
+	}
+
+	public void removePropertyChangeListener(String propertyName,
+			PropertyChangeListener listener) {
+		this.changeSupport.removePropertyChangeListener(propertyName, listener);
+	}
+
+	public Object getInput() {
+		return input;
+	}
+
+	public void setInput(Object newInput) {
+		Object oldInput = this.input;
+		this.input = newInput;
+		changeSupport.firePropertyChange("input", oldInput, newInput);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Export.java b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Export.java
new file mode 100644
index 0000000..d9e24bc
--- /dev/null
+++ b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Export.java
@@ -0,0 +1,99 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Eclipse XWT Project.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Erdal Karaca - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.xwt.e4.internal;
+
+import org.eclipse.e4.core.contexts.ContextInjectionFactory;
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.xwt.e4.E4XWTUI;
+
+public class Export {
+	private Object parent;
+	private Object value;
+	private String varName;
+	private int level = 0;
+	private Class<?> make;
+
+	private IEclipseContext ctx;
+
+	public Export(Object parent) {
+		this.parent = parent;
+		ctx = E4XWTUI.findData(IEclipseContext.class, parent);
+	}
+
+	public void setCtx(IEclipseContext ctx) {
+		this.ctx = ctx;
+	}
+
+	public IEclipseContext getCtx() {
+		return ctx;
+	}
+
+	public String getVarName() {
+		return varName;
+	}
+
+	public void setVarName(String varName) {
+		this.varName = varName;
+	}
+
+	public int getLevel() {
+		return level;
+	}
+
+	public void setLevel(int level) {
+		this.level = level;
+	}
+
+	public void setValue(Object value) {
+		this.value = value;
+		exportValue();
+	}
+
+	private void exportValue() {
+		IEclipseContext ctx = this.ctx;
+
+		int l = level == -1 ? Integer.MAX_VALUE : level;
+
+		while (l-- > 0) {
+			IEclipseContext parent = ctx.getParent();
+
+			if (parent == null) {
+				break;
+			}
+
+			ctx = parent;
+		}
+
+		if (value == null && make != null) {
+			value = ContextInjectionFactory.make(make, ctx);
+		}
+
+		ctx.set(varName, value);
+	}
+
+	public Object getValue() {
+		return value;
+	}
+
+	public Object getParent() {
+		return parent;
+	}
+
+	public Class<?> getMake() {
+		return make;
+	}
+
+	public void setMake(Class<?> make) {
+		this.make = make;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/ExportsProperty.java b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/ExportsProperty.java
new file mode 100644
index 0000000..2e971b8
--- /dev/null
+++ b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/ExportsProperty.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Eclipse XWT Project.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Erdal Karaca - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.xwt.e4.internal;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.xwt.javabean.metadata.properties.AbstractProperty;
+import org.eclipse.xwt.metadata.DefaultLoadingType;
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.xwt.metadata.IValueLoading;
+
+public class ExportsProperty extends AbstractProperty {
+	public ExportsProperty() {
+		super("Exports", Export[].class, new DefaultLoadingType(
+				IValueLoading.PostChildren, new IProperty[0]));
+	}
+
+	public void setValue(Object target, Object value)
+			throws IllegalArgumentException, IllegalAccessException,
+			InvocationTargetException, SecurityException, NoSuchFieldException {
+	}
+
+	public Object getValue(Object target) throws IllegalArgumentException,
+			IllegalAccessException, InvocationTargetException,
+			SecurityException, NoSuchFieldException {
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Make.java b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Make.java
new file mode 100644
index 0000000..11e414f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Make.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Eclipse XWT Project.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Erdal Karaca - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.xwt.e4.internal;
+
+import org.eclipse.e4.core.contexts.ContextInjectionFactory;
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.xwt.e4.E4XWTUI;
+
+public class Make {
+	private IEclipseContext context;
+	private Class<?> type;
+	private Object made;
+
+	public Make(Object parent) {
+		IEclipseContext context = E4XWTUI.findData(IEclipseContext.class,
+				parent);
+		setContext(context);
+	}
+
+	public Class<?> getType() {
+		return type;
+	}
+
+	public void setType(Class<?> type) {
+		this.type = type;
+	}
+
+	public IEclipseContext getContext() {
+		return context;
+	}
+
+	public void setContext(IEclipseContext context) {
+		this.context = context;
+	}
+
+	public Object getMade() {
+		if (made == null) {
+			made = ContextInjectionFactory.make(type, context);
+		}
+
+		return made;
+	}
+
+	public void setMade(Object made) {
+		this.made = made;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Switch.java b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Switch.java
new file mode 100644
index 0000000..dd66dfa
--- /dev/null
+++ b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Switch.java
@@ -0,0 +1,89 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Eclipse XWT Project.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Erdal Karaca - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.xwt.e4.internal;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.e4.core.contexts.ContextInjectionFactory;
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.xwt.e4.E4XWTUI;
+
+public class Switch extends Composite {
+	private Object check;
+	private IEclipseContext context;
+	private List<Case> cases = new ArrayList<Case>();
+	private E4XWTUI ui;
+
+	public Switch(Composite parent, int style) {
+		super(parent, style);
+		setLayout(new FillLayout());
+
+		context = E4XWTUI.findData(IEclipseContext.class, parent);
+	}
+
+	public Object getCheck() {
+		return check;
+	}
+
+	public void setCheck(Object check) {
+		this.check = check;
+
+		for (Control child : getChildren()) {
+			child.dispose();
+		}
+
+		Case match = null;
+
+		for (Case uiCase : cases) {
+			if (uiCase.getWhen() == null) {
+				// remember default case
+				match = uiCase;
+				continue;
+			}
+
+			if (uiCase.getUiClass() != null && uiCase.getWhen() != null) {
+				IStatus validate = uiCase.getWhen().validate(check);
+
+				if (validate != null && validate.isOK()) {
+					match = uiCase;
+					// first match wins
+					break;
+				}
+			}
+		}
+
+		// either default match or validated match will be taken
+		if (match != null) {
+			Class<? extends E4XWTUI> uiClass = match.getUiClass();
+			IEclipseContext localContext = context.createChild(uiClass
+					.getName());
+			localContext.set(Composite.class, this);
+			ui = ContextInjectionFactory.make(uiClass, context, localContext);
+		}
+
+		layout();
+	}
+
+	public void addCase(Case uiCase) {
+		cases.add(uiCase);
+	}
+
+	public E4XWTUI getUi() {
+		return ui;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/UIRefProperty.java b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/UIRefProperty.java
new file mode 100644
index 0000000..cca4a39
--- /dev/null
+++ b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/UIRefProperty.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Eclipse XWT Project.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Erdal Karaca - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.xwt.e4.internal;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.e4.core.contexts.ContextInjectionFactory;
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.xwt.e4.E4XWTUI;
+import org.eclipse.xwt.javabean.metadata.properties.AbstractProperty;
+import org.eclipse.xwt.metadata.DefaultLoadingType;
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.xwt.metadata.IValueLoading;
+
+public class UIRefProperty extends AbstractProperty {
+	public UIRefProperty() {
+		super("UiRef", Class.class, new DefaultLoadingType(
+				IValueLoading.PostChildren, new IProperty[0]));
+	}
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public void setValue(Object target, Object value)
+			throws IllegalArgumentException, IllegalAccessException,
+			InvocationTargetException, SecurityException, NoSuchFieldException {
+		IEclipseContext context = E4XWTUI.findData(IEclipseContext.class,
+				target);
+		Class<? extends E4XWTUI> uiClass = (Class<? extends E4XWTUI>) value;
+
+		IEclipseContext localContext = context.createChild(uiClass.getName());
+		localContext.set(Composite.class, (Composite) target);
+		ContextInjectionFactory.make(uiClass, context, localContext);
+	}
+
+	@Override
+	public Object getValue(Object target) throws IllegalArgumentException,
+			IllegalAccessException, InvocationTargetException,
+			SecurityException, NoSuchFieldException {
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Var.java b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Var.java
new file mode 100644
index 0000000..4281fa7
--- /dev/null
+++ b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/Var.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Eclipse XWT Project.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Erdal Karaca - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.xwt.e4.internal;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.e4.core.contexts.RunAndTrack;
+import org.eclipse.xwt.e4.E4XWTUI;
+
+public class Var {
+	private PropertyChangeSupport changeSupport = new PropertyChangeSupport(
+			this);
+
+	private IEclipseContext context;
+	private String varName;
+	private Object value;
+
+	public Var(Object parent) {
+		context = E4XWTUI.findData(IEclipseContext.class, parent);
+	}
+
+	public String getVarName() {
+		return varName;
+	}
+
+	public void setVarName(final String name) {
+		this.varName = name;
+
+		final Boolean[] track = new Boolean[1];
+		track[0] = true;
+		context.runAndTrack(new RunAndTrack() {
+			@Override
+			public boolean changed(IEclipseContext context) {
+				if (!track[0] || Var.this.context == null) {
+					return false;
+				}
+
+				Object newValue = context.get(name);
+				Object oldValue = value;
+				value = newValue;
+				changeSupport.firePropertyChange("value", oldValue, newValue);
+				return true;
+			}
+		});
+	}
+
+	public Object getValue() {
+		return value;
+	}
+
+	public void setValue(Object value) {
+	}
+
+	public void addPropertyChangeListener(String propertyName,
+			PropertyChangeListener listener) {
+		this.changeSupport.addPropertyChangeListener(propertyName, listener);
+	}
+
+	public void removePropertyChangeListener(String propertyName,
+			PropertyChangeListener listener) {
+		this.changeSupport.removePropertyChangeListener(propertyName, listener);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/VarsProperty.java b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/VarsProperty.java
new file mode 100644
index 0000000..646e005
--- /dev/null
+++ b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/VarsProperty.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Eclipse XWT Project.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Erdal Karaca - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.xwt.e4.internal;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.xwt.javabean.metadata.properties.AbstractProperty;
+import org.eclipse.xwt.metadata.DefaultLoadingType;
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.xwt.metadata.IValueLoading;
+
+public class VarsProperty extends AbstractProperty {
+	public VarsProperty() {
+		super("Vars", Var[].class, new DefaultLoadingType(
+				IValueLoading.Normal, new IProperty[0]));
+	}
+
+	public void setValue(Object target, Object value)
+			throws IllegalArgumentException, IllegalAccessException,
+			InvocationTargetException, SecurityException, NoSuchFieldException {
+	}
+
+	public Object getValue(Object target) throws IllegalArgumentException,
+			IllegalAccessException, InvocationTargetException,
+			SecurityException, NoSuchFieldException {
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/converters/Instanceof.java b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/converters/Instanceof.java
new file mode 100644
index 0000000..9eb8a6a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/converters/Instanceof.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Eclipse XWT Project.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Erdal Karaca - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.xwt.e4.internal.converters;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.xwt.validation.AbstractValidationRule;
+
+public class Instanceof extends AbstractValidationRule {
+	private Class<?> type;
+
+	public Class<?> getType() {
+		return type;
+	}
+
+	public void setType(Class<?> type) {
+		this.type = type;
+	}
+
+	private boolean convert(Object fromObject) {
+		if (fromObject == null) {
+			return false;
+		}
+
+		Class<?> objectType = null;
+
+		if (fromObject instanceof Class<?>) {
+			objectType = (Class<?>) fromObject;
+		} else {
+			objectType = fromObject.getClass();
+		}
+
+		return type == null ? false : type.isAssignableFrom(objectType);
+	}
+
+	@Override
+	public IStatus validateBack(Object value) {
+		return null;
+	}
+
+	@Override
+	public IStatus validate(Object value) {
+		return convert(value) ? Status.OK_STATUS : Status.CANCEL_STATUS;
+	}
+
+	@Override
+	public Phase getPhase() {
+		return Phase.AfterGet;
+	}
+
+	@Override
+	public Direction getBindingMode() {
+		return Direction.SourceToTarget;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/widgets/PageBook.java b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/widgets/PageBook.java
new file mode 100644
index 0000000..91605d6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/widgets/PageBook.java
@@ -0,0 +1,118 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2011 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *     Erdal Karaca - adapted to XWT
+ *******************************************************************************/
+package org.eclipse.xwt.e4.internal.widgets;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Layout;
+
+/**
+ * A pagebook is a composite control where only a single control is visible
+ * at a time. It is similar to a notebook, but without tabs.
+ * <p>
+ * This class may be instantiated; it is not intended to be subclassed.
+ * </p>
+ * <p>
+ * Note that although this class is a subclass of <code>Composite</code>,
+ * it does not make sense to set a layout on it.
+ * </p>
+ *
+ * @see PageBookView
+ * @noextend This class is not intended to be subclassed by clients.
+ */
+public class PageBook extends Composite {
+
+    /**
+     * <p>
+     * [Issue: This class should be declared private.]
+     * </p>
+     */
+    public class PageBookLayout extends Layout {
+
+        protected Point computeSize(Composite composite, int wHint, int hHint,
+                boolean flushCache) {
+            if (wHint != SWT.DEFAULT && hHint != SWT.DEFAULT) {
+				return new Point(wHint, hHint);
+			}
+
+            Point result = null;
+            if (currentPage != null) {
+                result = currentPage.computeSize(wHint, hHint, flushCache);
+            } else {
+                //Rectangle rect= composite.getClientArea();
+                //result= new Point(rect.width, rect.height);
+                result = new Point(0, 0);
+            }
+            if (wHint != SWT.DEFAULT) {
+				result.x = wHint;
+			}
+            if (hHint != SWT.DEFAULT) {
+				result.y = hHint;
+			}
+            return result;
+        }
+
+        protected void layout(Composite composite, boolean flushCache) {
+			if (currentPage != null && !currentPage.isDisposed()) {
+                currentPage.setBounds(composite.getClientArea());
+            }
+        }
+    }
+
+    /**
+     * The current control; <code>null</code> if none.
+     */
+    private Control currentPage = null;
+
+    /**
+     * Creates a new empty pagebook.
+     *
+     * @param parent the parent composite
+     * @param style the SWT style bits
+     */
+    public PageBook(Composite parent, int style) {
+        super(parent, style);
+        setLayout(new PageBookLayout());
+    }
+
+    /**
+     * Shows the given page. This method has no effect if the given page is not
+     * contained in this pagebook.
+     *
+     * @param page the page to show
+     */
+    public void showPage(Control page) {
+		if (page.isDisposed() || page.getParent() != this) {
+			return;
+		}
+
+		currentPage = page;
+
+        // show new page
+		page.setVisible(true);
+		layout(true);
+
+		// hide old (and all others) *after* new page has been made visible in
+		// order to avoid flashing
+		Control[] children = getChildren();
+		for (int i = 0; i < children.length; i++) {
+			Control child = children[i];
+			if (child != page && !child.isDisposed()) {
+				child.setVisible(false);
+			}
+		}
+    }
+}
diff --git a/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/widgets/PageBookItem.java b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/widgets/PageBookItem.java
new file mode 100644
index 0000000..ca4dfb7
--- /dev/null
+++ b/plugins/org.eclipse.xwt.e4/src/org/eclipse/xwt/e4/internal/widgets/PageBookItem.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Eclipse XWT Project.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Erdal Karaca - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.xwt.e4.internal.widgets;
+
+import org.eclipse.swt.widgets.Composite;
+
+public class PageBookItem extends Composite {
+	private PageBook pageBook;
+	private boolean makingVisible = false;
+
+	public PageBookItem(Composite parent, int style) {
+		super(parent, style);
+
+		if (parent instanceof PageBook) {
+			this.pageBook = (PageBook) parent;
+		}
+	}
+
+	@Override
+	public void setVisible(boolean visible) {
+		super.setVisible(visible);
+
+		if (visible && !makingVisible) {
+			try {
+				makingVisible = true;
+				pageBook.showPage(this);
+			} finally {
+				makingVisible = false;
+			}
+		}
+	}
+}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/.classpath b/plugins/org.eclipse.xwt.emf/.classpath
old mode 100755
new mode 100644
similarity index 100%
copy from org.eclipse.xwt.tools.ui.designer.core/.classpath
copy to plugins/org.eclipse.xwt.emf/.classpath
diff --git a/org.eclipse.xwt.emf/.gitignore b/plugins/org.eclipse.xwt.emf/.gitignore
similarity index 100%
rename from org.eclipse.xwt.emf/.gitignore
rename to plugins/org.eclipse.xwt.emf/.gitignore
diff --git a/plugins/org.eclipse.xwt.emf/.project b/plugins/org.eclipse.xwt.emf/.project
new file mode 100644
index 0000000..09d0979
--- /dev/null
+++ b/plugins/org.eclipse.xwt.emf/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.xwt.emf</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.xwt.emf/META-INF/MANIFEST.MF b/plugins/org.eclipse.xwt.emf/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..f5705ba
--- /dev/null
+++ b/plugins/org.eclipse.xwt.emf/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name
+Bundle-SymbolicName: org.eclipse.xwt.emf
+Bundle-Version: 1.4.0.qualifier
+Bundle-Activator: org.eclipse.xwt.emf.Activator
+Bundle-Vendor: %Bundle-Vendor
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.xwt;bundle-version="0.9.0";visibility:=reexport,
+ org.eclipse.emf.databinding;bundle-version="1.1.0",
+ org.eclipse.swt;bundle-version="3.4.0",
+ org.eclipse.core.databinding.property;bundle-version="1.1.0",
+ org.eclipse.emf.edit;bundle-version="2.9.0"
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.xwt.emf
diff --git a/plugins/org.eclipse.xwt.emf/OSGI-INF/l10n/bundle.properties b/plugins/org.eclipse.xwt.emf/OSGI-INF/l10n/bundle.properties
new file mode 100644
index 0000000..0283854
--- /dev/null
+++ b/plugins/org.eclipse.xwt.emf/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1,27 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+#******************************************************************************
+# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+# 
+# Contributors:
+#     Soyatec - initial API and implementation
+#******************************************************************************/
+#Properties file for org.eclipse.xwt.emf
+Bundle-Vendor = Eclipse XWT
+Bundle-Name = XWT EMF
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.emf/about.html b/plugins/org.eclipse.xwt.emf/about.html
new file mode 100644
index 0000000..46a80b6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.emf/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 5, 2006</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.emf/build.properties b/plugins/org.eclipse.xwt.emf/build.properties
new file mode 100644
index 0000000..fad0887
--- /dev/null
+++ b/plugins/org.eclipse.xwt.emf/build.properties
@@ -0,0 +1,27 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               OSGI-INF/l10n/bundle.properties,\
+               about.html,\
+               notice.html
+src.includes = .classpath,\
+               .project,\
+               META-INF/,\
+               OSGI-INF/,\
+               about.html,\
+               build.properties,\
+               src/,\
+               notice.html
diff --git a/plugins/org.eclipse.xwt.emf/notice.html b/plugins/org.eclipse.xwt.emf/notice.html
new file mode 100644
index 0000000..2949b01
--- /dev/null
+++ b/plugins/org.eclipse.xwt.emf/notice.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 9, 2014</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 2.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/plugins/org.eclipse.xwt.emf/pom.xml b/plugins/org.eclipse.xwt.emf/pom.xml
new file mode 100755
index 0000000..3f81342
--- /dev/null
+++ b/plugins/org.eclipse.xwt.emf/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-plugins</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt.emf</artifactId>
+	<version>1.4.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+</project>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/Activator.java b/plugins/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/Activator.java
new file mode 100644
index 0000000..d5e5163
--- /dev/null
+++ b/plugins/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/Activator.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf;
+
+import org.eclipse.core.runtime.Plugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends Plugin {
+
+	// The plug-in ID
+	public static final String PLUGIN_ID = "org.eclipse.xwt.emf";
+
+	// The shared instance
+	private static Activator plugin;
+
+	/**
+	 * The constructor
+	 */
+	public Activator() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.core.runtime.Plugins#start(org.osgi.framework.BundleContext)
+	 */
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+		EMFBinding.initialze();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
+	 */
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance
+	 * 
+	 * @return the shared instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFBinding.java b/plugins/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFBinding.java
new file mode 100644
index 0000000..91e74f8
--- /dev/null
+++ b/plugins/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFBinding.java
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.emf.converters.StringToURI;
+import org.eclipse.swt.widgets.Button;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class EMFBinding {
+	public static void initialze() {
+		XWT.registerMetaclass(EMFDataProvider.class);
+		XWT.registerConvertor(StringToURI.instance);
+		XWT.addDataProviderFactory(EMFDataProviderFactory.EMF_DATA_PROVIDER_FACTORY, new EMFDataProviderFactory());
+	}
+
+	public static EObject getEObject(EObject eObj, String featureName) {
+		if (eObj == null) {
+			return null;
+		}
+		EditingDomain editingDomain = AdapterFactoryEditingDomain.getEditingDomainFor(eObj);
+		if (featureName != null) {
+			int index = featureName.indexOf(".");
+			while (eObj != null && index != -1) {
+				String prefix = featureName.substring(0, index);
+				eObj = getEObject(eObj, prefix);
+				featureName = featureName.substring(index + 1);
+				index = featureName.indexOf(".");
+			}
+			index = featureName.indexOf(".");
+			if (eObj != null && index == -1) {
+				EStructuralFeature sf = EMFHelper.findFeature(eObj.eClass(), featureName);
+				if (sf != null) {
+					Object newValue = eObj.eGet(sf);
+					if (newValue == null && sf instanceof EReference) {
+						EObject newEObj = EcoreUtil.create(((EReference) sf)
+								.getEReferenceType());
+						eObj.eSet(sf, newEObj);
+						// use EditingDomain
+						eObj = newEObj;
+					} else if (newValue instanceof EObject) {
+						eObj = (EObject) newValue;
+					}
+				}
+			}
+		}
+		return eObj;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFDataModelService.java b/plugins/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFDataModelService.java
new file mode 100644
index 0000000..e342669
--- /dev/null
+++ b/plugins/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFDataModelService.java
@@ -0,0 +1,123 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2013 Eclipse XWT Team
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *     Erdal Karaca - heuristic method for determination of model type
+ *******************************************************************************/
+package org.eclipse.xwt.emf;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EPackage.Registry;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.xwt.IDataProvider.DataModelService;
+import org.eclipse.xwt.XWTException;
+
+public class EMFDataModelService implements DataModelService {
+	private static Map<Object, EClassifier> lookupTable = Collections
+			.synchronizedMap(new HashMap<Object, EClassifier>());
+
+	public Object toModelType(Object data) {
+		return EMFHelper.toType(data);
+	}
+
+	public Object loadModelType(String className) {
+		return determineModelType(className);
+	}
+
+	public static Object determineModelType(String className) {
+		EClassifier ret = lookupTable.get(className);
+
+		if (ret != null) {
+			return ret;
+		}
+
+		Registry reg = EPackage.Registry.INSTANCE;
+		List<String> paks = new ArrayList<String>(reg.keySet());
+
+		for (String uri : paks) {
+			EPackage pak = reg.getEPackage(uri);
+
+			for (EClassifier ec : pak.getEClassifiers()) {
+				boolean found = ec.getInstanceClass().getName()
+						.equals(className);
+				if (found) {
+					lookupTable.put(className, ec);
+					return ec;
+				}
+			}
+		}
+
+		return null;
+	}
+
+	public static Object determineModelType(Class<?> clazz) {
+		EClassifier ret = lookupTable.get(clazz);
+
+		if (ret != null) {
+			return ret;
+		}
+
+		Registry reg = EPackage.Registry.INSTANCE;
+		List<String> paks = new ArrayList<String>(reg.keySet());
+
+		for (String uri : paks) {
+			EPackage pak = reg.getEPackage(uri);
+
+			for (EClassifier ec : pak.getEClassifiers()) {
+				boolean found = ec.getInstanceClass() == clazz;
+				if (found) {
+					lookupTable.put(clazz, ec);
+					return ec;
+				}
+			}
+		}
+
+		return null;
+	}
+
+	public Object toModelPropertyType(Object object, String propertyName) {
+		EClass type = null;
+		if (object instanceof EClass) {
+			type = (EClass) object;
+		} else if (object instanceof EObject) {
+			type = ((EObject) object).eClass();
+		} else if (object instanceof Class<?>) {
+			type = (EClass) determineModelType((Class<?>) object);
+		}
+
+		if (type == null) {
+			throw new XWTException(" Type for\"" + propertyName
+					+ "\" is not found ");
+		}
+		EStructuralFeature structuralFeature = EMFHelper.findFeature(type, propertyName);
+
+		if (structuralFeature == null) {
+			throw new XWTException(" Property \"" + propertyName
+					+ "\" is not found in the class " + type.getName());
+		}
+		if (((EStructuralFeature.Internal) structuralFeature).isFeatureMap()) {
+			return Map.class;
+		} else if (structuralFeature.isMany()) {
+			return Collection.class;
+		} else {
+			return structuralFeature.getEType();
+		}
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFDataProvider.java b/plugins/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFDataProvider.java
new file mode 100644
index 0000000..b019fd0
--- /dev/null
+++ b/plugins/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFDataProvider.java
@@ -0,0 +1,402 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2013 Eclipse XWT Project.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *     Erdal Karaca - bugs fixes, enhancements
+ *******************************************************************************/
+package org.eclipse.xwt.emf;
+
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.set.IObservableSet;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.core.internal.databinding.observable.masterdetail.DetailObservableValue;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.databinding.EMFObservables;
+import org.eclipse.emf.databinding.EMFProperties;
+import org.eclipse.emf.databinding.EObjectObservableValue;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.dataproviders.AbstractDataProvider;
+import org.eclipse.xwt.internal.core.UpdateSourceTrigger;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class EMFDataProvider extends AbstractDataProvider {
+	private DataModelService dataModelService;
+
+	private URI typeURI;
+	private URI objectURI;
+
+	private ResourceSet resourceSet;
+
+	private String featureName;
+	private Object objectInstance;
+
+	public EMFDataProvider(DataModelService dataModelService) {
+		this.dataModelService = dataModelService;
+	}
+
+	public EMFDataProvider() {
+	}
+
+	@Override
+	protected IObservableValue observeDetailValue(IObservableValue bean,
+			Object ownerType, String propertyName, Object propertyType) {
+		EClass type = null;
+		if (ownerType instanceof EClass) {
+			type = (EClass) ownerType;
+		} else if (ownerType instanceof Class<?>) {
+			type = (EClass) getModelService().loadModelType(
+					((Class<?>) ownerType).getName());
+		}
+
+		if (type == null) {
+			type = (EClass) getModelService().toModelType(bean);
+		}
+		EStructuralFeature feature = EMFHelper.findFeature(type, propertyName);
+		if (feature == null) {
+			throw new XWTException(propertyName + " feature is not found in "
+					+ EMFHelper.getQualifiedName(type));
+		}
+		return EMFObservables
+				.observeDetailValue(bean.getRealm(), bean, feature);
+	}
+
+	@Override
+	protected IObservableValue observeValue(Object bean, String propertyName) {
+		EClass type = (EClass) getModelService().toModelType(bean);
+		EStructuralFeature feature = EMFHelper.findFeature(type, propertyName);
+		if (feature == null) {
+			throw new XWTException(propertyName + " feature is not found in "
+					+ EMFHelper.getQualifiedName(type));
+		}
+		return XWTEMFObservables.observeValue(XWT.getRealm(), (EObject) bean,
+				feature);
+	}
+
+	@Override
+	protected IObservableList observeDetailList(IObservableValue bean,
+			Object elementType, String propertyName, Object propertyType) {
+		EClass type = (EClass) elementType;
+		EStructuralFeature feature = EMFHelper.findFeature(type, propertyName);
+		IObservableList observeDetailList = EMFObservables.observeDetailList(
+				XWT.getRealm(), bean, feature);
+		return observeDetailList;
+	}
+
+	@Override
+	protected IObservableSet observeDetailSet(IObservableValue bean,
+			Object elementType, String propertyName, Object propertyType) {
+		// TODO
+		throw new UnsupportedOperationException("not yet implemented");
+	}
+
+	@Override
+	protected IObservableList observeList(Object bean, String propertyName) {
+		if (bean instanceof EObject) {
+			EObject owner = (EObject) bean;
+			EStructuralFeature feature = EMFHelper.findFeature(owner.eClass(), propertyName);
+			if (feature != null) {
+				return EMFObservables.observeList(XWT.getRealm(), owner,
+						feature);
+			}
+		}
+		return null;
+	}
+
+	@Override
+	protected IObservableSet observeSet(Object bean, String propertyName) {
+		// TODO
+		throw new UnsupportedOperationException("not yet implemented");
+	}
+
+	public IValueProperty observeValueProperty(Object valueType, String path,
+			UpdateSourceTrigger updateSourceTrigger) {
+		EClass type = null;
+		if (valueType instanceof EClass) {
+			type = (EClass) valueType;
+		} else if (valueType instanceof EObject) {
+			EObject object = (EObject) valueType;
+			type = object.eClass();
+		} else {
+			throw new IllegalStateException();
+		}
+		EStructuralFeature feature = EMFHelper.findFeature(type, path);
+		if (feature == null) {
+			throw new XWTException(path + " feature is not found in "
+					+ EMFHelper.getQualifiedName(type));
+		}
+		return EMFProperties.value(feature);
+	}
+
+	public URI getObjectURI() {
+		return objectURI;
+	}
+
+	public void setObjectURI(URI objectURI) {
+		this.objectURI = objectURI;
+	}
+
+	public URI getTypeURI() {
+		return typeURI;
+	}
+
+	public void setTypeURI(URI typeURI) {
+		this.typeURI = typeURI;
+	}
+
+	public Object getObjectInstance() {
+		if (objectInstance == null) {
+			if (objectURI != null) {
+				objectInstance = getResourceSet().getEObject(objectURI, true);
+			} else if (typeURI != null) {
+				EClass eClass = (EClass) getResourceSet().getEObject(typeURI,
+						true);
+				objectInstance = eClass.getEPackage().getEFactoryInstance()
+						.create(eClass);
+			}
+		}
+		return objectInstance;
+	}
+
+	protected ResourceSet getResourceSet() {
+		if (resourceSet == null) {
+			resourceSet = new ResourceSetImpl();
+		}
+		return resourceSet;
+	}
+
+	protected void setResourceSet(ResourceSet resourceSet) {
+		this.resourceSet = resourceSet;
+	}
+
+	public void setObjectInstance(Object eObject) {
+		this.objectInstance = eObject;
+	}
+
+	public Object getTarget() {
+		Object instance = getObjectInstance();
+		if (instance instanceof EObject) {
+			EObject eObj = (EObject) instance;
+			if (eObj != null && featureName != null) {
+				return EMFBinding.getEObject(eObj, featureName);
+			}
+			return eObj;
+		}
+		return instance;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IDataProvider#getData(java.lang.String)
+	 */
+	public Object getData(String path) {
+		Object instance = getTarget();
+		if (!(instance instanceof EObject)) {
+			if (path == null || path.length() == 0 || path.equals(".")) {
+				return instance;
+			}
+			throw new IllegalStateException();
+		}
+		EObject eObj = (EObject) instance;
+		if (path == null || ".".equals(path)) {
+			return eObj;
+		}
+		if (eObj != null) {
+			String featureName = path;
+			int index = path.lastIndexOf(".");
+			if (index != -1) {
+				String parent = path.substring(0, index);
+				eObj = (EObject) getData(eObj, parent);
+				featureName = path.substring(index + 1);
+			}
+			EStructuralFeature feature = EMFHelper.findFeature(eObj.eClass(), featureName);
+			if (feature != null) {
+				return eObj.eGet(feature);
+			}
+		}
+		return null;
+	}
+
+	public boolean isPropertyReadOnly(String path) {
+		EClassifier classifier = getCurrentType();
+		if (classifier instanceof EClass && path != null) {
+			EStructuralFeature feature = EMFHelper.findFeature((EClass)classifier, path);
+			if (feature != null) {
+				return !feature.isChangeable();
+			}
+		}
+		return true;
+	}
+
+	protected EClassifier getCurrentType() {
+		Object instance = getTarget();
+		EClassifier eObj = null;
+		if (instance instanceof EObjectObservableValue) {
+			EObjectObservableValue observableValue = (EObjectObservableValue) instance;
+			EStructuralFeature valueType = (EStructuralFeature) observableValue
+					.getValueType();
+			EClassifier classifier = valueType.getEType();
+			if (classifier instanceof EClass || classifier instanceof EDataType) {
+				eObj = classifier;
+			} else {
+				return null;
+			}
+		} else if (instance instanceof EClass) {
+			eObj = (EClass) instance;
+		} else if (instance instanceof EObject) {
+			EObject object = (EObject) instance;
+			eObj = object.eClass();
+		} else if (instance instanceof DetailObservableValue) {
+			EObject eObject = (EObject) ((DetailObservableValue) instance)
+					.getValueType();
+			eObj = eObject.eClass();
+		} else {
+			if (typeURI != null) {
+				EObject element = getResourceSet().getEObject(typeURI, true);
+				if (element instanceof EClass) {
+					eObj = (EClass) element;
+				}
+			}
+		}
+		if (eObj == null) {
+			throw new IllegalStateException();
+		}
+
+		return eObj;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IDataProvider#getDataType(java.lang.String)
+	 */
+	public Object getDataType(String path) {
+		EClassifier classifier = getCurrentType();
+		if (path == null || path.trim().length() == 0 || path.equals(".")) {
+			if (classifier instanceof EDataType) {
+				return classifier.getInstanceClass();
+			}
+			return classifier;
+		}
+		if (classifier instanceof EClass) {
+			String featureName = path;
+			EStructuralFeature feature = EMFHelper.findFeature((EClass)classifier, featureName);
+			if (feature != null) {
+				return feature.getEType();
+			}
+		}
+
+		return classifier;
+	}
+
+	public void setFeatureName(String featureName) {
+		this.featureName = featureName;
+	}
+
+	public String getFeatureName() {
+		return featureName;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IDataProvider#getData(java.lang.Object,
+	 * java.lang.String)
+	 */
+	public Object getData(Object target, String path) {
+		if (target instanceof EObject) {
+			if (path == null || ".".equals(path)) {
+				return target;
+			}
+			return EMFBinding.getEObject((EObject) target, path);
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IDataProvider#setData(java.lang.String,
+	 * java.lang.Object)
+	 */
+	public void setData(String path, Object value) {
+		setData(getTarget(), path, value);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IDataProvider#setData(java.lang.Object,
+	 * java.lang.String, java.lang.Object)
+	 */
+	public void setData(Object target, String path, Object value) {
+		if (target instanceof EObject) {
+			EObject eObj = (EObject) target;
+			String featureName = path;
+			int index = path.lastIndexOf(".");
+			if (index != -1) {
+				String parent = path.substring(0, index);
+				eObj = EMFBinding.getEObject(eObj, parent);
+				featureName = path.substring(index + 1);
+			}
+			EStructuralFeature feature = EMFHelper.findFeature(eObj.eClass(), featureName);
+			if (feature != null) {
+				eObj.eSet(feature, value);
+			}
+		}
+	}
+
+	protected DataModelService createDataModelService() {
+		return new EMFDataModelService();
+	}
+
+	public DataModelService getModelService() {
+		if (dataModelService == null) {
+			dataModelService = createDataModelService();
+		}
+		return dataModelService;
+	}
+
+	public IValueProperty createValueProperty(Object type, String fullPath) {
+		if (type == null || fullPath == null) {
+			return null;
+		}
+		EClass eClass = null;
+		if (type instanceof EReference) {
+			EReference ref = (EReference) type;
+			eClass = ref.getEReferenceType();
+		} else if (type instanceof EClass) {
+			eClass = (EClass) type;
+		} else if (type instanceof EObject) {
+			eClass = ((EObject) type).eClass();
+		}
+
+		if (eClass == null) {
+			return null;
+		}
+		EStructuralFeature feature = EMFHelper.findFeature(eClass, fullPath);
+		if (feature != null) {
+			return EMFProperties.value(feature);
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFDataProviderFactory.java b/plugins/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFDataProviderFactory.java
new file mode 100644
index 0000000..f851758
--- /dev/null
+++ b/plugins/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFDataProviderFactory.java
@@ -0,0 +1,79 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2013 Eclipse XWT Project.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *     Erdal Karaca - bugs fixes, enhancements
+ *******************************************************************************/
+package org.eclipse.xwt.emf;
+
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.databinding.EObjectObservableList;
+import org.eclipse.emf.databinding.EObjectObservableMap;
+import org.eclipse.emf.databinding.EObjectObservableValue;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.xwt.IDataProvider;
+import org.eclipse.xwt.IDataProviderFactory;
+
+/**
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class EMFDataProviderFactory implements IDataProviderFactory {
+	public static final String EMF_DATA_PROVIDER_FACTORY = "EMF.DataProvider.Factory";
+
+	public IDataProvider create(Object dataContext) {
+		if (dataContext instanceof EObject) {
+			EMFDataProvider dataProvider = createEMFDataProvider();
+			dataProvider.setObjectInstance(dataContext);
+			return dataProvider;
+		} else if (dataContext instanceof EClassifier) {
+			EClassifier classifier = (EClassifier) dataContext;
+			EMFDataProvider dataProvider = createEMFDataProvider();
+			dataProvider.setTypeURI(EcoreUtil.getURI(classifier));
+			return dataProvider;
+		} else if (dataContext instanceof EObjectObservableValue
+				|| dataContext instanceof EObjectObservableList
+				|| dataContext instanceof EObjectObservableMap) {
+			EMFDataProvider dataProvider = createEMFDataProvider();
+			dataProvider.setObjectInstance(dataContext);
+			return dataProvider;
+		} else if (dataContext instanceof Class<?>) {
+			Class<?> classType = (Class<?>) dataContext;
+			EClassifier classifier = (EClassifier) EMFDataModelService
+					.determineModelType(classType);
+			EMFDataProvider dataProvider = createEMFDataProvider();
+			dataProvider.setTypeURI(EcoreUtil.getURI(classifier));
+			return dataProvider;
+		} else if (dataContext instanceof IObservableValue) {
+			Object valueType = ((IObservableValue) dataContext).getValueType();
+			if (valueType instanceof EObject) {
+				EMFDataProvider dataProvider = createEMFDataProvider();
+				dataProvider.setObjectInstance(dataContext);
+				return dataProvider;
+			}
+		} else if (dataContext instanceof IObservableList) {
+			EMFDataProvider dataProvider = createEMFDataProvider();
+			dataProvider.setObjectInstance(dataContext);
+			return dataProvider;
+		}
+
+		return null;
+	}
+
+	protected EMFDataProvider createEMFDataProvider() {
+		return new EMFDataProvider();
+	}
+
+	public Class<?> getType() {
+		return EObject.class;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFHelper.java b/plugins/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFHelper.java
new file mode 100644
index 0000000..8f25d45
--- /dev/null
+++ b/plugins/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/EMFHelper.java
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class EMFHelper {
+
+	public static String getQualifiedName(ENamedElement namedElement) {
+		EObject object = namedElement.eContainer();
+		if (object instanceof ENamedElement) {
+			String parentQN = getQualifiedName((ENamedElement) namedElement
+					.eContainer());
+
+			if (parentQN != null && !parentQN.equals("")) {
+				return parentQN + "." + namedElement.getName();
+			}
+		}
+		return namedElement.getName();
+	}
+	
+	public static EStructuralFeature findFeature(EClass type, String propertyName) {
+		EStructuralFeature structuralFeature = type
+				.getEStructuralFeature(propertyName);
+		if (structuralFeature == null) {
+			// to workaround a problem of case sensitive of property name comes from XML
+			// To fix this problem, the parser of XML should be rewritten. It is a heavy task.  
+			for (EStructuralFeature item : type.getEAllStructuralFeatures()) {
+				if (propertyName.equalsIgnoreCase(item.getName())) {
+					structuralFeature = item;
+					break;
+				}
+			}
+		}
+		return structuralFeature;
+	}
+
+	public static Object toType(Object data) {
+		if (data instanceof EClassifier) {
+			return (EClassifier) data;
+		}
+		if (data instanceof IObservableValue) {
+			IObservableValue observableValue = (IObservableValue) data;
+			Object element = observableValue.getValueType();
+			if (element instanceof EStructuralFeature) {
+				// A bug of EMF databinding
+				return ((EStructuralFeature) element).getEType();
+			}
+			return element;
+		}
+		if (data instanceof EObject) {
+			EObject object = (EObject) data;
+			return object.eClass();
+		}
+		else if (data instanceof EMFDataProvider) {
+			EMFDataProvider dataProvider = (EMFDataProvider) data;
+			return dataProvider.getDataType(null);
+		}
+		return null;
+	}
+	
+	public static EReference findReference(EClass eClass, String name) {
+			for (EStructuralFeature feature : eClass.getEStructuralFeatures()) {
+				if (feature instanceof EReference && name.equals(feature.getName())) {
+					return (EReference)feature;
+				}
+			}
+		
+		for (EClass superType : eClass.getESuperTypes()) {
+			EReference reference = findReference(superType, name);
+			if (reference != null) {
+				return reference;
+			}			
+		}
+		return null;
+	}
+}
diff --git a/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/XWTEMFObservables.java b/plugins/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/XWTEMFObservables.java
similarity index 100%
rename from org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/XWTEMFObservables.java
rename to plugins/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/XWTEMFObservables.java
diff --git a/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/XWTEObjectObservableValue.java b/plugins/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/XWTEObjectObservableValue.java
similarity index 100%
rename from org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/XWTEObjectObservableValue.java
rename to plugins/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/XWTEObjectObservableValue.java
diff --git a/plugins/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/converters/StringToURI.java b/plugins/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/converters/StringToURI.java
new file mode 100644
index 0000000..31e3aea
--- /dev/null
+++ b/plugins/org.eclipse.xwt.emf/src/org/eclipse/xwt/emf/converters/StringToURI.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf.converters;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.emf.common.util.URI;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class StringToURI implements IConverter {
+	public static StringToURI instance = new StringToURI();
+
+	public Object convert(Object fromObject) {
+		return URI.createURI(fromObject.toString());
+	}
+
+	public Object getFromType() {
+		return String.class;
+	}
+
+	public Object getToType() {
+		return URI.class;
+	}
+}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/.classpath b/plugins/org.eclipse.xwt.forms/.classpath
old mode 100755
new mode 100644
similarity index 100%
copy from org.eclipse.xwt.tools.ui.designer.core/.classpath
copy to plugins/org.eclipse.xwt.forms/.classpath
diff --git a/org.eclipse.xwt.forms/.gitignore b/plugins/org.eclipse.xwt.forms/.gitignore
similarity index 100%
rename from org.eclipse.xwt.forms/.gitignore
rename to plugins/org.eclipse.xwt.forms/.gitignore
diff --git a/plugins/org.eclipse.xwt.forms/.project b/plugins/org.eclipse.xwt.forms/.project
new file mode 100644
index 0000000..b893c18
--- /dev/null
+++ b/plugins/org.eclipse.xwt.forms/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.xwt.forms</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.xwt.forms/META-INF/MANIFEST.MF b/plugins/org.eclipse.xwt.forms/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..681bdeb
--- /dev/null
+++ b/plugins/org.eclipse.xwt.forms/META-INF/MANIFEST.MF
@@ -0,0 +1,14 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name
+Bundle-SymbolicName: org.eclipse.xwt.forms
+Bundle-Version: 1.4.0.qualifier
+Bundle-Vendor: %Bundle-Vendor
+Require-Bundle: org.eclipse.swt;bundle-version="3.100.1",
+ org.eclipse.core.runtime;bundle-version="3.8.0",
+ org.eclipse.xwt;bundle-version="1.0.0",
+ org.eclipse.ui.forms,
+ org.eclipse.xwt.ui.workbench;bundle-version="1.0.0"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.xwt.forms
diff --git a/plugins/org.eclipse.xwt.forms/OSGI-INF/l10n/bundle.properties b/plugins/org.eclipse.xwt.forms/OSGI-INF/l10n/bundle.properties
new file mode 100644
index 0000000..4baba65
--- /dev/null
+++ b/plugins/org.eclipse.xwt.forms/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1,15 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+#Properties file for org.eclipse.xwt.forms
+Bundle-Vendor = Eclipse XWT
+Bundle-Name = XWT Forms
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.forms/about.html b/plugins/org.eclipse.xwt.forms/about.html
new file mode 100644
index 0000000..46a80b6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.forms/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 5, 2006</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.forms/build.properties b/plugins/org.eclipse.xwt.forms/build.properties
new file mode 100644
index 0000000..fad0887
--- /dev/null
+++ b/plugins/org.eclipse.xwt.forms/build.properties
@@ -0,0 +1,27 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               OSGI-INF/l10n/bundle.properties,\
+               about.html,\
+               notice.html
+src.includes = .classpath,\
+               .project,\
+               META-INF/,\
+               OSGI-INF/,\
+               about.html,\
+               build.properties,\
+               src/,\
+               notice.html
diff --git a/plugins/org.eclipse.xwt.forms/notice.html b/plugins/org.eclipse.xwt.forms/notice.html
new file mode 100644
index 0000000..2949b01
--- /dev/null
+++ b/plugins/org.eclipse.xwt.forms/notice.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 9, 2014</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 2.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/plugins/org.eclipse.xwt.forms/pom.xml b/plugins/org.eclipse.xwt.forms/pom.xml
new file mode 100755
index 0000000..a0709d7
--- /dev/null
+++ b/plugins/org.eclipse.xwt.forms/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-plugins</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt.forms</artifactId>
+	<version>1.4.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+</project>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/ToolKitUtil.java b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/ToolKitUtil.java
new file mode 100644
index 0000000..33875e9
--- /dev/null
+++ b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/ToolKitUtil.java
@@ -0,0 +1,99 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.forms;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.forms.widgets.ExpandableComposite;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.xwt.forms.metaclass.FormMetaclass;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyaetc.com)
+ */
+public class ToolKitUtil {
+	private static final String FORM_SIGNATURE_KEY = XWTForms.class.getName();
+
+	static public synchronized FormToolkit getToolkit(Control c) {
+		FormToolkit tk = findToolkit(c);
+		if (tk == null) {
+			tk = new FormToolkit(c.getDisplay());
+			c.getDisplay().setData(FormMetaclass.class.getName(), tk);
+		}
+		return tk;
+	}
+
+	static public synchronized FormToolkit findToolkit(Control c) {
+		return (FormToolkit) c.getDisplay().getData(
+				FormMetaclass.class.getName());
+	}
+
+	public static void tagForm(Control control) {
+		control.setData(FORM_SIGNATURE_KEY, Boolean.TRUE);
+	}
+
+	/**
+	 * Adapts the form toolkit colors to non-form controls
+	 * 
+	 * @param root
+	 *            widget hierarchy
+	 */
+	public static void adapt(Control element) {
+		FormToolkit tk = getToolkit(element);
+		if (tk != null && element.getData(FORM_SIGNATURE_KEY) != Boolean.TRUE) {
+			tk.adapt(element, true, true);
+		}
+	}
+
+	/**
+	 * depth-first adaptation of form toolkit colors
+	 */
+	private static void adaptRecursive(Control root, FormToolkit tk) {
+		if (root instanceof Composite) {
+			if (root.getData(FORM_SIGNATURE_KEY) == Boolean.TRUE) {
+				tk = getToolkit(root);
+			}
+			else if (tk != null) {
+				tk.adapt((Composite) root);
+			}
+			
+			Control[] children = ((Composite) root).getChildren();
+			if (root instanceof ExpandableComposite) {
+				boolean firstLabel = true;
+				for (int i = 0; i < children.length; i++) {
+					Control child = children[i];
+					// it seems a bug of Section, the background of the title
+					// becomes opaque, so we have to ignore to adapt it
+					if (firstLabel) {
+						if (child instanceof Label) {
+							firstLabel = false;
+						}
+						continue;
+					}
+					adaptRecursive(child, tk);
+				}				
+			}
+			else {
+				for (Control child : children) {
+					adaptRecursive(child, tk);
+				}
+			}
+		} else {
+			if (root.getData(FORM_SIGNATURE_KEY) != Boolean.TRUE) {
+				tk.adapt(root, true, true);
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/XWTForms.java b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/XWTForms.java
new file mode 100644
index 0000000..3fb079f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/XWTForms.java
@@ -0,0 +1,212 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.forms;
+
+import java.io.InputStream;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.IXWTLoader;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.callback.ICreatedCallback;
+import org.eclipse.xwt.callback.ILoadedCallback;
+import org.eclipse.xwt.forms.metaclass.ButtonMetaclass;
+import org.eclipse.xwt.forms.metaclass.CompositeMetaclass;
+import org.eclipse.xwt.forms.metaclass.ExpandableCompositeMetaclass;
+import org.eclipse.xwt.forms.metaclass.FormMetaclass;
+import org.eclipse.xwt.forms.metaclass.FormTextMetaclass;
+import org.eclipse.xwt.forms.metaclass.HyperlinkMetaclass;
+import org.eclipse.xwt.forms.metaclass.ImageHyperlinkMetaclass;
+import org.eclipse.xwt.forms.metaclass.LabelMetaclass;
+import org.eclipse.xwt.forms.metaclass.ScrolledFormMetaclass;
+import org.eclipse.xwt.forms.metaclass.ScrolledPageBookMetaclass;
+import org.eclipse.xwt.forms.metaclass.SectionMetaclass;
+import org.eclipse.xwt.forms.metaclass.TableMetaclass;
+import org.eclipse.xwt.forms.metaclass.TextMetaclass;
+import org.eclipse.xwt.internal.utils.UserData;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class XWTForms {
+	private static Object FormsProfile;
+	
+	private static ICreatedCallback CreatedAction = new ICreatedCallback() {
+		
+		public void onCreated(Object sender) {
+			Widget widget = UserData.getWidget(sender);
+			if (widget instanceof Control) {
+				ToolKitUtil.adapt((Control)widget);
+			}
+		}
+	};
+			
+	private static boolean applyFormsProfile () {
+		if (FormsProfile == null) {
+			FormsProfile = XWT.createUIProfile();
+			XWT.registerMetaclass(new FormMetaclass());
+			XWT.registerMetaclass(new ButtonMetaclass());
+			XWT.registerMetaclass(new LabelMetaclass());
+			XWT.registerMetaclass(new TextMetaclass());
+			XWT.registerMetaclass(new TableMetaclass());
+			XWT.registerMetaclass(new CompositeMetaclass());
+			XWT.registerMetaclass(new FormTextMetaclass());
+			XWT.registerMetaclass(new HyperlinkMetaclass());
+			XWT.registerMetaclass(new ImageHyperlinkMetaclass());
+			XWT.registerMetaclass(new ExpandableCompositeMetaclass());
+			XWT.registerMetaclass(new SectionMetaclass());
+			XWT.registerMetaclass(new ScrolledPageBookMetaclass());
+			XWT.registerMetaclass(new ScrolledFormMetaclass());
+		}
+		return XWT.applyProfile(FormsProfile);
+	}
+			
+	/**
+	 * Load the file content. All widget will be created but they are showed. This method return the root element.
+	 * 
+	 */
+	static public synchronized Object load(URL file) throws Exception {
+		HashMap<String, Object> options = new HashMap<String, Object>();
+		return loadWithOptions(file, options);
+	}
+
+	/**
+	 * Load the file content. All widget will be created but they are showed. This method return the root element.
+	 * 
+	 */
+	static public synchronized Object load(URL file, Object dataContext) throws Exception {
+		HashMap<String, Object> options = new HashMap<String, Object>();
+		options.put(IXWTLoader.DATACONTEXT_PROPERTY, dataContext);
+		return loadWithOptions(file, options);
+	}
+
+	/**
+	 * Load the file content under a Composite. All widget will be created. This method returns the root element. The DataContext will be associated to the root element.
+	 */
+	static public synchronized Object load(Composite parent, URL file) throws Exception {
+		HashMap<String, Object> options = new HashMap<String, Object>();
+		options.put(IXWTLoader.CONTAINER_PROPERTY, parent);
+		return loadWithOptions(file, options);
+	}
+
+	/**
+	 * Load the file content under a Composite with a DataContext. All widget will be created. This method returns the root element. The DataContext will be associated to the root element.
+	 */
+	static public synchronized Object load(Composite parent, URL file, Object dataContext) throws Exception {
+		HashMap<String, Object> options = new HashMap<String, Object>();
+		options.put(IXWTLoader.CONTAINER_PROPERTY, parent);
+		options.put(IXWTLoader.DATACONTEXT_PROPERTY, dataContext);
+		return loadWithOptions(file, options);
+	}
+
+	/**
+	 * Open and show the file content in a new Shell.
+	 */
+	static public synchronized void open(URL url) throws Exception {
+		open(url, new HashMap<String, Object>());
+	}
+
+	/**
+	 * load the content from a stream with a style, a DataContext and a ResourceDictionary. The root elements will be hold by Composite parent
+	 */
+	static public synchronized Object load(Composite parent, InputStream stream, URL file, Object dataContext) throws Exception {
+		HashMap<String, Object> options = new HashMap<String, Object>();
+		options.put(IXWTLoader.CONTAINER_PROPERTY, parent);
+		options.put(IXWTLoader.DATACONTEXT_PROPERTY, dataContext);
+		return loadWithOptions(stream, file, options);
+	}
+
+	/**
+	 * load the file content. The corresponding UI element is not yet created
+	 */
+	static public synchronized void open(URL url, Object dataContext) throws Exception {
+		HashMap<String, Object> options = new HashMap<String, Object>();
+		options.put(IXWTLoader.DATACONTEXT_PROPERTY, dataContext);
+		open(url, options);
+	}
+
+	/**
+	 * load the file content. The corresponding UI element is not yet created
+	 */
+	static public synchronized void open(Class<?> type, Object dataContext) throws Exception {
+		open(type.getResource(type.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX), dataContext);
+	}
+
+	/**
+	 * load the file content. The corresponding UI element is not yet created
+	 */
+	static public synchronized void open(URL url, Map<String, Object> options) throws Exception {
+		boolean applied = applyFormsProfile();
+		try {
+			options.put(IXWTLoader.CREATED_CALLBACK, CreatedAction);
+			XWT.open(url, options);
+		} 
+		finally {
+			if (applied) {
+				XWT.restoreProfile();
+			}
+		}
+	}
+
+	static public synchronized Object loadWithOptions(URL url, Map<String, Object> options) throws Exception {
+		boolean applied = applyFormsProfile();
+		try {
+			options.put(IXWTLoader.CREATED_CALLBACK, CreatedAction);
+			return XWT.loadWithOptions(url, options);
+		} 
+		finally {
+			if (applied) {
+				XWT.restoreProfile();
+			}
+		}
+	}
+
+	/**
+	 * 
+	 * @param stream
+	 * @param url
+	 * @param options
+	 * @return
+	 * @throws Exception
+	 */
+	static public synchronized Object load(InputStream stream, URL url) throws Exception {
+		return loadWithOptions(stream, url, new HashMap<String, Object>());
+	}
+
+	/**
+	 * 
+	 * @param stream
+	 * @param url
+	 * @param options
+	 * @return
+	 * @throws Exception
+	 */
+	static public synchronized Object loadWithOptions(InputStream stream, URL url, Map<String, Object> options) throws Exception {
+		boolean applied = applyFormsProfile();
+		try {
+			options.put(IXWTLoader.CREATED_CALLBACK, CreatedAction);
+			return XWT.loadWithOptions(stream, url, options);
+		} 
+		finally {
+			if (applied) {
+				XWT.restoreProfile();
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/AbstractFormMetaclass.java b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/AbstractFormMetaclass.java
new file mode 100644
index 0000000..5fb6880
--- /dev/null
+++ b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/AbstractFormMetaclass.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec and Erdal Karaca - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.forms.metaclass;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.xwt.IXWTLoader;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTLoaderManager;
+import org.eclipse.xwt.forms.ToolKitUtil;
+import org.eclipse.xwt.javabean.metadata.Metaclass;
+import org.eclipse.xwt.metadata.IMetaclass;
+
+/**
+ * 
+ * @author Erdal Karaca <erdal.karaca.de@googlemail.com>
+ * @author yves.yang (yves.yang@soyatec.com)
+ */
+public abstract class AbstractFormMetaclass extends Metaclass {
+
+	public AbstractFormMetaclass(Class<?> formFeatureClass) {
+		this(formFeatureClass, toSuperMetaclass(formFeatureClass),
+				XWTLoaderManager.getActive());
+	}
+
+	public AbstractFormMetaclass(Class<?> formFeatureClass,
+			IMetaclass parentMetaclass, IXWTLoader loader) {
+		super(formFeatureClass, parentMetaclass, loader);
+	}
+
+	static private IMetaclass toSuperMetaclass(Class<?> type) {
+		Class<?> superType = type.getSuperclass();
+		if (superType == null || superType == Object.class) {
+			return null;
+		}
+		return XWT.getMetaclass(superType);
+	}
+
+	@Override
+	public Object doNewInstance(Object[] parameters) {
+		if (parameters.length > 0 && parameters[0] instanceof Composite) {
+			Composite parent = (Composite) parameters[0];
+			FormToolkit tk = ToolKitUtil.getToolkit(parent);
+			int style = SWT.None;
+			if (parameters.length > 1 && parameters[1] instanceof Integer) {
+				style |= (Integer)parameters[1];
+			}
+			Control control = doCreateControl(tk, parent, style);
+			ToolKitUtil.tagForm(control);
+			return control;
+		}
+
+		return super.doNewInstance(parameters);
+	}
+
+	protected abstract Control doCreateControl(FormToolkit tk,
+			Composite parent, int style);
+}
diff --git a/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ButtonMetaclass.java b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ButtonMetaclass.java
new file mode 100644
index 0000000..2444a7e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ButtonMetaclass.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec and Erdal Karaca - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.forms.metaclass;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+
+/**
+ * 
+ * @author Erdal Karaca <erdal.karaca.de@googlemail.com>
+ * @author yves.yang (yves.yang@soyatec.com)
+ */
+public class ButtonMetaclass extends AbstractFormMetaclass {
+	public ButtonMetaclass() {
+		super(Button.class);
+	}
+
+	@Override
+	protected Control doCreateControl(FormToolkit tk, Composite parent,
+			int style) {
+		return tk.createButton(parent, "", style);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/CompositeMetaclass.java b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/CompositeMetaclass.java
new file mode 100644
index 0000000..6e046c3
--- /dev/null
+++ b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/CompositeMetaclass.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec and Erdal Karaca - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.forms.metaclass;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+
+/**
+ * 
+ * @author Erdal Karaca <erdal.karaca.de@googlemail.com>
+ * @author yves.yang (yves.yang@soyatec.com)
+ */
+public class CompositeMetaclass extends AbstractFormMetaclass {
+	public CompositeMetaclass() {
+		super(Composite.class);
+	}
+
+	@Override
+	protected Control doCreateControl(FormToolkit tk, Composite parent,
+			int style) {
+		boolean separator = (style & SWT.SEPARATOR) != 0;
+		return separator ? tk.createCompositeSeparator(parent) : tk
+				.createComposite(parent, style);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ExpandableCompositeMetaclass.java b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ExpandableCompositeMetaclass.java
new file mode 100644
index 0000000..f7622e2
--- /dev/null
+++ b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ExpandableCompositeMetaclass.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec and Erdal Karaca - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.forms.metaclass;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.forms.widgets.ExpandableComposite;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+
+/**
+ * 
+ * @author Erdal Karaca <erdal.karaca.de@googlemail.com>
+ * @author yves.yang (yves.yang@soyatec.com)
+ */
+public class ExpandableCompositeMetaclass extends AbstractFormMetaclass {
+	public ExpandableCompositeMetaclass() {
+		super(ExpandableComposite.class);
+	}
+
+	@Override
+	protected Control doCreateControl(FormToolkit tk, Composite parent,
+			int style) {
+		return tk.createExpandableComposite(parent, style);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/FormMetaclass.java b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/FormMetaclass.java
new file mode 100644
index 0000000..b8a66f4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/FormMetaclass.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec and Erdal Karaca - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.forms.metaclass;
+
+import java.beans.BeanInfo;
+import java.beans.IntrospectionException;
+import java.beans.PropertyDescriptor;
+import java.nio.channels.IllegalSelectorException;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.forms.widgets.Form;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.xwt.forms.metaclass.properties.DecoratingHeading;
+import org.eclipse.xwt.forms.metaclass.properties.HeadClientBeanProperty;
+
+/**
+ * 
+ * @author Erdal Karaca <erdal.karaca.de@googlemail.com>
+ * @author yves.yang (yves.yang@soyatec.com)
+ */
+public class FormMetaclass extends AbstractFormMetaclass {
+	public FormMetaclass() {
+		super(Form.class);
+		addProperty(new DecoratingHeading());
+		addProperty(new HeadClientBeanProperty(getHeadClient()));
+	}
+	
+	static PropertyDescriptor getHeadClient() {
+		try {
+			BeanInfo beanInfo = java.beans.Introspector.getBeanInfo(Form.class);
+			PropertyDescriptor[] propertyDescriptors = beanInfo
+					.getPropertyDescriptors();
+			for (PropertyDescriptor p : propertyDescriptors) {
+				String propertyName = p.getName();
+				if (propertyName.equalsIgnoreCase("headClient")) {
+					return p;
+				}
+			}
+		} catch (IntrospectionException e) {
+		}
+		throw new IllegalSelectorException();
+	}
+
+	@Override
+	protected Control doCreateControl(FormToolkit tk, Composite parent,
+			int style) {
+		return tk.createForm(parent);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/FormTextMetaclass.java b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/FormTextMetaclass.java
new file mode 100644
index 0000000..579ddf5
--- /dev/null
+++ b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/FormTextMetaclass.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec and Erdal Karaca - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.forms.metaclass;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.forms.widgets.FormText;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+
+/**
+ * 
+ * @author Erdal Karaca <erdal.karaca.de@googlemail.com>
+ * @author yves.yang (yves.yang@soyatec.com)
+ */
+public class FormTextMetaclass extends AbstractFormMetaclass {
+	public FormTextMetaclass() {
+		super(FormText.class);
+	}
+
+	@Override
+	protected Control doCreateControl(FormToolkit tk, Composite parent,
+			int style) {
+		boolean trackFocus = (style & SWT.FOCUSED) != 0;
+		return tk.createFormText(parent, trackFocus);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/HyperlinkMetaclass.java b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/HyperlinkMetaclass.java
new file mode 100644
index 0000000..7ce3a84
--- /dev/null
+++ b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/HyperlinkMetaclass.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec and Erdal Karaca - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.forms.metaclass;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.Hyperlink;
+
+/**
+ * 
+ * @author Erdal Karaca <erdal.karaca.de@googlemail.com>
+ * @author yves.yang (yves.yang@soyatec.com)
+ */
+public class HyperlinkMetaclass extends AbstractFormMetaclass {
+	public HyperlinkMetaclass() {
+		super(Hyperlink.class);
+	}
+
+	@Override
+	protected Control doCreateControl(FormToolkit tk, Composite parent,
+			int style) {
+		return tk.createHyperlink(parent, "", style);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ImageHyperlinkMetaclass.java b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ImageHyperlinkMetaclass.java
new file mode 100644
index 0000000..253c9cd
--- /dev/null
+++ b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ImageHyperlinkMetaclass.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec and Erdal Karaca - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.forms.metaclass;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ImageHyperlink;
+
+/**
+ * 
+ * @author Erdal Karaca <erdal.karaca.de@googlemail.com>
+ * @author yves.yang (yves.yang@soyatec.com)
+ */
+public class ImageHyperlinkMetaclass extends AbstractFormMetaclass {
+	public ImageHyperlinkMetaclass() {
+		super(ImageHyperlink.class);
+	}
+
+	@Override
+	protected Control doCreateControl(FormToolkit tk, Composite parent,
+			int style) {
+		return tk.createImageHyperlink(parent, style);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/LabelMetaclass.java b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/LabelMetaclass.java
new file mode 100644
index 0000000..4f6d6bf
--- /dev/null
+++ b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/LabelMetaclass.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec and Erdal Karaca - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.forms.metaclass;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+
+/**
+ * 
+ * @author Erdal Karaca <erdal.karaca.de@googlemail.com>
+ * @author yves.yang (yves.yang@soyatec.com)
+ */
+public class LabelMetaclass extends AbstractFormMetaclass {
+	public LabelMetaclass() {
+		super(Label.class);
+	}
+
+	@Override
+	protected Control doCreateControl(FormToolkit tk, Composite parent,
+			int style) {
+		if ( (style & SWT.SEPARATOR) != 0 ) {
+			return tk.createSeparator( parent, style );
+		} else {
+			return tk.createLabel( parent, "", style );
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ScrolledFormMetaclass.java b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ScrolledFormMetaclass.java
new file mode 100644
index 0000000..0e2f02b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ScrolledFormMetaclass.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec and Erdal Karaca - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.forms.metaclass;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.xwt.forms.metaclass.properties.DecoratingHeading;
+
+/**
+ * 
+ * @author Erdal Karaca <erdal.karaca.de@googlemail.com>
+ * @author yves.yang (yves.yang@soyatec.com)
+ */
+public class ScrolledFormMetaclass extends AbstractFormMetaclass {
+	public ScrolledFormMetaclass() {
+		super(ScrolledForm.class);
+		addProperty(new DecoratingHeading());
+	}
+
+	@Override
+	protected Control doCreateControl(FormToolkit tk, Composite parent,
+			int style) {
+		return tk.createScrolledForm(parent);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ScrolledPageBookMetaclass.java b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ScrolledPageBookMetaclass.java
new file mode 100644
index 0000000..b4a340b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/ScrolledPageBookMetaclass.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec and Erdal Karaca - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.forms.metaclass;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledPageBook;
+
+/**
+ * 
+ * @author Erdal Karaca <erdal.karaca.de@googlemail.com>
+ * @author yves.yang (yves.yang@soyatec.com)
+ */
+public class ScrolledPageBookMetaclass extends AbstractFormMetaclass {
+	public ScrolledPageBookMetaclass() {
+		super(ScrolledPageBook.class);
+	}
+
+	@Override
+	protected Control doCreateControl(FormToolkit tk, Composite parent,
+			int style) {
+		return tk.createPageBook(parent, style);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/SectionMetaclass.java b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/SectionMetaclass.java
new file mode 100644
index 0000000..6ee1fba
--- /dev/null
+++ b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/SectionMetaclass.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec and Erdal Karaca - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.forms.metaclass;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.Section;
+
+/**
+ * 
+ * @author Erdal Karaca <erdal.karaca.de@googlemail.com>
+ * @author yves.yang (yves.yang@soyatec.com)
+ */
+public class SectionMetaclass extends AbstractFormMetaclass {
+	public SectionMetaclass() {
+		super(Section.class);
+	}
+
+	@Override
+	protected Control doCreateControl(FormToolkit tk, Composite parent,
+			int style) {
+		return tk.createSection(parent, style | Section.TITLE_BAR);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/TableMetaclass.java b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/TableMetaclass.java
new file mode 100644
index 0000000..d9a3087
--- /dev/null
+++ b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/TableMetaclass.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec and Erdal Karaca - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.forms.metaclass;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+
+/**
+ * 
+ * @author Erdal Karaca <erdal.karaca.de@googlemail.com>
+ * @author yves.yang (yves.yang@soyatec.com)
+ */
+public class TableMetaclass extends AbstractFormMetaclass {
+	public TableMetaclass() {
+		super(Table.class);
+	}
+
+	@Override
+	protected Control doCreateControl(FormToolkit tk, Composite parent,
+			int style) {
+		return tk.createTable(parent, style);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/TextMetaclass.java b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/TextMetaclass.java
new file mode 100644
index 0000000..70edd89
--- /dev/null
+++ b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/TextMetaclass.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec and Erdal Karaca - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.forms.metaclass;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+
+/**
+ * 
+ * @author Erdal Karaca <erdal.karaca.de@googlemail.com>
+ * @author yves.yang (yves.yang@soyatec.com)
+ */
+public class TextMetaclass extends AbstractFormMetaclass {
+	public TextMetaclass() {
+		super(Text.class);
+	}
+
+	@Override
+	protected Control doCreateControl(FormToolkit tk, Composite parent,
+			int style) {
+		return tk.createText(parent, "", style);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/TreeMetaclass.java b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/TreeMetaclass.java
new file mode 100644
index 0000000..bdf606d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/TreeMetaclass.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec and Erdal Karaca - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.forms.metaclass;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+
+/**
+ * 
+ * @author Erdal Karaca <erdal.karaca.de@googlemail.com>
+ * @author yves.yang (yves.yang@soyatec.com)
+ */
+public class TreeMetaclass extends AbstractFormMetaclass {
+	public TreeMetaclass() {
+		super(Tree.class);
+	}
+
+	@Override
+	protected Control doCreateControl(FormToolkit tk, Composite parent,
+			int style) {
+		return tk.createTree(parent, style);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/properties/DecoratingHeading.java b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/properties/DecoratingHeading.java
new file mode 100644
index 0000000..15d7272
--- /dev/null
+++ b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/properties/DecoratingHeading.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec and Erdal Karaca - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.forms.metaclass.properties;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.ui.forms.widgets.Form;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.xwt.forms.ToolKitUtil;
+import org.eclipse.xwt.javabean.metadata.properties.AbstractProperty;
+
+/**
+ * A property to handle the decoration of heading
+ * 
+ * @author yyang 
+ */
+public class DecoratingHeading extends AbstractProperty {
+
+	public DecoratingHeading() {
+		super("DecorateHeading", Boolean.class);
+	}
+
+	public Object getValue(Object target) throws IllegalArgumentException,
+			IllegalAccessException, InvocationTargetException,
+			SecurityException, NoSuchFieldException {
+		return null;
+	}
+
+	public void setValue(Object target, Object value)
+			throws IllegalArgumentException, IllegalAccessException,
+			InvocationTargetException, SecurityException, NoSuchFieldException {
+		Form form = null;
+		if (target instanceof ScrolledForm) {
+			ScrolledForm scrolledForm = (ScrolledForm) target;
+			form = scrolledForm.getForm();
+		}
+		else if (target instanceof Form) {
+			form = (Form) target;
+		}
+		Boolean booleanValue = (Boolean) value;
+		if (value == null) {
+			return;
+		}
+		if (booleanValue) {
+			FormToolkit toolkit = ToolKitUtil.findToolkit(form);
+			toolkit.decorateFormHeading(form);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/properties/HeadClientBeanProperty.java b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/properties/HeadClientBeanProperty.java
new file mode 100644
index 0000000..c863460
--- /dev/null
+++ b/plugins/org.eclipse.xwt.forms/src/org/eclipse/xwt/forms/metaclass/properties/HeadClientBeanProperty.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.forms.metaclass.properties;
+
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.ui.forms.widgets.Form;
+import org.eclipse.xwt.javabean.metadata.properties.BeanProperty;
+
+public class HeadClientBeanProperty extends BeanProperty {
+
+	public HeadClientBeanProperty(PropertyDescriptor descriptor) {
+		super(descriptor);
+		setValueAsParent(true);
+	}
+		
+	@Override
+	public Object getValue(Object target) throws IllegalArgumentException,
+			IllegalAccessException, InvocationTargetException,
+			SecurityException, NoSuchFieldException {
+		Object value = super.getValue(target);
+		if (value == null) {
+			Form form = (Form) target;
+			return form.getHead();
+		}
+		return value;
+	}
+}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/.classpath b/plugins/org.eclipse.xwt.pde/.classpath
old mode 100755
new mode 100644
similarity index 100%
copy from org.eclipse.xwt.tools.ui.designer.core/.classpath
copy to plugins/org.eclipse.xwt.pde/.classpath
diff --git a/org.eclipse.xwt.pde/.gitignore b/plugins/org.eclipse.xwt.pde/.gitignore
similarity index 100%
rename from org.eclipse.xwt.pde/.gitignore
rename to plugins/org.eclipse.xwt.pde/.gitignore
diff --git a/plugins/org.eclipse.xwt.pde/.project b/plugins/org.eclipse.xwt.pde/.project
new file mode 100644
index 0000000..85298b9
--- /dev/null
+++ b/plugins/org.eclipse.xwt.pde/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.xwt.pde</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.xwt.pde/META-INF/MANIFEST.MF b/plugins/org.eclipse.xwt.pde/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..5aef6ae
--- /dev/null
+++ b/plugins/org.eclipse.xwt.pde/META-INF/MANIFEST.MF
@@ -0,0 +1,19 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name.0
+Bundle-SymbolicName: org.eclipse.xwt.pde;singleton:=true
+Bundle-Version: 1.4.0.qualifier
+Bundle-Activator: org.eclipse.xwt.pde.PDEPlugin
+Require-Bundle: org.eclipse.ui;bundle-version="3.0.0",
+ org.eclipse.core.runtime;bundle-version="3.8.0",
+ org.eclipse.xwt;bundle-version="0.9.0",
+ org.eclipse.core.databinding;bundle-version="1.1.0",
+ org.eclipse.jface.databinding;bundle-version="1.4.0"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.xwt.pde,
+ org.eclipse.xwt.pde.ui,
+ org.eclipse.xwt.pde.ui.views
+Bundle-Vendor: %Bundle-Vendor.0
+Bundle-Localization: plugin
+
diff --git a/plugins/org.eclipse.xwt.pde/about.html b/plugins/org.eclipse.xwt.pde/about.html
new file mode 100644
index 0000000..46a80b6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.pde/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 5, 2006</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.pde/build.properties b/plugins/org.eclipse.xwt.pde/build.properties
new file mode 100644
index 0000000..20906d6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.pde/build.properties
@@ -0,0 +1,31 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml,\
+               plugin.properties,\
+               about.html,\
+               schema/,\
+               notice.html
+src.includes = schema/,\
+               .classpath,\
+               .project,\
+               META-INF/,\
+               about.html,\
+               build.properties,\
+               plugin.xml,\
+               plugin.properties,\
+               src/,\
+               notice.html
diff --git a/plugins/org.eclipse.xwt.pde/notice.html b/plugins/org.eclipse.xwt.pde/notice.html
new file mode 100644
index 0000000..2949b01
--- /dev/null
+++ b/plugins/org.eclipse.xwt.pde/notice.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 9, 2014</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 2.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/plugins/org.eclipse.xwt.pde/plugin.properties b/plugins/org.eclipse.xwt.pde/plugin.properties
new file mode 100644
index 0000000..0e97cfe
--- /dev/null
+++ b/plugins/org.eclipse.xwt.pde/plugin.properties
@@ -0,0 +1,32 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+"******************************************************************************
+# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+# 
+# Contributors:
+#     Soyatec - initial API and implementation
+#******************************************************************************/
+
+extension-point.name.0 = XWT metaclasses
+extension-point.name.1 = XWT converters
+extension-point.name.2 = Metaclass Factory
+extension-point.name.3 = Logger
+extension-point.name.4 = Styles
+Bundle-Name.0 = XWT PDE Plug-in
+Bundle-Vendor.0 = Eclipse XWT
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.pde/plugin.xml b/plugins/org.eclipse.xwt.pde/plugin.xml
new file mode 100644
index 0000000..eb81f1e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.pde/plugin.xml
Binary files differ
diff --git a/plugins/org.eclipse.xwt.pde/pom.xml b/plugins/org.eclipse.xwt.pde/pom.xml
new file mode 100755
index 0000000..11fb356
--- /dev/null
+++ b/plugins/org.eclipse.xwt.pde/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-plugins</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt.pde</artifactId>
+	<version>1.4.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+</project>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.pde/schema/commands.exsd b/plugins/org.eclipse.xwt.pde/schema/commands.exsd
new file mode 100644
index 0000000..5a3e7cf
--- /dev/null
+++ b/plugins/org.eclipse.xwt.pde/schema/commands.exsd
@@ -0,0 +1,122 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.xwt.pde" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appinfo>
+         <meta.schema plugin="org.eclipse.xwt.pde" id="commands" name="commands"/>
+      </appinfo>
+      <documentation>
+         This extension point is used to register a command with a name
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <annotation>
+         <appinfo>
+            <meta.element />
+         </appinfo>
+      </annotation>
+      <complexType>
+         <choice>
+            <element ref="command" minOccurs="0" maxOccurs="unbounded"/>
+         </choice>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute translatable="true"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="command">
+      <annotation>
+         <documentation>
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="name" type="string" use="required">
+            <annotation>
+               <documentation>
+                  the name
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The class of command must implement the interface org.eclipse.xwt.ICommand
+               </documentation>
+               <appinfo>
+                  <meta.attribute kind="java" basedOn=":org.eclipse.xwt.ICommand"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="since"/>
+      </appinfo>
+      <documentation>
+         [Enter the first release in which this extension point appears.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="examples"/>
+      </appinfo>
+      <documentation>
+         Here is an example to define a commands: 
+&lt;pre&gt;
+   &lt;extension
+         point=&quot;org.eclipse.xwt.pde.commands&quot;&gt;
+      &lt;command
+            class=&quot;org.eclipse.xwt.demo.MessageCommand&quot;
+            name=&quot;Message&quot;&gt;
+      &lt;/command&gt;
+   &lt;/extension&gt;
+&lt;/pre&gt;
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="apiinfo"/>
+      </appinfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="implementation"/>
+      </appinfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+
+</schema>
diff --git a/plugins/org.eclipse.xwt.pde/schema/converters.exsd b/plugins/org.eclipse.xwt.pde/schema/converters.exsd
new file mode 100644
index 0000000..aa0a389
--- /dev/null
+++ b/plugins/org.eclipse.xwt.pde/schema/converters.exsd
@@ -0,0 +1,152 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.xwt.pde" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appinfo>
+         <meta.schema plugin="org.eclipse.xwt.pde" id="converters" name="converters"/>
+      </appinfo>
+      <documentation>
+         This extension point is used to declare a new data converter
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <annotation>
+         <appinfo>
+            <meta.element />
+         </appinfo>
+      </annotation>
+      <complexType>
+         <choice>
+            <element ref="converter" minOccurs="0" maxOccurs="unbounded"/>
+         </choice>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute translatable="true"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="converter">
+      <annotation>
+         <documentation>
+            Data converter element
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="name" type="string" use="required">
+            <annotation>
+               <documentation>
+                  the name
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The class of converter must implement the interface  org.eclipse.core.databinding.conversion.IConverter
+               </documentation>
+               <appinfo>
+                  <meta.attribute kind="java" basedOn=":org.eclipse.core.databinding.conversion.IConverter"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="since"/>
+      </appinfo>
+      <documentation>
+         [Enter the first release in which this extension point appears.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="examples"/>
+      </appinfo>
+      <documentation>
+         Here is an example to define the converter from String to URL: 
+&lt;pre&gt;
+   &lt;extension
+         point=&quot;org.eclipse.xwt.pde.converters&quot;&gt;
+      &lt;converter
+            class=&quot;org.eclipse.xwt.demo.URLConverter&quot;
+            name=&quot;URLConverter&quot;&gt;
+      &lt;/converter&gt;
+   &lt;/extension&gt;
+&lt;/pre&gt;
+
+&lt;p&gt;The class implementation should be: &lt;/p&gt;
+&lt;pre&gt;
+package org.eclipse.xwt.demo;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+
+public class URLConverter implements IConverter {
+  public Object convert(Object fromObject) {
+    try {
+      return new URL((String) fromObject);
+    } catch (MalformedURLException e) {
+      throw new RuntimeException(e);
+    }
+  }
+
+  public Object getFromType() {
+    return String.class;
+  }
+
+  public Object getToType() {
+    return URL.class;
+  }
+}
+&lt;/pre&gt;
+
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="apiinfo"/>
+      </appinfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="implementation"/>
+      </appinfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+
+</schema>
diff --git a/plugins/org.eclipse.xwt.pde/schema/logger.exsd b/plugins/org.eclipse.xwt.pde/schema/logger.exsd
new file mode 100644
index 0000000..cb879ab
--- /dev/null
+++ b/plugins/org.eclipse.xwt.pde/schema/logger.exsd
@@ -0,0 +1,115 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.xwt.pde" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appinfo>
+         <meta.schema plugin="org.eclipse.xwt.pde" id="logger" name="logger"/>
+      </appinfo>
+      <documentation>
+         The logger class will be used by XWT framework. 
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <annotation>
+         <appinfo>
+            <meta.element />
+         </appinfo>
+      </annotation>
+      <complexType>
+         <sequence>
+            <element ref="logger"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute translatable="true"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="logger">
+      <annotation>
+         <documentation>
+            Tracker logger will be set in XWT class and will be used by XWT Framework
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The logger class must implements the interface org.eclipse.xwt.ILogger
+               </documentation>
+               <appinfo>
+                  <meta.attribute kind="java" basedOn=":org.eclipse.xwt.ILogger"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="since"/>
+      </appinfo>
+      <documentation>
+         [Enter the first release in which this extension point appears.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="examples"/>
+      </appinfo>
+      <documentation>
+         Here is an example to declare the logger: 
+&lt;pre&gt;
+   &lt;extension
+         point=&quot;org.eclipse.xwt.pde.logger&quot;&gt;
+      &lt;logger
+            class=&quot;org.eclipse.xwt.demo.Logger&quot;&gt;
+      &lt;/logger&gt;
+   &lt;/extension&gt;
+&lt;/pre&gt;
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="apiinfo"/>
+      </appinfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="implementation"/>
+      </appinfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+
+</schema>
diff --git a/plugins/org.eclipse.xwt.pde/schema/metaclassFactories.exsd b/plugins/org.eclipse.xwt.pde/schema/metaclassFactories.exsd
new file mode 100644
index 0000000..45d6dd1
--- /dev/null
+++ b/plugins/org.eclipse.xwt.pde/schema/metaclassFactories.exsd
@@ -0,0 +1,123 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.xwt.pde" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appinfo>
+         <meta.schema plugin="org.eclipse.xwt.pde" id="metaclassFactories" name="Metaclass Factory"/>
+      </appinfo>
+      <documentation>
+         This extension point is used to register a MetaclassFactory
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <annotation>
+         <appinfo>
+            <meta.element />
+         </appinfo>
+      </annotation>
+      <complexType>
+         <choice>
+            <element ref="metaclassFactory" minOccurs="0" maxOccurs="unbounded"/>
+         </choice>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute translatable="true"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="metaclassFactory">
+      <annotation>
+         <documentation>
+            Metaclass definition
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="name" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="metaclass" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The factopry class
+               </documentation>
+               <appinfo>
+                  <meta.attribute kind="java" basedOn=":org.eclipse.xwt.IMetaclassFactory"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="since"/>
+      </appinfo>
+      <documentation>
+         [Enter the first release in which this extension point appears.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="examples"/>
+      </appinfo>
+      <documentation>
+         Here is an example to declare the Metaclassfactory class to create the specific metaclasses for JFreeChart library: 
+&lt;pre&gt;
+   &lt;extension
+         point=&quot;org.eclipse.xwt.pde.metaclassFactories&quot;&gt;
+      &lt;metaclassFactory
+            metaclass=&quot;org.eclipse.xwt.demo.JFreeChartFactory&quot;
+            name=&quot;JFreeChart&quot;&gt;
+      &lt;/metaclassFactory&gt;
+   &lt;/extension&gt;
+&lt;/pre&gt;
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="apiinfo"/>
+      </appinfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="implementation"/>
+      </appinfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+
+</schema>
diff --git a/plugins/org.eclipse.xwt.pde/schema/metaclasses.exsd b/plugins/org.eclipse.xwt.pde/schema/metaclasses.exsd
new file mode 100644
index 0000000..40cfa1d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.pde/schema/metaclasses.exsd
@@ -0,0 +1,213 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.xwt.pde" xmlns="http://www.w3.org/2001/XMLSchema">
+	<annotation>
+		<appinfo>
+         <meta.schema plugin="org.eclipse.xwt.pde" id="metaclasses"
+			name="metaclasses" />
+      </appinfo>
+		<documentation>
+         This extension point is used to register a metaclass in XWT Framework
+      </documentation>
+	</annotation>
+	<element name="extension">
+		<annotation>
+			<appinfo>
+            <meta.element />
+         </appinfo>
+		</annotation>
+		<complexType>
+			<sequence>
+				<element ref="metaclass" minOccurs="0" maxOccurs="unbounded" />
+			</sequence>
+			<attribute name="point" type="string" use="required">
+				<annotation>
+					<documentation>
+                  
+               </documentation>
+				</annotation>
+			</attribute>
+			<attribute name="id" type="string">
+				<annotation>
+					<documentation>
+                  
+               </documentation>
+				</annotation>
+			</attribute>
+			<attribute name="name" type="string">
+				<annotation>
+					<documentation>
+                  
+               </documentation>
+					<appinfo>
+                  <meta.attribute translatable="true" />
+               </appinfo>
+				</annotation>
+			</attribute>
+		</complexType>
+	</element>
+	<element name="metaclass">
+		<annotation>
+			<documentation>
+            A metaclass
+         </documentation>
+		</annotation>
+		<complexType>
+			<choice minOccurs="0" maxOccurs="unbounded">
+				<element ref="property" minOccurs="0" maxOccurs="unbounded" />
+			</choice>
+			<attribute name="type" type="string" use="required">
+				<annotation>
+					<documentation>
+                  The Java type
+               </documentation>
+					<appinfo>
+                  <meta.attribute kind="java" />
+               </appinfo>
+				</annotation>
+			</attribute>
+		</complexType>
+	</element>
+	<element name="property">
+		<annotation>
+			<documentation>
+            property in UI element
+         </documentation>
+		</annotation>
+		<complexType>
+			<choice minOccurs="0" maxOccurs="unbounded">
+				<element ref="SetPostAction" minOccurs="0" maxOccurs="unbounded" />
+			</choice>
+			<attribute name="name" type="string" use="required">
+				<annotation>
+					<documentation>
+                  
+               </documentation>
+				</annotation>
+			</attribute>
+			<attribute name="class" type="string">
+				<annotation>
+					<documentation>
+                  
+               </documentation>
+					<appinfo>
+                  <meta.attribute kind="java"
+						basedOn=":org.eclipse.xwt.metadata.IProperty" />
+               </appinfo>
+				</annotation>
+			</attribute>
+			<attribute name="type" type="string">
+				<annotation>
+					<documentation>
+                  
+               </documentation>
+					<appinfo>
+                  <meta.attribute kind="java" />
+               </appinfo>
+				</annotation>
+			</attribute>
+			<attribute name="amount" use="default" value="single">
+				<annotation>
+					<documentation>
+                  If you want to register an array property, select the &quot;array&quot;, otherwise use the &quot;single&quot;.
+               </documentation>
+            </annotation>
+            <simpleType>
+               <restriction base="string">
+                  <enumeration value="single">
+                  </enumeration>
+                  <enumeration value="array">
+                  </enumeration>
+               </restriction>
+            </simpleType>
+         </attribute>
+         <attribute name="overwrite" type="boolean" use="default" value="false">
+            <annotation>
+               <documentation>
+                  If you want to overwrite the property, set true
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="event">
+      <annotation>
+         <documentation>
+            Event in UI element
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="name" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="java" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute kind="java" basedOn=":org.eclipse.xwt.metadata.IEvent"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="SetPostAction">
+      <complexType>
+         <attribute name="SetPostActionName" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute kind="java"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="since"/>
+      </appinfo>
+      <documentation>
+         [Enter the first release in which this extension point appears.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="examples"/>
+      </appinfo>
+      <documentation>
+         [Enter extension point usage example here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="apiinfo"/>
+      </appinfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="implementation"/>
+      </appinfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+
+</schema>
diff --git a/plugins/org.eclipse.xwt.pde/schema/styles.exsd b/plugins/org.eclipse.xwt.pde/schema/styles.exsd
new file mode 100644
index 0000000..d2abe9a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.pde/schema/styles.exsd
@@ -0,0 +1,102 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.xwt.pde" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appinfo>
+         <meta.schema plugin="org.eclipse.xwt.pde" id="style" name="styles"/>
+      </appinfo>
+      <documentation>
+         This extension point is used to define a new Default Styles
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <annotation>
+         <appinfo>
+            <meta.element />
+         </appinfo>
+      </annotation>
+      <complexType>
+         <sequence minOccurs="1" maxOccurs="unbounded">
+            <element ref="style"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute translatable="true"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="style">
+      <complexType>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute kind="java"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="since"/>
+      </appinfo>
+      <documentation>
+         [Enter the first release in which this extension point appears.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="examples"/>
+      </appinfo>
+      <documentation>
+         [Enter extension point usage example here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="apiinfo"/>
+      </appinfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="implementation"/>
+      </appinfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+
+</schema>
diff --git a/plugins/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ExtensionService.java b/plugins/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ExtensionService.java
new file mode 100644
index 0000000..677832e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ExtensionService.java
@@ -0,0 +1,282 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.pde;
+
+import java.lang.reflect.Array;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.xwt.ILogger;
+import org.eclipse.xwt.IMetaclassFactory;
+import org.eclipse.xwt.IStyle;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.input.ICommand;
+import org.eclipse.xwt.javabean.metadata.properties.DynamicProperty;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.xwt.metadata.ISetPostAction;
+
+public class ExtensionService {
+	public static final String METACLASS_REGISTER_ID = PDEPlugin.PLUGIN_ID
+			+ "." + "metaclasses";
+	public static final String CONVERTER_REGISTER_ID = PDEPlugin.PLUGIN_ID
+			+ "." + "converters";
+	public static final String LOGGER_REGISTER_ID = PDEPlugin.PLUGIN_ID + "."
+			+ "logger";
+	public static final String COMMANDS_REGISTER_ID = PDEPlugin.PLUGIN_ID + "."
+			+ "commands";
+	public static final String METACLASS_FACTORY_ID = PDEPlugin.PLUGIN_ID + "."
+			+ "metaclassFactories";
+	public static final String STYLES_REGISTER_ID = PDEPlugin.PLUGIN_ID + "."
+			+ "styles";
+
+	static final String METACLASS = "metaclass";
+	static final String TYPE = "type";
+	static final String CLASS = "class";
+	static final String PROPERTY = "property";
+	static final String EVENT = "event";
+	static final String NAME = "name";
+	static final String AMOUNT = "amount";
+	static final String SINGLE = "single";
+	static final String ARRAY = "array";
+	static final String SETPOSTACTION = "SetPostAction";
+	static final String OVERWRITE = "overwrite";
+	static final String COMMAND = "command";
+	static final String STYLE = "style";
+	static final String TRUE = "true";
+
+	static final String CONVERTERS = "converters";
+	static final String CONVERTER = "converter";
+
+	static final String METACLASSFACTORY = "metaclassFactory";
+
+	static final String DYNAMIC_PROPERTY = "DynamicProperty";
+	static final String TABLEITEM_PROPERTY = "TableItemProperty";
+	static final String DATACONTEXT_PROPERTY = "DataContextProperty";
+	static final String EXISTING_PROPERTY = "ExistingProperty";
+
+	static final String TableItem = "org.eclipse.swt.widgets.TableItem";
+	static final String Cells = "Cells";
+
+	public static void initialize() {
+		IConfigurationElement[] converterConfigurationElements = Platform
+				.getExtensionRegistry().getConfigurationElementsFor(
+						CONVERTER_REGISTER_ID);
+		for (IConfigurationElement converterConfigurationElement : converterConfigurationElements) {
+			if (CONVERTER.equals(converterConfigurationElement.getName())) {
+				// register converters here
+				try {
+					IConverter newInstance = (IConverter) converterConfigurationElement
+							.createExecutableExtension(CLASS);
+					XWT.registerConvertor(newInstance);
+				} catch (Exception e) {
+					e.printStackTrace();
+					PDEPlugin.getDefault().getLog().log(
+							new Status(IStatus.ERROR, PDEPlugin.PLUGIN_ID,
+									"Converter registration error", e));
+				}
+			}
+
+			IConfigurationElement[] metaclassConfigurationElements = Platform
+					.getExtensionRegistry().getConfigurationElementsFor(
+							METACLASS_REGISTER_ID);
+			for (IConfigurationElement configurationElement : metaclassConfigurationElements) {
+				if (METACLASS.equals(configurationElement.getName())) {
+					String componentName = configurationElement
+							.getAttribute(TYPE);
+					try {
+						Class<?> newClass = Class.forName(componentName);
+						IMetaclass newMetaclass = (IMetaclass) XWT
+								.registerMetaclass(newClass);
+						IConfigurationElement[] children = configurationElement
+								.getChildren();
+						if (children != null) {
+							for (IConfigurationElement configurationElementChildern : children) {
+								if (PROPERTY
+										.equals(configurationElementChildern
+												.getName())) {
+									// property codes here
+									String propertyName = configurationElementChildern
+											.getAttribute(NAME);
+									String className = configurationElementChildern
+											.getAttribute(CLASS);
+									String typeName = configurationElementChildern
+											.getAttribute(TYPE);
+									String propertyAmount = configurationElementChildern
+											.getAttribute(AMOUNT);
+									String overwrite = configurationElementChildern
+											.getAttribute(OVERWRITE);
+
+									IProperty property = newMetaclass
+											.findProperty(propertyName);
+									if (property == null
+											|| overwrite.equals(TRUE)) {
+										if (className != null) {
+											property = (IProperty) configurationElementChildern
+													.createExecutableExtension(CLASS);
+											newMetaclass.addProperty(property);
+										} else if (typeName != null) {
+											if (SINGLE.equals(propertyAmount)) {
+												property = new DynamicProperty(
+														newClass,
+														Class.forName(typeName),
+														propertyName);
+
+											} else {
+												Object newInstance = Array
+														.newInstance(
+																Class
+																		.forName(typeName),
+																1);
+												property = new DynamicProperty(
+														newClass, newInstance
+																.getClass(),
+														propertyName);
+											}
+										}
+										if (property != null) {
+											// if ((className == null) &&
+											// (typeName != null) &&
+											// ARRAY.equals(propertyAmount)) {
+											// newMetaclass.addArrayProperty(property);
+											// } else {
+											newMetaclass.addProperty(property);
+											// }
+										}
+									}
+
+									// add SetPostAction to property
+									IConfigurationElement[] propertyChildren = configurationElementChildern
+											.getChildren();
+									if (propertyChildren != null) {
+										for (IConfigurationElement propertyConfigurationElement : propertyChildren) {
+											if (SETPOSTACTION
+													.equals(propertyConfigurationElement)) {
+												String setPostActionName = propertyConfigurationElement
+														.getAttribute(SETPOSTACTION);
+												property
+														.addSetPostAction((ISetPostAction) Class
+																.forName(
+																		setPostActionName)
+																.newInstance());
+											}
+										}
+									}
+								} else if (EVENT
+										.equals(configurationElementChildern
+												.getName())) {
+									// event codes here
+								}
+							}
+						}
+					} catch (Exception e) {
+						e.printStackTrace();
+						PDEPlugin.getDefault().getLog().log(
+								new Status(IStatus.ERROR, PDEPlugin.PLUGIN_ID,
+										"Type registration error", e));
+					}
+				}
+			}
+		}
+
+		IExtensionRegistry regs = Platform.getExtensionRegistry();
+		if (regs != null) {
+			IExtensionPoint ep = regs.getExtensionPoint(LOGGER_REGISTER_ID);
+			IExtension[] extensions = ep.getExtensions();
+			if (extensions.length > 0) {
+				IExtension extension = extensions[0];
+				IConfigurationElement ce = extension.getConfigurationElements()[0];
+				try {
+					Object object = ce.createExecutableExtension("class");
+					if (object != null) {
+						XWT.setLogger((ILogger) object);
+					}
+				} catch (CoreException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+
+		IConfigurationElement[] commandsConfigurationElements = Platform
+				.getExtensionRegistry().getConfigurationElementsFor(
+						COMMANDS_REGISTER_ID);
+		for (IConfigurationElement commandConfigurationElement : commandsConfigurationElements) {
+			if (COMMAND.equals(commandConfigurationElement.getName())) {
+				// register converters here
+				String commandName = commandConfigurationElement
+						.getAttribute(NAME);
+				try {
+					ICommand newInstance = (ICommand) commandConfigurationElement
+							.createExecutableExtension(CLASS);
+					XWT.registerCommand(commandName, newInstance);
+				} catch (Exception e) {
+					e.printStackTrace();
+					PDEPlugin.getDefault().getLog().log(
+							new Status(IStatus.ERROR, PDEPlugin.PLUGIN_ID,
+									"Converter registration error", e));
+				}
+			}
+		}
+
+		IConfigurationElement[] stylesConfigurationElements = Platform
+				.getExtensionRegistry().getConfigurationElementsFor(
+						STYLES_REGISTER_ID);
+		for (IConfigurationElement styleConfigurationElement : stylesConfigurationElements) {
+			if (STYLE.equals(styleConfigurationElement.getName())) {
+				try {
+					IStyle newInstance = (IStyle) styleConfigurationElement
+							.createExecutableExtension(CLASS);
+					XWT.addDefaultStyle(newInstance);
+				} catch (Exception e) {
+					e.printStackTrace();
+					PDEPlugin.getDefault().getLog().log(
+							new Status(IStatus.ERROR, PDEPlugin.PLUGIN_ID,
+									"Converter registration error", e));
+				}
+			}
+		}
+	}
+
+	public static IMetaclassFactory getMetaclassFactory(Class<?> type) {
+		IConfigurationElement[] metaclassFactoryElements = Platform
+				.getExtensionRegistry().getConfigurationElementsFor(
+						METACLASS_FACTORY_ID);
+		for (IConfigurationElement metaclassFactoryElement : metaclassFactoryElements) {
+			if (METACLASSFACTORY.equals(metaclassFactoryElement.getName())) {
+				// get metaclassFactory here
+				String metaclassFactoryName = metaclassFactoryElement
+						.getAttribute(NAME);
+				try {
+					IMetaclassFactory newInstance = (IMetaclassFactory) metaclassFactoryElement
+							.createExecutableExtension(METACLASS);
+					if (newInstance != null) {
+						return newInstance;
+					}
+				} catch (Exception e) {
+					e.printStackTrace();
+					PDEPlugin.getDefault().getLog().log(
+							new Status(IStatus.ERROR, PDEPlugin.PLUGIN_ID,
+									"get metaclassFactory here", e));
+				}
+			}
+		}
+		return null;
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/PDEPlugin.java b/plugins/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/PDEPlugin.java
new file mode 100644
index 0000000..2be912f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/PDEPlugin.java
@@ -0,0 +1,133 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.pde;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleException;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class PDEPlugin extends AbstractUIPlugin {
+
+	// The plug-in ID
+	public static final String PLUGIN_ID = "org.eclipse.xwt.pde";
+
+	// The shared instance
+	private static PDEPlugin plugin;
+
+	private static BundleContext context;
+
+	/**
+	 * The constructor
+	 */
+	public PDEPlugin() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext
+	 * )
+	 */
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+
+		// To register all metaclass using EP for XWT
+		ExtensionService.initialize();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext
+	 * )
+	 */
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance
+	 * 
+	 * @return the shared instance
+	 */
+	public static PDEPlugin getDefault() {
+		return plugin;
+	}
+
+	public static BundleContext getContext() {
+		return context;
+	}
+
+	public static void checkStartup() {
+		Bundle bundle = Platform.getBundle("org.eclipse.xwt");
+		if (bundle.getState() != Bundle.ACTIVE) {
+			try {
+				bundle.start(Bundle.START_TRANSIENT);
+			} catch (BundleException e) {
+				e.printStackTrace();
+			}
+		}
+	}
+
+	static public Shell getShell() {
+		IWorkbench workbench = PlatformUI.getWorkbench();
+		IWorkbenchWindow activeWorkbenchWindow = workbench
+				.getActiveWorkbenchWindow();
+		if (activeWorkbenchWindow == null)
+			return null;
+		return activeWorkbenchWindow.getShell();
+	}
+
+	public static void log(int severity, int code, String message,
+			Throwable exception) {
+		getDefault().getLog().log(
+				new Status(severity,
+						getDefault().getBundle().getSymbolicName(), code,
+						message, exception));
+	}
+
+	public static void log(int severity, int code, String message) {
+		getDefault().getLog().log(
+				new Status(severity,
+						getDefault().getBundle().getSymbolicName(), code,
+						message, null));
+	}
+
+	public static void log(int severity, String message) {
+		getDefault().getLog().log(
+				new Status(severity,
+						getDefault().getBundle().getSymbolicName(), -1,
+						message, null));
+	}
+
+	public static void log(Throwable exception) {
+		getDefault().getLog().log(
+				new Status(IStatus.ERROR, getDefault().getBundle()
+						.getSymbolicName(), -1, "", exception));
+	}
+}
diff --git a/plugins/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/ExceptionHandle.java b/plugins/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/ExceptionHandle.java
new file mode 100644
index 0000000..df25530
--- /dev/null
+++ b/plugins/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/ExceptionHandle.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.pde.ui;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.xwt.pde.PDEPlugin;
+
+public class ExceptionHandle {
+
+	static public void handle(Exception e, String message) {
+		if (e.getMessage() != null) {
+			message += "\n" + e.getMessage();
+		}
+		MessageDialog.openError(PDEPlugin.getShell(), "Erreur: ", message);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/RCPApplication.java b/plugins/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/RCPApplication.java
new file mode 100644
index 0000000..6a8c378
--- /dev/null
+++ b/plugins/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/RCPApplication.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.pde.ui;
+
+import java.net.URL;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.equinox.app.IApplication;
+import org.eclipse.equinox.app.IApplicationContext;
+import org.eclipse.xwt.DefaultLoadingContext;
+import org.eclipse.xwt.XWT;
+
+/**
+ * Abstract application class for RCP
+ * 
+ * @author yyang
+ *
+ */
+public abstract class RCPApplication implements IApplication {
+
+	final public Object start(IApplicationContext context) throws Exception {
+		Platform.endSplash();
+		XWT.setLoadingContext(new DefaultLoadingContext(this.getClass()
+				.getClassLoader()));
+		initialize();
+		try {
+			URL input = getInputURL();
+			XWT.open(input);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		Thread.currentThread().join();
+		return IApplication.EXIT_OK;
+	}
+
+	abstract protected URL getInputURL();
+
+	protected void initialize() {
+	}
+
+	public void stop() {
+	}
+}
diff --git a/plugins/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/URLConverter.java b/plugins/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/URLConverter.java
new file mode 100644
index 0000000..c06b925
--- /dev/null
+++ b/plugins/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/URLConverter.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.pde.ui;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+
+/**
+ * Data type converter
+ * 
+ * @author yyang
+ */
+public class URLConverter implements IConverter {
+
+	public Object convert(Object fromObject) {
+		try {
+			return new URL((String) fromObject);
+		} catch (MalformedURLException e) {
+			throw new RuntimeException(e);
+		}
+	}
+
+	public Object getFromType() {
+		return String.class;
+	}
+
+	public Object getToType() {
+		return URL.class;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/views/XWTEditorPart.java b/plugins/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/views/XWTEditorPart.java
new file mode 100644
index 0000000..5152c4d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/views/XWTEditorPart.java
@@ -0,0 +1,108 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.pde.ui.views;
+
+import java.io.InputStream;
+import java.net.URL;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.EditorPart;
+import org.eclipse.xwt.DefaultLoadingContext;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.databinding.BindingContext;
+
+/**
+ * 
+ * @author yyang
+ */
+public abstract class XWTEditorPart extends EditorPart {
+	protected Composite container;
+	protected Object dataContext;
+
+	@Override
+	public void init(IEditorSite site, IEditorInput input)
+			throws PartInitException {
+		setInput(input);
+		setSite(site);
+	}
+
+	@Override
+	public void createPartControl(Composite parent) {
+		container = new Composite(parent, SWT.NONE);
+		container.setLayoutData(new GridData(GridData.FILL_BOTH));
+		container.setLayout(new FillLayout());
+		container.setBackgroundMode(SWT.INHERIT_DEFAULT);
+		updateContent();
+	}
+
+	public void setContent(URL file) {
+		XWT.setLoadingContext(new DefaultLoadingContext(this.getClass()
+				.getClassLoader()));
+
+		for (Control child : container.getChildren()) {
+			child.dispose();
+		}
+
+		try {
+			XWT.load(file);
+			container.layout(true, true);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	public void setContent(InputStream inputStream, URL base) {
+		XWT.setLoadingContext(new DefaultLoadingContext(getClassLoader()));
+
+		for (Control child : container.getChildren()) {
+			child.dispose();
+		}
+
+		try {
+			XWT.load(container, inputStream, base, getDataContext());
+			container.layout(true, true);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	protected ClassLoader getClassLoader() {
+		return this.getClass().getClassLoader();
+	}
+
+	public Object getDataContext() {
+		if (dataContext == null) {
+			dataContext = createDataContext();
+		}
+		return dataContext;
+	}
+
+	/**
+	 * Create the data context from IEditorInput
+	 * 
+	 * @return
+	 */
+	protected abstract Object createDataContext();
+
+	/**
+	 * update the editor content
+	 */
+	protected abstract void updateContent();
+}
diff --git a/plugins/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/views/XWTViewPart.java b/plugins/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/views/XWTViewPart.java
new file mode 100644
index 0000000..3caa025
--- /dev/null
+++ b/plugins/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/views/XWTViewPart.java
@@ -0,0 +1,121 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.pde.ui.views;
+
+import java.io.InputStream;
+import java.net.URL;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.part.ViewPart;
+import org.eclipse.xwt.DefaultLoadingContext;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.pde.PDEPlugin;
+
+/**
+ * This sample class demonstrates how to plug-in a new workbench view. The view
+ * shows data obtained from the model. The sample creates a dummy model on the
+ * fly, but a real implementation would connect to the model available either in
+ * this or another plug-in (e.g. the workspace). The view is connected to the
+ * model using a content provider.
+ * <p>
+ * The view uses a label provider to define how model objects should be
+ * presented in the view. Each view can present the same model objects using
+ * different labels and icons, if needed. Alternatively, a single label provider
+ * can be shared between views in order to ensure that objects of the same type
+ * are presented in the same way everywhere.
+ * <p>
+ * 
+ * @author yyang
+ */
+public abstract class XWTViewPart extends ViewPart {
+	protected Composite container;
+	protected Object dataContext;
+
+	static {
+		PDEPlugin.checkStartup();
+	}
+
+	/**
+	 * The constructor.
+	 */
+	public XWTViewPart() {
+	}
+
+	/**
+	 * This is a callback that will allow us to create the viewer and initialize
+	 * it.
+	 */
+	public void createPartControl(Composite parent) {
+		container = new Composite(parent, SWT.NONE);
+		container.setLayoutData(new GridData(GridData.FILL_BOTH));
+		container.setLayout(new FillLayout());
+		container.setBackgroundMode(SWT.INHERIT_DEFAULT);
+
+		updateContent();
+	}
+
+	abstract protected void updateContent();
+
+	public void setContent(URL file) {
+		XWT.setLoadingContext(new DefaultLoadingContext(getClassLoader()));
+
+		for (Control child : container.getChildren()) {
+			child.dispose();
+		}
+
+		try {
+			XWT.load(container, file, getDataContext());
+			container.layout(true, true);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	protected ClassLoader getClassLoader() {
+		return this.getClass().getClassLoader();
+	}
+
+	public void setContent(InputStream inputStream, URL base) {
+		XWT.setLoadingContext(new DefaultLoadingContext(getClassLoader()));
+
+		for (Control child : container.getChildren()) {
+			child.dispose();
+		}
+
+		try {
+			XWT.load(container, inputStream, base, getDataContext());
+			container.layout(true, true);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * Passing the focus request to the viewer's control.
+	 */
+	public void setFocus() {
+	}
+
+	public Object getDataContext() {
+		return dataContext;
+	}
+
+	public void setDataContext(Object dataContext) {
+		this.dataContext = dataContext;
+		updateContent();
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/wizard/XWTWizardPage.java b/plugins/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/wizard/XWTWizardPage.java
new file mode 100644
index 0000000..dbf7fa3
--- /dev/null
+++ b/plugins/org.eclipse.xwt.pde/src/org/eclipse/xwt/pde/ui/wizard/XWTWizardPage.java
@@ -0,0 +1,161 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec and Valoueee - initial API and implementation
+ *       http://www.eclipse.org/forums/index.php?t=msg&th=199619&start=0&S=eeee2217897168580b83685b5756bc21
+ *******************************************************************************/
+package org.eclipse.xwt.pde.ui.wizard;
+
+import java.io.InputStream;
+import java.net.URL;
+import java.util.HashMap;
+
+import org.eclipse.core.databinding.AggregateValidationStatus;
+import org.eclipse.core.databinding.observable.ChangeEvent;
+import org.eclipse.core.databinding.observable.IChangeListener;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.databinding.swt.ISWTObservable;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTLoader;
+import org.eclipse.xwt.databinding.BindingContext;
+import org.eclipse.xwt.internal.core.UIResource;
+
+public abstract class XWTWizardPage extends WizardPage {
+
+	private Object dataContext;
+	private BindingContext bindingContext;
+	private AggregateValidationStatus validationStatus;
+
+	private PageStateManager pageStateManager = new PageStateManager();
+
+	private UIResource uiResource;
+
+	class PageStateManager implements IChangeListener {
+		public void handleChange(ChangeEvent event) {
+			Object source = event.getSource();
+			if (!(source instanceof ISWTObservable)) {
+				setPageComplete(false);
+			}
+		}
+	}
+
+	protected XWTWizardPage(String pageName, String title,
+			ImageDescriptor titleImage, Object dataContext) {
+		this(pageName, title, titleImage, dataContext, null);
+	}
+
+	protected XWTWizardPage(String pageName, String title,
+			ImageDescriptor titleImage, Object dataContext, UIResource uiResource) {
+		this(pageName, title, titleImage, dataContext, null, uiResource);
+	}
+
+	protected XWTWizardPage(String pageName, String title,
+			ImageDescriptor titleImage, Object dataContext,
+			BindingContext bindingContext, UIResource uiResource) {
+		super(pageName, title, null);
+		this.dataContext = dataContext;
+		this.bindingContext = bindingContext;
+		this.uiResource = uiResource;
+	}
+
+	public void createControl(Composite _parent) {
+		if (bindingContext == null) {
+			bindingContext = new BindingContext(_parent);
+		}
+		validationStatus = bindingContext.getStatus();
+		validationStatus.addChangeListener(new IChangeListener() {
+			public void handleChange(ChangeEvent event) {
+				IStatus status = (IStatus) validationStatus.getValue();
+				setMessage(status.getMessage(), status.getSeverity());
+			}
+		});
+
+		ClassLoader classLoader = Thread.currentThread()
+				.getContextClassLoader();
+		try {
+			Thread.currentThread().setContextClassLoader(getClassLoader());
+			HashMap<String, Object> newOptions = new HashMap<String, Object>();
+			newOptions.put(XWTLoader.CONTAINER_PROPERTY, _parent);
+			Object dataContext = getDataContext();
+			if (dataContext != null) {
+				newOptions.put(XWTLoader.DATACONTEXT_PROPERTY, dataContext);
+			}
+			BindingContext bindingContext = getBindingContext();
+			if (bindingContext != null) {
+				newOptions.put(XWTLoader.BINDING_CONTEXT_PROPERTY,
+						bindingContext);
+			}
+
+			InputStream inputStream = getContentInputStream();
+
+			Object element = null;
+			if (uiResource != null) {
+				element = XWT.loadWithOptions(uiResource, newOptions);
+			} else {
+				element = (inputStream == null ? XWT.loadWithOptions(
+						getContentURL(), newOptions) : XWT.loadWithOptions(
+						inputStream, getContentURL(), newOptions));
+			}
+			if (element instanceof Control) {
+				Control control = (Control) element;
+				setControl(control);
+				XWT.addObservableChangeListener(control, pageStateManager);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		} finally {
+			Thread.currentThread().setContextClassLoader(classLoader);
+			_parent.setVisible(true);
+		}
+	}
+
+	@Override
+	public void dispose() {
+		Control control = getControl();
+		if (control != null) {
+			XWT.removeObservableChangeListener(control, pageStateManager);
+		}
+		super.dispose();
+	}
+
+	abstract protected URL getContentURL();
+
+	protected InputStream getContentInputStream() {
+		return null;
+	}
+
+	public UIResource getUIResource() {
+		return uiResource;
+	}
+
+	public void setUIResource(UIResource uiResource) {
+		this.uiResource = uiResource;
+	}
+
+	protected ClassLoader getClassLoader() {
+		return this.getClassLoader();
+	}
+
+	public Object getDataContext() {
+		return dataContext;
+	}
+
+	public BindingContext getBindingContext() {
+		return bindingContext;
+	}
+
+	public void setBindingContext(BindingContext bindingContext) {
+		this.bindingContext = bindingContext;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.snippets/.classpath b/plugins/org.eclipse.xwt.snippets/.classpath
new file mode 100644
index 0000000..ad32c83
--- /dev/null
+++ b/plugins/org.eclipse.xwt.snippets/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.xwt.snippets/.gitignore b/plugins/org.eclipse.xwt.snippets/.gitignore
similarity index 100%
rename from org.eclipse.xwt.snippets/.gitignore
rename to plugins/org.eclipse.xwt.snippets/.gitignore
diff --git a/plugins/org.eclipse.xwt.snippets/.project b/plugins/org.eclipse.xwt.snippets/.project
new file mode 100644
index 0000000..a1edf73
--- /dev/null
+++ b/plugins/org.eclipse.xwt.snippets/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.xwt.snippets</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.xwt.snippets/META-INF/MANIFEST.MF b/plugins/org.eclipse.xwt.snippets/META-INF/MANIFEST.MF
similarity index 100%
rename from org.eclipse.xwt.snippets/META-INF/MANIFEST.MF
rename to plugins/org.eclipse.xwt.snippets/META-INF/MANIFEST.MF
diff --git a/plugins/org.eclipse.xwt.snippets/about.html b/plugins/org.eclipse.xwt.snippets/about.html
new file mode 100644
index 0000000..46a80b6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.snippets/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 5, 2006</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.snippets/build.properties b/plugins/org.eclipse.xwt.snippets/build.properties
similarity index 100%
rename from org.eclipse.xwt.snippets/build.properties
rename to plugins/org.eclipse.xwt.snippets/build.properties
diff --git a/plugins/org.eclipse.xwt.snippets/notice.html b/plugins/org.eclipse.xwt.snippets/notice.html
new file mode 100644
index 0000000..2949b01
--- /dev/null
+++ b/plugins/org.eclipse.xwt.snippets/notice.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 9, 2014</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 2.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/plugins/org.eclipse.xwt.snippets/pom.xml b/plugins/org.eclipse.xwt.snippets/pom.xml
new file mode 100755
index 0000000..219f037
--- /dev/null
+++ b/plugins/org.eclipse.xwt.snippets/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-plugins</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt.snippets</artifactId>
+	<version>0.10.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+</project>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/XWTSnippet.java b/plugins/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/XWTSnippet.java
new file mode 100644
index 0000000..7efa841
--- /dev/null
+++ b/plugins/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/XWTSnippet.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2013 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *     Erdal Karaca - refactored to use base class
+ *******************************************************************************/
+package org.eclipse.xwt.snippets;
+
+import java.net.URL;
+import java.util.logging.Logger;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class XWTSnippet {
+	protected Logger log = Logger.getLogger(this.getClass().getName());
+	private Object root;
+
+	protected URL doGetUrl() {
+		Class<?> clazz = this.getClass();
+		return clazz.getResource(clazz.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+	}
+
+	public Object load() {
+		if (root != null) {
+			throw new IllegalStateException("This snippet has already been loaded.");
+		}
+
+		URL url = doGetUrl();
+
+		try {
+			root = XWT.load(url);
+		} catch (Exception e) {
+			log.severe(e.getMessage());
+		}
+
+		return root;
+	}
+	
+	public void open() {
+		URL url = doGetUrl();
+
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			log.severe(e.getMessage());
+		}
+	}
+
+	public Object getRoot() {
+		return root;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/base/HelloWorldSnippet.java b/plugins/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/base/HelloWorldSnippet.java
new file mode 100644
index 0000000..d63281d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/base/HelloWorldSnippet.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2013 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *     Erdal Karaca - refactored to use base class
+ *******************************************************************************/
+package org.eclipse.xwt.snippets.base;
+
+import org.eclipse.xwt.snippets.XWTSnippet;
+
+public class HelloWorldSnippet extends XWTSnippet {
+	public static void main(String[] args) {
+		new HelloWorldSnippet().open();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/base/HelloWorldSnippet.xwt b/plugins/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/base/HelloWorldSnippet.xwt
new file mode 100644
index 0000000..39bf794
--- /dev/null
+++ b/plugins/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/base/HelloWorldSnippet.xwt
@@ -0,0 +1,6 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation">
+	<Composite.layout>
+		<GridLayout numColumns="2" />
+	</Composite.layout>
+	<Text background="SWT.COLOR_BLUE" />
+</Composite>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/controls/Button_Visible.java b/plugins/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/controls/Button_Visible.java
new file mode 100644
index 0000000..724ccf4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/controls/Button_Visible.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.snippets.controls;
+
+import org.eclipse.xwt.snippets.XWTSnippet;
+
+/**
+ * @author jliu
+ */
+public class Button_Visible extends XWTSnippet {
+	public static void main(String[] args) {
+		new Button_Visible().open();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/controls/Button_Visible.xwt b/plugins/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/controls/Button_Visible.xwt
new file mode 100644
index 0000000..5b91ceb
--- /dev/null
+++ b/plugins/org.eclipse.xwt.snippets/src/org/eclipse/xwt/snippets/controls/Button_Visible.xwt
@@ -0,0 +1,9 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	text="Button Visible Test">
+	<Composite.layout>
+		<GridLayout numColumns="1"/>
+	</Composite.layout>
+	<Button name="buttonVisible" text="Visible(true)" visible="true"/>
+	<Button name="buttonNonVisible" text="Visible(false)" visible="false"/>
+</Composite>
diff --git a/org.eclipse.xwt.tools.categorynode.edit/.classpath b/plugins/org.eclipse.xwt.tools.categorynode.edit/.classpath
similarity index 100%
rename from org.eclipse.xwt.tools.categorynode.edit/.classpath
rename to plugins/org.eclipse.xwt.tools.categorynode.edit/.classpath
diff --git a/org.eclipse.xwt.tools.categorynode.edit/.gitignore b/plugins/org.eclipse.xwt.tools.categorynode.edit/.gitignore
similarity index 100%
rename from org.eclipse.xwt.tools.categorynode.edit/.gitignore
rename to plugins/org.eclipse.xwt.tools.categorynode.edit/.gitignore
diff --git a/org.eclipse.xwt.tools.categorynode.edit/.project b/plugins/org.eclipse.xwt.tools.categorynode.edit/.project
similarity index 100%
rename from org.eclipse.xwt.tools.categorynode.edit/.project
rename to plugins/org.eclipse.xwt.tools.categorynode.edit/.project
diff --git a/org.eclipse.xwt.tools.categorynode.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.xwt.tools.categorynode.edit/META-INF/MANIFEST.MF
similarity index 100%
rename from org.eclipse.xwt.tools.categorynode.edit/META-INF/MANIFEST.MF
rename to plugins/org.eclipse.xwt.tools.categorynode.edit/META-INF/MANIFEST.MF
diff --git a/plugins/org.eclipse.xwt.tools.categorynode.edit/build.properties b/plugins/org.eclipse.xwt.tools.categorynode.edit/build.properties
new file mode 100755
index 0000000..5ad30b5
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.categorynode.edit/build.properties
@@ -0,0 +1,32 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+
+# <copyright>
+# </copyright>
+#
+# $Id: build.properties,v 1.2 2010/06/18 00:27:02 yvyang Exp $
+
+bin.includes = .,\
+               icons/,\
+               META-INF/,\
+               plugin.xml,\
+               plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
+src.includes = META-INF/,\
+               build.properties,\
+               icons/,\
+               plugin.properties,\
+               plugin.xml,\
+               src/
diff --git a/org.eclipse.xwt.tools.categorynode.edit/icons/full/obj16/CategoryNode.gif b/plugins/org.eclipse.xwt.tools.categorynode.edit/icons/full/obj16/CategoryNode.gif
similarity index 100%
rename from org.eclipse.xwt.tools.categorynode.edit/icons/full/obj16/CategoryNode.gif
rename to plugins/org.eclipse.xwt.tools.categorynode.edit/icons/full/obj16/CategoryNode.gif
Binary files differ
diff --git a/plugins/org.eclipse.xwt.tools.categorynode.edit/plugin.properties b/plugins/org.eclipse.xwt.tools.categorynode.edit/plugin.properties
new file mode 100755
index 0000000..c7c06ee
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.categorynode.edit/plugin.properties
@@ -0,0 +1,46 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+#******************************************************************************
+# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+# 
+# Contributors:
+#     Soyatec - initial API and implementation
+#******************************************************************************/
+
+pluginName = Outline Category Node Edit (Incubation)
+providerName = Eclipse.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_CategoryNode_type = Category Node
+_UI_Unknown_type = Object
+
+_UI_Unknown_datatype= Value
+
+_UI_CategoryNode_reference_feature = Reference
+_UI_CategoryNode_object_feature = Object
+_UI_Unknown_feature = Unspecified
+
diff --git a/plugins/org.eclipse.xwt.tools.categorynode.edit/plugin.xml b/plugins/org.eclipse.xwt.tools.categorynode.edit/plugin.xml
new file mode 100755
index 0000000..2e5e893
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.categorynode.edit/plugin.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+    Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+    All rights reserved. This program and the accompanying materials
+    are made available under the terms of the Eclipse Public License 2.0
+    which accompanies this distribution, and is available at
+    https://www.eclipse.org/legal/epl-2.0/
+
+    SPDX-License-Identifier: EPL-2.0
+   
+    Contributors:
+        Soyatec - initial API and implementation
+-->
+
+<plugin>
+
+   <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+      <factory
+            uri="http://www.eclipse.org/e4/tools/workbench/node"
+            class="org.eclipse.xwt.tools.categorynode.node.provider.NodeItemProviderAdapterFactory"
+            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/plugins/org.eclipse.xwt.tools.categorynode.edit/pom.xml b/plugins/org.eclipse.xwt.tools.categorynode.edit/pom.xml
new file mode 100755
index 0000000..1707035
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.categorynode.edit/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-plugins</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt.tools.categorynode.edit</artifactId>
+	<version>0.10.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+</project>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.categorynode.edit/src/org/eclipse/xwt/tools/categorynode/node/provider/CategoryNodeItemProvider.java b/plugins/org.eclipse.xwt.tools.categorynode.edit/src/org/eclipse/xwt/tools/categorynode/node/provider/CategoryNodeItemProvider.java
new file mode 100755
index 0000000..e904fa0
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.categorynode.edit/src/org/eclipse/xwt/tools/categorynode/node/provider/CategoryNodeItemProvider.java
@@ -0,0 +1,151 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.categorynode.node.provider;
+
+import java.util.ArrayList;
+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.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.xwt.tools.categorynode.node.CategoryNode;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.xwt.tools.categorynode.node.CategoryNode} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CategoryNodeItemProvider
+	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 CategoryNodeItemProvider(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 CategoryNode.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/CategoryNode"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated NOT
+	 */
+	@Override 
+	public String getText(Object object) {
+		String text = ((CategoryNode)object).getReference().getName();
+		StringBuilder stringBuilder =  new StringBuilder();
+		for (int i = 0; i < text.length(); i++) {
+			char ch = text.charAt(i);
+			if (Character.isUpperCase(ch)) {
+				stringBuilder.append(" " + Character.toLowerCase(ch));
+			}
+			else {
+				stringBuilder.append(ch);
+			}
+		}
+		return stringBuilder.toString().trim();
+	}
+	
+	@Override
+	public Collection<?> getChildren(Object object) {
+		CategoryNode categoryNode = (CategoryNode)object;
+		Object value = categoryNode.getObject().eGet(categoryNode.getReference());
+		if (value instanceof Collection<?>) {
+			return (Collection<?>) value;
+		}
+		ArrayList<Object> list = new ArrayList<Object>();
+		list.add(value);
+		return list;
+	}
+
+	/**
+	 * 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 NodeEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.categorynode.edit/src/org/eclipse/xwt/tools/categorynode/node/provider/NodeEditPlugin.java b/plugins/org.eclipse.xwt.tools.categorynode.edit/src/org/eclipse/xwt/tools/categorynode/node/provider/NodeEditPlugin.java
new file mode 100755
index 0000000..d0111ad
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.categorynode.edit/src/org/eclipse/xwt/tools/categorynode/node/provider/NodeEditPlugin.java
@@ -0,0 +1,99 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.categorynode.node.provider;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+/**
+ * This is the central singleton for the Node edit plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class NodeEditPlugin extends EMFPlugin {
+	/**
+	 * Keep track of the singleton.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final NodeEditPlugin INSTANCE = new NodeEditPlugin();
+
+	/**
+	 * 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 NodeEditPlugin() {
+		super
+		  (new ResourceLocator [] {
+		   });
+	}
+
+	/**
+	 * Returns the singleton instance of the Eclipse plugin.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the singleton instance.
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getPluginResourceLocator() {
+		return plugin;
+	}
+
+	/**
+	 * Returns the singleton instance of the Eclipse plugin.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the singleton instance.
+	 * @generated
+	 */
+	public static Implementation getPlugin() {
+		return plugin;
+	}
+
+	/**
+	 * The actual implementation of the Eclipse <b>Plugin</b>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static class Implementation extends EclipsePlugin {
+		/**
+		 * Creates an instance.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public Implementation() {
+			super();
+
+			// Remember the static instance.
+			//
+			plugin = this;
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.categorynode.edit/src/org/eclipse/xwt/tools/categorynode/node/provider/NodeItemProviderAdapterFactory.java b/plugins/org.eclipse.xwt.tools.categorynode.edit/src/org/eclipse/xwt/tools/categorynode/node/provider/NodeItemProviderAdapterFactory.java
new file mode 100755
index 0000000..e501fff
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.categorynode.edit/src/org/eclipse/xwt/tools/categorynode/node/provider/NodeItemProviderAdapterFactory.java
@@ -0,0 +1,207 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.categorynode.node.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.xwt.tools.categorynode.node.util.NodeAdapterFactory;
+
+/**
+ * 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 NodeItemProviderAdapterFactory extends NodeAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
+	/**
+	 * This keeps track of the root adapter factory that delegates to this adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComposedAdapterFactory parentAdapterFactory;
+
+	/**
+	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+	/**
+	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+	/**
+	 * This constructs an instance.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NodeItemProviderAdapterFactory() {
+		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.xwt.tools.categorynode.node.CategoryNode} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected CategoryNodeItemProvider categoryNodeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.xwt.tools.categorynode.node.CategoryNode}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createCategoryNodeAdapter() {
+		if (categoryNodeItemProvider == null) {
+			categoryNodeItemProvider = new CategoryNodeItemProvider(this);
+		}
+
+		return categoryNodeItemProvider;
+	}
+
+	/**
+	 * This returns the root adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ComposeableAdapterFactory getRootAdapterFactory() {
+		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+	}
+
+	/**
+	 * This sets the composed adapter factory that contains this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+		this.parentAdapterFactory = parentAdapterFactory;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object type) {
+		return supportedTypes.contains(type) || super.isFactoryForType(type);
+	}
+
+	/**
+	 * This implementation substitutes the factory itself as the key for the adapter.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter adapt(Notifier notifier, Object type) {
+		return super.adapt(notifier, this);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object adapt(Object object, Object type) {
+		if (isFactoryForType(type)) {
+			Object adapter = super.adapt(object, type);
+			if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) {
+				return adapter;
+			}
+		}
+
+		return null;
+	}
+
+	/**
+	 * This adds a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void addListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.addListener(notifyChangedListener);
+	}
+
+	/**
+	 * This removes a listener.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void removeListener(INotifyChangedListener notifyChangedListener) {
+		changeNotifier.removeListener(notifyChangedListener);
+	}
+
+	/**
+	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void fireNotifyChanged(Notification notification) {
+		changeNotifier.fireNotifyChanged(notification);
+
+		if (parentAdapterFactory != null) {
+			parentAdapterFactory.fireNotifyChanged(notification);
+		}
+	}
+
+	/**
+	 * This disposes all of the item providers created by this factory. 
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void dispose() {
+		if (categoryNodeItemProvider != null) categoryNodeItemProvider.dispose();
+	}
+
+}
diff --git a/org.eclipse.xwt.tools.categorynode/.classpath b/plugins/org.eclipse.xwt.tools.categorynode/.classpath
similarity index 100%
rename from org.eclipse.xwt.tools.categorynode/.classpath
rename to plugins/org.eclipse.xwt.tools.categorynode/.classpath
diff --git a/org.eclipse.xwt.tools.categorynode/.gitignore b/plugins/org.eclipse.xwt.tools.categorynode/.gitignore
similarity index 100%
rename from org.eclipse.xwt.tools.categorynode/.gitignore
rename to plugins/org.eclipse.xwt.tools.categorynode/.gitignore
diff --git a/org.eclipse.xwt.tools.categorynode/.project b/plugins/org.eclipse.xwt.tools.categorynode/.project
similarity index 100%
rename from org.eclipse.xwt.tools.categorynode/.project
rename to plugins/org.eclipse.xwt.tools.categorynode/.project
diff --git a/org.eclipse.xwt.tools.categorynode/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.xwt.tools.categorynode/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
rename from org.eclipse.xwt.tools.categorynode/.settings/org.eclipse.jdt.core.prefs
rename to plugins/org.eclipse.xwt.tools.categorynode/.settings/org.eclipse.jdt.core.prefs
diff --git a/org.eclipse.xwt.tools.categorynode/META-INF/MANIFEST.MF b/plugins/org.eclipse.xwt.tools.categorynode/META-INF/MANIFEST.MF
similarity index 100%
rename from org.eclipse.xwt.tools.categorynode/META-INF/MANIFEST.MF
rename to plugins/org.eclipse.xwt.tools.categorynode/META-INF/MANIFEST.MF
diff --git a/plugins/org.eclipse.xwt.tools.categorynode/build.properties b/plugins/org.eclipse.xwt.tools.categorynode/build.properties
new file mode 100755
index 0000000..1f9185f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.categorynode/build.properties
@@ -0,0 +1,32 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+
+# <copyright>
+# </copyright>
+#
+# $Id: build.properties,v 1.2 2010/06/18 00:27:04 yvyang Exp $
+
+bin.includes = .,\
+               model/,\
+               META-INF/,\
+               plugin.xml,\
+               plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
+src.includes = META-INF/,\
+               build.properties,\
+               model/,\
+               plugin.properties,\
+               plugin.xml,\
+               src/
diff --git a/org.eclipse.xwt.tools.categorynode/model/Node.ecore b/plugins/org.eclipse.xwt.tools.categorynode/model/Node.ecore
similarity index 100%
rename from org.eclipse.xwt.tools.categorynode/model/Node.ecore
rename to plugins/org.eclipse.xwt.tools.categorynode/model/Node.ecore
diff --git a/org.eclipse.xwt.tools.categorynode/model/Node.genmodel b/plugins/org.eclipse.xwt.tools.categorynode/model/Node.genmodel
similarity index 100%
rename from org.eclipse.xwt.tools.categorynode/model/Node.genmodel
rename to plugins/org.eclipse.xwt.tools.categorynode/model/Node.genmodel
diff --git a/plugins/org.eclipse.xwt.tools.categorynode/plugin.properties b/plugins/org.eclipse.xwt.tools.categorynode/plugin.properties
new file mode 100755
index 0000000..b5e8798
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.categorynode/plugin.properties
@@ -0,0 +1,27 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+#******************************************************************************
+# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+# 
+# Contributors:
+#     Soyatec - initial API and implementation
+#******************************************************************************/
+
+pluginName = Outline Category Node (Incubation)
+providerName = Eclipse.org
diff --git a/plugins/org.eclipse.xwt.tools.categorynode/plugin.xml b/plugins/org.eclipse.xwt.tools.categorynode/plugin.xml
new file mode 100755
index 0000000..d1db200
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.categorynode/plugin.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+    Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+    All rights reserved. This program and the accompanying materials
+    are made available under the terms of the Eclipse Public License 2.0
+    which accompanies this distribution, and is available at
+    https://www.eclipse.org/legal/epl-2.0/
+
+    SPDX-License-Identifier: EPL-2.0
+   
+    Contributors:
+        Soyatec - initial API and implementation
+-->
+
+<plugin>
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <package
+            uri="http://www.eclipse.org/e4/tools/workbench/node"
+            class="org.eclipse.xwt.tools.categorynode.node.NodePackage"
+            genModel="model/Node.genmodel"/>
+   </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.xwt.tools.categorynode/pom.xml b/plugins/org.eclipse.xwt.tools.categorynode/pom.xml
new file mode 100755
index 0000000..8ec297f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.categorynode/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-plugins</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt.tools.categorynode</artifactId>
+	<version>0.10.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+</project>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/CategoryNode.java b/plugins/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/CategoryNode.java
new file mode 100755
index 0000000..397ea16
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/CategoryNode.java
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.categorynode.node;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Category Node</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.xwt.tools.categorynode.node.CategoryNode#getReference <em>Reference</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.categorynode.node.CategoryNode#getObject <em>Object</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.xwt.tools.categorynode.node.NodePackage#getCategoryNode()
+ * @model
+ * @generated
+ */
+public interface CategoryNode extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Reference</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Reference</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Reference</em>' reference.
+	 * @see #setReference(EReference)
+	 * @see org.eclipse.xwt.tools.categorynode.node.NodePackage#getCategoryNode_Reference()
+	 * @model
+	 * @generated
+	 */
+	EReference getReference();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.tools.categorynode.node.CategoryNode#getReference <em>Reference</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Reference</em>' reference.
+	 * @see #getReference()
+	 * @generated
+	 */
+	void setReference(EReference value);
+
+	/**
+	 * Returns the value of the '<em><b>Object</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Object</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Object</em>' reference.
+	 * @see #setObject(EObject)
+	 * @see org.eclipse.xwt.tools.categorynode.node.NodePackage#getCategoryNode_Object()
+	 * @model
+	 * @generated
+	 */
+	EObject getObject();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.tools.categorynode.node.CategoryNode#getObject <em>Object</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Object</em>' reference.
+	 * @see #getObject()
+	 * @generated
+	 */
+	void setObject(EObject value);
+
+	Object getReferenceValue();
+
+} // CategoryNode
diff --git a/plugins/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/NodeFactory.java b/plugins/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/NodeFactory.java
new file mode 100755
index 0000000..4025f30
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/NodeFactory.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.categorynode.node;
+
+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.xwt.tools.categorynode.node.NodePackage
+ * @generated
+ */
+public interface NodeFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	NodeFactory eINSTANCE = org.eclipse.xwt.tools.categorynode.node.impl.NodeFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Category Node</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Category Node</em>'.
+	 * @generated
+	 */
+	CategoryNode createCategoryNode();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	NodePackage getNodePackage();
+
+} //NodeFactory
diff --git a/plugins/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/NodePackage.java b/plugins/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/NodePackage.java
new file mode 100755
index 0000000..ff186b8
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/NodePackage.java
@@ -0,0 +1,187 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.categorynode.node;
+
+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.xwt.tools.categorynode.node.NodeFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface NodePackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "node";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http://www.eclipse.org/e4/tools/workbench/node";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "node";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	NodePackage eINSTANCE = org.eclipse.xwt.tools.categorynode.node.impl.NodePackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.xwt.tools.categorynode.node.impl.CategoryNodeImpl <em>Category Node</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.xwt.tools.categorynode.node.impl.CategoryNodeImpl
+	 * @see org.eclipse.xwt.tools.categorynode.node.impl.NodePackageImpl#getCategoryNode()
+	 * @generated
+	 */
+	int CATEGORY_NODE = 0;
+
+	/**
+	 * The feature id for the '<em><b>Reference</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CATEGORY_NODE__REFERENCE = 0;
+
+	/**
+	 * The feature id for the '<em><b>Object</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CATEGORY_NODE__OBJECT = 1;
+
+	/**
+	 * The number of structural features of the '<em>Category Node</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CATEGORY_NODE_FEATURE_COUNT = 2;
+
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.xwt.tools.categorynode.node.CategoryNode <em>Category Node</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Category Node</em>'.
+	 * @see org.eclipse.xwt.tools.categorynode.node.CategoryNode
+	 * @generated
+	 */
+	EClass getCategoryNode();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.xwt.tools.categorynode.node.CategoryNode#getReference <em>Reference</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Reference</em>'.
+	 * @see org.eclipse.xwt.tools.categorynode.node.CategoryNode#getReference()
+	 * @see #getCategoryNode()
+	 * @generated
+	 */
+	EReference getCategoryNode_Reference();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.xwt.tools.categorynode.node.CategoryNode#getObject <em>Object</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Object</em>'.
+	 * @see org.eclipse.xwt.tools.categorynode.node.CategoryNode#getObject()
+	 * @see #getCategoryNode()
+	 * @generated
+	 */
+	EReference getCategoryNode_Object();
+
+	/**
+	 * 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
+	 */
+	NodeFactory getNodeFactory();
+
+	/**
+	 * <!-- 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.xwt.tools.categorynode.node.impl.CategoryNodeImpl <em>Category Node</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.xwt.tools.categorynode.node.impl.CategoryNodeImpl
+		 * @see org.eclipse.xwt.tools.categorynode.node.impl.NodePackageImpl#getCategoryNode()
+		 * @generated
+		 */
+		EClass CATEGORY_NODE = eINSTANCE.getCategoryNode();
+
+		/**
+		 * The meta object literal for the '<em><b>Reference</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference CATEGORY_NODE__REFERENCE = eINSTANCE.getCategoryNode_Reference();
+
+		/**
+		 * The meta object literal for the '<em><b>Object</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference CATEGORY_NODE__OBJECT = eINSTANCE.getCategoryNode_Object();
+
+	}
+
+} //NodePackage
diff --git a/plugins/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/impl/CategoryNodeImpl.java b/plugins/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/impl/CategoryNodeImpl.java
new file mode 100755
index 0000000..c84f10d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/impl/CategoryNodeImpl.java
@@ -0,0 +1,227 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.categorynode.node.impl;
+
+import java.util.ArrayList;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.xwt.tools.categorynode.node.CategoryNode;
+import org.eclipse.xwt.tools.categorynode.node.NodePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>Category Node</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.xwt.tools.categorynode.node.impl.CategoryNodeImpl#getReference <em>Reference</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.categorynode.node.impl.CategoryNodeImpl#getObject <em>Object</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CategoryNodeImpl extends EObjectImpl implements CategoryNode {
+	/**
+	 * The cached value of the '{@link #getReference() <em>Reference</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getReference()
+	 * @generated
+	 * @ordered
+	 */
+	protected EReference reference;
+
+	/**
+	 * The cached value of the '{@link #getObject() <em>Object</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getObject()
+	 * @generated
+	 * @ordered
+	 */
+	protected EObject object;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected CategoryNodeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return NodePackage.Literals.CATEGORY_NODE;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getReference() {
+		if (reference != null && reference.eIsProxy()) {
+			InternalEObject oldReference = (InternalEObject)reference;
+			reference = (EReference)eResolveProxy(oldReference);
+			if (reference != oldReference) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, NodePackage.CATEGORY_NODE__REFERENCE, oldReference, reference));
+			}
+		}
+		return reference;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference basicGetReference() {
+		return reference;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setReference(EReference newReference) {
+		EReference oldReference = reference;
+		reference = newReference;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, NodePackage.CATEGORY_NODE__REFERENCE, oldReference, reference));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EObject getObject() {
+		if (object != null && object.eIsProxy()) {
+			InternalEObject oldObject = (InternalEObject)object;
+			object = eResolveProxy(oldObject);
+			if (object != oldObject) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, NodePackage.CATEGORY_NODE__OBJECT, oldObject, object));
+			}
+		}
+		return object;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EObject basicGetObject() {
+		return object;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setObject(EObject newObject) {
+		EObject oldObject = object;
+		object = newObject;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, NodePackage.CATEGORY_NODE__OBJECT, oldObject, object));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case NodePackage.CATEGORY_NODE__REFERENCE:
+				if (resolve) return getReference();
+				return basicGetReference();
+			case NodePackage.CATEGORY_NODE__OBJECT:
+				if (resolve) return getObject();
+				return basicGetObject();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case NodePackage.CATEGORY_NODE__REFERENCE:
+				setReference((EReference)newValue);
+				return;
+			case NodePackage.CATEGORY_NODE__OBJECT:
+				setObject((EObject)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case NodePackage.CATEGORY_NODE__REFERENCE:
+				setReference((EReference)null);
+				return;
+			case NodePackage.CATEGORY_NODE__OBJECT:
+				setObject((EObject)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case NodePackage.CATEGORY_NODE__REFERENCE:
+				return reference != null;
+			case NodePackage.CATEGORY_NODE__OBJECT:
+				return object != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	public Object getReferenceValue() {
+		if (object == null || reference == null) {
+			return null;
+		}
+		if (reference.isMany()) {
+			if (!object.eIsSet(reference)) {
+				object.eSet(reference, new ArrayList());
+			}
+			return object.eGet(reference);
+		} else if (object.eIsSet(reference)) {
+			return object.eGet(reference);
+		}
+		return null;
+	}
+
+} // CategoryNodeImpl
diff --git a/plugins/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/impl/NodeFactoryImpl.java b/plugins/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/impl/NodeFactoryImpl.java
new file mode 100755
index 0000000..24d725f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/impl/NodeFactoryImpl.java
@@ -0,0 +1,102 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.categorynode.node.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.xwt.tools.categorynode.node.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class NodeFactoryImpl extends EFactoryImpl implements NodeFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static NodeFactory init() {
+		try {
+			NodeFactory theNodeFactory = (NodeFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/e4/tools/workbench/node"); 
+			if (theNodeFactory != null) {
+				return theNodeFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new NodeFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NodeFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case NodePackage.CATEGORY_NODE: return createCategoryNode();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CategoryNode createCategoryNode() {
+		CategoryNodeImpl categoryNode = new CategoryNodeImpl();
+		return categoryNode;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NodePackage getNodePackage() {
+		return (NodePackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static NodePackage getPackage() {
+		return NodePackage.eINSTANCE;
+	}
+
+} //NodeFactoryImpl
diff --git a/plugins/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/impl/NodePackageImpl.java b/plugins/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/impl/NodePackageImpl.java
new file mode 100755
index 0000000..842238f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/impl/NodePackageImpl.java
@@ -0,0 +1,196 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.categorynode.node.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.xwt.tools.categorynode.node.CategoryNode;
+import org.eclipse.xwt.tools.categorynode.node.NodeFactory;
+import org.eclipse.xwt.tools.categorynode.node.NodePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class NodePackageImpl extends EPackageImpl implements NodePackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass categoryNodeEClass = 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.xwt.tools.categorynode.node.NodePackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private NodePackageImpl() {
+		super(eNS_URI, NodeFactory.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 NodePackage#eINSTANCE} when that field is accessed.
+	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static NodePackage init() {
+		if (isInited) return (NodePackage)EPackage.Registry.INSTANCE.getEPackage(NodePackage.eNS_URI);
+
+		// Obtain or create and register package
+		NodePackageImpl theNodePackage = (NodePackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof NodePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new NodePackageImpl());
+
+		isInited = true;
+
+		// Create package meta-data objects
+		theNodePackage.createPackageContents();
+
+		// Initialize created meta-data
+		theNodePackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theNodePackage.freeze();
+
+  
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(NodePackage.eNS_URI, theNodePackage);
+		return theNodePackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getCategoryNode() {
+		return categoryNodeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getCategoryNode_Reference() {
+		return (EReference)categoryNodeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getCategoryNode_Object() {
+		return (EReference)categoryNodeEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NodeFactory getNodeFactory() {
+		return (NodeFactory)getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
+
+		// Create classes and their features
+		categoryNodeEClass = createEClass(CATEGORY_NODE);
+		createEReference(categoryNodeEClass, CATEGORY_NODE__REFERENCE);
+		createEReference(categoryNodeEClass, CATEGORY_NODE__OBJECT);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(categoryNodeEClass, CategoryNode.class, "CategoryNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getCategoryNode_Reference(), ecorePackage.getEReference(), null, "reference", null, 0, 1, CategoryNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getCategoryNode_Object(), ecorePackage.getEObject(), null, "object", null, 0, 1, CategoryNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} //NodePackageImpl
diff --git a/plugins/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/util/NodeAdapterFactory.java b/plugins/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/util/NodeAdapterFactory.java
new file mode 100755
index 0000000..ff9b19d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/util/NodeAdapterFactory.java
@@ -0,0 +1,127 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.categorynode.node.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.xwt.tools.categorynode.node.*;
+
+/**
+ * <!-- 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.xwt.tools.categorynode.node.NodePackage
+ * @generated
+ */
+public class NodeAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static NodePackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NodeAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = NodePackage.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 NodeSwitch<Adapter> modelSwitch =
+		new NodeSwitch<Adapter>() {
+			@Override
+			public Adapter caseCategoryNode(CategoryNode object) {
+				return createCategoryNodeAdapter();
+			}
+			@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.xwt.tools.categorynode.node.CategoryNode <em>Category Node</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.xwt.tools.categorynode.node.CategoryNode
+	 * @generated
+	 */
+	public Adapter createCategoryNodeAdapter() {
+		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;
+	}
+
+} //NodeAdapterFactory
diff --git a/plugins/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/util/NodeSwitch.java b/plugins/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/util/NodeSwitch.java
new file mode 100755
index 0000000..6dae0cb
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.categorynode/src/org/eclipse/xwt/tools/categorynode/node/util/NodeSwitch.java
@@ -0,0 +1,135 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.categorynode.node.util;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xwt.tools.categorynode.node.*;
+
+/**
+ * <!-- 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.xwt.tools.categorynode.node.NodePackage
+ * @generated
+ */
+public class NodeSwitch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static NodePackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NodeSwitch() {
+		if (modelPackage == null) {
+			modelPackage = NodePackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * 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
+	 */
+	public T doSwitch(EObject theEObject) {
+		return doSwitch(theEObject.eClass(), theEObject);
+	}
+
+	/**
+	 * 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
+	 */
+	protected T doSwitch(EClass theEClass, EObject theEObject) {
+		if (theEClass.eContainer() == modelPackage) {
+			return doSwitch(theEClass.getClassifierID(), theEObject);
+		}
+		else {
+			List<EClass> eSuperTypes = theEClass.getESuperTypes();
+			return
+				eSuperTypes.isEmpty() ?
+					defaultCase(theEObject) :
+					doSwitch(eSuperTypes.get(0), theEObject);
+		}
+	}
+
+	/**
+	 * 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
+	 */
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case NodePackage.CATEGORY_NODE: {
+				CategoryNode categoryNode = (CategoryNode)theEObject;
+				T result = caseCategoryNode(categoryNode);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Category Node</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>Category Node</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseCategoryNode(CategoryNode 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
+	 */
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} //NodeSwitch
diff --git a/org.eclipse.xwt.tools.ui.designer.core/.classpath b/plugins/org.eclipse.xwt.tools.ui.designer.core/.classpath
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer.core/.classpath
rename to plugins/org.eclipse.xwt.tools.ui.designer.core/.classpath
diff --git a/org.eclipse.xwt.tools.ui.designer.core/.gitignore b/plugins/org.eclipse.xwt.tools.ui.designer.core/.gitignore
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer.core/.gitignore
rename to plugins/org.eclipse.xwt.tools.ui.designer.core/.gitignore
diff --git a/org.eclipse.xwt.tools.ui.designer.core/.project b/plugins/org.eclipse.xwt.tools.ui.designer.core/.project
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer.core/.project
rename to plugins/org.eclipse.xwt.tools.ui.designer.core/.project
diff --git a/org.eclipse.xwt.tools.ui.designer.core/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.xwt.tools.ui.designer.core/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer.core/.settings/org.eclipse.jdt.core.prefs
rename to plugins/org.eclipse.xwt.tools.ui.designer.core/.settings/org.eclipse.jdt.core.prefs
diff --git a/org.eclipse.xwt.tools.ui.designer.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.xwt.tools.ui.designer.core/META-INF/MANIFEST.MF
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer.core/META-INF/MANIFEST.MF
rename to plugins/org.eclipse.xwt.tools.ui.designer.core/META-INF/MANIFEST.MF
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/OSGI-INF/l10n/bundle.properties b/plugins/org.eclipse.xwt.tools.ui.designer.core/OSGI-INF/l10n/bundle.properties
new file mode 100755
index 0000000..27a71ed
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1,17 @@
+###############################################################################
+# Copyright (c) 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+#Properties file for org.eclipse.xwt.tools.ui.designer.core
+content-type.name = xaml
+extension-point.name = Problem Checkers
+Bundle-Vendor = Eclipse.org
+Bundle-Name = XWT Designer Core (Incubation)
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/build.properties b/plugins/org.eclipse.xwt.tools.ui.designer.core/build.properties
new file mode 100755
index 0000000..b35a704
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/build.properties
@@ -0,0 +1,27 @@
+###############################################################################
+# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     Soyatec - initial API and implementation
+###############################################################################
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml,\
+               schema/,\
+               OSGI-INF/l10n/bundle.properties
+src.includes = src/,\
+               schema/,\
+               plugin.xml,\
+               build.properties,\
+               META-INF/,\
+               .settings/,\
+               .project,\
+               .classpath
diff --git a/org.eclipse.xwt.tools.ui.designer.core/doc/bugzilla.txt b/plugins/org.eclipse.xwt.tools.ui.designer.core/doc/bugzilla.txt
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer.core/doc/bugzilla.txt
rename to plugins/org.eclipse.xwt.tools.ui.designer.core/doc/bugzilla.txt
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/plugin.xml b/plugins/org.eclipse.xwt.tools.ui.designer.core/plugin.xml
new file mode 100755
index 0000000..67e0731
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/plugin.xml
Binary files differ
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/pom.xml b/plugins/org.eclipse.xwt.tools.ui.designer.core/pom.xml
new file mode 100755
index 0000000..ff94c79
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-plugins</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt.tools.ui.designer.core</artifactId>
+	<version>0.10.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.designer.core/schema/problemCheckers.exsd b/plugins/org.eclipse.xwt.tools.ui.designer.core/schema/problemCheckers.exsd
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer.core/schema/problemCheckers.exsd
rename to plugins/org.eclipse.xwt.tools.ui.designer.core/schema/problemCheckers.exsd
diff --git a/org.eclipse.xwt.tools.ui.designer.core/schema/sourcePages.exsd b/plugins/org.eclipse.xwt.tools.ui.designer.core/schema/sourcePages.exsd
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer.core/schema/sourcePages.exsd
rename to plugins/org.eclipse.xwt.tools.ui.designer.core/schema/sourcePages.exsd
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/DesignerPlugin.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/DesignerPlugin.java
new file mode 100755
index 0000000..80dbb17
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/DesignerPlugin.java
@@ -0,0 +1,281 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class DesignerPlugin extends AbstractUIPlugin {
+
+	// The plug-in ID
+	public static final String PLUGIN_ID = "org.soyatec.tools.designer";
+	public static final IPath VE_CACHE_ROOT_NAME = new Path(".cache");
+	// The shared instance
+	private static DesignerPlugin plugin;
+
+	/**
+	 * The constructor
+	 */
+	public DesignerPlugin() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+	 */
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+	 */
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance
+	 * 
+	 * @return the shared instance
+	 */
+	public static DesignerPlugin getDefault() {
+		return plugin;
+	}
+
+	public static void log(IStatus status) {
+		log(status, 0, true);
+	}
+
+	public static void log(IStatus status, boolean appendLogger) {
+		log(status, 0, appendLogger);
+	}
+
+	public static void log(IStatus status, int nesting) {
+		log(status, nesting, true);
+	}
+
+	public static void log(IStatus status, int nesting, boolean appendLogger) {
+		getDefault().getLog().log(status);
+	}
+
+	/**
+	 * Log Message Info
+	 */
+
+	public static void logInfo(String message) {
+		logInfo(message, 0, true);
+	}
+
+	public static void logInfo(String message, boolean appendLogger) {
+		logInfo(message, 0, appendLogger);
+	}
+
+	public static void logInfo(String message, int nesting) {
+		logInfo(message, nesting, true);
+	}
+
+	public static void logInfo(String message, int nesting, boolean appendLogger) {
+		log(newStatus(IStatus.INFO, message, null), nesting, appendLogger);
+	}
+
+	/**
+	 * Log Message and Throwable Info
+	 */
+
+	public static void logInfo(String message, Throwable t) {
+		logInfo(message, t, 0, true);
+	}
+
+	public static void logInfo(String message, Throwable t, boolean appendLogger) {
+		logInfo(message, t, 0, appendLogger);
+	}
+
+	public static void logInfo(String message, Throwable t, int nesting) {
+		logInfo(message, t, nesting, true);
+	}
+
+	public static void logInfo(String message, Throwable t, int nesting,
+			boolean appendLogger) {
+		log(newStatus(IStatus.INFO, message, t), nesting, appendLogger);
+	}
+
+	/**
+	 * Log Throwable Info
+	 */
+
+	public static void logInfo(Throwable t) {
+		logInfo(t, 0, true);
+	}
+
+	public static void logInfo(Throwable t, boolean appendLogger) {
+		logInfo(t, 0, appendLogger);
+	}
+
+	public static void logInfo(Throwable t, int nesting) {
+		logInfo(t, nesting, true);
+	}
+
+	public static void logInfo(Throwable t, int nesting, boolean appendLogger) {
+		log(newStatus(IStatus.INFO, t.getMessage(), t), nesting, appendLogger);
+	}
+
+	/**
+	 * Log Message Error
+	 */
+
+	public static void logError(String message) {
+		logError(message, 0, true);
+	}
+
+	public static void logError(String message, boolean appendLogger) {
+		logError(message, 0, appendLogger);
+	}
+
+	public static void logError(String message, int nesting) {
+		logError(message, nesting, true);
+	}
+
+	public static void logError(String message, int nesting,
+			boolean appendLogger) {
+		log(newStatus(IStatus.ERROR, message, null), nesting, appendLogger);
+	}
+
+	/**
+	 * Log Message and Throwable Error
+	 */
+
+	public static void logError(String message, Throwable t) {
+		logError(message, t, 0, true);
+	}
+
+	public static void logError(String message, Throwable t,
+			boolean appendLogger) {
+		logError(message, t, 0, appendLogger);
+	}
+
+	public static void logError(String message, Throwable t, int nesting) {
+		logError(message, t, nesting, true);
+	}
+
+	public static void logError(String message, Throwable t, int nesting,
+			boolean appendLogger) {
+		log(newStatus(IStatus.ERROR, message, t), nesting, appendLogger);
+	}
+
+	/**
+	 * Log Throwable Error
+	 */
+
+	public static void logError(Throwable t) {
+		logError(t, 0, true);
+	}
+
+	public static void logError(Throwable t, boolean appendLogger) {
+		logError(t, 0, appendLogger);
+	}
+
+	public static void logError(Throwable t, int nesting) {
+		logError(t, nesting, true);
+	}
+
+	public static void logError(Throwable t, int nesting, boolean appendLogger) {
+		log(newStatus(IStatus.ERROR, t.getMessage(), t), nesting, appendLogger);
+	}
+
+	/**
+	 * Log Message Warning
+	 */
+
+	public static void logWarning(String message) {
+		logWarning(message, 0, true);
+	}
+
+	public static void logWarning(String message, boolean appendLogger) {
+		logWarning(message, 0, appendLogger);
+	}
+
+	public static void logWarning(String message, int nesting) {
+		logWarning(message, nesting, true);
+	}
+
+	public static void logWarning(String message, int nesting,
+			boolean appendLogger) {
+		log(newStatus(IStatus.WARNING, message, null), nesting, appendLogger);
+	}
+
+	/**
+	 * Log Message and Throwable Warning
+	 */
+
+	public static void logWarning(String message, Throwable t) {
+		logWarning(message, t, 0, true);
+	}
+
+	public static void logWarning(String message, Throwable t,
+			boolean appendLogger) {
+		logWarning(message, t, 0, appendLogger);
+	}
+
+	public static void logWarning(String message, Throwable t, int nesting) {
+		logWarning(message, t, nesting, true);
+	}
+
+	public static void logWarning(String message, Throwable t, int nesting,
+			boolean appendLogger) {
+		log(newStatus(IStatus.WARNING, message, t), nesting, appendLogger);
+	}
+
+	/**
+	 * Log Throwable Warning
+	 */
+
+	public static void logWarning(Throwable t) {
+		logWarning(t, 0, true);
+	}
+
+	public static void logWarning(Throwable t, boolean appendLogger) {
+		logWarning(t, 0, appendLogger);
+	}
+
+	public static void logWarning(Throwable t, int nesting) {
+		logWarning(t, nesting, true);
+	}
+
+	public static void logWarning(Throwable t, int nesting, boolean appendLogger) {
+		log(newStatus(IStatus.WARNING, t.getMessage(), t), nesting,
+				appendLogger);
+	}
+
+	/**
+	 * Create an IStatus
+	 * 
+	 * @return a new IStatus
+	 */
+	public static IStatus newStatus(int severity, String message,
+			Throwable exception) {
+		return new Status(severity, PLUGIN_ID, 0, message, exception);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/ceditor/ConfigureDesigner.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/ceditor/ConfigureDesigner.java
new file mode 100755
index 0000000..ca761b9
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/ceditor/ConfigureDesigner.java
@@ -0,0 +1,434 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.xwt.tools.ui.designer.core.ceditor;
+
+import java.util.EventObject;
+import java.util.List;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.xwt.tools.ui.palette.page.ContributePalettePage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartViewer;
+import org.eclipse.gef.RootEditPart;
+import org.eclipse.gef.commands.CommandStack;
+import org.eclipse.gef.ui.parts.GraphicalEditor;
+import org.eclipse.gef.ui.views.palette.PalettePage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ViewForm;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IFileEditorInput;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.progress.UIJob;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.xwt.tools.ui.designer.core.component.CustomSashForm;
+import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
+import org.eclipse.xwt.tools.ui.designer.core.editor.IVisualRenderer;
+import org.eclipse.xwt.tools.ui.designer.core.editor.LoadingFigureController;
+import org.eclipse.xwt.tools.ui.designer.core.editor.Refresher;
+import org.eclipse.xwt.tools.ui.designer.core.editor.IVisualRenderer.Result;
+import org.eclipse.xwt.tools.ui.designer.core.model.IModelBuilder;
+import org.eclipse.xwt.tools.ui.designer.core.model.ModelChangeListener;
+import org.eclipse.xwt.tools.ui.designer.core.parts.RefreshContext;
+import org.eclipse.xwt.tools.ui.designer.core.problems.ProblemHandler;
+import org.eclipse.xwt.tools.ui.designer.core.util.DisplayUtil;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public abstract class ConfigureDesigner extends GraphicalEditor {
+
+	private PalettePage palettePage;
+	private IPropertySheetPage propertySheetPage;
+	private IContentOutlinePage contentOutlinePage;
+	private ProblemHandler problemHandler;
+
+	private MultiSourceEditor sourceEditor;
+
+	private LoadingFigureController loadingFigure;
+	private Display display;
+	private Refresher refresher;
+	private Object diagram;
+
+	private IModelBuilder modelBuilder;
+	private ModelChangeListener modelBuilderListener;
+	private IVisualRenderer visualsRender;
+	private boolean isCreatingVisuals = false;
+	private boolean isModelChanged;
+
+	public void init(IEditorSite site, IEditorInput input)
+			throws PartInitException {
+		setEditDomain(createEditDomain());
+		super.init(site, input);
+		display = site.getShell().getDisplay();
+		loadingFigure = new LoadingFigureController();
+		refresher = new Refresher(display);
+	}
+
+	protected EditDomain createEditDomain() {
+		EditDomain ed = new EditDomain(this);
+		ed.setCommandStack(new CommandStack());
+		return ed;
+	}
+
+	public Refresher getRefresher() {
+		return refresher;
+	}
+
+	public void createPartControl(Composite parent) {
+		ViewForm diagramPart = new ViewForm(parent, SWT.FLAT);
+		ToolBar toolBar = createToolBar(diagramPart);
+		if (toolBar != null && !toolBar.isDisposed()) {
+			diagramPart.setTopLeft(toolBar);
+		}
+		sourceEditor = new MultiSourceEditor(this);
+		if (sourceEditor.testValid()) {
+			CustomSashForm sashForm = new CustomSashForm(diagramPart,
+					SWT.VERTICAL);
+			super.createPartControl(sashForm);
+			boolean createSourcePage = createSourcePage(sashForm);
+			if (createSourcePage) {
+				sashForm.setWeights(new int[] { 1, 1 });
+				diagramPart.setContent(sashForm);
+			} else {
+				sashForm.dispose();
+				sourceEditor = null;
+				Composite content = new Composite(diagramPart, SWT.NONE);
+				content.setLayout(new FillLayout());
+				super.createPartControl(content);
+				diagramPart.setContent(content);
+			}
+		} else {
+			sourceEditor = null;
+			Composite content = new Composite(diagramPart, SWT.NONE);
+			content.setLayout(new FillLayout());
+			super.createPartControl(content);
+			diagramPart.setContent(content);
+		}
+		configureDesigner();
+	}
+
+	protected void configureDesigner() {
+		loadDiagram();
+	}
+
+	public void commandStackChanged(EventObject event) {
+		super.commandStackChanged(event);
+		firePropertyChange(PROP_DIRTY);
+	}
+
+	private void loadDiagram() {
+		final IModelBuilder builder = getModelBuilder();
+		if (builder == null) {
+			return;
+		}
+		loadingFigure.showLoadingFigure(true);
+		loadingFigure.startListener(getGraphicalViewer());
+		UIJob loadingJob = new UIJob(display, "Setup") {
+			public IStatus runInUIThread(IProgressMonitor monitor) {
+				boolean built = builder.doLoad(ConfigureDesigner.this, monitor);
+				if (built) {
+					setupDiagram(builder.getDiagram());
+				}
+				return Status.OK_STATUS;
+			}
+		};
+		loadingJob.setPriority(Job.SHORT);
+		loadingJob.schedule();
+	}
+
+	protected IModelBuilder getModelBuilder() {
+		if (modelBuilder == null) {
+			modelBuilder = createModelBuilder();
+		}
+		if (modelBuilderListener == null) {
+			modelBuilderListener = new ModelChangeListener() {
+				public void notifyChanged(final Notification event) {
+					dispatchModelEvent(event);
+				}
+			};
+		}
+		if (!modelBuilder.hasListener(modelBuilderListener)) {
+			modelBuilder.addModelListener(modelBuilderListener);
+		}
+		return modelBuilder;
+	}
+
+	private void dispatchModelEvent(final Notification event) {
+		if (event.isTouch() || isCreatingVisuals) {
+			return;
+		}
+		if (display != null && display.getThread() == Thread.currentThread()) {
+			updateVisuals(event);
+		} else if (display != null) {
+			DisplayUtil.asyncExec(display, new Runnable() {
+				public void run() {
+					updateVisuals(event);
+				}
+			});
+		}
+	}
+
+	protected void updateVisuals(Notification event) {
+		if (visualsRender == null || event.isTouch()) {
+			return;
+		}
+		isCreatingVisuals = true;
+		Result result;
+		try {
+			result = getVisualsRender().refreshVisuals(event);
+		} catch (RuntimeException e) {
+			return;
+		} finally {
+			isCreatingVisuals = false;
+		}
+		if (result == null || !result.refreshed) {
+			return;
+		}
+		List<EditPartViewer> viewers = getEditDomain().getViewers();
+		for (EditPartViewer viewer : viewers) {
+			updateViewer(viewer, result.visuals);
+		}
+		isModelChanged = true;
+		firePropertyChange(PROP_DIRTY);
+	}
+
+	protected void updateViewer(EditPartViewer viewer, Object model) {
+		if (viewer == null) {
+			return;
+		}
+		EditPart editPart = (EditPart) viewer.getEditPartRegistry().get(model);
+		if (editPart == null) {
+			// editPart = viewer.getContents();
+		}
+		if (editPart != null) {
+			refresher.refreshInJob(editPart);
+			if (editPart.isSelectable()) {
+				viewer.select(editPart);
+			}
+		}
+	}
+
+	private void setupDiagram(final Object diagram) {
+		if (diagram == null) {
+			return;
+		}
+		this.diagram = diagram;
+		IVisualRenderer vr = getVisualsRender();
+		if (vr == null) {
+			return;
+		}
+		isCreatingVisuals = true;
+		vr.createVisuals();
+		isCreatingVisuals = false;
+
+		// if (display != null && display.getThread() == Thread.currentThread())
+		// {
+		// setupViewers(diagram);
+		// } else if (display != null) {
+		DisplayUtil.asyncExec(display, new Runnable() {
+			public void run() {
+				setupViewers(diagram);
+			}
+		});
+		// }
+
+		loadingFigure.showLoadingFigure(false);
+	}
+
+	protected void setupViewers(Object diagram) {
+		List<EditPartViewer> viewers = getEditDomain().getViewers();
+		for (EditPartViewer editPartViewer : viewers) {
+			editPartViewer.setContents(diagram);
+			RootEditPart rootEditPart = editPartViewer.getRootEditPart();
+			refresher.refresh(rootEditPart, RefreshContext.ALL());
+		}
+	}
+
+	public Object getDiagram() {
+		return diagram;
+	}
+
+	public IVisualRenderer getVisualsRender() {
+		if (visualsRender == null) {
+			visualsRender = createVisualsRender(getFile(), diagram);
+			Assert.isNotNull(visualsRender);
+		}
+		return visualsRender;
+	}
+
+	protected ToolBar createToolBar(Composite parent) {
+		return null;
+	}
+
+	private boolean createSourcePage(Composite parent) {
+		if (sourceEditor == null) {
+			return false;
+		}
+		try {
+			sourceEditor.init(getEditorSite(), getEditorInput());
+			sourceEditor.createPartControl(parent);
+		} catch (PartInitException e) {
+			e.printStackTrace();
+			return false;
+		}
+		return true;
+	}
+
+	public EditDomain getEditDomain() {
+		return (EditDomain) super.getEditDomain();
+	}
+
+	public void doSave(IProgressMonitor monitor) {
+		// save top - down.
+		saveGraphicalEditor(monitor);
+
+		if (sourceEditor != null && sourceEditor.isDirty()) {
+			sourceEditor.doSave(monitor);
+		}
+		firePropertyChange(PROP_DIRTY);
+	}
+
+	protected void saveGraphicalEditor(IProgressMonitor monitor) {
+		isModelChanged = false;
+		getCommandStack().markSaveLocation();
+	}
+
+	public boolean isDirty() {
+		// Model changed
+		if (isModelChanged) {
+			return true;
+		}
+		// CommandStack changed
+		if (super.isDirty()) {
+			return true;
+		}
+		// Source changed
+		if (sourceEditor != null) {
+			return sourceEditor.isDirty();
+		}
+		return super.isDirty();
+	}
+
+	public void dispose() {
+		if (sourceEditor != null) {
+			sourceEditor.dispose();
+		}
+		super.dispose();
+	}
+
+	public Object getAdapter(Class adapter) {
+		if (PalettePage.class.isAssignableFrom(adapter)) {
+			return getPalettePage();
+		} else if (CommandStack.class == adapter) {
+			return getCommandStack();
+		} else if (adapter == IPropertySheetPage.class) {
+			return getPropertySheetPage();
+		} else if (adapter == IContentOutlinePage.class) {
+			return getContentOutlinePage();
+		} else if (adapter == ProblemHandler.class) {
+			return getProblemHandler();
+		} else if (adapter == IProject.class) {
+			return getProject();
+		} else if (adapter == IFile.class) {
+			return getFile();
+		}
+		return super.getAdapter(adapter);
+	}
+
+	public PalettePage getPalettePage() {
+		if (palettePage == null) {
+			palettePage = createPalettePage();
+		}
+		return palettePage;
+	}
+
+	public IPropertySheetPage getPropertySheetPage() {
+		boolean recreate = true;
+		if (propertySheetPage != null) {
+			Control control = propertySheetPage.getControl();
+			recreate = control == null || control.isDisposed();
+		}
+		if (recreate) {
+			propertySheetPage = createPropertySheetPage();
+		}
+		return propertySheetPage;
+	}
+
+	public IContentOutlinePage getContentOutlinePage() {
+		if (contentOutlinePage == null) {
+			contentOutlinePage = createContentOutlinePage();
+		}
+		return contentOutlinePage;
+	}
+
+	public ProblemHandler getProblemHandler() {
+		if (problemHandler == null) {
+			problemHandler = createProblemHandler();
+		}
+		return problemHandler;
+	}
+
+	public IProject getProject() {
+		IFile file = getFile();
+		if (file != null) {
+			return file.getProject();
+		}
+		return null;
+	}
+
+	public IFile getFile() {
+		IEditorInput editorInput = getEditorInput();
+		if (editorInput == null || !(editorInput instanceof IFileEditorInput)) {
+			return null;
+		}
+		return ((IFileEditorInput) editorInput).getFile();
+	}
+
+	protected ProblemHandler createProblemHandler() {
+		// return new ConfigurableProblemHandler(this);
+		return null;
+	}
+
+	protected IContentOutlinePage createContentOutlinePage() {
+		return null;
+	}
+
+	protected IPropertySheetPage createPropertySheetPage() {
+		return null;
+	}
+
+	protected PalettePage createPalettePage() {
+		return new ContributePalettePage(this, getEditDomain());
+	}
+
+	protected abstract IModelBuilder createModelBuilder();
+
+	protected abstract IVisualRenderer createVisualsRender(IFile file,
+			Object diagram);
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/ceditor/ISourcePage.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/ceditor/ISourcePage.java
new file mode 100755
index 0000000..75fe849
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/ceditor/ISourcePage.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.ceditor;
+
+import org.eclipse.ui.IEditorPart;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public interface ISourcePage extends IEditorPart {
+
+	String getPageName();
+
+	boolean isEnabledFor(IEditorPart editorPart);
+
+	void configureSourcePage(IEditorPart editorPart);
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/ceditor/MultiSourceEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/ceditor/MultiSourceEditor.java
new file mode 100755
index 0000000..f7f4b6d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/ceditor/MultiSourceEditor.java
@@ -0,0 +1,119 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.ceditor;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.MultiPageEditorPart;
+import org.eclipse.xwt.tools.ui.designer.core.editor.Designer;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public class MultiSourceEditor extends MultiPageEditorPart {
+
+	private ISourcePage[] sourcePages;
+
+	private IEditorPart primaryEditor;
+
+	public MultiSourceEditor(IEditorPart primaryEditor) {
+		this.primaryEditor = primaryEditor;
+		sourcePages = SourcePageRegistry.getSourcePages(primaryEditor.getSite()
+				.getId());
+	}
+
+	protected void createPages() {
+		if (!testValid()) {
+			return;
+		}
+		for (ISourcePage sourcePage : sourcePages) {
+			if (!sourcePage.isEnabledFor(primaryEditor)) {
+				continue;
+			}
+			createAddPage(sourcePage);
+		}
+
+		Composite container = getContainer();
+		if (container instanceof CTabFolder) {
+			CTabFolder ctf = ((CTabFolder) container);
+			ctf.setTabPosition(SWT.TOP);
+			ctf.setSimple(false);
+		}
+	}
+
+	private void createAddPage(ISourcePage sourcePage) {
+		try {
+			int pageIndex = addPage(sourcePage, getEditorInput());
+			String pageName = sourcePage.getPageName();
+			setPageText(pageIndex, pageName == null ? "" : pageName);
+			sourcePage.configureSourcePage(this);
+		} catch (PartInitException e) {
+			e.printStackTrace();
+		}
+	}
+
+	public void doSave(IProgressMonitor monitor) {
+		IEditorPart activeEditor = getActiveEditor();
+		if (activeEditor != null) {
+			activeEditor.doSave(monitor);
+		}
+	}
+
+	protected void setActivePage(int pageIndex) {
+		if (pageIndex < 0 || pageIndex >= getPageCount()) {
+			return;
+		}
+		super.setActivePage(pageIndex);
+	}
+
+	public void doSaveAs() {
+		IEditorPart activeEditor = getActiveEditor();
+		if (activeEditor != null) {
+			activeEditor.doSaveAs();
+		}
+	}
+
+	public boolean isSaveAsAllowed() {
+		IEditorPart activeEditor = getActiveEditor();
+		if (activeEditor != null) {
+			return activeEditor.isSaveAsAllowed();
+		}
+		return false;
+	}
+
+	public boolean testValid() {
+		if (sourcePages == null) {
+			sourcePages = SourcePageRegistry.getSourcePages(primaryEditor
+					.getSite().getId());
+		}
+		if (sourcePages.length <= 0) {
+			return false;
+		}
+		boolean enabled = false;
+		for (ISourcePage page : sourcePages) {
+			enabled = enabled || page.isEnabledFor(null);
+		}
+		return enabled;
+	}
+
+	public Object getAdapter(Class adapter) {
+		if (Designer.class == adapter) {
+			return primaryEditor;
+		}
+		return super.getAdapter(adapter);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/ceditor/SourcePageRegistry.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/ceditor/SourcePageRegistry.java
new file mode 100755
index 0000000..28221a5
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/ceditor/SourcePageRegistry.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.ceditor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.Platform;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public class SourcePageRegistry {
+
+	private static String EXTENSION_ID = "org.eclipse.xwt.tools.ui.designer.core.sourcePages";
+	private static String TARGET_ID = "targetId";
+	private static String PAGE = "Page";
+	private static String PAGE_CLASS = "class";
+	private static final ISourcePage[] EMPTY = new ISourcePage[0];
+
+	public static ISourcePage[] getSourcePages(String editorId) {
+		if (editorId == null) {
+			return EMPTY;
+		}
+		return loadFromExtensions(editorId);
+	}
+
+	private static ISourcePage[] loadFromExtensions(String editorId) {
+		IConfigurationElement[] configurationElements = Platform
+				.getExtensionRegistry().getConfigurationElementsFor(
+						EXTENSION_ID);
+		List<ISourcePage> pages = new ArrayList<ISourcePage>();
+		for (IConfigurationElement element : configurationElements) {
+			String attribute = element.getAttribute(TARGET_ID);
+			if (!editorId.equals(attribute)) {
+				continue;
+			}
+			IConfigurationElement[] children = element.getChildren(PAGE);
+			for (IConfigurationElement child : children) {
+				try {
+					ISourcePage sourcePage = (ISourcePage) child
+							.createExecutableExtension(PAGE_CLASS);
+					pages.add(sourcePage);
+				} catch (CoreException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+		return pages.toArray(new ISourcePage[pages.size()]);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/component/CustomSashForm.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/component/CustomSashForm.java
new file mode 100755
index 0000000..59fdef5
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/component/CustomSashForm.java
@@ -0,0 +1,942 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.component;
+
+/*
+ *  $RCSfile: CustomSashForm.java,v $
+ *  $Revision: 1.3 $  $Date: 2010/06/18 00:15:25 $ 
+ */
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.draw2d.Cursors;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.events.ControlEvent;
+import org.eclipse.swt.events.ControlListener;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.MouseMoveListener;
+import org.eclipse.swt.events.MouseTrackAdapter;
+import org.eclipse.swt.events.PaintEvent;
+import org.eclipse.swt.events.PaintListener;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Sash;
+
+/**
+ * A SashForm that allows move to/from max controls on sash.
+ * 
+ * It only works with one sash (two children). It doesn't make sense for the arrows when there is more than one sash. Things get confusing for a restore position.
+ * 
+ * Currently only handle top/bottom orientation. Wouldn't take much to handle left/right.
+ * 
+ * @author richkulp
+ */
+public class CustomSashForm extends SashForm {
+
+	public static final String copyright = "(c) Copyright IBM Corporation 2002."; //$NON-NLS-1$
+	/**
+	 * Custom style bits. They set whether max to one side of the other is not permitted. For example, if NO_MAX_UP, then there will be only one arrow. When not maxed, it will point down (and will do a max down), and when maxed down, it will point up (and will do a restore to the previous weight). There won't be a max to the top arrow.
+	 */
+	public static final int NO_MAX_LEFT = 0x1, // Custom style bit for not allow
+			// max left
+			NO_MAX_UP = NO_MAX_LEFT, // Custom style bit for not allow max up
+			NO_MAX_RIGHT = 0x2, // Custom style bit for not allow max right
+			NO_MAX_DOWN = NO_MAX_RIGHT; // Custom style bit for not allow max
+	// down
+
+	private static final int NO_WEIGHT = -1;
+	private static final int NO_ARROW = -1;
+
+	private static class SashInfo {
+		public Sash sash;
+		public boolean enabled; // Whether this sashinfo is enabled (i.e. if
+		// there is more than one, this will be
+		// disabled).
+		public int weight = NO_WEIGHT; // If slammed to an edge this is the
+		// restore weight. -1 means not slammed.
+		// This is the weight in the next form
+		// (i.e. sash[0] == weight[1].
+		public int cursorOver = NO_ARROW; // Which arrow is cursor over,
+		public boolean sashBorderLeft; // Draw sash border left/top
+		public boolean sashBorderRight; // Draw sash border right/bottom
+		public int[][] sashLocs; // There is one entry for each arrow, It is
+
+		// arrowType/arrowDrawn/x/y/height/width of
+		// the arrow area.
+
+		// There may not be a second entry, in which case we have only one
+		// arrow.
+		public SashInfo(Sash sash) {
+			this.sash = sash;
+		}
+	};
+
+	public static interface ICustomSashFormListener {
+		public void dividerMoved(int firstControlWeight, int secondControlWeight);
+	}
+
+	protected SashInfo currentSashInfo = null; // When the sash goes away, its
+	// entry is made null.
+	protected boolean inMouseClick = false; // Because we can't stop drag even
+	// when we are in the arrow area, we
+	// need
+	// to know that mouse down is in process so that when drag is completed, we
+	// know not to recompute our position because a mouse up is about to happen
+	// and we want the correct arrow handled correctly.
+
+	protected boolean sashBorders[]; // Whether cooresponding control needs a
+	// sash border
+
+	protected boolean noMaxUp, noMaxDown;
+	protected List customSashFormListeners = null;
+
+	protected static final int UP_ARROW = 0, UP_MAX_ARROW = 1, DOWN_ARROW = 2, DOWN_MAX_ARROW = 3,
+
+	MAX_ARROWS = 4;
+
+	protected static final int ARROW_TYPE_INDEX = 0, ARROW_DRAWN_INDEX = 1, X_INDEX = 2, Y_INDEX = 3, WIDTH_INDEX = 4, HEIGHT_INDEX = 5;
+
+	/**
+	 * Constructor for CustomSashForm.
+	 * 
+	 * @param parent
+	 * @param style
+	 */
+	public CustomSashForm(Composite parent, int style) {
+		this(parent, style, SWT.NONE);
+	}
+
+	/**
+	 * Constructor taking a custom style too. Or in the Custom style bits defined above (e.g. NO_MAX_RIGHT,...)
+	 */
+	public CustomSashForm(Composite parent, int style, int customStyle) {
+		super(parent, style);
+
+		// Need listener to force a layout
+		this.addListener(SWT.Resize, new Listener() {
+			public void handleEvent(Event e) {
+				layout(true);
+			}
+		});
+
+		noMaxUp = ((customStyle & NO_MAX_UP) != 0);
+		noMaxDown = ((customStyle & NO_MAX_DOWN) != 0);
+
+		if (noMaxUp & noMaxDown)
+			return; // If you can't max up or down, there there is no need for
+		// arrows.
+
+		SASH_WIDTH = 3 + ARROW_HEIGHT;
+
+		arrowColor = new Color(parent.getDisplay(), 99, 101, 156);
+		borderColor = new Color(parent.getDisplay(), 132, 130, 132);
+
+		addDisposeListener(new DisposeListener() {
+			/**
+			 * @see org.eclipse.swt.events.DisposeListener#widgetDisposed(DisposeEvent)
+			 */
+			public void widgetDisposed(DisposeEvent e) {
+				arrowColor.dispose();
+				borderColor.dispose();
+				arrowColor = borderColor = null;
+			}
+
+		});
+	}
+
+	/**
+	 * Call to set to max up
+	 */
+	public void maxUp() {
+		if (noMaxUp)
+			return;
+
+		if (currentSashInfo == null)
+			currentSashInfo = new SashInfo(null);
+		upMaxClicked(currentSashInfo);
+	}
+
+	/**
+	 * Call to set to max left
+	 */
+	public void maxLeft() {
+		maxUp();
+	}
+
+	/**
+	 * Call to set to max down
+	 */
+	public void maxDown() {
+		if (noMaxDown)
+			return;
+
+		if (currentSashInfo == null)
+			currentSashInfo = new SashInfo(null);
+
+		downMaxClicked(currentSashInfo);
+	}
+
+	/**
+	 * Call to set to max left
+	 */
+	public void maxRight() {
+		maxDown();
+	}
+
+	/**
+	 * Set the need sash borders for the controls.
+	 */
+	public void setSashBorders(boolean[] sashBorders) {
+		int[] weights = getWeights(); // KLUDGE This is a kludge just to see how
+		// many controls we have.
+		if (weights.length != 2 || (sashBorders != null && sashBorders.length != 2)) {
+			SWT.error(SWT.ERROR_INVALID_ARGUMENT);
+		}
+		this.sashBorders = sashBorders;
+	}
+
+	/**
+	 * @see org.eclipse.swt.widgets.Composite#layout(boolean)
+	 */
+	public void layout(boolean changed) {
+		super.layout(changed);
+
+		if (noMaxUp && noMaxDown)
+			return; // No arrows to handle in this case.
+
+		if (getMaximizedControl() != null)
+			return; // We have a maximized control, so we don't need to worry
+		// about the sash.
+
+		// Let's get the list of all sashes the sash form now has. If there is
+		// more than one then just disable the sashinfo.
+		// If there is no current sash, and there is only one sash, then create
+		// the sashinfo for it.
+		Control[] children = getChildren();
+		Sash newSash = null;
+		for (int i = 0; i < children.length; i++) {
+			if (children[i] instanceof Sash)
+				if (newSash == null)
+					newSash = (Sash) children[i];
+				else {
+					// We have more than one sash, so need to disable current
+					// sash, if we have one.
+					if (currentSashInfo != null)
+						currentSashInfo.enabled = false;
+					return; // Don't go on.
+				}
+		}
+
+		if (newSash == null)
+			return; // We have no sashes at all.
+
+		// Now we need to see if this is a new sash.
+		if (currentSashInfo == null || currentSashInfo.sash == null) {
+			if (currentSashInfo == null)
+				currentSashInfo = new SashInfo(newSash);
+			else
+				currentSashInfo.sash = newSash;
+			newSash.addPaintListener(new PaintListener() {
+				/**
+				 * @see org.eclipse.swt.events.PaintListener#paintControl(PaintEvent)
+				 */
+				public void paintControl(PaintEvent e) {
+					// Need to find the index of the sash we're interested in.
+
+					GC gc = e.gc;
+					Color oldFg = gc.getForeground();
+					Color oldBg = gc.getBackground();
+
+					drawArrow(gc, currentSashInfo.sashLocs[0], currentSashInfo.cursorOver == 0); // Draw first
+					// arrow
+					if (currentSashInfo.sashLocs.length > 1)
+						drawArrow(gc, currentSashInfo.sashLocs[1], currentSashInfo.cursorOver == 1); // Draw second
+					// arrow
+
+					if (currentSashInfo.sashBorderLeft)
+						drawSashBorder(gc, currentSashInfo.sash, true);
+					if (currentSashInfo.sashBorderRight)
+						drawSashBorder(gc, currentSashInfo.sash, false);
+
+					gc.setForeground(oldFg);
+					gc.setBackground(oldBg);
+				}
+
+			});
+
+			newSash.addControlListener(new ControlListener() {
+				/**
+				 * @see org.eclipse.swt.events.ControlAdapter#controlMoved(ControlEvent)
+				 */
+				public void controlMoved(ControlEvent e) {
+					recomputeSashInfo();
+				}
+
+				/**
+				 * @see org.eclipse.swt.events.ControlAdapter#controlResized(ControlEvent)
+				 */
+				public void controlResized(ControlEvent e) {
+					recomputeSashInfo();
+				}
+
+			});
+
+			newSash.addDisposeListener(new DisposeListener() {
+				/**
+				 * @see org.eclipse.swt.events.DisposeListener#widgetDisposed(DisposeEvent)
+				 */
+				public void widgetDisposed(DisposeEvent e) {
+					// Need to clear out the widget from current.
+					currentSashInfo = null;
+				}
+			});
+
+			// This is a kludge because we can't override the set cursor hit
+			// test.
+			newSash.addMouseMoveListener(new MouseMoveListener() {
+				/**
+				 * @see org.eclipse.swt.events.MouseMoveListener#mouseMove(MouseEvent)
+				 */
+				public void mouseMove(MouseEvent e) {
+					// See if within one of the arrows.
+					int x = e.x;
+					int y = e.y;
+					for (int i = 0; i < currentSashInfo.sashLocs.length; i++) {
+						int[] locs = currentSashInfo.sashLocs[i];
+						boolean vertical = getOrientation() == SWT.VERTICAL;
+						int loc = vertical ? x : y;
+						int locIndex = vertical ? X_INDEX : Y_INDEX;
+						int sizeIndex = vertical ? WIDTH_INDEX : HEIGHT_INDEX;
+						if (locs[locIndex] <= loc && loc <= locs[locIndex] + locs[sizeIndex]) {
+							if (currentSashInfo.cursorOver == NO_ARROW) {
+								currentSashInfo.sash.setCursor(Cursors.ARROW);
+							}
+							if (currentSashInfo.cursorOver != i) {
+								currentSashInfo.cursorOver = i;
+								currentSashInfo.sash.redraw();
+								switch (locs[ARROW_TYPE_INDEX]) {
+								case UP_ARROW:
+								case DOWN_ARROW:
+									currentSashInfo.sash.setToolTipText("Restore Previous Location");
+									break;
+								case UP_MAX_ARROW:
+								case DOWN_MAX_ARROW:
+									currentSashInfo.sash.setToolTipText("Maximize Pane");
+									break;
+								}
+							}
+							return;
+						}
+					}
+					if (currentSashInfo.cursorOver != NO_ARROW) {
+						currentSashInfo.sash.setCursor(null);
+						currentSashInfo.cursorOver = NO_ARROW;
+						currentSashInfo.sash.redraw();
+						currentSashInfo.sash.setToolTipText(null);
+					}
+				}
+
+			});
+
+			// Need to know when we leave so that we can clear the cursor
+			// feedback if set.
+			newSash.addMouseTrackListener(new MouseTrackAdapter() {
+				/**
+				 * @see org.eclipse.swt.events.MouseTrackAdapter#mouseExit(MouseEvent)
+				 */
+				public void mouseExit(MouseEvent e) {
+					if (currentSashInfo.cursorOver != NO_ARROW) {
+						// Undo the cursor.
+						currentSashInfo.sash.setCursor(null);
+						currentSashInfo.cursorOver = NO_ARROW;
+						currentSashInfo.sash.redraw();
+						currentSashInfo.sash.setToolTipText(null);
+					}
+				}
+			});
+
+			// Want to handle mouse down as a selection.
+			newSash.addMouseListener(new MouseAdapter() {
+				/**
+				 * @see org.eclipse.swt.events.MouseAdapter#mouseDown(MouseEvent)
+				 */
+				public void mouseDown(MouseEvent e) {
+					inMouseClick = true;
+					// If we're within a button, then redraw to wipe out stipple
+					// and get button push effect.
+					int x = e.x;
+					int y = e.y;
+					for (int i = 0; i < currentSashInfo.sashLocs.length; i++) {
+						int[] locs = currentSashInfo.sashLocs[i];
+						boolean vertical = getOrientation() == SWT.VERTICAL;
+						int loc = vertical ? x : y;
+						int locIndex = vertical ? X_INDEX : Y_INDEX;
+						int sizeIndex = vertical ? WIDTH_INDEX : HEIGHT_INDEX;
+						if (locs[locIndex] <= loc && loc <= locs[locIndex] + locs[sizeIndex]) {
+							currentSashInfo.sash.redraw();
+							break;
+						}
+					}
+				}
+
+				/**
+				 * @see org.eclipse.swt.events.MouseListener#mouseDown(MouseEvent)
+				 */
+				public void mouseUp(MouseEvent e) {
+					// See if within one of the arrows.
+					inMouseClick = false; // No longer in down click
+					int x = e.x;
+					int y = e.y;
+					for (int i = 0; i < currentSashInfo.sashLocs.length; i++) {
+						int[] locs = currentSashInfo.sashLocs[i];
+						boolean vertical = getOrientation() == SWT.VERTICAL;
+						int loc = vertical ? x : y;
+						int locIndex = vertical ? X_INDEX : Y_INDEX;
+						int sizeIndex = vertical ? WIDTH_INDEX : HEIGHT_INDEX;
+						if (locs[locIndex] <= loc && loc <= locs[locIndex] + locs[sizeIndex]) {
+							// We found it.
+							switch (locs[ARROW_TYPE_INDEX]) {
+							case UP_ARROW:
+								upClicked(currentSashInfo);
+								break;
+							case UP_MAX_ARROW:
+								upMaxClicked(currentSashInfo);
+								break;
+							case DOWN_ARROW:
+								downClicked(currentSashInfo);
+								break;
+							case DOWN_MAX_ARROW:
+								downMaxClicked(currentSashInfo);
+								break;
+							}
+							break;
+						}
+					}
+
+					currentSashInfo.sash.redraw(); // Make sure stipple goes
+					// away from the mouse up if
+					// not over an arrow button.
+					fireDividerMoved();
+				}
+
+			});
+			recomputeSashInfo(); // Get initial setting
+		}
+
+	}
+
+	protected void recomputeSashInfo() {
+		if (inMouseClick && currentSashInfo.cursorOver != NO_WEIGHT)
+			return; // Don't process because we are in the down mouse button on
+		// an arrow.
+
+		// We need to refigure size for the sash arrows.
+		int[] addArrows = null;
+		int[] drawArrows = null;
+		int[] weights = getWeights(); // This should be two entries only. We
+		// shouldn't of gotton here if there
+		// were more than two.
+		if (noMaxUp) {
+			addArrows = new int[1];
+			drawArrows = new int[1];
+			if (weights[1] == 0) {
+				// Slammed to the bottom
+				addArrows[0] = UP_ARROW;
+				drawArrows[0] = UP_ARROW;
+				currentSashInfo.sashBorderLeft = sashBorders != null ? sashBorders[0] : false;
+				currentSashInfo.sashBorderRight = false;
+			} else {
+				// Not slammed
+				addArrows[0] = DOWN_MAX_ARROW;
+				drawArrows[0] = DOWN_ARROW;
+				currentSashInfo.weight = NO_WEIGHT; // Since we are in the
+				// middle, there is no
+				// weight. We've could of
+				// been dragged here.
+				currentSashInfo.sashBorderLeft = sashBorders != null ? sashBorders[0] : false;
+				currentSashInfo.sashBorderRight = sashBorders != null ? sashBorders[1] : false;
+			}
+		} else if (noMaxDown) {
+			addArrows = new int[1];
+			drawArrows = new int[1];
+			if (weights[0] == 0) {
+				// Slammed to the top
+				addArrows[0] = DOWN_ARROW;
+				drawArrows[0] = DOWN_ARROW;
+				currentSashInfo.sashBorderLeft = false;
+				currentSashInfo.sashBorderRight = sashBorders != null ? sashBorders[1] : false;
+			} else {
+				// Not slammed
+				addArrows[0] = UP_MAX_ARROW;
+				drawArrows[0] = UP_ARROW;
+				currentSashInfo.weight = NO_WEIGHT; // Since we are in the
+				// middle, there is no
+				// weight. We've could of
+				// been dragged here.
+				currentSashInfo.sashBorderLeft = sashBorders != null ? sashBorders[0] : false;
+				currentSashInfo.sashBorderRight = sashBorders != null ? sashBorders[1] : false;
+			}
+		} else {
+			addArrows = new int[2];
+			drawArrows = new int[2];
+			// TODO: SashForm as changed the folllwing is a temporary kludge
+			Rectangle sashBounds = currentSashInfo.sash.getBounds();
+			Rectangle clientArea = getClientArea();
+			final int DRAG_MINIMUM = 20; // TODO: kludge see
+			// SashForm.DRAG_MINIMUM
+			if (weights[0] == 0 || (currentSashInfo.weight != NO_WEIGHT && sashBounds.y <= DRAG_MINIMUM)) {
+				// Slammed to the top.
+				addArrows[0] = DOWN_MAX_ARROW;
+				drawArrows[0] = DOWN_MAX_ARROW;
+				addArrows[1] = DOWN_ARROW;
+				drawArrows[1] = DOWN_ARROW;
+				currentSashInfo.sashBorderLeft = false;
+				currentSashInfo.sashBorderRight = sashBorders != null ? sashBorders[1] : false;
+			} else if (weights[1] == 0 || (currentSashInfo.weight != NO_WEIGHT && sashBounds.y + sashBounds.height >= clientArea.height - DRAG_MINIMUM)) {
+				// Slammed to the bottom
+				addArrows[0] = UP_ARROW;
+				drawArrows[0] = UP_ARROW;
+				addArrows[1] = UP_MAX_ARROW;
+				drawArrows[1] = UP_MAX_ARROW;
+				currentSashInfo.sashBorderLeft = sashBorders != null ? sashBorders[0] : false;
+				currentSashInfo.sashBorderRight = false;
+			} else {
+				// Not slammed
+				addArrows[0] = UP_MAX_ARROW;
+				drawArrows[0] = UP_ARROW;
+				addArrows[1] = DOWN_MAX_ARROW;
+				drawArrows[1] = DOWN_ARROW;
+				currentSashInfo.weight = NO_WEIGHT; // Since we are in the
+				// middle, there is no
+				// weight. We've could of
+				// been dragged here.
+				currentSashInfo.sashBorderLeft = sashBorders != null ? sashBorders[0] : false;
+				currentSashInfo.sashBorderRight = sashBorders != null ? sashBorders[1] : false;
+			}
+		}
+		getNewSashArray(currentSashInfo, addArrows, drawArrows);
+
+		currentSashInfo.sash.redraw(); // Need to schedule a redraw because it
+		// has already drawn the old ones during
+		// the set bounds in super layout.
+	}
+
+	protected void upClicked(SashInfo sashinfo) {
+		// This means restore just the sash below weight and reduce the above
+		// weight by the right amount.
+		int[] weights = getWeights();
+
+		weights[0] = 1000 - sashinfo.weight; // Assume weights are always in
+		// units of 1000.
+		weights[1] = sashinfo.weight;
+		sashinfo.weight = NO_WEIGHT;
+
+		setWeights(weights);
+		fireDividerMoved();
+	}
+
+	protected void upMaxClicked(SashInfo sashinfo) {
+		int[] weights = getWeights();
+
+		// Up max, so save the current weight of 1 into the sash info, and move
+		// to the top.
+		if (currentSashInfo.weight == NO_WEIGHT)
+			currentSashInfo.weight = weights[1]; // Not currently maxed, save
+		// position.
+
+		weights[1] = 1000;
+		weights[0] = 0;
+
+		// If the upper panel has focus, flip focus to the lower panel because
+		// the upper panel is now hidden.
+		Control[] children = getChildren();
+		boolean upperFocus = isFocusAncestorA(children[0]);
+		setWeights(weights);
+		if (upperFocus)
+			children[1].setFocus();
+		fireDividerMoved();
+	}
+
+	protected void downClicked(SashInfo sashinfo) {
+		// This means restore just the sash below weight and increase the above
+		// weight by that amount.
+		int[] weights = getWeights();
+
+		weights[0] = 1000 - sashinfo.weight; // Assume weights are always in
+		// units of 1000.
+		weights[1] = sashinfo.weight;
+		sashinfo.weight = NO_WEIGHT;
+
+		setWeights(weights);
+		fireDividerMoved();
+	}
+
+	protected void downMaxClicked(SashInfo sashinfo) {
+		int[] weights = getWeights();
+
+		// Down max, so save the current weight of 1 into the sash info, and
+		// move to the bottom.
+		if (currentSashInfo.weight == NO_WEIGHT)
+			currentSashInfo.weight = weights[1]; // Not currently maxed, save
+		// current weight.
+		weights[0] = 1000;
+		weights[1] = 0;
+
+		// If the lower panel has focus, flip focus to the upper panel because
+		// the lower panel is now hidden.
+		Control[] children = getChildren();
+		boolean lowerFocus = isFocusAncestorA(children[1]);
+		setWeights(weights);
+		if (lowerFocus)
+			children[0].setFocus();
+		fireDividerMoved();
+	}
+
+	/*
+	 * This determines if the control or one of its children has the focus. It was hidden by SWT, but it is really useful.
+	 */
+	protected boolean isFocusAncestorA(Control control) {
+		Display display = getDisplay();
+		Control focusControl = display.getFocusControl();
+		while (focusControl != null && focusControl != control) {
+			focusControl = focusControl.getParent();
+		}
+		return control == focusControl;
+	}
+
+	protected void getNewSashArray(SashInfo sashInfo, int[] addArrowTypes, int[] drawArrowTypes) {
+
+		int[][] thisSash = sashInfo.sashLocs;
+		if (thisSash == null)
+			thisSash = sashInfo.sashLocs = new int[addArrowTypes.length][];
+
+		int aSize = ARROW_SIZE; // Width of arrow
+		int tSize = aSize + 2 * ARROW_MARGIN; // Total Width (arrow + margin)
+		int neededSize = tSize * addArrowTypes.length;
+
+		boolean vertical = getOrientation() == SWT.VERTICAL;
+		Point s = sashInfo.sash.getSize();
+		int start = 0;
+		int x = 0;
+		int y = 0;
+		int width = 0;
+		int height = 0;
+		if (vertical) {
+			start = (s.x - neededSize) / 2;
+			x = start;
+			y = (s.y - ARROW_HEIGHT) / 2; // Center vertically, no margin
+			// required.
+			width = tSize;
+			height = aSize;
+		} else {
+			start = (s.y - neededSize) / 2;
+			y = start;
+			x = (s.x - ARROW_HEIGHT) / 2; // Center horizontally, no margin
+			// required.
+			width = aSize;
+			height = tSize;
+		}
+		for (int j = 0; j < addArrowTypes.length; j++) {
+			if (thisSash[j] == null)
+				thisSash[j] = new int[] { addArrowTypes[j], drawArrowTypes[j], x, y, width, height };
+			else {
+				// Reuse the array
+				thisSash[j][ARROW_TYPE_INDEX] = addArrowTypes[j];
+				thisSash[j][ARROW_DRAWN_INDEX] = drawArrowTypes[j];
+				thisSash[j][X_INDEX] = x;
+				thisSash[j][Y_INDEX] = y;
+				thisSash[j][WIDTH_INDEX] = width;
+				thisSash[j][HEIGHT_INDEX] = height;
+			}
+			if (vertical)
+				x += tSize;
+			else
+				y += tSize;
+		}
+	}
+
+	protected void drawSashBorder(GC gc, Sash sash, boolean leftBorder) {
+		gc.setForeground(borderColor);
+		if (getOrientation() == SWT.VERTICAL) {
+			Point s = sash.getSize();
+			if (leftBorder)
+				gc.drawLine(0, 0, s.x - 1, 0);
+			else
+				gc.drawLine(0, s.y - 1, s.x - 1, s.y - 1);
+		} else {
+			Point s = sash.getSize();
+			if (leftBorder)
+				gc.drawLine(0, 0, 0, s.y - 1);
+			else
+				gc.drawLine(s.x - 1, 0, s.x - 1, s.y - 1);
+		}
+	}
+
+	protected void drawArrow(GC gc, int[] sashLoc, boolean selected) {
+		int indent = 0;
+		if (selected) {
+			if (!inMouseClick) {
+				// Draw the selection box.
+				Color highlightShadow = getDisplay().getSystemColor(SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW);
+				Color normalShadow = getDisplay().getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);
+				gc.setForeground(highlightShadow);
+				gc.drawLine(sashLoc[X_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX], sashLoc[X_INDEX], sashLoc[Y_INDEX]);
+				gc.drawLine(sashLoc[X_INDEX], sashLoc[Y_INDEX], sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX]);
+
+				gc.setForeground(normalShadow);
+				gc.drawLine(sashLoc[X_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX], sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX]);
+				gc.drawLine(sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX], sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX]);
+			} else {
+				// Draw pushed selection box.
+				indent = 1;
+				Color highlightShadow = getDisplay().getSystemColor(SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW);
+				Color normalShadow = getDisplay().getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);
+				gc.setForeground(normalShadow);
+				gc.drawLine(sashLoc[X_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX], sashLoc[X_INDEX], sashLoc[Y_INDEX]);
+				gc.drawLine(sashLoc[X_INDEX], sashLoc[Y_INDEX], sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX]);
+
+				gc.setForeground(highlightShadow);
+				gc.drawLine(sashLoc[X_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX], sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX]);
+				gc.drawLine(sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX], sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX]);
+			}
+		}
+		if (getOrientation() == SWT.VERTICAL) {
+			switch (sashLoc[ARROW_DRAWN_INDEX]) {
+			case UP_ARROW:
+				drawUpArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
+				break;
+			case DOWN_ARROW:
+				drawDownArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
+				break;
+			case UP_MAX_ARROW:
+				drawUpMaxArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
+				break;
+			case DOWN_MAX_ARROW:
+				drawDownMaxArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
+				break;
+			}
+		} else {
+			switch (sashLoc[ARROW_DRAWN_INDEX]) {
+			case UP_ARROW:
+				drawLeftArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
+				break;
+			case DOWN_ARROW:
+				drawRightArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
+				break;
+			case UP_MAX_ARROW:
+				drawLeftMaxArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
+				break;
+			case DOWN_MAX_ARROW:
+				drawRightMaxArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
+				break;
+			}
+		}
+	}
+
+	// These are for the up/down arrow. Just swap them for left/right arrow.
+	protected static final int ARROW_SIZE = 8, ARROW_HEIGHT = 8, ARROW_MARGIN = 3; // Margin on each side of arrow
+
+	protected Color arrowColor, borderColor;
+
+	// Draw at the given x/y (upper left corner of arrow area).
+	protected void drawUpArrow(GC gc, int x, int y) {
+		gc.setForeground(arrowColor);
+
+		x += ARROW_MARGIN;
+		gc.drawLine(x + 4, y + 2, x + 7, y + 5);
+		gc.drawLine(x + 3, y + 2, x + 3, y + 2);
+
+		gc.drawLine(x + 2, y + 3, x + 4, y + 3);
+		gc.drawLine(x + 1, y + 4, x + 5, y + 4);
+		gc.drawLine(x, y + 5, x + 6, y + 5);
+	}
+
+	// Draw at the given x/y (upper left corner of arrow area).
+	protected void drawUpMaxArrow(GC gc, int x, int y) {
+		gc.setForeground(arrowColor);
+
+		x += ARROW_MARGIN;
+		gc.drawLine(x, y, x + 7, y);
+		gc.drawLine(x, y + 1, x + 7, y + 1);
+
+		gc.drawLine(x + 4, y + 2, x + 7, y + 5);
+		gc.drawLine(x + 3, y + 2, x + 3, y + 2);
+
+		gc.drawLine(x + 2, y + 3, x + 4, y + 3);
+		gc.drawLine(x + 1, y + 4, x + 5, y + 4);
+		gc.drawLine(x, y + 5, x + 6, y + 5);
+	}
+
+	// Draw at the given x/y (upper left corner of arrow area).
+	protected void drawDownArrow(GC gc, int x, int y) {
+		gc.setForeground(arrowColor);
+
+		x += ARROW_MARGIN;
+		gc.drawLine(x, y + 2, x + 3, y + 5);
+		gc.drawLine(x + 4, y + 5, x + 4, y + 5);
+
+		gc.drawLine(x + 3, y + 4, x + 5, y + 4);
+		gc.drawLine(x + 1, y + 3, x + 6, y + 3);
+		gc.drawLine(x + 1, y + 2, x + 7, y + 2);
+	}
+
+	// Draw at the given x/y (upper left corner of arrow area).
+	protected void drawDownMaxArrow(GC gc, int x, int y) {
+		gc.setForeground(arrowColor);
+
+		x += ARROW_MARGIN;
+		gc.drawLine(x, y + 6, x + 7, y + 6);
+		gc.drawLine(x, y + 7, x + 7, y + 7);
+
+		gc.drawLine(x, y + 2, x + 3, y + 5);
+		gc.drawLine(x + 4, y + 5, x + 4, y + 5);
+
+		gc.drawLine(x + 3, y + 4, x + 5, y + 4);
+		gc.drawLine(x + 1, y + 3, x + 6, y + 3);
+		gc.drawLine(x + 1, y + 2, x + 7, y + 2);
+	}
+
+	// Draw at the given x/y (upper left corner of arrow area).
+	protected void drawLeftArrow(GC gc, int x, int y) {
+		gc.setForeground(arrowColor);
+
+		y += ARROW_MARGIN;
+		gc.drawLine(x + 2, y + 4, x + 5, y + 7);
+		gc.drawLine(x + 2, y + 3, x + 2, y + 3);
+
+		gc.drawLine(x + 3, y + 2, x + 3, y + 4);
+		gc.drawLine(x + 4, y + 1, x + 4, y + 5);
+		gc.drawLine(x + 5, y, x + 5, y + 6);
+	}
+
+	// Draw at the given x/y (upper left corner of arrow area).
+	protected void drawLeftMaxArrow(GC gc, int x, int y) {
+		gc.setForeground(arrowColor);
+
+		y += ARROW_MARGIN;
+		gc.drawLine(x, y, x, y + 7);
+		gc.drawLine(x + 1, y, x + 1, y + 7);
+
+		gc.drawLine(x + 2, y + 4, x + 5, y + 7);
+		gc.drawLine(x + 2, y + 3, x + 2, y + 3);
+
+		gc.drawLine(x + 3, y + 2, x + 3, y + 4);
+		gc.drawLine(x + 4, y + 1, x + 4, y + 5);
+		gc.drawLine(x + 5, y, x + 5, y + 6);
+	}
+
+	// Draw at the given x/y (upper left corner of arrow area).
+	protected void drawRightArrow(GC gc, int x, int y) {
+		gc.setForeground(arrowColor);
+
+		y += ARROW_MARGIN;
+		gc.drawLine(x + 2, y, x + 5, y + 3);
+		gc.drawLine(x + 5, y + 4, x + 5, y + 4);
+
+		gc.drawLine(x + 4, y + 3, x + 4, y + 5);
+		gc.drawLine(x + 3, y + 1, x + 3, y + 6);
+		gc.drawLine(x + 2, y + 1, x + 2, y + 7);
+	}
+
+	// Draw at the given x/y (upper left corner of arrow area).
+	protected void drawRightMaxArrow(GC gc, int x, int y) {
+		gc.setForeground(arrowColor);
+
+		y += ARROW_MARGIN;
+		gc.drawLine(x + 6, y, x + 6, y + 7);
+		gc.drawLine(x + 7, y, x + 7, y + 7);
+
+		gc.drawLine(x + 2, y, x + 5, y + 3);
+		gc.drawLine(x + 5, y + 4, x + 5, y + 4);
+
+		gc.drawLine(x + 4, y + 3, x + 4, y + 5);
+		gc.drawLine(x + 3, y + 1, x + 3, y + 6);
+		gc.drawLine(x + 2, y + 1, x + 2, y + 7);
+	}
+
+	public int getSavedWeight() {
+		if (currentSashInfo != null)
+			return currentSashInfo.weight;
+		else
+			return -1;
+	}
+
+	protected Sash getSash() {
+		Control[] kids = getChildren();
+		for (int i = 0; i < kids.length; i++) {
+			if (kids[i] instanceof Sash)
+				return (Sash) kids[i];
+		}
+		return null;
+	}
+
+	public void setCurrentSavedWeight(int weight) {
+		if (weight >= 0 && currentSashInfo != null) {
+			recomputeSashInfo();
+			currentSashInfo.weight = weight;
+		}
+	}
+
+	/**
+	 * Adds a custom sashform listener. This listener will be removed when this control is disposed.
+	 * 
+	 * @param listener
+	 * 
+	 * @since 1.2.0
+	 */
+	public void addCustomSashFormListener(ICustomSashFormListener listener) {
+		if (customSashFormListeners == null)
+			customSashFormListeners = new ArrayList();
+		customSashFormListeners.add(listener);
+	}
+
+	/**
+	 * Removes the custom sashform listener.
+	 * 
+	 * @param listener
+	 * 
+	 * @since 1.2.0
+	 */
+	public void removeCustomSashFormListener(ICustomSashFormListener listener) {
+		if (customSashFormListeners != null) {
+			customSashFormListeners.remove(listener);
+		}
+	}
+
+	protected void fireDividerMoved() {
+		if (customSashFormListeners != null && customSashFormListeners.size() > 0) {
+			int[] weights = getWeights();
+			if (weights != null && weights.length == 2) {
+				int firstControlWeight = weights[0];
+				int secondControlWeight = weights[1];
+				for (Iterator listenerItr = customSashFormListeners.iterator(); listenerItr.hasNext();) {
+					ICustomSashFormListener listener = (ICustomSashFormListener) listenerItr.next();
+					listener.dividerMoved(firstControlWeight, secondControlWeight);
+				}
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/dialogs/IntArrayDialog.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/dialogs/IntArrayDialog.java
new file mode 100755
index 0000000..5dd9b85
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/dialogs/IntArrayDialog.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.dialogs;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Spinner;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class IntArrayDialog extends Dialog {
+
+	private int[] initValue;
+	private String[] titles;
+	private int[] result;
+
+	public IntArrayDialog(Shell parent, int[] initValue, String[] titles) {
+		super(parent);
+		this.initValue = initValue;
+		this.titles = titles;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	protected Control createDialogArea(Composite parent) {
+		Composite composite = (Composite) super.createDialogArea(parent);
+		composite.setLayout(new GridLayout(3, false));
+		result = new int[titles.length];
+		if (initValue != null) {
+			System.arraycopy(initValue, 0, result, 0, Math.min(initValue.length, titles.length));
+		}
+		for (int i = 0; i < titles.length; i++) {
+			createItem(composite, titles[i], i);
+		}
+		return composite;
+	}
+
+	protected Spinner createItem(Composite parent, String title, final int index) {
+		Label label = new Label(parent, SWT.NONE);
+		label.setText(title);
+
+		final Spinner spinner = new Spinner(parent, SWT.BORDER);
+		spinner.setMaximum(9999);// set max before set selection.
+		spinner.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		spinner.setSelection(result[index]);
+		spinner.addListener(SWT.Selection, new Listener() {
+			public void handleEvent(Event event) {
+				result[index] = spinner.getSelection();
+			}
+		});
+
+		label = new Label(parent, SWT.NONE);
+		label.setText("pixels");
+		return spinner;
+	}
+
+	public int[] getResult() {
+		return result;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/AbstractRenderer.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/AbstractRenderer.java
new file mode 100755
index 0000000..7a83f30
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/AbstractRenderer.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public abstract class AbstractRenderer implements IVisualRenderer {
+
+	private IFile file;
+	private EObject document;
+
+	public AbstractRenderer(IFile file, EObject document) {
+		this.file = file;
+		this.document = document;
+	}
+
+	public IFile getFile() {
+		return file;
+	}
+
+	public EObject getDocumentRoot() {
+		return document;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/ActionGroup.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/ActionGroup.java
new file mode 100755
index 0000000..442256f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/ActionGroup.java
@@ -0,0 +1,163 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.gef.ui.actions.ActionRegistry;
+import org.eclipse.gef.ui.actions.DeleteAction;
+import org.eclipse.gef.ui.actions.RedoAction;
+import org.eclipse.gef.ui.actions.SelectAllAction;
+import org.eclipse.gef.ui.actions.UndoAction;
+import org.eclipse.gef.ui.actions.UpdateAction;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.swt.SWT;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.ISelectionService;
+import org.eclipse.ui.IWorkbenchPart;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ActionGroup {
+
+	public static final int SELECTION_GRP = 0;
+	public static final int PROPERTY_GRP = 1;
+	public static final int STACK_GRP = 2;
+
+	private IEditorPart editor;
+	private ActionRegistry actionRegistry;
+	private List<String> selectionActions = new ArrayList<String>();
+	private List<String> stackActions = new ArrayList<String>();
+	private List<String> propertyActions = new ArrayList<String>();
+
+	public ActionGroup(IEditorPart editor) {
+		this.editor = editor;
+	}
+
+	/**
+	 * @return the actionRegistry
+	 */
+	public ActionRegistry getActionRegistry() {
+		if (actionRegistry == null) {
+			actionRegistry = (ActionRegistry) editor.getAdapter(ActionRegistry.class);
+		}
+		return actionRegistry;
+	}
+
+	public void createActions() {
+		IAction action;
+
+		action = new UndoAction(editor);
+		action.setText("&Undo \tCTRL+Z");
+		getActionRegistry().registerAction(action);
+		getStackActions().add(action.getId());
+
+		action = new RedoAction(editor);
+		action.setText("&Redo \tCTRL+Y");
+		getActionRegistry().registerAction(action);
+		getStackActions().add(action.getId());
+
+		action = new SelectAllAction(editor);
+		getActionRegistry().registerAction(action);
+
+		DeleteAction deleteAction = new DeleteAction((IWorkbenchPart) editor);
+		deleteAction.setAccelerator(Integer.valueOf(SWT.DEL));
+		getActionRegistry().registerAction(deleteAction);
+		getSelectionActions().add(deleteAction.getId());
+	}
+
+	/**
+	 * Returns the list of <em>IDs</em> of Actions that are dependant on changes in the workbench's {@link ISelectionService}. The associated Actions can be found in the action registry. Such actions should implement the {@link UpdateAction} interface so that they can be updated in response to selection changes.
+	 * 
+	 * @see #updateActions(List)
+	 * @return the list of selection-dependant action IDs
+	 */
+	protected List<String> getSelectionActions() {
+		return selectionActions;
+	}
+
+	/**
+	 * Returns the list of {@link IAction IActions} dependant on property changes in the Editor. These actions should implement the {@link UpdateAction} interface so that they can be updated in response to property changes. An example is the "Save" action.
+	 * 
+	 * @return the list of property-dependant actions
+	 */
+	protected List<String> getPropertyActions() {
+		return propertyActions;
+	}
+
+	/**
+	 * Returns the list of <em>IDs</em> of Actions that are dependant on the CommmandStack's state. The associated Actions can be found in the action registry. These actions should implement the {@link UpdateAction} interface so that they can be updated in response to command stack changes. An example is the "undo" action.
+	 * 
+	 * @return the list of stack-dependant action IDs
+	 */
+	protected List<String> getStackActions() {
+		return stackActions;
+	}
+
+	public void updateActions(int gourp) {
+		switch (gourp) {
+		case SELECTION_GRP:
+			updateActions(selectionActions);
+			break;
+		case PROPERTY_GRP:
+			updateActions(propertyActions);
+			break;
+		case STACK_GRP:
+			updateActions(stackActions);
+			break;
+		}
+	}
+
+	/**
+	 * A convenience method for updating a set of actions defined by the given List of action IDs. The actions are found by looking up the ID in the {@link #getActionRegistry() action registry}. If the corresponding action is an {@link UpdateAction}, it will have its <code>update()</code> method called.
+	 * 
+	 * @param actionIds
+	 *            the list of IDs to update
+	 */
+	protected void updateActions(List<String> actionIds) {
+		ActionRegistry registry = getActionRegistry();
+		for (String actionId : actionIds) {
+			IAction action = registry.getAction(actionId);
+			if (action instanceof UpdateAction) {
+				((UpdateAction) action).update();
+				if (action instanceof RedoAction) {
+					RedoAction redoAction = (RedoAction) action;
+					String text = redoAction.getText();
+					if (!text.endsWith("\tCtrl+Y")) {
+						if (text.endsWith("Ctrl+Y")) {
+							text = text.substring(0, text.length() - 6);
+						}
+						redoAction.setText(text + "\tCtrl+Y");					
+					}
+				}
+				else if (action instanceof UndoAction) {
+					UndoAction undoAction = (UndoAction) action;
+					String text = undoAction.getText();
+					if (!text.endsWith("\tCtrl+Z")) {
+						if (text.endsWith("Ctrl+Z")) {
+							text = text.substring(0, text.length() - 6);
+						}
+						undoAction.setText(text + "\tCtrl+Z");					
+					}
+				}
+			}
+		}
+	}
+
+	public Action getAction(String actionId) {
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/Designer.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/Designer.java
new file mode 100755
index 0000000..f787cda
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/Designer.java
@@ -0,0 +1,1100 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor;
+
+import java.lang.reflect.Field;
+import java.util.EventObject;
+import java.util.Iterator;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.xwt.tools.ui.palette.page.ContributePalettePage;
+import org.eclipse.xwt.tools.ui.palette.page.CustomPalettePage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gef.ContextMenuProvider;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartFactory;
+import org.eclipse.gef.EditPartViewer;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.GraphicalViewer;
+import org.eclipse.gef.KeyHandler;
+import org.eclipse.gef.KeyStroke;
+import org.eclipse.gef.commands.CommandStack;
+import org.eclipse.gef.commands.CommandStackListener;
+import org.eclipse.gef.ui.actions.ActionRegistry;
+import org.eclipse.gef.ui.actions.GEFActionConstants;
+import org.eclipse.gef.ui.actions.SelectionAction;
+import org.eclipse.gef.ui.parts.GraphicalViewerKeyHandler;
+import org.eclipse.gef.ui.parts.ScrollingGraphicalViewer;
+import org.eclipse.gef.ui.views.palette.PalettePage;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IRewriteTarget;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.custom.ViewForm;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.DropTarget;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IPropertyListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.actions.ActionFactory;
+import org.eclipse.ui.editors.text.TextFileDocumentProvider;
+import org.eclipse.ui.part.MultiPageEditorPart;
+import org.eclipse.ui.part.MultiPageEditorSite;
+import org.eclipse.ui.progress.UIJob;
+import org.eclipse.ui.texteditor.IDocumentProvider;
+import org.eclipse.ui.texteditor.ITextEditorActionConstants;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.PropertySheetPage;
+import org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument;
+import org.eclipse.wst.sse.core.internal.text.JobSafeStructuredDocument;
+import org.eclipse.wst.sse.core.internal.undo.StructuredTextUndoManager;
+import org.eclipse.wst.sse.ui.StructuredTextEditor;
+import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
+import org.eclipse.wst.xml.core.internal.provisional.contenttype.ContentTypeIdForXML;
+import org.eclipse.xwt.tools.ui.designer.core.DesignerPlugin;
+import org.eclipse.xwt.tools.ui.designer.core.component.CustomSashForm;
+import org.eclipse.xwt.tools.ui.designer.core.editor.IVisualRenderer.Result;
+import org.eclipse.xwt.tools.ui.designer.core.editor.commandstack.CombinedCommandStack;
+import org.eclipse.xwt.tools.ui.designer.core.editor.dnd.DropContext;
+import org.eclipse.xwt.tools.ui.designer.core.editor.dnd.DropTargetAdapter;
+import org.eclipse.xwt.tools.ui.designer.core.editor.dnd.GraphicalViewerDropCreationListener;
+import org.eclipse.xwt.tools.ui.designer.core.editor.dnd.palette.PaletteDropAdapter;
+import org.eclipse.xwt.tools.ui.designer.core.editor.outline.DesignerOutlinePage;
+import org.eclipse.xwt.tools.ui.designer.core.editor.text.StructuredTextHelper;
+import org.eclipse.xwt.tools.ui.designer.core.model.IModelBuilder;
+import org.eclipse.xwt.tools.ui.designer.core.model.ModelChangeListener;
+import org.eclipse.xwt.tools.ui.designer.core.parts.RefreshContext;
+import org.eclipse.xwt.tools.ui.designer.core.parts.root.DesignerRootEditPart;
+import org.eclipse.xwt.tools.ui.designer.core.problems.ConfigurableProblemHandler;
+import org.eclipse.xwt.tools.ui.designer.core.problems.ProblemHandler;
+import org.eclipse.xwt.tools.ui.designer.core.util.DisplayUtil;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+@SuppressWarnings("restriction")
+public abstract class Designer extends MultiPageEditorPart implements
+		ISelectionChangedListener, CommandStackListener {
+
+	public static final String DESIGNER_INPUT = "DESIGNER INPUT";
+	public static final String DESIGNER_TEXT_EDITOR = "DESIGNER TEXT EDITOR";
+	public static final String DEFAULT_DESIGNER_CONTEXT_MENU_ID = "#DesignerContext"; //$NON-NLS-1$
+
+	// UI editor.
+	protected CustomSashForm pageContainer;
+	private CustomPalettePage palettePage;
+	private IPropertySheetPage propertyPage;
+	private DesignerOutlinePage outlinePage;
+	private ProblemHandler problemHandler;
+
+	// GEF editor.
+	private GraphicalViewer graphicalViewer;
+	private EditDomain editDomain;
+	private ISelectionSynchronizer selectionSynchronizer;
+	private ActionRegistry actionRegistry;
+	private ActionGroup actionGroup;
+
+	// Source editor.
+	private StructuredTextEditor fTextEditor;
+	private IPropertyListener fPropertyListener;
+	private DropTargetAdapter dropListener;
+
+	private EObject documentRoot;
+	private IVisualRenderer visualsRender;
+
+	private CombinedCommandStack commandStack = new CombinedCommandStack();
+
+	private IModelBuilder modelBuilder;
+	private boolean installed = false;
+	private ModelChangeListener modelBuilderListener;
+	protected Display display;
+	private LoadingFigureController loadingFigureController;
+
+	private EditPartFactory editPartFactory;
+
+	private KeyHandler fSharedKeyHandler;
+
+	private Refresher refresher;
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.ui.part.MultiPageEditorPart#init(org.eclipse.ui.IEditorSite,
+	 * org.eclipse.ui.IEditorInput)
+	 */
+	public void init(IEditorSite site, IEditorInput input)
+			throws PartInitException {
+		super.init(site, input);
+		site.setSelectionProvider(null);// clear multi-page selection provider.
+		display = site.getShell().getDisplay();
+		loadingFigureController = new LoadingFigureController();
+		editDomain = new EditDomain(this);
+		editDomain.setCommandStack(commandStack.getCommandStack4GEF());
+		setPartName(input.getName());
+		getEditDomain().setData(DESIGNER_INPUT, input);
+		getCommandStack().getCommandStack4GEF().addCommandStackListener(this);
+		createActions();
+		configureActions();
+
+		refresher = new Refresher(display);
+	}
+
+	public Refresher getRefresher() {
+		return refresher;
+	}
+
+	protected void configureActions() {
+		actionGroup.updateActions(ActionGroup.PROPERTY_GRP);
+		actionGroup.updateActions(ActionGroup.STACK_GRP);
+
+		if (graphicalViewer != null) {
+			Iterator<?> actions = getActionRegistry().getActions();
+			while (actions.hasNext()) {
+				Object object = (Object) actions.next();
+				if (object instanceof SelectionAction) {
+					((SelectionAction) object)
+							.setSelectionProvider(graphicalViewer);
+				}
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.part.MultiPageEditorPart#setFocus()
+	 */
+	public void setFocus() {
+		if (graphicalViewer != null && graphicalViewer.getControl() != null) {
+			graphicalViewer.getControl().setFocus();
+		}
+		super.setFocus();
+	}
+
+	private void dispatchModelEvent(final Notification event) {
+		if (event.isTouch() || !installed) {
+			return;
+		}
+		if (display != null && display.getThread() == Thread.currentThread()) {
+			performModelChanged(event);
+		} else if (display != null) {
+			DisplayUtil.asyncExec(display, new Runnable() {
+				public void run() {
+					performModelChanged(event);
+				}
+			});
+		}
+	}
+
+	protected void performModelChanged(Notification event) {
+		if (visualsRender == null || event.isTouch()) {
+			return;
+		}
+		Result result;
+		try {
+			result = getVisualsRender().refreshVisuals(event);
+		} catch (RuntimeException e) {
+			return;
+		}
+		if (result == null || !result.refreshed) {
+			return;
+		}
+		EditPart toRefresh = null;
+		Object notifier = result.visuals;
+		// When the eventType is ADD, we need to refresh all children.
+		if (notifier == null) {
+			toRefresh = getGraphicalViewer().getRootEditPart();
+		} else {
+			toRefresh = getEditPart(notifier);
+			if (toRefresh == null) {
+				while (notifier != null && notifier instanceof EObject) {
+					Object parentNode = ((EObject) notifier).eContainer();
+					while (getEditPart(parentNode) != null) {
+						toRefresh = getEditPart(parentNode).getParent();
+						break;
+					}
+					notifier = parentNode;
+				}
+			}
+		}
+		if (toRefresh == null) {
+			return;
+		}
+		refresher.refreshInJob(toRefresh);
+
+		getOutlinePage().refresh(toRefresh);
+
+		// highlight changed one.
+		if (toRefresh.isSelectable()) {
+			graphicalViewer.setSelection(new StructuredSelection(toRefresh));
+		}
+	}
+
+	public void refresh(EditPart editPart, RefreshContext context) {
+		refresher.refresh(editPart, context);
+		getOutlinePage().refresh(editPart);
+	}
+
+	public EditPart getEditPart(Object model) {
+		return (EditPart) graphicalViewer.getEditPartRegistry().get(model);
+	}
+
+	private void setDocumentRoot(EObject document) {
+		this.documentRoot = document;
+	}
+
+	public EObject getDocumentRoot() {
+		return documentRoot;
+	}
+
+	/**
+	 * Start loading models.
+	 */
+	private void tryToLoadModels() {
+		loadingFigureController.showLoadingFigure(true);
+		loadingFigureController.startListener(getGraphicalViewer());
+		UIJob setupJob = new UIJob("Setup") {
+			public IStatus runInUIThread(IProgressMonitor monitor) {
+				if (modelBuilder.doLoad(Designer.this, monitor)) {
+					setDocumentRoot(modelBuilder.getDiagram());
+				}
+				if (!isDisposed()) {
+					try {
+						setupGraphicalViewer();
+					} catch (Exception e) {
+						// TODO Auto-generated catch block
+						e.printStackTrace();
+					}
+				}
+				return Status.OK_STATUS;
+			}
+		};
+		setupJob.setDisplay(display);
+		setupJob.setPriority(Job.SHORT);
+		final IModelBuilder modelBuilder = getModelBuilder();
+		if (getDocument() != null && modelBuilder != null) {
+			setupJob.schedule();
+		}
+	}
+
+	protected void runWithDialog(IRunnableWithProgress runnable) {
+		try {
+			ProgressMonitorDialog d = new ProgressMonitorDialog(getSite()
+					.getShell());
+			d.run(true, false, runnable);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void setupGraphicalViewer() {
+		IVisualRenderer vr = getVisualsRender();
+		if (vr != null) {
+			vr.createVisuals();
+			getEditDomain().setViewerData(getGraphicalViewer(),
+					IVisualRenderer.KEY, vr);
+		}
+		setContent(getDocumentRoot());
+		loadingFigureController.showLoadingFigure(false);
+
+		installed = true;
+	}
+
+	protected void setContent(EObject diagram) {
+		GraphicalViewer graphicalViewer = getGraphicalViewer();
+		if (graphicalViewer != null) {
+			EditPart diagramEp = getDiagramEditPart();
+			graphicalViewer.setContents(diagramEp);
+			if (diagramEp != null) {
+				refresher.refreshAsynchronous(diagramEp);
+			}
+		}
+
+		DesignerOutlinePage outlinePage = getOutlinePage();
+		if (outlinePage != null) {
+			outlinePage.setContents(diagram);
+		}
+	}
+
+	public IVisualRenderer getVisualsRender() {
+		if (visualsRender == null) {
+			visualsRender = createVisualsRender();
+		}
+		return visualsRender;
+	}
+
+	/**
+	 * @return
+	 */
+	private EditPart getDiagramEditPart() {
+		return getEditPartFactory().createEditPart(
+				getGraphicalViewer().getRootEditPart(), getDocumentRoot());
+	}
+
+	public GraphicalViewer getGraphicalViewer() {
+		return graphicalViewer;
+	}
+
+	protected synchronized boolean isDisposed() {
+		return editDomain == null;
+	}
+
+	public IFile getFile() {
+		IEditorInput editorInput = getEditorInput();
+		return (IFile) editorInput.getAdapter(IFile.class);
+	}
+
+	/**
+	 * @return the modelBuilder
+	 */
+	public IModelBuilder getModelBuilder() {
+		if (modelBuilder == null) {
+			modelBuilder = createModelBuilder();
+		}
+		if (modelBuilderListener == null) {
+			modelBuilderListener = new ModelChangeListener() {
+				public void notifyChanged(final Notification event) {
+					dispatchModelEvent(event);
+				}
+			};
+		}
+		if (!modelBuilder.hasListener(modelBuilderListener)) {
+			modelBuilder.addModelListener(modelBuilderListener);
+		}
+		return modelBuilder;
+	}
+
+	protected abstract IModelBuilder createModelBuilder();
+
+	/**
+	 * Initialize and create actions.
+	 */
+	protected void createActions() {
+		if (actionGroup == null) {
+			actionGroup = new ActionGroup(this);
+		}
+		actionGroup.createActions();
+	}
+
+	/**
+	 * Lazily creates and returns the action registry.
+	 * 
+	 * @return the action registry
+	 */
+	public ActionRegistry getActionRegistry() {
+		if (actionRegistry == null)
+			actionRegistry = new ActionRegistry();
+		return actionRegistry;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.ui.part.MultiPageEditorPart#createPageContainer(org.eclipse
+	 * .swt.widgets.Composite)
+	 */
+	protected Composite createPageContainer(Composite parent) {
+		ViewForm diagramPart = new ViewForm(parent, SWT.FLAT);
+
+		ToolBar toolBar = createToolBar(diagramPart);
+		if (toolBar != null && !toolBar.isDisposed()) {
+			diagramPart.setTopLeft(toolBar);
+		}
+
+		pageContainer = new CustomSashForm(diagramPart, SWT.VERTICAL);
+		pageContainer.setBackgroundMode(SWT.INHERIT_DEFAULT);
+		createGraphicalViewer(pageContainer);
+		diagramPart.setContent(pageContainer);
+		return pageContainer;
+	}
+
+	protected boolean isEditable() {
+		return true;
+	}
+
+	/**
+	 * Create Graphical Viewer for GEF Editor.
+	 * 
+	 * @param parent
+	 */
+	private void createGraphicalViewer(Composite parent) {
+		graphicalViewer = new ScrollingGraphicalViewer();
+		graphicalViewer.createControl(parent);
+		graphicalViewer.getControl().setBackground(
+				ColorConstants.listBackground);
+		configureGraphicalViewer();
+	}
+
+	/**
+	 * Configure GraphicalViewer
+	 */
+	protected void configureGraphicalViewer() {
+		graphicalViewer.addSelectionChangedListener(this);
+		editDomain.addViewer(graphicalViewer);
+
+		getSite().setSelectionProvider(graphicalViewer);
+		getSelectionSynchronizer().addProvider(graphicalViewer);
+
+		graphicalViewer.setEditPartFactory(getEditPartFactory());
+		ContextMenuProvider menuProvider = createMenuProvider(graphicalViewer,
+				getActionRegistry());
+		if (menuProvider != null) {
+			graphicalViewer.setContextMenu(menuProvider);
+			menuProvider.setRemoveAllWhenShown(true);
+			getSite()
+					.registerContextMenu(
+							getClass().getSimpleName() + ".contextMenu", menuProvider, graphicalViewer); //$NON-NLS-1$
+		}
+
+		DesignerRootEditPart rootEditPart = new DesignerRootEditPart();
+		graphicalViewer.setRootEditPart(rootEditPart);
+
+		graphicalViewer.setKeyHandler(new GraphicalViewerKeyHandler(
+				graphicalViewer).setParent(getCommonKeyHandler()));
+
+		setupGraphicalViewerDropCreation(graphicalViewer);
+
+		Iterator<?> actions = getActionRegistry().getActions();
+		while (actions.hasNext()) {
+			Object object = (Object) actions.next();
+			if (object instanceof SelectionAction) {
+				((SelectionAction) object)
+						.setSelectionProvider(graphicalViewer);
+			}
+		}
+	}
+
+	protected void setupGraphicalViewerDropCreation(GraphicalViewer viewer) {
+		viewer.addDropTargetListener(new GraphicalViewerDropCreationListener(
+				viewer));
+	}
+
+	/**
+	 * Returns the KeyHandler with common bindings for both the Outline and
+	 * Graphical Views. For example, delete is a common action.
+	 */
+	protected KeyHandler getCommonKeyHandler() {
+		if (fSharedKeyHandler == null) {
+			fSharedKeyHandler = new KeyHandler();
+			fSharedKeyHandler
+					.put(KeyStroke.getPressed(SWT.DEL, SWT.DEL, 0),
+							getActionRegistry().getAction(
+									ActionFactory.DELETE.getId()));
+			fSharedKeyHandler.put(KeyStroke.getPressed(SWT.F2, 0),
+					getActionRegistry().getAction(
+							GEFActionConstants.DIRECT_EDIT));
+		}
+		return fSharedKeyHandler;
+	}
+
+	protected ContextMenuProvider createMenuProvider(EditPartViewer viewer,
+			ActionRegistry actionRegistry) {
+		return new DesignerMenuProvider(viewer, actionRegistry);
+	}
+
+	/**
+	 * Returns the selection syncronizer object. The synchronizer can be used to
+	 * sync the selection of 2 or more EditPartViewers.
+	 * 
+	 * @return
+	 */
+	public ISelectionSynchronizer getSelectionSynchronizer() {
+		if (selectionSynchronizer == null) {
+			selectionSynchronizer = createSelectionSynchronizer();
+		}
+		return selectionSynchronizer;
+	}
+
+	protected ISelectionSynchronizer createSelectionSynchronizer() {
+		return new SelectionSynchronizer();
+	}
+
+	/**
+	 * Create a ToolBar for editor with global actions.
+	 * 
+	 * @param parent
+	 * @return
+	 */
+	protected ToolBar createToolBar(Composite parent) {
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.part.MultiPageEditorPart#createPages()
+	 */
+	protected void createPages() {
+		createSourcePage();
+		createExternalPages();
+
+		updateContainer();
+	}
+
+	/**
+	 * Update TabFolder.
+	 */
+	private void updateContainer() {
+		Composite container = getContainer();
+		if (container == null || !(container instanceof CTabFolder)) {
+			return;
+		}
+		CTabFolder tabFolder = (CTabFolder) container;
+		tabFolder.setTabPosition(SWT.TOP);
+		tabFolder.setSimple(false);
+		ToolBar toolBar = new ToolBar(tabFolder, SWT.FLAT | SWT.WRAP
+				| SWT.RIGHT);
+		configureContainerToolBar(toolBar);
+		tabFolder.setTopRight(toolBar);
+		tabFolder.setTabHeight(Math.max(toolBar.computeSize(SWT.DEFAULT,
+				SWT.DEFAULT).y, tabFolder.getTabHeight()));
+	}
+
+	/**
+	 * ToolBar of container, it is really at the middle of the editor.
+	 */
+	protected void configureContainerToolBar(ToolBar toolBar) {
+
+	}
+
+	protected void createExternalPages() {
+
+	}
+
+	/**
+	 * Create and add a StructuredTextEditor as a Source Page.
+	 */
+	private void createSourcePage() {
+		// Subclass of StructuredTextEditor is not allowed.
+		fTextEditor = new StructuredTextEditor();
+		final StructuredTextUndoManager undoManager = new StructuredTextUndoManager(
+				commandStack);
+		TextFileDocumentProvider provider = new TextFileDocumentProvider() {
+			public IDocument getDocument(Object element) {
+				JobSafeStructuredDocument document = (JobSafeStructuredDocument) super
+						.getDocument(element);
+				if (document != null) {
+					try {
+						Field fUndoManager = BasicStructuredDocument.class
+								.getDeclaredField("fUndoManager");
+						fUndoManager.setAccessible(true);
+						Object object = fUndoManager.get(document);
+						if (object != null && object != undoManager) {
+							fUndoManager.set(document, null);
+							document.setUndoManager(undoManager);
+						} else if (object == null) {
+							document.setUndoManager(undoManager);
+						}
+					} catch (Exception e) {
+						DesignerPlugin.logError(e);
+					}
+				}
+				return document;
+			}
+		};
+		fTextEditor.initializeDocumentProvider(provider);
+		fTextEditor.setEditorPart(this);
+		if (fPropertyListener == null) {
+			fPropertyListener = new PropertyListener();
+		}
+		fTextEditor.addPropertyListener(fPropertyListener);
+		try {
+			int fSourcePageIndex = addPage(fTextEditor, getEditorInput());
+			setPageText(fSourcePageIndex, "Source");
+			firePropertyChange(PROP_TITLE);
+			tryToLoadModels();
+		} catch (PartInitException e) {
+			e.printStackTrace();
+		}
+		SourceSelectionProvider selectionProvider = new SourceSelectionProvider(
+				this, fTextEditor);
+		getSelectionSynchronizer().addProvider(selectionProvider);
+		fTextEditor.setAction(ITextEditorActionConstants.DELETE, null);
+		if (pageContainer != null) {
+			pageContainer.setWeights(new int[] { 1, 1 });
+		}
+		configureTextEditor();
+	}
+
+	protected IEditorSite createSite(IEditorPart editor) {
+		IEditorSite site = null;
+		if (editor == fTextEditor) {
+			site = new MultiPageEditorSite(this, editor) {
+
+				public String getId() {
+					// sets this id so nested editor is considered xml source
+					// page
+					return ContentTypeIdForXML.ContentTypeID_XML + ".source"; //$NON-NLS-1$;
+				}
+			};
+		} else {
+			site = super.createSite(editor);
+		}
+		return site;
+	}
+
+	/**
+	 * Configure Text Editor,
+	 */
+	protected void configureTextEditor() {
+		if (getPalettePage() == null) {
+			return;
+		}
+		if (dropListener == null) {
+			dropListener = new DropTargetAdapter();
+			DropContext dropContext = getDropContext();
+			if (dropContext != null) {
+				dropListener.addDropAdapter(new PaletteDropAdapter(this,
+						dropContext));
+			}
+		}
+		StyledText styledText = getTextWidget();
+		if (styledText == null || dropListener == null) {
+			return;
+		}
+		DropTarget dropTarget = (DropTarget) styledText
+				.getData(DND.DROP_TARGET_KEY);
+		if (dropTarget != null) {
+			dropTarget.removeDropListener(dropListener);
+			dropTarget.dispose();
+		}
+
+		dropTarget = new DropTarget(styledText, DND.DROP_MOVE | DND.DROP_COPY);
+		dropTarget.setTransfer(new Transfer[] { getPalettePage()
+				.getPaletteTransfer() });
+		dropTarget.addDropListener(dropListener);
+
+		styledText.addDisposeListener(new DisposeListener() {
+			public void widgetDisposed(DisposeEvent e) {
+				StyledText styledText = (StyledText) e.widget;
+				DropTarget dropTarget = (DropTarget) styledText
+						.getData(DND.DROP_TARGET_KEY);
+				if (dropTarget != null) {
+					dropTarget.removeDropListener(dropListener);
+				}
+			}
+		});
+
+		getProblemHandler().handle();
+	}
+
+	public void format() {
+		StructuredTextViewer textViewer = getTextViewer();
+		if (textViewer != null
+				&& textViewer
+						.canDoOperation(StructuredTextViewer.FORMAT_DOCUMENT)) {
+			textViewer.doOperation(StructuredTextViewer.FORMAT_DOCUMENT);
+		} else if (getDocument() != null) {
+			StructuredTextHelper.format(getDocument());
+		}
+	}
+
+	public void formatWithCompound(Runnable runnable) {
+		if (runnable == null) {
+			format();
+			return;
+		}
+		StructuredTextViewer textViewer = getTextViewer();
+		if (textViewer == null) {
+			runnable.run();
+			return;
+		}
+		IRewriteTarget rewriteTarget = textViewer.getRewriteTarget();
+		if (rewriteTarget != null) {
+			rewriteTarget.beginCompoundChange();
+		}
+		runnable.run();
+		format();
+		if (rewriteTarget != null) {
+			rewriteTarget.endCompoundChange();
+		}
+	}
+
+	public StyledText getTextWidget() {
+		if (getTextViewer() != null) {
+			return getTextViewer().getTextWidget();
+		}
+		return null;
+	}
+
+	public StructuredTextViewer getTextViewer() {
+		if (fTextEditor != null) {
+			return fTextEditor.getTextViewer();
+		}
+		return null;
+	}
+
+	public IDocument getDocument() {
+		IDocument document = null;
+		if (fTextEditor != null) {
+			IDocumentProvider documentProvider = fTextEditor
+					.getDocumentProvider();
+			IEditorInput editorInput = fTextEditor.getEditorInput();
+			if (documentProvider == null || editorInput == null) {
+				return null;
+			}
+			document = documentProvider.getDocument(editorInput);
+		}
+		return document;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.
+	 * IProgressMonitor)
+	 */
+	public void doSave(IProgressMonitor monitor) {
+		fTextEditor.doSave(monitor);
+		if (modelBuilder != null) {
+			modelBuilder.doSave(monitor);
+		}
+		// getCommandStack().flush();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.part.EditorPart#doSaveAs()
+	 */
+	public void doSaveAs() {
+		fTextEditor.doSaveAs();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.part.MultiPageEditorPart#dispose()
+	 */
+	public void dispose() {
+		getModelBuilder().removeModelListener(modelBuilderListener);
+		getModelBuilder().dispose();
+		getCommandStack().getCommandStack4GEF()
+				.removeCommandStackListener(this);
+		getCommandStack().flush();
+		getGraphicalViewer().removeSelectionChangedListener(this);
+		if (modelBuilder != null) {
+			modelBuilder.dispose();
+		}
+		if (visualsRender != null) {
+			visualsRender.dispose();
+		}
+		fSharedKeyHandler = null;
+		getActionRegistry().dispose();
+		getProblemHandler().clear();
+		super.dispose();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.part.MultiPageEditorPart#getAdapter(java.lang.Class)
+	 */
+	public Object getAdapter(Class adapter) {
+		if (ActionRegistry.class == adapter) {
+			return getActionRegistry();
+		} else if (org.eclipse.gef.EditDomain.class.isAssignableFrom(adapter)) {
+			return getEditDomain();
+		} else if (PalettePage.class.isAssignableFrom(adapter)) {
+			return getPalettePage();
+		} else if (CommandStack.class == adapter) {
+			return getCommandStack().getCommandStack4GEF();
+		} else if (GraphicalViewer.class == adapter) {
+			return getGraphicalViewer();
+		} else if (adapter == IPropertySheetPage.class) {
+			return getPropertySheetPage();
+		} else if (adapter == IContentOutlinePage.class) {
+			return getOutlinePage();
+		} else if (adapter == ProblemHandler.class) {
+			return getProblemHandler();
+		} else if (adapter == EditPart.class && getGraphicalViewer() != null) {
+			return getGraphicalViewer().getRootEditPart();
+		} else if (adapter == IFigure.class && getGraphicalViewer() != null) {
+			return ((GraphicalEditPart) getGraphicalViewer().getRootEditPart())
+					.getFigure();
+		} else if (adapter == IProject.class) {
+			return getProject();
+		} else if (adapter == IFile.class) {
+			return getFile();
+		}
+		return super.getAdapter(adapter);
+	}
+
+	public ProblemHandler getProblemHandler() {
+		if (problemHandler == null) {
+			problemHandler = new ConfigurableProblemHandler(this);
+		}
+		return problemHandler;
+	}
+
+	/**
+	 * @return
+	 */
+	protected DesignerOutlinePage getOutlinePage() {
+		if (outlinePage == null) {
+			outlinePage = createOutlinePage();
+			if (outlinePage != null) {
+				getSelectionSynchronizer().addProvider(
+						outlinePage.getTreeViewer());
+			}
+		}
+		return outlinePage;
+	}
+
+	protected abstract DesignerOutlinePage createOutlinePage();
+
+	public IPropertySheetPage getPropertySheetPage() {
+		if (propertyPage == null || propertyPage.getControl() == null
+				|| propertyPage.getControl().isDisposed()) {
+			propertyPage = createPropertyPage();
+		}
+		return propertyPage;
+	}
+
+	protected IPropertySheetPage createPropertyPage() {
+		return new PropertySheetPage();
+	}
+
+	/**
+	 * @return
+	 */
+	private CustomPalettePage getPalettePage() {
+		if (palettePage == null) {
+			palettePage = new ContributePalettePage(this, editDomain);
+		}
+		return palettePage;
+	}
+
+	public CombinedCommandStack getCommandStack() {
+		return commandStack;
+	}
+
+	/**
+	 * @return the editDomain
+	 */
+	public EditDomain getEditDomain() {
+		return editDomain;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
+	 */
+	public boolean isSaveAsAllowed() {
+		return fTextEditor.isSaveAsAllowed();
+	}
+
+	protected EditPart convert(EditPartViewer viewer, EditPart part) {
+		Object temp = viewer.getEditPartRegistry().get(part.getModel());
+		EditPart newPart = null;
+		if (temp != null) {
+			newPart = (EditPart) temp;
+		}
+		return newPart;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(
+	 * org.eclipse.jface.viewers.SelectionChangedEvent)
+	 */
+	public final void selectionChanged(SelectionChangedEvent event) {
+		Object source = event.getSource();
+		if (source == null) {
+			return;
+		}
+		while (Display.getDefault().readAndDispatch())
+			;
+		IEditorPart activeEditor = getSite().getPage().getActiveEditor();
+		if (Designer.this.equals(activeEditor)) {
+			performSelectionChanged(event);
+		}
+	}
+
+	/**
+	 * Perform Selection event.
+	 * 
+	 * @param event
+	 */
+	protected void performSelectionChanged(SelectionChangedEvent event) {
+		IStructuredSelection selection = (IStructuredSelection) event
+				.getSelection();
+		if (selection.isEmpty()) {
+			return;
+		}
+		DisplayUtil.asyncExec(new Runnable() {
+			public void run() {
+				if (actionGroup != null) {
+					actionGroup.updateActions(ActionGroup.SELECTION_GRP);
+				}
+				ActionRegistry actionRegistry = getActionRegistry();
+				Iterator<?> actions = actionRegistry.getActions();
+				while (actions.hasNext()) {
+					Object object = (Object) actions.next();
+					if (object instanceof SelectionAction) {
+						((SelectionAction) object).update();
+					}
+				}
+			}
+		});
+	}
+
+	public void gotoDefinition(EObject node) {
+		EditPart editPart = getEditPart(node);
+		if (editPart != null) {
+			graphicalViewer.setSelection(new StructuredSelection(editPart));
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.commands.CommandStackListener#commandStackChanged(java
+	 * .util.EventObject)
+	 */
+	public void commandStackChanged(EventObject event) {
+		if (actionGroup != null) {
+			actionGroup.updateActions(ActionGroup.STACK_GRP);
+		}
+	}
+
+	public StructuredTextEditor getTextEditor() {
+		return fTextEditor;
+	}
+
+	/*
+	 * This method is just to make firePropertyChanged accessible from some
+	 * (anonomous) inner classes.
+	 */
+	void _firePropertyChange(int property) {
+		super.firePropertyChange(property);
+	}
+
+	public IProject getProject() {
+		return getFile().getProject();
+	}
+
+	/**
+	 * EditPart Factory.
+	 * 
+	 * @return
+	 */
+	public EditPartFactory getEditPartFactory() {
+		if (editPartFactory == null) {
+			editPartFactory = createEditPartFactory();
+		}
+		return editPartFactory;
+	}
+
+	protected abstract EditPartFactory createEditPartFactory();
+
+	protected abstract IVisualRenderer createVisualsRender();
+
+	/**
+	 * DropContext.
+	 * 
+	 * @return
+	 */
+	protected abstract DropContext getDropContext();
+
+	/**
+	 * Internal IPropertyListener
+	 */
+	class PropertyListener implements IPropertyListener {
+		public void propertyChanged(Object source, int propId) {
+			switch (propId) {
+			// had to implement input changed "listener" so that
+			// StructuredTextEditor could tell it containing editor that
+			// the input has change, when a 'resource moved' event is
+			// found.
+			case IEditorPart.PROP_INPUT: {
+			}
+			case IEditorPart.PROP_DIRTY: {
+				if (source == getTextEditor()) {
+					if (getTextEditor().getEditorInput() != getEditorInput()) {
+						setInput(getTextEditor().getEditorInput());
+						/*
+						 * title should always change when input changes. create
+						 * runnable for following post call
+						 */
+						Runnable runnable = new Runnable() {
+							public void run() {
+								_firePropertyChange(IWorkbenchPart.PROP_TITLE);
+							}
+						};
+						/*
+						 * Update is just to post things on the display queue
+						 * (thread). We have to do this to get the dirty
+						 * property to get updated after other things on the
+						 * queue are executed.
+						 */
+						((Control) getTextEditor().getAdapter(Control.class))
+								.getDisplay().asyncExec(runnable);
+					}
+				}
+				break;
+			}
+			case IWorkbenchPart.PROP_TITLE: {
+				// update the input if the title is changed
+				if (source == getTextEditor()) {
+					if (getTextEditor().getEditorInput() != getEditorInput()) {
+						setInput(getTextEditor().getEditorInput());
+					}
+				}
+				break;
+			}
+			default: {
+				// propagate changes. Is this needed? Answer: Yes.
+				if (source == getTextEditor()) {
+					_firePropertyChange(propId);
+				}
+				break;
+			}
+			}
+
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/DesignerActionBarContributor.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/DesignerActionBarContributor.java
new file mode 100755
index 0000000..7d8e6d0
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/DesignerActionBarContributor.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor;
+
+import org.eclipse.gef.ui.actions.ActionBarContributor;
+import org.eclipse.gef.ui.actions.DeleteRetargetAction;
+import org.eclipse.gef.ui.actions.RedoRetargetAction;
+import org.eclipse.gef.ui.actions.UndoRetargetAction;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.ui.actions.ActionFactory;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class DesignerActionBarContributor extends ActionBarContributor {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.ui.actions.ActionBarContributor#buildActions()
+	 */
+	protected void buildActions() {
+		addRetargetAction(new UndoRetargetAction());
+		addRetargetAction(new RedoRetargetAction());
+		addRetargetAction(new DeleteRetargetAction());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.ui.actions.ActionBarContributor#declareGlobalActionKeys()
+	 */
+	protected void declareGlobalActionKeys() {
+
+	}
+
+	public void contributeToToolBar(IToolBarManager tbm) {
+		tbm.add(getAction(ActionFactory.UNDO.getId()));
+		tbm.add(getAction(ActionFactory.REDO.getId()));
+		tbm.add(getAction(ActionFactory.DELETE.getId()));
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/DesignerActionConstants.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/DesignerActionConstants.java
new file mode 100755
index 0000000..f10f145
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/DesignerActionConstants.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor;
+
+public final class DesignerActionConstants {
+	public static final String UNDO = "group.undo";
+	public static final String CUT = "group.cut";
+	public static final String COPY = "group.copy";
+	public static final String PASTE = "group.paste";
+	public static final String EDIT = "group.edit";
+	public static final String PRINT = "group.print";
+	public static final String ACTIONS = "group.actions";
+	public static final String ADDITIONS = "group.additions";
+	public static final String DELETE = "group.delete";
+	public static final String BINDINGS = "group.nindings";
+	public static final String REFACTORING = "group.refactoring";
+
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/DesignerMenuProvider.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/DesignerMenuProvider.java
new file mode 100755
index 0000000..a324e89
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/DesignerMenuProvider.java
@@ -0,0 +1,91 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor;
+
+import org.eclipse.gef.ContextMenuProvider;
+import org.eclipse.gef.EditPartViewer;
+import org.eclipse.gef.ui.actions.ActionRegistry;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.ui.actions.ActionFactory;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class DesignerMenuProvider extends ContextMenuProvider {
+
+	private ActionRegistry actionRegistry;
+
+	public DesignerMenuProvider(EditPartViewer viewer,
+			ActionRegistry actionRegistry) {
+		super(viewer);
+		this.actionRegistry = actionRegistry;
+	}
+
+	public ActionRegistry getActionRegistry() {
+		return actionRegistry;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.gef.ContextMenuProvider#menuAboutToShow(org.eclipse.jface.action.IMenuManager)
+	 */
+	public void menuAboutToShow(IMenuManager menu) {
+		menu.add(new Separator(DesignerActionConstants.UNDO));
+		menu.add(new Separator(DesignerActionConstants.DELETE));
+		menu.add(new Separator(DesignerActionConstants.PRINT));
+		menu.add(new Separator(DesignerActionConstants.COPY));
+		menu.add(new Separator(DesignerActionConstants.EDIT));
+		menu.add(new Separator(DesignerActionConstants.ACTIONS));
+		menu.add(new Separator(DesignerActionConstants.ADDITIONS));
+		super.menuAboutToShow(menu);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.gef.ContextMenuProvider#buildContextMenu(org.eclipse.jface.action.IMenuManager)
+	 */
+	public void buildContextMenu(IMenuManager menu) {
+		ActionRegistry actionRegistry = getActionRegistry();
+		IAction action = actionRegistry.getAction(ActionFactory.REDO.getId());
+		if (action != null) {
+			menu.appendToGroup(DesignerActionConstants.UNDO, action);
+		}
+		action = actionRegistry.getAction(ActionFactory.UNDO.getId());
+		if (action != null) {
+			menu.appendToGroup(DesignerActionConstants.UNDO, action);
+		}
+		action = actionRegistry.getAction(ActionFactory.DELETE.getId());
+		if (action != null) {
+			menu.appendToGroup(DesignerActionConstants.DELETE, action);
+		}
+		action = actionRegistry.getAction(ActionFactory.COPY.getId());
+		if (action != null) {
+			menu.appendToGroup(DesignerActionConstants.COPY, action);
+		}
+		action = actionRegistry.getAction(ActionFactory.PASTE.getId());
+		if (action != null) {
+			menu.appendToGroup(DesignerActionConstants.COPY, action);
+		}
+		action = actionRegistry.getAction(ActionFactory.CUT.getId());
+		if (action != null) {
+			menu.appendToGroup(DesignerActionConstants.COPY, action);
+		}
+		action = actionRegistry.getAction(ActionFactory.SELECT_ALL.getId());
+		if (action != null) {
+			menu.appendToGroup(DesignerActionConstants.EDIT, action);
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/EditDomain.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/EditDomain.java
new file mode 100755
index 0000000..e7ed67c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/EditDomain.java
@@ -0,0 +1,110 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.gef.DefaultEditDomain;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartViewer;
+import org.eclipse.gef.GraphicalViewer;
+import org.eclipse.ui.IEditorPart;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class EditDomain extends DefaultEditDomain {
+
+	private Map<Object, Map<Object, Object>> viewerData;
+	private Map<Object, Object> domainData;
+
+	private List<EditPartViewer> viewers = new ArrayList<EditPartViewer>();
+
+	/**
+	 * @param editorPart
+	 */
+	public EditDomain(IEditorPart editorPart) {
+		super(editorPart);
+	}
+
+	public void addViewer(EditPartViewer viewer) {
+		super.addViewer(viewer);
+		if (!viewers.contains(viewer)) {
+			viewers.add(viewer);
+		}
+	}
+
+	public void removeViewer(EditPartViewer viewer) {
+		super.removeViewer(viewer);
+		viewers.remove(viewer);
+	}
+
+	public List<EditPartViewer> getViewers() {
+		return viewers;
+	}
+
+	/**
+	 * @param graphicalViewer
+	 * @param key
+	 * @param zoomController
+	 */
+	public void setViewerData(GraphicalViewer viewer, Object key, Object data) {
+		if (viewerData == null)
+			viewerData = new HashMap<Object, Map<Object, Object>>(3);
+
+		HashMap<Object, Object> vdata = (HashMap<Object, Object>) viewerData.get(viewer);
+		if (vdata == null)
+			viewerData.put(viewer, vdata = new HashMap<Object, Object>(3));
+		vdata.put(key, data);
+	}
+
+	/**
+	 * Get the data for the specified key for a particular viewer. Return null if the key is not set.
+	 */
+	public Object getViewerData(EditPartViewer viewer, Object key) {
+		if (viewerData != null) {
+			HashMap<Object, Object> data = (HashMap<Object, Object>) viewerData.get(viewer);
+			if (data != null)
+				return data.get(key);
+		}
+		return null;
+	}
+
+	public void setData(Object key, Object data) {
+		if (domainData == null) {
+			domainData = new HashMap<Object, Object>();
+		}
+		domainData.put(key, data);
+	}
+
+	public Object getData(Object key) {
+		if (domainData == null) {
+			return null;
+		}
+		return domainData.get(key);
+	}
+
+	public static EditDomain getEditDomain(EditPart ep) {
+		if (ep != null) {
+			EditPartViewer viewer = ep.getViewer();
+			if (viewer == null ){
+				return null;
+			}
+			return (EditDomain) viewer.getEditDomain();
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/ISelectionSynchronizer.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/ISelectionSynchronizer.java
new file mode 100755
index 0000000..19a7d1a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/ISelectionSynchronizer.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor;
+
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+
+public interface ISelectionSynchronizer {
+
+	/**
+	 * Adds a provider to the set of synchronized providers.
+	 * 
+	 * @param provider
+	 *            the provider
+	 */
+	public abstract void addProvider(ISelectionProvider provider);
+
+	/**
+	 * Removes the provider from the set of synchronized providers
+	 * 
+	 * @param provider
+	 *            the provider to remove
+	 */
+	public abstract void removeProvider(ISelectionProvider provider);
+
+	/**
+	 * Receives notification from one provider, and maps selection to all other
+	 * members.
+	 * 
+	 * @param event
+	 *            the selection event
+	 */
+	public abstract void selectionChanged(SelectionChangedEvent event);
+
+	/**
+	 * Enables or disabled synchronization between viewers.
+	 * 
+	 * @since 3.1
+	 * @param value
+	 *            <code>true</code> if synchronization should occur
+	 */
+	public abstract void setEnabled(boolean value);
+
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/IVisualFactory.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/IVisualFactory.java
new file mode 100755
index 0000000..d2f1c68
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/IVisualFactory.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public interface IVisualFactory {
+
+	Object getVisual(EObject model);
+
+	Object getVisual(EObject model, boolean loadOnDemand);
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/IVisualRenderer.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/IVisualRenderer.java
new file mode 100755
index 0000000..9395c45
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/IVisualRenderer.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public interface IVisualRenderer extends IVisualFactory {
+
+	/**
+	 * Key value of the render.
+	 */
+	String KEY = "org.eclipse.e4.tools.ui.designer.editor.VisualsRender";
+
+	/**
+	 * Create all visuals when the document is loaded.
+	 * 
+	 * @return TODO
+	 */
+	Result createVisuals();
+
+	/**
+	 * Return the notify component, so that the we can get an correct editpart to refresh.
+	 * 
+	 * @param source
+	 * @return
+	 */
+	Result refreshVisuals(Object source);
+
+	/**
+	 * Dispose at the end.
+	 */
+	void dispose();
+
+	/**
+	 * Return the host class name.
+	 * 
+	 * @return
+	 */
+	String getHostClassName();
+
+	/**
+	 * Return the root component.
+	 */
+	Object getRoot();
+
+	public class Result {
+		public Object visuals;
+		public boolean refreshed = false;
+
+		public Result(Object visuals) {
+			this.visuals = visuals;
+		}
+
+		public Result(Object visuals, boolean refreshed) {
+			this(visuals);
+			this.refreshed = refreshed;
+		}
+
+		public boolean isRefreshed() {
+			return refreshed && visuals != null;
+		}
+
+		public static Result NONE = new Result(null, false);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/LoadingFigureController.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/LoadingFigureController.java
new file mode 100755
index 0000000..be70a1d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/LoadingFigureController.java
@@ -0,0 +1,147 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+
+import org.eclipse.draw2d.FigureListener;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.Layer;
+import org.eclipse.draw2d.Locator;
+import org.eclipse.draw2d.RangeModel;
+import org.eclipse.draw2d.SimpleEtchedBorder;
+import org.eclipse.draw2d.Viewport;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Insets;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.GraphicalViewer;
+import org.eclipse.gef.LayerConstants;
+import org.eclipse.gef.editparts.LayerManager;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class LoadingFigureController {
+	protected static final Insets INSETS = new Insets(10, 25, 10, 25);
+
+	protected GraphicalViewer viewer;
+	protected Label loadingFigure;
+	protected boolean showingLoadingFigure = true;
+
+	public IFigure getRootFigure(IFigure target) {
+		IFigure parent = target.getParent();
+		while (parent.getParent() != null)
+			parent = parent.getParent();
+		return parent;
+	}
+
+	/**
+	 * Call when we have a viewer to actually work with. At this point in time we can now display the current loading status.
+	 * 
+	 * This allows us to start listening before we have a viewer. This should only be called once.
+	 */
+	public void startListener(GraphicalViewer viewer) {
+		this.viewer = viewer;
+		loadingFigure = new Label("Loading...") {
+			Locator locator = new Locator() {
+				public void relocate(IFigure target) {
+					// Center the figure in the middle of the canvas
+					Dimension canvasSize = getRootFigure(target).getSize();
+					Dimension prefSize = target.getPreferredSize();
+					int newX = (canvasSize.width - prefSize.width) / 2;
+					int newY = (canvasSize.height - prefSize.height) / 2;
+					Rectangle b = new Rectangle(newX, newY, prefSize.width, prefSize.height).expand(INSETS);
+					target.translateToRelative(b);
+					target.setBounds(b);
+				}
+			};
+
+			public void validate() {
+				if (!isValid())
+					locator.relocate(this);
+				super.validate();
+			}
+		};
+		loadingFigure.setEnabled(true);
+		loadingFigure.setOpaque(true);
+		loadingFigure.setBorder(SimpleEtchedBorder.singleton);
+		if (showingLoadingFigure)
+			showLoadingFigure();
+	}
+
+	public void showLoadingFigure(boolean show) {
+		if (show) {
+			if (!showingLoadingFigure)
+				showLoadingFigure();
+		} else if (showingLoadingFigure)
+			removeLoadingFigure();
+	}
+
+	protected Layer getLoadingLayer() {
+		return (Layer) LayerManager.Helper.find(viewer.getRootEditPart()).getLayer(LayerConstants.HANDLE_LAYER);
+	}
+
+	private FigureListener rootFigureListener = new FigureListener() {
+		public void figureMoved(IFigure source) {
+			loadingFigure.revalidate();
+		}
+	};
+
+	private PropertyChangeListener scrolledListener = new PropertyChangeListener() {
+		public void propertyChange(PropertyChangeEvent evt) {
+			if (RangeModel.PROPERTY_VALUE.equals(evt.getPropertyName()))
+				loadingFigure.revalidate(); // Scrollbar has moved, so revalidate.
+		}
+
+	};
+
+	protected void removeLoadingFigure() {
+		showingLoadingFigure = false;
+		if (viewer != null) {
+			Layer layer = getLoadingLayer();
+			if (layer.getChildren().contains(loadingFigure)) {
+				layer.remove(loadingFigure);
+			}
+			Viewport vp = getViewport(layer);
+			if (vp != null) {
+				vp.getHorizontalRangeModel().removePropertyChangeListener(scrolledListener);
+				vp.getVerticalRangeModel().removePropertyChangeListener(scrolledListener);
+			}
+			getRootFigure(layer).removeFigureListener(rootFigureListener);
+		}
+	}
+
+	protected Viewport getViewport(IFigure figure) {
+		IFigure f = figure;
+		while (f != null && !(f instanceof Viewport))
+			f = f.getParent();
+		return (Viewport) f;
+	}
+
+	protected void showLoadingFigure() {
+		showingLoadingFigure = true;
+		if (viewer != null) {
+			Layer layer = getLoadingLayer();
+			layer.add(loadingFigure);
+			Viewport vp = getViewport(layer);
+			if (vp != null) {
+				vp.getHorizontalRangeModel().addPropertyChangeListener(scrolledListener);
+				vp.getVerticalRangeModel().addPropertyChangeListener(scrolledListener);
+			}
+			getRootFigure(layer).addFigureListener(rootFigureListener);
+			loadingFigure.revalidate();
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/Refresher.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/Refresher.java
new file mode 100755
index 0000000..8f6b593
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/Refresher.java
@@ -0,0 +1,180 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.gef.EditPart;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.xwt.tools.ui.designer.core.parts.RefreshContext;
+import org.eclipse.xwt.tools.ui.designer.core.parts.VisualEditPart;
+import org.eclipse.xwt.tools.ui.designer.core.util.DisplayUtil;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public class Refresher {
+	static int TIMEOUT = 300;
+
+	private Display display;
+	private InternalJob job;
+
+	public Refresher(Display uiDisplay) {
+		this.display = uiDisplay;
+	}
+
+	public void refresh(EditPart editPart, RefreshContext context) {
+		if (editPart == null) {
+			return;
+		}
+		try {
+			if (editPart instanceof VisualEditPart) {
+				((VisualEditPart) editPart).refresh(context);
+			} 
+			else {
+				editPart.refresh();
+			}
+			List<?> children = editPart.getChildren();
+			for (Object object : children) {
+				refresh((EditPart) object, context);
+			}
+		} catch (Exception e) {
+		}
+	}
+
+	public void refreshAsynchronous(final EditPart editPart) {
+		if (editPart == null) {
+			return;
+		}
+		DisplayUtil.asyncExec(getDisplay(), new Runnable() {
+			public void run() {
+				refresh(editPart, RefreshContext.ALL());
+			}
+		});
+	}
+
+	public void refreshInJob(EditPart editPart) {
+		if (editPart == null) {
+			return;
+		}
+		if (job == null) {
+			job = new InternalJob();
+		}
+		job.refresh(editPart);
+	}
+
+	private Display getDisplay() {
+		if (display == null) {
+			display = Display.getCurrent();
+		}
+		return display;
+	}
+
+	class InternalJob extends Job {
+
+		private long timestamp = -1;
+
+		private Set<EditPart> refreshList;
+
+		public InternalJob() {
+			super("Refresh Job");
+		}
+
+		private boolean isPosterity(EditPart parent, EditPart child) {
+			if (parent == null || child == null) {
+				return false;
+			}
+			EditPart childParent = child.getParent();
+			if (parent == childParent) {
+				return true;
+			}
+			return isPosterity(parent, childParent);
+		}
+
+		private synchronized void refresh(EditPart editPart) {
+			if (refreshList == null) {
+				refreshList = new HashSet<EditPart>();
+			}
+			refreshList.add(editPart);
+			if (timestamp == -1) {
+				schedule(TIMEOUT);// waiting other more jobs.
+			}
+			timestamp = System.currentTimeMillis();
+		}
+
+		protected IStatus run(IProgressMonitor monitor) {
+			synchronized (refreshList) {
+				long localTimestamp = System.currentTimeMillis();
+				if (localTimestamp - timestamp < TIMEOUT) {
+					schedule(TIMEOUT);
+					timestamp = localTimestamp;
+					return Status.OK_STATUS;
+				}
+
+				List<EditPart> parts = new ArrayList<EditPart>();
+				List<EditPart> doingJobs = new ArrayList<EditPart>(refreshList);
+				try {
+					for (EditPart ep : doingJobs) {
+						if (parts.isEmpty()) {
+							parts.add(ep);
+						} else {
+							boolean contains = false;
+							for (EditPart editPart : parts) {
+								if (isPosterity(editPart, ep)) {
+									contains = true;
+									break;
+								}
+							}
+							if (contains) {
+								continue;
+							}
+							for (Iterator<EditPart> iterator = parts.iterator(); iterator
+									.hasNext();) {
+								EditPart editPart = iterator.next();
+								if (isPosterity(ep, editPart)) {
+									iterator.remove();
+								}
+							}
+							parts.add(ep);
+						}
+					}
+				} finally {
+					refreshList.removeAll(doingJobs);
+				}
+				if (!parts.isEmpty()) {
+					for (EditPart ep : parts) {
+						try {
+							refreshAsynchronous(ep);
+						} catch (Exception e) {
+						}
+					}
+				}
+				if (!refreshList.isEmpty()) {
+					schedule(TIMEOUT);
+					timestamp = System.currentTimeMillis();
+					return Status.OK_STATUS;
+				}
+			}
+			timestamp = -1;
+			return Status.OK_STATUS;
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/SelectionSynchronizer.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/SelectionSynchronizer.java
new file mode 100755
index 0000000..baa80da
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/SelectionSynchronizer.java
@@ -0,0 +1,140 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartViewer;
+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.StructuredSelection;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public class SelectionSynchronizer implements ISelectionChangedListener,
+		ISelectionSynchronizer {
+
+	private List<ISelectionProvider> providers = new ArrayList<ISelectionProvider>();
+	private boolean isDispatching = false;
+	private int disabled = 0;
+	private ISelectionProvider pendingSelection;
+
+	public void addProvider(ISelectionProvider provider) {
+		provider.addSelectionChangedListener(this);
+		providers.add(provider);
+	}
+
+	/**
+	 * Maps the given editpart from one viewer to an editpart in another viewer.
+	 * It returns <code>null</code> if there is no corresponding part. This
+	 * method can be overridden to provide custom mapping.
+	 * 
+	 * @param provider
+	 *            the viewer being mapped to
+	 * @param part
+	 *            a part from another viewer
+	 * @return <code>null</code> or a corresponding editpart
+	 */
+	protected EditPart convert(ISelectionProvider provider, EditPart part) {
+		if (provider instanceof EditPartViewer) {
+			return (EditPart) ((EditPartViewer) provider).getEditPartRegistry()
+					.get(part.getModel());
+		}
+		return part;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.tools.ui.designer.core.editor.ISelectionSynchronizer
+	 * #removeViewer(org.eclipse.jface.viewers.ISelectionProvider)
+	 */
+	public void removeProvider(ISelectionProvider viewer) {
+		viewer.removeSelectionChangedListener(this);
+		providers.remove(viewer);
+		if (pendingSelection == viewer)
+			pendingSelection = null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.tools.ui.designer.core.editor.ISelectionSynchronizer
+	 * #selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
+	 */
+	public void selectionChanged(SelectionChangedEvent event) {
+		if (isDispatching)
+			return;
+		ISelectionProvider source = event.getSelectionProvider();
+		if (disabled > 0) {
+			pendingSelection = source;
+		} else {
+			ISelection selection = event.getSelection();
+			syncSelection(source, selection);
+		}
+	}
+
+	private void syncSelection(ISelectionProvider source, ISelection selection) {
+		isDispatching = true;
+		for (int i = 0; i < providers.size(); i++) {
+			if (providers.get(i) != source) {
+				ISelectionProvider viewer = providers.get(i);
+				setViewerSelection(source, viewer, selection);
+			}
+		}
+		isDispatching = false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.tools.ui.designer.core.editor.ISelectionSynchronizer
+	 * #setEnabled(boolean)
+	 */
+	public void setEnabled(boolean value) {
+		if (!value)
+			disabled++;
+		else if (--disabled == 0 && pendingSelection != null) {
+			syncSelection(pendingSelection, pendingSelection.getSelection());
+			pendingSelection = null;
+		}
+	}
+
+	protected void setViewerSelection(ISelectionProvider source,
+			ISelectionProvider viewer, ISelection selection) {
+		ArrayList<EditPart> result = new ArrayList<EditPart>();
+		Iterator<?> iter = ((IStructuredSelection) selection).iterator();
+		while (iter.hasNext()) {
+			EditPart part = convert(viewer, (EditPart) iter.next());
+			if (part != null)
+				result.add(part);
+		}
+		viewer.setSelection(new StructuredSelection(result));
+		if (result.size() > 0) {
+			if (viewer instanceof EditPartViewer) {
+				((EditPartViewer) viewer).reveal((EditPart) result.get(result
+						.size() - 1));
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/SourceSelectionProvider.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/SourceSelectionProvider.java
new file mode 100755
index 0000000..24238e0
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/SourceSelectionProvider.java
@@ -0,0 +1,212 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.SafeRunner;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gef.EditPart;
+import org.eclipse.jface.text.TextSelection;
+import org.eclipse.jface.util.SafeRunnable;
+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.StructuredSelection;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.wst.sse.ui.StructuredTextEditor;
+import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public class SourceSelectionProvider implements ISelectionProvider {
+
+	private Designer designer;
+	private StructuredTextEditor textEditor;
+	private List<ISelectionChangedListener> listeners;
+	private IStructuredSelection fSelection;
+
+	public SourceSelectionProvider(Designer designer,
+			StructuredTextEditor textEditor) {
+		this.designer = designer;
+		this.textEditor = textEditor;
+		ISelectionProvider selectionProvider = textEditor
+				.getSelectionProvider();
+		if (selectionProvider != null) {
+			selectionProvider
+					.addSelectionChangedListener(new ISelectionChangedListener() {
+						public void selectionChanged(SelectionChangedEvent event) {
+							Object selection = event.getSelection();
+							if (selection instanceof TextSelection) {
+								TextSelection textSelection = (TextSelection) selection;
+								if (textSelection.getOffset() == 0) {
+									return;
+								}
+							}
+							handleTextSelection(event);
+						}
+					});
+		}
+	}
+
+	private List getSelectedNodes() {
+		ISelection selection = textEditor.getSelectionProvider().getSelection();
+		if (selection instanceof IStructuredSelection) {
+			return ((IStructuredSelection) selection).toList();
+		}
+		return null;
+	}
+
+	protected void handleTextSelection(SelectionChangedEvent event) {
+		List selectedNodes = getSelectedNodes();
+		if (selectedNodes == null || selectedNodes.isEmpty()) {
+			return;
+		}
+		fSelection = null;
+		if (selectedNodes != null && !selectedNodes.isEmpty()) {
+			List<EditPart> editParts = new ArrayList<EditPart>();
+			for (Object object : selectedNodes) {
+				EObject model = designer.getModelBuilder().getModel(object);
+				if (model == null) {
+					continue;
+				}
+				// EditPart ep = designer.getEditPart(model);
+				// if (ep == null) {
+					continue;
+				// }
+				// editParts.add(ep);
+			}
+			if (!editParts.isEmpty()) {
+				fSelection = new StructuredSelection(editParts);
+			}
+		}
+		if (fSelection == null) {
+			return;
+		}
+		final SelectionChangedEvent newEvent = new SelectionChangedEvent(this,
+				fSelection);
+		for (int i = 0; i < listeners.size(); ++i) {
+			final ISelectionChangedListener l = (ISelectionChangedListener) listeners
+					.get(i);
+			SafeRunner.run(new SafeRunnable() {
+				public void run() {
+					l.selectionChanged(newEvent);
+				}
+			});
+		}
+	}
+
+	public void addSelectionChangedListener(ISelectionChangedListener listener) {
+		if (listeners == null) {
+			listeners = new ArrayList<ISelectionChangedListener>();
+		}
+		listeners.add(listener);
+	}
+
+	public ISelection getSelection() {
+		return fSelection;
+	}
+
+	public void removeSelectionChangedListener(
+			ISelectionChangedListener listener) {
+		if (listeners != null) {
+			listeners.remove(listener);
+		}
+	}
+
+	public void setSelection(ISelection selection) {
+		// 1. highlight TextEditor.
+		StructuredTextViewer textViewer = textEditor.getTextViewer();
+		StyledText styledText = textViewer.getTextWidget();
+		if (Display.getDefault().getFocusControl() == styledText) {
+			return;
+		}
+
+		List newSelection = new ArrayList();
+		Object[] array = ((IStructuredSelection) selection).toArray();
+		for (Object object : array) {
+			if (object instanceof EditPart) {
+				EditPart editPart = (EditPart) object;
+				Object model = editPart.getModel();
+				if (model instanceof EObject) {
+					EObject node = (EObject) model;
+					IDOMNode textNode = designer.getModelBuilder().getTextNode(
+							node);
+					if (textNode != null) {
+						newSelection.add(textNode);
+					}
+				}
+			}
+		}
+		List selectedNodes = getSelectedNodes();
+		if (selectedNodes != null && selectedNodes.containsAll(newSelection)
+				&& newSelection.containsAll(selectedNodes)) {
+			return;
+		}
+		String content = styledText.getText();
+		int startOffset = -1;
+		int endOffset = 0;
+		for (Object object : newSelection) {
+			IDOMNode textNode = (IDOMNode) object;
+			int nodeStartOffset = textNode.getStartOffset();
+			int nodeEndOffset = textNode.getEndOffset();
+			if (startOffset == -1) {
+				startOffset = nodeStartOffset;
+				endOffset = nodeEndOffset;
+			} else {
+				if (nodeStartOffset > startOffset) {
+					if (nodeStartOffset < endOffset) {
+						continue;
+					}
+					String segment = content.substring(endOffset,
+							nodeStartOffset).trim();
+					if (segment.length() == 0) {
+						endOffset = nodeEndOffset;
+					} else {
+						startOffset = 0;
+						endOffset = 0;
+						break;
+					}
+				} else {
+					if (nodeEndOffset > startOffset) {
+						continue;
+					}
+					String segment = content.substring(nodeEndOffset,
+							startOffset).trim();
+					if (segment.length() == 0) {
+						startOffset = nodeStartOffset;
+					} else {
+						startOffset = 0;
+						endOffset = 0;
+						break;
+					}
+
+				}
+			}
+		}
+		if (startOffset == -1) {
+			startOffset = 0;
+		}
+		int length = endOffset - startOffset;
+
+		textViewer.setRangeIndication(startOffset, length, false);
+		textEditor.selectAndReveal(startOffset, length);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/commandstack/CombinedCommandStack.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/commandstack/CombinedCommandStack.java
new file mode 100755
index 0000000..57e32b9
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/commandstack/CombinedCommandStack.java
@@ -0,0 +1,169 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor.commandstack;
+
+import java.util.ArrayList;
+import java.util.EventObject;
+import java.util.List;
+
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.CommandStack;
+import org.eclipse.gef.commands.CommandStackListener;
+
+/**
+ * A combined CommandStack which combine GEF CommandStack and EMF CommandStack together.
+ * 
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class CombinedCommandStack extends BasicCommandStack {
+
+	private boolean stopped;
+	private final List<Object> stackListeners;
+	private GEFCommandStack gefCommandStack = new GEFCommandStack();
+
+	public CombinedCommandStack() {
+		stackListeners = new ArrayList<Object>();
+	}
+
+	public CommandStack getCommandStack4GEF() {
+		return gefCommandStack;
+	}
+
+	public void addCommandStackListener(org.eclipse.emf.common.command.CommandStackListener listener) {
+		stackListeners.add(listener);
+	}
+
+	public void removeCommandStackListener(org.eclipse.emf.common.command.CommandStackListener listener) {
+		stackListeners.remove(listener);
+	}
+
+	protected void notifyListeners() {
+		for (Object listener : stackListeners) {
+			if (listener instanceof CommandStackListener) {
+				((CommandStackListener) listener).commandStackChanged(new EventObject(gefCommandStack));
+			} else if (listener instanceof org.eclipse.emf.common.command.CommandStackListener) {
+				((org.eclipse.emf.common.command.CommandStackListener) listener).commandStackChanged(new EventObject(this));
+			}
+		}
+	}
+
+	/**
+	 * Introduced a <code>stopped</code> argument, which is use to prevent adding coming command to redo/undo command list.
+	 */
+	public void execute(org.eclipse.emf.common.command.Command command) {
+		if (stopped) {
+			if (command != null && command.canExecute()) {
+				command.execute();
+			}
+		} else {
+			super.execute(command);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.emf.common.command.BasicCommandStack#handleError(java.lang.Exception)
+	 */
+	protected void handleError(Exception exception) {
+		if (exception != null) {
+			System.out.println("Execute command error:");
+			exception.printStackTrace();
+		}
+		super.handleError(exception);
+	}
+
+	/**
+	 * Try to stop this command stack, it means all coming commands will be executed directly from now.
+	 */
+	public void stop() {
+		stopped = true;
+	}
+
+	/**
+	 * Try to start this command stack, all coming commands will be executed by the command stack.
+	 */
+	public void start() {
+		stopped = false;
+	}
+
+	private class GEFCommandStack extends CommandStack {
+		public void addCommandStackListener(CommandStackListener listener) {
+			stackListeners.add(listener);
+		}
+
+		public void removeCommandStackListener(CommandStackListener listener) {
+			stackListeners.remove(listener);
+		}
+
+		public boolean canRedo() {
+			return CombinedCommandStack.this.canRedo();
+		}
+
+		public boolean canUndo() {
+			return CombinedCommandStack.this.canUndo();
+		}
+
+		public void execute(Command command) {
+			if (command != null) {
+				org.eclipse.emf.common.command.Command emfCommand = null;
+				if (command instanceof CommandWrap4EMF) {
+					emfCommand = ((CommandWrap4EMF) command).unwrap();
+				} else {
+					emfCommand = new CommandWrap4GEF(command);
+				}
+				CombinedCommandStack.this.execute(emfCommand);
+			}
+		}
+
+		public void flush() {
+			CombinedCommandStack.this.flush();
+		}
+
+		public Command getRedoCommand() {
+			org.eclipse.emf.common.command.Command command = CombinedCommandStack.this.getRedoCommand();
+			Command gefCommand = null;
+			if (command != null) {
+				if (command instanceof CommandWrap4GEF) {
+					gefCommand = ((CommandWrap4GEF) command).unwrap();
+				} else {
+					gefCommand = new CommandWrap4EMF(command);
+				}
+			}
+			return gefCommand;
+		}
+
+		public Command getUndoCommand() {
+			org.eclipse.emf.common.command.Command command = CombinedCommandStack.this.getUndoCommand();
+			Command gefCommand = null;
+			if (command != null) {
+				if (command instanceof CommandWrap4GEF) {
+					gefCommand = ((CommandWrap4GEF) command).unwrap();
+				} else {
+					gefCommand = new CommandWrap4EMF(command);
+				}
+			}
+			return gefCommand;
+		}
+
+		public void redo() {
+			CombinedCommandStack.this.redo();
+		}
+
+		public void undo() {
+			CombinedCommandStack.this.undo();
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/commandstack/CommandWrap4EMF.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/commandstack/CommandWrap4EMF.java
new file mode 100755
index 0000000..3e76ba5
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/commandstack/CommandWrap4EMF.java
@@ -0,0 +1,154 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor.commandstack;
+
+import java.util.Collection;
+import java.util.Collections;
+
+import org.eclipse.gef.commands.Command;
+
+public class CommandWrap4EMF extends Command {
+	private org.eclipse.emf.common.command.Command command;
+
+	/**
+	 * Constructor for CommandWrap4EMF.
+	 */
+	public CommandWrap4EMF(org.eclipse.emf.common.command.Command command) {
+		this.command = command;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#canExecute()
+	 */
+	public boolean canExecute() {
+		return command == null ? false : command.canExecute();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#canUndo()
+	 */
+	public boolean canUndo() {
+		return command == null ? false : command.canUndo();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#chain(Command)
+	 */
+	public Command chain(Command command) {
+		Command chained = this;
+		if (command != null) {
+			org.eclipse.emf.common.command.Command emfCommand = null;
+			if (command instanceof CommandWrap4EMF) {
+				emfCommand = ((CommandWrap4EMF) command).unwrap();
+			} else {
+				emfCommand = new CommandWrap4GEF(command);
+			}
+			emfCommand = this.command.chain(emfCommand);
+			if (emfCommand != null) {
+				if (emfCommand instanceof CommandWrap4GEF) {
+					chained = ((CommandWrap4GEF) emfCommand).unwrap();
+				} else {
+					chained = new CommandWrap4EMF(emfCommand);
+				}
+			}
+		}
+		return chained;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#dispose()
+	 */
+	public void dispose() {
+		if (command != null)
+			command.dispose();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#execute()
+	 */
+	public void execute() {
+		if (command != null)
+			command.execute();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#getLabel()
+	 */
+	public String getLabel() {
+		return command == null ? "CommandWrap4EMF" : command.getLabel(); //$NON-NLS-1$
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#redo()
+	 */
+	public void redo() {
+		if (command != null)
+			command.redo();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#undo()
+	 */
+	public void undo() {
+		if (command != null)
+			command.undo();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#getAffectedObjects()
+	 */
+	public Collection<?> getAffectedObjects() {
+		return command == null ? Collections.EMPTY_LIST : command.getAffectedObjects();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#getDescription()
+	 */
+	public String getDescription() {
+		return command == null ? "CommandWrap4EMF" : command.getDescription(); //$NON-NLS-1$
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#getResult()
+	 */
+	public Collection<?> getResult() {
+		return command == null ? Collections.EMPTY_LIST : command.getResult();
+	}
+
+	public org.eclipse.emf.common.command.Command unwrap() {
+		return command;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/commandstack/CommandWrap4GEF.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/commandstack/CommandWrap4GEF.java
new file mode 100755
index 0000000..9f270b1
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/commandstack/CommandWrap4GEF.java
@@ -0,0 +1,153 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor.commandstack;
+
+import java.util.Collection;
+import java.util.Collections;
+
+import org.eclipse.emf.common.command.Command;
+
+public class CommandWrap4GEF implements Command {
+	private org.eclipse.gef.commands.Command command;
+
+	/**
+	 * Constructor for CommandWrap4GEF.
+	 */
+	public CommandWrap4GEF(org.eclipse.gef.commands.Command command) {
+		this.command = command;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.emf.common.command.Command#canExecute()
+	 */
+	public boolean canExecute() {
+		return command == null ? false : command.canExecute();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.emf.common.command.Command#canUndo()
+	 */
+	public boolean canUndo() {
+		return command == null ? false : command.canUndo();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.emf.common.command.Command#chain(Command)
+	 */
+	public Command chain(Command command) {
+		Command chained = this;
+		if (command != null) {
+			org.eclipse.gef.commands.Command gefCommand = null;
+			if (command instanceof CommandWrap4GEF) {
+				gefCommand = ((CommandWrap4GEF) command).unwrap();
+			} else {
+				gefCommand = new CommandWrap4EMF(command);
+			}
+			gefCommand = this.command.chain(gefCommand);
+			if (gefCommand != null) {
+				if (gefCommand instanceof CommandWrap4EMF) {
+					chained = ((CommandWrap4EMF) gefCommand).unwrap();
+				} else {
+					chained = new CommandWrap4GEF(gefCommand);
+				}
+			}
+		}
+		return chained;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.emf.common.command.Command#dispose()
+	 */
+	public void dispose() {
+		if (command != null)
+			command.dispose();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.emf.common.command.Command#execute()
+	 */
+	public void execute() {
+		if (command != null)
+			command.execute();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.emf.common.command.Command#getAffectedObjects()
+	 */
+	public Collection<?> getAffectedObjects() {
+		return Collections.EMPTY_LIST;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.emf.common.command.Command#getDescription()
+	 */
+	public String getDescription() {
+		return "CommandWrap4GEF"; //$NON-NLS-1$
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.emf.common.command.Command#getLabel()
+	 */
+	public String getLabel() {
+		return command == null ? "CommandWrap4GEF" : command.getLabel(); //$NON-NLS-1$
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.emf.common.command.Command#getResult()
+	 */
+	public Collection<?> getResult() {
+		return Collections.EMPTY_LIST;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.emf.common.command.Command#redo()
+	 */
+	public void redo() {
+		if (command != null)
+			command.redo();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.emf.common.command.Command#undo()
+	 */
+	public void undo() {
+		if (command != null)
+			command.undo();
+	}
+
+	public org.eclipse.gef.commands.Command unwrap() {
+		return command;
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/DropAdapter.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/DropAdapter.java
new file mode 100755
index 0000000..9a342a8
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/DropAdapter.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor.dnd;
+
+import org.eclipse.xwt.tools.ui.palette.ContextType;
+import org.eclipse.swt.dnd.DropTargetListener;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public interface DropAdapter extends DropTargetListener {
+
+	boolean isAccept();
+
+	String getScope();
+
+	ContextType getContextType();
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/DropContext.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/DropContext.java
new file mode 100755
index 0000000..cae098c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/DropContext.java
@@ -0,0 +1,127 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor.dnd;
+
+import org.eclipse.xwt.tools.ui.palette.ContextType;
+import org.eclipse.xwt.tools.ui.palette.Entry;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
+import org.eclipse.xwt.tools.ui.designer.core.editor.text.StructuredTextHelper;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public abstract class DropContext {
+	public int findDropPosition(Node node, Entry entry, int documentPosition) {
+		String scope = entry.getScope();
+		ContextType contextType = entry.getContext();
+
+		return findDropPosition(node, scope, contextType, documentPosition);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.vex.VEXContext#findDropPosition(org.w3c.dom.Node, java.lang.String, org.eclipse.xwt.vex.toolpalette.ContextType, int)
+	 */
+	public int findDropPosition(Node node, String scope, ContextType contextType, int cursorPosition) {
+		IDOMNode treeNode = (IDOMNode) node;
+		// check scope first
+		if (scope != null) {
+			String scopeName = scope.trim();
+			if (scopeName.length() > 0) {
+				// check from registered class
+				if (treeNode.getNodeType() == Node.TEXT_NODE) {
+					Node parentNode = treeNode.getParentNode();
+					if (parentNode == null || !isKindOf(parentNode, scopeName)) {
+						return -1;
+					}
+				}
+			}
+		}
+
+		switch (contextType) {
+		case XML_ALL:
+			break;
+		case XML_ATTRIBUTE:
+			break;
+		case XML_ATTRIBUTE_VALUE: {
+			ITextRegion completionRegion = StructuredTextHelper.getCompletionRegion(cursorPosition, treeNode);
+
+			String regionType = completionRegion.getType();
+
+			if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
+				return ((IDOMNode) treeNode).getStartOffset();
+			}
+			return -1;
+		}
+		case NONE:
+			break;
+		case XML_NEW:
+			break;
+		case XML_TAG: {
+			if (treeNode.getNodeType() == Node.TEXT_NODE) {
+				return treeNode.getStartOffset();
+			}
+
+			// Node node = (Node) treeNode;
+			// while ((node != null) && (node.getNodeType() == Node.TEXT_NODE)
+			// && (node.getParentNode() != null)) {
+			// node = node.getParentNode();
+			// }
+			// IDOMNode xmlnode = treeNode;
+
+			ITextRegion completionRegion = StructuredTextHelper.getCompletionRegion(cursorPosition, treeNode);
+
+			String regionType = completionRegion.getType();
+
+			if (regionType == DOMRegionContext.XML_PI_CLOSE || regionType == DOMRegionContext.XML_PI_OPEN || regionType == DOMRegionContext.XML_CONTENT || regionType == DOMRegionContext.XML_TAG_OPEN || regionType == DOMRegionContext.XML_TAG_CLOSE || regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE || regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME || regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS || regionType == DOMRegionContext.XML_TAG_NAME || regionType == DOMRegionContext.XML_END_TAG_OPEN) {
+				// in case of attribute, find the first text node
+				NodeList nodeList = treeNode.getChildNodes();
+				int length = nodeList.getLength();
+				for (int i = 0; i < length; i++) {
+					Node child = nodeList.item(i);
+					if (child.getNodeType() == Node.TEXT_NODE) {
+						return ((IDOMNode) child).getEndOffset();
+					}
+				}
+
+				if (regionType == DOMRegionContext.XML_END_TAG_OPEN && length == 0) {
+					IStructuredDocumentRegion endStructuredDocumentRegion = treeNode.getEndStructuredDocumentRegion();
+					if (cursorPosition == endStructuredDocumentRegion.getStart()) {
+						return cursorPosition;
+					}
+				}
+			}
+		}
+			return -1;
+		default:
+			throw new UnsupportedOperationException();
+		}
+
+		return cursorPosition;
+	}
+
+	/**
+	 * 
+	 * @param node
+	 * @param targetType
+	 *            a qualified class name
+	 * @return
+	 */
+	protected abstract boolean isKindOf(Node node, String targetType);
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/DropTargetAdapter.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/DropTargetAdapter.java
new file mode 100755
index 0000000..af751a5
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/DropTargetAdapter.java
@@ -0,0 +1,128 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor.dnd;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.swt.dnd.DropTargetEvent;
+import org.eclipse.swt.dnd.DropTargetListener;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class DropTargetAdapter implements DropTargetListener {
+
+	private List<DropAdapter> dropAdapters = new ArrayList<DropAdapter>();
+	private DropAdapter acceptAdapter;
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.swt.dnd.DropTargetAdapter#dragOver(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	public void dragOver(DropTargetEvent event) {
+		updateAcceptAdapter();
+		if (acceptAdapter != null) {
+			acceptAdapter.dragOver(event);
+		}
+	}
+
+	/**
+	 * @param event
+	 */
+	private void updateAcceptAdapter() {
+		for (DropAdapter drop : dropAdapters) {
+			if (drop.isAccept()) {
+				acceptAdapter = drop;
+				break;
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.swt.dnd.DropTargetAdapter#dropAccept(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	public void dropAccept(DropTargetEvent event) {
+		if (acceptAdapter != null) {
+			acceptAdapter.dropAccept(event);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.swt.dnd.DropTargetAdapter#drop(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	public void drop(DropTargetEvent event) {
+		if (acceptAdapter != null) {
+			acceptAdapter.drop(event);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.swt.dnd.DropTargetAdapter#dragEnter(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	public void dragEnter(DropTargetEvent event) {
+		updateAcceptAdapter();
+		if (acceptAdapter != null) {
+			acceptAdapter.dragEnter(event);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.swt.dnd.DropTargetAdapter#dragOperationChanged(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	public void dragOperationChanged(DropTargetEvent event) {
+		updateAcceptAdapter();
+		if (acceptAdapter != null) {
+			acceptAdapter.dragOperationChanged(event);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.swt.dnd.DropTargetAdapter#dragLeave(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	public void dragLeave(DropTargetEvent event) {
+		if (acceptAdapter != null) {
+			acceptAdapter.dragLeave(event);
+		}
+	}
+
+	public void addDropAdapter(DropAdapter adapter) {
+		dropAdapters.add(adapter);
+	}
+
+	/**
+	 * @param dndAdapters
+	 *            the dndAdapters to set
+	 */
+	public void setDropAdapters(List<DropAdapter> dndAdapters) {
+		this.dropAdapters = dndAdapters;
+	}
+
+	/**
+	 * @return the dndAdapters
+	 */
+	public List<DropAdapter> getDropAdapters() {
+		return dropAdapters;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/GraphicalViewerDropCreationListener.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/GraphicalViewerDropCreationListener.java
new file mode 100755
index 0000000..153f390
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/GraphicalViewerDropCreationListener.java
@@ -0,0 +1,96 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor.dnd;
+
+import org.eclipse.gef.EditPartViewer;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.dnd.AbstractTransferDropTargetListener;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gef.requests.CreationFactory;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.xwt.ui.utils.ProjectContext;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public class GraphicalViewerDropCreationListener extends
+		AbstractTransferDropTargetListener {
+
+	public GraphicalViewerDropCreationListener(EditPartViewer viewer) {
+		super(viewer, LocalSelectionTransfer.getTransfer());
+		setEnablementDeterminedByCommand(true);
+	}
+
+	protected void updateTargetRequest() {
+		Request req = getTargetRequest();
+		if (req instanceof CreateRequest) {
+			((CreateRequest) req).setLocation(getDropLocation());
+		}
+	}
+
+	/**
+	 * The purpose of a template is to be copied. Therefore, the drop operation
+	 * can't be anything but <code>DND.DROP_COPY</code>.
+	 * 
+	 * @see AbstractTransferDropTargetListener#handleDragOperationChanged()
+	 */
+	protected void handleDragOperationChanged() {
+		getCurrentEvent().detail = DND.DROP_COPY;
+		super.handleDragOperationChanged();
+	}
+
+	protected void handleDragOver() {
+		getCurrentEvent().detail = DND.DROP_COPY;
+		getCurrentEvent().feedback = DND.FEEDBACK_SCROLL | DND.FEEDBACK_EXPAND;
+		super.handleDragOver();
+	}
+
+	protected Request createTargetRequest() {
+		CreationFactory creationFactory = getCreationFactory();
+		if (creationFactory != null) {
+			CreateRequest createReq = new CreateRequest();
+			createReq.setFactory(creationFactory);
+			return createReq;
+		}
+		return super.createTargetRequest();
+	}
+
+	protected CreationFactory getCreationFactory() {
+		ISelection selection = LocalSelectionTransfer.getTransfer()
+				.getSelection();
+		if (selection instanceof IStructuredSelection) {
+			return createCreationFactory(((IStructuredSelection) selection)
+					.getFirstElement());
+		}
+		return createCreationFactory(selection);
+	}
+
+	protected CreationFactory createCreationFactory(Object selection) {
+		return null;
+	}
+
+	protected Class<?> getClassType(ICompilationUnit unit) {
+		try {
+			IType type = unit.findPrimaryType();
+			return ProjectContext.getContext(type.getJavaProject()).loadClass(
+					type.getFullyQualifiedName());
+		} catch (Exception e) {
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/palette/PaletteDropAdapter.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/palette/PaletteDropAdapter.java
new file mode 100755
index 0000000..66fee61
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/dnd/palette/PaletteDropAdapter.java
@@ -0,0 +1,278 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor.dnd.palette;
+
+import org.eclipse.xwt.tools.ui.palette.ContextType;
+import org.eclipse.xwt.tools.ui.palette.Entry;
+import org.eclipse.jface.text.templates.GlobalTemplateVariables;
+import org.eclipse.jface.text.templates.Template;
+import org.eclipse.jface.text.templates.TemplateBuffer;
+import org.eclipse.jface.text.templates.TemplateVariable;
+import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.dnd.DropTargetEvent;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.xwt.tools.ui.designer.core.editor.Designer;
+import org.eclipse.xwt.tools.ui.designer.core.editor.dnd.DropAdapter;
+import org.eclipse.xwt.tools.ui.designer.core.editor.dnd.DropContext;
+import org.w3c.dom.Node;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class PaletteDropAdapter implements DropAdapter {
+
+	static final int CARET_WIDTH = 2;
+	protected int dropCaretOffset = -1;
+	protected Designer designer;
+	protected LocalSelectionTransfer transfer = LocalSelectionTransfer.getTransfer();
+
+	protected DropContext context;
+	protected Entry entry;
+
+	public PaletteDropAdapter(Designer designer, DropContext context) {
+		this.designer = designer;
+		this.context = context;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapter#drop(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	public void drop(DropTargetEvent event) {
+		Object selection = getSelection();
+		if (!isAccept() || !(selection instanceof Entry)) {
+			return;
+		}
+
+		final Template template = createTemplate(entry);
+		if (template == null) {
+			return;
+		}
+
+		Runnable dropRunnable = new Runnable() {
+			public void run() {
+				drop(template, dropCaretOffset, 0);
+			}
+		};
+		// designer.formatWithCompound(dropRunnable);
+	}
+
+	/**
+	 * @param template
+	 */
+	protected void drop(Template template, int dropCaretOffset, int length) {
+		// IDocument document = designer.getTextViewer().getDocument();
+		// ContextTypeRegistry registry =
+		// XMLUIPlugin.getDefault().getTemplateContextRegistry();
+		// if (registry != null) {
+		// TemplateContextType type =
+		// registry.getContextType(template.getContextTypeId());
+		//
+		// DocumentTemplateContext templateContext = new
+		// DocumentTemplateContext(type, document, new Position(dropCaretOffset,
+		// length));
+		// if (templateContext.canEvaluate(template)) {
+		// try {
+		// TemplateBuffer templateBuffer = templateContext.evaluate(template);
+		// String templateString = templateBuffer.getString();
+		// document.replace(dropCaretOffset, length, templateString);
+		//
+		// StyledText styledText = designer.getTextWidget();
+		// int position = getCursorOffset(templateBuffer) + dropCaretOffset;
+		// styledText.setCaretOffset(position);
+		// styledText.setFocus();
+		// } catch (Exception e) {
+		// throw new RuntimeException(e);
+		// }
+		// }
+		// }
+	}
+
+	protected Template createTemplate(Entry entry) {
+		return new Template(entry.getName(), "", getContextType().getName(), entry.getContent(), true);
+	};
+
+	protected int getCursorOffset(TemplateBuffer buffer) {
+		TemplateVariable[] variables = buffer.getVariables();
+		for (int i = 0; i != variables.length; i++) {
+			TemplateVariable variable = variables[i];
+			if (variable.getType().equals(GlobalTemplateVariables.Cursor.NAME))
+				return variable.getOffsets()[0];
+		}
+
+		return buffer.getString().length();
+	}
+
+	public void dragOver(DropTargetEvent event) {
+		// if (!isAccept() || !(getSelection() instanceof Entry)) {
+		// return;
+		// }
+		// this.entry = (Entry) getSelection();
+		// Node node = getCurrentNode(event);
+		// int position = context.findDropPosition(node, getScope(),
+		// getContextType(), getCursor(event));
+		// if (position < 0) {
+		// event.detail = DND.DROP_NONE;
+		// } else {
+		// StyledText styledText = designer.getTextWidget();
+		// setDropCaretOffset(position);
+		// refreshCaret(styledText, getDropCaretOffset());
+		// event.detail = DND.DROP_COPY;
+		// }
+	}
+
+	protected Node getCurrentNode(DropTargetEvent event) {
+		// StructuredTextViewer textViewer =
+		// designer.getTextEditor().getTextViewer();
+		// return StructuredTextHelper.getNode(textViewer, getCursor(event));
+		return null;
+	}
+
+	protected int getCursor(DropTargetEvent event) {
+		// StructuredTextViewer textViewer =
+		// designer.getTextEditor().getTextViewer();
+		// return StructuredTextHelper.getOffsetAtPoint(textViewer, new
+		// Point(event.x, event.y));
+		return 0;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.swt.dnd.DropTargetListener#dragEnter(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	public void dragEnter(DropTargetEvent event) {
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.swt.dnd.DropTargetListener#dragLeave(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	public void dragLeave(DropTargetEvent event) {
+		// StyledText styledText = designer.getTextWidget();
+		// if (getDropCaretOffset() != -1) {
+		// refreshCaret(styledText, getDropCaretOffset());
+		// }
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.swt.dnd.DropTargetListener#dragOperationChanged(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	public void dragOperationChanged(DropTargetEvent event) {
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.swt.dnd.DropTargetListener#dropAccept(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	public void dropAccept(DropTargetEvent event) {
+
+	}
+
+	protected void refreshCaret(StyledText text, int newOffset) {
+		if (newOffset != -1) {
+			Point newPos = text.getLocationAtOffset(newOffset);
+			int newHeight = text.getLineHeight(newOffset);
+			text.redraw(newPos.x, newPos.y, CARET_WIDTH, newHeight, false);
+		}
+	}
+
+	/**
+	 * @param editor
+	 *            the editor to set
+	 */
+	public void setDesigner(Designer editor) {
+		this.designer = editor;
+	}
+
+	/**
+	 * @return the editor
+	 */
+	public Designer getDesigner() {
+		return designer;
+	}
+
+	protected Object getSelection() {
+		IStructuredSelection selection = (IStructuredSelection) transfer.getSelection();
+		if (selection != null) {
+			return selection.getFirstElement();
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapter#isAccept()
+	 */
+	public boolean isAccept() {
+		Object selection = getSelection();
+		if (selection == null) {
+			return false;
+		}
+		return isAccept(selection);
+	}
+
+	/**
+	 * @param selection
+	 * @return
+	 */
+	protected boolean isAccept(Object selection) {
+		if (selection instanceof Entry) {
+			return true;
+		}
+		return false;
+	};
+
+	/**
+	 * @param dropCaretOffset
+	 *            the dropCaretOffset to set
+	 */
+	public void setDropCaretOffset(int dropCaretOffset) {
+		this.dropCaretOffset = dropCaretOffset;
+	}
+
+	/**
+	 * @return the dropCaretOffset
+	 */
+	public int getDropCaretOffset() {
+		return dropCaretOffset;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.tools.designer.editor.dnd.DropAdapter#getContextType()
+	 */
+	public ContextType getContextType() {
+		return entry.getContext();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.tools.designer.editor.dnd.DropAdapter#getScope()
+	 */
+	public String getScope() {
+		return entry.getScope();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/DesignerOutlinePage.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/DesignerOutlinePage.java
new file mode 100755
index 0000000..bb08a2e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/DesignerOutlinePage.java
@@ -0,0 +1,121 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor.outline;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartFactory;
+import org.eclipse.gef.RootEditPart;
+import org.eclipse.gef.dnd.AbstractTransferDropTargetListener;
+import org.eclipse.gef.editparts.AbstractTreeEditPart;
+import org.eclipse.gef.ui.parts.ContentOutlinePage;
+import org.eclipse.gef.ui.parts.TreeViewer;
+import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.swt.dnd.DropTargetEvent;
+import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class DesignerOutlinePage extends ContentOutlinePage {
+
+	private EditDomain editDomain;
+	private EditPartFactory editPartFactory;
+
+	public DesignerOutlinePage(EditDomain editDomain,
+			EditPartFactory editPartFactory) {
+		super(new TreeViewer());
+		this.editDomain = editDomain;
+		this.editPartFactory = editPartFactory;
+		configureTreeViewer();
+	}
+
+	public TreeViewer getTreeViewer() {
+		return (TreeViewer) getViewer();
+	}
+
+	public EditDomain getEditDomain() {
+		return editDomain;
+	}
+
+	protected void configureTreeViewer() {
+		TreeViewer treeViewer = getTreeViewer();
+		editDomain.addViewer(treeViewer);
+		treeViewer.setEditPartFactory(editPartFactory);
+		treeViewer
+				.addDropTargetListener(new AbstractTransferDropTargetListener(
+						treeViewer, LocalSelectionTransfer.getTransfer()) {
+					protected void updateTargetRequest() {
+
+					}
+
+					public void dragOver(DropTargetEvent event) {
+						super.dragOver(event);
+						System.out
+								.println("DesignerOutlinePage.configureTreeViewer().new AbstractTransferDropTargetListener() {...}.dragOver()");
+					}
+
+					protected void handleHover() {
+						super.handleHover();
+						System.out
+								.println("DesignerOutlinePage.configureTreeViewer().new AbstractTransferDropTargetListener() {...}.handleHover()");
+					}
+				});
+	}
+
+	public void setContents(final Object contents) {
+		TreeViewer treeViewer = getTreeViewer();
+		if (treeViewer == null) {
+			return;
+		}
+		RootEditPart rootEditPart = treeViewer.getRootEditPart();
+		EditPart rootEp = new AbstractTreeEditPart() {
+			protected List getModelChildren() {
+				ArrayList children = new ArrayList();
+				children.add(contents);
+				return children;
+			}
+		};
+		rootEditPart.setContents(rootEp);
+	}
+
+	public void refresh(Object model) {
+		if (model == null) {
+			return;
+		}
+		TreeViewer treeViewer = getTreeViewer();
+		if (treeViewer == null) {
+			return;
+		}
+		if (model instanceof EditPart) {
+			model = ((EditPart) model).getModel();
+		}
+		EditPart editPart = (EditPart) treeViewer.getEditPartRegistry().get(
+				model);
+		if (editPart == null) {
+			editPart = treeViewer.getContents();
+		}
+		refresh(editPart);
+	}
+
+	private void refresh(EditPart editPart) {
+		editPart.refresh();
+		List<?> children = editPart.getChildren();
+		for (Object object : children) {
+			refresh((EditPart) object);
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/TreeEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/TreeEditPart.java
new file mode 100755
index 0000000..23d086e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/TreeEditPart.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor.outline;
+
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.editparts.AbstractTreeEditPart;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.swt.graphics.Image;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public class TreeEditPart extends AbstractTreeEditPart {
+
+	private final ILabelProvider labelProvider;
+
+	public TreeEditPart(Object model) {
+		this(model, null);
+	}
+
+	public TreeEditPart(Object model, ILabelProvider labelProvider) {
+		super(model);
+		this.labelProvider = labelProvider;
+	}
+
+	protected String getText() {
+		if (labelProvider != null) {
+			return labelProvider.getText(getModel());
+		}
+		return super.getText();
+	}
+
+	protected Image getImage() {
+		if (labelProvider != null) {
+			return labelProvider.getImage(getModel());
+		}
+		return super.getImage();
+	}
+
+	protected void createEditPolicies() {
+		installEditPolicy(EditPolicy.TREE_CONTAINER_ROLE,
+				new TreeItemEditPolicy());
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/TreeItemEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/TreeItemEditPart.java
new file mode 100755
index 0000000..7a4c2ca
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/TreeItemEditPart.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor.outline;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public class TreeItemEditPart extends TreeEditPart {
+
+	private final ITreeContentProvider contentProvider;
+
+	public TreeItemEditPart(Object model) {
+		this(model, null, null);
+	}
+
+	public TreeItemEditPart(Object model, ITreeContentProvider contentProvider,
+			ILabelProvider labelProvider) {
+		super(model, labelProvider);
+		this.contentProvider = contentProvider;
+	}
+
+	protected List getModelChildren() {
+		if (contentProvider != null) {
+			Object[] children = contentProvider.getChildren(getModel());
+			if (children != null && children.length > 0) {
+				return new ArrayList(Arrays.asList(children));
+			}
+		}
+		return super.getModelChildren();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/TreeItemEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/TreeItemEditPolicy.java
new file mode 100755
index 0000000..ef7fd1f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/TreeItemEditPolicy.java
@@ -0,0 +1,86 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor.outline;
+
+import org.eclipse.gef.Request;
+import org.eclipse.gef.TreeEditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.TreeContainerEditPolicy;
+import org.eclipse.gef.requests.ChangeBoundsRequest;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gef.requests.DropRequest;
+import org.eclipse.gef.requests.GroupRequest;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.swt.widgets.Widget;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public class TreeItemEditPolicy extends TreeContainerEditPolicy {
+
+	public Command getCommand(Request req) {
+		if (req.getType() == REQ_ORPHAN_CHILDREN) {
+			return getOrphanChildrenCommand((GroupRequest) req);
+		} else if (req.getType() == REQ_DELETE) {
+			return getDeleteCommand(req);
+		} else if (req.getType() == REQ_MOVE) {
+			ChangeBoundsRequest request = new ChangeBoundsRequest(
+					REQ_MOVE_CHILDREN);
+			request.setEditParts(getHost());
+			if (req instanceof ChangeBoundsRequest) {
+				request.setLocation(((ChangeBoundsRequest) req).getLocation());
+			}
+			return getHost().getParent().getCommand(request);
+		}
+		return super.getCommand(req);
+	}
+
+	protected Command getDeleteCommand(Request req) {
+		return null;
+	}
+
+	protected Command getOrphanChildrenCommand(GroupRequest req) {
+		return null;
+	}
+
+	protected Command getAddCommand(ChangeBoundsRequest request) {
+		return null;
+	}
+
+	protected Command getCreateCommand(CreateRequest request) {
+		return null;
+	}
+
+	protected Command getMoveChildrenCommand(ChangeBoundsRequest request) {
+		return null;
+	}
+
+	public void showTargetFeedback(Request req) {
+		super.showTargetFeedback(req);
+		if (req.getType().equals(REQ_MOVE) || req.getType().equals(REQ_ADD)
+				|| req.getType().equals(REQ_CREATE)) {
+			expandTreeItem((DropRequest) req);
+		}
+	}
+
+	private void expandTreeItem(DropRequest req) {
+		Widget hostWidget = ((TreeEditPart) getHost()).getWidget();
+		if (hostWidget == null || hostWidget.isDisposed()
+				|| !(hostWidget instanceof TreeItem)) {
+			return;
+		}
+		TreeItem treeItem = (TreeItem) hostWidget;
+		treeItem.setExpanded(true);
+
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/dnd/OutlineDragListener.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/dnd/OutlineDragListener.java
new file mode 100755
index 0000000..7f6a52f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/dnd/OutlineDragListener.java
@@ -0,0 +1,88 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor.outline.dnd;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.dnd.DragSourceEvent;
+import org.eclipse.swt.dnd.DragSourceListener;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class OutlineDragListener implements DragSourceListener {
+
+	private TreeViewer treeViewer;
+
+	public OutlineDragListener(TreeViewer treeViewer) {
+		this.treeViewer = treeViewer;
+	}
+
+	private ISelection getSelection() {
+		if (treeViewer == null) {
+			return null;
+		}
+
+		ISelection selection = treeViewer.getSelection();
+		if (selection == null || selection.isEmpty()) {
+			return null;
+		}
+		IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+		ArrayList<Object> collector = new ArrayList<Object>();
+		for (Iterator<?> iterator = structuredSelection.iterator(); iterator.hasNext();) {
+			Object element = iterator.next();
+			if (element instanceof EditPart) {
+				collector.add(((EditPart) element).getModel());
+			}
+			else {
+				collector.add(element);				
+			}
+		}
+		return new StructuredSelection(collector.toArray());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.swt.dnd.DragSourceListener#dragFinished(org.eclipse.swt.dnd.DragSourceEvent)
+	 */
+	public void dragFinished(DragSourceEvent event) {
+		OutlineNodeTransfer.getTransfer().setSelection(null);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.swt.dnd.DragSourceListener#dragSetData(org.eclipse.swt.dnd.DragSourceEvent)
+	 */
+	public void dragSetData(DragSourceEvent event) {
+		event.data = getSelection();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.swt.dnd.DragSourceListener#dragStart(org.eclipse.swt.dnd.DragSourceEvent)
+	 */
+	public void dragStart(DragSourceEvent event) {
+		ISelection selection = getSelection();
+		if (selection == null) {
+			event.doit = false;
+		}
+		OutlineNodeTransfer.getTransfer().setSelection(selection);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/dnd/OutlineDropListener.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/dnd/OutlineDropListener.java
new file mode 100755
index 0000000..02f7266
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/dnd/OutlineDropListener.java
@@ -0,0 +1,86 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor.outline.dnd;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.ViewerDropAdapter;
+import org.eclipse.swt.dnd.DropTargetEvent;
+import org.eclipse.swt.dnd.TransferData;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class OutlineDropListener extends ViewerDropAdapter {
+
+	private OutlineDropManager dropManager;
+	private Command dropCommand;
+
+	public OutlineDropListener(TreeViewer viewer, OutlineDropManager dropManager) {
+		super(viewer);
+		this.dropManager = dropManager;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ViewerDropAdapter#performDrop(java.lang.Object)
+	 */
+	public boolean performDrop(Object data) {
+		return dropManager.execute(dropCommand);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ViewerDropAdapter#determineTarget(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	protected Object determineTarget(DropTargetEvent event) {
+		Object target = super.determineTarget(event);
+		if (target instanceof EditPart) {
+			target = ((EditPart) target).getModel();
+		}
+		return target;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ViewerDropAdapter#validateDrop(java.lang.Object, int, org.eclipse.swt.dnd.TransferData)
+	 */
+	public boolean validateDrop(Object target, int operation, TransferData transferType) {
+		if (dropManager == null || target == null) {
+			return false;
+		}
+		OutlineNodeTransfer transfer = OutlineNodeTransfer.getTransfer();
+		IStructuredSelection selection = transfer.getSelection();
+		if (selection == null) {
+			return false;
+		}
+		int currentLocation = getCurrentLocation();
+		switch (currentLocation) {
+		case LOCATION_AFTER: {
+			dropCommand = dropManager.getMoveAfter(selection, target, getCurrentOperation());
+			break;
+		}
+		case LOCATION_BEFORE: {
+			dropCommand = dropManager.getMoveBefore(selection, target, getCurrentOperation());
+			break;
+		}
+		case LOCATION_ON: {
+			dropCommand = dropManager.getMoveOn(selection, target, getCurrentOperation());
+			break;
+		}
+		}
+		return dropCommand != null && dropCommand.canExecute();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/dnd/OutlineDropManager.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/dnd/OutlineDropManager.java
new file mode 100755
index 0000000..0d84505
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/dnd/OutlineDropManager.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor.outline.dnd;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public interface OutlineDropManager {
+
+	/**
+	 * Create a command for moving 'source' object after 'target' object.
+	 * 
+	 * @param source
+	 * @param target
+	 * @param operation  DND.DROP_COPY, DND#DROP_MOVE or DND#DROP_LINK
+	 * @return command of dragging from outline.
+	 */
+	Command getMoveAfter(IStructuredSelection source, Object target, int operation);
+
+	/**
+	 * Create a command for moving 'source' object before 'target' object.
+	 * 
+	 * @param source
+	 * @param target
+	 * @param operation  DND.DROP_COPY, DND#DROP_MOVE or DND#DROP_LINK
+	 * @return command of dragging from outline.
+	 */
+	Command getMoveBefore(IStructuredSelection source, Object target, int operation);
+
+	/**
+	 * Create a command for moving 'source' object on 'target' object.
+	 * 
+	 * @param source
+	 * @param target
+	 * @param operation  DND.DROP_COPY, DND#DROP_MOVE or DND#DROP_LINK
+	 * @return command of dragging from outline.
+	 */
+	Command getMoveOn(IStructuredSelection source, Object target, int operation);
+
+	/**
+	 * Execute given command with commandStack or not.
+	 * 
+	 * @param command
+	 */
+	boolean execute(Command command);
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/dnd/OutlineNodeTransfer.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/dnd/OutlineNodeTransfer.java
new file mode 100755
index 0000000..d844e93
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/outline/dnd/OutlineNodeTransfer.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor.outline.dnd;
+
+import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.dnd.TransferData;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class OutlineNodeTransfer extends LocalSelectionTransfer {
+	public static final OutlineNodeTransfer INSTANCE = new OutlineNodeTransfer();
+
+	private LocalSelectionTransfer jfaceTransfer = LocalSelectionTransfer.getTransfer();
+
+	private OutlineNodeTransfer() {
+	}
+
+	public static OutlineNodeTransfer getTransfer() {
+		return INSTANCE;
+	}
+
+	public void setSelection(ISelection selection) {
+		jfaceTransfer.setSelection(selection);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.util.LocalSelectionTransfer#getSelection()
+	 */
+	public IStructuredSelection getSelection() {
+		IStructuredSelection selection = (IStructuredSelection) jfaceTransfer.getSelection();
+		if (selection == null) {
+			selection = (IStructuredSelection) super.getSelection();
+		}
+		return selection;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.util.LocalSelectionTransfer#nativeToJava(org.eclipse.swt.dnd.TransferData)
+	 */
+	public Object nativeToJava(TransferData transferData) {
+		return jfaceTransfer.nativeToJava(transferData);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.util.LocalSelectionTransfer#javaToNative(java.lang.Object, org.eclipse.swt.dnd.TransferData)
+	 */
+	public void javaToNative(Object object, TransferData transferData) {
+		jfaceTransfer.javaToNative(object, transferData);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/text/StructuredTextHelper.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/text/StructuredTextHelper.java
new file mode 100755
index 0000000..320e59b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/text/StructuredTextHelper.java
@@ -0,0 +1,195 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor.text;
+
+import java.lang.reflect.Method;
+
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.wst.sse.core.StructuredModelManager;
+import org.eclipse.wst.sse.core.internal.format.IStructuredFormatProcessor;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
+import org.eclipse.wst.sse.ui.internal.FormatProcessorsExtensionReader;
+import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
+import org.w3c.dom.Node;
+
+public class StructuredTextHelper {
+
+	public static final String CONTENT_TYPE = "content-type.xaml";
+
+	public static void format(IDocument document) {
+		if (document instanceof IStructuredDocument) {
+			IStructuredDocument structDocument = (IStructuredDocument) document;
+			IStructuredModel model = StructuredModelManager.getModelManager().getModelForEdit(structDocument);
+			IStructuredFormatProcessor processor = getFormatProcessor(CONTENT_TYPE);
+			if (model != null && processor != null) {
+				processor.formatModel(model);
+			}
+		}
+	}
+
+	protected static IStructuredFormatProcessor getFormatProcessor(String contentTypeId) {
+		return FormatProcessorsExtensionReader.getInstance().getFormatProcessor(contentTypeId);
+	}
+
+	public static int getOffsetAtPoint(ITextViewer textViewer, Point absolutePosition) {
+		StyledText styledText = textViewer.getTextWidget();
+		Point relativePosition = styledText.toControl(absolutePosition);
+
+		try {
+			Method method = StyledText.class.getDeclaredMethod("getOffsetAtPoint", int.class, int.class, int[].class, boolean.class);
+			method.setAccessible(true);
+
+			int[] trailing = new int[1];
+			int widgetOffset = (Integer) method.invoke(styledText, relativePosition.x, relativePosition.y, trailing, false);
+			widgetOffset += trailing[0];
+			return widgetOffset;
+		} catch (Exception e) {
+			throw new RuntimeException(e);
+		}
+	}
+
+	public static IDOMNode getCurrentNode(ITextViewer textViewer, Point absolutePosition) {
+		return getNode(textViewer, getOffsetAtPoint(textViewer, absolutePosition));
+	}
+
+	public static IDOMNode getNode(ITextViewer textViewer, int documentPosition) {
+		return (IDOMNode) ContentAssistUtils.getNodeAt(textViewer, documentPosition);
+	}
+
+	static public ITextRegion getCompletionRegion(int documentPosition, Node domnode) {
+		if (domnode == null) {
+			return null;
+		}
+
+		ITextRegion region = null;
+		int offset = documentPosition;
+		IStructuredDocumentRegion flatNode = null;
+		IDOMNode node = (IDOMNode) domnode;
+
+		if (node.getNodeType() == Node.DOCUMENT_NODE) {
+			if (node.getStructuredDocument().getLength() == 0) {
+				return null;
+			}
+			ITextRegion result = node.getStructuredDocument().getRegionAtCharacterOffset(offset).getRegionAtCharacterOffset(offset);
+			while (result == null) {
+				offset--;
+				result = node.getStructuredDocument().getRegionAtCharacterOffset(offset).getRegionAtCharacterOffset(offset);
+			}
+			return result;
+		}
+
+		IStructuredDocumentRegion startTag = node.getStartStructuredDocumentRegion();
+		IStructuredDocumentRegion endTag = node.getEndStructuredDocumentRegion();
+
+		// Determine if the offset is within the start
+		// IStructuredDocumentRegion, end IStructuredDocumentRegion, or
+		// somewhere within the Node's XML content.
+		if ((startTag != null) && (startTag.getStartOffset() <= offset) && (offset < startTag.getStartOffset() + startTag.getLength())) {
+			flatNode = startTag;
+		} else if ((endTag != null) && (endTag.getStartOffset() <= offset) && (offset < endTag.getStartOffset() + endTag.getLength())) {
+			flatNode = endTag;
+		}
+
+		if (flatNode != null) {
+			// the offset is definitely within the start or end tag, continue
+			// on and find the region
+			region = getCompletionRegion(offset, flatNode);
+		} else {
+			// the docPosition is neither within the start nor the end, so it
+			// must be content
+			flatNode = node.getStructuredDocument().getRegionAtCharacterOffset(offset);
+			// (pa) ITextRegion refactor
+			// if (flatNode.contains(documentPosition)) {
+			if ((flatNode.getStartOffset() <= documentPosition) && (flatNode.getEndOffset() >= documentPosition)) {
+				// we're interesting in completing/extending the previous
+				// IStructuredDocumentRegion if the current
+				// IStructuredDocumentRegion isn't plain content or if it's
+				// preceded by an orphan '<'
+				if ((offset == flatNode.getStartOffset()) && (flatNode.getPrevious() != null) && (((flatNode.getRegionAtCharacterOffset(documentPosition) != null) && (flatNode.getRegionAtCharacterOffset(documentPosition).getType() != DOMRegionContext.XML_CONTENT)) || (flatNode.getPrevious().getLastRegion().getType() == DOMRegionContext.XML_TAG_OPEN) || (flatNode.getPrevious().getLastRegion().getType() == DOMRegionContext.XML_END_TAG_OPEN))) {
+					// Is the region also the start of the node? If so, the
+					// previous IStructuredDocumentRegion is
+					// where to look for a useful region.
+					region = flatNode.getPrevious().getLastRegion();
+				} else if (flatNode.getEndOffset() == documentPosition) {
+					region = flatNode.getLastRegion();
+				} else {
+					region = flatNode.getFirstRegion();
+				}
+			} else {
+				// catch end of document positions where the docPosition isn't
+				// in a IStructuredDocumentRegion
+				region = flatNode.getLastRegion();
+			}
+		}
+
+		return region;
+	}
+
+	static protected ITextRegion getCompletionRegion(int offset, IStructuredDocumentRegion sdRegion) {
+		ITextRegion region = sdRegion.getRegionAtCharacterOffset(offset);
+		if (region == null) {
+			return null;
+		}
+
+		if (sdRegion.getStartOffset(region) == offset) {
+			// The offset is at the beginning of the region
+			if ((sdRegion.getStartOffset(region) == sdRegion.getStartOffset()) && (sdRegion.getPrevious() != null) && (!sdRegion.getPrevious().isEnded())) {
+				// Is the region also the start of the node? If so, the
+				// previous IStructuredDocumentRegion is
+				// where to look for a useful region.
+				region = sdRegion.getPrevious().getRegionAtCharacterOffset(offset - 1);
+			} else {
+				// Is there no separating whitespace from the previous region?
+				// If not,
+				// then that region is the important one
+				ITextRegion previousRegion = sdRegion.getRegionAtCharacterOffset(offset - 1);
+				if ((previousRegion != null) && (previousRegion != region) && (previousRegion.getTextLength() == previousRegion.getLength())) {
+					region = previousRegion;
+				}
+			}
+		} else {
+			// The offset is NOT at the beginning of the region
+			if (offset > sdRegion.getStartOffset(region) + region.getTextLength()) {
+				// Is the offset within the whitespace after the text in this
+				// region?
+				// If so, use the next region
+				ITextRegion nextRegion = sdRegion.getRegionAtCharacterOffset(sdRegion.getStartOffset(region) + region.getLength());
+				if (nextRegion != null) {
+					region = nextRegion;
+				}
+			} else {
+				// Is the offset within the important text for this region?
+				// If so, then we've already got the right one.
+			}
+		}
+
+		// valid WHITE_SPACE region handler (#179924)
+		if ((region != null) && (region.getType() == DOMRegionContext.WHITE_SPACE)) {
+			ITextRegion previousRegion = sdRegion.getRegionAtCharacterOffset(sdRegion.getStartOffset(region) - 1);
+			if (previousRegion != null) {
+				region = previousRegion;
+			}
+		}
+
+		return region;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/text/assist/SelectionCompletionProposal.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/text/assist/SelectionCompletionProposal.java
new file mode 100755
index 0000000..59446ff
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/editor/text/assist/SelectionCompletionProposal.java
@@ -0,0 +1,203 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.editor.text.assist;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.contentassist.ICompletionProposal;
+import org.eclipse.jface.text.contentassist.IContextInformation;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+
+public class SelectionCompletionProposal implements ICompletionProposal {
+
+	/** The string to be displayed in the completion proposal popup. */
+	private String fDisplayString;
+	/** The replacement string. */
+	private String fReplacementString;
+	/** The replacement offset. */
+	private int fReplacementOffset;
+	/** The replacement length. */
+	private int fReplacementLength;
+	/** The cursor position after this proposal has been applied. */
+	private int fCursorPosition;
+
+	/** The length of selection after this proposal has been applied. */
+	private int fSelectionlength;
+
+	/** The image to be displayed in the completion proposal popup. */
+	private Image fImage;
+	/** The context information of this proposal. */
+	private IContextInformation fContextInformation;
+	/** The additional info of this proposal. */
+	private String fAdditionalProposalInfo;
+
+	/**
+	 * Creates a new completion proposal based on the provided information. The replacement string is considered being the display string too. All remaining fields are set to <code>null</code>.
+	 * 
+	 * @param replacementString
+	 *            the actual string to be inserted into the document
+	 * @param replacementOffset
+	 *            the offset of the text to be replaced
+	 * @param replacementLength
+	 *            the length of the text to be replaced
+	 * @param cursorPosition
+	 *            the position of the cursor following the insert relative to replacementOffset
+	 */
+	public SelectionCompletionProposal(String replacementString, int replacementOffset, int replacementLength, int cursorPosition) {
+		this(replacementString, replacementOffset, replacementLength, cursorPosition, 0, null, null, null, null);
+	}
+
+	/**
+	 * Creates a new completion proposal. All fields are initialized based on the provided information.
+	 * 
+	 * @param replacementString
+	 *            the actual string to be inserted into the document
+	 * @param replacementOffset
+	 *            the offset of the text to be replaced
+	 * @param replacementLength
+	 *            the length of the text to be replaced
+	 * @param cursorPosition
+	 *            the position of the cursor following the insert relative to replacementOffset
+	 * @param image
+	 *            the image to display for this proposal
+	 * @param displayString
+	 *            the string to be displayed for the proposal
+	 * @param contextInformation
+	 *            the context information associated with this proposal
+	 * @param additionalProposalInfo
+	 *            the additional information associated with this proposal
+	 */
+	public SelectionCompletionProposal(String replacementString, int replacementOffset, int replacementLength, int cursorPosition, int selectionLength, Image image, String displayString, IContextInformation contextInformation, String additionalProposalInfo) {
+		Assert.isNotNull(replacementString);
+		Assert.isTrue(replacementOffset >= 0);
+		Assert.isTrue(replacementLength >= 0);
+		Assert.isTrue(cursorPosition >= 0);
+
+		fReplacementString = replacementString;
+		fReplacementOffset = replacementOffset;
+		fReplacementLength = replacementLength;
+		fCursorPosition = cursorPosition;
+		fSelectionlength = selectionLength;
+		fImage = image;
+		fDisplayString = displayString;
+		fContextInformation = contextInformation;
+		fAdditionalProposalInfo = additionalProposalInfo;
+	}
+
+	/*
+	 * @see ICompletionProposal#apply(IDocument)
+	 */
+	public void apply(IDocument document) {
+		try {
+			document.replace(fReplacementOffset, fReplacementLength, fReplacementString);
+		} catch (BadLocationException x) {
+			// ignore
+		}
+	}
+
+	/*
+	 * @see ICompletionProposal#getSelection(IDocument)
+	 */
+	public Point getSelection(IDocument document) {
+		return new Point(fReplacementOffset + fCursorPosition, fSelectionlength);
+	}
+
+	/*
+	 * @see ICompletionProposal#getContextInformation()
+	 */
+	public IContextInformation getContextInformation() {
+		return fContextInformation;
+	}
+
+	/*
+	 * @see ICompletionProposal#getImage()
+	 */
+	public Image getImage() {
+		return fImage;
+	}
+
+	/*
+	 * @see ICompletionProposal#getDisplayString()
+	 */
+	public String getDisplayString() {
+		if (fDisplayString != null)
+			return fDisplayString;
+		return fReplacementString;
+	}
+
+	/*
+	 * @see ICompletionProposal#getAdditionalProposalInfo()
+	 */
+	public String getAdditionalProposalInfo() {
+		return fAdditionalProposalInfo;
+	}
+
+	public void setDisplayString(String displayString) {
+		fDisplayString = displayString;
+	}
+
+	public String getReplacementString() {
+		return fReplacementString;
+	}
+
+	public void setReplacementString(String replacementString) {
+		fReplacementString = replacementString;
+	}
+
+	public int getReplacementOffset() {
+		return fReplacementOffset;
+	}
+
+	public void setReplacementOffset(int replacementOffset) {
+		fReplacementOffset = replacementOffset;
+	}
+
+	public int getReplacementLength() {
+		return fReplacementLength;
+	}
+
+	public void setReplacementLength(int replacementLength) {
+		fReplacementLength = replacementLength;
+	}
+
+	public int getCursorPosition() {
+		return fCursorPosition;
+	}
+
+	public void setCursorPosition(int cursorPosition) {
+		fCursorPosition = cursorPosition;
+	}
+
+	public int getSelectionlength() {
+		return fSelectionlength;
+	}
+
+	public void setSelectionlength(int selectionlength) {
+		fSelectionlength = selectionlength;
+	}
+
+	public void setImage(Image image) {
+		fImage = image;
+	}
+
+	public void setContextInformation(IContextInformation contextInformation) {
+		fContextInformation = contextInformation;
+	}
+
+	public void setAdditionalProposalInfo(String additionalProposalInfo) {
+		fAdditionalProposalInfo = additionalProposalInfo;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/figures/ContentPaneFigure.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/figures/ContentPaneFigure.java
new file mode 100755
index 0000000..483fd4a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/figures/ContentPaneFigure.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.figures;
+
+import org.eclipse.draw2d.AbstractHintLayout;
+import org.eclipse.draw2d.Figure;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Rectangle;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ContentPaneFigure extends Figure {
+	private IFigure contentPane;
+
+	private static final ContentPaneLayout DEFAULT_LAYOUT = new ContentPaneLayout();
+
+	public ContentPaneFigure() {
+		setLayoutManager(DEFAULT_LAYOUT);
+	}
+
+	public void setContentPane(IFigure contentPane) {
+		this.contentPane = contentPane;
+		if (contentPane.getParent() != this) {
+			add(contentPane, 0);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.draw2d.Figure#setBounds(org.eclipse.draw2d.geometry.Rectangle)
+	 */
+	public void setBounds(Rectangle rect) {
+		super.setBounds(rect);
+		IFigure contentPane = getContentPane();
+		if (contentPane != null) {
+			contentPane.setBounds(getClientArea());
+		}
+
+	}
+
+	public IFigure getContentPane() {
+		return contentPane;
+	}
+
+	public static class ContentPaneLayout extends AbstractHintLayout {
+
+		protected Dimension calculatePreferredSize(IFigure container, int wHint, int hHint) {
+			ContentPaneFigure cf = (ContentPaneFigure) container;
+			return cf.getContentPane() != null ? cf.getContentPane().getPreferredSize(wHint, hHint) : new Dimension();
+		}
+
+		public void layout(IFigure container) {
+			ContentPaneFigure cf = (ContentPaneFigure) container;
+			Rectangle r = cf.getClientArea();
+			IFigure contentPane = cf.getContentPane();
+			if (contentPane != null) {
+				contentPane.setBounds(r);
+			}
+		}
+
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/figures/ImageFigure.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/figures/ImageFigure.java
new file mode 100755
index 0000000..37b0dd0
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/figures/ImageFigure.java
@@ -0,0 +1,112 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.figures;
+
+/*
+ *  $RCSfile: ImageFigure.java,v $
+ *  $Revision: 1.3 $  $Date: 2010/06/18 00:15:23 $ 
+ */
+
+import org.eclipse.draw2d.Figure;
+import org.eclipse.draw2d.Graphics;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.swt.graphics.Image;
+
+/**
+ * Figure that takes an image and will display it. This figure will not own the image. It is the responsibility of the caller to maintain the image.
+ */
+public class ImageFigure extends Figure {
+
+	protected Image image;
+	protected boolean useParentImageFigure = false;
+
+	{
+		setPreferredSize(10, 10);
+	}
+
+	/**
+	 * Set the image this figure is to use. NOTE: This figure does not own the image. It shares it. The sender still maintains ownership of the image and must dispose of it when necessary.
+	 */
+	public void setImage(Image newImage) {
+		if (image != null && !image.isDisposed() && image == newImage) {
+			return;
+		}
+		if (image != null) {
+			image.dispose();
+		}
+		image = newImage;
+		if (image == null) {
+			setPreferredSize(10, 10);
+		} else {
+			org.eclipse.swt.graphics.Rectangle bounds = newImage.getBounds();
+			setPreferredSize(bounds.width, bounds.height);
+		}
+		revalidate();
+		repaint(); // In case didn't change size, still need to repaint.
+	}
+
+	/**
+	 * Return the image currently being used.
+	 */
+	public Image getImage() {
+		return image;
+	}
+
+	/**
+	 * Set to use the parent's ImageFigure as the image to use. This figure must a child or grandchild of this ImageFigure. It will paint its portion of the image (depending upon its own bounds) of that ImageFigure. This is to allow the borders to be appropriately clipped while still using the one master image.
+	 */
+	public void setUseParentImageFigure(boolean aBool) {
+		if (this.useParentImageFigure == aBool)
+			return;
+		useParentImageFigure = aBool;
+		image = null;
+		setPreferredSize(10, 10);
+		revalidate();
+		repaint(); // In case didn't change size, still need to repaint.
+	}
+
+	protected void paintClientArea(Graphics g) {
+		Rectangle r = getClientArea();
+		if (!r.isEmpty() && image != null && !image.isDisposed()) {
+			g.drawImage(image, r.x, r.y);
+		} else if (useParentImageFigure) {
+			// Get the parent up the chain that has the actual image to use.
+			ImageFigure parentImageFigure = null;
+			for (IFigure parent = getParent(); parent != null; parent = parent.getParent()) {
+				if (parent instanceof ImageFigure && ((ImageFigure) parent).getImage() != null) {
+					parentImageFigure = (ImageFigure) parent;
+					break;
+				}
+			}
+			if (parentImageFigure != null) {
+				Image parentImage = parentImageFigure.getImage();
+				if (parentImage != null) {
+					Rectangle parentr = parentImageFigure.getClientArea();
+					// Need to be careful, could be we could ask for a region outside the parent image too.
+					Image pImage = parentImageFigure.getImage();
+					org.eclipse.swt.graphics.Rectangle pBounds = pImage.getBounds();
+					// So set the parent size to be no larger than the image size so that we won't ask for outside of it.
+					// Image bounds always have x/y of 0. And we know that (0,0) of image is the same as (x,y) of parent rectangle,
+					// so only need to worry about size.
+					parentr.setSize(Math.min(parentr.width, pBounds.width), Math.min(parentr.height, pBounds.height));
+					// Need to get the intersection of the client area with the
+					// parent's client area in case the parent's boundary is smaller.
+					r = r.intersect(parentr);
+					g.drawImage(pImage, r.x - parentr.x, r.y - parentr.y, r.width, r.height, r.x, r.y, r.width, r.height);
+				}
+			}
+		}
+		super.paintClientArea(g);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/figures/OutlineBorder.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/figures/OutlineBorder.java
new file mode 100755
index 0000000..5e137af
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/figures/OutlineBorder.java
@@ -0,0 +1,174 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.figures;
+
+/*
+ *  $RCSfile: OutlineBorder.java,v $
+ *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:23 $ 
+ */
+
+import org.eclipse.draw2d.*;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.SWTException;
+import org.eclipse.draw2d.geometry.Insets;
+import org.eclipse.draw2d.geometry.Rectangle;
+
+/**
+ * This border outlines the figure. It will draw the outline on top of the figure, not outside the client area. This is so that the client area won't be reduced by the border.
+ */
+public class OutlineBorder extends AbstractBorder {
+
+	protected Color foreground = ColorConstants.black, background;
+	private int alpha = 255;
+
+	private boolean borderDisabled; // Is the border disabled? If it is then it won't draw.
+	private boolean overrideAndDisable; // A temporary override of the border disabled state. If true, then override and disable, if false no override.
+
+	private static final Insets insets = new Insets(0, 0, 0, 0);
+	protected int lineStyle = SWT.LINE_SOLID;
+
+	public OutlineBorder() {
+	}
+
+	public OutlineBorder(Color foreground, Color background) {
+		this.foreground = foreground;
+		this.background = background;
+	}
+
+	public OutlineBorder(int alpha, Color foreground, Color background) {
+		this(foreground, background);
+		setAlpha(alpha);
+	}
+
+	public OutlineBorder(Color foreground, Color background, int lineStyle) {
+		this(foreground, background);
+		this.lineStyle = lineStyle;
+	}
+
+	public OutlineBorder(int alpha, Color foreground, Color background, int lineStyle) {
+		this(alpha, foreground, background);
+		this.lineStyle = lineStyle;
+	}
+
+	public void paint(IFigure aFigure, Graphics g, Insets insets) {
+		if (overrideAndDisable || borderDisabled)
+			return; // Disabled, don't pain.
+		Rectangle r = getPaintRectangle(aFigure, insets);
+		r.resize(-1, -1); // Make room for the outline.
+		try {
+			g.setAlpha(getAlpha());
+		} catch (SWTException e) {
+			// Occurs if alpha's not available. No check on Graphics that tests for this yet.
+		}
+		g.setForegroundColor(foreground);
+		if (lineStyle != SWT.LINE_SOLID) {
+			// Non-solid lines need a background color to be set. If we have one use it, else compute it.
+			if (background != null)
+				g.setBackgroundColor(background);
+			else {
+				// If no background is set then make the background black
+				// and set it to XOR true. This means the line will dash over
+				// the background. The foreground will also XOR
+				// so it only works well if the foreground is Black or Gray. Colors
+				// don't work well because they only paint true on black
+				// areas
+				g.setBackgroundColor(ColorConstants.black);
+				g.setXORMode(true);
+			}
+		}
+		g.setLineStyle(lineStyle);
+		g.drawRectangle(r);
+	}
+
+	public void setColors(Color foreground, Color background) {
+		this.foreground = foreground;
+		this.background = background;
+	}
+
+	public void setLineStyle(int aStyle) {
+		lineStyle = aStyle;
+	}
+
+	public Insets getInsets(IFigure aFigure) {
+		return insets;
+	}
+
+	public boolean isOpaque() {
+		return true;
+	}
+
+	/**
+	 * Set the border to be disable so it doesn't paint.
+	 * 
+	 * @param borderDisabled
+	 *            The borderDisabled to set.
+	 * @since 1.0.0
+	 */
+	public void setBorderDisabled(boolean borderDisabled) {
+		this.borderDisabled = borderDisabled;
+	}
+
+	/**
+	 * Return whether the borderDisable flag is on.
+	 * 
+	 * @return Returns the borderDisabled.
+	 * 
+	 * @since 1.0.0
+	 */
+	public boolean isBorderDisabled() {
+		return borderDisabled;
+	}
+
+	/**
+	 * Override the current border disable setting and force a disable if <code>true</code> or restore current border disable state if <code>false</code>
+	 * 
+	 * @param overrideAndDisable
+	 *            <code>true</code> to force disable, <code>false</code> to revert to current disable state.
+	 * @since 1.0.0
+	 */
+	public void setOverrideAndDisable(boolean overrideAndDisable) {
+		this.overrideAndDisable = overrideAndDisable;
+	}
+
+	/**
+	 * Answers if currently override the disable state and it is temporarily disabled.
+	 * 
+	 * @return Returns the overrideAndDisable.
+	 * 
+	 * @since 1.0.0
+	 */
+	public boolean isOverrideAndDisable() {
+		return overrideAndDisable;
+	}
+
+	/**
+	 * @param alpha
+	 *            The alpha to set.
+	 * 
+	 * @since 1.1.0
+	 */
+	public void setAlpha(int alpha) {
+		this.alpha = alpha;
+	}
+
+	/**
+	 * @return Returns the alpha.
+	 * 
+	 * @since 1.1.0
+	 */
+	public int getAlpha() {
+		return alpha;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/images/IImageListener.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/images/IImageListener.java
new file mode 100755
index 0000000..961cf26
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/images/IImageListener.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+/*
+ *  $RCSfile: IImageListener.java,v $
+ *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:23 $ 
+ */
+package org.eclipse.xwt.tools.ui.designer.core.images;
+
+import java.util.EventListener;
+
+import org.eclipse.swt.graphics.Image;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public interface IImageListener extends EventListener {
+
+	/**
+	 * The image of this object has changed. The new image data is sent along. If it is null, then there is no image to render. This could happen because the size was (0,0) for example. In this case the listener would probably want to handle no image.
+	 * 
+	 * @param image
+	 */
+	public void imageChanged(Image image);
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/images/IImageNotifier.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/images/IImageNotifier.java
new file mode 100755
index 0000000..55e49b7
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/images/IImageNotifier.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.images;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public interface IImageNotifier {
+
+	public void addImageListener(IImageListener listener);
+
+	public void removeImageListener(IImageListener listener);
+
+	public boolean hasImageListeners();
+
+	public void refreshImage();
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/images/ImageFigureController.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/images/ImageFigureController.java
new file mode 100755
index 0000000..1b507ef
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/images/ImageFigureController.java
@@ -0,0 +1,79 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.images;
+
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.xwt.tools.ui.designer.core.figures.ImageFigure;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class ImageFigureController {
+
+	private ImageFigure figure;
+	private IImageNotifier imageNotifier;
+	private Image image;
+
+	private IImageListener imageListener = new IImageListener() {
+		public void imageChanged(Image newImage) {
+			setImage(newImage);
+		}
+	};
+
+	public void setImageFigure(ImageFigure imageFigure) {
+		this.figure = imageFigure;
+	}
+
+	/**
+	 * @param notifier
+	 *            the imageNotifier to set
+	 */
+	public void setImageNotifier(IImageNotifier notifier) {
+		if (notifier != null) {
+			imageNotifier = notifier;
+			imageNotifier.addImageListener(imageListener);
+			Display.getDefault().asyncExec(new Runnable() {
+				public void run() {
+					imageNotifier.refreshImage();
+				}
+			});
+		}
+	}
+
+	public void deactivate() {
+		if (imageNotifier != null) {
+			imageNotifier.removeImageListener(imageListener);
+		}
+		if (figure != null) {
+			figure.setImage(null);
+		}
+		if (image != null) {
+			image.dispose();
+		}
+	}
+
+	/**
+	 * @param image
+	 *            the image to set
+	 */
+	public void setImage(Image newImage) {
+		if (image != null) {
+			image.dispose();
+		}
+		image = newImage;
+		if (figure != null) {
+			figure.setImage(image);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/images/ImageNotifierSupport.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/images/ImageNotifierSupport.java
new file mode 100755
index 0000000..b9c64f6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/images/ImageNotifierSupport.java
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.images;
+
+import org.eclipse.core.runtime.ListenerList;
+import org.eclipse.swt.graphics.Image;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class ImageNotifierSupport {
+	protected ListenerList imageListeners = null;
+
+	public synchronized void addImageListener(IImageListener aListener) {
+		if (imageListeners == null)
+			imageListeners = new ListenerList(ListenerList.IDENTITY);
+		imageListeners.add(aListener);
+	}
+
+	public synchronized void fireImageChanged(Image image) {
+		// Probably should make a copy of the notification list to prevent
+		// modifications while firing, but we'll see if this gives any problems.
+		Object[] listeners = imageListeners.getListeners();
+		if (listeners != null) {
+			for (int i = 0; i < listeners.length; i++) {
+				((IImageListener) listeners[i]).imageChanged(image);
+			}
+		}
+	}
+
+	public synchronized boolean hasImageListeners() {
+		return imageListeners != null && !imageListeners.isEmpty();
+	}
+
+	public synchronized void removeImageListener(IImageListener aListener) {
+		if (imageListeners != null)
+			imageListeners.remove(aListener);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
new file mode 100755
index 0000000..627d156
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/layouts/FreeformXYFlowLayout.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.layouts;
+
+/*
+ *  $RCSfile: FreeformXYFlowLayout.java,v $
+ *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:22 $ 
+ */
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.geometry.Point;
+
+/**
+ * @author pwalker
+ * 
+ *         To change this generated comment edit the template variable "typecomment": Window>Preferences>Java>Templates. To enable and disable the creation of type comments go to Window>Preferences>Java>Code Generation.
+ */
+public class FreeformXYFlowLayout extends XYFlowLayout {
+
+	/**
+	 * Constructor for FreeformXYFlowLayout.
+	 */
+	public FreeformXYFlowLayout() {
+		super();
+	}
+
+	/**
+	 * @see org.eclipse.draw2d.XYLayout#getOrigin(IFigure)
+	 */
+	public Point getOrigin(IFigure parent) {
+		return new Point();
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
new file mode 100755
index 0000000..48c83ff
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/layouts/XYFlowLayout.java
@@ -0,0 +1,223 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.layouts;
+
+/*
+ *  $RCSfile: XYFlowLayout.java,v $
+ *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:22 $ 
+ */
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.XYLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Insets;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+
+/**
+ * This is the layout manager for an XY layout with Flow of those figures that don't have a specified location. It will layout the figures that have a constraint in their XY location. It will then go through the figures without a constraint (identified by x,y == XYLayoutUtility.PREFERRED_LOC) and find a spot for them. Creation date: (5/25/00 3:20:21 PM)
+ * 
+ * @author: Administrator
+ */
+public class XYFlowLayout extends XYLayout {
+	protected static int fMarginWidth = 10; // Margin width when auto positioning figures
+	protected static int fMarginHeight = 10; // Margin height when auto positioning figures
+
+	/**
+	 * VCEFreeformLayout constructor comment.
+	 */
+	public XYFlowLayout() {
+		super();
+	}
+
+	protected void layoutIfRequired(IFigure f) {
+		Iterator itr = constraints.keySet().iterator();
+		while (itr.hasNext()) {
+			// See if any of the components have a preferred size or don't know their location.
+			IFigure child = (IFigure) itr.next();
+			Rectangle constraint = (Rectangle) getConstraint(child);
+			if (constraint == null)
+				continue;
+			// The width and height must be not set or the x/y must be unpositioned to require a layout
+			if (constraint.width == XYLayoutUtility.PREFERRED_SIZE || constraint.height == XYLayoutUtility.PREFERRED_SIZE || (constraint.x == XYLayoutUtility.PREFERRED_LOC && constraint.y == XYLayoutUtility.PREFERRED_LOC)) {
+				layout(f);
+				return;
+			}
+		}
+	}
+
+	/**
+	 * The preferred size is actually calculated within the layout so that the unpositioned and default sized children can be taken into account.
+	 */
+	protected Dimension calculatePreferredSize(IFigure f, int wHint, int hHint) {
+		// Under some circumstances we are asked to calculate preferred size
+		// when our figures have no x and y ( it is still XYLayoutUtility.PREFERRED_LOC ) representing
+		// preferredSize
+		// An example is a free form that has a number of unannotated objects none of which
+		// have explicit bounds set on them
+		// If so then we must lay the figures out so that we know what size they will occupy
+		layoutIfRequired(f);
+
+		Rectangle rect = new Rectangle();
+		Rectangle workingRect = new Rectangle();
+		Iterator children = f.getChildren().iterator();
+		while (children.hasNext()) {
+			IFigure child = (IFigure) children.next();
+			Rectangle r = (Rectangle) constraints.get(child);
+			if (r == null)
+				continue;
+			// For a figure that has no annotation the preferredX and Y will be left as unset
+			// however the actual X and Y may be set.
+			workingRect.x = (r.x == XYLayoutUtility.PREFERRED_LOC) ? child.getBounds().x : r.x;
+			workingRect.y = (r.y == XYLayoutUtility.PREFERRED_LOC) ? child.getBounds().y : r.y;
+
+			if (r.width == XYLayoutUtility.PREFERRED_SIZE || r.height == XYLayoutUtility.PREFERRED_SIZE) {
+				Dimension prefSize = child.getPreferredSize();
+				workingRect.width = (r.width == XYLayoutUtility.PREFERRED_SIZE) ? prefSize.width : r.width;
+				workingRect.height = (r.height == XYLayoutUtility.PREFERRED_SIZE) ? prefSize.height : r.height;
+			}
+			rect.union(r);
+		}
+		Dimension d = rect.getSize();
+		Insets insets = f.getInsets();
+		return d.expand(insets.getWidth(), insets.getHeight()).union(getBorderPreferredSize(f));
+	}
+
+	/**
+	 * Try to find a white space for a box of this size outside of the given rectangles, but within the bounding rectangle (expand bounding rectangle if required). A rectangle that has an x/y = MIN_VALUE is not to be considered for calculations since it has not yet been positioned. Creation date: (2/22/00 4:21:13 PM)
+	 */
+	protected void findWhiteSpaceFor(int rIndex, Rectangle[] rects, Rectangle boundingRect) {
+		int requestedWidth = rects[rIndex].width + 2 * fMarginWidth; // Increase by double margin width (one on each side)
+		int requestedHeight = rects[rIndex].height + 2 * fMarginHeight;
+		int leftMost = boundingRect.x;
+		int topMost = boundingRect.y;
+		int rightMost = boundingRect.x + boundingRect.width;
+		if (requestedWidth < boundingRect.width) {
+			// The requested size is less than the bounding rectangle, see where on the right
+			// it can fit, moving down as needed.
+
+			int highestBottom = topMost; // How high up to do search. Start at the the top.
+			// Perform search by width, then by height. Start at upper left and see if any intersections.
+			// If there aren't any, good, we found a spot. If there are, move right beyond all of the
+			// intersections and try again. If we get all of the way over, then move back to the highest
+			// bottom we found among all of the intersections and to the far left and try again, moving
+			// down the page until we find something.
+			while (true) {
+				int x = leftMost;
+				int y = highestBottom;
+				highestBottom = Integer.MAX_VALUE;
+				while (x + requestedWidth < rightMost) {
+					boolean intersects = false;
+					Rectangle tryRect = new Rectangle(x, y, requestedWidth, requestedHeight);
+					for (int i = 0; i < rects.length; i++) {
+						Rectangle rect = rects[i];
+						if (rect == null)
+							continue;
+						if (rect.x != XYLayoutUtility.PREFERRED_LOC && rect.y != XYLayoutUtility.PREFERRED_LOC && rect.intersects(tryRect)) {
+							intersects = true;
+							x = Math.max(x, rect.x + rect.width);
+							highestBottom = Math.min(highestBottom, rect.y + rect.height);
+						}
+					}
+					if (!intersects) {
+						// We got a space for it.
+						rects[rIndex].x = tryRect.x + fMarginWidth; // Move right by margin amount.
+						rects[rIndex].y = tryRect.y + fMarginHeight; // Move down by margin amount.
+						return;
+					}
+					// There was an intersection, x is now just right of the rightmost intersection.
+					// Loop will try searching here now.
+				}
+				// We gone all of the way to the right and couldn't find anything. Now move down
+				// to just below the height intersect bottom. Loop will try searching here.
+			}
+		} else {
+			// The requested width is larger than the bounding area, so go down and find first
+			// y that we can use that doesn't intersect anything.
+			int y = topMost;
+			while (true) {
+				boolean intersects = false;
+				Rectangle tryRect = new Rectangle(leftMost, y, requestedWidth, requestedHeight);
+				for (int i = 0; i < rects.length; i++) {
+					Rectangle rect = rects[i];
+					if (rect == null)
+						continue;
+					if (rect.x != XYLayoutUtility.PREFERRED_LOC && rect.y != XYLayoutUtility.PREFERRED_LOC && rect.intersects(tryRect)) {
+						intersects = true;
+						y = Math.max(y, rect.y + rect.height);
+					}
+				}
+				if (!intersects) {
+					// We got a space for it.
+					rects[rIndex].x = tryRect.x + fMarginWidth; // Move right by margin amount.
+					rects[rIndex].y = tryRect.y + fMarginHeight; // Move down by margin amount.
+					return;
+				}
+				// It intersects something in this row, move below the lowest of the intersections
+				// Loop will try again.
+			}
+		}
+	}
+
+	/**
+	 * Layout the figures according to their constraint. If they don't have one, then at the end find a spot for them.
+	 */
+	public void layout(IFigure containerFigure) {
+		List children = containerFigure.getChildren();
+		Rectangle newBounds[] = new Rectangle[children.size()];
+		Rectangle containerRectangle = null;
+		Point offset = getOrigin(containerFigure);
+
+		// For Freeform XY layout assume that the constraint is a rectangle.
+		// Loop through children, setting the displayBox to the constraint.
+		for (int i = 0; i < children.size(); i++) {
+			IFigure f = (IFigure) children.get(i);
+			Rectangle bounds = (Rectangle) getConstraint(f);
+			if (bounds == null)
+				continue;
+			bounds = new Rectangle(bounds.x, bounds.y, bounds.width, bounds.height); // So we don't modify the one still in the figure.
+			if (bounds.width == XYLayoutUtility.PREFERRED_SIZE || bounds.height == XYLayoutUtility.PREFERRED_SIZE) {
+				Dimension prefSize = f.getPreferredSize();
+				if (bounds.width == XYLayoutUtility.PREFERRED_SIZE)
+					bounds.width = prefSize.width;
+				if (bounds.height == XYLayoutUtility.PREFERRED_SIZE)
+					bounds.height = prefSize.height;
+			}
+			if (bounds.x != XYLayoutUtility.PREFERRED_LOC && bounds.y != XYLayoutUtility.PREFERRED_LOC) {
+				bounds.translate(offset); // Adjust from relative to absolute (including inset).
+				containerRectangle = containerRectangle != null ? containerRectangle.union(bounds) : bounds.getCopy().setLocation(Math.min(0, bounds.x), Math.min(0, bounds.y)); // Container area should hold all assigned figures.
+			}
+			newBounds[i] = bounds;
+		}
+
+		// Now loop through and apply the bounds, and find an area for any not set.
+		if (containerRectangle != null)
+			containerRectangle.setSize(Math.max(containerRectangle.width, 1000), Math.max(containerRectangle.height, 1000));
+		else
+			containerRectangle = new Rectangle();
+		for (int i = 0; i < newBounds.length; i++) {
+			if (newBounds[i] == null)
+				continue;
+			if (newBounds[i].x == XYLayoutUtility.PREFERRED_LOC && newBounds[i].y == XYLayoutUtility.PREFERRED_LOC) {
+				// Find a spot for it.
+				findWhiteSpaceFor(i, newBounds, containerRectangle);
+			}
+			IFigure f = (IFigure) children.get(i);
+			Rectangle newBound = newBounds[i];
+			f.setBounds(newBound);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
new file mode 100755
index 0000000..b554432
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/layouts/XYLayoutUtility.java
@@ -0,0 +1,115 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+/*
+ *  $RCSfile: XYLayoutUtility.java,v $
+ *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:22 $ 
+ */
+package org.eclipse.xwt.tools.ui.designer.core.layouts;
+
+import org.eclipse.draw2d.geometry.Rectangle;
+
+/**
+ * Helper for XYLayout constraint control.
+ * 
+ * @since 1.1.0
+ */
+public class XYLayoutUtility {
+
+	public static final int PREFERRED_SIZE = -1; // This is hard-code in GEF XYLayout and XYLayoutEditPolicy for default. If changed then we need to change here.
+	public static final int PREFERRED_LOC = Integer.MIN_VALUE;
+
+	/**
+	 * Modify the rectangle and mark the sections desired as preferred.
+	 * 
+	 * @param rect
+	 *            rectangle to modify
+	 * @param preferredLoc
+	 *            make location preferred
+	 * @param preferredWidth
+	 *            make width preferred
+	 * @param preferredHeight
+	 *            make height preferred
+	 * @return the rectangle modified. (It is the same rectangle instance).
+	 * @since 1.1.0
+	 */
+	public static Rectangle modifyPreferredRectangle(Rectangle rect, boolean preferredLoc, boolean preferredWidth, boolean preferredHeight) {
+		if (preferredLoc)
+			rect.setLocation(PREFERRED_LOC, PREFERRED_LOC);
+		if (preferredWidth)
+			rect.width = PREFERRED_SIZE;
+		if (preferredHeight)
+			rect.height = PREFERRED_SIZE;
+		return rect;
+	}
+
+	/**
+	 * Using the input bounds create a rectangle and mark the sections desired as preferred. The non-preferred sections are copied as is.
+	 * 
+	 * @param x
+	 * @param y
+	 * @param width
+	 * @param height
+	 * @param preferredLoc
+	 *            make location preferred
+	 * @param preferredWidth
+	 *            make width preferred
+	 * @param preferredHeight
+	 *            make height preferred
+	 * @return the rectangle modified. (It is the same rectangle instance).
+	 * @since 1.1.0
+	 */
+	public static Rectangle modifyPreferredRectangle(int x, int y, int width, int height, boolean preferredLoc, boolean preferredWidth, boolean preferredHeight) {
+		if (preferredLoc)
+			x = y = PREFERRED_LOC;
+		if (preferredWidth)
+			width = PREFERRED_SIZE;
+		if (preferredHeight)
+			height = PREFERRED_SIZE;
+		return new Rectangle(x, y, width, height);
+	}
+
+	/**
+	 * Query to see if the constraint contains any preferred settings (i.e. size or location should be set to a preferred/default). It will return false if all settings in the constraint are set.
+	 * 
+	 * @param constraint
+	 * @param moved
+	 *            <code>true</code> if should look at the loc portion of the constraint
+	 * @param resized
+	 *            <code>true</code> if should look at the size portion of the constraint.
+	 * @return <code>true</code> if any of the constraint settings are asking for preferred according to the moved/resized flags.
+	 * 
+	 * @since 1.1.0
+	 */
+	public static boolean constraintContainsPreferredSettings(Rectangle constraint, boolean moved, boolean resized) {
+		return (resized && (constraint.width == PREFERRED_SIZE || constraint.height == PREFERRED_SIZE)) || (moved && constraint.x == PREFERRED_LOC && constraint.y == PREFERRED_LOC);
+	}
+
+	/**
+	 * Query to see if the constraint contains any preferred settings (i.e. size or location should be set to a preferred/default). It will return false if all settings in the constraint are set.
+	 * 
+	 * @param x
+	 * @param y
+	 * @param width
+	 * @param height
+	 * @param moved
+	 *            <code>true</code> if should look at the loc portion of the constraint
+	 * @param resized
+	 *            <code>true</code> if should look at the size portion of the constraint.
+	 * @return
+	 * 
+	 * @since 1.1.0
+	 */
+	public static boolean constraintContainsPreferredSettings(int x, int y, int width, int height, boolean moved, boolean resized) {
+		return (resized && (width == PREFERRED_SIZE || height == PREFERRED_SIZE)) || (moved && x == PREFERRED_LOC && y == PREFERRED_LOC);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/AbstractModelBuilder.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/AbstractModelBuilder.java
new file mode 100755
index 0000000..45db075
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/AbstractModelBuilder.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.model;
+
+import org.eclipse.emf.common.notify.Notification;
+
+/**
+ * @author jin.liu(jin.liu@soyatec.com)
+ */
+public abstract class AbstractModelBuilder implements IModelBuilder {
+
+	private ModelNotifySupport notifySupport = new ModelNotifySupport();
+
+	public void addModelListener(ModelChangeListener listener) {
+		notifySupport.addModelListener(listener);
+	}
+
+	public boolean hasListener(ModelChangeListener listener) {
+		return notifySupport.hasListener(listener);
+	}
+
+	public void removeModelListener(ModelChangeListener listener) {
+		notifySupport.removeModelListener(listener);
+	}
+
+	public void dispatchEvent(Notification event) {
+		notifySupport.dispatchEvent(event);
+	}
+
+	public void dispose() {
+		notifySupport.dispose();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/IModelBuilder.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/IModelBuilder.java
new file mode 100755
index 0000000..c391cb4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/IModelBuilder.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.model;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+
+/**
+ * @author bo.zhou
+ * @author jliu
+ */
+public interface IModelBuilder extends IModelNotify {
+
+	/**
+	 * Load model from given designer.
+	 */
+	public boolean doLoad(IEditorPart designer, IProgressMonitor monitor);
+
+	/**
+	 * Return loaded {@link XamlDocument};
+	 */
+	public EObject getDiagram();
+
+	public void doSave(IProgressMonitor monitor);
+
+	public EObject getModel(Object textNode);
+
+	public IDOMNode getTextNode(Object model);
+
+	public void dispose();
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/IModelNotify.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/IModelNotify.java
new file mode 100755
index 0000000..b2ccb94
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/IModelNotify.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.model;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public interface IModelNotify {
+
+	public void addModelListener(ModelChangeListener listener);
+
+	public boolean hasListener(ModelChangeListener listener);
+
+	public void removeModelListener(ModelChangeListener listener);
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/ModelChangeListener.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/ModelChangeListener.java
new file mode 100755
index 0000000..d766424
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/ModelChangeListener.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.model;
+
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public abstract class ModelChangeListener extends AdapterImpl {
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/ModelNotifySupport.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/ModelNotifySupport.java
new file mode 100755
index 0000000..8369958
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/model/ModelNotifySupport.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.Notification;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public class ModelNotifySupport implements IModelNotify {
+
+	private List<ModelChangeListener> listeners;
+
+	// private List<Notification> eventsQueue;
+
+	public void addModelListener(ModelChangeListener listener) {
+		if (listeners == null) {
+			listeners = new ArrayList<ModelChangeListener>();
+		}
+		listeners.add(listener);
+	}
+
+	public boolean hasListener(ModelChangeListener listener) {
+		return listeners != null && listeners.contains(listener);
+	}
+
+	public void removeModelListener(ModelChangeListener listener) {
+		if (listeners != null) {
+			listeners.remove(listener);
+		}
+	}
+
+	public void dispatchEvent(Notification event) {
+		if (listeners != null) {
+			for (ModelChangeListener l : listeners) {
+				l.notifyChanged(event);
+			}
+		}
+	}
+
+	public void dispose() {
+		if (listeners != null) {
+			listeners.clear();
+		}
+		listeners = null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/AbstractDiagramEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/AbstractDiagramEditPart.java
new file mode 100755
index 0000000..63dda66
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/AbstractDiagramEditPart.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.parts;
+
+import org.eclipse.draw2d.FreeformLayer;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gef.SnapToGeometry;
+import org.eclipse.gef.SnapToHelper;
+import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
+import org.eclipse.xwt.tools.ui.designer.core.layouts.FreeformXYFlowLayout;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public abstract class AbstractDiagramEditPart extends AbstractGraphicalEditPart {
+
+	public AbstractDiagramEditPart(EObject document) {
+		setModel(document);
+	}
+
+	/**
+	 * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#createFigure()
+	 */
+	protected IFigure createFigure() {
+		IFigure contentPane = new FreeformLayer();
+		contentPane.setBorder(new MarginBorder(20));
+		contentPane.setLayoutManager(new FreeformXYFlowLayout());
+		// contentPane.setBackgroundColor(ColorConstants.white);
+		contentPane.setOpaque(false);
+		return contentPane;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#getAdapter(java.lang.Class)
+	 */
+	public Object getAdapter(Class key) {
+		if (key == SnapToHelper.class) {
+			return new SnapToGeometry(this);
+		}
+		return super.getAdapter(key);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/ActionFilterConstants.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/ActionFilterConstants.java
new file mode 100755
index 0000000..b6b50f6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/ActionFilterConstants.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.parts;
+
+public final class ActionFilterConstants {
+	static public final String MODEL_TYPE = "ModelType";
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/EditPartRunnable.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
new file mode 100755
index 0000000..9dbea06
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/EditPartRunnable.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+/*
+ *  $RCSfile: EditPartRunnable.java,v $
+ *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:24 $ 
+ */
+package org.eclipse.xwt.tools.ui.designer.core.parts;
+
+import org.eclipse.gef.EditPart;
+
+/**
+ * This is a runnable that takes an editpart and when it is run it will validate that the editpart is still active before running it. If not active, it won't run it. This is useful for delayed executions where the runnable will run later and it is possible that the editpart has been deactivated since then.
+ * 
+ * @since 1.1.0
+ */
+public abstract class EditPartRunnable implements Runnable {
+
+	private final EditPart host;
+
+	public EditPartRunnable(EditPart host) {
+		this.host = host;
+
+	}
+
+	protected final EditPart getHost() {
+		return host;
+	}
+
+	public final void run() {
+		if (getHost().isActive())
+			doRun();
+	}
+
+	/**
+	 * Subclasses should implement this method to do the actual run.
+	 * 
+	 * 
+	 * @since 1.1.0
+	 */
+	protected abstract void doRun();
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/RefreshContext.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/RefreshContext.java
new file mode 100755
index 0000000..c0d9859
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/RefreshContext.java
@@ -0,0 +1,91 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.parts;
+
+/**
+ * @author jin.liu (jin.liu@soyatec.com)
+ * 
+ */
+public class RefreshContext {
+
+	public static final int REFRESH_IMAGE = 1;
+	public static final int REFRESH_CHILDREN = REFRESH_IMAGE << 1;
+	public static final int REFRESH_VISUALS = REFRESH_CHILDREN << 1;
+	public static final int REFRESH_ALL = REFRESH_IMAGE | REFRESH_CHILDREN
+			| REFRESH_VISUALS;
+
+	private int refreshType = 0;
+
+	/**
+	 * Create a EditPartContext with given refreshType.
+	 */
+	RefreshContext(int refreshType) {
+		this.refreshType = refreshType;
+	}
+
+	public boolean refreshImage() {
+		return refresh(REFRESH_IMAGE);
+	}
+
+	public void setImageRefreshed() {
+		setRefreshed(REFRESH_IMAGE);
+	}
+
+	public boolean refreshChildren() {
+		return refresh(REFRESH_CHILDREN);
+	}
+
+	public void setVisualsRefreshed() {
+		setRefreshed(REFRESH_VISUALS);
+	}
+
+	public void setChildrenRefreshed() {
+		setRefreshed(REFRESH_CHILDREN);
+	}
+
+	public boolean refreshVisuals() {
+		return refresh(REFRESH_VISUALS);
+	}
+
+	public int getRefreshType() {
+		return refreshType;
+	}
+
+	public void setRefreshed(int type) {
+		refreshType = refreshType ^ type;
+	}
+
+	public boolean refresh(int type) {
+		return (refreshType & type) != 0;
+	}
+
+	public static final RefreshContext ALL() {
+		return createRefreshContext(REFRESH_ALL);
+	}
+
+	public static final RefreshContext IMAGE() {
+		return createRefreshContext(REFRESH_IMAGE);
+	}
+
+	public static final RefreshContext CHILDREN() {
+		return createRefreshContext(REFRESH_CHILDREN);
+	}
+
+	public static final RefreshContext VISUALS() {
+		return createRefreshContext(REFRESH_VISUALS);
+	}
+
+	public static final RefreshContext createRefreshContext(int refreshType) {
+		return new RefreshContext(refreshType);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/VisualEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/VisualEditPart.java
new file mode 100755
index 0000000..13755fc
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/VisualEditPart.java
@@ -0,0 +1,337 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.parts;
+
+import java.util.Iterator;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.Graphics;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.XYLayout;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IActionFilter;
+import org.eclipse.xwt.tools.ui.designer.core.figures.ContentPaneFigure;
+import org.eclipse.xwt.tools.ui.designer.core.figures.ImageFigure;
+import org.eclipse.xwt.tools.ui.designer.core.figures.OutlineBorder;
+import org.eclipse.xwt.tools.ui.designer.core.images.IImageListener;
+import org.eclipse.xwt.tools.ui.designer.core.images.ImageFigureController;
+import org.eclipse.xwt.tools.ui.designer.core.policies.DefaultComponentEditPolicy;
+import org.eclipse.xwt.tools.ui.designer.core.util.JavaModelUtil;
+import org.eclipse.xwt.tools.ui.designer.core.visuals.IVisualInfo;
+import org.eclipse.xwt.tools.ui.designer.core.visuals.swt.WidgetInfo;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public abstract class VisualEditPart extends AbstractGraphicalEditPart implements IActionFilter {
+
+	private boolean useBorder = false;
+	private boolean transparent;
+	private ImageFigureController imageFigureController;
+	private IImageListener imageListener;
+	private IVisualInfo visualInfo;
+
+	public VisualEditPart(EObject model) {
+		setModel(model);
+	}
+
+	public boolean testAttribute(Object target, String name, String value) {
+		if (ActionFilterConstants.MODEL_TYPE.equals(name)) {
+			Object model = getModel();
+			if (model != null) {
+				Class<?> type = model.getClass();
+				return JavaModelUtil.isKindOf(type, value);
+			}
+		}
+		return false;
+	}
+	
+	/**
+	 * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#createFigure()
+	 */
+	protected IFigure createFigure() {
+		ContentPaneFigure figure = new ContentPaneFigure();
+		IFigure contentPane = null;
+		if (!isRoot()) {
+			contentPane = createContentPane();
+		} else {
+			ImageFigure imageFigure = new ImageFigure();
+			if (isUseBorder())
+				imageFigure.setBorder(new OutlineBorder(150,
+						ColorConstants.lightGray, null, Graphics.LINE_SOLID));
+			imageFigure.setOpaque(!isTransparent());
+			if (!isTransparent()) {
+				imageFigureController = new ImageFigureController();
+				imageFigureController.setImageFigure(imageFigure);
+			}
+			contentPane = imageFigure;
+		}
+		contentPane.setLayoutManager(new XYLayout());
+		figure.setContentPane(contentPane);
+		return figure;
+	}
+
+	protected IFigure createContentPane() {
+		return new Label();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#getContentPane()
+	 */
+	public IFigure getContentPane() {
+		return getContentPaneFigure().getContentPane();
+	}
+
+	protected ContentPaneFigure getContentPaneFigure() {
+		return ((ContentPaneFigure) getFigure());
+	}
+
+	/**
+	 * @see org.eclipse.gef.editparts.AbstractEditPart#createEditPolicies()
+	 */
+	protected void createEditPolicies() {
+		// Default component role allows delete and basic behavior of a
+		// component within a parent edit part that contains it
+		installEditPolicy(EditPolicy.COMPONENT_ROLE,
+				new DefaultComponentEditPolicy());
+
+	}
+
+	/**
+	 * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#activate()
+	 */
+	public void activate() {
+		if (!isTransparent() && imageFigureController != null) {
+			imageFigureController.setImageNotifier(getVisualInfo());
+		}
+		if (imageListener == null) {
+			imageListener = new IImageListener() {
+				public void imageChanged(Image image) {
+					refreshVisuals();
+					for (Iterator iterator = getChildren().iterator(); iterator
+							.hasNext();) {
+						EditPart child = (EditPart) iterator.next();
+						if (child instanceof VisualEditPart) {
+							((VisualEditPart) child).refreshVisuals();
+						}
+					}
+				}
+			};
+		}
+		getVisualInfo().addImageListener(imageListener);
+		super.activate();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#refresh()
+	 */
+	public void refresh() {
+		// Do nothing here, sub class can add some other refreshes.
+	}
+
+	protected boolean isVisualInfoObsolate() {
+		return false;
+	}
+	
+	public final void refresh(RefreshContext context) {
+		if (isVisualInfoObsolate()) {
+			visualInfo = null; // to create a new one
+		}
+		
+		if (context == null) {
+			return;
+		}
+		if (!validateVisuals()) {
+			return;
+		}
+		// refresh children here.
+		if (context.refreshChildren()) {
+			refreshChildren();
+		}
+
+		// try to refresh image and visuals.
+		if (context.refreshImage()) {
+			getUIDisplay().asyncExec(new Runnable() {
+				public void run() {
+					refreshImage();
+				}
+			});
+			context.setImageRefreshed();
+		}
+		if (context.refreshVisuals()) {
+			refreshVisuals();
+		}
+		// allow subclass refresh.
+		refresh();
+	}
+
+	protected boolean validateVisuals() {
+		return getVisualInfo() != null
+				&& getVisualInfo().getVisualObject() != null;
+	}
+
+	/**
+	 * This method has declared to final, please use refresh(RefreshContext).
+	 */
+	protected final void refreshImage() {
+		VisualEditPart root = getRootVisualEditPart();
+		if (root.validateVisuals()) {
+			root.getVisualInfo().refreshImage();
+		}
+	}
+
+	/**
+	 * This method has declared to final, please use refresh(RefreshContext).
+	 */
+	protected final void refreshVisuals() {
+		if (!validateVisuals()) {
+			return;
+		}
+		IFigure figure = getFigure();
+		if (figure != null && figure.getParent() != null) {
+			Rectangle r = new Rectangle(getBounds());
+			figure.setBounds(r);
+			setLayoutConstraint(VisualEditPart.this, figure, r);
+		}
+	}
+
+	/**
+	 * Don't remove this overwrite method. see RefreshJob. This method has
+	 * declared to final, please use refresh(RefreshContext).
+	 */
+	protected final void refreshChildren() {
+		super.refreshChildren();
+	}
+
+	protected Display getUIDisplay() {
+		IVisualInfo visualInfo = getVisualInfo();
+		if (visualInfo instanceof WidgetInfo) {
+			return ((WidgetInfo) visualInfo).getDisplay();
+		}
+		return Display.getCurrent();
+	}
+
+	protected VisualEditPart getRootVisualEditPart() {
+		EditPart root = this;
+		while (!(root.getParent() instanceof AbstractDiagramEditPart)) {
+			if (root.getParent() == null) {
+				break;
+			}
+			root = root.getParent();
+		}
+		return (VisualEditPart) root;
+	}
+
+	protected Rectangle getBounds() {
+		return getVisualInfo().getBounds();
+	}
+
+	/**
+	 * @return the visualComponent
+	 */
+	public IVisualInfo getVisualInfo() {
+		if (visualInfo == null) {
+			visualInfo = createVisualInfo();
+		}
+		return visualInfo;
+	}
+
+	/**
+	 * @return
+	 */
+	protected abstract IVisualInfo createVisualInfo();
+
+	/**
+	 * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#deactivate()
+	 */
+	public void deactivate() {
+		super.deactivate();
+		if (imageFigureController != null) {
+			imageFigureController.deactivate();
+		}
+		IVisualInfo visualInfo = getVisualInfo();
+		if (imageListener != null && visualInfo != null) {
+			visualInfo.removeImageListener(imageListener);
+		}
+	}
+
+	/**
+	 * @param useBorder
+	 *            the useBorder to set
+	 */
+	public void setUseBorder(boolean useBorder) {
+		this.useBorder = useBorder;
+	}
+
+	/**
+	 * @return the useBorder
+	 */
+	public boolean isUseBorder() {
+		return useBorder;
+	}
+
+	/**
+	 * @param transparent
+	 *            the transparent to set
+	 */
+	public void setTransparent(boolean transparent) {
+		this.transparent = transparent;
+	}
+
+	/**
+	 * @return the transparent
+	 */
+	public boolean isTransparent() {
+		return transparent;
+	}
+
+	public boolean isRoot() {
+		return getParent() instanceof AbstractDiagramEditPart;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editparts.AbstractEditPart#getModel()
+	 */
+	public EObject getCastModel() {
+		return (EObject) super.getModel();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editparts.AbstractEditPart#toString()
+	 */
+	public String toString() {
+		IVisualInfo visualInfo = getVisualInfo();
+		if (visualInfo != null && visualInfo.getVisualObject() != null) {
+			return "EditPart("
+					+ visualInfo.getVisualObject().getClass().getSimpleName()
+					+ ")";
+		}
+		return "";
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/root/BindingLayer.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/root/BindingLayer.java
new file mode 100755
index 0000000..185ac47
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/root/BindingLayer.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.parts.root;
+
+import org.eclipse.draw2d.FreeformLayer;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class BindingLayer extends FreeformLayer {
+
+	public static final String ID = "Binding Layer";
+
+	public BindingLayer() {
+		setVisible(false);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/root/DesignerRootEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/root/DesignerRootEditPart.java
new file mode 100755
index 0000000..4452206
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/root/DesignerRootEditPart.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.parts.root;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.LayeredPane;
+import org.eclipse.gef.editparts.ScalableFreeformRootEditPart;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class DesignerRootEditPart extends ScalableFreeformRootEditPart {
+
+	protected void createLayers(LayeredPane layeredPane) {
+		super.createLayers(layeredPane);
+		layeredPane.add(new BindingLayer(), BindingLayer.ID);
+	}
+
+	public void setLayerVisible(Object layerId, boolean visible) {
+		IFigure layer = getLayer(layerId);
+		if (layer != null) {
+			layer.setVisible(visible);
+		}
+	}
+
+	public Boolean getLayerVisible(Object layerId) {
+		IFigure layer = getLayer(layerId);
+		if (layer != null) {
+			return layer.isVisible();
+		}
+		return Boolean.FALSE;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/tools/FocusBorder.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/tools/FocusBorder.java
new file mode 100755
index 0000000..a97adf3
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/tools/FocusBorder.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.parts.tools;
+
+import org.eclipse.draw2d.Border;
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.Graphics;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.LineBorder;
+import org.eclipse.draw2d.geometry.Insets;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.swt.graphics.Color;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class FocusBorder extends LineBorder {
+
+	public FocusBorder() {
+		setColor(ColorConstants.blue);
+		setWidth(1);
+	}
+
+	public void paint(IFigure figure, Graphics graphics, Insets insets) {
+		if (figure instanceof SelectionHandle) {
+			IFigure ownerFigure = ((SelectionHandle) figure).getOwnerFigure();
+			Rectangle r = ownerFigure.getBounds().getCopy();
+			tempRect.setBounds(r);
+		} else {
+			Rectangle paintRectangle = getPaintRectangle(figure, insets);
+			tempRect.setBounds(paintRectangle);
+		}
+		if (getWidth() % 2 != 0) {
+			tempRect.width--;
+			tempRect.height--;
+		}
+		tempRect.shrink(getWidth() / 2, getWidth() / 2);
+		graphics.setLineWidth(getWidth());
+		graphics.setLineStyle(getStyle());
+		if (getColor() != null)
+			graphics.setForegroundColor(getColor());
+		graphics.drawRectangle(tempRect);
+	}
+
+	public static Border getBorder(Color color, int width) {
+		FocusBorder focusBorder = new FocusBorder();
+		focusBorder.setColor(color);
+		focusBorder.setWidth(width);
+		return focusBorder;
+	}
+
+	public static Border getDefaultBorder() {
+		return new FocusBorder();
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/tools/SelectionHandle.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/tools/SelectionHandle.java
new file mode 100755
index 0000000..b97d43d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/tools/SelectionHandle.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.parts.tools;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.DragTracker;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.handles.AbstractHandle;
+import org.eclipse.gef.tools.SelectEditPartTracker;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class SelectionHandle extends AbstractHandle {
+
+	public SelectionHandle(GraphicalEditPart host) {
+		super(host, new SelectionLocator(host.getFigure()));
+		setBorder(new FocusBorder());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.handles.AbstractHandle#createDragTracker()
+	 */
+	protected DragTracker createDragTracker() {
+		SelectEditPartTracker tracker = new SelectEditPartTracker(getOwner());
+		tracker.setDefaultCursor(getCursor());
+		return tracker;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.handles.AbstractHandle#getOwnerFigure()
+	 */
+	public IFigure getOwnerFigure() {
+		return super.getOwnerFigure();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.draw2d.Figure#containsPoint(int, int)
+	 */
+	public boolean containsPoint(int x, int y) {
+		if (!super.containsPoint(x, y))
+			return false;
+		return !Rectangle.SINGLETON.setBounds(getBounds()).shrink(2, 2).contains(x, y);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/tools/SelectionLocator.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/tools/SelectionLocator.java
new file mode 100755
index 0000000..2e0b844
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/parts/tools/SelectionLocator.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.parts.tools;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Locator;
+import org.eclipse.draw2d.geometry.Insets;
+import org.eclipse.draw2d.geometry.PrecisionRectangle;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.handles.HandleBounds;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class SelectionLocator implements Locator {
+
+	private IFigure figure;
+
+	/**
+	 * @param figure
+	 */
+	public SelectionLocator(IFigure figure) {
+		this.figure = figure;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.draw2d.Locator#relocate(org.eclipse.draw2d.IFigure)
+	 */
+	public void relocate(IFigure target) {
+		Insets insets = target.getInsets();
+		Rectangle bounds;
+		if (figure instanceof HandleBounds)
+			bounds = ((HandleBounds) figure).getHandleBounds();
+		else
+			bounds = figure.getBounds();
+		bounds = new PrecisionRectangle(bounds.getResized(-1, -1));
+		figure.translateToAbsolute(bounds);
+		target.translateToRelative(bounds);
+		bounds.translate(-insets.left, -insets.top);
+		bounds.resize(insets.getWidth() + 1, insets.getHeight() + 1);
+		target.setBounds(bounds);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/policies/DefaultComponentEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/policies/DefaultComponentEditPolicy.java
new file mode 100755
index 0000000..cabc640
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/policies/DefaultComponentEditPolicy.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.policies;
+
+import org.eclipse.gef.RequestConstants;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.ComponentEditPolicy;
+import org.eclipse.gef.requests.ForwardedRequest;
+import org.eclipse.gef.requests.GroupRequest;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class DefaultComponentEditPolicy extends ComponentEditPolicy {
+	/**
+	 * @see org.eclipse.gef.editpolicies.ComponentEditPolicy#createDeleteCommand(GroupRequest)
+	 */
+	protected Command createDeleteCommand(GroupRequest deleteRequest) {
+		ForwardedRequest forwardedRequest = new ForwardedRequest(RequestConstants.REQ_DELETE_DEPENDANT, getHost());
+		return getHost().getParent().getCommand(forwardedRequest);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/ConfigurableProblemHandler.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/ConfigurableProblemHandler.java
new file mode 100755
index 0000000..3fbd445
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/ConfigurableProblemHandler.java
@@ -0,0 +1,141 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.problems;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.xwt.tools.ui.designer.core.editor.Designer;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ConfigurableProblemHandler implements ProblemHandler {
+
+	private static final String MARKS_ID = "org.eclipse.xwt.tools.ui.designer.markers";
+
+	private Designer designer;
+	private boolean hasProblems;
+	private List<IProblemChecker> checkers;
+
+	public ConfigurableProblemHandler(Designer designer) {
+		this.designer = designer;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.tools.designer.problems.ProblemHandler#handle(java.util.List)
+	 */
+	public void handle(List<Problem> problems) {
+		if (!isValidate()) {
+			return;
+		}
+		// 1. delete old ones.
+		clear();
+
+		hasProblems = problems != null && !problems.isEmpty();
+
+		// 2. create new ones.
+		if (!hasProblems) {
+			return;
+		}
+		try {
+			IFile file = designer.getFile();
+			for (Problem problem : problems) {
+				makeMaker(file, problem);
+			}
+			file.refreshLocal(IResource.DEPTH_INFINITE, null);
+		} catch (CoreException e) {
+		}
+	}
+
+	private void makeMaker(IFile file, Problem problem) {
+		try {
+			IMarker marker = file.createMarker(MARKS_ID);
+			marker.setAttribute(IMarker.TRANSIENT, true);
+			marker.setAttribute(IMarker.MESSAGE, problem.getMessage());
+			marker.setAttribute(IMarker.CHAR_START, problem.start);
+			marker.setAttribute(IMarker.CHAR_END, problem.end);
+			int type = problem.getType();
+			switch (type) {
+			case Problem.ERROR:
+				marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_ERROR);
+				break;
+			case Problem.INFO:
+				marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_INFO);
+				break;
+			case Problem.WARNING:
+				marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_WARNING);
+				break;
+			}
+			marker.setAttribute(IMarker.LINE_NUMBER, problem.line);
+		} catch (CoreException e) {
+		}
+	}
+
+	public void clear() {
+		IFile file = designer.getFile();
+		try {
+			file.deleteMarkers(MARKS_ID, true, IResource.DEPTH_INFINITE);
+		} catch (CoreException e) {
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.tools.designer.problems.ProblemHandler#isValidate()
+	 */
+	public boolean isValidate() {
+		return designer != null && designer.getFile() != null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.tools.designer.problems.ProblemHandler#handle()
+	 */
+	public void handle() {
+		if (checkers == null) {
+			checkers = ProblemCheckerRegistry.INSTANCE.getCheckers(designer.getSite().getPluginId());
+		}
+		if (checkers != null) {
+			List<Problem> problems = new ArrayList<Problem>();
+			for (IProblemChecker checker : checkers) {
+				if (!checker.isAdapterFor(designer)) {
+					continue;
+				}
+				List<Problem> result = checker.doCheck();
+				if (result != null && !result.isEmpty()) {
+					problems.addAll(result);
+				}
+			}
+			handle(problems);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.tools.designer.problems.ProblemHandler#hasProblems()
+	 */
+	public boolean hasProblems() {
+		handle();
+		return hasProblems;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/DesignerProblemChecker.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/DesignerProblemChecker.java
new file mode 100755
index 0000000..ade1b2e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/DesignerProblemChecker.java
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.problems;
+
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.wst.sse.core.StructuredModelManager;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.xwt.tools.ui.designer.core.editor.Designer;
+import org.w3c.dom.Node;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public abstract class DesignerProblemChecker implements IProblemChecker {
+
+	private Designer designer;
+
+	protected Problem createError(Node node, String msg) {
+		return createProblem(node, msg, Problem.ERROR);
+	}
+
+	protected Problem createProblem(Node node, String msg, int type) {
+		int startOffset = 0;
+		if (node instanceof IDOMNode) {
+			startOffset = ((IDOMNode) node).getStartOffset();
+		}
+		int endOffset = 0;
+		if (node instanceof IDOMNode) {
+			endOffset = ((IDOMNode) node).getEndOffset();
+		}
+		int line = 0;
+		// try {
+		// StructuredTextViewer textViewer = designer.getTextViewer();
+		// if (textViewer != null) {
+		// line = textViewer.getDocument().getLineOfOffset(startOffset) + 1;
+		// }
+		// } catch (BadLocationException e) {
+		// }
+		return createProblem(msg, type, node, startOffset, endOffset, line);
+	}
+
+	protected Problem createProblem(String message, int type, Object source, int start, int end, int line) {
+		Problem problem = new Problem(message, type);
+		problem.setSource(source);
+		problem.start = start;
+		problem.end = end;
+		problem.line = line;
+		return problem;
+	}
+
+	protected IDOMDocument getTextDocument(IDocument doc) {
+		IStructuredModel model = StructuredModelManager.getModelManager().getExistingModelForRead(doc);
+		if (model != null && model instanceof IDOMModel) {
+			return ((IDOMModel) model).getDocument();
+		}
+
+		return null;
+	}
+
+	public Designer getDesigner() {
+		return designer;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.tools.designer.problems.IProblemChecker#isAdapterFor(java.lang.Object)
+	 */
+	public boolean isAdapterFor(Object type) {
+		boolean isAdapter = type != null && type instanceof Designer;
+		if (isAdapter) {
+			designer = (Designer) type;
+		}
+		return isAdapter;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/IProblemChecker.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/IProblemChecker.java
new file mode 100755
index 0000000..bc6dd53
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/IProblemChecker.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.problems;
+
+import java.util.List;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public interface IProblemChecker {
+
+	boolean isAdapterFor(Object type);
+
+	List<Problem> doCheck();
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/Problem.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/Problem.java
new file mode 100755
index 0000000..a828dd3
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/Problem.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.problems;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class Problem {
+
+	// Problem Types.
+	public static final int NONE = 0;
+	public static final int WARNING = 1;
+	public static final int INFO = 2;
+	public static final int ERROR = 3;
+
+	private String message;
+	private int type = NONE;
+
+	public int start;
+	public int end;
+	public int line;
+
+	private Object source;
+
+	public Problem(String message, int type) {
+		this.message = message;
+		this.type = type;
+	}
+
+	public String getMessage() {
+		return message;
+	}
+
+	public void setMessage(String message) {
+		this.message = message;
+	}
+
+	public int getType() {
+		return type;
+	}
+
+	public void setType(int type) {
+		this.type = type;
+	}
+
+	public Object getSource() {
+		return source;
+	}
+
+	public void setSource(Object source) {
+		this.source = source;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/ProblemCheckerRegistry.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/ProblemCheckerRegistry.java
new file mode 100755
index 0000000..9e7aaba
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/ProblemCheckerRegistry.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.problems;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.xwt.tools.ui.designer.core.DesignerPlugin;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ProblemCheckerRegistry {
+
+	public static final String EXTENSION_ID = "problemCheckers";
+	private static final String CHECKER = "class";
+
+	public final static ProblemCheckerRegistry INSTANCE = new ProblemCheckerRegistry();
+
+	private Map<String, IProblemChecker> name2checker = new HashMap<String, IProblemChecker>();
+
+	private ProblemCheckerRegistry() {
+		// 
+	}
+
+	public List<IProblemChecker> getCheckers(String bundleId) {
+		List<IProblemChecker> checkers = new ArrayList<IProblemChecker>();
+		IConfigurationElement[] configElem = Platform.getExtensionRegistry().getConfigurationElementsFor(DesignerPlugin.PLUGIN_ID, EXTENSION_ID);
+		for (IConfigurationElement ce : configElem) {
+			try {
+				if (bundleId != null && !bundleId.equals(ce.getNamespaceIdentifier())) {
+					continue;
+				}
+				String attribute = ce.getAttribute(CHECKER);
+				IProblemChecker checker = name2checker.get(attribute);
+				if (checker == null) {
+					checker = (IProblemChecker) ce.createExecutableExtension(CHECKER);
+					name2checker.put(attribute, checker);
+				}
+				checkers.add(checker);
+			} catch (CoreException e) {
+				return Collections.emptyList();
+			}
+		}
+		return checkers;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/ProblemHandler.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/ProblemHandler.java
new file mode 100755
index 0000000..67d33c8
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/problems/ProblemHandler.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.problems;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public interface ProblemHandler {
+
+	/**
+	 * Does this Handler validate or not.
+	 */
+	boolean isValidate();
+
+	/**
+	 * Handle or check problems.
+	 */
+	void handle();
+
+	/**
+	 * Return True if some problems has been handled.
+	 */
+	boolean hasProblems();
+
+	/**
+	 * Clear all problems if needed.
+	 */
+	void clear();
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/ColorLabelProvider.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/ColorLabelProvider.java
new file mode 100755
index 0000000..39e24e4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/ColorLabelProvider.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.properties;
+
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.xwt.tools.ui.designer.core.util.StringUtil;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ColorLabelProvider extends LabelProvider {
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
+	 */
+	public String getText(Object element) {
+		if (element instanceof Color) {
+			Color color = (Color) element;
+			return StringUtil.format(new Object[] { color.getRed(), color.getGreen(), color.getBlue() });
+		}
+		return super.getText(element);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/FontLabelProvider.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/FontLabelProvider.java
new file mode 100755
index 0000000..5434a3d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/FontLabelProvider.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.properties;
+
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.FontData;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class FontLabelProvider extends LabelProvider {
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
+	 */
+	public String getText(Object element) {
+		if (element instanceof Font) {
+			FontData[] fontData = ((Font) element).getFontData();
+			if (fontData != null && fontData.length > 0) {
+				return fontData[0].toString();
+			}
+		}
+		return super.getText(element);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/LabelProviderFactory.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/LabelProviderFactory.java
new file mode 100755
index 0000000..ada416b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/LabelProviderFactory.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.properties;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class LabelProviderFactory {
+	private static Map<Class<?>, ILabelProvider> cache = new HashMap<Class<?>, ILabelProvider>();
+
+	public static ILabelProvider getLabelProvider(Class<?> type) {
+		ILabelProvider labelProvider = cache.get(type);
+		if (labelProvider == null) {
+			labelProvider = createLabelProvider(type);
+			cache.put(type, labelProvider);
+		}
+		return labelProvider;
+	}
+
+	private static ILabelProvider createLabelProvider(Class<?> type) {
+		if (Color.class == type) {
+			return new ColorLabelProvider();
+		} else if (Font.class == type) {
+			return new FontLabelProvider();
+		} else if (Rectangle.class == type) {
+			return new RectangleLabelProvider();
+		} else if (Point.class == type) {
+			return new PointLabelProvider();
+		}
+		return new LabelProvider() {
+			public String getText(Object element) {
+				if (element.getClass().isArray()) {
+					return "[...]";
+				}
+				return super.getText(element);
+			}
+		};
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/PointLabelProvider.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/PointLabelProvider.java
new file mode 100755
index 0000000..b8a963c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/PointLabelProvider.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.properties;
+
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.xwt.tools.ui.designer.core.util.StringUtil;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class PointLabelProvider extends LabelProvider {
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
+	 */
+	public String getText(Object element) {
+		if (element instanceof Point) {
+			Point p = (Point) element;
+			return StringUtil.format(p);
+		}
+		return super.getText(element);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/RectangleLabelProvider.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/RectangleLabelProvider.java
new file mode 100755
index 0000000..2b93b89
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/RectangleLabelProvider.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.properties;
+
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.xwt.tools.ui.designer.core.util.StringUtil;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class RectangleLabelProvider extends LabelProvider {
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
+	 */
+	public String getText(Object element) {
+		if (element instanceof Rectangle) {
+			Rectangle r = (Rectangle) element;
+			return StringUtil.format(r);
+		}
+		return super.getText(element);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/AbstractCellEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/AbstractCellEditor.java
new file mode 100755
index 0000000..2411683
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/AbstractCellEditor.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.properties.editors;
+
+import org.eclipse.jface.viewers.DialogCellEditor;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.xwt.tools.ui.designer.core.properties.LabelProviderFactory;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public abstract class AbstractCellEditor extends DialogCellEditor {
+
+	public AbstractCellEditor(Composite parent) {
+		super(parent);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.DialogCellEditor#updateContents(java.lang.Object)
+	 */
+	protected void updateContents(Object value) {
+		if (value != null) {
+			ILabelProvider labelProvider = LabelProviderFactory.getLabelProvider(value.getClass());
+			value = labelProvider.getText(value);
+		}
+		super.updateContents(value);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.DialogCellEditor#openDialogBox(org.eclipse.swt.widgets.Control)
+	 */
+	protected Object openDialogBox(Control cellEditorWindow) {
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/ArrayCellEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/ArrayCellEditor.java
new file mode 100755
index 0000000..d76c081
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/ArrayCellEditor.java
@@ -0,0 +1,126 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.properties.editors;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.StringTokenizer;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.TraverseEvent;
+import org.eclipse.swt.events.TraverseListener;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ArrayCellEditor extends AbstractCellEditor {
+
+	public ArrayCellEditor(Composite parent) {
+		super(parent);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.properties.editors.AbstractCellEditor#openDialogBox(org.eclipse.swt.widgets.Control)
+	 */
+	protected Object openDialogBox(Control cellEditorWindow) {
+		Object value = getValue();
+		String[] initValue = null;
+		if (value instanceof String[]) {
+			initValue = (String[]) value;
+		}
+		ArrayDialog dialog = new ArrayDialog(cellEditorWindow.getShell(), initValue);
+		if (dialog.open() == Window.OK) {
+			initValue = dialog.getArray();
+		}
+		return initValue;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.properties.editors.AbstractCellEditor#updateContents(java.lang.Object)
+	 */
+	protected void updateContents(Object value) {
+		super.updateContents("[...]");
+	}
+
+	static class ArrayDialog extends Dialog {
+		private Text text;
+		private String result;
+		private String[] initValue;
+
+		protected ArrayDialog(Shell parentShell, String[] initValue) {
+			super(parentShell);
+			setShellStyle(SWT.SHELL_TRIM);
+			this.initValue = initValue;
+		}
+
+		protected Control createDialogArea(Composite parent) {
+			Composite control = (Composite) super.createDialogArea(parent);
+			control.setLayout(new FillLayout());
+			text = new Text(control, SWT.BORDER | SWT.MULTI | SWT.WRAP);
+			if (initValue != null) {
+				StringBuilder sb = new StringBuilder();
+				for (String item : initValue) {
+					sb.append(item);
+					sb.append("\n");
+				}
+				result = sb.toString();
+			}
+			if (result != null) {
+				text.setText(result);
+			}
+			text.addListener(SWT.Modify, new Listener() {
+				public void handleEvent(Event event) {
+					result = text.getText();
+				}
+			});
+			text.addTraverseListener(new TraverseListener() {
+				public void keyTraversed(TraverseEvent e) {
+					if (e.detail == SWT.TRAVERSE_RETURN) {
+						text.getParent().layout(true, true);
+						getDialogArea().getParent().layout();
+					}
+				}
+			});
+			return control;
+		}
+
+		public String getResult() {
+			return result;
+		}
+
+		public String[] getArray() {
+			if (result == null) {
+				return new String[0];
+			}
+			List<String> resultList = new ArrayList<String>();
+			StringTokenizer stk = new StringTokenizer(result, "\n");
+			while (stk.hasMoreElements()) {
+				resultList.add(stk.nextToken().trim());
+			}
+			return resultList.toArray(new String[0]);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/BooleanCellEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/BooleanCellEditor.java
new file mode 100755
index 0000000..e096f3c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/BooleanCellEditor.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.properties.editors;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class BooleanCellEditor extends AbstractCellEditor {
+	private Button checkBox;
+
+	public BooleanCellEditor(Composite parent) {
+		super(parent);
+	}
+
+	protected Control createControl(Composite parent) {
+		if (checkBox == null || checkBox.isDisposed()) {
+			checkBox = new Button(parent, SWT.CHECK);
+		}
+		return checkBox;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.CheckboxCellEditor#doSetValue(java.lang.Object)
+	 */
+	protected void doSetValue(Object newValue) {
+		boolean booleanValue = false;
+		if (newValue instanceof Boolean) {
+			booleanValue = ((Boolean) newValue).booleanValue();
+		} else if (newValue instanceof String) {
+			booleanValue = "true".equals(newValue);
+		}
+		checkBox.setSelection(booleanValue);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.CheckboxCellEditor#doGetValue()
+	 */
+	protected Object doGetValue() {
+		return checkBox.getSelection();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.DialogCellEditor#doSetFocus()
+	 */
+	protected void doSetFocus() {
+		checkBox.setFocus();
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/CharacterCellEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/CharacterCellEditor.java
new file mode 100755
index 0000000..a2aa10b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/CharacterCellEditor.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.properties.editors;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Text;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class CharacterCellEditor extends org.eclipse.jface.viewers.TextCellEditor {
+
+	public CharacterCellEditor(Composite parent) {
+		super(parent);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.DialogCellEditor#doSetValue(java.lang.Object)
+	 */
+	protected void doSetValue(Object value) {
+		String textValue = value == null ? "" : value.toString();
+		super.doSetValue(textValue);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.TextCellEditor#createControl(org.eclipse.swt.widgets.Composite)
+	 */
+	protected Control createControl(Composite parent) {
+		Text text = (Text) super.createControl(parent);
+		text.setTextLimit(1);
+		return text;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/ColorCellEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/ColorCellEditor.java
new file mode 100755
index 0000000..f0cb131
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/ColorCellEditor.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.properties.editors;
+
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.RGB;
+import org.eclipse.swt.widgets.ColorDialog;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.tools.ui.designer.core.properties.LabelProviderFactory;
+
+public class ColorCellEditor extends AbstractCellEditor {
+
+	/**
+	 * constructor
+	 */
+	public ColorCellEditor(Composite parent) {
+		super(parent);
+	}
+
+	/**
+	 * @see org.eclipse.jface.viewers.DialogCellEditor#openDialogBox(org.eclipse.swt.widgets.Control)
+	 */
+	protected Object openDialogBox(Control cellEditorWindow) {
+		String color = null;
+		Object value = getValue();
+		if (value instanceof Color) {
+			color = LabelProviderFactory.getLabelProvider(Color.class).getText(value);
+		} else if (value instanceof String) {
+			color = (String) value;
+		}
+		ColorDialog dialog = new ColorDialog(new Shell());
+		RGB rgb = dialog.open();
+		if (rgb != null) {
+			return new Color(Display.getDefault(), rgb);
+		}
+		return color;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/FontCellEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/FontCellEditor.java
new file mode 100755
index 0000000..47f83dc
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/FontCellEditor.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.properties.editors;
+
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.FontDialog;
+
+public class FontCellEditor extends AbstractCellEditor {
+
+	/**
+	 * Creates a new Font dialog cell editor parented under the given control. The cell editor value is null initially, and has no validator.
+	 * 
+	 * @param parent
+	 *            the parent control
+	 */
+	public FontCellEditor(Composite parent) {
+		super(parent);
+	}
+
+	/**
+	 * @see org.eclipse.jface.viewers.DialogCellEditor#openDialogBox(Control)
+	 */
+	protected Object openDialogBox(Control cellEditorWindow) {
+		FontDialog ftDialog = new FontDialog(cellEditorWindow.getShell());
+		Object value = getValue();
+		if (value != null && value instanceof Font) {
+			Font font = (Font) value;
+			if (font != null) {
+				FontData[] fontDatas = font.getFontData();
+				ftDialog.setFontList(fontDatas);
+			}
+		}
+		FontData fData = ftDialog.open();
+		if (fData != null) {
+			value = new Font(Display.getCurrent(), fData);
+		}
+		return value;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/ImageCellEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/ImageCellEditor.java
new file mode 100755
index 0000000..040b1bc
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/ImageCellEditor.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.properties.editors;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+public class ImageCellEditor extends AbstractCellEditor {
+
+	public ImageCellEditor(Composite parent) {
+		super(parent);
+	}
+
+	protected Object openDialogBox(Control cellEditorWindow) {
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/IntegerCellEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/IntegerCellEditor.java
new file mode 100755
index 0000000..b512b9b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/IntegerCellEditor.java
@@ -0,0 +1,91 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.properties.editors;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Spinner;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class IntegerCellEditor extends AbstractCellEditor {
+
+	private Spinner spinner;
+
+	/**
+	 * @param parent
+	 */
+	public IntegerCellEditor(Composite parent) {
+		super(parent);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.DialogCellEditor#createContents(org.eclipse.swt.widgets.Composite)
+	 */
+	protected Control createControl(Composite cell) {
+		if (spinner == null || spinner.isDisposed()) {
+			spinner = new Spinner(cell, SWT.NONE);
+			spinner.setMinimum(-1);
+			spinner.setMaximum(Integer.MAX_VALUE);
+		}
+		return spinner;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.DialogCellEditor#doSetValue(java.lang.Object)
+	 */
+	protected void doSetValue(Object value) {
+		if (spinner == null || spinner.isDisposed()) {
+			return;
+		}
+		int intValue = 0;
+		if (value instanceof Integer) {
+			intValue = ((Integer) value).intValue();
+		} else if (value instanceof String) {
+			try {
+				intValue = Integer.parseInt((String) value);
+			} catch (NumberFormatException e) {
+			}
+		}
+		spinner.setSelection(intValue);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.DialogCellEditor#doGetValue()
+	 */
+	protected Object doGetValue() {
+		if (spinner == null || spinner.isDisposed()) {
+			return 0;
+		}
+		return spinner.getSelection();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.DialogCellEditor#doSetFocus()
+	 */
+	protected void doSetFocus() {
+		if (spinner != null && !spinner.isDisposed()) {
+			spinner.setFocus();
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/PointCellEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/PointCellEditor.java
new file mode 100755
index 0000000..c0c4f1d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/PointCellEditor.java
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.properties.editors;
+
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.xwt.tools.ui.designer.core.dialogs.IntArrayDialog;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class PointCellEditor extends AbstractCellEditor {
+
+	public PointCellEditor(Composite parent) {
+		super(parent);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.DialogCellEditor#openDialogBox(org.eclipse.swt.widgets.Control)
+	 */
+	protected Object openDialogBox(Control cellEditorWindow) {
+		Point point = new Point(0, 0);
+		Object value = getValue();
+		if (value instanceof Point) {
+			point.x = ((Point) value).x;
+			point.y = ((Point) value).y;
+		}
+		IntArrayDialog dialog = new IntArrayDialog(cellEditorWindow.getShell(), new int[] { point.x, point.y },
+				new String[] { "x:", "y:" });
+		if (dialog.open() == Window.OK) {
+			int[] result = dialog.getResult();
+			point.x = result[0];
+			point.y = result[1];
+		}
+		return point;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/RectangleCellEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/RectangleCellEditor.java
new file mode 100755
index 0000000..52aca68
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/properties/editors/RectangleCellEditor.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.properties.editors;
+
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.xwt.tools.ui.designer.core.dialogs.IntArrayDialog;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class RectangleCellEditor extends AbstractCellEditor {
+
+	public RectangleCellEditor(Composite parent) {
+		super(parent);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.DialogCellEditor#openDialogBox(org.eclipse.swt.widgets.Control)
+	 */
+	protected Object openDialogBox(Control cellEditorWindow) {
+		Rectangle rect = new Rectangle(0, 0, 0, 0);
+		Object value = getValue();
+		if (value instanceof Rectangle) {
+			Rectangle r = (Rectangle) value;
+			rect.x = r.x;
+			rect.y = r.y;
+			rect.width = r.width;
+			rect.height = r.height;
+		}
+		IntArrayDialog dialog = new IntArrayDialog(cellEditorWindow.getShell(), new int[] { rect.x, rect.y, rect.width,
+				rect.height }, new String[] { "x:", "y:", "width:", "height:" });
+		if (dialog.open() == Window.OK) {
+			int[] result = dialog.getResult();
+			rect.x = result[0];
+			rect.y = result[1];
+			rect.width = result[2];
+			rect.height = result[3];
+		}
+		return rect;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/style/SWTStyles.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/style/SWTStyles.java
new file mode 100755
index 0000000..2966d5c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/style/SWTStyles.java
@@ -0,0 +1,118 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.style;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.ResourceBundle;
+import java.util.Set;
+import java.util.StringTokenizer;
+
+import org.eclipse.xwt.tools.ui.designer.core.DesignerPlugin;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class SWTStyles {
+	private static ResourceBundle RESOURCE_BUNDLE = ResourceBundle
+			.getBundle("org.eclipse.xwt.tools.ui.designer.core.style.styles");
+
+	private static StyleGroup[] DEFINED_GROUPS;
+	private static final Map<Class<?>, StyleGroup[]> stylesCache = new HashMap<Class<?>, StyleGroup[]>(1);
+
+	public synchronized static StyleGroup[] getDefinedGroups() {
+		if (DEFINED_GROUPS == null) {
+			List<StyleGroup> groups = new ArrayList<StyleGroup>();
+			Field[] feilds = StyleGroup.class.getDeclaredFields();
+			for (Field field : feilds) {
+				try {
+					Object object = field.get(null);
+					if (object != null && object instanceof StyleGroup) {
+						groups.add((StyleGroup) object);
+					}
+				} catch (Exception e) {
+					DesignerPlugin.logInfo(e);
+				}
+			}
+			DEFINED_GROUPS = groups.toArray(new StyleGroup[0]);
+		}
+		return DEFINED_GROUPS;
+	}
+
+	public static StyleGroup[] getStyles(Class<?> type) {
+		StyleGroup[] styleGroups = stylesCache.get(type);
+		if (styleGroups == null) {
+			List<StyleGroup> groups = new ArrayList<StyleGroup>();
+			List<String> styles = new ArrayList<String>(styles(type));
+
+			Collections.sort(styles);
+
+			StyleGroup[] definedGroups = getDefinedGroups();
+
+			for (StyleGroup grp : definedGroups) {
+				if (grp.match(type, styles)) {
+					groups.add(grp);
+				}
+			}
+			for (StyleGroup added : groups) {
+				styles.removeAll(Arrays.asList(added.getStyles()));
+			}
+			if (!styles.isEmpty()) {
+				groups.add(new StyleGroup(type, "default", styles.toArray(new String[styles.size()])));
+			}
+			styleGroups = groups.toArray(new StyleGroup[groups.size()]);
+			stylesCache.put(type, styleGroups);
+		}
+		return styleGroups;
+	}
+
+	public static StyleGroup getStyles(Class<?> type, String groupName) {
+		if (type == null || groupName == null) {
+			return null;
+		}
+		StyleGroup[] styles = getStyles(type);
+		for (StyleGroup styleGroup : styles) {
+			if (groupName.equals(styleGroup.getGroupName())) {
+				return styleGroup;
+			}
+		}
+		return null;
+	}
+
+	private static Set<String> styles(Class<?> type) {
+		Set<String> result = new HashSet<String>();
+		String key = type.getName();
+		if (RESOURCE_BUNDLE.getObject(key) == null){
+			return Collections.emptySet();
+		}
+		String value = RESOURCE_BUNDLE.getString(key);
+		if (value != null) {
+			StringTokenizer stk = new StringTokenizer(value, ",");
+			while (stk.hasMoreElements()) {
+				result.add(stk.nextToken().trim());
+			}
+		} else {
+			Class<?> superclass = type.getSuperclass();
+			if (superclass != null && superclass != Object.class) {
+				result.addAll(styles(superclass));
+			}
+		}
+		return result;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/style/StyleGroup.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/style/StyleGroup.java
new file mode 100755
index 0000000..745baeb
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/style/StyleGroup.java
@@ -0,0 +1,141 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.style;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.CoolBar;
+import org.eclipse.swt.widgets.DateTime;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.ProgressBar;
+import org.eclipse.swt.widgets.Scale;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Slider;
+import org.eclipse.swt.widgets.TabFolder;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.swt.widgets.ToolItem;
+import org.eclipse.swt.widgets.Tree;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class StyleGroup {
+
+	public static final StyleGroup ALIGNMENT = new StyleGroup(new Class[] { Button.class, Label.class }, -1, SWT.SEPARATOR | SWT.ARROW, "alignment", new String[] { "LEFT", "CENTER", "RIGHT" });
+	public static final StyleGroup SELECTION = new StyleGroup(new Class[] { org.eclipse.swt.widgets.List.class, Text.class, Table.class, Tree.class, StyledText.class }, "selection", new String[] { "SINGLE", "MUTIL" });
+	public static final StyleGroup TYPE = new StyleGroup(new Class[] { Button.class, ToolItem.class }, "type", new String[] { "PUSH", "CHECK", "RADIO", "TOGGLE", "ARROW" });
+
+	// for Arrow
+	public static final StyleGroup ARROW = new StyleGroup(new Class[] { Button.class }, SWT.ARROW, "arrow", new String[] { "LEFT", "RIGHT", "UP", "DOWN" });
+
+	// for Label
+	public static final StyleGroup LABEL_SHADOW = new StyleGroup(new Class[] { Label.class }, SWT.SEPARATOR, "shadow", new String[] { "SHADOW_IN", "SHADOW_OUT", "SHADOW_NONE" });
+	public static final StyleGroup CLABEL_SHADOW = new StyleGroup(CLabel.class, "shadow", new String[] { "SHADOW_IN", "SHADOW_OUT", "SHADOW_NONE" });
+
+	public static final StyleGroup ORIENTATION = new StyleGroup(Control.class, "orientation", new String[] { "LEFT_TO_RIGHT", "RIGHT_TO_LEFT" });
+
+	public static final StyleGroup PROGRESS_TYPE = new StyleGroup(new Class<?>[] { ProgressBar.class, CoolBar.class, ToolBar.class, SashForm.class, Scale.class, Slider.class, Label.class }, "type", new String[] { "VERTICAL", "HORIZONTAL" });
+
+	public static final StyleGroup GROUP_SHADOW = new StyleGroup(Group.class, "shadow", new String[] { "SHADOW_ETCHED_IN", "SHADOW_ETCHED_OUT", "SHADOW_IN", "SHADOW_OUT", "SHADOW_NONE" });
+
+	// for Shell
+	public static final StyleGroup MODALITY = new StyleGroup(Shell.class, "modality", new String[] { "PRIMARY_MODAL", "MODELESS", "APPLICATION_MODAL", "SYSTEM_MODAL" });
+	public static final StyleGroup TRIM = new StyleGroup(Shell.class, "trim", new String[] { "SHELL_TRIM", "DIALOG_TRIM", "NO_TRIM" });
+
+	// for Text
+	public static final StyleGroup LINES = new StyleGroup(Text.class, "lines", new String[] { "SINGLE", "MUTIL" });
+
+	// for Date
+	public static final StyleGroup DATE_TYPE = new StyleGroup(DateTime.class, "type", new String[] { "DATE", "TIME", "CALENDAR" });
+	public static final StyleGroup DATE_FORMAT = new StyleGroup(DateTime.class, "format", new String[] { "MEDIUM", "SHORT", "LONG" });
+
+	public static final StyleGroup LOCATION = new StyleGroup(new Class[] { TabFolder.class, CTabFolder.class }, "location", new String[] { "TOP", "BOTTOM" });
+
+	private String groupName;
+	private String[] styles;
+	private int accessibleStyle = -1;
+	private int unaccessibleStyle = -1;
+	private Class<?>[] accessibleTypes;
+
+	public StyleGroup(Class<?> type, String groupName, String[] styles) {
+		this(new Class[] { type }, groupName, styles);
+	}
+
+	public StyleGroup(Class<?>[] accessibleTypes, String groupName, String[] styles) {
+		this(accessibleTypes, -1, groupName, styles);
+	}
+
+	public StyleGroup(Class<?>[] accessibleTypes, int accessibleStyle, String groupName, String[] styles) {
+		this(accessibleTypes, accessibleStyle, -1, groupName, styles);
+	}
+
+	public StyleGroup(Class<?>[] accessibleTypes, int accessibleStyle, int unaccessibleStyle, String groupName, String[] styles) {
+		this.accessibleTypes = accessibleTypes;
+		this.accessibleStyle = accessibleStyle;
+		this.unaccessibleStyle = unaccessibleStyle;
+		this.groupName = groupName;
+		this.styles = styles;
+	}
+
+	public String[] getStyles() {
+		return styles;
+	}
+
+	public String getGroupName() {
+		return groupName;
+	}
+
+	public boolean match(Class<?> type, List<String> styleList) {
+		return match(type) && match(styleList);
+	}
+
+	public boolean match(List<String> styleList) {
+		if (styles == null || styleList == null) {
+			return false;
+		}
+		return styleList.containsAll(Arrays.asList(styles));
+	}
+
+	public boolean match(Class<?> type) {
+		if (accessibleTypes == null || type == null) {
+			return false;
+		}
+		for (Class<?> t : accessibleTypes) {
+			if (t.isAssignableFrom(type)) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	public boolean match(int style) {
+		if (unaccessibleStyle != -1 && (unaccessibleStyle & style) != 0) {
+			return false;
+		}
+		if (accessibleStyle == -1) {
+			return true;
+		}
+		return (accessibleStyle & style) != 0;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/style/styles.properties b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/style/styles.properties
new file mode 100755
index 0000000..ec623cc
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/style/styles.properties
@@ -0,0 +1,52 @@
+###############################################################################
+# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     Soyatec - initial API and implementation
+###############################################################################
+org.eclipse.swt.widgets.Button=TOGGLE, ARROW, PUSH, RADIO, CHECK, FLAT, UP, DOWN, LEFT, RIGHT, CENTER, BORDER
+org.eclipse.swt.widgets.Combo=DROP_DOWN, READ_ONLY, SIMPLE, BORDER
+org.eclipse.swt.widgets.Composite=NO_BACKGROUND, NO_FOCUS, NO_REDRAW_RESIZE, NO_MERGE_PAINTS, NO_RADIO_GROUP, EMBEDDED, DOUBLE_BUFFERED, BORDER
+org.eclipse.swt.widgets.Control=BORDER, LEFT_TO_RIGHT, RIGHT_TO_LEFT 
+org.eclipse.swt.widgets.CoolBar=FLAT, HORIZONTAL, VERTICAL, BORDER 
+org.eclipse.swt.widgets.CoolItem=DROP_DOWN , BORDER
+org.eclipse.swt.widgets.DateTime=DATE, TIME, CALENDAR, SHORT, MEDIUM, LONG, BORDER 
+org.eclipse.swt.widgets.Decorations=TOOL, NO_TRIM, RESIZE, TITLE, CLOSE, MIN, MAX, BORDER, ON_TOP, BORDER 
+org.eclipse.swt.widgets.Dialog=PRIMARY_MODAL, APPLICATION_MODAL, SYSTEM_MODAL , BORDER
+org.eclipse.swt.widgets.ExpandBar=V_SCROLL , BORDER
+org.eclipse.swt.widgets.FileDialog=MULTI , BORDER
+org.eclipse.swt.widgets.Group=SHADOW_IN, SHADOW_OUT, SHADOW_ETCHED_IN, SHADOW_ETCHED_OUT, SHADOW_NONE, BORDER 
+org.eclipse.swt.widgets.Label=SEPARATOR, WRAP, SHADOW_IN, SHADOW_OUT, SHADOW_NONE, LEFT, RIGHT, CENTER, HORIZONTAL, VERTICAL, BORDER 
+org.eclipse.swt.widgets.List=MULTI, SINGLE , BORDER
+org.eclipse.swt.widgets.Menu=BAR, DROP_DOWN, POP_UP, NO_RADIO_GROUP, LEFT_TO_RIGHT, RIGHT_TO_LEFT 
+org.eclipse.swt.widgets.MenuItem=SEPARATOR, PUSH, RADIO, CHECK, CASCADE 
+org.eclipse.swt.widgets.ProgressBar=INDETERMINATE, MIN, SMOOTH, HORIZONTAL, VERTICAL, BORDER 
+org.eclipse.swt.widgets.Sash=SMOOTH, HORIZONTAL, VERTICAL, BORDER 
+org.eclipse.swt.widgets.Scale=HORIZONTAL, VERTICAL, BORDER 
+org.eclipse.swt.widgets.Scrollable=H_SCROLL, V_SCROLL, BORDER 
+org.eclipse.swt.widgets.ScrollBar=HORIZONTAL, VERTICAL, BORDER 
+org.eclipse.swt.widgets.Shell=TOOL, NO_TRIM, DIALOG_TRIM, SHELL_TRIM, RESIZE, TITLE, CLOSE, MIN, MAX, BORDER, ON_TOP, MODELESS, PRIMARY_MODAL, APPLICATION_MODAL, SYSTEM_MODAL 
+org.eclipse.swt.widgets.Slider=HORIZONTAL, VERTICAL, BORDER 
+org.eclipse.swt.widgets.Spinner=READ_ONLY, WRAP, BORDER 
+org.eclipse.swt.widgets.TabFolder=TOP, BOTTOM, BORDER 
+org.eclipse.swt.widgets.Table=CHECK, MULTI, SINGLE, HIDE_SELECTION, FULL_SELECTION, VIRTUAL, BORDER 
+org.eclipse.swt.widgets.TableColumn=LEFT, RIGHT, CENTER 
+org.eclipse.swt.widgets.Text=MULTI, SINGLE, READ_ONLY, WRAP, SEARCH, PASSWORD, LEFT, RIGHT, CENTER, BORDER 
+org.eclipse.swt.widgets.ToolBar=WRAP, SHADOW_OUT, FLAT, RIGHT, HORIZONTAL, VERTICAL, BORDER 
+org.eclipse.swt.widgets.ToolItem=DROP_DOWN, SEPARATOR, PUSH, RADIO, CHECK 
+org.eclipse.swt.widgets.ToolTip=BALLOON 
+org.eclipse.swt.widgets.Tracker=RESIZE, UP, DOWN, LEFT, RIGHT 
+org.eclipse.swt.widgets.Tree=CHECK, MULTI, SINGLE, FULL_SELECTION, VIRTUAL, BORDER 
+org.eclipse.swt.widgets.TreeColumn=LEFT, RIGHT, CENTER 
+org.eclipse.swt.custom.CCombo=BORDER, READ_ONLY, FLAT
+org.eclipse.swt.custom.CLabel=BORDER, LEFT, RIGHT, CENTER, SHADOW_IN, SHADOW_OUT, SHADOW_NONE
+org.eclipse.swt.custom.CTabFolder=CLOSE, TOP, BOTTOM, FLAT, BORDER, SINGLE, MULTI, BORDER
+org.eclipse.swt.custom.CTabItem=CLOSE
+org.eclipse.swt.custom.SashForm=BORDER, HORIZONTAL, VERTICAL, SMOOTH
+org.eclipse.swt.custom.StyledText=BORDER, FULL_SELECTION, MULTI, READ_ONLY, SINGLE, WRAP
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/DisplayUtil.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/DisplayUtil.java
new file mode 100755
index 0000000..6d0e544
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/DisplayUtil.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.util;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.SWTException;
+import org.eclipse.swt.widgets.Display;
+
+/**
+ * @author bo.zhou
+ */
+public class DisplayUtil {
+	public static void asyncExec(Runnable runnable) {
+		asyncExec(getDisplay(), runnable);
+	}
+
+	public static void asyncExec(Display display, Runnable runnable) {
+		check(display).asyncExec(runnable);
+	}
+
+	private static Display check(Display display) {
+		if (display == null) {
+			display = getDisplay();
+		}
+		if (display == null) {
+			throw new SWTException(SWT.ERROR_INVALID_ARGUMENT, "Invalid thread access");
+		}
+		return display;
+	}
+
+	public static void syncExec(Runnable runnable) {
+		if (runnable != null) {
+			getDisplay().syncExec(runnable);
+		}
+	}
+
+	public static void syncExec(Display display, Runnable runnable) {
+		check(display).syncExec(runnable);
+	}
+
+	public static void timerExec(int milliseconds, Runnable runnable) {
+		if (runnable != null) {
+			getDisplay().timerExec(milliseconds, runnable);
+		}
+	}
+
+	public static void timerExec(Display display, int milliseconds, Runnable runnable) {
+		check(display).timerExec(milliseconds, runnable);
+	}
+
+	public static Display getDisplay() {
+		Display display = Display.getCurrent();
+		if (display == null) {
+			display = Display.getDefault();
+		}
+		if (display == null) {
+			display = new Display();
+		}
+		return display;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/DomHelper.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/DomHelper.java
new file mode 100755
index 0000000..c45e160
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/DomHelper.java
@@ -0,0 +1,97 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.util;
+
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class DomHelper {
+	public static String XMLNS = "xmlns";
+
+	/**
+	 * resolve the namespace
+	 * 
+	 * @param node
+	 * @return
+	 */
+	public static String lookupNamespaceURI(Node node) {
+		String string = node.getNamespaceURI();
+		if (string != null) {
+			return string;
+		}
+		return lookupNamespaceURI(node, node.getPrefix());
+	}
+
+	public static String lookupNamespaceURI(Node node, Node attr) {
+		String string = attr.getNamespaceURI();
+		if (string != null) {
+			return string;
+		}
+		return lookupNamespaceURI(node, attr.getPrefix());
+	}
+
+	public static String lookupNamespaceURI(Node node, String prefix) {
+		NamedNodeMap map = node.getAttributes();
+		if (map != null && map.getLength() > 0) {
+			for (int i = 0; i < map.getLength(); i++) {
+				Node attr = map.item(i);
+				String name = attr.getNodeName();
+				if (name.startsWith(XMLNS)) {
+					int index = name.indexOf(':');
+					if (index == -1 || prefix == null) {
+						if (index == -1 && prefix == null) {
+							return attr.getNodeValue();
+						}
+						continue;
+					}
+					String prefixName = name.substring(index + 1);
+					if (prefix.equals(prefixName)) {
+						return attr.getNodeValue();
+					}
+				}
+			}
+		}
+
+		Node nodeParent = node.getParentNode();
+		if (nodeParent != null) {
+			return lookupNamespaceURI(nodeParent, prefix);
+		}
+		return null;
+	}
+
+	public static String lookupNamespacePrefix(Node node, String namespace) {
+		NamedNodeMap map = node.getAttributes();
+		if (map != null && map.getLength() > 0) {
+			for (int i = 0; i < map.getLength(); i++) {
+				Node attr = map.item(i);
+				String name = attr.getNodeName();
+				if (name.startsWith(XMLNS) && namespace.equals(attr.getNodeValue())) {
+					int index = name.indexOf(':');
+					if (index == -1) {
+						return "";
+					}
+					return name.substring(index + 1);
+				}
+			}
+		}
+
+		Node nodeParent = node.getParentNode();
+		if (nodeParent != null) {
+			return lookupNamespacePrefix(nodeParent, namespace);
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/Draw2dTools.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/Draw2dTools.java
new file mode 100755
index 0000000..9d50e18
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/Draw2dTools.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.util;
+
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class Draw2dTools {
+
+	public static Rectangle toDraw2d(org.eclipse.swt.graphics.Rectangle r) {
+		return new Rectangle(r.x, r.y, r.width, r.height);
+	}
+
+	public static org.eclipse.swt.graphics.Rectangle toSWT(Rectangle r) {
+		return new org.eclipse.swt.graphics.Rectangle(r.x, r.y, r.width, r.height);
+	}
+
+	public static Point toDraw2d(org.eclipse.swt.graphics.Point p) {
+		return new Point(p.x, p.y);
+	}
+
+	public static org.eclipse.swt.graphics.Point toSWT(Point p) {
+		return new org.eclipse.swt.graphics.Point(p.x, p.y);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/JavaModelUtil.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/JavaModelUtil.java
new file mode 100755
index 0000000..737e6c9
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/JavaModelUtil.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.util;
+
+/**
+ * 
+ * @author yyang <yves.yang@soyatec.com>
+ */
+public class JavaModelUtil {
+
+	public static boolean isKindOf(Class<?> type, String typeName) {
+		String name = type.getName();
+		name = name.replace('$', '.');
+		if (name.equals(typeName)) {
+			return true;
+		}
+		Class<?> superType = type.getSuperclass();
+		if (superType != null) {
+			if (isKindOf(superType, typeName)) {
+				return true;
+			}
+		}
+		for (Class<?> interfaceType : type.getInterfaces()) {
+			if (isKindOf(interfaceType, typeName)) {
+				return true;
+			}
+		}
+		return false;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/SashUtil.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/SashUtil.java
new file mode 100755
index 0000000..a2927ee
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/SashUtil.java
@@ -0,0 +1,92 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.util;
+
+public class SashUtil {
+
+	public static String removeWeights(String weights, int index) {
+		String[] values = weightsSplit(weights);
+		StringBuilder stringBuilder = new StringBuilder();
+		String value = null;
+		for (int i = 0; i < values.length; i++) {
+			if (i != 0 && i != index) {
+				stringBuilder.append(",");
+			}
+			if (value != null){
+				int item1 = Integer.parseInt(value);
+				int item2 = Integer.parseInt(values[i]);
+				values[i] = "" + (item1 + item2);
+				value = null;
+			}
+			if (i != index) {
+				stringBuilder.append(values[i]);
+			}
+			else {
+				value = values[i];
+			}
+		}
+		return stringBuilder.toString();
+	}
+
+	public static String weightsValue(int[] weights) {
+		StringBuilder stringBuilder = new StringBuilder();
+		for (int i = 0; i < weights.length; i++) {
+			if (i != 0) {
+				stringBuilder.append(",");				
+			}
+			stringBuilder.append(weights[i]);
+		}
+		return stringBuilder.toString();
+	}
+
+	public static String weightsDisplayString(int[] weights) {
+		return "[" + weightsValue(weights) + "]";
+	}
+	
+	public static String[] weightsSplit(String value) {
+		return value.split(",");
+	}
+
+	public static int[] toWeights(String value) {
+		String[] segments = weightsSplit(value);
+		int [] weights = new int [segments.length];
+		for(int i = 0; i< segments.length; i++) {
+			try {
+				weights[i] = Integer.parseInt(segments[i]);
+			} catch (NumberFormatException e) {
+				weights[i] = 0;
+			}
+		}
+		return weights;
+	}
+
+	public static String updateWeightsLengh(int[] segments, int length) {
+		if (length == segments.length) {
+			return weightsValue(segments);			
+		}
+		
+		int[] values = new int[length];
+		if (length > segments.length) {
+			for(int i = 0; i< segments.length; i++) {
+				values[i] = segments[i];
+			}			
+		}
+		else if (length < segments.length) {
+			for(int i = 0; i< values.length; i++) {
+				values[i] = segments[i];
+			}
+		}
+		return weightsValue(values);			
+	}
+}
+
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/StringUtil.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/StringUtil.java
new file mode 100755
index 0000000..3fe422b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/StringUtil.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.util;
+
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class StringUtil {
+	public static final String COMMA = ",";
+
+	/**
+	 * String Utility.
+	 */
+	private StringUtil() {
+	}
+
+	public static String format(Object[] args, String sep) {
+		if (args == null || sep == null) {
+			return "";
+		}
+		int length = args.length;
+		StringBuffer sb = new StringBuffer();
+		for (int i = 0; i < length; i++) {
+			sb.append(args[i].toString());
+			if (i + 1 < length) {
+				sb.append(sep);
+			}
+		}
+		return sb.toString();
+	}
+
+	public static String format(Object[] args) {
+		return format(args, COMMA);
+	}
+
+	public static String format(Rectangle r) {
+		return format(new Object[] { r.x, r.y, r.width, r.height });
+	}
+
+	public static String format(Point p) {
+		return format(new Object[] { p.x, p.y });
+	}
+
+	public static String format(org.eclipse.draw2d.geometry.Rectangle r) {
+		return format(new Object[] { r.x, r.y, r.width, r.height });
+	}
+
+	public static String format(org.eclipse.draw2d.geometry.Point p) {
+		return format(new Object[] { p.x, p.y });
+	}
+
+	public static String format(org.eclipse.draw2d.geometry.Dimension d) {
+		return format(new Object[] { d.width, d.height });
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/XWTCodeGenUtil.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/XWTCodeGenUtil.java
new file mode 100755
index 0000000..0c61417
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/XWTCodeGenUtil.java
@@ -0,0 +1,123 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.util;
+
+import java.beans.BeanInfo;
+import java.beans.IntrospectionException;
+import java.beans.PropertyDescriptor;
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public class XWTCodeGenUtil {
+	public static String generate(Class<?> aBean) {
+		return generate(aBean, false);
+	}
+
+	public static String generate(Class<?> aBean, boolean root) {
+		if (aBean == null) {
+			return null;
+		}
+		try {
+			StringBuffer result = new StringBuffer();
+			if (root) {
+
+				result.append("<Composite xmlns=\"" + IConstants.XWT_NAMESPACE
+						+ "\"");
+
+				result.append("\t xmlns:x=\"" + IConstants.XWT_X_NAMESPACE
+						+ "\"");
+				String packageName = aBean.getPackage() == null ? null : aBean
+						.getPackage().getName();
+				if (packageName != null/* && packageName.length() > 0 */) {
+					result.append("\t xmlns:c=\""
+							+ IConstants.XAML_CLR_NAMESPACE_PROTO + packageName
+							+ "\"");
+				}
+				result.append("\t xmlns:j=\""
+						+ IConstants.XAML_CLR_NAMESPACE_PROTO + "java.lang\"");
+				result.append("\t x:Class=\"" + aBean.getName() + "\">");
+			} else {
+				result.append("<Composite>");
+			}
+			result.append("\t <Composite.layout>");
+			result.append("\t\t <GridLayout " + " numColumns=\"4\" />");
+			result.append("\t </Composite.layout>");
+			BeanInfo beanInfo = java.beans.Introspector.getBeanInfo(aBean);
+			PropertyDescriptor[] propertyDescriptors = beanInfo
+					.getPropertyDescriptors();
+			for (PropertyDescriptor pd : propertyDescriptors) {
+				String name = pd.getName();
+				if (name == null || "class".equals(name)) {
+					continue;
+				}
+				Class<?> propertyType = pd.getPropertyType();
+				if (propertyType.isPrimitive() || propertyType == String.class
+						|| propertyType == URL.class) {
+					result.append("\t <Label text=\"" + pd.getDisplayName()
+							+ "\"/>");
+					result.append("\t <Text x:Style=\"Border\" text=\"{Binding path="
+							+ pd.getName() + "}\">");
+					result.append("\t\t <Text.layoutData>");
+					result.append("\t\t\t <GridData grabExcessHorizontalSpace=\"true\"");
+					result.append("\t\t\t\t horizontalAlignment=\"GridData.FILL\" widthHint=\"100\"/>");
+					result.append("\t\t </Text.layoutData>");
+					result.append("\t </Text>");
+				} else if (propertyType.isEnum()) {
+					result.append("\t <Label text=\"" + pd.getDisplayName()
+							+ "\"/>");
+					result.append("\t <Combo text=\"{Binding path="
+							+ pd.getName() + "}\">");
+					result.append("\t\t <Combo.layoutData>");
+					result.append("\t\t\t <GridData grabExcessHorizontalSpace=\"true\"");
+					result.append("\t\t\t\t horizontalAlignment=\"GridData.FILL\" widthHint=\"100\"/>");
+					result.append("\t\t </Combo.layoutData>");
+
+					result.append("\t\t <Combo.items>");
+					for (Object object : propertyType.getEnumConstants()) {
+						result.append("\t\t\t <j:String>" + object.toString()
+								+ "</j:String>");
+					}
+					result.append("\t\t </Combo.items>");
+					result.append("\t </Combo>");
+
+				} else {
+					result.append("\t <Group text=\"" + pd.getDisplayName()
+							+ "\">");
+					result.append("\t\t <Group.layout>");
+					result.append("\t\t\t <FillLayout/>");
+					result.append("\t\t </Group.layout>");
+
+					String elementType = propertyType.getSimpleName();
+					result.append("\t\t <c:" + elementType
+							+ " DataContext=\"{Binding path=" + pd.getName()
+							+ "}\"/>");
+
+					result.append("\t\t <Group.layoutData>");
+					result.append("\t\t\t <GridData grabExcessHorizontalSpace=\"true\" horizontalSpan=\"4\"");
+					result.append("\t\t\t\t horizontalAlignment=\"GridData.FILL\" widthHint=\"200\"/>");
+					result.append("\t\t </Group.layoutData>");
+
+					result.append("\t </Group>");
+				}
+			}
+			result.append("</Composite>");
+			return result.toString();
+		} catch (IntrospectionException e) {
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/XWTProjectUtil.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/XWTProjectUtil.java
new file mode 100755
index 0000000..f1bc379
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/XWTProjectUtil.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.util;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.xwt.ui.utils.ProjectUtil;
+
+/**
+ * To minimize the dependency in e4 Visual Designer
+ * 
+ * TODO remove the direct dependency between e4/XWT
+ * 
+ * @author yyang
+ */
+public class XWTProjectUtil {
+	public static void updateXWTWorkbenchDependencies(IProject project) {
+		ProjectUtil.updateXWTWorkbenchDependencies(project);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/image/ImageCollectedRunnable.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/image/ImageCollectedRunnable.java
new file mode 100755
index 0000000..ed9f01d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/image/ImageCollectedRunnable.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.util.image;
+
+import org.eclipse.swt.graphics.Image;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public interface ImageCollectedRunnable {
+	public void imageCollected(Image image);
+
+	public void imageNotCollected();
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/image/ImageCollector.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/image/ImageCollector.java
new file mode 100755
index 0000000..6504525
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/image/ImageCollector.java
@@ -0,0 +1,129 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.util.image;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.ImageData;
+import org.eclipse.swt.graphics.ImageLoader;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.xwt.tools.ui.designer.core.util.swt.SWTUtil;
+import org.eclipse.xwt.tools.ui.imagecapture.swt.ImageCapture;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class ImageCollector {
+	static int i = 0;
+
+	public static Shell activeShell(Control control) {
+		Shell controlShell = control.getShell();
+		Display display = control.getDisplay();
+		Control focusControl = display.getFocusControl();
+		if (focusControl != null && !focusControl.isDisposed()) {
+			focusControl.getShell().open();
+			return focusControl.getShell();
+		}
+		Shell shell = display.getActiveShell();
+		if (shell != null) {
+			return shell;
+		}
+		Shell[] shells = display.getShells();
+		if (shells != null) {
+			for (Shell topShell : shells) {
+				if (topShell != controlShell) {
+					topShell.open();
+					return topShell;
+				}
+			}
+		}
+		return null;
+	}
+
+	public static void collectImage(Control control,
+			ImageCollectedRunnable imageRunnable) {
+		if (control == null || control.isDisposed() || imageRunnable == null) {
+			return;
+		}
+		Rectangle bounds = control.getBounds();
+		if (bounds.isEmpty()) {
+			imageRunnable.imageNotCollected();
+		} else {
+			Image image = null;
+			// If the toolBar is located on a CoolBar, the background was lost
+			// by using print() method.
+			if (control instanceof Shell || control instanceof ToolBar
+					|| SWTUtil.IsGTK) {
+				Shell shell = null;
+				if (control instanceof Shell) {
+					shell = (Shell) control;
+				} else {
+					shell = control.getShell();
+					shell.pack();
+					shell.setLocation(0, 0);
+					while (control.getDisplay().readAndDispatch())
+						;
+				}
+				bounds = control.getBounds();
+
+				shell.setAlpha(0);
+				if (SWTUtil.IsCocoa) {
+					if (!shell.isVisible()) {
+						shell.open();
+					}
+				} else {
+					shell.moveBelow(null);
+					if (!shell.isVisible()) {
+						shell.setVisible(true);
+					}
+				}
+				if (control instanceof Shell) {
+					image = ImageCapture.getInstance().capture(control,
+							bounds.width, bounds.height, true);
+				} else {
+					image = new Image(control.getDisplay(), bounds.width,
+							bounds.height);
+					GC gc = new GC(image);
+					control.print(gc);
+					gc.dispose(); 
+				}
+				shell.setVisible(false);
+			} else {
+				image = new Image(control.getDisplay(), bounds.width,
+						bounds.height);
+				GC gc = new GC(image);
+				control.print(gc);
+				gc.dispose();
+			}
+			if (image != null) {
+				// saveImage(image, "/home/yyang/image" + (i++) + ".jpg");
+				imageRunnable.imageCollected(image);
+			} else {
+				imageRunnable.imageNotCollected();
+			}
+		}
+	}
+
+	private static void saveImage(Image image, String path) {
+		ImageLoader imageLoader = new ImageLoader();
+		ImageData imageData = image.getImageData();
+		imageLoader.data = new ImageData[] { imageData };
+		imageLoader.save(path, SWT.IMAGE_JPEG);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/GridLayoutHelper.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/GridLayoutHelper.java
new file mode 100755
index 0000000..a5533f3
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/GridLayoutHelper.java
@@ -0,0 +1,753 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.util.swt;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Scrollable;
+import org.eclipse.swt.widgets.Shell;
+
+/**
+ * Since Eclipse 3.1 GridLayout took away the access to the column widths and
+ * row heights needed to show grid lines and feedback for the GridLayout policy
+ * helper, we need to calculate this ourselves using the same algorithms that
+ * GridLayout.layout uses. The main work is done in the computeValues method
+ * which does much of what the GridLayout.layout method except it doesn't layout
+ * the controls... just gets the column widths and row heights.
+ * 
+ * Note: In the future, if SWT GridLayout changes it's layout method or GridData
+ * changes it's protected fields, this class will have to be refactored to
+ * handle those changes.
+ * 
+ * This class accesses and sets the following package protected GridData fields:
+ * cacheWidth, cacheHeight
+ * 
+ * It also executes the following package protected method: computeSize(Control,
+ * int, int, boolean)
+ */
+
+public class GridLayoutHelper {
+
+	private Composite fComposite;
+	public int[] widths;// save current composit's all control's width and
+						// height
+	public int[] heights;
+	private GridLayout fGridLayout;
+	private Field cacheWidthField; // GridData package protected field
+	private Field cacheHeightField; // GridData package protected field
+	private Method computeSizeMethod; // GridData package protected method
+
+	public void setComposite(Composite aComposite) {
+		fComposite = aComposite;
+		if (aComposite.isDisposed()) {
+			return;
+		}
+		fGridLayout = (GridLayout) aComposite.getLayout();
+		if (fGridLayout != null) {
+			computeValues();
+		}
+	}
+
+	private void runComputeSize(GridData aGridData, Object[] args) {
+		if (computeSizeMethod == null) {
+			try {
+				computeSizeMethod = GridData.class
+						.getDeclaredMethod(
+								"computeSize", new Class[] { Control.class, int.class, int.class, boolean.class }); //$NON-NLS-1$
+				computeSizeMethod.setAccessible(true);
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+		try {
+			if (computeSizeMethod != null)
+				computeSizeMethod.invoke(aGridData, args);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	private int getCacheWidth(GridData aGridData) {
+		if (cacheWidthField == null) {
+			try {
+				cacheWidthField = GridData.class.getDeclaredField("cacheWidth"); //$NON-NLS-1$
+				cacheWidthField.setAccessible(true);
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+		try {
+			Integer cacheWidth = (Integer) cacheWidthField.get(aGridData);
+			return cacheWidth.intValue();
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return 0;
+	}
+
+	private int getCacheHeight(GridData aGridData) {
+		if (cacheHeightField == null) {
+			try {
+				cacheHeightField = GridData.class
+						.getDeclaredField("cacheHeight"); //$NON-NLS-1$
+				cacheHeightField.setAccessible(true);
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+		try {
+			Integer cacheWidth = (Integer) cacheHeightField.get(aGridData);
+			return cacheWidth.intValue();
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return 0;
+	}
+
+	private void putCacheWidth(GridData aGridData, int value) {
+		if (cacheWidthField == null) {
+			try {
+				cacheWidthField = GridData.class.getDeclaredField("cacheWidth"); //$NON-NLS-1$
+				cacheWidthField.setAccessible(true);
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+		try {
+			cacheWidthField.setInt(aGridData, value);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	private void putCacheHeight(GridData aGridData, int value) {
+		if (cacheHeightField == null) {
+			try {
+				cacheHeightField = GridData.class
+						.getDeclaredField("cacheHeight"); //$NON-NLS-1$
+				cacheHeightField.setAccessible(true);
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+		try {
+			cacheHeightField.setInt(aGridData, value);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	/*
+	 * This method is basically a copy of the code used in GridLayout.layout
+	 * (Composite composite, boolean move, int x, int y, int width, int height,
+	 * boolean flushCache)
+	 */
+	private void computeValues() {
+
+		Rectangle clientArea = fComposite.getClientArea();
+		int width = clientArea.width;
+		int height = clientArea.height;
+
+		if (fGridLayout.numColumns < 1) {
+			return;
+		}
+
+		int count = 0;
+		Control[] children = fComposite.getChildren();
+		for (int i = 0; i < children.length; i++) {
+			Control control = children[i];
+			GridData data = (GridData) control.getLayoutData();
+			if (data == null || !data.exclude) {
+				children[count++] = children[i];
+			}
+		}
+
+		for (int i = 0; i < count; i++) {
+			Control child = children[i];
+			GridData data = (GridData) child.getLayoutData();
+			if (data == null)
+				child.setLayoutData(data = new GridData());
+			runComputeSize(data, new Object[] { child,
+					Integer.valueOf(data.widthHint),
+					Integer.valueOf(data.heightHint), Boolean.FALSE });
+			if (data.grabExcessHorizontalSpace && data.minimumWidth > 0) {
+				if (getCacheWidth(data) < data.minimumWidth) {
+					int trim = 0;
+					// TEMPORARY CODE
+					if (child instanceof Scrollable) {
+						Rectangle rect = ((Scrollable) child).computeTrim(0, 0,
+								0, 0);
+						trim = rect.width;
+					} else {
+						trim = child.getBorderWidth() * 2;
+					}
+					putCacheWidth(data, SWT.DEFAULT);
+					putCacheHeight(data, SWT.DEFAULT);
+					runComputeSize(data, new Object[] { child,
+							Integer.valueOf(Math.max(0, data.minimumWidth
+									- trim)), Integer.valueOf(data.heightHint),
+							Boolean.FALSE });
+				}
+			}
+			if (data.grabExcessVerticalSpace && data.minimumHeight > 0) {
+				putCacheHeight(data, Math.max(getCacheHeight(data),
+						data.minimumHeight));
+			}
+		}
+
+		/* Build the grid */
+		int row = 0, column = 0, rowCount = 0, columnCount = fGridLayout.numColumns;
+		Control[][] grid = new Control[4][columnCount];
+		for (int i = 0; i < count; i++) {
+			Control child = children[i];
+			GridData data = (GridData) child.getLayoutData();
+			if (data == null)
+				data = new GridData();
+			int hSpan = Math.max(1, Math.min(data.horizontalSpan, columnCount));
+			int vSpan = Math.max(1, data.verticalSpan);
+			while (true) {
+				int lastRow = row + vSpan;
+				if (lastRow >= grid.length) {
+					Control[][] newGrid = new Control[lastRow + 4][columnCount];
+					System.arraycopy(grid, 0, newGrid, 0, grid.length);
+					grid = newGrid;
+				}
+				if (grid[row] == null) {
+					grid[row] = new Control[columnCount];
+				}
+				while (column < columnCount && grid[row][column] != null) {
+					column++;
+				}
+				int endCount = column + hSpan;
+				if (endCount <= columnCount) {
+					int index = column;
+					while (index < endCount && grid[row][index] == null) {
+						index++;
+					}
+					if (index == endCount)
+						break;
+					column = index;
+				}
+				if (column + hSpan >= columnCount) {
+					column = 0;
+					row++;
+				}
+			}
+			for (int j = 0; j < vSpan; j++) {
+				if (grid[row + j] == null) {
+					grid[row + j] = new Control[columnCount];
+				}
+				for (int k = 0; k < hSpan; k++) {
+					grid[row + j][column + k] = child;
+				}
+			}
+			rowCount = Math.max(rowCount, row + vSpan);
+			column += hSpan;
+		}
+
+		/* Column widths */
+		if (rowCount == 0) {
+			// There are no rows/columns if there are no rows.
+			widths = new int[0];
+			heights = new int[0];
+			return;
+		}
+		int availableWidth = width
+				- fGridLayout.horizontalSpacing
+				* (columnCount - 1)
+				- (fGridLayout.marginLeft + fGridLayout.marginWidth * 2 + fGridLayout.marginRight);
+		int expandCount = 0;
+		widths = new int[columnCount];
+		int[] minWidths = new int[columnCount];
+		boolean[] expandColumn = new boolean[columnCount];
+		for (int j = 0; j < columnCount; j++) {
+			for (int i = 0; i < rowCount; i++) {
+				GridData data = getData(grid, i, j, rowCount, columnCount, true);
+				if (data != null) {
+					int hSpan = Math.max(1, Math.min(data.horizontalSpan,
+							columnCount));
+					if (hSpan == 1) {
+						int w = getCacheWidth(data) + data.horizontalIndent;
+						widths[j] = Math.max(widths[j], w);
+						if (data.grabExcessHorizontalSpace) {
+							if (!expandColumn[j])
+								expandCount++;
+							expandColumn[j] = true;
+						}
+						if (!data.grabExcessHorizontalSpace
+								|| data.minimumWidth != 0) {
+							w = !data.grabExcessHorizontalSpace
+									|| data.minimumWidth == SWT.DEFAULT ? getCacheWidth(data)
+									: data.minimumWidth;
+							w += data.horizontalIndent;
+							minWidths[j] = Math.max(minWidths[j], w);
+						}
+					}
+				}
+			}
+			for (int i = 0; i < rowCount; i++) {
+				GridData data = getData(grid, i, j, rowCount, columnCount,
+						false);
+				if (data != null) {
+					int hSpan = Math.max(1, Math.min(data.horizontalSpan,
+							columnCount));
+					if (hSpan > 1) {
+						int spanWidth = 0, spanMinWidth = 0, spanExpandCount = 0;
+						for (int k = 0; k < hSpan; k++) {
+							spanWidth += widths[j - k];
+							spanMinWidth += minWidths[j - k];
+							if (expandColumn[j - k])
+								spanExpandCount++;
+						}
+						if (data.grabExcessHorizontalSpace
+								&& spanExpandCount == 0) {
+							expandCount++;
+							expandColumn[j] = true;
+						}
+						int w = getCacheWidth(data) + data.horizontalIndent
+								- spanWidth - (hSpan - 1)
+								* fGridLayout.horizontalSpacing;
+						if (w > 0) {
+							if (spanExpandCount == 0) {
+								widths[j] += w;
+							} else {
+								int delta = w / spanExpandCount;
+								int remainder = w % spanExpandCount, last = -1;
+								for (int k = 0; k < hSpan; k++) {
+									if (expandColumn[j - k]) {
+										widths[last = j - k] += delta;
+									}
+								}
+								if (last > -1)
+									widths[last] += remainder;
+							}
+						}
+						if (!data.grabExcessHorizontalSpace
+								|| data.minimumWidth != 0) {
+							w = !data.grabExcessHorizontalSpace
+									|| data.minimumWidth == SWT.DEFAULT ? getCacheWidth(data)
+									: data.minimumWidth;
+							w += data.horizontalIndent - spanMinWidth
+									- (hSpan - 1)
+									* fGridLayout.horizontalSpacing;
+							if (w > 0) {
+								if (spanExpandCount == 0) {
+									minWidths[j] += w;
+								} else {
+									int delta = w / spanExpandCount;
+									int remainder = w % spanExpandCount, last = -1;
+									for (int k = 0; k < hSpan; k++) {
+										if (expandColumn[j - k]) {
+											minWidths[last = j - k] += delta;
+										}
+									}
+									if (last > -1)
+										minWidths[last] += remainder;
+								}
+							}
+						}
+					}
+				}
+			}
+		}
+		if (fGridLayout.makeColumnsEqualWidth) {
+			int minColumnWidth = 0;
+			int columnWidth = 0;
+			for (int i = 0; i < columnCount; i++) {
+				minColumnWidth = Math.max(minColumnWidth, minWidths[i]);
+				columnWidth = Math.max(columnWidth, widths[i]);
+			}
+			columnWidth = width == SWT.DEFAULT || expandCount == 0 ? columnWidth
+					: Math.max(minColumnWidth, availableWidth / columnCount);
+			for (int i = 0; i < columnCount; i++) {
+				expandColumn[i] = expandCount > 0;
+				widths[i] = columnWidth;
+			}
+		} else {
+			if (width != SWT.DEFAULT && expandCount > 0) {
+				int totalWidth = 0;
+				for (int i = 0; i < columnCount; i++) {
+					totalWidth += widths[i];
+				}
+				int c = expandCount;
+				int delta = (availableWidth - totalWidth) / c;
+				int remainder = (availableWidth - totalWidth) % c;
+				int last = -1;
+				while (totalWidth != availableWidth) {
+					for (int j = 0; j < columnCount; j++) {
+						if (expandColumn[j]) {
+							if (widths[j] + delta > minWidths[j]) {
+								widths[last = j] = widths[j] + delta;
+							} else {
+								widths[j] = minWidths[j];
+								expandColumn[j] = false;
+								c--;
+							}
+						}
+					}
+					if (last > -1)
+						widths[last] += remainder;
+
+					for (int j = 0; j < columnCount; j++) {
+						for (int i = 0; i < rowCount; i++) {
+							GridData data = getData(grid, i, j, rowCount,
+									columnCount, false);
+							if (data != null) {
+								int hSpan = Math.max(1, Math.min(
+										data.horizontalSpan, columnCount));
+								if (hSpan > 1) {
+									if (!data.grabExcessHorizontalSpace
+											|| data.minimumWidth != 0) {
+										int spanWidth = 0, spanExpandCount = 0;
+										for (int k = 0; k < hSpan; k++) {
+											spanWidth += widths[j - k];
+											if (expandColumn[j - k])
+												spanExpandCount++;
+										}
+										int w = !data.grabExcessHorizontalSpace
+												|| data.minimumWidth == SWT.DEFAULT ? getCacheWidth(data)
+												: data.minimumWidth;
+										w += data.horizontalIndent - spanWidth
+												- (hSpan - 1)
+												* fGridLayout.horizontalSpacing;
+										if (w > 0) {
+											if (spanExpandCount == 0) {
+												widths[j] += w;
+											} else {
+												int delta2 = w
+														/ spanExpandCount;
+												int remainder2 = w
+														% spanExpandCount, last2 = -1;
+												for (int k = 0; k < hSpan; k++) {
+													if (expandColumn[j - k]) {
+														widths[last2 = j - k] += delta2;
+													}
+												}
+												if (last2 > -1)
+													widths[last2] += remainder2;
+											}
+										}
+									}
+								}
+							}
+						}
+					}
+					if (c == 0)
+						break;
+					totalWidth = 0;
+					for (int i = 0; i < columnCount; i++) {
+						totalWidth += widths[i];
+					}
+					delta = (availableWidth - totalWidth) / c;
+					remainder = (availableWidth - totalWidth) % c;
+					last = -1;
+				}
+			}
+		}
+		/* Wrapping */
+		GridData[] flush = null;
+		int flushLength = 0;
+		if (width != SWT.DEFAULT) {
+			for (int j = 0; j < columnCount; j++) {
+				for (int i = 0; i < rowCount; i++) {
+					GridData data = getData(grid, i, j, rowCount, columnCount,
+							false);
+					if (data != null) {
+						if (data.heightHint == SWT.DEFAULT) {
+							Control child = grid[i][j];
+							// TEMPORARY CODE
+							int hSpan = Math.max(1, Math.min(
+									data.horizontalSpan, columnCount));
+							int currentWidth = 0;
+							for (int k = 0; k < hSpan; k++) {
+								currentWidth += widths[j - k];
+							}
+							currentWidth += (hSpan - 1)
+									* fGridLayout.horizontalSpacing
+									- data.horizontalIndent;
+							if ((currentWidth != getCacheWidth(data) && data.horizontalAlignment == SWT.FILL)
+									|| (getCacheWidth(data) > currentWidth)) {
+								int trim = 0;
+								if (child instanceof Scrollable) {
+									Rectangle rect = ((Scrollable) child)
+											.computeTrim(0, 0, 0, 0);
+									trim = rect.width;
+								} else {
+									trim = child.getBorderWidth() * 2;
+								}
+								putCacheWidth(data, SWT.DEFAULT);
+								putCacheHeight(data, SWT.DEFAULT);
+								runComputeSize(data, new Object[] {
+										child,
+										Integer.valueOf(Math.max(0,
+												currentWidth - trim)),
+										Integer.valueOf(data.heightHint),
+										Boolean.FALSE });
+								if (data.grabExcessVerticalSpace
+										&& data.minimumHeight > 0) {
+									putCacheHeight(data, Math.max(
+											getCacheHeight(data),
+											data.minimumHeight));
+								}
+								if (flush == null)
+									flush = new GridData[count];
+								// now that we've changed the actual GridData
+								// for this control we need
+								// to store for later on when we'll reset it
+								// back.
+								flush[flushLength++] = data;
+							}
+						}
+					}
+				}
+			}
+		}
+
+		/* Row heights */
+		int availableHeight = height
+				- fGridLayout.verticalSpacing
+				* (rowCount - 1)
+				- (fGridLayout.marginTop + fGridLayout.marginHeight * 2 + fGridLayout.marginBottom);
+		expandCount = 0;
+		heights = new int[rowCount];
+		int[] minHeights = new int[rowCount];
+		boolean[] expandRow = new boolean[rowCount];
+		for (int i = 0; i < rowCount; i++) {
+			for (int j = 0; j < columnCount; j++) {
+				GridData data = getData(grid, i, j, rowCount, columnCount, true);
+				if (data != null) {
+					int vSpan = Math.max(1, Math.min(data.verticalSpan,
+							rowCount));
+					if (vSpan == 1) {
+						int h = getCacheHeight(data) + data.verticalIndent;
+						heights[i] = Math.max(heights[i], h);
+						if (data.grabExcessVerticalSpace) {
+							if (!expandRow[i])
+								expandCount++;
+							expandRow[i] = true;
+						}
+						if (!data.grabExcessVerticalSpace
+								|| data.minimumHeight != 0) {
+							h = !data.grabExcessVerticalSpace
+									|| data.minimumHeight == SWT.DEFAULT ? getCacheHeight(data)
+									: data.minimumHeight;
+							h += data.verticalIndent;
+							minHeights[i] = Math.max(minHeights[i], h);
+						}
+					}
+				}
+			}
+			for (int j = 0; j < columnCount; j++) {
+				GridData data = getData(grid, i, j, rowCount, columnCount,
+						false);
+				if (data != null) {
+					int vSpan = Math.max(1, Math.min(data.verticalSpan,
+							rowCount));
+					if (vSpan > 1) {
+						int spanHeight = 0, spanMinHeight = 0, spanExpandCount = 0;
+						for (int k = 0; k < vSpan; k++) {
+							spanHeight += heights[i - k];
+							spanMinHeight += minHeights[i - k];
+							if (expandRow[i - k])
+								spanExpandCount++;
+						}
+						if (data.grabExcessVerticalSpace
+								&& spanExpandCount == 0) {
+							expandCount++;
+							expandRow[i] = true;
+						}
+						int h = getCacheHeight(data) + data.verticalIndent
+								- spanHeight - (vSpan - 1)
+								* fGridLayout.verticalSpacing;
+						if (h > 0) {
+							if (spanExpandCount == 0) {
+								heights[i] += h;
+							} else {
+								int delta = h / spanExpandCount;
+								int remainder = h % spanExpandCount, last = -1;
+								for (int k = 0; k < vSpan; k++) {
+									if (expandRow[i - k]) {
+										heights[last = i - k] += delta;
+									}
+								}
+								if (last > -1)
+									heights[last] += remainder;
+							}
+						}
+						if (!data.grabExcessVerticalSpace
+								|| data.minimumHeight != 0) {
+							h = !data.grabExcessVerticalSpace
+									|| data.minimumHeight == SWT.DEFAULT ? getCacheHeight(data)
+									: data.minimumHeight;
+							h += data.verticalIndent - spanMinHeight
+									- (vSpan - 1) * fGridLayout.verticalSpacing;
+							if (h > 0) {
+								if (spanExpandCount == 0) {
+									minHeights[i] += h;
+								} else {
+									int delta = h / spanExpandCount;
+									int remainder = h % spanExpandCount, last = -1;
+									for (int k = 0; k < vSpan; k++) {
+										if (expandRow[i - k]) {
+											minHeights[last = i - k] += delta;
+										}
+									}
+									if (last > -1)
+										minHeights[last] += remainder;
+								}
+							}
+						}
+					}
+				}
+			}
+		}
+		if (height != SWT.DEFAULT && expandCount > 0) {
+			int totalHeight = 0;
+			for (int i = 0; i < rowCount; i++) {
+				totalHeight += heights[i];
+			}
+			int c = expandCount;
+			int delta = (availableHeight - totalHeight) / c;
+			int remainder = (availableHeight - totalHeight) % c;
+			int last = -1;
+			while (totalHeight != availableHeight) {
+				for (int i = 0; i < rowCount; i++) {
+					if (expandRow[i]) {
+						if (heights[i] + delta > minHeights[i]) {
+							heights[last = i] = heights[i] + delta;
+						} else {
+							heights[i] = minHeights[i];
+							expandRow[i] = false;
+							c--;
+						}
+					}
+				}
+				if (last > -1)
+					heights[last] += remainder;
+
+				for (int i = 0; i < rowCount; i++) {
+					for (int j = 0; j < columnCount; j++) {
+						GridData data = getData(grid, i, j, rowCount,
+								columnCount, false);
+						if (data != null) {
+							int vSpan = Math.max(1, Math.min(data.verticalSpan,
+									rowCount));
+							if (vSpan > 1) {
+								if (!data.grabExcessVerticalSpace
+										|| data.minimumHeight != 0) {
+									int spanHeight = 0, spanExpandCount = 0;
+									for (int k = 0; k < vSpan; k++) {
+										spanHeight += heights[i - k];
+										if (expandRow[i - k])
+											spanExpandCount++;
+									}
+									int h = !data.grabExcessVerticalSpace
+											|| data.minimumHeight == SWT.DEFAULT ? getCacheHeight(data)
+											: data.minimumHeight;
+									h += data.verticalIndent - spanHeight
+											- (vSpan - 1)
+											* fGridLayout.verticalSpacing;
+									if (h > 0) {
+										if (spanExpandCount == 0) {
+											heights[i] += h;
+										} else {
+											int delta2 = h / spanExpandCount;
+											int remainder2 = h
+													% spanExpandCount, last2 = -1;
+											for (int k = 0; k < vSpan; k++) {
+												if (expandRow[i - k]) {
+													heights[last2 = i - k] += delta2;
+												}
+											}
+											if (last2 > -1)
+												heights[last2] += remainder2;
+										}
+									}
+								}
+							}
+						}
+					}
+				}
+				if (c == 0)
+					break;
+				totalHeight = 0;
+				for (int i = 0; i < rowCount; i++) {
+					totalHeight += heights[i];
+				}
+				delta = (availableHeight - totalHeight) / c;
+				remainder = (availableHeight - totalHeight) % c;
+				last = -1;
+			}
+		}
+		// clean up cache - resets the GridData for those that were changed
+		// during the wrapping process
+		for (int i = 0; i < flushLength; i++) {
+			putCacheHeight(flush[i], -1);
+			putCacheWidth(flush[i], -1);
+		}
+
+	}
+
+	protected GridData getData(Control[][] grid, int row, int column,
+			int rowCount, int columnCount, boolean first) {
+		Control control = grid[row][column];
+		if (control != null) {
+			GridData data = (GridData) control.getLayoutData();
+			if (data == null)
+				data = new GridData();
+			int hSpan = Math.max(1, Math.min(data.horizontalSpan, columnCount));
+			int vSpan = Math.max(1, data.verticalSpan);
+			int i = first ? row + vSpan - 1 : row - vSpan + 1;
+			int j = first ? column + hSpan - 1 : column - hSpan + 1;
+			if (0 <= i && i < rowCount) {
+				if (0 <= j && j < columnCount) {
+					if (control == grid[i][j])
+						return data;
+				}
+			}
+		}
+		return null;
+	}
+
+	public static void main(String[] args) {
+
+		Display d = new Display();
+		Shell s = new Shell();
+		s.setLayout(new GridLayout());
+
+		new Label(s, SWT.NONE).setText("Label"); //$NON-NLS-1$
+		new Button(s, SWT.NONE).setText("Button"); //$NON-NLS-1$
+
+		s.open();
+
+		GridLayoutHelper helper = new GridLayoutHelper();
+		helper.setComposite(s);
+
+		while (!s.isDisposed()) {
+			if (!d.readAndDispatch())
+				d.sleep();
+		}
+		d.dispose();
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/GridLayoutHelper_30.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/GridLayoutHelper_30.java
new file mode 100755
index 0000000..b592c0e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/GridLayoutHelper_30.java
@@ -0,0 +1,135 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.util.swt;
+
+import java.lang.reflect.Field;
+
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * Get the widths and heights of the columns and rows so that the IDE can show these in its GEF feedback This class works on Eclipse 3.0 because it has access to fields in the GridLayout In 3.1 these were removed so this won't work, however the IDE GridLayoutPolicyHelper instead uses the newer peer named GridLayoutHelper
+ */
+
+public class GridLayoutHelper_30 {
+
+	private Composite fComposite;
+	public int[] widths;
+	public int[] heights;
+	private int[] expandableColumns;
+	private int[] expandableRows;
+	private Field pixelColumnWidthsFieldProxy;
+	private Field pixelRowHeightsFieldProxy;
+	private Field expandableColumnsFieldProxy;
+	private Field expandableRowsFieldProxy;
+	private GridLayout gridLayout;
+
+	public void setComposite(Composite aComposite) {
+		fComposite = aComposite;
+		aComposite.layout();
+		computeValues();
+	}
+
+	private void computeValues() {
+		gridLayout = (GridLayout) fComposite.getLayout();
+		fComposite.layout();
+		if (fComposite.getChildren().length == 0) {
+			// If there aren't any children, there is no grid currently.
+			widths = heights = new int[0];
+			return;
+		}
+		try {
+			if (pixelColumnWidthsFieldProxy == null) {
+				pixelColumnWidthsFieldProxy = gridLayout.getClass().getDeclaredField("pixelColumnWidths"); //$NON-NLS-1$
+				pixelColumnWidthsFieldProxy.setAccessible(true);
+			}
+			if (pixelRowHeightsFieldProxy == null) {
+				pixelRowHeightsFieldProxy = gridLayout.getClass().getDeclaredField("pixelRowHeights"); //$NON-NLS-1$
+				pixelRowHeightsFieldProxy.setAccessible(true);
+			}
+			if (expandableColumnsFieldProxy == null) {
+				expandableColumnsFieldProxy = gridLayout.getClass().getDeclaredField("expandableColumns"); //$NON-NLS-1$
+				expandableColumnsFieldProxy.setAccessible(true);
+			}
+			if (expandableRowsFieldProxy == null) {
+				expandableRowsFieldProxy = gridLayout.getClass().getDeclaredField("expandableRows"); //$NON-NLS-1$
+				expandableRowsFieldProxy.setAccessible(true);
+			}
+			widths = (int[]) pixelColumnWidthsFieldProxy.get(gridLayout);
+			heights = (int[]) pixelRowHeightsFieldProxy.get(gridLayout);
+			expandableColumns = (int[]) expandableColumnsFieldProxy.get(gridLayout);
+			expandableRows = (int[]) expandableRowsFieldProxy.get(gridLayout);
+			if (expandableColumns.length > 0 || expandableRows.length > 0)
+				adjustGridDimensions(gridLayout);
+		} catch (SecurityException e) {
+		} catch (NoSuchFieldException e) {
+		} catch (IllegalArgumentException e) {
+		} catch (IllegalAccessException e) {
+		}
+
+	}
+
+	private void adjustGridDimensions(GridLayout gridLayout) {
+
+		// The expandableColumns holds an array of which controls want to grab excess width
+		// The expandableRows holds an array of which controls want to grab excess height
+		// We need to adjust the widths and heights arrays for this
+		// 1 - Get the available space that the controls who want to grow into available space can occupy
+		// 2 - Divide this space among the controls that want it
+		// 3 - adjust the widths and heights array
+
+		// 1) Work out the available total width and height
+		int availableHorizontal = fComposite.getClientArea().width;
+		int availableVerical = fComposite.getClientArea().height;
+
+		// 2) Divide the height and width by the columns that want it
+		// 3) increment each control that is expandable
+		if (expandableColumns.length > 0) {
+			// Reduce the width by the margins
+			availableHorizontal = availableHorizontal - (gridLayout.marginWidth * 2);
+			// Reduce the width by the spacing
+			if (widths.length >= 2) {
+				availableHorizontal = availableHorizontal - (widths.length - 1) * gridLayout.horizontalSpacing;
+			}
+			// Subtract the currently used space
+			for (int i = 0; i < widths.length; i++) {
+				availableHorizontal = availableHorizontal - widths[i];
+			}
+			// We have the remaining space to use. Divide by the number of columns that want to be expanded
+			int widthAdjustment = availableHorizontal / expandableColumns.length;
+			// Now add this to each column that wants to be expanded
+			for (int i = 0; i < expandableColumns.length; i++) {
+				widths[expandableColumns[i]] = widthAdjustment + widths[expandableColumns[i]];
+			}
+		}
+
+		if (expandableRows.length > 0) {
+			// Reduce the width by the margins
+			availableVerical = availableVerical - (gridLayout.marginHeight * 2);
+			// Reduce the height by the spacing
+			if (heights.length >= 2) {
+				availableVerical = availableVerical - (heights.length - 1) * gridLayout.verticalSpacing;
+			}
+			// Subtract the currently used space
+			for (int i = 0; i < heights.length; i++) {
+				availableVerical = availableVerical - heights[i];
+			}
+			// We have the remaining space to use. Divide by the number of rows that want to be expanded
+			int heightAdjustment = availableVerical / expandableRows.length;
+			// Now add this to each row that wants to be expanded
+			for (int i = 0; i < expandableRows.length; i++) {
+				heights[expandableRows[i]] = heightAdjustment + heights[expandableRows[i]];
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/SWTTools.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/SWTTools.java
new file mode 100755
index 0000000..8faa017
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/SWTTools.java
@@ -0,0 +1,203 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.util.swt;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Decorations;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Item;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Scrollable;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.tools.ui.designer.core.DesignerPlugin;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class SWTTools {
+
+	public static Shell activeShell() {
+		Display display = Display.getCurrent();
+		if (display == null) {
+			display = Display.getDefault();
+		}
+		Control focusControl = display.getFocusControl();
+		if (focusControl != null && !focusControl.isDisposed()) {
+			focusControl.getShell().open();
+			return focusControl.getShell();
+		}
+		Shell shell = display.getActiveShell();
+		if (shell != null) {
+			return shell;
+		}
+		Shell[] shells = display.getShells();
+		if (shells != null) {
+			for (Shell topShell : shells) {
+				return topShell;
+			}
+		}
+		return null;
+	}
+
+	public static Point getLocation(Widget widget) {
+		if (widget == null || widget.isDisposed()) {
+			return new Point(-1, -1);
+		}
+		if (widget instanceof Control) {
+			Control control = (Control) widget;
+			Point location = control.getLocation();
+			if (control instanceof Shell) {
+				location.x = 20;
+				location.y = 20;
+				return location;
+			}
+			Composite parent = control.getParent();
+			if (parent instanceof Shell) {
+				Point l = getOffset((Shell) parent);
+				location.x = location.x + l.x;
+				location.y = location.y + l.y;
+			} else if (checkStyle(parent, SWT.BORDER)) {
+				int borderWidth = parent.getBorderWidth();
+				location.x += borderWidth;
+				location.y += borderWidth;
+			}
+			return location;
+		}
+		return WidgetLocator.getLocation(widget);
+	}
+
+	public static Point getOffset(Scrollable scroll) {
+		if (scroll == null || scroll.isDisposed()) {
+			return new Point(0, 0);
+		}
+		Rectangle calced = scroll.computeTrim(0, 0, 0, 0);
+		Point point = new Point(-calced.x, -calced.y);
+		return point;
+	}
+
+	public static Point getSize(Control control) {
+		if (control == null || control.isDisposed()) {
+			return new Point(-1, -1);
+		}
+		Point size = control.getSize();
+		return size;
+	}
+
+	public static Rectangle getBounds(Widget widget) {
+		if (widget instanceof Control) {
+			Control control = (Control) widget;
+			Point l = getLocation(control);
+			Point s = getSize(control);
+			return new Rectangle(l.x, l.y, s.x, s.y);
+		}
+		return WidgetLocator.getBounds(widget, false);
+	}
+
+	public static Widget[] getChildren(Widget widget) {
+		if (widget == null || widget.isDisposed()) {
+			return new Widget[0];
+		}
+		List<Widget> children = new ArrayList<Widget>();
+		if (widget instanceof Composite) {
+			for (Control control : ((Composite) widget).getChildren()) {
+				children.add(control);
+			}
+		}
+		if (widget instanceof Decorations) {
+			Menu menuBar = ((Decorations) widget).getMenuBar();
+			if (menuBar != null) {
+				children.add(menuBar);
+			}
+		}
+		// For all items.
+		{
+			try {
+				Method getItemsMethod = widget.getClass().getDeclaredMethod(
+						"getItems");
+				Object[] items = (Object[]) getItemsMethod.invoke(widget,
+						new Object[0]);
+				for (Object item : items) {
+					if (!(item instanceof Widget)) {
+						continue;// items of Combo
+					}
+					children.add((Widget) item);
+				}
+			} catch (NoSuchMethodException e) {
+			} catch (Exception e) {
+				DesignerPlugin.logInfo(e);
+			}
+		}
+		// For controls of items.
+		if (widget instanceof Item) {
+			try {
+				Method getControlMethod = widget.getClass().getDeclaredMethod(
+						"getControl");
+				Object control = getControlMethod.invoke(widget, new Object[0]);
+				if (control != null) {
+					children.add((Widget) control);
+				}
+			} catch (NoSuchMethodException e) {
+			} catch (Exception e) {
+				DesignerPlugin.logInfo(e);
+			}
+		}
+		// For Context Menu and sub menu of MenuItem
+		{
+			try {
+				Method getMenuMethod = widget.getClass().getDeclaredMethod(
+						"getMenu");
+				Object menu = getMenuMethod.invoke(widget, new Object[0]);
+				if (menu != null) {
+					children.add((Widget) menu);
+				}
+			} catch (NoSuchMethodException e) {
+			} catch (Exception e) {
+				DesignerPlugin.logInfo(e);
+			}
+		}
+		{// getColumns
+			try {
+				Method getColumnsMethod = widget.getClass().getDeclaredMethod(
+						"getColumns", new Class<?>[0]);
+				Object[] columns = (Object[]) getColumnsMethod.invoke(widget,
+						new Object[0]);
+				for (Object col : columns) {
+					children.add((Widget) col);
+				}
+			} catch (NoSuchMethodException e) {
+			} catch (Exception e) {
+				DesignerPlugin.logInfo(e);
+			}
+		}
+		return children.toArray(new Widget[children.size()]);
+	}
+
+	public static boolean checkStyle(Widget widget, int style) {
+		return widget != null && !widget.isDisposed()
+				&& checkStyle(widget.getStyle(), style);
+	}
+
+	public static boolean checkStyle(int styles, int style) {
+		return (styles & style) != 0;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/SWTUtil.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/SWTUtil.java
new file mode 100755
index 0000000..a637a93
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/SWTUtil.java
@@ -0,0 +1,349 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.util.swt;
+
+import java.io.IOException;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.CoolBar;
+import org.eclipse.swt.widgets.CoolItem;
+import org.eclipse.swt.widgets.Decorations;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.List;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.swt.widgets.ProgressBar;
+import org.eclipse.swt.widgets.Sash;
+import org.eclipse.swt.widgets.Scale;
+import org.eclipse.swt.widgets.ScrollBar;
+import org.eclipse.swt.widgets.Scrollable;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Slider;
+import org.eclipse.swt.widgets.Spinner;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.swt.widgets.ToolItem;
+import org.eclipse.swt.widgets.Tracker;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.Widget;
+
+public class SWTUtil {
+
+	/**
+	 * Value is <code>true</code> if we're running on the <a href="http://en.wikipedia.org/wiki/Windows">Microsoft Windows</a> windowing system, <code>false</code> otherwise.
+	 */
+	public static final boolean IsWindows = "win32".equals(SWT.getPlatform());
+
+	/**
+	 * Value is <code>true</code> if we're running on the <a href="http://en.wikipedia.org/wiki/Motif_(widget_toolkit)">Motif</a> windowing system, <code>false</code> otherwise.
+	 */
+	public static final boolean IsMotif = "motif".equals(SWT.getPlatform());
+
+	/**
+	 * Value is <code>true</code> if we're running on the <a href="http://en.wikipedia.org/wiki/GTK">GTK</a> windowing system, <code>false</code> otherwise.
+	 */
+	public static final boolean IsGTK = "gtk".equals(SWT.getPlatform());
+
+	/**
+	 * Value is <code>true</code> if we're running on the Photon (<a href="http://en.wikipedia.org/wiki/QNX">QNX</a>) windowing system, <code>false</code> otherwise.
+	 */
+	public static final boolean IsPhoton = "photon".equals(SWT.getPlatform());
+
+	/**
+	 * Value is <code>true</code> if we're running on the <a href="http://en.wikipedia.org/wiki/Carbon_(API)">Carbon</a> (<a href="http://en.wikipedia.org/wiki/Mac_OS_X">Mac OS X</a>) windowing system, <code>false</code> otherwise.
+	 */
+	public static final boolean IsCarbon = "carbon".equals(SWT.getPlatform());
+
+	/**
+	 * Value is <code>true</code> if we're running on the <a href="http://en.wikipedia.org/wiki/Carbon_(API)">Carbon</a> (<a href="http://en.wikipedia.org/wiki/Mac_OS_X">Mac OS X</a>) windowing system, <code>false</code> otherwise.
+	 */
+	public static final boolean IsCocoa = "cocoa".equals(SWT.getPlatform());
+
+	public static void printStyle(int style, Class<? extends Widget> clazz, Appendable appendable) {
+		try {
+			appendable.append("[");
+			boolean first = true;
+			for (int styleBit = 0, styleMask = 1; styleBit < 32; styleBit++, styleMask <<= 1) {
+				if ((style & styleMask) != 0) {
+					if (!first)
+						appendable.append(',');
+					else
+						first = false;
+					appendable.append(toStringStyleBit(styleMask, clazz));
+				}
+			}
+			appendable.append(']');
+		} catch (IOException e) {
+			throw new RuntimeException(e);
+		}
+	}
+
+	public static String toStringStyle(int style, Class<? extends Widget> clazz) {
+		StringBuilder builder = new StringBuilder();
+		printStyle(style, clazz, builder);
+		return builder.toString();
+	}
+
+	public static String toStringStyleBit(int style, Class<? extends Widget> clazz) {
+		switch (style) {
+		case SWT.BAR:
+			if (Menu.class.isAssignableFrom(clazz))
+				return "bar";
+			// case SWT.SEPARATOR:
+			if (Label.class.isAssignableFrom(clazz) || MenuItem.class.isAssignableFrom(clazz) || ToolItem.class.isAssignableFrom(clazz))
+				return "separator";
+			// case SWT.TOGGLE:
+			if (Button.class.isAssignableFrom(clazz))
+				return "toggle";
+			// case SWT.MULTI:
+			if (Text.class.isAssignableFrom(clazz) || List.class.isAssignableFrom(clazz))
+				return "multi";
+			// case SWT.INDETERMINATE:
+			if (ProgressBar.class.isAssignableFrom(clazz))
+				return "indeterminate";
+			break;
+
+		case SWT.DROP_DOWN:
+			if (Menu.class.isAssignableFrom(clazz) || ToolItem.class.isAssignableFrom(clazz) || CoolItem.class.isAssignableFrom(clazz) || Combo.class.isAssignableFrom(clazz))
+				return "drop-down";
+			// case SWT.ARROW:
+			if (Button.class.isAssignableFrom(clazz))
+				return "arrow";
+			// case SWT.SINGLE:
+			if (Text.class.isAssignableFrom(clazz) || List.class.isAssignableFrom(clazz) || Table.class.isAssignableFrom(clazz) || Tree.class.isAssignableFrom(clazz))
+				return "single";
+			// case SWT.SHADOW_IN:
+			if (Label.class.isAssignableFrom(clazz) || Group.class.isAssignableFrom(clazz))
+				return "shadow-in";
+			// case SWT.TOOL:
+			if (Decorations.class.isAssignableFrom(clazz))
+				return "tool";
+			break;
+
+		case SWT.POP_UP:
+			if (Menu.class.isAssignableFrom(clazz))
+				return "pop-up";
+			// case SWT.PUSH:
+			if (Button.class.isAssignableFrom(clazz) || MenuItem.class.isAssignableFrom(clazz) || ToolItem.class.isAssignableFrom(clazz))
+				return "push";
+			// case SWT.READ_ONLY:
+			if (Combo.class.isAssignableFrom(clazz) || Text.class.isAssignableFrom(clazz))
+				return "read-only";
+			// case SWT.SHADOW_OUT:
+			if (Label.class.isAssignableFrom(clazz) || Group.class.isAssignableFrom(clazz) || ToolBar.class.isAssignableFrom(clazz))
+				return "shadow-out";
+			// case SWT.NO_TRIM:
+			if (Decorations.class.isAssignableFrom(clazz))
+				return "no-trip";
+			break;
+
+		case SWT.RADIO:
+			if (Button.class.isAssignableFrom(clazz) || MenuItem.class.isAssignableFrom(clazz) || ToolItem.class.isAssignableFrom(clazz))
+				return "radio";
+			// case SWT.SHADOW_ETCHED_IN:
+			if (Group.class.isAssignableFrom(clazz))
+				return "shadow-etched-in";
+			// case SWT.RESIZE:
+			if (Decorations.class.isAssignableFrom(clazz) || Tracker.class.isAssignableFrom(clazz))
+				return "resize";
+			break;
+
+		case SWT.CHECK:
+			if (Button.class.isAssignableFrom(clazz) || MenuItem.class.isAssignableFrom(clazz) || ToolItem.class.isAssignableFrom(clazz) || Table.class.isAssignableFrom(clazz) || Tree.class.isAssignableFrom(clazz))
+				return "check";
+			// case SWT.SHADOW_NONE:
+			if (Label.class.isAssignableFrom(clazz) || Group.class.isAssignableFrom(clazz))
+				return "shadow-none";
+			// case SWT.TITLE:
+			if (Decorations.class.isAssignableFrom(clazz))
+				return "title";
+			break;
+
+		case SWT.CASCADE:
+			if (MenuItem.class.isAssignableFrom(clazz))
+				return "cascade";
+			// case SWT.WRAP:
+			if (Label.class.isAssignableFrom(clazz) || Text.class.isAssignableFrom(clazz) || ToolBar.class.isAssignableFrom(clazz) || Spinner.class.isAssignableFrom(clazz))
+				return "wrap";
+			// case SWT.SIMPLE:
+			if (Combo.class.isAssignableFrom(clazz))
+				return "simple";
+			// case SWT.SHADOW_ETCHED_OUT:
+			if (Group.class.isAssignableFrom(clazz))
+				return "shadow-etched-out";
+			// case SWT.CLOSE:
+			if (Decorations.class.isAssignableFrom(clazz))
+				return "close";
+			break;
+
+		case SWT.MIN:
+			if (Decorations.class.isAssignableFrom(clazz))
+				return "min";
+			// case SWT.UP:
+			if (Button.class.isAssignableFrom(clazz) || Tracker.class.isAssignableFrom(clazz))
+				return "up";
+			break;
+
+		case SWT.H_SCROLL:
+			if (Scrollable.class.isAssignableFrom(clazz))
+				return "h-scroll";
+			// case SWT.HORIZONTAL:
+			if (Label.class.isAssignableFrom(clazz) || ProgressBar.class.isAssignableFrom(clazz) || Sash.class.isAssignableFrom(clazz) || Scale.class.isAssignableFrom(clazz) || ScrollBar.class.isAssignableFrom(clazz) || Slider.class.isAssignableFrom(clazz) || ToolBar.class.isAssignableFrom(clazz))
+				return "horizontal";
+			break;
+
+		case SWT.V_SCROLL:
+			if (Scrollable.class.isAssignableFrom(clazz))
+				return "v-scroll";
+			// case SWT.VERTICAL:
+			if (Label.class.isAssignableFrom(clazz) || ProgressBar.class.isAssignableFrom(clazz) || Sash.class.isAssignableFrom(clazz) || Scale.class.isAssignableFrom(clazz) || ScrollBar.class.isAssignableFrom(clazz) || Slider.class.isAssignableFrom(clazz) || ToolBar.class.isAssignableFrom(clazz) || CoolBar.class.isAssignableFrom(clazz))
+				return "vertical";
+			break;
+
+		case SWT.MAX:
+			if (Decorations.class.isAssignableFrom(clazz))
+				return "max";
+			// case SWT.DOWN:
+			if (Button.class.isAssignableFrom(clazz) || Tracker.class.isAssignableFrom(clazz))
+				return "down";
+			break;
+
+		case SWT.BORDER:
+			if (Control.class.isAssignableFrom(clazz))
+				return "border";
+			break;
+
+		case SWT.CLIP_CHILDREN:
+			if (Control.class.isAssignableFrom(clazz))
+				return "clip-children";
+			break;
+
+		case SWT.CLIP_SIBLINGS:
+			if (Control.class.isAssignableFrom(clazz))
+				return "clip-siblings";
+			break;
+
+		case SWT.ON_TOP:
+			if (Shell.class.isAssignableFrom(clazz))
+				return "on-top";
+			// case SWT.LEAD:
+			if (Button.class.isAssignableFrom(clazz) || Label.class.isAssignableFrom(clazz) || TableColumn.class.isAssignableFrom(clazz) || Tracker.class.isAssignableFrom(clazz))
+				return "lead";
+			break;
+
+		case SWT.PRIMARY_MODAL:
+			if (Shell.class.isAssignableFrom(clazz))
+				return "primary-modal";
+			// case SWT.HIDE_SELECTION:
+			if (Table.class.isAssignableFrom(clazz))
+				return "hide-selection";
+			break;
+
+		case SWT.APPLICATION_MODAL:
+			if (Shell.class.isAssignableFrom(clazz))
+				return "application-modal";
+			// case SWT.FULL_SELECTION:
+			if (StyledText.class.isAssignableFrom(clazz) || Table.class.isAssignableFrom(clazz) || Tree.class.isAssignableFrom(clazz))
+				return "full-selection";
+			// case SWT.SMOOTH:
+			if (ProgressBar.class.isAssignableFrom(clazz) || Sash.class.isAssignableFrom(clazz))
+				return "smooth";
+			break;
+
+		case SWT.SYSTEM_MODAL:
+			if (Shell.class.isAssignableFrom(clazz))
+				return "system-modal";
+			// case SWT.TRAIL:
+			if (Button.class.isAssignableFrom(clazz) || Label.class.isAssignableFrom(clazz) || TableColumn.class.isAssignableFrom(clazz) || Tracker.class.isAssignableFrom(clazz))
+				return "trail";
+			break;
+
+		case SWT.NO_BACKGROUND:
+			if (Composite.class.isAssignableFrom(clazz))
+				return "no-background";
+			break;
+
+		case SWT.NO_FOCUS:
+			if (Composite.class.isAssignableFrom(clazz))
+				return "no-focus";
+			break;
+
+		case SWT.NO_REDRAW_RESIZE:
+			if (Composite.class.isAssignableFrom(clazz))
+				return "no-redraw-resize";
+			break;
+
+		case SWT.NO_MERGE_PAINTS:
+			if (Composite.class.isAssignableFrom(clazz))
+				return "no-merge-paints";
+			break;
+
+		case SWT.PASSWORD:
+			if (Text.class.isAssignableFrom(clazz))
+				return "password";
+			// case SWT.NO_RADIO_GROUP:
+			if (Composite.class.isAssignableFrom(clazz))
+				return "no-radio-group";
+			break;
+
+		case SWT.FLAT:
+			if (Button.class.isAssignableFrom(clazz) || ToolBar.class.isAssignableFrom(clazz))
+				return "flat";
+			break;
+
+		case SWT.EMBEDDED:
+			if (Composite.class.isAssignableFrom(clazz))
+				return "embedded";
+			// case SWT.CENTER:
+			if (Button.class.isAssignableFrom(clazz) || Label.class.isAssignableFrom(clazz) || TableColumn.class.isAssignableFrom(clazz))
+				return "center";
+			break;
+
+		case SWT.LEFT_TO_RIGHT:
+			// Omit "left-to-right" because it's ubiquitous.
+			// if (Control.class.isAssignableFrom(clazz) || Menu.class.isAssignableFrom(clazz))
+			// return "left-to-right";
+			break;
+
+		case SWT.RIGHT_TO_LEFT:
+			if (Control.class.isAssignableFrom(clazz) || Menu.class.isAssignableFrom(clazz))
+				return "right-to-left";
+			break;
+
+		case SWT.MIRRORED:
+			if (Control.class.isAssignableFrom(clazz) || Menu.class.isAssignableFrom(clazz))
+				return "mirrored";
+			break;
+
+		case SWT.VIRTUAL:
+			if (Table.class.isAssignableFrom(clazz) || Tree.class.isAssignableFrom(clazz))
+				return "virtual";
+			break;
+
+		case SWT.DOUBLE_BUFFERED:
+			if (Control.class.isAssignableFrom(clazz))
+				return "double-buffered";
+			break;
+		}
+		return String.format("%08x", style);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/SWTWorkarounds.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/SWTWorkarounds.java
new file mode 100755
index 0000000..1790389
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/SWTWorkarounds.java
@@ -0,0 +1,515 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.util.swt;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CTabItem;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.CoolItem;
+import org.eclipse.swt.widgets.Decorations;
+import org.eclipse.swt.widgets.ExpandBar;
+import org.eclipse.swt.widgets.ExpandItem;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.swt.widgets.ScrollBar;
+import org.eclipse.swt.widgets.Scrollable;
+import org.eclipse.swt.widgets.TabFolder;
+import org.eclipse.swt.widgets.TabItem;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.ToolItem;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeColumn;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.xwt.tools.ui.designer.core.DesignerPlugin;
+
+/**
+ * This class adapts SWT to Abbot, e.g. where SWT methods are not public.
+ * 
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class SWTWorkarounds {
+	static final Rectangle EMPTY = new Rectangle(0, 0, 0, 0);
+
+	/*************************** COMMON *****************************/
+	public static Rectangle getBounds(Object object) {		
+		if (SWTUtil.IsWindows) {
+			if (object instanceof TabItem) {
+				return win32_getBounds((TabItem)object);
+			}
+			if (object instanceof TableColumn) {
+				return win32_getBounds((TableColumn)object);
+			}
+			if (object instanceof TreeColumn) {
+				return win32_getBounds((TreeColumn)object);
+			}
+		}
+		if (SWTUtil.IsGTK) {
+			if (object instanceof TabItem) {
+				return gtk_getBounds((TabItem)object);
+			}
+			if (object instanceof TableColumn) {
+				return gtk_getBounds((TableColumn)object);
+			}
+			if (object instanceof TreeColumn) {
+				return gtk_getBounds((TreeColumn)object);
+			}
+		}
+		if (SWTUtil.IsMotif) {
+			if (object instanceof TabItem) {
+				return motif_getBounds((TabItem)object);
+			}
+			if (object instanceof TableColumn) {
+				return motif_getBounds((TableColumn)object);
+			}
+			if (object instanceof TreeColumn) {
+				return motif_getBounds((TreeColumn)object);
+			}
+		}
+		if (SWTUtil.IsCarbon) {
+			if (object instanceof TabItem) {
+				return carbon_getBounds((TabItem)object);
+			}
+			if (object instanceof TableColumn) {
+				return carbon_getBounds((TableColumn)object);
+			}
+			if (object instanceof TreeColumn) {
+				return carbon_getBounds((TreeColumn)object);
+			}
+			if (object instanceof Menu || object instanceof MenuItem) {
+				return EMPTY;
+			}
+		}
+		if (SWTUtil.IsCocoa) {
+			if (object instanceof TabItem) {
+				return cocoa_getBounds((TabItem)object);
+			}
+			if (object instanceof TableColumn) {
+				return cocoa_getBounds((TableColumn)object);
+			}
+			if (object instanceof TreeColumn) {
+				return cocoa_getBounds((TreeColumn)object);
+			}
+			if (object instanceof Menu || object instanceof MenuItem) {
+				return EMPTY;
+			}
+		}
+		try {
+			Method method = object.getClass().getDeclaredMethod("getBounds");
+			method.setAccessible(true);
+			return (Rectangle) method.invoke(object);
+		} catch (Throwable e) {
+			throw new UnsupportedOperationException(e);
+		}
+	}
+
+	public static Rectangle getBounds(MenuItem menuItem) {
+		Rectangle itemRect = getBounds((Object) menuItem);
+		Rectangle menuRect = getBounds(menuItem.getParent());
+		if ((menuItem.getParent().getStyle() & SWT.RIGHT_TO_LEFT) != 0) {
+			itemRect.x = menuRect.x + menuRect.width - itemRect.width - itemRect.x;
+		} else {
+			itemRect.x += menuRect.x;
+		}
+		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=38436#c143
+		itemRect.y += menuRect.y;
+		return itemRect;
+	}
+
+	public static Rectangle getBounds(Menu menu) {
+		Rectangle result = getBounds((Object) menu);
+		Decorations parent = menu.getParent();
+		if (parent == null || parent.isDisposed()) {
+			return result;
+		}
+		Rectangle bounds = parent.getBounds();
+		if (!result.isEmpty() && parent != null) {
+			return new Rectangle(result.x - bounds.x, result.y - bounds.y,
+					result.width, result.height);
+		} else if (SWTTools.checkStyle(menu, SWT.BAR)) {
+			if (menu.getItemCount() == 0) {
+				Point offset = SWTTools.getOffset(parent);
+				return new Rectangle(offset.x, offset.y - 19, bounds.width - offset.x * 2, 1);				
+			}
+			int y = SWTTools.getOffset(parent).y;
+			int x = SWTTools.getOffset(parent).x;
+			return new Rectangle(x, y - 19, bounds.width - x * 2, 19);
+		}
+		return result;
+	}
+
+	public static Rectangle getBounds(ScrollBar bar) {
+
+		// Set x,y to the location of the bar relative to its parent.
+		Scrollable parent = bar.getParent();
+		Point parentSize = parent.getSize();
+		Point size = bar.getSize();
+		int x, y;
+		if ((bar.getStyle() & SWT.HORIZONTAL) != 0) {
+			x = 0;
+			y = parentSize.y - size.y;
+		} else {
+			x = parentSize.x - size.x;
+			y = 0;
+		}
+
+		// Return the bar's bounds in display coordinates.
+		return bar.getDisplay().map(parent, null, x, y, size.x, size.y);
+	}
+
+	/*************************** WIN32 *****************************/
+	static int SendMessage(int hWnd, int Msg, int wParam, int[] lParam) {
+		int result = 0;
+		try {
+			Class<?> clazz = Class.forName("org.eclipse.swt.internal.win32.OS");
+			Class<?>[] params = new Class[] { Integer.TYPE, Integer.TYPE, Integer.TYPE, lParam.getClass(), };
+			Method method = clazz.getMethod("SendMessage", params);
+			Object[] args = new Object[] { Integer.valueOf(hWnd),
+					Integer.valueOf(Msg), Integer.valueOf(wParam), lParam, };
+			result = ((Integer) method.invoke(clazz, args)).intValue();
+		} catch (Throwable e) {
+			throw new UnsupportedOperationException(e);
+		}
+		return result;
+	}
+
+	static Rectangle win32_getBounds(TabItem tabItem) {
+		TabFolder parent = tabItem.getParent();
+		int index = parent.indexOf(tabItem);
+		if (index != -1) {
+			int[] rect = new int[4];
+			int width;
+			int height;
+			try {
+				Field field = parent.getClass().getField("handle");
+				SendMessage(field.getInt(parent), /* TCM_GETITEMRECT */0x130a, index, rect);
+				width = rect[2] - rect[0];
+				height = rect[3] - rect[1];
+				Rectangle bounds = new Rectangle(rect[0], rect[1], width, height);
+				return bounds;
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+		return new Rectangle(0, 0, 0, 0);
+		// return tabItem.getDisplay().map(tabItem.getParent(), null, bounds);
+	}
+
+	static Rectangle win32_getBounds(TableColumn tableColumn) {
+		Table parent = tableColumn.getParent();
+		int index = parent.indexOf(tableColumn);
+		if (index != -1) {
+			try {
+				Field field = parent.getClass().getField("handle");
+				int hwndHeader = SendMessage(field.getInt(parent), /* LVM_GETHEADER */0x101f, 0, new int[0]);
+				int[] rect = new int[4];
+				SendMessage(hwndHeader, /* HDM_GETITEMRECT */0x1200 + 7, index, rect);
+				int width = rect[2] - rect[0];
+				int height = rect[3] - rect[1];
+				Rectangle bounds = new Rectangle(rect[0], rect[1], width, height);
+				// TODO - coordinate system may change when the API is added to SWT
+				return bounds;
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+		return new Rectangle(0, 0, 0, 0);
+		// return tableColumn.getDisplay().map(parent, null, bounds);
+	}
+
+	static Rectangle win32_getBounds(TreeColumn treeColumn) {
+		Tree parent = treeColumn.getParent();
+		int index = parent.indexOf(treeColumn);
+		if (index == -1)
+			return new Rectangle(0, 0, 0, 0);
+		int hwndHeader = 0;
+		try {
+			Field getHeaderField = parent.getClass().getDeclaredField("hwndHeader");
+			getHeaderField.setAccessible(true);
+			hwndHeader = (Integer) getHeaderField.get(parent);
+		} catch (Exception e) {
+			DesignerPlugin.logInfo(e);
+		}
+		if (hwndHeader == 0) {
+			return new Rectangle(0, 0, 0, 0);
+		}
+		int[] rect = new int[4];
+		SendMessage(hwndHeader, /* HDM_GETITEMRECT */0x1200 + 7, index, rect);
+		int width = rect[2] - rect[0];
+		int height = rect[3] - rect[1];
+		Rectangle bounds = new Rectangle(rect[0], rect[1], width, height);
+		return bounds;
+	}
+
+	/*************************** GTK *****************************/
+	static void gtk_getBounds(int handle, Rectangle bounds) {
+		try {
+			Class<?> clazz = Class.forName("org.eclipse.swt.internal.gtk.OS");
+			Class<?>[] params = new Class[] { Integer.TYPE };
+			Object[] args = new Object[] { Integer.valueOf(handle) };
+			Method method = clazz.getMethod("GTK_WIDGET_X", params);
+			bounds.x = ((Integer) method.invoke(clazz, args)).intValue();
+			method = clazz.getMethod("GTK_WIDGET_Y", params);
+			bounds.y = ((Integer) method.invoke(clazz, args)).intValue();
+			method = clazz.getMethod("GTK_WIDGET_WIDTH", params);
+			bounds.width = ((Integer) method.invoke(clazz, args)).intValue();
+			method = clazz.getMethod("GTK_WIDGET_HEIGHT", params);
+			bounds.height = ((Integer) method.invoke(clazz, args)).intValue();
+		} catch (Throwable e) {
+			// TODO - decide what should happen when the method is unavailable
+		}
+	}
+
+	static Rectangle gtk_getBounds(TableColumn tableColumn) {
+		Rectangle bounds = new Rectangle(0, 0, 0, 0);
+		try {
+			Class<?> c = tableColumn.getClass();
+			Field f = c.getDeclaredField("buttonHandle");
+			f.setAccessible(true);
+			int handle = f.getInt(tableColumn);
+			gtk_getBounds(handle, bounds);
+		} catch (Throwable e) {
+			// TODO - decide what should happen when the method is unavailable
+		}
+		return bounds;
+		// return tableColumn.getDisplay().map(parent, null, bounds);
+	}
+
+	static Rectangle gtk_getBounds(TreeColumn treeColumn) {
+		Rectangle bounds = new Rectangle(0, 0, 0, 0);
+		try {
+			Class<?> c = treeColumn.getClass();
+			Field f = c.getDeclaredField("buttonHandle");
+			f.setAccessible(true);
+			int handle = f.getInt(treeColumn);
+			gtk_getBounds(handle, bounds);
+		} catch (Throwable e) {
+			// TODO - decide what should happen when the method is unavailable
+		}
+		return bounds;
+		// return tableColumn.getDisplay().map(parent, null, bounds);
+	}
+
+	static Rectangle gtk_getBounds(TabItem tabItem) {
+		Rectangle bounds = new Rectangle(0, 0, 0, 0);
+		try {
+			Class<?> c = Class.forName("org.eclipse.swt.widgets.Widget");
+			Field f = c.getDeclaredField("handle");
+			f.setAccessible(true);
+			int handle = f.getInt(tabItem);
+			gtk_getBounds(handle, bounds);
+		} catch (Throwable e) {
+			// TODO - decide what should happen when the method is unavailable
+		}
+		return bounds;
+		// return tableColumn.getDisplay().map(parent, null, bounds);
+	}
+
+	/*************************** MOTIF *****************************/
+	static Rectangle motif_getBounds(TabItem tabItem) {
+		Rectangle bounds = new Rectangle(0, 0, 0, 0);
+		try {
+			Class<?> c = tabItem.getClass();
+			Method m = c.getDeclaredMethod("getBounds");
+			m.setAccessible(true);
+			bounds = (Rectangle) m.invoke(tabItem);
+			int margin = 2;
+			bounds.x += margin;
+			bounds.y += margin;
+			bounds.width -= 2 * margin;
+			bounds.height -= margin;
+		} catch (Throwable e) {
+			// TODO - decide what should happen when the method is unavailable
+		}
+		return bounds;
+		// return tableColumn.getDisplay().map(parent, null, bounds);
+	}
+
+	static Rectangle motif_getBounds(TableColumn tableColumn) {
+		Rectangle bounds = new Rectangle(0, 0, 0, 0);
+		try {
+			Class<?> c = tableColumn.getClass();
+			Method m = c.getDeclaredMethod("getX");
+			m.setAccessible(true);
+			bounds.x = ((Integer) m.invoke(tableColumn)).intValue();
+			bounds.width = tableColumn.getWidth() - 2;
+			bounds.height = tableColumn.getParent().getHeaderHeight() - 2;
+		} catch (Throwable e) {
+			// TODO - decide what should happen when the method is unavailable
+		}
+		return bounds;
+		// return tableColumn.getDisplay().map(parent, null, bounds);
+	}
+
+	static Rectangle motif_getBounds(TreeColumn treeColumn) {
+		Rectangle bounds = new Rectangle(0, 0, 0, 0);
+		try {
+			Class<?> c = treeColumn.getClass();
+			Method m = c.getDeclaredMethod("getX");
+			m.setAccessible(true);
+			bounds.x = ((Integer) m.invoke(treeColumn, (Object[]) null)).intValue();
+			bounds.width = treeColumn.getWidth() - 2;
+			bounds.height = treeColumn.getParent().getHeaderHeight() - 2;
+		} catch (Throwable e) {
+			// TODO - decide what should happen when the method is unavailable
+		}
+		return bounds;
+		// return tableColumn.getDisplay().map(parent, null, bounds);
+	}
+
+	/*************************** CARBON *****************************/
+	static Rectangle carbon_getBounds(TabItem tabItem) {
+		return tabItem.getBounds();
+	}
+
+	static Rectangle carbon_getBounds(TableColumn tableColumn) {
+		return null;
+	}
+
+	static Rectangle carbon_getBounds(TreeColumn treeColumn) {
+		return null;
+	}
+
+	/*************************** COCOA *****************************/
+	static Rectangle cocoa_getBounds(TabItem tabItem) {
+		return tabItem.getBounds();
+	}
+
+	static Rectangle cocoa_getBounds(TableColumn tableColumn) {
+		return null;
+	}
+
+	static Rectangle cocoa_getBounds(TreeColumn treeColumn) {
+		return null;
+	}
+
+	public static Rectangle getBounds(TabItem tabItem) {
+		if (SWTUtil.IsWindows) {
+			return win32_getBounds(tabItem);
+		}
+		if (SWTUtil.IsGTK) {
+			return gtk_getBounds(tabItem);
+		}
+		if (SWTUtil.IsMotif) {
+			return motif_getBounds(tabItem);
+		}
+		if (SWTUtil.IsCarbon) {
+			return carbon_getBounds(tabItem);
+		}
+		if (SWTUtil.IsCocoa) {
+			return cocoa_getBounds(tabItem);
+		}
+		return null;
+	}
+
+	public static Rectangle getBounds(TableColumn tableColumn) {
+		if (SWTUtil.IsWindows) {
+			return win32_getBounds(tableColumn);
+		}
+		if (SWTUtil.IsGTK) {
+			return gtk_getBounds(tableColumn);
+		}
+		if (SWTUtil.IsMotif) {
+			return motif_getBounds(tableColumn);
+		}
+		if (SWTUtil.IsCarbon) {
+			return carbon_getBounds(tableColumn);
+		}
+		if (SWTUtil.IsCocoa) {
+			return cocoa_getBounds(tableColumn);
+		}
+		return null;
+	}
+
+	public static Rectangle getBounds(TreeColumn treeColumn) {
+		if (SWTUtil.IsWindows) {
+			return win32_getBounds(treeColumn);
+		}
+		if (SWTUtil.IsGTK) {
+			return gtk_getBounds(treeColumn);
+		}
+		if (SWTUtil.IsMotif) {
+			return motif_getBounds(treeColumn);
+		}
+		if (SWTUtil.IsCarbon) {
+			return carbon_getBounds(treeColumn);
+		}
+		if (SWTUtil.IsCocoa) {
+			return cocoa_getBounds(treeColumn);
+		}
+		return null;
+	}
+
+	public static Rectangle getBounds(TableItem item) {
+		return item.getBounds(0);
+		// return item.getDisplay().map(item.getParent(), null, item.getBounds(0));
+	}
+
+	public static Rectangle getBounds(TreeItem item) {
+		return item.getBounds();
+		// return item.getDisplay().map(item.getParent(), null, item.getBounds());
+	}
+
+	public static Rectangle getBounds(CTabItem item) {
+		return item.getBounds();
+		// return item.getDisplay().map(item.getParent(), null, item.getBounds());
+	}
+
+	public static Rectangle getBounds(ToolItem item) {
+		return item.getBounds();
+		// return item.getDisplay().map(item.getParent(), null, item.getBounds());
+	}
+
+	public static Rectangle getBounds(CoolItem item) {
+		return item.getBounds();
+		// return item.getDisplay().map(item.getParent(), null, item.getBounds());
+	}
+
+	public static Rectangle getBounds(ExpandItem item) {
+		if (item == null || item.isDisposed()) {
+			return new Rectangle(0, 0, 0, 0);
+		}
+		ExpandBar parent = item.getParent();
+		int x = parent.getSpacing();
+		int y = 0 + 20;
+		int width = parent.getSize().x - 2 * parent.getSpacing();
+		int height = item.getHeaderHeight();
+		if (item.getExpanded()) {
+			height = item.getHeaderHeight() + item.getHeight();
+		}
+		if ((SWT.SEPARATOR & item.getStyle()) != 0) {
+			height = 1;
+		} else {
+			if (item.getImage() != null) {
+				width += item.getImage().getBounds().width;
+			}
+		}
+		int index = parent.indexOf(item);
+		int Dheight = 0;
+		// according count the sum height of the item which is before current item to get current item's position.
+		for (int i = 0; i < index; i++) {
+			ExpandItem prev = parent.getItem(i);
+			if (prev.getExpanded())
+				Dheight = Dheight + prev.getHeight() + prev.getHeaderHeight();
+			else
+				Dheight = Dheight + prev.getHeaderHeight();
+		}
+		y = parent.getSpacing() * (index + 1) + parent.getBorderWidth() + Dheight;
+		return new Rectangle(x, y, width, height);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/WidgetLocator.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/WidgetLocator.java
new file mode 100755
index 0000000..f70009f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/util/swt/WidgetLocator.java
@@ -0,0 +1,192 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.util.swt;
+
+import org.eclipse.draw2d.FigureUtilities;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.custom.CTabItem;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.CoolItem;
+import org.eclipse.swt.widgets.Decorations;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.ExpandItem;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.swt.widgets.ScrollBar;
+import org.eclipse.swt.widgets.Scrollable;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.TabFolder;
+import org.eclipse.swt.widgets.TabItem;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.ToolItem;
+import org.eclipse.swt.widgets.TreeColumn;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.swt.widgets.Widget;
+
+/**
+ * Provides a means to find the coordinates of an SWT Widget in display-space,
+ * given an SWT Display object.
+ * 
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class WidgetLocator {
+	/**
+	 * Helper method to convert a Rectangle, given in the coordinate system of
+	 * the given Control's parent, to display-cordinates.
+	 */
+	public static Rectangle toDisplay(Rectangle bounds, Control control) {
+
+		// If it's a Shell or has no parent then the bounds are already
+		// display-relative.
+		if (control instanceof Shell || control.getParent() == null)
+			return bounds;
+
+		// Convert from parent-relative to display-relative.
+		Point point = control.getParent().toDisplay(bounds.x, bounds.y);
+		return new Rectangle(point.x, point.y, bounds.width, bounds.height);
+	}
+
+	public static Rectangle getBounds(Widget w, boolean toDisplay) {
+		if (w instanceof Control) {
+			Control control = (Control) w;
+			Rectangle r = control.getBounds();
+			if (toDisplay) {
+				return toDisplay(r, control);
+			}
+			Composite parent = control.getParent();
+			if (parent instanceof Scrollable && !(parent instanceof Group)
+					&& !(parent instanceof TabFolder)
+					&& !(parent instanceof CTabFolder)) {
+				Rectangle calced = parent.computeTrim(0, 0, 0, 0);
+				r.x += (- calced.x);
+				r.y += (- calced.y);
+				if (parent instanceof Shell && SWTUtil.IsWindows) {
+					Shell shell = (Shell) parent;
+					Menu menu = shell.getMenuBar();
+					// Bug 300170 - Shell computeTrim returns a wrong result
+					if (menu != null && menu.getItemCount() == 0) {
+						r.y -= 19;						
+					}
+				}
+			}
+			else if (SWTUtil.IsCocoa) {
+				if (parent instanceof Group) {
+					Rectangle calced = parent.computeTrim(0, 0, 0, 0);
+					r.x += - calced.x;
+					r.y += calced.height + calced.y;
+				}
+			}
+			return r;
+		}
+		if (w instanceof Menu) {
+			Menu menu = (Menu) w;
+			menu.getDisplay().update();
+			return SWTWorkarounds.getBounds(menu);
+		}
+		if (w instanceof CTabItem) {
+			return SWTWorkarounds.getBounds((CTabItem) w);
+		}
+		if (w instanceof MenuItem) {
+			MenuItem menuItem = (MenuItem) w;
+			Menu parent = menuItem.getParent();
+			Rectangle r = SWTWorkarounds.getBounds(parent);
+			Rectangle bounds = SWTWorkarounds.getBounds((MenuItem) w);
+			if (!r.isEmpty() && bounds.isEmpty()) {
+				bounds = getBounds(menuItem);
+			}
+			if (bounds.x >= r.x) {
+				bounds.x = bounds.x - r.x;
+			}
+			if (bounds.y >= r.y) {
+				bounds.y = bounds.y - r.y;
+			}
+			return bounds;
+		}
+		if (w instanceof TabItem) {
+			return SWTWorkarounds.getBounds((TabItem) w);
+		}
+		if (w instanceof TableColumn) {
+			return SWTWorkarounds.getBounds((TableColumn) w);
+		}
+		if (w instanceof TreeColumn) {
+			return SWTWorkarounds.getBounds((TreeColumn) w);
+		}
+		if (w instanceof ScrollBar) {
+			return SWTWorkarounds.getBounds((ScrollBar) w);
+		}
+		if (w instanceof ToolItem) {
+			return SWTWorkarounds.getBounds((ToolItem) w);
+		}
+		if (w instanceof CoolItem) {
+			return SWTWorkarounds.getBounds((CoolItem) w);
+		}
+		if (w instanceof TreeItem) {
+			return SWTWorkarounds.getBounds((TreeItem) w);
+		}
+		if (w instanceof TableItem) {
+			return SWTWorkarounds.getBounds((TableItem) w);
+		}
+		if (w instanceof ExpandItem) {
+			return SWTWorkarounds.getBounds((ExpandItem) w);
+		}
+		return new Rectangle(0, 0, 0, 0);
+	}
+
+	private static Rectangle getBounds(MenuItem menuItem) {
+		if (menuItem == null || menuItem.isDisposed()) {
+			return new Rectangle(0, 0, 0, 0);
+		}
+		int x = 0, y = 0, width = 0, height = 19;
+		if ((SWT.SEPARATOR & menuItem.getStyle()) != 0) {
+			height = 1;
+		} else {
+			String text = menuItem.getText();
+			Dimension textExtents = FigureUtilities.getTextExtents(text,
+					Display.getCurrent().getSystemFont());
+			width = textExtents.width + 12;
+			if (menuItem.getImage() != null) {
+				width += 20;
+			}
+		}
+		Menu parent = menuItem.getParent();
+		int index = parent.indexOf(menuItem);
+		for (int i = 0; i < index; i++) {
+			if (((i - 1) >= 0)) {
+				MenuItem prev = parent.getItem(i - 1);
+				Rectangle r = getBounds(prev);
+				if ((SWT.BAR & parent.getStyle()) != 0) {
+					x = r.x + r.width;
+					y = r.y;
+				} else {
+					y = r.y + r.height;
+				}
+			}
+		}
+		return new Rectangle(x, y, width, height);
+	}
+
+	public static Point getLocation(Widget widget) {
+		Rectangle bounds = getBounds(widget, false);
+		if (bounds != null) {
+			return new Point(bounds.x, bounds.y);
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/IVisualInfo.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
new file mode 100755
index 0000000..f96f4a2
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/IVisualInfo.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+/*
+ * $RCSfile: IVisualInfo.java,v $ $Revision: 1.4 $ $Date: 2010/06/18 00:15:24 $
+ */
+package org.eclipse.xwt.tools.ui.designer.core.visuals;
+
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.xwt.tools.ui.designer.core.images.IImageNotifier;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public interface IVisualInfo extends IImageNotifier {
+
+	public Object getVisualObject();
+
+	public void setVisualObject(Object visualObject);
+
+	public boolean isRoot();
+
+	public Rectangle getBounds();
+
+	public Rectangle getClientArea();
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/VisualInfo.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/VisualInfo.java
new file mode 100755
index 0000000..f55a637
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/VisualInfo.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.visuals;
+
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.xwt.tools.ui.designer.core.images.IImageListener;
+import org.eclipse.xwt.tools.ui.designer.core.images.ImageNotifierSupport;
+
+/**
+ * @author jin.liu(jin.liu@soyatec.com)
+ */
+public abstract class VisualInfo implements IVisualInfo {
+
+	protected Object visualObject;
+	protected ImageNotifierSupport imageSupport = new ImageNotifierSupport();
+
+	private boolean isRoot;
+
+	public VisualInfo(Object visualObject, boolean isRoot) {
+		this.visualObject = visualObject;
+		this.isRoot = isRoot;
+	}
+
+	public Object getVisualObject() {
+		return visualObject;
+	}
+
+	public boolean isRoot() {
+		return isRoot;
+	}
+
+	public Rectangle getBounds() {
+		return new Rectangle();
+	}
+
+	public Rectangle getClientArea() {
+		return getBounds();
+	}
+
+	public void setVisualObject(Object visualObject) {
+		this.visualObject = visualObject;
+	}
+
+	public void addImageListener(IImageListener listener) {
+		imageSupport.addImageListener(listener);
+	}
+
+	public void removeImageListener(IImageListener listener) {
+		imageSupport.removeImageListener(listener);
+	}
+
+	public boolean hasImageListeners() {
+		return imageSupport.hasImageListeners();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/CompositeInfo.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/CompositeInfo.java
new file mode 100755
index 0000000..f2d1bcd
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/CompositeInfo.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.visuals.swt;
+
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Scrollable;
+import org.eclipse.xwt.tools.ui.designer.core.util.Draw2dTools;
+import org.eclipse.xwt.tools.ui.designer.core.util.swt.WidgetLocator;
+
+/**
+ * @author jin.liu(jin.liu@soyatec.com)
+ */
+public class CompositeInfo extends ControlInfo {
+
+	public CompositeInfo(Object visualObject, boolean isRoot) {
+		super(visualObject, isRoot);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.tools.ui.designer.core.visuals.VisualInfo#getClientArea
+	 * ()
+	 */
+	public org.eclipse.draw2d.geometry.Rectangle getClientArea() {
+		if (visualObject instanceof Scrollable) {
+			// get the display-relative location.
+			Rectangle bounds = WidgetLocator.getBounds(
+					(Scrollable) visualObject, true);
+			Rectangle clientArea = ((Scrollable) visualObject).getClientArea();
+			Rectangle calced = ((Scrollable) visualObject).computeTrim(0, 0, 0, 0);
+			bounds.width = clientArea.width;
+			bounds.height = clientArea.height;
+			bounds.x += -calced.x;
+			bounds.y += -calced.y;
+			return Draw2dTools.toDraw2d(bounds);
+		}
+		return super.getClientArea();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/ControlInfo.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/ControlInfo.java
new file mode 100755
index 0000000..f28cab4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/ControlInfo.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.visuals.swt;
+
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.tools.ui.designer.core.util.image.ImageCollectedRunnable;
+import org.eclipse.xwt.tools.ui.designer.core.util.image.ImageCollector;
+
+/**
+ * @author jin.liu(jin.liu@soyatec.com)
+ */
+public class ControlInfo extends WidgetInfo {
+
+	public ControlInfo(Object visualObject, boolean isRoot) {
+		super(visualObject, isRoot);
+	}
+
+	public void refreshImage() {
+		if (!isRoot()) {
+			return;
+		}
+		Widget widget = getVisualObject();
+		if (widget == null || widget.isDisposed() || !(widget instanceof Control)) {
+			return;
+		}
+		Control control = (Control) widget;
+		ImageCollector.collectImage(control, new ImageCollectedRunnable() {
+			public void imageNotCollected() {
+			}
+
+			public void imageCollected(Image image) {
+				imageSupport.fireImageChanged(image);
+			}
+		});
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/RectangleInfo.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/RectangleInfo.java
new file mode 100755
index 0000000..2e9e9f7
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/RectangleInfo.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.visuals.swt;
+
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.xwt.tools.ui.designer.core.visuals.VisualInfo;
+
+/**
+ * It is used to manage a visual widget such as SashFrom
+ * 
+ * @author yyang <yves.yang@soyatec.com>
+ */
+public class RectangleInfo extends VisualInfo {
+
+	public RectangleInfo(Rectangle visualObject, boolean isRoot) {
+		super(visualObject, isRoot);
+	}
+
+	public Rectangle getBounds() {
+		return (Rectangle) getVisualObject();
+	}
+
+	public Rectangle getVisualObject() {
+		return (Rectangle) super.getVisualObject();
+	}
+
+	public void refreshImage() {
+		// do nothing.
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/ViewerInfo.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/ViewerInfo.java
new file mode 100755
index 0000000..e6c04c6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/ViewerInfo.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.visuals.swt;
+
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.xwt.tools.ui.designer.core.visuals.VisualInfo;
+
+/**
+ * @author jin.liu(jin.liu@soyatec.com)
+ */
+public class ViewerInfo extends VisualInfo {
+
+	private Viewer viewer;
+
+	private ControlInfo delegate;
+
+	public ViewerInfo(Viewer visualObject, boolean isRoot) {
+		super(visualObject, isRoot);
+		this.viewer = visualObject;
+		if (visualObject != null) {
+			Control control = visualObject.getControl();
+			if (control != null) {
+				delegate = new ControlInfo(control, isRoot);
+			}
+		}
+	}
+
+	public Viewer getViewer() {
+		return viewer;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.xwt.tools.ui.designer.core.visuals.VisualInfo#getBounds()
+	 */
+	public Rectangle getBounds() {
+		if (delegate != null) {
+			return delegate.getBounds();
+		}
+		return super.getBounds();
+	}
+
+	public void refreshImage() {
+		if (delegate != null) {
+			delegate.refreshImage();
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/WidgetInfo.java b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/WidgetInfo.java
new file mode 100755
index 0000000..7c74e08
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer.core/src/org/eclipse/xwt/tools/ui/designer/core/visuals/swt/WidgetInfo.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.core.visuals.swt;
+
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.tools.ui.designer.core.util.Draw2dTools;
+import org.eclipse.xwt.tools.ui.designer.core.util.swt.WidgetLocator;
+import org.eclipse.xwt.tools.ui.designer.core.visuals.VisualInfo;
+
+/**
+ * @author jin.liu(jin.liu@soyatec.com)
+ */
+public class WidgetInfo extends VisualInfo {
+
+	public WidgetInfo(Object visualObject, boolean isRoot) {
+		super(visualObject, isRoot);
+	}
+
+	public Rectangle getBounds() {
+		Widget widget = getVisualObject();
+		if (widget != null && !widget.isDisposed()) {
+			return Draw2dTools.toDraw2d(WidgetLocator.getBounds(widget, isRoot()));
+		}
+		return super.getBounds();
+	}
+
+	public Widget getVisualObject() {
+		return (Widget) super.getVisualObject();
+	}
+
+	public void refreshImage() {
+		// do nothing.
+	}
+
+	public Display getDisplay() {
+		Widget widget = getVisualObject();
+		if (widget != null && !widget.isDisposed()) {
+			return widget.getDisplay();
+		}
+		Display display = Display.getCurrent();
+		if (display == null) {
+			display = Display.getDefault();
+		}
+		return display;
+	}
+
+}
diff --git a/org.eclipse.xwt.tools.ui.designer/.classpath b/plugins/org.eclipse.xwt.tools.ui.designer/.classpath
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/.classpath
rename to plugins/org.eclipse.xwt.tools.ui.designer/.classpath
diff --git a/org.eclipse.xwt.tools.ui.designer/.gitignore b/plugins/org.eclipse.xwt.tools.ui.designer/.gitignore
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/.gitignore
rename to plugins/org.eclipse.xwt.tools.ui.designer/.gitignore
diff --git a/org.eclipse.xwt.tools.ui.designer/.project b/plugins/org.eclipse.xwt.tools.ui.designer/.project
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/.project
rename to plugins/org.eclipse.xwt.tools.ui.designer/.project
diff --git a/org.eclipse.xwt.tools.ui.designer/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.xwt.tools.ui.designer/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/.settings/org.eclipse.jdt.core.prefs
rename to plugins/org.eclipse.xwt.tools.ui.designer/.settings/org.eclipse.jdt.core.prefs
diff --git a/org.eclipse.xwt.tools.ui.designer/META-INF/MANIFEST.MF b/plugins/org.eclipse.xwt.tools.ui.designer/META-INF/MANIFEST.MF
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/META-INF/MANIFEST.MF
rename to plugins/org.eclipse.xwt.tools.ui.designer/META-INF/MANIFEST.MF
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/OSGI-INF/l10n/bundle.properties b/plugins/org.eclipse.xwt.tools.ui.designer/OSGI-INF/l10n/bundle.properties
new file mode 100755
index 0000000..7b211a4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1,17 @@
+###############################################################################
+# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     Soyatec - initial API and implementation
+###############################################################################
+#Properties file for org.eclipse.xwt.tools.ui.designer
+content-type.name = XWT designer content type
+editor.name = XWT Designer
+Bundle-Vendor = Eclipse.org
+Bundle-Name = XWT Designer (Incubation)
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/about.html b/plugins/org.eclipse.xwt.tools.ui.designer/about.html
new file mode 100755
index 0000000..30a821b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/about.html
@@ -0,0 +1,45 @@
+<!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>December 3, 2009</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+<h3>Third Party Content</h3>
+
+<p>The Content includes items  from third parties as set out below. If you did not
+receive this Content directly from the Eclipse Foundation, the following is provided for informational
+purposes only, and you should look to the Redistributor&rsquo;s license for terms and conditions of use.</p>
+
+<h4>Silk icon set Version 1.3</h4>
+<p>
+This plugin contains icons from the Silk icon set created by Mark James. The original files can
+be found at:
+<ul>
+<a href="http://www.famfamfam.com/lab/icons/silk/">http://www.famfamfam.com/lab/icons/silk/</a></ul>
+<p>The license can be found at:</p>
+<ul>
+ <li><a href="http://creativecommons.org/licenses/by/2.5/">http://creativecommons.org/licenses/by/2.5/</a></li>
+</ul>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/build.properties b/plugins/org.eclipse.xwt.tools.ui.designer/build.properties
new file mode 100755
index 0000000..3c9a01b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/build.properties
@@ -0,0 +1,31 @@
+###############################################################################
+# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     Soyatec - initial API and implementation
+###############################################################################
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml,\
+               icons/,\
+               palette/,\
+               OSGI-INF/,\
+               about.html
+src.includes = .classpath,\
+               .project,\
+               META-INF/,\
+               OSGI-INF/,\
+               icons/,\
+               palette/,\
+               plugin.xml,\
+               src/,\
+               .settings/,\
+               build.properties
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/Ellipse.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/Ellipse.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/Ellipse.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/Ellipse.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/Line.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/Line.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/Line.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/Line.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/Path.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/Path.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/Path.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/Path.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/Polygon.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/Polygon.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/Polygon.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/Polygon.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/Polyline.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/Polyline.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/Polyline.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/Polyline.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/Rectangle.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/Rectangle.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/Rectangle.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/Rectangle.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/browser_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/browser_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/browser_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/browser_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/button_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/button_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/button_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/button_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/canvas_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/canvas_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/canvas_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/canvas_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/cbanner_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/cbanner_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/cbanner_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/cbanner_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/ccombo_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/ccombo_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/ccombo_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/ccombo_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/checkbox_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/checkbox_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/checkbox_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/checkbox_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/choice_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/choice_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/choice_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/choice_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/clabel_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/clabel_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/clabel_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/clabel_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/comboviewer_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/comboviewer_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/comboviewer_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/comboviewer_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/comboviewer_overlay.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/comboviewer_overlay.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/comboviewer_overlay.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/comboviewer_overlay.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/composite_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/composite_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/composite_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/composite_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/coolbar_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/coolbar_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/coolbar_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/coolbar_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/coolitem_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/coolitem_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/coolitem_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/coolitem_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/ctabfolder_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/ctabfolder_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/ctabfolder_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/ctabfolder_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/ctabitem_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/ctabitem_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/ctabitem_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/ctabitem_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/expandable_composite_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/expandable_composite_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/expandable_composite_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/expandable_composite_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/expandbar_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/expandbar_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/expandbar_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/expandbar_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/expanditem_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/expanditem_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/expanditem_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/expanditem_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/filllayout_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/filllayout_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/filllayout_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/filllayout_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/form_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/form_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/form_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/form_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/formdata_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/formdata_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/formdata_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/formdata_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/formlayout_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/formlayout_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/formlayout_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/formlayout_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/formtext_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/formtext_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/formtext_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/formtext_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/griddata_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/griddata_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/griddata_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/griddata_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/gridlayout_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/gridlayout_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/gridlayout_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/gridlayout_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/group_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/group_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/group_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/group_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/imagehyperlink_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/imagehyperlink_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/imagehyperlink_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/imagehyperlink_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/label_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/label_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/label_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/label_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/layout_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/layout_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/layout_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/layout_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/layoutdata_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/layoutdata_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/layoutdata_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/layoutdata_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/layouts.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/layouts.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/layouts.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/layouts.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/link_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/link_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/link_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/link_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/listbox_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/listbox_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/listbox_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/listbox_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/listviewer_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/listviewer_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/listviewer_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/listviewer_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/listviewer_overlay.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/listviewer_overlay.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/listviewer_overlay.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/listviewer_overlay.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/menu_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/menu_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/menu_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/menu_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/menubar_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/menubar_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/menubar_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/menubar_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/menuitem_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/menuitem_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/menuitem_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/menuitem_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/menuseparator_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/menuseparator_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/menuseparator_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/menuseparator_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/no_treeviewer_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/no_treeviewer_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/no_treeviewer_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/no_treeviewer_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/no_treeviewer_obj2.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/no_treeviewer_obj2.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/no_treeviewer_obj2.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/no_treeviewer_obj2.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/progressbar_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/progressbar_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/progressbar_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/progressbar_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/radiobutton_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/radiobutton_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/radiobutton_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/radiobutton_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/rcp_app.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/rcp_app.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/rcp_app.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/rcp_app.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/rcp_editor.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/rcp_editor.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/rcp_editor.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/rcp_editor.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/rowlayout_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/rowlayout_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/rowlayout_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/rowlayout_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/sashform_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/sashform_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/sashform_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/sashform_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/scale_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/scale_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/scale_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/scale_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/scrolledcomposite_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/scrolledcomposite_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/scrolledcomposite_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/scrolledcomposite_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/scrolledform_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/scrolledform_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/scrolledform_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/scrolledform_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/section_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/section_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/section_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/section_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/separator_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/separator_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/separator_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/separator_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/shell_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/shell_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/shell_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/shell_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/slider_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/slider_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/slider_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/slider_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/spinner_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/spinner_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/spinner_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/spinner_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/stacklayout_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/stacklayout_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/stacklayout_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/stacklayout_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/styledtext_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/styledtext_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/styledtext_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/styledtext_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/swt_containers.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/swt_containers.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/swt_containers.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/swt_containers.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/swt_controls.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/swt_controls.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/swt_controls.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/swt_controls.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/swt_menus.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/swt_menus.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/swt_menus.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/swt_menus.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/swtbean_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/swtbean_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/swtbean_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/swtbean_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tabfolder_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tabfolder_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tabfolder_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tabfolder_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tabitem_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tabitem_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tabitem_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tabitem_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/table_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/table_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/table_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/table_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tablecolumn_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tablecolumn_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tablecolumn_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tablecolumn_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tableitem_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tableitem_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tableitem_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tableitem_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tableviewer_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tableviewer_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tableviewer_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tableviewer_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tableviewer_overlay.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tableviewer_overlay.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tableviewer_overlay.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tableviewer_overlay.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/text_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/text_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/text_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/text_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/textarea_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/textarea_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/textarea_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/textarea_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/toggledbutton_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/toggledbutton_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/toggledbutton_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/toggledbutton_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/toolbar_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/toolbar_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/toolbar_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/toolbar_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/toolitemcheck_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/toolitemcheck_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/toolitemcheck_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/toolitemcheck_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/toolitemdrop_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/toolitemdrop_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/toolitemdrop_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/toolitemdrop_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/toolitempush_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/toolitempush_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/toolitempush_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/toolitempush_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/toolitemradio_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/toolitemradio_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/toolitemradio_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/toolitemradio_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/toolitemseparator_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/toolitemseparator_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/toolitemseparator_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/toolitemseparator_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tooltip_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tooltip_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tooltip_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tooltip_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tree_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tree_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tree_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/tree_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/treecolumn_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/treecolumn_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/treecolumn_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/treecolumn_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/treeitem_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/treeitem_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/treeitem_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/treeitem_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/treeviewer2_overlay.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/treeviewer2_overlay.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/treeviewer2_overlay.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/treeviewer2_overlay.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/treeviewer_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/treeviewer_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/treeviewer_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/treeviewer_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/treeviewer_overlay.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/treeviewer_overlay.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/treeviewer_overlay.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/treeviewer_overlay.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/viewer_overlay.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/viewer_overlay.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/viewer_overlay.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/viewer_overlay.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/viewform_obj.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/viewform_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/obj16/viewform_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/obj16/viewform_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/array.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/array.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/array.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/array.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/background_fill_color.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/background_fill_color.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/background_fill_color.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/background_fill_color.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/background_image_edit.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/background_image_edit.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/background_image_edit.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/background_image_edit.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/binding/binding.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/binding/binding.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/binding/binding.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/binding/binding.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/binding/binding_add.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/binding/binding_add.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/binding/binding_add.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/binding/binding_add.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/binding/binding_delete.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/binding/binding_delete.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/binding/binding_delete.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/binding/binding_delete.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/binding/binding_edit.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/binding/binding_edit.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/binding/binding_edit.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/binding/binding_edit.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/binding/binding_remove_all.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/binding/binding_remove_all.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/binding/binding_remove_all.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/binding/binding_remove_all.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/bold.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/bold.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/bold.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/bold.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/boolean.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/boolean.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/boolean.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/boolean.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/clear.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/clear.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/clear.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/clear.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/clear_filter.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/clear_filter.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/clear_filter.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/clear_filter.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/collection.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/collection.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/collection.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/collection.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/color.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/color.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/color.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/color.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/element.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/element.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/element.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/element.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/event.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/event.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/event.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/event.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/fill_color.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/fill_color.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/fill_color.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/fill_color.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/font.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/font.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/font.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/font.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/font_color.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/font_color.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/font_color.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/font_color.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/font_delete.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/font_delete.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/font_delete.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/font_delete.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/foreground_fill_color.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/foreground_fill_color.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/foreground_fill_color.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/foreground_fill_color.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/goto_definition.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/goto_definition.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/goto_definition.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/goto_definition.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/image.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/image.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/image.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/image.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/image_edit.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/image_edit.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/image_edit.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/image_edit.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/italic.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/italic.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/italic.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/italic.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/layout_assist.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/layout_assist.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/layout_assist.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/layout_assist.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/listener_method.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/listener_method.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/listener_method.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/listener_method.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/number.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/number.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/number.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/number.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/object.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/object.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/object.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/object.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/observe/beans.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/observe/beans.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/observe/beans.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/observe/beans.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/observe/custom.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/observe/custom.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/observe/custom.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/observe/custom.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/observe/emf.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/observe/emf.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/observe/emf.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/observe/emf.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/observe/object.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/observe/object.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/observe/object.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/observe/object.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/observe/widgets.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/observe/widgets.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/observe/widgets.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/observe/widgets.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/observe/xml.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/observe/xml.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/observe/xml.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/observe/xml.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/preview.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/preview.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/preview.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/preview.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/resources.gif b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/resources.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/resources.gif
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/resources.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/string.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/string.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/string.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/string.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/viewer.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/viewer.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/viewer.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/viewer.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/viewer_collection.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/viewer_collection.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/viewer_collection.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/viewer_collection.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/xaml.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/xaml.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/xaml.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/xaml.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/xaml_mediator_wiz.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/xaml_mediator_wiz.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/xaml_mediator_wiz.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/xaml_mediator_wiz.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/icons/full/tools/xaml_wiz.png b/plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/xaml_wiz.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/icons/full/tools/xaml_wiz.png
rename to plugins/org.eclipse.xwt.tools.ui.designer/icons/full/tools/xaml_wiz.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.designer/palette/xwt.palette b/plugins/org.eclipse.xwt.tools.ui.designer/palette/xwt.palette
similarity index 100%
rename from org.eclipse.xwt.tools.ui.designer/palette/xwt.palette
rename to plugins/org.eclipse.xwt.tools.ui.designer/palette/xwt.palette
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/plugin.xml b/plugins/org.eclipse.xwt.tools.ui.designer/plugin.xml
new file mode 100755
index 0000000..5332b35
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/plugin.xml
Binary files differ
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/pom.xml b/plugins/org.eclipse.xwt.tools.ui.designer/pom.xml
new file mode 100755
index 0000000..a48c8bb
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-plugins</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt.tools.ui.designer</artifactId>
+	<version>0.10.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+</project>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/XWTDesignerPlugin.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/XWTDesignerPlugin.java
new file mode 100755
index 0000000..5c04754
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/XWTDesignerPlugin.java
@@ -0,0 +1,314 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class XWTDesignerPlugin extends AbstractUIPlugin {
+
+	// The plug-in ID
+	public static final String PLUGIN_ID = "org.eclipse.xwt.tools.ui.designer";
+
+	// The shared instance
+	private static XWTDesignerPlugin plugin;
+
+	/**
+	 * The constructor
+	 */
+	public XWTDesignerPlugin() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+	 */
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+	 */
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance
+	 * 
+	 * @return the shared instance
+	 */
+	public static XWTDesignerPlugin getDefault() {
+		return plugin;
+	}
+
+	/**
+	 * @param string
+	 * @return
+	 */
+	public static ImageDescriptor getImageDescriptor(String imageFilePath) {
+		return imageDescriptorFromPlugin(PLUGIN_ID, imageFilePath);
+	}
+
+	public XWTDesigner getActiveDesigner() {
+		IWorkbench workbench = getDefault().getWorkbench();
+		if (workbench == null) {
+			return null;
+		}
+		IWorkbenchWindow activeWorkbenchWindow = workbench.getActiveWorkbenchWindow();
+		if (activeWorkbenchWindow == null) {
+			return null;
+		}
+		IWorkbenchPage activePage = activeWorkbenchWindow.getActivePage();
+		if (activePage == null) {
+			return null;
+		}
+		IEditorPart activeEditor = activePage.getActiveEditor();
+		if (activeEditor instanceof XWTDesigner) {
+			return (XWTDesigner) activeEditor;
+		}
+		return null;
+
+	}
+
+	public static void log(IStatus status) {
+		log(status, 0, true);
+	}
+
+	public static void log(IStatus status, boolean appendLogger) {
+		log(status, 0, appendLogger);
+	}
+
+	public static void log(IStatus status, int nesting) {
+		log(status, nesting, true);
+	}
+
+	public static void log(IStatus status, int nesting, boolean appendLogger) {
+		getDefault().getLog().log(status);
+	}
+
+	/**
+	 * Log Message Info
+	 */
+
+	public static void logInfo(String message) {
+		logInfo(message, 0, true);
+	}
+
+	public static void logInfo(String message, boolean appendLogger) {
+		logInfo(message, 0, appendLogger);
+	}
+
+	public static void logInfo(String message, int nesting) {
+		logInfo(message, nesting, true);
+	}
+
+	public static void logInfo(String message, int nesting, boolean appendLogger) {
+		log(newStatus(IStatus.INFO, message, null), nesting, appendLogger);
+	}
+
+	/**
+	 * Log Message and Throwable Info
+	 */
+
+	public static void logInfo(String message, Throwable t) {
+		logInfo(message, t, 0, true);
+	}
+
+	public static void logInfo(String message, Throwable t, boolean appendLogger) {
+		logInfo(message, t, 0, appendLogger);
+	}
+
+	public static void logInfo(String message, Throwable t, int nesting) {
+		logInfo(message, t, nesting, true);
+	}
+
+	public static void logInfo(String message, Throwable t, int nesting,
+			boolean appendLogger) {
+		log(newStatus(IStatus.INFO, message, t), nesting, appendLogger);
+	}
+
+	/**
+	 * Log Throwable Info
+	 */
+
+	public static void logInfo(Throwable t) {
+		logInfo(t, 0, true);
+	}
+
+	public static void logInfo(Throwable t, boolean appendLogger) {
+		logInfo(t, 0, appendLogger);
+	}
+
+	public static void logInfo(Throwable t, int nesting) {
+		logInfo(t, nesting, true);
+	}
+
+	public static void logInfo(Throwable t, int nesting, boolean appendLogger) {
+		log(newStatus(IStatus.INFO, t.getMessage(), t), nesting, appendLogger);
+	}
+
+	/**
+	 * Log Message Error
+	 */
+
+	public static void logError(String message) {
+		logError(message, 0, true);
+	}
+
+	public static void logError(String message, boolean appendLogger) {
+		logError(message, 0, appendLogger);
+	}
+
+	public static void logError(String message, int nesting) {
+		logError(message, nesting, true);
+	}
+
+	public static void logError(String message, int nesting,
+			boolean appendLogger) {
+		log(newStatus(IStatus.ERROR, message, null), nesting, appendLogger);
+	}
+
+	/**
+	 * Log Message and Throwable Error
+	 */
+
+	public static void logError(String message, Throwable t) {
+		logError(message, t, 0, true);
+	}
+
+	public static void logError(String message, Throwable t,
+			boolean appendLogger) {
+		logError(message, t, 0, appendLogger);
+	}
+
+	public static void logError(String message, Throwable t, int nesting) {
+		logError(message, t, nesting, true);
+	}
+
+	public static void logError(String message, Throwable t, int nesting,
+			boolean appendLogger) {
+		log(newStatus(IStatus.ERROR, message, t), nesting, appendLogger);
+	}
+
+	/**
+	 * Log Throwable Error
+	 */
+
+	public static void logError(Throwable t) {
+		logError(t, 0, true);
+	}
+
+	public static void logError(Throwable t, boolean appendLogger) {
+		logError(t, 0, appendLogger);
+	}
+
+	public static void logError(Throwable t, int nesting) {
+		logError(t, nesting, true);
+	}
+
+	public static void logError(Throwable t, int nesting, boolean appendLogger) {
+		log(newStatus(IStatus.ERROR, t.getMessage(), t), nesting, appendLogger);
+	}
+
+	/**
+	 * Log Message Warning
+	 */
+
+	public static void logWarning(String message) {
+		logWarning(message, 0, true);
+	}
+
+	public static void logWarning(String message, boolean appendLogger) {
+		logWarning(message, 0, appendLogger);
+	}
+
+	public static void logWarning(String message, int nesting) {
+		logWarning(message, nesting, true);
+	}
+
+	public static void logWarning(String message, int nesting,
+			boolean appendLogger) {
+		log(newStatus(IStatus.WARNING, message, null), nesting, appendLogger);
+	}
+
+	/**
+	 * Log Message and Throwable Warning
+	 */
+
+	public static void logWarning(String message, Throwable t) {
+		logWarning(message, t, 0, true);
+	}
+
+	public static void logWarning(String message, Throwable t,
+			boolean appendLogger) {
+		logWarning(message, t, 0, appendLogger);
+	}
+
+	public static void logWarning(String message, Throwable t, int nesting) {
+		logWarning(message, t, nesting, true);
+	}
+
+	public static void logWarning(String message, Throwable t, int nesting,
+			boolean appendLogger) {
+		log(newStatus(IStatus.WARNING, message, t), nesting, appendLogger);
+	}
+
+	/**
+	 * Log Throwable Warning
+	 */
+
+	public static void logWarning(Throwable t) {
+		logWarning(t, 0, true);
+	}
+
+	public static void logWarning(Throwable t, boolean appendLogger) {
+		logWarning(t, 0, appendLogger);
+	}
+
+	public static void logWarning(Throwable t, int nesting) {
+		logWarning(t, nesting, true);
+	}
+
+	public static void logWarning(Throwable t, int nesting, boolean appendLogger) {
+		log(newStatus(IStatus.WARNING, t.getMessage(), t), nesting,
+				appendLogger);
+	}
+
+	/**
+	 * Create an IStatus
+	 * 
+	 * @return a new IStatus
+	 */
+	public static IStatus newStatus(int severity, String message,
+			Throwable exception) {
+		return new Status(severity, PLUGIN_ID, 0, message, exception);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/AbstractCreateCommand.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/AbstractCreateCommand.java
new file mode 100755
index 0000000..3f14174
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/AbstractCreateCommand.java
@@ -0,0 +1,114 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.commands;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.xwt.tools.ui.designer.editor.palette.CreateReqHelper;
+import org.eclipse.xwt.tools.ui.designer.editor.palette.InitializeHelper;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public abstract class AbstractCreateCommand extends Command {
+
+	protected EditPart parent;
+	protected CreateRequest createRequest;
+	protected CreateReqHelper helper;
+	protected Command addChildCommand;
+	private XamlNode child;
+
+	public AbstractCreateCommand(EditPart parent, CreateRequest createRequest) {
+		this.parent = parent;
+		this.createRequest = createRequest;
+		helper = new CreateReqHelper(createRequest);
+		setLabel("Creation Command");
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#execute()
+	 */
+	public void execute() {
+		preExecute(child, createRequest);
+
+		addChildCommand.execute();
+	}
+
+	protected Command createCreateCommand(XamlNode parent, XamlNode child) {
+		return new AddNewChildCommand(parent, child);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#canExecute()
+	 */
+	public boolean canExecute() {
+		if (child == null) {
+			child = helper.getNewObject();
+		}
+
+		if (!InitializeHelper.checkValue(child)) {
+			return false;
+		}
+		if (addChildCommand == null) {
+			addChildCommand = createCreateCommand(getParentModel(), child);
+		}
+
+		if (addChildCommand == null || !addChildCommand.canExecute()) {
+			return false;
+		}
+		return parent != null && getParentModel() != null && helper.canCreate(parent);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#canUndo()
+	 */
+	public boolean canUndo() {
+		return addChildCommand != null && addChildCommand.canUndo();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#undo()
+	 */
+	public void undo() {
+		addChildCommand.undo();
+	}
+
+	/**
+	 * @return the parent
+	 */
+	public EditPart getParent() {
+		return parent;
+	}
+
+	public XamlElement getParentModel() {
+		Object model = parent.getModel();
+		if (!(model instanceof XamlElement)) {
+			return null;
+		}
+		return (XamlElement) model;
+	}
+
+	protected abstract void preExecute(XamlNode newNode, CreateRequest createRequest);
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/AddItemsCommand.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/AddItemsCommand.java
new file mode 100755
index 0000000..cb60cc1
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/AddItemsCommand.java
@@ -0,0 +1,161 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.commands;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class AddItemsCommand extends Command {
+
+	private XamlElement parent;
+	private String[] newItems;
+	private String[] oldItems;
+
+	public AddItemsCommand(XamlElement parent, String[] items) {
+		this.parent = parent;
+		this.newItems = items;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#canExecute()
+	 */
+	public boolean canExecute() {
+		return parent != null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#execute()
+	 */
+	public void execute() {
+		IMetaclass metaclass = XWTUtility.getMetaclass(parent);
+		if (metaclass == null || metaclass.findProperty("items") == null) {
+			return;
+		}
+		addItems(newItems);
+	}
+
+	private void addItems(String[] newItems) {
+		XamlAttribute itemsAttr = parent.getAttribute("items", IConstants.XWT_NAMESPACE);
+		XamlElement xArray = itemsAttr == null ? null : itemsAttr.getChild("Array", IConstants.XWT_X_NAMESPACE);
+		if (itemsAttr == null) {
+			itemsAttr = XamlFactory.eINSTANCE.createAttribute("items", IConstants.XWT_NAMESPACE);
+		}
+		if (newItems == null || newItems.length == 0) {
+			if (xArray != null) {
+				itemsAttr.getChildNodes().remove(xArray);
+			} else {
+				itemsAttr.getChildNodes().clear();
+			}
+			parent.getAttributes().remove(itemsAttr);
+			return;
+		}
+		List<XamlElement> oldItemsElements = new ArrayList<XamlElement>();
+		if (xArray != null) {
+			oldItemsElements.addAll(xArray.getChildNodes());
+		} else {
+			oldItemsElements.addAll(itemsAttr.getChildNodes());
+		}
+		List<String> items = new ArrayList<String>();
+		for (XamlElement xamlElement : oldItemsElements) {
+			items.add(xamlElement.getValue());
+		}
+		if (!items.isEmpty()) {
+			oldItems = items.toArray(new String[0]);
+		}
+		if (Arrays.deepEquals(newItems, oldItems)) {
+			return;
+		}
+
+		// 1. Create new ones.
+		if (oldItemsElements.isEmpty()) {
+			for (int i = 0; i < newItems.length; i++) {
+				String item = newItems[i];
+				XamlElement itemElement = XamlFactory.eINSTANCE.createElement("String", "clr-namespace:java.lang");
+				itemElement.setValue(item);
+				if (xArray != null) {
+					xArray.getChildNodes().add(itemElement);
+				} else {
+					itemsAttr.getChildNodes().add(itemElement);
+				}
+			}
+		}
+		// 2. Update old ones.
+		else {
+			List<XamlElement> removable = new ArrayList<XamlElement>(oldItemsElements);
+			for (int i = 0; i < newItems.length; i++) {
+				String item = newItems[i];
+				XamlElement itemElement = null;
+				try {
+					itemElement = oldItemsElements.get(i);
+				} catch (Exception e) {
+				}
+				if (itemElement == null) {
+					itemElement = XamlFactory.eINSTANCE.createElement("String", "clr-namespace:java.lang");
+				}
+				removable.remove(itemElement);
+				itemElement.setValue(item);
+				if (xArray != null) {
+					if (!xArray.getChildNodes().contains(itemElement)) {
+						xArray.getChildNodes().add(itemElement);
+					}
+				} else if (!itemsAttr.getChildNodes().contains(itemElement)) {
+					itemsAttr.getChildNodes().add(itemElement);
+				}
+			}
+			for (XamlElement remove : removable) {
+				if (xArray != null) {
+					xArray.getChildNodes().remove(remove);
+				} else {
+					itemsAttr.getChildNodes().remove(remove);
+				}
+			}
+		}
+		if (!parent.getAttributes().contains(itemsAttr)) {
+			parent.getAttributes().add(itemsAttr);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#canUndo()
+	 */
+	public boolean canUndo() {
+		return parent != null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#undo()
+	 */
+	public void undo() {
+		addItems(oldItems);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/AddNewChildCommand.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/AddNewChildCommand.java
new file mode 100755
index 0000000..d00a0f4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/AddNewChildCommand.java
@@ -0,0 +1,116 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.commands;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class AddNewChildCommand extends Command {
+	private XamlNode parent;
+	private XamlNode child;
+	private int index;
+
+	public AddNewChildCommand(XamlNode parent, XamlNode child) {
+		this(parent, child, -1);
+	}
+
+	public AddNewChildCommand(XamlNode parent, XamlNode child, int index) {
+		this.parent = parent;
+		this.child = child;
+		this.index = index;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#canExecute()
+	 */
+	public boolean canExecute() {
+		return parent != null && child != null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#execute()
+	 */
+	public void execute() {
+		if (child instanceof XamlElement) {
+			XamlElement element = (XamlElement) child;
+			if (index >= 0 && index < parent.getChildNodes().size()) {
+				parent.getChildNodes().add(index, element);
+			} else {
+				parent.getChildNodes().add(element);
+			}
+		} else if (child instanceof XamlAttribute) {
+			XamlAttribute attr = (XamlAttribute) child;
+			String name = attr.getName();
+			String prefix = attr.getPrefix();
+			XamlDocument ownerDocument = parent.getOwnerDocument();
+			String namespace = IConstants.XWT_NAMESPACE;
+			if (ownerDocument != null) {
+				namespace = ownerDocument.getDeclaredNamespace(prefix);
+			}
+			XamlAttribute oldAttr = parent.getAttribute(name, namespace);
+			if (oldAttr != null) {
+				parent.getAttributes().remove(oldAttr);
+			}
+			parent.getAttributes().add((XamlAttribute) child);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#canUndo()
+	 */
+	public boolean canUndo() {
+		return parent != null && child != null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#undo()
+	 */
+	public void undo() {
+		if (child instanceof XamlElement) {
+			parent.getChildNodes().remove(child);
+		} else if (child instanceof XamlAttribute) {
+			parent.getAttributes().remove(child);
+		}
+	}
+
+	public int getIndex() {
+		return index;
+	}
+	
+	public XamlNode getParent() {
+		return parent;
+	}
+
+	public XamlNode getChild() {
+		return child;
+	}
+
+	public void setIndex(int index) {
+		this.index = index;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ApplyAttributeSettingCommand.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ApplyAttributeSettingCommand.java
new file mode 100755
index 0000000..d99f253
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ApplyAttributeSettingCommand.java
@@ -0,0 +1,131 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.commands;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class ApplyAttributeSettingCommand extends Command {
+
+	private XamlNode parent;
+	private String attributeName;
+	private String namespace;
+	private String oldValue;
+	private String newValue;
+	private boolean isCreation = false;
+	private XamlAttribute attr;
+
+	public ApplyAttributeSettingCommand(XamlNode parent, String attributeName, String namespace, String newValue) {
+		super("Set " + attributeName);
+		this.parent = parent;
+		this.attributeName = attributeName;
+		this.namespace = namespace;
+		this.newValue = newValue;
+	}
+
+	public ApplyAttributeSettingCommand(XamlNode parent, XamlAttribute attr, String value) {
+		this(parent, attr.getName(), attr.getNamespace(), value);
+		this.attr = attr;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#canExecute()
+	 */
+	public boolean canExecute() {
+		if (attr == null) {
+			if (parent != null && attributeName != null) {
+				attr = parent.getAttribute(attributeName, namespace);
+			}
+		}
+		if (attr != null) {
+			return newValue == null ? attr.getValue() != null : !newValue
+					.equals(attr.getValue());
+		}
+		return true;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#canUndo()
+	 */
+	public boolean canUndo() {
+		if (isCreation && parent != null) {
+			return attr != null;
+		}
+		return attr != null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#execute()
+	 */
+	public void execute() {
+		if (attr == null) {
+			attr = parent.getAttribute(attributeName, namespace);
+		}
+		if (attr == null) {
+			attr = XamlFactory.eINSTANCE.createAttribute(attributeName, namespace);
+		} else {
+			oldValue = attr.getValue();
+		}
+		if (newValue == null || newValue.length() == 0) {
+			if (parent != null) {
+				parent.getAttributes().remove(attr);
+				return;
+			}
+		}
+		attr.setValue(newValue);
+		isCreation = attr.eContainer() == null || (parent != null && attr.eContainer() != parent);
+		if (parent != null && isCreation) {
+			parent.getAttributes().add(attr);
+		}
+	}
+
+	public XamlAttribute getAttribute() {
+		return attr;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#undo()
+	 */
+	public void undo() {
+		if (isCreation && parent != null) {
+			parent.getAttributes().remove(attr);
+		}
+		if (attr != null) {
+			if (oldValue != null) {
+				attr.setValue(oldValue);
+			} else {
+				attr.setValue(null);
+				attr.setUseFlatValue(true);
+				parent.getAttributes().remove(attr);
+				parent.getAttributes().add(attr);
+			}
+		}
+	}
+
+	public static Command createCommand(XamlNode parent, String attrName, String namespace, String newValue) {
+		return new ApplyAttributeSettingCommand(parent, attrName, namespace, newValue);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/AttachedPropertyCreateCommand.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/AttachedPropertyCreateCommand.java
new file mode 100755
index 0000000..495e70c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/AttachedPropertyCreateCommand.java
@@ -0,0 +1,78 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.commands;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.xwt.tools.ui.designer.parts.CoolItemEditPart;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class AttachedPropertyCreateCommand extends AbstractCreateCommand {
+
+	private String attachedProperty;
+	private XamlAttribute attachedAttr;
+
+	public AttachedPropertyCreateCommand(EditPart parent, CreateRequest createRequest, String attachedProperty) {
+		super(parent, createRequest);
+		this.attachedProperty = attachedProperty;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.commands.AbstractCreateCommand#preExecute (org.soyatec.tools.designer.xaml.XamlNode, org.eclipse.gef.requests.CreateRequest)
+	 */
+	protected void preExecute(XamlNode newNode, CreateRequest createRequest) {
+		attachedAttr = getParentModel().getAttribute(attachedProperty);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seecom.soyatec.xwt.tools.ui.designer.commands.AbstractCreateCommand# createCreateCommand(org.soyatec.tools.designer.xaml.XamlNode, org.soyatec.tools.designer.xaml.XamlNode)
+	 */
+	protected Command createCreateCommand(XamlNode parent, XamlNode child) {
+		XamlNode newParent = parent;
+		XamlNode newChild = child;
+		if (attachedAttr == null) {
+			newChild = attachedAttr = XamlFactory.eINSTANCE.createAttribute(attachedProperty, IConstants.XWT_NAMESPACE);
+			if (child instanceof XamlElement) {
+				attachedAttr.getChildNodes().add((XamlElement) child);
+			}
+		} else {
+			newParent = attachedAttr;
+			attachedAttr.getChildNodes().clear();
+		}
+		return new AddNewChildCommand(newParent, newChild);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.commands.AbstractCreateCommand#canExecute ()
+	 */
+	public boolean canExecute() {
+		if (parent instanceof CoolItemEditPart) {
+			return parent != null && getParentModel() != null && helper.canCreate(parent) && attachedProperty != null;
+		}
+		return parent != null && getParentModel() != null && helper.canCreate(parent.getParent()) && attachedProperty != null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/BindingCreateCommand.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/BindingCreateCommand.java
new file mode 100755
index 0000000..adea576
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/BindingCreateCommand.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.commands;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.requests.CreateConnectionRequest;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class BindingCreateCommand extends Command {
+
+	private CreateConnectionRequest request;
+
+	public BindingCreateCommand(CreateConnectionRequest request) {
+		setLabel("Create Binding");
+		this.request = request;
+	}
+
+	public void execute() {
+		// TODO:
+		System.out.println(request);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/BindingReconnectCommand.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/BindingReconnectCommand.java
new file mode 100755
index 0000000..a752a0c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/BindingReconnectCommand.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.commands;
+
+import org.eclipse.gef.ConnectionEditPart;
+import org.eclipse.gef.NodeEditPart;
+import org.eclipse.gef.commands.Command;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class BindingReconnectCommand extends Command {
+
+	private ConnectionEditPart connection;
+	private NodeEditPart source;
+	private NodeEditPart target;
+
+	public BindingReconnectCommand(ConnectionEditPart connection) {
+		this.connection = connection;
+		setLabel("Reconnect Source");
+	}
+
+	public boolean canExecute() {
+		return connection != null && (source != null || target != null);
+	}
+
+	public void execute() {
+		// TODO:
+	}
+
+	public void setTarget(NodeEditPart target) {
+		this.target = target;
+	}
+
+	public NodeEditPart getTarget() {
+		return target;
+	}
+
+	public void setSource(NodeEditPart source) {
+		this.source = source;
+	}
+
+	public NodeEditPart getSource() {
+		return source;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ChangeConstraintCommand.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ChangeConstraintCommand.java
new file mode 100755
index 0000000..1392e23
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ChangeConstraintCommand.java
@@ -0,0 +1,209 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.commands;
+
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.xwt.tools.ui.designer.core.util.StringUtil;
+import org.eclipse.xwt.tools.ui.designer.core.util.swt.SWTTools;
+import org.eclipse.xwt.tools.ui.designer.parts.ControlEditPart;
+import org.eclipse.xwt.tools.ui.designer.utils.OffsetUtil;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTModelUtil;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ChangeConstraintCommand extends Command {
+
+	private EditPart editPart;
+	private XamlNode model;
+	private Rectangle constraint;
+
+	private boolean transform;
+	private CompoundCommand changeBoundCommand;
+
+	public ChangeConstraintCommand(EditPart editPart, Rectangle constraint) {
+		this(editPart, constraint, false);
+	}
+
+	public ChangeConstraintCommand(EditPart editPart, Rectangle constraint, boolean transform) {
+		this.editPart = editPart;
+		this.constraint = constraint;
+		this.transform = transform;
+	}
+
+	ChangeConstraintCommand(XamlNode model, Rectangle constraint) {
+		this((EditPart) null, constraint);
+		this.model = model;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#canExecute()
+	 */
+	public boolean canExecute() {
+		if (editPart != null) {
+			model = (XamlNode) editPart.getModel();
+		}
+		return model != null;
+	}
+
+	private int getXOffset() {
+		if (editPart == null) {
+			return 0;
+		}
+		/*
+		 * Fixed bug: http://www.soyatec.cn/bugs/view.php?id=813, When the root is not a Shell, the parent host maybe the Diagram directly, we should found the correctly Scrollable Parent to compute the offset value.
+		 */
+		if (editPart instanceof ControlEditPart) {
+			Control control = (Control) ((ControlEditPart) editPart).getWidget();
+			if (control != null) {
+				Composite parent = control.getParent();
+				if (parent instanceof Group) {
+					return 0;
+				} else {
+					return SWTTools.getOffset(parent).x;
+				}
+			}
+		}
+		return OffsetUtil.getXOffset(editPart.getParent());
+	}
+
+	private int getYOffset() {
+		if (editPart == null) {
+			return 0;
+		}
+		/*
+		 * Fixed bug: http://www.soyatec.cn/bugs/view.php?id=813, When the root is not a Shell, the parent host maybe the Diagram directly, we should found the correctly Scrollable Parent to compute the offset value.
+		 */
+		if (editPart instanceof ControlEditPart) {
+			Control control = (Control) ((ControlEditPart) editPart).getWidget();
+			if (control != null) {
+				Composite parent = control.getParent();
+				if (parent instanceof Group) {
+					return 0;
+				} else {
+					return SWTTools.getOffset(parent).y;
+				}
+			}
+		}
+		return OffsetUtil.getYOffset(editPart.getParent());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#execute()
+	 */
+	public void execute() {
+		IMetaclass metaclass = XWTUtility.getMetaclass(model);
+		if (metaclass == null) {
+			return;
+		}
+		changeBoundCommand = new CompoundCommand("Change Bounds");
+
+		XamlAttribute bounds = XWTModelUtil.getChildAttribute(model, "bounds", IConstants.XWT_NAMESPACE);
+		XamlAttribute location = XWTModelUtil.getChildAttribute(model, "location", IConstants.XWT_NAMESPACE);
+		XamlAttribute size = XWTModelUtil.getChildAttribute(model, "size", IConstants.XWT_NAMESPACE);
+
+		XamlNode boundsParent = null, locationParent = null, sizeParent = null;
+		Class<?> type = metaclass.getType();
+		if (Viewer.class.isAssignableFrom(type)) {
+			XamlNode controlNode = null;
+			if (bounds != null) {
+				controlNode = boundsParent = (XamlNode) bounds.eContainer();
+			}
+			if (size != null) {
+				controlNode = sizeParent = (XamlNode) size.eContainer();
+			}
+			if (location != null) {
+				controlNode = locationParent = (XamlNode) location.eContainer();
+			}
+			if (controlNode == null) {
+				controlNode = XamlFactory.eINSTANCE.createAttribute("control", IConstants.XWT_NAMESPACE);
+				changeBoundCommand.add(new AddNewChildCommand(model, controlNode));
+			}
+			if (boundsParent == null) {
+				boundsParent = controlNode;
+			}
+			if (sizeParent == null) {
+				sizeParent = controlNode;
+			}
+			if (locationParent == null) {
+				locationParent = controlNode;
+			}
+		} else {
+			boundsParent = locationParent = sizeParent = model;
+		}
+
+		Rectangle r = (Rectangle) constraint;
+		if (transform) {
+			r.x = r.x - getXOffset();
+			r.y = r.y - getYOffset();
+		}
+
+		String boundsValue = StringUtil.format(r);
+		String locationValue = StringUtil.format(r.getLocation());
+		String sizeValue = StringUtil.format(r.getSize());
+
+		Command createBounds = ApplyAttributeSettingCommand.createCommand(boundsParent, "bounds", IConstants.XWT_NAMESPACE, boundsValue);
+		Command createLocation = ApplyAttributeSettingCommand.createCommand(locationParent, "location", IConstants.XWT_NAMESPACE, locationValue);
+		Command createSize = ApplyAttributeSettingCommand.createCommand(sizeParent, "size", IConstants.XWT_NAMESPACE, sizeValue);
+		if (bounds == null) {
+			if (location == null && size == null) {
+				changeBoundCommand.add(createBounds);
+			} else {
+				changeBoundCommand.add(createSize);
+				changeBoundCommand.add(createLocation);
+			}
+		} else {
+			changeBoundCommand.add(createBounds);
+			if (location != null) {
+				changeBoundCommand.add(createLocation);
+			}
+			if (size != null) {
+				changeBoundCommand.add(createSize);
+			}
+		}
+		if (changeBoundCommand.canExecute()) {
+			changeBoundCommand.execute();
+		}
+	}
+
+	/**
+	 * @see org.eclipse.gef.commands.Command#undo()
+	 */
+	public void undo() {
+		changeBoundCommand.undo();
+	}
+
+	/**
+	 * @see org.eclipse.gef.commands.Command#canUndo()
+	 */
+	public boolean canUndo() {
+		return changeBoundCommand != null && changeBoundCommand.canUndo();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ChangeLayoutCommand.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ChangeLayoutCommand.java
new file mode 100755
index 0000000..c6eeb76
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ChangeLayoutCommand.java
@@ -0,0 +1,211 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.commands;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.xwt.tools.ui.designer.core.parts.VisualEditPart;
+import org.eclipse.xwt.tools.ui.designer.core.visuals.IVisualInfo;
+import org.eclipse.xwt.tools.ui.designer.core.visuals.swt.CompositeInfo;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
+import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
+import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+
+/**
+ * @author rui.ban rui.ban@soyatec.com
+ */
+public class ChangeLayoutCommand extends Command {
+
+	private LayoutType layoutType;
+	private EditPart editPart;
+	private XamlElement element;
+	private XamlAttribute layoutAttr;
+	private XamlElement newLayout;
+	private XamlElement oldLayout;
+	private boolean isNewAttr;
+
+	/**
+	 * @param editPart
+	 * @param text
+	 */
+	public ChangeLayoutCommand(EditPart editPart, LayoutType layoutType) {
+		this.editPart = editPart;
+		this.layoutType = layoutType;
+	}
+
+	/**
+	 * @see org.eclipse.gef.commands.Command#canExecute()
+	 */
+	public boolean canExecute() {
+		if (editPart == null || !(editPart instanceof CompositeEditPart)) {
+			return false;
+		}
+		if (layoutType == null || layoutType == LayoutsHelper.getLayoutType(editPart)) {
+			return false;
+		}
+		return editPart.getModel() instanceof XamlElement;
+	}
+
+	/**
+	 * @see org.eclipse.gef.commands.Command#execute()
+	 */
+	public void execute() {
+		element = (XamlElement) editPart.getModel();
+		updateLayoutData(element, layoutType);
+		layoutAttr = element.getAttribute("layout");
+		if (layoutType == LayoutType.NullLayout) {
+			element.getAttributes().remove(layoutAttr);
+			return;
+		}
+		if (layoutAttr == null) {
+			layoutAttr = XamlFactory.eINSTANCE.createAttribute("layout", IConstants.XWT_NAMESPACE);
+			isNewAttr = true;
+		}
+		EList<XamlElement> childNodes = layoutAttr.getChildNodes();
+		if (childNodes.size() == 1) {
+			oldLayout = childNodes.get(0);
+		}
+		childNodes.clear();
+		if (layoutType != LayoutType.NullLayout) {
+			newLayout = XamlFactory.eINSTANCE.createElement(layoutType.value(), IConstants.XWT_NAMESPACE);
+			childNodes.add(newLayout);
+		}
+		if (isNewAttr && layoutType != LayoutType.NullLayout) {
+			element.getAttributes().add(layoutAttr);
+		}
+	}
+
+	/**
+	 * @see org.eclipse.gef.commands.Command#canUndo()
+	 */
+	public boolean canUndo() {
+		if (element == null) {
+			return false;
+		}
+		if (isNewAttr) {
+			return layoutAttr != null;
+		}
+		return layoutAttr != null && oldLayout != null;
+	}
+
+	/**
+	 * @see org.eclipse.gef.commands.Command#undo()
+	 */
+	public void undo() {
+		if (isNewAttr) {
+			element.getAttributes().remove(layoutAttr);
+		} else if (oldLayout != null) {
+			layoutAttr.getChildNodes().clear();
+			layoutAttr.getChildNodes().add(oldLayout);
+		} else if (layoutAttr != null && element.getAttribute("layout", IConstants.XWT_NAMESPACE) == null) {
+			element.getAttributes().add(layoutAttr);
+		}
+	}
+
+	private void updateLayoutData(XamlElement element, LayoutType layoutType) {
+		if (element == null) {
+			return;
+		}
+		if (layoutType != LayoutType.NullLayout) {
+			// just remove them.
+			EList<XamlElement> childNodes = element.getChildNodes();
+			for (XamlElement subElement : childNodes) {
+				XamlAttribute attribute = subElement.getAttribute("layoutData");
+				if (attribute != null) {
+					subElement.getAttributes().remove(attribute);
+				}
+			}
+		} else if (editPart != null && editPart instanceof VisualEditPart) {
+			IVisualInfo visualInfo = ((VisualEditPart) editPart).getVisualInfo();
+			Composite parent = null;
+			if (visualInfo != null && visualInfo instanceof CompositeInfo) {
+				parent = (Composite) ((CompositeInfo) visualInfo).getVisualObject();
+			}
+			if (parent == null || parent.isDisposed()) {
+				return;
+			}
+			Map<Object, Control> model2control = new HashMap<Object, Control>();
+			for (Control child : parent.getChildren()) {
+				model2control.put(XWTProxy.getModel(child), child);
+			}
+			EList<XamlElement> childNodes = element.getChildNodes();
+			for (XamlElement xamlElement : childNodes) {
+				Control control = model2control.get(xamlElement);
+				IMetaclass metaclass = XWTUtility.getMetaclass(xamlElement);
+				if (metaclass == null || !Control.class.isAssignableFrom(metaclass.getType()) || control == null) {
+					continue;
+				}
+				Rectangle r = control.getBounds();
+				boolean boundsNoExisted = true, sizeNoExisted = true, locationNoExisted = true;
+				XamlAttribute boundsAttr = xamlElement.getAttribute("bounds");
+				if (boundsAttr != null) {
+					boundsAttr.setValue(toString(r));
+					boundsNoExisted = false;
+				}
+				XamlAttribute sizeAttr = xamlElement.getAttribute("size");
+				if (sizeAttr != null) {
+					sizeAttr.setValue(toString(new Point(r.width, r.height)));
+					sizeNoExisted = false;
+				}
+				XamlAttribute locationAttr = xamlElement.getAttribute("location");
+				if (locationAttr != null) {
+					locationAttr.setValue(toString(new Point(r.x, r.y)));
+					locationNoExisted = false;
+				}
+
+				if (boundsNoExisted && sizeNoExisted && locationNoExisted) {
+					boundsAttr = XamlFactory.eINSTANCE.createAttribute("bounds", IConstants.XWT_NAMESPACE);
+					boundsAttr.setValue(toString(r));
+					xamlElement.getAttributes().add(boundsAttr);
+				} else if (boundsNoExisted && sizeNoExisted) {
+					sizeAttr = XamlFactory.eINSTANCE.createAttribute("size", IConstants.XWT_NAMESPACE);
+					sizeAttr.setValue(toString(new Point(r.width, r.height)));
+					xamlElement.getAttributes().add(sizeAttr);
+				} else if (boundsNoExisted && locationNoExisted) {
+					locationAttr = XamlFactory.eINSTANCE.createAttribute("location", IConstants.XWT_NAMESPACE);
+					locationAttr.setValue(toString(new Point(r.x, r.y)));
+					xamlElement.getAttributes().add(locationAttr);
+				}
+			}
+		}
+	}
+
+	private String toString(Object object) {
+		if (object == null) {
+			return null;
+		}
+		if (object instanceof Rectangle) {
+			Rectangle r = (Rectangle) object;
+			return r.x + "," + r.y + "," + r.width + "," + r.height;
+		} else if (object instanceof Point) {
+			Point p = (Point) object;
+			return p.x + "," + p.y;
+		}
+		return object.toString();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ChangeWeightsCommand.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ChangeWeightsCommand.java
new file mode 100755
index 0000000..61f00f7
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ChangeWeightsCommand.java
@@ -0,0 +1,207 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.commands;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.requests.ChangeBoundsRequest;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Sash;
+import org.eclipse.xwt.tools.ui.designer.XWTDesignerPlugin;
+import org.eclipse.xwt.tools.ui.designer.core.parts.VisualEditPart;
+import org.eclipse.xwt.tools.ui.designer.core.util.StringUtil;
+import org.eclipse.xwt.tools.ui.designer.core.util.swt.SWTTools;
+import org.eclipse.xwt.tools.ui.designer.core.visuals.IVisualInfo;
+import org.eclipse.xwt.tools.ui.designer.parts.SashFormEditPart;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jin.liu (jin.liu@soyatec.com)
+ * 
+ */
+public class ChangeWeightsCommand extends Command {
+	private SashFormEditPart parent;
+	private ChangeBoundsRequest request;
+	private Command command;
+	private Integer[] weights;
+
+	public ChangeWeightsCommand(SashFormEditPart parent,
+			ChangeBoundsRequest request) {
+		super("Change Weights");
+		this.parent = parent;
+		this.request = request;
+	}
+
+	public boolean canExecute() {
+		if (parent == null || request == null || request.getEditParts() == null) {
+			return false;
+		}
+		IVisualInfo visualInfo = ((VisualEditPart) parent).getVisualInfo();
+		SashForm sashForm = (SashForm) visualInfo.getVisualObject();
+		weights = computeWeights(sashForm);
+		if (weights == null) {
+			return false;
+		}
+		for (Integer integer : weights) {
+			if (integer == null || integer.intValue() < 0) {
+				return false;
+			}
+		}
+		return true;
+	}
+
+	public void execute() {
+		command = new ApplyAttributeSettingCommand(
+				(XamlNode) parent.getModel(), "weights",
+				IConstants.XWT_NAMESPACE, StringUtil.format(weights));
+		command.execute();
+	}
+
+	public boolean canUndo() {
+		return command != null && command.canUndo();
+	}
+
+	public void undo() {
+		command.undo();
+	}
+
+	private VisualEditPart getEditPart() {
+		List<VisualEditPart> editParts = new ArrayList<VisualEditPart>(request
+				.getEditParts());
+		if (editParts.size() > 0) {
+			return editParts.get(0);
+		}
+		return null;
+	}
+
+	private Integer[] computeWeights(SashForm sashForm) {
+
+		int[] weights = sashForm.getWeights();
+		int[] newWeights = weights;
+
+		VisualEditPart editPart = getEditPart();
+		if (editPart != null) {
+			XamlNode parentNode = (XamlNode) parent.getModel();
+			int index = parentNode.getChildNodes().indexOf(editPart.getModel());
+			Object visualObject = editPart.getVisualInfo().getVisualObject();
+			if (index != -1) {
+				int resizeDirection = request.getResizeDirection();
+				Dimension sizeDelta = request.getSizeDelta();
+				int offset = getResizeOffset((Control) visualObject, null,
+						newWeights, index, sizeDelta.width, sizeDelta.height,
+						resizeDirection == PositionConstants.EAST
+								|| resizeDirection == PositionConstants.WEST);
+				for (int i = 0; i < newWeights.length; i++) {
+					if (i == index) {
+						newWeights[i] += offset;
+					} else {
+						newWeights[i] -= offset / (newWeights.length - 1);
+					}
+				}
+			}
+			// SashEditPart.
+			else {
+				Sash sash = (Sash) visualObject;
+				int sashIndex = getSashIndex(sashForm, sash);
+				org.eclipse.draw2d.geometry.Point moveDelta = request
+						.getMoveDelta();
+				boolean horizontal = (sash.getStyle() & SWT.VERTICAL) != 0;
+				Control[] controls = getControls(sashForm);
+				if (controls != null) {
+					int resizeOffset = getResizeOffset(controls[sashIndex], sash, 
+							newWeights, sashIndex, moveDelta.x, moveDelta.y,
+							horizontal);
+					newWeights[sashIndex] += resizeOffset;
+					newWeights[sashIndex + 1] -= resizeOffset;
+				}
+			}
+		}
+		List<Integer> ws = new ArrayList<Integer>();
+		for (int i = 0; i < newWeights.length; i++) {
+			ws.add(newWeights[i]);
+		}
+		return ws.toArray(new Integer[ws.size()]);
+	}
+
+	private int getSashIndex(SashForm sashForm, Sash sash) {
+		try {
+			Field field = SashForm.class.getDeclaredField("sashes");
+			field.setAccessible(true);
+			Sash[] sashes = (Sash[]) field.get(sashForm);
+			for (int i = 0; i < sashes.length; i++) {
+				if (sashes[i].equals(sash)) {
+					return i;
+				}
+			}
+		} catch (Exception e) {
+			XWTDesignerPlugin.logError(e);
+		}
+		return -1;
+	}
+
+	private Control[] getControls(SashForm sashForm) {
+		try {
+			Field field = SashForm.class.getDeclaredField("controls");
+			field.setAccessible(true);
+			return (Control[]) field.get(sashForm);
+		} catch (Exception e) {
+		}
+		return null;
+	}
+
+	private int getResizeOffset(Control control, Sash sash, int[] weights, int index,
+			int x, int y, boolean horizontal) {
+		float total = 0;
+		for (int i : weights) {
+			total += i;
+		}
+
+		Rectangle bounds = SWTTools.getBounds(control);
+				
+		if (horizontal) {
+			int w = bounds.width;
+			if (sash != null) {
+				// in case the child doesn't fill the cell
+				Rectangle sashBounds = SWTTools.getBounds(sash);
+				w = Math.max(w, sashBounds.x - bounds.x);
+			}
+			float percent = weights[index] / total;
+			float width = (w / percent);
+			float newPercent = (w + x) / width;
+			int newWeight = (int) (total * newPercent);
+			return newWeight - weights[index];
+		} else {
+			int h = bounds.height;
+			if (sash != null) {
+				// in case the child doesn't fill the cell
+				Rectangle sashBounds = SWTTools.getBounds(sash);
+				h = Math.max(h, sashBounds.y - bounds.y);
+			}
+			
+			float percent = weights[index] / total;
+			float height = (h / percent);
+			float newPercent = (h + y) / height;
+			int newWeight = (int) (total * newPercent);
+			return newWeight - weights[index];
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/CoolBarInsertCreateCommand.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/CoolBarInsertCreateCommand.java
new file mode 100755
index 0000000..ee0e513
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/CoolBarInsertCreateCommand.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.commands;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.requests.CreateRequest;
+
+public class CoolBarInsertCreateCommand extends InsertCreateCommand {
+
+	public CoolBarInsertCreateCommand(EditPart parent, EditPart after, CreateRequest createRequest) {
+		super(parent, after, createRequest);
+	}
+
+	public boolean canExecute() {
+		Class<?> s = (Class<?>) helper.getCreateType();
+		return parent != null && getParentModel() != null && s.getCanonicalName().equals("org.eclipse.swt.widgets.CoolItem");
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/DefaultCreateCommand.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/DefaultCreateCommand.java
new file mode 100755
index 0000000..b7bf8b7
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/DefaultCreateCommand.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.commands;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class DefaultCreateCommand extends AbstractCreateCommand {
+
+	/**
+	 * @param parent
+	 * @param createRequest
+	 */
+	public DefaultCreateCommand(EditPart parent, CreateRequest createRequest) {
+		super(parent, createRequest);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.commands.AbstractCreateCommand#preExecute(org.soyatec.tools.designer.xaml.XamlNode, org.eclipse.gef.requests.CreateRequest)
+	 */
+	protected void preExecute(XamlNode newNode, CreateRequest createRequest) {
+		// Do nothing here.
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/DeleteCommand.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/DeleteCommand.java
new file mode 100755
index 0000000..415c1ef
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/DeleteCommand.java
@@ -0,0 +1,133 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.commands;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class DeleteCommand extends Command {
+	private List<XamlNode> deleteNodes;
+	private Map<EObject, DeleteData> deletedObjects = new HashMap<EObject, DeleteData>(1);
+
+	public DeleteCommand(List deleteNodes) {
+		this.deleteNodes = convertNodes(deleteNodes);
+	}
+
+	public DeleteCommand(XamlNode singleNode) {
+		this(Collections.singletonList(singleNode));
+	}
+
+	/**
+	 * @param deleteNodes
+	 * @return
+	 */
+	private List<XamlNode> convertNodes(List deleteNodes) {
+		if (deleteNodes == null) {
+			return null;
+		}
+		List<XamlNode> nodes = new ArrayList<XamlNode>();
+		for (Iterator iterator = deleteNodes.iterator(); iterator.hasNext();) {
+			Object obj = (Object) iterator.next();
+			if (obj instanceof EditPart) {
+				obj = ((EditPart) obj).getModel();
+			}
+			if (obj instanceof XamlNode) {
+				nodes.add((XamlNode) obj);
+			}
+		}
+		return nodes;
+	}
+
+	public boolean canExecute() {
+		return deleteNodes != null && !deleteNodes.isEmpty();
+	}
+
+	public void execute() {
+		for (XamlNode deleted : deleteNodes) {
+			DeleteData dd = new DeleteData();
+			dd.parent = (EObject) deleted.eContainer();
+			if (deleted instanceof XamlElement) {
+				if (dd.parent instanceof XamlNode) {
+					dd.index = ((XamlNode) dd.parent).getChildNodes().indexOf(deleted);
+					if (dd.index > -1) {
+						((XamlNode) dd.parent).getChildNodes().remove(dd.index);
+					}
+				} else if (dd.parent instanceof XamlDocument) {
+					((XamlDocument) dd.parent).setRootElement(null);
+				}
+			} else if (deleted instanceof XamlAttribute && dd.parent instanceof XamlNode) {
+				dd.index = ((XamlNode) dd.parent).getAttributes().indexOf(deleted);
+				if (dd.index > -1) {
+					((XamlNode) dd.parent).getAttributes().remove(dd.index);
+				}
+			}
+			deletedObjects.put(deleted, dd);
+		}
+	}
+
+	public boolean canUndo() {
+		return !deletedObjects.isEmpty();
+	}
+
+	public void undo() {
+		Set<EObject> deletedKeys = deletedObjects.keySet();
+		for (EObject deleted : deletedKeys) {
+			DeleteData dd = deletedObjects.get(deleted);
+			if (dd == null) {
+				continue;
+			}
+			EObject parent = dd.parent;
+			int index = dd.index;
+			if (deleted instanceof XamlElement) {
+				if (parent instanceof XamlNode) {
+					if (index > -1) {
+						((XamlNode) parent).getChildNodes().add(index, (XamlElement) deleted);
+					} else {
+						((XamlNode) parent).getChildNodes().add((XamlElement) deleted);
+					}
+				} else if (parent instanceof XamlDocument) {
+					((XamlDocument) parent).setRootElement((XamlElement) deleted);
+				}
+			} else if (deleted instanceof XamlAttribute && parent instanceof XamlNode) {
+				if (index > -1) {
+					((XamlNode) parent).getAttributes().add(index, (XamlAttribute) deleted);
+				} else {
+					((XamlNode) parent).getAttributes().add((XamlAttribute) deleted);
+				}
+			}
+		}
+		deletedKeys.clear();
+		deletedObjects.clear();
+	}
+
+	private static class DeleteData {
+		EObject parent;
+		int index = -1;
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/FormDataCreateCommand.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/FormDataCreateCommand.java
new file mode 100755
index 0000000..067de65
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/FormDataCreateCommand.java
@@ -0,0 +1,223 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.commands;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class FormDataCreateCommand extends Command {
+
+	private EditPart parent;
+	private FormData formData;
+	private Command command;
+	private XamlNode forCreate;
+	static int i = 0;
+	private CompoundCommand commandList;
+
+	public FormDataCreateCommand(EditPart parent, XamlNode forCreate, FormData formData) {
+		this.parent = parent;
+		this.forCreate = forCreate;
+		this.formData = formData;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#canExecute()
+	 */
+	public boolean canExecute() {
+		return parent != null && formData != null && forCreate != null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#execute()
+	 */
+	public void execute() {
+		System.out.println(formData.toString());
+		commandList = new CompoundCommand();
+		XamlNode parentNode = (XamlNode) parent.getModel();
+		XamlAttribute layoutDataAttr = forCreate.getAttribute("layoutData", IConstants.XWT_NAMESPACE);
+		if (layoutDataAttr == null) {
+			layoutDataAttr = XamlFactory.eINSTANCE.createAttribute("layoutData", IConstants.XWT_NAMESPACE);
+		}
+		XamlElement formDataChild = layoutDataAttr.getChild("FormData", IConstants.XWT_NAMESPACE);
+		if (formDataChild == null) {
+			formDataChild = XamlFactory.eINSTANCE.createElement("FormData", IConstants.XWT_NAMESPACE);
+		}
+		// 1. width and height
+		if (formData.width != SWT.DEFAULT) {
+			ApplyAttributeSettingCommand command = new ApplyAttributeSettingCommand(formDataChild, "width", IConstants.XWT_NAMESPACE, Integer.toString(formData.width));
+			addCommand(command);
+		}
+		if (formData.height != SWT.DEFAULT) {
+			ApplyAttributeSettingCommand command = new ApplyAttributeSettingCommand(formDataChild, "height", IConstants.XWT_NAMESPACE, Integer.toString(formData.height));
+			addCommand(command);
+		}
+		// 2. left, top, right and bottom.
+		computeFormDataCommand(formDataChild, formData.left, "left");
+		computeFormDataCommand(formDataChild, formData.top, "top");
+		computeFormDataCommand(formDataChild, formData.right, "right");
+		computeFormDataCommand(formDataChild, formData.bottom, "bottom");
+		// compute commands.
+		addNewChild(layoutDataAttr, formDataChild);
+		addNewChild(forCreate, layoutDataAttr);
+		addNewChild(parentNode, forCreate);
+		command = commandList.unwrap();
+		if (command.canExecute()) {
+			command.execute();
+		}
+	}
+
+	private void computeFormDataCommand(XamlNode formDataChild, FormAttachment formAttachment, String name) {
+		XamlAttribute attachmentAttr = formDataChild.getAttribute(name, IConstants.XWT_NAMESPACE);
+		if (formAttachment != null) {
+			if (attachmentAttr == null) {
+				attachmentAttr = XamlFactory.eINSTANCE.createAttribute(name, IConstants.XWT_NAMESPACE);
+			}
+			computeAttatchCommand(attachmentAttr, formAttachment);
+			addNewChild(formDataChild, attachmentAttr);
+		} else if (attachmentAttr != null) {
+			addCommand(new DeleteCommand(attachmentAttr));
+		}
+	}
+
+	private void computeAttatchCommand(XamlAttribute parent, FormAttachment attachment) {
+		XamlElement attachmentChild = parent.getChild("FormAttachment", IConstants.XWT_NAMESPACE);
+		if (attachmentChild == null) {
+			attachmentChild = XamlFactory.eINSTANCE.createElement("FormAttachment", IConstants.XWT_NAMESPACE);
+		}
+		Control control = attachment.control;
+		if (control != null) {
+			String controlName = getName(control);
+			if (controlName == null) {
+				controlName = NamedCommand.generateName(control);
+				addCommand(new NamedCommand(control, controlName));
+			}
+			XamlAttribute controlAttr = attachmentChild.getAttribute("control", IConstants.XWT_NAMESPACE);
+			if (controlAttr == null) {
+				controlAttr = XamlFactory.eINSTANCE.createAttribute("control", IConstants.XWT_NAMESPACE);
+			}
+			XamlElement bindChild = controlAttr.getChild("Binding", IConstants.XWT_NAMESPACE);
+			if (bindChild == null) {
+				bindChild = XamlFactory.eINSTANCE.createElement("Binding", IConstants.XWT_NAMESPACE);
+			}
+			ApplyAttributeSettingCommand command = new ApplyAttributeSettingCommand(bindChild, "ElementName", IConstants.XWT_NAMESPACE, controlName);
+			addCommand(command);
+
+			addNewChild(controlAttr, bindChild);
+			addNewChild(attachmentChild, controlAttr);
+
+			/* if (attachment.alignment != SWT.DEFAULT) */{
+				String alignment = "SWT.DEFAULT";
+				switch (attachment.alignment) {
+				case SWT.TOP:
+					alignment = "SWT.TOP";
+					break;
+				case SWT.BOTTOM:
+					alignment = "SWT.BOTTOM";
+					break;
+				case SWT.RIGHT:
+					alignment = "SWT.RIGHT";
+					break;
+				case SWT.CENTER:
+					alignment = "SWT.CENTER";
+					break;
+				case SWT.LEFT:
+					alignment = "SWT.LEFT";
+					break;
+				}
+				command = new ApplyAttributeSettingCommand(attachmentChild, "alignment", IConstants.XWT_NAMESPACE, alignment);
+				addCommand(command);
+			}
+		} else {
+			addCommand(new DeleteCommand(attachmentChild.getAttribute("control")));
+		}
+		/* if (attachment.denominator != 100) */{
+			ApplyAttributeSettingCommand command = new ApplyAttributeSettingCommand(attachmentChild, "denominator", IConstants.XWT_NAMESPACE, Integer.toString(attachment.denominator));
+			addCommand(command);
+		}
+		/* if (attachment.numerator != 0) */{
+			ApplyAttributeSettingCommand command = new ApplyAttributeSettingCommand(attachmentChild, "numerator", IConstants.XWT_NAMESPACE, Integer.toString(attachment.numerator));
+			addCommand(command);
+		}
+		/* if (attachment.offset != 0) */{
+			ApplyAttributeSettingCommand command = new ApplyAttributeSettingCommand(attachmentChild, "offset", IConstants.XWT_NAMESPACE, Integer.toString(attachment.offset));
+			addCommand(command);
+		}
+		addNewChild(parent, attachmentChild);
+	}
+
+	private void addCommand(Command command) {
+		if (command == null || !command.canExecute()) {
+			return;
+		}
+		commandList.add(command);
+	}
+
+	private void addNewChild(XamlNode parent, XamlNode child) {
+		if (child instanceof XamlAttribute && !parent.getAttributes().contains(child)) {
+			commandList.add(new AddNewChildCommand(parent, child));
+		} else if (child instanceof XamlElement && !parent.getChildNodes().contains(child)) {
+			commandList.add(new AddNewChildCommand(parent, child));
+		}
+	}
+
+	private String getName(Control control) {
+		XamlNode model = XWTProxy.getModel(control);
+		if (model == null) {
+			return null;
+		}
+		XamlAttribute nameAttr = model.getAttribute("name", IConstants.XWT_NAMESPACE);
+		if (nameAttr == null) {
+			nameAttr = model.getAttribute("name", IConstants.XWT_X_NAMESPACE);
+		}
+		if (nameAttr != null) {
+			return nameAttr.getValue();
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#canUndo()
+	 */
+	public boolean canUndo() {
+		return command != null && command.canUndo();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#undo()
+	 */
+	public void undo() {
+		command.undo();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/FormDataDeleteCommand.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/FormDataDeleteCommand.java
new file mode 100755
index 0000000..d1e73e9
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/FormDataDeleteCommand.java
@@ -0,0 +1,110 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.commands;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.xwt.tools.ui.designer.core.util.Draw2dTools;
+import org.eclipse.xwt.tools.ui.designer.core.util.swt.SWTTools;
+import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
+import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
+import org.eclipse.xwt.tools.ui.designer.parts.ControlEditPart;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.form.FormLayoutData;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.form.FormLayoutHelper;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class FormDataDeleteCommand extends Command {
+
+	private EditPart parent;
+	private EditPart child;
+	private Command command;
+
+	public FormDataDeleteCommand(EditPart parent, EditPart child) {
+		this.parent = parent;
+		this.child = child;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#canExecute()
+	 */
+	public boolean canExecute() {
+		if (parent == null || child == null) {
+			return false;
+		}
+		if (!(child instanceof ControlEditPart) || !(parent instanceof CompositeEditPart)) {
+			return false;
+		}
+		return child.getModel() != null && parent.getModel() != null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#execute()
+	 */
+	public void execute() {
+		CompositeEditPart parentEp = (CompositeEditPart) parent;
+		ControlEditPart childEp = (ControlEditPart) child;
+		XamlNode childNode = childEp.getCastModel();
+		if (child.getParent() == null || child.getParent() != parent) {
+			childEp = (ControlEditPart) parentEp.getViewer().getEditPartRegistry().get(childNode);
+		}
+		CompoundCommand commandList = new CompoundCommand();
+		commandList.add(new DeleteCommand(childEp.getCastModel()));
+		Control control = (Control) childEp.getWidget();
+		Control[] dependencies = FormLayoutHelper.getDependencies(control);
+		FormLayoutHelper helper = new FormLayoutHelper(parentEp);
+		control.dispose();
+		if (dependencies.length != 0) {
+			for (Control child : dependencies) {
+				XamlNode model = XWTProxy.getModel(child);
+				if (model == null) {
+					continue;
+				}
+				FormLayoutData layoutData = helper.computeData(Draw2dTools.toDraw2d(SWTTools.getBounds(child)), child);
+				if (layoutData != null) {
+					commandList.add(new FormDataCreateCommand(parentEp, model, layoutData.data));
+				}
+			}
+		}
+		command = commandList.unwrap();
+		if (command.canExecute()) {
+			command.execute();
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#canUndo()
+	 */
+	public boolean canUndo() {
+		return command != null && command.canUndo();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#undo()
+	 */
+	public void undo() {
+		command.undo();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/GridLayoutCommandsFactory.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/GridLayoutCommandsFactory.java
new file mode 100755
index 0000000..926dece
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/GridLayoutCommandsFactory.java
@@ -0,0 +1,218 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.commands;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.gef.requests.ChangeBoundsRequest;
+import org.eclipse.xwt.tools.ui.designer.editor.palette.CreateReqHelper;
+import org.eclipse.xwt.tools.ui.designer.editor.palette.InitializeHelper;
+import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class GridLayoutCommandsFactory extends LayoutCommandsFactory {
+
+	public GridLayoutCommandsFactory(CompositeEditPart host) {
+		super(host);
+	}
+
+	public Command getCreateCommand(List<XamlNode> constraints,
+			List<XamlNode> children, Object beforeObject) {
+		return new CreationCommand(constraints, children, beforeObject);
+	}
+
+	public Command getAddCommand(List<XamlNode> constraints,
+			List<XamlNode> children, Object beforeObject) {
+		return getCreateCommand(constraints, children, beforeObject);
+	}
+
+	public Command getMoveChildrenCommand(List<XamlNode> children,
+			XamlNode before) {
+		if (children == null) {
+			return NoOpCommand.INSTANCE;
+		}
+		return new MoveChildrenCommand(children, before);
+	}
+
+	public Command getDeleteDependentCommand(
+			final List<XamlNode> deletedComponents) {
+		return new DeleteCommand(deletedComponents);
+	}
+
+	public Command getOrphanChildrenCommand(
+			final List<XamlNode> orphanedComponents) {
+		return new Command() {
+			public void execute() {
+				System.out.println(orphanedComponents);
+			}
+		};
+	}
+
+	public Command getResizeChildrenCommand(EditPart child,
+			ChangeBoundsRequest request) {
+		return new ResizeCommand(child, request.getSizeDelta());
+	}
+
+	class CreationCommand extends Command {
+		private List<XamlNode> children;
+		private Object beforeObject;
+
+		private CompoundCommand cmd;
+
+		/**
+		 * 
+		 */
+		public CreationCommand(List<XamlNode> constraints,
+				List<XamlNode> children, Object beforeObject) {
+			this.children = children;
+			this.beforeObject = beforeObject;
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.gef.commands.Command#canExecute()
+		 */
+		public boolean canExecute() {
+			XamlNode model = getModel();
+			if (model == null || children == null || children.isEmpty()) {
+				return false;
+			}
+			for (XamlNode child : children) {
+				if (!CreateReqHelper.canCreate(model, child))
+					return false;
+			}
+			return true;
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.gef.commands.Command#execute()
+		 */
+		public void execute() {
+			int index = -1;
+			if (beforeObject != null) {
+				index = getModel().getChildNodes().indexOf(beforeObject);
+			}
+			cmd = new CompoundCommand();
+			for (XamlNode child : children) {
+				if (!InitializeHelper.checkValue(child)) {
+					break;
+				}// add the text dialog when add a new child
+				cmd.add(new AddNewChildCommand(getModel(), child, index));
+			}
+			cmd.execute();
+		}
+
+		public boolean canUndo() {
+			return cmd != null && cmd.canUndo();
+		}
+
+		public void undo() {
+			if (cmd != null) {
+				cmd.undo();
+			}
+		}
+	}
+
+	class MoveChildrenCommand extends Command {
+		private List<XamlNode> children;
+		private XamlNode insertBeforeValue;
+		private int insertAt = -1;
+		private Map<XamlElement, Integer> moved = null;
+
+		public MoveChildrenCommand(List<XamlNode> children,
+				XamlNode insertBeforeValue) {
+			this.children = children;
+			this.insertBeforeValue = insertBeforeValue;
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.gef.commands.Command#canExecute()
+		 */
+		public boolean canExecute() {
+			return getModel() != null && children != null;
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.gef.commands.Command#execute()
+		 */
+		public void execute() {
+			EList<XamlElement> childNodes = getModel().getChildNodes();
+			List<XamlNode> orderedChildren = new ArrayList<XamlNode>(childNodes);
+			orderedChildren.removeAll(children);
+			if (insertBeforeValue != null) {
+				insertAt = orderedChildren.indexOf(insertBeforeValue);
+			}
+			if (insertAt != -1) {
+				orderedChildren.addAll(insertAt, children);
+			} else {
+				orderedChildren.addAll(children);
+			}
+			moved = new HashMap<XamlElement, Integer>();
+			for (XamlElement child : new ArrayList<XamlElement>(childNodes)) {
+				int newPosition = orderedChildren.indexOf(child);
+				int oldPosition = childNodes.indexOf(child);
+				if (newPosition == oldPosition) {
+					continue;
+				}
+				moved.put(childNodes.move(newPosition, oldPosition),
+						oldPosition);
+			}
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.gef.commands.Command#canUndo()
+		 */
+		public boolean canUndo() {
+			return getModel() != null && moved != null && !moved.isEmpty();
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.gef.commands.Command#undo()
+		 */
+		public void undo() {
+			EList<XamlElement> childNodes = getModel().getChildNodes();
+			for (XamlElement child : moved.keySet()) {
+				int newPosition = moved.get(child);
+				int oldPosition = childNodes.indexOf(child);
+				if (newPosition == oldPosition) {
+					continue;
+				}
+				childNodes.move(newPosition, oldPosition);
+			}
+			moved.clear();
+			moved = null;
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/InsertCreateCommand.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/InsertCreateCommand.java
new file mode 100755
index 0000000..8ad5142
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/InsertCreateCommand.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.commands;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class InsertCreateCommand extends AbstractCreateCommand {
+
+	private EditPart reference;
+	private int index = -1;
+
+	public InsertCreateCommand(EditPart parent, EditPart reference, CreateRequest createRequest, int index) {
+		super(parent, createRequest);
+		this.reference = reference;
+		this.index = index;
+	}
+
+	public InsertCreateCommand(EditPart parent, EditPart reference, CreateRequest createRequest) {
+		this(parent, reference, createRequest, -1);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.commands.AbstractCreationCommand#createCreateCommand(org.soyatec.tools.designer.xaml.XamlNode, org.soyatec.tools.designer.xaml.XamlNode)
+	 */
+	protected Command createCreateCommand(XamlNode parent, XamlNode child) {
+		return new AddNewChildCommand(parent, child, index);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.commands.AbstractCreationCommand#preExecute(org.soyatec.tools.designer.xaml.XamlNode, org.eclipse.gef.requests.CreateRequest)
+	 */
+	protected void preExecute(XamlNode newNode, CreateRequest createRequest) {
+		if (reference != null) {
+			index = getParentModel().getChildNodes().indexOf(reference.getModel());
+			((AddNewChildCommand) addChildCommand).setIndex(index);
+		}
+	}
+
+	public int getIndex() {
+		return index;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/LayoutCommandsFactory.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/LayoutCommandsFactory.java
new file mode 100755
index 0000000..ccf221e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/LayoutCommandsFactory.java
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.commands;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.requests.ForwardedRequest;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public abstract class LayoutCommandsFactory {
+	private EditPart host;
+
+	public LayoutCommandsFactory(EditPart host) {
+		this.host = host;
+	}
+
+	public EditPart getHost() {
+		return host;
+	}
+
+	public XamlNode getModel() {
+		return (XamlNode) host.getModel();
+	}
+
+	public Command getDeleteCommand(Request request) {
+		if (!(request instanceof ForwardedRequest)) {
+			return null;
+		}
+		EditPart sender = ((ForwardedRequest) request).getSender();
+		Object model = sender.getModel();
+		if (isRoot(model)) {
+			return null;
+		}
+		return getDeleteCommand(Collections.singletonList(sender));
+	}
+
+	private boolean isRoot(Object model) {
+		return model != null && model instanceof XamlElement && ((XamlElement) model).eContainer() instanceof XamlDocument;
+	}
+
+	public Command getDeleteCommand(List deleteObjects) {
+		if (deleteObjects == null || deleteObjects.isEmpty()) {
+			return null;
+		}
+		return new DeleteCommand(deleteObjects);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/MoveChildCommand.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/MoveChildCommand.java
new file mode 100755
index 0000000..6118acb
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/MoveChildCommand.java
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.commands;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * 
+ * @author jin.liu (jin.liu@soyatec.com)
+ * 
+ */
+public class MoveChildCommand extends Command {
+
+	private EditPart child;
+	private EditPart after;
+
+	int oldPosition = -1;
+	int newPosition = -1;
+	private XamlNode parentNode;
+
+	public MoveChildCommand(EditPart child, EditPart after) {
+		super("Move Child Command");
+		this.child = child;
+		this.after = after;
+	}
+
+	public boolean canExecute() {
+		if (child == null || child == after) {
+			return false;
+		}
+		if (after != null) {
+			Object model = after.getModel();
+			if (model instanceof XamlNode) {
+				EObject eContainer = ((XamlNode) model).eContainer();
+				if (eContainer instanceof XamlNode) {
+					parentNode = (XamlNode) eContainer;
+				}
+			}
+		}
+		if (parentNode == null) {
+			Object model = child.getModel();
+			if (model instanceof XamlNode) {
+				EObject eContainer = ((XamlNode) model).eContainer();
+				if (eContainer instanceof XamlNode) {
+					parentNode = (XamlNode) eContainer;
+				}
+			}
+		}
+		if (parentNode == null) {
+			return false;
+		}
+		oldPosition = parentNode.getChildNodes().indexOf(child.getModel());
+		if (after != null) {
+			newPosition = parentNode.getChildNodes().indexOf(after.getModel());
+		} else {
+			newPosition = parentNode.getChildNodes().size() - 1;
+		}
+		if (newPosition > oldPosition) {
+			newPosition--;
+		}
+		return newPosition != -1 && oldPosition != -1
+				&& oldPosition != newPosition;
+	}
+
+	public void execute() {
+		EList<XamlElement> children = parentNode.getChildNodes();
+		children.move(newPosition, oldPosition);
+	}
+
+	public boolean canUndo() {
+		return parentNode != null && newPosition != -1 && oldPosition != -1
+				&& newPosition != oldPosition;
+	}
+
+	public void undo() {
+		parentNode.getChildNodes().move(oldPosition, newPosition);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/NamedCommand.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/NamedCommand.java
new file mode 100755
index 0000000..c242e42
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/NamedCommand.java
@@ -0,0 +1,129 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.commands;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.internal.core.ScopeKeeper;
+import org.eclipse.xwt.internal.core.ScopeManager;
+import org.eclipse.xwt.internal.utils.UserData;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class NamedCommand extends Command {
+
+	private XamlNode node;
+	private String newName;
+	private String oldName;
+
+	private XamlAttribute nameAttr;
+
+	public NamedCommand(XamlNode node, String newName) {
+		this.node = node;
+		if (newName != null) {
+			this.newName = newName;
+		}
+	}
+
+	public NamedCommand(Widget widget, String newName) {
+		this(XWTProxy.getModel(widget), newName);
+		if (newName == null) {
+			this.newName = generateName(widget);
+		}
+	}
+
+	public NamedCommand(Widget widget) {
+		this(widget, null);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#canExecute()
+	 */
+	public boolean canExecute() {
+		if (node == null || newName == null) {
+			return false;
+		}
+		nameAttr = node.getAttribute("name");
+		if (nameAttr == null) {
+			nameAttr = node.getAttribute("name", IConstants.XWT_X_NAMESPACE);
+		}
+		if (nameAttr != null && newName.equals(nameAttr.getValue())) {
+			return false;
+		}
+		return true;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#execute()
+	 */
+	public void execute() {
+		if (nameAttr == null) {
+			nameAttr = XamlFactory.eINSTANCE.createAttribute("name", IConstants.XWT_NAMESPACE);
+		}
+		oldName = nameAttr.getValue();
+		nameAttr.setValue(newName);
+		if (!node.getAttributes().contains(nameAttr)) {
+			node.getAttributes().add(nameAttr);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#undo()
+	 */
+	public void undo() {
+		if (oldName == null) {
+			node.getAttributes().remove(nameAttr);
+		} else {
+			nameAttr.setValue(oldName);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#canUndo()
+	 */
+	public boolean canUndo() {
+		return node != null && nameAttr != null;
+	}
+
+	public static String generateName(Widget widget) {
+		String typeName = widget.getClass().getSimpleName();
+		typeName = typeName.length() > 1 ? Character.toLowerCase(typeName.charAt(0)) + typeName.substring(1) : typeName.toLowerCase();
+		ScopeKeeper nameContext = UserData.findScopeKeeper(widget);
+		if (nameContext != null) {
+			String name = null;
+			for (int i = 0; i < Integer.MAX_VALUE; i++) {
+				name = typeName + i;
+				if (!nameContext.containsName(name)) {
+					break;
+				}
+			}
+			return name;
+		}
+		return typeName + "0";
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/NoOpCommand.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/NoOpCommand.java
new file mode 100755
index 0000000..7950e25
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/NoOpCommand.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.commands;
+
+import org.eclipse.gef.commands.Command;
+
+/**
+ * This is a No Operation command. There are times when a command must be returned and none being returned is considered an error. This can be used in those situations where nothing is to be be done.
+ * 
+ * Use the INSTANCE static field for all usages. There is no need for more than one.
+ */
+
+public class NoOpCommand extends Command {
+
+	public static final NoOpCommand INSTANCE = new NoOpCommand();
+
+	private NoOpCommand() {
+	}
+
+	public boolean canExecute() {
+		return true;
+	}
+
+	public void execute() {
+	}
+
+	public void redo() {
+	}
+
+	public boolean canUndo() {
+		return true;
+	}
+
+	public void undo() {
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/NullLayoutCommandsFactory.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/NullLayoutCommandsFactory.java
new file mode 100755
index 0000000..799b63a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/NullLayoutCommandsFactory.java
@@ -0,0 +1,123 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.commands;
+
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.xwt.tools.ui.designer.core.util.StringUtil;
+import org.eclipse.xwt.tools.ui.designer.utils.FigureUtil;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTModelUtil;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class NullLayoutCommandsFactory extends LayoutCommandsFactory {
+
+	/**
+	 * @param host
+	 */
+	public NullLayoutCommandsFactory(EditPart host) {
+		super(host);
+	}
+
+	public Command getCreateCommand(CreateRequest createRequest) {
+		return new CreateCommand(getHost(), createRequest);
+	}
+
+	public Command getChangeConstraintCommand(Object constraint) {
+		if (constraint instanceof Rectangle) {
+			return new ChangeConstraintCommand(getHost(), (Rectangle) constraint, true);
+		}
+		return null;
+	}
+
+	static class CreateCommand extends AbstractCreateCommand {
+		private static final int DEFAULT_WIDTH_WIDGET = 48;
+		private static final int DEFAULT_HEIGHT_WIDGET = 26;
+		private static final int DEFAULT_HEIGHT_COMPOSITE = 100;
+		private static final int DEFAULT_WIDTH_COMPOSITE = 100;
+
+		public CreateCommand(EditPart parent, CreateRequest createRequest) {
+			super(parent, createRequest);
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.xwt.tools.ui.designer.commands.AbstractCreationCommand#preExecute(org.soyatec.tools.designer.xaml.XamlNode, org.eclipse.gef.requests.CreateRequest)
+		 */
+		protected void preExecute(XamlNode newNode, CreateRequest createRequest) {
+			Point location = createRequest.getLocation();
+			Dimension size = createRequest.getSize();
+			if (location == null) {
+				return;
+			}
+			location = FigureUtil.translateToRelative(parent, location);
+			int x = location.x;
+			int y = location.y;
+
+			IMetaclass metaclass = XWTUtility.getMetaclass(newNode);
+			if (metaclass == null) {
+				return;
+			}
+
+			int width = DEFAULT_WIDTH_WIDGET, height = DEFAULT_HEIGHT_WIDGET;
+			if (size != null) {
+				width = size.width;
+				height = size.height;
+			} else if (Composite.class.isAssignableFrom(metaclass.getType())) {
+				width = DEFAULT_WIDTH_COMPOSITE;
+				height = DEFAULT_HEIGHT_COMPOSITE;
+			}
+			String boundsValue = StringUtil.format(new Object[] { x, y, width, height });
+			if (newNode instanceof XamlElement) {
+				XamlElement childElement = (XamlElement) newNode;
+				if (Viewer.class.isAssignableFrom(metaclass.getType())) {
+					XamlAttribute attribute = XWTModelUtil.getChildAttribute(childElement, "bounds", IConstants.XWT_NAMESPACE);
+					if (attribute == null) {
+						XamlAttribute childAttr = childElement.getAttribute("control");
+						if (childAttr == null) {
+							childAttr = XamlFactory.eINSTANCE.createAttribute("control", IConstants.XWT_NAMESPACE);
+							childElement.getAttributes().add(childAttr);
+						}
+						attribute = XamlFactory.eINSTANCE.createAttribute("bounds", IConstants.XWT_NAMESPACE);
+						childAttr.getAttributes().add(attribute);
+					}
+					attribute.setValue(boundsValue);
+				} else {
+					XamlAttribute boundsAttr = childElement.getAttribute("bounds", IConstants.XWT_NAMESPACE);
+					if (boundsAttr == null) {
+						boundsAttr = XamlFactory.eINSTANCE.createAttribute("bounds", IConstants.XWT_NAMESPACE);
+						childElement.getAttributes().add(boundsAttr);
+					}
+					boundsAttr.setValue(boundsValue);
+				}
+			}
+
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ResizeCommand.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ResizeCommand.java
new file mode 100755
index 0000000..ce22233
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/ResizeCommand.java
@@ -0,0 +1,110 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.commands;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ResizeCommand extends Command {
+
+	private EditPart editPart;
+	private Dimension growth;
+	private CompoundCommand command;
+
+	public ResizeCommand(EditPart editPart, Dimension growth) {
+		setLabel("Resize");
+		this.editPart = editPart;
+		this.growth = growth;
+	}
+
+	public boolean canExecute() {
+		if (editPart == null || growth == null || (growth.width == 0 && growth.height == 0)) {
+			return false;
+		}
+		Object model = editPart.getModel();
+		return model != null && model instanceof XamlNode;
+	}
+
+	public void execute() {
+		int growWidth = 0;
+		int growHeight = 0;
+		if (growth.width != 0) {
+			growWidth = growth.width;
+		}
+		if (growth.height != 0) {
+			growHeight = growth.height;
+		}
+
+		Dimension size = getSize();
+		command = new CompoundCommand();
+		XamlNode model = (XamlNode) editPart.getModel();
+		if (growWidth != 0) {
+			command.add(createCommand(model, "width", growWidth + size.width));
+		}
+		if (growHeight != 0) {
+			command.add(createCommand(model, "height", growHeight + size.height));
+		}
+		if (command.canExecute()) {
+			command.execute();
+		}
+	}
+
+	private Command createCommand(XamlNode control, String attrName, int value) {
+		String newValue = Integer.toString(value);
+		CompoundCommand command = new CompoundCommand();
+		XamlAttribute layoutDataAttr = control.getAttribute("layoutData");
+		if (layoutDataAttr != null && !layoutDataAttr.getChildNodes().isEmpty()) {
+			XamlElement layoutData = layoutDataAttr.getChild(0);
+			XamlAttribute attribute = layoutData.getAttribute(attrName);
+			if (attribute == null) {
+				attribute = layoutData.getAttribute(attrName + "Hint");// GridData
+			}
+			if (attribute != null) {
+				command.add(new ApplyAttributeSettingCommand(null, attribute, newValue));
+			}
+		}
+		if (command.isEmpty()) {
+			command.add(new ApplyAttributeSettingCommand(control, attrName, IConstants.XWT_NAMESPACE, newValue));
+		} else {
+			XamlAttribute attribute = control.getAttribute(attrName);
+			if (attribute != null) {
+				command.add(new ApplyAttributeSettingCommand(null, attribute, newValue));
+			}
+		}
+		return command.unwrap();
+	}
+
+	private Dimension getSize() {
+		IFigure contentPane = ((GraphicalEditPart) editPart).getContentPane();
+		return contentPane.getSize();
+	}
+
+	public boolean canUndo() {
+		return command != null && command.canUndo();
+	}
+
+	public void undo() {
+		command.undo();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/RowLayoutCommandsFactory.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/RowLayoutCommandsFactory.java
new file mode 100755
index 0000000..beba66d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/RowLayoutCommandsFactory.java
@@ -0,0 +1,128 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.commands;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class RowLayoutCommandsFactory extends LayoutCommandsFactory {
+
+	/**
+	 * @param host
+	 */
+	public RowLayoutCommandsFactory(EditPart host) {
+		super(host);
+	}
+
+	public Command getResizeChildCommand(Object newSize) {
+		return new ResizeCommand(getHost(), (Dimension) newSize);
+	}
+
+	public Command getCreateCommand(CreateRequest createRequest, EditPart after) {
+		return new InsertCreateCommand(getHost(), after, createRequest);
+	}
+
+
+	class ResizeChildCommand extends Command {
+
+		private Object newSize;
+
+		/**
+		 * 
+		 * @param child
+		 * @param newSize
+		 */
+		public ResizeChildCommand(Object newSize) {
+			this.newSize = newSize;
+
+		}
+
+		/**
+		 * @see org.eclipse.gef.commands.Command#execute()
+		 */
+		public void execute() {
+			EList<XamlAttribute> attributes = getModel().getAttributes();
+
+			// Create LayoutData attribute if it does not exist.
+			XamlAttribute layoutDataAttr = getModel().getAttribute("layoutData");
+			if (layoutDataAttr == null) {
+				layoutDataAttr = XamlFactory.eINSTANCE.createAttribute("layoutData", IConstants.XWT_NAMESPACE);
+			}
+
+			// Create RowData element if it does not exist.
+			if (newSize instanceof Dimension) {
+				Dimension dimension = (Dimension) newSize;
+				XamlElement attrElement = layoutDataAttr.getChild("RowData");
+				if (attrElement == null) {
+					attrElement = XamlFactory.eINSTANCE.createElement("RowData", IConstants.XWT_NAMESPACE);
+					layoutDataAttr.getChildNodes().add(attrElement);
+				}
+
+				// Set the value of layoutData attribute.
+				XamlAttribute width = attrElement.getAttribute("width");
+				if (width == null) {
+					width = XamlFactory.eINSTANCE.createAttribute("width", IConstants.XWT_NAMESPACE);
+					int newvalue = getSize().width + dimension.width;
+					width.setValue(newvalue + "");
+					attrElement.getAttributes().add(width);
+				} else if (!Integer.toString(dimension.width).equals(width.getValue())) {
+					int newvalue = Integer.parseInt(width.getValue()) + dimension.width;
+					width.setValue(newvalue + "");
+				}
+				XamlAttribute height = attrElement.getAttribute("height");
+				if (height == null) {
+					height = XamlFactory.eINSTANCE.createAttribute("height", IConstants.XWT_NAMESPACE);
+					int newvalue = getSize().height + dimension.height;
+					height.setValue(newvalue + "");
+					attrElement.getAttributes().add(height);
+				} else if (!Integer.toString(dimension.height).equals(height.getValue())) {
+					int newvalue = Integer.parseInt(height.getValue()) + dimension.height;
+					height.setValue(newvalue + "");
+				}
+			}
+
+			// And the LayoutData attribute to model if it does not exist.
+			if (!attributes.contains(layoutDataAttr)) {
+				attributes.add(layoutDataAttr);
+			}
+
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.gef.commands.Command#canExecute()
+		 */
+		public boolean canExecute() {
+			return getModel() != null;
+		}
+
+		private Dimension getSize() {
+			IFigure contentPane = ((GraphicalEditPart) getHost()).getContentPane();
+			return contentPane.getSize();
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/SetStyleCommand.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/SetStyleCommand.java
new file mode 100755
index 0000000..b7fa46a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/SetStyleCommand.java
@@ -0,0 +1,146 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.commands;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.StringTokenizer;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.xwt.tools.ui.designer.core.style.StyleGroup;
+import org.eclipse.xwt.tools.ui.designer.core.util.StringUtil;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class SetStyleCommand extends Command {
+
+	private XamlNode parent;
+	private String newStyle;
+	private StyleGroup group;
+	private boolean remove;
+	private Command delegate;
+
+	public SetStyleCommand(XamlNode parent, String newStyle) {
+		this.parent = parent;
+		this.newStyle = newStyle;
+	}
+
+	public SetStyleCommand(XamlNode parent, String newStyle, StyleGroup group) {
+		this(parent, newStyle);
+		this.group = group;
+	}
+
+	public SetStyleCommand(XamlNode parent, String newStyle, boolean remove) {
+		this(parent, newStyle);
+		this.remove = remove;
+	}
+
+	public void setGroup(StyleGroup group) {
+		this.group = group;
+	}
+
+	public void setRemove(boolean remove) {
+		this.remove = remove;
+	}
+	
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#canExecute()
+	 */
+	public boolean canExecute() {
+		return parent != null && newStyle != null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#canUndo()
+	 */
+	public boolean canUndo() {
+		return delegate != null && delegate.canUndo();
+	}
+
+	private Command createCommand(String newStyle) {
+		return new ApplyAttributeSettingCommand(parent, "style", IConstants.XWT_X_NAMESPACE, newStyle);
+	}
+
+	private Command createDelegate() {
+		XamlAttribute attribute = parent.getAttribute("style", IConstants.XWT_X_NAMESPACE);
+		if (attribute == null || attribute.getValue() == null) {
+			return createCommand(newStyle);
+		} else {
+			String value = attribute.getValue();
+			List<String> oldValues = new ArrayList<String>();
+			StringTokenizer stk = new StringTokenizer(value, "|");
+			while (stk.hasMoreTokens()) {
+				oldValues.add(stk.nextToken().trim().toUpperCase());
+			}
+
+			// 1. Maybe not a string.
+			if (oldValues.isEmpty()) {
+				return createCommand(newStyle);
+			}
+			// 2. String style.
+			if (group != null && !"default".equals(group.getGroupName())) {
+				String[] styles = group.getStyles();
+				for (String str : styles) {
+					if (oldValues.contains(str)) {
+						oldValues.remove(str);
+					}
+					if (oldValues.contains("SWT." + str)) {
+						oldValues.remove("SWT." + str);
+					}
+				}
+				oldValues.add(newStyle);
+				String newStyleValue = StringUtil.format(oldValues.toArray(new String[oldValues.size()]), "|");
+				return createCommand(newStyleValue);
+			} else {
+				if (remove) {
+					// remove
+					if (oldValues.contains(newStyle)) {
+						oldValues.remove(newStyle);
+					}
+					if (oldValues.contains("SWT." + newStyle)) {
+						oldValues.remove("SWT." + newStyle);
+					}
+					String newStyleValue = StringUtil.format(oldValues.toArray(new String[oldValues.size()]), "|");
+					return createCommand(newStyleValue);
+				} else {
+					// new add.
+					if (oldValues.contains(newStyle) || oldValues.contains("SWT." + newStyle)) {
+						return null;
+					}
+					String styleValue = value + "|" + newStyle;
+					return createCommand(styleValue);
+				}
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#execute()
+	 */
+	public void execute() {
+		delegate = createDelegate();
+		if (delegate != null && delegate.canExecute()) {
+			delegate.execute();
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/SurroundWithCommand.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/SurroundWithCommand.java
new file mode 100755
index 0000000..f70b5c8
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/commands/SurroundWithCommand.java
@@ -0,0 +1,406 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.commands;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.xwt.tools.ui.designer.core.util.StringUtil;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
+import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
+import org.eclipse.xwt.tools.ui.designer.parts.SashFormEditPart;
+import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.ILayoutEditPolicy;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridLayoutPolicyHelper;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridLayoutPolicyHelper.GridComponent;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+import org.eclipse.xwt.tools.ui.xaml.tools.AnnotationTools;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class SurroundWithCommand extends Command {
+
+	protected List<EditPart> selectedObjects;
+	protected List<WidgetEditPart> surroundings;
+	protected Class<?> type;
+	protected EditPart parent;
+	protected LayoutType layoutType;
+
+	protected Command executeCommand;
+
+	public SurroundWithCommand(List<EditPart> selectedObjects) {
+		this.selectedObjects = selectedObjects;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#canExecute()
+	 */
+	public boolean canExecute() {
+		if (selectedObjects == null || selectedObjects.isEmpty()) {
+			return false;
+		}
+
+		// Check parent, all selected objects should have a same parent.
+		for (EditPart child : selectedObjects) {
+			if (parent == null) {
+				parent = child.getParent();
+			} else if (parent != child.getParent()) {
+				return false;
+			}
+			
+			Object model = child.getModel();
+			if (model instanceof EObject) {
+				EObject object = (EObject) model;
+				if (object.eContainer() == null) {
+					return false;
+				}
+			}
+			
+		}
+		if (parent == null) {
+			return false;
+		}
+		ILayoutEditPolicy layoutEdiPolicy = (ILayoutEditPolicy) parent.getAdapter(ILayoutEditPolicy.class);
+		if (layoutEdiPolicy == null) {
+			return false;
+		}
+		layoutType = layoutEdiPolicy.getType();
+
+		surroundings = new ArrayList<WidgetEditPart>();
+
+		// do quickly check
+		if (selectedObjects.size() == 1) {
+			EditPart editPart = selectedObjects.get(0);
+			if (!(editPart instanceof WidgetEditPart)) {
+				return false;
+			} else if (((WidgetEditPart) editPart).isRoot()) {
+				return false;
+			}
+			surroundings.add((WidgetEditPart) editPart);
+			return true;
+		}
+
+		if (layoutType == LayoutType.GridLayout) {
+			//
+			// TODO: make a smart check.
+			//
+			int min = -1, max = -1;
+			XamlNode parentNode = (XamlNode) parent.getModel();
+			EList<XamlElement> childNodes = parentNode.getChildNodes();
+			for (EditPart child : selectedObjects) {
+				XamlNode node = (XamlNode) child.getModel();
+				int index = childNodes.indexOf(node);
+				if (min == -1) {
+					min = index;
+				} else {
+					min = Math.min(min, index);
+				}
+				if (max == -1) {
+					max = index;
+				} else {
+					max = Math.max(max, index);
+				}
+			}
+			for (int i = min; i <= max; i++) {
+				XamlElement child = childNodes.get(i);
+				Object childEp = parent.getViewer().getEditPartRegistry().get(child);
+				if (AnnotationTools.isAnnotated(child, GridLayoutPolicyHelper.FILLER_DATA)) {
+					surroundings.add((WidgetEditPart) childEp);
+				} else if (selectedObjects.contains(childEp)) {
+					surroundings.add((WidgetEditPart) childEp);
+				} else {
+					return false;
+				}
+			}
+		} else {
+			for (EditPart child : selectedObjects) {
+				if (child instanceof WidgetEditPart) {
+					surroundings.add((WidgetEditPart) child);
+				}
+			}
+		}
+		return layoutType != null && !surroundings.isEmpty();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#execute()
+	 */
+	public void execute() {
+		XamlNode parentModel = (XamlNode) parent.getModel();
+		sort(surroundings, parentModel.getChildNodes());
+		CompoundCommand commands = new CompoundCommand();
+		XamlElement newParent = createParent();
+		if (parent instanceof SashFormEditPart) {
+			int index = -1;
+			for (WidgetEditPart child : surroundings) {
+				XamlElement castModel = (XamlElement) child.getCastModel();
+				if (index == -1) {
+					index = parentModel.getChildNodes().indexOf(castModel);
+				}
+				
+				XamlElement newChild = (XamlElement) EcoreUtil.copy(castModel);
+				newParent.getChildNodes().add(newChild);
+			}
+
+			commands.add(new AddNewChildCommand(parentModel, newParent, index));
+		}
+		else if (LayoutType.NullLayout == layoutType) {
+			int x = -1, y = -1, right = 0, bottom = 0;
+			for (WidgetEditPart child : surroundings) {
+				Rectangle r = child.getVisualInfo().getBounds();
+				if (x == -1) {
+					x = r.x;
+				} else {
+					x = Math.min(x, r.x);
+				}
+				if (y == -1) {
+					y = r.y;
+				} else {
+					y = Math.min(y, r.y);
+				}
+				right = Math.max(right, r.right());
+				bottom = Math.max(bottom, r.bottom());
+			}
+			XamlAttribute boundsAttr = XamlFactory.eINSTANCE.createAttribute("bounds", IConstants.XWT_NAMESPACE);
+			boundsAttr.setValue(StringUtil.format(new Rectangle(x, y, right - x, bottom - y)));
+			newParent.getAttributes().add(boundsAttr);
+
+			for (WidgetEditPart child : surroundings) {
+				XamlElement castModel = (XamlElement) child.getCastModel();
+
+				Rectangle r = child.getVisualInfo().getBounds().getCopy();
+				r.translate(-x, -y);
+				XamlElement newChild = (XamlElement) EcoreUtil.copy(castModel);
+				ChangeConstraintCommand cmd = new ChangeConstraintCommand(newChild, r);
+				cmd.execute();
+
+				newParent.getChildNodes().add(newChild);
+			}
+
+			commands.add(new AddNewChildCommand(parentModel, newParent));
+		} else if (LayoutType.GridLayout == layoutType) {
+			int numRows = -1, numColumns = 0;
+			if (surroundings.size() == 1) {
+				numRows = numColumns = 1;
+			} else {
+				GridLayoutPolicyHelper helper = new GridLayoutPolicyHelper();
+				helper.setHost((CompositeEditPart) parent);
+				GridComponent[][] layoutTable = helper.getLayoutTable();
+				for (int i = 0; i < layoutTable.length; i++) {
+					GridComponent[] cells = layoutTable[i];
+					int row = 0;
+					boolean recorded = false;
+					for (int j = 0; j < cells.length; j++) {
+						GridComponent cell = cells[j];
+						XamlNode model = cell.getModel();
+						Object childEp = parent.getViewer().getEditPartRegistry().get(model);
+						if (!surroundings.contains(childEp)) {
+							continue;
+						}
+						if (!recorded) {
+							int span = cell.getSpanWidth();
+							if (span > 1) {
+								numColumns += span;
+							} else {
+								numColumns++;
+							}
+							recorded = true;
+						}
+						int spanHeight = cell.getSpanHeight();
+						if (spanHeight > 1) {
+							row += spanHeight;
+						} else {
+							row++;
+						}
+					}
+					numRows = Math.max(numRows, row);
+				}
+			}
+
+			int index = -1;
+			EList<XamlElement> childNodes = parentModel.getChildNodes();
+			for (WidgetEditPart child : surroundings) {
+				XamlElement castModel = (XamlElement) child.getCastModel();
+				int i = childNodes.indexOf(castModel);
+				if (index == -1) {
+					index = i;
+				} else {
+					index = Math.min(index, i);
+				}
+				XamlElement newChild = (XamlElement) EcoreUtil.copy(castModel);
+				newParent.getChildNodes().add(newChild);
+			}
+
+			// GridLayout
+			XamlElement gridLayout = XamlFactory.eINSTANCE.createElement("GridLayout", IConstants.XWT_NAMESPACE);
+			XamlAttribute numColumnsAttr = XamlFactory.eINSTANCE.createAttribute("numColumns", IConstants.XWT_NAMESPACE);
+			numColumnsAttr.setValue(Integer.toString(numColumns));
+			gridLayout.getAttributes().add(numColumnsAttr);
+
+			XamlAttribute gridLayoutAttr = XamlFactory.eINSTANCE.createAttribute("layout", IConstants.XWT_NAMESPACE);
+			gridLayoutAttr.getChildNodes().add(gridLayout);
+
+			newParent.getAttributes().add(gridLayoutAttr);
+
+			// GridData
+			XamlElement gridData = XamlFactory.eINSTANCE.createElement("GridData", IConstants.XWT_NAMESPACE);
+			createAttr(gridData, "horizontalAlignment", "SWT.FILL");
+			createAttr(gridData, "verticalAlignment", "SWT.FILL");
+			// createAttr(gridData, "grabExcessHorizontalSpace", "true");
+			// createAttr(gridData, "grabExcessVerticalSpace", "true");
+			createAttr(gridData, "horizontalSpan", Integer.toString(numColumns));
+			createAttr(gridData, "verticalSpan", Integer.toString(numRows));
+
+			XamlAttribute gridDataAttr = XamlFactory.eINSTANCE.createAttribute("layoutData", IConstants.XWT_NAMESPACE);
+			gridDataAttr.getChildNodes().add(gridData);
+
+			newParent.getAttributes().add(gridDataAttr);
+
+			commands.add(new AddNewChildCommand(parentModel, newParent, index));
+		} else if (LayoutType.RowLayout == layoutType || LayoutType.FillLayout == layoutType) {
+			XamlAttribute a = parentModel.getAttribute("layout");
+			if (a != null) {
+				XamlAttribute layoutAttr = (XamlAttribute) EcoreUtil.copy(a);
+				newParent.getAttributes().add(layoutAttr);
+			}
+			int index = -1;
+			EList<XamlElement> childNodes = parentModel.getChildNodes();
+			for (WidgetEditPart child : surroundings) {
+				XamlElement castModel = (XamlElement) child.getCastModel();
+				int i = childNodes.indexOf(castModel);
+				if (index == -1) {
+					index = i;
+				} else {
+					index = Math.min(index, i);
+				}
+				XamlElement newChild = (XamlElement) EcoreUtil.copy(castModel);
+				newParent.getChildNodes().add(newChild);
+			}
+			commands.add(new AddNewChildCommand(parentModel, newParent, index));
+		}
+
+		List<XamlNode> forDelete = new ArrayList<XamlNode>();
+		for (WidgetEditPart node : surroundings) {
+			forDelete.add(node.getCastModel());
+		}
+
+		commands.add(new DeleteCommand(forDelete));
+
+		executeCommand = commands.unwrap();
+		if (executeCommand.canExecute()) {
+			executeCommand.execute();
+		}
+	}
+
+	private void sort(List<WidgetEditPart> surroundings, final List<XamlElement> childNodes) {
+		Collections.sort(surroundings, new Comparator<WidgetEditPart>() {
+			public int compare(WidgetEditPart o1, WidgetEditPart o2) {
+				int i1 = childNodes.indexOf(o1.getCastModel());
+				int i2 = childNodes.indexOf(o2.getCastModel());
+				return i1 - i2;
+			}
+
+		});
+	}
+
+	private XamlAttribute createAttr(XamlNode parent, String name, String value) {
+		XamlAttribute attr = XamlFactory.eINSTANCE.createAttribute(name, IConstants.XWT_NAMESPACE);
+		attr.setValue(value);
+
+		parent.getAttributes().add(attr);
+
+		return attr;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#undo()
+	 */
+	public void undo() {
+		executeCommand.undo();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#canUndo()
+	 */
+	public boolean canUndo() {
+		return executeCommand != null && executeCommand.canUndo();
+	}
+
+	protected XamlElement createParent() {
+		XamlElement newParent = XamlFactory.eINSTANCE.createElement(type.getSimpleName(), IConstants.XWT_NAMESPACE);
+		if (Group.class == type) {
+			XamlAttribute textAttr = XamlFactory.eINSTANCE.createAttribute("text", IConstants.XWT_NAMESPACE);
+			textAttr.setValue("New Group");
+			newParent.getAttributes().add(textAttr);
+		}
+		return newParent;
+	}
+
+	/**
+	 * @param type
+	 *            the type to set
+	 */
+	public void setType(Class<?> type) {
+		this.type = type;
+	}
+
+	/**
+	 * @return the type
+	 */
+	public Class<?> getType() {
+		return type;
+	}
+
+	static class Counter {
+		List<Integer> indexes;
+		int count = 0;
+
+		void add(int index, int span) {
+			if (indexes == null) {
+				indexes = new ArrayList<Integer>();
+			}
+			if (indexes.contains(index)) {
+				return;
+			}
+			indexes.add(index);
+			if (span == 0) {
+				count++;
+			} else {
+				count += span;
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/BindingConstants.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/BindingConstants.java
new file mode 100755
index 0000000..223f73f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/BindingConstants.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.databinding;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public interface BindingConstants {
+	String CONVERTER = "Converter";
+	String MODE = "BindingMode";
+	String PATH = "Path";
+	String ELEMENT_NAME = "ElementName";
+	String BINDING = "Binding";
+	String SOURCE = "Source";
+	String STATIC_RESOURCE = "StaticResource";
+	String DATA_CONTEXT = "DataContext";
+	String UPDATE_SOURCE_TRIGGER = "UpdateSourceTrigger";
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/BindingContext.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/BindingContext.java
new file mode 100755
index 0000000..a7376ef
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/BindingContext.java
@@ -0,0 +1,97 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.databinding;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class BindingContext {
+
+	private IObservable target;
+	private Property targetProperty;
+	private IObservable model;
+	private Property modelProperty;
+
+	private PropertyChangeSupport support = null;
+
+	public BindingContext() {
+		this(null, null, null, null);
+	}
+
+	public BindingContext(IObservable target, Property targetProperty, IObservable model, Property modelProperty) {
+		this.target = target;
+		this.targetProperty = targetProperty;
+		this.model = model;
+		this.modelProperty = modelProperty;
+		support = new PropertyChangeSupport(this);
+	}
+
+	public void addPropertyChangeListener(PropertyChangeListener listener) {
+		support.addPropertyChangeListener(listener);
+	}
+
+	public void removePropertyChangeListener(PropertyChangeListener listener) {
+		support.removePropertyChangeListener(listener);
+	}
+
+	public IObservable getTarget() {
+		return target;
+	}
+
+	public void setTarget(IObservable target) {
+		IObservable oldValue = this.target;
+		this.target = target;
+		support.firePropertyChange("target", oldValue, this.target);
+	}
+
+	public Property getTargetProperty() {
+		return targetProperty;
+	}
+
+	public void setTargetProperty(Property targetProperty) {
+		Property oldValue = this.targetProperty;
+		this.targetProperty = targetProperty;
+		support.firePropertyChange("targetProperty", oldValue, this.targetProperty);
+	}
+
+	public IObservable getModel() {
+		return model;
+	}
+
+	public void setModel(IObservable model) {
+		IObservable oldValue = this.model;
+		this.model = model;
+		support.firePropertyChange("model", oldValue, this.model);
+	}
+
+	public Property getModelProperty() {
+		return modelProperty;
+	}
+
+	public void setModelProperty(Property modelProperty) {
+		Property oldValue = this.modelProperty;
+		this.modelProperty = modelProperty;
+		support.firePropertyChange("modelProperty", oldValue, this.modelProperty);
+	}
+
+	public boolean isValid() {
+		boolean valid = model != null && modelProperty != null && target != null && targetProperty != null;
+		if (valid && modelProperty.equals(targetProperty)) {
+			return !model.equals(target);
+		}
+		return valid;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/BindingHelper.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/BindingHelper.java
new file mode 100755
index 0000000..d5e3ab4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/BindingHelper.java
@@ -0,0 +1,202 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.databinding;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.databinding.BindingMode;
+import org.eclipse.xwt.internal.core.UpdateSourceTrigger;
+import org.eclipse.xwt.internal.utils.UserData;
+import org.eclipse.xwt.jface.JFacesHelper;
+import org.eclipse.gef.EditPart;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.tools.ui.designer.core.util.swt.SWTTools;
+import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
+import org.eclipse.xwt.tools.ui.designer.parts.ViewerEditPart;
+import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class BindingHelper implements BindingConstants {
+
+	private static Map<XamlNode, BindingInfo> bindingCache = new HashMap<XamlNode, BindingInfo>();
+
+	public static List<BindingInfo> getBindings(EditPart editPart) {
+		if (editPart == null) {
+			return Collections.emptyList();
+		}
+		Object component = null;
+		if (editPart instanceof WidgetEditPart) {
+			component = ((WidgetEditPart) editPart).getWidget();
+		} else if (editPart instanceof ViewerEditPart) {
+			component = ((ViewerEditPart) editPart).getJfaceViewer();
+		}
+		if (component == null) {
+			return Collections.emptyList();
+		}
+		List<BindingInfo> bindings = new ArrayList<BindingInfo>();
+		collectBindings(component, bindings);
+		return bindings;
+	}
+
+	private static void collectBindings(Object component, List<BindingInfo> bindings) {
+		if (component == null) {
+			return;
+		}
+		List<BindingInfo> childBindings = getBindings(component);
+		if (childBindings != null) {
+			bindings.addAll(childBindings);
+		}
+		if (JFacesHelper.isViewer(component)) {
+			// If JFace Viewer, just come here.
+			return;
+		}
+		Viewer viewer = UserData.getLocalViewer(component);
+		if (viewer != null) {
+			collectBindings(viewer, bindings);
+		}
+		if (component instanceof Widget) {
+			Widget[] children = SWTTools.getChildren((Widget) component);
+			for (Widget widget : children) {
+				collectBindings(widget, bindings);
+			}
+		}
+	}
+
+	public static List<BindingInfo> getBindings(Object component) {
+		XamlNode node = XWTProxy.getModel(component);
+		if (node == null) {
+			return Collections.emptyList();
+		}
+		List<BindingInfo> bindings = new ArrayList<BindingInfo>();
+		for (XamlAttribute attribute : node.getAttributes()) {
+			XamlElement bindNode = attribute.getChild(BINDING);
+			if (bindNode != null) {
+				BindingInfo binding = createBindingInfo(component, attribute.getName(), bindNode);
+				if (binding != null) {
+					bindings.add(binding);
+				}
+			}
+		}
+		return bindings;
+	}
+
+	private static BindingInfo createBindingInfo(Object targetSource, String propertyName, XamlElement bindingNode) {
+		BindingInfo bindingInfo = bindingCache.get(bindingNode);
+		if (bindingInfo != null) {
+			// TODO: To check if binding changed.
+			return bindingInfo;
+		}
+
+		Observable target = ObservableUtil.getObservable(targetSource);
+		Property targetProperty = target.getProperty(propertyName);
+
+		String elementName = null;
+		String modelPropertyName = null;
+		String bindingMode = null;
+		String updateTtrigger = null;
+		String converter = null;
+		XamlAttribute attribute = bindingNode.getAttribute(ELEMENT_NAME);
+		if (attribute != null) {
+			elementName = attribute.getValue();
+		}
+		attribute = bindingNode.getAttribute(PATH);
+		if (attribute != null) {
+			modelPropertyName = attribute.getValue();
+		}
+		attribute = bindingNode.getAttribute(MODE);
+		if (attribute != null) {
+			bindingMode = attribute.getValue();
+		}
+		attribute = bindingNode.getAttribute(CONVERTER);
+		if (attribute != null) {
+			converter = attribute.getValue();
+		}
+		attribute = bindingNode.getAttribute(UPDATE_SOURCE_TRIGGER);
+		if (attribute != null) {
+			updateTtrigger = attribute.getValue();
+		}
+		Object modelSource;
+		if (elementName != null) {
+			modelSource = XWT.findElementByName(targetSource, elementName);
+		} else {
+			modelSource = getDataContext(targetSource);
+		}
+		IObservable model = ObservableUtil.getObservable(modelSource);
+		if (model == null) {
+			return null;
+		}
+		Property modelProperty = model.getProperty(modelPropertyName);
+
+		bindingInfo = new BindingInfo(new BindingContext(target, targetProperty, model, modelProperty));
+		bindingInfo.setElementName(elementName);
+		if (bindingMode != null) {
+			bindingInfo.setBindingMode(BindingMode.valueOf(bindingMode));
+		}
+		if (updateTtrigger != null) {
+			bindingInfo.setTriggerMode(UpdateSourceTrigger.valueOf(updateTtrigger));
+		}
+		bindingInfo.setConverter(converter);
+		bindingInfo.setBindingNode(bindingNode);
+		bindingCache.put(bindingNode, bindingInfo);
+		return bindingInfo;
+	}
+
+	public static DataContext getDataContext(Object widget) {
+		if (widget == null) {
+			return null;
+		}
+		try {
+			Object dataContext = XWT.getDataContext(widget);
+			Map<?, ?> resources = UserData.getResources(widget);
+			if (resources == null) {
+				return null;
+			}
+			if (dataContext != null && !resources.isEmpty()) {
+				Set<?> entrySet = resources.entrySet();
+				for (Object object : entrySet) {
+					Entry<?, ?> entry = (Entry<?, ?>) object;
+					Object value = entry.getValue();
+					if (!dataContext.equals(value)) {
+						continue;
+					}
+					Object key = entry.getKey();
+					return new DataContext(key.toString(), value);
+				}
+			} else {
+				Set<?> entrySet = resources.entrySet();
+				for (Object object : entrySet) {
+					Entry<?, ?> entry = (Entry<?, ?>) object;
+					Object key = entry.getKey();
+					Object value = entry.getValue();
+					return new DataContext(key.toString(), value);
+				}
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/BindingInfo.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/BindingInfo.java
new file mode 100755
index 0000000..8d9d07f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/BindingInfo.java
@@ -0,0 +1,329 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.databinding;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.databinding.BindingMode;
+import org.eclipse.xwt.internal.core.ScopeKeeper;
+import org.eclipse.xwt.internal.core.UpdateSourceTrigger;
+import org.eclipse.xwt.internal.utils.UserData;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.gef.commands.UnexecutableCommand;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.tools.ui.designer.commands.AddNewChildCommand;
+import org.eclipse.xwt.tools.ui.designer.commands.DeleteCommand;
+import org.eclipse.xwt.tools.ui.designer.commands.NamedCommand;
+import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class BindingInfo implements IBindingInfo, IBindingHandler, BindingConstants {
+
+	private BindingContext context;
+
+	private String elementName;
+	private BindingMode bindingMode;
+	private UpdateSourceTrigger triggerMode;
+	private String converter;
+	private CodeStyles codeStyles;
+	private XamlElement bindingNode;
+
+	public BindingInfo(BindingContext bindingContext) {
+		Assert.isNotNull(bindingContext);
+		this.context = bindingContext;
+	}
+
+	public BindingContext getBindingContext() {
+		return context;
+	}
+
+	public void setBindingNode(XamlElement bindingNode) {
+		this.bindingNode = bindingNode;
+	}
+
+	public XamlElement getBindingNode() {
+		return bindingNode;
+	}
+
+	public void setConverter(String converter) {
+		this.converter = converter;
+		if (bindingNode != null) {
+			addAttr(bindingNode, CONVERTER, IConstants.XWT_NAMESPACE, converter);
+		}
+	}
+
+	public String getConverter() {
+		return converter;
+	}
+
+	public void setElementName(String elementName) {
+		this.elementName = elementName;
+		if (bindingNode != null) {
+			addAttr(bindingNode, ELEMENT_NAME, IConstants.XWT_NAMESPACE, elementName);
+		}
+	}
+
+	public String getElementName() {
+		IObservable model = context.getModel();
+		if (elementName == null && model != null && model.getType() == IObservable.OBSERVE_SWT_JFACE) {
+			Object source = model.getSource();
+			elementName = getWidgetName(source);
+		}
+		return elementName;
+	}
+
+	private String getWidgetName(Object widget) {
+		ScopeKeeper nameContext = UserData.findScopeKeeper(widget);
+		if (nameContext != null) {
+			for (String name : nameContext.names()) {
+				if (widget == nameContext.getNamedObject(name)) {
+					return name;
+				}
+			}
+		}
+		return null;
+	}
+
+	public void setBindingMode(BindingMode bindingMode) {
+		this.bindingMode = bindingMode;
+		if (bindingNode != null) {
+			addAttr(bindingNode, MODE, IConstants.XWT_NAMESPACE, bindingMode.name());
+		}
+	}
+
+	public BindingMode getBindingMode() {
+		return bindingMode;
+	}
+
+	public void setCodeStyles(CodeStyles codeStyles) {
+		if (codeStyles != null) {
+			this.codeStyles = codeStyles;
+		}
+	}
+
+	public CodeStyles getCodeStyles() {
+		if (codeStyles == null) {
+			codeStyles = new CodeStyles();
+		}
+		return codeStyles;
+	}
+
+	private XamlAttribute getAttribute(XamlNode parent, String attrName, String namespace) {
+		XamlAttribute attribute = parent.getAttribute(attrName, namespace);
+		if (attribute == null) {
+			attribute = XamlFactory.eINSTANCE.createAttribute(attrName, namespace);
+		}
+		return attribute;
+	}
+
+	private XamlElement getElement(XamlNode parent, String name, String namespace) {
+		XamlElement child = parent.getChild(name, namespace);
+		if (child == null) {
+			child = XamlFactory.eINSTANCE.createElement(name, namespace);
+		}
+		return child;
+	}
+
+	private XamlAttribute addAttr(XamlNode parent, String attrName, String namespace, String value) {
+		if (parent == null || attrName == null || namespace == null) {
+			return null;
+		}
+		XamlAttribute attribute = parent.getAttribute(attrName, namespace);
+		if (attribute == null) {
+			attribute = XamlFactory.eINSTANCE.createAttribute(attrName, namespace);
+		}
+		attribute.setValue(value);
+		if (!parent.getAttributes().contains(attribute)) {
+			parent.getAttributes().add(attribute);
+		}
+
+		return attribute;
+	}
+
+	private String getCreateName(Object model, CompoundCommand commands) {
+		if (!(model instanceof Widget)) {
+			return null;
+		}
+		Widget widget = (Widget) model;
+		String original = getWidgetName(widget);
+		if (original != null) {
+			return original;
+		}
+		String elementName = getElementName();
+		if (elementName == null) {
+			elementName = NamedCommand.generateName(widget);
+		}
+		commands.add(new NamedCommand(widget, elementName));
+		UserData.setObjectName(widget, elementName);
+		return elementName;
+	}
+
+	public boolean canBinding() {
+		return context.isValid();
+	}
+
+	public Command bindWithCommand() {
+		if (!canBinding()) {
+			return null;
+		}
+		CompoundCommand commandList = new CompoundCommand();
+
+		Property targetProperty = context.getTargetProperty();
+		Property modelProperty = context.getModelProperty();
+		IObservable target = context.getTarget();
+		IObservable model = context.getModel();
+		Object targetSource = target.getSource();
+
+		Object modelSource = model.getSource();
+
+		XamlNode node = null;
+		if (targetSource instanceof Widget) {
+			node = XWTProxy.getModel((Widget) targetSource);
+		} else if (targetSource instanceof XamlElement) {
+			node = (XamlElement) targetSource;
+		}
+
+		if (node == null) {
+			return UnexecutableCommand.INSTANCE;
+		}
+
+		// 1. Get attr of targetProperty, such as < text="{}"/>
+		XamlAttribute attribute = node.getAttribute(targetProperty.getName(), IConstants.XWT_NAMESPACE);
+		if (attribute != null) {
+			commandList.add(new DeleteCommand(attribute));
+			attribute = null;
+		}
+		if (attribute == null) {
+			attribute = XamlFactory.eINSTANCE.createAttribute(targetProperty.getName(), IConstants.XWT_NAMESPACE);
+		}
+		// 2. Binding Node.
+		if (bindingNode == null) {
+			bindingNode = attribute.getChild(BINDING, IConstants.XWT_NAMESPACE);
+		}
+		if (bindingNode == null) {
+			bindingNode = XamlFactory.eINSTANCE.createElement(BINDING, IConstants.XWT_NAMESPACE);
+		}
+		// 3. ElementName
+		int type = model.getType();
+		if (type == IObservable.OBSERVE_SWT_JFACE) {
+			addAttr(bindingNode, ELEMENT_NAME, IConstants.XWT_NAMESPACE, getCreateName(modelSource, commandList));
+		}
+		// 4. DataContext
+		else if (IObservable.OBSERVE_JAVA_BAEN == type) {
+			XamlDocument ownerDocument = node.getOwnerDocument();
+			XamlElement rootElement = ownerDocument.getRootElement();
+			DataContext dataContext = (DataContext) modelSource;
+			String key = dataContext.getKey();
+			if (key != null) {
+				boolean canUseDC = getCodeStyles().useDataContext;
+				if (canUseDC) {
+					XamlAttribute contextNode = getAttribute(rootElement, DATA_CONTEXT, IConstants.XWT_NAMESPACE);
+					contextNode.setUseFlatValue(true);
+
+					XamlElement resourceNode = getElement(contextNode, STATIC_RESOURCE, IConstants.XWT_NAMESPACE);
+					if (!key.equals(resourceNode.getValue())) {
+						if (resourceNode.getValue() != null) {
+							canUseDC = false;
+						} else {
+							resourceNode.setValue(key);
+							commandList.add(new AddNewChildCommand(contextNode, resourceNode));
+							commandList.add(new AddNewChildCommand(rootElement, contextNode));
+						}
+					}
+				}
+				if (!canUseDC || !getCodeStyles().useDataContext) {
+					XamlAttribute sourceAttr = getAttribute(bindingNode, SOURCE, IConstants.XWT_NAMESPACE);
+					sourceAttr.setUseFlatValue(true);
+					XamlElement resourceNode = getElement(sourceAttr, STATIC_RESOURCE, IConstants.XWT_NAMESPACE);
+
+					resourceNode.setValue(key);
+					commandList.add(new AddNewChildCommand(sourceAttr, resourceNode));
+					commandList.add(new AddNewChildCommand(bindingNode, sourceAttr));
+				}
+			}
+		}
+
+		// 5. Path
+		addAttr(bindingNode, PATH, IConstants.XWT_NAMESPACE, modelProperty.toString());
+
+		// 6. BindingMode
+		if (bindingMode != null && BindingMode.TwoWay.equals(bindingMode)) {
+			addAttr(bindingNode, MODE, IConstants.XWT_NAMESPACE, bindingMode.name());
+		}
+
+		// 7. Converter.
+		if (converter != null) {
+			addAttr(bindingNode, CONVERTER, IConstants.XWT_NAMESPACE, converter);
+		}
+
+		// 8. UpdateSourceTrigger
+		if (triggerMode != null) {
+			addAttr(bindingNode, UPDATE_SOURCE_TRIGGER, IConstants.XWT_NAMESPACE, triggerMode.name());
+		}
+
+		// 9. Code Style.
+		attribute.setUseFlatValue(getCodeStyles().useFlatVlaue);
+
+		if (!attribute.getChildNodes().contains(bindingNode)) {
+			attribute.getChildNodes().add(bindingNode);
+		}
+		if (!node.getAttributes().contains(attribute)) {
+			commandList.add(new AddNewChildCommand(node, attribute));
+		}
+		return commandList.unwrap();
+	}
+
+	public boolean canDelete() {
+		return bindingNode != null && bindingNode.eContainer() != null;
+	}
+
+	public Command deleteWithCommand() {
+		if (canDelete()) {
+			XamlAttribute bindAttr = (XamlAttribute) bindingNode.eContainer();
+			return new DeleteCommand(bindAttr);
+		}
+		return null;
+	}
+
+	public IObservable getModel() {
+		return context.getModel();
+	}
+
+	public Property getModelProperty() {
+		return context.getModelProperty();
+	}
+
+	public IObservable getTarget() {
+		return context.getTarget();
+	}
+
+	public Property getTargetProperty() {
+		return context.getTargetProperty();
+	}
+
+	public UpdateSourceTrigger getTriggerMode() {
+		return triggerMode;
+	}
+
+	public void setTriggerMode(UpdateSourceTrigger triggerMode) {
+		this.triggerMode = triggerMode;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/CodeStyles.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/CodeStyles.java
new file mode 100755
index 0000000..98e0d10
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/CodeStyles.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.databinding;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class CodeStyles {
+
+	public boolean useFlatVlaue = true;
+
+	public boolean useDataContext = true;
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/DataContext.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/DataContext.java
new file mode 100755
index 0000000..b78edb7
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/DataContext.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.databinding;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class DataContext {
+
+	private String key;
+	private Object data;
+
+	public DataContext(String key, Object data) {
+		this.key = key;
+		this.data = data;
+	}
+
+	public String getKey() {
+		return key;
+	}
+
+	public Object getData() {
+		return data;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#hashCode()
+	 */
+	public int hashCode() {
+		final int prime = 31;
+		int result = 1;
+		result = prime * result + ((key == null) ? 0 : key.hashCode());
+		result = prime * result + ((data == null) ? 0 : data.hashCode());
+		return result;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#equals(java.lang.Object)
+	 */
+	public boolean equals(Object obj) {
+		if (this == obj)
+			return true;
+		if (obj == null)
+			return false;
+		if (getClass() != obj.getClass())
+			return false;
+		DataContext other = (DataContext) obj;
+		if (key == null) {
+			if (other.key != null)
+				return false;
+		} else if (!key.equals(other.key))
+			return false;
+		if (data == null) {
+			if (other.data != null)
+				return false;
+		} else if (!data.equals(other.data))
+			return false;
+		return true;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/IBindingHandler.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/IBindingHandler.java
new file mode 100755
index 0000000..4e49627
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/IBindingHandler.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.databinding;
+
+import org.eclipse.gef.commands.Command;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public interface IBindingHandler {
+
+	boolean canBinding();
+
+	Command bindWithCommand();
+
+	boolean canDelete();
+
+	Command deleteWithCommand();
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/IBindingInfo.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/IBindingInfo.java
new file mode 100755
index 0000000..534eeb8
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/IBindingInfo.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.databinding;
+
+import org.eclipse.xwt.databinding.BindingMode;
+import org.eclipse.xwt.internal.core.UpdateSourceTrigger;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public interface IBindingInfo {
+
+	IObservable getTarget();
+
+	Property getTargetProperty();
+
+	IObservable getModel();
+
+	Property getModelProperty();
+
+	String getElementName();
+
+	/**
+	 * The URL of a IConverter,
+	 */
+	String getConverter();
+
+	/**
+	 * One of {@link BindingMode}, <code>TwoWay</code>, <code>OneWay</code>, <code>OneTime</code>;
+	 */
+	BindingMode getBindingMode();
+
+	/**
+	 * One of {@link UpdateSourceTrigger}, <code>Default</code>, <code>PropertyChanged</code>, <code>LostFocus</code>;
+	 */
+	UpdateSourceTrigger getTriggerMode();
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/IObservable.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/IObservable.java
new file mode 100755
index 0000000..6d4cc73
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/IObservable.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.databinding;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public interface IObservable {
+
+	int OBSERVE_SWT_JFACE = 1;
+	int OBSERVE_JAVA_BAEN = 3;
+	int OBSERVE_UNKNOWN = 0;
+
+	Object getSource();
+
+	String getDisplayName();
+
+	IObservable getParent();
+
+	IObservable[] getChildren();
+
+	Property[] getProperties();
+
+	Property getProperty(String propertyName);
+
+	/**
+	 * One type of OBSERVE_WIDGET, OBSERVE_VIEWER, OBSERVE_BAEN and OBSERVE_UNKNOWN
+	 * 
+	 * @return
+	 */
+	int getType();
+
+	/**
+	 * @return
+	 */
+	boolean hasChildren();
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/Observable.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/Observable.java
new file mode 100755
index 0000000..d99c9cd
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/Observable.java
@@ -0,0 +1,153 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.databinding;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.widgets.Widget;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class Observable implements IObservable {
+
+	private Object source;
+	private List<Property> properties;
+	private Observable parent;
+
+	private List<IObservable> children;
+
+	Observable(Object source, Observable parent) {
+		Assert.isNotNull(source);
+		this.source = source;
+		this.parent = parent;
+		if (parent != null) {
+			parent.add(this);
+		}
+	}
+
+	private void add(Observable observable) {
+		if (children == null) {
+			children = new ArrayList<IObservable>();
+		}
+		if (!children.contains(observable)) {
+			children.add(observable);
+		}
+	}
+
+	public boolean hasChildren() {
+		return children != null && children.size() > 0;
+	}
+
+	public int getType() {
+		if (source == null) {
+			return OBSERVE_UNKNOWN;
+		}
+		if (source instanceof Widget || source instanceof Viewer) {
+			return OBSERVE_SWT_JFACE;
+		}
+		return OBSERVE_JAVA_BAEN;
+	}
+
+	public Property[] getProperties() {
+		if (properties == null) {
+			properties = new ArrayList<Property>();
+			Object sourceObj = source;
+			if (source instanceof DataContext) {
+				sourceObj = ((DataContext) source).getData();
+			}
+			Map<String, Class<?>> propertiesMap = PropertyUtil.getProperties(sourceObj);
+			Set<Entry<String, Class<?>>> entrySet = propertiesMap.entrySet();
+			for (Entry<String, Class<?>> entry : entrySet) {
+				Property property = new Property(this, entry.getKey(), entry
+						.getValue());
+				properties.add(property);
+			}
+		}
+		return properties.toArray(new Property[properties.size()]);
+	}
+
+	public Object getSource() {
+		return source;
+	}
+
+	public String getDisplayName() {
+		String simpleName = source.getClass().getSimpleName();
+		if (source instanceof DataContext) {
+			simpleName = simpleName + "(" + ((DataContext) source).getKey() + ")";
+		}
+		return simpleName;
+	}
+
+	public IObservable[] getChildren() {
+		return children == null ? new IObservable[0] : children.toArray(new IObservable[children.size()]);
+	}
+
+	public IObservable getParent() {
+		return parent;
+	}
+
+	public int hashCode() {
+		final int prime = 31;
+		int result = 1;
+		result = prime * result + ((source == null) ? 0 : source.hashCode());
+		return result;
+	}
+
+	public boolean equals(Object obj) {
+		if (this == obj)
+			return true;
+		if (obj == null)
+			return false;
+		if (getClass() != obj.getClass())
+			return false;
+		Observable other = (Observable) obj;
+		if (source == null) {
+			if (other.source != null)
+				return false;
+		} else if (!source.equals(other.source))
+			return false;
+		return true;
+	}
+
+	public Property getProperty(String propertyName) {
+		if (propertyName == null) {
+			return null;
+		}
+		int index = propertyName.indexOf(".");
+		if (index != -1) {
+			String parentName = propertyName.substring(0, index);
+			propertyName = propertyName.substring(index + 1);
+			Property parent = getProperty(parentName);
+			if (parent != null) {
+				return parent.getProperty(propertyName);
+			}
+		}
+		Property[] properties = getProperties();
+		if (properties == null) {
+			return null;
+		}
+		for (Property p : properties) {
+			if (propertyName.equalsIgnoreCase(p.getName())) {
+				return p;
+			}
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ObservableUtil.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ObservableUtil.java
new file mode 100755
index 0000000..6c29b1d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ObservableUtil.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.databinding;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.xwt.internal.utils.UserData;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.tools.ui.designer.core.util.swt.SWTTools;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ObservableUtil {
+
+	private static final Map<Object, Observable> cache = new HashMap<Object, Observable>(1);
+
+	public static Observable getObservable(Object source) {
+		if (source == null) {
+			return null;
+		}
+		Observable observable = cache.get(source);
+		if (observable == null) {
+			observable = createObservable(source, null);
+		}
+		return observable;
+	}
+
+	private static Observable createObservable(Object source, Observable parent) {
+		if (!(source instanceof Viewer)) {
+			Viewer viewer = UserData.getLocalViewer(source);
+			if (viewer != null) {
+				parent = createObservable(viewer, parent);
+			}
+		}
+		Observable observable = new Observable(source, parent);
+		if (source instanceof Widget) {
+			Widget[] children = SWTTools.getChildren((Widget) source);
+			for (Widget widget : children) {
+				createObservable(widget, observable);
+			}
+		}
+		cache.put(source, observable);
+		return observable;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/Property.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/Property.java
new file mode 100755
index 0000000..ad97584
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/Property.java
@@ -0,0 +1,163 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.databinding;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class Property {
+
+	private IObservable parent;
+	private Property parentProperty;
+	private String name;
+	private Class<?> type;
+	private List<Property> properties;
+
+	Property(Property parentProperty, String name, Class<?> type) {
+		this((IObservable) null, name, type);
+		this.parentProperty = parentProperty;
+	}
+
+	Property(IObservable parent, String name, Class<?> type) {
+		this.parent = parent;
+		this.name = name;
+		this.type = type;
+	}
+
+	public Property[] getProperties() {
+		if (properties == null) {
+			properties = new ArrayList<Property>();
+			if (isPrimitive()) {
+			} else if (type.isArray()) {
+				System.out.println("Array");
+			} else if (Collection.class.isAssignableFrom(type)) {
+				System.out.println("Collection");
+			} else {
+				Map<String, Class<?>> propertiesMap = PropertyUtil.getProperties(type);
+				Set<Entry<String, Class<?>>> entrySet = propertiesMap
+						.entrySet();
+				for (Entry<String, Class<?>> entry : entrySet) {
+					properties.add(new Property(this, entry.getKey(), entry
+							.getValue()));
+				}
+			}
+		}
+		return properties.toArray(new Property[0]);
+	}
+
+	private boolean isPrimitive() {
+		return type.isPrimitive() || String.class == type || Image.class == type || Color.class == type || Point.class == type || Rectangle.class == type || Font.class == type;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public IObservable getParent() {
+		if (parent == null && parentProperty != null) {
+			parent = parentProperty.getParent();
+		}
+		return parent;
+	}
+
+	public boolean hasChildren() {
+		return getProperties().length > 0;
+	}
+
+	public String toString() {
+		return getDisplayName();
+	}
+
+	public String getDisplayName() {
+		String thisName = name == null ? "" : name;
+		if (parentProperty != null && parentProperty.name != null) {
+			return parentProperty.name + "." + thisName;
+		}
+		return thisName;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#hashCode()
+	 */
+	public int hashCode() {
+		final int prime = 31;
+		int result = 1;
+		result = prime * toString().hashCode();
+		return result;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#equals(java.lang.Object)
+	 */
+	public boolean equals(Object obj) {
+		if (this == obj)
+			return true;
+		if (obj == null)
+			return false;
+		if (getClass() != obj.getClass())
+			return false;
+		Property other = (Property) obj;
+		return toString().equalsIgnoreCase(other.toString());
+	}
+
+	public Class<?> getType() {
+		return type;
+	}
+
+	public Property getProperty(String propertyName) {
+		if (propertyName == null) {
+			return null;
+		}
+		if (propertyName.startsWith("(") && propertyName.endsWith(")")) {
+			return getDetailProperty(propertyName);
+		}
+		int index = propertyName.indexOf(".");
+		if (index != -1) {
+			String parentName = propertyName.substring(0, index);
+			propertyName = propertyName.substring(index + 1);
+			Property parent = getProperty(parentName);
+			return parent.getProperty(propertyName);
+		}
+		Property[] children = getProperties();
+		if (children == null) {
+			return null;
+		}
+		for (Property p : children) {
+			if (propertyName.equalsIgnoreCase(p.getName())) {
+				return p;
+			}
+		}
+		return null;
+	}
+
+	private Property getDetailProperty(String propertyName) {
+		return this;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/PropertyUtil.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/PropertyUtil.java
new file mode 100755
index 0000000..6fdd175
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/PropertyUtil.java
@@ -0,0 +1,231 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.databinding;
+
+import java.beans.BeanInfo;
+import java.beans.IntrospectionException;
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+
+import org.eclipse.core.databinding.property.list.IListProperty;
+import org.eclipse.core.databinding.property.set.ISetProperty;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.jface.databinding.swt.IWidgetValueProperty;
+import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.viewers.ViewerProperties;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.widgets.Widget;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class PropertyUtil {
+	private static Map<String, IWidgetValueProperty> SWT_PROPERTIES;
+
+	private static Map<String, org.eclipse.core.databinding.property.IProperty> JFACE_PROPERTIES;
+
+	private static ViewerPropertiesCollector viewerCollector;
+	private static WidgetPropertiesCollector widgetCollector;
+	private static BeanPropertiesCollector beanCollector;
+
+	private PropertyUtil() {
+	}
+
+	public static synchronized Map<String, Class<?>> getProperties(Object object) {
+		if (object == null) {
+			return null;
+		}
+		if (object instanceof Widget) {
+			if (widgetCollector == null) {
+				widgetCollector = new WidgetPropertiesCollector();
+			}
+			return widgetCollector.getProperties(object);
+		} else if (object instanceof Viewer) {
+			if (viewerCollector == null) {
+				viewerCollector = new ViewerPropertiesCollector();
+			}
+			return viewerCollector.getProperties(object);
+		} else {
+			if (beanCollector == null) {
+				beanCollector = new BeanPropertiesCollector();
+			}
+			return beanCollector.getProperties(object);
+		}
+	}
+
+	public static synchronized Map<String, org.eclipse.core.databinding.property.IProperty> getJfaceProperties() {
+		if (JFACE_PROPERTIES == null) {
+			JFACE_PROPERTIES = new HashMap<String, org.eclipse.core.databinding.property.IProperty>();
+			Method[] declaredMethods = ViewerProperties.class.getDeclaredMethods();
+			for (Method method : declaredMethods) {
+				try {
+					org.eclipse.core.databinding.property.IProperty property = (org.eclipse.core.databinding.property.IProperty) method.invoke(null, new Object[0]);
+					JFACE_PROPERTIES.put(method.getName(), property);
+				} catch (Exception e) {
+					JFACE_PROPERTIES.put(method.getName(), null);
+				}
+			}
+		}
+		return JFACE_PROPERTIES;
+	}
+
+	public static synchronized Map<String, IWidgetValueProperty> getSwtProperties() {
+		if (SWT_PROPERTIES == null) {
+			SWT_PROPERTIES = new HashMap<String, IWidgetValueProperty>();
+			Method[] declaredMethods = WidgetProperties.class.getDeclaredMethods();
+			for (Method method : declaredMethods) {
+				try {
+					IWidgetValueProperty property = (IWidgetValueProperty) method.invoke(null, new Object[0]);
+					SWT_PROPERTIES.put(method.getName(), property);
+				} catch (Exception e) {
+				}
+			}
+		}
+		return SWT_PROPERTIES;
+	}
+
+	static abstract class PropertiesCollector {
+		private Map<Object, Map<String, Class<?>>> cache = new HashMap<Object, Map<String, Class<?>>>();
+
+		Map<String, Class<?>> getProperties(Object object) {
+			Map<String, Class<?>> properties = cache.get(object);
+			if (properties == null) {
+				properties = createProperties(object);
+			}
+			return properties;
+		}
+
+		abstract Map<String, Class<?>> createProperties(Object object);
+	}
+
+	static class ViewerPropertiesCollector extends PropertiesCollector {
+
+		protected Map<String, Class<?>> createProperties(Object object) {
+			IMetaclass metaclass = XWT.getMetaclass(object);
+			if (metaclass == null) {
+				return null;
+			}
+
+			Map<String, Class<?>> results = new HashMap<String, Class<?>>();
+			Map<String, org.eclipse.core.databinding.property.IProperty> jfaceProperties = getJfaceProperties();
+			Set<Entry<String, org.eclipse.core.databinding.property.IProperty>> entrySet = jfaceProperties
+					.entrySet();
+			for (Entry<String, org.eclipse.core.databinding.property.IProperty> entry : entrySet) {
+				String propertyName = entry.getKey();
+				org.eclipse.core.databinding.property.IProperty host = entry
+						.getValue();
+				Class<?> type = null;
+				if (host instanceof ISetProperty) {
+					type = Set.class;
+				} else if (host instanceof IListProperty) {
+					type = List.class;
+				} else {
+					type = Object.class;
+				}
+				results.put(propertyName, type);
+			}
+			return results;
+		}
+	}
+
+	static class WidgetPropertiesCollector extends PropertiesCollector {
+
+		private boolean supportWidget(String name, Class<?> propertyType) {
+			IWidgetValueProperty property = getSwtProperties().get(name);
+			if (property == null) {
+				return false;
+			}
+			Class<?> definedType = (Class<?>) property.getValueType();
+			if (propertyType == null || definedType == null) {
+				return false;
+			}
+			boolean support = propertyType.isAssignableFrom(definedType);
+			if (support) {
+				return true;
+			} else if (propertyType.isPrimitive()) {
+				try {
+					Field typeField = definedType.getDeclaredField("TYPE");
+					return propertyType == typeField.get(null);
+				} catch (Exception e) {
+				}
+			} else if (definedType.isPrimitive()) {
+				try {
+					Field typeField = propertyType.getDeclaredField("TYPE");
+					return definedType == typeField.get(null);
+				} catch (Exception e) {
+				}
+			}
+			return false;
+		}
+
+		protected Map<String, Class<?>> createProperties(Object object) {
+			IMetaclass metaclass = XWT.getMetaclass(object);
+			if (metaclass == null) {
+				return null;
+			}
+			Map<String, Class<?>> results = new HashMap<String, Class<?>>();
+			IProperty[] properties = metaclass.getProperties();
+			for (IProperty iProperty : properties) {
+				String propertyName = iProperty.getName();
+				Class<?> valueType = iProperty.getType();
+				if (!supportWidget(propertyName, valueType)) {
+					continue;
+				}
+				results.put(propertyName, valueType);
+			}
+			return results;
+		}
+	}
+
+	static class BeanPropertiesCollector extends PropertiesCollector {
+
+		protected Map<String, Class<?>> createProperties(Object object) {
+			if (object == null) {
+				return null;
+			}
+			Class<?> type = (object instanceof Class<?>) ? (Class<?>) object : object.getClass();
+			Map<String, Class<?>> result = new HashMap<String, Class<?>>();
+			try {
+				BeanInfo beanInfo = java.beans.Introspector.getBeanInfo(type);
+				PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
+				for (PropertyDescriptor pd : propertyDescriptors) {
+					String propertyName = pd.getName();
+					if (("class").equals(propertyName) || result.containsKey(propertyName) || pd.getPropertyType() == null) {
+						continue;
+					}
+					result.put(propertyName, pd.getPropertyType());
+				}
+				for (Field f : type.getDeclaredFields()) {
+					String propertyName = f.getName().toLowerCase();
+					if (("class").equals(propertyName) || result.containsKey(propertyName) || Modifier.isFinal(f.getModifiers()) || !Modifier.isPublic(f.getModifiers()) || f.getType() == null) {
+						continue;
+					}
+					result.put(propertyName, f.getType());
+				}
+
+			} catch (IntrospectionException e) {
+				e.printStackTrace();
+			}
+			return result;
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/AdvancedBindingDialog.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/AdvancedBindingDialog.java
new file mode 100755
index 0000000..adcb8d3
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/AdvancedBindingDialog.java
@@ -0,0 +1,170 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.databinding.ui;
+
+import org.eclipse.jface.dialogs.TitleAreaDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.widgets.ExpandableComposite;
+import org.eclipse.ui.internal.forms.widgets.FormFonts;
+import org.eclipse.xwt.tools.ui.designer.databinding.BindingContext;
+import org.eclipse.xwt.tools.ui.designer.databinding.BindingInfo;
+import org.eclipse.xwt.tools.ui.designer.databinding.IObservable;
+import org.eclipse.xwt.tools.ui.designer.databinding.Property;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class AdvancedBindingDialog extends TitleAreaDialog {
+
+	private BindingInfo binding;
+	private OptionsGroup optionsGroup;
+	private CodeGenGroup codeGenGroup;
+	private Text elementNameText;
+
+	public AdvancedBindingDialog(Shell parentShell, BindingInfo binding) {
+		super(parentShell);
+		this.binding = binding;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell.setText("Advanced Binding Dialog");
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.dialogs.TitleAreaDialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	protected Control createDialogArea(Composite parent) {
+		Composite comp = (Composite) super.createDialogArea(parent);
+		Composite control = new Composite(comp, SWT.NONE);
+		control.setLayoutData(new GridData(GridData.FILL_BOTH));
+		control.setLayout(new GridLayout(2, false));
+
+		createBoldLabel(control, "Target:");
+		Label targetLabel = new Label(control, SWT.NONE);
+		targetLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+		BindingContext bindingContext = binding.getBindingContext();
+		{
+			IObservable target = bindingContext.getTarget();
+			String observeName = target.getDisplayName();
+			Property property = bindingContext.getTargetProperty();
+			if (observeName != null && property != null) {
+				targetLabel.setText(observeName + "." + property);
+			}
+		}
+
+		createBoldLabel(control, "Model: ");
+		Label modelLabel = new Label(control, SWT.NONE);
+		modelLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+		IObservable model = bindingContext.getModel();
+		{
+			String observeName = model.getDisplayName();
+			Property property = bindingContext.getModelProperty();
+			if (observeName != null && property != null) {
+				modelLabel.setText(observeName + "." + property);
+			}
+		}
+		if (model.getType() == IObservable.OBSERVE_SWT_JFACE) {
+			createBoldLabel(control, "ElementName: ");
+			elementNameText = new Text(control, SWT.BORDER);
+			elementNameText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+			if (binding.getElementName() != null) {
+				elementNameText.setEditable(false);
+				elementNameText.setText(binding.getElementName());
+			}
+		}
+
+		// Label separator = new Label(control, SWT.HORIZONTAL | SWT.SEPARATOR);
+		// GridData dd = new GridData(GridData.FILL_HORIZONTAL);
+		// dd.horizontalSpan = 2;
+		// separator.setLayoutData(dd);
+
+		final Composite bottom = new Composite(control, SWT.BORDER);
+		bottom.setBackground(control.getDisplay().getSystemColor(SWT.COLOR_WHITE));
+		GridLayout layout = new GridLayout();
+		layout.marginWidth = 0;
+		layout.marginHeight = 0;
+		bottom.setLayout(layout);
+		GridData layoutData = new GridData(GridData.FILL_BOTH);
+		layoutData.horizontalSpan = 2;
+		bottom.setLayoutData(layoutData);
+
+		optionsGroup = new OptionsGroup();
+		final ExpandableComposite optGroup = optionsGroup.createGroup(bottom, SWT.NONE);
+		optGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		optionsGroup.setInput(binding);
+
+		codeGenGroup = new CodeGenGroup();
+		final ExpandableComposite codeGroup = codeGenGroup.createGroup(bottom, SWT.NONE);
+		codeGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		codeGenGroup.setInput(binding.getCodeStyles());
+
+		bottom.getDisplay().asyncExec(new Runnable() {
+			public void run() {
+				optGroup.setExpanded(false);
+				codeGroup.setExpanded(false);
+				bottom.layout();
+			}
+		});
+
+		setTitle("Advanced Options");
+		setMessage("Choose mode and converter for create data binding.");
+		return control;
+	}
+
+	@SuppressWarnings("restriction")
+	private void createBoldLabel(Composite parent, String text) {
+		Label label = new Label(parent, SWT.NONE);
+		label.setText(text);
+		GridData gd = new GridData();
+		gd.horizontalIndent = 5;
+		label.setLayoutData(gd);
+		label.setFont(FormFonts.getInstance().getBoldFont(label.getDisplay(), label.getFont()));
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+	 */
+	protected void okPressed() {
+		binding.setBindingMode(optionsGroup.getBindingMode());
+		binding.setTriggerMode(optionsGroup.getUpdateSourceTrigger());
+		Class<?> converter = optionsGroup.getConverter();
+		if (converter != null) {
+			binding.setConverter(converter.getName());
+		}
+		if (elementNameText != null) {
+			binding.setElementName(elementNameText.getText());
+		}
+		binding.setCodeStyles(codeGenGroup.getCodeStyles());
+		super.okPressed();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/BindingTableGroup.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/BindingTableGroup.java
new file mode 100755
index 0000000..e3434ac
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/BindingTableGroup.java
@@ -0,0 +1,338 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.databinding.ui;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.CommandStack;
+import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.jface.layout.TableColumnLayout;
+import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.swt.widgets.ToolItem;
+import org.eclipse.xwt.tools.ui.designer.XWTDesignerPlugin;
+import org.eclipse.xwt.tools.ui.designer.databinding.BindingContext;
+import org.eclipse.xwt.tools.ui.designer.databinding.BindingInfo;
+import org.eclipse.xwt.tools.ui.designer.databinding.IObservable;
+import org.eclipse.xwt.tools.ui.designer.databinding.Property;
+import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
+import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+public class BindingTableGroup implements IGroup {
+
+	private static final String[] COLUMNS = new String[] { "Target", "Target Properties", "Model", "Model Properties" };
+	private TableViewer viewer;
+	private ToolItem editAction;
+	private ToolItem deleteAction;
+	private ToolItem deleteAllAction;
+	private ToolItem gotoAction;
+
+	private CommandStack commandStack;
+
+	public BindingTableGroup(CommandStack commandStack) {
+		this.commandStack = commandStack;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.databinding.ui.IGroup#createGroup(org.eclipse.swt.widgets.Composite, int)
+	 */
+	public Composite createGroup(final Composite parent, int style) {
+		Composite group = new Composite(parent, style);
+		group.setLayout(new GridLayout(2, false));
+		Composite tableComp = new Composite(group, SWT.NONE);
+		GridData layoutData = new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.FILL_HORIZONTAL);
+		tableComp.setLayoutData(layoutData);
+		TableColumnLayout layout = new TableColumnLayout();
+		tableComp.setLayout(layout);
+		viewer = new TableViewer(tableComp, SWT.FULL_SELECTION | SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL);
+		viewer.setColumnProperties(COLUMNS);
+		viewer.setLabelProvider(new LabelProvider());
+		viewer.setContentProvider(new ContentProvider());
+
+		Table table = viewer.getTable();
+		for (String columnName : COLUMNS) {
+			TableColumn column = new TableColumn(table, SWT.CENTER);
+			column.setText(columnName);
+			layout.setColumnData(column, new ColumnWeightData(columnName.length()));
+		}
+
+		table.setHeaderVisible(true);
+		table.setLinesVisible(true);
+		viewer.addSelectionChangedListener(new ISelectionChangedListener() {
+			public void selectionChanged(SelectionChangedEvent event) {
+				enableActions();
+			}
+		});
+		viewer.addDoubleClickListener(new IDoubleClickListener() {
+			public void doubleClick(DoubleClickEvent event) {
+				edit();
+			}
+		});
+
+		Composite toolsComp = new Composite(group, SWT.NONE);
+		toolsComp.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_FILL));
+		toolsComp.setLayout(new FillLayout());
+
+		ToolBar toolBar = new ToolBar(toolsComp, SWT.VERTICAL | SWT.FLAT);
+
+		Listener listener = new Listener() {
+			public void handleEvent(Event event) {
+				if (SWT.Selection != event.type) {
+					return;
+				}
+				if (event.widget == editAction) {
+					edit();
+				} else if (event.widget == deleteAction) {
+					delete();
+				} else if (event.widget == deleteAllAction) {
+					deleteAll();
+				} else if (event.widget == gotoAction) {
+					goTo();
+					parent.getShell().setMinimized(true);
+				}
+			}
+		};
+
+		editAction = new ToolItem(toolBar, SWT.PUSH);
+		editAction.setImage(ImageShop.get(ImageShop.IMG_BINDING_EDIT));
+		editAction.setToolTipText("Edit");
+		editAction.setEnabled(false);
+		editAction.addListener(SWT.Selection, listener);
+		new ToolItem(toolBar, SWT.SEPARATOR | SWT.HORIZONTAL);
+
+		deleteAction = new ToolItem(toolBar, SWT.PUSH);
+		deleteAction.setToolTipText("Delete");
+		deleteAction.setImage(ImageShop.get(ImageShop.IMG_BINDING_DELETE));
+		deleteAction.setEnabled(false);
+		deleteAction.addListener(SWT.Selection, listener);
+
+		deleteAllAction = new ToolItem(toolBar, SWT.PUSH);
+		deleteAllAction.setToolTipText("Delete All");
+		deleteAllAction.setImage(ImageShop.get(ImageShop.IMG_BINDING_REMOVE_ALL));
+		deleteAllAction.addListener(SWT.Selection, listener);
+		deleteAllAction.setEnabled(false);
+		new ToolItem(toolBar, SWT.SEPARATOR | SWT.HORIZONTAL);
+
+		gotoAction = new ToolItem(toolBar, SWT.PUSH);
+		gotoAction.setImage(ImageShop.get(ImageShop.IMG_GOTO_DEFINITION));
+		gotoAction.setEnabled(false);
+		gotoAction.setToolTipText("Go to definition");
+		gotoAction.addListener(SWT.Selection, listener);
+
+		Point size = toolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT);
+		layoutData.heightHint = size.y;
+		layoutData.minimumHeight = size.y;
+		return group;
+	}
+
+	private void executeCommand(Command command) {
+		if (command == null || !command.canExecute()) {
+			return;
+		}
+		if (commandStack == null) {
+			command.execute();
+		} else {
+			commandStack.execute(command);
+		}
+	}
+
+	protected void edit() {
+		BindingInfo binding = getSelection();
+		AdvancedBindingDialog dialog = new AdvancedBindingDialog(new Shell(), binding);
+		if (dialog.open() == Window.OK) {
+			executeCommand(binding.bindWithCommand());
+		}
+	}
+
+	protected void delete() {
+		BindingInfo binding = getSelection();
+		executeCommand(computeDeleteCommand(binding));
+		viewer.remove(binding);
+	}
+
+	private Command computeDeleteCommand(final BindingInfo binding) {
+		XamlElement bindingNode = binding.getBindingNode();
+		if (bindingNode == null) {
+			return null;
+		}
+		final XamlNode parent = bindingNode.getParent();
+		if (parent == null) {
+			return null;
+		}
+		parent.eContainer().eAdapters().add(new AdapterImpl() {
+			public void notifyChanged(Notification msg) {
+				if (msg.getEventType() == Notification.ADD && parent == msg.getNewValue()) {
+					viewer.add(binding);
+				}
+			}
+		});
+		return binding.deleteWithCommand();
+	}
+
+	protected void deleteAll() {
+		Object input = viewer.getInput();
+		if (input instanceof BindingInfo[]) {
+			CompoundCommand cmd = new CompoundCommand("Delete All");
+			for (BindingInfo binding : (BindingInfo[]) input) {
+				Command deleteCmd = computeDeleteCommand(binding);
+				if (deleteCmd == null || !deleteCmd.canExecute()) {
+					continue;
+				}
+				cmd.add(deleteCmd);
+			}
+			executeCommand(cmd.unwrap());
+		}
+		viewer.setInput(null);
+	}
+
+	protected void goTo() {
+		BindingInfo binding = getSelection();
+		if (binding == null) {
+			return;
+		}
+		XamlElement bindingNode = binding.getBindingNode();
+		if (bindingNode != null && bindingNode.eContainer() != null) {
+			XWTDesigner designer = XWTDesignerPlugin.getDefault().getActiveDesigner();
+			if (designer != null) {
+				designer.gotoDefinition((XamlNode) bindingNode.eContainer());
+			}
+		}
+	}
+
+	public TableViewer getViewer() {
+		return viewer;
+	}
+
+	protected void enableActions() {
+		ISelection selection = viewer.getSelection();
+		boolean enabled = !selection.isEmpty();
+		if (editAction != null) {
+			editAction.setEnabled(enabled);
+		}
+		if (deleteAction != null) {
+			deleteAction.setEnabled(enabled);
+		}
+		if (gotoAction != null) {
+			gotoAction.setEnabled(enabled);
+		}
+	}
+
+	public BindingInfo getSelection() {
+		IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
+		if (selection != null)
+			return (BindingInfo) selection.getFirstElement();
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.databinding.ui.IGroup#setInput(java.lang.Object)
+	 */
+	public void setInput(Object input) {
+		if (viewer != null) {
+			viewer.setInput(input);
+			if (deleteAllAction != null) {
+				deleteAllAction.setEnabled(true);
+			}
+		}
+	}
+
+	private static class LabelProvider extends
+			org.eclipse.jface.viewers.LabelProvider implements
+			ITableLabelProvider {
+
+		public String getColumnText(Object element, int columnIndex) {
+			if (element == null)
+				return "";
+			if (element instanceof BindingInfo) {
+				BindingInfo binding = (BindingInfo) element;
+				BindingContext bindingContext = binding.getBindingContext();
+				IObservable target = bindingContext.getTarget();
+				IObservable model = bindingContext.getModel();
+				Property targetProperty = bindingContext.getTargetProperty();
+				Property modelProperty = bindingContext.getModelProperty();
+				switch (columnIndex) {
+				case 0:
+					return target.getDisplayName();
+				case 1:
+					return targetProperty == null ? "" : targetProperty.toString();
+				case 2:
+					return model.getDisplayName();
+
+				case 3:
+					return modelProperty == null ? "" : modelProperty.toString();
+				}
+			}
+			return "";
+		}
+
+		public Image getColumnImage(Object element, int columnIndex) {
+			return null;
+		}
+
+	}
+
+	private static class ContentProvider implements IStructuredContentProvider {
+
+		public Object[] getElements(Object inputElement) {
+			if (inputElement == null)
+				return new Object[0];
+			if (inputElement.getClass().isArray()) {
+				return (Object[]) inputElement;
+			} else if (inputElement instanceof Collection) {
+				return ((Collection) inputElement).toArray(new Object[0]);
+			}
+			return new Object[0];
+		}
+
+		public void dispose() {
+
+		}
+
+		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/CodeGenGroup.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/CodeGenGroup.java
new file mode 100755
index 0000000..150e644
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/CodeGenGroup.java
@@ -0,0 +1,185 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.databinding.ui;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.events.ExpansionAdapter;
+import org.eclipse.ui.forms.events.ExpansionEvent;
+import org.eclipse.ui.forms.widgets.ExpandableComposite;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.xwt.tools.ui.designer.databinding.CodeStyles;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class CodeGenGroup implements IGroup {
+
+	private static final String STYLE_FLAT = "Flat";
+	private static final String STYLE_TREE = "Tree";
+	private static final String DATACONTEXT = "DataContext";
+	private static final String STATICRESOURCE = "StaticResource";
+
+	private static final String ATTRIBUTE_VALUE_FLAT = "<Label text=\"{Binding path=\"[PATH]\", mode=\"TwoWay\"}\">";
+	private static final String ATTRIBUTE_VALUE_TREE = "<Lable.text>\n\r\t<Binding path=\"[PATH]\">\n\r\t\t<Binding.mode>TwoWay</Binding.mode>\n\r\t</Binding>\n\r</Lable.text>";
+	private static final String CODE_DATACONTEXT = "<Shell DataContext=\"{StaticResource myData}\">\n\r\t<Shell.Resources>\n\r\t\t<y:Person x:key=\"myData\"/>\n\r\t</Shell.Resources>\n\r</Shell>\n<Label text=\"{Binding path=\"name\", mode=\"TwoWay\"}\">";
+	private static final String CODE_STATICRESOURCE = "{Binding source=\"StaticResource myData\" path=\"name\"}";
+	private Text bindingPreview;
+	private Text pathPreview;
+
+	private Button flatValueRadio;
+	private Button treeValueRadio;
+
+	private Button dataContextRadio;
+	private Button staticResourceRadio;
+
+	private CodeStyles codeStyles;
+
+	public ExpandableComposite createGroup(final Composite parent, int style) {
+		FormToolkit formToolkit = new FormToolkit(parent.getDisplay());
+		// formToolkit.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
+		final ExpandableComposite result = formToolkit.createExpandableComposite(parent, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
+		result.setText("Code Gen Settings");
+		Composite cilent = formToolkit.createComposite(result);
+		cilent.setLayout(new GridLayout());
+		result.setClient(cilent);
+		result.addExpansionListener(new ExpansionAdapter() {
+			public void expansionStateChanged(ExpansionEvent e) {
+				parent.layout(new Control[] { result });
+			}
+		});
+		{
+			Group bindComp = new Group(cilent, SWT.NONE);
+			GridLayout layout = new GridLayout(2, false);
+			layout.marginWidth = 0;
+			bindComp.setLayout(layout);
+			bindComp.setLayoutData(new GridData(GridData.FILL_BOTH));
+			bindComp.setText("Code of Binding:");
+			formToolkit.adapt(bindComp);
+
+			flatValueRadio = formToolkit.createButton(bindComp, STYLE_FLAT, SWT.RADIO);
+			flatValueRadio.setData(STYLE_FLAT);
+			flatValueRadio.setLayoutData(new GridData(SWT.LEFT, SWT.BOTTOM, false, true, 1, 1));
+
+			bindingPreview = formToolkit.createText(bindComp, ATTRIBUTE_VALUE_FLAT, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.READ_ONLY);
+			GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 2);
+			bindingPreview.setLayoutData(layoutData);
+
+			treeValueRadio = formToolkit.createButton(bindComp, STYLE_TREE, SWT.RADIO);
+			treeValueRadio.setData(STYLE_TREE);
+			treeValueRadio.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, true, 1, 1));
+
+			Listener listener = new Listener() {
+				public void handleEvent(Event event) {
+					Button button = (Button) event.widget;
+					if (button.getSelection())
+						previewBindingCodes(event.widget.getData().toString());
+				}
+			};
+			flatValueRadio.addListener(SWT.Selection, listener);
+			treeValueRadio.addListener(SWT.Selection, listener);
+
+		}
+		{
+			Group pathComp = new Group(cilent, SWT.NONE);
+			GridLayout layout = new GridLayout(2, false);
+			layout.marginWidth = 0;
+			pathComp.setLayout(layout);
+			pathComp.setLayoutData(new GridData(GridData.FILL_BOTH));
+			pathComp.setText("Code of Path:");
+			formToolkit.adapt(pathComp);
+
+			dataContextRadio = formToolkit.createButton(pathComp, DATACONTEXT, SWT.RADIO);
+			dataContextRadio.setData(DATACONTEXT);
+			dataContextRadio.setLayoutData(new GridData(SWT.LEFT, SWT.BOTTOM, false, true, 1, 1));
+
+			pathPreview = formToolkit.createText(pathComp, CODE_DATACONTEXT, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.READ_ONLY);
+			GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 3);
+			pathPreview.setLayoutData(layoutData);
+
+			staticResourceRadio = formToolkit.createButton(pathComp, STATICRESOURCE, SWT.RADIO);
+			staticResourceRadio.setData(STATICRESOURCE);
+			staticResourceRadio.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, true, 1, 1));
+
+			Listener listener = new Listener() {
+				public void handleEvent(Event event) {
+					previewPathCodes(event.widget.getData().toString());
+				}
+			};
+			dataContextRadio.addListener(SWT.Selection, listener);
+			staticResourceRadio.addListener(SWT.Selection, listener);
+
+		}
+		return result;
+	}
+
+	protected void previewPathCodes(String style) {
+		if (DATACONTEXT.equals(style)) {
+			pathPreview.setText(CODE_DATACONTEXT);
+			getCodeStyles().useDataContext = true;
+		} else if (STATICRESOURCE.equals(style)) {
+			pathPreview.setText(CODE_STATICRESOURCE);
+			getCodeStyles().useDataContext = false;
+		}
+	}
+
+	protected void previewBindingCodes(String style) {
+		if (STYLE_FLAT.equals(style)) {
+			bindingPreview.setText(ATTRIBUTE_VALUE_FLAT);
+			getCodeStyles().useFlatVlaue = true;
+		} else if (STYLE_TREE.equals(style)) {
+			bindingPreview.setText(ATTRIBUTE_VALUE_TREE);
+			getCodeStyles().useFlatVlaue = false;
+		}
+	}
+
+	public CodeStyles getCodeStyles() {
+		if (codeStyles == null) {
+			codeStyles = new CodeStyles();
+		}
+		return codeStyles;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.databinding.ui.IGroup#setInput(java.lang.Object)
+	 */
+	public void setInput(Object input) {
+		if (input != null && input instanceof CodeStyles) {
+			codeStyles = (CodeStyles) input;
+		} else {
+			codeStyles = new CodeStyles();
+		}
+		previewCodeStyles();
+	}
+
+	private void previewCodeStyles() {
+		CodeStyles settings = getCodeStyles();
+		if (dataContextRadio != null || flatValueRadio != null) {
+			flatValueRadio.setSelection(settings.useFlatVlaue);
+			treeValueRadio.setSelection(!settings.useFlatVlaue);
+			previewBindingCodes(settings.useFlatVlaue ? STYLE_FLAT : STYLE_TREE);
+			dataContextRadio.setSelection(settings.useDataContext);
+			previewPathCodes(settings.useDataContext ? DATACONTEXT : STATICRESOURCE);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/DataBindingView.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/DataBindingView.java
new file mode 100755
index 0000000..8890e12
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/DataBindingView.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.databinding.ui;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.commands.CommandStack;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.ui.part.ViewPart;
+import org.eclipse.xwt.tools.ui.designer.core.editor.Designer;
+import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
+import org.eclipse.xwt.tools.ui.designer.databinding.BindingContext;
+import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class DataBindingView extends ViewPart {
+
+	private Composite partControl;
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	public void createPartControl(Composite parent) {
+		EditPart root = getRoot();
+		CommandStack commandStack = null;
+		if (root != null) {
+			commandStack = EditDomain.getEditDomain(root).getCommandStack();
+		}
+		DatabindingGroup databindingGroup = new DatabindingGroup(commandStack, new BindingContext());
+		partControl = databindingGroup.createGroup(parent, SWT.V_SCROLL);
+		databindingGroup.setInput(root);
+	}
+
+	private EditPart getRoot() {
+		try {
+			Designer designer = (Designer) getSite().getWorkbenchWindow().getActivePage().getActiveEditor();
+			Object root = designer.getVisualsRender().getRoot();
+			if (root instanceof Widget) {
+				root = XWTProxy.getModel((Widget) root);
+			}
+			return designer.getEditPart(root);
+		} catch (Exception e) {
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+	 */
+	public void setFocus() {
+		partControl.setFocus();
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/DataBindingWindow.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/DataBindingWindow.java
new file mode 100755
index 0000000..0b2d1c7
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/DataBindingWindow.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.databinding.ui;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.commands.CommandStack;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
+import org.eclipse.xwt.tools.ui.designer.databinding.BindingContext;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class DataBindingWindow extends Window {
+
+	private static final int INIT_HEIGHT = 500;
+	private static final int INIT_WIDTH = 600;
+
+	private EditPart root;
+
+	public DataBindingWindow(Shell parentShell, EditPart root) {
+		super(parentShell);
+		this.root = root;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell.setText("Create Data Bindings");
+		newShell.setSize(INIT_WIDTH, INIT_HEIGHT);
+		Rectangle bounds = newShell.getDisplay().getBounds();
+		newShell.setLocation((bounds.width - INIT_WIDTH) / 2, (bounds.height - INIT_HEIGHT) / 2);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.window.Window#createContents(org.eclipse.swt.widgets.Composite)
+	 */
+	protected Control createContents(Composite parent) {
+		CommandStack commandStack = EditDomain.getEditDomain(root).getCommandStack();
+		DatabindingGroup databindingGroup = new DatabindingGroup(commandStack, new BindingContext());
+		Composite control = databindingGroup.createGroup(parent, SWT.NONE);
+		control.setLayoutData(new GridData(GridData.FILL_BOTH));
+		databindingGroup.setInput(root);
+		return control;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/DatabindingGroup.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/DatabindingGroup.java
new file mode 100755
index 0000000..07f54c4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/DatabindingGroup.java
@@ -0,0 +1,237 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.databinding.ui;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.util.List;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.CommandStack;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.tools.ui.designer.core.util.DisplayUtil;
+import org.eclipse.xwt.tools.ui.designer.databinding.BindingContext;
+import org.eclipse.xwt.tools.ui.designer.databinding.BindingHelper;
+import org.eclipse.xwt.tools.ui.designer.databinding.BindingInfo;
+import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class DatabindingGroup implements IGroup {
+
+	private ObserveTargetGroup targetComp;
+	private ObserveModelGroup modelComp;
+	private Button bindingAction;
+	private BindingTableGroup bindingsTableGroup;
+	private static final String ACTION_TOOLTIP_TEXT = "Create data binding use this selection";
+	private static final String ACTION_TOOLTIP_MESSAGE = "Use Ctrl for create binding without dialog(if this is possible)";
+
+	private Composite targetGroup;
+	private Composite modelGroup;
+
+	private CommandStack commandStack;
+	private BindingContext bindingContext;
+
+	private Object input;
+
+	public DatabindingGroup(CommandStack commandStack, BindingContext bindingContext) {
+		this.commandStack = commandStack;
+		this.bindingContext = bindingContext;
+	}
+
+	public Composite createGroup(Composite control, int style) {
+		Composite group = new Composite(control, SWT.NONE);
+		GridLayout layout = new GridLayout();
+		layout.numColumns = 3;
+		group.setLayout(layout);
+		Label label = new Label(group, SWT.NONE);
+		label.setText("Bound properties");
+		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+		gd.horizontalIndent = 5;
+		gd.horizontalSpan = 3;
+		label.setLayoutData(gd);
+
+		bindingsTableGroup = new BindingTableGroup(commandStack);
+		Composite table = bindingsTableGroup.createGroup(group, SWT.NONE);
+		GridData layoutData = new GridData(GridData.FILL_HORIZONTAL);
+		layoutData.horizontalSpan = 3;
+		table.setLayoutData(layoutData);
+		bindingsTableGroup.getViewer().addSelectionChangedListener(new ISelectionChangedListener() {
+			public void selectionChanged(SelectionChangedEvent event) {
+				BindingInfo selection = bindingsTableGroup.getSelection();
+				handleSelection(selection);
+			}
+		});
+
+		GridData sepGd = new GridData(GridData.FILL_HORIZONTAL);
+		sepGd.horizontalIndent = 5;
+		sepGd.horizontalSpan = 3;
+		new Label(group, SWT.SEPARATOR | SWT.HORIZONTAL).setLayoutData(sepGd);
+
+		targetComp = new ObserveTargetGroup(bindingContext, null);
+		bindingContext.addPropertyChangeListener(new PropertyChangeListener() {
+			public void propertyChange(PropertyChangeEvent evt) {
+				updateBindingAction();
+			}
+		});
+		targetGroup = targetComp.createGroup(group, SWT.NONE);
+		targetGroup.setLayoutData(new GridData(GridData.FILL_BOTH));
+		// targetGroup.setEnabled(false);
+		targetGroup.setToolTipText("please select a operation");
+
+		Composite separator = createButtonSeparator(group);
+		int gdStyle = GridData.FILL_VERTICAL;
+		separator.setLayoutData(new GridData(gdStyle));
+
+		modelComp = new ObserveModelGroup(bindingContext, null);
+		modelGroup = modelComp.createGroup(group, SWT.NONE);
+		modelGroup.setLayoutData(new GridData(GridData.FILL_BOTH));
+		// modelGroup.setEnabled(false);
+		return group;
+	}
+
+	protected void handleSelection(BindingInfo binding) {
+		if (binding == null) {
+			return;
+		}
+		BindingContext bc = binding.getBindingContext();
+		bindingContext.setModel(bc.getModel());
+		bindingContext.setModelProperty(bc.getModelProperty());
+		bindingContext.setTarget(bc.getTarget());
+		bindingContext.setTargetProperty(bc.getTargetProperty());
+		bindingAction.setEnabled(false);
+	}
+
+	private Composite createButtonSeparator(Composite parent) {
+		Composite control = new Composite(parent, SWT.NONE);
+		GridLayout layout = new GridLayout();
+		layout.marginWidth = 0;
+		layout.marginHeight = 0;
+		layout.horizontalSpacing = 0;
+		layout.verticalSpacing = 0;
+		control.setLayout(layout);
+
+		int orientation = SWT.SEPARATOR | SWT.VERTICAL;
+		int gdStyle = GridData.FILL_VERTICAL | GridData.HORIZONTAL_ALIGN_CENTER;
+
+		new Label(control, orientation).setLayoutData(new GridData(gdStyle));
+		bindingAction = new Button(control, SWT.PUSH);
+		bindingAction.setToolTipText(ACTION_TOOLTIP_TEXT + "\n" + ACTION_TOOLTIP_MESSAGE);
+		bindingAction.setImage(ImageShop.get(ImageShop.IMG_BINDING_ADD));
+		bindingAction.setEnabled(false);
+		final Listener listener = new Listener() {
+			private boolean useCtrl = false;
+
+			public void handleEvent(Event e) {
+				if (SWT.KeyDown == e.type) {
+					if (!useCtrl && e.keyCode == SWT.CTRL) {
+						useCtrl = true;
+					}
+				} else if (SWT.KeyUp == e.type) {
+					if (useCtrl && e.keyCode == SWT.CTRL) {
+						useCtrl = false;
+					}
+				} else if (SWT.Selection == e.type) {
+					createDataBindings(useCtrl);
+				} else if (SWT.Dispose == e.type) {
+					e.display.removeFilter(SWT.KeyUp, this);
+					e.display.removeFilter(SWT.KeyDown, this);
+				}
+			}
+		};
+		Display display = bindingAction.getDisplay();
+		display.addFilter(SWT.KeyDown, listener);
+		display.addFilter(SWT.KeyUp, listener);
+		bindingAction.addListener(SWT.Selection, listener);
+		bindingAction.addListener(SWT.Dispose, listener);
+		new Label(control, orientation).setLayoutData(new GridData(gdStyle));
+		return control;
+	}
+
+	protected void updateBindingAction() {
+		if (bindingAction == null || bindingAction.isDisposed()) {
+			return;
+		}
+		bindingAction.setEnabled(bindingContext.isValid());
+	}
+
+	protected void createDataBindings(boolean useCtrl) {
+		BindingInfo bindingInfo = new BindingInfo(bindingContext);
+		if (useCtrl) {
+			createBinding(bindingInfo);
+		} else {
+			AdvancedBindingDialog dialog = new AdvancedBindingDialog(new Shell(), bindingInfo);
+			if (dialog.open() == Window.OK) {
+				createBinding(bindingInfo);
+			}
+		}
+	}
+
+	private void createBinding(BindingInfo bindingInfo) {
+		Command bindCmd = bindingInfo.bindWithCommand();
+		if (bindCmd != null) {
+			if (commandStack != null) {
+				commandStack.execute(bindCmd);
+			} else if (bindCmd.canExecute()) {
+				bindCmd.execute();
+			}
+			if (input == null || !(input instanceof EditPart)) {
+				return;
+			}
+			DisplayUtil.asyncExec(new Runnable() {
+				public void run() {
+					List<BindingInfo> bindings = BindingHelper.getBindings((EditPart) input);
+					bindingsTableGroup.setInput(bindings);
+				}
+			});
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.databinding.ui.IGroup#setInput(java.lang.Object)
+	 */
+	public void setInput(Object input) {
+		if (input == null || !(input instanceof EditPart)) {
+			return;
+		}
+		this.input = input;
+		EditPart editPart = (EditPart) input;
+		List<BindingInfo> bindings = BindingHelper.getBindings(editPart);
+		if (bindings != null && bindingsTableGroup != null) {
+			bindingsTableGroup.setInput(bindings);
+		}
+		if (targetComp != null) {
+			targetComp.setRootEditPart(editPart);
+		}
+		if (modelComp != null) {
+			modelComp.setRootEditPart(editPart);
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/IGroup.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/IGroup.java
new file mode 100755
index 0000000..9c56443
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/IGroup.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.databinding.ui;
+
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public interface IGroup {
+
+	Composite createGroup(Composite parent, int style);
+
+	void setInput(Object input);
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/ObservableList.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/ObservableList.java
new file mode 100755
index 0000000..33b712d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/ObservableList.java
@@ -0,0 +1,200 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.databinding.ui;
+
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerFilter;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.tools.ui.designer.databinding.BindingContext;
+import org.eclipse.xwt.tools.ui.designer.databinding.IObservable;
+import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ObservableList {
+
+	protected TreeViewer treeViewer;
+	protected ViewerFilter viewerFilter;
+	protected String filter;
+
+	private BindingContext bindingContext;
+	private Control control;
+
+	public ObservableList(BindingContext bindingContext, Composite parent) {
+		this.bindingContext = bindingContext;
+		control = createControl(parent);
+	}
+
+	public Control getControl() {
+		return control;
+	}
+
+	protected Control createControl(Composite parent) {
+		Composite control = new Composite(parent, SWT.NONE);
+		GridLayout layout = new GridLayout();
+		layout.marginWidth = 0;
+		control.setLayout(layout);
+
+		Label label = new Label(control, SWT.NONE);
+		label.setText("Widgets:");
+		label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+		treeViewer = createControlsViewer(control);
+		treeViewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
+
+		viewerFilter = createControlsFilter();
+
+		return control;
+	}
+
+	public TreeViewer getTreeViewer() {
+		return treeViewer;
+	}
+
+	protected TreeViewer createControlsViewer(Composite control) {
+		TreeViewer treeViewer = new TreeViewer(control, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
+		GridData layoutData = new GridData(GridData.FILL_BOTH);
+		treeViewer.getTree().setLayoutData(layoutData);
+		treeViewer.setContentProvider(new ITreeContentProvider() {
+			public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+			}
+
+			public void dispose() {
+			}
+
+			public Object[] getElements(Object inputElement) {
+				if (inputElement instanceof IObservable[]) {
+					return (IObservable[]) inputElement;
+				}
+				return new Object[0];
+			}
+
+			public boolean hasChildren(Object element) {
+				if (element instanceof IObservable) {
+					return ((IObservable) element).hasChildren();
+				}
+				return false;
+			}
+
+			public Object getParent(Object element) {
+				if (element instanceof IObservable) {
+					return ((IObservable) element).getParent();
+				}
+				return null;
+			}
+
+			public Object[] getChildren(Object parentElement) {
+				if (parentElement instanceof IObservable) {
+					return ((IObservable) parentElement).getChildren();
+				}
+				return null;
+			}
+		});
+		treeViewer.setLabelProvider(new LabelProvider() {
+			public String getText(Object element) {
+				if (element instanceof IObservable) {
+					return ((IObservable) element).getDisplayName();
+				}
+				return super.getText(element);
+			}
+
+			public Image getImage(Object element) {
+				if (element instanceof IObservable) {
+					Object source = ((IObservable) element).getSource();
+					if (source == null) {
+						return super.getImage(element);
+					}
+					if (source instanceof Widget) {
+						return ImageShop.getImageForWidget((Widget) source);
+					} else if (source instanceof Viewer) {
+						return ImageShop.getObj16(((Viewer) source).getClass().getSimpleName().toLowerCase());
+					} else {
+						return ImageShop.getImageForType(source.getClass());
+					}
+				}
+				return super.getImage(element);
+			}
+		});
+		treeViewer.setAutoExpandLevel(3);
+		treeViewer.addFilter(new ViewerFilter() {
+			public boolean select(Viewer viewer, Object parentElement, Object element) {
+				if (element instanceof IObservable) {
+					return ((IObservable) element).getProperties().length > 0;
+				}
+				return false;
+			}
+		});
+		return treeViewer;
+	}
+
+	protected ViewerFilter createControlsFilter() {
+		return new ViewerFilter() {
+			public boolean select(Viewer viewer, Object parentElement, Object element) {
+				return isFiltered(element);
+			}
+		};
+	}
+
+	protected boolean isFiltered(Object element) {
+		ITreeContentProvider contentProvider = (ITreeContentProvider) treeViewer.getContentProvider();
+		Object[] children = contentProvider.getChildren(element);
+
+		ILabelProvider labelProvider = (ILabelProvider) treeViewer.getLabelProvider();
+		String text = labelProvider.getText(element);
+		boolean filtered = text.toLowerCase().startsWith(filter.toLowerCase());
+		if (!filtered) {
+			for (Object child : children) {
+				filtered = isFiltered(child);
+				if (filtered) {
+					break;
+				}
+			}
+		}
+		return filtered;
+	}
+
+	protected void controlSelected() {
+		IStructuredSelection selection = (IStructuredSelection) treeViewer.getSelection();
+		Object firstElement = selection.getFirstElement();
+		bindingContext.setTarget((IObservable) firstElement);
+	}
+
+	public void applyFilter(String filter) {
+		this.filter = filter;
+		if (filter == null || filter.length() == 0) {
+			treeViewer.removeFilter(viewerFilter);
+		} else {
+			treeViewer.addFilter(viewerFilter);
+		}
+	}
+
+	public void setInput(Object input) {
+		if (treeViewer != null) {
+			treeViewer.setInput(input);
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/ObserveGroup.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/ObserveGroup.java
new file mode 100755
index 0000000..5805c9f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/ObserveGroup.java
@@ -0,0 +1,265 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.databinding.ui;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.swt.widgets.ToolItem;
+import org.eclipse.xwt.tools.ui.designer.databinding.BindingContext;
+import org.eclipse.xwt.tools.ui.designer.databinding.IObservable;
+import org.eclipse.xwt.tools.ui.designer.databinding.Property;
+import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public abstract class ObserveGroup implements IGroup {
+
+	private Label messageLabel;
+	private Text filterText;
+	protected BindingContext bindingContext;
+	protected ObservableList observableList;
+	protected TreeViewer propertiesTree;
+
+	private boolean dispatching = false;
+
+	private EditPart rootEditPart;
+	private TreeViewer treeViewer;
+
+	public ObserveGroup(BindingContext bindingContext, EditPart rootEditPart) {
+		this.bindingContext = bindingContext;
+		this.rootEditPart = rootEditPart;
+	}
+
+	public Composite createGroup(Composite parent, int style) {
+		Composite group = new Composite(parent, SWT.NONE);
+		GridLayout layout = new GridLayout(2, false);
+		group.setLayout(layout);
+
+		messageLabel = new Label(group, SWT.NONE);
+		updateMessage();
+
+		GridData layoutData = new GridData(GridData.FILL_HORIZONTAL);
+		layoutData.horizontalSpan = 2;
+		messageLabel.setLayoutData(layoutData);
+
+		filterText = new Text(group, SWT.SEARCH | SWT.ICON_CANCEL);
+		layoutData = new GridData(GridData.FILL_HORIZONTAL);
+		filterText.setLayoutData(layoutData);
+		filterText.setMessage("type filter text");
+		ToolBar toolBar = new ToolBar(group, SWT.FLAT);
+		ToolItem item = new ToolItem(toolBar, SWT.PUSH);
+		item.setImage(ImageShop.get(ImageShop.IMG_CLEAR_FILTER));
+		item.addListener(SWT.Selection, new Listener() {
+			public void handleEvent(Event event) {
+				filterText.setText("");
+				filterText.setMessage("type filter text");
+			}
+		});
+		filterText.addListener(SWT.Modify, new Listener() {
+			public void handleEvent(Event event) {
+				if (event.detail != SWT.ICON_CANCEL) {
+					applyFilter();
+				}
+			}
+		});
+
+		observableList = new ObservableList(bindingContext, group);
+		Control control = observableList.getControl();
+		layoutData = new GridData(GridData.FILL_BOTH);
+		control.setLayoutData(layoutData);
+
+		Composite propComp = new Composite(group, SWT.NONE);
+		layout = new GridLayout();
+		layout.marginWidth = 0;
+		propComp.setLayout(layout);
+
+		new Label(propComp, SWT.NONE).setText("Properties");
+
+		treeViewer = observableList.getTreeViewer();
+		treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
+			public void selectionChanged(SelectionChangedEvent event) {
+				handleObservableChanged(event);
+			}
+		});
+		treeViewer.setInput(computeObservables(rootEditPart));
+
+		propertiesTree = new TreeViewer(propComp, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
+		propertiesTree.setContentProvider(new ITreeContentProvider() {
+			public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+
+			}
+
+			public void dispose() {
+
+			}
+
+			public boolean hasChildren(Object element) {
+				if (element instanceof Property) {
+					return ((Property) element).hasChildren();
+				}
+				return false;
+			}
+
+			public Object getParent(Object element) {
+				if (element instanceof Property) {
+					return ((Property) element).getParent();
+				}
+				return null;
+			}
+
+			public Object[] getChildren(Object parentElement) {
+				if (parentElement instanceof Property) {
+					return ((Property) parentElement).getProperties();
+				}
+				return new Object[0];
+			}
+
+			public Object[] getElements(Object inputElement) {
+				if (inputElement instanceof IObservable) {
+					return ((IObservable) inputElement).getProperties();
+				}
+				return new Object[0];
+			}
+		});
+		propertiesTree.setLabelProvider(new LabelProvider() {
+			public String getText(Object element) {
+				if (element instanceof Property) {
+					return ((Property) element).getName();
+				}
+				return super.getText(element);
+			}
+
+			public Image getImage(Object element) {
+				if (element instanceof Property) {
+					return ImageShop.getImageForType(((Property) element).getType());
+				}
+				return super.getImage(element);
+			}
+		});
+		propertiesTree.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
+		propertiesTree.addSelectionChangedListener(new ISelectionChangedListener() {
+			public void selectionChanged(SelectionChangedEvent event) {
+				handlePropertyChanged(event);
+			}
+		});
+
+		layoutData = new GridData(GridData.FILL_BOTH);
+		propComp.setLayoutData(layoutData);
+
+		bindingContext.addPropertyChangeListener(new PropertyChangeListener() {
+			public void propertyChange(PropertyChangeEvent evt) {
+				refreshGroup(evt);
+			}
+		});
+		return group;
+	}
+
+	private void refreshGroup(PropertyChangeEvent evt) {
+		if (dispatching) {
+			return;
+		}
+		selectAndReveal(evt);
+	}
+
+	protected abstract IObservable[] computeObservables(EditPart rootEditPart);
+
+	protected abstract void selectAndReveal(PropertyChangeEvent evt);
+
+	protected StructuredSelection createSelection(Object object) {
+		if (object == null) {
+			return StructuredSelection.EMPTY;
+		}
+		return new StructuredSelection(object);
+	}
+
+	private void handleObservableChanged(SelectionChangedEvent event) {
+		dispatching = true;
+		IStructuredSelection selection = (IStructuredSelection) event.getSelection();
+		Object firstElement = selection.getFirstElement();
+		propertiesTree.setInput(firstElement);
+		handleSelection(selection);
+		updateMessage();
+		dispatching = false;
+	}
+
+	private void handlePropertyChanged(SelectionChangedEvent event) {
+		dispatching = true;
+		IStructuredSelection selection = (IStructuredSelection) event.getSelection();
+		handleSelection(selection);
+		updateMessage();
+		dispatching = false;
+	}
+
+	protected abstract void handleSelection(IStructuredSelection selection);
+
+	protected void applyFilter() {
+		observableList.applyFilter(filterText.getText());
+	}
+
+	protected void updateMessage() {
+		if (messageLabel == null || messageLabel.isDisposed()) {
+			return;
+		}
+		String message = computeMessage();
+		if (message == null) {
+			message = "";
+		}
+		messageLabel.setText(message);
+	}
+
+	protected abstract String computeMessage();
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.databinding.ui.IGroup#setInput(java.lang.Object)
+	 */
+	public void setInput(Object input) {
+		if (observableList == null) {
+			return;
+		}
+		observableList.setInput(input);
+	}
+
+	public BindingContext getBindingContext() {
+		return bindingContext;
+	}
+
+	public void setRootEditPart(EditPart rootEditPart) {
+		this.rootEditPart = rootEditPart;
+		setInput(computeObservables(rootEditPart));
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/ObserveModelGroup.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/ObserveModelGroup.java
new file mode 100755
index 0000000..6a3d5c0
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/ObserveModelGroup.java
@@ -0,0 +1,108 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.databinding.ui;
+
+import java.beans.PropertyChangeEvent;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.xwt.tools.ui.designer.databinding.BindingContext;
+import org.eclipse.xwt.tools.ui.designer.databinding.BindingHelper;
+import org.eclipse.xwt.tools.ui.designer.databinding.DataContext;
+import org.eclipse.xwt.tools.ui.designer.databinding.IObservable;
+import org.eclipse.xwt.tools.ui.designer.databinding.Observable;
+import org.eclipse.xwt.tools.ui.designer.databinding.ObservableUtil;
+import org.eclipse.xwt.tools.ui.designer.databinding.Property;
+import org.eclipse.xwt.tools.ui.designer.parts.ViewerEditPart;
+import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ObserveModelGroup extends ObserveGroup {
+
+	public ObserveModelGroup(BindingContext bindingContext, EditPart rootEditPart) {
+		super(bindingContext, rootEditPart);
+	}
+
+	protected String computeMessage() {
+		String message = "Model:";
+		BindingContext bc = getBindingContext();
+		IObservable model = bc.getModel();
+		Property modelProperty = bc.getModelProperty();
+		if (model != null) {
+			message += model.getDisplayName();
+			if (modelProperty != null) {
+				message += "." + modelProperty;
+			}
+		} else {
+			message += "<empty>";
+		}
+		return message;
+	}
+
+	protected void handleSelection(IStructuredSelection selection) {
+		Object element = selection.getFirstElement();
+		BindingContext bindingContext = getBindingContext();
+		if (element == null) {
+			bindingContext.setModel(null);
+			bindingContext.setModelProperty(null);
+		} else if (element instanceof IObservable) {
+			bindingContext.setModel((IObservable) element);
+			bindingContext.setModelProperty(null);
+		} else if (element instanceof Property) {
+			bindingContext.setModelProperty((Property) element);
+		}
+	}
+
+	protected void selectAndReveal(PropertyChangeEvent evt) {
+		Object newValue = evt.getNewValue();
+		if ("model".equals(evt.getPropertyName())) {
+			TreeViewer treeViewer = observableList.getTreeViewer();
+			treeViewer.setSelection(createSelection(newValue), true);
+		} else if ("modelProperty".equals(evt.getPropertyName())) {
+			propertiesTree.setSelection(createSelection(newValue), true);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.databinding.ui.ObserveGroup#computeObservables(org.eclipse.gef.EditPart)
+	 */
+	protected IObservable[] computeObservables(EditPart rootEditPart) {
+		if (rootEditPart == null) {
+			return new IObservable[0];
+		}
+		Object root = null;
+		if (rootEditPart instanceof WidgetEditPart) {
+			root = ((WidgetEditPart) rootEditPart).getWidget();
+		} else if (rootEditPart instanceof ViewerEditPart) {
+			root = ((ViewerEditPart) rootEditPart).getViewer();
+		}
+		if (root == null) {
+			return new IObservable[0];
+		}
+		DataContext dataContext = BindingHelper.getDataContext(root);
+		Observable widgets = ObservableUtil.getObservable(root);
+		if (dataContext == null) {
+			return new IObservable[] { widgets };
+		}
+		IObservable[] models = new IObservable[2];
+		models[0] = widgets;
+		models[1] = ObservableUtil.getObservable(dataContext);
+		return models;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/ObserveTargetGroup.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/ObserveTargetGroup.java
new file mode 100755
index 0000000..2c6bc3d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/ObserveTargetGroup.java
@@ -0,0 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.databinding.ui;
+
+import java.beans.PropertyChangeEvent;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.xwt.tools.ui.designer.databinding.BindingContext;
+import org.eclipse.xwt.tools.ui.designer.databinding.IObservable;
+import org.eclipse.xwt.tools.ui.designer.databinding.Observable;
+import org.eclipse.xwt.tools.ui.designer.databinding.ObservableUtil;
+import org.eclipse.xwt.tools.ui.designer.databinding.Property;
+import org.eclipse.xwt.tools.ui.designer.parts.ViewerEditPart;
+import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ObserveTargetGroup extends ObserveGroup {
+
+	public ObserveTargetGroup(BindingContext bindingContext, EditPart rootEditPart) {
+		super(bindingContext, rootEditPart);
+	}
+
+	protected String computeMessage() {
+		String message = "Target:";
+		BindingContext bc = getBindingContext();
+		IObservable target = bc.getTarget();
+		Property targetProperty = bc.getTargetProperty();
+		if (target != null) {
+			message += target.getDisplayName();
+			if (targetProperty != null) {
+				message += "." + targetProperty;
+			}
+		} else {
+			message += "<empty>";
+		}
+		return message;
+	}
+
+	protected void handleSelection(IStructuredSelection selection) {
+		Object element = selection.getFirstElement();
+		BindingContext bindingContext = getBindingContext();
+		if (element == null) {
+			bindingContext.setTarget(null);
+			bindingContext.setTargetProperty(null);
+		} else if (element instanceof IObservable) {
+			bindingContext.setTarget((IObservable) element);
+			bindingContext.setTargetProperty(null);
+		} else if (element instanceof Property) {
+			bindingContext.setTargetProperty((Property) element);
+		}
+	}
+
+	protected void selectAndReveal(PropertyChangeEvent evt) {
+		Object newValue = evt.getNewValue();
+		if ("target".equals(evt.getPropertyName())) {
+			TreeViewer treeViewer = observableList.getTreeViewer();
+			treeViewer.setExpandedElements(new Object[] { newValue });
+			treeViewer.setSelection(createSelection(newValue), true);
+		} else if ("targetProperty".equals(evt.getPropertyName())) {
+			propertiesTree.setSelection(createSelection(newValue), true);
+		}
+	}
+
+	protected IObservable[] computeObservables(EditPart rootEditPart) {
+		if (rootEditPart == null) {
+			return new IObservable[0];
+		}
+		Object root = null;
+		if (rootEditPart instanceof WidgetEditPart) {
+			root = ((WidgetEditPart) rootEditPart).getWidget();
+		} else if (rootEditPart instanceof ViewerEditPart) {
+			root = ((ViewerEditPart) rootEditPart).getViewer();
+		}
+		if (root == null) {
+			return new IObservable[0];
+		}
+		Observable widgets = ObservableUtil.getObservable(root);
+		if (widgets != null) {
+			return new IObservable[] { widgets };
+		}
+		return new IObservable[0];
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/OptionsGroup.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/OptionsGroup.java
new file mode 100755
index 0000000..8a36fbb
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/databinding/ui/OptionsGroup.java
@@ -0,0 +1,186 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.databinding.ui;
+
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.databinding.BindingMode;
+import org.eclipse.xwt.internal.core.UpdateSourceTrigger;
+import org.eclipse.jface.viewers.ComboViewer;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.events.ExpansionAdapter;
+import org.eclipse.ui.forms.events.ExpansionEvent;
+import org.eclipse.ui.forms.widgets.ExpandableComposite;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.xwt.tools.ui.designer.databinding.IBindingInfo;
+import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class OptionsGroup implements IGroup {
+
+	private ComboViewer modeComboViewer;
+	private ComboViewer triggersComboViewer;
+	private Text converterText;
+
+	private BindingMode bindingMode;
+	private UpdateSourceTrigger updateSourceTrigger;
+
+	public ExpandableComposite createGroup(final Composite parent, int style) {
+		FormToolkit formToolkit = new FormToolkit(parent.getDisplay());
+		// formToolkit.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
+		final ExpandableComposite result = formToolkit.createExpandableComposite(parent, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
+		result.setText("Options");
+		Composite cilent = formToolkit.createComposite(result);
+		cilent.setLayout(new GridLayout(3, false));
+		result.setClient(cilent);
+		result.addExpansionListener(new ExpansionAdapter() {
+			public void expansionStateChanged(ExpansionEvent e) {
+				parent.layout(new Control[] { result });
+			}
+		});
+
+		formToolkit.createLabel(cilent, "BindingMode:");
+		Combo modeCombo = new Combo(cilent, SWT.DROP_DOWN | SWT.READ_ONLY);
+		GridData layoutData = new GridData(GridData.FILL_HORIZONTAL);
+		layoutData.horizontalSpan = 2;
+		modeCombo.setLayoutData(layoutData);
+		formToolkit.adapt(modeCombo, true, true);
+		modeComboViewer = createComboViewr(modeCombo);
+		modeComboViewer.setInput(BindingMode.values());
+		modeComboViewer.addSelectionChangedListener(new ISelectionChangedListener() {
+			public void selectionChanged(SelectionChangedEvent event) {
+				IStructuredSelection selection = (IStructuredSelection) event.getSelection();
+				bindingMode = (BindingMode) selection.getFirstElement();
+			}
+		});
+
+		formToolkit.createLabel(cilent, "UpdateSourceTrigger:");
+		Combo triggerCombo = new Combo(cilent, SWT.DROP_DOWN | SWT.READ_ONLY);
+		layoutData = new GridData(GridData.FILL_HORIZONTAL);
+		layoutData.horizontalSpan = 2;
+		triggerCombo.setLayoutData(layoutData);
+		formToolkit.adapt(triggerCombo, true, true);
+		triggersComboViewer = createComboViewr(triggerCombo);
+		triggersComboViewer.setInput(UpdateSourceTrigger.values());
+		triggersComboViewer.addSelectionChangedListener(new ISelectionChangedListener() {
+			public void selectionChanged(SelectionChangedEvent event) {
+				IStructuredSelection selection = (IStructuredSelection) event.getSelection();
+				updateSourceTrigger = (UpdateSourceTrigger) selection.getFirstElement();
+			}
+		});
+
+		formToolkit.createLabel(cilent, "Converter:");
+		converterText = formToolkit.createText(cilent, "", SWT.BORDER);
+		layoutData = new GridData(GridData.FILL_HORIZONTAL);
+		converterText.setLayoutData(layoutData);
+		formToolkit.adapt(converterText, true, true);
+
+		Button button = formToolkit.createButton(cilent, "", SWT.NONE);
+		button.setImage(ImageShop.get(ImageShop.IMAGE_OBSERVE_CUSTOM));
+		button.setToolTipText("Choose a converter.");
+		button.addListener(SWT.Selection, new Listener() {
+			public void handleEvent(Event event) {
+				chooseConverter();
+			}
+		});
+		return result;
+	}
+
+	private ComboViewer createComboViewr(Combo combo) {
+		ComboViewer comboViewer = new ComboViewer(combo);
+		comboViewer.setContentProvider(new IStructuredContentProvider() {
+			public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+
+			}
+
+			public void dispose() {
+			}
+
+			public Object[] getElements(Object inputElement) {
+				if (inputElement instanceof Object[]) {
+					return (Object[]) inputElement;
+				}
+				return new Object[0];
+			}
+		});
+		comboViewer.setLabelProvider(new LabelProvider());
+		return comboViewer;
+	}
+
+	protected void chooseConverter() {
+
+	}
+
+	public BindingMode getBindingMode() {
+		if (bindingMode == null) {
+			bindingMode = BindingMode.TwoWay;
+		}
+		return bindingMode;
+	}
+
+	public UpdateSourceTrigger getUpdateSourceTrigger() {
+		if (updateSourceTrigger == null) {
+			updateSourceTrigger = UpdateSourceTrigger.Default;
+		}
+		return updateSourceTrigger;
+	}
+
+	public Class<?> getConverter() {
+		String className = converterText.getText();
+		if (className != null && !className.equals("")) {
+			return (Class<?>) XWT.getLoadingContext().loadClass(className);
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.databinding.ui.IGroup#setInput(java.lang.Object)
+	 */
+	public void setInput(Object input) {
+		String converter = null;
+		if (input instanceof IBindingInfo) {
+			bindingMode = ((IBindingInfo) input).getBindingMode();
+			updateSourceTrigger = ((IBindingInfo) input).getTriggerMode();
+			converter = ((IBindingInfo) input).getConverter();
+		}
+		if (modeComboViewer != null) {
+			modeComboViewer.setSelection(new StructuredSelection(getBindingMode()));
+		}
+		if (updateSourceTrigger != null) {
+			triggersComboViewer.setSelection(new StructuredSelection(getUpdateSourceTrigger()));
+		}
+		if (converter == null) {
+			converter = "";
+		}
+		converterText.setText(converter);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/AbstractEventHandlerDialog.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/AbstractEventHandlerDialog.java
new file mode 100755
index 0000000..91edc53
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/AbstractEventHandlerDialog.java
@@ -0,0 +1,253 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.dialogs;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
+import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
+import org.w3c.dom.Node;
+
+public abstract class AbstractEventHandlerDialog {
+	public enum Operation {
+		Cancel, New, Select, Rename;
+	};
+
+	protected Operation operation = Operation.Cancel;
+	protected String inputHandler = "";
+	protected String oldHandler;
+	protected String attrValue;
+	protected String[] handlers;
+	protected StructuredTextViewer textViewer;
+	protected int count;
+
+	public AbstractEventHandlerDialog(StructuredTextViewer textViewer, String oldHandler, String attrValue, String[] handlers) {
+		this.textViewer = textViewer;
+		this.oldHandler = oldHandler;
+		this.attrValue = attrValue;
+		this.handlers = handlers;
+
+	}
+
+	public void run(Shell parentShell, String title, Point position) {
+		Shell shell = new Shell(parentShell, SWT.NONE);
+		shell.setText(title);
+		createContents(shell);
+		shell.setLocation(position);
+		shell.pack();
+		shell.open();
+		while (!shell.isDisposed()) {
+			if (!shell.getDisplay().readAndDispatch()) {
+				shell.getDisplay().sleep();
+			}
+		}
+	}
+
+	private void createContents(final Shell shell) {
+		shell.setLayout(new GridLayout(2, false));
+		Group group = new Group(shell, SWT.LEFT);
+		group.setText("Handler Operations");
+		GridData data = new GridData(GridData.FILL_HORIZONTAL);
+		data.horizontalSpan = 2;
+		group.setLayoutData(data);
+		GridLayout gridLayout = new GridLayout();
+		group.setLayout(gridLayout);
+
+		final Button rbt1 = new Button(group, SWT.RADIO);
+		rbt1.setText("New Handler");
+		rbt1.setSelection(true);
+		GridData gridData1 = new GridData(GridData.FILL_HORIZONTAL);
+		gridData1.horizontalSpan = 2;
+		rbt1.setLayoutData(gridData1);
+		RBSelectionAdapter rbSelectionAdapter1 = new RBSelectionAdapter(1);
+		rbt1.addSelectionListener(rbSelectionAdapter1);
+		rbt1.setToolTipText("New Handler");
+		rbt1.setForeground(rbt1.getDisplay().getSystemColor(SWT.COLOR_DARK_BLUE));
+
+		final Button rbt2 = new Button(group, SWT.RADIO);
+		rbt2.setText("Rename Handler");
+		GridData gridData2 = new GridData(GridData.FILL_HORIZONTAL);
+		gridData2.horizontalSpan = 2;
+		rbt2.setLayoutData(gridData2);
+		RBSelectionAdapter rbSelectionAdapter2 = new RBSelectionAdapter(2);
+		rbt2.addSelectionListener(rbSelectionAdapter2);
+		rbt2.setToolTipText("Rename Handler");
+		rbt2.setForeground(rbt2.getDisplay().getSystemColor(SWT.COLOR_DARK_BLUE));
+		rbt2.setEnabled(oldHandler != null && oldHandler.length() > 0);
+
+		final Button rbt3 = new Button(group, SWT.RADIO);
+		rbt3.setText("Select Existing Handler");
+		GridData gridData3 = new GridData(GridData.FILL_HORIZONTAL);
+		gridData3.horizontalSpan = 2;
+		rbt3.setLayoutData(gridData3);
+		RBSelectionAdapter rbSelectionAdapter3 = new RBSelectionAdapter(3);
+		rbt3.addSelectionListener(rbSelectionAdapter3);
+		rbt3.setToolTipText("Select an existing handler");
+		rbt3.setForeground(rbt3.getDisplay().getSystemColor(SWT.COLOR_DARK_BLUE));
+		rbt3.setEnabled(handlers != null && handlers.length > 0);
+
+		Label hNameLabel = new Label(shell, SWT.LEFT);
+		hNameLabel.setText("Handler Name");
+		final Text nameText = new Text(shell, SWT.BORDER);
+		nameText.setText(attrValue);
+		GridData gridData4 = new GridData();
+		gridData4.widthHint = 100;
+		nameText.setLayoutData(gridData4);
+		rbSelectionAdapter1.setText(nameText);
+		rbSelectionAdapter2.setText(nameText);
+		rbSelectionAdapter3.setText(nameText);
+
+		Label selectHandlerLabel = new Label(shell, SWT.LEFT);
+		selectHandlerLabel.setText("Select handler");
+		GridData gridData5 = new GridData(GridData.FILL_HORIZONTAL);
+		selectHandlerLabel.setLayoutData(gridData5);
+		final Combo handlersCombo = new Combo(shell, SWT.DROP_DOWN | SWT.READ_ONLY);
+		if (handlers != null && handlers.length != 0) {
+			handlersCombo.setItems(handlers);
+			handlersCombo.setText(handlers[0]);
+		}
+		handlersCombo.setEnabled(false);
+		GridData gridData6 = new GridData(GridData.FILL_HORIZONTAL);
+		gridData6.horizontalAlignment = SWT.LEFT;
+		handlersCombo.setLayoutData(gridData6);
+		rbSelectionAdapter1.setCombo(handlersCombo);
+		rbSelectionAdapter2.setCombo(handlersCombo);
+		rbSelectionAdapter3.setCombo(handlersCombo);
+
+		Button okButton = new Button(shell, SWT.PUSH | SWT.CR);
+		okButton.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(SelectionEvent e) {
+				boolean exists = false;
+				if (!rbt3.getSelection()) {
+					if (nameText.getText().trim().equals("")) {
+						MessageDialog.openInformation(shell, "Dialog", "Handler Name is null");
+						nameText.forceFocus();
+						return;
+					}
+
+					exists = handlerExists(nameText.getText(), handlers);
+					if (exists) {
+						int length = nameText.getText().length();
+						nameText.setSelection(0, length);
+						nameText.forceFocus();
+						return;
+					}
+				}
+				if (rbt1.getSelection()) {
+					operation = Operation.New;
+					inputHandler = nameText.getText();
+				} else if (rbt2.getSelection()) {
+					inputHandler = nameText.getText();
+					Node rootNode = (Node) ContentAssistUtils.getNodeAt(textViewer, 0);
+					count = 0;
+					boolean usedByOther = usedByOther(rootNode, oldHandler);
+					if (usedByOther) {
+						String message = NLS.bind("Refactor", oldHandler);
+						boolean confirm = MessageDialog.openConfirm(shell, "Dialog", message);
+						if (!confirm) {
+							int length = nameText.getText().length();
+							nameText.setSelection(0, length);
+							nameText.forceFocus();
+							return;
+						}
+					}
+					operation = Operation.Rename;
+				} else if (rbt3.getSelection()) {
+					operation = Operation.Select;
+					inputHandler = handlersCombo.getText();
+				}
+
+				if (exists == false) {
+					shell.dispose();
+				}
+			}
+
+			private boolean handlerExists(String handlerName, String[] handlers) {
+				for (int i = 0; i < handlers.length; i++) {
+					if (handlerName != null && handlerName.equals(handlers[i])) {
+						MessageDialog.openInformation(shell, "Dialog", "Handler is existed.");
+						return true;
+					}
+				}
+				return false;
+			}
+		});
+		okButton.setText("OK");
+		GridData okData = new GridData();
+		okData.horizontalAlignment = GridData.CENTER;
+		okButton.setLayoutData(okData);
+
+		Button cancelButton = new Button(shell, SWT.PUSH);
+		cancelButton.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(SelectionEvent e) {
+				shell.dispose();
+			}
+		});
+		cancelButton.setText("Cancel");
+		GridData cancelData = new GridData();
+		cancelData.horizontalAlignment = GridData.CENTER;
+		cancelData.grabExcessHorizontalSpace = true;
+		shell.setDefaultButton(okButton);
+	}
+
+	public Operation getOperation() {
+		return operation;
+	}
+
+	public String getInputHandler() {
+		return inputHandler;
+	}
+
+	private static class RBSelectionAdapter extends SelectionAdapter {
+		private Text text;
+		private Combo combo;
+		private int number;
+
+		protected RBSelectionAdapter(int number) {
+			this.number = number;
+		}
+
+		public void widgetSelected(SelectionEvent e) {
+
+			if (number == 3) {
+				text.setEnabled(false);
+				combo.setEnabled(true);
+			} else {
+				text.setEnabled(true);
+				combo.setEnabled(false);
+			}
+		}
+
+		protected void setText(Text text) {
+			this.text = text;
+		}
+
+		protected void setCombo(Combo combo) {
+			this.combo = combo;
+		}
+	}
+
+	protected abstract boolean usedByOther(Node node, String oldHandler);
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/AccessorConfigurationDialog.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/AccessorConfigurationDialog.java
new file mode 100755
index 0000000..759f530
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/AccessorConfigurationDialog.java
@@ -0,0 +1,856 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.dialogs;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.xwt.internal.utils.LoggerManager;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.IJavaModel;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IPackageFragment;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.core.search.IJavaSearchConstants;
+import org.eclipse.jdt.core.search.IJavaSearchScope;
+import org.eclipse.jdt.core.search.SearchEngine;
+import org.eclipse.jdt.internal.ui.JavaPlugin;
+import org.eclipse.jdt.internal.ui.dialogs.FilteredTypesSelectionDialog;
+import org.eclipse.jdt.internal.ui.wizards.TypedElementSelectionValidator;
+import org.eclipse.jdt.internal.ui.wizards.TypedViewerFilter;
+import org.eclipse.jdt.ui.JavaElementComparator;
+import org.eclipse.jdt.ui.JavaElementLabelProvider;
+import org.eclipse.jdt.ui.StandardJavaElementContentProvider;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.StatusDialog;
+import org.eclipse.jface.util.Policy;
+import org.eclipse.jface.util.Util;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerFilter;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.dialogs.ElementListSelectionDialog;
+import org.eclipse.ui.dialogs.ElementTreeSelectionDialog;
+import org.eclipse.ui.progress.IProgressService;
+import org.eclipse.xwt.tools.ui.designer.wizards.AccessorConfigureInfo;
+import org.eclipse.xwt.tools.ui.designer.wizards.ExternalizeStringsCommon;
+
+/**
+ * @author chenxiaoru (xiaoru.chen@soyatec.com)
+ */
+@SuppressWarnings("restriction")
+public class AccessorConfigurationDialog extends StatusDialog {
+
+	private String sourceFolder;
+	private String sourcePackage;
+	private String className;
+	private String propertyFolder;
+	private String propertyPackage;
+	private String propertyName;
+
+	private Text classNameText;
+	private Text sourcePackageText;
+	private Text sourceFolderText;
+	private Text propertyNameText;
+	private Text propertyPackageText;
+	private Text propertyFolderText;
+
+	private Button sourcePackagButton;
+	private Button chooseClassTypeButton;
+	private Button propertyPackagButton;
+	private Button choosePropertyTypeButton;
+	private Button propertyFolderButton;
+
+	private Label classDefaultLabel;
+	private Label propertyDefaultLabel;
+	private Label propertyLabel;
+
+	private boolean isError = false;
+
+	private IPackageFragmentRoot classRoot;
+	private IPackageFragmentRoot propertyRoot;
+	private IStatus fLastStatus;
+
+	private IPackageFragment propertyFragment;
+	private IPackageFragment classFragment;
+
+	private AccessorConfigureInfo info;
+	Object[] propertyFileNames;
+	Object[] classFileNames;
+
+	public AccessorConfigurationDialog(Shell parent, AccessorConfigureInfo info) {
+		super(parent);
+		this.info = info;
+	}
+
+	protected Control createDialogArea(Composite ancestor) {
+		if (info.getClassRoot() != null) {
+			classRoot = info.getClassRoot();
+			classFragment = classRoot.getPackageFragment(info.getSourcePackage());
+			classFileNames = createFileListInput(".java", classFragment);
+		}
+
+		if (info.getPropertyRoot() != null) {
+			propertyRoot = info.getPropertyRoot();
+			propertyFragment = propertyRoot.getPackageFragment(info.getPropertyPackage());
+			propertyFileNames = createFileListInput(".properties", propertyFragment);
+		}
+		Composite parent = (Composite) super.createDialogArea(ancestor);
+
+		Composite container = new Composite(parent, SWT.NONE);
+		GridLayout layout = new GridLayout();
+		layout.numColumns = 3;
+		container.setLayout(layout);
+
+		String resourceLabelContens = "Resource bundle accessor class(will be created if it does not exist):";
+		createClassLabel(container, resourceLabelContens);
+
+		createClassFolderField(container);
+		createClassPackageField(container);
+		createClassNameField(container);
+
+		drawLine(container);
+
+		String propertyLabelContens = "Property file location and name:";
+		createPropertyLabel(container, propertyLabelContens);
+
+		createPropertyFolderField(container);
+		createPropertyPackageField(container);
+		createPropertyNameField(container);
+
+		getExistPropertyFile();
+
+		return parent;
+	}
+
+	/**
+	 * draw a line on container.
+	 * 
+	 * @param container
+	 */
+	private void drawLine(Composite container) {
+		Label hLabel = new Label(container, SWT.SEPARATOR | SWT.HORIZONTAL);
+		GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
+		gridData.horizontalSpan = 3;
+		gridData.heightHint = 20;
+		hLabel.setLayoutData(gridData);
+	}
+
+	private void createClassLabel(Composite container, String labelContents) {
+		Label classLabel = new Label(container, SWT.NONE);
+		GridData gridData = new GridData();
+		gridData.horizontalSpan = 3;
+		gridData.heightHint = 20;
+		classLabel.setText(labelContents);
+		classLabel.setLayoutData(gridData);
+	}
+
+	private void createPropertyLabel(Composite container, String labelContents) {
+		propertyLabel = new Label(container, SWT.NONE);
+		GridData gridData = new GridData();
+		gridData.horizontalSpan = 3;
+		gridData.heightHint = 20;
+		gridData.widthHint = 350;
+		propertyLabel.setText(labelContents);
+		propertyLabel.setLayoutData(gridData);
+	}
+
+	private void createClassFolderField(Composite container) {
+		Label sourceFolderLabel = new Label(container, SWT.NONE);
+		GridData gridData = new GridData();
+		sourceFolderLabel.setText("Source folder:");
+		sourceFolderLabel.setLayoutData(gridData);
+
+		sourceFolderText = new Text(container, SWT.BORDER);
+		gridData = new GridData(GridData.FILL_HORIZONTAL);
+		sourceFolderText.setLayoutData(gridData);
+		sourceFolderText.setText(info.getSourceFolder());
+		sourceFolder = sourceFolderText.getText();
+		sourceFolderText.addModifyListener(new ModifyListener() {
+			public void modifyText(ModifyEvent e) {
+				sourceFolder = sourceFolderText.getText();
+				setNewRoot("/" + sourceFolder, true);
+				checkFomat();
+			}
+		});
+		Button sourceFolderButton = new Button(container, SWT.PUSH);
+		sourceFolderButton.setText("Browse...");
+		sourceFolderButton.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(SelectionEvent e) {
+				classRoot = chooseSourceContainer(classRoot);
+				IPath path = classRoot.getPath();
+				sourceFolderText.setText(path.toString().substring(1));
+			}
+		});
+	}
+
+	private void createClassPackageField(Composite container) {
+		Label sourcePackageLabel = new Label(container, SWT.NONE);
+		GridData gridData = new GridData();
+		sourcePackageLabel.setText("Package:");
+		sourcePackageLabel.setLayoutData(gridData);
+
+		Composite classPackageField = new Composite(container, SWT.NONE);
+		GridLayout layout = new GridLayout();
+		layout.numColumns = 4;
+		layout.marginHeight = 0;
+		layout.marginWidth = 0;
+		classPackageField.setLayout(layout);
+		gridData = new GridData(GridData.FILL_HORIZONTAL);
+		classPackageField.setLayoutData(gridData);
+
+		sourcePackageText = new Text(classPackageField, SWT.BORDER);
+		gridData = new GridData(GridData.FILL_HORIZONTAL);
+		sourcePackageText.setLayoutData(gridData);
+		sourcePackageText.setText(info.getSourcePackage());
+		sourcePackage = sourcePackageText.getText();
+		sourcePackageText.addModifyListener(new ModifyListener() {
+			public void modifyText(ModifyEvent e) {
+				sourcePackage = sourcePackageText.getText();
+				checkFomat();
+				if (getSourcePackage() == null || ("").equals(getSourcePackage())) {
+					classDefaultLabel.setText("(default)");
+				}
+			}
+		});
+
+		classDefaultLabel = new Label(classPackageField, SWT.NONE);
+		gridData = new GridData();
+		gridData.widthHint = 100;
+		classDefaultLabel.setLayoutData(gridData);
+
+		sourcePackagButton = new Button(container, SWT.PUSH);
+		sourcePackagButton.setText("Browse...");
+		sourcePackagButton.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(SelectionEvent e) {
+				Widget widget = e.widget;
+				choosePackage(widget, classRoot);
+			}
+		});
+	}
+
+	private void createClassNameField(Composite container) {
+		Label classNameLabel = new Label(container, SWT.NONE);
+		GridData gridData = new GridData();
+		classNameLabel.setText("Class name:");
+		classNameLabel.setLayoutData(gridData);
+
+		classNameText = new Text(container, SWT.BORDER);
+		gridData = new GridData(GridData.FILL_HORIZONTAL);
+		classNameText.setLayoutData(gridData);
+		classNameText.setText(info.getClassName());
+		className = classNameText.getText();
+		classNameText.addModifyListener(new ModifyListener() {
+			public void modifyText(ModifyEvent e) {
+				className = classNameText.getText();
+				checkFomat();
+			}
+		});
+
+		chooseClassTypeButton = new Button(container, SWT.PUSH);
+		chooseClassTypeButton.setText("Browse...");
+		chooseClassTypeButton.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(SelectionEvent e) {
+				browseForAccessorClass(classRoot);
+			}
+		});
+	}
+
+	private void createPropertyFolderField(Composite container) {
+		Label propertyFolderLabel = new Label(container, SWT.NONE);
+		GridData gridData = new GridData();
+		propertyFolderLabel.setText("Source folder:");
+		propertyFolderLabel.setLayoutData(gridData);
+
+		propertyFolderText = new Text(container, SWT.BORDER);
+		gridData = new GridData(GridData.FILL_HORIZONTAL);
+		propertyFolderText.setLayoutData(gridData);
+		propertyFolderText.setText(info.getPropertyFolder());
+		propertyFolder = propertyFolderText.getText();
+		propertyFolderText.addModifyListener(new ModifyListener() {
+			public void modifyText(ModifyEvent e) {
+				propertyFolder = propertyFolderText.getText();
+				setNewRoot("/" + propertyFolder, false);
+				checkFomat();
+			}
+		});
+
+		propertyFolderButton = new Button(container, SWT.PUSH);
+		propertyFolderButton.setText("Browse...");
+		propertyFolderButton.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(SelectionEvent e) {
+				propertyRoot = chooseSourceContainer(propertyRoot);
+				IPath path = propertyRoot.getPath();
+				propertyFolderText.setText(path.toString().substring(1));
+			}
+		});
+	}
+
+	private void createPropertyPackageField(Composite container) {
+		Label propertyPackageLabel = new Label(container, SWT.NONE);
+		GridData gridData = new GridData();
+		propertyPackageLabel.setText("Package:");
+		propertyPackageLabel.setLayoutData(gridData);
+
+		Composite propertyPackageField = new Composite(container, SWT.NONE);
+		GridLayout layout = new GridLayout();
+		layout.numColumns = 4;
+		layout.marginHeight = 0;
+		layout.marginWidth = 0;
+		propertyPackageField.setLayout(layout);
+		gridData = new GridData(GridData.FILL_HORIZONTAL);
+		propertyPackageField.setLayoutData(gridData);
+
+		propertyPackageText = new Text(propertyPackageField, SWT.BORDER);
+		gridData = new GridData(GridData.FILL_HORIZONTAL);
+		propertyPackageText.setLayoutData(gridData);
+		propertyPackageText.setText(info.getPropertyPackage());
+		propertyPackage = propertyPackageText.getText();
+		propertyPackageText.addModifyListener(new ModifyListener() {
+			public void modifyText(ModifyEvent e) {
+				propertyPackage = propertyPackageText.getText();
+				checkFomat();
+				if (getPropertyPackage() == null || ("").equals(getPropertyPackage())) {
+					propertyDefaultLabel.setText("(default)");
+				}
+			}
+		});
+
+		propertyDefaultLabel = new Label(propertyPackageField, SWT.NONE);
+		gridData = new GridData();
+		gridData.widthHint = 100;
+		propertyDefaultLabel.setLayoutData(gridData);
+
+		propertyPackagButton = new Button(container, SWT.PUSH);
+		propertyPackagButton.setText("Browse...");
+		propertyPackagButton.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(SelectionEvent e) {
+				Widget widget = e.widget;
+				choosePackage(widget, propertyRoot);
+			}
+		});
+	}
+
+	private void createPropertyNameField(Composite container) {
+		Label propertyNameLabel = new Label(container, SWT.NONE);
+		GridData gridData = new GridData();
+		propertyNameLabel.setText("Porperty File name:");
+		propertyNameLabel.setLayoutData(gridData);
+
+		propertyNameText = new Text(container, SWT.BORDER);
+		gridData = new GridData(GridData.FILL_HORIZONTAL);
+		propertyNameText.setLayoutData(gridData);
+		propertyNameText.setText(info.getPropertyName());
+		propertyName = propertyNameText.getText();
+		propertyNameText.addModifyListener(new ModifyListener() {
+			public void modifyText(ModifyEvent e) {
+				propertyName = propertyNameText.getText();
+				checkFomat();
+			}
+		});
+
+		choosePropertyTypeButton = new Button(container, SWT.PUSH);
+		choosePropertyTypeButton.setText("Browse...");
+		choosePropertyTypeButton.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(SelectionEvent e) {
+				browseForPropertyFile();
+			}
+		});
+	}
+
+	protected void browseForAccessorClass(IPackageFragmentRoot root) {
+		IProgressService service = PlatformUI.getWorkbench().getProgressService();
+		IJavaSearchScope scope = root != null ? SearchEngine.createJavaSearchScope(new IJavaElement[] { root }) : SearchEngine.createWorkspaceScope();
+		FilteredTypesSelectionDialog dialog = new FilteredTypesSelectionDialog(getShell(), false, service, scope, IJavaSearchConstants.CLASS);
+		dialog.setTitle("Choose a Type");
+		dialog.setInitialPattern("*Messages");
+		classFileNames = createFileListInput(".java", classFragment);
+		if (dialog.open() == Window.OK) {
+			IType selectedType = (IType) dialog.getFirstResult();
+			if (selectedType != null) {
+				classNameText.setText(selectedType.getElementName());
+			}
+		}
+	}
+
+	private void browseForPropertyFile() {
+		ElementListSelectionDialog dialog = new ElementListSelectionDialog(getShell(), new JavaElementLabelProvider());
+		dialog.setIgnoreCase(false);
+		dialog.setTitle("Choose the property file:");
+		dialog.setMessage("Choose the property file:");
+		dialog.setElements(createFileListInput(".properties", propertyFragment));
+		propertyFileNames = createFileListInput(".properties", propertyFragment);
+		dialog.setFilter('*' + "properties");
+		if (dialog.open() == Window.OK) {
+			IFile selectedFile = (IFile) dialog.getFirstResult();
+			if (selectedFile != null)
+				propertyNameText.setText(selectedFile.getName().substring(0, selectedFile.getName().lastIndexOf(".properties")));
+		}
+	}
+
+	private Object[] createFileListInput(String extension, IPackageFragment fragment) {
+		try {
+			if (fragment == null)
+				return new Object[0];
+			List result = new ArrayList(1);
+			if (".java".equals(extension)) {
+				Object[] java = fragment.getChildren();
+				return java;
+			}
+			Object[] nonjava = fragment.getNonJavaResources();
+			for (int i = 0; i < nonjava.length; i++) {
+				if (isAlrightFile(nonjava[i], extension))
+					result.add(nonjava[i]);
+			}
+			return result.toArray();
+		} catch (JavaModelException e) {
+			return new Object[0];
+		}
+	}
+
+	private static boolean isAlrightFile(Object o, String extension) {
+		if (!(o instanceof IFile))
+			return false;
+		IFile file = (IFile) o;
+		return (extension.equals('.' + file.getFileExtension()));
+	}
+
+	/**
+	 * Set the root null.
+	 * 
+	 * @param isClass
+	 */
+	private void setRootNull(boolean isClass) {
+		if (isClass) {
+			classRoot = null;
+		} else {
+			propertyRoot = null;
+		}
+	}
+
+	/**
+	 * While user change the sourceFolderText or propertyFolderText's nameMap,refresh the root.
+	 * 
+	 * @param path
+	 */
+	private void setNewRoot(String path, boolean isClass) {
+		int start = path.indexOf("/");
+		IResource container = ResourcesPlugin.getWorkspace().getRoot().findMember(new Path(path));
+		if (path.length() == 0 || container == null || (container.getType() & (IResource.PROJECT | IResource.FOLDER)) == 0) {
+			setRootNull(isClass);
+		} else if ((path.indexOf("/", path.indexOf("/", start + 1) + 1) != -1) || (path.indexOf("\\") != -1)) {
+			setRootNull(isClass);
+		} else {
+			try {
+				final IFile file = ExternalizeStringsCommon.getIFile(path, "");
+				IJavaProject javaProject = JavaCore.create(file.getProject());
+				IPackageFragmentRoot fragmentRoot[] = javaProject.getAllPackageFragmentRoots();
+				for (int i = 0; i < fragmentRoot.length; i++) {
+					if (fragmentRoot[i].getResource() != null) {
+						if (isClass) {
+							classRoot = fragmentRoot[i];
+						} else {
+							propertyRoot = fragmentRoot[i];
+						}
+						break;
+					}
+				}
+
+			} catch (CoreException e) {
+				LoggerManager.log(e);
+			}
+		}
+	}
+
+	protected void choosePackage(Widget widget, IPackageFragmentRoot root) {
+		IJavaElement[] packages = null;
+		try {
+			if (root != null && root.exists()) {
+				packages = root.getChildren();
+			}
+		} catch (JavaModelException e) {
+			// no need to react
+		}
+		if (packages == null) {
+			packages = new IJavaElement[0];
+		}
+		ElementListSelectionDialog dialog = new ElementListSelectionDialog(getShell(), new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT));
+		dialog.setIgnoreCase(true);
+
+		dialog.setTitle("Package Selection");
+		dialog.setMessage("Choose the destination package:");
+		dialog.setElements(packages);
+
+		if (dialog.open() == Window.OK) {
+			IPackageFragment fragment = (IPackageFragment) dialog.getFirstResult();
+			if (widget.equals(sourcePackagButton)) {
+				sourcePackageText.setText(fragment.getElementName());
+				// classFilePath = fragment.getPath().toString();
+				classFragment = fragment;
+			} else if (widget.equals(propertyPackagButton)) {
+				propertyPackageText.setText(fragment.getElementName());
+				// propertyFilePath = fragment.getPath().toString();
+				propertyFragment = fragment;
+			}
+		}
+	}
+
+	/**
+	 * Uses the standard container selection dialog to choose the new value for the container field.
+	 */
+	private IPackageFragmentRoot chooseSourceContainer(IPackageFragmentRoot root) {
+		Class[] acceptedClasses = new Class[] { IPackageFragmentRoot.class, IJavaProject.class };
+		TypedElementSelectionValidator validator = new TypedElementSelectionValidator(acceptedClasses, false) {
+			public boolean isSelectedValid(Object element) {
+				try {
+					if (element instanceof IJavaProject) {
+						IJavaProject jproject = (IJavaProject) element;
+						IPath path = jproject.getProject().getFullPath();
+						return (jproject.findPackageFragmentRoot(path) != null);
+					} else if (element instanceof IPackageFragmentRoot) {
+						return (((IPackageFragmentRoot) element).getKind() == IPackageFragmentRoot.K_SOURCE);
+					}
+					return true;
+				} catch (JavaModelException e) {
+					JavaPlugin.log(e.getStatus()); // just log, no ui in validation
+				}
+				return false;
+			}
+		};
+
+		acceptedClasses = new Class[] { IJavaModel.class, IPackageFragmentRoot.class, IJavaProject.class };
+		ViewerFilter filter = new TypedViewerFilter(acceptedClasses) {
+			public boolean select(Viewer viewer, Object parent, Object element) {
+				if (element instanceof IPackageFragmentRoot) {
+					try {
+						return (((IPackageFragmentRoot) element).getKind() == IPackageFragmentRoot.K_SOURCE);
+					} catch (JavaModelException e) {
+						JavaPlugin.log(e.getStatus()); // just log, no ui in validation
+						return false;
+					}
+				}
+				return super.select(viewer, parent, element);
+			}
+		};
+
+		StandardJavaElementContentProvider provider = new StandardJavaElementContentProvider();
+		ILabelProvider labelProvider = new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT);
+		ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(getShell(), labelProvider, provider);
+		dialog.setValidator(validator);
+		dialog.setComparator(new JavaElementComparator());
+		dialog.setTitle("Source Folder Selection");
+		dialog.setMessage("Choose a source folder:");
+		dialog.addFilter(filter);
+		dialog.setInput(JavaCore.create(ResourcesPlugin.getWorkspace().getRoot()));
+
+		if (dialog.open() == Window.OK) {
+			Object element = dialog.getFirstResult();
+			if (element instanceof IJavaProject) {
+				IJavaProject jproject = (IJavaProject) element;
+				return jproject.getPackageFragmentRoot(jproject.getProject());
+			} else if (element instanceof IPackageFragmentRoot) {
+				return (IPackageFragmentRoot) element;
+			}
+			return null;
+		}
+		return root;
+	}
+
+	/**
+	 * Ensures that both file path are set.
+	 */
+	private void checkFilePath(String path, boolean isPackage, boolean isClass) {
+		IResource container = ResourcesPlugin.getWorkspace().getRoot().findMember(new Path(path));
+		if (path.length() == 0 && !isPackage) {
+			updateStatus("Both sources folder must be specified");
+			return;
+		}
+		if (container == null || (container.getType() & (IResource.PROJECT | IResource.FOLDER)) == 0) {
+			if (isPackage && !("").equals(path)) {
+				updateStatus("The apecified package for the resource bundle is invalid.");
+				return;
+			} else if (!isPackage) {
+				updateStatus("Both source folders must exist");
+				return;
+			}
+		}
+		if (!container.isAccessible()) {
+			updateStatus("Both projects must be writable");
+			return;
+		}
+		if (!isPackage) {
+			int start = path.indexOf("/");
+			if ((path.indexOf("/", path.indexOf("/", start + 1) + 1) != -1) || (path.indexOf("\\") != -1)) {
+				updateStatus("Both source folders must exist");
+				setRootNull(isClass);
+				return;
+			}
+		}
+		updateStatus("");
+	}
+
+	/**
+	 * Ensures that both file path are set.
+	 */
+	private void checkPackage(String path, String packageName, boolean isProperty) {
+		if (packageName == null || packageName.length() == 0) {
+			if (isProperty) {
+				updateStatus("Incorret package.");
+				return;
+			}
+		}
+		if ((packageName.indexOf("/") != -1) || (packageName.indexOf("\\") != -1)) {
+			updateStatus("The apecified package for the resource bundle is invalid.");
+			return;
+		}
+		checkFilePath(path, true, !isProperty);
+	}
+
+	/**
+	 * check the name of the file.
+	 */
+	private void checkFileName() {
+		String regex = "^([_|a-zA-Z])[_\\w]*$";
+		if ("".equals(getClassName())) {
+			updateStatus("The class name must be specified.");
+		} else {
+			Matcher matcher = Pattern.compile(regex).matcher(className);
+			if (!(matcher.find())) {
+				updateStatus("The type name\"" + className + "\"is not a valid indentifier.");
+			} else {
+				updateStatus("");
+			}
+		}
+	}
+
+	/**
+	 * Check all the text value fomat.
+	 * 
+	 * @param message
+	 */
+	private void checkFomat() {
+		checkFilePath("/" + sourceFolder, false, true);
+		if (isError)
+			return;
+		checkFilePath("/" + propertyFolder, false, false);
+		if (isError)
+			return;
+		checkPackage(getClassFilePath(), getSourcePackage(), false);
+		if (isError)
+			return;
+		checkFileName();
+		if (isError)
+			return;
+		checkPackage(getPropertyFilePath(), getPropertyPackage(), true);
+		if (isError)
+			return;
+		if ("".equals(getPropertyName())) {
+			updateStatus("The Property File Name must be specified. ");
+		} else {
+			updateStatus("");
+			getExistPropertyFile();
+		}
+	}
+
+	private void updateStatus(String message) {
+		if (message != null && !"".equals(message)) {
+			isError = true;
+			fLastStatus = new Status(IStatus.ERROR, JavaCore.PLUGIN_ID, -1, message, null);
+			setPropertyFieldEnable(true);
+		} else {
+			isError = false;
+			fLastStatus = new Status(IStatus.OK, Policy.JFACE, IStatus.OK, Util.ZERO_LENGTH_STRING, null);
+		}
+		updateStatus(fLastStatus);
+	}
+
+	private void getExistPropertyFile() {
+		try {
+			final IFile file = ExternalizeStringsCommon.getIFile(getClassFilePath(), className + ".java");
+			int keyBegin = getClassFilePath().indexOf("/", 1) + 1;
+			int keyEnd = getClassFilePath().indexOf("/", keyBegin + 1);
+			String sourceKey = getClassFilePath().substring(keyBegin, keyEnd);
+			if (file.exists()) {
+				// Get the property file's folder.
+				IJavaProject javaProject = JavaCore.create(file.getProject());
+				String propertyFolder = javaProject.getElementName() + "/" + sourceKey;
+				// Get the property file's package and name.
+				StringBuffer contents = ExternalizeStringsCommon.getHistoryContents(file);
+				String findKey = "BUNDLE_NAME";
+				int index = contents.toString().indexOf(findKey);
+				int start = contents.indexOf("\"", index);
+				int end = contents.indexOf("\"", start + 1);
+				String path = contents.substring(start + 1, end);
+				String propertyPackage = path.substring(0, path.lastIndexOf("."));
+				String propertyName = path.substring(path.lastIndexOf(".") + 1);
+				if (!propertyFolder.equals(propertyFolderText.getText())) {
+					propertyFolderText.setText(propertyFolder);
+				}
+				if (!propertyPackage.equals(propertyPackageText.getText())) {
+					propertyPackageText.setText(propertyPackage);
+				}
+				if (!propertyName.equals(propertyNameText.getText())) {
+					propertyNameText.setText(propertyName);
+				}
+				setPropertyFieldEnable(false);
+			} else {
+				setPropertyFieldEnable(true);
+			}
+		} catch (CoreException e) {
+			LoggerManager.log(e);
+		} catch (IOException e) {
+			LoggerManager.log(e);
+		}
+	}
+
+	/**
+	 * Notifies that the ok button of this dialog has been pressed.
+	 * <p>
+	 * The <code>Dialog</code> implementation of this framework method sets this dialog's return code to <code>Window.OK</code> and closes the dialog. Subclasses may override.
+	 * </p>
+	 */
+	protected void okPressed() {
+		if (checkFileExist(getClassName(), ".java", classFileNames, getClassFilePath())) {
+			return;
+		}
+		if (checkFileExist(getPropertyName(), ".properties", propertyFileNames, getPropertyFilePath())) {
+			return;
+		}
+		setReturnCode(OK);
+		close();
+	}
+
+	/**
+	 * Check the file whether already exist with different case.
+	 */
+	private boolean checkFileExist(String name, String extension, Object[] names, String path) {
+		Object[] fileNames = names;
+		String fileExist;
+		for (int i = 0; i < fileNames.length; i++) {
+			if (".java".equals(extension)) {
+				fileExist = ((IJavaElement) fileNames[i]).getElementName();
+			} else {
+				fileExist = ((IFile) fileNames[i]).getName();
+			}
+			String fileExistName = fileExist.substring(0, fileExist.lastIndexOf(extension));
+			if ((!name.equals(fileExistName)) && name.toLowerCase().equals(fileExistName.toLowerCase())) {
+				showFileExistDialog(name, extension, path);
+				return true;
+			}
+		}
+		return false;
+	}
+
+	/**
+	 * If file already exist but with different case,show the dialog.
+	 */
+	private void showFileExistDialog(String name, String extension, String path) {
+		String dialogMessage = "File '" + path.replace(".", "/") + "/" + name + extension + "' already exist with different case.";
+		String[] dialogButtonLabels = { "Ok" };
+		MessageDialog messageDialog = new MessageDialog(getShell(), "Configure Accessor Class", null, dialogMessage, MessageDialog.ERROR, dialogButtonLabels, 1);
+		messageDialog.open();
+	}
+
+	/**
+	 * Set the property file configure field disabled or enabled.
+	 * 
+	 * @param b
+	 */
+	private void setPropertyFieldEnable(boolean b) {
+		String propertyLabelContens;
+		if (b) {
+			propertyLabelContens = "Property file location and name:";
+		} else {
+			propertyLabelContens = "Property file location and name(Default exist file):";
+		}
+		if (!(propertyLabelContens).equals(propertyLabel.getText())) {
+			propertyLabel.setText(propertyLabelContens);
+		}
+		propertyFolderButton.setEnabled(b);
+		propertyPackagButton.setEnabled(b);
+		choosePropertyTypeButton.setEnabled(b);
+		propertyFolderText.setEnabled(b);
+		propertyPackageText.setEnabled(b);
+		propertyNameText.setEnabled(b);
+	}
+
+	public IPackageFragmentRoot getclassRoot() {
+		return classRoot;
+	}
+
+	public String getClassFilePath() {
+		return "/" + sourceFolder + "/" + getSourcePackage().replace(".", "/");
+	}
+
+	public String getSourceFolder() {
+		return sourceFolder;
+	}
+
+	public String getSourcePackage() {
+		return sourcePackage;
+	}
+
+	public String getClassName() {
+		return className;
+	}
+
+	public IPackageFragmentRoot getPropertyRoot() {
+		return propertyRoot;
+	}
+
+	public String getPropertyFolder() {
+		return propertyFolder;
+	}
+
+	public String getPropertyFilePath() {
+		return "/" + propertyFolder + "/" + getPropertyPackage().replace(".", "/");
+	}
+
+	public String getPropertyPackage() {
+		return propertyPackage;
+	}
+
+	public String getPropertyName() {
+		return propertyName;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/ColorChooser.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/ColorChooser.java
new file mode 100755
index 0000000..f98d604
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/ColorChooser.java
@@ -0,0 +1,357 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.dialogs;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTMaps;
+import org.eclipse.xwt.utils.NamedColorsUtil;
+import org.eclipse.xwt.utils.ResourceManager;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.RGB;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Canvas;
+import org.eclipse.swt.widgets.ColorDialog;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.TabFolder;
+import org.eclipse.swt.widgets.TabItem;
+import org.eclipse.swt.widgets.Text;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ColorChooser extends Dialog {
+	private Canvas previewCanvas;
+	private Text redText;
+	private Text greenText;
+	private Text blueText;
+	private Text resultText;
+
+	private Object initValue;
+	private Map<Object, Color> colorsMap = new HashMap<Object, Color>();
+
+	private String result;
+
+	private static final Color BACKGROUND = Display.getDefault().getSystemColor(SWT.COLOR_WHITE);
+	private Control selection;
+
+	public ColorChooser(Shell parent, Object initValue) {
+		super(parent);
+		this.initValue = initValue;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell.setText("Color Chooser");
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	protected Control createDialogArea(Composite parent) {
+		Composite dialogArea = (Composite) super.createDialogArea(parent);
+		dialogArea.setLayout(new GridLayout(1, true));
+
+		createPreviewGrp(dialogArea);
+
+		createColorGrp(dialogArea);
+		if (initValue != null) {
+			if (initValue instanceof String) {
+				preview((String) initValue);
+			} else if (initValue instanceof Color) {
+				preview((Color) initValue);
+			}
+		}
+
+		return dialogArea;
+	}
+
+	private void createColorGrp(Composite dialogArea) {
+		Group colorGrp = new Group(dialogArea, SWT.NONE);
+		colorGrp.setText("Color");
+		colorGrp.setLayout(new GridLayout());
+		colorGrp.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+		TabFolder tabFolder = new TabFolder(colorGrp, SWT.NONE);
+		tabFolder.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+		TabItem systemTab = new TabItem(tabFolder, SWT.NONE);
+		systemTab.setText("System Colors");
+		systemTab.setControl(createSystemColorsControl(tabFolder));
+
+		TabItem namedTab = new TabItem(tabFolder, SWT.NONE);
+		namedTab.setText("Named Colors");
+		namedTab.setControl(createNamedColorsControl(tabFolder));
+
+		Button browserButton = new Button(colorGrp, SWT.PUSH);
+		browserButton.setText("System Color Dialog");
+		browserButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		browserButton.addListener(SWT.Selection, new Listener() {
+			public void handleEvent(Event event) {
+				ColorDialog colorDialog = new ColorDialog(getShell());
+				RGB open = colorDialog.open();
+				if (open != null) {
+					preview(open);
+				}
+			}
+		});
+	}
+
+	private Control createNamedColorsControl(Composite parent) {
+		ScrolledComposite scrollable = new ScrolledComposite(parent, SWT.BORDER | SWT.V_SCROLL);
+		Composite control = new Composite(scrollable, SWT.NONE);
+		control.setLayout(new GridLayout(16, true));
+		control.setBackground(BACKGROUND);
+		String[] namedColors = NamedColorsUtil.getColorNames();
+		for (String colorName : namedColors) {
+			addNamedColor(control, colorName);
+		}
+		scrollable.setContent(control);
+		scrollable.setExpandVertical(true);
+		scrollable.setExpandHorizontal(true);
+		scrollable.setMinSize(control.computeSize(-200, SWT.DEFAULT));
+		scrollable.setBackground(BACKGROUND);
+		return scrollable;
+	}
+
+	private void addNamedColor(Composite control, final String colorName) {
+		final CLabel colorLabel = new CLabel(control, SWT.NONE);
+		colorLabel.setBackground(BACKGROUND);
+		// colorLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		colorLabel.setToolTipText(colorName);
+		// colorLabel.setText(colorName);
+		Color color = NamedColorsUtil.getColor(colorName);
+		if (color != null) {
+			Display device = Display.getCurrent();
+			Image image = new Image(device, 18, 18);
+			GC gc = new GC(image);
+			gc.setBackground(color);
+			gc.fillRectangle(0, 0, 18, 18);
+			gc.dispose();
+			colorLabel.setImage(image);
+		}
+		final Display display = getShell().getDisplay();
+		colorLabel.addListener(SWT.MouseExit, new Listener() {
+			public void handleEvent(Event event) {
+				if (colorLabel != selection) {
+					colorLabel.setBackground(BACKGROUND);
+				}
+			}
+		});
+
+		colorLabel.addListener(SWT.MouseEnter, new Listener() {
+			public void handleEvent(Event event) {
+				if (colorLabel != selection) {
+					colorLabel.setBackground(new Color[] { display.getSystemColor(SWT.COLOR_WHITE), display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND) }, new int[] { 100 }, true);
+				}
+			}
+		});
+
+		colorLabel.addListener(SWT.MouseDown, new Listener() {
+			public void handleEvent(Event event) {
+				Control oldSelection = selection;
+				if (oldSelection == null || oldSelection != colorLabel) {
+					colorLabel.setBackground(new Color[] { display.getSystemColor(SWT.COLOR_WHITE), display.getSystemColor(SWT.COLOR_GRAY) }, new int[] { 100 }, true);
+					preview(colorName);
+					selection = colorLabel;
+				} else {
+					selection = null;
+					preview(null);
+				}
+				if (oldSelection != null) {
+					oldSelection.setBackground(BACKGROUND);
+				}
+			}
+		});
+	}
+
+	private Control createSystemColorsControl(Composite parent) {
+		Composite control = new Composite(parent, SWT.BORDER);
+		control.setLayout(new GridLayout(16, true));
+		control.setBackground(BACKGROUND);
+		Collection<String> systemColors = XWTMaps.getColorKeys();
+		for (String sysColor : systemColors) {
+			addSystemColor(control, sysColor);
+		}
+		return control;
+	}
+
+	private void addSystemColor(Composite parent, final String systemColor) {
+		final CLabel colorLabel = new CLabel(parent, SWT.NONE);
+		colorLabel.setBackground(BACKGROUND);
+		colorLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		colorLabel.setToolTipText(systemColor);
+		Color color = ResourceManager.resources.getColor(systemColor);
+		if (color != null) {
+			Display device = Display.getCurrent();
+			Image image = new Image(device, 18, 18);
+			GC gc = new GC(image);
+			gc.setBackground(color);
+			gc.fillRectangle(0, 0, 18, 18);
+			gc.dispose();
+			colorLabel.setImage(image);
+		}
+		final Display display = getShell().getDisplay();
+		colorLabel.addListener(SWT.MouseExit, new Listener() {
+			public void handleEvent(Event event) {
+				if (colorLabel != selection) {
+					colorLabel.setBackground(BACKGROUND);
+				}
+			}
+		});
+
+		colorLabel.addListener(SWT.MouseEnter, new Listener() {
+			public void handleEvent(Event event) {
+				if (colorLabel != selection) {
+					colorLabel.setBackground(new Color[] { display.getSystemColor(SWT.COLOR_WHITE), display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND) }, new int[] { 100 }, true);
+				}
+			}
+		});
+
+		colorLabel.addListener(SWT.MouseDown, new Listener() {
+			public void handleEvent(Event event) {
+				Control oldSelection = selection;
+				if (oldSelection == null || oldSelection != colorLabel) {
+					colorLabel.setBackground(new Color[] { display.getSystemColor(SWT.COLOR_WHITE), display.getSystemColor(SWT.COLOR_GRAY) }, new int[] { 100 }, true);
+					preview(systemColor);
+					selection = colorLabel;
+				} else {
+					selection = null;
+					preview(null);
+				}
+				if (oldSelection != null) {
+					oldSelection.setBackground(BACKGROUND);
+				}
+			}
+		});
+	}
+
+	private Color getColor(Object object) {
+		if (object == null) {
+			return null;
+		}
+		Color color = colorsMap.get(object);
+		if (color != null && !color.isDisposed()) {
+			return color;
+		}
+		if (object instanceof String) {
+			String colorStr = ((String) object).trim();
+			IConverter c = XWT.findConvertor(String.class, Color.class);
+			if (c != null) {
+				color = (Color) c.convert(colorStr);
+			}
+		} else if (object instanceof RGB) {
+			color = new Color(null, (RGB) object);
+			colorsMap.put(object, color);
+		} else if (object instanceof Color) {
+			color = (Color) object;
+		}
+		return color;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.dialogs.Dialog#close()
+	 */
+	public boolean close() {
+		Collection<Color> values = colorsMap.values();
+		for (Color color : values) {
+			if (color != null) {
+				color.dispose();
+			}
+		}
+		colorsMap.clear();
+		return super.close();
+	}
+
+	private void preview(Object object) {
+		Color color = getColor(object);
+		if (color != null && !color.isDisposed()) {
+			int red = color.getRed();
+			int green = color.getGreen();
+			int blue = color.getBlue();
+			if (object instanceof String) {
+				result = (String) object;
+			} else {
+				result = red + "," + green + "," + blue;
+			}
+			previewCanvas.setBackground(color);
+			redText.setText("" + red);
+			greenText.setText("" + green);
+			blueText.setText("" + blue);
+			resultText.setText(result);
+		} else {
+			previewCanvas.setBackground(null);
+			redText.setText("");
+			greenText.setText("");
+			blueText.setText("");
+			resultText.setText("");
+		}
+	}
+
+	private void createPreviewGrp(Composite parent) {
+		Group previewGrp = new Group(parent, SWT.NONE);
+		previewGrp.setText("Selected Color");
+		previewGrp.setLayout(new GridLayout(3, false));
+		previewGrp.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+		previewCanvas = new Canvas(previewGrp, SWT.BORDER);
+		GridData layoutData = new GridData(GridData.FILL_BOTH);
+		layoutData.verticalSpan = 4;
+		previewCanvas.setLayoutData(layoutData);
+
+		redText = createTextGroup(previewGrp, "R:");
+		greenText = createTextGroup(previewGrp, "G:");
+		blueText = createTextGroup(previewGrp, "B:");
+		resultText = createTextGroup(previewGrp, "Result:");
+	}
+
+	private Text createTextGroup(Composite parent, String name) {
+		Label label = new Label(parent, SWT.CENTER);
+		label.setText(name);
+		final Text text = new Text(parent, SWT.READ_ONLY);
+		text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		return text;
+	}
+
+	public String getColor() {
+		return result;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/EventHandlerDialog.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/EventHandlerDialog.java
new file mode 100755
index 0000000..fd65f0e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/EventHandlerDialog.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.dialogs;
+
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.metadata.IEvent;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+public class EventHandlerDialog extends AbstractEventHandlerDialog {
+	public EventHandlerDialog(StructuredTextViewer textViewer, String oldHandler, String attrValue, String[] handlers) {
+		super(textViewer, oldHandler, attrValue, handlers);
+	}
+
+	protected boolean usedByOther(Node node, String oldHandler) {
+		while ((node != null) && (node.getNodeType() == Node.TEXT_NODE) && (node.getParentNode() != null)) {
+			node = node.getParentNode();
+		}
+		if (node == null) {
+			return false;
+		}
+		String name = node.getNodeName();
+		if (node.getNodeType() == Node.ELEMENT_NODE) {
+			IMetaclass metaclass = XWT.getMetaclass(name, node.getNamespaceURI());
+			if (metaclass != null) {
+				NamedNodeMap nodeMap = node.getAttributes();
+				for (int j = nodeMap.getLength() - 1; j >= 0; j--) {
+					IDOMAttr attrNode = (IDOMAttr) nodeMap.item(j);
+					String attrName = attrNode.getName();
+					String attrValue = attrNode.getValue();
+					IEvent event = metaclass.findEvent(attrName);
+					if (event != null) {
+						if (attrValue.equals(oldHandler)) {
+							count++;
+						}
+					}
+					if (count >= 1) {
+						return true;
+					}
+
+				}
+			}
+		}
+		NodeList nodes = node.getChildNodes();
+		int length = nodes.getLength();
+		for (int i = 0; i < length; i++) {
+			Node childNode = nodes.item(i);
+			if (childNode.getNodeType() == Node.ELEMENT_NODE) {
+				usedByOther(childNode, oldHandler);
+			}
+		}
+		if (count >= 1) {
+			return true;
+		} else {
+			return false;
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/ExternalizeTextDialog.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/ExternalizeTextDialog.java
new file mode 100755
index 0000000..05400cf
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/ExternalizeTextDialog.java
@@ -0,0 +1,150 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.dialogs;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+
+/**
+ * @author xrchen (xiaoru.chen@soyatec.com)
+ * 
+ */
+public class ExternalizeTextDialog extends Dialog {
+
+	private String oldValue;
+	private String textValue;
+	private Text text;
+	private boolean canExternalize;
+	private boolean isExternalized;
+	private Button externalizeButton;
+	private Button updateButton;
+	private String propertyName;
+
+	/**
+	 * @param parentShell
+	 */
+	public ExternalizeTextDialog(Shell parentShell, String oldValue, boolean canExternalize, String propertyName) {
+		super(parentShell);
+		this.oldValue = oldValue;
+		this.canExternalize = canExternalize;
+		this.isExternalized = !canExternalize;
+		this.propertyName = propertyName;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell.setText("Set " + (propertyName.substring(0, 1)).toUpperCase() + propertyName.substring(1) + " Dialog");
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	protected Control createDialogArea(Composite parent) {
+		Composite dialogArea = (Composite) super.createDialogArea(parent);
+		GridLayout layout = (GridLayout) dialogArea.getLayout();
+		layout.numColumns = 3;
+
+		Label label = new Label(dialogArea, SWT.NONE);
+		label.setText(propertyName);
+
+		text = new Text(dialogArea, SWT.BORDER);
+		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
+		gridData.widthHint = 200;
+		text.setText(oldValue == null ? "" : oldValue);
+		text.setLayoutData(gridData);
+		textValue = text.getText();
+		text.addModifyListener(new ModifyListener() {
+
+			public void modifyText(ModifyEvent e) {
+				textValue = text.getText();
+				if (!textValue.equals(oldValue)) {
+					updateButton.setEnabled(true);
+					canExternalize = false;
+					externalizeButton.setEnabled(canExternalize);
+				} else if (!isExternalized) {
+					updateButton.setEnabled(false);
+					canExternalize = true;
+					externalizeButton.setEnabled(canExternalize);
+				} else {
+					updateButton.setEnabled(false);
+				}
+			}
+		});
+
+		return dialogArea;
+	}
+
+	/**
+	 * Adds buttons to this dialog's button bar.
+	 * 
+	 * @param parent
+	 *            the button bar composite
+	 */
+	protected void createButtonsForButtonBar(Composite parent) {
+		createButton(parent, IDialogConstants.YES_ID, "Externalize Value", false);
+		externalizeButton = getButton(IDialogConstants.YES_ID);
+		externalizeButton.setEnabled(!isExternalized);
+		createButton(parent, IDialogConstants.OK_ID, "Update value", false);
+		updateButton = getButton(IDialogConstants.OK_ID);
+		updateButton.setEnabled(false);
+
+		createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, true);
+	}
+
+	/**
+	 * Notifies that this dialog's button with the given id has been pressed.
+	 * 
+	 * @param buttonId
+	 *            the id of the button that was pressed (see <code>IDialogConstants.*_ID</code> constants)
+	 */
+	protected void buttonPressed(int buttonId) {
+		if (IDialogConstants.OK_ID == buttonId) {
+			okPressed();
+		} else if (IDialogConstants.CANCEL_ID == buttonId) {
+			cancelPressed();
+		} else if (IDialogConstants.YES_ID == buttonId) {
+			externalizePressed();
+		}
+	}
+
+	/**
+	 * Notifies that the cancel button of this dialog has been pressed.
+	 */
+	protected void externalizePressed() {
+		setReturnCode(IDialogConstants.YES_ID);
+		close();
+	}
+
+	public String getTextValue() {
+		return textValue;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/ImageDialog.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/ImageDialog.java
new file mode 100755
index 0000000..2d7ac07
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/ImageDialog.java
@@ -0,0 +1,345 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.dialogs;
+
+import java.io.File;
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.xwt.utils.PathHelper;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.ui.JavaElementLabelProvider;
+import org.eclipse.jdt.ui.StandardJavaElementContentProvider;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Shell;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ImageDialog extends Dialog {
+
+	private IProject project;
+	private IFile file;
+	private String imagePath;
+	private Label imageLabel;
+	private Label previewLable;
+
+	private Image image;
+
+	public ImageDialog(Shell parentShell, IFile file) {
+		super(parentShell);
+		this.file = file;
+		if (file != null) {
+			this.project = file.getProject();
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell.setText("Image Dialog");
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.dialogs.Dialog#isResizable()
+	 */
+	protected boolean isResizable() {
+		return true;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.dialogs.Dialog#getInitialSize()
+	 */
+	protected Point getInitialSize() {
+		Point point = super.getInitialSize();
+		if (point.y < 343) {
+			point.y = 343;
+		}
+		if (point.x < 440) {
+			point.x = 440;
+		}
+		return point;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	protected Control createDialogArea(Composite parent) {
+		Composite dialogArea = (Composite) super.createDialogArea(parent);
+		GridLayout layout = (GridLayout) dialogArea.getLayout();
+		layout.numColumns = 2;
+
+		Group leftComp = new Group(dialogArea, SWT.NONE);
+		leftComp.setText("types");
+		layout = new GridLayout(2, false);
+		leftComp.setLayout(layout);
+		leftComp.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+		final Button projRadio = new Button(leftComp, SWT.RADIO);
+		projRadio.setText("Project");
+		projRadio.setSelection(true);
+		projRadio.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER));
+		new Label(leftComp, SWT.NONE)/* .setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER | GridData.GRAB_VERTICAL)) */;
+
+		final Button fileRadio = new Button(leftComp, SWT.RADIO);
+		fileRadio.setText("File System");
+		fileRadio.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER));
+		final Button browserButton = new Button(leftComp, SWT.PUSH);
+		browserButton.setText("Browser");
+		// browserButton.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER | GridData.GRAB_VERTICAL));
+		browserButton.setEnabled(false);
+
+		Group previewer = new Group(dialogArea, SWT.NONE);
+		previewer.setText("Preview");
+		previewer.setLayout(new FillLayout());
+		previewLable = new Label(previewer, SWT.CENTER | SWT.SHADOW_IN);
+		GridData gd = new GridData(GridData.FILL_BOTH);
+		// gd.heightHint = 50;
+		// gd.widthHint = 50;
+		// gd.horizontalSpan = 2;
+		previewer.setLayoutData(gd);
+
+		final TreeViewer viewer = new TreeViewer(dialogArea, SWT.BORDER);
+		GridData layoutData = new GridData(GridData.FILL_BOTH);
+		layoutData.horizontalSpan = 2;
+		viewer.getControl().setLayoutData(layoutData);
+		viewer.setContentProvider(new ImageContentProvider());
+		JavaElementLabelProvider labelProvider = new JavaElementLabelProvider() {
+			public String getText(Object element) {
+				// Need a slight override, for source roots, want to show the entire path so that the project shows up.
+				// It doesn't look as good because you can't tell what project the root is in when there are required projects.
+				String result = super.getText(element);
+				if (element instanceof IPackageFragmentRoot)
+					result = MessageFormat.format("{0} - {1}", new Object[] { result, ((IPackageFragmentRoot) element).getJavaProject().getElementName() });
+				return result;
+			}
+		};
+		viewer.setLabelProvider(labelProvider);
+		if (project != null) {
+			viewer.setInput(JavaCore.create(project));
+		}
+		viewer.expandToLevel(2);
+		viewer.addSelectionChangedListener(new ISelectionChangedListener() {
+			public void selectionChanged(SelectionChangedEvent event) {
+				IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
+				Object firstElement = selection.getFirstElement();
+				if (firstElement instanceof IFile) {
+					IPath fullPath = ((IFile) firstElement).getLocation();
+					String path = fullPath.toString();
+					if (file != null) {
+						String sourcePath = file.getLocation().toString();
+						path = PathHelper.getRelativePath(sourcePath, path);
+					}
+					setImagePath(path);
+				}
+			}
+		});
+		Listener listener = new Listener() {
+			public void handleEvent(Event event) {
+				setImagePath(null);
+				if (event.widget == projRadio) {
+					viewer.getControl().setEnabled(true);
+					browserButton.setEnabled(false);
+				} else if (event.widget == fileRadio) {
+					viewer.getControl().setEnabled(false);
+					browserButton.setEnabled(true);
+				} else if (event.widget == browserButton) {
+					chooseImage();
+				}
+			}
+		};
+		projRadio.addListener(SWT.Selection, listener);
+		fileRadio.addListener(SWT.Selection, listener);
+		browserButton.addListener(SWT.Selection, listener);
+
+		Composite bottomComp = new Composite(dialogArea, SWT.NONE);
+		layout = new GridLayout(2, false);
+		layout.marginWidth = 0;
+		layout.marginHeight = 0;
+		bottomComp.setLayout(layout);
+		gd = new GridData(GridData.FILL_HORIZONTAL);
+		gd.horizontalSpan = 2;
+		bottomComp.setLayoutData(gd);
+		new Label(bottomComp, SWT.NONE).setText("Image:");
+		imageLabel = new Label(bottomComp, SWT.NONE);
+		imageLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		return dialogArea;
+	}
+
+	protected void chooseImage() {
+		FileDialog dialog = new FileDialog(getShell());
+		dialog.setFilterExtensions(new String[] { "*.png", "*.gif", "*.*" });
+		setImagePath(dialog.open());
+	}
+
+	private void setImagePath(String imagePath) {
+		this.imagePath = imagePath;
+		if (imagePath != null) {
+			imageLabel.setText(imagePath);
+		} else {
+			imageLabel.setText("");
+		}
+		previewImage(imagePath);
+	}
+
+	private void previewImage(String imagePath) {
+		if (image != null) {
+			image.dispose();
+		}
+		if (imagePath == null) {
+			previewLable.setImage(null);
+		} else {
+			File imageFile = new File(imagePath);
+			if (imageFile.exists()) {
+				image = new Image(null, imageFile.getAbsolutePath());
+			} else if (file != null) {
+				String absolutePath = PathHelper.getAbsolutePath(file.getLocation().toString(), imagePath);
+				imageFile = new File(absolutePath);
+				if (imageFile.exists()) {
+					image = new Image(null, imageFile.getAbsolutePath());
+				}
+			}
+		}
+		if (image != null && !image.isDisposed()) {
+			previewLable.setImage(image);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.dialogs.Dialog#close()
+	 */
+	public boolean close() {
+		boolean close = super.close();
+		if (image != null) {
+			image.dispose();
+		}
+		return close;
+	}
+
+	public String getImagePath() {
+		return imagePath;
+	}
+
+	/*
+	 * Content provider for java for our requirements. We extend the standard because it does some important things. We will just fine tune it here.
+	 */
+	private static class ImageContentProvider extends StandardJavaElementContentProvider {
+
+		private boolean validRoot(IPackageFragmentRoot root) {
+			return !root.isExternal() && !root.isArchive();
+		}
+
+		/*
+		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(Object)
+		 */
+		public Object[] getElements(Object inputElement) {
+			// This would be a project, and since it is the root, we want all packageFragmentRoots, including from required projects.
+			try {
+				if (inputElement instanceof IJavaProject) {
+					IPackageFragmentRoot[] roots = ((IJavaProject) inputElement).getAllPackageFragmentRoots();
+					ArrayList<IPackageFragmentRoot> newRoots = new ArrayList<IPackageFragmentRoot>(roots.length);
+					for (int i = 0; i < roots.length; i++) {
+						if (validRoot(roots[i]))
+							newRoots.add(roots[i]);
+					}
+
+					return newRoots.toArray();
+				}
+			} catch (JavaModelException e) {
+			}
+			return StandardJavaElementContentProvider.NO_CHILDREN;
+		}
+
+		/*
+		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(Object)
+		 */
+		public Object[] getChildren(Object parentElement) {
+			try {
+				// I don't need all types, I'm looking specifically only for package fragment roots. They are the only
+				// element in this environment that can have children.
+				if (parentElement instanceof IPackageFragmentRoot) {
+					return ((IPackageFragmentRoot) parentElement).getChildren(); // Get just the package fragments.
+				} else if (parentElement instanceof IJavaElement) {
+					Object[] children = super.getChildren(parentElement);
+					List<Object> result = new ArrayList<Object>();
+					for (Object child : children) {
+						if (child instanceof IFile) {
+							String ext = ((IFile) child).getFileExtension();
+							if (ext != null && ("png".equals(ext) || "gif".equals(ext))) {
+								result.add(child);
+							}
+						}
+					}
+					return result.toArray(new Object[0]);
+				}
+			} catch (JavaModelException e) {
+			}
+
+			return StandardJavaElementContentProvider.NO_CHILDREN;
+		}
+
+		/*
+		 * @see org.eclipse.jdt.ui.StandardJavaElementContentProvider#hasChildren(Object)
+		 */
+		public boolean hasChildren(Object element) {
+			return super.hasChildren(element);
+		}
+
+		protected Object skipProjectPackageFragmentRoot(IPackageFragmentRoot root) {
+			// We don't want to skip roots that are the project. We don't show the project in
+			// our tree. Because of this we can never programatically select fragments.
+			// So instead we return the root as is.
+			return root;
+		}
+
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/LayoutAssistantWindow.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/LayoutAssistantWindow.java
new file mode 100755
index 0000000..65b4744
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/LayoutAssistantWindow.java
@@ -0,0 +1,379 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.dialogs;
+
+import java.util.Map;
+
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.gef.EditPart;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.custom.CTabItem;
+import org.eclipse.swt.custom.StackLayout;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.swt.widgets.ToolItem;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
+import org.eclipse.xwt.tools.ui.designer.layouts.pages.AssistancePageFactory;
+import org.eclipse.xwt.tools.ui.designer.layouts.pages.IAssistantPage;
+import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+
+/**
+ * @author rui.ban rui.ban@soyatec.com
+ */
+public class LayoutAssistantWindow extends Window {
+
+	public static final String NOLAYOUT_TAB = "Info";
+	public static final String LAYOUT_TAB = "Layout";
+	public static final String PARENTLAYOUT_TAB = "Parent Layout";
+	public static final String LAYOUTDATA_TAB = "Layout Data";
+
+	private EditPart editPart;
+
+	protected CTabFolder tabFolder;
+
+	private CTabItem layoutTab;
+	private CTabItem layoutDataTab;
+
+	protected Composite layoutPage;
+	protected StackLayout layoutPageLayout;
+	protected Composite layoutDataPage;
+	protected StackLayout layoutDataPageLayout;
+
+	protected Composite noLayoutPage;
+	protected Composite noComponentPage;
+
+	private Map<Object, IAssistantPage> pageMaps = AssistancePageFactory.newPages();
+
+	private boolean isClosed;
+	private boolean isOpened;
+
+	/**
+	 * @param parentShell
+	 */
+	public LayoutAssistantWindow(Shell parentShell) {
+		super(parentShell);
+		setShellStyle(SWT.CLOSE | SWT.MODELESS | SWT.BORDER | SWT.TITLE | SWT.RESIZE);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell.setText("Layout Assistant");
+	}
+
+	/**
+	 * @param editPart
+	 */
+	public void setEditPart(EditPart editPart) {
+		EditPart oldEp = this.editPart;
+		if (editPart != null && editPart != oldEp) {
+			this.editPart = editPart;
+			refresh();
+		}
+	}
+
+	/**
+	 * @see org.eclipse.jface.window.Window#createContents(org.eclipse.swt.widgets.Composite)
+	 */
+	protected Control createContents(Composite parent) {
+		tabFolder = new CTabFolder(parent, SWT.NONE);
+		tabFolder.setLayoutData(new GridData(GridData.FILL_BOTH));
+		// Create the Layout tab.
+		String tabName = getLayoutTabName();
+		layoutTab = new CTabItem(tabFolder, SWT.NONE);
+		layoutTab.setText(tabName);
+		layoutTab.setToolTipText("layout options");
+
+		layoutPage = new Composite(tabFolder, SWT.NONE);
+		layoutPageLayout = new StackLayout();
+		layoutPage.setLayout(layoutPageLayout);
+		layoutTab.setControl(layoutPage);
+
+		if (tabName.equals(NOLAYOUT_TAB)) {
+			// create info page for model which does not contain any layout attribute.
+			createNoneLayoutPage();
+		} else if (tabName.equals(LAYOUT_TAB)) {
+			// Create layout page for composite or shell and its subclasses.
+			createParentLayoutPage(editPart);
+		} else if (tabName.equals(PARENTLAYOUT_TAB)) {
+			// Create parent layout page and layoutData page for control and its subclasses.
+			createControlLayoutPage();
+		}
+		tabFolder.addDisposeListener(new DisposeListener() {
+			public void widgetDisposed(DisposeEvent e) {
+				tabFolder = null;
+			}
+		});
+
+		ToolBar toolBar = new ToolBar(tabFolder, SWT.NONE);
+		ToolItem defaultTool = new ToolItem(toolBar, SWT.PUSH);
+		defaultTool.setImage(ImageShop.get(ImageShop.IMG_CLEAR_FILTER));
+		defaultTool.setToolTipText("Clear setting values.");
+		defaultTool.addListener(SWT.Selection, new Listener() {
+			public void handleEvent(Event event) {
+				performDefault();
+			}
+		});
+		tabFolder.setTopRight(toolBar);
+		tabFolder.setTabHeight(22);
+		Dialog.applyDialogFont(tabFolder);
+		return tabFolder;
+	}
+
+	protected void performDefault() {
+		CTabItem selection = tabFolder.getSelection();
+		if (selection == null) {
+			return;
+		}
+		Control control = null;
+		if (selection == layoutTab) {
+			control = layoutPageLayout.topControl;
+		} else if (selection == layoutDataTab) {
+			control = layoutDataPageLayout.topControl;
+		}
+		if (control != null && control.getData() != null && control.getData() instanceof IAssistantPage) {
+			((IAssistantPage) control.getData()).performDefault();
+		}
+	}
+
+	/**
+	 * create info page for model which does not contain any layout attribute.
+	 */
+	private void createNoneLayoutPage() {
+		if (noLayoutPage == null) {
+			noLayoutPage = new Composite(layoutPage, SWT.NONE);
+			noLayoutPage.setLayout(new GridLayout());
+			Label noLayoutLabel = new Label(noLayoutPage, SWT.WRAP);
+			noLayoutLabel.setText("Selection does not provide any layout assistance.");
+			GridData gd = new GridData();
+			gd.widthHint = 200;
+			noLayoutLabel.setLayoutData(gd);
+		}
+		layoutPageLayout.topControl = noLayoutPage;
+		layoutPage.layout();
+	}
+
+	/**
+	 * Create parent layout page and layoutData page for editpart.
+	 */
+	private void createControlLayoutPage() {
+		EditPart parentEditPart = getParent(editPart);
+		if (parentEditPart != null) {
+			createParentLayoutPage(parentEditPart);
+		}
+		IAssistantPage dataPage = pageMaps.get(LayoutsHelper.getLayoutDataType(editPart));
+		if (dataPage != null) {
+			// Create the layoutData tab if it not created.
+			if (layoutDataTab == null || layoutDataTab.isDisposed()) {
+				createLayoutDataTab();
+			}
+			createPageControl(dataPage, layoutDataPage, layoutDataPageLayout);
+		} else {
+			if (layoutDataTab != null && !layoutDataTab.isDisposed()) {
+				layoutDataTab.setControl(null);
+				layoutDataTab.dispose();
+			}
+		}
+	}
+
+	/**
+	 * Create the layoutData tab.
+	 */
+	private void createLayoutDataTab() {
+		layoutDataTab = new CTabItem(tabFolder, SWT.NONE);
+		layoutDataTab.setText(LAYOUTDATA_TAB);
+		layoutDataTab.setToolTipText("layoutData options");
+
+		if (layoutDataPage == null) {
+			layoutDataPage = new Composite(tabFolder, SWT.NONE);
+			layoutDataPageLayout = new StackLayout();
+			layoutDataPage.setLayout(layoutDataPageLayout);
+		}
+		layoutDataTab.setControl(layoutDataPage);
+	}
+
+	/**
+	 * Create layout page for composite and its subclasses.
+	 */
+	private void createParentLayoutPage(EditPart editPart) {
+		IAssistantPage page = pageMaps.get(LayoutsHelper.getLayoutType(editPart));
+		if (page != null) {
+			createPageControl(page, layoutPage, layoutPageLayout);
+			page.setEditPart(editPart);
+		}
+	}
+
+	private void createPageControl(IAssistantPage assistantPage, Composite parentComposite, StackLayout parentLayout) {
+		Control control = assistantPage.getControl(parentComposite);
+		if (control != null) {
+			parentLayout.topControl = control;
+			parentComposite.layout();
+			assistantPage.setEditPart(editPart);
+
+			// Now resize to handle the new page.
+			Point size = getInitialSize();
+			getShell().setSize(size.x, size.y);
+		}
+	}
+
+	/**
+	 * if model changed refresh this dialog.
+	 */
+	public void refresh() {
+		if (layoutTab == null || layoutTab.isDisposed()) {
+			return;
+		}
+		String tabName = getLayoutTabName();
+		layoutTab.setText(tabName);
+		if (tabName.equals(NOLAYOUT_TAB)) {
+			createNoneLayoutPage();
+		} else if (tabName.equals(LAYOUT_TAB)) {
+			createParentLayoutPage(editPart);
+			if (layoutDataTab != null && !layoutDataTab.isDisposed()) {
+				layoutDataTab.setControl(null);
+				layoutDataTab.dispose();
+			}
+		} else if (tabName.equals(PARENTLAYOUT_TAB)) {
+			createControlLayoutPage();
+		}
+	}
+
+	private String getLayoutTabName() {
+		if (editPart != null) {
+			EditPart parent = getParent(editPart);
+			XamlAttribute layoutAttr = null;
+			if (parent == null) {
+				layoutAttr = getLayoutAttr(editPart.getModel());
+				if (layoutAttr != null) {
+					return LAYOUT_TAB;
+				}
+			} else {
+				layoutAttr = getLayoutAttr(parent.getModel());
+				if (layoutAttr != null) {
+					return PARENTLAYOUT_TAB;
+				}
+			}
+		}
+		return NOLAYOUT_TAB;
+	}
+
+	/**
+	 * Get layout attribute from the element.
+	 * 
+	 * @param model
+	 * @return
+	 */
+	private XamlAttribute getLayoutAttr(Object model) {
+		XamlAttribute attribute = null;
+		if (model instanceof XamlElement) {
+			XamlElement element = (XamlElement) model;
+			attribute = element.getAttribute("layout");
+		}
+		return attribute;
+	}
+
+	private Class<?> getType(EditPart editPart) {
+		if (editPart == null) {
+			return null;
+		}
+		Object model = editPart.getModel();
+		if (model instanceof XamlElement) {
+			XamlElement element = (XamlElement) model;
+			IMetaclass metaclass = XWTUtility.getMetaclass(element);
+			if (metaclass != null) {
+				return metaclass.getType();
+			}
+		}
+		return null;
+	}
+
+	private EditPart getParent(EditPart editPart) {
+		if (editPart != null) {
+			EditPart parent = editPart.getParent();
+			if (parent.getModel() instanceof XamlDocument) {
+				return null;
+			}
+			Class<?> type = getType(parent);
+			if (type == null) {
+				return null;
+			}
+			if (Composite.class.isAssignableFrom(type) || Shell.class.isAssignableFrom(type)) {
+				return parent;
+			}
+			return getParent(parent);
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.window.Window#open()
+	 */
+	public int open() {
+		int open = super.open();
+		isOpened = open == Window.OK;
+		return open;
+	}
+
+	/**
+	 * @see org.eclipse.jface.window.Window#close()
+	 */
+	public boolean close() {
+		isClosed = super.close();
+		if (tabFolder != null) {
+			tabFolder.dispose();
+		}
+		// AssistanceManager.dispose();
+		return isClosed;
+	}
+
+	public boolean isOpened() {
+		return isOpened;
+	}
+
+	public boolean isClosed() {
+		return isClosed;
+	}
+
+	protected Point getInitialSize() {
+		Point initSize = getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
+		// Set it to a minimum. If above size is bigger, great.
+		if (initSize.x < 100)
+			initSize.x = 100;
+		if (initSize.x < 90)
+			initSize.y = 90;
+		return initSize;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/NewHandlerDialog.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/NewHandlerDialog.java
new file mode 100755
index 0000000..d72c020
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/NewHandlerDialog.java
@@ -0,0 +1,86 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.dialogs;
+
+import org.eclipse.jface.dialogs.TitleAreaDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.xwt.tools.ui.designer.editor.event.EventHandler;
+
+public class NewHandlerDialog extends TitleAreaDialog {
+	private EventHandler eventHandler;
+	private String handlerName;
+
+	public NewHandlerDialog(EventHandler eventHandler, String initialValue) {
+		super(new Shell());
+		this.eventHandler = eventHandler;
+		this.handlerName = initialValue;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell.setText("New Handler Dialog");
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	protected Control createDialogArea(Composite parent) {
+		Composite composite = (Composite) super.createDialogArea(parent);
+		Composite control = new Composite(composite, SWT.NONE);
+		control.setLayoutData(new GridData(GridData.FILL_BOTH));
+		control.setLayout(new GridLayout(2, false));
+		Label label = new Label(control, SWT.NONE);
+		label.setText("Handler:");
+
+		final Text text = new Text(control, SWT.BORDER);
+		text.setText(this.handlerName);
+		text.addModifyListener(new ModifyListener() {
+			public void modifyText(ModifyEvent e) {
+				handlerName = text.getText();
+				if (handlerName == null) {
+					setErrorMessage("Handler name is null.");
+				} else if (eventHandler.exist(handlerName)) {
+					setErrorMessage("Handler existing for current xwt presentation.");
+				} else {
+					setErrorMessage(null);
+				}
+			}
+		});
+		text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+		setTitle("New Event Handler");
+		setMessage("Create a new event handler for current XWT presentation.");
+		return composite;
+	}
+
+	public String getHandlerName() {
+		return handlerName;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/PropertyValueDialog.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/PropertyValueDialog.java
new file mode 100755
index 0000000..9a8547b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/PropertyValueDialog.java
@@ -0,0 +1,173 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.dialogs;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.jface.dialogs.TitleAreaDialog;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.xwt.tools.ui.designer.preference.Preferences;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class PropertyValueDialog extends TitleAreaDialog {
+
+	private IProperty property;
+	private String result;
+	private String initialize;
+
+	public PropertyValueDialog(Shell parentShell, IProperty property, String initializeValue) {
+		super(parentShell);
+		this.property = property;
+		this.initialize = initializeValue;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell.setText("New Value Dialog");
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	protected Control createDialogArea(Composite parent) {
+		Composite composite = (Composite) super.createDialogArea(parent);
+		Composite control = new Composite(composite, SWT.NONE);
+
+		control.setLayoutData(new GridData(GridData.FILL_BOTH));
+		control.setLayout(new GridLayout(2, false));
+		Label label = new Label(control, SWT.NONE);
+		if (property != null) {
+			label.setText(property.getName() + ": ");
+		} else {
+			label.setText("New Value: ");
+		}
+
+		final Text text = new Text(control, SWT.BORDER);
+		if (initialize != null) {
+			text.setText(initialize);
+		}
+		text.addModifyListener(new ModifyListener() {
+			public void modifyText(ModifyEvent e) {
+				verify(text);
+			}
+		});
+		verify(text);
+		text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		setTitle("Input a New Value.");
+		if (property != null) {
+			setMessage("Give a new value for \"" + property.getName() + "\" property");
+		}
+
+		new Label(control, SWT.NONE);
+		new Label(control, SWT.NONE);
+		new Label(control, SWT.NONE);
+		final Button checkbutton = new Button(control, SWT.CHECK);
+		checkbutton.setText("Do not ask again? You can change this from preference page.");
+		checkbutton.setSelection(false);
+		GridData griddata = new GridData(GridData.FILL_HORIZONTAL);
+		// griddata.horizontalSpan = 2;
+		checkbutton.setLayoutData(griddata);
+		checkbutton.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(SelectionEvent e) {
+				Preferences.getPreferenceStore().setValue(Preferences.PROMPT_DURING_CREATION, !checkbutton.getSelection());
+			}
+		});
+		return composite;
+	}
+
+	private void verify(Text text) {
+		result = text.getText();
+		boolean validate = true;
+		if (result == null || result.equals("")) {
+			setErrorMessage("Result is empty.");
+			validate = false;
+		} else if (property != null) {
+			Class<?> type = property.getType();
+			// add the filter when the type of property is interger.
+			if (type.isAssignableFrom(int.class)) {
+				if (!isInt(result)) {
+					setErrorMessage("Result is not a validate value,please input a interger.");
+					validate = false;
+				}
+			}
+			if (!type.isAssignableFrom(result.getClass())) {
+				IConverter c = XWT.findConvertor(String.class, type);
+				if (c == null) {
+					setErrorMessage("This resilt is not applicable for the arguments (" + type.getSimpleName() + ")");
+					validate = false;
+				} else {
+					Object newValue = c.convert(result);
+					if (newValue == null) {
+						setErrorMessage("This resilt is not applicable for the arguments (" + type.getSimpleName() + ")");
+						validate = false;
+					}
+				}
+			}
+		}
+		if (validate) {
+			setErrorMessage(null);
+			setFinished(true);
+		} else {
+			setFinished(false);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.dialogs.Dialog#createButtonsForButtonBar(org.eclipse.swt.widgets.Composite)
+	 */
+	protected void createButtonsForButtonBar(Composite parent) {
+		super.createButtonsForButtonBar(parent);
+		setFinished(initialize != null);
+	}
+
+	public String getResult() {
+		return result;
+	}
+
+	public void setFinished(boolean flag) {
+		Button okButton = getButton(Window.OK);
+		if (okButton != null) {
+			okButton.setEnabled(flag);
+		}
+	}
+
+	public Boolean isInt(String s) {
+		return s.matches("^[0-9]+$");
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/TextValueDialog.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/TextValueDialog.java
new file mode 100755
index 0000000..bd1e98e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/dialogs/TextValueDialog.java
@@ -0,0 +1,88 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.dialogs;
+
+import org.eclipse.jface.dialogs.TitleAreaDialog;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class TextValueDialog extends TitleAreaDialog {
+
+	private String oldValue;
+	private String newValue;
+
+	/**
+	 * @param parentShell
+	 */
+	public TextValueDialog(Shell parentShell, String oldValue) {
+		super(parentShell);
+		this.oldValue = oldValue;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	protected Control createDialogArea(Composite parent) {
+		Composite composite = (Composite) super.createDialogArea(parent);
+		Composite control = new Composite(composite, SWT.NONE);
+		control.setLayoutData(new GridData(GridData.FILL_BOTH));
+		control.setLayout(new GridLayout(2, false));
+		Label label = new Label(control, SWT.NONE);
+		label.setText("Text:");
+
+		final Text text = new Text(control, SWT.BORDER);
+		if (oldValue != null) {
+			text.setText(oldValue);
+		}
+		text.addModifyListener(new ModifyListener() {
+			public void modifyText(ModifyEvent e) {
+				newValue = text.getText();
+				if (newValue == null || newValue.equals("")) {
+					setErrorMessage("Text input is empty.");
+					setButtonVisuble(false);
+				} else if (newValue.equals(oldValue)) {
+					setErrorMessage("Text input is equals the old one.");
+				} else {
+					setErrorMessage(null);
+					getButton(Window.OK).setEnabled(true);
+				}
+
+			}
+		});
+		newValue = text.getText();
+		text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		return composite;
+	}
+
+	public String getNewValue() {
+		return newValue;
+	}
+
+	public void setButtonVisuble(boolean flag) {
+		getButton(Window.OK).setEnabled(flag);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTDesigner.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTDesigner.java
new file mode 100755
index 0000000..5825dca
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTDesigner.java
@@ -0,0 +1,407 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.xwt.XWTLoaderManager;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gef.ContextMenuProvider;
+import org.eclipse.gef.EditPartFactory;
+import org.eclipse.gef.EditPartViewer;
+import org.eclipse.gef.GraphicalViewer;
+import org.eclipse.gef.SnapToGeometry;
+import org.eclipse.gef.ui.actions.ActionRegistry;
+import org.eclipse.gef.ui.parts.TreeViewer;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.internal.ui.JavaPluginImages;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.action.ToolBarManager;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.swt.widgets.ToolItem;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IPerspectiveDescriptor;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.WorkbenchException;
+import org.eclipse.ui.actions.ActionFactory;
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.xwt.tools.ui.designer.core.editor.Designer;
+import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
+import org.eclipse.xwt.tools.ui.designer.core.editor.IVisualRenderer;
+import org.eclipse.xwt.tools.ui.designer.core.editor.dnd.DropContext;
+import org.eclipse.xwt.tools.ui.designer.core.editor.outline.DesignerOutlinePage;
+import org.eclipse.xwt.tools.ui.designer.core.model.IModelBuilder;
+import org.eclipse.xwt.tools.ui.designer.editor.actions.BindingLayerAction;
+import org.eclipse.xwt.tools.ui.designer.editor.actions.ChangeTextAction;
+import org.eclipse.xwt.tools.ui.designer.editor.actions.CopyElementAction;
+import org.eclipse.xwt.tools.ui.designer.editor.actions.CutElementAction;
+import org.eclipse.xwt.tools.ui.designer.editor.actions.LayoutAssistantAction;
+import org.eclipse.xwt.tools.ui.designer.editor.actions.OpenBindingDialogAction;
+import org.eclipse.xwt.tools.ui.designer.editor.actions.OpenExternalizeStringsAction;
+import org.eclipse.xwt.tools.ui.designer.editor.actions.PasteElementAction;
+import org.eclipse.xwt.tools.ui.designer.editor.actions.PreviewAction;
+import org.eclipse.xwt.tools.ui.designer.editor.actions.SurroundWithAction;
+import org.eclipse.xwt.tools.ui.designer.editor.dnd.XWTDropContext;
+import org.eclipse.xwt.tools.ui.designer.editor.dnd.XWTGraphicalViewerDropListener;
+import org.eclipse.xwt.tools.ui.designer.editor.event.EventHandler;
+import org.eclipse.xwt.tools.ui.designer.editor.model.XWTModelBuilder;
+import org.eclipse.xwt.tools.ui.designer.editor.outline.TreeEditPartFactory;
+import org.eclipse.xwt.tools.ui.designer.loader.XWTVisualLoader;
+import org.eclipse.xwt.tools.ui.designer.parts.XWTEditPartFactory;
+import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+import org.eclipse.xwt.ui.XWTPerspectiveFactory;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+@SuppressWarnings("restriction")
+public class XWTDesigner extends Designer implements
+		ITabbedPropertySheetPageContributor {
+
+	public static final String EDITOR_ID = "org.eclipse.xwt.tools.ui.designer.XWTDesigner";
+
+	private XWTJavaEditor javaEditor;
+	private EventHandler eventHandler;
+	private ToolItem generateTool;
+	private XWTVisualLoader xwtLoader;
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.part.EditorPart#setInput(org.eclipse.ui.IEditorInput)
+	 */
+	protected void setInput(IEditorInput input) {
+		super.setInput(input);
+		// Initialize to setup an active IXWTLoader.
+		IFile inputFile = getFile();
+		if (inputFile != null) {
+			xwtLoader = new XWTVisualLoader(inputFile);
+			XWTLoaderManager.setActive(xwtLoader, true);
+		}
+	}
+
+	@Override
+	public void init(IEditorSite site, IEditorInput input)
+			throws PartInitException {
+		super.init(site, input);
+		EditDomain domain = getEditDomain();
+		domain.setDefaultTool(new XWTSelectionTool());
+		domain.loadDefaultTool();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.tools.designer.editor.Designer#dispose()
+	 */
+	public void dispose() {
+		super.dispose();
+		// Dispose the active IXWTLoader.
+		if (xwtLoader != null) {
+			XWTLoaderManager.setActive(xwtLoader, false);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.tools.designer.editor.XAMLDesigner#initializeActions()
+	 */
+	protected void createActions() {
+		super.createActions();
+		ActionRegistry registry = getActionRegistry();
+		IAction action;
+		action = new CopyElementAction(this);
+		registry.registerAction(action);
+		action = new PasteElementAction(this);
+		registry.registerAction(action);
+		action = new CutElementAction(this);
+		registry.registerAction(action);
+
+		action = new PreviewAction(this);
+		registry.registerAction(action);
+
+		action = new ChangeTextAction(this);
+		registry.registerAction(action);
+
+		action = new LayoutAssistantAction(this);
+		registry.registerAction(action);
+
+		action = new OpenBindingDialogAction(this);
+		registry.registerAction(action);
+
+		action = new BindingLayerAction(this);
+		registry.registerAction(action);
+
+		// add by xrchen 2009/9/22
+		action = new OpenExternalizeStringsAction(this);
+		registry.registerAction(action);
+
+		action = new SurroundWithAction(this);
+		registry.registerAction(action);
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.tools.designer.editor.Designer#createModelBuilder()
+	 */
+	protected IModelBuilder createModelBuilder() {
+		return new XWTModelBuilder();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.soyatec.tools.designer.editor.XAMLDesigner#setupGraphicalViewer()
+	 */
+	protected void setupGraphicalViewer() {
+		((XWTEditPartFactory) getEditPartFactory())
+				.setVisualFactory(getVisualsRender());
+		super.setupGraphicalViewer();
+		setupJavaEditor();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.soyatec.tools.designer.editor.Designer#configureGraphicalViewer()
+	 */
+	protected void configureGraphicalViewer() {
+		super.configureGraphicalViewer();
+		getGraphicalViewer().setProperty(SnapToGeometry.PROPERTY_SNAP_ENABLED,
+				true);
+	}
+
+	protected void setupGraphicalViewerDropCreation(GraphicalViewer viewer) {
+		viewer.addDropTargetListener(new XWTGraphicalViewerDropListener(viewer));
+	}
+
+	/**
+	 * Setup JavaEditor.
+	 */
+	private void setupJavaEditor() {
+		String hostClassName = getVisualsRender().getHostClassName();
+		if (hostClassName != null && javaEditor == null) {
+			javaEditor = new XWTJavaEditor(getJavaProject(), hostClassName);
+			IType type = javaEditor.getType();
+			if (type != null) {
+				try {
+					int javaPageIndex = addPage(javaEditor, javaEditor
+							.getEditorInput());
+					setPageText(javaPageIndex, "Java");
+					setPageImage(javaPageIndex, JavaPluginImages
+							.get(JavaPluginImages.IMG_OBJS_CLASS));
+					eventHandler = new EventHandler(this, type);
+
+					if (generateTool != null && !generateTool.isDisposed()) {
+						generateTool.setEnabled(true);
+					}
+				} catch (PartInitException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+	}
+
+	public EventHandler getEventHandler() {
+		return eventHandler;
+	}
+
+	protected IJavaProject getJavaProject() {
+		IFile file = (IFile) getEditorInput().getAdapter(IFile.class);
+		IJavaProject javaProject = JavaCore.create(file.getProject());
+		if (!javaProject.exists()) {
+			return null;
+		}
+		return javaProject;
+	}
+
+	protected ToolBar createToolBar(Composite parent) {
+		ToolBar toolbar = new ToolBar(parent, SWT.FLAT);
+		final ToolBarManager toolBarManager = new ToolBarManager(toolbar);
+		toolBarManager.add(getActionRegistry().getAction(
+				ActionFactory.COPY.getId()));
+		toolBarManager.add(getActionRegistry().getAction(
+				ActionFactory.PASTE.getId()));
+		toolBarManager.add(getActionRegistry().getAction(
+				ActionFactory.CUT.getId()));
+		toolBarManager.add(getActionRegistry().getAction(
+				ActionFactory.DELETE.getId()));
+		toolBarManager.add(new Separator());
+		toolBarManager.add(getActionRegistry().getAction(
+				PreviewAction.ACTION_ID));
+		toolBarManager.add(new Separator());
+		toolBarManager.add(getActionRegistry().getAction(
+				LayoutAssistantAction.ID));
+		toolBarManager.add(new Separator());
+		toolBarManager.add(getActionRegistry().getAction(
+				OpenBindingDialogAction.ID));
+		toolBarManager.update(true);
+		toolbar.pack();
+
+		return toolbar;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.soyatec.tools.designer.editor.XAMLDesigner#configureContainerToolBar
+	 * (org.eclipse.swt.widgets.ToolBar)
+	 */
+	protected void configureContainerToolBar(ToolBar toolBar) {
+		ToolItem previewTool = new ToolItem(toolBar, SWT.PUSH);
+		previewTool.setImage(ImageShop.get(ImageShop.IMG_PREVIEW));
+		previewTool.setToolTipText("Preview");
+		previewTool.addListener(SWT.Selection, new Listener() {
+			public void handleEvent(Event event) {
+				new PreviewAction(XWTDesigner.this).run();
+			}
+		});
+
+		generateTool = new ToolItem(toolBar, SWT.PUSH);
+		generateTool.setImage(JavaPluginImages
+				.get(JavaPluginImages.IMG_OBJS_CLASS));
+		generateTool.setToolTipText("Create event handlers");
+		generateTool.addListener(SWT.Selection, new Listener() {
+			public void handleEvent(Event event) {
+				if (eventHandler != null) {
+					eventHandler.createHandlers();
+				}
+			}
+		});
+		generateTool.setEnabled(false);
+	}
+
+	protected ContextMenuProvider createMenuProvider(EditPartViewer viewer,
+			ActionRegistry actionRegistry) {
+		return new XWTDesignerMenuProvider(viewer, actionRegistry, this);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.core.editor.Designer#
+	 * createEditPartFactory()
+	 */
+	protected EditPartFactory createEditPartFactory() {
+		return new XWTEditPartFactory();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.tools.designer.editor.XAMLDesigner#createOutlinePage()
+	 */
+	protected DesignerOutlinePage createOutlinePage() {
+		DesignerOutlinePage designerOutlinePage = new DesignerOutlinePage(
+				getEditDomain(), new TreeEditPartFactory());
+		TreeViewer treeViewer = designerOutlinePage.getTreeViewer();
+		ContextMenuProvider outlineMenu = createMenuProvider(treeViewer,
+				getActionRegistry());
+		if (outlineMenu != null) {
+			treeViewer.setContextMenu(outlineMenu);
+		}
+		return designerOutlinePage;
+	}
+
+	protected void setContent(EObject diagram) {
+		super.setContent(diagram);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.tools.designer.editor.XAMLDesigner#getDropContext()
+	 */
+	protected DropContext getDropContext() {
+		return new XWTDropContext();
+	}
+
+	/**
+	 * Open a special perspective.
+	 */
+	public void openPerspective() {
+		IWorkbench workbench = PlatformUI.getWorkbench();
+		int count = workbench.getWorkbenchWindowCount();
+		if (count == 0) {
+			return;
+		}
+		IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
+		if (window == null) {
+			window = workbench.getWorkbenchWindows()[0];
+		}
+		IPerspectiveDescriptor pers = workbench
+				.getPerspectiveRegistry()
+				.findPerspectiveWithId(XWTPerspectiveFactory.XWT_PERSPECTIVE_ID);
+		if (pers == null) {
+			return;
+		}
+		try {
+			workbench.showPerspective(XWTPerspectiveFactory.XWT_PERSPECTIVE_ID,
+					window);
+		} catch (WorkbenchException e) {
+			e.printStackTrace();
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.tools.designer.editor.XAMLDesigner#createPropertyPage()
+	 */
+	protected IPropertySheetPage createPropertyPage() {
+		TabbedPropertySheetPage propertyPage = new TabbedPropertySheetPage(this);
+		// propertyPage.setPropertySourceProvider(new
+		// XWTPropertySourceProvider(getEditDomain(), propertyPage));
+		return propertyPage;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.tools.designer.editor.XAMLDesigner#createVisualsRender()
+	 */
+	protected IVisualRenderer createVisualsRender() {
+		return new XWTVisualRenderer(getFile(),
+				(XamlDocument) getDocumentRoot());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor
+	 * #getContributorId()
+	 */
+	public String getContributorId() {
+		return getSite().getId();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTDesignerMenuProvider.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTDesignerMenuProvider.java
new file mode 100755
index 0000000..9c2f98e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTDesignerMenuProvider.java
@@ -0,0 +1,127 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor;
+
+import java.util.List;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartViewer;
+import org.eclipse.gef.ui.actions.ActionRegistry;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.xwt.tools.ui.designer.core.editor.DesignerActionConstants;
+import org.eclipse.xwt.tools.ui.designer.core.editor.DesignerMenuProvider;
+import org.eclipse.xwt.tools.ui.designer.editor.actions.ChangeTextAction;
+import org.eclipse.xwt.tools.ui.designer.editor.actions.LayoutAssistantAction;
+import org.eclipse.xwt.tools.ui.designer.editor.actions.OpenBindingDialogAction;
+import org.eclipse.xwt.tools.ui.designer.editor.actions.OpenExternalizeStringsAction;
+import org.eclipse.xwt.tools.ui.designer.editor.actions.PreviewAction;
+import org.eclipse.xwt.tools.ui.designer.editor.actions.StyleAction;
+import org.eclipse.xwt.tools.ui.designer.editor.actions.SurroundWithAction;
+import org.eclipse.xwt.tools.ui.designer.editor.menus.EventMenuManager;
+import org.eclipse.xwt.tools.ui.designer.editor.menus.LayoutMenuManager;
+import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class XWTDesignerMenuProvider extends DesignerMenuProvider {
+
+	private static final String BINDINGS = "Bindings";
+
+	private static final String EXTERNALIZE = "Externalize"; // add by xrchen
+																// 2009/9/22
+
+	private XWTDesigner designer;
+
+	public XWTDesignerMenuProvider(EditPartViewer viewer,
+			ActionRegistry actionRegistry, XWTDesigner designer) {
+		super(viewer, actionRegistry);
+		this.designer = designer;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.ContextMenuProvider#menuAboutToShow(org.eclipse.jface
+	 * .action.IMenuManager)
+	 */
+	public void menuAboutToShow(IMenuManager menu) {
+		menu.add(new Separator(DesignerActionConstants.UNDO));
+		menu.add(new Separator(DesignerActionConstants.DELETE));
+		menu.add(new Separator(DesignerActionConstants.PRINT));
+		menu.add(new Separator(DesignerActionConstants.COPY));
+		menu.add(new Separator(DesignerActionConstants.EDIT));
+		menu.add(new Separator(BINDINGS));
+		menu.add(new Separator(EXTERNALIZE)); // add by xrchen 2009/9/22
+		menu.add(new Separator(DesignerActionConstants.ADDITIONS));
+		super.menuAboutToShow(menu);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.soyatec.xaml.ve.editor.EditorMenuProvider#buildContextMenu(org.eclipse
+	 * .jface.action.IMenuManager)
+	 */
+	public void buildContextMenu(IMenuManager menu) {
+		super.buildContextMenu(menu);
+		ActionRegistry actionRegistry = getActionRegistry();
+		// menu.appendToGroup(BINDINGS,
+		// actionRegistry.getAction(BindingLayerAction.ID));
+		List<?> selectedEditParts = getViewer().getSelectedEditParts();
+		if (selectedEditParts == null || selectedEditParts.isEmpty()) {
+			// Diagram directly...
+		} else {
+			if (selectedEditParts.size() == 1) {
+				menu.appendToGroup(DesignerActionConstants.PRINT,
+						actionRegistry.getAction(PreviewAction.ACTION_ID));
+
+				EditPart editPart = (EditPart) selectedEditParts.get(0);
+				if (designer.getEventHandler() != null) {
+					EventMenuManager eventPopMenu = new EventMenuManager(
+							editPart, designer);
+					menu.add(eventPopMenu);
+					menu.add(new Separator());
+				}
+				LayoutMenuManager layoutPopMenu = new LayoutMenuManager(
+						editPart, "Set Layout");
+				menu.appendToGroup(DesignerActionConstants.EDIT, actionRegistry
+						.getAction(ChangeTextAction.ID));
+				menu.add(layoutPopMenu);
+
+				menu.add(actionRegistry.getAction(LayoutAssistantAction.ID));
+
+				// menu.appendToGroup(BINDINGS, new
+				// BindingsMenuManager(editPart));
+				menu.appendToGroup(BINDINGS, actionRegistry
+						.getAction(OpenBindingDialogAction.ID));
+
+				if (editPart instanceof WidgetEditPart) {
+					menu.appendToGroup(DesignerActionConstants.EDIT,
+							new StyleAction((WidgetEditPart) editPart));
+				}
+				// Single selection...
+			} else {
+				// Multi-Selection.
+			}
+			menu.appendToGroup(DesignerActionConstants.ADDITIONS,
+					actionRegistry.getAction(SurroundWithAction.ID));
+		}
+		// add by xrchen 2009/9/22
+		menu.appendToGroup(EXTERNALIZE, actionRegistry
+				.getAction(OpenExternalizeStringsAction.ID));
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTJavaEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTJavaEditor.java
new file mode 100755
index 0000000..32e919d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTJavaEditor.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.part.FileEditorInput;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class XWTJavaEditor extends CompilationUnitEditor {
+	private IJavaProject javaProject;
+	private String hostClassName;
+	private IType type;
+	private IEditorInput javaEditorInput;
+
+	public XWTJavaEditor(IJavaProject javaProject, String hostClassName) {
+		this.javaProject = javaProject;
+		this.hostClassName = hostClassName;
+		configureJavaEditor();
+	}
+
+	/**
+	 * setup editorinput.
+	 */
+	private void configureJavaEditor() {
+		try {
+			type = javaProject.findType(hostClassName);
+			if (type == null || !type.exists()) {
+				return;
+			}
+			IFile javaFile = (IFile) type.getResource();
+			this.javaEditorInput = new FileEditorInput(javaFile);
+		} catch (JavaModelException e) {
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.part.EditorPart#getEditorInput()
+	 */
+	public IEditorInput getEditorInput() {
+		IEditorInput editorInput = super.getEditorInput();
+		if (editorInput == null) {
+			return javaEditorInput;
+		}
+		return editorInput;
+	}
+
+	public IType getType() {
+		return type;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTSelectionTool.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTSelectionTool.java
new file mode 100755
index 0000000..8e9c74f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTSelectionTool.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.tools.SelectionTool;
+import org.eclipse.xwt.tools.ui.designer.parts.SashEditPart;
+
+public class XWTSelectionTool extends SelectionTool {
+
+	public XWTSelectionTool() {
+	}
+
+	@Override
+	protected boolean updateTargetUnderMouse() {
+		EditPart editPart = getTargetEditPart();
+		if (editPart == null) {
+			setDefaultCursor(null);
+			return super.updateTargetUnderMouse();
+		}
+		if (editPart instanceof SashEditPart) {
+			SashEditPart sashEditPart = (SashEditPart) editPart;
+			setDefaultCursor(sashEditPart.getDefaultCursor());
+		}
+		else {
+			setDefaultCursor(null);
+		}
+		return super.updateTargetUnderMouse();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTVisualRenderer.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTVisualRenderer.java
new file mode 100755
index 0000000..0756e4b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/XWTVisualRenderer.java
@@ -0,0 +1,463 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor;
+
+import java.util.List;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Item;
+import org.eclipse.swt.widgets.Layout;
+import org.eclipse.swt.widgets.Sash;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.tools.ui.designer.core.editor.AbstractRenderer;
+import org.eclipse.xwt.tools.ui.designer.core.util.SashUtil;
+import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author bo.zhou
+ * @author jliu
+ */
+public class XWTVisualRenderer extends AbstractRenderer {
+	private final XWTProxy proxy;
+
+	public XWTVisualRenderer(IFile file, XamlDocument document) {
+		super(file, document);
+		if (document == null) {
+			throw new RuntimeException("XamlDocument is null");
+		}
+
+		document.eAdapters().add(new AdapterImpl() {
+			public void notifyChanged(Notification msg) {
+				recreate();
+			}
+		});
+		proxy = new XWTProxy(file);
+	}
+
+	public Object getVisual(EObject model, boolean loadOnDemand) {
+		return proxy.getComponent(model, loadOnDemand);
+	}
+
+	public Object getVisual(EObject model) {
+		return proxy.getComponent((XamlNode) model);
+	}
+
+	/**
+	 * @see org.eclipse.emf.common.notify.impl.AdapterImpl#notifyChanged(org.eclipse.emf.common.notify.Notification)
+	 */
+	public Result updateControls(Notification msg) {
+		if (proxy.isDisposed() || msg.isTouch()) {
+			return null;
+		}
+		Object notifier = msg.getNotifier();
+		Object oldValue = msg.getOldValue();
+		Object newValue = msg.getNewValue();
+
+		if (notifier == null || (oldValue == null && newValue == null)) {
+			return null;
+		}
+		if ((oldValue != null && oldValue != newValue)
+				|| (oldValue == null && newValue != null)) {
+			return applyNewValue(msg);
+		}
+		return null;
+	}
+
+	private boolean canRender(XamlNode node) {
+		if (node == null) {
+			return false;
+		}
+		String name = node.getName();
+		if (IConstants.XWT_X_NAMESPACE.equals(node.getNamespace())) {
+			return false;
+		}
+		try {
+			IMetaclass metaclass = XWT.getMetaclass(Character.toUpperCase(name
+					.charAt(0))
+					+ name.substring(1), node.getNamespace());
+			if (metaclass == null) {
+				return false;
+			}
+			Class<?> type = metaclass.getType();
+			return Widget.class.isAssignableFrom(type)
+					|| Viewer.class.isAssignableFrom(type);
+		} catch (Exception e) {
+			return false;
+		}
+	}
+
+	/**
+	 * Update controls from model.
+	 */
+	private Result applyNewValue(Notification msg) {
+
+		// For building Result.
+		boolean updated = false;
+		XamlElement updateObj = null;
+
+		Object notifier = msg.getNotifier();
+		Object newValue = msg.getNewValue();
+		Object oldValue = msg.getOldValue();
+
+		if (notifier instanceof XamlDocument && newValue instanceof XamlElement) {
+			proxy.doCreate((XamlElement) newValue);
+			return new Result(notifier, true);
+		}
+
+		EObject notifyEObject = (EObject) notifier;
+		Object parent = proxy.getComponent(notifyEObject);
+		while (parent == null) {
+			notifier = notifyEObject;
+			notifyEObject = notifyEObject.eContainer();
+			if (notifyEObject == null) {
+				break;
+			}
+			parent = proxy.getComponent(notifyEObject);
+		}
+		
+		if (notifyEObject != null && notifyEObject instanceof XamlElement) {
+			updateObj = (XamlElement) notifyEObject;
+		}
+		switch (msg.getEventType()) {
+		case Notification.ADD:
+			if (proxy.isNull(parent)) {
+				break;
+			}
+			// in case of SashFrom 
+			if (parent instanceof SashForm) {
+				XamlAttribute attribute = updateObj.getAttribute("weights", IConstants.XWT_NAMESPACE);
+				if (attribute != null) {
+					String value = attribute.getValue();
+					if (value != null && value.length() > 0 ) {
+						int[] segments = SashUtil.toWeights(value);
+						
+						SashForm sashForm = (SashForm) parent;
+						Control[] children = sashForm.getChildren();
+						int c = 0;
+						for (int i = 0; i < children.length; i++) {
+							if (children[i] instanceof Sash) {
+								c++;
+							}
+						}
+						if (children.length > 0) {
+							c++;
+						}
+						if (c != segments.length) {
+							value = SashUtil.updateWeightsLengh(segments, c);
+							attribute.setValue(value);
+						}
+					}
+				}
+			}
+			
+			if (newValue instanceof XamlElement && parent != null
+					&& canRender((XamlElement) newValue)) {
+				if (parent instanceof Widget) {
+					updated = proxy.recreate((Widget) parent);
+					updateObj = null;// If updated, we can refresh all visuals.
+				}
+			} else if (notifier instanceof XamlAttribute) {
+				XamlAttribute attribute = (XamlAttribute) notifier;
+				updated = applyAttribute(parent, updateObj, attribute);
+			} else if (newValue instanceof XamlAttribute) {
+				XamlAttribute attribute = (XamlAttribute) newValue;
+				updated = applyAttribute(parent, updateObj, attribute);
+			}
+			break;
+		case Notification.SET:
+		case Notification.UNSET:
+			if (proxy.isNull(parent)) {
+				break;
+			}
+			if (notifier instanceof XamlAttribute) {
+				XamlAttribute attribute = (XamlAttribute) notifier;
+				updated = applyAttribute(parent, updateObj, attribute);
+				if (updateObj != null && parent instanceof Item) {
+					EObject eContainer = updateObj.eContainer();
+					if (eContainer != null && eContainer instanceof XamlElement) {
+						updateObj = (XamlElement) eContainer;
+					}
+				}
+			}
+			break;
+		case Notification.REMOVE:
+			if (oldValue instanceof XamlElement) {
+				Object removeWidget = getVisual((XamlElement) oldValue);
+				
+				// in case of SashFrom 
+				if (parent instanceof SashForm) {
+					XamlAttribute attribute = updateObj.getAttribute("weights", IConstants.XWT_NAMESPACE);
+					if (attribute != null) {
+						String value = attribute.getValue();
+						if (value != null && value.length() > 0 ) {
+							SashForm sashForm = (SashForm) parent;
+							Control[] children = sashForm.getChildren();
+							int index = 0;
+							int c = 0;
+							
+							for (int i = 0; i < children.length; i++) {
+								if (removeWidget == children[i]) {
+									index = c;
+								}
+								if (children[i] instanceof Sash) {
+									c++;
+								}
+							}
+							if (children.length > 0) {
+								c++;
+							}
+
+							if (c <= 2) {
+								updateObj.getAttributes().remove(attribute);
+							}
+							else {
+								value = SashUtil.removeWeights(value, index);
+								attribute.setValue(value);
+							}
+						}
+					}
+				}
+
+				if (removeWidget != null) {
+					updated = proxy.destroy(removeWidget);
+				}
+				if (parent instanceof Composite) {
+					IMetaclass metaclass = XWTUtility
+							.getMetaclass((XamlElement) oldValue);
+					if (metaclass != null
+							&& Layout.class.isAssignableFrom(metaclass
+									.getType())) {
+						updated = proxy.removeLayout((Composite) parent);
+					}
+					proxy.layout((Composite) parent);
+				}
+			} else if (notifier instanceof XamlAttribute) {
+				XamlAttribute attribute = (XamlAttribute) notifier;
+				updated = applyAttribute(parent, updateObj, attribute);
+			} else if (oldValue instanceof XamlAttribute) {
+				XamlAttribute attribute = (XamlAttribute) oldValue;
+				updated = removeAttribute(parent, updateObj, attribute);
+			}
+			break;
+		case Notification.MOVE: {
+			if (proxy.isNull(parent)) {
+				break;
+			}
+			if (parent instanceof Widget) {
+				updated = proxy.recreate((Widget) parent);
+				updateObj = null;// If updated, we can refresh all visuals.
+			}
+			if (parent instanceof Composite) {
+				proxy.layout((Composite) parent);
+			}
+			break;
+		}
+		case Notification.ADD_MANY: {
+			// TODO:add many:
+		}
+		case Notification.REMOVE_MANY: {
+			List<?> removed = (List<?>) oldValue;
+			for (Object object : removed) {
+				if (object instanceof XamlElement) {
+					Object widget = getVisual((XamlElement) object);
+					proxy.destroy(widget);
+					updated = true;
+				}
+			}
+			if (parent != null && parent instanceof Composite) {
+				proxy.layout((Composite) parent);
+			}
+		}
+		}
+		return new Result(updateObj, updated);
+	}
+
+	private boolean applyAttribute(Object parent, XamlElement element,
+			XamlAttribute attribute) {
+		if (proxy.isNull(parent) || attribute == null) {
+			return false;
+		}
+		if ("style".equalsIgnoreCase(attribute.getName())
+				&& IConstants.XWT_X_NAMESPACE.equals(attribute.getNamespace())) {
+			if (needRecreate(parent, attribute)) {
+				return proxy.recreate((Widget) parent);
+			}
+			return false;
+		} else {
+			boolean updated = proxy.initAttribute(parent, attribute);
+			if (element != null && parent instanceof Item) {
+				EObject eContainer = element.eContainer();
+				if (eContainer != null && eContainer instanceof XamlElement) {
+					element = (XamlElement) eContainer;
+					if (proxy.getComponent(element) instanceof Control) {
+						Control control = (Control) proxy.getComponent(element);
+						proxy.layout(control);
+					}
+				}
+			}// if the parent is Item,it must get the parent of this item and
+				// layout his parent
+			if (parent instanceof Control) {
+				Control control = (Control) parent;
+				proxy.layout(control);
+			}
+			return updated;
+		}
+	}
+
+	private boolean needRecreate(Object parent, XamlAttribute attr) {
+		if (parent == null || !(parent instanceof Widget) || attr == null) {
+			return false;
+		}
+		Widget widget = (Widget) parent;
+		int oldStyle = widget.getStyle();
+		String newStyleStr = attr.getValue();
+		int newStyle = (Integer) XWT.convertFrom(Integer.class, newStyleStr);
+		return newStyle != oldStyle;
+		// if (newStyleStr != null) {
+		// if (newStyle == SWT.NONE) {
+		// if ("SWT.NONE".equalsIgnoreCase(newStyleStr) ||
+		// "NONE".equalsIgnoreCase(newStyleStr) ||
+		// "0".equals(newStyleStr.trim())) {
+		// Object defaultStyle = proxy.getDefaultValue(parent, attr);
+		// return defaultStyle != null && defaultStyle instanceof Integer &&
+		// ((newStyle | (Integer) defaultStyle) != oldStyle);
+		// }
+		// return false;
+		// } else {
+		// List<String> styles = new ArrayList<String>();
+		// StringTokenizer stk = new StringTokenizer(newStyleStr, "|");
+		// while (stk.hasMoreElements()) {
+		// styles.add(stk.nextToken());
+		// }
+		// boolean result = false;
+		// for (String aStyle : styles) {
+		// newStyle = (Integer) XWT.convertFrom(Integer.class, aStyle);
+		// if (newStyle == SWT.NONE &&
+		// (!("SWT.NONE".equalsIgnoreCase(newStyleStr) ||
+		// !"NONE".equalsIgnoreCase(newStyleStr) ||
+		// !"0".equals(newStyleStr.trim())))) {
+		// return false;
+		// }
+		// result |= (oldStyle & newStyle) == 0;
+		// }
+		// return result;
+		// }
+		// }
+		// return false;
+	}
+
+	private boolean removeAttribute(Object parent, XamlElement element,
+			XamlAttribute attribute) {
+		if (proxy.isNull(parent) || attribute == null) {
+			return false;
+		}
+
+		if ("style".equalsIgnoreCase(attribute.getName())
+				&& IConstants.XWT_X_NAMESPACE.equals(attribute.getNamespace())) {
+			Object defaultValue = proxy.getDefaultValue(parent, attribute);
+			if (defaultValue != null && defaultValue instanceof Integer) {
+				int oldStyle = (Integer) XWT.convertFrom(Integer.class,
+						attribute.getValue());
+				if ((oldStyle & (Integer) defaultValue) == 0) {
+					return proxy.recreate((Widget) parent);
+				}
+			}
+			return false;
+		} else {
+			boolean updated = proxy.removeValue(parent, attribute);
+			if (parent instanceof Control) {
+				Control control = (Control) parent;
+				proxy.layout(control);
+			}
+			return updated;
+		}
+	}
+
+	public void dispose() {
+		proxy.dispose();
+	}
+
+	public String getHostClassName() {
+		String clr = proxy.getClr();
+		XamlDocument documentRoot = (XamlDocument) getDocumentRoot();
+		if (clr == null && documentRoot != null) {
+			XamlElement root = documentRoot.getRootElement();
+			XamlAttribute attribute = root.getAttribute(
+					IConstants.XAML_X_CLASS, IConstants.XWT_X_NAMESPACE);
+			if (attribute != null) {
+				return attribute.getValue();
+			}
+		}
+		return clr;
+	}
+
+	/**
+	 * Recreate all controls.
+	 */
+	public void recreate() {
+		if (getDocumentRoot() == null) {
+			return;
+		}
+		proxy.reset();
+		createVisuals();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.soyatec.tools.designer.editor.render.IVisualsRender#createVisuals()
+	 */
+	public Result createVisuals() {
+		return new Result(proxy.load((XamlDocument) getDocumentRoot()));
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.soyatec.tools.designer.editor.render.IVisualsRender#refreshVisuals
+	 * (java.lang.Object)
+	 */
+	public Result refreshVisuals(Object source) {
+		if (source instanceof Notification) {
+			return updateControls((Notification) source);
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.tools.designer.editor.render.IVisualsRender#getRoot()
+	 */
+	public Object getRoot() {
+		return proxy.getRoot();
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/AbstractDropDownAction.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/AbstractDropDownAction.java
new file mode 100755
index 0000000..cad00b2
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/AbstractDropDownAction.java
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.actions;
+
+import org.eclipse.gef.ui.actions.SelectionAction;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IMenuCreator;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.ui.IWorkbenchPart;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public abstract class AbstractDropDownAction extends SelectionAction implements IMenuCreator {
+
+	protected MenuManager menuManager;
+
+	public AbstractDropDownAction(IWorkbenchPart part) {
+		super(part, AS_DROP_DOWN_MENU);
+		setMenuCreator(this);
+	}
+
+	protected MenuManager getMenuManager() {
+		if (menuManager == null) {
+			menuManager = createMenuManager();
+		}
+		return menuManager;
+	}
+
+	protected abstract MenuManager createMenuManager();
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.action.IMenuCreator#getMenu(org.eclipse.swt.widgets.Control)
+	 */
+	public Menu getMenu(Control parent) {
+		MenuManager mm = getMenuManager();
+		if (mm != null) {
+			return mm.createContextMenu(parent);
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.action.IMenuCreator#getMenu(org.eclipse.swt.widgets.Menu)
+	 */
+	public Menu getMenu(Menu parent) {
+		MenuManager mm = getMenuManager();
+		if (mm != null) {
+			Menu menu = new Menu(parent);
+			IContributionItem[] items = mm.getItems();
+			for (int i = 0; i < items.length; i++) {
+				IContributionItem item = items[i];
+				IContributionItem newItem = item;
+				if (item instanceof ActionContributionItem) {
+					newItem = new ActionContributionItem(((ActionContributionItem) item).getAction());
+				}
+				newItem.fill(menu, -1);
+			}
+			return menu;
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.ui.actions.SelectionAction#dispose()
+	 */
+	public void dispose() {
+		super.dispose();
+		if (menuManager != null) {
+			menuManager.dispose();
+			menuManager = null;
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/AddEventHandlerAction.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/AddEventHandlerAction.java
new file mode 100755
index 0000000..56eda08
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/AddEventHandlerAction.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.actions;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.IEventConstants;
+import org.eclipse.xwt.metadata.ModelUtils;
+import org.eclipse.gef.EditPart;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.window.Window;
+import org.eclipse.xwt.tools.ui.designer.dialogs.NewHandlerDialog;
+import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
+import org.eclipse.xwt.tools.ui.designer.editor.event.EventHandler;
+import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+
+public class AddEventHandlerAction extends Action {
+	private EditPart editPart;
+	private XWTDesigner designer;
+
+	public AddEventHandlerAction(EditPart editpart, XWTDesigner designer, String eventType) {
+		this.editPart = editpart;
+		this.designer = designer;
+		setText(eventType);
+		setImageDescriptor(ImageShop.getImageDescriptor(ImageShop.IMG_LISTENER_METHOD));
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.action.Action#run()
+	 */
+	public void run() {
+		EventHandler eventHandler = designer.getEventHandler();
+		if (eventHandler == null) {
+			return;
+		}
+		XamlElement child = (XamlElement) editPart.getModel();
+		// add the attribute
+		
+		String attributeName = ModelUtils.normalizePropertyName(getText());
+		String initialValue = "on" + getText();
+		String eventName = attributeName + IEventConstants.SUFFIX;
+		initialValue = eventHandler.suggestDefaultName(child, initialValue);
+		XamlAttribute handlerAttr = XamlFactory.eINSTANCE.createAttribute(eventName, IConstants.XWT_NAMESPACE);
+		NewHandlerDialog dialog = new NewHandlerDialog(eventHandler, initialValue);
+		if (dialog.open() == Window.OK) {
+			String newValue = dialog.getHandlerName();
+			if (newValue != "" && newValue != null) {
+				handlerAttr.setValue(newValue);
+				child.getAttributes().add(handlerAttr);
+				eventHandler.createHandler(newValue);
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/BindingLayerAction.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/BindingLayerAction.java
new file mode 100755
index 0000000..7b21798
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/BindingLayerAction.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.actions;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.jface.action.Action;
+import org.eclipse.swt.SWT;
+import org.eclipse.xwt.tools.ui.designer.core.editor.Designer;
+import org.eclipse.xwt.tools.ui.designer.core.parts.root.BindingLayer;
+import org.eclipse.xwt.tools.ui.designer.core.parts.root.DesignerRootEditPart;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class BindingLayerAction extends Action {
+
+	public static final String ID = BindingLayerAction.class.getName();
+	private Designer designer;
+
+	public BindingLayerAction(Designer designer) {
+		super("Binding Layer", SWT.CHECK);
+		this.designer = designer;
+		setId(ID);
+		setChecked(false);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.action.Action#run()
+	 */
+	public void run() {
+		DesignerRootEditPart rootEp = (DesignerRootEditPart) designer.getAdapter(EditPart.class);
+		Boolean layerVisible = rootEp.getLayerVisible(BindingLayer.ID);
+		if (layerVisible == null) {
+			return;
+		}
+		rootEp.setLayerVisible(BindingLayer.ID, !layerVisible.booleanValue());
+		setChecked(!layerVisible.booleanValue());
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/ChangeLayoutAction.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/ChangeLayoutAction.java
new file mode 100755
index 0000000..da56b32
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/ChangeLayoutAction.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.actions;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.xwt.tools.ui.designer.commands.ChangeLayoutCommand;
+import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
+import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
+
+/**
+ * @author rui.ban rui.ban@soyatec.com
+ */
+public class ChangeLayoutAction extends Action {
+
+	private EditPart editPart;
+	private LayoutType layoutType;
+
+	/**
+	 * @param editPart
+	 * @param text
+	 */
+	public ChangeLayoutAction(EditPart editPart, LayoutType layout) {
+		super(layout.value(), IAction.AS_RADIO_BUTTON);
+		this.layoutType = layout;
+		this.editPart = editPart;
+		setImageDescriptor(ImageShop.getImageDescriptor(ImageShop.OBJ16 + layout.value() + "_obj.gif"));
+		setChecked(LayoutsHelper.getLayoutType(editPart) == layout);
+	}
+
+	/**
+	 * @see org.eclipse.jface.action.Action#run()
+	 */
+	public void run() {
+		if (isChecked() && editPart != null) {
+			EditDomain.getEditDomain(editPart).getCommandStack().execute(new ChangeLayoutCommand(editPart, layoutType));
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/ChangeTextAction.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/ChangeTextAction.java
new file mode 100755
index 0000000..3b16ab3
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/ChangeTextAction.java
@@ -0,0 +1,135 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.actions;
+
+import java.util.List;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.ui.actions.SelectionAction;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
+import org.eclipse.xwt.tools.ui.designer.dialogs.TextValueDialog;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class ChangeTextAction extends SelectionAction {
+
+	public static final String ID = "org.eclipse.xwt.tools.ui.designer.editor.actions.ChageTextAction";
+
+	public ChangeTextAction(IWorkbenchPart part) {
+		super(part);
+		setText("Change Text");
+		setId(ID);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.action.Action#run()
+	 */
+	public void run() {
+		EditPart editPart = (EditPart) getSelectedObjects().get(0);
+		Object model = editPart.getModel();
+		if (model instanceof XamlElement) {
+			// Check text property of a control is or not exist.
+			XamlElement element = (XamlElement) model;
+			if (element == null) {
+				return;
+			}
+			String name = element.getName();
+			if (name == null || name.equals("")) {
+				return;
+			}
+			String namespace = element.getNamespace();
+			IMetaclass metaclass = XWT.getMetaclass(Character.toUpperCase(name.charAt(0)) + name.substring(1), namespace);
+			IProperty property = metaclass.findProperty("text");
+			if (property == null) {
+				return;
+			}
+
+			XamlAttribute attribute = element.getAttribute("text");
+			boolean isNew = false;
+			if (attribute == null) {
+				attribute = XamlFactory.eINSTANCE.createAttribute("text", IConstants.XWT_NAMESPACE);
+				isNew = true;
+			}
+
+			String oldValue = attribute.getValue() != null ? attribute.getValue().toString() : null;
+			TextValueDialog dialog = new TextValueDialog(new Shell(), oldValue);
+			dialog.create();
+			dialog.getShell().setText("Set New Text");
+			dialog.setTitle("New Text");
+			dialog.setMessage("Input a new text value.");
+			if (dialog.open() == Window.OK) {
+				String newValue = dialog.getNewValue();
+				Command cmd = createCommand((XamlElement) model, attribute, isNew, oldValue, newValue);
+				EditDomain.getEditDomain(editPart).getCommandStack().execute(cmd);
+			}
+
+		}
+	}
+
+	private Command createCommand(final XamlElement element, final XamlAttribute attribute, final boolean isNew, final String oldValue, final String newValue) {
+		Command command = new Command() {
+			public void execute() {
+				attribute.setValue(newValue);
+				if (isNew) {
+					element.getAttributes().add(attribute);
+				}
+			}
+
+			public void undo() {
+				attribute.setValue(oldValue);
+				if (isNew) {
+					element.getAttributes().add(attribute);
+				}
+			}
+		};
+		command.setLabel("Set Text");
+		return command;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.ui.actions.WorkbenchPartAction#calculateEnabled()
+	 */
+	protected boolean calculateEnabled() {
+		List<?> selectedObjects = getSelectedObjects();
+		if (selectedObjects.size() != 1) {
+			return false;
+		}
+		Object object = selectedObjects.get(0);
+		if (!(object instanceof EditPart) || !(((EditPart) object).getModel() instanceof XamlElement)) {
+			return false;
+		}
+		XamlElement element = (XamlElement) ((EditPart) object).getModel();
+		IMetaclass metaclass = XWTUtility.getMetaclass(element);
+		if (metaclass == null || metaclass.findProperty("text") == null) {
+			return false;
+		}
+		return true;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/CopyElementAction.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/CopyElementAction.java
new file mode 100755
index 0000000..b502b1a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/CopyElementAction.java
@@ -0,0 +1,95 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.actions;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.ui.actions.Clipboard;
+import org.eclipse.gef.ui.actions.SelectionAction;
+import org.eclipse.swt.SWT;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.actions.ActionFactory;
+import org.eclipse.ui.internal.WorkbenchMessages;
+import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+
+public class CopyElementAction extends SelectionAction {
+	private XWTDesigner editorPart;
+	private EditPart editpart;
+
+	public CopyElementAction(IWorkbenchPart part) {
+		super(part);
+		this.editorPart = (XWTDesigner) part;
+		setText(WorkbenchMessages.Workbench_copy);
+		setToolTipText(WorkbenchMessages.Workbench_copyToolTip);
+		setId(ActionFactory.COPY.getId());
+		setAccelerator(SWT.MOD1 | 'c');
+		ISharedImages sharedImages = part.getSite().getWorkbenchWindow().getWorkbench().getSharedImages();
+		setImageDescriptor(sharedImages.getImageDescriptor(ISharedImages.IMG_TOOL_COPY));
+		setDisabledImageDescriptor(sharedImages.getImageDescriptor(ISharedImages.IMG_TOOL_COPY_DISABLED));
+	}
+
+	protected boolean calculateEnabled() {
+		if (editorPart == null) {
+			return false;
+		}
+		if (editorPart.getGraphicalViewer() == null) {
+			return false;
+		}
+		List<?> selectedEditParts = this.editorPart.getGraphicalViewer().getSelectedEditParts();
+		boolean result = selectedEditParts != null && !selectedEditParts.isEmpty();
+		if (result) {
+			for (Iterator<?> iterator = selectedEditParts.iterator(); iterator
+					.hasNext();) {
+				EditPart editPart = (EditPart) iterator.next();
+				Object object = editPart.getModel();
+				if (object instanceof EObject) {
+					EObject eObject = (EObject) object;
+					if (eObject.eContainer() == null) {
+						return false;
+					}
+				}
+			}
+		}
+		return result;
+	}
+
+	public void run() {
+		List<?> selectedEditParts = this.editorPart.getGraphicalViewer().getSelectedEditParts();
+		List<XamlElement> selectResult = new ArrayList<XamlElement>();
+		if (selectedEditParts == null || selectedEditParts.isEmpty()) {
+			// Diagram directly...
+		} else {
+			for (int i = 0; i < selectedEditParts.size(); i++) {
+				editpart = (EditPart) selectedEditParts.get(i);
+				Object model = this.editpart.getModel();
+				Object parentModel = this.editpart.getParent().getModel();
+				if (model instanceof XamlElement && parentModel instanceof XamlElement) {
+					XamlElement copymodel = (XamlElement) EcoreUtil.copy((XamlElement) model);
+					selectResult.add(copymodel);
+
+				}
+			}
+
+		}
+		if (selectResult != null && selectResult.size() != 0)
+			Clipboard.getDefault().setContents(selectResult);
+		super.run();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/CreateBindingAction.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/CreateBindingAction.java
new file mode 100755
index 0000000..608c61d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/CreateBindingAction.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.actions;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class CreateBindingAction extends Action {
+
+	private EditPart editPart;
+	private Object observe;
+	private String property;
+
+	public CreateBindingAction(EditPart editPart, Object observe, String property, Image image) {
+		super(property, image == null ? null : ImageDescriptor.createFromImage(image));
+		this.editPart = editPart;
+		this.observe = observe;
+		this.property = property;
+		setEnabled(observe != null && property != null);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.action.Action#run()
+	 */
+	public void run() {
+		// StructuredProperty tp = new PropertiesProvider().findProperty(observe, property);
+		// ObserveInfo targetInfo = new ObserveInfo(observe, tp, ObserveType.WIDGETS);
+		// EditPart root = getRoot(editPart);
+		// CreateBindingDialog dialog = new CreateBindingDialog(new Shell(), targetInfo, root);
+		// if (dialog.open() == Window.OK) {
+		// IObserveInfo modelInfo = dialog.getBindingModel();
+		// BindingInfo bindingInfo = new BindingInfo(targetInfo, modelInfo);
+		// editPart.getViewer().getEditDomain().getCommandStack().execute(bindingInfo.bindWithCommand());
+		// }
+		System.out.println(editPart);
+		System.out.println(observe);
+		System.out.println(property);
+		System.out.println(getRoot(editPart));
+	}
+
+	private EditPart getRoot(EditPart editPart) {
+		if (editPart == null) {
+			return null;
+		}
+		Object model = editPart.getModel();
+		if (model instanceof XamlElement && ((XamlElement) model).eContainer() instanceof XamlDocument) {
+			return editPart;
+		}
+		return getRoot(editPart.getParent());
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/CreateBindingConnectionAction.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/CreateBindingConnectionAction.java
new file mode 100755
index 0000000..623351a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/CreateBindingConnectionAction.java
@@ -0,0 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.actions;
+
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Canvas;
+import org.eclipse.swt.widgets.Event;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class CreateBindingConnectionAction extends Action {
+
+	private GraphicalEditPart editPart;
+	private Object observe;
+	private String property;
+
+	public CreateBindingConnectionAction(EditPart editPart, Object observe, String property, Image image) {
+		super(property, image == null ? null : ImageDescriptor.createFromImage(image));
+		this.editPart = (GraphicalEditPart) editPart;
+		this.observe = observe;
+		this.property = property;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.action.Action#run()
+	 */
+	public void run() {
+		if (editPart == null) {
+			return;
+		}
+		/**
+		 * Create a mouse down event that thinks it is over the blob and dispatch it. This is a bit of a fudge to mimic what the user ought to do.
+		 */
+
+		Point point = null;
+		point = editPart.getFigure().getClientArea().getCenter();
+		Point p = point;
+		editPart.getFigure().translateToAbsolute(p);
+
+		Canvas canvas = (Canvas) editPart.getViewer().getControl();
+		Event event = new Event();
+		event.button = 1;
+		event.count = 0;
+		event.detail = 0;
+		event.end = 0;
+		event.height = 0;
+		event.keyCode = 0;
+		event.start = 0;
+		event.stateMask = 0;
+		event.time = 9516624; // any old time... doesn't matter
+		event.type = SWT.MouseDown;
+		event.widget = canvas;
+		event.width = 0;
+		event.x = p.x + 3;
+		event.y = p.y + 3;
+
+		// StructuredProperty tp = new PropertiesProvider().findProperty(observe, property);
+		// final ObserveInfo observeInfo = new ObserveInfo(observe, tp, ObserveType.WIDGETS);
+		//
+		// CreationFactory factory = new CreationFactory() {
+		//
+		// public Object getNewObject() {
+		// return observeInfo;
+		// }
+		//
+		// public Object getObjectType() {
+		// return editPart;
+		// }
+		//
+		// };
+		// BindingCreateTool tool = new BindingCreateTool(factory);
+		// editPart.getViewer().getEditDomain().setActiveTool(tool);
+		// canvas.notifyListeners(SWT.MouseDown, event);
+
+		System.out.println(editPart);
+		System.out.println(observe);
+		System.out.println(property);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/CutElementAction.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/CutElementAction.java
new file mode 100755
index 0000000..4580c98
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/CutElementAction.java
@@ -0,0 +1,102 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.actions;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.ui.actions.Clipboard;
+import org.eclipse.gef.ui.actions.SelectionAction;
+import org.eclipse.swt.SWT;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.actions.ActionFactory;
+import org.eclipse.ui.internal.WorkbenchMessages;
+import org.eclipse.xwt.tools.ui.designer.commands.DeleteCommand;
+import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+
+public class CutElementAction extends SelectionAction {
+	private XWTDesigner editorPart;
+
+	/**
+	 * @param part
+	 */
+	public CutElementAction(IWorkbenchPart part) {
+		super(part);
+		this.editorPart = (XWTDesigner) part;
+		this.setText(WorkbenchMessages.Workbench_cut);
+		this.setToolTipText(WorkbenchMessages.Workbench_cutToolTip);
+		this.setId(ActionFactory.CUT.getId());
+		this.setAccelerator(SWT.MOD1 | 'x');
+		ISharedImages sharedImages = part.getSite().getWorkbenchWindow().getWorkbench().getSharedImages();
+		setImageDescriptor(sharedImages.getImageDescriptor(ISharedImages.IMG_TOOL_CUT));
+		setDisabledImageDescriptor(sharedImages.getImageDescriptor(ISharedImages.IMG_TOOL_CUT_DISABLED));
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.ui.actions.WorkbenchPartAction#calculateEnabled()
+	 */
+	protected boolean calculateEnabled() {
+		if (editorPart == null) {
+			return false;
+		}
+		if (editorPart.getGraphicalViewer() == null) {
+			return false;
+		}
+		List<?> selectedEditParts = this.editorPart.getGraphicalViewer().getSelectedEditParts();
+		boolean result = selectedEditParts != null && !selectedEditParts.isEmpty();
+		if (result) {
+			for (Iterator<?> iterator = selectedEditParts.iterator(); iterator
+					.hasNext();) {
+				EditPart editPart = (EditPart) iterator.next();
+				Object object = editPart.getModel();
+				if (object instanceof EObject) {
+					EObject eObject = (EObject) object;
+					if (eObject.eContainer() == null) {
+						return false;
+					}
+				}
+			}
+		}
+		return result;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.action.Action#run()
+	 */
+	public void run() {
+		List<?> selectedEditParts = this.editorPart.getGraphicalViewer().getSelectedEditParts();
+		List<XamlElement> selectResult = new ArrayList<XamlElement>();
+		for (Iterator<?> iterator = selectedEditParts.iterator(); iterator.hasNext();) {
+			EditPart part = (EditPart) iterator.next();
+			Object model = part.getModel();
+			if (model instanceof XamlElement) {
+				XamlElement copymodel = (XamlElement) EcoreUtil.copy((XamlElement) model);
+				selectResult.add(copymodel);
+			}
+		}
+		if (selectResult != null && selectResult.size() != 0)
+			Clipboard.getDefault().setContents(selectResult);
+		DeleteCommand dcmd = new DeleteCommand(selectedEditParts);
+		editorPart.getEditDomain().getCommandStack().execute(dcmd);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/LayoutAssistantAction.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/LayoutAssistantAction.java
new file mode 100755
index 0000000..ee72244
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/LayoutAssistantAction.java
@@ -0,0 +1,111 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.actions;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.ui.actions.SelectionAction;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.xwt.tools.ui.designer.dialogs.LayoutAssistantWindow;
+import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
+
+/**
+ * @author rui.ban rui.ban@soyatec.com
+ */
+public class LayoutAssistantAction extends SelectionAction {
+
+	public static final String ID = "org.eclipse.xwt.tools.ui.designer.editor.actions.LayoutAssistantAction";
+
+	private LayoutAssistantWindow window;
+
+	public LayoutAssistantAction(IWorkbenchPart part) {
+		super(part);
+		setText("Layout Assistant...");
+		setImageDescriptor(ImageShop.getImageDescriptor(ImageShop.IMG_LAYOUT_ASSIST));
+		setId(ID);
+	}
+
+	/**
+	 * @see org.eclipse.jface.action.Action#run()
+	 */
+	public void run() {
+		EditPart editPart = getEditPart();
+		if (editPart == null) {
+			return;
+		}
+		if (window == null || window.isClosed()) {
+			window = new LayoutAssistantWindow(getWorkbenchPart().getSite().getShell());
+		}
+		window.setEditPart(editPart);
+		if (!window.isOpened()) {
+			window.open();
+		} else {
+			window.refresh();
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.ui.actions.SelectionAction#dispose()
+	 */
+	public void dispose() {
+		if (window != null) {
+			window.close();
+		}
+		super.dispose();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.ui.actions.SelectionAction#handleSelectionChanged()
+	 */
+	protected void handleSelectionChanged() {
+		super.handleSelectionChanged();
+		EditPart editPart = getEditPart();
+		if (window != null && window.isOpened() && editPart != null) {
+			window.setEditPart(editPart);
+		}
+	}
+
+	public EditPart getEditPart() {
+		List selectedObjects = getSelectedObjects();
+		if (selectedObjects.size() == 1 && selectedObjects.get(0) instanceof EditPart) {
+			return (EditPart) selectedObjects.get(0);
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.ui.actions.WorkbenchPartAction#calculateEnabled()
+	 */
+	protected boolean calculateEnabled() {
+		EditPart editPart = getEditPart();
+		if (editPart == null) {
+			return false;
+		}
+		Object model = editPart.getModel();
+		if (model instanceof EObject) {
+			EObject object = (EObject)model;
+			if (object.eContainer() == null) {
+				return false;
+			}
+		}
+		return true;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/OpenBindingDialogAction.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/OpenBindingDialogAction.java
new file mode 100755
index 0000000..08fe0d0
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/OpenBindingDialogAction.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.actions;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.ui.actions.WorkbenchPartAction;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.xwt.tools.ui.designer.databinding.ui.DataBindingWindow;
+import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
+import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
+import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class OpenBindingDialogAction extends WorkbenchPartAction {
+
+	public static final String ID = OpenBindingDialogAction.class.getName();
+
+	public OpenBindingDialogAction(IWorkbenchPart part) {
+		super(part);
+		setId(ID);
+		setText("Open Binding Dialog");
+		setImageDescriptor(ImageShop.getImageDescriptor(ImageShop.IMG_BINDING));
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.action.Action#run()
+	 */
+	public void run() {
+		XWTDesigner designer = (XWTDesigner) getWorkbenchPart();
+		Object root = designer.getVisualsRender().getRoot();
+		if (root instanceof Widget) {
+			root = XWTProxy.getModel((Widget) root);
+		}
+		EditPart editPart = designer.getEditPart(root);
+		DataBindingWindow window = new DataBindingWindow(designer.getSite().getShell(), editPart);
+		window.open();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.ui.actions.WorkbenchPartAction#calculateEnabled()
+	 */
+	protected boolean calculateEnabled() {
+		return true;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/OpenExternalizeStringsAction.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/OpenExternalizeStringsAction.java
new file mode 100755
index 0000000..04fc316
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/OpenExternalizeStringsAction.java
@@ -0,0 +1,127 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.actions;
+
+import java.util.List;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.RootEditPart;
+import org.eclipse.gef.ui.actions.WorkbenchPartAction;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
+import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
+import org.eclipse.xwt.tools.ui.designer.wizards.ExternalizeStringsWizard;
+import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueEntry;
+import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueModel;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author xrchen (xiaoru.chen@soyatec.com)
+ */
+public class OpenExternalizeStringsAction extends WorkbenchPartAction {
+
+	int index = 0;
+	XWTDesigner designer = (XWTDesigner) getWorkbenchPart();
+	public static final String ID = OpenExternalizeStringsAction.class.getName();
+
+	public OpenExternalizeStringsAction(IWorkbenchPart part) {
+		super(part);
+		setId(ID);
+		setText("Externalize Strings");
+	}
+
+	@Override
+	public void run() {
+		TextValueModel textValueEntrys = getTextValue();
+		if (textValueEntrys.elements().length == 0) {
+			String dialogMessage = "No Strings to externalize found in file.";
+			String[] dialogButtonLabels = { "Ok" };
+			MessageDialog messageDialog = new MessageDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), "Externalize Strings", null, dialogMessage, MessageDialog.INFORMATION, dialogButtonLabels, 0);
+			messageDialog.open();
+		} else {
+			ExternalizeStringsWizard wizard = new ExternalizeStringsWizard(textValueEntrys, designer);
+			wizard.init(PlatformUI.getWorkbench(), null);
+			WizardDialog dialog = new WizardDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), wizard);
+			dialog.open();
+		}
+	}
+
+	/**
+	 * Get the input to the table viewer.
+	 * 
+	 * @return textValueEntrys
+	 */
+	protected TextValueModel getTextValue() {
+		TextValueModel textValueEntrys = new TextValueModel();
+		index = 0;
+		RootEditPart rootEditPart = designer.getGraphicalViewer().getRootEditPart();
+		EditPart contents = rootEditPart.getContents();
+		getTextContents(contents, textValueEntrys, "text");
+		getTextContents(contents, textValueEntrys, "tooltipText");
+		return textValueEntrys;
+	}
+
+	/**
+	 * Get the text attribute values.
+	 * 
+	 * @param editPart
+	 * @param textValueEntrys
+	 */
+	private void getTextContents(EditPart editPart, TextValueModel textValueEntrys, String type) {
+		if (editPart instanceof WidgetEditPart) {
+			XamlNode node = ((WidgetEditPart) editPart).getCastModel();
+			XamlAttribute attribute = node.getAttribute(type, IConstants.XWT_NAMESPACE);
+			if (attribute != null && attribute.getChildNodes().size() == 0) {
+				textValueEntrys.add(new TextValueEntry(attribute.getValue(), "" + index));
+				index++;
+			}
+			if (editPart.getChildren().size() > 0) {
+				getChildTextContents(editPart, textValueEntrys, type);
+			}
+		} else if (editPart.getChildren().size() > 0) {
+			getChildTextContents(editPart, textValueEntrys, type);
+		}
+	}
+
+	/**
+	 * Get the editPart children's text value.
+	 * 
+	 * @param editPart
+	 * @param textValueEntrys
+	 */
+	private void getChildTextContents(EditPart editPart, TextValueModel textValueEntrys, String type) {
+		if (editPart.getChildren().size() > 0) {
+			List child = editPart.getChildren();
+			for (int i = 0; i < child.size(); i++) {
+				if (child.get(i) instanceof EditPart) {
+					getTextContents((EditPart) (child.get(i)), textValueEntrys, type);
+				}
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.ui.actions.WorkbenchPartAction#calculateEnabled()
+	 */
+	protected boolean calculateEnabled() {
+		return true;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/PasteElementAction.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/PasteElementAction.java
new file mode 100755
index 0000000..ebf36f9
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/PasteElementAction.java
@@ -0,0 +1,184 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.actions;
+
+import java.lang.reflect.Constructor;
+import java.util.List;
+
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.gef.ui.actions.Clipboard;
+import org.eclipse.gef.ui.actions.SelectionAction;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.CoolBar;
+import org.eclipse.swt.widgets.CoolItem;
+import org.eclipse.swt.widgets.ExpandBar;
+import org.eclipse.swt.widgets.ExpandItem;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.actions.ActionFactory;
+import org.eclipse.ui.internal.WorkbenchMessages;
+import org.eclipse.xwt.tools.ui.designer.commands.AddNewChildCommand;
+import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
+import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+public class PasteElementAction extends SelectionAction {
+	private XWTDesigner part;
+	private Object contents;
+	private EditPart parent;
+
+	public PasteElementAction(IWorkbenchPart part) {
+		super(part);
+		this.part = (XWTDesigner) part;
+		setText(WorkbenchMessages.Workbench_paste);
+		setToolTipText(WorkbenchMessages.Workbench_pasteToolTip);
+		setId(ActionFactory.PASTE.getId());
+		setAccelerator(SWT.MOD1 | 'v');
+		ISharedImages sharedImages = part.getSite().getWorkbenchWindow().getWorkbench().getSharedImages();
+		setImageDescriptor(sharedImages.getImageDescriptor(ISharedImages.IMG_TOOL_PASTE));
+		setDisabledImageDescriptor(sharedImages.getImageDescriptor(ISharedImages.IMG_TOOL_PASTE_DISABLED));
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.ui.actions.WorkbenchPartAction#calculateEnabled()
+	 */
+	protected boolean calculateEnabled() {
+		contents = Clipboard.getDefault().getContents();
+		if (contents == null) {
+			return false;
+		}
+
+		if (part.getGraphicalViewer() == null) {
+			return false;
+		}
+
+		List<?> parts = part.getGraphicalViewer().getSelectedEditParts();
+		if (parts == null || parts.isEmpty()) {
+			return false;
+		}
+		parent = (EditPart) parts.get(0);
+		Object model = parent.getModel();
+		if (model == null || !(model instanceof XamlElement)) {
+			return false;
+		}
+		return canPaste((XamlElement) model);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.action.Action#run()
+	 */
+	public void run() {
+		XamlElement parentNode = (XamlElement) parent.getModel();
+		List<XamlElement> elements = (List<XamlElement>) contents;
+		CompoundCommand cmd = new CompoundCommand("Paste");
+		for (XamlElement child : elements) {
+			XamlElement newChild = (XamlElement) EcoreUtil.copy(child);
+			cmd.add(new AddNewChildCommand(parentNode, newChild));
+		}
+		Command command = cmd.unwrap();
+		if (command.canExecute()) {
+			EditDomain.getEditDomain(parent).getCommandStack().execute(command);
+		}
+	}
+
+	public boolean canPaste(XamlElement parent) {
+		Class<?> parentType = null;
+		parentType = getType(parent);
+		if (parentType == null) {
+			return false;
+		}
+		List<XamlElement> contents = (List<XamlElement>) Clipboard.getDefault().getContents();
+
+		for (XamlElement element : contents) {
+			Class<?> createtype = getType(element);
+			if (createtype == null) {
+				return false;
+			}
+			if (!canPaste(createtype, parentType, parent))
+				return false;
+		}
+		return true;
+	}
+
+	public Class<?> getType(XamlNode element) {
+		if (element == null) {
+			return null;
+		}
+		IMetaclass metaclass = XWTUtility.getMetaclass(element);
+		if (metaclass != null) {
+			return metaclass.getType();
+		}
+		return null;
+	}
+
+	public boolean canPaste(Object createType, Class<?> parentType, XamlElement parent) {
+		boolean canCreate = false;
+		if (createType instanceof Class<?>) {
+			Class<?> type = (Class<?>) createType;
+			// the child of coolBar/expandBar only is coolItem/expandItem.
+			if (CoolBar.class.isAssignableFrom(parentType)) {
+				if (!CoolItem.class.isAssignableFrom(type)) {
+					return false;
+				}
+			}
+			if (ExpandBar.class.isAssignableFrom(parentType)) {
+				if (!ExpandItem.class.isAssignableFrom(type)) {
+					return false;
+				}
+			}// the coolItem/expandItem is permitted to add a control except its parent and itself.
+			if (CoolItem.class.isAssignableFrom(parentType)) {
+				if (Control.class.isAssignableFrom(type) && !CoolBar.class.isAssignableFrom(type)) {
+					return true;
+				}
+			}
+			if (ExpandItem.class.isAssignableFrom(parentType)) {
+				if (Control.class.isAssignableFrom(type) && !ExpandBar.class.isAssignableFrom(type)) {
+					return true;
+				}
+			}
+			Constructor<?>[] constructors = ((Class<?>) createType).getConstructors();
+			for (Constructor<?> constructor : constructors) {
+				Class<?>[] parameterTypes = constructor.getParameterTypes();
+				if (parameterTypes.length == 0) {
+					continue;
+				}
+				if (parameterTypes[0].isAssignableFrom(parentType)) {
+					canCreate = true;
+					break;
+				}
+			}
+		} else if (createType instanceof String) {
+			String stringType = (String) createType;
+			IMetaclass metaclass = XWT.getMetaclass(parentType);
+			if (metaclass != null) {
+				canCreate = metaclass.findProperty((String) createType) != null;
+				if ("menuBar".equals(stringType) || "menu".equals(stringType) || "layoutData".equals(stringType)) {
+					canCreate = canCreate && parent.getAttribute(stringType) == null;
+				}
+			}
+		}
+		return canCreate;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/PreviewAction.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/PreviewAction.java
new file mode 100755
index 0000000..8191a17
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/PreviewAction.java
@@ -0,0 +1,103 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.actions;
+
+import java.io.ByteArrayInputStream;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.gef.ui.actions.SelectionAction;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
+import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
+import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class PreviewAction extends SelectionAction {
+
+	public static final String ACTION_ID = "org.eclipse.xwt.tools.ui.designer.editor.actions.PreviewAction";
+
+	private XWTDesigner part;
+	private static Point defaultSize;
+
+	public PreviewAction(XWTDesigner part) {
+		super(part);
+		this.part = part;
+		setId(ACTION_ID);
+		setText("Test/Preview");
+		setToolTipText("Quickly test/preview with XWT loader");
+		setImageDescriptor(ImageShop.getImageDescriptor(ImageShop.IMG_PREVIEW));
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.action.Action#run()
+	 */
+	public void run() {
+		try {
+			IFile inputFile = part.getFile();
+			String content = part.getDocument().get();
+			Object element = XWT.load(new ByteArrayInputStream(content.getBytes()), inputFile.getLocationURI().toURL());
+			if (!(element instanceof Control)) {
+				throw new XWTException("Root element is a control.");
+			}
+			Control control = (Control) element;
+			if (control == null || control.isDisposed()) {
+				return;
+			}
+			Shell shell = control.getShell();
+			Point size = shell.getSize();
+			Point dSize = defaultSize();
+			if (size.x == dSize.x && size.y == dSize.y) {
+				Point computeSize = control.computeSize(SWT.DEFAULT, SWT.DEFAULT);
+				Point defaultSize = XWTProxy.DEFAULT_SIZE;
+				int x = Math.max(computeSize.x, defaultSize.x);
+				int y = Math.max(computeSize.y, defaultSize.y);
+				boolean pack = false;
+				if (!(control instanceof Shell)) {
+					shell.setLayout(null);
+					pack = true;
+				}
+				control.setSize(x, y);
+				if (pack) {
+					shell.pack();
+				}
+			}
+			shell.open();
+		} catch (Exception e) {
+		}
+	}
+
+	private static Point defaultSize() {
+		if (defaultSize == null) {
+			defaultSize = new Shell().getSize();
+		}
+		return defaultSize;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.ui.actions.WorkbenchPartAction#calculateEnabled()
+	 */
+	protected boolean calculateEnabled() {
+		return part != null && part.getDocument() != null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/StyleAction.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/StyleAction.java
new file mode 100755
index 0000000..1a984d4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/StyleAction.java
@@ -0,0 +1,183 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.actions;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.converters.StringToInteger;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IMenuCreator;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.tools.ui.designer.commands.SetStyleCommand;
+import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
+import org.eclipse.xwt.tools.ui.designer.core.style.SWTStyles;
+import org.eclipse.xwt.tools.ui.designer.core.style.StyleGroup;
+import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
+import org.eclipse.xwt.tools.ui.designer.utils.StyleHelper;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class StyleAction extends Action implements IMenuCreator {
+
+	public static final String ID = StyleAction.class.getName();
+	private WidgetEditPart editPart;
+	private MenuManager menuManager;
+
+	public StyleAction(WidgetEditPart editPart) {
+		this.editPart = editPart;
+		setId(ID);
+		setText("Style");
+		setMenuCreator(this);
+	}
+
+	@Override
+	public boolean isEnabled() {
+		Object model = editPart.getModel();
+		if (model instanceof EObject) {
+			EObject object = (EObject)model;
+			if (object.eContainer() == null) {
+				return false;
+			}
+		}
+		return super.isEnabled();
+	}
+	
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.editor.actions.AbstractDropDownAction#createMenuManager()
+	 */
+	protected MenuManager createMenuManager() {
+		if (menuManager == null) {
+
+			menuManager = new MenuManager();
+			Widget widget = editPart.getWidget();
+			if (widget != null && !widget.isDisposed()) {
+				int masterStyle = widget.getStyle();
+				StyleGroup[] styles = SWTStyles.getStyles(widget.getClass());
+				Separator last = null;
+				for (StyleGroup styleGroup : styles) {
+					if (!styleGroup.match(masterStyle)) {
+						continue;
+					}
+					String[] items = styleGroup.getStyles();
+					String groupName = styleGroup.getGroupName();
+					for (String style : items) {
+						XamlNode node = editPart.getCastModel();
+						SetStyleAction action = new SetStyleAction(node, styleGroup, style, "default".equals(groupName) ? AS_CHECK_BOX : AS_RADIO_BUTTON);
+						boolean checked = StyleHelper.checkStyle(masterStyle, style);
+						
+						boolean specified = false;
+						XamlAttribute attribute = node.getAttribute("style", IConstants.XWT_X_NAMESPACE);
+						if (attribute != null) {
+							int xmlValue = (Integer) StringToInteger.instance.convert(attribute.getValue());
+							int value = (Integer) StringToInteger.instance.convert(style);
+							specified = StyleHelper.checkStyle(xmlValue, value);
+						}
+						if (checked) {
+							action.setEnabled(specified);
+						}
+						else {
+							action.setEnabled(true);
+						}
+						action.setChecked(checked);
+						menuManager.add(action);
+					}
+					menuManager.add(last = new Separator(groupName));
+				}
+				if (last != null) {
+					menuManager.remove(last);
+				}
+			}
+		}
+		return menuManager;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.action.IMenuCreator#dispose()
+	 */
+	public void dispose() {
+		if (menuManager != null) {
+			menuManager.dispose();
+			menuManager = null;
+		}
+	}
+
+	public Menu getMenu(Control parent) {
+		MenuManager mm = createMenuManager();
+		if (mm != null) {
+			return mm.createContextMenu(parent);
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.action.IMenuCreator#getMenu(org.eclipse.swt.widgets.Menu)
+	 */
+	public Menu getMenu(Menu parent) {
+		MenuManager mm = createMenuManager();
+		if (mm != null) {
+			Menu menu = new Menu(parent);
+			IContributionItem[] items = mm.getItems();
+			for (int i = 0; i < items.length; i++) {
+				IContributionItem item = items[i];
+				IContributionItem newItem = item;
+				if (item instanceof ActionContributionItem) {
+					newItem = new ActionContributionItem(((ActionContributionItem) item).getAction());
+				}
+				newItem.fill(menu, -1);
+			}
+			return menu;
+		}
+		return null;
+	}
+
+	private class SetStyleAction extends Action {
+		private String newStyle;
+		private XamlNode node;
+		private StyleGroup group;
+
+		public SetStyleAction(XamlNode node, StyleGroup group, String newStyle, int actionStyle) {
+			super(newStyle, actionStyle);
+			this.node = node;
+			this.group = group;
+			this.newStyle = newStyle;
+		}
+
+		public void run() {
+			// fail fast
+			if (getStyle() == AS_RADIO_BUTTON && !isChecked()) {
+				return;
+			}
+			SetStyleCommand command = new SetStyleCommand(node, newStyle, group);
+			if (getStyle() == AS_CHECK_BOX) {
+				command.setRemove(!isChecked());
+			}
+			EditDomain.getEditDomain(editPart).getCommandStack().execute(command);
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/SurroundWithAction.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/SurroundWithAction.java
new file mode 100755
index 0000000..c966697
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/actions/SurroundWithAction.java
@@ -0,0 +1,89 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.actions;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.TabFolder;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.xwt.tools.ui.designer.commands.SurroundWithCommand;
+import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class SurroundWithAction extends AbstractDropDownAction {
+
+	public static final String ID = "org.eclipse.xwt.tools.ui.designer.editor.actions.SurroundWithAction";
+
+	private Class<?>[] actionList;
+
+	private SurroundWithCommand command;
+
+	public SurroundWithAction(IWorkbenchPart part) {
+		super(part);
+		setId(ID);
+		setText("Surround With");
+		initActions();
+		setMenuCreator(this);
+	}
+
+	private void initActions() {
+		actionList = new Class<?>[] {Composite.class, Group.class, ScrolledComposite.class, SashForm.class, TabFolder.class, CTabFolder.class};
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.ui.actions.WorkbenchPartAction#calculateEnabled()
+	 */
+	protected boolean calculateEnabled() {
+		command = calculateCommand();
+		return command != null && command.canExecute();
+	}
+
+	protected SurroundWithCommand calculateCommand() {
+		return new SurroundWithCommand(getSelectedObjects());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.editor.actions.AbstractDropDownAction#createMenuManager()
+	 */
+	protected MenuManager createMenuManager() {
+		MenuManager mm = new MenuManager();
+		for (final Class<?> type : actionList) {
+			Action action = new Action(type.getName()) {
+				public void run() {
+					command.setType(type);
+					execute(command);
+				}
+			};
+			Image image = ImageShop.getImageForType(type);
+			if (image != null) {
+				action.setImageDescriptor(ImageDescriptor.createFromImage(image));
+			}
+			mm.add(action);
+		}
+		return mm;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/BindingCreateTool.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/BindingCreateTool.java
new file mode 100755
index 0000000..0b470ef
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/BindingCreateTool.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.dnd;
+
+import org.eclipse.gef.requests.CreationFactory;
+import org.eclipse.gef.tools.ConnectionCreationTool;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class BindingCreateTool extends ConnectionCreationTool {
+	public BindingCreateTool() {
+		setUnloadWhenFinished(true);
+	}
+
+	public BindingCreateTool(CreationFactory factory) {
+		super(factory);
+		setUnloadWhenFinished(true);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/EntryCreateRequest.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/EntryCreateRequest.java
new file mode 100755
index 0000000..233525e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/EntryCreateRequest.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.dnd;
+
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.requests.CreateRequest;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class EntryCreateRequest extends CreateRequest {
+	private Dimension initSize;
+
+	public void setInitSize(Dimension initSize) {
+		this.initSize = initSize;
+	}
+
+	public Dimension getInitSize() {
+		return initSize;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/EntryCreationTool.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/EntryCreationTool.java
new file mode 100755
index 0000000..3d57ab6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/EntryCreationTool.java
@@ -0,0 +1,174 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.dnd;
+
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.CreationFactory;
+import org.eclipse.gef.tools.CreationTool;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
+import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
+import org.eclipse.xwt.tools.ui.designer.parts.ControlEditPart;
+import org.eclipse.xwt.tools.ui.imagecapture.swt.ImageCapture;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class EntryCreationTool extends CreationTool {
+	static int shadow = 2;
+
+	private Shell shell;
+	private Dimension initSize;
+
+	public EntryCreationTool() {
+		super();
+		setUnloadWhenFinished(true);
+	}
+
+	public EntryCreationTool(CreationFactory aFactory) {
+		super(aFactory);
+		setUnloadWhenFinished(true);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.tools.AbstractTool#activate()
+	 */
+	public void activate() {
+		super.activate();
+//		CreationFactory factory = getFactory();
+//		if (factory != null && factory instanceof EntryCreationFactory) {
+//			Entry entry = (Entry) factory.getNewObject();
+//			XamlNode node = EntryHelper.getNode(entry);
+//			if (node != null && node instanceof XamlElement) {
+//				Image image = getImageFrom((XamlElement) node);
+//				if (image != null) {
+//					cursor = new Cursor(null, image.getImageData(), 0, 0);
+//					setDefaultCursor(cursor);
+//				}
+//			}
+//		}
+	}
+
+	private Image getImageFrom(XamlElement node) {
+		if (shell == null || shell.isDisposed()) {
+			shell = new Shell();
+			shell.setLayout(new RowLayout());
+		}
+		XWTProxy proxy = new XWTProxy(null);
+		Object widget;
+		try {
+			widget = proxy.createWidget(shell, (XamlElement) node);
+			if (widget == null || !(widget instanceof Control)) {
+				return null;
+			}
+		} catch (Exception e) {
+			return null;
+		}
+		shell.layout();
+		shell.pack();
+
+		Image image = null;
+		Control control = (Control) widget;
+		Rectangle bounds = control.getBounds();
+		initSize = new Dimension(bounds.width + (shadow * 2), bounds.height + (shadow * 2));
+		if (control instanceof Shell) {
+			image = ImageCapture.getInstance().capture(control);
+		} else {
+			image = new Image(control.getDisplay(), initSize.width, initSize.height);
+			GC gc = new GC(image);
+			control.print(gc);
+			gc.copyArea(0, 0, bounds.width, bounds.height, shadow, shadow);
+			int width = initSize.width - 1;
+			int height = initSize.height - 1;
+			
+			gc.setForeground(Display.getDefault().getSystemColor(SWT.COLOR_GRAY));
+			for (int i = 0; i < shadow; i++) {
+				gc.drawLine(i, i, width, i);
+				gc.drawLine(width, i, width, height);
+				gc.drawLine(width, height, i, height);
+				gc.drawLine(i, height, i, i);
+				width -= 1;
+				height -= 1;
+			}
+			gc.dispose();
+		}
+		return image;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.tools.CreationTool#deactivate()
+	 */
+	public void deactivate() {
+		super.deactivate();
+//		if (shell != null) {
+//			shell.dispose();
+//		}
+//		if (cursor != null) {
+//			cursor.dispose();
+//		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.tools.TargetingTool#getTargetRequest()
+	 */
+	protected Request getTargetRequest() {
+		Request req = super.getTargetRequest();
+		if (req instanceof EntryCreateRequest && initSize != null) {
+			((EntryCreateRequest) req).setInitSize(initSize);
+		}
+		return req;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.tools.CreationTool#createTargetRequest()
+	 */
+	protected Request createTargetRequest() {
+		EntryCreateRequest request = new EntryCreateRequest();
+		request.setFactory(getFactory());
+		return request;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.tools.TargetingTool#setTargetEditPart(org.eclipse.gef.EditPart)
+	 */
+	protected void setTargetEditPart(EditPart editpart) {
+		if (editpart != null) {
+			Class<?> type = editpart.getClass();
+			if (!CompositeEditPart.class.isAssignableFrom(type) && ControlEditPart.class.isAssignableFrom(type)) {
+				editpart = editpart.getParent();
+			}
+		}
+		super.setTargetEditPart(editpart);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/XWTDropContext.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/XWTDropContext.java
new file mode 100755
index 0000000..a1a97d4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/XWTDropContext.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.dnd;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.xwt.tools.ui.designer.core.editor.dnd.DropContext;
+import org.eclipse.xwt.tools.ui.designer.core.util.DomHelper;
+import org.w3c.dom.Node;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class XWTDropContext extends DropContext {
+
+	private String getNodeName(Node node) {
+		String name = node.getNodeName();
+		int index = name.indexOf(":");
+		if (index != -1) {
+			name = name.substring(index + 1);
+		}
+		return name;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.tools.designer.editor.dnd.DropContext#isKindOf(org.w3c.dom.Node, java.lang.String)
+	 */
+	protected boolean isKindOf(Node node, String targetType) {
+		if (node.getNodeType() == Node.DOCUMENT_NODE) {
+			return false;
+		}
+		String namespace = DomHelper.lookupNamespaceURI(node);
+		String tagName = getNodeName(node);
+		if (tagName.indexOf(".") > 0) {
+			tagName = (tagName.substring(tagName.lastIndexOf(".") + 1));
+			tagName = Character.toUpperCase(tagName.charAt(0)) + tagName.substring(1);
+			namespace = IConstants.XWT_NAMESPACE;
+		}
+		try {
+			return isKindOf(tagName, namespace, targetType);
+		} catch (Exception e) {
+			return false;
+		}
+	}
+
+	private boolean isKindOf(String nodeName, String namespace, String targetType) throws Exception {
+		if (nodeName == null || namespace == null || targetType == null) {
+			return false;
+		}
+		if ("Composite".equalsIgnoreCase(targetType)) {
+			IMetaclass metaclass = XWT.getMetaclass(nodeName, namespace);
+			if (metaclass == null) {
+				return false;
+			} else {
+				return Composite.class.isAssignableFrom(metaclass.getType());
+			}
+		} else if ("Control".equalsIgnoreCase(targetType)) {
+			IMetaclass metaclass = XWT.getMetaclass(nodeName, namespace);
+			if (metaclass == null) {
+				return false;
+			} else {
+				return Control.class.isAssignableFrom(metaclass.getType());
+			}
+		}
+		return targetType.equalsIgnoreCase(nodeName);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/XWTGraphicalViewerDropListener.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/XWTGraphicalViewerDropListener.java
new file mode 100755
index 0000000..89dd87a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/dnd/XWTGraphicalViewerDropListener.java
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.dnd;
+
+import org.eclipse.xwt.tools.ui.palette.Entry;
+import org.eclipse.xwt.tools.ui.palette.PaletteFactory;
+import org.eclipse.xwt.tools.ui.palette.request.EntryCreationFactory;
+import org.eclipse.gef.EditPartViewer;
+import org.eclipse.gef.requests.CreationFactory;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.xwt.tools.ui.designer.core.editor.dnd.GraphicalViewerDropCreationListener;
+import org.eclipse.xwt.tools.ui.designer.core.util.XWTCodeGenUtil;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public class XWTGraphicalViewerDropListener extends
+		GraphicalViewerDropCreationListener {
+
+	public XWTGraphicalViewerDropListener(EditPartViewer viewer) {
+		super(viewer);
+	}
+
+	protected CreationFactory createCreationFactory(Object selection) {
+		if (selection instanceof ICompilationUnit) {
+			Class<?> dataContext = getClassType((ICompilationUnit) selection);
+			if (dataContext == null) {
+				return null;
+			}
+			String generate = XWTCodeGenUtil.generate(dataContext);
+			Entry entry = PaletteFactory.eINSTANCE.createEntry();
+			entry.setContent(generate);
+			entry.setScope("Composite");
+			entry.setName(dataContext.getSimpleName());
+
+			return new EntryCreationFactory(entry);
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/event/EventHandler.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/event/EventHandler.java
new file mode 100755
index 0000000..280262e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/event/EventHandler.java
@@ -0,0 +1,148 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.event;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.IEventConstants;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.jdt.core.IMethod;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
+import org.eclipse.xwt.tools.ui.designer.jdt.ASTHelper;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class EventHandler {
+
+	private XWTDesigner designer;
+	private IType type;
+
+	public EventHandler(XWTDesigner designer, IType type) {
+		this.designer = designer;
+		this.type = type;
+		if (type == null) {
+			throw new NullPointerException("Java Source Type is Null!");
+		}
+	}
+
+	public boolean exist(String handlerName) {
+		try {
+			IMethod[] methods = type.getMethods();
+			if (findMethod(methods, handlerName) != null) {
+				return true;
+			}
+		} catch (JavaModelException e) {
+		}
+		return false;
+	}
+
+	public String suggestDefaultName(XamlElement element, String value) {
+		String name = value;
+		if (!exist(name)) {
+			return name;
+		}
+
+		int i = 0;
+		String elementName = "";
+		XamlAttribute attribute = element.getAttribute("name", IConstants.XWT_X_NAMESPACE);
+		if (attribute == null) {
+			attribute = element.getAttribute("name", IConstants.XWT_NAMESPACE);
+		}
+		if (attribute != null) {
+			elementName = attribute.getValue().trim();
+		}
+		if (elementName == null || elementName.length() == 0) {
+			elementName = element.getName();
+		}
+		if (elementName == null) {
+			elementName = "";
+		}
+		if (elementName.length() > 1) {
+			elementName = Character.toUpperCase(elementName.charAt(0)) + elementName.substring(1);
+		}
+
+		name = value + elementName;
+		while (exist(name)) {
+			name = value + elementName + (++i);
+		}
+		return name;
+	}
+
+	private IMethod findMethod(IMethod[] methods, String methodName) {
+		for (int i = 0; i < methods.length; i++) {
+			IMethod method = methods[i];
+			if (method.getElementName().equals(methodName))
+				return method;
+		}
+		return null;
+	}
+
+	public void createHandler(String handlerName) {
+		if (handlerName == null) {
+			return;
+		}
+		List<Class<?>> argus = new ArrayList<Class<?>>();
+		argus.add(Object.class);
+		argus.add(Event.class);
+		createHandler(handlerName, null, null, argus);
+	}
+
+	public void createHandler(String methodName, Class<?> returnType, String contentReturnValue,
+			List<Class<?>> arguments) {
+		ASTHelper.createMethod(type, methodName, returnType, contentReturnValue, arguments);
+	}
+
+	/**
+	 * Create all handlers.
+	 */
+	public void createHandlers() {
+		XamlDocument xamlDocument = (XamlDocument) designer.getDocumentRoot();
+		XamlElement rootElement = xamlDocument.getRootElement();
+		List<XamlAttribute> handlerAttrs = new ArrayList<XamlAttribute>();
+		retrieveHandlerAttrs(rootElement, handlerAttrs);
+		if (handlerAttrs.isEmpty()) {
+			return;
+		}
+		for (XamlAttribute xamlAttribute : handlerAttrs) {
+			String handlerName = xamlAttribute.getValue();
+			if (exist(handlerName)) {
+				continue;
+			}
+			createHandler(handlerName);
+		}
+	}
+
+	private void retrieveHandlerAttrs(XamlElement element, List<XamlAttribute> handlers) {
+		EList<String> attributeNames = element.attributeNames();
+		for (String attrName : attributeNames) {
+			if (attrName.endsWith(IEventConstants.SUFFIX)) {
+				XamlAttribute attribute = element.getAttribute(attrName);
+				if (attribute != null && attribute.getValue() != null) {
+					handlers.add(attribute);
+				}
+			}
+		}
+		for (XamlElement child : element.getChildNodes()) {
+			retrieveHandlerAttrs(child, handlers);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/menus/BindingsMenuManager.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/menus/BindingsMenuManager.java
new file mode 100755
index 0000000..57d6636
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/menus/BindingsMenuManager.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.menus;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.tools.ui.designer.databinding.Observable;
+import org.eclipse.xwt.tools.ui.designer.databinding.ObservableUtil;
+import org.eclipse.xwt.tools.ui.designer.databinding.Property;
+import org.eclipse.xwt.tools.ui.designer.editor.actions.CreateBindingAction;
+import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
+import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class BindingsMenuManager extends MenuManager {
+
+	private EditPart editPart;
+
+	public BindingsMenuManager(EditPart editPart) {
+		super("Bindings");
+		this.editPart = editPart;
+		if (editPart != null) {
+			createMenus(this);
+		}
+	}
+
+	private void createMenus(MenuManager parent) {
+		if (!(editPart instanceof WidgetEditPart)) {
+			return;
+		}
+		Widget observe = ((WidgetEditPart) editPart).getWidget();
+		if (observe == null || observe.isDisposed()) {
+			return;
+		}
+		Observable observable = ObservableUtil.getObservable(observe);
+		Property[] properties = observable.getProperties();
+		for (Property property : properties) {
+			Image image = ImageShop.getImageForType(property.getType());
+			parent.add(new CreateBindingAction(editPart, observe, property.getName(), image));
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/menus/EventMenuManager.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/menus/EventMenuManager.java
new file mode 100755
index 0000000..b4c76c3
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/menus/EventMenuManager.java
@@ -0,0 +1,285 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.menus;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+
+import org.eclipse.xwt.IEventConstants;
+import org.eclipse.xwt.javabean.metadata.BeanEvent;
+import org.eclipse.xwt.metadata.IEvent;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.gef.EditPart;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
+import org.eclipse.xwt.tools.ui.designer.editor.actions.AddEventHandlerAction;
+import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+public class EventMenuManager extends MenuManager {
+	private EditPart editpart;
+	private XWTDesigner designer;
+
+	static Map<String, List<String>> createEventMap() {
+		Map<String, List<String>> eventsMap = new HashMap<String, List<String>>();
+		
+		ArrayList<String> events = new ArrayList<String>();
+		events.add("Active");
+		events.add("Close");
+		events.add("Deactive");
+		events.add("Deiconify");
+		events.add("Iconify");
+		eventsMap.put("shell", events);
+
+		events = new ArrayList<String>();
+		events.add("Move");
+		events.add("Resize");
+		eventsMap.put("control", events);
+
+		events = new ArrayList<String>();
+		events.add("Collapse");
+		events.add("Expand");
+		eventsMap.put("tree", events);
+
+		events = new ArrayList<String>();
+		events.add("Collapse");
+		events.add("Expand");
+		eventsMap.put("item", events);
+
+		events = new ArrayList<String>();
+		events.add("Selection");
+		events.add("DefaultSelection");
+		eventsMap.put("selection", events);
+
+		events = new ArrayList<String>();
+		events.add("FocusIn");
+		events.add("FocusOut");
+		eventsMap.put("focus", events);
+
+		events = new ArrayList<String>();
+		events.add("HardKeyUp");
+		events.add("HardKeyDown");
+		eventsMap.put("hardKey", events);
+
+		events = new ArrayList<String>();
+		events.add("KeyUp");
+		events.add("KeyDown");
+		eventsMap.put("key", events);
+
+		events = new ArrayList<String>();
+		events.add("Traverse");
+		eventsMap.put("traverse", events);
+
+		events = new ArrayList<String>();
+		events.add("MouseDoubleClick");
+		events.add("MouseUp");
+		events.add("MouseDown");
+		eventsMap.put("mouse", events);
+
+		events = new ArrayList<String>();
+		events.add("MouseMove");
+		eventsMap.put("mouseMove", events);
+
+		events = new ArrayList<String>();
+		events.add("MouseWheel");
+		eventsMap.put("mouseWheel", events);
+
+		events = new ArrayList<String>();
+		events.add("MouseEnter");
+		events.add("MouseEit");
+		events.add("MouseHover");
+		eventsMap.put("mouseTrack", events);
+
+		events = new ArrayList<String>();
+		events.add("Show");
+		events.add("Hide");
+		eventsMap.put("menu", events);
+
+		events = new ArrayList<String>();
+		events.add("EraseItem");
+		events.add("MeasureItem");
+		events.add("PaintItem");
+		eventsMap.put("item", events);
+
+		events = new ArrayList<String>();
+		events.add("Arm");
+		eventsMap.put("arm", events);
+
+		events = new ArrayList<String>();
+		events.add("Dispose");
+		eventsMap.put("dispose", events);
+
+		events = new ArrayList<String>();
+		events.add("Help");
+		eventsMap.put("help", events);
+
+		events = new ArrayList<String>();
+		events.add("Paint");
+		eventsMap.put("paint", events);
+
+		events = new ArrayList<String>();
+		events.add("Settings");
+		eventsMap.put("settings", events);
+
+		events = new ArrayList<String>();
+		events.add("Verify");
+		eventsMap.put("verify", events);
+
+		events = new ArrayList<String>();
+		events.add("Modify");
+		eventsMap.put("modify", events);
+
+		events = new ArrayList<String>();
+		events.add("DragDetect");
+		eventsMap.put("dragDetect", events);
+
+		events = new ArrayList<String>();
+		events.add("MenuDetect");
+		eventsMap.put("menuDetect", events);
+		
+		return eventsMap;
+	}
+	
+	public EventMenuManager(EditPart editpart, XWTDesigner designer) {
+		super("Add event handler");
+		this.editpart = editpart;
+		this.designer = designer;
+		createMenus(this);
+	}
+
+	protected void updateMap(Map<String, List<String>> eventsMap, Collection<String> existingEvents) {
+		Set<Entry<String, List<String>>> entrySet = eventsMap.entrySet();
+		for (Entry<String, List<String>> entry : entrySet) {
+			List<String> value = entry.getValue();
+			for (String string : value.toArray(new String[value.size()])) {
+				String eventKey = string.toLowerCase();
+				if (existingEvents.contains(eventKey)) {
+					value.remove(string);
+				}
+			}
+		}
+	}
+
+	/**
+	 * @param editpart
+	 * @param editor
+	 */
+	private void createMenus(MenuManager parent) {
+		Map<String, List<String>> eventsMap = createEventMap();
+	
+		List<String> eventNames = new ArrayList<String>();
+		IEvent[] beanEvents = getBeanEvents(editpart);
+		if (beanEvents.length != 0) {
+			for (IEvent event : beanEvents) {
+				String name = event.getName().trim();
+				if (eventsMap.get(name) != null) {
+					eventNames.add(name);
+				} else {
+					System.err.println(name + " Not Defined...");
+				}
+			}
+			
+			Collection<String> existingEvents = getEventKeys(editpart);
+			// filter existing events
+			updateMap(eventsMap, existingEvents);
+			// Remove empty entry
+			for (Object key : eventsMap.keySet().toArray()) {
+				List<String> events = eventsMap.get(key);
+				if (events.isEmpty()) {
+					eventsMap.remove(key);
+				}
+			}
+		}
+		
+		Collections.sort(eventNames);
+
+		for (String type : eventNames) {
+			ImageDescriptor image = ImageShop.getImageDescriptor(ImageShop.IMG_EVENT);
+			MenuManager menu = new MenuManager(type, image, null);
+			List<String> events = eventsMap.get(type);
+			if (events != null) {
+				for (String event : events) {
+					menu.add(new AddEventHandlerAction(editpart, designer, event));
+				}
+				parent.add(menu);
+			}
+		}
+	}
+
+	private IEvent[] getBeanEvents(EditPart editpart) {
+		if (editpart == null) {
+			return new IEvent[0];
+		}
+		Object model = editpart.getModel();
+		if (model instanceof XamlNode) {
+			IMetaclass metaclass = XWTUtility.getMetaclass((XamlNode) model);
+			if (metaclass != null) {
+				IEvent[] events = metaclass.getEvents();
+				List<IEvent> result = new ArrayList<IEvent>();
+				for (IEvent event : events) {
+					if (event instanceof BeanEvent) {
+						result.add(event);
+					}
+				}
+				return result.toArray(new IEvent[result.size()]);
+			}
+		}
+		return new IEvent[0];
+	}
+	
+	private Collection<String> getEventKeys(EditPart editpart) {
+		if (editpart == null) {
+			return Collections.EMPTY_LIST;
+		}
+		Object model = editpart.getModel();
+		if (model instanceof XamlNode) {
+			XamlNode xamlNode = (XamlNode) model;
+			IMetaclass metaclass = XWTUtility.getMetaclass(xamlNode);
+			if (metaclass != null) {
+				IEvent[] events = metaclass.getEvents();
+				HashSet<String> result = new HashSet<String>();
+				for (IEvent event : events) {
+					String name = event.getName();
+					if (hasEvent(xamlNode, name)) {
+						result.add(name.toLowerCase());
+					}
+				}
+				return result;
+			}
+		}
+		return Collections.EMPTY_LIST;
+	}
+
+	protected boolean hasEvent(XamlNode xamlNode, String name) {
+		String eventName = name + IEventConstants.SUFFIX;
+		EList<XamlAttribute> attributes = xamlNode.getAttributes();
+		for (XamlAttribute attribute : attributes) {
+			String attributeName = attribute.getName();
+			if (eventName.equalsIgnoreCase(attributeName)) {
+				return true;
+			}
+		}
+		return false;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/menus/LayoutMenuManager.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/menus/LayoutMenuManager.java
new file mode 100755
index 0000000..ad7fef6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/menus/LayoutMenuManager.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.menus;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.xwt.tools.ui.designer.editor.actions.ChangeLayoutAction;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
+
+/**
+ * @author rui.ban rui.ban@soyatec.com
+ */
+public class LayoutMenuManager extends MenuManager {
+
+	private EditPart editPart;
+
+	public LayoutMenuManager(EditPart editPart, String text) {
+		super(text);
+		this.editPart = editPart;
+		if (LayoutsHelper.canSetLayout(editPart)) {
+			initMenus();
+		}
+	}
+
+	private void initMenus() {
+		for (LayoutType layout : LayoutsHelper.layoutsList) {
+			add(new ChangeLayoutAction(editPart, layout));
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/BraceHandler.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/BraceHandler.java
new file mode 100755
index 0000000..3e7629c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/BraceHandler.java
@@ -0,0 +1,315 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.model;
+
+import java.util.NoSuchElementException;
+import java.util.StringTokenizer;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.internal.xml.Attribute;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * Parse the XAML extension Markup: {StaticResource test} {StaticResource RessourceKey=test} {DynamicResource {x:Static SystemColors.ControlBrushKey}}
+ * 
+ * @author jliu jin.liu@soyatec.com
+ */
+public class BraceHandler {
+	private XamlElement root;
+	private XamlNode current;
+	private XamlNode forParse;
+	private XamlDocument document;
+
+	public BraceHandler(XamlDocument document) {
+		this.document = document;
+	}
+
+	public XamlDocument getDocument() {
+		return document;
+	}
+
+	public XamlNode parse(XamlNode element, String text) {
+		this.forParse = element;
+		if (root != null) {
+			BraceHandler parser = new BraceHandler(document);
+			return parser.parse(element, text);
+		}
+		current = element;
+
+		StringTokenizer stringTokenizer = new StringTokenizer(text, "{}", true);
+		String previous = null;
+		String nextPrevious = null;
+		while (stringTokenizer.hasMoreTokens()) {
+			String token = stringTokenizer.nextToken();
+
+			if (previous != null) {
+				if (previous.equals("{")) {
+					if (token.equals("}")) {
+						// escape sequence
+						if (stringTokenizer.hasMoreTokens()) {
+							handleBlock(stringTokenizer.nextToken(" \t\n\r\f"), false);
+						}
+					} else {
+						startBlock();
+					}
+				} else if (previous.equals("}")) {
+					endBlock();
+				} else {
+					StringBuffer block = new StringBuffer(previous);
+					if (token.equals("{")) {
+						int level = 1;
+						block.append(token);
+						while (stringTokenizer.hasMoreTokens() && level >= 0) {
+							String value = stringTokenizer.nextToken();
+							if (value.equals("{")) {
+								level++;
+							} else if (value.equals("}")) {
+								level--;
+							}
+							if (level >= 0) {
+								block.append(value);
+							}
+						}
+					}
+					handleBlock(block.toString(),
+							(nextPrevious == null || !nextPrevious.equals("}")));
+				}
+			}
+			nextPrevious = previous;
+			previous = token;
+		}
+		XamlNode result = root;
+		root = null;
+		current = null;
+		return result;
+	}
+
+	protected void startBlock() {
+	}
+
+	protected void endBlock() {
+		if (current != null) {
+			EObject container = current.eContainer();
+			current = (XamlNode) container.eContainer();
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.xwt.tools.ui.designer.core.editor.builder.BraceHandler#expendNamespaces(org.eclipse.xwt.tools.ui.xaml.XamlNode, java.lang.String)
+	 */
+	protected String expendNamespaces(XamlNode element, String value) {
+		if (value.indexOf(':') == -1) {
+			return value;
+		}
+		EMap<String, String> declaredNamespaces = getDocument().getDeclaredNamespaces();
+		int length = IConstants.XAML_CLR_NAMESPACE_PROTO.length();
+		for (String prefix : declaredNamespaces.keySet()) {
+			String namespace = declaredNamespaces.get(prefix);
+			if (namespace.startsWith(IConstants.XAML_CLR_NAMESPACE_PROTO)) {
+				String packageName = namespace.substring(length);
+				value = value.replace(prefix + ":", packageName + '.');
+			}
+		}
+		return value;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.xwt.tools.ui.designer.core.editor.builder.BraceHandler#handleContent(org.eclipse.xwt.tools.ui.xaml.XamlNode, java.lang.String)
+	 */
+	protected void handleContent(XamlNode element, String text) {
+		if (text.startsWith("{") && text.endsWith("}")) {
+			parse(element, text);
+			return;
+		} else {
+			// handle the case: <x:Array Type="ns:Type" >
+			if (IConstants.XAML_X_TYPE.equals(element.getName()) || IConstants.XAML_X_STATIC.equals(element.getName())) {
+				int index = text.indexOf(':');
+				if (index != -1) {
+					String ns = text.substring(0, index);
+					String content = text.substring(index + 1);
+					String namespace = getDocument().getDeclaredNamespace(ns);
+					if (namespace != null) {
+						XamlElement childElement = element.getChild(content, namespace);
+						if (childElement == null) {
+							childElement = XamlFactory.eINSTANCE.createElement(content, namespace);
+							childElement.getChildNodes().add(childElement);
+						}
+						return;
+					}
+				}
+			}
+		}
+		if (element instanceof Attribute && IConstants.XWT_X_NAMESPACE.equals(element.getNamespace())
+				&& IConstants.XAML_STYLE.equalsIgnoreCase(element.getName())) {
+			// handle the expansion of x:Style = "(j:class).variable"
+			text = expendNamespaces(element, text);
+		}
+		element.setValue(text);
+	}
+
+	protected XamlElement createElement(String token) {
+		int index = token.indexOf(':');
+		String namespace = null;
+		String name = token;
+		if (index != -1) {
+			String prefix = token.substring(0, index);
+			name = token.substring(index + 1);
+			namespace = document.getDeclaredNamespace(prefix);
+		}
+		if (namespace == null) {
+			namespace = document.getDeclaredNamespace(null);
+		}
+		XamlElement element = null;
+		if (current != null) {
+			element = current.getChild(name, namespace);
+		}
+		if (element == null) {
+			element = XamlFactory.eINSTANCE.createElement(name, namespace);
+			element.setId(XWTModelBuilder.generateID(name));
+		}
+		if (current != null && current != forParse) {
+			// There's no need to add the children for given parent at the beginning of parser.
+			current.getChildNodes().add(element);
+		} else {
+			if (root == null) {
+				root = element;
+			}
+		}
+		current = element;
+		return element;
+	}
+
+	private XamlAttribute createAttribute(XamlNode parent, String name, String namespace) {
+		XamlAttribute attribute = parent.getAttribute(name, namespace);
+		if (attribute == null) {
+			attribute = XamlFactory.eINSTANCE.createAttribute(name, namespace);
+			attribute.setId(XWTModelBuilder.generateID(name));
+		}
+		return attribute;
+	}
+
+	protected void handleBlock(String content, boolean newElement) {
+		String rootPattern = " \t\n\r\f=,";
+		StringTokenizer tokenizer = new StringTokenizer(content, rootPattern, true);
+		String attributeName = null;
+		String attributeValue = null;
+		boolean equals = false;
+		XamlElement element = null;
+		if (!newElement && current instanceof XamlElement) {
+			element = (XamlElement) current;
+		}
+
+		boolean skip = false;
+		String token = null;
+		while (skip || tokenizer.hasMoreTokens()) {
+			if (!skip) {
+				token = tokenizer.nextToken(rootPattern).trim();
+			}
+			skip = false;
+			if (token.length() == 0) {
+				continue;
+			}
+			if (element == null) {
+				element = createElement(token);
+			} else {
+				if (token.equals("=")) {
+					equals = true;
+					if ("xpath".equalsIgnoreCase(attributeName)) {
+						attributeValue = tokenizer.nextToken(",");
+					}
+					continue;
+				}
+				if (token.equals(",")) {
+					if (attributeName != null) {
+						if (attributeValue != null) {
+							XamlAttribute attribute = createAttribute(element, attributeName, element.getNamespace());
+							if ("path".equalsIgnoreCase(attributeName) && "Binding".equalsIgnoreCase(element.getName())) {
+								attributeValue = expendNamespaces(element, attributeValue);
+							}
+							handleContent(attribute, attributeValue);
+							if (!element.getAttributes().contains(attribute)) {
+								element.getAttributes().add(attribute);
+							}
+							current = attribute;
+						} else {
+							element.setValue(attributeName);
+						}
+						attributeName = null;
+						attributeValue = null;
+						equals = false;
+					}
+				} else {
+					if (attributeName == null) {
+						attributeName = token;
+					} else {
+						// String block = token;
+						StringBuffer block = new StringBuffer(token);
+						if (token.startsWith("{")) {
+							int level = 1;
+							while (tokenizer.hasMoreTokens() && level > 0) {
+								String value = tokenizer.nextToken("{}");
+								if (value.equals("{")) {
+									level++;
+								} else if (value.equals("}")) {
+									level--;
+								}
+								block.append(value);
+							}
+						}
+						attributeValue = block.toString();
+
+						try {
+							token = tokenizer.nextToken(rootPattern).trim();
+							skip = true;
+							continue;
+						} catch (NoSuchElementException e) {
+						}
+					}
+				}
+			}
+			skip = false;
+		}
+
+		if (equals) {
+			XamlAttribute attribute = createAttribute(element, attributeName, element.getNamespace());
+			if ("path".equalsIgnoreCase(attributeName) && "Binding".equalsIgnoreCase(element.getName())) {
+				attributeValue = expendNamespaces(element, attributeValue);
+			}
+			if (attributeValue != null) {
+				handleContent(attribute, attributeValue);
+			} else {
+				current = attribute;
+			}
+			if (!element.getAttributes().contains(attribute)) {
+				element.getAttributes().add(attribute);
+			}
+		} else if (attributeName != null) {
+			int index = attributeName.indexOf(":");
+			if (index != -1) {
+				element = createElement(attributeName);
+				current = (XamlNode) current.eContainer();
+			} else {
+				current.setValue(attributeName);
+			}
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/BuilderContext.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/BuilderContext.java
new file mode 100755
index 0000000..e8bf8b5
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/BuilderContext.java
@@ -0,0 +1,289 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.model;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+import org.w3c.dom.Attr;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.Text;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class BuilderContext {
+
+	private static final String CHARACTERS = "abcdefghigklmnopqrstuvwxyz";
+
+	private final Map<XamlNode, IDOMNode> model2text = new HashMap<XamlNode, IDOMNode>(
+			1);
+	private final Map<IDOMNode, XamlNode> text2model = new HashMap<IDOMNode, XamlNode>(
+			1);
+
+	private XWTModelBuilder modelBuilder;
+	private IDOMDocument textRoot;
+	private XamlDocument modelRoot;
+	private Synchronizer synchronizer;
+
+	private Adapter modelAdapter;
+	private INodeAdapter nodeAdapter;
+
+	public BuilderContext(XWTModelBuilder modelBuilder,
+			IDOMDocument textDocument, XamlDocument modelDocument,
+			Synchronizer synchronizer) {
+		Assert.isNotNull(textDocument);
+		Assert.isNotNull(modelDocument);
+		this.modelBuilder = modelBuilder;
+		this.textRoot = textDocument;
+		this.modelRoot = modelDocument;
+		this.synchronizer = synchronizer;
+	}
+
+	public XWTModelBuilder getModelBuilder() {
+		return modelBuilder;
+	}
+
+	public IDOMDocument getTextRoot() {
+		return textRoot;
+	}
+
+	public XamlDocument getModelRoot() {
+		return modelRoot;
+	}
+
+	public Synchronizer getSynchronizer() {
+		if (synchronizer == null) {
+			synchronizer = new Synchronizer();
+		}
+		return synchronizer;
+	}
+
+	public void map(XamlNode model, IDOMNode textNode) {
+		model2text.put(model, textNode);
+		text2model.put(textNode, model);
+		if (model != null && modelAdapter != null
+				&& !model.eAdapters().contains(modelAdapter)) {
+			model.eAdapters().add(modelAdapter);
+		}
+		if (textNode != null && nodeAdapter != null
+				&& !textNode.getAdapters().contains(nodeAdapter)) {
+			textNode.addAdapter(nodeAdapter);
+		}
+	}
+
+	public void remove(Object obj) {
+		IDOMNode removedText = model2text.remove(obj);
+		if (removedText != null) {
+			text2model.remove(removedText);
+			if (nodeAdapter != null) {
+				removedText.removeAdapter(nodeAdapter);
+			}
+		}
+		XamlNode removedModel = text2model.remove(obj);
+		if (removedModel != null) {
+			model2text.remove(removedModel);
+			if (modelAdapter != null) {
+				removedModel.eAdapters().remove(modelAdapter);
+			}
+		}
+	}
+
+	public void clear() {
+		model2text.clear();
+		text2model.clear();
+	}
+
+	public XamlNode getModel(Object textNode) {
+		return text2model.get(textNode);
+	}
+
+	public IDOMNode getTextNode(Object model) {
+		return model2text.get(model);
+	}
+
+	public List<IDOMElement> getChildNodes(IDOMNode parent) {
+		if (parent == null) {
+			return Collections.emptyList();
+		}
+		List<IDOMElement> childNodes = new ArrayList<IDOMElement>();
+		Node child = parent.getFirstChild();
+		while (child != null) {
+			if (child instanceof IDOMElement
+					&& child.getLocalName().indexOf(".") == -1) {
+				childNodes.add((IDOMElement) child);
+			}
+			child = child.getNextSibling();
+		}
+		return childNodes;
+	}
+
+	public List<Text> getContentNodes(IDOMNode node) {
+		NodeList childNodes = node.getChildNodes();
+		int length = childNodes.getLength();
+		if (length == 0) {
+			return Collections.emptyList();
+		}
+		List<Text> contentTexts = new ArrayList<Text>();
+		for (int i = 0; i < length; i++) {
+			Node item = childNodes.item(i);
+			if (item.getNodeType() == Node.TEXT_NODE) {
+				contentTexts.add((Text) item);
+			}
+		}
+		return contentTexts;
+	}
+
+	/**
+	 * Return content of a Node, "<j:String>hello world</j:String>"
+	 */
+	public String getContent(IDOMNode parent) {
+		List<Text> textNodes = getContentNodes(parent);
+		if (textNodes.isEmpty()) {
+			return null;
+		}
+		StringBuilder content = new StringBuilder();
+		for (Text text : textNodes) {
+			String value = text.getNodeValue();
+			if (value == null) {
+				continue;
+			}
+			value = filter(value.trim());
+			if (value.length() != 0) {
+				content.append(value);
+			}
+		}
+		return content.length() > 0 ? content.toString() : null;
+	}
+
+	public String filter(String value) {
+		value = value.replace("\n", "");
+		value = value.replace("\t", "");
+		value = value.replace("\r", "");
+		return value;
+	}
+
+	public List<IDOMNode> getAttributes(IDOMNode parent) {
+		if (parent == null) {
+			return Collections.emptyList();
+		}
+		List<IDOMNode> attributes = new ArrayList<IDOMNode>();
+		NamedNodeMap attrMap = parent.getAttributes();
+		if (attrMap != null) {
+			int length = attrMap.getLength();
+			for (int i = 0; i < length; i++) {
+				IDOMAttr item = (IDOMAttr) attrMap.item(i);
+				String name = item.getLocalName();
+				String prefix = item.getPrefix();
+				if (name.indexOf(".") != -1) {
+					name = name.substring(name.indexOf(".") + 1);
+					prefix = null;
+				}
+				if ("xmlns".equals(name)) {
+					continue;
+				}
+				if ("xmlns".equals(prefix)) {
+					continue;
+				}
+				attributes.add(item);
+			}
+		}
+		NodeList children = parent.getChildNodes();
+		if (children != null) {
+			for (int i = 0; i < children.getLength(); i++) {
+				Node item = children.item(i);
+				String localName = item.getLocalName();
+				if (item instanceof IDOMElement && localName.indexOf(".") != -1) {
+					attributes.add((IDOMElement) item);
+				}
+			}
+		}
+		return attributes;
+	}
+
+	public boolean contains(Node parent, Attr attr) {
+		NamedNodeMap attributes = parent.getAttributes();
+		for (int i = attributes.getLength() - 1; i >= 0; i--) {
+			if (attr == attributes.item(i)) {
+				return true;
+			}
+		}
+
+		return false;
+	}
+
+	protected String getPrefix(String namespace) {
+		EMap<String, String> declaredNamespaces = modelRoot
+				.getDeclaredNamespaces();
+		Set<String> existings = declaredNamespaces.keySet();
+		for (String p : existings) {
+			if (namespace.equals(declaredNamespaces.get(p))) {
+				return p;
+			}
+		}
+		char[] c = CHARACTERS.toCharArray();
+		for (char d : c) {
+			String prefix = Character.toString(d);
+			if (!existings.contains(prefix)) {
+				return prefix;
+			}
+		}
+		return "j";
+	}
+
+	/**
+	 * @param modelAdapter
+	 *            the modelAdapter to set
+	 */
+	public void setModelAdapter(Adapter modelAdapter) {
+		this.modelAdapter = modelAdapter;
+	}
+
+	/**
+	 * @return the modelAdapter
+	 */
+	public Adapter getModelAdapter() {
+		return modelAdapter;
+	}
+
+	/**
+	 * @param nodeAdapter
+	 *            the nodeAdapter to set
+	 */
+	public void setNodeAdapter(INodeAdapter nodeAdapter) {
+		this.nodeAdapter = nodeAdapter;
+	}
+
+	/**
+	 * @return the nodeAdapter
+	 */
+	public INodeAdapter getNodeAdapter() {
+		return nodeAdapter;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/ModelAdapter.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/ModelAdapter.java
new file mode 100755
index 0000000..a33a63c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/ModelAdapter.java
@@ -0,0 +1,417 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.ISchedulingRule;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.xwt.tools.ui.designer.editor.model.Synchronizer.EventType;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.Text;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public class ModelAdapter extends EContentAdapter {
+
+	private BuilderContext fContext;
+	private ReverseJob reverseJob;
+
+	public ModelAdapter(BuilderContext mapper) {
+		this.fContext = mapper;
+	}
+
+	public void notifyChanged(Notification notification) {
+		super.notifyChanged(notification);
+		if (notification.isTouch()) {
+			return;
+		}
+		Synchronizer synch = fContext.getSynchronizer();
+		// if (EventType.LoadingEvent != synch.getEventType()) {
+		XWTModelBuilder modelBuilder = fContext.getModelBuilder();
+		modelBuilder.dispatchEvent(notification);
+		// }
+		if (synch.isFree()) {
+			reverse(notification);
+		}
+	}
+
+	private void reverse(Notification msg) {
+		if (reverseJob == null) {
+			reverseJob = new ReverseJob();
+		}
+		reverseJob.reverse(msg);
+	}
+
+	private void tryToUpdateText(Notification msg) {
+		Synchronizer synch = fContext.getSynchronizer();
+		synchronized (synch) {
+			synch.setEventType(EventType.ModelEvent);
+			Object notifier = msg.getNotifier();
+			Object oldValue = msg.getOldValue();
+			Object newValue = msg.getNewValue();
+			if (oldValue != null && oldValue.equals(newValue)) {
+				return;
+			}
+
+			IDOMNode textNode = fContext.getTextNode(notifier);
+			IDOMNode oldNode = fContext.getTextNode(oldValue);
+			IDOMNode newNode = fContext.getTextNode(newValue);
+
+			int eventType = msg.getEventType();
+			switch (eventType) {
+			case Notification.ADD: {
+				if (textNode == null && notifier instanceof EObject) {
+					EObject eContainer = ((EObject) notifier).eContainer();
+					IDOMNode superParent = fContext.getTextNode(eContainer);
+					if (superParent != null) {
+						if (notifier instanceof XamlAttribute) {
+							reverseAttr(superParent, (XamlAttribute) notifier);
+						} else if (notifier instanceof XamlElement) {
+							reverseNode(superParent, (XamlElement) newValue);
+						}
+					}
+					textNode = fContext.getTextNode(notifier);
+				}
+				if (textNode == null
+						|| (!(textNode instanceof IDOMElement) && !(textNode instanceof IDOMAttr))) {
+					break;
+				}
+				if (notifier instanceof XamlAttribute
+						&& textNode instanceof IDOMAttr
+						&& newValue instanceof XamlElement) {
+					validatePrefix((XamlElement) newValue);
+					String flatValue = ((XamlElement) newValue).getFlatValue();
+					if (flatValue == null) {
+						flatValue = "";
+					}
+					((IDOMAttr) textNode).setValue("{" + flatValue + "}");
+				} else if (newValue instanceof XamlAttribute) {
+					reverseAttr(textNode, (XamlAttribute) newValue);
+				} else if (newValue instanceof XamlElement) {
+					reverseNode(textNode, (XamlElement) newValue);
+				}
+				break;
+			}
+			case Notification.ADD_MANY: {
+				System.err.println("ADD_MANY");
+				break;
+			}
+			case Notification.MOVE: {
+				int oldPos = ((Integer) oldValue);
+				int newPos = msg.getPosition();
+				IDOMNode parentNode = textNode;
+				IDOMNode moveable = newNode;
+				if (parentNode == null || moveable == null
+						|| parentNode != moveable.getParentNode()) {
+					break;
+				}
+				List<IDOMElement> eles = fContext.getChildNodes(parentNode);
+				int offset = newPos - oldPos;
+				int oldIndex = eles.indexOf(moveable);
+				int newIndex = offset > 0 ? oldIndex + offset + 1 : oldIndex
+						+ offset;
+				Node nextSibling = moveable.getNextSibling();
+				parentNode.removeChild(moveable);
+				if (nextSibling instanceof Text) {
+					// String nodeValue = ((Text)
+					// nextSibling).getNodeValue();
+					// if ((nodeValue == null || nodeValue.equals(""))) {
+					parentNode.removeChild(nextSibling);
+					// }
+				}
+				if (newIndex >= 0 && newIndex <= eles.size() - 1) {
+					IDOMElement insert = eles.get(newIndex);
+					parentNode.insertBefore(moveable, insert);
+				} else {
+					parentNode.appendChild(moveable);
+				}
+				break;
+			}
+			case Notification.REMOVE: {
+				if (textNode != null) {
+					if (oldNode instanceof IDOMElement) {
+						NodeList nodelist = textNode.getChildNodes();
+						// before remove, we must check if there is the
+						// oldNode
+						// in the textNode.Because the oldNode may have be
+						// deleted.
+						for (int i = 0; i < nodelist.getLength(); i++) {
+							if (nodelist.item(i) == oldNode) {
+								textNode.removeChild(oldNode);
+							}
+						}
+					} else if (textNode instanceof IDOMElement
+							&& oldNode instanceof IDOMAttr) {
+						if (fContext.contains(textNode, (Attr) oldNode)) {
+							((IDOMElement) textNode)
+									.removeAttributeNode((Attr) oldNode);
+						}
+					}
+					fContext.remove(oldNode);
+				}
+				break;
+			}
+			case Notification.REMOVE_MANY: {
+				System.err.println("REMOVE_MANY");
+				break;
+			}
+			case Notification.SET:
+			case Notification.UNSET:
+				if (textNode != null) {
+					if (textNode instanceof Attr) {
+						String value = newValue == null ? "" : newValue
+								.toString();
+						Attr attr = (Attr) textNode;
+						if (!value.equals(attr.getNodeValue())) {
+							attr.setNodeValue(value);
+						}
+					} else if (newValue != null && oldValue != null
+							&& oldValue.equals(fContext.getContent(textNode))) {
+						reverseContent(textNode, newValue.toString());
+					}
+				}
+				break;
+			}
+			synch.setFree();
+		}
+	}
+
+	protected void reverseAttr(IDOMNode parent, XamlAttribute model) {
+		IDOMDocument textDocument = fContext.getTextRoot();
+		validatePrefix(model);
+		String localName = parent.getLocalName();
+		String value = model.getValue();
+		String name = model.getName();
+		if (value == null && model.isUseFlatValue()) {
+			String flatValue = model.getFlatValue();
+			if (flatValue != null && !"".equals(flatValue)) {
+				value = "{" + flatValue + "}";
+			}
+		}
+		if (value != null && parent instanceof IDOMElement) {
+			IDOMAttr attr = (IDOMAttr) textDocument.createAttribute(name);
+			attr.setNodeValue(value);
+			attr.setPrefix(model.getPrefix());
+			((IDOMElement) parent).setAttributeNode(attr);
+			fContext.map(model, attr);
+		} else {
+			String childName = localName + "." + name;
+			while (localName != null && localName.indexOf(".") != -1) {
+				/*
+				 * If the parent like: "TableViewer.table", we should add the
+				 * new attribute("layoutData") to TableViewer element directly,
+				 * the new element should be "TableViewer.table.layoutData" and
+				 * its parent should be "TableViewer" but not
+				 * "TableViewer.table".
+				 */
+				parent = (IDOMElement) parent.getParentNode();
+				localName = parent.getLocalName();
+			}
+			EList<XamlElement> childNodes = model.getChildNodes();
+			EList<XamlAttribute> attributes = model.getAttributes();
+			if (!attributes.isEmpty()) {
+				for (XamlAttribute attr : attributes) {
+					if (attr.getValue() != null) {
+						IDOMElement node = (IDOMElement) textDocument
+								.createElement(childName);
+						reverseAttr(node, attr);
+						parent.appendChild(node);
+						fContext.map(model, node);
+					} else {
+						IDOMElement node = (IDOMElement) textDocument
+								.createElement(childName);
+						EList<XamlElement> childNodes2 = attr.getChildNodes();
+						for (XamlElement child : childNodes2) {
+							reverseNode(node, child);
+						}
+						parent.appendChild(node);
+						fContext.map(model, node);
+					}
+				}
+			} else if (!childNodes.isEmpty()) {
+				IDOMElement node = (IDOMElement) textDocument
+						.createElement(childName);
+				for (XamlElement child : childNodes) {
+					reverseNode(node, child);
+				}
+				parent.appendChild(node);
+				fContext.map(model, node);
+			} else {
+				IDOMElement node = (IDOMElement) textDocument
+						.createElement(childName);
+				parent.appendChild(node);
+				fContext.map(model, node);
+			}
+		}
+	}
+
+	private String validatePrefix(XamlNode node) {
+		IDOMDocument textDocument = fContext.getTextRoot();
+		XamlDocument modelRoot = fContext.getModelRoot();
+		String prefix = node.getPrefix();
+		String namespace = node.getNamespace();
+		if (prefix == null && namespace != null) {
+			prefix = fContext.getPrefix(namespace);
+		}
+		if ((prefix != null && !prefix.equals(node.getPrefix()))
+				|| (prefix == null && node.getPrefix() != null)) {
+			node.setPrefix(prefix);
+		}
+		if (prefix != null) {
+			Element root = textDocument.getDocumentElement();
+			Attr prefixNode = root.getAttributeNode(prefix);
+			if (prefixNode == null) {
+				root.setAttribute("xmlns:" + prefix, namespace);
+				modelRoot.addDeclaredNamespace(prefix, namespace);
+			}
+		}
+		for (XamlAttribute attr : node.getAttributes()) {
+			validatePrefix(attr);
+		}
+		for (XamlElement child : node.getChildNodes()) {
+			validatePrefix(child);
+		}
+		return prefix;
+	}
+
+	protected void reverseNode(IDOMNode parent, XamlElement element) {
+		String name = element.getName();
+		IDOMDocument textDocument = fContext.getTextRoot();
+		IDOMElement node = (IDOMElement) textDocument.createElement(name);
+		EList<XamlAttribute> attributes = element.getAttributes();
+		EList<XamlElement> childnodes = element.getChildNodes();
+		for (XamlAttribute attribute : attributes) {
+			reverseAttr(node, attribute);
+		}
+		for (XamlElement child : childnodes) {
+			reverseNode(node, child);
+		}
+		String prefix = validatePrefix(element);
+		if (prefix != null) {
+			node.setPrefix(prefix);
+		}
+		XamlNode next = null;
+		XamlNode container = (XamlNode) element.eContainer();
+		if (container != null) {
+			int i = container.getChildNodes().indexOf(element);
+			try {
+				next = container.getChildNodes().get(i + 1);
+			} catch (Exception e) {
+			}
+		}
+		if (next != null) {
+			IDOMNode nextNode = fContext.getTextNode(next);
+			parent.insertBefore(node, nextNode);
+		} else {
+			parent.appendChild(node);
+		}
+		String value = element.getValue();
+		if (value != null) {
+			reverseContent(node, value);
+		}
+		fContext.map(element, node);
+	}
+
+	protected void reverseContent(IDOMNode node, String value) {
+		String content = fContext.getContent(node);
+		if (value == null && content == null || value != null
+				&& value.equals(content)) {
+			return;
+		}
+		value = value == null ? "" : value;
+		if (content != null) {
+			List<Text> contentNodes = fContext.getContentNodes(node);
+			for (Text text : contentNodes) {
+				String nodeValue = text.getNodeValue();
+				if (nodeValue == null
+						|| fContext.filter(nodeValue).length() == 0) {
+					continue;
+				}
+				text.setData(value);
+			}
+		} else {
+			IDOMDocument textDocument = fContext.getTextRoot();
+			Text textNode = textDocument.createTextNode(value == null ? ""
+					: value);
+			node.appendChild(textNode);
+		}
+	}
+
+	class ReverseJob extends Job {
+		private List<Notification> reverseJobs;
+		private long timestamp = -1;
+
+		public ReverseJob() {
+			super("Reverse");
+			setPriority(SHORT);
+			setSystem(true);
+			ISchedulingRule rule = new ISchedulingRule() {
+				public boolean isConflicting(ISchedulingRule rule) {
+					return getClass() == rule.getClass();
+				}
+
+				public boolean contains(ISchedulingRule rule) {
+					return getClass() == rule.getClass();
+				}
+			};
+			setRule(rule);
+		}
+
+		protected IStatus run(IProgressMonitor monitor) {
+			List<Notification> jobs = new ArrayList<Notification>(reverseJobs);
+			for (Notification event : jobs) {
+				tryToUpdateText(event);
+			}
+			synchronized (reverseJobs) {
+				reverseJobs.removeAll(jobs);
+				if (!reverseJobs.isEmpty()) {
+					schedule(1000);
+				}
+			}
+			timestamp = -1;
+			return Status.OK_STATUS;
+		}
+
+		public void reverse(Notification event) {
+			if (reverseJobs == null) {
+				reverseJobs = new ArrayList<Notification>();
+			}
+			reverseJobs.add(event);
+			if (timestamp == -1) {
+				schedule(1000);
+			}
+			timestamp = System.currentTimeMillis();
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/ModelCacheUtility.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/ModelCacheUtility.java
new file mode 100755
index 0000000..a47ff1c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/ModelCacheUtility.java
@@ -0,0 +1,158 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.model;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+import org.eclipse.xwt.tools.ui.designer.core.DesignerPlugin;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+import org.osgi.framework.Bundle;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class ModelCacheUtility {
+	protected static final IPath VISUAL_EDITOR_MODEL_CACHE_ROOT = DesignerPlugin.VE_CACHE_ROOT_NAME
+			.append("emfmodel"); //$NON-NLS-1$ 
+	private static final Map XML_CACHE_SAVE_OPTIONS;
+	static {
+		// Normally focus on speed not readability
+		XML_CACHE_SAVE_OPTIONS = new HashMap(4);
+		XML_CACHE_SAVE_OPTIONS.put(XMLResource.OPTION_ENCODING, "UTF-8"); //$NON-NLS-1$
+		XML_CACHE_SAVE_OPTIONS.put(XMLResource.OPTION_PROCESS_DANGLING_HREF,
+				XMLResource.OPTION_PROCESS_DANGLING_HREF_RECORD);
+		XML_CACHE_SAVE_OPTIONS.put(XMLResource.OPTION_SAVE_TYPE_INFORMATION,
+				Boolean.TRUE);
+	}
+
+	protected static IPath getEMFModelCacheDestination(IProject p) {
+		DesignerPlugin plugin = DesignerPlugin.getDefault();
+		Bundle bundle = plugin.getBundle();
+		String symbolicName = bundle.getSymbolicName();
+		IPath workingLocation = p.getWorkingLocation(symbolicName);
+		return workingLocation.append(VISUAL_EDITOR_MODEL_CACHE_ROOT);
+	}
+
+	public static IPath getCacheDirectory(IFile f) {
+		// addCacheResourceListener(); // Make sure we are listening.
+
+		IProject p = f.getProject();
+		IPath projectCachePath = getEMFModelCacheDestination(p);
+		File dir = projectCachePath.toFile();
+		if (!dir.exists())
+			if (dir.mkdirs())
+				return projectCachePath;
+			else
+				return null;
+		else
+			return projectCachePath;
+	}
+
+	protected static IPath getCachedPath(IFile f) {
+		IPath savedPath = getCacheDirectory(f).append(
+				f.getProjectRelativePath());
+		return savedPath.removeFileExtension().addFileExtension("xmi"); //$NON-NLS-1$
+	}
+
+	public static URI getCacheURI(IFile f) {
+		return URI.createFileURI(getCachedPath(f).toString());
+	}
+
+	public static XamlDocument doLoadFromCache(IFile input,
+			IProgressMonitor monitor) {
+		if (monitor == null)
+			monitor = new NullProgressMonitor();
+		monitor.subTask("Loading from cache: " + input.getName());
+		if (isValidCache(input)) {
+			monitor.worked(1);
+			try {
+				URI uri = getCacheURI(input);
+				ResourceSet rs = new ResourceSetImpl();
+				Resource resource = rs.getResource(uri, true);
+				return (XamlDocument) resource.getContents().get(0);
+			} catch (Exception e) {
+				removeCache(input);
+			} finally {
+				monitor.worked(1);
+			}
+		}
+		return null;
+	}
+
+	public static void doSaveCache(XamlDocument document, IFile input,
+			IProgressMonitor monitor) {
+		if (monitor == null)
+			monitor = new NullProgressMonitor();
+		monitor.beginTask("Save model to cache", 4);
+		monitor.worked(1);
+		if (document != null) {
+			try {
+				monitor.worked(1);
+				Resource resource = document.eResource();
+				URI cacheURI = getCacheURI(input);
+				if (resource == null) {
+					ResourceSet rs = new ResourceSetImpl();
+					resource = rs.createResource(cacheURI);
+					resource.getContents().add(document);
+				}
+				if (resource.getURI().equals(cacheURI)) {
+					monitor.worked(1);
+					resource.save(XML_CACHE_SAVE_OPTIONS);
+				} else {
+					File f = getCachedPath(input).toFile();
+					monitor.worked(1);
+					monitor.subTask("Save model to cache" + f.getName());
+					FileOutputStream os = new FileOutputStream(f);
+					resource.save(os, XML_CACHE_SAVE_OPTIONS);
+					os.close();
+				}
+			} catch (RuntimeException e) {
+			} catch (IOException e) {
+				removeCache(input);
+			}
+		}
+		monitor.done();
+	}
+
+	public static void removeCache(IFile file) {
+		try {
+			if (file != null) {
+				getCachedPath(file).toFile().delete();
+			}
+		} catch (Exception e) {
+		}
+	}
+
+	public static boolean isValidCache(IFile f) {
+		File dest = getCachedPath(f).toFile();
+		if (/* dest.exists() && */dest.canRead()) {
+			if (dest.lastModified() > f.getLocalTimeStamp())
+				return true;
+		}
+		return false;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/Synchronizer.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/Synchronizer.java
new file mode 100755
index 0000000..d761d16
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/Synchronizer.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.model;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public class Synchronizer {
+	public static enum EventType {
+		Free, LoadingEvent, SourceEvent, ModelEvent
+	}
+
+	private EventType eventType = EventType.Free;
+
+	public void setEventType(EventType eventType) {
+		this.eventType = eventType;
+	}
+
+	public EventType getEventType() {
+		return eventType;
+	}
+
+	public boolean isFree() {
+		return eventType == null || eventType == EventType.Free;
+	}
+
+	public void setFree() {
+		setEventType(EventType.Free);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/TextNotification.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/TextNotification.java
new file mode 100755
index 0000000..d92ce9d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/TextNotification.java
@@ -0,0 +1,127 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.model;
+
+import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public class TextNotification {
+	private INodeNotifier notifier;
+	private int eventType;
+	private Object changedFeature;
+	private Object oldValue;
+	private Object newValue;
+	private int position;
+
+	public TextNotification(INodeNotifier notifier, int eventType,
+			Object changedFeature, Object oldValue, Object newValue, int pos) {
+		this.setNotifier(notifier);
+		this.setEventType(eventType);
+		this.setChangedFeature(changedFeature);
+		this.setOldValue(newValue);
+		this.setNewValue(newValue);
+		this.setPosition(pos);
+	}
+
+	/**
+	 * @param notifier
+	 *            the notifier to set
+	 */
+	public void setNotifier(INodeNotifier notifier) {
+		this.notifier = notifier;
+	}
+
+	/**
+	 * @return the notifier
+	 */
+	public INodeNotifier getNotifier() {
+		return notifier;
+	}
+
+	/**
+	 * @param eventType
+	 *            the eventType to set
+	 */
+	public void setEventType(int eventType) {
+		this.eventType = eventType;
+	}
+
+	/**
+	 * @return the eventType
+	 */
+	public int getEventType() {
+		return eventType;
+	}
+
+	/**
+	 * @param changedFeature
+	 *            the changedFeature to set
+	 */
+	public void setChangedFeature(Object changedFeature) {
+		this.changedFeature = changedFeature;
+	}
+
+	/**
+	 * @return the changedFeature
+	 */
+	public Object getChangedFeature() {
+		return changedFeature;
+	}
+
+	/**
+	 * @param oldValue
+	 *            the oldValue to set
+	 */
+	public void setOldValue(Object oldValue) {
+		this.oldValue = oldValue;
+	}
+
+	/**
+	 * @return the oldValue
+	 */
+	public Object getOldValue() {
+		return oldValue;
+	}
+
+	/**
+	 * @param newValue
+	 *            the newValue to set
+	 */
+	public void setNewValue(Object newValue) {
+		this.newValue = newValue;
+	}
+
+	/**
+	 * @return the newValue
+	 */
+	public Object getNewValue() {
+		return newValue;
+	}
+
+	/**
+	 * @param position
+	 *            the position to set
+	 */
+	public void setPosition(int position) {
+		this.position = position;
+	}
+
+	/**
+	 * @return the position
+	 */
+	public int getPosition() {
+		return position;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/XWTModelBuilder.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/XWTModelBuilder.java
new file mode 100755
index 0000000..e087e69
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/model/XWTModelBuilder.java
@@ -0,0 +1,646 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.model;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Random;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.IJobManager;
+import org.eclipse.core.runtime.jobs.ISchedulingRule;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.jface.text.DocumentEvent;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IDocumentListener;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.wst.sse.core.StructuredModelManager;
+import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
+import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
+import org.eclipse.wst.xml.core.internal.document.TextImpl;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.xwt.tools.ui.designer.core.editor.text.StructuredTextHelper;
+import org.eclipse.xwt.tools.ui.designer.core.model.AbstractModelBuilder;
+import org.eclipse.xwt.tools.ui.designer.core.model.IModelBuilder;
+import org.eclipse.xwt.tools.ui.designer.core.util.DisplayUtil;
+import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
+import org.eclipse.xwt.tools.ui.designer.editor.model.Synchronizer.EventType;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTModelUtil;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+import org.w3c.dom.Attr;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+@SuppressWarnings("restriction")
+public class XWTModelBuilder extends AbstractModelBuilder implements
+		IModelBuilder {
+
+	private XamlDocument document;
+	private IDocument jfaceDom;
+	private IFile input;
+	private static Random RANDOM = new Random();
+	private BraceHandler braceHandler;
+
+	private BuilderContext fContext;
+	private Synchronizer synch;
+	private ModelAdapter modelAdapter;
+
+	private ReloadJob reloadJob;
+	private NodeAdapter nodeAdapter = new NodeAdapter();
+
+	public static String generateID(String typeName) {
+		return typeName + RANDOM.nextInt(Integer.MAX_VALUE);
+	}
+
+	public boolean doLoad(IEditorPart designer, final IProgressMonitor monitor) {
+		if (designer == null) {
+			return false;
+		}
+		input = ((XWTDesigner) designer).getFile();
+		jfaceDom = ((XWTDesigner) designer).getDocument();
+		if (jfaceDom == null) {
+			return false;
+		}
+		if (input != null) {
+			document = ModelCacheUtility.doLoadFromCache(input, monitor);
+		}
+		if (document == null) {
+			document = XamlFactory.eINSTANCE.createXamlDocument();
+		}
+		IDOMDocument textDocument = getTextDocument(jfaceDom);
+		if (textDocument == null) {
+			return false;
+		}
+		if (monitor != null) {
+			monitor.beginTask("Loading Document", 100);
+		}
+		jfaceDom.addDocumentListener(new IDocumentListener() {
+			public void documentAboutToBeChanged(DocumentEvent event) {
+			}
+
+			public void documentChanged(DocumentEvent event) {
+				// Revert File.
+				if (event.getOffset() == 0 && event.getLength() != 0
+						&& event.getText() != null) {
+					new ReloadJob().schedule();
+				}
+			}
+		});
+
+		if (synch == null) {
+			synch = new Synchronizer();
+		}
+		fContext = new BuilderContext(this, textDocument, document, synch);
+		fContext.setNodeAdapter(nodeAdapter);
+		modelAdapter = new ModelAdapter(fContext);
+		if (!document.eAdapters().contains(modelAdapter)) {
+			document.eAdapters().add(modelAdapter);
+		}
+
+		final IDOMElement textElement = (IDOMElement) textDocument
+				.getDocumentElement();
+
+		loadingModel(textElement, monitor);
+		return true;
+	}
+
+	private BraceHandler getBraceHandler() {
+		if (braceHandler == null) {
+			braceHandler = createBraceHandler(document);
+		}
+		return braceHandler;
+	}
+
+	protected BraceHandler createBraceHandler(XamlDocument document) {
+		return new BraceHandler(document);
+	}
+
+	/**
+	 * @param textDocument
+	 * @param document
+	 */
+	protected void handleDeclaredNamespaces(String prefix, String namespace) {
+		if (document != null) {
+			document.getDeclaredNamespaces().put(prefix, namespace);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.ve.editor.IDiagramModelBuilder#getModelRoot()
+	 */
+	public XamlDocument getDiagram() {
+		return document;
+	}
+
+	protected void loadingModel(IDOMElement text, IProgressMonitor monitor) {
+		if (text == null || !synch.isFree()) {
+			return;
+		}
+		synchronized (synch) {
+			synch.setEventType(EventType.LoadingEvent);
+
+			try {
+				String name = text.getLocalName();
+				String nsURI = text.getNamespaceURI();
+				String prefix = text.getPrefix();
+				XamlElement rootElement = document.getRootElement();
+
+				boolean isNew = false;
+				if (rootElement == null || !name.equals(rootElement.getName())) {
+					rootElement = XamlFactory.eINSTANCE.createElement(name,
+							nsURI);
+					isNew = true;
+				}
+				if (monitor != null) {
+					monitor.subTask("Load element " + name);
+					monitor.worked(1);
+				}
+				rootElement.setPrefix(prefix);
+				createChild(rootElement, text, monitor);
+
+				fContext.map(rootElement, text);
+				if (isNew) {
+					document.setRootElement(rootElement);
+				}
+			} finally {
+				synch.setFree();
+			}
+		}
+	}
+
+	protected void createChild(XamlNode parent, IDOMElement text,
+			IProgressMonitor monitor) {
+		NamedNodeMap attrMap = text.getAttributes();
+		if (attrMap != null) {
+			int length = attrMap.getLength();
+			for (int i = 0; i < length; i++) {
+				IDOMAttr item = (IDOMAttr) attrMap.item(i);
+				String localName = item.getLocalName();
+				String value = item.getNodeValue();
+				String prefix = item.getPrefix();
+				if ("xmlns".equals(localName)) {
+					handleDeclaredNamespaces(null, value);
+				}
+				if ("xmlns".equals(prefix)) {
+					handleDeclaredNamespaces(localName, value);
+				}
+			}
+		}
+
+		List<IDOMNode> attributes = fContext.getAttributes(text);
+		List<XamlAttribute> oldAttrs = new ArrayList<XamlAttribute>(parent
+				.getAttributes());
+
+		for (int i = 0; i < attributes.size(); i++) {
+			IDOMNode attr = attributes.get(i);
+			oldAttrs.remove(createAttribute(parent, attr, i));
+			if (monitor != null) {
+				monitor.subTask("Load attr " + attr.getNodeName());
+				monitor.worked(1);
+			}
+		}
+		if (!oldAttrs.isEmpty()) {
+			parent.getAttributes().removeAll(oldAttrs);
+		}
+
+		List<IDOMElement> childNodes = fContext.getChildNodes(text);
+		List<XamlElement> oldChildren = new ArrayList<XamlElement>(parent
+				.getChildNodes());
+		for (int i = 0; i < childNodes.size(); i++) {
+			IDOMElement child = childNodes.get(i);
+			oldChildren.remove(createElement(parent, child, i));
+			if (monitor != null) {
+				monitor.subTask("Load child " + child.getNodeName());
+				monitor.worked(1);
+			}
+		}
+		if (!oldChildren.isEmpty()) {
+			parent.getChildNodes().removeAll(oldChildren);
+		}
+
+		String content = fContext.getContent(text);
+		if (content != null) {
+			parent.setValue(content);
+		}
+	}
+
+	private String normalizeName(String tagName) {
+		if (tagName == null) {
+			return null;
+		}
+		StringBuffer buffer = new StringBuffer();
+
+		boolean isH = false;
+		for (int i = 0, len = tagName.length(); i < len; i++) {
+			char c = tagName.charAt(i);
+			if (i == 0) {
+				buffer.append(Character.toUpperCase(c));
+			} else {
+				switch (c) {
+				case '-':
+					isH = true;
+					break;
+				case '.':
+					isH = true;
+					buffer.append(c);
+					break;
+				default:
+					if (isH) {
+						buffer.append(Character.toUpperCase(c));
+						isH = false;
+					} else {
+						buffer.append(c);
+					}
+					break;
+				}
+			}
+		}
+		return buffer.toString();
+	}
+
+	protected XamlElement createElement(XamlNode parent, IDOMElement child,
+			int index) {
+		String name = child.getLocalName();
+		String prefix = child.getPrefix();
+		String ns = document.getDeclaredNamespace(prefix);
+		XamlElement element = parent.getChild(index);
+		if (element == null || element.getName() == null
+				|| element.getNamespace() == null
+				|| !element.getName().equals(name)
+				|| !element.getNamespace().equals(ns)) {
+			element = XamlFactory.eINSTANCE.createElement(normalizeName(name),
+					ns);
+			element.setId(generateID(name));
+		}
+		fContext.map(element, child);
+		element.setPrefix(prefix);
+		createChild(element, child, null);
+		return addChild(parent, element, index);
+	}
+
+	protected XamlNode createAttribute(XamlNode parent, IDOMNode attr, int index) {
+		if (attr == null) {
+			return null;
+		}
+		String localName = attr.getLocalName();
+		String value = attr.getNodeValue();
+		String prefix = attr.getPrefix();
+		String ns = document.getDeclaredNamespace(prefix);
+
+		String name = localName;
+		int i = localName.indexOf(".");
+		if (i != -1) {
+			name = localName.substring(i + 1);
+		}
+
+		if (name == null || "".equals(name)) {
+			return null;
+		}
+		if ("xmlns".equals(name)) {
+			handleDeclaredNamespaces(null, value);
+			return null;
+		}
+		if ("xmlns".equals(prefix)) {
+			handleDeclaredNamespaces(name, value);
+			return null;
+		}
+
+		XamlAttribute nameAttr = getAttribute(parent, name, ns);
+		if (nameAttr == null) {
+			nameAttr = XamlFactory.eINSTANCE.createAttribute(
+					normalizeName(name), ns);
+			nameAttr.setId(generateID(name));
+		}
+		// a.setGroupName(groupName);
+		if (attr instanceof IDOMElement) {
+			IDOMElement child = (IDOMElement) attr;
+			createChild(nameAttr, child, null);
+		}
+		nameAttr.setPrefix(prefix);
+		if (handleBraces(value)) {
+			XamlNode valueNode = getBraceHandler().parse(nameAttr, value);
+			if (valueNode != null && valueNode instanceof XamlElement) {
+				addChild(nameAttr, (XamlElement) valueNode, -1);
+			}
+			for (Iterator<XamlElement> iterator = nameAttr.getChildNodes()
+					.iterator(); iterator.hasNext();) {
+				if (iterator.next() != valueNode) {
+					iterator.remove();
+				}
+			}
+			nameAttr.setValue(null);
+		} else {
+			nameAttr.setValue(value);
+			if (value != null) {
+				nameAttr.getChildNodes().clear();
+			}
+		}
+		fContext.map(nameAttr, attr);
+		return addAttribute(parent, nameAttr, index);
+	}
+
+	private boolean handleBraces(String value) {
+		return value != null && value.startsWith("{") && value.endsWith("}");
+	}
+
+	protected XamlAttribute getAttribute(XamlNode parent, String attrName,
+			String namespace) {
+		return XWTModelUtil.getAdaptableAttribute(parent, attrName, namespace);
+	}
+
+	protected XamlElement addChild(XamlNode parent, XamlElement n, int index) {
+		if (parent == null || n == null) {
+			return n;
+		}
+		EList<XamlElement> childNodes = parent.getChildNodes();
+		int size = childNodes.size();
+		if (!parent.getChildNodes().contains(n)) {
+			if (index < 0 || index > size) {
+				index = size - 1;
+			}
+			if (index < 0) {
+				index = 0;
+			}
+			childNodes.add(index, n);
+		} else if (index >= 0 && index < size) {
+			int oldIndex = childNodes.indexOf(n);
+			if (oldIndex != index) {
+				childNodes.move(index, oldIndex);
+			}
+		}
+		return n;
+	}
+
+	protected XamlAttribute addAttribute(XamlNode parent, XamlAttribute a,
+			int index) {
+		if (parent == null || a == null) {
+			return null;
+		}
+		EList<XamlAttribute> attributes = parent.getAttributes();
+		int size = attributes.size();
+		if (!parent.getAttributes().contains(a)) {
+			if (index < 0 || index > size) {
+				index = size - 1;
+			}
+			if (index < 0) {
+				index = 0;
+			}
+			attributes.add(index, a);
+		} else if (index >= 0 && index < size) {
+			int oldIndex = attributes.indexOf(a);
+			if (oldIndex != index) {
+				attributes.move(index, oldIndex);
+			}
+		}
+		return a;
+	}
+
+	protected IDOMDocument getTextDocument(IDocument doc) {
+		IStructuredModel model = StructuredModelManager.getModelManager()
+				.getExistingModelForRead(doc);
+		if (model != null && model instanceof IDOMModel) {
+			return ((IDOMModel) model).getDocument();
+		}
+
+		return null;
+	}
+
+	/**
+	 * Format Text of Editor.
+	 */
+	protected void format() {
+		// Format in main thread.
+		if (jfaceDom != null) {
+			IDOMDocument textDocument = getTextDocument(jfaceDom);
+			if (textDocument != null) {
+				IDOMElement textElement = (IDOMElement) textDocument
+						.getDocumentElement();
+				formatRemoveEmpty(textElement);
+			}
+			StructuredTextHelper.format(jfaceDom);
+		}
+	}
+
+	/**
+	 * @param textElement
+	 */
+	protected void formatRemoveEmpty(Node node) {
+		if (node == null) {
+			return;
+		}
+		NodeList childNodes = node.getChildNodes();
+		if (childNodes != null) {
+			for (int i = 0; i < childNodes.getLength(); i++) {
+				Node item = childNodes.item(i);
+				if (item.getNodeType() == Node.TEXT_NODE) {
+					TextImpl t = (TextImpl) item;
+					if (t.isWhitespace() || t.isInvalid()) {
+						Node next = t.getNextSibling();
+						while (next != null
+								&& next.getNodeType() == Node.TEXT_NODE
+								&& (((TextImpl) next).isWhitespace() || ((TextImpl) next)
+										.isInvalid())) {
+							node.removeChild(next);
+							next = next.getNextSibling();
+						}
+					}
+				} else {
+					formatRemoveEmpty(item);
+				}
+			}
+		}
+	}
+
+	protected boolean contains(Node parent, Attr attr) {
+		NamedNodeMap attributes = parent.getAttributes();
+		for (int i = attributes.getLength() - 1; i >= 0; i--) {
+			if (attr == attributes.item(i)) {
+				return true;
+			}
+		}
+
+		return false;
+	}
+
+	public void reload() {
+		if (!synch.isFree()) {
+			return;
+		}
+		if (document == null || jfaceDom == null) {
+			return;
+		}
+		IDOMDocument textDocument = getTextDocument(jfaceDom);
+		if (textDocument == null) {
+			return;
+		}
+		IDOMElement textElement = (IDOMElement) textDocument
+				.getDocumentElement();
+		loadingModel(textElement, null);
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.ve.editor.IDiagramModelBuilder#dispose()
+	 */
+	public void dispose() {
+		doSave(null);// save to cache;
+		document = null;
+		jfaceDom = null;
+		fContext.clear();
+	}
+
+	private Display getDisplay() {
+		Display display = Display.getCurrent();
+		if (display == null || PlatformUI.isWorkbenchRunning()) {
+			display = PlatformUI.getWorkbench().getDisplay();
+		}
+		return display;
+	}
+
+	protected boolean isValidThread() {
+		return getDisplay() == null
+				|| getDisplay().getThread() == Thread.currentThread();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.ve.editor.IDiagramModelBuilder#saveCache()
+	 */
+	public void doSave(IProgressMonitor monitor) {
+		ModelCacheUtility.doSaveCache(document, input, monitor);
+	}
+
+	public XamlNode getModel(Object textNode) {
+		return fContext.getModel(textNode);
+	}
+
+	public IDOMNode getTextNode(Object model) {
+		return fContext.getTextNode(model);
+	}
+
+	public void handleNodeChanged(TextNotification msg) {
+		synchronized (synch) {
+			if (!synch.isFree()) {
+				return;
+			}
+			INodeNotifier notifier = msg.getNotifier();
+			final Object changedFeature = msg.getChangedFeature();
+			int eventType = msg.getEventType();
+			final Object newValue = msg.getNewValue();
+			final XamlNode parentNode = fContext.getModel(notifier);
+			final XamlNode changedNode = fContext.getModel(changedFeature);
+			if (eventType == INodeNotifier.CHANGE && changedFeature != null) {
+				Runnable runnable = new Runnable() {
+					public void run() {
+						if (changedNode != null && newValue == null) {
+							// remove.
+							parentNode.getAttributes().remove(changedNode);
+						} else if (parentNode != null
+								&& changedFeature instanceof IDOMAttr) {
+							createAttribute(parentNode,
+									(IDOMAttr) changedFeature, -1);
+						}
+						synch.setFree();
+					}
+				};
+				synch.setEventType(EventType.SourceEvent);
+				DisplayUtil.asyncExec(runnable);
+			} else if (eventType == INodeNotifier.REMOVE && parentNode != null
+					&& changedNode != null) {
+				Runnable runnable = new Runnable() {
+					public void run() {
+						if (changedNode instanceof XamlElement) {
+							parentNode.getChildNodes().remove(changedNode);
+						} else if (changedNode instanceof XamlAttribute) {
+							parentNode.getAttributes().remove(changedNode);
+						}
+						synch.setFree();
+					}
+				};
+				synch.setEventType(EventType.SourceEvent);
+				DisplayUtil.asyncExec(runnable);
+			} else if (eventType == INodeNotifier.STRUCTURE_CHANGED) {
+				IJobManager jobManager = Job.getJobManager();
+				Job currentJob = jobManager.currentJob();
+				if (!(currentJob instanceof ReloadJob)
+						&& (reloadJob == null || reloadJob.getResult() != null)) {
+					reloadJob = new ReloadJob();
+					reloadJob.setRule(new ISchedulingRule() {
+						public boolean contains(ISchedulingRule rule) {
+							return getClass() == rule.getClass();
+						}
+
+						public boolean isConflicting(ISchedulingRule rule) {
+							return getClass() == rule.getClass();
+						}
+					});
+					reloadJob.schedule(200);
+				}
+			}
+		}
+	}
+
+	private class NodeAdapter implements INodeAdapter {
+
+		public boolean isAdapterForType(Object type) {
+			return type == NodeAdapter.class;
+		}
+
+		public void notifyChanged(INodeNotifier notifier, int eventType,
+				Object changedFeature, Object oldValue, Object newValue, int pos) {
+			TextNotification msg = new TextNotification(notifier, eventType,
+					changedFeature, oldValue, newValue, pos);
+			handleNodeChanged(msg);
+		}
+
+	}
+
+	private class ReloadJob extends Job {
+		public ReloadJob() {
+			super("Reload");
+			setPriority(SHORT);
+			setSystem(true);
+		}
+
+		protected IStatus run(IProgressMonitor monitor) {
+			reload();
+			return Status.OK_STATUS;
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/OutlineContentProvider.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/OutlineContentProvider.java
new file mode 100755
index 0000000..ce3102e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/OutlineContentProvider.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.outline;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class OutlineContentProvider implements ITreeContentProvider {
+
+	private static final Object[] EMPTY = new Object[0];
+
+	public Object[] getElements(Object inputElement) {
+		return getChildren(inputElement);
+	}
+
+	public void dispose() {
+
+	}
+
+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+
+	}
+
+	public Object[] getChildren(Object parentElement) {
+		if (parentElement instanceof XamlElement) {
+			return ((XamlElement) parentElement).getChildNodes().toArray(
+					new XamlElement[0]);
+		} else if (parentElement instanceof XamlDocument) {
+			XamlElement root = ((XamlDocument) parentElement).getRootElement();
+			if (root != null) {
+				return new Object[] { root };
+			}
+		}
+		return EMPTY;
+	}
+
+	public Object getParent(Object element) {
+		if (element instanceof EObject) {
+			return ((EObject) element).eContainer();
+		}
+		return null;
+	}
+
+	public boolean hasChildren(Object element) {
+		return getChildren(element).length > 0;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/OutlineLabelProvider.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/OutlineLabelProvider.java
new file mode 100755
index 0000000..7e040fe
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/OutlineLabelProvider.java
@@ -0,0 +1,133 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.outline;
+
+import java.text.MessageFormat;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.GraphicalViewer;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.tools.ui.designer.parts.DiagramEditPart;
+import org.eclipse.xwt.tools.ui.designer.parts.ViewerEditPart;
+import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridLayoutPolicyHelper;
+import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+import org.eclipse.xwt.tools.ui.xaml.tools.AnnotationTools;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class OutlineLabelProvider extends LabelProvider {
+
+	private GraphicalViewer graphicalViewer;
+
+	public OutlineLabelProvider() {
+		this(null);
+	}
+
+	public OutlineLabelProvider(GraphicalViewer graphicalViewer) {
+		this.graphicalViewer = graphicalViewer;
+	}
+
+	public String getText(Object element) {
+		if (element instanceof XamlNode) {
+			return getText((XamlNode) element);
+		} else if (element instanceof XamlDocument) {
+			return "(widget)";
+		} else if (element instanceof EditPart) {
+			return getText(((EditPart) element).getModel());
+		} else if (element instanceof IStructuredSelection) {
+			return getText(((IStructuredSelection) element).getFirstElement());
+		}
+		return super.getText(element);
+	}
+
+	private String getText(XamlNode node) {
+		if (AnnotationTools.isAnnotated(node,
+				GridLayoutPolicyHelper.FILLER_DATA)) {
+			return "(filler)";
+		}
+		String name = node.getName();
+		IMetaclass metaclass = XWTUtility.getMetaclass(node);
+		if (metaclass != null) {
+			XamlAttribute textAttr = node.getAttribute("text");
+			if (textAttr == null) {
+				textAttr = node.getAttribute("text", IConstants.XWT_NAMESPACE);
+			}
+			XamlAttribute nameAttr = node.getAttribute("name",
+					IConstants.XWT_NAMESPACE);
+			if (nameAttr == null) {
+				nameAttr = node
+						.getAttribute("name", IConstants.XWT_X_NAMESPACE);
+			}
+			String value = null;
+			if (nameAttr != null && nameAttr.getValue() != null) {
+				value = MessageFormat.format("\"{0}\"", nameAttr.getValue());
+			} else if (textAttr != null && textAttr.getValue() != null) {
+				value = MessageFormat.format("\"{0}\"", textAttr.getValue());
+			}
+			if (value != null) {
+				name = MessageFormat.format("{0} - {1}", new Object[] { name,
+						value });
+			}
+		}
+		return name;
+	}
+
+	public Image getImage(Object element) {
+		if (element instanceof XamlDocument) {
+			return ImageShop.get(ImageShop.IMG_XWT);
+		}
+		if (element instanceof XamlNode) {
+			XamlNode xamlNode = (XamlNode) element;
+			if (graphicalViewer != null) {
+				EditPart editPart = (EditPart) graphicalViewer
+						.getEditPartRegistry().get(xamlNode);
+				Image image = getImageFrom(editPart);
+				if (image != null) {
+					return image;
+				}
+			}
+			String name = xamlNode.getName();
+			return ImageShop.getObj16(name.toLowerCase());
+		}
+		return super.getImage(element);
+	}
+
+	private Image getImageFrom(EditPart editPart) {
+
+		if (editPart instanceof WidgetEditPart) {
+			Widget widget = ((WidgetEditPart) editPart).getWidget();
+			return ImageShop.getImageForWidget(widget);
+		} else if (editPart instanceof ViewerEditPart) {
+			Viewer viewer = ((ViewerEditPart) editPart).getJfaceViewer();
+			if (viewer != null) {
+				String name = viewer.getClass().getSimpleName().toLowerCase();
+				return ImageShop.getObj16(name);
+			}
+		} else if (editPart instanceof DiagramEditPart) {
+			return ImageShop.get(ImageShop.IMG_XWT);
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/OutlinePageDropManager.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/OutlinePageDropManager.java
new file mode 100755
index 0000000..dbe00cf
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/OutlinePageDropManager.java
@@ -0,0 +1,85 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.outline;
+
+import org.eclipse.xwt.tools.ui.palette.Entry;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.CommandStack;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.xwt.tools.ui.designer.core.editor.outline.dnd.OutlineDropManager;
+import org.eclipse.xwt.tools.ui.designer.editor.outline.commands.MoveAfterCommand;
+import org.eclipse.xwt.tools.ui.designer.editor.outline.commands.MoveBeforeCommand;
+import org.eclipse.xwt.tools.ui.designer.editor.outline.commands.MoveOnCommand;
+import org.eclipse.xwt.tools.ui.designer.editor.palette.EntryHelper;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class OutlinePageDropManager implements OutlineDropManager {
+
+	private CommandStack commandStack;
+
+	public OutlinePageDropManager(CommandStack commandStack) {
+		this.commandStack = commandStack;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.tools.designer.editor.outline.dnd.OutlineDropManager#execute(org.eclipse.gef.commands.Command)
+	 */
+	public boolean execute(Command command) {
+		if (command == null || !command.canExecute()) {
+			return false;
+		}
+		try {
+			if (commandStack != null) {
+				commandStack.execute(command);
+			} else {
+				command.execute();
+			}
+			return true;
+		} catch (Exception e) {
+			return false;
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.tools.designer.editor.outline.dnd.OutlineDropManager#getMoveAfter(java.lang.Object, java.lang.Object)
+	 */
+	public Command getMoveAfter(IStructuredSelection source, Object target, int operation) {
+		return new MoveAfterCommand(source, target, operation);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.tools.designer.editor.outline.dnd.OutlineDropManager#getMoveBefore(java.lang.Object, java.lang.Object)
+	 */
+	public Command getMoveBefore(IStructuredSelection source, Object target, int operation) {
+		return new MoveBeforeCommand(source, target, operation);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.tools.designer.editor.outline.dnd.OutlineDropManager#getMoveOn(java.lang.Object, java.lang.Object)
+	 */
+	public Command getMoveOn(IStructuredSelection source, Object target, int operation) {
+		return new MoveOnCommand(source, target, operation);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/TreeEditPartFactory.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/TreeEditPartFactory.java
new file mode 100755
index 0000000..829e641
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/TreeEditPartFactory.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.outline;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartFactory;
+import org.eclipse.xwt.tools.ui.designer.core.editor.outline.TreeItemEditPart;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public class TreeEditPartFactory implements EditPartFactory {
+
+	public EditPart createEditPart(EditPart context, Object model) {
+		if (model instanceof XamlDocument) {
+			XamlElement rootElement = ((XamlDocument) model).getRootElement();
+			return createEditPart(context, rootElement);
+		}
+		return new TreeEditPart(model);
+	}
+
+	private class TreeEditPart extends TreeItemEditPart {
+
+		public TreeEditPart(Object model) {
+			super(model, new OutlineContentProvider(),
+					new OutlineLabelProvider());
+		}
+
+		protected void createEditPolicies() {
+			super.createEditPolicies();
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/TreeEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/TreeEditPolicy.java
new file mode 100755
index 0000000..ca3de28
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/TreeEditPolicy.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.outline;
+
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.requests.ChangeBoundsRequest;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gef.requests.GroupRequest;
+import org.eclipse.xwt.tools.ui.designer.core.editor.outline.TreeItemEditPolicy;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public class TreeEditPolicy extends TreeItemEditPolicy {
+
+	protected Command getDeleteCommand(Request req) {
+		return super.getDeleteCommand(req);
+	}
+
+	protected Command getAddCommand(ChangeBoundsRequest request) {
+		return super.getAddCommand(request);
+	}
+
+	protected Command getCreateCommand(CreateRequest request) {
+		return super.getCreateCommand(request);
+	}
+
+	protected Command getOrphanChildrenCommand(GroupRequest req) {
+		return super.getOrphanChildrenCommand(req);
+	}
+
+	protected Command getMoveChildrenCommand(ChangeBoundsRequest request) {
+		return super.getMoveChildrenCommand(request);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/commands/MoveAfterCommand.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/commands/MoveAfterCommand.java
new file mode 100755
index 0000000..5ba8fd6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/commands/MoveAfterCommand.java
@@ -0,0 +1,74 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.outline.commands;
+
+import java.util.Iterator;
+
+import org.eclipse.xwt.tools.ui.palette.Entry;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.xwt.tools.ui.designer.commands.AddNewChildCommand;
+import org.eclipse.xwt.tools.ui.designer.commands.DeleteCommand;
+import org.eclipse.xwt.tools.ui.designer.editor.palette.EntryHelper;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class MoveAfterCommand extends MoveCommand {
+
+	public MoveAfterCommand(IStructuredSelection source, Object target, int operation) {
+		super(source, target, operation);
+		setLabel("Move After");
+	}
+
+	@Override
+	public boolean canExecute() {
+		return super.canExecute() && getTarget().getParent() != null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.editor.outline.commands.MoveCommand#collectCommands(org.eclipse.gef.commands.CompoundCommand)
+	 */
+	protected void collectCommands(CompoundCommand command) {
+		IStructuredSelection sourceNodes = getSource();
+		XamlNode targetNode = getTarget();
+		XamlNode parent = targetNode.getParent();
+		int index = parent.getChildNodes().indexOf(targetNode);
+		XamlNode newNode = null;
+		
+		for (Iterator iterator = sourceNodes.iterator(); iterator.hasNext();) {
+			Object element = iterator.next();
+			XamlNode sourceNode = null;
+			if (element instanceof Entry) {
+				sourceNode = EntryHelper.getNode((Entry) element);
+			}
+			else {
+				sourceNode = (XamlNode) element;
+			}
+			
+			if (sourceNode.eContainer() != null) {
+				newNode = (XamlNode) EcoreUtil.copy(sourceNode);
+			} else {
+				newNode = sourceNode;
+			}
+			command.add(new AddNewChildCommand(parent, newNode, ++index));
+			if (isMove() && sourceNode.eContainer() != null) {
+				command.add(new DeleteCommand(sourceNode));
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/commands/MoveBeforeCommand.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/commands/MoveBeforeCommand.java
new file mode 100755
index 0000000..1694845
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/commands/MoveBeforeCommand.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.outline.commands;
+
+import java.util.Iterator;
+
+import org.eclipse.xwt.tools.ui.palette.Entry;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.xwt.tools.ui.designer.commands.AddNewChildCommand;
+import org.eclipse.xwt.tools.ui.designer.commands.DeleteCommand;
+import org.eclipse.xwt.tools.ui.designer.editor.palette.EntryHelper;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class MoveBeforeCommand extends MoveCommand {
+
+	public MoveBeforeCommand(IStructuredSelection source, Object target, int operation) {
+		super(source, target, operation);
+	}
+
+	@Override
+	public boolean canExecute() {
+		return super.canExecute() && getTarget().getParent() != null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.editor.outline.commands.MoveCommand#collectCommands(org.eclipse.gef.commands.CompoundCommand)
+	 */
+	protected void collectCommands(CompoundCommand command) {
+		IStructuredSelection sourceNodes = getSource();
+		XamlNode targetNode = (XamlNode) getTarget();
+		XamlNode parent = targetNode.getParent();
+		int index = parent.getChildNodes().indexOf(targetNode);
+
+		XamlNode newNode = null;
+		for (Iterator iterator = sourceNodes.iterator(); iterator.hasNext();) {
+			Object element = iterator.next();
+			XamlNode sourceNode = null;
+			if (element instanceof Entry) {
+				sourceNode = EntryHelper.getNode((Entry) element);
+			}
+			else {
+				sourceNode = (XamlNode) element;
+			}
+			
+			if (sourceNode.eContainer() != null) {
+				newNode = (XamlNode) EcoreUtil.copy(sourceNode);
+			} else {
+				newNode = sourceNode;
+			}
+	
+			command.add(new AddNewChildCommand(parent, newNode, index++));
+	
+			if (isMove() && sourceNode.eContainer() != null) {
+				command.add(new DeleteCommand(sourceNode));
+			}
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/commands/MoveCommand.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/commands/MoveCommand.java
new file mode 100755
index 0000000..a421154
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/commands/MoveCommand.java
@@ -0,0 +1,160 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.outline.commands;
+
+import java.util.Iterator;
+
+import org.eclipse.xwt.tools.ui.palette.Entry;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public abstract class MoveCommand extends Command {
+
+	private IStructuredSelection source;
+	private Object target;
+
+	private Command command;
+	
+	private int operation;
+
+	public MoveCommand(IStructuredSelection source, Object target, int operation) {
+		this.setSource(source);
+		this.setTarget(target);
+		this.setOperation(operation);		
+	}
+
+	public int getOperation() {
+		return operation;
+	}
+
+	public void setOperation(int operation) {
+		this.operation = operation;
+	}
+
+	protected boolean isMove() {
+		return operation == DND.DROP_MOVE;
+	}
+	
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#canExecute()
+	 */
+	public boolean canExecute() {
+		boolean state = source != null && target != null && target instanceof XamlNode;
+		if (!state) {
+			return false;
+		}
+		
+		IStructuredSelection sourceNodes = getSource();
+		XamlNode parent = null;
+		for (Iterator iterator = sourceNodes.iterator(); iterator.hasNext();) {
+			Object element = iterator.next();
+			XamlNode sourceNode = null;
+			if (element instanceof Entry) {
+				continue;
+			}
+			else if (!(element instanceof XamlNode)) {
+				return false;
+			}
+			else {
+				sourceNode = (XamlNode) element;
+				XamlNode sourceParent = sourceNode.getParent();
+				if (sourceParent == null) {
+					return false;
+				}
+				if (parent == null) {
+					parent = sourceParent;
+				}
+				else if (parent != sourceParent) {
+					return false;
+				}
+			}
+		}
+		
+		if (isMove() && sourceNodes.size() == 1 && sourceNodes.getFirstElement() == target) {
+			return false;
+		}
+		return true;
+	}
+
+	/**
+	 * @param source
+	 *            the source to set
+	 */
+	public void setSource(IStructuredSelection source) {
+		this.source = source;
+	}
+
+	/**
+	 * @return the source
+	 */
+	public IStructuredSelection getSource() {
+		return source;
+	}
+
+	/**
+	 * @param target
+	 *            the target to set
+	 */
+	public void setTarget(Object target) {
+		this.target = target;
+	}
+
+	/**
+	 * @return the target
+	 */
+	public XamlNode getTarget() {
+		return (XamlNode) target;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#execute()
+	 */
+	public final void execute() {
+		CompoundCommand cmd = new CompoundCommand();
+		collectCommands(cmd);
+		command = cmd.unwrap();
+		if (command.canExecute()) {
+			command.execute();
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#canUndo()
+	 */
+	public boolean canUndo() {
+		return command != null && command.canUndo();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.commands.Command#undo()
+	 */
+	public void undo() {
+		command.undo();
+	}
+
+	protected abstract void collectCommands(CompoundCommand command);
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/commands/MoveOnCommand.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/commands/MoveOnCommand.java
new file mode 100755
index 0000000..19f95a9
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/outline/commands/MoveOnCommand.java
@@ -0,0 +1,99 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.outline.commands;
+
+import java.util.Iterator;
+
+import org.eclipse.xwt.tools.ui.palette.Entry;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.xwt.tools.ui.designer.commands.AddNewChildCommand;
+import org.eclipse.xwt.tools.ui.designer.commands.DeleteCommand;
+import org.eclipse.xwt.tools.ui.designer.editor.palette.CreateReqHelper;
+import org.eclipse.xwt.tools.ui.designer.editor.palette.EntryHelper;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class MoveOnCommand extends MoveCommand {
+
+	public MoveOnCommand(IStructuredSelection source, Object target, int operation) {
+		super(source, target, operation);
+	}
+	
+	@Override
+	public boolean canExecute() {
+		boolean canExecute = super.canExecute();
+		if (!canExecute) {
+			return false;
+		}
+		
+		IStructuredSelection sourceNodes = getSource();
+		for (Iterator iterator = sourceNodes.iterator(); iterator.hasNext();) {
+			Object element = iterator.next();
+			XamlNode sourceNode = null;
+			if (element instanceof Entry) {
+				continue;
+			}
+			else if (!(element instanceof XamlNode)) {
+				return false;
+			}
+			else {
+				sourceNode = (XamlNode) element;
+				XamlNode sourceParent = sourceNode.getParent();
+				if (sourceParent == null) {
+					return false;					
+				}
+				if (sourceParent == getTarget()) {
+					return false;
+				}
+			}
+		}
+		
+		return true;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.editor.outline.commands.MoveAfterCommand#collectCommands(org.eclipse.gef.commands.CompoundCommand)
+	 */
+	protected void collectCommands(CompoundCommand command) {
+		IStructuredSelection sourceNodes = getSource();
+		XamlNode target = getTarget();
+		for (Iterator iterator = sourceNodes.iterator(); iterator.hasNext();) {
+			Object element = iterator.next();
+			XamlNode sourceNode = null;
+			if (element instanceof Entry) {
+				sourceNode = EntryHelper.getNode((Entry) element);
+			}
+			else {
+				sourceNode = (XamlNode) element;
+			}
+			if (CreateReqHelper.canCreate(target, sourceNode)) {
+				XamlNode newChild = null;
+				if (sourceNode.eContainer() != null) {
+					newChild = (XamlNode) EcoreUtil.copy(sourceNode);
+				} else {
+					newChild = sourceNode;
+				}
+				command.add(new AddNewChildCommand(target, newChild));
+				if (isMove() && sourceNode.eContainer() != null) {
+					command.add(new DeleteCommand(sourceNode));
+				}
+			} 
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/palette/CreateReqHelper.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/palette/CreateReqHelper.java
new file mode 100755
index 0000000..03164e6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/palette/CreateReqHelper.java
@@ -0,0 +1,193 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.palette;
+
+import java.lang.reflect.Constructor;
+
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.custom.CTabItem;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.CoolBar;
+import org.eclipse.swt.widgets.CoolItem;
+import org.eclipse.swt.widgets.ExpandBar;
+import org.eclipse.swt.widgets.ExpandItem;
+import org.eclipse.swt.widgets.TabFolder;
+import org.eclipse.swt.widgets.TabItem;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.swt.widgets.ToolItem;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class CreateReqHelper {
+
+	public static final Object UNKNOWN_TYPE = new Object();
+
+	private CreateRequest createReq;
+
+	public CreateReqHelper(CreateRequest createReq) {
+		this.createReq = createReq;
+	}
+
+	public XamlNode getNewObject() {
+		return EntryHelper.getNode(createReq);
+	}
+
+	public String getNewObjectType() {
+		Object type = createReq.getType();
+		if (type != null) {
+			return type.toString();
+		}
+		return null;
+	}
+
+	public Object getCreateType() {
+		return getCreateType(getNewObject());
+	}
+
+	public static Object getCreateType(Object newObject) {
+		if (newObject != null && newObject instanceof XamlElement) {
+			return getType((XamlElement) newObject);
+		} else if (newObject instanceof XamlAttribute) {
+			return ((XamlAttribute) newObject).getName();
+		}
+		return UNKNOWN_TYPE;
+	}
+
+	public static Class<?> getType(XamlNode element) {
+		if (element == null) {
+			return null;
+		}
+		IMetaclass metaclass = XWTUtility.getMetaclass(element);
+		if (metaclass != null) {
+			return metaclass.getType();
+		}
+		return null;
+	}
+
+	public boolean isCreate(Object targetType) {
+		if (targetType == null) {
+			return false;
+		}
+		Object createType = getCreateType(getNewObject());
+		if (targetType instanceof String && createType instanceof String) {
+			return ((String) targetType).equalsIgnoreCase((String) createType);
+		}
+		return targetType == createType;
+	}
+
+	public static boolean canCreate(Object parent, Object child) {
+		try {
+			XamlNode parentNode = null;
+			Class<?> parentType = null;
+			if (parent instanceof Class<?>) {
+				parentType = (Class<?>) parent;
+			} else if (parent instanceof XamlNode) {
+				parentNode = (XamlNode) parent;
+			} else if (parent instanceof EditPart) {
+				Object model = ((EditPart) parent).getModel();
+				if (model instanceof XamlNode) {
+					parentNode = (XamlNode) model;
+				}
+			}
+			if (parentType == null && parentNode != null) {
+				parentType = getType(parentNode);
+			}
+			if (parentType == null || parentType == CCombo.class) {
+				return false;
+			}
+			boolean canCreate = false;
+			Object createType = getCreateType(child);
+			if (createType instanceof Class<?>) {
+				Class<?> type = (Class<?>) createType;
+				if (ExpandItem.class.isAssignableFrom(type)) {
+					return ExpandBar.class.isAssignableFrom(parentType);
+				} else if (ToolItem.class.isAssignableFrom(type)) {
+					return ToolBar.class.isAssignableFrom(parentType);
+				} else if (CoolItem.class.isAssignableFrom(type)) {
+					return CoolBar.class.isAssignableFrom(parentType);
+				} else if (TabItem.class.isAssignableFrom(type)) {
+					return TabFolder.class.isAssignableFrom(parentType);
+				} else if (CTabItem.class.isAssignableFrom(type)) {
+					return CTabFolder.class.isAssignableFrom(parentType);
+				}
+				Constructor<?>[] constructors = ((Class<?>) createType)
+						.getConstructors();
+				for (Constructor<?> constructor : constructors) {
+					Class<?>[] parameterTypes = constructor.getParameterTypes();
+					if (parameterTypes.length == 0) {
+						continue;
+					}
+					if (parameterTypes[0].isAssignableFrom(parentType)) {
+						canCreate = true;
+						break;
+					}
+				}
+			} else if (createType instanceof String) {
+				String stringType = (String) createType;
+				IMetaclass metaclass = XWT.getMetaclass(parentType);
+				if (metaclass != null) {
+					canCreate = metaclass.findProperty((String) createType) != null;
+					if ("menuBar".equals(stringType)
+							|| "menu".equals(stringType)
+							|| "layoutData".equals(stringType)) {
+						canCreate = canCreate
+								&& parentNode.getAttribute(stringType) == null;
+					}
+				}
+			}
+			// System.out.println("Parent: " + parentType.getSimpleName() +
+			// " |Create: " + createType + " |-->Result: " + canCreate);
+			return canCreate;
+		} catch (Exception e) {
+		}
+		return false;
+	}
+
+	public boolean canCreate(Object parent) {
+		return canCreate(parent, getNewObject());
+	}
+
+	public boolean isKindOf(String nodeName, String namespace, String targetType) {
+		if (nodeName == null || namespace == null || targetType == null) {
+			return false;
+		}
+		if ("Composite".equalsIgnoreCase(targetType)) {
+			IMetaclass metaclass = XWT.getMetaclass(nodeName, namespace);
+			if (metaclass == null) {
+				return false;
+			} else {
+				return Composite.class.isAssignableFrom(metaclass.getType());
+			}
+		} else if ("Control".equalsIgnoreCase(targetType)) {
+			IMetaclass metaclass = XWT.getMetaclass(nodeName, namespace);
+			if (metaclass == null) {
+				return false;
+			} else {
+				return Control.class.isAssignableFrom(metaclass.getType());
+			}
+		}
+		return targetType.equalsIgnoreCase(nodeName);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/palette/EntryHelper.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/palette/EntryHelper.java
new file mode 100755
index 0000000..8ef3534
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/palette/EntryHelper.java
@@ -0,0 +1,231 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.palette;
+
+import java.io.ByteArrayInputStream;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.internal.utils.LoggerManager;
+import org.eclipse.xwt.tools.ui.palette.Entry;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
+import org.eclipse.xwt.tools.ui.designer.preference.Preferences;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+import org.eclipse.xwt.tools.ui.xaml.tools.AnnotationTools;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class EntryHelper {
+
+	public static final String CURSOR_CONSTANTS = "${cursor}";
+	public static final String ANN_CURSOR_DATA = "CURSOR_DATA_ANN";
+
+	private static Map<Entry, XamlNode> nodes = new HashMap<Entry, XamlNode>();
+
+	public static XamlNode getNode(Entry entry) {
+		if (entry == null) {
+			return null;
+		}
+		XamlNode node = nodes.get(entry);
+		if (node == null || node.eContainer() != null) {
+			try {
+				node = new EntryHelper().createNode(entry);
+				if ("Composite".equals(node.getName())) {
+					initLayoutAttribute(node);
+				}
+				nodes.put(entry, node);
+			} catch (Exception e) {
+				LoggerManager.log(e);
+			}
+		}
+		return (XamlNode) EcoreUtil.copy(node);
+	}
+
+	public static void initLayoutAttribute(XamlNode model) {
+		XamlAttribute layoutAttr = XamlFactory.eINSTANCE.createAttribute("layout", IConstants.XWT_NAMESPACE);
+		String layout = Preferences.getPreferenceStore().getString(Preferences.DEFAULT_LAYOUT);
+		LayoutType layoutType = LayoutsHelper.getLayoutType(layout);
+		if (layoutType != null && LayoutType.NullLayout != layoutType && LayoutType.Unknown != layoutType) {
+			XamlElement newLayout = XamlFactory.eINSTANCE.createElement(layoutType.value(), IConstants.XWT_NAMESPACE);
+			layoutAttr.getChildNodes().add(newLayout);
+			model.getAttributes().add(layoutAttr);
+		}
+	}
+
+	public static XamlNode getNode(CreateRequest createReq) {
+		Object newObject = createReq.getNewObject();
+		if (newObject instanceof Entry) {
+			return getNode((Entry) newObject);
+		}
+		return null;
+	}
+
+	private XamlNode createNode(Entry entry) {
+		if (entry == null || entry.getContent() == null) {
+			return null;
+		}
+		String content = entry.getContent();
+		DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
+		try {
+			DocumentBuilder domBuilder = domFactory.newDocumentBuilder();
+			try {
+				org.w3c.dom.Document document = domBuilder.parse(new ByteArrayInputStream(content.getBytes()));
+				if (document != null) {
+					org.w3c.dom.Element element = document.getDocumentElement();
+					String name = element.getNodeName();
+					String ns = element.getNamespaceURI();
+					String prefix = element.getPrefix();
+					if (ns == null) {
+						ns = getNamespace(prefix);
+					}
+					XamlNode node = null;
+					if (name.indexOf(".") != -1) {
+						name = name.substring(name.indexOf(".") + 1);
+						node = XamlFactory.eINSTANCE.createXamlAttribute();
+						node.setName(name);
+						node.setNamespace(ns);
+					} else {
+						node = XamlFactory.eINSTANCE.createXamlElement();
+						node.setName(name);
+						node.setNamespace(ns);
+					}
+					node.setPrefix(prefix);
+					createModel(node, element);
+					return node;
+				}
+			} catch (Exception e) {
+				throw new XWTException(e);
+			}
+
+		} catch (ParserConfigurationException e) {
+			throw new XWTException(e);
+		}
+
+		return null;
+	}
+
+	private String getNamespace(String prefix) {
+		if ("x".equals(prefix)) {
+			return IConstants.XWT_X_NAMESPACE;
+		}
+		return IConstants.XWT_NAMESPACE;
+	}
+
+	private void createModel(XamlNode parent, org.w3c.dom.Element text) {
+		NamedNodeMap attributes = text.getAttributes();
+		if (attributes != null) {
+			int length = attributes.getLength();
+			for (int i = 0; i < length; i++) {
+				Attr attr = (Attr) attributes.item(i);
+				createAttribute(parent, attr);
+			}
+		}
+		NodeList childNodes = text.getChildNodes();
+		if (childNodes == null) {
+			return;
+		}
+		int length = childNodes.getLength();
+		for (int i = 0; i < length; i++) {
+			Node item = childNodes.item(i);
+			if (item instanceof Element) {
+				Element child = (Element) item;
+				createChild(parent, child);
+			}
+		}
+	}
+
+	private void createChild(XamlNode parent, Element child) {
+		String name = child.getNodeName();
+		String ns = child.getNamespaceURI();
+		String prefix = child.getPrefix();
+		if (ns == null) {
+			ns = getNamespace(prefix);
+		}
+		if (name.indexOf(".") != -1) {
+			name = name.substring(name.indexOf(".") + 1);
+			XamlAttribute a = XamlFactory.eINSTANCE.createXamlAttribute();
+			a.setName(name);
+			a.setNamespace(ns);
+			createModel(a, child);
+			parent.getAttributes().add(a);
+		} else {
+			XamlElement e = XamlFactory.eINSTANCE.createXamlElement();
+			e.setName(name);
+			e.setNamespace(ns);
+			createModel(e, child);
+			parent.getChildNodes().add(e);
+		}
+	}
+
+	/**
+	 * @param parent
+	 * @param attr
+	 */
+	private void createAttribute(XamlNode parent, Attr attr) {
+		if (attr == null) {
+			return;
+		}
+		String name = attr.getName();
+		String ns = attr.getNamespaceURI();
+		String value = attr.getNodeValue();
+		boolean containsCursor = false;
+		if (value != null && CURSOR_CONSTANTS.equals(value)) {
+			value = "";
+			containsCursor = true;
+		}
+		String prefix = attr.getPrefix();
+		int index = name.indexOf(":");
+		if (index != -1) {
+			prefix = name.substring(0, index);
+			name = name.substring(index + 1);
+		}
+		if (ns == null) {
+			ns = getNamespace(prefix);
+		}
+		XamlAttribute a = parent.getAttribute(name, ns);
+		if (a == null) {
+			a = XamlFactory.eINSTANCE.createXamlAttribute();
+			a.setName(name);
+			a.setNamespace(ns);
+			a.setPrefix(prefix);
+			a.setValue(value);
+			parent.getAttributes().add(a);
+		} else if (value == null && a.getValue() != null) {
+			a.setValue(null);
+		} else if (value != null && value != a.getValue()) {
+			a.setValue(value);
+		}
+		if (containsCursor) {
+			AnnotationTools.addAnnotation(a, ANN_CURSOR_DATA, name);
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/palette/InitializeHelper.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/palette/InitializeHelper.java
new file mode 100755
index 0000000..53494c3
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/palette/InitializeHelper.java
@@ -0,0 +1,86 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.palette;
+
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.tools.ui.designer.XWTDesignerPlugin;
+import org.eclipse.xwt.tools.ui.designer.dialogs.PropertyValueDialog;
+import org.eclipse.xwt.tools.ui.designer.preference.Preferences;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+import org.eclipse.xwt.tools.ui.xaml.tools.AnnotationTools;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class InitializeHelper {
+
+	public static boolean checkValue(XamlNode node) {
+		if (!XWTDesignerPlugin.getDefault().getPreferenceStore().getBoolean(Preferences.PROMPT_DURING_CREATION)) {
+			return true;
+		}
+		if (node == null) {
+			return false;
+		}
+		XamlNode cursorNode = getCursorNode(node);
+		if (cursorNode != null && cursorNode instanceof XamlAttribute) {
+			XamlAttribute a = (XamlAttribute) cursorNode;
+			IProperty property = XWTUtility.getProperty(a);
+			if (property != null) {
+				String init = "";
+				if ("text".equals(property.getName())) {
+					String name = node.getName();
+					init = "New" + name;
+				}
+				PropertyValueDialog dialog = new PropertyValueDialog(new Shell(), property, init);
+				if (dialog.open() == Window.OK) {
+					a.setValue(dialog.getResult());
+				} else {
+					return false;
+				}
+			}
+		}
+		return true;
+	}
+
+	private static XamlNode getCursorNode(XamlNode parent) {
+		if (parent == null) {
+			return null;
+		}
+		boolean isAnnotated = AnnotationTools.isAnnotated(parent, EntryHelper.ANN_CURSOR_DATA);
+		if (isAnnotated) {
+			return parent;
+		}
+		EList<XamlAttribute> attributes = parent.getAttributes();
+		for (XamlAttribute a : attributes) {
+			XamlNode node = getCursorNode(a);
+			if (node != null) {
+				return node;
+			}
+		}
+		EList<XamlElement> childNodes = parent.getChildNodes();
+		for (XamlElement c : childNodes) {
+			XamlNode node = getCursorNode(c);
+			if (node != null) {
+				return node;
+			}
+		}
+		return null;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/palette/XWTPaletteProvider.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/palette/XWTPaletteProvider.java
new file mode 100755
index 0000000..e8497fd
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/palette/XWTPaletteProvider.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.palette;
+
+import org.eclipse.xwt.tools.ui.palette.page.resources.URIResourceProvider;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.xwt.tools.ui.designer.XWTDesignerPlugin;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class XWTPaletteProvider extends URIResourceProvider {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.tools.palette.page.resources.PaletteResourceProvider#getPaletteResourceURI()
+	 */
+	protected URI getPaletteResourceURI() {
+		return URI.createPlatformPluginURI(XWTDesignerPlugin.PLUGIN_ID + "/palette/xwt.palette", true);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/problems/XWTAbstractNodeChecker.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/problems/XWTAbstractNodeChecker.java
new file mode 100755
index 0000000..7099807
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/problems/XWTAbstractNodeChecker.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.problems;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.xwt.tools.ui.designer.core.editor.Designer;
+import org.eclipse.xwt.tools.ui.designer.core.problems.DesignerProblemChecker;
+import org.eclipse.xwt.tools.ui.designer.core.problems.Problem;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public abstract class XWTAbstractNodeChecker extends DesignerProblemChecker {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.tools.designer.problems.IProblemChecker#doCheck()
+	 */
+	public List<Problem> doCheck() {
+		Designer designer = getDesigner();
+		if (designer == null) {
+			return null;
+		}
+		IDocument document = designer.getDocument();
+		if (document == null) {
+			return null;
+		}
+		Document textDocument = getTextDocument(document);
+		if (textDocument == null) {
+			return null;
+		}
+		Element root = textDocument.getDocumentElement();
+		if (root == null) {
+			return null;
+		}
+		List<Problem> problems = new ArrayList<Problem>();
+		checkNode(root, problems);
+		return problems;
+	}
+
+	protected abstract void checkNode(Node node, List<Problem> problems);
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/problems/XWTAttributeChecker.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/problems/XWTAttributeChecker.java
new file mode 100755
index 0000000..4c9b864
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/problems/XWTAttributeChecker.java
@@ -0,0 +1,120 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.problems;
+
+import java.util.List;
+
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.xwt.tools.ui.designer.core.problems.Problem;
+import org.eclipse.xwt.tools.ui.designer.core.util.DomHelper;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class XWTAttributeChecker extends XWTAbstractNodeChecker {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.editor.problems.XWTAbstractNodeChecker#checkNode(org.w3c.dom.Node, java.util.List)
+	 */
+	protected void checkNode(Node node, List<Problem> problems) {
+		if (node == null || Node.TEXT_NODE == node.getNodeType()) {
+			return;
+		}
+		NodeList childNodes = node.getChildNodes();
+		if (childNodes != null) {
+			for (int i = 0; i < childNodes.getLength(); i++) {
+				checkNode(childNodes.item(i), problems);
+			}
+		}
+		String nodeName = node.getNodeName();
+		String prefix = node.getPrefix();
+		String ns = DomHelper.lookupNamespaceURI(node, prefix);
+		int index = nodeName.indexOf(":");
+		if (index != -1) {
+			nodeName = nodeName.substring(index + 1);
+		}
+		String attrName = null;
+		index = nodeName.indexOf(".");
+		if (index != -1) {
+			attrName = nodeName.substring(index + 1);
+			nodeName = nodeName.substring(0, index);
+		}
+		IMetaclass metaclass = XWTUtility.getMetaclass(nodeName, ns);
+		if (attrName != null) {
+			index = attrName.indexOf(".");
+			while (index != -1) {
+				String newAttr = attrName.substring(0, index);
+				attrName = attrName.substring(index + 1);
+				index = attrName.indexOf(".");
+				if (newAttr != null && !"Resources".equalsIgnoreCase(newAttr) && !"DataContext".equalsIgnoreCase(newAttr)) {
+					IProperty p = metaclass.findProperty(newAttr);
+					if (p == null && metaclass.findEvent(attrName) == null) {
+						problems.add(createError(node, "\"" + newAttr + "\" can not be resolved to a property of \"" + nodeName + "\""));
+					}
+					if (p != null) {
+						metaclass = XWT.getMetaclass(p.getType());
+					}
+				}
+			}
+			if (metaclass != null && attrName != null && !"Resources".equalsIgnoreCase(attrName) && !"DataContext".equalsIgnoreCase(attrName)) {
+				IProperty p = metaclass.findProperty(attrName);
+				if (p == null && metaclass.findEvent(attrName) == null) {
+					problems.add(createError(node, "\"" + attrName + "\" can not be resolved to a property of \"" + nodeName + "\""));
+				}
+				if (p != null) {
+					metaclass = XWT.getMetaclass(p.getType());
+				}
+			}
+		}
+		NamedNodeMap attributes = node.getAttributes();
+		if (metaclass == null || attributes == null || attributes.getLength() == 0) {
+			return;
+		}
+		for (int i = 0; i < attributes.getLength(); i++) {
+			Node item = attributes.item(i);
+			attrName = item.getNodeName();
+			if (attrName.startsWith("xmlns")) {
+				continue;
+			}
+			if (attrName.indexOf(":") != -1) {
+				attrName = attrName.substring(attrName.indexOf(":") + 1);
+			}
+			if ("Key".equalsIgnoreCase(attrName) || "Name".equalsIgnoreCase(attrName) || "Class".equalsIgnoreCase(attrName) || "style".equalsIgnoreCase(attrName)) {
+				continue;
+			}
+			IMetaclass attachedMetaclass = null;
+			index = attrName.indexOf(".");
+			while (index != -1) {
+				String attachedName = attrName.substring(0, index);
+				attrName = attrName.substring(index + 1);
+				index = attrName.indexOf(".");
+				if (attachedName != null) {
+					attachedMetaclass = XWTUtility.getMetaclass(attachedName, ns);
+				}
+			}
+			if (metaclass.findProperty(attrName) == null && metaclass.findEvent(attrName) == null) {
+				if (attachedMetaclass != null && attachedMetaclass.findProperty(attrName) == null && attachedMetaclass.findEvent(attrName) == null) {
+					problems.add(createError(node, "\"" + attrName + "\" can not be resolved to a property of \"" + nodeName + "\""));
+				}
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/problems/XWTElementChecker.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/problems/XWTElementChecker.java
new file mode 100755
index 0000000..87cccde
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/problems/XWTElementChecker.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.problems;
+
+import java.util.List;
+
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.tools.ui.designer.core.problems.Problem;
+import org.eclipse.xwt.tools.ui.designer.core.util.DomHelper;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class XWTElementChecker extends XWTAbstractNodeChecker {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.editor.problems.XWTNodeChecker#checkNode(org.w3c.dom.Element, java.util.List)
+	 */
+	protected void checkNode(Node node, List<Problem> problems) {
+		if (Node.TEXT_NODE == node.getNodeType()) {
+			return;
+		}
+		NodeList childNodes = node.getChildNodes();
+		if (childNodes != null) {
+			for (int i = 0; i < childNodes.getLength(); i++) {
+				checkNode(childNodes.item(i), problems);
+			}
+		}
+		String nodeName = node.getNodeName();
+		String prefix = node.getPrefix();
+		String ns = DomHelper.lookupNamespaceURI(node, prefix);
+		if (nodeName.indexOf(":") != -1) {
+			nodeName = nodeName.substring(nodeName.indexOf(":") + 1);
+		}
+		if (nodeName.indexOf(".") != -1 || "Array".equals(nodeName)) {
+			return;
+		}
+		if (node instanceof Element) {
+			IMetaclass metaclass = XWTUtility.getMetaclass(nodeName, ns);
+			if (metaclass == null) {
+				problems.add(createProblem(node, "\"" + nodeName + "\" can not be resolved to a Type.", Problem.ERROR));
+			}
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/AddSashFormChildCommands.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/AddSashFormChildCommands.java
new file mode 100755
index 0000000..56873f3
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/AddSashFormChildCommands.java
@@ -0,0 +1,160 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.sash;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.internal.utils.LoggerManager;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.gef.EditPart;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.widgets.Sash;
+import org.eclipse.xwt.tools.ui.designer.commands.AddNewChildCommand;
+import org.eclipse.xwt.tools.ui.designer.core.util.SashUtil;
+import org.eclipse.xwt.tools.ui.designer.parts.SashEditPart;
+import org.eclipse.xwt.tools.ui.designer.parts.SashFormEditPart;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+public class AddSashFormChildCommands extends AddNewChildCommand {
+	public static final String WIEGHTS_ATTR = "weights";
+	private EditPart host;
+	private int[] oldWeights;
+	private boolean hasWeightsAttribute = false;
+
+	public AddSashFormChildCommands(EditPart parent, XamlNode child) {
+		this(parent, child, -1);
+	}
+
+	public AddSashFormChildCommands(EditPart parent, XamlNode child, int index) {
+		super((XamlNode) parent.getModel(), child, index);
+		this.host = parent;
+	}
+
+	@Override
+	public boolean canExecute() {
+		boolean result = super.canExecute() && host instanceof SashFormEditPart;
+		if (!result) {
+			return false;
+		}
+		XamlNode child = getChild();
+		String name = child.getName();
+		String ns = child.getNamespace();
+		IMetaclass metaclass = XWT.getMetaclass(name, ns);
+		return metaclass.getType() != Sash.class;
+	}
+
+	@Override
+	public void execute() {
+		XamlNode sashForm = (XamlNode) host.getModel();
+		XamlAttribute attribute = sashForm.getAttribute(WIEGHTS_ATTR,
+				IConstants.XWT_NAMESPACE);
+		SashFormEditPart sashFormEditPart = (SashFormEditPart) host;
+		SashForm form = (SashForm) sashFormEditPart.getWidget();
+
+		hasWeightsAttribute = (attribute != null);
+		if (!hasWeightsAttribute) {
+			super.execute();
+			return;
+		}
+		
+		oldWeights = form.getWeights();
+
+		int children = 0;
+
+		for (Object child : sashFormEditPart.getChildren()) {
+			if (!(child instanceof SashEditPart)) {
+				children++;
+			}
+		}
+
+		if (children == 0) {
+			try {
+				// add in the list first
+				super.execute();
+			} catch (Exception e) {
+				LoggerManager.log(e);
+			}
+			return;
+		}
+
+		int[] weights = new int[children + 1];
+		int sum = 0;
+		if (oldWeights.length != 0) {
+			for (int i = 0; i < oldWeights.length; i++) {
+				weights[i] = oldWeights[i];
+				sum += oldWeights[i];
+			}
+			if (children > oldWeights.length) {
+				int delta = sum / (children - oldWeights.length);
+				for (int i = oldWeights.length; i < children - 1; i++) {
+					weights[i] = delta;
+				}
+				weights[children - 1] = sum
+						- (delta * (children - oldWeights.length));
+			}
+
+			int index = getIndex();
+			if (index == -1) {
+				index = children;
+			}
+
+			int part1 = weights[index] / 2;
+			int part2 = weights[index] - part1;
+
+			for (int i = children - 1; i > index; i--) {
+				weights[i + 1] = oldWeights[i];
+			}
+			weights[index] = part1;
+			weights[index + 1] = part2;
+		} else {
+			int delta = 1000 / weights.length;
+			for (int i = 0; i < weights.length - 1; i++) {
+				weights[i] = delta;
+			}
+			weights[weights.length - 1] = sum - (delta * (children));
+		}
+
+		try {
+			// add in the list first
+			super.execute();
+
+			if (weights.length > 1) {
+				// update the weights after, since the Notifier as update it.
+				// Her we just override it.
+				String value = SashUtil.weightsValue(weights);
+				if (attribute == null) {
+					attribute = XamlFactory.eINSTANCE.createAttribute(
+							WIEGHTS_ATTR, IConstants.XWT_NAMESPACE);
+					sashForm.getAttributes().add(attribute);
+				}
+				attribute.setValue(value);
+			}
+		} catch (Exception e) {
+			LoggerManager.log(e);
+		}
+	}
+
+	@Override
+	public void undo() {
+		super.undo();
+		if (hasWeightsAttribute) {
+			XamlNode sashForm = (XamlNode) host.getModel();
+			String value = SashUtil.weightsValue(oldWeights);
+			XamlAttribute attribute = sashForm.getAttribute(WIEGHTS_ATTR,
+					IConstants.XWT_NAMESPACE);
+			attribute.setValue(value);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashFormChildResizableEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashFormChildResizableEditPolicy.java
new file mode 100755
index 0000000..d2d25a9
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashFormChildResizableEditPolicy.java
@@ -0,0 +1,88 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.sash;
+
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.draw2d.geometry.Transposer;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gef.requests.SelectionRequest;
+import org.eclipse.xwt.tools.ui.designer.parts.SashFormEditPart;
+import org.eclipse.xwt.tools.ui.designer.policies.NewResizableEditPolicy;
+
+/**
+ * 
+ * @author yyang <yves.yang@soyatec.com>
+ * 
+ */
+public class SashFormChildResizableEditPolicy extends NewResizableEditPolicy {
+	public static final int WIDTH = 10;
+
+	public SashFormChildResizableEditPolicy(int directions,
+			boolean displayNonHandles) {
+		super(directions, displayNonHandles);
+	}
+
+	@Override
+	public EditPart getTargetEditPart(Request request) {
+		EditPart part = getTargetEditPart(request,
+				(GraphicalEditPart) getHost());
+		if (part != null) {
+			return part;
+		}
+		return super.getTargetEditPart(request);
+	}
+
+	public static EditPart getTargetEditPart(Request request,
+			GraphicalEditPart editPart) {
+		SashFormEditPart sashFormEditPart = (SashFormEditPart) editPart
+				.getParent();
+		IFigure figure = editPart.getFigure();
+		Rectangle bounds = figure.getBounds().getCopy();
+		figure.translateToAbsolute(bounds);
+
+		Transposer transposer = new Transposer();
+		transposer.setEnabled(!sashFormEditPart.isHorizontal());
+		bounds = transposer.t(bounds);
+
+		if (request instanceof CreateRequest) {
+			CreateRequest createRequest = (CreateRequest) request;
+			Point location = createRequest.getLocation().getCopy();
+			location = transposer.t(location);
+
+			if (location.x <= bounds.x + WIDTH
+					|| location.x > bounds.x + bounds.width - WIDTH) {
+				return sashFormEditPart;
+			}
+		} else if (request instanceof SelectionRequest) {
+			SelectionRequest locationRequest = (SelectionRequest) request;
+			Point location = locationRequest.getLocation().getCopy();
+			location = transposer.t(location);
+			List<EditPart> children = sashFormEditPart.getChildren();
+			int index = children.indexOf(editPart);
+			if (index != 0 && location.x <= bounds.x + WIDTH) {
+				return children.get(index - 1);
+			} else if (location.x > bounds.x + bounds.width - WIDTH
+					&& index != (children.size() - 1)) {
+				return children.get(index + 1);
+			}
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashFormDeleteCommand.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashFormDeleteCommand.java
new file mode 100755
index 0000000..cd56b72
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashFormDeleteCommand.java
@@ -0,0 +1,145 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.sash;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * Delete the elements and update the weights
+ * 
+ * @author jliu jin.liu@soyatec.com
+ */
+public class SashFormDeleteCommand extends Command {
+	private List<XamlNode> deleteNodes;
+	private Map<EObject, DeleteData> deletedObjects = new HashMap<EObject, DeleteData>(
+			1);
+
+	public SashFormDeleteCommand(List deleteNodes) {
+		this.deleteNodes = convertNodes(deleteNodes);
+	}
+
+	public SashFormDeleteCommand(XamlNode singleNode) {
+		this(Collections.singletonList(singleNode));
+	}
+
+	/**
+	 * @param deleteNodes
+	 * @return
+	 */
+	private List<XamlNode> convertNodes(List deleteNodes) {
+		if (deleteNodes == null) {
+			return null;
+		}
+		List<XamlNode> nodes = new ArrayList<XamlNode>();
+		for (Iterator iterator = deleteNodes.iterator(); iterator.hasNext();) {
+			Object obj = (Object) iterator.next();
+			if (obj instanceof EditPart) {
+				obj = ((EditPart) obj).getModel();
+			}
+			if (obj instanceof XamlNode) {
+				nodes.add((XamlNode) obj);
+			}
+		}
+		return nodes;
+	}
+
+	public boolean canExecute() {
+		return deleteNodes != null && !deleteNodes.isEmpty();
+	}
+
+	public void execute() {
+		for (XamlNode deleted : deleteNodes) {
+			DeleteData dd = new DeleteData();
+			dd.parent = (EObject) deleted.eContainer();
+			if (deleted instanceof XamlElement) {
+				if (dd.parent instanceof XamlNode) {
+					dd.index = ((XamlNode) dd.parent).getChildNodes().indexOf(
+							deleted);
+					if (dd.index > -1) {
+						((XamlNode) dd.parent).getChildNodes().remove(dd.index);
+					}
+				} else if (dd.parent instanceof XamlDocument) {
+					((XamlDocument) dd.parent).setRootElement(null);
+				}
+			} else if (deleted instanceof XamlAttribute
+					&& dd.parent instanceof XamlNode) {
+				dd.index = ((XamlNode) dd.parent).getAttributes().indexOf(
+						deleted);
+				if (dd.index > -1) {
+					((XamlNode) dd.parent).getAttributes().remove(dd.index);
+				}
+			}
+			deletedObjects.put(deleted, dd);
+		}
+	}
+
+	public boolean canUndo() {
+		return !deletedObjects.isEmpty();
+	}
+
+	public void undo() {
+		Set<EObject> deletedKeys = deletedObjects.keySet();
+		for (EObject deleted : deletedKeys) {
+			DeleteData dd = deletedObjects.get(deleted);
+			if (dd == null) {
+				continue;
+			}
+			EObject parent = dd.parent;
+			int index = dd.index;
+			if (deleted instanceof XamlElement) {
+				if (parent instanceof XamlNode) {
+					if (index > -1) {
+						((XamlNode) parent).getChildNodes().add(index,
+								(XamlElement) deleted);
+					} else {
+						((XamlNode) parent).getChildNodes().add(
+								(XamlElement) deleted);
+					}
+				} else if (parent instanceof XamlDocument) {
+					((XamlDocument) parent)
+							.setRootElement((XamlElement) deleted);
+				}
+			} else if (deleted instanceof XamlAttribute
+					&& parent instanceof XamlNode) {
+				if (index > -1) {
+					((XamlNode) parent).getAttributes().add(index,
+							(XamlAttribute) deleted);
+				} else {
+					((XamlNode) parent).getAttributes().add(
+							(XamlAttribute) deleted);
+				}
+			}
+		}
+		deletedKeys.clear();
+		deletedObjects.clear();
+	}
+
+	static class DeleteData {
+		EObject parent;
+		int index = -1;
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashFormInsertCreateCommand.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashFormInsertCreateCommand.java
new file mode 100755
index 0000000..f196059
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashFormInsertCreateCommand.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.sash;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.xwt.tools.ui.designer.commands.InsertCreateCommand;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class SashFormInsertCreateCommand extends InsertCreateCommand {
+
+	public SashFormInsertCreateCommand(EditPart parent, EditPart reference,
+			CreateRequest createRequest, int index) {
+		super(parent, reference, createRequest, index);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.tools.ui.designer.commands.AbstractCreationCommand
+	 * #createCreateCommand(org.soyatec.tools.designer.xaml.XamlNode,
+	 * org.soyatec.tools.designer.xaml.XamlNode)
+	 */
+	protected Command createCreateCommand(XamlNode parent, XamlNode child) {
+		return new AddSashFormChildCommands(getParent(), child, getIndex());
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashFormLayoutEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashFormLayoutEditPolicy.java
new file mode 100755
index 0000000..2685764
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashFormLayoutEditPolicy.java
@@ -0,0 +1,464 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.sash;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.Polygon;
+import org.eclipse.draw2d.Polyline;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.draw2d.geometry.Transposer;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.RequestConstants;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.FlowLayoutEditPolicy;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.ChangeBoundsRequest;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gef.requests.DropRequest;
+import org.eclipse.gef.requests.GroupRequest;
+import org.eclipse.gef.requests.SelectionRequest;
+import org.eclipse.xwt.tools.ui.designer.commands.ChangeWeightsCommand;
+import org.eclipse.xwt.tools.ui.designer.commands.MoveChildCommand;
+import org.eclipse.xwt.tools.ui.designer.core.parts.VisualEditPart;
+import org.eclipse.xwt.tools.ui.designer.parts.ControlEditPart;
+import org.eclipse.xwt.tools.ui.designer.parts.SashEditPart;
+import org.eclipse.xwt.tools.ui.designer.parts.SashFormEditPart;
+import org.eclipse.xwt.tools.ui.designer.parts.misc.CompositeEditPartHelper;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jin.liu (jin.liu@soyatec.com)
+ * 
+ */
+public class SashFormLayoutEditPolicy extends FlowLayoutEditPolicy {
+	static int WIDTH = 4;
+	private Polygon insertionLine;
+
+	private int index = 0;
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#getCreateCommand(org.eclipse
+	 * .gef.requests.CreateRequest)
+	 */
+	protected Command getCreateCommand(CreateRequest request) {
+		SashFormEditPart host = (SashFormEditPart) getHost();
+		List<ControlEditPart> children = CompositeEditPartHelper
+				.getChildren(host);
+		EditPart reference;
+		int i;
+		if (index == -1 || children.size() == 0) {
+			i = -1;
+			reference = null;
+		} else {
+			boolean after = !(index % 2 == 0);
+			i = index / 2;
+			if (after) {
+				i++;
+			}
+			reference = children.get(i);
+		}
+		return new SashFormInsertCreateCommand(getHost(), reference, request, i);
+	}
+
+	protected Point getLocationFromRequest(Request request) {
+		return ((DropRequest) request).getLocation();
+	}
+
+	protected Polyline getLineFeedback() {
+		if (insertionLine == null) {
+			insertionLine = new Polygon();
+			insertionLine.setLineWidth(WIDTH);
+			insertionLine.addPoint(new Point(0, 0));
+			insertionLine.addPoint(new Point(10, 10));
+			insertionLine.addPoint(new Point(10, 10));
+			insertionLine.addPoint(new Point(10, 10));
+			insertionLine.setForegroundColor(ColorConstants.lightBlue);
+			addFeedback(insertionLine);
+		}
+		return insertionLine;
+	}
+
+	/**
+	 * @see LayoutEditPolicy#eraseLayoutTargetFeedback(Request)
+	 */
+	protected void eraseLayoutTargetFeedback(Request request) {
+		if (insertionLine != null) {
+			removeFeedback(insertionLine);
+			insertionLine = null;
+		}
+	}
+
+	/**
+	 * display the feedback when it is armed to insert an child
+	 * 
+	 */
+	@Override
+	protected void showLayoutTargetFeedback(Request request) {
+		if (!RequestConstants.REQ_CREATE.equals(request.getType())) {
+			return;
+		}
+
+		Polyline fb = getLineFeedback();
+		Transposer transposer = new Transposer();
+		transposer.setEnabled(!isHorizontal());
+
+		SashFormEditPart host = (SashFormEditPart) getHost();
+		List<ControlEditPart> children = CompositeEditPartHelper
+				.getChildren(host);
+		Rectangle parentBox = transposer.t(getAbsoluteBounds(host));
+		if (children.size() == 0) {
+			Point p1 = new Point(parentBox.x, parentBox.y);
+			p1 = transposer.t(p1);
+			Point p2 = new Point(parentBox.x, parentBox.y + parentBox.height);
+			p2 = transposer.t(p2);
+
+			Point p3 = new Point(parentBox.x + parentBox.width / 2, parentBox.y
+					+ parentBox.height);
+			p3 = transposer.t(p3);
+
+			Point p4 = new Point(parentBox.x + parentBox.width / 2, parentBox.y);
+			p4 = transposer.t(p4);
+
+			fb.translateToRelative(p1);
+			fb.setPoint(p1, 0);
+			fb.translateToRelative(p2);
+			fb.setPoint(p2, 1);
+			fb.translateToRelative(p3);
+			fb.setPoint(p3, 2);
+			fb.translateToRelative(p4);
+			fb.setPoint(p4, 3);
+			return;
+		} else if (children.size() == 1) {
+			Point p1 = new Point(parentBox.x + parentBox.width / 2, parentBox.y);
+			p1 = transposer.t(p1);
+			Point p2 = new Point(parentBox.x + parentBox.width / 2, parentBox.y
+					+ parentBox.height);
+			p2 = transposer.t(p2);
+
+			Point p3 = new Point(parentBox.x + parentBox.width, parentBox.y
+					+ parentBox.height);
+			p3 = transposer.t(p3);
+
+			Point p4 = new Point(parentBox.x + parentBox.width, parentBox.y);
+			p4 = transposer.t(p4);
+
+			fb.translateToRelative(p1);
+			fb.setPoint(p1, 0);
+			fb.translateToRelative(p2);
+			fb.setPoint(p2, 1);
+			fb.translateToRelative(p3);
+			fb.setPoint(p3, 2);
+			fb.translateToRelative(p4);
+			fb.setPoint(p4, 3);
+			return;
+		}
+
+		boolean before = true;
+		int epIndex = getFeedbackIndexFor(request);
+		Rectangle r = null;
+		GraphicalEditPart editPart;
+		index = epIndex;
+		if (epIndex == -1) {
+			before = false;
+			epIndex = children.size() - 1;
+			editPart = children.get(epIndex);
+			r = transposer.t(getAbsoluteBounds(editPart));
+		} else {
+			editPart = children.get(epIndex);
+			r = transposer.t(getAbsoluteBounds(editPart));
+			Point p = transposer.t(getLocationFromRequest(request));
+			if (p.x <= r.x + (r.width / 2))
+				before = true;
+			else {
+				/*
+				 * We are not to the left of this Figure, so the emphasis line
+				 * needs to be to the right of the previous Figure, which must
+				 * be on the previous row.
+				 */
+				before = false;
+				epIndex--;
+				editPart = children.get(epIndex);
+				r = transposer.t(getAbsoluteBounds(editPart));
+			}
+		}
+
+		int x = Integer.MIN_VALUE;
+		if (before) {
+			/*
+			 * Want the line to be halfway between the end of the previous and
+			 * the beginning of this one. If at the begining of a line, then
+			 * start halfway between the left edge of the parent and the
+			 * beginning of the box, but no more than 5 pixels (it would be too
+			 * far and be confusing otherwise).
+			 */
+			if (epIndex > 0) {
+				// Need to determine if a line break.
+				Rectangle boxPrev = transposer.t(getAbsoluteBounds(children
+						.get(epIndex - 1)));
+				int prevRight = boxPrev.right();
+				if (prevRight < r.x) {
+					// Not a line break
+					x = prevRight + (r.x - prevRight) / 2;
+				} else if (prevRight == r.x) {
+					x = prevRight + 1;
+				}
+			}
+			if (x == Integer.MIN_VALUE) {
+				// It is a line break.
+				x = r.x - 5;
+				if (x < parentBox.x)
+					x = parentBox.x + (r.x - parentBox.x) / 2;
+			}
+		} else {
+			/*
+			 * We only have before==false if we are at the end of a line, so go
+			 * halfway between the right edge and the right edge of the parent,
+			 * but no more than 5 pixels.
+			 */
+			int rRight = r.x + r.width;
+			int pRight = parentBox.x + parentBox.width;
+			x = rRight + 5;
+			if (x > pRight)
+				x = rRight + (pRight - rRight) / 2;
+		}
+		Point p1 = new Point(x, r.y);
+		p1 = transposer.t(p1);
+		Point p2 = new Point(x, r.y + parentBox.height);
+		p2 = transposer.t(p2);
+
+		Point p3;
+		Point p4;
+
+		if (editPart instanceof SashEditPart) {
+			if (before) {
+				editPart = children.get(epIndex - 1);
+				before = false;
+			} else {
+				editPart = children.get(epIndex + 1);
+			}
+		}
+
+		Rectangle sibleBound = transposer.t(getAbsoluteBounds(editPart));
+		if (before) {
+			p3 = new Point(x + sibleBound.width / 2, r.y + parentBox.height);
+			p4 = new Point(x + sibleBound.width / 2, r.y);
+		} else {
+			p3 = new Point(x - sibleBound.width / 2, r.y + parentBox.height);
+			p4 = new Point(x - sibleBound.width / 2, r.y);
+		}
+		p3 = transposer.t(p3);
+		p4 = transposer.t(p4);
+
+		fb.translateToRelative(p1);
+		fb.setPoint(p1, 0);
+		fb.translateToRelative(p2);
+		fb.setPoint(p2, 1);
+		fb.translateToRelative(p3);
+		fb.setPoint(p3, 2);
+		fb.translateToRelative(p4);
+		fb.setPoint(p4, 3);
+	}
+
+	private Rectangle getAbsoluteBounds(GraphicalEditPart ep) {
+		Rectangle bounds = ep.getFigure().getBounds().getCopy();
+		ep.getFigure().translateToAbsolute(bounds);
+		return bounds;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.editpolicies.OrderedLayoutEditPolicy#createAddCommand
+	 * (org.eclipse.gef.EditPart, org.eclipse.gef.EditPart)
+	 */
+	protected Command createAddCommand(EditPart child, EditPart after) {
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.editpolicies.OrderedLayoutEditPolicy#createMoveChildCommand
+	 * (org.eclipse.gef.EditPart, org.eclipse.gef.EditPart)
+	 */
+	protected Command createMoveChildCommand(EditPart child, EditPart after) {
+		return new MoveChildCommand(child, after);
+	}
+
+	@Override
+	public EditPart getTargetEditPart(Request request) {
+		if (request instanceof SelectionRequest) {
+			SashFormEditPart host = (SashFormEditPart) getHost();
+			List<ControlEditPart> children = CompositeEditPartHelper
+					.getChildren(host);
+			if (children.size() == 0) {
+				return null;
+			}
+
+			SelectionRequest selectionRequest = (SelectionRequest) request;
+			Transposer transposer = new Transposer();
+			transposer.setEnabled(!isHorizontal());
+			Point location = selectionRequest.getLocation().getCopy();
+			location = transposer.t(location);
+
+			CreateRequest createRequest = new CreateRequest();
+			createRequest.setLocation(selectionRequest.getLocation());
+			int index = getFeedbackIndexFor(createRequest);
+			if (index == -1) {
+				return null;
+			}
+			if (index == 0) {
+				return children.get(0);
+			}
+			GraphicalEditPart reference = (GraphicalEditPart) children
+					.get(index);
+			Rectangle bounds = getAbsoluteBounds(reference);
+			bounds = transposer.t(bounds);
+			GraphicalEditPart previousSash = null;
+			GraphicalEditPart nextSash = null;
+
+			if (reference instanceof SashEditPart) {
+				if (location.x < bounds.x + (bounds.width / 2)) {
+					nextSash = reference;
+					if (index - 2 < 0) {
+						return reference;
+					}
+					previousSash = (GraphicalEditPart) children.get(index - 2);
+				} else {
+					previousSash = reference;
+					if (index + 2 >= children.size()) {
+						return reference;
+					}
+					nextSash = (GraphicalEditPart) children.get(index + 2);
+
+				}
+			} else {
+				previousSash = (GraphicalEditPart) children.get(index - 1);
+				nextSash = (GraphicalEditPart) children.get(index);
+			}
+			Rectangle previousBounds = getAbsoluteBounds(previousSash);
+			previousBounds = transposer.t(previousBounds);
+
+			Rectangle nextBounds = getAbsoluteBounds(nextSash);
+			nextBounds = transposer.t(nextBounds);
+
+			int width = nextBounds.x - previousBounds.x - previousBounds.width;
+			if (location.x < previousBounds.x + previousBounds.width + width
+					/ 2) {
+				return previousSash;
+			}
+			return nextSash;
+		}
+		return super.getTargetEditPart(request);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#getCommand(org.eclipse.
+	 * gef.Request)
+	 */
+	public Command getCommand(Request request) {
+		if (request instanceof ChangeBoundsRequest) {
+			return createChangeBoundsCommand((ChangeBoundsRequest) request);
+		}
+		return super.getCommand(request);
+	}
+
+	protected Command getDeleteDependantCommand(GroupRequest request) {
+		List<?> editParts = request.getEditParts();
+		if (!editParts.isEmpty()) {
+			List<XamlNode> deleteThems = new ArrayList<XamlNode>();
+			for (Iterator<?> iterator = editParts.iterator(); iterator
+					.hasNext();) {
+				Object object = (Object) iterator.next();
+				if (object instanceof VisualEditPart) {
+					VisualEditPart part = (VisualEditPart) object;
+					deleteThems.add((XamlNode) part.getCastModel());
+				}
+			}
+			if (!deleteThems.isEmpty()) {
+				return new SashFormDeleteCommand(deleteThems);
+			}
+		}
+		return super.getDeleteDependantCommand(request);
+	}
+
+	protected Command createChangeBoundsCommand(ChangeBoundsRequest request) {
+		boolean isChildRequest = true;
+		for (Object object : request.getEditParts()) {
+			if (object instanceof SashFormEditPart) {
+				isChildRequest = false;
+				break;
+			}
+		}
+		if (isChildRequest) {
+			return new ChangeWeightsCommand((SashFormEditPart) getHost(),
+					request);
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.editpolicies.OrderedLayoutEditPolicy#createChildEditPolicy
+	 * (org.eclipse.gef.EditPart)
+	 */
+	protected EditPolicy createChildEditPolicy(EditPart child) {
+		if (child instanceof SashEditPart) {
+			return new SashMoveableEditPolicy((SashEditPart) child);
+		}
+
+		List<ControlEditPart> children = CompositeEditPartHelper
+				.getChildren((SashFormEditPart) getHost());
+		if (children.size() < 2) {
+			return new NonResizableEditPolicy();
+		}
+		int directions = 0;
+		if (isHorizontal()) {
+			directions = PositionConstants.EAST_WEST;
+		} else {
+			directions = PositionConstants.NORTH_SOUTH;
+		}
+		child.removeEditPolicy(PRIMARY_DRAG_ROLE);
+		return new SashFormChildResizableEditPolicy(directions, false);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.FlowLayoutEditPolicy#isHorizontal()
+	 */
+	protected boolean isHorizontal() {
+		SashFormEditPart host = (SashFormEditPart) getHost();
+		return ((SashFormEditPart) host).isHorizontal();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashMoveableEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashMoveableEditPolicy.java
new file mode 100755
index 0000000..d654424
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/sash/SashMoveableEditPolicy.java
@@ -0,0 +1,183 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.sash;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.draw2d.geometry.Transposer;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.editpolicies.ResizableEditPolicy;
+import org.eclipse.gef.handles.ResizableHandleKit;
+import org.eclipse.gef.requests.ChangeBoundsRequest;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.xwt.tools.ui.designer.core.parts.tools.SelectionHandle;
+import org.eclipse.xwt.tools.ui.designer.core.util.SashUtil;
+import org.eclipse.xwt.tools.ui.designer.parts.ControlEditPart;
+import org.eclipse.xwt.tools.ui.designer.parts.SashEditPart;
+import org.eclipse.xwt.tools.ui.designer.parts.SashFormEditPart;
+import org.eclipse.xwt.tools.ui.designer.parts.misc.CompositeEditPartHelper;
+import org.eclipse.xwt.tools.ui.designer.parts.misc.DragSashTracker;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public class SashMoveableEditPolicy extends ResizableEditPolicy {
+
+	private SashEditPart editPart;
+	private Label label;
+	private Point location = new Point();
+
+	public SashMoveableEditPolicy(SashEditPart editPart) {
+		this.editPart = editPart;
+	}
+
+	/**
+	 * Creates the figure used for feedback.
+	 * 
+	 * @return the new feedback figure
+	 */
+	protected IFigure createDragSourceFeedbackFigure() {
+		label = new Label();
+		label.setForegroundColor(ColorConstants.blue);
+		getFeedbackLayer().add(label);
+		return super.createDragSourceFeedbackFigure();
+	}
+
+	@Override
+	protected void eraseChangeBoundsFeedback(ChangeBoundsRequest request) {
+		super.eraseChangeBoundsFeedback(request);
+		if (label != null) {
+			removeFeedback(label);
+		}
+		label = null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.editpolicies.ResizableEditPolicy#createSelectionHandles()
+	 */
+	protected List<SelectionHandle> createSelectionHandles() {
+		List<SelectionHandle> list = new ArrayList<SelectionHandle>();
+		list.add(new SelectionHandle(editPart));
+		ResizableHandleKit.moveHandle(editPart, new DragSashTracker(editPart),
+				null);
+		return list;
+	}
+
+	/**
+	 * When we drag Sash
+	 * 
+	 */
+	protected void showChangeBoundsFeedback(ChangeBoundsRequest request) {
+		IFigure feedback = getDragSourceFeedbackFigure();
+
+		Transposer transposer = new Transposer();
+		transposer.setEnabled(!editPart.isHorizontal());
+
+		Rectangle rect = getInitialFeedbackBounds().getCopy();
+		getHostFigure().translateToAbsolute(rect);
+		rect = transposer.t(rect);
+
+		Point moveDelta = request.getMoveDelta().getCopy();
+		moveDelta = transposer.t(moveDelta);
+
+		rect.performTranslate(0, moveDelta.y);
+
+		SashFormEditPart sashFormEditPart = (SashFormEditPart) editPart
+				.getParent();
+		List<ControlEditPart> children = CompositeEditPartHelper.getChildren(sashFormEditPart);
+		SashForm sashForm = (SashForm) sashFormEditPart.getWidget();
+		int[] weights = sashForm.getWeights();
+
+		int index = children.indexOf(editPart);
+		int start;
+		int end;
+
+		if (index - 2 < 0) {
+			GraphicalEditPart previous = (GraphicalEditPart) children.get(0);
+			IFigure figure = previous.getFigure();
+			Rectangle rectangle = figure.getBounds().getCopy();
+			figure.translateToAbsolute(rectangle);
+			rectangle = transposer.t(rectangle);
+			start = rectangle.y;
+		} else {
+			GraphicalEditPart previous = (GraphicalEditPart) children
+					.get(index - 2);
+			IFigure figure = previous.getFigure();
+			Rectangle rectangle = figure.getBounds().getCopy();
+			figure.translateToAbsolute(rectangle);
+			rectangle = transposer.t(rectangle);
+			start = rectangle.y + rectangle.height;
+		}
+
+		if (index + 2 > children.size() - 1) {
+			GraphicalEditPart next = (GraphicalEditPart) children.get(children
+					.size() - 1);
+			IFigure figure = next.getFigure();
+			Rectangle rectangle = figure.getBounds().getCopy();
+			figure.translateToAbsolute(rectangle);
+			rectangle = transposer.t(rectangle);
+			end = rectangle.y + rectangle.height;
+		} else {
+			GraphicalEditPart next = (GraphicalEditPart) children
+					.get(index + 2);
+			IFigure figure = next.getFigure();
+			Rectangle rectangle = figure.getBounds().getCopy();
+			figure.translateToAbsolute(rectangle);
+			rectangle = transposer.t(rectangle);
+			end = rectangle.y;
+		}
+
+		if (rect.y < start) {
+			rect.y = start;
+		}
+		if (rect.y + rect.height > end) {
+			rect.y = end - rect.height;
+		}
+
+		int weightIndex = index / 2;
+		int total = weights[weightIndex] + weights[weightIndex + 1];
+
+		{
+			int previousWeight = (int) ((rect.y - start) * total / (end - start - rect.height));
+			weights[weightIndex] = previousWeight;
+			weights[weightIndex + 1] = total - previousWeight;
+
+			label.setText(SashUtil.weightsDisplayString(weights));
+			Dimension dimension = label.getPreferredSize();
+			label.setSize(dimension);
+			dimension = transposer.t(dimension);
+
+			location.y = (int) rect.y + 10;
+			location.x = (int) rect.x + (rect.width - dimension.width) / 2;
+		}
+		location = transposer.t(location);
+
+		rect = transposer.t(rect);
+
+		feedback.translateToRelative(rect);
+		feedback.setBounds(rect);
+
+		label.translateToRelative(location);
+		label.setLocation(location);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/source/XWTJavaEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/source/XWTJavaEditor.java
new file mode 100755
index 0000000..b76dab5
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/source/XWTJavaEditor.java
@@ -0,0 +1,89 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.source;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IFileEditorInput;
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.xwt.tools.ui.designer.core.ceditor.ISourcePage;
+import org.eclipse.xwt.tools.ui.designer.model.XamlDocumentProvider;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class XWTJavaEditor extends CompilationUnitEditor implements ISourcePage {
+
+	private IType type;
+
+	public IType getType() {
+		return type;
+	}
+
+	public String getPageName() {
+		return "Java";
+	}
+
+	public boolean isEnabledFor(IEditorPart editorPart) {
+		IEditorInput editorInput = editorPart.getEditorInput();
+		if (editorInput == null || !(editorInput instanceof FileEditorInput)) {
+			return false;
+		}
+		IFile file = ((IFileEditorInput) editorInput).getFile();
+		if (file == null || !file.exists()
+				|| !"xwt".equals(file.getFileExtension())) {
+			return false;
+		}
+		String clr = loadCLR(file);
+		if (clr == null) {
+			return false;
+		}
+		IProject project = file.getProject();
+		IJavaProject create = JavaCore.create(project);
+		try {
+			type = create.findType(clr);
+		} catch (JavaModelException e) {
+			e.printStackTrace();
+		}
+		return type != null;
+	}
+
+	private String loadCLR(IFile file) {
+		XamlDocument document = XamlDocumentProvider.getDocument(file);
+		if (document == null || document.getRootElement() == null) {
+			return null;
+		}
+		XamlElement root = document.getRootElement();
+		XamlAttribute attribute = root.getAttribute("Class",
+				IConstants.XWT_X_NAMESPACE);
+		return attribute != null ? attribute.getValue() : null;
+	}
+
+	public void configureSourcePage(IEditorPart editorPart) {
+		if (type == null) {
+			return;
+		}
+		setInput(new FileEditorInput((IFile) type.getResource()));
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/source/XWTSourceEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/source/XWTSourceEditor.java
new file mode 100755
index 0000000..4a74916
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/source/XWTSourceEditor.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.source;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IFileEditorInput;
+import org.eclipse.wst.sse.ui.StructuredTextEditor;
+import org.eclipse.xwt.tools.ui.designer.core.ceditor.ISourcePage;
+import org.eclipse.xwt.tools.ui.designer.model.XamlDocumentProvider;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public class XWTSourceEditor extends StructuredTextEditor implements
+		ISourcePage {
+
+	private XamlDocument document;
+
+	public String getPageName() {
+		return "Source";
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.tools.ui.designer.core.editor.ISourcePage#isEnabled()
+	 */
+	public boolean isEnabledFor(IEditorPart editorPart) {
+		return true;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.core.editor.ISourcePage#
+	 * configureSourcePage(org.eclipse.ui.IEditorPart)
+	 */
+	public void configureSourcePage(IEditorPart editorPart) {
+		setEditorPart(editorPart);
+		initializeDocument();
+	}
+
+	private void initializeDocument() {
+		IEditorInput editorInput = getEditorInput();
+		if (editorInput instanceof IFileEditorInput) {
+			IFile file = ((IFileEditorInput) editorInput).getFile();
+			document = XamlDocumentProvider.getDocument(file);
+		}
+		if (document != null) {
+			connect();
+		}
+	}
+
+	private void connect() {
+
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/text/XWTContentAssistProcessor.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/text/XWTContentAssistProcessor.java
new file mode 100755
index 0000000..1492ac0
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/text/XWTContentAssistProcessor.java
@@ -0,0 +1,983 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.text;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.StringTokenizer;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.xwt.IEventConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTMaps;
+import org.eclipse.xwt.converters.StringToInteger;
+import org.eclipse.xwt.metadata.IEvent;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.xwt.utils.NamedColorsUtil;
+import org.eclipse.xwt.utils.ResourceManager;
+import org.eclipse.jdt.core.IMethod;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.internal.core.JavaProject;
+import org.eclipse.jdt.internal.ui.JavaPluginImages;
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.contentassist.ICompletionProposal;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText;
+import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
+import org.eclipse.wst.xml.ui.internal.contentassist.ContentAssistRequest;
+import org.eclipse.wst.xml.ui.internal.contentassist.XMLContentAssistProcessor;
+import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImageHelper;
+import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImages;
+import org.eclipse.xwt.tools.ui.designer.core.style.SWTStyles;
+import org.eclipse.xwt.tools.ui.designer.core.style.StyleGroup;
+import org.eclipse.xwt.tools.ui.designer.core.util.StringUtil;
+import org.eclipse.xwt.tools.ui.designer.editor.text.assist.XWTSelectionCompletionProposal;
+import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+@SuppressWarnings("restriction")
+public class XWTContentAssistProcessor extends XMLContentAssistProcessor {
+
+	static XWTSelectionCompletionProposal[] booleanProposals;
+	static XWTSelectionCompletionProposal[] colorsProposals;
+	static XWTSelectionCompletionProposal[] stylesProposals;
+	static XWTSelectionCompletionProposal[] acceleratorsProposals;
+
+	protected Comparator<ICompletionProposal> comparator = new Comparator<ICompletionProposal>() {
+
+		public int compare(ICompletionProposal o1, ICompletionProposal o2) {
+			return o1.getDisplayString().compareTo(o2.getDisplayString());
+		}
+	};
+
+	static synchronized XWTSelectionCompletionProposal[] getBooleanProposals() {
+		if (booleanProposals == null) {
+			String[] values = new String[] { "true", "false" };
+			Image image = ImageShop
+					.get(XMLEditorPluginImages.IMG_OBJ_ATTRIBUTE);
+			booleanProposals = new XWTSelectionCompletionProposal[values.length];
+			for (int j = 0; j < values.length; j++) {
+				String pattern = "\"" + values[j] + "\"";
+				booleanProposals[j] = new XWTSelectionCompletionProposal(
+						pattern, 0, 0, 1, values[j].length(), image, values[j],
+						null, null);
+			}
+		}
+		return booleanProposals;
+	}
+
+	static synchronized XWTSelectionCompletionProposal[] getColorsProposals() {
+		if (colorsProposals == null) {
+			Collection<String> names = XWTMaps.getColorKeys();
+			String[] colorNames = NamedColorsUtil.getColorNames();
+			colorsProposals = new XWTSelectionCompletionProposal[names.size()
+					+ colorNames.length];
+
+			int i = 0;
+			for (String colorStr : names) {
+				Color color = ResourceManager.resources.getColor(colorStr);
+				XWTSelectionCompletionProposal p = createColorProposal(color,
+						colorStr);
+				if (p != null) {
+					colorsProposals[i++] = p;
+				}
+			}
+			for (String colorName : colorNames) {
+				Color color = ResourceManager.resources.getColor(colorName);
+				XWTSelectionCompletionProposal p = createColorProposal(color,
+						colorName);
+				if (p != null) {
+					colorsProposals[i++] = p;
+				}
+			}
+		}
+		return colorsProposals;
+	}
+
+	static XWTSelectionCompletionProposal createColorProposal(Color color,
+			String colorName) {
+		if (color != null) {
+			String pattern = "\"" + colorName + "\"";
+			Image image = new Image(null, 16, 16);
+			GC gc = new GC(image);
+			gc.setBackground(color);
+			gc.fillRectangle(0, 0, 16, 16);
+			gc.dispose();
+			return new XWTSelectionCompletionProposal(pattern, 0, 0, 1,
+					colorName.length(), image, colorName, null, null);
+		}
+		return null;
+
+	}
+
+	static synchronized XWTSelectionCompletionProposal[] getStylesProposals(
+			Class<?> type, String value) {
+		stylesProposals = null;
+		Image image = ImageShop.get(ImageShop.IMG_ELEMENT);
+		if (value.startsWith("\"")) {
+			value = value.replace("\"", "");
+		}
+		Collection<String> names = getStyleFromWidgetName(type, value);
+		stylesProposals = new XWTSelectionCompletionProposal[names.size()];
+		int i = 0;
+		String replaceString = "";
+		for (String string : names) {
+			replaceString = getStyleCorrectReplacedPattern(string, value, type);
+			String pattern = "\"" + replaceString + "\"";
+			stylesProposals[i++] = new XWTSelectionCompletionProposal(pattern,
+					0, 0, 1, replaceString.length(), image, string, null, null);
+		}
+		return stylesProposals;
+	}
+
+	private static String getStyleCorrectReplacedPattern(String newStyle,
+			String oldStyle, Class<?> type) {
+		int masterStyle = 0;
+		String shouldDelete = "";
+		boolean isInSameGroup = false;
+		List<String> oldValues = new ArrayList<String>();
+		StringTokenizer stk = new StringTokenizer(oldStyle, "|");
+		while (stk.hasMoreTokens()) {
+			oldValues.add(stk.nextToken().trim());
+		}
+		masterStyle = getMasterStyleIntegerFromStyles(oldValues);
+		StyleGroup[] styles = SWTStyles.getStyles(type);
+		for (StyleGroup styleGroup : styles) {
+			if (!styleGroup.match(masterStyle)) {
+				continue;
+			}
+			String[] items = styleGroup.getStyles();
+			isInSameGroup = Arrays.asList(items).contains(newStyle);
+			if (isInSameGroup) {
+				if (!"default".equals(styleGroup.getGroupName())) {
+					for (String item : items) {
+						for (String oldValue : oldValues) {
+							if (equalsIgnoreSWTStyle(oldValue, item)) {
+								shouldDelete = oldValue;
+							}
+						}
+					}
+				}
+				oldValues.remove(shouldDelete);
+				oldValues.add(newStyle);
+			}
+		}
+		String newStyleValue = StringUtil.format(
+				oldValues.toArray(new String[oldValues.size()]), "|");
+		return newStyleValue;
+	}
+
+	private static boolean equalsIgnoreSWTStyle(String value, String object) {
+		if (value.contains("SWT.")) {
+			value = value.replace("SWT.", "");
+		}
+		if (object.contains("SWT.")) {
+			object = object.replace("SWT.", "");
+		}
+		if (value.equalsIgnoreCase(object)) {
+			return true;
+		}
+		return false;
+	}
+
+	private static int getMasterStyleIntegerFromStyles(List<String> oldValues) {
+		int masterStyle = 0;
+		if (oldValues != null && oldValues.size() != 0) {
+			for (String oldValue : oldValues) {
+				masterStyle = masterStyle
+						| (Integer) StringToInteger.instance.convert(oldValue);
+			}
+		}
+		return masterStyle;
+	}
+
+	private static Collection<String> getStyleFromWidgetName(Class<?> type,
+			String value) {
+		Collection<String> collection = new HashSet<String>();
+		collection.clear();
+		int masterStyle = 0;
+		List<String> oldValues = new ArrayList<String>();
+		StringTokenizer stk = new StringTokenizer(value, "|");
+		while (stk.hasMoreTokens()) {
+			oldValues.add(stk.nextToken().trim());
+		}
+
+		masterStyle = getMasterStyleIntegerFromStyles(oldValues);
+
+		StyleGroup[] styles = SWTStyles.getStyles(type);
+		for (StyleGroup styleGroup : styles) {
+			if (!styleGroup.match(masterStyle)) {
+				continue;
+			}
+			String[] items = styleGroup.getStyles();
+			for (String item : items) {
+				if (!isContainsTheElement(oldValues, item)) {
+					collection.add(item);
+				}
+			}
+		}
+		return collection;
+	}
+
+	private static boolean isContainsTheElement(List<String> oldValues,
+			String style) {
+		if (style.contains("SWT.")) {
+			style = style.replace("SWT.", "");
+		}
+		for (String oldValue : oldValues) {
+			if (oldValue.contains("SWT.")) {
+				oldValue = oldValue.replace("SWT.", "");
+			}
+			if (oldValue.equalsIgnoreCase(style)) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	static synchronized XWTSelectionCompletionProposal[] getAcceleratorsProposals() {
+		if (acceleratorsProposals == null) {
+			Collection<String> names = XWTMaps.getAcceleratorKeys();
+			acceleratorsProposals = new XWTSelectionCompletionProposal[names
+					.size()];
+			int i = 0;
+			for (String string : names) {
+				String pattern = "\"" + string + "\"";
+				acceleratorsProposals[i++] = new XWTSelectionCompletionProposal(
+						pattern, 0, 0, 1, string.length(), null, string, null,
+						null);
+			}
+		}
+		return acceleratorsProposals;
+	}
+
+	protected void addAttributeNameProposals(
+			ContentAssistRequest contentAssistRequest) {
+		addXAMLPropertyNameProposals(contentAssistRequest);
+		super.addAttributeNameProposals(contentAssistRequest);
+	}
+
+	private void addXAMLPropertyNameProposals(
+			ContentAssistRequest contentAssistRequest) {
+		List<ICompletionProposal> proposalCollector = new ArrayList<ICompletionProposal>();
+		List<ICompletionProposal> macrosCollector = new ArrayList<ICompletionProposal>();
+
+		//
+		Node node = contentAssistRequest.getNode();
+		String name = getNodeName(node);
+
+		HashSet<String> existing = new HashSet<String>();
+		NamedNodeMap namedNodeMap = node.getAttributes();
+		for (int i = 0; i < namedNodeMap.getLength(); i++) {
+			Node attributeNode = namedNodeMap.item(i);
+			String attributeName = attributeNode.getNodeName();
+			existing.add(attributeName);
+		}
+		boolean useProposalList = !contentAssistRequest.shouldSeparate();
+		int offset = contentAssistRequest.getReplacementBeginPosition();
+		int replacementLength = contentAssistRequest.getReplacementLength();
+		IDocument document = fTextViewer.getDocument();
+		String prefixed = null;
+		try {
+			prefixed = document.get(offset, replacementLength).toLowerCase();
+		} catch (BadLocationException e1) {
+		}
+
+		IMetaclass metaclass = XWT.getMetaclass(name, node.getNamespaceURI());
+		if (metaclass != null) {
+			IProperty[] properties = metaclass.getProperties();
+			for (IProperty property : properties) {
+				Class<?> propertyType = property.getType();
+				if (propertyType != null
+						&& Control.class.isAssignableFrom(propertyType)) {
+					continue;
+				}
+
+				String propertyName = property.getName();
+				if (prefixed != null
+						&& !propertyName.toLowerCase().startsWith(prefixed)) {
+					continue;
+				}
+
+				if (!existing.contains(propertyName)) {
+					String defaultValueString = "";
+					if (propertyName.equalsIgnoreCase("style")) {
+						propertyName = "x:style";
+						defaultValueString = "SWT.NONE";
+					}
+					String replacementString = propertyName + "=\""
+							+ defaultValueString + "\" ";
+					Image image = ImageShop
+							.get(JavaPluginImages.IMG_FIELD_PUBLIC);
+					XWTSelectionCompletionProposal proposal = new XWTSelectionCompletionProposal(
+							replacementString, offset, replacementLength,
+							propertyName.length() + 2,
+							defaultValueString.length(), image, propertyName,
+							null, "Property: " + propertyName);
+					if (useProposalList) {
+						proposalCollector.add(proposal);
+					} else {
+						macrosCollector.add(proposal);
+					}
+				}
+			}
+
+			IEvent[] events = metaclass.getEvents();
+			for (IEvent event : events) {
+				String eventName = event.getName();
+				if (prefixed != null
+						&& !eventName.toLowerCase().startsWith(prefixed)) {
+					continue;
+				}
+
+				eventName = Character.toUpperCase(eventName.charAt(0))
+						+ eventName.substring(1) + IEventConstants.SUFFIX;
+				if (event.getName() != null
+						&& (event.getName().equals(IEventConstants.XWT_LOADED) || event
+								.getName().equals(
+										IEventConstants.XWT_LOADED_EVENT))) {
+					eventName = IEventConstants.XWT_LOADED;
+				}
+
+				if (!existing.contains(eventName)) {
+					String replacementString = eventName + "=\"perform"
+							+ eventName + "\" ";
+					Image image = ImageShop.get(ImageShop.IMG_EVENT);
+					XWTSelectionCompletionProposal proposal = new XWTSelectionCompletionProposal(
+							replacementString, offset, replacementLength,
+							eventName.length() + 2, eventName.length()
+									+ "perform".length(), image, eventName,
+							null, "Event: " + eventName);
+					if (useProposalList) {
+						proposalCollector.add(proposal);
+					} else {
+						macrosCollector.add(proposal);
+					}
+				}
+			}
+		}
+
+		Node parentNode = node.getParentNode();
+		String parentName = getNodeName(parentNode);
+		try {
+			IMetaclass parentMetaclass = XWT.getMetaclass(parentName,
+					parentNode.getNamespaceURI());
+			if (parentMetaclass != null) {
+				// Attached property
+			}
+		} catch (Exception e) {
+		}
+
+		Collections.sort(proposalCollector, comparator);
+		Collections.sort(macrosCollector, comparator);
+
+		for (ICompletionProposal proposal : proposalCollector) {
+			contentAssistRequest.addProposal(proposal);
+		}
+
+		for (ICompletionProposal proposal : macrosCollector) {
+			contentAssistRequest.addMacro(proposal);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.wst.xml.ui.internal.contentassist.XMLContentAssistProcessor
+	 * #addAttributeValueProposals
+	 * (org.eclipse.wst.xml.ui.internal.contentassist.ContentAssistRequest)
+	 */
+	protected void addAttributeValueProposals(
+			ContentAssistRequest contentAssistRequest) {
+		addXAMLPropertyValueProposals(contentAssistRequest);
+		super.addAttributeValueProposals(contentAssistRequest);
+	}
+
+	private void addXAMLPropertyValueProposals(
+			ContentAssistRequest contentAssistRequest) {
+		List<ICompletionProposal> proposalCollector = new ArrayList<ICompletionProposal>();
+		List<ICompletionProposal> macrosCollector = new ArrayList<ICompletionProposal>();
+		IDOMNode node = (IDOMNode) contentAssistRequest.getNode();
+		String namespaceURI = node.getNamespaceURI();
+		String name = getNodeName(node);
+		String value = "";
+		IMetaclass metaclass = XWT.getMetaclass(name, namespaceURI);
+		StyledText textWidget = fTextViewer.getTextWidget();
+		if (metaclass != null) {
+			// Find the attribute region and name for which this position should
+			// have a value proposed
+			IStructuredDocumentRegion open = node
+					.getFirstStructuredDocumentRegion();
+			ITextRegionList openRegions = open.getRegions();
+			int m = openRegions.indexOf(contentAssistRequest.getRegion());
+			int n = openRegions.indexOf(contentAssistRequest.getRegion());
+			if (m < 0 || n < 0) {
+				return;
+			}
+			ITextRegion nameRegion = null;
+			ITextRegion valueRegion = null;
+			while (m >= 0) {
+				nameRegion = openRegions.get(m--);
+				if (nameRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
+					break;
+				}
+			}
+			while (n >= 0) {
+				valueRegion = openRegions.get(n--);
+				if (valueRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
+					break;
+				}
+			}
+			if (valueRegion != null) {
+				value = open.getText(valueRegion);
+			}
+
+			// the name region is REQUIRED to do anything useful
+			if (nameRegion != null) {
+				// Retrieve the declaration
+				CMElementDeclaration elementDecl = getCMElementDeclaration(node);
+
+				// String attributeName = nameRegion.getText();
+				String attributeName = open.getText(nameRegion);
+				IProperty property = metaclass.findProperty(attributeName);
+				if (attributeName.equalsIgnoreCase("x:style")
+						|| property != null) {
+					int offset = contentAssistRequest
+							.getReplacementBeginPosition();
+					int replacementLength = contentAssistRequest
+							.getReplacementLength();
+					boolean useProposalList = !contentAssistRequest
+							.shouldSeparate();
+
+					String prefixed = null;
+					String prefixedQuote = "";
+					boolean fullValue = true;
+					try {
+						int caretIndex = textWidget.getCaretOffset();
+						IDocument document = fTextViewer.getDocument();
+						prefixed = document.get(offset, caretIndex - offset)
+								.toLowerCase();
+						if (prefixed.equals("\"\"")) {
+							prefixed = null;
+						}
+					} catch (BadLocationException e1) {
+					}
+					if (prefixed != null) {
+						prefixedQuote = prefixed + "\"";
+						fullValue = false;
+					}
+
+					// filter accelerators of menu element.
+					if (attributeName.equalsIgnoreCase("accelerator")) {
+						XWTSelectionCompletionProposal[] proposals = getAcceleratorsProposals();
+						for (int j = 0; j < proposals.length; j++) {
+							String pattern = proposals[j]
+									.getReplacementString();
+							if (prefixed != null
+									&& ((!pattern.toLowerCase().startsWith(
+											prefixed) && !fullValue) || prefixedQuote
+											.equalsIgnoreCase(pattern))) {
+								continue;
+							}
+
+							proposals[j].setReplacementOffset(offset);
+							proposals[j]
+									.setReplacementLength(replacementLength);
+							if (useProposalList) {
+								proposalCollector.add(proposals[j]);
+							} else {
+								macrosCollector.add(proposals[j]);
+							}
+						}
+						Collections.sort(proposalCollector, comparator);
+						Collections.sort(macrosCollector, comparator);
+
+						for (ICompletionProposal proposal : proposalCollector) {
+							contentAssistRequest.addProposal(proposal);
+						}
+
+						for (ICompletionProposal proposal : macrosCollector) {
+							contentAssistRequest.addMacro(proposal);
+						}
+						return;
+					}
+
+					// styles TODO: filter styles of each element.
+					if (attributeName.equalsIgnoreCase("x:style")) {
+						XWTSelectionCompletionProposal[] proposals = getStylesProposals(
+								metaclass.getType(), value);
+						for (int j = 0; j < proposals.length; j++) {
+							String pattern = proposals[j]
+									.getReplacementString();
+							if (prefixed != null
+									&& ((!pattern.toLowerCase().startsWith(
+											prefixed) && !fullValue) || prefixedQuote
+											.equalsIgnoreCase(pattern))) {
+								continue;
+							}
+
+							proposals[j].setReplacementOffset(offset);
+							proposals[j]
+									.setReplacementLength(replacementLength);
+							if (useProposalList) {
+								proposalCollector.add(proposals[j]);
+							} else {
+								macrosCollector.add(proposals[j]);
+							}
+						}
+						Collections.sort(proposalCollector, comparator);
+						Collections.sort(macrosCollector, comparator);
+
+						for (ICompletionProposal proposal : proposalCollector) {
+							contentAssistRequest.addProposal(proposal);
+						}
+
+						for (ICompletionProposal proposal : macrosCollector) {
+							contentAssistRequest.addMacro(proposal);
+						}
+						return;
+					}
+					Class<?> javaType = property.getType();
+					if (javaType == Boolean.class || javaType == boolean.class) {
+						XWTSelectionCompletionProposal[] proposals = getBooleanProposals();
+						for (int j = 0; j < proposals.length; j++) {
+							String pattern = proposals[j]
+									.getReplacementString();
+							if (prefixed != null
+									&& ((!pattern.toLowerCase().startsWith(
+											prefixed) && !fullValue) || prefixedQuote
+											.equalsIgnoreCase(pattern))) {
+								continue;
+							}
+
+							proposals[j].setReplacementOffset(offset);
+							proposals[j]
+									.setReplacementLength(replacementLength);
+							if (useProposalList) {
+								proposalCollector.add(proposals[j]);
+							} else {
+								macrosCollector.add(proposals[j]);
+							}
+						}
+					} else if (javaType != null && javaType.isEnum()) {
+						Object[] objects = javaType.getEnumConstants();
+
+						IConverter converter = XWT.findConvertor(javaType,
+								String.class);
+						for (int j = 0; j < objects.length; j++) {
+							String valueString = "";
+							if (converter != null) {
+								Object stringValue = converter
+										.convert(objects[j]);
+								if (stringValue != null) {
+									valueString = stringValue.toString();
+								}
+							} else {
+								valueString = objects[j].toString();
+							}
+							String pattern = "\"" + valueString + "\"";
+							if (prefixed != null
+									&& ((!pattern.toLowerCase().startsWith(
+											prefixed) && !fullValue) || prefixedQuote
+											.equalsIgnoreCase(pattern))) {
+								continue;
+							}
+							Image image = XMLEditorPluginImageHelper
+									.getInstance().getImage(
+											XMLEditorPluginImages.IMG_OBJ_ENUM);
+							XWTSelectionCompletionProposal proposal = new XWTSelectionCompletionProposal(
+									pattern, offset, replacementLength, 1,
+									valueString.length(), image, valueString,
+									null, null);
+							if (useProposalList) {
+								proposalCollector.add(proposal);
+							} else {
+								macrosCollector.add(proposal);
+							}
+						}
+					} else if (javaType.isAssignableFrom(Color.class)) {
+						XWTSelectionCompletionProposal[] colorsProposals = getColorsProposals();
+						for (XWTSelectionCompletionProposal proposal : colorsProposals) {
+							String pattern = proposal.getReplacementString();
+							if (prefixed != null
+									&& ((!pattern.toLowerCase().startsWith(
+											prefixed) && !fullValue) || prefixedQuote
+											.equalsIgnoreCase(pattern))) {
+								continue;
+							}
+
+							proposal.setReplacementOffset(offset);
+							proposal.setReplacementLength(replacementLength);
+							if (useProposalList) {
+								proposalCollector.add(proposal);
+							} else {
+								macrosCollector.add(proposal);
+							}
+						}
+					}
+				} else {
+					IEvent[] allEvents = metaclass.getEvents();
+					JavaProject javaProject = (JavaProject) textWidget
+							.getData("javaProject");
+					String className = (String) textWidget.getData("className");
+					List<String> javaMethods = getJavaMethods(javaProject,
+							className);
+					int offset = contentAssistRequest
+							.getReplacementBeginPosition();
+					int caretIndex = textWidget.getCaretOffset();
+					IDocument document = fTextViewer.getDocument();
+					String prefixed = null;
+					try {
+						prefixed = document.get(offset + 1, caretIndex - offset
+								- 1);
+					} catch (BadLocationException e) {
+						e.printStackTrace();
+					}
+					int replacementLength = contentAssistRequest
+							.getReplacementLength();
+					boolean useProposalList = !contentAssistRequest
+							.shouldSeparate();
+					for (Iterator<String> iterator = javaMethods.iterator(); iterator
+							.hasNext();) {
+						String valueString = iterator.next();
+						if (valueString.equals(prefixed))
+							continue;
+						String pattern = "\"" + valueString + "\"";
+						XWTSelectionCompletionProposal proposal = new XWTSelectionCompletionProposal(
+								pattern, offset, replacementLength, 1,
+								valueString.length(), null, valueString, null,
+								null);
+						if (useProposalList) {
+							proposalCollector.add(proposal);
+						} else {
+							macrosCollector.add(proposal);
+						}
+					}
+				}
+			}
+		}
+
+		Collections.sort(proposalCollector, comparator);
+		Collections.sort(macrosCollector, comparator);
+
+		for (ICompletionProposal proposal : proposalCollector) {
+			contentAssistRequest.addProposal(proposal);
+		}
+
+		for (ICompletionProposal proposal : macrosCollector) {
+			contentAssistRequest.addMacro(proposal);
+		}
+	}
+
+	protected void addTagInsertionProposals(
+			ContentAssistRequest contentAssistRequest, int childPosition) {
+		addXAMLElementProposals(contentAssistRequest);
+		super.addTagInsertionProposals(contentAssistRequest, childPosition);
+	}
+
+	private void addXAMLElementProposals(
+			ContentAssistRequest contentAssistRequest) {
+		List<ICompletionProposal> proposalCollector = new ArrayList<ICompletionProposal>();
+		List<ICompletionProposal> macrosCollector = new ArrayList<ICompletionProposal>();
+
+		List<String> addedTags = new ArrayList<String>();
+
+		boolean useProposalList = !contentAssistRequest.shouldSeparate();
+		int offset = contentAssistRequest.getReplacementBeginPosition();
+		int replacementLength = contentAssistRequest.getReplacementLength();
+		String prefixed = null;
+		try {
+			IDocument document = fTextViewer.getDocument();
+			prefixed = document.get(offset, replacementLength).toLowerCase();
+		} catch (BadLocationException e1) {
+		}
+
+		Node node = contentAssistRequest.getNode();
+		if (node == null) {
+			return;
+		}
+		if (node instanceof IDOMText) {
+			IDOMText text = (IDOMText) node;
+			offset = text.getStartOffset();
+			replacementLength = text.getLength();
+			try {
+				IDocument document = fTextViewer.getDocument();
+				prefixed = document.get(offset, replacementLength).trim()
+						.toLowerCase();
+			} catch (BadLocationException e1) {
+			}
+		} else if (node instanceof IDOMNode) {
+			IDOMNode domNode = (IDOMNode) node;
+			NodeList children = domNode.getChildNodes();
+			for (int i = 0; i < children.getLength(); i++) {
+				Node child = children.item(i);
+				if (child instanceof IDOMText) {
+					IDOMText text = (IDOMText) child;
+					offset = text.getStartOffset();
+					replacementLength = text.getLength();
+					try {
+						IDocument document = fTextViewer.getDocument();
+						prefixed = document.get(offset, replacementLength)
+								.trim().toLowerCase();
+					} catch (BadLocationException e1) {
+					}
+					break;
+				}
+			}
+		}
+
+		while (node.getNodeType() != Node.ELEMENT_NODE) {
+			node = node.getParentNode();
+			if (node == null) {
+				return;
+			}
+		}
+
+		boolean containControls = false;
+		String name = getNodeName(node);
+		if (name.indexOf(".") != -1) {
+			if (name.toLowerCase().endsWith(".control")) {
+				name = "Control";// Add controls to TabItem, CoolItem...
+				containControls = true;
+			} else {
+				List<XWTSelectionCompletionProposal> proposals = createPropertyNodeProposals(
+						name, offset, replacementLength);
+				if (useProposalList) {
+					proposalCollector.addAll(proposals);
+				} else {
+					macrosCollector.addAll(proposals);
+				}
+				Collections.sort(proposalCollector, comparator);
+				Collections.sort(macrosCollector, comparator);
+
+				for (ICompletionProposal proposal : proposalCollector) {
+					contentAssistRequest.addProposal(proposal);
+				}
+
+				for (ICompletionProposal proposal : macrosCollector) {
+					contentAssistRequest.addMacro(proposal);
+				}
+				return;
+			}
+		}
+		IMetaclass metaclass = XWT.getMetaclass(name, node.getNamespaceURI());
+		String tagName = name + ".Resources";
+		if (!addedTags.contains(tagName)
+				&& (prefixed == null || tagName.toLowerCase().startsWith(
+						prefixed))) {
+			addedTags.add(tagName);
+
+			String pattern = "<" + tagName + "></" + tagName + ">";
+			Image image = ImageShop.get(ImageShop.IMG_RESOURCES);
+			XWTSelectionCompletionProposal proposal = new XWTSelectionCompletionProposal(
+					pattern, offset, replacementLength, tagName.length() + 2,
+					0, image, tagName, null, "Element resources");
+			if (useProposalList) {
+				proposalCollector.add(proposal);
+			} else {
+				macrosCollector.add(proposal);
+			}
+		}
+
+		// layout
+		String layout = name + ".layout";
+		if (!addedTags.contains(layout)
+				&& (prefixed == null || layout.startsWith(prefixed))) {
+			XWTSelectionCompletionProposal layoutProposal = createLayoutProposal(
+					metaclass, layout, offset, replacementLength);
+			if (layoutProposal != null) {
+				if (useProposalList) {
+					proposalCollector.add(layoutProposal);
+				} else {
+					macrosCollector.add(layoutProposal);
+				}
+			}
+		}
+		// layoutData
+		String layoutData = name + ".layoutData";
+		if (!addedTags.contains(layout)
+				&& (prefixed == null || layout.startsWith(prefixed))) {
+			XWTSelectionCompletionProposal proposal = createLayoutDataProposal(
+					metaclass, layoutData, offset, replacementLength);
+			if (proposal != null) {
+				if (useProposalList) {
+					proposalCollector.add(proposal);
+				} else {
+					macrosCollector.add(proposal);
+				}
+			}
+		}
+		if (metaclass != null) {
+			if (containControls
+					|| Composite.class.isAssignableFrom(metaclass.getType())) {
+				IMetaclass[] metaclasses = XWT.getAllMetaclasses();
+				for (IMetaclass type : metaclasses) {
+					if (Control.class.isAssignableFrom(type.getType())
+							&& !type.isAbstract()) {
+
+						String typeName = type.getName();
+						if (prefixed != null
+								&& !typeName.toLowerCase().startsWith(prefixed)) {
+							continue;
+						}
+						if (addedTags.contains(typeName)) {
+							continue;
+						} else {
+							addedTags.add(typeName);
+						}
+						String pattern = "<" + typeName + "></" + typeName
+								+ ">";
+						Image image = ImageShop.get(ImageShop.IMG_ELEMENT);
+						XWTSelectionCompletionProposal proposal = new XWTSelectionCompletionProposal(
+								pattern, offset, replacementLength,
+								typeName.length() + 2, 0, image, typeName,
+								null, null);
+						if (useProposalList) {
+							proposalCollector.add(proposal);
+						} else {
+							macrosCollector.add(proposal);
+						}
+					}
+				}
+			}
+		}
+
+		Collections.sort(proposalCollector, comparator);
+		Collections.sort(macrosCollector, comparator);
+
+		for (ICompletionProposal proposal : proposalCollector) {
+			contentAssistRequest.addProposal(proposal);
+		}
+
+		for (ICompletionProposal proposal : macrosCollector) {
+			contentAssistRequest.addMacro(proposal);
+		}
+	}
+
+	private List<XWTSelectionCompletionProposal> createPropertyNodeProposals(
+			String tagName, int offset, int replacementLength) {
+		int index = tagName.indexOf(".");
+		if (index == -1) {
+			return Collections.emptyList();
+		}
+		List<XWTSelectionCompletionProposal> proposals = new ArrayList<XWTSelectionCompletionProposal>();
+		String property = tagName.substring(index + 1);
+		if ("layout".equalsIgnoreCase(property)) {
+			String[] layouts = new String[] { "GridLayout", "FillLayout",
+					"RowLayout", "StackLayout", "FormLayout" };
+			for (int i = 0; i < layouts.length; i++) {
+				String pattern = "<" + layouts[i] + "/>";
+				Image image = ImageShop.get(ImageShop.IMG_ELEMENT);
+				XWTSelectionCompletionProposal p = new XWTSelectionCompletionProposal(
+						pattern, offset, replacementLength,
+						layouts[i].length() + 2, 0, image, layouts[i], null,
+						"Container Layout.");
+				proposals.add(p);
+			}
+		} else if ("layoutData".equalsIgnoreCase(property)) {
+			String[] layoutDatas = new String[] { "GridData", "StackData",
+					"FormData", "RowData" };
+			for (int i = 0; i < layoutDatas.length; i++) {
+				String pattern = "<" + layoutDatas[i] + "></" + layoutDatas[i]
+						+ ">";
+				Image image = ImageShop.get(ImageShop.IMG_ELEMENT);
+				XWTSelectionCompletionProposal p = new XWTSelectionCompletionProposal(
+						pattern, offset, replacementLength,
+						layoutDatas[i].length() + 2, 0, image, layoutDatas[i],
+						null, "Container LayoutData.");
+				proposals.add(p);
+			}
+		}
+		return proposals;
+	}
+
+	private XWTSelectionCompletionProposal createLayoutDataProposal(
+			IMetaclass metaclass, String layoutData, int offset,
+			int replacementLength) {
+		if (!Control.class.isAssignableFrom(metaclass.getType())) {
+			return null;
+		}
+		String pattern = "<" + layoutData + "></" + layoutData + ">";
+		Image image = JavaPluginImages.get(JavaPluginImages.IMG_FIELD_PUBLIC);
+		return new XWTSelectionCompletionProposal(pattern, offset,
+				replacementLength, layoutData.length() + 2, 0, image,
+				layoutData, null, "Control LayoutData.");
+	}
+
+	private XWTSelectionCompletionProposal createLayoutProposal(
+			IMetaclass metaclass, String tagName, int offset,
+			int replacementLength) {
+		if (!Composite.class.isAssignableFrom(metaclass.getType())) {
+			return null;
+		}
+		String pattern = "<" + tagName + "></" + tagName + ">";
+		Image image = JavaPluginImages.get(JavaPluginImages.IMG_FIELD_PUBLIC);
+		return new XWTSelectionCompletionProposal(pattern, offset,
+				replacementLength, tagName.length() + 2, 0, image, tagName,
+				null, "Container Layout.");
+	}
+
+	private String getNodeName(Node node) {
+		String name = node.getNodeName();
+		int index = name.indexOf(":");
+		if (index != -1) {
+			name = name.substring(index + 1);
+		}
+		return name;
+	}
+
+	private List<String> getJavaMethods(JavaProject javaProject,
+			String className) {
+		if (javaProject == null || className == null) {
+			return Collections.emptyList();
+		}
+		List<String> javaMethods = new ArrayList<String>();
+		try {
+			IType type = javaProject.findType(className);
+			IMethod[] methods = type.getMethods();
+			for (int i = 0; i < methods.length; i++) {
+				IMethod method = methods[i];
+				String methodName = method.getElementName();
+				javaMethods.add(methodName);
+			}
+		} catch (JavaModelException e) {
+			e.printStackTrace();
+		}
+		return javaMethods;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/text/XWTStructuredTextViewerConfiguration.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/text/XWTStructuredTextViewerConfiguration.java
new file mode 100755
index 0000000..30767f6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/text/XWTStructuredTextViewerConfiguration.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.text;
+
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.text.source.ISourceViewer;
+import org.eclipse.wst.sse.core.text.IStructuredPartitions;
+import org.eclipse.wst.xml.core.text.IXMLPartitions;
+import org.eclipse.wst.xml.ui.StructuredTextViewerConfigurationXML;
+import org.eclipse.wst.xml.ui.internal.contentassist.NoRegionContentAssistProcessor;
+
+public class XWTStructuredTextViewerConfiguration extends StructuredTextViewerConfigurationXML {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.xml.ui.StructuredTextViewerConfigurationXML#getContentAssistProcessors(org.eclipse.jface.text.source.ISourceViewer, java.lang.String)
+	 */
+	protected IContentAssistProcessor[] getContentAssistProcessors(ISourceViewer sourceViewer, String partitionType) {
+		IContentAssistProcessor[] processors = null;
+		if ((partitionType.equals(IStructuredPartitions.DEFAULT_PARTITION))
+				|| (partitionType.equals(IXMLPartitions.XML_DEFAULT))) {
+			processors = new IContentAssistProcessor[] { new XWTContentAssistProcessor() };
+		} else if (partitionType
+				.equals(IStructuredPartitions.UNKNOWN_PARTITION)) {
+			processors = new IContentAssistProcessor[] { new NoRegionContentAssistProcessor() };
+		}
+		return processors;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/text/assist/ColorSelectionCompletionProposal.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/text/assist/ColorSelectionCompletionProposal.java
new file mode 100755
index 0000000..94f9a5f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/text/assist/ColorSelectionCompletionProposal.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.text.assist;
+
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.tools.ui.designer.dialogs.ColorChooser;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ColorSelectionCompletionProposal extends XWTSelectionCompletionProposal {
+
+	public ColorSelectionCompletionProposal() {
+		super("\"(Choose Color...)\"", 0, 0, 0, 0, null, "(Choose Color...)", null, null);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.editor.text.assist.XWTSelectionCompletionProposal#apply(org.eclipse.jface.text.IDocument)
+	 */
+	public void apply(IDocument document) {
+		ColorChooser dialog = new ColorChooser(new Shell(), null);
+		if (dialog.open() == Window.OK) {
+			String color = dialog.getColor();
+			if (color == null || color.equals("")) {
+				return;
+			}
+			setReplacementString("\"" + color + "\"");
+			super.apply(document);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/text/assist/XWTSelectionCompletionProposal.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/text/assist/XWTSelectionCompletionProposal.java
new file mode 100755
index 0000000..fd751c0
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/editor/text/assist/XWTSelectionCompletionProposal.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.editor.text.assist;
+
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.contentassist.IContextInformation;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.xwt.tools.ui.designer.XWTDesignerPlugin;
+import org.eclipse.xwt.tools.ui.designer.core.editor.text.assist.SelectionCompletionProposal;
+import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
+
+public class XWTSelectionCompletionProposal extends SelectionCompletionProposal {
+
+	/**
+	 * constructor
+	 * 
+	 * @param replacementString
+	 * @param replacementOffset
+	 * @param replacementLength
+	 * @param cursorPosition
+	 * @param selectionLength
+	 * @param image
+	 * @param displayString
+	 * @param contextInformation
+	 * @param additionalProposalInfo
+	 */
+	public XWTSelectionCompletionProposal(String replacementString, int replacementOffset, int replacementLength, int cursorPosition, int selectionLength, Image image, String displayString, IContextInformation contextInformation, String additionalProposalInfo) {
+		super(replacementString, replacementOffset, replacementLength, cursorPosition, selectionLength, image, displayString, contextInformation, additionalProposalInfo);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.ve.contentassist.SelectionCompletionProposal#apply(org.eclipse.jface.text.IDocument)
+	 */
+	public void apply(final IDocument document) {
+		XWTDesigner activeDesigner = XWTDesignerPlugin.getDefault().getActiveDesigner();
+		if (activeDesigner != null) {
+			activeDesigner.formatWithCompound(new Runnable() {
+				public void run() {
+					XWTSelectionCompletionProposal.super.apply(document);
+				}
+			});
+		} else {
+			super.apply(document);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/ASTHelper.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/ASTHelper.java
new file mode 100755
index 0000000..fc6ce49
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/ASTHelper.java
@@ -0,0 +1,704 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.jdt;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.SubProgressMonitor;
+import org.eclipse.jdt.core.Flags;
+import org.eclipse.jdt.core.IBuffer;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IField;
+import org.eclipse.jdt.core.IMethod;
+import org.eclipse.jdt.core.IPackageFragment;
+import org.eclipse.jdt.core.ISourceRange;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.core.Signature;
+import org.eclipse.jdt.core.compiler.IProblem;
+import org.eclipse.jdt.core.dom.AST;
+import org.eclipse.jdt.core.dom.ASTNode;
+import org.eclipse.jdt.core.dom.ASTParser;
+import org.eclipse.jdt.core.dom.AbstractTypeDeclaration;
+import org.eclipse.jdt.core.dom.CompilationUnit;
+import org.eclipse.jdt.core.dom.ITypeBinding;
+import org.eclipse.jdt.core.dom.ImportDeclaration;
+import org.eclipse.jdt.core.dom.rewrite.ImportRewrite;
+import org.eclipse.jdt.core.formatter.CodeFormatter;
+import org.eclipse.jdt.internal.corext.codemanipulation.AddUnimplementedConstructorsOperation;
+import org.eclipse.jdt.internal.corext.codemanipulation.AddUnimplementedMethodsOperation;
+import org.eclipse.jdt.internal.corext.codemanipulation.CodeGenerationSettings;
+import org.eclipse.jdt.internal.core.manipulation.StubUtility;
+import org.eclipse.jdt.internal.corext.dom.ASTNodes;
+import org.eclipse.jdt.internal.corext.util.CodeFormatterUtil;
+import org.eclipse.jdt.internal.corext.util.JavaModelUtil;
+import org.eclipse.jdt.internal.corext.util.Strings;
+import org.eclipse.jdt.internal.ui.preferences.JavaPreferencesSettings;
+import org.eclipse.jdt.ui.CodeGeneration;
+import org.eclipse.jdt.ui.CodeStyleConfiguration;
+import org.eclipse.text.edits.TextEdit;
+import org.eclipse.xwt.tools.ui.designer.XWTDesignerPlugin;
+
+public class ASTHelper {
+
+	public static IType createType(IPackageFragment pack, String typeName, Collection<Class<?>> superInterfaces, Class<?> superClass) {
+		try {
+			IType createdType;
+			ImportsManager imports;
+			Set<String> existingImports;
+
+			String lineDelimiter = StubUtility.getLineDelimiterUsed(pack.getJavaProject());
+
+			String cuName = typeName + ".java";
+			ICompilationUnit parentCU = pack.createCompilationUnit(cuName, "", false, null); //$NON-NLS-1$
+			// create a working copy with a new owner
+
+			parentCU.becomeWorkingCopy(null); // cu is now a (primary) working
+			// copy
+
+			IBuffer buffer = parentCU.getBuffer();
+
+			String simpleTypeStub = constructSimpleTypeStub(typeName);
+			String cuContent = constructCUContent(parentCU, simpleTypeStub, lineDelimiter);
+			buffer.setContents(cuContent);
+
+			CompilationUnit astRoot = createASTForImports(parentCU);
+			existingImports = getExistingImports(astRoot);
+
+			imports = new ImportsManager(astRoot);
+			// add an import that will be removed again. Having this import
+			// solves 14661
+			imports.addImport(JavaModelUtil.concatenateName(pack.getElementName(), typeName));
+
+			String typeContent = constructTypeStub(typeName, superInterfaces, superClass, parentCU, imports, lineDelimiter);
+			int index = cuContent.lastIndexOf(simpleTypeStub);
+			if (index == -1) {
+				AbstractTypeDeclaration typeNode = (AbstractTypeDeclaration) astRoot.types().get(0);
+				int start = ((ASTNode) typeNode.modifiers().get(0)).getStartPosition();
+				int end = typeNode.getStartPosition() + typeNode.getLength();
+				buffer.replace(start, end - start, typeContent);
+			} else {
+				buffer.replace(index, simpleTypeStub.length(), typeContent);
+			}
+
+			createdType = parentCU.getType(typeName);
+
+			// add imports for superclass/interfaces, so types can be resolved
+			// correctly
+
+			ICompilationUnit cu = createdType.getCompilationUnit();
+
+			imports.create(false, null);
+
+			JavaModelUtil.reconcile(cu);
+
+			// set up again
+			astRoot = createASTForImports(imports.getCompilationUnit());
+			imports = new ImportsManager(astRoot);
+
+			createTypeMembers(createdType, imports);
+
+			// add imports
+			imports.create(false, null);
+
+			removeUnusedImports(cu, existingImports, false);
+
+			JavaModelUtil.reconcile(cu);
+
+			format(createdType, lineDelimiter);
+
+			return createdType;
+		} catch (CoreException e) {
+			XWTDesignerPlugin.logError(e);
+			return null;
+		}
+	}
+
+	/**
+	 * @param type
+	 * @param lineDelimiter
+	 * @throws JavaModelException
+	 */
+	private static void format(IType type, String lineDelimiter) throws JavaModelException {
+		ISourceRange range = type.getSourceRange();
+		ICompilationUnit cu = type.getCompilationUnit();
+		IBuffer buf = cu.getBuffer();
+		String originalContent = buf.getText(range.getOffset(), range.getLength());
+
+		String formattedContent = CodeFormatterUtil.format(CodeFormatter.K_CLASS_BODY_DECLARATIONS, originalContent, 0, lineDelimiter, type.getJavaProject());
+		formattedContent = Strings.trimLeadingTabsAndSpaces(formattedContent);
+		buf.replace(range.getOffset(), range.getLength(), formattedContent);
+		cu.commitWorkingCopy(true, null);
+	}
+
+	public static IMethod createMethod(IType type, String methodName, Class<?> returnType, String contentReturnValue, List<Class<?>> arguments) {
+		try {
+			ICompilationUnit cu = type.getCompilationUnit();
+			JavaModelUtil.reconcile(cu);
+			CompilationUnit astUnit = createASTForImports(cu);
+			ImportsManager imports = new ImportsManager(astUnit);
+			Set existingImports = getExistingImports(astUnit);
+
+			List<String> paraNames = new ArrayList<String>();
+			if (arguments != null) {
+				for (Class<?> arg : arguments) {
+					paraNames.add(arg.getSimpleName());
+					imports.addImport(arg.getName());
+				}
+			}
+
+			String lineDelimiter = StubUtility.getLineDelimiterUsed(type.getJavaProject());
+			StringBuilder contents = new StringBuilder();
+			String comment = CodeGeneration.getMethodComment(type.getCompilationUnit(), type.getTypeQualifiedName('.'), methodName, paraNames.toArray(new String[paraNames.size()]), new String[0], Signature.createTypeSignature((returnType == null ? "void" : returnType.getSimpleName()), true), null, lineDelimiter); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+			if (comment != null) {
+				contents.append(comment);
+				contents.append(lineDelimiter);
+			}
+			if (returnType != null) {
+				imports.addImport(returnType.getName());
+			}
+			contents.append("public " + (returnType == null ? "void " : returnType.getSimpleName() + " ") + methodName + "("); //$NON-NLS-1$
+			for (int i = 0; i < paraNames.size(); i++) {
+				String arg = paraNames.get(i);
+				if (i != 0) {
+					contents.append(", ");
+				}
+				contents.append(arg + " " + Character.toLowerCase(arg.charAt(0)) + arg.substring(1));
+			}
+			contents.append(") {"); //$NON-NLS-1$
+			contents.append(lineDelimiter);
+
+			final String content = CodeGeneration.getMethodBodyContent(type.getCompilationUnit(), type.getTypeQualifiedName('.'), methodName, false, "", lineDelimiter); //$NON-NLS-1$ //$NON-NLS-2$
+			if (content != null && content.length() != 0)
+				contents.append("\t" + content);
+			// nameMap.append("\n");
+			if (returnType != null) {
+				contents.append("\treturn " + contentReturnValue + ";");
+				contents.append(lineDelimiter);
+			}
+			contents.append("}"); //$NON-NLS-1$
+
+			IMethod method = type.createMethod(contents.toString(), null, true, null);
+
+			// add imports
+			imports.create(false, null);
+
+			removeUnusedImports(cu, existingImports, true);
+
+			JavaModelUtil.reconcile(cu);
+			format(type, lineDelimiter);
+			return method;
+		} catch (CoreException e) {
+		}
+		return null;
+
+	}
+
+	protected static void createTypeMembers(IType type, ImportsManager imports) throws CoreException {
+		createInheritedMethods(type, true, true, imports);
+	}
+
+	protected static IMethod[] createInheritedMethods(IType type, boolean doConstructors, boolean doUnimplementedMethods, ImportsManager imports) throws CoreException {
+		final ICompilationUnit cu = type.getCompilationUnit();
+		JavaModelUtil.reconcile(cu);
+		IMethod[] typeMethods = type.getMethods();
+		Set handleIds = new HashSet(typeMethods.length);
+		for (int index = 0; index < typeMethods.length; index++)
+			handleIds.add(typeMethods[index].getHandleIdentifier());
+		ArrayList<IMethod> newMethods = new ArrayList<IMethod>();
+		CodeGenerationSettings settings = JavaPreferencesSettings.getCodeGenerationSettings(type.getJavaProject());
+		settings.createComments = false;
+		ASTParser parser = ASTParser.newParser(AST.JLS3);
+		parser.setResolveBindings(true);
+		parser.setSource(cu);
+		CompilationUnit unit = (CompilationUnit) parser.createAST(null);
+		final ITypeBinding binding = ASTNodes.getTypeBinding(unit, type);
+		if (binding != null) {
+			if (doUnimplementedMethods) {
+				AddUnimplementedMethodsOperation operation = new AddUnimplementedMethodsOperation(unit, binding, null, -1, false, true, false);
+				operation.setCreateComments(false);
+				operation.run(null);
+				createImports(imports, operation.getCreatedImports());
+			}
+			if (doConstructors) {
+				AddUnimplementedConstructorsOperation operation = new AddUnimplementedConstructorsOperation(unit, binding, null, -1, false, true, false, null);
+				operation.setOmitSuper(true);
+				operation.setCreateComments(false);
+				operation.run(null);
+				createImports(imports, operation.getCreatedImports());
+			}
+		}
+		JavaModelUtil.reconcile(cu);
+		typeMethods = type.getMethods();
+		for (int index = 0; index < typeMethods.length; index++)
+			if (!handleIds.contains(typeMethods[index].getHandleIdentifier()))
+				newMethods.add(typeMethods[index]);
+		IMethod[] methods = new IMethod[newMethods.size()];
+		newMethods.toArray(methods);
+		return methods;
+	}
+
+	private static void createImports(ImportsManager imports, String[] createdImports) {
+		for (int index = 0; index < createdImports.length; index++)
+			imports.addImport(createdImports[index]);
+	}
+
+	public static void removeUnusedImports(IType type) {
+		try {
+			ICompilationUnit cu = type.getCompilationUnit();
+			CompilationUnit astRoot = ASTHelper.createASTForImports(cu);
+			Set existingImports = ASTHelper.getExistingImports(astRoot);
+			ASTHelper.removeUnusedImports(cu, existingImports, true);
+		} catch (CoreException e) {
+		}
+	}
+
+	private static void removeUnusedImports(ICompilationUnit cu, Set existingImports, boolean needsSave) throws CoreException {
+		ASTParser parser = ASTParser.newParser(AST.JLS3);
+		parser.setSource(cu);
+		parser.setResolveBindings(true);
+
+		CompilationUnit root = (CompilationUnit) parser.createAST(null);
+		if (root.getProblems().length == 0) {
+			return;
+		}
+
+		List importsDecls = root.imports();
+		if (importsDecls.isEmpty()) {
+			return;
+		}
+		ImportsManager imports = new ImportsManager(root);
+
+		int importsEnd = ASTNodes.getExclusiveEnd((ASTNode) importsDecls.get(importsDecls.size() - 1));
+		IProblem[] problems = root.getProblems();
+		for (int i = 0; i < problems.length; i++) {
+			IProblem curr = problems[i];
+			if (curr.getSourceEnd() < importsEnd) {
+				int id = curr.getID();
+				if (id == IProblem.UnusedImport || id == IProblem.NotVisibleType) { // not visible
+					// problems hide
+					// unused -> remove
+					// both
+					int pos = curr.getSourceStart();
+					for (int k = 0; k < importsDecls.size(); k++) {
+						ImportDeclaration decl = (ImportDeclaration) importsDecls.get(k);
+						if (decl.getStartPosition() <= pos && pos < decl.getStartPosition() + decl.getLength()) {
+							if (existingImports.isEmpty() || !existingImports.contains(ASTNodes.asString(decl))) {
+								String name = decl.getName().getFullyQualifiedName();
+								if (decl.isOnDemand()) {
+									name += ".*"; //$NON-NLS-1$
+								}
+								if (decl.isStatic()) {
+									imports.removeStaticImport(name);
+								} else {
+									imports.removeImport(name);
+								}
+							}
+							break;
+						}
+					}
+				}
+			}
+		}
+		imports.create(needsSave, null);
+	}
+
+	private static Set /* String */getExistingImports(CompilationUnit root) {
+		List imports = root.imports();
+		Set res = new HashSet(imports.size());
+		for (int i = 0; i < imports.size(); i++) {
+			res.add(ASTNodes.asString((ImportDeclaration) imports.get(i)));
+		}
+		return res;
+	}
+
+	private static CompilationUnit createASTForImports(ICompilationUnit cu) {
+		ASTParser parser = ASTParser.newParser(AST.JLS3);
+		parser.setSource(cu);
+		parser.setResolveBindings(false);
+		parser.setFocalPosition(0);
+		return (CompilationUnit) parser.createAST(null);
+	}
+
+	protected static String constructCUContent(ICompilationUnit cu, String typeContent, String lineDelimiter) throws CoreException {
+		String fileComment = "";
+		String typeComment = "";
+		IPackageFragment pack = (IPackageFragment) cu.getParent();
+		String content = CodeGeneration.getCompilationUnitContent(cu, fileComment, typeComment, typeContent, lineDelimiter);
+		if (content != null) {
+			ASTParser parser = ASTParser.newParser(AST.JLS3);
+			parser.setProject(cu.getJavaProject());
+			parser.setSource(content.toCharArray());
+			CompilationUnit unit = (CompilationUnit) parser.createAST(null);
+			if ((pack.isDefaultPackage() || unit.getPackage() != null) && !unit.types().isEmpty()) {
+				return content;
+			}
+		}
+		StringBuffer buf = new StringBuffer();
+		if (!pack.isDefaultPackage()) {
+			buf.append("package ").append(pack.getElementName()).append(';'); //$NON-NLS-1$
+		}
+		buf.append(lineDelimiter).append(lineDelimiter);
+		if (typeComment != null) {
+			buf.append(typeComment).append(lineDelimiter);
+		}
+		buf.append(typeContent);
+		return buf.toString();
+	}
+
+	/*
+	 * Called from createType to construct the source for this type
+	 */
+	private static String constructTypeStub(String typeName, Collection<Class<?>> superInterfaces, Class<?> superClass, ICompilationUnit parentCU, ImportsManager imports, String lineDelimiter) throws CoreException {
+		StringBuffer buf = new StringBuffer();
+
+		int modifiers = Flags.AccPublic;
+		buf.append(Flags.toString(modifiers));
+		if (modifiers != 0) {
+			buf.append(' ');
+		}
+		String type = "class ";//$NON-NLS-1$
+		String templateID = CodeGeneration.CLASS_BODY_TEMPLATE_ID;
+		buf.append(type);
+		buf.append(typeName);
+		writeSuperClass(buf, imports, superClass);
+		writeSuperInterfaces(buf, imports, superInterfaces);
+
+		buf.append(" {").append(lineDelimiter); //$NON-NLS-1$
+		String typeBody = CodeGeneration.getTypeBody(templateID, parentCU, typeName, lineDelimiter);
+		if (typeBody != null) {
+			buf.append(typeBody);
+		} else {
+			buf.append(lineDelimiter);
+		}
+		buf.append('}').append(lineDelimiter);
+		return buf.toString();
+	}
+
+	private static void writeSuperClass(StringBuffer buf, ImportsManager imports, Class<?> superType) {
+		if (superType == null) {
+			return;
+		}
+		String superclass = superType.getName();
+		buf.append(" extends "); //$NON-NLS-1$
+		buf.append(imports.addImport(superclass));
+	}
+
+	private static void writeSuperInterfaces(StringBuffer buf, ImportsManager imports, Collection<Class<?>> superInterfaces) {
+		if (superInterfaces == null || superInterfaces.isEmpty()) {
+			return;
+		}
+		List<String> interfaces = new ArrayList<String>();
+		for (Class<?> t : superInterfaces) {
+			String name = t.getName();
+			interfaces.add(name);
+			imports.addImport(name);
+		}
+		int last = interfaces.size() - 1;
+		if (last >= 0) {
+			buf.append(" implements "); //$NON-NLS-1$
+			String[] intfs = (String[]) interfaces.toArray(new String[interfaces.size()]);
+			ITypeBinding[] bindings;
+			bindings = new ITypeBinding[intfs.length];
+			for (int i = 0; i <= last; i++) {
+				ITypeBinding binding = bindings[i];
+				if (binding != null) {
+					buf.append(imports.addImport(binding));
+				} else {
+					buf.append(imports.addImport(intfs[i]));
+				}
+				if (i < last) {
+					buf.append(',');
+				}
+			}
+		}
+	}
+
+	private static String constructSimpleTypeStub(String typeName) {
+		StringBuffer buf = new StringBuffer("public class "); //$NON-NLS-1$
+		buf.append(typeName);
+		buf.append("{ }"); //$NON-NLS-1$
+		return buf.toString();
+	}
+
+	public static void generateEventHandler(final IType type, final String argumentType, final String handleName) throws Exception {
+		final ASTHelper helper = new ASTHelper();
+		Runnable typeRunner = new Runnable() {
+			public void run() {
+				try {
+					helper.createEventHandlers(type, handleName, argumentType);
+				} catch (CoreException e) {
+				}
+			}
+		};
+		helper.generateTypeMembers(type, argumentType, true, typeRunner);
+	}
+
+	protected void createEventHandlers(IType type, String method, String argumentType) throws CoreException {
+		int lastIndexOf = argumentType.lastIndexOf(".");
+		String shortArgTypeName = argumentType.substring(lastIndexOf + 1);
+		StringBuffer buf = new StringBuffer();
+		final String lineDelim = "\n"; // OK, since content is formatted
+		// afterwards //$NON-NLS-1$
+		String comment = CodeGeneration.getMethodComment(type.getCompilationUnit(), type.getTypeQualifiedName('.'), method, new String[] { "event" }, new String[0], Signature.createTypeSignature("void", true), null, lineDelim); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		if (comment != null) {
+			buf.append(comment);
+			buf.append(lineDelim);
+		}
+		buf.append("public void " + method + "( "); //$NON-NLS-1$
+		buf.append(shortArgTypeName); //$NON-NLS-1$
+		buf.append(" event) {"); //$NON-NLS-1$
+		buf.append(lineDelim);
+
+		final String content = CodeGeneration.getMethodBodyContent(type.getCompilationUnit(), type.getTypeQualifiedName('.'), method, false, "", lineDelim); //$NON-NLS-1$ //$NON-NLS-2$
+		if (content != null && content.length() != 0)
+			buf.append(content);
+		buf.append(lineDelim);
+		buf.append("}"); //$NON-NLS-1$
+		type.createMethod(buf.toString(), null, false, null);
+	}
+
+	public static void generateInitialization(final IType type, final String method, final Set<String> fieldNames) throws Exception {
+		final ASTHelper helper = new ASTHelper();
+		Runnable typeRunner = new Runnable() {
+			public void run() {
+				try {
+					helper.createInitializeMembers(type, method, fieldNames);
+				} catch (CoreException e) {
+				}
+			}
+		};
+		helper.generateTypeMembers(type, null, true, typeRunner);
+	}
+
+	protected void createInitializeMembers(IType type, String method, Set<String> fieldNames) throws CoreException {
+		IMethod init = null;
+		IMethod[] methods = type.getMethods();
+		for (IMethod method2 : methods) {
+			if (method2.getElementName().equals(method)) {
+				init = method2;
+				break;
+			}
+		}
+		if (init != null) {
+			init.delete(false, null);
+		}
+		StringBuffer buf = new StringBuffer();
+		final String lineDelim = "\n";
+		String comment = "/**\n  * Generated Initialization.\n */";
+		if (comment != null) {
+			buf.append(comment);
+			buf.append(lineDelim);
+		}
+		buf.append("protected void " + method + " () {"); //$NON-NLS-1$
+		buf.append(lineDelim);
+
+		if (fieldNames.isEmpty()) {
+			final String content = CodeGeneration.getMethodBodyContent(type.getCompilationUnit(), type.getTypeQualifiedName('.'), method, false, "", lineDelim); //$NON-NLS-1$ //$NON-NLS-2$
+			if (content != null && content.length() != 0) {
+				buf.append(content);
+			}
+		}
+		for (String fieidName : fieldNames) {
+			IField field = type.getField(fieidName);
+			if (field != null) {
+				String initialize = fieidName + " = (" + Signature.toString(field.getTypeSignature()) + ") findElement(\"" + fieidName + "\");";
+				buf.append(initialize);
+			}
+		}
+		buf.append(lineDelim);
+		buf.append("}"); //$NON-NLS-1$
+		type.createMethod(buf.toString(), null, false, null);
+	}
+
+	public void generateTypeMembers(IType type, String argumentType, boolean needsSave, Runnable typeRunner) throws Exception {
+		int indent = 0;
+		IProgressMonitor monitor = new NullProgressMonitor();
+
+		Set /* String (import names) */existingImports;
+
+		String lineDelimiter = StubUtility.getLineDelimiterUsed(type.getJavaProject());
+		ICompilationUnit cu = type.getCompilationUnit();
+		// create a working copy with a new owner
+
+		cu.becomeWorkingCopy(monitor);
+
+		CompilationUnit astRoot = createASTForImports(cu);
+		existingImports = getExistingImports(astRoot);
+
+		ImportsManager imports = new ImportsManager(astRoot);
+		if (argumentType != null) {
+			imports.addImport(argumentType);
+		}
+		typeRunner.run();
+		// add imports
+		imports.create(false, monitor);
+
+		removeUnusedImports(cu, existingImports, false);
+
+		JavaModelUtil.reconcile(cu);
+
+		ISourceRange range = type.getSourceRange();
+
+		IBuffer buf = cu.getBuffer();
+		String originalContent = buf.getText(range.getOffset(), range.getLength());
+
+		String formattedContent = CodeFormatterUtil.format(CodeFormatter.K_CLASS_BODY_DECLARATIONS, originalContent, indent, lineDelimiter, type.getJavaProject());
+		formattedContent = Strings.trimLeadingTabsAndSpaces(formattedContent);
+		buf.replace(range.getOffset(), range.getLength(), formattedContent);
+
+		if (needsSave) {
+			cu.commitWorkingCopy(true, new SubProgressMonitor(monitor, 1));
+		} else {
+			monitor.worked(1);
+		}
+	}
+
+	public static void generateNamedFields(IType type, String fieldType, String fieldName) {
+		try {
+			ASTHelper helper = new ASTHelper();
+			helper.createNamedFields(type, fieldType, fieldName, true);
+		} catch (Exception e) {
+		}
+	}
+
+	public void createNamedFields(IType type, String fieldType, String fieldName, boolean needSave) throws Exception {
+		if (fieldType == null || fieldName == null) {
+			return;
+		}
+		IProgressMonitor monitor = new NullProgressMonitor();
+
+		Set /* String (import names) */existingImports;
+
+		String lineDelimiter = StubUtility.getLineDelimiterUsed(type.getJavaProject());
+		ICompilationUnit cu = type.getCompilationUnit();
+		// create a working copy with a new owner
+
+		cu.becomeWorkingCopy(monitor);
+
+		CompilationUnit astRoot = createASTForImports(cu);
+		existingImports = getExistingImports(astRoot);
+
+		ImportsManager imports = new ImportsManager(astRoot);
+		imports.addImport(fieldType);
+		createField(type, fieldType, fieldName);
+
+		// add imports
+		imports.create(false, monitor);
+
+		removeUnusedImports(cu, existingImports, false);
+
+		JavaModelUtil.reconcile(cu);
+
+		ISourceRange range = type.getSourceRange();
+
+		IBuffer buf = cu.getBuffer();
+		String originalContent = buf.getText(range.getOffset(), range.getLength());
+
+		String formattedContent = CodeFormatterUtil.format(CodeFormatter.K_CLASS_BODY_DECLARATIONS, originalContent, 0, lineDelimiter, type.getJavaProject());
+		formattedContent = Strings.trimLeadingTabsAndSpaces(formattedContent);
+		buf.replace(range.getOffset(), range.getLength(), formattedContent);
+
+		if (needSave) {
+			cu.commitWorkingCopy(true, new SubProgressMonitor(monitor, 1));
+		} else {
+			monitor.worked(1);
+		}
+	}
+
+	private void createField(IType type, String paraType, String paraName) throws Exception {
+		int lastIndexOf = paraType.lastIndexOf(".");
+		String property = paraType.substring(lastIndexOf + 1);
+		if (property == null || property.equals("")) {
+			property = paraType;
+		}
+		String contents = ("protected " + property + " " + paraName + ";");
+		type.createField(contents, null, false, null);
+	}
+
+	/**
+	 * Class used in stub creation routines to add needed imports to a compilation unit.
+	 */
+	public static class ImportsManager {
+
+		private ImportRewrite fImportsRewrite;
+
+		public ImportsManager(CompilationUnit astRoot) {
+			fImportsRewrite = CodeStyleConfiguration.createImportRewrite(astRoot, true);
+		}
+
+		public ICompilationUnit getCompilationUnit() {
+			return fImportsRewrite.getCompilationUnit();
+		}
+
+		/**
+		 * Adds a new import declaration that is sorted in the existing imports. If an import already exists or the import would conflict with an import of an other type with the same simple name, the import is not added.
+		 * 
+		 * @param qualifiedTypeName
+		 *            The fully qualified name of the type to import (dot separated).
+		 * @return Returns the simple type name that can be used in the code or the fully qualified type name if an import conflict prevented the import.
+		 */
+		public String addImport(String qualifiedTypeName) {
+			return fImportsRewrite.addImport(qualifiedTypeName);
+		}
+
+		/**
+		 * Adds a new import declaration that is sorted in the existing imports. If an import already exists or the import would conflict with an import of an other type with the same simple name, the import is not added.
+		 * 
+		 * @param typeBinding
+		 *            the binding of the type to import
+		 * 
+		 * @return Returns the simple type name that can be used in the code or the fully qualified type name if an import conflict prevented the import.
+		 */
+		public String addImport(ITypeBinding typeBinding) {
+			return fImportsRewrite.addImport(typeBinding);
+		}
+
+		/**
+		 * Adds a new import declaration for a static type that is sorted in the existing imports. If an import already exists or the import would conflict with an import of an other static import with the same simple name, the import is not added.
+		 * 
+		 * @param declaringTypeName
+		 *            The qualified name of the static's member declaring type
+		 * @param simpleName
+		 *            the simple name of the member; either a field or a method name.
+		 * @param isField
+		 *            <code>true</code> specifies that the member is a field, <code>false</code> if it is a method.
+		 * @return returns either the simple member name if the import was successful or else the qualified name if an import conflict prevented the import.
+		 * 
+		 * @since 3.2
+		 */
+		public String addStaticImport(String declaringTypeName, String simpleName, boolean isField) {
+			return fImportsRewrite.addStaticImport(declaringTypeName, simpleName, isField);
+		}
+
+		public void create(boolean needsSave, IProgressMonitor monitor) throws CoreException {
+			TextEdit edit = fImportsRewrite.rewriteImports(monitor);
+			JavaModelUtil.applyEdit(fImportsRewrite.getCompilationUnit(), edit, needsSave, null);
+		}
+
+		public void removeImport(String qualifiedName) {
+			fImportsRewrite.removeImport(qualifiedName);
+		}
+
+		public void removeStaticImport(String qualifiedName) {
+			fImportsRewrite.removeStaticImport(qualifiedName);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/ClasspathContainer.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/ClasspathContainer.java
new file mode 100755
index 0000000..7292294
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/ClasspathContainer.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.jdt;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jdt.core.IClasspathContainer;
+import org.eclipse.jdt.core.IClasspathEntry;
+
+public class ClasspathContainer implements IClasspathContainer {
+	IClasspathEntry[] entries;
+
+	/**
+	 * 
+	 */
+	public ClasspathContainer(IClasspathEntry[] entries) {
+		this.entries = entries;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jdt.core.IClasspathContainer#getClasspathEntries()
+	 */
+	public IClasspathEntry[] getClasspathEntries() {
+		return entries;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jdt.core.IClasspathContainer#getDescription()
+	 */
+	public String getDescription() {
+		return IContainerConstants.DESCRIPTION;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jdt.core.IClasspathContainer#getKind()
+	 */
+	public int getKind() {
+		return K_APPLICATION;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jdt.core.IClasspathContainer#getPath()
+	 */
+	public IPath getPath() {
+		return new Path(IContainerConstants.LIB_CONTAINER);
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/IContainerConstants.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/IContainerConstants.java
new file mode 100755
index 0000000..e091404
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/IContainerConstants.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.jdt;
+
+public interface IContainerConstants {
+	String LIB_CONTAINER = "XWT_CONTAINER";
+
+	String DESCRIPTION = "SWT Library";
+
+	String JAR_FILE_EXTENSION = "jar";
+
+	String JAR_LIB = "plugins";
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/ProjectHelper.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/ProjectHelper.java
new file mode 100755
index 0000000..fb59b9e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/ProjectHelper.java
@@ -0,0 +1,246 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.jdt;
+
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.net.URL;
+import java.util.ArrayList;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.IBundleGroup;
+import org.eclipse.core.runtime.IBundleGroupProvider;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jdt.core.IClasspathContainer;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.pde.core.plugin.IPluginBase;
+import org.eclipse.pde.core.plugin.IPluginImport;
+import org.eclipse.pde.core.plugin.IPluginReference;
+import org.eclipse.pde.internal.core.ICoreConstants;
+import org.eclipse.pde.internal.core.bundle.WorkspaceBundleFragmentModel;
+import org.eclipse.pde.internal.core.bundle.WorkspaceBundlePluginModel;
+import org.eclipse.pde.internal.core.bundle.WorkspaceBundlePluginModelBase;
+import org.osgi.framework.Bundle;
+
+public class ProjectHelper {
+	static String[] bundleNames = new String[] { "org.eclipse.swt." + Platform.getWS() + "." + Platform.getOS() + "." + Platform.getOSArch(), "org.eclipse.swt." + Platform.getWS() + "." + Platform.getOS(), "org.eclipse.jface" };
+
+	/**
+	 * Collect all jars
+	 * 
+	 * @return
+	 */
+	public static ClasspathContainer createContainer() {
+		ArrayList<IClasspathEntry> entries = new ArrayList<IClasspathEntry>();
+
+		for (String bundleName : bundleNames) {
+			Bundle bundle = Platform.getBundle(bundleName);
+			try {
+				if (bundle == null) {
+					continue;
+				}
+				String fileName = bundle.getLocation(); // maybe hard coded
+				if (fileName != null && fileName.startsWith("reference:file:")) {
+					fileName = fileName.substring(15);
+				}
+				IPath path = new Path(fileName);
+				if (path.toFile().exists()) {
+					if (IContainerConstants.JAR_FILE_EXTENSION.equalsIgnoreCase(path.getFileExtension())) {
+						entries.add(JavaCore.newLibraryEntry(path, null, null));
+					}
+				}
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+		IClasspathEntry[] paths = new IClasspathEntry[entries.size()];
+		entries.toArray(paths);
+
+		return new ClasspathContainer(paths);
+	}
+
+	public static void checkDependenceJars(IProject project) {
+		checkDependenceJars(JavaCore.create(project));
+	}
+
+	/**
+	 * Check if it is a plugin. If it is, check if com.soyatec.eface.ui is used.
+	 * 
+	 * @param javaProject
+	 */
+	public static void checkDependenceJars(IJavaProject javaProject) {
+		if (javaProject == null) {
+			return;
+		}
+		IProject project = javaProject.getProject();
+		IFile file = project.getFile(ICoreConstants.BUNDLE_FILENAME_DESCRIPTOR);
+
+		if (file != null && file.exists()) {
+			WorkspaceBundlePluginModelBase fModel = null;
+			IFile fragmentFile = project.getFile(ICoreConstants.FRAGMENT_FILENAME_DESCRIPTOR);
+			IFile pluginFile = project.getFile(ICoreConstants.PLUGIN_FILENAME_DESCRIPTOR);
+			if (fragmentFile != null && fragmentFile.exists()) {
+				fModel = new WorkspaceBundleFragmentModel(file, fragmentFile);
+			} else {
+				fModel = new WorkspaceBundlePluginModel(file, pluginFile);
+			}
+			IPluginBase pluginBase = fModel.getPluginBase();
+
+			try {
+				IPluginReference[] dependencies = getDependencies();
+				for (IPluginReference pluginReference : dependencies) {
+					IPluginImport iimport = fModel.getPluginFactory().createImport();
+					iimport.setId(pluginReference.getId());
+					iimport.setVersion(pluginReference.getVersion());
+					iimport.setMatch(pluginReference.getMatch());
+					pluginBase.add(iimport);
+				}
+				fModel.save();
+			} catch (CoreException e) {
+				e.printStackTrace();
+			}
+		} else {
+			addJars(javaProject);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.pde.ui.templates.AbstractTemplateSection#getDependencies(java.lang.String)
+	 */
+	public static IPluginReference[] getDependencies() {
+		return new IPluginReference[0];
+	}
+
+	protected static Bundle findProjectBundle(IProject project) {
+		try {
+			URL location = project.getLocationURI().toURL();
+
+			IBundleGroupProvider[] groupProviders = Platform.getBundleGroupProviders();
+			for (IBundleGroupProvider bundleGroupProvider : groupProviders) {
+				for (IBundleGroup bundleGroup : bundleGroupProvider.getBundleGroups()) {
+					for (Bundle bundle : bundleGroup.getBundles()) {
+						URL bundlePath = bundle.getEntry("/");
+						URL url = FileLocator.resolve(bundlePath);
+						if (location.toString().equals(url.toString())) {
+							return bundle;
+						}
+					}
+				}
+			}
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
+
+	protected static boolean containsJar(IJavaProject javaProject, IClasspathEntry entry, String jarName) {
+		switch (entry.getEntryKind()) {
+		case IClasspathEntry.CPE_VARIABLE:
+			IClasspathEntry resolvedEntry = JavaCore.getJavaCore().getResolvedClasspathEntry(entry);
+			IPath resolvedPath = resolvedEntry.getPath();
+			String string = resolvedPath.toString();
+			if (string.indexOf(jarName) != -1) {
+				return true;
+			}
+			break;
+		case IClasspathEntry.CPE_CONTAINER:
+			try {
+				IPath path = entry.getPath();
+				IClasspathContainer classpathContainer = JavaCore.getJavaCore().getClasspathContainer(path, javaProject);
+				if (classpathContainer != null) {
+					classpathContainer.getClasspathEntries();
+					IClasspathEntry[] oldclasspath = classpathContainer.getClasspathEntries();
+					for (int i = 0; i < oldclasspath.length; i++) {
+						if (containsJar(javaProject, oldclasspath[i], jarName)) {
+							return true;
+						}
+					}
+				}
+			} catch (JavaModelException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+			break;
+		case IClasspathEntry.CPE_SOURCE:
+		case IClasspathEntry.CPE_LIBRARY:
+			IPath path = entry.getPath();
+			String value = path.toString();
+			if (value.indexOf(jarName) != -1) {
+				return true;
+			}
+		}
+
+		return false;
+	}
+
+	public static void addJars(IJavaProject javaProject) {
+		try {
+			IClasspathEntry[] oldclasspath = javaProject.getRawClasspath();
+			for (int i = 0; i < oldclasspath.length; i++) {
+				if ((oldclasspath[i]).getPath().toString().equals(IContainerConstants.LIB_CONTAINER)) {
+					return;
+				}
+			}
+
+			ClasspathContainer container = ProjectHelper.createContainer();
+
+			IClasspathEntry newContainerEntry = JavaCore.newContainerEntry(container.getPath());
+			JavaCore.setClasspathContainer(newContainerEntry.getPath(), new IJavaProject[] { javaProject }, new IClasspathContainer[] { container }, null);
+
+			IClasspathEntry[] newclasspath = new IClasspathEntry[oldclasspath.length + 1];
+			for (int i = 0; i < oldclasspath.length; i++) {
+				newclasspath[i] = oldclasspath[i];
+			}
+			newclasspath[newclasspath.length - 1] = newContainerEntry;
+			javaProject.setRawClasspath(newclasspath, null);
+		} catch (JavaModelException javaModelException) {
+			javaModelException.printStackTrace();
+		}
+	}
+
+	public static void removeJars(IJavaProject javaProject) {
+		try {
+			IClasspathEntry[] oldclasspath = javaProject.getRawClasspath();
+			for (int i = 0; i < oldclasspath.length; i++) {
+				IPath path = oldclasspath[i].getPath();
+				if (path.toString().equals(IContainerConstants.LIB_CONTAINER)) {
+					oldclasspath[i] = null;
+					break;
+				}
+				if (i == oldclasspath.length - 1) {
+					return;
+				}
+			}
+
+			IClasspathEntry[] newclasspath = new IClasspathEntry[oldclasspath.length - 1];
+			for (int i = 0, m = 0; i < oldclasspath.length; i++) {
+				if (oldclasspath[i] != null) {
+					newclasspath[m++] = oldclasspath[i];
+				}
+			}
+			javaProject.setRawClasspath(newclasspath, null);
+		} catch (JavaModelException javaModelException) {
+			javaModelException.printStackTrace();
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/XWTClasspathContainerInitializer.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/XWTClasspathContainerInitializer.java
new file mode 100755
index 0000000..cadd819
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/jdt/XWTClasspathContainerInitializer.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.jdt;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.jdt.core.IClasspathContainer;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+
+public class XWTClasspathContainerInitializer extends org.eclipse.jdt.core.ClasspathContainerInitializer {
+
+	public XWTClasspathContainerInitializer() {
+	}
+
+	@Override
+	public void initialize(IPath containerPath, IJavaProject project) throws CoreException {
+		int size = containerPath.segmentCount();
+		if (size > 0) {
+			if (containerPath.segment(0).equals(IContainerConstants.LIB_CONTAINER)) {
+				ClasspathContainer container = ProjectHelper.createContainer();
+				JavaCore.setClasspathContainer(containerPath, new IJavaProject[] { project }, new IClasspathContainer[] { container }, null);
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/LayoutDataType.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/LayoutDataType.java
new file mode 100755
index 0000000..ab78edc
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/LayoutDataType.java
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.layouts;
+
+/**
+ * @author rui.ban rui.ban@soyatec.com
+ */
+public enum LayoutDataType {
+	Unknown, GridData, RowData, StackData, FormData;
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/LayoutType.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/LayoutType.java
new file mode 100755
index 0000000..3570fe8
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/LayoutType.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.layouts;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public enum LayoutType {
+	Unknown(null), NullLayout("Null(default)"), GridLayout("GridLayout"), FillLayout("FillLayout"), RowLayout("RowLayout"), StackLayout("StackLayout"), FormLayout("FormLayout");
+	private String value;
+
+	private LayoutType(String value) {
+		this.value = value;
+	}
+
+	public String value() {
+		return value;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/LayoutsHelper.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/LayoutsHelper.java
new file mode 100755
index 0000000..50b47c9
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/LayoutsHelper.java
@@ -0,0 +1,162 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.layouts;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.gef.EditPart;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Layout;
+import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class LayoutsHelper {
+
+	public static List<LayoutType> layoutsList = new ArrayList<LayoutType>();
+	static {
+		layoutsList.add(LayoutType.NullLayout);
+		layoutsList.add(LayoutType.FillLayout);
+		layoutsList.add(LayoutType.FormLayout);
+		layoutsList.add(LayoutType.GridLayout);
+		layoutsList.add(LayoutType.RowLayout);
+		layoutsList.add(LayoutType.StackLayout);
+	}
+
+	public static LayoutType getLayoutType(EditPart editPart) {
+		if (editPart instanceof CompositeEditPart) {
+			Layout layout = ((CompositeEditPart) editPart).getLayout();
+			return getLayoutType(layout);
+		}
+		return LayoutType.Unknown;
+	}
+
+	public static LayoutDataType getLayoutDataType(EditPart editPart) {
+		if (editPart == null) {
+			return LayoutDataType.Unknown;
+		}
+		EditPart parent = editPart.getParent();
+		LayoutType layoutType = getLayoutType(parent);
+		if (LayoutType.GridLayout == layoutType) {
+			return LayoutDataType.GridData;
+		} else if (LayoutType.RowLayout == layoutType) {
+			return LayoutDataType.RowData;
+		} else if (LayoutType.FormLayout == layoutType) {
+			return LayoutDataType.FormData;
+		}
+		return LayoutDataType.Unknown;
+
+	}
+
+	public static LayoutType getLayoutType(Layout layout) {
+		if (layout == null) {
+			return LayoutType.NullLayout;
+		} else if (layout instanceof org.eclipse.swt.layout.GridLayout) {
+			return LayoutType.GridLayout;
+		} else if (layout instanceof org.eclipse.swt.layout.FillLayout) {
+			return LayoutType.FillLayout;
+		} else if (layout instanceof org.eclipse.swt.layout.RowLayout) {
+			return LayoutType.RowLayout;
+		} else if (layout instanceof org.eclipse.swt.custom.StackLayout) {
+			return LayoutType.StackLayout;
+		} else if (layout instanceof org.eclipse.swt.layout.FormLayout) {
+			return LayoutType.FormLayout;
+		}
+		return LayoutType.NullLayout;
+	}
+
+	public static LayoutType getLayoutType(String value) {
+		if (value == null) {
+			return LayoutType.NullLayout;
+		}
+		LayoutType[] values = LayoutType.values();
+		for (LayoutType layoutType : values) {
+			if (value.equals(layoutType.value())) {
+				return layoutType;
+			}
+		}
+		return LayoutType.Unknown;
+	}
+
+	public static LayoutType getLayoutType(XamlElement element) {
+		IMetaclass metaclass = XWTUtility.getMetaclass(element);
+		if (metaclass == null || !Composite.class.isAssignableFrom(metaclass.getType())) {
+			return LayoutType.Unknown;
+		}
+		XamlAttribute attribute = element.getAttribute("layout");
+		if (attribute == null || attribute.getChildNodes().isEmpty()) {
+			return LayoutType.NullLayout;
+		}
+		String name = attribute.getChildNodes().get(0).getName();
+		return getLayoutType(name);
+	}
+
+	public static LayoutType getLayoutType(Object object) {
+		if (object == null) {
+			return LayoutType.NullLayout;
+		} else if (object instanceof LayoutType) {
+			return (LayoutType) object;
+		} else if (object instanceof String) {
+			return getLayoutType((String) object);
+		} else if (object instanceof EditPart) {
+			return getLayoutType((EditPart) object);
+		} else if (object instanceof Layout) {
+			return getLayoutType((Layout) object);
+		} else if (object instanceof XamlElement) {
+			return getLayoutType((XamlElement) object);
+		}
+		return LayoutType.Unknown;
+	}
+
+	public static boolean isLayoutNode(XamlNode node) {
+		if (node == null || !(node instanceof XamlAttribute)) {
+			return false;
+		}
+		return "layout".equalsIgnoreCase(node.getName());
+	}
+
+	public static boolean canSetLayout(EditPart host) {
+		if (host == null || host.getModel() == null) {
+			return false;
+		}
+		return canSetLayout(host.getModel());
+	}
+
+	public static boolean canSetLayout(Object model) {
+		if (model == null) {
+			return false;
+		}
+		if (model instanceof XamlElement) {
+			XamlElement XamlElement = (XamlElement) model;
+			String name = XamlElement.getName();
+			String namespace = XamlElement.getNamespace();
+			try {
+				IMetaclass metaclass = XWT.getMetaclass(name, namespace);
+				if (metaclass != null) {
+					Class<?> type = metaclass.getType();
+					return type != null && Composite.class.isAssignableFrom(type);
+				}
+			} catch (Exception e) {
+			}
+		}
+		return false;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/CheckBoxFieldEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/CheckBoxFieldEditor.java
new file mode 100755
index 0000000..159ffc0
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/CheckBoxFieldEditor.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.layouts.control;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class CheckBoxFieldEditor extends FieldEditor {
+
+	private Button checkBox;
+	private boolean wasSelected = false;
+
+	public CheckBoxFieldEditor(String fieldName, String labelText, Composite parent) {
+		super(fieldName, labelText, parent);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.FieldEditor#refresh(java.lang.Object)
+	 */
+	protected void update(String value) {
+		if (checkBox == null || checkBox.isDisposed()) {
+			return;
+		}
+		if (value != null) {
+			wasSelected = Boolean.parseBoolean(value.toString());
+		}
+		checkBox.setSelection(wasSelected);
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.FieldEditor#createEditor(org.eclipse.swt.widgets.Composite, java.lang.String)
+	 */
+	protected Control createEditor(Composite parent) {
+		checkBox = new Button(parent, SWT.CHECK);
+		if (labelText != null) {
+			checkBox.setText(labelText);
+		}
+		checkBox.addListener(SWT.Selection, new Listener() {
+			public void handleEvent(Event event) {
+				boolean isSelected = checkBox.getSelection();
+				dispatchEvent(Boolean.toString(wasSelected), Boolean.toString(isSelected));
+				wasSelected = isSelected;
+			}
+		});
+		adapt(checkBox);
+		return checkBox;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/FieldEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/FieldEditor.java
new file mode 100755
index 0000000..75f382b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/FieldEditor.java
@@ -0,0 +1,122 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.layouts.control;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public abstract class FieldEditor {
+
+	protected String fieldName;
+	protected String labelText;
+	private Control editor;
+	private List<FieldEditorListener> listeners;
+
+	private boolean updating;
+	private boolean dispatching;
+
+	protected FieldEditor() {
+	}
+
+	protected FieldEditor(String fieldName, String labelText, Composite parent) {
+		init(fieldName, labelText);
+		createControl(parent);
+	}
+
+	protected void createControl(Composite parent) {
+		editor = createEditor(parent);
+	}
+
+	protected void init(String fieldName, String labelText) {
+		Assert.isNotNull(fieldName);
+		this.fieldName = fieldName;
+		this.labelText = labelText;
+	}
+
+	public Control getEditor() {
+		return editor;
+	}
+
+	public void apply(Object source) {
+		if (!isValid() || source == null) {
+			return;
+		}
+		try {
+			Field field = source.getClass().getField(fieldName);
+			Object value = field.get(source);
+			doUpdate(value == null ? "" : value.toString());
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected boolean isValid() {
+		return editor != null && !editor.isDisposed() && !dispatching;
+	}
+
+	protected void doUpdate(String newValue) {
+		updating = true;
+		update(newValue == null ? "" : newValue);
+		updating = false;
+	}
+
+	protected void dispatchEvent(String oldValue, String newValue) {
+		if (listeners == null || updating || (oldValue == null && newValue == null) || (oldValue != null && oldValue.equals(newValue))) {
+			return;
+		}
+		dispatching = true;
+		FieldEditorEvent event = new FieldEditorEvent(this, fieldName, oldValue, newValue);
+		for (FieldEditorListener l : listeners) {
+			if (event.doit) {
+				break;
+			}
+			l.handleEvent(event);
+		}
+		dispatching = false;
+	}
+
+	public void addListener(FieldEditorListener listener) {
+		if (listeners == null) {
+			listeners = new ArrayList<FieldEditorListener>();
+		}
+		listeners.add(listener);
+	}
+
+	public void removeListener(FieldEditorListener listener) {
+		if (listeners != null) {
+			listeners.remove(listener);
+		}
+	}
+
+	public String getFieldName() {
+		return fieldName;
+	}
+
+	protected void adapt(Control control) {
+		control.setBackground(control.getDisplay().getSystemColor(SWT.COLOR_WHITE));
+	}
+
+	protected abstract void update(String value);
+
+	protected abstract Control createEditor(Composite parent);
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/FieldEditorEvent.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/FieldEditorEvent.java
new file mode 100755
index 0000000..a1926d4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/FieldEditorEvent.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.layouts.control;
+
+public class FieldEditorEvent {
+
+	public FieldEditor editor;
+	public String field;
+	public String oldValue;
+	public String newVlaue;
+
+	public boolean doit = false;
+
+	public FieldEditorEvent(FieldEditor editor, String field, String oldValue, String newValue) {
+		this.editor = editor;
+		this.field = field;
+		this.oldValue = oldValue;
+		this.newVlaue = newValue;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/FieldEditorListener.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/FieldEditorListener.java
new file mode 100755
index 0000000..7f69c1c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/FieldEditorListener.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.layouts.control;
+
+public interface FieldEditorListener {
+	void handleEvent(FieldEditorEvent event);
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/RadioGroupFieldEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/RadioGroupFieldEditor.java
new file mode 100755
index 0000000..54d88de
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/RadioGroupFieldEditor.java
@@ -0,0 +1,119 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.layouts.control;
+
+import org.eclipse.xwt.converters.StringToInteger;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Listener;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class RadioGroupFieldEditor extends FieldEditor {
+
+	private String[][] labelsAndValues;
+	private Button[] radioButtons;
+	private String value;
+	private String groupName;
+
+	public RadioGroupFieldEditor(String fieldName, String[][] labelsAndValues, Composite parent, String groupName) {
+		init(fieldName, "");
+		this.labelsAndValues = labelsAndValues;
+		this.groupName = groupName;
+		createControl(parent);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.FieldEditor#createEditor(org.eclipse.swt.widgets.Composite, java.lang.String)
+	 */
+	protected Control createEditor(Composite parent) {
+		Composite radioBox;
+		if (groupName == null) {
+			radioBox = new Composite(parent, SWT.NONE);
+		} else {
+			radioBox = new Group(parent, SWT.NONE);
+			((Group) radioBox).setText(groupName);
+		}
+		adapt(radioBox);
+		GridLayout layout = new GridLayout();
+		layout.marginWidth = 0;
+		layout.marginHeight = 0;
+		radioBox.setLayout(layout);
+		if (labelsAndValues != null) {
+			Listener listener = new Listener() {
+				public void handleEvent(Event event) {
+					String oldValue = value;
+					value = (String) event.widget.getData();
+					dispatchEvent(oldValue, value);
+				}
+			};
+			radioButtons = new Button[labelsAndValues.length];
+			for (int i = 0; i < labelsAndValues.length; i++) {
+				Button radio = new Button(radioBox, SWT.RADIO | SWT.LEFT);
+				radioButtons[i] = radio;
+				String[] labelAndValue = labelsAndValues[i];
+				radio.setText(labelAndValue[0]);
+				radio.setData(labelAndValue[1]);
+				radio.addListener(SWT.Selection, listener);
+				adapt(radio);
+			}
+		}
+		return radioBox;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.FieldEditor#refresh(java.lang.Object)
+	 */
+	protected void update(String selected) {
+		this.value = selected;
+		if (radioButtons == null) {
+			return;
+		}
+
+		if (value != null) {
+			boolean found = false;
+			for (int i = 0; i < radioButtons.length; i++) {
+				Button radio = radioButtons[i];
+				boolean selection = false;
+				String data = (String) radio.getData();
+				Object intValue = StringToInteger.instance.convert(data);
+				if (data.equals(value) || value.equals(intValue.toString())) {
+					selection = true;
+					found = true;
+				}
+				radio.setSelection(selection);
+			}
+			if (found) {
+				return;
+			}
+		}
+
+		// We weren't able to find the value. So we select the first
+		// radio button as a default.
+		if (radioButtons.length > 0) {
+			radioButtons[0].setSelection(true);
+			value = (String) radioButtons[0].getData();
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/SpinnerFieldEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/SpinnerFieldEditor.java
new file mode 100755
index 0000000..8a4a665
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/control/SpinnerFieldEditor.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.layouts.control;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Spinner;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class SpinnerFieldEditor extends FieldEditor {
+
+	private Spinner spinner;
+	private int wasSelected = SWT.DEFAULT;
+
+	public SpinnerFieldEditor(String fieldName, String labelText, Composite parent) {
+		super(fieldName, labelText, parent);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.layouts.control.FieldEditor#createEditor(org.eclipse.swt.widgets.Composite)
+	 */
+	protected Control createEditor(Composite parent) {
+		Label label = new Label(parent, SWT.NONE);
+		if (labelText != null) {
+			label.setText(labelText);
+		}
+		adapt(label);
+
+		spinner = new Spinner(parent, SWT.BORDER);
+		spinner.setMinimum(-1);
+		spinner.setMaximum(9999);
+		spinner.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		spinner.addListener(SWT.Selection, new Listener() {
+			public void handleEvent(Event event) {
+				int selection = spinner.getSelection();
+				dispatchEvent(Integer.toString(wasSelected), Integer.toString(selection));
+				wasSelected = selection;
+			}
+		});
+		adapt(spinner);
+		return parent;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.layouts.control.FieldEditor#update(java.lang.String)
+	 */
+	protected void update(String value) {
+		try {
+			wasSelected = Integer.parseInt(value);
+			spinner.setSelection(wasSelected);
+		} catch (NumberFormatException e) {
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/AssistancePageFactory.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/AssistancePageFactory.java
new file mode 100755
index 0000000..02f742d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/AssistancePageFactory.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.layouts.pages;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutDataType;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
+
+/**
+ * @author rui.ban rui.ban@soyatec.com
+ */
+public class AssistancePageFactory {
+
+	public static LayoutAssistantPage createPage(LayoutType layoutType) {
+		if (!isSupport(layoutType)) {
+			return null;
+		} else if (LayoutType.FillLayout == layoutType) {
+			return new FillLayoutAssistantPage();
+		} else if (LayoutType.GridLayout == layoutType) {
+			return new GridLayoutAssistantPage();
+		} else if (LayoutType.RowLayout == layoutType) {
+			return new RowLayoutAssistantPage();
+		}
+		return null;
+	}
+
+	public static boolean isSupport(LayoutType layoutType) {
+		return LayoutType.FillLayout == layoutType || LayoutType.GridLayout == layoutType || LayoutType.RowLayout == layoutType;
+	}
+
+	public static boolean isSupport(LayoutDataType layoutDataType) {
+		return LayoutDataType.GridData == layoutDataType || LayoutDataType.RowData == layoutDataType;
+	}
+
+	public static LayoutDataAssistantPage createPage(LayoutDataType layoutDataType) {
+		if (!isSupport(layoutDataType)) {
+			return null;
+		} else if (LayoutDataType.GridData == layoutDataType) {
+			return new GridDataAssistantPage();
+		} else if (LayoutDataType.RowData == layoutDataType) {
+			return new RowDataAssistantPage();
+		}
+		return null;
+	}
+
+	public static Map<Object, IAssistantPage> newPages() {
+		Map<Object, IAssistantPage> map = new HashMap<Object, IAssistantPage>();
+		for (LayoutType layoutType : LayoutsHelper.layoutsList) {
+			LayoutAssistantPage page = createPage(layoutType);
+			if (page == null) {
+				continue;
+			}
+			map.put(layoutType, page);
+		}
+		map.put(LayoutDataType.RowData, createPage(LayoutDataType.RowData));
+		map.put(LayoutDataType.GridData, createPage(LayoutDataType.GridData));
+		return map;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/AssistantPage.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/AssistantPage.java
new file mode 100755
index 0000000..08ddf9a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/AssistantPage.java
@@ -0,0 +1,309 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.layouts.pages;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.CommandStack;
+import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.xwt.tools.ui.designer.commands.AddNewChildCommand;
+import org.eclipse.xwt.tools.ui.designer.commands.ApplyAttributeSettingCommand;
+import org.eclipse.xwt.tools.ui.designer.commands.DeleteCommand;
+import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
+import org.eclipse.xwt.tools.ui.designer.layouts.control.CheckBoxFieldEditor;
+import org.eclipse.xwt.tools.ui.designer.layouts.control.FieldEditor;
+import org.eclipse.xwt.tools.ui.designer.layouts.control.FieldEditorEvent;
+import org.eclipse.xwt.tools.ui.designer.layouts.control.FieldEditorListener;
+import org.eclipse.xwt.tools.ui.designer.layouts.control.RadioGroupFieldEditor;
+import org.eclipse.xwt.tools.ui.designer.layouts.control.SpinnerFieldEditor;
+import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
+import org.eclipse.xwt.tools.ui.designer.model.RefreshAdapter;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public abstract class AssistantPage implements IAssistantPage, FieldEditorListener {
+	private EditPart editPart;
+	private Control control;
+	private List<FieldEditor> editors = new ArrayList<FieldEditor>();
+	private XamlAttribute assistParentAttr;
+	private XamlElement assistModel;
+
+	private Map<FieldEditor, List<RefreshAdapter>> editor2refresher;
+
+	public void setEditPart(EditPart editPart) {
+		if (editPart != null && editPart != this.editPart) {
+			this.editPart = editPart;
+		}
+		refresh();
+	}
+
+	public EditPart getEditPart() {
+		return editPart;
+	}
+
+	public XamlNode getModel() {
+		if (editPart == null) {
+			return null;
+		}
+		return (XamlNode) editPart.getModel();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.IAssistantPage#getControl(org.eclipse.swt.widgets.Composite)
+	 */
+	public Control getControl(Composite parent) {
+		if (control == null || control.isDisposed()) {
+			control = createControl(parent);
+			control.setData(this);
+		}
+		return control;
+	}
+
+	protected void execute(Command command) {
+		if (editPart == null || command == null || !command.canExecute()) {
+			return;
+		}
+		EditDomain editDomain = EditDomain.getEditDomain(editPart);
+		if (editDomain == null) {
+			return;
+		}
+		CommandStack commandStack = editDomain.getCommandStack();
+		if (commandStack == null) {
+			return;
+		}
+		commandStack.execute(command);
+	}
+
+	protected RadioGroupFieldEditor createRadio(Composite parent, String groupName, String fieldName, String[][] labelsAndValues) {
+		RadioGroupFieldEditor editor = new RadioGroupFieldEditor(fieldName, labelsAndValues, parent, groupName);
+		addEditor(editor);
+		return editor;
+	}
+
+	protected CheckBoxFieldEditor createCheckBox(Composite parent, String fieldName, String labelText) {
+		CheckBoxFieldEditor editor = new CheckBoxFieldEditor(fieldName, labelText, parent);
+		addEditor(editor);
+		return editor;
+	}
+
+	protected SpinnerFieldEditor createSpinner(Composite parent, String fieldName, String labelText) {
+		SpinnerFieldEditor editor = new SpinnerFieldEditor(fieldName, labelText, parent);
+		addEditor(editor);
+		return editor;
+	}
+
+	protected void addEditor(final FieldEditor editor) {
+		editor.addListener(this);
+		editors.add(editor);
+		setUpRefresher(editor);
+	}
+
+	protected void setUpRefresher(final FieldEditor editor) {
+		XamlNode model = getAssistModel();
+		if (model != null) {
+			String fieldName = editor.getFieldName();
+			RefreshAdapter refresher = new RefreshAdapter(model, fieldName) {
+				protected void performRefresh(Notification msg) {
+					Display display = editor.getEditor().getDisplay();
+					if (Display.getCurrent() == display) {
+						editor.apply(getAssistant());						
+					}
+					else {
+						display.asyncExec(new Runnable() {
+							public void run() {
+								editor.apply(getAssistant());						
+							}
+						});
+					}
+				}
+			};
+			getRefreshers(editor).add(refresher);
+		}
+	}
+
+	protected Group createGroup(Composite composite, String groupName, int numColumns) {
+		Group group = new Group(composite, SWT.NONE);
+		group.setText(groupName);
+		group.setLayout(new GridLayout(numColumns, false));
+		adapt(group);
+		return group;
+	}
+
+	protected Composite createComposite(Composite parent) {
+		Composite composite = new Composite(parent, SWT.NONE);
+		adapt(composite);
+		return composite;
+	}
+
+	protected void adapt(Control control) {
+		control.setBackground(control.getDisplay().getSystemColor(SWT.COLOR_WHITE));
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.layouts.control.FieldEditor.FieldEditorListener#handleEvent(java.lang.String, java.lang.String, java.lang.String)
+	 */
+	public final void handleEvent(FieldEditorEvent event) {
+		FieldEditor editor = event.editor;
+		List<RefreshAdapter> refreshers = getRefreshers(editor);
+		for (RefreshAdapter refresher : refreshers) {
+			refresher.setRefreshRequired(false);
+		}
+		Command command = computeCommand(event);
+		if (command != null && command.canExecute()) {
+			execute(command);
+		}
+		for (RefreshAdapter refresher : refreshers) {
+			refresher.setRefreshRequired(true);
+		}
+	}
+
+	protected List<RefreshAdapter> getRefreshers(FieldEditor editor) {
+		if (editor == null) {
+			return Collections.emptyList();
+		}
+		if (editor2refresher == null) {
+			editor2refresher = new HashMap<FieldEditor, List<RefreshAdapter>>();
+		}
+		List<RefreshAdapter> result = editor2refresher.get(editor);
+		if (result == null) {
+			result = new ArrayList<RefreshAdapter>();
+			editor2refresher.put(editor, result);
+		}
+		return result;
+	}
+
+	protected Command computeCommand(FieldEditorEvent event) {
+		return createCommand(event.field, event.newVlaue);
+	}
+
+	protected Command createCommand(String attrName, String attrValue) {
+		CompoundCommand command = new CompoundCommand();
+		XamlElement assistModel = getAssistModel();
+		if (assistModel == null) {
+			return null;
+		}
+		XamlAttribute assistParent = getAssistParent();
+		if (assistModel.eContainer() == null) {
+			command.add(new AddNewChildCommand(assistParent, assistModel));
+		}
+		if (assistParent.eContainer() == null) {
+			command.add(new AddNewChildCommand(getModel(), assistParent));
+		}
+		command.add(new ApplyAttributeSettingCommand(assistModel, attrName, IConstants.XWT_NAMESPACE, attrValue));
+		return command.unwrap();
+	}
+
+	private XamlElement getAssistModel() {
+		if (assistModel == null && editPart != null) {
+			assistModel = createAssistModel(getModel());
+		}
+		return assistModel;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.IAssistantPage#refresh()
+	 */
+	public void refresh() {
+		// Clear cache models, so we can use latest ones when refreshing.
+		this.assistModel = null;
+		this.assistParentAttr = null;
+		apply(getAssistant());
+	}
+
+	protected Object getAssistant() {
+		XamlElement assistModel = getAssistModel();
+		if (assistModel == null) {
+			return null;
+		}
+		return XWTProxy.createValue(assistModel);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.IAssistantPage#performDefault()
+	 */
+	public void performDefault() {
+		XamlElement assistModel = getAssistModel();
+		if (assistModel != null) {
+			execute(new DeleteCommand(assistModel.getAttributes()));
+		}
+	}
+
+	protected XamlAttribute getAssistParent() {
+		if (assistParentAttr == null) {
+			assistParentAttr = createAssistParent(getModel());
+		}
+		return assistParentAttr;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.IAssistantPage#dispose()
+	 */
+	public void dispose() {
+		if (control != null) {
+			control.dispose();
+		}
+		editPart = null;
+		assistParentAttr = null;
+		assistModel = null;
+		for (FieldEditor editor : editors) {
+			List<RefreshAdapter> list = editor2refresher.get(editor);
+			for (RefreshAdapter refresher : list) {
+				refresher.dispose();
+			}
+		}
+		editor2refresher.clear();
+		editors.clear();
+	}
+
+	protected void apply(Object assistant) {
+		for (FieldEditor fEditor : editors) {
+			setUpRefresher(fEditor);
+			fEditor.apply(assistant);
+		}
+	}
+
+	protected abstract XamlElement createAssistModel(XamlNode parent);
+
+	protected abstract XamlAttribute createAssistParent(XamlNode parent);
+
+	protected abstract Control createControl(Composite parent);
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/Assistants.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/Assistants.java
new file mode 100755
index 0000000..b63a16c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/Assistants.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.layouts.pages;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public interface Assistants {
+
+	String WIDTH = "width";
+	String HEIGHT = "height";
+
+	// Constants of FillLayout.
+	String LAYOUT_FILL_SPACING = "spacing";
+	String LAYOUT_FILL_MARGIN_WIDTH = "marginWidth";
+	String LAYOUT_FILL_MARGIN_HEIGHT = "marginHeight";
+	String LAYOUT_FILL_TYPE = "type";
+
+	// Constants of GridLayout
+	String LAYOUT_GRID_NUM_CLUMNS = "numColumns";
+	String LAYOUT_GRID_MAKE_COLUMNS_EQUAL_WIDTH = "makeColumnsEqualWidth";
+	String LAYOUT_GRID_MARGIN_WIDTH = "marginWidth";
+	String LAYOUT_GRID_MARGIN_HEIGHT = "marginHeight";
+	String LAYOUT_GRID_MARGIN_LEFT = "marginLeft";
+	String LAYOUT_GRID_MARGIN_TOP = "marginTop";
+	String LAYOUT_GRID_MARGIN_RIGHT = "marginRight";
+	String LAYOUT_GRID_MARGIN_BOTTOM = "marginBottom";
+	String LAYOUT_GRID_HORIZONTAL_SPACING = "horizontalSpacing";
+	String LAYOUT_GRID_VERTICAL_SPACING = "verticalSpacing";
+
+	// Constants of RowLayout
+	String LAYOUT_ROW_TYPE = "type";
+	String LAYOUT_ROW_MARGIN_WIDTH = "marginWidth";
+	String LAYOUT_ROW_MARGIN_HEIGHT = "marginHeight";
+	String LAYOUT_ROW_SPACING = "spacing";
+	String LAYOUT_ROW_WRAP = "wrap";
+	String LAYOUT_ROW_PACK = "pack";
+	String LAYOUT_ROW_FILL = "fill";
+	String LAYOUT_ROW_CENTER = "center";
+	String LAYOUT_ROW_JUSTIFY = "justify";
+	String LAYOUT_ROW_MARGIN_LEFT = "marginLeft";
+	String LAYOUT_ROW_MARGIN_TOP = "marginTop";
+	String LAYOUT_ROW_MARGIN_RIGHT = "marginRight";
+	String LAYOUT_ROW_MARGIN_BOTTOM = "marginBottom";
+
+	// Constants of RowData
+	String LAYOUTDATA_ROW_WIDTH = WIDTH;
+	String LAYOUTDATA_ROW_HEIGHT = HEIGHT;
+	String LAYOUTDATA_ROW_EXCLUDE = "exclude";
+
+	// Constants of GridData.
+	String LAYOUTDATA_GRID_VERTICAL_ALIGNMENT = "verticalAlignment";
+	String LAYOUTDATA_GRID_HORIZONTAL_ALIGNMENT = "horizontalAlignment";
+	String LAYOUTDATA_GRID_WIDTH_HINT = "widthHint";
+	String LAYOUTDATA_GRID_HEIGHT_HINT = "heightHint";
+	String LAYOUTDATA_GRID_HORIZONTAL_INDENT = "horizontalIndent";
+	String LAYOUTDATA_GRID_VERTICAL_INDENT = "verticalIndent";
+	String LAYOUTDATA_GRID_HORIZONTAL_SPAN = "horizontalSpan";
+	String LAYOUTDATA_GRID_VERTICAL_SPAN = "verticalSpan";
+	String LAYOUTDATA_GRID_GRAB_EXCESS_HORIZONTAL_SPACE = "grabExcessHorizontalSpace";
+	String LAYOUTDATA_GRID_GRAB_EXCESS_VERTICAL_SPACE = "grabExcessVerticalSpace";
+	String LAYOUTDATA_GRID_MINIMUM_WIDTH = "minimumWidth";
+	String LAYOUTDATA_GRID_MINIMUM_HEIGHT = "minimumHeight";
+	String LAYOUTDATA_GRID_EXCLUDE = "exclude";
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/FillLayoutAssistantPage.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/FillLayoutAssistantPage.java
new file mode 100755
index 0000000..9c82f08
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/FillLayoutAssistantPage.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.layouts.pages;
+
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
+import org.eclipse.xwt.tools.ui.designer.resources.Messages;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class FillLayoutAssistantPage extends LayoutAssistantPage {
+
+	public FillLayoutAssistantPage() {
+		super(LayoutType.FillLayout);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.ICustomPage#createControl(org.eclipse.swt.widgets.Composite)
+	 */
+	public Control createControl(Composite parent) {
+		Composite composite = createComposite(parent);
+		composite.setLayout(new GridLayout(2, false));
+
+		createRadio(composite, Messages.FillLayoutAssistantPage_ORIENTATION_LABEL, Assistants.LAYOUT_FILL_TYPE, new String[][] { { "Horizontal", "SWT.HORIZONTAL" }, { "Vertical", "SWT.VERTICAL" } }); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
+
+		Group spacingGroup = createGroup(composite, Messages.FillLayoutAssistantPage_SPACING_GROUP_LABEL, 2);
+		createSpinner(spacingGroup, Assistants.LAYOUT_FILL_MARGIN_HEIGHT, Messages.FillLayoutAssistantPage_MARGIN_HEIGHT_LABEL);
+		createSpinner(spacingGroup, Assistants.LAYOUT_FILL_MARGIN_WIDTH, Messages.FillLayoutAssistantPage_MARGIN_WIDTH_LABEL);
+		createSpinner(spacingGroup, Assistants.LAYOUT_FILL_SPACING, Messages.FillLayoutAssistantPage_SPACING_LABEL);
+		return composite;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.AssistantPage#getAssistant()
+	 */
+	protected Object getAssistant() {
+		Object assistant = super.getAssistant();
+		if (assistant == null) {
+			assistant = new FillLayout();
+		}
+		return assistant;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/GridDataAssistantPage.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/GridDataAssistantPage.java
new file mode 100755
index 0000000..cb50d8f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/GridDataAssistantPage.java
@@ -0,0 +1,257 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.layouts.pages;
+
+import java.lang.reflect.Field;
+
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.tools.ui.designer.commands.ResizeCommand;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutDataType;
+import org.eclipse.xwt.tools.ui.designer.layouts.control.FieldEditor;
+import org.eclipse.xwt.tools.ui.designer.layouts.control.FieldEditorEvent;
+import org.eclipse.xwt.tools.ui.designer.layouts.control.SpinnerFieldEditor;
+import org.eclipse.xwt.tools.ui.designer.model.RefreshAdapter;
+import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
+import org.eclipse.xwt.tools.ui.designer.resources.Messages;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author rui.ban rui.ban@soyatec.com
+ */
+public class GridDataAssistantPage extends LayoutDataAssistantPage {
+
+	public GridDataAssistantPage() {
+		super(LayoutDataType.GridData);
+	}
+
+	/**
+	 * @see org.soyatec.xaml.ve.xwt.editparts.layouts.pages.CustomizeLayoutPage#creatControl(org.eclipse.swt.widgets.Composite)
+	 */
+	public Composite createControl(Composite parent) {
+		Composite composite = createComposite(parent);
+		GridLayout grid = new GridLayout();
+		grid.numColumns = 2;
+		composite.setLayout(grid);
+		// create alignment area.
+		createAlignmentArea(composite);
+		// create hints area.
+		createHintsAndSpanningArea(composite);
+		// create minimum area.
+		createMinimumArea(composite);
+		// create indents area.
+		createIndentsArea(composite);
+		return composite;
+	}
+
+	private void createAlignmentArea(Composite parent) {
+		Group aligmentGroup = createGroup(parent, Messages.GridDataAssistantPage_ALIGNS_GROUP_LABEL, 2);
+
+		Group horizontalGroup = createGroup(aligmentGroup, Messages.GridDataAssistantPage_HORIZONTAL_GROUP_LABEL, 1);
+		GridData gd = new GridData();
+		gd.verticalAlignment = GridData.FILL;
+		horizontalGroup.setLayoutData(gd);
+
+		String[][] hAlignRadios = new String[][] { { "Left", "SWT.LEFT" }, { "Center", "GRIDDATA.CENTER" }, { "Right", "SWT.RIGHT" }, { "Fill", "SWT.FILL" } }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+		createRadio(horizontalGroup, null, Assistants.LAYOUTDATA_GRID_HORIZONTAL_ALIGNMENT, hAlignRadios);
+
+		createCheckBox(horizontalGroup, Assistants.LAYOUTDATA_GRID_GRAB_EXCESS_HORIZONTAL_SPACE, Messages.GridDataAssistantPage_H_GRAB_LABEL);
+
+		Group verticalGroup = createGroup(aligmentGroup, Messages.GridDataAssistantPage_VERTICAL_GROUP_LABEL, 1);
+		gd = new GridData();
+		gd.verticalAlignment = GridData.FILL;
+		verticalGroup.setLayoutData(gd);
+
+		String[][] vAlignRadios = new String[][] { { "Top", "SWT.TOP" }, { "Center", "GRIDDATA.CENTER" }, { "Bottom", "SWT.BOTTOM" }, { "Fill", "SWT.FILL" } }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+		createRadio(verticalGroup, null, Messages.GridDataAssistantPage_V_ALIGN_LABEL, vAlignRadios);
+
+		createCheckBox(verticalGroup, Assistants.LAYOUTDATA_GRID_GRAB_EXCESS_VERTICAL_SPACE, Messages.GridDataAssistantPage_V_GRAB_LABEL);
+
+	}
+
+	private void createHintsAndSpanningArea(Composite parent) {
+		Composite composite = createComposite(parent);
+		GridLayout grid = new GridLayout();
+		grid.horizontalSpacing = 0;
+		grid.marginWidth = 0;
+		grid.marginHeight = 0;
+		composite.setLayout(grid);
+
+		Group hintsGroup = createGroup(composite, Messages.GridDataAssistantPage_HINTS_GROUP_NAME, 2);
+		GridData gd = new GridData();
+		gd.horizontalAlignment = GridData.FILL;
+		hintsGroup.setLayoutData(gd);
+
+		// Create a new width spinner for GridData, so that, we can change both width of the control and widthHint of the GridData now.
+		SpinnerFieldEditor widthSpinner = new SpinnerFieldEditor(Assistants.LAYOUTDATA_GRID_WIDTH_HINT, Messages.GridDataAssistantPage_WIDTH_LABEL, hintsGroup) {
+			public void apply(Object source) {
+				if (!isValid() || source == null) {
+					return;
+				}
+				try {
+					Field field = source.getClass().getField(fieldName);
+					Object value = field.get(source);
+					if (SWT.DEFAULT == (Integer) value) {
+						value = getHintValue(Assistants.WIDTH);
+					}
+					doUpdate(value == null ? "" : value.toString()); //$NON-NLS-1$
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		};
+		addEditor(widthSpinner);
+
+		SpinnerFieldEditor heightSpinner = new SpinnerFieldEditor(Assistants.LAYOUTDATA_GRID_HEIGHT_HINT, Messages.GridDataAssistantPage_HEIGHT_LABEL, hintsGroup) {
+			public void apply(Object source) {
+				if (!isValid() || source == null) {
+					return;
+				}
+				try {
+					Field field = source.getClass().getField(fieldName);
+					Object value = field.get(source);
+					if (SWT.DEFAULT == (Integer) value) {
+						value = getHintValue(Assistants.HEIGHT);
+					}
+					doUpdate(value == null ? "" : value.toString()); //$NON-NLS-1$
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		};
+		addEditor(heightSpinner);
+
+		Group spanningGroup = createGroup(composite, Messages.GridDataAssistantPage_SPANNING_GROUP_LABEL, 2);
+		spanningGroup.setText("Spanning"); //$NON-NLS-1$
+		gd = new GridData();
+		gd.horizontalAlignment = GridData.FILL;
+		spanningGroup.setLayoutData(gd);
+
+		createSpinner(spanningGroup, Assistants.LAYOUTDATA_GRID_HORIZONTAL_SPAN, Messages.GridDataAssistantPage_COLUMN_SPAN_LABEL);
+		createSpinner(spanningGroup, Assistants.LAYOUTDATA_GRID_VERTICAL_SPAN, Messages.GridDataAssistantPage_ROW_SPAN_LABEL);
+
+	}
+
+	protected Command computeCommand(FieldEditorEvent event) {
+		String field = event.field;
+		if (Assistants.LAYOUTDATA_GRID_WIDTH_HINT.equals(field)) {
+			int oldIntValue = Integer.parseInt(event.oldValue.trim());
+			int newIntValue = Integer.parseInt(event.newVlaue.trim());
+			Dimension growth = new Dimension(newIntValue - oldIntValue, 0);
+			return new ResizeCommand(getEditPart(), growth);
+		} else if (Assistants.LAYOUTDATA_GRID_HEIGHT_HINT.equals(field)) {
+			int oldIntValue = Integer.parseInt(event.oldValue.trim());
+			int newIntValue = Integer.parseInt(event.newVlaue.trim());
+			Dimension growth = new Dimension(0, newIntValue - oldIntValue);
+			return new ResizeCommand(getEditPart(), growth);
+		}
+		return super.computeCommand(event);
+	}
+
+	protected void setUpRefresher(FieldEditor editor) {
+		super.setUpRefresher(editor);
+		String fieldName = editor.getFieldName();
+		final FieldEditor forRefresh = editor;
+		XamlNode model = getModel();
+		if (model == null) {
+			return;
+		}
+		if (Assistants.LAYOUTDATA_GRID_WIDTH_HINT.equals(fieldName)) {
+			getRefreshers(editor).add(new RefreshAdapter(model, Assistants.WIDTH) {
+				protected void performRefresh(Notification msg) {
+					forRefresh.apply(getAssistant());
+				}
+			});
+		} else if (Assistants.LAYOUTDATA_GRID_HEIGHT_HINT.equals(fieldName)) {
+			getRefreshers(editor).add(new RefreshAdapter(model, Assistants.HEIGHT) {
+				protected void performRefresh(Notification msg) {
+					forRefresh.apply(getAssistant());
+				}
+			});
+		}
+	}
+
+	public int getHintValue(String hint) {
+		EditPart editPart = getEditPart();
+		if (editPart == null || !(editPart instanceof WidgetEditPart)) {
+			return -1;
+		}
+		Widget widget = ((WidgetEditPart) editPart).getWidget();
+		if (widget == null || widget.isDisposed()) {
+			return -1;
+		}
+		try {
+			IMetaclass metaclass = XWT.getMetaclass(widget);
+			if (metaclass != null) {
+				IProperty prop = metaclass.findProperty(hint);
+				if (prop != null) {
+					return (Integer) prop.getValue(widget);
+				}
+			}
+		} catch (Exception e) {
+		}
+		return -1;
+	}
+
+	private void createMinimumArea(Composite parent) {
+		Composite composite = createComposite(parent);
+		GridLayout grid = new GridLayout();
+		grid.numColumns = 2;
+		composite.setLayout(grid);
+
+		Group minimumGroup = createGroup(composite, Messages.GridDataAssistantPage_MINIMUM_GROUP_LABEL, 2);
+		GridData gd = new GridData();
+		gd.horizontalAlignment = GridData.FILL;
+		minimumGroup.setLayoutData(gd);
+
+		createSpinner(minimumGroup, Assistants.LAYOUTDATA_GRID_MINIMUM_WIDTH, Messages.GridDataAssistantPage_MIN_WIDTH_LABEL);
+		createSpinner(minimumGroup, Assistants.LAYOUTDATA_GRID_MINIMUM_HEIGHT, Messages.GridDataAssistantPage_MIN_HEIGHT_LABEL);
+
+		createCheckBox(composite, Assistants.LAYOUTDATA_GRID_EXCLUDE, Messages.GridDataAssistantPage_EXCLUDE_LABEL);
+	}
+
+	private void createIndentsArea(Composite parent) {
+		Group indentsGroup = createGroup(parent, Messages.GridDataAssistantPage_INDENTS_GROUP_LABEL, 2);
+		GridData gd = new GridData();
+		gd.horizontalAlignment = GridData.FILL;
+		indentsGroup.setLayoutData(gd);
+
+		createSpinner(indentsGroup, Assistants.LAYOUTDATA_GRID_HORIZONTAL_INDENT, Messages.GridDataAssistantPage_H_INDENT_LABEL);
+		createSpinner(indentsGroup, Assistants.LAYOUTDATA_GRID_VERTICAL_INDENT, Messages.GridDataAssistantPage_V_INDENT_LABEL);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.AssistantPage#getAssistant()
+	 */
+	protected Object getAssistant() {
+		Object assistant = super.getAssistant();
+		if (assistant == null) {
+			assistant = new GridData();
+		}
+		return assistant;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/GridLayoutAssistantPage.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/GridLayoutAssistantPage.java
new file mode 100755
index 0000000..c44a50c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/GridLayoutAssistantPage.java
@@ -0,0 +1,105 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.layouts.pages;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
+import org.eclipse.xwt.tools.ui.designer.resources.Messages;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class GridLayoutAssistantPage extends LayoutAssistantPage {
+
+	public GridLayoutAssistantPage() {
+		super(LayoutType.GridLayout);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.IAssistantPage#createControl(org.eclipse.swt.widgets.Composite)
+	 */
+	public Control createControl(Composite parent) {
+		Composite control = createComposite(parent);
+		control.setLayout(new GridLayout());
+
+		Composite numsComp = createComposite(control);
+		// numsComp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		GridLayout layout = new GridLayout(3, false);
+		layout.marginWidth = 0;
+		layout.marginHeight = 0;
+		numsComp.setLayout(layout);
+		createSpinner(numsComp, Assistants.LAYOUT_GRID_NUM_CLUMNS, Messages.GridLayoutAssistantPage_NUM_COLUMNS_LABEL);
+
+		createCheckBox(numsComp, Assistants.LAYOUT_GRID_MAKE_COLUMNS_EQUAL_WIDTH, Messages.GridLayoutAssistantPage_EQUAL_WIDTH_LABEL);
+
+		Composite bottom = createComposite(control);
+		GridLayout bottomLayout = new GridLayout(2, false);
+		bottomLayout.marginWidth = 0;
+		bottomLayout.marginHeight = 0;
+		bottom.setLayout(bottomLayout);
+		bottom.setLayoutData(new GridData(GridData.FILL_BOTH));
+		{// Margins
+			Group bottomLeft = createGroup(bottom, Messages.GridLayoutAssistantPage_MARGINS_SIDES_GROUP_LABEL, 2);
+			GridData layoutData = new GridData();
+			layoutData.verticalAlignment = SWT.TOP;
+			bottomLeft.setLayoutData(layoutData);
+			createSpinner(bottomLeft, Assistants.LAYOUT_GRID_MARGIN_LEFT, Messages.GridLayoutAssistantPage_M_LEFT_LABEL);
+
+			createSpinner(bottomLeft, Assistants.LAYOUT_GRID_MARGIN_TOP, Messages.GridLayoutAssistantPage_M_TOP_LABEL);
+
+			createSpinner(bottomLeft, Assistants.LAYOUT_GRID_MARGIN_RIGHT, Messages.GridLayoutAssistantPage_M_RIGHT_LABEL);
+
+			createSpinner(bottomLeft, Assistants.LAYOUT_GRID_MARGIN_BOTTOM, Messages.GridLayoutAssistantPage_M_BOTTOM_LABEL);
+		}
+		Composite bottomRight = createComposite(bottom);
+		GridLayout bottomRightLayout = new GridLayout();
+		bottomRightLayout.marginWidth = 0;
+		bottomRightLayout.marginHeight = 0;
+		bottomRight.setLayout(bottomRightLayout);
+		bottomRight.setLayoutData(new GridData(GridData.FILL_VERTICAL));
+		{//
+			Group marginsGrp = createGroup(bottomRight, Messages.GridLayoutAssistantPage_MARGINS_GROUP_LABEL, 2);
+			marginsGrp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+			createSpinner(marginsGrp, Assistants.LAYOUT_GRID_MARGIN_WIDTH, Messages.GridLayoutAssistantPage_M_WIDTH_LABEL);
+			createSpinner(marginsGrp, Assistants.LAYOUT_GRID_MARGIN_HEIGHT, Messages.GridLayoutAssistantPage_M_HEIGHT_LABEL);
+		}
+		{//
+			Group marginsGrp = createGroup(bottomRight, Messages.GridLayoutAssistantPage_SPACING_GROUP_LABEL, 2);
+			marginsGrp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+			createSpinner(marginsGrp, Assistants.LAYOUT_GRID_HORIZONTAL_SPACING, Messages.GridLayoutAssistantPage_H_SPACING_LABEL);
+			createSpinner(marginsGrp, Assistants.LAYOUT_GRID_VERTICAL_SPACING, Messages.GridLayoutAssistantPage_V_SPACING_LABEL);
+		}
+		return control;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.AssistantPage#getAssistant()
+	 */
+	protected Object getAssistant() {
+		Object assistant = super.getAssistant();
+		if (assistant == null) {
+			assistant = new GridLayout();
+		}
+		return assistant;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/IAssistantPage.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/IAssistantPage.java
new file mode 100755
index 0000000..efcd16a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/IAssistantPage.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.layouts.pages;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public interface IAssistantPage {
+
+	Control getControl(Composite parent);
+
+	void setEditPart(EditPart editPart);
+
+	void performDefault();
+
+	void refresh();
+
+	void dispose();
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/LayoutAssistantPage.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/LayoutAssistantPage.java
new file mode 100755
index 0000000..c94825a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/LayoutAssistantPage.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.layouts.pages;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public abstract class LayoutAssistantPage extends AssistantPage {
+
+	private LayoutType layoutType;
+
+	public LayoutAssistantPage(LayoutType layoutType) {
+		this.layoutType = layoutType;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.AssistantPage#createParentModel(org.soyatec.tools.designer.xaml.XamlNode)
+	 */
+	protected XamlElement createAssistModel(XamlNode parent) {
+		if (parent == null) {
+			return null;
+		}
+		XamlAttribute attribute = getAssistParent();
+		XamlElement layoutModel = attribute.getChild(layoutType.value());
+		if (layoutModel == null) {
+			layoutModel = XamlFactory.eINSTANCE.createElement(layoutType.value(), IConstants.XWT_NAMESPACE);
+		}
+		if (attribute.eContainer() == null) {
+			attribute.getChildNodes().add(layoutModel);
+		}
+		return layoutModel;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.AssistantPage#createAssistParent(org.soyatec.tools.designer.xaml.XamlNode)
+	 */
+	protected XamlAttribute createAssistParent(XamlNode parent) {
+		XamlAttribute attribute = parent.getAttribute("layout");
+		if (attribute == null) {
+			attribute = XamlFactory.eINSTANCE.createAttribute("layout", IConstants.XWT_NAMESPACE);
+		}
+		return attribute;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/LayoutDataAssistantPage.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/LayoutDataAssistantPage.java
new file mode 100755
index 0000000..3ddf25d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/LayoutDataAssistantPage.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.layouts.pages;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutDataType;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public abstract class LayoutDataAssistantPage extends AssistantPage {
+
+	private LayoutDataType layoutDataType;
+
+	public LayoutDataAssistantPage(LayoutDataType layoutDataType) {
+		this.layoutDataType = layoutDataType;
+	}
+
+	public XamlElement createAssistModel(XamlNode model) {
+		if (model == null) {
+			return null;
+		}
+		XamlAttribute attribute = getAssistParent();
+		XamlElement layoutDataModel = attribute.getChild(layoutDataType.name());
+		if (layoutDataModel == null) {
+			layoutDataModel = XamlFactory.eINSTANCE.createElement(layoutDataType.name(), IConstants.XWT_NAMESPACE);
+		}
+		if (attribute.eContainer() == null) {
+			attribute.getChildNodes().add(layoutDataModel);
+		}
+		return layoutDataModel;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.AssistantPage#createAssistParent(org.soyatec.tools.designer.xaml.XamlNode)
+	 */
+	protected XamlAttribute createAssistParent(XamlNode parent) {
+		XamlAttribute attribute = parent.getAttribute("layoutData");
+		if (attribute == null) {
+			attribute = XamlFactory.eINSTANCE.createAttribute("layoutData", IConstants.XWT_NAMESPACE);
+		}
+		return attribute;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/RowDataAssistantPage.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/RowDataAssistantPage.java
new file mode 100755
index 0000000..1dfcd6d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/RowDataAssistantPage.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.layouts.pages;
+
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.layout.RowData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutDataType;
+import org.eclipse.xwt.tools.ui.designer.resources.Messages;
+
+/**
+ * @author rui.ban rui.ban@soyatec.com
+ */
+public class RowDataAssistantPage extends LayoutDataAssistantPage {
+
+	public RowDataAssistantPage() {
+		super(LayoutDataType.RowData);
+	}
+
+	/**
+	 * @see org.soyatec.xaml.ve.xwt.editparts.layouts.pages.CustomizeLayoutPage#creatControl(org.eclipse.swt.widgets.Composite)
+	 */
+	public Composite createControl(Composite parent) {
+		Composite composite = createComposite(parent);
+		GridLayout grid = new GridLayout();
+		grid.numColumns = 2;
+		composite.setLayout(grid);
+
+		Group sizeGroup = createGroup(composite, Messages.RowDataAssistantPage_SIZE_GROUP_LABEL, 2);
+		GridData gd = new GridData();
+		gd.horizontalAlignment = GridData.FILL;
+		sizeGroup.setLayoutData(gd);
+
+		createSpinner(sizeGroup, Assistants.LAYOUTDATA_ROW_WIDTH, Messages.RowDataAssistantPage_WIDTH_LABEL);
+		createSpinner(sizeGroup, Assistants.LAYOUTDATA_ROW_HEIGHT, Messages.RowDataAssistantPage_HEIGHT_LABEL);
+		createCheckBox(composite, Assistants.LAYOUTDATA_ROW_EXCLUDE, Messages.RowDataAssistantPage_EXCLUDE_LABEL);
+		return composite;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.AssistantPage#getAssistant()
+	 */
+	protected Object getAssistant() {
+		Object assistant = super.getAssistant();
+		if (assistant == null) {
+			assistant = new RowData();
+		}
+		return assistant;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/RowLayoutAssistantPage.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/RowLayoutAssistantPage.java
new file mode 100755
index 0000000..55ad08a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/layouts/pages/RowLayoutAssistantPage.java
@@ -0,0 +1,80 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.layouts.pages;
+
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
+import org.eclipse.xwt.tools.ui.designer.resources.Messages;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class RowLayoutAssistantPage extends LayoutAssistantPage {
+
+	public RowLayoutAssistantPage() {
+		super(LayoutType.RowLayout);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.IAssistantPage#createControl(org.eclipse.swt.widgets.Composite)
+	 */
+	public Control createControl(Composite parent) {
+		Composite composite = createComposite(parent);
+		composite.setLayout(new GridLayout(2, false));
+
+		String[][] typeRadios = new String[][] { { "Horizontal", "SWT.HORIZONTAL" }, { "Vertical", "SWT.VERTICAL" } }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+
+		createRadio(composite, Messages.RowLayoutAssistantPage_ORIENTATION_LABEL, Assistants.LAYOUT_ROW_TYPE, typeRadios);
+
+		Group spacingGroup = createGroup(composite, Messages.RowLayoutAssistantPage_MARGIN_SPACING_LABEL, 2);
+
+		createSpinner(spacingGroup, Assistants.LAYOUT_ROW_MARGIN_HEIGHT, Messages.RowLayoutAssistantPage_MARGIN_HEIGHT_LABEL);
+		createSpinner(spacingGroup, Assistants.LAYOUT_ROW_MARGIN_WIDTH, Messages.RowLayoutAssistantPage_MARGIN_WIDTH_LABEL);
+		createSpinner(spacingGroup, Assistants.LAYOUT_ROW_SPACING, Messages.RowLayoutAssistantPage_SPACING_LABEL);
+
+		Group optionsGroup = createGroup(composite, Messages.RowLayoutAssistantPage_OPTIONS_NAME, 1);
+
+		createCheckBox(optionsGroup, Assistants.LAYOUT_ROW_WRAP, Messages.RowLayoutAssistantPage_WRAP_LABEL);
+		createCheckBox(optionsGroup, Assistants.LAYOUT_ROW_PACK, Messages.RowLayoutAssistantPage_PACK_LABEL);
+		createCheckBox(optionsGroup, Assistants.LAYOUT_ROW_FILL, Messages.RowLayoutAssistantPage_FILL_LABEL);
+		createCheckBox(optionsGroup, Assistants.LAYOUT_ROW_JUSTIFY, Messages.RowLayoutAssistantPage_JUSTIFY_LABEL);
+
+		Group marginSideGroup = createGroup(composite, Messages.RowLayoutAssistantPage_MARGINS_GROUP_LABEL, 2);
+
+		createSpinner(marginSideGroup, Assistants.LAYOUT_ROW_MARGIN_LEFT, Messages.RowLayoutAssistantPage_MARGIN_LEFT_LABEL);
+		createSpinner(marginSideGroup, Assistants.LAYOUT_ROW_MARGIN_RIGHT, Messages.RowLayoutAssistantPage_MARGIN_RIGHT_LABEL);
+		createSpinner(marginSideGroup, Assistants.LAYOUT_ROW_MARGIN_TOP, Messages.RowLayoutAssistantPage_MARGIN_TOP_LABEL);
+		createSpinner(marginSideGroup, Assistants.LAYOUT_ROW_MARGIN_BOTTOM, Messages.RowLayoutAssistantPage_MARGIN_BOTTOM_LABEL);
+		return composite;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.layouts.pages.AssistantPage#getAssistant()
+	 */
+	protected Object getAssistant() {
+		Object assistant = super.getAssistant();
+		if (assistant == null) {
+			assistant = new RowLayout();
+		}
+		return assistant;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/DataBindingTrack.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/DataBindingTrack.java
new file mode 100755
index 0000000..77e86d0
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/DataBindingTrack.java
@@ -0,0 +1,200 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.loader;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.Tracking;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.core.IDynamicBinding;
+import org.eclipse.xwt.internal.core.Binding;
+import org.eclipse.xwt.internal.utils.LoggerManager;
+import org.eclipse.xwt.internal.utils.ObjectUtil;
+import org.eclipse.xwt.jface.JFacesHelper;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author liang.zhang
+ * 
+ */
+public class DataBindingTrack {
+	private String bindingError = "";
+	private Set<String> errorElements = null;
+
+	private List<XamlElement> widgetList = null;
+	private Map<XamlElement, String> bindingMap;
+
+	public DataBindingTrack() {
+		widgetList = new ArrayList<XamlElement>();
+		errorElements = new HashSet<String>();
+		bindingMap = new HashMap<XamlElement, String>();
+	}
+
+	public void addWidgetElement(XamlElement element) {
+		widgetList.add(element);
+	}
+
+	private void addErrorWidgetId(String elementId) {
+		errorElements.add(elementId);
+	}
+
+	private void addBindingMessageToMap(XamlElement element, String bindingMessage) {
+		bindingMap.put(element, bindingMessage);
+	}
+
+	private int validateParentElementError(XamlElement bindingElement) {
+		int isError = 0;
+		if (!bindingError.equals("")) {
+			Object parentObj = bindingElement.eContainer();
+			while (parentObj != null) {
+				bindingElement = (XamlElement) parentObj;
+				if (errorElements.contains(bindingElement.getId())) {
+					isError = 1;
+					break;
+				}
+				parentObj = bindingElement.eContainer();
+			}
+		}
+		return isError;
+	}
+
+	private String getCurrentWidgetPosition(XamlElement element) {
+		if (element.eContainer() != null) {
+			return " " + getCurrentWidgetPosition((XamlElement) element.eContainer());
+		}
+		return "";
+	}
+
+	public String getDataBindMessage() {
+		StringBuffer message = new StringBuffer("");
+		Iterator<XamlElement> widgetIt = widgetList.iterator();
+		Set<XamlElement> keys = bindingMap.keySet();
+		while (widgetIt.hasNext()) {
+			XamlElement element = widgetIt.next();
+			int parentHasError = validateParentElementError(element);
+			if (parentHasError == 0) {
+				String content = getCurrentWidgetPosition(element);
+				if (!message.toString().equals("")) {
+					content += "+ ";
+				}
+				content = content + element.getName();
+				if (XWT.isTracking(Tracking.NAME)) {
+					XamlAttribute nameAttr = element.getAttribute(IConstants.XWT_X_NAMESPACE, "Name");
+					if (nameAttr != null) {
+						content += " <" + nameAttr.getValue() + ">";
+					}
+				}
+				message.append(content);
+				if (XWT.isTracking(Tracking.DATABINDING)) {
+					if (keys.contains(element)) {
+						message.append(bindingMap.get(element));
+					} else {
+						message.append("\n");
+					}
+				}
+			}
+		}
+		return message.toString();
+	}
+
+	private void setBindingErrorMessage(String bindingError) {
+		this.bindingError = bindingError;
+	}
+
+	public void tracking(Object swtObject, XamlElement element, Object dataContext) {
+		String bindingMessage = "";
+		if (swtObject instanceof IDynamicBinding) {
+			String error = "";
+			Binding newInstance = (Binding) swtObject;
+			String path = null;
+			XamlAttribute attr = element.getAttribute("Path", IConstants.XWT_NAMESPACE);
+			if (null == attr)
+				attr = element.getAttribute("path", IConstants.XWT_NAMESPACE);
+			if (null != attr)
+				path = attr.getValue();
+			Object dataContext2 = null;
+			try {
+				dataContext2 = newInstance.getValue(null);
+				if (path != null && path.length() > 0) {
+					String[] paths = path.trim().split("\\.");
+					if (paths.length > 1) {
+						String path1 = "";
+						for (int i = 0; i < paths.length - 1; i++) {
+							path1 = paths[i];
+							if (dataContext2 != null) {
+								dataContext2 = getObserveData(dataContext2, path1);
+							}
+						}
+					}
+				}
+			} catch (Exception ex) {
+				addErrorWidgetId(((XamlNode) element.eContainer().eContainer()).getId());
+				setBindingErrorMessage("-> Error");
+				error = "-> Error";
+			}
+			if (dataContext2 != null) {
+				bindingMessage = " (DataContext=" + dataContext2.getClass().getSimpleName() + ", Path=" + path + ")" + error + "\n";
+				addBindingMessageToMap((XamlElement) element.eContainer().eContainer(), bindingMessage);// bindingMap.put((XamlElement) element.getParent().getParent(), bindingMessage);
+			}
+		} else if (swtObject instanceof Widget) {
+			addWidgetElement(element);
+			if (dataContext != null) {
+				bindingMessage = " (DataContext=" + dataContext.getClass().getSimpleName() + ")\n";
+				addBindingMessageToMap(element, bindingMessage);
+			}
+		} else if (JFacesHelper.isViewer(swtObject)) {
+			if (dataContext != null) {
+				bindingMessage = " (DataContext=" + dataContext.getClass().getSimpleName() + ")\n";
+				addBindingMessageToMap(element, bindingMessage);// bindingMap.put(element, bindingMessage);
+			}
+		} else if (element.attributeNames(IConstants.XWT_X_NAMESPACE).size() > 0) {
+			// ??
+			if (element.eContainer() != null && element.eContainer().eContainer() != null) {
+				bindingMessage = " (DataContext=" + element.getName() + ")\n";
+				addBindingMessageToMap((XamlElement) element.eContainer().eContainer(), bindingMessage);// bindingMap.put((XamlElement) element.getParent().getParent(), bindingMessage);
+			}
+		}
+	}
+
+	public static Object getObserveData(Object dataContext, String path) {
+		try {
+			Class<?> dataContextClass = dataContext.getClass();
+			Method getMethod = ObjectUtil.findGetter(dataContextClass, path, null);
+			if (getMethod != null) {
+				return getMethod.invoke(dataContext, new Object[] {});
+			}
+		} catch (SecurityException e) {
+			LoggerManager.log(e);
+		} catch (IllegalArgumentException e) {
+			LoggerManager.log(e);
+		} catch (IllegalAccessException e) {
+			LoggerManager.log(e);
+		} catch (InvocationTargetException e) {
+			LoggerManager.log(e);
+		}
+		return null;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/NodesSorter.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/NodesSorter.java
new file mode 100755
index 0000000..f9e464f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/NodesSorter.java
@@ -0,0 +1,95 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.loader;
+
+import java.io.Serializable;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+public class NodesSorter {
+
+	public static List<XamlNode> sortWithAttr(XamlNode[] sourceArray, String attrName) {
+		return sortWithAttr(sourceArray, new AttrComparator(attrName), attrName);
+	}
+
+	public static List<XamlNode> sortWithAttr(XamlNode[] sourceArray, Comparator<XamlElement> comparator, String attrName) {
+		List<XamlNode> columnsList = new LinkedList<XamlNode>();
+		for (XamlNode column : sourceArray) {
+			XamlElement columnElement = (XamlElement) column;
+			XamlAttribute indexAttr = columnElement.getAttribute(attrName, IConstants.XWT_NAMESPACE);
+			if (indexAttr == null) {
+				columnsList.add(column);
+			}
+		}
+
+		List<XamlElement> tempList = new LinkedList<XamlElement>();
+		for (XamlNode column : sourceArray) {
+			XamlElement columnElement = (XamlElement) column;
+			XamlAttribute indexAttr = columnElement.getAttribute(attrName, IConstants.XWT_NAMESPACE);
+			if (indexAttr != null) {
+				tempList.add(columnElement);
+			}
+		}
+
+		if (comparator == null) {
+			comparator = new AttrComparator(attrName);
+		}
+		Collections.sort(tempList, comparator);
+
+		for (XamlElement columnElement : tempList) {
+			XamlAttribute indexAttr = columnElement.getAttribute(attrName, IConstants.XWT_NAMESPACE);
+			try {
+				int index = Integer.parseInt(indexAttr.getValue());
+				columnsList.add(index, columnElement);
+			} catch (Exception e) {
+				columnsList.add(columnsList.size(), columnElement);
+			}
+		}
+
+		return columnsList;
+	}
+
+	private static class AttrComparator implements Comparator<XamlElement>,
+			Serializable {
+		private static final long serialVersionUID = 5974723422066058166L;
+		private String attrName;
+
+		public AttrComparator(String attrName) {
+			this.attrName = attrName;
+		}
+
+		public int compare(XamlElement e1, XamlElement e2) {
+			XamlAttribute attr1 = e1.getAttribute(attrName, IConstants.XWT_NAMESPACE);
+			XamlAttribute attr2 = e2.getAttribute(attrName, IConstants.XWT_NAMESPACE);
+			String compare1 = attr1.getValue();
+			String compare2 = attr2.getValue();
+			if (compare1 == null || compare2 == null) {
+				return 0;
+			}
+			try {
+				int index1 = Integer.parseInt(compare1);
+				int index2 = Integer.parseInt(compare2);
+				return index1 > index2 ? 1 : -1;
+			} catch (Exception e) {
+				return compare1.compareTo(compare2);
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/ResourceVisitor.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/ResourceVisitor.java
new file mode 100755
index 0000000..e6a1fd0
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/ResourceVisitor.java
@@ -0,0 +1,1942 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.loader;
+
+import java.io.File;
+import java.lang.reflect.Array;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.StringTokenizer;
+import java.util.Map.Entry;
+import java.util.Set;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.xwt.ICLRFactory;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.IDataProvider;
+import org.eclipse.xwt.IEventHandler;
+import org.eclipse.xwt.IEventInvoker;
+import org.eclipse.xwt.IIndexedElement;
+import org.eclipse.xwt.ILoadingContext;
+import org.eclipse.xwt.INamespaceHandler;
+import org.eclipse.xwt.IStyle;
+import org.eclipse.xwt.IXWTLoader;
+import org.eclipse.xwt.ResourceDictionary;
+import org.eclipse.xwt.Tracking;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.XWTLoader;
+import org.eclipse.xwt.XWTMaps;
+import org.eclipse.xwt.annotation.UI;
+import org.eclipse.xwt.callback.ICreatedCallback;
+import org.eclipse.xwt.callback.ILoadedCallback;
+import org.eclipse.xwt.core.IBinding;
+import org.eclipse.xwt.core.IDynamicBinding;
+import org.eclipse.xwt.core.IDynamicValueBinding;
+import org.eclipse.xwt.core.Setter;
+import org.eclipse.xwt.core.Style;
+import org.eclipse.xwt.input.ICommand;
+import org.eclipse.xwt.internal.core.Core;
+import org.eclipse.xwt.internal.core.IEventController;
+import org.eclipse.xwt.internal.core.ScopeKeeper;
+import org.eclipse.xwt.internal.utils.ClassLoaderUtil;
+import org.eclipse.xwt.internal.utils.LoggerManager;
+import org.eclipse.xwt.internal.utils.NamespaceHelper;
+import org.eclipse.xwt.internal.utils.ObjectUtil;
+import org.eclipse.xwt.internal.utils.TableEditorHelper;
+import org.eclipse.xwt.internal.utils.UserData;
+import org.eclipse.xwt.javabean.StaticResourceBinding;
+import org.eclipse.xwt.javabean.metadata.properties.PropertiesConstants;
+import org.eclipse.xwt.javabean.metadata.properties.TableItemProperty;
+import org.eclipse.xwt.jface.JFacesHelper;
+import org.eclipse.xwt.metadata.IEvent;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.xwt.metadata.IValueLoading;
+import org.eclipse.xwt.utils.PathHelper;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ControlEditor;
+import org.eclipse.swt.custom.TableEditor;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class ResourceVisitor {
+	public static final String ELEMENT_KEY = "XWTDesigner.Model";
+	public static final String UI_FILE_KEY = "XWTDesigner.UIFile";
+	// static public final String DEFAULT_STYLES_KEY = "XWT.DefaultStyles";
+	static Map<String, Object> EMPTY_MAP = Collections.emptyMap();
+
+	static final String RESOURCE_LOADER_PROPERTY = "XWT.ResourceLoader";
+
+	private static final String COLUMN = "Column";
+
+	private Map<String, Object> options;
+
+	protected ResourceVisitor parentLoader;
+	protected XWTVisualLoader loader;
+
+	protected Object scopedObject;
+	protected ScopeKeeper nameScoped;
+	protected LoadingData loadData = new LoadingData();
+	private DataBindingTrack dataBindingTrack;
+
+	class LoadingData {
+		protected LoadingData parent;
+		protected Object clr;
+		protected Collection<IStyle> styles = Collections.emptyList();
+		private Object currentWidget = null;
+		private Object host = null;
+		private Object dataContext = null;
+
+		public Object getDataContext() {
+			return dataContext;
+		}
+
+		public void setDataContext(Object dataContext) {
+			this.dataContext = dataContext;
+		}
+
+		public Object getHost() {
+			return host;
+		}
+
+		public Object getCurrentWidget() {
+			return currentWidget;
+		}
+
+		public void setCurrentWidget(Object currentWidget) {
+			this.currentWidget = currentWidget;
+		}
+
+		public Object findElement(Class<?> type) {
+			if (type.isInstance(currentWidget)) {
+				return currentWidget;
+			}
+			if (parent != null) {
+				return parent.findElement(type);
+			}
+			return null;
+		}
+
+		public LoadingData getParent() {
+			return parent;
+		}
+
+		public LoadingData() {
+		}
+
+		public LoadingData(LoadingData loadingData, Object host) {
+			this.parent = loadingData;
+			this.styles = loadingData.styles;
+			this.clr = loadingData.clr;
+			this.currentWidget = loadingData.currentWidget;
+			this.dataContext = loadingData.dataContext;
+			this.host = host;
+		}
+
+		public void inject(Object targetObject, String name) {
+			doInject(targetObject, name, null);
+		}
+
+		protected void doInject(Object targetObject, String name,
+				Object previousClr) {
+			Class<?> filedType = targetObject.getClass();
+			if (clr != null && (previousClr != clr || previousClr == null)) {
+				for (Field field : clr.getClass().getDeclaredFields()) {
+					UI annotation = field.getAnnotation(UI.class);
+					if (annotation != null) {
+						if (!field.getType().isAssignableFrom(filedType)) {
+							continue;
+						}
+						String annotationValue = annotation.value();
+						if (annotationValue == null
+								|| annotationValue.length() == 0) {
+							if (field.getName().equals(name)) {
+								field.setAccessible(true);
+								try {
+									field.set(clr, targetObject);
+									return;
+								} catch (Exception e) {
+								}
+							}
+						} else if (annotationValue.equals(name)) {
+							field.setAccessible(true);
+							try {
+								field.set(clr, targetObject);
+								break;
+							} catch (Exception e) {
+							}
+						}
+					}
+				}
+			}
+			if (parent != null) {
+				parent.doInject(targetObject, name, clr);
+			}
+		}
+
+		public Collection<IStyle> getStyles() {
+			return styles;
+		}
+
+		public void setStyles(Collection<IStyle> styles) {
+			this.styles = styles;
+		}
+
+		public Object getClr() {
+			return clr;
+		}
+
+		public void setClr(Object clr) {
+			this.clr = clr;
+		}
+
+		public void updateEvent(Widget control, IEvent event, String handler) {
+			IEventController eventController = UserData
+					.updateEventController(control);
+			Method method = null;
+			Object clrObject = null;
+			LoadingData current = this;
+			ResourceVisitor currentParentLoader = parentLoader;
+			while (current != null) {
+				Object receiver = current.getClr();
+				if (receiver instanceof IEventHandler) {
+					IEventHandler eventManager = (IEventHandler) receiver;
+					IEventInvoker eventInvoker = eventManager.getEventInvoker(
+							handler, control.getClass(), Event.class);
+					if (eventInvoker != null) {
+						eventController.setEvent(event, control, control,
+								eventInvoker);
+					}
+				} else if (receiver != null) {
+					Class<?> clazz = receiver.getClass();
+					method = ObjectUtil.findMethod(clazz, handler,
+							control.getClass(), Event.class);
+					if (method == null) {
+						method = ObjectUtil.findMethod(clazz, handler,
+								Event.class);
+					}
+					if (method == null) {
+						// Load again.
+						clazz = XWTClassLoaderUtil.loadClass(
+								loader.getLoadingContext(), clazz.getName());
+						method = ObjectUtil.findMethod(clazz, handler,
+								Object.class, Event.class);
+						if (method == null) {
+							method = ObjectUtil.findMethod(clazz, handler,
+									Event.class);
+						}
+					}
+					if (method != null) {
+						clrObject = receiver;
+						eventController.setEvent(event, control, clrObject,
+								control, method);
+						break;
+					}
+				}
+				current = current.getParent();
+				if (current == null && currentParentLoader != null) {
+					current = currentParentLoader.loadData;
+					currentParentLoader = currentParentLoader.parentLoader;
+				}
+			}
+			if (method == null) {
+				// throw new XWTException("Event handler \"" + handler
+				// + "\" is not found.");
+			}
+		}
+
+		public void end() {
+			if (parent == null || clr != parent.getClr()) {
+				Method method = ObjectUtil.findDeclaredMethod(clr.getClass(),
+						"initializeComponent");
+				if (method == null) {
+					method = ObjectUtil.findDeclaredMethod(clr.getClass(),
+							"InitializeComponent");
+				}
+				if (method != null) {
+					try {
+						method.setAccessible(true);
+						method.invoke(clr);
+					} catch (Exception e) {
+						LoggerManager.log(e);
+					}
+				}
+			}
+		}
+
+		public void addStyle(IStyle style) {
+			if (styles == Collections.EMPTY_LIST) {
+				styles = new ArrayList<IStyle>();
+			}
+			styles.add(style);
+		}
+	}
+
+	public ResourceVisitor(XWTVisualLoader loader) {
+		this.loader = loader;
+	}
+
+	public Object createCLRElement(XamlElement element,
+			Map<String, Object> options) {
+		try {
+			this.options = options;
+			Composite parent = (Composite) options
+					.get(IXWTLoader.CONTAINER_PROPERTY);
+			if (!loader.getTrackings().isEmpty()) {
+				dataBindingTrack = new DataBindingTrack();
+			}
+			Object object = options.get(RESOURCE_LOADER_PROPERTY);
+			if (object instanceof ResourceVisitor) {
+				parentLoader = (ResourceVisitor) object;
+			}
+			options.remove(RESOURCE_LOADER_PROPERTY);
+			ResourceDictionary resourceDictionary = (ResourceDictionary) options
+					.get(IXWTLoader.RESOURCE_DICTIONARY_PROPERTY);
+			if (resourceDictionary != null) {
+				Object styles = resourceDictionary.get(Core.DEFAULT_STYLES_KEY);
+				if (styles != null) {
+					loadData.setStyles((Collection<IStyle>) styles);
+					resourceDictionary.remove(Core.DEFAULT_STYLES_KEY);
+				}
+			}
+			if (!options.containsKey(IXWTLoader.CLASS_FACTORY_PROPERTY)) {
+				try {
+					options.put(IXWTLoader.CLASS_FACTORY_PROPERTY,
+							loader.getCLRFactory());
+				} catch (UnsupportedOperationException e) {
+					if (options.isEmpty()) {
+						options = new HashMap<String, Object>();
+						options.put(IXWTLoader.CLASS_FACTORY_PROPERTY,
+								loader.getCLRFactory());
+					} else {
+						throw e;
+					}
+				}
+			}
+
+			Object control = doCreate(parent, element, null, options);
+			// get databinding messages and print into console view
+			if (dataBindingTrack != null) {
+				String dataBindingMessage = dataBindingTrack
+						.getDataBindMessage();// getDataBindMessage();
+				org.eclipse.xwt.ILogger log = loader.getLogger();
+				log.addMessage(dataBindingMessage, Tracking.DATABINDING);
+				log.printInfo(dataBindingMessage, Tracking.DATABINDING,
+						loader.getTrackings());
+			}
+			if (control instanceof Composite) {
+				((Composite) control).layout();
+			}
+			ILoadedCallback loadedAction = (ILoadedCallback) options
+					.get(IXWTLoader.LOADED_CALLBACK);
+			if (loadedAction != null) {
+				loadedAction.onLoaded(control);
+			}
+			return control;
+		} catch (Exception e) {
+			throw new XWTException(e);
+		}
+	}
+
+	protected String expandNamespace(XamlNode node, String name) {
+		int index = name.lastIndexOf(':');
+		if (index != -1) {
+			String prefix = name.substring(0, index);
+			name = findPackageName(node, prefix) + "."
+					+ name.substring(index + 1);
+		}
+		return name;
+	}
+
+	public Object doCreate(Object parent, XamlElement element,
+			Class<?> constraintType, Map<String, Object> options)
+			throws Exception {
+		int styles = -1;
+		if (options.containsKey(IXWTLoader.INIT_STYLE_PROPERTY)) {
+			styles = (Integer) options.get(IXWTLoader.INIT_STYLE_PROPERTY);
+		}
+
+		ResourceDictionary dico = (ResourceDictionary) options
+				.get(IXWTLoader.RESOURCE_DICTIONARY_PROPERTY);
+		Object dataContext = options.get(IXWTLoader.DATACONTEXT_PROPERTY);
+		Object bindingContext = options
+				.get(IXWTLoader.BINDING_CONTEXT_PROPERTY);
+		String name = element.getName();
+		String namespace = element.getNamespace();
+		EList<XamlElement> childNodes = element.getChildNodes();
+		if (IConstants.XWT_X_NAMESPACE.equalsIgnoreCase(namespace)) {
+			if (IConstants.XAML_X_NULL.equalsIgnoreCase(name)) {
+				return null;
+			}
+			if (IConstants.XAML_X_TYPE.equalsIgnoreCase(name)
+					&& constraintType != null
+					&& constraintType instanceof Class<?>) {
+				if (!childNodes.isEmpty()) {
+					XamlElement type = childNodes.get(0);
+					IMetaclass metaclass = loader.getMetaclass(type.getName(),
+							type.getNamespace());
+					if (metaclass != null) {
+						return metaclass.getType();
+					}
+				} else {
+					String content = element.getValue();
+					return loader.convertFrom(Class.class, content);
+				}
+			}
+			return null;
+		}
+		IMetaclass metaclass = loader.getMetaclass(name, namespace);
+		if (metaclass == null) {
+			return null;
+		}
+		if (constraintType != null
+				&& !(IBinding.class.isAssignableFrom(metaclass.getType()))
+				&& (!constraintType.isAssignableFrom(metaclass.getType()))) {
+			if (!constraintType.isArray()
+					|| !constraintType.getComponentType().isAssignableFrom(
+							metaclass.getType())) {
+				IConverter converter = XWT.findConvertor(metaclass.getType(),
+						constraintType);
+				if (converter == null) {
+					return null;
+				}
+			}
+		}
+		Object targetObject = null;
+		Integer styleValue = getStyleValue(element, styles);
+
+		if (parent == null || metaclass.getType() == Shell.class) {
+			if (dataBindingTrack != null) {
+				dataBindingTrack.addWidgetElement(element);
+			}
+			Shell shell = null;
+			if ((parent == null && metaclass.getType() != Shell.class) || styleValue == null || styleValue == -1) {
+				styleValue = SWT.SHELL_TRIM;
+			}
+			Display display = Display.getDefault();
+			shell = new Shell(display, styleValue);
+			targetObject = shell;
+			invokeCreatededAction(element, targetObject);
+			loadData.setCurrentWidget(shell);
+
+			if (metaclass.getType() != Shell.class) {
+				shell.setLayout(new FillLayout());
+				return doCreate(targetObject, element, constraintType, options);
+			} else {
+				if (bindingContext != null) {
+					setBindingContext(metaclass, targetObject, dico,
+							bindingContext);
+				}
+				if (dataContext != null) {
+					setDataContext(metaclass, targetObject, dico, dataContext);
+				}
+			}
+			pushStack(parent);
+
+			// for Shell
+			XamlAttribute classAttribute = element.getAttribute(
+					IConstants.XAML_X_CLASS, IConstants.XWT_X_NAMESPACE);
+			if (classAttribute != null) {
+				String className = classAttribute.getValue();
+				className = expandNamespace(classAttribute, className);
+				loadShellCLR(className, shell);
+			} else {
+				XamlAttribute classFactoryAttribute = element.getAttribute(
+						IConstants.XWT_X_NAMESPACE,
+						IConstants.XAML_X_CLASS_FACTORY);
+				ICLRFactory clrFactory = (ICLRFactory) options
+						.get(XWTLoader.CLASS_FACTORY_PROPERTY);
+				if (classFactoryAttribute != null) {
+					String content = classFactoryAttribute.getValue();
+					Object clr = loadFactoryCLR(content, clrFactory);
+					loadData.setClr(clr);
+					UserData.setCLR(shell, clr);
+				} else {
+					if (clrFactory != null) {
+						Object clr = clrFactory.createCLR(null, options);
+						loadData.setClr(clr);
+						UserData.setCLR(shell, clr);
+					}
+				}
+			}
+		} else {
+			pushStack(parent);
+
+			//
+			// load the content in case of UserControl
+			//
+			Class<?> type = metaclass.getType();
+			URL file = type.getResource(type.getSimpleName()
+					+ IConstants.XWT_EXTENSION_SUFFIX);
+			if (file != null && nameScoped != null) {
+				if (parent instanceof Composite) {
+					Object childDataContext = getDataContext(element,
+							(Widget) parent);
+					Object childBindingContext = getBindingContext(element,
+							(Widget) parent);
+					if (dataContext != null) {
+						childDataContext = dataContext;
+					}
+					if (bindingContext != null) {
+						childBindingContext = bindingContext;
+					}
+					Map<String, Object> nestedOptions = new HashMap<String, Object>();
+					nestedOptions.put(IXWTLoader.CONTAINER_PROPERTY, parent);
+					if (styleValue != null) {
+						nestedOptions.put(IXWTLoader.INIT_STYLE_PROPERTY,
+								styleValue);
+					}
+					nestedOptions.put(IXWTLoader.DATACONTEXT_PROPERTY,
+							childDataContext);
+					if (childBindingContext != null) {
+						nestedOptions.put(IXWTLoader.DATACONTEXT_PROPERTY,
+								childBindingContext);
+					}
+					nestedOptions.put(RESOURCE_LOADER_PROPERTY, this);
+					nestedOptions.put(IXWTLoader.CLASS_FACTORY_PROPERTY, null); // disable
+																				// the
+																				// global
+																				// setting
+					targetObject = loader.loadWithOptions(file, nestedOptions);
+					if (targetObject == null) {
+						return null;
+					}
+					if (targetObject instanceof Widget) {
+						((Widget) targetObject).setData(UI_FILE_KEY, file);
+					}
+				} else
+					throw new XWTException(
+							"Cannot add user control: Parent is not a composite");
+			} else {
+				Object[] parameters = null;
+				if (TableViewerColumn.class.isAssignableFrom(type)) {
+					int columnIndex = getColumnIndex(element);
+					parameters = (styleValue != null ? new Object[] { parent,
+							styleValue, columnIndex } : new Object[] { parent,
+							SWT.NONE, columnIndex });
+				} else {
+					parameters = (styleValue != null ? new Object[] { parent,
+							styleValue } : new Object[] { parent });
+				}
+
+				// x:Class
+				{
+					boolean hasClass = false;
+					XamlAttribute classAttribute = element
+							.getAttribute(IConstants.XAML_X_CLASS,
+									IConstants.XWT_X_NAMESPACE);
+					if (classAttribute != null) {
+						String className = classAttribute.getValue();
+						className = expandNamespace(classAttribute, className);
+						targetObject = loadCLR(className, parameters,
+								metaclass.getType(), options);
+						hasClass = true;
+					} else {
+						Object clr = options.get(XWTLoader.CLASS_PROPERTY);
+						if (clr != null) {
+							loadData.setClr(clr);
+							hasClass = true;
+						}
+					}
+					if (!hasClass) {
+						XamlAttribute classFactoryAttribute = element
+								.getAttribute(IConstants.XWT_X_NAMESPACE,
+										IConstants.XAML_X_CLASS_FACTORY);
+						ICLRFactory clrFactory = (ICLRFactory) options
+								.get(XWTLoader.CLASS_FACTORY_PROPERTY);
+						if (classFactoryAttribute != null) {
+							Object clr = loadFactoryCLR(
+									classFactoryAttribute.getValue(),
+									clrFactory);
+							if (clr != null) {
+								loadData.setClr(clr);
+							}
+						} else {
+							if (clrFactory != null) {
+								loadData.setClr(clrFactory.createCLR(null,
+										options));
+							}
+						}
+					}
+
+					if (targetObject == null) {
+						targetObject = metaclass.newInstance(parameters);
+						invokeCreatededAction(element, targetObject);
+						Widget widget = UserData.getWidget(targetObject);
+						if (widget != null) {
+							Object clr = loadData.getClr();
+							if (clr != null) {
+								UserData.setCLR(widget, clr);
+							}
+						}
+					} else {
+						metaclass = loader.getMetaclass(targetObject);
+					}
+				}
+
+				if (targetObject == null) {
+					return null;
+				}
+			}
+		}
+		Widget widget = UserData.getWidget(targetObject);
+		if (widget != null) {
+			loadData.setCurrentWidget(targetObject);
+		}
+		if (scopedObject == null && widget != null) {
+			scopedObject = widget;
+			nameScoped = new ScopeKeeper((parent == null ? null
+					: UserData.findScopeKeeper((Widget) parent)), widget);
+			UserData.bindNameContext((Widget) widget, nameScoped);
+		}
+		// set first data context and resource dictionary
+		setDataContext(metaclass, targetObject, dico, dataContext);
+		if (bindingContext != null) {
+			setBindingContext(metaclass, targetObject, dico, bindingContext);
+		}
+
+		if (dataBindingTrack != null) {
+			dataBindingTrack.tracking(targetObject, element, dataContext);
+		}
+
+		// set parent relationship and viewer
+		if (targetObject instanceof Widget) {
+			if (parent != null) {
+				UserData.setParent(targetObject, parent);
+				((Widget) targetObject).setData(ELEMENT_KEY, element);
+			}
+		} else if (JFacesHelper.isViewer(targetObject)) {
+			UserData.setParent(targetObject, parent);
+			UserData.setViewer(targetObject, targetObject);
+			// Control control = JFacesHelper.getControl(targetObject);
+			// control.setData(ELEMENT_KEY, element);
+			((Viewer) targetObject).setData(ELEMENT_KEY, element);
+		} else if (targetObject instanceof TableItemProperty.Cell) {
+			((TableItemProperty.Cell) targetObject)
+					.setParent((TableItem) parent);
+		}
+		
+		applyStyles(element, targetObject);
+
+		Set<Entry<String, Object>> entrySet = options.entrySet();
+		for (Entry<String, Object> entry : entrySet) {
+			String key = entry.getKey();
+			if (IXWTLoader.Utilities.isPropertyName(key)) {
+				continue;
+			}
+			IProperty property = metaclass.findProperty(key);
+			if (property == null) {
+				throw new XWTException("Property " + key + " not found.");
+			}
+			property.setValue(targetObject, entry.getValue());
+		}
+
+		Map<String, IProperty> delayedAttributes = new HashMap<String, IProperty>();
+		init(metaclass, targetObject, element, delayedAttributes);
+		if (targetObject instanceof Style && childNodes.size() > 0) {
+			Collection<Setter> setters = new ArrayList<Setter>();
+			for (XamlNode doc : childNodes) {
+				Object child = doCreate(targetObject, (XamlElement) doc, null,
+						Collections.EMPTY_MAP);
+				if (!(child instanceof Setter)) {
+					throw new XWTException("Setter is expected in Style.");
+				}
+				setters.add((Setter) child);
+			}
+			((Style) targetObject).setSetters(setters
+					.toArray(new Setter[setters.size()]));
+		} else if (targetObject instanceof ControlEditor) {
+			for (XamlNode doc : childNodes) {
+				Object editor = doCreate(parent, (XamlElement) doc, null,
+						Collections.EMPTY_MAP);
+				if (editor != null && editor instanceof Control) {
+					((ControlEditor) targetObject).setEditor((Control) editor);
+					((Control) editor).setData(
+							PropertiesConstants.DATA_CONTROLEDITOR_OF_CONTROL,
+							targetObject);
+				}
+			}
+		} else if (targetObject instanceof IDataProvider) {
+			for (XamlNode doc : childNodes) {
+				if (IConstants.XWT_X_NAMESPACE.equals(doc.getNamespace())) {
+					String content = doc.getValue();
+					if (content != null) {
+						((IDataProvider) targetObject).setProperty(
+								doc.getName(), content);
+					}
+				}
+			}
+		} else {
+			for (XamlNode doc : childNodes) {
+				doCreate(targetObject, (XamlElement) doc, null,
+						Collections.EMPTY_MAP);
+			}
+		}
+
+		iniDelayedAttribute(metaclass, targetObject, element, null,
+				delayedAttributes);
+		postCreation(targetObject);
+		popStack();
+		return targetObject;
+	}
+
+	protected void iniDelayedAttribute(IMetaclass metaclass,
+			Object targetObject, XamlNode element, String namespace,
+			Map<String, IProperty> delayedAttributes) throws Exception {
+		Set<String> keys = delayedAttributes.keySet();
+		while (!keys.isEmpty()) {
+			for (String delayed : keys.toArray(new String[keys.size()])) {
+				IProperty property = delayedAttributes.get(delayed);
+				boolean hasDependency = false;
+				IProperty[] dependencies = property.getLoadingType()
+						.getDependencies();
+				if (dependencies.length > 0) {
+					for (IProperty dependency : dependencies) {
+						if (delayedAttributes.containsValue(dependency)) {
+							hasDependency = true;
+							break;
+						}
+					}
+				}
+				if (!hasDependency) {
+					initAttribute(metaclass, targetObject, element, null,
+							delayed);
+					keys.remove(delayed);
+				}
+			}
+		}
+	}
+
+	/**
+	 * This method is invoked directly after creation of component instance, but
+	 * before applying its attributes and creating children.
+	 * 
+	 * @param element
+	 *            the source element in XML.
+	 * @param targetObject
+	 *            the created visual object.
+	 */
+	protected void postCreation0(XamlElement element, Object targetObject) {
+	}
+
+	private void invokeCreatededAction(XamlElement element, Object targetObject) {
+		if (targetObject != null) {
+			postCreation0(element, targetObject);
+		}
+		if (options != null) {
+			ICreatedCallback createdAction = (ICreatedCallback) options
+					.get(IXWTLoader.CREATED_CALLBACK);
+			if (createdAction != null) {
+				createdAction.onCreated(targetObject);
+			}
+		}
+	}
+
+	/**
+	 * This method is invoked after full creation of component, i.e. after
+	 * creating its instance, applying its attributes and creating children.
+	 */
+	protected void postCreation(Object target) {
+	}
+
+	protected void setDataContext(IMetaclass metaclass, Object targetObject,
+			ResourceDictionary dico, Object dataContext)
+			throws IllegalAccessException, InvocationTargetException,
+			NoSuchFieldException {
+		Object control = null;
+		IMetaclass widgetMetaclass = metaclass;
+		if (JFacesHelper.isViewer(targetObject)) {
+			Widget widget = JFacesHelper.getControl(targetObject);
+			widgetMetaclass = loader.getMetaclass(widget.getClass());
+			control = targetObject;
+		} else if (targetObject instanceof Widget) {
+			control = targetObject;
+		} else {
+			control = loadData.getCurrentWidget();
+		}
+		if (control != null) {
+			if (targetObject instanceof IDynamicBinding) {
+				IDynamicBinding dynamicBinding = (IDynamicBinding) targetObject;
+				dynamicBinding.setControl(control);
+				dynamicBinding.setHost(loadData.getHost());
+			}
+			if (dico != null) {
+				UserData.setResources(control, dico);
+			}
+			if (dataContext != null) {
+				IProperty property = widgetMetaclass
+						.findProperty(IConstants.XAML_DATA_CONTEXT);
+				if (property != null) {
+					property.setValue(UserData.getWidget(control), dataContext);
+				} else {
+					throw new XWTException("DataContext is missing in "
+							+ widgetMetaclass.getType().getName());
+				}
+			}
+		}
+	}
+
+	protected void setBindingContext(IMetaclass metaclass, Object targetObject,
+			ResourceDictionary dico, Object bindingContext)
+			throws IllegalAccessException, InvocationTargetException,
+			NoSuchFieldException {
+		Object control = null;
+		IMetaclass widgetMetaclass = metaclass;
+		if (JFacesHelper.isViewer(targetObject)) {
+			Widget widget = JFacesHelper.getControl(targetObject);
+			widgetMetaclass = loader.getMetaclass(widget.getClass());
+			control = targetObject;
+		} else if (targetObject instanceof Widget) {
+			control = targetObject;
+		} else {
+			control = loadData.getCurrentWidget();
+		}
+		if (control != null) {
+			if (targetObject instanceof IDynamicBinding) {
+				IDynamicBinding dynamicBinding = (IDynamicBinding) targetObject;
+				dynamicBinding.setControl(control);
+				dynamicBinding.setHost(loadData.getHost());
+			}
+			if (dico != null) {
+				UserData.setResources(control, dico);
+			}
+			if (bindingContext != null) {
+				IProperty property = widgetMetaclass
+						.findProperty(IConstants.XAML_BINDING_CONTEXT);
+				if (property != null) {
+					property.setValue(UserData.getWidget(control),
+							bindingContext);
+				} else {
+					throw new XWTException("BindingContext is missing in "
+							+ widgetMetaclass.getType().getName());
+				}
+			}
+		}
+	}
+
+	protected void applyStyles(XamlElement element, Object targetObject)
+			throws Exception {
+		if (targetObject instanceof Widget) {
+			Widget widget = (Widget) targetObject;
+			Map<String, Object> dico = UserData.getLocalResources(widget);
+			XamlAttribute attribute = element
+					.getAttribute(IConstants.XAML_RESOURCES);
+			if (attribute == null) {
+				attribute = element.getAttribute(IConstants.XAML_RESOURCES,
+						IConstants.XWT_NAMESPACE);
+			}
+			if (attribute != null) {
+				if (attribute.getChildNodes().size() > 0) {
+					if (dico == null) {
+						dico = new ResourceDictionary();
+						UserData.setResources(widget, dico);
+					}
+
+					for (XamlNode doc : attribute.getChildNodes()) {
+						XamlElement elem = (XamlElement) doc;
+						Object doCreate = doCreate(widget, elem, null,
+								EMPTY_MAP);
+						XamlAttribute keyAttribute = elem.getAttribute(
+								IConstants.XAML_X_KEY,
+								IConstants.XWT_X_NAMESPACE);
+						if (keyAttribute == null) {
+							keyAttribute = elem.getAttribute(
+									IConstants.XAML_X_TYPE,
+									IConstants.XWT_X_NAMESPACE);
+						}
+						if (keyAttribute != null) {
+							dico.put(keyAttribute.getValue(), doCreate);
+						}
+						if (doCreate instanceof IStyle) {
+							IStyle style = (IStyle) doCreate;
+							loadData.addStyle(style);
+						}
+					}
+				}
+			}
+
+			// apply the styles defined in parent's resources via TargetType
+			Widget current = widget;
+			while (current != null) {
+				dico = UserData.getLocalResources(current);
+				if (dico != null) {
+					for (Object value : dico.values()) {
+						if (value instanceof Style) {
+							Style style = (Style) value;
+							Class<?> targetType = style.getTargetType();
+							if (targetType != null
+									&& targetType.isInstance(widget)) {
+								style.apply(targetObject);
+							}
+						}
+					}
+				}
+				current = UserData.getTreeParent(current);
+			}
+		}
+
+		for (IStyle style : loadData.getStyles()) {
+			style.applyStyle(targetObject);
+		}
+	}
+
+	protected int getColumnIndex(XamlElement columnElement) {
+		String name = columnElement.getName();
+		String namespace = columnElement.getNamespace();
+		IMetaclass metaclass = loader.getMetaclass(name, namespace);
+		int index = -1;
+		Class<?> type = metaclass.getType();
+		if (TableViewerColumn.class.isAssignableFrom(type)) {
+			XamlNode parent = (XamlNode) columnElement.eContainer();
+			List<XamlNode> children = NodesSorter.sortWithAttr(parent
+					.getChildNodes().toArray(new XamlNode[0]), "Index");
+			index = children.indexOf(columnElement);
+		}
+
+		return index;
+	}
+
+	/**
+	 * @param tableItem
+	 */
+	protected void installTableEditors(TableItem tableItem) {
+		Table table = tableItem.getParent();
+		TableColumn[] columns = table.getColumns();
+		if (columns == null || columns.length == 0) {
+			return;
+		}
+		for (TableColumn tableColumn : columns) {
+			Object data = tableColumn
+					.getData(PropertiesConstants.DATA_DEFINED_EDITOR);
+			if (data == null || !(data instanceof XamlElement)) {
+				continue;
+			}
+			int column = table.indexOf(tableColumn);
+			XamlElement editor = (XamlElement) data;
+			try {
+				TableEditor tableEditor = (TableEditor) doCreate(table, editor,
+						null, EMPTY_MAP);
+				if (tableEditor != null) {
+					tableEditor.setColumn(column);
+					tableEditor.setItem(tableItem);
+				}
+			} catch (Exception e) {
+				e.printStackTrace();
+				continue;
+			}
+		}
+	}
+
+	protected Object getDataContext(XamlElement element, Widget swtObject) {
+		// x:DataContext
+		try {
+			Object dataContext = loadData.getDataContext();
+			if (dataContext != null) {
+				return dataContext;
+			}
+			{
+				XamlAttribute dataContextAttribute = element.getAttribute(
+						IConstants.XAML_DATA_CONTEXT, IConstants.XWT_NAMESPACE);
+				if (dataContextAttribute != null) {
+					Widget composite = (Widget) swtObject;
+					XamlNode documentObject = dataContextAttribute
+							.getChildNodes().get(0);
+					if (IConstants.XAML_STATICRESOURCES.equals(documentObject
+							.getName())
+							|| IConstants.XAML_DYNAMICRESOURCES
+									.equals(documentObject.getName())) {
+						String key = documentObject.getValue();
+						dataContext = new StaticResourceBinding(composite, key);
+						loadData.setDataContext(dataContext);
+						return dataContext;
+					} else if (IConstants.XAML_BINDING.equals(documentObject
+							.getName())) {
+						dataContext = doCreate(swtObject,
+								(XamlElement) documentObject, null, EMPTY_MAP);
+						loadData.setDataContext(dataContext);
+						return dataContext;
+					} else {
+						LoggerManager.log(new UnsupportedOperationException(
+								documentObject.getName()));
+					}
+				}
+			}
+		} catch (Exception e) {
+			LoggerManager.log(e);
+		}
+
+		return null;
+	}
+
+	protected Object getBindingContext(XamlElement element, Widget swtObject) {
+		// x:DataContext
+		try {
+			{
+				XamlAttribute dataContextAttribute = element.getAttribute(
+						IConstants.XAML_BINDING_CONTEXT,
+						IConstants.XWT_NAMESPACE);
+				if (dataContextAttribute != null) {
+					Widget composite = (Widget) swtObject;
+					XamlNode documentObject = dataContextAttribute
+							.getChildNodes().get(0);
+					if (IConstants.XAML_STATICRESOURCES.equals(documentObject
+							.getName())
+							|| IConstants.XAML_DYNAMICRESOURCES
+									.equals(documentObject.getName())) {
+						String key = documentObject.getValue();
+						return new StaticResourceBinding(composite, key);
+					} else if (IConstants.XAML_BINDING.equals(documentObject
+							.getName())) {
+						return doCreate(swtObject,
+								(XamlElement) documentObject, null, EMPTY_MAP);
+					} else {
+						LoggerManager.log(new UnsupportedOperationException(
+								documentObject.getName()));
+					}
+				}
+			}
+		} catch (Exception e) {
+			LoggerManager.log(e);
+		}
+
+		return null;
+	}
+
+	protected void pushStack(Object host) {
+		loadData = new LoadingData(loadData, host);
+	}
+
+	protected void popStack() {
+		LoadingData previous = loadData;
+		loadData = previous.getParent();
+
+		previous.end();
+	}
+
+	protected Integer getStyleValue(XamlElement element, int styles) {
+		XamlAttribute attribute = element.getAttribute(IConstants.XAML_STYLE,
+				IConstants.XWT_X_NAMESPACE);
+		if (attribute == null) {
+			if (styles != -1) {
+				return styles;
+			}
+			return null;
+		}
+		if (styles == -1) {
+			return (Integer) loader.findConvertor(String.class, Integer.class)
+					.convert(attribute.getValue());
+		}
+		return styles
+				| (Integer) loader.findConvertor(String.class, Integer.class)
+						.convert(attribute.getValue());
+	}
+
+	protected void init(IMetaclass metaclass, Object targetObject,
+			XamlNode element, Map<String, IProperty> delayedAttributes)
+			throws Exception {
+		// editors for TableItem,
+		if (targetObject instanceof TableItem) {
+			installTableEditors((TableItem) targetObject);
+		}
+
+		// x:DataContext
+		if (loadData.getDataContext() == null) {
+			XamlAttribute dataContextAttribute = element
+					.getAttribute(IConstants.XAML_DATA_CONTEXT);
+			if (dataContextAttribute != null) {
+				IProperty property = metaclass
+						.findProperty(IConstants.XAML_DATA_CONTEXT);
+				Widget composite = (Widget) targetObject;
+				XamlNode documentObject = dataContextAttribute.getChildNodes()
+						.get(0);
+				if (IConstants.XAML_STATICRESOURCES.equals(documentObject
+						.getName())
+						|| IConstants.XAML_DYNAMICRESOURCES
+								.equals(documentObject.getName())) {
+					String key = documentObject.getValue();
+					property.setValue(composite, new StaticResourceBinding(
+							composite, key));
+				} else if (IConstants.XAML_BINDING.equals(documentObject
+						.getName())) {
+					Object object = doCreate(targetObject,
+							(XamlElement) documentObject, null, EMPTY_MAP);
+					property.setValue(composite, object);
+				} else {
+					LoggerManager.log(new UnsupportedOperationException(
+							documentObject.getName()));
+				}
+			}
+		}
+
+		HashSet<String> done = new HashSet<String>();
+
+		XamlAttribute nameAttr = element.getAttribute(IConstants.XAML_X_NAME);
+		if (nameAttr == null) {
+			nameAttr = element.getAttribute(IConstants.XAML_X_NAME,
+					IConstants.XWT_X_NAMESPACE);
+		}
+		if (nameAttr != null && UserData.getWidget(targetObject) != null) {
+			String value = nameAttr.getValue();
+			loadData.inject(targetObject, value);
+
+			nameScoped.addNamedObject(value, targetObject);
+			done.add(IConstants.XAML_X_NAME);
+		}
+
+		for (XamlAttribute attr : element.getAttributes()) {
+			String namespace = attr.getNamespace();
+			String attrName = attr.getName();
+
+			IProperty property = metaclass.findProperty(attrName);
+
+			//
+			// 1. handle foreigner namespace
+			//
+			if (!XWT.isXWTNamespace(namespace)) {
+				INamespaceHandler namespaceHandler = loader
+						.getNamespaceHandler(namespace);
+				if (namespaceHandler != null) {
+					Widget widget = UserData.getWidget(loadData
+							.getCurrentWidget());
+					namespaceHandler.handleAttribute(widget, targetObject,
+							attrName, attr.getValue());
+				}
+				continue;
+			}
+			//
+			// 2. handle 'x' namespace of xwt.
+			//
+			if (IConstants.XWT_X_NAMESPACE.equals(namespace)) {
+				if ("class".equalsIgnoreCase(attrName)
+						|| IConstants.XAML_STYLE.equalsIgnoreCase(attrName)) {
+					continue; // done before
+				} else if (IConstants.XAML_X_NAME.equalsIgnoreCase(attrName)) {
+					nameScoped.addNamedObject(
+							element.getAttribute(attrName, namespace)
+									.getValue(), targetObject);
+					done.add(attrName);
+				} else if (IConstants.XAML_DATA_CONTEXT
+						.equalsIgnoreCase(attrName)) {
+					continue; // done before
+				} else if (IConstants.XAML_X_ARRAY.equalsIgnoreCase(attrName)) {
+					Class<?> type = property.getType();
+					Object value = getArrayProperty(type, targetObject,
+							element, attrName);
+					if (value != null) {
+						property.setValue(targetObject, value);
+					}
+				} else if (IConstants.XAML_RESOURCES.equalsIgnoreCase(attrName)) {
+					continue;
+				} else {
+					if (!done.contains(attrName)) {
+						initAttribute(metaclass, targetObject, element,
+								namespace, attrName);
+						done.add(attrName);
+					}
+				}
+			}
+			//
+			// 3. handle delayed attributes.
+			//
+			else if (delayedAttributes != null
+					&& property != null
+					&& property.getLoadingType().getValueLoading() != IValueLoading.Normal) {
+				delayedAttributes.put(attrName, property);
+			}
+			//
+			// 4. handle others.
+			//
+			else {
+				if (!done.contains(attrName)) {
+					initAttribute(metaclass, targetObject, element, namespace,
+							attrName);
+					done.add(attrName);
+				}
+			}
+		}
+	}
+
+	protected Object getArrayProperty(Class<?> type, Object swtObject,
+			XamlNode node, String attrName) throws IllegalAccessException,
+			InvocationTargetException, NoSuchFieldException {
+		Class<?> arrayType = null;
+		if (type == Object.class) {
+			if (node instanceof XamlElement) {
+				XamlElement element = (XamlElement) node;
+				XamlAttribute attribute = element.getAttribute(IConstants.XWT_NAMESPACE, IConstants.XAML_X_TYPE);
+				if (attribute == null) {
+					throw new XWTException("The type attribute is missing in the element x:Array.");
+				}
+				String value = attribute.getValue();
+				IMetaclass metaclass = XWT.getMetaclass(value, attribute.getNamespace());
+				if (metaclass == null) {
+					throw new XWTException("The type \"" + value + "\" is not found.");					
+				}
+				arrayType = metaclass.getType();
+			}
+		}
+		else {
+			if (!type.isArray()) {
+				throw new XWTException("Type mismatch: property " + attrName
+						+ " isn't an array.");
+			}
+			arrayType = type.getComponentType();
+		}
+		
+		if (arrayType != null) {
+			List<Object> list = new ArrayList<Object>();
+			for (XamlElement childModel : node.getChildNodes()) {
+				Object child = createInstance(swtObject, childModel);
+				list.add(child);
+			}
+			Object[] array = (Object[]) Array.newInstance(arrayType,
+					list.size());
+			list.toArray(array);
+
+			for (int i = 0; i < array.length; i++) {
+				if (array[i] instanceof IIndexedElement) {
+					((IIndexedElement) array[i]).setIndex(swtObject, i);
+				}
+			}
+			return array;
+		}
+		return null;
+	}
+
+	@SuppressWarnings("unchecked")
+	protected Object getCollectionProperty(Class<?> type, Object swtObject,
+			XamlNode element, String attrName) throws IllegalAccessException,
+			InvocationTargetException, NoSuchFieldException {
+		Collection<Object> collector = null;
+		if (type.isInterface()) {
+			collector = new ArrayList<Object>();
+		} else {
+			if (Modifier.isAbstract(type.getModifiers())) {
+				LoggerManager.log(new XWTException("Collection "
+						+ type.getSimpleName() + " is abstract type"));
+			}
+			try {
+				collector = (Collection) type.newInstance();
+			} catch (InstantiationException e) {
+				LoggerManager.log(new XWTException(e));
+			}
+		}
+
+		for (XamlElement childModel : element.getChildNodes()) {
+			Object child = createInstance(swtObject, childModel);
+			collector.add(child);
+			if (child instanceof IIndexedElement) {
+				((IIndexedElement) child).setIndex(swtObject,
+						collector.size() - 1);
+			}
+		}
+		return collector;
+	}
+
+	protected String findPackageName(XamlNode context, String prefix) {
+		while (context != null && !(context instanceof XamlElement)) {
+			context = (XamlNode) context.eContainer();
+		}
+		if (context == null) {
+			return null;
+		}
+		XamlElement element = (XamlElement) context;
+
+		if (prefix != null) {
+			prefix = (prefix.length() == 0 ? null : prefix);
+		}
+
+		if (prefix == null) {
+			String namespace = element.getNamespace();
+			if (namespace != null) {
+				return namespace;
+			}
+		} else {
+			XamlDocument document = element.getOwnerDocument();
+			String value = document.getDeclaredNamespace(prefix);
+			if (value.startsWith(IConstants.XAML_CLR_NAMESPACE_PROTO)) {
+				return value.substring(IConstants.XAML_CLR_NAMESPACE_PROTO
+						.length());
+			}
+		}
+
+		XamlNode parent = (XamlNode) element.eContainer();
+		return findPackageName(parent, prefix);
+	}
+
+	protected Object createInstance(Object swtObject, XamlElement element) {
+		String name = element.getName();
+		String namespace = element.getNamespace();
+		if (IConstants.XWT_X_NAMESPACE.equalsIgnoreCase(namespace)
+				&& IConstants.XAML_X_NULL.equalsIgnoreCase(name)) {
+			return null;
+		}
+		try {
+			Class<?> type = NamespaceHelper.loadCLRClass(
+					loader.getLoadingContext(), name, namespace);
+			IMetaclass metaclass = loader.getMetaclass(name, namespace);
+			if (type == null) {
+				if (metaclass != null)
+					type = metaclass.getType();
+			}
+			// type = expected type;
+			// Need to support the
+			String content = element.getValue();
+			Object instance = null;
+			if (content == null) {
+				instance = metaclass.newInstance(new Object[] { swtObject });
+				invokeCreatededAction(element, instance);
+				if (instance instanceof TableEditor) {
+					// TODO should be moved into IMetaclass
+					TableEditor tableEditor = (TableEditor) instance;
+					if (swtObject instanceof TableItem) {
+						TableItem item = (TableItem) swtObject;
+						tableEditor.setItem(item);
+						for (XamlNode doc : element.getChildNodes()) {
+							Control control = (Control) doCreate(
+									((TableItem) swtObject).getParent(),
+									(XamlElement) doc, null, EMPTY_MAP);
+							tableEditor.setEditor(control);
+							int column = getColumnValue(element);
+							TableEditorHelper.initEditor(item, control, column);
+						}
+					}
+				}
+			} else {
+				Constructor<?> constructor = type.getConstructor(type);
+				if (constructor != null) {
+					instance = constructor.newInstance(loader.convertFrom(type,
+							content));
+					invokeCreatededAction(element, instance);
+				} else {
+					LoggerManager.log(new XWTException("Constructor \"" + name
+							+ "(" + type.getSimpleName() + ")\" is not found"));
+				}
+			}
+
+			Map<String, IProperty> delayedAttributes = new HashMap<String, IProperty>();
+			init(metaclass, instance, element, delayedAttributes);
+			iniDelayedAttribute(metaclass, instance, element, null,
+					delayedAttributes);
+
+			for (XamlElement doc : element.getChildNodes()) {
+				doCreate(instance, doc, null, Collections.EMPTY_MAP);
+			}
+			return instance;
+		} catch (Exception e) {
+			LoggerManager.log(e);
+		}
+		return null;
+	}
+
+	static protected int getColumnValue(XamlElement context) {
+		XamlAttribute attribute = context.getAttribute(COLUMN);
+		if (attribute != null) {
+			String content = attribute.getValue();
+			if (content != null) {
+				return Integer.parseInt(content);
+			}
+		}
+		return 0;
+	}
+
+	protected void loadShellCLR(String className, Shell shell) {
+		Class<?> type = XWTClassLoaderUtil.loadClass(
+				loader.getLoadingContext(), className);
+		if (type == null) {
+			return;
+		}
+		try {
+			Object instance = type.newInstance();
+			loadData.setClr(instance);
+			UserData.setCLR(shell, instance);
+		} catch (Exception e) {
+			LoggerManager.log(e);
+		}
+	}
+
+	protected Object loadFactoryCLR(String value, ICLRFactory factory) {
+		String token;
+		String arg;
+		if (value.startsWith("+")) {
+			if (factory == null) {
+				throw new XWTException("ICLRFactory option is missing.");
+			}
+			arg = value.substring(1);
+			return factory.createCLR(arg, options);
+		} else {
+			StringTokenizer stringTokenizer = new StringTokenizer(value);
+			if (!stringTokenizer.hasMoreTokens()) {
+				throw new XWTException("x:ClassFactory is empty");
+			}
+			token = stringTokenizer.nextToken();
+			arg = value.substring(token.length()).trim();
+		}
+		int index = token.lastIndexOf('.');
+		if (index != -1) {
+			String memberName = token.substring(index + 1);
+			String typeName = token.substring(0, index);
+			Class<?> type = ClassLoaderUtil.loadClass(
+					loader.getLoadingContext(), typeName);
+			if (type != null) {
+				Object member = ClassLoaderUtil.loadMember(
+						loader.getLoadingContext(), type, memberName, false);
+				if (member instanceof ICLRFactory) {
+					factory = (ICLRFactory) member;
+				}
+				if (factory != null) {
+					return factory.createCLR(arg, options);
+				}
+			}
+		}
+		Class<?> type = ClassLoaderUtil.loadClass(loader.getLoadingContext(),
+				token);
+		if (type != null && ICLRFactory.class.isAssignableFrom(type)) {
+			try {
+				ICLRFactory localFactory = (ICLRFactory) type.newInstance();
+				return localFactory.createCLR(arg, options);
+			} catch (Exception e) {
+				throw new XWTException(e);
+			}
+		}
+		throw new XWTException(value + " ClassFactory not found.");
+	}
+
+	protected Object loadCLR(String className, Object[] parameters,
+			Class<?> currentTagType, Map<String, Object> options) {
+		Class<?> type = XWTClassLoaderUtil.loadClass(
+				loader.getLoadingContext(), className);
+		if (type == null) {
+			return null;
+		}
+		try {
+			Object clr = options.get(XWTLoader.CLASS_PROPERTY);
+			if (clr != null && type != null && type.isInstance(clr)) {
+				loadData.setClr(clr);
+				if (clr instanceof Widget) {
+					UserData.setCLR((Widget) clr, clr);
+				}
+			} else if (currentTagType != null
+					&& currentTagType.isAssignableFrom(type)) {
+				IMetaclass metaclass = loader.getMetaclass(type);
+				Object instance = metaclass.newInstance(parameters);
+				loadData.setClr(instance);
+				// use x:Class's instance
+				if (instance instanceof Widget) {
+					UserData.setCLR((Widget) instance, instance);
+				}
+				return instance;
+			} else {
+				Object instance = type.newInstance();
+				loadData.setClr(instance);
+				if (instance instanceof Widget) {
+					UserData.setCLR((Widget) instance, instance);
+				}
+			}
+		} catch (Exception e) {
+			LoggerManager.log(e);
+		}
+		return null;
+	}
+
+	public void initAttribute(IMetaclass metaclass, Object targetObject,
+			XamlNode element, String namespace, String attrName)
+			throws Exception {
+		if (attrName.indexOf('.') != -1) {
+			String[] segments = attrName.split("\\.");
+			IMetaclass currentMetaclass = metaclass;
+			Object target = targetObject;
+			for (int i = 0; i < segments.length - 1; i++) {
+				IProperty property = currentMetaclass.findProperty(segments[i]);
+				if (property != null) {
+					target = property.getValue(target);
+					if (target == null) {
+						LoggerManager.log(new XWTException("Property \""
+								+ segments[i] + "\" is null."));
+					}
+					currentMetaclass = loader.getMetaclass(target);
+				} else {
+					LoggerManager.log(new XWTException("Property \""
+							+ segments[i] + "\" not found."));
+				}
+			}
+			initSegmentAttribute(currentMetaclass,
+					segments[segments.length - 1], target, element, namespace,
+					attrName);
+			return;
+		}
+		initSegmentAttribute(metaclass, attrName, targetObject, element,
+				namespace, attrName);
+	}
+
+	protected void addCommandExecuteListener(String commandName,
+			final Widget targetButton) {
+		final ICommand commandObj = loader.getCommand(commandName);
+		if (commandObj != null) {
+			targetButton.addListener(SWT.Selection, new Listener() {
+				public void handleEvent(Event event) {
+					commandObj.execute(targetButton);
+				}
+			});
+		}
+	}
+
+	protected void initSegmentAttribute(IMetaclass metaclass,
+			String propertyName, Object target, XamlNode element,
+			String namespace, String attrName) throws Exception {
+		XamlAttribute attribute = element.getAttribute(attrName, namespace);
+		if (attribute == null) {
+			attribute = element.getAttribute(attrName);
+		}
+		IProperty property = null;
+		boolean isAttached = false;
+		{
+			String groupName = attribute.getGroupName();
+			if (groupName == null) {
+				property = metaclass.findProperty(propertyName);
+			} else {
+				//
+				if (groupName.length() > 1) {
+					groupName = Character.toUpperCase(groupName.charAt(0))
+							+ groupName.substring(1);
+				}
+				IMetaclass metaclassAttached = loader.getMetaclass(groupName,
+						attribute.getNamespace());
+				if (metaclassAttached != null) {
+					property = metaclassAttached.findProperty(propertyName);
+					isAttached = true;
+				} else {
+					LoggerManager.log(attribute.getNamespace() + " -> "
+							+ groupName + " is not found.");
+					return;
+				}
+			}
+		}
+		if (propertyName.equals(IConstants.XAML_DATA_CONTEXT)) {
+			property = null;
+		}
+		if (IConstants.XAML_COMMAND.equalsIgnoreCase(propertyName)
+				&& ICommand.class.isAssignableFrom(property.getType())
+				&& (target instanceof Widget)) {
+			addCommandExecuteListener(attribute.getValue(), (Widget) target);
+		}
+		if (property == null) {
+			IEvent event = metaclass.findEvent(attrName);
+			if (event == null) {
+				return;
+			}
+			// add events for controls and items.
+			if (!(target instanceof Widget)) {
+				return;
+			}
+			loadData.updateEvent((Widget) target, event, attribute.getValue());
+			return;
+		}
+
+		try {
+			String contentValue = attribute.getValue();
+			if ("MenuItem".equalsIgnoreCase(element.getName())
+					&& "Text".equalsIgnoreCase(attrName)) {
+				XamlAttribute attributeAccelerator = element
+						.getAttribute("Accelerator");
+				if (attributeAccelerator != null) {
+					contentValue = contentValue + '\t'
+							+ getContentValue(attributeAccelerator.getValue());
+				}
+			}
+
+			if (contentValue != null
+					&& "Accelerator".equalsIgnoreCase(attrName)) {
+				contentValue = XWTMaps.getCombAccelerator(contentValue);
+				if (contentValue.contains("'")) {
+					contentValue = removeSubString(contentValue, "'");
+				}
+			}
+			if (contentValue != null
+					&& loader.isFileResolveType(property.getType())) {
+				contentValue = getImagePath(contentValue);
+			}
+			// if (contentValue != null
+			// && (URL.class.isAssignableFrom(property.getType()))) {
+			// contentValue = getSourceURL(contentValue);
+			// }
+			Object value = null;
+			XamlNode[] children = attribute.getChildNodes().toArray(
+					new XamlNode[0]);
+			boolean usingExistingValue = false;
+			if (contentValue == null) {
+				Class<?> type = property.getType();
+				if (Collection.class.isAssignableFrom(type)) {
+					value = getCollectionProperty(type, target, attribute,
+							attrName);
+				} else {
+					Object directTarget = null;
+					if (TableViewerColumn.class.isAssignableFrom(type)
+							&& attrName.equalsIgnoreCase("columns")) {
+						children = NodesSorter.sortWithAttr(children, "Index")
+								.toArray(new XamlNode[children.length]);
+					} else {
+						try {
+							Object propertyValue = property.getValue(target);
+							if (UserData.getWidget(propertyValue) != null) {
+								directTarget = propertyValue;
+								// use the existing property value as parent,
+								// not need to add the constraint
+								if (!property.isValueAsParent()) {
+									if (isChildTypeCompatible(attribute, type)) {
+										directTarget = null;
+									}
+									else {
+										type = null;
+										usingExistingValue = true;									
+									}
+								}
+							}
+						} catch (Exception e) {
+						}
+					}
+					if (directTarget == null) {
+						directTarget = target;
+					}
+
+					for (XamlNode child : children) {
+						String name = child.getName();
+						String ns = child.getNamespace();
+						if (IConstants.XAML_X_STATIC.equalsIgnoreCase(name)
+								&& IConstants.XWT_X_NAMESPACE.equals(ns)) {
+							value = getStaticValue(child);
+						} else if (IConstants.XAML_STATICRESOURCES
+								.equalsIgnoreCase(name)
+								&& IConstants.XWT_NAMESPACE.equals(ns)) {
+							String key = child.getValue();
+							value = new StaticResourceBinding(
+									loadData.getCurrentWidget(), key);
+						} else if ((IConstants.XWT_X_NAMESPACE.equals(ns) && IConstants.XAML_X_ARRAY
+								.equalsIgnoreCase(name))) {
+							value = getArrayProperty(property.getType(),
+									directTarget, child, name);
+						} else if (property.getType().isArray()) {
+							value = getArrayProperty(property.getType(),
+									directTarget, attribute, name);
+							break;
+						} else if (isAssignableFrom(element, TableColumn.class)
+								&& isAssignableFrom(child, TableEditor.class)) {
+							value = child;
+						} else if (TableViewerColumn.class
+								.isAssignableFrom(property.getType())
+								&& attribute.getValue() != null) {
+							value = attribute.getValue();
+						} else {
+							if ("Null".equals(child.getName())
+									&& IConstants.XWT_X_NAMESPACE.equals(child
+											.getNamespace())) {
+								property.setValue(directTarget, null);
+								return;
+							} else {
+								value = doCreate(directTarget,
+										(XamlElement) child, type, EMPTY_MAP);
+								if (value == null
+										&& type != null
+										&& !(type == Table.class
+												&& "TableColumn".equals(child
+														.getName()) && Table.class
+												.isInstance(directTarget))) {
+									throw new XWTException(child.getName()
+											+ " cannot be a content of "
+											+ type.getName() + " "
+											+ target.getClass().getName() + "."
+											+ property.getName());
+								}
+								if (value instanceof IDynamicBinding) {
+									((IDynamicBinding) value).setType(attrName);
+								}
+							}
+						}
+					}
+				}
+			}
+			if (contentValue != null && value == null
+					&& !IConstants.XAML_COMMAND.equalsIgnoreCase(propertyName)) {
+				if (property.getType().isInstance(Class.class)) {
+					contentValue = expandNamespace(attribute, contentValue);
+				}
+				value = loader.convertFrom(property.getType(), contentValue);
+			}
+			if (!usingExistingValue) {
+				if (value != null) {
+					Class<?> propertyType = property.getType();
+					if (!propertyType.isAssignableFrom(value.getClass())
+							|| value instanceof IBinding) {
+						Object orginalValue = value;
+						IConverter converter = loader.findConvertor(
+								value.getClass(), propertyType);
+						if (converter != null) {
+							value = converter.convert(value);
+							if (value != null
+									&& orginalValue instanceof IBinding
+									&& !propertyType.isAssignableFrom(value
+											.getClass())) {
+								converter = loader.findConvertor(
+										value.getClass(), propertyType);
+								if (converter != null) {
+									value = converter.convert(value);
+								} else {
+									LoggerManager.log(new XWTException(
+											"Convertor "
+													+ value.getClass()
+															.getSimpleName()
+													+ "->"
+													+ propertyType
+															.getSimpleName()
+													+ " is not found"));
+								}
+							}
+						} else {
+							LoggerManager.log(new XWTException("Convertor "
+									+ value.getClass().getSimpleName() + "->"
+									+ propertyType.getSimpleName()
+									+ " is not found"));
+						}
+					}
+					if (isAttached) {
+						UserData.setLocalData(target, property, value);
+					} else {
+						if (value instanceof IDynamicValueBinding) {
+							IDynamicValueBinding dynamicValueBinding = (IDynamicValueBinding) value;
+							dynamicValueBinding.setControl(loadData
+									.findElement(Widget.class));
+							dynamicValueBinding.setProperty(property);
+							dynamicValueBinding.setObject(target);
+						}
+						property.setValue(target, value);
+					}
+				} else {
+					if (value == null) {
+						value = property.getValue(target);
+					}
+					if (value != null) {
+						// create children.
+						for (XamlNode child : children) {
+							String name = child.getName();
+							String ns = child.getNamespace();
+							if (!IConstants.XWT_X_NAMESPACE.equals(ns)
+									|| !IConstants.XAML_X_ARRAY
+											.equalsIgnoreCase(name)) {
+								Class<?> type = property.getType();
+								if (!Collection.class.isAssignableFrom(type)) {
+									doCreate(value, (XamlElement) child, null,
+											EMPTY_MAP);
+								}
+							}
+						}
+					}
+				}
+			}
+
+			if (attribute.attributeNames(IConstants.XWT_NAMESPACE).size() > 0) {
+				IMetaclass propertyMetaclass = loader.getMetaclass(property
+						.getType());
+				if (value == null) {
+					value = property.getValue(target);
+				}
+				if (value != null) {
+					Map<String, IProperty> delayedAttributes = new HashMap<String, IProperty>();
+					init(propertyMetaclass, value, attribute, delayedAttributes);
+					iniDelayedAttribute(metaclass, target, element, null,
+							delayedAttributes);
+				}
+			}
+		} catch (Exception e) {
+			if (e instanceof RuntimeException) {
+				RuntimeException exception = (RuntimeException) e;
+				throw exception;
+			}
+			throw new XWTException(e);
+		}
+	}
+
+	protected boolean isChildTypeCompatible(XamlAttribute attribute, Class<?> type) {
+		EList<XamlElement> children = attribute.getChildNodes();
+		if (children.size() != 1) {
+			return false;
+		}
+		XamlElement child = children.get(0);
+		String name = child.getName();
+		String namespace = child.getNamespace();
+		IMetaclass metaclass = loader.getMetaclass(name, namespace);
+		if (metaclass == null) {
+			return false;
+		}
+		return type.isAssignableFrom(metaclass.getType());
+	}
+	
+	/**
+	 * @param contentValue
+	 * @return
+	 */
+	protected String getSourceURL(String contentValue) {
+		URL url = null;
+		try {
+			url = new URL(contentValue);
+		} catch (MalformedURLException e) {
+			if (!contentValue.startsWith("/")) {
+				contentValue = "/" + contentValue;
+			}
+			ILoadingContext loadingContext = loader.getLoadingContext();
+			URL resource = loadingContext.getResource(contentValue);
+			if (resource == null) {
+				// try {
+				// resource = new URL(context.getResourcePath() + contentValue);
+				// } catch (MalformedURLException e1) {
+				// }
+			}
+			return resource.toString();
+		}
+		if (url != null) {
+			return url.toString();
+		}
+		return contentValue;
+	}
+
+	protected Class<?> getJavaType(XamlNode element) {
+		if (!(element instanceof XamlElement)) {
+			return null;
+		}
+		String name = element.getName();
+		String namespace = element.getNamespace();
+		if (IConstants.XWT_X_NAMESPACE.equalsIgnoreCase(namespace)
+				&& IConstants.XAML_X_NULL.equalsIgnoreCase(name)) {
+			return null;
+		}
+		IMetaclass metaclass = loader.getMetaclass(name, namespace);
+		if (metaclass == null) {
+			return null;
+		}
+		return metaclass.getType();
+	}
+
+	protected boolean isAssignableFrom(XamlNode element, Class<?> type) {
+		Class<?> targetType = getJavaType(element);
+		if (targetType == null) {
+			return false;
+		}
+		return targetType.isAssignableFrom(type);
+	}
+
+	protected Object getStaticValue(XamlNode child) {
+		XamlNode[] children = child.getChildNodes().toArray(new XamlNode[0]);
+		if (children.length == 1) {
+			XamlElement element = (XamlElement) children[0];
+			if (element != null) {
+				return XWTClassLoaderUtil.loadStaticMember(
+						loader.getLoadingContext(), element);
+			}
+		}
+		return null;
+	}
+
+	protected String getImagePath(String contentValue) {
+		try {
+			File file = new File(contentValue);
+			if (file.exists()) {
+				return file.toURI().toURL().toString();
+			}
+			if (!contentValue.startsWith("/")) {
+				contentValue = "/" + contentValue;
+			}
+			ILoadingContext loadingContext = loader.getLoadingContext();
+			URL resource = loadingContext.getResource(contentValue);
+			if (resource == null) {
+				URL resourcePath = loader.getResourcePath();
+				String fPath = resourcePath.getFile();
+				String absolutePath = PathHelper.getAbsolutePath(fPath,
+						contentValue);
+				if ((file = new File(absolutePath)).exists()) {
+					return file.toURI().toURL().toString();
+				}
+				resource = new URL(absolutePath);
+			}
+			return resource.toString();
+		} catch (MalformedURLException e) {
+			return contentValue;
+		}
+	}
+
+	protected String removeSubString(String str, String subString) {
+		StringBuffer stringBuffer = new StringBuffer();
+		int lenOfsource = str.length();
+		int i;
+		int posStart;
+		for (posStart = 0; (i = str.indexOf(subString, posStart)) >= 0; posStart = i
+				+ subString.length()) {
+			stringBuffer.append(str.substring(posStart, i));
+		}
+		if (posStart < lenOfsource) {
+			stringBuffer.append(str.substring(posStart));
+		}
+		return stringBuffer.toString();
+	}
+
+	protected String getContentValue(String text) {
+		StringBuffer stringBuffer = new StringBuffer();
+		String subString = "SWT.";
+		String str = XWTMaps.getCombAccelerator(text);
+
+		if (str.contains(subString)) {
+			str = removeSubString(str, subString);
+		}
+		if (str.contains("'")) {
+			str = removeSubString(str, "'");
+		}
+		if (str.contains(" ")) {
+			str = removeSubString(str, " ");
+		}
+		if (str.contains("|")) {
+			str = str.replace('|', '+');
+		}
+		stringBuffer.append(str);
+		return stringBuffer.toString();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/XWTClassLoaderUtil.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/XWTClassLoaderUtil.java
new file mode 100755
index 0000000..f164d62
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/XWTClassLoaderUtil.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.loader;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.ILoadingContext;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+public class XWTClassLoaderUtil extends org.eclipse.xwt.internal.utils.ClassLoaderUtil {
+
+	static public Object loadStaticMember(ILoadingContext loadingContext, XamlNode element) {
+		String name = element.getName();
+		String namespace = element.getNamespace();
+		Object value = doLoadMember(loadingContext, name, namespace);
+		if (value != null) {
+			return value;
+		}
+		String content = element.getValue();
+		if (content == null) {
+			XamlNode member = element.getAttribute(IConstants.XWT_NAMESPACE, IConstants.XAML_X_STATIC_MEMBER);
+			if (member == null) {
+				member = element;
+			}
+			if (member != null) {
+				content = member.getValue();
+				if (content == null) {
+					for (XamlNode documentObject : member.getChildNodes()) {
+						String ns = documentObject.getNamespace();
+						String n = documentObject.getName();
+						return doLoadMember(loadingContext, n, ns);
+					}
+				}
+			}
+		} else {
+			if (IConstants.XAML_X_STATIC.equals(name) && IConstants.XWT_X_NAMESPACE.equals(namespace)) {
+				namespace = IConstants.XWT_NAMESPACE;
+				return doLoadMember(loadingContext, content, namespace);
+			}
+		}
+		// TODO
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/XWTProxy.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/XWTProxy.java
new file mode 100755
index 0000000..47cd005
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/XWTProxy.java
@@ -0,0 +1,550 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.loader;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.IXWTLoader;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTLoaderManager;
+import org.eclipse.xwt.internal.utils.UserData;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.xwt.metadata.ModelUtils;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.CoolBar;
+import org.eclipse.swt.widgets.Decorations;
+import org.eclipse.swt.widgets.Layout;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.TabFolder;
+import org.eclipse.swt.widgets.TabItem;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.tools.ui.designer.core.util.swt.SWTTools;
+import org.eclipse.xwt.tools.ui.designer.swt.CoolBarHelper;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTModelUtil;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class XWTProxy {
+
+	public static final Point DEFAULT_SIZE = new Point(200, 100);
+
+	private final ResourceVisitor resourceVisitor;
+	private Shell device;
+
+	private Map<XamlNode, Object> componentsMap = new HashMap<XamlNode, Object>();
+
+	private Object rootComponent = null;
+	private Map<String, Object> options;
+
+	public XWTProxy(IFile file) {
+		// Register XWTVisualLoader when the designer is initialized, so we can
+		// share to use this Loader.
+		IXWTLoader xwtLoader = XWTLoaderManager.getActive();
+		if (xwtLoader == null || !(xwtLoader instanceof XWTVisualLoader)) {
+			xwtLoader = new XWTVisualLoader(file);
+			XWTLoaderManager.setActive(xwtLoader, true);
+		}
+		resourceVisitor = new ResourceVisitor((XWTVisualLoader) xwtLoader);
+		options = new HashMap<String, Object>();
+		options.put(IXWTLoader.DESIGN_MODE_PROPERTY, Boolean.TRUE);
+	}
+
+	public Object load(XamlElement node, Map<String, Object> options) {
+		Object result = resourceVisitor.createCLRElement(node, options);
+		if (result instanceof Widget) {
+			buildComponentMap((Widget) result);
+		}
+		return result;
+	}
+
+	public Object load(XamlDocument document) {
+		if (document == null) {
+			return null;
+		}
+		XamlElement element = document.getRootElement();
+		if (element == null) {
+			return null;
+		}
+		if (device == null || device.isDisposed()) {
+			device = new Shell(SWT.NO_TRIM);
+		}
+		device.setSize(0, 0);
+		componentsMap.clear();
+		if (!"shell".equalsIgnoreCase(element.getName())) {
+			Shell shell = new Shell(device);
+			Point offset = SWTTools.getOffset(shell);
+			shell.setLocation(-offset.x, -offset.y);
+			shell.setSize(DEFAULT_SIZE);
+			options.put(IXWTLoader.CONTAINER_PROPERTY, shell);
+		} else {
+			options.put(IXWTLoader.CONTAINER_PROPERTY, device);
+		}
+		rootComponent = load(element, options);
+		if (rootComponent == null) {
+			return null;
+		}
+		Control control = null;
+		if (rootComponent instanceof Shell) {
+			Shell shell = (Shell) rootComponent;
+			// 1.location
+			XamlAttribute bounds = element.getAttribute("bounds");
+			XamlAttribute location = element.getAttribute("location");
+			if (bounds == null && location == null) {
+				shell.setLocation(0, 0);
+			}
+		}
+		if (rootComponent instanceof Control) {
+			control = (Control) rootComponent;
+			layout(control);
+		} else if (rootComponent instanceof Viewer) {
+			control = ((Viewer) rootComponent).getControl();
+		}
+		layout(control);
+		// control.getShell().open();
+		device.open();
+		device.setVisible(false);
+		buildComponentMap(rootComponent);
+		return rootComponent;
+	}
+
+	public void layout(Control control) {
+		if (control == null || control.isDisposed() || control == device) {
+			return;
+		}
+		if (control instanceof Composite) {
+			Composite composite = (Composite) control;
+			Layout layout = composite.getLayout();
+			if (layout != null) {
+				composite.layout(true, true);
+			} /*
+			 * else { control.pack(); }
+			 */
+			Control[] childs = composite.getChildren();
+			for (int i = 0; i < childs.length; i++) {
+				if (childs[i] instanceof CoolBar)
+					CoolBarHelper.layout((CoolBar) childs[i]);
+			}
+		}
+		if (control instanceof CoolBar) {
+			CoolBarHelper.layout((CoolBar) control);
+		}
+		if (control == rootComponent && autoSize(getModel(control))) {
+			Point size = control.computeSize(SWT.DEFAULT, SWT.DEFAULT);
+			if (control instanceof Composite) {
+				Composite composite = (Composite) control;
+				if (composite.getChildren().length == 0) {
+					size.x = Math.max(size.x, DEFAULT_SIZE.x);
+					size.y = Math.max(size.y, DEFAULT_SIZE.y);
+				}
+			}
+			control.setSize(size);
+
+			if (control instanceof Composite) {
+
+				((Composite) control).layout();
+
+			}
+		}
+		layout(control.getParent());
+	}
+
+	public Object getRoot() {
+		return rootComponent;
+	}
+
+	protected boolean autoSize(XamlNode xamlNode) {
+		if (xamlNode == null) {
+			return false;
+		}
+		XamlAttribute bounds = xamlNode.getAttribute("bounds");
+		if (bounds == null) {
+			bounds = xamlNode.getAttribute("bounds", IConstants.XWT_NAMESPACE);
+		}
+		XamlAttribute size = xamlNode.getAttribute("size");
+		if (size == null) {
+			size = xamlNode.getAttribute("size", IConstants.XWT_NAMESPACE);
+		}
+		return bounds == null && size == null;
+	}
+
+	public boolean shouldPack(XamlElement element) {
+		return autoSize(element) && !element.getChildNodes().isEmpty();
+	}
+
+	public Object createWidget(Object parent, XamlElement node) {
+		Map<String, Object> options = new HashMap<String, Object>();
+		options.put(IXWTLoader.CONTAINER_PROPERTY, parent);
+		return load(node, options);
+	}
+
+	// public void orderParent(Widget widget) {
+	// Widget parent = null;
+	// if (widget instanceof Control) {
+	// parent = ((Control) widget).getParent();
+	// } else if (widget instanceof Item) {
+	// try {
+	// Method getParentMethod = widget.getClass().getDeclaredMethod("getParent",
+	// new Class<?>[0]);
+	// Object obj = getParentMethod.invoke(widget, new Object[0]);
+	// if (obj != null && obj instanceof Widget) {
+	// parent = (Widget) obj;
+	// }
+	// } catch (Exception e) {
+	// }
+	// }
+	// if (parent != null) {
+	// WidgetOrder.order(parent);
+	// }
+	// }
+
+	public Object getComponent(EObject node) {
+		return componentsMap.get(node);
+	}
+
+	public Object getComponent(EObject node, boolean loadOnDemand) {
+		Object component = getComponent(node);
+		if (!loadOnDemand) {
+			return component;
+		} else if (isNull(component)) {
+			EObject container = node.eContainer();
+			while (container != null && !(container instanceof XamlElement)) {
+				container = container.eContainer();
+			}
+			if (container != null) {
+				Object parentComponent = getComponent(container, loadOnDemand);
+				if (!isNull(parentComponent)) {
+					component = createWidget(parentComponent,
+							(XamlElement) node);
+				}
+			}
+		}
+		return component;
+	}
+
+	public boolean isNull(Object component) {
+		if (component == null) {
+			return true;
+		} else if (component instanceof Widget) {
+			return ((Widget) component).isDisposed();
+		} else if (component instanceof Viewer) {
+			return ((Viewer) component).getControl() == null
+					|| ((Viewer) component).getControl().isDisposed();
+		}
+		return false;
+	}
+
+	private void buildComponentMap(Object component) {
+		if (component == null) {
+			return;
+		}
+		XamlNode key = null;
+		Widget widget = null;
+		if (component instanceof Viewer) {
+			widget = ((Viewer) component).getControl();
+			key = (XamlNode) ((Viewer) component)
+					.getData(ResourceVisitor.ELEMENT_KEY);
+			if (key != null) {
+				componentsMap.put(key, component);
+				key = XWTModelUtil.getAdaptableAttribute(key, "control",
+						IConstants.XWT_NAMESPACE);
+			}
+		} else if (component instanceof Widget) {
+			widget = (Widget) component;
+			key = (XamlNode) widget.getData(ResourceVisitor.ELEMENT_KEY);
+		}
+		if (key != null) {
+			componentsMap.put(key, widget);
+		}
+		if (widget != null && !widget.isDisposed()) {
+			Widget[] children = SWTTools.getChildren(widget);
+			for (Widget child : children) {
+				Object viewer = UserData.getLocalViewer(child);
+				if (viewer != null) {
+					buildComponentMap(viewer);
+				} else {
+					buildComponentMap(child);
+				}
+			}
+		}
+	}
+
+	public Object doCreate(XamlElement element) {
+		try {
+			return resourceVisitor.doCreate(null, element, null,
+					Collections.EMPTY_MAP);
+		} catch (Exception e) {
+			return null;
+		}
+	}
+
+	/**
+	 * @param attrValue
+	 * @return
+	 */
+	public static Object createValue(XamlElement element) {
+		return new XWTProxy(null).doCreate(element);
+	}
+
+	public boolean isDisposed() {
+		return device == null || device.isDisposed();
+	}
+
+	public boolean reset() {
+		return dispose();
+	}
+
+	public boolean dispose() {
+		return destroy(rootComponent) && destroy(device);
+	}
+
+	public boolean destroy(Object component) {
+		if (component == null) {
+			return false;
+		} else if (component instanceof Widget) {
+			Widget widget = (Widget) component;
+			XamlNode model = getModel(widget);
+			if (model != null) {
+				componentsMap.remove(model);
+			}
+			if (widget instanceof Menu) {
+				Decorations parent = ((Menu) widget).getParent();
+				if (parent instanceof Shell) {
+					Menu menuBar = ((Shell) parent).getMenuBar();
+					if (menuBar == widget) {
+						((Shell) parent).setMenuBar(null);
+					}
+				}
+			}
+			widget.dispose();
+		} else if (component instanceof Viewer) {
+			destroy(((Viewer) component).getControl());
+		}
+		component = null;
+		return true;
+	}
+
+	/**
+	 * This method only deal with general attribute. The style attribute is not
+	 * its duty.
+	 * 
+	 * @param object
+	 * @param attribute
+	 */
+	public boolean removeValue(Object object, XamlAttribute attribute) {
+		// TODO: At present, only the properties of a Widget Object can be
+		// removed(replaced with a default one). We should take care of JFace
+		// Viewers.
+		if (!(object instanceof Widget) && "style".equals(attribute.getName())) {
+			return false;
+		}
+		IMetaclass metaclass = XWT.getMetaclass(object);
+		if (metaclass == null) {
+			return false;
+		}
+		Object defaultValue = getDefaultValue(object, attribute);
+		try {
+			String name = ModelUtils.normalizePropertyName(attribute.getName());
+			IProperty property = metaclass.findProperty(name);
+			if (property != null) {
+				property.setValue(object, defaultValue);
+				return true;
+			}
+		} catch (Exception e) {
+		}
+		return false;
+	}
+
+	public Object getDefaultValue(Object object, XamlAttribute attribute) {
+		if (object == null || attribute == null || attribute.getName() == null) {
+			return null;
+		}
+		// we need to handle this case manually since the shell is never open.
+		// all widgets are not visible
+		String name = attribute.getName();
+		if (object instanceof Widget && "visible".equalsIgnoreCase(name)
+				&& IConstants.XWT_NAMESPACE.endsWith(attribute.getNamespace())) {
+			return true;
+		}
+		XamlNode model = null;
+		if (object instanceof Widget) {
+			model = getModel((Widget) object);
+		}
+		if (model == null) {
+			EObject container = attribute.eContainer();
+			if (container instanceof XamlElement) {
+				model = (XamlElement) container;
+			}
+		}
+		if (model == null) {
+			return null;
+		}
+		XamlElement newModel = (XamlElement) EcoreUtil.copy(model);
+		IMetaclass metaclass = XWTUtility.getMetaclass(newModel);
+		if (metaclass == null
+				|| !Control.class.isAssignableFrom(metaclass.getType())) {
+			return null;
+		}
+		Shell shell = new Shell(device);
+		Object tempObj = createWidget(shell, (XamlElement) EcoreUtil
+				.copy(model));
+		if (tempObj == null || !(tempObj instanceof Widget)) {
+			return false;
+		}
+		try {
+			if ("style".equalsIgnoreCase(name)
+					&& IConstants.XWT_X_NAMESPACE.endsWith(attribute
+							.getNamespace())) {
+				return ((Widget) tempObj).getStyle();
+			}
+			IProperty p = metaclass.findProperty(name);
+			if (p != null) {
+				return p.getValue(tempObj);
+			}
+		} catch (Exception e) {
+		} finally {
+			destroy(tempObj);
+			destroy(shell);
+		}
+		return null;
+	}
+
+	public boolean initAttribute(Object component, XamlAttribute attribute) {
+		try {
+			XamlElement container = (XamlElement) attribute.eContainer();
+			IMetaclass metaclass = XWTUtility.getMetaclass(container);
+			String attrName = attribute.getName();
+			String namespace = attribute.getNamespace();
+			if (container != null && metaclass != null && attrName != null) {
+				resourceVisitor.initAttribute(metaclass, component, container,
+						namespace, attrName);
+				buildComponentMap(component);
+				return true;
+			}
+		} catch (Exception e) {
+		}
+		return false;
+	}
+
+	/**
+	 * @return
+	 */
+	public String getClr() {
+		if (rootComponent == null) {
+			return null;
+		}
+		Widget widget = null;
+		if (rootComponent instanceof Widget) {
+			widget = (Widget) rootComponent;
+		} else if (rootComponent instanceof Viewer) {
+			widget = ((Viewer) rootComponent).getControl();
+		}
+		if (widget != null && !widget.isDisposed()) {
+			Object clr = UserData.getCLR(widget);
+			if (clr != null) {
+				return clr.getClass().getName();
+			}
+		}
+		return null;
+	}
+
+	public static XamlNode getModel(Object component) {
+		if (component == null) {
+			return null;
+		}
+		if (component instanceof Widget && !((Widget) component).isDisposed()) {
+			return (XamlNode) ((Widget) component)
+					.getData(ResourceVisitor.ELEMENT_KEY);
+		} else if (component instanceof Viewer) {
+			return (XamlNode) ((Viewer) component)
+					.getData(ResourceVisitor.ELEMENT_KEY);
+		}
+		return null;
+	}
+
+	public boolean removeLayout(Composite composite) {
+		if (composite == null || composite.isDisposed()) {
+			return false;
+		}
+		composite.setLayout(null);
+		for (Control control : composite.getChildren()) {
+			control.setLayoutData(null);
+		}
+		return true;
+	}
+
+	public boolean recreate(Widget widget) {
+		// cache runtime properties
+		XamlNode model = null;
+		if (widget != null && !widget.isDisposed()) {
+			model = getModel(widget);
+		}
+
+		if (model == null) {
+			return false;
+		}
+
+		// in case of SashFrom 
+		if (widget instanceof Control) {
+			Control control = (Control) widget;
+			Composite composite = control.getParent();
+			if (composite instanceof SashForm) {
+				
+			}
+		}
+	
+		// reload
+		destroy(rootComponent);
+		componentsMap.clear();
+		load(model.getOwnerDocument());
+
+		// try to restore some runtime properties.
+		if (model != null) {
+			widget = (Widget) componentsMap.get(model);
+			if (widget instanceof TabItem) {
+				TabItem tabItem = (TabItem) widget;
+				tabItem.getParent().setSelection(tabItem);
+			} else if (widget instanceof Control) {
+				Composite parent = ((Control) widget).getParent();
+				if (parent instanceof TabFolder) {
+					TabFolder tabFolder = (TabFolder) parent;
+					for (TabItem item : tabFolder.getItems()) {
+						if (item.getControl() == widget) {
+							tabFolder.setSelection(item);
+							break;
+						}
+					}
+				}
+			}
+		}
+		return widget != null && !widget.isDisposed();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/XWTVisualLoader.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/XWTVisualLoader.java
new file mode 100755
index 0000000..5d64e31
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/XWTVisualLoader.java
@@ -0,0 +1,175 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.loader;
+
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.xwt.XWTLoader;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.xwt.utils.PathHelper;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
+import org.eclipse.xwt.tools.ui.designer.editor.model.XWTModelBuilder;
+import org.eclipse.xwt.tools.ui.designer.loader.metadata.HeightProperty;
+import org.eclipse.xwt.tools.ui.designer.loader.metadata.WidthProperty;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+import org.eclipse.xwt.ui.utils.ProjectContext;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class XWTVisualLoader extends XWTLoader {
+
+	private static IProperty widthProperty;
+	private static IProperty heightProperty;
+	private IFile file;
+
+	public XWTVisualLoader(IFile file) {
+		if (file != null && file.exists()) {
+			IJavaProject project = JavaCore.create(file.getProject());
+			if (project != null && project.exists()) {
+				ProjectContext context = ProjectContext.getContext(project);
+				setLoadingContext(context);
+			}
+			this.file = file;
+		}
+	}
+
+	public URL getResourcePath() {
+		if (file != null && file.exists()) {
+			try {
+				return file.getLocation().toFile().toURI().toURL();
+			} catch (MalformedURLException e) {
+			}
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.xwt.XWTLoader#loadWithOptions(java.io.InputStream, java.net.URL, java.util.Map)
+	 */
+	public synchronized Object loadWithOptions(InputStream stream, URL base, Map<String, Object> options)
+			throws Exception {
+		// FIXME:
+		return super.loadWithOptions(stream, base, options);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.xwt.XWTLoader#loadWithOptions(java.net.URL, java.util.Map)
+	 */
+	public synchronized Control loadWithOptions(URL url, Map<String, Object> options) throws Exception {
+		IWorkspace workspace = ResourcesPlugin.getWorkspace();
+		IWorkspaceRoot root = workspace.getRoot();
+		String fileStr = url.getFile();
+		if (fileStr.indexOf(PathHelper.WHITE_SPACE_ASCII) != -1) {
+			fileStr = fileStr.replace(PathHelper.WHITE_SPACE_ASCII, " ");
+		}
+		IFile file = root.getFileForLocation(new Path(fileStr));
+		if (file != null) {
+			try {
+				// the url given an binary file of project, we need find the source file of it and the load and open.
+				IProject project = file.getProject();
+				String fullPath = file.getFullPath().toString();
+				IJavaProject javaProject = JavaCore.create(project);
+				String outputPath = javaProject.getOutputLocation().toString();
+				if (fullPath != null && outputPath != null && fullPath.startsWith(outputPath)) {
+					String fileSourcePath = fullPath.substring(outputPath.length());
+					IPackageFragmentRoot[] allPackageFragmentRoots = javaProject.getAllPackageFragmentRoots();
+					for (IPackageFragmentRoot pRoot : allPackageFragmentRoots) {
+						if (pRoot.getKind() == IPackageFragmentRoot.K_SOURCE) {
+							IFolder resource = (IFolder) pRoot.getResource();
+							IFile sourceFile = resource.getFile(new Path(fileSourcePath));
+							if (sourceFile != null && sourceFile.exists()) {
+								file = sourceFile;
+								break;
+							}
+						}
+					}
+				}
+			} catch (Exception e) {
+			}
+		}
+		if (file != null) {
+			IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+			IEditorPart activeEditor = activePage.getActiveEditor();
+			try {
+				XWTDesigner designer = (XWTDesigner) activePage.openEditor(new FileEditorInput(file),
+						XWTDesigner.EDITOR_ID, false);
+				XamlDocument xamlDocument = (XamlDocument) designer.getDocumentRoot();
+				XWTModelBuilder builder = null;
+				if (xamlDocument == null) {
+					builder = new XWTModelBuilder();
+					builder.doLoad(designer, null);
+					xamlDocument = builder.getDiagram();
+				}
+				Control control = (Control) new XWTProxy(file).load(xamlDocument.getRootElement(), options);
+				if (builder != null) {
+					builder.dispose();
+				}
+				return control;
+			} finally {
+				activePage.activate(activeEditor);
+			}
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.xwt.XWTLoader#registerMetaclass(java.lang.Class)
+	 */
+	public synchronized IMetaclass registerMetaclass(Class<?> type) {
+		IMetaclass metaclass = super.registerMetaclass(type);
+		if (metaclass != null && type != null && Control.class.isAssignableFrom(type)) {
+			IProperty[] properties = metaclass.getProperties();
+			if (properties != null) {
+				if (widthProperty == null) {
+					widthProperty = new WidthProperty();
+				}
+				if (heightProperty == null) {
+					heightProperty = new HeightProperty();
+				}
+				List<IProperty> propList = Arrays.asList(properties);
+				if (!propList.contains(widthProperty)) {
+					metaclass.addProperty(widthProperty);
+				}
+				if (!propList.contains(heightProperty)) {
+					metaclass.addProperty(heightProperty);
+				}
+			}
+		}
+		return metaclass;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/metadata/HeightProperty.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/metadata/HeightProperty.java
new file mode 100755
index 0000000..abb8615
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/metadata/HeightProperty.java
@@ -0,0 +1,95 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.loader.metadata;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.xwt.javabean.metadata.properties.AbstractProperty;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.layout.RowData;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Layout;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class HeightProperty extends AbstractProperty {
+
+	public HeightProperty() {
+		super("height", int.class);
+	}
+
+	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+		if (target == null || !Control.class.isAssignableFrom(target.getClass())) {
+			return SWT.DEFAULT;
+		}
+		Control control = (Control) target;
+		int height = control.getSize().y;
+		if (height < 0) {
+			Layout layout = control.getParent().getLayout();
+			Object layoutData = control.getLayoutData();
+			if (layout instanceof GridLayout && layoutData instanceof GridData) {
+				height = ((GridData) layoutData).heightHint;
+			} else if (layout instanceof RowLayout && layoutData instanceof RowData) {
+				height = ((RowData) layoutData).height;
+			} else if (layout instanceof FormLayout && layoutData instanceof FormData) {
+				height = ((FormData) layoutData).height;
+			}
+		}
+		return height;
+	}
+
+	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+		if (target == null || !Control.class.isAssignableFrom(target.getClass())) {
+			return;
+		}
+		if (value == null || !(value instanceof Integer)) {
+			return;
+		}
+		int height = (Integer) value;
+		if (height <= 0) {
+			height = SWT.DEFAULT;
+		}
+		Control control = (Control) target;
+		Layout layout = control.getParent().getLayout();
+		Object layoutData = control.getLayoutData();
+		if (layout == null) {
+			Point size = control.getSize();
+			control.setSize(size.x, height);
+		} else if (layout instanceof GridLayout) {
+			if (layoutData == null || !(layoutData instanceof GridData)) {
+				layoutData = new GridData();
+				control.setLayoutData(layoutData);
+			}
+			((GridData) layoutData).heightHint = height;
+		} else if (layout instanceof RowLayout) {
+			if (layoutData == null || !(layoutData instanceof RowData)) {
+				layoutData = new RowData();
+				control.setLayoutData(layoutData);
+			}
+			((RowData) layoutData).height = height;
+		} else if (layout instanceof FormLayout) {
+			if (layoutData == null || !(layoutData instanceof FormData)) {
+				layoutData = new FormData();
+				control.setLayoutData(layoutData);
+			}
+			((FormData) layoutData).height = height;
+		}
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/metadata/WidthProperty.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/metadata/WidthProperty.java
new file mode 100755
index 0000000..6f67ea5
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/loader/metadata/WidthProperty.java
@@ -0,0 +1,95 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.loader.metadata;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.xwt.javabean.metadata.properties.AbstractProperty;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.layout.RowData;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Layout;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class WidthProperty extends AbstractProperty {
+
+	public WidthProperty() {
+		super("width", int.class);
+	}
+
+	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+		if (target == null || !Control.class.isAssignableFrom(target.getClass())) {
+			return SWT.DEFAULT;
+		}
+		Control control = (Control) target;
+		int width = control.getSize().x;
+		if (width < 0) {
+			Layout layout = control.getParent().getLayout();
+			Object layoutData = control.getLayoutData();
+			if (layout instanceof GridLayout && layoutData instanceof GridData) {
+				width = ((GridData) layoutData).widthHint;
+			} else if (layout instanceof RowLayout && layoutData instanceof RowData) {
+				width = ((RowData) layoutData).width;
+			} else if (layout instanceof FormLayout && layoutData instanceof FormData) {
+				width = ((FormData) layoutData).width;
+			}
+		}
+		return width;
+	}
+
+	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+		if (target == null || !Control.class.isAssignableFrom(target.getClass())) {
+			return;
+		}
+		if (value == null || !(value instanceof Integer)) {
+			return;
+		}
+		int width = (Integer) value;
+		if (width <= 0) {
+			width = SWT.DEFAULT;
+		}
+		Control control = (Control) target;
+		Layout layout = control.getParent().getLayout();
+		Object layoutData = control.getLayoutData();
+		if (layout == null) {
+			Point size = control.getSize();
+			control.setSize(width, size.y);
+		} else if (layout instanceof GridLayout) {
+			if (layoutData == null || !(layoutData instanceof GridData)) {
+				layoutData = new GridData();
+				control.setLayoutData(layoutData);
+			}
+			((GridData) layoutData).widthHint = width;
+		} else if (layout instanceof RowLayout) {
+			if (layoutData == null || !(layoutData instanceof RowData)) {
+				layoutData = new RowData();
+				control.setLayoutData(layoutData);
+			}
+			((RowData) layoutData).width = width;
+		} else if (layout instanceof FormLayout) {
+			if (layoutData == null || !(layoutData instanceof FormData)) {
+				layoutData = new FormData();
+				control.setLayoutData(layoutData);
+			}
+			((FormData) layoutData).width = width;
+		}
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/model/RefreshAdapter.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/model/RefreshAdapter.java
new file mode 100755
index 0000000..599c0e2
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/model/RefreshAdapter.java
@@ -0,0 +1,121 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public abstract class RefreshAdapter extends AdapterImpl {
+
+	private XamlNode source;
+	private boolean isRefreshRequired = true;
+	private List<String> notifyAttributeNames = new ArrayList<String>();
+	private List<XamlAttribute> notifiedAttributes = new ArrayList<XamlAttribute>();
+
+	public RefreshAdapter(XamlNode source, String affectedAttr) {
+		this(source);
+		if (affectedAttr != null) {
+			notifyAttributeNames.add(affectedAttr);
+			listenAttrs();
+		}
+	}
+
+	public RefreshAdapter(XamlNode source) {
+		Assert.isNotNull(source);
+		this.source = source;
+		source.eAdapters().add(this);
+	}
+
+	public void setRefreshRequired(boolean isRefreshRequired) {
+		this.isRefreshRequired = isRefreshRequired;
+	}
+
+	private void listenAttrs() {
+		for (String attrName : notifyAttributeNames) {
+			listenAttr(source.getAttribute(attrName));
+		}
+	}
+
+	private void listenAttr(XamlAttribute attribute) {
+		if (attribute == null || attribute.eAdapters().contains(this)) {
+			return;
+		}
+		attribute.eAdapters().add(this);
+		notifiedAttributes.add(attribute);
+	}
+
+	public void addListenedAttr(String attrName) {
+		if (!notifyAttributeNames.contains(attrName)) {
+			notifyAttributeNames.add(attrName);
+			listenAttrs();
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.emf.common.notify.impl.AdapterImpl#notifyChanged(org.eclipse
+	 * .emf.common.notify.Notification)
+	 */
+	public final void notifyChanged(Notification msg) {
+		if (msg.isTouch()) {
+			return;
+		}
+		if (notifyAttributeNames.isEmpty()) {
+			return;
+		}
+		Object notifier = msg.getNotifier();
+		if (source == notifier) {
+			Object oldValue = msg.getOldValue();
+			Object newValue = msg.getNewValue();
+			if (notifiedAttributes.contains(oldValue)) {
+				if (isRefreshRequired) {
+					performRefresh(msg);
+				}
+			} else if (newValue instanceof XamlAttribute) {
+				String name = ((XamlAttribute) newValue).getName();
+				if (notifyAttributeNames.contains(name)) {
+					listenAttr((XamlAttribute) newValue);
+					if (isRefreshRequired) {
+						performRefresh(msg);
+					}
+				}
+			}
+		} else if (notifiedAttributes.contains(notifier)) {
+			if (isRefreshRequired) {
+				performRefresh(msg);
+			}
+		}
+	}
+
+	public void dispose() {
+		source.eAdapters().remove(this);
+		for (XamlAttribute attr : notifiedAttributes) {
+			attr.eAdapters().remove(this);
+		}
+		notifiedAttributes.clear();
+		notifyAttributeNames.clear();
+	}
+
+	protected abstract void performRefresh(Notification msg);
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/model/XamlDocumentProvider.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/model/XamlDocumentProvider.java
new file mode 100755
index 0000000..0a7c68a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/model/XamlDocumentProvider.java
@@ -0,0 +1,217 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.model;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+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.Assert;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.xwt.internal.xml.Attribute;
+import org.eclipse.xwt.internal.xml.DocumentObject;
+import org.eclipse.xwt.internal.xml.Element;
+import org.eclipse.xwt.internal.xml.ElementManager;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public class XamlDocumentProvider {
+
+	private IFile file;
+	private XamlDocument document;
+	private boolean needReload = false;
+
+	private XamlDocumentProvider(IFile file) {
+		Assert.isTrue(file != null && file.exists());
+		this.file = file;
+		ResourcesPlugin.getWorkspace().addResourceChangeListener(
+				new IResourceChangeListener() {
+					public void resourceChanged(IResourceChangeEvent event) {
+						performResourceChanged(event);
+					}
+				});
+	}
+
+	private void performResourceChanged(IResourceChangeEvent event) {
+		if (file == null || !file.exists()) {
+			return;
+		}
+		IResourceDelta delta = event.getDelta();
+		try {
+			delta.accept(new IResourceDeltaVisitor() {
+				public boolean visit(IResourceDelta delta) throws CoreException {
+					IResource resource = delta.getResource();
+					if (resource != null
+							&& file.getFullPath()
+									.equals(resource.getFullPath())) {
+						needReload = true;
+						return false;// break
+					}
+					return true;
+				}
+			});
+		} catch (CoreException e) {
+		}
+	}
+
+	public XamlDocument getDocument() {
+		if (document == null) {
+			document = XamlFactory.eINSTANCE.createXamlDocument();
+		}
+		boolean reload = needReload || document.getRootElement() == null;
+		if (reload) {
+			reload();
+			needReload = false;
+		}
+		return document;
+	}
+
+	public boolean reload() {
+		if (document == null) {
+			return false;
+		}
+		try {
+			URL url = file.getLocationURI().toURL();
+			if (url == null) {
+				return false;
+			}
+			ElementManager manager = new ElementManager();
+			Element element = manager.load(file.getContents(), url);
+
+			XamlElement rootElement = document.getRootElement();
+			if (rootElement == null) {
+				rootElement = XamlFactory.eINSTANCE.createXamlElement();
+			}
+			updateNode(rootElement, element);
+			if (rootElement.eContainer() == null) {
+				document.setRootElement(rootElement);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+			return false;
+		}
+		return true;
+	}
+
+	private void updateNode(XamlNode node, DocumentObject obj) {
+		if (node == null || obj == null) {
+			throw new NullPointerException();
+		}
+		String namespace = obj.getNamespace();
+		// 1. basic settings
+		node.setId(obj.getId());
+		node.setName(obj.getName());
+		node.setNamespace(namespace);
+		node.setValue(obj.getContent());
+
+		// 2. Attributes
+		if (obj instanceof Element) {
+			Element element = (Element) obj;
+			List<XamlAttribute> oldAttributes = new ArrayList<XamlAttribute>(
+					node.getAttributes());
+			oldAttributes.removeAll(updateAttributes(node, element, null));
+
+			String[] attributeNamespaces = element.attributeNamespaces();
+			for (String ns : attributeNamespaces) {
+				oldAttributes.removeAll(updateAttributes(node, element, ns));
+			}
+			for (XamlAttribute forRemove : oldAttributes) {
+				node.getAttributes().remove(forRemove);
+			}
+		}
+
+		// 3. Children
+		List<XamlElement> oldChildren = new ArrayList<XamlElement>(node
+				.getChildNodes());
+		oldChildren.removeAll(updateChildNodes(node, obj));
+		for (XamlElement forRemove : oldChildren) {
+			node.getChildNodes().remove(forRemove);
+		}
+	}
+
+	private List<XamlElement> updateChildNodes(XamlNode node, DocumentObject obj) {
+		List<XamlElement> updates = new ArrayList<XamlElement>();
+		DocumentObject[] children = obj.getChildren();
+		for (int index = 0; index < children.length; index++) {
+			DocumentObject documentObject = children[index];
+			XamlElement child = node.getChild(index);
+			if (child == null) {
+				child = XamlFactory.eINSTANCE.createXamlElement();
+			}
+			updateNode(child, documentObject);
+			if (child.eContainer() == null) {
+				node.getChildNodes().add(child);
+			}
+			updates.add(child);
+		}
+		return updates;
+	}
+
+	private List<XamlAttribute> updateAttributes(XamlNode node,
+			Element element, String namespace) {
+		if (node == null || element == null) {
+			throw new NullPointerException();
+		}
+		List<XamlAttribute> attrs = new ArrayList<XamlAttribute>();
+		String[] attributeNames = namespace == null ? element.attributeNames()
+				: element.attributeNames(namespace);
+		for (String attrName : attributeNames) {
+			Attribute attribute = namespace == null ? element
+					.getAttribute(attrName) : element.getAttribute(namespace,
+					attrName);
+			if (attribute == null) {
+				continue;
+			}
+			XamlAttribute xa = node.getAttribute(attrName, namespace);
+			if (xa == null) {
+				xa = XamlFactory.eINSTANCE.createAttribute(attrName, namespace);
+			}
+			updateNode(xa, attribute);
+			if (xa.eContainer() == null) {
+				node.getAttributes().add(xa);
+			}
+			attrs.add(xa);
+		}
+		return attrs;
+	}
+
+	public static XamlDocument getDocument(IFile file) {
+		return getProvider(file).getDocument();
+	}
+
+	public static XamlDocumentProvider getProvider(IFile file) {
+		XamlDocumentProvider p = providers.get(file);
+		if (p == null) {
+			providers.put(file, p = new XamlDocumentProvider(file));
+		}
+		return p;
+	}
+
+	private static final Map<IFile, XamlDocumentProvider> providers = new HashMap<IFile, XamlDocumentProvider>(
+			1);
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/BindingConnectionEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/BindingConnectionEditPart.java
new file mode 100755
index 0000000..6599c5b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/BindingConnectionEditPart.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.editparts.AbstractConnectionEditPart;
+import org.eclipse.gef.editpolicies.ConnectionEndpointEditPolicy;
+import org.eclipse.xwt.tools.ui.designer.core.parts.root.BindingLayer;
+import org.eclipse.xwt.tools.ui.designer.databinding.BindingInfo;
+import org.eclipse.xwt.tools.ui.designer.parts.figures.DataBindingConnection;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class BindingConnectionEditPart extends AbstractConnectionEditPart {
+
+	public BindingConnectionEditPart(BindingInfo bindingInfo) {
+		setModel(bindingInfo);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editparts.AbstractConnectionEditPart#activateFigure()
+	 */
+	protected void activateFigure() {
+		getLayer(BindingLayer.ID).add(getFigure());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editparts.AbstractConnectionEditPart#deactivateFigure()
+	 */
+	protected void deactivateFigure() {
+		getLayer(BindingLayer.ID).remove(getFigure());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editparts.AbstractConnectionEditPart#createFigure()
+	 */
+	protected IFigure createFigure() {
+		return new DataBindingConnection((BindingInfo) getModel());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editparts.AbstractEditPart#createEditPolicies()
+	 */
+	protected void createEditPolicies() {
+		// Selection handle edit policy.
+		// Makes the connection show a feedback, when selected by the user.
+		installEditPolicy(EditPolicy.CONNECTION_ENDPOINTS_ROLE, new ConnectionEndpointEditPolicy());
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ColumnEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ColumnEditPart.java
new file mode 100755
index 0000000..91e11d8
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ColumnEditPart.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts;
+
+import org.eclipse.swt.widgets.Item;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ColumnEditPart extends ItemEditPart {
+
+	public ColumnEditPart(Item column, XamlNode model) {
+		super(column, model);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/CompositeEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/CompositeEditPart.java
new file mode 100755
index 0000000..6d0b2a0
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/CompositeEditPart.java
@@ -0,0 +1,138 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.XYLayout;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.SnapToGeometry;
+import org.eclipse.gef.SnapToHelper;
+import org.eclipse.gef.editpolicies.SnapFeedbackPolicy;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Layout;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.tools.ui.designer.core.figures.ContentPaneFigure;
+import org.eclipse.xwt.tools.ui.designer.core.visuals.IVisualInfo;
+import org.eclipse.xwt.tools.ui.designer.core.visuals.swt.CompositeInfo;
+import org.eclipse.xwt.tools.ui.designer.editor.sash.SashFormChildResizableEditPolicy;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.ILayoutEditPolicy;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.LayoutEditPolicyFactory;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class CompositeEditPart extends ControlEditPart {
+	static final int WIDTH = 10;
+
+	private ILayoutEditPolicy layoutEditPolicy;
+
+	public CompositeEditPart(Composite composite, XamlNode model) {
+		super(composite, model);
+		setUseBorder(true);
+	}
+
+	protected IFigure createFigure() {
+		ContentPaneFigure cf = (ContentPaneFigure) super.createFigure();
+		cf.getContentPane().setLayoutManager(new XYLayout());
+		return cf;
+	}
+
+	/**
+	 * @see org.VisualEditPart.xaml.ve.editor.editparts.GraphicalNodeEditPart#createEditPolicies()
+	 */
+	protected void createEditPolicies() {
+		super.createEditPolicies();
+		layoutEditPolicy = LayoutEditPolicyFactory.getLayoutEditPolicy(this);
+		installEditPolicy(EditPolicy.LAYOUT_ROLE, layoutEditPolicy);
+		installEditPolicy("Snap Feedback", new SnapFeedbackPolicy());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#refresh()
+	 */
+	public void refresh() {
+		super.refresh();
+		// When the layout of the Composite is changed, we need to install a new one.
+		ILayoutEditPolicy policy = LayoutEditPolicyFactory.getLayoutEditPolicy(this);
+		if (layoutEditPolicy != null && layoutEditPolicy.getType() != policy.getType()) {
+			removeEditPolicy(EditPolicy.LAYOUT_ROLE);
+			installEditPolicy(EditPolicy.LAYOUT_ROLE, layoutEditPolicy = policy);
+		}
+		if (layoutEditPolicy != null) {
+			layoutEditPolicy.refresh();
+		}
+	}
+
+	public Layout getLayout() {
+		Widget widget = getWidget();
+		if (widget == null || widget.isDisposed() || !(widget instanceof Composite)) {
+			return null;
+		}
+		return ((Composite) widget).getLayout();
+	}
+
+	public XamlElement getLayoutModel() {
+		XamlElement model = (XamlElement) getModel();
+		XamlAttribute attribute = model.getAttribute("layout");
+		if (attribute == null) {
+			return null;
+		}
+		EList<XamlElement> childNodes = attribute.getChildNodes();
+		if (childNodes.size() == 1) {
+			return childNodes.get(0);
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#getAdapter(java.lang.Class)
+	 */
+	public Object getAdapter(Class key) {
+		if (key == SnapToHelper.class && (Boolean) getViewer().getProperty(SnapToGeometry.PROPERTY_SNAP_ENABLED)) {
+			if (layoutEditPolicy != null && layoutEditPolicy.getType() == LayoutType.NullLayout) {
+				return new SnapToGeometry(this);
+			}
+		} else if (key == ILayoutEditPolicy.class) {
+			return layoutEditPolicy;
+		}
+		return super.getAdapter(key);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.soyatec.xaml.ve.xwt.editparts.ControlEditPart#createVisualComponent()
+	 */
+	public IVisualInfo createVisualInfo() {
+		return new CompositeInfo((Composite) getWidget(), isRoot());
+	}
+
+	@Override
+	public EditPart getTargetEditPart(Request request) {
+		if (getParent() instanceof SashFormEditPart) {
+			EditPart editPart = SashFormChildResizableEditPolicy.getTargetEditPart(request, this);
+			if (editPart != null) {
+				return editPart;
+			}
+		}
+		return super.getTargetEditPart(request);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ControlEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ControlEditPart.java
new file mode 100755
index 0000000..e1bf0b5
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ControlEditPart.java
@@ -0,0 +1,106 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts;
+
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.RequestConstants;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.jface.viewers.TextCellEditor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.tools.ui.designer.core.visuals.IVisualInfo;
+import org.eclipse.xwt.tools.ui.designer.core.visuals.swt.ControlInfo;
+import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
+import org.eclipse.xwt.tools.ui.designer.parts.direct.ElementCellEditLocator;
+import org.eclipse.xwt.tools.ui.designer.parts.direct.ElementDirectEditManager;
+import org.eclipse.xwt.tools.ui.designer.policies.ElementDirectEditPolicy;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.ControlLayoutEditPolicy;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class ControlEditPart extends WidgetEditPart {
+
+	protected DirectEditManager manager;
+
+	public ControlEditPart(Control control, XamlNode model) {
+		super(control, model);
+	}
+
+	public void performRequest(Request request) {
+		// Fixed bug: 0000860: the datatime should not have the attribute "text".
+		IProperty property = XWTUtility.getProperty(getCastModel(), "text");
+
+		if (request.getType() == RequestConstants.REQ_OPEN && property != null) {
+			if (manager == null) {
+				IFigure figure = getFigure();
+				manager = new ElementDirectEditManager(this, TextCellEditor.class, new ElementCellEditLocator(figure),
+						figure);
+			}
+			manager.show();
+		}
+		super.performRequest(request);
+	}
+
+	/**
+	 * @see org.soyatec.xaml.ve.editor.editparts.ElementGraphicalEditPart#getVisualInfo()
+	 */
+	public IVisualInfo createVisualInfo() {
+		return new ControlInfo(getWidget(), isRoot());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.soyatec.xaml.ve.xwt.editparts.WidgetEditPart#collectExternalModels()
+	 */
+	protected void collectExternalModels(List<Object> collector) {
+		super.collectExternalModels(collector);
+		Control control = (Control) getWidget();
+		if (control != null && !control.isDisposed()) {
+			Menu menu = control.getMenu();
+			if (menu != null) {
+				Object data = XWTProxy.getModel(menu);
+				if (data != null) {
+					collector.add(data);
+				}
+			}
+		}
+	}
+
+	public boolean isRightToLeft() {
+		Widget widget = getWidget();
+		if (widget == null || widget.isDisposed()) {
+			return false;
+		}
+		return ((widget.getStyle() & SWT.RIGHT_TO_LEFT) != 0);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.soyatec.xaml.ve.editor.editparts.GraphicalNodeEditPart#createEditPolicies()
+	 */
+	protected void createEditPolicies() {
+		installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new ElementDirectEditPolicy());
+		installEditPolicy(EditPolicy.LAYOUT_ROLE, new ControlLayoutEditPolicy());
+		super.createEditPolicies();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/CoolBarEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/CoolBarEditPart.java
new file mode 100755
index 0000000..65b889f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/CoolBarEditPart.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts;
+
+import java.util.List;
+
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.CoolBar;
+import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
+import org.eclipse.xwt.tools.ui.designer.policies.CoolBarEditPolicy;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+public class CoolBarEditPart extends CompositeEditPart {
+
+	public CoolBarEditPart(CoolBar coolBar, XamlNode model) {
+		super(coolBar, model);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.ve.xwt.editparts.WidgetEditPart#collectExternalModels()
+	 */
+	protected void collectExternalModels(List<Object> collector) {
+		CoolBar coolBar = (CoolBar) getWidget();
+		if (coolBar != null && !coolBar.isDisposed()) {
+			Control[] children = coolBar.getChildren();
+			for (Control control : children) {
+				Object data = XWTProxy.getModel(control);
+				if (data != null) {
+					collector.add(data);
+				}
+			}
+		}
+	}
+
+	protected void createEditPolicies() {
+		super.createEditPolicies();
+		installEditPolicy(EditPolicy.LAYOUT_ROLE, new CoolBarEditPolicy());
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/CoolItemEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/CoolItemEditPart.java
new file mode 100755
index 0000000..0a546f6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/CoolItemEditPart.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts;
+
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.swt.widgets.CoolItem;
+import org.eclipse.xwt.tools.ui.designer.policies.CoolItemEditPolicy;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+public class CoolItemEditPart extends ItemEditPart {
+
+	public CoolItemEditPart(CoolItem coolItem, XamlNode model) {
+		super(coolItem, model);
+	}
+
+	protected void createEditPolicies() {
+		super.createEditPolicies();
+		installEditPolicy(EditPolicy.LAYOUT_ROLE, new CoolItemEditPolicy());
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/DataContextEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/DataContextEditPart.java
new file mode 100755
index 0000000..1fa5476
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/DataContextEditPart.java
@@ -0,0 +1,126 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.Ellipse;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.ToolbarLayout;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
+import org.eclipse.xwt.tools.ui.designer.core.editor.IVisualRenderer;
+import org.eclipse.xwt.tools.ui.designer.databinding.BindingHelper;
+import org.eclipse.xwt.tools.ui.designer.databinding.BindingInfo;
+import org.eclipse.xwt.tools.ui.designer.databinding.DataContext;
+import org.eclipse.xwt.tools.ui.designer.databinding.IObservable;
+import org.eclipse.xwt.tools.ui.designer.editor.XWTVisualRenderer;
+import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class DataContextEditPart extends AbstractGraphicalEditPart {
+
+	private DataContext dataContext;
+
+	public DataContextEditPart(DataContext dataContext) {
+		setModel(dataContext);
+		this.dataContext = dataContext;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#getModelSourceConnections()
+	 */
+	protected List getModelSourceConnections() {
+		XWTVisualRenderer controlRender = (XWTVisualRenderer) EditDomain.getEditDomain(this).getViewerData(getViewer(), IVisualRenderer.KEY);
+		Object root = controlRender.getRoot();
+		if (root != null && root instanceof Widget) {
+			root = XWTProxy.getModel((Widget) root);
+			EditPart rootEp = (EditPart) getViewer().getEditPartRegistry().get(root);
+			if (rootEp != null) {
+				List<BindingInfo> sources = new ArrayList<BindingInfo>();
+				List<BindingInfo> allBindings = BindingHelper.getBindings(rootEp);
+				for (BindingInfo bindingInfo : allBindings) {
+					IObservable observeModel = bindingInfo.getModel();
+					if (dataContext.equals(observeModel.getSource())) {
+						sources.add(bindingInfo);
+					}
+				}
+				return sources;
+			}
+		}
+		return super.getModelSourceConnections();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#createFigure()
+	 */
+	protected IFigure createFigure() {
+		Ellipse figure = new Ellipse();
+		figure.setAntialias(SWT.ON);
+		figure.setForegroundColor(ColorConstants.blue);
+		figure.setBackgroundColor(ColorConstants.yellow);
+		figure.setLayoutManager(new ToolbarLayout(true));
+		// Label title = new Label("D");
+		// title.setTextAlignment(Label.CENTER);
+		// title.setSize(15, 15);
+		// title.setTextPlacement(PositionConstants.EAST);
+		// figure.add(title);
+		// ImageFigure imageFigure = new ImageFigure(ImageShop.get(ImageShop.IMAGE_OBSERVE_BEANS));
+		// figure.add(imageFigure);
+		Label label = new Label();
+		if (dataContext != null && dataContext.getKey() != null) {
+			label.setText(dataContext.getKey());
+		}
+		figure.setToolTip(label);
+		return figure;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editparts.AbstractEditPart#refreshVisuals()
+	 */
+	protected void refreshVisuals() {
+		GraphicalEditPart parent = (GraphicalEditPart) getParent();
+		Rectangle bounds = parent.getFigure().getBounds().getCopy();
+		Rectangle rect = new Rectangle();
+		rect.setLocation(bounds.x + 1, bounds.y + 1);
+		rect.setSize(16, 16);
+		getFigure().setBounds(rect);
+		super.refreshVisuals();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editparts.AbstractEditPart#createEditPolicies()
+	 */
+	protected void createEditPolicies() {
+
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/DiagramEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/DiagramEditPart.java
new file mode 100755
index 0000000..a991e9c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/DiagramEditPart.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.xwt.tools.ui.designer.core.parts.AbstractDiagramEditPart;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.LayoutEditPolicyFactory;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class DiagramEditPart extends AbstractDiagramEditPart {
+
+	public DiagramEditPart(XamlDocument document) {
+		super(document);
+	}
+
+	/**
+	 * @see org.AbstractDiagramEditPart.xaml.ve.editor.editparts.DiagramGraphicalEditPart#createEditPolicies()
+	 */
+	protected void createEditPolicies() {
+		removeEditPolicy(EditPolicy.LAYOUT_ROLE);
+		installEditPolicy(EditPolicy.LAYOUT_ROLE, LayoutEditPolicyFactory.NULL_LAYOUT);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.gef.editparts.AbstractEditPart#getModelChildren()
+	 */
+	protected List getModelChildren() {
+		XamlDocument model = (XamlDocument) getModel();
+		if (model.getRootElement() != null) {
+			return Collections.singletonList(model.getRootElement());
+		}
+		return super.getModelChildren();
+	}
+
+	public String toString() {
+		return "";
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ExpandBarEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ExpandBarEditPart.java
new file mode 100755
index 0000000..f58c5dc
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ExpandBarEditPart.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts;
+
+import java.util.List;
+
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.ExpandBar;
+import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
+import org.eclipse.xwt.tools.ui.designer.policies.ExpandBarEditPolicy;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author yahong.song@soyatec.com
+ */
+public class ExpandBarEditPart extends CompositeEditPart {
+
+	public ExpandBarEditPart(ExpandBar expandBar, XamlNode model) {
+		super(expandBar, model);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.parts.ControlEditPart#CollectExternalModels()
+	 */
+	protected void collectExternalModels(List<Object> collector) {
+		ExpandBar expandBar = (ExpandBar) getWidget();
+		if (expandBar != null && !expandBar.isDisposed()) {
+			Control[] children = expandBar.getChildren();
+			for (Control control : children) {
+				Object data = XWTProxy.getModel(control);
+				if (data != null) {
+					collector.add(data);
+				}
+			}
+		}
+	}
+
+	protected void createEditPolicies() {
+		super.createEditPolicies();
+		installEditPolicy(EditPolicy.LAYOUT_ROLE, new ExpandBarEditPolicy());
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ExpandItemEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ExpandItemEditPart.java
new file mode 100755
index 0000000..212cdb3
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ExpandItemEditPart.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts;
+
+import org.eclipse.swt.widgets.ExpandItem;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author yahong.song@soyatec.com
+ */
+public class ExpandItemEditPart extends ItemEditPart {
+
+	public ExpandItemEditPart(ExpandItem expandItem, XamlNode model) {
+		super(expandItem, model);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ItemEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ItemEditPart.java
new file mode 100755
index 0000000..ce23fde
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ItemEditPart.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.swt.widgets.Item;
+import org.eclipse.xwt.tools.ui.designer.core.figures.ContentPaneFigure;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ItemEditPart extends WidgetEditPart {
+
+	public ItemEditPart(Item item, XamlNode model) {
+		super(item, model);
+	}
+
+	protected IFigure createFigure() {
+		ContentPaneFigure figure = new ContentPaneFigure();
+		figure.add(new Label());
+		return figure;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/LabelEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/LabelEditPart.java
new file mode 100755
index 0000000..3b1b87c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/LabelEditPart.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts;
+
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class LabelEditPart extends ControlEditPart {
+
+	public LabelEditPart(Label label, XamlNode model) {
+		super(label, model);
+		setUseBorder(true);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/MenuBarEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/MenuBarEditPart.java
new file mode 100755
index 0000000..2275a92
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/MenuBarEditPart.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.XYLayout;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.xwt.tools.ui.designer.core.figures.ContentPaneFigure;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.MenuBarLayoutEditPolicy;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class MenuBarEditPart extends MenuEditPart {
+
+	public MenuBarEditPart(Menu menuBar, XamlNode model) {
+		super(menuBar, model);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.ve.editor.editparts.GraphicalNodeEditPart#createFigure()
+	 */
+	protected IFigure createFigure() {
+		ContentPaneFigure figure = new ContentPaneFigure();
+		RectangleFigure rFigure = new RectangleFigure();
+		rFigure.setFill(false);
+		rFigure.setForegroundColor(ColorConstants.menuBackground);
+		rFigure.setLayoutManager(new XYLayout());
+		figure.setContentPane(rFigure);
+		return figure;
+	}
+
+	protected void createEditPolicies() {
+		super.createEditPolicies();
+		// removeEditPolicy(EditPolicy.LAYOUT_ROLE);
+		installEditPolicy(EditPolicy.LAYOUT_ROLE, new MenuBarLayoutEditPolicy());
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/MenuEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/MenuEditPart.java
new file mode 100755
index 0000000..56874bd
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/MenuEditPart.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts;
+
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.xwt.tools.ui.designer.core.figures.ContentPaneFigure;
+import org.eclipse.xwt.tools.ui.designer.parts.figures.MenuFigure;
+import org.eclipse.xwt.tools.ui.designer.policies.ExpandableEditPolicy;
+import org.eclipse.xwt.tools.ui.designer.policies.MenuLayoutEditPolicy;
+import org.eclipse.xwt.tools.ui.designer.policies.NewNonResizeEditPolicy;
+import org.eclipse.xwt.tools.ui.designer.policies.PolicyConstants;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+public class MenuEditPart extends WidgetEditPart {
+
+	public MenuEditPart(Menu menu, XamlNode model) {
+		super(menu, model);
+	}
+
+	protected void createEditPolicies() {
+		super.createEditPolicies();
+		installEditPolicy(EditPolicy.LAYOUT_ROLE, new MenuLayoutEditPolicy());
+		installEditPolicy(PolicyConstants.EXPANDABLE_EDITPOLICY,
+				new ExpandableEditPolicy());
+		installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+				new NewNonResizeEditPolicy(false));
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.soyatec.xaml.ve.editor.editparts.GraphicalNodeEditPart#createFigure()
+	 */
+	protected IFigure createFigure() {
+		ContentPaneFigure figure = new ContentPaneFigure();
+		figure.setContentPane(new MenuFigure(this));
+		return figure;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart#getModelChildren
+	 * ()
+	 */
+	protected List getModelChildren() {
+		return super.getModelChildren();
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/MenuItemEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/MenuItemEditPart.java
new file mode 100755
index 0000000..dd4b78b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/MenuItemEditPart.java
@@ -0,0 +1,87 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts;
+
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.xwt.tools.ui.designer.core.figures.ContentPaneFigure;
+import org.eclipse.xwt.tools.ui.designer.loader.ResourceVisitor;
+import org.eclipse.xwt.tools.ui.designer.parts.figures.MenuItemFigure;
+import org.eclipse.xwt.tools.ui.designer.policies.MenuItemExpandableEditPolicy;
+import org.eclipse.xwt.tools.ui.designer.policies.PolicyConstants;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+public class MenuItemEditPart extends WidgetEditPart {
+
+	public MenuItemEditPart(MenuItem item, XamlNode model) {
+		super(item, model);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.ve.editor.editparts.GraphicalNodeEditPart#createFigure()
+	 */
+	protected IFigure createFigure() {
+		ContentPaneFigure figure = new ContentPaneFigure();
+		figure.setContentPane(new MenuItemFigure(this));
+		return figure;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.ve.xwt.editparts.WidgetEditPart#collectExternalModels()
+	 */
+	protected void collectExternalModels(List<Object> collector) {
+		MenuItem menuItem = (MenuItem) getWidget();
+		if (menuItem != null) {
+			Menu menu = menuItem.getMenu();
+			if (menu != null) {
+				Object data = menu.getData(ResourceVisitor.ELEMENT_KEY);
+				if (data != null && data instanceof XamlElement) {
+					collector.add(data);
+				}
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#removeChildVisual(org.eclipse.gef.EditPart)
+	 */
+	protected void removeChildVisual(EditPart childEditPart) {
+		IFigure child = ((GraphicalEditPart) childEditPart).getFigure();
+		if (child.getParent() != null) {
+			super.removeChildVisual(childEditPart);
+		}
+		// TODO: handle expandable items.
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.ve.editor.editparts.GraphicalNodeEditPart#createEditPolicies()
+	 */
+	protected void createEditPolicies() {
+		super.createEditPolicies();
+		installEditPolicy(PolicyConstants.EXPANDABLE_EDITPOLICY, new MenuItemExpandableEditPolicy());
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/SashEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/SashEditPart.java
new file mode 100755
index 0000000..5936bfa
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/SashEditPart.java
@@ -0,0 +1,88 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.gef.DragTracker;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.RequestConstants;
+import org.eclipse.gef.SharedCursors;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.UnexecutableCommand;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Cursor;
+import org.eclipse.swt.widgets.Sash;
+import org.eclipse.xwt.tools.ui.designer.parts.misc.DragSashTracker;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jin.liu (jin.liu@soyatec.com)
+ * 
+ */
+public class SashEditPart extends ControlEditPart {
+
+	public SashEditPart(Sash sash, XamlNode model) {
+		super(sash, model);
+		if (model == null) {
+			model = XamlFactory.eINSTANCE.createElement("Sash",
+					IConstants.XWT_NAMESPACE);
+			setModel(model);
+		}
+	}
+	
+	@Override
+	protected IFigure createContentPane() {
+		RectangleFigure rectangle = new RectangleFigure();
+		rectangle.setForegroundColor(ColorConstants.lightGray);
+		rectangle.setFill(true);
+		return rectangle;
+	}
+
+	@Override
+	public Command getCommand(Request request) {
+		if (request.getType().equals(RequestConstants.REQ_DELETE)) {
+			return UnexecutableCommand.INSTANCE;
+		}
+		return super.getCommand(request);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.editparts.AbstractGraphicalEditPart#getDragTracker(org
+	 * .eclipse.gef.Request)
+	 */
+	public DragTracker getDragTracker(Request request) {
+		return new DragSashTracker(this);
+	}
+
+	public Cursor getDefaultCursor() {
+		if (isHorizontal()) {
+			return SharedCursors.SIZENS;			
+		}
+		return SharedCursors.SIZEWE;			
+	}
+	
+	public boolean isHorizontal() {
+		Sash sash = (Sash) getWidget();
+		if (sash != null && !sash.isDisposed()) {
+			return ((sash.getStyle() & SWT.HORIZONTAL) == SWT.HORIZONTAL);
+		}
+		return true;
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/SashFormEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/SashFormEditPart.java
new file mode 100755
index 0000000..50c1f44
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/SashFormEditPart.java
@@ -0,0 +1,110 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts;
+
+import java.util.List;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Sash;
+import org.eclipse.xwt.tools.ui.designer.editor.sash.SashFormLayoutEditPolicy;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jin.liu (jin.liu@soyatec.com)
+ * 
+ */
+public class SashFormEditPart extends CompositeEditPart {
+
+	public SashFormEditPart(SashForm composite, XamlNode model) {
+		super(composite, model);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart#
+	 * createEditPolicies()
+	 */
+	protected void createEditPolicies() {
+		super.createEditPolicies();
+		installEditPolicy(EditPolicy.LAYOUT_ROLE,
+				new SashFormLayoutEditPolicy());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart#refresh()
+	 */
+	public void refresh() {
+		super.refresh();
+		EditPolicy layoutPolicy = getEditPolicy(EditPolicy.LAYOUT_ROLE);
+		if (layoutPolicy != null) {
+			layoutPolicy.deactivate();
+			layoutPolicy.activate();
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.tools.ui.designer.parts.ControlEditPart#getExternalModels
+	 * ()
+	 */
+	protected void collectExternalModels(List<Object> collector) {
+		super.collectExternalModels(collector);
+		SashForm sashForm = (SashForm) getWidget();
+		if (sashForm != null && !sashForm.isDisposed()) {
+			Control[] children = sashForm.getChildren();
+			int i = 1;
+			for (Control control : children) {
+				if (control instanceof Sash) {
+					collector.add(i, control);
+					i += 2;
+				}
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.editparts.AbstractEditPart#createChild(java.lang.Object)
+	 */
+	protected EditPart createChild(Object model) {
+		if (model instanceof Sash) {
+			return new SashEditPart((Sash) model, null);
+		}
+		return super.createChild(model);
+	}
+	
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.FlowLayoutEditPolicy#isHorizontal()
+	 */
+	public boolean isHorizontal() {
+		SashForm sashForm = (SashForm) getWidget();
+		if (sashForm != null && !sashForm.isDisposed()) {
+			return (sashForm.getOrientation() & SWT.HORIZONTAL) != 0;
+		}
+		return true;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ShellEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ShellEditPart.java
new file mode 100755
index 0000000..bdca064
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ShellEditPart.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts;
+
+import java.util.List;
+
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class ShellEditPart extends CompositeEditPart {
+
+	public ShellEditPart(Shell shell, XamlNode model) {
+		super(shell, model);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.ve.xwt.editparts.WidgetEditPart#collectExternalModels()
+	 */
+	protected void collectExternalModels(List<Object> collector) {
+		super.collectExternalModels(collector);
+		Shell shell = (Shell) getWidget();
+		if (shell != null && !shell.isDisposed()) {
+			Menu menuBar = shell.getMenuBar();
+			if (menuBar != null && !menuBar.isDisposed()) {
+				Object data = XWTProxy.getModel(menuBar);
+				if (data != null) {
+					collector.add(data);
+				}
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/StackItemEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/StackItemEditPart.java
new file mode 100755
index 0000000..120f187
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/StackItemEditPart.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts;
+
+import org.eclipse.gef.Request;
+import org.eclipse.gef.RequestConstants;
+import org.eclipse.swt.widgets.Item;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jin.liu (jin.liu@soyatec.com)
+ * 
+ */
+public abstract class StackItemEditPart extends ItemEditPart {
+
+	public StackItemEditPart(Item item, XamlNode model) {
+		super(item, model);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.editparts.AbstractEditPart#performRequest(org.eclipse
+	 * .gef.Request)
+	 */
+	public void performRequest(Request req) {
+		if (req.getType() == RequestConstants.REQ_OPEN) {
+			popItem();
+		}
+		super.performRequest(req);
+	}
+	
+	protected abstract void popItem();
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/StackableEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/StackableEditPart.java
new file mode 100755
index 0000000..a34c243
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/StackableEditPart.java
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts;
+
+import java.util.List;
+
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Item;
+import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.StackableLayoutEditPolicy;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jin.liu (jin.liu@soyatec.com)
+ * 
+ */
+public abstract class StackableEditPart extends CompositeEditPart {
+
+	public StackableEditPart(Composite composite, XamlNode model) {
+		super(composite, model);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.tools.ui.designer.parts.ControlEditPart#collectExternalModels
+	 * ()
+	 */
+	protected void collectExternalModels(List<Object> collector) {
+		super.collectExternalModels(collector);
+		Control popControl = getPopControl();
+		if (popControl != null) {
+			XamlNode model = XWTProxy.getModel(popControl);
+			if (model != null) {
+				collector.add(model);
+			}
+		}
+	}
+
+	public StackItemEditPart getPopItemPart() {
+		Item popItem = getPopItem();
+		if (popItem == null || popItem.isDisposed()) {
+			return null;
+		}
+		XamlNode model = XWTProxy.getModel(popItem);
+		return (StackItemEditPart) getViewer().getEditPartRegistry().get(model);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart#
+	 * createEditPolicies()
+	 */
+	protected void createEditPolicies() {
+		super.createEditPolicies();
+		installEditPolicy(EditPolicy.LAYOUT_ROLE,
+				new StackableLayoutEditPolicy());
+	}
+
+	protected abstract Control getPopControl();
+
+	protected abstract Item getPopItem();
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/TabFolderEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/TabFolderEditPart.java
new file mode 100755
index 0000000..c49eba6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/TabFolderEditPart.java
@@ -0,0 +1,117 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts;
+
+import java.util.List;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.custom.CTabItem;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Item;
+import org.eclipse.swt.widgets.TabFolder;
+import org.eclipse.swt.widgets.TabItem;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.TabFolderLayoutEditPolicy;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author rui.ban rui.ban@soyatec.com
+ */
+public class TabFolderEditPart extends CompositeEditPart {
+
+	public TabFolderEditPart(Composite tabFolder, XamlNode model) {
+		super(tabFolder, model);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.ve.xwt.editparts.WidgetEditPart#collectExternalModels()
+	 */
+	protected void collectExternalModels(List<Object> collector) {
+		super.collectExternalModels(collector);
+		Control control = getActiveItemControl();
+		if (control != null && !control.isDisposed()) {
+			Object data = XWTProxy.getModel(control);
+			if (data != null) {
+				collector.add(data);
+			}
+		}
+	}
+
+	public Control getActiveItemControl() {
+		Item activeItem = getActiveItem();
+		if (activeItem == null || activeItem.isDisposed()) {
+			return null;
+		}
+		if (activeItem instanceof TabItem) {
+			return ((TabItem) activeItem).getControl();
+		} else if (activeItem instanceof CTabItem) {
+			return ((CTabItem) activeItem).getControl();
+		}
+		return null;
+	}
+
+	public Item getActiveItem() {
+		Widget widget = getWidget();
+		if (widget == null || widget.isDisposed()) {
+			return null;
+		}
+		if (widget instanceof TabFolder) {
+			TabItem[] selection = ((TabFolder) widget).getSelection();
+			if (selection != null && selection.length > 0) {
+				return selection[0];
+			}
+		} else if (widget instanceof CTabFolder) {
+			CTabFolder folder = (CTabFolder) widget;
+			CTabItem selection = folder.getSelection();
+			if (selection != null) {
+				return selection;
+			}
+			CTabItem[] items = folder.getItems();
+			if (items != null && items.length > 0) {
+				folder.setSelection(items[0]);
+				return items[0];
+			}
+		}
+		return null;
+	}
+
+	public EditPart getActiveItemPart() {
+		Item tabItem = getActiveItem();
+		if (tabItem == null) {
+			return null;
+		}
+		Object data = XWTProxy.getModel(tabItem);
+		if (data != null) {
+			return (EditPart) getViewer().getEditPartRegistry().get(data);
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart#
+	 * createEditPolicies()
+	 */
+	protected void createEditPolicies() {
+		super.createEditPolicies();
+		installEditPolicy(EditPolicy.LAYOUT_ROLE,
+				new TabFolderLayoutEditPolicy());
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/TabItemEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/TabItemEditPart.java
new file mode 100755
index 0000000..a07e6f9
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/TabItemEditPart.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.RequestConstants;
+import org.eclipse.swt.widgets.Item;
+import org.eclipse.swt.widgets.TabFolder;
+import org.eclipse.swt.widgets.TabItem;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
+import org.eclipse.xwt.tools.ui.designer.core.parts.RefreshContext;
+import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author rui.ban rui.ban@soyatec.com
+ */
+public class TabItemEditPart extends ItemEditPart {
+
+	public TabItemEditPart(Item item, XamlNode model) {
+		super(item, model);
+	}
+
+	/**
+	 * @see org.eclipse.gef.editparts.AbstractEditPart#performRequest(org.eclipse.gef.Request)
+	 */
+	public void performRequest(Request request) {
+		if (request.getType() == RequestConstants.REQ_OPEN) {
+			Widget widget = getWidget();
+			if (widget instanceof TabItem) {
+				TabItem item = (TabItem) widget;
+				TabFolder parent = item.getParent();
+				parent.setSelection(item);
+			}
+			EditPart parent = getParent();
+			EditDomain editDomain = EditDomain.getEditDomain(parent);
+			XWTDesigner designer = (XWTDesigner) editDomain.getEditorPart();
+			designer.refresh(parent, RefreshContext.ALL());
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ToolBarEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ToolBarEditPart.java
new file mode 100755
index 0000000..3427a3e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ToolBarEditPart.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts;
+
+import java.util.List;
+
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.ToolBarLayoutEditPolicy;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author rui.ban rui.ban@soyatec.com
+ */
+public class ToolBarEditPart extends CompositeEditPart {
+
+	public ToolBarEditPart(ToolBar toolBar, XamlNode model) {
+		super(toolBar, model);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.parts.ControlEditPart#collectExternalModels()
+	 */
+	protected void collectExternalModels(List<Object> collector) {
+		ToolBar toolBar = (ToolBar) getWidget();
+		if (toolBar != null && !toolBar.isDisposed()) {
+			Control[] children = toolBar.getChildren();
+			for (Control control : children) {
+				Object data = XWTProxy.getModel(control);
+				if (data != null) {
+					collector.add(data);
+				}
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart#createEditPolicies()
+	 */
+	protected void createEditPolicies() {
+		super.createEditPolicies();
+		installEditPolicy(EditPolicy.LAYOUT_ROLE, new ToolBarLayoutEditPolicy());
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ToolItemEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ToolItemEditPart.java
new file mode 100755
index 0000000..8712598
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ToolItemEditPart.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts;
+
+import org.eclipse.swt.widgets.ToolItem;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author rui.ban rui.ban@soyatec.com
+ */
+public class ToolItemEditPart extends ItemEditPart {
+
+	public ToolItemEditPart(ToolItem item, XamlNode model) {
+		super(item, model);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ViewerEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ViewerEditPart.java
new file mode 100755
index 0000000..b0b16b4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/ViewerEditPart.java
@@ -0,0 +1,146 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts;
+
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.draw2d.AbstractLayout;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.ConstrainedLayoutEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.xwt.tools.ui.designer.core.figures.ContentPaneFigure;
+import org.eclipse.xwt.tools.ui.designer.core.parts.VisualEditPart;
+import org.eclipse.xwt.tools.ui.designer.core.visuals.IVisualInfo;
+import org.eclipse.xwt.tools.ui.designer.core.visuals.swt.ViewerInfo;
+import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTModelUtil;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ViewerEditPart extends VisualEditPart {
+
+	protected Viewer viewer;
+
+	public ViewerEditPart(Viewer viewer, XamlNode model) {
+		super(model);
+		this.viewer = viewer;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.soyatec.tools.designer.parts.GraphicalNodeEditPart#createVisualInfo()
+	 */
+	protected IVisualInfo createVisualInfo() {
+		return new ViewerInfo(viewer, isRoot());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.soyatec.tools.designer.parts.GraphicalNodeEditPart#createFigure()
+	 */
+	protected IFigure createFigure() {
+		ContentPaneFigure figure = new ContentPaneFigure();
+		Label pane = new Label();
+		// pane.setForegroundColor(ColorConstants.red);
+		pane.setLayoutManager(new AbstractLayout() {
+			public void layout(IFigure parent) {
+				Rectangle r = parent.getBounds().getCopy();
+				Iterator children = parent.getChildren().iterator();
+				IFigure f;
+				while (children.hasNext()) {
+					f = (IFigure) children.next();
+					f.setBounds(r.shrink(1, 1));
+				}
+			}
+
+			protected Dimension calculatePreferredSize(IFigure container, int wHint, int hHint) {
+				return container.getPreferredSize();
+			}
+		});
+		figure.setContentPane(pane);
+		return figure;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.xwt.tools.ui.designer.core.parts.GraphicalNodeEditPart#getModelChildren()
+	 */
+	protected List getModelChildren() {
+		if (viewer != null) {
+			Control control = viewer.getControl();
+			XamlNode model = XWTProxy.getModel(control);
+			if (model == null) {
+				model = XWTModelUtil.getAdaptableAttribute(getCastModel(), "control", IConstants.XWT_NAMESPACE);
+			}
+			if (model == null) {
+				model = XamlFactory.eINSTANCE.createAttribute("control", IConstants.XWT_NAMESPACE);
+				getCastModel().getAttributes().add((XamlAttribute) model);
+			}
+			return Collections.singletonList(model);
+		}
+		return super.getModelChildren();
+	}
+
+	public Viewer getJfaceViewer() {
+		return viewer;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.xwt.tools.ui.designer.core.parts.VisualEditPart#createEditPolicies()
+	 */
+	protected void createEditPolicies() {
+		super.createEditPolicies();
+		installEditPolicy(EditPolicy.LAYOUT_ROLE, new ConstrainedLayoutEditPolicy() {
+			protected Command createChangeConstraintCommand(EditPart child, Object constraint) {
+				return null;
+			}
+
+			protected Object getConstraintFor(Point point) {
+				return null;
+			}
+
+			protected Object getConstraintFor(Rectangle rect) {
+				return null;
+			}
+
+			protected Command getCreateCommand(CreateRequest request) {
+				return null;
+			}
+		});
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.xwt.tools.ui.designer.core.parts.VisualEditPart#getCastModel()
+	 */
+	public XamlNode getCastModel() {
+		return (XamlNode) super.getCastModel();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/WidgetEditPart.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/WidgetEditPart.java
new file mode 100755
index 0000000..82b48ca
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/WidgetEditPart.java
@@ -0,0 +1,296 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.draw2d.ChopboxAnchor;
+import org.eclipse.draw2d.ConnectionAnchor;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.ConnectionEditPart;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.NodeEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
+import org.eclipse.xwt.tools.ui.designer.core.editor.IVisualRenderer;
+import org.eclipse.xwt.tools.ui.designer.core.parts.VisualEditPart;
+import org.eclipse.xwt.tools.ui.designer.core.parts.root.BindingLayer;
+import org.eclipse.xwt.tools.ui.designer.core.visuals.IVisualInfo;
+import org.eclipse.xwt.tools.ui.designer.core.visuals.swt.WidgetInfo;
+import org.eclipse.xwt.tools.ui.designer.databinding.BindingHelper;
+import org.eclipse.xwt.tools.ui.designer.databinding.BindingInfo;
+import org.eclipse.xwt.tools.ui.designer.databinding.DataContext;
+import org.eclipse.xwt.tools.ui.designer.databinding.IObservable;
+import org.eclipse.xwt.tools.ui.designer.editor.XWTVisualRenderer;
+import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
+import org.eclipse.xwt.tools.ui.designer.policies.ComponentEditPolicy;
+import org.eclipse.xwt.tools.ui.designer.policies.GraphicalNodeEditPolicyImpl;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class WidgetEditPart extends VisualEditPart implements NodeEditPart {
+	private Widget widget;
+
+	public WidgetEditPart(Widget widget, XamlNode model) {
+		super(model);
+		this.widget = widget;
+	}
+
+	/**
+	 * @return the widget
+	 */
+	public Widget getWidget() {
+		if (!validate()) {
+			EditDomain editDomain = EditDomain.getEditDomain(this);
+			if (editDomain == null){
+				return null;
+			}
+			XWTVisualRenderer controlRender = (XWTVisualRenderer) editDomain
+					.getViewerData(getViewer(), IVisualRenderer.KEY);
+			if (controlRender != null) {
+				Object component = controlRender.getVisual(getCastModel());
+				if (component instanceof Widget) {
+					widget = (Widget) component;
+				}
+			}
+			if (validate()) {
+				((IVisualInfo) getVisualInfo()).setVisualObject(widget);
+			}
+		}
+		return widget;
+	}
+
+	public boolean validate() {
+		return widget != null && !widget.isDisposed();
+	}
+	
+	@Override
+	public boolean isSelectable() {
+		return validate() && getCastModel() != null && getCastModel().eContainer() != null && super.isSelectable();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.soyatec.xaml.ve.editor.editparts.GraphicalNodeEditPart#createVisualInfo
+	 * ()
+	 */
+	protected IVisualInfo createVisualInfo() {
+		return new WidgetInfo(widget, isRoot());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.soyatec.xaml.ve.editor.editparts.GraphicalNodeEditPart#getModelChildren
+	 * ()
+	 */
+	protected List getModelChildren() {
+		List modelChildren = new ArrayList(getCastModel().getChildNodes());
+		collectExternalModels(modelChildren);
+		return modelChildren;
+	}
+
+	protected void collectExternalModels(List<Object> collector) {
+		if (isRoot()) {
+			DataContext dataContext = BindingHelper.getDataContext(getWidget());
+			if (dataContext != null) {
+				collector.add(dataContext);
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.soyatec.tools.designer.parts.GraphicalNodeEditPart#createEditPolicies
+	 * ()
+	 */
+	protected void createEditPolicies() {
+		super.createEditPolicies();
+		installEditPolicy(EditPolicy.COMPONENT_ROLE, new ComponentEditPolicy());
+		installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE,
+				new GraphicalNodeEditPolicyImpl());
+	}
+
+	public boolean isTransparent() {
+		if (!(getParent() instanceof DiagramEditPart)) {
+			return true;
+		}
+		return super.isTransparent();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.tools.ui.designer.core.parts.VisualEditPart#
+	 * validateVisuals()
+	 */
+	protected boolean validateVisuals() {
+		getWidget();
+		return super.validateVisuals() && validate();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.editparts.AbstractGraphicalEditPart#addChildVisual(org
+	 * .eclipse.gef.EditPart, int)
+	 */
+	protected void addChildVisual(EditPart childEditPart, int index) {
+		if (childEditPart instanceof DataContextEditPart) {
+			IFigure child = ((GraphicalEditPart) childEditPart).getFigure();
+			IFigure layer = getLayer(BindingLayer.ID);
+			if (child != null && layer != null) {
+				layer.add(child);
+			}
+		} else {
+			super.addChildVisual(childEditPart, index);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.editparts.AbstractGraphicalEditPart#removeChildVisual
+	 * (org.eclipse.gef.EditPart)
+	 */
+	protected void removeChildVisual(EditPart childEditPart) {
+		if (childEditPart instanceof DataContextEditPart) {
+			IFigure child = ((GraphicalEditPart) childEditPart).getFigure();
+			IFigure layer = getLayer(BindingLayer.ID);
+			if (child != null && child.getParent() == layer) {
+				layer.remove(child);
+			}
+		} else {
+			super.removeChildVisual(childEditPart);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.editparts.AbstractGraphicalEditPart#getModelSourceConnections
+	 * ()
+	 */
+	protected List getModelSourceConnections() {
+		XWTVisualRenderer controlRender = (XWTVisualRenderer) EditDomain
+				.getEditDomain(this).getViewerData(getViewer(),
+						IVisualRenderer.KEY);
+		Object root = controlRender.getRoot();
+		if (root != null && root instanceof Widget) {
+			root = XWTProxy.getModel((Widget) root);
+			EditPart rootEp = (EditPart) getViewer().getEditPartRegistry().get(
+					root);
+			XamlNode model = getCastModel();
+			if (rootEp != null) {
+				List<BindingInfo> sources = new ArrayList<BindingInfo>();
+				List<BindingInfo> allBindings = BindingHelper
+						.getBindings(rootEp);
+				for (BindingInfo bindingInfo : allBindings) {
+					IObservable observeModel = bindingInfo.getModel();
+					if (model == observeModel.getSource()) {
+						sources.add(bindingInfo);
+					}
+				}
+				return sources;
+			}
+		}
+		return super.getModelSourceConnections();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.editparts.AbstractGraphicalEditPart#getModelTargetConnections
+	 * ()
+	 */
+	protected List getModelTargetConnections() {
+		List<BindingInfo> bindings = BindingHelper.getBindings(this);
+		if (bindings != null) {
+			return bindings;
+		}
+		return super.getModelTargetConnections();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.tools.ui.designer.core.parts.VisualEditPart#getCastModel
+	 * ()
+	 */
+	public XamlNode getCastModel() {
+		return (XamlNode) super.getCastModel();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.NodeEditPart#getSourceConnectionAnchor(org.eclipse.gef
+	 * .ConnectionEditPart)
+	 */
+	public ConnectionAnchor getSourceConnectionAnchor(
+			ConnectionEditPart connection) {
+		return new ChopboxAnchor(getFigure());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.NodeEditPart#getSourceConnectionAnchor(org.eclipse.gef
+	 * .Request)
+	 */
+	public ConnectionAnchor getSourceConnectionAnchor(Request request) {
+		return new ChopboxAnchor(getFigure());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.NodeEditPart#getTargetConnectionAnchor(org.eclipse.gef
+	 * .ConnectionEditPart)
+	 */
+	public ConnectionAnchor getTargetConnectionAnchor(
+			ConnectionEditPart connection) {
+		return new ChopboxAnchor(getFigure());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.NodeEditPart#getTargetConnectionAnchor(org.eclipse.gef
+	 * .Request)
+	 */
+	public ConnectionAnchor getTargetConnectionAnchor(Request request) {
+		return new ChopboxAnchor(getFigure());
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/XWTEditPartFactory.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/XWTEditPartFactory.java
new file mode 100755
index 0000000..475fd55
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/XWTEditPartFactory.java
@@ -0,0 +1,153 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts;
+
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.tools.ui.palette.page.editparts.EditPartFactory;
+import org.eclipse.gef.EditPart;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.custom.CTabItem;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.CoolBar;
+import org.eclipse.swt.widgets.CoolItem;
+import org.eclipse.swt.widgets.ExpandBar;
+import org.eclipse.swt.widgets.ExpandItem;
+import org.eclipse.swt.widgets.Item;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.TabFolder;
+import org.eclipse.swt.widgets.TabItem;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.swt.widgets.ToolItem;
+import org.eclipse.swt.widgets.TreeColumn;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.tools.ui.designer.core.editor.IVisualFactory;
+import org.eclipse.xwt.tools.ui.designer.databinding.BindingInfo;
+import org.eclipse.xwt.tools.ui.designer.databinding.DataContext;
+import org.eclipse.xwt.tools.ui.designer.utils.StyleHelper;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class XWTEditPartFactory extends EditPartFactory {
+
+	private IVisualFactory factory;
+
+	public void setVisualFactory(IVisualFactory factory) {
+		this.factory = factory;
+	}
+
+	public IVisualFactory getVisualFactory() {
+		return factory;
+	}
+
+	/**
+	 * @see org.eclipse.gef.EditPartFactory#createEditPart(org.eclipse.gef.EditPart,
+	 *      java.lang.Object)
+	 */
+	public EditPart createEditPart(EditPart context, Object model) {
+		if (model instanceof XamlDocument) {
+			return new DiagramEditPart((XamlDocument) model);
+		} else if (model instanceof DataContext) {
+			return new DataContextEditPart((DataContext) model);
+		} else if (model instanceof BindingInfo) {
+			return new BindingConnectionEditPart((BindingInfo) model);
+		} else if (model instanceof XamlNode) {
+			XamlNode element = (XamlNode) model;
+			Object visual = null;
+			if (factory != null) {
+				visual = factory.getVisual(element);
+			}
+			Class<?> type = null;
+			if (visual != null) {
+				type = visual.getClass();
+			} else if (element instanceof XamlElement) {
+				IMetaclass metaclass = XWTUtility
+						.getMetaclass((XamlElement) model);
+				if (metaclass != null && metaclass.getType() != null) {
+					type = metaclass.getType();
+				}
+			}
+			if (type == null) {
+				throw new UnsupportedOperationException("Unsupport Type: "
+						+ model.toString());
+			}
+			if (Shell.class.isAssignableFrom(type)) {
+				return new ShellEditPart((Shell) visual, element);
+			} else if (TabFolder.class.isAssignableFrom(type)
+					|| CTabFolder.class.isAssignableFrom(type)) {
+				return new TabFolderEditPart((Composite) visual, element);
+			} else if (CoolBar.class.isAssignableFrom(type)) {
+				return new CoolBarEditPart((CoolBar) visual, element);
+			} else if (ToolBar.class.isAssignableFrom(type)) {
+				return new ToolBarEditPart((ToolBar) visual, element);
+			} else if (ExpandBar.class.isAssignableFrom(type)) {
+				return new ExpandBarEditPart((ExpandBar) visual, element);
+			} else if (SashForm.class.isAssignableFrom(type)){
+				return new SashFormEditPart((SashForm) visual, element);
+			}else if (Composite.class.isAssignableFrom(type)) {
+				return new CompositeEditPart((Composite) visual, element);
+			} else if (Label.class.isAssignableFrom(type)) {
+				return new LabelEditPart((Label) visual, element);
+			} else if (Control.class.isAssignableFrom(type)) {
+				return new ControlEditPart((Control) visual, element);
+			} else if (TabItem.class.isAssignableFrom(type)
+					|| CTabItem.class.isAssignableFrom(type)) {
+				return new TabItemEditPart((Item) visual, element);
+			} else if (MenuItem.class.isAssignableFrom(type)) {
+				return new MenuItemEditPart((MenuItem) visual, element);
+			} else if (CoolItem.class.isAssignableFrom(type)) {
+				return new CoolItemEditPart((CoolItem) visual, element);
+			} else if (ToolItem.class.isAssignableFrom(type)) {
+				return new ToolItemEditPart((ToolItem) visual, element);
+			} else if (ExpandItem.class.isAssignableFrom(type)) {
+				return new ExpandItemEditPart((ExpandItem) visual, element);
+			} else if (TableColumn.class.isAssignableFrom(type)
+					|| TreeColumn.class.isAssignableFrom(type)) {
+				return new ColumnEditPart((Item) visual, element);
+			} else if (Menu.class.isAssignableFrom(type)) {
+				if (StyleHelper.checkStyle(element, SWT.BAR)) {
+					return new MenuBarEditPart((Menu) visual, element);
+				} else {
+					return new MenuEditPart((Menu) visual, element);
+				}
+			} else if (Item.class.isAssignableFrom(type)) {
+				return new ItemEditPart((Item) visual, element);
+			} else if (Widget.class.isAssignableFrom(type)) {
+				return new WidgetEditPart((Widget) visual, element);
+			} else {
+				try {
+					Class<?> jfaceViewer = Class
+							.forName("org.eclipse.jface.viewers.Viewer");
+					if (jfaceViewer.isAssignableFrom(type)) {
+						return new ViewerEditPart((Viewer) visual, element);
+					}
+				} catch (ClassNotFoundException e) {
+				}
+			}
+		}
+		throw new UnsupportedOperationException("Unsupport Type: "
+				+ model.toString());
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/direct/ElementCellEditLocator.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/direct/ElementCellEditLocator.java
new file mode 100755
index 0000000..f74868a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/direct/ElementCellEditLocator.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts.direct;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.tools.CellEditorLocator;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.widgets.Text;
+
+public class ElementCellEditLocator implements CellEditorLocator {
+	private IFigure figure;
+
+	public ElementCellEditLocator(IFigure figure) {
+		this.figure = figure;
+	}
+
+	public void relocate(CellEditor celleditor) {
+		Text text = (Text) celleditor.getControl();
+		Point pref = text.computeSize(SWT.DEFAULT, SWT.DEFAULT);
+		Rectangle rect = this.figure.getBounds();
+		text.setBounds(rect.x - 1, rect.y - 1, pref.x + 1, pref.y + 1);
+
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/direct/ElementDirectEditManager.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/direct/ElementDirectEditManager.java
new file mode 100755
index 0000000..509a6c4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/direct/ElementDirectEditManager.java
@@ -0,0 +1,80 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts.direct;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.tools.CellEditorLocator;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.VerifyEvent;
+import org.eclipse.swt.events.VerifyListener;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Text;
+
+public class ElementDirectEditManager extends DirectEditManager {
+	protected VerifyListener verifyListener;
+	protected IFigure figure;
+
+	public ElementDirectEditManager(GraphicalEditPart source, Class editorType,
+			CellEditorLocator locator, IFigure figure) {
+		super(source, editorType, locator);
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.tools.DirectEditManager#initCellEditor()
+	 */
+	protected void initCellEditor() {
+		verifyListener = new VerifyListener() {
+			public void verifyText(VerifyEvent event) {
+				CellEditor cellEditor = getCellEditor();
+				if (cellEditor == null) {
+					return;
+				}
+				Text text = (Text) cellEditor.getControl();
+				if (text == null || text.isDisposed()) {
+					return;
+				}
+				text.setFocus();
+				String oldText = text.getText();
+				String leftText = oldText.substring(0, event.start);
+				String rightText = oldText.substring(event.end, oldText
+						.length());
+				GC gc = new GC(text);
+				Point size = gc.textExtent(leftText + event.text + rightText);
+				gc.dispose();
+				// if (size.x != 0) {
+				size = text.computeSize(50, SWT.DEFAULT);
+				// }
+				Display d = text.getDisplay();
+				if (text != null && !text.isDisposed() && d != null
+						&& !d.isDisposed()) {
+					text.setSize(size.x, size.y);
+				}
+			}
+
+		};
+
+		Text text = (Text) getCellEditor().getControl();
+		text.addVerifyListener(verifyListener);
+		text.selectAll();
+		text.setFocus();
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/figures/DataBindingConnection.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/figures/DataBindingConnection.java
new file mode 100755
index 0000000..fee501e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/figures/DataBindingConnection.java
@@ -0,0 +1,129 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts.figures;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.ConnectionEndpointLocator;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.LineBorder;
+import org.eclipse.draw2d.ManhattanConnectionRouter;
+import org.eclipse.draw2d.PolygonDecoration;
+import org.eclipse.draw2d.PolylineConnection;
+import org.eclipse.draw2d.PolylineDecoration;
+import org.eclipse.draw2d.RotatableDecoration;
+import org.eclipse.draw2d.geometry.PointList;
+import org.eclipse.swt.SWT;
+import org.eclipse.xwt.tools.ui.designer.databinding.BindingInfo;
+import org.eclipse.xwt.tools.ui.designer.databinding.IObservable;
+import org.eclipse.xwt.tools.ui.designer.databinding.Property;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class DataBindingConnection extends PolylineConnection {
+
+	private BindingInfo bindingInfo;
+	private Label sourceEndpoint;
+	private Label targetEndpoint;
+
+	public DataBindingConnection(BindingInfo bindingInfo) {
+		this.bindingInfo = bindingInfo;
+		setForegroundColor(ColorConstants.red);
+		setConnectionRouter(new ManhattanConnectionRouter());
+		setLineJoin(SWT.JOIN_ROUND);
+
+		setTargetDecoration(createTargetDecoration());
+
+		setDisplayEndpoints(true);
+	}
+
+	protected void addTargetEndpoint() {
+		if (bindingInfo == null) {
+			return;
+		}
+		IObservable observeTarget = bindingInfo.getTarget();
+		if (observeTarget == null) {
+			return;
+		}
+		Property property = bindingInfo.getTargetProperty();
+		if (property == null) {
+			return;
+		}
+		targetEndpoint = new Label(property.toString());
+		targetEndpoint.setOpaque(false);
+		targetEndpoint.setBackgroundColor(ColorConstants.buttonLightest);
+		targetEndpoint.setForegroundColor(ColorConstants.blue);
+		targetEndpoint.setBorder(new LineBorder());
+		ConnectionEndpointLocator locator = new ConnectionEndpointLocator(this, true);
+		locator.setUDistance(2);
+		locator.setVDistance(3);
+		add(targetEndpoint, locator);
+	}
+
+	protected void addSourceEndpoint() {
+		if (bindingInfo == null) {
+			return;
+		}
+		IObservable model = bindingInfo.getModel();
+		if (model == null) {
+			return;
+		}
+		Property property = bindingInfo.getModelProperty();
+		if (property == null) {
+			return;
+		}
+		sourceEndpoint = new Label(property.toString());
+		sourceEndpoint.setOpaque(false);
+		sourceEndpoint.setBackgroundColor(ColorConstants.buttonLightest);
+		sourceEndpoint.setForegroundColor(ColorConstants.blue);
+		sourceEndpoint.setBorder(new LineBorder());
+		ConnectionEndpointLocator locator = new ConnectionEndpointLocator(this, false);
+		locator.setUDistance(2);
+		locator.setVDistance(-3);
+		add(sourceEndpoint, locator);
+	}
+
+	protected RotatableDecoration createTargetDecoration() {
+		return new PolygonDecoration();
+	}
+
+	protected RotatableDecoration createSourceDecoration() {
+		PolylineDecoration sourceDec = new PolylineDecoration();
+
+		PointList pl = new PointList();
+		pl.addPoint(-2, 1);
+		pl.addPoint(0, 1);
+		pl.addPoint(0, -1);
+		pl.addPoint(-2, -1);
+		sourceDec.setTemplate(pl);
+		sourceDec.setScale(7, 3);
+
+		return sourceDec;
+	}
+
+	public void setDisplayEndpoints(boolean display) {
+		if (display) {
+			addSourceEndpoint();
+			addTargetEndpoint();
+		} else {
+			if (sourceEndpoint != null && this == sourceEndpoint.getParent()) {
+				remove(sourceEndpoint);
+				sourceEndpoint = null;
+			}
+			if (targetEndpoint != null && this == targetEndpoint.getParent()) {
+				remove(targetEndpoint);
+				targetEndpoint = null;
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/figures/Expandable.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/figures/Expandable.java
new file mode 100755
index 0000000..d25848d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/figures/Expandable.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts.figures;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.GraphicalEditPart;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public interface Expandable extends IFigure {
+
+	public void expand();
+
+	public void collapse();
+
+	public GraphicalEditPart getHost();
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/figures/MenuFigure.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/figures/MenuFigure.java
new file mode 100755
index 0000000..f3e572c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/figures/MenuFigure.java
@@ -0,0 +1,175 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts.figures;
+
+import java.util.List;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.Figure;
+import org.eclipse.draw2d.Graphics;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.ToolbarLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.xwt.tools.ui.designer.parts.MenuEditPart;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class MenuFigure extends Figure implements Expandable {
+
+	private static final int HEIGHT_HINT = 4;
+	private static final int WIDTH_HINT = 40;
+	private MenuEditPart host;
+	private Label initLabel = new Label(" (New Menu) ");
+
+	public MenuFigure(MenuEditPart host) {
+		this.host = host;
+		initLabel.setFont(Display.getCurrent().getSystemFont());
+		setBackgroundColor(ColorConstants.white);
+		setForegroundColor(ColorConstants.gray);
+		MenuLayout manager = new MenuLayout();
+		manager.setStretchMinorAxis(true);
+		manager.setHorizontalSpacing(4);
+		manager.setVerticalSpacing(2);
+		manager.setMinorAlignment(MenuLayout.ALIGN_CENTER);
+		setLayoutManager(manager);
+
+		add(initLabel);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.draw2d.Figure#add(org.eclipse.draw2d.IFigure, java.lang.Object, int)
+	 */
+	public void add(IFigure figure, Object constraint, int index) {
+		if (figure != null && figure != initLabel && initLabel.getParent() == this) {
+			remove(initLabel);
+		}
+		super.add(figure, constraint, index);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.draw2d.Figure#paintFigure(org.eclipse.draw2d.Graphics)
+	 */
+	protected void paintFigure(Graphics graphics) {
+		Rectangle r = getBounds().getCopy();
+		int x = r.x;
+		int y = r.y;
+		int w = r.width - 1;
+		int h = r.height - 1;
+		graphics.fillRectangle(r);
+		graphics.drawRectangle(new Rectangle(x, y, w, h));
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.ve.xwt.editparts.figures.Expandable#collapse()
+	 */
+	public void collapse() {
+		setVisible(false);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.ve.xwt.editparts.figures.Expandable#expand()
+	 */
+	public void expand() {
+		List<IFigure> children = getChildren();
+		int width = 0;
+		int height = 0;
+		for (IFigure figure : children) {
+			Dimension size = figure.getPreferredSize();
+			width = Math.max(width, size.width);
+			height += size.height;
+			figure.setBackgroundColor(ColorConstants.white);
+			figure.setForegroundColor(ColorConstants.white);
+		}
+		if (width > 0 && height > 0) {
+			setSize(new Dimension(width + WIDTH_HINT, height + HEIGHT_HINT));
+			layout();
+			setVisible(true);
+		}
+		repaint();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.ve.xwt.editparts.figures.Expandable#getHost()
+	 */
+	public GraphicalEditPart getHost() {
+		return host;
+	}
+
+	private static class MenuLayout extends ToolbarLayout {
+		private int horizontalSpacing = 0;
+		private int verticalSpacing = 0;
+
+		public MenuLayout() {
+			setVertical(true);
+		}
+
+		public void layout(IFigure parent) {
+			super.layout(parent);
+			List<IFigure> children = parent.getChildren();
+			for (IFigure child : children) {
+				Rectangle r = child.getBounds().getCopy();
+				int height = r.height - getVerticalSpacing() * 2;
+				if (height < 1) {
+					height = 1;// for separator.
+				}
+				child.setBounds(new Rectangle(r.x + getHorizontalSpacing(), r.y + getVerticalSpacing(), r.width - getHorizontalSpacing() * 2, height));
+			}
+		}
+
+		/**
+		 * @param horizontalSpacing
+		 *            the horizontalSpacing to set
+		 */
+		public void setHorizontalSpacing(int horizontalSpacing) {
+			this.horizontalSpacing = horizontalSpacing;
+		}
+
+		/**
+		 * @return the horizontalSpacing
+		 */
+		public int getHorizontalSpacing() {
+			return horizontalSpacing;
+		}
+
+		/**
+		 * @param verticalSpacing
+		 *            the verticalSpacing to set
+		 */
+		public void setVerticalSpacing(int verticalSpacing) {
+			this.verticalSpacing = verticalSpacing;
+		}
+
+		/**
+		 * @return the verticalSpacing
+		 */
+		public int getVerticalSpacing() {
+			return verticalSpacing;
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/figures/MenuItemFigure.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/figures/MenuItemFigure.java
new file mode 100755
index 0000000..0bbe5fa
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/figures/MenuItemFigure.java
@@ -0,0 +1,133 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts.figures;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.Graphics;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.XYLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.tools.ui.designer.parts.MenuItemEditPart;
+import org.eclipse.xwt.tools.ui.designer.utils.StyleHelper;
+
+public class MenuItemFigure extends RectangleFigure {
+
+	private MenuItemEditPart host;
+	private Label nameLabel = null;
+
+	public MenuItemFigure(MenuItemEditPart host) {
+		this.host = host;
+		setFill(false);
+		setLayoutManager(new XYLayout());
+		setForegroundColor(ColorConstants.menuBackground);
+		nameLabel = new Label();
+		nameLabel.setTextPlacement(PositionConstants.WEST);
+		nameLabel.setTextAlignment(PositionConstants.CENTER);
+		nameLabel.setLabelAlignment(PositionConstants.LEFT);
+		add(nameLabel);
+	}
+
+	public MenuItemEditPart getHost() {
+		return host;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.draw2d.Figure#getPreferredSize(int, int)
+	 */
+	public Dimension getPreferredSize(int hint, int hint2) {
+		if (host != null) {
+			return host.getVisualInfo().getBounds().getSize();
+		}
+		return super.getPreferredSize(hint, hint2);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.draw2d.Figure#setBounds(org.eclipse.draw2d.geometry.Rectangle)
+	 */
+	public void setBounds(Rectangle rect) {
+		super.setBounds(rect);
+		Rectangle copy = rect.getCopy().shrink(20, 0).resize(-4, 0);
+		nameLabel.setBounds(copy);
+	}
+
+	private boolean displayText() {
+		Widget widget = host.getWidget();
+		if (widget != null && !widget.isDisposed() && widget instanceof MenuItem) {
+			return !StyleHelper.isOnMenubar((MenuItem) widget);
+		}
+		return false;
+	}
+
+	private boolean isSeparator() {
+		Widget widget = host.getWidget();
+		return StyleHelper.checkStyle(widget, SWT.SEPARATOR);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.draw2d.Shape#paintFigure(org.eclipse.draw2d.Graphics)
+	 */
+	public void paintFigure(Graphics graphics) {
+		Rectangle r = getBounds().getCopy();
+		Widget widget = host.getWidget();
+		if (isSeparator()) {
+			graphics.setForegroundColor(ColorConstants.gray);
+			graphics.drawLine(r.x, r.y, r.x + r.width, r.y);
+		} else {
+			if (displayText()) {
+				if (widget != null && !widget.isDisposed() && widget instanceof MenuItem) {
+					nameLabel.setText(((MenuItem) widget).getText());
+				}
+				nameLabel.setForegroundColor(ColorConstants.black);
+			}
+			super.paintFigure(graphics);
+		}
+
+		if (displayText() && StyleHelper.checkStyle(widget, SWT.CASCADE)) {
+			Color fc = graphics.getForegroundColor();
+			Color bc = graphics.getBackgroundColor();
+
+			graphics.setBackgroundColor(ColorConstants.black);
+			graphics.setForegroundColor(ColorConstants.black);
+			Rectangle b = nameLabel.getBounds();
+			int x = b.x + b.width + 4;
+			int y = b.y;
+			drawRightArrow(graphics, x, y);
+
+			graphics.setForegroundColor(fc);
+			graphics.setBackgroundColor(bc);
+		}
+	}
+
+	protected void drawRightArrow(Graphics gc, int x, int y) {
+		x += 2;
+		y += 4;
+		gc.drawLine(x + 2, y, x + 5, y + 3);
+		gc.drawLine(x + 5, y + 4, x + 5, y + 4);
+		gc.drawLine(x + 4, y + 3, x + 4, y + 5);
+		gc.drawLine(x + 3, y + 1, x + 3, y + 6);
+		gc.drawLine(x + 2, y + 1, x + 2, y + 7);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/misc/CompositeEditPartHelper.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/misc/CompositeEditPartHelper.java
new file mode 100755
index 0000000..98b746a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/misc/CompositeEditPartHelper.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts.misc;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
+import org.eclipse.xwt.tools.ui.designer.parts.ControlEditPart;
+
+public class CompositeEditPartHelper {
+
+	/**
+	 * Remove popup menus, just keep the ControlEditParts
+	 * 
+	 * @param compositeEditPart
+	 * @return
+	 */
+	public static List<ControlEditPart> getChildren(
+			CompositeEditPart compositeEditPart) {
+		List<ControlEditPart> collector = new ArrayList<ControlEditPart>();
+		for (Iterator<?> iterator = compositeEditPart.getChildren().iterator(); iterator
+				.hasNext();) {
+			Object element = iterator.next();
+			if (element instanceof ControlEditPart) {
+				collector.add((ControlEditPart) element);
+			}
+		}
+		return collector;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/misc/DragSashTracker.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/misc/DragSashTracker.java
new file mode 100755
index 0000000..0fe4ed6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/parts/misc/DragSashTracker.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.parts.misc;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.requests.ChangeBoundsRequest;
+import org.eclipse.gef.tools.DragEditPartsTracker;
+import org.eclipse.swt.graphics.Cursor;
+import org.eclipse.xwt.tools.ui.designer.commands.ChangeWeightsCommand;
+import org.eclipse.xwt.tools.ui.designer.parts.SashEditPart;
+import org.eclipse.xwt.tools.ui.designer.parts.SashFormEditPart;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public class DragSashTracker extends DragEditPartsTracker {
+
+	public DragSashTracker(SashEditPart sourceEditPart) {
+		super(sourceEditPart);
+	}
+
+	protected Command getCommand() {
+		ChangeBoundsRequest targetRequest = (ChangeBoundsRequest) getTargetRequest();
+		EditPart parent = getSourceEditPart().getParent();
+		if (parent instanceof SashFormEditPart) {
+			return new ChangeWeightsCommand((SashFormEditPart) parent,
+					targetRequest);
+		}
+		return super.getCommand();
+	}
+
+	protected Cursor getDefaultCursor() {
+		SashEditPart editPart = (SashEditPart) getSourceEditPart();
+		return editPart.getDefaultCursor();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/ComponentEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/ComponentEditPolicy.java
new file mode 100755
index 0000000..8500b5e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/ComponentEditPolicy.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.requests.GroupRequest;
+import org.eclipse.xwt.tools.ui.designer.commands.DeleteCommand;
+import org.eclipse.xwt.tools.ui.designer.core.parts.VisualEditPart;
+import org.eclipse.xwt.tools.ui.designer.core.policies.DefaultComponentEditPolicy;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ComponentEditPolicy extends DefaultComponentEditPolicy {
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.gef.editpolicies.ComponentEditPolicy#getDeleteCommand(org.eclipse.gef.requests.GroupRequest)
+	 */
+	protected Command getDeleteCommand(GroupRequest request) {
+		List editParts = request.getEditParts();
+		if (!editParts.isEmpty()) {
+			List<XamlNode> deleteItems = new ArrayList<XamlNode>();
+			for (Iterator iterator = editParts.iterator(); iterator.hasNext();) {
+				Object object = (Object) iterator.next();
+				if (object instanceof VisualEditPart) {
+					VisualEditPart part = (VisualEditPart) object;
+					deleteItems.add((XamlNode) part.getCastModel());
+				}
+			}
+			if (!deleteItems.isEmpty()) {
+				return new DeleteCommand(deleteItems);
+			}
+		}
+		return super.getDeleteCommand(request);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/CoolBarEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/CoolBarEditPolicy.java
new file mode 100755
index 0000000..41763cb
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/CoolBarEditPolicy.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.swt.SWT;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.RowLayoutEditPolicy;
+import org.eclipse.xwt.tools.ui.designer.utils.StyleHelper;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+
+public class CoolBarEditPolicy extends RowLayoutEditPolicy {
+
+	protected Command createAddCommand(EditPart child, EditPart after) {
+		return null;
+	}
+
+	protected Command createMoveChildCommand(EditPart child, EditPart after) {
+		return null;
+	}
+
+	protected EditPolicy createChildEditPolicy(EditPart child) {
+		return new NewNonResizeEditPolicy(false);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.policies.layout.RowLayoutEditPolicy #getCreateCommand(org.eclipse.gef.requests.CreateRequest)
+	 */
+	@Override
+	protected Command getCreateCommand(CreateRequest request) {
+		// TODO Auto-generated method stub
+		return super.getCreateCommand(request);
+	}
+
+	protected boolean isHorizontal() {
+		XamlElement model = (XamlElement) this.getHost().getModel();
+		return StyleHelper.checkStyle(model, SWT.HORIZONTAL);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/CoolItemEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/CoolItemEditPolicy.java
new file mode 100755
index 0000000..c56cfdc
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/CoolItemEditPolicy.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.xwt.tools.ui.designer.commands.AttachedPropertyCreateCommand;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.NonResizableLayoutEditPolicy;
+
+public class CoolItemEditPolicy extends NonResizableLayoutEditPolicy {
+
+	protected Command getCreateCommand(CreateRequest request) {
+		return new AttachedPropertyCreateCommand(getHost(), request, "control");
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/ElementDirectEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/ElementDirectEditPolicy.java
new file mode 100755
index 0000000..e6836de
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/ElementDirectEditPolicy.java
@@ -0,0 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.DirectEditPolicy;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.xwt.tools.ui.designer.commands.ApplyAttributeSettingCommand;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+
+public class ElementDirectEditPolicy extends DirectEditPolicy {
+	private boolean setting = false;
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.DirectEditPolicy#getDirectEditCommand(org.eclipse.gef.requests.DirectEditRequest)
+	 */
+	protected Command getDirectEditCommand(DirectEditRequest request) {
+		String value = (String) request.getCellEditor().getValue();
+		XamlElement element = (XamlElement) (getHost().getModel());
+		return new ApplyAttributeSettingCommand(element, "text", IConstants.XWT_NAMESPACE, value);
+	}
+
+	@Override
+	protected void eraseDirectEditFeedback(DirectEditRequest request) {
+		super.eraseDirectEditFeedback(request);
+		setting = false;
+	}
+	
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.DirectEditPolicy#showCurrentEditValue(org.eclipse.gef.requests.DirectEditRequest)
+	 */
+	protected void showCurrentEditValue(DirectEditRequest request) {
+	}
+
+	@Override
+	protected void showDirectEditFeedback(DirectEditRequest request) {
+		CellEditor cellEditor = request.getCellEditor();
+		if (cellEditor == null) {
+			return;
+		}
+		if (!setting) {
+			GraphicalEditPart graphicalEditPart = (GraphicalEditPart) getHost();
+			IFigure figure = graphicalEditPart.getFigure();
+			
+			XamlElement element = (XamlElement) (getHost().getModel());
+			XamlAttribute attribute = element.getAttribute("text", IConstants.XWT_NAMESPACE);
+			if (attribute == null) {
+				return;
+			}
+			String value = attribute.getValue();
+			cellEditor.setValue(value);
+			Control control = request.getCellEditor().getControl();
+			if (control instanceof Text) {
+				Rectangle rectangle = figure.getBounds();
+				Text text = (Text) control;
+				text.setLocation(rectangle.x, rectangle.y);
+				text.selectAll();
+			}
+		}
+		setting = true;
+	}
+	
+	@Override
+	public boolean understandsRequest(Request request) {
+		if (request instanceof DirectEditRequest) {
+			DirectEditRequest directEditRequest = (DirectEditRequest) request;
+			XamlElement element = (XamlElement) (getHost().getModel());
+			XamlAttribute attribute = element.getAttribute("text", IConstants.XWT_NAMESPACE);
+			if (directEditRequest.getCellEditor() == null || attribute == null) {
+				return false;
+			}
+		}
+		return super.understandsRequest(request);
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/ExpandBarEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/ExpandBarEditPolicy.java
new file mode 100755
index 0000000..1b990f9
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/ExpandBarEditPolicy.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies;
+
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.RowLayoutEditPolicy;
+
+/**
+ * @author yahong.song@soyatec.com
+ */
+public class ExpandBarEditPolicy extends RowLayoutEditPolicy {
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.policies.layout.RowLayoutEditPolicy#createAddCommand(org.eclipse.gef.EditPart, org.eclipse.gef.EditPart)
+	 */
+	protected Command createAddCommand(EditPart child, EditPart after) {
+		return null;
+	}
+
+	protected Command createMoveChildCommand(EditPart child, EditPart after) {
+		return super.createMoveChildCommand(child, after);
+	}
+
+	protected EditPolicy createChildEditPolicy(EditPart child) {
+		return new NewResizableEditPolicy(PositionConstants.NONE, true);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.policies.layout.RowLayoutEditPolicy #getCreateCommand(org.eclipse.gef.requests.CreateRequest)
+	 */
+	@Override
+	protected Command getCreateCommand(CreateRequest request) {
+		// TODO Auto-generated method stub
+		return super.getCreateCommand(request);
+	}
+
+	protected boolean isHorizontal() {
+		return false;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/ExpandableEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/ExpandableEditPolicy.java
new file mode 100755
index 0000000..cdee1f1
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/ExpandableEditPolicy.java
@@ -0,0 +1,191 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartListener;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.LayerConstants;
+import org.eclipse.gef.editpolicies.GraphicalEditPolicy;
+import org.eclipse.xwt.tools.ui.designer.core.util.DisplayUtil;
+import org.eclipse.xwt.tools.ui.designer.parts.figures.Expandable;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ExpandableEditPolicy extends GraphicalEditPolicy implements EditPartListener {
+
+	private List<Object> listenedParts = new ArrayList<Object>();
+
+	protected FocusListener focusListener = new FocusListener();
+
+	private class FocusListener extends EditPartListener.Stub {
+		public void selectedStateChanged(EditPart part) {
+			if (shouldExpanded(part)) {
+				expand();
+			} else {
+				collapse();
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.AbstractEditPolicy#activate()
+	 */
+	public void activate() {
+		super.activate();
+		addFocusListener(getHost());
+	}
+
+	private void addFocusListener(EditPart part) {
+		if (part == null) {
+			return;
+		}
+		if (!listenedParts.contains(part)) {
+			part.addEditPartListener(focusListener);
+			part.addEditPartListener(this);
+			listenedParts.add(part);
+		}
+		List<EditPart> childList = part.getChildren();
+		if (childList != null) {
+			for (EditPart ep : childList) {
+				addFocusListener(ep);
+			}
+		}
+	}
+
+	private void removeFocusListener(EditPart part) {
+		if (part == null) {
+			return;
+		}
+		if (listenedParts.remove(part)) {
+			part.removeEditPartListener(focusListener);
+			part.removeEditPartListener(this);
+		}
+		List<EditPart> childList = part.getChildren();
+		if (childList != null) {
+			for (EditPart ep : childList) {
+				removeFocusListener(ep);
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.AbstractEditPolicy#deactivate()
+	 */
+	public void deactivate() {
+		super.deactivate();
+		removeFocusListener(getHost());
+		IFigure figure = getHostFigure();
+		if (figure instanceof Expandable && getLayer() == figure.getParent()) {
+			getLayer().remove(figure);
+		}
+	}
+
+	public void expand() {
+		IFigure figure = getHostFigure();
+		if (figure instanceof Expandable && getLayer() != figure.getParent()) {
+			getLayer().add(figure);
+			((Expandable) figure).expand();
+		}
+	}
+
+	public IFigure getLayer() {
+		return getLayer(LayerConstants.CONNECTION_LAYER);
+	}
+
+	public void collapse() {
+		IFigure figure = getHostFigure();
+		if (figure instanceof Expandable) {
+			((Expandable) figure).collapse();
+			// getLayer().remove(figure);
+		}
+	}
+
+	protected boolean shouldExpanded(EditPart part) {
+		return part.getSelected() != EditPart.SELECTED_NONE;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.EditPartListener#childAdded(org.eclipse.gef.EditPart, int)
+	 */
+	public void childAdded(final EditPart child, int index) {
+		addFocusListener(child);
+		if (child instanceof GraphicalEditPart) {
+			IFigure figure = ((GraphicalEditPart) child).getFigure();
+			if (figure instanceof Expandable) {
+				((Expandable) figure).expand();
+				getLayer().add(figure);
+			}
+		}
+		DisplayUtil.asyncExec(new Runnable() {
+			public void run() {
+				child.getViewer().select(child);
+				expand();
+			}
+		});
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.EditPartListener#partActivated(org.eclipse.gef.EditPart)
+	 */
+	public void partActivated(EditPart editpart) {
+		// do nothing
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.EditPartListener#partDeactivated(org.eclipse.gef.EditPart)
+	 */
+	public void partDeactivated(EditPart editpart) {
+		// do nothing
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.EditPartListener#removingChild(org.eclipse.gef.EditPart, int)
+	 */
+	public void removingChild(EditPart child, int index) {
+		if (child instanceof GraphicalEditPart) {
+			IFigure figure = ((GraphicalEditPart) child).getFigure();
+			if (figure instanceof Expandable && figure.getParent() == getLayer()) {
+				((Expandable) figure).collapse();
+				getLayer().remove(figure);
+			}
+		}
+		removeFocusListener(child);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.EditPartListener#selectedStateChanged(org.eclipse.gef.EditPart)
+	 */
+	public void selectedStateChanged(EditPart editpart) {
+		// do nothing
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/GraphicalNodeEditPolicyImpl.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/GraphicalNodeEditPolicyImpl.java
new file mode 100755
index 0000000..4b6c3d8
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/GraphicalNodeEditPolicyImpl.java
@@ -0,0 +1,81 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies;
+
+import org.eclipse.gef.ConnectionEditPart;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.NodeEditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.requests.CreateConnectionRequest;
+import org.eclipse.gef.requests.ReconnectRequest;
+import org.eclipse.xwt.tools.ui.designer.commands.BindingCreateCommand;
+import org.eclipse.xwt.tools.ui.designer.commands.BindingReconnectCommand;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class GraphicalNodeEditPolicyImpl extends org.eclipse.gef.editpolicies.GraphicalNodeEditPolicy {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.GraphicalNodeEditPolicy#getConnectionCompleteCommand(org.eclipse.gef.requests.CreateConnectionRequest)
+	 */
+	protected Command getConnectionCompleteCommand(CreateConnectionRequest request) {
+		BindingCreateCommand startCommand = (BindingCreateCommand) request.getStartCommand();
+		EditPart source = request.getSourceEditPart();
+		EditPart target = request.getTargetEditPart();
+		if (target == null || source == null || source == target || target == source.getParent()) {
+			return null;
+		}
+		return startCommand;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.GraphicalNodeEditPolicy#getConnectionCreateCommand(org.eclipse.gef.requests.CreateConnectionRequest)
+	 */
+	protected Command getConnectionCreateCommand(CreateConnectionRequest request) {
+		BindingCreateCommand command = new BindingCreateCommand(request);
+		request.setStartCommand(command);
+		return command;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.GraphicalNodeEditPolicy#getReconnectSourceCommand(org.eclipse.gef.requests.ReconnectRequest)
+	 */
+	protected Command getReconnectSourceCommand(ReconnectRequest request) {
+		NodeEditPart source = (NodeEditPart) getHost();
+		ConnectionEditPart connectionEditPart = request.getConnectionEditPart();
+		BindingReconnectCommand command = new BindingReconnectCommand(connectionEditPart);
+		command.setSource(source);
+		return command;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.GraphicalNodeEditPolicy#getReconnectTargetCommand(org.eclipse.gef.requests.ReconnectRequest)
+	 */
+	protected Command getReconnectTargetCommand(ReconnectRequest request) {
+		NodeEditPart target = (NodeEditPart) request.getTarget();
+		ConnectionEditPart connectionEditPart = request.getConnectionEditPart();
+		BindingReconnectCommand command = new BindingReconnectCommand(connectionEditPart);
+		command.setTarget(target);
+		return command;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/MenuItemExpandableEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/MenuItemExpandableEditPolicy.java
new file mode 100755
index 0000000..c1eab0f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/MenuItemExpandableEditPolicy.java
@@ -0,0 +1,97 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.xwt.tools.ui.designer.parts.MenuItemEditPart;
+import org.eclipse.xwt.tools.ui.designer.parts.figures.Expandable;
+import org.eclipse.xwt.tools.ui.designer.utils.StyleHelper;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class MenuItemExpandableEditPolicy extends ExpandableEditPolicy {
+	private ArrayList<Expandable> expandedFigures;
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.ve.xwt.editpolicies.ExpandableEditPolicy#expand()
+	 */
+	public void expand() {
+		// Retrieve expandables from editpart directly.
+		List children = getHost().getChildren();
+		if (children == null || children.isEmpty()) {
+			return;
+		}
+		if (expandedFigures == null || expandedFigures.isEmpty()) {
+			expandedFigures = new ArrayList<Expandable>();
+			for (Object object : children) {
+				if (!(object instanceof GraphicalEditPart)) {
+					continue;
+				}
+				IFigure figure = ((GraphicalEditPart) object).getFigure();
+				if (figure instanceof Expandable) {
+					expandedFigures.add((Expandable) figure);
+				}
+			}
+		}
+
+		expandAll();
+	}
+
+	/**
+	 * @param hostFigure
+	 */
+	private void expandAll() {
+		IFigure hostFigure = getHostFigure();
+		for (Expandable f : expandedFigures) {
+			IFigure layer = getLayer();
+			if (f.getParent() != layer) {
+				layer.add(f);
+			}
+			Rectangle r = hostFigure.getBounds().getCopy();
+			hostFigure.translateToAbsolute(r);
+			if (r.isEmpty()) {
+				continue;
+			}
+			MenuItem menuItem = (MenuItem) ((MenuItemEditPart) getHost()).getWidget();
+			if (StyleHelper.isOnMenubar(menuItem)) {
+				f.setLocation(new Point(r.x + 1, r.y + r.height));
+			} else {
+				f.setLocation(new Point(r.x + r.width, r.y));
+			}
+			f.expand();
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.ve.xwt.editpolicies.ExpandableEditPolicy#collapse()
+	 */
+	public void collapse() {
+		if (expandedFigures != null && !expandedFigures.isEmpty()) {
+			for (Expandable figure : expandedFigures) {
+				figure.collapse();
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/MenuLayoutEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/MenuLayoutEditPolicy.java
new file mode 100755
index 0000000..20756d2
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/MenuLayoutEditPolicy.java
@@ -0,0 +1,73 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.FlowLayoutEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gef.requests.ForwardedRequest;
+import org.eclipse.xwt.tools.ui.designer.commands.DeleteCommand;
+import org.eclipse.xwt.tools.ui.designer.commands.InsertCreateCommand;
+
+public class MenuLayoutEditPolicy extends FlowLayoutEditPolicy {
+
+	protected Command createMoveChildCommand(EditPart child, EditPart after) {
+		return null;
+	}
+
+	protected EditPolicy createChildEditPolicy(EditPart child) {
+		return new NewNonResizeEditPolicy(false);
+	}/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.policies.layout.RowLayoutEditPolicy#getCreateCommand(org.eclipse.gef.requests.CreateRequest)
+	 */
+
+	protected Command getCreateCommand(CreateRequest request) {
+		return new InsertCreateCommand(getHost(), getInsertionReference(request), request);
+	}
+
+	protected boolean isHorizontal() {
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.OrderedLayoutEditPolicy#createAddCommand(org.eclipse.gef.EditPart, org.eclipse.gef.EditPart)
+	 */
+	protected Command createAddCommand(EditPart child, EditPart after) {
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#getDeleteDependantCommand(org.eclipse.gef.Request)
+	 */
+	protected Command getDeleteDependantCommand(Request request) {
+		EditPart sender = ((ForwardedRequest) request).getSender();
+		List<EditPart> deleteObjects = Collections.singletonList(sender);
+		if (deleteObjects == null || deleteObjects.isEmpty()) {
+			return null;
+		}
+		return new DeleteCommand(deleteObjects);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/NewNonResizeEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/NewNonResizeEditPolicy.java
new file mode 100755
index 0000000..92ba506
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/NewNonResizeEditPolicy.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Handle;
+import org.eclipse.gef.SharedCursors;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.handles.AbstractHandle;
+import org.eclipse.gef.handles.NonResizableHandleKit;
+import org.eclipse.gef.tools.SelectEditPartTracker;
+import org.eclipse.xwt.tools.ui.designer.core.parts.tools.SelectionHandle;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class NewNonResizeEditPolicy extends NonResizableEditPolicy {
+
+	private boolean displayNonHandles;
+
+	public NewNonResizeEditPolicy(boolean displayNonHandles) {
+		this.displayNonHandles = displayNonHandles;
+		setDragAllowed(false);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.NonResizableEditPolicy#createSelectionHandles()
+	 */
+	protected List<Handle> createSelectionHandles() {
+		List<Handle> list = new ArrayList<Handle>();
+		GraphicalEditPart host = (GraphicalEditPart) getHost();
+		if (displayNonHandles) {
+			if (isDragAllowed()) {
+				NonResizableHandleKit.addHandles(host, list);
+			} else {
+				NonResizableHandleKit.addHandles(host, list, new SelectEditPartTracker(getHost()), SharedCursors.ARROW);
+			}
+		} else {
+			if (isDragAllowed()) {
+				NonResizableHandleKit.addMoveHandle(host, list);
+			}
+			list.add(createSelectionHandle(host));
+		}
+		return list;
+	}
+
+	protected AbstractHandle createSelectionHandle(GraphicalEditPart host) {
+		return new SelectionHandle(host);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/NewResizableEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/NewResizableEditPolicy.java
new file mode 100755
index 0000000..932791e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/NewResizableEditPolicy.java
@@ -0,0 +1,180 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.PrecisionRectangle;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Handle;
+import org.eclipse.gef.editpolicies.ResizableEditPolicy;
+import org.eclipse.gef.handles.NonResizableHandleKit;
+import org.eclipse.gef.handles.ResizableHandleKit;
+import org.eclipse.gef.requests.ChangeBoundsRequest;
+import org.eclipse.xwt.tools.ui.designer.utils.OffsetUtil;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class NewResizableEditPolicy extends ResizableEditPolicy {
+	protected static final int WIDTH = 50;
+	protected static final int HEIGHT = 16;
+
+	private boolean diaplayNonHandles = true;
+	private Label tooltip;
+
+	public NewResizableEditPolicy(int directions, boolean displayNonHandles) {
+		setResizeDirections(directions);
+		this.diaplayNonHandles = displayNonHandles;
+	}
+
+	/**
+	 * @see org.eclipse.gef.editpolicies.SelectionHandlesEditPolicy#createSelectionHandles()
+	 */
+	protected List<Handle> createSelectionHandles() {
+		List<Handle> list = new ArrayList<Handle>();
+		int directions = getResizeDirections();
+		if (directions == 0 && diaplayNonHandles)
+			NonResizableHandleKit.addHandles((GraphicalEditPart) getHost(), list);
+		else if (directions != -1) {
+			ResizableHandleKit.addMoveHandle((GraphicalEditPart) getHost(), list);
+			if ((directions & PositionConstants.EAST) != 0)
+				ResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.EAST);
+			else if (diaplayNonHandles)
+				NonResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.EAST);
+			if ((directions & PositionConstants.SOUTH_EAST) == PositionConstants.SOUTH_EAST)
+				ResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.SOUTH_EAST);
+			else if (diaplayNonHandles)
+				NonResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.SOUTH_EAST);
+			if ((directions & PositionConstants.SOUTH) != 0)
+				ResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.SOUTH);
+			else if (diaplayNonHandles)
+				NonResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.SOUTH);
+			if ((directions & PositionConstants.SOUTH_WEST) == PositionConstants.SOUTH_WEST)
+				ResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.SOUTH_WEST);
+			else if (diaplayNonHandles)
+				NonResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.SOUTH_WEST);
+			if ((directions & PositionConstants.WEST) != 0)
+				ResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.WEST);
+			else if (diaplayNonHandles)
+				NonResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.WEST);
+			if ((directions & PositionConstants.NORTH_WEST) == PositionConstants.NORTH_WEST)
+				ResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.NORTH_WEST);
+			else if (diaplayNonHandles)
+				NonResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.NORTH_WEST);
+			if ((directions & PositionConstants.NORTH) != 0)
+				ResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.NORTH);
+			else if (diaplayNonHandles)
+				NonResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.NORTH);
+			if ((directions & PositionConstants.NORTH_EAST) == PositionConstants.NORTH_EAST)
+				ResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.NORTH_EAST);
+			else if (diaplayNonHandles)
+				NonResizableHandleKit.addHandle((GraphicalEditPart) getHost(), list, PositionConstants.NORTH_EAST);
+		}
+		return list;
+	}
+
+	protected Label getToolTip() {
+		if (tooltip == null) {
+			tooltip = new Label();
+		}
+		if (tooltip.getParent() == null) {
+			addFeedback(tooltip);
+		}
+		return tooltip;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.NonResizableEditPolicy#showChangeBoundsFeedback(org.eclipse.gef.requests.ChangeBoundsRequest)
+	 */
+	protected void showChangeBoundsFeedback(ChangeBoundsRequest request) {
+		IFigure feedback = getDragSourceFeedbackFigure();
+
+		Rectangle init = getInitialFeedbackBounds().getCopy();
+		PrecisionRectangle rect = new PrecisionRectangle(init);
+		getHostFigure().translateToAbsolute(rect);
+		Point remove = request.getMoveDelta();
+		rect.translate(remove);
+		Dimension resize = request.getSizeDelta();
+		rect.resize(resize);
+
+		feedback.translateToRelative(rect);
+		feedback.setBounds(rect);
+
+		Point p = rect.getRight();
+		int directions = request.getResizeDirection();
+		if (directions != -1) {
+			if ((directions & PositionConstants.SOUTH_EAST) == PositionConstants.SOUTH_EAST) {
+				p = rect.getLocation().getTranslated(rect.width, rect.height);
+			} else if ((directions & PositionConstants.SOUTH_WEST) == PositionConstants.SOUTH_WEST) {
+				p = rect.getLocation().getTranslated(-WIDTH, rect.height);
+			} else if ((directions & PositionConstants.NORTH_WEST) == PositionConstants.NORTH_WEST) {
+				p = rect.getLocation().getTranslated(-WIDTH, -HEIGHT);
+			} else if ((directions & PositionConstants.NORTH_EAST) == PositionConstants.NORTH_EAST) {
+				p = rect.getLocation().getTranslated(rect.width, -HEIGHT);
+			} else if ((directions & PositionConstants.SOUTH) != 0) {
+				p = rect.getLocation().getTranslated((rect.width - WIDTH) / 2, rect.height);
+			} else if ((directions & PositionConstants.EAST) != 0) {
+				p = rect.getLocation().getTranslated(rect.width, rect.height / 2);
+			} else if ((directions & PositionConstants.WEST) != 0) {
+				p = rect.getLocation().getTranslated(-WIDTH, rect.height / 2);
+			} else if ((directions & PositionConstants.NORTH) != 0) {
+				p = rect.getLocation().getTranslated((rect.width - WIDTH) / 2, -HEIGHT);
+			}
+		}
+
+		Dimension size = new Dimension(WIDTH, HEIGHT);
+		Label tip = getToolTip();
+		// tip.setOpaque(true);
+		// tip.setBackgroundColor(ColorConstants.red);
+		tip.setBounds(new Rectangle(p, size));
+		if (resize != null && (resize.width != 0 || resize.height != 0)) {
+			tip.setForegroundColor(ColorConstants.black);
+			tip.setText((init.width + resize.width) + "," + (init.height + resize.height));
+		} else if (remove != null && (remove.x != 0 || remove.y != 0)) {
+			tip.setForegroundColor(ColorConstants.blue);
+			Point moveTo = init.getLocation();
+			getHostFigure().translateToAbsolute(moveTo);
+			moveTo = moveTo.getTranslated(remove);
+			getHostFigure().translateToRelative(moveTo);
+			p = ((GraphicalEditPart) getHost().getParent()).getContentPane().getClientArea().getLocation().getNegated();
+			moveTo.translate(p);
+			int xOffset = OffsetUtil.getXOffset(getHost().getParent());
+			int yOffset = OffsetUtil.getYOffset(getHost().getParent());
+			moveTo.translate(-xOffset, -yOffset);
+			tip.setText((moveTo.x) + "," + (moveTo.y));
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.NonResizableEditPolicy#eraseChangeBoundsFeedback(org.eclipse.gef.requests.ChangeBoundsRequest)
+	 */
+	protected void eraseChangeBoundsFeedback(ChangeBoundsRequest request) {
+		super.eraseChangeBoundsFeedback(request);
+		if (tooltip != null && tooltip.getParent() != null) {
+			removeFeedback(tooltip);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/PolicyConstants.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/PolicyConstants.java
new file mode 100755
index 0000000..a5236d7
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/PolicyConstants.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public interface PolicyConstants {
+
+	/**
+	 * see {@link ExpandableEditPolicy}.
+	 */
+	String EXPANDABLE_EDITPOLICY = "Expandable EditPolicy";
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/feedback/CrossFeedback.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/feedback/CrossFeedback.java
new file mode 100755
index 0000000..becebdc
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/feedback/CrossFeedback.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.feedback;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.Figure;
+import org.eclipse.draw2d.Graphics;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.XYLayout;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.swt.SWT;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class CrossFeedback extends Figure {
+	private static final int WIDTH = 50;
+	private static final int HEIGHT = 50;
+	private Point center;
+	private Label tooltip;
+
+	public CrossFeedback(Point center) {
+		tooltip = new Label();
+		tooltip.setForegroundColor(ColorConstants.blue);
+		setCenter(center);
+		setLayoutManager(new XYLayout());
+		add(tooltip);
+	}
+
+	public void setCenter(Point center) {
+		this.center = center;
+		Point l = center.getTranslated(-(WIDTH / 2), -(HEIGHT / 2));
+		setBounds(new Rectangle(l.x, l.y, WIDTH, HEIGHT));
+		tooltip.setBounds(new Rectangle(l.x, l.y, 50, 25));
+		repaint();
+	}
+
+	public Point getCenter() {
+		return center;
+	}
+
+	public void setTooltipText(String text) {
+		if (text == null) {
+			text = "";
+		}
+		tooltip.setText(text);
+	}
+
+	protected void paintFigure(Graphics graphics) {
+		graphics.setLineStyle(SWT.LINE_DOT);
+		graphics.setForegroundColor(ColorConstants.blue);
+		int x = center.x;
+		int y = center.y;
+		Point p1 = new Point(x - (WIDTH / 2), y);
+		Point p2 = new Point(x + (WIDTH / 2), center.y);
+		graphics.drawLine(p1, p2);
+		Point p3 = new Point(x, y - (HEIGHT / 2));
+		Point p4 = new Point(x, y + (HEIGHT / 2));
+		graphics.drawLine(p3, p4);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/feedback/FeedbackHelper.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/feedback/FeedbackHelper.java
new file mode 100755
index 0000000..524a0c7
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/feedback/FeedbackHelper.java
@@ -0,0 +1,116 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.feedback;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.Polygon;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.xwt.tools.ui.designer.core.figures.OutlineBorder;
+import org.eclipse.xwt.tools.ui.designer.editor.palette.CreateReqHelper;
+import org.eclipse.xwt.tools.ui.designer.parts.ShellEditPart;
+import org.eclipse.xwt.tools.ui.designer.utils.OffsetUtil;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class FeedbackHelper {
+
+	public static boolean showCreationFeedback(FeedbackManager fbm, CreateRequest createReq) {
+		if (fbm.contains(createReq)) {
+			return true;
+		}
+		CreateReqHelper helper = new CreateReqHelper(createReq);
+		if (helper.canCreate(fbm.getHost())) {
+			Rectangle r = fbm.getHostFigure().getBounds().getCopy();
+			if (helper.isCreate("layout") || helper.isCreate("menu")) {
+				return showFillFeedback(fbm, createReq);
+			} else if (helper.isCreate("menuBar")) {
+				r = getMenuFeedbackBounds(fbm);
+				if (r != null) {
+					Label feedback = new Label("Menu bar would be placed here");
+					feedback.setBounds(r);
+					feedback.setBackgroundColor(ColorConstants.button);
+					feedback.setOpaque(true);
+					feedback.setBorder(new OutlineBorder(ColorConstants.blue, ColorConstants.button));
+					fbm.addFeedback(createReq, feedback);
+					return true;
+				}
+			} else {
+				return false;
+			}
+		}
+		return false;
+	}
+
+	public static Polygon createTargetFeedback() {
+		Polygon polygon = new Polygon();
+		polygon.addPoint(new Point());
+		polygon.addPoint(new Point());
+		polygon.addPoint(new Point());
+		polygon.addPoint(new Point());
+		polygon.setForegroundColor(ColorConstants.blue);
+		return polygon;
+	}
+	
+	public static void updateTargetFeedback(GraphicalEditPart editPart, Polygon polygon ) {
+		IFigure figure = editPart.getFigure();
+		Rectangle rectangle = figure.getBounds().getCopy();
+		figure.translateToAbsolute(rectangle);
+		
+		Point p = rectangle.getBottomLeft();
+		polygon.translateToRelative(p);
+		polygon.setPoint(p, 0);
+		
+		p = rectangle.getBottomRight();
+		polygon.translateToRelative(p);
+		polygon.setPoint(p, 1);
+
+		p = rectangle.getTopRight();
+		polygon.translateToRelative(p);
+		polygon.setPoint(p, 2);
+		
+		p = rectangle.getTopLeft();
+		polygon.translateToRelative(p);
+		polygon.setPoint(p, 3);
+	}
+
+	public static boolean showFillFeedback(FeedbackManager fbm, CreateRequest createReq) {
+		if (fbm.contains(createReq)) {
+			return true;
+		}
+		CreateReqHelper helper = new CreateReqHelper(createReq);
+		if (helper.canCreate(fbm.getHost())) {
+			Rectangle r = fbm.getHostFigure().getBounds().getCopy();
+			FillFeedback feedback = new FillFeedback(new Rectangle(r.x, r.y, r.width, r.height));
+			fbm.addFeedback(createReq, feedback);
+			return true;
+		}
+		return false;
+	}
+
+	private static Rectangle getMenuFeedbackBounds(FeedbackManager fbm) {
+		EditPart host = fbm.getHost();
+		if (host instanceof ShellEditPart) {
+			int yOffset = OffsetUtil.getYOffset(host);
+			Rectangle r = fbm.getHostFigure().getBounds().getCopy();
+			return new Rectangle(r.x + 2, r.y + yOffset - 3, r.width - 4, 22);
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/feedback/FeedbackManager.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/feedback/FeedbackManager.java
new file mode 100755
index 0000000..8146e94
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/feedback/FeedbackManager.java
@@ -0,0 +1,74 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.feedback;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.LayerConstants;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.editparts.LayerManager;
+import org.eclipse.gef.editpolicies.GraphicalEditPolicy;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class FeedbackManager {
+
+	private GraphicalEditPolicy policy;
+
+	public FeedbackManager(GraphicalEditPolicy policy) {
+		this.policy = policy;
+	}
+
+	private final Map<Request, IFigure> req2feedback = new HashMap<Request, IFigure>(1);
+
+	public synchronized void addFeedback(Request req, IFigure feedback) {
+		if (req2feedback.containsKey(req)) {
+			return;
+		}
+		req2feedback.put(req, feedback);
+		IFigure feedbackLayer = getFeedbackLayer();
+		if (feedbackLayer != null && feedback != null) {
+			feedbackLayer.add(feedback);
+		}
+	}
+
+	public synchronized boolean contains(Request req) {
+		return req2feedback.containsKey(req);
+	}
+
+	public IFigure getFeedbackLayer() {
+		return LayerManager.Helper.find(policy.getHost()).getLayer(LayerConstants.FEEDBACK_LAYER);
+	}
+
+	public synchronized IFigure eraseFeedback(Request req) {
+		IFigure feedback = req2feedback.remove(req);
+		IFigure feedbackLayer = getFeedbackLayer();
+		if (feedbackLayer != null && feedback != null) {
+			feedbackLayer.remove(feedback);
+		}
+		return feedback;
+	}
+
+	public EditPart getHost() {
+		return policy.getHost();
+	}
+
+	public IFigure getHostFigure() {
+		return ((GraphicalEditPart) getHost()).getFigure();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/feedback/FillFeedback.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/feedback/FillFeedback.java
new file mode 100755
index 0000000..3a214db
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/feedback/FillFeedback.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.feedback;
+
+import org.eclipse.draw2d.Graphics;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class FillFeedback extends RectangleFigure {
+	private boolean opaque;
+	private static Color fillColor = new Color(null, 31, 31, 31);
+	private static Color lineColor = new Color(null, 255, 0, 255);
+
+	public FillFeedback(Rectangle r) {
+		this(r, 1, SWT.LINE_SOLID, fillColor, lineColor, true);
+	}
+
+	public FillFeedback(Rectangle r, int lineWidth, int lineStyle, Color background, Color foreground, boolean opaque) {
+		setBounds(r);
+		setLineWidth(lineWidth);
+		setLineStyle(lineStyle);
+		if (foreground != null)
+			setForegroundColor(foreground);
+		if (background != null)
+			setBackgroundColor(background);
+		setOpaque(opaque);
+		setFillXOR(true);
+		this.opaque = opaque;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.draw2d.Figure#setBackgroundColor(org.eclipse.swt.graphics.Color)
+	 */
+	public void setBackgroundColor(Color bg) {
+		Color backgroundColor = getBackgroundColor();
+		if ((backgroundColor == null && bg != null) || (backgroundColor != null && backgroundColor != bg)) {
+			opaque = true;
+		}
+		super.setBackgroundColor(bg);
+	}
+
+	public void fillShape(Graphics g) {
+		if (opaque) {
+			Rectangle r = getBounds().getCopy().resize(-1, -1);
+			g.fillRectangle(r);
+		}
+	}
+
+	public void outlineShape(Graphics g) {
+		Rectangle r = getBounds().getCopy().resize(-1, -1);
+		g.drawRectangle(r);
+
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/ControlLayoutEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/ControlLayoutEditPolicy.java
new file mode 100755
index 0000000..766601b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/ControlLayoutEditPolicy.java
@@ -0,0 +1,88 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.xwt.tools.ui.designer.commands.AbstractCreateCommand;
+import org.eclipse.xwt.tools.ui.designer.policies.feedback.FeedbackHelper;
+import org.eclipse.xwt.tools.ui.designer.policies.feedback.FeedbackManager;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * This class is used to create a LAYOUT_ROLE for each controls of SWT, so we can easily create or add some properties.
+ * 
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ControlLayoutEditPolicy extends LayoutEditPolicy {
+	private FeedbackManager fbm = new FeedbackManager(this);
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#createChildEditPolicy(org.eclipse.gef.EditPart)
+	 */
+	protected EditPolicy createChildEditPolicy(EditPart child) {
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#showLayoutTargetFeedback(org.eclipse.gef.Request)
+	 */
+	protected void showLayoutTargetFeedback(Request request) {
+		if (request instanceof CreateRequest) {
+			FeedbackHelper.showFillFeedback(fbm, (CreateRequest) request);
+		} else {
+			super.showLayoutTargetFeedback(request);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#eraseLayoutTargetFeedback(org.eclipse.gef.Request)
+	 */
+	protected void eraseLayoutTargetFeedback(Request request) {
+		fbm.eraseFeedback(request);
+		super.eraseLayoutTargetFeedback(request);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#getCreateCommand(org.eclipse.gef.requests.CreateRequest)
+	 */
+	protected Command getCreateCommand(CreateRequest request) {
+		return new AbstractCreateCommand(getHost(), request) {
+			protected void preExecute(XamlNode newNode, CreateRequest createRequest) {
+				// Do nothing.
+			}
+		};
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#getMoveChildrenCommand(org.eclipse.gef.Request)
+	 */
+	protected Command getMoveChildrenCommand(Request request) {
+		return null;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/FillLayoutEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/FillLayoutEditPolicy.java
new file mode 100755
index 0000000..7a03cd8
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/FillLayoutEditPolicy.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Layout;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
+import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
+import org.eclipse.xwt.tools.ui.designer.policies.NewNonResizeEditPolicy;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class FillLayoutEditPolicy extends RowLayoutEditPolicy {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.ve.xwt.editpolicies.RowLayoutEditPolicy#createChildEditPolicy(org.eclipse.gef.EditPart)
+	 */
+	protected EditPolicy createChildEditPolicy(EditPart child) {
+		NewNonResizeEditPolicy childEditPolicy = new NewNonResizeEditPolicy(false);
+		childEditPolicy.setDragAllowed(true);
+		return childEditPolicy;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.designer.policies.RowLayoutEditPolicy#isHorizontal()
+	 */
+	protected boolean isHorizontal() {
+		EditPart host = getHost();
+		if (host != null && host instanceof CompositeEditPart) {
+			Layout layout = ((CompositeEditPart) host).getLayout();
+			return layout != null && layout instanceof FillLayout && ((FillLayout) layout).type == SWT.HORIZONTAL;
+		}
+		return super.isHorizontal();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.policies.layout.RowLayoutEditPolicy#getType()
+	 */
+	public LayoutType getType() {
+		return LayoutType.FillLayout;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/FormLayoutEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/FormLayoutEditPolicy.java
new file mode 100755
index 0000000..f6a82b4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/FormLayoutEditPolicy.java
@@ -0,0 +1,275 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.gef.editpolicies.XYLayoutEditPolicy;
+import org.eclipse.gef.requests.ChangeBoundsRequest;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gef.requests.ForwardedRequest;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.xwt.tools.ui.designer.commands.FormDataCreateCommand;
+import org.eclipse.xwt.tools.ui.designer.commands.FormDataDeleteCommand;
+import org.eclipse.xwt.tools.ui.designer.commands.ResizeCommand;
+import org.eclipse.xwt.tools.ui.designer.editor.dnd.EntryCreateRequest;
+import org.eclipse.xwt.tools.ui.designer.editor.palette.CreateReqHelper;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
+import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
+import org.eclipse.xwt.tools.ui.designer.parts.ControlEditPart;
+import org.eclipse.xwt.tools.ui.designer.policies.NewResizableEditPolicy;
+import org.eclipse.xwt.tools.ui.designer.policies.feedback.FeedbackHelper;
+import org.eclipse.xwt.tools.ui.designer.policies.feedback.FeedbackManager;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.form.FormDataFigure;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.form.FormLayoutData;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.form.FormLayoutHelper;
+import org.eclipse.xwt.tools.ui.designer.utils.FigureUtil;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class FormLayoutEditPolicy extends XYLayoutEditPolicy implements
+		ILayoutEditPolicy {
+	private FeedbackManager fbm = new FeedbackManager(this);
+	private FormLayoutHelper helper;
+	private FormDataFigure feedback;
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#getCreateCommand(org.eclipse
+	 * .gef.requests.CreateRequest)
+	 */
+	protected Command getCreateCommand(CreateRequest request) {
+		return getFormDataCommand(request);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#activate()
+	 */
+	public void activate() {
+		helper = new FormLayoutHelper((CompositeEditPart) getHost());
+		super.activate();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.tools.ui.designer.policies.layout.ILayoutEditPolicy
+	 * #refresh()
+	 */
+	public void refresh() {
+
+	}
+
+	private FormLayoutData computeData(Request request) {
+		if (helper == null) {
+			helper = new FormLayoutHelper((CompositeEditPart) getHost());
+		}
+		Point location = null;
+		Dimension size = null;
+		Control control = null;
+		if (REQ_CREATE == request.getType()) {
+			location = ((EntryCreateRequest) request).getLocation().getCopy();
+			// size = ((EntryCreateRequest) request).getInitSize();
+		} else if (REQ_MOVE == request.getType()) {
+			location = ((ChangeBoundsRequest) request).getLocation().getCopy();
+			EditPart part = (EditPart) ((ChangeBoundsRequest) request)
+					.getEditParts().get(0);
+			if (part != null && part instanceof ControlEditPart) {
+				control = (Control) ((ControlEditPart) part).getWidget();
+				if (control != null && !control.isDisposed()) {
+					size = ((ControlEditPart) part).getVisualInfo().getBounds()
+							.getSize();
+				}
+			}
+		}
+		if (size == null) {
+			size = new Dimension(10, 10);
+		}
+		if (location != null && size != null) {
+			Point relative = FigureUtil.translateToRelative(getHost(), location
+					.getCopy());
+			FormLayoutData layoutData = helper.computeData(new Rectangle(
+					relative, size), control);
+			if (layoutData != null) {
+				layoutData.bounds = new Rectangle(location, size);
+			}
+			return layoutData;
+		}
+		return null;
+	}
+
+	private Command getFormDataCommand(Request request) {
+		EditPart parent = getHost();
+		XamlNode forCreate = null;
+		if (REQ_CREATE.equals(request.getType())) {
+			CreateReqHelper reqHelper = new CreateReqHelper(
+					(CreateRequest) request);
+			if (reqHelper.canCreate(parent)) {
+				forCreate = reqHelper.getNewObject();
+			}
+		} else if (REQ_MOVE_CHILDREN.equals(request.getType())) {
+			EditPart part = (EditPart) ((ChangeBoundsRequest) request)
+					.getEditParts().get(0);
+			if (part != null) {
+				forCreate = (XamlNode) part.getModel();
+			}
+		}
+		if (forCreate == null) {
+			return null;
+		}
+		FormLayoutData layoutData = null;
+		if (feedback != null) {
+			layoutData = feedback.getLayoutData();
+		}
+		if (layoutData == null) {
+			layoutData = computeData(request);
+		}
+		if (layoutData == null || layoutData.data == null) {
+			return null;
+		}
+		return new FormDataCreateCommand(parent, forCreate, layoutData.data);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.tools.ui.designer.policies.layout.NullLayoutEditPolicy
+	 * #showLayoutTargetFeedback(org.eclipse.gef.Request)
+	 */
+	protected void showLayoutTargetFeedback(Request request) {
+		if (REQ_CREATE.equals(request.getType())
+				&& FeedbackHelper.showCreationFeedback(fbm,
+						(CreateRequest) request)) {
+			return;
+		}
+		FormLayoutData data = computeData(request);
+		if (data != null) {
+			showFormdataFeedback(data);
+		} else {
+			super.showLayoutTargetFeedback(request);
+		}
+	}
+
+	private void showFormdataFeedback(FormLayoutData layoutData) {
+		if (layoutData == null || layoutData.data == null
+				|| layoutData.bounds == null) {
+			return;
+		}
+		if (feedback == null) {
+			feedback = new FormDataFigure(layoutData);
+		}
+		feedback.setLayoutData(layoutData);
+		feedback.setBounds(getHostFigure().getBounds());
+		addFeedback(feedback);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.tools.ui.designer.policies.layout.NullLayoutEditPolicy
+	 * #eraseLayoutTargetFeedback(org.eclipse.gef.Request)
+	 */
+	protected void eraseLayoutTargetFeedback(Request request) {
+		if (feedback != null) {
+			removeFeedback(feedback);
+			feedback = null;
+		}
+		super.eraseLayoutTargetFeedback(request);
+		fbm.eraseFeedback(request);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.tools.ui.designer.policies.layout.ILayoutEditPolicy
+	 * #getType()
+	 */
+	public LayoutType getType() {
+		return LayoutType.FormLayout;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.ConstrainedLayoutEditPolicy#
+	 * getMoveChildrenCommand(org.eclipse.gef.Request)
+	 */
+	protected Command getMoveChildrenCommand(Request request) {
+		return getFormDataCommand(request);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.ConstrainedLayoutEditPolicy#
+	 * getResizeChildrenCommand(org.eclipse.gef.requests.ChangeBoundsRequest)
+	 */
+	protected Command getResizeChildrenCommand(ChangeBoundsRequest request) {
+		CompoundCommand command = new CompoundCommand();
+		Dimension growth = request.getSizeDelta();
+		List editParts = request.getEditParts();
+		for (Iterator iterator = editParts.iterator(); iterator.hasNext();) {
+			EditPart child = (EditPart) iterator.next();
+			command.add(new ResizeCommand(child, growth));
+		}
+		return command.unwrap();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.ConstrainedLayoutEditPolicy#
+	 * createChangeConstraintCommand(org.eclipse.gef.EditPart, java.lang.Object)
+	 */
+	protected Command createChangeConstraintCommand(EditPart child,
+			Object constraint) {
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#getDeleteDependantCommand
+	 * (org.eclipse.gef.Request)
+	 */
+	protected Command getDeleteDependantCommand(Request request) {
+		ForwardedRequest forwarded = (ForwardedRequest) request;
+		EditPart sender = forwarded.getSender();
+		return new FormDataDeleteCommand(getHost(), sender);
+	}
+
+	protected EditPolicy createChildEditPolicy(EditPart child) {
+		return new NewResizableEditPolicy(PositionConstants.NSEW, true);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/GridLayoutEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/GridLayoutEditPolicy.java
new file mode 100755
index 0000000..220e11f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/GridLayoutEditPolicy.java
@@ -0,0 +1,884 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.draw2d.FigureListener;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.xwt.tools.ui.palette.Entry;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartListener;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.gef.commands.UnexecutableCommand;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.requests.ChangeBoundsRequest;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gef.requests.DropRequest;
+import org.eclipse.gef.requests.ForwardedRequest;
+import org.eclipse.gef.requests.GroupRequest;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.xwt.tools.ui.designer.commands.GridLayoutCommandsFactory;
+import org.eclipse.xwt.tools.ui.designer.commands.NoOpCommand;
+import org.eclipse.xwt.tools.ui.designer.editor.palette.CreateReqHelper;
+import org.eclipse.xwt.tools.ui.designer.editor.palette.EntryHelper;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
+import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
+import org.eclipse.xwt.tools.ui.designer.parts.MenuBarEditPart;
+import org.eclipse.xwt.tools.ui.designer.policies.NewNonResizeEditPolicy;
+import org.eclipse.xwt.tools.ui.designer.policies.NewResizableEditPolicy;
+import org.eclipse.xwt.tools.ui.designer.policies.feedback.FeedbackHelper;
+import org.eclipse.xwt.tools.ui.designer.policies.feedback.FeedbackManager;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridController;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridLayoutAddedCellFeedbackFigure;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridLayoutColumnFigure;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridLayoutFeedbackFigure;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridLayoutGridFigure;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridLayoutPolicyHelper;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridLayoutRequest;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridLayoutRowFigure;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridLayoutSpanFeedbackFigure;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridSpanHandle;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.IGridListener;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class GridLayoutEditPolicy extends LayoutEditPolicy implements
+		IGridListener, ILayoutEditPolicy {
+
+	public static final String REQ_GRIDLAYOUT_SPAN = "GridLayout span cells"; //$NON-NLS-1$
+
+	public static final int DEFAULT_CELL_WIDTH = 40;
+	public static final int DEFAULT_CELL_HEIGHT = 35;
+	private static final int ADDEDCELLBORDER = 3; // How much to expand cell for
+													// added cell to draw the
+													// new border.
+	private GridController gridController;
+	private boolean fShowGrid = false;
+	private GridLayoutGridFigure fGridLayoutGridFigure;
+	private GridLayoutSpanFeedbackFigure fGridLayoutSpanFigure;
+	private GridLayoutFeedbackFigure fGridLayoutCellFigure;
+	private IFigure fRowColFigure = null;
+	private EditPartListener editPartListener;
+	private GridLayoutPolicyHelper helper = new GridLayoutPolicyHelper();
+
+	private FeedbackManager fbm = new FeedbackManager(this);
+
+	protected FigureListener hostFigureListener = new FigureListener() {
+		public void figureMoved(IFigure source) {
+			refresh();
+		}
+	};
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#activate()
+	 */
+	public void activate() {
+		helper.setHost((CompositeEditPart) getHost());
+		gridController = new GridController();
+		GridController.registerEditPart(getHost(), gridController);
+		gridController.addGridListener(this);
+		getHostFigure().addFigureListener(hostFigureListener);
+		if (getHost().getSelected() == EditPart.SELECTED
+				|| getHost().getSelected() == EditPart.SELECTED_PRIMARY) {
+			gridController.setGridShowing(true);
+		}
+		editPartListener = createEditPartListener();
+		getHost().addEditPartListener(editPartListener);
+		List children = getHost().getChildren();
+		Iterator iterator = children.iterator();
+		while (iterator.hasNext())
+			((EditPart) iterator.next()).addEditPartListener(editPartListener);
+		super.activate();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#createChildEditPolicy(org
+	 * .eclipse.gef.EditPart)
+	 */
+	protected EditPolicy createChildEditPolicy(EditPart child) {
+		if (child instanceof MenuBarEditPart) {
+			return new NewNonResizeEditPolicy(false);
+		}
+		// return new NonResizableSpannableEditPolicy(this);
+		return new NewResizableEditPolicy(PositionConstants.SOUTH
+				| PositionConstants.EAST, true);
+	}
+
+	private EditPartListener createEditPartListener() {
+		return new EditPartListener.Stub() {
+			public void childAdded(EditPart editpart, int index) {
+				if (editPartListener != null)
+					editpart.addEditPartListener(editPartListener);
+				helper.refresh();
+				refreshGridFigure();
+			}
+
+			public void removingChild(EditPart editpart, int index) {
+				if (editPartListener != null)
+					editpart.removeEditPartListener(editPartListener);
+				helper.refresh();
+				refreshGridFigure();
+			}
+
+			public void selectedStateChanged(EditPart editpart) {
+				if ((editpart == null)
+						|| (editpart == getHost())
+						|| (isChildEditPart(editpart))
+						&& (editpart.getSelected() == EditPart.SELECTED || editpart
+								.getSelected() == EditPart.SELECTED_PRIMARY)) {
+					if (gridController != null) {
+						gridController.setGridShowing(true);
+					} else {
+						if (gridController != null)
+							gridController.setGridShowing(false);
+					}
+				} else {
+					// Hide the grid just in case we were show before and
+					// changed the prefs
+					if (gridController != null
+							&& gridController.isGridShowing())
+						gridController.setGridShowing(false);
+				}
+			}
+		};
+	}
+
+	private GridLayoutRequest createGridLayoutRequest(Point position) {
+		return getGridLayoutGridFigure().getGridLayoutRequest(position, helper);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#deactivate()
+	 */
+	public void deactivate() {
+
+		GridController gridController = GridController
+				.getGridController(getHost());
+		eraseGridFigure();
+		if (gridController != null) {
+			gridController.removeGridListener(this);
+			GridController.unregisterEditPart(getHost());
+		}
+
+		getHostFigure().removeFigureListener(hostFigureListener);
+		if (editPartListener != null) {
+			getHost().removeEditPartListener(editPartListener);
+			List children = getHost().getChildren();
+			Iterator iterator = children.iterator();
+			while (iterator.hasNext())
+				((EditPart) iterator.next())
+						.removeEditPartListener(editPartListener);
+			editPartListener = null;
+		}
+		super.deactivate();
+	}
+
+	/**
+	 * erase grid figure.
+	 */
+	private void eraseGridFigure() {
+		if (fGridLayoutGridFigure != null) {
+			if (fGridLayoutGridFigure.getParent() != null)
+				removeFeedback(fGridLayoutGridFigure);
+			fGridLayoutGridFigure = null;
+		}
+		fShowGrid = false;
+	}
+
+	public void eraseTargetFeedback(Request request) {
+		fbm.eraseFeedback(request);
+		if (!fShowGrid)
+			if (fGridLayoutGridFigure != null) {
+				if (fGridLayoutGridFigure.getParent() != null)
+					removeFeedback(fGridLayoutGridFigure);
+				fGridLayoutGridFigure = null;
+			}
+		if (fGridLayoutSpanFigure != null) {
+			removeFeedback(fGridLayoutSpanFigure);
+			fGridLayoutSpanFigure = null;
+		}
+		if (fGridLayoutCellFigure != null) {
+			removeFeedback(fGridLayoutCellFigure);
+			fGridLayoutCellFigure = null;
+		}
+		if (fRowColFigure != null) {
+			removeFeedback(fRowColFigure);
+			fRowColFigure = null;
+		}
+		super.eraseTargetFeedback(request);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#getCommand(org.eclipse.
+	 * gef.Request)
+	 */
+	public Command getCommand(Request request) {
+		// if (REQ_GRIDLAYOUT_SPAN.equals(request.getType())) {
+		// return getSpanChildrenCommand(request);
+		// }
+		if (REQ_RESIZE_CHILDREN.equals(request.getType())) {
+			return getResizeCommand(request);
+		}
+		return super.getCommand(request);
+	}
+
+	private Command getResizeCommand(Request request) {
+		ChangeBoundsRequest req = (ChangeBoundsRequest) request;
+		CompoundCommand resize = new CompoundCommand();
+		Command c;
+		GraphicalEditPart child;
+		List children = req.getEditParts();
+
+		for (int i = 0; i < children.size(); i++) {
+			child = (GraphicalEditPart) children.get(i);
+			c = createResizeChildrenCommand(request, child, req.getSizeDelta());
+			resize.add(c);
+		}
+		return resize.unwrap();
+	}
+
+	protected Command createResizeChildrenCommand(Request request,
+			EditPart child, Object newSize) {
+		GridLayoutCommandsFactory factory = new GridLayoutCommandsFactory(
+				(CompositeEditPart) getHost());
+		return factory.getResizeChildrenCommand(child,
+				(ChangeBoundsRequest) request);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#getAddCommand(org.eclipse
+	 * .gef.Request)
+	 */
+	protected Command getAddCommand(Request request) {
+		return getMoveChildrenCommand(request);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#getCreateCommand(org.eclipse
+	 * .gef.requests.CreateRequest)
+	 */
+	protected Command getCreateCommand(CreateRequest request) {
+		CreateReqHelper reqHelper = new CreateReqHelper(request);
+		if (!reqHelper.canCreate(getHost())) {
+			return null;
+		}
+		if (fGridLayoutGridFigure == null) {
+			// TODO: Maybe create layout here.
+			return UnexecutableCommand.INSTANCE;
+		}
+
+		Point position = getLocationFromRequest(request).getCopy();
+		GridLayoutRequest gridReq = createGridLayoutRequest(position);
+		Point cell = new Point(gridReq.column, gridReq.row);
+
+		Entry entry = (Entry) request.getNewObject();
+		XamlNode newObject = EntryHelper.getNode(entry);
+		if (newObject == null) {
+			return UnexecutableCommand.INSTANCE;
+		}
+		Object requestType = request.getType();
+		helper.startRequest();
+		switch (gridReq.type) {
+		case GridLayoutRequest.REPLACE_FILLER:
+			helper.replaceFiller(newObject, requestType, cell);
+			break;
+		case GridLayoutRequest.INSERT_COLUMN_WITHIN_ROW:
+			helper.insertColWithinRow(cell);
+			helper.replaceFillerOrEmpty(newObject, requestType, cell);
+			break;
+		case GridLayoutRequest.INSERT_COLUMN:
+		case GridLayoutRequest.ADD_COLUMN:
+			helper.createNewCol(cell.x);
+			helper.replaceFillerOrEmpty(newObject, requestType, cell);
+			break;
+		case GridLayoutRequest.INSERT_ROW:
+		case GridLayoutRequest.ADD_ROW:
+			helper.createNewRow(cell.y);
+			helper.replaceFillerOrEmpty(newObject, requestType, cell);
+			break;
+		case GridLayoutRequest.ADD_TO_EMPTY_CELL:
+			helper.replaceEmptyCell(newObject, requestType, cell);
+			break;
+		case GridLayoutRequest.ADD_ROW_COL:
+			cell.setLocation(helper.getNumColumns(), helper.getNumRows());
+			helper.createNewCol(cell.x);
+			if (cell.x != 0 || cell.y != 0)
+				helper.createNewRow(cell.y); // If other than (0,0) for add row
+												// col, we need a new row. If it
+												// was (0,0) then we are adding
+												// the first entry to the grid.
+			helper.replaceFillerOrEmpty(newObject, requestType, cell);
+			break;
+		case GridLayoutRequest.NO_ADD:
+			return UnexecutableCommand.INSTANCE;
+		}
+
+		Command result = helper.stopRequest();
+		return result;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#getDeleteDependantCommand
+	 * (org.eclipse.gef.Request)
+	 */
+	protected Command getDeleteDependantCommand(Request request) {
+		// Get the commands to insert filler labels into the cells where the
+		// control used to be
+		if (request instanceof ForwardedRequest) {
+			EditPart editPart = ((ForwardedRequest) request).getSender();
+			if (editPart instanceof CompositeEditPart) {
+				helper.setHost((CompositeEditPart) editPart);
+				helper.startRequest();
+				helper.deleteChild((XamlNode) editPart.getModel());
+				return helper.stopRequest();
+			}
+		}
+		return UnexecutableCommand.INSTANCE;
+	}
+
+	protected Command getOrphanChildrenCommand(Request request) {
+		// Get the commands to insert filler labels into the cells where the
+		// control used to be
+		if (request instanceof GroupRequest) {
+			helper.startRequest();
+			List children = getChildren((GroupRequest) request);
+			helper.orphanChildren(children);
+			return helper.stopRequest();
+		} else
+			return UnexecutableCommand.INSTANCE;
+	}
+
+	public List getChildren(GroupRequest request) {
+		List cEP = request.getEditParts();
+		List children = new ArrayList(cEP.size());
+		Iterator itr = cEP.iterator();
+		while (itr.hasNext()) {
+			Object child = ((EditPart) itr.next()).getModel();
+			children.add(child);
+		}
+		return children;
+	}
+
+	public Rectangle getFullCellBounds(EditPart child) {
+		if (getGridLayoutGridFigure() == null)
+			return new Rectangle();
+		Rectangle dims = helper.getChildDimensions((EObject) child.getModel());
+		Rectangle bounds;
+		if (dims != null) {
+			bounds = getGridLayoutGridFigure()
+					.getGridBroundsForCellBounds(dims);
+		} else
+			bounds = new Rectangle();
+
+		return bounds;
+	}
+
+	protected GridLayoutGridFigure getGridLayoutGridFigure() {
+		if (fGridLayoutGridFigure == null) {
+			fGridLayoutGridFigure = new GridLayoutGridFigure(helper);
+		}
+		return fGridLayoutGridFigure;
+	}
+
+	/**
+	 * @return the helper
+	 */
+	public GridLayoutPolicyHelper getHelper() {
+		return helper;
+	}
+
+	/*
+	 * this gets the location from the request and then makes it absolute
+	 * (relative to the bounds of the host figure). If we didn't do this the
+	 * point is relative to the viewport that is displayed, not absolute wrt to
+	 * the entire canvas.
+	 */
+	private Point getLocationFromRequest(Request request) {
+		Point loc = ((DropRequest) request).getLocation().getCopy();
+		getHostFigure().translateToRelative(loc);
+		return loc;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#getMoveChildrenCommand(
+	 * org.eclipse.gef.Request)
+	 */
+	protected Command getMoveChildrenCommand(Request request) {
+		if (fGridLayoutGridFigure == null
+				|| !(request instanceof ChangeBoundsRequest))
+			return UnexecutableCommand.INSTANCE;
+		ChangeBoundsRequest req = (ChangeBoundsRequest) request;
+		List editparts = req.getEditParts();
+		// Only allow one object to be moved
+		if (editparts.size() > 1)
+			return UnexecutableCommand.INSTANCE;
+
+		XamlNode trueEObject = (XamlNode) ((EditPart) editparts.get(0))
+				.getModel();
+		if (trueEObject == null) {
+			return UnexecutableCommand.INSTANCE;
+		}
+
+		Point position = getLocationFromRequest(request).getCopy();
+		GridLayoutRequest gridReq = createGridLayoutRequest(position);
+		Point cell = new Point(gridReq.column, gridReq.row);
+
+		Object requestType = request.getType();
+
+		helper.startRequest();
+		switch (gridReq.type) {
+		case GridLayoutRequest.REPLACE_FILLER:
+			helper.replaceFiller(trueEObject, requestType, cell);
+			break;
+		case GridLayoutRequest.INSERT_COLUMN_WITHIN_ROW:
+			helper.insertColWithinRow(cell);
+			helper.replaceFillerOrEmpty(trueEObject, requestType, cell);
+			break;
+		case GridLayoutRequest.INSERT_COLUMN:
+		case GridLayoutRequest.ADD_COLUMN:
+			helper.createNewCol(cell.x);
+			helper.replaceFillerOrEmpty(trueEObject, requestType, cell);
+			break;
+		case GridLayoutRequest.INSERT_ROW:
+		case GridLayoutRequest.ADD_ROW:
+			helper.createNewRow(cell.y);
+			helper.replaceFillerOrEmpty(trueEObject, requestType, cell);
+			break;
+		case GridLayoutRequest.ADD_TO_EMPTY_CELL:
+			helper.replaceEmptyCell(trueEObject, requestType, cell);
+			break;
+		case GridLayoutRequest.ADD_ROW_COL:
+			cell.setLocation(helper.getNumColumns(), helper.getNumRows());
+			helper.createNewCol(cell.x);
+			if (cell.x != 0 || cell.y != 0)
+				helper.createNewRow(cell.y); // If other than (0,0) for add row
+												// col, we need a new row. If it
+												// was (0,0) then we are adding
+												// the first entry to the grid.
+			helper.replaceFillerOrEmpty(trueEObject, requestType, cell);
+			break;
+		case GridLayoutRequest.NO_ADD:
+			return UnexecutableCommand.INSTANCE;
+		}
+
+		Command command = helper.stopRequest();
+		return command;
+	}
+
+	protected Command getSpanChildrenCommand(Request generic) {
+		ChangeBoundsRequest request = (ChangeBoundsRequest) generic;
+		List editParts = request.getEditParts();
+		if (editParts.isEmpty() || editParts.size() > 1)
+			return UnexecutableCommand.INSTANCE;
+
+		// Get the cell location that the mouse was dragged to
+		Point spanToPosition = getLocationFromRequest(request).getCopy();
+		Point spanToCellLocation = getGridLayoutGridFigure().getCellLocation(
+				spanToPosition.x, spanToPosition.y);
+		// Get the cell location where we started the drag operation
+		Dimension dim = request.getSizeDelta();
+		int handleSizeOffset = GridSpanHandle.HANDLE_SIZE / 2;
+		Point startPosition = new Point(spanToPosition.x - dim.width
+				- handleSizeOffset, spanToPosition.y - dim.height
+				- handleSizeOffset);
+		// Get the cell location of the child component
+		GraphicalEditPart ep = (GraphicalEditPart) editParts.get(0);
+		EObject child = (EObject) ep.getModel();
+		Point childCellLocation = helper.getChildDimensions(child)
+				.getLocation();
+		Point startCellLocation = getGridLayoutGridFigure().getCellLocation(
+				startPosition);
+		// If the cell location where the pointer is located is different from
+		// the original cell location where we started,
+		// create the commands to change the gridwidth or gridheight
+		if ((spanToCellLocation.x >= childCellLocation.x && spanToCellLocation.y >= childCellLocation.y)
+				&& (spanToCellLocation.x != startCellLocation.x || spanToCellLocation.y != startCellLocation.y)) {
+			// Let the helper get the gridWidth or gridHeight commands based on
+			// the cell location
+			// where the pointer is and the span direction (EAST for gridwidth
+			// or SOUTH for gridheight)
+			helper.startRequest();
+			helper.spanChild(child, new Point(spanToCellLocation.x
+					- childCellLocation.x + 1, spanToCellLocation.y
+					- childCellLocation.y + 1), request.getResizeDirection(),
+					null);
+			return helper.stopRequest();
+		}
+		return NoOpCommand.INSTANCE;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.soyatec.xaml.ve.xwt.editpolicies.gridlayout.IGridListener#
+	 * gridHeightChanged(int, int)
+	 */
+	public void gridHeightChanged(int gridHeight, int oldGridHeight) {
+		// do nothing
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.soyatec.xaml.ve.xwt.editpolicies.gridlayout.IGridListener#
+	 * gridMarginChanged(int, int)
+	 */
+	public void gridMarginChanged(int gridMargin, int oldGridMargin) {
+		// do nothing
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.soyatec.xaml.ve.xwt.editpolicies.gridlayout.IGridListener#
+	 * gridVisibilityChanged(boolean)
+	 */
+	public void gridVisibilityChanged(boolean showGrid) {
+		if (showGrid) {
+			showGridFigure();
+		} else {
+			eraseGridFigure();
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.soyatec.xaml.ve.xwt.editpolicies.gridlayout.IGridListener#
+	 * gridWidthChanged(int, int)
+	 */
+	public void gridWidthChanged(int gridWidth, int oldGridWidth) {
+		// do nothing
+	}
+
+	/*
+	 * Return true if ep is a child editpart of the host container
+	 */
+	private boolean isChildEditPart(EditPart ep) {
+		if (ep != null) {
+			List children = getHost().getChildren();
+			if (!children.isEmpty())
+				return (children.indexOf(ep) != -1);
+		}
+		return false;
+	}
+
+	/**
+	 * 
+	 */
+	protected void refreshGridFigure() {
+		Display.getDefault().asyncExec(new Runnable() {
+			public void run() {
+				if (fShowGrid) {
+					eraseGridFigure();
+					showGridFigure();
+				} else {
+					fGridLayoutGridFigure = null;
+				}
+			}
+		});
+	}
+
+	/**
+	 * Show the adding cell outside figure feedback.
+	 * 
+	 * @param cellBounds
+	 * 
+	 * @since 1.2.0
+	 */
+	protected void showAddedCellFeedback(Rectangle cellBounds) {
+		cellBounds = cellBounds.getExpanded(cellBounds.width < 10 ? 20 : 0,
+				cellBounds.height < 10 ? 20 : 0);
+		fRowColFigure = new GridLayoutAddedCellFeedbackFigure();
+		fRowColFigure.setBounds(cellBounds);
+		addFeedback(fRowColFigure);
+	}
+
+	/**
+	 * Show a new yellow column inserted into the grid near the column closest
+	 * to position and only within that row
+	 */
+	protected void showColumnFeedBackWithinARow(Rectangle cellBounds) {
+		cellBounds = cellBounds.getCopy();
+		cellBounds.x -= 3; // start to the right by three from side of cell.
+		cellBounds.width = 6; // But only six wide. So it will be centered over
+								// the right side of the cell.
+		fRowColFigure = new GridLayoutColumnFigure(cellBounds);
+		addFeedback(fRowColFigure);
+	}
+
+	/**
+	 * Show grid figure.
+	 */
+	private void showGridFigure() {
+		if (!fShowGrid) {
+			fShowGrid = true;
+			addFeedback(getGridLayoutGridFigure());
+		}
+		fShowGrid = true;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#showTargetFeedback(org.
+	 * eclipse.gef.Request)
+	 */
+	public void showTargetFeedback(Request request) {
+		if (!(REQ_CREATE.equals(request.getType())
+				&& request instanceof CreateRequest && FeedbackHelper
+				.showCreationFeedback(fbm, (CreateRequest) request))) {
+			super.showTargetFeedback(request);
+		}
+	}
+
+	/**
+	 * Shows an insertion line if there is one or more current children.
+	 */
+	protected void showLayoutTargetFeedback(Request request) {
+		if (!(REQ_CREATE.equals(request.getType()) && FeedbackHelper
+				.showCreationFeedback(fbm, (CreateRequest) request))) {
+			super.showLayoutTargetFeedback(request);
+		}
+		if (!fShowGrid)
+			addFeedback(getGridLayoutGridFigure());
+
+		if (fRowColFigure != null) {
+			removeFeedback(fRowColFigure);
+			fRowColFigure = null;
+		}
+
+		if (fGridLayoutCellFigure != null) {
+			removeFeedback(fGridLayoutCellFigure);
+			fGridLayoutCellFigure = null;
+		}
+
+		Point position = getLocationFromRequest(request).getCopy();
+		GridLayoutRequest gridReq = createGridLayoutRequest(position);
+
+		Point cell = new Point(gridReq.column, gridReq.row);
+		Rectangle cellBounds = getGridLayoutGridFigure().getCellBounds(cell);
+
+		// Calculate the bounds of the target cell figure based on whether a
+		// column is added,
+		// row is added, or it's inserted before another control.
+		switch (gridReq.type) {
+		case GridLayoutRequest.INSERT_COLUMN:
+			// If a column is added, show the target figure in between the two
+			// columns
+			showNewColumnFeedBack(gridReq.column);
+			Rectangle colFigBounds = fRowColFigure.getBounds();
+			// mapModelToFigure(cellBounds);
+			cellBounds.width = DEFAULT_CELL_WIDTH;
+			if (cellBounds.height < 10)
+				cellBounds.expand(0, 20);
+			cellBounds.x = colFigBounds.x + colFigBounds.width / 2
+					- cellBounds.width / 2;
+			break;
+		case GridLayoutRequest.INSERT_ROW:
+			// If a row is added, show the target figure in between the two rows
+			showNewRowFeedBack(gridReq.row);
+			Rectangle rowFigBounds = fRowColFigure.getBounds();
+			// mapModelToFigure(cellBounds);
+			cellBounds.height = DEFAULT_CELL_HEIGHT;
+			if (cellBounds.width < 10)
+				cellBounds.expand(20, 0);
+			cellBounds.y = rowFigBounds.y + rowFigBounds.height / 2
+					- cellBounds.height / 2;
+			break;
+		case GridLayoutRequest.INSERT_COLUMN_WITHIN_ROW:
+			// In case cell is spanned vertically we need to have the complete
+			// cellbounds.
+			showColumnFeedBackWithinARow(cellBounds);
+			// mapModelToFigure(cellBounds);
+			colFigBounds = fRowColFigure.getBounds();
+			cellBounds.width = DEFAULT_CELL_WIDTH;
+			if (cellBounds.height < 10)
+				cellBounds.expand(0, 20);
+			cellBounds.x = colFigBounds.x + colFigBounds.width / 2
+					- cellBounds.width / 2;
+			break;
+		case GridLayoutRequest.ADD_COLUMN:
+		case GridLayoutRequest.ADD_ROW:
+		case GridLayoutRequest.ADD_ROW_COL:
+			showAddedCellFeedback(cellBounds);
+			colFigBounds = fRowColFigure.getBounds();
+			// Center the cell within these bounds.
+			cellBounds = colFigBounds.getCopy().shrink(ADDEDCELLBORDER,
+					ADDEDCELLBORDER);
+			break;
+		case GridLayoutRequest.NO_ADD:
+			return; // No feedback.
+		default:
+			// mapModelToFigure(cellBounds.expand(cellBounds.width < 10 ? 20 :
+			// 0, cellBounds.height < 10 ? 20 : 0));
+			break;
+		}
+
+		if (fGridLayoutCellFigure == null) {
+			fGridLayoutCellFigure = new GridLayoutFeedbackFigure();
+		}
+		fGridLayoutCellFigure.setBounds(cellBounds);
+		addFeedback(fGridLayoutCellFigure);
+	}
+
+	/**
+	 * Show a new yellow column inserted into the grid near the column closest
+	 * to position
+	 */
+	protected void showNewColumnFeedBack(int col) {
+		Rectangle rect = fGridLayoutGridFigure.getColumnRectangle(col);
+		rect.x -= 3;
+		rect.width = 6;
+		fRowColFigure = new GridLayoutColumnFigure(rect);
+		addFeedback(fRowColFigure);
+	}
+
+	/**
+	 * Show a new yellow row inserted into the grid near the row closest to
+	 * position
+	 */
+	protected void showNewRowFeedBack(int row) {
+		Rectangle rect = fGridLayoutGridFigure.getRowRectangle(row);
+		rect.translate(-2, -3);
+		rect.width += 4;
+		rect.height = 6;
+		fRowColFigure = new GridLayoutRowFigure(rect);
+		addFeedback(fRowColFigure);
+	}
+
+	/*
+	 * Show target feedback when dragging the span handles of a component.
+	 * Highlight the cells the component will occupy based on the begining cell
+	 * position and end cell position of the pointer.
+	 */
+	public void showSpanTargetFeedback(ChangeBoundsRequest request) {
+		// If the grid is not on, turn it on
+		if (!fShowGrid)
+			addFeedback(getGridLayoutGridFigure());
+
+		Point spanToPosition = request.getLocation().getCopy();
+
+		// Get the cell location of the child component
+		GraphicalEditPart ep = (GraphicalEditPart) request.getEditParts()
+				.get(0);
+		EObject child = (EObject) ep.getModel();
+		Rectangle childDim = getHelper().getChildDimensions(child);
+
+		// Get the start and end cell bounds in order to determine the entire
+		// bounds of the cell feedback figure.
+		Rectangle startCellBounds = getGridLayoutGridFigure().getCellBounds(
+				childDim.getLocation());
+		Rectangle endCellChildBounds = getGridLayoutGridFigure().getCellBounds(
+				childDim.getBottomRight().translate(-1, -1)); // This is the
+																// lower right
+																// of the child
+																// itself.
+		if (request.getResizeDirection() == PositionConstants.EAST
+				|| request.getResizeDirection() == PositionConstants.WEST) {
+			spanToPosition.y = endCellChildBounds.y; // This forces us to not
+														// span north/south when
+														// going east/west. And
+														// it will make it tall
+														// enough that entire
+														// cell spanned height
+														// is covered.
+		} else {
+			spanToPosition.x = endCellChildBounds.x + endCellChildBounds.width
+					- 1; // This forces us to not span left/right when going
+							// north/south. And it will make it wide enough that
+							// entire cell spanned width is covered.
+		}
+		Rectangle endCellBounds = getGridLayoutGridFigure().getCellBounds(
+				getGridLayoutGridFigure().getCellLocation(spanToPosition));
+		if (endCellBounds == null || endCellBounds.x < startCellBounds.x
+				|| endCellBounds.y < startCellBounds.y) {
+			// End is not within a cell, or the end is before the start cell.
+			if (fGridLayoutSpanFigure != null) {
+				removeFeedback(fGridLayoutSpanFigure);
+				fGridLayoutSpanFigure = null;
+			}
+			return;
+		}
+
+		Rectangle spanrect = startCellBounds.union(endCellBounds)
+				.resize(-1, -1);
+		if (fGridLayoutSpanFigure == null) {
+			fGridLayoutSpanFigure = new GridLayoutSpanFeedbackFigure(request
+					.getResizeDirection());
+		}
+		fGridLayoutSpanFigure.setLayoutFigureBounds(spanrect);
+		addFeedback(fGridLayoutSpanFigure);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.tools.ui.designer.policies.layout.ILayoutEditPolicy
+	 * #refresh()
+	 */
+	public void refresh() {
+		helper.refresh();
+		refreshGridFigure();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.tools.ui.designer.policies.layout.ILayoutEditPolicy
+	 * #getType()
+	 */
+	public LayoutType getType() {
+		return LayoutType.GridLayout;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/ILayoutEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/ILayoutEditPolicy.java
new file mode 100755
index 0000000..f94553c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/ILayoutEditPolicy.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout;
+
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public interface ILayoutEditPolicy extends EditPolicy {
+
+	LayoutType getType();
+
+	void refresh();
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/LayoutEditPolicyFactory.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/LayoutEditPolicyFactory.java
new file mode 100755
index 0000000..8d96bb5
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/LayoutEditPolicyFactory.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout;
+
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
+import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class LayoutEditPolicyFactory {
+
+	public static LayoutEditPolicy NULL_LAYOUT = new NullLayoutEditPolicy();
+
+	public static ILayoutEditPolicy getLayoutEditPolicy(CompositeEditPart editPart) {
+		LayoutType type = LayoutsHelper.getLayoutType(editPart);
+		switch (type) {
+		case GridLayout:
+			return new GridLayoutEditPolicy();
+		case FillLayout:
+			return new FillLayoutEditPolicy();
+		case RowLayout:
+			return new RowLayoutEditPolicy();
+		case FormLayout:
+			return new FormLayoutEditPolicy();
+		case StackLayout:
+		default:
+			return new NullLayoutEditPolicy();
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/MenuBarLayoutEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/MenuBarLayoutEditPolicy.java
new file mode 100755
index 0000000..296b5d3
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/MenuBarLayoutEditPolicy.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.xwt.tools.ui.designer.policies.NewNonResizeEditPolicy;
+
+public class MenuBarLayoutEditPolicy extends RowLayoutEditPolicy {
+
+	protected EditPolicy createChildEditPolicy(EditPart child) {
+		return new NewNonResizeEditPolicy(false);
+	}
+
+	protected boolean isHorizontal() {
+		return true;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/NonResizableLayoutEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/NonResizableLayoutEditPolicy.java
new file mode 100755
index 0000000..5d769c8
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/NonResizableLayoutEditPolicy.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.xwt.tools.ui.designer.policies.NewNonResizeEditPolicy;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class NonResizableLayoutEditPolicy extends LayoutEditPolicy {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#createChildEditPolicy(org.eclipse.gef.EditPart)
+	 */
+	protected EditPolicy createChildEditPolicy(EditPart child) {
+		return new NewNonResizeEditPolicy(false);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#getCreateCommand(org.eclipse.gef.requests.CreateRequest)
+	 */
+	protected Command getCreateCommand(CreateRequest request) {
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#getMoveChildrenCommand(org.eclipse.gef.Request)
+	 */
+	protected Command getMoveChildrenCommand(Request request) {
+		return null;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
new file mode 100755
index 0000000..958db7e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/NonResizableSpannableEditPolicy.java
@@ -0,0 +1,136 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout;
+
+/*
+ * $RCSfile: NonResizableSpannableEditPolicy.java,v $ $Revision: 1.3 $ $Date: 2010/06/18 00:15:49 $
+ */
+
+import java.util.List;
+
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Handle;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.UnexecutableCommand;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.ChangeBoundsRequest;
+import org.eclipse.gef.tools.ResizeTracker;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridSpanHandle;
+
+/**
+ * EditPolicy for non-resizable handles, but span handles attached.
+ * 
+ * @since 1.1.0
+ */
+public class NonResizableSpannableEditPolicy extends NonResizableEditPolicy {
+
+	protected GridLayoutEditPolicy layoutEditPolicy;
+
+	/**
+	 * 
+	 */
+	public NonResizableSpannableEditPolicy(GridLayoutEditPolicy layoutEditPolicy) {
+		super();
+		this.layoutEditPolicy = layoutEditPolicy;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.SelectionHandlesEditPolicy#
+	 * createSelectionHandles()
+	 */
+	protected List createSelectionHandles() {
+		List nonResizeHandles = super.createSelectionHandles();
+		if (getHost().getSelected() == EditPart.SELECTED_PRIMARY) {
+			// Can't hide the Right to left under model coor. here. We need to
+			// know if RTL so that we
+			// use WEST instead of EAST.
+			if (!layoutEditPolicy.getHelper().isRightToLeft())
+				nonResizeHandles.add(createHandle(
+						(GraphicalEditPart) getHost(), PositionConstants.EAST));
+			else
+				nonResizeHandles.add(createHandle(
+						(GraphicalEditPart) getHost(), PositionConstants.WEST));
+			nonResizeHandles.add(createHandle((GraphicalEditPart) getHost(),
+					PositionConstants.SOUTH));
+		}
+		return nonResizeHandles;
+	}
+
+	private Handle createHandle(GraphicalEditPart owner, int direction) {
+		GridSpanHandle handle = new GridSpanHandle(owner, direction,
+				layoutEditPolicy);
+		handle.setDragTracker(new ResizeTracker(owner, direction));
+		return handle;
+	}
+
+	public Command getCommand(Request request) {
+		if (REQ_RESIZE.equals(request.getType())
+				&& request instanceof ChangeBoundsRequest) {
+			return getSpanCommand((ChangeBoundsRequest) request);
+		}
+		return super.getCommand(request);
+	}
+
+	private Command getSpanCommand(ChangeBoundsRequest request) {
+		List editParts = request.getEditParts();
+		if (editParts.isEmpty() || editParts.size() > 1) {
+			return UnexecutableCommand.INSTANCE;
+		}
+		ChangeBoundsRequest req = createSpanRequest(request);
+		return getHost().getParent().getCommand(req);
+	}
+
+	/*
+	 * Return a ChangeBoundsRequest with type REQ_GRIDBAGLAYOUT_SPAN from a
+	 * REQ_RESIZE ChangeBoundsRequest
+	 */
+	private ChangeBoundsRequest createSpanRequest(ChangeBoundsRequest request) {
+		ChangeBoundsRequest req = new ChangeBoundsRequest(
+				GridLayoutEditPolicy.REQ_GRIDLAYOUT_SPAN);
+		req.setEditParts(getHost());
+		req.setMoveDelta(request.getMoveDelta());
+		req.setSizeDelta(request.getSizeDelta());
+		req.setLocation(request.getLocation());
+		req.setResizeDirection(request.getResizeDirection());
+		return req;
+	}
+
+	public void eraseSourceFeedback(Request request) {
+		if (REQ_RESIZE.equals(request.getType())) {
+			layoutEditPolicy.eraseTargetFeedback(request);
+		} else
+			super.eraseSourceFeedback(request);
+	}
+
+	public void showSourceFeedback(Request request) {
+		if (REQ_RESIZE.equals(request.getType())) {
+			if (request instanceof ChangeBoundsRequest
+					&& ((ChangeBoundsRequest) request).getEditParts().size() == 1) {
+				layoutEditPolicy
+						.showSpanTargetFeedback(createSpanRequest((ChangeBoundsRequest) request));
+			}
+		} else
+			super.showSourceFeedback(request);
+	}
+
+	public boolean understandsRequest(Request request) {
+		if (REQ_RESIZE.equals(request.getType()))
+			return true;
+		return super.understandsRequest(request);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/NullLayoutEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/NullLayoutEditPolicy.java
new file mode 100755
index 0000000..f5a0e70
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/NullLayoutEditPolicy.java
@@ -0,0 +1,150 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Polygon;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.XYLayoutEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.xwt.tools.ui.designer.commands.NullLayoutCommandsFactory;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
+import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
+import org.eclipse.xwt.tools.ui.designer.policies.NewResizableEditPolicy;
+import org.eclipse.xwt.tools.ui.designer.policies.feedback.CrossFeedback;
+import org.eclipse.xwt.tools.ui.designer.policies.feedback.FeedbackHelper;
+import org.eclipse.xwt.tools.ui.designer.policies.feedback.FeedbackManager;
+import org.eclipse.xwt.tools.ui.designer.utils.FigureUtil;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class NullLayoutEditPolicy extends XYLayoutEditPolicy implements ILayoutEditPolicy {
+
+	private FeedbackManager fbm = new FeedbackManager(this);
+	private CrossFeedback crossFeedback;
+	private Polygon targetFeedback;
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.ConstrainedLayoutEditPolicy#createChangeConstraintCommand(org.eclipse.gef.EditPart, java.lang.Object)
+	 */
+	protected Command createChangeConstraintCommand(EditPart child, Object constraint) {
+		NullLayoutCommandsFactory factory = new NullLayoutCommandsFactory(child);
+		return factory.getChangeConstraintCommand(constraint);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.ConstrainedLayoutEditPolicy#createChildEditPolicy(org.eclipse.gef.EditPart)
+	 */
+	protected EditPolicy createChildEditPolicy(EditPart child) {
+		return new NewResizableEditPolicy(PositionConstants.NSEW, true);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#getCreateCommand(org.eclipse.gef.requests.CreateRequest)
+	 */
+	protected Command getCreateCommand(CreateRequest request) {
+		NullLayoutCommandsFactory factory = new NullLayoutCommandsFactory(getHost());
+		return factory.getCreateCommand(request);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#getDeleteDependantCommand(org.eclipse.gef.Request)
+	 */
+	protected Command getDeleteDependantCommand(Request request) {
+		NullLayoutCommandsFactory factory = new NullLayoutCommandsFactory(getHost());
+		return factory.getDeleteCommand(request);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#showLayoutTargetFeedback(org.eclipse.gef.Request)
+	 */
+	protected void showLayoutTargetFeedback(Request request) {
+		if (REQ_CREATE.equals(request.getType())) {
+			if (!FeedbackHelper.showCreationFeedback(fbm, (CreateRequest) request)) {
+				Point location = ((CreateRequest) request).getLocation().getCopy();
+				GraphicalEditPart parent = (GraphicalEditPart) getHost();
+				if (!(parent instanceof CompositeEditPart)) {
+					return;
+				}
+				if (crossFeedback == null) {
+					crossFeedback = new CrossFeedback(location);
+				}
+				if (targetFeedback == null) {
+					targetFeedback = FeedbackHelper.createTargetFeedback();
+				}
+				FeedbackHelper.updateTargetFeedback(parent, targetFeedback);
+				addFeedback(targetFeedback);
+				
+				Point center = FigureUtil.translateToRelative(parent, location);
+				crossFeedback.setTooltipText("(" + center.x + "," + center.y + ")");
+				crossFeedback.setCenter(location);
+				addFeedback(crossFeedback);
+			}
+		} else {
+			super.showLayoutTargetFeedback(request);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#eraseLayoutTargetFeedback(org.eclipse.gef.Request)
+	 */
+	protected void eraseLayoutTargetFeedback(Request request) {
+		fbm.eraseFeedback(request);
+		if (crossFeedback != null && crossFeedback.getParent() != null) {
+			removeFeedback(crossFeedback);
+		}
+		if (targetFeedback != null && targetFeedback.getParent() != null) {
+			removeFeedback(targetFeedback);
+		}
+		super.eraseLayoutTargetFeedback(request);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.policies.layout.ILayoutEditPolicy#refresh()
+	 */
+	public void refresh() {
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.policies.layout.ILayoutEditPolicy#getType()
+	 */
+	public LayoutType getType() {
+		return LayoutType.NullLayout;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/RowLayoutEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/RowLayoutEditPolicy.java
new file mode 100755
index 0000000..1614817
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/RowLayoutEditPolicy.java
@@ -0,0 +1,206 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout;
+
+import java.util.List;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.Polyline;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.gef.editpolicies.FlowLayoutEditPolicy;
+import org.eclipse.gef.requests.ChangeBoundsRequest;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Layout;
+import org.eclipse.xwt.tools.ui.designer.commands.MoveChildCommand;
+import org.eclipse.xwt.tools.ui.designer.commands.RowLayoutCommandsFactory;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
+import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
+import org.eclipse.xwt.tools.ui.designer.policies.NewResizableEditPolicy;
+import org.eclipse.xwt.tools.ui.designer.policies.feedback.FeedbackHelper;
+import org.eclipse.xwt.tools.ui.designer.policies.feedback.FeedbackManager;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class RowLayoutEditPolicy extends FlowLayoutEditPolicy implements ILayoutEditPolicy {
+	private static final int HORIZONTAL = 1 << 8;
+	protected int type = HORIZONTAL;
+
+	private FeedbackManager fbm = new FeedbackManager(this);
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.OrderedLayoutEditPolicy#createChildEditPolicy(org.eclipse.gef.EditPart)
+	 */
+	protected EditPolicy createChildEditPolicy(EditPart child) {
+		return new NewResizableEditPolicy(PositionConstants.SOUTH_EAST, true);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.FlowLayoutEditPolicy#getLineFeedback()
+	 */
+	protected Polyline getLineFeedback() {
+		Polyline polyline = super.getLineFeedback();
+		polyline.setForegroundColor(ColorConstants.red);
+		return polyline;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.FlowLayoutEditPolicy#isHorizontal()
+	 */
+	protected boolean isHorizontal() {
+		return type == HORIZONTAL;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#activate()
+	 */
+	public void activate() {
+		super.activate();
+		determineType();
+	}
+
+	protected void determineType() {
+		EditPart host = getHost();
+		if (!(host instanceof CompositeEditPart)) {
+			return;
+		}
+		CompositeEditPart composite = (CompositeEditPart) host;
+		Layout layout = composite.getLayout();
+		if (layout != null && layout instanceof RowLayout) {
+			type = ((RowLayout) layout).type;
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.OrderedLayoutEditPolicy#createAddCommand(org.eclipse.gef.EditPart, org.eclipse.gef.EditPart)
+	 */
+	protected Command createAddCommand(EditPart child, EditPart after) {
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.OrderedLayoutEditPolicy#createMoveChildCommand(org.eclipse.gef.EditPart, org.eclipse.gef.EditPart)
+	 */
+	protected Command createMoveChildCommand(EditPart child, EditPart after) {
+		return new MoveChildCommand(child, after);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#getCommand(org.eclipse.gef.Request)
+	 */
+	public Command getCommand(Request request) {
+		if (REQ_RESIZE_CHILDREN.equals(request.getType())) {
+			return getResizeCommand(request);
+		}
+		return super.getCommand(request);
+	}
+
+	/**
+	 * @param request
+	 * @return
+	 */
+	private Command getResizeCommand(Request request) {
+		ChangeBoundsRequest req = (ChangeBoundsRequest) request;
+		CompoundCommand resize = new CompoundCommand();
+		Command c;
+		GraphicalEditPart child;
+		List children = req.getEditParts();
+
+		for (int i = 0; i < children.size(); i++) {
+			child = (GraphicalEditPart) children.get(i);
+			c = createResizeChildrenCommand(request, child, req.getSizeDelta());
+			resize.add(c);
+		}
+		return resize.unwrap();
+	}
+
+	protected Command createResizeChildrenCommand(Request request, EditPart child, Object newSize) {
+		RowLayoutCommandsFactory factory = new RowLayoutCommandsFactory(child);
+		return factory.getResizeChildCommand(newSize);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#getCreateCommand(org.eclipse.gef.requests.CreateRequest)
+	 */
+	protected Command getCreateCommand(CreateRequest request) {
+		RowLayoutCommandsFactory factory = new RowLayoutCommandsFactory(getHost());
+		EditPart insertionReference = getInsertionReference(request);
+		return factory.getCreateCommand(request, insertionReference);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#getDeleteDependantCommand(org.eclipse.gef.Request)
+	 */
+	protected Command getDeleteDependantCommand(Request request) {
+		RowLayoutCommandsFactory factory = new RowLayoutCommandsFactory(getHost());
+		return factory.getDeleteCommand(request);
+	}
+
+	protected void showLayoutTargetFeedback(Request request) {
+		if (REQ_CREATE.equals(request.getType())) {
+			if (!FeedbackHelper.showCreationFeedback(fbm, (CreateRequest) request)) {
+				super.showLayoutTargetFeedback(request);
+			}
+		} else {
+			super.showLayoutTargetFeedback(request);
+		}
+	}
+
+	protected void eraseLayoutTargetFeedback(Request request) {
+		fbm.eraseFeedback(request);
+		super.eraseLayoutTargetFeedback(request);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.policies.layout.ILayoutEditPolicy#refresh()
+	 */
+	public void refresh() {
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.policies.layout.ILayoutEditPolicy#getType()
+	 */
+	public LayoutType getType() {
+		return LayoutType.RowLayout;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/StackableLayoutEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/StackableLayoutEditPolicy.java
new file mode 100755
index 0000000..b383503
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/StackableLayoutEditPolicy.java
@@ -0,0 +1,85 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout;
+
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.swt.widgets.Item;
+import org.eclipse.xwt.tools.ui.designer.commands.AttachedPropertyCreateCommand;
+import org.eclipse.xwt.tools.ui.designer.commands.DefaultCreateCommand;
+import org.eclipse.xwt.tools.ui.designer.editor.palette.CreateReqHelper;
+import org.eclipse.xwt.tools.ui.designer.parts.StackableEditPart;
+import org.eclipse.xwt.tools.ui.designer.policies.NewNonResizeEditPolicy;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jin.liu (jin.liu@soyatec.com)
+ * 
+ */
+public class StackableLayoutEditPolicy extends LayoutEditPolicy {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#createChildEditPolicy(org
+	 * .eclipse.gef.EditPart)
+	 */
+	protected EditPolicy createChildEditPolicy(EditPart child) {
+		return new NewNonResizeEditPolicy(false);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#getCreateCommand(org.eclipse
+	 * .gef.requests.CreateRequest)
+	 */
+	protected Command getCreateCommand(CreateRequest request) {
+		StackableEditPart host = (StackableEditPart) getHost();
+		CreateReqHelper helper = new CreateReqHelper(request);
+		XamlNode newObject = helper.getNewObject();
+		if (newObject == null) {
+			return null;
+		}
+		IMetaclass metaclass = XWTUtility.getMetaclass(newObject);
+		if (metaclass == null) {
+			return null;
+		}
+		if (Item.class.isAssignableFrom(metaclass.getType())) {
+			return new DefaultCreateCommand(host, request);
+		} else {
+			return new AttachedPropertyCreateCommand(host.getPopItemPart(),
+					request, "control");
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#getMoveChildrenCommand(
+	 * org.eclipse.gef.Request)
+	 */
+	protected Command getMoveChildrenCommand(Request request) {
+		return null;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/TabFolderLayoutEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/TabFolderLayoutEditPolicy.java
new file mode 100755
index 0000000..78ae94e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/TabFolderLayoutEditPolicy.java
@@ -0,0 +1,117 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout;
+
+import org.eclipse.draw2d.Polygon;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.swt.widgets.Item;
+import org.eclipse.xwt.tools.ui.designer.commands.AttachedPropertyCreateCommand;
+import org.eclipse.xwt.tools.ui.designer.commands.DefaultCreateCommand;
+import org.eclipse.xwt.tools.ui.designer.editor.palette.CreateReqHelper;
+import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
+import org.eclipse.xwt.tools.ui.designer.parts.TabFolderEditPart;
+import org.eclipse.xwt.tools.ui.designer.policies.NewNonResizeEditPolicy;
+import org.eclipse.xwt.tools.ui.designer.policies.feedback.CrossFeedback;
+import org.eclipse.xwt.tools.ui.designer.policies.feedback.FeedbackHelper;
+import org.eclipse.xwt.tools.ui.designer.utils.FigureUtil;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jin.liu (jin.liu@soyatec.com)
+ * 
+ */
+public class TabFolderLayoutEditPolicy extends LayoutEditPolicy {
+	private Polygon targetFeedback;
+	
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#createChildEditPolicy(org
+	 * .eclipse.gef.EditPart)
+	 */
+	protected EditPolicy createChildEditPolicy(EditPart child) {
+		return new NewNonResizeEditPolicy(false);
+	}
+
+	protected void showLayoutTargetFeedback(Request request) {
+		if (REQ_CREATE.equals(request.getType())) {
+			TabFolderEditPart parent = (TabFolderEditPart) getHost();
+			if (targetFeedback == null) {
+				targetFeedback = FeedbackHelper.createTargetFeedback();
+			}
+			FeedbackHelper.updateTargetFeedback(parent, targetFeedback);
+			addFeedback(targetFeedback);
+		}
+		super.showLayoutTargetFeedback(request);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#eraseLayoutTargetFeedback(org.eclipse.gef.Request)
+	 */
+	protected void eraseLayoutTargetFeedback(Request request) {
+		if (targetFeedback != null && targetFeedback.getParent() != null) {
+			removeFeedback(targetFeedback);
+		}
+		super.eraseLayoutTargetFeedback(request);
+	}
+	
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#getCreateCommand(org.eclipse
+	 * .gef.requests.CreateRequest)
+	 */
+	protected Command getCreateCommand(CreateRequest request) {
+		TabFolderEditPart host = (TabFolderEditPart) getHost();
+		CreateReqHelper helper = new CreateReqHelper(request);
+		XamlNode newObject = helper.getNewObject();
+		if (newObject == null) {
+			return null;
+		}
+		IMetaclass metaclass = XWTUtility.getMetaclass(newObject);
+		if (metaclass == null) {
+			return null;
+		}
+		if (Item.class.isAssignableFrom(metaclass.getType())) {
+			return new DefaultCreateCommand(host, request);
+		} else {
+			return new AttachedPropertyCreateCommand(host.getActiveItemPart(),
+					request, "control");
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.editpolicies.LayoutEditPolicy#getMoveChildrenCommand(
+	 * org.eclipse.gef.Request)
+	 */
+	protected Command getMoveChildrenCommand(Request request) {
+		return null;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/ToolBarLayoutEditPolicy.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/ToolBarLayoutEditPolicy.java
new file mode 100755
index 0000000..dd64146
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/ToolBarLayoutEditPolicy.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.swt.SWT;
+import org.eclipse.xwt.tools.ui.designer.policies.NewNonResizeEditPolicy;
+import org.eclipse.xwt.tools.ui.designer.utils.StyleHelper;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+
+/**
+ * @author rui.ban rui.ban@soyatec.com
+ */
+public class ToolBarLayoutEditPolicy extends RowLayoutEditPolicy {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.policies.layout.RowLayoutEditPolicy#createChildEditPolicy(org.eclipse.gef.EditPart)
+	 */
+	protected EditPolicy createChildEditPolicy(EditPart child) {
+		NewNonResizeEditPolicy editPolicy = new NewNonResizeEditPolicy(false);
+		editPolicy.setDragAllowed(true);
+		return editPolicy;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.policies.layout.RowLayoutEditPolicy#isHorizontal()
+	 */
+	protected boolean isHorizontal() {
+		XamlElement model = (XamlElement) this.getHost().getModel();
+		return StyleHelper.checkStyle(model, SWT.HORIZONTAL);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/form/FormDataFigure.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/form/FormDataFigure.java
new file mode 100755
index 0000000..fb0f4a4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/form/FormDataFigure.java
@@ -0,0 +1,189 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout.form;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.Figure;
+import org.eclipse.draw2d.Graphics;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.xwt.tools.ui.designer.core.util.Draw2dTools;
+import org.eclipse.xwt.tools.ui.designer.core.util.swt.SWTTools;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class FormDataFigure extends Figure {
+	private FormLayoutData layoutData;
+
+	public FormDataFigure(FormLayoutData layoutData) {
+		this.layoutData = layoutData;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.draw2d.Figure#paint(org.eclipse.draw2d.Graphics)
+	 */
+	public void paint(Graphics graphics) {
+		if (getLayoutData() == null || getLayoutData().data == null || getLayoutData().bounds == null) {
+			return;
+		}
+		Rectangle r = getLayoutData().bounds.getCopy();
+		IFigure parent = getParent();
+		if (parent != null) {
+			parent.translateToRelative(r);
+		}
+		graphics.setLineWidth(1);
+		graphics.setForegroundColor(ColorConstants.blue);
+		FormData formData = getLayoutData().data;
+		FormAttachment left = formData.left, top = formData.top, right = formData.right, bottom = formData.bottom;
+		if (left != null) {
+			if (SWT.LEFT == left.alignment) {
+				graphics.setLineStyle(SWT.LINE_DOT);
+				Point p1 = r.getLocation().getTranslated(0, 15);
+				Rectangle rc = getBounds(left.control);
+				int dis = r.bottom() - rc.bottom() - r.height;
+				Point p2 = p1.getTranslated(0, -dis - 30);
+				graphics.drawLine(p1, p2);
+			} else {
+				graphics.setLineStyle(SWT.LINE_DASH);
+				Point p1 = r.getLocation().getTranslated(0, r.height / 2);
+				Point p2 = p1.getTranslated(-left.offset, 0);
+				graphics.drawLine(p1, p2);
+				if (left.control != null) {
+					Rectangle rc = getBounds(left.control);
+					if (r.bottom() > rc.bottom()) {
+						int offset = r.bottom() - rc.bottom();
+						Point p3 = p2.getTranslated(0, -offset / 2 - 5);
+						Point p4 = p2.getTranslated(0, 15);
+						graphics.drawLine(p3, p4);
+					} else if (r.y < rc.y) {
+						int offset = rc.y - r.y;
+						Point p3 = p2.getTranslated(0, offset / 2 + 5);
+						Point p4 = p2.getTranslated(0, -15);
+						graphics.drawLine(p3, p4);
+					}
+				}
+				drawArc(p2, PositionConstants.WEST, graphics);
+			}
+		}
+		if (right != null) {
+			if (SWT.RIGHT == right.alignment) {
+				graphics.setLineStyle(SWT.LINE_DOT);
+				Point p1 = r.getLocation().getTranslated(r.width, 15);
+				Rectangle rc = getBounds(right.control);
+				int dis = r.bottom() - rc.bottom() - r.height;
+				Point p2 = p1.getTranslated(0, -dis - 30);
+				graphics.drawLine(p1, p2);
+			} else {
+				graphics.setLineStyle(SWT.LINE_DASH);
+				Point p1 = r.getLocation().getTranslated(r.width, r.height / 2);
+				Point p2 = p1.getTranslated(-right.offset, 0);
+				graphics.drawLine(p1, p2);
+				drawArc(p2, PositionConstants.EAST, graphics);
+			}
+		}
+		if (top != null) {
+			if (SWT.TOP == top.alignment) {
+				graphics.setLineStyle(SWT.LINE_DOT);
+				Point p1 = r.getLocation().getTranslated(15, 0);
+				Rectangle rc = getBounds(top.control);
+				int dis = r.right() - rc.right() - r.width;
+				Point p2 = p1.getTranslated(-dis - 30, 0);
+				graphics.drawLine(p1, p2);
+			} else {
+				graphics.setLineStyle(SWT.LINE_DASH);
+				Point p1 = r.getLocation().getTranslated(r.width / 2, 0);
+				Point p2 = p1.getTranslated(0, -top.offset);
+				graphics.drawLine(p1, p2);
+				if (top.control != null) {
+					Rectangle rc = getBounds(top.control);
+					if (r.right() > rc.right()) {
+						int offset = r.right() - rc.right();
+						Point p3 = p2.getTranslated(-offset / 2 - 5, 0);
+						Point p4 = p2.getTranslated(15, 0);
+						graphics.drawLine(p3, p4);
+					} else if (r.x < rc.x) {
+						int offset = rc.x - r.x;
+						Point p3 = p2.getTranslated(offset / 2 + 5, 0);
+						Point p4 = p2.getTranslated(-15, 0);
+						graphics.drawLine(p3, p4);
+					}
+				}
+				drawArc(p2, PositionConstants.NORTH, graphics);
+			}
+		}
+		if (bottom != null) {
+			if (SWT.BOTTOM == bottom.alignment) {
+				graphics.setLineStyle(SWT.LINE_DOT);
+				Point p1 = r.getLocation().getTranslated(15, r.height);
+				Rectangle rc = getBounds(bottom.control);
+				int dis = r.right() - rc.right() - r.width;
+				Point p2 = p1.getTranslated(-dis - 30, 0);
+				graphics.drawLine(p1, p2);
+			} else {
+				graphics.setLineStyle(SWT.LINE_DASH);
+				Point p1 = r.getLocation().getTranslated(r.width / 2, r.height);
+				Point p2 = p1.getTranslated(0, -bottom.offset);
+				graphics.drawLine(p1, p2);
+				drawArc(p2, PositionConstants.SOUTH, graphics);
+			}
+		}
+	}
+
+	private void drawArc(Point point, int position, Graphics g) {
+		try {
+			g.setAntialias(SWT.ON);
+		} catch (Exception e) {
+		}
+		g.setBackgroundColor(ColorConstants.blue);
+		Point p = point.getTranslated(-3, -3);
+		Dimension s = new Dimension(6, 6);
+		int offset = 90;
+		if (position == PositionConstants.WEST) {
+			offset = offset * 3;
+		} else if (position == PositionConstants.NORTH) {
+			offset = offset * 2;
+		} else if (position == PositionConstants.SOUTH) {
+			offset = offset * 4;
+		}
+		g.fillArc(new Rectangle(p, s), offset, 180);
+		try {
+			g.setAntialias(SWT.OFF);
+		} catch (Exception e) {
+		}
+	}
+
+	private Rectangle getBounds(Control control) {
+		Rectangle r = Draw2dTools.toDraw2d(SWTTools.getBounds(control));
+		return r;
+	}
+
+	public void setLayoutData(FormLayoutData layoutData) {
+		this.layoutData = layoutData;
+		repaint();
+	}
+
+	public FormLayoutData getLayoutData() {
+		return layoutData;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/form/FormLayoutData.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/form/FormLayoutData.java
new file mode 100755
index 0000000..7236f60
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/form/FormLayoutData.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout.form;
+
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.swt.layout.FormData;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class FormLayoutData {
+
+	public FormData data;
+	public Rectangle bounds;
+
+	public FormLayoutData(FormData data, Rectangle bounds) {
+		this.data = data;
+		this.bounds = bounds;
+	}
+
+	public FormData getData() {
+		return data;
+	}
+
+	public Rectangle getBounds() {
+		return bounds;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/form/FormLayoutHelper.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/form/FormLayoutHelper.java
new file mode 100755
index 0000000..e7f30ae
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/form/FormLayoutHelper.java
@@ -0,0 +1,318 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout.form;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.xwt.tools.ui.designer.core.util.Draw2dTools;
+import org.eclipse.xwt.tools.ui.designer.core.util.swt.SWTTools;
+import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
+import org.eclipse.xwt.tools.ui.designer.parts.ShellEditPart;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class FormLayoutHelper {
+
+	private CompositeEditPart compositeEp;
+
+	public FormLayoutHelper(CompositeEditPart compositeEditPart) {
+		this.compositeEp = compositeEditPart;
+	}
+
+	public Rectangle getClientArea() {
+		if (compositeEp instanceof ShellEditPart) {
+			return ((ShellEditPart) compositeEp).getFigure().getBounds();
+		} else if (compositeEp != null && compositeEp.getVisualInfo() != null) {
+			return compositeEp.getVisualInfo().getClientArea();
+		}
+		return new Rectangle();
+	}
+
+	private Composite getParent() {
+		if (compositeEp != null) {
+			return (Composite) compositeEp.getWidget();
+		}
+		return null;
+	}
+
+	public FormLayoutData computeData(Rectangle bounds, Control control) {
+		if (bounds.isEmpty()) {
+			return null;
+		}
+		Composite parent = getParent();
+		if (parent == null) {
+			return null;
+		}
+		Rectangle clientArea = getClientArea();
+		if (!clientArea.intersects(bounds)) {
+			return null;
+		}
+		FormData formData = new FormData();
+		if (!clientArea.isEmpty()) {
+			computeVerticalAttachment(formData, clientArea, bounds, control);
+			computeHorizontalAttachment(formData, clientArea, bounds, control);
+		}
+		return new FormLayoutData(formData, bounds);
+	}
+
+	private void computeHorizontalAttachment(FormData formData,
+			Rectangle clientArea, Rectangle bounds, Control control) {
+		int marginLeft = bounds.x;
+		int marginRight = clientArea.width - bounds.right();
+		// 1. alignment
+		Composite parent = getParent();
+		for (Control child : parent.getChildren()) {
+			Rectangle r = getBounds(child);
+			if (r.equals(bounds) || child == control) {
+				continue;
+			}
+			if (r.y == bounds.y) {
+				formData.top = new FormAttachment(child, 0, SWT.TOP);
+				formData.bottom = null;
+			} else if (r.bottom() == bounds.bottom()) {
+				formData.bottom = new FormAttachment(child, 0, SWT.BOTTOM);
+				formData.top = null;
+			} else {
+				continue;
+			}
+			if (bounds.right() > r.right()) {
+				int offset = bounds.right() - r.right() - bounds.width;
+				if (offset < marginRight) {
+					formData.left = new FormAttachment(child, offset);
+				} else {
+					formData.right = new FormAttachment(100, -marginRight);
+				}
+			} else {
+				int offset = r.right() + bounds.width - bounds.right();
+				if (offset < marginLeft) {
+					formData.right = new FormAttachment(child, offset);
+				} else {
+					formData.left = new FormAttachment(0, marginLeft);
+				}
+			}
+			// return;
+		}
+		if (formData.left != null || formData.right != null) {
+			return;
+		}
+		Control nearest = getHorizontalNearest(clientArea, bounds, control);
+		if (nearest != null) {
+			Rectangle r = getBounds(nearest);
+			if (bounds.right() > r.right()) {
+				int distance = bounds.right() - r.right() - bounds.width;
+				if (distance < marginRight) {
+					formData.left = new FormAttachment(nearest, distance);
+				} else {
+					formData.right = new FormAttachment(100, -marginRight);
+				}
+			} else {
+				int distance = r.right() - bounds.right() - r.width;
+				if (distance < marginLeft) {
+					formData.right = new FormAttachment(nearest, distance);
+				} else {
+					formData.left = new FormAttachment(0, marginLeft);
+				}
+			}
+		} else {
+			if (marginLeft < marginRight) {
+				formData.left = new FormAttachment(0, marginLeft);
+			} else {
+				formData.right = new FormAttachment(100, -marginRight);
+			}
+		}
+	}
+
+	private void computeVerticalAttachment(FormData formData,
+			Rectangle clientArea, Rectangle bounds, Control control) {
+		int marginTop = bounds.y;
+		int marginBottom = clientArea.height - bounds.bottom();
+		// 1. alignment
+		// TODO: get the nearest alignment....
+		Composite parent = getParent();
+		for (Control child : parent.getChildren()) {
+			Rectangle r = getBounds(child);
+			if (r.equals(bounds) || child == control) {
+				continue;
+			}
+			if (r.x == bounds.x) {
+				formData.left = new FormAttachment(child, 0, SWT.LEFT);
+				formData.right = null;
+			} else if (r.right() == bounds.right()) {
+				formData.right = new FormAttachment(child, 0, SWT.RIGHT);
+				formData.left = null;
+			} else {
+				continue;
+			}
+			if (bounds.bottom() > r.bottom()) {
+				int topOffset = bounds.bottom() - r.bottom() - bounds.height;
+				if (topOffset < marginBottom) {
+					formData.top = new FormAttachment(child, topOffset);
+				} else {
+					formData.bottom = new FormAttachment(100, -marginBottom);
+				}
+			} else {
+				int bottomOffset = bounds.bottom() - r.bottom() + r.height;
+				if (bottomOffset < marginTop) {
+					formData.bottom = new FormAttachment(child, bottomOffset);
+				} else {
+					formData.top = new FormAttachment(0, marginTop);
+				}
+			}
+			return;
+		}
+		if (formData.top != null || formData.bottom != null) {
+			return;
+		}
+		// 2. vertical area.
+		Control nearest = getVerticalNearest(clientArea, bounds, control);
+		if (nearest != null) {
+			Rectangle r = getBounds(nearest);
+			if (bounds.bottom() > r.bottom()) {
+				int distance = bounds.bottom() - r.bottom() - bounds.height;
+				if (distance < marginBottom) {
+					formData.top = new FormAttachment(nearest, distance);
+				} else {
+					formData.bottom = new FormAttachment(100, -marginBottom);
+				}
+			} else {
+				int distance = r.bottom() - bounds.bottom() - r.height;
+				if (distance < marginTop) {
+					formData.bottom = new FormAttachment(nearest, distance);
+				} else {
+					formData.top = new FormAttachment(0, marginTop);
+				}
+			}
+		} else {
+			if (marginTop < marginBottom) {
+				formData.top = new FormAttachment(0, marginTop);
+			} else {
+				formData.bottom = new FormAttachment(100, -marginBottom);
+			}
+		}
+	}
+
+	public Control getVerticalNearest(Rectangle clientArea, Rectangle bounds,
+			Control control) {
+		Control nearest = null;
+		int distance = 0;
+		Composite parent = getParent();
+		for (Control child : parent.getChildren()) {
+			Rectangle r = getBounds(child);
+			if (bounds.y < r.bottom() || r.equals(bounds) || child == control) {
+				continue;
+			}
+			if (bounds.right() < r.x || bounds.x > r.right()) {
+				continue;
+			}
+			int dis = 0;
+			if (bounds.bottom() > r.bottom()) {
+				dis = bounds.bottom() - r.bottom() - bounds.height;
+			} else {
+				dis = r.bottom() - bounds.bottom() - r.height;
+			}
+			if (nearest == null) {
+				nearest = child;
+				distance = dis;
+			} else if (dis < distance) {
+				nearest = child;
+				distance = dis;
+			}
+		}
+		return nearest;
+	}
+
+	public Control getHorizontalNearest(Rectangle clientArea, Rectangle bounds,
+			Control control) {
+		Control nearest = null;
+		int distance = 0;
+		Composite parent = getParent();
+		for (Control child : parent.getChildren()) {
+			Rectangle r = getBounds(child);
+			if (bounds.x < r.right() || r.equals(bounds) || child == control) {
+				continue;
+			}
+			if (bounds.bottom() < r.y || bounds.y > r.bottom()) {
+				continue;
+			}
+			int dis = 0;
+			if (bounds.right() > r.right()) {
+				dis = bounds.right() - r.right() - bounds.width;
+			} else {
+				dis = r.right() - bounds.right() - r.width;
+			}
+			if (nearest == null) {
+				nearest = child;
+				distance = dis;
+			} else if (dis < distance) {
+				nearest = child;
+				distance = dis;
+			}
+		}
+		return nearest;
+	}
+
+	public Rectangle getBounds(Control control) {
+		Rectangle r = Draw2dTools.toDraw2d(SWTTools.getBounds(control));
+		org.eclipse.swt.graphics.Point offset = SWTTools.getOffset(getParent());
+		// return FigureUtil.translateToRelative(compositeEp, r);
+		return r.translate(-offset.x, -offset.y);
+	}
+
+	public static Control[] getDependencies(Control control) {
+		if (control == null || control.isDisposed()) {
+			return new Control[0];
+		}
+		List<Control> dependencies = new ArrayList<Control>();
+		Composite parent = control.getParent();
+		for (Control child : parent.getChildren()) {
+			if (child == control || child.getLayoutData() == null) {
+				continue;
+			}
+			Object layoutData = child.getLayoutData();
+			if (layoutData == null || !(layoutData instanceof FormData)) {
+				continue;
+			}
+			if (isDepend((FormData) layoutData, control)) {
+				dependencies.add(child);
+			}
+		}
+		return dependencies.toArray(new Control[dependencies.size()]);
+	}
+
+	private static boolean isDepend(FormData formData, Control control) {
+		if (formData == null || control == null) {
+			return false;
+		}
+		if (formData.left != null && control == formData.left.control) {
+			return true;
+		}
+		if (formData.top != null && control == formData.top.control) {
+			return true;
+		}
+		if (formData.right != null && control == formData.right.control) {
+			return true;
+		}
+		if (formData.bottom != null && control == formData.bottom.control) {
+			return true;
+		}
+		return false;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridController.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridController.java
new file mode 100755
index 0000000..271f409
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridController.java
@@ -0,0 +1,160 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout.grid;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartViewer;
+import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class GridController {
+	public static final String GRID_KEY = "org.soyatec.xaml.ve.xwt.editpolicies.gridlayout.gridkey"; //$NON-NLS-1$
+
+	private boolean showGrid = false;
+	private int gridWidth = 15;
+	private int gridHeight = 15;
+	private int gridMargin = 0;
+
+	private List<IGridListener> listeners = new ArrayList<IGridListener>();
+	protected Map<EditPart, GridController> registeredEPs = new HashMap<EditPart, GridController>(2);
+
+	public void addGridListener(IGridListener listener) {
+		if (!listeners.contains(listener)) {
+			listeners.add(listener);
+		}
+	}
+
+	public void removeGridListener(IGridListener listener) {
+		listeners.remove(listener);
+	}
+
+	/**
+	 * @param showGrid
+	 *            the showGrid to set
+	 */
+	public void setGridShowing(boolean showGrid) {
+		this.showGrid = showGrid;
+		for (int i = 0; i < listeners.size(); i++) {
+			((IGridListener) listeners.get(i)).gridVisibilityChanged(showGrid);
+		}
+	}
+
+	/**
+	 * @return the showGrid
+	 */
+	public boolean isGridShowing() {
+		return showGrid;
+	}
+
+	/**
+	 * @param gridWidth
+	 *            the gridWidth to set
+	 */
+	public void setGridWidth(int gridWidth) {
+		int oldGridWidth = this.gridWidth;
+		this.gridWidth = gridWidth;
+		for (int i = 0; i < listeners.size(); i++)
+			((IGridListener) listeners.get(i)).gridWidthChanged(gridWidth, oldGridWidth);
+
+	}
+
+	/**
+	 * @return the gridWidth
+	 */
+	public int getGridWidth() {
+		return gridWidth;
+	}
+
+	/**
+	 * @param gridHeight
+	 *            the gridHeight to set
+	 */
+	public void setGridHeight(int gridHeight) {
+		int oldGridHeight = this.gridHeight;
+		this.gridHeight = gridHeight;
+		for (int i = 0; i < listeners.size(); i++)
+			((IGridListener) listeners.get(i)).gridHeightChanged(gridHeight, oldGridHeight);
+
+	}
+
+	/**
+	 * @return the gridHeight
+	 */
+	public int getGridHeight() {
+		return gridHeight;
+	}
+
+	/**
+	 * @param gridMargin
+	 *            the gridMargin to set
+	 */
+	public void setGridMargin(int gridMargin) {
+		int oldGridMargin = this.gridMargin;
+		this.gridMargin = gridMargin;
+		for (int i = 0; i < listeners.size(); i++)
+			((IGridListener) listeners.get(i)).gridMarginChanged(gridMargin, oldGridMargin);
+
+	}
+
+	/**
+	 * @return the gridMargin
+	 */
+	public int getGridMargin() {
+		return gridMargin;
+	}
+
+	/**
+	 * Static helper method to return the grid controller for a specific editpart.
+	 */
+	public static GridController getGridController(EditPart editPart) {
+		EditPartViewer viewer = editPart.getRoot().getViewer();
+		EditDomain dom = (EditDomain) viewer.getEditDomain();
+		// This is the master grid controller for this viewer
+		GridController gc = (GridController) dom.getViewerData(viewer, GRID_KEY);
+		if (gc != null) {
+			return (GridController) gc.registeredEPs.get(editPart);
+		}
+		return null;
+	}
+
+	/**
+	 * Register the Editpart as having a grid on it.
+	 */
+	public static void registerEditPart(EditPart ep, GridController newgc) {
+		EditPartViewer viewer = ep.getRoot().getViewer();
+		EditDomain dom = (EditDomain) viewer.getEditDomain();
+		// This is the master grid controller for this viewer
+		GridController gc = (GridController) dom.getViewerData(viewer, GRID_KEY);
+		if (gc != null)
+			gc.registeredEPs.put(ep, newgc);
+	}
+
+	/**
+	 * Unregister the EditPart.
+	 */
+	public static void unregisterEditPart(EditPart ep) {
+		EditPartViewer viewer = ep.getRoot().getViewer();
+		EditDomain dom = (EditDomain) viewer.getEditDomain();
+		// This is the master grid controller for this viewer
+		GridController gc = (GridController) dom.getViewerData(viewer, GRID_KEY);
+		if (gc != null && gc.registeredEPs.get(ep) != null)
+			gc.registeredEPs.remove(ep);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutAddedCellFeedbackFigure.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutAddedCellFeedbackFigure.java
new file mode 100755
index 0000000..86f4ef3
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutAddedCellFeedbackFigure.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout.grid;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.swt.SWT;
+
+/**
+ * Feedback figure to show outer line of an added cell outside the grid.
+ * 
+ * @since 1.2.0
+ */
+public class GridLayoutAddedCellFeedbackFigure extends RectangleFigure {
+
+	public GridLayoutAddedCellFeedbackFigure() {
+		super();
+		setLineStyle(SWT.LINE_DASH);
+		setLineWidth(2);
+		setForegroundColor(ColorConstants.yellow);
+		setFill(false);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutColumnFigure.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutColumnFigure.java
new file mode 100755
index 0000000..6c662ed
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutColumnFigure.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout.grid;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.Figure;
+import org.eclipse.draw2d.Graphics;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.swt.SWTException;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class GridLayoutColumnFigure extends Figure {
+	private Rectangle columnBounds;
+
+	public GridLayoutColumnFigure(Rectangle columnBounds) {
+		super();
+		this.columnBounds = columnBounds;
+		setBounds(columnBounds.getCopy().expand(6, 8));
+	}
+
+	public void paintFigure(Graphics g) {
+		try {
+			g.setAlpha(150);
+		} catch (SWTException e) {
+			// For OS platforms that don't support alpha
+		}
+		int[] polygonPoints = new int[] { bounds.x + 1, bounds.y + 1, // left upper corner
+				columnBounds.x, columnBounds.y, columnBounds.x, columnBounds.y + columnBounds.height, bounds.x + 1, bounds.y + bounds.height - 1, bounds.x + bounds.width - 1, bounds.y + bounds.height - 1, columnBounds.x + columnBounds.width, columnBounds.y + columnBounds.height, columnBounds.x + columnBounds.width, columnBounds.y, bounds.x + bounds.width - 1, bounds.y + 1, bounds.x + 1, bounds.y + 1 };
+		g.setBackgroundColor(ColorConstants.red);
+		g.fillPolygon(polygonPoints);
+		g.setBackgroundColor(ColorConstants.black);
+		g.drawPolygon(polygonPoints);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutFeedbackFigure.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutFeedbackFigure.java
new file mode 100755
index 0000000..993408d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutFeedbackFigure.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout.grid;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.Graphics;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.swt.SWT;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class GridLayoutFeedbackFigure extends RectangleFigure {
+
+	public GridLayoutFeedbackFigure() {
+		super();
+		setLineStyle(SWT.LINE_SOLID);
+		setLineWidth(2);
+	}
+
+	public void fillShape(Graphics g) {
+		Rectangle r = getBounds().getCopy();
+		r.expand(-4, -4);
+		g.setBackgroundColor(ColorConstants.green);
+		try {
+			g.setAlpha(175);
+		} catch (Exception e) {
+			// For OS platforms that don't support setAlpha
+			g.setXORMode(true);
+			g.setBackgroundColor(ColorConstants.green);
+		}
+		g.fillRectangle(r.x, r.y, r.width, r.height);
+	}
+
+	public void outlineShape(Graphics g) {
+		Rectangle r = getBounds().getCopy();
+		r.expand(-4, -4);
+		g.drawRectangle(r.x, r.y, r.width, r.height);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutGridFigure.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutGridFigure.java
new file mode 100755
index 0000000..59b5ce7
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutGridFigure.java
@@ -0,0 +1,682 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout.grid;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.Figure;
+import org.eclipse.draw2d.Graphics;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.GridLayoutEditPolicy;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.grid.GridLayoutPolicyHelper.GridComponent;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class GridLayoutGridFigure extends Figure {
+	// number of pixels either side of a row/column that will trigger showing the row/column insertion figure.
+	public static final int ROW_COLUMN_SENSITIVITY = 5;
+	private GridLayoutPolicyHelper helper;
+	private int marginWidth, marginHeight, verticalSpacing, horizontalSpacing;
+	// Note: all of these that have "model" in the name positions are relative in the model coordinate system (which may be Right-to-Left and so backwards
+	// from the GEF grid figure).
+	int[] columnModelPositions, rowModelPositions;
+	Point[] rowStartModelPositions, rowEndModelPositions;
+	Point[] columnStartModelPositions, columnEndModelPositions;
+	int[][] columnModelSegments, rowModelSegments;
+
+	/**
+	 * @param copy
+	 */
+	public GridLayoutGridFigure(GridLayoutPolicyHelper helper) {
+		this.helper = helper;
+		setBounds(helper.getClientArea());
+		if (helper != null) {
+			Rectangle spacing = helper.getLayoutSpacing();
+			marginWidth = spacing.x;
+			marginHeight = spacing.y;
+			verticalSpacing = spacing.height;
+			horizontalSpacing = spacing.width;
+		} else {
+			GridLayout example = new GridLayout();
+			marginWidth = example.marginWidth;
+			marginHeight = example.marginHeight;
+			horizontalSpacing = example.horizontalSpacing;
+			verticalSpacing = example.verticalSpacing;
+		}
+		if (helper != null) {
+			int[][] layoutDimensions = helper.getLayoutDimensions();
+			GridComponent[][] cellContents = helper.getLayoutTable();
+			if (layoutDimensions != null) {
+				int[] columnWidths = layoutDimensions[0];
+				int[] rowHeights = layoutDimensions[1];
+				columnModelSegments = calculateColumnDividers(columnWidths, rowHeights, cellContents);
+				rowModelSegments = calculateRowDividers(columnWidths, rowHeights, cellContents);
+			}
+		}
+	}
+
+	protected int[][] calculateColumnDividers(int[] columnWidths, int[] rowHeights, GridComponent[][] cellContents) {
+		if (rowHeights == null || columnWidths == null /* || helper.getClientArea() == null */)
+			return null;
+
+		int spacingLeft = (int) Math.ceil((double) horizontalSpacing / 2);
+		int spacingRight = (int) Math.floor((double) horizontalSpacing / 2);
+		int spacingTop = (int) Math.ceil((double) verticalSpacing / 2);
+		int spacingBottom = (int) Math.floor((double) verticalSpacing / 2);
+
+		int containerHeight = 0;
+		columnModelPositions = new int[columnWidths.length + 1];
+		columnStartModelPositions = new Point[columnModelPositions.length];
+		columnEndModelPositions = new Point[columnModelPositions.length];
+		int[][] columnSegments = new int[columnModelPositions.length][];
+
+		for (int i = 0; i < rowHeights.length; i++) {
+			containerHeight += rowHeights[i];
+		}
+		// add height for the spacing
+		containerHeight += marginHeight * 2;
+		containerHeight += verticalSpacing * (rowHeights.length - 1);
+
+		Rectangle clientArea = /* helper.getClientArea() */getBounds().getCopy();
+		int xPos = clientArea.x;
+		int yMin = clientArea.y;
+		int yMax = clientArea.y + containerHeight;
+		int xMax = xPos + clientArea.width - 1; // This is the far right side, less one so that it draws within the box (otherwise it would be outside the box).
+
+		// draw the first divider
+		columnModelPositions[0] = xPos;
+		columnStartModelPositions[0] = new Point(xPos, yMin);
+		columnEndModelPositions[0] = new Point(xPos, yMax);
+		columnSegments[0] = new int[] { yMin, yMax }; // The left border will always be one segemnt.
+
+		// move up by the initial margin width
+		xPos += marginWidth;
+
+		int[] colSegs = new int[2 + rowHeights.length * 2]; // Each entry is a y position. They are in 2-tuples (start,stop) for a segment. For a col, it is max of one segment(or 2 points) + 2 for start of next.
+		// draw the dividers in between and at the end
+		for (int i = 1; i < columnModelPositions.length; i++) {
+			xPos += columnWidths[i - 1];
+
+			// Place the position in the middle of the the horizontal spacing gap
+			if (i < columnWidths.length) {
+				xPos += spacingLeft;
+			} else {
+				// or after the end margin, if this is the last line
+				xPos += marginWidth;
+			}
+
+			xPos = Math.min(xPos, xMax);
+			Point startPoint = new Point(xPos, yMin);
+			columnModelPositions[i] = xPos;
+			columnStartModelPositions[i] = startPoint;
+			columnEndModelPositions[i] = new Point(xPos, yMax);
+
+			// Now calculate the column segments.
+			if (i < columnWidths.length && i < cellContents.length) {
+				GridComponent[] leftColumn = cellContents[i - 1];
+				GridComponent[] rightColumn = cellContents[i];
+				int yPos = yMin;
+				int lastRow = leftColumn.length - 1;
+				int colSegsNdx = 0; // This will always point to the start index of the next segment.
+				colSegs[colSegsNdx] = yMin; // Will always start at yMin.
+				boolean prevSpan = true; // Previous was a span. (We treat first one as previous span so as not to close off an empty segment)
+				// Walk each row, and compare left and right column to see if spanned.
+				for (int j = 0; j < leftColumn.length; j++) {
+					int trueRowHeight = 0;
+					if (j < rowHeights.length)// if there is not this condition,it may cause an exception;
+						trueRowHeight = rowHeights[j];
+					if (j == 0)
+						trueRowHeight += marginHeight;
+					else
+						trueRowHeight += spacingTop;
+					if (j != lastRow)
+						trueRowHeight += spacingBottom;
+					else
+						trueRowHeight += marginHeight;
+					GridComponent leftObject, rightObject;
+					if ((leftObject = leftColumn[j]) != helper.EMPTY_GRID && (rightObject = rightColumn[j]) != helper.EMPTY_GRID && leftObject == rightObject) {
+						// We are spanning, so skip it and move start of segment to next cell.
+						if (!prevSpan) {
+							// Need to close off previous one (if not first)
+							colSegs[++colSegsNdx] = yPos;
+							colSegsNdx++; // Move to start of next.
+						}
+						yPos += trueRowHeight;
+						colSegs[colSegsNdx] = yPos + 1; // Start of next seg.
+						prevSpan = true;
+					} else {
+						// We are not spanning, continue line through it.
+						prevSpan = false;
+						yPos += trueRowHeight;
+					}
+				}
+				if (colSegs[colSegsNdx] < yPos) {
+					// We have to something to draw for last segment.
+					colSegs[++colSegsNdx] = yMax;
+				} else
+					colSegsNdx--; // We had a segment start that is the same as the last stop, so get rid of it.
+				columnSegments[i] = new int[++colSegsNdx];
+				System.arraycopy(colSegs, 0, columnSegments[i], 0, colSegsNdx);
+			} else {
+				columnSegments[i] = new int[] { yMin, yMax }; // The right border will always be one segemnt.
+			}
+			// add the remainder of the spacing
+			xPos += spacingRight;
+		}
+
+		return columnSegments;
+	}
+
+	protected int[][] calculateRowDividers(int[] columnWidths, int[] rowHeights, GridComponent[][] cellContents) {
+		if (columnWidths == null || rowHeights == null /* || helper.getClientArea() == null */)
+			return null;
+
+		int spacingLeft = (int) Math.ceil((double) horizontalSpacing / 2);
+		int spacingRight = (int) Math.floor((double) horizontalSpacing / 2);
+		int spacingTop = (int) Math.ceil((double) verticalSpacing / 2);
+		int spacingBottom = (int) Math.floor((double) verticalSpacing / 2);
+
+		int containerWidth = 0;
+		rowModelPositions = new int[rowHeights.length + 1];
+		rowStartModelPositions = new Point[rowModelPositions.length];
+		rowEndModelPositions = new Point[rowModelPositions.length];
+		int[][] rowSegments = new int[rowModelPositions.length][];
+
+		for (int i = 0; i < columnWidths.length; i++) {
+			containerWidth += columnWidths[i];
+		}
+		// add width for the spacing
+		containerWidth += marginWidth * 2;
+		containerWidth += horizontalSpacing * (columnWidths.length - 1);
+
+		Rectangle clientArea = /* helper.getClientArea() */getBounds().getCopy();
+		int yPos = clientArea.y;
+		int xMin = clientArea.x;
+		int xMax = clientArea.x + containerWidth;
+		int yMax = yPos + clientArea.height - 1; // This is the bottom side, less one so that it draws within the box (otherwise it would be outside the box).
+
+		// draw the first divider
+		rowModelPositions[0] = yPos;
+		rowStartModelPositions[0] = new Point(xMin, yPos);
+		rowEndModelPositions[0] = new Point(xMax, yPos);
+		rowSegments[0] = new int[] { xMin, xMax }; // The top border will always be one segemnt.
+
+		// move up the initial margin height
+		yPos += marginHeight;
+
+		int[] rowSegs = new int[2 + columnWidths.length * 2]; // Each entry is an x position. They are in 2-tuples (start,stop) for a segment. For a row, it is max of one segment(or 2 points) + 2 for start of next.
+		// draw the dividers in between and at the end
+		for (int i = 1; i < rowModelPositions.length; i++) {
+			yPos += rowHeights[i - 1];
+
+			// Place the position in the middle of the the vertical spacing gap
+			if (i < rowHeights.length) {
+				yPos += spacingTop;
+			} else {
+				// or after the end margin, if this is the last line
+				yPos += marginHeight;
+			}
+
+			yPos = Math.min(yPos, yMax);
+			Point startPoint = new Point(xMin, yPos);
+			Point endPoint = new Point(xMax, yPos);
+			rowModelPositions[i] = yPos;
+			rowStartModelPositions[i] = startPoint;
+			rowEndModelPositions[i] = endPoint;
+
+			// Now calculate the row segments.
+			if (i < rowHeights.length) {
+				int upperRow = i - 1;
+				int lowerRow = i;
+				int xPos = xMin;
+				int length = Math.min(cellContents.length, columnWidths.length);
+				int lastCol = length - 1;
+				int rowSegsNdx = 0; // This will always point to the start index of the next segment.
+				rowSegs[rowSegsNdx] = xMin; // Will always start at xMin.
+				boolean prevSpan = true; // Previous was a span. (We treat first one as previous span so as not to close off an empty segment)
+				// Walk each column comparing upper row and lower to see if spanned.
+				for (int j = 0; j < length; j++) {
+					int trueColWidth = columnWidths[j];
+					if (j == 0)
+						trueColWidth += marginWidth;
+					else
+						trueColWidth += spacingLeft;
+					if (j != lastCol)
+						trueColWidth += spacingRight;
+					else
+						trueColWidth += marginWidth;
+					GridComponent upperObject, lowerObject;
+					if ((upperObject = cellContents[j][upperRow]) != helper.EMPTY_GRID && (lowerObject = cellContents[j][lowerRow]) != helper.EMPTY_GRID && upperObject == lowerObject) {
+						// We are spanning, so skip it and move start of segment to next cell.
+						if (!prevSpan) {
+							// Need to close off previous one (if not first)
+							rowSegs[++rowSegsNdx] = xPos;
+							rowSegsNdx++; // Move to start of next.
+						}
+						xPos += trueColWidth;
+						rowSegs[rowSegsNdx] = xPos + 1; // Start of next seg.
+						prevSpan = true;
+					} else {
+						// We are not spanning, continue line through it.
+						xPos += trueColWidth;
+						prevSpan = false;
+					}
+				}
+				if (rowSegs[rowSegsNdx] < xPos) {
+					// We have to something to draw for last segment.
+					rowSegs[++rowSegsNdx] = xMax;
+				} else
+					rowSegsNdx--; // We had a segment start that is the same as the last stop, so get rid of it.
+				rowSegments[i] = new int[++rowSegsNdx];
+				System.arraycopy(rowSegs, 0, rowSegments[i], 0, rowSegsNdx);
+			} else {
+				rowSegments[i] = new int[] { xMin, xMax }; // The bottom border will always be one segemnt.
+			}
+
+			// add the remainder of the spacing
+			yPos += spacingBottom;
+		}
+
+		return rowSegments;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.draw2d.Figure#paintFigure(org.eclipse.draw2d.Graphics)
+	 */
+	protected void paintFigure(Graphics g) {
+		g.setForegroundColor(ColorConstants.gray);
+		g.setLineStyle(Graphics.LINE_DOT);
+		drawRowDividers(g);
+		drawColumnDividers(g);
+	}
+
+	protected void drawColumnDividers(Graphics g) {
+		if (columnModelSegments == null || columnStartModelPositions == null)
+			return;
+		Point fromPoint = new Point();
+		Point toPoint = new Point();
+		for (int i = 0; i < columnModelSegments.length; i++) {
+			int[] colSegs = columnModelSegments[i];
+			int xPos = columnStartModelPositions[i].x;
+			int j = -1;
+			while (++j < colSegs.length) {
+				// Map from model to figure coordinates. First map to relative to figure, and then maps to absolute (through the figure bounds upper-left).
+				// mapModelToFigure(fromPoint.setLocation(xPos, colSegs[j]));
+				// mapModelToFigure(toPoint.setLocation(xPos, colSegs[++j]));
+				fromPoint.setLocation(xPos, colSegs[j]);
+				toPoint.setLocation(xPos, colSegs[++j]);
+				g.drawLine(fromPoint, toPoint);
+			}
+		}
+	}
+
+	/**
+	 * Draw the row dividers based on the GridBagLayout's origin and the row widths.
+	 */
+	protected void drawRowDividers(Graphics g) {
+		if (rowModelSegments == null || rowStartModelPositions == null)
+			return;
+		Point fromPoint = new Point();
+		Point toPoint = new Point();
+		for (int i = 0; i < rowModelSegments.length; i++) {
+			int[] rowSegs = rowModelSegments[i];
+			int yPos = rowStartModelPositions[i].y;
+			int j = -1;
+			while (++j < rowSegs.length) {
+				// Map from model to figure coordinates. First map to relative to figure, and then maps to absolute (through the figure bounds upper-left).
+				// mapModelToFigure(fromPoint.setLocation(rowSegs[j], yPos));
+				// mapModelToFigure(toPoint.setLocation(rowSegs[++j], yPos));
+				fromPoint.setLocation(rowSegs[j], yPos);
+				toPoint.setLocation(rowSegs[++j], yPos);
+				g.drawLine(fromPoint, toPoint);
+			}
+		}
+	}
+
+	/**
+	 * Get the cell location (i.e. the grid x/y) that the point (in model coordinates) is within.
+	 * 
+	 * @param p
+	 *            point to look for what cell it is in. It is in model coordinates.
+	 * @return the cell grid x/y as a point. '-1' for a grid means the incoming dimension was to the left/above the left-most/top-most col/row.
+	 * 
+	 * @since 1.2.0
+	 */
+	public Point getCellLocation(Point p) {
+		return getCellLocation(p.x, p.y);
+	}
+
+	/**
+	 * Get the cell bounds for the cell that the position is within.
+	 * 
+	 * @param pos
+	 *            position in col,row.
+	 * @return cell bounds in model coor of the cell that the pos is in. If outside model, it will have a default size. This point may be modified.
+	 * 
+	 * @since 1.2.0
+	 */
+	public Rectangle getCellBounds(Point pos) {
+		if (rowModelPositions == null || columnModelPositions == null)
+			return new Rectangle(0, 0, GridLayoutEditPolicy.DEFAULT_CELL_WIDTH, GridLayoutEditPolicy.DEFAULT_CELL_HEIGHT);
+
+		int cellxpos, cellypos, cellwidth, cellheight;
+		if (pos.x < 0)
+			cellxpos = columnModelPositions[0] - GridLayoutEditPolicy.DEFAULT_CELL_WIDTH;
+		else
+			cellxpos = columnModelPositions[pos.x];
+		if (pos.x < columnModelPositions.length - 1)
+			cellwidth = columnModelPositions[pos.x + 1] - cellxpos;
+		else
+			cellwidth = GridLayoutEditPolicy.DEFAULT_CELL_WIDTH;
+
+		if (pos.y < 0)
+			cellypos = rowModelPositions[0] - GridLayoutEditPolicy.DEFAULT_CELL_HEIGHT;
+		else
+			cellypos = rowModelPositions[pos.y];
+		if (pos.y < rowModelPositions.length - 1)
+			cellheight = rowModelPositions[pos.y + 1] - cellypos;
+		else
+			cellheight = GridLayoutEditPolicy.DEFAULT_CELL_HEIGHT;
+
+		return new Rectangle(cellxpos, cellypos, cellwidth, cellheight);
+	}
+
+	/**
+	 * Get the rectangle for the column left hand side (in model terms) for the column sent in.
+	 * 
+	 * @param col
+	 *            the column to get the rect for.
+	 * @return rect (0 width) for the left hand side of the column. This rect can be modified by caller. It will be in model coors.
+	 * 
+	 * @since 1.2.0
+	 */
+	public Rectangle getColumnRectangle(int col) {
+		if (columnStartModelPositions != null) {
+			return new Rectangle(columnStartModelPositions[col], columnEndModelPositions[col]).resize(-1, -1); // 1.
+		}
+		return new Rectangle();
+	}
+
+	/**
+	 * Get the rectangle for the row top hand side for the row sent in.
+	 * 
+	 * @param row
+	 *            the row to get the row rect for.
+	 * @return rect (0 width) for the top side of the row. It will be in model coors. It can be modified.
+	 * 
+	 * @since 1.2.0
+	 */
+	public Rectangle getRowRectangle(int row) {
+		if (rowStartModelPositions != null) {
+			return new Rectangle(rowStartModelPositions[row], rowEndModelPositions[row]).resize(-1, -1);
+		}
+		return new Rectangle();
+	}
+
+	/**
+	 * Get the cell location (i.e. the grid x/y) that the point (in model coordinates) is within.
+	 * 
+	 * @param x
+	 *            x to look for what cell it is in. It is in model coordinates.
+	 * @param y
+	 *            y to look for what cell it is in. It is in model coordinates.
+	 * @return the cell grid x/y as a point. '-1' for a grid means the incoming dimension was to the left/above the left-most/top-most col/row.
+	 * 
+	 * 
+	 * @since 1.2.0
+	 */
+	public Point getCellLocation(int x, int y) {
+		return getCellLocation(x, y, false, false);
+	}
+
+	/**
+	 * Get the cell location (i.e. the grid x/y) that the point (in model coordinates) is within.
+	 * 
+	 * @param x
+	 *            x to look for what cell it is in. It is in model coordinates.
+	 * @param y
+	 *            y to look for what cell it is in. It is in model coordinates.
+	 * @param includeEmptyColumns
+	 * @param includeEmptyRows
+	 * @return the cell grid x/y as a point. '-1' for a grid means the incoming dimension was to the left/above the left-most/top-most col/row.
+	 * 
+	 * @since 1.2.0
+	 */
+	public Point getCellLocation(int x, int y, boolean includeEmptyColumns, boolean includeEmptyRows) {
+		if (rowModelPositions == null || columnModelPositions == null)
+			return new Point(0, 0);
+
+		int gridx = -1, gridy = -1;
+		boolean foundx = false, foundy = false;
+		for (int i = 0; i < columnModelPositions.length - 1; i++) {
+			int xpos = columnModelPositions[i];
+			if (x >= xpos && x < columnModelPositions[i + 1]) {
+				gridx = i;
+				if (includeEmptyColumns) {
+					/*
+					 * Since column positions can be equal if there are columns that don't contain components, iterate back throught the columns positions to get the first one with this position.
+					 */
+					int j;
+					for (j = i; j >= 0 && columnModelPositions[i] == columnModelPositions[j]; j--)
+						// ;
+						gridx = j + 1;
+				}
+				foundx = true;
+				break;
+			}
+		}
+		for (int i = 0; i < rowModelPositions.length - 1; i++) {
+			int ypos = rowModelPositions[i];
+			if (y >= ypos && y < rowModelPositions[i + 1]) {
+				gridy = i;
+				if (includeEmptyRows) {
+					/*
+					 * Since row positions can be equal if there are rows that don't contain components, iterate back throught the rows to get the first one with this position.
+					 */
+					int j;
+					for (j = i; j >= 0 && rowModelPositions[i] == rowModelPositions[j]; j--)
+						gridy = j + 1;
+				}
+				foundy = true;
+				break;
+			}
+		}
+
+		if (!foundx && x >= columnModelPositions[columnModelPositions.length - 1])
+			gridx = columnModelPositions.length - 1;
+		if (!foundy && y >= rowModelPositions[rowModelPositions.length - 1])
+			gridy = rowModelPositions.length - 1;
+
+		return new Point(gridx, gridy);
+	}
+
+	/**
+	 * Get the grid figure rect for the specified cell dimensions. The cells dimensions are packed into a Rectangle according to the following rules:
+	 * 
+	 * rect.x = column position rect.y = row position rect.width = horizontal span rect.height = vertical span
+	 * 
+	 * @param cellsBounds
+	 *            The cell area to calculate
+	 * @return the rect in model coor. for the grid representing these cells.
+	 * 
+	 * @since 1.0.0
+	 */
+	public Rectangle getGridBroundsForCellBounds(Rectangle cellsBounds) {
+		Rectangle r = new Rectangle();
+		if (rowModelPositions != null && columnModelPositions != null && cellsBounds.y <= rowModelPositions.length - 1 && cellsBounds.x <= columnModelPositions.length - 1) {
+			r.x = columnModelPositions[cellsBounds.x];
+			r.y = rowModelPositions[cellsBounds.y];
+
+			if (cellsBounds.x + cellsBounds.width > columnModelPositions.length - 1) {
+				r.width = columnModelPositions[columnModelPositions.length - 1];
+			} else {
+				r.width = columnModelPositions[cellsBounds.x + cellsBounds.width];
+			}
+			r.width -= r.x;
+
+			if (cellsBounds.y + cellsBounds.height > rowModelPositions.length - 1) {
+				r.height = rowModelPositions[rowModelPositions.length - 1];
+			} else {
+				r.height = rowModelPositions[cellsBounds.y + cellsBounds.height];
+			}
+			r.height -= r.y;
+		}
+		return r;
+
+	}
+
+	/**
+	 * Get the grid layout request type from the given position in model coor.
+	 * 
+	 * @param pos
+	 *            position in model coor.
+	 * @param helper
+	 *            helper to use.
+	 * @return gridlayout request for the given position.
+	 * 
+	 * @since 1.2.0
+	 */
+	public GridLayoutRequest getGridLayoutRequest(Point pos, GridLayoutPolicyHelper helper) {
+		Point cell = getCellLocation(pos);// get the control position(column,row)
+		GridLayoutRequest req = new GridLayoutRequest();
+		req.column = cell.x;
+		req.row = cell.y;
+
+		if (req.column == -1 || req.row == -1)
+			req.type = GridLayoutRequest.NO_ADD; // We are above or to the left, we can't add.
+		else if (columnModelPositions == null || req.column >= columnModelPositions.length - 1)
+			if (rowModelPositions == null || req.row >= rowModelPositions.length - 1)
+				req.type = GridLayoutRequest.ADD_ROW_COL;
+			else
+				req.type = GridLayoutRequest.ADD_COLUMN;
+		else if (req.row >= rowEndModelPositions.length - 1)
+			req.type = GridLayoutRequest.ADD_ROW;
+		else {
+			int colSensitive;
+			int nextCol = req.column + 1;
+			int colWidth = columnModelPositions[nextCol] - columnModelPositions[req.column];
+			if (colWidth <= 2 * ROW_COLUMN_SENSITIVITY) {
+				// We are inside a cell that is too small (the row/col sensitivities would override and we couldn't drop in it)
+				// Reduce col sensitivity to a minimum. These reductions will mean that the col sensitivities from
+				// the right side and from the left side will not overlap. If they overlapped it would be difficult
+				// to figure which side should get the insert.
+				if (colWidth <= 5)
+					colSensitive = 0; // No sensitivity. Must be right on.
+				else
+					colSensitive = 1; // Decrease to 1.
+			} else
+				colSensitive = ROW_COLUMN_SENSITIVITY;
+			if (pos.x - columnModelPositions[req.column] <= colSensitive) {
+				if (helper.isEmptyAtCell(cell) || helper.isFillerLabelAtCell(cell))
+					req.type = GridLayoutRequest.INSERT_COLUMN;
+				else {
+					// We are over a control. If we are over a spanned section of the control, then it must be
+					// changed to insert column in row back at the left side of the control.
+					Rectangle childDim = helper.getChildDimensions(cell);
+					// If empty (childDim == null) then insert col.
+					if (childDim != null && childDim.x < cell.x) {
+						req.type = GridLayoutRequest.INSERT_COLUMN_WITHIN_ROW;
+						req.column = childDim.x; // Move back to start of child.
+					} else
+						req.type = GridLayoutRequest.INSERT_COLUMN; // It's ok, we are at the left side of the child.
+				}
+			} else if (columnModelPositions[nextCol] - pos.x <= colSensitive) {
+				cell.x = req.column = nextCol; // Nearer to next column.
+				if (req.column < columnModelPositions.length - 1) {
+					if (helper.isEmptyAtCell(cell) || helper.isFillerLabelAtCell(cell))
+						req.type = GridLayoutRequest.INSERT_COLUMN;
+					else {
+						// We are over a control. If we are over a spanned section of the control, then it must be
+						// changed to insert column in row back at the left side of the control.
+						Rectangle childDim = helper.getChildDimensions(cell);
+						// If empty (childDim == null) then insert column.
+						if (childDim != null && childDim.x < cell.x) {
+							req.type = GridLayoutRequest.INSERT_COLUMN_WITHIN_ROW;
+							req.column = childDim.x; // Move back to start of child.
+						} else
+							req.type = GridLayoutRequest.INSERT_COLUMN; // It's ok, we are at the left side of the child.
+					}
+				} else
+					req.type = GridLayoutRequest.ADD_COLUMN;
+			} else {
+				int rowSensitive;
+				int nextRow = req.row + 1;
+				int rowHeight = rowModelPositions[nextRow] - rowModelPositions[req.row];
+				if (rowHeight <= 2 * ROW_COLUMN_SENSITIVITY) {
+					// We are inside a cell that is too small (the row/col sensitivities would override and we couldn't drop in it)
+					// Reduce row sensitivity to a minimum. These reductions will mean that the row sensitivities from
+					// the top side and from the bottom side will not overlap. If they overlapped it would be difficult
+					// to figure which side should get the insert.
+					if (rowHeight <= 5)
+						rowSensitive = 0; // No sensitivity. Must be right on.
+					else
+						rowSensitive = 2; // Decrease to 2.
+				} else
+					rowSensitive = ROW_COLUMN_SENSITIVITY;
+				;
+				if (pos.y - rowModelPositions[req.row] <= rowSensitive) {
+					if (helper.isEmptyAtCell(cell) || helper.isFillerLabelAtCell(cell))
+						req.type = GridLayoutRequest.INSERT_ROW;
+					else {
+						// We are over a control. If we are over a spanned section of the control, then it must be
+						// changed to no add. Can't insert row over a vertically spanned control.
+						Rectangle childDim = helper.getChildDimensions(cell);
+						// If empty (childDim == null) then insert row.
+						if (childDim != null && childDim.y < cell.y) {
+							req.type = GridLayoutRequest.INSERT_COLUMN_WITHIN_ROW;
+							req.column = childDim.x; // Move back to start of child.
+						} else
+							req.type = GridLayoutRequest.INSERT_ROW; // It's ok, we are at the top side of the child.
+					}
+				} else if (rowModelPositions[nextRow] - pos.y <= rowSensitive) {
+					cell.y = req.row = nextRow; // Nearer to next row.
+					req.type = req.row < rowModelPositions.length - 1 ? GridLayoutRequest.INSERT_ROW : GridLayoutRequest.ADD_ROW; // Add if next
+					// row is
+					// actually
+					// outside.
+					if (req.row < rowModelPositions.length - 1) {
+						// We are over a control. If we are over a spanned section of the control, then it must be
+						// changed to no add. Can't insert row over a vertically spanned control.
+						Rectangle childDim = helper.getChildDimensions(cell);
+						// If empty (childDim == null) then insert row.
+						if (childDim != null && childDim.y < cell.y) {
+							req.type = GridLayoutRequest.INSERT_COLUMN_WITHIN_ROW;
+							req.column = childDim.x; // Move back to start of child.
+						} else
+							req.type = GridLayoutRequest.INSERT_ROW; // It's ok, we are at the top side of the child.
+					} else
+						req.type = GridLayoutRequest.ADD_ROW;
+
+				} else {
+					// In the cell, see if replace filler, insert column in row, or replace empty.
+					if (helper.isEmptyAtCell(cell))
+						req.type = GridLayoutRequest.ADD_TO_EMPTY_CELL;
+					else if (helper.isFillerLabelAtCell(cell))
+						req.type = GridLayoutRequest.REPLACE_FILLER;
+					else {
+						Rectangle childDim = helper.getChildDimensions(cell);
+						req.type = GridLayoutRequest.INSERT_COLUMN_WITHIN_ROW;
+						if (childDim != null && childDim.x < cell.x)
+							req.column = childDim.x; // Move back to start of child.
+					}
+				}
+			}
+		}
+
+		return req;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutPolicyHelper.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutPolicyHelper.java
new file mode 100755
index 0000000..3c6249a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutPolicyHelper.java
@@ -0,0 +1,1468 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout.grid;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gef.RequestConstants;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.xwt.tools.ui.designer.commands.ApplyAttributeSettingCommand;
+import org.eclipse.xwt.tools.ui.designer.commands.GridLayoutCommandsFactory;
+import org.eclipse.xwt.tools.ui.designer.core.util.swt.GridLayoutHelper;
+import org.eclipse.xwt.tools.ui.designer.core.util.swt.GridLayoutHelper_30;
+import org.eclipse.xwt.tools.ui.designer.core.visuals.VisualInfo;
+import org.eclipse.xwt.tools.ui.designer.loader.ResourceVisitor;
+import org.eclipse.xwt.tools.ui.designer.loader.XWTProxy;
+import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
+import org.eclipse.xwt.tools.ui.designer.parts.ShellEditPart;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+import org.eclipse.xwt.tools.ui.xaml.tools.AnnotationTools;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class GridLayoutPolicyHelper {
+
+	public static final String FILLER_DATA = "Filter_DATA";
+	private static final String NO_MODS = "NOMODS"; //$NON-NLS-1$
+	private static final int NOT_MODIFIED_SPAN = -1;
+	private static final int SET_TO_DEFAULT_SPAN = -2;
+
+	public final GridComponent EMPTY_GRID = new GridComponent(null);
+	private XamlElement gridLayout;
+	private CompositeEditPart host;
+	protected GridComponent[][] glayoutTable;
+	protected int numColumns = -1;
+	protected int originalNumColumns;
+	protected int defaultHorizontalSpan, defaultVerticalSpan;
+	protected GridComponent first, last;
+	private List<XamlNode> deletedComponents = new ArrayList<XamlNode>();
+	private List<XamlNode> orphanedComponents;
+	private GridLayoutCommandsFactory factory;
+
+	public GridLayoutPolicyHelper() {
+		initializeDefaults();
+	}
+
+	public void setHost(CompositeEditPart host) {
+		this.host = host;
+		this.gridLayout = ((CompositeEditPart) host).getLayoutModel();
+		factory = new GridLayoutCommandsFactory(host);
+	}
+
+	protected void initializeDefaults() {
+		GridData gd = new GridData();
+		defaultHorizontalSpan = gd.horizontalSpan;
+		defaultVerticalSpan = gd.verticalSpan;
+	}
+
+	public Rectangle getLayoutSpacing() {
+		Rectangle result = new Rectangle();
+		GridLayout layout = (GridLayout) XWTProxy.createValue(gridLayout);
+		if (layout == null) {
+			layout = new GridLayout();
+		}
+		result.x = layout.marginWidth;
+		result.y = layout.marginHeight;
+		result.width = layout.horizontalSpacing;
+		result.height = layout.verticalSpacing;
+		return result;
+	}
+
+	/**
+	 * @return
+	 */
+	public int[][] getLayoutDimensions() {
+		Composite composite = getComposite();
+		if (composite == null) {
+			return null;
+		}
+		int[][] result = new int[2][];
+		int[] widths = null;
+		int[] heights = null;
+		int version = SWT.getVersion();
+		if (version > 3100) {
+			GridLayoutHelper helper = new GridLayoutHelper();
+			helper.setComposite(composite);
+			widths = helper.widths;
+			heights = helper.heights;
+		} else {
+			GridLayoutHelper_30 helper = new GridLayoutHelper_30();
+			helper.setComposite(composite);
+			widths = helper.widths;
+			heights = helper.heights;
+		}
+
+		if (widths == null) {
+			result[0] = new int[0];
+		} else {
+			result[0] = widths;
+		}
+		if (heights == null) {
+			result[1] = new int[0];
+		} else {
+			result[1] = heights;
+		}
+		return result;
+	}
+
+	/**
+	 * @return
+	 */
+	private Composite getComposite() {
+		if (host == null) {
+			return null;
+		}
+		VisualInfo visualComp = (VisualInfo) host.getVisualInfo();
+		if (visualComp == null || visualComp.getVisualObject() == null) {
+			return null;
+		}
+		return (Composite) visualComp.getVisualObject();
+	}
+
+	/**
+	 * @return
+	 */
+	public GridComponent[][] getLayoutTable() {
+		if (glayoutTable == null) {
+			int[][] dimensions = getLayoutDimensions();
+			if (dimensions == null) {
+				return null;
+			}
+			Composite composite = getComposite();
+			if (composite == null) {
+				return null;
+			}
+			GridLayout layout = getGridLayout();
+			if (layout == null) {
+				return null;
+			}
+			glayoutTable = new GridComponent[dimensions[0].length][dimensions[1].length];
+			// Original num columns is the actual setting in the layout.
+			originalNumColumns = layout.numColumns;
+			numColumns = dimensions[0].length;
+
+			// If empty container, don't continue.
+			if (glayoutTable.length < 1 || glayoutTable[0].length < 1) {
+				return glayoutTable;
+			}
+
+			int row = 0;
+			int col = 0;
+			int horizontalSpan;
+			int verticalSpan;
+
+			int childNum = 0;
+
+			Control[] children = composite.getChildren();
+			for (Control child : children) {
+				XamlNode model = (XamlNode) child.getData(ResourceVisitor.ELEMENT_KEY);
+				GridComponent gcomp = new GridComponent(model);
+				gcomp.filler = AnnotationTools.isAnnotated(model, FILLER_DATA);
+				addGridComponent(gcomp);
+				Object layoutData = child.getLayoutData();
+				if (layoutData == null || !(layoutData instanceof GridData)) {
+					horizontalSpan = defaultHorizontalSpan;
+					verticalSpan = defaultVerticalSpan;
+				} else {
+					GridData gd = (GridData) layoutData;
+					horizontalSpan = gd.horizontalSpan;
+					verticalSpan = gd.verticalSpan;
+				}
+				Rectangle r = new Rectangle();
+
+				// Find the next un-occupied cell
+				while (row < glayoutTable[0].length && glayoutTable[col][row] != null) {
+					col += 1;
+					if (col >= numColumns) {
+						row += 1;
+						col = 0;
+					}
+				}
+				// if there's not enough columns left for the horizontal span, go to
+				// next row
+				if (col != 0 && (col + horizontalSpan - 1) >= numColumns) {
+					row += 1;
+					col = 0;
+				}
+
+				// Add the child to the table in all spanned cells. Handle users coding mistakes by not spanning past the end of the table.
+				int maxColSpan = Math.min(col + horizontalSpan, glayoutTable.length);
+				int maxRowSpan = Math.min(row + verticalSpan, glayoutTable[col].length);
+				for (int coli = col; coli < maxColSpan; coli++) {
+					for (int rowj = row; rowj < maxRowSpan; rowj++) {
+						glayoutTable[coli][rowj] = gcomp;
+					}
+				}
+
+				r.x = col;
+				r.y = row;
+				r.width = maxColSpan - col; // True horizontal span
+				r.height = maxRowSpan - row; // True vertical span
+				gcomp.gridDimension = r;
+				if (r.width != horizontalSpan)
+					gcomp.setSpanWidth(r.width);
+				if (r.height != verticalSpan)
+					gcomp.setSpanHeight(r.height);
+				childNum++;
+
+				// Add the spanned columns to the column position
+				col += r.width - 1;
+			}
+		}
+		// Now change all null entries to be EMPTY.
+		for (int i = 0; i < glayoutTable.length; i++) {
+			for (int j = 0; j < glayoutTable[i].length; j++) {
+				if (glayoutTable[i][j] == null) {
+					glayoutTable[i][j] = EMPTY_GRID;
+				}
+			}
+		}
+		return glayoutTable;
+	}
+
+	public Rectangle getClientArea() {
+		if (host instanceof ShellEditPart){
+			return host.getVisualInfo().getClientArea();
+		}
+		return host.getFigure().getBounds();
+	}
+
+	protected void insertGridGomponentAtBeginning(GridComponent gc) {
+		gc.next = first;
+		gc.prev = null;
+		if (first == null)
+			last = gc;
+		else
+			first.prev = gc;
+		first = gc;
+	}
+
+	protected void insertGridComponentBefore(GridComponent gc, GridComponent before) {
+		if (before != null) {
+			if (before == first) {
+				first = gc;
+			} else
+				before.prev.next = gc;
+			gc.next = before;
+			gc.prev = before.prev;
+			before.prev = gc;
+		} else
+			addGridComponent(gc);
+	}
+
+	private void addGridComponent(GridComponent gc) {
+		if (last == null)
+			insertGridGomponentAtBeginning(gc);
+		else {
+			last.next = gc;
+			gc.prev = last;
+			gc.next = null;
+			last = gc;
+		}
+	}
+
+	private GridLayout getGridLayout() {
+		Composite composite = getComposite();
+		if (composite != null && !composite.isDisposed()) {
+			return (GridLayout) composite.getLayout();
+		}
+		return null;
+	}
+
+	/**
+	 * @return
+	 */
+	public CompositeEditPart getEditPart() {
+		return host;
+	}
+
+	public void refresh() {
+		glayoutTable = null;
+		first = last = null;
+		numColumns = originalNumColumns = -1;
+	}
+
+	protected XamlNode getLayoutData(Object parent) {
+		if (parent == null || !(parent instanceof XamlNode)) {
+			return null;
+		}
+		XamlNode model = (XamlNode) parent;
+		XamlNode layoutData = null;
+		XamlAttribute attr = model.getAttribute("layoutData", IConstants.XWT_NAMESPACE);
+		if (attr != null && !attr.getChildNodes().isEmpty()) {
+			layoutData = attr.getChildNodes().get(0);
+		}
+		return layoutData;
+	}
+
+	/**
+	 * @param cell
+	 * @return
+	 */
+	public boolean isEmptyAtCell(Point cell) {
+		getLayoutTable();
+		// Check to make sure the cell position is within the grid
+		if (cell.x >= 0 && cell.x < glayoutTable.length && cell.y >= 0 && cell.y < glayoutTable[0].length)
+			return glayoutTable[cell.x][cell.y] == EMPTY_GRID;
+		return false;
+	}
+
+	/**
+	 * @param cell
+	 * @return
+	 */
+	public boolean isFillerLabelAtCell(Point cell) {
+		// Check to make sure the cell position is within the grid
+		if (cell.x >= 0 && cell.x < glayoutTable.length && cell.y >= 0 && cell.y < glayoutTable[0].length)
+			return glayoutTable[cell.x][cell.y].isFillerLabel();
+		return false;
+	}
+
+	/**
+	 * @param cell
+	 * @return
+	 */
+	public Rectangle getChildDimensions(Point cell) {
+		getLayoutTable();
+		if (cell.x < 0 || cell.x >= glayoutTable.length || cell.y < 0 || cell.y >= glayoutTable[0].length)
+			return null;
+		GridComponent gc = glayoutTable[cell.x][cell.y];
+		if (gc != EMPTY_GRID)
+			return gc.gridDimension;
+		else
+			return null;
+	}
+
+	/**
+	 * Get the child dimensions for the child.
+	 * 
+	 * @param child
+	 *            child to find dimensions of.
+	 * @return rectangle of dimensions or <code>null</code> if child not a component. This rectangle must not be modified.
+	 * @since 1.2.0
+	 */
+	public Rectangle getChildDimensions(EObject child) {
+		getLayoutTable();
+		GridComponent gc = getComponent(child);
+		if (gc != null)
+			return gc.gridDimension;
+		else
+			return null;
+	}
+
+	/**
+	 * 
+	 */
+	public void startRequest() {
+		getLayoutTable();
+		deletedComponents.clear();
+		if (orphanedComponents != null) {
+			orphanedComponents.clear();
+		}
+	}
+
+	private GridComponent getComponentIfMove(EObject childEObject, Object requestType) {
+		if (RequestConstants.REQ_CREATE.equals(requestType) || RequestConstants.REQ_ADD.equals(requestType))
+			return null;
+		return getComponent(childEObject);
+	}
+
+	/**
+	 * Get the component for the given child.
+	 * 
+	 * @param childEObject
+	 * @return the component or <code>null</code> if not in the layout.
+	 * @since 1.2.0
+	 */
+	protected GridComponent getComponent(EObject childEObject) {
+		if (childEObject == null)
+			return null;
+		GridComponent gc = first;
+		while (gc != null) {
+			if (gc.model == childEObject)
+				return gc;
+			gc = gc.next;
+		}
+		return null;
+	}
+
+	protected void deleteComponent(GridComponent gcomp) {
+		if (gcomp.requestType != null && !gcomp.requestType.equals(RequestConstants.REQ_ADD)
+				&& !gcomp.requestType.equals(RequestConstants.REQ_CREATE)) {
+			// If it was create or add, then it wasn't here to begin with so no need to add to deleted list.
+			addToDeleted(gcomp.model);
+		}
+	}
+
+	protected void addToDeleted(XamlNode child) {
+		if (deletedComponents == null)
+			deletedComponents = new ArrayList<XamlNode>();
+		deletedComponents.add(child);
+	}
+
+	protected void addToOrphaned(XamlNode child) {
+		if (orphanedComponents == null)
+			orphanedComponents = new ArrayList<XamlNode>();
+		orphanedComponents.add(child);
+	}
+
+	/**
+	 * Used by callers to delete the child from the layout. It will clean up and remove now empty columns and rows that the child used to cover. It will also call the appropriate delete from the container policy.
+	 * <p>
+	 * Must call {@link #startRequest()} before this method can be called.
+	 * 
+	 * @param child
+	 * @param delete
+	 * @since 1.2.0
+	 */
+	public void deleteChild(XamlNode child) {
+		GridComponent gc = getComponent(child);
+		if (gc != null)
+			removeChild(gc, true, false); // Don't force removal of fillers. That is because if it would be replaced by a filler the user would get confused and think nothing happened. Instead they will get a not sign.
+		else
+			addToDeleted(child); // May be some other non-grid child. Let it get deleted.
+
+	}
+
+	/**
+	 * Used by callers to orphan the child from the layout. It will clean up and remove now empty columns and rows that the child used to cover. It will also call the appropriate orphan from the container policy.
+	 * <p>
+	 * Must call {@link #startRequest()} before this method can be called.
+	 * 
+	 * @param child
+	 * @param delete
+	 * @since 1.2.0
+	 */
+	public void orphanChild(XamlNode child) {
+		GridComponent gc = getComponent(child);
+		if (gc != null)
+			removeChild(gc, false, true); // Need to force removal because it is going away to a new parent.
+		addToOrphaned(child);
+	}
+
+	/**
+	 * Same as {@link #orphanChild(EObject)} except it does it for each child in the list.
+	 * 
+	 * @param children
+	 * @since 1.2.0
+	 */
+	public void orphanChildren(List<XamlNode> children) {
+		for (Iterator<XamlNode> iter = children.iterator(); iter.hasNext();) {
+			XamlNode child = iter.next();
+			orphanChild(child);
+		}
+	}
+
+	/**
+	 * Remove the gridcomponent from the table and clean up rows/cols if needed. Also set it as a child to delete from the container if the delete flag is true.
+	 * 
+	 * @param oldChild
+	 * @param delete
+	 * @param forceRemove
+	 *            force the remove. If the oldChild was a filler and this is <code>false</code> it doesn't actually remove it. That is because if it was removed, it would just put a filler back in its place, and then see if row/col should be deleted. If using <code>true</code> then it will force a removal of the filler. Even though a filler will go back in its place, this may still be necessary
+	 *            because the actual eobject has trully been orphaned or moved. And in that case we need to remove it.
+	 * @since 1.2.0
+	 */
+	protected void removeChild(GridComponent oldChild, boolean delete, boolean forceRemove) {
+		// First replace the child squares with Empties, then fill in with fillers.
+		// Remove the child from the linked list and delete it if requested
+		// And finally clear out now exposed empty rows/cols.
+
+		int toCol = oldChild.gridDimension.x + oldChild.gridDimension.width - 1;
+		int toRow = oldChild.gridDimension.y + oldChild.gridDimension.height - 1;
+		if (!oldChild.isFillerLabel() || forceRemove) {
+			removeGridComponent(oldChild);
+			if (delete)
+				deleteComponent(oldChild);
+
+			for (int col = oldChild.gridDimension.x; col <= toCol; col++) {
+				for (int row = oldChild.gridDimension.y; row <= toRow; row++) {
+					glayoutTable[col][row] = EMPTY_GRID;
+				}
+			}
+			for (int col = oldChild.gridDimension.x; col <= toCol; col++) {
+				for (int row = oldChild.gridDimension.y; row <= toRow; row++) {
+					replaceEmptyCell(createFillerComponent(), col, row);
+				}
+			}
+		}
+
+		// Now remove empty rows/cols.
+		for (int remRow = toRow; remRow >= oldChild.gridDimension.y; remRow--)
+			removeRowIfEmpty(remRow);
+		for (int remCol = toCol; remCol >= oldChild.gridDimension.x; remCol--)
+			removeColIfEmpty(remCol);
+	}
+
+	/**
+	 * Remove this row if contains nothing but empties, or fillers.
+	 * 
+	 * @param row
+	 * @return <code>true</code> if the row was removed.
+	 * @since 1.2.0
+	 */
+	protected boolean removeRowIfEmpty(int row) {
+		for (int col = 0; col < glayoutTable.length; col++) {
+			GridComponent gc = glayoutTable[col][row];
+			if (gc == EMPTY_GRID)
+				continue;
+			else if (gc.isFillerLabel())
+				continue;
+			else
+				return false; // We have one that starts on this row
+		}
+
+		// We have an empty row. Now go through and remove all of the fillers, decrease by one any vertical spans, and then just
+		// move up the entire layout one row.
+		for (int col = 0; col < glayoutTable.length; col++) {
+			GridComponent gc = glayoutTable[col][row];
+			if (gc == EMPTY_GRID)
+				continue;
+			else {
+				// It must be a filler. already verified that above.
+				removeGridComponent(gc);
+				deleteComponent(gc);
+			}
+		}
+
+		for (int col = 0; col < glayoutTable.length; col++) {
+			GridComponent[] oldCol = glayoutTable[col];
+			GridComponent[] newCol = glayoutTable[col] = new GridComponent[oldCol.length - 1];
+			System.arraycopy(oldCol, 0, newCol, 0, row);
+			System.arraycopy(oldCol, row + 1, newCol, row, newCol.length - row);
+			// And finally! update the grid dimensions of all of the moved controls.
+			for (int rrow = row; rrow < newCol.length; rrow++) {
+				GridComponent gc = newCol[rrow];
+				if (gc != EMPTY_GRID) {
+					if (gc.gridDimension.x == col && gc.gridDimension.y == rrow + 1) {
+						gc.gridDimension.y = rrow;
+					}
+					// Skip over control to get to next filled row.
+					rrow = (gc.gridDimension.y + gc.gridDimension.height - 1);
+				}
+			}
+		}
+
+		return true;
+	}
+
+	/**
+	 * Remove this col if contains nothing but empties, ir fillers.
+	 * 
+	 * @param col
+	 * @return <code>true</code> if the col was removed.
+	 * @since 1.2.0
+	 */
+	protected boolean removeColIfEmpty(int col) {
+		for (int row = 0; row < glayoutTable[col].length; row++) {
+			GridComponent gc = glayoutTable[col][row];
+			if (gc == EMPTY_GRID)
+				continue;
+			else if (gc.isFillerLabel())
+				continue;
+			else
+				return false; // We have one that starts on this col
+		}
+
+		// We have an empty col. Now go through and remove all of the fillers, decrease by one any horizontal spans, and then just
+		// move up the entire layout one col.
+		for (int row = 0; row < glayoutTable[col].length; row++) {
+			GridComponent gc = glayoutTable[col][row];
+			if (gc == EMPTY_GRID)
+				continue;
+			else {
+				// Must be a filler. Already verified that above.
+				removeGridComponent(gc);
+				deleteComponent(gc);
+			}
+		}
+
+		GridComponent[][] oldLayout = glayoutTable;
+		glayoutTable = new GridComponent[glayoutTable.length - 1][];
+		System.arraycopy(oldLayout, 0, glayoutTable, 0, col);
+		System.arraycopy(oldLayout, col + 1, glayoutTable, col, glayoutTable.length - col);
+		numColumns = glayoutTable.length;
+		// And finally! update the grid dimensions of all of the moved controls.
+		for (int rcol = col; rcol < glayoutTable.length; rcol++) {
+			// Need to rcol in the next for loop because we modify rcol within the for loop.
+			for (int rrow = 0; rcol < glayoutTable.length && rrow < glayoutTable[rcol].length; rrow++) {
+				GridComponent gc = glayoutTable[rcol][rrow];
+				if (gc != EMPTY_GRID) {
+					if (gc.gridDimension.x == rcol + 1 && gc.gridDimension.y == rrow) {
+						gc.gridDimension.x = rcol;
+					}
+					// Skip over control to get to next filled col.
+					rcol = (gc.gridDimension.x + gc.gridDimension.width - 1);
+				}
+			}
+		}
+
+		return true;
+	}
+
+	/**
+	 * Replace the empty cell. The child must be a new grid component. It cannot be one that already exists. It could be modified during the execution.
+	 * 
+	 * @param child
+	 * @param cellCol
+	 * @param cellRow
+	 * @since 1.2.0
+	 */
+	protected void replaceEmptyCell(GridComponent child, int cellCol, int cellRow) {
+		if (glayoutTable[cellCol][cellRow] != EMPTY_GRID)
+			return; // Invalid request.
+
+		GridComponent movedComponent = getComponentIfMove(child.model, child.requestType);
+
+		// Find the next occupied cell to be used as the before object.
+		GridComponent before = findNextValidGC(cellCol, cellRow);
+
+		// Need to find all empties between the object BEFORE the beforeObject (i.e. the object we are going AFTER)
+		// and our position. They need to be replaced with filler. Otherwise ours will not be placed correctly.
+		GridComponent componentBeforeUs = before != null ? before.prev : last;
+		Rectangle beforeUsDim = componentBeforeUs != null ? componentBeforeUs.gridDimension : new Rectangle();
+		int startCol = beforeUsDim.x;
+		for (int row = beforeUsDim.y; row <= cellRow; row++) {
+			int endCol = row != cellRow ? glayoutTable.length : cellCol; // Stop at our cell only on our row, else do entire row.
+			for (int col = startCol; col < endCol; col++) {
+				if (glayoutTable[col][row] == EMPTY_GRID) {
+					insertComponent(createFillerComponent(), before, col, row, 1, 1);
+				}
+			}
+			startCol = 0; // After the first row we want to start in first col.
+		}
+
+		if (movedComponent == null)
+			insertComponent(child, before, cellCol, cellRow, 1, 1);
+		else {
+			child.setMovedComponent(movedComponent);
+			insertComponent(child, before, cellCol, cellRow, 1, 1);
+			removeChild(movedComponent, false, true); // Need to force removal because if it was a filler it is now in a new place.
+		}
+	}
+
+	/**
+	 * Insert the component in the ordered list before the given component, and fill in the layout table with the new component. It is assumed that the slots taken by the new component are empty (or the current nameMap have been handled and can be replaced by this new component).
+	 * 
+	 * @param gc
+	 * @param beforeComponent
+	 *            component to be ordered before, <code>null</code> for add to end.
+	 * @param x
+	 * @param y
+	 * @param spanX
+	 * @param spanY
+	 * @since 1.2.0
+	 */
+	protected void insertComponent(GridComponent gc, GridComponent beforeComponent, int x, int y, int spanX, int spanY) {
+		gc.gridDimension = new Rectangle(x, y, spanX, spanY);
+		insertGridComponentBefore(gc, beforeComponent);
+		// Now fill in the slots
+		int stopCol = x + spanX;
+		int stopRow = y + spanY;
+		for (int col = x; col < stopCol; col++) {
+			for (int row = y; row < stopRow; row++)
+				glayoutTable[col][row] = gc;
+		}
+	}
+
+	private GridComponent findNextValidGC(int columnStart, int rowStart) {
+		if (glayoutTable.length == 0 || glayoutTable[0].length == 0)
+			return null;
+
+		// Find the next occupied cell to be used as the before object.
+		int col = columnStart, row = rowStart;
+		for (int i = row; i < glayoutTable[0].length; i++) {
+			for (int j = col; j < glayoutTable.length; j++) {
+				GridComponent child = glayoutTable[j][i];
+				if (child != EMPTY_GRID) {
+					// If the row is going through a control that is spanning vertically more than one
+					// row, skip it. This is checked by comparing this control's starting y (row) value
+					// with where we are in the table lookup. If it doesn't span vertically, then its gridY will be the same as the row.
+					if (child.gridDimension.y == i) {
+						return child;
+					}
+				}
+			}
+			col = 0; // Reset so that we now start from beginning of all subsequent rows.
+		}
+		return null;
+
+	}
+
+	/**
+	 * 
+	 */
+	private GridComponent createFillerComponent() {
+		XamlElement filler = XamlFactory.eINSTANCE.createElement("Label", IConstants.XWT_NAMESPACE);
+		// XamlElement comp = (XamlElement) host.getModel();
+		// comp.getChildNodes().add(filler);
+		GridComponent gc = new GridComponent(filler, true);
+		AnnotationTools.addAnnotation(filler, FILLER_DATA, FILLER_DATA);
+		return gc;
+	}
+
+	/**
+	 * @param child
+	 * @param requestType
+	 * @param cell
+	 */
+	public void replaceFiller(XamlNode child, Object requestType, Point cell) {
+		if (!isFillerLabelAtCell(cell))
+			return; // Invalid request.
+		GridComponent movedComponent = getComponentIfMove(child, requestType);
+		GridComponent compAtCell = glayoutTable[cell.x][cell.y];
+		deleteComponent(compAtCell); // Delete the filler.
+		if (movedComponent == null)
+			compAtCell.setComponent(child, requestType); // Just set in new stuff for same index position.
+		else {
+			// This is a move, so we will instead set into this filler component the moved child. This will be a copy and then
+			// the old child will be removed.
+			compAtCell.setComponent(child, requestType); // First make it new move component
+			compAtCell.setMovedComponent(movedComponent); // Then copy what is needed from old.
+			removeChild(movedComponent, false, true); // Need to force removal because if it is a filler, it is now in a new place.
+		}
+	}
+
+	private void removeGridComponent(GridComponent gc) {
+		if (first == gc)
+			first = gc.next;
+		else
+			gc.prev.next = gc.next;
+		if (last == gc)
+			last = gc.prev;
+		else
+			gc.next.prev = gc.prev;
+	}
+
+	/**
+	 * @param cell
+	 */
+	public boolean insertColWithinRow(Point cell) {
+		if (cell.x < 0 || cell.x >= glayoutTable.length || cell.y < 0 || cell.y >= glayoutTable[0].length)
+			return false;
+
+		// Create a column at the end if this row doesn't end with a filler or empty. None of the children of any row other than the one with the column being
+		// inserted will enter this column. Then the row starting with the insert col will be shifted left one column.
+		// If any one spans vertically then we will not allow the move. This is a restriction for now because
+		// it becomes very difficult to figure out what needs to move because the vertical span would push
+		// other components that would not normally be involved to also be shifted. It could cause shifting
+		// both above and below the new row.
+
+		// First test to see if a vertical span is involved. Don't do anything if it is.
+		for (int col = cell.x; col < glayoutTable.length; col++) {
+			GridComponent gc = glayoutTable[col][cell.y];
+			if (gc != EMPTY_GRID && gc.gridDimension.height > 1)
+				return false; // We have a vertical span, can't handle these at this time.
+		}
+
+		GridComponent lastCol = glayoutTable[numColumns - 1][cell.y];
+		if (lastCol != EMPTY_GRID && !last.isFillerLabel())
+			createNewCol(numColumns);
+
+		// Now start the needed shifting. Remove the new filler component just added in the new column and move over by one each until
+		// we reach the insert column.
+		GridComponent newFiller = glayoutTable[numColumns - 1][cell.y];
+		if (newFiller != EMPTY_GRID) {
+			removeGridComponent(newFiller);
+			deleteComponent(newFiller);
+		}
+		for (int col = glayoutTable.length - 2, toCol = col + 1; col >= cell.x; col--, toCol--) {
+			glayoutTable[toCol][cell.y] = glayoutTable[col][cell.y];
+		}
+		// Now put an empty in the col spot and replace with the new child.
+		glayoutTable[cell.x][cell.y] = EMPTY_GRID;
+		replaceEmptyCell(createFillerComponent(), cell.x, cell.y);
+		return true;
+	}
+
+	/**
+	 * @param newObject
+	 * @param requestType
+	 * @param cell
+	 */
+	public void replaceFillerOrEmpty(XamlNode newObject, Object requestType, Point cell) {
+		if (isFillerLabelAtCell(cell))
+			replaceFiller(newObject, requestType, cell);
+		else if (isEmptyAtCell(cell))
+			replaceEmptyCell(newObject, requestType, cell);
+	}
+
+	/**
+	 * @param x
+	 */
+	public void createNewCol(int newCol) {
+		if (newCol < 0 || newCol > glayoutTable.length)
+			return;
+		if (glayoutTable.length == 0) {
+			glayoutTable = new GridComponent[numColumns = 1][1];
+			glayoutTable[0][0] = EMPTY_GRID;
+			replaceEmptyCell(createFillerComponent(), 0, 0);
+			return;
+		}
+
+		GridComponent[][] newLayoutTable = new GridComponent[numColumns = glayoutTable.length + 1][glayoutTable[0].length];
+
+		// We need to create the new table. First copy each column up to but including new col as is since those won't change.
+		for (int col = 0; col < newCol; col++) {
+			System.arraycopy(glayoutTable[col], 0, newLayoutTable[col], 0, glayoutTable[col].length);
+		}
+
+		// First fill new col in with Empty so we don't get errors later accessing null slots.
+		Arrays.fill(newLayoutTable[newCol], EMPTY_GRID);
+
+		GridComponent[][] oldLayoutTable = glayoutTable;
+		glayoutTable = newLayoutTable; // Now have a valid table up to the prev col. We make it the table so that findNext, etc. will work.
+		// Now comes the hard part, we need to fill in the new col, but we have to be careful because of horizontal spans.
+		// First move all from old col to the last col over one col and updating their dimensions to their new col.
+		// This is needed so that when we create the new row after this we have valid "next valid objects".
+		// Note: The reason we are coming from the right is because that way we can tell when we hit the
+		// top-left of a a component. If we went from left to right we would keep incrementing the x coor (because
+		// we hit it, we increment it, and then on the next col we hit it again and would increment it again).
+		for (int col = oldLayoutTable.length - 1, toCol = col + 1; col >= newCol; col--, toCol--) {
+			for (int row = 0; row < oldLayoutTable[0].length; row++) {
+				GridComponent cellEntry = oldLayoutTable[col][row];
+				if (cellEntry == EMPTY_GRID)
+					glayoutTable[toCol][row] = EMPTY_GRID;
+				else {
+					if (cellEntry.gridDimension.x == col && cellEntry.gridDimension.y == row) {
+						cellEntry.gridDimension.x = toCol; // It is being moved over one.
+					}
+					int spanHeight = cellEntry.gridDimension.height;
+					// This will increment row for us to so we pick in the for loop with the next row after the span.
+					row--;
+					while (spanHeight-- > 0) {
+						glayoutTable[toCol][++row] = cellEntry;
+					}
+				}
+			}
+		}
+		int lastRow = oldLayoutTable[0].length - 1;
+		if (newCol != oldLayoutTable.length) {
+			// Now go through old col, and find any that are horizontal spanned but start before that col, increase their's by one because they now span new col.
+			// For those that don't, put in a filler instead. (Note: we could try to get smart and figure out if they should
+			// be empties or not, but that gets real complicated. Leave for a later exercise. :-) )
+			for (int row = 0; row <= lastRow; row++) {
+				GridComponent gc = oldLayoutTable[newCol][row];
+				if (gc != EMPTY_GRID && gc.gridDimension.x < newCol) {
+					gc.setSpanWidth(gc.gridDimension.width + 1);
+					int spanHeight = gc.gridDimension.height;
+					// This will increment col for us to so we pick in the for loop with the next col after the span.
+					row--;
+					while (spanHeight-- > 0) {
+						glayoutTable[newCol][++row] = gc;
+					}
+				} else
+					replaceEmptyCell(createFillerComponent(), newCol, row);
+			}
+		} else {
+			// Last col. Just replace with fillers
+			for (int row = 0; row < glayoutTable[0].length; row++) {
+				replaceEmptyCell(createFillerComponent(), newCol, row);
+			}
+		}
+	}
+
+	/**
+	 * @param newRow
+	 */
+	public void createNewRow(int newRow) {
+		if (newRow < 0 || (glayoutTable.length == 0 && newRow > 0) || newRow > glayoutTable[0].length)
+			return;
+
+		if (glayoutTable.length == 0) {
+			glayoutTable = new GridComponent[numColumns = 1][1];
+			glayoutTable[0][0] = EMPTY_GRID;
+			replaceEmptyCell(createFillerComponent(), 0, 0);
+			return;
+		}
+
+		GridComponent[][] newLayoutTable = new GridComponent[glayoutTable.length][glayoutTable[0].length + 1];
+		if (newRow > 0) {
+			// We need to create the new table. First for each column, copy up to but not including the new row as is since those won't change.
+			for (int col = 0; col < glayoutTable.length; col++) {
+				System.arraycopy(glayoutTable[col], 0, newLayoutTable[col], 0, newRow);
+			}
+		}
+
+		// First fill new row in with Empty so we don't get errors later accessing null slots.
+		for (int col = 0; col < glayoutTable.length; col++) {
+			newLayoutTable[col][newRow] = EMPTY_GRID;
+		}
+
+		GridComponent[][] oldLayoutTable = glayoutTable;
+		glayoutTable = newLayoutTable; // Now have a valid table up to the prev row. We make it the table so that findNext, etc. will work.
+		if (newRow == oldLayoutTable[0].length) {
+			// It is the last row, use replace empty on first col to fill it correctly.
+			replaceEmptyCell(createFillerComponent(), 0, newRow);
+		} else {
+			// Now comes the hard part, we need to fill in the new row, but we have to be careful because of vertical spans.
+			// First move all from old row to the last row down one row and updating their dimensions to their new row.
+			// This is needed so that when we create the new row after this we have valid "next valid objects".
+			// Note: The reason we are coming from the bottom up is because that way we can tell when we hit the
+			// top-left of a a component. If we went from top down we would keep incrementing the y coor (because
+			// we hit it, we increment it, and then on the next row we hit it again and would increment it again).
+			for (int row = oldLayoutTable[0].length - 1, toRow = row + 1; row >= newRow; row--, toRow--) {
+				for (int col = 0; col < oldLayoutTable.length; col++) {
+					GridComponent cellEntry = oldLayoutTable[col][row];
+					if (cellEntry == EMPTY_GRID)
+						glayoutTable[col][toRow] = EMPTY_GRID;
+					else {
+						if (cellEntry.gridDimension.y == row && cellEntry.gridDimension.x == col) {
+							cellEntry.gridDimension.y = toRow; // It is being moved down one.
+						}
+						int spanx = cellEntry.gridDimension.width;
+						// This will increment col for us to so we pick in the for loop with the next col after the span.
+						col--;
+						while (spanx-- > 0) {
+							glayoutTable[++col][toRow] = cellEntry;
+						}
+					}
+				}
+			}
+			// Now go through old row, and find any that are vertical spanned but start before that row, increase their's by one because they now span new row.
+			// For those that don't, put in a filler instead. (Note: we could try to get smart and figure out if they should
+			// be empties or not, but that gets real complicated. Leave for a later exercise. :-) )
+			for (int col = 0; col < oldLayoutTable.length; col++) {
+				GridComponent gc = oldLayoutTable[col][newRow];
+				if (gc != EMPTY_GRID && gc.gridDimension.y < newRow) {
+					gc.setSpanHeight(gc.gridDimension.height + 1);
+					int spanWidth = gc.gridDimension.width;
+					// This will increment col for us to so we pick in the for loop with the next col after the span.
+					col--;
+					while (spanWidth-- > 0) {
+						glayoutTable[++col][newRow] = gc;
+					}
+				} else
+					replaceEmptyCell(createFillerComponent(), col, newRow);
+			}
+		}
+	}
+
+	/**
+	 * @param newObject
+	 * @param requestType
+	 * @param cell
+	 */
+	public void replaceEmptyCell(XamlNode newObject, Object requestType, Point cell) {
+		if (glayoutTable[cell.x][cell.y] != EMPTY_GRID)
+			return; // Invalid request.
+		replaceEmptyCell(new GridComponent(newObject, requestType), cell.x, cell.y);
+
+	}
+
+	/**
+	 * @return
+	 */
+	public int getNumColumns() {
+		if (numColumns == -1) {
+			getLayoutTable();
+		}
+		return numColumns;
+	}
+
+	/**
+	 * @return
+	 */
+	public int getNumRows() {
+		getLayoutTable();
+		return glayoutTable.length != 0 ? glayoutTable[0].length : 0;
+	}
+
+	private void handleSpanAtEnd(GridComponent gc, CompoundCommand cb) {
+		if (gc.modSpanWidth != NOT_MODIFIED_SPAN || gc.modSpanHeight != NOT_MODIFIED_SPAN) {
+			XamlNode gridData = gc.useGriddata == null ? getLayoutData(gc.model) : gc.useGriddata;
+			XamlAttribute attribute = gridData == null ? null : gridData.getAttribute("horizontalSpan",
+					IConstants.XWT_NAMESPACE);
+			switch (gc.modSpanWidth) {
+			case SET_TO_DEFAULT_SPAN: {
+				if (gridData != null && attribute != null) {
+					int defaultHSpan = new GridData().horizontalSpan;
+					if (!String.valueOf(defaultHSpan).equals(attribute.getValue())) {
+						cb.add(ApplyAttributeSettingCommand.createCommand(gridData, "horizontalSpan",
+								IConstants.XWT_NAMESPACE, String.valueOf(defaultHSpan)));
+					}
+				}
+				break;
+			}
+			case NOT_MODIFIED_SPAN:
+				// Do nothing, not modified.
+				break;
+			default:
+				if (gridData != null && gc.modSpanWidth > 0) {
+					int defaultHSpan = new GridData().horizontalSpan;
+					if ((attribute == null && defaultHSpan != gc.modSpanWidth)
+							|| (attribute != null && (!String.valueOf(gc.modSpanWidth).equals(attribute.getValue())))) {
+						cb.add(ApplyAttributeSettingCommand.createCommand(gridData, "horizontalSpan",
+								IConstants.XWT_NAMESPACE, String.valueOf(gc.modSpanWidth)));
+					}
+				}
+				break;
+			}
+			switch (gc.modSpanHeight) {
+			case SET_TO_DEFAULT_SPAN:
+				if (gridData != null && attribute != null) {
+					int defaultVSpan = new GridData().verticalSpan;
+					if (!String.valueOf(defaultVSpan).equals(attribute.getValue())) {
+						cb.add(ApplyAttributeSettingCommand.createCommand(gridData, "verticalSpan",
+								IConstants.XWT_NAMESPACE, String.valueOf(defaultVSpan)));
+					}
+				}
+				break;
+			case NOT_MODIFIED_SPAN:
+				// Do nothing, not modified.
+				break;
+			default:
+				if (gridData != null && gc.modSpanHeight > 0) {
+					int defaultHSpan = new GridData().verticalSpan;
+					if ((attribute == null && defaultHSpan != gc.modSpanHeight)
+							|| (attribute != null && (!String.valueOf(gc.modSpanHeight).equals(attribute.getValue())))) {
+						cb.add(ApplyAttributeSettingCommand.createCommand(gridData, "verticalSpan",
+								IConstants.XWT_NAMESPACE, String.valueOf(gc.modSpanHeight)));
+					}
+				}
+				break;
+			}
+		}
+	}
+
+	/**
+	 * Span the child.
+	 * 
+	 * @param child
+	 * @param newSpan
+	 * @param spanDirection
+	 * @param griddata
+	 *            use <code>null</code> if should use griddata from the child or create one if it doesn't have one. Supply an explicit griddata here in the case of building up from an implicit and we can't fluff one up because there is one being created before this, but not yet applied.
+	 * @since 1.2.0
+	 */
+	public void spanChild(EObject child, Point newSpan, int spanDirection, XamlNode griddata) {
+		GridComponent gc = getComponent(child);
+		if (gc == null)
+			return;
+		gc.setGriddata(griddata);
+
+		if (spanDirection == PositionConstants.EAST || spanDirection == PositionConstants.WEST) {
+			int newgridDataWidth = newSpan.x;
+			if (newgridDataWidth != gc.gridDimension.width) {
+				if (newgridDataWidth > gc.gridDimension.width) {
+					// Increase the horizontalSpan
+					// but first see if we can expand into empty cells without increasing the number of columns
+					int numColsIncrement = spanHorizontalIntoEmptyColumns(gc, gc.gridDimension.y, gc.gridDimension.x
+							+ gc.gridDimension.width, gc.gridDimension.height, newgridDataWidth
+							- gc.gridDimension.width);
+					if (numColsIncrement > 0) {
+						// We now need to insert at this point this number of columns so that we can span into them.
+						int insertColAt = gc.gridDimension.x + gc.gridDimension.width; // Insert just after current end of control.
+						while (numColsIncrement-- > 0)
+							createNewCol(insertColAt);
+						spanHorizontalIntoEmptyColumns(gc, gc.gridDimension.y, gc.gridDimension.x
+								+ gc.gridDimension.width, gc.gridDimension.height, newgridDataWidth
+								- gc.gridDimension.width); // Now span into these new ones.
+					}
+				} else {
+					// Shrink by one column at a time from the right. Fill with filler and then see if column can go away.
+					if (gc.gridDimension.x == 0 && gc.gridDimension.y > 0) {
+						// However, there is a problem need to worry about. If this control is the first in the row and the previous
+						// row ends in at least the number of the new smaller span empty cells, then we need to fill in those empty
+						// with fillers. Otherwise the control will flow back onto the previous row.
+						//
+						// If we have too many empties, need to fill with filler. We'll do a little optimization here. We will actually
+						// leave one less empty than the new span width.
+						// If we simply instead fill the last empty in the row, then all of the row will be filled with fillers
+						// and this would create extra unneeded fillers.
+						//
+						// For example say we need to have no more than two empties in the prev row (i.e. span down to two for
+						// the control in the next row), and we had the following layout:
+						//
+						// C C C E E E E
+						//
+						// The most efficient is to change to:
+						//
+						// C C C F F F E
+						boolean allEmpties = true;
+						int prevRow = gc.gridDimension.y - 1;
+						for (int numCols = newgridDataWidth, colToTest = glayoutTable.length - 1; numCols > 0; numCols--, colToTest--) {
+							if (glayoutTable[colToTest][prevRow] != EMPTY_GRID) {
+								allEmpties = false;
+								break;
+							}
+						}
+						if (allEmpties) {
+							// So replace the first one in the span of empties of the size we needed so that there will no longer
+							// be enough room for the next control.
+							replaceEmptyCell(createFillerComponent(), glayoutTable.length - newgridDataWidth, prevRow);
+						}
+					}
+					int colToSpanOutOf = gc.gridDimension.x + gc.gridDimension.width - 1;
+					while (gc.gridDimension.width > newgridDataWidth) {
+						gc.setSpanWidth(gc.gridDimension.width - 1);
+						int nextRow = gc.gridDimension.y + gc.gridDimension.height;
+						Arrays.fill(glayoutTable[colToSpanOutOf], gc.gridDimension.y, nextRow, EMPTY_GRID);
+						for (int row = gc.gridDimension.y; row < nextRow; row++) {
+							replaceEmptyCell(createFillerComponent(), colToSpanOutOf, row);
+						}
+						removeColIfEmpty(colToSpanOutOf);
+						colToSpanOutOf--;
+					}
+				}
+			}
+		} else if (spanDirection == PositionConstants.SOUTH) {
+			int newgridDataHeight = newSpan.y;
+			if (newgridDataHeight != gc.gridDimension.height) {
+				if (newgridDataHeight > gc.gridDimension.height) {
+					// Increase the horizontalSpan
+					// but first see if we can expand into empty cells without increasing the number of columns
+					int numRowsIncrement = spanVerticalIntoEmptyRows(gc, gc.gridDimension.y + gc.gridDimension.height,
+							gc.gridDimension.x, gc.gridDimension.width, newgridDataHeight - gc.gridDimension.height);
+					if (numRowsIncrement > 0) {
+						// We now need to insert at this point this number of columns so that we can span into them.
+						int insertRowAt = gc.gridDimension.y + gc.gridDimension.height; // Insert just after current end of control.
+						while (numRowsIncrement-- > 0)
+							createNewRow(insertRowAt);
+						spanVerticalIntoEmptyRows(gc, gc.gridDimension.y + gc.gridDimension.height, gc.gridDimension.x,
+								gc.gridDimension.width, newgridDataHeight - gc.gridDimension.height); // Now span into these new ones.
+					}
+				} else {
+					// Shrink by one row at a time from the bottom. Fill with filler and then see if row can go away.
+					int rowToSpanOutOf = gc.gridDimension.y + gc.gridDimension.height - 1;
+					while (gc.gridDimension.height > newgridDataHeight) {
+						gc.setSpanHeight(gc.gridDimension.height - 1);
+						int nextCol = gc.gridDimension.x + gc.gridDimension.width;
+						for (int col = gc.gridDimension.x; col < nextCol; col++) {
+							glayoutTable[col][rowToSpanOutOf] = EMPTY_GRID;
+						}
+						for (int col = gc.gridDimension.x; col < nextCol; col++) {
+							replaceEmptyCell(createFillerComponent(), col, rowToSpanOutOf);
+						}
+						removeRowIfEmpty(rowToSpanOutOf);
+						rowToSpanOutOf--;
+					}
+				}
+			}
+		}
+	}
+
+	/*
+	 * For spanning horizontally, walk through the row starting atColumn and delete empty or filler labels so we can expand into the empty columns. If no empty cells, numColIncrement is returned so the number of columns can be incremented on the overall grid.
+	 */
+	private int spanHorizontalIntoEmptyColumns(GridComponent spanGC, int atRow, int atColumn, int childHeight,
+			int numColsIncrement) {
+		// Span as far as we can with empty vertical columns, move the spanGC into the new columns as we go.
+		if (atColumn < glayoutTable.length && atRow < glayoutTable[0].length) {
+			for (int col = atColumn; col < glayoutTable.length && numColsIncrement != 0; col++) {
+				int toRow = atRow + childHeight - 1;
+				if (isHorizontalSpaceAvailable(col, atRow, toRow)) {
+					for (int row = atRow; row <= toRow; row++) {
+						GridComponent gc = glayoutTable[col][row];
+						if (gc.isFillerLabel()) {
+							removeGridComponent(gc);
+							deleteComponent(gc);
+						}
+						glayoutTable[col][row] = spanGC;
+					}
+					spanGC.setSpanWidth(spanGC.gridDimension.width + 1);
+					numColsIncrement--;
+				} else
+					break; // We hit our first non-empty column. Can't span any further.
+			}
+		}
+		return numColsIncrement;
+	}
+
+	/*
+	 * For spanning vertically, walk through the col starting atRow and delete empty or filler labels so we can expand into the empty rows. If no empty cells, numRowIncrement is returned so the number of rows can be incremented on the overall grid.
+	 */
+	private int spanVerticalIntoEmptyRows(GridComponent spanGC, int atRow, int atColumn, int childWidth,
+			int numRowsIncrement) {
+		// Span as far as we can with empty horizontal rows, move the spanGC into the new rows as we go.
+		if (atColumn < glayoutTable.length && atRow < glayoutTable[0].length) {
+			for (int row = atRow; row < glayoutTable[0].length && numRowsIncrement != 0; row++) {
+				int toCol = atColumn + childWidth - 1;
+				if (isVerticalSpaceAvailable(row, atColumn, toCol)) {
+					for (int col = atColumn; col <= toCol; col++) {
+						GridComponent gc = glayoutTable[col][row];
+						if (gc.isFillerLabel()) {
+							removeGridComponent(gc);
+							deleteComponent(gc);
+						}
+						glayoutTable[col][row] = spanGC;
+					}
+					spanGC.setSpanHeight(spanGC.gridDimension.height + 1);
+					numRowsIncrement--;
+				} else
+					break; // We hit our first non-empty row. Can't span any further.
+			}
+		}
+		return numRowsIncrement;
+	}
+
+	/*
+	 * Return true if the cells atRow from columnStart to columnEnd have either an EMPTY object or is a filler label.
+	 */
+	private boolean isVerticalSpaceAvailable(int atRow, int columnStart, int columnEnd) {
+		if (glayoutTable.length == 0 || glayoutTable[0].length == 0 || columnStart >= glayoutTable.length
+				|| columnEnd >= glayoutTable.length || atRow >= glayoutTable[0].length)
+			return false;
+		for (int col = columnStart; col <= columnEnd; col++) {
+			if (glayoutTable[col][atRow] != EMPTY_GRID && !glayoutTable[col][atRow].isFillerLabel()) {
+				return false;
+			}
+		}
+		return true;
+	}
+
+	/*
+	 * Return true if the cells atCol from rowStart to rowEnd have either an EMPTY object or is a filler label.
+	 */
+	private boolean isHorizontalSpaceAvailable(int atCol, int rowStart, int rowEnd) {
+		if (glayoutTable.length == 0 || glayoutTable[0].length == 0 || rowStart >= glayoutTable[0].length
+				|| rowEnd >= glayoutTable[0].length || atCol >= glayoutTable.length)
+			return false;
+		for (int row = rowStart; row <= rowEnd; row++) {
+			if (glayoutTable[atCol][row] != EMPTY_GRID && !glayoutTable[atCol][row].isFillerLabel()) {
+				return false;
+			}
+		}
+		return true;
+	}
+
+	/**
+	 * @return
+	 */
+	public Command stopRequest() {
+
+		CompoundCommand cb = new CompoundCommand();
+
+		if (numColumns != originalNumColumns) {
+			createNumColumnsCommand(numColumns, cb);
+		}
+
+		// There is actually one optimization we can do and that is remove all trailing fillers. They don't
+		// add anything. They won't create extra columns and they could create empty rows at the end, but we don't
+		// want those anyway.
+
+		GridComponent end = last;
+		while (last != null && (last == EMPTY_GRID || last.isFillerLabel())) {
+			GridComponent next = last.prev;
+			if (last != EMPTY_GRID) {
+				removeGridComponent(end);
+				deleteComponent(end);
+				glayoutTable[end.gridDimension.x][end.gridDimension.y] = EMPTY_GRID;
+			}
+			end = next;
+		}
+
+		Object beforeComp = null;
+		Object currentModState = null;
+		List<GridComponent> currentComponentGCs = new ArrayList<GridComponent>();
+		Object prevComp = beforeComp;
+		// We build up from the end instead of from the beginning because we need to have the prevComp in place before we can put something
+		// in front of it. If we went from the beginning, something may of been moved to a later spot and it would not be in the correct
+		// order in the real list.
+		for (GridComponent gc = last; gc != null; gc = gc.prev) {
+			if (gc.requestType != NO_MODS) {
+				if (!gc.requestType.equals(currentModState)) {
+					// We are switching to a new type, send out the old group.
+					if (!currentComponentGCs.isEmpty()) {
+						getCommandForAddCreateMoveChildren(currentModState, currentComponentGCs, beforeComp, cb);
+						currentComponentGCs.clear();
+					}
+					beforeComp = prevComp; // This new guy will now go before the latest prev component.
+					currentModState = gc.requestType;
+				}
+				currentComponentGCs.add(0, gc); // Since we build up backwards, we insert from the front so that it results in forward.
+			} else {
+				// Switch to no change, so put what we have.
+				if (!currentComponentGCs.isEmpty()) {
+					getCommandForAddCreateMoveChildren(currentModState, currentComponentGCs, beforeComp, cb);
+					currentComponentGCs.clear();
+					currentModState = null;
+				}
+			}
+
+			handleSpanAtEnd(gc, cb); // Handle if the span had changed.
+			prevComp = gc.model;
+		}
+
+		// Do last group.
+		if (!currentComponentGCs.isEmpty()) {
+			getCommandForAddCreateMoveChildren(currentModState, currentComponentGCs, beforeComp, cb);
+		}
+
+		if (deletedComponents != null && !deletedComponents.isEmpty()) {
+			cb.add(factory.getDeleteDependentCommand(deletedComponents));
+		}
+		if (orphanedComponents != null && !orphanedComponents.isEmpty()) {
+			cb.add(factory.getOrphanChildrenCommand(orphanedComponents));
+		}
+
+		refresh();
+		return cb;
+	}
+
+	private void createNumColumnsCommand(int numCols, CompoundCommand cb) {
+		XamlNode parent = (XamlNode) host.getLayoutModel();
+		XamlAttribute attribute = parent.getAttribute("numColumns", IConstants.XWT_NAMESPACE);
+		int defaultNum = new GridLayout().numColumns;
+		if ((attribute == null && numCols != defaultNum)
+				|| (attribute != null && !String.valueOf(numCols).equals(attribute.getValue()))) {
+			Command cmd = ApplyAttributeSettingCommand.createCommand(parent, "numColumns", IConstants.XWT_NAMESPACE,
+					Integer.toString(numCols));
+			cb.add(cmd);
+		}
+	}
+
+	private void getCommandForAddCreateMoveChildren(Object requestType, List<GridComponent> childrenGC,
+			Object beforeObject, CompoundCommand cb) {
+		List<XamlNode> children = new ArrayList<XamlNode>(childrenGC.size());
+		List<XamlNode> constraints = new ArrayList<XamlNode>(childrenGC.size());
+		for (int i = 0; i < childrenGC.size(); i++) {
+			GridComponent gc = (GridComponent) childrenGC.get(i);
+			children.add(gc.model);
+			constraints.add(gc.useGriddata);
+		}
+		// // of it will mess up the policy commands created..
+		// // Create the appropriate set of constraints to apply with.
+		if (RequestConstants.REQ_CREATE.equals(requestType)) {
+			cb.add(factory.getCreateCommand(constraints, children, beforeObject));
+		} else if (RequestConstants.REQ_ADD.equals(requestType)) {
+			cb.add(factory.getAddCommand(constraints, children, beforeObject));
+		} else /* if (RequestConstants.REQ_MOVE_CHILDREN.equals(requestType)) */{
+			cb.add(factory.getMoveChildrenCommand(children, (XamlNode) beforeObject));
+		}
+	}
+
+	public static class GridComponent {
+
+		private XamlNode model;
+		private boolean filler;
+		Object requestType = NO_MODS;
+		int modSpanWidth = NOT_MODIFIED_SPAN;
+		int modSpanHeight = NOT_MODIFIED_SPAN;
+		Rectangle gridDimension;
+		GridComponent prev, next;
+		XamlNode useGriddata;
+
+		public GridComponent(XamlNode model) {
+			this.model = model;
+		}
+
+		public GridComponent(XamlNode model, boolean filler) {
+			this(model, RequestConstants.REQ_CREATE);
+			this.filler = filler;
+		}
+
+		public GridComponent(XamlNode model, Object requestType) {
+			this(model);
+			this.requestType = requestType;
+			setupUseGriddata(model, requestType);
+		}
+
+		/**
+		 * @return the filter
+		 */
+		public boolean isFillerLabel() {
+			return filler;
+		}
+
+		public void setSpanWidth(int spanWidth) {
+			gridDimension.width = modSpanWidth = spanWidth;
+			if (spanWidth == 1)
+				modSpanWidth = SET_TO_DEFAULT_SPAN;
+		}
+
+		public void setSpanHeight(int spanHeight) {
+			gridDimension.height = modSpanHeight = spanHeight;
+			if (spanHeight == 1)
+				modSpanHeight = SET_TO_DEFAULT_SPAN;
+		}
+
+		/**
+		 * Set into this component the moved component passed in. This is used for moved components. It is assumed that this GridComponent is the new GridComponent for the moved component sent in on the request. This "this" cannot be an existing component.
+		 * 
+		 * @param gc
+		 * @since 1.2.0
+		 */
+		void setMovedComponent(GridComponent gc) {
+			// If the moved component was not just added/created, (i.e. it was here before we started), then set to move state
+			// so that it will be picked up as needing to be moved in the stopRequest. Else leave as add/create/move so that
+			// it will be processed correctly for that appropriate state. We should not change an add/create to a move. It won't
+			// work correctly in the container policy.
+			requestType = NO_MODS.equals(gc.requestType) ? RequestConstants.REQ_MOVE : gc.requestType;
+			modSpanWidth = modSpanHeight = SET_TO_DEFAULT_SPAN; // Also cancel the span for the moved child.
+			filler = gc.filler;
+			useGriddata = gc.useGriddata;
+		}
+
+		public void setComponent(XamlNode model, Object requestType) {
+			this.model = model;
+			this.requestType = requestType;
+			modSpanWidth = modSpanHeight = NOT_MODIFIED_SPAN;
+			filler = false;
+			setupUseGriddata(model, requestType);
+		}
+
+		private void setupUseGriddata(XamlNode model, Object requestType) {
+			useGriddata = null;
+			if (RequestConstants.REQ_CREATE.equals(requestType) || RequestConstants.REQ_ADD.equals(requestType)) {
+				XamlAttribute attr = model.getAttribute("layoutData", IConstants.XWT_NAMESPACE);
+				if (attr != null && !attr.getChildNodes().isEmpty()) {
+					useGriddata = attr.getChildNodes().get(0);
+					modSpanHeight = modSpanWidth = SET_TO_DEFAULT_SPAN; // Need to cancel out any current settings
+				}
+			}
+		}
+
+		public void setGriddata(XamlNode griddata) {
+			if (useGriddata == null)
+				useGriddata = griddata;
+		}
+
+		public XamlNode getModel() {
+			return model;
+		}
+
+		public int getSpanWidth() {
+			return gridDimension.width;
+		}
+
+		public int getSpanHeight() {
+			return gridDimension.height;
+		}
+	}
+
+	/**
+	 * @return
+	 */
+	public boolean isRightToLeft() {
+		return getEditPart().isRightToLeft();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutRequest.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutRequest.java
new file mode 100755
index 0000000..4873a63
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutRequest.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout.grid;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class GridLayoutRequest {
+	/*
+	 * Class used to identify the type of request relative to GridLayout.
+	 */
+
+	public static final int NO_ADD = -1;
+
+	public static final int INSERT_COLUMN = 0;
+
+	public static final int INSERT_COLUMN_WITHIN_ROW = 1;
+
+	public static final int INSERT_ROW = 2;
+
+	public static final int ADD_COLUMN = 3;
+
+	public static final int ADD_ROW = 4;
+
+	public static final int ADD_ROW_COL = 5;
+
+	public static final int REPLACE_FILLER = 6;
+
+	public static final int ADD_TO_EMPTY_CELL = 7;
+
+	public int type;
+
+	public int column;
+
+	public int row;
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutRowFigure.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutRowFigure.java
new file mode 100755
index 0000000..5c7da99
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutRowFigure.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout.grid;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.Figure;
+import org.eclipse.draw2d.Graphics;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.swt.SWTException;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class GridLayoutRowFigure extends Figure {
+	private Rectangle rowBounds;
+
+	public GridLayoutRowFigure(Rectangle rowBounds) {
+		super();
+		this.rowBounds = rowBounds;
+		setBounds(rowBounds.getCopy().expand(8, 6));
+	}
+
+	public void paintFigure(Graphics g) {
+		try {
+			g.setAlpha(150);
+		} catch (SWTException e) {
+			// For OS platforms that don't support alpha
+		}
+		int[] polygonPoints = new int[] { bounds.x + 1, bounds.y + 1, // left upper corner
+				bounds.x + 1, bounds.y + bounds.height - 1, rowBounds.x, rowBounds.y + rowBounds.height, rowBounds.x + rowBounds.width, rowBounds.y + rowBounds.height, bounds.x + bounds.width - 1, bounds.y + bounds.height - 1, bounds.x + bounds.width - 1, bounds.y + 1, rowBounds.x + rowBounds.width, rowBounds.y, rowBounds.x, rowBounds.y, bounds.x + 1, bounds.y + 1 };
+		g.setBackgroundColor(ColorConstants.yellow);
+		g.fillPolygon(polygonPoints);
+		g.setBackgroundColor(ColorConstants.black);
+		g.drawPolygon(polygonPoints);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutSpanFeedbackFigure.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutSpanFeedbackFigure.java
new file mode 100755
index 0000000..c2b366a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridLayoutSpanFeedbackFigure.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout.grid;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.Figure;
+import org.eclipse.draw2d.Graphics;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.geometry.Rectangle;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class GridLayoutSpanFeedbackFigure extends Figure {
+	private final int spanDirection;
+
+	private GridLayoutFeedbackFigure layoutFeedbackFigure;
+
+	public GridLayoutSpanFeedbackFigure(int spanDirection) {
+		super();
+		this.spanDirection = spanDirection;
+		add(layoutFeedbackFigure = new GridLayoutFeedbackFigure());
+	}
+
+	public void setLayoutFigureBounds(Rectangle bounds) {
+		layoutFeedbackFigure.setBounds(bounds);
+		// Now increase this slight for our bounds and the line we want to draw.
+		// The"8" makes the end line 8 pixels out on each side. The "1" is necessary because we want to be over
+		// the next cell border and our bounds are just inside the cell border.
+		bounds = spanDirection == PositionConstants.EAST || spanDirection == PositionConstants.WEST ? bounds.getExpanded(1, 8) : bounds.getExpanded(8, 1);
+		setBounds(bounds);
+	}
+
+	protected void paintClientArea(Graphics graphics) {
+		super.paintClientArea(graphics);
+
+		// Paint span line.
+		graphics.setForegroundColor(ColorConstants.darkGray);
+		Rectangle bounds = getBounds();
+		switch (spanDirection) {
+		case PositionConstants.EAST:
+			int x = bounds.x + bounds.width - 1;
+			graphics.drawLine(x, bounds.y, x, bounds.y + bounds.height - 1);
+			break;
+		case PositionConstants.WEST:
+			x = bounds.x;
+			graphics.drawLine(x, bounds.y, x, bounds.y + bounds.height - 1);
+			break;
+		case PositionConstants.SOUTH:
+			int y = bounds.y + bounds.height - 1;
+			graphics.drawLine(bounds.x, y, bounds.x + bounds.width - 1, y);
+			break;
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
new file mode 100755
index 0000000..788c171
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandle.java
@@ -0,0 +1,73 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout.grid;
+
+/*
+ *  $RCSfile: GridSpanHandle.java,v $
+ *  $Revision: 1.2 $  $Date: 2010/06/18 00:15:48 $ 
+ */
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.Graphics;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.handles.ResizeHandle;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.GridLayoutEditPolicy;
+
+public class GridSpanHandle extends ResizeHandle {
+	public static int HANDLE_SIZE = DEFAULT_HANDLE_SIZE;
+
+	public GridSpanHandle(GraphicalEditPart owner, int direction, GridLayoutEditPolicy layoutEditPolicy) {
+		super(owner, direction);
+		setLocator(new GridSpanHandleLocator(owner, direction, layoutEditPolicy));
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.handles.SquareHandle#getBorderColor()
+	 */
+	protected Color getBorderColor() {
+		return ColorConstants.darkGray;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.handles.SquareHandle#getFillColor()
+	 */
+	protected Color getFillColor() {
+		return ColorConstants.lightGreen;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.draw2d.Figure#paintFigure(org.eclipse.draw2d.Graphics)
+	 */
+	public void paintFigure(Graphics g) {
+		Rectangle r = getBounds();
+		r.shrink(1, 1);
+		try {
+			g.setBackgroundColor(getFillColor());
+			g.fillRectangle(r.x, r.y, r.width, r.height);
+			g.setForegroundColor(getBorderColor());
+			g.drawRectangle(r.x, r.y, r.width, r.height);
+		} finally {
+			// We don't really own rect 'r', so fix it.
+			r.expand(1, 1);
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandleLocator.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandleLocator.java
new file mode 100755
index 0000000..ea1573f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/GridSpanHandleLocator.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout.grid;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.handles.RelativeHandleLocator;
+import org.eclipse.xwt.tools.ui.designer.policies.layout.GridLayoutEditPolicy;
+
+public class GridSpanHandleLocator extends RelativeHandleLocator {
+	GridLayoutEditPolicy layoutEditPolicy;
+	GraphicalEditPart editpart;
+	Rectangle fullCellBounds = new Rectangle();
+
+	public GridSpanHandleLocator(GraphicalEditPart editpart, int location, GridLayoutEditPolicy layoutEditPolicy) {
+		super(editpart.getFigure(), location);
+		this.layoutEditPolicy = layoutEditPolicy;
+		this.editpart = editpart;
+	}
+
+	/*
+	 * Need to override in order to provide a bounding box that includes spanning horizontally and vertically.
+	 * 
+	 * @see org.eclipse.draw2d.RelativeLocator#getReferenceBox()
+	 */
+	protected Rectangle getReferenceBox() {
+		return fullCellBounds;
+	}
+
+	/*
+	 * Need to reset it's bounds since we've relocated.
+	 * 
+	 * @see org.eclipse.draw2d.Locator#relocate(org.eclipse.draw2d.IFigure)
+	 */
+	public void relocate(final IFigure target) {
+		// Need to spawn this off in an async runnable to give the gridlayout edit policy
+		// time to update it's grid and cell positions. Then when we get the cell bounds
+		// for the handle, it will be correct.
+		editpart.getViewer().getControl().getDisplay().asyncExec(new Runnable() {
+			public void run() {
+				doRelocate(target);
+			}
+		});
+	}
+
+	private void doRelocate(IFigure target) {
+		fullCellBounds = layoutEditPolicy.getFullCellBounds(editpart).expand(-1, -1);
+		super.relocate(target);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/IGridListener.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/IGridListener.java
new file mode 100755
index 0000000..2e4531b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/policies/layout/grid/IGridListener.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.policies.layout.grid;
+
+import java.util.EventListener;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public interface IGridListener extends EventListener {
+	/**
+	 * Grid Height has changed.
+	 */
+	public void gridHeightChanged(int gridHeight, int oldGridHeight);
+
+	/**
+	 * Grid Width has changed.
+	 */
+	public void gridWidthChanged(int gridWidth, int oldGridWidth);
+
+	/**
+	 * Grid Margin has changed.
+	 */
+	public void gridMarginChanged(int gridMargin, int oldGridMargin);
+
+	/**
+	 * Grid Visibility has changed.
+	 */
+	public void gridVisibilityChanged(boolean isShowing);
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/preference/PreferenceInitializer.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/preference/PreferenceInitializer.java
new file mode 100755
index 0000000..41d2513
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/preference/PreferenceInitializer.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.preference;
+
+import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.xwt.tools.ui.designer.core.DesignerPlugin;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
+
+public class PreferenceInitializer extends AbstractPreferenceInitializer {
+	public void initializeDefaultPreferences() {
+		IPreferenceStore store = DesignerPlugin.getDefault().getPreferenceStore();
+		store.setDefault(Preferences.PROMPT_DURING_CREATION, true);
+		store.setDefault(Preferences.DEFAULT_LAYOUT, LayoutType.GridLayout.value());
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/preference/Preferences.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/preference/Preferences.java
new file mode 100755
index 0000000..e1dbd4f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/preference/Preferences.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.preference;
+
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.xwt.tools.ui.designer.core.DesignerPlugin;
+
+public class Preferences {
+	public static final String PROMPT_DURING_CREATION = "Prompt for widget name during creation.";
+	public static final String DEFAULT_LAYOUT = "Default Layout";
+
+	public static IPreferenceStore getPreferenceStore() {
+		IPreferenceStore preferenceStore = DesignerPlugin.getDefault().getPreferenceStore();
+		return preferenceStore;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/preference/XWTPreferencePage.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/preference/XWTPreferencePage.java
new file mode 100755
index 0000000..2b0eab2
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/preference/XWTPreferencePage.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.preference;
+
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.jface.preference.ComboFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
+
+public class XWTPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
+
+	public XWTPreferencePage() {
+		super(GRID);
+		this.setPreferenceStore(Preferences.getPreferenceStore());
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
+	 */
+	protected void createFieldEditors() {
+		Composite parent = getFieldEditorParent();
+		addField(new BooleanFieldEditor(Preferences.PROMPT_DURING_CREATION, Preferences.PROMPT_DURING_CREATION, parent));
+
+		String[][] layouts = new String[][] { { LayoutType.NullLayout.value(), LayoutType.NullLayout.value() }, { LayoutType.FillLayout.value(), LayoutType.FillLayout.value() }, { LayoutType.GridLayout.value(), LayoutType.GridLayout.value() }, { LayoutType.RowLayout.value(), LayoutType.RowLayout.value() } };
+		addField(new ComboFieldEditor(Preferences.DEFAULT_LAYOUT, Preferences.DEFAULT_LAYOUT, layouts, parent));
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+	 */
+	public void init(IWorkbench workbench) {
+
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/PropertyContext.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/PropertyContext.java
new file mode 100755
index 0000000..64f302c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/PropertyContext.java
@@ -0,0 +1,197 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Layout;
+import org.eclipse.xwt.tools.ui.designer.commands.AddItemsCommand;
+import org.eclipse.xwt.tools.ui.designer.commands.AddNewChildCommand;
+import org.eclipse.xwt.tools.ui.designer.commands.ApplyAttributeSettingCommand;
+import org.eclipse.xwt.tools.ui.designer.commands.ChangeLayoutCommand;
+import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
+import org.eclipse.xwt.tools.ui.designer.core.properties.LabelProviderFactory;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
+import org.eclipse.xwt.tools.ui.designer.parts.ViewerEditPart;
+import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class PropertyContext {
+	// private Object source;
+	private EditPart editPart;
+	private XamlNode node;
+	private EditDomain editDomain;
+	private String category = "Attributes";
+	private PropertyContext parent;
+
+	public PropertyContext(EditPart editPart, PropertyContext parent) {
+		this((XamlNode) null, parent);
+		Assert.isNotNull(editPart);
+		this.editPart = editPart;
+	}
+
+	public PropertyContext(XamlNode node, PropertyContext parent) {
+		this.node = node;
+		this.parent = parent;
+	}
+
+	public Object getComponent() {
+		if (editPart == null) {
+			return null;
+		}
+		if (editPart instanceof WidgetEditPart) {
+			return ((WidgetEditPart) editPart).getWidget();
+		} else if (editPart instanceof ViewerEditPart) {
+			return ((ViewerEditPart) editPart).getViewer();
+		}
+		return null;
+	}
+
+	public Class<?> getType() {
+		IMetaclass metaclass = getMetaclass();
+		if (metaclass != null) {
+			return metaclass.getType();
+		}
+		throw new NullPointerException("Unknown object type");
+	}
+
+	public IMetaclass getMetaclass() {
+		IMetaclass metaclass = null;
+		if (node != null) {
+			metaclass = XWTUtility.getMetaclass(node);
+		}
+		if (metaclass == null) {
+			Object component = getComponent();
+			if (component != null) {
+				metaclass = XWT.getMetaclass(component);
+			}
+		}
+		return metaclass;
+	}
+
+	public XamlNode getNode() {
+		if (node == null && editPart != null) {
+			Object model = editPart.getModel();
+			if (model instanceof XamlNode) {
+				node = (XamlNode) model;
+			}
+		}
+		return node;
+	}
+
+	/**
+	 * @param editDomain
+	 *            the editDomain to set
+	 */
+	public void setEditDomain(EditDomain editDomain) {
+		this.editDomain = editDomain;
+	}
+
+	/**
+	 * @return the editDomain
+	 */
+	public EditDomain getEditDomain() {
+		if (editDomain == null && parent != null) {
+			editDomain = parent.getEditDomain();
+		}
+		return editDomain;
+	}
+
+	/**
+	 * @param category
+	 *            the category to set
+	 */
+	public void setCategory(String category) {
+		this.category = category;
+	}
+
+	/**
+	 * @return the category
+	 */
+	public String getCategory() {
+		return category;
+	}
+
+	/**
+	 * @return the parent
+	 */
+	public PropertyContext getParent() {
+		return parent;
+	}
+
+	public boolean isDirectEditType(Class<?> type) {
+		return type.isPrimitive() || String.class == type || Color.class == type || Font.class == type || Rectangle.class == type || Point.class == type || Image.class == type || Boolean.class == type || Character.class == type || Integer.class == type || Long.class == type || Double.class == type || Float.class == type || Byte.class == type;
+	}
+
+	public void setPropertyValue(Object id, Object value) {
+		execute(createSetValueCommand(id, value));
+	}
+
+	private Command createSetValueCommand(Object id, Object value) {
+		CompoundCommand cmd = new CompoundCommand();
+		IProperty property = (IProperty) id;
+		Class<?> type = property.getType();
+		if (isDirectEditType(type)) {
+			ILabelProvider lp = LabelProviderFactory.getLabelProvider(type);
+			cmd.add(new ApplyAttributeSettingCommand(node, property.getName(), IConstants.XWT_NAMESPACE, lp.getText(value)));
+			// make sure node is added.
+			XamlNode parentNode = parent == null ? null : parent.getNode();
+			XamlNode current = node;
+			XamlNode container = (XamlNode) current.eContainer();
+			if (parentNode != null) {
+				while (container != null && container != parentNode) {
+					current = container;
+					container = (XamlNode) current.eContainer();
+				}
+				if (container == null) {
+					container = parentNode;
+					cmd.add(new AddNewChildCommand(container, current));
+				}
+			}
+		} else if (Layout.class == type && editPart != null) {
+			cmd.add(new ChangeLayoutCommand(editPart, LayoutsHelper.getLayoutType(value)));
+		} else if (type.isArray() && type.getComponentType() == String.class && value.getClass() == String[].class) {
+			cmd.add(new AddItemsCommand((XamlElement) node, (String[]) value));
+		}
+		return cmd.unwrap();
+	}
+
+	private void execute(Command command) {
+		if (command == null || !command.canExecute()) {
+			return;
+		}
+		EditDomain editDomain = getEditDomain();
+		if (editDomain == null || editDomain.getCommandStack() == null) {
+			command.execute();
+		} else {
+			editDomain.getCommandStack().execute(command);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/StylePropertyHelper.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/StylePropertyHelper.java
new file mode 100755
index 0000000..cc37f2e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/StylePropertyHelper.java
@@ -0,0 +1,144 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.xwt.converters.StringToInteger;
+import org.eclipse.xwt.jface.ComboBoxCellEditor;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.views.properties.IPropertyDescriptor;
+import org.eclipse.ui.views.properties.PropertyDescriptor;
+import org.eclipse.xwt.tools.ui.designer.commands.SetStyleCommand;
+import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
+import org.eclipse.xwt.tools.ui.designer.core.properties.editors.BooleanCellEditor;
+import org.eclipse.xwt.tools.ui.designer.core.style.SWTStyles;
+import org.eclipse.xwt.tools.ui.designer.core.style.StyleGroup;
+import org.eclipse.xwt.tools.ui.designer.utils.StyleHelper;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class StylePropertyHelper {
+
+	private static final String CATEGORY = "Style";
+	private static final String PREFIX_STAR = "*";
+	// private Widget widget;
+	private XamlNode model;
+	private EditDomain editDomain;
+
+	public StylePropertyHelper(XamlNode model) {
+		this.model = model;
+	}
+
+	public List<IPropertyDescriptor> createPropertyDescriptors() {
+		if (model == null) {
+			return Collections.emptyList();
+		}
+		IMetaclass metaclass = XWTUtility.getMetaclass(model);
+		if (metaclass == null) {
+			return Collections.emptyList();
+		}
+		Class<?> type = metaclass.getType();
+		List<IPropertyDescriptor> descriptors = new ArrayList<IPropertyDescriptor>();
+		StyleGroup[] styleGrps = SWTStyles.getStyles(type);
+		for (StyleGroup styleGroup : styleGrps) {
+			if (!styleGroup.match(type)){
+				continue;
+			}
+			String groupName = styleGroup.getGroupName();
+			String[] styles = styleGroup.getStyles();
+			if ("default".equals(groupName)) {
+				for (String style : styles) {
+					descriptors.add(createDescriptor(style));
+				}
+			} else {
+				descriptors.add(createDescriptor(styleGroup));
+			}
+		}
+		return descriptors;
+	}
+
+	private IPropertyDescriptor createDescriptor(final StyleGroup styleGroup) {
+		PropertyDescriptor descriptor = new PropertyDescriptor(styleGroup, styleGroup.getGroupName()) {
+			public CellEditor createPropertyEditor(Composite parent) {
+				return new ComboBoxCellEditor(parent, styleGroup.getStyles());
+			}
+		};
+		descriptor.setCategory(CATEGORY);
+		return descriptor;
+	}
+
+	private IPropertyDescriptor createDescriptor(String style) {
+		PropertyDescriptor descriptor = new PropertyDescriptor(PREFIX_STAR + style, style.toLowerCase()) {
+			public CellEditor createPropertyEditor(Composite parent) {
+				return new BooleanCellEditor(parent);
+			}
+		};
+		descriptor.setCategory(CATEGORY);
+		return descriptor;
+	}
+
+	public Object getPropertyValue(Object id) {
+		if (id == null) {
+			return null;
+		} else if (id.toString().startsWith(PREFIX_STAR)) {
+			String style = id.toString().substring(1);
+			int intStyle = (Integer) StringToInteger.instance.convert(style);
+			if (StyleHelper.checkStyle(model, intStyle)) {
+				return "true";
+			}
+			return "false";
+		} else if (id instanceof StyleGroup) {
+			StyleGroup styles = (StyleGroup) id;
+			for (String style : styles.getStyles()) {
+				int intStyle = (Integer) StringToInteger.instance.convert(style);
+				if (StyleHelper.checkStyle(model, intStyle)) {
+					return style;
+				}
+			}
+		}
+		return null;
+	}
+
+	public void setPropertyValue(Object id, Object value) {
+		if (id == null || model == null) {
+			return;
+		}
+		SetStyleCommand command = null;
+		if (id.toString().startsWith(PREFIX_STAR)) {
+			String newStyle = id.toString().substring(PREFIX_STAR.length());
+			command = new SetStyleCommand(model, newStyle, Boolean.FALSE.equals(value));
+		} else if (id instanceof StyleGroup) {
+			command = new SetStyleCommand(model, value.toString(), (StyleGroup) id);
+		}
+		if (command != null && command.canExecute()) {
+			if (editDomain != null) {
+				editDomain.getCommandStack().execute(command);
+			} else {
+				command.execute();
+			}
+		}
+	}
+
+	public void setEditDomain(EditDomain editDomain) {
+		this.editDomain = editDomain;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/TypedProperties.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/TypedProperties.java
new file mode 100755
index 0000000..30e80fd
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/TypedProperties.java
@@ -0,0 +1,84 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.List;
+import java.util.ResourceBundle;
+import java.util.StringTokenizer;
+
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.SWT;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class TypedProperties {
+
+	private static List<String> types;
+	private static ResourceBundle TYPED_PROPERTIES = ResourceBundle.getBundle("org.eclipse.xwt.tools.ui.designer.properties.types");
+
+	public static synchronized List<String> getTypes() {
+		if (types == null) {
+			types = new ArrayList<String>();
+			Enumeration<String> enumeration = TYPED_PROPERTIES.getKeys();
+			while (enumeration.hasMoreElements()) {
+				types.add((String) enumeration.nextElement());
+			}
+
+			Collections.sort(types);
+		}
+		return types;
+	}
+
+	public static String[] getProperties(String type) {
+		List<String> result = new ArrayList<String>();
+		String value = TYPED_PROPERTIES.getString(type);
+		StringTokenizer stk = new StringTokenizer(value, ",");
+		while (stk.hasMoreElements()) {
+			result.add(stk.nextToken().trim());
+		}
+		return result.toArray(new String[0]);
+	}
+
+	public static int getValue(String property) {
+		try {
+			Field field = SWT.class.getDeclaredField(property);
+			return field.getInt(null);
+		} catch (Exception e) {
+		}
+		return -1;
+	}
+
+	public static ILabelProvider getLabelProvider(final String type) {
+		return new LabelProvider() {
+			public String getText(Object element) {
+				if (element instanceof Integer) {
+					int intValue = (Integer) element;
+					String[] properties = getProperties(type);
+					for (String prop : properties) {
+						if (intValue == getValue(prop)) {
+							return prop;
+						}
+					}
+				}
+				return super.getText(element);
+			}
+		};
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/XWTPropertyDescriptor.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/XWTPropertyDescriptor.java
new file mode 100755
index 0000000..caa9367
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/XWTPropertyDescriptor.java
@@ -0,0 +1,112 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties;
+
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jface.viewers.IContentProvider;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Layout;
+import org.eclipse.ui.views.properties.PropertyDescriptor;
+import org.eclipse.xwt.tools.ui.designer.core.properties.LabelProviderFactory;
+import org.eclipse.xwt.tools.ui.designer.core.properties.editors.ArrayCellEditor;
+import org.eclipse.xwt.tools.ui.designer.core.properties.editors.BooleanCellEditor;
+import org.eclipse.xwt.tools.ui.designer.core.properties.editors.CharacterCellEditor;
+import org.eclipse.xwt.tools.ui.designer.core.properties.editors.ColorCellEditor;
+import org.eclipse.xwt.tools.ui.designer.core.properties.editors.FontCellEditor;
+import org.eclipse.xwt.tools.ui.designer.core.properties.editors.ImageCellEditor;
+import org.eclipse.xwt.tools.ui.designer.core.properties.editors.IntegerCellEditor;
+import org.eclipse.xwt.tools.ui.designer.core.properties.editors.PointCellEditor;
+import org.eclipse.xwt.tools.ui.designer.core.properties.editors.RectangleCellEditor;
+import org.eclipse.xwt.tools.ui.designer.properties.editors.LayoutCellEditor;
+import org.eclipse.xwt.tools.ui.designer.properties.editors.ObjectCellEditor;
+import org.eclipse.xwt.tools.ui.designer.properties.editors.TextCellEditor;
+import org.eclipse.xwt.tools.ui.designer.properties.editors.TypedPropertiesCellEditor;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class XWTPropertyDescriptor extends PropertyDescriptor {
+
+	private PropertyContext fContext;
+
+	public XWTPropertyDescriptor(PropertyContext fContext, IProperty id) {
+		super(id, id.getName());
+		this.fContext = fContext;
+		initLabelProvider(id);
+	}
+
+	private void initLabelProvider(IProperty property) {
+		Class<?> type = property.getType();
+		String name = property.getName();
+		ILabelProvider labelProvider = null;
+		if (Integer.class == type || int.class == type) {
+			if (TypedProperties.getTypes().contains(name)) {
+				labelProvider = TypedProperties.getLabelProvider(name);
+			}
+		} else {
+			labelProvider = LabelProviderFactory.getLabelProvider(property.getType());
+		}
+		setLabelProvider(labelProvider);
+	}
+
+	public CellEditor createPropertyEditor(Composite parent) {
+		CellEditor editor = createCellEditor((IProperty) getId(), parent);
+		if (editor != null && getValidator() != null) {
+			editor.setValidator(getValidator());
+		}
+		return editor;
+	}
+
+	public CellEditor createCellEditor(IProperty property, Composite parent) {
+		Class<?> type = property.getType();
+		String name = property.getName();
+		CellEditor editor = null;
+		if (Color.class == type) {
+			editor = new ColorCellEditor(parent);
+		} else if (Font.class == type) {
+			editor = new FontCellEditor(parent);
+		} else if (Boolean.class == type || boolean.class == type) {
+			editor = new BooleanCellEditor(parent);
+		} else if (Image.class == type) {
+			editor = new ImageCellEditor(parent);
+		} else if (Point.class == type) {
+			editor = new PointCellEditor(parent);
+		} else if (Rectangle.class == type) {
+			editor = new RectangleCellEditor(parent);
+		} else if (Layout.class == type) {
+			editor = new LayoutCellEditor(parent);
+		} else if (Integer.class == type || int.class == type) {
+			if (TypedProperties.getTypes().contains(name)) {
+				editor = new TypedPropertiesCellEditor(parent, name);
+			} else {
+				editor = new IntegerCellEditor(parent);
+			}
+		} else if (IContentProvider.class.isAssignableFrom(type) || ILabelProvider.class.isAssignableFrom(type)) {
+			editor = new ObjectCellEditor(parent, type);
+		} else if (String.class == type) {
+			return new TextCellEditor(fContext, property, parent);
+		} else if (Character.class == type || char.class == type) {
+			return new CharacterCellEditor(parent);
+		} else if (String[].class == type) {
+			return new ArrayCellEditor(parent);
+		}
+		return editor;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/XWTPropertySource.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/XWTPropertySource.java
new file mode 100755
index 0000000..26032e7
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/XWTPropertySource.java
@@ -0,0 +1,242 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.javabean.metadata.properties.EventProperty;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.gef.ui.parts.TreeViewer;
+import org.eclipse.jdt.core.dom.Modifier;
+import org.eclipse.jface.viewers.ComboViewer;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.ui.views.properties.IPropertyDescriptor;
+import org.eclipse.ui.views.properties.IPropertySource;
+import org.eclipse.xwt.tools.ui.designer.XWTDesignerPlugin;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTModelUtil;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class XWTPropertySource implements IPropertySource {
+
+	private PropertyContext fContext;
+	private IPropertyDescriptor[] descriptors;
+	private StylePropertyHelper styleHelper;
+
+	public XWTPropertySource(PropertyContext propertyContext) {
+		Assert.isNotNull(propertyContext);
+		fContext = propertyContext;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
+	 */
+	public Object getEditableValue() {
+		return fContext.getComponent();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
+	 */
+	public IPropertyDescriptor[] getPropertyDescriptors() {
+		if (descriptors == null) {
+			descriptors = createPropertyDescriptors();
+		}
+		return descriptors;
+	}
+
+	private IPropertyDescriptor[] createPropertyDescriptors() {
+		List<IPropertyDescriptor> result = new ArrayList<IPropertyDescriptor>();
+		IMetaclass metaclass = fContext.getMetaclass();
+		if (metaclass == null) {
+			return new IPropertyDescriptor[0];// Fixed bug of switch.
+		}
+		IProperty[] properties = metaclass.getProperties();
+		List<String> done = new ArrayList<String>();
+		for (int i = properties.length - 1; i >= 0; i--) {
+			IProperty property = properties[i];
+			if (canEditable(metaclass, property)) {
+				done.add(property.getName());
+				IPropertyDescriptor descriptor = createDescriptor(property);
+				result.add(descriptor);
+			}
+		}
+		if (!done.contains("style")) {
+			Object editableValue = getEditableValue();
+			if (editableValue instanceof Widget) {
+				styleHelper = new StylePropertyHelper(fContext.getNode());
+				styleHelper.setEditDomain(fContext.getEditDomain());
+			}
+			if (styleHelper != null) {
+				result.addAll(styleHelper.createPropertyDescriptors());
+			}
+		}
+		return result.toArray(new IPropertyDescriptor[0]);
+	}
+
+	protected IPropertyDescriptor createDescriptor(IProperty property) {
+		XWTPropertyDescriptor descriptor = new XWTPropertyDescriptor(fContext, property);
+		descriptor.setCategory(fContext.getCategory());
+		return descriptor;
+	}
+
+	protected boolean canEditable(IMetaclass metaclass, IProperty property) {
+		// fail fast
+		if (property instanceof EventProperty) {
+			return false;
+		}
+		Class<?> classType = metaclass.getType();
+		Class<?> propertyType = property.getType();
+		String name = property.getName();
+		if (TableViewer.class.isAssignableFrom(classType) && "table".equals(name) && Table.class.isAssignableFrom(propertyType) || TreeViewer.class.isAssignableFrom(classType) && "tree".equals(name) && Tree.class.isAssignableFrom(propertyType) || ListViewer.class.isAssignableFrom(classType) && "list".equals(name) && org.eclipse.swt.widgets.List.class.isAssignableFrom(propertyType) || ComboViewer.class.isAssignableFrom(classType) && "combo".equals(name) && Combo.class.isAssignableFrom(propertyType)) {
+			return true;
+		}
+		try {
+			String setMethodName = "set" + Character.toUpperCase(name.charAt(0)) + name.substring(1);
+			Method setMethod = classType.getMethod(setMethodName, propertyType);
+			if (setMethod != null && (setMethod.getModifiers() & Modifier.PUBLIC) != 0) {
+				return true;
+			}
+		} catch (Exception e) {
+			XWTDesignerPlugin.logInfo(e);
+		}
+		try {
+			Field field = classType.getField(name);
+			if (field != null && /*field.getType().equals(propertyType) && */(field.getModifiers() & Modifier.PUBLIC) != 0) {
+				return true;
+			}
+		} catch (Exception e) {
+			XWTDesignerPlugin.logInfo(e);
+		}
+		return false;
+	}
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
+	 */
+	public Object getPropertyValue(Object id) {
+		Object value = null;
+		if (id instanceof IProperty) {
+			IProperty p = (IProperty) id;
+			try {
+				Class<?> type = p.getType();
+				XamlAttribute attribute = XWTModelUtil.getAdaptableAttribute(fContext.getNode(), p.getName(), IConstants.XWT_NAMESPACE);
+				Object component = fContext.getComponent();
+				if (fContext.isDirectEditType(type)) {
+					if (attribute != null && attribute.getValue() != null) {
+						value = attribute.getValue();
+					} else {
+						value = p.getValue(component);
+					}
+				} else if (type.isArray()) {
+					value = p.getValue(component);
+				} else {
+					boolean isAtrrNew = false;
+					if (attribute == null) {
+						attribute = XamlFactory.eINSTANCE.createAttribute(p.getName(), IConstants.XWT_NAMESPACE);
+						isAtrrNew = true;
+					}
+					Object childSource = p.getValue(component);
+					if (childSource != null) {
+						Class<? extends Object> childSourceType = childSource.getClass();
+						XamlNode child = null;
+						if (Widget.class.isAssignableFrom(childSourceType)) {
+							child = attribute;
+						} else if (!childSourceType.isArray()) {
+							String childName = childSource.getClass().getSimpleName();
+							child = attribute.getChild(childName, IConstants.XWT_NAMESPACE);
+							if (child == null) {
+								child = XamlFactory.eINSTANCE.createElement(childName, IConstants.XWT_NAMESPACE);
+								if (isAtrrNew) {
+									attribute.getChildNodes().add((XamlElement) child);
+								}
+							}
+						}
+						if (child != null && childSource != null) {
+							value = new PropertyContext(child, fContext);
+						}
+					}
+				}
+				if (value == null) {
+					if (Boolean.class == type || boolean.class == type) {
+						value = false;
+					} else if (String.class == type) {
+						value = "";
+					} else if (Integer.class == type || int.class == type) {
+						value = 0;
+					}
+				}
+			} catch (Exception e) {
+				XWTDesignerPlugin.logError(e);
+			}
+		} else if (styleHelper != null) {
+			value = styleHelper.getPropertyValue(id);
+		}
+		return value;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
+	 */
+	public boolean isPropertySet(Object id) {
+		if (id instanceof IProperty) {
+			return fContext.getNode().getAttribute(((IProperty) id).getName()) != null;
+		}
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(java.lang.Object)
+	 */
+	public void resetPropertyValue(Object id) {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
+	 */
+	public void setPropertyValue(Object id, Object value) {
+		if (id instanceof IProperty) {
+			fContext.setPropertyValue(id, value);
+		} else if (styleHelper != null) {
+			styleHelper.setPropertyValue(id, value);
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/XWTPropertySourceProvider.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/XWTPropertySourceProvider.java
new file mode 100755
index 0000000..394ee21
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/XWTPropertySourceProvider.java
@@ -0,0 +1,134 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
+import org.eclipse.gef.EditPart;
+import org.eclipse.ui.progress.UIJob;
+import org.eclipse.ui.views.properties.IPropertySource;
+import org.eclipse.ui.views.properties.IPropertySourceProvider;
+import org.eclipse.ui.views.properties.PropertySheetPage;
+import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class XWTPropertySourceProvider implements IPropertySourceProvider {
+	private EditDomain editDomain;
+	private Map<Object, IPropertySource> sourceMap = new HashMap<Object, IPropertySource>();
+
+	private Adapter refresher = new AdapterImpl() {
+		public void notifyChanged(Notification msg) {
+			if (msg.isTouch()) {
+				return;
+			}
+			refresh();
+		};
+	};
+	private PropertiesRefreshJob fPropertiesRefreshJob;
+	private PropertySheetPage propertyPage;
+
+	public XWTPropertySourceProvider(EditDomain editDomain, PropertySheetPage propertyPage) {
+		this.editDomain = editDomain;
+		this.propertyPage = propertyPage;
+	}
+
+	private void refresh() {
+		if (propertyPage != null) {
+			getPropertiesRefreshJob().doRefresh();
+		}
+	}
+
+	private PropertiesRefreshJob getPropertiesRefreshJob() {
+		if (fPropertiesRefreshJob == null) {
+			fPropertiesRefreshJob = new PropertiesRefreshJob();
+		}
+		return fPropertiesRefreshJob;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.views.properties.IPropertySourceProvider#getPropertySource(java.lang.Object)
+	 */
+	public IPropertySource getPropertySource(Object object) {
+		IPropertySource propertySource = sourceMap.get(object);
+		if (propertySource == null) {
+			propertySource = createPropertySource(object);
+			sourceMap.put(object, propertySource);
+		}
+		return propertySource;
+	}
+
+	/**
+	 * @param object
+	 */
+	private IPropertySource createPropertySource(Object object) {
+		PropertyContext context = null;
+		if (object instanceof EditPart) {
+			EditPart editPart = (EditPart) object;
+			context = new PropertyContext(editPart, null);
+			if (editDomain == null) {
+				editDomain = (EditDomain) ((EditPart) object).getViewer().getEditDomain();
+			}
+			context.setEditDomain(editDomain);
+		} else if (object instanceof PropertyContext) {
+			context = (PropertyContext) object;
+		}
+		if (context != null) {
+			final XamlNode model = context.getNode();
+			if (!model.eAdapters().contains(refresher)) {
+				model.eAdapters().add(refresher);
+			}
+			return new XWTPropertySource(context) {
+				public void setPropertyValue(Object id, Object value) {
+					model.eAdapters().remove(refresher);
+					super.setPropertyValue(id, value);
+					model.eAdapters().add(refresher);
+				}
+			};
+		}
+		return null;
+	}
+
+	private class PropertiesRefreshJob extends UIJob {
+		public static final int UPDATE_DELAY = 200;
+
+		public PropertiesRefreshJob() {
+			super("Refresh Properties Page.");
+			setSystem(true);
+			setPriority(Job.SHORT);
+		}
+
+		public void doRefresh() {
+			schedule(UPDATE_DELAY);
+		}
+
+		public IStatus runInUIThread(IProgressMonitor monitor) {
+			if ((propertyPage != null) && (propertyPage.getControl() != null) && !propertyPage.getControl().isDisposed()) {
+				propertyPage.refresh();
+			}
+			return Status.OK_STATUS;
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/AbstractCellEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/AbstractCellEditor.java
new file mode 100755
index 0000000..0f174a6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/AbstractCellEditor.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.editors;
+
+import org.eclipse.jface.viewers.DialogCellEditor;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.xwt.tools.ui.designer.providers.LabelProviderFactory;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public abstract class AbstractCellEditor extends DialogCellEditor {
+
+	public AbstractCellEditor(Composite parent) {
+		super(parent);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.DialogCellEditor#updateContents(java.lang.Object)
+	 */
+	protected void updateContents(Object value) {
+		if (value != null) {
+			ILabelProvider labelProvider = LabelProviderFactory.getLabelProvider(value.getClass());
+			value = labelProvider.getText(value);
+		}
+		super.updateContents(value);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.DialogCellEditor#openDialogBox(org.eclipse.swt.widgets.Control)
+	 */
+	protected Object openDialogBox(Control cellEditorWindow) {
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/ArrayCellEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/ArrayCellEditor.java
new file mode 100755
index 0000000..98826df
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/ArrayCellEditor.java
@@ -0,0 +1,126 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.editors;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.StringTokenizer;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.TraverseEvent;
+import org.eclipse.swt.events.TraverseListener;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ArrayCellEditor extends AbstractCellEditor {
+
+	public ArrayCellEditor(Composite parent) {
+		super(parent);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.properties.editors.AbstractCellEditor#openDialogBox(org.eclipse.swt.widgets.Control)
+	 */
+	protected Object openDialogBox(Control cellEditorWindow) {
+		Object value = getValue();
+		String[] initValue = null;
+		if (value instanceof String[]) {
+			initValue = (String[]) value;
+		}
+		ArrayDialog dialog = new ArrayDialog(cellEditorWindow.getShell(), initValue);
+		if (dialog.open() == Window.OK) {
+			initValue = dialog.getArray();
+		}
+		return initValue;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.properties.editors.AbstractCellEditor#updateContents(java.lang.Object)
+	 */
+	protected void updateContents(Object value) {
+		super.updateContents("[...]");
+	}
+
+	static class ArrayDialog extends Dialog {
+		private Text text;
+		private String result;
+		private String[] initValue;
+
+		protected ArrayDialog(Shell parentShell, String[] initValue) {
+			super(parentShell);
+			setShellStyle(SWT.SHELL_TRIM);
+			this.initValue = initValue;
+		}
+
+		protected Control createDialogArea(Composite parent) {
+			Composite control = (Composite) super.createDialogArea(parent);
+			control.setLayout(new FillLayout());
+			text = new Text(control, SWT.BORDER | SWT.MULTI | SWT.WRAP);
+			if (initValue != null) {
+				StringBuilder sb = new StringBuilder();
+				for (String item : initValue) {
+					sb.append(item);
+					sb.append("\n");
+				}
+				result = sb.toString();
+			}
+			if (result != null) {
+				text.setText(result);
+			}
+			text.addListener(SWT.Modify, new Listener() {
+				public void handleEvent(Event event) {
+					result = text.getText();
+				}
+			});
+			text.addTraverseListener(new TraverseListener() {
+				public void keyTraversed(TraverseEvent e) {
+					if (e.detail == SWT.TRAVERSE_RETURN) {
+						text.getParent().layout(true, true);
+						getDialogArea().getParent().layout();
+					}
+				}
+			});
+			return control;
+		}
+
+		public String getResult() {
+			return result;
+		}
+
+		public String[] getArray() {
+			if (result == null) {
+				return new String[0];
+			}
+			List<String> resultList = new ArrayList<String>();
+			StringTokenizer stk = new StringTokenizer(result, "\n");
+			while (stk.hasMoreElements()) {
+				resultList.add(stk.nextToken().trim());
+			}
+			return resultList.toArray(new String[0]);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/BooleanCellEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/BooleanCellEditor.java
new file mode 100755
index 0000000..e8c633e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/BooleanCellEditor.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.editors;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class BooleanCellEditor extends AbstractCellEditor {
+	private Button checkBox;
+
+	public BooleanCellEditor(Composite parent) {
+		super(parent);
+	}
+
+	protected Control createControl(Composite parent) {
+		if (checkBox == null || checkBox.isDisposed()) {
+			checkBox = new Button(parent, SWT.CHECK);
+		}
+		return checkBox;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.CheckboxCellEditor#doSetValue(java.lang.Object)
+	 */
+	protected void doSetValue(Object newValue) {
+		boolean booleanValue = false;
+		if (newValue instanceof Boolean) {
+			booleanValue = ((Boolean) newValue).booleanValue();
+		} else if (newValue instanceof String) {
+			booleanValue = "true".equals(newValue);
+		}
+		checkBox.setSelection(booleanValue);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.CheckboxCellEditor#doGetValue()
+	 */
+	protected Object doGetValue() {
+		return checkBox.getSelection();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.DialogCellEditor#doSetFocus()
+	 */
+	protected void doSetFocus() {
+		checkBox.setFocus();
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/CharacterCellEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/CharacterCellEditor.java
new file mode 100755
index 0000000..a2a2277
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/CharacterCellEditor.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.editors;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Text;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class CharacterCellEditor extends org.eclipse.jface.viewers.TextCellEditor {
+
+	public CharacterCellEditor(Composite parent) {
+		super(parent);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.DialogCellEditor#doSetValue(java.lang.Object)
+	 */
+	protected void doSetValue(Object value) {
+		String textValue = value == null ? "" : value.toString();
+		super.doSetValue(textValue);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.TextCellEditor#createControl(org.eclipse.swt.widgets.Composite)
+	 */
+	protected Control createControl(Composite parent) {
+		Text text = (Text) super.createControl(parent);
+		text.setTextLimit(1);
+		return text;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/ColorCellEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/ColorCellEditor.java
new file mode 100755
index 0000000..dab8e78
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/ColorCellEditor.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.editors;
+
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.xwt.tools.ui.designer.dialogs.ColorChooser;
+import org.eclipse.xwt.tools.ui.designer.providers.LabelProviderFactory;
+
+public class ColorCellEditor extends AbstractCellEditor {
+
+	/**
+	 * constructor
+	 */
+	public ColorCellEditor(Composite parent) {
+		super(parent);
+	}
+
+	/**
+	 * @see org.eclipse.jface.viewers.DialogCellEditor#openDialogBox(org.eclipse.swt.widgets.Control)
+	 */
+	protected Object openDialogBox(Control cellEditorWindow) {
+		String color = null;
+		Object value = getValue();
+		if (value instanceof Color) {
+			color = LabelProviderFactory.getLabelProvider(Color.class).getText(value);
+		} else if (value instanceof String) {
+			color = (String) value;
+		}
+		ColorChooser dialog = new ColorChooser(cellEditorWindow.getShell(), color);
+		if (dialog.open() == Window.OK) {
+			color = dialog.getColor();
+		}
+		return color;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/FontCellEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/FontCellEditor.java
new file mode 100755
index 0000000..1928056
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/FontCellEditor.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.editors;
+
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.FontDialog;
+
+public class FontCellEditor extends AbstractCellEditor {
+
+	/**
+	 * Creates a new Font dialog cell editor parented under the given control. The cell editor value is null initially, and has no validator.
+	 * 
+	 * @param parent
+	 *            the parent control
+	 */
+	public FontCellEditor(Composite parent) {
+		super(parent);
+	}
+
+	/**
+	 * @see org.eclipse.jface.viewers.DialogCellEditor#openDialogBox(Control)
+	 */
+	protected Object openDialogBox(Control cellEditorWindow) {
+		FontDialog ftDialog = new FontDialog(cellEditorWindow.getShell());
+		Object value = getValue();
+		if (value != null && value instanceof Font) {
+			Font font = (Font) value;
+			if (font != null) {
+				FontData[] fontDatas = font.getFontData();
+				ftDialog.setFontList(fontDatas);
+			}
+		}
+		FontData fData = ftDialog.open();
+		if (fData != null) {
+			value = new Font(Display.getCurrent(), fData);
+		}
+		return value;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/ImageCellEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/ImageCellEditor.java
new file mode 100755
index 0000000..6e89a3d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/ImageCellEditor.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.editors;
+
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.xwt.tools.ui.designer.XWTDesignerPlugin;
+import org.eclipse.xwt.tools.ui.designer.dialogs.ImageDialog;
+import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
+
+public class ImageCellEditor extends AbstractCellEditor {
+
+	public ImageCellEditor(Composite parent) {
+		super(parent);
+	}
+
+	protected Object openDialogBox(Control cellEditorWindow) {
+		XWTDesigner designer = XWTDesignerPlugin.getDefault().getActiveDesigner();
+		if (designer != null) {
+			ImageDialog dialog = new ImageDialog(cellEditorWindow.getShell(), designer.getFile());
+			if (Window.OK == dialog.open()) {
+				return dialog.getImagePath();
+			}
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/IntegerCellEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/IntegerCellEditor.java
new file mode 100755
index 0000000..57f3c2b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/IntegerCellEditor.java
@@ -0,0 +1,91 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.editors;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Spinner;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class IntegerCellEditor extends AbstractCellEditor {
+
+	private Spinner spinner;
+
+	/**
+	 * @param parent
+	 */
+	public IntegerCellEditor(Composite parent) {
+		super(parent);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.DialogCellEditor#createContents(org.eclipse.swt.widgets.Composite)
+	 */
+	protected Control createControl(Composite cell) {
+		if (spinner == null || spinner.isDisposed()) {
+			spinner = new Spinner(cell, SWT.NONE);
+			spinner.setMinimum(-1);
+			spinner.setMaximum(Integer.MAX_VALUE);
+		}
+		return spinner;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.DialogCellEditor#doSetValue(java.lang.Object)
+	 */
+	protected void doSetValue(Object value) {
+		if (spinner == null || spinner.isDisposed()) {
+			return;
+		}
+		int intValue = 0;
+		if (value instanceof Integer) {
+			intValue = ((Integer) value).intValue();
+		} else if (value instanceof String) {
+			try {
+				intValue = Integer.parseInt((String) value);
+			} catch (NumberFormatException e) {
+			}
+		}
+		spinner.setSelection(intValue);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.DialogCellEditor#doGetValue()
+	 */
+	protected Object doGetValue() {
+		if (spinner == null || spinner.isDisposed()) {
+			return 0;
+		}
+		return spinner.getSelection();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.DialogCellEditor#doSetFocus()
+	 */
+	protected void doSetFocus() {
+		if (spinner != null && !spinner.isDisposed()) {
+			spinner.setFocus();
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/LayoutCellEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/LayoutCellEditor.java
new file mode 100755
index 0000000..1c56e7c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/LayoutCellEditor.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.editors;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.viewers.ComboBoxCellEditor;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class LayoutCellEditor extends ComboBoxCellEditor {
+	private static List<String> items = new ArrayList<String>();
+	static {
+		LayoutType[] values = LayoutType.values();
+		for (int i = 0; i < values.length; i++) {
+			String value = values[i].value();
+			if (value != null) {
+				items.add(value);
+			}
+		}
+	}
+
+	public LayoutCellEditor(Composite parent) {
+		super(parent, items.toArray(new String[0]));
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.properties.editors.ComboCellEditor#doSetValue(java.lang.Object)
+	 */
+	protected void doSetValue(Object value) {
+		if (!(value instanceof Integer)) {
+			String realValue = LayoutsHelper.getLayoutType(value).value();
+			value = items.indexOf(realValue);
+		}
+		super.doSetValue(value);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.ComboBoxCellEditor#doGetValue()
+	 */
+	protected Object doGetValue() {
+		Object value = super.doGetValue();
+		try {
+			if (value instanceof Integer) {
+				value = items.get((Integer) value);
+			}
+		} catch (Exception e) {
+			CCombo control = (CCombo) getControl();
+			if (control != null && !control.isDisposed()) {
+				value = control.getText();
+			}
+		}
+		return value;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/ObjectCellEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/ObjectCellEditor.java
new file mode 100755
index 0000000..c35f999
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/ObjectCellEditor.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.editors;
+
+import org.eclipse.jdt.core.search.IJavaSearchConstants;
+import org.eclipse.jdt.internal.ui.JavaUIMessages;
+import org.eclipse.jdt.internal.ui.dialogs.OpenTypeSelectionDialog;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.dialogs.SelectionDialog;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ObjectCellEditor extends AbstractCellEditor {
+
+	public ObjectCellEditor(Composite parent, Class<?> type) {
+		super(parent);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.properties.editors.AbstractCellEditor#openDialogBox(org.eclipse.swt.widgets.Control)
+	 */
+	protected Object openDialogBox(Control cellEditorWindow) {
+		SelectionDialog dialog = new OpenTypeSelectionDialog(cellEditorWindow.getShell(), false, PlatformUI.getWorkbench().getProgressService(), null, IJavaSearchConstants.TYPE);
+		dialog.setTitle(JavaUIMessages.OpenTypeAction_dialogTitle);
+		dialog.setMessage(JavaUIMessages.OpenTypeAction_dialogMessage);
+		if (Window.OK == dialog.open()) {
+			Object[] result = dialog.getResult();
+		}
+		return super.openDialogBox(cellEditorWindow);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/PointCellEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/PointCellEditor.java
new file mode 100755
index 0000000..be5c2cd
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/PointCellEditor.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.editors;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.xwt.XWT;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.xwt.tools.ui.designer.core.dialogs.IntArrayDialog;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class PointCellEditor extends AbstractCellEditor {
+
+	public PointCellEditor(Composite parent) {
+		super(parent);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.DialogCellEditor#openDialogBox(org.eclipse.swt.widgets.Control)
+	 */
+	protected Object openDialogBox(Control cellEditorWindow) {
+		Point point = new Point(0, 0);
+		Object value = getValue();
+		if (value instanceof Point) {
+			point.x = ((Point) value).x;
+			point.y = ((Point) value).y;
+		} else {
+			IConverter c = XWT.findConvertor(value.getClass(), Point.class);
+			if (c != null) {
+				point = (Point) c.convert(value);
+			}
+		}
+		IntArrayDialog dialog = new IntArrayDialog(cellEditorWindow.getShell(), new int[] { point.x, point.y },
+				new String[] { "x:", "y:" });
+		if (dialog.open() == Window.OK) {
+			int[] result = dialog.getResult();
+			point.x = result[0];
+			point.y = result[1];
+		}
+		return point;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/RectangleCellEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/RectangleCellEditor.java
new file mode 100755
index 0000000..946adcf
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/RectangleCellEditor.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.editors;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.xwt.XWT;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.xwt.tools.ui.designer.core.dialogs.IntArrayDialog;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class RectangleCellEditor extends AbstractCellEditor {
+
+	public RectangleCellEditor(Composite parent) {
+		super(parent);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.DialogCellEditor#openDialogBox(org.eclipse.swt.widgets.Control)
+	 */
+	protected Object openDialogBox(Control cellEditorWindow) {
+		Rectangle rect = new Rectangle(0, 0, 0, 0);
+		Object value = getValue();
+		if (value instanceof Rectangle) {
+			Rectangle r = (Rectangle) value;
+			rect.x = r.x;
+			rect.y = r.y;
+			rect.width = r.width;
+			rect.height = r.height;
+		} else {
+			IConverter c = XWT.findConvertor(value.getClass(), Rectangle.class);
+			if (c != null) {
+				rect = (Rectangle) c.convert(value);
+			}
+		}
+		IntArrayDialog dialog = new IntArrayDialog(cellEditorWindow.getShell(), new int[] { rect.x, rect.y, rect.width,
+				rect.height }, new String[] { "x:", "y:", "width:", "height:" });
+		if (dialog.open() == Window.OK) {
+			int[] result = dialog.getResult();
+			rect.x = result[0];
+			rect.y = result[1];
+			rect.width = result[2];
+			rect.height = result[3];
+		}
+		return rect;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/TextCellEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/TextCellEditor.java
new file mode 100755
index 0000000..ad91ec6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/TextCellEditor.java
@@ -0,0 +1,106 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.editors;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.jface.window.Window;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.xwt.tools.ui.designer.XWTDesignerPlugin;
+import org.eclipse.xwt.tools.ui.designer.dialogs.ExternalizeTextDialog;
+import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
+import org.eclipse.xwt.tools.ui.designer.properties.PropertyContext;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTModelUtil;
+import org.eclipse.xwt.tools.ui.designer.wizards.ExternalizeStringsWizard;
+import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueEntry;
+import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueModel;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class TextCellEditor extends AbstractCellEditor {
+
+	private boolean canExternalize;
+	private PropertyContext fContext;
+	private IProperty property;
+	private XamlAttribute attribute;
+
+	public TextCellEditor(PropertyContext fContext, IProperty property, Composite parent) {
+		super(parent);
+		this.fContext = fContext;
+		this.property = property;
+	}
+
+	protected Object openDialogBox(Control cellEditorWindow) {
+		XWTDesigner designer = XWTDesignerPlugin.getDefault().getActiveDesigner();
+		attribute = createAttribute(fContext.getNode());
+		String oldValue = (String) getValue();
+		String value = attribute.getValue();
+
+		if (designer != null) {
+			if (value == null) {
+				canExternalize = false;
+			} else {
+				canExternalize = true;
+			}
+			ExternalizeTextDialog dialog = new ExternalizeTextDialog(cellEditorWindow.getShell(), oldValue, canExternalize, property.getName());
+			int returnValue = dialog.open();
+			if (Window.OK == returnValue) {
+				return dialog.getTextValue();
+			} else if (2 == returnValue) {
+				boolean isOK = externalizeText(dialog.getTextValue());
+				if (isOK) {
+					return dialog.getTextValue();
+				} else {
+					return oldValue;
+				}
+			}
+		}
+		return null;
+	}
+
+	protected XamlAttribute createAttribute(XamlNode parent) {
+		String attrName = property.getName();
+		if (attrName == null) {
+			throw new NullPointerException("Attribute name is null");
+		}
+		XamlAttribute attr = XWTModelUtil.getAdaptableAttribute(parent, attrName, IConstants.XWT_NAMESPACE);
+		if (attr == null) {
+			attr = XamlFactory.eINSTANCE.createAttribute(attrName, IConstants.XWT_NAMESPACE);
+		}
+		return attr;
+	}
+
+	private boolean externalizeText(String textValue) {
+		final XWTDesigner designer = XWTDesignerPlugin.getDefault().getActiveDesigner();
+		String oldValue = attribute.getValue();
+		// Externalize the value of the attribute.
+		TextValueModel textValueEntrys = new TextValueModel();
+		textValueEntrys.add(new TextValueEntry(textValue, "" + 0));
+		ExternalizeStringsWizard wizard = new ExternalizeStringsWizard(textValueEntrys, designer);
+		wizard.init(PlatformUI.getWorkbench(), null);
+		WizardDialog dialog = new WizardDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), wizard);
+		int returnValue = dialog.open();
+		if (Window.CANCEL == returnValue) {
+			attribute.setValue(oldValue);
+			return false;
+		}
+		return true;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/TypedPropertiesCellEditor.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/TypedPropertiesCellEditor.java
new file mode 100755
index 0000000..b2cb505
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/editors/TypedPropertiesCellEditor.java
@@ -0,0 +1,74 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.editors;
+
+import org.eclipse.jface.viewers.ComboBoxCellEditor;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.xwt.tools.ui.designer.properties.TypedProperties;
+
+public class TypedPropertiesCellEditor extends ComboBoxCellEditor {
+
+	private String type;
+
+	public TypedPropertiesCellEditor(Composite parent, String type) {
+		super(parent, TypedProperties.getProperties(type));
+		this.type = type;
+	}
+
+	/**
+	 * @see org.eclipse.jface.viewers.ComboBoxCellEditor#doGetValue()
+	 */
+	protected Object doGetValue() {
+		Object value = super.doGetValue();
+		String[] items = getItems();
+		try {
+			if (value instanceof Integer) {
+				value = items[(Integer) value];
+			}
+		} catch (Exception e) {
+			CCombo control = (CCombo) getControl();
+			if (control != null && !control.isDisposed()) {
+				value = control.getText();
+			}
+		}
+		return value;
+	}
+
+	/**
+	 * @see org.eclipse.jface.viewers.ComboBoxCellEditor#doSetValue(java.lang.Object)
+	 */
+	protected void doSetValue(Object value) {
+		int intValue = -1;
+		String textValue = null;
+		String[] items = getItems();
+		if (value instanceof Integer) {
+			textValue = TypedProperties.getLabelProvider(type).getText((Integer) value);
+		} else {
+			textValue = value.toString();
+		}
+		if (textValue != null) {
+			for (int i = 0; i < items.length; i++) {
+				if (textValue.equals(items[i])) {
+					intValue = i;
+					break;
+				}
+			}
+			if (intValue == -1) {
+				((CCombo) getControl()).setText(textValue);
+			} else {
+				super.doSetValue(intValue);
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/AbstractAttributeSection.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/AbstractAttributeSection.java
new file mode 100755
index 0000000..6373a34
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/AbstractAttributeSection.java
@@ -0,0 +1,391 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.IXWTLoader;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.XWTLoaderManager;
+import org.eclipse.xwt.core.IBinding;
+import org.eclipse.xwt.core.IDynamicBinding;
+import org.eclipse.xwt.internal.utils.LoggerManager;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.GraphicalViewer;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.swt.widgets.ToolItem;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.xwt.tools.ui.designer.commands.AddNewChildCommand;
+import org.eclipse.xwt.tools.ui.designer.commands.ApplyAttributeSettingCommand;
+import org.eclipse.xwt.tools.ui.designer.commands.DeleteCommand;
+import org.eclipse.xwt.tools.ui.designer.core.editor.EditDomain;
+import org.eclipse.xwt.tools.ui.designer.core.util.DisplayUtil;
+import org.eclipse.xwt.tools.ui.designer.loader.ResourceVisitor;
+import org.eclipse.xwt.tools.ui.designer.loader.XWTClassLoaderUtil;
+import org.eclipse.xwt.tools.ui.designer.loader.XWTVisualLoader;
+import org.eclipse.xwt.tools.ui.designer.model.RefreshAdapter;
+import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
+import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTModelUtil;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public abstract class AbstractAttributeSection extends AbstractPropertySection
+		implements Listener {
+
+	private XamlNode parent;
+	private XamlAttribute attribute;
+	private WidgetEditPart editPart;
+	private Label attrLable;
+	static Map<String, Object> EMPTY_MAP = Collections.emptyMap();
+	private boolean needToRefresh = false;
+
+	// private RefreshAdapter refreshAdapter;
+	private Map<XamlNode, RefreshAdapter> refresherMap;
+	protected Display display;
+
+	public boolean isNeedToRefresh() {
+		return needToRefresh;
+	}
+
+	public void setNeedToRefresh(boolean needToRefresh) {
+		this.needToRefresh = needToRefresh;
+	}
+
+	public void createControls(Composite parent,
+			TabbedPropertySheetPage aTabbedPropertySheetPage) {
+		_createControls(parent, aTabbedPropertySheetPage);
+
+		Object layoutData = parent.getLayoutData();
+		if (layoutData != null && layoutData instanceof GridData) {
+			GridData gd = (GridData) layoutData;
+			gd.verticalAlignment = GridData.BEGINNING;
+			gd.grabExcessVerticalSpace = false;
+		}
+
+		GridLayout layout = new GridLayout(3, false);
+		layout.marginHeight = 0;
+		parent.setLayout(layout);
+
+		attrLable = getWidgetFactory().createLabel(parent, "");
+		Control section = createSection(parent);
+		display = section.getDisplay();
+		section.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		createClearButton(parent);
+	}
+
+	protected void _createControls(Composite parent,
+			TabbedPropertySheetPage aTabbedPropertySheetPage) {
+		super.createControls(parent, aTabbedPropertySheetPage);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.ui.views.properties.tabbed.AbstractPropertySection#
+	 * shouldUseExtraSpace()
+	 */
+	public boolean shouldUseExtraSpace() {
+		return true;
+	}
+
+	protected void handleModelChanged(Notification msg) {
+		if (msg.isTouch()) {
+			return;
+		}
+		Object notifier = msg.getNotifier();
+		if (notifier == null) {
+			return;
+		}
+		XamlAttribute attribute = getAttribute();
+		if (notifier == attribute) {
+			setNeedToRefresh(true);
+		} else if (notifier == parent
+				&& (attribute == msg.getOldValue() || attribute == msg
+						.getNewValue())) {
+			setNeedToRefresh(true);
+		}
+		refresh();
+	}
+
+	protected void createClearButton(Composite parent) {
+		ToolBar toolBar = new ToolBar(parent, SWT.FLAT);
+		toolBar.setBackground(parent.getDisplay().getSystemColor(
+				SWT.COLOR_WHITE));
+		ToolItem clearAction = new ToolItem(toolBar, SWT.PUSH);
+		clearAction.setImage(ImageShop.get(ImageShop.IMG_CLEAR_FILTER));
+		clearAction.setToolTipText("Clear setting values.");
+		clearAction.addListener(SWT.Selection, new Listener() {
+			public void handleEvent(Event event) {
+				clearProperty();
+			}
+		});
+	}
+
+	protected void clearProperty() {
+		executeCommand(new DeleteCommand(getAttribute()));
+	}
+
+	public XamlAttribute getAttribute() {
+		// Maybe attribute had been created.
+		if (attribute != null && attribute.eContainer() == null) {
+			attribute = XWTModelUtil.getAdaptableAttribute(parent,
+					getAttributeName(), IConstants.XWT_NAMESPACE);
+		}
+		if (attribute == null) {
+			attribute = createAttribute(parent);
+		}
+		return attribute;
+	}
+
+	public XamlNode getParent() {
+		return parent;
+	}
+
+	protected void applyEditPart(WidgetEditPart editPart) {
+		if (this.editPart != null && this.editPart == editPart) {
+			return;
+		}
+		setNeedToRefresh(true);
+		this.editPart = editPart;
+		if (attrLable != null && !attrLable.isDisposed()) {
+			String name = getAttributeName();
+			if (name != null && name.length() > 0) {
+				attrLable.setText(Character.toUpperCase(name.charAt(0))
+						+ name.substring(1) + ":");
+				attrLable.getParent().layout();
+			}
+		}
+		parent = editPart.getCastModel();
+		attribute = createAttribute(parent);
+		getRefresher().addListenedAttr(getAttributeName());
+	}
+
+	protected RefreshAdapter getRefresher() {
+		if (refresherMap == null) {
+			refresherMap = new HashMap<XamlNode, RefreshAdapter>();
+		}
+		RefreshAdapter refreshAdapter = refresherMap.get(parent);
+		if (refreshAdapter == null) {
+			refreshAdapter = new RefreshAdapter(parent) {
+				protected void performRefresh(Notification msg) {
+					handleModelChanged(msg);
+				}
+			};
+			refresherMap.put(parent, refreshAdapter);
+		}
+		return refreshAdapter;
+	}
+
+	public void setInput(IWorkbenchPart part, ISelection selection) {
+		super.setInput(part, selection);
+		Object object = ((IStructuredSelection) selection).getFirstElement();
+		if (object instanceof WidgetEditPart) {
+			applyEditPart((WidgetEditPart) object);
+		} else if (object instanceof EditPart) {
+			IWorkbenchPage activePage = part.getSite().getWorkbenchWindow()
+					.getActivePage();
+			IEditorPart activeEditor = activePage.getActiveEditor();
+			GraphicalViewer graphicalViewer = (GraphicalViewer) activeEditor
+					.getAdapter(GraphicalViewer.class);
+			if (graphicalViewer != null) {
+				EditPart editPart = (EditPart) graphicalViewer
+						.getEditPartRegistry().get(
+								((EditPart) object).getModel());
+				if (editPart instanceof WidgetEditPart) {
+					applyEditPart((WidgetEditPart) editPart);
+				}
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.
+	 * Event)
+	 */
+	public void handleEvent(Event event) {
+		XamlAttribute attribute = getAttribute();
+		Command command = null;
+		if (parent.getAttributes().contains(attribute)) {
+			command = new ApplyAttributeSettingCommand(parent, attribute,
+					getNewValue(event));
+		} else {
+			attribute.setValue(getNewValue(event));
+			command = new AddNewChildCommand(parent, attribute);
+		}
+		executeCommand(command);
+	}
+
+	protected void executeCommand(Command command) {
+		if (command == null || !command.canExecute()) {
+			return;
+		}
+		getRefresher().setRefreshRequired(false);
+		EditDomain.getEditDomain(editPart).getCommandStack().execute(command);
+		getRefresher().setRefreshRequired(true);
+	}
+
+	protected String getValue() {
+		XamlAttribute attribute = getAttribute();
+		if (attribute == null || attribute.eContainer() == null) {
+			return null;
+		}
+		return attribute.getValue();
+	}
+
+	protected void setTextValue(Text textWidget) {
+		Object value = getValue();
+		if (value == null) {
+			XamlNode[] children = attribute.getChildNodes().toArray(
+					new XamlNode[0]);
+			IXWTLoader xwtLoader = XWTLoaderManager.getActive();
+			for (XamlNode child : children) {
+				String name = child.getName();
+				String ns = child.getNamespace();
+				if (name.equalsIgnoreCase(IConstants.XAML_X_STATIC)
+						&& ns.equals(IConstants.XWT_X_NAMESPACE)) {
+					value = (String) getStaticValue(child, xwtLoader);
+				} else if (name.equals(IConstants.XAML_BINDING)) {
+					Class<?> type = java.lang.String.class;
+					ResourceVisitor resourceVisitor = new ResourceVisitor(
+							(XWTVisualLoader) xwtLoader);
+					try {
+						value = resourceVisitor.doCreate(child.getParent(),
+								(XamlElement) child, type, EMPTY_MAP);
+						if (value != null) {
+							if (value instanceof IDynamicBinding) {
+								IDynamicBinding binding = (IDynamicBinding) value;
+								binding.setType("text");
+								binding.setControl(editPart.getWidget());
+								binding.setHost(editPart.getModel());
+							}
+							if (!type.isAssignableFrom(value.getClass())
+									|| value instanceof IBinding) {
+								Object orginalValue = value;
+								IConverter converter = ((XWTVisualLoader) xwtLoader)
+										.findConvertor(value.getClass(), type);
+								if (converter != null) {
+									value = converter.convert(value);
+									if (value != null
+											&& orginalValue instanceof IBinding
+											&& !type.isAssignableFrom(value
+													.getClass())) {
+										converter = ((XWTVisualLoader) xwtLoader)
+												.findConvertor(
+														value.getClass(), type);
+										if (converter != null) {
+											value = converter.convert(value);
+										} else {
+											LoggerManager
+													.log(new XWTException(
+															"Convertor "
+																	+ value.getClass()
+																			.getSimpleName()
+																	+ "->"
+																	+ type.getSimpleName()
+																	+ " is not found"));
+										}
+									}
+								}
+							}
+						}
+					} catch (Exception e) {
+						LoggerManager.log(e);
+					}
+				}
+			}
+		}
+		textWidget.setText((value == null ? "" : (String) value));
+	}
+
+	protected Object getStaticValue(XamlNode child, IXWTLoader xwtLoader) {
+		XamlNode[] children = child.getChildNodes().toArray(new XamlNode[0]);
+		if (children.length == 1) {
+			XamlElement element = (XamlElement) children[0];
+			if (element != null) {
+				return XWTClassLoaderUtil.loadStaticMember(
+						((XWTVisualLoader) xwtLoader).getLoadingContext(),
+						element);
+			}
+		}
+		return null;
+	}
+
+	public WidgetEditPart getEditPart() {
+		return editPart;
+	}
+
+	protected XamlAttribute createAttribute(XamlNode parent) {
+		String attrName = getAttributeName();
+		if (attrName == null) {
+			throw new NullPointerException("Attribute name is null");
+		}
+		XamlAttribute attr = XWTModelUtil.getAdaptableAttribute(parent,
+				attrName, IConstants.XWT_NAMESPACE);
+		if (attr == null) {
+			attr = XamlFactory.eINSTANCE.createAttribute(attrName,
+					IConstants.XWT_NAMESPACE);
+		}
+		return attr;
+	}
+
+	public final void refresh() {
+		if (!isNeedToRefresh()) {
+			return;
+		}
+		setNeedToRefresh(false);
+		DisplayUtil.syncExec(display, new Runnable() {
+			public void run() {
+				doRefresh();
+			}
+		});
+	}
+
+	protected abstract void doRefresh();
+
+	protected abstract String getNewValue(Event event);
+
+	protected abstract String getAttributeName();
+
+	protected abstract Control createSection(Composite parent);
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/AdvancedSection.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/AdvancedSection.java
new file mode 100755
index 0000000..e6d78d7
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/AdvancedSection.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.views.properties.tabbed.AdvancedPropertySection;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.xwt.tools.ui.designer.properties.XWTPropertySourceProvider;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class AdvancedSection extends AdvancedPropertySection {
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.views.properties.tabbed.AdvancedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)
+	 */
+	public void createControls(Composite parent, TabbedPropertySheetPage atabbedPropertySheetPage) {
+		super.createControls(parent, atabbedPropertySheetPage);
+		page.setPropertySourceProvider(new XWTPropertySourceProvider(null, page));
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/BackgroundImageSection.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/BackgroundImageSection.java
new file mode 100755
index 0000000..ff0936d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/BackgroundImageSection.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class BackgroundImageSection extends ImageSection {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.ImageSection#getAttributeName()
+	 */
+	protected String getAttributeName() {
+		return "backgroundImage";
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/BackgroundSection.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/BackgroundSection.java
new file mode 100755
index 0000000..1406e3b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/BackgroundSection.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class BackgroundSection extends ColorSection {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.ColorSection#defaultColor()
+	 */
+	protected String defaultColor() {
+		return "SWT.COLOR_WIDGET_BACKGROUND";
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.AbstractAttributeSection#getAttributeName()
+	 */
+	protected String getAttributeName() {
+		return "background";
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/ColorSection.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/ColorSection.java
new file mode 100755
index 0000000..d6bf56b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/ColorSection.java
@@ -0,0 +1,200 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections;
+
+import org.eclipse.xwt.XWTMaps;
+import org.eclipse.xwt.converters.StringToColor;
+import org.eclipse.xwt.utils.NamedColorsUtil;
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.tools.ui.designer.dialogs.ColorChooser;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public abstract class ColorSection extends AbstractAttributeSection {
+
+	private Button colorSelector;
+	private CCombo swtColorsCombo;
+	private CCombo namedColorsCombo;
+	private Point fExtent;
+	private Image fImage;
+
+	private String colorStr;
+	private Color fColor;
+
+	public ColorSection() {
+		colorStr = defaultColor();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
+	 * AbstractAttributeSection#createSection(org.eclipse.swt.widgets.Composite)
+	 */
+	protected Control createSection(Composite parent) {
+		Composite control = getWidgetFactory().createComposite(parent);
+		control.setLayout(new GridLayout(3, false));
+
+		swtColorsCombo = getWidgetFactory()
+				.createCCombo(control, SWT.READ_ONLY);
+		{
+			GridData gridData = new GridData(GridData.FILL_HORIZONTAL
+					| GridData.GRAB_HORIZONTAL);
+			gridData.widthHint = 100;
+			swtColorsCombo.setLayoutData(gridData);
+		}
+		swtColorsCombo.setItems(XWTMaps.getColorKeys().toArray(new String[0]));
+		swtColorsCombo.addListener(SWT.Selection, this);
+
+		namedColorsCombo = getWidgetFactory().createCCombo(control,
+				SWT.READ_ONLY);
+		{
+			GridData gridData = new GridData(GridData.FILL_HORIZONTAL
+					| GridData.GRAB_HORIZONTAL);
+			gridData.widthHint = 100;
+			namedColorsCombo.setLayoutData(gridData);
+		}
+		namedColorsCombo.setItems(NamedColorsUtil.getColorNames());
+		namedColorsCombo.addListener(SWT.Selection, this);
+
+		colorSelector = getWidgetFactory().createButton(control, "", SWT.NONE);
+		fExtent = computeImageSize(parent);
+		fImage = new Image(parent.getDisplay(), fExtent.x, fExtent.y);
+		GC gc = new GC(fImage);
+		gc.setBackground(colorSelector.getBackground());
+		gc.fillRectangle(0, 0, fExtent.x, fExtent.y);
+		gc.dispose();
+		colorSelector.setImage(fImage);
+		colorSelector.addListener(SWT.Selection, this);
+		colorSelector.addListener(SWT.Dispose, new Listener() {
+			public void handleEvent(Event event) {
+				if (fImage != null) {
+					fImage.dispose();
+				}
+			}
+		});
+		return control;
+	}
+
+	protected void updateColorImage() {
+		if (colorSelector == null || colorSelector.isDisposed()) {
+			return;
+		}
+
+		Display display = colorSelector.getDisplay();
+		if (fImage != null) {
+			fImage.dispose();
+		}
+		fImage = new Image(display, fExtent.x, fExtent.y);
+		GC gc = new GC(fImage);
+		gc.setForeground(display.getSystemColor(SWT.COLOR_BLACK));
+		gc.drawRectangle(0, 2, fExtent.x - 1, fExtent.y - 4);
+		fColor = (Color) StringToColor.instance.convert(colorStr);
+		if (fColor != null && !fColor.isDisposed()) {
+			gc.setBackground(fColor);
+		}
+		gc.fillRectangle(1, 3, fExtent.x - 2, fExtent.y - 5);
+		gc.dispose();
+		colorSelector.setImage(fImage);
+	}
+
+	public void doRefresh() {
+		colorStr = getValue();
+		if (colorStr == null) {
+			colorStr = defaultColor();
+			if (namedColorsCombo != null && !namedColorsCombo.isDisposed()) {
+				namedColorsCombo.setText("");
+			}
+			if (swtColorsCombo != null && !swtColorsCombo.isDisposed()) {
+				swtColorsCombo.setText("");
+			}
+		} else {
+			if (swtColorsCombo != null && !swtColorsCombo.isDisposed()
+					&& swtColorsCombo.indexOf(colorStr) != -1) {
+				swtColorsCombo.removeListener(SWT.Selection, this);
+				swtColorsCombo.select(swtColorsCombo.indexOf(colorStr));
+				swtColorsCombo.addListener(SWT.Selection, this);
+				namedColorsCombo.setText("");
+			}
+			if (namedColorsCombo != null && !namedColorsCombo.isDisposed()
+					&& namedColorsCombo.indexOf(colorStr) != -1) {
+				namedColorsCombo.removeListener(SWT.Selection, this);
+				namedColorsCombo.select(namedColorsCombo.indexOf(colorStr));
+				namedColorsCombo.addListener(SWT.Selection, this);
+				swtColorsCombo.setText("");
+			}
+		}
+		updateColorImage();
+	}
+
+	private Point computeImageSize(Control window) {
+		GC gc = new GC(window);
+		Font f = JFaceResources.getFontRegistry().get(
+				JFaceResources.DIALOG_FONT);
+		gc.setFont(f);
+		int height = gc.getFontMetrics().getHeight();
+		gc.dispose();
+		Point p = new Point(height * 3 - 6, height);
+		return p;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
+	 * AbstractAttributeSection#getNewValue()
+	 */
+	protected String getNewValue(Event event) {
+		if (event.widget == colorSelector) {
+			colorStr = chooseColor();
+		} else if (event.widget == swtColorsCombo) {
+			colorStr = swtColorsCombo.getItem(swtColorsCombo
+					.getSelectionIndex());
+			namedColorsCombo.setText("");
+		} else if (event.widget == namedColorsCombo) {
+			colorStr = namedColorsCombo.getItem(namedColorsCombo
+					.getSelectionIndex());
+			swtColorsCombo.setText("");
+		}
+		updateColorImage();
+		return colorStr;
+	}
+
+	private String chooseColor() {
+		ColorChooser chooser = new ColorChooser(new Shell(), colorStr);
+		if (chooser.open() == Window.OK) {
+			return chooser.getColor();
+		}
+		return colorStr;
+	}
+
+	protected abstract String defaultColor();
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/ConstraintSection.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/ConstraintSection.java
new file mode 100755
index 0000000..b036fda
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/ConstraintSection.java
@@ -0,0 +1,315 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections;
+
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.xwt.converters.StringToInteger;
+import org.eclipse.xwt.converters.StringToPoint;
+import org.eclipse.xwt.converters.StringToRectangle;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Spinner;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.xwt.tools.ui.designer.commands.ChangeConstraintCommand;
+import org.eclipse.xwt.tools.ui.designer.commands.ResizeCommand;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
+import org.eclipse.xwt.tools.ui.designer.model.RefreshAdapter;
+import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
+import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ConstraintSection extends AbstractAttributeSection {
+
+	private Spinner xSpinner;
+	private Spinner heightSpinner;
+	private Spinner widthSpinner;
+	private Spinner ySpinner;
+	private int increment = 10;
+	private Spinner incrementSpinner;
+	private int widthCache = 0, heightCache = 0;
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
+	 * AbstractAttributeSection#getAttributeName()
+	 */
+	protected String getAttributeName() {
+		return "";
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
+	 * AbstractAttributeSection
+	 * #createControls(org.eclipse.swt.widgets.Composite,
+	 * org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)
+	 */
+	public void createControls(Composite parent,
+			TabbedPropertySheetPage aTabbedPropertySheetPage) {
+		super.createControls(parent, aTabbedPropertySheetPage);
+		Composite comp = getWidgetFactory().createComposite(parent);
+		comp.setLayout(new GridLayout(2, false));
+		comp
+				.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false,
+						3, 1));
+		getWidgetFactory().createLabel(comp, "Increment of spinner:");
+		incrementSpinner = createSpinner(comp);
+		incrementSpinner.setIncrement(1);
+		incrementSpinner.setMaximum(100);
+		incrementSpinner.setMinimum(1);
+		incrementSpinner.setSelection(increment);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
+	 * AbstractAttributeSection
+	 * #createClearButton(org.eclipse.swt.widgets.Composite)
+	 */
+	protected void createClearButton(Composite parent) {
+		// remove the clear action.
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
+	 * AbstractAttributeSection#createSection(org.eclipse.swt.widgets.Composite)
+	 */
+	protected Control createSection(Composite parent) {
+		Composite control = getWidgetFactory().createComposite(parent);
+		control.setLayout(new GridLayout(2, false));
+		Group locationGroup = getWidgetFactory().createGroup(control,
+				"Location");
+		locationGroup.setLayout(new GridLayout(4, false));
+		getWidgetFactory().createLabel(locationGroup, "x");
+		xSpinner = createSpinner(locationGroup);
+		getWidgetFactory().createLabel(locationGroup, "y");
+		ySpinner = createSpinner(locationGroup);
+
+		Group sizeGroup = getWidgetFactory().createGroup(control, "Size");
+		sizeGroup.setLayout(new GridLayout(4, false));
+		getWidgetFactory().createLabel(sizeGroup, "width");
+		widthSpinner = createSpinner(sizeGroup);
+		getWidgetFactory().createLabel(sizeGroup, "height");
+		heightSpinner = createSpinner(sizeGroup);
+		return control;
+	}
+
+	private Spinner createSpinner(Composite parent) {
+		Spinner spinner = new Spinner(parent, SWT.BORDER);
+		spinner.setMaximum(Integer.MAX_VALUE);
+		spinner.setMinimum(-1);
+		spinner.addListener(SWT.Selection, this);
+		spinner.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		spinner.setIncrement(increment);
+		return spinner;
+	}
+
+	public void doRefresh() {
+		Rectangle r = getModelValue();
+		if (r == null) {
+			return;
+		}
+		if (xSpinner != null && !xSpinner.isDisposed()
+				&& r.x != xSpinner.getSelection()) {
+			xSpinner.removeListener(SWT.Selection, this);
+			xSpinner.setSelection(r.x);
+			xSpinner.addListener(SWT.Selection, this);
+		}
+		if (ySpinner != null && !ySpinner.isDisposed()
+				&& r.y != ySpinner.getSelection()) {
+			ySpinner.removeListener(SWT.Selection, this);
+			ySpinner.setSelection(r.y);
+			ySpinner.addListener(SWT.Selection, this);
+		}
+		if (widthSpinner != null && !widthSpinner.isDisposed()
+				&& r.width != widthSpinner.getSelection()) {
+			widthSpinner.removeListener(SWT.Selection, this);
+			widthSpinner.setSelection(r.width);
+			widthSpinner.addListener(SWT.Selection, this);
+		}
+		if (heightSpinner != null && !heightSpinner.isDisposed()
+				&& r.height != heightSpinner.getSelection()) {
+			heightSpinner.removeListener(SWT.Selection, this);
+			heightSpinner.setSelection(r.height);
+			heightSpinner.addListener(SWT.Selection, this);
+		}
+		widthCache = r.width;
+		heightCache = r.height;
+		LayoutType containerLayout = getContainerLayout();
+		if (LayoutType.Unknown == containerLayout
+				|| LayoutType.NullLayout == containerLayout) {
+			xSpinner.setEnabled(true);
+			ySpinner.setEnabled(true);
+		} else {
+			xSpinner.setEnabled(false);
+			ySpinner.setEnabled(false);
+		}
+	}
+
+	private Rectangle getModelValue() {
+		Rectangle r = new Rectangle(-1, -1, -1, -1);
+		LayoutType containerLayout = getContainerLayout();
+		XamlNode parent = getParent();
+		if (parent == null) {
+			return r;
+		}
+		if (LayoutType.NullLayout == containerLayout) {
+			XamlAttribute attribute = parent.getAttribute("bounds");
+			if (attribute != null && attribute.getValue() != null) {
+				org.eclipse.swt.graphics.Rectangle rect = (org.eclipse.swt.graphics.Rectangle) StringToRectangle.instance
+						.convert(attribute.getValue());
+				r.setLocation(rect.x, rect.y);
+				r.setSize(rect.width, rect.height);
+			} else {
+				attribute = parent.getAttribute("location");
+				if (attribute != null && attribute.getValue() != null) {
+					Point location = (Point) StringToPoint.instance
+							.convert(attribute.getValue());
+					r.setLocation(location.x, location.y);
+				}
+				attribute = parent.getAttribute("size");
+				if (attribute != null && attribute.getValue() != null) {
+					Point size = (Point) StringToPoint.instance
+							.convert(attribute.getValue());
+					r.setSize(size.x, size.y);
+				}
+			}
+		} else if (LayoutType.Unknown != containerLayout) {
+			WidgetEditPart editPart = getEditPart();
+			Widget widget = editPart.getWidget();
+			IMetaclass metaclass = XWTUtility.getMetaclass(parent);
+			XamlAttribute widthAttr = parent.getAttribute("width");
+			if (widthAttr != null) {
+				r.width = (Integer) StringToInteger.instance.convert(widthAttr
+						.getValue());
+			} else if (metaclass != null) {
+				try {
+					IProperty widthProperty = metaclass.findProperty("width");
+					if (widthProperty != null) {
+						r.width = (Integer) widthProperty.getValue(widget);
+					}
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+			XamlAttribute heightAttr = parent.getAttribute("height");
+			if (heightAttr != null) {
+				r.height = (Integer) StringToInteger.instance
+						.convert(heightAttr.getValue());
+			} else if (metaclass != null) {
+				try {
+					IProperty heightProperty = metaclass.findProperty("height");
+					if (heightProperty != null) {
+						r.height = (Integer) heightProperty.getValue(widget);
+					}
+				} catch (Exception e) {
+					System.out.println();
+				}
+			}
+		}
+		return r;
+	}
+
+	private LayoutType getContainerLayout() {
+		WidgetEditPart editPart = getEditPart();
+		if (editPart == null) {
+			return null;
+		}
+		return LayoutsHelper.getLayoutType(editPart.getParent());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
+	 * AbstractAttributeSection#handleEvent(org.eclipse.swt.widgets.Event)
+	 */
+	public void handleEvent(Event event) {
+		if (event.widget == incrementSpinner) {
+			increment = incrementSpinner.getSelection();
+			xSpinner.setIncrement(increment);
+			ySpinner.setIncrement(increment);
+			widthSpinner.setIncrement(increment);
+			heightSpinner.setIncrement(increment);
+			return;
+		}
+		LayoutType containerLayout = getContainerLayout();
+		if (LayoutType.NullLayout == containerLayout) {
+			Rectangle r = new Rectangle();
+			r.x = xSpinner.getSelection();
+			r.y = ySpinner.getSelection();
+			r.width = widthCache = widthSpinner.getSelection();
+			r.height = heightCache = heightSpinner.getSelection();
+			ChangeConstraintCommand cmd = new ChangeConstraintCommand(
+					getEditPart(), r);
+			executeCommand(cmd);
+		} else if (LayoutType.Unknown != containerLayout) {
+			Dimension growth = new Dimension();
+			if (event.widget == widthSpinner) {
+				growth.width = widthSpinner.getSelection() - widthCache;
+				widthCache = widthSpinner.getSelection();
+			} else if (event.widget == heightSpinner) {
+				growth.height = heightSpinner.getSelection() - heightCache;
+				heightCache = heightSpinner.getSelection();
+			}
+			ResizeCommand cmd = new ResizeCommand(getEditPart(), growth);
+			executeCommand(cmd);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
+	 * AbstractAttributeSection#getRefresher()
+	 */
+	protected RefreshAdapter getRefresher() {
+		RefreshAdapter refresher = super.getRefresher();
+		refresher.addListenedAttr("bounds");
+		refresher.addListenedAttr("size");
+		refresher.addListenedAttr("location");
+		refresher.addListenedAttr("width");
+		refresher.addListenedAttr("height");
+		return refresher;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
+	 * AbstractAttributeSection#getNewValue(org.eclipse.swt.widgets.Event)
+	 */
+	protected String getNewValue(Event event) {
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/DataBindingSection.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/DataBindingSection.java
new file mode 100755
index 0000000..ae7e317
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/DataBindingSection.java
@@ -0,0 +1,243 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.jface.viewers.ComboViewer;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.swt.widgets.ToolItem;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.xwt.tools.ui.designer.databinding.BindingContext;
+import org.eclipse.xwt.tools.ui.designer.databinding.BindingInfo;
+import org.eclipse.xwt.tools.ui.designer.databinding.IObservable;
+import org.eclipse.xwt.tools.ui.designer.databinding.Observable;
+import org.eclipse.xwt.tools.ui.designer.databinding.ObservableUtil;
+import org.eclipse.xwt.tools.ui.designer.databinding.Property;
+import org.eclipse.xwt.tools.ui.designer.databinding.ui.ObserveModelGroup;
+import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
+import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
+
+/**
+ * @author rui.ban rui.ban@soyatec.com
+ */
+public class DataBindingSection extends AbstractPropertySection {
+	private ComboViewer propertiesComboViewer;
+	private WidgetEditPart editPart;
+	private ObserveModelGroup observeModelGroup;
+	private Button bindButton;
+	private List<BindingInfo> createdBindings;
+
+	private BindingContext bindingContext;
+	
+	private boolean needToRefresh = false; 
+
+	public boolean isNeedToRefresh() {
+		return needToRefresh;
+	}
+
+	public void setNeedToRefresh(boolean needToRefresh) {
+		this.needToRefresh = needToRefresh;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.views.properties.tabbed.AbstractPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)
+	 */
+	public void createControls(Composite parent, TabbedPropertySheetPage aTabbedPropertySheetPage) {
+		super.createControls(parent, aTabbedPropertySheetPage);
+		Composite composite = getWidgetFactory().createComposite(parent);
+		composite.setLayout(new GridLayout(4, false));
+		getWidgetFactory().createCLabel(composite, "Properties");
+		CCombo propertiesCombo = getWidgetFactory().createCCombo(composite, SWT.READ_ONLY);
+		propertiesComboViewer = new ComboViewer(propertiesCombo);
+		propertiesComboViewer.setContentProvider(new IStructuredContentProvider() {
+			public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+			}
+
+			public void dispose() {
+			}
+
+			public Object[] getElements(Object inputElement) {
+				if (inputElement instanceof IObservable) {
+					return ((IObservable) inputElement).getProperties();
+				}
+				return new Object[0];
+			}
+		});
+		propertiesComboViewer.setLabelProvider(new LabelProvider() {
+			public String getText(Object element) {
+				if (element instanceof Property) {
+					return ((Property) element).getName();
+				}
+				return super.getText(element);
+			}
+
+			public Image getImage(Object element) {
+				if (element instanceof Property) {
+					return ImageShop.getImageForType(((Property) element).getType());
+				}
+				return super.getImage(element);
+			}
+		});
+		propertiesComboViewer.addSelectionChangedListener(new ISelectionChangedListener() {
+			public void selectionChanged(SelectionChangedEvent event) {
+				IStructuredSelection selection = (IStructuredSelection) event.getSelection();
+				bindingContext.setTargetProperty((Property) selection.getFirstElement());
+			}
+		});
+
+		bindButton = getWidgetFactory().createButton(composite, "Bind", SWT.PUSH);
+		bindButton.setEnabled(false);
+		bindButton.setImage(ImageShop.get(ImageShop.IMG_BINDING_ADD));
+		bindButton.addListener(SWT.Selection, new Listener() {
+			public void handleEvent(Event event) {
+				createBinding();
+			}
+		});
+		createClearAction(composite);
+
+		bindingContext = new BindingContext();
+		bindingContext.addPropertyChangeListener(new PropertyChangeListener() {
+			public void propertyChange(PropertyChangeEvent evt) {
+				bindButton.setEnabled(bindingContext.isValid());
+			}
+		});
+
+		observeModelGroup = new ObserveModelGroup(bindingContext, null);
+		Composite modelsGroup = observeModelGroup.createGroup(composite, SWT.INHERIT_FORCE);
+		GridData layoutData = new GridData(GridData.FILL_HORIZONTAL);
+		layoutData.horizontalSpan = 4;
+		getWidgetFactory().adapt(modelsGroup);
+		modelsGroup.setBackgroundMode(SWT.INHERIT_FORCE);
+		modelsGroup.setLayoutData(layoutData);
+	}
+
+	public void setObserveModel(IObservable observeModel) {
+		if (bindButton != null && !bindButton.isDisposed()) {
+			bindButton.setEnabled(observeModel != null);
+		}
+	}
+
+	protected void createBinding() {
+		if (editPart == null || editPart.getWidget() == null) {
+			return;
+		}
+		BindingInfo bindingInfo = new BindingInfo(bindingContext);
+		Command bound = bindingInfo.bindWithCommand();
+		editPart.getViewer().getEditDomain().getCommandStack().execute(bound);
+		if (createdBindings == null) {
+			createdBindings = new ArrayList<BindingInfo>();
+		}
+		createdBindings.add(bindingInfo);
+	}
+
+	protected void createClearAction(Composite parent) {
+		ToolBar toolBar = new ToolBar(parent, SWT.FLAT);
+		toolBar.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WHITE));
+		ToolItem clearAction = new ToolItem(toolBar, SWT.PUSH);
+		clearAction.setImage(ImageShop.get(ImageShop.IMG_CLEAR_FILTER));
+		clearAction.setToolTipText("Clear setting values.");
+		clearAction.addListener(SWT.Selection, new Listener() {
+			public void handleEvent(Event event) {
+				deleteBinding();
+			}
+		});
+	}
+
+	protected void deleteBinding() {
+		if (createdBindings == null) {
+			return;
+		}
+		CompoundCommand commands = new CompoundCommand();
+		for (BindingInfo binding : createdBindings) {
+			commands.add(binding.deleteWithCommand());
+		}
+		editPart.getViewer().getEditDomain().getCommandStack().execute(commands);
+	}
+
+	private EditPart getRoot(EditPart child) {
+		if (child == null) {
+			return null;
+		}
+		if (child instanceof WidgetEditPart && ((WidgetEditPart) child).isRoot()) {
+			return child;
+		}
+		return getRoot(child.getParent());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.views.properties.tabbed.AbstractPropertySection#refresh()
+	 */
+	public void refresh() {
+		if (editPart == null || propertiesComboViewer == null || observeModelGroup == null) {
+			return;
+		}
+		if (!isNeedToRefresh()) {
+			return;
+		}
+		setNeedToRefresh(false);
+		Widget widget = editPart.getWidget();
+		if (widget == null || widget.isDisposed()) {
+			return;
+		}
+		Observable observable = ObservableUtil.getObservable(widget);
+		bindingContext.setTarget(observable);
+		propertiesComboViewer.setInput(observable);
+
+		EditPart root = getRoot(editPart);
+		observeModelGroup.setRootEditPart(root);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.views.properties.tabbed.AbstractPropertySection#setInput(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
+	 */
+	public void setInput(IWorkbenchPart part, ISelection selection) {
+		super.setInput(part, selection);
+		Object object = ((IStructuredSelection) selection).getFirstElement();
+		if (object instanceof WidgetEditPart) {
+			this.editPart = (WidgetEditPart) object;
+		}
+		setNeedToRefresh(true);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/FontSection.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/FontSection.java
new file mode 100755
index 0000000..4c004d3
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/FontSection.java
@@ -0,0 +1,176 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
+import org.eclipse.xwt.tools.ui.designer.utils.FontUtil;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class FontSection extends AbstractAttributeSection {
+
+	private CCombo fontFamilyCombo;
+	private CCombo fontSizeCombo;
+	private Button fontBoldButton;
+	private Button fontItalicButton;
+
+	private String fontName;
+	private int height;
+	private int style;
+
+	public FontSection() {
+		initDefaults();
+	}
+
+	private void initDefaults() {
+		try {
+			Font systemFont = Display.getCurrent().getSystemFont();
+			if (systemFont != null) {
+				FontData fd = systemFont.getFontData()[0];
+				fontName = fd.getName();
+				height = fd.getHeight();
+				style = fd.getStyle();
+			}
+		} catch (Exception e) {
+			System.out.println();
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
+	 * AbstractAttributeSection#createSection(org.eclipse.swt.widgets.Composite)
+	 */
+	protected Control createSection(Composite parent) {
+		Composite fontGroup = getWidgetFactory().createComposite(parent);
+		GridLayout layout = new GridLayout(4, false);
+		layout.marginWidth = 1;
+		fontGroup.setLayout(layout);
+
+		fontFamilyCombo = getWidgetFactory().createCCombo(fontGroup,
+				SWT.READ_ONLY);
+		fontFamilyCombo.setItems(FontUtil.getFontNames());
+		fontFamilyCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		fontFamilyCombo.addListener(SWT.Selection, this);
+
+		fontSizeCombo = getWidgetFactory().createCCombo(fontGroup,
+				SWT.READ_ONLY);
+		fontSizeCombo.setItems(FontUtil.getFontSizes());
+		fontSizeCombo.addListener(SWT.Selection, this);
+
+		fontBoldButton = getWidgetFactory().createButton(fontGroup, "",
+				SWT.TOGGLE);
+		fontBoldButton.setImage(ImageShop.get(ImageShop.IMG_BOLD));
+		fontBoldButton.setToolTipText("font bold");
+		fontBoldButton.addListener(SWT.Selection, this);
+
+		fontItalicButton = getWidgetFactory().createButton(fontGroup, "",
+				SWT.TOGGLE);
+		fontItalicButton.setImage(ImageShop.get(ImageShop.IMG_ITALIC));
+		fontItalicButton.setToolTipText("font italic");
+		fontItalicButton.addListener(SWT.Selection, this);
+
+		return fontGroup;
+	}
+
+	public void doRefresh() {
+		FontData fd = FontUtil.getFontData(getValue());
+		if (fd != null) {
+			fontName = fd.getName();
+			height = fd.getHeight();
+			style = fd.getStyle();
+		} else {
+			initDefaults();
+		}
+		if (fontFamilyCombo != null && !fontFamilyCombo.isDisposed()) {
+			fontFamilyCombo.removeListener(SWT.Selection, this);
+			int index = fontFamilyCombo.indexOf(fontName);
+			fontFamilyCombo.select(index);
+			fontFamilyCombo.addListener(SWT.Selection, this);
+		}
+		if (fontSizeCombo != null && !fontSizeCombo.isDisposed()) {
+			fontSizeCombo.removeListener(SWT.Selection, this);
+			int index = fontSizeCombo.indexOf(Integer.toString(height));
+			fontSizeCombo.select(index);
+			fontSizeCombo.addListener(SWT.Selection, this);
+		}
+		if (fontBoldButton != null && !fontBoldButton.isDisposed()) {
+			fontBoldButton.removeListener(SWT.Selection, this);
+			fontBoldButton.setSelection((SWT.BOLD & style) != 0);
+			fontBoldButton.addListener(SWT.Selection, this);
+		}
+		if (fontItalicButton != null && !fontItalicButton.isDisposed()) {
+			fontItalicButton.removeListener(SWT.Selection, this);
+			fontItalicButton.setSelection((SWT.ITALIC & style) != 0);
+			fontItalicButton.addListener(SWT.Selection, this);
+		}
+		super.refresh();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
+	 * AbstractAttributeSection#getNewValue()
+	 */
+	protected String getNewValue(Event event) {
+		Widget widget = event.widget;
+		if (widget == fontFamilyCombo) {
+			fontName = (fontFamilyCombo.getText());
+		} else if (widget == fontSizeCombo) {
+			String text = fontSizeCombo.getText();
+			try {
+				height = Integer.parseInt(text);
+			} catch (NumberFormatException e) {
+			}
+		} else if (widget == fontBoldButton) {
+			if (fontBoldButton.getSelection()) {
+				style |= SWT.BOLD;
+			} else {
+				style ^= SWT.BOLD;
+			}
+		} else if (widget == fontItalicButton) {
+			if (fontItalicButton.getSelection()) {
+				style |= SWT.ITALIC;
+			} else {
+				style ^= SWT.ITALIC;
+			}
+		}
+		return FontUtil.getFontStr(new FontData(fontName, height, style));
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
+	 * AbstractAttributeSection#getAttributeName()
+	 */
+	protected String getAttributeName() {
+		return "font";
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/ForegroundSection.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/ForegroundSection.java
new file mode 100755
index 0000000..5fc2312
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/ForegroundSection.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ForegroundSection extends ColorSection {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.AbstractAttributeSection#getAttributeName()
+	 */
+	protected String getAttributeName() {
+		return "foreground";
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.ColorSection#defaultColor()
+	 */
+	protected String defaultColor() {
+		return "SWT.COLOR_WIDGET_FOREGROUND";
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/ImageSection.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/ImageSection.java
new file mode 100755
index 0000000..a612470
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/ImageSection.java
@@ -0,0 +1,108 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.xwt.tools.ui.designer.dialogs.ImageDialog;
+import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ImageSection extends AbstractAttributeSection {
+
+	private Text imageText;
+	private Button chooseButton;
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
+	 * AbstractAttributeSection#createSection(org.eclipse.swt.widgets.Composite)
+	 */
+	protected Control createSection(Composite parent) {
+		Composite control = getWidgetFactory().createComposite(parent);
+		control.setLayout(new GridLayout(2, false));
+		imageText = getWidgetFactory().createText(control, "",
+				SWT.BORDER | SWT.READ_ONLY);
+		imageText.setBackground(control.getDisplay().getSystemColor(
+				SWT.COLOR_WHITE));
+		imageText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		imageText.addListener(SWT.Modify, this);
+
+		chooseButton = getWidgetFactory().createButton(control, "", SWT.PUSH);
+		chooseButton.setImage(ImageShop.get(ImageShop.IMAGE_OBSERVE_CUSTOM));
+		chooseButton.addListener(SWT.Selection, new Listener() {
+			public void handleEvent(Event event) {
+				chooseImage();
+			}
+		});
+		return control;
+	}
+
+	public void doRefresh() {
+		if (imageText == null || imageText.isDisposed()) {
+			return;
+		}
+		String value = getValue();
+		imageText.removeListener(SWT.Modify, this);
+		imageText.setText(value == null ? "" : value);
+		imageText.addListener(SWT.Modify, this);
+	}
+
+	protected void chooseImage() {
+		IWorkbenchPart part = getPart();
+		Shell shell = part.getSite().getShell();
+		IFile file = (IFile) part.getAdapter(IFile.class);
+		ImageDialog dialog = new ImageDialog(shell, file);
+		if (dialog.open() == Window.OK) {
+			String imagePath = dialog.getImagePath();
+			if (imagePath != null) {
+				imageText.setText(imagePath);
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
+	 * AbstractAttributeSection#getAttributeName()
+	 */
+	protected String getAttributeName() {
+		return "image";
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
+	 * AbstractAttributeSection#getNewValue(org.eclipse.swt.widgets.Event)
+	 */
+	protected String getNewValue(Event event) {
+		return imageText.getText();
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/LayoutDataSection.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/LayoutDataSection.java
new file mode 100755
index 0000000..5f2259b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/LayoutDataSection.java
@@ -0,0 +1,134 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.swt.widgets.ToolItem;
+import org.eclipse.ui.forms.widgets.ExpandableComposite;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutDataType;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
+import org.eclipse.xwt.tools.ui.designer.layouts.pages.AssistancePageFactory;
+import org.eclipse.xwt.tools.ui.designer.layouts.pages.IAssistantPage;
+import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
+import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
+
+/**
+ * @author rui.ban rui.ban@soyatec.com
+ */
+public class LayoutDataSection extends AbstractAttributeSection {
+
+	private IAssistantPage layoutDataPage;
+	private Composite pageArea;
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
+	 * AbstractAttributeSection
+	 * #createControls(org.eclipse.swt.widgets.Composite,
+	 * org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)
+	 */
+	public void createControls(Composite parent,
+			TabbedPropertySheetPage aTabbedPropertySheetPage) {
+		_createControls(parent, aTabbedPropertySheetPage);
+		ExpandableComposite expandable = getWidgetFactory()
+				.createExpandableComposite(
+						parent,
+						ExpandableComposite.TWISTIE
+								| ExpandableComposite.EXPANDED);
+		expandable.setText("Values");
+		expandable.setExpanded(true);
+
+		ToolBar toolBar = new ToolBar(expandable, SWT.FLAT);
+		toolBar.setBackground(parent.getDisplay().getSystemColor(
+				SWT.COLOR_WHITE));
+		ToolItem clearAction = new ToolItem(toolBar, SWT.PUSH);
+		clearAction.setImage(ImageShop.get(ImageShop.IMG_CLEAR_FILTER));
+		clearAction.setToolTipText("Clear setting values.");
+		clearAction.addListener(SWT.Selection, new Listener() {
+			public void handleEvent(Event event) {
+				clearValues();
+			}
+		});
+		expandable.setTextClient(toolBar);
+
+		pageArea = getWidgetFactory().createComposite(expandable);
+		pageArea.setLayout(new FillLayout());
+		expandable.setClient(pageArea);
+		WidgetEditPart editPart = getEditPart();
+		if (editPart != null) {
+			refresh();
+		}
+	}
+
+	protected void clearValues() {
+		if (layoutDataPage != null) {
+			layoutDataPage.performDefault();
+		}
+	}
+
+	public void doRefresh() {
+		LayoutDataType layoutDataType = LayoutsHelper
+				.getLayoutDataType(getEditPart());
+		if (layoutDataType == LayoutDataType.Unknown) {
+			return;
+		}
+		if (layoutDataPage == null) {
+			layoutDataPage = AssistancePageFactory.createPage(layoutDataType);
+			if (layoutDataPage != null) {
+				layoutDataPage.getControl(pageArea);
+				pageArea.layout();
+			}
+		}
+		if (layoutDataPage != null) {
+			layoutDataPage.setEditPart(getEditPart());
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
+	 * AbstractAttributeSection#createSection(org.eclipse.swt.widgets.Composite)
+	 */
+	protected Control createSection(Composite parent) {
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
+	 * AbstractAttributeSection#getAttributeName()
+	 */
+	protected String getAttributeName() {
+		return "layoutData";
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
+	 * AbstractAttributeSection#getNewValue(org.eclipse.swt.widgets.Event)
+	 */
+	protected String getNewValue(Event event) {
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/LayoutSection.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/LayoutSection.java
new file mode 100755
index 0000000..a655f70
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/LayoutSection.java
@@ -0,0 +1,188 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections;
+
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.custom.StackLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.swt.widgets.ToolItem;
+import org.eclipse.ui.forms.widgets.ExpandableComposite;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.xwt.tools.ui.designer.commands.ChangeLayoutCommand;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
+import org.eclipse.xwt.tools.ui.designer.layouts.pages.AssistancePageFactory;
+import org.eclipse.xwt.tools.ui.designer.layouts.pages.IAssistantPage;
+import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
+import org.eclipse.xwt.tools.ui.designer.resources.ImageShop;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class LayoutSection extends AbstractAttributeSection {
+
+	private CCombo layoutCombo;
+	private Composite layoutPage;
+	private StackLayout pageLayout;
+	private Label noneInfoLable;
+
+	private Map<Object, IAssistantPage> pages = AssistancePageFactory
+			.newPages();
+
+	public void createControls(Composite parent,
+			TabbedPropertySheetPage aTabbedPropertySheetPage) {
+		_createControls(parent, aTabbedPropertySheetPage);
+		Composite composite = getWidgetFactory().createComposite(parent);
+		composite.setLayout(new GridLayout(3, false));
+
+		getWidgetFactory().createLabel(composite, "Type:");
+
+		Control control = createSection(composite);
+		control.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+		createClearButton(composite);
+
+		ExpandableComposite expandable = getWidgetFactory()
+				.createExpandableComposite(
+						composite,
+						ExpandableComposite.TWISTIE
+								| ExpandableComposite.EXPANDED);
+		expandable.setText("Values");
+		expandable.setExpanded(true);
+		GridData layoutData = new GridData(GridData.FILL_BOTH);
+		layoutData.horizontalSpan = 3;
+		expandable.setLayoutData(layoutData);
+		ToolBar toolBar = new ToolBar(expandable, SWT.FLAT);
+		toolBar.setBackground(parent.getDisplay().getSystemColor(
+				SWT.COLOR_WHITE));
+		ToolItem clearAction = new ToolItem(toolBar, SWT.PUSH);
+		clearAction.setImage(ImageShop.get(ImageShop.IMG_CLEAR_FILTER));
+		clearAction.setToolTipText("Clear setting values.");
+		clearAction.addListener(SWT.Selection, new Listener() {
+			public void handleEvent(Event event) {
+				clearValues();
+			}
+		});
+		expandable.setTextClient(toolBar);
+
+		layoutPage = getWidgetFactory().createComposite(expandable);
+		expandable.setClient(layoutPage);
+		pageLayout = new StackLayout();
+		layoutPage.setLayout(pageLayout);
+		noneInfoLable = getWidgetFactory().createLabel(layoutPage,
+				"There is no layout values.", SWT.TOP | SWT.CENTER);
+	}
+
+	protected void clearValues() {
+		Object data = pageLayout.topControl.getData();
+		if (data instanceof IAssistantPage) {
+			((IAssistantPage) data).performDefault();
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
+	 * AbstractAttributeSection#createSection(org.eclipse.swt.widgets.Composite)
+	 */
+	protected Control createSection(Composite parent) {
+		layoutCombo = getWidgetFactory().createCCombo(parent, SWT.READ_ONLY);
+		List<LayoutType> layoutsList = LayoutsHelper.layoutsList;
+		String[] items = new String[layoutsList.size()];
+		for (int i = 0; i < layoutsList.size(); i++) {
+			items[i] = layoutsList.get(i).value();
+		}
+		layoutCombo.setItems(items);
+		layoutCombo.addListener(SWT.Selection, this);
+
+		return layoutCombo;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
+	 * AbstractAttributeSection#getAttributeName()
+	 */
+	protected String getAttributeName() {
+		return "layout";
+	}
+
+	public void doRefresh() {
+		if (layoutCombo == null || layoutCombo.isDisposed()) {
+			return;
+		}
+		LayoutType layoutType = LayoutsHelper.getLayoutType(getEditPart());
+		int index = layoutCombo.indexOf(layoutType.value());
+		if (index >= 0 && index != layoutCombo.getSelectionIndex()) {
+			layoutCombo.removeListener(SWT.Selection, this);
+			layoutCombo.select(index);
+			refreshLayoutPage(layoutType);
+			layoutCombo.addListener(SWT.Selection, this);
+		}
+	}
+
+	private void refreshLayoutPage(LayoutType layoutType) {
+		if (layoutPage == null || layoutPage.isDisposed()) {
+			return;
+		}
+		WidgetEditPart editPart = getEditPart();
+		IAssistantPage page = pages.get(layoutType);
+		if (page != null) {
+			pageLayout.topControl = page.getControl(layoutPage);
+			page.setEditPart(editPart);
+		} else {
+			pageLayout.topControl = noneInfoLable;
+		}
+		layoutPage.layout();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
+	 * AbstractAttributeSection#handleEvent(org.eclipse.swt.widgets.Event)
+	 */
+	public void handleEvent(Event event) {
+		WidgetEditPart editPart = getEditPart();
+		if (editPart != null && event.widget == layoutCombo) {
+			String item = layoutCombo.getItem(layoutCombo.getSelectionIndex());
+			LayoutType layoutType = LayoutsHelper.getLayoutType(item);
+			executeCommand(new ChangeLayoutCommand(editPart, layoutType));
+			refreshLayoutPage(layoutType);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.
+	 * AbstractAttributeSection#getNewValue(org.eclipse.swt.widgets.Event)
+	 */
+	protected String getNewValue(Event event) {
+		return null;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/TextSection.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/TextSection.java
new file mode 100755
index 0000000..63a7514
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/TextSection.java
@@ -0,0 +1,165 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.xwt.tools.ui.designer.core.util.DisplayUtil;
+import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
+import org.eclipse.xwt.tools.ui.designer.wizards.ExternalizeStringsWizard;
+import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueEntry;
+import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueModel;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class TextSection extends AbstractAttributeSection {
+	protected TabbedPropertySheetPage tabbedPropertySheetPage;
+	private Text textWidget;
+	// private Button externalizeButton;
+	private Runnable delayRunnable;
+
+	protected void _createControls(Composite parent,
+			TabbedPropertySheetPage aTabbedPropertySheetPage) {
+		super._createControls(parent, aTabbedPropertySheetPage);
+		this.tabbedPropertySheetPage = aTabbedPropertySheetPage;
+	}
+
+	protected Control createSection(Composite parent) {
+		Composite control = getWidgetFactory().createComposite(parent);
+		control.setLayout(new GridLayout(2, false));
+
+		textWidget = getWidgetFactory().createText(control, "", SWT.BORDER);
+		textWidget.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		textWidget.addListener(SWT.Modify, this);
+
+		// externalizeButton = getWidgetFactory().createButton(control, "",
+		// SWT.PUSH);
+		// externalizeButton.setImage(ImageShop
+		// .get(ImageShop.IMAGE_OBSERVE_CUSTOM));
+		// externalizeButton.setToolTipText("Externalize String");
+		// externalizeButton.addListener(SWT.Selection, new Listener() {
+		// public void handleEvent(Event event) {
+		// externalizeText();
+		// }
+		// });
+		return control;
+	}
+
+	private void externalizeText() {
+		if (getValue() != null) {
+			XWTDesigner designer = (XWTDesigner) getPart();
+			TextValueModel textValueEntrys = new TextValueModel();
+			textValueEntrys
+					.add(new TextValueEntry(textWidget.getText(), "" + 0));
+			ExternalizeStringsWizard wizard = new ExternalizeStringsWizard(
+					textValueEntrys, designer);
+			wizard.init(PlatformUI.getWorkbench(), null);
+			WizardDialog dialog = new WizardDialog(PlatformUI.getWorkbench()
+					.getActiveWorkbenchWindow().getShell(), wizard);
+			dialog.open();
+		} else {
+			String dialogMessage = "No Strings to externalize found.";
+			String[] dialogButtonLabels = { "Ok" };
+			MessageDialog messageDialog = new MessageDialog(PlatformUI
+					.getWorkbench().getActiveWorkbenchWindow().getShell(),
+					"Externalize Strings", null, dialogMessage,
+					MessageDialog.INFORMATION, dialogButtonLabels, 0);
+			messageDialog.open();
+		}
+
+	}
+
+	public void doRefresh() {
+		if (textWidget == null || textWidget.isDisposed()
+				|| textWidget.isFocusControl() || getAttribute() == null) {
+			return;
+		}
+		textWidget.removeListener(SWT.Modify, this);
+		setTextValue(textWidget);
+		textWidget.addListener(SWT.Modify, this);
+		refreshTitleBar();
+	}
+
+	protected String getNewValue(Event event) {
+		if (textWidget == null || textWidget.isDisposed()) {
+			return null;
+		}
+		return textWidget.getText();
+	}
+
+	protected String getAttributeName() {
+		return "text";
+	}
+
+	private void refreshTitleBar() {
+		DisplayUtil.asyncExec(new Runnable() {
+			public void run() {
+				if (tabbedPropertySheetPage != null) {
+					tabbedPropertySheetPage.labelProviderChanged(null);
+				}
+			}
+		});
+	}
+
+	// public void handleEvent(final Event event) {
+	// if (System.currentTimeMillis() - lastEvent < 1000 && !delayed) {
+	// Runnable delayRunnable = new Runnable() {
+	// public void run() {
+	// TextSection.super.handleEvent(event);
+	// refreshTitleBar();
+	// delayed = false;
+	// lastEvent = -1;
+	// }
+	// };
+	// DisplayUtil.timerExec(display, 1000, delayRunnable);
+	// delayed = true;
+	// }
+	// lastEvent = System.currentTimeMillis();
+	// }
+	public void handleEvent(final Event event) {
+		if (!delayed) {
+			if (delayRunnable == null) {
+				delayRunnable = new Runnable() {
+					public void run() {
+						long current = System.currentTimeMillis();
+						if (current - lastEvent < 300) {
+							lastEvent = current;
+							DisplayUtil.timerExec(display, 300, delayRunnable);
+							return;
+						}
+						TextSection.super.handleEvent(event);
+						refreshTitleBar();
+						delayed = false;
+						lastEvent = -1;
+					}
+				};
+			}
+			DisplayUtil.timerExec(display, 300, delayRunnable);
+			delayed = true;
+		}
+		lastEvent = System.currentTimeMillis();
+	}
+
+	private long lastEvent = -1;
+	private boolean delayed = false;
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/BasicFilter.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/BasicFilter.java
new file mode 100755
index 0000000..3f82868
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/BasicFilter.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.filters;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.jface.viewers.IFilter;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public class BasicFilter implements IFilter {
+
+	public boolean select(Object toTest) {
+		XamlNode node = null;
+		if (toTest instanceof XamlNode) {
+			node = (XamlNode) toTest;
+		} else if (toTest instanceof EditPart) {
+			Object model = ((EditPart) toTest).getModel();
+			return select(model);
+		}
+		return select(node);
+	}
+
+	protected boolean select(XamlNode node) {
+		return node != null;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/ConstraintSectionFilter.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/ConstraintSectionFilter.java
new file mode 100755
index 0000000..2924ab4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/ConstraintSectionFilter.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.filters;
+
+import org.eclipse.jface.viewers.IFilter;
+
+/**
+ * @author rui.ban rui.ban@soyatec.com
+ */
+public class ConstraintSectionFilter implements IFilter {
+
+	public boolean select(Object toTest) {
+		// if (toTest instanceof WidgetEditPart) {
+		// LayoutType layoutType = LayoutsHelper.getLayoutType(((WidgetEditPart) toTest).getParent());
+		// if (layoutType == LayoutType.NullLayout) {
+		// return true;
+		// }
+		// }
+		return true;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/LayoutDataSectionFilter.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/LayoutDataSectionFilter.java
new file mode 100755
index 0000000..7f2e314
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/LayoutDataSectionFilter.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.filters;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.jface.viewers.IFilter;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutDataType;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
+import org.eclipse.xwt.tools.ui.designer.layouts.pages.AssistancePageFactory;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class LayoutDataSectionFilter implements IFilter {
+	public boolean select(Object toTest) {
+		if (toTest instanceof EditPart) {
+			LayoutDataType layoutDataType = LayoutsHelper
+					.getLayoutDataType((EditPart) toTest);
+			return AssistancePageFactory.isSupport(layoutDataType);
+		}
+		return false;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/LayoutSectionFilter.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/LayoutSectionFilter.java
new file mode 100755
index 0000000..b967e87
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/LayoutSectionFilter.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.filters;
+
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
+import org.eclipse.xwt.tools.ui.designer.layouts.pages.AssistancePageFactory;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author rui.ban rui.ban@soyatec.com
+ */
+public class LayoutSectionFilter extends BasicFilter {
+
+	public boolean select(XamlNode toTest) {
+		if (!super.select(toTest)) {
+			return false;
+		}
+		LayoutType layoutType = LayoutsHelper.getLayoutType(toTest);
+		return AssistancePageFactory.isSupport(layoutType);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/TextSectionFilter.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/TextSectionFilter.java
new file mode 100755
index 0000000..13bb352
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/tabbed/sections/filters/TextSectionFilter.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.properties.tabbed.sections.filters;
+
+import org.eclipse.xwt.tools.ui.designer.utils.XWTUtility;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author rui.ban rui.ban@soyatec.com
+ */
+public class TextSectionFilter extends BasicFilter {
+
+	protected boolean select(XamlNode node) {
+		if (super.select(node)){
+			return XWTUtility.getProperty(node, "text") != null;
+		}
+		return super.select(node);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/types.properties b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/types.properties
new file mode 100755
index 0000000..a891063
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/properties/types.properties
@@ -0,0 +1,18 @@
+###############################################################################
+# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     Soyatec - initial API and implementation
+###############################################################################
+alignment=LEFT,RIGHT,CENTER,UP,DOWN
+backgroundMode=INHERIT_NONE,INHERIT_DEFAULT,INHERIT_FORCE
+type=HORIZONTAL,VERTICAL
+orientation=LEFT_TO_RIGHT,RIGHT_TO_LEFT
+verticalAlignment=BEGINNING,CENTER,END,FILL
+horizontalAlignment=BEGINNING,CENTER,END,FILL
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/ColorLabelProvider.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/ColorLabelProvider.java
new file mode 100755
index 0000000..49f5499
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/ColorLabelProvider.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.providers;
+
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.xwt.tools.ui.designer.core.util.StringUtil;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ColorLabelProvider extends LabelProvider {
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
+	 */
+	public String getText(Object element) {
+		if (element instanceof Color) {
+			Color color = (Color) element;
+			return StringUtil.format(new Object[] { color.getRed(), color.getGreen(), color.getBlue() });
+		}
+		return super.getText(element);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/ExternalizeStringContentProvider.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/ExternalizeStringContentProvider.java
new file mode 100755
index 0000000..e1282aa
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/ExternalizeStringContentProvider.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.providers;
+
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueModel;
+
+/**
+ * @author xrchen (xiaoru.chen@soyatec.com)
+ */
+public class ExternalizeStringContentProvider implements IStructuredContentProvider {
+
+	private TextValueModel model;
+
+	public Object[] getElements(Object inputElement) {
+		this.model = (TextValueModel) inputElement;
+		return model.elements();
+	}
+
+	public void dispose() {
+
+	}
+
+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/ExternalizeStringLabelProvider.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/ExternalizeStringLabelProvider.java
new file mode 100755
index 0000000..24f6d60
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/ExternalizeStringLabelProvider.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.providers;
+
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueEntry;
+
+/**
+ * @author xrchen (xiaoru.chen@soyatec.com)
+ */
+public class ExternalizeStringLabelProvider implements ITableLabelProvider {
+
+	// the prefix of the key
+	String prefix = "";
+
+	public ExternalizeStringLabelProvider(String prefix) {
+		this.prefix = prefix;
+	}
+
+	public Image getColumnImage(Object element, int columnIndex) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public String getColumnText(Object element, int columnIndex) {
+		TextValueEntry textValueEntry = (TextValueEntry) element;
+		switch (columnIndex) {
+		case 1:
+			return textValueEntry.getValue();
+		case 2:
+			return prefix + textValueEntry.getKey();
+		}
+		return "";
+	}
+
+	public void addListener(ILabelProviderListener listener) {
+		// TODO Auto-generated method stub
+
+	}
+
+	public void dispose() {
+		// TODO Auto-generated method stub
+
+	}
+
+	public boolean isLabelProperty(Object element, String property) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	public void removeListener(ILabelProviderListener listener) {
+		// TODO Auto-generated method stub
+
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/FontLabelProvider.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/FontLabelProvider.java
new file mode 100755
index 0000000..ce1965d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/FontLabelProvider.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.providers;
+
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.xwt.tools.ui.designer.utils.FontUtil;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class FontLabelProvider extends LabelProvider {
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
+	 */
+	public String getText(Object element) {
+		if (element instanceof Font) {
+			FontData[] fontData = ((Font) element).getFontData();
+			if (fontData != null && fontData.length > 0) {
+				return FontUtil.getFontStr(fontData[0]);
+			}
+		}
+		return super.getText(element);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/LabelProviderFactory.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/LabelProviderFactory.java
new file mode 100755
index 0000000..a87083e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/LabelProviderFactory.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.providers;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Layout;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class LabelProviderFactory {
+	private static Map<Class<?>, ILabelProvider> cache = new HashMap<Class<?>, ILabelProvider>();
+
+	public static ILabelProvider getLabelProvider(Class<?> type) {
+		ILabelProvider labelProvider = cache.get(type);
+		if (labelProvider == null) {
+			labelProvider = createLabelProvider(type);
+			cache.put(type, labelProvider);
+		}
+		return labelProvider;
+	}
+
+	private static ILabelProvider createLabelProvider(Class<?> type) {
+		if (Color.class == type) {
+			return new ColorLabelProvider();
+		} else if (Font.class == type) {
+			return new FontLabelProvider();
+		} else if (Rectangle.class == type) {
+			return new RectangleLabelProvider();
+		} else if (Point.class == type) {
+			return new PointLabelProvider();
+		} else if (Layout.class == type) {
+			return new LayoutLabelProvider();
+		}
+		return new LabelProvider() {
+			public String getText(Object element) {
+				if (element.getClass().isArray()) {
+					return "[...]";
+				}
+				return super.getText(element);
+			}
+		};
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/LayoutLabelProvider.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/LayoutLabelProvider.java
new file mode 100755
index 0000000..1dbebed
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/LayoutLabelProvider.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.providers;
+
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.widgets.Layout;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class LayoutLabelProvider extends LabelProvider {
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
+	 */
+	public String getText(Object element) {
+		if (element instanceof Layout) {
+			return LayoutsHelper.getLayoutType(element).value();
+		}
+		return super.getText(element);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/PointLabelProvider.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/PointLabelProvider.java
new file mode 100755
index 0000000..8208d06
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/PointLabelProvider.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.providers;
+
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.xwt.tools.ui.designer.core.util.StringUtil;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class PointLabelProvider extends LabelProvider {
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
+	 */
+	public String getText(Object element) {
+		if (element instanceof Point) {
+			Point p = (Point) element;
+			return StringUtil.format(p);
+		}
+		return super.getText(element);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/RectangleLabelProvider.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/RectangleLabelProvider.java
new file mode 100755
index 0000000..f25be77
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/providers/RectangleLabelProvider.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.providers;
+
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.xwt.tools.ui.designer.core.util.StringUtil;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class RectangleLabelProvider extends LabelProvider {
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
+	 */
+	public String getText(Object element) {
+		if (element instanceof Rectangle) {
+			Rectangle r = (Rectangle) element;
+			return StringUtil.format(r);
+		}
+		return super.getText(element);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/resources/ImageShop.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/resources/ImageShop.java
new file mode 100755
index 0000000..6c006b8
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/resources/ImageShop.java
@@ -0,0 +1,172 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.resources;
+
+import java.util.Collection;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.ImageRegistry;
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.xwt.tools.ui.designer.XWTDesignerPlugin;
+import org.eclipse.xwt.tools.ui.designer.utils.StyleHelper;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ImageShop {
+	private static final String ICON_PATH = "/icons/full";
+	public static final String OBJ16 = ICON_PATH + "/obj16/";
+	public static final String TOOLS = ICON_PATH + "/tools/";
+
+	public static final String IMG_PREVIEW = TOOLS + "preview.png";
+	public static final String IMG_LAYOUT_ASSIST = TOOLS + "layout_assist.gif";
+	public static final String IMG_RESOURCES = TOOLS + "resources.gif";
+	public static final String IMG_ELEMENT = TOOLS + "element.png";
+	public static final String IMG_EVENT = TOOLS + "event.png";
+	public static final String IMG_LISTENER_METHOD = TOOLS + "listener_method.gif";
+
+	public static final String IMG_BINDING = TOOLS + "binding/binding.png";
+	public static final String IMG_BINDING_ADD = TOOLS + "binding/binding_add.png";
+	public static final String IMG_BINDING_DELETE = TOOLS + "binding/binding_delete.png";
+	public static final String IMG_BINDING_REMOVE_ALL = TOOLS + "binding/binding_remove_all.png";
+	public static final String IMG_BINDING_EDIT = TOOLS + "binding/binding_edit.png";
+
+	public static final String IMG_ARRAY = TOOLS + "array.png";
+	public static final String IMG_BOOLEAN = TOOLS + "boolean.png";
+	public static final String IMG_COLLECTION = TOOLS + "collection.png";
+	public static final String IMG_COLOR = TOOLS + "color.png";
+	public static final String IMG_FONT = TOOLS + "font.png";
+	public static final String IMG_IMAGE = TOOLS + "image.png";
+	public static final String IMG_NUMBER = TOOLS + "number.png";
+	public static final String IMG_OBJECT = TOOLS + "object.png";
+	public static final String IMG_STRING = TOOLS + "string.png";
+	public static final String IMG_VIEWER_COLLECTION = TOOLS + "viewer_collection.png";
+	public static final String IMG_VIEWER = TOOLS + "viewer.png";
+	public static final String IMG_CLEAR_FILTER = TOOLS + "clear_filter.gif";
+	public static final String IMG_CLEAR = TOOLS + "clear.gif";
+
+	public static final String IMG_BOLD = TOOLS + "bold.gif";
+	public static final String IMG_ITALIC = TOOLS + "italic.gif";
+	public static final String IMG_IMAGE_EDIT = TOOLS + "image_edit.png";
+	public static final String IMG_BACKGROUND_IMAGE_EDIT = TOOLS + "background_image_edit.png";
+	public static final String IMG_BACKGROUND_FILL_COLOR = TOOLS + "background_fill_color.png";
+	public static final String IMG_FOREGROUND_FILL_COLOR = TOOLS + "foreground_fill_color.png";
+	public static final String IMG_FONT_DELETE = TOOLS + "font_delete.png";
+
+	public static final String IMAGE_OBSERVE_BEANS = TOOLS + "observe/beans.gif";
+	public static final String IMAGE_OBSERVE_EMF = TOOLS + "observe/emf.png";
+	public static final String IMAGE_OBSERVE_OBJECT = TOOLS + "observe/object.gif";
+	public static final String IMAGE_OBSERVE_WIDGETS = TOOLS + "observe/widgets.gif";
+	public static final String IMAGE_OBSERVE_XML = TOOLS + "observe/xml.gif";
+	public static final String IMAGE_OBSERVE_CUSTOM = TOOLS + "observe/custom.png";
+	public static final String IMG_XWT = TOOLS + "xaml.png";
+
+	public static final String IMG_GOTO_DEFINITION = TOOLS + "goto_definition.gif";
+
+	public static Image get(String imageFilePath) {
+		ImageDescriptor imageDesc = getImageDescriptor(imageFilePath);
+		if (imageDesc != null) {
+			return imageDesc.createImage();
+		}
+		return getImageRegistry().get(imageFilePath);
+	}
+
+	public static Image getObj16(String name) {
+		return get(OBJ16 + name + "_obj.gif");
+	}
+
+	public static Image getImageForWidget(Widget widget) {
+		if (widget == null || widget.isDisposed()) {
+			return null;
+		}
+		String name = widget.getClass().getSimpleName().toLowerCase();
+		if ("combo".equals(name)) {
+			name = "choice";
+		} else if ("coolitem".endsWith(name)) {
+			name = "coolbar";
+		} else if ("toolitem".equals(name)) {
+			if (StyleHelper.checkStyle(widget, SWT.PUSH)) {
+				name = "toolitempush";
+			} else if (StyleHelper.checkStyle(widget, SWT.DROP_DOWN)) {
+				name = "toolitemdrop";
+			} else if (StyleHelper.checkStyle(widget, SWT.CHECK)) {
+				name = "toolitemcheck";
+			} else if (StyleHelper.checkStyle(widget, SWT.RADIO)) {
+				name = "toolitemradio";
+			} else if (StyleHelper.checkStyle(widget, SWT.SEPARATOR)) {
+				name = "toolitemseparator";
+			}
+		} else if ("label".equals(name) && StyleHelper.checkStyle(widget, SWT.SEPARATOR)) {
+			name = "separator";
+		} else if ("list".equals(name)) {
+			name = "listbox";
+		} else if ("button".equals(name)) {
+			if (StyleHelper.checkStyle(widget, SWT.RADIO)) {
+				name = "radiobutton";
+			} else if (StyleHelper.checkStyle(widget, SWT.CHECK)) {
+				name = "checkbox";
+			} else if (StyleHelper.checkStyle(widget, SWT.TOGGLE)) {
+				name = "toggledbutton";
+			} else if (StyleHelper.checkStyle(widget, SWT.ARROW)) {
+				name = "radiobutton";
+			}
+		}
+		Image obj16 = getObj16(name);
+		if (obj16 == null) {
+			obj16 = getObj16("composite");
+		}
+		return obj16;
+	}
+
+	public static Image getImageForType(Class<?> type) {
+		if (type == null) {
+			return null;
+		}
+		if (type.isArray()) {
+			return ImageShop.get(ImageShop.IMG_ARRAY);
+		} else if (type == String.class) {
+			return ImageShop.get(ImageShop.IMG_STRING);
+		} else if (type == Color.class) {
+			return ImageShop.get(ImageShop.IMG_COLOR);
+		} else if (type == Font.class) {
+			return ImageShop.get(ImageShop.IMG_FONT);
+		} else if (type == int.class || type == Integer.class || float.class == type || Float.class == type) {
+			return ImageShop.get(ImageShop.IMG_NUMBER);
+		} else if (type == boolean.class || type == Boolean.class) {
+			return ImageShop.get(ImageShop.IMG_BOOLEAN);
+		} else if (Collection.class.isAssignableFrom(type)) {
+			return ImageShop.get(ImageShop.IMG_COLLECTION);
+		} else {
+			String name = type.getSimpleName().toLowerCase();
+			Image image = ImageShop.getObj16(name);
+			if (image != null) {
+				return image;
+			}
+		}
+		return ImageShop.get(ImageShop.IMG_OBJECT);
+	}
+
+	public static ImageRegistry getImageRegistry() {
+		return JFaceResources.getImageRegistry();
+	}
+
+	public static ImageDescriptor getImageDescriptor(String imageFilePath) {
+		return AbstractUIPlugin.imageDescriptorFromPlugin(XWTDesignerPlugin.PLUGIN_ID, imageFilePath);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/resources/Messages.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/resources/Messages.java
new file mode 100755
index 0000000..19bc2d6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/resources/Messages.java
@@ -0,0 +1,91 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.resources;
+
+import org.eclipse.osgi.util.NLS;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class Messages extends NLS {
+
+	private static final String BUNDLE_NAME = "org.eclipse.xwt.tools.ui.designer.resources.messages"; //$NON-NLS-1$
+
+	public static String FillLayoutAssistantPage_MARGIN_HEIGHT_LABEL;
+	public static String FillLayoutAssistantPage_SPACING_GROUP_LABEL;
+	public static String FillLayoutAssistantPage_MARGIN_WIDTH_LABEL;
+	public static String FillLayoutAssistantPage_ORIENTATION_LABEL;
+	public static String FillLayoutAssistantPage_SPACING_LABEL;
+
+	public static String GridDataAssistantPage_ALIGNS_GROUP_LABEL;
+	public static String GridDataAssistantPage_COLUMN_SPAN_LABEL;
+	public static String GridDataAssistantPage_EXCLUDE_LABEL;
+	public static String GridDataAssistantPage_H_GRAB_LABEL;
+	public static String GridDataAssistantPage_H_INDENT_LABEL;
+	public static String GridDataAssistantPage_HEIGHT_LABEL;
+	public static String GridDataAssistantPage_HINTS_GROUP_NAME;
+	public static String GridDataAssistantPage_HORIZONTAL_GROUP_LABEL;
+	public static String GridDataAssistantPage_INDENTS_GROUP_LABEL;
+	public static String GridDataAssistantPage_MIN_HEIGHT_LABEL;
+	public static String GridDataAssistantPage_MIN_WIDTH_LABEL;
+	public static String GridDataAssistantPage_MINIMUM_GROUP_LABEL;
+	public static String GridDataAssistantPage_ROW_SPAN_LABEL;
+	public static String GridDataAssistantPage_SPANNING_GROUP_LABEL;
+	public static String GridDataAssistantPage_V_ALIGN_LABEL;
+	public static String GridDataAssistantPage_V_GRAB_LABEL;
+	public static String GridDataAssistantPage_V_INDENT_LABEL;
+	public static String GridDataAssistantPage_VERTICAL_GROUP_LABEL;
+	public static String GridDataAssistantPage_WIDTH_LABEL;
+
+	public static String GridLayoutAssistantPage_EQUAL_WIDTH_LABEL;
+	public static String GridLayoutAssistantPage_H_SPACING_LABEL;
+	public static String GridLayoutAssistantPage_M_BOTTOM_LABEL;
+	public static String GridLayoutAssistantPage_M_HEIGHT_LABEL;
+	public static String GridLayoutAssistantPage_M_LEFT_LABEL;
+	public static String GridLayoutAssistantPage_M_RIGHT_LABEL;
+	public static String GridLayoutAssistantPage_M_TOP_LABEL;
+	public static String GridLayoutAssistantPage_M_WIDTH_LABEL;
+	public static String GridLayoutAssistantPage_MARGINS_GROUP_LABEL;
+	public static String GridLayoutAssistantPage_MARGINS_SIDES_GROUP_LABEL;
+	public static String GridLayoutAssistantPage_NUM_COLUMNS_LABEL;
+	public static String GridLayoutAssistantPage_SPACING_GROUP_LABEL;
+	public static String GridLayoutAssistantPage_V_SPACING_LABEL;
+
+	public static String RowDataAssistantPage_EXCLUDE_LABEL;
+	public static String RowDataAssistantPage_HEIGHT_LABEL;
+	public static String RowDataAssistantPage_SIZE_GROUP_LABEL;
+	public static String RowDataAssistantPage_WIDTH_LABEL;
+
+	public static String RowLayoutAssistantPage_FILL_LABEL;
+	public static String RowLayoutAssistantPage_JUSTIFY_LABEL;
+	public static String RowLayoutAssistantPage_MARGIN_BOTTOM_LABEL;
+	public static String RowLayoutAssistantPage_MARGIN_HEIGHT_LABEL;
+	public static String RowLayoutAssistantPage_MARGIN_LEFT_LABEL;
+	public static String RowLayoutAssistantPage_MARGIN_RIGHT_LABEL;
+	public static String RowLayoutAssistantPage_MARGIN_SPACING_LABEL;
+	public static String RowLayoutAssistantPage_MARGIN_TOP_LABEL;
+	public static String RowLayoutAssistantPage_MARGIN_WIDTH_LABEL;
+	public static String RowLayoutAssistantPage_MARGINS_GROUP_LABEL;
+	public static String RowLayoutAssistantPage_OPTIONS_NAME;
+	public static String RowLayoutAssistantPage_ORIENTATION_LABEL;
+	public static String RowLayoutAssistantPage_PACK_LABEL;
+	public static String RowLayoutAssistantPage_SPACING_LABEL;
+	public static String RowLayoutAssistantPage_WRAP_LABEL;
+	static {
+		// initialize resource bundle
+		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+	}
+
+	private Messages() {
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/resources/messages.properties b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/resources/messages.properties
new file mode 100755
index 0000000..bc7a667
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/resources/messages.properties
@@ -0,0 +1,72 @@
+###############################################################################
+# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     Soyatec - initial API and implementation
+###############################################################################
+FillLayoutAssistantPage_MARGIN_HEIGHT_LABEL=Margin Height:
+FillLayoutAssistantPage_SPACING_GROUP_LABEL=Margin && Spacing
+FillLayoutAssistantPage_MARGIN_WIDTH_LABEL=Margin Width:
+FillLayoutAssistantPage_ORIENTATION_LABEL=Orientation
+FillLayoutAssistantPage_SPACING_LABEL=Spacing:
+
+GridDataAssistantPage_ALIGNS_GROUP_LABEL=Alignment
+GridDataAssistantPage_COLUMN_SPAN_LABEL=Column Span:
+GridDataAssistantPage_EXCLUDE_LABEL=Exclude
+GridDataAssistantPage_H_GRAB_LABEL=Grab
+GridDataAssistantPage_H_INDENT_LABEL=horizontal Indent:
+GridDataAssistantPage_HEIGHT_LABEL=Height
+GridDataAssistantPage_HINTS_GROUP_NAME=Hints
+GridDataAssistantPage_HORIZONTAL_GROUP_LABEL=Horizontal
+GridDataAssistantPage_INDENTS_GROUP_LABEL=Indents
+GridDataAssistantPage_MIN_HEIGHT_LABEL=Height:
+GridDataAssistantPage_MIN_WIDTH_LABEL=Width:
+GridDataAssistantPage_MINIMUM_GROUP_LABEL=Minimum
+GridDataAssistantPage_ROW_SPAN_LABEL=Row Span:
+GridDataAssistantPage_SPANNING_GROUP_LABEL=Spanning
+GridDataAssistantPage_V_ALIGN_LABEL=verticalAlignment
+GridDataAssistantPage_V_GRAB_LABEL=Grab
+GridDataAssistantPage_V_INDENT_LABEL=vertical Indent:
+GridDataAssistantPage_VERTICAL_GROUP_LABEL=Vertical
+GridDataAssistantPage_WIDTH_LABEL=Width
+
+GridLayoutAssistantPage_EQUAL_WIDTH_LABEL=Make columns equal width
+GridLayoutAssistantPage_H_SPACING_LABEL=Horizontal Spacing:
+GridLayoutAssistantPage_M_BOTTOM_LABEL=Bottom:
+GridLayoutAssistantPage_M_HEIGHT_LABEL=Margin Height:
+GridLayoutAssistantPage_M_LEFT_LABEL=Left:
+GridLayoutAssistantPage_M_RIGHT_LABEL=Right:
+GridLayoutAssistantPage_M_TOP_LABEL=Top:
+GridLayoutAssistantPage_M_WIDTH_LABEL=Margin Width:
+GridLayoutAssistantPage_MARGINS_GROUP_LABEL=Margins
+GridLayoutAssistantPage_MARGINS_SIDES_GROUP_LABEL=Margins for sides
+GridLayoutAssistantPage_NUM_COLUMNS_LABEL=Number of columns
+GridLayoutAssistantPage_SPACING_GROUP_LABEL=Spacing
+GridLayoutAssistantPage_V_SPACING_LABEL=Vertical Spacing:
+
+RowDataAssistantPage_EXCLUDE_LABEL=Exclude
+RowDataAssistantPage_HEIGHT_LABEL=Height:
+RowDataAssistantPage_SIZE_GROUP_LABEL=Size
+RowDataAssistantPage_WIDTH_LABEL=Width:
+
+RowLayoutAssistantPage_FILL_LABEL=fill
+RowLayoutAssistantPage_JUSTIFY_LABEL=justify
+RowLayoutAssistantPage_MARGIN_BOTTOM_LABEL=Margin Bottom:
+RowLayoutAssistantPage_MARGIN_HEIGHT_LABEL=Margin Height:
+RowLayoutAssistantPage_MARGIN_LEFT_LABEL=Margin Left:
+RowLayoutAssistantPage_MARGIN_RIGHT_LABEL=Margin Right:
+RowLayoutAssistantPage_MARGIN_SPACING_LABEL=Margin && Spacing
+RowLayoutAssistantPage_MARGIN_TOP_LABEL=Margin Top:
+RowLayoutAssistantPage_MARGIN_WIDTH_LABEL=Margin Width:
+RowLayoutAssistantPage_MARGINS_GROUP_LABEL=Margins for sides
+RowLayoutAssistantPage_OPTIONS_NAME=Options
+RowLayoutAssistantPage_ORIENTATION_LABEL=Orientation
+RowLayoutAssistantPage_PACK_LABEL=pack
+RowLayoutAssistantPage_SPACING_LABEL=Spacing:
+RowLayoutAssistantPage_WRAP_LABEL=wrap
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/swt/CoolBarHelper.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/swt/CoolBarHelper.java
new file mode 100755
index 0000000..17906ea
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/swt/CoolBarHelper.java
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.swt;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.layout.RowData;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.CoolBar;
+import org.eclipse.swt.widgets.CoolItem;
+import org.eclipse.swt.widgets.Layout;
+import org.eclipse.swt.widgets.ToolBar;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class CoolBarHelper {
+
+	public static void layout(CoolBar coolBar) {
+		if (coolBar == null || coolBar.isDisposed()) {
+			return;
+		}
+		Composite composit = coolBar.getParent();
+		Layout layout = composit.getLayout();
+		if (layout instanceof RowLayout) {
+			if (coolBar.getLayoutData() == null) {
+				coolBar.setLayoutData(new RowData(5, 5));
+			}
+		}
+		if (layout instanceof GridLayout) {
+			if (coolBar.getLayoutData() == null || coolBar.getItems().length == 0) {
+				GridData g = new GridData(GridData.FILL_BOTH);
+				coolBar.setLayoutData(g);
+			}
+		}
+		CoolItem[] coolItems = coolBar.getItems();
+		for (int i = 0; i < coolItems.length; i++) {
+			CoolItem coolItem = coolItems[i];
+			// Point oldSize = coolItem.getSize();
+			Control aControl = coolItem.getControl();
+			if (aControl != null) {
+				Point size = aControl.computeSize(SWT.DEFAULT, SWT.DEFAULT);
+				Point coolSize = coolItem.computeSize(size.x, size.y);
+				if (aControl.getSize().x == 0 || aControl.getSize().y == 0) {
+					aControl.setSize(coolSize);
+				}
+				if (aControl instanceof ToolBar) {
+					ToolBar bar = (ToolBar) aControl;
+					if (bar.getItemCount() > 0) {
+						if ((coolBar.getStyle() & SWT.VERTICAL) != 0) {
+							size.y = bar.getItem(0).getBounds().height;
+						} else {
+							size.x = bar.getItem(0).getWidth();
+						}
+					}
+				}
+				coolItem.setMinimumSize(size);
+				// coolItem.setPreferredSize(coolSize);
+				coolItem.setSize(aControl.getSize());
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/CoolBarInitSize.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/CoolBarInitSize.java
new file mode 100755
index 0000000..3ed808d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/CoolBarInitSize.java
@@ -0,0 +1,81 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.utils;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutType;
+import org.eclipse.xwt.tools.ui.designer.layouts.LayoutsHelper;
+import org.eclipse.xwt.tools.ui.designer.parts.CompositeEditPart;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+import org.eclipse.xwt.tools.ui.xaml.tools.XamlCreateTools;
+
+public class CoolBarInitSize {
+	private XamlElement element;
+
+	public CoolBarInitSize(XamlElement element) {
+		// TODO Auto-generated constructor stub
+		this.element = element;
+	}
+
+	public void AddLayoutAttribute(CompositeEditPart editPart) {
+		LayoutType type = LayoutsHelper.getLayoutType(editPart);
+		switch (type) {
+		case GridLayout:
+			GridLayoutAttribute();
+			break;
+		case FillLayout:
+			return;
+		case RowLayout:
+			RowLayoutLayoutAttribute();
+			break;
+		case StackLayout:
+		case FormLayout:
+		default:
+			NullLayoutAttribute();
+
+		}
+	}
+
+	public void GridLayoutAttribute() {
+		// layoutData
+		if (element.getAttribute("layoutData") == null) {
+			XamlAttribute attr = XamlFactory.eINSTANCE.createXamlAttribute();
+			attr.setName("layoutData");
+			XamlElement newelement = XamlFactory.eINSTANCE.createXamlElement();
+			newelement.setName("GridData");
+			XamlCreateTools.addAttribute(newelement, "widthHint", IConstants.XWT_NAMESPACE, "50");
+			XamlCreateTools.addAttribute(newelement, "heightHint", IConstants.XWT_NAMESPACE, "25");
+			attr.getChildNodes().add(element);
+			element.getAttributes().add(attr);
+		}
+
+	}
+
+	public void RowLayoutLayoutAttribute() {
+		if (element.getAttribute("layoutData") == null) {
+			XamlAttribute attr = XamlFactory.eINSTANCE.createXamlAttribute();
+			attr.setName("layoutData");
+			XamlElement newelement = XamlFactory.eINSTANCE.createXamlElement();
+			newelement.setName("RowData");
+			XamlCreateTools.addAttribute(newelement, "width", IConstants.XWT_NAMESPACE, "50");
+			XamlCreateTools.addAttribute(newelement, "height", IConstants.XWT_NAMESPACE, "25");
+			attr.getChildNodes().add(newelement);
+			element.getAttributes().add(attr);
+		}
+	}
+
+	public void NullLayoutAttribute() {
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/FigureUtil.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/FigureUtil.java
new file mode 100755
index 0000000..9d64c2d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/FigureUtil.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.utils;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.GraphicalEditPart;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class FigureUtil {
+
+	public static Point translateToRelative(EditPart parent, Point point) {
+		if (!(parent instanceof GraphicalEditPart)) {
+			return point.getCopy();
+		}
+		IFigure parentFigure = ((GraphicalEditPart) parent).getFigure();
+		parentFigure.translateToRelative(point);
+		Rectangle bounds = parentFigure.getBounds();
+		int x = point.x - bounds.x;
+		int y = point.y - bounds.y;
+		return new Point(x, y);
+	}
+
+	public static Rectangle translateToRelative(EditPart parent,
+			Rectangle rectangle) {
+		Point location = rectangle.getLocation().getCopy();
+		Point p = translateToRelative(parent, location);
+		return new Rectangle(p, rectangle.getSize());
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/FontUtil.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/FontUtil.java
new file mode 100755
index 0000000..f16a1fe
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/FontUtil.java
@@ -0,0 +1,133 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.utils;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.eclipse.xwt.converters.StringToFont;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.xwt.tools.ui.designer.core.util.StringUtil;
+
+/**
+ * @author rui.ban rui.ban@soyatec.com
+ */
+public class FontUtil {
+	private static String[] FONT_NAMES;
+
+	public static final String COMMA = ",";
+
+	/**
+	 * array of font sizes
+	 */
+	protected static final String[] FONT_SIZES = { "8", "9", "10", "11", "12", "14", "16", "18", "20", "22", "24", "26", "28", "36", "48", "72" };
+
+	/**
+	 * @return String array of font names as String objects for the default display.
+	 */
+	static public String[] getFontNames() {
+		if (FONT_NAMES != null)
+			return FONT_NAMES;
+
+		// add the names into a set to get a set of unique names
+		Set<String> stringItems = new HashSet<String>();
+		FontData[] fontDatas = getDisplay().getFontList(null, true);
+		for (int i = 0; i < fontDatas.length; i++) {
+			if (fontDatas[i].getName() != null) {
+				stringItems.add(fontDatas[i].getName());
+			}
+		}
+
+		// add strings into the array
+		String strings[] = new String[stringItems.size()];
+		int i = 0;
+		for (String item : stringItems) {
+			strings[i++] = item;
+		}
+
+		// sort the array
+		Arrays.sort(strings);
+
+		return FONT_NAMES = strings;
+	}
+
+	/**
+	 * @return - array of fomt sizes
+	 */
+	public static final String[] getFontSizes() {
+		return FONT_SIZES;
+	}
+
+	public static Display getDisplay() {
+		Display display = Display.getCurrent();
+		if (display == null && PlatformUI.isWorkbenchRunning()) {
+			display = PlatformUI.getWorkbench().getDisplay();
+		}
+		return display != null ? display : Display.getDefault();
+	}
+
+	public static FontData getFontData(String str) {
+		if (str == null) {
+			return null;
+		}
+		Font font = (Font) StringToFont.instance.convert(str);
+		if (font != null) {
+			return font.getFontData()[0];
+		}
+		FontData fontData = null;
+		if (str != null) {
+			fontData = new FontData();
+			String[] data = str.split(COMMA);
+			if (data.length >= 3) {
+				fontData.setName(data[0]);
+				fontData.setHeight(Integer.valueOf(data[1]));
+				fontData.setStyle(getIntFontStyle(data[2]));
+			}
+		}
+		return fontData;
+	}
+
+	public static int getIntFontStyle(String style) {
+		if ("NORMAL".equals(style)) {
+			return 0;
+		} else if ("BOLD".equals(style)) {
+			return 1;
+		} else if ("ITALIC".equals(style)) {
+			return 2;
+		} else if ("BOLD|ITALIC".equals(style)) {
+			return 3;
+		}
+		return 4;
+	}
+
+	public static String getStringFontStyle(int style) {
+		if (style == 0) {
+			return "NORMAL";
+		} else if (style == 1) {
+			return "BOLD";
+		} else if (style == 2) {
+			return "ITALIC";
+		} else if (style == 3) {
+			return "BOLD|ITALIC";
+		}
+		return "";
+	}
+
+	public static String getFontStr(FontData fontData) {
+		return StringUtil.format(new Object[] { fontData.getName(), fontData.getHeight(), getStringFontStyle(fontData.getStyle()) });
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/OffsetUtil.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/OffsetUtil.java
new file mode 100755
index 0000000..a876d1c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/OffsetUtil.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.utils;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.xwt.tools.ui.designer.core.parts.VisualEditPart;
+import org.eclipse.xwt.tools.ui.designer.core.visuals.IVisualInfo;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class OffsetUtil {
+
+	public static int getXOffset(EditPart part) {
+		int x = 0;
+		if (part != null && part instanceof VisualEditPart) {
+			IVisualInfo visualInfo = ((VisualEditPart) part).getVisualInfo();
+			x = visualInfo.getClientArea().x;
+		}
+		return x;
+	}
+
+	public static int getYOffset(EditPart part) {
+		int y = 0;
+		if (part != null && part instanceof VisualEditPart) {
+			IVisualInfo visualInfo = ((VisualEditPart) part).getVisualInfo();
+			y = visualInfo.getClientArea().y;
+		}
+		return y;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/StyleHelper.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/StyleHelper.java
new file mode 100755
index 0000000..a9ca9d5
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/StyleHelper.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.utils;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.converters.StringToInteger;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class StyleHelper {
+
+	public static boolean isMenuBar(Menu menu) {
+		return checkStyle(menu, SWT.BAR);
+	}
+
+	public static boolean isOnMenubar(MenuItem menuItem) {
+		return isMenuBar(menuItem.getParent());
+	}
+
+	public static boolean checkStyle(Widget widget, int style) {
+		return widget != null && !widget.isDisposed() && checkStyle(widget.getStyle(), style);
+	}
+
+	public static boolean checkStyle(int styles, String style) {
+		if ("SHELL_TRIM".equalsIgnoreCase(style) || "SWT.SHELL_TRIM".equalsIgnoreCase(style)) {
+			return checkStyle(styles, SWT.CLOSE) && checkStyle(styles, SWT.MIN) && checkStyle(styles, SWT.MAX) && checkStyle(styles, SWT.TITLE) && checkStyle(styles, SWT.RESIZE);
+		} else if ("DIALOG_TRIM".equalsIgnoreCase(style) || "SWT.DIALOG_TRIM".equalsIgnoreCase(style)) {
+			return checkStyle(styles, SWT.CLOSE) && checkStyle(styles, SWT.TITLE) && checkStyle(styles, SWT.BORDER);
+		}
+		int value = (Integer) StringToInteger.instance.convert(style);
+		return checkStyle(styles, value);
+	}
+
+	public static boolean checkStyle(int styles, int style) {
+		return (styles & style) != 0;
+	}
+
+	public static boolean checkStyle(XamlNode node, int style) {
+		return checkStyle(getStyle(node), style);
+	}
+
+	public static int getStyle(XamlNode node) {
+		if (node == null) {
+			return 0;
+		}
+		XamlAttribute attribute = node.getAttribute("style", IConstants.XWT_X_NAMESPACE);
+		if (attribute != null && attribute.getValue() != null) {
+			String styleValue = attribute.getValue();
+			IConverter c = XWT.findConvertor(String.class, Integer.class);
+			if (c != null) {
+				return (Integer) c.convert(styleValue);
+			}
+		}
+		return 0;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/XWTModelUtil.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/XWTModelUtil.java
new file mode 100755
index 0000000..bb8e5a6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/XWTModelUtil.java
@@ -0,0 +1,124 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.utils;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.gef.ui.parts.TreeViewer;
+import org.eclipse.jface.viewers.ComboViewer;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class XWTModelUtil {
+
+	/**
+	 * This method is use to get another attribute for given attrName, the name of another attribute should be contained in adapters.
+	 */
+	public static XamlAttribute getAdaptableAttribute(XamlNode parent, String[] adapters, String attrName, String namespace) {
+		XamlAttribute attribute = null;
+		if (adapters == null || adapters.length == 0) {
+			return null;
+		}
+		List<String> copyAdapters = new ArrayList<String>(Arrays.asList(adapters));
+		if (copyAdapters.remove(attrName)) {
+			for (String other : copyAdapters) {
+				attribute = parent.getAttribute(other, namespace);
+				if (attribute != null) {
+					break;
+				}
+			}
+		}
+		return attribute;
+	}
+
+	/**
+	 * This method is use to retrieve another attribute for given attrName, for TableViewer of JFace, both control and table are same objects.
+	 */
+	public static XamlAttribute getAdaptableAttribute(XamlNode parent, String attrName, String namespace) {
+		if (parent == null || attrName == null) {
+			return null;
+		}
+		XamlAttribute attribute = parent.getAttribute(attrName, namespace);
+		if (attribute == null) {
+			IMetaclass metaclass = XWTUtility.getMetaclass(parent);
+			if (metaclass == null) {
+				return null;
+			}
+			Class<?> type = metaclass.getType();
+			if (TableViewer.class.isAssignableFrom(type)) {
+				attribute = getAdaptableAttribute(parent, new String[] { "table", "control" }, attrName, namespace);
+			} else if (ListViewer.class.isAssignableFrom(type)) {
+				attribute = getAdaptableAttribute(parent, new String[] { "list", "control" }, attrName, namespace);
+			} else if (TreeViewer.class.isAssignableFrom(type)) {
+				attribute = getAdaptableAttribute(parent, new String[] { "tree", "control" }, attrName, namespace);
+			} else if (ComboViewer.class.isAssignableFrom(type)) {
+				attribute = getAdaptableAttribute(parent, new String[] { "combo", "control" }, attrName, namespace);
+			}
+		}
+		return attribute;
+	}
+
+	/**
+	 * This method is use to retrieve attribute from parent, for viewers of JFace, some attribute should be set to its control object.
+	 */
+	public static XamlAttribute getChildAttribute(XamlNode parent, String attrName, String namespace) {
+		if (parent == null || attrName == null) {
+			return null;
+		}
+		XamlAttribute attribute = parent.getAttribute(attrName, namespace);
+		if (attribute == null) {
+			IMetaclass metaclass = XWTUtility.getMetaclass(parent);
+			if (metaclass == null) {
+				return null;
+			}
+			Class<?> type = metaclass.getType();
+			if (TableViewer.class.isAssignableFrom(type)) {
+				attribute = getChildAttribute(parent, new String[] { "table", "control" }, attrName, namespace);
+			} else if (ListViewer.class.isAssignableFrom(type)) {
+				attribute = getChildAttribute(parent, new String[] { "list", "control" }, attrName, namespace);
+			} else if (TreeViewer.class.isAssignableFrom(type)) {
+				attribute = getChildAttribute(parent, new String[] { "tree", "control" }, attrName, namespace);
+			} else if (ComboViewer.class.isAssignableFrom(type)) {
+				attribute = getChildAttribute(parent, new String[] { "combo", "control" }, attrName, namespace);
+			}
+		}
+		return attribute;
+	}
+
+	public static XamlAttribute getChildAttribute(XamlNode parent, String[] adapters, String attrName, String namespace) {
+		XamlAttribute attribute = null;
+		if (adapters == null || adapters.length == 0) {
+			return null;
+		}
+		List<String> copyAdapters = new ArrayList<String>(Arrays.asList(adapters));
+		for (String other : copyAdapters) {
+			XamlAttribute adapter = parent.getAttribute(other, namespace);
+			if (adapter == null) {
+				continue;
+			}
+			attribute = adapter.getAttribute(attrName, namespace);
+			if (attribute != null) {
+				break;
+			}
+		}
+		return attribute;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/XWTUtility.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/XWTUtility.java
new file mode 100755
index 0000000..8594783
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/utils/XWTUtility.java
@@ -0,0 +1,79 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.utils;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class XWTUtility {
+
+	private static Map<String, IMetaclass> metaclassCache = new HashMap<String, IMetaclass>();
+
+	public static IMetaclass getMetaclass(XamlNode node) {
+		if (node == null) {
+			return null;
+		}
+		if (node instanceof XamlElement) {
+			XamlElement e = (XamlElement) node;
+			String name = e.getName();
+			String ns = e.getNamespace();
+			return getMetaclass(name, ns);
+		}
+		return null;
+	}
+
+	public static IMetaclass getMetaclass(String tagName, String ns) {
+		if ("#comment".equals(tagName) || "Array".equals(tagName)) {
+			return null;
+		}
+		if (tagName != null && tagName.length() > 1) {
+			tagName = Character.toUpperCase(tagName.charAt(0)) + tagName.substring(1);
+		}
+		String key = tagName + "=&&=" + ns;
+		IMetaclass metaclass = metaclassCache.get(key);
+		if (metaclass == null) {
+			try {
+				metaclass = XWT.getMetaclass(tagName, ns);
+				metaclassCache.put(key, metaclass);
+			} catch (Exception e) {
+			}
+		}
+		return metaclass;
+	}
+
+	public static IProperty getProperty(XamlNode node, String name) {
+		IMetaclass metaclass = getMetaclass(node);
+		if (metaclass == null) {
+			return null;
+		}
+		return metaclass.findProperty(name);
+	}
+
+	public static IProperty getProperty(XamlAttribute attribute) {
+		if (attribute == null) {
+			return null;
+		}
+		XamlNode node = (XamlNode) attribute.eContainer();
+		return getProperty(node, attribute.getName());
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/AccessorConfigureInfo.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/AccessorConfigureInfo.java
new file mode 100755
index 0000000..923ba1a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/AccessorConfigureInfo.java
@@ -0,0 +1,121 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.wizards;
+
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+
+/**
+ * @author xrchen (xiaoru.chen@soyatec.com)
+ */
+public class AccessorConfigureInfo {
+
+	private String classFilePath;
+
+	private String sourceFolder;
+
+	private String sourcePackage;
+
+	private String className;
+
+	private String propertyFilePath;
+
+	private String propertyFolder;
+
+	private String propertyPackage;
+
+	private String propertyName;
+
+	private IPackageFragmentRoot classRoot;
+
+	private IPackageFragmentRoot propertyRoot;
+
+	public String getClassFilePath() {
+		return classFilePath;
+	}
+
+	public void setClassFilePath(String classFilePath) {
+		this.classFilePath = classFilePath;
+	}
+
+	public String getPropertyFilePath() {
+		return propertyFilePath;
+	}
+
+	public void setPropertyFilePath(String propertyFilePath) {
+		this.propertyFilePath = propertyFilePath;
+	}
+
+	public IPackageFragmentRoot getPropertyRoot() {
+		return propertyRoot;
+	}
+
+	public void setPropertyRoot(IPackageFragmentRoot propertyRoot) {
+		this.propertyRoot = propertyRoot;
+	}
+
+	public IPackageFragmentRoot getClassRoot() {
+		return classRoot;
+	}
+
+	public void setClassRoot(IPackageFragmentRoot classRoot) {
+		this.classRoot = classRoot;
+	}
+
+	public String getSourceFolder() {
+		return sourceFolder;
+	}
+
+	public void setSourceFolder(String sourceFolder) {
+		this.sourceFolder = sourceFolder;
+	}
+
+	public String getSourcePackage() {
+		return sourcePackage;
+	}
+
+	public void setSourcePackage(String sourcePackag) {
+		this.sourcePackage = sourcePackag;
+	}
+
+	public String getClassName() {
+		return className;
+	}
+
+	public void setClassName(String className) {
+		this.className = className;
+	}
+
+	public String getPropertyFolder() {
+		return propertyFolder;
+	}
+
+	public void setPropertyFolder(String propertyFolder) {
+		this.propertyFolder = propertyFolder;
+	}
+
+	public String getPropertyPackage() {
+		return propertyPackage;
+	}
+
+	public void setPropertyPackage(String propertyPackag) {
+		this.propertyPackage = propertyPackag;
+	}
+
+	public String getPropertyName() {
+		return propertyName;
+	}
+
+	public void setPropertyName(String propertyName) {
+		this.propertyName = propertyName;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/ExternalizeStringsCommon.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/ExternalizeStringsCommon.java
new file mode 100755
index 0000000..cac3698
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/ExternalizeStringsCommon.java
@@ -0,0 +1,79 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.wizards;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+
+public class ExternalizeStringsCommon {
+	/**
+	 * Get the history nameMap of the class file.
+	 * 
+	 * @param iFile
+	 * @return getHistoryContents
+	 * @throws IOException
+	 */
+	public static StringBuffer getHistoryContents(IFile iFile) throws IOException {
+		StringBuffer fileContent = new StringBuffer();
+		File file = iFile.getLocation().toFile();
+		FileReader fr = new FileReader(file);
+		BufferedReader br = new BufferedReader(fr);
+		String line = br.readLine();
+		while (line != null) {
+			if (line.indexOf("static {") != -1) {
+				break;
+			}
+			fileContent.append(line + "\r");
+			line = br.readLine();
+		}
+		fr.close();
+		br.close();
+		return fileContent;
+	}
+
+	/**
+	 * Get file with path and name.
+	 * 
+	 * @param folderName
+	 * @param fileName
+	 * @return
+	 * @throws CoreException
+	 */
+	public static IFile getIFile(String folderName, String fileName) throws CoreException {
+		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+		IResource resource = root.findMember(new Path(folderName));
+		if (resource == null || !resource.exists() || !(resource instanceof IContainer)) {
+			throwCoreException("Container \"" + folderName + "\" does not exist.");
+		}
+		IContainer container = (IContainer) resource;
+		final IFile file = container.getFile(new Path(fileName));
+		return file;
+	}
+
+	public static void throwCoreException(String message) throws CoreException {
+		IStatus status = new Status(IStatus.ERROR, "org.eclipse.xwt.tools.ui.designer", IStatus.OK, message, null);
+		throw new CoreException(status);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/ExternalizeStringsWizard.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/ExternalizeStringsWizard.java
new file mode 100755
index 0000000..bd706f3
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/ExternalizeStringsWizard.java
@@ -0,0 +1,402 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.wizards;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IncrementalProjectBuilder;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.RootEditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IPackageFragment;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWizard;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.ide.IDE;
+import org.eclipse.xwt.tools.ui.designer.commands.AddNewChildCommand;
+import org.eclipse.xwt.tools.ui.designer.commands.DeleteCommand;
+import org.eclipse.xwt.tools.ui.designer.core.util.DisplayUtil;
+import org.eclipse.xwt.tools.ui.designer.editor.XWTDesigner;
+import org.eclipse.xwt.tools.ui.designer.parts.WidgetEditPart;
+import org.eclipse.xwt.tools.ui.designer.wizards.contents.ProperyContents;
+import org.eclipse.xwt.tools.ui.designer.wizards.contents.SourceContents;
+import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueEntry;
+import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueModel;
+import org.eclipse.xwt.tools.ui.designer.wizards.pages.ExternalizeStringsWizardPage;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author xrchen (xiaoru.chen@soyatec.com)
+ */
+public class ExternalizeStringsWizard extends Wizard implements INewWizard {
+	private ExternalizeStringsWizardPage externalizeStringsWizardPage;
+
+	private ISelection selection;
+
+	private TextValueModel textValueEntrys;
+
+	private XWTDesigner designer;
+
+	private String classPerfixName;
+
+	private String classFilePath;
+
+	private String className;
+
+	private String propertyFilePath;
+
+	private String propertyName;
+
+	private TextValueModel checkedItems;
+
+	private boolean openFlag;
+
+	private CompoundCommand commandList;
+
+	/**
+	 * Constructor for ExternalizeStringsWizard.
+	 */
+	public ExternalizeStringsWizard(TextValueModel textValueEntrys, XWTDesigner designer) {
+		super();
+		this.textValueEntrys = textValueEntrys;
+		this.designer = designer;
+		setNeedsProgressMonitor(true);
+	}
+
+	/**
+	 * Adding the page to the wizard.
+	 */
+	public void addPages() {
+		setWindowTitle("Externalize Strings");
+		externalizeStringsWizardPage = new ExternalizeStringsWizardPage(selection, textValueEntrys);
+		addPage(externalizeStringsWizardPage);
+		getDefaultAccessorContents();
+	}
+
+	private void getDefaultAccessorContents() {
+		IFile inputFile = designer.getFile();
+
+		IContainer container = inputFile.getParent();
+		IJavaElement javaElement =  JavaCore.create(container);
+		IPackageFragmentRoot defaultRoot = null;
+		if (javaElement != null && javaElement.exists()) {
+			IJavaProject javaProject = JavaCore.create(inputFile.getProject());
+			try {
+				IPackageFragmentRoot fragmentRoot[] = javaProject.getAllPackageFragmentRoots();
+				for (int i = 0; i < fragmentRoot.length; i++) {
+					if (fragmentRoot[i].getKind() == IPackageFragmentRoot.K_SOURCE) {
+						defaultRoot = fragmentRoot[i];
+						for (IJavaElement element : defaultRoot.getChildren()) {
+							if (element.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
+								javaElement = element;
+							}
+						}
+						break;
+					}
+				}
+			} catch (JavaModelException e) {
+				e.printStackTrace();
+			}
+		}
+		if (javaElement == null || !(javaElement instanceof IPackageFragment)) {
+			String projectName = inputFile.getProject().getName();
+			externalizeStringsWizardPage.setErrorMessage("The project " + projectName + " has not source folder.");
+			return;
+		}
+
+		externalizeStringsWizardPage.setDefaultRoot(defaultRoot);
+		externalizeStringsWizardPage.setDefaultFolder(defaultRoot.getResource().getFullPath().toString());
+		externalizeStringsWizardPage.setDefaultPackage(javaElement.getElementName());
+	}
+
+	/**
+	 * This method is called when 'Finish' button is pressed in the wizard. We will create an operation and run it using wizard as execution context.
+	 */
+	public boolean performFinish() {
+		classFilePath = externalizeStringsWizardPage.getInfo().getClassFilePath();
+		className = externalizeStringsWizardPage.getInfo().getClassName() + ".java";
+		propertyFilePath = externalizeStringsWizardPage.getInfo().getPropertyFilePath();
+		propertyName = externalizeStringsWizardPage.getInfo().getPropertyName() + ".properties";
+		try {
+			doFinish(new NullProgressMonitor());
+		} catch (CoreException e) {
+			e.printStackTrace();
+		} catch (IOException e) {
+			e.printStackTrace();
+			return false;
+		} catch (returnWizardPage e) {
+			return false;
+		}
+		return true;
+	}
+
+	/**
+	 * Show a dialog to ask user whether to open the created files.
+	 * 
+	 * @throws returnWizardPage
+	 */
+	private void showOpenFileDialog() throws returnWizardPage {
+		String dialogMessage = "Do you want to open " + externalizeStringsWizardPage.getInfo().getClassName() + ".java and " + externalizeStringsWizardPage.getInfo().getPropertyName() + ".properties after finish?";
+		String[] dialogButtonLabels = { "Open", "Cancel" };
+		MessageDialog messageDialog = new MessageDialog(getShell(), "Open created files", null, dialogMessage, MessageDialog.QUESTION, dialogButtonLabels, 1);
+		messageDialog.open();
+		if (messageDialog.getReturnCode() == 0) {
+			openFlag = true;
+		} else if (messageDialog.getReturnCode() == -1) {
+			throw new returnWizardPage();
+		} else {
+			openFlag = false;
+		}
+	}
+
+	/**
+	 * The worker method. It will find the container, create the file if missing or just replace its nameMap, and open the editor on the newly created file.
+	 * 
+	 * @param monitor
+	 * @throws CoreException
+	 * @throws IOException
+	 * @throws returnWizardPage
+	 */
+	private void doFinish(IProgressMonitor monitor) throws CoreException, IOException, returnWizardPage {
+		String propertyPerfixName = propertyName.substring(0, propertyName.length() - 11);
+		classPerfixName = className.substring(0, className.length() - 5);
+		checkedItems = externalizeStringsWizardPage.getCheckedItems();
+
+		showOpenFileDialog();
+
+		// create a property file
+		createFile(propertyFilePath, propertyName, propertyPerfixName, false, monitor);
+		// create a class file
+		createFile(classFilePath, className, propertyPerfixName, true, monitor);
+		// externalize string
+		final Command changTextCmd = changText();
+		DisplayUtil.asyncExec(new Runnable() {
+			public void run() {
+				RootEditPart rootEditPart = designer.getGraphicalViewer().getRootEditPart();
+				rootEditPart.getViewer().getEditDomain().getCommandStack().execute(changTextCmd);
+			}
+		});
+		monitor.worked(1);
+	}
+
+	/**
+	 * Create a file with file path and file name.
+	 * 
+	 * @param containerName
+	 * @param fileName
+	 * @param isClassFile
+	 * @param monitor
+	 * @throws CoreException
+	 * @throws returnWizardPage
+	 */
+	private void createFile(String containerName, String fileName, String propertyfileName, boolean isClassFile, IProgressMonitor monitor) throws CoreException, returnWizardPage {
+		monitor.beginTask("Creating " + fileName, 2);
+		final IFile file = ExternalizeStringsCommon.getIFile(containerName, fileName);
+		try {
+			InputStream stream;
+			if (!isClassFile) {
+				stream = openPropertyContentStream(checkedItems);
+			} else {
+				if (file.exists()) {
+					// Get the nameMap of the exist file.
+					StringBuffer historyContent = ExternalizeStringsCommon
+							.getHistoryContents(file);
+					// Create inputStream with exist files nameMap.
+					stream = openSourceContentStream(checkedItems, containerName, fileName, propertyfileName, historyContent);
+				} else {
+					// Create a new inputStream.
+					stream = openSourceContentStream(checkedItems, containerName, fileName, propertyfileName, null);
+				}
+			}
+			if (file.exists()) {
+				if (isClassFile) {
+					file.setContents(stream, true, true, monitor);
+				} else {
+					file.appendContents(stream, true, true, monitor);
+				}
+			} else {
+				file.create(stream, true, monitor);
+			}
+			stream.close();
+			// build class file
+			IProject project = file.getProject();
+			project.refreshLocal(IResource.DEPTH_INFINITE, monitor);
+			project.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, monitor);
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		if (openFlag) {
+			getShell().getDisplay().asyncExec(new Runnable() {
+				public void run() {
+					IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+					try {
+						IDE.openEditor(page, file, true);
+					} catch (PartInitException e) {
+						e.printStackTrace();
+					}
+				}
+			});
+		}
+	}
+
+	/**
+	 * Initialize source file nameMap with a text.
+	 */
+	private InputStream openSourceContentStream(TextValueModel checkedItems, String containerName, String fileName, String porpertyfileName, StringBuffer historyContent) {
+		IPackageFragmentRoot classRoot = externalizeStringsWizardPage.getInfo().getClassRoot();
+		SourceContents sourceContents = new SourceContents(checkedItems, containerName, propertyFilePath, fileName, porpertyfileName, historyContent, classRoot);
+		String contents = sourceContents.getSourceContents();
+		return new ByteArrayInputStream(contents.getBytes());
+	}
+
+	/**
+	 * Initialize property file nameMap with a text.
+	 */
+	private InputStream openPropertyContentStream(TextValueModel checkedItems) {
+		ProperyContents properyContents = new ProperyContents(checkedItems);
+		String contents = properyContents.getPropertyContents();
+		return new ByteArrayInputStream(contents.getBytes());
+	}
+
+	/**
+	 * We will accept the selection in the workbench to see if we can initialize from it.
+	 * 
+	 * @see IWorkbenchWizard#init(IWorkbench, IStructuredSelection)
+	 */
+	public void init(IWorkbench workbench, IStructuredSelection selection) {
+		this.selection = selection;
+	}
+
+	/**
+	 * Externalize string.
+	 */
+	private Command changText() {
+		commandList = new CompoundCommand();
+		RootEditPart rootEditPart = designer.getGraphicalViewer().getRootEditPart();
+		EditPart contents = rootEditPart.getContents();
+		Object textValueEntry[] = externalizeStringsWizardPage.getCheckedItems().elements();
+		for (int i = 0; i < textValueEntry.length; i++) {
+			if (textValueEntry[i] instanceof TextValueEntry) {
+				String value = ((TextValueEntry) textValueEntry[i]).getValue();
+				String key = ((TextValueEntry) textValueEntry[i]).getKey();
+				externalizeText(contents, value, key, "text");
+				externalizeText(contents, value, key, "toolTipText");
+			}
+		}
+		return commandList.unwrap();
+	}
+
+	/**
+	 * Change the parent editPart text value to the key.
+	 * 
+	 * @param editPart
+	 * @param value
+	 * @param key
+	 */
+	private void externalizeText(EditPart editPart, String value, String key, String type) {
+		if (editPart instanceof WidgetEditPart) {
+			XamlNode node = ((WidgetEditPart) editPart).getCastModel();
+			XamlAttribute attribute = node.getAttribute(type, IConstants.XWT_NAMESPACE);
+			if (attribute != null) {
+				if (value.equals(attribute.getValue())) {
+
+					commandList.add(new DeleteCommand(attribute));
+					attribute = null;
+					if (attribute == null) {
+						attribute = XamlFactory.eINSTANCE.createAttribute(type, IConstants.XWT_NAMESPACE);
+					}
+					attribute.setUseFlatValue(true);
+					XamlElement child = attribute.getChild("Static", IConstants.XWT_X_NAMESPACE);
+					if (child == null) {
+						child = XamlFactory.eINSTANCE.createElement("Static", IConstants.XWT_X_NAMESPACE);
+					}
+					String classPakage = externalizeStringsWizardPage.getInfo().getSourcePackage();
+					XamlElement childElement = child.getChild(classPerfixName + "." + key, IConstants.XAML_CLR_NAMESPACE_PROTO + classPakage);
+					if (childElement != null) {
+						child.getChildNodes().remove(childElement);
+					}
+					childElement = XamlFactory.eINSTANCE.createElement(classPerfixName + "." + key, IConstants.XAML_CLR_NAMESPACE_PROTO + classPakage);
+
+					commandList.add(new AddNewChildCommand(child, childElement));
+					commandList.add(new AddNewChildCommand(attribute, child));
+					if (!node.getAttributes().contains(attribute)) {
+						commandList.add(new AddNewChildCommand(node, attribute));
+					}
+				}
+			}
+			if (editPart.getChildren().size() > 0) {
+				externalizeChildren(editPart, value, key, type);
+			}
+		} else if (editPart.getChildren().size() > 0) {
+			externalizeChildren(editPart, value, key, type);
+		}
+	}
+
+	/**
+	 * Change the editPart's children text value to the key.
+	 * 
+	 * @param editPart
+	 */
+	private void externalizeChildren(EditPart editPart, String value, String key, String type) {
+		List child = editPart.getChildren();
+		for (int i = 0; i < child.size(); i++) {
+			if (child.get(i) instanceof EditPart) {
+				externalizeText((EditPart) child.get(i), value, key, type);
+			}
+		}
+	}
+}
+
+/**
+ * Create a exception to cancel externalize.
+ * 
+ * @author chenxiaoru
+ * 
+ */
+class returnWizardPage extends Exception {
+	/**
+	 * serialVersionUID
+	 */
+	private static final long serialVersionUID = -4274509502796514787L;
+
+	returnWizardPage() {
+		super("Return the wizard page");
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/TableCellModifier.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/TableCellModifier.java
new file mode 100755
index 0000000..d294f0f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/TableCellModifier.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.wizards;
+
+import org.eclipse.jface.viewers.ICellModifier;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueEntry;
+import org.eclipse.xwt.tools.ui.designer.wizards.pages.ExternalizeStringsWizardPage;
+
+/**
+ * @author xrchen (xiaoru.chen@soyatec.com)
+ */
+public class TableCellModifier implements ICellModifier {
+
+	public boolean canModify(Object element, String property) {
+		if (property.equals(ExternalizeStringsWizardPage.KEY_COLUMN_ID)) {
+			return true;
+		} else if (property
+				.equals(ExternalizeStringsWizardPage.VALUE_COLUMN_ID)) {
+			return true;
+		}
+		return false;
+	}
+
+	public Object getValue(Object element, String property) {
+		if (property.equals(ExternalizeStringsWizardPage.KEY_COLUMN_ID)) {
+			if (element instanceof TextValueEntry) {
+				return ((TextValueEntry) element).getKey();
+			}
+		} else if (property
+				.equals(ExternalizeStringsWizardPage.VALUE_COLUMN_ID)) {
+			if (element instanceof TextValueEntry) {
+				return ((TextValueEntry) element).getValue();
+			}
+		}
+		return null;
+	}
+
+	public void modify(Object element, String property, Object value) {
+		// Null indicates that the validator rejected the value.
+		if (value == null)
+			return;
+		if (element instanceof TableItem) {
+			element = ((TableItem) element).getData();
+		}
+		String text = ((String) value).trim();
+		if (property.equals(ExternalizeStringsWizardPage.KEY_COLUMN_ID)) {
+			((TextValueEntry) element).setKey(text);
+		}
+
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/TableViewerListener.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/TableViewerListener.java
new file mode 100755
index 0000000..7bb0e49
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/TableViewerListener.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.wizards;
+
+import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueEntry;
+
+/**
+ * @author xrchen (xiaoru.chen@soyatec.com)
+ */
+public interface TableViewerListener {
+
+	/**
+	 * value changed listener.
+	 */
+	void valueChanged(TextValueEntry textValue);
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/contents/ProperyContents.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/contents/ProperyContents.java
new file mode 100755
index 0000000..2fe8e7d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/contents/ProperyContents.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.wizards.contents;
+
+import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueEntry;
+import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueModel;
+
+/**
+ * @author xrchen (xiaoru.chen@soyatec.com)
+ */
+public class ProperyContents {
+	private TextValueModel checkedItems;
+
+	public ProperyContents(TextValueModel checkedItems) {
+		this.checkedItems = checkedItems;
+	}
+
+	public String getPropertyContents() {
+		StringBuffer contents = new StringBuffer();
+		String value = "";
+		String key = "";
+		int itemsLen = checkedItems.elements().length;
+		for (int i = 0; i < itemsLen; i++) {
+			if (checkedItems.elements()[i] instanceof TextValueEntry) {
+				key = ((TextValueEntry) checkedItems.elements()[i]).getKey();
+				value = ((TextValueEntry) checkedItems.elements()[i]).getValue();
+				contents.append(key + " = " + value + "\r");
+			}
+		}
+		return contents.toString();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/contents/SourceContents.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/contents/SourceContents.java
new file mode 100755
index 0000000..30eb68c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/contents/SourceContents.java
@@ -0,0 +1,111 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.wizards.contents;
+
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueEntry;
+import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueModel;
+
+/**
+ * @author xrchen (xiaoru.chen@soyatec.com)
+ */
+public class SourceContents {
+	private StringBuffer contents = new StringBuffer();
+	private TextValueModel checkedItems;
+	private String path;
+	private String name;
+	private String porpertyFileName;
+	private String propertyFilePath;
+	private StringBuffer historyContent;
+	private String header = "/*******************************************************************************" + "\r" + "* Copyright (c) 2006, 2020 Soyatec (http://www.soyatec.com) and others." + "\r"
+			+ "* All rights reserved. This program and the accompanying materials" + "\r" + "* are made available under the terms of the Eclipse Public License 2.0" + "\r" + "* which accompanies this distribution, and is available at" + "\r"
+			+ "* https://www.eclipse.org/legal/epl-2.0/" + "\r" + "* " + "\r" + "* SPDX-License-Identifier: EPL-2.0" + "\r" + "* " + "\r" + "* Contributors:" + "\r" + "*     Soyatec - initial API and implementation" + "\r"
+			+ "*******************************************************************************/";
+	private String sourceKey;
+
+	public SourceContents(TextValueModel checkedItems, String path, String propertyFilePath, String name, String porpertyFileName, StringBuffer historyContent, IPackageFragmentRoot root) {
+		this.checkedItems = checkedItems;
+		this.path = path;
+		this.propertyFilePath = propertyFilePath;
+		this.porpertyFileName = porpertyFileName;
+		this.historyContent = historyContent;
+		sourceKey = root.getResource().toString();
+		if (name != null) {
+			this.name = name.substring(0, name.length() - 5);
+		}
+	}
+
+	public String getSourceContents() {
+		if (historyContent == null) {
+			String packagePath = getPackagePath(path);
+			String porpertypackagePath = getPackagePath(propertyFilePath);
+			contents.append(header);
+			appendStr("");
+			if (!("").equals(packagePath)) {
+				appendStr("package " + packagePath + ";");
+			}
+			appendStr("");
+			appendStr("import org.eclipse.osgi.util.NLS;");
+			appendStr("");
+			appendStr("public class " + name + " extends NLS {");
+			if (!("").equals(packagePath)) {
+				appendStr("\t" + "private static final String BUNDLE_NAME = \"" + porpertypackagePath + "." + porpertyFileName + "\";");
+			} else {
+				appendStr("\t" + "private static final String BUNDLE_NAME = \"" + porpertyFileName + "\";");
+			}
+			appendStr("");
+		} else {
+			contents.append(historyContent);
+		}
+		appendkeys();
+		appendStr("\t" + "static {");
+		appendStr("\t" + "\t" + "NLS.initializeMessages(BUNDLE_NAME, " + name + ".class);");
+		appendStr("\t" + "}");
+		appendStr("}");
+
+		return contents.toString();
+	}
+
+	private String getPackagePath(String filePath) {
+		String soureKey = sourceKey.substring(sourceKey.lastIndexOf("/") + 1);
+		int index = filePath.indexOf("/" + soureKey + "/");
+		String packagePath = "";
+		if (index != -1) {
+			packagePath = (filePath.substring(index + soureKey.length() + 2)).replace("/", ".");
+		}
+		return packagePath;
+	}
+
+	/**
+	 * append string with ";" and "\r".
+	 * 
+	 * @param str
+	 */
+	private void appendStr(String str) {
+		contents.append(str + "\r");
+	}
+
+	/**
+	 * append key's definition
+	 */
+	private void appendkeys() {
+		int itemsLen = checkedItems.elements().length;
+		for (int i = 0; i < itemsLen; i++) {
+			if (checkedItems.elements()[i] instanceof TextValueEntry) {
+				String key = ((TextValueEntry) checkedItems.elements()[i]).getKey();
+				appendStr("\t" + "public static String " + key + ";");
+				appendStr("");
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/models/TextValueElement.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/models/TextValueElement.java
new file mode 100755
index 0000000..fb9a22e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/models/TextValueElement.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.wizards.models;
+
+/**
+ * @author xrchen (xiaoru.chen@soyatec.com)
+ */
+public abstract class TextValueElement {
+
+	private TextValueElement parent;
+
+	public TextValueElement getParent() {
+		return parent;
+	}
+
+	public void setParent(TextValueElement parent) {
+		this.parent = parent;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/models/TextValueEntry.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/models/TextValueEntry.java
new file mode 100755
index 0000000..67cecd4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/models/TextValueEntry.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.wizards.models;
+
+/**
+ * @author xrchen (xiaoru.chen@soyatec.com)
+ */
+public class TextValueEntry extends TextValueElement {
+	private String value;
+
+	private String key;
+
+	public TextValueEntry(String value, String key) {
+		this.value = value;
+		this.key = key;
+	}
+
+	public String getValue() {
+		return value;
+	}
+
+	public void setValue(String value) {
+		this.value = value;
+	}
+
+	public String getKey() {
+		return key;
+	}
+
+	public void setKey(String key) {
+		this.key = key;
+		((TextValueModel) getParent()).keyChanged(this);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/models/TextValueModel.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/models/TextValueModel.java
new file mode 100755
index 0000000..8efd27b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/models/TextValueModel.java
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.wizards.models;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Vector;
+
+import org.eclipse.xwt.tools.ui.designer.wizards.TableViewerListener;
+
+/**
+ * @author xrchen (xiaoru.chen@soyatec.com)
+ */
+public class TextValueModel extends TextValueElement {
+
+	private Vector content;
+
+	private List listeners = new ArrayList();
+
+	public TextValueModel() {
+		content = new Vector();
+	}
+
+	public void add(Object element) {
+		content.add(element);
+		if (element instanceof TextValueElement) {
+			((TextValueElement) element).setParent(this);
+		}
+	}
+
+	public void remove(Object element) {
+		content.remove(element);
+	}
+
+	public Object[] elements() {
+		return content.toArray();
+	}
+
+	public void addPropertyChangeListener(TableViewerListener listener) {
+		if (!listeners.contains(listener))
+			listeners.add(listener);
+	}
+
+	public void removePropertyChangeListener(TableViewerListener listener) {
+		listeners.remove(listener);
+	}
+
+	/**
+	 * key changed listener.
+	 */
+	void keyChanged(TextValueEntry textValue) {
+		Iterator iter = listeners.iterator();
+		while (iter.hasNext())
+			((TableViewerListener) iter.next()).valueChanged(textValue);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/pages/ExternalizeStringsWizardPage.java b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/pages/ExternalizeStringsWizardPage.java
new file mode 100755
index 0000000..ad20fad
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.designer/src/org/eclipse/xwt/tools/ui/designer/wizards/pages/ExternalizeStringsWizardPage.java
@@ -0,0 +1,539 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.designer.wizards.pages;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.jface.dialogs.IDialogPage;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TextCellEditor;
+import org.eclipse.jface.window.Window;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.xwt.tools.ui.designer.dialogs.AccessorConfigurationDialog;
+import org.eclipse.xwt.tools.ui.designer.providers.ExternalizeStringContentProvider;
+import org.eclipse.xwt.tools.ui.designer.providers.ExternalizeStringLabelProvider;
+import org.eclipse.xwt.tools.ui.designer.wizards.AccessorConfigureInfo;
+import org.eclipse.xwt.tools.ui.designer.wizards.ExternalizeStringsCommon;
+import org.eclipse.xwt.tools.ui.designer.wizards.TableCellModifier;
+import org.eclipse.xwt.tools.ui.designer.wizards.TableViewerListener;
+import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueEntry;
+import org.eclipse.xwt.tools.ui.designer.wizards.models.TextValueModel;
+
+/**
+ * @author xrchen (xiaoru.chen@soyatec.com)
+ */
+public class ExternalizeStringsWizardPage extends WizardPage {
+
+	private TextValueModel checkedItems;
+
+	private TextValueModel textValueEntrys;
+
+	private TableViewer tableViewer;
+
+	private Text commonPrefixText;
+
+	private boolean isChecked = false;
+
+	private int checkCount = 0;
+
+	public static final String CHECK_COLUMN_ID = "";
+
+	public static final String VALUE_COLUMN_ID = "Value";
+
+	public static final String KEY_COLUMN_ID = "Key";
+
+	private String defaultFolder;
+
+	private String defaultPackage;
+
+	private IPackageFragmentRoot defaultRoot;
+
+	private AccessorConfigureInfo info = new AccessorConfigureInfo();
+
+	private Combo combo;
+
+	private ArrayList<String> duplicateKeys;
+
+	// create a PropertyFileListener instance.
+	private final TableViewerListener tableViewerListener = new TableViewerListener() {
+
+		public void valueChanged(TextValueEntry textValueEntry) {
+			tableViewer.refresh(textValueEntry, true);
+			changeContents();
+		}
+
+	};
+
+	/**
+	 * Constructor for ExternalizeStringsWizardPage.
+	 * 
+	 * @param selection
+	 * @param textValueEntrys
+	 */
+	public ExternalizeStringsWizardPage(ISelection selection, TextValueModel textValueEntrys) {
+		super("wizardPage");
+		setTitle("Externalize Strings");
+		setDescription("Externalizes strings from code into a properties file. The auto-generated keys should be adjusted.");
+		this.textValueEntrys = textValueEntrys;
+	}
+
+	/**
+	 * @see IDialogPage#createControl(Composite)
+	 */
+	public void createControl(Composite parent) {
+		Composite container = new Composite(parent, SWT.NONE);
+		GridLayout layout = new GridLayout();
+		layout.numColumns = 2;
+		container.setLayout(layout);
+
+		// Create filed for user to change the prefix of the key
+		Composite childcontainer = new Composite(container, SWT.NONE);
+		layout = new GridLayout();
+		layout.numColumns = 2;
+		childcontainer.setLayout(layout);
+		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
+		gridData.horizontalSpan = 2;
+		childcontainer.setLayoutData(gridData);
+
+		Label commonPrefixLabel = new Label(childcontainer, SWT.NONE);
+		commonPrefixLabel.setText("Enter common prefix for generated keys(optional):");
+
+		commonPrefixText = new Text(childcontainer, SWT.BORDER);
+		gridData = new GridData(GridData.FILL_HORIZONTAL);
+		commonPrefixText.setText("Text_");
+		commonPrefixText.setLayoutData(gridData);
+		commonPrefixText.addModifyListener(new ModifyListener() {
+			public void modifyText(ModifyEvent e) {
+				tableViewer.setLabelProvider(new ExternalizeStringLabelProvider(commonPrefixText.getText()));
+				if (checkCount > 0) {
+					checkPrefix();
+				}
+				changeContents();
+			}
+		});
+		setPageComplete(false);
+
+		// Create the tableViewer of the text value which have not been externalized or been binded.
+		createWidgetObserve(container);
+
+		// Create select all button.
+		createSelectAllButton(container);
+
+		// Create the the configure field.
+		createAccessorConfigure(container);
+
+		setControl(container);
+
+		// Initial the configure files information.
+		String defaultFilePath = "/" + defaultFolder + "/" + defaultPackage.replace(".", "/");
+
+		info.setClassFilePath(defaultFilePath);
+		info.setClassRoot(defaultRoot);
+		info.setSourceFolder(defaultFolder);
+		info.setSourcePackage(defaultPackage);
+		info.setClassName("Messages");
+
+		info.setPropertyFilePath(defaultFilePath);
+		info.setPropertyRoot(defaultRoot);
+		info.setPropertyFolder(defaultFolder);
+		info.setPropertyPackage(defaultPackage);
+		info.setPropertyName("messages");
+	}
+
+	/**
+	 * Create select all button
+	 */
+	private void createSelectAllButton(Composite container) {
+		Button button = new Button(container, SWT.PUSH);
+		button.setText("Select All");
+		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
+		button.setLayoutData(gridData);
+		gridData = new GridData(GridData.FILL_HORIZONTAL);
+		gridData.horizontalSpan = 2;
+		button.setLayoutData(gridData);
+		button.addSelectionListener(new SelectionListener() {
+
+			public void widgetSelected(SelectionEvent e) {
+				int length = tableViewer.getTable().getItems().length;
+				if (checkCount < length) {
+					for (int i = 0; i < length; i++) {
+						tableViewer.getTable().getItem(i).setChecked(true);
+						tableViewer.getTable().getItem(i).setBackground(new Color(Display.getDefault(), 226, 226, 226));
+					}
+					checkCount = length;
+				} else {
+					for (int i = 0; i < length; i++) {
+						tableViewer.getTable().getItem(i).setChecked(false);
+						tableViewer.getTable().getItem(i).setBackground(ColorConstants.listBackground);
+					}
+					checkCount = 0;
+				}
+				changeContents();
+				updatePageComplete(checkCount);
+			}
+
+			public void widgetDefaultSelected(SelectionEvent e) {
+
+			}
+		});
+	}
+
+	private void createAccessorConfigure(Composite container) {
+		combo = new Combo(container, SWT.READ_ONLY);
+		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
+		gridData.widthHint = convertWidthInCharsToPixels(30);
+		combo.setLayoutData(gridData);
+		combo.setItems(new String[] { defaultPackage + ".Messages.java - " + defaultPackage + ".messages.properties" });
+		combo.select(0);
+
+		Button configureButton = new Button(container, SWT.PUSH);
+		configureButton.setText("Configure...");
+		gridData = new GridData();
+		configureButton.setLayoutData(gridData);
+		configureButton.addSelectionListener(new SelectionListener() {
+
+			public void widgetSelected(SelectionEvent e) {
+				AccessorConfigurationDialog dialog = new AccessorConfigurationDialog(getShell(), info);
+				dialog.setTitle("Configure Accessor Class");
+
+				if (dialog.open() == Window.OK) {
+					// Get the information of configure files.
+					info.setClassFilePath(dialog.getClassFilePath());
+					info.setClassRoot(dialog.getclassRoot());
+					info.setSourceFolder(dialog.getSourceFolder());
+					info.setSourcePackage(dialog.getSourcePackage());
+					info.setClassName(dialog.getClassName());
+
+					info.setPropertyFilePath(dialog.getPropertyFilePath());
+					info.setPropertyRoot(dialog.getPropertyRoot());
+					info.setPropertyFolder(dialog.getPropertyFolder());
+					info.setPropertyPackage(dialog.getPropertyPackage());
+					info.setPropertyName(dialog.getPropertyName());
+					combo.setItems(new String[] { dialog.getSourcePackage() + ((dialog.getSourcePackage() == null || "".equals(dialog.getSourcePackage())) ? "" : ".") + dialog.getClassName() + ".java - " + dialog.getPropertyPackage() + "." + dialog.getPropertyName() + ".properties" });
+					combo.select(0);
+					changeContents();
+				}
+			}
+
+			public void widgetDefaultSelected(SelectionEvent e) {
+
+			}
+		});
+	}
+
+	/**
+	 * Create the widget's text values observe container
+	 * 
+	 * @param container
+	 */
+	private void createWidgetObserve(Composite container) {
+		Composite viewContainer = new Composite(container, SWT.BORDER);
+		GridLayout layout = new GridLayout();
+		viewContainer.setLayout(layout);
+		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
+		gridData.horizontalSpan = 2;
+
+		viewContainer.setLayoutData(gridData);
+
+		tableViewer = new TableViewer(viewContainer, SWT.CHECK | SWT.FULL_SELECTION | SWT.V_SCROLL | SWT.H_SCROLL);
+		Table table = tableViewer.getTable();
+		table.setHeaderVisible(true);
+		table.setLinesVisible(true);
+		gridData.heightHint = table.getItemHeight() * 11;
+		table.setLayoutData(gridData);
+		// Create the header of the table
+		String[] colNames = { "", "Value", "Key" };
+		int[] colWidths = { 50, 300, 300 };
+		for (int i = 0; i < colNames.length; i++) {
+			TableColumn tableColumn = new TableColumn(table, SWT.NONE);
+			tableColumn.setText(colNames[i]);
+			tableColumn.setWidth(colWidths[i]);
+		}
+		tableViewer.setLabelProvider(new ExternalizeStringLabelProvider(commonPrefixText.getText()));
+		tableViewer.setContentProvider(new ExternalizeStringContentProvider());
+		tableViewer.setInput(textValueEntrys);
+		tableViewer.getTable().getDisplay().asyncExec(new Runnable() {
+			public void run() {
+				TextValueModel textValueModel = (TextValueModel) tableViewer.getInput();
+				textValueModel.addPropertyChangeListener(tableViewerListener);
+			}
+		});
+		initTableEditor();
+		tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
+
+			public void selectionChanged(SelectionChangedEvent event) {
+				changeContents();
+				updatePageComplete(checkCount);
+			}
+		});
+	}
+
+	/**
+	 * make cell of the tableViewer editable.
+	 */
+	private void initTableEditor() {
+		tableViewer.setColumnProperties(new String[] { CHECK_COLUMN_ID, VALUE_COLUMN_ID, KEY_COLUMN_ID });
+		final TextCellEditor valueEditor = new TextCellEditor(tableViewer.getTable());
+		final TextCellEditor keyEditor = new TextCellEditor(tableViewer.getTable());
+		tableViewer.setCellEditors(new CellEditor[] { null, valueEditor, keyEditor });
+		tableViewer.setCellModifier(new TableCellModifier());
+	}
+
+	public TextValueModel getCheckedItems() {
+		return checkedItems;
+	}
+
+	private void updatePageComplete(int checkNum) {
+		isChecked = false;
+		if (checkNum > 0) {
+			isChecked = true;
+			if (getErrorMessage() != null) {
+				setPageComplete(false);
+			} else {
+				setPageComplete(true);
+			}
+		} else {
+			updateStatus(null);
+		}
+
+	}
+
+	/**
+	 * check the prefix string format.
+	 */
+	private void checkPrefix() {
+		String checkValue = commonPrefixText.getText();
+		if (!"".equals(checkValue)) {
+			String regex = "^([_|a-zA-Z])[_\\w]*$";
+			checkFormat(checkValue, regex);
+		}
+	}
+
+	/**
+	 * check the prefix string format.
+	 */
+	private boolean checkKeyValue(String keyValue) {
+		String regex = "^([_|a-zA-Z])[_\\w]*$";
+		return checkFormat(keyValue, regex);
+	}
+
+	/**
+	 * check string format
+	 * 
+	 * @param value
+	 */
+	private boolean checkFormat(String value, String regex) {
+		Matcher matcher = Pattern.compile(regex).matcher(value);
+		if (!(matcher.find())) {
+			updateStatus("Some selected keys are not valid Java identifiers.");
+			return false;
+		} else {
+			updateStatus(null);
+			return true;
+		}
+	}
+
+	/**
+	 * Update the page's status.
+	 * 
+	 * @param message
+	 */
+	private void updateStatus(String message) {
+		setErrorMessage(message);
+		setPageComplete((message == null) && isChecked);
+	}
+
+	/**
+	 * Check the change nameMap and get the selected values.
+	 */
+	private void changeContents() {
+		int count = tableViewer.getTable().getItemCount();
+		String checkValue = "";
+		checkedItems = new TextValueModel();
+		for (int i = 0; i < count; i++) {
+			if (tableViewer.getTable().getItem(i).getChecked()) {
+				tableViewer.getTable().getItem(i).setBackground(new Color(Display.getDefault(), 226, 226, 226));
+				if (tableViewer.getElementAt(i) instanceof TextValueEntry) {
+					String value = ((TextValueEntry) (tableViewer.getElementAt(i))).getValue();
+					String key = commonPrefixText.getText() + ((TextValueEntry) (tableViewer.getElementAt(i))).getKey();
+					checkedItems.add(new TextValueEntry(value, key));
+				}
+				checkValue = commonPrefixText.getText() + ((TextValueEntry) (tableViewer.getElementAt(i))).getKey();
+				if (!checkKeyValue(checkValue)) {
+					break;
+				}
+			} else {
+				tableViewer.getTable().getItem(i).setBackground(ColorConstants.listBackground);
+			}
+		}
+		checkSameValue();
+		checkDuplicate(info.getClassFilePath(), info.getClassName() + ".java", info.getPropertyFilePath(), info.getPropertyName() + ".properties");
+		checkCount = getCheckNum();
+	}
+
+	/**
+	 * Get the checked number of tableViewer's items.
+	 * 
+	 * @return checkNum
+	 */
+	private int getCheckNum() {
+		int checkNum = 0;
+		for (int i = 0; i < tableViewer.getTable().getItems().length; i++) {
+			if (tableViewer.getTable().getItem(i).getChecked()) {
+				checkNum++;
+			}
+		}
+		return checkNum;
+	}
+
+	/**
+	 * check the selected keys whether have a same key.
+	 */
+	private void checkSameValue() {
+		Object selectedKeys[] = checkedItems.elements();
+		String key;
+		String value;
+		String compareKey;
+		String comparevalue;
+		String errorMsg = "Conflicting entries: Same key but different values";
+		for (int i = 0; i < selectedKeys.length; i++) {
+			if (selectedKeys[i] instanceof TextValueEntry) {
+				key = ((TextValueEntry) selectedKeys[i]).getKey();
+				value = ((TextValueEntry) selectedKeys[i]).getValue();
+				for (int j = i + 1; j < selectedKeys.length; j++) {
+					compareKey = ((TextValueEntry) selectedKeys[j]).getKey();
+					comparevalue = ((TextValueEntry) selectedKeys[j]).getValue();
+					if (compareKey.equals(key) && !comparevalue.equals(value)) {
+						updateStatus(errorMsg);
+						break;
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * Check whether have the same key values in the File.
+	 * 
+	 * @param sourceFolderName
+	 * @param className
+	 * @param propertyFolderName
+	 * @param propertyName
+	 * @throws CoreException
+	 * @throws IOException
+	 * @throws returnWizardPage
+	 */
+	private void checkDuplicate(String sourceFolderName, String className, String propertyFolderName, String propertyName) {
+		try {
+			duplicateKeys = new ArrayList<String>();
+			if (ExternalizeStringsCommon.getIFile(sourceFolderName, className).exists()) {
+				StringBuffer classHistoryContents = ExternalizeStringsCommon.getHistoryContents((ExternalizeStringsCommon.getIFile(sourceFolderName, className)));
+				checkDuplicateKey(checkedItems, classHistoryContents, true);
+			}
+			if (ExternalizeStringsCommon.getIFile(propertyFolderName, propertyName).exists()) {
+				StringBuffer PropertyHistoryContents = ExternalizeStringsCommon.getHistoryContents(ExternalizeStringsCommon.getIFile(propertyFolderName, propertyName));
+				checkDuplicateKey(checkedItems, PropertyHistoryContents, false);
+			}
+
+			if (duplicateKeys.size() > 0) {
+				StringBuffer dialogMessage = new StringBuffer("Key: ");
+				ArrayList<String> keys = new ArrayList<String>();
+				for (int i = 0; i < duplicateKeys.size(); i++) {
+					if (keys.indexOf(duplicateKeys.get(i)) == -1) {
+						keys.add(duplicateKeys.get(i));
+						dialogMessage.append("\"" + duplicateKeys.get(i)
+								+ "\" ");
+					}
+				}
+				dialogMessage.append("already exist in files. Please rename.");
+				updateStatus(dialogMessage.toString());
+			}
+		} catch (CoreException e1) {
+			e1.printStackTrace();
+		} catch (IOException e1) {
+			e1.printStackTrace();
+		}
+
+	}
+
+	/**
+	 * To match the duplicate key values in the File.
+	 * 
+	 * @param checkedItems
+	 * @param historyContent
+	 */
+	private void checkDuplicateKey(TextValueModel checkedItems, StringBuffer historyContent, boolean isClassFile) {
+		String regexSuffix;
+		String regexPrefix;
+		if (isClassFile) {
+			regexPrefix = "[\t ]+";
+			regexSuffix = "([\t ]*[\r ]*[\t ]*)*[;]";
+		} else {
+			regexPrefix = "[\t ]*";
+			regexSuffix = "[\t ]*[=]";
+		}
+		for (int i = 0; i < checkedItems.elements().length; i++) {
+			String key = ((TextValueEntry) checkedItems.elements()[i]).getKey();
+			if (!checkKeyValue(key))
+				return;
+			String regex = regexPrefix + key + regexSuffix;
+
+			Matcher matcher = Pattern.compile(regex).matcher(historyContent.toString());
+			if (matcher.find()) {
+				duplicateKeys.add(key);
+			}
+		}
+	}
+
+	public void setDefaultFolder(String defaultFolder) {
+		this.defaultFolder = defaultFolder;
+	}
+
+	public void setDefaultRoot(IPackageFragmentRoot defaultRoot) {
+		this.defaultRoot = defaultRoot;
+	}
+
+	public void setDefaultPackage(String defaultPackage) {
+		this.defaultPackage = defaultPackage;
+	}
+
+	public AccessorConfigureInfo getInfo() {
+		return info;
+	}
+}
diff --git a/org.eclipse.xwt.tools.ui.editor/.classpath b/plugins/org.eclipse.xwt.tools.ui.editor/.classpath
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/.classpath
rename to plugins/org.eclipse.xwt.tools.ui.editor/.classpath
diff --git a/org.eclipse.xwt.tools.ui.editor/.gitignore b/plugins/org.eclipse.xwt.tools.ui.editor/.gitignore
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/.gitignore
rename to plugins/org.eclipse.xwt.tools.ui.editor/.gitignore
diff --git a/org.eclipse.xwt.tools.ui.editor/.project b/plugins/org.eclipse.xwt.tools.ui.editor/.project
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/.project
rename to plugins/org.eclipse.xwt.tools.ui.editor/.project
diff --git a/org.eclipse.xwt.tools.ui.editor/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.xwt.tools.ui.editor/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/.settings/org.eclipse.jdt.core.prefs
rename to plugins/org.eclipse.xwt.tools.ui.editor/.settings/org.eclipse.jdt.core.prefs
diff --git a/org.eclipse.xwt.tools.ui.editor/META-INF/MANIFEST.MF b/plugins/org.eclipse.xwt.tools.ui.editor/META-INF/MANIFEST.MF
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/META-INF/MANIFEST.MF
rename to plugins/org.eclipse.xwt.tools.ui.editor/META-INF/MANIFEST.MF
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/build.properties b/plugins/org.eclipse.xwt.tools.ui.editor/build.properties
new file mode 100755
index 0000000..16045d5
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/build.properties
@@ -0,0 +1,21 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml,\
+               icons/,\
+               templates/,\
+               tools/,\
+               plugin.properties
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/Ellipse.png b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/Ellipse.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/Ellipse.png
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/Ellipse.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/Line.png b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/Line.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/Line.png
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/Line.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/Path.png b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/Path.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/Path.png
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/Path.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/Polygon.png b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/Polygon.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/Polygon.png
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/Polygon.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/Polyline.png b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/Polyline.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/Polyline.png
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/Polyline.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/Rectangle.png b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/Rectangle.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/Rectangle.png
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/Rectangle.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/browser_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/browser_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/browser_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/browser_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/button_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/button_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/button_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/button_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/canvas_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/canvas_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/canvas_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/canvas_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/cbanner_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/cbanner_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/cbanner_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/cbanner_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/ccombo_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/ccombo_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/ccombo_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/ccombo_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/checkbox_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/checkbox_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/checkbox_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/checkbox_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/choice_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/choice_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/choice_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/choice_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/clabel_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/clabel_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/clabel_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/clabel_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/column_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/column_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/column_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/column_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/comboviewer_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/comboviewer_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/comboviewer_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/comboviewer_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/comboviewer_overlay.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/comboviewer_overlay.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/comboviewer_overlay.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/comboviewer_overlay.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/composite_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/composite_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/composite_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/composite_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/coolbar_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/coolbar_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/coolbar_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/coolbar_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/ctabfolder_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/ctabfolder_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/ctabfolder_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/ctabfolder_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/ctabitem_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/ctabitem_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/ctabitem_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/ctabitem_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/expandable_composite_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/expandable_composite_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/expandable_composite_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/expandable_composite_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/form_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/form_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/form_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/form_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/formtext_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/formtext_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/formtext_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/formtext_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/group_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/group_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/group_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/group_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/imagehyperlink_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/imagehyperlink_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/imagehyperlink_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/imagehyperlink_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/label_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/label_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/label_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/label_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/layout_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/layout_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/layout_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/layout_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/layoutdata_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/layoutdata_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/layoutdata_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/layoutdata_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/layouts.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/layouts.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/layouts.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/layouts.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/link_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/link_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/link_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/link_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/listbox_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/listbox_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/listbox_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/listbox_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/listviewer_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/listviewer_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/listviewer_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/listviewer_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/listviewer_overlay.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/listviewer_overlay.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/listviewer_overlay.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/listviewer_overlay.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/menu_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/menu_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/menu_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/menu_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/menubar_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/menubar_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/menubar_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/menubar_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/menuitem_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/menuitem_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/menuitem_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/menuitem_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/menuseparator_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/menuseparator_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/menuseparator_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/menuseparator_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/no_treeviewer_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/no_treeviewer_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/no_treeviewer_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/no_treeviewer_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/no_treeviewer_obj2.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/no_treeviewer_obj2.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/no_treeviewer_obj2.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/no_treeviewer_obj2.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/progressbar_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/progressbar_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/progressbar_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/progressbar_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/radiobutton_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/radiobutton_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/radiobutton_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/radiobutton_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/rcp_app.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/rcp_app.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/rcp_app.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/rcp_app.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/rcp_editor.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/rcp_editor.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/rcp_editor.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/rcp_editor.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/sashform_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/sashform_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/sashform_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/sashform_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/scale_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/scale_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/scale_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/scale_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/scrolledcomposite_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/scrolledcomposite_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/scrolledcomposite_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/scrolledcomposite_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/scrolledform_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/scrolledform_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/scrolledform_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/scrolledform_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/section_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/section_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/section_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/section_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/separator_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/separator_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/separator_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/separator_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/shell_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/shell_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/shell_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/shell_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/slider_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/slider_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/slider_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/slider_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/spinner_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/spinner_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/spinner_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/spinner_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/styledtext_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/styledtext_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/styledtext_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/styledtext_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/swt_containers.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/swt_containers.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/swt_containers.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/swt_containers.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/swt_controls.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/swt_controls.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/swt_controls.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/swt_controls.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/swt_menus.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/swt_menus.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/swt_menus.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/swt_menus.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/swtbean_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/swtbean_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/swtbean_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/swtbean_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/tabfolder_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/tabfolder_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/tabfolder_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/tabfolder_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/tabitem_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/tabitem_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/tabitem_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/tabitem_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/table_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/table_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/table_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/table_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/tableviewer_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/tableviewer_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/tableviewer_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/tableviewer_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/tableviewer_overlay.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/tableviewer_overlay.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/tableviewer_overlay.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/tableviewer_overlay.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/text_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/text_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/text_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/text_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/textarea_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/textarea_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/textarea_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/textarea_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/toggledbutton_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/toggledbutton_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/toggledbutton_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/toggledbutton_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/toolbar_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/toolbar_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/toolbar_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/toolbar_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/toolitemcheck_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/toolitemcheck_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/toolitemcheck_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/toolitemcheck_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/toolitemdrop_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/toolitemdrop_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/toolitemdrop_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/toolitemdrop_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/toolitempush_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/toolitempush_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/toolitempush_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/toolitempush_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/toolitemradio_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/toolitemradio_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/toolitemradio_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/toolitemradio_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/toolitemseparator_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/toolitemseparator_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/toolitemseparator_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/toolitemseparator_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/tooltip_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/tooltip_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/tooltip_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/tooltip_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/tree_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/tree_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/tree_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/tree_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/treeviewer2_overlay.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/treeviewer2_overlay.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/treeviewer2_overlay.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/treeviewer2_overlay.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/treeviewer_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/treeviewer_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/treeviewer_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/treeviewer_obj.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/treeviewer_overlay.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/treeviewer_overlay.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/treeviewer_overlay.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/treeviewer_overlay.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/viewer_overlay.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/viewer_overlay.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/viewer_overlay.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/viewer_overlay.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.editor/icons/clcl16/viewform_obj.gif b/plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/viewform_obj.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/icons/clcl16/viewform_obj.gif
rename to plugins/org.eclipse.xwt.tools.ui.editor/icons/clcl16/viewform_obj.gif
Binary files differ
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/plugin.properties b/plugins/org.eclipse.xwt.tools.ui.editor/plugin.properties
new file mode 100755
index 0000000..0683fa0
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/plugin.properties
@@ -0,0 +1,31 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+#******************************************************************************
+# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+# 
+# Contributors:
+#     Soyatec - initial API and implementation
+#******************************************************************************/
+editor.name.0 = XWT Editor
+menu.label.0 = Java
+action.label.0 = Generate
+action.label.1 = OpenDefinition
+contextType.name.0 = XWT ContextType
+Bundle-Vendor.0 = Eclipse.org
+Bundle-Name.0 = XWT Editor Plug-in (Incubation)
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/plugin.xml b/plugins/org.eclipse.xwt.tools.ui.editor/plugin.xml
new file mode 100755
index 0000000..af1cbd6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/plugin.xml
Binary files differ
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/pom.xml b/plugins/org.eclipse.xwt.tools.ui.editor/pom.xml
new file mode 100755
index 0000000..ce76c28
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-plugins</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt.tools.ui.editor</artifactId>
+	<version>0.10.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+</project>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTCodeSynchronizer.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTCodeSynchronizer.java
new file mode 100755
index 0000000..f1c4870
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTCodeSynchronizer.java
@@ -0,0 +1,448 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.metadata.IEvent;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.jdt.core.IField;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.IMethod;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
+import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
+import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.xwt.ui.editor.jdt.ASTHelper;
+import org.eclipse.xwt.vex.AbstractCodeSynchronizer;
+import org.eclipse.xwt.vex.dom.DomHelper;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * 
+ * Generate InitializeComponent() method and all named elements;
+ * 
+ * @author jliu
+ * 
+ */
+public class XWTCodeSynchronizer extends AbstractCodeSynchronizer {
+	private static final String INIT_METHOD_NAME = "initializeComponent";
+
+	private IType type;
+
+	public XWTCodeSynchronizer(XWTEditor editor, IType type) {
+		super(editor);
+		this.type = type;
+		if (type == null) {
+			throw new NullPointerException("Java Source Type is Null!");
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.soyatec.eface.tools.ui.editors.jdt.CodeManager#remove(org.w3c.dom .Node)
+	 */
+	public void remove(final IDOMNode node) {
+		final String remove = getNode2name().remove(node);
+		if (remove != null) {
+			Display display = Display.getDefault();
+			if (display != null) {
+				display.syncExec(new Runnable() {
+					public void run() {
+						String fullTypeName = getFullTypeName(node);
+						if (fullTypeName == null) {
+							return;
+						}
+						removeFields(fullTypeName, remove);
+						buildInitialization();
+						ASTHelper.removeUnusedImports(type);
+					}
+				});
+			}
+		}
+	}
+
+	protected String getFullTypeName(IDOMNode node) {
+		String fullName = null;
+		String nodeName = node.getNodeName();
+		// Metaclass metaclass = UPF
+		// .getMetaclass(nodeName, DomHelper.lookupNamespaceURI(node));
+		// if (metaclass != null) {
+		// fullName = metaclass.getType().getName();
+		// }
+		return fullName;
+	}
+
+	public IType getType() {
+		return type;
+	}
+
+	public void setType(IType type) {
+		this.type = type;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.soyatec.eface.tools.ui.editors.jdt.CodeManager#generateFields(java .lang.String, java.lang.String)
+	 */
+	public void generateFields(String fullTypeName, String argName) {
+		ASTHelper.generateNamedFields(type, fullTypeName, argName);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.soyatec.eface.tools.ui.editors.jdt.CodeManager#removeFields(java. lang.String, java.lang.String)
+	 */
+	public void removeFields(String fullTypeName, String argName) {
+		try {
+			IField[] fields = type.getFields();
+			for (IField field : fields) {
+				if (argName.equals(field.getElementName())) {
+					field.delete(false, null);
+				}
+			}
+		} catch (JavaModelException e) {
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.soyatec.eface.tools.ui.editors.jdt.CodeManager#buildInitialization()
+	 */
+	public void buildInitialization() {
+		try {
+			Set<String> forGens = new HashSet<String>(getNode2name().values());
+			IField[] fields = type.getFields();
+			// for (IField field : fields) {
+			// String typeName = Signature.toString(field.getTypeSignature());
+			// Metaclass metaclass = UPF.getMetaclass(typeName);
+			// if (metaclass != null) {
+			// forGens.add(field.getElementName());
+			// }
+			// }
+			ASTHelper.generateInitialization(type, INIT_METHOD_NAME, forGens);
+		} catch (Exception e) {
+		}
+	}
+
+	/**
+	 * TODO
+	 * <p>
+	 * sync XAML with Java
+	 * </p>
+	 * <ul>
+	 * <li>field for each name element</li>
+	 * <li>initializeComponent() with the findElement() to initialize the named Field</li>
+	 * <li>add event handle</li>
+	 * </ul>
+	 */
+	public boolean generateHandles() {
+		StructuredTextViewer textViewer = getEditor().getTextEditor().getTextViewer();
+		int offset = textViewer.getTextWidget().getCaretOffset();
+		IndexedRegion treeNode = ContentAssistUtils.getNodeAt(textViewer, offset);
+
+		Node node = (Node) treeNode;
+		while ((node != null) && (node.getNodeType() == Node.TEXT_NODE) && (node.getParentNode() != null)) {
+			node = node.getParentNode();
+		}
+		IDOMNode xmlnode = (IDOMNode) node;
+		// generate java codes for named elements.
+		updateCodeManager();
+
+		String name = xmlnode.getNodeName();
+		if (name.indexOf(":") > 0) {
+			name = name.substring(name.indexOf(":") + 1);
+		}
+		IMetaclass metaclass = null;
+		try {
+			metaclass = XWT.getMetaclass(name, DomHelper.lookupNamespaceURI(xmlnode));
+		} catch (Exception e1) {
+			return false;
+		}
+		if (metaclass != null) {
+			NamedNodeMap nodeMap = xmlnode.getAttributes();
+			for (int i = nodeMap.getLength() - 1; i >= 0; i--) {
+				IDOMAttr attrNode = (IDOMAttr) nodeMap.item(i);
+				int endOffset = attrNode.getEndOffset();
+				int startOffset = attrNode.getStartOffset();
+				if (offset >= startOffset && offset <= endOffset) {
+					String propertyName = attrNode.getName();
+					IEvent event = metaclass.findEvent(propertyName);
+					if (event == null) {
+						int index = propertyName.indexOf('.');
+						if (index != -1) {
+							String typeName = propertyName.substring(0, index);
+							String eventName = propertyName.substring(index + 1);
+							metaclass = XWT.getMetaclass(typeName, DomHelper.lookupNamespaceURI(attrNode));
+							if (metaclass != null) {
+								event = metaclass.findEvent(eventName);
+							}
+						}
+					}
+					if (event != null) {
+						try {
+							ASTHelper.generateEventHandler(type, Event.class.getName(), attrNode.getValue());
+							return true;
+						} catch (Exception e) {
+							e.printStackTrace();
+						}
+						break;
+					}
+				}
+			}
+		}
+		return false;
+	}
+
+	public boolean openDefinition() {
+		StructuredTextViewer textViewer = getEditor().getTextEditor().getTextViewer();
+		int offset = textViewer.getTextWidget().getCaretOffset();
+		IndexedRegion treeNode = ContentAssistUtils.getNodeAt(textViewer, offset);
+		Node node = (Node) treeNode;
+		while ((node != null) && (node.getNodeType() == Node.TEXT_NODE) && (node.getParentNode() != null)) {
+			node = node.getParentNode();
+		}
+		IDOMNode xmlnode = (IDOMNode) node;
+
+		String name = xmlnode.getNodeName();
+		// Metaclass metaclass = UPF.getMetaclass(name, DomHelper.lookupNamespaceURI(node));
+		// if (metaclass != null) {
+		// NamedNodeMap nodeMap = xmlnode.getAttributes();
+		// int length = nodeMap.getLength();
+		// for (int i = length - 1; i >= 0; i--) {
+		// IDOMAttr attrNode = (IDOMAttr) nodeMap.item(i);
+		// String attrName = attrNode.getName();
+		// String attrValue = attrNode.getValue();
+		// int startOffset = attrNode.getStartOffset();
+		// int endOffset = startOffset + attrName.length()
+		// + attrValue.length() + 3;
+		// // if (offset <= startOffset || offset >= endOffset) {
+		// // }
+		// if (offset >= startOffset && offset < endOffset) {
+		// Event event = metaclass.findEvent(attrName);
+		// if (event != null) {
+		// String[] handlers = null;
+		// IMethod[] methods = null;
+		// try {
+		// methods = type.getMethods();
+		// handlers = new String[methods.length];
+		// for (int j = 0; j < methods.length; j++) {
+		// IMethod method = methods[j];
+		// String methodName = method.getElementName();
+		// if (methodName.equals(attrValue)) {
+		// jumpToJavaMethod(methods, methodName);
+		// return true;
+		// }
+		// handlers[j] = methodName;
+		// }
+		// } catch (JavaModelException e) {
+		// }
+		// }
+		// }
+		// }
+		// }
+		return false;
+	}
+
+	public boolean handleInputChanged(IDocument newInput) {
+		String value = newInput.get();
+		if (checkContent(value)) {
+			return false;
+		}
+
+		StructuredTextViewer textViewer = getEditor().getTextEditor().getTextViewer();
+		int offset = textViewer.getTextWidget().getCaretOffset();
+		IndexedRegion treeNode = ContentAssistUtils.getNodeAt(textViewer, offset);
+		Node node = (Node) treeNode;
+		while ((node != null) && (node.getNodeType() == Node.TEXT_NODE) && (node.getParentNode() != null)) {
+			node = node.getParentNode();
+		}
+		IDOMNode xmlnode = (IDOMNode) node;
+
+		String name = xmlnode.getNodeName();
+		// Metaclass metaclass = UPF.getMetaclass(name, DomHelper.lookupNamespaceURI(xmlnode));
+		// if (metaclass != null) {
+		// NamedNodeMap nodeMap = xmlnode.getAttributes();
+		// int length = nodeMap.getLength();
+		// if (length == 0) {
+		// // remove
+		// update(xmlnode);
+		// }
+		// for (int i = length - 1; i >= 0; i--) {
+		// IDOMAttr attrNode = (IDOMAttr) nodeMap.item(i);
+		// String attrName = attrNode.getName();
+		// String attrValue = attrNode.getValue();
+		// int startOffset = attrNode.getStartOffset();
+		// int endOffset = startOffset + attrName.length()
+		// + attrValue.length() + 3;
+		// // if (offset <= startOffset || offset >= endOffset) {
+		// // }
+		// if (offset >= startOffset && offset < endOffset) {
+		// final Node genNode = xmlnode;
+		// Display.getDefault().syncExec(new Runnable() {
+		// public void run() {
+		// update((IDOMNode) genNode);
+		// }
+		// });
+		//
+		// Event event = metaclass.findEvent(attrName);
+		// if (event != null) {
+		// String[] handlers = null;
+		// IMethod[] methods = null;
+		// try {
+		// methods = type.getMethods();
+		// handlers = new String[methods.length];
+		// for (int j = 0; j < methods.length; j++) {
+		// IMethod method = methods[j];
+		// String methodName = method.getElementName();
+		// if (methodName.equals(attrValue)) {
+		// return true;
+		// }
+		// handlers[j] = methodName;
+		// }
+		// } catch (JavaModelException e) {
+		// e.printStackTrace();
+		// }
+		//
+		// Display display = Display.getDefault();
+		// String title = "New or rename handler";
+		// EventHandlerDialog eventHandlerDialog = new EventHandlerDialog(
+		// textViewer, getOldAttrValue(), attrValue,
+		// handlers);
+		// StyledText styledText = textViewer.getTextWidget();
+		// Point localLocation = styledText.getLocationAtOffset(offset);
+		//						
+		// eventHandlerDialog.run(styledText.getShell(), title, styledText.toDisplay(localLocation));
+		// EventHandlerDialog.Operation operation = eventHandlerDialog
+		// .getOperation();
+		// String inputHandler = eventHandlerDialog
+		// .getInputHandler();
+		// String argumentType = event.getType().getType()
+		// .getName();
+		// IProgressMonitor monitor = getProgressMonitor();
+		// if (operation == EventHandlerDialog.Operation.New) {
+		// attrNode.setValue(inputHandler);
+		// try {
+		// ASTHelper.generateEventHandler(type,
+		// argumentType, inputHandler);
+		// } catch (Exception e) {
+		// e.printStackTrace();
+		// }
+		// } else if (operation == EventHandlerDialog.Operation.Rename) {
+		// IMethod method = findMethod(methods,
+		// getOldAttrValue());
+		// modifyAllRelativeHandlerName(textViewer, 0,
+		// inputHandler, getOldAttrValue());
+		// attrNode.setValue(inputHandler);
+		// if (method != null) {
+		// try {
+		// method.rename(inputHandler, true, monitor);
+		// } catch (JavaModelException e) {
+		// e.printStackTrace();
+		// }
+		// } else {
+		// try {
+		// ASTHelper.generateEventHandler(type,
+		// argumentType, inputHandler);
+		// } catch (Exception e) {
+		// e.printStackTrace();
+		// }
+		// }
+		// } else if (operation == EventHandlerDialog.Operation.Select) {
+		// attrNode.setValue(inputHandler);
+		// } else if (operation == EventHandlerDialog.Operation.Cancel) {
+		// }
+		// if (operation != EventHandlerDialog.Operation.Cancel) {
+		// jumpToJavaMethod(methods, inputHandler);
+		// }
+		// setCacheContent(updateCacheContent(newInput));
+		// return false;
+		// }
+		// }
+		// }
+		// }
+		return true;
+	}
+
+	private void jumpToJavaMethod(IMethod[] methods, String methodName) {
+		IJavaElement method = findMethod(methods, methodName);
+		CompilationUnitEditor javaEditor = ((XWTEditor) getEditor()).getJavaEditor();
+		if (method != null) {
+			javaEditor.setSelection(method);
+		}
+		getEditor().setActiveEditor(javaEditor);
+	}
+
+	private IMethod findMethod(IMethod[] methods, String methodName) {
+		for (int i = 0; i < methods.length; i++) {
+			IMethod method = methods[i];
+			if (method.getElementName().equals(methodName))
+				return method;
+		}
+		return null;
+	}
+
+	private void modifyAllRelativeHandlerName(StructuredTextViewer textViewer, int offset, String inputHandler, String oldAttrValue) {
+		IndexedRegion treeNode = ContentAssistUtils.getNodeAt(textViewer, offset);
+		Node node = (Node) treeNode;
+		modifyHandlerName(inputHandler, node, oldAttrValue);
+	}
+
+	private void modifyHandlerName(String inputHandler, Node node, String oldAttrValue) {
+		while ((node != null) && (node.getNodeType() == Node.TEXT_NODE) && (node.getParentNode() != null)) {
+			node = node.getParentNode();
+		}
+		String name = node.getNodeName();
+		if (node.getNodeType() == Node.ELEMENT_NODE) {
+			// Metaclass metaclass = UPF
+			// .getMetaclass(name, DomHelper.lookupNamespaceURI(node));
+			// if (metaclass != null) {
+			// NamedNodeMap nodeMap = node.getAttributes();
+			// for (int j = nodeMap.getLength() - 1; j >= 0; j--) {
+			// IDOMAttr attrNode = (IDOMAttr) nodeMap.item(j);
+			// String attrName = attrNode.getName();
+			// String attrValue = attrNode.getValue();
+			// Event event = metaclass.findEvent(attrName);
+			// if (event != null) {
+			// if (attrValue.equals(oldAttrValue)) {
+			// attrNode.setNodeValue(inputHandler);
+			// }
+			// }
+			// }
+			// }
+		}
+		NodeList nodes = node.getChildNodes();
+		int length = nodes.getLength();
+		for (int i = 0; i < length; i++) {
+			Node childNode = nodes.item(i);
+			if (childNode.getNodeType() == Node.ELEMENT_NODE) {
+				modifyHandlerName(inputHandler, childNode, oldAttrValue);
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTContentAssistProcessor.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTContentAssistProcessor.java
new file mode 100755
index 0000000..115adb9
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTContentAssistProcessor.java
@@ -0,0 +1,992 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.xwt.IEventConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTMaps;
+import org.eclipse.xwt.internal.utils.UserData;
+import org.eclipse.xwt.javabean.metadata.Metaclass;
+import org.eclipse.xwt.metadata.IEvent;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.xwt.utils.NamedColorsUtil;
+import org.eclipse.xwt.utils.ResourceManager;
+import org.eclipse.jdt.core.IMethod;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.internal.core.JavaProject;
+import org.eclipse.jdt.internal.ui.JavaPluginImages;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.jface.text.contentassist.ICompletionProposal;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText;
+import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
+import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
+import org.eclipse.wst.xml.ui.internal.contentassist.AbstractContentAssistProcessor;
+import org.eclipse.wst.xml.ui.internal.contentassist.ContentAssistRequest;
+import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImages;
+import org.eclipse.wst.xml.ui.internal.preferences.XMLUIPreferenceNames;
+import org.eclipse.wst.xml.ui.internal.templates.TemplateContextTypeIdsXML;
+import org.eclipse.xwt.ui.utils.ImageManager;
+import org.eclipse.xwt.vex.contentassist.SelectionCompletionProposal;
+import org.eclipse.xwt.vex.contentassist.VEXTemplateCompletionProcessor;
+import org.eclipse.xwt.vex.dom.DomHelper;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+public class XWTContentAssistProcessor extends AbstractContentAssistProcessor
+		implements IPropertyChangeListener {
+	static final String HANDLER_PREFIX = "on";
+	static SelectionCompletionProposal[] booleanProposals;
+	static SelectionCompletionProposal[] colorsProposals;
+	static SelectionCompletionProposal[] stylesProposals;
+	static SelectionCompletionProposal[] acceleratorsProposals;
+
+	protected IPreferenceStore fPreferenceStore = null;
+	protected IResource fResource = null;
+	private VEXTemplateCompletionProcessor fTemplateProcessor = null;
+	private List<String> fTemplateContexts = new ArrayList<String>();
+
+	protected Comparator<ICompletionProposal> comparator = new Comparator<ICompletionProposal>() {
+
+		public int compare(ICompletionProposal o1, ICompletionProposal o2) {
+			return o1.getDisplayString().compareTo(o2.getDisplayString());
+		}
+	};
+
+	static SelectionCompletionProposal[] getBooleanProposals() {
+		if (booleanProposals == null) {
+			String[] values = new String[] { "True", "False" };
+			Image image = ImageManager
+					.get(XMLEditorPluginImages.IMG_OBJ_ATTRIBUTE);
+			booleanProposals = new SelectionCompletionProposal[values.length];
+			for (int j = 0; j < values.length; j++) {
+				String pattern = "\"" + values[j] + "\"";
+				booleanProposals[j] = new SelectionCompletionProposal(pattern,
+						0, 0, 1, values[j].length(), image, values[j], null,
+						null);
+			}
+		}
+		return booleanProposals;
+	}
+
+	static SelectionCompletionProposal[] getColorsProposals() {
+		if (colorsProposals == null) {
+			Collection<String> names = XWTMaps.getColorKeys();
+			String[] colorNames = NamedColorsUtil.getColorNames();
+			colorsProposals = new SelectionCompletionProposal[names.size()
+					+ colorNames.length];
+
+			int i = 0;
+			for (String colorStr : names) {
+				Color color = ResourceManager.resources.getColor(colorStr);
+				SelectionCompletionProposal p = createColorProposal(color,
+						colorStr);
+				if (p != null) {
+					colorsProposals[i++] = p;
+				}
+			}
+			for (String colorName : colorNames) {
+				Color color = ResourceManager.resources.getColor(colorName);
+				SelectionCompletionProposal p = createColorProposal(color,
+						colorName);
+				if (p != null) {
+					colorsProposals[i++] = p;
+				}
+			}
+		}
+		return colorsProposals;
+	}
+
+	static SelectionCompletionProposal createColorProposal(Color color,
+			String colorName) {
+		if (color != null) {
+			String pattern = "\"" + colorName + "\"";
+			Image image = new Image(null, 16, 16);
+			GC gc = new GC(image);
+			gc.setBackground(color);
+			gc.fillRectangle(0, 0, 16, 16);
+			gc.dispose();
+			return new SelectionCompletionProposal(pattern, 0, 0, 1,
+					colorName.length(), image, colorName, null, null);
+		}
+		return null;
+
+	}
+
+	static SelectionCompletionProposal[] getStylesProposals() {
+		if (stylesProposals == null) {
+			Collection<String> names = XWTMaps.getStyleKeys();
+			stylesProposals = new SelectionCompletionProposal[names.size()];
+			int i = 0;
+			for (String string : names) {
+				String pattern = "\"" + string + "\"";
+				stylesProposals[i++] = new SelectionCompletionProposal(pattern,
+						0, 0, 1, string.length(), null, string, null, null);
+			}
+		}
+		return stylesProposals;
+	}
+
+	static SelectionCompletionProposal[] getAcceleratorsProposals() {
+		if (acceleratorsProposals == null) {
+			Collection<String> names = XWTMaps.getAcceleratorKeys();
+			acceleratorsProposals = new SelectionCompletionProposal[names
+					.size()];
+			int i = 0;
+			for (String string : names) {
+				String pattern = "\"" + string + "\"";
+				acceleratorsProposals[i++] = new SelectionCompletionProposal(
+						pattern, 0, 0, 1, string.length(), null, string, null,
+						null);
+			}
+		}
+		return acceleratorsProposals;
+	}
+
+	@Override
+	protected void addAttributeNameProposals(
+			ContentAssistRequest contentAssistRequest) {
+		addXAMLPropertyNameProposals(contentAssistRequest);
+
+		addTemplates(contentAssistRequest, TemplateContextTypeIdsXML.ATTRIBUTE);
+		super.addAttributeNameProposals(contentAssistRequest);
+	}
+
+	private void addXAMLPropertyNameProposals(
+			ContentAssistRequest contentAssistRequest) {
+		List<ICompletionProposal> proposalCollector = new ArrayList<ICompletionProposal>();
+		List<ICompletionProposal> macrosCollector = new ArrayList<ICompletionProposal>();
+
+		//
+		Node node = contentAssistRequest.getNode();
+		String name = getNodeName(node);
+
+		HashSet<String> existing = new HashSet<String>();
+		NamedNodeMap namedNodeMap = node.getAttributes();
+		for (int i = 0; i < namedNodeMap.getLength(); i++) {
+			Node attributeNode = namedNodeMap.item(i);
+			String attributeName = attributeNode.getNodeName();
+			existing.add(attributeName);
+		}
+		boolean useProposalList = !contentAssistRequest.shouldSeparate();
+		int offset = contentAssistRequest.getReplacementBeginPosition();
+		int replacementLength = contentAssistRequest.getReplacementLength();
+		IDocument document = fTextViewer.getDocument();
+		String prefixed = null;
+		try {
+			prefixed = document.get(offset, replacementLength).toLowerCase();
+		} catch (BadLocationException e1) {
+		}
+
+		IMetaclass metaclass = XWT.getMetaclass(name,
+				DomHelper.lookupNamespaceURI(node));
+		if (metaclass != null) {
+			IProperty[] properties = metaclass.getProperties();
+			for (IProperty property : properties) {
+				Class<?> propertyType = property.getType();
+				if (propertyType != null
+						&& Control.class.isAssignableFrom(propertyType)) {
+					continue;
+				}
+
+				String propertyName = property.getName();
+				if (prefixed != null
+						&& !propertyName.toLowerCase().startsWith(prefixed)) {
+					continue;
+				}
+
+				if (!existing.contains(propertyName)) {
+					String defaultValueString = "";
+					if (propertyName.equalsIgnoreCase("style")) {
+						propertyName = "x:style";
+						defaultValueString = "SWT.NONE";
+					}
+					String replacementString = propertyName + "=\""
+							+ defaultValueString + "\" ";
+					Image image = JavaPluginImages
+							.get(JavaPluginImages.IMG_FIELD_PUBLIC);
+					SelectionCompletionProposal proposal = new SelectionCompletionProposal(
+							replacementString, offset, replacementLength,
+							propertyName.length() + 2,
+							defaultValueString.length(), image, propertyName,
+							null, "Property: " + propertyName);
+					if (useProposalList) {
+						proposalCollector.add(proposal);
+					} else {
+						macrosCollector.add(proposal);
+					}
+				}
+			}
+
+			IEvent[] events = metaclass.getEvents();
+			for (IEvent event : events) {
+				String eventName = event.getName();
+				if (prefixed != null
+						&& !eventName.toLowerCase().startsWith(prefixed)) {
+					continue;
+				}
+
+				eventName = Character.toUpperCase(eventName.charAt(0))
+						+ eventName.substring(1) + IEventConstants.SUFFIX;
+				if (event.getName() != null
+						&& (event.getName().equals(IEventConstants.XWT_LOADED) || 
+								event.getName().equals(IEventConstants.XWT_LOADED_EVENT))) {
+					eventName = IEventConstants.XWT_LOADED_EVENT;
+				}
+
+				if (!existing.contains(eventName)) {
+					String replacementString = eventName + "=\""
+							+ HANDLER_PREFIX + eventName + "\" ";
+					Image image = ImageManager.get(ImageManager.IMG_EVENT);
+					SelectionCompletionProposal proposal = new SelectionCompletionProposal(
+							replacementString, offset, replacementLength,
+							eventName.length() + 2, eventName.length()
+									+ HANDLER_PREFIX.length(), image,
+							eventName, null, "Event: " + eventName);
+					if (useProposalList) {
+						proposalCollector.add(proposal);
+					} else {
+						macrosCollector.add(proposal);
+					}
+				}
+			}
+		}
+
+		Node parentNode = node.getParentNode();
+		String parentName = getNodeName(parentNode);
+		try {
+			IMetaclass parentMetaclass = XWT.getMetaclass(parentName,
+					DomHelper.lookupNamespaceURI(parentNode));
+			if (parentMetaclass != null) {
+				// Attached property
+			}
+		} catch (Exception e) {
+		}
+
+		Collections.sort(proposalCollector, comparator);
+		Collections.sort(macrosCollector, comparator);
+
+		for (ICompletionProposal proposal : proposalCollector) {
+			contentAssistRequest.addProposal(proposal);
+		}
+
+		for (ICompletionProposal proposal : macrosCollector) {
+			contentAssistRequest.addMacro(proposal);
+		}
+	}
+
+	@Override
+	protected void addAttributeValueProposals(
+			ContentAssistRequest contentAssistRequest) {
+		addXAMLPropertyValueProposals(contentAssistRequest);
+
+		addTemplates(contentAssistRequest,
+				TemplateContextTypeIdsXML.ATTRIBUTE_VALUE);
+		super.addAttributeValueProposals(contentAssistRequest);
+	}
+
+	private void addXAMLPropertyValueProposals(
+			ContentAssistRequest contentAssistRequest) {
+		List<ICompletionProposal> proposalCollector = new ArrayList<ICompletionProposal>();
+		List<ICompletionProposal> macrosCollector = new ArrayList<ICompletionProposal>();
+
+		IDOMNode node = (IDOMNode) contentAssistRequest.getNode();
+		String name = getNodeName(node);
+		IMetaclass metaclass = XWT.getMetaclass(name,
+				DomHelper.lookupNamespaceURI(node));
+		StyledText textWidget = fTextViewer.getTextWidget();
+		if (metaclass != null) {
+			// Find the attribute region and name for which this position should
+			// have a value proposed
+			IStructuredDocumentRegion open = node
+					.getFirstStructuredDocumentRegion();
+			ITextRegionList openRegions = open.getRegions();
+			int m = openRegions.indexOf(contentAssistRequest.getRegion());
+			if (m < 0) {
+				return;
+			}
+			ITextRegion nameRegion = null;
+			while (m >= 0) {
+				nameRegion = openRegions.get(m--);
+				if (nameRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
+					break;
+				}
+			}
+
+			// the name region is REQUIRED to do anything useful
+			if (nameRegion != null) {
+				// Retrieve the declaration
+				CMElementDeclaration elementDecl = getCMElementDeclaration(node);
+
+				// String attributeName = nameRegion.getText();
+				String attributeName = open.getText(nameRegion);
+				IProperty property = metaclass.findProperty(attributeName);
+				if (attributeName.equalsIgnoreCase("x:style")
+						|| property != null) {
+					int offset = contentAssistRequest
+							.getReplacementBeginPosition();
+					int replacementLength = contentAssistRequest
+							.getReplacementLength();
+					boolean useProposalList = !contentAssistRequest
+							.shouldSeparate();
+
+					String prefixed = null;
+					String prefixedQuote = "";
+					boolean fullValue = true;
+					try {
+						int caretIndex = textWidget.getCaretOffset();
+						IDocument document = fTextViewer.getDocument();
+						prefixed = document.get(offset, caretIndex - offset)
+								.toLowerCase();
+						if (prefixed.equals("\"\"")) {
+							prefixed = null;
+						}
+					} catch (BadLocationException e1) {
+					}
+					if (prefixed != null) {
+						prefixedQuote = prefixed + "\"";
+						fullValue = false;
+					}
+
+					// filter accelerators of menu element.
+					if (attributeName.equalsIgnoreCase("accelerator")) {
+						SelectionCompletionProposal[] proposals = getAcceleratorsProposals();
+						for (int j = 0; j < proposals.length; j++) {
+							String pattern = proposals[j]
+									.getReplacementString();
+							if (prefixed != null
+									&& ((!pattern.toLowerCase().startsWith(
+											prefixed) && !fullValue) || prefixedQuote
+											.equalsIgnoreCase(pattern))) {
+								continue;
+							}
+
+							proposals[j].setReplacementOffset(offset);
+							proposals[j]
+									.setReplacementLength(replacementLength);
+							if (useProposalList) {
+								proposalCollector.add(proposals[j]);
+							} else {
+								macrosCollector.add(proposals[j]);
+							}
+						}
+						Collections.sort(proposalCollector, comparator);
+						Collections.sort(macrosCollector, comparator);
+
+						for (ICompletionProposal proposal : proposalCollector) {
+							contentAssistRequest.addProposal(proposal);
+						}
+
+						for (ICompletionProposal proposal : macrosCollector) {
+							contentAssistRequest.addMacro(proposal);
+						}
+						return;
+					}
+
+					// styles TODO: filter styles of each element.
+					if (attributeName.equalsIgnoreCase("x:style")) {
+						SelectionCompletionProposal[] proposals = getStylesProposals();
+						for (int j = 0; j < proposals.length; j++) {
+							String pattern = proposals[j]
+									.getReplacementString();
+							if (prefixed != null
+									&& ((!pattern.toLowerCase().startsWith(
+											prefixed) && !fullValue) || prefixedQuote
+											.equalsIgnoreCase(pattern))) {
+								continue;
+							}
+
+							proposals[j].setReplacementOffset(offset);
+							proposals[j]
+									.setReplacementLength(replacementLength);
+							if (useProposalList) {
+								proposalCollector.add(proposals[j]);
+							} else {
+								macrosCollector.add(proposals[j]);
+							}
+						}
+						Collections.sort(proposalCollector, comparator);
+						Collections.sort(macrosCollector, comparator);
+
+						for (ICompletionProposal proposal : proposalCollector) {
+							contentAssistRequest.addProposal(proposal);
+						}
+
+						for (ICompletionProposal proposal : macrosCollector) {
+							contentAssistRequest.addMacro(proposal);
+						}
+						return;
+					}
+					Class<?> javaType = property.getType();
+					if (javaType == Boolean.class || javaType == boolean.class) {
+						SelectionCompletionProposal[] proposals = getBooleanProposals();
+						for (int j = 0; j < proposals.length; j++) {
+							String pattern = proposals[j]
+									.getReplacementString();
+							if (prefixed != null
+									&& ((!pattern.toLowerCase().startsWith(
+											prefixed) && !fullValue) || prefixedQuote
+											.equalsIgnoreCase(pattern))) {
+								continue;
+							}
+
+							proposals[j].setReplacementOffset(offset);
+							proposals[j]
+									.setReplacementLength(replacementLength);
+							if (useProposalList) {
+								proposalCollector.add(proposals[j]);
+							} else {
+								macrosCollector.add(proposals[j]);
+							}
+						}
+					} else if (javaType != null && javaType.isEnum()) {
+						Object[] objects = javaType.getEnumConstants();
+
+						IConverter converter = XWT.findConvertor(javaType,
+								String.class);
+						for (int j = 0; j < objects.length; j++) {
+							String valueString = "";
+							if (converter != null) {
+								Object stringValue = converter
+										.convert(objects[j]);
+								if (stringValue != null) {
+									valueString = stringValue.toString();
+								}
+							} else {
+								valueString = objects[j].toString();
+							}
+							String pattern = "\"" + valueString + "\"";
+							if (prefixed != null
+									&& ((!pattern.toLowerCase().startsWith(
+											prefixed) && !fullValue) || prefixedQuote
+											.equalsIgnoreCase(pattern))) {
+								continue;
+							}
+							Image image = ImageManager
+									.get(XMLEditorPluginImages.IMG_OBJ_ENUM);
+							SelectionCompletionProposal proposal = new SelectionCompletionProposal(
+									pattern, offset, replacementLength, 1,
+									valueString.length(), image, valueString,
+									null, null);
+							if (useProposalList) {
+								proposalCollector.add(proposal);
+							} else {
+								macrosCollector.add(proposal);
+							}
+						}
+					} else if (javaType.isAssignableFrom(Color.class)) {
+						SelectionCompletionProposal[] colorsProposals = getColorsProposals();
+						for (SelectionCompletionProposal proposal : colorsProposals) {
+							String pattern = proposal.getReplacementString();
+							if (prefixed != null
+									&& ((!pattern.toLowerCase().startsWith(
+											prefixed) && !fullValue) || prefixedQuote
+											.equalsIgnoreCase(pattern))) {
+								continue;
+							}
+
+							proposal.setReplacementOffset(offset);
+							proposal.setReplacementLength(replacementLength);
+							if (useProposalList) {
+								proposalCollector.add(proposal);
+							} else {
+								macrosCollector.add(proposal);
+							}
+						}
+					}
+				} else {
+					IEvent[] allEvents = metaclass.getEvents();
+					JavaProject javaProject = (JavaProject) textWidget
+							.getData("javaProject");
+					String className = (String) textWidget.getData("className");
+					List<String> javaMethods = getJavaMethods(javaProject,
+							className);
+					int offset = contentAssistRequest
+							.getReplacementBeginPosition();
+					int caretIndex = textWidget.getCaretOffset();
+					IDocument document = fTextViewer.getDocument();
+					String prefixed = null;
+					try {
+						prefixed = document.get(offset + 1, caretIndex - offset
+								- 1);
+					} catch (BadLocationException e) {
+						e.printStackTrace();
+					}
+					int replacementLength = contentAssistRequest
+							.getReplacementLength();
+					boolean useProposalList = !contentAssistRequest
+							.shouldSeparate();
+					for (Iterator<String> iterator = javaMethods.iterator(); iterator
+							.hasNext();) {
+						String valueString = iterator.next();
+						if (valueString.equals(prefixed))
+							continue;
+						String pattern = "\"" + valueString + "\"";
+						SelectionCompletionProposal proposal = new SelectionCompletionProposal(
+								pattern, offset, replacementLength, 1,
+								valueString.length(), null, valueString, null,
+								null);
+						if (useProposalList) {
+							proposalCollector.add(proposal);
+						} else {
+							macrosCollector.add(proposal);
+						}
+					}
+				}
+			}
+		}
+
+		Collections.sort(proposalCollector, comparator);
+		Collections.sort(macrosCollector, comparator);
+
+		for (ICompletionProposal proposal : proposalCollector) {
+			contentAssistRequest.addProposal(proposal);
+		}
+
+		for (ICompletionProposal proposal : macrosCollector) {
+			contentAssistRequest.addMacro(proposal);
+		}
+	}
+
+	@Override
+	protected void addEmptyDocumentProposals(
+			ContentAssistRequest contentAssistRequest) {
+		addTemplates(contentAssistRequest, TemplateContextTypeIdsXML.NEW);
+		super.addEmptyDocumentProposals(contentAssistRequest);
+	}
+
+	@Override
+	protected void addTagInsertionProposals(
+			ContentAssistRequest contentAssistRequest, int childPosition) {
+		addXAMLElementProposals(contentAssistRequest);
+		addTemplates(contentAssistRequest, TemplateContextTypeIdsXML.TAG);
+		super.addTagInsertionProposals(contentAssistRequest, childPosition);
+	}
+
+	private void addXAMLElementProposals(
+			ContentAssistRequest contentAssistRequest) {
+		List<ICompletionProposal> proposalCollector = new ArrayList<ICompletionProposal>();
+		List<ICompletionProposal> macrosCollector = new ArrayList<ICompletionProposal>();
+
+		List<String> addedTags = new ArrayList<String>();
+
+		boolean useProposalList = !contentAssistRequest.shouldSeparate();
+		int offset = contentAssistRequest.getReplacementBeginPosition();
+		int replacementLength = contentAssistRequest.getReplacementLength();
+		String prefixed = null;
+		try {
+			IDocument document = fTextViewer.getDocument();
+			prefixed = document.get(offset, replacementLength).toLowerCase();
+		} catch (BadLocationException e1) {
+		}
+
+		Node node = contentAssistRequest.getNode();
+		if (node == null) {
+			return;
+		}
+		if (node instanceof IDOMText) {
+			IDOMText text = (IDOMText) node;
+			offset = text.getStartOffset();
+			replacementLength = text.getLength();
+			try {
+				IDocument document = fTextViewer.getDocument();
+				prefixed = document.get(offset, replacementLength).trim()
+						.toLowerCase();
+			} catch (BadLocationException e1) {
+			}
+		} else if (node instanceof IDOMNode) {
+			IDOMNode domNode = (IDOMNode) node;
+			NodeList children = domNode.getChildNodes();
+			for (int i = 0; i < children.getLength(); i++) {
+				Node child = children.item(i);
+				if (child instanceof IDOMText) {
+					IDOMText text = (IDOMText) child;
+					offset = text.getStartOffset();
+					replacementLength = text.getLength();
+					try {
+						IDocument document = fTextViewer.getDocument();
+						prefixed = document.get(offset, replacementLength)
+								.trim().toLowerCase();
+					} catch (BadLocationException e1) {
+					}
+					break;
+				}
+			}
+		}
+
+		while (node.getNodeType() != Node.ELEMENT_NODE) {
+			node = node.getParentNode();
+			if (node == null) {
+				return;
+			}
+		}
+
+		boolean containControls = false;
+		String name = getNodeName(node);
+		if (name.indexOf(".") != -1) {
+			if (name.toLowerCase().endsWith(".control")) {
+				name = "Control";// Add controls to TabItem, CoolItem...
+				containControls = true;
+			} else {
+				List<SelectionCompletionProposal> proposals = createPropertyNodeProposals(
+						name, offset, replacementLength);
+				if (useProposalList) {
+					proposalCollector.addAll(proposals);
+				} else {
+					macrosCollector.addAll(proposals);
+				}
+				Collections.sort(proposalCollector, comparator);
+				Collections.sort(macrosCollector, comparator);
+
+				for (ICompletionProposal proposal : proposalCollector) {
+					contentAssistRequest.addProposal(proposal);
+				}
+
+				for (ICompletionProposal proposal : macrosCollector) {
+					contentAssistRequest.addMacro(proposal);
+				}
+				return;
+			}
+		}
+		IMetaclass metaclass = XWT.getMetaclass(name,
+				DomHelper.lookupNamespaceURI(node));
+		String tagName = name + ".Resources";
+		if (!addedTags.contains(tagName)
+				&& (prefixed == null || tagName.toLowerCase().startsWith(
+						prefixed))) {
+			addedTags.add(tagName);
+
+			String pattern = "<" + tagName + "></" + tagName + ">";
+			Image image = ImageManager.get(ImageManager.IMG_RESOURCES);
+			SelectionCompletionProposal proposal = new SelectionCompletionProposal(
+					pattern, offset, replacementLength, tagName.length() + 2,
+					0, image, tagName, null, "Element resources");
+			if (useProposalList) {
+				proposalCollector.add(proposal);
+			} else {
+				macrosCollector.add(proposal);
+			}
+		}
+
+		// layout
+		String layout = name + ".layout";
+		if (!addedTags.contains(layout)
+				&& (prefixed == null || layout.startsWith(prefixed))) {
+			SelectionCompletionProposal layoutProposal = createLayoutProposal(
+					metaclass, layout, offset, replacementLength);
+			if (layoutProposal != null) {
+				if (useProposalList) {
+					proposalCollector.add(layoutProposal);
+				} else {
+					macrosCollector.add(layoutProposal);
+				}
+			}
+		}
+		// layoutData
+		String layoutData = name + ".layoutData";
+		if (!addedTags.contains(layout)
+				&& (prefixed == null || layout.startsWith(prefixed))) {
+			SelectionCompletionProposal proposal = createLayoutDataProposal(
+					metaclass, layoutData, offset, replacementLength);
+			if (proposal != null) {
+				if (useProposalList) {
+					proposalCollector.add(proposal);
+				} else {
+					macrosCollector.add(proposal);
+				}
+			}
+		}
+		if (metaclass != null) {
+			if (containControls
+					|| Composite.class.isAssignableFrom(metaclass.getType())) {
+				IMetaclass[] metaclasses = XWT.getAllMetaclasses();
+				for (IMetaclass type : metaclasses) {
+					if (Control.class.isAssignableFrom(type.getType())
+							&& !type.isAbstract()) {
+
+						String typeName = type.getName();
+						if (prefixed != null
+								&& !typeName.toLowerCase().startsWith(prefixed)) {
+							continue;
+						}
+						if (addedTags.contains(typeName)) {
+							continue;
+						} else {
+							addedTags.add(typeName);
+						}
+						String pattern = "<" + typeName + "></" + typeName
+								+ ">";
+						Image image = ImageManager
+								.get(ImageManager.IMG_ELEMENT);
+						SelectionCompletionProposal proposal = new SelectionCompletionProposal(
+								pattern, offset, replacementLength,
+								typeName.length() + 2, 0, image, typeName,
+								null, null);
+						if (useProposalList) {
+							proposalCollector.add(proposal);
+						} else {
+							macrosCollector.add(proposal);
+						}
+					}
+				}
+			}
+		}
+
+		Collections.sort(proposalCollector, comparator);
+		Collections.sort(macrosCollector, comparator);
+
+		for (ICompletionProposal proposal : proposalCollector) {
+			contentAssistRequest.addProposal(proposal);
+		}
+
+		for (ICompletionProposal proposal : macrosCollector) {
+			contentAssistRequest.addMacro(proposal);
+		}
+	}
+
+	private List<SelectionCompletionProposal> createPropertyNodeProposals(
+			String tagName, int offset, int replacementLength) {
+		int index = tagName.indexOf(".");
+		if (index == -1) {
+			return Collections.emptyList();
+		}
+		List<SelectionCompletionProposal> proposals = new ArrayList<SelectionCompletionProposal>();
+		String property = tagName.substring(index + 1);
+		if ("layout".equalsIgnoreCase(property)) {
+			String[] layouts = new String[] { "GridLayout", "FillLayout",
+					"RowLayout", "StackLayout", "FormLayout" };
+			for (int i = 0; i < layouts.length; i++) {
+				String pattern = "<" + layouts[i] + "/>";
+				Image image = ImageManager.get(ImageManager.IMG_ELEMENT);
+				SelectionCompletionProposal p = new SelectionCompletionProposal(
+						pattern, offset, replacementLength,
+						layouts[i].length() + 2, 0, image, layouts[i], null,
+						"Container Layout.");
+				proposals.add(p);
+			}
+		} else if ("layoutData".equalsIgnoreCase(property)) {
+			String[] layoutDatas = new String[] { "GridData", "StackData",
+					"FormData", "RowData" };
+			for (int i = 0; i < layoutDatas.length; i++) {
+				String pattern = "<" + layoutDatas[i] + "></" + layoutDatas[i]
+						+ ">";
+				Image image = ImageManager.get(ImageManager.IMG_ELEMENT);
+				SelectionCompletionProposal p = new SelectionCompletionProposal(
+						pattern, offset, replacementLength,
+						layoutDatas[i].length() + 2, 0, image, layoutDatas[i],
+						null, "Container LayoutData.");
+				proposals.add(p);
+			}
+		}
+		return proposals;
+	}
+
+	private SelectionCompletionProposal createLayoutDataProposal(
+			IMetaclass metaclass, String layoutData, int offset,
+			int replacementLength) {
+		if (!Control.class.isAssignableFrom(metaclass.getType())) {
+			return null;
+		}
+		String pattern = "<" + layoutData + "></" + layoutData + ">";
+		Image image = JavaPluginImages.get(JavaPluginImages.IMG_FIELD_PUBLIC);
+		return new SelectionCompletionProposal(pattern, offset,
+				replacementLength, layoutData.length() + 2, 0, image,
+				layoutData, null, "Control LayoutData.");
+	}
+
+	private SelectionCompletionProposal createLayoutProposal(
+			IMetaclass metaclass, String tagName, int offset,
+			int replacementLength) {
+		if (!Composite.class.isAssignableFrom(metaclass.getType())) {
+			return null;
+		}
+		String pattern = "<" + tagName + "></" + tagName + ">";
+		Image image = JavaPluginImages.get(JavaPluginImages.IMG_FIELD_PUBLIC);
+		return new SelectionCompletionProposal(pattern, offset,
+				replacementLength, tagName.length() + 2, 0, image, tagName,
+				null, "Container Layout.");
+	}
+
+	private String getNodeName(Node node) {
+		String name = node.getNodeName();
+		int index = name.indexOf(":");
+		if (index != -1) {
+			name = name.substring(index + 1);
+		}
+		return name;
+	}
+
+	/**
+	 * Adds templates to the list of proposals
+	 * 
+	 * @param contentAssistRequest
+	 * @param context
+	 */
+	private void addTemplates(ContentAssistRequest contentAssistRequest,
+			String context) {
+		addTemplates(contentAssistRequest, context,
+				contentAssistRequest.getReplacementBeginPosition());
+	}
+
+	/**
+	 * Adds templates to the list of proposals
+	 * 
+	 * @param contentAssistRequest
+	 * @param context
+	 * @param startOffset
+	 */
+	private void addTemplates(ContentAssistRequest contentAssistRequest,
+			String context, int startOffset) {
+		if (contentAssistRequest == null) {
+			return;
+		}
+
+		// if already adding template proposals for a certain context type, do
+		// not add again
+		if (!fTemplateContexts.contains(context)) {
+			fTemplateContexts.add(context);
+			boolean useProposalList = !contentAssistRequest.shouldSeparate();
+
+			if (getTemplateCompletionProcessor() != null) {
+				getTemplateCompletionProcessor().setContextType(context);
+				ICompletionProposal[] proposals = getTemplateCompletionProcessor()
+						.computeCompletionProposals(fTextViewer, startOffset);
+				for (int i = 0; i < proposals.length; ++i) {
+					if (useProposalList) {
+						contentAssistRequest.addProposal(proposals[i]);
+					} else {
+						contentAssistRequest.addMacro(proposals[i]);
+					}
+				}
+			}
+		}
+	}
+
+	@Override
+	protected ContentAssistRequest computeCompletionProposals(
+			int documentPosition, String matchString,
+			ITextRegion completionRegion, IDOMNode treeNode, IDOMNode xmlnode) {
+		ContentAssistRequest request = super.computeCompletionProposals(
+				documentPosition, matchString, completionRegion, treeNode,
+				xmlnode);
+		// bug115927 use original document position for all/any region
+		// templates
+		addTemplates(request, TemplateContextTypeIdsXML.ALL, documentPosition);
+		return request;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.xml.ui.contentassist.AbstractContentAssistProcessor#
+	 * computeCompletionProposals(org.eclipse.jface.text.ITextViewer, int)
+	 */
+	@Override
+	public ICompletionProposal[] computeCompletionProposals(
+			ITextViewer textViewer, int documentPosition) {
+		fTemplateContexts.clear();
+		return super.computeCompletionProposals(textViewer, documentPosition);
+	}
+
+	protected IPreferenceStore getPreferenceStore() {
+		if (fPreferenceStore == null) {
+			fPreferenceStore = XMLUIPlugin.getDefault().getPreferenceStore();
+		}
+		return fPreferenceStore;
+	}
+
+	protected VEXTemplateCompletionProcessor getTemplateCompletionProcessor() {
+		if (fTemplateProcessor == null) {
+			fTemplateProcessor = new VEXTemplateCompletionProcessor();
+		}
+		return fTemplateProcessor;
+	}
+
+	@Override
+	protected void init() {
+		getPreferenceStore().addPropertyChangeListener(this);
+		reinit();
+	}
+
+	public void propertyChange(PropertyChangeEvent event) {
+		String property = event.getProperty();
+
+		if ((property.compareTo(XMLUIPreferenceNames.AUTO_PROPOSE) == 0)
+				|| (property.compareTo(XMLUIPreferenceNames.AUTO_PROPOSE_CODE) == 0)) {
+			reinit();
+		}
+	}
+
+	protected void reinit() {
+		String key = XMLUIPreferenceNames.AUTO_PROPOSE;
+		boolean doAuto = getPreferenceStore().getBoolean(key);
+		if (doAuto) {
+			key = XMLUIPreferenceNames.AUTO_PROPOSE_CODE;
+			completionProposalAutoActivationCharacters = getPreferenceStore()
+					.getString(key).toCharArray();
+		} else {
+			completionProposalAutoActivationCharacters = null;
+		}
+	}
+
+	@Override
+	public void release() {
+		super.release();
+		getPreferenceStore().removePropertyChangeListener(this);
+	}
+
+	private List<String> getJavaMethods(JavaProject javaProject,
+			String className) {
+		List<String> javaMethods = new ArrayList<String>();
+		try {
+			IType type = javaProject.findType(className);
+			IMethod[] methods = type.getMethods();
+			for (int i = 0; i < methods.length; i++) {
+				IMethod method = methods[i];
+				String methodName = method.getElementName();
+				javaMethods.add(methodName);
+			}
+		} catch (JavaModelException e) {
+			e.printStackTrace();
+		}
+		return javaMethods;
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTContentOutlineConfiguration.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTContentOutlineConfiguration.java
new file mode 100755
index 0000000..62b4f87
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTContentOutlineConfiguration.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor;
+
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
+import org.eclipse.wst.xml.ui.views.contentoutline.XMLContentOutlineConfiguration;
+import org.eclipse.xwt.ui.editor.treeviewer.XWTNodeActionManager;
+
+public class XWTContentOutlineConfiguration extends XMLContentOutlineConfiguration {
+
+	public XWTContentOutlineConfiguration() {
+	}
+
+	protected XWTNodeActionManager createNodeActionManager(TreeViewer treeViewer) {
+		return new XWTNodeActionManager((IStructuredModel) treeViewer.getInput(), treeViewer);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTCustomPalettePage.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTCustomPalettePage.java
new file mode 100755
index 0000000..54c36bb
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTCustomPalettePage.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor;
+
+import org.eclipse.gef.ui.palette.PaletteViewer;
+import org.eclipse.gef.ui.palette.PaletteViewerProvider;
+import org.eclipse.gef.ui.views.palette.PaletteViewerPage;
+
+/**
+ * @author bqian
+ * 
+ */
+public class XWTCustomPalettePage extends PaletteViewerPage {
+	/**
+	 * Constructor
+	 * 
+	 * @param provider
+	 *            the provider used to create a PaletteViewer
+	 */
+	public XWTCustomPalettePage(PaletteViewerProvider provider) {
+		super(provider);
+	}
+
+	/**
+	 * @return the PaletteViewer created and displayed by this page
+	 */
+	public PaletteViewer getPaletteViewer() {
+		return viewer;
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTDocumentationTextHover.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTDocumentationTextHover.java
new file mode 100755
index 0000000..fa67202
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTDocumentationTextHover.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor;
+
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.wst.xml.ui.internal.taginfo.XMLTagInfoHoverProcessor;
+
+public class XWTDocumentationTextHover extends XMLTagInfoHoverProcessor {
+
+	public XWTDocumentationTextHover() {
+		// TODO Auto-generated constructor stub
+	}
+
+	@Override
+	protected String computeTagAttNameHelp(IDOMNode xmlnode, IDOMNode parentNode, IStructuredDocumentRegion flatNode, ITextRegion region) {
+		// TODO Auto-generated method stub
+		return super.computeTagAttNameHelp(xmlnode, parentNode, flatNode, region);
+	}
+
+	@Override
+	protected String computeTagAttValueHelp(IDOMNode xmlnode, IDOMNode parentNode, IStructuredDocumentRegion flatNode, ITextRegion region) {
+		// TODO Auto-generated method stub
+		return super.computeTagAttValueHelp(xmlnode, parentNode, flatNode, region);
+	}
+
+	@Override
+	protected String computeTagNameHelp(IDOMNode xmlnode, IDOMNode parentNode, IStructuredDocumentRegion flatNode, ITextRegion region) {
+		// TODO Auto-generated method stub
+		return super.computeTagNameHelp(xmlnode, parentNode, flatNode, region);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTDropTargetListener.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTDropTargetListener.java
new file mode 100755
index 0000000..60e4ace
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTDropTargetListener.java
@@ -0,0 +1,130 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.swt.dnd.DropTargetEvent;
+import org.eclipse.swt.dnd.DropTargetListener;
+import org.eclipse.xwt.ui.editor.dnd.DnDAdapter;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class XWTDropTargetListener implements DropTargetListener {
+
+	private List<DnDAdapter> dndAdapters = new ArrayList<DnDAdapter>();
+	private DnDAdapter acceptAdapter;
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.swt.dnd.DropTargetAdapter#dragOver(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	public void dragOver(DropTargetEvent event) {
+		updateAcceptAdapter();
+		if (acceptAdapter != null) {
+			acceptAdapter.dragOver(event);
+		}
+	}
+
+	/**
+	 * @param event
+	 */
+	private void updateAcceptAdapter() {
+		for (DnDAdapter dnd : dndAdapters) {
+			if (dnd.isAccept()) {
+				acceptAdapter = dnd;
+				break;
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.swt.dnd.DropTargetAdapter#dropAccept(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	public void dropAccept(DropTargetEvent event) {
+		if (acceptAdapter != null) {
+			acceptAdapter.dropAccept(event);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.swt.dnd.DropTargetAdapter#drop(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	public void drop(DropTargetEvent event) {
+		if (acceptAdapter != null) {
+			acceptAdapter.drop(event);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.swt.dnd.DropTargetAdapter#dragEnter(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	public void dragEnter(DropTargetEvent event) {
+		updateAcceptAdapter();
+		if (acceptAdapter != null) {
+			acceptAdapter.dragEnter(event);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.swt.dnd.DropTargetAdapter#dragOperationChanged(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	public void dragOperationChanged(DropTargetEvent event) {
+		updateAcceptAdapter();
+		if (acceptAdapter != null) {
+			acceptAdapter.dragOperationChanged(event);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.swt.dnd.DropTargetAdapter#dragLeave(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	public void dragLeave(DropTargetEvent event) {
+		if (acceptAdapter != null) {
+			acceptAdapter.dragLeave(event);
+		}
+	}
+
+	public void addDnDAdapter(DnDAdapter adapter) {
+		dndAdapters.add(adapter);
+	}
+
+	/**
+	 * @param dndAdapters
+	 *                        the dndAdapters to set
+	 */
+	public void setDndAdapters(List<DnDAdapter> dndAdapters) {
+		this.dndAdapters = dndAdapters;
+	}
+
+	/**
+	 * @return the dndAdapters
+	 */
+	public List<DnDAdapter> getDndAdapters() {
+		return dndAdapters;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTEditor.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTEditor.java
new file mode 100755
index 0000000..1e217bd
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTEditor.java
@@ -0,0 +1,410 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.xwt.XWT;
+import org.eclipse.jdt.core.ElementChangedEvent;
+import org.eclipse.jdt.core.IElementChangedListener;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.internal.core.JavaModelManager;
+import org.eclipse.jdt.internal.ui.JavaPluginImages;
+import org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor;
+import org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.DragSource;
+import org.eclipse.swt.dnd.DragSourceAdapter;
+import org.eclipse.swt.dnd.DragSourceEvent;
+import org.eclipse.swt.dnd.DropTarget;
+import org.eclipse.swt.dnd.DropTargetEvent;
+import org.eclipse.swt.dnd.DropTargetListener;
+import org.eclipse.swt.dnd.TextTransfer;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Canvas;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.swt.widgets.ToolItem;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.internal.progress.ProgressManager;
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
+import org.eclipse.wst.xml.ui.internal.tabletree.IDesignViewer;
+import org.eclipse.wst.xml.ui.internal.tabletree.XMLTableTreeHelpContextIds;
+import org.eclipse.xwt.ui.ExceptionHandle;
+import org.eclipse.xwt.ui.XWTUIPlugin;
+import org.eclipse.xwt.ui.editor.dnd.ImageDnDAdapter;
+import org.eclipse.xwt.ui.editor.dnd.PaletteDnDAdapter;
+import org.eclipse.xwt.ui.editor.dnd.UserDefinedDnDAdapter;
+import org.eclipse.xwt.ui.editor.render.XWTRender;
+import org.eclipse.xwt.ui.editor.treeviewer.XWTTableTreeViewer;
+import org.eclipse.xwt.ui.utils.DisplayUtil;
+import org.eclipse.xwt.ui.utils.ImageManager;
+import org.eclipse.xwt.ui.utils.ProjectContext;
+import org.eclipse.xwt.ui.views.XWTView;
+import org.eclipse.xwt.vex.VEXCodeSynchronizer;
+import org.eclipse.xwt.vex.VEXEditor;
+import org.eclipse.xwt.vex.VEXFileChecker;
+import org.eclipse.xwt.vex.VEXFileFormator;
+import org.eclipse.xwt.vex.VEXRenderer;
+
+public class XWTEditor extends VEXEditor {
+	/** The Java editor. */
+	private CompilationUnitEditor javaEditor;
+
+	private IFile javaFile;
+	private String className;
+
+	private DropTargetListener dropTargetAdapter;
+
+	private ToolItem previewTool;
+	private ToolItem generateTool;
+	private long modificationStamp;
+	private IElementChangedListener elementChangedListener = new IElementChangedListener() {
+		public void elementChanged(ElementChangedEvent event) {
+			if (getFileChecker() != null) {
+				long timeStamp = javaFile.getModificationStamp();
+				if (modificationStamp == timeStamp) {
+					getFileChecker().doCheck(render.getHostClassName());
+				} else {
+					modificationStamp = timeStamp;
+				}
+			}
+		}
+	};
+
+	public XWTEditor() {
+		super(new XWTUIContext());
+	}
+
+	public CompilationUnitEditor getJavaEditor() {
+		return javaEditor;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.vex.VEXEditor#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
+	 */
+	public void init(IEditorSite site, IEditorInput input) throws PartInitException {
+		super.init(site, input);
+		XWTUIPlugin.getDefault().openXWTPerspective();
+	}
+
+	@Override
+	protected IDesignViewer createDesignPage() {
+		XWTTableTreeViewer tableTreeViewer = new XWTTableTreeViewer(getContainer());
+		// Set the default info pop for XML design viewer.
+		XMLUIPlugin.getInstance().getWorkbench().getHelpSystem().setHelp(tableTreeViewer.getControl(), XMLTableTreeHelpContextIds.XML_DESIGN_VIEW_HELPID);
+		return tableTreeViewer;
+	}
+
+	protected VEXRenderer createRender(Canvas container) {
+		return new XWTRender(container, changeListener);
+	}
+
+	protected void createToolBar(CTabFolder tabFolder) {
+		tabFolder.setTabPosition(SWT.TOP);
+		tabFolder.setSimple(false);
+
+		ToolBar toolBar = new ToolBar(tabFolder, SWT.FLAT | SWT.WRAP | SWT.RIGHT);
+		// toolBar.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+		previewTool = new ToolItem(toolBar, SWT.PUSH);
+		previewTool.setImage(ImageManager.get(ImageManager.IMG_PREVIEW));
+		previewTool.setToolTipText("Preview");
+		previewTool.addSelectionListener(new SelectionListener() {
+			public void widgetDefaultSelected(SelectionEvent e) {
+				handlePreview();
+			}
+
+			public void widgetSelected(SelectionEvent e) {
+				handlePreview();
+			}
+		});
+
+		generateTool = new ToolItem(toolBar, SWT.PUSH);
+		generateTool.setImage(JavaPluginImages.get(JavaPluginImages.IMG_OBJS_CLASS));
+		generateTool.setToolTipText("Generate Java codes");
+
+		generateTool.addSelectionListener(new SelectionListener() {
+			public void widgetDefaultSelected(SelectionEvent e) {
+				generateCLRCodeAction();
+			}
+
+			public void widgetSelected(SelectionEvent e) {
+				generateCLRCodeAction();
+			}
+		});
+		generateTool.setEnabled(false);
+
+		tabFolder.setTopRight(toolBar);
+		tabFolder.setTabHeight(Math.max(toolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT).y, tabFolder.getTabHeight()));
+	}
+
+	void handlePreview() {
+		IFile file = (IFile) getEditorInput().getAdapter(IFile.class);
+		IJavaProject javaProject = JavaCore.create(file.getProject());
+		if (!javaProject.exists()) {
+			return;
+		}
+		try {
+			XWT.setLoadingContext(ProjectContext.getContext(javaProject));
+			DisplayUtil.open(file);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void setJavaEditor(String fullyQualifiedName) {
+		IJavaProject javaProject = getJavaProject();
+		removeElementChangedListener(javaProject);
+		try {
+			if (fullyQualifiedName == null) {
+				return;
+			}
+			IType type = javaProject.findType(fullyQualifiedName);
+			if (type == null || !type.exists()) {
+				return;
+			}
+			javaFile = (IFile) type.getResource();
+			FileEditorInput editorInput = new FileEditorInput(javaFile);
+			if (javaEditor == null) {
+				javaEditor = new CompilationUnitEditor();
+				int javaPageIndex = addPage(javaEditor, editorInput);
+				setPageText(javaPageIndex, "Java");
+				setPageImage(javaPageIndex, JavaPluginImages.get(JavaPluginImages.IMG_OBJS_CLASS));
+
+			} else {
+				javaEditor.setInput(editorInput);
+			}
+			this.className = fullyQualifiedName;
+			if (generateTool != null) {
+				generateTool.setEnabled(true);
+			}
+			addElementChangedListener(javaProject);
+
+			XWTCodeSynchronizer codeSynchronizer = (XWTCodeSynchronizer) getCodeSynchronizer();
+			codeSynchronizer.setType(type);
+		} catch (PartInitException e) {
+			e.printStackTrace();
+		} catch (JavaModelException e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected IJavaProject getJavaProject() {
+		IFile file = (IFile) getEditorInput().getAdapter(IFile.class);
+
+		IJavaProject javaProject = JavaCore.create(file.getProject());
+		if (!javaProject.exists()) {
+			return null;
+		}
+		return javaProject;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.ISaveablePart#doSave(org.eclipse.core.runtime.IProgressMonitor )
+	 */
+	@Override
+	public void doSave(IProgressMonitor monitor) {
+		super.doSave(monitor);
+		if (javaEditor != null) {
+			javaEditor.doSave(monitor);
+		}
+	}
+
+	protected boolean handleInputChanged(IDocument newInput) {
+		String value = newInput.get();
+		if (newInput == null) {
+			return false;
+		}
+		boolean handling = super.handleInputChanged(newInput);
+		if (handling) {
+			String className = render.getHostClassName();
+			if (this.className == null || !this.className.equals(className)) {
+				setJavaEditor(className);
+			}
+		}
+		refreshXWTView(value);
+		return handling;
+	}
+
+	private void refreshXWTView(String value) {
+		IFile file = (IFile) getEditorInput().getAdapter(IFile.class);
+
+		if (file != null) {
+			XWTUIPlugin.checkStartup();
+			try {
+				XWTView view = (XWTView) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(XWTView.ID);
+				if (view != null) {
+					view.setContentWithException(value, file);
+				}
+			} catch (Exception e) {
+				// No need to handle the refresh.s 
+				// ExceptionHandle.handle(e, "");
+			}
+		}
+	}
+
+	@Override
+	protected VEXFileChecker createFileChecker() {
+		return new XWTFileChecker(getTextEditor());
+	}
+
+	protected VEXCodeSynchronizer createCodeSynchronizer() {
+		try {
+			IJavaProject javaProject = getJavaProject();
+			if (javaProject == null || className == null) {
+				return null;
+			}
+			IType findType = javaProject.findType(className);
+			if (findType != null) {
+				return new XWTCodeSynchronizer(this, findType);
+			}
+		} catch (JavaModelException e) {
+		}
+		return null;
+	}
+
+	public void addElementChangedListener(IJavaProject javaProject) {
+		int eventMask = ElementChangedEvent.POST_CHANGE | ElementChangedEvent.POST_RECONCILE;
+		JavaModelManager.getDeltaState().addElementChangedListener(elementChangedListener, eventMask);
+	}
+
+	public void removeElementChangedListener(IJavaProject javaProject) {
+		int eventMask = ElementChangedEvent.POST_CHANGE | ElementChangedEvent.POST_RECONCILE;
+		JavaModelManager.getDeltaState().removeElementChangedListener(elementChangedListener);
+	}
+
+	public void initializeDND(VEXEditor editor) {
+		if (dropTargetAdapter == null) {
+			dropTargetAdapter = createDropTargetListener();
+		}
+		update(editor);
+	}
+
+	private void update(VEXEditor vexEditor) {
+		// clear up old
+		StyledText styledText = vexEditor.getTextWidget();
+		if (styledText != null) {
+			DropTarget dropTarget = (DropTarget) styledText.getData(DND.DROP_TARGET_KEY);
+			if (dropTarget != null) {
+				dropTarget.removeDropListener(dropTargetAdapter);
+			}
+		}
+
+		// setup new
+		vexEditor.getTextWidget().addDisposeListener(new DisposeListener() {
+			public void widgetDisposed(DisposeEvent e) {
+				StyledText styledText = (StyledText) e.widget;
+				DropTarget dropTarget = (DropTarget) styledText.getData(DND.DROP_TARGET_KEY);
+				if (dropTarget != null) {
+					dropTarget.removeDropListener(dropTargetAdapter);
+				}
+			}
+		});
+
+		DropTarget dropTarget = (DropTarget) styledText.getData(DND.DROP_TARGET_KEY);
+		if (dropTarget == null) {
+			dropTarget = new DropTarget(styledText, DND.DROP_MOVE | DND.DROP_COPY);
+			dropTarget.setTransfer(new Transfer[] { LocalSelectionTransfer.getTransfer() });
+		}
+		dropTarget.addDropListener(dropTargetAdapter);
+
+		DragSource dragSource = (DragSource) styledText.getData(DND.DRAG_SOURCE_KEY);
+		if (dragSource == null) {
+			dragSource = new DragSource(styledText, DND.DROP_COPY | DND.DROP_MOVE);
+
+			Transfer[] types = new Transfer[] { TextTransfer.getInstance() };
+
+			dragSource.setTransfer(types);
+		}
+		dragSource.addDragListener(dragSourceAdapter);
+		// if (dropProxy == null) {
+		// dropProxy = new XWTEditorDropProxy(this);
+		// }
+		final PackageExplorerPart part = PackageExplorerPart.getFromActivePerspective();
+		if (part != null) {
+			TreeViewer treeViewer = part.getTreeViewer();
+			dragSource = (DragSource) treeViewer.getControl().getData(DND.DRAG_SOURCE_KEY);
+			if (dragSource != null) {
+				dragSource.addDragListener(new DragSourceAdapter() {
+					public void dragStart(DragSourceEvent event) {
+						part.setLinkingEnabled(false);
+					}
+				});
+			}
+		}
+	}
+
+	private IProgressMonitor getProgressMonitor() {
+		ProgressManager progresManager = (ProgressManager) getSite().getWorkbenchWindow().getWorkbench().getProgressService();
+		IProgressMonitor monitor = progresManager.getDefaultMonitor();
+		return monitor;
+	}
+
+	private XWTDropTargetListener createDropTargetListener() {
+		XWTDropTargetListener dropTargetListener = new XWTDropTargetListener() {
+			/*
+			 * (non-Javadoc)
+			 * 
+			 * @see org.eclipse.swt.dnd.DropTargetAdapter#drop(org.eclipse.swt.dnd.DropTargetEvent)
+			 */
+			public void drop(DropTargetEvent event) {
+				super.drop(event);
+				IFile file = (IFile) getTextEditor().getEditorInput().getAdapter(IFile.class);
+
+				VEXFileFormator formator = new VEXFileFormator();
+				IDocument document = getTextEditor().getTextViewer().getDocument();
+				try {
+					formator.format(document, file.getContentDescription().getContentType().getId());
+				} catch (CoreException e) {
+					e.printStackTrace();
+				}
+				PackageExplorerPart part = PackageExplorerPart.getFromActivePerspective();
+				if (part != null) {
+					part.setLinkingEnabled(true);
+				}
+			}
+		};
+		dropTargetListener.addDnDAdapter(new PaletteDnDAdapter(this));
+		dropTargetListener.addDnDAdapter(new UserDefinedDnDAdapter(this));
+		dropTargetListener.addDnDAdapter(new ImageDnDAdapter(this));
+		return dropTargetListener;
+	}
+
+	@Override
+	public void setFocus() {
+		super.setFocus();
+		refreshXWTView(super.getTextEditor().getTextViewer().getDocument().get());
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTEditorContributor.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTEditorContributor.java
new file mode 100755
index 0000000..c6a6558
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTEditorContributor.java
@@ -0,0 +1,134 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor;
+
+import org.eclipse.jdt.internal.ui.JavaPluginImages;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+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.ui.IActionBars;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchActionConstants;
+import org.eclipse.ui.actions.ActionFactory;
+import org.eclipse.ui.ide.IDEActionFactory;
+import org.eclipse.ui.part.MultiPageEditorActionBarContributor;
+import org.eclipse.ui.texteditor.ITextEditor;
+import org.eclipse.ui.texteditor.ITextEditorActionConstants;
+import org.eclipse.wst.sse.ui.StructuredTextEditor;
+import org.eclipse.xwt.ui.utils.ImageManager;
+
+/**
+ * Manages the installation/deinstallation of global actions for multi-page editors. Responsible for the redirection of global actions to the active editor. Multi-page contributor replaces the contributors for the individual editors in the multi-page editor.
+ */
+public class XWTEditorContributor extends MultiPageEditorActionBarContributor {
+	private IEditorPart activeEditorPart;
+	private Action previewAction;
+	private Action javaAction;
+
+	/**
+	 * Creates a multi-page contributor.
+	 */
+	public XWTEditorContributor() {
+		super();
+		createActions();
+	}
+
+	/**
+	 * Returns the action registed with the given text editor.
+	 * 
+	 * @return IAction or null if editor is null.
+	 */
+	protected IAction getAction(ITextEditor editor, String actionID) {
+		return (editor == null ? null : editor.getAction(actionID));
+	}
+
+	/*
+	 * (non-JavaDoc) Method declared in AbstractMultiPageEditorActionBarContributor.
+	 */
+
+	public void setActivePage(IEditorPart part) {
+		if (activeEditorPart == part)
+			return;
+
+		activeEditorPart = part;
+
+		IActionBars actionBars = getActionBars();
+		if (actionBars != null) {
+
+			ITextEditor editor = (part instanceof ITextEditor) ? (ITextEditor) part : null;
+
+			actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(), getAction(editor, ITextEditorActionConstants.DELETE));
+			actionBars.setGlobalActionHandler(ActionFactory.UNDO.getId(), getAction(editor, ITextEditorActionConstants.UNDO));
+			actionBars.setGlobalActionHandler(ActionFactory.REDO.getId(), getAction(editor, ITextEditorActionConstants.REDO));
+			actionBars.setGlobalActionHandler(ActionFactory.CUT.getId(), getAction(editor, ITextEditorActionConstants.CUT));
+			actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(), getAction(editor, ITextEditorActionConstants.COPY));
+			actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(), getAction(editor, ITextEditorActionConstants.PASTE));
+			actionBars.setGlobalActionHandler(ActionFactory.SELECT_ALL.getId(), getAction(editor, ITextEditorActionConstants.SELECT_ALL));
+			actionBars.setGlobalActionHandler(ActionFactory.FIND.getId(), getAction(editor, ITextEditorActionConstants.FIND));
+			actionBars.setGlobalActionHandler(IDEActionFactory.BOOKMARK.getId(), getAction(editor, IDEActionFactory.BOOKMARK.getId()));
+			actionBars.updateActionBars();
+		}
+		previewAction.setEnabled(part != null);
+		javaAction.setEnabled(part != null);
+	}
+
+	private void createActions() {
+		previewAction = new Action() {
+			public void run() {
+				if (activeEditorPart instanceof StructuredTextEditor) {
+					StructuredTextEditor structuredTextEditor = (StructuredTextEditor) activeEditorPart;
+					IEditorPart editorPart = structuredTextEditor.getEditorPart();
+					if (editorPart instanceof XWTEditor) {
+						XWTEditor editor = (XWTEditor) editorPart;
+						editor.handlePreview();
+					}
+				}
+				// MessageDialog.openInformation(null, "Editors Plug-in",
+				// "Sample Action Executed");
+			}
+		};
+		previewAction.setText("Preview");
+		previewAction.setToolTipText("Preview");
+		previewAction.setImageDescriptor(ImageManager.OBJ_PREVIEW);
+
+		javaAction = new Action() {
+			public void run() {
+				if (activeEditorPart instanceof StructuredTextEditor) {
+					StructuredTextEditor structuredTextEditor = (StructuredTextEditor) activeEditorPart;
+					IEditorPart editorPart = structuredTextEditor.getEditorPart();
+					if (editorPart instanceof XWTEditor) {
+						XWTEditor editor = (XWTEditor) editorPart;
+						editor.generateCLRCodeAction();
+					}
+				}
+			}
+		};
+		javaAction.setText("Java");
+		javaAction.setToolTipText("Preview");
+		javaAction.setImageDescriptor(JavaPluginImages.DESC_OBJS_CLASS);
+	}
+
+	public void contributeToMenu(IMenuManager manager) {
+		IMenuManager menu = new MenuManager("XWT");
+		manager.prependToGroup(IWorkbenchActionConstants.MB_ADDITIONS, menu);
+		menu.add(previewAction);
+		menu.add(javaAction);
+	}
+
+	public void contributeToToolBar(IToolBarManager manager) {
+		manager.add(new Separator());
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTEditorPlugin.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTEditorPlugin.java
new file mode 100755
index 0000000..46d78ee
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTEditorPlugin.java
@@ -0,0 +1,92 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.pde.PDEPlugin;
+import org.eclipse.jface.text.templates.ContextTypeRegistry;
+import org.eclipse.jface.text.templates.persistence.TemplateStore;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.xwt.vex.palette.customize.CustomWidgetManager;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class XWTEditorPlugin extends AbstractUIPlugin {
+
+	// The plug-in ID
+	public static final String PLUGIN_ID = "org.eclipse.xwt.tools.ui.editor";
+
+	// The shared instance
+	private static XWTEditorPlugin plugin;
+	/**
+	 * The template context type registry for the xml editor.
+	 */
+	private ContextTypeRegistry fContextTypeRegistry;
+	/**
+	 * The template store for the xml editor.
+	 * 
+	 */
+	private TemplateStore fTemplateStore;
+
+	/**
+	 * The constructor
+	 */
+	public XWTEditorPlugin() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext )
+	 */
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+
+		PDEPlugin.getDefault();
+		
+		// Bug 274057 - Start
+		for (Class<?> cls: CustomWidgetManager.getInstance().getWidgetClassList())
+		{
+			XWT.registerMetaclass(cls);
+		}
+		// Bug 274057 - end
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext )
+	 */
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance
+	 * 
+	 * @return the shared instance
+	 */
+	public static XWTEditorPlugin getDefault() {
+		return plugin;
+	}
+
+	public static void log(Throwable e) {
+		getDefault().getLog().log(new Status(IStatus.ERROR, getDefault().getBundle().getSymbolicName(), -1, "", e));
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTFileChecker.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTFileChecker.java
new file mode 100755
index 0000000..74d32b1
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTFileChecker.java
@@ -0,0 +1,115 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.xwt.ui.editor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.wst.sse.ui.StructuredTextEditor;
+import org.eclipse.xwt.ui.utils.ProjectContext;
+import org.eclipse.xwt.vex.VEXFileChecker;
+import org.eclipse.xwt.vex.problems.IProblemChecker;
+import org.eclipse.xwt.vex.problems.Problem;
+import org.eclipse.xwt.vex.problems.ProblemCheckerRegistry;
+
+/**
+ * @author jliu
+ * 
+ */
+public class XWTFileChecker implements VEXFileChecker {
+
+	public static final String EXTENSION_ID = "org.eclipse.xwt.tools.ui.editor.problemchecker";
+	private final String MARKER_ID = XWTEditorPlugin.PLUGIN_ID + ".XAMLEditorMaker";
+	private StructuredTextEditor fTextEditor = null;
+
+	public XWTFileChecker(StructuredTextEditor fTextEditor) {
+		this.fTextEditor = fTextEditor;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.vex.VEXFileChecker#doCheck(java.lang.String)
+	 */
+	public void doCheck(String javaName) {
+		ProjectContext.stop();
+		deleteMarkers();
+
+		List<IProblemChecker> allCheckers = ProblemCheckerRegistry.INSTANCE.getCheckers(EXTENSION_ID);
+		if (allCheckers.isEmpty()) {
+			return;
+		}
+
+		List<Problem> problems = new ArrayList<Problem>();
+		for (IProblemChecker checker : allCheckers) {
+			if (!checker.canChecked(fTextEditor, javaName)) {
+				continue;
+			}
+			List<Problem> subs = checker.checkProblems(fTextEditor, javaName);
+			if (subs != null) {
+				problems.addAll(subs);
+			}
+		}
+		if (problems.isEmpty()) {
+			return;
+		}
+		IFile file = (IFile) fTextEditor.getEditorInput().getAdapter(IFile.class);
+		for (Problem problem : problems) {
+			makeMaker(file, problem);
+		}
+		ProjectContext.start();
+	}
+
+	private void makeMaker(IFile file, Problem problem) {
+		try {
+			IMarker marker = file.createMarker(MARKER_ID);
+			marker.setAttribute(IMarker.TRANSIENT, true);
+			marker.setAttribute(IMarker.MESSAGE, problem.getMessage());
+			marker.setAttribute(IMarker.CHAR_START, problem.start);
+			marker.setAttribute(IMarker.CHAR_END, problem.end);
+			int type = problem.getType();
+			switch (type) {
+			case Problem.ERROR:
+				marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_ERROR);
+				break;
+			case Problem.INFO:
+				marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_INFO);
+				break;
+			case Problem.WARNING:
+				marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_WARNING);
+				break;
+			}
+			marker.setAttribute(IMarker.LINE_NUMBER, problem.line);
+		} catch (CoreException e) {
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.vex.VEXFileChecker#deleteMarkers()
+	 */
+	public void deleteMarkers() {
+		IFile file = (IFile) fTextEditor.getEditorInput().getAdapter(IFile.class);
+		try {
+			file.deleteMarkers(null, true, IResource.DEPTH_INFINITE);
+		} catch (CoreException e) {
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTStructuredTextViewerConfiguration.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTStructuredTextViewerConfiguration.java
new file mode 100755
index 0000000..79f6d32
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTStructuredTextViewerConfiguration.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor;
+
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.text.source.ISourceViewer;
+import org.eclipse.wst.sse.core.text.IStructuredPartitions;
+import org.eclipse.wst.xml.core.text.IXMLPartitions;
+import org.eclipse.wst.xml.ui.StructuredTextViewerConfigurationXML;
+import org.eclipse.wst.xml.ui.internal.contentassist.NoRegionContentAssistProcessor;
+
+public class XWTStructuredTextViewerConfiguration extends StructuredTextViewerConfigurationXML {
+
+	public XWTStructuredTextViewerConfiguration() {
+	}
+
+	protected IContentAssistProcessor[] getContentAssistProcessors(ISourceViewer sourceViewer, String partitionType) {
+		IContentAssistProcessor[] processors = null;
+
+		if ((partitionType == IStructuredPartitions.DEFAULT_PARTITION) || (partitionType == IXMLPartitions.XML_DEFAULT)) {
+			processors = new IContentAssistProcessor[] { new XWTContentAssistProcessor() };
+		} else if (partitionType == IStructuredPartitions.UNKNOWN_PARTITION) {
+			processors = new IContentAssistProcessor[] { new NoRegionContentAssistProcessor() };
+		}
+
+		return processors;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTUIContext.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTUIContext.java
new file mode 100755
index 0000000..f9c0927
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/XWTUIContext.java
@@ -0,0 +1,105 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.xwt.vex.AbstractContext;
+import org.eclipse.xwt.vex.dom.DomHelper;
+import org.w3c.dom.Node;
+
+public class XWTUIContext extends AbstractContext {
+
+	public URI getDefaultPaletteFile() {
+		return URI.createPlatformPluginURI(XWTEditorPlugin.PLUGIN_ID + "/tools/toolkit.toolpalette", false);
+	}
+
+	public String getToolViewID() {
+		return "org.eclipse.gef.ui.palette_view";
+	}
+
+	public String getTemplateContextID() {
+		return "org.eclipse.xwt.tools.ui.editor.contextType";
+	}
+
+	public boolean hasType(Node node) {
+		String name = getNodeName(node);
+		if (name.indexOf(".") != -1) {
+			return false;
+		}
+		IMetaclass metaclass = XWT.getMetaclass(name, DomHelper.lookupNamespaceURI(node));
+		return (metaclass != null);
+	}
+
+	private String getNodeName(Node node) {
+		String name = node.getNodeName();
+		int index = name.indexOf(":");
+		if (index != -1) {
+			name = name.substring(index + 1);
+		}
+		return name;
+	}
+
+	public boolean isEventHandle(Node node, String eventName) {
+		String name = getNodeName(node);
+		if (name.indexOf(".") != -1) {
+			return false;
+		}
+		IMetaclass metaclass = XWT.getMetaclass(name, DomHelper.lookupNamespaceURI(node));
+		return (metaclass != null) && metaclass.findEvent(eventName) != null;
+	}
+
+	protected boolean isKindOf(Node node, String targetType) {
+		if (node.getNodeType() == Node.DOCUMENT_NODE) {
+			return false;
+		}
+		String namespace = DomHelper.lookupNamespaceURI(node);
+		String tagName = getNodeName(node);
+		if (tagName.indexOf(".") > 0) {
+			tagName = (tagName.substring(tagName.lastIndexOf(".") + 1));
+			tagName = Character.toUpperCase(tagName.charAt(0)) + tagName.substring(1);
+			namespace = IConstants.XWT_NAMESPACE;
+		}
+		try {
+			return isKindOf(tagName, namespace, targetType);
+		} catch (Exception e) {
+			return false;
+		}
+	}
+
+	private boolean isKindOf(String nodeName, String namespace, String targetType) throws Exception {
+		if (nodeName == null || namespace == null || targetType == null) {
+			return false;
+		}
+		if ("Composite".equalsIgnoreCase(targetType)) {
+			IMetaclass metaclass = XWT.getMetaclass(nodeName, namespace);
+			if (metaclass == null) {
+				return false;
+			} else {
+				return Composite.class.isAssignableFrom(metaclass.getType());
+			}
+		} else if ("Control".equalsIgnoreCase(targetType)) {
+			IMetaclass metaclass = XWT.getMetaclass(nodeName, namespace);
+			if (metaclass == null) {
+				return false;
+			} else {
+				return Control.class.isAssignableFrom(metaclass.getType());
+			}
+		}
+		return targetType.equalsIgnoreCase(nodeName);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/AbstractProblemChecker.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/AbstractProblemChecker.java
new file mode 100755
index 0000000..f90c7e2
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/AbstractProblemChecker.java
@@ -0,0 +1,150 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor.checkers;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
+import org.eclipse.wst.sse.ui.StructuredTextEditor;
+import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
+import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.xwt.vex.problems.IProblemChecker;
+import org.eclipse.xwt.vex.problems.Problem;
+import org.w3c.dom.Node;
+
+public abstract class AbstractProblemChecker implements IProblemChecker {
+
+	protected IJavaProject getJavaProject(StructuredTextEditor fTextEditor) {
+		return JavaCore.create(getFile(fTextEditor).getProject());
+	}
+
+	protected IFile getFile(StructuredTextEditor fTextEditor) {
+		return (IFile) fTextEditor.getEditorInput().getAdapter(IFile.class);
+	}
+
+	protected Node getRoot(StructuredTextEditor fTextEditor) {
+		StructuredTextViewer textViewer = fTextEditor.getTextViewer();
+		if (textViewer == null) {
+			return null;
+		}
+		IndexedRegion root = ContentAssistUtils.getNodeAt(textViewer, 0);
+		if (root instanceof Node) {
+			return (Node) root;
+		}
+		return null;
+	}
+
+	protected Node getNode(StructuredTextEditor textEditor) {
+		StructuredTextViewer textViewer = textEditor.getTextViewer();
+		if (textViewer == null) {
+			return null;
+		}
+
+		StyledText textWidget = textViewer.getTextWidget();
+		if (textWidget == null || textWidget.isDisposed()) {
+			return null;
+		}
+		int offset = 0;
+		try {
+			offset = textWidget.getCaretOffset();
+		} catch (Exception e) {
+			return null;
+		}
+		if (offset == 0) {
+			return null;
+		}
+		IndexedRegion treeNode = ContentAssistUtils.getNodeAt(textViewer, offset);
+		if (treeNode instanceof Node) {
+			return (Node) treeNode;
+		}
+		return null;
+	}
+
+	protected Problem createProblem(StructuredTextEditor fTextEditor, Node node, String msg, int type) {
+
+		int startOffset = 0;
+		if (node instanceof IDOMNode) {
+			startOffset = ((IDOMNode) node).getStartOffset();
+		}
+		int endOffset = 0;
+		if (node instanceof IDOMNode) {
+			endOffset = ((IDOMNode) node).getEndOffset();
+		}
+		int line = 0;
+		try {
+			StructuredTextViewer textViewer = fTextEditor.getTextViewer();
+			if (textViewer != null) {
+				line = textViewer.getDocument().getLineOfOffset(startOffset) + 1;
+			}
+		} catch (BadLocationException e) {
+		}
+		return createProblem(msg, type, node, startOffset, endOffset, line);
+	}
+
+	protected Problem createProblem(String message, int type, Object source, int start, int end, int line) {
+		Problem problem = new Problem(message, type);
+		problem.setSource(source);
+		problem.start = start;
+		problem.end = end;
+		problem.line = line;
+		return problem;
+	}
+
+	protected boolean isValid(Node node) {
+		if (node == null) {
+			return false;
+		}
+		String nodeName = node.getNodeName();
+		if (nodeName == null || nodeName.equals("") || nodeName.equals("#text")) {
+			return false;
+		}
+		return true;
+	}
+
+	protected String getTagName(Node node) {
+		if (!isValid(node)) {
+			return null;
+		}
+		return node.getNodeName();
+	}
+
+	public List<Problem> checkProblems(StructuredTextEditor textEditor, String javaName) {
+		List<Problem> problems = new ArrayList<Problem>();
+		Node root = getRoot(textEditor);
+		checkProblems(textEditor, javaName, root, problems, true);
+		return problems;
+	}
+
+	// protected List<Property> findProperties(String tagName, String ns) {
+	// List<Property> props = new ArrayList<Property>();
+	// Metaclass metaclass = UPF.getMetaclass(tagName, ns);
+	// if (metaclass != null) {
+	// props.addAll(metaclass.getAllProperties());
+	// props.addAll(metaclass.getAllAttachedProperties());
+	// }
+	// return props;
+	// }
+
+	protected abstract void checkProblems(StructuredTextEditor textEditor, String javaName, Node node, List<Problem> problems, boolean includeChildren);
+
+	public boolean canChecked(StructuredTextEditor textEditor, String javaName) {
+		return getRoot(textEditor) != null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/ElementEventsChecker.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/ElementEventsChecker.java
new file mode 100755
index 0000000..9faa207
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/ElementEventsChecker.java
@@ -0,0 +1,131 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor.checkers;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IMethod;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.wst.sse.ui.StructuredTextEditor;
+import org.eclipse.xwt.vex.dom.DomHelper;
+import org.eclipse.xwt.vex.problems.Problem;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * @author jliu
+ * 
+ */
+public class ElementEventsChecker extends AbstractProblemChecker {
+
+	protected void checkProblems(StructuredTextEditor textEditor, String javaName, Node node, List<Problem> problems, boolean includeChildren) {
+
+		if (!isValid(node)) {
+			return;
+		}
+
+		if (includeChildren) {
+			NodeList childNodes = node.getChildNodes();
+			if (childNodes != null) {
+				int length = childNodes.getLength();
+				for (int i = 0; i < length; i++) {
+					Node item = childNodes.item(i);
+					checkProblems(textEditor, javaName, item, problems, includeChildren);
+				}
+			}
+		}
+
+		String nodeName = getTagName(node);
+		NamedNodeMap attributes = node.getAttributes();
+		if (attributes == null) {
+			return;
+		}
+		int attrLength = attributes.getLength();
+		List<String> events = getEvents(nodeName, DomHelper.lookupNamespaceURI(node));
+		if (attrLength == 0 || events.isEmpty()) {
+			return;
+		}
+		for (int j = 0; j < attrLength; j++) {
+			Node attr = attributes.item(j);
+			String attrName = getTagName(attr);
+			if (attrName == null) {
+				continue;
+			}
+			if (events.contains(attrName)) {
+				String nodeValue = attr.getNodeValue();
+				if (nodeValue != null) {
+					List<String> methods = getJavaMethods(textEditor, javaName);
+					if (!methods.contains(nodeValue)) {
+						Problem problem = createProblem(textEditor, node, "Java method \"" + nodeValue + "\" as event of \"" + nodeName + "\" not found", Problem.ERROR);
+						problems.add(problem);
+					}
+				}
+			}
+		}
+
+	}
+
+	private List<String> getJavaMethods(StructuredTextEditor textEditor, String hostClassName) {
+		List<String> results = new ArrayList<String>();
+		IType javeType = getJaveType(textEditor, hostClassName);
+		if (javeType != null) {
+			try {
+				IMethod[] methods = javeType.getMethods();
+				for (IMethod method : methods) {
+					results.add(method.getElementName());
+				}
+			} catch (JavaModelException e) {
+				return results;
+			}
+		}
+		return results;
+	}
+
+	private IType getJaveType(StructuredTextEditor textEditor, String hostClassName) {
+		IJavaProject javaProject = getJavaProject(textEditor);
+		if (javaProject != null) {
+			try {
+				return javaProject.findType(hostClassName);
+			} catch (JavaModelException e) {
+				return null;
+			}
+		}
+		return null;
+	}
+
+	private List<String> getEvents(String tagName, String ns) {
+		List<String> events = new ArrayList<String>();
+		// Metaclass metaclass = UPF.getMetaclass(tagName, ns);
+		// if (metaclass == null) {
+		// return Collections.EMPTY_LIST;
+		// }
+		// Collection<Event> allEvents = metaclass.getAllEvents();
+		// for (Event event : allEvents) {
+		// events.add(event.getName());
+		// }
+		// Collection<Event> allAttachedEvents = metaclass.getAllAttachedEvents();
+		// for (Event event : allAttachedEvents) {
+		// events.add(event.getName());
+		// }
+		return events;
+	}
+
+	@Override
+	public boolean canChecked(StructuredTextEditor textEditor, String javaName) {
+		return javaName != null && super.canChecked(textEditor, javaName);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/ElementNameChecker.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/ElementNameChecker.java
new file mode 100755
index 0000000..e31036b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/ElementNameChecker.java
@@ -0,0 +1,85 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor.checkers;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.wst.sse.ui.StructuredTextEditor;
+import org.eclipse.xwt.vex.problems.Problem;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * 
+ * @author jliu
+ */
+public class ElementNameChecker extends AbstractProblemChecker {
+
+	public List<Problem> checkProblems(StructuredTextEditor textEditor, String javaName) {
+
+		List<Problem> problems = new ArrayList<Problem>();
+
+		Node root = getRoot(textEditor);
+		checkProblems(textEditor, root, problems, new ArrayList<String>());
+
+		return problems;
+	}
+
+	private void checkProblems(StructuredTextEditor textEditor, Node node, List<Problem> problems, List<String> existedNames) {
+		if (!isValid(node)) {
+			return;
+		}
+
+		NodeList childNodes = node.getChildNodes();
+		if (childNodes != null) {
+			int length = childNodes.getLength();
+			for (int i = 0; i < length; i++) {
+				Node item = childNodes.item(i);
+				checkProblems(textEditor, item, problems, existedNames);
+			}
+		}
+
+		NamedNodeMap attributes = node.getAttributes();
+		if (attributes == null) {
+			return;
+		}
+		int attrLength = attributes.getLength();
+		for (int j = 0; j < attrLength; j++) {
+			Node attr = attributes.item(j);
+			String nodeName = attr.getNodeName();
+			if (nodeName == null) {
+				continue;
+			}
+			if ("x:Name".equalsIgnoreCase(nodeName)) {
+				String nodeValue = attr.getNodeValue();
+				if (nodeValue == null) {
+					continue;
+				}
+				if (existedNames.contains(nodeValue)) {
+					Problem problem = createProblem(textEditor, node, "Element Name \"" + nodeValue + "\" is already used.", Problem.ERROR);
+					problems.add(problem);
+				} else {
+					existedNames.add(nodeValue);
+				}
+			}
+		}
+	}
+
+	@Override
+	protected void checkProblems(StructuredTextEditor textEditor, String javaName, Node node, List<Problem> problems, boolean includeChildren) {
+		// Do nothing
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/ElementPropertiesChecker.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/ElementPropertiesChecker.java
new file mode 100755
index 0000000..578dae0
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/ElementPropertiesChecker.java
@@ -0,0 +1,162 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor.checkers;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+
+import org.eclipse.wst.sse.ui.StructuredTextEditor;
+import org.eclipse.xwt.vex.dom.DomHelper;
+import org.eclipse.xwt.vex.problems.Problem;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * 
+ * @author jliu
+ * 
+ */
+public class ElementPropertiesChecker extends AbstractProblemChecker {
+
+	private static final String XMLNS_TAG = "xmlns";
+
+	protected void checkProblems(StructuredTextEditor textEditor, String javaName, Node node, List<Problem> problems, boolean includeChindren) {
+		if (!isValid(node)) {
+			return;
+		}
+		NodeList childNodes = node.getChildNodes();
+		if (includeChindren && childNodes != null) {
+			int length = childNodes.getLength();
+			for (int i = 0; i < length; i++) {
+				Node item = childNodes.item(i);
+				if (includeChindren) {
+					checkProblems(textEditor, javaName, item, problems, includeChindren);
+				}
+			}
+		}
+
+		NamedNodeMap attributes = node.getAttributes();
+		if (attributes == null) {
+			return;
+		}
+		int attrLength = attributes.getLength();
+		if (attrLength == 0) {
+			return;
+		}
+		String nodeName = getTagName(node);
+		HashMap<String, List<String>> map = null;
+		List<String> properties = getProperties(nodeName, DomHelper.lookupNamespaceURI(node), true);
+		if (properties == null) {
+			properties = Collections.EMPTY_LIST;
+		}
+
+		for (int j = 0; j < attrLength; j++) {
+			Node attr = attributes.item(j);
+			String attrName = getTagName(attr);
+			if (attrName == null || isLoadingTag(attrName)) {
+				continue;
+			}
+			int index = attrName.indexOf('.');
+			if (index != -1) {
+				String type = attrName.substring(0, index);
+				String propertyName = attrName.substring(index + 1);
+				if (map == null) {
+					map = new HashMap<String, List<String>>();
+				}
+				collectAttachedProperties(type, DomHelper.lookupNamespaceURI(node, attr), map, true);
+				List<String> attachedProperties = map.get(type);
+				if (attachedProperties == null) {
+					attachedProperties = Collections.EMPTY_LIST;
+				}
+				if (!attachedProperties.contains(propertyName)) {
+					Problem error = createProblem(textEditor, node, "Attached Property \"" + propertyName + "\" of \"" + type + "\" doesn't exist", Problem.ERROR);
+					problems.add(error);
+				}
+			} else if (!properties.contains(attrName)) {
+				Problem error = createProblem(textEditor, node, "Property \"" + attrName + "\" of \"" + nodeName + "\" doesn't exist", Problem.ERROR);
+				problems.add(error);
+			}
+		}
+	}
+
+	private boolean isLoadingTag(String tagName) {
+		if (tagName == null || tagName.equals("")) {
+			return false;
+		}
+		if (tagName.indexOf(":") != -1) {
+			return true;
+		}
+		return XMLNS_TAG.endsWith(tagName) || tagName.startsWith(XMLNS_TAG);
+	}
+
+	private List<String> getProperties(String nodeName, String namespace, boolean includedEvents) {
+		int index = nodeName.indexOf(':');
+		String elementName = nodeName.substring(index + 1);
+
+		// Metaclass metaclass = UPF.getMetaclass(elementName, namespace);
+		// if (metaclass == null) {
+		// // user defined class
+		// if (index != -1) {
+		// String packageName = namespace;
+		// if (namespace.startsWith(IConstants.XAML_CLR_NAMESPACE_PROTO)) {
+		// packageName = namespace.substring(IConstants.XAML_CLR_NAMESPACE_PROTO.length());
+		// }
+		// String qualidiedName = packageName + "." + elementName;
+		// try {
+		// Class kclass = UPF.getLoadingContext().getClassLoader().loadClass(qualidiedName);
+		// metaclass = UPF.bindsMetaclass(kclass);
+		// } catch (ClassNotFoundException e) {
+		// e.printStackTrace();
+		// }
+		// }
+		// if (metaclass == null) {
+		// return Collections.EMPTY_LIST;
+		// }
+		// }
+		List<String> properties = new ArrayList<String>();
+		// Collection<Property> allProperties = metaclass.getAllProperties();
+		// for (Property property : allProperties) {
+		// properties.add(property.getName());
+		// }
+		// if (includedEvents) {
+		// for (Event event : metaclass.getAllEvents()) {
+		// properties.add(event.getName());
+		// }
+		// }
+		return properties;
+	}
+
+	private void collectAttachedProperties(String nodeName, String namespace, HashMap<String, List<String>> map, boolean includedEvents) {
+		if (map.containsKey(nodeName)) {
+			return;
+		}
+		// Metaclass metaclass = UPF.getMetaclass(nodeName, namespace);
+		// if (metaclass == null) {
+		// return;
+		// }
+		// List<String> properties = new ArrayList<String>();
+		// map.put(nodeName, properties);
+		// Collection<Property> allProperties = metaclass.getAllAttachedProperties();
+		// for (Property property : allProperties) {
+		// properties.add(property.getName());
+		// }
+		// if (includedEvents) {
+		// for (Event event : metaclass.getAllAttachedEvents()) {
+		// properties.add(event.getName());
+		// }
+		// }
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/IntegerPropertyChecker.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/IntegerPropertyChecker.java
new file mode 100755
index 0000000..805e0d4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/checkers/IntegerPropertyChecker.java
@@ -0,0 +1,102 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor.checkers;
+
+import java.util.List;
+
+import org.eclipse.wst.sse.ui.StructuredTextEditor;
+import org.eclipse.xwt.vex.problems.Problem;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+public class IntegerPropertyChecker extends AbstractProblemChecker {
+
+	protected void checkProblems(StructuredTextEditor textEditor, String javaName, Node node, List<Problem> problems, boolean includeChildren) {
+		if (!isValid(node)) {
+			return;
+		}
+
+		NodeList childNodes = node.getChildNodes();
+		if (includeChildren && childNodes != null) {
+			int length = childNodes.getLength();
+			for (int i = 0; i < length; i++) {
+				Node child = childNodes.item(i);
+				checkProblems(textEditor, javaName, child, problems, includeChildren);
+			}
+		}
+
+		String nodeName = getTagName(node);
+
+		NamedNodeMap attributes = node.getAttributes();
+		if (attributes == null) {
+			return;
+		}
+		int length = attributes.getLength();
+		for (int i = 0; i < length; i++) {
+			Node attr = attributes.item(i);
+			String attrName = getTagName(attr);
+			if (attrName == null) {
+				continue;
+			}
+			boolean isDb = isInteger(node, attrName);
+			if (isDb) {
+				String nodeValue = attr.getNodeValue();
+				double value = -1;
+				try {
+					value = Integer.parseInt(nodeValue);
+				} catch (NumberFormatException e) {
+					Problem problem = createProblem(textEditor, node, "Error Integer Format for Property \"" + attrName + "\" of \"" + nodeName + "\".", Problem.ERROR);
+					problems.add(problem);
+				}
+				if (value <= 0) {
+					if (attrName.equals("ColumnSpan")) {
+						Problem problem = createProblem(textEditor, node, "\"ColumnSpan\" must more than 0.", Problem.ERROR);
+						problems.add(problem);
+					} else if (attrName.equals("RowSpan")) {
+						Problem problem = createProblem(textEditor, node, "\"RowSpan\" must more than 0.", Problem.ERROR);
+						problems.add(problem);
+					}
+				}
+			}
+		}
+	}
+
+	private boolean isInteger(Node node, String attrName) {
+		String nodeName = getTagName(node);
+		if (nodeName == null) {
+			return false;
+		}
+		// Metaclass metaclass = UPF.getMetaclass(nodeName, DomHelper.lookupNamespaceURI(node));
+		// if (metaclass == null) {
+		// return false;
+		// }
+		// Property property = metaclass.findProperty(attrName);
+		// if (property == null) {
+		// property = metaclass.findAttachedProperty(attrName);
+		// }
+		// Node parentNode = node.getParentNode();
+		// if (property == null && parentNode != null) {
+		// String parent = getTagName(parentNode);
+		// Metaclass pMetaclass = UPF.getMetaclass(parent, DomHelper.lookupNamespaceURI(parentNode));
+		// if (pMetaclass != null && pMetaclass.isSubclassOf(Panel.metaclass)) {
+		// return isInteger(parentNode, attrName);
+		// }
+		// }
+		// if (property == null) {
+		// return false;
+		// }
+		// return property instanceof IntegerProperty;
+		return false;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/DnDAdapter.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/DnDAdapter.java
new file mode 100755
index 0000000..3409955
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/DnDAdapter.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor.dnd;
+
+import org.eclipse.swt.dnd.DropTargetListener;
+import org.eclipse.xwt.vex.toolpalette.ContextType;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public interface DnDAdapter extends DropTargetListener {
+
+	boolean isAccept();
+
+	String getScope();
+
+	ContextType getContextType();
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/DnDAdapterImpl.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/DnDAdapterImpl.java
new file mode 100755
index 0000000..83ece51
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/DnDAdapterImpl.java
@@ -0,0 +1,248 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor.dnd;
+
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.Position;
+import org.eclipse.jface.text.templates.ContextTypeRegistry;
+import org.eclipse.jface.text.templates.DocumentTemplateContext;
+import org.eclipse.jface.text.templates.GlobalTemplateVariables;
+import org.eclipse.jface.text.templates.Template;
+import org.eclipse.jface.text.templates.TemplateBuffer;
+import org.eclipse.jface.text.templates.TemplateContextType;
+import org.eclipse.jface.text.templates.TemplateVariable;
+import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.DropTargetEvent;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
+import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
+import org.eclipse.xwt.ui.editor.XWTEditor;
+import org.eclipse.xwt.vex.VEXContext;
+import org.eclipse.xwt.vex.VEXTextEditorHelper;
+import org.w3c.dom.Node;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public abstract class DnDAdapterImpl implements DnDAdapter {
+
+	static final int CARET_WIDTH = 2;
+	private int dropCaretOffset = -1;
+	private XWTEditor editor;
+	private LocalSelectionTransfer transfer = LocalSelectionTransfer.getTransfer();
+
+	/**
+	 * 
+	 */
+	public DnDAdapterImpl(XWTEditor editor) {
+		this.setEditor(editor);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapter#drop(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	public void drop(DropTargetEvent event) {
+		Object selection = getSelection();
+		if (!isAccept()) {
+			return;
+		}
+
+		Template template = createTemplate(selection);
+		if (template == null) {
+			return;
+		}
+		drop(template, getDropCaretOffset(), 0);
+	}
+
+	/**
+	 * @param template
+	 */
+	protected void drop(Template template, int dropCaretOffset, int length) {
+		IDocument document = editor.getTextEditor().getTextViewer().getDocument();
+		ContextTypeRegistry registry = XMLUIPlugin.getDefault().getTemplateContextRegistry();
+		if (registry != null) {
+			TemplateContextType type = registry.getContextType(template.getContextTypeId());
+
+			DocumentTemplateContext templateContext = new DocumentTemplateContext(type, document, new Position(dropCaretOffset, length));
+			if (templateContext.canEvaluate(template)) {
+				try {
+					TemplateBuffer templateBuffer = templateContext.evaluate(template);
+					String templateString = templateBuffer.getString();
+					document.replace(dropCaretOffset, length, templateString);
+
+					StyledText styledText = editor.getTextWidget();
+					int position = getCursorOffset(templateBuffer) + dropCaretOffset;
+					styledText.setCaretOffset(position);
+					styledText.setFocus();
+				} catch (Exception e) {
+					throw new RuntimeException(e);
+				}
+			}
+		}
+	}
+
+	/**
+	 * @param selection
+	 *                      TODO
+	 * @return
+	 */
+	protected abstract Template createTemplate(Object selection);
+
+	private int getCursorOffset(TemplateBuffer buffer) {
+		TemplateVariable[] variables = buffer.getVariables();
+		for (int i = 0; i != variables.length; i++) {
+			TemplateVariable variable = variables[i];
+			if (variable.getType().equals(GlobalTemplateVariables.Cursor.NAME))
+				return variable.getOffsets()[0];
+		}
+
+		return buffer.getString().length();
+	}
+
+	public void dragOver(DropTargetEvent event) {
+		if (!isAccept()) {
+			return;
+		}
+		VEXContext context = editor.getContext();
+
+		Node node = getCurrentNode(event);
+		int position = context.findDropPosition(node, getScope(), getContextType(), getCursor(event));
+		if (position < 0) {
+			event.detail = DND.DROP_NONE;
+		} else {
+			StyledText styledText = editor.getTextWidget();
+			setDropCaretOffset(position);
+			refreshCaret(styledText, getDropCaretOffset());
+		}
+	}
+
+	protected Node getCurrentNode(DropTargetEvent event) {
+		StructuredTextViewer textViewer = editor.getTextEditor().getTextViewer();
+		return VEXTextEditorHelper.getNode(textViewer, getCursor(event));
+	}
+
+	protected int getCursor(DropTargetEvent event) {
+		StructuredTextViewer textViewer = editor.getTextEditor().getTextViewer();
+		return VEXTextEditorHelper.getOffsetAtPoint(textViewer, new Point(event.x, event.y));
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.swt.dnd.DropTargetListener#dragEnter(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	public void dragEnter(DropTargetEvent event) {
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.swt.dnd.DropTargetListener#dragLeave(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	public void dragLeave(DropTargetEvent event) {
+		StyledText styledText = editor.getTextWidget();
+		if (getDropCaretOffset() != -1) {
+			refreshCaret(styledText, getDropCaretOffset());
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.swt.dnd.DropTargetListener#dragOperationChanged(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	public void dragOperationChanged(DropTargetEvent event) {
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.swt.dnd.DropTargetListener#dropAccept(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	public void dropAccept(DropTargetEvent event) {
+
+	}
+
+	protected void refreshCaret(StyledText text, int newOffset) {
+		if (newOffset != -1) {
+			Point newPos = text.getLocationAtOffset(newOffset);
+			int newHeight = text.getLineHeight(newOffset);
+			text.redraw(newPos.x, newPos.y, CARET_WIDTH, newHeight, false);
+		}
+	}
+
+	/**
+	 * @param editor
+	 *                   the editor to set
+	 */
+	public void setEditor(XWTEditor editor) {
+		this.editor = editor;
+	}
+
+	/**
+	 * @return the editor
+	 */
+	public XWTEditor getEditor() {
+		return editor;
+	}
+
+	protected Object getSelection() {
+		IStructuredSelection selection = (IStructuredSelection) transfer.getSelection();
+		if (selection != null) {
+			return selection.getFirstElement();
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapter#isAccept()
+	 */
+	public boolean isAccept() {
+		Object selection = getSelection();
+		if (selection == null) {
+			return false;
+		}
+		return isAccept(selection);
+	}
+
+	/**
+	 * @param selection
+	 * @return
+	 */
+	protected abstract boolean isAccept(Object selection);
+
+	/**
+	 * @param dropCaretOffset
+	 *                            the dropCaretOffset to set
+	 */
+	public void setDropCaretOffset(int dropCaretOffset) {
+		this.dropCaretOffset = dropCaretOffset;
+	}
+
+	/**
+	 * @return the dropCaretOffset
+	 */
+	public int getDropCaretOffset() {
+		return dropCaretOffset;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/ImageDnDAdapter.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/ImageDnDAdapter.java
new file mode 100755
index 0000000..3bb8258
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/ImageDnDAdapter.java
@@ -0,0 +1,231 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor.dnd;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.utils.PathHelper;
+import org.eclipse.jface.text.templates.Template;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.DropTargetEvent;
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.xwt.ui.editor.XWTEditor;
+import org.eclipse.xwt.vex.VEXContext;
+import org.eclipse.xwt.vex.dom.DomHelper;
+import org.eclipse.xwt.vex.toolpalette.ContextType;
+import org.w3c.dom.NamedNodeMap;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class ImageDnDAdapter extends DnDAdapterImpl {
+
+	private static List<String> supportedImageExts = new ArrayList<String>();
+	private static List<String> supportedImageAttrs = new ArrayList<String>();
+	static {
+		supportedImageExts.add("png");
+		supportedImageExts.add("gif");
+		supportedImageExts.add("bmp");
+	}
+	static {
+		supportedImageAttrs.add("image");
+		supportedImageAttrs.add("backgroundImage");
+	}
+	private IFile image;
+	private IFile editorInput;
+	private IDOMNode acceptAttr;
+
+	/**
+	 * @param editor
+	 */
+	public ImageDnDAdapter(XWTEditor editor) {
+		super(editor);
+		editorInput = ((FileEditorInput) editor.getEditorInput()).getFile();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapterImpl#createTemplate(java.lang.Object)
+	 */
+	@Override
+	protected Template createTemplate(Object selection) {
+		String pattern = computePath();
+		if (acceptAttr == null) {
+			pattern = "image=\"" + pattern + "\"";
+		}
+		return new Template("image", "", getContextType().getName(), pattern, true);
+	}
+
+	/**
+	 * @return
+	 */
+	private String computePath() {
+		if (editorInput != null) {
+			return PathHelper.getRelativePath(editorInput.getLocation().toString(), image.getLocation().toString());
+		}
+		return image.getLocation().toString();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapterImpl#isAccept(java.lang.Object)
+	 */
+	@Override
+	protected boolean isAccept(Object selection) {
+		if (selection instanceof IFile) {
+			String ext = ((IFile) selection).getFileExtension();
+			boolean contains = supportedImageExts.contains(ext);
+			if (contains) {
+				image = (IFile) selection;
+			}
+			return contains;
+		}
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapterImpl#drop(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	@Override
+	public void drop(DropTargetEvent event) {
+		Object selection = getSelection();
+		if (!isAccept()) {
+			return;
+		}
+
+		Template template = createTemplate(selection);
+		if (template == null) {
+			return;
+		}
+		String nodeValue = acceptAttr == null ? "" : acceptAttr.getNodeValue();
+		drop(template, getDropCaretOffset(), nodeValue == null ? 0 : nodeValue.length());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapterImpl#dragOver(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	@Override
+	public void dragOver(DropTargetEvent event) {
+		if (!isAccept()) {
+			return;
+		}
+		IDOMNode node = (IDOMNode) getCurrentNode(event);
+		int cursor = getCursor(event);
+		VEXContext context = getEditor().getContext();
+		int position = context.findDropPosition(node, getScope(), getContextType(), cursor);
+		if (position >= 0) {
+			NamedNodeMap attributes = node.getAttributes();
+			if (attributes != null) {
+				acceptAttr = getAttr(node, cursor);
+				StyledText styledText = getEditor().getTextWidget();
+				if (acceptAttr == null && hasImageFeature(node)) {
+					setDropCaretOffset(cursor);
+					refreshCaret(styledText, getDropCaretOffset());
+					return;
+				} else if (acceptAttr != null && supportedImageAttrs.contains(acceptAttr.getNodeName())) {
+					setDropCaretOffset(getInsertion(acceptAttr, cursor));
+					refreshCaret(styledText, getDropCaretOffset());
+					return;
+				}
+			}
+		}
+		event.detail = DND.DROP_NONE;
+	}
+
+	/**
+	 * @param node
+	 * @return
+	 */
+	private boolean hasImageFeature(IDOMNode node) {
+		boolean hasImageAttr = getImageAttr(node) == null;
+		String nodeName = node.getNodeName();
+		IMetaclass metaclass = XWT.getMetaclass(nodeName, DomHelper.lookupNamespaceURI(node));
+		if (metaclass != null) {
+			hasImageAttr &= metaclass.findProperty("image") != null;
+		}
+		return hasImageAttr;
+	}
+
+	/**
+	 * @param acceptAttr
+	 * @param cursor
+	 * @return
+	 */
+	private int getInsertion(IDOMNode acceptAttr, int cursor) {
+		if (acceptAttr == null) {
+			return cursor;
+		}
+		return acceptAttr.getStartOffset() + acceptAttr.getNodeName().length() + 2;
+	}
+
+	private IDOMNode getAttr(IDOMNode node, int cursor) {
+		NamedNodeMap attributes = node.getAttributes();
+		if (attributes == null) {
+			return null;
+		}
+		for (int i = 0; i < attributes.getLength(); i++) {
+			IDOMNode attr = (IDOMNode) attributes.item(i);
+			int startOffset = attr.getStartOffset();
+			int endOffset = attr.getEndOffset();
+			if (cursor >= startOffset && cursor < endOffset) {
+				return attr;
+			}
+		}
+		return null;
+	}
+
+	private IDOMNode getImageAttr(IDOMNode node) {
+		NamedNodeMap attributes = node.getAttributes();
+		if (attributes == null) {
+			return null;
+		}
+		for (int i = 0; i < attributes.getLength(); i++) {
+			IDOMNode attr = (IDOMNode) attributes.item(i);
+			if (supportedImageAttrs.contains(attr.getNodeName())) {
+				return attr;
+			}
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapter#getContextType()
+	 */
+	public ContextType getContextType() {
+		return ContextType.XML_ATTRIBUTE_VALUE;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapter#getScope()
+	 */
+	public String getScope() {
+		return null;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/PaletteDnDAdapter.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/PaletteDnDAdapter.java
new file mode 100755
index 0000000..19ab58b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/PaletteDnDAdapter.java
@@ -0,0 +1,159 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor.dnd;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.StringTokenizer;
+
+import org.eclipse.jface.text.templates.Template;
+import org.eclipse.swt.dnd.DropTargetEvent;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.wst.sse.ui.StructuredTextEditor;
+import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.xwt.ui.editor.XWTEditor;
+import org.eclipse.xwt.vex.VEXTextEditorHelper;
+import org.eclipse.xwt.vex.toolpalette.ContextType;
+import org.eclipse.xwt.vex.toolpalette.Entry;
+import org.w3c.dom.Node;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class PaletteDnDAdapter extends DnDAdapterImpl {
+
+	private Map<String, String> name2content = new HashMap<String, String>();
+	private Entry entry;
+
+	/**
+	 * @param editor
+	 */
+	public PaletteDnDAdapter(XWTEditor editor) {
+		super(editor);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapterImpl#createTemplate(java.lang.Object)
+	 */
+	@Override
+	protected Template createTemplate(Object selection) {
+		return new Template(entry.getName(), "", getContextType().getName(), entry.getContent(), true);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapter#getContextType()
+	 */
+	public ContextType getContextType() {
+		return entry.getContext();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapter#getScope()
+	 */
+	public String getScope() {
+		return entry.getScope();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapterImpl#dropAccept(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	@Override
+	public void dropAccept(DropTargetEvent event) {
+		if (isAccept()) {
+			// update layout and layoutData.
+			updateLayoutEntry(entry, event.x, event.y);
+			updateLayoutDataEntry(entry, event.x, event.y);
+		}
+	}
+
+	protected void updateLayoutEntry(Entry entry, int x, int y) {
+
+		StructuredTextEditor textEditor = getEditor().getTextEditor();
+		StructuredTextViewer textViewer = textEditor.getTextViewer();
+		int cursor = VEXTextEditorHelper.getOffsetAtPoint(textViewer, new Point(x, y));
+		Node node = VEXTextEditorHelper.getNode(textViewer, cursor);
+		while (node.getNodeType() == IDOMNode.TEXT_NODE) {
+			node = node.getParentNode();
+		}
+		String nodeName = node.getNodeName();
+		String name = entry.getName();
+		// String tagName = null;
+		if (nodeName != null && name.toLowerCase().endsWith("layout")) {
+			String content = name2content.get(name);
+			if (content == null) {
+				name2content.put(name, content = entry.getContent());
+			}
+			String source = "Composite";
+			StringTokenizer stk = new StringTokenizer(content, "<>");
+			while (stk.hasMoreTokens()) {
+				String nextToken = stk.nextToken();
+				if (nextToken.endsWith(".layout")) {
+					source = nextToken.substring(0, nextToken.lastIndexOf("."));
+					break;
+				}
+			}
+			String newContent = content.replace(source, nodeName);
+			entry.setContent(newContent);
+		}
+	}
+
+	protected void updateLayoutDataEntry(Entry entry, int x, int y) {
+		StructuredTextEditor textEditor = getEditor().getTextEditor();
+		StructuredTextViewer textViewer = textEditor.getTextViewer();
+		int cursor = VEXTextEditorHelper.getOffsetAtPoint(textViewer, new Point(x, y));
+		Node node = VEXTextEditorHelper.getNode(textViewer, cursor);
+		while (node.getNodeType() == IDOMNode.TEXT_NODE) {
+			node = node.getParentNode();
+		}
+		String nodeName = node.getNodeName();
+		String name = entry.getName();
+		String tagName = null;
+		if (nodeName != null && name.toLowerCase().endsWith("data")) {
+			if (nodeName.indexOf(":") != -1) {
+				tagName = nodeName.substring(nodeName.lastIndexOf(":") + 1);
+			} else {
+				tagName = nodeName;
+			}
+			String content = name2content.get(name);
+			if (content == null) {
+				name2content.put(name, content = entry.getContent());
+			}
+			String newContent = content.replace("Control", tagName);
+			entry.setContent(newContent);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapter#isAccept(java.lang.Object)
+	 */
+	@Override
+	public boolean isAccept(Object obj) {
+		if (obj instanceof Entry) {
+			this.entry = (Entry) obj;
+			return true;
+		}
+		return false;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/UserDefinedDnDAdapter.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/UserDefinedDnDAdapter.java
new file mode 100755
index 0000000..f83594b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/dnd/UserDefinedDnDAdapter.java
@@ -0,0 +1,252 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor.dnd;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Random;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jface.text.templates.Template;
+import org.eclipse.swt.dnd.DropTargetEvent;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.wst.sse.ui.StructuredTextEditor;
+import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.xwt.ui.editor.XWTEditor;
+import org.eclipse.xwt.ui.utils.ProjectContext;
+import org.eclipse.xwt.vex.VEXTextEditorHelper;
+import org.eclipse.xwt.vex.toolpalette.ContextType;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class UserDefinedDnDAdapter extends DnDAdapterImpl {
+
+	private Map<String, String> nsURIs = new HashMap<String, String>();
+	private Map<String, Boolean> prefixStatus = new HashMap<String, Boolean>();
+	private String name;
+	private String namespace;
+	private String prefix;
+
+	/**
+	 * @param editor
+	 */
+	public UserDefinedDnDAdapter(XWTEditor editor) {
+		super(editor);
+		updateNsURIs();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapter#isAccept(java.lang.Object)
+	 */
+	@Override
+	public boolean isAccept(Object obj) {
+		if (obj instanceof ICompilationUnit) {
+			ICompilationUnit unit = (ICompilationUnit) obj;
+			IType type = unit.findPrimaryType();
+			String name = type.getElementName();
+			IJavaProject javaProject = unit.getJavaProject();
+			String fullyQualifiedName = type.getFullyQualifiedName();
+			try {
+				ProjectContext context = ProjectContext.getContext(javaProject);
+				Class<?> clazz = context.getClassLoader().loadClass(fullyQualifiedName);
+				this.name = clazz.getSimpleName();
+				this.namespace = "clr-namespace" + ":" + type.getPackageFragment().getElementName();
+				return Composite.class.isAssignableFrom(clazz) && clazz.getResource(name + ".xwt") != null;
+			} catch (ClassNotFoundException e) {
+				e.printStackTrace();
+			}
+		} else if (obj instanceof IFile) {
+			IFile file = (IFile) obj;
+			String ext = file.getFileExtension();
+			String name = file.getName();
+
+			if ("xwt".equals(ext)) {
+				IResource java = file.getParent().findMember(name.replace("xwt", "java"));
+				if (java.exists()) {
+					IProject project = file.getProject();
+					IJavaProject javaProject = JavaCore.create(project);
+					try {
+						ICompilationUnit unit = (ICompilationUnit) JavaCore.create(java);
+						IType type = unit.findPrimaryType();
+						String fullyQualifiedName = type.getFullyQualifiedName();
+						ProjectContext context = ProjectContext.getContext(javaProject);
+						Class<?> clazz = context.getClassLoader().loadClass(fullyQualifiedName);
+						this.name = clazz.getSimpleName();
+						this.namespace = "clr-namespace" + ":" + type.getPackageFragment().getElementName();
+						return Composite.class.isAssignableFrom(clazz);
+					} catch (ClassNotFoundException e) {
+						e.printStackTrace();
+					}
+				}
+			}
+		}
+		return false;
+	}
+
+	public String getName() {
+		String p = getPrefix();
+		return p == null ? name : p + ":" + name;
+	}
+
+	private void updateNsURIs() {
+		StructuredTextEditor textEditor = getEditor().getTextEditor();
+		StructuredTextViewer textViewer = textEditor.getTextViewer();
+		IDOMNode node = VEXTextEditorHelper.getNode(textViewer, 0);
+		updateNsURIs(node, nsURIs);
+	}
+
+	private String genPrefix(Collection<String> existings) {
+		char[] c = { 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'z', 'c', 'v', 'b', 'n', 'm' };
+		Random random = new Random();
+		String prefix = Character.toString(c[Math.abs(random.nextInt()) % c.length]);
+		while (existings.contains(prefix)) {
+			prefix = Character.toString(c[Math.abs(random.nextInt()) % c.length]);
+		}
+		return prefix;
+	}
+
+	public void updateNsURIs(Object obj, Map<String, String> nsURIs) {
+		if (obj instanceof Node) {
+			Node node = (Node) obj;
+			String p = node.getPrefix();
+			String ns = node.getNamespaceURI();
+			if (ns != null) {
+				nsURIs.put(ns, p);
+			}
+			NamedNodeMap attributes = node.getAttributes();
+			if (attributes != null) {
+				for (int i = 0; i < attributes.getLength(); i++) {
+					Node attr = attributes.item(i);
+					String nodeName = attr.getNodeName();
+					if (nodeName.startsWith("xmlns:")) {
+						p = nodeName.substring("xmlns:".length());
+						ns = attr.getNodeValue();
+						if (ns != null) {
+							nsURIs.put(ns, p);
+						}
+					}
+				}
+			}
+			NodeList childNodes = node.getChildNodes();
+			if (childNodes != null) {
+				for (int i = 0; i < childNodes.getLength(); i++) {
+					updateNsURIs(childNodes.item(i), nsURIs);
+				}
+			}
+		}
+	}
+
+	public String getContent() {
+		return "<" + getName() + "/>";
+	}
+
+	public String getPrefix() {
+		updateNsURIs();
+		prefix = nsURIs.get(namespace);
+		if (prefix == null) {
+			prefix = genPrefix(nsURIs.values());
+			prefixStatus.put(prefix, Boolean.TRUE);
+			nsURIs.put(namespace, prefix);
+		}
+		return prefix;
+	}
+
+	public boolean isNsURINew() {
+		String p = getPrefix();
+		if (p == null) {
+			return false;
+		}
+		return Boolean.TRUE.equals(prefixStatus.get(p));
+	}
+
+	public String getNamespace() {
+		return namespace;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapterImpl#createTemplate(java.lang.Object)
+	 */
+	@Override
+	protected Template createTemplate(Object selection) {
+		return new Template(name, "", ContextType.XML_TAG.getName(), getContent(), true);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapterImpl#dropAccept(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	@Override
+	public void dropAccept(DropTargetEvent event) {
+		if (!isAccept()) {
+			return;
+		}
+		String prefix = getPrefix();
+		if (prefix != null && isNsURINew()) {
+			String pattern = "xmlns:" + prefix + "=\"" + getNamespace() + "\" ";
+			Template tem = new Template("xmlns:" + prefix, "", ContextType.XML_ATTRIBUTE.getName(), pattern, true);
+			StructuredTextEditor textEditor = getEditor().getTextEditor();
+			StructuredTextViewer textViewer = textEditor.getTextViewer();
+			IDOMNode node = VEXTextEditorHelper.getNode(textViewer, 0);
+			NamedNodeMap attributes = node.getAttributes();
+			int dropNsIndex = 0;
+			for (int i = 0; i < attributes.getLength(); i++) {
+				IDOMAttr attr = (IDOMAttr) attributes.item(i);
+				String nodeName = attr.getNodeName();
+				if ("xmlns:x".equals(nodeName)) {
+					dropNsIndex = attr.getEndOffset();
+					break;
+				}
+			}
+			setDropCaretOffset(getDropCaretOffset() + pattern.length());
+			drop(tem, dropNsIndex, 0);
+			prefixStatus.put(prefix, Boolean.FALSE);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapter#getContextType()
+	 */
+	public ContextType getContextType() {
+		return ContextType.XML_TAG;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.ui.editor.dnd.DnDAdapter#getScope()
+	 */
+	public String getScope() {
+		return "Composite";
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/jdt/ASTHelper.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/jdt/ASTHelper.java
new file mode 100755
index 0000000..239fb2a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/jdt/ASTHelper.java
@@ -0,0 +1,387 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor.jdt;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.SubProgressMonitor;
+import org.eclipse.jdt.core.IBuffer;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IField;
+import org.eclipse.jdt.core.IMethod;
+import org.eclipse.jdt.core.ISourceRange;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.Signature;
+import org.eclipse.jdt.core.compiler.IProblem;
+import org.eclipse.jdt.core.dom.AST;
+import org.eclipse.jdt.core.dom.ASTNode;
+import org.eclipse.jdt.core.dom.ASTParser;
+import org.eclipse.jdt.core.dom.CompilationUnit;
+import org.eclipse.jdt.core.dom.ITypeBinding;
+import org.eclipse.jdt.core.dom.ImportDeclaration;
+import org.eclipse.jdt.core.dom.rewrite.ImportRewrite;
+import org.eclipse.jdt.core.formatter.CodeFormatter;
+import org.eclipse.jdt.internal.core.manipulation.StubUtility;
+import org.eclipse.jdt.internal.corext.dom.ASTNodes;
+import org.eclipse.jdt.internal.corext.util.CodeFormatterUtil;
+import org.eclipse.jdt.internal.corext.util.JavaModelUtil;
+import org.eclipse.jdt.internal.corext.util.Strings;
+import org.eclipse.jdt.ui.CodeGeneration;
+import org.eclipse.jdt.ui.CodeStyleConfiguration;
+import org.eclipse.text.edits.TextEdit;
+
+public class ASTHelper {
+	public static class ImportsManager {
+
+		private ImportRewrite fImportsRewrite;
+
+		/* package */ImportsManager(CompilationUnit astRoot) throws CoreException {
+			fImportsRewrite = CodeStyleConfiguration.createImportRewrite(astRoot, true);
+		}
+
+		/* package */ICompilationUnit getCompilationUnit() {
+			return fImportsRewrite.getCompilationUnit();
+		}
+
+		/**
+		 * Adds a new import declaration that is sorted in the existing imports. If an import already exists or the import would conflict with an import of an other type with the same simple name, the import is not added.
+		 * 
+		 * @param qualifiedTypeName
+		 *            The fully qualified name of the type to import (dot separated).
+		 * @return Returns the simple type name that can be used in the code or the fully qualified type name if an import conflict prevented the import.
+		 */
+		public String addImport(String qualifiedTypeName) {
+			return fImportsRewrite.addImport(qualifiedTypeName);
+		}
+
+		/**
+		 * Adds a new import declaration that is sorted in the existing imports. If an import already exists or the import would conflict with an import of an other type with the same simple name, the import is not added.
+		 * 
+		 * @param typeBinding
+		 *            the binding of the type to import
+		 * 
+		 * @return Returns the simple type name that can be used in the code or the fully qualified type name if an import conflict prevented the import.
+		 */
+		public String addImport(ITypeBinding typeBinding) {
+			return fImportsRewrite.addImport(typeBinding);
+		}
+
+		/**
+		 * Adds a new import declaration for a static type that is sorted in the existing imports. If an import already exists or the import would conflict with an import of an other static import with the same simple name, the import is not added.
+		 * 
+		 * @param declaringTypeName
+		 *            The qualified name of the static's member declaring type
+		 * @param simpleName
+		 *            the simple name of the member; either a field or a method name.
+		 * @param isField
+		 *            <code>true</code> specifies that the member is a field, <code>false</code> if it is a method.
+		 * @return returns either the simple member name if the import was successful or else the qualified name if an import conflict prevented the import.
+		 * 
+		 * @since 3.2
+		 */
+		public String addStaticImport(String declaringTypeName, String simpleName, boolean isField) {
+			return fImportsRewrite.addStaticImport(declaringTypeName, simpleName, isField);
+		}
+
+		/* package */void create(boolean needsSave, IProgressMonitor monitor) throws CoreException {
+			TextEdit edit = fImportsRewrite.rewriteImports(monitor);
+			JavaModelUtil.applyEdit(fImportsRewrite.getCompilationUnit(), edit, needsSave, null);
+		}
+
+		/* package */void removeImport(String qualifiedName) {
+			fImportsRewrite.removeImport(qualifiedName);
+		}
+
+		/* package */void removeStaticImport(String qualifiedName) {
+			fImportsRewrite.removeStaticImport(qualifiedName);
+		}
+	}
+
+	public static void generateEventHandler(final IType type, final String argumentType, final String handleName) throws Exception {
+		final ASTHelper helper = new ASTHelper();
+		Runnable typeRunner = new Runnable() {
+			public void run() {
+				try {
+					helper.createEventHandlers(type, handleName, argumentType);
+				} catch (CoreException e) {
+				}
+			}
+		};
+		helper.generateTypeMembers(type, argumentType, true, typeRunner);
+	}
+
+	public static void generateInitialization(final IType type, final String method, final Set<String> fieldNames) throws Exception {
+		final ASTHelper helper = new ASTHelper();
+		Runnable typeRunner = new Runnable() {
+			public void run() {
+				try {
+					helper.createInitializeMembers(type, method, fieldNames);
+				} catch (CoreException e) {
+				}
+			}
+		};
+		helper.generateTypeMembers(type, null, true, typeRunner);
+	}
+
+	public void generateTypeMembers(IType type, String argumentType, boolean needsSave, Runnable typeRunner) throws Exception {
+		int indent = 0;
+		IProgressMonitor monitor = new NullProgressMonitor();
+
+		Set /* String (import names) */existingImports;
+
+		String lineDelimiter = StubUtility.getLineDelimiterUsed(type.getJavaProject());
+		ICompilationUnit cu = type.getCompilationUnit();
+		// create a working copy with a new owner
+
+		cu.becomeWorkingCopy(monitor);
+
+		CompilationUnit astRoot = createASTForImports(cu);
+		existingImports = getExistingImports(astRoot);
+
+		ImportsManager imports = new ImportsManager(astRoot);
+		if (argumentType != null) {
+			imports.addImport(argumentType);
+		}
+		typeRunner.run();
+		// add imports
+		imports.create(false, monitor);
+
+		removeUnusedImports(cu, existingImports, false);
+
+		JavaModelUtil.reconcile(cu);
+
+		ISourceRange range = type.getSourceRange();
+
+		IBuffer buf = cu.getBuffer();
+		String originalContent = buf.getText(range.getOffset(), range.getLength());
+
+		String formattedContent = CodeFormatterUtil.format(CodeFormatter.K_CLASS_BODY_DECLARATIONS, originalContent, indent, lineDelimiter, type.getJavaProject());
+		formattedContent = Strings.trimLeadingTabsAndSpaces(formattedContent);
+		buf.replace(range.getOffset(), range.getLength(), formattedContent);
+
+		if (needsSave) {
+			cu.commitWorkingCopy(true, new SubProgressMonitor(monitor, 1));
+		} else {
+			monitor.worked(1);
+		}
+	}
+
+	private CompilationUnit createASTForImports(ICompilationUnit cu) {
+		ASTParser parser = ASTParser.newParser(AST.JLS3);
+		parser.setSource(cu);
+		parser.setResolveBindings(false);
+		parser.setFocalPosition(0);
+		return (CompilationUnit) parser.createAST(null);
+	}
+
+	private Set /* String */getExistingImports(CompilationUnit root) {
+		List imports = root.imports();
+		Set res = new HashSet(imports.size());
+		for (int i = 0; i < imports.size(); i++) {
+			res.add(ASTNodes.asString((ImportDeclaration) imports.get(i)));
+		}
+		return res;
+	}
+
+	public static void removeUnusedImports(IType type) {
+		try {
+			ASTHelper helper = new ASTHelper();
+			ICompilationUnit cu = type.getCompilationUnit();
+			CompilationUnit astRoot = helper.createASTForImports(cu);
+			Set existingImports = helper.getExistingImports(astRoot);
+			helper.removeUnusedImports(cu, existingImports, true);
+		} catch (CoreException e) {
+		}
+	}
+
+	private void removeUnusedImports(ICompilationUnit cu, Set existingImports, boolean needsSave) throws CoreException {
+		ASTParser parser = ASTParser.newParser(AST.JLS3);
+		parser.setSource(cu);
+		parser.setResolveBindings(true);
+
+		CompilationUnit root = (CompilationUnit) parser.createAST(null);
+		if (root.getProblems().length == 0) {
+			return;
+		}
+
+		List importsDecls = root.imports();
+		if (importsDecls.isEmpty()) {
+			return;
+		}
+		ImportsManager imports = new ImportsManager(root);
+
+		int importsEnd = ASTNodes.getExclusiveEnd((ASTNode) importsDecls.get(importsDecls.size() - 1));
+		IProblem[] problems = root.getProblems();
+		for (int i = 0; i < problems.length; i++) {
+			IProblem curr = problems[i];
+			if (curr.getSourceEnd() < importsEnd) {
+				int id = curr.getID();
+				if (id == IProblem.UnusedImport || id == IProblem.NotVisibleType) { // not visible
+					// problems hide
+					// unused -> remove
+					// both
+					int pos = curr.getSourceStart();
+					for (int k = 0; k < importsDecls.size(); k++) {
+						ImportDeclaration decl = (ImportDeclaration) importsDecls.get(k);
+						if (decl.getStartPosition() <= pos && pos < decl.getStartPosition() + decl.getLength()) {
+							if (existingImports.isEmpty() || !existingImports.contains(ASTNodes.asString(decl))) {
+								String name = decl.getName().getFullyQualifiedName();
+								if (decl.isOnDemand()) {
+									name += ".*"; //$NON-NLS-1$
+								}
+								if (decl.isStatic()) {
+									imports.removeStaticImport(name);
+								} else {
+									imports.removeImport(name);
+								}
+							}
+							break;
+						}
+					}
+				}
+			}
+		}
+		imports.create(needsSave, null);
+	}
+
+	protected void createEventHandlers(IType type, String method, String argumentType) throws CoreException {
+		int lastIndexOf = argumentType.lastIndexOf(".");
+		String shortArgTypeName = argumentType.substring(lastIndexOf + 1);
+		StringBuffer buf = new StringBuffer();
+		final String lineDelim = "\n"; // OK, since content is formatted
+		// afterwards //$NON-NLS-1$
+		String comment = CodeGeneration.getMethodComment(type.getCompilationUnit(), type.getTypeQualifiedName('.'), method, new String[] { "event" }, new String[0], Signature.createTypeSignature("void", true), null, lineDelim); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		if (comment != null) {
+			buf.append(comment);
+			buf.append(lineDelim);
+		}
+		buf.append("public void " + method + "( "); //$NON-NLS-1$
+		buf.append(shortArgTypeName); //$NON-NLS-1$
+		buf.append(" event) {"); //$NON-NLS-1$
+		buf.append(lineDelim);
+
+		final String content = CodeGeneration.getMethodBodyContent(type.getCompilationUnit(), type.getTypeQualifiedName('.'), method, false, "", lineDelim); //$NON-NLS-1$ //$NON-NLS-2$
+		if (content != null && content.length() != 0)
+			buf.append(content);
+		buf.append(lineDelim);
+		buf.append("}"); //$NON-NLS-1$
+		type.createMethod(buf.toString(), null, false, null);
+	}
+
+	protected void createInitializeMembers(IType type, String method, Set<String> fieldNames) throws CoreException {
+		IMethod init = null;
+		IMethod[] methods = type.getMethods();
+		for (IMethod method2 : methods) {
+			if (method2.getElementName().equals(method)) {
+				init = method2;
+				break;
+			}
+		}
+		if (init != null) {
+			init.delete(false, null);
+		}
+		StringBuffer buf = new StringBuffer();
+		final String lineDelim = "\n";
+		String comment = "/**\n  * Generated Initialization.\n */";
+		if (comment != null) {
+			buf.append(comment);
+			buf.append(lineDelim);
+		}
+		buf.append("protected void " + method + " () {"); //$NON-NLS-1$
+		buf.append(lineDelim);
+
+		if (fieldNames.isEmpty()) {
+			final String content = CodeGeneration.getMethodBodyContent(type.getCompilationUnit(), type.getTypeQualifiedName('.'), method, false, "", lineDelim); //$NON-NLS-1$ //$NON-NLS-2$
+			if (content != null && content.length() != 0) {
+				buf.append(content);
+			}
+		}
+		for (String fieidName : fieldNames) {
+			IField field = type.getField(fieidName);
+			if (field != null) {
+				String initialize = fieidName + " = (" + Signature.toString(field.getTypeSignature()) + ") findElement(\"" + fieidName + "\");";
+				buf.append(initialize);
+			}
+		}
+		buf.append(lineDelim);
+		buf.append("}"); //$NON-NLS-1$
+		type.createMethod(buf.toString(), null, false, null);
+	}
+
+	public static void generateNamedFields(IType type, String fieldType, String fieldName) {
+		try {
+			ASTHelper helper = new ASTHelper();
+			helper.createNamedFields(type, fieldType, fieldName, true);
+		} catch (Exception e) {
+		}
+	}
+
+	public void createNamedFields(IType type, String fieldType, String fieldName, boolean needSave) throws Exception {
+		if (fieldType == null || fieldName == null) {
+			return;
+		}
+		IProgressMonitor monitor = new NullProgressMonitor();
+
+		Set /* String (import names) */existingImports;
+
+		String lineDelimiter = StubUtility.getLineDelimiterUsed(type.getJavaProject());
+		ICompilationUnit cu = type.getCompilationUnit();
+		// create a working copy with a new owner
+
+		cu.becomeWorkingCopy(monitor);
+
+		CompilationUnit astRoot = createASTForImports(cu);
+		existingImports = getExistingImports(astRoot);
+
+		ImportsManager imports = new ImportsManager(astRoot);
+		imports.addImport(fieldType);
+		createField(type, fieldType, fieldName);
+
+		// add imports
+		imports.create(false, monitor);
+
+		removeUnusedImports(cu, existingImports, false);
+
+		JavaModelUtil.reconcile(cu);
+
+		ISourceRange range = type.getSourceRange();
+
+		IBuffer buf = cu.getBuffer();
+		String originalContent = buf.getText(range.getOffset(), range.getLength());
+
+		String formattedContent = CodeFormatterUtil.format(CodeFormatter.K_CLASS_BODY_DECLARATIONS, originalContent, 0, lineDelimiter, type.getJavaProject());
+		formattedContent = Strings.trimLeadingTabsAndSpaces(formattedContent);
+		buf.replace(range.getOffset(), range.getLength(), formattedContent);
+
+		if (needSave) {
+			cu.commitWorkingCopy(true, new SubProgressMonitor(monitor, 1));
+		} else {
+			monitor.worked(1);
+		}
+	}
+
+	private void createField(IType type, String paraType, String paraName) throws Exception {
+		int lastIndexOf = paraType.lastIndexOf(".");
+		String property = paraType.substring(lastIndexOf + 1);
+		if (property == null || property.equals("")) {
+			property = paraType;
+		}
+		String contents = ("protected " + property + " " + paraName + ";");
+		type.createField(contents, null, false, null);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/render/CanvasManager.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/render/CanvasManager.java
new file mode 100755
index 0000000..7633857
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/render/CanvasManager.java
@@ -0,0 +1,252 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor.render;
+
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.events.PaintEvent;
+import org.eclipse.swt.events.PaintListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Canvas;
+import org.eclipse.swt.widgets.ScrollBar;
+
+public class CanvasManager {
+
+	private Image originalImage;
+	private Canvas canvas;
+	private Image displayImage;
+	/* The width and height value of canvas image. */
+	public int imageWidth = -1, imageHeight = -1;
+	/* The visible width and height of canvas. */
+	private int visibleWidth, visibleHeight;
+	private ManagerContext displayMC = new ManagerContext();
+	private ManagerContext imageMC = new ManagerContext();
+
+	public CanvasManager(Canvas canvas) {
+		this.canvas = canvas;
+		initialize();
+	}
+
+	private void initialize() {
+		displayMC.gc = new GC(canvas);
+
+		canvas.addPaintListener(new PaintListener() {
+			public void paintControl(PaintEvent event) {
+				handlePaint(event);
+			}
+		});
+
+		canvas.addControlListener(new ControlAdapter() {
+			public void controlResized(ControlEvent event) {
+				handleResize();
+			}
+		});
+
+		ScrollBar horizontal = getHorizontalBar();
+		if (horizontal != null) {
+			horizontal.setVisible(true);
+			horizontal.addSelectionListener(new SelectionAdapter() {
+				public void widgetSelected(SelectionEvent event) {
+					scrollHorizontally((ScrollBar) event.widget);
+				}
+			});
+		}
+		ScrollBar vertical = getVerticalBar();
+		if (vertical != null) {
+			vertical.setVisible(true);
+			vertical.addSelectionListener(new SelectionAdapter() {
+				public void widgetSelected(SelectionEvent event) {
+					scrollVertically((ScrollBar) event.widget);
+				}
+			});
+		}
+
+		canvas.addDisposeListener(new DisposeListener() {
+			public void widgetDisposed(DisposeEvent e) {
+				if (displayMC.gc != null) {
+					displayMC.gc.dispose();
+				}
+			}
+		});
+		handleResize();
+	}
+
+	/**
+	 * Build or refresh the canvas with given image.
+	 * 
+	 * @param image
+	 */
+	public synchronized void setImage(Image image) {
+		if (image != null) {
+			originalImage = image;
+			clearImage();
+			createDisplayImage();
+			canvas.redraw();
+			canvas.getDisplay().update();
+		}
+	}
+
+	private void createDisplayImage() {
+		if (originalImage == null || originalImage.isDisposed()) {
+			return;
+		}
+		Rectangle bounds = originalImage.getBounds();
+		int width = bounds.width;
+		int height = bounds.height;
+
+		Rectangle rect = canvas.getBounds();
+
+		imageWidth = Math.max(width + 17, rect.width);
+		imageHeight = Math.max(height + 17, rect.height);
+
+		displayImage = new Image(canvas.getDisplay(), imageWidth, imageHeight);
+
+		imageMC.gc = new GC(displayImage);
+		imageMC.gc.fillRectangle(0, 0, imageWidth, imageHeight);
+		imageMC.gc.drawImage(originalImage, 0, 0, width, height, (imageWidth - width - 17) / 2, (imageHeight - height - 17) / 2, width, height);
+
+		handleResize();
+	}
+
+	/**
+	 * Clear old images on the current canvas.
+	 */
+	private void clearImage() {
+		if (displayImage != null) {
+			displayImage.dispose();
+			displayImage = null;
+		}
+		if (imageMC.gc != null) {
+			imageMC.gc.dispose();
+			imageMC.gc = null;
+		}
+	}
+
+	public void dispose() {
+		canvas = null;
+		clearImage();
+		if (displayMC.gc != null) {
+			displayMC.gc.dispose();
+			displayMC = null;
+		}
+		if (displayImage != null) {
+			displayImage.dispose();
+		}
+	}
+
+	protected void scrollVertically(ScrollBar scrollBar) {
+		if (displayImage == null)
+			return;
+		if (imageHeight > visibleHeight) {
+			final int oldOffset = displayMC.yOffset;
+			final int newOffset = Math.min(scrollBar.getSelection(), imageHeight - visibleHeight);
+			if (oldOffset != newOffset) {
+				canvas.update();
+				displayMC.yOffset = newOffset;
+				canvas.scroll(0, Math.max(oldOffset - newOffset, 0), 0, Math.max(newOffset - oldOffset, 0), visibleWidth, visibleHeight, false);
+			}
+		}
+	}
+
+	protected void scrollHorizontally(ScrollBar scrollBar) {
+		if (displayImage == null)
+			return;
+		if (imageWidth > visibleWidth) {
+			final int oldOffset = displayMC.xOffset;
+			final int newOffset = Math.min(scrollBar.getSelection(), imageWidth - visibleWidth);
+			if (oldOffset != newOffset) {
+				canvas.update();
+				displayMC.xOffset = newOffset;
+				canvas.scroll(Math.max(oldOffset - newOffset, 0), 0, Math.max(newOffset - oldOffset, 0), 0, visibleWidth, visibleHeight, false);
+			}
+		}
+	}
+
+	protected void handleResize() {
+
+		canvas.update();
+
+		Rectangle visibleRect = canvas.getBounds();
+		visibleWidth = visibleRect.width;
+		visibleHeight = visibleRect.height;
+
+		ScrollBar horizontal = getHorizontalBar();
+		if (horizontal != null) {
+			displayMC.xOffset = Math.min(horizontal.getSelection(), imageWidth - visibleWidth);
+			if (imageWidth <= visibleWidth) {
+				horizontal.setVisible(false);
+				horizontal.setEnabled(false);
+				horizontal.setSelection(0);
+			} else {
+				horizontal.setVisible(true);
+				horizontal.setEnabled(true);
+				horizontal.setValues(displayMC.xOffset, 0, imageWidth, visibleWidth, 8, visibleWidth);
+			}
+		}
+
+		ScrollBar vertical = getVerticalBar();
+		if (vertical != null) {
+			displayMC.yOffset = Math.min(vertical.getSelection(), imageHeight - visibleHeight);
+			if (imageHeight <= visibleHeight) {
+				vertical.setEnabled(false);
+				vertical.setVisible(false);
+				vertical.setSelection(0);
+			} else {
+				vertical.setEnabled(true);
+				vertical.setVisible(true);
+				vertical.setValues(displayMC.yOffset, 0, imageHeight, visibleHeight, 8, visibleHeight);
+			}
+		}
+	}
+
+	private ScrollBar getVerticalBar() {
+		ScrollBar vertical = canvas.getVerticalBar();
+		if (vertical == null) {
+			vertical = canvas.getParent().getVerticalBar();
+		}
+		return vertical;
+	}
+
+	private ScrollBar getHorizontalBar() {
+		ScrollBar horizontal = canvas.getHorizontalBar();
+		if (horizontal == null) {
+			horizontal = canvas.getParent().getHorizontalBar();
+		}
+		return horizontal;
+	}
+
+	private void handlePaint(PaintEvent event) {
+		if (displayImage == null) {
+			return;
+		}
+		// srcX > 0 && srcY > 0
+		int srcX = displayMC.xOffset + event.x;
+		int srcY = displayMC.yOffset + event.y;
+		srcX = srcX < 0 ? 0 : srcX;
+		srcY = srcY < 0 ? 0 : srcY;
+		Rectangle bounds = displayImage.getBounds();
+		if ((bounds.width - srcX) < event.width || (bounds.height - srcY) < event.height) {
+			createDisplayImage();
+			handlePaint(event);
+		} else {
+			event.gc.drawImage(displayImage, srcX, srcY, event.width, event.height, event.x, event.y, event.width, event.height);
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/render/ManagerContext.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/render/ManagerContext.java
new file mode 100755
index 0000000..7ca498d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/render/ManagerContext.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor.render;
+
+import org.eclipse.swt.graphics.GC;
+
+public class ManagerContext {
+
+	public GC gc;
+
+	public int xOffset;
+
+	public int yOffset;
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/render/XWTRender.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/render/XWTRender.java
new file mode 100755
index 0000000..e46a529
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/render/XWTRender.java
@@ -0,0 +1,191 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor.render;
+
+import java.beans.PropertyChangeListener;
+import java.io.ByteArrayInputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.xwt.IXWTLoader;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.ui.utils.ProjectContext;
+import org.eclipse.xwt.vex.VEXRenderer;
+import org.eclipse.xwt.vex.swt.ImageCapture;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.swt.browser.Browser;
+import org.eclipse.swt.browser.ProgressEvent;
+import org.eclipse.swt.browser.ProgressListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Canvas;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Monitor;
+import org.eclipse.swt.widgets.Shell;
+
+public class XWTRender implements VEXRenderer {
+	private String hostClassName;
+	private Map<String, Object> options; 
+
+	/**
+	 * CanvasManager is used to draw the captured image and manage the ScrollBars.
+	 */
+	private CanvasManager canvasManager;
+	private ProjectContext projectContext;
+	private PropertyChangeListener changeListener;
+
+	private Shell shell;
+
+	/**
+	 * This is a count of the browser loading.
+	 */
+	private int time = 0;
+
+	public XWTRender(Canvas container, PropertyChangeListener changeListener) {
+		this.changeListener = changeListener;
+		canvasManager = new CanvasManager(container);
+		
+		options = new HashMap<String, Object>();
+		options.put(IXWTLoader.DESIGN_MODE_PROPERTY, Boolean.TRUE);
+	}
+
+	public void dispose() {
+		if (canvasManager != null) {
+			canvasManager.dispose();
+			canvasManager = null;
+		}
+		if (shell != null) {
+			shell.dispose();
+		}
+	}
+
+	public boolean updateView(String code, IFile file) {
+		if (shell != null) {
+			shell.dispose();
+		}
+		Control control = Display.getCurrent().getFocusControl();
+		try {
+			IJavaProject javaProject = JavaCore.create(file.getProject());
+			if (!javaProject.exists()) {
+				return false;
+			}
+
+			if (projectContext != null) {
+				projectContext.removePropertyChangeListener(changeListener);
+			}
+
+			projectContext = ProjectContext.getContext(javaProject);
+			XWT.setLoadingContext(projectContext);
+			Object rootElement;
+			try {
+				ByteArrayInputStream inputStream = new ByteArrayInputStream(code.getBytes());
+				rootElement = XWT.loadWithOptions(inputStream, file.getLocationURI().toURL(), options);
+			} catch (Exception e) {
+				return false;
+			}
+
+			if (rootElement != null) {
+				Rectangle rectangle = new Rectangle(0, 0, 0, 0);
+				for (Monitor monitor : Display.getDefault().getMonitors()) {
+					Rectangle bounds = monitor.getBounds();
+					rectangle = rectangle.union(bounds);
+				}
+
+				shell = XWT.findShell(rootElement);
+				if (shell == null) {
+					throw new XWTException("Root element is a control.");
+				}
+				shell.setFocus();
+//				shell.pack();
+				shell.setLocation(rectangle.x + rectangle.width + 200, rectangle.y + rectangle.height + 200);
+				shell.open();
+
+				Object hostClr = XWT.getCLR(rootElement);
+				if (hostClr != null) {
+					hostClassName = hostClr.getClass().getName();
+				}
+
+				final List<Browser> browsers = new ArrayList<Browser>();
+				findBrowser(rootElement, browsers);
+				if (!browsers.isEmpty()) {
+					/* Fixed the bug of browser: 1. Captured the image from browser after document loading finished. 2. Closed the parent shell when all documents loading finished. */
+					time = 0;
+					final int total = browsers.size();
+					ProgressListener listener = new ProgressListener() {
+						public void changed(ProgressEvent event) {
+							if (canvasManager == null || shell == null || shell.isDisposed()) {
+								return;
+							}
+							Image image = ImageCapture.getImageCapture().captureImage(shell);
+							canvasManager.setImage(image);
+						}
+
+						public void completed(ProgressEvent event) {
+							if (canvasManager == null || shell == null || shell.isDisposed()) {
+								return;
+							}
+							Image image = ImageCapture.getImageCapture().captureImage(shell);
+							canvasManager.setImage(image);
+							time++;
+							if (time == total) {
+								shell.close();
+							}
+						}
+					};
+					for (Browser browser : browsers) {
+						browser.addProgressListener(listener);
+					}
+				} else if (shell != null && !shell.isDisposed()) {
+					Image image = ImageCapture.getImageCapture().defaultCapture(shell);
+					canvasManager.setImage(image);
+					shell.close();
+				}
+
+				projectContext.addPropertyChangeListener(changeListener);
+			}
+		} finally {
+			if (control != null) {
+				control.setFocus();
+			}
+		}
+		return true;
+	}
+
+	private void findBrowser(Object control, List<Browser> browsers) {
+		if (control instanceof Composite) {
+			Composite parent = (Composite) control;
+			Control[] children = parent.getChildren();
+			for (Control child : children) {
+				if (child instanceof Browser) {
+					browsers.add((Browser) child);
+				}
+				findBrowser(child, browsers);
+			}
+		}
+	}
+
+	public String getHostClassName() {
+		return hostClassName;
+	}
+
+	public void setHostClassName(String hostClassName) {
+		this.hostClassName = hostClassName;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/treeviewer/ImageMenuManager.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/treeviewer/ImageMenuManager.java
new file mode 100755
index 0000000..c72be00
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/treeviewer/ImageMenuManager.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor.treeviewer;
+
+import java.lang.reflect.Field;
+
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.xwt.ui.utils.ImageManager;
+
+public class ImageMenuManager extends MenuManager {
+	protected ImageDescriptor imageDescriptor;
+
+	public ImageMenuManager() {
+	}
+
+	public ImageMenuManager(String text, ImageDescriptor imageDescriptor) {
+		super(text);
+		this.imageDescriptor = imageDescriptor;
+	}
+
+	public ImageMenuManager(String text, String id, ImageDescriptor imageDescriptor) {
+		super(text, id);
+		this.imageDescriptor = imageDescriptor;
+	}
+
+	@Override
+	public void fill(Menu parent, int index) {
+		super.fill(parent, index);
+		if (imageDescriptor != null) {
+			try {
+				Field field = MenuManager.class.getDeclaredField("menuItem");
+				field.setAccessible(true);
+				Object object = field.get(this);
+				if (object instanceof MenuItem) {
+					MenuItem menuItem = (MenuItem) object;
+					menuItem.setImage(ImageManager.getImage(imageDescriptor));
+				}
+			} catch (Exception e) {
+				throw new IllegalStateException("The field MenuManager.menuItem is not found. Maybe the version of SWT chnaged.");
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/treeviewer/XWTMenuBuilder.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/treeviewer/XWTMenuBuilder.java
new file mode 100755
index 0000000..32c11a4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/treeviewer/XWTMenuBuilder.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor.treeviewer;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.wst.xml.ui.internal.actions.MenuBuilder;
+
+public class XWTMenuBuilder extends MenuBuilder {
+	protected ImageDescriptor image;
+
+	public XWTMenuBuilder() {
+	}
+
+	protected void createAlphebeticalGrouping(IMenuManager menu, List actionList) {
+		Object[] array = actionList.toArray();
+		if (array.length > 0) {
+			Arrays.sort(array, comparator);
+		}
+
+		int groupSize = 15;
+		int minGroupSize = 5;
+		int numberOfGroups = (array.length / groupSize) + ((array.length % groupSize > minGroupSize) ? 1 : 0);
+
+		for (int i = 0; i < numberOfGroups; i++) {
+			boolean isLastGroup = (i == (numberOfGroups - 1));
+			int firstIndex = i * groupSize;
+			int lastIndex = isLastGroup ? array.length - 1 : i * groupSize + groupSize - 1;
+			Action firstAction = (Action) array[firstIndex];
+			Action lastAction = (Action) array[lastIndex];
+			ImageMenuManager submenu = new ImageMenuManager(firstAction.getText() + " - " + lastAction.getText(), image); //$NON-NLS-1$
+			menu.add(submenu);
+			for (int j = firstIndex; j <= lastIndex; j++) {
+				submenu.add((Action) array[j]);
+			}
+		}
+	}
+
+	public ImageDescriptor getImageDescriptor() {
+		return image;
+	}
+
+	public void setImageDescriptor(ImageDescriptor image) {
+		this.image = image;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/treeviewer/XWTNodeActionManager.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/treeviewer/XWTNodeActionManager.java
new file mode 100755
index 0000000..f97ef83
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/treeviewer/XWTNodeActionManager.java
@@ -0,0 +1,432 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor.treeviewer;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+
+import org.eclipse.jdt.internal.ui.JavaPluginImages;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
+import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
+import org.eclipse.wst.xml.ui.internal.contentoutline.XMLNodeActionManager;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+
+public class XWTNodeActionManager extends XMLNodeActionManager {
+
+	public XWTNodeActionManager(IStructuredModel model, Viewer viewer) {
+		super(model, viewer);
+	}
+
+	@Override
+	protected void contributeAddChildActions(IMenuManager menu, Node node, int ic, int vc) {
+		super.contributeAddChildActions(menu, node, ic, vc);
+
+		contributeXAMLAttributeMenu(menu, node, ic, vc);
+		contributeXAMLChildMenu(menu, node, ic, vc);
+	}
+
+	protected void contributeXAMLAttributeMenu(IMenuManager menu, Node node, int ic, int vc) {
+		IMenuManager addAttributeMenu = null;
+
+		String message = XMLUIMessages._UI_MENU_ADD_ATTRIBUTE;
+		for (IContributionItem item : menu.getItems()) {
+			if (item instanceof MenuManager) {
+				MenuManager manager = (MenuManager) item;
+				if (message.equals(manager.getMenuText())) {
+					addAttributeMenu = manager;
+					break;
+				}
+			}
+		}
+
+		if (addAttributeMenu == null) {
+			return;
+		}
+
+		IContributionItem[] items = addAttributeMenu.getItems();
+		addAttributeMenu.removeAll();
+
+		String tagName = node.getNodeName();
+		// Metaclass metaclass = UPF.getMetaclass(tagName, DomHelper.lookupNamespaceURI(node));
+		// if (metaclass == null) {
+		// return;
+		// }
+
+		List<Action> actionPropertyCollector = new ArrayList<Action>();
+		List<Action> actionAttachedPropertyCollector = new ArrayList<Action>();
+		List<Action> actionEventCollector = new ArrayList<Action>();
+
+		HashSet<String> existing = new HashSet<String>();
+		NamedNodeMap namedNodeMap = node.getAttributes();
+		for (int i = 0; i < namedNodeMap.getLength(); i++) {
+			Node attributeNode = namedNodeMap.item(i);
+			String attributeName = attributeNode.getNodeName();
+			existing.add(attributeName);
+		}
+
+		ImageDescriptor proppertyImageDescriptor = JavaPluginImages.getDescriptor(JavaPluginImages.IMG_FIELD_PUBLIC);
+		// ImageDescriptor eventImageDescriptor = ResourceManager.OBJ_EVENT;
+		// ImageDescriptor attachedProppertyImageDescriptor = JavaPluginImages
+		// .getDescriptor(JavaPluginImages.IMG_FIELD_PROTECTED);
+		//
+		// {
+		// Collection<Property> properties = metaclass.getAllProperties();
+		// for (Property property : properties) {
+		// if (property.isMany()) {
+		// continue;
+		// }
+		// Metaclass propertyType = property.getType();
+		// if (propertyType != null
+		// && propertyType.isAssignableFrom(UIElement.metaclass)) {
+		// continue;
+		// }
+		//
+		// String propertyName = property.getName();
+		//
+		// if (!existing.contains(propertyName)) {
+		// Object defaultValue = property.getDefaultValue();
+		// String defaultValueString = "";
+		// if (defaultValue != null) {
+		// IValueConverter converter = UPF.findConvertor(
+		// defaultValue.getClass(), String.class);
+		// if (converter != null) {
+		// Object stringValue = converter.convert(
+		// defaultValue, String.class, "", Locale
+		// .getDefault());
+		// if (stringValue != null) {
+		// defaultValueString = stringValue.toString();
+		// }
+		// } else {
+		// defaultValueString = defaultValue.toString();
+		// }
+		// }
+		// String replacementString = propertyName + "=\""
+		// + defaultValueString + "\" ";
+		//
+		// CMAttributeDeclarationImpl declaration = new CMAttributeDeclarationImpl(
+		// propertyName, CMAttributeDeclaration.OPTIONAL);
+		// Action action = createAddAttributeAction((Element) node,
+		// declaration);
+		// action.setImageDescriptor(proppertyImageDescriptor);
+		// actionPropertyCollector.add(action);
+		// }
+		// }
+		//
+		// Collection<Event> events = metaclass.getAllEvents();
+		// for (Event event : events) {
+		// String eventName = event.getName();
+		// if (!existing.contains(event)) {
+		//
+		// CMAttributeDeclarationImpl declaration = new CMAttributeDeclarationImpl(
+		// eventName, CMAttributeDeclaration.OPTIONAL);
+		// Action action = createAddAttributeAction((Element) node,
+		// declaration);
+		// action.setImageDescriptor(eventImageDescriptor);
+		// actionEventCollector.add(action);
+		// }
+		// }
+		// }
+		//
+		// {
+		// Node parentNode = node.getParentNode();
+		// String parentName = parentNode.getNodeName();
+		// Metaclass parentMetaclass = UPF.getMetaclass(parentName, DomHelper.lookupNamespaceURI(parentNode));
+		// if (parentMetaclass != null) {
+		// Property[] properties = parentMetaclass.getAttachedProperties();
+		// for (Property property : properties) {
+		// Metaclass propertyType = property.getType();
+		// if (propertyType != null
+		// && propertyType
+		// .isAssignableFrom(UIElement.metaclass)) {
+		// continue;
+		// }
+		//
+		// String propertyName = property.getName();
+		// if (!existing.contains(propertyName)) {
+		// Object defaultValue = property.getDefaultValue();
+		// String defaultValueString = "";
+		// if (defaultValue != null) {
+		// IValueConverter converter = UPF.findConvertor(
+		// defaultValue.getClass(), String.class);
+		// if (converter != null) {
+		// Object stringValue = converter.convert(
+		// defaultValue, String.class, "", Locale
+		// .getDefault());
+		// if (stringValue != null) {
+		// defaultValueString = stringValue.toString();
+		// }
+		// } else {
+		// defaultValueString = defaultValue.toString();
+		// }
+		// }
+		// String attachedName = parentName + "." + propertyName;
+		// String replacementString = attachedName + "=\""
+		// + defaultValueString + "\" ";
+		//
+		// CMAttributeDeclarationImpl declaration = new CMAttributeDeclarationImpl(
+		// attachedName, CMAttributeDeclaration.OPTIONAL);
+		// Action action = createAddAttributeAction(
+		// (Element) node, declaration);
+		// action
+		// .setImageDescriptor(attachedProppertyImageDescriptor);
+		// actionAttachedPropertyCollector.add(action);
+		// }
+		// }
+		// }
+		// }
+		// addAttributeMenu.add(new Separator());
+		// XAMLMenuBuilder imageMenuBuilder = null;
+		// if (!(menuBuilder instanceof XAMLMenuBuilder)) {
+		// menuBuilder = new XAMLMenuBuilder();
+		// }
+		// imageMenuBuilder = (XAMLMenuBuilder) menuBuilder;
+		//
+		// if (!actionPropertyCollector.isEmpty()) {
+		// imageMenuBuilder.setImageDescriptor(proppertyImageDescriptor);
+		// imageMenuBuilder.populateMenu(addAttributeMenu,
+		// actionPropertyCollector, true);
+		// addAttributeMenu.add(new Separator());
+		// }
+		// if (!actionAttachedPropertyCollector.isEmpty()) {
+		// imageMenuBuilder
+		// .setImageDescriptor(attachedProppertyImageDescriptor);
+		// imageMenuBuilder.populateMenu(addAttributeMenu,
+		// actionAttachedPropertyCollector, true);
+		// addAttributeMenu.add(new Separator());
+		// }
+		// if (!actionEventCollector.isEmpty()) {
+		// imageMenuBuilder.setImageDescriptor(eventImageDescriptor);
+		// imageMenuBuilder.populateMenu(addAttributeMenu,
+		// actionEventCollector, true);
+		// addAttributeMenu.add(new Separator());
+		// }
+		// imageMenuBuilder.setImageDescriptor(null);
+		//
+		// for (IContributionItem item : items) {
+		// addAttributeMenu.add(item);
+		// }
+	}
+
+	protected void contributeXAMLChildMenu(IMenuManager menu, Node node, int ic, int vc) {
+		IMenuManager addChildMenu = null;
+		String message = XMLUIMessages._UI_MENU_ADD_CHILD;
+		for (IContributionItem item : menu.getItems()) {
+			if (item instanceof MenuManager) {
+				MenuManager manager = (MenuManager) item;
+				if (message.equals(manager.getMenuText())) {
+					addChildMenu = manager;
+					break;
+				}
+			}
+		}
+		if (addChildMenu == null) {
+			return;
+		}
+
+		List<Action> propertyElementCollector = new ArrayList<Action>();
+		List<Action> elementCollector = new ArrayList<Action>();
+		List<Action> resourcesCollector = new ArrayList<Action>();
+
+		IContributionItem[] items = addChildMenu.getItems();
+		addChildMenu.removeAll();
+
+		// ImageDescriptor elementImageEDescriptor = ResourceManager.OBJ_ELEMENT;
+		// ImageDescriptor resourceImageDescriptor = ResourceManager.OBJ_RESOURCES;
+		//
+		// String name = node.getNodeName();
+		// Metaclass metaclass = UPF.getMetaclass(name, DomHelper.lookupNamespaceURI(node));
+		// if (metaclass != null) {
+		// Collection<Property> properties = metaclass.getAllProperties();
+		// for (Property property : properties) {
+		// Metaclass propertyType = property.getType();
+		// if (propertyType == null) {
+		// continue;
+		// }
+		// if (metaclass.isAssignableFrom(UIElement.metaclass)) {
+		// if (propertyType != null
+		// && propertyType
+		// .isAssignableFrom(UIElement.metaclass)
+		// && !propertyType.isAbstract()) {
+		// String typeName = property.getName();
+		// String tagName = name + "." + typeName;
+		//
+		// CMElementDeclarationImpl declaration = new CMElementDeclarationImpl(
+		// null, tagName);
+		// Action action = createAddElementAction((Element) node,
+		// declaration, -1);
+		// action.setImageDescriptor(elementImageEDescriptor);
+		// propertyElementCollector.add(action);
+		// }
+		// } else {
+		// if (property.getIsComposition()) {
+		// Metaclass[] metaclasses = UPF.getAllMetaclasses();
+		// for (Metaclass type : metaclasses) {
+		// if (TriggerBase.metaclass.isAssignableFrom(type)) {
+		// continue;
+		// }
+		// if (type.isSubclassOf(propertyType)
+		// && !type.isAbstract()) {
+		// String tagName = type.getName();
+		//
+		// CMElementDeclarationImpl declaration = new CMElementDeclarationImpl(
+		// null, tagName);
+		// Action action = createAddElementAction(
+		// (Element) node, declaration, -1);
+		// action
+		// .setImageDescriptor(elementImageEDescriptor);
+		// elementCollector.add(action);
+		// }
+		// }
+		// }
+		// }
+		// }
+		// String tagName = name + ".Resources";
+		//
+		// CMElementDeclarationImpl declaration = new CMElementDeclarationImpl(
+		// null, tagName);
+		// Action action = createAddElementAction((Element) node, declaration,
+		// -1);
+		// action.setImageDescriptor(elementImageEDescriptor);
+		// resourcesCollector.add(action);
+		// }
+		//
+		// if (metaclass != null) {
+		// if (UIElement.metaclass.isAssignableFrom(metaclass)) {
+		// Metaclass[] metaclasses = UPF.getAllMetaclasses();
+		// for (Metaclass type : metaclasses) {
+		// if (ListBoxItem.metaclass.isAssignableFrom(type)
+		// && !Selector.metaclass.isAssignableFrom(metaclass)) {
+		// continue;
+		// }
+		// if (TreeViewItem.metaclass.isAssignableFrom(type)
+		// && !TreeView.metaclass.isAssignableFrom(metaclass)) {
+		// continue;
+		// }
+		// if (TabItem.metaclass.isAssignableFrom(type)
+		// && !TabControl.metaclass
+		// .isAssignableFrom(metaclass)) {
+		// continue;
+		// }
+		//
+		// if (MenuItem.metaclass.isAssignableFrom(type)
+		// && !Menu.metaclass.isAssignableFrom(metaclass)) {
+		// continue;
+		// }
+		//
+		// if (type.getType().isAssignableFrom(IScopeObject.class)) {
+		// continue;
+		// }
+		// if (TriggerBase.metaclass.isAssignableFrom(type)) {
+		// continue;
+		// }
+		//
+		// if (UIElement.metaclass == type) {
+		// continue;
+		// }
+		//
+		// if (SetterBase.metaclass.isAssignableFrom(type)
+		// && !Style.metaclass.isAssignableFrom(metaclass)) {
+		// continue;
+		// }
+		//
+		// if (MenuItem.metaclass.isAssignableFrom(type)
+		// && !Menu.metaclass.isAssignableFrom(metaclass)) {
+		// continue;
+		// }
+		//
+		// if (UIElement.metaclass.isAssignableFrom(type)
+		// && !type.isAbstract()) {
+		// String tagName = type.getName();
+		//
+		// CMElementDeclarationImpl declaration = new CMElementDeclarationImpl(
+		// null, tagName);
+		// Action action = createAddElementAction((Element) node,
+		// declaration, -1);
+		// action.setImageDescriptor(elementImageEDescriptor);
+		// elementCollector.add(action);
+		// }
+		// }
+		// }
+		// } else if (name.endsWith(".Resources")) {
+		// Metaclass[] metaclasses = new Metaclass[] { Style.metaclass,
+		// ControlTemplate.metaclass, DataTemplate.metaclass,
+		// CollectionViewSource.metaclass };
+		// for (Metaclass type : metaclasses) {
+		// String typeName = type.getName();
+		//
+		// CMElementDeclarationImpl declaration = new CMElementDeclarationImpl(
+		// null, typeName);
+		// Action action = createAddElementAction((Element) node,
+		// declaration, -1);
+		// action.setImageDescriptor(elementImageEDescriptor);
+		// elementCollector.add(action);
+		// }
+		// } else if (name.endsWith(".Triggers")) {
+		// Metaclass[] metaclasses = new Metaclass[] { Style.metaclass,
+		// ControlTemplate.metaclass, DataTemplate.metaclass,
+		// CollectionViewSource.metaclass };
+		// for (Metaclass type : metaclasses) {
+		// if (!TriggerBase.metaclass.isAssignableFrom(type)) {
+		// continue;
+		// }
+		//
+		// String typeName = type.getName();
+		//
+		// CMElementDeclarationImpl declaration = new CMElementDeclarationImpl(
+		// null, typeName);
+		// Action action = createAddElementAction((Element) node,
+		// declaration, -1);
+		// action.setImageDescriptor(elementImageEDescriptor);
+		// elementCollector.add(action);
+		// }
+		// }
+		//
+		// addChildMenu.add(new Separator());
+		// XAMLMenuBuilder imageMenuBuilder = null;
+		// if (!(menuBuilder instanceof XAMLMenuBuilder)) {
+		// menuBuilder = new XAMLMenuBuilder();
+		// }
+		// imageMenuBuilder = (XAMLMenuBuilder) menuBuilder;
+		//
+		// if (!propertyElementCollector.isEmpty()) {
+		// imageMenuBuilder.setImageDescriptor(elementImageEDescriptor);
+		// imageMenuBuilder.populateMenu(addChildMenu,
+		// propertyElementCollector, true);
+		// addChildMenu.add(new Separator());
+		// }
+		// if (!elementCollector.isEmpty()) {
+		// imageMenuBuilder.setImageDescriptor(elementImageEDescriptor);
+		// imageMenuBuilder.populateMenu(addChildMenu, elementCollector, true);
+		// addChildMenu.add(new Separator());
+		// }
+		// if (!resourcesCollector.isEmpty()) {
+		// imageMenuBuilder.setImageDescriptor(resourceImageDescriptor);
+		// imageMenuBuilder.populateMenu(addChildMenu, resourcesCollector,
+		// true);
+		// addChildMenu.add(new Separator());
+		// }
+		// imageMenuBuilder.setImageDescriptor(null);
+		//
+		// for (IContributionItem item : items) {
+		// addChildMenu.add(item);
+		// }
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/treeviewer/XWTTableTreeViewer.java b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/treeviewer/XWTTableTreeViewer.java
new file mode 100755
index 0000000..ccd0669
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/src/org/eclipse/xwt/ui/editor/treeviewer/XWTTableTreeViewer.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.editor.treeviewer;
+
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
+import org.eclipse.wst.xml.ui.internal.tabletree.XMLTableTreeViewer;
+
+public class XWTTableTreeViewer extends XMLTableTreeViewer {
+
+	public XWTTableTreeViewer(Composite parent) {
+		super(parent);
+	}
+
+	class NodeActionMenuListener implements IMenuListener {
+		public void menuAboutToShow(IMenuManager menuManager) {
+			// used to disable NodeSelection listening while running
+			// NodeAction
+			XWTNodeActionManager nodeActionManager = new XWTNodeActionManager(((IDOMDocument) getInput()).getModel(), XWTTableTreeViewer.this) {
+			};
+			nodeActionManager.fillContextMenu(menuManager, getSelection());
+		}
+	}
+
+	/**
+	 * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
+	 */
+	protected void createContextMenu() {
+		MenuManager contextMenu = new MenuManager("#PopUp"); //$NON-NLS-1$
+		contextMenu.add(new Separator("additions")); //$NON-NLS-1$
+		contextMenu.setRemoveAllWhenShown(true);
+		contextMenu.addMenuListener(new NodeActionMenuListener());
+		Menu menu = contextMenu.createContextMenu(getControl());
+		getControl().setMenu(menu);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/templates/xamldefault-templates.properties b/plugins/org.eclipse.xwt.tools.ui.editor/templates/xamldefault-templates.properties
new file mode 100755
index 0000000..5bea8dd
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/templates/xamldefault-templates.properties
@@ -0,0 +1,47 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+Templates.static.resource.expression.name=StaticResource
+Templates.static.resource.expression.desc=StaticResource expression
+
+Templates.dynamic.resource.expression.name=DynamicResource
+Templates.dynamic.resource.expression.desc=DynamicResource expression
+
+Templates.static.resource.name=StaticResource
+Templates.static.resource.desc=StaticResource expression
+
+Templates.dynamic.resource.name=DynamicResource
+Templates.dynamic.resource.desc=DynamicResource expression
+
+Templates.static.binding.expression.name=BindingStatic
+Templates.static.binding.expression.desc=Static Resource Binding expression
+
+Templates.dynamic.binding.expression.name=BindingDynamic
+Templates.dynamic.binding.expression.desc=Dynamic Resource Binding expression
+
+Templates.static.binding.name=BindingStatic
+Templates.static.binding.desc=Binding Static Resource
+
+Templates.dynamic.binding.name=BindingDynamic
+Templates.dynamic.binding.desc=Binding Dynamic Resource
+
+Templates.style.name=Style
+Templates.style.desc=Style template
+
+Templates.xmlns.name=xmlns
+Templates.xmlns.desc=XWT default namespace
+
+Templates.xmlns.x.name=xmlns:x
+Templates.xmlns.x.desc=XWT mapping namespace
+
+Templates.xkey.name=xkey
+Templates.xkey.desc=x:Key=""
diff --git a/plugins/org.eclipse.xwt.tools.ui.editor/templates/xamldefault-templates.xml b/plugins/org.eclipse.xwt.tools.ui.editor/templates/xamldefault-templates.xml
new file mode 100755
index 0000000..d4c1efa
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.editor/templates/xamldefault-templates.xml
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+	/*******************************************************************************
+	* Copyright (c) 2004, 2009 IBM Corporation and others.
+	* All rights reserved. This program and the accompanying materials
+	* are made available under the terms of the Eclipse Public License 2.0
+	* which accompanies this distribution, and is available at
+	* https://www.eclipse.org/legal/epl-2.0/
+	*
+	* SPDX-License-Identifier: EPL-2.0
+	* 
+	* Contributors:
+	*     IBM Corporation - initial API and implementation
+	*******************************************************************************/
+-->
+<templates>
+
+	<template name="%Templates.static.resource.expression.name"
+		description="%Templates.static.resource.expression.desc"
+		id="org.eclipse.xwt.tools.ui.editors.templates.StaticResourceExpression" context="xml_attribute_value"
+		enabled="true">
+{StaticResource ${cursor}}
+	</template>
+
+	<template name="%Templates.dynamic.resource.expression.name"
+		description="%Templates.dynamic.resource.expression.desc"
+		id="org.eclipse.xwt.tools.ui.editors.templates.DynamicResourceExpression" context="xml_attribute_value"
+		enabled="true">
+{DynamicResource ${cursor}}
+	</template>
+
+	<template name="%Templates.static.resource.name"
+		description="%Templates.static.resource.desc"
+		id="org.eclipse.xwt.ui.editors.templates.StaticResource" context="xml_tag"
+		enabled="true">
+&lt;StaticResource ResourceKey="${cursor}"/&gt;
+	</template>
+
+	<template name="%Templates.dynamic.resource.name"
+		description="%Templates.dynamic.resource.desc"
+		id="org.eclipse.xwt.tools.ui.editors.templates.DynamicResource" context="xml_tag"
+		enabled="true">
+&lt;DynamicResource ResourceKey="${cursor}"/&gt;
+	</template>
+
+	<template name="%Templates.static.binding.expression.name"
+		description="%Templates.static.binding.expression.desc"
+		id="org.eclipse.xwt.tools.ui.editors.templates.static.BindingExpression" context="xml_attribute_value"
+		enabled="true">
+{Binding Source={StaticResource ${cursor}}, Path=Name}
+	</template>
+	
+	<template name="%Templates.dynamic.binding.expression.name"
+		description="%Templates.dynamic.binding.expression.desc"
+		id="org.eclipse.xwt.tools.ui.editors.templates.dynamic.BindingExpression" context="xml_attribute_value"
+		enabled="true">
+{Binding Source={DynamicResource ${cursor}}, Path=Name}
+	</template>
+
+	<template name="%Templates.static.binding.name"
+		description="%Templates.static.binding.desc"
+		id="org.eclipse.xwt.tools.ui.editors.templates.static.Binding" context="xml_tag"
+		enabled="true">
+&lt;Binding Source="{StaticResource ${cursor}}"
+				Path="Name"/&gt;
+  	</template>
+	
+	<template name="%Templates.dynamic.binding.name"
+		description="%Templates.dynamic.binding.desc"
+		id="org.eclipse.xwt.tools.ui.editors.templates.dynamic.Binding" context="xml_attribute_value"
+		enabled="true">
+&lt;Binding Source="{DynamicResource ${cursor}}"
+				Path="Name"/&gt;
+	</template>
+
+	<template name="%Templates.style.name"
+		description="%Templates.style.desc"
+		id="org.eclipse.xwt.tools.ui.style.Binding" context="xml_tag"
+		enabled="true">
+&lt;Style x:Key="key" TargetType="${cursor}"&gt;
+	&lt;Setter Property="propertyName" Value="16" /&gt;
+	&lt;Style.Triggers&gt;
+		&lt;Trigger Property="propertyName" Value="True"&gt;
+			&lt;Setter Property="propertyName" Value="Red" /&gt;
+		&lt;/Trigger&gt;
+	&lt;/Style.Triggers&gt;	
+&lt;/Style&gt;
+	</template>
+
+	<template name="%Templates.xmlns.name"
+		description="%Templates.xmlns.desc"
+		id="org.eclipse.xwt.tools.ui.style.Binding" context="xml_attribute"
+		enabled="true">xmlns="http://www.eclipse.org/swt/presentation"</template>
+
+	<template name="%Templates.xmlns.x.name"
+		description="%Templates.xmlns.x.desc"
+		id="org.eclipse.xwt.tools.ui.style.Binding" context="xml_attribute"
+		enabled="true">xmlns:x="http://www.eclipse.org/swt"</template>
+
+	<template name="%Templates.xkey.name"
+		description="%Templates.xkey.desc"
+		id="org.eclipse.xwt.tools.ui.style.Binding" context="xml_attribute"
+		enabled="true">
+		x:Key="${cursor}"
+	</template>
+
+</templates>
diff --git a/org.eclipse.xwt.tools.ui.editor/tools/toolkit.toolpalette b/plugins/org.eclipse.xwt.tools.ui.editor/tools/toolkit.toolpalette
similarity index 100%
rename from org.eclipse.xwt.tools.ui.editor/tools/toolkit.toolpalette
rename to plugins/org.eclipse.xwt.tools.ui.editor/tools/toolkit.toolpalette
diff --git a/org.eclipse.xwt.tools.ui.imagecapture/.classpath b/plugins/org.eclipse.xwt.tools.ui.imagecapture/.classpath
similarity index 100%
rename from org.eclipse.xwt.tools.ui.imagecapture/.classpath
rename to plugins/org.eclipse.xwt.tools.ui.imagecapture/.classpath
diff --git a/org.eclipse.xwt.tools.ui.imagecapture/.gitignore b/plugins/org.eclipse.xwt.tools.ui.imagecapture/.gitignore
similarity index 100%
rename from org.eclipse.xwt.tools.ui.imagecapture/.gitignore
rename to plugins/org.eclipse.xwt.tools.ui.imagecapture/.gitignore
diff --git a/org.eclipse.xwt.tools.ui.imagecapture/.project b/plugins/org.eclipse.xwt.tools.ui.imagecapture/.project
similarity index 100%
rename from org.eclipse.xwt.tools.ui.imagecapture/.project
rename to plugins/org.eclipse.xwt.tools.ui.imagecapture/.project
diff --git a/org.eclipse.xwt.tools.ui.imagecapture/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.xwt.tools.ui.imagecapture/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
rename from org.eclipse.xwt.tools.ui.imagecapture/.settings/org.eclipse.jdt.core.prefs
rename to plugins/org.eclipse.xwt.tools.ui.imagecapture/.settings/org.eclipse.jdt.core.prefs
diff --git a/org.eclipse.xwt.tools.ui.imagecapture/META-INF/MANIFEST.MF b/plugins/org.eclipse.xwt.tools.ui.imagecapture/META-INF/MANIFEST.MF
similarity index 100%
rename from org.eclipse.xwt.tools.ui.imagecapture/META-INF/MANIFEST.MF
rename to plugins/org.eclipse.xwt.tools.ui.imagecapture/META-INF/MANIFEST.MF
diff --git a/plugins/org.eclipse.xwt.tools.ui.imagecapture/OSGI-INF/l10n/bundle.properties b/plugins/org.eclipse.xwt.tools.ui.imagecapture/OSGI-INF/l10n/bundle.properties
new file mode 100755
index 0000000..b6e0875
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.imagecapture/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1,15 @@
+###############################################################################
+# Copyright (c) 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+#Properties file for org.eclipse.xwt.tools.ui.imagecapture
+Bundle-Vendor = Eclipse
+Bundle-Name = XWT VE Tools (Incubation)
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.imagecapture/build.properties b/plugins/org.eclipse.xwt.tools.ui.imagecapture/build.properties
new file mode 100755
index 0000000..d61cd80
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.imagecapture/build.properties
@@ -0,0 +1,26 @@
+###############################################################################
+# Copyright (c) 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               os/,\
+               build.properties,\
+               OSGI-INF/l10n/bundle.properties
+src.includes = build.properties,\
+               .classpath,\
+               .project,\
+               .settings/,\
+               META-INF/,\
+               os/,\
+               src/
diff --git a/org.eclipse.xwt.tools.ui.imagecapture/os/linux/ia64/libswt-gtk-print.so b/plugins/org.eclipse.xwt.tools.ui.imagecapture/os/linux/ia64/libswt-gtk-print.so
similarity index 100%
rename from org.eclipse.xwt.tools.ui.imagecapture/os/linux/ia64/libswt-gtk-print.so
rename to plugins/org.eclipse.xwt.tools.ui.imagecapture/os/linux/ia64/libswt-gtk-print.so
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.imagecapture/os/linux/ppc/libswt-gtk-print.so b/plugins/org.eclipse.xwt.tools.ui.imagecapture/os/linux/ppc/libswt-gtk-print.so
similarity index 100%
rename from org.eclipse.xwt.tools.ui.imagecapture/os/linux/ppc/libswt-gtk-print.so
rename to plugins/org.eclipse.xwt.tools.ui.imagecapture/os/linux/ppc/libswt-gtk-print.so
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.imagecapture/os/linux/x86/libswt-gtk-print.so b/plugins/org.eclipse.xwt.tools.ui.imagecapture/os/linux/x86/libswt-gtk-print.so
similarity index 100%
rename from org.eclipse.xwt.tools.ui.imagecapture/os/linux/x86/libswt-gtk-print.so
rename to plugins/org.eclipse.xwt.tools.ui.imagecapture/os/linux/x86/libswt-gtk-print.so
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.imagecapture/os/linux/x86_64/libswt-gtk-print.so b/plugins/org.eclipse.xwt.tools.ui.imagecapture/os/linux/x86_64/libswt-gtk-print.so
similarity index 100%
rename from org.eclipse.xwt.tools.ui.imagecapture/os/linux/x86_64/libswt-gtk-print.so
rename to plugins/org.eclipse.xwt.tools.ui.imagecapture/os/linux/x86_64/libswt-gtk-print.so
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.imagecapture/os/macosx/ppc/libswt-carbon-print.jnilib b/plugins/org.eclipse.xwt.tools.ui.imagecapture/os/macosx/ppc/libswt-carbon-print.jnilib
similarity index 100%
rename from org.eclipse.xwt.tools.ui.imagecapture/os/macosx/ppc/libswt-carbon-print.jnilib
rename to plugins/org.eclipse.xwt.tools.ui.imagecapture/os/macosx/ppc/libswt-carbon-print.jnilib
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.imagecapture/os/macosx/x86/libswt-carbon-print.jnilib b/plugins/org.eclipse.xwt.tools.ui.imagecapture/os/macosx/x86/libswt-carbon-print.jnilib
similarity index 100%
rename from org.eclipse.xwt.tools.ui.imagecapture/os/macosx/x86/libswt-carbon-print.jnilib
rename to plugins/org.eclipse.xwt.tools.ui.imagecapture/os/macosx/x86/libswt-carbon-print.jnilib
Binary files differ
diff --git a/plugins/org.eclipse.xwt.tools.ui.imagecapture/pom.xml b/plugins/org.eclipse.xwt.tools.ui.imagecapture/pom.xml
new file mode 100755
index 0000000..a3086bd
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.imagecapture/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-plugins</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt.tools.ui.imagecapture</artifactId>
+	<version>0.10.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+</project>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java b/plugins/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
new file mode 100755
index 0000000..89a1351
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
@@ -0,0 +1,131 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*
+ *  $RCSfile: ImageCapture.java,v $
+ *  $Revision: 1.2 $  $Date: 2009/12/11 22:14:10 $ 
+ */
+package org.eclipse.ve.internal.swt.targetvm.macosx;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Device;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+
+/**
+ * Image Capture for Mac OS X platforms.
+ * 
+ * @since 1.2.0
+ */
+
+public class ImageCapture extends org.eclipse.xwt.tools.ui.imagecapture.swt.ImageCapture {
+
+	private static Field shellHandleField = null;
+	private static Method HIViewGetRootMethod = null;
+	private static Method carbon_newMethod = null;
+
+	static {
+
+		System.loadLibrary("swt-carbon-print"); //$NON-NLS-1$
+
+		try {
+			shellHandleField = Shell.class.getDeclaredField("shellHandle"); //$NON-NLS-1$
+			shellHandleField.setAccessible(true);
+
+			Class<?> osClass = Class.forName("org.eclipse.swt.internal.carbon.OS"); //$NON-NLS-1$
+			HIViewGetRootMethod = osClass.getMethod("HIViewGetRoot", new Class[] { int.class }); //$NON-NLS-1$
+
+			carbon_newMethod = Image.class.getMethod("carbon_new", new Class[] { Device.class, int.class, int.class, int.class }); //$NON-NLS-1$
+
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	private native int captureImage(int controlHandle, int shellHandle);
+
+	protected Image getImage(Control control, int maxWidth, int maxHeight, boolean includeChildren) {
+
+		Rectangle rect = control.getBounds();
+		if (rect.width <= 0 || rect.height <= 0)
+			return null;
+
+		int width = Math.min(rect.width, maxWidth);
+		int height = Math.min(rect.height, maxHeight);
+
+		Image image = null;
+		if (!(control instanceof Shell)) {
+			Rectangle bounds = control.getBounds();
+			image = new Image(control.getDisplay(), bounds.width, bounds.height);
+			GC gc = new GC(image);
+			control.print(gc);
+			gc.dispose();
+			return image;
+		}
+
+		int controlHandle = -1;
+		int shellHandle = -1;
+
+		try {
+			if (control instanceof Shell) {
+				shellHandle = shellHandleField.getInt(control);
+				if (shellHandle != -1) {
+					Integer result = (Integer) HIViewGetRootMethod.invoke(null, new Object[] { new Integer(shellHandle) });
+					if (result != null) {
+						controlHandle = result.intValue();
+					}
+				}
+			} else {
+				controlHandle = getIntHandle(control);
+				shellHandle = shellHandleField.getInt(control.getShell());
+			}
+
+			int imageHandle = captureImage(controlHandle, shellHandle);
+
+			if (imageHandle != 0) {
+				// Create a temporary image using the captured image's handle
+				Image tempImage = (Image) carbon_newMethod.invoke(null, new Object[] { control.getDisplay(), new Integer(SWT.BITMAP), new Integer(imageHandle), new Integer(0) });
+				// image = Image.carbon_new(control.getDisplay(), SWT.BITMAP, imageHandle, 0);
+
+				// Create the result image
+				image = new Image(control.getDisplay(), width, height);
+
+				// Manually copy because the image's data handle isn't available
+				GC gc = new GC(tempImage);
+				gc.copyArea(image, 0, 0);
+				gc.dispose();
+
+				// Dispose of the temporary image allocated in the native call
+				tempImage.dispose();
+			}
+
+		} catch (IllegalArgumentException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (IllegalAccessException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (InvocationTargetException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+
+		return image;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/cocoa/ImageCapture.java b/plugins/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/cocoa/ImageCapture.java
new file mode 100755
index 0000000..8b8132f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/macosx/cocoa/ImageCapture.java
@@ -0,0 +1,153 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation with help of Kevin Barnes 
+ *               <krbarnes@ca.ibm.com>
+ *******************************************************************************/
+package org.eclipse.ve.internal.swt.targetvm.macosx.cocoa;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+
+/**
+ * 
+ * @author yyang <yves.yang@soyatec.com>
+ * @author Kevin Barnes <krbarnes@ca.ibm.com>
+ */
+public class ImageCapture extends org.eclipse.xwt.tools.ui.imagecapture.swt.ImageCapture {
+	static Field GC_handle;
+	static Field Control_view;
+	static Method NSView_superview;
+	static Method NSObject_isEqual;
+	static Method NSView_bounds;
+	static Method NSGraphicsContext_saveGraphicsState;
+	static Method NSGraphicsContext_restoreGraphicsState;
+	static Method NSGraphicsContext_setCurrentContext;
+
+	static Method NSAffineTransform_transform;
+
+	static Method NSAffineTransform_translateXBy;
+	static Method NSAffineTransform_scaleXBy;
+	static Method NSAffineTransform_concat;
+
+	static Method NSView_displayRectIgnoringOpacity;
+
+	static {
+		try {
+			Control_view = Control.class.getDeclaredField("view"); //$NON-NLS-1$
+			Control_view.setAccessible(true);
+
+			GC_handle = GC.class.getDeclaredField("handle"); //$NON-NLS-1$
+			GC_handle.setAccessible(true);
+
+			Class<?> NSViewClass = Class.forName("org.eclipse.swt.internal.cocoa.NSView"); //$NON-NLS-1$
+			NSView_superview = NSViewClass.getMethod("superview");
+
+			Class<?> idClass = Class.forName("org.eclipse.swt.internal.cocoa.id"); //$NON-NLS-1$
+			Class<?> NSObjectClass = Class.forName("org.eclipse.swt.internal.cocoa.NSObject"); //$NON-NLS-1$
+			NSObject_isEqual = NSObjectClass.getMethod("isEqual", idClass);
+
+			NSView_bounds = NSViewClass.getMethod("bounds");
+
+			Class<?> NSGraphicsContextClass = Class.forName("org.eclipse.swt.internal.cocoa.NSGraphicsContext"); //$NON-NLS-1$
+			NSGraphicsContext_saveGraphicsState = NSGraphicsContextClass.getMethod("saveGraphicsState");
+			NSGraphicsContext_setCurrentContext = NSGraphicsContextClass.getMethod("setCurrentContext", NSGraphicsContextClass);
+			NSGraphicsContext_restoreGraphicsState = NSGraphicsContextClass.getMethod("restoreGraphicsState");
+
+			Class<?> NSAffineTransformClass = Class.forName("org.eclipse.swt.internal.cocoa.NSAffineTransform"); //$NON-NLS-1$
+			NSAffineTransform_transform = NSAffineTransformClass.getMethod("transform");
+			NSAffineTransform_translateXBy = NSAffineTransformClass.getMethod("translateXBy", double.class, double.class);
+			if (NSAffineTransform_translateXBy == null) {
+				NSAffineTransform_translateXBy = NSAffineTransformClass.getMethod("translateXBy", float.class, float.class);
+			}
+			NSAffineTransform_scaleXBy = NSAffineTransformClass.getMethod("scaleXBy", double.class, double.class);
+			if (NSAffineTransform_scaleXBy == null) {
+				NSAffineTransform_scaleXBy = NSAffineTransformClass.getMethod("scaleXBy", float.class, float.class);
+			}
+			NSAffineTransform_concat = NSAffineTransformClass.getMethod("concat");
+
+			Class<?> NSRectClass = Class.forName("org.eclipse.swt.internal.cocoa.NSRect"); //$NON-NLS-1$
+
+			NSView_displayRectIgnoringOpacity = NSViewClass.getMethod("displayRectIgnoringOpacity", NSRectClass, NSGraphicsContextClass);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	@Override
+	protected Image getImage(Control control, int maxWidth, int maxHeight, boolean includeChildren) {
+		if (!(control instanceof Shell)) {
+			Rectangle bounds = control.getBounds();
+			Image image = new Image(control.getDisplay(), bounds.width, bounds.height);
+			GC gc = new GC(image);
+			control.print(gc);
+			gc.dispose();
+			return image;
+		}
+
+		Rectangle rectangle = new Rectangle(0, 0, maxWidth, maxHeight);
+		Image image = new Image(control.getDisplay(), rectangle);
+		GC gc = new GC(image);
+
+		try {
+			Object view = Control_view.get(control);
+			if (control instanceof Shell) {
+				Object superview = NSView_superview.invoke(view);
+				while (superview != null) {
+					view = superview;
+					superview = NSView_superview.invoke(view);
+				}
+			} else {
+				Composite parent = control.getParent();
+				Object parentView = Control_view.get(parent);
+
+				while (true) {
+					Object superview = NSView_superview.invoke(view);
+					Boolean equal = (Boolean) NSObject_isEqual.invoke(superview, parentView);
+					if (equal) {
+						break;
+					}
+					view = superview;
+				}
+			}
+			Object gcHandle = GC_handle.get(gc);
+			// gc.handle.saveGraphicsState();
+			NSGraphicsContext_saveGraphicsState.invoke(gcHandle);
+			// NSGraphicsContext.setCurrentContext(gc.handle);
+			NSGraphicsContext_setCurrentContext.invoke(null, gcHandle);
+			// NSAffineTransform transform = NSAffineTransform.transform ();
+			Object transform = NSAffineTransform_transform.invoke(null);
+			// transform.translateXBy (0, rectangle.height);
+			NSAffineTransform_translateXBy.invoke(transform, 0, rectangle.height);
+			// transform.scaleXBy (1, -1);
+			NSAffineTransform_scaleXBy.invoke(transform, 1, -1);
+			// transform.concat ();
+			NSAffineTransform_concat.invoke(transform);
+			// view.displayRectIgnoringOpacity(view.bounds(), gc.handle);
+			Object bounds = NSView_bounds.invoke(view);
+			NSView_displayRectIgnoringOpacity.invoke(view, bounds, gcHandle);
+
+			// gc.handle.restoreGraphicsState();
+			NSGraphicsContext_restoreGraphicsState.invoke(gcHandle);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+
+		gc.dispose();
+		return image;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/DisposeUtil.java b/plugins/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/DisposeUtil.java
new file mode 100755
index 0000000..b737d1d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/DisposeUtil.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ve.internal.swt.targetvm.unix;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.swt.graphics.GC;
+
+public class DisposeUtil {
+
+	/**
+	 * in MAC Cocoa, we should not dispose the GC for an image. The image will dispose
+	 * the gc automatically.
+	 * 
+	 * @param gc
+	 */
+	public static void dispose(GC gc) {
+		if (!Platform.getWS().equals(Platform.WS_COCOA)) {
+			gc.dispose();
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java b/plugins/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
new file mode 100755
index 0000000..1d9eda5
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
@@ -0,0 +1,421 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*
+ *  $RCSfile: ImageCapture.java,v $
+ *  $Revision: 1.3 $  $Date: 2009/12/22 15:40:54 $ 
+ */
+package org.eclipse.ve.internal.swt.targetvm.unix;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.ImageData;
+import org.eclipse.swt.graphics.PaletteData;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.RGB;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Decorations;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.Widget;
+
+/**
+ * GTK version of Image Capture
+ * 
+ * @since 1.0.0
+ */
+public class ImageCapture extends org.eclipse.xwt.tools.ui.imagecapture.swt.ImageCapture {
+	static Field Menu_handler;
+	static Field Control_handler;
+
+	static {
+		try {
+			Menu_handler = Menu.class.getField("handle");
+			Control_handler = Control.class.getField("handle");
+
+			System.loadLibrary("swt-gtk-print"); //$NON-NLS-1$
+		} catch (Exception error) {
+			error.printStackTrace();
+		} catch (UnsatisfiedLinkError error) {
+			error.printStackTrace();
+		}
+	}
+
+	static final int OBSCURED = 1 << 6; // Must be the same value as Widget.OBSCURED
+	static final String FIELD_STATE_NAME = "state"; //$NON-NLS-1$
+
+	private native int[] getPixels(int handle, int includeChildren, int maxWidth, int maxHeight, int arg4);
+
+	protected Point getTopLeftOfClientarea(Decorations decorations) {
+		Point trim = decorations.toControl(decorations.getLocation());
+		trim.x = -trim.x;
+		trim.y = -trim.y;
+		if (decorations.getMenuBar() != null) {
+			Menu menu = decorations.getMenuBar();
+			try {
+				Class<?> osClass = Class.forName("org.eclipse.swt.internal.gtk.OS"); //$NON-NLS-1$
+				Method method = osClass.getMethod("GTK_WIDGET_HEIGHT", new Class[] { int.class }); //$NON-NLS-1$
+				Object ret = method.invoke(menu, new Object[] { Menu_handler.getInt(menu) });
+				if (ret != null) {
+					int menuBarHeight = ((Integer) ret).intValue();
+					trim.y -= menuBarHeight;
+				}
+			} catch (Throwable t) {
+			}
+		}
+		return new Point(trim.x, trim.y);
+	}
+
+	protected Image getImageOfControl(Control control, int includeChildren, int maxWidth, int maxHeight) {
+		Image image = null;
+		if (control instanceof Shell) {
+			Shell shell = (Shell) control;
+			int handle = readIntFieldValue(shell.getClass(), shell, "shellHandle"); //$NON-NLS-1$
+			if (handle > 0) {
+				image = getImageOfHandle(handle, shell.getDisplay(), includeChildren, maxWidth, maxHeight);
+			}
+		}
+		try {
+			if (image == null) {
+				image = getImageOfHandle(Control_handler.getInt(control), control.getDisplay(), includeChildren, maxWidth, maxHeight);
+			}
+			if (control instanceof Decorations) {
+				Decorations decorations = (Decorations) control;
+				Rectangle shellBounds = decorations.getBounds();
+				Point topLeft = getTopLeftOfClientarea(decorations);
+				Image realShellImage = new Image(decorations.getDisplay(), shellBounds.width, shellBounds.height);
+				Image origImage = image;
+				try {
+					simulateDecoration(decorations, realShellImage, decorations.getBounds(), decorations.getClientArea(), topLeft);
+					GC gc = new GC(realShellImage);
+					gc.drawImage(image, topLeft.x, topLeft.y);
+					DisposeUtil.dispose(gc);
+					image = realShellImage;
+				} finally {
+					origImage.dispose();
+				}
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return image;
+	}
+
+	protected Image getImageOfHandle(int handle, Display display, int includeChildren, int maxWidth, int maxHeight) {
+		int[] tcData = getPixels(handle, includeChildren, maxWidth, maxHeight, 0);
+		int depth = display.getDepth();
+		if (depth == 15)
+			depth = 16; // SWT cant handle depth of 15. Similar to 16
+		if (depth > 24)
+			depth = 24;
+		if (tcData != null) {
+			int tcWidth = tcData[0];
+			int tcHeight = tcData[1];
+			int type = tcData[2];
+			if (type == 1) {
+				// Direct RGB values
+				int red_mask = tcData[3] == -1 ? 0x00FF : tcData[3];
+				int green_mask = tcData[4] == -1 ? 0x00FF00 : tcData[4];
+				int blue_mask = tcData[5] == -1 ? 0x00FF0000 : tcData[5];
+				// System.err.println("Masks: "+Integer.toHexString(red_mask)+","+Integer.toHexString(green_mask)+","+Integer.toHexString(blue_mask));
+				int[] tcPixels = new int[tcData.length - 6];
+				System.arraycopy(tcData, 6, tcPixels, 0, tcPixels.length);
+				ImageData tcImageData = new ImageData(tcWidth, tcHeight, depth, new PaletteData(red_mask, green_mask, blue_mask));
+				tcImageData.setPixels(0, 0, tcPixels.length, tcPixels, 0);
+				Image tcImage = new Image(display, tcImageData);
+				return tcImage;
+			} else if (type == 2) {
+				// Indexed values
+				int numColors = tcData[3];
+				RGB[] rgb = new RGB[numColors];
+				// System.err.println("### Num colors = "+numColors);
+				for (int colCount = 0; colCount < numColors; colCount++) {
+					int r = tcData[4 + (colCount * 3) + 0];
+					int g = tcData[4 + (colCount * 3) + 1];
+					int b = tcData[4 + (colCount * 3) + 2];
+					rgb[colCount] = new RGB(r, g, b);
+				}
+				PaletteData pd = new PaletteData(rgb);
+				ImageData id = new ImageData(tcWidth, tcHeight, depth, pd);
+				int offset = (4 + (rgb.length * 3));
+				int pixels[] = new int[tcData.length - offset];
+				System.arraycopy(tcData, offset, pixels, 0, pixels.length);
+				id.setPixels(0, 0, pixels.length, pixels, 0);
+				Image tcImage = new Image(display, id);
+				// System.err.println("### returning image");
+				return tcImage;
+			} else {
+				System.err.println("JNI Returned unknown image type"); //$NON-NLS-1$
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * @param decoration
+	 * @param realShellImage
+	 * @param bounds
+	 * @param clientArea
+	 * @param topLeft
+	 * 
+	 * @since 1.0.0
+	 */
+	private void simulateDecoration(Decorations decoration, Image realShellImage, Rectangle bounds, Rectangle clientArea, Point topLeft) {
+		GC gc = new GC(realShellImage);
+		try {
+			gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
+			gc.fillRectangle(0, 0, bounds.width, bounds.height);
+			gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
+			gc.drawRectangle(topLeft.x - 1, topLeft.y - 1, clientArea.width + 2, clientArea.height + 2);
+
+			// little squares at bottom corners
+			gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_BACKGROUND));
+			gc.fillRectangle(0, bounds.height - topLeft.y, topLeft.y, bounds.height);
+			gc.fillRectangle(bounds.width - topLeft.y, bounds.height - topLeft.y, bounds.width, bounds.height);
+
+			// title bar
+			if ((decoration.getStyle() & (SWT.TITLE | SWT.CLOSE | SWT.MAX | SWT.MIN)) != 0 && topLeft.y > 2) {
+				int barHeight = topLeft.y - 2;
+				// There will be a title bar - draw the text
+				gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_BACKGROUND));
+				gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_FOREGROUND));
+				gc.fillGradientRectangle(0, 0, bounds.width, barHeight, false);
+				gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_FOREGROUND));
+				gc.drawText(decoration.getText(), topLeft.y, 2, true);
+				if (decoration.getImage() != null && !decoration.getImage().isDisposed()) {
+					Rectangle imageBounds = decoration.getImage().getBounds();
+					if (imageBounds.height <= barHeight) {
+						gc.drawImage(decoration.getImage(), 0, 0);
+					} else {
+						ImageData imageData = decoration.getImage().getImageData();
+						double factor = (double) barHeight / (double) imageBounds.height;
+						int newWidth = (int) (imageBounds.width * factor);
+						imageData = imageData.scaledTo(newWidth, barHeight);
+						Image newImage = new Image(decoration.getDisplay(), imageData);
+						gc.drawImage(newImage, 0, 0);
+						newImage.dispose();
+					}
+				}
+
+				int rightx = bounds.width - topLeft.y;
+
+				// title bar buttons
+				if ((decoration.getStyle() & SWT.CLOSE) != 0) {
+					gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
+					gc.fillRectangle(rightx, 0, topLeft.y, topLeft.y);
+					gc.setLineWidth(1);
+					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
+					gc.drawRectangle(rightx, 0, topLeft.y, topLeft.y);
+					int lineWidth = topLeft.y / 6;
+					if (lineWidth < 1)
+						lineWidth = 1;
+					gc.setLineWidth(lineWidth);
+					lineWidth = lineWidth * 2;
+					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BORDER));
+					gc.drawLine(rightx + lineWidth, lineWidth, rightx + topLeft.y - lineWidth, topLeft.y - lineWidth);
+					gc.drawLine(rightx + lineWidth, topLeft.y - lineWidth, rightx + topLeft.y - lineWidth, lineWidth);
+					rightx -= topLeft.y;
+				}
+				if ((decoration.getStyle() & SWT.MAX) != 0) {
+					gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
+					gc.fillRectangle(rightx, 0, topLeft.y, topLeft.y);
+					gc.setLineWidth(1);
+					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
+					gc.drawRectangle(rightx, 0, topLeft.y, topLeft.y);
+					int lineWidth = topLeft.y / 6;
+					if (lineWidth < 1)
+						lineWidth = 1;
+					gc.setLineWidth(lineWidth);
+					lineWidth = lineWidth * 2;
+					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BORDER));
+					gc.drawRectangle(rightx + lineWidth, lineWidth, topLeft.y - (2 * lineWidth), topLeft.y - (2 * lineWidth));
+					rightx -= topLeft.y;
+				}
+				if ((decoration.getStyle() & SWT.MIN) != 0) {
+					gc.setLineWidth(1);
+					gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
+					gc.fillRectangle(rightx, 0, topLeft.y - 1, topLeft.y - 1);
+					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
+					gc.drawRectangle(rightx, 0, topLeft.y - 1, topLeft.y - 1);
+					int lineWidth = topLeft.y / 6;
+					if (lineWidth < 1)
+						lineWidth = 1;
+					gc.setLineWidth(lineWidth);
+					lineWidth = lineWidth * 2;
+					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BORDER));
+					gc.drawLine(rightx + lineWidth, topLeft.y - lineWidth, rightx + topLeft.y - lineWidth, topLeft.y - lineWidth);
+					rightx -= topLeft.y;
+				}
+
+				gc.setLineWidth(1);
+				gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
+				gc.drawLine(0, topLeft.y - 1, bounds.width, topLeft.y - 1);
+			}
+		} finally {
+			gc.dispose();
+		}
+	}
+
+	protected Map<Class<?>, Map<String, Object>> fieldAccessors = new HashMap<Class<?>, Map<String, Object>>(); // Map of Class->fieldName->field reflect
+
+	/**
+	 * @param object
+	 * @param fieldName
+	 * @return
+	 * 
+	 * @since 1.0.0
+	 */
+	private int readIntFieldValue(Class<?> klass, Object object, String fieldName) {
+		try {
+			Field field = getField(klass, fieldName);
+			return field != null ? field.getInt(object) : 0;
+		} catch (IllegalArgumentException e) {
+		} catch (IllegalAccessException e) {
+		}
+		return -1;
+	}
+
+	private static final Object NO_FIELD = new Object();
+
+	private Field getField(Class<?> klass, String fieldName) {
+		Map<String, Object> nameToField = fieldAccessors.get(klass);
+		if (nameToField == null) {
+			fieldAccessors.put(klass, nameToField = new HashMap<String, Object>());
+		}
+		Object field = nameToField.get(fieldName);
+		if (field == null) {
+			try {
+				field = klass.getDeclaredField(fieldName);
+				((Field) field).setAccessible(true);
+			} catch (SecurityException e) {
+				field = NO_FIELD;
+				e.printStackTrace();
+			} catch (NoSuchFieldException e) {
+				field = NO_FIELD;
+				e.printStackTrace();
+			}
+			nameToField.put(fieldName, field);
+		}
+		return (Field) (field != NO_FIELD ? field : null);
+	}
+
+	/**
+	 * @param object
+	 * @param fieldName
+	 * @return
+	 * 
+	 * @since 1.0.0
+	 */
+	private void writeIntFieldValue(Class<?> klass, Object object, String fieldName, int newInt) {
+		try {
+			Field field = getField(klass, fieldName);
+			field.setInt(object, newInt);
+		} catch (IllegalArgumentException e) {
+		} catch (IllegalAccessException e) {
+		}
+	}
+
+	protected Image getImage(Control control, int maxWidth, int maxHeight, boolean includeChildren) {
+		int ic = includeChildren ? 1 : 0;
+		Map<Control, Integer> map = new HashMap<Control, Integer>();
+		changeObscured(control, map, false);
+		Image image = null;
+		if (!(control instanceof Shell)) {
+			Rectangle bounds = control.getBounds();
+			image = new Image(control.getDisplay(), bounds.width, bounds.height);
+			GC gc = new GC(image);
+			control.print(gc);
+			gc.dispose();
+			return image;
+		}
+
+		try {
+			image = getImageOfControl(control, ic, maxWidth, maxHeight);
+		} finally {
+			changeObscured(control, map, true);
+		}
+		return image;
+	}
+
+	/**
+	 * @param control
+	 * @param map
+	 * 
+	 * @since 1.0.0
+	 */
+	private void changeObscured(Control control, Map<Control, Integer> map, boolean on) {
+		if (on) {
+			// restoring the obscured flags
+			if (map.containsKey(control)) {
+				// control had obscured flag changed - reset it
+				Integer originalValue = (Integer) map.get(control);
+				writeIntFieldValue(Widget.class, control, FIELD_STATE_NAME, originalValue.intValue());
+			}
+		} else {
+			// disabling the obscure flags
+			int stateValue = readIntFieldValue(Widget.class, control, FIELD_STATE_NAME);
+			if ((stateValue & OBSCURED) != 0) {
+				// obscured - disable flag and remember
+				map.put(control, new Integer(stateValue));
+				stateValue &= ~OBSCURED;
+				writeIntFieldValue(Widget.class, control, FIELD_STATE_NAME, stateValue);
+			}
+		}
+		if (control instanceof CCombo) {
+			// CCombo has a text field whose OBSCURED field needs to be changed
+			CCombo ccombo = (CCombo) control;
+			Object val = readObjectFieldValue(CCombo.class, ccombo, "text"); //$NON-NLS-1$
+			if (val instanceof Text) {
+				Text text = (Text) val;
+				changeObscured(text, map, on);
+			}
+		} else if (control instanceof Composite) {
+			Composite composite = (Composite) control;
+			Control[] children = composite.getChildren();
+			for (int cc = 0; children != null && cc < children.length; cc++) {
+				changeObscured(children[cc], map, on);
+			}
+		}
+	}
+
+	/**
+	 * @param object
+	 * @param fieldName
+	 * @return
+	 * 
+	 * @since 1.1.0.1
+	 */
+	private Object readObjectFieldValue(Class<?> klass, Object object, String fieldName) {
+		try {
+			Field field = klass.getDeclaredField(fieldName);
+			field.setAccessible(true);
+			return field.get(object);
+		} catch (SecurityException e) {
+		} catch (NoSuchFieldException e) {
+		} catch (IllegalArgumentException e) {
+		} catch (IllegalAccessException e) {
+		}
+		return null;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java b/plugins/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
new file mode 100755
index 0000000..0a9b04a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
@@ -0,0 +1,426 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*
+ *  $RCSfile: ImageCapture.java,v $
+ *  $Revision: 1.3 $  $Date: 2009/12/22 15:40:54 $ 
+ */
+package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.ImageData;
+import org.eclipse.swt.graphics.PaletteData;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.RGB;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Decorations;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.ve.internal.swt.targetvm.unix.DisposeUtil;
+
+/**
+ * GTK version of Image Capture
+ * 
+ * @since 1.0.0
+ */
+public class ImageCapture extends org.eclipse.xwt.tools.ui.imagecapture.swt.ImageCapture {
+	static Field Menu_handler;
+
+	static {
+		try {
+			Menu_handler = Menu.class.getField("handle");
+			System.loadLibrary("swt-gtk-print"); //$NON-NLS-1$
+		} catch (Exception error) {
+			error.printStackTrace();
+		} catch (UnsatisfiedLinkError error) {
+			error.printStackTrace();
+		}
+	}
+	static final int OBSCURED = 1 << 6; // Must be the same value as Widget.OBSCURED
+	static final String FIELD_STATE_NAME = "state"; //$NON-NLS-1$
+
+	private native int[] getPixels(long handle, int includeChildren, int maxWidth, int maxHeight, int arg4);
+
+	protected Point getTopLeftOfClientarea(Decorations decorations) {
+		Point trim = decorations.toControl(decorations.getLocation());
+		trim.x = -trim.x;
+		trim.y = -trim.y;
+		if (decorations.getMenuBar() != null) {
+			Menu menu = decorations.getMenuBar();
+			try {
+				Class<?> osClass = Class.forName("org.eclipse.swt.internal.gtk.OS"); //$NON-NLS-1$
+				Method method = osClass.getMethod("GTK_WIDGET_HEIGHT", new Class[] { long.class }); //$NON-NLS-1$
+				Object ret = method.invoke(menu, new Object[] { Menu_handler.getLong(menu) });
+				if (ret != null) {
+					int menuBarHeight = ((Integer) ret).intValue();
+					trim.y -= menuBarHeight;
+				}
+			} catch (Throwable t) {
+			}
+		}
+		return new Point(trim.x, trim.y);
+	}
+
+	protected Image getImageOfControl(Control control, int includeChildren, int maxWidth, int maxHeight) {
+		Image image = null;
+		if (!(control instanceof Shell)) {
+			Rectangle bounds = control.getBounds();
+			image = new Image(control.getDisplay(), bounds.width, bounds.height);
+			GC gc = new GC(image);
+			control.print(gc);
+			DisposeUtil.dispose(gc);
+			return image;
+		}
+
+		if (control instanceof Shell) {
+			Shell shell = (Shell) control;
+			long handle = readLongFieldValue(shell.getClass(), shell, "shellHandle"); //$NON-NLS-1$
+			if (handle > 0) {
+				image = getImageOfHandle(handle, shell.getDisplay(), includeChildren, maxWidth, maxHeight);
+			}
+		}
+		if (image == null) {
+			// Use reflection to get the control handle to avoid linking problems with being
+			// compiled on a 32 bit machine against 32 bit swt.
+			long handle = readLongFieldValue(Widget.class, control, "handle"); //$NON-NLS-1$
+			image = getImageOfHandle(handle, control.getDisplay(), includeChildren, maxWidth, maxHeight);
+		}
+		if (control instanceof Decorations) {
+			Decorations decorations = (Decorations) control;
+			Rectangle shellBounds = decorations.getBounds();
+			Point topLeft = getTopLeftOfClientarea(decorations);
+			Image realShellImage = new Image(decorations.getDisplay(), shellBounds.width, shellBounds.height);
+			Image origImage = image;
+			try {
+				simulateDecoration(decorations, realShellImage, decorations.getBounds(), decorations.getClientArea(), topLeft);
+				GC gc = new GC(realShellImage);
+				gc.drawImage(image, topLeft.x, topLeft.y);
+				gc.dispose();
+				image = realShellImage;
+			} finally {
+				origImage.dispose();
+			}
+		}
+		return image;
+	}
+
+	protected Image getImageOfHandle(long handle, Display display, int includeChildren, int maxWidth, int maxHeight) {
+		int[] tcData = getPixels(handle, includeChildren, maxWidth, maxHeight, 0);
+		int depth = display.getDepth();
+		if (depth == 15)
+			depth = 16; // SWT cant handle depth of 15. Similar to 16
+		if (depth > 24)
+			depth = 24;
+		if (tcData != null) {
+			int tcWidth = tcData[0];
+			int tcHeight = tcData[1];
+			int type = tcData[2];
+			if (type == 1) {
+				// Direct RGB values
+				int red_mask = tcData[3] == -1 ? 0x00FF : tcData[3];
+				int green_mask = tcData[4] == -1 ? 0x00FF00 : tcData[4];
+				int blue_mask = tcData[5] == -1 ? 0x00FF0000 : tcData[5];
+				// System.err.println("Masks: "+Integer.toHexString(red_mask)+","+Integer.toHexString(green_mask)+","+Integer.toHexString(blue_mask));
+				int[] tcPixels = new int[tcData.length - 6];
+				System.arraycopy(tcData, 6, tcPixels, 0, tcPixels.length);
+				ImageData tcImageData = new ImageData(tcWidth, tcHeight, depth, new PaletteData(red_mask, green_mask, blue_mask));
+				tcImageData.setPixels(0, 0, tcPixels.length, tcPixels, 0);
+				Image tcImage = new Image(display, tcImageData);
+				return tcImage;
+			} else if (type == 2) {
+				// Indexed values
+				int numColors = tcData[3];
+				RGB[] rgb = new RGB[numColors];
+				// System.err.println("### Num colors = "+numColors);
+				for (int colCount = 0; colCount < numColors; colCount++) {
+					int r = tcData[4 + (colCount * 3) + 0];
+					int g = tcData[4 + (colCount * 3) + 1];
+					int b = tcData[4 + (colCount * 3) + 2];
+					rgb[colCount] = new RGB(r, g, b);
+				}
+				PaletteData pd = new PaletteData(rgb);
+				ImageData id = new ImageData(tcWidth, tcHeight, depth, pd);
+				int offset = (4 + (rgb.length * 3));
+				int pixels[] = new int[tcData.length - offset];
+				System.arraycopy(tcData, offset, pixels, 0, pixels.length);
+				id.setPixels(0, 0, pixels.length, pixels, 0);
+				Image tcImage = new Image(display, id);
+				// System.err.println("### returning image");
+				return tcImage;
+			} else {
+				System.err.println("JNI Returned unknown image type"); //$NON-NLS-1$
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * @param decoration
+	 * @param realShellImage
+	 * @param bounds
+	 * @param clientArea
+	 * @param topLeft
+	 * 
+	 * @since 1.0.0
+	 */
+	private void simulateDecoration(Decorations decoration, Image realShellImage, Rectangle bounds, Rectangle clientArea, Point topLeft) {
+		GC gc = new GC(realShellImage);
+		try {
+			gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
+			gc.fillRectangle(0, 0, bounds.width, bounds.height);
+			gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
+			gc.drawRectangle(topLeft.x - 1, topLeft.y - 1, clientArea.width + 2, clientArea.height + 2);
+
+			// little squares at bottom corners
+			gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_BACKGROUND));
+			gc.fillRectangle(0, bounds.height - topLeft.y, topLeft.y, bounds.height);
+			gc.fillRectangle(bounds.width - topLeft.y, bounds.height - topLeft.y, bounds.width, bounds.height);
+
+			// title bar
+			if ((decoration.getStyle() & (SWT.TITLE | SWT.CLOSE | SWT.MAX | SWT.MIN)) != 0 && topLeft.y > 2) {
+				int barHeight = topLeft.y - 2;
+				// There will be a title bar - draw the text
+				gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_BACKGROUND));
+				gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_FOREGROUND));
+				gc.fillGradientRectangle(0, 0, bounds.width, barHeight, false);
+				gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_FOREGROUND));
+				gc.drawText(decoration.getText(), topLeft.y, 2, true);
+				if (decoration.getImage() != null && !decoration.getImage().isDisposed()) {
+					Rectangle imageBounds = decoration.getImage().getBounds();
+					if (imageBounds.height <= barHeight) {
+						gc.drawImage(decoration.getImage(), 0, 0);
+					} else {
+						ImageData imageData = decoration.getImage().getImageData();
+						double factor = (double) barHeight / (double) imageBounds.height;
+						int newWidth = (int) (imageBounds.width * factor);
+						imageData = imageData.scaledTo(newWidth, barHeight);
+						Image newImage = new Image(decoration.getDisplay(), imageData);
+						gc.drawImage(newImage, 0, 0);
+						newImage.dispose();
+					}
+				}
+
+				int rightx = bounds.width - topLeft.y;
+
+				// title bar buttons
+				if ((decoration.getStyle() & SWT.CLOSE) != 0) {
+					gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
+					gc.fillRectangle(rightx, 0, topLeft.y, topLeft.y);
+					gc.setLineWidth(1);
+					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
+					gc.drawRectangle(rightx, 0, topLeft.y, topLeft.y);
+					int lineWidth = topLeft.y / 6;
+					if (lineWidth < 1)
+						lineWidth = 1;
+					gc.setLineWidth(lineWidth);
+					lineWidth = lineWidth * 2;
+					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BORDER));
+					gc.drawLine(rightx + lineWidth, lineWidth, rightx + topLeft.y - lineWidth, topLeft.y - lineWidth);
+					gc.drawLine(rightx + lineWidth, topLeft.y - lineWidth, rightx + topLeft.y - lineWidth, lineWidth);
+					rightx -= topLeft.y;
+				}
+				if ((decoration.getStyle() & SWT.MAX) != 0) {
+					gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
+					gc.fillRectangle(rightx, 0, topLeft.y, topLeft.y);
+					gc.setLineWidth(1);
+					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
+					gc.drawRectangle(rightx, 0, topLeft.y, topLeft.y);
+					int lineWidth = topLeft.y / 6;
+					if (lineWidth < 1)
+						lineWidth = 1;
+					gc.setLineWidth(lineWidth);
+					lineWidth = lineWidth * 2;
+					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BORDER));
+					gc.drawRectangle(rightx + lineWidth, lineWidth, topLeft.y - (2 * lineWidth), topLeft.y - (2 * lineWidth));
+					rightx -= topLeft.y;
+				}
+				if ((decoration.getStyle() & SWT.MIN) != 0) {
+					gc.setLineWidth(1);
+					gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
+					gc.fillRectangle(rightx, 0, topLeft.y - 1, topLeft.y - 1);
+					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
+					gc.drawRectangle(rightx, 0, topLeft.y - 1, topLeft.y - 1);
+					int lineWidth = topLeft.y / 6;
+					if (lineWidth < 1)
+						lineWidth = 1;
+					gc.setLineWidth(lineWidth);
+					lineWidth = lineWidth * 2;
+					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BORDER));
+					gc.drawLine(rightx + lineWidth, topLeft.y - lineWidth, rightx + topLeft.y - lineWidth, topLeft.y - lineWidth);
+					rightx -= topLeft.y;
+				}
+
+				gc.setLineWidth(1);
+				gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
+				gc.drawLine(0, topLeft.y - 1, bounds.width, topLeft.y - 1);
+			}
+		} finally {
+			gc.dispose();
+		}
+	}
+
+	protected Map<Class<?>, Map<String, Object>> fieldAccessors = new HashMap<Class<?>, Map<String, Object>>(); // Map of Class->fieldName->field reflect
+
+	/**
+	 * @param object
+	 * @param fieldName
+	 * @return
+	 * 
+	 * @since 1.0.0
+	 */
+	private int readIntFieldValue(Class<?> klass, Object object, String fieldName) {
+		try {
+			Field field = getField(klass, fieldName);
+			return field != null ? field.getInt(object) : 0;
+		} catch (IllegalArgumentException e) {
+		} catch (IllegalAccessException e) {
+		}
+		return -1;
+	}
+
+	private long readLongFieldValue(Class<?> klass, Object object, String fieldName) {
+		try {
+			Field field = getField(klass, fieldName);
+			return field != null ? field.getLong(object) : 0;
+		} catch (IllegalArgumentException e) {
+		} catch (IllegalAccessException e) {
+		}
+		return -1;
+	}
+
+	private static final Object NO_FIELD = new Object();
+
+	private Field getField(Class<?> klass, String fieldName) {
+		Map<String, Object> nameToField = fieldAccessors.get(klass);
+		if (nameToField == null) {
+			fieldAccessors.put(klass, nameToField = new HashMap<String, Object>());
+		}
+		Object field = nameToField.get(fieldName);
+		if (field == null) {
+			try {
+				field = klass.getDeclaredField(fieldName);
+				((Field) field).setAccessible(true);
+			} catch (SecurityException e) {
+				field = NO_FIELD;
+				e.printStackTrace();
+			} catch (NoSuchFieldException e) {
+				field = NO_FIELD;
+				e.printStackTrace();
+			}
+			nameToField.put(fieldName, field);
+		}
+		return (Field) (field != NO_FIELD ? field : null);
+	}
+
+	/**
+	 * @param object
+	 * @param fieldName
+	 * @return
+	 * 
+	 * @since 1.0.0
+	 */
+	private void writeIntFieldValue(Class<?> klass, Object object, String fieldName, int newInt) {
+		try {
+			Field field = getField(klass, fieldName);
+			field.setInt(object, newInt);
+		} catch (IllegalArgumentException e) {
+		} catch (IllegalAccessException e) {
+		}
+	}
+
+	protected Image getImage(Control control, int maxWidth, int maxHeight, boolean includeChildren) {
+		int ic = includeChildren ? 1 : 0;
+		Map<Control, Integer> map = new HashMap<Control, Integer>();
+		changeObscured(control, map, false);
+		Image image = null;
+		try {
+			image = getImageOfControl(control, ic, maxWidth, maxHeight);
+		} finally {
+			changeObscured(control, map, true);
+		}
+		return image;
+	}
+
+	/**
+	 * @param control
+	 * @param map
+	 * 
+	 * @since 1.0.0
+	 */
+	private void changeObscured(Control control, Map<Control, Integer> map, boolean on) {
+		if (on) {
+			// restoring the obscured flags
+			if (map.containsKey(control)) {
+				// control had obscured flag changed - reset it
+				Integer originalValue = (Integer) map.get(control);
+				writeIntFieldValue(Widget.class, control, FIELD_STATE_NAME, originalValue.intValue());
+			}
+		} else {
+			// disabling the obscure flags
+			int stateValue = readIntFieldValue(Widget.class, control, FIELD_STATE_NAME);
+			if ((stateValue & OBSCURED) != 0) {
+				// obscured - disable flag and remember
+				map.put(control, new Integer(stateValue));
+				stateValue &= ~OBSCURED;
+				writeIntFieldValue(Widget.class, control, FIELD_STATE_NAME, stateValue);
+			}
+		}
+		if (control instanceof CCombo) {
+			// CCombo has a text field whose OBSCURED field needs to be changed
+			CCombo ccombo = (CCombo) control;
+			Object val = readObjectFieldValue(CCombo.class, ccombo, "text"); //$NON-NLS-1$
+			if (val instanceof Text) {
+				Text text = (Text) val;
+				changeObscured(text, map, on);
+			}
+		} else if (control instanceof Composite) {
+			Composite composite = (Composite) control;
+			Control[] children = composite.getChildren();
+			for (int cc = 0; children != null && cc < children.length; cc++) {
+				changeObscured(children[cc], map, on);
+			}
+		}
+	}
+
+	/**
+	 * @param object
+	 * @param fieldName
+	 * @return
+	 * 
+	 * @since 1.1.0.1
+	 */
+	private Object readObjectFieldValue(Class<?> klass, Object object, String fieldName) {
+		try {
+			Field field = klass.getDeclaredField(fieldName);
+			field.setAccessible(true);
+			return field.get(object);
+		} catch (SecurityException e) {
+		} catch (NoSuchFieldException e) {
+		} catch (IllegalArgumentException e) {
+		} catch (IllegalAccessException e) {
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/win32/ImageCapture.java b/plugins/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/win32/ImageCapture.java
new file mode 100755
index 0000000..b1d4e6a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/ve/internal/swt/targetvm/win32/ImageCapture.java
@@ -0,0 +1,186 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ve.internal.swt.targetvm.win32;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+import org.eclipse.swt.browser.Browser;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Spinner;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.Tree;
+
+/**
+ * Image Capture for Win32 platforms.
+ * 
+ * @since 1.1.0
+ * 
+ *        yyang (yves.yang@soyatec.com): change to reflection calls on OS
+ * 
+ */
+public class ImageCapture extends org.eclipse.xwt.tools.ui.imagecapture.swt.ImageCapture {
+
+	static Field Control_handler;
+	static Field GC_handler;
+	static Class<?> OleFrameClass;
+
+	static Method GetParent;
+
+	static Method SendMessage;
+
+	static {
+		try {
+			OleFrameClass = Class.forName("org.eclipse.swt.ole.win32.OleFrame");
+
+			Class<?> osClass = Class.forName("org.eclipse.swt.internal.win32.OS");
+			GetParent = osClass.getDeclaredMethod("GetParent", int.class);
+
+			Control_handler = Control.class.getField("handle");
+			GC_handler = GC.class.getField("handle");
+			GC_handler.setAccessible(true);
+			
+			SendMessage = osClass.getDeclaredMethod("SendMessage", int.class, int.class, int.class, int.class);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected Image getImage(Control control, int maxWidth, int maxHeight, boolean includeChildren) {
+//		if (!(control instanceof Shell)) {
+//			Rectangle bounds = control.getBounds();
+//			Image image = new Image(control.getDisplay(), bounds.width, bounds.height);
+//			GC gc = new GC(image);
+//			control.print(gc);
+//			gc.dispose();
+//			return image;
+//		}
+		Image myImage = getImage(control, maxWidth, maxHeight);
+		// We need to be able to handle right-to-left coordinates too. In that case the bounds rectangle will be reversed from what we
+		// think. We think the origin is upper-left, but the origin is really upper-right. To get out of this thinking we will
+		// instead convert all bounds to display bounds so that they will all be left-to-right.
+		if (myImage != null) {
+			// Get the images of all of the children
+			if (includeChildren && control instanceof Composite) {
+				Display display = control.getDisplay();
+				Rectangle parentBounds = control.getParent() == null ? control.getBounds() : display.map(control.getParent(), null, control.getBounds());
+				// Need to clip the bounds to the size of the image so we get just what we need.
+				Rectangle imgBounds = myImage.getBounds();
+				parentBounds.width = imgBounds.width;
+				parentBounds.height = imgBounds.height;
+				int parentRight = parentBounds.width + parentBounds.x;
+				int parentBottom = parentBounds.height + parentBounds.y;
+				Control[] children = ((Composite) control).getChildren();
+				GC myImageGC = new GC(myImage);
+				try {
+					int i = children.length;
+					while (--i >= 0) {
+						Control child = children[i];
+						// If the child is not visible then don't try and get its image
+						// An example of where this would cause a problem is TabFolder where all the controls
+						// for each page are children of the TabFolder, but only the visible one is being shown on the active page
+						if (!child.isVisible())
+							continue;
+						Rectangle childBounds = display.map(control, null, child.getBounds());
+						if (!parentBounds.intersects(childBounds))
+							continue; // Child is completely outside parent.
+						Image childImage = getImage(child, parentRight - childBounds.x, parentBottom - childBounds.y, true);
+						if (childImage != null) {
+							try {
+								// Paint the child image on top of our one
+								// Since the child bounds and parent bounds are both in display coors, the difference between
+								// the two is the offset of the child from the parent.
+								myImageGC.drawImage(childImage, childBounds.x - parentBounds.x, childBounds.y - parentBounds.y);
+							} finally {
+								childImage.dispose();
+							}
+						}
+					}
+				} finally {
+					myImageGC.dispose();
+				}
+			}
+		}
+		return myImage;
+	}
+
+	/**
+	 * Return the image of the argument. This includes the client and non-client area, but does not include any child controls. To get child control use {@link ImageCapture#getImage(Control, int, int, boolean)}.
+	 * 
+	 * @param aControl
+	 * @param maxWidth
+	 * @param maxHeight
+	 * @return image or <code>null</code> if not valid for some reason. (Like not yet sized).
+	 * 
+	 * @since 1.1.0
+	 */
+	protected Image getImage(Control aControl, int maxWidth, int maxHeight) {
+
+		Rectangle rect = aControl.getBounds();
+		if (rect.width <= 0 || rect.height <= 0)
+			return null;
+
+		Image image = new Image(aControl.getDisplay(), Math.min(rect.width, maxWidth), Math.min(rect.height, maxHeight));
+		int WM_PRINT = 0x0317;
+		// int WM_PRINTCLIENT = 0x0318;
+		// int PRF_CHECKVISIBLE = 0x00000001;
+		int PRF_NONCLIENT = 0x00000002;
+		int PRF_CLIENT = 0x00000004;
+		int PRF_ERASEBKGND = 0x00000008;
+		int PRF_CHILDREN = 0x00000010;
+		// int PRF_OWNED = 0x00000020;
+		int print_bits = PRF_NONCLIENT | PRF_CLIENT | PRF_ERASEBKGND;
+		// This method does not print immediate children because the z-order doesn't work correctly and needs to be
+		// dealt with separately, however Table's TableColumn widgets are children so must be handled differently
+		boolean specialClass = aControl instanceof Table || aControl instanceof Browser || OleFrameClass.isInstance(aControl) || aControl instanceof CCombo;
+		try {
+			specialClass |= aControl instanceof Spinner;
+		} catch (NoClassDefFoundError e) {
+		} // might not be on 3.1 of SWT
+		if (specialClass) {
+			print_bits |= PRF_CHILDREN;
+		}
+		GC gc = new GC(image);
+
+		// Need to handle cases where the GC font isn't automatically set by the control's image (e.g. CLabel)
+		// see bug 98830 (https://bugs.eclipse.org/bugs/show_bug.cgi?id=98830)
+		Font f = aControl.getFont();
+		if (f != null)
+			gc.setFont(f);
+
+		try {
+			int hwnd = Control_handler.getInt(aControl);
+			if (aControl instanceof Tree) {
+				int hwndParent = (Integer) GetParent.invoke(null, hwnd);
+				if (hwndParent != Control_handler.getInt(aControl.getParent())) {
+					hwnd = hwndParent;
+					print_bits |= PRF_CHILDREN;
+				}
+			}
+			Object handle = GC_handler.get(gc);
+			SendMessage.invoke(null, hwnd, WM_PRINT, handle, print_bits);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+
+		gc.dispose();
+		return image;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/xwt/tools/ui/imagecapture/swt/ImageCapture.java b/plugins/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/xwt/tools/ui/imagecapture/swt/ImageCapture.java
new file mode 100755
index 0000000..0e54e9f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.imagecapture/src/org/eclipse/xwt/tools/ui/imagecapture/swt/ImageCapture.java
@@ -0,0 +1,138 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.imagecapture.swt;
+
+import java.lang.reflect.Field;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ve.internal.swt.targetvm.unix.DisposeUtil;
+
+/**
+ * Capture and transmit the image back. There are platform specific subclasses to handle the grab of the image from a control.
+ * 
+ * @since 1.1.0
+ */
+public abstract class ImageCapture {
+	static ImageCapture instance;
+
+	public Image captureImage(Object control) {
+		if (control instanceof Control) {
+			Control ctl = (Control) control;
+			return captureImage(ctl);
+		}
+		return null;
+	}
+
+	public Image captureImage(Control control) {
+		Rectangle rectangle = control.getBounds();
+		Display display = control.getDisplay();
+		Image image = null;
+		if (control instanceof Shell) {
+			Shell shell = (Shell) control;
+			shell.layout();
+			Point parentLocation = control.toDisplay(0, 0);
+			image = getImage(control, rectangle.width, rectangle.height, false);
+
+			rectangle.x = parentLocation.x;
+			rectangle.y = parentLocation.y;
+
+			GC myImageGC = new GC(image);
+			try {
+				for (Control child : shell.getChildren()) {
+					Rectangle childBounds = child.getBounds();
+					// bug of SWT on Win32, child bounds is not correct in the
+					// Window is not in the ToolBar
+					int x = (rectangle.width - childBounds.width) / 2;
+					int y = (rectangle.height - childBounds.height) - x;
+					childBounds.x = rectangle.x + x;
+					childBounds.y = rectangle.y + y;
+					if (!rectangle.intersects(childBounds))
+						continue; // Child is completely outside parent.
+
+					Image childImage = new Image(display, child.getBounds());
+					GC gc = new GC(childImage);
+					child.print(gc);
+					DisposeUtil.dispose(gc);
+					try {
+						myImageGC.drawImage(childImage, x, y);
+					} finally {
+						childImage.dispose();
+					}
+				}
+			} finally {
+				myImageGC.dispose();
+			}
+		} else {
+			image = capture(control);
+		}
+		return image;
+	}
+
+	public Image capture(Control control) {
+		Rectangle bounds = control.getBounds();
+		return capture(control, bounds.width, bounds.height, false);
+	}
+
+	public Image capture(Control control, int width, int height, boolean includeChildren) {
+		return getImage(control, width, height, includeChildren);
+	}
+
+	protected abstract Image getImage(Control control, int maxWidth, int maxHeight, boolean includeChildren);
+
+	public static ImageCapture getInstance() {
+		if (instance == null) {
+			if (Platform.OS_WIN32.equals(Platform.getOS()))
+				instance = new org.eclipse.ve.internal.swt.targetvm.win32.ImageCapture();
+			else if (Platform.WS_GTK.equals(Platform.getWS())) {
+				if (Platform.ARCH_IA64.equals(Platform.getOSArch()) || Platform.ARCH_X86_64.equals(Platform.getOSArch()))
+					instance = new org.eclipse.ve.internal.swt.targetvm.unix.bits64.ImageCapture();
+				else
+					instance = new org.eclipse.ve.internal.swt.targetvm.unix.ImageCapture();
+			} else if (Platform.OS_MACOSX.equals(Platform.getOS())) {
+				if (Platform.WS_COCOA.equals(Platform.getWS()))
+					instance = new org.eclipse.ve.internal.swt.targetvm.macosx.cocoa.ImageCapture();
+				else if (Platform.WS_CARBON.equals(Platform.getWS()))
+					instance = new org.eclipse.ve.internal.swt.targetvm.macosx.ImageCapture();
+				else
+					throw new UnsupportedOperationException(Platform.getOS());
+			} else {
+				throw new UnsupportedOperationException(Platform.getOS());
+			}
+		}
+		return instance;
+	}
+
+	public static int getIntHandle(Control control) {
+		try {
+			Field handleField = control.getClass().getField("handle");
+			handleField.setAccessible(true);
+			return (Integer) handleField.get(control);
+		} catch (SecurityException e) {
+			e.printStackTrace();
+		} catch (IllegalArgumentException e) {
+			e.printStackTrace();
+		} catch (NoSuchFieldException e) {
+			e.printStackTrace();
+		} catch (IllegalAccessException e) {
+			e.printStackTrace();
+		}
+		return -1;
+	}
+}
diff --git a/org.eclipse.xwt.tools.ui.palette/.classpath b/plugins/org.eclipse.xwt.tools.ui.palette/.classpath
similarity index 100%
rename from org.eclipse.xwt.tools.ui.palette/.classpath
rename to plugins/org.eclipse.xwt.tools.ui.palette/.classpath
diff --git a/org.eclipse.xwt.tools.ui.palette/.gitignore b/plugins/org.eclipse.xwt.tools.ui.palette/.gitignore
similarity index 100%
rename from org.eclipse.xwt.tools.ui.palette/.gitignore
rename to plugins/org.eclipse.xwt.tools.ui.palette/.gitignore
diff --git a/org.eclipse.xwt.tools.ui.palette/.project b/plugins/org.eclipse.xwt.tools.ui.palette/.project
similarity index 100%
rename from org.eclipse.xwt.tools.ui.palette/.project
rename to plugins/org.eclipse.xwt.tools.ui.palette/.project
diff --git a/org.eclipse.xwt.tools.ui.palette/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.xwt.tools.ui.palette/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
rename from org.eclipse.xwt.tools.ui.palette/.settings/org.eclipse.jdt.core.prefs
rename to plugins/org.eclipse.xwt.tools.ui.palette/.settings/org.eclipse.jdt.core.prefs
diff --git a/org.eclipse.xwt.tools.ui.palette/META-INF/MANIFEST.MF b/plugins/org.eclipse.xwt.tools.ui.palette/META-INF/MANIFEST.MF
similarity index 100%
rename from org.eclipse.xwt.tools.ui.palette/META-INF/MANIFEST.MF
rename to plugins/org.eclipse.xwt.tools.ui.palette/META-INF/MANIFEST.MF
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/build.properties b/plugins/org.eclipse.xwt.tools.ui.palette/build.properties
new file mode 100755
index 0000000..0038c8d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/build.properties
@@ -0,0 +1,37 @@
+###############################################################################
+# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     Soyatec - initial API and implementation
+###############################################################################
+
+# <copyright>
+# </copyright>
+#
+# $Id: build.properties,v 1.2 2010/06/18 00:15:59 yvyang Exp $
+
+bin.includes = .,\
+               META-INF/,\
+               plugin.xml,\
+               plugin.properties,\
+               schema/
+jars.compile.order = .
+source.. = src/
+output.. = bin/
+src.includes = templates/,\
+               src/,\
+               schema/,\
+               plugin.xml,\
+               plugin.properties,\
+               model/,\
+               build.properties,\
+               META-INF/,\
+               .settings/,\
+               .project,\
+               .classpath
diff --git a/org.eclipse.xwt.tools.ui.palette/model/palette.ecd b/plugins/org.eclipse.xwt.tools.ui.palette/model/palette.ecd
similarity index 100%
rename from org.eclipse.xwt.tools.ui.palette/model/palette.ecd
rename to plugins/org.eclipse.xwt.tools.ui.palette/model/palette.ecd
diff --git a/org.eclipse.xwt.tools.ui.palette/model/palette.ecore b/plugins/org.eclipse.xwt.tools.ui.palette/model/palette.ecore
similarity index 100%
rename from org.eclipse.xwt.tools.ui.palette/model/palette.ecore
rename to plugins/org.eclipse.xwt.tools.ui.palette/model/palette.ecore
diff --git a/org.eclipse.xwt.tools.ui.palette/model/palette.genmodel b/plugins/org.eclipse.xwt.tools.ui.palette/model/palette.genmodel
similarity index 100%
rename from org.eclipse.xwt.tools.ui.palette/model/palette.genmodel
rename to plugins/org.eclipse.xwt.tools.ui.palette/model/palette.genmodel
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/plugin.properties b/plugins/org.eclipse.xwt.tools.ui.palette/plugin.properties
new file mode 100755
index 0000000..1d47697
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/plugin.properties
@@ -0,0 +1,20 @@
+###############################################################################
+# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     Soyatec - initial API and implementation
+###############################################################################
+
+# <copyright>
+# </copyright>
+#
+# $Id: plugin.properties,v 1.2 2010/06/18 00:15:59 yvyang Exp $
+
+pluginName = Palette Model (Incubation)
+providerName = Eclipse.org
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/plugin.xml b/plugins/org.eclipse.xwt.tools.ui.palette/plugin.xml
new file mode 100755
index 0000000..8fa391a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/plugin.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+    Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+    All rights reserved. This program and the accompanying materials
+    are made available under the terms of the Eclipse Public License 2.0
+    which accompanies this distribution, and is available at
+    https://www.eclipse.org/legal/epl-2.0/
+
+    SPDX-License-Identifier: EPL-2.0
+   
+    Contributors:
+        Soyatec - initial API and implementation
+ -->
+
+<plugin>
+   <extension-point id="resourceProvider" name="Palette Resource Provider" schema="schema/resourceProvider.exsd"/>
+   <extension-point id="paletteContribution" name="Palette Contribution" schema="schema/paletteContribution.exsd"/>
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <package
+            uri="http://www.eclipse.org/e4/xwt/tools/palette.xmi"
+            class="org.eclipse.xwt.tools.ui.palette.PalettePackage"
+            genModel="model/palette.genmodel"/>
+   </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/pom.xml b/plugins/org.eclipse.xwt.tools.ui.palette/pom.xml
new file mode 100755
index 0000000..6e7784a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-plugins</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt.tools.ui.palette</artifactId>
+	<version>0.10.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.palette/schema/paletteContribution.exsd b/plugins/org.eclipse.xwt.tools.ui.palette/schema/paletteContribution.exsd
similarity index 100%
rename from org.eclipse.xwt.tools.ui.palette/schema/paletteContribution.exsd
rename to plugins/org.eclipse.xwt.tools.ui.palette/schema/paletteContribution.exsd
diff --git a/org.eclipse.xwt.tools.ui.palette/schema/resourceProvider.exsd b/plugins/org.eclipse.xwt.tools.ui.palette/schema/resourceProvider.exsd
similarity index 100%
rename from org.eclipse.xwt.tools.ui.palette/schema/resourceProvider.exsd
rename to plugins/org.eclipse.xwt.tools.ui.palette/schema/resourceProvider.exsd
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/activator/PalettePlugin.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/activator/PalettePlugin.java
new file mode 100755
index 0000000..1aabf43
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/activator/PalettePlugin.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.activator;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class PalettePlugin extends AbstractUIPlugin {
+
+	// The plug-in ID
+	public static final String PLUGIN_ID = "org.soyatec.tools.palette";
+
+	// The shared instance
+	private static PalettePlugin plugin;
+
+	/**
+	 * The constructor
+	 */
+	public PalettePlugin() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext
+	 * )
+	 */
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext
+	 * )
+	 */
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance
+	 * 
+	 * @return the shared instance
+	 */
+	public static PalettePlugin getDefault() {
+		return plugin;
+	}
+
+}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/CompoundInitializer.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/CompoundInitializer.java
similarity index 100%
rename from org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/CompoundInitializer.java
rename to plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/CompoundInitializer.java
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/ContextType.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/ContextType.java
new file mode 100755
index 0000000..587b5f8
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/ContextType.java
@@ -0,0 +1,315 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette;
+
+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>Context Type</b></em>', and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getContextType()
+ * @model
+ * @generated
+ */
+public enum ContextType implements Enumerator {
+	/**
+	 * The '<em><b>Xml tag</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #XML_TAG_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	XML_TAG(5, "xml_tag", "xml_tag"),
+
+	/**
+	 * The '<em><b>Xml attribute value</b></em>' literal object. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #XML_ATTRIBUTE_VALUE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	XML_ATTRIBUTE_VALUE(1, "xml_attribute_value", "xml_attribute_value"),
+
+	/**
+	 * The '<em><b>Xml attribute</b></em>' literal object.
+	 * <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * @see #XML_ATTRIBUTE_VALUE_
+	 * @generated
+	 * @ordered
+	 */
+	XML_ATTRIBUTE(2, "xml_attribute", "xml_attribute"),
+
+	/**
+	 * The '<em><b>Xml all</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #XML_ALL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	XML_ALL(3, "xml_all", "xml_all"),
+
+	/**
+	 * The '<em><b>Xml new</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #XML_NEW_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	XML_NEW(4, "xml_new", "xml_new"),
+
+	/**
+	 * The '<em><b>None</b></em>' literal object.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see #NONE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NONE(0, "none", "none");
+
+	/**
+	 * The '<em><b>Xml tag</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Xml tag</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #XML_TAG
+	 * @model name="xml_tag"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int XML_TAG_VALUE = 5;
+
+	/**
+	 * The '<em><b>Xml attribute value</b></em>' literal value. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Xml attribute value</b></em>' literal object
+	 * isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @see #XML_ATTRIBUTE_VALUE
+	 * @model name="xml_attribute_value"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int XML_ATTRIBUTE_VALUE_VALUE = 1;
+
+	/**
+	 * The '<em><b>Xml attribute</b></em>' literal value.
+	 * <!-- begin-user-doc
+	 * -->
+	 * <p>
+	 * If the meaning of '<em><b>Xml attribute</b></em>' literal object isn't
+	 * clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #XML_ATTRIBUTE
+	 * @model name="xml_attribute"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int XML_ATTRIBUTE_VALUE_ = 2;
+
+	/**
+	 * The '<em><b>Xml all</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Xml all</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #XML_ALL
+	 * @model name="xml_all"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int XML_ALL_VALUE = 3;
+
+	/**
+	 * The '<em><b>Xml new</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Xml new</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #XML_NEW
+	 * @model name="xml_new"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int XML_NEW_VALUE = 4;
+
+	/**
+	 * The '<em><b>None</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>None</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NONE
+	 * @model name="none"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NONE_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Context Type</b></em>' enumerators. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private static final ContextType[] VALUES_ARRAY = new ContextType[] {
+			XML_TAG,
+			XML_ATTRIBUTE_VALUE,
+			XML_ATTRIBUTE,
+			XML_ALL,
+			XML_NEW,
+			NONE,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Context Type</b></em>' enumerators.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<ContextType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Context Type</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ContextType get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ContextType result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Context Type</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ContextType getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ContextType result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Context Type</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ContextType get(int value) {
+		switch (value) {
+			case XML_TAG_VALUE: return XML_TAG;
+			case XML_ATTRIBUTE_VALUE_VALUE: return XML_ATTRIBUTE_VALUE;
+			case XML_ATTRIBUTE_VALUE_: return XML_ATTRIBUTE;
+			case XML_ALL_VALUE: return XML_ALL;
+			case XML_NEW_VALUE: return XML_NEW;
+			case NONE_VALUE: return NONE;
+		}
+		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 ContextType(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;
+	}
+
+} // ContextType
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/Entry.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/Entry.java
new file mode 100755
index 0000000..048e2ed
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/Entry.java
@@ -0,0 +1,399 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>Entry</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.Entry#getToolTip <em>Tool Tip</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.Entry#getLargeIcon <em>Large Icon</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.Entry#getContent <em>Content</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.Entry#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.Entry#getEntries <em>Entries</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.Entry#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.Entry#getIcon <em>Icon</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.Entry#getContext <em>Context</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.Entry#getScope <em>Scope</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.Entry#isVisible <em>Visible</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.Entry#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.Entry#getInitializer <em>Initializer</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.Entry#getDataContext <em>Data Context</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getEntry()
+ * @model
+ * @generated
+ */
+public interface Entry extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Tool Tip</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Tool Tip</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Tool Tip</em>' attribute.
+	 * @see #setToolTip(String)
+	 * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getEntry_ToolTip()
+	 * @model
+	 * @generated
+	 */
+	String getToolTip();
+
+	/**
+	 * Sets the value of the '
+	 * {@link org.eclipse.xwt.tools.ui.palette.Entry#getToolTip
+	 * <em>Tool Tip</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Tool Tip</em>' attribute.
+	 * @see #getToolTip()
+	 * @generated
+	 */
+	void setToolTip(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Large Icon</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Large Icon</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Large Icon</em>' attribute.
+	 * @see #setLargeIcon(String)
+	 * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getEntry_LargeIcon()
+	 * @model
+	 * @generated
+	 */
+	String getLargeIcon();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.palette.Entry#getLargeIcon <em>Large Icon</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @param value the new value of the '<em>Large Icon</em>' attribute.
+	 * @see #getLargeIcon()
+	 * @generated
+	 */
+	void setLargeIcon(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Content</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Content</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Content</em>' attribute.
+	 * @see #setContent(String)
+	 * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getEntry_Content()
+	 * @model
+	 * @generated
+	 */
+	String getContent();
+
+	/**
+	 * Sets the value of the '
+	 * {@link org.eclipse.xwt.tools.ui.palette.Entry#getContent
+	 * <em>Content</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Content</em>' attribute.
+	 * @see #getContent()
+	 * @generated
+	 */
+	void setContent(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Name</em>' attribute isn't clear, there really
+	 * should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getEntry_Name()
+	 * @model
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.palette.Entry#getName <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Entries</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.xwt.tools.ui.palette.Entry}.
+	 * <!-- begin-user-doc
+	 * -->
+	 * <p>
+	 * If the meaning of the '<em>Entries</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>Entries</em>' containment reference list.
+	 * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getEntry_Entries()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<Entry> getEntries();
+
+	/**
+	 * Returns the value of the '<em><b>Id</b></em>' attribute.
+	 * The default value is <code>"\"\""</code>.
+	 * <!-- 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.xwt.tools.ui.palette.PalettePackage#getEntry_Id()
+	 * @model default="\"\"" id="true"
+	 * @generated
+	 */
+	String getId();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.palette.Entry#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>Icon</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Icon</em>' attribute isn't clear, there really
+	 * should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Icon</em>' attribute.
+	 * @see #setIcon(String)
+	 * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getEntry_Icon()
+	 * @model
+	 * @generated
+	 */
+	String getIcon();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.palette.Entry#getIcon <em>Icon</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Icon</em>' attribute.
+	 * @see #getIcon()
+	 * @generated
+	 */
+	void setIcon(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Context</b></em>' attribute. The default
+	 * value is <code>""</code>. The literals are from the enumeration
+	 * {@link org.eclipse.xwt.tools.ui.palette.ContextType}. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Context</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Context</em>' attribute.
+	 * @see org.eclipse.xwt.tools.ui.palette.ContextType
+	 * @see #setContext(ContextType)
+	 * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getEntry_Context()
+	 * @model default=""
+	 * @generated
+	 */
+	ContextType getContext();
+
+	/**
+	 * Sets the value of the '
+	 * {@link org.eclipse.xwt.tools.ui.palette.Entry#getContext
+	 * <em>Context</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Context</em>' attribute.
+	 * @see org.eclipse.xwt.tools.ui.palette.ContextType
+	 * @see #getContext()
+	 * @generated
+	 */
+	void setContext(ContextType value);
+
+	/**
+	 * Returns the value of the '<em><b>Scope</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Scope</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Scope</em>' attribute.
+	 * @see #setScope(String)
+	 * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getEntry_Scope()
+	 * @model
+	 * @generated
+	 */
+	String getScope();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.palette.Entry#getScope <em>Scope</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Scope</em>' attribute.
+	 * @see #getScope()
+	 * @generated
+	 */
+	void setScope(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Visible</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Visible</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Visible</em>' attribute.
+	 * @see #setVisible(boolean)
+	 * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getEntry_Visible()
+	 * @model
+	 * @generated
+	 */
+	boolean isVisible();
+
+	/**
+	 * Sets the value of the '
+	 * {@link org.eclipse.xwt.tools.ui.palette.Entry#isVisible
+	 * <em>Visible</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Visible</em>' attribute.
+	 * @see #isVisible()
+	 * @generated
+	 */
+	void setVisible(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Initializer</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Initializer</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Initializer</em>' reference.
+	 * @see #setInitializer(Initializer)
+	 * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getEntry_Initializer()
+	 * @model
+	 * @generated
+	 */
+	Initializer getInitializer();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.palette.Entry#getInitializer <em>Initializer</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Initializer</em>' reference.
+	 * @see #getInitializer()
+	 * @generated
+	 */
+	void setInitializer(Initializer value);
+
+	/**
+	 * Returns the value of the '<em><b>Data Context</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Data Context</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Data Context</em>' attribute.
+	 * @see #setDataContext(Object)
+	 * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getEntry_DataContext()
+	 * @model
+	 * @generated
+	 */
+	Object getDataContext();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.palette.Entry#getDataContext <em>Data Context</em>}' attribute.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @param value the new value of the '<em>Data Context</em>' attribute.
+	 * @see #getDataContext()
+	 * @generated
+	 */
+	void setDataContext(Object value);
+
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' reference. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type</em>' reference isn't clear, there really
+	 * should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Type</em>' reference.
+	 * @see #setType(EClass)
+	 * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getEntry_Type()
+	 * @model
+	 * @generated
+	 */
+	EClass getType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.palette.Entry#getType <em>Type</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' reference.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(EClass value);
+
+} // Entry
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/Initializer.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/Initializer.java
similarity index 100%
rename from org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/Initializer.java
rename to plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/Initializer.java
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/Palette.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/Palette.java
new file mode 100755
index 0000000..5519ac2
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/Palette.java
@@ -0,0 +1,79 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>Palette</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.Palette#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.Palette#getEntries <em>Entries</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getPalette()
+ * @model
+ * @generated
+ */
+public interface Palette extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Name</em>' attribute isn't clear, there really
+	 * should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getPalette_Name()
+	 * @model
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.palette.Palette#getName <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Entries</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.xwt.tools.ui.palette.Entry}.
+	 * <!-- begin-user-doc
+	 * -->
+	 * <p>
+	 * If the meaning of the '<em>Entries</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>Entries</em>' containment reference list.
+	 * @see org.eclipse.xwt.tools.ui.palette.PalettePackage#getPalette_Entries()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<Entry> getEntries();
+
+} // Palette
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/PaletteFactory.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/PaletteFactory.java
new file mode 100755
index 0000000..2766720
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/PaletteFactory.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette;
+
+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.xwt.tools.ui.palette.PalettePackage
+ * @generated
+ */
+public interface PaletteFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	PaletteFactory eINSTANCE = org.eclipse.xwt.tools.ui.palette.impl.PaletteFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Palette</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Palette</em>'.
+	 * @generated
+	 */
+	Palette createPalette();
+
+	/**
+	 * Returns a new object of class '<em>Entry</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Entry</em>'.
+	 * @generated
+	 */
+	Entry createEntry();
+
+	/**
+	 * Returns a new object of class '<em>Compound Initializer</em>'. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return a new object of class '<em>Compound Initializer</em>'.
+	 * @generated
+	 */
+	CompoundInitializer createCompoundInitializer();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	PalettePackage getPalettePackage();
+
+} // PaletteFactory
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/PalettePackage.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/PalettePackage.java
new file mode 100755
index 0000000..99694e2
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/PalettePackage.java
@@ -0,0 +1,725 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette;
+
+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.xwt.tools.ui.palette.PaletteFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface PalettePackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "palette";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http://www.eclipse.org/e4/xwt/tools/palette.xmi";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "palette";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	PalettePackage eINSTANCE = org.eclipse.xwt.tools.ui.palette.impl.PalettePackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.xwt.tools.ui.palette.impl.PaletteImpl <em>Palette</em>}' class.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see org.eclipse.xwt.tools.ui.palette.impl.PaletteImpl
+	 * @see org.eclipse.xwt.tools.ui.palette.impl.PalettePackageImpl#getPalette()
+	 * @generated
+	 */
+	int PALETTE = 0;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int PALETTE__NAME = 0;
+
+	/**
+	 * The feature id for the '<em><b>Entries</b></em>' containment reference list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PALETTE__ENTRIES = 1;
+
+	/**
+	 * The number of structural features of the '<em>Palette</em>' class. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int PALETTE_FEATURE_COUNT = 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl <em>Entry</em>}' class.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see org.eclipse.xwt.tools.ui.palette.impl.EntryImpl
+	 * @see org.eclipse.xwt.tools.ui.palette.impl.PalettePackageImpl#getEntry()
+	 * @generated
+	 */
+	int ENTRY = 1;
+
+	/**
+	 * The feature id for the '<em><b>Tool Tip</b></em>' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int ENTRY__TOOL_TIP = 0;
+
+	/**
+	 * The feature id for the '<em><b>Large Icon</b></em>' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int ENTRY__LARGE_ICON = 1;
+
+	/**
+	 * The feature id for the '<em><b>Content</b></em>' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int ENTRY__CONTENT = 2;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int ENTRY__NAME = 3;
+
+	/**
+	 * The feature id for the '<em><b>Entries</b></em>' containment reference list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ENTRY__ENTRIES = 4;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int ENTRY__ID = 5;
+
+	/**
+	 * The feature id for the '<em><b>Icon</b></em>' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int ENTRY__ICON = 6;
+
+	/**
+	 * The feature id for the '<em><b>Context</b></em>' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int ENTRY__CONTEXT = 7;
+
+	/**
+	 * The feature id for the '<em><b>Scope</b></em>' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int ENTRY__SCOPE = 8;
+
+	/**
+	 * The feature id for the '<em><b>Visible</b></em>' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int ENTRY__VISIBLE = 9;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' reference. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int ENTRY__TYPE = 10;
+
+	/**
+	 * The feature id for the '<em><b>Initializer</b></em>' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ENTRY__INITIALIZER = 11;
+
+	/**
+	 * The feature id for the '<em><b>Data Context</b></em>' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int ENTRY__DATA_CONTEXT = 12;
+
+	/**
+	 * The number of structural features of the '<em>Entry</em>' class. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int ENTRY_FEATURE_COUNT = 13;
+
+	/**
+	 * The meta object id for the '
+	 * {@link org.eclipse.xwt.tools.ui.palette.impl.InitializerImpl
+	 * <em>Initializer</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.palette.impl.InitializerImpl
+	 * @see org.eclipse.xwt.tools.ui.palette.impl.PalettePackageImpl#getInitializer()
+	 * @generated
+	 */
+	int INITIALIZER = 2;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INITIALIZER__ID = 0;
+
+	/**
+	 * The number of structural features of the '<em>Initializer</em>' class.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INITIALIZER_FEATURE_COUNT = 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.xwt.tools.ui.palette.impl.CompoundInitializerImpl <em>Compound Initializer</em>}' class.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @see org.eclipse.xwt.tools.ui.palette.impl.CompoundInitializerImpl
+	 * @see org.eclipse.xwt.tools.ui.palette.impl.PalettePackageImpl#getCompoundInitializer()
+	 * @generated
+	 */
+	int COMPOUND_INITIALIZER = 3;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPOUND_INITIALIZER__ID = INITIALIZER__ID;
+
+	/**
+	 * The feature id for the '<em><b>Initializers</b></em>' reference list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPOUND_INITIALIZER__INITIALIZERS = INITIALIZER_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Compound Initializer</em>' class.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPOUND_INITIALIZER_FEATURE_COUNT = INITIALIZER_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '
+	 * {@link org.eclipse.xwt.tools.ui.palette.ContextType
+	 * <em>Context Type</em>}' enum. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 * 
+	 * @see org.eclipse.xwt.tools.ui.palette.ContextType
+	 * @see org.eclipse.xwt.tools.ui.palette.impl.PalettePackageImpl#getContextType()
+	 * @generated
+	 */
+	int CONTEXT_TYPE = 4;
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.xwt.tools.ui.palette.Palette <em>Palette</em>}'.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Palette</em>'.
+	 * @see org.eclipse.xwt.tools.ui.palette.Palette
+	 * @generated
+	 */
+	EClass getPalette();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.palette.Palette#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see org.eclipse.xwt.tools.ui.palette.Palette#getName()
+	 * @see #getPalette()
+	 * @generated
+	 */
+	EAttribute getPalette_Name();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.xwt.tools.ui.palette.Palette#getEntries <em>Entries</em>}'.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Entries</em>'.
+	 * @see org.eclipse.xwt.tools.ui.palette.Palette#getEntries()
+	 * @see #getPalette()
+	 * @generated
+	 */
+	EReference getPalette_Entries();
+
+	/**
+	 * Returns the meta object for class '
+	 * {@link org.eclipse.xwt.tools.ui.palette.Entry <em>Entry</em>}'. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for class '<em>Entry</em>'.
+	 * @see org.eclipse.xwt.tools.ui.palette.Entry
+	 * @generated
+	 */
+	EClass getEntry();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.palette.Entry#getToolTip <em>Tool Tip</em>}'.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Tool Tip</em>'.
+	 * @see org.eclipse.xwt.tools.ui.palette.Entry#getToolTip()
+	 * @see #getEntry()
+	 * @generated
+	 */
+	EAttribute getEntry_ToolTip();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.palette.Entry#getLargeIcon <em>Large Icon</em>}'.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Large Icon</em>'.
+	 * @see org.eclipse.xwt.tools.ui.palette.Entry#getLargeIcon()
+	 * @see #getEntry()
+	 * @generated
+	 */
+	EAttribute getEntry_LargeIcon();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.palette.Entry#getContent <em>Content</em>}'.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Content</em>'.
+	 * @see org.eclipse.xwt.tools.ui.palette.Entry#getContent()
+	 * @see #getEntry()
+	 * @generated
+	 */
+	EAttribute getEntry_Content();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.palette.Entry#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see org.eclipse.xwt.tools.ui.palette.Entry#getName()
+	 * @see #getEntry()
+	 * @generated
+	 */
+	EAttribute getEntry_Name();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.xwt.tools.ui.palette.Entry#getEntries <em>Entries</em>}'.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Entries</em>'.
+	 * @see org.eclipse.xwt.tools.ui.palette.Entry#getEntries()
+	 * @see #getEntry()
+	 * @generated
+	 */
+	EReference getEntry_Entries();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.palette.Entry#getId <em>Id</em>}'.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Id</em>'.
+	 * @see org.eclipse.xwt.tools.ui.palette.Entry#getId()
+	 * @see #getEntry()
+	 * @generated
+	 */
+	EAttribute getEntry_Id();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.palette.Entry#getIcon <em>Icon</em>}'.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Icon</em>'.
+	 * @see org.eclipse.xwt.tools.ui.palette.Entry#getIcon()
+	 * @see #getEntry()
+	 * @generated
+	 */
+	EAttribute getEntry_Icon();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.palette.Entry#getContext <em>Context</em>}'.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Context</em>'.
+	 * @see org.eclipse.xwt.tools.ui.palette.Entry#getContext()
+	 * @see #getEntry()
+	 * @generated
+	 */
+	EAttribute getEntry_Context();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.palette.Entry#getScope <em>Scope</em>}'.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Scope</em>'.
+	 * @see org.eclipse.xwt.tools.ui.palette.Entry#getScope()
+	 * @see #getEntry()
+	 * @generated
+	 */
+	EAttribute getEntry_Scope();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.palette.Entry#isVisible <em>Visible</em>}'.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Visible</em>'.
+	 * @see org.eclipse.xwt.tools.ui.palette.Entry#isVisible()
+	 * @see #getEntry()
+	 * @generated
+	 */
+	EAttribute getEntry_Visible();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.xwt.tools.ui.palette.Entry#getInitializer <em>Initializer</em>}'.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Initializer</em>'.
+	 * @see org.eclipse.xwt.tools.ui.palette.Entry#getInitializer()
+	 * @see #getEntry()
+	 * @generated
+	 */
+	EReference getEntry_Initializer();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.palette.Entry#getDataContext <em>Data Context</em>}'.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Data Context</em>'.
+	 * @see org.eclipse.xwt.tools.ui.palette.Entry#getDataContext()
+	 * @see #getEntry()
+	 * @generated
+	 */
+	EAttribute getEntry_DataContext();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.xwt.tools.ui.palette.Initializer <em>Initializer</em>}'.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Initializer</em>'.
+	 * @see org.eclipse.xwt.tools.ui.palette.Initializer
+	 * @generated
+	 */
+	EClass getInitializer();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.palette.Initializer#getId <em>Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Id</em>'.
+	 * @see org.eclipse.xwt.tools.ui.palette.Initializer#getId()
+	 * @see #getInitializer()
+	 * @generated
+	 */
+	EAttribute getInitializer_Id();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.xwt.tools.ui.palette.CompoundInitializer <em>Compound Initializer</em>}'.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @return the meta object for class '<em>Compound Initializer</em>'.
+	 * @see org.eclipse.xwt.tools.ui.palette.CompoundInitializer
+	 * @generated
+	 */
+	EClass getCompoundInitializer();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.xwt.tools.ui.palette.CompoundInitializer#getInitializers <em>Initializers</em>}'.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Initializers</em>'.
+	 * @see org.eclipse.xwt.tools.ui.palette.CompoundInitializer#getInitializers()
+	 * @see #getCompoundInitializer()
+	 * @generated
+	 */
+	EReference getCompoundInitializer_Initializers();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.xwt.tools.ui.palette.Entry#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Type</em>'.
+	 * @see org.eclipse.xwt.tools.ui.palette.Entry#getType()
+	 * @see #getEntry()
+	 * @generated
+	 */
+	EReference getEntry_Type();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.xwt.tools.ui.palette.ContextType <em>Context Type</em>}'.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Context Type</em>'.
+	 * @see org.eclipse.xwt.tools.ui.palette.ContextType
+	 * @generated
+	 */
+	EEnum getContextType();
+
+	/**
+	 * 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
+	 */
+	PaletteFactory getPaletteFactory();
+
+	/**
+	 * <!-- 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.xwt.tools.ui.palette.impl.PaletteImpl
+		 * <em>Palette</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc
+		 * -->
+		 * 
+		 * @see org.eclipse.xwt.tools.ui.palette.impl.PaletteImpl
+		 * @see org.eclipse.xwt.tools.ui.palette.impl.PalettePackageImpl#getPalette()
+		 * @generated
+		 */
+		EClass PALETTE = eINSTANCE.getPalette();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PALETTE__NAME = eINSTANCE.getPalette_Name();
+
+		/**
+		 * The meta object literal for the '<em><b>Entries</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PALETTE__ENTRIES = eINSTANCE.getPalette_Entries();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl <em>Entry</em>}' class.
+		 * <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * @see org.eclipse.xwt.tools.ui.palette.impl.EntryImpl
+		 * @see org.eclipse.xwt.tools.ui.palette.impl.PalettePackageImpl#getEntry()
+		 * @generated
+		 */
+		EClass ENTRY = eINSTANCE.getEntry();
+
+		/**
+		 * The meta object literal for the '<em><b>Tool Tip</b></em>' attribute feature.
+		 * <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ENTRY__TOOL_TIP = eINSTANCE.getEntry_ToolTip();
+
+		/**
+		 * The meta object literal for the '<em><b>Large Icon</b></em>' attribute feature.
+		 * <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ENTRY__LARGE_ICON = eINSTANCE.getEntry_LargeIcon();
+
+		/**
+		 * The meta object literal for the '<em><b>Content</b></em>' attribute feature.
+		 * <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ENTRY__CONTENT = eINSTANCE.getEntry_Content();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ENTRY__NAME = eINSTANCE.getEntry_Name();
+
+		/**
+		 * The meta object literal for the '<em><b>Entries</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ENTRY__ENTRIES = eINSTANCE.getEntry_Entries();
+
+		/**
+		 * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ENTRY__ID = eINSTANCE.getEntry_Id();
+
+		/**
+		 * The meta object literal for the '<em><b>Icon</b></em>' attribute feature.
+		 * <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ENTRY__ICON = eINSTANCE.getEntry_Icon();
+
+		/**
+		 * The meta object literal for the '<em><b>Context</b></em>' attribute feature.
+		 * <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ENTRY__CONTEXT = eINSTANCE.getEntry_Context();
+
+		/**
+		 * The meta object literal for the '<em><b>Scope</b></em>' attribute feature.
+		 * <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ENTRY__SCOPE = eINSTANCE.getEntry_Scope();
+
+		/**
+		 * The meta object literal for the '<em><b>Visible</b></em>' attribute feature.
+		 * <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ENTRY__VISIBLE = eINSTANCE.getEntry_Visible();
+
+		/**
+		 * The meta object literal for the '<em><b>Initializer</b></em>' reference feature.
+		 * <!-- begin-user-doc --> <!--
+		 * end-user-doc -->
+		 * @generated
+		 */
+		EReference ENTRY__INITIALIZER = eINSTANCE.getEntry_Initializer();
+
+		/**
+		 * The meta object literal for the '<em><b>Data Context</b></em>' attribute feature.
+		 * <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ENTRY__DATA_CONTEXT = eINSTANCE.getEntry_DataContext();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.xwt.tools.ui.palette.impl.InitializerImpl <em>Initializer</em>}' class.
+		 * <!-- begin-user-doc --> <!--
+		 * end-user-doc -->
+		 * @see org.eclipse.xwt.tools.ui.palette.impl.InitializerImpl
+		 * @see org.eclipse.xwt.tools.ui.palette.impl.PalettePackageImpl#getInitializer()
+		 * @generated
+		 */
+		EClass INITIALIZER = eINSTANCE.getInitializer();
+
+		/**
+		 * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute INITIALIZER__ID = eINSTANCE.getInitializer_Id();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.xwt.tools.ui.palette.impl.CompoundInitializerImpl <em>Compound Initializer</em>}' class.
+		 * <!-- begin-user-doc --> <!--
+		 * end-user-doc -->
+		 * @see org.eclipse.xwt.tools.ui.palette.impl.CompoundInitializerImpl
+		 * @see org.eclipse.xwt.tools.ui.palette.impl.PalettePackageImpl#getCompoundInitializer()
+		 * @generated
+		 */
+		EClass COMPOUND_INITIALIZER = eINSTANCE.getCompoundInitializer();
+
+		/**
+		 * The meta object literal for the '<em><b>Initializers</b></em>' reference list feature.
+		 * <!-- begin-user-doc --> <!--
+		 * end-user-doc -->
+		 * @generated
+		 */
+		EReference COMPOUND_INITIALIZER__INITIALIZERS = eINSTANCE.getCompoundInitializer_Initializers();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' reference feature.
+		 * <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ENTRY__TYPE = eINSTANCE.getEntry_Type();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.xwt.tools.ui.palette.ContextType <em>Context Type</em>}' enum.
+		 * <!-- begin-user-doc --> <!--
+		 * end-user-doc -->
+		 * @see org.eclipse.xwt.tools.ui.palette.ContextType
+		 * @see org.eclipse.xwt.tools.ui.palette.impl.PalettePackageImpl#getContextType()
+		 * @generated
+		 */
+		EEnum CONTEXT_TYPE = eINSTANCE.getContextType();
+
+	}
+
+} // PalettePackage
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/contribution/CreationCommand.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/contribution/CreationCommand.java
new file mode 100755
index 0000000..aa33192
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/contribution/CreationCommand.java
@@ -0,0 +1,74 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.contribution;
+
+import org.eclipse.xwt.tools.ui.palette.Entry;
+import org.eclipse.xwt.tools.ui.palette.Initializer;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.requests.CreateRequest;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public abstract class CreationCommand extends Command {
+
+	private CreateRequest createReq;
+	private Entry entry;
+
+	public CreationCommand(CreateRequest createRequest) {
+		this.createReq = createRequest;
+	}
+
+	public boolean canExecute() {
+		if (createReq == null) {
+			return false;
+		}
+		return (entry = (Entry) createReq.getNewObject()) != null;
+	}
+
+	final public void execute() {
+		Initializer initializer = entry.getInitializer();
+		if (initializer != null) {
+			Object newObject = initializer.parse(entry);
+			if (initializer.initialize(entry, newObject)) {
+				doCreate(entry, newObject);
+			}
+		} else {
+			doCreate(entry, null);
+		}
+	}
+
+	/**
+	 * Doing command here.
+	 */
+	protected abstract void doCreate(Entry entry, Object newObject);
+
+	public Entry getEntry() {
+		return entry;
+	}
+
+	/**
+	 * Doing something before command execute.
+	 */
+	protected boolean preExecute() {
+		if (entry == null) {
+			return false;
+		}
+		Initializer initializer = entry.getInitializer();
+		if (initializer != null) {
+			Object parse = initializer.parse(entry);
+			return initializer.initialize(parse);
+		}
+		return false;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/contribution/PaletteContribution.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/contribution/PaletteContribution.java
new file mode 100755
index 0000000..c08847d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/contribution/PaletteContribution.java
@@ -0,0 +1,323 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.contribution;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.StringTokenizer;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExecutableExtension;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.xwt.tools.ui.palette.CompoundInitializer;
+import org.eclipse.xwt.tools.ui.palette.Entry;
+import org.eclipse.xwt.tools.ui.palette.Initializer;
+import org.eclipse.xwt.tools.ui.palette.PaletteFactory;
+import org.eclipse.xwt.tools.ui.palette.page.CustomPalettePage;
+import org.eclipse.xwt.tools.ui.palette.page.CustomPaletteViewerProvider;
+import org.eclipse.xwt.tools.ui.palette.page.resources.IPaletteResourceProvider;
+import org.eclipse.xwt.tools.ui.palette.root.PaletteRootFactory;
+import org.eclipse.gef.EditDomain;
+import org.eclipse.gef.Tool;
+import org.eclipse.gef.palette.PaletteRoot;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public class PaletteContribution implements IExecutableExtension {
+
+	public static final String EXTENSION_POINT_ID = "org.eclipse.xwt.tools.ui.palette.paletteContribution";
+	public static final String CONTRIBUTION = "Contribution";
+	public static final String CONTRIBUTION_TARGET_ID = "targetId";
+	public static final String RESOURCE = "Resource";
+	public static final String RESOURCE_URI = "uri";
+	public static final String RESOURCE_PROVIDER = "provider";
+	public static final String INITIALIZER = "Initializer";
+	public static final String INITIALIZER_TARGET = "target";
+	public static final String INITIALIZER_TARGET_ID = "id";
+	public static final String INITIALIZER_TARGET_OVERRIDE_ID = "overrideId";
+	public static final String INITIALIZER_TARGET_GLOBAL = "*";
+	public static final String INITIALIZER_CLASS = "class";
+	public static final String TOOL = "Tool";
+	public static final String TOOL_CLASS = "class";
+	public static final String TOOL_TYPE = "type";
+	public static final String TOOL_TYPE_CREATION = "creation";
+	public static final String TOOL_TYPE_SELECTION = "selection";
+
+	private String editorId;
+	private Map<String, Initializer> initializersMap;
+	private List<IPaletteResourceProvider> resourceProviders;
+
+	private Class<? extends Tool> creationTool;
+	private Class<? extends Tool> selectionTool;
+
+	private static final Map<String, PaletteContribution> contributions = new HashMap<String, PaletteContribution>();
+
+	private PaletteContribution(String editorId) {
+		this.editorId = editorId;
+		loadFromExtensions();
+	}
+
+	private void loadFromExtensions() {
+		IConfigurationElement[] configurations = Platform
+				.getExtensionRegistry().getConfigurationElementsFor(
+						EXTENSION_POINT_ID);
+		for (IConfigurationElement ctrib : configurations) {
+			String targetId = ctrib.getAttribute(CONTRIBUTION_TARGET_ID);
+			if (!editorId.equals(targetId)) {
+				continue;
+			}
+			loadResources(ctrib.getChildren(RESOURCE));
+			loadInitializers(ctrib.getChildren(INITIALIZER));
+			loadTools(ctrib.getChildren(TOOL));
+		}
+	}
+
+	private void loadResources(IConfigurationElement[] resources) {
+		if (resources == null || resources.length == 0) {
+			return;
+		}
+		if (resourceProviders == null) {
+			resourceProviders = new ArrayList<IPaletteResourceProvider>();
+		}
+		for (IConfigurationElement resConfig : resources) {
+			// String uri = resConfig.getAttribute(RESOURCE_URI);
+			try {
+				IPaletteResourceProvider provider = (IPaletteResourceProvider) resConfig
+						.createExecutableExtension(RESOURCE_PROVIDER);
+				resourceProviders.add(provider);
+			} catch (CoreException e) {
+				e.printStackTrace();
+			}
+		}
+	}
+
+	private void loadInitializers(IConfigurationElement[] initializers) {
+		if (initializers == null || initializers.length == 0) {
+			return;
+		}
+
+		for (IConfigurationElement initConfig : initializers) {
+			String target = normalizeTarget(initConfig
+					.getAttribute(INITIALIZER_TARGET));
+			String id = initConfig.getAttribute(INITIALIZER_TARGET_ID);
+			String overrideId = initConfig
+					.getAttribute(INITIALIZER_TARGET_OVERRIDE_ID);
+			Initializer initializer = null;
+			try {
+				initializer = (Initializer) initConfig
+						.createExecutableExtension(INITIALIZER_CLASS);
+
+			} catch (CoreException e) {
+				continue;
+			}
+			addInitializer(target, id, overrideId, initializer);
+		}
+	}
+
+	private void addInitializer(String target, String id, String overrideId,
+			Initializer initializer) {
+		if (id == null || initializer == null) {
+			return;
+		}
+		initializer.setId(id);
+
+		if (initializersMap == null) {
+			initializersMap = new HashMap<String, Initializer>();
+		}
+		// 1. quick fix orveride.
+		if (overrideId != null && findInitializerById(overrideId) != null) {
+			Initializer idOfInit = findInitializerById(overrideId);
+			if (idOfInit.equals(initializersMap.get(target))) {
+				initializersMap.put(target, initializer);
+			} else {
+				for (String key : new ArrayList<String>(initializersMap
+						.keySet())) {
+					if (idOfInit.equals(initializersMap.get(key))) {
+						initializersMap.put(key, initializer);
+					}
+				}
+			}
+		} else {
+			if (target != null && target.indexOf(",") != -1) {
+				StringTokenizer stk = new StringTokenizer(target, ",");
+				while (stk.hasMoreTokens()) {
+					addInitializer(stk.nextToken().trim(), id, null,
+							initializer);
+				}
+				return;
+			}
+			target = normalizeTarget(target);
+			Initializer oldInit = initializersMap.get(target);
+			if (oldInit == null) {
+				initializersMap.put(target, initializer);
+			} else if (oldInit instanceof CompoundInitializer) {
+				((CompoundInitializer) oldInit).getInitializers().add(
+						initializer);
+			} else {
+				CompoundInitializer newInit = PaletteFactory.eINSTANCE
+						.createCompoundInitializer();
+				newInit.getInitializers().add(oldInit);
+				newInit.getInitializers().add(initializer);
+				initializersMap.put(target, newInit);
+			}
+		}
+	}
+
+	public Initializer findInitializerById(String id) {
+		if (id == null || initializersMap == null) {
+			return null;
+		}
+		for (Initializer init : initializersMap.values()) {
+			if (id.equals(init.getId())) {
+				return init;
+			}
+		}
+		return null;
+	}
+
+	private String normalizeTarget(String target) {
+		if (target == null || "".equals(target)) {
+			target = INITIALIZER_TARGET_GLOBAL;
+		}
+		return target.toUpperCase();
+	}
+
+	private void loadTools(IConfigurationElement[] tools) {
+		if (tools == null || tools.length == 0) {
+			return;
+		}
+		for (IConfigurationElement toolConfig : tools) {
+			String type = toolConfig.getAttribute(TOOL_TYPE);
+			try {
+				Tool tool = (Tool) toolConfig
+						.createExecutableExtension(TOOL_CLASS);
+				if (TOOL_TYPE_CREATION.equals(type)) {
+					creationTool = tool.getClass();
+				} else if (TOOL_TYPE_SELECTION.equals(type)) {
+					selectionTool = tool.getClass();
+				}
+			} catch (CoreException e) {
+				continue;
+			}
+		}
+	}
+
+	public Class<? extends Tool> getCreationTool() {
+		return creationTool;
+	}
+
+	public Class<? extends Tool> getSelectionTool() {
+		return selectionTool;
+	}
+
+	public String getEditorId() {
+		return editorId;
+	}
+
+	public Initializer getInitializer(String type) {
+		if (initializersMap == null) {
+			return null;
+		}
+		type = normalizeTarget(type);
+		return initializersMap.get(type);
+	}
+
+	public void applyInitializer(Entry entry) {
+		if (entry == null || !entry.getEntries().isEmpty()) {
+			return;
+		}
+
+		List<Initializer> initializers = new ArrayList<Initializer>();
+
+		// get from NAME.
+		String name = entry.getName();
+		if (name != null) {
+			merge(initializersMap.get(name.toUpperCase()), initializers);
+		}
+		// get from ID.
+		String id = entry.getId();
+		if (id != null) {
+			merge(initializersMap.get(id.toUpperCase()), initializers);
+		}
+		// add old initializer.
+		Initializer oldInitializer = entry.getInitializer();
+		if (oldInitializer != null) {
+			merge(oldInitializer, initializers);
+		}
+		Initializer globalInitializer = getGlobalInitializer();
+		if (globalInitializer != null) {
+			merge(globalInitializer, initializers);
+		}
+		if (!initializers.isEmpty()) {
+			CompoundInitializer initializer = PaletteFactory.eINSTANCE
+					.createCompoundInitializer();
+			initializer.getInitializers().addAll(initializers);
+			entry.setInitializer(initializer.unwrap());
+		}
+	}
+
+	private void merge(Initializer initializer, List<Initializer> initList) {
+		if (initializer == null || initList == null) {
+			return;
+		}
+		if (initializer instanceof CompoundInitializer) {
+			initList.addAll(((CompoundInitializer) initializer)
+					.getInitializers());
+		} else {
+			initList.add(initializer);
+		}
+	}
+
+	public Initializer getGlobalInitializer() {
+		return getInitializer(INITIALIZER_TARGET_GLOBAL);
+	}
+
+	public boolean hasInitialiers() {
+		return initializersMap != null && initializersMap.size() > 0;
+	}
+
+	public List<IPaletteResourceProvider> getResourceProviders() {
+		return resourceProviders;
+	}
+
+	public void setInitializationData(IConfigurationElement config,
+			String propertyName, Object data) throws CoreException {
+
+	}
+
+	public CustomPalettePage createPalette(String editorId,
+			EditDomain editDomain) {
+		PaletteRootFactory factory = new PaletteRootFactory(resourceProviders,
+				creationTool, selectionTool);
+		PaletteRoot paletteRoot = factory.createPaletteRoot();
+		if (paletteRoot != null) {
+			editDomain.setPaletteRoot(paletteRoot);
+		}
+		CustomPaletteViewerProvider provider = new CustomPaletteViewerProvider(
+				editDomain);
+		return new CustomPalettePage(provider);
+	}
+
+	public static PaletteContribution getContribution(String editorId) {
+		PaletteContribution paletteContribution = contributions.get(editorId);
+		if (paletteContribution == null) {
+			paletteContribution = new PaletteContribution(editorId);
+			contributions.put(editorId, paletteContribution);
+		}
+		return paletteContribution;
+	}
+}
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java
similarity index 100%
rename from org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java
rename to plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/CompoundInitializerImpl.java
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/EntryImpl.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/EntryImpl.java
new file mode 100755
index 0000000..994cbd4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/EntryImpl.java
@@ -0,0 +1,783 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.impl;
+
+import java.util.Collection;
+
+import org.eclipse.xwt.tools.ui.palette.ContextType;
+import org.eclipse.xwt.tools.ui.palette.Entry;
+import org.eclipse.xwt.tools.ui.palette.Initializer;
+import org.eclipse.xwt.tools.ui.palette.PalettePackage;
+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.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>Entry</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl#getToolTip <em>Tool Tip</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl#getLargeIcon <em>Large Icon</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl#getContent <em>Content</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl#getEntries <em>Entries</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl#getIcon <em>Icon</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl#getContext <em>Context</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl#getScope <em>Scope</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl#isVisible <em>Visible</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl#getInitializer <em>Initializer</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.EntryImpl#getDataContext <em>Data Context</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EntryImpl extends EObjectImpl implements Entry {
+	/**
+	 * The default value of the '{@link #getToolTip() <em>Tool Tip</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getToolTip()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TOOL_TIP_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getToolTip() <em>Tool Tip</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getToolTip()
+	 * @generated
+	 * @ordered
+	 */
+	protected String toolTip = TOOL_TIP_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLargeIcon() <em>Large Icon</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getLargeIcon()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String LARGE_ICON_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLargeIcon() <em>Large Icon</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getLargeIcon()
+	 * @generated
+	 * @ordered
+	 */
+	protected String largeIcon = LARGE_ICON_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getContent() <em>Content</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getContent()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String CONTENT_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getContent() <em>Content</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getContent()
+	 * @generated
+	 * @ordered
+	 */
+	protected String content = CONTENT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getEntries() <em>Entries</em>}' containment reference list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getEntries()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Entry> entries;
+
+	/**
+	 * 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 = "\"\"";
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getIcon() <em>Icon</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getIcon()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ICON_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getIcon() <em>Icon</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getIcon()
+	 * @generated
+	 * @ordered
+	 */
+	protected String icon = ICON_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getContext() <em>Context</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getContext()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final ContextType CONTEXT_EDEFAULT = ContextType.XML_TAG;
+
+	/**
+	 * The cached value of the '{@link #getContext() <em>Context</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getContext()
+	 * @generated
+	 * @ordered
+	 */
+	protected ContextType context = CONTEXT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getScope() <em>Scope</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getScope()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SCOPE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getScope() <em>Scope</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getScope()
+	 * @generated
+	 * @ordered
+	 */
+	protected String scope = SCOPE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isVisible() <em>Visible</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isVisible()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean VISIBLE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isVisible() <em>Visible</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isVisible()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean visible = VISIBLE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected EClass type;
+
+	/**
+	 * The cached value of the '{@link #getInitializer() <em>Initializer</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getInitializer()
+	 * @generated
+	 * @ordered
+	 */
+	protected Initializer initializer;
+
+	/**
+	 * The default value of the '{@link #getDataContext() <em>Data Context</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getDataContext()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object DATA_CONTEXT_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDataContext() <em>Data Context</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getDataContext()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object dataContext = DATA_CONTEXT_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EntryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return PalettePackage.Literals.ENTRY;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getToolTip() {
+		return toolTip;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setToolTip(String newToolTip) {
+		String oldToolTip = toolTip;
+		toolTip = newToolTip;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, PalettePackage.ENTRY__TOOL_TIP, oldToolTip, toolTip));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLargeIcon() {
+		return largeIcon;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLargeIcon(String newLargeIcon) {
+		String oldLargeIcon = largeIcon;
+		largeIcon = newLargeIcon;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, PalettePackage.ENTRY__LARGE_ICON, oldLargeIcon, largeIcon));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getContent() {
+		return content;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setContent(String newContent) {
+		String oldContent = content;
+		content = newContent;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, PalettePackage.ENTRY__CONTENT, oldContent, content));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, PalettePackage.ENTRY__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Entry> getEntries() {
+		if (entries == null) {
+			entries = new EObjectContainmentEList<Entry>(Entry.class, this, PalettePackage.ENTRY__ENTRIES);
+		}
+		return entries;
+	}
+
+	/**
+	 * <!-- 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, PalettePackage.ENTRY__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getIcon() {
+		return icon;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIcon(String newIcon) {
+		String oldIcon = icon;
+		icon = newIcon;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, PalettePackage.ENTRY__ICON, oldIcon, icon));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ContextType getContext() {
+		return context;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setContext(ContextType newContext) {
+		ContextType oldContext = context;
+		context = newContext == null ? CONTEXT_EDEFAULT : newContext;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, PalettePackage.ENTRY__CONTEXT, oldContext, context));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getScope() {
+		return scope;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setScope(String newScope) {
+		String oldScope = scope;
+		scope = newScope;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, PalettePackage.ENTRY__SCOPE, oldScope, scope));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isVisible() {
+		return visible;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setVisible(boolean newVisible) {
+		boolean oldVisible = visible;
+		visible = newVisible;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, PalettePackage.ENTRY__VISIBLE, oldVisible, visible));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Initializer getInitializer() {
+		if (initializer != null && initializer.eIsProxy()) {
+			InternalEObject oldInitializer = (InternalEObject)initializer;
+			initializer = (Initializer)eResolveProxy(oldInitializer);
+			if (initializer != oldInitializer) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, PalettePackage.ENTRY__INITIALIZER, oldInitializer, initializer));
+			}
+		}
+		return initializer;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Initializer basicGetInitializer() {
+		return initializer;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setInitializer(Initializer newInitializer) {
+		Initializer oldInitializer = initializer;
+		initializer = newInitializer;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, PalettePackage.ENTRY__INITIALIZER, oldInitializer, initializer));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getDataContext() {
+		return dataContext;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDataContext(Object newDataContext) {
+		Object oldDataContext = dataContext;
+		dataContext = newDataContext;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, PalettePackage.ENTRY__DATA_CONTEXT, oldDataContext, dataContext));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getType() {
+		if (type != null && type.eIsProxy()) {
+			InternalEObject oldType = (InternalEObject)type;
+			type = (EClass)eResolveProxy(oldType);
+			if (type != oldType) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, PalettePackage.ENTRY__TYPE, oldType, type));
+			}
+		}
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass basicGetType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setType(EClass newType) {
+		EClass oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, PalettePackage.ENTRY__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID,
+			NotificationChain msgs) {
+		switch (featureID) {
+			case PalettePackage.ENTRY__ENTRIES:
+				return ((InternalEList<?>)getEntries()).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 PalettePackage.ENTRY__TOOL_TIP:
+				return getToolTip();
+			case PalettePackage.ENTRY__LARGE_ICON:
+				return getLargeIcon();
+			case PalettePackage.ENTRY__CONTENT:
+				return getContent();
+			case PalettePackage.ENTRY__NAME:
+				return getName();
+			case PalettePackage.ENTRY__ENTRIES:
+				return getEntries();
+			case PalettePackage.ENTRY__ID:
+				return getId();
+			case PalettePackage.ENTRY__ICON:
+				return getIcon();
+			case PalettePackage.ENTRY__CONTEXT:
+				return getContext();
+			case PalettePackage.ENTRY__SCOPE:
+				return getScope();
+			case PalettePackage.ENTRY__VISIBLE:
+				return isVisible();
+			case PalettePackage.ENTRY__TYPE:
+				if (resolve) return getType();
+				return basicGetType();
+			case PalettePackage.ENTRY__INITIALIZER:
+				if (resolve) return getInitializer();
+				return basicGetInitializer();
+			case PalettePackage.ENTRY__DATA_CONTEXT:
+				return getDataContext();
+		}
+		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 PalettePackage.ENTRY__TOOL_TIP:
+				setToolTip((String)newValue);
+				return;
+			case PalettePackage.ENTRY__LARGE_ICON:
+				setLargeIcon((String)newValue);
+				return;
+			case PalettePackage.ENTRY__CONTENT:
+				setContent((String)newValue);
+				return;
+			case PalettePackage.ENTRY__NAME:
+				setName((String)newValue);
+				return;
+			case PalettePackage.ENTRY__ENTRIES:
+				getEntries().clear();
+				getEntries().addAll((Collection<? extends Entry>)newValue);
+				return;
+			case PalettePackage.ENTRY__ID:
+				setId((String)newValue);
+				return;
+			case PalettePackage.ENTRY__ICON:
+				setIcon((String)newValue);
+				return;
+			case PalettePackage.ENTRY__CONTEXT:
+				setContext((ContextType)newValue);
+				return;
+			case PalettePackage.ENTRY__SCOPE:
+				setScope((String)newValue);
+				return;
+			case PalettePackage.ENTRY__VISIBLE:
+				setVisible((Boolean)newValue);
+				return;
+			case PalettePackage.ENTRY__TYPE:
+				setType((EClass)newValue);
+				return;
+			case PalettePackage.ENTRY__INITIALIZER:
+				setInitializer((Initializer)newValue);
+				return;
+			case PalettePackage.ENTRY__DATA_CONTEXT:
+				setDataContext(newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case PalettePackage.ENTRY__TOOL_TIP:
+				setToolTip(TOOL_TIP_EDEFAULT);
+				return;
+			case PalettePackage.ENTRY__LARGE_ICON:
+				setLargeIcon(LARGE_ICON_EDEFAULT);
+				return;
+			case PalettePackage.ENTRY__CONTENT:
+				setContent(CONTENT_EDEFAULT);
+				return;
+			case PalettePackage.ENTRY__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case PalettePackage.ENTRY__ENTRIES:
+				getEntries().clear();
+				return;
+			case PalettePackage.ENTRY__ID:
+				setId(ID_EDEFAULT);
+				return;
+			case PalettePackage.ENTRY__ICON:
+				setIcon(ICON_EDEFAULT);
+				return;
+			case PalettePackage.ENTRY__CONTEXT:
+				setContext(CONTEXT_EDEFAULT);
+				return;
+			case PalettePackage.ENTRY__SCOPE:
+				setScope(SCOPE_EDEFAULT);
+				return;
+			case PalettePackage.ENTRY__VISIBLE:
+				setVisible(VISIBLE_EDEFAULT);
+				return;
+			case PalettePackage.ENTRY__TYPE:
+				setType((EClass)null);
+				return;
+			case PalettePackage.ENTRY__INITIALIZER:
+				setInitializer((Initializer)null);
+				return;
+			case PalettePackage.ENTRY__DATA_CONTEXT:
+				setDataContext(DATA_CONTEXT_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case PalettePackage.ENTRY__TOOL_TIP:
+				return TOOL_TIP_EDEFAULT == null ? toolTip != null : !TOOL_TIP_EDEFAULT.equals(toolTip);
+			case PalettePackage.ENTRY__LARGE_ICON:
+				return LARGE_ICON_EDEFAULT == null ? largeIcon != null : !LARGE_ICON_EDEFAULT.equals(largeIcon);
+			case PalettePackage.ENTRY__CONTENT:
+				return CONTENT_EDEFAULT == null ? content != null : !CONTENT_EDEFAULT.equals(content);
+			case PalettePackage.ENTRY__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case PalettePackage.ENTRY__ENTRIES:
+				return entries != null && !entries.isEmpty();
+			case PalettePackage.ENTRY__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+			case PalettePackage.ENTRY__ICON:
+				return ICON_EDEFAULT == null ? icon != null : !ICON_EDEFAULT.equals(icon);
+			case PalettePackage.ENTRY__CONTEXT:
+				return context != CONTEXT_EDEFAULT;
+			case PalettePackage.ENTRY__SCOPE:
+				return SCOPE_EDEFAULT == null ? scope != null : !SCOPE_EDEFAULT.equals(scope);
+			case PalettePackage.ENTRY__VISIBLE:
+				return visible != VISIBLE_EDEFAULT;
+			case PalettePackage.ENTRY__TYPE:
+				return type != null;
+			case PalettePackage.ENTRY__INITIALIZER:
+				return initializer != null;
+			case PalettePackage.ENTRY__DATA_CONTEXT:
+				return DATA_CONTEXT_EDEFAULT == null ? dataContext != null : !DATA_CONTEXT_EDEFAULT.equals(dataContext);
+		}
+		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(" (toolTip: ");
+		result.append(toolTip);
+		result.append(", largeIcon: ");
+		result.append(largeIcon);
+		result.append(", content: ");
+		result.append(content);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", icon: ");
+		result.append(icon);
+		result.append(", context: ");
+		result.append(context);
+		result.append(", scope: ");
+		result.append(scope);
+		result.append(", visible: ");
+		result.append(visible);
+		result.append(", dataContext: ");
+		result.append(dataContext);
+		result.append(')');
+		return result.toString();
+	}
+
+} // EntryImpl
diff --git a/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/InitializerImpl.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/InitializerImpl.java
similarity index 100%
rename from org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/InitializerImpl.java
rename to plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/InitializerImpl.java
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/PaletteFactoryImpl.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/PaletteFactoryImpl.java
new file mode 100755
index 0000000..3289d66
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/PaletteFactoryImpl.java
@@ -0,0 +1,166 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.impl;
+
+import org.eclipse.xwt.tools.ui.palette.*;
+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;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model <b>Factory</b>. <!--
+ * end-user-doc -->
+ * @generated
+ */
+public class PaletteFactoryImpl extends EFactoryImpl implements PaletteFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	public static PaletteFactory init() {
+		try {
+			PaletteFactory thePaletteFactory = (PaletteFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/e4/xwt/tools/palette.xmi"); 
+			if (thePaletteFactory != null) {
+				return thePaletteFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new PaletteFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	public PaletteFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case PalettePackage.PALETTE: return createPalette();
+			case PalettePackage.ENTRY: return createEntry();
+			case PalettePackage.COMPOUND_INITIALIZER: return createCompoundInitializer();
+			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 PalettePackage.CONTEXT_TYPE:
+				return createContextTypeFromString(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 PalettePackage.CONTEXT_TYPE:
+				return convertContextTypeToString(eDataType, instanceValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Palette createPalette() {
+		PaletteImpl palette = new PaletteImpl();
+		return palette;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Entry createEntry() {
+		EntryImpl entry = new EntryImpl();
+		return entry;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CompoundInitializer createCompoundInitializer() {
+		CompoundInitializerImpl compoundInitializer = new CompoundInitializerImpl();
+		return compoundInitializer;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ContextType createContextTypeFromString(EDataType eDataType, String initialValue) {
+		ContextType result = ContextType.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 convertContextTypeToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PalettePackage getPalettePackage() {
+		return (PalettePackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static PalettePackage getPackage() {
+		return PalettePackage.eINSTANCE;
+	}
+
+} // PaletteFactoryImpl
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/PaletteImpl.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/PaletteImpl.java
new file mode 100755
index 0000000..df126be
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/PaletteImpl.java
@@ -0,0 +1,217 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.impl;
+
+import java.util.Collection;
+
+import org.eclipse.xwt.tools.ui.palette.Entry;
+import org.eclipse.xwt.tools.ui.palette.Palette;
+import org.eclipse.xwt.tools.ui.palette.PalettePackage;
+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.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>Palette</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.PaletteImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.palette.impl.PaletteImpl#getEntries <em>Entries</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PaletteImpl extends EObjectImpl implements Palette {
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getEntries() <em>Entries</em>}' containment reference list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getEntries()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Entry> entries;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PaletteImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return PalettePackage.Literals.PALETTE;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, PalettePackage.PALETTE__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Entry> getEntries() {
+		if (entries == null) {
+			entries = new EObjectContainmentEList<Entry>(Entry.class, this, PalettePackage.PALETTE__ENTRIES);
+		}
+		return entries;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID,
+			NotificationChain msgs) {
+		switch (featureID) {
+			case PalettePackage.PALETTE__ENTRIES:
+				return ((InternalEList<?>)getEntries()).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 PalettePackage.PALETTE__NAME:
+				return getName();
+			case PalettePackage.PALETTE__ENTRIES:
+				return getEntries();
+		}
+		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 PalettePackage.PALETTE__NAME:
+				setName((String)newValue);
+				return;
+			case PalettePackage.PALETTE__ENTRIES:
+				getEntries().clear();
+				getEntries().addAll((Collection<? extends Entry>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case PalettePackage.PALETTE__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case PalettePackage.PALETTE__ENTRIES:
+				getEntries().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case PalettePackage.PALETTE__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case PalettePackage.PALETTE__ENTRIES:
+				return entries != null && !entries.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(" (name: ");
+		result.append(name);
+		result.append(')');
+		return result.toString();
+	}
+
+} // PaletteImpl
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/PalettePackageImpl.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/PalettePackageImpl.java
new file mode 100755
index 0000000..9998812
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/impl/PalettePackageImpl.java
@@ -0,0 +1,442 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.impl;
+
+import org.eclipse.xwt.tools.ui.palette.CompoundInitializer;
+import org.eclipse.xwt.tools.ui.palette.ContextType;
+import org.eclipse.xwt.tools.ui.palette.Entry;
+import org.eclipse.xwt.tools.ui.palette.Initializer;
+import org.eclipse.xwt.tools.ui.palette.Palette;
+import org.eclipse.xwt.tools.ui.palette.PaletteFactory;
+import org.eclipse.xwt.tools.ui.palette.PalettePackage;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EGenericType;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model <b>Package</b>. <!--
+ * end-user-doc -->
+ * @generated
+ */
+public class PalettePackageImpl extends EPackageImpl implements PalettePackage {
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass paletteEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass entryEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass initializerEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass compoundInitializerEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum contextTypeEEnum = 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.xwt.tools.ui.palette.PalettePackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private PalettePackageImpl() {
+		super(eNS_URI, PaletteFactory.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 PalettePackage#eINSTANCE} when
+	 * that field is accessed. Clients should not invoke it directly. Instead,
+	 * they should simply access that field to obtain the package. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static PalettePackage init() {
+		if (isInited) return (PalettePackage)EPackage.Registry.INSTANCE.getEPackage(PalettePackage.eNS_URI);
+
+		// Obtain or create and register package
+		PalettePackageImpl thePalettePackage = (PalettePackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof PalettePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new PalettePackageImpl());
+
+		isInited = true;
+
+		// Create package meta-data objects
+		thePalettePackage.createPackageContents();
+
+		// Initialize created meta-data
+		thePalettePackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		thePalettePackage.freeze();
+
+  
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(PalettePackage.eNS_URI, thePalettePackage);
+		return thePalettePackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getPalette() {
+		return paletteEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPalette_Name() {
+		return (EAttribute)paletteEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getPalette_Entries() {
+		return (EReference)paletteEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getEntry() {
+		return entryEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getEntry_ToolTip() {
+		return (EAttribute)entryEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getEntry_LargeIcon() {
+		return (EAttribute)entryEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getEntry_Content() {
+		return (EAttribute)entryEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getEntry_Name() {
+		return (EAttribute)entryEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getEntry_Entries() {
+		return (EReference)entryEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getEntry_Id() {
+		return (EAttribute)entryEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getEntry_Icon() {
+		return (EAttribute)entryEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getEntry_Context() {
+		return (EAttribute)entryEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getEntry_Scope() {
+		return (EAttribute)entryEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getEntry_Visible() {
+		return (EAttribute)entryEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getEntry_Initializer() {
+		return (EReference)entryEClass.getEStructuralFeatures().get(11);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getEntry_DataContext() {
+		return (EAttribute)entryEClass.getEStructuralFeatures().get(12);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getInitializer() {
+		return initializerEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getInitializer_Id() {
+		return (EAttribute)initializerEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getCompoundInitializer() {
+		return compoundInitializerEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getCompoundInitializer_Initializers() {
+		return (EReference)compoundInitializerEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getEntry_Type() {
+		return (EReference)entryEClass.getEStructuralFeatures().get(10);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getContextType() {
+		return contextTypeEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PaletteFactory getPaletteFactory() {
+		return (PaletteFactory)getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
+
+		// Create classes and their features
+		paletteEClass = createEClass(PALETTE);
+		createEAttribute(paletteEClass, PALETTE__NAME);
+		createEReference(paletteEClass, PALETTE__ENTRIES);
+
+		entryEClass = createEClass(ENTRY);
+		createEAttribute(entryEClass, ENTRY__TOOL_TIP);
+		createEAttribute(entryEClass, ENTRY__LARGE_ICON);
+		createEAttribute(entryEClass, ENTRY__CONTENT);
+		createEAttribute(entryEClass, ENTRY__NAME);
+		createEReference(entryEClass, ENTRY__ENTRIES);
+		createEAttribute(entryEClass, ENTRY__ID);
+		createEAttribute(entryEClass, ENTRY__ICON);
+		createEAttribute(entryEClass, ENTRY__CONTEXT);
+		createEAttribute(entryEClass, ENTRY__SCOPE);
+		createEAttribute(entryEClass, ENTRY__VISIBLE);
+		createEReference(entryEClass, ENTRY__TYPE);
+		createEReference(entryEClass, ENTRY__INITIALIZER);
+		createEAttribute(entryEClass, ENTRY__DATA_CONTEXT);
+
+		initializerEClass = createEClass(INITIALIZER);
+		createEAttribute(initializerEClass, INITIALIZER__ID);
+
+		compoundInitializerEClass = createEClass(COMPOUND_INITIALIZER);
+		createEReference(compoundInitializerEClass, COMPOUND_INITIALIZER__INITIALIZERS);
+
+		// Create enums
+		contextTypeEEnum = createEEnum(CONTEXT_TYPE);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model. This
+	 * method is guarded to have no affect on any invocation but its first. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+		compoundInitializerEClass.getESuperTypes().add(this.getInitializer());
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(paletteEClass, Palette.class, "Palette", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getPalette_Name(), ecorePackage.getEString(), "name", null, 0, 1, Palette.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getPalette_Entries(), this.getEntry(), null, "entries", null, 0, -1, Palette.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(entryEClass, Entry.class, "Entry", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getEntry_ToolTip(), ecorePackage.getEString(), "toolTip", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getEntry_LargeIcon(), ecorePackage.getEString(), "largeIcon", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getEntry_Content(), ecorePackage.getEString(), "content", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getEntry_Name(), ecorePackage.getEString(), "name", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getEntry_Entries(), this.getEntry(), null, "entries", null, 0, -1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getEntry_Id(), ecorePackage.getEString(), "id", "\"\"", 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getEntry_Icon(), ecorePackage.getEString(), "icon", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getEntry_Context(), this.getContextType(), "context", "", 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getEntry_Scope(), ecorePackage.getEString(), "scope", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getEntry_Visible(), ecorePackage.getEBoolean(), "visible", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getEntry_Type(), ecorePackage.getEClass(), null, "type", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getEntry_Initializer(), this.getInitializer(), null, "initializer", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getEntry_DataContext(), ecorePackage.getEJavaObject(), "dataContext", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(initializerEClass, Initializer.class, "Initializer", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getInitializer_Id(), ecorePackage.getEString(), "id", null, 0, 1, Initializer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		EOperation op = addEOperation(initializerEClass, ecorePackage.getEBoolean(), "initialize", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEJavaObject(), "element", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(initializerEClass, ecorePackage.getEJavaObject(), "parse", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getEntry(), "entry", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(initializerEClass, ecorePackage.getEBoolean(), "initialize", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getEntry(), "entry", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEJavaObject(), "newObject", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(compoundInitializerEClass, CompoundInitializer.class, "CompoundInitializer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getCompoundInitializer_Initializers(), this.getInitializer(), null, "initializers", null, 0, -1, CompoundInitializer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		addEOperation(compoundInitializerEClass, this.getInitializer(), "unwrap", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		// Initialize enums and add enum literals
+		initEEnum(contextTypeEEnum, ContextType.class, "ContextType");
+		addEEnumLiteral(contextTypeEEnum, ContextType.XML_TAG);
+		addEEnumLiteral(contextTypeEEnum, ContextType.XML_ATTRIBUTE_VALUE);
+		addEEnumLiteral(contextTypeEEnum, ContextType.XML_ATTRIBUTE);
+		addEEnumLiteral(contextTypeEEnum, ContextType.XML_ALL);
+		addEEnumLiteral(contextTypeEEnum, ContextType.XML_NEW);
+		addEEnumLiteral(contextTypeEEnum, ContextType.NONE);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} // PalettePackageImpl
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/ContributePalettePage.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/ContributePalettePage.java
new file mode 100755
index 0000000..426e1b0
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/ContributePalettePage.java
@@ -0,0 +1,91 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.page;
+
+import java.util.List;
+
+import org.eclipse.xwt.tools.ui.palette.Entry;
+import org.eclipse.xwt.tools.ui.palette.Palette;
+import org.eclipse.xwt.tools.ui.palette.contribution.PaletteContribution;
+import org.eclipse.xwt.tools.ui.palette.page.resources.IPaletteResourceProvider;
+import org.eclipse.xwt.tools.ui.palette.root.PaletteRootFactory;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gef.DefaultEditDomain;
+import org.eclipse.gef.EditDomain;
+import org.eclipse.gef.Tool;
+import org.eclipse.gef.palette.PaletteRoot;
+import org.eclipse.ui.IEditorPart;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public class ContributePalettePage extends CustomPalettePage {
+
+	public ContributePalettePage(IEditorPart editorPart, EditDomain editDomain) {
+		super(new CustomPaletteViewerProvider(editDomain));
+		createPaletteRoot(editorPart, editDomain);
+	}
+
+	private void createPaletteRoot(IEditorPart editorPart, EditDomain editDomain) {
+		if (editorPart == null) {
+			return;
+		}
+		if (editDomain == null) {
+			editDomain = (EditDomain) editorPart.getAdapter(EditDomain.class);
+		}
+		if (editDomain == null) {
+			editDomain = new DefaultEditDomain(editorPart);
+		}
+
+		String editorId = editorPart.getSite().getId();
+		PaletteContribution contribution = PaletteContribution.getContribution(editorId);
+		List<IPaletteResourceProvider> resourceProviders = contribution.getResourceProviders();
+
+		boolean hasInitialiers = contribution.hasInitialiers();
+		if (hasInitialiers) {
+			for (IPaletteResourceProvider rp : resourceProviders) {
+				Resource res = rp.getPaletteResource();
+				if (res == null) {
+					continue;
+				}
+				EList<EObject> contents = res.getContents();
+				for (EObject eObject : contents) {
+					if (!(eObject instanceof Palette)) {
+						continue;
+					}
+					Palette palette = (Palette) eObject;
+					for (Entry entry : palette.getEntries()) {
+						applyInitializer(contribution, entry);
+					}
+				}
+			}
+		}
+
+		Class<? extends Tool> selectionTool = contribution.getSelectionTool();
+		Class<? extends Tool> creationTool = contribution.getCreationTool();
+		PaletteRootFactory factory = new PaletteRootFactory(resourceProviders, creationTool,
+				selectionTool);
+		PaletteRoot paletteRoot = factory.createPaletteRoot();
+		editDomain.setPaletteRoot(paletteRoot);
+
+	}
+
+	private void applyInitializer(PaletteContribution contribution, Entry entry) {
+		contribution.applyInitializer(entry);
+		for (Entry child : entry.getEntries()) {
+			applyInitializer(contribution, child);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/CustomPalettePage.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/CustomPalettePage.java
new file mode 100755
index 0000000..68399ff
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/CustomPalettePage.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.page;
+
+import org.eclipse.gef.ui.palette.PaletteViewer;
+import org.eclipse.gef.ui.views.palette.PaletteViewerPage;
+import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class CustomPalettePage extends PaletteViewerPage {
+	private Composite parent;
+
+	public CustomPalettePage(CustomPaletteViewerProvider pvProvider) {
+		super(pvProvider);
+	}
+
+	/**
+	 * @return the PaletteViewer created and displayed by this page
+	 */
+	public PaletteViewer getPaletteViewer() {
+		return viewer;
+	}
+
+	/**
+	 * @see org.eclipse.gef.ui.views.palette.PaletteViewerPage#createControl(org.eclipse.swt.widgets.Composite)
+	 */
+	public void createControl(Composite parent) {
+		this.parent = parent;
+		super.createControl(parent);
+	}
+
+	public void reCreate() {
+		if (parent != null && !parent.isDisposed()) {
+			viewer = provider.createPaletteViewer(parent);
+		}
+	}
+
+	public LocalSelectionTransfer getPaletteTransfer() {
+		return ((CustomPaletteViewerProvider) provider).getPaletteTransfer();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/CustomPaletteViewerProvider.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/CustomPaletteViewerProvider.java
new file mode 100755
index 0000000..525dbcc
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/CustomPaletteViewerProvider.java
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.page;
+
+import org.eclipse.xwt.tools.ui.palette.page.editparts.EditPartFactory;
+import org.eclipse.gef.EditDomain;
+import org.eclipse.gef.ui.palette.PaletteViewer;
+import org.eclipse.gef.ui.palette.PaletteViewerProvider;
+import org.eclipse.gef.ui.parts.PaletteViewerKeyHandler;
+import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class CustomPaletteViewerProvider extends PaletteViewerProvider {
+
+	private LocalSelectionTransfer paletteTransfer;
+
+	public CustomPaletteViewerProvider(EditDomain graphicalViewerDomain) {
+		super(graphicalViewerDomain);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.ui.palette.PaletteViewerProvider#createPaletteViewer(
+	 * org.eclipse.swt.widgets.Composite)
+	 */
+	public PaletteViewer createPaletteViewer(Composite parent) {
+		PaletteViewer pViewer = new PaletteViewer();
+		pViewer.createControl(parent);
+		configurePaletteViewer(pViewer);
+		hookPaletteViewer(pViewer);
+		return pViewer;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.ui.palette.PaletteViewerProvider#configurePaletteViewer
+	 * (org.eclipse.gef.ui.palette.PaletteViewer)
+	 */
+	protected void configurePaletteViewer(PaletteViewer viewer) {
+		super.configurePaletteViewer(viewer);
+		EditDomain editDomain = getEditDomain();
+		if (editDomain != null) {
+			editDomain.setPaletteViewer(viewer);
+			viewer.setEditDomain(editDomain);
+		}
+		viewer.setKeyHandler(new PaletteViewerKeyHandler(viewer));
+		viewer.setEditPartFactory(new EditPartFactory());
+		viewer.addDragSourceListener(new DragSourceAdapter(viewer, getPaletteTransfer()));
+	}
+
+	/**
+	 * @return the paletteTransfer
+	 */
+	public LocalSelectionTransfer getPaletteTransfer() {
+		if (paletteTransfer == null) {
+			paletteTransfer = LocalSelectionTransfer.getTransfer();
+		}
+		return paletteTransfer;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/DragSourceAdapter.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/DragSourceAdapter.java
new file mode 100755
index 0000000..21b0b4c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/DragSourceAdapter.java
@@ -0,0 +1,88 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.page;
+
+import java.util.List;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartViewer;
+import org.eclipse.gef.dnd.AbstractTransferDragSourceListener;
+import org.eclipse.gef.palette.CombinedTemplateCreationEntry;
+import org.eclipse.gef.palette.PaletteTemplateEntry;
+import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.swt.dnd.DragSourceEvent;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class DragSourceAdapter extends AbstractTransferDragSourceListener {
+
+	public DragSourceAdapter(EditPartViewer viewer, LocalSelectionTransfer transfer) {
+		super(viewer, transfer);
+	}
+
+	/**
+	 * @see AbstractTransferDragSourceListener#dragFinished(DragSourceEvent)
+	 */
+	public void dragFinished(DragSourceEvent event) {
+		((LocalSelectionTransfer) getTransfer()).setSelection(null);
+	}
+
+	/**
+	 * Get the <i>template</i> from the selected {@link PaletteTemplateEntry}
+	 * and sets it as the event data to be dropped.
+	 * 
+	 * @param event
+	 *            the DragSourceEvent
+	 */
+	public void dragSetData(DragSourceEvent event) {
+		event.data = getTemplate();
+	}
+
+	/**
+	 * Cancels the drag if the selected item does not represent a
+	 * PaletteTemplateEntry.
+	 * 
+	 * @see org.eclipse.swt.dnd.DragSourceListener#dragStart(DragSourceEvent)
+	 */
+	public void dragStart(DragSourceEvent event) {
+		Object template = getTemplate();
+		if (template == null) {
+			event.doit = false;
+			return;
+		}
+		IStructuredSelection selection = new StructuredSelection(template);
+		((LocalSelectionTransfer) getTransfer()).setSelection(selection);
+	}
+
+	/**
+	 * A helper method that returns <code>null</code> or the <i>template</i>
+	 * Object from the currently selected EditPart.
+	 * 
+	 * @return the template
+	 */
+	protected Object getTemplate() {
+		List selection = getViewer().getSelectedEditParts();
+		if (selection.size() == 1) {
+			EditPart editpart = (EditPart) getViewer().getSelectedEditParts().get(0);
+			Object model = editpart.getModel();
+			if (model instanceof PaletteTemplateEntry)
+				return ((PaletteTemplateEntry) model).getTemplate();
+			if (model instanceof CombinedTemplateCreationEntry)
+				return ((CombinedTemplateCreationEntry) model).getTemplate();
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/editparts/EditPartFactory.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/editparts/EditPartFactory.java
new file mode 100755
index 0000000..dcb2c5b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/editparts/EditPartFactory.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.page.editparts;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.palette.PaletteDrawer;
+import org.eclipse.gef.ui.palette.PaletteEditPartFactory;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class EditPartFactory extends PaletteEditPartFactory {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.gef.ui.palette.PaletteEditPartFactory#createDrawerEditPart
+	 * (org.eclipse.gef.EditPart, java.lang.Object)
+	 */
+	protected EditPart createDrawerEditPart(EditPart parentEditPart, Object model) {
+		return new PaletteDrawerEditPart((PaletteDrawer) model);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/editparts/PaletteDrawerEditPart.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/editparts/PaletteDrawerEditPart.java
new file mode 100755
index 0000000..e0782be
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/editparts/PaletteDrawerEditPart.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.page.editparts;
+
+import org.eclipse.draw2d.FocusEvent;
+import org.eclipse.draw2d.FocusListener;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.xwt.tools.ui.palette.page.editparts.figures.PaletteDrawerFigure;
+import org.eclipse.gef.internal.ui.palette.editparts.DrawerEditPart;
+import org.eclipse.gef.palette.PaletteDrawer;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+@SuppressWarnings("restriction")
+public class PaletteDrawerEditPart extends DrawerEditPart {
+
+	/**
+	 * @param drawer
+	 */
+	public PaletteDrawerEditPart(PaletteDrawer drawer) {
+		super(drawer);
+	}
+
+	public IFigure createFigure() {
+		if (getParent() instanceof PaletteDrawerEditPart) {
+			PaletteDrawerFigure fig = new PaletteDrawerFigure(getViewer().getControl());
+			fig.setExpanded(getDrawer().isInitiallyOpen());
+			fig.setPinned(getDrawer().isInitiallyPinned());
+			fig.getCollapseToggle().addFocusListener(new FocusListener.Stub() {
+				public void focusGained(FocusEvent fe) {
+					getViewer().select(PaletteDrawerEditPart.this);
+				}
+			});
+			return fig;
+		}
+		return super.createFigure();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/editparts/figures/PaletteDrawerFigure.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/editparts/figures/PaletteDrawerFigure.java
new file mode 100755
index 0000000..7aa736b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/editparts/figures/PaletteDrawerFigure.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.page.editparts.figures;
+
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.internal.ui.palette.editparts.DrawerFigure;
+import org.eclipse.swt.widgets.Control;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class PaletteDrawerFigure extends DrawerFigure {
+
+	private static final int X_OFFSET = 17;
+
+	/**
+	 * @param control
+	 */
+	public PaletteDrawerFigure(Control control) {
+		super(control);
+	}
+
+	public Rectangle getBounds() {
+		return new Rectangle(bounds.x + X_OFFSET, bounds.y, bounds.width, bounds.height);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/EntryContentProvider.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/EntryContentProvider.java
new file mode 100755
index 0000000..fcf5286
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/EntryContentProvider.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.page.resources;
+
+import java.util.ArrayList;
+
+import org.eclipse.xwt.tools.ui.palette.Entry;
+import org.eclipse.xwt.tools.ui.palette.Palette;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+
+/**
+ * entry content provider class (tree structure)
+ * 
+ * 
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class EntryContentProvider implements IPaletteContentProvider {
+
+	static Object[] EMPTY = new Object[0];
+
+	public Object[] getChildren(Object parent) {
+		EList<EObject> elements = null;
+		if (parent instanceof EObject) {
+			EObject object = (EObject) parent;
+			elements = object.eContents();
+		} else if (parent instanceof Resource) {
+			Resource resource = (Resource) parent;
+			EList<EObject> contents = resource.getContents();
+			if (contents.size() > 0) {
+				Object element = contents.get(0);
+				if (element instanceof Palette) {
+					Palette palette = (Palette) element;
+					elements = palette.eContents();
+				}
+			}
+		}
+
+		if (elements != null) {
+			ArrayList<EObject> arrayList = new ArrayList<EObject>();
+			for (EObject object : elements) {
+				if (object instanceof Entry) {
+					arrayList.add(object);
+				}
+			}
+			return arrayList.toArray();
+		}
+		return EMPTY;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/EntryLabelProvider.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/EntryLabelProvider.java
new file mode 100755
index 0000000..22b8086
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/EntryLabelProvider.java
@@ -0,0 +1,114 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.page.resources;
+
+import org.eclipse.xwt.tools.ui.palette.Entry;
+import org.eclipse.xwt.tools.ui.palette.tools.ImageTools;
+import org.eclipse.jface.resource.ImageDescriptor;
+
+/**
+ * entry label provider class (tree structure)
+ * 
+ * 
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class EntryLabelProvider implements IPaletteLabelProvider {
+
+	public String getSimpleName(Entry entry) {
+		String name = entry.getName();
+		if (name == null) {
+			return null;
+		}
+		int index = name.lastIndexOf('.');
+		if (index != -1) {
+			name = name.substring(index + 1);
+		}
+		return name;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.soyatec.tools.palette.page.resources.IPaletteLabelProvider#getContent
+	 * (java.lang.Object)
+	 */
+	public String getContent(Object obj) {
+		if (obj instanceof Entry) {
+			return ((Entry) obj).getContent();
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.soyatec.tools.palette.page.resources.IPaletteLabelProvider#getLargeIcon
+	 * (java.lang.Object)
+	 */
+	public ImageDescriptor getLargeIcon(Object obj) {
+		if (obj instanceof Entry) {
+			String largeIcon = ((Entry) obj).getLargeIcon();
+			if (largeIcon != null && largeIcon.trim().length() > 0) {
+				return ImageTools.getImageDescriptor(largeIcon);
+			}
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.soyatec.tools.palette.page.resources.IPaletteLabelProvider#getName
+	 * (java.lang.Object)
+	 */
+	public String getName(Object obj) {
+		if (obj instanceof Entry) {
+			return getSimpleName((Entry) obj);
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.soyatec.tools.palette.page.resources.IPaletteLabelProvider#getSmallIcon
+	 * (java.lang.Object)
+	 */
+	public ImageDescriptor getSmallIcon(Object obj) {
+		if (obj instanceof Entry) {
+			String icon = ((Entry) obj).getIcon();
+			if (icon != null && icon.trim().length() > 0) {
+				return ImageTools.getImageDescriptor(icon);
+			}
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.soyatec.tools.palette.page.resources.IPaletteLabelProvider#getTooltip
+	 * (java.lang.Object)
+	 */
+	public String getToolTip(Object obj) {
+		if (obj instanceof Entry) {
+			return ((Entry) obj).getToolTip();
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/EntryResourceProvider.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/EntryResourceProvider.java
new file mode 100755
index 0000000..a3c1381
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/EntryResourceProvider.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.page.resources;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public abstract class EntryResourceProvider implements IPaletteResourceProvider {
+
+	public IPaletteContentProvider getContentProvider() {
+		return new EntryContentProvider();
+	}
+
+	public IPaletteLabelProvider getLabelProvider() {
+		return new EntryLabelProvider();
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/ExtensionRegistry.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/ExtensionRegistry.java
new file mode 100755
index 0000000..d684fe1
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/ExtensionRegistry.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.page.resources;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.ui.IEditorPart;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ExtensionRegistry {
+	public static final String EXTENSION_ID = "org.eclipse.xwt.tools.ui.palette.resourceProvider";
+
+	public static final String PROVIDER = "provider";
+	public static final String RESOURCE = "resource";
+
+	public static final String EDITOR_ID = "editorId";
+	public static final String CLASS = "class";
+	public static final String URI = "uri";
+
+	private static List<IPaletteResourceProvider> registry = new ArrayList<IPaletteResourceProvider>();
+
+	public static List<IPaletteResourceProvider> allResourceExtensions(IEditorPart editorPart) {
+		String id = editorPart.getSite().getId();
+
+		List<IPaletteResourceProvider> providers = new ArrayList<IPaletteResourceProvider>();
+		IConfigurationElement[] configurationElements = Platform.getExtensionRegistry()
+				.getConfigurationElementsFor(EXTENSION_ID);
+		for (IConfigurationElement element : configurationElements) {
+			String editorId = element.getAttribute(EDITOR_ID);
+			if (id == null || id.equals(editorId)) {
+				if (PROVIDER.equals(element.getName())) {
+					try {
+						Object executable = element.createExecutableExtension(CLASS);
+						if (executable instanceof IPaletteResourceProvider) {
+							providers.add((IPaletteResourceProvider) executable);
+						}
+					} catch (CoreException e) {
+					}
+				} else if (RESOURCE.equals(element.getName())) {
+					String uri = element.getAttribute(URI);
+
+					String npId = element.getNamespaceIdentifier();
+
+					ResourceContentProvider provider = new ResourceContentProvider(uri, npId);
+					providers.add(provider);
+				}
+			}
+		}
+		providers.addAll(registry);
+		return providers;
+	}
+
+	public static void registerPaletteResourceProvider(IPaletteResourceProvider provider) {
+		registry.add(provider);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/IPaletteContentProvider.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/IPaletteContentProvider.java
new file mode 100755
index 0000000..06a52bf
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/IPaletteContentProvider.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.page.resources;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public interface IPaletteContentProvider {
+
+	Object[] getChildren(Object parent);
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/IPaletteLabelProvider.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/IPaletteLabelProvider.java
new file mode 100755
index 0000000..0488d65
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/IPaletteLabelProvider.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.page.resources;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public interface IPaletteLabelProvider {
+
+	ImageDescriptor getSmallIcon(Object obj);
+
+	ImageDescriptor getLargeIcon(Object obj);
+
+	String getToolTip(Object obj);
+
+	String getName(Object obj);
+
+	String getContent(Object obj);
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/IPaletteResourceProvider.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/IPaletteResourceProvider.java
new file mode 100755
index 0000000..a1e6877
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/IPaletteResourceProvider.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.page.resources;
+
+import org.eclipse.emf.ecore.resource.Resource;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public interface IPaletteResourceProvider {
+
+	Resource getPaletteResource();
+
+	IPaletteContentProvider getContentProvider();
+
+	IPaletteLabelProvider getLabelProvider();
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/ResourceContentProvider.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/ResourceContentProvider.java
new file mode 100755
index 0000000..c65532d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/ResourceContentProvider.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.page.resources;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+public class ResourceContentProvider implements IPaletteResourceProvider {
+	protected Resource resource;
+
+	public ResourceContentProvider(String resourceUri, String bundleId) {
+		ResourceSet resourceSet = new ResourceSetImpl();
+		URI uri = URI.createURI(resourceUri);
+		if (uri.isRelative()) {
+			uri = URI.createPlatformPluginURI("/" + bundleId + "/" + resourceUri, true);
+		}
+		resource = resourceSet.getResource(uri, true);
+	}
+
+	public Resource getPaletteResource() {
+		return resource;
+	}
+
+	public IPaletteContentProvider getContentProvider() {
+		return new EntryContentProvider();
+	}
+
+	public IPaletteLabelProvider getLabelProvider() {
+		return new EntryLabelProvider();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/URIResourceProvider.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/URIResourceProvider.java
new file mode 100755
index 0000000..96c6ef2
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/page/resources/URIResourceProvider.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.page.resources;
+
+import org.eclipse.xwt.tools.ui.palette.impl.PalettePackageImpl;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public abstract class URIResourceProvider extends EntryResourceProvider {
+	private Resource resource;
+
+	public Resource getPaletteResource() {
+		if (resource == null) {
+			URI input = getPaletteResourceURI();
+			if (input != null) {
+				resource = loadResource(input);
+			}
+		}
+		return resource;
+	}
+
+	private Resource loadResource(URI input) {
+		PalettePackageImpl.init();
+		ResourceSet rs = new ResourceSetImpl();
+		Resource result = rs.getResource(input, true);
+		return result;
+	}
+
+	protected abstract URI getPaletteResourceURI();
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/request/EntryCreationFactory.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/request/EntryCreationFactory.java
new file mode 100755
index 0000000..64b917e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/request/EntryCreationFactory.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.request;
+
+import org.eclipse.xwt.tools.ui.palette.Entry;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.gef.requests.CreationFactory;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class EntryCreationFactory implements CreationFactory {
+
+	private Entry entry;
+
+	/**
+	 * 
+	 */
+	public EntryCreationFactory(Entry entry) {
+		this.entry = entry;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.requests.CreationFactory#getNewObject()
+	 */
+	public Object getNewObject() {
+		return entry;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.requests.CreationFactory#getObjectType()
+	 */
+	public Object getObjectType() {
+		if (entry == null) {
+			return null;
+		}
+		EClass type = entry.getType();
+		if (type != null) {
+			return type;
+		}
+		return entry.getScope();
+	}
+
+	public Entry getEntry() {
+		return entry;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/root/PaletteDrawerEx.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/root/PaletteDrawerEx.java
new file mode 100755
index 0000000..a4e2495
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/root/PaletteDrawerEx.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.root;
+
+import org.eclipse.gef.palette.PaletteDrawer;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class PaletteDrawerEx extends PaletteDrawer {
+
+	/**
+	 * @param label
+	 */
+	public PaletteDrawerEx(String label) {
+		super(label);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.palette.PaletteDrawer#acceptsType(java.lang.Object)
+	 */
+	public boolean acceptsType(Object type) {
+		return true;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/root/PaletteRootFactory.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/root/PaletteRootFactory.java
new file mode 100755
index 0000000..f448976
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/root/PaletteRootFactory.java
@@ -0,0 +1,144 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.root;
+
+import java.util.Collection;
+
+import org.eclipse.xwt.tools.ui.palette.Entry;
+import org.eclipse.xwt.tools.ui.palette.page.resources.IPaletteContentProvider;
+import org.eclipse.xwt.tools.ui.palette.page.resources.IPaletteLabelProvider;
+import org.eclipse.xwt.tools.ui.palette.page.resources.IPaletteResourceProvider;
+import org.eclipse.xwt.tools.ui.palette.request.EntryCreationFactory;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gef.Tool;
+import org.eclipse.gef.palette.CombinedTemplateCreationEntry;
+import org.eclipse.gef.palette.MarqueeToolEntry;
+import org.eclipse.gef.palette.PaletteContainer;
+import org.eclipse.gef.palette.PaletteDrawer;
+import org.eclipse.gef.palette.PaletteGroup;
+import org.eclipse.gef.palette.PaletteRoot;
+import org.eclipse.gef.palette.SelectionToolEntry;
+import org.eclipse.gef.tools.AbstractTool;
+import org.eclipse.jface.resource.ImageDescriptor;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class PaletteRootFactory {
+
+	private Collection<IPaletteResourceProvider> resourceProviders;
+	private Class<? extends Tool> creationToolClass;
+	private Class<? extends Tool> selectionToolClass;
+
+	public PaletteRootFactory(Collection<IPaletteResourceProvider> resourceProviders,
+			Class<? extends Tool> creationToolClass, Class<? extends Tool> selectionToolClass) {
+		this.resourceProviders = resourceProviders;
+		this.creationToolClass = creationToolClass;
+		this.selectionToolClass = selectionToolClass;
+	}
+
+	public PaletteRoot createPaletteRoot() {
+		PaletteRoot palette = new PaletteRoot();
+		if (resourceProviders == null) {
+			return palette;
+		}
+		{// create selection group.
+			PaletteGroup paletteGroup = new PaletteGroup("Selection Group");
+
+			SelectionToolEntry selectionToolEntry = new SelectionToolEntry();
+			paletteGroup.add(selectionToolEntry);
+			if (selectionToolClass != null) {
+				selectionToolEntry.setToolClass(selectionToolClass);
+			}
+
+			MarqueeToolEntry marqueeToolEntry = new MarqueeToolEntry();
+			marqueeToolEntry.setToolProperty(AbstractTool.PROPERTY_UNLOAD_WHEN_FINISHED, true);
+			paletteGroup.add(marqueeToolEntry);
+
+			palette.add(paletteGroup);
+			palette.setDefaultEntry(selectionToolEntry);
+		}
+
+		for (IPaletteResourceProvider resourceProvider : resourceProviders) {
+			Resource resource = resourceProvider.getPaletteResource();
+			if (resource != null) {
+				PaletteContainer rootDrawer = createRootDrawer(resource, resourceProvider);
+				palette.addAll(rootDrawer.getChildren());
+			}
+		}
+		return palette;
+	}
+
+	private PaletteContainer createRootDrawer(Resource resource, IPaletteResourceProvider provider) {
+		PaletteDrawer rootDrawer = createPaletteDrawer("Root");
+		IPaletteContentProvider contentProvider = provider.getContentProvider();
+		IPaletteLabelProvider labelProvider = provider.getLabelProvider();
+		createPaletteStructure(rootDrawer, contentProvider, labelProvider, resource);
+		return rootDrawer;
+	}
+
+	private void createPaletteStructure(PaletteDrawer parent,
+			IPaletteContentProvider contentProvider, IPaletteLabelProvider labelProvider,
+			Object source) {
+		if (parent == null || contentProvider == null || labelProvider == null || source == null) {
+			return;
+		}
+		Object[] children = contentProvider.getChildren(source);
+		String name = labelProvider.getName(source);
+		String description = labelProvider.getToolTip(source);
+		ImageDescriptor iconSmall = labelProvider.getSmallIcon(source);
+		ImageDescriptor iconLarge = labelProvider.getLargeIcon(source);
+
+		if (name != null && source instanceof Entry) {
+			if (children.length == 0) {
+				EntryCreationFactory creationFactory = new EntryCreationFactory((Entry) source);
+				CombinedTemplateCreationEntry component = new CombinedTemplateCreationEntry(name,
+						description, source, creationFactory, iconSmall, iconLarge);
+				if (creationToolClass != null) {
+					component.setToolClass(creationToolClass);
+				}
+				parent.add(component);
+			} else {
+				PaletteDrawer groupDrawer = createPaletteDrawer(name);
+				groupDrawer.setSmallIcon(iconSmall);
+				groupDrawer.setLargeIcon(iconLarge);
+				groupDrawer.setDescription(description);
+				parent.add(groupDrawer);
+				groupDrawer.setParent(parent);
+				parent = groupDrawer;
+			}
+		}
+		// Create single one firstly.
+		for (Object child : children) {
+			Object[] childNodes = contentProvider.getChildren(child);
+			if (childNodes == null || childNodes.length == 0) {
+				createPaletteStructure(parent, contentProvider, labelProvider, child);
+			}
+		}
+		for (Object child : children) {
+			Object[] childNodes = contentProvider.getChildren(child);
+			if (childNodes != null && childNodes.length != 0) {
+				createPaletteStructure(parent, contentProvider, labelProvider, child);
+			}
+		}
+	}
+
+	/**
+	 * Create a default Drawer.
+	 */
+	private PaletteDrawer createPaletteDrawer(String name) {
+		PaletteDrawer componentsDrawer = new PaletteDrawerEx(name);
+		componentsDrawer.setInitialState(PaletteDrawer.INITIAL_STATE_CLOSED);
+		return componentsDrawer;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/EntryHelper.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/EntryHelper.java
new file mode 100755
index 0000000..3402823
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/EntryHelper.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.tools;
+
+import org.eclipse.xwt.tools.ui.palette.Entry;
+import org.eclipse.xwt.tools.ui.palette.Initializer;
+import org.eclipse.gef.requests.CreateRequest;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public class EntryHelper {
+
+	public static Object getNewObject(Entry entry) {
+		if (entry == null) {
+			return null;
+		}
+		Initializer initializer = entry.getInitializer();
+		if (initializer != null) {
+			return initializer.parse(entry);
+		}
+		return null;
+	}
+
+	public static Object getNewObject(CreateRequest createReq) {
+		if (createReq == null) {
+			return null;
+		}
+		Object newObject = createReq.getNewObject();
+		if (newObject instanceof Entry) {
+			Object creatingObj = getNewObject((Entry) newObject);
+			if (creatingObj != null) {
+				newObject = creatingObj;
+			}
+		}
+		return newObject;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/ImageTools.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/ImageTools.java
new file mode 100755
index 0000000..0d60982
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/ImageTools.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.tools;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ImageTools {
+
+	public static ImageDescriptor getImageDescriptor(String imagePath) {
+		if (imagePath == null) {
+			return null;
+		}
+		if (imagePath.startsWith("platform:/plugin/")) {
+			imagePath = imagePath.substring("platform:/plugin/".length());
+			int index = imagePath.indexOf("/");
+			if (index != -1) {
+				String pluginId = imagePath.substring(0, index);
+				imagePath = imagePath.substring(index + 1);
+				return AbstractUIPlugin.imageDescriptorFromPlugin(pluginId, imagePath);
+			}
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/PaletteCreateRequest.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/PaletteCreateRequest.java
new file mode 100755
index 0000000..c14b956
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/PaletteCreateRequest.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.tools;
+
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gef.requests.CreationFactory;
+
+public class PaletteCreateRequest extends CreateRequest {
+	public CreationFactory getFactory() {
+		return super.getFactory();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/PaletteCreationTool.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/PaletteCreationTool.java
new file mode 100755
index 0000000..a285c29
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/PaletteCreationTool.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.tools;
+
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gef.tools.CreationTool;
+
+/**
+ * @author Jin Liu(jin.liu@soyatec.com)
+ */
+public class PaletteCreationTool extends CreationTool {
+	@Override
+	protected Request createTargetRequest() {
+		CreateRequest request = new PaletteCreateRequest();
+		request.setFactory(getFactory());
+		return request;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/PaletteTools.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/PaletteTools.java
new file mode 100755
index 0000000..3e86422
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/tools/PaletteTools.java
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.tools;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.xwt.tools.ui.palette.page.CustomPalettePage;
+import org.eclipse.xwt.tools.ui.palette.page.CustomPaletteViewerProvider;
+import org.eclipse.xwt.tools.ui.palette.page.resources.ExtensionRegistry;
+import org.eclipse.xwt.tools.ui.palette.page.resources.IPaletteResourceProvider;
+import org.eclipse.xwt.tools.ui.palette.root.PaletteRootFactory;
+import org.eclipse.gef.DefaultEditDomain;
+import org.eclipse.gef.EditDomain;
+import org.eclipse.gef.Tool;
+import org.eclipse.gef.palette.PaletteRoot;
+import org.eclipse.ui.IEditorPart;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class PaletteTools {
+
+	public static CustomPalettePage createPalettePage(IEditorPart editorPart,
+			IPaletteResourceProvider resourceProvider, Class<? extends Tool> creationToolClass,
+			Class<? extends Tool> selectionToolClass) {
+		EditDomain editDomain = (EditDomain) editorPart.getAdapter(EditDomain.class);
+		if (editDomain == null) {
+			editDomain = new DefaultEditDomain(editorPart);
+		}
+		List<IPaletteResourceProvider> resourceProviders = ExtensionRegistry
+				.allResourceExtensions(editorPart);
+		if (resourceProvider != null) {
+			if (!resourceProviders.isEmpty()) {
+				resourceProviders.add(0, resourceProvider);
+			} else {
+				resourceProviders.add(resourceProvider);
+			}
+		}
+
+		PaletteRoot paletteRoot = createPaletteRoot(resourceProviders, creationToolClass,
+				selectionToolClass);
+		if (paletteRoot != null) {
+			editDomain.setPaletteRoot(paletteRoot);
+		}
+		CustomPaletteViewerProvider provider = new CustomPaletteViewerProvider(editDomain);
+		return new CustomPalettePage(provider);
+	}
+
+	private static PaletteRoot createPaletteRoot(
+			Collection<IPaletteResourceProvider> resourceProviders,
+			Class<? extends Tool> createToolClass, Class<? extends Tool> selectionToolClass) {
+		PaletteRootFactory factory = new PaletteRootFactory(resourceProviders, createToolClass,
+				selectionToolClass);
+		return factory.createPaletteRoot();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/util/PaletteAdapterFactory.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/util/PaletteAdapterFactory.java
new file mode 100755
index 0000000..713aedb
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/util/PaletteAdapterFactory.java
@@ -0,0 +1,178 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.util;
+
+import org.eclipse.xwt.tools.ui.palette.*;
+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;
+
+/**
+ * <!-- 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.xwt.tools.ui.palette.PalettePackage
+ * @generated
+ */
+public class PaletteAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static PalettePackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	public PaletteAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = PalettePackage.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 PaletteSwitch<Adapter> modelSwitch = new PaletteSwitch<Adapter>() {
+			@Override
+			public Adapter casePalette(Palette object) {
+				return createPaletteAdapter();
+			}
+			@Override
+			public Adapter caseEntry(Entry object) {
+				return createEntryAdapter();
+			}
+			@Override
+			public Adapter caseInitializer(Initializer object) {
+				return createInitializerAdapter();
+			}
+			@Override
+			public Adapter caseCompoundInitializer(CompoundInitializer object) {
+				return createCompoundInitializerAdapter();
+			}
+			@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.xwt.tools.ui.palette.Palette <em>Palette</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.xwt.tools.ui.palette.Palette
+	 * @generated
+	 */
+	public Adapter createPaletteAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '
+	 * {@link org.eclipse.xwt.tools.ui.palette.Entry <em>Entry</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.xwt.tools.ui.palette.Entry
+	 * @generated
+	 */
+	public Adapter createEntryAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.xwt.tools.ui.palette.Initializer <em>Initializer</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.xwt.tools.ui.palette.Initializer
+	 * @generated
+	 */
+	public Adapter createInitializerAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.xwt.tools.ui.palette.CompoundInitializer <em>Compound Initializer</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.xwt.tools.ui.palette.CompoundInitializer
+	 * @generated
+	 */
+	public Adapter createCompoundInitializerAdapter() {
+		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;
+	}
+
+} // PaletteAdapterFactory
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/util/PaletteSwitch.java b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/util/PaletteSwitch.java
new file mode 100755
index 0000000..596ec16
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/src/org/eclipse/xwt/tools/ui/palette/util/PaletteSwitch.java
@@ -0,0 +1,190 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.palette.util;
+
+import java.util.List;
+
+import org.eclipse.xwt.tools.ui.palette.*;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- 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.xwt.tools.ui.palette.PalettePackage
+ * @generated
+ */
+public class PaletteSwitch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static PalettePackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	public PaletteSwitch() {
+		if (modelPackage == null) {
+			modelPackage = PalettePackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * 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
+	 */
+	public T doSwitch(EObject theEObject) {
+		return doSwitch(theEObject.eClass(), theEObject);
+	}
+
+	/**
+	 * 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
+	 */
+	protected T doSwitch(EClass theEClass, EObject theEObject) {
+		if (theEClass.eContainer() == modelPackage) {
+			return doSwitch(theEClass.getClassifierID(), theEObject);
+		}
+		else {
+			List<EClass> eSuperTypes = theEClass.getESuperTypes();
+			return
+				eSuperTypes.isEmpty() ?
+					defaultCase(theEObject) :
+					doSwitch(eSuperTypes.get(0), theEObject);
+		}
+	}
+
+	/**
+	 * 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
+	 */
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case PalettePackage.PALETTE: {
+				Palette palette = (Palette)theEObject;
+				T result = casePalette(palette);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case PalettePackage.ENTRY: {
+				Entry entry = (Entry)theEObject;
+				T result = caseEntry(entry);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case PalettePackage.INITIALIZER: {
+				Initializer initializer = (Initializer)theEObject;
+				T result = caseInitializer(initializer);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case PalettePackage.COMPOUND_INITIALIZER: {
+				CompoundInitializer compoundInitializer = (CompoundInitializer)theEObject;
+				T result = caseCompoundInitializer(compoundInitializer);
+				if (result == null) result = caseInitializer(compoundInitializer);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Palette</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>Palette</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T casePalette(Palette object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Entry</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>Entry</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseEntry(Entry object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Initializer</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>Initializer</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseInitializer(Initializer object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Compound Initializer</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>Compound Initializer</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseCompoundInitializer(CompoundInitializer 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
+	 */
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} // PaletteSwitch
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/templates/Header.javajetinc b/plugins/org.eclipse.xwt.tools.ui.palette/templates/Header.javajetinc
new file mode 100755
index 0000000..72b80c2
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/templates/Header.javajetinc
@@ -0,0 +1,12 @@
+/*******************************************************************************
+ * Copyright (c) 2006-2020 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
diff --git a/plugins/org.eclipse.xwt.tools.ui.palette/templates/emf-merge.xml b/plugins/org.eclipse.xwt.tools.ui.palette/templates/emf-merge.xml
new file mode 100755
index 0000000..c9119e4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.palette/templates/emf-merge.xml
@@ -0,0 +1,258 @@
+<?xml version="1.0" encoding="UTF-8"?<!--
+    Copyright (c) 2010 IBM Corporation and others.
+    All rights reserved. This program and the accompanying materials
+    are made available under the terms of the Eclipse Public License 2.0
+    which accompanies this distribution, and is available at
+    https://www.eclipse.org/legal/epl-2.0/
+
+    SPDX-License-Identifier: EPL-2.0
+   
+    Contributors:
+        IBM Corporation - initial API and implementation
+ -->
+><!--
+    Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+    All rights reserved. This program and the accompanying materials
+    are made available under the terms of the Eclipse Public License 2.0
+    which accompanies this distribution, and is available at
+    https://www.eclipse.org/legal/epl-2.0/
+
+    SPDX-License-Identifier: EPL-2.0
+   
+    Contributors:
+        Soyatec - initial API and implementation
+ -->
+
+<merge:options 
+  indent="  "  
+  braceStyle="matching"  
+  redirect="Gen"
+  block="\s*@\s*generated\s*NOT\s*(?:\n\r?|\r\n?)"
+  noImport="\s*//\s*import\s+([\w.*]*)\s*;\s*(?:\n\r?|\r\n?)"
+  xmlns:merge="http://www.eclipse.org/org/eclipse/emf/codegen/jmerge/Options">
+
+<!-- Tabbed Standard
+
+  indent="&#x9;"  
+  braceStyle="standard"  
+
+-->
+
+  <!-- this accepts both new and old style markup. -->
+
+  <merge:dictionaryPattern
+    name="modelMembers" 
+    select="Member/getComment" 
+    match="@\s*(model)"/>
+
+  <merge:dictionaryPattern
+    name="generatedUnmodifiableMembers" 
+    select="Member/getComment" 
+    match="@\s*(gen)erated\s*(This field/method[^(?:\n\r?|\r\n?)]*)*(?:\n\r?|\r\n?)"/>
+
+  <merge:dictionaryPattern
+    name="generatedModifiableMembers" 
+    select="Member/getComment" 
+    match="@\s*generated\s*(modifiable)\s*(?:\n\r?|\r\n?)"/>
+
+  <!-- This is like the above, but for backward compatibility -->
+  <merge:dictionaryPattern
+    name="generatedLastGenMembers" 
+    select="Member/getComment" 
+    match="@\s*(lastgen).*(?:\n\r?|\r\n?)"/>
+
+  <merge:dictionaryPattern
+    name="orderedMembers" 
+    select="Member/getComment" 
+    match="@\s*(ordered)\s*(?:\n\r?|\r\n?)"/>
+
+  <!-- Only push Annotations for the Members marked by gen-->
+  <merge:push targetParentMarkup="^gen$" select="Annotation"/>
+
+  <merge:pull 
+    sourceMarkup="^modifiable$"
+    sourceGet="Member/getComment"
+    sourceTransfer="(\s*&lt;!--\s*begin-user-doc.*?end-user-doc\s*-->\s*)(?:\n\r?|\r\n?)"
+    targetMarkup="^modifiable$"
+    targetPut="Member/setComment"/>
+  <merge:pull 
+    sourceMarkup="^gen$"
+    sourceGet="Member/getComment"
+    sourceTransfer="(\s*&lt;!--\s*begin-user-doc.*?end-user-doc\s*-->\s*)(?:\n\r?|\r\n?)"
+    targetMarkup="^gen$"
+    targetPut="Member/setComment"/>
+  <merge:pull 
+    sourceGet="Member/getFlags"
+    targetMarkup="^gen$"
+    equals="Member/getName"
+    targetPut="Member/setFlags"/>
+
+  <merge:pull 
+    sourceMarkup="^gen$"
+    sourceGet="AbstractType/getComment"
+    sourceTransfer="(\s*&lt;!--\s*begin-user-doc.*?end-user-doc\s*-->\s*)(?:\n\r?|\r\n?)"
+    targetMarkup="^modifiable$"
+    targetPut="AbstractType/setComment"/>
+
+  <merge:pull 
+    sourceGet="Type/getTypeParameters"
+    targetMarkup="^lastgen$|^gen$|^modifiable$|^model$"
+    targetPut="Type/setTypeParameters"/>
+  <merge:pull 
+    sourceGet="Type/getSuperclass"
+    targetMarkup="^lastgen$|^gen$|^modifiable$|^model$"
+    targetPut="Type/setSuperclass"/>
+  <merge:pull 
+    sourceGet="Type/getSuperInterfaces"
+    sourceTransfer="(\s*@\s*extends|\s*@\s*implements)(.*?)(?:&lt;!--|(?:\n\r?|\r\n?))"
+    targetMarkup="^lastgen$|^gen$|^modifiable$|^model$"
+    targetPut="Type/addSuperInterface"/>
+
+  <merge:pull 
+    sourceGet="Enum/getSuperInterfaces"
+    sourceTransfer="(\s*@\s*extends|\s*@\s*implements)(.*?)(?:&lt;!--|(?:\n\r?|\r\n?))"
+    targetMarkup="^lastgen$|^gen$|^modifiable$|^model$"
+    targetPut="Enum/addSuperInterface"/>
+
+  <merge:pull 
+    sourceGet="EnumConstant/getArguments"
+    targetMarkup="^lastgen$|^gen$|^modifiable$|^model$"
+    targetPut="EnumConstant/setArguments"/>
+  <merge:pull 
+    sourceGet="EnumConstant/getBody"
+    targetMarkup="^lastgen$|^gen$|^modifiable$|^model$$"
+    targetPut="EnumConstant/setBody"/>
+
+  <merge:pull 
+    sourceGet="AnnotationTypeMember/getType"
+    targetMarkup="^gen$"
+    targetPut="AnnotationTypeMember/setType"/>
+  <merge:pull 
+    sourceGet="AnnotationTypeMember/getDefaultValue"
+    targetMarkup="^gen$"
+    targetPut="AnnotationTypeMember/setDefaultValue"/>
+
+  <merge:pull 
+    sourceGet="Initializer/getBody"
+    targetMarkup="^gen$"
+    targetPut="Initializer/setBody"/>
+
+  <merge:pull 
+    sourceGet="Field/getType"
+    targetMarkup="^gen$"
+    targetPut="Field/setType"/>
+  <merge:pull 
+    sourceGet="Field/getInitializer"
+    targetMarkup="^gen$"
+    targetPut="Field/setInitializer"/>
+
+  <merge:pull 
+    sourceGet="Method/getTypeParameters"
+    targetMarkup="^gen$"
+    targetPut="Method/setTypeParameters"/>
+  <merge:pull 
+    sourceGet="Method/getReturnType"
+    targetMarkup="^gen$|^model$"
+    targetPut="Method/setReturnType"/>
+  <merge:pull 
+    sourceGet="Method/getParameters"
+    targetMarkup="^gen$"
+    targetPut="Method/setParameters"/>
+  <merge:pull 
+    sourceGet="Method/getBody"
+    targetMarkup="^gen$"
+    targetPut="Method/setBody"/>
+  <merge:pull 
+    sourceGet="Method/getExceptions"
+    targetMarkup="^gen$"
+    targetPut="Method/addException"/>
+
+  <merge:sweep markup="^gen$" select="Member"/>
+  <merge:sweep markup="^org.eclipse.emf.ecore.EMetaObject$" select="Import"/>
+  <merge:sweep markup="^org.eclipse.emf.ecore.impl.EMetaObjectImpl$" select="Import"/>
+  <merge:sweep markup="^org.eclipse.emf.ecore.util.EObjectCompositeEList$" select="Import"/>
+  <merge:sweep markup="^org.eclipse.emf.ecore.util.EObjectCompositeWithInverseEList$" select="Import"/>
+  <merge:sweep markup="^org.eclipse.emf.common.util.AbstractEnumerator$" select="Import"/>
+
+  <merge:sort markup="^ordered$" select="Field"/>
+  <merge:sort markup="^ordered$" select="EnumConstant"/>
+
+<!--Generate Header always.-->
+  <merge:pull 
+      sourceGet="CompilationUnit/getHeader"
+      targetPut="CompilationUnit/setHeader"/>
+<!-- Basic Rules
+
+
+    <merge:pull 
+      sourceGet="Package/getName"
+      targetPut="Package/setName"/>
+
+    <merge:pull 
+      sourceGet="Member/getFlags"
+      targetPut="Member/setFlags"/>
+    <merge:pull 
+      sourceGet="Member/getComment"
+      targetPut="Member/setComment"/>
+
+    <merge:pull 
+      sourceGet="Type/getSuperclass"
+      targetPut="Type/setSuperclass"/>
+    <merge:pull 
+      sourceGet="Type/getSuperInterfaces"
+      targetPut="Type/addSuperInterface"/>
+
+    <merge:pull 
+      sourceGet="Initializer/getBody"
+      targetPut="Initializer/setBody"/>
+
+    <merge:pull 
+      sourceGet="Field/getType"
+      targetPut="Field/setType"/>
+    <merge:pull 
+      sourceGet="Field/getInitializer"
+      targetPut="Field/setInitializer"/>
+
+    <merge:pull 
+      sourceGet="Method/getBody"
+      targetPut="Method/setBody"/>
+    <merge:pull 
+      sourceGet="Method/getReturnType"
+      targetPut="Method/setReturnType"/>
+    <merge:pull 
+      sourceGet="Method/getExceptions"
+      targetPut="Method/addException"/>
+-->
+
+<!-- Push Enum Constants only for generated Enums -->
+<!-- 
+  <merge:push targetParentMarkup="^gen$" select="EnumConstant"/>
+-->
+
+<!-- Push Annotation Type Members only for generated Annotation Types -->
+<!--
+  <merge:push targetParentMarkup="^gen$" select="AnnotationTypeMember"/>
+-->
+
+<!-- Sets the content of annotations if the parent is marked with gen --> 
+<!--
+    <merge:pull 
+      sourceGet="Annotation/getContents"
+      targetParentMarkup="^gen$"
+      targetPut="Annotation/setContents"/>
+-->      
+
+<!-- Remove annotations of generated target nodes if the annotation is not in the source -->
+<!--
+  <merge:sweep parentMarkup="^gen$" select="Annotation"/>
+-->    
+
+<!-- 
+    <merge:pull 
+      sourceMarkup="^modifiable$"
+      sourceGet="Member/getComment"
+      targetMarkup="^gen$"
+      targetPut="Member/setComment"/>
+-->
+
+</merge:options>
diff --git a/org.eclipse.xwt.tools.ui.palette/text/description.txt b/plugins/org.eclipse.xwt.tools.ui.palette/text/description.txt
similarity index 100%
rename from org.eclipse.xwt.tools.ui.palette/text/description.txt
rename to plugins/org.eclipse.xwt.tools.ui.palette/text/description.txt
diff --git a/org.eclipse.xwt.tools.ui.vex/.classpath b/plugins/org.eclipse.xwt.tools.ui.vex/.classpath
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/.classpath
rename to plugins/org.eclipse.xwt.tools.ui.vex/.classpath
diff --git a/org.eclipse.xwt.tools.ui.vex/.gitignore b/plugins/org.eclipse.xwt.tools.ui.vex/.gitignore
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/.gitignore
rename to plugins/org.eclipse.xwt.tools.ui.vex/.gitignore
diff --git a/org.eclipse.xwt.tools.ui.vex/.project b/plugins/org.eclipse.xwt.tools.ui.vex/.project
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/.project
rename to plugins/org.eclipse.xwt.tools.ui.vex/.project
diff --git a/org.eclipse.xwt.tools.ui.vex/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.xwt.tools.ui.vex/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/.settings/org.eclipse.jdt.core.prefs
rename to plugins/org.eclipse.xwt.tools.ui.vex/.settings/org.eclipse.jdt.core.prefs
diff --git a/org.eclipse.xwt.tools.ui.vex/META-INF/MANIFEST.MF b/plugins/org.eclipse.xwt.tools.ui.vex/META-INF/MANIFEST.MF
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/META-INF/MANIFEST.MF
rename to plugins/org.eclipse.xwt.tools.ui.vex/META-INF/MANIFEST.MF
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/build.properties b/plugins/org.eclipse.xwt.tools.ui.vex/build.properties
new file mode 100755
index 0000000..3f804c3
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/build.properties
@@ -0,0 +1,29 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+
+# <copyright>
+# </copyright>
+#
+# $Id: build.properties,v 1.3 2010/06/22 13:55:41 obesedin Exp $
+
+bin.includes = .,\
+               src/model/,\
+               META-INF/,\
+               plugin.xml,\
+               plugin.properties,\
+               icons/,\
+               os/
+jars.compile.order = .
+source.. = src/
+output.. = bin/
+src.includes = schema/
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Border.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Border.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Border.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Border.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Busy.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Busy.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Busy.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Busy.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Button.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Button.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Button.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Button.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Calendar.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Calendar.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Calendar.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Calendar.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Canvas.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Canvas.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Canvas.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Canvas.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/CanvasInk.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/CanvasInk.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/CanvasInk.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/CanvasInk.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/CheckBox.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/CheckBox.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/CheckBox.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/CheckBox.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ColumnDefinitions.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ColumnDefinitions.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ColumnDefinitions.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ColumnDefinitions.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ComboBox.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ComboBox.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ComboBox.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ComboBox.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ComboBoxItem.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ComboBoxItem.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ComboBoxItem.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ComboBoxItem.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ContentControl.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ContentControl.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ContentControl.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ContentControl.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ContentControl.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ContentControl.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ContentControl.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ContentControl.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ContentPresenter.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ContentPresenter.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ContentPresenter.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ContentPresenter.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/DataGrid.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/DataGrid.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/DataGrid.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/DataGrid.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/DatePicker.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/DatePicker.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/DatePicker.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/DatePicker.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/DatePickerTextBox.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/DatePickerTextBox.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/DatePickerTextBox.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/DatePickerTextBox.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/DockPanel.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/DockPanel.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/DockPanel.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/DockPanel.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/DocumentViewer.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/DocumentViewer.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/DocumentViewer.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/DocumentViewer.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Element.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Element.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Element.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Element.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Ellipse.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Ellipse.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Ellipse.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Ellipse.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Expander.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Expander.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Expander.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Expander.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Folder.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Folder.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Folder.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Folder.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/FolderContainer.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/FolderContainer.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/FolderContainer.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/FolderContainer.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/FolderControls.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/FolderControls.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/FolderControls.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/FolderControls.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/FolderControls1.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/FolderControls1.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/FolderControls1.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/FolderControls1.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/FolderShape.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/FolderShape.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/FolderShape.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/FolderShape.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/FolderToolKit.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/FolderToolKit.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/FolderToolKit.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/FolderToolKit.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Frame.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Frame.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Frame.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Frame.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Grid.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Grid.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Grid.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Grid.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/GridSplitter.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/GridSplitter.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/GridSplitter.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/GridSplitter.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/GroupBox.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/GroupBox.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/GroupBox.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/GroupBox.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/GroupBox.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/GroupBox.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/GroupBox.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/GroupBox.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/HyperlinkButton.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/HyperlinkButton.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/HyperlinkButton.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/HyperlinkButton.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Image.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Image.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Image.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Image.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/InkPresenter.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/InkPresenter.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/InkPresenter.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/InkPresenter.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ItemsControl.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ItemsControl.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ItemsControl.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ItemsControl.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Label.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Label.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Label.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Label.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Line.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Line.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Line.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Line.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ListBox.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ListBox.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ListBox.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ListBox.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ListBox.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ListBox.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ListBox.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ListBox.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ListBoxItem.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ListBoxItem.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ListBoxItem.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ListBoxItem.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ListView.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ListView.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ListView.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ListView.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/MediaElement.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/MediaElement.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/MediaElement.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/MediaElement.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Menu.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Menu.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Menu.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Menu.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/MultiScaleImage.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/MultiScaleImage.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/MultiScaleImage.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/MultiScaleImage.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/PasswordBox.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/PasswordBox.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/PasswordBox.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/PasswordBox.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/PasswordBox1.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/PasswordBox1.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/PasswordBox1.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/PasswordBox1.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Path.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Path.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Path.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Path.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Polygon.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Polygon.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Polygon.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Polygon.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Polyline.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Polyline.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Polyline.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Polyline.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Popup.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Popup.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Popup.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Popup.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ProgressBar.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ProgressBar.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ProgressBar.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ProgressBar.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/RadioButton.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/RadioButton.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/RadioButton.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/RadioButton.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Rectangle.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Rectangle.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Rectangle.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Rectangle.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/RepeatButton.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/RepeatButton.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/RepeatButton.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/RepeatButton.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/RichTextBox.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/RichTextBox.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/RichTextBox.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/RichTextBox.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/RowDefinitions.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/RowDefinitions.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/RowDefinitions.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/RowDefinitions.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ScrollBar.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ScrollBar.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ScrollBar.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ScrollBar.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ScrollContentPresenter.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ScrollContentPresenter.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ScrollContentPresenter.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ScrollContentPresenter.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ScrollViewer.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ScrollViewer.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ScrollViewer.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ScrollViewer.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Separator.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Separator.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Separator.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Separator.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Slider.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Slider.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Slider.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Slider.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/StackPanel.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/StackPanel.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/StackPanel.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/StackPanel.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/StatusBar.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/StatusBar.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/StatusBar.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/StatusBar.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TabControl.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TabControl.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TabControl.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TabControl.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TabItem.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TabItem.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TabItem.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TabItem.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TabPanel.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TabPanel.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TabPanel.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TabPanel.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Table.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Table.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Table.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Table.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TextBlock.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TextBlock.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TextBlock.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TextBlock.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TextBlock.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TextBlock.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TextBlock.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TextBlock.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TextBox.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TextBox.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TextBox.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TextBox.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TextBox.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TextBox.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TextBox.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TextBox.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Thumb.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Thumb.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Thumb.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Thumb.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ToggleButton.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ToggleButton.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ToggleButton.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ToggleButton.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ToolBar.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ToolBar.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ToolBar.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ToolBar.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ToolBar.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ToolBar.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ToolBar.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ToolBar.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ToolBarPanel.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ToolBarPanel.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ToolBarPanel.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ToolBarPanel.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ToolBarTray.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ToolBarTray.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ToolBarTray.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ToolBarTray.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ToolKit.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ToolKit.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ToolKit.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ToolKit.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ToolTip.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ToolTip.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ToolTip.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/ToolTip.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TreeView.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TreeView.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TreeView.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/TreeView.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/UniformGrid.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/UniformGrid.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/UniformGrid.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/UniformGrid.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/UserControl.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/UserControl.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/UserControl.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/UserControl.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Viewbox.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Viewbox.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Viewbox.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/Viewbox.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/WindowsFomrsHost.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/WindowsFomrsHost.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/WindowsFomrsHost.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/WindowsFomrsHost.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/WrapPanel.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/WrapPanel.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/WrapPanel.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/WrapPanel.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/add_tool.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/add_tool.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/add_tool.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/add_tool.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/containers.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/containers.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/containers.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/containers.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/controls.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/controls.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/controls.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/controls.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/custom_palette.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/custom_palette.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/custom_palette.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/custom_palette.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/delete.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/delete.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/delete.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/delete.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/eFace16.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/eFace16.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/eFace16.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/eFace16.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/eclipse_icon.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/eclipse_icon.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/eclipse_icon.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/eclipse_icon.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/hide1.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/hide1.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/hide1.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/hide1.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/hide2.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/hide2.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/hide2.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/hide2.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/hide3.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/hide3.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj16/hide3.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj16/hide3.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/Button.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/Button.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj32/Button.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/Button.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/Canvas.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/Canvas.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj32/Canvas.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/Canvas.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/ComboBox.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/ComboBox.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj32/ComboBox.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/ComboBox.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/ComboBoxItem.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/ComboBoxItem.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj32/ComboBoxItem.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/ComboBoxItem.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/ContentControl.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/ContentControl.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj32/ContentControl.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/ContentControl.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/ContentPresenter.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/ContentPresenter.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj32/ContentPresenter.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/ContentPresenter.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/HyperlinkButton.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/HyperlinkButton.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj32/HyperlinkButton.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/HyperlinkButton.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/ItemsControl.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/ItemsControl.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj32/ItemsControl.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/ItemsControl.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/PasswordBox.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/PasswordBox.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj32/PasswordBox.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/PasswordBox.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/Path.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/Path.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj32/Path.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/Path.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/Polyline.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/Polyline.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj32/Polyline.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/Polyline.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/Popup.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/Popup.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj32/Popup.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/Popup.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/RepeatButton.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/RepeatButton.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj32/RepeatButton.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/RepeatButton.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/Scale.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/Scale.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj32/Scale.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/Scale.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/ScrollBar.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/ScrollBar.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj32/ScrollBar.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/ScrollBar.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/TextBlock.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/TextBlock.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj32/TextBlock.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/TextBlock.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/TextBox.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/TextBox.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj32/TextBox.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/TextBox.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/ToggleButton.png b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/ToggleButton.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj32/ToggleButton.png
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/ToggleButton.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/UserControl.gif b/plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/UserControl.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/icons/full/obj32/UserControl.gif
rename to plugins/org.eclipse.xwt.tools.ui.vex/icons/full/obj32/UserControl.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/os/linux/ia64/libswt-gtk-print.so b/plugins/org.eclipse.xwt.tools.ui.vex/os/linux/ia64/libswt-gtk-print.so
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/os/linux/ia64/libswt-gtk-print.so
rename to plugins/org.eclipse.xwt.tools.ui.vex/os/linux/ia64/libswt-gtk-print.so
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/os/linux/ppc/libswt-gtk-print.so b/plugins/org.eclipse.xwt.tools.ui.vex/os/linux/ppc/libswt-gtk-print.so
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/os/linux/ppc/libswt-gtk-print.so
rename to plugins/org.eclipse.xwt.tools.ui.vex/os/linux/ppc/libswt-gtk-print.so
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/os/linux/x86/libswt-gtk-print.so b/plugins/org.eclipse.xwt.tools.ui.vex/os/linux/x86/libswt-gtk-print.so
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/os/linux/x86/libswt-gtk-print.so
rename to plugins/org.eclipse.xwt.tools.ui.vex/os/linux/x86/libswt-gtk-print.so
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/os/linux/x86_64/libswt-gtk-print.so b/plugins/org.eclipse.xwt.tools.ui.vex/os/linux/x86_64/libswt-gtk-print.so
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/os/linux/x86_64/libswt-gtk-print.so
rename to plugins/org.eclipse.xwt.tools.ui.vex/os/linux/x86_64/libswt-gtk-print.so
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/os/macosx/ppc/libswt-carbon-print.jnilib b/plugins/org.eclipse.xwt.tools.ui.vex/os/macosx/ppc/libswt-carbon-print.jnilib
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/os/macosx/ppc/libswt-carbon-print.jnilib
rename to plugins/org.eclipse.xwt.tools.ui.vex/os/macosx/ppc/libswt-carbon-print.jnilib
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.vex/os/macosx/x86/libswt-carbon-print.jnilib b/plugins/org.eclipse.xwt.tools.ui.vex/os/macosx/x86/libswt-carbon-print.jnilib
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/os/macosx/x86/libswt-carbon-print.jnilib
rename to plugins/org.eclipse.xwt.tools.ui.vex/os/macosx/x86/libswt-carbon-print.jnilib
Binary files differ
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/plugin.properties b/plugins/org.eclipse.xwt.tools.ui.vex/plugin.properties
new file mode 100755
index 0000000..bc31778
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/plugin.properties
@@ -0,0 +1,28 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+# /*******************************************************************************
+#  * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+#  * All rights reserved. This program and the accompanying materials
+#  * are made available under the terms of the Eclipse Public License 2.0
+#  * which accompanies this distribution, and is available at
+  * https://www.eclipse.org/legal/epl-2.0/
+  *
+  * SPDX-License-Identifier: EPL-2.0
+#  * 
+#  * Contributors:
+#  *     Soyatec - initial API and implementation
+#  *******************************************************************************/
+Bundle-Vendor.0 = Eclipse.org
+Bundle-Name.0 = VisualEditor for XML UI (Incubation)
+pluginName = VEX
+providerName = www.eclipse.org
diff --git a/org.eclipse.xwt.tools.ui.vex/plugin.xml b/plugins/org.eclipse.xwt.tools.ui.vex/plugin.xml
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/plugin.xml
rename to plugins/org.eclipse.xwt.tools.ui.vex/plugin.xml
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/pom.xml b/plugins/org.eclipse.xwt.tools.ui.vex/pom.xml
new file mode 100755
index 0000000..e5654f9
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-plugins</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt.tools.ui.vex</artifactId>
+	<version>0.10.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.vex/schema/customPalette.exsd b/plugins/org.eclipse.xwt.tools.ui.vex/schema/customPalette.exsd
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/schema/customPalette.exsd
rename to plugins/org.eclipse.xwt.tools.ui.vex/schema/customPalette.exsd
diff --git a/org.eclipse.xwt.tools.ui.vex/schema/paletteContentProvider.exsd b/plugins/org.eclipse.xwt.tools.ui.vex/schema/paletteContentProvider.exsd
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/schema/paletteContentProvider.exsd
rename to plugins/org.eclipse.xwt.tools.ui.vex/schema/paletteContentProvider.exsd
diff --git a/org.eclipse.xwt.tools.ui.vex/schema/palettePath.exsd b/plugins/org.eclipse.xwt.tools.ui.vex/schema/palettePath.exsd
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/schema/palettePath.exsd
rename to plugins/org.eclipse.xwt.tools.ui.vex/schema/palettePath.exsd
diff --git a/org.eclipse.xwt.tools.ui.vex/schema/problemChecker.exsd b/plugins/org.eclipse.xwt.tools.ui.vex/schema/problemChecker.exsd
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/schema/problemChecker.exsd
rename to plugins/org.eclipse.xwt.tools.ui.vex/schema/problemChecker.exsd
diff --git a/org.eclipse.xwt.tools.ui.vex/schema/render.exsd b/plugins/org.eclipse.xwt.tools.ui.vex/schema/render.exsd
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/schema/render.exsd
rename to plugins/org.eclipse.xwt.tools.ui.vex/schema/render.exsd
diff --git a/org.eclipse.xwt.tools.ui.vex/src/model/toolpalette.ecore b/plugins/org.eclipse.xwt.tools.ui.vex/src/model/toolpalette.ecore
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/src/model/toolpalette.ecore
rename to plugins/org.eclipse.xwt.tools.ui.vex/src/model/toolpalette.ecore
diff --git a/org.eclipse.xwt.tools.ui.vex/src/model/toolpalette.genmodel b/plugins/org.eclipse.xwt.tools.ui.vex/src/model/toolpalette.genmodel
similarity index 100%
rename from org.eclipse.xwt.tools.ui.vex/src/model/toolpalette.genmodel
rename to plugins/org.eclipse.xwt.tools.ui.vex/src/model/toolpalette.genmodel
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
new file mode 100755
index 0000000..e0884e9
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/ImageCapture.java
@@ -0,0 +1,123 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*
+ *  $RCSfile: ImageCapture.java,v $
+ *  $Revision: 1.6 $  $Date: 2010/06/18 00:17:02 $ 
+ */
+package org.eclipse.ve.internal.swt.targetvm.macosx;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Device;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+
+/**
+ * Image Capture for Mac OS X platforms.
+ * 
+ * @since 1.2.0
+ */
+
+public class ImageCapture extends org.eclipse.xwt.vex.swt.ImageCapture {
+
+	private static Field shellHandleField = null;
+	private static Method HIViewGetRootMethod = null;
+	private static Method carbon_newMethod = null;
+
+	static {
+
+		System.loadLibrary("swt-carbon-print"); //$NON-NLS-1$
+
+		try {
+			shellHandleField = Shell.class.getDeclaredField("shellHandle"); //$NON-NLS-1$
+			shellHandleField.setAccessible(true);
+
+			Class<?> osClass = Class.forName("org.eclipse.swt.internal.carbon.OS"); //$NON-NLS-1$
+			HIViewGetRootMethod = osClass.getMethod("HIViewGetRoot", new Class[] { int.class }); //$NON-NLS-1$
+
+			carbon_newMethod = Image.class.getMethod("carbon_new", new Class[] { Device.class, int.class, int.class, int.class }); //$NON-NLS-1$
+
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	private native int captureImage(int controlHandle, int shellHandle);
+
+	protected Image getImage(Control control, int maxWidth, int maxHeight, boolean includeChildren) {
+
+		Rectangle rect = control.getBounds();
+		if (rect.width <= 0 || rect.height <= 0)
+			return null;
+
+		int width = Math.min(rect.width, maxWidth);
+		int height = Math.min(rect.height, maxHeight);
+
+		Image image = null;
+
+		int controlHandle = -1;
+		int shellHandle = -1;
+
+		try {
+			if (control instanceof Shell) {
+				shellHandle = shellHandleField.getInt(control);
+				if (shellHandle != -1) {
+					Integer result = (Integer) HIViewGetRootMethod.invoke(null, new Object[] { new Integer(shellHandle) });
+					if (result != null) {
+						controlHandle = result.intValue();
+					}
+				}
+			} else {
+				controlHandle = getIntHandle(control);
+				shellHandle = shellHandleField.getInt(control.getShell());
+			}
+
+			int imageHandle = captureImage(controlHandle, shellHandle);
+
+			if (imageHandle != 0) {
+				// Create a temporary image using the captured image's handle
+				Image tempImage = (Image) carbon_newMethod.invoke(null, new Object[] { control.getDisplay(), new Integer(SWT.BITMAP), new Integer(imageHandle), new Integer(0) });
+				// image = Image.carbon_new(control.getDisplay(), SWT.BITMAP, imageHandle, 0);
+
+				// Create the result image
+				image = new Image(control.getDisplay(), width, height);
+
+				// Manually copy because the image's data handle isn't available
+				GC gc = new GC(tempImage);
+				gc.copyArea(image, 0, 0);
+				gc.dispose();
+
+				// Dispose of the temporary image allocated in the native call
+				tempImage.dispose();
+			}
+
+		} catch (IllegalArgumentException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (IllegalAccessException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (InvocationTargetException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+
+		return image;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/cocoa/ImageCapture.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/cocoa/ImageCapture.java
new file mode 100755
index 0000000..b6e8346
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/ve/internal/swt/targetvm/macosx/cocoa/ImageCapture.java
@@ -0,0 +1,147 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation with help of Kevin Barnes 
+ *               <krbarnes@ca.ibm.com>
+ *******************************************************************************/
+package org.eclipse.ve.internal.swt.targetvm.macosx.cocoa;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+
+/**
+ * Support of Mac Cocoa API
+ * 
+ * @author yyang <yves.yang@soyatec.com>
+ * @author Kevin Barnes <krbarnes@ca.ibm.com>
+ */
+public class ImageCapture extends org.eclipse.xwt.vex.swt.ImageCapture {
+	static Field GC_handle;
+	static Field Control_view;
+	static Method NSView_superview;
+	static Method NSObject_isEqual;
+	static Method NSView_bounds;
+	static Method NSGraphicsContext_saveGraphicsState;
+	static Method NSGraphicsContext_restoreGraphicsState;
+	static Method NSGraphicsContext_setCurrentContext;
+	
+	static Method NSAffineTransform_transform;
+	
+	static Method NSAffineTransform_translateXBy;
+	static Method NSAffineTransform_scaleXBy;
+	static Method NSAffineTransform_concat;
+	
+	static Method NSView_displayRectIgnoringOpacity;
+	
+	static {
+		try {
+			Control_view = Control.class.getDeclaredField("view"); //$NON-NLS-1$
+			Control_view.setAccessible(true);
+
+			GC_handle = GC.class.getDeclaredField("handle"); //$NON-NLS-1$
+			GC_handle.setAccessible(true);
+
+			Class<?> NSViewClass = Class.forName("org.eclipse.swt.internal.cocoa.NSView"); //$NON-NLS-1$
+			NSView_superview = NSViewClass.getMethod("superview");
+			
+			Class<?> idClass = Class.forName("org.eclipse.swt.internal.cocoa.id"); //$NON-NLS-1$
+			Class<?> NSObjectClass = Class.forName("org.eclipse.swt.internal.cocoa.NSObject"); //$NON-NLS-1$
+			NSObject_isEqual = NSObjectClass.getMethod("isEqual", idClass);
+			
+			NSView_bounds = NSViewClass.getMethod("bounds");
+
+			Class<?> NSGraphicsContextClass = Class.forName("org.eclipse.swt.internal.cocoa.NSGraphicsContext"); //$NON-NLS-1$
+			NSGraphicsContext_saveGraphicsState = NSGraphicsContextClass.getMethod("saveGraphicsState");
+			NSGraphicsContext_setCurrentContext = NSGraphicsContextClass.getMethod("setCurrentContext", NSGraphicsContextClass);
+			NSGraphicsContext_restoreGraphicsState = NSGraphicsContextClass.getMethod("restoreGraphicsState");
+
+			Class<?> NSAffineTransformClass = Class.forName("org.eclipse.swt.internal.cocoa.NSAffineTransform"); //$NON-NLS-1$
+			NSAffineTransform_transform = NSAffineTransformClass.getMethod("transform");
+			NSAffineTransform_translateXBy = NSAffineTransformClass.getMethod("translateXBy", double.class, double.class);
+			if (NSAffineTransform_translateXBy == null) {
+				NSAffineTransform_translateXBy = NSAffineTransformClass.getMethod("translateXBy", float.class, float.class);
+			}
+			NSAffineTransform_scaleXBy = NSAffineTransformClass.getMethod("scaleXBy", double.class, double.class);
+			if (NSAffineTransform_scaleXBy == null) {
+				NSAffineTransform_scaleXBy = NSAffineTransformClass.getMethod("scaleXBy", float.class, float.class);
+			}
+			NSAffineTransform_concat = NSAffineTransformClass.getMethod("concat");
+			
+			Class<?> NSRectClass = Class.forName("org.eclipse.swt.internal.cocoa.NSRect"); //$NON-NLS-1$
+
+			NSView_displayRectIgnoringOpacity = NSViewClass.getMethod("displayRectIgnoringOpacity", NSRectClass, NSGraphicsContextClass);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	
+	@Override
+	protected Image getImage(Control control, int maxWidth, int maxHeight,
+			boolean includeChildren) {
+		Rectangle rectangle = new Rectangle(0, 0, maxWidth, maxHeight);
+        Image image = new Image(control.getDisplay(), rectangle);
+        GC gc = new GC(image);
+        
+        try {
+			Object view = Control_view.get(control);
+			if (control instanceof Shell) {
+				Object superview = NSView_superview.invoke(view);
+			    while (superview != null) {
+			    	view = superview;
+			    	superview = NSView_superview.invoke(view);
+			    }
+			} else {
+			    Composite parent = control.getParent();
+			    Object parentView = Control_view.get(parent);
+			    
+			    while (true) {
+			    	Object superview = NSView_superview.invoke(view);
+			    	Boolean equal = (Boolean) NSObject_isEqual.invoke(superview, parentView);
+			    	if (equal) {
+			    		break;
+			    	}
+					view = superview;
+			    }
+			}
+			Object gcHandle = GC_handle.get(gc);
+			// gc.handle.saveGraphicsState();
+			NSGraphicsContext_saveGraphicsState.invoke(gcHandle);
+			// NSGraphicsContext.setCurrentContext(gc.handle);
+			NSGraphicsContext_setCurrentContext.invoke(null, gcHandle);
+			// NSAffineTransform transform = NSAffineTransform.transform ();
+			Object transform = NSAffineTransform_transform.invoke(null);
+			// transform.translateXBy (0, rectangle.height);
+			NSAffineTransform_translateXBy.invoke(transform, 0, rectangle.height);
+			// transform.scaleXBy (1, -1);
+			NSAffineTransform_scaleXBy.invoke(transform, 1, -1);
+			// transform.concat ();
+			NSAffineTransform_concat.invoke(transform);
+			// view.displayRectIgnoringOpacity(view.bounds(), gc.handle);
+			Object bounds = NSView_bounds.invoke(view);
+			NSView_displayRectIgnoringOpacity.invoke(view, bounds, gcHandle);
+			
+			//gc.handle.restoreGraphicsState();
+			NSGraphicsContext_restoreGraphicsState.invoke(gcHandle);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+        
+        gc.dispose();
+		return image;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
new file mode 100755
index 0000000..51e85b7
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/ImageCapture.java
@@ -0,0 +1,414 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*
+ *  $RCSfile: ImageCapture.java,v $
+ *  $Revision: 1.8 $  $Date: 2010/06/18 00:17:02 $ 
+ */
+package org.eclipse.ve.internal.swt.targetvm.unix;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.ImageData;
+import org.eclipse.swt.graphics.PaletteData;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.RGB;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Decorations;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.vex.swt.DisposeUtil;
+
+/**
+ * GTK version of Image Capture
+ * 
+ * @since 1.0.0
+ */
+public class ImageCapture extends org.eclipse.xwt.vex.swt.ImageCapture {
+	static Field Menu_handler;
+	static Field Control_handler;
+
+	
+	static {
+		try {
+			Menu_handler = Menu.class.getField("handle");			
+			Control_handler = Control.class.getField("handle");
+			
+			System.loadLibrary("swt-gtk-print"); //$NON-NLS-1$
+		} catch (Exception error) {
+			error.printStackTrace();
+		} catch (UnsatisfiedLinkError error) {
+			error.printStackTrace();
+		}
+	}
+
+	static final int OBSCURED = 1 << 6; // Must be the same value as Widget.OBSCURED
+	static final String FIELD_STATE_NAME = "state"; //$NON-NLS-1$
+
+	private native int[] getPixels(int handle, int includeChildren, int maxWidth, int maxHeight, int arg4);
+
+	protected Point getTopLeftOfClientarea(Decorations decorations) {
+		Point trim = decorations.toControl(decorations.getLocation());
+		trim.x = -trim.x;
+		trim.y = -trim.y;
+		if (decorations.getMenuBar() != null) {
+			Menu menu = decorations.getMenuBar();
+			try {
+				Class<?> osClass = Class.forName("org.eclipse.swt.internal.gtk.OS"); //$NON-NLS-1$
+				Method method = osClass.getMethod("GTK_WIDGET_HEIGHT", new Class[] { int.class }); //$NON-NLS-1$
+				Object ret = method.invoke(menu, new Object[] { Menu_handler.getInt(menu)});
+				if (ret != null) {
+					int menuBarHeight = ((Integer) ret).intValue();
+					trim.y -= menuBarHeight;
+				}
+			} catch (Throwable t) {
+			}
+		}
+		return new Point(trim.x, trim.y);
+	}
+
+	protected Image getImageOfControl(Control control, int includeChildren, int maxWidth, int maxHeight) {
+		Image image = null;
+		if (control instanceof Shell) {
+			Shell shell = (Shell) control;
+			int handle = readIntFieldValue(shell.getClass(), shell, "shellHandle"); //$NON-NLS-1$
+			if (handle > 0) {
+				image = getImageOfHandle(handle, shell.getDisplay(), includeChildren, maxWidth, maxHeight);
+			}
+		}
+		try {
+			if (image == null) {
+				image = getImageOfHandle(Control_handler.getInt(control), control.getDisplay(), includeChildren, maxWidth, maxHeight);
+			}
+			if (control instanceof Decorations) {
+				Decorations decorations = (Decorations) control;
+				Rectangle shellBounds = decorations.getBounds();
+				Point topLeft = getTopLeftOfClientarea(decorations);
+				Image realShellImage = new Image(decorations.getDisplay(), shellBounds.width, shellBounds.height);
+				Image origImage = image;
+				try {
+					simulateDecoration(decorations, realShellImage, decorations.getBounds(), decorations.getClientArea(), topLeft);
+					GC gc = new GC(realShellImage);
+					gc.drawImage(image, topLeft.x, topLeft.y);
+					DisposeUtil.dispose(gc);
+					image = realShellImage;
+				} finally {
+					origImage.dispose();
+				}
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return image;
+	}
+
+	protected Image getImageOfHandle(int handle, Display display, int includeChildren, int maxWidth, int maxHeight) {
+		int[] tcData = getPixels(handle, includeChildren, maxWidth, maxHeight, 0);
+		int depth = display.getDepth();
+		if (depth == 15)
+			depth = 16; // SWT cant handle depth of 15. Similar to 16
+		if (depth > 24)
+			depth = 24;
+		if (tcData != null) {
+			int tcWidth = tcData[0];
+			int tcHeight = tcData[1];
+			int type = tcData[2];
+			if (type == 1) {
+				// Direct RGB values
+				int red_mask = tcData[3] == -1 ? 0x00FF : tcData[3];
+				int green_mask = tcData[4] == -1 ? 0x00FF00 : tcData[4];
+				int blue_mask = tcData[5] == -1 ? 0x00FF0000 : tcData[5];
+				// System.err.println("Masks: "+Integer.toHexString(red_mask)+","+Integer.toHexString(green_mask)+","+Integer.toHexString(blue_mask));
+				int[] tcPixels = new int[tcData.length - 6];
+				System.arraycopy(tcData, 6, tcPixels, 0, tcPixels.length);
+				ImageData tcImageData = new ImageData(tcWidth, tcHeight, depth, new PaletteData(red_mask, green_mask, blue_mask));
+				tcImageData.setPixels(0, 0, tcPixels.length, tcPixels, 0);
+				Image tcImage = new Image(display, tcImageData);
+				return tcImage;
+			} else if (type == 2) {
+				// Indexed values
+				int numColors = tcData[3];
+				RGB[] rgb = new RGB[numColors];
+				// System.err.println("### Num colors = "+numColors);
+				for (int colCount = 0; colCount < numColors; colCount++) {
+					int r = tcData[4 + (colCount * 3) + 0];
+					int g = tcData[4 + (colCount * 3) + 1];
+					int b = tcData[4 + (colCount * 3) + 2];
+					rgb[colCount] = new RGB(r, g, b);
+				}
+				PaletteData pd = new PaletteData(rgb);
+				ImageData id = new ImageData(tcWidth, tcHeight, depth, pd);
+				int offset = (4 + (rgb.length * 3));
+				int pixels[] = new int[tcData.length - offset];
+				System.arraycopy(tcData, offset, pixels, 0, pixels.length);
+				id.setPixels(0, 0, pixels.length, pixels, 0);
+				Image tcImage = new Image(display, id);
+				// System.err.println("### returning image");
+				return tcImage;
+			} else {
+				System.err.println("JNI Returned unknown image type"); //$NON-NLS-1$
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * @param decoration
+	 * @param realShellImage
+	 * @param bounds
+	 * @param clientArea
+	 * @param topLeft
+	 * 
+	 * @since 1.0.0
+	 */
+	private void simulateDecoration(Decorations decoration, Image realShellImage, Rectangle bounds, Rectangle clientArea, Point topLeft) {
+		GC gc = new GC(realShellImage);
+		try {
+			gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
+			gc.fillRectangle(0, 0, bounds.width, bounds.height);
+			gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
+			gc.drawRectangle(topLeft.x - 1, topLeft.y - 1, clientArea.width + 2, clientArea.height + 2);
+
+			// little squares at bottom corners
+			gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_BACKGROUND));
+			gc.fillRectangle(0, bounds.height - topLeft.y, topLeft.y, bounds.height);
+			gc.fillRectangle(bounds.width - topLeft.y, bounds.height - topLeft.y, bounds.width, bounds.height);
+
+			// title bar
+			if ((decoration.getStyle() & (SWT.TITLE | SWT.CLOSE | SWT.MAX | SWT.MIN)) != 0 && topLeft.y > 2) {
+				int barHeight = topLeft.y - 2;
+				// There will be a title bar - draw the text
+				gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_BACKGROUND));
+				gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_FOREGROUND));
+				gc.fillGradientRectangle(0, 0, bounds.width, barHeight, false);
+				gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_FOREGROUND));
+				gc.drawText(decoration.getText(), topLeft.y, 2, true);
+				if (decoration.getImage() != null && !decoration.getImage().isDisposed()) {
+					Rectangle imageBounds = decoration.getImage().getBounds();
+					if (imageBounds.height <= barHeight) {
+						gc.drawImage(decoration.getImage(), 0, 0);
+					} else {
+						ImageData imageData = decoration.getImage().getImageData();
+						double factor = (double) barHeight / (double) imageBounds.height;
+						int newWidth = (int) (imageBounds.width * factor);
+						imageData = imageData.scaledTo(newWidth, barHeight);
+						Image newImage = new Image(decoration.getDisplay(), imageData);
+						gc.drawImage(newImage, 0, 0);
+						newImage.dispose();
+					}
+				}
+
+				int rightx = bounds.width - topLeft.y;
+
+				// title bar buttons
+				if ((decoration.getStyle() & SWT.CLOSE) != 0) {
+					gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
+					gc.fillRectangle(rightx, 0, topLeft.y, topLeft.y);
+					gc.setLineWidth(1);
+					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
+					gc.drawRectangle(rightx, 0, topLeft.y, topLeft.y);
+					int lineWidth = topLeft.y / 6;
+					if (lineWidth < 1)
+						lineWidth = 1;
+					gc.setLineWidth(lineWidth);
+					lineWidth = lineWidth * 2;
+					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BORDER));
+					gc.drawLine(rightx + lineWidth, lineWidth, rightx + topLeft.y - lineWidth, topLeft.y - lineWidth);
+					gc.drawLine(rightx + lineWidth, topLeft.y - lineWidth, rightx + topLeft.y - lineWidth, lineWidth);
+					rightx -= topLeft.y;
+				}
+				if ((decoration.getStyle() & SWT.MAX) != 0) {
+					gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
+					gc.fillRectangle(rightx, 0, topLeft.y, topLeft.y);
+					gc.setLineWidth(1);
+					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
+					gc.drawRectangle(rightx, 0, topLeft.y, topLeft.y);
+					int lineWidth = topLeft.y / 6;
+					if (lineWidth < 1)
+						lineWidth = 1;
+					gc.setLineWidth(lineWidth);
+					lineWidth = lineWidth * 2;
+					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BORDER));
+					gc.drawRectangle(rightx + lineWidth, lineWidth, topLeft.y - (2 * lineWidth), topLeft.y - (2 * lineWidth));
+					rightx -= topLeft.y;
+				}
+				if ((decoration.getStyle() & SWT.MIN) != 0) {
+					gc.setLineWidth(1);
+					gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
+					gc.fillRectangle(rightx, 0, topLeft.y - 1, topLeft.y - 1);
+					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
+					gc.drawRectangle(rightx, 0, topLeft.y - 1, topLeft.y - 1);
+					int lineWidth = topLeft.y / 6;
+					if (lineWidth < 1)
+						lineWidth = 1;
+					gc.setLineWidth(lineWidth);
+					lineWidth = lineWidth * 2;
+					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BORDER));
+					gc.drawLine(rightx + lineWidth, topLeft.y - lineWidth, rightx + topLeft.y - lineWidth, topLeft.y - lineWidth);
+					rightx -= topLeft.y;
+				}
+
+				gc.setLineWidth(1);
+				gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
+				gc.drawLine(0, topLeft.y - 1, bounds.width, topLeft.y - 1);
+			}
+		} finally {
+			gc.dispose();
+		}
+	}
+
+	protected Map<Class<?>, Map<String, Object>> fieldAccessors = new HashMap<Class<?>, Map<String, Object>>(); // Map of Class->fieldName->field reflect
+
+	/**
+	 * @param object
+	 * @param fieldName
+	 * @return
+	 * 
+	 * @since 1.0.0
+	 */
+	private int readIntFieldValue(Class<?> klass, Object object, String fieldName) {
+		try {
+			Field field = getField(klass, fieldName);
+			return field != null ? field.getInt(object) : 0;
+		} catch (IllegalArgumentException e) {
+		} catch (IllegalAccessException e) {
+		}
+		return -1;
+	}
+
+	private static final Object NO_FIELD = new Object();
+
+	private Field getField(Class<?> klass, String fieldName) {
+		Map<String, Object> nameToField = fieldAccessors.get(klass);
+		if (nameToField == null) {
+			fieldAccessors.put(klass, nameToField = new HashMap<String, Object>());
+		}
+		Object field = nameToField.get(fieldName);
+		if (field == null) {
+			try {
+				field = klass.getDeclaredField(fieldName);
+				((Field) field).setAccessible(true);
+			} catch (SecurityException e) {
+				field = NO_FIELD;
+				e.printStackTrace();
+			} catch (NoSuchFieldException e) {
+				field = NO_FIELD;
+				e.printStackTrace();
+			}
+			nameToField.put(fieldName, field);
+		}
+		return (Field) (field != NO_FIELD ? field : null);
+	}
+
+	/**
+	 * @param object
+	 * @param fieldName
+	 * @return
+	 * 
+	 * @since 1.0.0
+	 */
+	private void writeIntFieldValue(Class<?> klass, Object object, String fieldName, int newInt) {
+		try {
+			Field field = getField(klass, fieldName);
+			field.setInt(object, newInt);
+		} catch (IllegalArgumentException e) {
+		} catch (IllegalAccessException e) {
+		}
+	}
+
+	protected Image getImage(Control control, int maxWidth, int maxHeight, boolean includeChildren) {
+		int ic = includeChildren ? 1 : 0;
+		Map<Control, Integer> map = new HashMap<Control, Integer>();
+		changeObscured(control, map, false);
+		Image image = null;
+		try {
+			image = getImageOfControl(control, ic, maxWidth, maxHeight);
+		} finally {
+			changeObscured(control, map, true);
+		}
+		return image;
+	}
+
+	/**
+	 * @param control
+	 * @param map
+	 * 
+	 * @since 1.0.0
+	 */
+	private void changeObscured(Control control, Map<Control, Integer> map, boolean on) {
+		if (on) {
+			// restoring the obscured flags
+			if (map.containsKey(control)) {
+				// control had obscured flag changed - reset it
+				Integer originalValue = (Integer) map.get(control);
+				writeIntFieldValue(Widget.class, control, FIELD_STATE_NAME, originalValue.intValue());
+			}
+		} else {
+			// disabling the obscure flags
+			int stateValue = readIntFieldValue(Widget.class, control, FIELD_STATE_NAME);
+			if ((stateValue & OBSCURED) != 0) {
+				// obscured - disable flag and remember
+				map.put(control, new Integer(stateValue));
+				stateValue &= ~OBSCURED;
+				writeIntFieldValue(Widget.class, control, FIELD_STATE_NAME, stateValue);
+			}
+		}
+		if (control instanceof CCombo) {
+			// CCombo has a text field whose OBSCURED field needs to be changed
+			CCombo ccombo = (CCombo) control;
+			Object val = readObjectFieldValue(CCombo.class, ccombo, "text"); //$NON-NLS-1$
+			if (val instanceof Text) {
+				Text text = (Text) val;
+				changeObscured(text, map, on);
+			}
+		} else if (control instanceof Composite) {
+			Composite composite = (Composite) control;
+			Control[] children = composite.getChildren();
+			for (int cc = 0; children != null && cc < children.length; cc++) {
+				changeObscured(children[cc], map, on);
+			}
+		}
+	}
+
+	/**
+	 * @param object
+	 * @param fieldName
+	 * @return
+	 * 
+	 * @since 1.1.0.1
+	 */
+	private Object readObjectFieldValue(Class<?> klass, Object object, String fieldName) {
+		try {
+			Field field = klass.getDeclaredField(fieldName);
+			field.setAccessible(true);
+			return field.get(object);
+		} catch (SecurityException e) {
+		} catch (NoSuchFieldException e) {
+		} catch (IllegalArgumentException e) {
+		} catch (IllegalAccessException e) {
+		}
+		return null;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
new file mode 100755
index 0000000..8a0bb39
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/ve/internal/swt/targetvm/unix/bits64/ImageCapture.java
@@ -0,0 +1,418 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*
+ *  $RCSfile: ImageCapture.java,v $
+ *  $Revision: 1.6 $  $Date: 2010/06/18 00:17:02 $ 
+ */
+package org.eclipse.ve.internal.swt.targetvm.unix.bits64;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.ImageData;
+import org.eclipse.swt.graphics.PaletteData;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.RGB;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Decorations;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.vex.swt.DisposeUtil;
+
+/**
+ * GTK version of Image Capture
+ * 
+ * @since 1.0.0
+ */
+public class ImageCapture extends org.eclipse.xwt.vex.swt.ImageCapture {
+	static Field Menu_handler;
+
+	
+	static {
+		try {
+			Menu_handler = Menu.class.getField("handle");			
+			System.loadLibrary("swt-gtk-print"); //$NON-NLS-1$
+		} catch (Exception error) {
+			error.printStackTrace();
+		} catch (UnsatisfiedLinkError error) {
+			error.printStackTrace();
+		}
+	}
+	static final int OBSCURED = 1 << 6; // Must be the same value as Widget.OBSCURED
+	static final String FIELD_STATE_NAME = "state"; //$NON-NLS-1$
+
+	private native int[] getPixels(long handle, int includeChildren, int maxWidth, int maxHeight, int arg4);
+
+	protected Point getTopLeftOfClientarea(Decorations decorations) {
+		Point trim = decorations.toControl(decorations.getLocation());
+		trim.x = -trim.x;
+		trim.y = -trim.y;
+		if (decorations.getMenuBar() != null) {
+			Menu menu = decorations.getMenuBar();
+			try {
+				Class<?> osClass = Class.forName("org.eclipse.swt.internal.gtk.OS"); //$NON-NLS-1$
+				Method method = osClass.getMethod("GTK_WIDGET_HEIGHT", new Class[] { long.class }); //$NON-NLS-1$
+				Object ret = method.invoke(menu, new Object[] { Menu_handler.getLong(menu) });
+				if (ret != null) {
+					int menuBarHeight = ((Integer) ret).intValue();
+					trim.y -= menuBarHeight;
+				}
+			} catch (Throwable t) {
+			}
+		}
+		return new Point(trim.x, trim.y);
+	}
+
+	protected Image getImageOfControl(Control control, int includeChildren, int maxWidth, int maxHeight) {
+		Image image = null;
+		if (control instanceof Shell) {
+			Shell shell = (Shell) control;
+			long handle = readLongFieldValue(shell.getClass(), shell, "shellHandle"); //$NON-NLS-1$
+			if (handle > 0) {
+				image = getImageOfHandle(handle, shell.getDisplay(), includeChildren, maxWidth, maxHeight);
+			}
+		}
+		if (image == null) {
+			// Use reflection to get the control handle to avoid linking problems with being
+			// compiled on a 32 bit machine against 32 bit swt.
+			long handle = readLongFieldValue(Widget.class, control, "handle"); //$NON-NLS-1$
+			image = getImageOfHandle(handle, control.getDisplay(), includeChildren, maxWidth, maxHeight);
+		}
+		if (control instanceof Decorations) {
+			Decorations decorations = (Decorations) control;
+			Rectangle shellBounds = decorations.getBounds();
+			Point topLeft = getTopLeftOfClientarea(decorations);
+			Image realShellImage = new Image(decorations.getDisplay(), shellBounds.width, shellBounds.height);
+			Image origImage = image;
+			try {
+				simulateDecoration(decorations, realShellImage, decorations.getBounds(), decorations.getClientArea(), topLeft);
+				GC gc = new GC(realShellImage);
+				gc.drawImage(image, topLeft.x, topLeft.y);
+				DisposeUtil.dispose(gc);
+				image = realShellImage;
+			} finally {
+				origImage.dispose();
+			}
+		}
+		return image;
+	}
+
+	protected Image getImageOfHandle(long handle, Display display, int includeChildren, int maxWidth, int maxHeight) {
+		int[] tcData = getPixels(handle, includeChildren, maxWidth, maxHeight, 0);
+		int depth = display.getDepth();
+		if (depth == 15)
+			depth = 16; // SWT cant handle depth of 15. Similar to 16
+		if (depth > 24)
+			depth = 24;
+		if (tcData != null) {
+			int tcWidth = tcData[0];
+			int tcHeight = tcData[1];
+			int type = tcData[2];
+			if (type == 1) {
+				// Direct RGB values
+				int red_mask = tcData[3] == -1 ? 0x00FF : tcData[3];
+				int green_mask = tcData[4] == -1 ? 0x00FF00 : tcData[4];
+				int blue_mask = tcData[5] == -1 ? 0x00FF0000 : tcData[5];
+				// System.err.println("Masks: "+Integer.toHexString(red_mask)+","+Integer.toHexString(green_mask)+","+Integer.toHexString(blue_mask));
+				int[] tcPixels = new int[tcData.length - 6];
+				System.arraycopy(tcData, 6, tcPixels, 0, tcPixels.length);
+				ImageData tcImageData = new ImageData(tcWidth, tcHeight, depth, new PaletteData(red_mask, green_mask, blue_mask));
+				tcImageData.setPixels(0, 0, tcPixels.length, tcPixels, 0);
+				Image tcImage = new Image(display, tcImageData);
+				return tcImage;
+			} else if (type == 2) {
+				// Indexed values
+				int numColors = tcData[3];
+				RGB[] rgb = new RGB[numColors];
+				// System.err.println("### Num colors = "+numColors);
+				for (int colCount = 0; colCount < numColors; colCount++) {
+					int r = tcData[4 + (colCount * 3) + 0];
+					int g = tcData[4 + (colCount * 3) + 1];
+					int b = tcData[4 + (colCount * 3) + 2];
+					rgb[colCount] = new RGB(r, g, b);
+				}
+				PaletteData pd = new PaletteData(rgb);
+				ImageData id = new ImageData(tcWidth, tcHeight, depth, pd);
+				int offset = (4 + (rgb.length * 3));
+				int pixels[] = new int[tcData.length - offset];
+				System.arraycopy(tcData, offset, pixels, 0, pixels.length);
+				id.setPixels(0, 0, pixels.length, pixels, 0);
+				Image tcImage = new Image(display, id);
+				// System.err.println("### returning image");
+				return tcImage;
+			} else {
+				System.err.println("JNI Returned unknown image type"); //$NON-NLS-1$
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * @param decoration
+	 * @param realShellImage
+	 * @param bounds
+	 * @param clientArea
+	 * @param topLeft
+	 * 
+	 * @since 1.0.0
+	 */
+	private void simulateDecoration(Decorations decoration, Image realShellImage, Rectangle bounds, Rectangle clientArea, Point topLeft) {
+		GC gc = new GC(realShellImage);
+		try {
+			gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
+			gc.fillRectangle(0, 0, bounds.width, bounds.height);
+			gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
+			gc.drawRectangle(topLeft.x - 1, topLeft.y - 1, clientArea.width + 2, clientArea.height + 2);
+
+			// little squares at bottom corners
+			gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_BACKGROUND));
+			gc.fillRectangle(0, bounds.height - topLeft.y, topLeft.y, bounds.height);
+			gc.fillRectangle(bounds.width - topLeft.y, bounds.height - topLeft.y, bounds.width, bounds.height);
+
+			// title bar
+			if ((decoration.getStyle() & (SWT.TITLE | SWT.CLOSE | SWT.MAX | SWT.MIN)) != 0 && topLeft.y > 2) {
+				int barHeight = topLeft.y - 2;
+				// There will be a title bar - draw the text
+				gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_BACKGROUND));
+				gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_FOREGROUND));
+				gc.fillGradientRectangle(0, 0, bounds.width, barHeight, false);
+				gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_TITLE_FOREGROUND));
+				gc.drawText(decoration.getText(), topLeft.y, 2, true);
+				if (decoration.getImage() != null && !decoration.getImage().isDisposed()) {
+					Rectangle imageBounds = decoration.getImage().getBounds();
+					if (imageBounds.height <= barHeight) {
+						gc.drawImage(decoration.getImage(), 0, 0);
+					} else {
+						ImageData imageData = decoration.getImage().getImageData();
+						double factor = (double) barHeight / (double) imageBounds.height;
+						int newWidth = (int) (imageBounds.width * factor);
+						imageData = imageData.scaledTo(newWidth, barHeight);
+						Image newImage = new Image(decoration.getDisplay(), imageData);
+						gc.drawImage(newImage, 0, 0);
+						newImage.dispose();
+					}
+				}
+
+				int rightx = bounds.width - topLeft.y;
+
+				// title bar buttons
+				if ((decoration.getStyle() & SWT.CLOSE) != 0) {
+					gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
+					gc.fillRectangle(rightx, 0, topLeft.y, topLeft.y);
+					gc.setLineWidth(1);
+					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
+					gc.drawRectangle(rightx, 0, topLeft.y, topLeft.y);
+					int lineWidth = topLeft.y / 6;
+					if (lineWidth < 1)
+						lineWidth = 1;
+					gc.setLineWidth(lineWidth);
+					lineWidth = lineWidth * 2;
+					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BORDER));
+					gc.drawLine(rightx + lineWidth, lineWidth, rightx + topLeft.y - lineWidth, topLeft.y - lineWidth);
+					gc.drawLine(rightx + lineWidth, topLeft.y - lineWidth, rightx + topLeft.y - lineWidth, lineWidth);
+					rightx -= topLeft.y;
+				}
+				if ((decoration.getStyle() & SWT.MAX) != 0) {
+					gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
+					gc.fillRectangle(rightx, 0, topLeft.y, topLeft.y);
+					gc.setLineWidth(1);
+					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
+					gc.drawRectangle(rightx, 0, topLeft.y, topLeft.y);
+					int lineWidth = topLeft.y / 6;
+					if (lineWidth < 1)
+						lineWidth = 1;
+					gc.setLineWidth(lineWidth);
+					lineWidth = lineWidth * 2;
+					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BORDER));
+					gc.drawRectangle(rightx + lineWidth, lineWidth, topLeft.y - (2 * lineWidth), topLeft.y - (2 * lineWidth));
+					rightx -= topLeft.y;
+				}
+				if ((decoration.getStyle() & SWT.MIN) != 0) {
+					gc.setLineWidth(1);
+					gc.setBackground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
+					gc.fillRectangle(rightx, 0, topLeft.y - 1, topLeft.y - 1);
+					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
+					gc.drawRectangle(rightx, 0, topLeft.y - 1, topLeft.y - 1);
+					int lineWidth = topLeft.y / 6;
+					if (lineWidth < 1)
+						lineWidth = 1;
+					gc.setLineWidth(lineWidth);
+					lineWidth = lineWidth * 2;
+					gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BORDER));
+					gc.drawLine(rightx + lineWidth, topLeft.y - lineWidth, rightx + topLeft.y - lineWidth, topLeft.y - lineWidth);
+					rightx -= topLeft.y;
+				}
+
+				gc.setLineWidth(1);
+				gc.setForeground(decoration.getDisplay().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
+				gc.drawLine(0, topLeft.y - 1, bounds.width, topLeft.y - 1);
+			}
+		} finally {
+			gc.dispose();
+		}
+	}
+
+	protected Map<Class<?>, Map<String, Object>> fieldAccessors = new HashMap<Class<?>, Map<String, Object>>(); // Map of Class->fieldName->field reflect
+
+	/**
+	 * @param object
+	 * @param fieldName
+	 * @return
+	 * 
+	 * @since 1.0.0
+	 */
+	private int readIntFieldValue(Class<?> klass, Object object, String fieldName) {
+		try {
+			Field field = getField(klass, fieldName);
+			return field != null ? field.getInt(object) : 0;
+		} catch (IllegalArgumentException e) {
+		} catch (IllegalAccessException e) {
+		}
+		return -1;
+	}
+
+	private long readLongFieldValue(Class<?> klass, Object object, String fieldName) {
+		try {
+			Field field = getField(klass, fieldName);
+			return field != null ? field.getLong(object) : 0;
+		} catch (IllegalArgumentException e) {
+		} catch (IllegalAccessException e) {
+		}
+		return -1;
+	}
+
+	private static final Object NO_FIELD = new Object();
+
+	private Field getField(Class<?> klass, String fieldName) {
+		Map<String, Object> nameToField = fieldAccessors.get(klass);
+		if (nameToField == null) {
+			fieldAccessors.put(klass, nameToField = new HashMap<String, Object>());
+		}
+		Object field = nameToField.get(fieldName);
+		if (field == null) {
+			try {
+				field = klass.getDeclaredField(fieldName);
+				((Field) field).setAccessible(true);
+			} catch (SecurityException e) {
+				field = NO_FIELD;
+				e.printStackTrace();
+			} catch (NoSuchFieldException e) {
+				field = NO_FIELD;
+				e.printStackTrace();
+			}
+			nameToField.put(fieldName, field);
+		}
+		return (Field) (field != NO_FIELD ? field : null);
+	}
+
+	/**
+	 * @param object
+	 * @param fieldName
+	 * @return
+	 * 
+	 * @since 1.0.0
+	 */
+	private void writeIntFieldValue(Class<?> klass, Object object, String fieldName, int newInt) {
+		try {
+			Field field = getField(klass, fieldName);
+			field.setInt(object, newInt);
+		} catch (IllegalArgumentException e) {
+		} catch (IllegalAccessException e) {
+		}
+	}
+
+	protected Image getImage(Control control, int maxWidth, int maxHeight, boolean includeChildren) {
+		int ic = includeChildren ? 1 : 0;
+		Map<Control, Integer> map = new HashMap<Control, Integer>();
+		changeObscured(control, map, false);
+		Image image = null;
+		try {
+			image = getImageOfControl(control, ic, maxWidth, maxHeight);
+		} finally {
+			changeObscured(control, map, true);
+		}
+		return image;
+	}
+
+	/**
+	 * @param control
+	 * @param map
+	 * 
+	 * @since 1.0.0
+	 */
+	private void changeObscured(Control control, Map<Control, Integer> map, boolean on) {
+		if (on) {
+			// restoring the obscured flags
+			if (map.containsKey(control)) {
+				// control had obscured flag changed - reset it
+				Integer originalValue = (Integer) map.get(control);
+				writeIntFieldValue(Widget.class, control, FIELD_STATE_NAME, originalValue.intValue());
+			}
+		} else {
+			// disabling the obscure flags
+			int stateValue = readIntFieldValue(Widget.class, control, FIELD_STATE_NAME);
+			if ((stateValue & OBSCURED) != 0) {
+				// obscured - disable flag and remember
+				map.put(control, new Integer(stateValue));
+				stateValue &= ~OBSCURED;
+				writeIntFieldValue(Widget.class, control, FIELD_STATE_NAME, stateValue);
+			}
+		}
+		if (control instanceof CCombo) {
+			// CCombo has a text field whose OBSCURED field needs to be changed
+			CCombo ccombo = (CCombo) control;
+			Object val = readObjectFieldValue(CCombo.class, ccombo, "text"); //$NON-NLS-1$
+			if (val instanceof Text) {
+				Text text = (Text) val;
+				changeObscured(text, map, on);
+			}
+		} else if (control instanceof Composite) {
+			Composite composite = (Composite) control;
+			Control[] children = composite.getChildren();
+			for (int cc = 0; children != null && cc < children.length; cc++) {
+				changeObscured(children[cc], map, on);
+			}
+		}
+	}
+
+	/**
+	 * @param object
+	 * @param fieldName
+	 * @return
+	 * 
+	 * @since 1.1.0.1
+	 */
+	private Object readObjectFieldValue(Class<?> klass, Object object, String fieldName) {
+		try {
+			Field field = klass.getDeclaredField(fieldName);
+			field.setAccessible(true);
+			return field.get(object);
+		} catch (SecurityException e) {
+		} catch (NoSuchFieldException e) {
+		} catch (IllegalArgumentException e) {
+		} catch (IllegalAccessException e) {
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/AbstractCodeSynchronizer.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/AbstractCodeSynchronizer.java
new file mode 100755
index 0000000..8677b4c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/AbstractCodeSynchronizer.java
@@ -0,0 +1,221 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.internal.progress.ProgressManager;
+import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
+import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
+import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.w3c.dom.Document;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+public abstract class AbstractCodeSynchronizer implements VEXCodeSynchronizer {
+	private final Map<Node, String> node2name;
+	private String oldAttrValue;
+
+	private VEXEditor editor;
+
+	private String cacheContent = "";
+
+	public AbstractCodeSynchronizer(VEXEditor editor) {
+		node2name = new HashMap<Node, String>();
+		this.editor = editor;
+	}
+
+	public String getOldAttrValue() {
+		return oldAttrValue;
+	}
+
+	public void setOldAttrValue(String oldAttrValue) {
+		this.oldAttrValue = oldAttrValue;
+	}
+
+	public String getCacheContent() {
+		return cacheContent;
+	}
+
+	public void setCacheContent(String cacheContent) {
+		this.cacheContent = cacheContent;
+	}
+
+	public Map<Node, String> getNode2name() {
+		return node2name;
+	}
+
+	public VEXEditor getEditor() {
+		return editor;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.soyatec.eface.tools.ui.editors.jdt.CodeManager#add(org.w3c.dom.Node, java.lang.String)
+	 */
+	public void add(final IDOMNode node, final String name) {
+		if (node != null && name != null && !name.equals("")) {
+			String oldName = node2name.get(node);
+			if (oldName != null) {
+				if (oldName.equals(name)) {
+					return;
+				} else {
+					remove(node);
+					add(node, name);
+				}
+			}
+			node2name.put(node, name);
+			Display display = Display.getDefault();
+			if (display != null) {
+				display.syncExec(new Runnable() {
+					public void run() {
+						String fullTypeName = getFullTypeName(node);
+						if (fullTypeName == null) {
+							return;
+						}
+						generateFields(fullTypeName, name);
+						buildInitialization();
+					}
+				});
+			}
+		}
+	}
+
+	abstract protected String getFullTypeName(IDOMNode node);
+
+	protected void updateCodeManager() {
+		StructuredTextViewer textViewer = editor.getTextEditor().getTextViewer();
+		int offset = textViewer.getTextWidget().getCaretOffset();
+		IndexedRegion treeNode = ContentAssistUtils.getNodeAt(textViewer, offset);
+		Node root = (Node) treeNode;
+		while ((root != null) && (root.getParentNode() != null) && !(root.getParentNode() instanceof Document)) {
+			root = root.getParentNode();
+		}
+		update((IDOMNode) root);
+	}
+
+	public void update(IDOMNode parentNode) {
+		if (parentNode.getNodeType() == Node.TEXT_NODE) {
+			return;
+		}
+		if (!editor.getContext().hasType(parentNode)) {
+			return;
+		}
+		boolean findNameAttr = false;
+		NamedNodeMap attributes = parentNode.getAttributes();
+		int length = attributes.getLength();
+		for (int i = 0; i < length; i++) {
+			Node item = attributes.item(i);
+			String nodeName = item.getNodeName();
+			if ("Name".equals(nodeName)) {
+				findNameAttr = true;
+				if (oldAttrValue != null) {
+					remove(parentNode);
+				}
+				add(parentNode, item.getNodeValue());
+			}
+		}
+		if (!findNameAttr) {
+			remove(parentNode);
+		}
+		NodeList childNodes = parentNode.getChildNodes();
+		int len = childNodes.getLength();
+		for (int i = 0; i < len; i++) {
+			Node item = childNodes.item(i);
+			update((IDOMNode) item);
+		}
+	}
+
+	public boolean codeAboutToBeChanged() {
+		StructuredTextViewer textViewer = editor.getTextEditor().getTextViewer();
+		int offset = textViewer.getTextWidget().getCaretOffset();
+		IndexedRegion treeNode = ContentAssistUtils.getNodeAt(textViewer, offset);
+		Node node = (Node) treeNode;
+		while ((node != null) && (node.getNodeType() == Node.TEXT_NODE) && (node.getParentNode() != null)) {
+			node = node.getParentNode();
+		}
+		IDOMNode xmlnode = (IDOMNode) node;
+		if (xmlnode != null && editor.getContext().hasType(xmlnode)) {
+			NamedNodeMap nodeMap = xmlnode.getAttributes();
+			for (int i = nodeMap.getLength() - 1; i >= 0; i--) {
+				IDOMAttr attrNode = (IDOMAttr) nodeMap.item(i);
+				String attrName = attrNode.getName();
+				String attrValue = attrNode.getValue();
+				int startOffset = attrNode.getStartOffset();
+				int endOffset = startOffset + attrName.length() + attrValue.length() + 3;
+				if (offset >= startOffset && offset < endOffset) {
+					oldAttrValue = attrValue;
+					return true;
+				}
+			}
+		}
+		oldAttrValue = null;
+		return false;
+	}
+
+	protected String updateCacheContent(IDocument newInput) {
+		StringBuffer buffer = new StringBuffer();
+		String content = newInput.get();
+		for (char c : content.toCharArray()) {
+			if (!Character.isWhitespace(c)) {
+				buffer.append(c);
+			}
+		}
+		return buffer.toString();
+	}
+
+	protected boolean checkContent(String content) {
+		StringBuffer buffer = new StringBuffer();
+
+		for (char c : content.toCharArray()) {
+			if (!Character.isWhitespace(c)) {
+				buffer.append(c);
+			}
+		}
+		String value = buffer.toString();
+
+		if (value.equals(cacheContent)) {
+			return true;
+		}
+		cacheContent = value;
+		return false;
+	}
+
+	protected String resolveHostClass(Node node) {
+		return null;
+	}
+
+	protected IProgressMonitor getProgressMonitor() {
+		ProgressManager progresManager = (ProgressManager) editor.getTextEditor().getSite().getWorkbenchWindow().getWorkbench().getProgressService();
+		IProgressMonitor monitor = progresManager.getDefaultMonitor();
+		return monitor;
+	}
+
+	protected IProject getProject() {
+		IResource resource = (IResource) editor.getEditorInput().getAdapter(IResource.class);
+		if (resource != null) {
+			return resource.getProject();
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/AbstractContext.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/AbstractContext.java
new file mode 100755
index 0000000..7ed7aa2
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/AbstractContext.java
@@ -0,0 +1,124 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex;
+
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
+import org.eclipse.xwt.vex.toolpalette.ContextType;
+import org.eclipse.xwt.vex.toolpalette.Entry;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+public abstract class AbstractContext implements VEXContext {
+
+	public int findDropPosition(Node node, Entry entry, int documentPosition) {
+		String scope = entry.getScope();
+		ContextType contextType = entry.getContext();
+
+		return findDropPosition(node, scope, contextType, documentPosition);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.vex.VEXContext#findDropPosition(org.w3c.dom.Node, java.lang.String, org.eclipse.xwt.vex.toolpalette.ContextType, int)
+	 */
+	public int findDropPosition(Node node, String scope, ContextType contextType, int cursorPosition) {
+		IDOMNode treeNode = (IDOMNode) node;
+		// check scope first
+		if (scope != null) {
+			String scopeName = scope.trim();
+			if (scopeName.length() > 0) {
+				// check from registered class
+				if (treeNode.getNodeType() == Node.TEXT_NODE) {
+					Node parentNode = treeNode.getParentNode();
+					if (parentNode == null || !isKindOf(parentNode, scopeName)) {
+						return -1;
+					}
+				}
+			}
+		}
+
+		switch (contextType) {
+		case XML_ALL:
+			break;
+		case XML_ATTRIBUTE:
+			break;
+		case XML_ATTRIBUTE_VALUE: {
+			ITextRegion completionRegion = VEXTextEditorHelper.getCompletionRegion(cursorPosition, treeNode);
+
+			String regionType = completionRegion.getType();
+
+			if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
+				return ((IDOMNode) treeNode).getStartOffset();
+			}
+			return -1;
+		}
+		case NONE:
+			break;
+		case XML_NEW:
+			break;
+		case XML_TAG: {
+			if (treeNode.getNodeType() == Node.TEXT_NODE) {
+				return treeNode.getStartOffset();
+			}
+
+			// Node node = (Node) treeNode;
+			// while ((node != null) && (node.getNodeType() == Node.TEXT_NODE)
+			// && (node.getParentNode() != null)) {
+			// node = node.getParentNode();
+			// }
+			// IDOMNode xmlnode = treeNode;
+
+			ITextRegion completionRegion = VEXTextEditorHelper.getCompletionRegion(cursorPosition, treeNode);
+
+			String regionType = completionRegion.getType();
+
+			if (regionType == DOMRegionContext.XML_PI_CLOSE || regionType == DOMRegionContext.XML_PI_OPEN || regionType == DOMRegionContext.XML_CONTENT || regionType == DOMRegionContext.XML_TAG_OPEN || regionType == DOMRegionContext.XML_TAG_CLOSE || regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE || regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME || regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS || regionType == DOMRegionContext.XML_TAG_NAME || regionType == DOMRegionContext.XML_END_TAG_OPEN) {
+				// in case of attribute, find the first text node
+				NodeList nodeList = treeNode.getChildNodes();
+				int length = nodeList.getLength();
+				for (int i = 0; i < length; i++) {
+					Node child = nodeList.item(i);
+					if (child.getNodeType() == Node.TEXT_NODE) {
+						return ((IDOMNode) child).getEndOffset();
+					}
+				}
+
+				if (regionType == DOMRegionContext.XML_END_TAG_OPEN && length == 0) {
+					IStructuredDocumentRegion endStructuredDocumentRegion = treeNode.getEndStructuredDocumentRegion();
+					if (cursorPosition == endStructuredDocumentRegion.getStart()) {
+						return cursorPosition;
+					}
+				}
+			}
+		}
+			return -1;
+		default:
+			throw new UnsupportedOperationException();
+		}
+
+		return cursorPosition;
+	}
+
+	/**
+	 * 
+	 * @param node
+	 * @param targetType
+	 *            a qualified class name
+	 * @return
+	 */
+	protected abstract boolean isKindOf(Node node, String targetType);
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/AbstractEventHandlerDialog.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/AbstractEventHandlerDialog.java
new file mode 100755
index 0000000..e7ada0a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/AbstractEventHandlerDialog.java
@@ -0,0 +1,253 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
+import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
+import org.w3c.dom.Node;
+
+public abstract class AbstractEventHandlerDialog {
+	public enum Operation {
+		Cancel, New, Select, Rename;
+	};
+
+	protected Operation operation = Operation.Cancel;
+	protected String inputHandler = "";
+	protected String oldHandler;
+	protected String attrValue;
+	protected String[] handlers;
+	protected StructuredTextViewer textViewer;
+	protected int count;
+
+	public AbstractEventHandlerDialog(StructuredTextViewer textViewer, String oldHandler, String attrValue, String[] handlers) {
+		this.textViewer = textViewer;
+		this.oldHandler = oldHandler;
+		this.attrValue = attrValue;
+		this.handlers = handlers;
+
+	}
+
+	public void run(Shell parentShell, String title, Point position) {
+		Shell shell = new Shell(parentShell, SWT.NONE);
+		shell.setText(title);
+		createContents(shell);
+		shell.setLocation(position);
+		shell.pack();
+		shell.open();
+		while (!shell.isDisposed()) {
+			if (!shell.getDisplay().readAndDispatch()) {
+				shell.getDisplay().sleep();
+			}
+		}
+	}
+
+	private void createContents(final Shell shell) {
+		shell.setLayout(new GridLayout(2, false));
+		Group group = new Group(shell, SWT.LEFT);
+		group.setText(EditorMessages.EventHandleDialog_Operation);
+		GridData data = new GridData(GridData.FILL_HORIZONTAL);
+		data.horizontalSpan = 2;
+		group.setLayoutData(data);
+		GridLayout gridLayout = new GridLayout();
+		group.setLayout(gridLayout);
+
+		final Button rbt1 = new Button(group, SWT.RADIO);
+		rbt1.setText(EditorMessages.EventHandleDialog_New_Handler);
+		rbt1.setSelection(true);
+		GridData gridData1 = new GridData(GridData.FILL_HORIZONTAL);
+		gridData1.horizontalSpan = 2;
+		rbt1.setLayoutData(gridData1);
+		RBSelectionAdapter rbSelectionAdapter1 = new RBSelectionAdapter(1);
+		rbt1.addSelectionListener(rbSelectionAdapter1);
+		rbt1.setToolTipText(EditorMessages.EventHandleDialog_New_Handler_ToolTip);
+		rbt1.setForeground(rbt1.getDisplay().getSystemColor(SWT.COLOR_DARK_BLUE));
+
+		final Button rbt2 = new Button(group, SWT.RADIO);
+		rbt2.setText(EditorMessages.EventHandleDialog_Rename_Handler);
+		GridData gridData2 = new GridData(GridData.FILL_HORIZONTAL);
+		gridData2.horizontalSpan = 2;
+		rbt2.setLayoutData(gridData2);
+		RBSelectionAdapter rbSelectionAdapter2 = new RBSelectionAdapter(2);
+		rbt2.addSelectionListener(rbSelectionAdapter2);
+		rbt2.setToolTipText(EditorMessages.EventHandleDialog_Rename_Handler_ToolTip);
+		rbt2.setForeground(rbt2.getDisplay().getSystemColor(SWT.COLOR_DARK_BLUE));
+		rbt2.setEnabled(oldHandler != null && oldHandler.length() > 0);
+
+		final Button rbt3 = new Button(group, SWT.RADIO);
+		rbt3.setText(EditorMessages.EventHandleDialog_Select_Existing_Handler);
+		GridData gridData3 = new GridData(GridData.FILL_HORIZONTAL);
+		gridData3.horizontalSpan = 2;
+		rbt3.setLayoutData(gridData3);
+		RBSelectionAdapter rbSelectionAdapter3 = new RBSelectionAdapter(3);
+		rbt3.addSelectionListener(rbSelectionAdapter3);
+		rbt3.setToolTipText(EditorMessages.EventHandleDialog_Select_Existing_Handler_ToolTip);
+		rbt3.setForeground(rbt3.getDisplay().getSystemColor(SWT.COLOR_DARK_BLUE));
+		rbt3.setEnabled(handlers != null && handlers.length > 0);
+
+		Label hNameLabel = new Label(shell, SWT.LEFT);
+		hNameLabel.setText(EditorMessages.EventHandleDialog_Input_Handler_Name);
+		final Text nameText = new Text(shell, SWT.BORDER);
+		nameText.setText(attrValue);
+		GridData gridData4 = new GridData();
+		gridData4.widthHint = 100;
+		nameText.setLayoutData(gridData4);
+		rbSelectionAdapter1.setText(nameText);
+		rbSelectionAdapter2.setText(nameText);
+		rbSelectionAdapter3.setText(nameText);
+
+		Label selectHandlerLabel = new Label(shell, SWT.LEFT);
+		selectHandlerLabel.setText(EditorMessages.EventHandleDialog_Select_Handler);
+		GridData gridData5 = new GridData(GridData.FILL_HORIZONTAL);
+		selectHandlerLabel.setLayoutData(gridData5);
+		final Combo handlersCombo = new Combo(shell, SWT.DROP_DOWN | SWT.READ_ONLY);
+		if (handlers != null && handlers.length != 0) {
+			handlersCombo.setItems(handlers);
+			handlersCombo.setText(handlers[0]);
+		}
+		handlersCombo.setEnabled(false);
+		GridData gridData6 = new GridData(GridData.FILL_HORIZONTAL);
+		gridData6.horizontalAlignment = SWT.LEFT;
+		handlersCombo.setLayoutData(gridData6);
+		rbSelectionAdapter1.setCombo(handlersCombo);
+		rbSelectionAdapter2.setCombo(handlersCombo);
+		rbSelectionAdapter3.setCombo(handlersCombo);
+
+		Button okButton = new Button(shell, SWT.PUSH | SWT.CR);
+		okButton.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(SelectionEvent e) {
+				boolean exists = false;
+				if (!rbt3.getSelection()) {
+					if (nameText.getText().trim().equals("")) {
+						MessageDialog.openInformation(shell, "Dialog", EditorMessages.EventHandleDialog_Error_Handler_Name_Null);
+						nameText.forceFocus();
+						return;
+					}
+
+					exists = handlerExists(nameText.getText(), handlers);
+					if (exists) {
+						int length = nameText.getText().length();
+						nameText.setSelection(0, length);
+						nameText.forceFocus();
+						return;
+					}
+				}
+				if (rbt1.getSelection()) {
+					operation = Operation.New;
+					inputHandler = nameText.getText();
+				} else if (rbt2.getSelection()) {
+					inputHandler = nameText.getText();
+					Node rootNode = (Node) ContentAssistUtils.getNodeAt(textViewer, 0);
+					count = 0;
+					boolean usedByOther = usedByOther(rootNode, oldHandler);
+					if (usedByOther) {
+						String message = NLS.bind(EditorMessages.EventHandleDialog_Question_Handler_Name_Refactoring, oldHandler);
+						boolean confirm = MessageDialog.openConfirm(shell, "Dialog", message);
+						if (!confirm) {
+							int length = nameText.getText().length();
+							nameText.setSelection(0, length);
+							nameText.forceFocus();
+							return;
+						}
+					}
+					operation = Operation.Rename;
+				} else if (rbt3.getSelection()) {
+					operation = Operation.Select;
+					inputHandler = handlersCombo.getText();
+				}
+
+				if (exists == false) {
+					shell.dispose();
+				}
+			}
+
+			private boolean handlerExists(String handlerName, String[] handlers) {
+				for (int i = 0; i < handlers.length; i++) {
+					if (handlerName != null && handlerName.equals(handlers[i])) {
+						MessageDialog.openInformation(shell, "Dialog", EditorMessages.EventHandleDialog_Error_Handler_Name_Exists);
+						return true;
+					}
+				}
+				return false;
+			}
+		});
+		okButton.setText("OK");
+		GridData okData = new GridData();
+		okData.horizontalAlignment = GridData.CENTER;
+		okButton.setLayoutData(okData);
+
+		Button cancelButton = new Button(shell, SWT.PUSH);
+		cancelButton.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(SelectionEvent e) {
+				shell.dispose();
+			}
+		});
+		cancelButton.setText("Cancel");
+		GridData cancelData = new GridData();
+		cancelData.horizontalAlignment = GridData.CENTER;
+		cancelData.grabExcessHorizontalSpace = true;
+		shell.setDefaultButton(okButton);
+	}
+
+	public Operation getOperation() {
+		return operation;
+	}
+
+	public String getInputHandler() {
+		return inputHandler;
+	}
+
+	private class RBSelectionAdapter extends SelectionAdapter {
+		private Text text;
+		private Combo combo;
+		private int number;
+
+		protected RBSelectionAdapter(int number) {
+			this.number = number;
+		}
+
+		public void widgetSelected(SelectionEvent e) {
+
+			if (number == 3) {
+				text.setEnabled(false);
+				combo.setEnabled(true);
+			} else {
+				text.setEnabled(true);
+				combo.setEnabled(false);
+			}
+		}
+
+		protected void setText(Text text) {
+			this.text = text;
+		}
+
+		protected void setCombo(Combo combo) {
+			this.combo = combo;
+		}
+	}
+
+	protected abstract boolean usedByOther(Node node, String oldHandler);
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/AbstractVEXRenderer.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/AbstractVEXRenderer.java
new file mode 100755
index 0000000..3a8e790
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/AbstractVEXRenderer.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex;
+
+import org.eclipse.swt.widgets.Composite;
+
+public abstract class AbstractVEXRenderer implements VEXRenderer {
+
+	private Composite composite;
+
+	public Composite getContainer() {
+		return composite;
+	}
+
+	public void setContainer(Composite container) {
+		this.composite = container;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/Activator.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/Activator.java
new file mode 100755
index 0000000..0528936
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/Activator.java
@@ -0,0 +1,150 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *     Anaik Trihoreau <anaik@anyware-tech.com> - Bug 274057
+ *******************************************************************************/
+package org.eclipse.xwt.vex;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.ImageRegistry;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+	// The plug-in ID
+	public static final String PLUGIN_ID = "org.eclipse.xwt.vex";
+
+	// The shared instance
+	private static Activator plugin;
+
+	/**
+	 * The constructor
+	 */
+	public Activator() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext )
+	 */
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext )
+	 */
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance
+	 * 
+	 * @return the shared instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+	
+	// Bug 274057 - Modification - Start
+	/**
+	 * Get an image from the local ImageRegistry. If the given Image's path is not already
+	 * registered, do it.
+	 * 
+	 * @param imagePath
+	 *        String, path and key identifying the image in the ImageRegistry
+	 * 
+	 * @return Image or null if nothing corresponds to the given key
+	 */
+	public static Image getImage(String imagePath)
+	{
+		return getImage(PLUGIN_ID, imagePath);
+	}
+
+	/**
+	 * Get an image at the given plug-in relative path from the local ImageRegistry. If the given
+	 * Image's path is not already registered, do it.
+	 * 
+	 * @param pluginId
+	 *        the plug-in identifier
+	 * @param imagePath
+	 *        String, path and key identifying the image in the ImageRegistry
+	 * 
+	 * @return Image or null if nothing corresponds to the given key
+	 */
+	public static Image getImage(String pluginId, String imagePath)
+	{
+		ImageRegistry imageRegistry = getDefault().getImageRegistry();
+		String key = pluginId + "_" + imagePath;
+		Image result = imageRegistry.get(key);
+
+		if (result == null && imagePath != null)
+		{
+			ImageDescriptor descriptor = AbstractUIPlugin.imageDescriptorFromPlugin(pluginId,
+				imagePath);
+			imageRegistry.put(key, descriptor);
+			result = imageRegistry.get(key);
+		}
+
+		return result;
+	}
+
+	/**
+	 * Get an image descriptor from the local ImageRegistry. If the given Image's path is not
+	 * already registered, do it.
+	 * 
+	 * @param imagePath
+	 *        String, path and key identifying the image in the ImageRegistry
+	 * 
+	 * @return ImageDescriptor or null if nothing corresponds to the given key
+	 */
+	public static ImageDescriptor getImageDescriptor(String imagePath)
+	{
+		return getImageDescriptor(PLUGIN_ID, imagePath);
+	}
+
+	/**
+	 * Get an image descriptor at the given plug-in relative path from the local ImageRegistry. If
+	 * the given Image's path is not already registered, do it.
+	 * 
+	 * @param pluginId
+	 *        the plug-in identifier
+	 * @param imagePath
+	 *        String, path and key identifying the image in the ImageRegistry
+	 * 
+	 * @return ImageDescriptor or null if nothing corresponds to the given key
+	 */
+	public static ImageDescriptor getImageDescriptor(String pluginId, String imagePath)
+	{
+		ImageRegistry imageRegistry = getDefault().getImageRegistry();
+		String key = pluginId + "_" + imagePath;
+		ImageDescriptor result = imageRegistry.getDescriptor(key);
+
+		if (result == null && imagePath != null)
+		{
+			result = AbstractUIPlugin.imageDescriptorFromPlugin(pluginId, imagePath);
+			imageRegistry.put(key, result);
+		}
+
+		return result;
+	}
+	// Bug 274057 - Modification - End
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/EditorMessages.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/EditorMessages.java
new file mode 100755
index 0000000..2a8d398
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/EditorMessages.java
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex;
+
+import org.eclipse.osgi.util.NLS;
+
+public class EditorMessages extends NLS {
+
+	public static String CustomizeComponentFactory_Customize;
+	public static String CustomizeComponentFactory_CustomizeCategory;
+	public static String CustomizeComponentFactory_VIEWER_EDITOR;
+	public static String CustomizePaletteDialog_BrowseIcon;
+	public static String CustomizePaletteDialog_BrowseLargeIcon;
+	public static String CustomizePaletteDialog_CodeTemplate;
+	public static String CustomizePaletteDialog_Content;
+	public static String CustomizePaletteDialog_ContentError;
+	public static String CustomizePaletteDialog_ErrorMessage;
+	public static String CustomizePaletteDialog_ErrorTitle;
+	public static String CustomizePaletteDialog_Header;
+	public static String CustomizePaletteDialog_Icon;
+	public static String CustomizePaletteDialog_LargeIcon;
+	public static String CustomizePaletteDialog_Message;
+	public static String CustomizePaletteDialog_Name;
+	public static String CustomizePaletteDialog_NameError;
+	public static String CustomizePaletteDialog_Scope;
+	public static String CustomizePaletteDialog_ScopeError;
+	public static String CustomizePaletteDialog_SelectionDialog_LargeText;
+	public static String CustomizePaletteDialog_SelectionDialog_LargeTitle;
+	public static String CustomizePaletteDialog_SelectionDialog_Text;
+	public static String CustomizePaletteDialog_SelectionDialog_Title;
+	public static String CustomizePaletteDialog_Title;
+	public static String CustomizePaletteDialog_ToolTip;
+
+	public static String CustomizePaletteDialog_Name_ToolTip;
+	public static String CustomizePaletteDialog_Scope_ToolTip;
+	public static String CustomizePaletteDialog_ToolTip_ToolTip;
+	public static String CustomizePaletteDialog_Content_ToolTip;
+	public static String CustomizePaletteDialog_Icon_ToolTip;
+	public static String CustomizePaletteDialog_LargeIcon_ToolTip;
+
+	public static String EventHandleDialogTitle;
+	public static String EventHandleDialog_Operation;
+	public static String EventHandleDialog_New_Handler;
+	public static String EventHandleDialog_New_Handler_ToolTip;
+	public static String EventHandleDialog_Rename_Handler;
+	public static String EventHandleDialog_Rename_Handler_ToolTip;
+	public static String EventHandleDialog_Select_Existing_Handler;
+	public static String EventHandleDialog_Select_Existing_Handler_ToolTip;
+	public static String EventHandleDialog_Select_Handler;
+	public static String EventHandleDialog_Input_Handler_Name;
+
+	public static String EventHandleDialog_Error_Handler_Name_Null;
+	public static String EventHandleDialog_Error_Handler_Name_Exists;
+	public static String EventHandleDialog_Question_Handler_Name_Refactoring;
+	public static String PaletteResourceManager_icons;
+	public static String PaletteResourceManager_toolkit;
+	public static String PaletteRootFactory_Customize;
+	public static String PaletteRootFactory_Dynamic;
+	public static String PaletteRootFactory_Shapes;
+	public static String VEXEditor_Dynamic;
+	public static String VEXEditor_DynamicCategory;
+
+	public static String VEXEditor_NODE;
+	public static String VEXEditor_SUBFIX_FAIL;
+	public static String VEXEditor_SUBFIX_OK;
+
+	public static String ImportCustomizeComponentsAction_ActionText;
+	public static String ImportCustomizeComponentsAction_DialogText;
+	public static String ImportCustomizeComponentsAction_ERROR;
+	public static String ImportCustomizeComponentsAction_ERROR_INFORMATION;
+	public static String ExportCustomizeComponentsAction_ActionText;
+	public static String ExportCustomizeComponentsAction_DialogText;
+	public static String ExportCustomizeComponentsAction_INFORMATION;
+	public static String ExportCustomizeComponentsAction_SUCCESS;
+
+	private static final String BUNDLE_NAME = EditorMessages.class.getPackage().getName() + ".messages"; //$NON-NLS-1$
+	static {
+		NLS.initializeMessages(BUNDLE_NAME, EditorMessages.class);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/PalletteSelectionTransfer.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/PalletteSelectionTransfer.java
new file mode 100755
index 0000000..56b531c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/PalletteSelectionTransfer.java
@@ -0,0 +1,96 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex;
+
+import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.swt.dnd.TransferData;
+
+public class PalletteSelectionTransfer extends LocalSelectionTransfer {
+
+	private static PalletteSelectionTransfer _instance = new PalletteSelectionTransfer();
+	/**
+	 * The get/set methods delegate to JFace's LocalSelectionTransfer to allow
+	 * data to be exchanged freely whether the client uses this
+	 * LocalSelectionTransfer or JFace's LocalSelectionTransfer. Protected
+	 * methods such as getTypeIds() are handled via inheritance, not delegation
+	 * due to visibility constraints.
+	 */
+	private org.eclipse.jface.util.LocalSelectionTransfer jfaceTransfer = org.eclipse.jface.util.LocalSelectionTransfer.getTransfer();
+
+	private PalletteSelectionTransfer() {
+	}
+
+	/**
+	 * Returns the singleton instance of the TextTransfer class.
+	 * 
+	 * @return the singleton instance of the TextTransfer class
+	 */
+	public static PalletteSelectionTransfer getInstance() {
+		return _instance;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.util.LocalSelectionTransfer#getSelection()
+	 */
+	public ISelection getSelection() {
+		return jfaceTransfer.getSelection();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.util.LocalSelectionTransfer#getSelectionSetTime()
+	 */
+	public long getSelectionSetTime() {
+		return jfaceTransfer.getSelectionSetTime();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.util.LocalSelectionTransfer#setSelection(org.eclipse.jface.viewers.ISelection)
+	 */
+	public void setSelection(ISelection s) {
+		jfaceTransfer.setSelection(s);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.util.LocalSelectionTransfer#setSelectionSetTime(long)
+	 */
+	public void setSelectionSetTime(long time) {
+		jfaceTransfer.setSelectionSetTime(time);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.util.LocalSelectionTransfer#javaToNative(java.lang.Object, org.eclipse.swt.dnd.TransferData)
+	 */
+	public void javaToNative(Object object, TransferData transferData) {
+		jfaceTransfer.javaToNative(object, transferData);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.util.LocalSelectionTransfer#nativeToJava(org.eclipse.swt.dnd.TransferData)
+	 */
+	public Object nativeToJava(TransferData transferData) {
+		return jfaceTransfer.nativeToJava(transferData);
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/ResourceManager.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/ResourceManager.java
new file mode 100755
index 0000000..0ab32db
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/ResourceManager.java
@@ -0,0 +1,118 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex;
+
+import java.net.URL;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.ImageRegistry;
+import org.eclipse.swt.graphics.Image;
+import org.osgi.framework.Bundle;
+
+public class ResourceManager {
+	private static String ICONS_PATH = "$nl$/icons/full/"; //$NON-NLS-1$
+
+	// Use IPath and toOSString to build the names to ensure they have the
+	// slashes correct
+	private final static String OBJ = ICONS_PATH + "obj16/"; //$NON-NLS-1$
+
+	static final String PREFIX_OBJ = Activator.PLUGIN_ID + ".obj16."; //$NON-NLS-1$
+
+	public static final String IMG_OBJ_TOOL_ADD = PREFIX_OBJ + "add_tool.gif"; //$NON-NLS-1$
+	public static final String IMG_OBJ_TOOL_DELETE = PREFIX_OBJ + "delete.gif"; //$NON-NLS-1$
+	public static final String IMG_OBJ_TOOL_CUSTOM = PREFIX_OBJ + "custom_palette.gif"; //$NON-NLS-1$
+	public static final String IMG_OBJ_TOOL_EFACE = PREFIX_OBJ + "eFace16.png"; //$NON-NLS-1$
+
+	public static final String IMG_OBJ_ECLIPSE_ICON = PREFIX_OBJ + "eclipse_icon.png"; //$NON-NLS-1$
+
+	public static final String IMG_ELEMENT = PREFIX_OBJ + "Element.png"; //$NON-NLS-1$
+	public static final String IMG_TABLE = PREFIX_OBJ + "Table.gif"; //$NON-NLS-1$
+	public static final String IMG_BUSY = PREFIX_OBJ + "Busy.gif"; //$NON-NLS-1$
+
+	public static final String URL_PATH_BUSY = OBJ + "Busy.gif";
+
+	private static ResourceManager manager = new ResourceManager();
+
+	/**
+	 * The image registry containing {@link Image images}.
+	 */
+	private ImageRegistry fgImageRegistry;
+
+	/**
+	 * Declare all images
+	 */
+	private void declareImages() {
+		// Ant Editor images
+		declareRegistryImage(IMG_OBJ_TOOL_ADD, OBJ + "add_tool.gif"); //$NON-NLS-1$
+		declareRegistryImage(IMG_OBJ_TOOL_DELETE, OBJ + "delete.gif"); //$NON-NLS-1$
+		declareRegistryImage(IMG_OBJ_TOOL_CUSTOM, OBJ + "custom_palette.gif"); //$NON-NLS-1$
+		declareRegistryImage(IMG_OBJ_TOOL_EFACE, OBJ + "eFace16.png"); //$NON-NLS-1$
+		declareRegistryImage(IMG_OBJ_ECLIPSE_ICON, OBJ + "eclipse_icon.png"); //$NON-NLS-1$
+		declareRegistryImage(IMG_ELEMENT, OBJ + "Element.png"); //$NON-NLS-1$
+		declareRegistryImage(IMG_TABLE, OBJ + "Table.gif"); //$NON-NLS-1$
+		declareRegistryImage(IMG_BUSY, OBJ + "Busy.gif"); //$NON-NLS-1$
+	}
+
+	/**
+	 * Declare an Image in the registry table.
+	 * 
+	 * @param key
+	 *            The key to use when registering the image
+	 * @param path
+	 *            The path where the image can be found. This path is relative to where this plugin class is found (i.e. typically the packages directory)
+	 */
+	private final void declareRegistryImage(String key, String path) {
+		ImageDescriptor desc = ImageDescriptor.getMissingImageDescriptor();
+		URL url = getImageURL(path);
+		if (url != null) {
+			desc = ImageDescriptor.createFromURL(url);
+		}
+		getImageRegistry().put(key, desc);
+	}
+
+	/**
+	 * Declare an Image in the registry table.
+	 * 
+	 * @param key
+	 *            The key to use when registering the image
+	 * @param path
+	 *            The path where the image can be found. This path is relative to where this plugin class is found (i.e. typically the packages directory)
+	 */
+	public static final URL getImageURL(String path) {
+		Bundle bundle = Platform.getBundle(Activator.PLUGIN_ID);
+		if (bundle != null) {
+			return FileLocator.find(bundle, new Path(path), null);
+		}
+		return null;
+	}
+
+	public ImageRegistry getImageRegistry() {
+		if (fgImageRegistry == null) {
+			fgImageRegistry = Activator.getDefault().getImageRegistry();
+			declareImages();
+		}
+		return fgImageRegistry;
+	}
+
+	public static Image getImage(String key) {
+		return manager.getImageRegistry().get(key);
+	}
+
+	public static ImageDescriptor getImageDescriptor(String path) {
+		ImageRegistry imageRegistry = manager.getImageRegistry();
+		return imageRegistry.getDescriptor(path);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXCodeSynchronizer.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXCodeSynchronizer.java
new file mode 100755
index 0000000..1b3cabe
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXCodeSynchronizer.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex;
+
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+
+public interface VEXCodeSynchronizer {
+
+	void add(IDOMNode node, String name);
+
+	void remove(IDOMNode node);
+
+	void update(IDOMNode node);
+
+	/**
+	 * Generate the fields
+	 * 
+	 * @return
+	 */
+	void generateFields(String fullTypeName, String argName);
+
+	/**
+	 * Remove generated fields
+	 * 
+	 * @return
+	 */
+	void removeFields(String fullTypeName, String argName);
+
+	void buildInitialization();
+
+	/**
+	 * Generate event handles
+	 * 
+	 * @return
+	 */
+	boolean generateHandles();
+
+	/**
+	 * Jump to the java definition
+	 * 
+	 * @return
+	 */
+	boolean openDefinition();
+
+	boolean codeAboutToBeChanged();
+
+	/**
+	 * Editor code get changed
+	 * 
+	 * @return
+	 */
+	boolean handleInputChanged(IDocument newInput);
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXContext.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXContext.java
new file mode 100755
index 0000000..e585fe2
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXContext.java
@@ -0,0 +1,74 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.xwt.vex.toolpalette.ContextType;
+import org.eclipse.xwt.vex.toolpalette.Entry;
+import org.w3c.dom.Node;
+
+public interface VEXContext {
+
+	/**
+	 * Return the Tool view ID, which is used to open Tool View
+	 * 
+	 * @return
+	 */
+	String getToolViewID();
+
+	/**
+	 * Return the template context id
+	 * 
+	 * @return
+	 */
+	String getTemplateContextID();
+
+	/**
+	 * return the default tool palette resource file
+	 * 
+	 * @return
+	 */
+	URI getDefaultPaletteFile();
+
+	/**
+	 * test if the node corresponds to UI element type
+	 * 
+	 * @param node
+	 * @return
+	 */
+	boolean hasType(Node node);
+
+	/**
+	 * test if the node is an event one
+	 * 
+	 * @param node
+	 * @param name
+	 * @return
+	 */
+	boolean isEventHandle(Node node, String name);
+
+	/**
+	 * Find the drop insert position.
+	 * 
+	 * @param node
+	 *            research start node
+	 * @param entry
+	 *            entry provides research context information such as contextType and scope
+	 * @param cursorPosition
+	 *            cursor location in the text
+	 * @return -1 if non position found
+	 */
+	int findDropPosition(Node node, Entry entry, int cursorPosition);
+
+	int findDropPosition(Node node, String scope, ContextType contextType, int cursorPosition);
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXEditor.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXEditor.java
new file mode 100755
index 0000000..e24d353
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXEditor.java
@@ -0,0 +1,1000 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.io.IOException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.RootEditPart;
+import org.eclipse.gef.palette.CombinedTemplateCreationEntry;
+import org.eclipse.gef.palette.PaletteEntry;
+import org.eclipse.gef.palette.PaletteGroup;
+import org.eclipse.gef.palette.PaletteRoot;
+import org.eclipse.gef.requests.SimpleFactory;
+import org.eclipse.gef.ui.palette.PaletteViewer;
+import org.eclipse.gef.ui.views.palette.PalettePage;
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.SubStatusLineManager;
+import org.eclipse.jface.text.DocumentEvent;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IDocumentListener;
+import org.eclipse.jface.text.IRewriteTarget;
+import org.eclipse.jface.text.ITextListener;
+import org.eclipse.jface.text.ITextViewerExtension;
+import org.eclipse.jface.text.Position;
+import org.eclipse.jface.text.TextEvent;
+import org.eclipse.jface.text.templates.ContextTypeRegistry;
+import org.eclipse.jface.text.templates.DocumentTemplateContext;
+import org.eclipse.jface.text.templates.GlobalTemplateVariables;
+import org.eclipse.jface.text.templates.Template;
+import org.eclipse.jface.text.templates.TemplateBuffer;
+import org.eclipse.jface.text.templates.TemplateContextType;
+import org.eclipse.jface.text.templates.TemplateVariable;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.window.ApplicationWindow;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.DragSource;
+import org.eclipse.swt.dnd.DragSourceEvent;
+import org.eclipse.swt.dnd.DragSourceListener;
+import org.eclipse.swt.dnd.TextTransfer;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.events.KeyAdapter;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Canvas;
+import org.eclipse.swt.widgets.Caret;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
+import org.eclipse.wst.sse.ui.StructuredTextEditor;
+import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
+import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText;
+import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
+import org.eclipse.wst.xml.ui.internal.tabletree.XMLMultiPageEditorPart;
+import org.eclipse.xwt.vex.palette.CustomPalettePage;
+import org.eclipse.xwt.vex.palette.PaletteResourceManager;
+import org.eclipse.xwt.vex.palette.PaletteViewManager;
+import org.eclipse.xwt.vex.palette.customize.CustomizeComponentFactory;
+import org.eclipse.xwt.vex.palette.customize.model.CustomizeComponent;
+import org.eclipse.xwt.vex.palette.part.DynamicPaletteViewer;
+import org.eclipse.xwt.vex.swt.AnimatedImage;
+import org.eclipse.xwt.vex.swt.CustomSashForm;
+import org.eclipse.xwt.vex.toolpalette.Entry;
+import org.eclipse.xwt.vex.toolpalette.ToolPalette;
+import org.eclipse.xwt.vex.toolpalette.ToolPaletteFactory;
+import org.eclipse.xwt.vex.util.ImageHelper;
+import org.w3c.dom.Document;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * @author BOB
+ * 
+ */
+public abstract class VEXEditor extends XMLMultiPageEditorPart {
+	static boolean toolViewShown = false;
+	protected VEXContext context;
+
+	private VEXCodeSynchronizer codeSynchronizer;
+	private VEXFileChecker fileChecker;
+
+	protected VEXRenderer render;
+
+	protected Canvas container;
+	protected ScrolledComposite scrolledComposite;
+	protected SashForm sashForm;
+
+	protected AnimatedImage loadingMessage;
+
+	/** The text editor. */
+	private StructuredTextEditor fTextEditor;
+	private Refresher refresher = new Refresher();
+
+	/** Tools Palette objects */
+	private PaletteResourceManager tResourceManager;
+	private static PalettePage palettePage;
+
+	private IStatusLineManager slManager;
+
+	protected PropertyChangeListener changeListener = new PropertyChangeListener() {
+		public void propertyChange(PropertyChangeEvent evt) {
+			invokeInputChanged();
+		}
+	};
+
+	private KeyAdapter keyAdapter = new KeyAdapter() {
+
+		@Override
+		public void keyPressed(KeyEvent e) {
+			super.keyPressed(e);
+			handleKeyEvent(e);
+		}
+	};
+
+	private MouseAdapter mouseAdapter = new MouseAdapter() {
+		@Override
+		public void mouseDown(MouseEvent e) {
+			super.mouseDown(e);
+			handleMouseEvent(e);
+		}
+	};
+
+	/**
+	 * @param e
+	 */
+	public void handleMouseEvent(MouseEvent e) {
+		doDynamicPalette(new Point(e.x, e.y));
+	}
+
+	/**
+	 * @param e
+	 */
+	public void handleKeyEvent(KeyEvent e) {
+		StyledText control = (StyledText) e.widget;
+		Caret caret = control.getCaret();
+		if (caret != null) {
+			doDynamicPalette(caret.getLocation());
+		}
+	}
+
+	/**
+	 * @param point
+	 */
+	public void doDynamicPalette(Point point) {
+		IDOMNode node = getDOMNode(point);
+		if (palettePage == null) {
+			return;
+		}
+
+		if (node != null) {
+			Node parentNode = null;
+			if (node instanceof IDOMText) {
+				parentNode = node.getParentNode();
+			} else {
+				parentNode = node;
+			}
+
+			tResourceManager = getPaletteResourceManager();
+			Resource dynamicResource = tResourceManager.getDynamicResource();
+			Resource resource = tResourceManager.getResource();
+			// EMF model
+			ToolPalette toolPalette = (ToolPalette) resource.getContents().get(0);
+			EList<Entry> entries = toolPalette.getEntries();
+
+			// ToolPalette dynamicPalette = (ToolPalette) dynamicResource.getContents().get(0);
+			// EList<Entry> dynamicEntries = dynamicPalette.getEntries();
+
+			Entry dynamicEntryRoot = null;
+			for (Entry entry : entries) {
+				if (entry.getName().equals(EditorMessages.VEXEditor_Dynamic)) {
+					dynamicEntryRoot = entry;
+					break;
+				}
+			}
+			if (dynamicEntryRoot != null) {
+				entries.remove(dynamicEntryRoot);
+			}
+			dynamicEntryRoot = ToolPaletteFactory.eINSTANCE.createEntry();
+			dynamicEntryRoot.setName(EditorMessages.VEXEditor_Dynamic);
+			dynamicEntryRoot.setToolTip(EditorMessages.VEXEditor_DynamicCategory);
+			entries.add(dynamicEntryRoot);
+
+			PaletteViewer paletteViewer = ((CustomPalettePage) palettePage).getPaletteViewer();
+
+			DynamicPaletteViewer dynamicPaletteViewer = null;
+			Object objectPaletteViewer = paletteViewer.getProperty("Dynamic_PaletteViewer");
+			if (objectPaletteViewer instanceof DynamicPaletteViewer) {
+				dynamicPaletteViewer = (DynamicPaletteViewer) objectPaletteViewer;
+			}
+			if (dynamicPaletteViewer == null) {
+				return;
+			}
+			PaletteRoot root = dynamicPaletteViewer.getPaletteRoot();
+			List paletteChildren = root.getChildren();
+			PaletteGroup dynamicPaletteGroup = null;
+			for (Object object : paletteChildren) {
+				if (((PaletteGroup) object).getLabel().equals(EditorMessages.VEXEditor_Dynamic)) {
+					dynamicPaletteGroup = (PaletteGroup) object;
+					break;
+				}
+			}
+			if (dynamicPaletteGroup == null) {
+				dynamicPaletteGroup = new PaletteGroup(EditorMessages.VEXEditor_Dynamic);
+			}
+			List children = dynamicPaletteGroup.getChildren();
+			int count = children.size();
+			for (int i = 0; i < count; i++) {
+				dynamicPaletteGroup.remove((PaletteEntry) children.get(0));
+			}
+			root.remove(dynamicPaletteGroup);
+
+			// add the dynamic palette
+			if (parentNode.getLocalName() != null && !parentNode.getLocalName().equals("")) { //$NON-NLS-1$
+
+				List<Entry> insert = getSubEntries(parentNode, entries);
+				// insert.addAll(customizeComponentList);
+				if (insert != null) {
+					for (Entry ent : insert) {
+						if (ent.getScope() != null && ent.getScope().equals(parentNode.getLocalName())) {
+							Entry subEntry = (Entry) EcoreUtil.copy(ent);
+							// add sub entry
+							dynamicEntryRoot.getEntries().add(subEntry);
+
+							CombinedTemplateCreationEntry component = new CombinedTemplateCreationEntry(subEntry.getName(), subEntry.getToolTip(), subEntry, new SimpleFactory(dynamicResource.getClass()), ImageHelper.getImageDescriptor(tResourceManager, subEntry.getIcon()), ImageHelper.getImageDescriptor(tResourceManager, subEntry.getLargeIcon()));
+							dynamicPaletteGroup.add(component);
+
+						}
+					}
+				}
+				List<Entry> customizeComponentList = getCustomizeEntries();
+				for (Entry entry : customizeComponentList) {
+					if (entry.getScope() != null && entry.getScope().equals(parentNode.getLocalName())) {
+						Entry subEntry = (Entry) EcoreUtil.copy(entry);
+						// add sub entry
+						dynamicEntryRoot.getEntries().add(subEntry);
+						CombinedTemplateCreationEntry component = new CombinedTemplateCreationEntry(subEntry.getName(), subEntry.getToolTip(), subEntry, new SimpleFactory(dynamicResource.getClass()), ImageHelper.getImageDescriptor(tResourceManager, subEntry.getIcon()), ImageHelper.getImageDescriptor(tResourceManager, subEntry.getLargeIcon()));
+						dynamicPaletteGroup.add(component);
+					}
+				}
+			}
+			root.add(dynamicPaletteGroup);
+			RootEditPart rootEditPart = dynamicPaletteViewer.getRootEditPart();
+			refreshAllEditParts(rootEditPart);
+		}
+	}
+
+	public List<Entry> getCustomizeEntries() {
+		List<Entry> result = new ArrayList<Entry>();
+		List<String> customizeComponentNameList = CustomizeComponentFactory.getCustomizeComponentFactory().getCustomizeComponentNameList();
+		if (customizeComponentNameList != null) {
+			Entry entry = null;
+			for (int i = 0; i < customizeComponentNameList.size(); i++) {
+				CustomizeComponent customizeComponent = CustomizeComponentFactory.getCustomizeComponentFactory().getCustomizeComponentByName(customizeComponentNameList.get(i));
+				if (customizeComponent != null) {
+					entry = ToolPaletteFactory.eINSTANCE.createEntry();
+					entry.setName(customizeComponent.getName());
+					entry.setScope(customizeComponent.getScope());
+					entry.setIcon(customizeComponent.getIcon());
+					entry.setLargeIcon(customizeComponent.getLargeIcon());
+					entry.setToolTip(customizeComponent.getTooptip());
+					entry.setContent(customizeComponent.getContent());
+				}
+				if (entry != null) {
+					result.add(entry);
+				}
+			}
+		}
+		return result;
+	}
+
+	private void refreshAllEditParts(EditPart part) {
+		part.refresh();
+		List children = part.getChildren();
+		for (Iterator iter = children.iterator(); iter.hasNext();) {
+			EditPart child = (EditPart) iter.next();
+			refreshAllEditParts(child);
+		}
+	}
+
+	/**
+	 * @param point
+	 * @return
+	 */
+	private IDOMNode getDOMNode(Point point) {
+		// to get dom node based on current insertion point for text
+		StructuredTextViewer textViewer = fTextEditor.getTextViewer();
+		StyledText styledText = textViewer.getTextWidget();
+		Point absolutePosition = new Point(point.x, point.y);
+
+		int widgetOffset = 0;
+		try {
+			Method method = StyledText.class.getDeclaredMethod("getOffsetAtPoint", int.class, int.class, int[].class, //$NON-NLS-1$
+					boolean.class);
+			method.setAccessible(true);
+
+			int[] trailing = new int[1];
+			widgetOffset = (Integer) method.invoke(styledText, absolutePosition.x, absolutePosition.y, trailing, false);
+			widgetOffset += trailing[0];
+		} catch (Exception ex) {
+			throw new RuntimeException(ex);
+		}
+		IDOMNode node = VEXTextEditorHelper.getNode(textViewer, widgetOffset);
+
+		return node;
+	}
+
+	private List<Entry> getSubEntries(Node node, List<Entry> entries) {
+		List<Entry> result = null;
+		for (Entry entry : entries) {
+			if (entry.getName().equalsIgnoreCase(node.getLocalName())) {
+				result = entry.getEntries();
+			}
+			if (result == null) {
+				result = getSubEntries(node, entry.getEntries());
+			}
+		}
+		return result;
+	}
+
+	class Refresher implements Runnable {
+		private IDocument document;
+		private long time = -1;
+
+		public void run() {
+			if ((System.currentTimeMillis() - time) < 800 || Display.getDefault().getActiveShell() == null) {
+				Display.getDefault().timerExec(1000, this);
+				return;
+			}
+			try {
+				handleInputChanged(document);
+			} finally {
+				document = null;
+				time = -1;
+			}
+		}
+
+		public IDocument getDocument() {
+			return document;
+		}
+
+		public void setDocument(IDocument document) {
+			this.document = document;
+			this.time = System.currentTimeMillis();
+		}
+
+		public long getTime() {
+			return time;
+		}
+
+		public void setTime(long time) {
+			this.time = time;
+		}
+	}
+
+	public VEXEditor(VEXContext context) {
+		this.context = context;
+	}
+
+	public IProject getProject() {
+		IResource resource = (IResource) getEditorInput().getAdapter(IResource.class);
+		if (resource != null) {
+			return resource.getProject();
+		}
+		throw new IllegalStateException();
+	}
+
+	@Override
+	public void init(IEditorSite site, IEditorInput input) throws PartInitException {
+		super.init(site, input);
+
+		IWorkbenchPage activePage = getSite().getWorkbenchWindow().getActivePage();
+		if (activePage != null && !toolViewShown) {
+			activePage.showView(context.getToolViewID());
+			toolViewShown = true;
+		}
+	}
+
+	@Override
+	public void dispose() {
+		super.dispose();
+		if (fileChecker != null) {
+			fileChecker.deleteMarkers();
+		}
+		if (render != null) {
+			render.dispose();
+		}
+	}
+
+	@Override
+	protected Composite createPageContainer(Composite parent) {
+		sashForm = new CustomSashForm(parent, SWT.VERTICAL);
+		sashForm.setLayoutData(new GridData(GridData.FILL_BOTH));
+		sashForm.setBackgroundMode(SWT.INHERIT_DEFAULT);
+
+		scrolledComposite = new org.eclipse.swt.custom.ScrolledComposite(sashForm, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
+		scrolledComposite.setExpandHorizontal(true);
+		scrolledComposite.setExpandVertical(true);
+		scrolledComposite.setBackgroundMode(SWT.INHERIT_DEFAULT);
+		scrolledComposite.setBackground(scrolledComposite.getDisplay().getSystemColor(SWT.COLOR_WHITE));
+
+		container = new Canvas(scrolledComposite, SWT.V_SCROLL | SWT.H_SCROLL);
+		container.setBackground(container.getDisplay().getSystemColor(SWT.COLOR_WHITE));
+		container.setBackgroundMode(SWT.INHERIT_DEFAULT);
+
+		container.setLayout(new GridLayout());
+
+		loadingMessage = new AnimatedImage(container, SWT.CENTER);
+		loadingMessage.setLayoutData(new GridData(GridData.FILL_BOTH));
+		loadingMessage.setHorizontalAlignment(SWT.CENTER);
+		loadingMessage.setVerticalAlignment(SWT.CENTER);
+		loadingMessage.setBackgroundMode(SWT.INHERIT_DEFAULT);
+		loadingMessage.setBackground(container.getDisplay().getSystemColor(SWT.COLOR_WHITE));
+
+		scrolledComposite.setContent(container);
+		try {
+			loadingMessage.setImageFile(ResourceManager.getImageURL(ResourceManager.URL_PATH_BUSY));
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+
+		Composite composite = super.createPageContainer(sashForm);
+
+		render = VEXRenderRegistry.getRender(container);
+		if (render == null) {
+			render = createRender(container);
+		}
+		slManager = getEditorSite().getActionBars().getStatusLineManager();
+		return composite;
+	}
+
+	protected VEXRenderer createRender(Canvas container) {
+		return null;
+	}
+
+	protected abstract VEXFileChecker createFileChecker();
+
+	public VEXFileChecker getFileChecker() {
+		if (fileChecker == null) {
+			fileChecker = createFileChecker();
+		}
+		return fileChecker;
+	}
+
+	class DocumentListener implements IDocumentListener {
+		public void documentChanged(DocumentEvent event) {
+			invokeInputChanged();
+		}
+
+		public void documentAboutToBeChanged(DocumentEvent event) {
+			codeAboutToBeChanged();
+		}
+	}
+
+	protected void codeAboutToBeChanged() {
+		VEXCodeSynchronizer codeSync = getCodeSynchronizer();
+		if (codeSync != null) {
+			codeSync.codeAboutToBeChanged();
+		}
+	}
+
+	protected void invokeInputChanged() {
+		long previous = refresher.getTime();
+		if (fTextEditor.getTextViewer() != null) {
+			refresher.setDocument(fTextEditor.getTextViewer().getDocument());
+			if (previous == -1) {
+				Display.getDefault().timerExec(1000, refresher);
+			}
+		}
+	}
+
+	@Override
+	public int addPage(IEditorPart editor, IEditorInput input) throws PartInitException {
+		if (editor instanceof StructuredTextEditor) {
+			fTextEditor = (StructuredTextEditor) editor;
+		}
+		sashForm.setWeights(new int[] { 60, 40 });
+		return super.addPage(editor, input);
+	}
+
+	@Override
+	protected void createPages() {
+		super.createPages();
+
+		if (fTextEditor != null) {
+			StructuredTextViewer textViewer = fTextEditor.getTextViewer();
+
+			textViewer.getTextWidget().addMouseListener(mouseAdapter);
+			textViewer.getTextWidget().addKeyListener(keyAdapter);
+
+			textViewer.addPostSelectionChangedListener(new ISelectionChangedListener() {
+				public void selectionChanged(SelectionChangedEvent event) {
+					StructuredTextViewer textViewer = fTextEditor.getTextViewer();
+					StyledText control = (StyledText) textViewer.getTextWidget();
+					Caret caret = control.getCaret();
+					if (caret != null) {
+						Point location = caret.getLocation();
+						// if (!isExecuted) {
+						doDynamicPalette(location);
+						// }
+						// isExecuted = false;
+					}
+				}
+			});
+
+			textViewer.addTextListener(new ITextListener() {
+				public void textChanged(TextEvent event) {
+					// TODO Auto-generated method stub
+					StructuredTextViewer textViewer = fTextEditor.getTextViewer();
+					StyledText control = (StyledText) textViewer.getTextWidget();
+					Caret caret = control.getCaret();
+					if (caret != null) {
+						Point location = caret.getLocation();
+						// updatePasteActionState(location);
+					}
+				}
+			});
+
+			IDocument document = textViewer.getDocument();
+			document.addDocumentListener(new DocumentListener());
+			invokeInputChanged();
+			initializeDND(this);
+
+			Composite composite = getContainer();
+			if (composite instanceof CTabFolder) {
+				CTabFolder tabFolder = (CTabFolder) composite;
+				createToolBar(tabFolder);
+			}
+
+			// TODO
+			for (int i = 0; i < getPageCount(); i++) {
+				if (getPageText(i).equals("")) { //$NON-NLS-1$
+					setPageImage(i, ResourceManager.getImage(ResourceManager.IMG_ELEMENT));
+				}
+				if (getPageText(i).equals("")) { //$NON-NLS-1$
+					setPageImage(i, ResourceManager.getImage(ResourceManager.IMG_TABLE));
+				}
+			}
+		}
+	}
+
+	public void initializeDND(VEXEditor editor) {
+
+		StyledText styledText = this.getTextWidget();
+		if (styledText != null) {
+			DragSource dragSource = (DragSource) styledText.getData(DND.DRAG_SOURCE_KEY);
+			if (dragSource != null) {
+				dragSource.removeDragListener(dragSourceAdapter);
+			}
+		}
+
+		DragSource dragSource = (DragSource) styledText.getData(DND.DRAG_SOURCE_KEY);
+		if (dragSource == null) {
+			dragSource = new DragSource(styledText, DND.DROP_COPY | DND.DROP_MOVE);
+
+			Transfer[] types = new Transfer[] { TextTransfer.getInstance() };
+
+			dragSource.setTransfer(types);
+		}
+		dragSource.addDragListener(dragSourceAdapter);
+
+	}
+
+	protected DragSourceListener dragSourceAdapter = new DragSourceListener() {
+
+		private String dragDataText;
+
+		public void dragFinished(DragSourceEvent event) {
+			dragDataText = null;
+		}
+
+		public void dragSetData(DragSourceEvent event) {
+			if (TextTransfer.getInstance().isSupportedType(event.dataType)) {
+				event.data = dragDataText;
+			}
+		}
+
+		public void dragStart(DragSourceEvent event) {
+			dragDataText = getTextWidget().getSelectionText();
+		}
+
+	};
+
+	public Object getAdapter(Class type) {
+		if (type == PalettePage.class) {
+			return getPalettePage();
+		}
+		if (type == PaletteResourceManager.class) {
+			return getPaletteResourceManager();
+		}
+		return super.getAdapter(type);
+	}
+
+	/**
+	 * @return
+	 */
+	public PaletteResourceManager getPaletteResourceManager() {
+		if (tResourceManager == null) {
+			tResourceManager = new PaletteResourceManager(this);
+		}
+
+		return tResourceManager;
+	}
+
+	private PalettePage getPalettePage() {
+		if (palettePage == null) {
+			PaletteViewManager manager = new PaletteViewManager(this);
+			palettePage = new CustomPalettePage(manager.getPaletteViewerProvider());
+		}
+		return palettePage;
+	}
+
+	public PalettePage getVEXEditorPalettePage() {
+		return palettePage;
+	}
+
+	protected abstract void createToolBar(CTabFolder tabFolder);
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.ISaveablePart#doSave(org.eclipse.core.runtime.IProgressMonitor )
+	 */
+	@Override
+	public void doSave(IProgressMonitor monitor) {
+		try {
+			updateCodeManager();
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		fTextEditor.doSave(monitor);
+	}
+
+	protected boolean handleInputChanged(IDocument newInput) {
+		VEXCodeSynchronizer codeSynchronizer = getCodeSynchronizer();
+		if (codeSynchronizer != null) {
+			boolean handling = codeSynchronizer.handleInputChanged(newInput);
+			if (!handling) {
+				return false;
+			}
+		}
+
+		// View synchronize
+		try {
+			ApplicationWindow applicationWindow = (ApplicationWindow) getSite().getPage().getWorkbenchWindow();
+			MenuManager menuManager = applicationWindow.getMenuBarManager();
+			if (menuManager != null) {
+				menuManager.updateAll(true);
+			}
+
+			String value = newInput.get();
+			IFile file = (IFile) getEditorInput().getAdapter(IFile.class);
+
+			if (container.getDisplay() != null) {
+				container.setCursor(container.getDisplay().getSystemCursor(SWT.CURSOR_WAIT));
+				while (!container.getDisplay().readAndDispatch()) {
+				}
+				if (render != null && render.updateView(value, file)) {
+					if (loadingMessage != null && !loadingMessage.isDisposed()) {
+						loadingMessage.dispose();
+						loadingMessage = null;
+					}
+					return true;
+				}
+				if (loadingMessage != null && !loadingMessage.isDisposed()) {
+					loadingMessage.stop();
+					loadingMessage.setText("No window found or an error occurs."); //$NON-NLS-1$
+				}
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		} finally {
+			container.setCursor(null);
+			if (render != null) {
+				getFileChecker().doCheck(render.getHostClassName());
+			}
+		}
+		return false;
+	}
+
+	protected VEXCodeSynchronizer getCodeSynchronizer() {
+		if (codeSynchronizer == null) {
+			codeSynchronizer = createCodeSynchronizer();
+		}
+		return codeSynchronizer;
+	}
+
+	protected abstract VEXCodeSynchronizer createCodeSynchronizer();
+
+	public void generateCLRCodeAction() {
+		getCodeSynchronizer().generateHandles();
+	}
+
+	public void openDefinitionAction() {
+		getCodeSynchronizer().openDefinition();
+	}
+
+	protected void updateCodeManager() {
+		StructuredTextViewer textViewer = fTextEditor.getTextViewer();
+		int offset = textViewer.getTextWidget().getCaretOffset();
+		IndexedRegion treeNode = ContentAssistUtils.getNodeAt(textViewer, offset);
+		Node root = (Node) treeNode;
+		while ((root != null) && (root.getParentNode() != null) && !(root.getParentNode() instanceof Document)) {
+			root = root.getParentNode();
+		}
+		updateCodeManager((IDOMNode) root);
+	}
+
+	protected void updateCodeManager(IDOMNode parentNode) {
+		VEXCodeSynchronizer generator = getCodeSynchronizer();
+		if (generator == null) {
+			return;
+		}
+		generator.update(parentNode);
+	}
+
+	public StyledText getTextWidget() {
+		if (fTextEditor == null || fTextEditor.getTextViewer() == null) {
+			return null;
+		}
+		return fTextEditor.getTextViewer().getTextWidget();
+	}
+
+	private String updateCacheContent(IDocument newInput) {
+		StringBuffer buffer = new StringBuffer();
+		String content = newInput.get();
+		for (char c : content.toCharArray()) {
+			if (!Character.isWhitespace(c)) {
+				buffer.append(c);
+			}
+		}
+		return buffer.toString();
+	}
+
+	public StructuredTextEditor getTextEditor() {
+		return fTextEditor;
+	}
+
+	private void modifyAllRelativeHandlerName(StructuredTextViewer textViewer, int offset, String inputHandler, String oldAttrValue) {
+		IndexedRegion treeNode = ContentAssistUtils.getNodeAt(textViewer, offset);
+		Node node = (Node) treeNode;
+		modifyHandlerName(inputHandler, node, oldAttrValue);
+	}
+
+	private void modifyHandlerName(String inputHandler, Node node, String oldAttrValue) {
+		while ((node != null) && (node.getNodeType() == Node.TEXT_NODE) && (node.getParentNode() != null)) {
+			node = node.getParentNode();
+		}
+		IDOMNode domNode = (IDOMNode) node;
+
+		if (node.getNodeType() == Node.ELEMENT_NODE) {
+			if (context.hasType(domNode)) {
+				NamedNodeMap nodeMap = node.getAttributes();
+				for (int j = nodeMap.getLength() - 1; j >= 0; j--) {
+					IDOMAttr attrNode = (IDOMAttr) nodeMap.item(j);
+					String attrName = attrNode.getName();
+					String attrValue = attrNode.getValue();
+					if (context.isEventHandle(domNode, attrName)) {
+						if (attrValue.equals(oldAttrValue)) {
+							attrNode.setNodeValue(inputHandler);
+						}
+					}
+				}
+			}
+		}
+		NodeList nodes = node.getChildNodes();
+		int length = nodes.getLength();
+		for (int i = 0; i < length; i++) {
+			Node childNode = nodes.item(i);
+			if (childNode.getNodeType() == Node.ELEMENT_NODE) {
+				modifyHandlerName(inputHandler, childNode, oldAttrValue);
+			}
+		}
+	}
+
+	public VEXContext getContext() {
+		return context;
+	}
+
+	/**
+	 * Using for add an entry to VEX editor
+	 * 
+	 * @author BOB
+	 * @param entry
+	 */
+	public void defaultCreation(Entry entry) {
+		StyledText control = fTextEditor.getTextViewer().getTextWidget();
+		Caret caret = control.getCaret();
+		if (caret != null) {
+			Point location = caret.getLocation();
+			IDOMNode node = getDOMNode(location);
+			IStructuredDocumentRegion refionDocumentRegion = node.getFirstStructuredDocumentRegion();
+			int caretOffset = getAddEntryPosition(refionDocumentRegion, location, node, entry);
+			if (caretOffset >= 0) {
+				insertEntry(caretOffset, entry);
+				updateStatusBarMessage(EditorMessages.VEXEditor_NODE + entry.getName() + EditorMessages.VEXEditor_SUBFIX_OK);
+			} else {
+				updateStatusBarMessage(EditorMessages.VEXEditor_NODE + entry.getName() + EditorMessages.VEXEditor_SUBFIX_FAIL);
+			}
+			adjustAfterDefaultCreation(node);
+		}
+
+	}
+
+	/**
+	 * @param node
+	 */
+	public void adjustAfterDefaultCreation(Node node) {
+		Point location = getCurrentLocation();
+		doDynamicPalette(location);
+	}
+
+	/**
+	 * @return
+	 */
+	public Point getCurrentLocation() {
+		StructuredTextEditor textEditor = getTextEditor();
+		StructuredTextViewer textViewer = textEditor.getTextViewer();
+		StyledText control = (StyledText) textViewer.getTextWidget();
+		Caret caret = control.getCaret();
+		Point location = caret.getLocation();
+		return location;
+	}
+
+	/**
+	 * get the insert position from the given start location, using for add an node to VEX editor
+	 * 
+	 * @param refionDocumentRegion
+	 * @param startLocation
+	 * @param addNode
+	 * @param addEntry
+	 * @return
+	 */
+	protected int getAddEntryPosition(IStructuredDocumentRegion refionDocumentRegion, Point startLocation, IDOMNode addNode, Entry addEntry) {
+		StructuredTextEditor textEditor = getTextEditor();
+		StructuredTextViewer textViewer = textEditor.getTextViewer();
+		int cursor = VEXTextEditorHelper.getOffsetAtPoint(textViewer, startLocation);
+		if (addNode.getParentNode() == null) {
+			return -1;
+		}
+		int caretOffset = context.findDropPosition(addNode, addEntry, cursor);
+		if (caretOffset < 0) {
+			IStructuredDocumentRegion refionDocumentRegion2 = refionDocumentRegion.getNext();
+			int starat = 0;
+			int end = 0;
+			if (refionDocumentRegion2 != null) {
+				starat = refionDocumentRegion2.getStartOffset();
+				end = refionDocumentRegion2.getEndOffset();
+			}
+			Point point = new Point(starat, end);
+			IStructuredDocumentRegion endStructuredDocumentRegion = addNode.getEndStructuredDocumentRegion();
+			int insertPosition = -1;
+			if (endStructuredDocumentRegion != null) {
+				insertPosition = endStructuredDocumentRegion.getEnd();
+			} else {
+				IStructuredDocumentRegion startStructuredDocumentRegion = addNode.getStartStructuredDocumentRegion();
+				if (startStructuredDocumentRegion != null) {
+					insertPosition = startStructuredDocumentRegion.getEnd();
+				}
+			}
+			addNode = (IDOMNode) addNode.getParentNode();
+			int firstValue = getAddEntryPosition(refionDocumentRegion2, point, addNode, addEntry);
+			if (firstValue > insertPosition) {
+				return firstValue;
+			}
+			if (firstValue == -1) {
+				return -1;
+			}
+			return insertPosition;
+		}
+		return caretOffset;
+	}
+
+	/**
+	 * insert node at special location
+	 * 
+	 * @param caretOffset
+	 * @param addEntry
+	 */
+	private void insertEntry(int caretOffset, Entry addEntry) {
+		IDocument document = getTextEditor().getTextViewer().getDocument();
+		Template template = new Template(addEntry.getName(), "", addEntry.getContext().getName(), addEntry.getContent(), true); //$NON-NLS-1$
+		ContextTypeRegistry registry = XMLUIPlugin.getDefault().getTemplateContextRegistry();
+		if (registry != null) {
+			TemplateContextType type = registry.getContextType(template.getContextTypeId());
+
+			int length = 0;
+
+			DocumentTemplateContext templateContext = new DocumentTemplateContext(type, document, new Position(caretOffset, length));
+			if (templateContext.canEvaluate(template)) {
+				try {
+					// fix bug about dnd element undo
+					IRewriteTarget target = null;
+					StructuredTextEditor textEditor = getTextEditor();
+					StructuredTextViewer textViewer = textEditor.getTextViewer();
+					if (textViewer instanceof ITextViewerExtension) {
+						ITextViewerExtension extension = (ITextViewerExtension) textViewer;
+						target = extension.getRewriteTarget();
+					}
+					if (target != null)
+						target.beginCompoundChange();
+
+					TemplateBuffer templateBuffer = templateContext.evaluate(template);
+					String templateString = templateBuffer.getString();
+					document.replace(caretOffset, length, templateString);
+
+					StyledText styledText = getTextWidget();
+					int position = getCursorOffset(templateBuffer) + caretOffset;
+					styledText.setCaretOffset(position);
+					styledText.setFocus();
+				} catch (Exception e) {
+					throw new RuntimeException(e);
+				}
+			}
+		}
+
+		IFile file = (IFile) getTextEditor().getEditorInput().getAdapter(IFile.class);
+
+		VEXFileFormator formator = new VEXFileFormator();
+		try {
+			formator.format(document, file.getContentDescription().getContentType().getId());
+		} catch (CoreException e) {
+			e.printStackTrace();
+		}
+
+	}
+
+	/**
+	 * @param buffer
+	 * @return
+	 */
+	private int getCursorOffset(TemplateBuffer buffer) {
+		TemplateVariable[] variables = buffer.getVariables();
+		for (int i = 0; i != variables.length; i++) {
+			TemplateVariable variable = variables[i];
+			if (variable.getType().equals(GlobalTemplateVariables.Cursor.NAME))
+				return variable.getOffsets()[0];
+		}
+
+		return buffer.getString().length();
+	}
+
+	/**
+	 * update eclipse workbench status bar message
+	 * 
+	 * @author BOB
+	 * @param message
+	 */
+	private void updateStatusBarMessage(String message) {
+		if (slManager != null) {
+			if (slManager instanceof SubStatusLineManager) {
+				((SubStatusLineManager) slManager).setVisible(true);
+			}
+			slManager.setMessage(message);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXFileChecker.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXFileChecker.java
new file mode 100755
index 0000000..6f334d6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXFileChecker.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex;
+
+public interface VEXFileChecker {
+
+	public abstract void doCheck(String javaName);
+
+	public abstract void deleteMarkers();
+
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXFileFormator.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXFileFormator.java
new file mode 100755
index 0000000..b58de8e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXFileFormator.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex;
+
+import java.io.IOException;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.wst.sse.core.internal.format.IStructuredFormatProcessor;
+import org.eclipse.wst.sse.ui.internal.FormatProcessorsExtensionReader;
+
+/**
+ * @author yyang
+ */
+public class VEXFileFormator {
+	public void format(IDocument document, String contentId) {
+		format(document, contentId, 0, document.getLength());
+	}
+
+	public void format(IDocument document, String contentId, int offset, int length) {
+		try {
+			IStructuredFormatProcessor processor = getFormatProcessor(contentId);
+			if (processor != null) {
+				processor.formatDocument(document, offset, length);
+			}
+		} catch (IOException e) {
+			e.printStackTrace();
+		} catch (CoreException e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected IStructuredFormatProcessor getFormatProcessor(String contentTypeId) {
+		return FormatProcessorsExtensionReader.getInstance().getFormatProcessor(contentTypeId);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXRenderRegistry.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXRenderRegistry.java
new file mode 100755
index 0000000..d0b266d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXRenderRegistry.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.swt.widgets.Composite;
+
+public class VEXRenderRegistry {
+
+	public static final String EXTENSION_ID = "org.eclipse.xwt.vex.render";
+
+	private VEXRenderRegistry() {
+	}
+
+	public static VEXRenderer getRender(Composite container) {
+		VEXRenderer render = getRender();
+		if (render != null && render instanceof AbstractVEXRenderer) {
+			((AbstractVEXRenderer) render).setContainer(container);
+		}
+		return render;
+	}
+
+	public static VEXRenderer getRender() {
+		IConfigurationElement[] configElem = Platform.getExtensionRegistry().getConfigurationElementsFor(EXTENSION_ID);
+		if (configElem != null && configElem.length > 0) {
+			try {
+				return (VEXRenderer) configElem[0].createExecutableExtension("class");
+			} catch (CoreException e) {
+				return null;
+			}
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXRenderer.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXRenderer.java
new file mode 100755
index 0000000..de89c3e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXRenderer.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex;
+
+import org.eclipse.core.resources.IFile;
+
+public interface VEXRenderer {
+
+	boolean updateView(String code, IFile file);
+
+	void dispose();
+
+	/**
+	 * return the class to handle the events
+	 * 
+	 * @return
+	 */
+	String getHostClassName();
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXSharedImages.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXSharedImages.java
new file mode 100755
index 0000000..a64dd57
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXSharedImages.java
@@ -0,0 +1,114 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex;
+
+import java.io.File;
+import java.net.URL;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.ImageRegistry;
+import org.eclipse.swt.graphics.Image;
+import org.osgi.framework.Bundle;
+
+/**
+ * Image manager.
+ * 
+ * @author yyang
+ */
+public class VEXSharedImages {
+	public static final String[] IMAGE_SUFFIX = new String[] { ".png", ".gif" };
+
+	public static final IPath ICONS_PATH = new Path("icons"); //$NON-NLS-1$
+	private static ImageRegistry fgImageRegistry;
+
+	/**
+	 * Returns the image managed under the given key in this registry.
+	 * 
+	 * @param key
+	 *            the image's key
+	 * @return the image managed under the given key
+	 */
+	public static Image get(String key) {
+		Image image = getImageRegistry().get(key);
+		if (image == null) {
+			image = ImageDescriptor.getMissingImageDescriptor().createImage();
+		}
+		return image;
+	}
+
+	public static ImageDescriptor getImageDescriptor(String key) {
+		ImageDescriptor des = getImageRegistry().getDescriptor(key);
+		if (des == null) {
+			des = ImageDescriptor.getMissingImageDescriptor();
+		}
+		return des;
+	}
+
+	private static ImageRegistry getImageRegistry() {
+		if (fgImageRegistry == null) {
+			fgImageRegistry = new ImageRegistry();
+			loadImages();
+		}
+		return fgImageRegistry;
+	}
+
+	private static void loadImages() {
+		Bundle bundle = Activator.getDefault().getBundle();
+		String prefix = "platform:/plugin/" + bundle.getSymbolicName() + "/" + ICONS_PATH + "/";
+		try {
+			URL url = FileLocator.find(bundle, ICONS_PATH, null);
+			URL iconUrl = FileLocator.toFileURL(url);
+			String iconUrlString = iconUrl.toString();
+
+			File iconFolder = new File(new Path(iconUrl.getPath()).toOSString());
+			List<File> images = new LinkedList<File>();
+			retreiveImages(iconFolder, images);
+			for (File file : images) {
+				URL fileURL = file.toURI().toURL();
+				ImageDescriptor descriptor = ImageDescriptor.createFromURL(fileURL);
+				String fileURLString = fileURL.toString();
+				if (fileURLString.startsWith(iconUrlString)) {
+					String suffix = fileURLString.substring(iconUrlString.length());
+					String key = prefix + suffix;
+					fgImageRegistry.put(key, descriptor);
+				}
+			}
+
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+
+	}
+
+	private static void retreiveImages(File icon, List<File> images) {
+		if (icon.isDirectory()) {
+			for (File file : icon.listFiles()) {
+				retreiveImages(file, images);
+			}
+		} else {
+			String name = icon.getName();
+			if (name.endsWith(IMAGE_SUFFIX[0]) || name.endsWith(IMAGE_SUFFIX[1])) {
+				images.add(icon);
+			}
+		}
+	}
+
+	public static void initialize() {
+		getImageRegistry();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXTextEditorHelper.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXTextEditorHelper.java
new file mode 100755
index 0000000..7655d58
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/VEXTextEditorHelper.java
@@ -0,0 +1,208 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex;
+
+import java.lang.reflect.Method;
+
+import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
+import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
+import org.eclipse.xwt.vex.toolpalette.ContextType;
+import org.w3c.dom.Node;
+
+public class VEXTextEditorHelper {
+	public static int getOffsetAtPoint(ITextViewer textViewer, Point absolutePosition) {
+		StyledText styledText = textViewer.getTextWidget();
+		Point relativePosition = styledText.toControl(absolutePosition);
+
+		try {
+			Method method = StyledText.class.getDeclaredMethod("getOffsetAtPoint", int.class, int.class, int[].class, boolean.class);
+			method.setAccessible(true);
+
+			int[] trailing = new int[1];
+			int widgetOffset = (Integer) method.invoke(styledText, relativePosition.x, relativePosition.y, trailing, false);
+			widgetOffset += trailing[0];
+			return widgetOffset;
+		} catch (Exception e) {
+			throw new RuntimeException(e);
+		}
+	}
+
+	public static IDOMNode getCurrentNode(ITextViewer textViewer, Point absolutePosition) {
+		return getNode(textViewer, getOffsetAtPoint(textViewer, absolutePosition));
+	}
+
+	public static IDOMNode getNode(ITextViewer textViewer, int documentPosition) {
+		return (IDOMNode) ContentAssistUtils.getNodeAt(textViewer, documentPosition);
+	}
+
+	/**
+	 * find the car
+	 * 
+	 * @param textViewer
+	 * @param contextType
+	 * @return
+	 */
+	public static int findContextTypeOffset(ITextViewer textViewer, ContextType contextType) {
+		int documentPosition = textViewer.getTextWidget().getCaretOffset();
+		return findContextTypeOffset(textViewer, documentPosition, contextType);
+	}
+
+	public static int findContextTypeOffset(ITextViewer textViewer, int documentPosition, ContextType contextType) {
+		Node node = getNode(textViewer, documentPosition);
+		ITextRegion completionRegion = getCompletionRegion(documentPosition, node);
+		System.out.println(completionRegion.getStart() + ", " + completionRegion.getEnd() + ", " + completionRegion.getLength());
+		String regionType = completionRegion.getType();
+
+		return documentPosition;
+	}
+
+	public static ContextType getCurrentContextType(ITextViewer textViewer) {
+		int documentPosition = textViewer.getTextWidget().getCaretOffset();
+		return getContextType(textViewer, documentPosition);
+	}
+
+	public static ContextType getContextType(ITextViewer textViewer, int documentPosition) {
+		Node node = getNode(textViewer, documentPosition);
+		ITextRegion completionRegion = getCompletionRegion(documentPosition, node);
+		System.out.println(completionRegion.getStart() + ", " + completionRegion.getEnd() + ", " + completionRegion.getLength());
+		String regionType = completionRegion.getType();
+
+		IStructuredDocumentRegion sdRegion = ContentAssistUtils.getStructuredDocumentRegion(textViewer, documentPosition);
+		return ContextType.NONE;
+	}
+
+	static public ITextRegion getCompletionRegion(int documentPosition, Node domnode) {
+		if (domnode == null) {
+			return null;
+		}
+
+		ITextRegion region = null;
+		int offset = documentPosition;
+		IStructuredDocumentRegion flatNode = null;
+		IDOMNode node = (IDOMNode) domnode;
+
+		if (node.getNodeType() == Node.DOCUMENT_NODE) {
+			if (node.getStructuredDocument().getLength() == 0) {
+				return null;
+			}
+			ITextRegion result = node.getStructuredDocument().getRegionAtCharacterOffset(offset).getRegionAtCharacterOffset(offset);
+			while (result == null) {
+				offset--;
+				result = node.getStructuredDocument().getRegionAtCharacterOffset(offset).getRegionAtCharacterOffset(offset);
+			}
+			return result;
+		}
+
+		IStructuredDocumentRegion startTag = node.getStartStructuredDocumentRegion();
+		IStructuredDocumentRegion endTag = node.getEndStructuredDocumentRegion();
+
+		// Determine if the offset is within the start
+		// IStructuredDocumentRegion, end IStructuredDocumentRegion, or
+		// somewhere within the Node's XML content.
+		if ((startTag != null) && (startTag.getStartOffset() <= offset) && (offset < startTag.getStartOffset() + startTag.getLength())) {
+			flatNode = startTag;
+		} else if ((endTag != null) && (endTag.getStartOffset() <= offset) && (offset < endTag.getStartOffset() + endTag.getLength())) {
+			flatNode = endTag;
+		}
+
+		if (flatNode != null) {
+			// the offset is definitely within the start or end tag, continue
+			// on and find the region
+			region = getCompletionRegion(offset, flatNode);
+		} else {
+			// the docPosition is neither within the start nor the end, so it
+			// must be content
+			flatNode = node.getStructuredDocument().getRegionAtCharacterOffset(offset);
+			// (pa) ITextRegion refactor
+			// if (flatNode.contains(documentPosition)) {
+			if ((flatNode.getStartOffset() <= documentPosition) && (flatNode.getEndOffset() >= documentPosition)) {
+				// we're interesting in completing/extending the previous
+				// IStructuredDocumentRegion if the current
+				// IStructuredDocumentRegion isn't plain content or if it's
+				// preceded by an orphan '<'
+				if ((offset == flatNode.getStartOffset()) && (flatNode.getPrevious() != null) && (((flatNode.getRegionAtCharacterOffset(documentPosition) != null) && (flatNode.getRegionAtCharacterOffset(documentPosition).getType() != DOMRegionContext.XML_CONTENT)) || (flatNode.getPrevious().getLastRegion().getType() == DOMRegionContext.XML_TAG_OPEN) || (flatNode.getPrevious().getLastRegion().getType() == DOMRegionContext.XML_END_TAG_OPEN))) {
+					// Is the region also the start of the node? If so, the
+					// previous IStructuredDocumentRegion is
+					// where to look for a useful region.
+					region = flatNode.getPrevious().getLastRegion();
+				} else if (flatNode.getEndOffset() == documentPosition) {
+					region = flatNode.getLastRegion();
+				} else {
+					region = flatNode.getFirstRegion();
+				}
+			} else {
+				// catch end of document positions where the docPosition isn't
+				// in a IStructuredDocumentRegion
+				region = flatNode.getLastRegion();
+			}
+		}
+
+		return region;
+	}
+
+	static protected ITextRegion getCompletionRegion(int offset, IStructuredDocumentRegion sdRegion) {
+		ITextRegion region = sdRegion.getRegionAtCharacterOffset(offset);
+		if (region == null) {
+			return null;
+		}
+
+		if (sdRegion.getStartOffset(region) == offset) {
+			// The offset is at the beginning of the region
+			if ((sdRegion.getStartOffset(region) == sdRegion.getStartOffset()) && (sdRegion.getPrevious() != null) && (!sdRegion.getPrevious().isEnded())) {
+				// Is the region also the start of the node? If so, the
+				// previous IStructuredDocumentRegion is
+				// where to look for a useful region.
+				region = sdRegion.getPrevious().getRegionAtCharacterOffset(offset - 1);
+			} else {
+				// Is there no separating whitespace from the previous region?
+				// If not,
+				// then that region is the important one
+				ITextRegion previousRegion = sdRegion.getRegionAtCharacterOffset(offset - 1);
+				if ((previousRegion != null) && (previousRegion != region) && (previousRegion.getTextLength() == previousRegion.getLength())) {
+					region = previousRegion;
+				}
+			}
+		} else {
+			// The offset is NOT at the beginning of the region
+			if (offset > sdRegion.getStartOffset(region) + region.getTextLength()) {
+				// Is the offset within the whitespace after the text in this
+				// region?
+				// If so, use the next region
+				ITextRegion nextRegion = sdRegion.getRegionAtCharacterOffset(sdRegion.getStartOffset(region) + region.getLength());
+				if (nextRegion != null) {
+					region = nextRegion;
+				}
+			} else {
+				// Is the offset within the important text for this region?
+				// If so, then we've already got the right one.
+			}
+		}
+
+		// valid WHITE_SPACE region handler (#179924)
+		if ((region != null) && (region.getType() == DOMRegionContext.WHITE_SPACE)) {
+			ITextRegion previousRegion = sdRegion.getRegionAtCharacterOffset(sdRegion.getStartOffset(region) - 1);
+			if (previousRegion != null) {
+				region = previousRegion;
+			}
+		}
+
+		return region;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/actions/GenerateActionDelegate.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/actions/GenerateActionDelegate.java
new file mode 100755
index 0000000..6b7d142
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/actions/GenerateActionDelegate.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.actions;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IEditorActionDelegate;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.sse.ui.StructuredTextEditor;
+import org.eclipse.xwt.vex.VEXEditor;
+
+public class GenerateActionDelegate implements IEditorActionDelegate {
+	protected VEXEditor editor;
+
+	public void run(IAction action) {
+		if (editor != null) {
+			editor.generateCLRCodeAction();
+		}
+	}
+
+	public void selectionChanged(IAction action, ISelection selection) {
+		action.setEnabled(editor != null);
+	}
+
+	public void setActiveEditor(IAction action, IEditorPart targetEditor) {
+		if (targetEditor instanceof StructuredTextEditor) {
+			StructuredTextEditor structuredTextEditor = (StructuredTextEditor) targetEditor;
+			IEditorPart editorPart = structuredTextEditor.getEditorPart();
+			if (editorPart instanceof VEXEditor) {
+				editor = (VEXEditor) editorPart;
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/actions/OpenDefinitionActionDelegate.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/actions/OpenDefinitionActionDelegate.java
new file mode 100755
index 0000000..58b2047
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/actions/OpenDefinitionActionDelegate.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.actions;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IEditorActionDelegate;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.sse.ui.StructuredTextEditor;
+import org.eclipse.xwt.vex.VEXEditor;
+
+public class OpenDefinitionActionDelegate implements IEditorActionDelegate {
+	protected VEXEditor editor;
+
+	public void run(IAction action) {
+		if (editor != null) {
+			editor.openDefinitionAction();
+		}
+	}
+
+	public void selectionChanged(IAction action, ISelection selection) {
+		action.setEnabled(editor != null);
+	}
+
+	public void setActiveEditor(IAction action, IEditorPart targetEditor) {
+		if (targetEditor instanceof StructuredTextEditor) {
+			StructuredTextEditor structuredTextEditor = (StructuredTextEditor) targetEditor;
+			IEditorPart editorPart = structuredTextEditor.getEditorPart();
+			if (editorPart instanceof VEXEditor) {
+				editor = (VEXEditor) editorPart;
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/contentassist/CustomTemplateProposal.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/contentassist/CustomTemplateProposal.java
new file mode 100755
index 0000000..0d35641
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/contentassist/CustomTemplateProposal.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.contentassist;
+
+import org.eclipse.jface.text.IRegion;
+import org.eclipse.jface.text.templates.Template;
+import org.eclipse.jface.text.templates.TemplateContext;
+import org.eclipse.jface.text.templates.TemplateProposal;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.wst.sse.core.utils.StringUtils;
+import org.eclipse.wst.sse.ui.internal.contentassist.IRelevanceCompletionProposal;
+
+/**
+ * Purpose of this class is to make the additional proposal info into content fit for an HTML viewer (by escaping characters)
+ */
+public class CustomTemplateProposal extends TemplateProposal implements IRelevanceCompletionProposal {
+	// copies of this class exist in:
+	// org.eclipse.jst.jsp.ui.internal.contentassist
+	// org.eclipse.wst.html.ui.internal.contentassist
+	// org.eclipse.wst.xml.ui.internal.contentassist
+
+	public CustomTemplateProposal(Template template, TemplateContext context, IRegion region, Image image, int relevance) {
+		super(template, context, region, image, relevance);
+	}
+
+	public String getAdditionalProposalInfo() {
+		String additionalInfo = super.getAdditionalProposalInfo();
+		return StringUtils.convertToHTMLContent(additionalInfo);
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/contentassist/SelectionCompletionProposal.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/contentassist/SelectionCompletionProposal.java
new file mode 100755
index 0000000..ce382fc
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/contentassist/SelectionCompletionProposal.java
@@ -0,0 +1,203 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.contentassist;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.contentassist.ICompletionProposal;
+import org.eclipse.jface.text.contentassist.IContextInformation;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+
+public class SelectionCompletionProposal implements ICompletionProposal {
+
+	/** The string to be displayed in the completion proposal popup. */
+	private String fDisplayString;
+	/** The replacement string. */
+	private String fReplacementString;
+	/** The replacement offset. */
+	private int fReplacementOffset;
+	/** The replacement length. */
+	private int fReplacementLength;
+	/** The cursor position after this proposal has been applied. */
+	private int fCursorPosition;
+
+	/** The length of selection after this proposal has been applied. */
+	private int fSelectionlength;
+
+	/** The image to be displayed in the completion proposal popup. */
+	private Image fImage;
+	/** The context information of this proposal. */
+	private IContextInformation fContextInformation;
+	/** The additional info of this proposal. */
+	private String fAdditionalProposalInfo;
+
+	/**
+	 * Creates a new completion proposal based on the provided information. The replacement string is considered being the display string too. All remaining fields are set to <code>null</code>.
+	 * 
+	 * @param replacementString
+	 *            the actual string to be inserted into the document
+	 * @param replacementOffset
+	 *            the offset of the text to be replaced
+	 * @param replacementLength
+	 *            the length of the text to be replaced
+	 * @param cursorPosition
+	 *            the position of the cursor following the insert relative to replacementOffset
+	 */
+	public SelectionCompletionProposal(String replacementString, int replacementOffset, int replacementLength, int cursorPosition) {
+		this(replacementString, replacementOffset, replacementLength, cursorPosition, 0, null, null, null, null);
+	}
+
+	/**
+	 * Creates a new completion proposal. All fields are initialized based on the provided information.
+	 * 
+	 * @param replacementString
+	 *            the actual string to be inserted into the document
+	 * @param replacementOffset
+	 *            the offset of the text to be replaced
+	 * @param replacementLength
+	 *            the length of the text to be replaced
+	 * @param cursorPosition
+	 *            the position of the cursor following the insert relative to replacementOffset
+	 * @param image
+	 *            the image to display for this proposal
+	 * @param displayString
+	 *            the string to be displayed for the proposal
+	 * @param contextInformation
+	 *            the context information associated with this proposal
+	 * @param additionalProposalInfo
+	 *            the additional information associated with this proposal
+	 */
+	public SelectionCompletionProposal(String replacementString, int replacementOffset, int replacementLength, int cursorPosition, int selectionLength, Image image, String displayString, IContextInformation contextInformation, String additionalProposalInfo) {
+		Assert.isNotNull(replacementString);
+		Assert.isTrue(replacementOffset >= 0);
+		Assert.isTrue(replacementLength >= 0);
+		Assert.isTrue(cursorPosition >= 0);
+
+		fReplacementString = replacementString;
+		fReplacementOffset = replacementOffset;
+		fReplacementLength = replacementLength;
+		fCursorPosition = cursorPosition;
+		fSelectionlength = selectionLength;
+		fImage = image;
+		fDisplayString = displayString;
+		fContextInformation = contextInformation;
+		fAdditionalProposalInfo = additionalProposalInfo;
+	}
+
+	/*
+	 * @see ICompletionProposal#apply(IDocument)
+	 */
+	public void apply(IDocument document) {
+		try {
+			document.replace(fReplacementOffset, fReplacementLength, fReplacementString);
+		} catch (BadLocationException x) {
+			// ignore
+		}
+	}
+
+	/*
+	 * @see ICompletionProposal#getSelection(IDocument)
+	 */
+	public Point getSelection(IDocument document) {
+		return new Point(fReplacementOffset + fCursorPosition, fSelectionlength);
+	}
+
+	/*
+	 * @see ICompletionProposal#getContextInformation()
+	 */
+	public IContextInformation getContextInformation() {
+		return fContextInformation;
+	}
+
+	/*
+	 * @see ICompletionProposal#getImage()
+	 */
+	public Image getImage() {
+		return fImage;
+	}
+
+	/*
+	 * @see ICompletionProposal#getDisplayString()
+	 */
+	public String getDisplayString() {
+		if (fDisplayString != null)
+			return fDisplayString;
+		return fReplacementString;
+	}
+
+	/*
+	 * @see ICompletionProposal#getAdditionalProposalInfo()
+	 */
+	public String getAdditionalProposalInfo() {
+		return fAdditionalProposalInfo;
+	}
+
+	public void setDisplayString(String displayString) {
+		fDisplayString = displayString;
+	}
+
+	public String getReplacementString() {
+		return fReplacementString;
+	}
+
+	public void setReplacementString(String replacementString) {
+		fReplacementString = replacementString;
+	}
+
+	public int getReplacementOffset() {
+		return fReplacementOffset;
+	}
+
+	public void setReplacementOffset(int replacementOffset) {
+		fReplacementOffset = replacementOffset;
+	}
+
+	public int getReplacementLength() {
+		return fReplacementLength;
+	}
+
+	public void setReplacementLength(int replacementLength) {
+		fReplacementLength = replacementLength;
+	}
+
+	public int getCursorPosition() {
+		return fCursorPosition;
+	}
+
+	public void setCursorPosition(int cursorPosition) {
+		fCursorPosition = cursorPosition;
+	}
+
+	public int getSelectionlength() {
+		return fSelectionlength;
+	}
+
+	public void setSelectionlength(int selectionlength) {
+		fSelectionlength = selectionlength;
+	}
+
+	public void setImage(Image image) {
+		fImage = image;
+	}
+
+	public void setContextInformation(IContextInformation contextInformation) {
+		fContextInformation = contextInformation;
+	}
+
+	public void setAdditionalProposalInfo(String additionalProposalInfo) {
+		fAdditionalProposalInfo = additionalProposalInfo;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/contentassist/VEXQuickAssistProcessor.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/contentassist/VEXQuickAssistProcessor.java
new file mode 100755
index 0000000..d28a94c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/contentassist/VEXQuickAssistProcessor.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.contentassist;
+
+public class VEXQuickAssistProcessor extends org.eclipse.wst.xml.ui.internal.correction.XMLQuickAssistProcessor {
+
+	public VEXQuickAssistProcessor() {
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/contentassist/VEXTemplateCompletionProcessor.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/contentassist/VEXTemplateCompletionProcessor.java
new file mode 100755
index 0000000..1f0bb25
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/contentassist/VEXTemplateCompletionProcessor.java
@@ -0,0 +1,159 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.contentassist;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IRegion;
+import org.eclipse.jface.text.ITextSelection;
+import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.jface.text.Region;
+import org.eclipse.jface.text.contentassist.ICompletionProposal;
+import org.eclipse.jface.text.templates.ContextTypeRegistry;
+import org.eclipse.jface.text.templates.Template;
+import org.eclipse.jface.text.templates.TemplateCompletionProcessor;
+import org.eclipse.jface.text.templates.TemplateContext;
+import org.eclipse.jface.text.templates.TemplateContextType;
+import org.eclipse.jface.text.templates.TemplateException;
+import org.eclipse.jface.text.templates.TemplateProposal;
+import org.eclipse.jface.text.templates.persistence.TemplateStore;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
+import org.eclipse.wst.xml.ui.internal.contentassist.ReplaceNameTemplateContext;
+import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImageHelper;
+import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImages;
+
+/**
+ * Completion processor for XML Templates. Most of the work is already done by the XML Content Assist processor, so by the time the XMLTemplateCompletionProcessor is asked for content assist proposals, the XML content assist processor has already set the context type for templates.
+ */
+public class VEXTemplateCompletionProcessor extends TemplateCompletionProcessor {
+	private static final class ProposalComparator implements Comparator {
+		public int compare(Object o1, Object o2) {
+			return ((TemplateProposal) o2).getRelevance() - ((TemplateProposal) o1).getRelevance();
+		}
+	}
+
+	private static final Comparator fgProposalComparator = new ProposalComparator();
+	private String fContextTypeId = null;
+
+	/*
+	 * Copied from super class except instead of calling createContext(viewer, region) call createContext(viewer, region, offset) instead
+	 */
+	public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int offset) {
+
+		ITextSelection selection = (ITextSelection) viewer.getSelectionProvider().getSelection();
+
+		// adjust offset to end of normalized selection
+		if (selection.getOffset() == offset) {
+			offset = selection.getOffset() + selection.getLength();
+		}
+
+		String prefix = extractPrefix(viewer, offset);
+		Region region = new Region(offset - prefix.length(), prefix.length());
+		TemplateContext context = createContext(viewer, region, offset);
+		if (context == null) {
+			return new ICompletionProposal[0];
+		}
+
+		// name of the selection variables {line, word}_selection
+		context.setVariable("selection", selection.getText()); //$NON-NLS-1$
+
+		Template[] templates = getTemplates(context.getContextType().getId());
+
+		List matches = new ArrayList();
+		for (int i = 0; i < templates.length; i++) {
+			Template template = templates[i];
+			try {
+				context.getContextType().validate(template.getPattern());
+			} catch (TemplateException e) {
+				continue;
+			}
+			if (template.matches(prefix, context.getContextType().getId())) {
+				matches.add(createProposal(template, context, (IRegion) region, getRelevance(template, prefix)));
+			}
+		}
+
+		Collections.sort(matches, fgProposalComparator);
+
+		return (ICompletionProposal[]) matches.toArray(new ICompletionProposal[matches.size()]);
+	}
+
+	/**
+	 * Creates a concrete template context for the given region in the document. This involves finding out which context type is valid at the given location, and then creating a context of this type. The default implementation returns a <code>SmartReplaceTemplateContext</code> for the context type at the given location. This takes the offset at which content assist was invoked into consideration.
+	 * 
+	 * @param viewer
+	 *            the viewer for which the context is created
+	 * @param region
+	 *            the region into <code>document</code> for which the context is created
+	 * @param offset
+	 *            the original offset where content assist was invoked
+	 * @return a template context that can handle template insertion at the given location, or <code>null</code>
+	 */
+	private TemplateContext createContext(ITextViewer viewer, IRegion region, int offset) {
+		// pretty much same code as super.createContext except create
+		// SmartReplaceTemplateContext
+		TemplateContextType contextType = getContextType(viewer, region);
+		if (contextType != null) {
+			IDocument document = viewer.getDocument();
+			return new ReplaceNameTemplateContext(contextType, document, region.getOffset(), region.getLength(), offset);
+		}
+		return null;
+	}
+
+	protected ICompletionProposal createProposal(Template template, TemplateContext context, IRegion region, int relevance) {
+		return new CustomTemplateProposal(template, context, region, getImage(template), relevance);
+	}
+
+	protected TemplateContextType getContextType(ITextViewer viewer, IRegion region) {
+		TemplateContextType type = null;
+
+		ContextTypeRegistry registry = getTemplateContextRegistry();
+		if (registry != null) {
+			type = registry.getContextType(fContextTypeId);
+		}
+
+		return type;
+	}
+
+	protected Image getImage(Template template) {
+		// just return the same image for now
+		return XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_TAG_MACRO);
+	}
+
+	private ContextTypeRegistry getTemplateContextRegistry() {
+		return XMLUIPlugin.getDefault().getTemplateContextRegistry();
+	}
+
+	protected Template[] getTemplates(String contextTypeId) {
+		Template templates[] = null;
+
+		TemplateStore store = getTemplateStore();
+		if (store != null) {
+			templates = store.getTemplates(contextTypeId);
+		}
+
+		return templates;
+	}
+
+	private TemplateStore getTemplateStore() {
+		return XMLUIPlugin.getDefault().getTemplateStore();
+	}
+
+	public void setContextType(String contextTypeId) {
+		fContextTypeId = contextTypeId;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/dom/DomHelper.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/dom/DomHelper.java
new file mode 100755
index 0000000..88a8873
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/dom/DomHelper.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.dom;
+
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+
+public class DomHelper {
+	public static String XMLNS = "xmlns";
+
+	/**
+	 * resolve the namespace
+	 * 
+	 * @param node
+	 * @return
+	 */
+	public static String lookupNamespaceURI(Node node) {
+		String string = node.getNamespaceURI();
+		if (string != null) {
+			return string;
+		}
+		return lookupNamespaceURI(node, node.getPrefix());
+	}
+
+	public static String lookupNamespaceURI(Node node, Node attr) {
+		String string = attr.getNamespaceURI();
+		if (string != null) {
+			return string;
+		}
+		return lookupNamespaceURI(node, attr.getPrefix());
+	}
+
+	public static String lookupNamespaceURI(Node node, String prefix) {
+		NamedNodeMap map = node.getAttributes();
+		if (map != null && map.getLength() > 0) {
+			for (int i = 0; i < map.getLength(); i++) {
+				Node attr = map.item(i);
+				String name = attr.getNodeName();
+				if (name.startsWith(XMLNS)) {
+					int index = name.indexOf(':');
+					if (index == -1 || prefix == null) {
+						if (index == -1 && prefix == null) {
+							return attr.getNodeValue();
+						}
+						continue;
+					}
+					String prefixName = name.substring(index + 1);
+					if (prefix.equals(prefixName)) {
+						return attr.getNodeValue();
+					}
+				}
+			}
+		}
+
+		Node nodeParent = node.getParentNode();
+		if (nodeParent != null) {
+			return lookupNamespaceURI(nodeParent, prefix);
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/messages.properties b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/messages.properties
new file mode 100755
index 0000000..3943268
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/messages.properties
@@ -0,0 +1,88 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+# /*******************************************************************************
+#  * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+#  * All rights reserved. This program and the accompanying materials
+#  * are made available under the terms of the Eclipse Public License 2.0
+#  * which accompanies this distribution, and is available at
+  * https://www.eclipse.org/legal/epl-2.0/
+  *
+  * SPDX-License-Identifier: EPL-2.0
+#  * 
+#  * Contributors:
+#  *     Soyatec - initial API and implementation
+#  *******************************************************************************/
+CustomizeComponentFactory_Customize=Customize
+CustomizePaletteDialog_BrowseLargeIcon=Browse...
+CustomizePaletteDialog_CodeTemplate=Code Template:
+CustomizePaletteDialog_Content=Content:
+CustomizePaletteDialog_ContentError=The content field should have contents
+CustomizePaletteDialog_ErrorMessage=This components already exist, please use another name
+CustomizePaletteDialog_ErrorTitle=Error
+CustomizePaletteDialog_Header=Customize Dialog
+CustomizePaletteDialog_Icon=Icon:
+CustomizePaletteDialog_LargeIcon=Large Icon:
+CustomizePaletteDialog_Message=Please set information about customize component
+CustomizePaletteDialog_Name=Name:
+CustomizePaletteDialog_NameError=The name field should have contents
+CustomizePaletteDialog_Scope=Scope:
+CustomizePaletteDialog_ScopeError=The scope field should have contents
+CustomizePaletteDialog_SelectionDialog_LargeText=Please select an large icon from tree list
+CustomizePaletteDialog_SelectionDialog_LargeTitle=Select an large icon
+CustomizePaletteDialog_SelectionDialog_Text=Please select an icon from tree list
+CustomizePaletteDialog_SelectionDialog_Title=Select an icon
+CustomizePaletteDialog_Title=Customize Palette Component
+CustomizePaletteDialog_ToolTip=ToolTip:
+CustomizePaletteDialog_BrowseIcon=Browse...
+EventHandleDialogTitle = Handler Operation
+EventHandleDialog_New_Handler = New
+EventHandleDialog_New_Handler_ToolTip = Generate a new event handler
+EventHandleDialog_Rename_Handler = Rename
+EventHandleDialog_Rename_Handler_ToolTip = Rename existing event handler
+EventHandleDialog_Select_Existing_Handler = Select an existing
+EventHandleDialog_Select_Existing_Handler_ToolTip = Select an existing event handler
+EventHandleDialog_Operation = Event Handler Operation:
+EventHandleDialog_Input_Handler_Name = Name:
+EventHandleDialog_Select_Handler = Handler:
+EventHandleDialog_Error_Handler_Name_Null = The handle's name can't be null.
+EventHandleDialog_Error_Handler_Name_Exists = The name exists, please input another.
+EventHandleDialog_Question_Handler_Name_Refactoring = The handler {0} is used by other elements, do you want to rename it.
+ExportCustomizeComponentsAction_ActionText=&Export Customize Components
+ExportCustomizeComponentsAction_DialogText=export customize components
+ExportCustomizeComponentsAction_INFORMATION=Information
+ExportCustomizeComponentsAction_SUCCESS=The customize component successfuly export into file 
+PaletteResourceManager_icons=icons
+PaletteResourceManager_toolkit=tools/toolkit.toolpalette
+PaletteRootFactory_Customize=Customize
+PaletteRootFactory_Dynamic=Dynamic
+PaletteRootFactory_Shapes=Shapes
+ToolPaletteViewerProvider.VIEWER_EDITOR=VIEWER_EDITOR
+VEXEditor_Dynamic=Dynamic
+VEXEditor_DynamicCategory=Dynamic Category
+VEXEditor.Dynamic=Dynamic
+VEXEditor.DynamicCategory=Dynamic Category
+VEXEditor_NODE=node 
+VEXEditor_SUBFIX_FAIL=\ can not be insert
+VEXEditor_SUBFIX_OK=\ has been insert
+CustomizeComponentFactory_CustomizeCategory=Customize Category
+CustomizeComponentFactory_VIEWER_EDITOR=VIEWER_EDITOR
+CustomizePaletteDialog_Name_ToolTip=Please enter customized component name
+CustomizePaletteDialog_Scope_ToolTip=Please enter customized component scope
+CustomizePaletteDialog_ToolTip_ToolTip=Please enter customized component tooltip
+CustomizePaletteDialog_Content_ToolTip=Please enter customized component content template
+CustomizePaletteDialog_Icon_ToolTip=Click 'Browse' button to select an Icon for customized component
+CustomizePaletteDialog_LargeIcon_ToolTip=Click 'Browse' button to select an Large Icon for customized component
+ImportCustomizeComponentsAction_ActionText=&Import Customize Components
+ImportCustomizeComponentsAction_DialogText=import customize components
+ImportCustomizeComponentsAction_ERROR=error
+ImportCustomizeComponentsAction_ERROR_INFORMATION=the customize component can not be imported, please check the customize component file
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/CustomPalettePage.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/CustomPalettePage.java
new file mode 100755
index 0000000..4615179
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/CustomPalettePage.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette;
+
+import org.eclipse.gef.ui.palette.PaletteViewer;
+import org.eclipse.gef.ui.palette.PaletteViewerProvider;
+import org.eclipse.gef.ui.views.palette.PaletteViewerPage;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.xwt.vex.palette.actions.HideCustomizePartPaletteAction;
+import org.eclipse.xwt.vex.palette.actions.HideDynamicPartPaletteAction;
+import org.eclipse.xwt.vex.palette.actions.HideToolPartPaletteAction;
+
+/**
+ * @author yyang
+ * 
+ */
+public class CustomPalettePage extends PaletteViewerPage {
+
+	private HideToolPartPaletteAction hideToolPartPaletteAction;
+	private HideDynamicPartPaletteAction hideDynamicPartPaletteAction;
+	private HideCustomizePartPaletteAction hideCustomizePartPaletteAction;
+
+	/**
+	 * Constructor
+	 * 
+	 * @param provider
+	 *            the provider used to create a PaletteViewer
+	 */
+	public CustomPalettePage(PaletteViewerProvider provider) {
+		super(provider);
+	}
+
+	/**
+	 * @return the PaletteViewer created and displayed by this page
+	 */
+	public PaletteViewer getPaletteViewer() {
+		return viewer;
+	}
+
+	@Override
+	public void setActionBars(IActionBars actionBars) {
+		// TODO Auto-generated method stub
+		hideToolPartPaletteAction = new HideToolPartPaletteAction();
+		hideDynamicPartPaletteAction = new HideDynamicPartPaletteAction();
+		hideCustomizePartPaletteAction = new HideCustomizePartPaletteAction();
+
+		fillMenuBar(actionBars.getMenuManager());
+		fillToolBar(actionBars.getToolBarManager());
+	}
+
+	private void fillMenuBar(IMenuManager manager) {
+		manager.add(hideToolPartPaletteAction);
+		manager.add(hideDynamicPartPaletteAction);
+		manager.add(hideCustomizePartPaletteAction);
+	}
+
+	protected void fillToolBar(IToolBarManager manager) {
+		manager.add(hideToolPartPaletteAction);
+		manager.add(hideDynamicPartPaletteAction);
+		manager.add(hideCustomizePartPaletteAction);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/CustomWidgetDrawer.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/CustomWidgetDrawer.java
new file mode 100755
index 0000000..ad76d4c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/CustomWidgetDrawer.java
@@ -0,0 +1,114 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Anaik Trihoreau <anaik@anyware-tech.com> - inital API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette;
+
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.gef.palette.CombinedTemplateCreationEntry;
+import org.eclipse.gef.palette.PaletteDrawer;
+import org.eclipse.gef.palette.PaletteEntry;
+import org.eclipse.gef.requests.SimpleFactory;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.xwt.vex.Activator;
+import org.eclipse.xwt.vex.palette.customize.CustomWidgetManager;
+import org.eclipse.xwt.vex.palette.customize.CustomWidgetManager.Category;
+import org.eclipse.xwt.vex.palette.customize.CustomWidgetManager.Tool;
+import org.eclipse.xwt.vex.palette.customize.CustomWidgetManager.WidgetIcon;
+import org.eclipse.xwt.vex.palette.part.ToolPaletteDrawer;
+import org.eclipse.xwt.vex.toolpalette.Entry;
+import org.eclipse.xwt.vex.toolpalette.ToolPaletteFactory;
+
+public class CustomWidgetDrawer
+{
+
+	public static void addCustomWidgets(PaletteDrawer parentDrawer)
+	{
+
+		Map<Category, List<Tool>> widgetMap = CustomWidgetManager.getInstance().getWidgetCategories();
+
+		for (Map.Entry<Category, List<Tool>> widgetMapEntry: widgetMap.entrySet())
+		{
+			Category widgetCategory = widgetMapEntry.getKey();
+			List<Tool> widgetList = widgetMapEntry.getValue();
+			if (!widgetList.isEmpty())
+			{
+				// Create a new palette drawer
+				String nameCat = widgetCategory.getName();
+				PaletteDrawer componentsDrawer = findPaletteDrawer(parentDrawer, nameCat);
+				if (componentsDrawer == null)
+				{
+					componentsDrawer = new ToolPaletteDrawer(widgetCategory.getName());
+					componentsDrawer.setInitialState(PaletteDrawer.INITIAL_STATE_CLOSED);
+					ImageDescriptor iconCat = _getImageDescriptor(widgetCategory.getIcon());
+					componentsDrawer.setSmallIcon(iconCat);
+					componentsDrawer.setLargeIcon(iconCat);
+					parentDrawer.add(componentsDrawer);
+				}
+
+				for (Tool widget: widgetList)
+				{
+					Entry entry = ToolPaletteFactory.eINSTANCE.createEntry();
+					entry.setName(widget.getName());
+					entry.setScope(widget.getScope());
+					entry.setToolTip(widget.getToolTip());
+					entry.setContent(widget.getContent());
+					ImageDescriptor icon = _getImageDescriptor(widget.getIcon());
+
+					PaletteEntry paletteEntry = new CombinedTemplateCreationEntry(entry.getName(),
+						entry.getToolTip(), entry, new SimpleFactory(entry.getClass()), icon, icon);
+					componentsDrawer.add(paletteEntry);
+				}
+			}
+		}
+	}
+
+	/**
+	 * Finds the PaletteDrawer corresponding to the given name.
+	 * 
+	 * @param name
+	 *        the name
+	 * @return the PaletteDrawer
+	 */
+	private static PaletteDrawer findPaletteDrawer(PaletteDrawer parentDrawer, String name)
+	{
+		if (name != null)
+		{
+			for (Object object: parentDrawer.getChildren())
+			{
+				if (object instanceof PaletteDrawer)
+				{
+					PaletteDrawer paletteDrawer = (PaletteDrawer) object;
+					if (name.equals(paletteDrawer.getLabel()))
+					{
+						return paletteDrawer;
+					}
+				}
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the <code>ImageDescriptor</code> corresponding to the specified
+	 * <code>WidgetIcon</code>
+	 * 
+	 * @param widgetIcon
+	 *        the <code>WidgetIcon</code>
+	 * @return the <code>ImageDescriptor</code>
+	 */
+	private static ImageDescriptor _getImageDescriptor(WidgetIcon widgetIcon)
+	{
+		return Activator.getImageDescriptor(widgetIcon.getBundleID(), widgetIcon.getPath());
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/EntryContentProvider.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/EntryContentProvider.java
new file mode 100755
index 0000000..e3df49a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/EntryContentProvider.java
@@ -0,0 +1,78 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette;
+
+import java.util.ArrayList;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.xwt.vex.toolpalette.Entry;
+import org.eclipse.xwt.vex.toolpalette.ToolPalette;
+
+/**
+ * @author yyang
+ * 
+ */
+public class EntryContentProvider implements ITreeContentProvider {
+	static Object[] EMPTY = new Object[0];
+
+	public void dispose() {
+	}
+
+	public Object[] getElements(Object inputElement) {
+		EList<EObject> elements = null;
+		if (inputElement instanceof EObject) {
+			EObject object = (EObject) inputElement;
+			elements = object.eContents();
+		} else if (inputElement instanceof Resource) {
+			Resource resource = (Resource) inputElement;
+			EList<EObject> contents = resource.getContents();
+			if (contents.size() > 0) {
+				Object element = contents.get(0);
+				if (element instanceof ToolPalette) {
+					ToolPalette toolPalette = (ToolPalette) element;
+					elements = toolPalette.eContents();
+				}
+			}
+		}
+
+		if (elements != null) {
+			ArrayList<EObject> arrayList = new ArrayList<EObject>();
+			for (EObject object : elements) {
+				if (object instanceof Entry) {
+					arrayList.add(object);
+				}
+			}
+			return arrayList.toArray();
+		}
+		return EMPTY;
+	}
+
+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+	}
+
+	public Object[] getChildren(Object parentElement) {
+		return getElements(parentElement);
+	}
+
+	public Object getParent(Object element) {
+		return null;
+	}
+
+	public boolean hasChildren(Object element) {
+		return getElements(element).length > 0;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/EntryLabelProvider.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/EntryLabelProvider.java
new file mode 100755
index 0000000..67a4988
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/EntryLabelProvider.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.xwt.vex.VEXSharedImages;
+import org.eclipse.xwt.vex.toolpalette.Entry;
+import org.eclipse.xwt.vex.toolpalette.util.ToolPaletteHelper;
+
+/**
+ * @author yyang
+ * 
+ */
+public class EntryLabelProvider extends LabelProvider {
+
+	public Image getImage(Object object) {
+		if (object instanceof Entry) {
+			Entry element = (Entry) object;
+			String iconPath = element.getIcon();
+			if (iconPath != null && iconPath.trim().length() > 0) {
+				return VEXSharedImages.get(iconPath);
+			}
+		}
+		return null;
+	}
+
+	public ImageDescriptor getImageDescriptor(Object object) {
+		if (object instanceof Entry) {
+			Entry element = (Entry) object;
+			String iconPath = element.getIcon();
+			if (iconPath != null && iconPath.trim().length() > 0) {
+				return VEXSharedImages.getImageDescriptor(iconPath);
+			}
+		}
+		return null;
+	}
+
+	public ImageDescriptor getLargeImageDescriptor(Object object) {
+		if (object instanceof Entry) {
+			Entry element = (Entry) object;
+			String iconPath = element.getLargeIcon();
+			if (iconPath != null && iconPath.trim().length() > 0) {
+				return VEXSharedImages.getImageDescriptor(iconPath);
+			}
+		}
+		return null;
+	}
+
+	public String getText(Object object) {
+		if (object instanceof Entry) {
+			Entry element = (Entry) object;
+			return ToolPaletteHelper.getSimpleName(element);
+		}
+		return object.toString();
+	}
+
+	public String getDescription(Object object) {
+		if (object instanceof Entry) {
+			Entry element = (Entry) object;
+			String description = element.getToolTip();
+
+			if (description != null) {
+				return description;
+			}
+			return ToolPaletteHelper.getSimpleName(element);
+		}
+		return object.toString();
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/IPaletteContentProvider.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/IPaletteContentProvider.java
new file mode 100755
index 0000000..83eae33
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/IPaletteContentProvider.java
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.xwt.vex.palette;
+
+import java.io.InputStream;
+
+public interface IPaletteContentProvider {
+	InputStream getPaletteInputStream();
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/PalettePathRegistry.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/PalettePathRegistry.java
new file mode 100755
index 0000000..f7204bd
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/PalettePathRegistry.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.xwt.vex.palette;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IContributor;
+import org.eclipse.core.runtime.Platform;
+
+/**
+ * A class of loading resourcePath and iconsPath from EXTENSION-POINT.
+ * 
+ * @author jliu
+ */
+public class PalettePathRegistry {
+
+	public static final String EXTENSION_ID = "org.eclipse.xwt.vex.palettePath";
+
+	public static final String DEFAULT_PATH = "/tools/toolkit.toolpalette";
+	public static final String DEFAULT_ICONS_PATH = "/icons";
+
+	private static final String PATH = "path";
+	private static final String ICONS_PATH = "iconsPath";
+
+	private PalettePathRegistry() {
+	}
+
+	public static String getPath(String editorId) {
+		if (editorId == null) {
+			return DEFAULT_PATH;
+		}
+		IConfigurationElement[] configElem = Platform.getExtensionRegistry().getConfigurationElementsFor(EXTENSION_ID);
+		for (IConfigurationElement ce : configElem) {
+			IContributor contributor = ce.getContributor();
+			if (editorId.equals(contributor.getName())) {
+				String attribute = ce.getAttribute(PATH);
+				if (attribute != null) {
+					return attribute;
+				}
+			}
+		}
+		return DEFAULT_PATH;
+	}
+
+	public static String getIconsPath(String editorId) {
+		IConfigurationElement[] configElem = Platform.getExtensionRegistry().getConfigurationElementsFor(EXTENSION_ID);
+		for (IConfigurationElement ce : configElem) {
+			IContributor contributor = ce.getContributor();
+			if (editorId.equals(contributor.getName())) {
+				String attribute = ce.getAttribute(ICONS_PATH);
+				if (attribute != null) {
+					return attribute;
+				}
+			}
+		}
+		return DEFAULT_ICONS_PATH;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/PaletteResourceManager.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/PaletteResourceManager.java
new file mode 100755
index 0000000..e9e30f8
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/PaletteResourceManager.java
@@ -0,0 +1,199 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette;
+
+import java.io.IOException;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceImpl;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.xwt.vex.Activator;
+import org.eclipse.xwt.vex.EditorMessages;
+import org.eclipse.xwt.vex.VEXEditor;
+
+/**
+ * This class is used to provided palette resource and iconsPath for PaletteView. The <code>reourcePath</code> and <code>iconsPath</code> can be registied through "org.eclipse.xwt.vex.palettePath" extension-point.
+ * 
+ * @author yyang
+ */
+public class PaletteResourceManager {
+	private static final String DEFAULT_PATH = EditorMessages.PaletteResourceManager_toolkit;
+	private static final String DEFAULT_ICON_PATH = EditorMessages.PaletteResourceManager_icons;
+
+	public static final String PALETTE_CONTENT_PROVIDER_ID = Activator.PLUGIN_ID + ".paletteContentProvider";
+	public static final String GENARATOR = "generator";
+	public static final String CLASS = "class";
+
+	private URI resourcePath;
+	private URI iconsPath;
+	private Resource resource;
+	private Resource dynamicResource;
+	private Resource customizeResource;
+	private VEXEditor host = null;
+
+	/**
+	 * Constructor a new {@link PaletteResourceManager} with given editor,
+	 * 
+	 * see getAdaptor() method at VEXEditor.
+	 */
+	public PaletteResourceManager(VEXEditor editor) {
+		assert host != null;
+		host = editor;
+	}
+
+	public Resource getResource() {
+		IConfigurationElement[] configurationElements = Platform.getExtensionRegistry().getConfigurationElementsFor(PALETTE_CONTENT_PROVIDER_ID);
+		for (IConfigurationElement configurationElement : configurationElements) {
+			if (GENARATOR.equals(configurationElement.getName())) {
+				// get PaletteContentProvider here
+				try {
+					IPaletteContentProvider paletteContentProvider = (IPaletteContentProvider) configurationElement.createExecutableExtension(CLASS);
+					if (paletteContentProvider != null) {
+						ResourceSet rs = new ResourceSetImpl();
+						String location = Activator.getDefault().getStateLocation().toPortableString(); // .getBundle().getLocation();
+						URI uri = URI.createFileURI(location + "/tools/toolkit.toolpalette");
+						Resource newResource = rs.createResource(uri);
+						newResource.load(paletteContentProvider.getPaletteInputStream(), null);
+						return newResource;
+					}
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		}
+
+		if (resource == null) {
+			URI modelFilePath = getResourceFile();
+			if (modelFilePath != null) {
+				ResourceSet resourceSet = new ResourceSetImpl();
+				resource = resourceSet.getResource(modelFilePath, true);
+			}
+		}
+		return resource;
+	}
+
+	/**
+	 * get dynamic palette resource
+	 * 
+	 * @return
+	 */
+	public Resource getDynamicResource() {
+		if (dynamicResource == null) {
+			dynamicResource = new ResourceImpl();
+		}
+		return dynamicResource;
+	}
+
+	/**
+	 * get customize palette resource
+	 * 
+	 * @return
+	 */
+	public Resource getCustomizeResource() {
+		if (customizeResource == null) {
+			customizeResource = new ResourceImpl();
+		}
+		return customizeResource;
+	}
+
+	private IProject getCurrentProject() {
+		IEditorInput editorInput = host.getEditorInput();
+		IFile file = (IFile) editorInput.getAdapter(IFile.class);
+		IProject project = file.getProject();
+		if (!project.exists()) {
+			return null;
+		}
+		return project;
+	}
+
+	public URI getIconsPath() {
+		if (iconsPath == null) {
+			iconsPath = computeIconsPath();
+		}
+		return iconsPath;
+	}
+
+	private URI computeIconsPath() {
+		IProject currentProject = getCurrentProject();
+		if (currentProject != null) {
+			try {
+				currentProject.refreshLocal(IResource.DEPTH_INFINITE, null);
+			} catch (CoreException e) {
+				e.printStackTrace();
+			}
+			IFile file = currentProject.getFile(DEFAULT_ICON_PATH);
+			if (file.exists()) {
+				return URI.createFileURI(file.getLocation().toString());
+			}
+		}
+		// Loading iconsPath from Extension Registry.
+		String pluginId = host.getEditorSite().getPluginId();
+		String path = PalettePathRegistry.getIconsPath(pluginId);
+		if (!path.startsWith("/")) {
+			path = "/" + path;
+		}
+		return URI.createPlatformPluginURI(pluginId + path, false);
+	}
+
+	public URI getResourceFile() {
+		if (resourcePath == null) {
+			resourcePath = computeResourcePath();
+		}
+		return resourcePath;
+	}
+
+	private URI computeResourcePath() {
+		IProject currentProject = getCurrentProject();
+		if (currentProject != null) {
+			try {
+				currentProject.refreshLocal(IResource.DEPTH_INFINITE, null);
+			} catch (CoreException e) {
+				e.printStackTrace();
+			}
+			IFile file = currentProject.getFile(DEFAULT_PATH);
+			if (file.exists()) {
+				return URI.createFileURI(file.getLocation().toString());
+			}
+		}
+		// Loading path from Extension Registry.
+		String pluginId = host.getEditorSite().getPluginId();
+		String path = PalettePathRegistry.getPath(pluginId);
+		if (!path.startsWith("/")) {
+			path = "/" + path;
+		}
+		return URI.createPlatformPluginURI(pluginId + path, false);
+	}
+
+	public void saveToolDefinition() {
+		IProject currentProject = getCurrentProject();
+		if (currentProject != null) {
+			String currentProjectPath = currentProject.getName();
+			String filePath = currentProjectPath + "/" + DEFAULT_PATH;
+			try {
+				resource.setURI(URI.createPlatformResourceURI(filePath, false));
+				resource.save(null);
+			} catch (IOException exception) {
+				exception.printStackTrace();
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/PaletteRootFactory.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/PaletteRootFactory.java
new file mode 100755
index 0000000..aa8d9b2
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/PaletteRootFactory.java
@@ -0,0 +1,255 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gef.palette.CombinedTemplateCreationEntry;
+import org.eclipse.gef.palette.PaletteContainer;
+import org.eclipse.gef.palette.PaletteDrawer;
+import org.eclipse.gef.palette.PaletteGroup;
+import org.eclipse.gef.palette.PaletteRoot;
+import org.eclipse.gef.requests.SimpleFactory;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.xwt.vex.EditorMessages;
+import org.eclipse.xwt.vex.VEXEditor;
+import org.eclipse.xwt.vex.palette.customize.CustomizeComponentFactory;
+import org.eclipse.xwt.vex.palette.customize.model.CustomizeComponent;
+import org.eclipse.xwt.vex.palette.part.ToolPaletteDrawer;
+import org.eclipse.xwt.vex.toolpalette.ContextType;
+import org.eclipse.xwt.vex.toolpalette.Entry;
+import org.eclipse.xwt.vex.toolpalette.ToolPaletteFactory;
+import org.eclipse.xwt.vex.util.ImageHelper;
+
+/**
+ * Utility class that can create a GEF Palette.
+ * 
+ * @see #createPalette()
+ */
+public class PaletteRootFactory {
+
+	/**
+	 * PaletteResourceManager can provider resourcePath and iconsPath.
+	 */
+	private PaletteResourceManager trManager;
+
+	public PaletteRootFactory(PaletteResourceManager trManager) {
+		this.trManager = trManager;
+
+	}
+
+	/**
+	 *Create a new PaletteRoot.
+	 */
+	public PaletteRoot createPaletteRoot() {
+		PaletteRoot palette = new PaletteRoot();
+		Resource resource = trManager.getResource();
+		if (resource != null) {
+			/*
+			 * ToolPalette toolPalette = (ToolPalette) resource.getContents().get(0); EList<Entry> entries = toolPalette.getEntries(); // add dynamic entry. Entry dynamicEntry = ToolPaletteFactory.eINSTANCE.createEntry(); dynamicEntry.setName(EditorMessages.PaletteRootFactory_Dynamic); dynamicEntry.setContext(ContextType.XML_TAG); entries.add(dynamicEntry); dynamicEntry.getEntries().add(ToolPaletteFactory.eINSTANCE.createEntry());
+			 * 
+			 * // add custom entry. Entry customEntry = ToolPaletteFactory.eINSTANCE.createEntry(); customEntry.setName(EditorMessages.PaletteRootFactory_Customize); customEntry.setContext(ContextType.XML_TAG); entries.add(customEntry);
+			 * 
+			 * List<CustomizeComponent> result = CustomizeComponentFactory.loadCustomizeComponents(); if (result.isEmpty()) { customEntry.getEntries().add(ToolPaletteFactory.eINSTANCE.createEntry()); } for (CustomizeComponent customizeComponent : result) { Entry subEntry = ToolPaletteFactory.eINSTANCE.createEntry(); subEntry.setName(customizeComponent.getName()); subEntry.setScope(customizeComponent.getScope()); subEntry.setIcon(customizeComponent.getIcon()); subEntry.setLargeIcon(customizeComponent.getLargeIcon()); subEntry.setToolTip(customizeComponent.getTooptip()); subEntry.setContent(customizeComponent.getContent()); subEntry.setContext(ContextType.XML_TAG); // add sub entry customEntry.getEntries().add(subEntry); }
+			 */
+
+			PaletteContainer createShapesDrawer = createShapesDrawer(resource);
+			palette.addAll(createShapesDrawer.getChildren());
+		}
+
+		return palette;
+	}
+
+	/**
+	 * Create the "Shapes" drawer.
+	 * 
+	 * @param resource
+	 */
+	private PaletteContainer createShapesDrawer(Resource resource) {
+		PaletteDrawer componentsDrawer = createPaletteDrawer(EditorMessages.PaletteRootFactory_Shapes);
+		if (trManager != null) {
+			EntryContentProvider contentProvider = new EntryContentProvider();
+			EntryLabelProvider labelProvider = new EntryLabelProvider();
+			createToolPaletteStructure(componentsDrawer, contentProvider, labelProvider, resource);
+		}
+		
+		//  Bug 274057 - Modification - Start
+		CustomWidgetDrawer.addCustomWidgets(componentsDrawer);
+		//  Bug 274057 - Modification - End
+		return componentsDrawer;
+	}
+
+	/**
+	 *Create a default Drawer.
+	 */
+	private PaletteDrawer createPaletteDrawer(String name) {
+		PaletteDrawer componentsDrawer = new ToolPaletteDrawer(name);
+		componentsDrawer.setInitialState(PaletteDrawer.INITIAL_STATE_CLOSED);
+		return componentsDrawer;
+	}
+
+	/**
+	 * Create Tools.
+	 * 
+	 * @param parentDrawer
+	 * @param contentProvider
+	 * @param labelProvider
+	 * @param resource
+	 */
+	private void createToolPaletteStructure(PaletteDrawer parentDrawer, EntryContentProvider contentProvider, EntryLabelProvider labelProvider, Object resource) {
+
+		Object[] children = contentProvider.getElements(resource);
+		String name = labelProvider.getText(resource);
+		if (name == null) {
+			return;
+		}
+		String description = labelProvider.getDescription(resource);
+		ImageDescriptor image = getImageDescriptor(resource);
+		if (image == null) {
+			image = labelProvider.getImageDescriptor(resource);
+		}
+		ImageDescriptor largeImage = getLargeImageDescriptor(resource);
+		if (largeImage == null) {
+			largeImage = labelProvider.getLargeImageDescriptor(resource);
+		}
+		if (children.length == 0) {
+			CombinedTemplateCreationEntry component = new CombinedTemplateCreationEntry(name, description, resource, new SimpleFactory(resource.getClass()), image, largeImage);
+			component.setDescription(description);
+			parentDrawer.add(component);
+		} else {
+			if (resource instanceof Entry) {
+				PaletteDrawer componentsDrawer = createPaletteDrawer(name);
+				componentsDrawer.setSmallIcon(image);
+				componentsDrawer.setLargeIcon(largeImage);
+				componentsDrawer.setDescription(description);
+				parentDrawer.add(componentsDrawer);
+				componentsDrawer.setParent(parentDrawer);
+				// if (EditorMessages.PaletteRootFactory_Dynamic.equals(name) || EditorMessages.PaletteRootFactory_Customize.equals(name)) {
+				// componentsDrawer.setInitialState(PaletteDrawer.INITIAL_STATE_OPEN);
+				// }
+
+				for (Object child : children) {
+					createToolPaletteStructure(componentsDrawer, contentProvider, labelProvider, child);
+				}
+
+			} else {
+				for (Object child : children) {
+					createToolPaletteStructure(parentDrawer, contentProvider, labelProvider, child);
+				}
+			}
+		}
+	}
+
+	/**
+	 * Create ImageDescriptor of given object. Load images from extension registry.
+	 */
+	private ImageDescriptor getImageDescriptor(Object source) {
+		if (source instanceof Entry) {
+			return ImageHelper.getImageDescriptor(trManager, ((Entry) source).getIcon());
+		}
+		return null;
+	}
+
+	/**
+	 *Create Large ImageDescriptor of given object. Load images from extension registry.
+	 */
+	private ImageDescriptor getLargeImageDescriptor(Object source) {
+		if (source instanceof Entry) {
+			return ImageHelper.getImageDescriptor(trManager, ((Entry) source).getLargeIcon());
+		}
+		return null;
+	}
+
+	/**
+	 * Creates the PaletteRoot and adds all palette elements. Use this factory method to create a new palette for your graphical editor.
+	 * 
+	 * @param editorPart
+	 * 
+	 * @return a new PaletteRoot
+	 */
+	public static PaletteRoot createPalette(IEditorPart editorPart) {
+		PaletteRoot palette = new PaletteRoot();
+		if (!(editorPart instanceof VEXEditor)) {
+			return palette;
+		}
+		PaletteResourceManager trManager = (PaletteResourceManager) editorPart.getAdapter(PaletteResourceManager.class);
+		PaletteRootFactory paletteFactory = new PaletteRootFactory(trManager);
+		return paletteFactory.createPaletteRoot();
+	}
+
+	public static PaletteRoot createPaletteByResourceManager(PaletteResourceManager resourceManager) {
+		PaletteRootFactory paletteFactory = new PaletteRootFactory(resourceManager);
+		return paletteFactory.createPaletteRoot();
+	}
+
+	public static PaletteRoot createDynamicPalette(IEditorPart editorPart) {
+		PaletteRoot palette = new PaletteRoot();
+		if (!(editorPart instanceof VEXEditor)) {
+			return palette;
+		}
+		PaletteResourceManager trManager = (PaletteResourceManager) editorPart.getAdapter(PaletteResourceManager.class);
+		PaletteRootFactory paletteFactory = new PaletteRootFactory(trManager);
+		return paletteFactory.createDynamicPaletteRoot();
+	}
+
+	public PaletteRoot createDynamicPaletteRoot() {
+		PaletteRoot palette = new PaletteRoot();
+		PaletteGroup dynamicGroup = new PaletteGroup(EditorMessages.VEXEditor_Dynamic);
+		palette.add(dynamicGroup);
+		return palette;
+	}
+
+	public static PaletteRoot createCustomizePalette(IEditorPart editorPart) {
+		PaletteRoot palette = new PaletteRoot();
+		if (!(editorPart instanceof VEXEditor)) {
+			return palette;
+		}
+		PaletteResourceManager trManager = (PaletteResourceManager) editorPart.getAdapter(PaletteResourceManager.class);
+		PaletteRootFactory paletteFactory = new PaletteRootFactory(trManager);
+		return paletteFactory.createCustomizePaletteRoot();
+	}
+
+	public PaletteRoot createCustomizePaletteRoot() {
+		PaletteRoot palette = new PaletteRoot();
+
+		PaletteGroup customizeGroup = new PaletteGroup("Customize");
+		Resource resource = trManager.getCustomizeResource();
+		if (resource != null) {
+			List<CustomizeComponent> result = CustomizeComponentFactory.loadCustomizeComponents();
+			for (CustomizeComponent customizeComponent : result) {
+				Entry customizeEntry = ToolPaletteFactory.eINSTANCE.createEntry();
+				customizeEntry.setName(customizeComponent.getName());
+				customizeEntry.setScope(customizeComponent.getScope());
+				String iconString = customizeComponent.getIcon();
+				if (iconString != null && iconString.length() > 0) {
+					customizeEntry.setIcon(iconString);
+				}
+				iconString = customizeComponent.getLargeIcon();
+				if (iconString != null && iconString.length() > 0) {
+					customizeEntry.setLargeIcon(iconString);
+				}
+				customizeEntry.setToolTip(customizeComponent.getTooptip());
+				customizeEntry.setContent(customizeComponent.getContent());
+				customizeEntry.setContext(ContextType.XML_TAG);
+				CombinedTemplateCreationEntry component = new CombinedTemplateCreationEntry(customizeEntry.getName(), customizeEntry.getToolTip(), customizeEntry, new SimpleFactory(resource.getClass()), ImageHelper.getImageDescriptor(trManager, customizeEntry.getIcon()), ImageHelper.getImageDescriptor(trManager, customizeEntry.getLargeIcon()));
+
+				customizeGroup.add(component);
+			}
+		}
+		palette.add(customizeGroup);
+		return palette;
+	}
+
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/PaletteViewManager.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/PaletteViewManager.java
new file mode 100755
index 0000000..038f7ca
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/PaletteViewManager.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette;
+
+import org.eclipse.gef.DefaultEditDomain;
+import org.eclipse.gef.EditDomain;
+import org.eclipse.gef.palette.PaletteRoot;
+import org.eclipse.gef.ui.palette.PaletteViewerProvider;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.xwt.vex.palette.part.ToolPaletteViewerProvider;
+
+/**
+ * @author bqian
+ * 
+ */
+public class PaletteViewManager {
+	private PaletteViewerProvider provider;
+	private PaletteRoot paletteRoot;
+	private IEditorPart editorPart;
+	private DefaultEditDomain editDomain;
+
+	/**
+	 * @param editorPart
+	 */
+	public PaletteViewManager(IEditorPart editorPart) {
+		this.editorPart = editorPart;
+	}
+
+	public PaletteViewerProvider getPaletteViewerProvider() {
+		if (provider == null)
+			provider = createPaletteViewerProvider();
+		return provider;
+	}
+
+	private PaletteViewerProvider createPaletteViewerProvider() {
+		return new ToolPaletteViewerProvider(getEditDomain(), editorPart);
+	}
+
+	private EditDomain getEditDomain() {
+		if (editDomain == null) {
+			editDomain = new DefaultEditDomain(editorPart);
+			editDomain.setPaletteRoot(getPaletteRoot());
+		}
+		return editDomain;
+	}
+
+	public PaletteRoot getPaletteRoot() {
+		if (paletteRoot == null)
+			paletteRoot = PaletteRootFactory.createPalette(editorPart);
+		return paletteRoot;
+	}
+
+	public PaletteRoot getPaletteRootByResourceManager(PaletteResourceManager resourceManager) {
+		paletteRoot = PaletteRootFactory.createPaletteByResourceManager(resourceManager);
+		return paletteRoot;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/actions/HideCustomizePartPaletteAction.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/actions/HideCustomizePartPaletteAction.java
new file mode 100755
index 0000000..790b646
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/actions/HideCustomizePartPaletteAction.java
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette.actions;
+
+import org.eclipse.gef.ui.palette.PaletteViewer;
+import org.eclipse.jface.action.Action;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.xwt.vex.Activator;
+import org.eclipse.xwt.vex.VEXEditor;
+import org.eclipse.xwt.vex.palette.CustomPalettePage;
+import org.eclipse.xwt.vex.palette.part.CustomizePaletteViewer;
+import org.eclipse.xwt.vex.palette.part.DynamicPaletteViewer;
+import org.eclipse.xwt.vex.swt.CustomSashForm;
+
+public class HideCustomizePartPaletteAction extends Action {
+
+	private PaletteViewer paletteViewer;
+	private CustomizePaletteViewer customizePaletteViewer;
+	private DynamicPaletteViewer dynamicPaletteViewer;
+	private CustomSashForm sashFormMain;
+	private CustomSashForm dynamicAndCustomizeSashForm;
+	private Composite customizeComposite;
+
+	public HideCustomizePartPaletteAction() {
+		super("Hide/Show Customize Tools.", AS_CHECK_BOX);
+		setToolTipText("Hide Customize Tools.");
+		setImageDescriptor(Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/full/obj16/hide1.gif"));
+	}
+
+	@Override
+	public void run() {
+		// TODO Auto-generated method stub
+		Object editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
+		if (editor instanceof VEXEditor) {
+			paletteViewer = ((CustomPalettePage) ((VEXEditor) editor).getVEXEditorPalettePage()).getPaletteViewer();
+		}
+
+		Object mainForm = paletteViewer.getProperty("SashFormMain");
+		if (mainForm instanceof CustomSashForm) {
+			sashFormMain = (CustomSashForm) mainForm;
+		}
+
+		Object objectDynamicPalette = paletteViewer.getProperty("Dynamic_PaletteViewer");
+		if (objectDynamicPalette instanceof DynamicPaletteViewer) {
+			dynamicPaletteViewer = (DynamicPaletteViewer) objectDynamicPalette;
+		}
+
+		Object objectCustomizePalette = paletteViewer.getProperty("Customize_PaletteViewer");
+		if (objectCustomizePalette instanceof CustomizePaletteViewer) {
+			customizePaletteViewer = (CustomizePaletteViewer) objectCustomizePalette;
+		}
+
+		Object customizeSashForm = customizePaletteViewer.getProperty("DynamicAndCustomizeSashForm");
+		if (customizeSashForm instanceof CustomSashForm) {
+			dynamicAndCustomizeSashForm = (CustomSashForm) customizeSashForm;
+		}
+
+		Object composite = customizePaletteViewer.getProperty("CustomizeComposite");
+		if (composite instanceof Composite) {
+			customizeComposite = (Composite) composite;
+		}
+
+		if (isChecked()) {
+			customizePaletteViewer.setVisible(false);
+			customizeComposite.setVisible(false);
+			dynamicAndCustomizeSashForm.setWeights((new int[] { 1, 0 }));
+			if ((customizePaletteViewer.isVisible() == false) && (dynamicPaletteViewer.isVisible() == false)) {
+				dynamicAndCustomizeSashForm.setVisible(false);
+				sashFormMain.setWeights(new int[] { 1, 0 });
+			}
+			setToolTipText("Show Customize Tools.");
+		} else {
+			customizeComposite.setVisible(true);
+			customizePaletteViewer.setVisible(true);
+			dynamicAndCustomizeSashForm.setVisible(true);
+			dynamicAndCustomizeSashForm.setWeights((new int[] { 1, 1 }));
+			sashFormMain.setWeights(new int[] { 2, 1 });
+			setToolTipText("Hide Customize Tools.");
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/actions/HideDynamicPartPaletteAction.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/actions/HideDynamicPartPaletteAction.java
new file mode 100755
index 0000000..44929fa
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/actions/HideDynamicPartPaletteAction.java
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette.actions;
+
+import org.eclipse.gef.ui.palette.PaletteViewer;
+import org.eclipse.jface.action.Action;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.xwt.vex.Activator;
+import org.eclipse.xwt.vex.VEXEditor;
+import org.eclipse.xwt.vex.palette.CustomPalettePage;
+import org.eclipse.xwt.vex.palette.part.CustomizePaletteViewer;
+import org.eclipse.xwt.vex.palette.part.DynamicPaletteViewer;
+import org.eclipse.xwt.vex.swt.CustomSashForm;
+
+public class HideDynamicPartPaletteAction extends Action {
+
+	private PaletteViewer paletteViewer;
+	private DynamicPaletteViewer dynamicPaletteViewer;
+	private CustomizePaletteViewer customizePaletteViewer;
+	private CustomSashForm sashFormMain;
+	private CustomSashForm dynamicAndCustomizeSashForm;
+	private Composite dynamicComposite;
+
+	public HideDynamicPartPaletteAction() {
+		super("Hide/Show Contextual Tools", AS_CHECK_BOX);
+		// TODO Auto-generated constructor stub
+		setToolTipText("Hide Contextual Tools");
+		setImageDescriptor(Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/full/obj16/hide2.gif"));
+	}
+
+	@Override
+	public void run() {
+		// TODO Auto-generated method stub
+		Object editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
+		if (editor instanceof VEXEditor) {
+			paletteViewer = ((CustomPalettePage) ((VEXEditor) editor).getVEXEditorPalettePage()).getPaletteViewer();
+		}
+
+		Object mainForm = paletteViewer.getProperty("SashFormMain");
+		if (mainForm instanceof CustomSashForm) {
+			sashFormMain = (CustomSashForm) mainForm;
+		}
+
+		Object objectDynamicPalette = paletteViewer.getProperty("Dynamic_PaletteViewer");
+		if (objectDynamicPalette instanceof DynamicPaletteViewer) {
+			dynamicPaletteViewer = (DynamicPaletteViewer) objectDynamicPalette;
+		}
+
+		Object objectCustomizePalette = paletteViewer.getProperty("Customize_PaletteViewer");
+		if (objectCustomizePalette instanceof CustomizePaletteViewer) {
+			customizePaletteViewer = (CustomizePaletteViewer) objectCustomizePalette;
+		}
+
+		Object dynamicSashForm = dynamicPaletteViewer.getProperty("DynamicAndCustomizeSashForm");
+		if (dynamicSashForm instanceof CustomSashForm) {
+			dynamicAndCustomizeSashForm = (CustomSashForm) dynamicSashForm;
+		}
+
+		Object composite = dynamicPaletteViewer.getProperty("DynamicComposite");
+		if (composite instanceof Composite) {
+			dynamicComposite = (Composite) composite;
+		}
+
+		if (isChecked()) {
+			dynamicPaletteViewer.setVisible(false);
+			dynamicComposite.setVisible(false);
+			dynamicAndCustomizeSashForm.setWeights((new int[] { 0, 1 }));
+			if ((customizePaletteViewer.isVisible() == false) && (dynamicPaletteViewer.isVisible() == false)) {
+				dynamicAndCustomizeSashForm.setVisible(false);
+				sashFormMain.setWeights(new int[] { 1, 0 });
+			}
+			setToolTipText("Show Contextual Tools");
+		} else {
+			dynamicPaletteViewer.setVisible(true);
+			dynamicComposite.setVisible(true);
+			dynamicAndCustomizeSashForm.setVisible(true);
+			dynamicAndCustomizeSashForm.setWeights((new int[] { 1, 1 }));
+			sashFormMain.setWeights(new int[] { 2, 1 });
+			setToolTipText("Hide Contextual Tools");
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/actions/HideToolPartPaletteAction.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/actions/HideToolPartPaletteAction.java
new file mode 100755
index 0000000..4903791
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/actions/HideToolPartPaletteAction.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette.actions;
+
+import org.eclipse.gef.ui.palette.PaletteViewer;
+import org.eclipse.jface.action.Action;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.xwt.vex.Activator;
+import org.eclipse.xwt.vex.VEXEditor;
+import org.eclipse.xwt.vex.palette.CustomPalettePage;
+import org.eclipse.xwt.vex.swt.CustomSashForm;
+
+public class HideToolPartPaletteAction extends Action {
+
+	private PaletteViewer paletteViewer;
+	private CustomSashForm toolSashForm;
+	private CustomSashForm sashFormMain;
+
+	public HideToolPartPaletteAction() {
+		super("Hide/Show Standard Tools", AS_CHECK_BOX);
+		// TODO Auto-generated constructor stub
+		setToolTipText("Hide Standard Tools");
+		setImageDescriptor(Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/full/obj16/hide3.gif"));
+	}
+
+	@Override
+	public void run() {
+		// TODO Auto-generated method stub
+		Object editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
+		if (editor instanceof VEXEditor) {
+			paletteViewer = ((CustomPalettePage) ((VEXEditor) editor).getVEXEditorPalettePage()).getPaletteViewer();
+		}
+
+		Object toolForm = paletteViewer.getProperty("ToolSashForm");
+		if (toolForm instanceof CustomSashForm) {
+			toolSashForm = (CustomSashForm) toolForm;
+		}
+
+		Object mainForm = paletteViewer.getProperty("SashFormMain");
+		if (mainForm instanceof CustomSashForm) {
+			sashFormMain = (CustomSashForm) mainForm;
+		}
+
+		if (isChecked()) {
+			toolSashForm.setVisible(false);
+			sashFormMain.setWeights(new int[] { 0, 1 });
+			setToolTipText("Show Standard Tools");
+		} else {
+			toolSashForm.setVisible(true);
+			sashFormMain.setWeights(new int[] { 2, 1 });
+			setToolTipText("Hide Standard Tools");
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/CustomWidgetManager.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/CustomWidgetManager.java
new file mode 100755
index 0000000..847d01f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/CustomWidgetManager.java
@@ -0,0 +1,328 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *     Anaik Trihoreau <anaik@anyware-tech.com> - Bug 274057
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette.customize;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.osgi.framework.Bundle;
+
+/**
+ * 
+ * Class allowing to include custom widgets in the XWT palette
+ * Contributors:
+ *     Anaik Trihoreau <anaik@anyware-tech.com> - inital API and implementation
+ */
+public class CustomWidgetManager
+{
+	private static final String CUSTOM_PALETTE_EXTENSION_ID = "org.eclipse.xwt.vex.customPalette";
+	private static final String WIDGET_CATEGORY_ELEMENT = "category";
+	private static final String WIDGET_CATEGORY_NAME_ATTR = "name";
+	private static final String WIDGET_CATEGORY_ICON_ATTR = "icon";
+	private static final String WIDGET_ELEMENT = "tool";
+	private static final String WIDGET_NAME_ATTR = "name";
+	private static final String WIDGET_CLASS_ATTR = "class";
+	private static final String WIDGET_SCOPE_ATTR = "scope";
+	private static final String WIDGET_ICON_ATTR = "icon";
+	private static final String WIDGET_TOOLTIP_ATTR = "tooltip";
+	private static final String WIDGET_CONTENT_ATTR = "content";
+
+	private static CustomWidgetManager __instance;
+
+	private Map<Category, List<Tool>> widgetMap = null;
+	private Collection<Class<?>> widgetClassList = null;
+
+	/**
+	 * Private constructor
+	 */
+	private CustomWidgetManager()
+	{
+		initWidgetCategories();
+	}
+
+	/**
+	 * Returns the singleton
+	 * 
+	 * @return
+	 */
+	public static CustomWidgetManager getInstance()
+	{
+		if (__instance == null)
+		{
+			__instance = new CustomWidgetManager();
+		}
+		return __instance;
+	}
+
+	/**
+	 * Returns the custom widgets which are defined in the extension. The custom widget are grouped
+	 * by categories
+	 * 
+	 * @return the custom widgets grouped by categories
+	 */
+	public Map<Category, List<Tool>> getWidgetCategories()
+	{
+		return widgetMap;
+	}
+
+	/**
+	 * Returns the list of the classes corresponding to the custom widgets which are defined in the
+	 * extension.
+	 * 
+	 * @return the list of the classes
+	 */
+	public Collection<Class<?>> getWidgetClassList()
+	{
+		return widgetClassList;
+	}
+
+	/**
+	 * Initialize the custom widgets which are defined in the extension
+	 */
+	private void initWidgetCategories()
+	{
+		// Init
+		widgetMap = new HashMap<Category, List<Tool>>();
+		widgetClassList = new ArrayList<Class<?>>();
+
+		List<Tool> widgetList = null;
+
+		List<IConfigurationElement> confEltList = getExtensions(CUSTOM_PALETTE_EXTENSION_ID);
+		if (confEltList != null && !confEltList.isEmpty())
+		{
+			for (Iterator<IConfigurationElement> it = confEltList.iterator(); it.hasNext();)
+			{
+				IConfigurationElement cfgElt = it.next();
+				String eltName = cfgElt.getName();
+
+				if (WIDGET_CATEGORY_ELEMENT.equals(eltName))
+				{
+					// Name of the category
+					String nameCat = cfgElt.getAttribute(WIDGET_CATEGORY_NAME_ATTR);
+					if (nameCat == null || nameCat.length() == 0)
+					{
+						continue;
+					}
+
+					// Gets the extension bundle
+					String extPlugInID = cfgElt.getContributor().getName();
+
+					// Gets the icon of the category
+					WidgetIcon iconCat = new WidgetIcon(extPlugInID,
+						cfgElt.getAttribute(WIDGET_CATEGORY_ICON_ATTR));
+
+					// Adds the new category
+					Category widgetCat = new Category(nameCat, iconCat);
+					widgetList = widgetMap.get(widgetCat);
+					if (widgetList == null)
+					{
+						widgetList = new ArrayList<Tool>();
+						widgetMap.put(widgetCat, widgetList);
+					}
+					// Gets the Widget elements
+					IConfigurationElement[] widgetElts = cfgElt.getChildren(WIDGET_ELEMENT);
+					if (widgetElts != null && widgetElts.length > 0)
+					{
+						for (IConfigurationElement widgetElt: widgetElts)
+						{
+							try
+							{
+								String bundleName = widgetElt.getContributor().getName();
+								// Load the class of the widget
+								Bundle bundle = Platform.getBundle(bundleName);
+								String className = widgetElt.getAttribute(WIDGET_CLASS_ATTR);
+								if (className != null) {
+									Class<?> theClass = bundle.loadClass(widgetElt.getAttribute(WIDGET_CLASS_ATTR));
+									widgetClassList.add(theClass);
+								}
+
+								// Get the icons
+								WidgetIcon icon = new WidgetIcon(extPlugInID,
+									widgetElt.getAttribute(WIDGET_ICON_ATTR));
+
+								// Creates the entry corresponding to the widget
+								String name = widgetElt.getAttribute(WIDGET_NAME_ATTR);
+								String scope = widgetElt.getAttribute(WIDGET_SCOPE_ATTR);
+								String tooltip = widgetElt.getAttribute(WIDGET_TOOLTIP_ATTR);
+								String content = widgetElt.getAttribute(WIDGET_CONTENT_ATTR);
+
+								widgetList.add(new Tool(name, scope, tooltip, content, icon));
+							}
+							catch (Exception e)
+							{
+								// Nothing to do
+							}
+						}
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 * Returns the <code>IConfigurationElement</code> list corresponding to the extension defined by
+	 * <code>extensionId</code>
+	 * 
+	 * @param extensionId
+	 *        the extension identifier
+	 * @return the <code>IConfigurationElement</code> list
+	 */
+	private List<IConfigurationElement> getExtensions(String extensionId)
+	{
+
+		IExtensionRegistry registry = Platform.getExtensionRegistry();
+		IExtensionPoint extensionPoint = registry.getExtensionPoint(extensionId);
+		IExtension[] extensions = extensionPoint.getExtensions();
+
+		List<IConfigurationElement> resList = new ArrayList<IConfigurationElement>();
+		for (int i = 0; i < extensions.length; i++)
+		{
+			IConfigurationElement[] elements = extensions[i].getConfigurationElements();
+			for (int j = 0; j < elements.length; j++)
+			{
+				resList.add(elements[j]);
+			}
+		}
+		return resList;
+	}
+
+	/**
+	 * Class which defines a widget category
+	 */
+	public class Category
+	{
+		private String name = null;
+		private WidgetIcon icon = null;
+
+		public Category(String name, WidgetIcon icon)
+		{
+			this.name = name;
+			this.icon = icon;
+		}
+
+		public String getName()
+		{
+			return name;
+		}
+
+		public WidgetIcon getIcon()
+		{
+			return icon;
+		}
+
+		@Override
+		public boolean equals(Object obj)
+		{
+
+			boolean equals = super.equals(obj);
+			if (!equals && obj instanceof Category)
+			{
+				Category widgetCat = (Category) obj;
+				equals = (name == null && widgetCat.name == null)
+					|| (name != null && name.equals(widgetCat.name));
+			}
+			return equals;
+		}
+
+		@Override
+		public int hashCode()
+		{
+			if (name != null)
+			{
+				return name.hashCode();
+			}
+			return super.hashCode();
+		}
+	}
+
+	/**
+	 * Class which defines a widget
+	 */
+	public class Tool
+	{
+		private String name = null;
+		private String scope = null;
+		private String tooltip = null;
+		private String content = null;
+		private WidgetIcon icon = null;
+
+		public Tool(String name, String scope, String tooltip, String content, WidgetIcon icon)
+		{
+			this.name = name;
+			this.scope = scope;
+			this.tooltip = tooltip;
+			this.content = content;
+			this.icon = icon;
+		}
+
+		public String getName()
+		{
+			return name;
+		}
+
+		public String getScope()
+		{
+			return scope;
+		}
+
+		public String getToolTip()
+		{
+			return tooltip;
+		}
+
+		public String getContent()
+		{
+			return content;
+		}
+
+		public WidgetIcon getIcon()
+		{
+			return icon;
+		}
+	}
+
+	/**
+	 * Class which defines a widget icon
+	 */
+	public class WidgetIcon
+	{
+		private String bundleID = null;
+		private String path = null;
+
+		public WidgetIcon(String bundleID, String path)
+		{
+			this.bundleID = bundleID;
+			this.path = path;
+		}
+
+		public String getBundleID()
+		{
+			return bundleID;
+		}
+
+		public String getPath()
+		{
+			return path;
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/CustomerPaletteContextMenuProvider.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/CustomerPaletteContextMenuProvider.java
new file mode 100755
index 0000000..964a2ee
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/CustomerPaletteContextMenuProvider.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette.customize;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.internal.ui.palette.editparts.ToolEntryEditPart;
+import org.eclipse.gef.palette.CombinedTemplateCreationEntry;
+import org.eclipse.gef.ui.actions.GEFActionConstants;
+import org.eclipse.gef.ui.palette.PaletteContextMenuProvider;
+import org.eclipse.gef.ui.palette.PaletteViewer;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.xwt.vex.palette.customize.actions.AddCustomizePaletteAction;
+import org.eclipse.xwt.vex.palette.customize.actions.DeleteCustomizeComponentAction;
+import org.eclipse.xwt.vex.palette.customize.actions.ExportCustomizeComponentsAction;
+import org.eclipse.xwt.vex.palette.customize.actions.ImportCustomizeComponentsAction;
+import org.eclipse.xwt.vex.palette.customize.actions.ModifyCustomizeComponentAction;
+import org.eclipse.xwt.vex.palette.part.CustomizePaletteViewer;
+
+public class CustomerPaletteContextMenuProvider extends PaletteContextMenuProvider {
+
+	public CustomerPaletteContextMenuProvider(PaletteViewer palette) {
+		super(palette);
+		// TODO Auto-generated constructor stub
+	}
+
+	@Override
+	public void buildContextMenu(IMenuManager menu) {
+		super.buildContextMenu(menu);
+		PaletteViewer paletteViewer = getPaletteViewer();
+		if (paletteViewer instanceof CustomizePaletteViewer) {
+			EditPart selectedPart = (EditPart) paletteViewer.getSelectedEditParts().get(0);
+			// add the add customize menu to the popup menu
+			menu.appendToGroup(GEFActionConstants.GROUP_REST, new AddCustomizePaletteAction(paletteViewer, null, InvokeType.MenuAdd));
+			menu.appendToGroup(GEFActionConstants.GROUP_SAVE, new ExportCustomizeComponentsAction());
+			menu.appendToGroup(GEFActionConstants.GROUP_SAVE, new ImportCustomizeComponentsAction());
+			if (selectedPart instanceof ToolEntryEditPart) {
+				String selectedComponentName = ((CombinedTemplateCreationEntry) selectedPart.getModel()).getLabel();
+				String selectComponentName = selectedComponentName;
+				// add modify menu
+				menu.appendToGroup(GEFActionConstants.GROUP_REST, new ModifyCustomizeComponentAction(paletteViewer, selectComponentName));
+
+				// add delete menu
+				menu.appendToGroup(GEFActionConstants.GROUP_REST, new DeleteCustomizeComponentAction(paletteViewer, selectComponentName));
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/CustomizeComponentFactory.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/CustomizeComponentFactory.java
new file mode 100755
index 0000000..6f8dacb
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/CustomizeComponentFactory.java
@@ -0,0 +1,428 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette.customize;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gef.palette.CombinedTemplateCreationEntry;
+import org.eclipse.gef.palette.PaletteEntry;
+import org.eclipse.gef.palette.PaletteGroup;
+import org.eclipse.gef.palette.PaletteRoot;
+import org.eclipse.gef.requests.SimpleFactory;
+import org.eclipse.gef.ui.palette.PaletteViewer;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorReference;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+import org.eclipse.xwt.vex.Activator;
+import org.eclipse.xwt.vex.EditorMessages;
+import org.eclipse.xwt.vex.VEXEditor;
+import org.eclipse.xwt.vex.palette.CustomPalettePage;
+import org.eclipse.xwt.vex.palette.PaletteResourceManager;
+import org.eclipse.xwt.vex.palette.customize.model.CustomizeComponent;
+import org.eclipse.xwt.vex.palette.part.CustomizePaletteViewer;
+import org.eclipse.xwt.vex.toolpalette.Entry;
+import org.eclipse.xwt.vex.toolpalette.ToolPalette;
+import org.eclipse.xwt.vex.toolpalette.ToolPaletteFactory;
+import org.eclipse.xwt.vex.toolpalette.impl.ToolPaletteImpl;
+import org.eclipse.xwt.vex.util.ImageHelper;
+
+/**
+ * @author BOB
+ * 
+ */
+public class CustomizeComponentFactory {
+	private final static String CUSTOMER_COMPONENT_ROOT = "VEX_CUSTOMIZE_COMPONENT_LIST"; //$NON-NLS-1$
+
+	private List<VEXEditor> allVEXEditorList = new ArrayList<VEXEditor>(); // to support multiple vex editor
+
+	// prefix and postfix strings
+	private final static String PREFIX_COMPONENT = "CUSTOMIZE_COMPONENT_"; //$NON-NLS-1$
+	private final static String POSTFIX_NAME = "_name"; //$NON-NLS-1$
+	private final static String POSTFIX_SCOPE = "_scope"; //$NON-NLS-1$
+	private final static String POSTFIX_ICON = "_icon"; //$NON-NLS-1$
+	private final static String POSTFIX_LARGE_ICON = "_large_icon"; //$NON-NLS-1$
+	private final static String POSTFIX_TOOLTIP = "_tooltip"; //$NON-NLS-1$
+	private final static String POSTFIX_CONTENT = "_content"; //$NON-NLS-1$
+
+	private static CustomizeComponentFactory customizeComponentFactory;
+	private static List<CustomizeComponent> customizeComponentList = new ArrayList<CustomizeComponent>();
+
+	// factory
+	public static CustomizeComponentFactory getCustomizeComponentFactory() {
+		if (customizeComponentFactory == null) {
+			customizeComponentFactory = new CustomizeComponentFactory();
+		}
+		return customizeComponentFactory;
+	}
+
+	private void refreshVEXEditorList() {
+		/* --------------------------support multiple editor----------------------------- */
+		allVEXEditorList.clear();
+		IEditorReference[] editorList = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getEditorReferences();
+		for (IEditorReference editorReference : editorList) {
+			IEditorPart editorTemp = editorReference.getEditor(false);
+			if (editorTemp instanceof VEXEditor) {
+				allVEXEditorList.add((VEXEditor) editorTemp);
+			}
+		}
+		/* --------------------------support multiple editor----------------------------- */
+
+	}
+
+	// constructor
+	private CustomizeComponentFactory() {
+		customizeComponentList.addAll(loadCustomizeComponents());
+	}
+
+	// Load Customize Components, then refresh the customize palette
+	public static List<CustomizeComponent> loadCustomizeComponents() {
+		List<CustomizeComponent> result = new ArrayList<CustomizeComponent>();
+		String customizeComponents = getCustomizeComponentNames();
+		if ((customizeComponents != null) && (!customizeComponents.equals(""))) { //$NON-NLS-1$
+			List<String> componentNameList = getSubString(customizeComponents);
+			for (String componentName : componentNameList) {
+				result.add(loadComponent(componentName));
+			}
+		}
+		return result;
+	}
+
+	private static String getCustomizeComponentNames() {
+		IPreferenceStore preferences = Activator.getDefault().getPreferenceStore();
+		String customizeComponents = preferences.getString(CUSTOMER_COMPONENT_ROOT);
+		return customizeComponents;
+	}
+
+	/**
+	 * save current customize components in memory to the preference storage
+	 * 
+	 * @author BOB
+	 * */
+	private void saveChangeAndRefresh() {
+		// 1. delete the existing storage
+		deleteRootComponentPreferenceStorage();
+		// 2.add the current memory customize component to preference
+		addComponentPreferenceStorage();
+		// 3.refresh palette
+		refreshPalette();
+		return;
+	}
+
+	private void deleteRootComponentPreferenceStorage() {
+		IPreferenceStore preferences = Activator.getDefault().getPreferenceStore();
+		preferences.setValue(CUSTOMER_COMPONENT_ROOT, ""); //$NON-NLS-1$
+		try {
+			((ScopedPreferenceStore) preferences).save();
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return;
+	}
+
+	private void addComponentPreferenceStorage() {
+		if (customizeComponentList.size() > 0) {
+			IPreferenceStore preferences = Activator.getDefault().getPreferenceStore();
+
+			String customizeComponents = ""; //$NON-NLS-1$
+			StringBuilder sb = new StringBuilder();
+
+			for (CustomizeComponent customizeComponent : customizeComponentList) {
+				updateComponentInPreference(preferences, customizeComponent);
+				sb.append(customizeComponent.getName() + ","); //$NON-NLS-1$
+			}
+			customizeComponents = sb.substring(0, sb.length() - 1);
+			// set the root value
+			preferences.setValue(CUSTOMER_COMPONENT_ROOT, customizeComponents);
+			try {
+				((ScopedPreferenceStore) preferences).save();
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
+		}
+		return;
+	}
+
+	private void updateComponentInPreference(IPreferenceStore preferences, CustomizeComponent customizeComponent) {
+		preferences.setValue(getComponentNameKey(customizeComponent.getName()), customizeComponent.getName());
+		preferences.setValue(getComponentScopeKey(customizeComponent.getName()), customizeComponent.getScope());
+		preferences.setValue(getComponentIconKey(customizeComponent.getName()), customizeComponent.getIcon());
+		preferences.setValue(getComponentLargeIconKey(customizeComponent.getName()), customizeComponent.getLargeIcon());
+		preferences.setValue(getComponentTooltipKey(customizeComponent.getName()), customizeComponent.getTooptip());
+		preferences.setValue(getComponentContentKey(customizeComponent.getName()), customizeComponent.getContent());
+		try {
+			((ScopedPreferenceStore) preferences).save();
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return;
+	}
+
+	/** Refresh Customize Palette */
+	public void refreshPalette() {
+		// 1. get the vex editor
+		refreshVEXEditorList();
+
+		for (VEXEditor editor : allVEXEditorList) {
+			PaletteViewer paletteViewer;
+			PaletteResourceManager tResourceManager;
+
+			paletteViewer = ((CustomPalettePage) ((VEXEditor) editor).getVEXEditorPalettePage()).getPaletteViewer();
+			tResourceManager = ((VEXEditor) editor).getPaletteResourceManager();
+			if (tResourceManager == null) {
+				return;
+			}
+
+			Resource resource = tResourceManager.getCustomizeResource();
+			CustomizePaletteViewer customizePaletteViewer = null;
+			Object objectPaletteViewer = paletteViewer.getProperty("Customize_PaletteViewer");
+			if (objectPaletteViewer instanceof CustomizePaletteViewer) {
+				customizePaletteViewer = (CustomizePaletteViewer) objectPaletteViewer;
+			}
+			if (customizePaletteViewer == null) {
+				return;
+			}
+			PaletteRoot root = customizePaletteViewer.getPaletteRoot();
+			List paletteChildren = root.getChildren();
+			PaletteGroup customizePaletteGroup = null;
+			for (Object object : paletteChildren) {
+				if (((PaletteGroup) object).getLabel().equals(EditorMessages.CustomizeComponentFactory_Customize)) {
+					customizePaletteGroup = (PaletteGroup) object;
+					break;
+				}
+			}
+			if (customizePaletteGroup == null) {
+				customizePaletteGroup = new PaletteGroup(EditorMessages.CustomizeComponentFactory_Customize);
+			}
+			List children = customizePaletteGroup.getChildren();
+			int count = children.size();
+			for (int i = 0; i < count; i++) {
+				customizePaletteGroup.remove((PaletteEntry) children.get(0));
+			}
+			root.remove(customizePaletteGroup);
+
+			// 5. add customize components to emf model and gef palette drawer
+			if (customizeComponentList.size() > 0) {
+				// add customize components
+				for (CustomizeComponent customizeComponent : customizeComponentList) {
+					Entry subEntry = ToolPaletteFactory.eINSTANCE.createEntry();
+					subEntry.setName(customizeComponent.getName());
+					subEntry.setScope(customizeComponent.getScope());
+					subEntry.setIcon(customizeComponent.getIcon());
+					subEntry.setLargeIcon(customizeComponent.getLargeIcon());
+					subEntry.setToolTip(customizeComponent.getTooptip());
+					subEntry.setContent(customizeComponent.getContent());
+
+					CombinedTemplateCreationEntry component = new CombinedTemplateCreationEntry(subEntry.getName(), subEntry.getToolTip(), subEntry, new SimpleFactory(resource.getClass()), ImageHelper.getImageDescriptor(tResourceManager, subEntry.getIcon()), ImageHelper.getImageDescriptor(tResourceManager, subEntry.getLargeIcon()));
+
+					customizePaletteGroup.add(component);
+				}
+			}
+			root.add(customizePaletteGroup);
+
+		}
+	}
+
+	/**
+	 * @return
+	 */
+	public ToolPalette getCustomizeToolPalette() {
+		ToolPalette toolPalette = ToolPaletteFactory.eINSTANCE.createToolPalette();
+		if (customizeComponentList.size() > 0) {
+			// add customize components
+			for (CustomizeComponent customizeComponent : customizeComponentList) {
+				Entry entry = ToolPaletteFactory.eINSTANCE.createEntry();
+				entry.setName(customizeComponent.getName());
+				entry.setScope(customizeComponent.getScope());
+				entry.setIcon(customizeComponent.getIcon());
+				entry.setLargeIcon(customizeComponent.getLargeIcon());
+				entry.setToolTip(customizeComponent.getTooptip());
+				entry.setContent(customizeComponent.getContent());
+
+				toolPalette.getEntries().add(entry);
+			}
+		}
+		return toolPalette;
+	}
+
+	/**
+	 * @param resource
+	 */
+	public void importCustomizeTool(Resource resource) {
+		EList<EObject> contents = resource.getContents();
+		for (EObject object : contents) {
+			if (object instanceof ToolPaletteImpl) {
+				ToolPaletteImpl toolPaletteImpl = (ToolPaletteImpl) object;
+				EList<Entry> entries = toolPaletteImpl.getEntries();
+				for (Entry entry : entries) {
+					CustomizeComponent component = new CustomizeComponent();
+					component.setName(entry.getName());
+					component.setScope(entry.getScope());
+					component.setIcon(entry.getIcon());
+					component.setLargeIcon(entry.getLargeIcon());
+					component.setTooptip(entry.getToolTip());
+					component.setContent(entry.getContent());
+					customizeComponentList.add(component);
+				}
+			}
+		}
+		refreshPalette();
+	}
+
+	/**
+	 * return customize components model list
+	 * */
+	public List<CustomizeComponent> getComponents() {
+		return customizeComponentList;
+	}
+
+	/**
+	 * add component to preference storage, then refresh the customize palette
+	 * */
+	public void addComponent(CustomizeComponent component) {
+		customizeComponentList.add(component);
+		saveChangeAndRefresh();
+	}
+
+	/**
+	 * modify component, and save to preference storage, then refresh palette
+	 * 
+	 * @param component
+	 */
+	public void modifyComponent(CustomizeComponent component, String oldName) {
+		if (component == null) {
+			return;
+		}
+
+		for (CustomizeComponent customizeComponent : customizeComponentList) {
+			if (customizeComponent.getName().equals(oldName)) {
+				customizeComponent.setName(component.getName());
+				customizeComponent.setScope(component.getScope());
+				customizeComponent.setIcon(component.getIcon());
+				customizeComponent.setLargeIcon(component.getLargeIcon());
+				customizeComponent.setTooptip(component.getTooptip());
+				customizeComponent.setContent(component.getContent());
+			}
+		}
+		saveChangeAndRefresh();
+	}
+
+	/**
+	 * delete component to preference storage, then refresh the customize palette
+	 */
+	public void deleteComponent(String componentName) {
+		if (customizeComponentList.size() > 0) {
+			for (CustomizeComponent customizeComponent : customizeComponentList) {
+				if (customizeComponent.getName().equals(componentName)) {
+					customizeComponentList.remove(customizeComponent);
+					break;
+				}
+			}
+			saveChangeAndRefresh();
+		}
+	}
+
+	/** get string list from a string, compart by "," */
+	private static List<String> getSubString(String str) {
+		ArrayList<String> arrayList = new ArrayList<String>();
+		String[] parts = str.split(","); //$NON-NLS-1$
+
+		for (int i = 0; i < parts.length; i++) {
+			arrayList.add(parts[i]);
+		}
+		return arrayList;
+	}
+
+	private static String getComponentNameKey(String componentName) {
+		return PREFIX_COMPONENT + componentName + POSTFIX_NAME;
+	}
+
+	private static String getComponentScopeKey(String componentName) {
+		return PREFIX_COMPONENT + componentName + POSTFIX_SCOPE;
+	}
+
+	private static String getComponentIconKey(String componentName) {
+		return PREFIX_COMPONENT + componentName + POSTFIX_ICON;
+	}
+
+	private static String getComponentLargeIconKey(String componentName) {
+		return PREFIX_COMPONENT + componentName + POSTFIX_LARGE_ICON;
+	}
+
+	private static String getComponentTooltipKey(String componentName) {
+		return PREFIX_COMPONENT + componentName + POSTFIX_TOOLTIP;
+	}
+
+	private static String getComponentContentKey(String componentName) {
+		return PREFIX_COMPONENT + componentName + POSTFIX_CONTENT;
+	}
+
+	/**
+	 * load customize component preference model object according to componentName
+	 */
+	public static CustomizeComponent loadComponent(String componentName) {
+		IPreferenceStore preferences = Activator.getDefault().getPreferenceStore();
+		CustomizeComponent component = new CustomizeComponent();
+		// set values
+		component.setName(preferences.getString(getComponentNameKey(componentName)));
+		component.setScope(preferences.getString(getComponentScopeKey(componentName)));
+		component.setIcon(preferences.getString(getComponentIconKey(componentName)));
+		component.setLargeIcon(preferences.getString(getComponentLargeIconKey(componentName)));
+		component.setTooptip(preferences.getString(getComponentTooltipKey(componentName)));
+		component.setContent(preferences.getString(getComponentContentKey(componentName)));
+		return component;
+	}
+
+	public boolean isComponentExist(String componentName) {
+		if (customizeComponentList == null) {
+			return false;
+		}
+		for (CustomizeComponent component : customizeComponentList) {
+			if (component.getName().equals(componentName)) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	public List<String> getCustomizeComponentNameList() {
+		List<String> customizeComponentNameList = new ArrayList<String>();
+
+		if (customizeComponentList != null) {
+			for (CustomizeComponent component : customizeComponentList) {
+				String name = component.getName();
+				customizeComponentNameList.add(name);
+			}
+		}
+		return customizeComponentNameList;
+	}
+
+	public CustomizeComponent getCustomizeComponentByName(String name) {
+		CustomizeComponent component = null;
+		if (customizeComponentList != null) {
+			for (CustomizeComponent comp : customizeComponentList) {
+				if (comp.getName().equals(name)) {
+					component = comp;
+					break;
+				}
+			}
+		}
+		return component;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/InvokeType.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/InvokeType.java
new file mode 100755
index 0000000..60e3d19
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/InvokeType.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette.customize;
+
+public enum InvokeType {
+	MenuAdd, DragAdd, Modify
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/AddCustomizePaletteAction.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/AddCustomizePaletteAction.java
new file mode 100755
index 0000000..aa1c351
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/AddCustomizePaletteAction.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette.customize.actions;
+
+import org.eclipse.gef.ui.palette.PaletteViewer;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.xwt.vex.palette.customize.InvokeType;
+import org.eclipse.xwt.vex.palette.customize.dialogs.CustomizePaletteDialog;
+
+/**
+ * An action to launch the customize palette component dialog for the given palette.
+ * 
+ * @author BOB
+ */
+public class AddCustomizePaletteAction extends Action {
+
+	private PaletteViewer paletteViewer;
+	private InvokeType invokeType;
+	private String selectionText;
+
+	/**
+	 * Constructor
+	 * 
+	 * @param palette
+	 *            The Palette which has to be customized when this action is run
+	 */
+	public AddCustomizePaletteAction(PaletteViewer palette, String selectionText, InvokeType invokeType) {
+		super();
+		setText("&Add Customize Component");
+		paletteViewer = palette;
+		this.selectionText = selectionText;
+		this.invokeType = invokeType;
+	}
+
+	/**
+	 * Opens the customize palette dialog
+	 * 
+	 * @see org.eclipse.jface.action.Action#run()
+	 */
+	public void run() {
+		Dialog customizeDialog;
+
+		if (invokeType == InvokeType.MenuAdd) {
+			customizeDialog = new CustomizePaletteDialog(InvokeType.MenuAdd, null, null);
+		} else { // drad add
+			customizeDialog = new CustomizePaletteDialog(InvokeType.DragAdd, null, selectionText);
+		}
+		customizeDialog.open();
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/DeleteCustomizeComponentAction.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/DeleteCustomizeComponentAction.java
new file mode 100755
index 0000000..bd6233e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/DeleteCustomizeComponentAction.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette.customize.actions;
+
+import org.eclipse.gef.ui.palette.PaletteViewer;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.xwt.vex.palette.customize.CustomizeComponentFactory;
+
+public class DeleteCustomizeComponentAction extends Action {
+	private String selectComponentName = "";
+	private PaletteViewer paletteViewer;
+
+	public DeleteCustomizeComponentAction(PaletteViewer paletteViewer, String selectComponentName) {
+		super();
+		setText("&Delete Selected Component");
+		this.paletteViewer = paletteViewer;
+		this.selectComponentName = selectComponentName;
+	}
+
+	@Override
+	public void run() {
+		super.run();
+		if (MessageDialog.openConfirm(paletteViewer.getControl().getShell(), "Confirm", "Are you sure to delete customize component " + selectComponentName + " ?")) {
+			// delete customize component
+			CustomizeComponentFactory customizeComponentFactory = CustomizeComponentFactory.getCustomizeComponentFactory();
+			customizeComponentFactory.deleteComponent(selectComponentName);
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/ExportCustomizeComponentsAction.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/ExportCustomizeComponentsAction.java
new file mode 100755
index 0000000..11056b9
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/ExportCustomizeComponentsAction.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.xwt.vex.palette.customize.actions;
+
+import java.io.IOException;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.vex.EditorMessages;
+import org.eclipse.xwt.vex.palette.customize.CustomizeComponentFactory;
+import org.eclipse.xwt.vex.toolpalette.ToolPalette;
+
+/**
+ * @author ZHOUBO
+ * 
+ */
+public class ExportCustomizeComponentsAction extends Action {
+	/**
+	 * 
+	 */
+	public ExportCustomizeComponentsAction() {
+		super();
+		setText(EditorMessages.ExportCustomizeComponentsAction_ActionText);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.action.Action#run()
+	 */
+	@Override
+	public void run() {
+		super.run();
+		FileDialog saveDialog = new FileDialog(new Shell(), SWT.SAVE);
+		saveDialog.setText(EditorMessages.ExportCustomizeComponentsAction_DialogText);
+		String fileName = saveDialog.open();
+		if (fileName != null) {
+			URI uri = URI.createFileURI(fileName);
+
+			CustomizeComponentFactory customizeComponentFactory = CustomizeComponentFactory.getCustomizeComponentFactory();
+			ToolPalette customizeToolPalette = customizeComponentFactory.getCustomizeToolPalette();
+			ResourceSet rs = new ResourceSetImpl();
+			Resource resource = rs.createResource(uri);
+			resource.getContents().add(customizeToolPalette);
+			try {
+				resource.save(null);
+				MessageDialog.openInformation(null, EditorMessages.ExportCustomizeComponentsAction_INFORMATION, EditorMessages.ExportCustomizeComponentsAction_SUCCESS + fileName);
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/ImportCustomizeComponentsAction.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/ImportCustomizeComponentsAction.java
new file mode 100755
index 0000000..efedde9
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/ImportCustomizeComponentsAction.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.xwt.vex.palette.customize.actions;
+
+import java.io.IOException;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.vex.EditorMessages;
+import org.eclipse.xwt.vex.palette.customize.CustomizeComponentFactory;
+
+/**
+ * @author ZHOUBO
+ * 
+ */
+public class ImportCustomizeComponentsAction extends Action {
+
+	/**
+	 * 
+	 */
+	public ImportCustomizeComponentsAction() {
+		setText(EditorMessages.ImportCustomizeComponentsAction_ActionText);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.action.Action#run()
+	 */
+	@Override
+	public void run() {
+		super.run();
+
+		FileDialog saveDialog = new FileDialog(new Shell(), SWT.OPEN);
+		saveDialog.setText(EditorMessages.ImportCustomizeComponentsAction_DialogText);
+		String fileName = saveDialog.open();
+		if (fileName != null) {
+			try {
+				URI uri = URI.createFileURI(fileName);
+				ResourceSet rs = new ResourceSetImpl();
+				Resource resource = rs.createResource(uri);
+				resource.load(null);
+				CustomizeComponentFactory customizeComponentFactory = CustomizeComponentFactory.getCustomizeComponentFactory();
+				customizeComponentFactory.importCustomizeTool(resource);
+			} catch (IOException e) {
+				MessageDialog.openError(null, EditorMessages.ImportCustomizeComponentsAction_ERROR, EditorMessages.ImportCustomizeComponentsAction_ERROR_INFORMATION);
+				e.printStackTrace();
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/ModifyCustomizeComponentAction.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/ModifyCustomizeComponentAction.java
new file mode 100755
index 0000000..81ae2a2
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/actions/ModifyCustomizeComponentAction.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette.customize.actions;
+
+import org.eclipse.gef.ui.palette.PaletteViewer;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.xwt.vex.palette.customize.CustomizeComponentFactory;
+import org.eclipse.xwt.vex.palette.customize.InvokeType;
+import org.eclipse.xwt.vex.palette.customize.dialogs.CustomizePaletteDialog;
+
+public class ModifyCustomizeComponentAction extends Action {
+	private String selectComponentName = "";
+	private PaletteViewer paletteViewer;
+
+	public ModifyCustomizeComponentAction(PaletteViewer paletteViewer, String selectComponentName) {
+		super();
+		setText("&Modify Selected Component");
+		this.paletteViewer = paletteViewer;
+		this.selectComponentName = selectComponentName;
+	}
+
+	@Override
+	public void run() {
+		super.run();
+		// modify customize component
+		// CustomizeComponentFactory customizeComponentFactory = CustomizeComponentFactory
+		// .getCustomizeComponentFactory();
+		Dialog customizeDialog = new CustomizePaletteDialog(InvokeType.Modify, selectComponentName, null);
+		customizeDialog.open();
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/dialogs/CustomizePaletteDialog.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/dialogs/CustomizePaletteDialog.java
new file mode 100755
index 0000000..9ada245
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/dialogs/CustomizePaletteDialog.java
@@ -0,0 +1,286 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette.customize.dialogs;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.jface.dialogs.IMessageProvider;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.TitleAreaDialog;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.dialogs.ElementTreeSelectionDialog;
+import org.eclipse.ui.model.WorkbenchContentProvider;
+import org.eclipse.ui.model.WorkbenchLabelProvider;
+import org.eclipse.xwt.vex.EditorMessages;
+import org.eclipse.xwt.vex.palette.customize.CustomizeComponentFactory;
+import org.eclipse.xwt.vex.palette.customize.InvokeType;
+import org.eclipse.xwt.vex.palette.customize.model.CustomizeComponent;
+
+public class CustomizePaletteDialog extends TitleAreaDialog {
+	// private PaletteViewer paletteViewer;
+	private Text textName;
+	private Text textScope;
+	private Text textIcon;
+	private Text textLargeIcon;
+	private Text textToolTip;
+	private Text textContent;
+	InvokeType invokeType;
+	CustomizeComponent customizeComponent;
+	String templateDnDText;
+
+	public CustomizePaletteDialog(InvokeType invokeType, String componentName, String templateDnDText) {
+		super(null);
+
+		this.invokeType = invokeType;
+		if (invokeType == InvokeType.Modify) {
+			customizeComponent = CustomizeComponentFactory.loadComponent(componentName);
+		}
+		if (invokeType == InvokeType.DragAdd) {
+			this.templateDnDText = templateDnDText;
+		}
+	}
+
+	@Override
+	protected Control createContents(Composite parent) {
+		Control contents = super.createContents(parent);
+
+		Rectangle screenSize = Display.getDefault().getClientArea();
+		Rectangle frameSize = this.getShell().getBounds();
+		this.getShell().setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
+
+		// Set the title
+		setTitle(EditorMessages.CustomizePaletteDialog_Title);
+		// Set the message
+		setMessage(EditorMessages.CustomizePaletteDialog_Message, IMessageProvider.INFORMATION);
+		return contents;
+	}
+
+	@Override
+	protected void configureShell(Shell newShell) {
+		// TODO Auto-generated method stub
+		super.configureShell(newShell);
+		newShell.setText(EditorMessages.CustomizePaletteDialog_Header);
+		newShell.setSize(500, 500);
+	}
+
+	/**
+	 * create the dialog area
+	 * */
+	protected Control createDialogArea(Composite parent) {
+		Composite composite = (Composite) super.createDialogArea(parent);
+		final Composite compositeNew = new Composite(composite, SWT.NONE);
+
+		GridLayout layout = new GridLayout();
+		layout.numColumns = 5;
+		compositeNew.setLayout(layout);
+
+		GridData data;
+		data = new GridData(GridData.FILL_BOTH);
+		compositeNew.setLayoutData(data);
+
+		// name
+		Label labelName = new Label(compositeNew, SWT.LEFT);
+		labelName.setText(EditorMessages.CustomizePaletteDialog_Name);
+		textName = new Text(compositeNew, SWT.SINGLE | SWT.BORDER);
+		data = new GridData(GridData.FILL_HORIZONTAL);
+		textName.setLayoutData(data);
+		textName.setToolTipText(EditorMessages.CustomizePaletteDialog_Name_ToolTip);
+
+		// scope
+		Label labelScope = new Label(compositeNew, SWT.LEFT);
+		labelScope.setText(EditorMessages.CustomizePaletteDialog_Scope);
+		textScope = new Text(compositeNew, SWT.SINGLE | SWT.BORDER);
+		data = new GridData(GridData.FILL_HORIZONTAL);
+		data.horizontalSpan = 2;
+		textScope.setLayoutData(data);
+		textScope.setToolTipText(EditorMessages.CustomizePaletteDialog_Scope_ToolTip);
+
+		// icon
+		Label labelIcon = new Label(compositeNew, SWT.LEFT);
+		labelIcon.setText(EditorMessages.CustomizePaletteDialog_Icon);
+		textIcon = new Text(compositeNew, SWT.SINGLE | SWT.BORDER);
+		data = new GridData(GridData.FILL_HORIZONTAL);
+		data.horizontalSpan = 3;
+		data.minimumWidth = 280;
+		textIcon.setLayoutData(data);
+		textIcon.setToolTipText(EditorMessages.CustomizePaletteDialog_Icon_ToolTip);
+		Button buttonBrowseIcon = new Button(compositeNew, SWT.PUSH);
+		buttonBrowseIcon.setText(EditorMessages.CustomizePaletteDialog_BrowseIcon);
+		buttonBrowseIcon.addSelectionListener(new SelectionListener() {
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			public void widgetSelected(SelectionEvent e) {
+				ElementTreeSelectionDialog selectionDialog = new ElementTreeSelectionDialog(compositeNew.getShell(), new WorkbenchLabelProvider(), new WorkbenchContentProvider());
+				selectionDialog.setAllowMultiple(false);
+				selectionDialog.setTitle(EditorMessages.CustomizePaletteDialog_SelectionDialog_Title);
+				selectionDialog.setMessage(EditorMessages.CustomizePaletteDialog_SelectionDialog_Text);
+				selectionDialog.setInput(ResourcesPlugin.getWorkspace().getRoot());
+				if (selectionDialog.open() == Window.OK) {
+					IFile file = (IFile) selectionDialog.getFirstResult();
+					String workspacePath = file.getWorkspace().getRoot().getLocation().toOSString();
+					String filePath = file.getFullPath().toOSString();
+					textIcon.setText(workspacePath + filePath);
+				}
+			}
+		});
+		data = new GridData(GridData.FILL_HORIZONTAL);
+		data.minimumWidth = 100;
+		buttonBrowseIcon.setLayoutData(data);
+
+		// large icon
+		Label labelLargeIcon = new Label(compositeNew, SWT.LEFT);
+		labelLargeIcon.setText(EditorMessages.CustomizePaletteDialog_LargeIcon);
+		textLargeIcon = new Text(compositeNew, SWT.SINGLE | SWT.BORDER);
+		data = new GridData(GridData.FILL_HORIZONTAL);
+		data.horizontalSpan = 3;
+		textLargeIcon.setLayoutData(data);
+		textLargeIcon.setToolTipText(EditorMessages.CustomizePaletteDialog_LargeIcon_ToolTip);
+		Button buttonBrowseLargeIcon = new Button(compositeNew, SWT.PUSH);
+		buttonBrowseLargeIcon.setText(EditorMessages.CustomizePaletteDialog_BrowseLargeIcon);
+		buttonBrowseLargeIcon.addSelectionListener(new SelectionListener() {
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			public void widgetSelected(SelectionEvent e) {
+				ElementTreeSelectionDialog selectionDialog = new ElementTreeSelectionDialog(compositeNew.getShell(), new WorkbenchLabelProvider(), new WorkbenchContentProvider());
+				selectionDialog.setAllowMultiple(false);
+				selectionDialog.setTitle(EditorMessages.CustomizePaletteDialog_SelectionDialog_LargeTitle);
+				selectionDialog.setMessage(EditorMessages.CustomizePaletteDialog_SelectionDialog_LargeText);
+				selectionDialog.setInput(ResourcesPlugin.getWorkspace().getRoot());
+				if (selectionDialog.open() == Window.OK) {
+					IFile file = (IFile) selectionDialog.getFirstResult();
+					String workspacePath = file.getWorkspace().getRoot().getLocation().toOSString();
+					String filePath = file.getFullPath().toOSString();
+					textLargeIcon.setText(workspacePath + filePath);
+				}
+			}
+		});
+		data = new GridData(GridData.FILL_HORIZONTAL);
+		buttonBrowseLargeIcon.setLayoutData(data);
+
+		// ToolTip
+		Label labelToolTip = new Label(compositeNew, SWT.LEFT);
+		labelToolTip.setText(EditorMessages.CustomizePaletteDialog_ToolTip);
+		textToolTip = new Text(compositeNew, SWT.SINGLE | SWT.BORDER);
+		data = new GridData(GridData.FILL_HORIZONTAL);
+		data.horizontalSpan = 4;
+		textToolTip.setLayoutData(data);
+		textToolTip.setToolTipText(EditorMessages.CustomizePaletteDialog_ToolTip_ToolTip);
+
+		// Content
+		Label labelContent = new Label(compositeNew, SWT.LEFT);
+		labelContent.setText(EditorMessages.CustomizePaletteDialog_Content);
+		data = new GridData(GridData.FILL_HORIZONTAL);
+		data.horizontalSpan = 5;
+		labelContent.setLayoutData(data);
+		textContent = new Text(compositeNew, SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
+		data = new GridData(GridData.FILL_BOTH);
+		data.horizontalSpan = 5;
+		textContent.setLayoutData(data);
+		textContent.setToolTipText(EditorMessages.CustomizePaletteDialog_Content_ToolTip);
+
+		if (invokeType == InvokeType.DragAdd) {
+			textContent.setText(templateDnDText);
+		}
+
+		setModifyComponentContent();
+
+		return composite;
+	}
+
+	private void setModifyComponentContent() {
+		if (invokeType == InvokeType.Modify) {
+			textName.setText(customizeComponent.getName());
+			textScope.setText(customizeComponent.getScope());
+			textIcon.setText(customizeComponent.getIcon());
+			textLargeIcon.setText(customizeComponent.getLargeIcon());
+			textToolTip.setText(customizeComponent.getTooptip());
+			textContent.setText(customizeComponent.getContent());
+		}
+	}
+
+	@Override
+	protected void okPressed() {
+		if (doAddCustomizePaletteComponent() == true) {
+			super.okPressed();
+		}
+	}
+
+	private boolean doAddCustomizePaletteComponent() {
+		if (!validInput()) {
+			return false;
+		}
+
+		CustomizeComponentFactory customizeComponentFactory = CustomizeComponentFactory.getCustomizeComponentFactory();
+
+		if ((invokeType != InvokeType.Modify) && customizeComponentFactory.isComponentExist(textName.getText())) {
+			MessageDialog.openError(null, EditorMessages.CustomizePaletteDialog_ErrorTitle, EditorMessages.CustomizePaletteDialog_ErrorMessage);
+			return false;
+		} else if (invokeType == InvokeType.Modify) {
+			if (!textName.getText().equals(customizeComponent.getName()) && customizeComponentFactory.isComponentExist(textName.getText())) {
+				MessageDialog.openError(null, EditorMessages.CustomizePaletteDialog_ErrorTitle, EditorMessages.CustomizePaletteDialog_ErrorMessage);
+				return false;
+			}
+		}
+		CustomizeComponent component = new CustomizeComponent();
+		component.setName(textName.getText());
+		component.setScope(textScope.getText());
+		component.setIcon(textIcon.getText());
+		component.setLargeIcon(textLargeIcon.getText());
+		component.setTooptip(textToolTip.getText());
+		component.setContent(textContent.getText());
+		// InvokeType.Modify or add an new one
+		if (invokeType == InvokeType.Modify) {
+			// modify
+			customizeComponentFactory.modifyComponent(component, customizeComponent.getName());
+		} else {
+			customizeComponentFactory.addComponent(component);
+		}
+		return true;
+	}
+
+	private boolean validInput() {
+		boolean result = true;
+
+		// name
+		if (textName.getText() == null || textName.getText().trim().equals("")) { //$NON-NLS-1$
+			MessageDialog.openError(null, EditorMessages.CustomizePaletteDialog_ErrorTitle, EditorMessages.CustomizePaletteDialog_NameError);
+			textName.setFocus();
+			textName.selectAll();
+			return false;
+		}
+
+		if (textContent.getText() == null || textContent.getText().trim().equals("")) { //$NON-NLS-1$
+			MessageDialog.openError(null, EditorMessages.CustomizePaletteDialog_ErrorTitle, EditorMessages.CustomizePaletteDialog_ContentError);
+			textContent.setFocus();
+			textContent.selectAll();
+			return false;
+		}
+
+		return result;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/model/CustomizeComponent.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/model/CustomizeComponent.java
new file mode 100755
index 0000000..cad3141
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/customize/model/CustomizeComponent.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette.customize.model;
+
+/**
+ * model class of customize component
+ * 
+ * @author BOB
+ */
+public class CustomizeComponent {
+	private String name = null;
+	private String scope = null;
+	private String icon = null;
+	private String largeIcon = null;
+	private String tooptip = null;
+	private String content = null;
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public String getScope() {
+		return scope;
+	}
+
+	public void setScope(String scope) {
+		this.scope = scope;
+	}
+
+	public String getIcon() {
+		return icon;
+	}
+
+	public void setIcon(String icon) {
+		this.icon = icon;
+	}
+
+	public String getLargeIcon() {
+		return largeIcon;
+	}
+
+	public void setLargeIcon(String largeIcon) {
+		this.largeIcon = largeIcon;
+	}
+
+	public String getTooptip() {
+		return tooptip;
+	}
+
+	public void setTooptip(String tooptip) {
+		this.tooptip = tooptip;
+	}
+
+	public String getContent() {
+		return content;
+	}
+
+	public void setContent(String content) {
+		this.content = content;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/CustomizePaletteViewer.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/CustomizePaletteViewer.java
new file mode 100755
index 0000000..bc4aeb6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/CustomizePaletteViewer.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette.part;
+
+import org.eclipse.gef.ui.palette.PaletteViewer;
+
+public class CustomizePaletteViewer extends PaletteViewer {
+	private boolean visible = true;
+
+	public boolean isVisible() {
+		return visible;
+	}
+
+	public void setVisible(boolean visible) {
+		this.visible = visible;
+	}
+
+	public CustomizePaletteViewer() {
+		super();
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/DynamicPaletteViewer.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/DynamicPaletteViewer.java
new file mode 100755
index 0000000..50fc675
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/DynamicPaletteViewer.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette.part;
+
+import org.eclipse.gef.ui.palette.PaletteViewer;
+import org.eclipse.gef.ui.parts.PaletteViewerKeyHandler;
+
+public class DynamicPaletteViewer extends PaletteViewer {
+	private boolean visible = true;
+
+	public boolean isVisible() {
+		return visible;
+	}
+
+	public void setVisible(boolean visible) {
+		this.visible = visible;
+	}
+
+	public DynamicPaletteViewer() {
+		setKeyHandler(new PaletteViewerKeyHandler(this));
+		setEditPartFactory(new ToolPaletteEditPartFactory());
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolDrawerEditPart.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolDrawerEditPart.java
new file mode 100755
index 0000000..f4a1f22
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolDrawerEditPart.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette.part;
+
+import org.eclipse.draw2d.FocusEvent;
+import org.eclipse.draw2d.FocusListener;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.internal.ui.palette.editparts.DrawerEditPart;
+import org.eclipse.gef.palette.PaletteDrawer;
+
+/**
+ * 
+ */
+public class ToolDrawerEditPart extends DrawerEditPart {
+
+	private int childLevel = 0;
+
+	public ToolDrawerEditPart(PaletteDrawer drawer) {
+		super(drawer);
+	}
+
+	public IFigure createFigure() {
+		if (getParent() instanceof ToolDrawerEditPart) {
+			ToolDrawerEditPart parent = (ToolDrawerEditPart) getParent();
+			childLevel = parent.childLevel + 1;
+
+			ToolDrawerFigure fig = new ToolDrawerFigure(getViewer().getControl(), childLevel) {
+
+				IFigure buildTooltip() {
+					return createToolTip();
+				}
+			};
+			fig.setExpanded(getDrawer().isInitiallyOpen());
+			fig.setPinned(getDrawer().isInitiallyPinned());
+
+			fig.getCollapseToggle().addFocusListener(new FocusListener.Stub() {
+
+				public void focusGained(FocusEvent fe) {
+					getViewer().select(ToolDrawerEditPart.this);
+				}
+			});
+
+			return fig;
+		}
+		return super.createFigure();
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolDrawerFigure.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolDrawerFigure.java
new file mode 100755
index 0000000..29c6737
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolDrawerFigure.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette.part;
+
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.internal.ui.palette.editparts.DrawerFigure;
+import org.eclipse.swt.widgets.Control;
+
+/**
+ * 
+ */
+public class ToolDrawerFigure extends DrawerFigure {
+
+	private static final int COLOR_INCREMENT = 15;
+
+	private static final int X_OFFSET = 17;
+
+	public ToolDrawerFigure(Control control, int childLevel) {
+		super(control);
+
+		// Color baseColor = control.getBackground();
+		// Color backgroundColor = new Color(Display.getCurrent(), getNewValue(baseColor.getRed(), childLevel), getNewValue(
+		// baseColor.getGreen(), childLevel), getNewValue(baseColor.getBlue(), childLevel));
+		// getContentPane().setBackgroundColor(backgroundColor);
+	}
+
+	private int getNewValue(int oldValue, int childLevel) {
+		int result = oldValue - childLevel * COLOR_INCREMENT;
+		return (result > 0 ? result : 0);
+	}
+
+	@Override
+	public Rectangle getBounds() {
+		return new Rectangle(bounds.x + X_OFFSET, bounds.y, bounds.width, bounds.height);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolPaletteDrawer.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolPaletteDrawer.java
new file mode 100755
index 0000000..b5d2160
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolPaletteDrawer.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette.part;
+
+import org.eclipse.gef.palette.PaletteDrawer;
+
+/**
+ * 
+ */
+public class ToolPaletteDrawer extends PaletteDrawer {
+
+	public ToolPaletteDrawer(String label) {
+		super(label);
+	}
+
+	@Override
+	public boolean acceptsType(Object type) {
+		return true;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolPaletteEditPartFactory.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolPaletteEditPartFactory.java
new file mode 100755
index 0000000..0294679
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolPaletteEditPartFactory.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette.part;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.palette.PaletteDrawer;
+import org.eclipse.gef.ui.palette.PaletteEditPartFactory;
+
+/**
+ * 
+ */
+public class ToolPaletteEditPartFactory extends PaletteEditPartFactory {
+
+	protected EditPart createDrawerEditPart(EditPart parentEditPart, Object model) {
+		return new ToolDrawerEditPart((PaletteDrawer) model);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolPaletteViewer.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolPaletteViewer.java
new file mode 100755
index 0000000..f2dc061
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolPaletteViewer.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette.part;
+
+import org.eclipse.gef.EditDomain;
+import org.eclipse.gef.ui.palette.PaletteViewer;
+import org.eclipse.gef.ui.parts.PaletteViewerKeyHandler;
+
+/**
+ * 
+ */
+public class ToolPaletteViewer extends PaletteViewer {
+
+	public ToolPaletteViewer(EditDomain graphicalViewerDomain) {
+		setEditDomain(graphicalViewerDomain);
+		setKeyHandler(new PaletteViewerKeyHandler(this));
+		setEditPartFactory(new ToolPaletteEditPartFactory());
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolPaletteViewerProvider.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolPaletteViewerProvider.java
new file mode 100755
index 0000000..1e7128f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolPaletteViewerProvider.java
@@ -0,0 +1,182 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette.part;
+
+import java.util.List;
+
+import org.eclipse.gef.EditDomain;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.palette.CombinedTemplateCreationEntry;
+import org.eclipse.gef.ui.palette.PaletteViewer;
+import org.eclipse.gef.ui.palette.PaletteViewerProvider;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.DropTarget;
+import org.eclipse.swt.dnd.DropTargetEvent;
+import org.eclipse.swt.dnd.DropTargetListener;
+import org.eclipse.swt.dnd.TextTransfer;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.part.PageBook;
+import org.eclipse.xwt.vex.EditorMessages;
+import org.eclipse.xwt.vex.VEXEditor;
+import org.eclipse.xwt.vex.palette.PaletteRootFactory;
+import org.eclipse.xwt.vex.palette.customize.CustomerPaletteContextMenuProvider;
+import org.eclipse.xwt.vex.palette.customize.InvokeType;
+import org.eclipse.xwt.vex.palette.customize.dialogs.CustomizePaletteDialog;
+import org.eclipse.xwt.vex.swt.CustomSashForm;
+import org.eclipse.xwt.vex.toolpalette.impl.EntryImpl;
+
+/**
+ * @author BOB
+ */
+public class ToolPaletteViewerProvider extends PaletteViewerProvider {
+
+	private IEditorPart editorPart;
+	private PaletteViewer toolPaletteViewer;
+	private DynamicPaletteViewer dynamicPaletteViewer;
+	private CustomizePaletteViewer customizePaletteViewer;
+	private CustomSashForm sashFormMain;
+	private CustomSashForm dynamicAndCustomizeSashForm;
+
+	public ToolPaletteViewerProvider(EditDomain graphicalViewerDomain, IEditorPart editorPart) {
+		super(graphicalViewerDomain);
+		this.editorPart = editorPart;
+	}
+
+	public PaletteViewer createPaletteViewer(Composite parent) {
+		PageBook pageBook = (PageBook) parent;
+
+		sashFormMain = new CustomSashForm(pageBook, SWT.VERTICAL);
+
+		// sashForm.
+		CustomSashForm toolSashForm = new CustomSashForm(sashFormMain, SWT.VERTICAL);
+
+		toolPaletteViewer = new ToolPaletteViewer(this.getEditDomain());
+		toolPaletteViewer.createControl(toolSashForm);
+		configurePaletteViewer(toolPaletteViewer);
+		hookPaletteViewer(toolPaletteViewer);
+		dynamicAndCustomizeSashForm = new CustomSashForm(sashFormMain, SWT.VERTICAL);
+
+		Composite dynamicComposite = new Composite(dynamicAndCustomizeSashForm, SWT.BORDER);
+		dynamicComposite.setLayout(new FillLayout());
+		Composite customizeComposite = new Composite(dynamicAndCustomizeSashForm, SWT.BORDER);
+		customizeComposite.setLayout(new FillLayout());
+
+		// dynamic part
+		dynamicPaletteViewer = new DynamicPaletteViewer();
+		dynamicPaletteViewer.createControl(dynamicComposite);
+		configurePaletteViewer(dynamicPaletteViewer);
+		dynamicPaletteViewer.setPaletteRoot(PaletteRootFactory.createDynamicPalette(editorPart));
+
+		// customize part
+		customizePaletteViewer = new CustomizePaletteViewer();
+		customizePaletteViewer.createControl(customizeComposite);
+		configurePaletteViewer(customizePaletteViewer);
+		customizePaletteViewer.setPaletteRoot(PaletteRootFactory.createCustomizePalette(editorPart));
+
+		DropTarget dropTarget = new DropTarget(customizeComposite, DND.DROP_COPY | DND.DROP_MOVE);
+		Transfer[] types = new Transfer[] { TextTransfer.getInstance() };
+		dropTarget.setTransfer(types);
+		dropTarget.addDropListener(dropTargetAdapter);
+
+		sashFormMain.setWeights(new int[] { 2, 1 });
+		dynamicAndCustomizeSashForm.setWeights(new int[] { 1, 1 });
+
+		// Show the sashForm manually.
+		pageBook.showPage(sashFormMain);
+
+		toolPaletteViewer.setProperty(EditorMessages.CustomizeComponentFactory_VIEWER_EDITOR, editorPart); //$NON-NLS-1$
+		toolPaletteViewer.setProperty("Dynamic_PaletteViewer", dynamicPaletteViewer);
+		toolPaletteViewer.setProperty("Customize_PaletteViewer", customizePaletteViewer);
+		toolPaletteViewer.setProperty("ToolSashForm", toolSashForm);
+		toolPaletteViewer.setProperty("SashFormMain", sashFormMain);
+		dynamicPaletteViewer.setProperty("DynamicAndCustomizeSashForm", dynamicAndCustomizeSashForm);
+		dynamicPaletteViewer.setProperty("DynamicComposite", dynamicComposite);
+		customizePaletteViewer.setProperty("DynamicAndCustomizeSashForm", dynamicAndCustomizeSashForm);
+		customizePaletteViewer.setProperty("CustomizeComposite", customizeComposite);
+		return toolPaletteViewer;
+	}
+
+	public DynamicPaletteViewer getDynamicPaletteViewer() {
+		return dynamicPaletteViewer;
+	}
+
+	public CustomizePaletteViewer getCustomizePaletteViewer() {
+		return customizePaletteViewer;
+	}
+
+	protected DropTargetListener dropTargetAdapter = new DropTargetListener() {
+
+		public void dragEnter(DropTargetEvent event) {
+		}
+
+		public void dragLeave(DropTargetEvent event) {
+		}
+
+		public void dragOperationChanged(DropTargetEvent event) {
+		}
+
+		public void dragOver(DropTargetEvent event) {
+		}
+
+		public void drop(DropTargetEvent event) {
+			Dialog customizeDialog;
+			customizeDialog = new CustomizePaletteDialog(InvokeType.DragAdd, null, event.data.toString());
+			customizeDialog.open();
+		}
+
+		public void dropAccept(DropTargetEvent event) {
+		}
+
+	};
+
+	/*
+	 * override the configurePaletteViewer by using CustomerPaletteContextMenuProvider so that we can add customize popup
+	 * 
+	 * @see org.eclipse.gef.ui.palette.PaletteViewerProvider#configurePaletteViewer (org.eclipse.gef.ui.palette.PaletteViewer)
+	 */
+	protected void configurePaletteViewer(final PaletteViewer viewer) {
+		// super.configurePaletteViewer(viewer);
+		viewer.setContextMenu(new CustomerPaletteContextMenuProvider(viewer));
+		viewer.addDragSourceListener(new ToolTransferDragSourceListener(viewer));
+		viewer.getControl().addMouseListener(new MouseAdapter() {
+
+			@Override
+			public void mouseDoubleClick(MouseEvent e) {
+				super.mouseDoubleClick(e);
+				List<?> selectedEditParts = viewer.getSelectedEditParts();
+				CombinedTemplateCreationEntry selectedEntry = null;
+				for (Object object : selectedEditParts) {
+					selectedEntry = (CombinedTemplateCreationEntry) ((EditPart) object).getModel();
+				}
+
+				EntryImpl entryTemplate = (EntryImpl) selectedEntry.getTemplate();
+
+				VEXEditor currentVEXEditor;
+				IEditorPart activeEditor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
+				if (activeEditor instanceof VEXEditor) {
+					currentVEXEditor = (VEXEditor) activeEditor;
+					currentVEXEditor.defaultCreation(entryTemplate);
+				}
+			}
+
+		});
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolTransferDragSourceListener.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolTransferDragSourceListener.java
new file mode 100755
index 0000000..d156d6b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolTransferDragSourceListener.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette.part;
+
+import java.util.List;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartViewer;
+import org.eclipse.gef.dnd.AbstractTransferDragSourceListener;
+import org.eclipse.gef.palette.CombinedTemplateCreationEntry;
+import org.eclipse.gef.palette.PaletteTemplateEntry;
+import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.swt.dnd.DragSourceEvent;
+
+public class ToolTransferDragSourceListener extends AbstractTransferDragSourceListener {
+
+	public ToolTransferDragSourceListener(EditPartViewer viewer) {
+		super(viewer, LocalSelectionTransfer.getTransfer());
+	}
+
+	/**
+	 * @see AbstractTransferDragSourceListener#dragFinished(DragSourceEvent)
+	 */
+	public void dragFinished(DragSourceEvent event) {
+		LocalSelectionTransfer.getTransfer().setSelection(null);
+	}
+
+	/**
+	 * Get the <i>template</i> from the selected {@link PaletteTemplateEntry} and sets it as the event data to be dropped.
+	 * 
+	 * @param event
+	 *            the DragSourceEvent
+	 */
+	public void dragSetData(DragSourceEvent event) {
+		event.data = getTemplate();
+	}
+
+	/**
+	 * Cancels the drag if the selected item does not represent a PaletteTemplateEntry.
+	 * 
+	 * @see org.eclipse.swt.dnd.DragSourceListener#dragStart(DragSourceEvent)
+	 */
+	public void dragStart(DragSourceEvent event) {
+		Object template = getTemplate();
+		if (template == null) {
+			event.doit = false;
+			return;
+		}
+		IStructuredSelection selection = new StructuredSelection(template);
+		LocalSelectionTransfer.getTransfer().setSelection(selection);
+	}
+
+	/**
+	 * A helper method that returns <code>null</code> or the <i>template</i> Object from the currently selected EditPart.
+	 * 
+	 * @return the template
+	 */
+	protected Object getTemplate() {
+		List selection = getViewer().getSelectedEditParts();
+		if (selection.size() == 1) {
+			EditPart editpart = (EditPart) getViewer().getSelectedEditParts().get(0);
+			Object model = editpart.getModel();
+			if (model instanceof PaletteTemplateEntry)
+				return ((PaletteTemplateEntry) model).getTemplate();
+			if (model instanceof CombinedTemplateCreationEntry)
+				return ((CombinedTemplateCreationEntry) model).getTemplate();
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolTransferDropTargetListener.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolTransferDropTargetListener.java
new file mode 100755
index 0000000..4872b55
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/palette/part/ToolTransferDropTargetListener.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.palette.part;
+
+import org.eclipse.gef.EditPartViewer;
+import org.eclipse.gef.dnd.AbstractTransferDropTargetListener;
+import org.eclipse.swt.dnd.DropTargetEvent;
+import org.eclipse.xwt.vex.PalletteSelectionTransfer;
+
+public class ToolTransferDropTargetListener extends AbstractTransferDropTargetListener {
+
+	public ToolTransferDropTargetListener(EditPartViewer viewer) {
+		super(viewer, PalletteSelectionTransfer.getInstance());
+		setEnablementDeterminedByCommand(false);
+	}
+
+	@Override
+	protected void updateTargetRequest() {
+
+	}
+
+	@Override
+	public boolean isEnabled(DropTargetEvent event) {
+		System.out.println(event.toString());
+		return true;
+		// return super.isEnabled(event);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/problems/IProblemChecker.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/problems/IProblemChecker.java
new file mode 100755
index 0000000..9f91a2b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/problems/IProblemChecker.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.problems;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.wst.sse.ui.StructuredTextEditor;
+
+/**
+ * @author jliu
+ * 
+ */
+public interface IProblemChecker {
+
+	List<Problem> EMPTY = Collections.emptyList();
+
+	List<Problem> checkProblems(StructuredTextEditor textEditor, String javaClassName);
+
+	boolean canChecked(StructuredTextEditor textEditor, String javaClassName);
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/problems/Problem.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/problems/Problem.java
new file mode 100755
index 0000000..5cc2dd5
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/problems/Problem.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.problems;
+
+/**
+ * @author jliu
+ */
+public class Problem {
+
+	// Problem Types.
+	public static final int NONE = 0;
+	public static final int WARNING = 1;
+	public static final int INFO = 2;
+	public static final int ERROR = 3;
+
+	private String message;
+	private int type = NONE;
+
+	public int start;
+	public int end;
+	public int line;
+
+	private Object source;
+
+	public Problem(String message, int type) {
+		this.message = message;
+		this.type = type;
+	}
+
+	public String getMessage() {
+		return message;
+	}
+
+	public void setMessage(String message) {
+		this.message = message;
+	}
+
+	public int getType() {
+		return type;
+	}
+
+	public void setType(int type) {
+		this.type = type;
+	}
+
+	public Object getSource() {
+		return source;
+	}
+
+	public void setSource(Object source) {
+		this.source = source;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/problems/ProblemCheckerRegistry.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/problems/ProblemCheckerRegistry.java
new file mode 100755
index 0000000..f4af218
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/problems/ProblemCheckerRegistry.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.problems;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.Platform;
+
+public class ProblemCheckerRegistry {
+
+	public static final String EXTENSION_ID = "org.eclipse.xwt.vex.problemChecker";
+	private static final String CHECKER = "class";
+
+	public final static ProblemCheckerRegistry INSTANCE = new ProblemCheckerRegistry();
+
+	private Map<String, IProblemChecker> name2checker = new HashMap<String, IProblemChecker>();
+
+	private ProblemCheckerRegistry() {
+		// 
+	}
+
+	public List<IProblemChecker> getCheckers(String pointId) {
+		List<IProblemChecker> checkers = new ArrayList<IProblemChecker>();
+		IConfigurationElement[] configElem = Platform.getExtensionRegistry().getConfigurationElementsFor(EXTENSION_ID);
+		for (IConfigurationElement ce : configElem) {
+			try {
+				IExtension parent = (IExtension) ce.getParent();
+				String uniqueIdentifier = parent.getUniqueIdentifier();
+				if (!pointId.equals(uniqueIdentifier)) {
+					continue;
+				}
+				String attribute = ce.getAttribute(CHECKER);
+				IProblemChecker checker = name2checker.get(attribute);
+				if (checker == null) {
+					checker = (IProblemChecker) ce.createExecutableExtension(CHECKER);
+					name2checker.put(attribute, checker);
+				}
+				checkers.add(checker);
+			} catch (CoreException e) {
+				return Collections.emptyList();
+			}
+		}
+		return checkers;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/properties/VEXPropertySheetConfiguration.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/properties/VEXPropertySheetConfiguration.java
new file mode 100755
index 0000000..fe5203f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/properties/VEXPropertySheetConfiguration.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.properties;
+
+import org.eclipse.wst.xml.ui.views.properties.XMLPropertySheetConfiguration;
+
+public class VEXPropertySheetConfiguration extends XMLPropertySheetConfiguration {
+
+	public VEXPropertySheetConfiguration() {
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/provisional/VEXSourceEditingTextTools.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/provisional/VEXSourceEditingTextTools.java
new file mode 100755
index 0000000..08d64c1
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/provisional/VEXSourceEditingTextTools.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.provisional;
+
+import org.eclipse.wst.xml.ui.internal.provisional.XMLSourceEditingTextTools;
+
+public class VEXSourceEditingTextTools extends XMLSourceEditingTextTools {
+
+	public VEXSourceEditingTextTools() {
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/AnimatedImage.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/AnimatedImage.java
new file mode 100755
index 0000000..491f36e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/AnimatedImage.java
@@ -0,0 +1,263 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.swt;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.SWTException;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.ImageData;
+import org.eclipse.swt.graphics.ImageLoader;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+
+public class AnimatedImage extends CLabel {
+	protected InputStream imageFile;
+	protected boolean stop = true;
+	protected boolean useGIFBackground = false;
+	protected int horizontalAlignment = SWT.LEFT;
+	protected int verticalAlignment = SWT.TOP;
+
+	protected AnimationRunnable animateThread = new AnimationRunnable();
+
+	class AnimationRunnable implements Runnable {
+		protected ImageLoader loader;
+		protected Image image;
+		protected ImageData[] imageDataArray;
+		protected GC targetGC;
+		protected Image offScreenImage;
+		protected GC offScreenImageGC;
+		protected int imageDataIndex = 0;
+		protected int repeatCount;
+
+		public void run() {
+			if (isDisposed() || stop) {
+				clearStop();
+				return;
+			}
+			Display display = getDisplay();
+			Color background = getBackground();
+			if (loader == null) {
+				setText("");
+				loader = new ImageLoader();
+				imageDataArray = loader.load(imageFile);
+				targetGC = new GC(AnimatedImage.this);
+				/*
+				 * Create an off-screen image to draw on, and fill it with the shell background.
+				 */
+				offScreenImage = new Image(display, loader.logicalScreenWidth, loader.logicalScreenHeight);
+				offScreenImageGC = new GC(offScreenImage);
+				offScreenImageGC.setBackground(background);
+				offScreenImageGC.fillRectangle(0, 0, loader.logicalScreenWidth, loader.logicalScreenHeight);
+
+				/*
+				 * Create the first image and draw it on the off-screen image.
+				 */
+				imageDataIndex = 0;
+				ImageData imageData = imageDataArray[imageDataIndex];
+				if (image != null && !image.isDisposed())
+					image.dispose();
+				image = new Image(display, imageData);
+				offScreenImageGC.drawImage(image, 0, 0, imageData.width, imageData.height, imageData.x, imageData.y, imageData.width, imageData.height);
+				repeatCount = loader.repeatCount;
+			}
+
+			try {
+				/*
+				 * Now loop through the images, creating and drawing each one on the off-screen image before drawing it on the shell.
+				 */
+				ImageData imageData = imageDataArray[imageDataIndex];
+				if (loader.repeatCount == 0 || repeatCount > 0) {
+					switch (imageData.disposalMethod) {
+					case SWT.DM_FILL_BACKGROUND:
+						/*
+						 * Fill with the background color before drawing.
+						 */
+						Color bgColor = null;
+						if (useGIFBackground && loader.backgroundPixel != -1) {
+							bgColor = new Color(display, imageData.palette.getRGB(loader.backgroundPixel));
+						}
+						offScreenImageGC.setBackground(bgColor != null ? bgColor : background);
+						offScreenImageGC.fillRectangle(imageData.x, imageData.y, imageData.width, imageData.height);
+						if (bgColor != null)
+							bgColor.dispose();
+						break;
+					case SWT.DM_FILL_PREVIOUS:
+						/*
+						 * Restore the previous image before drawing.
+						 */
+						offScreenImageGC.drawImage(image, 0, 0, imageData.width, imageData.height, imageData.x, imageData.y, imageData.width, imageData.height);
+						break;
+					}
+
+					imageDataIndex = (imageDataIndex + 1) % imageDataArray.length;
+					imageData = imageDataArray[imageDataIndex];
+					image.dispose();
+					image = new Image(display, imageData);
+					offScreenImageGC.drawImage(image, 0, 0, imageData.width, imageData.height, imageData.x, imageData.y, imageData.width, imageData.height);
+
+					/* Draw the off-screen image to the composite. */
+					Rectangle container = getBounds();
+					Rectangle imageBound = offScreenImage.getBounds();
+					int x = 0;
+					int y = 0;
+					switch (horizontalAlignment) {
+					case SWT.LEFT:
+						break;
+					case SWT.RIGHT:
+						x = (container.width - imageBound.width);
+						break;
+					case SWT.CENTER:
+						x = (container.width - imageBound.width) / 2;
+						break;
+					default:
+						throw new IllegalStateException("HorizontalAlignment " + horizontalAlignment);
+					}
+					switch (verticalAlignment) {
+					case SWT.TOP:
+						break;
+					case SWT.CENTER:
+						y = (container.height - imageBound.height) / 2;
+						break;
+					case SWT.BOTTOM:
+						y = (container.height - imageBound.height);
+						break;
+					default:
+						throw new IllegalStateException("VerticalAlignment " + verticalAlignment);
+					}
+
+					if (x < 0) {
+						x = 0;
+					}
+					if (y < 0) {
+						y = 0;
+					}
+
+					targetGC.drawImage(offScreenImage, x, y);
+
+					/*
+					 * Sleep for the specified delay time (adding commonly-used slow-down fudge factors).
+					 */
+					{
+						int ms = imageData.delayTime * 10;
+						if (ms < 20)
+							ms += 30;
+						if (ms < 30)
+							ms += 10;
+						getDisplay().timerExec(ms, this);
+					}
+
+					/*
+					 * If we have just drawn the last image, decrement the repeat count and start again.
+					 */
+					if (imageDataIndex == imageDataArray.length - 1)
+						repeatCount--;
+				} else {
+					clearStop();
+				}
+			} catch (SWTException ex) {
+				System.out.println("There was an error animating the GIF");
+			} finally {
+			}
+		}
+
+		protected void clearStop() {
+			if (offScreenImage != null && !offScreenImage.isDisposed()) {
+				try {
+					offScreenImage.dispose();
+				} catch (Exception e) {
+				}
+			}
+			if (offScreenImageGC != null && !offScreenImageGC.isDisposed()) {
+				try {
+					offScreenImageGC.dispose();
+				} catch (Exception e) {
+				}
+			}
+			if (image != null && !image.isDisposed()) {
+				try {
+					image.dispose();
+				} catch (Exception e) {
+				}
+			}
+			if (targetGC != null && !targetGC.isDisposed()) {
+				try {
+					targetGC.dispose();
+				} catch (Exception e) {
+				}
+			}
+			targetGC = null;
+			image = null;
+			offScreenImageGC = null;
+			offScreenImage = null;
+			loader = null;
+			imageDataArray = null;
+			imageDataIndex = 0;
+			repeatCount = 0;
+			stop = true;
+		}
+	};
+
+	public AnimatedImage(Composite parent, int style) {
+		super(parent, style);
+	}
+
+	public int getHorizontalAlignment() {
+		return horizontalAlignment;
+	}
+
+	public void setHorizontalAlignment(int horizontalAlignment) {
+		this.horizontalAlignment = horizontalAlignment;
+	}
+
+	public int getVerticalAlignment() {
+		return verticalAlignment;
+	}
+
+	public void setVerticalAlignment(int verticalAlignment) {
+		this.verticalAlignment = verticalAlignment;
+	}
+
+	public void setImageFile(URL imageFile) throws IOException {
+		if (!stop) {
+			throw new IllegalStateException("Animation is running");
+		}
+
+		this.imageFile = imageFile.openStream();
+		if (imageFile != null) {
+			start();
+		}
+	}
+
+	public void start() {
+		stop = false;
+		getDisplay().asyncExec(animateThread);
+	}
+
+	public void stop() {
+		stop = true;
+	}
+
+	@Override
+	public void dispose() {
+		stop = true;
+		super.dispose();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/CustomSashForm.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/CustomSashForm.java
new file mode 100755
index 0000000..0db69ad
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/CustomSashForm.java
@@ -0,0 +1,942 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.swt;
+
+/*
+ *  $RCSfile: CustomSashForm.java,v $
+ *  $Revision: 1.3 $  $Date: 2010/06/18 00:17:01 $ 
+ */
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.draw2d.Cursors;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.events.ControlEvent;
+import org.eclipse.swt.events.ControlListener;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.MouseMoveListener;
+import org.eclipse.swt.events.MouseTrackAdapter;
+import org.eclipse.swt.events.PaintEvent;
+import org.eclipse.swt.events.PaintListener;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Sash;
+
+/**
+ * A SashForm that allows move to/from max controls on sash.
+ * 
+ * It only works with one sash (two children). It doesn't make sense for the arrows when there is more than one sash. Things get confusing for a restore position.
+ * 
+ * Currently only handle top/bottom orientation. Wouldn't take much to handle left/right.
+ * 
+ * @author richkulp
+ */
+public class CustomSashForm extends SashForm {
+
+	public static final String copyright = "(c) Copyright IBM Corporation 2002."; //$NON-NLS-1$
+	/**
+	 * Custom style bits. They set whether max to one side of the other is not permitted. For example, if NO_MAX_UP, then there will be only one arrow. When not maxed, it will point down (and will do a max down), and when maxed down, it will point up (and will do a restore to the previous weight). There won't be a max to the top arrow.
+	 */
+	public static final int NO_MAX_LEFT = 0x1, // Custom style bit for not allow
+			// max left
+			NO_MAX_UP = NO_MAX_LEFT, // Custom style bit for not allow max up
+			NO_MAX_RIGHT = 0x2, // Custom style bit for not allow max right
+			NO_MAX_DOWN = NO_MAX_RIGHT; // Custom style bit for not allow max
+	// down
+
+	private static final int NO_WEIGHT = -1;
+	private static final int NO_ARROW = -1;
+
+	private static class SashInfo {
+		public Sash sash;
+		public boolean enabled; // Whether this sashinfo is enabled (i.e. if
+		// there is more than one, this will be
+		// disabled).
+		public int weight = NO_WEIGHT; // If slammed to an edge this is the
+		// restore weight. -1 means not slammed.
+		// This is the weight in the next form
+		// (i.e. sash[0] == weight[1].
+		public int cursorOver = NO_ARROW; // Which arrow is cursor over,
+		public boolean sashBorderLeft; // Draw sash border left/top
+		public boolean sashBorderRight; // Draw sash border right/bottom
+		public int[][] sashLocs; // There is one entry for each arrow, It is
+
+		// arrowType/arrowDrawn/x/y/height/width of
+		// the arrow area.
+
+		// There may not be a second entry, in which case we have only one
+		// arrow.
+		public SashInfo(Sash sash) {
+			this.sash = sash;
+		}
+	};
+
+	public static interface ICustomSashFormListener {
+		public void dividerMoved(int firstControlWeight, int secondControlWeight);
+	}
+
+	protected SashInfo currentSashInfo = null; // When the sash goes away, its
+	// entry is made null.
+	protected boolean inMouseClick = false; // Because we can't stop drag even
+	// when we are in the arrow area, we
+	// need
+	// to know that mouse down is in process so that when drag is completed, we
+	// know not to recompute our position because a mouse up is about to happen
+	// and we want the correct arrow handled correctly.
+
+	protected boolean sashBorders[]; // Whether cooresponding control needs a
+	// sash border
+
+	protected boolean noMaxUp, noMaxDown;
+	protected List customSashFormListeners = null;
+
+	protected static final int UP_ARROW = 0, UP_MAX_ARROW = 1, DOWN_ARROW = 2, DOWN_MAX_ARROW = 3,
+
+	MAX_ARROWS = 4;
+
+	protected static final int ARROW_TYPE_INDEX = 0, ARROW_DRAWN_INDEX = 1, X_INDEX = 2, Y_INDEX = 3, WIDTH_INDEX = 4, HEIGHT_INDEX = 5;
+
+	/**
+	 * Constructor for CustomSashForm.
+	 * 
+	 * @param parent
+	 * @param style
+	 */
+	public CustomSashForm(Composite parent, int style) {
+		this(parent, style, SWT.NONE);
+	}
+
+	/**
+	 * Constructor taking a custom style too. Or in the Custom style bits defined above (e.g. NO_MAX_RIGHT,...)
+	 */
+	public CustomSashForm(Composite parent, int style, int customStyle) {
+		super(parent, style);
+
+		// Need listener to force a layout
+		this.addListener(SWT.Resize, new Listener() {
+			public void handleEvent(Event e) {
+				layout(true);
+			}
+		});
+
+		noMaxUp = ((customStyle & NO_MAX_UP) != 0);
+		noMaxDown = ((customStyle & NO_MAX_DOWN) != 0);
+
+		if (noMaxUp & noMaxDown)
+			return; // If you can't max up or down, there there is no need for
+		// arrows.
+
+		SASH_WIDTH = 3 + getOrientation() == SWT.VERTICAL ? ARROW_HEIGHT : ARROW_SIZE;
+
+		arrowColor = new Color(parent.getDisplay(), 99, 101, 156);
+		borderColor = new Color(parent.getDisplay(), 132, 130, 132);
+
+		addDisposeListener(new DisposeListener() {
+			/**
+			 * @see org.eclipse.swt.events.DisposeListener#widgetDisposed(DisposeEvent)
+			 */
+			public void widgetDisposed(DisposeEvent e) {
+				arrowColor.dispose();
+				borderColor.dispose();
+				arrowColor = borderColor = null;
+			}
+
+		});
+	}
+
+	/**
+	 * Call to set to max up
+	 */
+	public void maxUp() {
+		if (noMaxUp)
+			return;
+
+		if (currentSashInfo == null)
+			currentSashInfo = new SashInfo(null);
+		upMaxClicked(currentSashInfo);
+	}
+
+	/**
+	 * Call to set to max left
+	 */
+	public void maxLeft() {
+		maxUp();
+	}
+
+	/**
+	 * Call to set to max down
+	 */
+	public void maxDown() {
+		if (noMaxDown)
+			return;
+
+		if (currentSashInfo == null)
+			currentSashInfo = new SashInfo(null);
+
+		downMaxClicked(currentSashInfo);
+	}
+
+	/**
+	 * Call to set to max left
+	 */
+	public void maxRight() {
+		maxDown();
+	}
+
+	/**
+	 * Set the need sash borders for the controls.
+	 */
+	public void setSashBorders(boolean[] sashBorders) {
+		int[] weights = getWeights(); // KLUDGE This is a kludge just to see how
+		// many controls we have.
+		if (weights.length != 2 || (sashBorders != null && sashBorders.length != 2)) {
+			SWT.error(SWT.ERROR_INVALID_ARGUMENT);
+		}
+		this.sashBorders = sashBorders;
+	}
+
+	/**
+	 * @see org.eclipse.swt.widgets.Composite#layout(boolean)
+	 */
+	public void layout(boolean changed) {
+		super.layout(changed);
+
+		if (noMaxUp && noMaxDown)
+			return; // No arrows to handle in this case.
+
+		if (getMaximizedControl() != null)
+			return; // We have a maximized control, so we don't need to worry
+		// about the sash.
+
+		// Let's get the list of all sashes the sash form now has. If there is
+		// more than one then just disable the sashinfo.
+		// If there is no current sash, and there is only one sash, then create
+		// the sashinfo for it.
+		Control[] children = getChildren();
+		Sash newSash = null;
+		for (int i = 0; i < children.length; i++) {
+			if (children[i] instanceof Sash)
+				if (newSash == null)
+					newSash = (Sash) children[i];
+				else {
+					// We have more than one sash, so need to disable current
+					// sash, if we have one.
+					if (currentSashInfo != null)
+						currentSashInfo.enabled = false;
+					return; // Don't go on.
+				}
+		}
+
+		if (newSash == null)
+			return; // We have no sashes at all.
+
+		// Now we need to see if this is a new sash.
+		if (currentSashInfo == null || currentSashInfo.sash == null) {
+			if (currentSashInfo == null)
+				currentSashInfo = new SashInfo(newSash);
+			else
+				currentSashInfo.sash = newSash;
+			newSash.addPaintListener(new PaintListener() {
+				/**
+				 * @see org.eclipse.swt.events.PaintListener#paintControl(PaintEvent)
+				 */
+				public void paintControl(PaintEvent e) {
+					// Need to find the index of the sash we're interested in.
+
+					GC gc = e.gc;
+					Color oldFg = gc.getForeground();
+					Color oldBg = gc.getBackground();
+
+					drawArrow(gc, currentSashInfo.sashLocs[0], currentSashInfo.cursorOver == 0); // Draw first
+					// arrow
+					if (currentSashInfo.sashLocs.length > 1)
+						drawArrow(gc, currentSashInfo.sashLocs[1], currentSashInfo.cursorOver == 1); // Draw second
+					// arrow
+
+					if (currentSashInfo.sashBorderLeft)
+						drawSashBorder(gc, currentSashInfo.sash, true);
+					if (currentSashInfo.sashBorderRight)
+						drawSashBorder(gc, currentSashInfo.sash, false);
+
+					gc.setForeground(oldFg);
+					gc.setBackground(oldBg);
+				}
+
+			});
+
+			newSash.addControlListener(new ControlListener() {
+				/**
+				 * @see org.eclipse.swt.events.ControlAdapter#controlMoved(ControlEvent)
+				 */
+				public void controlMoved(ControlEvent e) {
+					recomputeSashInfo();
+				}
+
+				/**
+				 * @see org.eclipse.swt.events.ControlAdapter#controlResized(ControlEvent)
+				 */
+				public void controlResized(ControlEvent e) {
+					recomputeSashInfo();
+				}
+
+			});
+
+			newSash.addDisposeListener(new DisposeListener() {
+				/**
+				 * @see org.eclipse.swt.events.DisposeListener#widgetDisposed(DisposeEvent)
+				 */
+				public void widgetDisposed(DisposeEvent e) {
+					// Need to clear out the widget from current.
+					currentSashInfo = null;
+				}
+			});
+
+			// This is a kludge because we can't override the set cursor hit
+			// test.
+			newSash.addMouseMoveListener(new MouseMoveListener() {
+				/**
+				 * @see org.eclipse.swt.events.MouseMoveListener#mouseMove(MouseEvent)
+				 */
+				public void mouseMove(MouseEvent e) {
+					// See if within one of the arrows.
+					int x = e.x;
+					int y = e.y;
+					for (int i = 0; i < currentSashInfo.sashLocs.length; i++) {
+						int[] locs = currentSashInfo.sashLocs[i];
+						boolean vertical = getOrientation() == SWT.VERTICAL;
+						int loc = vertical ? x : y;
+						int locIndex = vertical ? X_INDEX : Y_INDEX;
+						int sizeIndex = vertical ? WIDTH_INDEX : HEIGHT_INDEX;
+						if (locs[locIndex] <= loc && loc <= locs[locIndex] + locs[sizeIndex]) {
+							if (currentSashInfo.cursorOver == NO_ARROW) {
+								currentSashInfo.sash.setCursor(Cursors.ARROW);
+							}
+							if (currentSashInfo.cursorOver != i) {
+								currentSashInfo.cursorOver = i;
+								currentSashInfo.sash.redraw();
+								switch (locs[ARROW_TYPE_INDEX]) {
+								case UP_ARROW:
+								case DOWN_ARROW:
+									currentSashInfo.sash.setToolTipText("Restore Previous Location");
+									break;
+								case UP_MAX_ARROW:
+								case DOWN_MAX_ARROW:
+									currentSashInfo.sash.setToolTipText("Maximize Pane");
+									break;
+								}
+							}
+							return;
+						}
+					}
+					if (currentSashInfo.cursorOver != NO_ARROW) {
+						currentSashInfo.sash.setCursor(null);
+						currentSashInfo.cursorOver = NO_ARROW;
+						currentSashInfo.sash.redraw();
+						currentSashInfo.sash.setToolTipText(null);
+					}
+				}
+
+			});
+
+			// Need to know when we leave so that we can clear the cursor
+			// feedback if set.
+			newSash.addMouseTrackListener(new MouseTrackAdapter() {
+				/**
+				 * @see org.eclipse.swt.events.MouseTrackAdapter#mouseExit(MouseEvent)
+				 */
+				public void mouseExit(MouseEvent e) {
+					if (currentSashInfo.cursorOver != NO_ARROW) {
+						// Undo the cursor.
+						currentSashInfo.sash.setCursor(null);
+						currentSashInfo.cursorOver = NO_ARROW;
+						currentSashInfo.sash.redraw();
+						currentSashInfo.sash.setToolTipText(null);
+					}
+				}
+			});
+
+			// Want to handle mouse down as a selection.
+			newSash.addMouseListener(new MouseAdapter() {
+				/**
+				 * @see org.eclipse.swt.events.MouseAdapter#mouseDown(MouseEvent)
+				 */
+				public void mouseDown(MouseEvent e) {
+					inMouseClick = true;
+					// If we're within a button, then redraw to wipe out stipple
+					// and get button push effect.
+					int x = e.x;
+					int y = e.y;
+					for (int i = 0; i < currentSashInfo.sashLocs.length; i++) {
+						int[] locs = currentSashInfo.sashLocs[i];
+						boolean vertical = getOrientation() == SWT.VERTICAL;
+						int loc = vertical ? x : y;
+						int locIndex = vertical ? X_INDEX : Y_INDEX;
+						int sizeIndex = vertical ? WIDTH_INDEX : HEIGHT_INDEX;
+						if (locs[locIndex] <= loc && loc <= locs[locIndex] + locs[sizeIndex]) {
+							currentSashInfo.sash.redraw();
+							break;
+						}
+					}
+				}
+
+				/**
+				 * @see org.eclipse.swt.events.MouseListener#mouseDown(MouseEvent)
+				 */
+				public void mouseUp(MouseEvent e) {
+					// See if within one of the arrows.
+					inMouseClick = false; // No longer in down click
+					int x = e.x;
+					int y = e.y;
+					for (int i = 0; i < currentSashInfo.sashLocs.length; i++) {
+						int[] locs = currentSashInfo.sashLocs[i];
+						boolean vertical = getOrientation() == SWT.VERTICAL;
+						int loc = vertical ? x : y;
+						int locIndex = vertical ? X_INDEX : Y_INDEX;
+						int sizeIndex = vertical ? WIDTH_INDEX : HEIGHT_INDEX;
+						if (locs[locIndex] <= loc && loc <= locs[locIndex] + locs[sizeIndex]) {
+							// We found it.
+							switch (locs[ARROW_TYPE_INDEX]) {
+							case UP_ARROW:
+								upClicked(currentSashInfo);
+								break;
+							case UP_MAX_ARROW:
+								upMaxClicked(currentSashInfo);
+								break;
+							case DOWN_ARROW:
+								downClicked(currentSashInfo);
+								break;
+							case DOWN_MAX_ARROW:
+								downMaxClicked(currentSashInfo);
+								break;
+							}
+							break;
+						}
+					}
+
+					currentSashInfo.sash.redraw(); // Make sure stipple goes
+					// away from the mouse up if
+					// not over an arrow button.
+					fireDividerMoved();
+				}
+
+			});
+			recomputeSashInfo(); // Get initial setting
+		}
+
+	}
+
+	protected void recomputeSashInfo() {
+		if (inMouseClick && currentSashInfo.cursorOver != NO_WEIGHT)
+			return; // Don't process because we are in the down mouse button on
+		// an arrow.
+
+		// We need to refigure size for the sash arrows.
+		int[] addArrows = null;
+		int[] drawArrows = null;
+		int[] weights = getWeights(); // This should be two entries only. We
+		// shouldn't of gotton here if there
+		// were more than two.
+		if (noMaxUp) {
+			addArrows = new int[1];
+			drawArrows = new int[1];
+			if (weights[1] == 0) {
+				// Slammed to the bottom
+				addArrows[0] = UP_ARROW;
+				drawArrows[0] = UP_ARROW;
+				currentSashInfo.sashBorderLeft = sashBorders != null ? sashBorders[0] : false;
+				currentSashInfo.sashBorderRight = false;
+			} else {
+				// Not slammed
+				addArrows[0] = DOWN_MAX_ARROW;
+				drawArrows[0] = DOWN_ARROW;
+				currentSashInfo.weight = NO_WEIGHT; // Since we are in the
+				// middle, there is no
+				// weight. We've could of
+				// been dragged here.
+				currentSashInfo.sashBorderLeft = sashBorders != null ? sashBorders[0] : false;
+				currentSashInfo.sashBorderRight = sashBorders != null ? sashBorders[1] : false;
+			}
+		} else if (noMaxDown) {
+			addArrows = new int[1];
+			drawArrows = new int[1];
+			if (weights[0] == 0) {
+				// Slammed to the top
+				addArrows[0] = DOWN_ARROW;
+				drawArrows[0] = DOWN_ARROW;
+				currentSashInfo.sashBorderLeft = false;
+				currentSashInfo.sashBorderRight = sashBorders != null ? sashBorders[1] : false;
+			} else {
+				// Not slammed
+				addArrows[0] = UP_MAX_ARROW;
+				drawArrows[0] = UP_ARROW;
+				currentSashInfo.weight = NO_WEIGHT; // Since we are in the
+				// middle, there is no
+				// weight. We've could of
+				// been dragged here.
+				currentSashInfo.sashBorderLeft = sashBorders != null ? sashBorders[0] : false;
+				currentSashInfo.sashBorderRight = sashBorders != null ? sashBorders[1] : false;
+			}
+		} else {
+			addArrows = new int[2];
+			drawArrows = new int[2];
+			// TODO: SashForm as changed the folllwing is a temporary kludge
+			Rectangle sashBounds = currentSashInfo.sash.getBounds();
+			Rectangle clientArea = getClientArea();
+			final int DRAG_MINIMUM = 20; // TODO: kludge see
+			// SashForm.DRAG_MINIMUM
+			if (weights[0] == 0 || (currentSashInfo.weight != NO_WEIGHT && sashBounds.y <= DRAG_MINIMUM)) {
+				// Slammed to the top.
+				addArrows[0] = DOWN_MAX_ARROW;
+				drawArrows[0] = DOWN_MAX_ARROW;
+				addArrows[1] = DOWN_ARROW;
+				drawArrows[1] = DOWN_ARROW;
+				currentSashInfo.sashBorderLeft = false;
+				currentSashInfo.sashBorderRight = sashBorders != null ? sashBorders[1] : false;
+			} else if (weights[1] == 0 || (currentSashInfo.weight != NO_WEIGHT && sashBounds.y + sashBounds.height >= clientArea.height - DRAG_MINIMUM)) {
+				// Slammed to the bottom
+				addArrows[0] = UP_ARROW;
+				drawArrows[0] = UP_ARROW;
+				addArrows[1] = UP_MAX_ARROW;
+				drawArrows[1] = UP_MAX_ARROW;
+				currentSashInfo.sashBorderLeft = sashBorders != null ? sashBorders[0] : false;
+				currentSashInfo.sashBorderRight = false;
+			} else {
+				// Not slammed
+				addArrows[0] = UP_MAX_ARROW;
+				drawArrows[0] = UP_ARROW;
+				addArrows[1] = DOWN_MAX_ARROW;
+				drawArrows[1] = DOWN_ARROW;
+				currentSashInfo.weight = NO_WEIGHT; // Since we are in the
+				// middle, there is no
+				// weight. We've could of
+				// been dragged here.
+				currentSashInfo.sashBorderLeft = sashBorders != null ? sashBorders[0] : false;
+				currentSashInfo.sashBorderRight = sashBorders != null ? sashBorders[1] : false;
+			}
+		}
+		getNewSashArray(currentSashInfo, addArrows, drawArrows);
+
+		currentSashInfo.sash.redraw(); // Need to schedule a redraw because it
+		// has already drawn the old ones during
+		// the set bounds in super layout.
+	}
+
+	protected void upClicked(SashInfo sashinfo) {
+		// This means restore just the sash below weight and reduce the above
+		// weight by the right amount.
+		int[] weights = getWeights();
+
+		weights[0] = 1000 - sashinfo.weight; // Assume weights are always in
+		// units of 1000.
+		weights[1] = sashinfo.weight;
+		sashinfo.weight = NO_WEIGHT;
+
+		setWeights(weights);
+		fireDividerMoved();
+	}
+
+	protected void upMaxClicked(SashInfo sashinfo) {
+		int[] weights = getWeights();
+
+		// Up max, so save the current weight of 1 into the sash info, and move
+		// to the top.
+		if (currentSashInfo.weight == NO_WEIGHT)
+			currentSashInfo.weight = weights[1]; // Not currently maxed, save
+		// position.
+
+		weights[1] = 1000;
+		weights[0] = 0;
+
+		// If the upper panel has focus, flip focus to the lower panel because
+		// the upper panel is now hidden.
+		Control[] children = getChildren();
+		boolean upperFocus = isFocusAncestorA(children[0]);
+		setWeights(weights);
+		if (upperFocus)
+			children[1].setFocus();
+		fireDividerMoved();
+	}
+
+	protected void downClicked(SashInfo sashinfo) {
+		// This means restore just the sash below weight and increase the above
+		// weight by that amount.
+		int[] weights = getWeights();
+
+		weights[0] = 1000 - sashinfo.weight; // Assume weights are always in
+		// units of 1000.
+		weights[1] = sashinfo.weight;
+		sashinfo.weight = NO_WEIGHT;
+
+		setWeights(weights);
+		fireDividerMoved();
+	}
+
+	protected void downMaxClicked(SashInfo sashinfo) {
+		int[] weights = getWeights();
+
+		// Down max, so save the current weight of 1 into the sash info, and
+		// move to the bottom.
+		if (currentSashInfo.weight == NO_WEIGHT)
+			currentSashInfo.weight = weights[1]; // Not currently maxed, save
+		// current weight.
+		weights[0] = 1000;
+		weights[1] = 0;
+
+		// If the lower panel has focus, flip focus to the upper panel because
+		// the lower panel is now hidden.
+		Control[] children = getChildren();
+		boolean lowerFocus = isFocusAncestorA(children[1]);
+		setWeights(weights);
+		if (lowerFocus)
+			children[0].setFocus();
+		fireDividerMoved();
+	}
+
+	/*
+	 * This determines if the control or one of its children has the focus. It was hidden by SWT, but it is really useful.
+	 */
+	protected boolean isFocusAncestorA(Control control) {
+		Display display = getDisplay();
+		Control focusControl = display.getFocusControl();
+		while (focusControl != null && focusControl != control) {
+			focusControl = focusControl.getParent();
+		}
+		return control == focusControl;
+	}
+
+	protected void getNewSashArray(SashInfo sashInfo, int[] addArrowTypes, int[] drawArrowTypes) {
+
+		int[][] thisSash = sashInfo.sashLocs;
+		if (thisSash == null)
+			thisSash = sashInfo.sashLocs = new int[addArrowTypes.length][];
+
+		int aSize = ARROW_SIZE; // Width of arrow
+		int tSize = aSize + 2 * ARROW_MARGIN; // Total Width (arrow + margin)
+		int neededSize = tSize * addArrowTypes.length;
+
+		boolean vertical = getOrientation() == SWT.VERTICAL;
+		Point s = sashInfo.sash.getSize();
+		int start = 0;
+		int x = 0;
+		int y = 0;
+		int width = 0;
+		int height = 0;
+		if (vertical) {
+			start = (s.x - neededSize) / 2;
+			x = start;
+			y = (s.y - ARROW_HEIGHT) / 2; // Center vertically, no margin
+			// required.
+			width = tSize;
+			height = aSize;
+		} else {
+			start = (s.y - neededSize) / 2;
+			y = start;
+			x = (s.x - ARROW_HEIGHT) / 2; // Center horizontally, no margin
+			// required.
+			width = aSize;
+			height = tSize;
+		}
+		for (int j = 0; j < addArrowTypes.length; j++) {
+			if (thisSash[j] == null)
+				thisSash[j] = new int[] { addArrowTypes[j], drawArrowTypes[j], x, y, width, height };
+			else {
+				// Reuse the array
+				thisSash[j][ARROW_TYPE_INDEX] = addArrowTypes[j];
+				thisSash[j][ARROW_DRAWN_INDEX] = drawArrowTypes[j];
+				thisSash[j][X_INDEX] = x;
+				thisSash[j][Y_INDEX] = y;
+				thisSash[j][WIDTH_INDEX] = width;
+				thisSash[j][HEIGHT_INDEX] = height;
+			}
+			if (vertical)
+				x += tSize;
+			else
+				y += tSize;
+		}
+	}
+
+	protected void drawSashBorder(GC gc, Sash sash, boolean leftBorder) {
+		gc.setForeground(borderColor);
+		if (getOrientation() == SWT.VERTICAL) {
+			Point s = sash.getSize();
+			if (leftBorder)
+				gc.drawLine(0, 0, s.x - 1, 0);
+			else
+				gc.drawLine(0, s.y - 1, s.x - 1, s.y - 1);
+		} else {
+			Point s = sash.getSize();
+			if (leftBorder)
+				gc.drawLine(0, 0, 0, s.y - 1);
+			else
+				gc.drawLine(s.x - 1, 0, s.x - 1, s.y - 1);
+		}
+	}
+
+	protected void drawArrow(GC gc, int[] sashLoc, boolean selected) {
+		int indent = 0;
+		if (selected) {
+			if (!inMouseClick) {
+				// Draw the selection box.
+				Color highlightShadow = getDisplay().getSystemColor(SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW);
+				Color normalShadow = getDisplay().getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);
+				gc.setForeground(highlightShadow);
+				gc.drawLine(sashLoc[X_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX], sashLoc[X_INDEX], sashLoc[Y_INDEX]);
+				gc.drawLine(sashLoc[X_INDEX], sashLoc[Y_INDEX], sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX]);
+
+				gc.setForeground(normalShadow);
+				gc.drawLine(sashLoc[X_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX], sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX]);
+				gc.drawLine(sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX], sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX]);
+			} else {
+				// Draw pushed selection box.
+				indent = 1;
+				Color highlightShadow = getDisplay().getSystemColor(SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW);
+				Color normalShadow = getDisplay().getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);
+				gc.setForeground(normalShadow);
+				gc.drawLine(sashLoc[X_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX], sashLoc[X_INDEX], sashLoc[Y_INDEX]);
+				gc.drawLine(sashLoc[X_INDEX], sashLoc[Y_INDEX], sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX]);
+
+				gc.setForeground(highlightShadow);
+				gc.drawLine(sashLoc[X_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX], sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX]);
+				gc.drawLine(sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX] + sashLoc[HEIGHT_INDEX], sashLoc[X_INDEX] + sashLoc[WIDTH_INDEX], sashLoc[Y_INDEX]);
+			}
+		}
+		if (getOrientation() == SWT.VERTICAL) {
+			switch (sashLoc[ARROW_DRAWN_INDEX]) {
+			case UP_ARROW:
+				drawUpArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
+				break;
+			case DOWN_ARROW:
+				drawDownArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
+				break;
+			case UP_MAX_ARROW:
+				drawUpMaxArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
+				break;
+			case DOWN_MAX_ARROW:
+				drawDownMaxArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
+				break;
+			}
+		} else {
+			switch (sashLoc[ARROW_DRAWN_INDEX]) {
+			case UP_ARROW:
+				drawLeftArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
+				break;
+			case DOWN_ARROW:
+				drawRightArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
+				break;
+			case UP_MAX_ARROW:
+				drawLeftMaxArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
+				break;
+			case DOWN_MAX_ARROW:
+				drawRightMaxArrow(gc, sashLoc[X_INDEX] + indent, sashLoc[Y_INDEX] + indent);
+				break;
+			}
+		}
+	}
+
+	// These are for the up/down arrow. Just swap them for left/right arrow.
+	protected static final int ARROW_SIZE = 8, ARROW_HEIGHT = 8, ARROW_MARGIN = 3; // Margin on each side of arrow
+
+	protected Color arrowColor, borderColor;
+
+	// Draw at the given x/y (upper left corner of arrow area).
+	protected void drawUpArrow(GC gc, int x, int y) {
+		gc.setForeground(arrowColor);
+
+		x += ARROW_MARGIN;
+		gc.drawLine(x + 4, y + 2, x + 7, y + 5);
+		gc.drawLine(x + 3, y + 2, x + 3, y + 2);
+
+		gc.drawLine(x + 2, y + 3, x + 4, y + 3);
+		gc.drawLine(x + 1, y + 4, x + 5, y + 4);
+		gc.drawLine(x, y + 5, x + 6, y + 5);
+	}
+
+	// Draw at the given x/y (upper left corner of arrow area).
+	protected void drawUpMaxArrow(GC gc, int x, int y) {
+		gc.setForeground(arrowColor);
+
+		x += ARROW_MARGIN;
+		gc.drawLine(x, y, x + 7, y);
+		gc.drawLine(x, y + 1, x + 7, y + 1);
+
+		gc.drawLine(x + 4, y + 2, x + 7, y + 5);
+		gc.drawLine(x + 3, y + 2, x + 3, y + 2);
+
+		gc.drawLine(x + 2, y + 3, x + 4, y + 3);
+		gc.drawLine(x + 1, y + 4, x + 5, y + 4);
+		gc.drawLine(x, y + 5, x + 6, y + 5);
+	}
+
+	// Draw at the given x/y (upper left corner of arrow area).
+	protected void drawDownArrow(GC gc, int x, int y) {
+		gc.setForeground(arrowColor);
+
+		x += ARROW_MARGIN;
+		gc.drawLine(x, y + 2, x + 3, y + 5);
+		gc.drawLine(x + 4, y + 5, x + 4, y + 5);
+
+		gc.drawLine(x + 3, y + 4, x + 5, y + 4);
+		gc.drawLine(x + 1, y + 3, x + 6, y + 3);
+		gc.drawLine(x + 1, y + 2, x + 7, y + 2);
+	}
+
+	// Draw at the given x/y (upper left corner of arrow area).
+	protected void drawDownMaxArrow(GC gc, int x, int y) {
+		gc.setForeground(arrowColor);
+
+		x += ARROW_MARGIN;
+		gc.drawLine(x, y + 6, x + 7, y + 6);
+		gc.drawLine(x, y + 7, x + 7, y + 7);
+
+		gc.drawLine(x, y + 2, x + 3, y + 5);
+		gc.drawLine(x + 4, y + 5, x + 4, y + 5);
+
+		gc.drawLine(x + 3, y + 4, x + 5, y + 4);
+		gc.drawLine(x + 1, y + 3, x + 6, y + 3);
+		gc.drawLine(x + 1, y + 2, x + 7, y + 2);
+	}
+
+	// Draw at the given x/y (upper left corner of arrow area).
+	protected void drawLeftArrow(GC gc, int x, int y) {
+		gc.setForeground(arrowColor);
+
+		y += ARROW_MARGIN;
+		gc.drawLine(x + 2, y + 4, x + 5, y + 7);
+		gc.drawLine(x + 2, y + 3, x + 2, y + 3);
+
+		gc.drawLine(x + 3, y + 2, x + 3, y + 4);
+		gc.drawLine(x + 4, y + 1, x + 4, y + 5);
+		gc.drawLine(x + 5, y, x + 5, y + 6);
+	}
+
+	// Draw at the given x/y (upper left corner of arrow area).
+	protected void drawLeftMaxArrow(GC gc, int x, int y) {
+		gc.setForeground(arrowColor);
+
+		y += ARROW_MARGIN;
+		gc.drawLine(x, y, x, y + 7);
+		gc.drawLine(x + 1, y, x + 1, y + 7);
+
+		gc.drawLine(x + 2, y + 4, x + 5, y + 7);
+		gc.drawLine(x + 2, y + 3, x + 2, y + 3);
+
+		gc.drawLine(x + 3, y + 2, x + 3, y + 4);
+		gc.drawLine(x + 4, y + 1, x + 4, y + 5);
+		gc.drawLine(x + 5, y, x + 5, y + 6);
+	}
+
+	// Draw at the given x/y (upper left corner of arrow area).
+	protected void drawRightArrow(GC gc, int x, int y) {
+		gc.setForeground(arrowColor);
+
+		y += ARROW_MARGIN;
+		gc.drawLine(x + 2, y, x + 5, y + 3);
+		gc.drawLine(x + 5, y + 4, x + 5, y + 4);
+
+		gc.drawLine(x + 4, y + 3, x + 4, y + 5);
+		gc.drawLine(x + 3, y + 1, x + 3, y + 6);
+		gc.drawLine(x + 2, y + 1, x + 2, y + 7);
+	}
+
+	// Draw at the given x/y (upper left corner of arrow area).
+	protected void drawRightMaxArrow(GC gc, int x, int y) {
+		gc.setForeground(arrowColor);
+
+		y += ARROW_MARGIN;
+		gc.drawLine(x + 6, y, x + 6, y + 7);
+		gc.drawLine(x + 7, y, x + 7, y + 7);
+
+		gc.drawLine(x + 2, y, x + 5, y + 3);
+		gc.drawLine(x + 5, y + 4, x + 5, y + 4);
+
+		gc.drawLine(x + 4, y + 3, x + 4, y + 5);
+		gc.drawLine(x + 3, y + 1, x + 3, y + 6);
+		gc.drawLine(x + 2, y + 1, x + 2, y + 7);
+	}
+
+	public int getSavedWeight() {
+		if (currentSashInfo != null)
+			return currentSashInfo.weight;
+		else
+			return -1;
+	}
+
+	protected Sash getSash() {
+		Control[] kids = getChildren();
+		for (int i = 0; i < kids.length; i++) {
+			if (kids[i] instanceof Sash)
+				return (Sash) kids[i];
+		}
+		return null;
+	}
+
+	public void setCurrentSavedWeight(int weight) {
+		if (weight >= 0 && currentSashInfo != null) {
+			recomputeSashInfo();
+			currentSashInfo.weight = weight;
+		}
+	}
+
+	/**
+	 * Adds a custom sashform listener. This listener will be removed when this control is disposed.
+	 * 
+	 * @param listener
+	 * 
+	 * @since 1.2.0
+	 */
+	public void addCustomSashFormListener(ICustomSashFormListener listener) {
+		if (customSashFormListeners == null)
+			customSashFormListeners = new ArrayList();
+		customSashFormListeners.add(listener);
+	}
+
+	/**
+	 * Removes the custom sashform listener.
+	 * 
+	 * @param listener
+	 * 
+	 * @since 1.2.0
+	 */
+	public void removeCustomSashFormListener(ICustomSashFormListener listener) {
+		if (customSashFormListeners != null) {
+			customSashFormListeners.remove(listener);
+		}
+	}
+
+	protected void fireDividerMoved() {
+		if (customSashFormListeners != null && customSashFormListeners.size() > 0) {
+			int[] weights = getWeights();
+			if (weights != null && weights.length == 2) {
+				int firstControlWeight = weights[0];
+				int secondControlWeight = weights[1];
+				for (Iterator listenerItr = customSashFormListeners.iterator(); listenerItr.hasNext();) {
+					ICustomSashFormListener listener = (ICustomSashFormListener) listenerItr.next();
+					listener.dividerMoved(firstControlWeight, secondControlWeight);
+				}
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/DisposeUtil.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/DisposeUtil.java
new file mode 100755
index 0000000..36d07ba
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/DisposeUtil.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.swt;
+
+import org.eclipse.swt.graphics.GC;
+
+public class DisposeUtil {
+	
+	/**
+	 * in MAC Cocoa, we should not dispose the GC for an image. The image will dispose
+	 * the gc automatically.
+	 * 
+	 * @param gc
+	 */
+	public static void dispose(GC gc) {
+		gc.dispose();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/ImageCapture.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/ImageCapture.java
new file mode 100755
index 0000000..4159919
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/ImageCapture.java
@@ -0,0 +1,142 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*
+ *  $RCSfile: ImageCapture.java,v $
+ *  $Revision: 1.7 $  $Date: 2009/12/22 15:40:57 $ 
+ */
+package org.eclipse.xwt.vex.swt;
+
+import java.lang.reflect.Field;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+
+/**
+ * Capture and transmit the image back. There are platform specific subclasses to handle the grab of the image from a control.
+ * 
+ * @since 1.1.0
+ */
+public abstract class ImageCapture {
+	static ImageCapture instance;
+
+	public Image captureImage(Control control) {
+		Rectangle rectangle = control.getBounds();
+		Display display = control.getDisplay();
+		Image image = null;
+		if (control instanceof Shell) {
+			Shell shell = (Shell) control;
+			shell.layout();
+			Point parentLocation = control.toDisplay(0, 0);
+			image = getImage(control, rectangle.width, rectangle.height, false);
+
+			rectangle.x = parentLocation.x;
+			rectangle.y = parentLocation.y;
+
+			GC myImageGC = new GC(image);
+			try {
+				for (Control child : shell.getChildren()) {
+					Rectangle childBounds = child.getBounds();
+					// bug of SWT on Win32, child bounds is not correct in the Window is not in the ToolBar
+					int x = (rectangle.width - childBounds.width) / 2;
+					int y = (rectangle.height - childBounds.height) - x;
+					childBounds.x = rectangle.x + x;
+					childBounds.y = rectangle.y + y;
+					if (!rectangle.intersects(childBounds))
+						continue; // Child is completely outside parent.
+
+					Image childImage = new Image(display, child.getBounds());
+					GC gc = new GC(childImage);
+					child.print(gc);
+					DisposeUtil.dispose(gc);
+					try {
+						myImageGC.drawImage(childImage, x, y);
+					} finally {
+						childImage.dispose();
+					}
+				}
+			} finally {
+				myImageGC.dispose();
+			}
+		} else {
+			image = defaultCapture(control);
+		}
+		return image;
+	}
+
+	public Image defaultCapture(Control control) {
+		Image image = new Image(control.getDisplay(), control.getBounds());
+		GC gc = new GC(image);
+		try {
+			if (control.print(gc)) {
+				return image;
+			} else {
+				image.dispose();
+				Rectangle bounds = control.getBounds();
+				return getImage(control, bounds.width, bounds.height, true);	
+			}	
+		} finally {
+			DisposeUtil.dispose(gc);
+		}
+	}
+
+	protected abstract Image getImage(Control control, int maxWidth, int maxHeight, boolean includeChildren);
+
+	public static ImageCapture getImageCapture() {
+		if (instance == null) {
+			if (Platform.OS_WIN32.equals(Platform.getOS()))
+				instance = new Win32ImageCapture();
+			else if (Platform.WS_GTK.equals(Platform.getWS())) {
+				if (Platform.ARCH_IA64.equals(Platform.getOSArch()) || Platform.ARCH_X86_64.equals(Platform.getOSArch()))
+					instance = new org.eclipse.ve.internal.swt.targetvm.unix.bits64.ImageCapture();
+				else
+					instance = new org.eclipse.ve.internal.swt.targetvm.unix.ImageCapture();
+			} else if (Platform.OS_MACOSX.equals(Platform.getOS())) {
+				if (Platform.WS_COCOA.equals(Platform.getWS())) {
+					instance = new org.eclipse.ve.internal.swt.targetvm.macosx.cocoa.ImageCapture();
+				}
+				else if (Platform.WS_CARBON.equals(Platform.getWS())) {
+					instance = new org.eclipse.ve.internal.swt.targetvm.macosx.ImageCapture();
+				}
+				else { 
+					throw new UnsupportedOperationException(Platform.getOS());
+				}
+			} else {
+				throw new UnsupportedOperationException(Platform.getOS());
+			}
+		}
+		return instance;
+	}
+	
+	public static int getIntHandle(Control control) {
+		try {
+			Field handleField = control.getClass().getField("handle");
+			handleField.setAccessible(true);
+			return (Integer) handleField.get(control);
+		} catch (SecurityException e) {
+			e.printStackTrace();
+		} catch (IllegalArgumentException e) {
+			e.printStackTrace();
+		} catch (NoSuchFieldException e) {
+			e.printStackTrace();
+		} catch (IllegalAccessException e) {
+			e.printStackTrace();
+		}
+		return -1;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/Win32ImageCapture.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/Win32ImageCapture.java
new file mode 100755
index 0000000..b80c050
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/swt/Win32ImageCapture.java
@@ -0,0 +1,176 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.swt;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+import org.eclipse.swt.browser.Browser;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Spinner;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.Tree;
+
+/**
+ * Image Capture for Win32 platforms.
+ * 
+ * @since 1.1.0
+ */
+public class Win32ImageCapture extends org.eclipse.xwt.vex.swt.ImageCapture {
+	static protected Class<?> OleFrameClass;
+	static protected Method sendMessage;
+	static protected Method getParent;
+
+	static {
+		try {
+			OleFrameClass = GC.class.getClassLoader().loadClass("org.eclipse.swt.ole.win32.OleFrame");
+			Class<?> OSClass = GC.class.getClassLoader().loadClass("org.eclipse.swt.internal.win32.OS");
+			sendMessage = OSClass.getMethod("SendMessage", int.class, int.class, int.class, int.class);
+			getParent = OSClass.getMethod("GetParent", int.class);
+		} catch (Exception e) {
+			throw new RuntimeException(e);
+		}
+	}
+
+	protected Image getImage(Control control, int maxWidth, int maxHeight, boolean includeChildren) {
+		Image myImage = getImage(control, maxWidth, maxHeight);
+		// We need to be able to handle right-to-left coordinates too. In that
+		// case the bounds rectangle will be reversed from what we
+		// think. We think the origin is upper-left, but the origin is really
+		// upper-right. To get out of this thinking we will
+		// instead convert all bounds to display bounds so that they will all be
+		// left-to-right.
+		if (myImage != null) {
+			// Get the images of all of the children
+			if (includeChildren && control instanceof Composite) {
+				Display display = control.getDisplay();
+				Rectangle parentBounds = control.getParent() == null ? control.getBounds() : display.map(control.getParent(), null, control.getBounds());
+				// Need to clip the bounds to the size of the image so we get
+				// just what we need.
+				Rectangle imgBounds = myImage.getBounds();
+				parentBounds.width = imgBounds.width;
+				parentBounds.height = imgBounds.height;
+				int parentRight = parentBounds.width + parentBounds.x;
+				int parentBottom = parentBounds.height + parentBounds.y;
+				Control[] children = ((Composite) control).getChildren();
+				GC myImageGC = new GC(myImage);
+				try {
+					int i = children.length;
+					while (--i >= 0) {
+						Control child = children[i];
+						// If the child is not visible then don't try and get
+						// its image
+						// An example of where this would cause a problem is
+						// TabFolder where all the controls
+						// for each page are children of the TabFolder, but only
+						// the visible one is being shown on the active page
+						if (!child.isVisible())
+							continue;
+						Rectangle childBounds = display.map(control, null, child.getBounds());
+						if (!parentBounds.intersects(childBounds))
+							continue; // Child is completely outside parent.
+						Image childImage = getImage(child, parentRight - childBounds.x, parentBottom - childBounds.y, true);
+						if (childImage != null) {
+							try {
+								// Paint the child image on top of our one
+								// Since the child bounds and parent bounds are
+								// both in display coors, the difference between
+								// the two is the offset of the child from the
+								// parent.
+								myImageGC.drawImage(childImage, childBounds.x - parentBounds.x, childBounds.y - parentBounds.y);
+							} finally {
+								childImage.dispose();
+							}
+						}
+					}
+				} finally {
+					myImageGC.dispose();
+				}
+			}
+		}
+		return myImage;
+	}
+
+	/**
+	 * Return the image of the argument. This includes the client and non-client area, but does not include any child controls. To get child control use {@link Win32ImageCapture#getImage(Control, int, int, boolean)}.
+	 * 
+	 * @param aControl
+	 * @param maxWidth
+	 * @param maxHeight
+	 * @return image or <code>null</code> if not valid for some reason. (Like not yet sized).
+	 * 
+	 * @since 1.1.0
+	 */
+	protected Image getImage(Control aControl, int maxWidth, int maxHeight) {
+
+		Rectangle rect = aControl.getBounds();
+		if (rect.width <= 0 || rect.height <= 0)
+			return null;
+
+		Image image = new Image(aControl.getDisplay(), Math.min(rect.width, maxWidth), Math.min(rect.height, maxHeight));
+		int WM_PRINT = 0x0317;
+		// int WM_PRINTCLIENT = 0x0318;
+		// int PRF_CHECKVISIBLE = 0x00000001;
+		int PRF_NONCLIENT = 0x00000002;
+		int PRF_CLIENT = 0x00000004;
+		int PRF_ERASEBKGND = 0x00000008;
+		int PRF_CHILDREN = 0x00000010;
+		// int PRF_OWNED = 0x00000020;
+		int print_bits = PRF_NONCLIENT | PRF_CLIENT | PRF_ERASEBKGND;
+		// This method does not print immediate children because the z-order
+		// doesn't work correctly and needs to be
+		// dealt with separately, however Table's TableColumn widgets are
+		// children so must be handled differently
+		boolean specialClass = aControl instanceof Table || aControl instanceof Browser || OleFrameClass.isInstance(aControl) || aControl instanceof CCombo;
+		try {
+			specialClass |= aControl instanceof Spinner;
+		} catch (NoClassDefFoundError e) {
+		} // might not be on 3.1 of SWT
+		if (specialClass) {
+			print_bits |= PRF_CHILDREN;
+		}
+		GC gc = new GC(image);
+
+		// Need to handle cases where the GC font isn't automatically set by the
+		// control's image (e.g. CLabel)
+		// see bug 98830 (https://bugs.eclipse.org/bugs/show_bug.cgi?id=98830)
+		Font f = aControl.getFont();
+		if (f != null)
+			gc.setFont(f);
+
+		try {
+			int hwnd = getIntHandle(aControl);			
+			if (aControl instanceof Tree) {
+				int hwndParent = (Integer) getParent.invoke(null, hwnd);
+				if (hwndParent != getIntHandle(aControl.getParent())) {
+					hwnd = hwndParent;
+					print_bits |= PRF_CHILDREN;
+				}
+			}
+
+			sendMessage.invoke(null, hwnd, WM_PRINT, gc.handle, print_bits);
+		} catch (Exception e) {
+			throw new RuntimeException(e);
+		}
+
+		gc.dispose();
+		return image;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/templates/VEXDocumentTemplateContext.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/templates/VEXDocumentTemplateContext.java
new file mode 100755
index 0000000..720a8bb
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/templates/VEXDocumentTemplateContext.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.templates;
+
+import java.util.HashMap;
+import java.util.HashSet;
+
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.Position;
+import org.eclipse.jface.text.templates.DocumentTemplateContext;
+import org.eclipse.jface.text.templates.TemplateContextType;
+
+public abstract class VEXDocumentTemplateContext extends DocumentTemplateContext {
+	static final String XMLNS = "xmlns";
+
+	protected String defaultNamespace = null;
+
+	protected HashMap<String, String> ns2Prefix = new HashMap<String, String>();
+	protected HashSet<String> assemblies = new HashSet<String>();
+
+	public VEXDocumentTemplateContext(TemplateContextType type, IDocument document, int offset, int length) {
+		super(type, document, offset, length);
+	}
+
+	public VEXDocumentTemplateContext(TemplateContextType type, IDocument document, Position position) {
+		super(type, document, position);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/templates/VEXTemplateContextTypeXML.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/templates/VEXTemplateContextTypeXML.java
new file mode 100755
index 0000000..92a1605
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/templates/VEXTemplateContextTypeXML.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.templates;
+
+import org.eclipse.wst.xml.ui.internal.templates.TemplateContextTypeXML;
+
+public class VEXTemplateContextTypeXML extends TemplateContextTypeXML {
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/templates/VEXTemplateVariable.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/templates/VEXTemplateVariable.java
new file mode 100755
index 0000000..87eaf2d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/templates/VEXTemplateVariable.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.templates;
+
+import org.eclipse.jface.text.templates.TemplateVariable;
+import org.eclipse.jface.text.templates.TemplateVariableType;
+
+public class VEXTemplateVariable extends TemplateVariable {
+
+	public VEXTemplateVariable(String type, String defaultValue, int[] offsets) {
+		super(type, defaultValue, offsets);
+	}
+
+	public VEXTemplateVariable(String type, String[] values, int[] offsets) {
+		super(type, values, offsets);
+	}
+
+	public VEXTemplateVariable(String type, String name, String defaultValue, int[] offsets) {
+		super(type, name, defaultValue, offsets);
+	}
+
+	public VEXTemplateVariable(TemplateVariableType type, String name, String defaultValue, int[] offsets) {
+		super(type, name, defaultValue, offsets);
+	}
+
+	public VEXTemplateVariable(String type, String name, String[] values, int[] offsets) {
+		super(type, name, values, offsets);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/text/VEXDocumentRegionEdgeMatcher.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/text/VEXDocumentRegionEdgeMatcher.java
new file mode 100755
index 0000000..2ed09d6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/text/VEXDocumentRegionEdgeMatcher.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.text;
+
+import org.eclipse.wst.xml.ui.internal.text.XMLDocumentRegionEdgeMatcher;
+
+public class VEXDocumentRegionEdgeMatcher extends XMLDocumentRegionEdgeMatcher {
+
+	public VEXDocumentRegionEdgeMatcher() {
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/ContextType.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/ContextType.java
new file mode 100755
index 0000000..728e593
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/ContextType.java
@@ -0,0 +1,297 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.toolpalette;
+
+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>Context Type</b></em>', and utility methods for working with them. <!-- end-user-doc -->
+ * 
+ * @see org.eclipse.xwt.vex.toolpalette.ToolPalettePackage#getContextType()
+ * @model
+ * @generated
+ */
+public enum ContextType implements Enumerator {
+	/**
+	 * The '<em><b>Xml tag</b></em>' literal object. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #XML_TAG_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	XML_TAG(5, "xml_tag", "xml_tag"),
+
+	/**
+	 * The '<em><b>Xml attribute value</b></em>' literal object. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #XML_ATTRIBUTE_VALUE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	XML_ATTRIBUTE_VALUE(1, "xml_attribute_value", "xml_attribute_value"),
+
+	/**
+	 * The '<em><b>Xml attribute</b></em>' literal object. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #XML_ATTRIBUTE_VALUE_
+	 * @generated
+	 * @ordered
+	 */
+	XML_ATTRIBUTE(2, "xml_attribute", "xml_attribute"), /**
+	 * The '<em><b>Xml all</b></em>' literal object. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #XML_ALL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	XML_ALL(3, "xml_all", "xml_all"), /**
+	 * The '<em><b>Xml new</b></em>' literal object. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #XML_NEW_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	XML_NEW(4, "xml_new", "xml_new"), /**
+	 * The '<em><b>None</b></em>' literal object. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #NONE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NONE(0, "none", "none");
+
+	/**
+	 * The '<em><b>Xml tag</b></em>' literal value. <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Xml tag</b></em>' literal object isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @see #XML_TAG
+	 * @model name="xml_tag"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int XML_TAG_VALUE = 5;
+
+	/**
+	 * The '<em><b>Xml attribute value</b></em>' literal value. <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Xml attribute value</b></em>' literal object isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @see #XML_ATTRIBUTE_VALUE
+	 * @model name="xml_attribute_value"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int XML_ATTRIBUTE_VALUE_VALUE = 1;
+
+	/**
+	 * The '<em><b>Xml attribute</b></em>' literal value. <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Xml attribute</b></em>' literal object isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @see #XML_ATTRIBUTE
+	 * @model name="xml_attribute"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int XML_ATTRIBUTE_VALUE_ = 2;
+
+	/**
+	 * The '<em><b>Xml all</b></em>' literal value. <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Xml all</b></em>' literal object isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @see #XML_ALL
+	 * @model name="xml_all"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int XML_ALL_VALUE = 3;
+
+	/**
+	 * The '<em><b>Xml new</b></em>' literal value. <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Xml new</b></em>' literal object isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @see #XML_NEW
+	 * @model name="xml_new"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int XML_NEW_VALUE = 4;
+
+	/**
+	 * The '<em><b>None</b></em>' literal value. <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>None</b></em>' literal object isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @see #NONE
+	 * @model name="none"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NONE_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Context Type</b></em>' enumerators. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private static final ContextType[] VALUES_ARRAY = new ContextType[] { XML_TAG, XML_ATTRIBUTE_VALUE, XML_ATTRIBUTE, XML_ALL, XML_NEW, NONE, };
+
+	/**
+	 * A public read-only list of all the '<em><b>Context Type</b></em>' enumerators. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public static final List<ContextType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Context Type</b></em>' literal with the specified literal value. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public static ContextType get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ContextType result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Context Type</b></em>' literal with the specified name. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public static ContextType getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ContextType result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Context Type</b></em>' literal with the specified integer value. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public static ContextType get(int value) {
+		switch (value) {
+		case XML_TAG_VALUE:
+			return XML_TAG;
+		case XML_ATTRIBUTE_VALUE_VALUE:
+			return XML_ATTRIBUTE_VALUE;
+		case XML_ATTRIBUTE_VALUE_:
+			return XML_ATTRIBUTE;
+		case XML_ALL_VALUE:
+			return XML_ALL;
+		case XML_NEW_VALUE:
+			return XML_NEW;
+		case NONE_VALUE:
+			return NONE;
+		}
+		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 ContextType(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;
+	}
+
+} // ContextType
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/Entry.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/Entry.java
new file mode 100755
index 0000000..6eef272
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/Entry.java
@@ -0,0 +1,257 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.toolpalette;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Entry</b></em>'. <!-- end-user-doc -->
+ * 
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.xwt.vex.toolpalette.Entry#getToolTip <em>Tool Tip</em>}</li>
+ * <li>{@link org.eclipse.xwt.vex.toolpalette.Entry#getLargeIcon <em>Large Icon</em>}</li>
+ * <li>{@link org.eclipse.xwt.vex.toolpalette.Entry#getContent <em>Content</em>}</li>
+ * <li>{@link org.eclipse.xwt.vex.toolpalette.Entry#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.xwt.vex.toolpalette.Entry#getEntries <em>Entries</em>}</li>
+ * <li>{@link org.eclipse.xwt.vex.toolpalette.Entry#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.xwt.vex.toolpalette.Entry#getIcon <em>Icon</em>}</li>
+ * <li>{@link org.eclipse.xwt.vex.toolpalette.Entry#getContext <em>Context</em>}</li>
+ * <li>{@link org.eclipse.xwt.vex.toolpalette.Entry#getScope <em>Scope</em>}</li>
+ * </ul>
+ * </p>
+ * 
+ * @see org.eclipse.xwt.vex.toolpalette.ToolPalettePackage#getEntry()
+ * @model
+ * @generated
+ */
+public interface Entry extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Tool Tip</b></em>' attribute. <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Tool Tip</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Tool Tip</em>' attribute.
+	 * @see #setToolTip(String)
+	 * @see org.eclipse.xwt.vex.toolpalette.ToolPalettePackage#getEntry_ToolTip()
+	 * @model
+	 * @generated
+	 */
+	String getToolTip();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.vex.toolpalette.Entry#getToolTip <em>Tool Tip</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Tool Tip</em>' attribute.
+	 * @see #getToolTip()
+	 * @generated
+	 */
+	void setToolTip(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Large Icon</b></em>' attribute. <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Large Icon</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Large Icon</em>' attribute.
+	 * @see #setLargeIcon(String)
+	 * @see org.eclipse.xwt.vex.toolpalette.ToolPalettePackage#getEntry_LargeIcon()
+	 * @model
+	 * @generated
+	 */
+	String getLargeIcon();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.vex.toolpalette.Entry#getLargeIcon <em>Large Icon</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Large Icon</em>' attribute.
+	 * @see #getLargeIcon()
+	 * @generated
+	 */
+	void setLargeIcon(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Content</b></em>' attribute. <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Content</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Content</em>' attribute.
+	 * @see #setContent(String)
+	 * @see org.eclipse.xwt.vex.toolpalette.ToolPalettePackage#getEntry_Content()
+	 * @model
+	 * @generated
+	 */
+	String getContent();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.vex.toolpalette.Entry#getContent <em>Content</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Content</em>' attribute.
+	 * @see #getContent()
+	 * @generated
+	 */
+	void setContent(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute. <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Name</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see org.eclipse.xwt.vex.toolpalette.ToolPalettePackage#getEntry_Name()
+	 * @model
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.vex.toolpalette.Entry#getName <em>Name</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Entries</b></em>' containment reference list. The list nameMap are of type {@link org.eclipse.xwt.vex.toolpalette.Entry}. <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Entries</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>Entries</em>' containment reference list.
+	 * @see org.eclipse.xwt.vex.toolpalette.ToolPalettePackage#getEntry_Entries()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<Entry> getEntries();
+
+	/**
+	 * Returns the value of the '<em><b>Id</b></em>' attribute. The default value is <code>"\"\""</code>. <!-- 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.xwt.vex.toolpalette.ToolPalettePackage#getEntry_Id()
+	 * @model default="\"\"" id="true"
+	 * @generated
+	 */
+	String getId();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.vex.toolpalette.Entry#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>Icon</b></em>' attribute. <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Icon</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Icon</em>' attribute.
+	 * @see #setIcon(String)
+	 * @see org.eclipse.xwt.vex.toolpalette.ToolPalettePackage#getEntry_Icon()
+	 * @model
+	 * @generated
+	 */
+	String getIcon();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.vex.toolpalette.Entry#getIcon <em>Icon</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Icon</em>' attribute.
+	 * @see #getIcon()
+	 * @generated
+	 */
+	void setIcon(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Context</b></em>' attribute. The default value is <code>""</code>. The literals are from the enumeration {@link org.eclipse.xwt.vex.toolpalette.ContextType}. <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Context</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Context</em>' attribute.
+	 * @see org.eclipse.xwt.vex.toolpalette.ContextType
+	 * @see #setContext(ContextType)
+	 * @see org.eclipse.xwt.vex.toolpalette.ToolPalettePackage#getEntry_Context()
+	 * @model default=""
+	 * @generated
+	 */
+	ContextType getContext();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.vex.toolpalette.Entry#getContext <em>Context</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Context</em>' attribute.
+	 * @see org.eclipse.xwt.vex.toolpalette.ContextType
+	 * @see #getContext()
+	 * @generated
+	 */
+	void setContext(ContextType value);
+
+	/**
+	 * Returns the value of the '<em><b>Scope</b></em>' attribute. <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Scope</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Scope</em>' attribute.
+	 * @see #setScope(String)
+	 * @see org.eclipse.xwt.vex.toolpalette.ToolPalettePackage#getEntry_Scope()
+	 * @model
+	 * @generated
+	 */
+	String getScope();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.vex.toolpalette.Entry#getScope <em>Scope</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Scope</em>' attribute.
+	 * @see #getScope()
+	 * @generated
+	 */
+	void setScope(String value);
+
+} // Entry
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/ToolPalette.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/ToolPalette.java
new file mode 100755
index 0000000..d2a5649
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/ToolPalette.java
@@ -0,0 +1,73 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.toolpalette;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Tool Palette</b></em>'. <!-- end-user-doc -->
+ * 
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.xwt.vex.toolpalette.ToolPalette#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.xwt.vex.toolpalette.ToolPalette#getEntries <em>Entries</em>}</li>
+ * </ul>
+ * </p>
+ * 
+ * @see org.eclipse.xwt.vex.toolpalette.ToolPalettePackage#getToolPalette()
+ * @model
+ * @generated
+ */
+public interface ToolPalette extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute. <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Name</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see org.eclipse.xwt.vex.toolpalette.ToolPalettePackage#getToolPalette_Name()
+	 * @model
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.vex.toolpalette.ToolPalette#getName <em>Name</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Entries</b></em>' containment reference list. The list nameMap are of type {@link org.eclipse.xwt.vex.toolpalette.Entry}. <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Entries</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>Entries</em>' containment reference list.
+	 * @see org.eclipse.xwt.vex.toolpalette.ToolPalettePackage#getToolPalette_Entries()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<Entry> getEntries();
+
+} // ToolPalette
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/ToolPaletteFactory.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/ToolPaletteFactory.java
new file mode 100755
index 0000000..1794562
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/ToolPaletteFactory.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.toolpalette;
+
+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.xwt.vex.toolpalette.ToolPalettePackage
+ * @generated
+ */
+public interface ToolPaletteFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	ToolPaletteFactory eINSTANCE = org.eclipse.xwt.vex.toolpalette.impl.ToolPaletteFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Tool Palette</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return a new object of class '<em>Tool Palette</em>'.
+	 * @generated
+	 */
+	ToolPalette createToolPalette();
+
+	/**
+	 * Returns a new object of class '<em>Entry</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return a new object of class '<em>Entry</em>'.
+	 * @generated
+	 */
+	Entry createEntry();
+
+	/**
+	 * Returns the package supported by this factory. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	ToolPalettePackage getToolPalettePackage();
+
+} // ToolPaletteFactory
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/ToolPalettePackage.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/ToolPalettePackage.java
new file mode 100755
index 0000000..563b543
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/ToolPalettePackage.java
@@ -0,0 +1,459 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.toolpalette;
+
+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.xwt.vex.toolpalette.ToolPaletteFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface ToolPalettePackage extends EPackage {
+	/**
+	 * The package name. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	String eNAME = "toolpalette";
+
+	/**
+	 * The package namespace URI. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	String eNS_URI = "http://www.eclipse.org/ve/xml/toolpalette";
+
+	/**
+	 * The package namespace name. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	String eNS_PREFIX = "com.soyatec.eface.tools.ui.editors.toolpalette";
+
+	/**
+	 * The singleton instance of the package. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	ToolPalettePackage eINSTANCE = org.eclipse.xwt.vex.toolpalette.impl.ToolPalettePackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.xwt.vex.toolpalette.impl.EntryImpl <em>Entry</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see org.eclipse.xwt.vex.toolpalette.impl.EntryImpl
+	 * @see org.eclipse.xwt.vex.toolpalette.impl.ToolPalettePackageImpl#getEntry()
+	 * @generated
+	 */
+	int ENTRY = 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.xwt.vex.toolpalette.impl.ToolPaletteImpl <em>Tool Palette</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see org.eclipse.xwt.vex.toolpalette.impl.ToolPaletteImpl
+	 * @see org.eclipse.xwt.vex.toolpalette.impl.ToolPalettePackageImpl#getToolPalette()
+	 * @generated
+	 */
+	int TOOL_PALETTE = 0;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int TOOL_PALETTE__NAME = 0;
+
+	/**
+	 * The feature id for the '<em><b>Entries</b></em>' containment reference list. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int TOOL_PALETTE__ENTRIES = 1;
+
+	/**
+	 * The number of structural features of the '<em>Tool Palette</em>' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int TOOL_PALETTE_FEATURE_COUNT = 2;
+
+	/**
+	 * The feature id for the '<em><b>Tool Tip</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int ENTRY__TOOL_TIP = 0;
+
+	/**
+	 * The feature id for the '<em><b>Large Icon</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int ENTRY__LARGE_ICON = 1;
+
+	/**
+	 * The feature id for the '<em><b>Content</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int ENTRY__CONTENT = 2;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int ENTRY__NAME = 3;
+
+	/**
+	 * The feature id for the '<em><b>Entries</b></em>' containment reference list. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int ENTRY__ENTRIES = 4;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int ENTRY__ID = 5;
+
+	/**
+	 * The feature id for the '<em><b>Icon</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int ENTRY__ICON = 6;
+
+	/**
+	 * The feature id for the '<em><b>Context</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int ENTRY__CONTEXT = 7;
+
+	/**
+	 * The feature id for the '<em><b>Scope</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int ENTRY__SCOPE = 8;
+
+	/**
+	 * The number of structural features of the '<em>Entry</em>' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int ENTRY_FEATURE_COUNT = 9;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.xwt.vex.toolpalette.ContextType <em>Context Type</em>}' enum. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see org.eclipse.xwt.vex.toolpalette.ContextType
+	 * @see org.eclipse.xwt.vex.toolpalette.impl.ToolPalettePackageImpl#getContextType()
+	 * @generated
+	 */
+	int CONTEXT_TYPE = 2;
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.xwt.vex.toolpalette.ToolPalette <em>Tool Palette</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for class '<em>Tool Palette</em>'.
+	 * @see org.eclipse.xwt.vex.toolpalette.ToolPalette
+	 * @generated
+	 */
+	EClass getToolPalette();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.vex.toolpalette.ToolPalette#getName <em>Name</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see org.eclipse.xwt.vex.toolpalette.ToolPalette#getName()
+	 * @see #getToolPalette()
+	 * @generated
+	 */
+	EAttribute getToolPalette_Name();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.xwt.vex.toolpalette.ToolPalette#getEntries <em>Entries</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for the containment reference list '<em>Entries</em>'.
+	 * @see org.eclipse.xwt.vex.toolpalette.ToolPalette#getEntries()
+	 * @see #getToolPalette()
+	 * @generated
+	 */
+	EReference getToolPalette_Entries();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.xwt.vex.toolpalette.Entry <em>Entry</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for class '<em>Entry</em>'.
+	 * @see org.eclipse.xwt.vex.toolpalette.Entry
+	 * @generated
+	 */
+	EClass getEntry();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.vex.toolpalette.Entry#getToolTip <em>Tool Tip</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for the attribute '<em>Tool Tip</em>'.
+	 * @see org.eclipse.xwt.vex.toolpalette.Entry#getToolTip()
+	 * @see #getEntry()
+	 * @generated
+	 */
+	EAttribute getEntry_ToolTip();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.vex.toolpalette.Entry#getLargeIcon <em>Large Icon</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for the attribute '<em>Large Icon</em>'.
+	 * @see org.eclipse.xwt.vex.toolpalette.Entry#getLargeIcon()
+	 * @see #getEntry()
+	 * @generated
+	 */
+	EAttribute getEntry_LargeIcon();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.vex.toolpalette.Entry#getContent <em>Content</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for the attribute '<em>Content</em>'.
+	 * @see org.eclipse.xwt.vex.toolpalette.Entry#getContent()
+	 * @see #getEntry()
+	 * @generated
+	 */
+	EAttribute getEntry_Content();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.vex.toolpalette.Entry#getName <em>Name</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see org.eclipse.xwt.vex.toolpalette.Entry#getName()
+	 * @see #getEntry()
+	 * @generated
+	 */
+	EAttribute getEntry_Name();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.xwt.vex.toolpalette.Entry#getEntries <em>Entries</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for the containment reference list '<em>Entries</em>'.
+	 * @see org.eclipse.xwt.vex.toolpalette.Entry#getEntries()
+	 * @see #getEntry()
+	 * @generated
+	 */
+	EReference getEntry_Entries();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.vex.toolpalette.Entry#getId <em>Id</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for the attribute '<em>Id</em>'.
+	 * @see org.eclipse.xwt.vex.toolpalette.Entry#getId()
+	 * @see #getEntry()
+	 * @generated
+	 */
+	EAttribute getEntry_Id();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.vex.toolpalette.Entry#getIcon <em>Icon</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for the attribute '<em>Icon</em>'.
+	 * @see org.eclipse.xwt.vex.toolpalette.Entry#getIcon()
+	 * @see #getEntry()
+	 * @generated
+	 */
+	EAttribute getEntry_Icon();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.vex.toolpalette.Entry#getContext <em>Context</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for the attribute '<em>Context</em>'.
+	 * @see org.eclipse.xwt.vex.toolpalette.Entry#getContext()
+	 * @see #getEntry()
+	 * @generated
+	 */
+	EAttribute getEntry_Context();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.vex.toolpalette.Entry#getScope <em>Scope</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for the attribute '<em>Scope</em>'.
+	 * @see org.eclipse.xwt.vex.toolpalette.Entry#getScope()
+	 * @see #getEntry()
+	 * @generated
+	 */
+	EAttribute getEntry_Scope();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.xwt.vex.toolpalette.ContextType <em>Context Type</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for enum '<em>Context Type</em>'.
+	 * @see org.eclipse.xwt.vex.toolpalette.ContextType
+	 * @generated
+	 */
+	EEnum getContextType();
+
+	/**
+	 * 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
+	 */
+	ToolPaletteFactory getToolPaletteFactory();
+
+	/**
+	 * <!-- 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.xwt.vex.toolpalette.impl.ToolPaletteImpl <em>Tool Palette</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * 
+		 * @see org.eclipse.xwt.vex.toolpalette.impl.ToolPaletteImpl
+		 * @see org.eclipse.xwt.vex.toolpalette.impl.ToolPalettePackageImpl#getToolPalette()
+		 * @generated
+		 */
+		EClass TOOL_PALETTE = eINSTANCE.getToolPalette();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * 
+		 * @generated
+		 */
+		EAttribute TOOL_PALETTE__NAME = eINSTANCE.getToolPalette_Name();
+
+		/**
+		 * The meta object literal for the '<em><b>Entries</b></em>' containment reference list feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * 
+		 * @generated
+		 */
+		EReference TOOL_PALETTE__ENTRIES = eINSTANCE.getToolPalette_Entries();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.xwt.vex.toolpalette.impl.EntryImpl <em>Entry</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * 
+		 * @see org.eclipse.xwt.vex.toolpalette.impl.EntryImpl
+		 * @see org.eclipse.xwt.vex.toolpalette.impl.ToolPalettePackageImpl#getEntry()
+		 * @generated
+		 */
+		EClass ENTRY = eINSTANCE.getEntry();
+
+		/**
+		 * The meta object literal for the '<em><b>Tool Tip</b></em>' attribute feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * 
+		 * @generated
+		 */
+		EAttribute ENTRY__TOOL_TIP = eINSTANCE.getEntry_ToolTip();
+
+		/**
+		 * The meta object literal for the '<em><b>Large Icon</b></em>' attribute feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * 
+		 * @generated
+		 */
+		EAttribute ENTRY__LARGE_ICON = eINSTANCE.getEntry_LargeIcon();
+
+		/**
+		 * The meta object literal for the '<em><b>Content</b></em>' attribute feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * 
+		 * @generated
+		 */
+		EAttribute ENTRY__CONTENT = eINSTANCE.getEntry_Content();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * 
+		 * @generated
+		 */
+		EAttribute ENTRY__NAME = eINSTANCE.getEntry_Name();
+
+		/**
+		 * The meta object literal for the '<em><b>Entries</b></em>' containment reference list feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * 
+		 * @generated
+		 */
+		EReference ENTRY__ENTRIES = eINSTANCE.getEntry_Entries();
+
+		/**
+		 * The meta object literal for the '<em><b>Id</b></em>' attribute feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * 
+		 * @generated
+		 */
+		EAttribute ENTRY__ID = eINSTANCE.getEntry_Id();
+
+		/**
+		 * The meta object literal for the '<em><b>Icon</b></em>' attribute feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * 
+		 * @generated
+		 */
+		EAttribute ENTRY__ICON = eINSTANCE.getEntry_Icon();
+
+		/**
+		 * The meta object literal for the '<em><b>Context</b></em>' attribute feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * 
+		 * @generated
+		 */
+		EAttribute ENTRY__CONTEXT = eINSTANCE.getEntry_Context();
+
+		/**
+		 * The meta object literal for the '<em><b>Scope</b></em>' attribute feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * 
+		 * @generated
+		 */
+		EAttribute ENTRY__SCOPE = eINSTANCE.getEntry_Scope();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.xwt.vex.toolpalette.ContextType <em>Context Type</em>}' enum. <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * 
+		 * @see org.eclipse.xwt.vex.toolpalette.ContextType
+		 * @see org.eclipse.xwt.vex.toolpalette.impl.ToolPalettePackageImpl#getContextType()
+		 * @generated
+		 */
+		EEnum CONTEXT_TYPE = eINSTANCE.getContextType();
+
+	}
+
+} // ToolPalettePackage
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/impl/EntryImpl.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/impl/EntryImpl.java
new file mode 100755
index 0000000..d0c55bd
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/impl/EntryImpl.java
@@ -0,0 +1,590 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.toolpalette.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.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.xwt.vex.toolpalette.ContextType;
+import org.eclipse.xwt.vex.toolpalette.Entry;
+import org.eclipse.xwt.vex.toolpalette.ToolPalettePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Entry</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.xwt.vex.toolpalette.impl.EntryImpl#getToolTip <em>Tool Tip</em>}</li>
+ * <li>{@link org.eclipse.xwt.vex.toolpalette.impl.EntryImpl#getLargeIcon <em>Large Icon</em>}</li>
+ * <li>{@link org.eclipse.xwt.vex.toolpalette.impl.EntryImpl#getContent <em>Content</em>}</li>
+ * <li>{@link org.eclipse.xwt.vex.toolpalette.impl.EntryImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.xwt.vex.toolpalette.impl.EntryImpl#getEntries <em>Entries</em>}</li>
+ * <li>{@link org.eclipse.xwt.vex.toolpalette.impl.EntryImpl#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.xwt.vex.toolpalette.impl.EntryImpl#getIcon <em>Icon</em>}</li>
+ * <li>{@link org.eclipse.xwt.vex.toolpalette.impl.EntryImpl#getContext <em>Context</em>}</li>
+ * <li>{@link org.eclipse.xwt.vex.toolpalette.impl.EntryImpl#getScope <em>Scope</em>}</li>
+ * </ul>
+ * </p>
+ * 
+ * @generated
+ */
+public class EntryImpl extends EObjectImpl implements Entry {
+	/**
+	 * The default value of the '{@link #getToolTip() <em>Tool Tip</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getToolTip()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TOOL_TIP_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getToolTip() <em>Tool Tip</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getToolTip()
+	 * @generated
+	 * @ordered
+	 */
+	protected String toolTip = TOOL_TIP_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLargeIcon() <em>Large Icon</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getLargeIcon()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String LARGE_ICON_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLargeIcon() <em>Large Icon</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getLargeIcon()
+	 * @generated
+	 * @ordered
+	 */
+	protected String largeIcon = LARGE_ICON_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getContent() <em>Content</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getContent()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String CONTENT_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getContent() <em>Content</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getContent()
+	 * @generated
+	 * @ordered
+	 */
+	protected String content = CONTENT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getEntries() <em>Entries</em>}' containment reference list. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getEntries()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Entry> entries;
+
+	/**
+	 * 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 = "\"\"";
+
+	/**
+	 * The cached value of the '{@link #getId() <em>Id</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getId()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getIcon() <em>Icon</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getIcon()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ICON_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getIcon() <em>Icon</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getIcon()
+	 * @generated
+	 * @ordered
+	 */
+	protected String icon = ICON_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getContext() <em>Context</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getContext()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final ContextType CONTEXT_EDEFAULT = ContextType.XML_TAG;
+
+	/**
+	 * The cached value of the '{@link #getContext() <em>Context</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getContext()
+	 * @generated
+	 * @ordered
+	 */
+	protected ContextType context = CONTEXT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getScope() <em>Scope</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getScope()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SCOPE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getScope() <em>Scope</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getScope()
+	 * @generated
+	 * @ordered
+	 */
+	protected String scope = SCOPE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected EntryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ToolPalettePackage.Literals.ENTRY;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public String getToolTip() {
+		return toolTip;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setToolTip(String newToolTip) {
+		String oldToolTip = toolTip;
+		toolTip = newToolTip;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ToolPalettePackage.ENTRY__TOOL_TIP, oldToolTip, toolTip));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public String getLargeIcon() {
+		if (largeIcon == null || largeIcon.trim().length() == 0) {
+			return getIcon();
+		}
+		return largeIcon;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setLargeIcon(String newLargeIcon) {
+		String oldLargeIcon = largeIcon;
+		largeIcon = newLargeIcon;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ToolPalettePackage.ENTRY__LARGE_ICON, oldLargeIcon, largeIcon));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public String getContent() {
+		return content;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setContent(String newContent) {
+		String oldContent = content;
+		content = newContent;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ToolPalettePackage.ENTRY__CONTENT, oldContent, content));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ToolPalettePackage.ENTRY__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EList<Entry> getEntries() {
+		if (entries == null) {
+			entries = new EObjectContainmentEList<Entry>(Entry.class, this, ToolPalettePackage.ENTRY__ENTRIES);
+		}
+		return entries;
+	}
+
+	/**
+	 * <!-- 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, ToolPalettePackage.ENTRY__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public String getIcon() {
+		return icon;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setIcon(String newIcon) {
+		String oldIcon = icon;
+		icon = newIcon;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ToolPalettePackage.ENTRY__ICON, oldIcon, icon));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public ContextType getContext() {
+		return context;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setContext(ContextType newContext) {
+		ContextType oldContext = context;
+		context = newContext == null ? CONTEXT_EDEFAULT : newContext;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ToolPalettePackage.ENTRY__CONTEXT, oldContext, context));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public String getScope() {
+		return scope;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setScope(String newScope) {
+		String oldScope = scope;
+		scope = newScope;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ToolPalettePackage.ENTRY__SCOPE, oldScope, scope));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+		case ToolPalettePackage.ENTRY__ENTRIES:
+			return ((InternalEList<?>) getEntries()).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 ToolPalettePackage.ENTRY__TOOL_TIP:
+			return getToolTip();
+		case ToolPalettePackage.ENTRY__LARGE_ICON:
+			return getLargeIcon();
+		case ToolPalettePackage.ENTRY__CONTENT:
+			return getContent();
+		case ToolPalettePackage.ENTRY__NAME:
+			return getName();
+		case ToolPalettePackage.ENTRY__ENTRIES:
+			return getEntries();
+		case ToolPalettePackage.ENTRY__ID:
+			return getId();
+		case ToolPalettePackage.ENTRY__ICON:
+			return getIcon();
+		case ToolPalettePackage.ENTRY__CONTEXT:
+			return getContext();
+		case ToolPalettePackage.ENTRY__SCOPE:
+			return getScope();
+		}
+		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 ToolPalettePackage.ENTRY__TOOL_TIP:
+			setToolTip((String) newValue);
+			return;
+		case ToolPalettePackage.ENTRY__LARGE_ICON:
+			setLargeIcon((String) newValue);
+			return;
+		case ToolPalettePackage.ENTRY__CONTENT:
+			setContent((String) newValue);
+			return;
+		case ToolPalettePackage.ENTRY__NAME:
+			setName((String) newValue);
+			return;
+		case ToolPalettePackage.ENTRY__ENTRIES:
+			getEntries().clear();
+			getEntries().addAll((Collection<? extends Entry>) newValue);
+			return;
+		case ToolPalettePackage.ENTRY__ID:
+			setId((String) newValue);
+			return;
+		case ToolPalettePackage.ENTRY__ICON:
+			setIcon((String) newValue);
+			return;
+		case ToolPalettePackage.ENTRY__CONTEXT:
+			setContext((ContextType) newValue);
+			return;
+		case ToolPalettePackage.ENTRY__SCOPE:
+			setScope((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case ToolPalettePackage.ENTRY__TOOL_TIP:
+			setToolTip(TOOL_TIP_EDEFAULT);
+			return;
+		case ToolPalettePackage.ENTRY__LARGE_ICON:
+			setLargeIcon(LARGE_ICON_EDEFAULT);
+			return;
+		case ToolPalettePackage.ENTRY__CONTENT:
+			setContent(CONTENT_EDEFAULT);
+			return;
+		case ToolPalettePackage.ENTRY__NAME:
+			setName(NAME_EDEFAULT);
+			return;
+		case ToolPalettePackage.ENTRY__ENTRIES:
+			getEntries().clear();
+			return;
+		case ToolPalettePackage.ENTRY__ID:
+			setId(ID_EDEFAULT);
+			return;
+		case ToolPalettePackage.ENTRY__ICON:
+			setIcon(ICON_EDEFAULT);
+			return;
+		case ToolPalettePackage.ENTRY__CONTEXT:
+			setContext(CONTEXT_EDEFAULT);
+			return;
+		case ToolPalettePackage.ENTRY__SCOPE:
+			setScope(SCOPE_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case ToolPalettePackage.ENTRY__TOOL_TIP:
+			return TOOL_TIP_EDEFAULT == null ? toolTip != null : !TOOL_TIP_EDEFAULT.equals(toolTip);
+		case ToolPalettePackage.ENTRY__LARGE_ICON:
+			return LARGE_ICON_EDEFAULT == null ? largeIcon != null : !LARGE_ICON_EDEFAULT.equals(largeIcon);
+		case ToolPalettePackage.ENTRY__CONTENT:
+			return CONTENT_EDEFAULT == null ? content != null : !CONTENT_EDEFAULT.equals(content);
+		case ToolPalettePackage.ENTRY__NAME:
+			return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+		case ToolPalettePackage.ENTRY__ENTRIES:
+			return entries != null && !entries.isEmpty();
+		case ToolPalettePackage.ENTRY__ID:
+			return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+		case ToolPalettePackage.ENTRY__ICON:
+			return ICON_EDEFAULT == null ? icon != null : !ICON_EDEFAULT.equals(icon);
+		case ToolPalettePackage.ENTRY__CONTEXT:
+			return context != CONTEXT_EDEFAULT;
+		case ToolPalettePackage.ENTRY__SCOPE:
+			return SCOPE_EDEFAULT == null ? scope != null : !SCOPE_EDEFAULT.equals(scope);
+		}
+		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(" (toolTip: ");
+		result.append(toolTip);
+		result.append(", largeIcon: ");
+		result.append(largeIcon);
+		result.append(", content: ");
+		result.append(content);
+		result.append(", name: ");
+		result.append(name);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", icon: ");
+		result.append(icon);
+		result.append(", context: ");
+		result.append(context);
+		result.append(", scope: ");
+		result.append(scope);
+		result.append(')');
+		return result.toString();
+	}
+
+} // EntryImpl
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/impl/ToolPaletteFactoryImpl.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/impl/ToolPaletteFactoryImpl.java
new file mode 100755
index 0000000..7910831
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/impl/ToolPaletteFactoryImpl.java
@@ -0,0 +1,167 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.toolpalette.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.xwt.vex.toolpalette.ContextType;
+import org.eclipse.xwt.vex.toolpalette.Entry;
+import org.eclipse.xwt.vex.toolpalette.ToolPalette;
+import org.eclipse.xwt.vex.toolpalette.ToolPaletteFactory;
+import org.eclipse.xwt.vex.toolpalette.ToolPalettePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model <b>Factory</b>. <!-- end-user-doc -->
+ * 
+ * @generated
+ */
+public class ToolPaletteFactoryImpl extends EFactoryImpl implements ToolPaletteFactory {
+	/**
+	 * Creates the default factory implementation. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public static ToolPaletteFactory init() {
+		try {
+			ToolPaletteFactory theToolPaletteFactory = (ToolPaletteFactory) EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/ve/xml/toolpalette");
+			if (theToolPaletteFactory != null) {
+				return theToolPaletteFactory;
+			}
+		} catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new ToolPaletteFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public ToolPaletteFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+		case ToolPalettePackage.TOOL_PALETTE:
+			return createToolPalette();
+		case ToolPalettePackage.ENTRY:
+			return createEntry();
+		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 ToolPalettePackage.CONTEXT_TYPE:
+			return createContextTypeFromString(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 ToolPalettePackage.CONTEXT_TYPE:
+			return convertContextTypeToString(eDataType, instanceValue);
+		default:
+			throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public ToolPalette createToolPalette() {
+		ToolPaletteImpl toolPalette = new ToolPaletteImpl();
+		return toolPalette;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public Entry createEntry() {
+		EntryImpl entry = new EntryImpl();
+		return entry;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public ContextType createContextTypeFromString(EDataType eDataType, String initialValue) {
+		ContextType result = ContextType.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 convertContextTypeToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public ToolPalettePackage getToolPalettePackage() {
+		return (ToolPalettePackage) getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static ToolPalettePackage getPackage() {
+		return ToolPalettePackage.eINSTANCE;
+	}
+
+} // ToolPaletteFactoryImpl
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/impl/ToolPaletteImpl.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/impl/ToolPaletteImpl.java
new file mode 100755
index 0000000..727d6a4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/impl/ToolPaletteImpl.java
@@ -0,0 +1,223 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.toolpalette.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.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.xwt.vex.toolpalette.Entry;
+import org.eclipse.xwt.vex.toolpalette.ToolPalette;
+import org.eclipse.xwt.vex.toolpalette.ToolPalettePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Tool Palette</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.xwt.vex.toolpalette.impl.ToolPaletteImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.xwt.vex.toolpalette.impl.ToolPaletteImpl#getEntries <em>Entries</em>}</li>
+ * </ul>
+ * </p>
+ * 
+ * @generated
+ */
+public class ToolPaletteImpl extends EObjectImpl implements ToolPalette {
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getEntries() <em>Entries</em>}' containment reference list. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getEntries()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Entry> entries;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected ToolPaletteImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ToolPalettePackage.Literals.TOOL_PALETTE;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ToolPalettePackage.TOOL_PALETTE__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EList<Entry> getEntries() {
+		if (entries == null) {
+			entries = new EObjectContainmentEList<Entry>(Entry.class, this, ToolPalettePackage.TOOL_PALETTE__ENTRIES);
+		}
+		return entries;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+		case ToolPalettePackage.TOOL_PALETTE__ENTRIES:
+			return ((InternalEList<?>) getEntries()).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 ToolPalettePackage.TOOL_PALETTE__NAME:
+			return getName();
+		case ToolPalettePackage.TOOL_PALETTE__ENTRIES:
+			return getEntries();
+		}
+		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 ToolPalettePackage.TOOL_PALETTE__NAME:
+			setName((String) newValue);
+			return;
+		case ToolPalettePackage.TOOL_PALETTE__ENTRIES:
+			getEntries().clear();
+			getEntries().addAll((Collection<? extends Entry>) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case ToolPalettePackage.TOOL_PALETTE__NAME:
+			setName(NAME_EDEFAULT);
+			return;
+		case ToolPalettePackage.TOOL_PALETTE__ENTRIES:
+			getEntries().clear();
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case ToolPalettePackage.TOOL_PALETTE__NAME:
+			return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+		case ToolPalettePackage.TOOL_PALETTE__ENTRIES:
+			return entries != null && !entries.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(" (name: ");
+		result.append(name);
+		result.append(')');
+		return result.toString();
+	}
+
+} // ToolPaletteImpl
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/impl/ToolPalettePackageImpl.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/impl/ToolPalettePackageImpl.java
new file mode 100755
index 0000000..25a5315
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/impl/ToolPalettePackageImpl.java
@@ -0,0 +1,337 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.toolpalette.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.xwt.vex.toolpalette.ContextType;
+import org.eclipse.xwt.vex.toolpalette.Entry;
+import org.eclipse.xwt.vex.toolpalette.ToolPalette;
+import org.eclipse.xwt.vex.toolpalette.ToolPaletteFactory;
+import org.eclipse.xwt.vex.toolpalette.ToolPalettePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model <b>Package</b>. <!-- end-user-doc -->
+ * 
+ * @generated
+ */
+public class ToolPalettePackageImpl extends EPackageImpl implements ToolPalettePackage {
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private EClass toolPaletteEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private EClass entryEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private EEnum contextTypeEEnum = 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.xwt.vex.toolpalette.ToolPalettePackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private ToolPalettePackageImpl() {
+		super(eNS_URI, ToolPaletteFactory.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. Simple dependencies are satisfied by calling this method on all dependent packages before doing anything else. This method drives initialization for interdependent packages directly, in parallel with this package, itself.
+	 * <p>
+	 * Of this package and its interdependencies, all packages which have not yet been registered by their URI values are first created and registered. The packages are then initialized in two steps: meta-model objects for all of the packages are created before any are initialized, since one package's meta-model objects may refer to those of another.
+	 * <p>
+	 * Invocation of this method will not affect any packages that have already been initialized. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static ToolPalettePackage init() {
+		if (isInited)
+			return (ToolPalettePackage) EPackage.Registry.INSTANCE.getEPackage(ToolPalettePackage.eNS_URI);
+
+		// Obtain or create and register package
+		ToolPalettePackageImpl theToolPalettePackage = (ToolPalettePackageImpl) (EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof ToolPalettePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new ToolPalettePackageImpl());
+
+		isInited = true;
+
+		// Create package meta-data objects
+		theToolPalettePackage.createPackageContents();
+
+		// Initialize created meta-data
+		theToolPalettePackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theToolPalettePackage.freeze();
+
+		return theToolPalettePackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EClass getToolPalette() {
+		return toolPaletteEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EAttribute getToolPalette_Name() {
+		return (EAttribute) toolPaletteEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EReference getToolPalette_Entries() {
+		return (EReference) toolPaletteEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EClass getEntry() {
+		return entryEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EAttribute getEntry_ToolTip() {
+		return (EAttribute) entryEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EAttribute getEntry_LargeIcon() {
+		return (EAttribute) entryEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EAttribute getEntry_Content() {
+		return (EAttribute) entryEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EAttribute getEntry_Name() {
+		return (EAttribute) entryEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EReference getEntry_Entries() {
+		return (EReference) entryEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EAttribute getEntry_Id() {
+		return (EAttribute) entryEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EAttribute getEntry_Icon() {
+		return (EAttribute) entryEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EAttribute getEntry_Context() {
+		return (EAttribute) entryEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EAttribute getEntry_Scope() {
+		return (EAttribute) entryEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EEnum getContextType() {
+		return contextTypeEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public ToolPaletteFactory getToolPaletteFactory() {
+		return (ToolPaletteFactory) getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package. This method is guarded to have no affect on any invocation but its first. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated)
+			return;
+		isCreated = true;
+
+		// Create classes and their features
+		toolPaletteEClass = createEClass(TOOL_PALETTE);
+		createEAttribute(toolPaletteEClass, TOOL_PALETTE__NAME);
+		createEReference(toolPaletteEClass, TOOL_PALETTE__ENTRIES);
+
+		entryEClass = createEClass(ENTRY);
+		createEAttribute(entryEClass, ENTRY__TOOL_TIP);
+		createEAttribute(entryEClass, ENTRY__LARGE_ICON);
+		createEAttribute(entryEClass, ENTRY__CONTENT);
+		createEAttribute(entryEClass, ENTRY__NAME);
+		createEReference(entryEClass, ENTRY__ENTRIES);
+		createEAttribute(entryEClass, ENTRY__ID);
+		createEAttribute(entryEClass, ENTRY__ICON);
+		createEAttribute(entryEClass, ENTRY__CONTEXT);
+		createEAttribute(entryEClass, ENTRY__SCOPE);
+
+		// Create enums
+		contextTypeEEnum = createEEnum(CONTEXT_TYPE);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model. This method is guarded to have no affect on any invocation but its first. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized)
+			return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(toolPaletteEClass, ToolPalette.class, "ToolPalette", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getToolPalette_Name(), ecorePackage.getEString(), "name", null, 0, 1, ToolPalette.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getToolPalette_Entries(), this.getEntry(), null, "entries", null, 0, -1, ToolPalette.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(entryEClass, Entry.class, "Entry", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getEntry_ToolTip(), ecorePackage.getEString(), "toolTip", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getEntry_LargeIcon(), ecorePackage.getEString(), "largeIcon", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getEntry_Content(), ecorePackage.getEString(), "content", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getEntry_Name(), ecorePackage.getEString(), "name", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getEntry_Entries(), this.getEntry(), null, "entries", null, 0, -1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getEntry_Id(), ecorePackage.getEString(), "id", "\"\"", 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getEntry_Icon(), ecorePackage.getEString(), "icon", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getEntry_Context(), this.getContextType(), "context", "", 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getEntry_Scope(), ecorePackage.getEString(), "scope", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		// Initialize enums and add enum literals
+		initEEnum(contextTypeEEnum, ContextType.class, "ContextType");
+		addEEnumLiteral(contextTypeEEnum, ContextType.XML_TAG);
+		addEEnumLiteral(contextTypeEEnum, ContextType.XML_ATTRIBUTE_VALUE);
+		addEEnumLiteral(contextTypeEEnum, ContextType.XML_ATTRIBUTE);
+		addEEnumLiteral(contextTypeEEnum, ContextType.XML_ALL);
+		addEEnumLiteral(contextTypeEEnum, ContextType.XML_NEW);
+		addEEnumLiteral(contextTypeEEnum, ContextType.NONE);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} // ToolPalettePackageImpl
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/util/ToolPaletteAdapterFactory.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/util/ToolPaletteAdapterFactory.java
new file mode 100755
index 0000000..bb0d26c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/util/ToolPaletteAdapterFactory.java
@@ -0,0 +1,132 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.toolpalette.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.xwt.vex.toolpalette.Entry;
+import org.eclipse.xwt.vex.toolpalette.ToolPalette;
+import org.eclipse.xwt.vex.toolpalette.ToolPalettePackage;
+
+/**
+ * <!-- 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.xwt.vex.toolpalette.ToolPalettePackage
+ * @generated
+ */
+public class ToolPaletteAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected static ToolPalettePackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public ToolPaletteAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = ToolPalettePackage.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 ToolPaletteSwitch<Adapter> modelSwitch = new ToolPaletteSwitch<Adapter>() {
+		@Override
+		public Adapter caseToolPalette(ToolPalette object) {
+			return createToolPaletteAdapter();
+		}
+
+		@Override
+		public Adapter caseEntry(Entry object) {
+			return createEntryAdapter();
+		}
+
+		@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.xwt.vex.toolpalette.ToolPalette <em>Tool Palette</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.xwt.vex.toolpalette.ToolPalette
+	 * @generated
+	 */
+	public Adapter createToolPaletteAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.xwt.vex.toolpalette.Entry <em>Entry</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.xwt.vex.toolpalette.Entry
+	 * @generated
+	 */
+	public Adapter createEntryAdapter() {
+		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;
+	}
+
+} // ToolPaletteAdapterFactory
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/util/ToolPaletteHelper.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/util/ToolPaletteHelper.java
new file mode 100755
index 0000000..656e986
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/util/ToolPaletteHelper.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.toolpalette.util;
+
+import org.eclipse.xwt.vex.toolpalette.Entry;
+
+public class ToolPaletteHelper {
+
+	public static String getSimpleName(Entry entry) {
+		String name = entry.getName();
+		if (name == null) {
+			return null;
+		}
+		int index = name.lastIndexOf('.');
+		if (index != -1) {
+			name = name.substring(index + 1);
+		}
+		return name;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/util/ToolPaletteSwitch.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/util/ToolPaletteSwitch.java
new file mode 100755
index 0000000..b059f99
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/toolpalette/util/ToolPaletteSwitch.java
@@ -0,0 +1,139 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.toolpalette.util;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xwt.vex.toolpalette.Entry;
+import org.eclipse.xwt.vex.toolpalette.ToolPalette;
+import org.eclipse.xwt.vex.toolpalette.ToolPalettePackage;
+
+/**
+ * <!-- 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.xwt.vex.toolpalette.ToolPalettePackage
+ * @generated
+ */
+public class ToolPaletteSwitch<T> {
+	/**
+	 * The cached model package <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected static ToolPalettePackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public ToolPaletteSwitch() {
+		if (modelPackage == null) {
+			modelPackage = ToolPalettePackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * 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
+	 */
+	public T doSwitch(EObject theEObject) {
+		return doSwitch(theEObject.eClass(), theEObject);
+	}
+
+	/**
+	 * 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
+	 */
+	protected T doSwitch(EClass theEClass, EObject theEObject) {
+		if (theEClass.eContainer() == modelPackage) {
+			return doSwitch(theEClass.getClassifierID(), theEObject);
+		} else {
+			List<EClass> eSuperTypes = theEClass.getESuperTypes();
+			return eSuperTypes.isEmpty() ? defaultCase(theEObject) : doSwitch(eSuperTypes.get(0), theEObject);
+		}
+	}
+
+	/**
+	 * 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
+	 */
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+		case ToolPalettePackage.TOOL_PALETTE: {
+			ToolPalette toolPalette = (ToolPalette) theEObject;
+			T result = caseToolPalette(toolPalette);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case ToolPalettePackage.ENTRY: {
+			Entry entry = (Entry) theEObject;
+			T result = caseEntry(entry);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		default:
+			return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Tool Palette</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>Tool Palette</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseToolPalette(ToolPalette object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Entry</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>Entry</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseEntry(Entry 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
+	 */
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} // ToolPaletteSwitch
diff --git a/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/util/ImageHelper.java b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/util/ImageHelper.java
new file mode 100755
index 0000000..c9a8bac
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.vex/src/org/eclipse/xwt/vex/util/ImageHelper.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.vex.util;
+
+import java.io.File;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.xwt.vex.palette.PaletteResourceManager;
+
+/**
+ * @author BOB
+ * 
+ */
+public class ImageHelper {
+
+	/**
+	 * Create ImageDescriptor of given path. Load images from extension registry.
+	 */
+	public static ImageDescriptor getImageDescriptor(PaletteResourceManager tResourceManager, String iconPath) {
+		if (tResourceManager == null || iconPath == null) {
+			return null;
+		}
+		if (iconPath.startsWith("/")) {
+			iconPath = iconPath.substring(1);
+		}
+		URI registryPath = tResourceManager.getIconsPath();
+		String newIconPath = registryPath.toString() + iconPath;
+		URL url;
+		try {
+			File file = new File(iconPath);
+			if (file.exists()) {
+				// try customize component first
+				url = file.toURL();
+			} else {
+				// if don't work, try system component then
+				url = new URL(newIconPath);
+			}
+			ImageDescriptor imageDescriptor = ImageDescriptor.createFromURL(url);
+			if (imageDescriptor.getImageData() != null) {
+				return imageDescriptor;
+			} else {
+				return null;
+			}
+
+		} catch (MalformedURLException e) {
+			// if both don't work, return null
+			return null;
+		}
+	}
+
+}
diff --git a/org.eclipse.xwt.tools.ui.workbench/.classpath b/plugins/org.eclipse.xwt.tools.ui.workbench/.classpath
similarity index 100%
rename from org.eclipse.xwt.tools.ui.workbench/.classpath
rename to plugins/org.eclipse.xwt.tools.ui.workbench/.classpath
diff --git a/org.eclipse.xwt.tools.ui.workbench/.gitignore b/plugins/org.eclipse.xwt.tools.ui.workbench/.gitignore
similarity index 100%
rename from org.eclipse.xwt.tools.ui.workbench/.gitignore
rename to plugins/org.eclipse.xwt.tools.ui.workbench/.gitignore
diff --git a/org.eclipse.xwt.tools.ui.workbench/.project b/plugins/org.eclipse.xwt.tools.ui.workbench/.project
similarity index 100%
rename from org.eclipse.xwt.tools.ui.workbench/.project
rename to plugins/org.eclipse.xwt.tools.ui.workbench/.project
diff --git a/org.eclipse.xwt.tools.ui.workbench/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.xwt.tools.ui.workbench/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
rename from org.eclipse.xwt.tools.ui.workbench/.settings/org.eclipse.jdt.core.prefs
rename to plugins/org.eclipse.xwt.tools.ui.workbench/.settings/org.eclipse.jdt.core.prefs
diff --git a/org.eclipse.xwt.tools.ui.workbench/META-INF/MANIFEST.MF b/plugins/org.eclipse.xwt.tools.ui.workbench/META-INF/MANIFEST.MF
similarity index 100%
rename from org.eclipse.xwt.tools.ui.workbench/META-INF/MANIFEST.MF
rename to plugins/org.eclipse.xwt.tools.ui.workbench/META-INF/MANIFEST.MF
diff --git a/org.eclipse.xwt.tools.ui.workbench/build.properties b/plugins/org.eclipse.xwt.tools.ui.workbench/build.properties
similarity index 100%
rename from org.eclipse.xwt.tools.ui.workbench/build.properties
rename to plugins/org.eclipse.xwt.tools.ui.workbench/build.properties
diff --git a/org.eclipse.xwt.tools.ui.workbench/icons/full/obj16/Editor.gif b/plugins/org.eclipse.xwt.tools.ui.workbench/icons/full/obj16/Editor.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.workbench/icons/full/obj16/Editor.gif
rename to plugins/org.eclipse.xwt.tools.ui.workbench/icons/full/obj16/Editor.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.workbench/icons/full/obj16/Part.gif b/plugins/org.eclipse.xwt.tools.ui.workbench/icons/full/obj16/Part.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.workbench/icons/full/obj16/Part.gif
rename to plugins/org.eclipse.xwt.tools.ui.workbench/icons/full/obj16/Part.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.workbench/icons/full/obj16/SaveablePart.gif b/plugins/org.eclipse.xwt.tools.ui.workbench/icons/full/obj16/SaveablePart.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui.workbench/icons/full/obj16/SaveablePart.gif
rename to plugins/org.eclipse.xwt.tools.ui.workbench/icons/full/obj16/SaveablePart.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui.workbench/model/workbench.ecd b/plugins/org.eclipse.xwt.tools.ui.workbench/model/workbench.ecd
similarity index 100%
rename from org.eclipse.xwt.tools.ui.workbench/model/workbench.ecd
rename to plugins/org.eclipse.xwt.tools.ui.workbench/model/workbench.ecd
diff --git a/org.eclipse.xwt.tools.ui.workbench/model/workbench.ecore b/plugins/org.eclipse.xwt.tools.ui.workbench/model/workbench.ecore
similarity index 100%
rename from org.eclipse.xwt.tools.ui.workbench/model/workbench.ecore
rename to plugins/org.eclipse.xwt.tools.ui.workbench/model/workbench.ecore
diff --git a/org.eclipse.xwt.tools.ui.workbench/model/workbench.genmodel b/plugins/org.eclipse.xwt.tools.ui.workbench/model/workbench.genmodel
similarity index 100%
rename from org.eclipse.xwt.tools.ui.workbench/model/workbench.genmodel
rename to plugins/org.eclipse.xwt.tools.ui.workbench/model/workbench.genmodel
diff --git a/org.eclipse.xwt.tools.ui.workbench/palette/e4XWT.palette b/plugins/org.eclipse.xwt.tools.ui.workbench/palette/e4XWT.palette
similarity index 100%
rename from org.eclipse.xwt.tools.ui.workbench/palette/e4XWT.palette
rename to plugins/org.eclipse.xwt.tools.ui.workbench/palette/e4XWT.palette
diff --git a/org.eclipse.xwt.tools.ui.workbench/plugin.properties b/plugins/org.eclipse.xwt.tools.ui.workbench/plugin.properties
similarity index 100%
rename from org.eclipse.xwt.tools.ui.workbench/plugin.properties
rename to plugins/org.eclipse.xwt.tools.ui.workbench/plugin.properties
diff --git a/org.eclipse.xwt.tools.ui.workbench/plugin.xml b/plugins/org.eclipse.xwt.tools.ui.workbench/plugin.xml
similarity index 100%
rename from org.eclipse.xwt.tools.ui.workbench/plugin.xml
rename to plugins/org.eclipse.xwt.tools.ui.workbench/plugin.xml
diff --git a/plugins/org.eclipse.xwt.tools.ui.workbench/pom.xml b/plugins/org.eclipse.xwt.tools.ui.workbench/pom.xml
new file mode 100755
index 0000000..408d7a6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.workbench/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-plugins</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt.tools.ui.workbench</artifactId>
+	<version>0.10.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+</project>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/WorkbenchFactory.java b/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/WorkbenchFactory.java
new file mode 100755
index 0000000..abbab43
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/WorkbenchFactory.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.model.workbench;
+
+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.xwt.tools.ui.model.workbench.WorkbenchPackage
+ * @generated
+ */
+public interface WorkbenchFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	WorkbenchFactory eINSTANCE = org.eclipse.xwt.tools.ui.model.workbench.impl.WorkbenchFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>XWT Part Initializer</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>XWT Part Initializer</em>'.
+	 * @generated
+	 */
+	XWTPartInitializer createXWTPartInitializer();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	WorkbenchPackage getWorkbenchPackage();
+
+} //WorkbenchFactory
diff --git a/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/WorkbenchPackage.java b/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/WorkbenchPackage.java
new file mode 100755
index 0000000..db2948b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/WorkbenchPackage.java
@@ -0,0 +1,169 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.model.workbench;
+
+import org.eclipse.xwt.tools.ui.palette.PalettePackage;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+/**
+ * <!-- 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.xwt.tools.ui.model.workbench.WorkbenchFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface WorkbenchPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "workbench";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http://www.eclipse.org/e4/xwt/workbench/desiger";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "wb";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	WorkbenchPackage eINSTANCE = org.eclipse.xwt.tools.ui.model.workbench.impl.WorkbenchPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.xwt.tools.ui.model.workbench.impl.XWTPartInitializerImpl <em>XWT Part Initializer</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.xwt.tools.ui.model.workbench.impl.XWTPartInitializerImpl
+	 * @see org.eclipse.xwt.tools.ui.model.workbench.impl.WorkbenchPackageImpl#getXWTPartInitializer()
+	 * @generated
+	 */
+	int XWT_PART_INITIALIZER = 0;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XWT_PART_INITIALIZER__ID = PalettePackage.INITIALIZER__ID;
+
+	/**
+	 * The feature id for the '<em><b>Content Form</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XWT_PART_INITIALIZER__CONTENT_FORM = PalettePackage.INITIALIZER_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>XWT Part Initializer</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XWT_PART_INITIALIZER_FEATURE_COUNT = PalettePackage.INITIALIZER_FEATURE_COUNT + 1;
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.xwt.tools.ui.model.workbench.XWTPartInitializer <em>XWT Part Initializer</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>XWT Part Initializer</em>'.
+	 * @see org.eclipse.xwt.tools.ui.model.workbench.XWTPartInitializer
+	 * @generated
+	 */
+	EClass getXWTPartInitializer();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.model.workbench.XWTPartInitializer#getContentForm <em>Content Form</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Content Form</em>'.
+	 * @see org.eclipse.xwt.tools.ui.model.workbench.XWTPartInitializer#getContentForm()
+	 * @see #getXWTPartInitializer()
+	 * @generated
+	 */
+	EAttribute getXWTPartInitializer_ContentForm();
+
+	/**
+	 * 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
+	 */
+	WorkbenchFactory getWorkbenchFactory();
+
+	/**
+	 * <!-- 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.xwt.tools.ui.model.workbench.impl.XWTPartInitializerImpl <em>XWT Part Initializer</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.xwt.tools.ui.model.workbench.impl.XWTPartInitializerImpl
+		 * @see org.eclipse.xwt.tools.ui.model.workbench.impl.WorkbenchPackageImpl#getXWTPartInitializer()
+		 * @generated
+		 */
+		EClass XWT_PART_INITIALIZER = eINSTANCE.getXWTPartInitializer();
+
+		/**
+		 * The meta object literal for the '<em><b>Content Form</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute XWT_PART_INITIALIZER__CONTENT_FORM = eINSTANCE.getXWTPartInitializer_ContentForm();
+
+	}
+
+} //WorkbenchPackage
diff --git a/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/XWTPartInitializer.java b/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/XWTPartInitializer.java
similarity index 100%
rename from org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/XWTPartInitializer.java
rename to plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/XWTPartInitializer.java
diff --git a/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/impl/WorkbenchFactoryImpl.java b/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/impl/WorkbenchFactoryImpl.java
new file mode 100755
index 0000000..c6e3a43
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/impl/WorkbenchFactoryImpl.java
@@ -0,0 +1,105 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.model.workbench.impl;
+
+import org.eclipse.xwt.tools.ui.model.workbench.*;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class WorkbenchFactoryImpl extends EFactoryImpl implements WorkbenchFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static WorkbenchFactory init() {
+		try {
+			WorkbenchFactory theWorkbenchFactory = (WorkbenchFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/e4/xwt/workbench/desiger"); 
+			if (theWorkbenchFactory != null) {
+				return theWorkbenchFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new WorkbenchFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public WorkbenchFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case WorkbenchPackage.XWT_PART_INITIALIZER: return createXWTPartInitializer();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public XWTPartInitializer createXWTPartInitializer() {
+		XWTPartInitializerImpl xwtPartInitializer = new XWTPartInitializerImpl();
+		return xwtPartInitializer;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public WorkbenchPackage getWorkbenchPackage() {
+		return (WorkbenchPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static WorkbenchPackage getPackage() {
+		return WorkbenchPackage.eINSTANCE;
+	}
+
+} //WorkbenchFactoryImpl
diff --git a/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/impl/WorkbenchPackageImpl.java b/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/impl/WorkbenchPackageImpl.java
new file mode 100755
index 0000000..2073ef5
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/impl/WorkbenchPackageImpl.java
@@ -0,0 +1,196 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.model.workbench.impl;
+
+import org.eclipse.xwt.tools.ui.model.workbench.WorkbenchFactory;
+import org.eclipse.xwt.tools.ui.model.workbench.WorkbenchPackage;
+
+import org.eclipse.xwt.tools.ui.model.workbench.XWTPartInitializer;
+import org.eclipse.xwt.tools.ui.palette.PalettePackage;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class WorkbenchPackageImpl extends EPackageImpl implements WorkbenchPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass xwtPartInitializerEClass = 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.xwt.tools.ui.model.workbench.WorkbenchPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private WorkbenchPackageImpl() {
+		super(eNS_URI, WorkbenchFactory.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 WorkbenchPackage#eINSTANCE} when that field is accessed.
+	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static WorkbenchPackage init() {
+		if (isInited) return (WorkbenchPackage)EPackage.Registry.INSTANCE.getEPackage(WorkbenchPackage.eNS_URI);
+
+		// Obtain or create and register package
+		WorkbenchPackageImpl theWorkbenchPackage = (WorkbenchPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof WorkbenchPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new WorkbenchPackageImpl());
+
+		isInited = true;
+
+		// Initialize simple dependencies
+		PalettePackage.eINSTANCE.eClass();
+
+		// Create package meta-data objects
+		theWorkbenchPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theWorkbenchPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theWorkbenchPackage.freeze();
+
+  
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(WorkbenchPackage.eNS_URI, theWorkbenchPackage);
+		return theWorkbenchPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getXWTPartInitializer() {
+		return xwtPartInitializerEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getXWTPartInitializer_ContentForm() {
+		return (EAttribute)xwtPartInitializerEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public WorkbenchFactory getWorkbenchFactory() {
+		return (WorkbenchFactory)getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
+
+		// Create classes and their features
+		xwtPartInitializerEClass = createEClass(XWT_PART_INITIALIZER);
+		createEAttribute(xwtPartInitializerEClass, XWT_PART_INITIALIZER__CONTENT_FORM);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		PalettePackage thePalettePackage = (PalettePackage)EPackage.Registry.INSTANCE.getEPackage(PalettePackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+		xwtPartInitializerEClass.getESuperTypes().add(thePalettePackage.getInitializer());
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(xwtPartInitializerEClass, XWTPartInitializer.class, "XWTPartInitializer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getXWTPartInitializer_ContentForm(), ecorePackage.getEString(), "contentForm", null, 0, 1, XWTPartInitializer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} //WorkbenchPackageImpl
diff --git a/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/impl/XWTPartInitializerImpl.java b/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/impl/XWTPartInitializerImpl.java
new file mode 100755
index 0000000..5e6761e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/impl/XWTPartInitializerImpl.java
@@ -0,0 +1,221 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.model.workbench.impl;
+
+import org.eclipse.xwt.tools.ui.model.workbench.WorkbenchPackage;
+import org.eclipse.xwt.tools.ui.model.workbench.XWTPartInitializer;
+import org.eclipse.xwt.tools.ui.palette.Entry;
+import org.eclipse.xwt.tools.ui.palette.impl.InitializerImpl;
+import org.eclipse.xwt.tools.ui.workbench.PartInitializerAction;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>XWT Part Initializer</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>
+ * {@link org.eclipse.xwt.tools.ui.model.workbench.impl.XWTPartInitializerImpl#getContentForm
+ * <em>Content Form</em>}</li>
+ * </ul>
+ * </p>
+ * 
+ * @generated
+ */
+public class XWTPartInitializerImpl extends InitializerImpl implements XWTPartInitializer {
+	private PartInitializerAction action;
+
+	/**
+	 * The default value of the '{@link #getContentForm() <em>Content Form</em>}
+	 * ' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getContentForm()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String CONTENT_FORM_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getContentForm() <em>Content Form</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getContentForm()
+	 * @generated
+	 * @ordered
+	 */
+	protected String contentForm = CONTENT_FORM_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected XWTPartInitializerImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return WorkbenchPackage.Literals.XWT_PART_INITIALIZER;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public String getContentForm() {
+		return contentForm;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setContentForm(String newContentForm) {
+		String oldContentForm = contentForm;
+		contentForm = newContentForm;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					WorkbenchPackage.XWT_PART_INITIALIZER__CONTENT_FORM, oldContentForm,
+					contentForm));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case WorkbenchPackage.XWT_PART_INITIALIZER__CONTENT_FORM:
+			return getContentForm();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case WorkbenchPackage.XWT_PART_INITIALIZER__CONTENT_FORM:
+			setContentForm((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case WorkbenchPackage.XWT_PART_INITIALIZER__CONTENT_FORM:
+			setContentForm(CONTENT_FORM_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case WorkbenchPackage.XWT_PART_INITIALIZER__CONTENT_FORM:
+			return CONTENT_FORM_EDEFAULT == null ? contentForm != null : !CONTENT_FORM_EDEFAULT
+					.equals(contentForm);
+		}
+		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(" (contentForm: ");
+		result.append(contentForm);
+		result.append(')');
+		return result.toString();
+	}
+
+	public boolean initialize(Object element) {
+		if (action == null) {
+			action = new PartInitializerAction(loadClass());
+		}
+		return action.run(element);
+	}
+
+	protected Class<?> loadClass() {
+		try {
+			String contentForm = getContentForm();
+			return getClass().getClassLoader().loadClass(contentForm);
+		} catch (ClassNotFoundException e) {
+			throw new RuntimeException(e);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.tools.ui.palette.impl.InitializerImpl#parse(org.eclipse
+	 * .e4.xwt.tools.ui.palette.Entry)
+	 */
+	@Override
+	public Object parse(Entry entry) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.tools.ui.palette.impl.InitializerImpl#initialize(org
+	 * .eclipse.e4.xwt.tools.ui.palette.Entry, java.lang.Object)
+	 */
+	@Override
+	public boolean initialize(Entry entry, Object newObject) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+} // XWTPartInitializerImpl
diff --git a/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/util/WorkbenchAdapterFactory.java b/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/util/WorkbenchAdapterFactory.java
new file mode 100755
index 0000000..cb8b4ca
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/util/WorkbenchAdapterFactory.java
@@ -0,0 +1,150 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.model.workbench.util;
+
+import org.eclipse.xwt.tools.ui.model.workbench.*;
+
+import org.eclipse.xwt.tools.ui.palette.Initializer;
+
+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;
+
+/**
+ * <!-- 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.xwt.tools.ui.model.workbench.WorkbenchPackage
+ * @generated
+ */
+public class WorkbenchAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static WorkbenchPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public WorkbenchAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = WorkbenchPackage.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 WorkbenchSwitch<Adapter> modelSwitch =
+		new WorkbenchSwitch<Adapter>() {
+			@Override
+			public Adapter caseXWTPartInitializer(XWTPartInitializer object) {
+				return createXWTPartInitializerAdapter();
+			}
+			@Override
+			public Adapter caseInitializer(Initializer object) {
+				return createInitializerAdapter();
+			}
+			@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.xwt.tools.ui.model.workbench.XWTPartInitializer <em>XWT Part Initializer</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.xwt.tools.ui.model.workbench.XWTPartInitializer
+	 * @generated
+	 */
+	public Adapter createXWTPartInitializerAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.xwt.tools.ui.palette.Initializer <em>Initializer</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.xwt.tools.ui.palette.Initializer
+	 * @generated
+	 */
+	public Adapter createInitializerAdapter() {
+		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;
+	}
+
+} //WorkbenchAdapterFactory
diff --git a/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/util/WorkbenchSwitch.java b/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/util/WorkbenchSwitch.java
new file mode 100755
index 0000000..9357daf
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/model/workbench/util/WorkbenchSwitch.java
@@ -0,0 +1,154 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.model.workbench.util;
+
+import java.util.List;
+
+import org.eclipse.xwt.tools.ui.model.workbench.*;
+
+import org.eclipse.xwt.tools.ui.palette.Initializer;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- 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.xwt.tools.ui.model.workbench.WorkbenchPackage
+ * @generated
+ */
+public class WorkbenchSwitch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static WorkbenchPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public WorkbenchSwitch() {
+		if (modelPackage == null) {
+			modelPackage = WorkbenchPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * 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
+	 */
+	public T doSwitch(EObject theEObject) {
+		return doSwitch(theEObject.eClass(), theEObject);
+	}
+
+	/**
+	 * 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
+	 */
+	protected T doSwitch(EClass theEClass, EObject theEObject) {
+		if (theEClass.eContainer() == modelPackage) {
+			return doSwitch(theEClass.getClassifierID(), theEObject);
+		}
+		else {
+			List<EClass> eSuperTypes = theEClass.getESuperTypes();
+			return
+				eSuperTypes.isEmpty() ?
+					defaultCase(theEObject) :
+					doSwitch(eSuperTypes.get(0), theEObject);
+		}
+	}
+
+	/**
+	 * 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
+	 */
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case WorkbenchPackage.XWT_PART_INITIALIZER: {
+				XWTPartInitializer xwtPartInitializer = (XWTPartInitializer)theEObject;
+				T result = caseXWTPartInitializer(xwtPartInitializer);
+				if (result == null) result = caseInitializer(xwtPartInitializer);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>XWT Part Initializer</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>XWT Part Initializer</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseXWTPartInitializer(XWTPartInitializer object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Initializer</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>Initializer</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseInitializer(Initializer 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
+	 */
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} //WorkbenchSwitch
diff --git a/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/Activator.java b/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/Activator.java
new file mode 100755
index 0000000..51b918d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/Activator.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.workbench;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+	// The plug-in ID
+	public static final String PLUGIN_ID = "org.eclipse.xwt.tools.ui.workbench"; //$NON-NLS-1$
+
+	// The shared instance
+	private static Activator plugin;
+	
+	/**
+	 * The constructor
+	 */
+	public Activator() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+	 */
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+	 */
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance
+	 *
+	 * @return the shared instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/PartInitializerAction.java b/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/PartInitializerAction.java
new file mode 100755
index 0000000..96a027c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/PartInitializerAction.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.workbench;
+
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.xwt.jface.XWTTitleAreaDialog;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+
+/**
+ * 
+ * @author yyang <yves.yang@soyatec.com>
+ */
+public class PartInitializerAction {
+	private Class<?> cls;
+
+	public PartInitializerAction(Class<?> cls) {
+		this.cls = cls;
+	}
+
+	public boolean run(Object element) {
+		if (!(element instanceof MPart)) {
+			return false;
+		}
+		XWTTitleAreaDialog dialog = new XWTTitleAreaDialog(getCurrentShell(),
+				cls, element);
+		return (dialog.open() == Window.OK);
+	}
+
+	protected Shell getCurrentShell() {
+		Display display = Display.getCurrent();
+		if (display == null) {
+			display = Display.getDefault();
+		}
+		Shell shell = Display.getDefault().getActiveShell();
+		if (shell != null) {
+			return shell;
+		}
+		IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench()
+				.getActiveWorkbenchWindow();
+		if (workbenchWindow != null) {
+			return workbenchWindow.getShell();
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/PartInitializerForm.java b/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/PartInitializerForm.java
new file mode 100755
index 0000000..13fa00d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/PartInitializerForm.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.workbench;
+
+import org.eclipse.xwt.XWT;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+
+public class PartInitializerForm extends Composite {
+
+	public PartInitializerForm(Composite parent, int style) {
+		super(parent, style);
+	}
+	
+	protected void onLoaded(Object sent, Event event) {
+		EObject object = (EObject) XWT.getDataContext(this); 
+		if (object == null) {
+			return;
+		}
+		URI uri = object.eResource().getURI();
+		System.out.println(uri.toString());
+	}
+}
+ 
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/PartInitializerForm.xwt b/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/PartInitializerForm.xwt
similarity index 100%
rename from org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/PartInitializerForm.xwt
rename to plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/PartInitializerForm.xwt
diff --git a/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/StaticPartInitializerForm.java b/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/StaticPartInitializerForm.java
new file mode 100755
index 0000000..9384aa5
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/StaticPartInitializerForm.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.workbench;
+
+import org.eclipse.xwt.XWT;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+
+public class StaticPartInitializerForm extends Composite {
+
+	public StaticPartInitializerForm(Composite parent, int style) {
+		super(parent, style);
+	}
+	
+	protected void onLoaded(Object sent, Event event) {
+		EObject object = (EObject) XWT.getDataContext(this); 
+		if (object == null) {
+			return;
+		}
+		URI uri = object.eResource().getURI();
+		System.out.println(uri.toString());
+	}
+}
+ 
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/StaticPartInitializerForm.xwt b/plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/StaticPartInitializerForm.xwt
similarity index 100%
rename from org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/StaticPartInitializerForm.xwt
rename to plugins/org.eclipse.xwt.tools.ui.workbench/src/org/eclipse/xwt/tools/ui/workbench/StaticPartInitializerForm.xwt
diff --git a/org.eclipse.xwt.tools.ui.xaml/.classpath b/plugins/org.eclipse.xwt.tools.ui.xaml/.classpath
similarity index 100%
rename from org.eclipse.xwt.tools.ui.xaml/.classpath
rename to plugins/org.eclipse.xwt.tools.ui.xaml/.classpath
diff --git a/org.eclipse.xwt.tools.ui.xaml/.gitignore b/plugins/org.eclipse.xwt.tools.ui.xaml/.gitignore
similarity index 100%
rename from org.eclipse.xwt.tools.ui.xaml/.gitignore
rename to plugins/org.eclipse.xwt.tools.ui.xaml/.gitignore
diff --git a/org.eclipse.xwt.tools.ui.xaml/.project b/plugins/org.eclipse.xwt.tools.ui.xaml/.project
similarity index 100%
rename from org.eclipse.xwt.tools.ui.xaml/.project
rename to plugins/org.eclipse.xwt.tools.ui.xaml/.project
diff --git a/org.eclipse.xwt.tools.ui.xaml/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.xwt.tools.ui.xaml/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
rename from org.eclipse.xwt.tools.ui.xaml/.settings/org.eclipse.jdt.core.prefs
rename to plugins/org.eclipse.xwt.tools.ui.xaml/.settings/org.eclipse.jdt.core.prefs
diff --git a/org.eclipse.xwt.tools.ui.xaml/META-INF/MANIFEST.MF b/plugins/org.eclipse.xwt.tools.ui.xaml/META-INF/MANIFEST.MF
similarity index 100%
rename from org.eclipse.xwt.tools.ui.xaml/META-INF/MANIFEST.MF
rename to plugins/org.eclipse.xwt.tools.ui.xaml/META-INF/MANIFEST.MF
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/build.properties b/plugins/org.eclipse.xwt.tools.ui.xaml/build.properties
new file mode 100755
index 0000000..812e327
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/build.properties
@@ -0,0 +1,35 @@
+###############################################################################
+# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     Soyatec - initial API and implementation
+###############################################################################
+
+# <copyright>
+# </copyright>
+#
+# $Id: build.properties,v 1.2 2010/06/18 00:16:29 yvyang Exp $
+
+bin.includes = .,\
+               META-INF/,\
+               plugin.xml,\
+               plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
+src.includes = templates/,\
+               src/,\
+               plugin.xml,\
+               plugin.properties,\
+               model/,\
+               build.properties,\
+               META-INF/,\
+               .settings/,\
+               .project,\
+               .classpath
diff --git a/org.eclipse.xwt.tools.ui.xaml/model/Ecore.ecore b/plugins/org.eclipse.xwt.tools.ui.xaml/model/Ecore.ecore
similarity index 100%
rename from org.eclipse.xwt.tools.ui.xaml/model/Ecore.ecore
rename to plugins/org.eclipse.xwt.tools.ui.xaml/model/Ecore.ecore
diff --git a/org.eclipse.xwt.tools.ui.xaml/model/xaml.ecore b/plugins/org.eclipse.xwt.tools.ui.xaml/model/xaml.ecore
similarity index 100%
rename from org.eclipse.xwt.tools.ui.xaml/model/xaml.ecore
rename to plugins/org.eclipse.xwt.tools.ui.xaml/model/xaml.ecore
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/model/xaml.genmodel b/plugins/org.eclipse.xwt.tools.ui.xaml/model/xaml.genmodel
new file mode 100755
index 0000000..5c631ce
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/model/xaml.genmodel
@@ -0,0 +1,86 @@
+<?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" copyrightText="Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.&#xD;&#xA; All rights reserved. This program and the accompanying materials&#xD;&#xA; are made available under the terms of the Eclipse Public License 2.0&#xD;&#xA; which accompanies this distribution, and is available at&#xD;&#xA; https://www.eclipse.org/legal/epl-2.0/&#xD;&#xA;&#xD;&#xA;SPDX-License-Identifier: EPL-2.0&#xD;&#xA; &#xD;&#xA; Contributors:&#xD;&#xA;     Soyatec - initial API and implementation"
+    modelDirectory="/org.eclipse.xwt.tools.ui.xaml/src" creationIcons="false" modelPluginID="org.eclipse.xwt.tools.ui.xaml"
+    templateDirectory="" redirection="" modelName="Xaml" modelPluginClass="" codeFormatting="true"
+    importerID="org.eclipse.emf.importer.ecore" complianceLevel="6.0" copyrightFields="false"
+    usedGenPackages="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore">
+  <foreignModel>xaml.ecore</foreignModel>
+  <genPackages prefix="Xaml" basePackage="org.eclipse.xwt.tools.ui" disposableProviderFactory="true"
+      ecorePackage="xaml.ecore#/">
+    <genDataTypes ecoreDataType="xaml.ecore#//Node"/>
+    <genDataTypes ecoreDataType="xaml.ecore#//Document"/>
+    <genClasses ecoreClass="xaml.ecore#//XamlDocument">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference xaml.ecore#//XamlDocument/rootElement"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference xaml.ecore#//XamlDocument/declaredNamespaces"/>
+      <genOperations ecoreOperation="xaml.ecore#//XamlDocument/addDeclaredNamespace">
+        <genParameters ecoreParameter="xaml.ecore#//XamlDocument/addDeclaredNamespace/prefix"/>
+        <genParameters ecoreParameter="xaml.ecore#//XamlDocument/addDeclaredNamespace/namespace"/>
+      </genOperations>
+      <genOperations ecoreOperation="xaml.ecore#//XamlDocument/getDeclaredNamespace">
+        <genParameters ecoreParameter="xaml.ecore#//XamlDocument/getDeclaredNamespace/prefix"/>
+      </genOperations>
+    </genClasses>
+    <genClasses ecoreClass="xaml.ecore#//AnnotatedObject">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference xaml.ecore#//AnnotatedObject/annotations"/>
+      <genOperations ecoreOperation="xaml.ecore#//AnnotatedObject/getAnnotation">
+        <genParameters ecoreParameter="xaml.ecore#//AnnotatedObject/getAnnotation/source"/>
+      </genOperations>
+    </genClasses>
+    <genClasses image="false" ecoreClass="xaml.ecore#//XamlNode">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute xaml.ecore#//XamlNode/name"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute xaml.ecore#//XamlNode/prefix"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute xaml.ecore#//XamlNode/namespace"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute xaml.ecore#//XamlNode/value"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference xaml.ecore#//XamlNode/childNodes"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference xaml.ecore#//XamlNode/attributes"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute xaml.ecore#//XamlNode/id"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference xaml.ecore#//XamlNode/comments"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute xaml.ecore#//XamlNode/widget"/>
+      <genOperations ecoreOperation="xaml.ecore#//XamlNode/getAttribute">
+        <genParameters ecoreParameter="xaml.ecore#//XamlNode/getAttribute/name"/>
+        <genParameters ecoreParameter="xaml.ecore#//XamlNode/getAttribute/namespace"/>
+      </genOperations>
+      <genOperations ecoreOperation="xaml.ecore#//XamlNode/getAttribute.1">
+        <genParameters ecoreParameter="xaml.ecore#//XamlNode/getAttribute.1/name"/>
+      </genOperations>
+      <genOperations ecoreOperation="xaml.ecore#//XamlNode/getChild">
+        <genParameters ecoreParameter="xaml.ecore#//XamlNode/getChild/name"/>
+        <genParameters ecoreParameter="xaml.ecore#//XamlNode/getChild/namespace"/>
+      </genOperations>
+      <genOperations ecoreOperation="xaml.ecore#//XamlNode/getChild.1">
+        <genParameters ecoreParameter="xaml.ecore#//XamlNode/getChild.1/name"/>
+      </genOperations>
+      <genOperations ecoreOperation="xaml.ecore#//XamlNode/getChild.2">
+        <genParameters ecoreParameter="xaml.ecore#//XamlNode/getChild.2/index"/>
+      </genOperations>
+      <genOperations ecoreOperation="xaml.ecore#//XamlNode/getOwnerDocument"/>
+      <genOperations ecoreOperation="xaml.ecore#//XamlNode/attributeNames"/>
+      <genOperations ecoreOperation="xaml.ecore#//XamlNode/attributeNames.1">
+        <genParameters ecoreParameter="xaml.ecore#//XamlNode/attributeNames.1/namespace"/>
+      </genOperations>
+      <genOperations ecoreOperation="xaml.ecore#//XamlNode/attributeNamespaces"/>
+      <genOperations ecoreOperation="xaml.ecore#//XamlNode/getParent"/>
+      <genOperations ecoreOperation="xaml.ecore#//XamlNode/generate">
+        <genParameters ecoreParameter="xaml.ecore#//XamlNode/generate/document"/>
+        <genParameters ecoreParameter="xaml.ecore#//XamlNode/generate/options"/>
+      </genOperations>
+      <genOperations ecoreOperation="xaml.ecore#//XamlNode/getFlatValue"/>
+    </genClasses>
+    <genClasses ecoreClass="xaml.ecore#//XamlElement"/>
+    <genClasses ecoreClass="xaml.ecore#//XamlAttribute">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute xaml.ecore#//XamlAttribute/useFlatValue"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute xaml.ecore#//XamlAttribute/groupName"/>
+    </genClasses>
+    <genClasses ecoreClass="xaml.ecore#//Annotation">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute xaml.ecore#//Annotation/source"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference xaml.ecore#//Annotation/details"/>
+    </genClasses>
+    <genClasses ecoreClass="xaml.ecore#//Comment">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute xaml.ecore#//Comment/content"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference xaml.ecore#//Comment/prev"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference xaml.ecore#//Comment/next"/>
+    </genClasses>
+  </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/plugin.properties b/plugins/org.eclipse.xwt.tools.ui.xaml/plugin.properties
new file mode 100755
index 0000000..bae9943
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/plugin.properties
@@ -0,0 +1,20 @@
+###############################################################################
+# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     Soyatec - initial API and implementation
+###############################################################################
+
+# <copyright>
+# </copyright>
+#
+# $Id: plugin.properties,v 1.2 2010/06/18 00:16:29 yvyang Exp $
+
+pluginName = XAML Model (Incubation)
+providerName = Eclipse.org
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/plugin.xml b/plugins/org.eclipse.xwt.tools.ui.xaml/plugin.xml
new file mode 100755
index 0000000..e637dd4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/plugin.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+    Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+    All rights reserved. This program and the accompanying materials
+    are made available under the terms of the Eclipse Public License 2.0
+    which accompanies this distribution, and is available at
+    https://www.eclipse.org/legal/epl-2.0/
+
+    SPDX-License-Identifier: EPL-2.0
+   
+    Contributors:
+        Soyatec - initial API and implementation
+ -->
+
+<plugin>
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <package
+            uri="http://www.eclipse.org/e4/xwt/tools/designer/xaml"
+            class="org.eclipse.xwt.tools.ui.xaml.XamlPackage"
+            genModel="model/xaml.genmodel"/>
+   </extension>
+</plugin>
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/pom.xml b/plugins/org.eclipse.xwt.tools.ui.xaml/pom.xml
new file mode 100755
index 0000000..dc1c86e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-plugins</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt.tools.ui.xaml</artifactId>
+	<version>0.10.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+</project>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/AnnotatedObject.java b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/AnnotatedObject.java
new file mode 100755
index 0000000..604e4e6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/AnnotatedObject.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.xaml;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Annotated Object</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.AnnotatedObject#getAnnotations <em>Annotations</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getAnnotatedObject()
+ * @model
+ * @generated
+ */
+public interface AnnotatedObject extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Annotations</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.xwt.tools.ui.xaml.Annotation}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Annotations</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>Annotations</em>' containment reference list.
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getAnnotatedObject_Annotations()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<Annotation> getAnnotations();
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	Annotation getAnnotation(String source);
+
+} // AnnotatedObject
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/Annotation.java b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/Annotation.java
new file mode 100755
index 0000000..dfa7e6c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/Annotation.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.xaml;
+
+import org.eclipse.emf.common.util.EMap;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Annotation</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.Annotation#getSource <em>Source</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.Annotation#getDetails <em>Details</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getAnnotation()
+ * @model
+ * @generated
+ */
+public interface Annotation extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Source</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Source</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Source</em>' attribute.
+	 * @see #setSource(String)
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getAnnotation_Source()
+	 * @model
+	 * @generated
+	 */
+	String getSource();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.xaml.Annotation#getSource <em>Source</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Source</em>' attribute.
+	 * @see #getSource()
+	 * @generated
+	 */
+	void setSource(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Details</b></em>' map.
+	 * The key is of type {@link java.lang.String},
+	 * and the value is of type {@link java.lang.String},
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Details</em>' map isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Details</em>' map.
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getAnnotation_Details()
+	 * @model mapType="org.eclipse.emf.ecore.EStringToStringMapEntry<org.eclipse.emf.ecore.EString, org.eclipse.emf.ecore.EString>"
+	 * @generated
+	 */
+	EMap<String, String> getDetails();
+
+} // Annotation
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/Comment.java b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/Comment.java
new file mode 100755
index 0000000..aa7c3ab
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/Comment.java
@@ -0,0 +1,106 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.xaml;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Comment</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.Comment#getContent <em>Content</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.Comment#getPrev <em>Prev</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.Comment#getNext <em>Next</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getComment()
+ * @model
+ * @generated
+ */
+public interface Comment extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Content</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Content</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Content</em>' attribute.
+	 * @see #setContent(String)
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getComment_Content()
+	 * @model
+	 * @generated
+	 */
+	String getContent();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.xaml.Comment#getContent <em>Content</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Content</em>' attribute.
+	 * @see #getContent()
+	 * @generated
+	 */
+	void setContent(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Prev</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Prev</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>Prev</em>' reference.
+	 * @see #setPrev(XamlNode)
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getComment_Prev()
+	 * @model
+	 * @generated
+	 */
+	XamlNode getPrev();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.xaml.Comment#getPrev <em>Prev</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Prev</em>' reference.
+	 * @see #getPrev()
+	 * @generated
+	 */
+	void setPrev(XamlNode value);
+
+	/**
+	 * Returns the value of the '<em><b>Next</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Next</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>Next</em>' reference.
+	 * @see #setNext(XamlNode)
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getComment_Next()
+	 * @model
+	 * @generated
+	 */
+	XamlNode getNext();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.xaml.Comment#getNext <em>Next</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Next</em>' reference.
+	 * @see #getNext()
+	 * @generated
+	 */
+	void setNext(XamlNode value);
+
+} // Comment
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlAttribute.java b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlAttribute.java
new file mode 100755
index 0000000..687eb18
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlAttribute.java
@@ -0,0 +1,91 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.xaml;
+
+/**
+ * 
+ *If <True>, the value of attribute should be generated like:
+ * 
+ *<code><Composite dataContext="{StaticResource myData}"></code>
+ * 
+ *otherwise if <False>, the value should be like:
+ * 
+ *<code>
+ * <Composite>
+ * 		<Composite.dataContext>
+ * 			<StaticResource>myData<StaticResource>
+ * 		</Composite.dataContext>
+ * </Composite>
+ * </code>
+ * 
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.xwt.tools.ui.xaml.XamlAttribute#isUseFlatValue <em>Use Flat Value</em>}</li>
+ * </ul>
+ * </p>
+ * 
+ * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlAttribute()
+ * @model
+ * @generated
+ */
+public interface XamlAttribute extends XamlNode {
+	/**
+	 * Returns the value of the '<em><b>Use Flat Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Use Flat 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>Use Flat Value</em>' attribute.
+	 * @see #setUseFlatValue(boolean)
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlAttribute_UseFlatValue()
+	 * @model
+	 * @generated
+	 */
+	boolean isUseFlatValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.xaml.XamlAttribute#isUseFlatValue <em>Use Flat Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Use Flat Value</em>' attribute.
+	 * @see #isUseFlatValue()
+	 * @generated
+	 */
+	void setUseFlatValue(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Group Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Group Name</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Group Name</em>' attribute.
+	 * @see #setGroupName(String)
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlAttribute_GroupName()
+	 * @model
+	 * @generated
+	 */
+	String getGroupName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.xaml.XamlAttribute#getGroupName <em>Group Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Group Name</em>' attribute.
+	 * @see #getGroupName()
+	 * @generated
+	 */
+	void setGroupName(String value);
+
+} // XamlAttribute
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlDocument.java b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlDocument.java
new file mode 100755
index 0000000..0eec76e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlDocument.java
@@ -0,0 +1,87 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.xaml;
+
+import org.eclipse.emf.common.util.EMap;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Document</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.XamlDocument#getRootElement <em>Root Element</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.XamlDocument#getDeclaredNamespaces <em>Declared Namespaces</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlDocument()
+ * @model
+ * @generated
+ */
+public interface XamlDocument extends AnnotatedObject {
+	/**
+	 * Returns the value of the '<em><b>Root Element</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Root Element</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 Element</em>' containment reference.
+	 * @see #setRootElement(XamlElement)
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlDocument_RootElement()
+	 * @model containment="true" required="true"
+	 * @generated
+	 */
+	XamlElement getRootElement();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.xaml.XamlDocument#getRootElement <em>Root Element</em>}' containment reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Root Element</em>' containment reference.
+	 * @see #getRootElement()
+	 * @generated
+	 */
+	void setRootElement(XamlElement value);
+
+	/**
+	 * Returns the value of the '<em><b>Declared Namespaces</b></em>' map.
+	 * The key is of type {@link java.lang.String},
+	 * and the value is of type {@link java.lang.String},
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Declared Namespaces</em>' map isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Declared Namespaces</em>' map.
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlDocument_DeclaredNamespaces()
+	 * @model mapType="org.eclipse.emf.ecore.EStringToStringMapEntry<org.eclipse.emf.ecore.EString, org.eclipse.emf.ecore.EString>"
+	 * @generated
+	 */
+	EMap<String, String> getDeclaredNamespaces();
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	void addDeclaredNamespace(String prefix, String namespace);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	String getDeclaredNamespace(String prefix);
+
+} // XamlDocument
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlElement.java b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlElement.java
new file mode 100755
index 0000000..0a5e152
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlElement.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.xaml;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Element</b></em>'. <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlElement()
+ * @model
+ * @generated
+ */
+public interface XamlElement extends XamlNode {
+
+} // XamlElement
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlFactory.java b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlFactory.java
new file mode 100755
index 0000000..1c62054
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlFactory.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.xaml;
+
+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.xwt.tools.ui.xaml.XamlPackage
+ * @generated
+ */
+public interface XamlFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * @generated
+	 */
+	XamlFactory eINSTANCE = org.eclipse.xwt.tools.ui.xaml.impl.XamlFactoryImpl
+			.init();
+
+	/**
+	 * Returns a new object of class '<em>Document</em>'.
+	 * <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * @return a new object of class '<em>Document</em>'.
+	 * @generated
+	 */
+	XamlDocument createXamlDocument();
+
+	/**
+	 * Returns a new object of class '<em>Annotated Object</em>'. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return a new object of class '<em>Annotated Object</em>'.
+	 * @generated
+	 */
+	AnnotatedObject createAnnotatedObject();
+
+	/**
+	 * Returns a new object of class '<em>Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Element</em>'.
+	 * @generated
+	 */
+	XamlElement createXamlElement();
+
+	/**
+	 * Returns a new object of class '<em>Attribute</em>'.
+	 * <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * @return a new object of class '<em>Attribute</em>'.
+	 * @generated
+	 */
+	XamlAttribute createXamlAttribute();
+
+	/**
+	 * Returns a new object of class '<em>Annotation</em>'.
+	 * <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * @return a new object of class '<em>Annotation</em>'.
+	 * @generated
+	 */
+	Annotation createAnnotation();
+
+	/**
+	 * Returns a new object of class '<em>Comment</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Comment</em>'.
+	 * @generated
+	 */
+	Comment createComment();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	XamlPackage getXamlPackage();
+
+	XamlElement createElement(String name, String ns);
+
+	XamlAttribute createAttribute(String name, String ns);
+
+} // XamlFactory
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlNode.java b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlNode.java
new file mode 100755
index 0000000..46086e0
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlNode.java
@@ -0,0 +1,318 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.xaml;
+
+import java.util.Map;
+import org.eclipse.emf.common.util.EList;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>Node</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getPrefix <em>Prefix</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getNamespace <em>Namespace</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getValue <em>Value</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getChildNodes <em>Child Nodes</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getAttributes <em>Attributes</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getComments <em>Comments</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getWidget <em>Widget</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlNode()
+ * @model abstract="true"
+ * @generated
+ */
+public interface XamlNode extends AnnotatedObject {
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Name</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlNode_Name()
+	 * @model required="true"
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getName <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Prefix</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Prefix</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Prefix</em>' attribute.
+	 * @see #setPrefix(String)
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlNode_Prefix()
+	 * @model required="true"
+	 * @generated
+	 */
+	String getPrefix();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getPrefix <em>Prefix</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Prefix</em>' attribute.
+	 * @see #getPrefix()
+	 * @generated
+	 */
+	void setPrefix(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Namespace</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Namespace</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Namespace</em>' attribute.
+	 * @see #setNamespace(String)
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlNode_Namespace()
+	 * @model required="true"
+	 * @generated
+	 */
+	String getNamespace();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getNamespace <em>Namespace</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Namespace</em>' attribute.
+	 * @see #getNamespace()
+	 * @generated
+	 */
+	void setNamespace(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value</em>' attribute.
+	 * @see #setValue(String)
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlNode_Value()
+	 * @model
+	 * @generated
+	 */
+	String getValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#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>Child Nodes</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.xwt.tools.ui.xaml.XamlElement}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Child Nodes</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>Child Nodes</em>' containment reference list.
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlNode_ChildNodes()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<XamlElement> getChildNodes();
+
+	/**
+	 * Returns the value of the '<em><b>Attributes</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.xwt.tools.ui.xaml.XamlAttribute}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Attributes</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>Attributes</em>' containment reference list.
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlNode_Attributes()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<XamlAttribute> getAttributes();
+
+	/**
+	 * 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.xwt.tools.ui.xaml.XamlPackage#getXamlNode_Id()
+	 * @model id="true"
+	 * @generated
+	 */
+	String getId();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#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>Comments</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.xwt.tools.ui.xaml.Comment}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Comments</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>Comments</em>' containment reference list.
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlNode_Comments()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<Comment> getComments();
+
+	/**
+	 * Returns the value of the '<em><b>Widget</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Widget</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Widget</em>' attribute.
+	 * @see #setWidget(Object)
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlPackage#getXamlNode_Widget()
+	 * @model
+	 * @generated
+	 */
+	Object getWidget();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getWidget <em>Widget</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Widget</em>' attribute.
+	 * @see #getWidget()
+	 * @generated
+	 */
+	void setWidget(Object value);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	XamlAttribute getAttribute(String name, String namespace);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	XamlAttribute getAttribute(String name);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	XamlElement getChild(String name, String namespace);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	XamlElement getChild(String name);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	XamlElement getChild(int index);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @model kind="operation"
+	 * @generated
+	 */
+	XamlDocument getOwnerDocument();
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	EList<String> attributeNames();
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	EList<String> attributeNames(String namespace);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	EList<String> attributeNamespaces();
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @model kind="operation"
+	 * @generated
+	 */
+	XamlNode getParent();
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @model dataType="org.eclipse.xwt.tools.ui.xaml.Node" documentDataType="org.eclipse.xwt.tools.ui.xaml.Document"
+	 * @generated
+	 */
+	Node generate(Document document, Map<String, Object> options);
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @model kind="operation"
+	 * @generated
+	 */
+	String getFlatValue();
+
+} // XamlNode
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlPackage.java b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlPackage.java
new file mode 100755
index 0000000..9324b43
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/XamlPackage.java
@@ -0,0 +1,1164 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.xaml;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+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.xwt.tools.ui.xaml.XamlFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface XamlPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "xaml";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http://www.eclipse.org/e4/xwt/tools/designer/xaml";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "xaml";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	XamlPackage eINSTANCE = org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl
+			.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.xwt.tools.ui.xaml.impl.AnnotatedObjectImpl <em>Annotated Object</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.xwt.tools.ui.xaml.impl.AnnotatedObjectImpl
+	 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getAnnotatedObject()
+	 * @generated
+	 */
+	int ANNOTATED_OBJECT = 1;
+
+	/**
+	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ANNOTATED_OBJECT__ANNOTATIONS = 0;
+
+	/**
+	 * The number of structural features of the '<em>Annotated Object</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ANNOTATED_OBJECT_FEATURE_COUNT = 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlDocumentImpl <em>Document</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlDocumentImpl
+	 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getXamlDocument()
+	 * @generated
+	 */
+	int XAML_DOCUMENT = 0;
+
+	/**
+	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_DOCUMENT__ANNOTATIONS = ANNOTATED_OBJECT__ANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Root Element</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_DOCUMENT__ROOT_ELEMENT = ANNOTATED_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Declared Namespaces</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_DOCUMENT__DECLARED_NAMESPACES = ANNOTATED_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Document</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_DOCUMENT_FEATURE_COUNT = ANNOTATED_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlNodeImpl <em>Node</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlNodeImpl
+	 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getXamlNode()
+	 * @generated
+	 */
+	int XAML_NODE = 2;
+
+	/**
+	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_NODE__ANNOTATIONS = ANNOTATED_OBJECT__ANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_NODE__NAME = ANNOTATED_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Prefix</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_NODE__PREFIX = ANNOTATED_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Namespace</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_NODE__NAMESPACE = ANNOTATED_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_NODE__VALUE = ANNOTATED_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Child Nodes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_NODE__CHILD_NODES = ANNOTATED_OBJECT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Attributes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_NODE__ATTRIBUTES = ANNOTATED_OBJECT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_NODE__ID = ANNOTATED_OBJECT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_NODE__COMMENTS = ANNOTATED_OBJECT_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Widget</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_NODE__WIDGET = ANNOTATED_OBJECT_FEATURE_COUNT + 8;
+
+	/**
+	 * The number of structural features of the '<em>Node</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_NODE_FEATURE_COUNT = ANNOTATED_OBJECT_FEATURE_COUNT + 9;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlElementImpl <em>Element</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlElementImpl
+	 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getXamlElement()
+	 * @generated
+	 */
+	int XAML_ELEMENT = 3;
+
+	/**
+	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_ELEMENT__ANNOTATIONS = XAML_NODE__ANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_ELEMENT__NAME = XAML_NODE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Prefix</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_ELEMENT__PREFIX = XAML_NODE__PREFIX;
+
+	/**
+	 * The feature id for the '<em><b>Namespace</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_ELEMENT__NAMESPACE = XAML_NODE__NAMESPACE;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_ELEMENT__VALUE = XAML_NODE__VALUE;
+
+	/**
+	 * The feature id for the '<em><b>Child Nodes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_ELEMENT__CHILD_NODES = XAML_NODE__CHILD_NODES;
+
+	/**
+	 * The feature id for the '<em><b>Attributes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_ELEMENT__ATTRIBUTES = XAML_NODE__ATTRIBUTES;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_ELEMENT__ID = XAML_NODE__ID;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_ELEMENT__COMMENTS = XAML_NODE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Widget</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_ELEMENT__WIDGET = XAML_NODE__WIDGET;
+
+	/**
+	 * The number of structural features of the '<em>Element</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_ELEMENT_FEATURE_COUNT = XAML_NODE_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlAttributeImpl <em>Attribute</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlAttributeImpl
+	 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getXamlAttribute()
+	 * @generated
+	 */
+	int XAML_ATTRIBUTE = 4;
+
+	/**
+	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_ATTRIBUTE__ANNOTATIONS = XAML_NODE__ANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_ATTRIBUTE__NAME = XAML_NODE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Prefix</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_ATTRIBUTE__PREFIX = XAML_NODE__PREFIX;
+
+	/**
+	 * The feature id for the '<em><b>Namespace</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_ATTRIBUTE__NAMESPACE = XAML_NODE__NAMESPACE;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_ATTRIBUTE__VALUE = XAML_NODE__VALUE;
+
+	/**
+	 * The feature id for the '<em><b>Child Nodes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_ATTRIBUTE__CHILD_NODES = XAML_NODE__CHILD_NODES;
+
+	/**
+	 * The feature id for the '<em><b>Attributes</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_ATTRIBUTE__ATTRIBUTES = XAML_NODE__ATTRIBUTES;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_ATTRIBUTE__ID = XAML_NODE__ID;
+
+	/**
+	 * The feature id for the '<em><b>Comments</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_ATTRIBUTE__COMMENTS = XAML_NODE__COMMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Widget</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_ATTRIBUTE__WIDGET = XAML_NODE__WIDGET;
+
+	/**
+	 * The feature id for the '<em><b>Use Flat Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_ATTRIBUTE__USE_FLAT_VALUE = XAML_NODE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Group Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_ATTRIBUTE__GROUP_NAME = XAML_NODE_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Attribute</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int XAML_ATTRIBUTE_FEATURE_COUNT = XAML_NODE_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.xwt.tools.ui.xaml.impl.AnnotationImpl <em>Annotation</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.xwt.tools.ui.xaml.impl.AnnotationImpl
+	 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getAnnotation()
+	 * @generated
+	 */
+	int ANNOTATION = 5;
+
+	/**
+	 * The feature id for the '<em><b>Source</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ANNOTATION__SOURCE = 0;
+
+	/**
+	 * The feature id for the '<em><b>Details</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ANNOTATION__DETAILS = 1;
+
+	/**
+	 * The number of structural features of the '<em>Annotation</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ANNOTATION_FEATURE_COUNT = 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.xwt.tools.ui.xaml.impl.CommentImpl <em>Comment</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.xwt.tools.ui.xaml.impl.CommentImpl
+	 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getComment()
+	 * @generated
+	 */
+	int COMMENT = 6;
+
+	/**
+	 * The feature id for the '<em><b>Content</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMMENT__CONTENT = 0;
+
+	/**
+	 * The feature id for the '<em><b>Prev</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMMENT__PREV = 1;
+
+	/**
+	 * The feature id for the '<em><b>Next</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMMENT__NEXT = 2;
+
+	/**
+	 * The number of structural features of the '<em>Comment</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMMENT_FEATURE_COUNT = 3;
+
+	/**
+	 * The meta object id for the '<em>Node</em>' data type.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.w3c.dom.Node
+	 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getNode()
+	 * @generated
+	 */
+	int NODE = 7;
+
+	/**
+	 * The meta object id for the '<em>Document</em>' data type.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.w3c.dom.Document
+	 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getDocument()
+	 * @generated
+	 */
+	int DOCUMENT = 8;
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.xwt.tools.ui.xaml.XamlDocument <em>Document</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Document</em>'.
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlDocument
+	 * @generated
+	 */
+	EClass getXamlDocument();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.xwt.tools.ui.xaml.XamlDocument#getRootElement <em>Root Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Root Element</em>'.
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlDocument#getRootElement()
+	 * @see #getXamlDocument()
+	 * @generated
+	 */
+	EReference getXamlDocument_RootElement();
+
+	/**
+	 * Returns the meta object for the map '{@link org.eclipse.xwt.tools.ui.xaml.XamlDocument#getDeclaredNamespaces <em>Declared Namespaces</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the map '<em>Declared Namespaces</em>'.
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlDocument#getDeclaredNamespaces()
+	 * @see #getXamlDocument()
+	 * @generated
+	 */
+	EReference getXamlDocument_DeclaredNamespaces();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.xwt.tools.ui.xaml.AnnotatedObject <em>Annotated Object</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Annotated Object</em>'.
+	 * @see org.eclipse.xwt.tools.ui.xaml.AnnotatedObject
+	 * @generated
+	 */
+	EClass getAnnotatedObject();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.xwt.tools.ui.xaml.AnnotatedObject#getAnnotations <em>Annotations</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Annotations</em>'.
+	 * @see org.eclipse.xwt.tools.ui.xaml.AnnotatedObject#getAnnotations()
+	 * @see #getAnnotatedObject()
+	 * @generated
+	 */
+	EReference getAnnotatedObject_Annotations();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode <em>Node</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Node</em>'.
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlNode
+	 * @generated
+	 */
+	EClass getXamlNode();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlNode#getName()
+	 * @see #getXamlNode()
+	 * @generated
+	 */
+	EAttribute getXamlNode_Name();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getPrefix <em>Prefix</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Prefix</em>'.
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlNode#getPrefix()
+	 * @see #getXamlNode()
+	 * @generated
+	 */
+	EAttribute getXamlNode_Prefix();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getNamespace <em>Namespace</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Namespace</em>'.
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlNode#getNamespace()
+	 * @see #getXamlNode()
+	 * @generated
+	 */
+	EAttribute getXamlNode_Namespace();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlNode#getValue()
+	 * @see #getXamlNode()
+	 * @generated
+	 */
+	EAttribute getXamlNode_Value();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getChildNodes <em>Child Nodes</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Child Nodes</em>'.
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlNode#getChildNodes()
+	 * @see #getXamlNode()
+	 * @generated
+	 */
+	EReference getXamlNode_ChildNodes();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getAttributes <em>Attributes</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Attributes</em>'.
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlNode#getAttributes()
+	 * @see #getXamlNode()
+	 * @generated
+	 */
+	EReference getXamlNode_Attributes();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getId <em>Id</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Id</em>'.
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlNode#getId()
+	 * @see #getXamlNode()
+	 * @generated
+	 */
+	EAttribute getXamlNode_Id();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getComments <em>Comments</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Comments</em>'.
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlNode#getComments()
+	 * @see #getXamlNode()
+	 * @generated
+	 */
+	EReference getXamlNode_Comments();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode#getWidget <em>Widget</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Widget</em>'.
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlNode#getWidget()
+	 * @see #getXamlNode()
+	 * @generated
+	 */
+	EAttribute getXamlNode_Widget();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.xwt.tools.ui.xaml.XamlElement <em>Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Element</em>'.
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlElement
+	 * @generated
+	 */
+	EClass getXamlElement();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.xwt.tools.ui.xaml.XamlAttribute <em>Attribute</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Attribute</em>'.
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlAttribute
+	 * @generated
+	 */
+	EClass getXamlAttribute();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.xaml.XamlAttribute#isUseFlatValue <em>Use Flat Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Use Flat Value</em>'.
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlAttribute#isUseFlatValue()
+	 * @see #getXamlAttribute()
+	 * @generated
+	 */
+	EAttribute getXamlAttribute_UseFlatValue();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.xaml.XamlAttribute#getGroupName <em>Group Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Group Name</em>'.
+	 * @see org.eclipse.xwt.tools.ui.xaml.XamlAttribute#getGroupName()
+	 * @see #getXamlAttribute()
+	 * @generated
+	 */
+	EAttribute getXamlAttribute_GroupName();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.xwt.tools.ui.xaml.Annotation <em>Annotation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Annotation</em>'.
+	 * @see org.eclipse.xwt.tools.ui.xaml.Annotation
+	 * @generated
+	 */
+	EClass getAnnotation();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.xaml.Annotation#getSource <em>Source</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Source</em>'.
+	 * @see org.eclipse.xwt.tools.ui.xaml.Annotation#getSource()
+	 * @see #getAnnotation()
+	 * @generated
+	 */
+	EAttribute getAnnotation_Source();
+
+	/**
+	 * Returns the meta object for the map '{@link org.eclipse.xwt.tools.ui.xaml.Annotation#getDetails <em>Details</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the map '<em>Details</em>'.
+	 * @see org.eclipse.xwt.tools.ui.xaml.Annotation#getDetails()
+	 * @see #getAnnotation()
+	 * @generated
+	 */
+	EReference getAnnotation_Details();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.xwt.tools.ui.xaml.Comment <em>Comment</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Comment</em>'.
+	 * @see org.eclipse.xwt.tools.ui.xaml.Comment
+	 * @generated
+	 */
+	EClass getComment();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.xwt.tools.ui.xaml.Comment#getContent <em>Content</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Content</em>'.
+	 * @see org.eclipse.xwt.tools.ui.xaml.Comment#getContent()
+	 * @see #getComment()
+	 * @generated
+	 */
+	EAttribute getComment_Content();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.xwt.tools.ui.xaml.Comment#getPrev <em>Prev</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Prev</em>'.
+	 * @see org.eclipse.xwt.tools.ui.xaml.Comment#getPrev()
+	 * @see #getComment()
+	 * @generated
+	 */
+	EReference getComment_Prev();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.xwt.tools.ui.xaml.Comment#getNext <em>Next</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Next</em>'.
+	 * @see org.eclipse.xwt.tools.ui.xaml.Comment#getNext()
+	 * @see #getComment()
+	 * @generated
+	 */
+	EReference getComment_Next();
+
+	/**
+	 * Returns the meta object for data type '{@link org.w3c.dom.Node <em>Node</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for data type '<em>Node</em>'.
+	 * @see org.w3c.dom.Node
+	 * @model instanceClass="org.w3c.dom.Node"
+	 * @generated
+	 */
+	EDataType getNode();
+
+	/**
+	 * Returns the meta object for data type '{@link org.w3c.dom.Document <em>Document</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for data type '<em>Document</em>'.
+	 * @see org.w3c.dom.Document
+	 * @model instanceClass="org.w3c.dom.Document"
+	 * @generated
+	 */
+	EDataType getDocument();
+
+	/**
+	 * 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
+	 */
+	XamlFactory getXamlFactory();
+
+	/**
+	 * <!-- 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.xwt.tools.ui.xaml.impl.XamlDocumentImpl <em>Document</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlDocumentImpl
+		 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getXamlDocument()
+		 * @generated
+		 */
+		EClass XAML_DOCUMENT = eINSTANCE.getXamlDocument();
+
+		/**
+		 * The meta object literal for the '<em><b>Root Element</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference XAML_DOCUMENT__ROOT_ELEMENT = eINSTANCE
+				.getXamlDocument_RootElement();
+
+		/**
+		 * The meta object literal for the '<em><b>Declared Namespaces</b></em>' map feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference XAML_DOCUMENT__DECLARED_NAMESPACES = eINSTANCE
+				.getXamlDocument_DeclaredNamespaces();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.xwt.tools.ui.xaml.impl.AnnotatedObjectImpl <em>Annotated Object</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.xwt.tools.ui.xaml.impl.AnnotatedObjectImpl
+		 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getAnnotatedObject()
+		 * @generated
+		 */
+		EClass ANNOTATED_OBJECT = eINSTANCE.getAnnotatedObject();
+
+		/**
+		 * The meta object literal for the '<em><b>Annotations</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ANNOTATED_OBJECT__ANNOTATIONS = eINSTANCE
+				.getAnnotatedObject_Annotations();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlNodeImpl <em>Node</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlNodeImpl
+		 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getXamlNode()
+		 * @generated
+		 */
+		EClass XAML_NODE = eINSTANCE.getXamlNode();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute XAML_NODE__NAME = eINSTANCE.getXamlNode_Name();
+
+		/**
+		 * The meta object literal for the '<em><b>Prefix</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute XAML_NODE__PREFIX = eINSTANCE.getXamlNode_Prefix();
+
+		/**
+		 * The meta object literal for the '<em><b>Namespace</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute XAML_NODE__NAMESPACE = eINSTANCE.getXamlNode_Namespace();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute XAML_NODE__VALUE = eINSTANCE.getXamlNode_Value();
+
+		/**
+		 * The meta object literal for the '<em><b>Child Nodes</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference XAML_NODE__CHILD_NODES = eINSTANCE.getXamlNode_ChildNodes();
+
+		/**
+		 * The meta object literal for the '<em><b>Attributes</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference XAML_NODE__ATTRIBUTES = eINSTANCE.getXamlNode_Attributes();
+
+		/**
+		 * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute XAML_NODE__ID = eINSTANCE.getXamlNode_Id();
+
+		/**
+		 * The meta object literal for the '<em><b>Comments</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference XAML_NODE__COMMENTS = eINSTANCE.getXamlNode_Comments();
+
+		/**
+		 * The meta object literal for the '<em><b>Widget</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute XAML_NODE__WIDGET = eINSTANCE.getXamlNode_Widget();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlElementImpl <em>Element</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlElementImpl
+		 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getXamlElement()
+		 * @generated
+		 */
+		EClass XAML_ELEMENT = eINSTANCE.getXamlElement();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlAttributeImpl <em>Attribute</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlAttributeImpl
+		 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getXamlAttribute()
+		 * @generated
+		 */
+		EClass XAML_ATTRIBUTE = eINSTANCE.getXamlAttribute();
+
+		/**
+		 * The meta object literal for the '<em><b>Use Flat Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute XAML_ATTRIBUTE__USE_FLAT_VALUE = eINSTANCE
+				.getXamlAttribute_UseFlatValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Group Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute XAML_ATTRIBUTE__GROUP_NAME = eINSTANCE
+				.getXamlAttribute_GroupName();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.xwt.tools.ui.xaml.impl.AnnotationImpl <em>Annotation</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.xwt.tools.ui.xaml.impl.AnnotationImpl
+		 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getAnnotation()
+		 * @generated
+		 */
+		EClass ANNOTATION = eINSTANCE.getAnnotation();
+
+		/**
+		 * The meta object literal for the '<em><b>Source</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ANNOTATION__SOURCE = eINSTANCE.getAnnotation_Source();
+
+		/**
+		 * The meta object literal for the '<em><b>Details</b></em>' map feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ANNOTATION__DETAILS = eINSTANCE.getAnnotation_Details();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.xwt.tools.ui.xaml.impl.CommentImpl <em>Comment</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.xwt.tools.ui.xaml.impl.CommentImpl
+		 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getComment()
+		 * @generated
+		 */
+		EClass COMMENT = eINSTANCE.getComment();
+
+		/**
+		 * The meta object literal for the '<em><b>Content</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute COMMENT__CONTENT = eINSTANCE.getComment_Content();
+
+		/**
+		 * The meta object literal for the '<em><b>Prev</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference COMMENT__PREV = eINSTANCE.getComment_Prev();
+
+		/**
+		 * The meta object literal for the '<em><b>Next</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference COMMENT__NEXT = eINSTANCE.getComment_Next();
+
+		/**
+		 * The meta object literal for the '<em>Node</em>' data type.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.w3c.dom.Node
+		 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getNode()
+		 * @generated
+		 */
+		EDataType NODE = eINSTANCE.getNode();
+
+		/**
+		 * The meta object literal for the '<em>Document</em>' data type.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.w3c.dom.Document
+		 * @see org.eclipse.xwt.tools.ui.xaml.impl.XamlPackageImpl#getDocument()
+		 * @generated
+		 */
+		EDataType DOCUMENT = eINSTANCE.getDocument();
+
+	}
+
+} //XamlPackage
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/AnnotatedObjectImpl.java b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/AnnotatedObjectImpl.java
new file mode 100755
index 0000000..5fafac2
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/AnnotatedObjectImpl.java
@@ -0,0 +1,166 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.xaml.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.xwt.tools.ui.xaml.AnnotatedObject;
+import org.eclipse.xwt.tools.ui.xaml.Annotation;
+import org.eclipse.xwt.tools.ui.xaml.XamlPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Annotated Object</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.AnnotatedObjectImpl#getAnnotations <em>Annotations</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AnnotatedObjectImpl extends EObjectImpl implements AnnotatedObject {
+	/**
+	 * The cached value of the '{@link #getAnnotations() <em>Annotations</em>}' containment reference list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getAnnotations()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Annotation> annotations;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AnnotatedObjectImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return XamlPackage.Literals.ANNOTATED_OBJECT;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Annotation> getAnnotations() {
+		if (annotations == null) {
+			annotations = new EObjectContainmentEList<Annotation>(
+					Annotation.class, this,
+					XamlPackage.ANNOTATED_OBJECT__ANNOTATIONS);
+		}
+		return annotations;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public Annotation getAnnotation(String source) {
+		EList<Annotation> annotations = getAnnotations();
+		for (Annotation annotation : annotations) {
+			if (source.equals(annotation.getSource())) {
+				return annotation;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+		case XamlPackage.ANNOTATED_OBJECT__ANNOTATIONS:
+			return ((InternalEList<?>) getAnnotations()).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 XamlPackage.ANNOTATED_OBJECT__ANNOTATIONS:
+			return getAnnotations();
+		}
+		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 XamlPackage.ANNOTATED_OBJECT__ANNOTATIONS:
+			getAnnotations().clear();
+			getAnnotations()
+					.addAll((Collection<? extends Annotation>) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case XamlPackage.ANNOTATED_OBJECT__ANNOTATIONS:
+			getAnnotations().clear();
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case XamlPackage.ANNOTATED_OBJECT__ANNOTATIONS:
+			return annotations != null && !annotations.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} // AnnotatedObjectImpl
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/AnnotationImpl.java b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/AnnotationImpl.java
new file mode 100755
index 0000000..dfb181c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/AnnotationImpl.java
@@ -0,0 +1,220 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.xaml.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.impl.EStringToStringMapEntryImpl;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.xwt.tools.ui.xaml.Annotation;
+import org.eclipse.xwt.tools.ui.xaml.XamlPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Annotation</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.AnnotationImpl#getSource <em>Source</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.AnnotationImpl#getDetails <em>Details</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AnnotationImpl extends EObjectImpl implements Annotation {
+	/**
+	 * The default value of the '{@link #getSource() <em>Source</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getSource()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SOURCE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSource() <em>Source</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getSource()
+	 * @generated
+	 * @ordered
+	 */
+	protected String source = SOURCE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getDetails() <em>Details</em>}' map.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getDetails()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> details;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AnnotationImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return XamlPackage.Literals.ANNOTATION;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getSource() {
+		return source;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSource(String newSource) {
+		String oldSource = source;
+		source = newSource;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					XamlPackage.ANNOTATION__SOURCE, oldSource, source));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getDetails() {
+		if (details == null) {
+			details = new EcoreEMap<String, String>(
+					EcorePackage.Literals.ESTRING_TO_STRING_MAP_ENTRY,
+					EStringToStringMapEntryImpl.class, this,
+					XamlPackage.ANNOTATION__DETAILS);
+		}
+		return details;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+		case XamlPackage.ANNOTATION__DETAILS:
+			return ((InternalEList<?>) getDetails())
+					.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 XamlPackage.ANNOTATION__SOURCE:
+			return getSource();
+		case XamlPackage.ANNOTATION__DETAILS:
+			if (coreType)
+				return getDetails();
+			else
+				return getDetails().map();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case XamlPackage.ANNOTATION__SOURCE:
+			setSource((String) newValue);
+			return;
+		case XamlPackage.ANNOTATION__DETAILS:
+			((EStructuralFeature.Setting) getDetails()).set(newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case XamlPackage.ANNOTATION__SOURCE:
+			setSource(SOURCE_EDEFAULT);
+			return;
+		case XamlPackage.ANNOTATION__DETAILS:
+			getDetails().clear();
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case XamlPackage.ANNOTATION__SOURCE:
+			return SOURCE_EDEFAULT == null ? source != null : !SOURCE_EDEFAULT
+					.equals(source);
+		case XamlPackage.ANNOTATION__DETAILS:
+			return details != null && !details.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(" (source: ");
+		result.append(source);
+		result.append(')');
+		return result.toString();
+	}
+
+} // AnnotationImpl
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/CommentImpl.java b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/CommentImpl.java
new file mode 100755
index 0000000..40e9bb1
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/CommentImpl.java
@@ -0,0 +1,283 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.xaml.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.EObjectImpl;
+import org.eclipse.xwt.tools.ui.xaml.Comment;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+import org.eclipse.xwt.tools.ui.xaml.XamlPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Comment</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.CommentImpl#getContent <em>Content</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.CommentImpl#getPrev <em>Prev</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.CommentImpl#getNext <em>Next</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CommentImpl extends EObjectImpl implements Comment {
+	/**
+	 * The default value of the '{@link #getContent() <em>Content</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getContent()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String CONTENT_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getContent() <em>Content</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getContent()
+	 * @generated
+	 * @ordered
+	 */
+	protected String content = CONTENT_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getPrev() <em>Prev</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getPrev()
+	 * @generated
+	 * @ordered
+	 */
+	protected XamlNode prev;
+
+	/**
+	 * The cached value of the '{@link #getNext() <em>Next</em>}' reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getNext()
+	 * @generated
+	 * @ordered
+	 */
+	protected XamlNode next;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected CommentImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return XamlPackage.Literals.COMMENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getContent() {
+		return content;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setContent(String newContent) {
+		String oldContent = content;
+		content = newContent;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					XamlPackage.COMMENT__CONTENT, oldContent, content));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public XamlNode getPrev() {
+		if (prev != null && prev.eIsProxy()) {
+			InternalEObject oldPrev = (InternalEObject) prev;
+			prev = (XamlNode) eResolveProxy(oldPrev);
+			if (prev != oldPrev) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+							XamlPackage.COMMENT__PREV, oldPrev, prev));
+			}
+		}
+		return prev;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public XamlNode basicGetPrev() {
+		return prev;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPrev(XamlNode newPrev) {
+		XamlNode oldPrev = prev;
+		prev = newPrev;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					XamlPackage.COMMENT__PREV, oldPrev, prev));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public XamlNode getNext() {
+		if (next != null && next.eIsProxy()) {
+			InternalEObject oldNext = (InternalEObject) next;
+			next = (XamlNode) eResolveProxy(oldNext);
+			if (next != oldNext) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+							XamlPackage.COMMENT__NEXT, oldNext, next));
+			}
+		}
+		return next;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public XamlNode basicGetNext() {
+		return next;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setNext(XamlNode newNext) {
+		XamlNode oldNext = next;
+		next = newNext;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					XamlPackage.COMMENT__NEXT, oldNext, next));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case XamlPackage.COMMENT__CONTENT:
+			return getContent();
+		case XamlPackage.COMMENT__PREV:
+			if (resolve)
+				return getPrev();
+			return basicGetPrev();
+		case XamlPackage.COMMENT__NEXT:
+			if (resolve)
+				return getNext();
+			return basicGetNext();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case XamlPackage.COMMENT__CONTENT:
+			setContent((String) newValue);
+			return;
+		case XamlPackage.COMMENT__PREV:
+			setPrev((XamlNode) newValue);
+			return;
+		case XamlPackage.COMMENT__NEXT:
+			setNext((XamlNode) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case XamlPackage.COMMENT__CONTENT:
+			setContent(CONTENT_EDEFAULT);
+			return;
+		case XamlPackage.COMMENT__PREV:
+			setPrev((XamlNode) null);
+			return;
+		case XamlPackage.COMMENT__NEXT:
+			setNext((XamlNode) null);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case XamlPackage.COMMENT__CONTENT:
+			return CONTENT_EDEFAULT == null ? content != null
+					: !CONTENT_EDEFAULT.equals(content);
+		case XamlPackage.COMMENT__PREV:
+			return prev != null;
+		case XamlPackage.COMMENT__NEXT:
+			return next != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (content: ");
+		result.append(content);
+		result.append(')');
+		return result.toString();
+	}
+
+} // CommentImpl
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlAttributeImpl.java b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlAttributeImpl.java
new file mode 100755
index 0000000..d5b84ae
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlAttributeImpl.java
@@ -0,0 +1,303 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.xaml.impl;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+import org.eclipse.xwt.tools.ui.xaml.XamlPackage;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Attribute</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlAttributeImpl#isUseFlatValue <em>Use Flat Value</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlAttributeImpl#getGroupName <em>Group Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XamlAttributeImpl extends XamlNodeImpl implements XamlAttribute {
+
+	/**
+	 * The default value of the '{@link #isUseFlatValue() <em>Use Flat Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isUseFlatValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean USE_FLAT_VALUE_EDEFAULT = false;
+	/**
+	 * The cached value of the '{@link #isUseFlatValue() <em>Use Flat Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #isUseFlatValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean useFlatValue = USE_FLAT_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getGroupName() <em>Group Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getGroupName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String GROUP_NAME_EDEFAULT = null;
+	/**
+	 * The cached value of the '{@link #getGroupName() <em>Group Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getGroupName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String groupName = GROUP_NAME_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected XamlAttributeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return XamlPackage.Literals.XAML_ATTRIBUTE;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isUseFlatValue() {
+		return useFlatValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setUseFlatValue(boolean newUseFlatValue) {
+		boolean oldUseFlatValue = useFlatValue;
+		useFlatValue = newUseFlatValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					XamlPackage.XAML_ATTRIBUTE__USE_FLAT_VALUE,
+					oldUseFlatValue, useFlatValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getGroupName() {
+		return groupName;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public void setGroupName(String newGroupName) {
+		if (equals(groupName, newGroupName)) {
+			return;
+		}
+		String oldGroupName = groupName;
+		groupName = newGroupName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					XamlPackage.XAML_ATTRIBUTE__GROUP_NAME, oldGroupName,
+					groupName));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case XamlPackage.XAML_ATTRIBUTE__USE_FLAT_VALUE:
+			return isUseFlatValue();
+		case XamlPackage.XAML_ATTRIBUTE__GROUP_NAME:
+			return getGroupName();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case XamlPackage.XAML_ATTRIBUTE__USE_FLAT_VALUE:
+			setUseFlatValue((Boolean) newValue);
+			return;
+		case XamlPackage.XAML_ATTRIBUTE__GROUP_NAME:
+			setGroupName((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case XamlPackage.XAML_ATTRIBUTE__USE_FLAT_VALUE:
+			setUseFlatValue(USE_FLAT_VALUE_EDEFAULT);
+			return;
+		case XamlPackage.XAML_ATTRIBUTE__GROUP_NAME:
+			setGroupName(GROUP_NAME_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case XamlPackage.XAML_ATTRIBUTE__USE_FLAT_VALUE:
+			return useFlatValue != USE_FLAT_VALUE_EDEFAULT;
+		case XamlPackage.XAML_ATTRIBUTE__GROUP_NAME:
+			return GROUP_NAME_EDEFAULT == null ? groupName != null
+					: !GROUP_NAME_EDEFAULT.equals(groupName);
+		}
+		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(" (useFlatValue: ");
+		result.append(useFlatValue);
+		result.append(", groupName: ");
+		result.append(groupName);
+		result.append(')');
+		return result.toString();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.tools.designer.xaml.Generation#generate(org.w3c.dom.Document, org.w3c.dom.Node, java.util.Map)
+	 */
+	public Node generate(Document document, Map<String, Object> options) {
+		if (document == null) {
+			return null;
+		}
+		Node attrNode = null;
+		String name = getName();
+		String value = getValue();
+		if (value != null) {// Just create a simple attribute.
+			attrNode = document.createAttributeNS(getNamespace(),
+					getQualifiedName());
+			attrNode.setNodeValue(value);
+		} else if (isUseFlatValue()) {
+			attrNode = document.createAttributeNS(getNamespace(),
+					getQualifiedName());
+			attrNode.setNodeValue("{" + getFlatValue() + "}");
+		} else if (!getAttributes().isEmpty() || !getChildNodes().isEmpty()) {
+			// 1. <Control.layoutData><GridData/></Control.layoutData>
+			// 2. <TableViewer.table.layoutData><GridData/></TableViewer.table.layoutData>
+			// 3. <TableViewer.table HeadVisible="false"/>
+			String parentName = null;
+			XamlNode parentElement = null;
+			if (getParent() != null) {
+				parentElement = getParent();
+				while (parentElement != null) {
+					if (parentName == null) {
+						parentName = parentElement.getName();
+					} else {
+						parentName = parentElement.getName() + "." + parentName;
+					}
+					if (parentElement instanceof XamlElement) {
+						break;
+					}
+					parentElement = parentElement.getParent();
+				}
+			}
+			if (parentName != null) {
+				name = parentName + "." + name;
+			}
+			attrNode = document.createElementNS(namespace,
+					getQualifiedName(name));
+			for (XamlAttribute childAttr : getAttributes()) {
+				Node newAttr = childAttr.generate(document, options);
+				if (newAttr == null) {
+					continue;
+				}
+				if (newAttr instanceof Attr) {
+					((Element) attrNode).setAttributeNode((Attr) newAttr);
+				} else {
+					((Element) attrNode).appendChild(newAttr);
+				}
+			}
+			for (XamlElement childEle : getChildNodes()) {
+				Node newChild = childEle.generate(document, options);
+				if (newChild != null) {
+					attrNode.appendChild(newChild);
+				}
+			}
+		}
+		return attrNode;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.tools.designer.xaml.XamlNode#getFlatValue()
+	 */
+	public String getFlatValue() {
+		EList<XamlElement> childNodes = getChildNodes();
+		if (childNodes.isEmpty()) {
+			return getValue();
+		}
+		return getChildNodes().get(0).getFlatValue();
+	}
+
+} // XamlAttributeImpl
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlDocumentImpl.java b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlDocumentImpl.java
new file mode 100755
index 0000000..0f1a74e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlDocumentImpl.java
@@ -0,0 +1,254 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.xaml.impl;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EStringToStringMapEntryImpl;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlPackage;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Document</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlDocumentImpl#getRootElement <em>Root Element</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlDocumentImpl#getDeclaredNamespaces <em>Declared Namespaces</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class XamlDocumentImpl extends AnnotatedObjectImpl implements
+		XamlDocument {
+	/**
+	 * The cached value of the '{@link #getRootElement() <em>Root Element</em>}' containment reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getRootElement()
+	 * @generated
+	 * @ordered
+	 */
+	protected XamlElement rootElement;
+
+	/**
+	 * The cached value of the '{@link #getDeclaredNamespaces() <em>Declared Namespaces</em>}' map.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getDeclaredNamespaces()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<String, String> declaredNamespaces;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected XamlDocumentImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return XamlPackage.Literals.XAML_DOCUMENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public XamlElement getRootElement() {
+		return rootElement;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetRootElement(XamlElement newRootElement,
+			NotificationChain msgs) {
+		XamlElement oldRootElement = rootElement;
+		rootElement = newRootElement;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this,
+					Notification.SET, XamlPackage.XAML_DOCUMENT__ROOT_ELEMENT,
+					oldRootElement, newRootElement);
+			if (msgs == null)
+				msgs = notification;
+			else
+				msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRootElement(XamlElement newRootElement) {
+		if (newRootElement != rootElement) {
+			NotificationChain msgs = null;
+			if (rootElement != null)
+				msgs = ((InternalEObject) rootElement).eInverseRemove(this,
+						EOPPOSITE_FEATURE_BASE
+								- XamlPackage.XAML_DOCUMENT__ROOT_ELEMENT,
+						null, msgs);
+			if (newRootElement != null)
+				msgs = ((InternalEObject) newRootElement).eInverseAdd(this,
+						EOPPOSITE_FEATURE_BASE
+								- XamlPackage.XAML_DOCUMENT__ROOT_ELEMENT,
+						null, msgs);
+			msgs = basicSetRootElement(newRootElement, msgs);
+			if (msgs != null)
+				msgs.dispatch();
+		} else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					XamlPackage.XAML_DOCUMENT__ROOT_ELEMENT, newRootElement,
+					newRootElement));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EMap<String, String> getDeclaredNamespaces() {
+		if (declaredNamespaces == null) {
+			declaredNamespaces = new EcoreEMap<String, String>(
+					EcorePackage.Literals.ESTRING_TO_STRING_MAP_ENTRY,
+					EStringToStringMapEntryImpl.class, this,
+					XamlPackage.XAML_DOCUMENT__DECLARED_NAMESPACES);
+		}
+		return declaredNamespaces;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public void addDeclaredNamespace(String prefix, String namespace) {
+		getDeclaredNamespaces().put(prefix, namespace);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public String getDeclaredNamespace(String prefix) {
+		return getDeclaredNamespaces().get(prefix);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+		case XamlPackage.XAML_DOCUMENT__ROOT_ELEMENT:
+			return basicSetRootElement(null, msgs);
+		case XamlPackage.XAML_DOCUMENT__DECLARED_NAMESPACES:
+			return ((InternalEList<?>) getDeclaredNamespaces()).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 XamlPackage.XAML_DOCUMENT__ROOT_ELEMENT:
+			return getRootElement();
+		case XamlPackage.XAML_DOCUMENT__DECLARED_NAMESPACES:
+			if (coreType)
+				return getDeclaredNamespaces();
+			else
+				return getDeclaredNamespaces().map();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case XamlPackage.XAML_DOCUMENT__ROOT_ELEMENT:
+			setRootElement((XamlElement) newValue);
+			return;
+		case XamlPackage.XAML_DOCUMENT__DECLARED_NAMESPACES:
+			((EStructuralFeature.Setting) getDeclaredNamespaces())
+					.set(newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case XamlPackage.XAML_DOCUMENT__ROOT_ELEMENT:
+			setRootElement((XamlElement) null);
+			return;
+		case XamlPackage.XAML_DOCUMENT__DECLARED_NAMESPACES:
+			getDeclaredNamespaces().clear();
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case XamlPackage.XAML_DOCUMENT__ROOT_ELEMENT:
+			return rootElement != null;
+		case XamlPackage.XAML_DOCUMENT__DECLARED_NAMESPACES:
+			return declaredNamespaces != null && !declaredNamespaces.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} // XamlDocumentImpl
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlElementImpl.java b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlElementImpl.java
new file mode 100755
index 0000000..93950b4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlElementImpl.java
@@ -0,0 +1,224 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.xaml.impl;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlPackage;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.Text;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object ' <em><b>Element</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class XamlElementImpl extends XamlNodeImpl implements XamlElement {
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected XamlElementImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return XamlPackage.Literals.XAML_ELEMENT;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.tools.designer.xaml.Generation#generate(org.w3c.dom.Document, org.w3c.dom.Node, java.util.Map)
+	 */
+	public Node generate(Document document, Map<String, Object> options) {
+		if (document == null) {
+			return null;
+		}
+		String prefix = getPrefix();
+		if (prefix != null) {
+			Element root = document.getDocumentElement();
+			Attr prefixNode = root.getAttributeNode(prefix);
+			if (prefixNode == null) {
+				root.setAttribute("xmlns:" + prefix, namespace);
+				if (getOwnerDocument() != null) {
+					getOwnerDocument().addDeclaredNamespace(prefix, namespace);
+				}
+			}
+		}
+		String qualifiedName = prefix == null ? getName() : prefix + ":"
+				+ getName();
+		String namespace = getNamespace();
+		Element node = document.createElementNS(namespace, qualifiedName);
+		for (XamlAttribute attribute : getAttributes()) {
+			Node newAttr = attribute.generate(document, options);
+			if (newAttr == null) {
+				continue;
+			}
+			if (newAttr instanceof Attr) {
+				node.setAttributeNode((Attr) newAttr);
+			} else if (newAttr.getChildNodes().getLength() != 0
+					|| newAttr.getAttributes().getLength() != 0) {
+				node.appendChild(newAttr);
+			}
+		}
+		for (XamlElement child : getChildNodes()) {
+			Node newChild = child.generate(document, options);
+			if (newChild != null) {
+				node.appendChild(newChild);
+			}
+		}
+		String value = getValue();
+		if (value != null) {
+			generateContent(document, node, value);
+		}
+		return node;
+	}
+
+	protected void generateContent(Document document, Node node, String value) {
+		String content = getContent(node);
+		if (equals(value, content)) {
+			return;
+		}
+		value = value == null ? "" : value;
+		if (content != null) {
+			List<Text> contentNodes = getContentNodes(node);
+			for (Text text : contentNodes) {
+				String nodeValue = text.getNodeValue();
+				if (nodeValue == null || filter(nodeValue).length() == 0) {
+					continue;
+				}
+				text.setData(value);
+			}
+		} else {
+			Text textNode = document.createTextNode(value == null ? "" : value);
+			node.appendChild(textNode);
+		}
+	}
+
+	/**
+	 * Return content of a Node, "<j:String>hello world</j:String>"
+	 */
+	protected String getContent(Node parent) {
+		List<Text> textNodes = getContentNodes(parent);
+		if (textNodes.isEmpty()) {
+			return null;
+		}
+		StringBuilder content = new StringBuilder();
+		for (Text text : textNodes) {
+			String value = text.getNodeValue();
+			if (value == null) {
+				continue;
+			}
+			value = filter(value);
+			if (value.length() != 0) {
+				content.append(value);
+			}
+		}
+		return content.length() > 0 ? content.toString() : null;
+	}
+
+	protected List<Text> getContentNodes(Node node) {
+		NodeList childNodes = node.getChildNodes();
+		int length = childNodes.getLength();
+		if (length == 0) {
+			return Collections.emptyList();
+		}
+		List<Text> contentTexts = new ArrayList<Text>();
+		for (int i = 0; i < length; i++) {
+			Node item = childNodes.item(i);
+			if (item.getNodeType() == Node.TEXT_NODE) {
+				contentTexts.add((Text) item);
+			}
+		}
+		return contentTexts;
+	}
+
+	protected String filter(String value) {
+		value = value.replace("\n", "");
+		value = value.replace("\t", "");
+		value = value.replace("\r", "");
+		return value;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.tools.designer.xaml.XamlNode#getFlatValue()
+	 */
+	public String getFlatValue() {
+		StringBuilder result = new StringBuilder();
+		String p = getPrefix();
+		if (p != null) {
+			result.append(p);
+			result.append(":");
+		}
+		result.append(name);
+		EList<XamlAttribute> attributes = getAttributes();
+		EList<XamlElement> children = getChildNodes();
+		if (!attributes.isEmpty()) {
+			result.append(" ");
+			for (int i = 0; i < attributes.size(); i++) {
+				XamlAttribute attr = attributes.get(i);
+				result.append(attr.getName());
+				result.append("=");
+				String flatValue = attr.getFlatValue();
+				if (flatValue == null) {
+					flatValue = "";
+				}
+				String value = flatValue.trim();
+				if (value.indexOf(" ") != -1) {
+					result.append("{" + value + "}");
+				} else {
+					result.append(value);
+				}
+				if (i + 1 < attributes.size()) {
+					result.append(", ");
+				}
+			}
+		} else if (!children.isEmpty()) {
+			for (XamlElement child : children) {
+				String flatValue = child.getFlatValue();
+				if (flatValue == null) {
+					continue;
+				}
+				result.append(" ");
+				result.append(flatValue);
+			}
+		} else if (value != null) {
+			result.append(" ");
+			result.append(value);
+		}
+		return result.toString();
+	}
+
+} // XamlElementImpl
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlFactoryImpl.java b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlFactoryImpl.java
new file mode 100755
index 0000000..5e5a0fa
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlFactoryImpl.java
@@ -0,0 +1,246 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.xaml.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.xwt.tools.ui.xaml.*;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model <b>Factory</b>. <!-- end-user-doc -->
+ * @generated
+ */
+public class XamlFactoryImpl extends EFactoryImpl implements XamlFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static XamlFactory init() {
+		try {
+			XamlFactory theXamlFactory = (XamlFactory) EPackage.Registry.INSTANCE
+					.getEFactory("http://www.eclipse.org/e4/xwt/tools/designer/xaml");
+			if (theXamlFactory != null) {
+				return theXamlFactory;
+			}
+		} catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new XamlFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public XamlFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+		case XamlPackage.XAML_DOCUMENT:
+			return createXamlDocument();
+		case XamlPackage.ANNOTATED_OBJECT:
+			return createAnnotatedObject();
+		case XamlPackage.XAML_ELEMENT:
+			return createXamlElement();
+		case XamlPackage.XAML_ATTRIBUTE:
+			return createXamlAttribute();
+		case XamlPackage.ANNOTATION:
+			return createAnnotation();
+		case XamlPackage.COMMENT:
+			return createComment();
+		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 XamlPackage.NODE:
+			return createNodeFromString(eDataType, initialValue);
+		case XamlPackage.DOCUMENT:
+			return createDocumentFromString(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 XamlPackage.NODE:
+			return convertNodeToString(eDataType, instanceValue);
+		case XamlPackage.DOCUMENT:
+			return convertDocumentToString(eDataType, instanceValue);
+		default:
+			throw new IllegalArgumentException("The datatype '"
+					+ eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public XamlDocument createXamlDocument() {
+		XamlDocumentImpl xamlDocument = new XamlDocumentImpl();
+		return xamlDocument;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AnnotatedObject createAnnotatedObject() {
+		AnnotatedObjectImpl annotatedObject = new AnnotatedObjectImpl();
+		return annotatedObject;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public XamlElement createXamlElement() {
+		XamlElementImpl xamlElement = new XamlElementImpl();
+		return xamlElement;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public XamlAttribute createXamlAttribute() {
+		XamlAttributeImpl xamlAttribute = new XamlAttributeImpl();
+		return xamlAttribute;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Annotation createAnnotation() {
+		AnnotationImpl annotation = new AnnotationImpl();
+		return annotation;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Comment createComment() {
+		CommentImpl comment = new CommentImpl();
+		return comment;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Node createNodeFromString(EDataType eDataType, String initialValue) {
+		return (Node) super.createFromString(eDataType, initialValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertNodeToString(EDataType eDataType, Object instanceValue) {
+		return super.convertToString(eDataType, instanceValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Document createDocumentFromString(EDataType eDataType,
+			String initialValue) {
+		return (Document) super.createFromString(eDataType, initialValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertDocumentToString(EDataType eDataType,
+			Object instanceValue) {
+		return super.convertToString(eDataType, instanceValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public XamlPackage getXamlPackage() {
+		return (XamlPackage) getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static XamlPackage getPackage() {
+		return XamlPackage.eINSTANCE;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.tools.designer.xaml.XamlFactory#createAttribute(java.lang.String, java.lang.String)
+	 */
+	public XamlAttribute createAttribute(String name, String ns) {
+		XamlAttribute attr = createXamlAttribute();
+		attr.setName(name);
+		attr.setNamespace(ns);
+		return attr;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.tools.designer.xaml.XamlFactory#createElement(java.lang.String, java.lang.String)
+	 */
+	public XamlElement createElement(String name, String ns) {
+		XamlElement ele = createXamlElement();
+		ele.setName(name);
+		ele.setNamespace(ns);
+		return ele;
+	}
+
+} // XamlFactoryImpl
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlNodeImpl.java b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlNodeImpl.java
new file mode 100755
index 0000000..44589dd
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlNodeImpl.java
@@ -0,0 +1,810 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.xaml.impl;
+
+import java.util.Collection;
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.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.xwt.tools.ui.xaml.Comment;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+import org.eclipse.xwt.tools.ui.xaml.XamlPackage;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>Node</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlNodeImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlNodeImpl#getPrefix <em>Prefix</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlNodeImpl#getNamespace <em>Namespace</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlNodeImpl#getValue <em>Value</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlNodeImpl#getChildNodes <em>Child Nodes</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlNodeImpl#getAttributes <em>Attributes</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlNodeImpl#getId <em>Id</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlNodeImpl#getComments <em>Comments</em>}</li>
+ *   <li>{@link org.eclipse.xwt.tools.ui.xaml.impl.XamlNodeImpl#getWidget <em>Widget</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class XamlNodeImpl extends AnnotatedObjectImpl implements
+		XamlNode {
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getPrefix() <em>Prefix</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getPrefix()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String PREFIX_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getPrefix() <em>Prefix</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getPrefix()
+	 * @generated
+	 * @ordered
+	 */
+	protected String prefix = PREFIX_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getNamespace() <em>Namespace</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getNamespace()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAMESPACE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getNamespace() <em>Namespace</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getNamespace()
+	 * @generated
+	 * @ordered
+	 */
+	protected String namespace = NAMESPACE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final 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 cached value of the '{@link #getChildNodes() <em>Child Nodes</em>}' containment reference list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getChildNodes()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<XamlElement> childNodes;
+
+	/**
+	 * The cached value of the '{@link #getAttributes() <em>Attributes</em>}' containment reference list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getAttributes()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<XamlAttribute> attributes;
+
+	/**
+	 * 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 #getComments() <em>Comments</em>}' containment reference list.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @see #getComments()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Comment> comments;
+
+	/**
+	 * The default value of the '{@link #getWidget() <em>Widget</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getWidget()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Object WIDGET_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getWidget() <em>Widget</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getWidget()
+	 * @generated
+	 * @ordered
+	 */
+	protected Object widget = WIDGET_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected XamlNodeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return XamlPackage.Literals.XAML_NODE;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public void setName(String newName) {
+		if (equals(name, newName)) {
+			return;
+		}
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					XamlPackage.XAML_NODE__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public String getPrefix() {
+		if (prefix == null && namespace != null && getOwnerDocument() != null) {
+			EMap<String, String> declaredNamespaces = getOwnerDocument()
+					.getDeclaredNamespaces();
+			for (String key : declaredNamespaces.keySet()) {
+				if (namespace.equals(declaredNamespaces.get(key))) {
+					prefix = key;
+					break;
+				}
+			}
+		}
+		return prefix;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public void setPrefix(String newPrefix) {
+		if (equals(prefix, newPrefix)) {
+			return;
+		}
+		String oldPrefix = prefix;
+		prefix = newPrefix;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					XamlPackage.XAML_NODE__PREFIX, oldPrefix, prefix));
+	}
+
+	boolean equals(Object source, Object target) {
+		return (source == null && target == null)
+				|| (source != null && source.equals(target));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getNamespace() {
+		return namespace;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public void setNamespace(String newNamespace) {
+		if (equals(name, newNamespace)) {
+			return;
+		}
+		String oldNamespace = namespace;
+		namespace = newNamespace;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					XamlPackage.XAML_NODE__NAMESPACE, oldNamespace, namespace));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public void setValue(String newValue) {
+		if (equals(value, newValue)) {
+			return;
+		}
+		String oldValue = value;
+		value = newValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					XamlPackage.XAML_NODE__VALUE, oldValue, value));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<XamlElement> getChildNodes() {
+		if (childNodes == null) {
+			childNodes = new EObjectContainmentEList<XamlElement>(
+					XamlElement.class, this, XamlPackage.XAML_NODE__CHILD_NODES);
+		}
+		return childNodes;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<XamlAttribute> getAttributes() {
+		if (attributes == null) {
+			attributes = new EObjectContainmentEList<XamlAttribute>(
+					XamlAttribute.class, this,
+					XamlPackage.XAML_NODE__ATTRIBUTES);
+		}
+		return attributes;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public void setId(String newId) {
+		if (equals(id, newId)) {
+			return;
+		}
+		String oldId = id;
+		id = newId;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					XamlPackage.XAML_NODE__ID, oldId, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Comment> getComments() {
+		if (comments == null) {
+			comments = new EObjectContainmentEList<Comment>(Comment.class,
+					this, XamlPackage.XAML_NODE__COMMENTS);
+		}
+		return comments;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object getWidget() {
+		return widget;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setWidget(Object newWidget) {
+		Object oldWidget = widget;
+		widget = newWidget;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					XamlPackage.XAML_NODE__WIDGET, oldWidget, widget));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public XamlAttribute getAttribute(String name, String namespace) {
+		if (name == null || namespace == null) {
+			return null;
+		}
+		EList<XamlAttribute> attributes = getAttributes();
+		for (XamlAttribute attribute : attributes) {
+			String attrName = attribute.getName();
+			String attrNS = attribute.getNamespace();
+			if (name.equalsIgnoreCase(attrName)
+					&& namespace.equalsIgnoreCase(attrNS)) {
+				return attribute;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public XamlAttribute getAttribute(String name) {
+		if (name == null) {
+			return null;
+		}
+		return getAttribute(name, namespace);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public XamlElement getChild(String name, String namespace) {
+		if (name == null) {
+			return null;
+		}
+		EList<XamlElement> children = getChildren(namespace);
+		for (XamlElement element : children) {
+			if (name.equalsIgnoreCase(element.getName())
+					&& equals(namespace, element.getNamespace())) {
+				return element;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public EList<XamlElement> getChildren(String namespace) {
+		EList<XamlElement> children = new BasicEList<XamlElement>();
+		EList<XamlElement> all = getChildNodes();
+		for (XamlElement element : all) {
+			if ((namespace == null && element.getNamespace() == null)
+					|| (namespace != null && namespace.equals(element
+							.getNamespace()))) {
+				children.add(element);
+			}
+		}
+		return children;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public XamlElement getChild(String name) {
+		if (name == null) {
+			return null;
+		}
+		String ns = getNamespace();
+		XamlDocument ownerDocument = getOwnerDocument();
+		if (ownerDocument != null) {
+			ns = ownerDocument.getDeclaredNamespace(null);
+		}
+		return getChild(name, ns);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 */
+	public XamlElement getChild(int index) {
+		try {
+			return getChildNodes().get(index);
+		} catch (Exception e) {
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public XamlDocument getOwnerDocument() {
+		EObject container = eContainer();
+		while (container != null) {
+			if (container instanceof XamlDocument) {
+				return (XamlDocument) container;
+			}
+			container = container.eContainer();
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public EList<String> attributeNames() {
+		EList<String> attributeNames = new BasicEList<String>();
+		EList<XamlAttribute> attributes = getAttributes();
+		for (XamlAttribute attribute : attributes) {
+			String name = attribute.getName();
+			if (!attributeNames.contains(name)) {
+				attributeNames.add(name);
+			}
+		}
+		return attributeNames;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 */
+	public EList<String> attributeNames(String namespace) {
+		EList<String> attributeNames = new BasicEList<String>();
+		if (namespace != null) {
+			EList<XamlAttribute> attributes = getAttributes();
+			for (XamlAttribute attribute : attributes) {
+				String name = attribute.getName();
+				String ns = attribute.getNamespace();
+				if (!attributeNames.contains(name) && namespace.equals(ns)) {
+					attributeNames.add(name);
+				}
+			}
+		}
+		return attributeNames;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 */
+	public EList<String> attributeNamespaces() {
+		EList<String> attributeNamespaces = new BasicEList<String>();
+		EList<XamlAttribute> attributes = getAttributes();
+		for (XamlAttribute attribute : attributes) {
+			String ns = attribute.getNamespace();
+			if (!attributeNamespaces.contains(ns)) {
+				attributeNamespaces.add(ns);
+			}
+		}
+		return attributeNamespaces;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public XamlNode getParent() {
+		if (eContainer() instanceof XamlNode) {
+			return (XamlNode) eContainer();
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Node generate(Document document, Map<String, Object> options) {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getFlatValue() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+		case XamlPackage.XAML_NODE__CHILD_NODES:
+			return ((InternalEList<?>) getChildNodes()).basicRemove(otherEnd,
+					msgs);
+		case XamlPackage.XAML_NODE__ATTRIBUTES:
+			return ((InternalEList<?>) getAttributes()).basicRemove(otherEnd,
+					msgs);
+		case XamlPackage.XAML_NODE__COMMENTS:
+			return ((InternalEList<?>) getComments()).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 XamlPackage.XAML_NODE__NAME:
+			return getName();
+		case XamlPackage.XAML_NODE__PREFIX:
+			return getPrefix();
+		case XamlPackage.XAML_NODE__NAMESPACE:
+			return getNamespace();
+		case XamlPackage.XAML_NODE__VALUE:
+			return getValue();
+		case XamlPackage.XAML_NODE__CHILD_NODES:
+			return getChildNodes();
+		case XamlPackage.XAML_NODE__ATTRIBUTES:
+			return getAttributes();
+		case XamlPackage.XAML_NODE__ID:
+			return getId();
+		case XamlPackage.XAML_NODE__COMMENTS:
+			return getComments();
+		case XamlPackage.XAML_NODE__WIDGET:
+			return getWidget();
+		}
+		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 XamlPackage.XAML_NODE__NAME:
+			setName((String) newValue);
+			return;
+		case XamlPackage.XAML_NODE__PREFIX:
+			setPrefix((String) newValue);
+			return;
+		case XamlPackage.XAML_NODE__NAMESPACE:
+			setNamespace((String) newValue);
+			return;
+		case XamlPackage.XAML_NODE__VALUE:
+			setValue((String) newValue);
+			return;
+		case XamlPackage.XAML_NODE__CHILD_NODES:
+			getChildNodes().clear();
+			getChildNodes()
+					.addAll((Collection<? extends XamlElement>) newValue);
+			return;
+		case XamlPackage.XAML_NODE__ATTRIBUTES:
+			getAttributes().clear();
+			getAttributes().addAll(
+					(Collection<? extends XamlAttribute>) newValue);
+			return;
+		case XamlPackage.XAML_NODE__ID:
+			setId((String) newValue);
+			return;
+		case XamlPackage.XAML_NODE__COMMENTS:
+			getComments().clear();
+			getComments().addAll((Collection<? extends Comment>) newValue);
+			return;
+		case XamlPackage.XAML_NODE__WIDGET:
+			setWidget(newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case XamlPackage.XAML_NODE__NAME:
+			setName(NAME_EDEFAULT);
+			return;
+		case XamlPackage.XAML_NODE__PREFIX:
+			setPrefix(PREFIX_EDEFAULT);
+			return;
+		case XamlPackage.XAML_NODE__NAMESPACE:
+			setNamespace(NAMESPACE_EDEFAULT);
+			return;
+		case XamlPackage.XAML_NODE__VALUE:
+			setValue(VALUE_EDEFAULT);
+			return;
+		case XamlPackage.XAML_NODE__CHILD_NODES:
+			getChildNodes().clear();
+			return;
+		case XamlPackage.XAML_NODE__ATTRIBUTES:
+			getAttributes().clear();
+			return;
+		case XamlPackage.XAML_NODE__ID:
+			setId(ID_EDEFAULT);
+			return;
+		case XamlPackage.XAML_NODE__COMMENTS:
+			getComments().clear();
+			return;
+		case XamlPackage.XAML_NODE__WIDGET:
+			setWidget(WIDGET_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case XamlPackage.XAML_NODE__NAME:
+			return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT
+					.equals(name);
+		case XamlPackage.XAML_NODE__PREFIX:
+			return PREFIX_EDEFAULT == null ? prefix != null : !PREFIX_EDEFAULT
+					.equals(prefix);
+		case XamlPackage.XAML_NODE__NAMESPACE:
+			return NAMESPACE_EDEFAULT == null ? namespace != null
+					: !NAMESPACE_EDEFAULT.equals(namespace);
+		case XamlPackage.XAML_NODE__VALUE:
+			return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT
+					.equals(value);
+		case XamlPackage.XAML_NODE__CHILD_NODES:
+			return childNodes != null && !childNodes.isEmpty();
+		case XamlPackage.XAML_NODE__ATTRIBUTES:
+			return attributes != null && !attributes.isEmpty();
+		case XamlPackage.XAML_NODE__ID:
+			return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+		case XamlPackage.XAML_NODE__COMMENTS:
+			return comments != null && !comments.isEmpty();
+		case XamlPackage.XAML_NODE__WIDGET:
+			return WIDGET_EDEFAULT == null ? widget != null : !WIDGET_EDEFAULT
+					.equals(widget);
+		}
+		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(" (name: ");
+		result.append(name);
+		result.append(", prefix: ");
+		result.append(prefix);
+		result.append(", namespace: ");
+		result.append(namespace);
+		result.append(", value: ");
+		result.append(value);
+		result.append(", id: ");
+		result.append(id);
+		result.append(", widget: ");
+		result.append(widget);
+		result.append(')');
+		return result.toString();
+	}
+
+	protected String getQualifiedName() {
+		return getQualifiedName(name);
+	}
+
+	protected String getQualifiedName(String name) {
+		if (prefix != null) {
+			return prefix + ":" + name;
+		}
+		return name;
+	}
+
+} // XamlNodeImpl
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlPackageImpl.java b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlPackageImpl.java
new file mode 100755
index 0000000..2805ead
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/impl/XamlPackageImpl.java
@@ -0,0 +1,723 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.xaml.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EGenericType;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.xwt.tools.ui.xaml.AnnotatedObject;
+import org.eclipse.xwt.tools.ui.xaml.Annotation;
+import org.eclipse.xwt.tools.ui.xaml.Comment;
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlDocument;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+import org.eclipse.xwt.tools.ui.xaml.XamlPackage;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class XamlPackageImpl extends EPackageImpl implements XamlPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass xamlDocumentEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass annotatedObjectEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass xamlNodeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass xamlElementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass xamlAttributeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass annotationEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass commentEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EDataType nodeEDataType = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EDataType documentEDataType = 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.xwt.tools.ui.xaml.XamlPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private XamlPackageImpl() {
+		super(eNS_URI, XamlFactory.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 XamlPackage#eINSTANCE} when that field is accessed.
+	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static XamlPackage init() {
+		if (isInited)
+			return (XamlPackage) EPackage.Registry.INSTANCE
+					.getEPackage(XamlPackage.eNS_URI);
+
+		// Obtain or create and register package
+		XamlPackageImpl theXamlPackage = (XamlPackageImpl) (EPackage.Registry.INSTANCE
+				.get(eNS_URI) instanceof XamlPackageImpl ? EPackage.Registry.INSTANCE
+				.get(eNS_URI)
+				: new XamlPackageImpl());
+
+		isInited = true;
+
+		// Initialize simple dependencies
+		EcorePackage.eINSTANCE.eClass();
+
+		// Create package meta-data objects
+		theXamlPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theXamlPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theXamlPackage.freeze();
+
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(XamlPackage.eNS_URI, theXamlPackage);
+		return theXamlPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getXamlDocument() {
+		return xamlDocumentEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getXamlDocument_RootElement() {
+		return (EReference) xamlDocumentEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getXamlDocument_DeclaredNamespaces() {
+		return (EReference) xamlDocumentEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getAnnotatedObject() {
+		return annotatedObjectEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAnnotatedObject_Annotations() {
+		return (EReference) annotatedObjectEClass.getEStructuralFeatures().get(
+				0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getXamlNode() {
+		return xamlNodeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getXamlNode_Name() {
+		return (EAttribute) xamlNodeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getXamlNode_Prefix() {
+		return (EAttribute) xamlNodeEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getXamlNode_Namespace() {
+		return (EAttribute) xamlNodeEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getXamlNode_Value() {
+		return (EAttribute) xamlNodeEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getXamlNode_ChildNodes() {
+		return (EReference) xamlNodeEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getXamlNode_Attributes() {
+		return (EReference) xamlNodeEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getXamlNode_Id() {
+		return (EAttribute) xamlNodeEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getXamlNode_Comments() {
+		return (EReference) xamlNodeEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getXamlNode_Widget() {
+		return (EAttribute) xamlNodeEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getXamlElement() {
+		return xamlElementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getXamlAttribute() {
+		return xamlAttributeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getXamlAttribute_UseFlatValue() {
+		return (EAttribute) xamlAttributeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getXamlAttribute_GroupName() {
+		return (EAttribute) xamlAttributeEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getAnnotation() {
+		return annotationEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getAnnotation_Source() {
+		return (EAttribute) annotationEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAnnotation_Details() {
+		return (EReference) annotationEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getComment() {
+		return commentEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getComment_Content() {
+		return (EAttribute) commentEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getComment_Prev() {
+		return (EReference) commentEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getComment_Next() {
+		return (EReference) commentEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EDataType getNode() {
+		return nodeEDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EDataType getDocument() {
+		return documentEDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public XamlFactory getXamlFactory() {
+		return (XamlFactory) getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated)
+			return;
+		isCreated = true;
+
+		// Create classes and their features
+		xamlDocumentEClass = createEClass(XAML_DOCUMENT);
+		createEReference(xamlDocumentEClass, XAML_DOCUMENT__ROOT_ELEMENT);
+		createEReference(xamlDocumentEClass, XAML_DOCUMENT__DECLARED_NAMESPACES);
+
+		annotatedObjectEClass = createEClass(ANNOTATED_OBJECT);
+		createEReference(annotatedObjectEClass, ANNOTATED_OBJECT__ANNOTATIONS);
+
+		xamlNodeEClass = createEClass(XAML_NODE);
+		createEAttribute(xamlNodeEClass, XAML_NODE__NAME);
+		createEAttribute(xamlNodeEClass, XAML_NODE__PREFIX);
+		createEAttribute(xamlNodeEClass, XAML_NODE__NAMESPACE);
+		createEAttribute(xamlNodeEClass, XAML_NODE__VALUE);
+		createEReference(xamlNodeEClass, XAML_NODE__CHILD_NODES);
+		createEReference(xamlNodeEClass, XAML_NODE__ATTRIBUTES);
+		createEAttribute(xamlNodeEClass, XAML_NODE__ID);
+		createEReference(xamlNodeEClass, XAML_NODE__COMMENTS);
+		createEAttribute(xamlNodeEClass, XAML_NODE__WIDGET);
+
+		xamlElementEClass = createEClass(XAML_ELEMENT);
+
+		xamlAttributeEClass = createEClass(XAML_ATTRIBUTE);
+		createEAttribute(xamlAttributeEClass, XAML_ATTRIBUTE__USE_FLAT_VALUE);
+		createEAttribute(xamlAttributeEClass, XAML_ATTRIBUTE__GROUP_NAME);
+
+		annotationEClass = createEClass(ANNOTATION);
+		createEAttribute(annotationEClass, ANNOTATION__SOURCE);
+		createEReference(annotationEClass, ANNOTATION__DETAILS);
+
+		commentEClass = createEClass(COMMENT);
+		createEAttribute(commentEClass, COMMENT__CONTENT);
+		createEReference(commentEClass, COMMENT__PREV);
+		createEReference(commentEClass, COMMENT__NEXT);
+
+		// Create data types
+		nodeEDataType = createEDataType(NODE);
+		documentEDataType = createEDataType(DOCUMENT);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized)
+			return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		EcorePackage theEcorePackage = (EcorePackage) EPackage.Registry.INSTANCE
+				.getEPackage(EcorePackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+		xamlDocumentEClass.getESuperTypes().add(this.getAnnotatedObject());
+		xamlNodeEClass.getESuperTypes().add(this.getAnnotatedObject());
+		xamlElementEClass.getESuperTypes().add(this.getXamlNode());
+		xamlAttributeEClass.getESuperTypes().add(this.getXamlNode());
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(xamlDocumentEClass, XamlDocument.class, "XamlDocument",
+				!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getXamlDocument_RootElement(), this.getXamlElement(),
+				null, "rootElement", null, 1, 1, XamlDocument.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+				!IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+				IS_ORDERED);
+		initEReference(getXamlDocument_DeclaredNamespaces(), theEcorePackage
+				.getEStringToStringMapEntry(), null, "declaredNamespaces",
+				null, 0, -1, XamlDocument.class, !IS_TRANSIENT, !IS_VOLATILE,
+				IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		EOperation op = addEOperation(xamlDocumentEClass, null,
+				"addDeclaredNamespace", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "prefix", 0, 1, IS_UNIQUE,
+				IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "namespace", 0, 1,
+				IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(xamlDocumentEClass, ecorePackage.getEString(),
+				"getDeclaredNamespace", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "prefix", 0, 1, IS_UNIQUE,
+				IS_ORDERED);
+
+		initEClass(annotatedObjectEClass, AnnotatedObject.class,
+				"AnnotatedObject", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getAnnotatedObject_Annotations(), this.getAnnotation(),
+				null, "annotations", null, 0, -1, AnnotatedObject.class,
+				!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+				!IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+				IS_ORDERED);
+
+		op = addEOperation(annotatedObjectEClass, this.getAnnotation(),
+				"getAnnotation", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "source", 0, 1, IS_UNIQUE,
+				IS_ORDERED);
+
+		initEClass(xamlNodeEClass, XamlNode.class, "XamlNode", IS_ABSTRACT,
+				!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getXamlNode_Name(), ecorePackage.getEString(), "name",
+				null, 1, 1, XamlNode.class, !IS_TRANSIENT, !IS_VOLATILE,
+				IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
+				IS_ORDERED);
+		initEAttribute(getXamlNode_Prefix(), ecorePackage.getEString(),
+				"prefix", null, 1, 1, XamlNode.class, !IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getXamlNode_Namespace(), ecorePackage.getEString(),
+				"namespace", null, 1, 1, XamlNode.class, !IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEAttribute(getXamlNode_Value(), ecorePackage.getEString(), "value",
+				null, 0, 1, XamlNode.class, !IS_TRANSIENT, !IS_VOLATILE,
+				IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
+				IS_ORDERED);
+		initEReference(getXamlNode_ChildNodes(), this.getXamlElement(), null,
+				"childNodes", null, 0, -1, XamlNode.class, !IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getXamlNode_Attributes(), this.getXamlAttribute(), null,
+				"attributes", null, 0, -1, XamlNode.class, !IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getXamlNode_Id(), ecorePackage.getEString(), "id", null,
+				0, 1, XamlNode.class, !IS_TRANSIENT, !IS_VOLATILE,
+				IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED,
+				IS_ORDERED);
+		initEReference(getXamlNode_Comments(), this.getComment(), null,
+				"comments", null, 0, -1, XamlNode.class, !IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getXamlNode_Widget(), ecorePackage.getEJavaObject(),
+				"widget", null, 0, 1, XamlNode.class, !IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+
+		op = addEOperation(xamlNodeEClass, this.getXamlAttribute(),
+				"getAttribute", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "name", 0, 1, IS_UNIQUE,
+				IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "namespace", 0, 1,
+				IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(xamlNodeEClass, this.getXamlAttribute(),
+				"getAttribute", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, theEcorePackage.getEString(), "name", 0, 1,
+				IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(xamlNodeEClass, this.getXamlElement(), "getChild",
+				0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "name", 0, 1, IS_UNIQUE,
+				IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "namespace", 0, 1,
+				IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(xamlNodeEClass, this.getXamlElement(), "getChild",
+				0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, theEcorePackage.getEString(), "name", 0, 1,
+				IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(xamlNodeEClass, this.getXamlElement(), "getChild",
+				0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEInt(), "index", 0, 1, IS_UNIQUE,
+				IS_ORDERED);
+
+		addEOperation(xamlNodeEClass, this.getXamlDocument(),
+				"getOwnerDocument", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		addEOperation(xamlNodeEClass, ecorePackage.getEString(),
+				"attributeNames", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(xamlNodeEClass, ecorePackage.getEString(),
+				"attributeNames", 0, -1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "namespace", 0, 1,
+				IS_UNIQUE, IS_ORDERED);
+
+		addEOperation(xamlNodeEClass, ecorePackage.getEString(),
+				"attributeNamespaces", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+		addEOperation(xamlNodeEClass, this.getXamlNode(), "getParent", 0, 1,
+				IS_UNIQUE, IS_ORDERED);
+
+		op = addEOperation(xamlNodeEClass, this.getNode(), "generate", 0, 1,
+				IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getDocument(), "document", 0, 1, IS_UNIQUE,
+				IS_ORDERED);
+		EGenericType g1 = createEGenericType(ecorePackage.getEMap());
+		EGenericType g2 = createEGenericType(ecorePackage.getEString());
+		g1.getETypeArguments().add(g2);
+		g2 = createEGenericType(ecorePackage.getEJavaObject());
+		g1.getETypeArguments().add(g2);
+		addEParameter(op, g1, "options", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		addEOperation(xamlNodeEClass, ecorePackage.getEString(),
+				"getFlatValue", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+		initEClass(xamlElementEClass, XamlElement.class, "XamlElement",
+				!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(xamlAttributeEClass, XamlAttribute.class, "XamlAttribute",
+				!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getXamlAttribute_UseFlatValue(), ecorePackage
+				.getEBoolean(), "useFlatValue", null, 0, 1,
+				XamlAttribute.class, !IS_TRANSIENT, !IS_VOLATILE,
+				IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
+				IS_ORDERED);
+		initEAttribute(getXamlAttribute_GroupName(), ecorePackage.getEString(),
+				"groupName", null, 0, 1, XamlAttribute.class, !IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+
+		initEClass(annotationEClass, Annotation.class, "Annotation",
+				!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getAnnotation_Source(), theEcorePackage.getEString(),
+				"source", null, 0, 1, Annotation.class, !IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEReference(getAnnotation_Details(), theEcorePackage
+				.getEStringToStringMapEntry(), null, "details", null, 0, -1,
+				Annotation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+				IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+
+		initEClass(commentEClass, Comment.class, "Comment", !IS_ABSTRACT,
+				!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getComment_Content(), theEcorePackage.getEString(),
+				"content", null, 0, 1, Comment.class, !IS_TRANSIENT,
+				!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+		initEReference(getComment_Prev(), this.getXamlNode(), null, "prev",
+				null, 0, 1, Comment.class, !IS_TRANSIENT, !IS_VOLATILE,
+				IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getComment_Next(), this.getXamlNode(), null, "next",
+				null, 0, 1, Comment.class, !IS_TRANSIENT, !IS_VOLATILE,
+				IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		// Initialize data types
+		initEDataType(nodeEDataType, Node.class, "Node", IS_SERIALIZABLE,
+				!IS_GENERATED_INSTANCE_CLASS);
+		initEDataType(documentEDataType, Document.class, "Document",
+				IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} //XamlPackageImpl
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/tools/AnnotationTools.java b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/tools/AnnotationTools.java
new file mode 100755
index 0000000..459eecd
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/tools/AnnotationTools.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.xaml.tools;
+
+import org.eclipse.xwt.tools.ui.xaml.Annotation;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class AnnotationTools {
+
+	public static void addAnnotation(XamlNode node, String key, String value) {
+		if (node == null) {
+			return;
+		}
+		Annotation annotation = node.getAnnotation(key);
+		if (annotation == null) {
+			annotation = XamlFactory.eINSTANCE.createAnnotation();
+			annotation.setSource(key);
+			node.getAnnotations().add(annotation);
+		}
+		annotation.getDetails().put(key, value);
+	}
+
+	public static void removeAnnotation(XamlNode node, String key) {
+		if (node == null) {
+			return;
+		}
+		Annotation annotation = node.getAnnotation(key);
+		if (annotation != null) {
+			node.getAnnotations().remove(annotation);
+		}
+	}
+
+	public static boolean isAnnotated(XamlNode node, String key) {
+		if (node == null) {
+			return false;
+		}
+		Annotation annotation = node.getAnnotation(key);
+		return annotation != null && annotation.getDetails().containsKey(key);
+	}
+
+	public static String getAnnotationValue(XamlNode node, String key) {
+		if (node == null) {
+			return null;
+		}
+		if (isAnnotated(node, key)) {
+			return node.getAnnotation(key).getDetails().get(key);
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/tools/XamlCreateTools.java b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/tools/XamlCreateTools.java
new file mode 100755
index 0000000..1f937a2
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/tools/XamlCreateTools.java
@@ -0,0 +1,105 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.xaml.tools;
+
+import org.eclipse.xwt.tools.ui.xaml.XamlAttribute;
+import org.eclipse.xwt.tools.ui.xaml.XamlElement;
+import org.eclipse.xwt.tools.ui.xaml.XamlFactory;
+import org.eclipse.xwt.tools.ui.xaml.XamlNode;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class XamlCreateTools {
+
+	public static XamlAttribute addAttribute(XamlNode parent, String name,
+			String namespace, String value) {
+		if (parent == null || name == null || namespace == null) {
+			throw new NullPointerException();
+		}
+		XamlAttribute attribute = parent.getAttribute(name, namespace);
+		boolean isNew = false;
+		if (attribute == null) {
+			attribute = XamlFactory.eINSTANCE.createXamlAttribute();
+			attribute.setName(name);
+			attribute.setNamespace(namespace);
+			isNew = true;
+		}
+		if (value != null) {
+			attribute.setValue(value);
+		}
+		if (isNew) {
+			parent.getAttributes().add(attribute);
+		}
+		return attribute;
+	}
+
+	public static XamlAttribute addAttribute(XamlNode parent, String name,
+			String namespace) {
+		return addAttribute(parent, name, namespace, null);
+	}
+
+	public static XamlAttribute addComplexAttribute(XamlElement parent,
+			String name, String namespace, String childName,
+			String childNamespace) {
+		return addComplexAttribute(parent, name, namespace, childName,
+				childNamespace, false);
+	}
+
+	public static XamlAttribute addComplexAttribute(XamlElement parent,
+			String name, String namespace, String childName,
+			String childNamespace, boolean allowMutilChild) {
+		if (parent == null || name == null || namespace == null
+				|| childName == null || childNamespace == null) {
+			throw new NullPointerException();
+		}
+		XamlAttribute attribute = parent.getAttribute(name, namespace);
+		if (attribute == null) {
+			attribute = createAttribute(name, namespace);
+			XamlElement child = createElement(childName, childNamespace);
+			attribute.getChildNodes().add(child);
+			parent.getAttributes().add(attribute);
+		} else if (attribute.getChild(childName, childNamespace) == null) {
+			XamlElement child = createElement(childName, childNamespace);
+			if (!allowMutilChild) {
+				attribute.getChildNodes().clear();
+			}
+			attribute.getChildNodes().add(child);
+		}
+		return attribute;
+	}
+
+	public static XamlAttribute createAttribute(String name, String namespace) {
+		if (name == null || namespace == null) {
+			throw new NullPointerException();
+		}
+		XamlAttribute attribute = XamlFactory.eINSTANCE.createXamlAttribute();
+		attribute.setName(name);
+		attribute.setNamespace(namespace);
+		return attribute;
+	}
+
+	public static XamlElement createElement(String name, String namespace) {
+		if (name == null || namespace == null) {
+			throw new NullPointerException();
+		}
+		XamlElement element = XamlFactory.eINSTANCE.createXamlElement();
+		element.setName(name);
+		element.setNamespace(namespace);
+		return element;
+	}
+
+	private XamlCreateTools() {
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/util/XamlAdapterFactory.java b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/util/XamlAdapterFactory.java
new file mode 100755
index 0000000..628db58
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/util/XamlAdapterFactory.java
@@ -0,0 +1,208 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.xaml.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.xwt.tools.ui.xaml.*;
+
+/**
+ * <!-- 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.xwt.tools.ui.xaml.XamlPackage
+ * @generated
+ */
+public class XamlAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static XamlPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public XamlAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = XamlPackage.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 XamlSwitch<Adapter> modelSwitch = new XamlSwitch<Adapter>() {
+		@Override
+		public Adapter caseXamlDocument(XamlDocument object) {
+			return createXamlDocumentAdapter();
+		}
+
+		@Override
+		public Adapter caseAnnotatedObject(AnnotatedObject object) {
+			return createAnnotatedObjectAdapter();
+		}
+
+		@Override
+		public Adapter caseXamlNode(XamlNode object) {
+			return createXamlNodeAdapter();
+		}
+
+		@Override
+		public Adapter caseXamlElement(XamlElement object) {
+			return createXamlElementAdapter();
+		}
+
+		@Override
+		public Adapter caseXamlAttribute(XamlAttribute object) {
+			return createXamlAttributeAdapter();
+		}
+
+		@Override
+		public Adapter caseAnnotation(Annotation object) {
+			return createAnnotationAdapter();
+		}
+
+		@Override
+		public Adapter caseComment(Comment object) {
+			return createCommentAdapter();
+		}
+
+		@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.xwt.tools.ui.xaml.XamlDocument <em>Document</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.xwt.tools.ui.xaml.XamlDocument
+	 * @generated
+	 */
+	public Adapter createXamlDocumentAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.xwt.tools.ui.xaml.AnnotatedObject <em>Annotated Object</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.xwt.tools.ui.xaml.AnnotatedObject
+	 * @generated
+	 */
+	public Adapter createAnnotatedObjectAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.xwt.tools.ui.xaml.XamlNode <em>Node</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.xwt.tools.ui.xaml.XamlNode
+	 * @generated
+	 */
+	public Adapter createXamlNodeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.xwt.tools.ui.xaml.XamlElement <em>Element</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.xwt.tools.ui.xaml.XamlElement
+	 * @generated
+	 */
+	public Adapter createXamlElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.xwt.tools.ui.xaml.XamlAttribute <em>Attribute</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.xwt.tools.ui.xaml.XamlAttribute
+	 * @generated
+	 */
+	public Adapter createXamlAttributeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.xwt.tools.ui.xaml.Annotation <em>Annotation</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.xwt.tools.ui.xaml.Annotation
+	 * @generated
+	 */
+	public Adapter createAnnotationAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.xwt.tools.ui.xaml.Comment <em>Comment</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.xwt.tools.ui.xaml.Comment
+	 * @generated
+	 */
+	public Adapter createCommentAdapter() {
+		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;
+	}
+
+} // XamlAdapterFactory
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/util/XamlSwitch.java b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/util/XamlSwitch.java
new file mode 100755
index 0000000..406cd4d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/src/org/eclipse/xwt/tools/ui/xaml/util/XamlSwitch.java
@@ -0,0 +1,241 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tools.ui.xaml.util;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xwt.tools.ui.xaml.*;
+
+/**
+ * <!-- 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.xwt.tools.ui.xaml.XamlPackage
+ * @generated
+ */
+public class XamlSwitch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static XamlPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * @generated
+	 */
+	public XamlSwitch() {
+		if (modelPackage == null) {
+			modelPackage = XamlPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * 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
+	 */
+	public T doSwitch(EObject theEObject) {
+		return doSwitch(theEObject.eClass(), theEObject);
+	}
+
+	/**
+	 * 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
+	 */
+	protected T doSwitch(EClass theEClass, EObject theEObject) {
+		if (theEClass.eContainer() == modelPackage) {
+			return doSwitch(theEClass.getClassifierID(), theEObject);
+		} else {
+			List<EClass> eSuperTypes = theEClass.getESuperTypes();
+			return eSuperTypes.isEmpty() ? defaultCase(theEObject) : doSwitch(
+					eSuperTypes.get(0), theEObject);
+		}
+	}
+
+	/**
+	 * 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
+	 */
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+		case XamlPackage.XAML_DOCUMENT: {
+			XamlDocument xamlDocument = (XamlDocument) theEObject;
+			T result = caseXamlDocument(xamlDocument);
+			if (result == null)
+				result = caseAnnotatedObject(xamlDocument);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case XamlPackage.ANNOTATED_OBJECT: {
+			AnnotatedObject annotatedObject = (AnnotatedObject) theEObject;
+			T result = caseAnnotatedObject(annotatedObject);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case XamlPackage.XAML_NODE: {
+			XamlNode xamlNode = (XamlNode) theEObject;
+			T result = caseXamlNode(xamlNode);
+			if (result == null)
+				result = caseAnnotatedObject(xamlNode);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case XamlPackage.XAML_ELEMENT: {
+			XamlElement xamlElement = (XamlElement) theEObject;
+			T result = caseXamlElement(xamlElement);
+			if (result == null)
+				result = caseXamlNode(xamlElement);
+			if (result == null)
+				result = caseAnnotatedObject(xamlElement);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case XamlPackage.XAML_ATTRIBUTE: {
+			XamlAttribute xamlAttribute = (XamlAttribute) theEObject;
+			T result = caseXamlAttribute(xamlAttribute);
+			if (result == null)
+				result = caseXamlNode(xamlAttribute);
+			if (result == null)
+				result = caseAnnotatedObject(xamlAttribute);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case XamlPackage.ANNOTATION: {
+			Annotation annotation = (Annotation) theEObject;
+			T result = caseAnnotation(annotation);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case XamlPackage.COMMENT: {
+			Comment comment = (Comment) theEObject;
+			T result = caseComment(comment);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		default:
+			return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Document</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>Document</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseXamlDocument(XamlDocument object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Annotated Object</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>Annotated Object</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseAnnotatedObject(AnnotatedObject object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Node</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>Node</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseXamlNode(XamlNode object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Element</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>Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseXamlElement(XamlElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Attribute</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>Attribute</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseXamlAttribute(XamlAttribute object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Annotation</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>Annotation</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseAnnotation(Annotation object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Comment</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>Comment</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseComment(Comment 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
+	 */
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} // XamlSwitch
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/templates/Header.javajetinc b/plugins/org.eclipse.xwt.tools.ui.xaml/templates/Header.javajetinc
new file mode 100755
index 0000000..72b80c2
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/templates/Header.javajetinc
@@ -0,0 +1,12 @@
+/*******************************************************************************
+ * Copyright (c) 2006-2020 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
diff --git a/plugins/org.eclipse.xwt.tools.ui.xaml/templates/emf-merge.xml b/plugins/org.eclipse.xwt.tools.ui.xaml/templates/emf-merge.xml
new file mode 100755
index 0000000..87b2495
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui.xaml/templates/emf-merge.xml
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui/.classpath b/plugins/org.eclipse.xwt.tools.ui/.classpath
similarity index 100%
rename from org.eclipse.xwt.tools.ui/.classpath
rename to plugins/org.eclipse.xwt.tools.ui/.classpath
diff --git a/org.eclipse.xwt.tools.ui/.gitignore b/plugins/org.eclipse.xwt.tools.ui/.gitignore
similarity index 100%
rename from org.eclipse.xwt.tools.ui/.gitignore
rename to plugins/org.eclipse.xwt.tools.ui/.gitignore
diff --git a/org.eclipse.xwt.tools.ui/.project b/plugins/org.eclipse.xwt.tools.ui/.project
similarity index 100%
rename from org.eclipse.xwt.tools.ui/.project
rename to plugins/org.eclipse.xwt.tools.ui/.project
diff --git a/org.eclipse.xwt.tools.ui/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.xwt.tools.ui/.settings/org.eclipse.jdt.core.prefs
similarity index 100%
rename from org.eclipse.xwt.tools.ui/.settings/org.eclipse.jdt.core.prefs
rename to plugins/org.eclipse.xwt.tools.ui/.settings/org.eclipse.jdt.core.prefs
diff --git a/org.eclipse.xwt.tools.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.xwt.tools.ui/META-INF/MANIFEST.MF
similarity index 100%
rename from org.eclipse.xwt.tools.ui/META-INF/MANIFEST.MF
rename to plugins/org.eclipse.xwt.tools.ui/META-INF/MANIFEST.MF
diff --git a/plugins/org.eclipse.xwt.tools.ui/build.properties b/plugins/org.eclipse.xwt.tools.ui/build.properties
new file mode 100755
index 0000000..bd8b793
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/build.properties
@@ -0,0 +1,19 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml,\
+               icons/,\
+               plugin.properties
diff --git a/org.eclipse.xwt.tools.ui/icons/full/etool16/newexprj_wiz.gif b/plugins/org.eclipse.xwt.tools.ui/icons/full/etool16/newexprj_wiz.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui/icons/full/etool16/newexprj_wiz.gif
rename to plugins/org.eclipse.xwt.tools.ui/icons/full/etool16/newexprj_wiz.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui/icons/full/etool16/newexprj_wiz.png b/plugins/org.eclipse.xwt.tools.ui/icons/full/etool16/newexprj_wiz.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui/icons/full/etool16/newexprj_wiz.png
rename to plugins/org.eclipse.xwt.tools.ui/icons/full/etool16/newexprj_wiz.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui/icons/full/etool16/xaml_wiz.png b/plugins/org.eclipse.xwt.tools.ui/icons/full/etool16/xaml_wiz.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui/icons/full/etool16/xaml_wiz.png
rename to plugins/org.eclipse.xwt.tools.ui/icons/full/etool16/xaml_wiz.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui/icons/full/obj16/Element.png b/plugins/org.eclipse.xwt.tools.ui/icons/full/obj16/Element.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui/icons/full/obj16/Element.png
rename to plugins/org.eclipse.xwt.tools.ui/icons/full/obj16/Element.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui/icons/full/obj16/Event.png b/plugins/org.eclipse.xwt.tools.ui/icons/full/obj16/Event.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui/icons/full/obj16/Event.png
rename to plugins/org.eclipse.xwt.tools.ui/icons/full/obj16/Event.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui/icons/full/obj16/ListBox.gif b/plugins/org.eclipse.xwt.tools.ui/icons/full/obj16/ListBox.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui/icons/full/obj16/ListBox.gif
rename to plugins/org.eclipse.xwt.tools.ui/icons/full/obj16/ListBox.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui/icons/full/obj16/Preview.png b/plugins/org.eclipse.xwt.tools.ui/icons/full/obj16/Preview.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui/icons/full/obj16/Preview.png
rename to plugins/org.eclipse.xwt.tools.ui/icons/full/obj16/Preview.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui/icons/full/obj16/Resources.gif b/plugins/org.eclipse.xwt.tools.ui/icons/full/obj16/Resources.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui/icons/full/obj16/Resources.gif
rename to plugins/org.eclipse.xwt.tools.ui/icons/full/obj16/Resources.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui/icons/full/obj16/Table.gif b/plugins/org.eclipse.xwt.tools.ui/icons/full/obj16/Table.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui/icons/full/obj16/Table.gif
rename to plugins/org.eclipse.xwt.tools.ui/icons/full/obj16/Table.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui/icons/full/obj16/TreeView.gif b/plugins/org.eclipse.xwt.tools.ui/icons/full/obj16/TreeView.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui/icons/full/obj16/TreeView.gif
rename to plugins/org.eclipse.xwt.tools.ui/icons/full/obj16/TreeView.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui/icons/full/obj16/Window.gif b/plugins/org.eclipse.xwt.tools.ui/icons/full/obj16/Window.gif
similarity index 100%
rename from org.eclipse.xwt.tools.ui/icons/full/obj16/Window.gif
rename to plugins/org.eclipse.xwt.tools.ui/icons/full/obj16/Window.gif
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui/icons/full/obj16/eFace16.png b/plugins/org.eclipse.xwt.tools.ui/icons/full/obj16/eFace16.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui/icons/full/obj16/eFace16.png
rename to plugins/org.eclipse.xwt.tools.ui/icons/full/obj16/eFace16.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui/icons/full/obj16/xaml.png b/plugins/org.eclipse.xwt.tools.ui/icons/full/obj16/xaml.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui/icons/full/obj16/xaml.png
rename to plugins/org.eclipse.xwt.tools.ui/icons/full/obj16/xaml.png
Binary files differ
diff --git a/org.eclipse.xwt.tools.ui/icons/full/obj16/xaml_wiz.png b/plugins/org.eclipse.xwt.tools.ui/icons/full/obj16/xaml_wiz.png
similarity index 100%
rename from org.eclipse.xwt.tools.ui/icons/full/obj16/xaml_wiz.png
rename to plugins/org.eclipse.xwt.tools.ui/icons/full/obj16/xaml_wiz.png
Binary files differ
diff --git a/plugins/org.eclipse.xwt.tools.ui/plugin.properties b/plugins/org.eclipse.xwt.tools.ui/plugin.properties
new file mode 100755
index 0000000..45807ca
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/plugin.properties
@@ -0,0 +1,47 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+#******************************************************************************
+# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+# 
+# Contributors:
+#     Soyatec - initial API and implementation
+#******************************************************************************/
+action.label.0 = Open dialog
+category.name.0 = XWT
+wizard.name.0 = New UI File
+wizard.description.0 = Create a stand-alone .xwt file
+wizard.name.1 = New UI Presentation
+wizard.description.1 = Create a presentation to handle the interactive between user and data. 
+wizard.name.2 = New UI Element
+wizard.description.2 = Create a UI element. 
+wizard.name.3 = New e4 Static Part
+wizard.description.3 = Create a static View Part for e4. 
+wizard.name.4 = New e4 Dynamic Part
+wizard.description.4 = Create a Dynamic View Part for e4. 
+content-type.name.0 = XWT File
+perspective.name.0 = XWT
+Bundle-Vendor.0 = Eclipse.org
+Bundle-Name.0 = XWT UI Plug-in (Incubation)
+menu.label.0 = XWT Preview
+action.label.1 = Open in View
+menu.label.1 = XWT Open
+action.label.2 = Open in View
+
+view.name.0 = XWT View
+category.name.1 = XWT
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui/plugin.xml b/plugins/org.eclipse.xwt.tools.ui/plugin.xml
new file mode 100755
index 0000000..626eaf8
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/plugin.xml
Binary files differ
diff --git a/plugins/org.eclipse.xwt.tools.ui/pom.xml b/plugins/org.eclipse.xwt.tools.ui/pom.xml
new file mode 100755
index 0000000..e127614
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-plugins</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt.tools.ui</artifactId>
+	<version>0.10.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+</project>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/ExceptionHandle.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/ExceptionHandle.java
new file mode 100755
index 0000000..5e4a419
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/ExceptionHandle.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+
+public class ExceptionHandle {
+
+	static public void handle(Exception e, String message) {
+		if (e.getMessage() != null) {
+			message += "\n" + e.getMessage();
+		}
+		MessageDialog.openError(XWTUIPlugin.getShell(), "Erreur: ", message);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/XWTPerspectiveFactory.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/XWTPerspectiveFactory.java
new file mode 100755
index 0000000..89cadf0
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/XWTPerspectiveFactory.java
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui;
+
+import org.eclipse.jdt.ui.JavaUI;
+import org.eclipse.ui.IFolderLayout;
+import org.eclipse.ui.IPageLayout;
+import org.eclipse.ui.IPerspectiveFactory;
+import org.eclipse.xwt.ui.views.XWTView;
+
+public class XWTPerspectiveFactory implements IPerspectiveFactory {
+
+	public static final String XWT_PERSPECTIVE_ID = "org.eclipse.xwt.ui.perspective";
+	private IPageLayout factory;
+
+	public void createInitialLayout(IPageLayout factory) {
+		this.factory = factory;
+		addViews();
+		addActionSets();
+		addNewWizardShortcuts();
+		addPerspectiveShortcuts();
+		addViewShortcuts();
+	}
+
+	private void addViews() {
+		factory.setFixed(false);
+		String editorArea = factory.getEditorArea();
+		// Left Top
+		IFolderLayout leftTop = factory.createFolder("leftTop", IPageLayout.LEFT, (float) 0.25, editorArea); //$NON-NLS-1$
+		leftTop.addPlaceholder(IPageLayout.ID_RES_NAV);
+		leftTop.addView(JavaUI.ID_PACKAGES);
+
+		// Left Top
+		IFolderLayout leftButtom = factory.createFolder("leftBottom", IPageLayout.BOTTOM, (float) 0.50, "leftTop"); //$NON-NLS-1$
+		leftButtom.addView(IPageLayout.ID_OUTLINE);
+
+		// Right
+		IFolderLayout right = factory.createFolder("right", IPageLayout.RIGHT, (float) 0.75, editorArea);
+		right.addView("org.eclipse.gef.ui.palette_view");
+
+		// Bottom
+		IFolderLayout bottom = factory.createFolder("bottom", IPageLayout.BOTTOM, (float) 0.75, editorArea); //$NON-NLS-1$
+		bottom.addView(IPageLayout.ID_PROP_SHEET);
+		bottom.addView(IPageLayout.ID_PROBLEM_VIEW);
+		bottom.addView(XWTView.ID);
+	}
+
+	private void addActionSets() {
+		factory.addActionSet(JavaUI.ID_ACTION_SET);
+		factory.addActionSet(JavaUI.ID_ELEMENT_CREATION_ACTION_SET);
+	}
+
+	private void addNewWizardShortcuts() {
+
+		// XWT Creation Wizards.
+		factory.addNewWizardShortcut("org.eclipse.xwt.ui.wizards.newUIFile");
+		factory.addNewWizardShortcut("org.eclipse.xwt.ui.wizards.NewPresentationWizard");
+		factory.addNewWizardShortcut("org.eclipse.xwt.ui.wizards.NewUIElementWizard");
+		factory.addNewWizardShortcut("org.eclipse.xwt.ui.wizards.NewE4StaticPartWizard");
+		factory.addNewWizardShortcut("org.eclipse.xwt.ui.wizards.NewE4DynamicPartWizard");
+
+		// Default JDT Wizards.
+		factory.addNewWizardShortcut("org.eclipse.jdt.ui.wizards.NewPackageCreationWizard"); //$NON-NLS-1$
+		factory.addNewWizardShortcut("org.eclipse.jdt.ui.wizards.NewClassCreationWizard"); //$NON-NLS-1$
+		factory.addNewWizardShortcut("org.eclipse.jdt.ui.wizards.NewInterfaceCreationWizard"); //$NON-NLS-1$
+		factory.addNewWizardShortcut("org.eclipse.jdt.ui.wizards.NewSourceFolderCreationWizard"); //$NON-NLS-1$
+		// Eclipse Resource Wizards.
+		factory.addNewWizardShortcut("org.eclipse.ui.wizards.new.folder");//$NON-NLS-1$
+		factory.addNewWizardShortcut("org.eclipse.ui.wizards.new.file");//$NON-NLS-1$
+	}
+
+	private void addPerspectiveShortcuts() {
+		factory.addPerspectiveShortcut("org.eclipse.ui.resourcePerspective"); //$NON-NLS-1$
+		factory.addPerspectiveShortcut(JavaUI.ID_PERSPECTIVE);
+	}
+
+	private void addViewShortcuts() {
+		factory.addShowViewShortcut(JavaUI.ID_PACKAGES);
+		factory.addShowViewShortcut(IPageLayout.ID_RES_NAV);
+		factory.addShowViewShortcut(IPageLayout.ID_PROBLEM_VIEW);
+		factory.addShowViewShortcut(IPageLayout.ID_OUTLINE);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/XWTUIPlugin.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/XWTUIPlugin.java
new file mode 100755
index 0000000..d00dc5a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/XWTUIPlugin.java
@@ -0,0 +1,147 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IPerspectiveDescriptor;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.WorkbenchException;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.xwt.ui.utils.ProjectContext;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleException;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class XWTUIPlugin extends AbstractUIPlugin {
+
+	// The plug-in ID
+	public static final String PLUGIN_ID = "org.eclipse.xwt.tools.ui";
+
+	// The shared instance
+	private static XWTUIPlugin plugin;
+
+	/**
+	 * The constructor
+	 */
+	public XWTUIPlugin() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext )
+	 */
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		ProjectContext.start();
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext )
+	 */
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		ProjectContext.stop();
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance
+	 * 
+	 * @return the shared instance
+	 */
+	public static XWTUIPlugin getDefault() {
+		return plugin;
+	}
+
+	public static Shell getShell() {
+		IWorkbench workbench = PlatformUI.getWorkbench();
+		IWorkbenchWindow activeWorkbenchWindow = workbench.getActiveWorkbenchWindow();
+		if (activeWorkbenchWindow == null)
+			return null;
+		return activeWorkbenchWindow.getShell();
+	}
+
+	public static void log(int severity, int code, String message, Throwable exception) {
+		getDefault().getLog().log(new Status(severity, getDefault().getBundle().getSymbolicName(), code, message, exception));
+	}
+
+	public static void log(int severity, int code, String message) {
+		getDefault().getLog().log(new Status(severity, getDefault().getBundle().getSymbolicName(), code, message, null));
+	}
+
+	public static void log(int severity, String message) {
+		getDefault().getLog().log(new Status(severity, getDefault().getBundle().getSymbolicName(), -1, message, null));
+	}
+
+	public static void log(Throwable exception) {
+		getDefault().getLog().log(new Status(IStatus.ERROR, getDefault().getBundle().getSymbolicName(), -1, "", exception));
+	}
+
+	public static ImageDescriptor getBundledImageDescriptor(String path) {
+		return AbstractUIPlugin.imageDescriptorFromPlugin(getDefault().getBundle().getSymbolicName(), path);
+	}
+
+	public Image getBundledImage(String path) {
+		Image image = getImageRegistry().get(path);
+		if (image == null) {
+			getImageRegistry().put(path, getBundledImageDescriptor(path));
+			image = getImageRegistry().get(path);
+		}
+		return image;
+	}
+
+	public static void checkStartup() {
+		Bundle bundle = getDefault().getBundle();
+		if (bundle.getState() != Bundle.ACTIVE) {
+			try {
+				bundle.start();
+			} catch (BundleException e) {
+				e.printStackTrace();
+			}
+		}
+	}
+
+	public void openXWTPerspective() {
+		IWorkbench workbench = getWorkbench();
+		int count = workbench.getWorkbenchWindowCount();
+		if (count == 0) {
+			return;
+		}
+		IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
+		if (window == null) {
+			window = workbench.getWorkbenchWindows()[0];
+		}
+		IPerspectiveDescriptor pers = workbench.getPerspectiveRegistry().findPerspectiveWithId(XWTPerspectiveFactory.XWT_PERSPECTIVE_ID);
+		if (pers == null) {
+			return;
+		}
+		try {
+			workbench.showPerspective(XWTPerspectiveFactory.XWT_PERSPECTIVE_ID, window);
+		} catch (WorkbenchException e) {
+			System.out.println("Can't Open XWT Perspective");
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/AddContainerJars.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/AddContainerJars.java
new file mode 100755
index 0000000..9c471fc
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/AddContainerJars.java
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.actions;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IActionDelegate;
+import org.eclipse.ui.IObjectActionDelegate;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.xwt.ui.jdt.ProjectHelper;
+
+public class AddContainerJars implements IObjectActionDelegate {
+	protected IWorkbenchPart part;
+
+	protected IAction action;
+
+	protected ISelection sel;
+
+	/**
+	 * Constructor for Action1.
+	 */
+	public AddContainerJars() {
+		super();
+	}
+
+	/**
+	 * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
+	 */
+	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
+		this.part = targetPart;
+		this.action = action;
+	}
+
+	/**
+	 * @see IActionDelegate#run(IAction) It get back the project name , the create the Main Creation wizard dialog, and open it.
+	 */
+	public void run(IAction action) {
+		IStructuredSelection structured = (IStructuredSelection) sel;
+		Object object = structured.getFirstElement();
+
+		IJavaProject javaProject = null;
+
+		if (object instanceof IProject) // case of Navigator View
+		{
+			javaProject = JavaCore.create((IProject) object);
+		} else if (object instanceof IJavaProject) {
+			javaProject = ((IJavaProject) object);
+		} else {
+			return;
+		}
+
+		if (javaProject != null) {
+			ProjectHelper.AddJars(javaProject);
+		}
+	}
+
+	/**
+	 * @see IActionDelegate#selectionChanged(IAction, ISelection)
+	 */
+	public void selectionChanged(IAction action, ISelection selection) {
+		sel = selection;
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/RemoveContainerJars.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/RemoveContainerJars.java
new file mode 100755
index 0000000..7af3d26
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/RemoveContainerJars.java
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.actions;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IActionDelegate;
+import org.eclipse.ui.IObjectActionDelegate;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.xwt.ui.jdt.ProjectHelper;
+
+public class RemoveContainerJars implements IObjectActionDelegate {
+	protected IWorkbenchPart part;
+
+	protected IAction action;
+
+	protected ISelection sel;
+
+	/**
+	 * Constructor for Action1.
+	 */
+	public RemoveContainerJars() {
+		super();
+	}
+
+	/**
+	 * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
+	 */
+	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
+		this.part = targetPart;
+		this.action = action;
+	}
+
+	/**
+	 * @see IActionDelegate#run(IAction) It get back the project name , the create the Main Creation wizard dialog, and open it.
+	 */
+	public void run(IAction action) {
+		IStructuredSelection structured = (IStructuredSelection) sel;
+		Object object = structured.getFirstElement();
+
+		IJavaProject javaProject = null;
+
+		if (object instanceof IProject) // case of Navigator View
+		{
+			javaProject = JavaCore.create((IProject) object);
+		} else if (object instanceof IJavaProject) {
+			javaProject = ((IJavaProject) object);
+		} else {
+			return;
+		}
+
+		if (javaProject != null) {
+			ProjectHelper.RemoveJars(javaProject);
+		}
+	}
+
+	/**
+	 * @see IActionDelegate#selectionChanged(IAction, ISelection)
+	 */
+	public void selectionChanged(IAction action, ISelection selection) {
+		sel = selection;
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/XWTGenerateView.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/XWTGenerateView.java
new file mode 100755
index 0000000..40d3807
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/XWTGenerateView.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.actions;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IObjectActionDelegate;
+import org.eclipse.ui.IWorkbenchPart;
+
+public class XWTGenerateView implements IObjectActionDelegate {
+
+	protected Collection<IType> types = new ArrayList<IType>();
+
+	public XWTGenerateView() {
+	}
+
+	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
+	}
+
+	public void run(IAction action) {
+		if (types != null && !types.isEmpty()) {
+			// ToolsUIPlugin.checkStartup();
+
+			for (IType type : types) {
+				generateXMLFor(type);
+			}
+		}
+	}
+
+	protected void generateXMLFor(IType type) {
+	}
+
+	public void selectionChanged(IAction action, ISelection selection) {
+		types.clear();
+		IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+		for (Iterator<?> iterator = structuredSelection.iterator(); iterator.hasNext();) {
+			Object element = iterator.next();
+			if (element instanceof IType) {
+				types.add((IType) element);
+			} else if (element instanceof ICompilationUnit) {
+				ICompilationUnit unit = (ICompilationUnit) element;
+				try {
+					IType[] children = unit.getAllTypes();
+					for (int i = 0; i < children.length; i++) {
+						types.add(children[i]);
+					}
+				} catch (JavaModelException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/XWTOpen.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/XWTOpen.java
new file mode 100755
index 0000000..d9a060f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/XWTOpen.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.actions;
+
+import java.util.Iterator;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IObjectActionDelegate;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.xwt.ui.utils.DisplayUtil;
+
+public class XWTOpen implements IObjectActionDelegate {
+
+	protected IFile file;
+
+	public XWTOpen() {
+	}
+
+	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
+	}
+
+	public void run(IAction action) {
+		if (file != null) {
+			DisplayUtil.open(file);
+		}
+	}
+
+	public void selectionChanged(IAction action, ISelection selection) {
+		IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+		for (Iterator<?> iterator = structuredSelection.iterator(); iterator.hasNext();) {
+			Object element = iterator.next();
+			if (element instanceof IFile) {
+				file = (IFile) element;
+				break;
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/XWTViewOpenAction.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/XWTViewOpenAction.java
new file mode 100755
index 0000000..70d4a0c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/actions/XWTViewOpenAction.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.actions;
+
+import java.util.Iterator;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IObjectActionDelegate;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.xwt.ui.ExceptionHandle;
+import org.eclipse.xwt.ui.XWTUIPlugin;
+import org.eclipse.xwt.ui.views.XWTView;
+
+public class XWTViewOpenAction implements IObjectActionDelegate {
+
+	protected IFile file;
+
+	public XWTViewOpenAction() {
+
+	}
+
+	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
+
+	}
+
+	public void run(IAction action) {
+		if (file != null) {
+			XWTUIPlugin.checkStartup();
+			try {
+				XWTView view = (XWTView) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView(XWTView.ID);
+				view.setContent(null, file);
+			} catch (Exception e) {
+				ExceptionHandle.handle(e, "");
+			}
+		}
+	}
+
+	public void selectionChanged(IAction action, ISelection selection) {
+		IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+		for (Iterator<?> iterator = structuredSelection.iterator(); iterator.hasNext();) {
+			Object element = iterator.next();
+			if (element instanceof IFile) {
+				file = (IFile) element;
+				break;
+			}
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/ASTHelper.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/ASTHelper.java
new file mode 100755
index 0000000..95daeb4
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/ASTHelper.java
@@ -0,0 +1,491 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.jdt;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jdt.core.Flags;
+import org.eclipse.jdt.core.IBuffer;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IMethod;
+import org.eclipse.jdt.core.IPackageFragment;
+import org.eclipse.jdt.core.ISourceRange;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.core.Signature;
+import org.eclipse.jdt.core.compiler.IProblem;
+import org.eclipse.jdt.core.dom.AST;
+import org.eclipse.jdt.core.dom.ASTNode;
+import org.eclipse.jdt.core.dom.ASTParser;
+import org.eclipse.jdt.core.dom.AbstractTypeDeclaration;
+import org.eclipse.jdt.core.dom.CompilationUnit;
+import org.eclipse.jdt.core.dom.ITypeBinding;
+import org.eclipse.jdt.core.dom.ImportDeclaration;
+import org.eclipse.jdt.core.dom.rewrite.ImportRewrite;
+import org.eclipse.jdt.core.formatter.CodeFormatter;
+import org.eclipse.jdt.internal.corext.codemanipulation.AddUnimplementedConstructorsOperation;
+import org.eclipse.jdt.internal.corext.codemanipulation.AddUnimplementedMethodsOperation;
+import org.eclipse.jdt.internal.corext.codemanipulation.CodeGenerationSettings;
+import org.eclipse.jdt.internal.core.manipulation.StubUtility;
+import org.eclipse.jdt.internal.corext.dom.ASTNodes;
+import org.eclipse.jdt.internal.corext.util.CodeFormatterUtil;
+import org.eclipse.jdt.internal.corext.util.JavaModelUtil;
+import org.eclipse.jdt.internal.corext.util.Strings;
+import org.eclipse.jdt.internal.ui.preferences.JavaPreferencesSettings;
+import org.eclipse.jdt.ui.CodeGeneration;
+import org.eclipse.jdt.ui.CodeStyleConfiguration;
+import org.eclipse.text.edits.TextEdit;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class ASTHelper {
+
+	public static IType createType(IPackageFragment pack, String typeName, Collection<Class<?>> superInterfaces, Class<?> superClass) {
+		try {
+			IType createdType;
+			ImportsManager imports;
+			Set<String> existingImports;
+
+			String lineDelimiter = StubUtility.getLineDelimiterUsed(pack.getJavaProject());
+
+			String cuName = typeName + ".java";
+			ICompilationUnit parentCU = pack.createCompilationUnit(cuName, "", false, null); //$NON-NLS-1$
+			// create a working copy with a new owner
+
+			parentCU.becomeWorkingCopy(null); // cu is now a (primary) working
+			// copy
+
+			IBuffer buffer = parentCU.getBuffer();
+
+			String simpleTypeStub = constructSimpleTypeStub(typeName);
+			String cuContent = constructCUContent(parentCU, simpleTypeStub, lineDelimiter);
+			buffer.setContents(cuContent);
+
+			CompilationUnit astRoot = createASTForImports(parentCU);
+			existingImports = getExistingImports(astRoot);
+
+			imports = new ImportsManager(astRoot);
+			// add an import that will be removed again. Having this import
+			// solves 14661
+			imports.addImport(JavaModelUtil.concatenateName(pack.getElementName(), typeName));
+
+			String typeContent = constructTypeStub(typeName, superInterfaces, superClass, parentCU, imports, lineDelimiter);
+			int index = cuContent.lastIndexOf(simpleTypeStub);
+			if (index == -1) {
+				AbstractTypeDeclaration typeNode = (AbstractTypeDeclaration) astRoot.types().get(0);
+				int start = ((ASTNode) typeNode.modifiers().get(0)).getStartPosition();
+				int end = typeNode.getStartPosition() + typeNode.getLength();
+				buffer.replace(start, end - start, typeContent);
+			} else {
+				buffer.replace(index, simpleTypeStub.length(), typeContent);
+			}
+
+			createdType = parentCU.getType(typeName);
+
+			// add imports for superclass/interfaces, so types can be resolved
+			// correctly
+
+			ICompilationUnit cu = createdType.getCompilationUnit();
+
+			imports.create(false, null);
+
+			JavaModelUtil.reconcile(cu);
+
+			// set up again
+			astRoot = createASTForImports(imports.getCompilationUnit());
+			imports = new ImportsManager(astRoot);
+
+			createTypeMembers(createdType, imports);
+
+			// add imports
+			imports.create(false, null);
+
+			removeUnusedImports(cu, existingImports, false);
+
+			JavaModelUtil.reconcile(cu);
+
+			format(createdType, lineDelimiter);
+
+			return createdType;
+		} catch (Exception e) {
+			return null;
+		}
+	}
+
+	/**
+	 * @param type
+	 * @param lineDelimiter
+	 * @throws JavaModelException
+	 */
+	private static void format(IType type, String lineDelimiter) throws JavaModelException {
+		ISourceRange range = type.getSourceRange();
+		ICompilationUnit cu = type.getCompilationUnit();
+		IBuffer buf = cu.getBuffer();
+		String originalContent = buf.getText(range.getOffset(), range.getLength());
+
+		String formattedContent = CodeFormatterUtil.format(CodeFormatter.K_CLASS_BODY_DECLARATIONS, originalContent, 0, lineDelimiter, type.getJavaProject());
+		formattedContent = Strings.trimLeadingTabsAndSpaces(formattedContent);
+		buf.replace(range.getOffset(), range.getLength(), formattedContent);
+		cu.commitWorkingCopy(true, null);
+	}
+
+	public static IMethod createMethod(IType type, String methodName, Class<?> returnType, String contentReturnValue, List<Class<?>> arguments) {
+		try {
+			ICompilationUnit cu = type.getCompilationUnit();
+			JavaModelUtil.reconcile(cu);
+			CompilationUnit astUnit = createASTForImports(cu);
+			ImportsManager imports = new ImportsManager(astUnit);
+			Set existingImports = getExistingImports(astUnit);
+
+			List<String> paraNames = new ArrayList<String>();
+			if (arguments != null) {
+				for (Class<?> arg : arguments) {
+					paraNames.add(arg.getSimpleName());
+					imports.addImport(arg.getName());
+				}
+			}
+
+			String lineDelimiter = StubUtility.getLineDelimiterUsed(type.getJavaProject());
+			StringBuilder contents = new StringBuilder();
+			String comment = CodeGeneration.getMethodComment(type.getCompilationUnit(), type.getTypeQualifiedName('.'), methodName, paraNames.toArray(new String[paraNames.size()]), new String[0], Signature.createTypeSignature((returnType == null ? "void" : returnType.getSimpleName()), true), null, lineDelimiter); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+			if (comment != null) {
+				contents.append(comment);
+				contents.append(lineDelimiter);
+			}
+			if (returnType != null) {
+				imports.addImport(returnType.getName());
+			}
+			contents.append("public " + (returnType == null ? "void " : returnType.getSimpleName() + " ") + methodName + "("); //$NON-NLS-1$
+			for (int i = 0; i < paraNames.size(); i++) {
+				String arg = paraNames.get(i);
+				contents.append(arg + " " + Character.toLowerCase(arg.charAt(0)) + arg.substring(1));
+				if (i < paraNames.size()) {
+					contents.append(" ");
+				}
+			}
+			contents.append(") {"); //$NON-NLS-1$
+			contents.append(lineDelimiter);
+
+			final String content = CodeGeneration.getMethodBodyContent(type.getCompilationUnit(), type.getTypeQualifiedName('.'), methodName, false, "", lineDelimiter); //$NON-NLS-1$ //$NON-NLS-2$
+			if (content != null && content.length() != 0)
+				contents.append("\t" + content);
+			// nameMap.append("\n");
+			if (returnType != null) {
+				contents.append("\treturn " + contentReturnValue + ";");
+				contents.append(lineDelimiter);
+			}
+			contents.append("}"); //$NON-NLS-1$
+			removeUnusedImports(cu, existingImports, true);
+
+			JavaModelUtil.reconcile(cu);
+			format(type, lineDelimiter);
+			return type.createMethod(contents.toString(), null, true, null);
+		} catch (CoreException e) {
+		}
+		return null;
+
+	}
+
+	protected static void createTypeMembers(IType type, ImportsManager imports) throws CoreException {
+		createInheritedMethods(type, true, true, imports);
+	}
+
+	protected static IMethod[] createInheritedMethods(IType type, boolean doConstructors, boolean doUnimplementedMethods, ImportsManager imports) throws CoreException {
+		final ICompilationUnit cu = type.getCompilationUnit();
+		JavaModelUtil.reconcile(cu);
+		IMethod[] typeMethods = type.getMethods();
+		Set handleIds = new HashSet(typeMethods.length);
+		for (int index = 0; index < typeMethods.length; index++)
+			handleIds.add(typeMethods[index].getHandleIdentifier());
+		ArrayList<IMethod> newMethods = new ArrayList<IMethod>();
+		CodeGenerationSettings settings = JavaPreferencesSettings.getCodeGenerationSettings(type.getJavaProject());
+		settings.createComments = false;
+		ASTParser parser = ASTParser.newParser(AST.JLS3);
+		parser.setResolveBindings(true);
+		parser.setSource(cu);
+		CompilationUnit unit = (CompilationUnit) parser.createAST(null);
+		final ITypeBinding binding = ASTNodes.getTypeBinding(unit, type);
+		if (binding != null) {
+			if (doUnimplementedMethods) {
+				AddUnimplementedMethodsOperation operation = new AddUnimplementedMethodsOperation(unit, binding, null, -1, false, true, false);
+				operation.setCreateComments(false);
+				operation.run(null);
+				createImports(imports, operation.getCreatedImports());
+			}
+			if (doConstructors) {
+				AddUnimplementedConstructorsOperation operation = new AddUnimplementedConstructorsOperation(unit, binding, null, -1, false, true, false, null);
+				operation.setOmitSuper(true);
+				operation.setCreateComments(false);
+				operation.run(null);
+				createImports(imports, operation.getCreatedImports());
+			}
+		}
+		JavaModelUtil.reconcile(cu);
+		typeMethods = type.getMethods();
+		for (int index = 0; index < typeMethods.length; index++)
+			if (!handleIds.contains(typeMethods[index].getHandleIdentifier()))
+				newMethods.add(typeMethods[index]);
+		IMethod[] methods = new IMethod[newMethods.size()];
+		newMethods.toArray(methods);
+		return methods;
+	}
+
+	private static void createImports(ImportsManager imports, String[] createdImports) {
+		for (int index = 0; index < createdImports.length; index++)
+			imports.addImport(createdImports[index]);
+	}
+
+	private static void removeUnusedImports(ICompilationUnit cu, Set existingImports, boolean needsSave) throws CoreException {
+		ASTParser parser = ASTParser.newParser(AST.JLS3);
+		parser.setSource(cu);
+		parser.setResolveBindings(true);
+
+		CompilationUnit root = (CompilationUnit) parser.createAST(null);
+		if (root.getProblems().length == 0) {
+			return;
+		}
+
+		List importsDecls = root.imports();
+		if (importsDecls.isEmpty()) {
+			return;
+		}
+		ImportsManager imports = new ImportsManager(root);
+
+		int importsEnd = ASTNodes.getExclusiveEnd((ASTNode) importsDecls.get(importsDecls.size() - 1));
+		IProblem[] problems = root.getProblems();
+		for (int i = 0; i < problems.length; i++) {
+			IProblem curr = problems[i];
+			if (curr.getSourceEnd() < importsEnd) {
+				int id = curr.getID();
+				if (id == IProblem.UnusedImport || id == IProblem.NotVisibleType) { // not visible
+					// problems hide
+					// unused -> remove
+					// both
+					int pos = curr.getSourceStart();
+					for (int k = 0; k < importsDecls.size(); k++) {
+						ImportDeclaration decl = (ImportDeclaration) importsDecls.get(k);
+						if (decl.getStartPosition() <= pos && pos < decl.getStartPosition() + decl.getLength()) {
+							if (existingImports.isEmpty() || !existingImports.contains(ASTNodes.asString(decl))) {
+								String name = decl.getName().getFullyQualifiedName();
+								if (decl.isOnDemand()) {
+									name += ".*"; //$NON-NLS-1$
+								}
+								if (decl.isStatic()) {
+									imports.removeStaticImport(name);
+								} else {
+									imports.removeImport(name);
+								}
+							}
+							break;
+						}
+					}
+				}
+			}
+		}
+		imports.create(needsSave, null);
+	}
+
+	private static Set /* String */getExistingImports(CompilationUnit root) {
+		List imports = root.imports();
+		Set res = new HashSet(imports.size());
+		for (int i = 0; i < imports.size(); i++) {
+			res.add(ASTNodes.asString((ImportDeclaration) imports.get(i)));
+		}
+		return res;
+	}
+
+	private static CompilationUnit createASTForImports(ICompilationUnit cu) {
+		ASTParser parser = ASTParser.newParser(AST.JLS3);
+		parser.setSource(cu);
+		parser.setResolveBindings(false);
+		parser.setFocalPosition(0);
+		return (CompilationUnit) parser.createAST(null);
+	}
+
+	protected static String constructCUContent(ICompilationUnit cu, String typeContent, String lineDelimiter) throws CoreException {
+		String fileComment = "";
+		String typeComment = "";
+		IPackageFragment pack = (IPackageFragment) cu.getParent();
+		String content = CodeGeneration.getCompilationUnitContent(cu, fileComment, typeComment, typeContent, lineDelimiter);
+		if (content != null) {
+			ASTParser parser = ASTParser.newParser(AST.JLS3);
+			parser.setProject(cu.getJavaProject());
+			parser.setSource(content.toCharArray());
+			CompilationUnit unit = (CompilationUnit) parser.createAST(null);
+			if ((pack.isDefaultPackage() || unit.getPackage() != null) && !unit.types().isEmpty()) {
+				return content;
+			}
+		}
+		StringBuffer buf = new StringBuffer();
+		if (!pack.isDefaultPackage()) {
+			buf.append("package ").append(pack.getElementName()).append(';'); //$NON-NLS-1$
+		}
+		buf.append(lineDelimiter).append(lineDelimiter);
+		if (typeComment != null) {
+			buf.append(typeComment).append(lineDelimiter);
+		}
+		buf.append(typeContent);
+		return buf.toString();
+	}
+
+	/*
+	 * Called from createType to construct the source for this type
+	 */
+	private static String constructTypeStub(String typeName, Collection<Class<?>> superInterfaces, Class<?> superClass, ICompilationUnit parentCU, ImportsManager imports, String lineDelimiter) throws CoreException {
+		StringBuffer buf = new StringBuffer();
+
+		int modifiers = Flags.AccPublic;
+		buf.append(Flags.toString(modifiers));
+		if (modifiers != 0) {
+			buf.append(' ');
+		}
+		String type = "class ";//$NON-NLS-1$
+		String templateID = CodeGeneration.CLASS_BODY_TEMPLATE_ID;
+		buf.append(type);
+		buf.append(typeName);
+		writeSuperClass(buf, imports, superClass);
+		writeSuperInterfaces(buf, imports, superInterfaces);
+
+		buf.append(" {").append(lineDelimiter); //$NON-NLS-1$
+		String typeBody = CodeGeneration.getTypeBody(templateID, parentCU, typeName, lineDelimiter);
+		if (typeBody != null) {
+			buf.append(typeBody);
+		} else {
+			buf.append(lineDelimiter);
+		}
+		buf.append('}').append(lineDelimiter);
+		return buf.toString();
+	}
+
+	private static void writeSuperClass(StringBuffer buf, ImportsManager imports, Class<?> superType) {
+		if (superType == null) {
+			return;
+		}
+		String superclass = superType.getName();
+		buf.append(" extends "); //$NON-NLS-1$
+		buf.append(imports.addImport(superclass));
+	}
+
+	private static void writeSuperInterfaces(StringBuffer buf, ImportsManager imports, Collection<Class<?>> superInterfaces) {
+		if (superInterfaces == null || superInterfaces.isEmpty()) {
+			return;
+		}
+		List<String> interfaces = new ArrayList<String>();
+		for (Class<?> t : superInterfaces) {
+			String name = t.getName();
+			interfaces.add(name);
+			imports.addImport(name);
+		}
+		int last = interfaces.size() - 1;
+		if (last >= 0) {
+			buf.append(" implements "); //$NON-NLS-1$
+			String[] intfs = (String[]) interfaces.toArray(new String[interfaces.size()]);
+			ITypeBinding[] bindings;
+			bindings = new ITypeBinding[intfs.length];
+			for (int i = 0; i <= last; i++) {
+				ITypeBinding binding = bindings[i];
+				if (binding != null) {
+					buf.append(imports.addImport(binding));
+				} else {
+					buf.append(imports.addImport(intfs[i]));
+				}
+				if (i < last) {
+					buf.append(',');
+				}
+			}
+		}
+	}
+
+	private static String constructSimpleTypeStub(String typeName) {
+		StringBuffer buf = new StringBuffer("public class "); //$NON-NLS-1$
+		buf.append(typeName);
+		buf.append("{ }"); //$NON-NLS-1$
+		return buf.toString();
+	}
+
+	/**
+	 * Class used in stub creation routines to add needed imports to a compilation unit.
+	 */
+	public static class ImportsManager {
+
+		private ImportRewrite fImportsRewrite;
+
+		public ImportsManager(CompilationUnit astRoot) {
+			fImportsRewrite = CodeStyleConfiguration.createImportRewrite(astRoot, true);
+		}
+
+		public ICompilationUnit getCompilationUnit() {
+			return fImportsRewrite.getCompilationUnit();
+		}
+
+		/**
+		 * Adds a new import declaration that is sorted in the existing imports. If an import already exists or the import would conflict with an import of an other type with the same simple name, the import is not added.
+		 * 
+		 * @param qualifiedTypeName
+		 *            The fully qualified name of the type to import (dot separated).
+		 * @return Returns the simple type name that can be used in the code or the fully qualified type name if an import conflict prevented the import.
+		 */
+		public String addImport(String qualifiedTypeName) {
+			return fImportsRewrite.addImport(qualifiedTypeName);
+		}
+
+		/**
+		 * Adds a new import declaration that is sorted in the existing imports. If an import already exists or the import would conflict with an import of an other type with the same simple name, the import is not added.
+		 * 
+		 * @param typeBinding
+		 *            the binding of the type to import
+		 * 
+		 * @return Returns the simple type name that can be used in the code or the fully qualified type name if an import conflict prevented the import.
+		 */
+		public String addImport(ITypeBinding typeBinding) {
+			return fImportsRewrite.addImport(typeBinding);
+		}
+
+		/**
+		 * Adds a new import declaration for a static type that is sorted in the existing imports. If an import already exists or the import would conflict with an import of an other static import with the same simple name, the import is not added.
+		 * 
+		 * @param declaringTypeName
+		 *            The qualified name of the static's member declaring type
+		 * @param simpleName
+		 *            the simple name of the member; either a field or a method name.
+		 * @param isField
+		 *            <code>true</code> specifies that the member is a field, <code>false</code> if it is a method.
+		 * @return returns either the simple member name if the import was successful or else the qualified name if an import conflict prevented the import.
+		 * 
+		 * @since 3.2
+		 */
+		public String addStaticImport(String declaringTypeName, String simpleName, boolean isField) {
+			return fImportsRewrite.addStaticImport(declaringTypeName, simpleName, isField);
+		}
+
+		public void create(boolean needsSave, IProgressMonitor monitor) throws CoreException {
+			TextEdit edit = fImportsRewrite.rewriteImports(monitor);
+			JavaModelUtil.applyEdit(fImportsRewrite.getCompilationUnit(), edit, needsSave, null);
+		}
+
+		public void removeImport(String qualifiedName) {
+			fImportsRewrite.removeImport(qualifiedName);
+		}
+
+		public void removeStaticImport(String qualifiedName) {
+			fImportsRewrite.removeStaticImport(qualifiedName);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/ClasspathContainer.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/ClasspathContainer.java
new file mode 100755
index 0000000..51a47e0
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/ClasspathContainer.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.jdt;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jdt.core.IClasspathContainer;
+import org.eclipse.jdt.core.IClasspathEntry;
+
+public class ClasspathContainer implements IClasspathContainer {
+	IClasspathEntry[] entries;
+
+	/**
+	 * 
+	 */
+	public ClasspathContainer(IClasspathEntry[] entries) {
+		this.entries = entries;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jdt.core.IClasspathContainer#getClasspathEntries()
+	 */
+	public IClasspathEntry[] getClasspathEntries() {
+		return entries;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jdt.core.IClasspathContainer#getDescription()
+	 */
+	public String getDescription() {
+		return IContainerConstants.DESCRIPTION;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jdt.core.IClasspathContainer#getKind()
+	 */
+	public int getKind() {
+		return K_APPLICATION;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jdt.core.IClasspathContainer#getPath()
+	 */
+	public IPath getPath() {
+		return new Path(IContainerConstants.LIB_CONTAINER);
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/ClasspathContainerInitializer.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/ClasspathContainerInitializer.java
new file mode 100755
index 0000000..b7e0734
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/ClasspathContainerInitializer.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.jdt;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.jdt.core.IClasspathContainer;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+
+public class ClasspathContainerInitializer extends org.eclipse.jdt.core.ClasspathContainerInitializer {
+
+	public ClasspathContainerInitializer() {
+	}
+
+	@Override
+	public void initialize(IPath containerPath, IJavaProject project) throws CoreException {
+		int size = containerPath.segmentCount();
+		if (size > 0) {
+			if (containerPath.segment(0).equals(IContainerConstants.LIB_CONTAINER)) {
+				ClasspathContainer container = ProjectHelper.createContainer();
+				JavaCore.setClasspathContainer(containerPath, new IJavaProject[] { project }, new IClasspathContainer[] { container }, null);
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/IContainerConstants.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/IContainerConstants.java
new file mode 100755
index 0000000..b673ad1
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/IContainerConstants.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.jdt;
+
+public interface IContainerConstants {
+	String LIB_CONTAINER = "org.eclipse.xwt.tools.ui.CONTAINER";
+
+	String DESCRIPTION = "SWT Library";
+
+	String JAR_FILE_EXTENSION = "jar";
+
+	String JAR_LIB = "plugins";
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/ProjectHelper.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/ProjectHelper.java
new file mode 100755
index 0000000..db6f3ed
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/jdt/ProjectHelper.java
@@ -0,0 +1,252 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.jdt;
+
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.net.URL;
+import java.util.ArrayList;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.IBundleGroup;
+import org.eclipse.core.runtime.IBundleGroupProvider;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jdt.core.IClasspathContainer;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.pde.core.plugin.IPluginBase;
+import org.eclipse.pde.core.plugin.IPluginImport;
+import org.eclipse.pde.core.plugin.IPluginReference;
+import org.eclipse.pde.internal.core.ICoreConstants;
+import org.eclipse.pde.internal.core.bundle.WorkspaceBundleFragmentModel;
+import org.eclipse.pde.internal.core.bundle.WorkspaceBundlePluginModel;
+import org.eclipse.pde.internal.core.bundle.WorkspaceBundlePluginModelBase;
+import org.osgi.framework.Bundle;
+
+public class ProjectHelper {
+	static String[] bundleNames = new String[] { "org.eclipse.swt." + Platform.getWS() + "." + Platform.getOS() + "." + Platform.getOSArch(), "org.eclipse.swt." + Platform.getWS() + "." + Platform.getOS(), "org.eclipse.jface" };
+
+	/**
+	 * Collect all jars
+	 * 
+	 * @return
+	 */
+	public static ClasspathContainer createContainer() {
+		ArrayList<IClasspathEntry> entries = new ArrayList<IClasspathEntry>();
+
+		for (String bundleName : bundleNames) {
+			Bundle bundle = Platform.getBundle(bundleName);
+			try {
+				if (bundle == null) {
+					continue;
+				}
+				String fileName = bundle.getLocation(); // maybe hard coded
+				if (fileName != null && fileName.startsWith("reference:file:")) {
+					fileName = fileName.substring(15);
+				}
+				IPath path = new Path(fileName);
+				if (path.toFile().exists()) {
+					if (IContainerConstants.JAR_FILE_EXTENSION.equalsIgnoreCase(path.getFileExtension())) {
+						entries.add(JavaCore.newLibraryEntry(path, null, null));
+					}
+				}
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+		IClasspathEntry[] paths = new IClasspathEntry[entries.size()];
+		entries.toArray(paths);
+
+		return new ClasspathContainer(paths);
+	}
+
+	public static void checkDependenceJars(IProject project) {
+		checkDependenceJars(JavaCore.create(project));
+	}
+
+	/**
+	 * Check if it is a plugin. If it is, check if com.soyatec.eface.ui is used.
+	 * 
+	 * @param javaProject
+	 */
+	public static void checkDependenceJars(IJavaProject javaProject) {
+		if (javaProject == null) {
+			return;
+		}
+		IProject project = javaProject.getProject();
+		IFile file = project.getFile(ICoreConstants.BUNDLE_FILENAME_DESCRIPTOR);
+
+		if (file != null && file.exists()) {
+			WorkspaceBundlePluginModelBase fModel = null;
+			IFile fragmentFile = project.getFile(ICoreConstants.FRAGMENT_FILENAME_DESCRIPTOR);
+			IFile pluginFile = project.getFile(ICoreConstants.PLUGIN_FILENAME_DESCRIPTOR);
+			if (fragmentFile != null && fragmentFile.exists()) {
+				fModel = new WorkspaceBundleFragmentModel(file, fragmentFile);
+			} else {
+				fModel = new WorkspaceBundlePluginModel(file, pluginFile);
+			}
+			IPluginBase pluginBase = fModel.getPluginBase();
+			IPluginImport[] imports = pluginBase.getImports();
+			for (IPluginImport pluginImport : imports) {
+				// if (eFaceRCPPlugin.PLUGIN_ID.equals(pluginImport.getName())) {
+				return;
+				// }
+			}
+
+			try {
+				IPluginReference[] dependencies = getDependencies();
+				for (IPluginReference pluginReference : dependencies) {
+					IPluginImport iimport = fModel.getPluginFactory().createImport();
+					iimport.setId(pluginReference.getId());
+					iimport.setVersion(pluginReference.getVersion());
+					iimport.setMatch(pluginReference.getMatch());
+					pluginBase.add(iimport);
+				}
+				fModel.save();
+			} catch (CoreException e) {
+				e.printStackTrace();
+			}
+		} else {
+			AddJars(javaProject);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.pde.ui.templates.AbstractTemplateSection#getDependencies(java.lang.String)
+	 */
+	public static IPluginReference[] getDependencies() {
+		return new IPluginReference[0];
+	}
+
+	protected static Bundle findProjectBundle(IProject project) {
+		try {
+			URL location = project.getLocationURI().toURL();
+
+			IBundleGroupProvider[] groupProviders = Platform.getBundleGroupProviders();
+			for (IBundleGroupProvider bundleGroupProvider : groupProviders) {
+				for (IBundleGroup bundleGroup : bundleGroupProvider.getBundleGroups()) {
+					for (Bundle bundle : bundleGroup.getBundles()) {
+						URL bundlePath = bundle.getEntry("/");
+						URL url = FileLocator.resolve(bundlePath);
+						if (location.equals(url)) {
+							return bundle;
+						}
+					}
+				}
+			}
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
+
+	protected static boolean containsJar(IJavaProject javaProject, IClasspathEntry entry, String jarName) {
+		switch (entry.getEntryKind()) {
+		case IClasspathEntry.CPE_VARIABLE:
+			IClasspathEntry resolvedEntry = JavaCore.getJavaCore().getResolvedClasspathEntry(entry);
+			IPath resolvedPath = resolvedEntry.getPath();
+			String string = resolvedPath.toString();
+			if (string.indexOf(jarName) != -1) {
+				return true;
+			}
+			break;
+		case IClasspathEntry.CPE_CONTAINER:
+			try {
+				IPath path = entry.getPath();
+				IClasspathContainer classpathContainer = JavaCore.getJavaCore().getClasspathContainer(path, javaProject);
+				if (classpathContainer != null) {
+					classpathContainer.getClasspathEntries();
+					IClasspathEntry[] oldclasspath = classpathContainer.getClasspathEntries();
+					for (int i = 0; i < oldclasspath.length; i++) {
+						if (containsJar(javaProject, oldclasspath[i], jarName)) {
+							return true;
+						}
+					}
+				}
+			} catch (JavaModelException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+			break;
+		case IClasspathEntry.CPE_SOURCE:
+		case IClasspathEntry.CPE_LIBRARY:
+			IPath path = entry.getPath();
+			String value = path.toString();
+			if (value.indexOf(jarName) != -1) {
+				return true;
+			}
+		}
+
+		return false;
+	}
+
+	public static void AddJars(IJavaProject javaProject) {
+		try {
+			IClasspathEntry[] oldclasspath = javaProject.getRawClasspath();
+			for (int i = 0; i < oldclasspath.length; i++) {
+				if ((oldclasspath[i]).getPath().toString().equals(IContainerConstants.LIB_CONTAINER)) {
+					return;
+				}
+			}
+
+			ClasspathContainer container = ProjectHelper.createContainer();
+
+			IClasspathEntry newContainerEntry = JavaCore.newContainerEntry(container.getPath());
+			JavaCore.setClasspathContainer(newContainerEntry.getPath(), new IJavaProject[] { javaProject }, new IClasspathContainer[] { container }, null);
+
+			IClasspathEntry[] newclasspath = new IClasspathEntry[oldclasspath.length + 1];
+			for (int i = 0; i < oldclasspath.length; i++) {
+				newclasspath[i] = oldclasspath[i];
+			}
+			newclasspath[newclasspath.length - 1] = newContainerEntry;
+			javaProject.setRawClasspath(newclasspath, null);
+		} catch (JavaModelException javaModelException) {
+			javaModelException.printStackTrace();
+		}
+	}
+
+	public static void RemoveJars(IJavaProject javaProject) {
+		try {
+			IClasspathEntry[] oldclasspath = javaProject.getRawClasspath();
+			for (int i = 0; i < oldclasspath.length; i++) {
+				IPath path = oldclasspath[i].getPath();
+				if (path.toString().equals(IContainerConstants.LIB_CONTAINER)) {
+					oldclasspath[i] = null;
+					break;
+				}
+				if (i == oldclasspath.length - 1) {
+					return;
+				}
+			}
+
+			IClasspathEntry[] newclasspath = new IClasspathEntry[oldclasspath.length - 1];
+			for (int i = 0, m = 0; i < oldclasspath.length; i++) {
+				if (oldclasspath[i] != null) {
+					newclasspath[m++] = oldclasspath[i];
+				}
+			}
+			javaProject.setRawClasspath(newclasspath, null);
+		} catch (JavaModelException javaModelException) {
+			javaModelException.printStackTrace();
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/AbstractBuilder.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/AbstractBuilder.java
new file mode 100755
index 0000000..2d8ff15
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/AbstractBuilder.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.utils;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IncrementalProjectBuilder;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.pde.core.plugin.IPluginBase;
+import org.eclipse.pde.core.plugin.IPluginModelBase;
+import org.eclipse.pde.core.plugin.PluginRegistry;
+import org.eclipse.xwt.ui.XWTUIPlugin;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public abstract class AbstractBuilder {
+
+	IProject project;
+
+	public AbstractBuilder(IProject project) {
+		this.project = project;
+	}
+
+	public IProject getProject() {
+		return project;
+	}
+
+	public IPluginModelBase getModel() {
+		return PluginRegistry.findModel(project);
+	}
+
+	public IPluginBase getPluginBase() {
+		IPluginModelBase model = getModel();
+		if (model != null) {
+			return model.getPluginBase(true);
+		}
+		return null;
+	}
+
+	protected IStatus warning(String message) {
+		return new Status(IStatus.WARNING, XWTUIPlugin.PLUGIN_ID, message);
+	}
+
+	protected IStatus info(String message) {
+		return new Status(IStatus.INFO, XWTUIPlugin.PLUGIN_ID, message);
+	}
+
+	protected IStatus error(String message) {
+		return new Status(IStatus.ERROR, XWTUIPlugin.PLUGIN_ID, message);
+	}
+
+	protected void refreshLocal() throws CoreException {
+		project.refreshLocal(IProject.DEPTH_INFINITE, null);
+	}
+
+	protected void buildClean() throws CoreException {
+		project.build(IncrementalProjectBuilder.FULL_BUILD, null);
+	}
+
+	public abstract IStatus build();
+
+	public abstract IStatus unbuild();
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/ClassLoaderHelper.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/ClassLoaderHelper.java
new file mode 100755
index 0000000..c6e44f1
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/ClassLoaderHelper.java
@@ -0,0 +1,246 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.utils;
+
+import java.io.File;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
+
+public class ClassLoaderHelper {
+
+	public static URL getResourceAsURL(IJavaProject javaProject, String name) {
+		if (javaProject == null)
+			return null;
+
+		Set<IJavaProject> visited = new HashSet<IJavaProject>();
+		URL url = findResourceURL(javaProject, visited, true, name);
+		if (url == null) {
+			IFile file = javaProject.getProject().getFile(name);
+			if (file.exists()) {
+				url = toURL(file.getLocation());
+			}
+		}
+		return url;
+	}
+
+	public static byte[] getClassContent(IJavaProject javaProject, String className) {
+		if (javaProject == null || !javaProject.exists())
+			return null;
+		String resourceName = className.replace('.', '/') + ".class";
+		try {
+			IPath outPath = javaProject.getProject().getLocation().removeLastSegments(1).append(javaProject.getOutputLocation());
+			outPath = outPath.addTrailingSeparator();
+			{
+				URL url = toURL(outPath.append(resourceName));
+				if (url != null) {
+					InputStream inputStream = url.openStream();
+					byte[] content = new byte[inputStream.available()];
+					inputStream.read(content);
+					return content;
+				}
+				for (IProject project : javaProject.getProject().getReferencedProjects()) {
+					if (!project.isOpen()) {
+						continue;
+					}
+					IJavaProject javaReferencedProject = JavaCore.create(project);
+					if (javaReferencedProject.exists()) {
+						byte[] content = getClassContent(javaReferencedProject, className);
+						if (content != null) {
+							return content;
+						}
+					}
+				}
+			}
+			IType type = javaProject.findType(className);
+			if (type != null && type.exists()) {
+				if (type.isBinary()) {
+					return type.getClassFile().getBytes();
+				} else {
+					IJavaProject typeProject = type.getJavaProject();
+					if (!javaProject.equals(typeProject)) {
+						return getClassContent(typeProject, className);
+					}
+				}
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
+
+	public static URL[] getClasspathAsURLArray(IJavaProject javaProject) {
+		if (javaProject == null)
+			return null;
+		Set<IJavaProject> visited = new HashSet<IJavaProject>();
+		List<URL> urls = new ArrayList<URL>(20);
+		collectClasspathURLs(javaProject, urls, visited, true);
+		URL[] result = new URL[urls.size()];
+		urls.toArray(result);
+		return result;
+	}
+
+	private static URL findResourceURL(IJavaProject javaProject, Set<IJavaProject> visited, boolean isFirstProject, String name) {
+		if (visited.contains(javaProject))
+			return null;
+		visited.add(javaProject);
+		try {
+			IPath outPath = javaProject.getProject().getLocation().removeLastSegments(1).append(javaProject.getOutputLocation());
+			outPath = outPath.addTrailingSeparator();
+			{
+				URL url = toURL(outPath.append(name));
+				if (url != null) {
+					return url;
+				}
+			}
+			for (IPackageFragmentRoot fragment : javaProject.getPackageFragmentRoots()) {
+				if (fragment.getKind() == IPackageFragmentRoot.K_SOURCE) {
+					URL url = toURL(fragment.getResource().getLocation().append(name));
+					if (url != null) {
+						return url;
+					}
+				}
+			}
+			// urls.add(out);
+			IClasspathEntry[] entries = javaProject.getResolvedClasspath(true);
+			for (IClasspathEntry entry : entries) {
+				switch (entry.getEntryKind()) {
+				case IClasspathEntry.CPE_LIBRARY: {
+					// TODO
+					IClasspathEntry resolveEntry = JavaCore.getResolvedClasspathEntry(entry);
+					File file = resolveEntry.getPath().toFile();
+					IPath path = resolveEntry.getPath();
+					if (!file.exists()) {
+						String projectName = path.segment(0);
+						IProject project = javaProject.getProject().getWorkspace().getRoot().getProject(projectName);
+						path = project.getLocation().append(path.removeFirstSegments(1));
+					}
+					String spec = "jar:file:" + path.toString() + "!/" + name;
+					try {
+						URL url2 = new URL(spec);
+						url2.getContent();
+						return url2;
+					} catch (Exception e) {
+					}
+				}
+					break;
+				case IClasspathEntry.CPE_CONTAINER:
+
+					break;
+				case IClasspathEntry.CPE_VARIABLE: {
+					{
+						// TODO
+						URL url = toURL(outPath.append(name));
+						if (url != null) {
+							return url;
+						}
+					}
+				}
+					break;
+				case IClasspathEntry.CPE_PROJECT: {
+					if (isFirstProject || entry.isExported()) {
+						URL url = findResourceURL(getJavaProject(entry), visited, false, name);
+						if (url != null) {
+							return url;
+						}
+					}
+					break;
+				}
+				}
+			}
+		} catch (JavaModelException e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
+
+	private static URL toURL(IPath outPath) {
+		File file = outPath.toFile();
+		if (file != null && file.exists()) {
+			try {
+				return file.toURI().toURL();
+			} catch (MalformedURLException e) {
+				e.printStackTrace();
+			}
+		}
+		return null;
+	}
+
+	private static void collectClasspathURLs(IJavaProject javaProject, List<URL> urls, Set<IJavaProject> visited, boolean isFirstProject) {
+		if (visited.contains(javaProject))
+			return;
+		visited.add(javaProject);
+		try {
+			IPath outPath = javaProject.getProject().getWorkspace().getRoot().getFullPath().append(javaProject.getOutputLocation());
+			outPath = outPath.addTrailingSeparator();
+			URL out = createFileURL(outPath);
+			urls.add(out);
+			IClasspathEntry[] entries = null;
+			entries = javaProject.getResolvedClasspath(true);
+			for (IClasspathEntry entry : entries) {
+				switch (entry.getEntryKind()) {
+				case IClasspathEntry.CPE_LIBRARY:
+				case IClasspathEntry.CPE_CONTAINER:
+				case IClasspathEntry.CPE_VARIABLE:
+					collectClasspathEntryURL(entry, urls);
+					break;
+				case IClasspathEntry.CPE_PROJECT: {
+					if (isFirstProject || entry.isExported())
+						collectClasspathURLs(getJavaProject(entry), urls, visited, false);
+					break;
+				}
+				}
+			}
+		} catch (JavaModelException e) {
+			return;
+		}
+	}
+
+	private static URL createFileURL(IPath path) {
+		URL url = null;
+		try {
+			url = new URL("file://" + path.toOSString());
+		} catch (MalformedURLException e) {
+			e.printStackTrace();
+		}
+		return url;
+	}
+
+	private static void collectClasspathEntryURL(IClasspathEntry entry, List<URL> urls) {
+		URL url = createFileURL(entry.getPath());
+		if (url != null)
+			urls.add(url);
+	}
+
+	private static IJavaProject getJavaProject(IClasspathEntry entry) {
+		IProject proj = ResourcesPlugin.getWorkspace().getRoot().getProject(entry.getPath().segment(0));
+		if (proj != null)
+			return JavaCore.create(proj);
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/DependencyBuilder.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/DependencyBuilder.java
new file mode 100755
index 0000000..6b4e45a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/DependencyBuilder.java
@@ -0,0 +1,261 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.utils;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+import java.util.StringTokenizer;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.pde.core.plugin.IPluginBase;
+import org.eclipse.pde.core.plugin.IPluginImport;
+import org.eclipse.pde.core.plugin.IPluginModel;
+import org.eclipse.pde.core.plugin.IPluginModelBase;
+import org.eclipse.pde.core.plugin.IPluginModelFactory;
+import org.eclipse.pde.core.plugin.ISharedExtensionsModel;
+import org.eclipse.pde.core.plugin.PluginRegistry;
+import org.eclipse.pde.internal.core.bundle.BundlePluginBase;
+import org.eclipse.pde.internal.core.bundle.BundlePluginModelBase;
+import org.eclipse.pde.internal.core.bundle.WorkspaceBundleModel;
+import org.eclipse.pde.internal.core.ibundle.IBundle;
+import org.eclipse.pde.internal.core.ibundle.IBundlePluginModelBase;
+import org.eclipse.pde.internal.core.plugin.AbstractPluginModelBase;
+import org.eclipse.pde.internal.core.plugin.PluginBase;
+import org.eclipse.pde.internal.core.plugin.WorkspaceExtensionsModel;
+import org.eclipse.pde.internal.core.text.plugin.PluginBaseNode;
+import org.eclipse.pde.internal.core.text.plugin.PluginDocumentNodeFactory;
+import org.eclipse.pde.internal.core.util.VersionUtil;
+import org.osgi.framework.Constants;
+import org.osgi.framework.Version;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class DependencyBuilder extends AbstractBuilder {
+	private IPluginModelBase[] dependencies;
+	private boolean[] optionals;
+
+	public DependencyBuilder(IProject project, IPluginModelBase[] dependencies) {
+		this(project, dependencies, null);
+	}
+
+	public DependencyBuilder(IProject project, IPluginModelBase[] dependencies, boolean[] optionals) {
+		super(project);
+		this.dependencies = dependencies;
+		this.optionals = optionals;
+		if (optionals == null) {
+			this.optionals = new boolean[dependencies.length];
+			for (int i = 0; i < this.optionals.length; i++) {
+				this.optionals[i] = false;
+			}
+		}
+	}
+
+	public IStatus build() {
+		if (dependencies == null || dependencies.length == 0) {
+			return warning("No dependencies found");
+		}
+		return addDependencies(Arrays.asList(dependencies));
+	}
+
+	private boolean equals(IPluginModelBase source, IPluginModelBase target) {
+		if (source == null) {
+			return target == null;
+		}
+		if (target == null) {
+			return false;
+		}
+		IPluginBase sourceBase = source.getPluginBase();
+		String sourceId = sourceBase.getId();
+		String sourceVersion = sourceBase.getVersion();
+		if (sourceVersion != null) {
+			sourceVersion = new Version(sourceVersion).toString();
+		}
+
+		IPluginBase targetBase = target.getPluginBase();
+		String targetId = targetBase.getId();
+		String targetVersion = targetBase.getVersion();
+		if (targetVersion != null) {
+			targetVersion = new Version(targetVersion).toString();
+		}
+		if (sourceVersion == null || targetVersion == null) {
+			return sourceId.equals(targetId);
+		}
+		return sourceId.equals(targetId) && sourceVersion.equals(targetVersion);
+	}
+
+	private void filter(List<IPluginModelBase> pluginImports, IPluginImport pluginImport) {
+		IPluginModelBase target = PluginRegistry.findModel(pluginImport.getId());
+		for (Iterator iterator = pluginImports.iterator(); iterator.hasNext();) {
+			IPluginModelBase source = (IPluginModelBase) iterator.next();
+			if (equals(source, target)) {
+				iterator.remove();
+			}
+		}
+	}
+
+	public IStatus addDependencies(List<IPluginModelBase> pluginImports) {
+		try {
+			refreshLocal();
+			IBundlePluginModelBase model = (IBundlePluginModelBase) getModel();
+			IPluginBase pluginBase = model.getPluginBase();
+			IPluginImport[] existedImports = pluginBase.getImports();
+			for (IPluginImport dep : existedImports) {
+				filter(pluginImports, dep);
+			}
+			if (pluginImports.isEmpty()) {
+				return warning("There's no dependency found.");
+			}
+			WorkspaceBundleModel bundleModel = (WorkspaceBundleModel) model.getBundleModel();
+			synchronized (bundleModel) {
+				bundleModel.load();
+				boolean isBundleEditable = bundleModel.isEditable();
+				if (!isBundleEditable){
+					bundleModel.setEditable(true);
+				}
+				ISharedExtensionsModel extensionsModel = model.getExtensionsModel();
+				if (extensionsModel != null && extensionsModel instanceof WorkspaceExtensionsModel){
+					((WorkspaceExtensionsModel)extensionsModel).setEditable(true);
+				}
+				
+				IPluginImport[] imports = new IPluginImport[pluginImports.size()];
+				for (int i = 0; i < pluginImports.size(); i++) {
+					IPluginModel candidate = (IPluginModel) pluginImports.get(i);
+					String pluginId = candidate.getPlugin().getId();
+					IPluginImport importNode = createImport(model.getPluginFactory(), pluginId);
+					importNode.setOptional(optionals[i]);
+					imports[i] = importNode;
+				}
+				addImports(pluginBase, imports);
+
+				bundleModel.save();
+				if (!isBundleEditable){
+					bundleModel.setEditable(false);
+				}
+				if (extensionsModel != null && extensionsModel instanceof WorkspaceExtensionsModel){
+					((WorkspaceExtensionsModel)extensionsModel).setEditable(false);
+				}
+			}
+			buildClean();
+		} catch (Exception e) {
+			return error("Build dependency error: " + e.getMessage());
+		}
+		return Status.OK_STATUS;
+	}
+
+	private IPluginImport createImport(IPluginModelFactory factory, String id) {
+		if (factory instanceof AbstractPluginModelBase) {
+			return ((AbstractPluginModelBase) factory).createImport(id);
+		} else if (factory instanceof BundlePluginModelBase) {
+			return ((BundlePluginModelBase) factory).createImport(id);
+		} else if (factory instanceof PluginDocumentNodeFactory) {
+			return ((PluginDocumentNodeFactory) factory).createImport(id);
+		}
+		return null;
+	}
+
+	private void addImports(IPluginBase base, IPluginImport[] imports) throws Exception {
+		if (base instanceof BundlePluginBase) {
+			((BundlePluginBase) base).add(imports);
+		} else if (base instanceof PluginBase) {
+			((PluginBase) base).add(imports);
+		} else if (base instanceof PluginBaseNode) {
+			((PluginBaseNode) base).add(imports);
+		}
+	}
+
+	public IStatus unbuild() {
+		if (dependencies == null || dependencies.length == 0) {
+			return warning("No dependency found");
+		}
+		try {
+			refreshLocal();
+			IBundlePluginModelBase model = (IBundlePluginModelBase) getModel();
+			IPluginBase pluginBase = model.getPluginBase();
+			List<IPluginImport> removes = new ArrayList<IPluginImport>();
+			IPluginImport[] existings = pluginBase.getImports();
+			for (IPluginImport pluginImport : existings) {
+				IPluginModelBase importModel = PluginRegistry.findModel(pluginImport.getId());
+				for (IPluginModelBase dep : dependencies) {
+					if (equals(importModel, dep)) {
+						removes.add(pluginImport);
+					}
+				}
+			}
+			if (removes.isEmpty()) {
+				return warning("No dependency found for remove");
+			}
+			IBundle bundle = model.getBundleModel().getBundle();
+			WorkspaceBundleModel bundleModel = (WorkspaceBundleModel) model.getBundleModel();
+			synchronized (bundleModel) {
+				bundleModel.load();
+				bundleModel.setEditable(true);
+				removeImports(pluginBase, removes.toArray(new IPluginImport[0]));
+				removeDependencies(bundle, removes.toArray(new IPluginImport[0]));
+				bundleModel.save();
+				bundleModel.setEditable(false);
+			}
+			buildClean();
+		} catch (Exception e) {
+			return error("Build dependency error: " + e.getMessage());
+		}
+		return Status.OK_STATUS;
+	}
+
+	private void removeImports(IPluginBase base, IPluginImport[] imports) throws CoreException {
+		if (base instanceof BundlePluginBase)
+			((BundlePluginBase) base).remove(imports);
+		else if (base instanceof PluginBase)
+			((PluginBase) base).remove(imports);
+		else if (base instanceof PluginBaseNode)
+			((PluginBaseNode) base).remove(imports);
+	}
+
+	/**
+	 * Fixed a bug of removing library from IPluginBase.remove(pluginImports), the bundle does not update at all.
+	 */
+	private void removeDependencies(IBundle bundle, IPluginImport[] imports) {
+		String oldValue = bundle.getHeader(Constants.REQUIRE_BUNDLE);
+		if (oldValue == null || oldValue.equals("")) {
+			return;
+		}
+		List<String> values = new ArrayList<String>();
+		StringTokenizer stk = new StringTokenizer(oldValue, ",");
+		while (stk.hasMoreTokens()) {
+			values.add(stk.nextToken().trim());
+		}
+		for (IPluginImport dep : imports) {
+			String name = dep.getId();
+			for (Iterator<String> iterator = values.iterator(); iterator.hasNext();) {
+				String requiredDep = iterator.next();
+				if (requiredDep.startsWith(name)) {
+					iterator.remove();
+				}
+			}
+		}
+		String newValue = null;
+		for (int i = 0; i < values.size(); i++) {
+			if (newValue == null) {
+				newValue = values.get(i);
+			} else {
+				newValue += "," + values.get(i);
+			}
+		}
+		bundle.setHeader(Constants.REQUIRE_BUNDLE, newValue);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/DisplayUtil.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/DisplayUtil.java
new file mode 100755
index 0000000..8372124
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/DisplayUtil.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.utils;
+
+import java.net.URI;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+
+public class DisplayUtil {
+
+	public static void open(IFile file) {
+		if (file != null) {
+			IJavaProject javaProject = JavaCore.create(file.getProject());
+			if (!javaProject.exists()) {
+				return;
+			}
+			URI uri = file.getLocationURI();
+			try {
+				XWT.setLoadingContext(ProjectContext.getContext(javaProject));
+				Object widget = XWT.load(uri.toURL());
+				if (!(widget instanceof Control)) {
+					throw new XWTException("Root element must be a control.");
+				}
+				Shell shell = ((Control)widget).getShell();
+				shell.pack();
+				shell.open();
+				while (!shell.isDisposed())
+					if (!shell.getDisplay().readAndDispatch())
+						shell.getDisplay().sleep();
+			} catch (Exception e) {
+				e.printStackTrace();
+				if (e instanceof RuntimeException) {
+					throw (RuntimeException) e;
+				}
+				throw new RuntimeException(e);
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/IBuildPropertiesConstants.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/IBuildPropertiesConstants.java
new file mode 100755
index 0000000..4babb39
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/IBuildPropertiesConstants.java
@@ -0,0 +1,105 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     IBM - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.utils;
+
+public interface IBuildPropertiesConstants {
+	public final static String PERMISSIONS = "permissions"; //$NON-NLS-1$
+	public final static String LINK = "link"; //$NON-NLS-1$
+	public final static String EXECUTABLE = "executable"; //$NON-NLS-1$
+	public final static String ROOT_PREFIX = "root."; //$NON-NLS-1$
+	public final static String ROOT = "root"; //$NON-NLS-1$
+	public final static String ROOT_FOLDER_PREFIX = ROOT_PREFIX + "folder."; //$NON-NLS-1$
+	public final static String FOLDER_INFIX = ".folder."; //$NON-NLS-1$
+
+	public final static String TRUE = "true"; //$NON-NLS-1$
+	public final static String FALSE = "false"; //$NON-NLS-1$
+
+	public static final String PROPERTY_JAR_EXTRA_CLASSPATH = "jars.extra.classpath"; //$NON-NLS-1$
+	public static final String PROPERTY_JAR_ORDER = "jars.compile.order"; //$NON-NLS-1$
+	public static final String PROPERTY_SOURCE_PREFIX = "source."; //$NON-NLS-1$
+	public static final String PROPERTY_OUTPUT_PREFIX = "output."; //$NON-NLS-1$
+	public static final String PROPERTY_EXTRAPATH_PREFIX = "extra."; //$NON-NLS-1$	
+	public static final String PROPERTY_EXCLUDE_PREFIX = "exclude."; //$NON-NLS-1$
+	public static final String PROPERTY_JAR_SUFFIX = ".jar"; //$NON-NLS-1$
+	public static final String PROPERTY_MANIFEST_PREFIX = "manifest."; //$NON-NLS-1$
+
+	public static final String PROPERTY_CONVERTED_MANIFEST = "convertedManifest"; //$NON-NLS-1$
+	public static final String PROPERTY_QUALIFIER = "qualifier"; //$NON-NLS-1$
+	public static final String PROPERTY_VERSION_REPLACEMENT = "versionReplacement"; //$NON-NLS-1$
+	public static final String PROPERTY_NONE = "none"; //$NON-NLS-1$
+	public static final String PROPERTY_CONTEXT = "context"; //$NON-NLS-1$
+
+	public final static String GENERATION_SOURCE_PREFIX = "generate."; //$NON-NLS-1$
+	public final static String GENERATION_SOURCE_FEATURE_PREFIX = GENERATION_SOURCE_PREFIX + "feature@"; //$NON-NLS-1$
+	public final static String GENERATION_SOURCE_PLUGIN_PREFIX = GENERATION_SOURCE_PREFIX + "plugin@"; //$NON-NLS-1$
+	public final static String PROPERTY_SOURCE_FEATURE_NAME = "sourceFeature.name"; //$NON-NLS-1$
+
+	public static final String PROPERTY_CUSTOM = "custom"; //$NON-NLS-1$
+	public static final String PROPERTY_GENERATE_SOURCE_BUNDLE = "generateSourceBundle"; //$NON-NLS-1$
+	public static final String PROPERTY_ZIP_SUFFIX = ".zip"; //$NON-NLS-1$
+
+	public static final String PROPERTY_BIN_EXCLUDES = "bin.excludes"; //$NON-NLS-1$
+	public static final String PROPERTY_BIN_INCLUDES = "bin.includes"; //$NON-NLS-1$
+
+	public static final String PROPERTY_SRC_EXCLUDES = "src.excludes"; //$NON-NLS-1$
+	public static final String PROPERTY_SRC_INCLUDES = "src.includes"; //$NON-NLS-1$
+	public static final String PROPERTY_SRC_ROOTS = "src.additionalRoots"; //$NON-NLS-1$
+
+	public static final String PROPERTY_JAVAC_DEFAULT_ENCODING_PREFIX = "javacDefaultEncoding."; //$NON-NLS-1$
+	public static final String PROPERTY_JAVAC_CUSTOM_ENCODINGS_PREFIX = "javacCustomEncodings."; //$NON-NLS-1$
+	public static final String PROPERTY_JAVAC_WARNINGS_PREFIX = "javacWarnings."; //$NON-NLS-1$
+
+	public static final String DEFAULT_MATCH_ALL = "*"; //$NON-NLS-1$
+	public static final String DEFAULT_FINAL_SHAPE = "*"; //$NON-NLS-1$
+
+	public static final String PROPERTY_OVERWRITE_ROOTFILES = "overwriteRootFiles"; //$NON-NLS-1$
+
+	public static final String PROPERTY_CUSTOM_BUILD_CALLBACKS = "customBuildCallbacks"; //$NON-NLS-1$
+	public static final String PROPERTY_CUSTOM_CALLBACKS_BUILDPATH = "customBuildCallbacks.buildpath"; //$NON-NLS-1$
+	public static final String PROPERTY_CUSTOM_CALLBACKS_FAILONERROR = "customBuildCallbacks.failonerror"; //$NON-NLS-1$
+	public static final String PROPERTY_CUSTOM_CALLBACKS_INHERITALL = "customBuildCallbacks.inheritall"; //$NON-NLS-1$
+	public static final String PROPERTY_JAVAC_SOURCE = "javacSource"; //$NON-NLS-1$
+	public static final String PROPERTY_JAVAC_TARGET = "javacTarget"; //$NON-NLS-1$
+	public static final String PROPERTY_BOOT_CLASSPATH = "bootClasspath"; //$NON-NLS-1$
+	public static final String PROPERTY_JRE_COMPILATION_PROFILE = "jre.compilation.profile"; //$NON-NLS-1$
+
+	public static final String PROPERTY_SIGNIFICANT_VERSION_DIGITS = "significantVersionDigits"; //$NON-NLS-1$
+	public static final String PROPERTY_GENERATED_VERSION_LENGTH = "generatedVersionLength"; //$NON-NLS-1$
+
+	public static final String PROPERTY_RESOLVER_MODE = "osgi.resolverMode"; //$NON-NLS-1$
+	public static final String VALUE_DEVELOPMENT = "development"; //$NON-NLS-1$
+
+	public static final String RESOLVER_DEV_MODE = "resolution.devMode"; //$NON-NLS-1$
+	public static final String PROPERTY_INDIVIDUAL_SOURCE = "individualSourceBundles"; //$NON-NLS-1$
+	public static final String PROPERTY_ALLOW_BINARY_CYCLES = "allowBinaryCycles"; //$NON-NLS-1$
+
+	public static final String PROPERTY_P2_METADATA_REPO = "p2.metadata.repo"; //$NON-NLS-1$
+	public static final String PROPERTY_P2_ARTIFACT_REPO = "p2.artifact.repo"; //$NON-NLS-1$
+	public static final String PROPERTY_P2_PUBLISH_ARTIFACTS = "p2.publish.artifacts"; //$NON-NLS-1$
+	public static final String PROPERTY_P2_CATEGORY_SITE = "p2.category.site"; //$NON-NLS-1$
+	public static final String PROPERTY_P2_ROOT_NAME = "p2.root.name"; //$NON-NLS-1$
+	public static final String PROPERTY_P2_ROOT_VERSION = "p2.root.version"; //$NON-NLS-1$
+	public static final String PROPERTY_P2_FINAL_MODE_OVERRIDE = "p2.final.mode.override"; //$NON-NLS-1$
+	public static final String PROPERTY_P2_FLAVOR = "p2.flavor"; //$NON-NLS-1$
+	public static final String PROPERTY_P2_APPEND = "p2.append"; //$NON-NLS-1$
+	public static final String PROPERTY_P2_COMPRESS = "p2.compress"; //$NON-NLS-1$
+	public static final String PROPERTY_P2_METADATA_REPO_NAME = "p2.metadata.repo.name"; //$NON-NLS-1$
+	public static final String PROPERTY_P2_ARTIFACT_REPO_NAME = "p2.artifact.repo.name"; //$NON-NLS-1$
+	//Internal usage only
+	public static final String PROPERTY_P2_GENERATION_MODE = "p2.generation.mode"; //$NON-NLS-1$
+	public static final String SOURCE_PLUGIN = "sourcePlugin"; //$NON-NLS-1$
+
+	public static final String PROPERTY_PACKAGER_MODE = "packagerMode"; //$NON-NLS-1$
+	public static final String PROPERTY_PACKAGER_AS_NORMALIZER = "packagerAsNormalizer"; //$NON-NLS-1$
+}
+
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/ImageManager.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/ImageManager.java
new file mode 100755
index 0000000..6048ee3
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/ImageManager.java
@@ -0,0 +1,114 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.utils;
+
+import java.net.URL;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.xwt.ui.XWTUIPlugin;
+import org.osgi.framework.Bundle;
+
+public class ImageManager {
+
+	public static final IPath ICONS_PATH = new Path("/icons/full"); //$NON-NLS-1$
+
+	private static final String NAME_PREFIX = XWTUIPlugin.getDefault().getBundle().getSymbolicName() + ".";
+	private static final int NAME_PREFIX_LENGTH = NAME_PREFIX.length();
+
+	private static final String T_OBJ = "obj16"; //$NON-NLS-1$
+	private static final String T_OVR = "ovr16"; //$NON-NLS-1$
+	private static final String T_WIZBAN = "wizban"; //$NON-NLS-1$
+	private static final String T_ELCL = "elcl16"; //$NON-NLS-1$
+	private static final String T_DLCL = "dlcl16"; //$NON-NLS-1$
+	private static final String T_ETOOL = "etool16"; //$NON-NLS-1$
+	private static final String T_EVIEW = "eview16"; //$NON-NLS-1$
+
+	/*
+	 * Keys for images available from the Java-UI plug-in image registry.
+	 */
+	public static final String IMG_ELEMENT = NAME_PREFIX + "Element.png"; //$NON-NLS-1$
+	public static final String IMG_EVENT = NAME_PREFIX + "Event.png"; //$NON-NLS-1$
+	public static final String IMG_RESOURCES = NAME_PREFIX + "Resources.gif"; //$NON-NLS-1$
+	public static final String IMG_TRIGGER = NAME_PREFIX + "Trigger.gif"; //$NON-NLS-1$
+	public static final String IMG_PREVIEW = NAME_PREFIX + "Preview.png"; //$NON-NLS-1$
+	public static final String IMG_TABLE = NAME_PREFIX + "Table.gif"; //$NON-NLS-1$
+
+	/*
+	 * Set of predefined Image Descriptors.
+	 */
+	public static final ImageDescriptor OBJ_ELEMENT = createManagedFromKey(T_OBJ, IMG_ELEMENT); //$NON-NLS-1$
+	public static final ImageDescriptor OBJ_EVENT = createManagedFromKey(T_OBJ, IMG_EVENT); //$NON-NLS-1$
+	public static final ImageDescriptor OBJ_RESOURCES = createManagedFromKey(T_OBJ, IMG_RESOURCES); //$NON-NLS-1$
+	public static final ImageDescriptor OBJ_TRIGGER = createManagedFromKey(T_OBJ, IMG_TRIGGER); //$NON-NLS-1$
+	public static final ImageDescriptor OBJ_PREVIEW = createManagedFromKey(T_OBJ, IMG_PREVIEW); //$NON-NLS-1$
+	public static final ImageDescriptor OBJ_TABLE = createManagedFromKey(T_OBJ, IMG_TABLE); //$NON-NLS-1$
+
+	private static ImageDescriptor createManagedFromKey(String prefix, String key) {
+		return createManaged(prefix, key.substring(NAME_PREFIX_LENGTH), key);
+	}
+
+	private static ImageDescriptor createManaged(String prefix, String name, String key) {
+		ImageDescriptor result = create(prefix, name, true);
+		JFaceResources.getImageRegistry().put(key, result);
+		return result;
+	}
+
+	/*
+	 * Creates an image descriptor for the given path in a bundle. The path can contain variables like $NL$. If no image could be found, <code>useMissingImageDescriptor</code> decides if either the 'missing image descriptor' is returned or <code>null</code>. Added for 3.1.1.
+	 */
+	public static ImageDescriptor createImageDescriptor(Bundle bundle, IPath path, boolean useMissingImageDescriptor) {
+		URL url = FileLocator.find(bundle, path, null);
+		if (url != null) {
+			return ImageDescriptor.createFromURL(url);
+		}
+		if (useMissingImageDescriptor) {
+			return ImageDescriptor.getMissingImageDescriptor();
+		}
+		return null;
+	}
+
+	/*
+	 * Creates an image descriptor for the given prefix and name in the JDT UI bundle. The path can contain variables like $NL$. If no image could be found, <code>useMissingImageDescriptor</code> decides if either the 'missing image descriptor' is returned or <code>null</code>. or <code>null</code>.
+	 */
+	private static ImageDescriptor create(String prefix, String name, boolean useMissingImageDescriptor) {
+		IPath path = ICONS_PATH.append(prefix).append(name);
+		return createImageDescriptor(XWTUIPlugin.getDefault().getBundle(), path, useMissingImageDescriptor);
+	}
+
+	/*
+	 * Creates an image descriptor for the given prefix and name in the JDT UI bundle. The path can contain variables like $NL$. If no image could be found, the 'missing image descriptor' is returned.
+	 */
+	private static ImageDescriptor createUnManaged(String prefix, String name) {
+		return create(prefix, name, true);
+	}
+
+	/**
+	 * Returns the image managed under the given key in this registry.
+	 * 
+	 * @param key
+	 *            the image's key
+	 * @return the image managed under the given key
+	 */
+	public static Image get(String key) {
+		return JFaceResources.getImageRegistry().get(key);
+	}
+
+	public static Image getImage(ImageDescriptor imageDescriptor) {
+		return (Image) JFaceResources.getResources().get(imageDescriptor);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/LibraryBuilder.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/LibraryBuilder.java
new file mode 100755
index 0000000..ef320e1
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/LibraryBuilder.java
@@ -0,0 +1,310 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.utils;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.StringTokenizer;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.pde.core.build.IBuild;
+import org.eclipse.pde.core.build.IBuildEntry;
+import org.eclipse.pde.core.build.IBuildModel;
+import org.eclipse.pde.core.plugin.IPluginBase;
+import org.eclipse.pde.core.plugin.IPluginLibrary;
+import org.eclipse.pde.core.plugin.IPluginModelBase;
+import org.eclipse.pde.internal.core.bundle.WorkspaceBundleModel;
+import org.eclipse.pde.internal.core.ibundle.IBundle;
+import org.eclipse.pde.internal.core.ibundle.IBundlePluginModelBase;
+import org.osgi.framework.Constants;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class LibraryBuilder extends AbstractBuilder {
+
+	private String[] libraries;
+
+	public LibraryBuilder(IProject project, String[] libraries) {
+		super(project);
+		this.libraries = libraries;
+	}
+
+	public IStatus build() {
+		if (libraries == null || libraries.length == 0) {
+			return Status.CANCEL_STATUS;
+		}
+		try {
+			refreshLocal();
+			IBundlePluginModelBase model = (IBundlePluginModelBase) getModel();
+			IPluginBase pluginBase = model.getPluginBase();
+			WorkspaceBundleModel bundleModel = (WorkspaceBundleModel) model.getBundleModel();
+			synchronized (bundleModel) {
+				bundleModel.load();
+				boolean isNonEdit = bundleModel.isEditable();
+				if (!isNonEdit) {
+					bundleModel.setEditable(true);
+				}
+				for (String libPath : libraries) {
+					IPluginLibrary library = model.getPluginFactory().createLibrary();
+					library.setName(libPath.toString());
+					library.setExported(true);
+					pluginBase.add(library);
+				}
+				checkSourceRootEntry();
+				updateBuildProperties(new String[libraries.length], libraries, false);
+				updateJavaClasspathLibs(new String[libraries.length], libraries);
+
+				bundleModel.save();
+				if (!isNonEdit) {
+					bundleModel.setEditable(false);
+				}
+			}
+			buildClean();
+		} catch (CoreException e) {
+			error(e.getMessage());
+		}
+		return Status.OK_STATUS;
+	}
+
+	private void checkSourceRootEntry() {
+		IBundlePluginModelBase pluginModel = (IBundlePluginModelBase) getModel();
+		IPluginLibrary[] libraries = pluginModel.getPluginBase().getLibraries();
+		for (int i = 0; i < libraries.length; i++)
+			if (libraries[i].getName().equals(".")) //$NON-NLS-1$
+				return;
+		IBuildModel model = pluginModel.getBuildModel();
+		if (model == null)
+			return;
+
+		IBuildEntry[] entires = model.getBuild().getBuildEntries();
+		for (int i = 0; i < entires.length; i++) {
+			if (entires[i].getName().equals(IBuildPropertiesConstants.PROPERTY_SOURCE_PREFIX + '.')) {
+				IPluginLibrary library = pluginModel.getPluginFactory().createLibrary();
+				try {
+					library.setName("."); //$NON-NLS-1$
+					pluginModel.getPluginBase().add(library);
+				} catch (CoreException e) {
+				}
+			}
+		}
+	}
+
+	private IBuildModel getBuildModel() {
+		IBundlePluginModelBase pluginModel = (IBundlePluginModelBase) getModel();
+		if (pluginModel != null) {
+			return pluginModel.getBuildModel();
+		}
+		return null;
+	}
+
+	private void updateBuildProperties(final String[] oldPaths, final String[] newPaths, boolean modifySourceEntry) {
+		IBuildModel bmodel = getBuildModel();
+		if (bmodel == null)
+			return;
+
+		IBuild build = bmodel.getBuild();
+
+		IBuildEntry entry = build.getEntry(IBuildPropertiesConstants.PROPERTY_BIN_INCLUDES);
+		if (entry == null)
+			entry = bmodel.getFactory().createEntry(IBuildPropertiesConstants.PROPERTY_BIN_INCLUDES);
+
+		try {
+			// adding new entries
+			if (oldPaths[0] == null) {
+				for (int i = 0; i < newPaths.length; i++)
+					if (newPaths[i] != null) {
+						entry.addToken(newPaths[i]);
+						if (modifySourceEntry)
+							configureSourceBuildEntry(bmodel, null, newPaths[i]);
+					}
+				// removing entries
+			} else if (newPaths[0] == null) {
+				for (int i = 0; i < oldPaths.length; i++)
+					if (oldPaths[i] != null) {
+						entry.removeToken(oldPaths[i]);
+						if (modifySourceEntry)
+							configureSourceBuildEntry(bmodel, oldPaths[i], null);
+					}
+				if (entry.getTokens().length == 0)
+					build.remove(entry);
+				// rename entries
+			} else {
+				for (int i = 0; i < oldPaths.length; i++)
+					if (newPaths[i] != null && oldPaths[i] != null) {
+						entry.renameToken(oldPaths[i], newPaths[i]);
+						if (modifySourceEntry)
+							configureSourceBuildEntry(bmodel, oldPaths[i], newPaths[i]);
+					}
+			}
+		} catch (CoreException e) {
+		}
+	}
+
+	private void configureSourceBuildEntry(IBuildModel bmodel, String oldPath, String newPath) throws CoreException {
+		IBuild build = bmodel.getBuild();
+		IBuildEntry entry = build.getEntry(IBuildPropertiesConstants.PROPERTY_SOURCE_PREFIX + (oldPath != null ? oldPath : newPath));
+		try {
+			if (newPath != null) {
+				if (entry == null) {
+					IJavaProject jproject = JavaCore.create(project);
+					ArrayList tokens = new ArrayList();
+					IClasspathEntry[] entries = jproject.getRawClasspath();
+					for (int i = 0; i < entries.length; i++)
+						if (entries[i].getEntryKind() == IClasspathEntry.CPE_SOURCE)
+							tokens.add(entries[i].getPath().removeFirstSegments(1).addTrailingSeparator().toString());
+					if (tokens.size() == 0)
+						return;
+
+					entry = bmodel.getFactory().createEntry(IBuildPropertiesConstants.PROPERTY_SOURCE_PREFIX + newPath);
+					for (int i = 0; i < tokens.size(); i++)
+						entry.addToken((String) tokens.get(i));
+					build.add(entry);
+				} else
+					entry.setName(IBuildPropertiesConstants.PROPERTY_SOURCE_PREFIX + newPath);
+			} else if (entry != null && newPath == null)
+				build.remove(entry);
+		} catch (JavaModelException e) {
+		}
+	}
+
+	private void updateJavaClasspathLibs(String[] oldPaths, String[] newPaths) {
+		IJavaProject jproject = JavaCore.create(project);
+		try {
+			IClasspathEntry[] entries = jproject.getRawClasspath();
+			ArrayList toBeAdded = new ArrayList();
+			int index = -1;
+			entryLoop: for (int i = 0; i < entries.length; i++) {
+				if (entries[i].getEntryKind() == IClasspathEntry.CPE_LIBRARY) {
+					if (index == -1)
+						index = i;
+					// do not add the old paths (handling deletion/renaming)
+					IPath path = entries[i].getPath().removeFirstSegments(1).removeTrailingSeparator();
+					for (int j = 0; j < oldPaths.length; j++)
+						if (oldPaths[j] != null && path.equals(new Path(oldPaths[j]).removeTrailingSeparator()))
+							continue entryLoop;
+				} else if (entries[i].getEntryKind() == IClasspathEntry.CPE_CONTAINER)
+					if (index == -1)
+						index = i;
+				toBeAdded.add(entries[i]);
+			}
+			if (index == -1)
+				index = entries.length;
+
+			// add paths
+			for (int i = 0; i < newPaths.length; i++) {
+				if (newPaths[i] == null)
+					continue;
+				IClasspathEntry entry = JavaCore.newLibraryEntry(project.getFullPath().append(newPaths[i]), null, null, true);
+				if (!toBeAdded.contains(entry))
+					toBeAdded.add(index++, entry);
+			}
+
+			if (toBeAdded.size() == entries.length)
+				return;
+
+			IClasspathEntry[] updated = (IClasspathEntry[]) toBeAdded.toArray(new IClasspathEntry[toBeAdded.size()]);
+			jproject.setRawClasspath(updated, null);
+		} catch (JavaModelException e) {
+		}
+	}
+
+	public IStatus unbuild() {
+		if (libraries == null || libraries.length == 0) {
+			return warning("No library found.");
+		}
+		IPluginModelBase pluginModel = getModel();
+		IBundlePluginModelBase model = (IBundlePluginModelBase) pluginModel;
+		IPluginBase pluginBase = model.getPluginBase();
+		IPluginLibrary[] exists = pluginBase.getLibraries();
+		List<IPluginLibrary> libForRemove = new ArrayList<IPluginLibrary>();
+		for (IPluginLibrary pluginLibrary : exists) {
+			for (String libName : libraries) {
+				if (pluginLibrary.getName().equals(libName)) {
+					libForRemove.add(pluginLibrary);
+				}
+			}
+		}
+		if (libForRemove.isEmpty()) {
+			return warning("No library found.");
+		}
+
+		try {
+			refreshLocal();
+			WorkspaceBundleModel bundleModel = (WorkspaceBundleModel) model.getBundleModel();
+			synchronized (bundleModel) {
+				bundleModel.load();
+				boolean isNonEdit = bundleModel.isEditable();
+				if (!isNonEdit) {
+					bundleModel.setEditable(true);
+				}
+				String[] remove = new String[libForRemove.size()];
+				int i = 0;
+				IBundle bundle = bundleModel.getBundle();
+				for (IPluginLibrary pluginLibrary : libForRemove) {
+					pluginBase.remove(pluginLibrary);
+					String name = pluginLibrary.getName();
+					remove[i++] = name;
+				}
+				removeLibraries(bundle, remove);
+				bundleModel.save();
+				if (!isNonEdit) {
+					bundleModel.setEditable(false);
+				}
+				updateBuildProperties(remove, new String[remove.length], true);
+				updateJavaClasspathLibs(remove, new String[remove.length]);
+			}
+			buildClean();
+		} catch (CoreException e) {
+			error(e.getMessage());
+		}
+		return Status.OK_STATUS;
+	}
+
+	/**
+	 * Fixed a bug of removing library from IPluginBase.remove(pluginLibrary), the bundle does not update at all.
+	 */
+	private void removeLibraries(IBundle bundle, String[] remove) {
+		String oldValue = bundle.getHeader(Constants.BUNDLE_CLASSPATH);
+		if (oldValue == null || oldValue.equals("")) {
+			return;
+		}
+		List<String> values = new ArrayList<String>();
+		StringTokenizer stk = new StringTokenizer(oldValue, ",");
+		while (stk.hasMoreTokens()) {
+			values.add(stk.nextToken().trim());
+		}
+		for (String r : remove) {
+			values.remove(r);
+		}
+		String newValue = null;
+		for (int i = 0; i < values.size(); i++) {
+			if (newValue == null) {
+				newValue = values.get(i);
+			} else {
+				newValue += "," + values.get(i);
+			}
+		}
+		bundle.setHeader(Constants.BUNDLE_CLASSPATH, newValue);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/LoadingContext.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/LoadingContext.java
new file mode 100755
index 0000000..36447c0
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/LoadingContext.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.utils;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+
+import org.eclipse.xwt.IConstants;
+
+public class LoadingContext extends org.eclipse.xwt.DefaultLoadingContext {
+	String namespace = IConstants.XWT_NAMESPACE;
+	protected ArrayList<WeakReference<PropertyChangeListener>> changeSupport = new ArrayList<WeakReference<PropertyChangeListener>>();
+
+	public String getNamespace() {
+		return namespace;
+	}
+
+	public void setNamespace(String namespace) {
+		this.namespace = namespace;
+	}
+
+	public void addPropertyChangeListener(PropertyChangeListener changeListener) {
+		for (WeakReference<PropertyChangeListener> reference : changeSupport) {
+			if (reference.get() == changeListener) {
+				return;
+			}
+		}
+		changeSupport.add(new WeakReference<PropertyChangeListener>(changeListener));
+	}
+
+	public void removePropertyChangeListener(PropertyChangeListener changeListener) {
+		for (WeakReference<PropertyChangeListener> reference : changeSupport) {
+			if (reference.get() == changeListener) {
+				changeSupport.remove(reference);
+				return;
+			}
+		}
+	}
+
+	public void firePropertyChangeListener(PropertyChangeEvent event) {
+		for (WeakReference<PropertyChangeListener> reference : changeSupport) {
+			PropertyChangeListener listener = reference.get();
+			if (listener != null) {
+				listener.propertyChange(event);
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/Log.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/Log.java
new file mode 100755
index 0000000..d9e48d6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/Log.java
@@ -0,0 +1,121 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.xwt.ui.utils;
+
+import java.io.PrintStream;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.xwt.ILogger;
+import org.eclipse.xwt.Tracking;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.console.ConsolePlugin;
+import org.eclipse.ui.console.IConsole;
+import org.eclipse.ui.console.IConsoleManager;
+import org.eclipse.ui.console.MessageConsole;
+import org.eclipse.ui.console.MessageConsoleStream;
+
+/**
+ * @author zl
+ * 
+ */
+public class Log implements ILogger {
+
+	private MessageConsoleStream messageConsoleStream = null;
+	private Map<Tracking, String> messageMap = new HashMap<Tracking, String>();
+	private MessageConsole console;
+
+	private MessageConsoleStream getConsoleStream() {
+		if (messageConsoleStream == null) {
+			ConsolePlugin plugin = ConsolePlugin.getDefault();
+			if (plugin == null) {
+				return null;
+			}
+			console = new MessageConsole("XWT Application [XWT Application]", null);
+			// add console
+			IConsoleManager manager = (IConsoleManager) plugin.getConsoleManager();
+			manager.addConsoles(new IConsole[] { console });
+			// show console
+			manager.showConsoleView(console);
+			// return console stream
+			messageConsoleStream = console.newMessageStream();
+			messageConsoleStream.setColor(Display.getDefault().getSystemColor(SWT.COLOR_BLACK));
+		}
+		return messageConsoleStream;
+	}
+
+	public void printInfo(String message, Tracking tracking, Set<Tracking> trackTypes) {
+		String printMessage = "";
+
+		if (trackTypes != null && trackTypes.size() > 0) {
+			if (trackTypes.contains(tracking)) {
+				printMessage = (String) messageMap.get(tracking);
+			}
+		}
+		MessageConsoleStream msgStream = getConsoleStream();
+		console.clearConsole();
+		if (msgStream != null)
+			msgStream.print(printMessage);
+	}
+
+	public void addMessage(String message, Tracking tracking) {
+		if (messageMap.containsKey(tracking)) {
+			messageMap.remove(tracking);
+		}
+		messageMap.put(tracking, message);
+	}
+
+	public void removeMessage(Tracking tracking) {
+		if (messageMap.containsKey(tracking)) {
+			messageMap.remove(tracking);
+		}
+	}
+
+	public void error(Throwable e) {
+		MessageConsoleStream msgStream = getConsoleStream();
+		if (msgStream != null) {
+			Color color = msgStream.getColor();
+			msgStream.setColor(Display.getDefault().getSystemColor(SWT.COLOR_RED));
+			PrintStream printStream = new PrintStream(msgStream);
+			e.printStackTrace(printStream);
+			msgStream.setColor(color);
+		}
+	}
+
+	public void error(Throwable e, String message) {
+		MessageConsoleStream msgStream = getConsoleStream();
+		if (msgStream != null) {
+			Color color = msgStream.getColor();
+			msgStream.setColor(Display.getDefault().getSystemColor(SWT.COLOR_RED));
+			PrintStream printStream = new PrintStream(msgStream);
+			msgStream.print(message);
+			e.printStackTrace(printStream);
+			msgStream.setColor(color);
+		}
+	}
+
+	public void message(String message) {
+		MessageConsoleStream msgStream = getConsoleStream();
+		if (msgStream != null) {
+			msgStream.print(message);
+		}
+	}
+
+	public void warning(String message) {
+		message(message);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/ProjectContext.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/ProjectContext.java
new file mode 100755
index 0000000..0058de8
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/ProjectContext.java
@@ -0,0 +1,161 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.utils;
+
+import java.beans.PropertyChangeEvent;
+import java.net.URL;
+import java.util.HashSet;
+import java.util.WeakHashMap;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.jdt.core.IJavaProject;
+
+public class ProjectContext extends LoadingContext {
+	protected static WeakHashMap<String, ProjectContext> contexts = new WeakHashMap<String, ProjectContext>();
+
+	protected static IResourceChangeListener changeListener = new IResourceChangeListener() {
+		public void resourceChanged(IResourceChangeEvent event) {
+			IResourceDelta delta = event.getDelta();
+			if (!contexts.isEmpty() && delta != null) {
+				processDelta(delta);
+			}
+		}
+
+		protected void processDelta(IResourceDelta delta) {
+			for (IResourceDelta resourceDelta : delta.getAffectedChildren()) {
+				IProject project = resourceDelta.getResource().getProject();
+				if (project != null && project.exists()) {
+					String name = project.getName();
+					ProjectContext projectContext = contexts.get(name);
+					if (projectContext != null) {
+						projectContext.processDelta(delta);
+						continue;
+					}
+				}
+				processDelta(resourceDelta);
+			}
+		}
+	};
+
+	protected IJavaProject javaProject;
+	protected HashSet<String> classes = new HashSet<String>();
+
+	class RuntimeLoader extends ClassLoader {
+
+		public RuntimeLoader(ClassLoader parent) {
+			super(parent);
+		}
+
+		@Override
+		protected Class<?> findClass(String name) throws ClassNotFoundException {
+			Class<?> type = null;
+			try {
+				type = super.findClass(name);
+			} catch (ClassNotFoundException e) {
+				if (type == null) {
+					type = redefined(name);
+				}
+				if (type == null) {
+					throw e;
+				} else {
+					classes.add(name);
+				}
+			}
+			return type;
+		}
+
+		public Class<?> redefined(String name) {
+			try {
+				byte[] content = ClassLoaderHelper.getClassContent(ProjectContext.this.javaProject, name);
+				if (content != null) {
+					return defineClass(name, content, 0, content.length);
+				}
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+			return null;
+		}
+
+		@Override
+		protected URL findResource(String name) {
+			URL url = super.findResource(name);
+			if (url == null) {
+				url = ClassLoaderHelper.getResourceAsURL(ProjectContext.this.javaProject, name);
+
+			}
+			return url;
+		}
+	}
+
+	private ProjectContext(IJavaProject javaProject) {
+		this.javaProject = javaProject;
+		resetLoader();
+	}
+
+	protected void resetLoader() {
+		ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+		setClassLoader(new RuntimeLoader(classLoader));
+		firePropertyChangeListener(new PropertyChangeEvent(this, "ClassLoader", null, getClassLoader()));
+	}
+
+	protected boolean processDelta(IResourceDelta delta) {
+		IResourceDelta[] resourceDeltas = delta.getAffectedChildren();
+		for (IResourceDelta resourceDelta : resourceDeltas) {
+			switch (resourceDelta.getKind()) {
+			case IResourceDelta.CHANGED:
+			case IResourceDelta.MOVED_FROM:
+			case IResourceDelta.MOVED_TO:
+				IPath path = resourceDelta.getProjectRelativePath();
+				if (!path.isEmpty() && "class".equals(path.getFileExtension())) {
+					resetLoader();
+					return true;
+				}
+				break;
+			}
+			for (IResourceDelta childDelta : resourceDelta.getAffectedChildren()) {
+				IPath path = childDelta.getProjectRelativePath();
+				if (!path.isEmpty() && "class".equals(path.getFileExtension())) {
+					resetLoader();
+					return true;
+				}
+				if (processDelta(childDelta)) {
+					return true;
+				}
+			}
+		}
+		return false;
+	}
+
+	public static ProjectContext getContext(IJavaProject javaProject) {
+		String elementName = javaProject.getElementName();
+		ProjectContext context = contexts.get(elementName);
+		if (context == null) {
+			context = new ProjectContext(javaProject);
+			contexts.put(elementName, context);
+		}
+		return context;
+	}
+
+	static public void start() {
+		ResourcesPlugin.getWorkspace().addResourceChangeListener(changeListener);
+	}
+
+	static public void stop() {
+		ResourcesPlugin.getWorkspace().removeResourceChangeListener(changeListener);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/ProjectUtil.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/ProjectUtil.java
new file mode 100755
index 0000000..a339a75
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/utils/ProjectUtil.java
@@ -0,0 +1,170 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.utils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.pde.core.plugin.IPluginBase;
+import org.eclipse.pde.core.plugin.IPluginImport;
+import org.eclipse.pde.core.plugin.IPluginLibrary;
+import org.eclipse.pde.core.plugin.IPluginModelBase;
+import org.eclipse.pde.core.plugin.PluginRegistry;
+
+/**
+ * 
+ * @author yyang <yves.yang@soyatec.com>
+ */
+public class ProjectUtil {
+
+	static String[] WORKBENCH_BUNDLES = new String[]{
+			"org.eclipse.e4.ui.services", "org.eclipse.e4.ui.workbench",
+			"org.eclipse.e4.core.di",
+			"org.eclipse.e4.core.di.extensions", "org.eclipse.e4.core.contexts",
+			"org.eclipse.e4.core.services", "org.eclipse.e4.ui.workbench.swt",
+			"org.eclipse.e4.ui.css.core", "org.w3c.css.sac",
+			"org.eclipse.e4.core.commands", "org.eclipse.e4.ui.bindings",
+			"org.eclipse.xwt.css", "org.eclipse.xwt.ui.workbench",
+			"javax.inject"};
+
+	static String[] XWT_CORE_BUNDLES = new String[]{"org.eclipse.xwt",
+			"org.eclipse.jface.databinding", "org.eclipse.swt",
+			"org.eclipse.jface", "org.eclipse.core.databinding", "com.ibm.icu"};
+
+	static String[] XWT_DATABINING_BUNDLES = new String[]{
+			"org.eclipse.core.databinding.beans",
+			"org.eclipse.core.databinding.property"};
+
+	static String[] XWT_EMF_BUNDLES = new String[]{"org.eclipse.xwt.emf",
+			"org.eclipse.emf.databinding",
+			"org.eclipse.core.databinding.property"};
+
+	public static void updateXWTCoreDependencies(IProject project) {
+		addDependencies(project, XWT_CORE_BUNDLES);
+	}
+
+	public static void updateXWTDataBindingDependencies(IProject project) {
+		addDependencies(project, XWT_CORE_BUNDLES, XWT_DATABINING_BUNDLES);
+	}
+
+	public static void updateXWTWorkbenchDependencies(IProject project) {
+		addDependencies(project, XWT_CORE_BUNDLES, XWT_DATABINING_BUNDLES,
+				WORKBENCH_BUNDLES);
+	}
+	public static void updateXWTEMFDependencies(IProject project) {
+		addDependencies(project, XWT_CORE_BUNDLES, XWT_EMF_BUNDLES);
+	}
+	public static IStatus addDependencies(IProject project,
+			String[]... pluginIds) {
+		IPluginModelBase[] dependencies = getDependencies(project, true,
+				pluginIds);
+		return new DependencyBuilder(project, dependencies).build();
+	}
+
+	public static IStatus addDependencies(IProject project,
+			IPluginModelBase[] pluginImports) {
+		return new DependencyBuilder(project, pluginImports).build();
+	}
+
+	public static IStatus removeDependencies(IProject project,
+			String[]... pluginIds) {
+		IPluginModelBase[] dependencies = getDependencies(project, false,
+				pluginIds);
+		return new DependencyBuilder(project, dependencies).unbuild();
+	}
+
+	public static IStatus removeDependencies(IProject project,
+			IPluginModelBase[] pluginImports) {
+		return new DependencyBuilder(project, pluginImports).unbuild();
+	}
+
+	public static IStatus addLibraries(IProject project, String[] jarPaths) {
+		String[] libraries = getLibraries(project, jarPaths, true);
+		return new LibraryBuilder(project, libraries).build();
+	}
+
+	public static IStatus removeLibraries(IProject project, String[] jarPaths) {
+		String[] libraries = getLibraries(project, jarPaths, false);
+		return new LibraryBuilder(project, libraries).unbuild();
+	}
+
+	public static IPluginModelBase[] getDependencies(IProject project,
+			boolean ignoreExists, String[]... pluginIds) {
+		if (pluginIds == null || pluginIds.length == 0) {
+			return new IPluginModelBase[0];
+		}
+
+		List<String> existingImports = new ArrayList<String>();
+		if (ignoreExists) {
+			IPluginBase pluginBase = getPluginBase(project);
+			if (pluginBase != null) {
+				IPluginImport[] imports = pluginBase.getImports();
+				for (IPluginImport pluginImport : imports) {
+					existingImports.add(pluginImport.getId());
+				}
+			}
+		}
+		List<IPluginModelBase> models = new ArrayList<IPluginModelBase>();
+		for (String[] ids : pluginIds) {
+			for (String pluginId : ids) {
+				if (ignoreExists && existingImports.contains(pluginId)) {
+					continue;
+				}
+				IPluginModelBase model = PluginRegistry.findModel(pluginId);
+				if (model == null) {
+					continue;
+				}
+				models.add(model);
+			}
+		}
+		return models.toArray(new IPluginModelBase[models.size()]);
+	}
+
+	public static IPluginBase getPluginBase(IProject project) {
+		if (project == null || !project.exists()) {
+			return null;
+		}
+		IPluginModelBase model = PluginRegistry.findModel(project);
+		if (model != null) {
+			return model.getPluginBase(true);
+		}
+		return null;
+	}
+
+	public static String[] getLibraries(IProject project, String[] jarPaths,
+			boolean ignoreExists) {
+		if (jarPaths == null || jarPaths.length == 0) {
+			return new String[0];
+		}
+		List<String> existingLibraries = new ArrayList<String>();
+		if (ignoreExists) {
+			IPluginBase pluginBase = getPluginBase(project);
+			if (pluginBase != null) {
+				IPluginLibrary[] libraries = pluginBase.getLibraries();
+				for (IPluginLibrary pluginLibrary : libraries) {
+					existingLibraries.add(pluginLibrary.getName());
+				}
+			}
+		}
+		List<String> libraries = new ArrayList<String>();
+		for (String path : jarPaths) {
+			if (ignoreExists && existingLibraries.contains(path)) {
+				continue;
+			}
+			libraries.add(path);
+		}
+		return libraries.toArray(new String[libraries.size()]);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/views/IContentProvider.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/views/IContentProvider.java
new file mode 100755
index 0000000..4a3b32a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/views/IContentProvider.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.views;
+
+import java.net.URL;
+
+import org.eclipse.xwt.ILoadingContext;
+
+public interface IContentProvider {
+	/**
+	 * 
+	 * @return
+	 */
+	ILoadingContext getLoadingContext();
+
+	/**
+	 * Content URL
+	 * 
+	 * @return
+	 */
+	URL getContentURL();
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/views/ProjectContentProvider.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/views/ProjectContentProvider.java
new file mode 100755
index 0000000..983e28c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/views/ProjectContentProvider.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.views;
+
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URL;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.xwt.ILoadingContext;
+import org.eclipse.xwt.ui.utils.ProjectContext;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+
+public class ProjectContentProvider implements IContentProvider {
+	protected URL contentURL;
+	protected ILoadingContext loadingContext;
+
+	public ProjectContentProvider(IFile file) {
+		URI uri = file.getLocationURI();
+
+		IJavaProject javaProject = JavaCore.create(file.getProject());
+		if (javaProject.exists()) {
+			loadingContext = ProjectContext.getContext(javaProject);
+		}
+		try {
+			contentURL = uri.toURL();
+		} catch (MalformedURLException e) {
+			throw new RuntimeException(e);
+		}
+	}
+
+	public URL getContentURL() {
+		return contentURL;
+	}
+
+	public ILoadingContext getLoadingContext() {
+		return loadingContext;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/views/XWTView.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/views/XWTView.java
new file mode 100755
index 0000000..c37c23c
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/views/XWTView.java
@@ -0,0 +1,92 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.views;
+
+import java.io.ByteArrayInputStream;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.xwt.ILoadingContext;
+import org.eclipse.xwt.IXWTLoader;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.ui.ExceptionHandle;
+import org.eclipse.xwt.ui.XWTUIPlugin;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.part.ViewPart;
+
+public class XWTView extends ViewPart {
+
+	public static final String ID = "org.eclipse.xwt.ui.views.XWTView";
+
+	protected Composite container;
+	protected Map<String, Object> options;
+
+	/**
+	 * The constructor.
+	 */
+	public XWTView() {
+		options = new HashMap<String, Object>();
+		options.put(IXWTLoader.DESIGN_MODE_PROPERTY, Boolean.TRUE);
+	}
+
+	/**
+	 * This is a callback that will allow us to create the viewer and initialize it.
+	 */
+	public void createPartControl(Composite parent) {
+		container = new Composite(parent, SWT.NONE);
+		container.setLayoutData(new GridData(GridData.FILL_BOTH));
+		container.setLayout(new GridLayout());
+		container.setBackgroundMode(SWT.INHERIT_DEFAULT);
+	}
+
+	public void setContent(String code, IFile file) {
+		try {
+			setContentWithException(code, file, new ProjectContentProvider(file));
+		} catch (Exception e) {
+			ExceptionHandle.handle(e, "Open view fails");
+		}
+	}
+
+	public void setContentWithException(String code, IFile file, IContentProvider contentProvider) throws Exception {
+		XWTUIPlugin.checkStartup();
+		for (Control child : container.getChildren()) {
+			child.dispose();
+		}
+		ILoadingContext loadingContext = contentProvider.getLoadingContext();
+		if (loadingContext != null) {
+			XWT.setLoadingContext(loadingContext);
+		}
+		options.put(IXWTLoader.CONTAINER_PROPERTY, container);
+		if (code != null) {
+			XWT.loadWithOptions(new ByteArrayInputStream(code.getBytes()), file.getLocation().toFile().toURL(), options);
+		} else {
+			XWT.loadWithOptions(file.getLocation().toFile().toURL(), options);
+		}
+		container.layout(true, true);
+	}
+
+	public void setContentWithException(String code, IFile file) throws Exception {
+		setContentWithException(code, file, new ProjectContentProvider(file));
+	}
+
+	/**
+	 * Passing the focus request to the viewer's control.
+	 */
+	public void setFocus() {
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewE4DynamicPartWizard.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewE4DynamicPartWizard.java
new file mode 100755
index 0000000..ebd3dfa
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewE4DynamicPartWizard.java
@@ -0,0 +1,94 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.wizards;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.internal.ui.JavaPlugin;
+import org.eclipse.jdt.internal.ui.JavaPluginImages;
+import org.eclipse.jdt.internal.ui.wizards.NewElementWizard;
+import org.eclipse.xwt.ui.XWTUIPlugin;
+import org.eclipse.xwt.ui.utils.ProjectUtil;
+
+public class NewE4DynamicPartWizard extends NewElementWizard {
+
+	private NewE4DynamicPartWizardPage fPage;
+
+	public NewE4DynamicPartWizard() {
+		setDefaultPageImageDescriptor(JavaPluginImages.DESC_WIZBAN_NEWCLASS);
+		setDialogSettings(JavaPlugin.getDefault().getDialogSettings());
+		setWindowTitle("New e4 Dynamic Part in XWT");
+	}
+
+	public NewE4DynamicPartWizard(IType contextType) {
+		setDefaultPageImageDescriptor(JavaPluginImages.DESC_WIZBAN_NEWCLASS);
+		setDialogSettings(JavaPlugin.getDefault().getDialogSettings());
+		setWindowTitle("New e4 Dynamic Part in XWT");
+	}
+
+	public void addPages() {
+		fPage = new NewE4DynamicPartWizardPage();
+		fPage.init(getSelection());
+		addPage(fPage);
+	}
+
+	public boolean performFinish() {
+		warnAboutTypeCommentDeprecation();
+		boolean res = super.performFinish();
+		if (res) {
+			tryToOpenResource();
+			ProjectUtil.updateXWTWorkbenchDependencies(getCreatedElement().getResource().getProject());
+		}
+		XWTUIPlugin.getDefault().openXWTPerspective();
+		return res;
+	}
+
+	private void tryToOpenResource() {
+		IResource resource = fPage.getModifiedResource();
+		if (resource != null) {
+			selectAndReveal(resource);
+		}
+		openResource((IFile) resource);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#getCreatedElement()
+	 */
+	public IJavaElement getCreatedElement() {
+		return fPage.getCreatedType();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#canRunForked()
+	 */
+	protected boolean canRunForked() {
+		return !fPage.isEnclosingTypeSelected();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#finishPage(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	protected void finishPage(IProgressMonitor monitor) throws InterruptedException, CoreException {
+		fPage.createType(monitor); // use the full progress monitor
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewE4DynamicPartWizardPage.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewE4DynamicPartWizardPage.java
new file mode 100755
index 0000000..457ae67
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewE4DynamicPartWizardPage.java
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.wizards;
+
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.internal.ui.IJavaHelpContextIds;
+import org.eclipse.jdt.ui.wizards.NewClassWizardPage;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.PlatformUI;
+
+public class NewE4DynamicPartWizardPage extends NewClassWizardPage {
+
+	public NewE4DynamicPartWizardPage() {
+		setTitle("New Wizard Creation");
+		setDescription("This wizard creates a view part for e4 workbench.");
+	}
+	
+	protected String getSuperClassName() {
+		return "org.eclipse.xwt.ui.workbench.views.XWTDynamicPart";
+	}
+	
+	@Override
+	protected void initTypePage(IJavaElement elem) {
+		super.initTypePage(elem);
+		setSuperClass(getSuperClassName(), false);
+	}
+
+	public int getModifiers() {
+		return F_PUBLIC;
+	}
+	
+	public void createControl(Composite parent) {
+		initializeDialogUnits(parent);
+
+		Composite composite = new Composite(parent, SWT.NONE);
+		composite.setFont(parent.getFont());
+
+		int nColumns = 4;
+
+		GridLayout layout = new GridLayout();
+		layout.numColumns = nColumns;
+		composite.setLayout(layout);
+
+		// pick & choose the wanted UI components
+
+		createContainerControls(composite, nColumns);
+		createPackageControls(composite, nColumns);
+
+		createTypeNameControls(composite, nColumns);
+
+		createSeparator(composite, nColumns);
+
+		createCommentControls(composite, nColumns);
+		enableCommentControl(true);
+
+		createSeparator(composite, nColumns);
+
+		setControl(composite);
+
+		Dialog.applyDialogFont(composite);
+		PlatformUI.getWorkbench().getHelpSystem().setHelp(composite,
+				IJavaHelpContextIds.NEW_CLASS_WIZARD_PAGE);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewE4StaticPartWizard.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewE4StaticPartWizard.java
new file mode 100755
index 0000000..f545c4e
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewE4StaticPartWizard.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.wizards;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.internal.ui.JavaPlugin;
+import org.eclipse.jdt.internal.ui.JavaPluginImages;
+import org.eclipse.jdt.internal.ui.wizards.NewElementWizard;
+import org.eclipse.xwt.ui.XWTUIPlugin;
+import org.eclipse.xwt.ui.utils.ProjectUtil;
+
+public class NewE4StaticPartWizard extends NewElementWizard {
+
+	private NewE4StaticPartWizardPage fPage;
+
+	public NewE4StaticPartWizard() {
+		setDefaultPageImageDescriptor(JavaPluginImages.DESC_WIZBAN_NEWCLASS);
+		setDialogSettings(JavaPlugin.getDefault().getDialogSettings());
+		setWindowTitle("New e4 Static Part in XWT");
+	}
+
+	public NewE4StaticPartWizard(IType contextType) {
+		setDefaultPageImageDescriptor(JavaPluginImages.DESC_WIZBAN_NEWCLASS);
+		setDialogSettings(JavaPlugin.getDefault().getDialogSettings());
+		setWindowTitle("New e4 Static Part in XWT");
+	}
+
+	public void addPages() {
+		fPage = new NewE4StaticPartWizardPage();
+		fPage.init(getSelection());
+		addPage(fPage);
+	}
+
+	public boolean performFinish() {
+		warnAboutTypeCommentDeprecation();
+		boolean res = super.performFinish();
+		if (res) {
+			tryToOpenResource();
+			ProjectUtil.updateXWTWorkbenchDependencies(getCreatedElement().getResource().getProject());
+		}
+		XWTUIPlugin.getDefault().openXWTPerspective();
+		return res;
+	}
+
+	private void tryToOpenResource() {
+		IResource resource = fPage.getModifiedResource();
+		if (resource != null) {
+			selectAndReveal(resource);
+		}
+		IResource guiResource = fPage.getGuiResource();
+		if (guiResource != null) {
+			selectAndReveal(guiResource);
+			openResource((IFile) guiResource);
+		} else {
+			openResource((IFile) resource);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#getCreatedElement()
+	 */
+	public IJavaElement getCreatedElement() {
+		return fPage.getCreatedType();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#canRunForked()
+	 */
+	protected boolean canRunForked() {
+		return !fPage.isEnclosingTypeSelected();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#finishPage(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	protected void finishPage(IProgressMonitor monitor) throws InterruptedException, CoreException {
+		fPage.createType(monitor); // use the full progress monitor
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewE4StaticPartWizardPage.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewE4StaticPartWizardPage.java
new file mode 100755
index 0000000..043f6ff
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewE4StaticPartWizardPage.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.wizards;
+
+public class NewE4StaticPartWizardPage extends NewUIElementWizardPage {
+
+	public NewE4StaticPartWizardPage() {
+		setTitle("New Wizard Creation");
+		setDescription("This wizard creates a view part for e4 workbench.");
+	}
+	
+	protected String getSuperClassName() {
+		return "org.eclipse.xwt.ui.workbench.views.XWTStaticPart";
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewPresentationWizard.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewPresentationWizard.java
new file mode 100755
index 0000000..dd3a161
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewPresentationWizard.java
@@ -0,0 +1,116 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.wizards;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.internal.ui.JavaPlugin;
+import org.eclipse.jdt.internal.ui.JavaPluginImages;
+import org.eclipse.jdt.internal.ui.wizards.NewElementWizard;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.xwt.ui.XWTUIPlugin;
+import org.eclipse.xwt.ui.utils.ProjectUtil;
+
+public class NewPresentationWizard extends NewElementWizard {
+
+	private NewPresentationWizardPage fPage;
+
+	public NewPresentationWizard() {
+		setDefaultPageImageDescriptor(JavaPluginImages.DESC_WIZBAN_NEWCLASS);
+		setDialogSettings(JavaPlugin.getDefault().getDialogSettings());
+		setWindowTitle("New Data Presentation in XWT");
+	}
+
+	public NewPresentationWizard(IType contextType) {
+		setDefaultPageImageDescriptor(JavaPluginImages.DESC_WIZBAN_NEWCLASS);
+		setDialogSettings(JavaPlugin.getDefault().getDialogSettings());
+		setWindowTitle("New Data Presentation in XWT");
+	}
+	
+	public void addPages() {
+		Object element = getSelection().getFirstElement();
+		if (!(element instanceof ICompilationUnit) && !(element instanceof IType)) {
+			getShell().setAlpha(0);
+			MessageDialog.openError(getShell(), "Error", "Please select a Java class.");
+			getShell().getDisplay().asyncExec(new Runnable() {				
+				public void run() {
+					getShell().close();
+				}
+			});
+			return;
+		}
+		fPage = new NewPresentationWizardPage();
+		fPage.init(getSelection());
+		addPage(fPage);
+	}
+	
+
+	public boolean performFinish() {
+		warnAboutTypeCommentDeprecation();
+		boolean res = super.performFinish();
+		if (res) {
+			tryToOpenResource();
+			ProjectUtil.updateXWTDataBindingDependencies(getCreatedElement().getResource().getProject());
+		}
+		XWTUIPlugin.getDefault().openXWTPerspective();
+		return res;
+	}
+
+	private void tryToOpenResource() {
+		IResource resource = fPage.getModifiedResource();
+		if (resource != null) {
+			selectAndReveal(resource);
+		}
+		IResource guiResource = fPage.getGuiResource();
+		if (guiResource != null) {
+			selectAndReveal(guiResource);
+			openResource((IFile) guiResource);
+		} else {
+			openResource((IFile) resource);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#getCreatedElement()
+	 */
+	public IJavaElement getCreatedElement() {
+		return fPage.getCreatedType();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#canRunForked()
+	 */
+	protected boolean canRunForked() {
+		return !fPage.isEnclosingTypeSelected();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#finishPage(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	protected void finishPage(IProgressMonitor monitor) throws InterruptedException, CoreException {
+		fPage.createType(monitor); // use the full progress monitor
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewPresentationWizardPage.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewPresentationWizardPage.java
new file mode 100755
index 0000000..198ae47
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewPresentationWizardPage.java
@@ -0,0 +1,465 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.wizards;
+
+import java.beans.BeanInfo;
+import java.beans.IntrospectionException;
+import java.beans.PropertyDescriptor;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.io.PrintStream;
+import java.net.URL;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+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.xwt.IConstants;
+import org.eclipse.xwt.javabean.metadata.Metaclass;
+import org.eclipse.xwt.ui.ExceptionHandle;
+import org.eclipse.xwt.ui.XWTUIPlugin;
+import org.eclipse.xwt.ui.jdt.ASTHelper;
+import org.eclipse.xwt.ui.jdt.ProjectHelper;
+import org.eclipse.xwt.ui.utils.ProjectContext;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IPackageFragment;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.core.search.IJavaSearchConstants;
+import org.eclipse.jdt.core.search.IJavaSearchScope;
+import org.eclipse.jdt.core.search.SearchEngine;
+import org.eclipse.jdt.internal.ui.IJavaHelpContextIds;
+import org.eclipse.jdt.internal.ui.dialogs.FilteredTypesSelectionDialog;
+import org.eclipse.jdt.internal.ui.wizards.NewElementWizard;
+import org.eclipse.jdt.internal.ui.wizards.dialogfields.DialogField;
+import org.eclipse.jdt.internal.ui.wizards.dialogfields.IDialogFieldListener;
+import org.eclipse.jdt.internal.ui.wizards.dialogfields.IStringButtonAdapter;
+import org.eclipse.jdt.internal.ui.wizards.dialogfields.LayoutUtil;
+import org.eclipse.jdt.internal.ui.wizards.dialogfields.StringButtonDialogField;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.PlatformUI;
+
+public class NewPresentationWizardPage extends org.eclipse.jdt.ui.wizards.NewClassWizardPage {
+	protected String superClass;
+
+	protected IResource guiResource;
+
+	private boolean shouldGenMetaclass = false;
+
+	private StringButtonDialogField fieldEditor;
+	private Button metaclassButton;
+
+	private IPackageFragment packageFragment;
+	
+	private String dataContext;
+
+	public NewPresentationWizardPage() {
+		setTitle("New Wizard Creation");
+		setDescription("This wizard creates a data presentation.");
+	}
+
+	public void createControl(Composite parent) {
+		initializeDialogUnits(parent);
+
+		Composite composite = new Composite(parent, SWT.NONE);
+		composite.setFont(parent.getFont());
+
+		int nColumns = 4;
+
+		GridLayout layout = new GridLayout();
+		layout.numColumns = nColumns;
+		composite.setLayout(layout);
+
+		// pick & choose the wanted UI components
+
+		createContainerControls(composite, nColumns);
+		createPackageControls(composite, nColumns);
+
+		createTypeNameControls(composite, nColumns);
+
+		createSeparator(composite, nColumns);
+		{
+			new Label(composite, SWT.NONE);
+			metaclassButton = new Button(composite, SWT.CHECK);
+			metaclassButton.setSelection(shouldGenMetaclass);
+			metaclassButton.setText("Generating Metaclass");
+			GridData data = new GridData();
+			data.horizontalSpan = 3;
+			metaclassButton.setLayoutData(data);
+			metaclassButton.addSelectionListener(new SelectionAdapter() {
+				public void widgetSelected(SelectionEvent e) {
+					shouldGenMetaclass = metaclassButton.getSelection();
+				}
+			});
+
+			createDataContextComp(composite);
+		}
+
+		createCommentControls(composite, nColumns);
+		enableCommentControl(true);
+
+		createSeparator(composite, nColumns);
+
+		setControl(composite);
+
+		NewElementWizard wizard = (NewElementWizard) getWizard();
+		IStructuredSelection selection = (IStructuredSelection) wizard.getSelection();
+		IType dataContextType = null;
+		for (Iterator iterator = selection.iterator(); iterator.hasNext();) {
+			Object element = iterator.next();
+			if (element instanceof ICompilationUnit) {
+				ICompilationUnit unit = (ICompilationUnit) element;
+				dataContextType = unit.findPrimaryType();
+				break;
+			}
+			if (element instanceof IType) {
+				dataContextType = (IType) element;
+				break;
+			}
+		}
+
+		if (dataContextType != null) {
+			setTypeName(dataContextType.getElementName(), true);
+			fieldEditor.setText(dataContextType.getFullyQualifiedName('.'));
+			metaclassButton.setSelection(shouldGenMetaclass);
+		}
+		
+		Dialog.applyDialogFont(composite);
+		PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, IJavaHelpContextIds.NEW_CLASS_WIZARD_PAGE);
+	}
+
+	/**
+	 * @param composite
+	 * @return
+	 */
+	private void createDataContextComp(Composite composite) {
+		DataContextFieldAdapter adapter = new DataContextFieldAdapter();
+		fieldEditor = new StringButtonDialogField(adapter);
+		fieldEditor.setDialogFieldListener(adapter);
+		fieldEditor.setButtonLabel("Browse...");
+		fieldEditor.setLabelText("Data Context Type:");
+		fieldEditor.doFillIntoGrid(composite, 4);
+		LayoutUtil.setWidthHint(fieldEditor.getTextControl(null), getMaxFieldWidth());
+	}
+
+	private class DataContextFieldAdapter implements IStringButtonAdapter, IDialogFieldListener {
+
+		// -------- IStringButtonAdapter
+		public void changeControlPressed(DialogField field) {
+			IType type = chooseDataContext();
+			if (type != null) {
+				((StringButtonDialogField) field).setText(type.getFullyQualifiedName());
+			}
+		}
+
+		// -------- IDialogFieldListener
+		public void dialogFieldChanged(DialogField field) {
+			dataContext = ((StringButtonDialogField) field).getText();
+			validateDataContext();
+		}
+	}
+
+	public boolean isCreateConstructors() {
+		return true;
+	}
+
+	/**
+	 * 
+	 */
+	public void validateDataContext() {
+		String newMessage = "Invalid Java Type for initializing DataContext.";
+		String errorMessage = getErrorMessage();
+		if (dataContext != null) {
+			ProjectContext context = ProjectContext.getContext(getJavaProject());
+			try {
+				context.getClassLoader().loadClass(dataContext);
+				if (newMessage.equals(errorMessage)) {
+					setErrorMessage(null);
+				} else {
+					setErrorMessage(errorMessage);
+				}
+			} catch (ClassNotFoundException e) {
+				setErrorMessage(newMessage);
+			}
+		} else {
+			if (newMessage.equals(errorMessage)) {
+				setErrorMessage(null);
+			} else {
+				setErrorMessage(errorMessage);
+			}
+		}
+	}
+
+	/**
+	 * @param field
+	 */
+	public IType chooseDataContext() {
+		IJavaProject project = getJavaProject();
+		if (project == null) {
+			return null;
+		}
+
+		IJavaElement[] elements = new IJavaElement[] { project };
+		IJavaSearchScope scope = SearchEngine.createJavaSearchScope(elements);
+
+		FilteredTypesSelectionDialog dialog = new FilteredTypesSelectionDialog(getShell(), false, getWizard().getContainer(), scope, IJavaSearchConstants.CLASS);
+		dialog.setTitle("Choose a JavaBean");
+		dialog.setMessage("Choose a JavaBean as a DataContext Type.");
+		dialog.setInitialPattern("java.lang.Object");
+
+		if (dialog.open() == Window.OK) {
+			return (IType) dialog.getFirstResult();
+		}
+		return null;
+	}
+
+	@Override
+	protected void initTypePage(IJavaElement elem) {
+		super.initTypePage(elem);
+		setSuperClass(getSuperClassName(), false);
+	}
+	
+	@Override
+	public void setPackageFragment(IPackageFragment pack, boolean canBeModified) {
+		
+		
+		String name = pack.getElementName() + ".ui";
+		IPackageFragmentRoot root = (IPackageFragmentRoot) pack.getParent();
+		IPackageFragment packageFragment = root.getPackageFragment(name);
+		super.setPackageFragment(packageFragment, canBeModified);
+	}
+	
+	protected String getSuperClassName() {
+		return Composite.class.getName();
+	}
+
+	public int getModifiers() {
+		return F_PUBLIC;
+	}
+
+	/**
+	 * Returns the chosen super interfaces.
+	 * 
+	 * @return a list of chosen super interfaces. The list's elements are of type <code>String</code>
+	 */
+	public List getSuperInterfaces() {
+		return Collections.EMPTY_LIST;
+	}
+
+	/**
+	 * Returns the current selection state of the 'Create Main' checkbox.
+	 * 
+	 * @return the selection state of the 'Create Main' checkbox
+	 */
+	public boolean isCreateMain() {
+		return false;
+	}
+
+	protected InputStream getContentStream() {
+		IType type = getCreatedType();
+		String hostClassName = type.getFullyQualifiedName();
+		ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
+		PrintStream printStream = new PrintStream(arrayOutputStream);
+
+		printStream.println("<Composite xmlns=\"" + IConstants.XWT_NAMESPACE + "\"");
+
+		printStream.println("\t xmlns:x=\"" + IConstants.XWT_X_NAMESPACE + "\"");
+		String packageName = type.getPackageFragment().getElementName();
+		if (packageName != null/* && packageName.length() > 0 */) {
+			printStream.println("\t xmlns:c=\"" + IConstants.XAML_CLR_NAMESPACE_PROTO + packageName + "\"");
+		}
+		printStream.println("\t xmlns:j=\"" + IConstants.XAML_CLR_NAMESPACE_PROTO +  "java.lang\"");
+		printStream.println("\t x:Class=\"" + hostClassName + "\">");
+		printStream.println("\t <Composite.layout>");
+		printStream.println("\t\t <GridLayout " + " numColumns=\"4\" />");
+		printStream.println("\t </Composite.layout>");
+
+		appendBeanContent(printStream);
+
+		printStream.println("</Composite>");
+
+		try {
+			byte[] content = arrayOutputStream.toByteArray();
+			printStream.close();
+			arrayOutputStream.close();
+			return new ByteArrayInputStream(content);
+		} catch (Exception e) {
+			XWTUIPlugin.log(e);
+			ExceptionHandle.handle(e, "save failed in the file: " + getModifiedResource().getLocation());
+		}
+		return new ByteArrayInputStream(new byte[] {});
+	}
+
+	/**
+	 * @param printStream
+	 */
+	private void appendBeanContent(PrintStream printStream) {
+		Class<?> type = getDataContextType();
+		if (type == null) {
+			return;
+		}
+		try {
+			BeanInfo beanInfo = java.beans.Introspector.getBeanInfo(type);
+			PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
+			for (PropertyDescriptor pd : propertyDescriptors) {
+				String name = pd.getName();
+				if (name == null || "class".equals(name)) {
+					continue;
+				}
+				Class<?> propertyType = pd.getPropertyType();
+				if (propertyType.isPrimitive() || propertyType == String.class || propertyType == URL.class) {
+					printStream.println("\t <Label text=\"" + pd.getDisplayName() + "\"/>");
+					printStream.println("\t <Text x:Style=\"Border\" text=\"{Binding path=" + pd.getName() + "}\">");
+					printStream.println("\t\t <Text.layoutData>");
+					printStream.println("\t\t\t <GridData grabExcessHorizontalSpace=\"true\"");
+					printStream.println("\t\t\t\t horizontalAlignment=\"GridData.FILL\" widthHint=\"100\"/>");
+					printStream.println("\t\t </Text.layoutData>");
+					printStream.println("\t </Text>");
+				} else if (propertyType.isEnum()) {
+					printStream.println("\t <Label text=\"" + pd.getDisplayName() + "\"/>");
+					printStream.println("\t <Combo text=\"{Binding path=" + pd.getName() + "}\">");
+					printStream.println("\t\t <Combo.layoutData>");
+					printStream.println("\t\t\t <GridData grabExcessHorizontalSpace=\"true\"");
+					printStream.println("\t\t\t\t horizontalAlignment=\"GridData.FILL\" widthHint=\"100\"/>");
+					printStream.println("\t\t </Combo.layoutData>");
+					
+					printStream.println("\t\t <Combo.items>");
+					for (Object object : propertyType.getEnumConstants()) {
+						printStream.println("\t\t\t <j:String>" + object.toString() + "</j:String>");						
+					}
+					printStream.println("\t\t </Combo.items>");
+					printStream.println("\t </Combo>");
+					
+				} else {
+					printStream.println("\t <Group text=\"" + pd.getDisplayName() + "\">");
+					printStream.println("\t\t <Group.layout>");
+					printStream.println("\t\t\t <FillLayout/>");
+					printStream.println("\t\t </Group.layout>");
+
+					String elementType = propertyType.getSimpleName();
+					printStream.println("\t\t <c:" + elementType + " DataContext=\"{Binding path=" + pd.getName() + "}\"/>");
+
+					printStream.println("\t\t <Group.layoutData>");
+					printStream.println("\t\t\t <GridData grabExcessHorizontalSpace=\"true\" horizontalSpan=\"4\"");
+					printStream.println("\t\t\t\t horizontalAlignment=\"GridData.FILL\" widthHint=\"200\"/>");
+					printStream.println("\t\t </Group.layoutData>");
+
+					printStream.println("\t </Group>");
+				}
+			}
+		} catch (IntrospectionException e) {
+		}
+	}
+
+	public void createType(IProgressMonitor monitor) throws CoreException, InterruptedException {
+		// Add external Jars before create a new Java Source Type.
+		ProjectHelper.checkDependenceJars(getJavaProject());
+		super.createType(monitor);
+
+		if (shouldGenMetaclass) {
+			createMetaclass();
+		}
+
+		IResource resource = getModifiedResource();
+		IPath resourcePath = resource.getProjectRelativePath().removeFileExtension();
+		resourcePath = resourcePath.addFileExtension(IConstants.XWT_EXTENSION);
+		try {
+			IFile file = resource.getProject().getFile(resourcePath);
+			file.create(getContentStream(), IResource.FORCE | IResource.KEEP_HISTORY, monitor);
+			guiResource = file;
+		} catch (Exception e) {
+			e.printStackTrace();
+			ExceptionHandle.handle(e, "save failed in the file: " + getModifiedResource().getLocation());
+		}
+		return;
+	}
+
+	public void createMetaclass() {
+		IType type = getCreatedType();
+		String typeName = type.getElementName();
+		String metaclassName = typeName + "Metaclass";
+		IType metaclassType = ASTHelper.createType(getPackageFragment(), metaclassName, null, Metaclass.class);
+		if (metaclassType != null && dataContext != null) {
+			ASTHelper.createMethod(metaclassType, "getDataContentType", getDataContextType().getClass(), "" + getDataContextType().getName() + ".class", null);
+		}
+		ICompilationUnit cu = metaclassType.getCompilationUnit();
+		try {
+			cu.commitWorkingCopy(true, new NullProgressMonitor());
+		} catch (JavaModelException e) {
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jdt.ui.wizards.NewTypeWizardPage#getTypeName()
+	 */
+	public String getTypeName() {
+		String typeName = super.getTypeName();
+		if (typeName == null || typeName.equals("")) {
+			return typeName;
+		}
+		/*
+		 * Make sure the first character of the new Class name is a upperCase one. Because the Element parser of the XWT file convert the top element to this format.
+		 */
+		return Character.toUpperCase(typeName.charAt(0)) + typeName.substring(1);
+	}
+
+	/**
+	 * Returns the current selection state of the 'Create inherited abstract methods' checkbox.
+	 * 
+	 * @return the selection state of the 'Create inherited abstract methods' checkbox
+	 */
+	public boolean isCreateInherited() {
+		return true;
+	}
+
+	public boolean shouldGenMetaclass() {
+		return shouldGenMetaclass;
+	}
+
+	public Class<?> getDataContextType() {
+		if (dataContext == null || dataContext.trim().length() == 0) {
+			return null;
+		}
+		ProjectContext context = ProjectContext.getContext(getJavaProject());
+		try {
+			return context.getClassLoader().loadClass(dataContext);
+		} catch (ClassNotFoundException e) {
+		}
+		return null;
+	}
+
+	public IResource getGuiResource() {
+		return guiResource;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewUIElementWizard.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewUIElementWizard.java
new file mode 100755
index 0000000..605987a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewUIElementWizard.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.wizards;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.internal.ui.JavaPlugin;
+import org.eclipse.jdt.internal.ui.JavaPluginImages;
+import org.eclipse.jdt.internal.ui.wizards.NewElementWizard;
+import org.eclipse.xwt.ui.XWTUIPlugin;
+import org.eclipse.xwt.ui.utils.ProjectUtil;
+
+public class NewUIElementWizard extends NewElementWizard {
+
+	private NewUIElementWizardPage fPage;
+
+	public NewUIElementWizard() {
+		setDefaultPageImageDescriptor(JavaPluginImages.DESC_WIZBAN_NEWCLASS);
+		setDialogSettings(JavaPlugin.getDefault().getDialogSettings());
+		setWindowTitle("New UI Element in XWT");
+	}
+
+	public NewUIElementWizard(IType contextType) {
+		setDefaultPageImageDescriptor(JavaPluginImages.DESC_WIZBAN_NEWCLASS);
+		setDialogSettings(JavaPlugin.getDefault().getDialogSettings());
+		setWindowTitle("New UI Element in XWT");
+	}
+
+	public void addPages() {
+		fPage = new NewUIElementWizardPage();
+		fPage.init(getSelection());
+		addPage(fPage);
+	}
+
+	public boolean performFinish() {
+		warnAboutTypeCommentDeprecation();
+		boolean res = super.performFinish();
+		if (res) {
+			tryToOpenResource();
+			ProjectUtil.updateXWTCoreDependencies(getCreatedElement().getResource().getProject());
+		}
+		XWTUIPlugin.getDefault().openXWTPerspective();
+		return res;
+	}
+
+	private void tryToOpenResource() {
+		IResource resource = fPage.getModifiedResource();
+		if (resource != null) {
+			selectAndReveal(resource);
+		}
+		IResource guiResource = fPage.getGuiResource();
+		if (guiResource != null) {
+			selectAndReveal(guiResource);
+			openResource((IFile) guiResource);
+		} else {
+			openResource((IFile) resource);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#getCreatedElement()
+	 */
+	public IJavaElement getCreatedElement() {
+		return fPage.getCreatedType();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#canRunForked()
+	 */
+	protected boolean canRunForked() {
+		return !fPage.isEnclosingTypeSelected();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#finishPage(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	protected void finishPage(IProgressMonitor monitor) throws InterruptedException, CoreException {
+		fPage.createType(monitor); // use the full progress monitor
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewUIElementWizardPage.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewUIElementWizardPage.java
new file mode 100755
index 0000000..d99b8ad
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewUIElementWizardPage.java
@@ -0,0 +1,241 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.wizards;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.io.PrintStream;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.ui.ExceptionHandle;
+import org.eclipse.xwt.ui.XWTUIPlugin;
+import org.eclipse.xwt.ui.jdt.ProjectHelper;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.search.IJavaSearchConstants;
+import org.eclipse.jdt.core.search.IJavaSearchScope;
+import org.eclipse.jdt.core.search.SearchEngine;
+import org.eclipse.jdt.internal.ui.IJavaHelpContextIds;
+import org.eclipse.jdt.internal.ui.dialogs.FilteredTypesSelectionDialog;
+import org.eclipse.jdt.internal.ui.wizards.NewElementWizard;
+import org.eclipse.jdt.internal.ui.wizards.dialogfields.StringButtonDialogField;
+import org.eclipse.jdt.ui.wizards.NewClassWizardPage;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.PlatformUI;
+
+public class NewUIElementWizardPage extends
+		NewClassWizardPage {
+	protected String superClass;
+
+	protected IResource guiResource;
+
+	public NewUIElementWizardPage() {
+		setTitle("New Wizard Creation");
+		setDescription("This wizard creates a *.xwt file with java host class.");
+	}
+
+	public void createControl(Composite parent) {
+		initializeDialogUnits(parent);
+
+		Composite composite = new Composite(parent, SWT.NONE);
+		composite.setFont(parent.getFont());
+
+		int nColumns = 4;
+
+		GridLayout layout = new GridLayout();
+		layout.numColumns = nColumns;
+		composite.setLayout(layout);
+
+		// pick & choose the wanted UI components
+
+		createContainerControls(composite, nColumns);
+		createPackageControls(composite, nColumns);
+
+		createTypeNameControls(composite, nColumns);
+
+		createSeparator(composite, nColumns);
+
+		createCommentControls(composite, nColumns);
+		enableCommentControl(true);
+
+		createSeparator(composite, nColumns);
+
+		setControl(composite);
+
+		Dialog.applyDialogFont(composite);
+		PlatformUI.getWorkbench().getHelpSystem().setHelp(composite,
+				IJavaHelpContextIds.NEW_CLASS_WIZARD_PAGE);
+	}
+
+	public boolean isCreateConstructors() {
+		return true;
+	}
+
+	/**
+	 * 
+	 */
+	public void validateDataContext() {
+		String newMessage = "Invalid Java Type for initializing DataContext.";
+		String errorMessage = getErrorMessage();
+		if (newMessage.equals(errorMessage)) {
+			setErrorMessage(null);
+		} else {
+			setErrorMessage(errorMessage);
+		}
+	}
+
+	@Override
+	protected void initTypePage(IJavaElement elem) {
+		super.initTypePage(elem);
+		setSuperClass(getSuperClassName(), false);
+	}
+
+	protected String getSuperClassName() {
+		return Composite.class.getName();
+	}
+
+	public int getModifiers() {
+		return F_PUBLIC;
+	}
+
+	/**
+	 * Returns the chosen super interfaces.
+	 * 
+	 * @return a list of chosen super interfaces. The list's elements are of
+	 *         type <code>String</code>
+	 */
+	public List getSuperInterfaces() {
+		return Collections.EMPTY_LIST;
+	}
+
+	/**
+	 * Returns the current selection state of the 'Create Main' checkbox.
+	 * 
+	 * @return the selection state of the 'Create Main' checkbox
+	 */
+	public boolean isCreateMain() {
+		return false;
+	}
+
+	protected InputStream getContentStream() {
+		IType type = getCreatedType();
+		String hostClassName = type.getFullyQualifiedName();
+		ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
+		PrintStream printStream = new PrintStream(arrayOutputStream);
+
+		printStream.println("<Composite xmlns=\"" + IConstants.XWT_NAMESPACE
+				+ "\"");
+
+		printStream
+				.println("\t xmlns:x=\"" + IConstants.XWT_X_NAMESPACE + "\"");
+		String packageName = type.getPackageFragment().getElementName();
+		if (packageName != null/* && packageName.length() > 0 */) {
+			printStream.println("\t xmlns:c=\""
+					+ IConstants.XAML_CLR_NAMESPACE_PROTO + packageName + "\"");
+		}
+		printStream.println("\t xmlns:j=\""
+				+ IConstants.XAML_CLR_NAMESPACE_PROTO + "java.lang\"");
+		printStream.println("\t x:Class=\"" + hostClassName + "\">");
+		printStream.println("\t <Composite.layout>");
+		printStream.println("\t\t <GridLayout " + " numColumns=\"4\" />");
+		printStream.println("\t </Composite.layout>");
+
+		printStream.println("</Composite>");
+
+		try {
+			byte[] content = arrayOutputStream.toByteArray();
+			printStream.close();
+			arrayOutputStream.close();
+			return new ByteArrayInputStream(content);
+		} catch (Exception e) {
+			XWTUIPlugin.log(e);
+			ExceptionHandle.handle(e, "save failed in the file: "
+					+ getModifiedResource().getLocation());
+		}
+		return new ByteArrayInputStream(new byte[] {});
+	}
+
+	public void createType(IProgressMonitor monitor) throws CoreException,
+			InterruptedException {
+		// Add external Jars before create a new Java Source Type.
+		ProjectHelper.checkDependenceJars(getJavaProject());
+		super.createType(monitor);
+
+		IResource resource = getModifiedResource();
+		IPath resourcePath = resource.getProjectRelativePath()
+				.removeFileExtension();
+		resourcePath = resourcePath.addFileExtension(IConstants.XWT_EXTENSION);
+		try {
+			IFile file = resource.getProject().getFile(resourcePath);
+			file.create(getContentStream(), IResource.FORCE
+					| IResource.KEEP_HISTORY, monitor);
+			guiResource = file;
+		} catch (Exception e) {
+			e.printStackTrace();
+			ExceptionHandle.handle(e, "save failed in the file: "
+					+ getModifiedResource().getLocation());
+		}
+		return;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jdt.ui.wizards.NewTypeWizardPage#getTypeName()
+	 */
+	public String getTypeName() {
+		String typeName = super.getTypeName();
+		if (typeName == null || typeName.equals("")) {
+			return typeName;
+		}
+		/*
+		 * Make sure the first character of the new Class name is a upperCase
+		 * one. Because the Element parser of the XWT file convert the top
+		 * element to this format.
+		 */
+		return Character.toUpperCase(typeName.charAt(0))
+				+ typeName.substring(1);
+	}
+
+	/**
+	 * Returns the current selection state of the 'Create inherited abstract
+	 * methods' checkbox.
+	 * 
+	 * @return the selection state of the 'Create inherited abstract methods'
+	 *         checkbox
+	 */
+	public boolean isCreateInherited() {
+		return true;
+	}
+
+	public IResource getGuiResource() {
+		return guiResource;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewUIFileWizard.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewUIFileWizard.java
new file mode 100755
index 0000000..4609edc
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewUIFileWizard.java
@@ -0,0 +1,172 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.wizards;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintStream;
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.ui.ExceptionHandle;
+import org.eclipse.xwt.ui.XWTUIPlugin;
+import org.eclipse.xwt.ui.utils.ProjectUtil;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.ide.IDE;
+
+public class NewUIFileWizard extends Wizard implements INewWizard {
+
+	private NewUIFileWizardPage fileWizardPage;
+
+	private IStructuredSelection selection;
+
+	public NewUIFileWizard() {
+		setNeedsProgressMonitor(true);
+		setWindowTitle("New Widget File Wizard.");
+	}
+
+	public void addPages() {
+		fileWizardPage = new NewUIFileWizardPage(selection);
+		addPage(fileWizardPage);
+	}
+
+	public boolean performFinish() {
+		final String containerName = fileWizardPage.getContainerName();
+		final String fileName = fileWizardPage.getFileName();
+		IRunnableWithProgress op = new IRunnableWithProgress() {
+			public void run(IProgressMonitor monitor) throws InvocationTargetException {
+				try {
+					IFile file = doFinish(containerName, fileName, monitor);
+					tryToOpenPerspective();
+					ProjectUtil.updateXWTCoreDependencies(file.getProject());
+				} catch (CoreException e) {
+					throw new InvocationTargetException(e);
+				} finally {
+					monitor.done();
+				}
+			}
+		};
+		try {
+			getContainer().run(true, false, op);
+		} catch (InterruptedException e) {
+			return false;
+		} catch (InvocationTargetException e) {
+			Throwable realException = e.getTargetException();
+			MessageDialog.openError(getShell(), "Error", realException.getMessage());
+			return false;
+		}
+		return true;
+	}
+
+	protected void tryToOpenPerspective() {
+		getShell().getDisplay().asyncExec(new Runnable() {
+			public void run() {
+				XWTUIPlugin.getDefault().openXWTPerspective();
+			}
+		});
+	}
+
+	/**
+	 * The worker method. It will find the container, create the file if missing or just replace its nameMap, and open the editor on the newly created file.
+	 */
+
+	private IFile doFinish(String containerName, String fileName, IProgressMonitor monitor) throws CoreException {
+		// create a sample file
+		monitor.beginTask("Creating " + fileName, 2);
+		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+		IResource resource = root.findMember(new Path(containerName));
+		if (!resource.exists() || !(resource instanceof IContainer)) {
+			throwCoreException("Container \"" + containerName + "\" does not exist.");
+		}
+		IContainer container = (IContainer) resource;
+		final IFile file = container.getFile(new Path(fileName));
+		try {
+			InputStream stream = openContentStream(file);
+			if (file.exists()) {
+				file.setContents(stream, true, true, monitor);
+			} else {
+				file.create(stream, true, monitor);
+			}
+			stream.close();
+		} catch (IOException e) {
+		}
+		monitor.worked(1);
+		monitor.setTaskName("Opening file for editing...");
+		getShell().getDisplay().asyncExec(new Runnable() {
+			public void run() {
+				IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+				try {
+					IDE.openEditor(page, file, true);
+				} catch (PartInitException e) {
+				}
+			}
+		});
+		monitor.worked(1);
+		return file;
+	}
+
+	/**
+	 * We will initialize file nameMap with a sample text.
+	 */
+
+	private InputStream openContentStream(IFile file) {
+		ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
+		PrintStream printStream = new PrintStream(arrayOutputStream);
+
+		printStream.println("<Composite");
+		printStream.println("\t xmlns=\"" + IConstants.XWT_NAMESPACE + "\"");
+		printStream.println("\t xmlns:x=\"" + IConstants.XWT_X_NAMESPACE + "\">");
+		printStream.println("</Composite>");
+
+		try {
+			byte[] content = arrayOutputStream.toByteArray();
+			printStream.close();
+			arrayOutputStream.close();
+			return new ByteArrayInputStream(content);
+		} catch (Exception e) {
+			XWTUIPlugin.log(e);
+			ExceptionHandle.handle(e, "save failed in the file: " + fileWizardPage.getFileName());
+		}
+		return new ByteArrayInputStream(new byte[] {});
+	}
+
+	private void throwCoreException(String message) throws CoreException {
+		IStatus status = new Status(IStatus.ERROR, XWTUIPlugin.PLUGIN_ID, IStatus.OK, message, null);
+		throw new CoreException(status);
+	}
+
+	public void init(IWorkbench workbench, IStructuredSelection selection) {
+		this.selection = selection;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewUIFileWizardPage.java b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewUIFileWizardPage.java
new file mode 100755
index 0000000..7c5c5b8
--- /dev/null
+++ b/plugins/org.eclipse.xwt.tools.ui/src/org/eclipse/xwt/ui/wizards/NewUIFileWizardPage.java
@@ -0,0 +1,189 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.wizards;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.dialogs.ContainerSelectionDialog;
+
+public class NewUIFileWizardPage extends WizardPage {
+	private Text containerText;
+
+	private Text fileText;
+
+	private ISelection selection;
+
+	protected NewUIFileWizardPage(ISelection selection) {
+		super("NewWidgetFileWizardPage");
+		setTitle("New Widget File Creation");
+		setDescription("This wizard creates a new file with *.xwt extension.");
+		this.selection = selection;
+	}
+
+	public void createControl(Composite parent) {
+		Composite container = new Composite(parent, SWT.NULL);
+		GridLayout layout = new GridLayout();
+		container.setLayout(layout);
+		layout.numColumns = 3;
+		layout.verticalSpacing = 9;
+		Label label = new Label(container, SWT.NULL);
+		label.setText("&Container:");
+
+		containerText = new Text(container, SWT.BORDER | SWT.SINGLE);
+		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+		containerText.setLayoutData(gd);
+		containerText.addModifyListener(new ModifyListener() {
+			public void modifyText(ModifyEvent e) {
+				dialogChanged();
+			}
+		});
+
+		Button button = new Button(container, SWT.PUSH);
+		button.setText("Browse...");
+		button.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(SelectionEvent e) {
+				handleBrowse();
+			}
+		});
+		label = new Label(container, SWT.NULL);
+		label.setText("&File name:");
+
+		fileText = new Text(container, SWT.BORDER | SWT.SINGLE);
+		gd = new GridData(GridData.FILL_HORIZONTAL);
+		fileText.setLayoutData(gd);
+		fileText.addModifyListener(new ModifyListener() {
+			public void modifyText(ModifyEvent e) {
+				dialogChanged();
+			}
+		});
+
+		initialize();
+		dialogChanged();
+		setControl(container);
+	}
+
+	/**
+	 * Tests if the current workbench selection is a suitable container to use.
+	 */
+
+	private void initialize() {
+		if (selection != null && selection.isEmpty() == false && selection instanceof IStructuredSelection) {
+			IStructuredSelection ssel = (IStructuredSelection) selection;
+			if (ssel.size() > 1)
+				return;
+			IContainer container = null;
+			Object obj = ssel.getFirstElement();
+			if (obj instanceof IAdaptable) {
+				IAdaptable adaptable = (IAdaptable) obj;
+				IResource resource = (IResource) adaptable.getAdapter(IResource.class);
+				if (resource instanceof IContainer)
+					container = (IContainer) resource;
+				else
+					container = resource.getParent();
+			}
+
+			if (obj instanceof IResource) {
+				if (obj instanceof IContainer)
+					container = (IContainer) obj;
+				else
+					container = ((IResource) obj).getParent();
+			}
+			if (containerText != null) {
+				containerText.setText(container.getFullPath().toString());
+			}
+		}
+		fileText.setText("NewWidget.xwt");
+	}
+
+	/**
+	 * Uses the standard container selection dialog to choose the new value for the container field.
+	 */
+	private void handleBrowse() {
+		ContainerSelectionDialog dialog = new ContainerSelectionDialog(getShell(), ResourcesPlugin.getWorkspace().getRoot(), false, "Select new file container");
+		if (dialog.open() == ContainerSelectionDialog.OK) {
+			Object[] result = dialog.getResult();
+			if (result.length == 1) {
+				containerText.setText(((Path) result[0]).toString());
+			}
+		}
+	}
+
+	/**
+	 * Ensures that both text fields are set.
+	 */
+	private void dialogChanged() {
+		IResource container = ResourcesPlugin.getWorkspace().getRoot().findMember(new Path(getContainerName()));
+		String fileName = getFileName();
+
+		if (getContainerName().length() == 0) {
+			updateStatus("File container must be specified");
+			return;
+		}
+		if (container == null || (container.getType() & (IResource.PROJECT | IResource.FOLDER)) == 0) {
+			updateStatus("File container must exist");
+			return;
+		}
+		if (!container.isAccessible()) {
+			updateStatus("Project must be writable");
+			return;
+		}
+		if (fileName.length() == 0) {
+			updateStatus("File name must be specified");
+			return;
+		}
+		if (fileName.replace('\\', '/').indexOf('/', 1) > 0) {
+			updateStatus("File name must be valid");
+			return;
+		}
+		int dotLoc = fileName.lastIndexOf('.');
+		if (dotLoc != -1) {
+			String ext = fileName.substring(dotLoc + 1);
+			if (ext.equalsIgnoreCase(IConstants.XWT_EXTENSION) == false) {
+				updateStatus("File extension must be \"" + IConstants.XWT_EXTENSION + "\"");
+				return;
+			}
+		}
+		updateStatus(null);
+	}
+
+	private void updateStatus(String message) {
+		setErrorMessage(message);
+		setPageComplete(message == null);
+	}
+
+	public String getContainerName() {
+		return containerText.getText();
+	}
+
+	public String getFileName() {
+		return fileText.getText();
+	}
+}
diff --git a/org.eclipse.xwt.tools.ui.workbench/.classpath b/plugins/org.eclipse.xwt.ui.workbench/.classpath
old mode 100755
new mode 100644
similarity index 100%
copy from org.eclipse.xwt.tools.ui.workbench/.classpath
copy to plugins/org.eclipse.xwt.ui.workbench/.classpath
diff --git a/org.eclipse.xwt.ui.workbench/.gitignore b/plugins/org.eclipse.xwt.ui.workbench/.gitignore
similarity index 100%
rename from org.eclipse.xwt.ui.workbench/.gitignore
rename to plugins/org.eclipse.xwt.ui.workbench/.gitignore
diff --git a/plugins/org.eclipse.xwt.ui.workbench/.project b/plugins/org.eclipse.xwt.ui.workbench/.project
new file mode 100644
index 0000000..111a2df
--- /dev/null
+++ b/plugins/org.eclipse.xwt.ui.workbench/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.xwt.ui.workbench</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.xwt.ui.workbench/META-INF/MANIFEST.MF b/plugins/org.eclipse.xwt.ui.workbench/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..1c249c7
--- /dev/null
+++ b/plugins/org.eclipse.xwt.ui.workbench/META-INF/MANIFEST.MF
@@ -0,0 +1,49 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name.0
+Bundle-SymbolicName: org.eclipse.xwt.ui.workbench
+Bundle-Version: 1.5.0.qualifier
+Bundle-Vendor: %Bundle-Vendor.0
+Require-Bundle: 
+ org.eclipse.xwt;bundle-version="1.0.0",
+ org.eclipse.xwt.css;bundle-version="1.0.0",
+ org.eclipse.e4.core.services;bundle-version="1.0.0",
+ org.eclipse.e4.core.contexts;bundle-version="1.0.0",
+ org.eclipse.e4.core.di;bundle-version="1.0.0",
+ org.eclipse.swt;bundle-version="3.4.0",
+ org.eclipse.jface;bundle-version="3.4.0",
+ org.eclipse.e4.core.commands;bundle-version="0.10.0",
+ org.eclipse.core.runtime;bundle-version="3.6.0",
+ org.eclipse.core.databinding;bundle-version="1.3.0",
+ org.eclipse.jface.databinding;bundle-version="1.3.100",
+ org.eclipse.ui.views.properties.tabbed;bundle-version="3.5.0",
+ org.eclipse.emf;bundle-version="2.6.0",
+ org.eclipse.emf.edit;bundle-version="2.8.0",
+ org.eclipse.xwt.emf;bundle-version="1.0.0",
+ org.eclipse.e4.ui.services;bundle-version="0.10.2",
+ org.eclipse.e4.ui.workbench;bundle-version="0.10.3",
+ org.eclipse.e4.ui.model.workbench;bundle-version="0.10.1",
+ javax.inject;bundle-version="[1.0.0,2.0.0)"
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.xwt.ui.workbench,
+ org.eclipse.xwt.ui.workbench.editors;uses:="org.eclipse.core.databinding.observable,org.eclipse.core.runtime,org.eclipse.xwt.ui.workbench.views",
+ org.eclipse.xwt.ui.workbench.properties;
+  uses:="org.eclipse.ui.views.properties.tabbed,
+   org.eclipse.ui,
+   org.eclipse.jface.viewers,
+   org.eclipse.swt.widgets,
+   org.eclipse.emf.edit.domain",
+ org.eclipse.xwt.ui.workbench.views;
+  uses:="org.eclipse.xwt.ui.workbench,
+   org.eclipse.e4.core.contexts,
+   org.eclipse.e4.core.commands,
+   org.eclipse.e4.ui.services,
+   org.eclipse.swt.widgets",
+ org.eclipse.xwt.ui.workbench.wizard;
+  uses:="org.eclipse.jface.wizard,
+   org.eclipse.core.databinding.observable,
+   org.eclipse.xwt.internal.core,
+   org.eclipse.jface.resource,
+   org.eclipse.xwt.databinding,
+   org.eclipse.swt.widgets"
diff --git a/plugins/org.eclipse.xwt.ui.workbench/about.html b/plugins/org.eclipse.xwt.ui.workbench/about.html
new file mode 100644
index 0000000..46a80b6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.ui.workbench/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 5, 2006</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.ui.workbench/build.properties b/plugins/org.eclipse.xwt.ui.workbench/build.properties
new file mode 100644
index 0000000..9a1651d
--- /dev/null
+++ b/plugins/org.eclipse.xwt.ui.workbench/build.properties
@@ -0,0 +1,32 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+
+# <copyright>
+# </copyright>
+#
+# $Id: build.properties,v 1.3 2010/06/18 00:15:13 yvyang Exp $
+
+bin.includes = .,\
+               model/,\
+               META-INF/,\
+               plugin.properties,\
+               about.html,\
+               .classpath,\
+               .project,\
+               notice.html
+jars.compile.order = .
+source.. = src/
+output.. = bin/
+src.includes = about.html,\
+               model/,\
+               notice.html
diff --git a/plugins/org.eclipse.xwt.ui.workbench/model/XWTWorkBench.ecore b/plugins/org.eclipse.xwt.ui.workbench/model/XWTWorkBench.ecore
new file mode 100644
index 0000000..51c2ac0
--- /dev/null
+++ b/plugins/org.eclipse.xwt.ui.workbench/model/XWTWorkBench.ecore
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0"
+    xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="model"
+    nsURI="http://www.eclipse.org/xwt/workbench" nsPrefix="XWT">
+  <eClassifiers xsi:type="ecore:EClass" name="StaticContributedPart">
+    <eTypeParameters name="P">
+      <eBounds eClassifier="ecore:EClass platform:/plugin/org.eclipse.e4.ui.model.workbench/model/Application.ecore#//MPart">
+        <eTypeArguments/>
+      </eBounds>
+    </eTypeParameters>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="DynamicContributedPart">
+    <eTypeParameters name="P">
+      <eBounds eClassifier="ecore:EClass platform:/plugin/org.eclipse.e4.ui.model.workbench/model/Application.ecore#//MPart">
+        <eTypeArguments/>
+      </eBounds>
+    </eTypeParameters>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.xwt.ui.workbench/model/XWTWorkBench.genmodel b/plugins/org.eclipse.xwt.ui.workbench/model/XWTWorkBench.genmodel
new file mode 100644
index 0000000..d729724
--- /dev/null
+++ b/plugins/org.eclipse.xwt.ui.workbench/model/XWTWorkBench.genmodel
@@ -0,0 +1,19 @@
+<?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.xwt.ui.workbench/src"
+    modelPluginID="org.eclipse.xwt.ui.workbench" modelName="XWTWorkBench" importerID="org.eclipse.emf.importer.ecore"
+    complianceLevel="5.0" copyrightFields="false" usedGenPackages="../../org.eclipse.e4.ui.model.workbench/model/Application.genmodel#//application">
+  <foreignModel>XWTWorkBench.ecore</foreignModel>
+  <genPackages prefix="XWT" basePackage="org.eclipse.xwt.ui.workbench" disposableProviderFactory="true"
+      ecorePackage="XWTWorkBench.ecore#/">
+    <genClasses ecoreClass="XWTWorkBench.ecore#//StaticContributedPart">
+      <genTypeParameters ecoreTypeParameter="XWTWorkBench.ecore#//StaticContributedPart/P"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XWTWorkBench.ecore#//StaticContributedPart/contentURL"/>
+    </genClasses>
+    <genClasses ecoreClass="XWTWorkBench.ecore#//DynamicContributedPart">
+      <genTypeParameters ecoreTypeParameter="XWTWorkBench.ecore#//DynamicContributedPart/P"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute XWTWorkBench.ecore#//DynamicContributedPart/contentProvider"/>
+    </genClasses>
+  </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/org.eclipse.xwt.ui.workbench/notice.html b/plugins/org.eclipse.xwt.ui.workbench/notice.html
new file mode 100644
index 0000000..2949b01
--- /dev/null
+++ b/plugins/org.eclipse.xwt.ui.workbench/notice.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 9, 2014</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 2.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/plugins/org.eclipse.xwt.ui.workbench/plugin.properties b/plugins/org.eclipse.xwt.ui.workbench/plugin.properties
new file mode 100644
index 0000000..0537dd6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.ui.workbench/plugin.properties
@@ -0,0 +1,26 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+"******************************************************************************
+# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+# 
+# Contributors:
+#     Soyatec - initial API and implementation
+#******************************************************************************/
+Bundle-Vendor.0 = Eclipse XWT
+Bundle-Name.0 = XWT Workbench
diff --git a/plugins/org.eclipse.xwt.ui.workbench/pom.xml b/plugins/org.eclipse.xwt.ui.workbench/pom.xml
new file mode 100755
index 0000000..4241909
--- /dev/null
+++ b/plugins/org.eclipse.xwt.ui.workbench/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-plugins</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt.ui.workbench</artifactId>
+	<version>1.5.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+</project>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/IContentPart.java b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/IContentPart.java
new file mode 100644
index 0000000..5aa18fd
--- /dev/null
+++ b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/IContentPart.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.workbench;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public interface IContentPart {
+	Object getDataContext();
+
+	ClassLoader getClassLoader();
+}
diff --git a/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/IPartContentProvider.java b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/IPartContentProvider.java
new file mode 100644
index 0000000..baaa504
--- /dev/null
+++ b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/IPartContentProvider.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.workbench;
+
+import java.io.InputStream;
+import java.net.URL;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public interface IPartContentProvider {
+
+	/**
+	 * Content stream
+	 * 
+	 * @return
+	 */
+	InputStream getContent();
+
+	/**
+	 * Resource location, used to resolve relative resources
+	 * 
+	 * @return
+	 */
+	URL getBase();
+
+	/**
+	 * Resource loader
+	 * 
+	 * @return
+	 */
+	ClassLoader getClassLoader();
+}
diff --git a/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/IStaticPart.java b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/IStaticPart.java
new file mode 100644
index 0000000..d770390
--- /dev/null
+++ b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/IStaticPart.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.workbench;
+
+import java.net.URL;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public interface IStaticPart extends IContentPart {
+	URL getURL();
+}
diff --git a/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/editors/XWTSaveablePart.java b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/editors/XWTSaveablePart.java
new file mode 100644
index 0000000..8d5bbcb
--- /dev/null
+++ b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/editors/XWTSaveablePart.java
@@ -0,0 +1,101 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.workbench.editors;
+
+import java.io.IOException;
+import java.net.URL;
+
+import javax.inject.Inject;
+
+import org.eclipse.core.databinding.observable.ChangeEvent;
+import org.eclipse.core.databinding.observable.IChangeListener;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.model.application.ui.MDirtyable;
+import org.eclipse.e4.ui.model.application.ui.MUILabel;
+import org.eclipse.jface.databinding.swt.ISWTObservable;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.ui.workbench.views.XWTStaticPart;
+
+/**
+ * This class defines the common infrastructure as editor part of eclipse workbench.
+ * 
+ * @author yyang <yves.yang@soyatec.com>
+ */
+public abstract class XWTSaveablePart extends XWTStaticPart {
+	@Inject
+	private MDirtyable dirtyable;
+	
+	@Inject
+	private MUILabel uiItem;
+	
+	private DirtyManager dirtyManager = new DirtyManager();
+	
+	class DirtyManager implements IChangeListener {
+		public void handleChange(ChangeEvent event) {
+			if (dirtyable.isDirty()) {
+				return;
+			}
+			Object source = event.getSource();
+			if (!(source instanceof ISWTObservable)) {
+				setDirty(true);
+			}
+		}
+	}
+
+	// TBD is this the right place for the @Persist tag?
+	// org.eclipse.e4.ui.di.Persist @Persist
+	public abstract void doSave(@Optional IProgressMonitor monitor) throws IOException,
+	InterruptedException;
+ 	
+	public boolean isSaveOnCloseNeeded() {
+		return true;
+	}
+	
+	@Override
+	protected void refresh(URL url, Object dataContext, ClassLoader loader) {
+		Control loadedRoot = null;
+		Control[] children = getParent().getChildren();
+		if (children.length > 0) {
+			loadedRoot = children[0];
+		}
+		if (loadedRoot != null) {
+			XWT.removeObservableChangeListener(loadedRoot, dirtyManager);			
+		}
+		
+		super.refresh(url, dataContext, loader);
+		
+		dirtyable.setDirty(false);
+		
+		children = getParent().getChildren();
+		if (children.length > 0) {
+			loadedRoot = children[0];
+		}
+		if (loadedRoot != null) {
+			XWT.addObservableChangeListener(loadedRoot, dirtyManager);
+		}
+	}
+	
+	protected void updatePartTitle(String title) {
+		uiItem.setLabel(title.toString());
+	}
+		
+	public boolean isDirty() {
+		return dirtyable.isDirty();
+	}
+	
+	public void setDirty(Boolean dirty) {
+		dirtyable.setDirty(dirty);
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/ApplicationPropertySheetPage.java b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/ApplicationPropertySheetPage.java
new file mode 100644
index 0000000..35d9149
--- /dev/null
+++ b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/ApplicationPropertySheetPage.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2014 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.workbench.properties;
+
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+
+public class ApplicationPropertySheetPage extends TabbedPropertySheetPage {
+
+	private EditingDomain editingDomain;
+
+	public ApplicationPropertySheetPage(
+			EditingDomain editingDomain,
+			ITabbedPropertySheetPageContributor tabbedPropertySheetPageContributor) {
+		this(editingDomain, tabbedPropertySheetPageContributor, true);
+	}
+
+	public ApplicationPropertySheetPage(
+			EditingDomain editingDomain,
+			ITabbedPropertySheetPageContributor tabbedPropertySheetPageContributor,
+			boolean showTitleBar) {
+		super(tabbedPropertySheetPageContributor, showTitleBar);
+		this.editingDomain = editingDomain;
+	}
+
+	public EditingDomain getEditingDomain() {
+		return editingDomain;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/XWTSection.java b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/XWTSection.java
new file mode 100644
index 0000000..d1bbcbc
--- /dev/null
+++ b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/XWTSection.java
@@ -0,0 +1,162 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2014 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.workbench.properties;
+
+import java.net.URL;
+import java.util.HashMap;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.xwt.DefaultLoadingContext;
+import org.eclipse.xwt.ILoadingContext;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTLoader;
+import org.eclipse.xwt.emf.EMFBinding;
+
+public class XWTSection extends AbstractPropertySection {
+	private ILoadingContext loadingContext = new DefaultLoadingContext(
+			getClass().getClassLoader());
+
+	private URL sectionURL;
+
+	private Composite self;
+
+	private boolean xwtCaching = true;
+	
+	public XWTSection(URL sectionURL) {
+		this.sectionURL = sectionURL;
+	}
+
+	@Override
+	public void createControls(Composite parent,
+			TabbedPropertySheetPage aTabbedPropertySheetPage) {
+		self = new Composite(parent, SWT.NONE);
+
+		GridLayout layout = new GridLayout(1, false);
+		layout.marginHeight = 0;
+		layout.marginWidth = 0;
+		self.setLayout(layout);
+
+		layout = new GridLayout(1, false);
+		layout.verticalSpacing = 5;
+		layout.marginHeight = 5;
+		layout.marginWidth = 5;
+		parent.setLayout(layout);
+
+		GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
+		self.setLayoutData(data);
+
+		self.setBackground(parent.getBackground());
+		self.setBackgroundMode(SWT.INHERIT_DEFAULT);
+	}
+
+	@Override
+	public void refresh() {
+		if (self == null || self.isDisposed()) {
+			dispose();
+			return;
+		}
+		for (Control child : self.getChildren()) {
+			child.dispose();
+		}
+		Object source = getDataObject();
+		if (source == null) {
+			return;
+		}
+		if (sectionURL != null) {
+			createSection(self, sectionURL, source);
+		}
+		layout(self);
+	}
+	
+	public boolean isXWTCaching() {
+		return xwtCaching;
+	}
+
+	public void setXWTCaching(boolean pmfCaching) {
+		this.xwtCaching = pmfCaching;
+	}
+
+	private Object getDataObject() {
+		IStructuredSelection selection = getSelection();
+		return selection.getFirstElement();
+	}
+
+	private Control createSection(Composite parent, URL xwtFile, Object source) {
+		EMFBinding.initialze();
+		ILoadingContext xwtContext = XWT.getLoadingContext();
+		XWT.setLoadingContext(loadingContext);
+
+		Control control = null;
+		try {
+			HashMap<String, Object> newOptions = new HashMap<String, Object>();
+			newOptions.put(XWTLoader.CONTAINER_PROPERTY, parent);
+			newOptions.put(XWTLoader.DATACONTEXT_PROPERTY, source);
+			newOptions.put(XWTLoader.CLASS_PROPERTY, this);
+			if (isXWTCaching()) {
+				newOptions.put(XWTLoader.XML_CACHE_PROPERTY, this);
+			}
+			control = (Control) XWT.loadWithOptions(xwtFile, newOptions);
+
+			if (control != null) {
+				control.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true,
+						true));
+			}
+		} catch (Exception ex) {
+			Label label = new Label(parent, SWT.NONE);
+			label.setText("An error occured in the property view. The file " + xwtFile + " could not be loaded"); //$NON-NLS-1$ //$NON-NLS-2$
+			ex.printStackTrace();
+		}
+		// layout(parent);
+
+		XWT.setLoadingContext(xwtContext);
+
+		return control;
+	}
+
+	private void layout(Composite parent) {
+		parent.getParent().getParent().layout();
+		parent.getParent().layout();
+		parent.layout();
+	}
+
+	@Override
+	public void dispose() {
+		if (self != null) {
+			self.dispose();
+		}
+		super.dispose();
+	}
+
+	@Override
+	public void setInput(IWorkbenchPart part, ISelection selection) {
+		if (selection == getSelection()) {
+			return;
+		}
+		super.setInput(part, selection);
+	}
+
+	@Override
+	public IStructuredSelection getSelection() {
+		return (IStructuredSelection) super.getSelection();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/XWTSectionDescriptor.java b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/XWTSectionDescriptor.java
new file mode 100644
index 0000000..ad48957
--- /dev/null
+++ b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/XWTSectionDescriptor.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2014 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.workbench.properties;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.ui.views.properties.tabbed.AbstractSectionDescriptor;
+import org.eclipse.ui.views.properties.tabbed.ISection;
+import org.eclipse.xwt.IConstants;
+
+public class XWTSectionDescriptor extends AbstractSectionDescriptor {
+
+	private String id;
+	private String targetTab;
+	private String sectionTypeName;
+	private List<String> inputTypes;
+
+	public XWTSectionDescriptor(String id, String targetTab,
+			String sectionTypeName) {
+		Assert.isNotNull(id, "Section id can not be null");
+		Assert.isNotNull(targetTab, "Tab id can not be null");
+		Assert.isNotNull(sectionTypeName,
+				"URL for renderering section can not be null");
+		this.id = id;
+		this.targetTab = targetTab;
+		this.sectionTypeName = sectionTypeName;
+	}
+
+	public String getId() {
+		return id;
+	}
+
+	public ISection getSectionClass() {
+		URL sectionURL = null;
+		try {
+			Class<?> type = Class.forName(sectionTypeName);
+			sectionURL = type.getResource(type.getSimpleName()
+					+ IConstants.XWT_EXTENSION_SUFFIX);
+		} catch (ClassNotFoundException e) {
+			e.printStackTrace();
+		}
+		return new XWTSection(sectionURL);
+	}
+
+	public String getTargetTab() {
+		return targetTab;
+	}
+
+	public List<String> getInputTypes() {
+		if (inputTypes == null) {
+			inputTypes = new ArrayList<String>();
+		}
+		return inputTypes;
+	}
+
+	public void addInputType(String inputType) {
+		getInputTypes().add(inputType);
+	}
+}
diff --git a/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/XWTTabDescriptor.java b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/XWTTabDescriptor.java
new file mode 100644
index 0000000..093a1f9
--- /dev/null
+++ b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/XWTTabDescriptor.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2014 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.workbench.properties;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.ui.views.properties.tabbed.AbstractTabDescriptor;
+
+public class XWTTabDescriptor extends AbstractTabDescriptor {
+
+	private String id;
+	private String label;
+	private String category;
+
+	public XWTTabDescriptor(String id, String label, String category) {
+		Assert.isNotNull(id, "Tab id can not be null");
+		this.id = id;
+		this.category = category;
+		this.label = label;
+	}
+
+	public String getCategory() {
+		return category;
+	}
+
+	public String getId() {
+		return id;
+	}
+
+	public String getLabel() {
+		return label;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/XWTTabDescriptorProvider.java b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/XWTTabDescriptorProvider.java
new file mode 100644
index 0000000..bc1cda1
--- /dev/null
+++ b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/properties/XWTTabDescriptorProvider.java
@@ -0,0 +1,111 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2014 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.workbench.properties;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.internal.views.properties.tabbed.view.TabbedPropertyRegistry;
+import org.eclipse.ui.internal.views.properties.tabbed.view.TabbedPropertyRegistryFactory;
+import org.eclipse.ui.views.properties.tabbed.ITabDescriptor;
+import org.eclipse.ui.views.properties.tabbed.ITabDescriptorProvider;
+import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
+
+@SuppressWarnings("restriction")
+public abstract class XWTTabDescriptorProvider implements ITabDescriptorProvider {
+
+	private IWorkbenchPart previousPart;
+
+	private ISelection previousSelection;
+
+	private ITabDescriptor[] cachedResult;
+
+	public ITabDescriptor[] getTabDescriptors(IWorkbenchPart part,
+			ISelection selection) {
+		if (part != previousPart || selection != previousSelection) {
+			this.previousPart = part;
+			this.previousSelection = selection;
+			List<ITabDescriptor> descriptors = new ArrayList<ITabDescriptor>();
+
+			addTabDescriptors(descriptors);
+
+			// TODO: 2. Define/Get "category" of a TabDescriptor.
+
+			// TODO: Add custom defined Tabs and Section from extensions.
+			// FIXME: In some cases (e.g. Selection in the Papyrus Tree
+			// outline), the IWorkbenchPart is not an
+			// ITabbedPropertySheetPageContributor
+			// TODO: Investigate on this case and fix the issue (contributor ==
+			// null in this case)
+			ITabbedPropertySheetPageContributor contributor;
+			if (part instanceof ITabbedPropertySheetPageContributor) {
+				contributor = (ITabbedPropertySheetPageContributor) part;
+			} else {
+				contributor = (ITabbedPropertySheetPageContributor) (part
+						.getAdapter(ITabbedPropertySheetPageContributor.class));
+			}
+
+			if (contributor != null) {
+				// get all tab descriptors for the registered extension points
+				// Memory leak here
+				TabbedPropertyRegistry registry = TabbedPropertyRegistryFactory
+						.getInstance().createRegistry(contributor);
+
+				// invoke dynamically on the tab registry, as method is private
+				// problem of implementation of tabbed properties tabbed
+				// registry. Either contribution using extension points, either
+				// a tabprovider
+				// both contribution can not exist together, the only solution
+				// is to make a workaround.
+				try {
+					Method method = TabbedPropertyRegistry.class
+							.getDeclaredMethod("getAllTabDescriptors"); //$NON-NLS-1$
+					method.setAccessible(true);
+					ITabDescriptor[] registeredTabDesriptors;
+
+					registeredTabDesriptors = (ITabDescriptor[]) method
+							.invoke(registry);
+
+					if (registeredTabDesriptors != null) {
+						for (ITabDescriptor descriptor : registeredTabDesriptors) {
+							if (descriptor.getSectionDescriptors().size() > 0) {
+								descriptors.add(descriptor);
+							}
+						}
+					}
+				} catch (IllegalArgumentException e) {
+					e.printStackTrace();
+				} catch (IllegalAccessException e) {
+					e.printStackTrace();
+				} catch (InvocationTargetException e) {
+					e.printStackTrace();
+				} catch (SecurityException e) {
+					e.printStackTrace();
+				} catch (NoSuchMethodException e) {
+					e.printStackTrace();
+				}
+			}
+
+			// TODO: need a sort?
+			cachedResult = descriptors.toArray(new ITabDescriptor[descriptors
+					.size()]);
+		}
+		return cachedResult;
+	}
+
+	abstract protected void addTabDescriptors(List<ITabDescriptor> descriptors);
+}
diff --git a/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTAbstractPart.java b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTAbstractPart.java
new file mode 100644
index 0000000..d141b66
--- /dev/null
+++ b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTAbstractPart.java
@@ -0,0 +1,194 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.workbench.views;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.net.URL;
+import java.util.HashMap;
+
+import javax.annotation.PostConstruct;
+import javax.inject.Inject;
+
+import org.eclipse.e4.core.commands.ECommandService;
+import org.eclipse.e4.core.commands.EHandlerService;
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.e4.ui.services.IStylingEngine;
+import org.eclipse.jface.layout.GridLayoutFactory;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.DefaultLoadingContext;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTLoader;
+import org.eclipse.xwt.css.CSSHandler;
+import org.eclipse.xwt.internal.utils.LoggerManager;
+import org.eclipse.xwt.ui.workbench.IContentPart;
+
+/**
+ * The default class to handle the connection with e4 workbench.
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public abstract class XWTAbstractPart implements IContentPart {
+	private PropertyChangeSupport changeSupport = new PropertyChangeSupport(
+			this);
+	
+	private boolean constructing = true;
+
+	private boolean xwtCaching = true;
+	
+	@Inject
+	private Composite parent;
+
+	@Inject
+	private IStylingEngine engine;
+
+	@Inject
+	private EHandlerService handlerService;
+
+	@Inject
+	private ECommandService commandService;
+
+	private IEclipseContext context;
+
+	protected Object dataContext;
+
+	static {
+		try {
+			XWT.registerNamespaceHandler(CSSHandler.NAMESPACE,
+					CSSHandler.handler);
+		} catch (Exception e) {
+		}
+	}
+
+	public IEclipseContext getContext() {
+		return context;
+	}
+
+	@Inject
+	public void setContext(IEclipseContext context) {
+		if (context == null) {
+			return;
+		}
+		this.context = context;
+	}
+
+	/*
+	 * Called by injection engine
+	 */
+	@SuppressWarnings("unused")
+	@PostConstruct
+	final private void partPostConstruct() {
+		constructing = false;
+	}
+		
+	public boolean isConstructing() {
+		return constructing;
+	}
+	
+	public IStylingEngine getStyleEngine() {
+		return engine;
+	}
+	
+	public boolean isXWTCaching() {
+		return xwtCaching;
+	}
+
+	public void setXWTCaching(boolean pmfCaching) {
+		this.xwtCaching = pmfCaching;
+	}
+
+	public EHandlerService getHandlerService() {
+		return handlerService;
+	}
+
+	public ECommandService getCommandService() {
+		return commandService;
+	}
+
+	public Object getDataContext() {
+		return dataContext;
+	}
+	
+	
+	public void setDataContext(Object dataContext) {
+		this.dataContext = dataContext;
+	}
+
+	public Composite getParent() {
+		return parent;
+	}
+
+	@Inject
+	public void setParent(Composite parent) {
+		if (parent != null && this.parent == null) {
+			this.parent = parent;
+			parent.getShell().setBackgroundMode(SWT.INHERIT_DEFAULT);
+		}
+	}
+
+	public void addPropertyChangeListener(String propertyName,
+			PropertyChangeListener listener) {
+		changeSupport.addPropertyChangeListener(propertyName, listener);
+	}
+
+	public void removePropertyChangeListener(String propertyName,
+			PropertyChangeListener listener) {
+		changeSupport.removePropertyChangeListener(propertyName, listener);
+	}
+
+	public void firePropertyChange(PropertyChangeEvent evt) {
+		changeSupport.firePropertyChange(evt);
+	}
+	
+	public ClassLoader getClassLoader() {
+		return this.getClass().getClassLoader();
+	}
+
+	protected void refresh(URL url, Object dataContext, ClassLoader loader) {
+		if (parent == null || isConstructing()) {
+			return;
+		}
+		parent.setVisible(false);
+		for (Control child : parent.getChildren()) {
+			child.dispose();
+		}
+		ClassLoader classLoader = Thread.currentThread()
+				.getContextClassLoader();
+		try {
+			XWT.setLoadingContext(new DefaultLoadingContext(loader));
+			HashMap<String, Object> newOptions = new HashMap<String, Object>();
+			newOptions.put(XWTLoader.CONTAINER_PROPERTY, parent);
+			newOptions.put(XWTLoader.DATACONTEXT_PROPERTY, dataContext);
+			newOptions.put(XWTLoader.CLASS_PROPERTY, this);
+			if (isXWTCaching()) {
+				newOptions.put(XWTLoader.XML_CACHE_PROPERTY, this);
+			}
+			XWT.loadWithOptions(url, newOptions);
+			GridLayoutFactory.fillDefaults().generateLayout(parent);
+			parent.layout(true, true);
+		} catch (Exception e) {
+			LoggerManager.log(e);
+		} finally {
+			Thread.currentThread().setContextClassLoader(classLoader);
+			parent.setVisible(true);
+		}
+	}
+	
+	public Shell getShell() {
+		return parent.getShell();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTDynamicPart.java b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTDynamicPart.java
new file mode 100644
index 0000000..e23e81b
--- /dev/null
+++ b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTDynamicPart.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.workbench.views;
+
+import java.util.HashMap;
+
+import javax.annotation.PostConstruct;
+
+import org.eclipse.jface.layout.GridLayoutFactory;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTLoader;
+import org.eclipse.xwt.ui.workbench.IPartContentProvider;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public abstract class XWTDynamicPart extends XWTAbstractPart {
+	protected IPartContentProvider contentProvider;
+
+	protected IPartContentProvider getContentProvider() {
+		if (contentProvider == null) {
+			contentProvider = createContentProvider();
+		}
+		return contentProvider;
+	}
+
+	protected abstract IPartContentProvider createContentProvider();
+
+	@PostConstruct
+	protected void init() {
+		refresh(getDataContext());
+	}
+
+	public void refresh(Object dataContext) {
+		if (isConstructing()) {
+			return;
+		}
+		Composite parent = getParent();
+		parent.setVisible(false);
+		for (Control child : parent.getChildren()) {
+			child.dispose();
+		}
+		ClassLoader classLoader = Thread.currentThread()
+				.getContextClassLoader();
+		try {
+			Thread.currentThread().setContextClassLoader(
+					getContentProvider().getClassLoader());
+			HashMap<String, Object> newOptions = new HashMap<String, Object>();
+			newOptions.put(XWTLoader.CONTAINER_PROPERTY, parent);
+			newOptions.put(XWTLoader.DATACONTEXT_PROPERTY, dataContext);
+			newOptions.put(XWTLoader.CLASS_PROPERTY, this);
+			XWT.loadWithOptions(getContentProvider().getContent(),
+					getContentProvider().getBase(), newOptions);
+			GridLayoutFactory.fillDefaults().generateLayout(parent);
+			parent.layout(true, true);
+		} catch (Exception e) {
+			e.printStackTrace();
+		} finally {
+			Thread.currentThread().setContextClassLoader(classLoader);
+			parent.setVisible(true);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTInputPart.java b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTInputPart.java
new file mode 100644
index 0000000..0f4181a
--- /dev/null
+++ b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTInputPart.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.workbench.views;
+
+/**
+ * The default class to handle the connection with e4 workbench.
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class XWTInputPart extends XWTStaticPart {
+	protected Object input;
+	protected Class<?> inputType;
+
+	public XWTInputPart() {
+	}
+
+	public Class<?> getInputType() {
+		return inputType;
+	}
+
+	public void setInput(Object input) {
+		if (this.input == input) {
+			return;
+		}
+		Class<?> inputType = getInputType();
+		if (inputType == null || inputType.isInstance(input)) {
+			refresh(getURL(), input, getClassLoader());
+		}
+		this.input = input;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTPartSwitcher.java b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTPartSwitcher.java
new file mode 100644
index 0000000..8553ffc
--- /dev/null
+++ b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTPartSwitcher.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.workbench.views;
+
+import org.eclipse.xwt.ui.workbench.IStaticPart;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public abstract class XWTPartSwitcher extends XWTStaticPart {
+
+	protected void refresh() {
+		IStaticPart switcher = getCurrentPart();
+		switchPart(switcher);
+	}
+
+	protected abstract IStaticPart getCurrentPart();
+
+	public void switchPart(IStaticPart part) {
+		refresh(part.getURL(), part.getDataContext(), part.getClassLoader());
+	}
+}
diff --git a/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTSelectionStaticPart.java b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTSelectionStaticPart.java
new file mode 100644
index 0000000..775f5eb
--- /dev/null
+++ b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTSelectionStaticPart.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.workbench.views;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.services.IServiceConstants;
+
+/**
+ * This part uses the Selection variable as data context
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class XWTSelectionStaticPart extends XWTStaticPart {
+
+	public XWTSelectionStaticPart() {
+	}
+
+	@Inject
+	public void setSelection(@Optional @Named(IServiceConstants.SELECTION) Object selection) {
+		dataContext = selection;
+		if (isConstructing()) {
+			return;
+		}
+		refresh();
+	}
+}
diff --git a/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTStaticPart.java b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTStaticPart.java
new file mode 100644
index 0000000..07116a3
--- /dev/null
+++ b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/views/XWTStaticPart.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.ui.workbench.views;
+
+import java.net.URL;
+
+import javax.annotation.PostConstruct;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.ui.workbench.IStaticPart;
+
+/**
+ * The default class to handle the connection with e4 workbench. As the value of
+ * data context. by default, there are two possibilities: Selection and
+ * DataContext
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class XWTStaticPart extends XWTAbstractPart implements IStaticPart {
+	
+	@PostConstruct
+	protected void postInit() {
+		refresh();
+	}
+
+	protected void refresh() {
+		if (isConstructing()) {
+			return;
+		}
+		refresh(getURL(), getDataContext(), getClassLoader());
+	}
+
+	public URL getURL() {
+		return this.getClass().getResource(
+				this.getClass().getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+	}
+	
+	
+	@Override
+	public void setDataContext(Object dataContext) {
+		super.setDataContext(dataContext);
+		try {
+			if (!isConstructing()) {
+				refresh();
+			}
+		} catch (Exception e) {
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/wizard/XWTWizardPage.java b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/wizard/XWTWizardPage.java
new file mode 100644
index 0000000..56b8e87
--- /dev/null
+++ b/plugins/org.eclipse.xwt.ui.workbench/src/org/eclipse/xwt/ui/workbench/wizard/XWTWizardPage.java
@@ -0,0 +1,181 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec and Valoueee - initial API and implementation
+ *       http://www.eclipse.org/forums/index.php?t=msg&th=199619&start=0&S=eeee2217897168580b83685b5756bc21
+ *******************************************************************************/
+package org.eclipse.xwt.ui.workbench.wizard;
+
+import java.io.InputStream;
+import java.net.URL;
+import java.util.HashMap;
+
+import org.eclipse.core.databinding.AggregateValidationStatus;
+import org.eclipse.core.databinding.observable.ChangeEvent;
+import org.eclipse.core.databinding.observable.IChangeListener;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.databinding.swt.ISWTObservable;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTLoader;
+import org.eclipse.xwt.databinding.BindingContext;
+import org.eclipse.xwt.internal.core.UIResource;
+
+public abstract class XWTWizardPage extends WizardPage {
+
+	private Object dataContext;
+	private BindingContext bindingContext;
+	private AggregateValidationStatus validationStatus;
+
+	private PageStateManager pageStateManager = new PageStateManager();
+
+	private UIResource uiResource;
+	
+	private boolean xwtCaching = true;
+
+	class PageStateManager implements IChangeListener {
+		public void handleChange(ChangeEvent event) {
+			Object source = event.getSource();
+			if (!(source instanceof ISWTObservable)) {
+				setPageComplete(false);
+			}
+		}
+	}
+
+	public boolean isXWTCaching() {
+		return xwtCaching;
+	}
+
+	public void setXWTCaching(boolean pmfCaching) {
+		this.xwtCaching = pmfCaching;
+	}
+
+	protected XWTWizardPage(String pageName, String title,
+			ImageDescriptor titleImage, Object dataContext) {
+		this(pageName, title, titleImage, dataContext, null);
+	}
+
+	protected XWTWizardPage(String pageName, String title,
+			ImageDescriptor titleImage, Object dataContext, UIResource uiResource) {
+		this(pageName, title, titleImage, dataContext, null, uiResource);
+	}
+
+	protected XWTWizardPage(String pageName, String title,
+			ImageDescriptor titleImage, Object dataContext,
+			BindingContext bindingContext, UIResource uiResource) {
+		super(pageName, title, null);
+		this.dataContext = dataContext;
+		this.bindingContext = bindingContext;
+		this.uiResource = uiResource;
+	}
+
+	public void createControl(Composite _parent) {
+		if (bindingContext == null) {
+			bindingContext = new BindingContext(_parent);
+		}
+		validationStatus = bindingContext.getStatus();
+		validationStatus.addChangeListener(new IChangeListener() {
+			public void handleChange(ChangeEvent event) {
+				IStatus status = (IStatus) validationStatus.getValue();
+				if (status.getSeverity() == IStatus.ERROR) {
+					setMessage(status.getMessage(),ERROR);
+					setPageComplete(false);
+				}
+		        else {
+    				setMessage(status.getMessage(),status.getSeverity());
+    				setPageComplete(true);
+		        }
+			}
+		});
+
+		ClassLoader classLoader = Thread.currentThread()
+				.getContextClassLoader();
+		try {
+			Thread.currentThread().setContextClassLoader(getClassLoader());
+			HashMap<String, Object> newOptions = new HashMap<String, Object>();
+			newOptions.put(XWTLoader.CONTAINER_PROPERTY, _parent);
+			Object dataContext = getDataContext();
+			if (dataContext != null) {
+				newOptions.put(XWTLoader.DATACONTEXT_PROPERTY, dataContext);
+			}
+			BindingContext bindingContext = getBindingContext();
+			if (bindingContext != null) {
+				newOptions.put(XWTLoader.BINDING_CONTEXT_PROPERTY,
+						bindingContext);
+			}
+			if (isXWTCaching()) {
+				newOptions.put(XWTLoader.XML_CACHE_PROPERTY, this);
+			}
+
+			InputStream inputStream = getContentInputStream();
+
+			Object element = null;
+			if (uiResource != null) {
+				element = XWT.loadWithOptions(uiResource, newOptions);
+			} else {
+				element = (inputStream == null ? XWT.loadWithOptions(
+						getContentURL(), newOptions) : XWT.loadWithOptions(
+						inputStream, getContentURL(), newOptions));
+			}
+			if (element instanceof Control) {
+				Control control = (Control) element;
+				setControl(control);
+				XWT.addObservableChangeListener(control, pageStateManager);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		} finally {
+			Thread.currentThread().setContextClassLoader(classLoader);
+			_parent.setVisible(true);
+		}
+	}
+
+	@Override
+	public void dispose() {
+		Control control = getControl();
+		if (control != null) {
+			XWT.removeObservableChangeListener(control, pageStateManager);
+		}
+		super.dispose();
+	}
+
+	abstract protected URL getContentURL();
+
+	protected InputStream getContentInputStream() {
+		return null;
+	}
+
+	public UIResource getUIResource() {
+		return uiResource;
+	}
+
+	public void setUIResource(UIResource uiResource) {
+		this.uiResource = uiResource;
+	}
+
+	protected ClassLoader getClassLoader() {
+		return Thread.currentThread().getContextClassLoader();
+	}
+
+	public Object getDataContext() {
+		return dataContext;
+	}
+
+	public BindingContext getBindingContext() {
+		return bindingContext;
+	}
+
+	public void setBindingContext(BindingContext bindingContext) {
+		this.bindingContext = bindingContext;
+	}
+}
diff --git a/org.eclipse.xwt.tools.ui.designer.core/.classpath b/plugins/org.eclipse.xwt.xml/.classpath
old mode 100755
new mode 100644
similarity index 100%
copy from org.eclipse.xwt.tools.ui.designer.core/.classpath
copy to plugins/org.eclipse.xwt.xml/.classpath
diff --git a/org.eclipse.xwt.xml/.gitignore b/plugins/org.eclipse.xwt.xml/.gitignore
similarity index 100%
rename from org.eclipse.xwt.xml/.gitignore
rename to plugins/org.eclipse.xwt.xml/.gitignore
diff --git a/plugins/org.eclipse.xwt.xml/.project b/plugins/org.eclipse.xwt.xml/.project
new file mode 100644
index 0000000..6d57491
--- /dev/null
+++ b/plugins/org.eclipse.xwt.xml/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.xwt.xml</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.xwt.xml/META-INF/MANIFEST.MF b/plugins/org.eclipse.xwt.xml/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..c066e83
--- /dev/null
+++ b/plugins/org.eclipse.xwt.xml/META-INF/MANIFEST.MF
@@ -0,0 +1,14 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name.0
+Bundle-SymbolicName: org.eclipse.xwt.xml
+Bundle-Version: 1.4.0.qualifier
+Bundle-Activator: org.eclipse.xwt.xml.Activator
+Require-Bundle: org.eclipse.core.runtime;bundle-version="3.8.0",
+ org.eclipse.xwt;bundle-version="0.9.0",
+ org.eclipse.core.databinding;bundle-version="1.1.0",
+ org.eclipse.core.databinding.property;bundle-version="1.1.0"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.xwt.xml
+Bundle-Vendor: %Bundle-Vendor.0
diff --git a/plugins/org.eclipse.xwt.xml/OSGI-INF/l10n/bundle.properties b/plugins/org.eclipse.xwt.xml/OSGI-INF/l10n/bundle.properties
new file mode 100644
index 0000000..3026ee0
--- /dev/null
+++ b/plugins/org.eclipse.xwt.xml/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1,26 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+"******************************************************************************
+# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+# 
+# Contributors:
+#     Soyatec - initial API and implementation
+#******************************************************************************/
+Bundle-Vendor.0 = Eclipse XWT
+Bundle-Name.0 = XWT XML Plug-in
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.xml/about.html b/plugins/org.eclipse.xwt.xml/about.html
new file mode 100644
index 0000000..46a80b6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.xml/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 5, 2006</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.xml/build.properties b/plugins/org.eclipse.xwt.xml/build.properties
new file mode 100644
index 0000000..fad0887
--- /dev/null
+++ b/plugins/org.eclipse.xwt.xml/build.properties
@@ -0,0 +1,27 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               OSGI-INF/l10n/bundle.properties,\
+               about.html,\
+               notice.html
+src.includes = .classpath,\
+               .project,\
+               META-INF/,\
+               OSGI-INF/,\
+               about.html,\
+               build.properties,\
+               src/,\
+               notice.html
diff --git a/plugins/org.eclipse.xwt.xml/notice.html b/plugins/org.eclipse.xwt.xml/notice.html
new file mode 100644
index 0000000..2949b01
--- /dev/null
+++ b/plugins/org.eclipse.xwt.xml/notice.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 9, 2014</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 2.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/plugins/org.eclipse.xwt.xml/pom.xml b/plugins/org.eclipse.xwt.xml/pom.xml
new file mode 100755
index 0000000..2f5bc8f
--- /dev/null
+++ b/plugins/org.eclipse.xwt.xml/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-plugins</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt.xml</artifactId>
+	<version>1.4.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+</project>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt.xml/src/org/eclipse/xwt/xml/Activator.java b/plugins/org.eclipse.xwt.xml/src/org/eclipse/xwt/xml/Activator.java
new file mode 100644
index 0000000..c3cd0e6
--- /dev/null
+++ b/plugins/org.eclipse.xwt.xml/src/org/eclipse/xwt/xml/Activator.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *     Erdal Karaca - removed dependency on org.eclipse.ui
+ *******************************************************************************/
+package org.eclipse.xwt.xml;
+
+import org.eclipse.xwt.XWT;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator implements BundleActivator {
+
+	// The plug-in ID
+	public static final String PLUGIN_ID = "org.eclipse.xwt.xml";
+
+	// The shared instance
+	private static Activator plugin;
+
+	/**
+	 * The constructor
+	 */
+	public Activator() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext
+	 * )
+	 */
+	public void start(BundleContext context) throws Exception {
+		plugin = this;
+
+		XWT.registerMetaclass(XmlDataProvider.class);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext
+	 * )
+	 */
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+	}
+
+	/**
+	 * Returns the shared instance
+	 * 
+	 * @return the shared instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt.xml/src/org/eclipse/xwt/xml/IXmlDataProvider.java b/plugins/org.eclipse.xwt.xml/src/org/eclipse/xwt/xml/IXmlDataProvider.java
new file mode 100644
index 0000000..3515570
--- /dev/null
+++ b/plugins/org.eclipse.xwt.xml/src/org/eclipse/xwt/xml/IXmlDataProvider.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.xml;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IDataProvider;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public interface IXmlDataProvider extends IDataProvider {
+
+	void setSource(URL xmlSource);
+
+	URL getSource();
+
+	void setPath(String path);
+
+	String getPath();
+}
diff --git a/plugins/org.eclipse.xwt.xml/src/org/eclipse/xwt/xml/XmlDataProvider.java b/plugins/org.eclipse.xwt.xml/src/org/eclipse/xwt/xml/XmlDataProvider.java
new file mode 100644
index 0000000..3bddc36
--- /dev/null
+++ b/plugins/org.eclipse.xwt.xml/src/org/eclipse/xwt/xml/XmlDataProvider.java
@@ -0,0 +1,259 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.xml;
+
+import java.io.ByteArrayInputStream;
+import java.net.URL;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathConstants;
+import javax.xml.xpath.XPathExpression;
+import javax.xml.xpath.XPathExpressionException;
+import javax.xml.xpath.XPathFactory;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.xwt.dataproviders.AbstractDataProvider;
+import org.eclipse.xwt.internal.core.UpdateSourceTrigger;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class XmlDataProvider extends AbstractDataProvider implements
+		IXmlDataProvider {
+	static DataModelService dataModelService = new DataModelService() {
+		@Override
+		public Object toModelType(Object data) {
+			throw new UnsupportedOperationException();
+		}
+
+		@Override
+		public Object loadModelType(String className) {
+			throw new UnsupportedOperationException();
+		}
+
+		@Override
+		public Object toModelPropertyType(Object object, String propertyName) {
+			throw new UnsupportedOperationException();
+		}
+	};
+
+	static final String XDATA = "XData";
+
+	private URL source;
+
+	private String path;
+
+	private Document document;
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.dataproviders.IXmlDataProvider#getDocument()
+	 */
+	public Document getDocument() {
+		if (document == null) {
+			try {
+				DocumentBuilderFactory domFactory = DocumentBuilderFactory
+						.newInstance();
+				domFactory.setNamespaceAware(true); // never forget this!
+				DocumentBuilder builder = domFactory.newDocumentBuilder();
+				if (source != null) {
+					document = builder.parse(source.openStream());
+				}
+				String xdata = getXDataContent();
+				if (xdata != null) {
+					try {
+						document = builder.parse(new ByteArrayInputStream(xdata
+								.getBytes()));
+					} catch (Exception e) {
+					}
+				}
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+		return document;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.dataproviders.IXmlDataProvider#getSource()
+	 */
+	@Override
+	public URL getSource() {
+		return source;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.dataproviders.IXmlDataProvider#getXPath()
+	 */
+	@Override
+	public String getPath() {
+		return path;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.dataproviders.IXmlDataProvider#setSource(java.io.
+	 * InputStream)
+	 */
+	@Override
+	public void setSource(URL xmlSource) {
+		this.source = xmlSource;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.dataproviders.IXmlDataProvider#setXPath(java.lang.
+	 * String)
+	 */
+	@Override
+	public void setPath(String path) {
+		this.path = path;
+	}
+
+	private Object getRoot() {
+		Document doc = getDocument();
+		if (doc == null) {
+			return null;
+		}
+		if (path != null) {
+			return selectSingleNode(doc, path);
+		}
+		return doc;
+	}
+
+	/**
+	 * @param node
+	 * @param path
+	 * @return
+	 */
+	private Object selectSingleNode(Node node, String path) {
+		try {
+			XPathFactory factory = XPathFactory.newInstance();
+			XPath xpath = factory.newXPath();
+			XPathExpression expr = xpath.compile(path);
+			return expr.evaluate(node, XPathConstants.NODE);
+		} catch (XPathExpressionException e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.dataproviders.IDataProvider#getData()
+	 */
+	@Override
+	public Object getData(Object object, String path) {
+		if (object == null || path == null) {
+			return null;
+		}
+		if (object instanceof Node) {
+			Object selectObject = selectSingleNode((Node) object, path);
+			return selectObject;
+		}
+		return object;
+	}
+
+	@Override
+	public Object getData(String path) {
+		return getData(getRoot(), path);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.dataproviders.IDataProvider#getData()
+	 */
+	@Override
+	public void setData(Object object, String path, Object value) {
+		// TODO
+	}
+
+	@Override
+	public void setData(String path, Object value) {
+		// TODO
+	}
+
+	@Override
+	public Class<?> getDataType(String path) {
+		Object data = getData(path);
+		if (data == null) {
+			return null;
+		}
+		return data.getClass();
+	}
+
+	public IValueProperty observeValueProperty(Object valueType, String path,
+			UpdateSourceTrigger updateSourceTrigger) {
+		return null; // TODOD
+	}
+
+	@Override
+	protected IObservableValue observeValue(Object bean, String propertyName) {
+		Object data = getData(propertyName);
+		if (data != null && data instanceof Node) {
+			Class<?> valueType = data.getClass();
+			return new XmlObservableValue(valueType, (Node) data, path);
+		}
+		return null;
+	}
+
+	@Override
+	protected IObservableValue observeDetailValue(IObservableValue bean,
+			Object ownerType, String propertyName, Object propertyType) {
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.dataproviders.IXmlDataProvider#getXDataContent()
+	 */
+	protected String getXDataContent() {
+		Object xDataProperty = getProperty(XDATA);
+		if (xDataProperty != null) {
+			return xDataProperty.toString();
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.dataproviders.IXmlDataProvider#setXDataContent(java
+	 * .lang.String)
+	 */
+	protected void setXDataContent(Object content) {
+		setProperty(XDATA, content);
+	}
+
+	@Override
+	public DataModelService getModelService() {
+		return dataModelService;
+	}
+}
diff --git a/plugins/org.eclipse.xwt.xml/src/org/eclipse/xwt/xml/XmlObservableValue.java b/plugins/org.eclipse.xwt.xml/src/org/eclipse/xwt/xml/XmlObservableValue.java
new file mode 100644
index 0000000..00a7b78
--- /dev/null
+++ b/plugins/org.eclipse.xwt.xml/src/org/eclipse/xwt/xml/XmlObservableValue.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.xml;
+
+import org.eclipse.xwt.databinding.XWTObservableValue;
+import org.w3c.dom.Node;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class XmlObservableValue extends XWTObservableValue {
+
+	public XmlObservableValue(Class<?> valueType, Node node, String path) {
+		super(valueType, node, path);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.dataproviders.xml.XWTObservableValue#doSetApprovedValue
+	 * (java.lang.Object)
+	 */
+	protected void doSetApprovedValue(Object value) {
+		String newValue = value == null ? "" : value.toString();
+		((Node) getObserved()).setNodeValue(newValue);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.dataproviders.xml.XWTObservableValue#doGetValue()
+	 */
+	protected Object doGetValue() {
+		return ((Node) getObserved()).getNodeValue();
+	}
+}
diff --git a/org.eclipse.xwt.tools.ui/.classpath b/plugins/org.eclipse.xwt/.classpath
old mode 100755
new mode 100644
similarity index 100%
copy from org.eclipse.xwt.tools.ui/.classpath
copy to plugins/org.eclipse.xwt/.classpath
diff --git a/org.eclipse.xwt/.gitignore b/plugins/org.eclipse.xwt/.gitignore
similarity index 100%
rename from org.eclipse.xwt/.gitignore
rename to plugins/org.eclipse.xwt/.gitignore
diff --git a/plugins/org.eclipse.xwt/.project b/plugins/org.eclipse.xwt/.project
new file mode 100755
index 0000000..1e38b85
--- /dev/null
+++ b/plugins/org.eclipse.xwt/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.xwt</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.xwt/META-INF/MANIFEST.MF b/plugins/org.eclipse.xwt/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..6513bb2
--- /dev/null
+++ b/plugins/org.eclipse.xwt/META-INF/MANIFEST.MF
@@ -0,0 +1,44 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name.0
+Bundle-SymbolicName: org.eclipse.xwt;singleton:=true
+Bundle-Version: 1.4.0.qualifier
+DynamicImport-Package: *
+Require-Bundle: 
+ org.eclipse.jface.databinding;bundle-version="1.2.0",
+ org.eclipse.core.databinding.beans;bundle-version="1.1.0",
+ org.eclipse.swt;bundle-version="3.4.0",
+ org.eclipse.core.databinding;bundle-version="1.1.0",
+ org.eclipse.jface;bundle-version="3.4.0",
+ org.eclipse.core.databinding.property;bundle-version="1.1.0",
+ org.pushingpixels.trident;bundle-version="1.2.0";resolution:=optional,
+ org.eclipse.equinox.common;bundle-version="3.4.0",
+ com.ibm.icu;bundle-version="63.1.0",
+ org.eclipse.osgi
+Export-Package: org.eclipse.xwt,
+ org.eclipse.xwt.animation,
+ org.eclipse.xwt.annotation,
+ org.eclipse.xwt.callback,
+ org.eclipse.xwt.collection,
+ org.eclipse.xwt.converters,
+ org.eclipse.xwt.core,
+ org.eclipse.xwt.databinding,
+ org.eclipse.xwt.dataproviders,
+ org.eclipse.xwt.graphics,
+ org.eclipse.xwt.input,
+ org.eclipse.xwt.internal.core,
+ org.eclipse.xwt.internal.databinding.menuitem,
+ org.eclipse.xwt.internal.utils,
+ org.eclipse.xwt.internal.xml,
+ org.eclipse.xwt.javabean,
+ org.eclipse.xwt.javabean.metadata,
+ org.eclipse.xwt.javabean.metadata.properties,
+ org.eclipse.xwt.jface,
+ org.eclipse.xwt.metadata,
+ org.eclipse.xwt.utils,
+ org.eclipse.xwt.validation
+Bundle-Vendor: %Bundle-Vendor.0
+Bundle-Localization: plugin
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-Activator: org.eclipse.xwt.internal.Activator
diff --git a/plugins/org.eclipse.xwt/about.html b/plugins/org.eclipse.xwt/about.html
new file mode 100644
index 0000000..46a80b6
--- /dev/null
+++ b/plugins/org.eclipse.xwt/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 5, 2006</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt/build.properties b/plugins/org.eclipse.xwt/build.properties
new file mode 100644
index 0000000..ff71855
--- /dev/null
+++ b/plugins/org.eclipse.xwt/build.properties
@@ -0,0 +1,29 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+source.. = src/
+bin.includes = META-INF/,\
+               .,\
+               plugin.properties,\
+               plugin.xml,\
+               about.html,\
+               notice.html
+src.includes = .classpath,\
+               .gitignore,\
+               .project,\
+               META-INF/,\
+               about.html,\
+               build.properties,\
+               plugin.properties,\
+               plugin.xml,\
+               src/,\
+               notice.html
diff --git a/plugins/org.eclipse.xwt/notice.html b/plugins/org.eclipse.xwt/notice.html
new file mode 100644
index 0000000..2949b01
--- /dev/null
+++ b/plugins/org.eclipse.xwt/notice.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 9, 2014</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 2.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/plugins/org.eclipse.xwt/plugin.properties b/plugins/org.eclipse.xwt/plugin.properties
new file mode 100644
index 0000000..5c13c6c
--- /dev/null
+++ b/plugins/org.eclipse.xwt/plugin.properties
@@ -0,0 +1,26 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+#******************************************************************************
+# Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+# 
+# Contributors:
+#     Soyatec - initial API and implementation
+#******************************************************************************/
+Bundle-Vendor.0 = Eclipse XWT
+Bundle-Name.0 = XWT
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt/plugin.xml b/plugins/org.eclipse.xwt/plugin.xml
new file mode 100644
index 0000000..0547531
--- /dev/null
+++ b/plugins/org.eclipse.xwt/plugin.xml
Binary files differ
diff --git a/plugins/org.eclipse.xwt/pom.xml b/plugins/org.eclipse.xwt/pom.xml
new file mode 100755
index 0000000..fd28067
--- /dev/null
+++ b/plugins/org.eclipse.xwt/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-plugins</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt</artifactId>
+	<version>1.4.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+</project>
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/DefaultLoadingContext.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/DefaultLoadingContext.java
new file mode 100644
index 0000000..4bad1eb
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/DefaultLoadingContext.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+import java.net.URL;
+
+public class DefaultLoadingContext implements ILoadingContext {
+	public static final DefaultLoadingContext defaultLoadingContext = new DefaultLoadingContext();
+
+	protected ClassLoader classLoader;
+
+	public DefaultLoadingContext() {
+	}
+
+	public DefaultLoadingContext(ClassLoader classLoader) {
+		this.classLoader = classLoader;
+	}
+
+	public ClassLoader getClassLoader() {
+		if (classLoader == null) {
+			return Thread.currentThread().getContextClassLoader();
+		}
+		return classLoader;
+	}
+
+	public void setClassLoader(ClassLoader classLoader) {
+		this.classLoader = classLoader;
+	}
+
+	public String getNamespace() {
+		return IConstants.XWT_NAMESPACE;
+	}
+	
+	public Class<?> loadClass(String name) {
+		Class<?> type = doLoadClass(name);
+		if (type != null) {
+			return type;
+		}
+		int index = name.lastIndexOf('.');
+		while(index != -1) {
+			name = name.substring(0, index) + "$" + name.substring(index + 1);
+			type = doLoadClass(name);
+			if (type != null) {
+				return type;
+			}
+			index = name.lastIndexOf('.');
+		}
+		return null;
+	}
+
+	protected Class<?> doLoadClass(String name) {
+		try {
+			return getClassLoader().loadClass(name);
+		} catch (ClassNotFoundException e) {
+		}
+		return null;
+	}
+
+	public URL getResource(String name) {
+		return getClassLoader().getResource(name);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/ICLRFactory.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/ICLRFactory.java
new file mode 100644
index 0000000..911c0ff
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/ICLRFactory.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *     Angelo Zerr <angelo.zerr@gmail.com> - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+import java.util.Map;
+
+public interface ICLRFactory {
+	/**
+	 * This method is used to create a CLR instance to handle events.
+	 * 
+	 * @param args
+	 *            null if the default CLRFactory comes from XWT.getCLRFactory()
+	 *            or CLASS_FACTORY. Otherwise, it is the value x:ClassFactory
+	 * @options contains structures used by XWT (ex : URL, DataContext). Keys of
+	 *          this Map come from {@link IXWTLoader}.
+	 * @return
+	 */
+	Object createCLR(String args, Map<String, Object> options);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IConstants.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IConstants.java
new file mode 100644
index 0000000..a0a273d
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IConstants.java
@@ -0,0 +1,103 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+import java.net.URL;
+import java.util.Enumeration;
+import java.util.ListResourceBundle;
+import java.util.ResourceBundle;
+
+import org.eclipse.xwt.internal.xml.DocumentObject;
+
+/**
+ * Shared constants
+ * 
+ * @author yyang
+ */
+public interface IConstants {
+	public final String XAML_X_KEY = "Key";
+	public final String XAML_X_TYPE = "Type";
+	public final String XAML_X_TARGET_TYPE = "TargetType";
+	public final String XAML_X_TYPE_NAME = "TypeName";
+	public final String XAML_CLR_ASSEMBLY = "assembly=";
+
+	public final String XAML_X_STATIC = "Static";
+	public final String XAML_X_STATIC_MEMBER = "Member";
+	public final String XAML_X_ARRAY = "Array";
+	public final String XAML_X_CLASS = "Class";
+	public final String XAML_X_CLASS_FACTORY = "ClassFactory";
+	public final String XAML_X_NAME = "Name";
+	public final String XAML_X_NULL = "Null";
+	public final String XAML_X_SHARED = "Shared";
+	public final String XAML_DATA_CONTEXT = "DataContext";
+	public final String XAML_BINDING_CONTEXT = "BindingContext";
+	public final String XAML_RENDER_TRANSFORM = "RenderTransform";
+	public final String XAML_RENDER_TRANSFORM_ORIGIN = "RenderTransformOrigin";
+	public final String XAML_TRIGGERS = "Triggers";
+	public final String XAML_STYLE = "Style";
+	public final String XAML_COMMAND = "Command";
+	public final String XAML_CLR_NAMESPACE_PROTO = "clr-namespace:";
+	public final String XAML_RESOURCES = "Resources";
+
+	public final String XAML_STATICRESOURCES = "StaticResource";
+	public final String XAML_DYNAMICRESOURCES = "DynamicResource";
+	public final String XAML_BINDING = "Binding";
+
+	public final String XML_NS = "xmlns";
+
+	public static final String XWT_NAMESPACE = "http://www.eclipse.org/xwt/presentation";
+	public static final String XWT_X_NAMESPACE = "http://www.eclipse.org/xwt";
+
+	public static final String XWT_EXTENSION = "xwt";
+	public static final String XWT_EXTENSION_SUFFIX = "." + XWT_EXTENSION;
+
+	public static final Enumeration<URL> EMPTY_ENUMERATION = new Enumeration<URL>() {
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see java.util.Enumeration#hasMoreElements()
+		 */
+		public boolean hasMoreElements() {
+			return false;
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see java.util.Enumeration#nextElement()
+		 */
+		public URL nextElement() {
+			return null;
+		}
+	};
+
+	public static final ResourceBundle EMPTY_RESOURCE_BUNDLE = new ListResourceBundle() {
+
+		private Object[][] EMPTY = new Object[0][0];
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see java.util.ListResourceBundle#getContents()
+		 */
+		@Override
+		protected Object[][] getContents() {
+			return EMPTY;
+		}
+	};
+
+	public static final String[] EMPTY_STRING_ARRAY = new String[0];
+
+	public static final DocumentObject[] EMPTY_DOCOBJ_ARRAY = new DocumentObject[0];
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IDataBinding.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IDataBinding.java
new file mode 100644
index 0000000..655025a
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IDataBinding.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public interface IDataBinding extends IDataBindingInfo {
+	/**
+	 * The argument is used to determine the filtering. If type is null, no filtering
+	 * 
+	 * @return
+	 */
+	public Object getValue(Class<?> targetType);
+
+	public Object getControl();
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IDataBindingInfo.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IDataBindingInfo.java
new file mode 100644
index 0000000..705c7c4
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IDataBindingInfo.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+import org.eclipse.xwt.databinding.BindingMode;
+
+public interface IDataBindingInfo {
+	public IDataProvider getDataProvider();
+
+	BindingMode getMode();
+
+	IValueConverter getConverter();
+
+	IValidationRule[] getValidators();
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IDataProvider.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IDataProvider.java
new file mode 100644
index 0000000..10cbdcc
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IDataProvider.java
@@ -0,0 +1,101 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+import org.eclipse.core.databinding.observable.IObservable;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+
+/**
+ * A Data Binding provider defines the nature of Data Binding such as Bean Object Binding, EMF Object Binding, XML data Binding or Data Base binding
+ *
+ * @author yyang
+ */
+public interface IDataProvider {
+
+	/**
+	 * Return the data of the provider, this value can be not used for databindings.
+	 *
+	 * @param path
+	 * @return
+	 */
+	Object getData(String path);
+
+	/**
+	 * Return the data of the provider, this value can be not used for databindings.
+	 *
+	 * @param path
+	 * @return
+	 */
+	Object getData(Object target, String path);
+
+	/**
+	 * Return the data of the provider, this value can be not used for databindings.
+	 *
+	 * @param path
+	 * @return
+	 */
+	void setData(String path, Object value);
+
+	/**
+	 * Return the data of the provider, this value can be not used for databindings.
+	 *
+	 * @param path
+	 * @return
+	 */
+	void setData(Object target, String path, Object value);
+
+	/**
+	 * Return the data type of the provider.lue
+	 *
+	 * @param path
+	 * @return
+	 */
+	Object getDataType(String path);
+
+	/**
+	 * check if the property is read only.
+	 *
+	 * @param path
+	 * @return
+	 */
+	boolean isPropertyReadOnly(String path);
+
+	Object getProperty(String property);
+
+	void setProperty(String property, Object object);
+
+	boolean hasProperty(String property);
+
+	void removeProperty(String property);
+
+	IObservable observe(Object data, String path, Object targetType, int observeKind);
+
+	IValueProperty createValueProperty(Object type, String fullPath);
+
+	interface DataModelService {
+		/**
+		 * get the type of this object
+		 *
+		 * @param object
+		 * @return
+		 */
+		Object toModelType(Object object);
+
+		Object loadModelType(String typeName);
+
+		Object toModelPropertyType(Object object, String propertyName);
+	}
+
+	DataModelService getModelService();
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IDataProviderFactory.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IDataProviderFactory.java
new file mode 100644
index 0000000..fe3289a
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IDataProviderFactory.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public interface IDataProviderFactory {
+	/**
+	 * The type of the Data provider
+	 * 
+	 * @return
+	 */
+	Class<?> getType();
+
+	/**
+	 * 
+	 * @param dataContext
+	 * @return null if this factory doesn't match with the data context
+	 */
+	IDataProvider create(Object dataContext);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IEventConstants.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IEventConstants.java
new file mode 100644
index 0000000..306155b
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IEventConstants.java
@@ -0,0 +1,174 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+public final class IEventConstants {
+	public static final String DATA_PREFIX = "_event.";
+	public static final String SUFFIX = "Event";
+	public static final String SUFFIX_KEY = "event";
+	public static final String PREFIX = "is";
+
+	public static final String KEY_DOWN = "KeyDown";
+	public static final String KEY_UP = "KeyUp";
+	public static final String[] KEY_GROUP = new String[] { KEY_DOWN, KEY_UP };
+
+	public static final String XWT_KEY_DOWN = "KeyDown" + SUFFIX;
+	public static final String XWT_KEY_UP = "KeyUp" + SUFFIX;
+
+	public static final String MOUSE_DOWN = "MouseDown";
+	public static final String MOUSE_UP = "MouseUp";
+	public static final String[] MOUSE_GROUP = new String[] { MOUSE_DOWN, MOUSE_UP };
+
+	public static final String XWT_MOUSE_DOWN = "MouseDown" + SUFFIX;
+	public static final String XWT_MOUSE_UP = "MouseUp" + SUFFIX;
+
+	public static final String MOUSE_MOVE = "MouseMove";
+	public static final String MOUSE_ENTER = "MouseEnter";
+	public static final String MOUSE_EXIT = "MouseExit";
+	public static final String MOUSE_HOVER = "MouseHover";
+	public static final String[] MOUSE_MOVING_GROUP = new String[] { MOUSE_ENTER, MOUSE_EXIT };
+
+	public static final String XWT_MOUSE_MOVE = "MouseMove" + SUFFIX;
+	public static final String XWT_MOUSE_ENTER = "MouseEnter" + SUFFIX;
+	public static final String XWT_MOUSE_EXIT = "MouseExit" + SUFFIX;
+	public static final String XWT_MOUSE_HOVER = "MouseHover" + SUFFIX;
+
+	public static final String MOUSE_DOUBLE_CLICK = "MouseDoubleClick";
+
+	public static final String XWT_MOUSE_DOUBLE_CLICK = MOUSE_DOUBLE_CLICK + SUFFIX;
+
+	public static final String PAINT = "Paint";
+	public static final String MOVE = "Move";
+	public static final String RESIZE = "Resize";
+	public static final String DISPOSE = "Dispose";
+
+	public static final String XWT_PAINT = "Paint" + SUFFIX;
+	public static final String XWT_MOVE = "Move" + SUFFIX;
+	public static final String XWT_RESIZE = "Resize" + SUFFIX;
+	public static final String XWT_DISPOSE = "Dispose" + SUFFIX;
+
+	public static final String SELECTION = "Selection";
+	public static final String DEFAULT_SELECTION = "DefaultSelection";
+
+	public static final String XWT_SELECTION = "Selection" + SUFFIX;
+	public static final String XWT_DEFAULT_SELECTION = "DefaultSelection" + SUFFIX;
+
+	public static final String FOCUS_IN = "FocusIn";
+	public static final String FOCUS_OUT = "FocusOut";
+	public static final String[] FOCUS_GROUP = new String[] { FOCUS_IN, FOCUS_OUT };
+
+	public static final String XWT_FOCUS_IN = "FocusIn" + SUFFIX;
+	public static final String XWT_FOCUS_OUT = "FocusOut" + SUFFIX;
+
+	public static final String EXPAND = "Expand";
+	public static final String COLLAPSE = "Collapse";
+	public static final String[] EXPAND_GROUP = new String[] { EXPAND, COLLAPSE };
+
+	public static final String XWT_EXPAND = "Expand" + SUFFIX;
+	public static final String XWT_COLLAPSE = "Collapse" + SUFFIX;
+
+	public static final String ICONIFY = "Iconify";
+	public static final String DEICONIFY = "Deiconify";
+	public static final String CLOSE = "Close";
+	public static final String SHOW = "Show";
+	public static final String HIDE = "Hide";
+	public static final String[] WINDOW_GROUP = new String[] { ICONIFY, DEICONIFY, CLOSE, SHOW, HIDE };
+
+	public static final String XWT_ICONIFY = "Iconify" + SUFFIX;
+	public static final String XWT_DEICONIFY = "Deiconify" + SUFFIX;
+	public static final String XWT_CLOSE = "Close" + SUFFIX;
+	public static final String XWT_SHOW = "Show" + SUFFIX;
+	public static final String XWT_HIDE = "Hide" + SUFFIX;
+
+	public static final String MODIFY = "Modify";
+	public static final String VERIFY = "Verify";
+
+	public static final String XWT_MODIFY = "Modify" + SUFFIX;
+	public static final String XWT_VERIFY = "Verify" + SUFFIX;
+
+	public static final String ACTIVATE = "Activate";
+	public static final String DEACTIVATE = "Deactivate";
+	public static final String[] ACTIVATION_GROUP = new String[] { ACTIVATE, DEACTIVATE };
+
+	public static final String XWT_ACTIVATE = "Activate" + SUFFIX;
+	public static final String XWT_DEACTIVATE = "Deactivate" + SUFFIX;
+
+	public static final String HELP = "Help";
+
+	public static final String XWT_HELP = "Help" + SUFFIX;
+
+	public static final String DRAG_SELECT = "DragDetect";
+
+	public static final String XWT_DRAG_SELECT = "DragDetect" + SUFFIX;
+
+	public static final String ARM = "Arm";
+
+	public static final String XWT_ARM = "Arm" + SUFFIX;
+
+	public static final String TRAVERSE = "Traverse";
+
+	public static final String XWT_TRAVERSE = "Traverse" + SUFFIX;
+
+	public static final String HARD_KEY_DOWN = "HardKeyDown";
+	public static final String HARD_KEY_UP = "HardKeyUp";
+	public static final String[] HARD_KEY = new String[] { HARD_KEY_DOWN, HARD_KEY_UP };
+
+	public static final String XWT_HARD_KEY_DOWN = "HardKeyDown" + SUFFIX;
+	public static final String XWT_HARD_KEY_UP = "HardKeyUp" + SUFFIX;
+
+	public static final String MENU_DETECT = "MenuDetect";
+
+	public static final String XWT_MENU_DETECT = "MenuDetect" + SUFFIX;
+
+	public static final String MOUSE_WHEEL = "MouseWheel";
+
+	public static final String XWT_MOUSE_WHEEL = "MouseWheel" + SUFFIX;
+
+	public static final String SETTINGS = "Settings";
+
+	public static final String XWT_SETTINGS = "Settings" + SUFFIX;
+
+	public static final String ERASE_ITEM = "EraseItem";
+	public static final String MEASURE_ITEM = "MeasureItem";
+
+	public static final String XWT_ERASE_ITEM = "EraseItem" + SUFFIX;
+	public static final String XWT_MEASURE_ITEM = "MeasureItem" + SUFFIX;
+
+	public static final String PAINT_ITEM = "PaintItem";
+	public static final String SET_DATA = "SetData";
+	public static final String IME_COMPOSITION = "ImeComposition";
+
+	public static final String XWT_PAINT_ITEM = "PaintItem" + SUFFIX;
+	public static final String XWT_SET_DATA = "SetData" + SUFFIX;
+	public static final String XWT_IME_COMPOSITION = "ImeComposition" + SUFFIX;
+
+	public static final int XWT_SWT_LOADED = 1025; // SWT custom event
+	public static final String XWT_LOADED = "Loaded"; // deprecated
+	public static final String XWT_LOADED_EVENT = XWT_LOADED + SUFFIX;
+
+	static public String getEventName(String swtEventName) {
+		return normalize(swtEventName + SUFFIX);
+	}
+
+	static public String normalize(String name) {
+		return name.toLowerCase();
+	}
+
+	static public String getEventPropertyName(String name) {
+		return PREFIX + name + SUFFIX;
+	}
+
+	static public String getEventPropertyDataName(String name) {
+		return DATA_PREFIX + PREFIX + name + SUFFIX;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IEventGroup.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IEventGroup.java
new file mode 100644
index 0000000..b5ebbf0
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IEventGroup.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+import org.eclipse.xwt.metadata.IProperty;
+
+/**
+ * This class manages the coordination between events' state
+ * 
+ * @author yyang
+ */
+public interface IEventGroup {
+	String[] getEventNames();
+
+	/**
+	 * Fire the event to update other when an event occurs
+	 * 
+	 * @param object
+	 * @param property
+	 */
+	void fireEvent(IObservableValueListener manager, IProperty property);
+
+	/**
+	 * Register the event
+	 * 
+	 * @param manager
+	 * @param property
+	 */
+	void registerEvent(IObservableValueListener manager, IProperty property);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IEventHandler.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IEventHandler.java
new file mode 100644
index 0000000..7ce8694
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IEventHandler.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+/**
+ * This class provides an open solution to manage the events. By default,
+ * XWT uses Java reflection to find the method to handle an event. If the class
+ * specified by <code>x:Class</code> implements this interface, this class can provide
+ * the IEventInvoker for each event.
+ * 
+ * @author yyang
+ */
+public interface IEventHandler {
+	IEventInvoker getEventInvoker(String name, Class<?> elementType,
+			Class<?> eventType);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IEventInvoker.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IEventInvoker.java
new file mode 100644
index 0000000..c48c2ad
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IEventInvoker.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+import org.eclipse.swt.widgets.Event;
+
+public interface IEventInvoker {
+	void invoke(Object sender, Event event);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IIndexedElement.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IIndexedElement.java
new file mode 100644
index 0000000..3bd7c20
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IIndexedElement.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+public interface IIndexedElement {
+	void setIndex(Object parent, int index);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/ILoadingContext.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/ILoadingContext.java
new file mode 100644
index 0000000..70bca03
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/ILoadingContext.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+import java.net.URL;
+
+public interface ILoadingContext {
+	URL getResource(String name);
+
+	String getNamespace();
+	
+	Class<?> loadClass(String name);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/ILogger.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/ILogger.java
new file mode 100644
index 0000000..edf6550
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/ILogger.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+import java.util.Set;
+
+/**
+ * Looger interface
+ * 
+ * @author yyang
+ */
+public interface ILogger {
+	void error(Throwable e);
+
+	void error(Throwable e, String message);
+
+	void warning(String message);
+
+	void message(String message);
+
+	// print messages into console view
+	void printInfo(String message, Tracking tracking, Set<Tracking> trackType);
+
+	// add messages
+	void addMessage(String message, Tracking tracking);
+
+	void removeMessage(Tracking tracking);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IMetaclassFactory.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IMetaclassFactory.java
new file mode 100644
index 0000000..682c4c7
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IMetaclassFactory.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+import org.eclipse.xwt.metadata.IMetaclass;
+
+/**
+ * Metaclass factory provides a customizable Metaclass creation mechanism.
+ * 
+ * @author yyang
+ * 
+ */
+public interface IMetaclassFactory {
+	boolean isFactoryOf(Class<?> type);
+
+	IMetaclass create(Class<?> type, IMetaclass superMetaclass, IXWTLoader xwtLoader);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IMultiValueConverter.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IMultiValueConverter.java
new file mode 100644
index 0000000..fa7264b
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IMultiValueConverter.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+/**
+ * Data converter used in MultiBinding
+ * 
+ * @author yyang
+ *
+ */
+public interface IMultiValueConverter extends IValueConverter {
+	Object[] convertBack(Object value);
+
+	Object convert(Object[] value);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/INamespaceHandler.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/INamespaceHandler.java
new file mode 100644
index 0000000..c943901
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/INamespaceHandler.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+import org.eclipse.swt.widgets.Widget;
+
+/**
+ * This class defines the public behavior to handle the foreigner namespace
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public interface INamespaceHandler {
+	void handleAttribute(Widget widget, Object target, String name, String value);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IObservableValueListener.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IObservableValueListener.java
new file mode 100644
index 0000000..760536f
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IObservableValueListener.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.metadata.IProperty;
+
+public interface IObservableValueListener {
+	void registerValue(IProperty property, IObservableValue observableValue);
+
+	IObservableValue getValue(IProperty property);
+
+	void changeValueHandle(Object object, Event event);
+
+	Object getHost();
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IStyle.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IStyle.java
new file mode 100644
index 0000000..3fa4088
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IStyle.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public interface IStyle {
+
+	/**
+	 * The element to apply the style. The argument is an instance created through XML. It can be a Widget, or others such as TableViewer.
+	 * 
+	 * @param target
+	 */
+	void applyStyle(Object target);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IUIExtensionProvider.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IUIExtensionProvider.java
new file mode 100644
index 0000000..97829bd
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IUIExtensionProvider.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+/**
+ * In some UI elements, property data may not be provided in the element it-self.  
+ * 
+ * @author yyang
+ */
+public interface IUIExtensionProvider {
+	Object getExtensionValue(Object item, String propertyName);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IUIResource.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IUIResource.java
new file mode 100644
index 0000000..a2910c6
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IUIResource.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+public interface IUIResource {
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IValidationRule.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IValidationRule.java
new file mode 100644
index 0000000..f67b4d5
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IValidationRule.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+import org.eclipse.core.databinding.validation.IValidator;
+import org.eclipse.core.runtime.IStatus;
+
+/**
+ * @author hceylan
+ *
+ */
+public interface IValidationRule extends IValidator {
+	public static IValidationRule[] EMPTY_ARRAY = new IValidationRule[0];
+
+	public enum Phase {
+		AfterGet, //
+		AfterConvert, //
+		BeforeSet
+	}
+
+	public enum Direction {
+		SourceToTarget, //
+		TargetToSource, //
+		Both
+	}
+
+	/**
+	 * Returns the direction of the validation
+	 *
+	 * @return {@link Direction} indicating the direction of the validation.
+	 *         Never null
+	 */
+	public Direction getBindingMode();
+
+	/**
+	 * Returns the phase this validator applies to
+	 *
+	 * @return {@link Phase} to indicate the phase of the validation. Never null
+	 */
+	public Phase getPhase();
+
+	/**
+	 * Determines if the given value is valid.
+	 *
+	 * @param value
+	 *            the value to validate
+	 * @return a status object indicating whether the validation succeeded
+	 *         {@link IStatus#isOK()} or not. Never null.
+	 */
+	public IStatus validateBack(Object value);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IValueConverter.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IValueConverter.java
new file mode 100644
index 0000000..d1e7b82
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IValueConverter.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+
+/**
+ * For a data binding, the conversion could be bidirectional. The standard IConverter is not enough. This class is designed to meet this requirement.
+ * 
+ * @author yyang
+ * 
+ */
+public interface IValueConverter extends IConverter {
+	Object convertBack(Object value);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IXWTInitializer.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IXWTInitializer.java
new file mode 100644
index 0000000..f6057d4
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IXWTInitializer.java
@@ -0,0 +1,7 @@
+package org.eclipse.xwt;
+
+public interface IXWTInitializer {
+	void initialize(IXWTLoader loader);
+	
+	boolean isInitialized();
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IXWTLoader.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IXWTLoader.java
new file mode 100644
index 0000000..9437cd0
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/IXWTLoader.java
@@ -0,0 +1,870 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2017 Soyatec (http://www.soyatec.com), CEA, and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse License v1.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *     Christian W. Damus (CEA) - bug 435432
+ *     EclipseSource - bug 521931
+ *     
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+import java.io.InputStream;
+import java.net.URL;
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.core.databinding.observable.IChangeListener;
+import org.eclipse.core.databinding.observable.IObservable;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
+import org.eclipse.core.databinding.observable.set.IObservableSet;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.xwt.callback.IBeforeParsingCallback;
+import org.eclipse.xwt.callback.ICreatedCallback;
+import org.eclipse.xwt.callback.ILoadedCallback;
+import org.eclipse.xwt.core.TriggerBase;
+import org.eclipse.xwt.databinding.BindingContext;
+import org.eclipse.xwt.databinding.IBindingContext;
+import org.eclipse.xwt.input.ICommand;
+import org.eclipse.xwt.internal.core.UpdateSourceTrigger;
+import org.eclipse.xwt.internal.xml.IElementCache;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+
+/**
+ * XWT loader interface
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public interface IXWTLoader {
+	// Properties
+	
+	/**
+	 * The URL which open XWT file
+	 * 
+	 */
+	String URL_PROPERTY = "XWT.URL";
+
+	/**
+	 * style of type int is used to create SWT element
+	 */
+	String CONTAINER_PROPERTY = "XWT.Container";
+	String INIT_STYLE_PROPERTY = "XWT.Style";
+
+	/**
+	 * Used for editor/designer to pass design mode
+	 */
+	String DESIGN_MODE_PROPERTY = "XWT.DesignMode";
+
+	/**
+	 * Default styles to apply. The value should be a collection or Array of
+	 * IStyle
+	 * 
+	 */
+	String DEFAULT_STYLES_PROPERTY = "XWT.DefaultStyles";
+	/**
+	 * Enabled or disabled the styles. By default, it is enabled
+	 * 
+	 */
+	String DISABLE_STYLES_PROPERTY = "XWT.DisabledStyles";
+	/**
+	 * The DataContext to setup in root element
+	 * 
+	 */
+	String DATACONTEXT_PROPERTY = "XWT.DataContext";
+
+	/**
+	 * The BindingContext to setup in root element
+	 * 
+	 */
+	String BINDING_CONTEXT_PROPERTY = "XWT.BindingContext";
+
+	/**
+	 * The CLR class
+	 * 
+	 */
+	String CLASS_PROPERTY = "XWT.Class";
+
+	/**
+	 * The CLR class factory
+	 * 
+	 */
+	String CLASS_FACTORY_PROPERTY = "XWT.ClassFactory";
+
+	/**
+	 * Resources to associate to root element
+	 * 
+	 */
+	String RESOURCE_DICTIONARY_PROPERTY = "XWT.Resources";
+
+	/**
+	 * Resources to associate to root element
+	 * 
+	 */
+	String LOADED_CALLBACK = ILoadedCallback.class.getName();
+
+	/**
+	 * Action to invoke after the creation of each UI element before the properties setting
+	 * 
+	 */
+	String CREATED_CALLBACK = ICreatedCallback.class.getName();
+
+	/**
+	 * Action to invoke before parsing the XML file
+	 * 
+	 */
+	String BEFORE_PARSING_CALLBACK = IBeforeParsingCallback.class.getName();
+	
+	/**
+	 * Parsed XML element caching option. In the public API, this may be only either a {@link Boolean} indicating whether to cache the XML content
+	 * parsed from XWT resources (the cache having some unspecified default size) or a positive {@link Integer} indicating the size of XML cache.
+	 * This load option is a bit odd in that, if specified, it is replaced by the actual cache, which then should be supplied as the option value
+	 * for subsequent calls. Thus, the following idiom is recommended:
+	 * 
+	 * <pre>
+	 *   private Object xmlCache; // the XML cache
+	 *   
+	 *   // other fields ...
+	 *   
+	 *   void whatever() {
+	 *       Map&lt;String, Object&gt; options = new HashMap&lt;String, Object&gt;();
+	 *       options.put(IXWTLoader.XML_CACHE_PROPERTY, (xmlCache != null) ? xmlCache : Boolean.TRUE);
+	 *       // ... set other options as needed ...
+	 *   
+	 *       URL url = getResourceURL(); // however this is obtained
+	 *       
+	 *       Object ui = XWT.loadWithOptions(url, options);
+	 *       
+	 *       // Get the cache to reuse next time
+	 *       xmlCache = options.get(IXWTLoader.XML_CACHE_PROPERTY);
+	 *       
+	 *       doSomethingWithTheUI(ui);
+	 *   }
+	 * </pre>
+	 */
+	String XML_CACHE_PROPERTY = IElementCache.class.getName();
+	
+	/**
+	 * Option to cache access to 'User control' resources
+	 * Possible values:
+	 * <ul>
+	 * 	<li>Unspecified (Default): Use a default, static (singleton) cache</li>
+	 * 	<li>{@link Boolean#TRUE}: Create a new cache instance for this session</li>
+	 * 	<li>{@link Boolean#FALSE}: Do not use a cache</li>
+	 * 	<li>An {@link IResourceCache}: Use the specified cache instance</li>
+	 * 	<li>All other values will be treated like {@link Boolean#FALSE Boolean.FALSE}, i.e. no cache will be used</li>
+	 * </ul>
+	 * When specifying {@link Boolean#TRUE Boolean.TRUE}, the map entry will be replaced
+	 * by a new cache instance, so you can retrieve (and reuse) that cache later. For example:
+	 * <pre>
+	 *   private Object resourceCache; // the Resource cache
+	 *   
+	 *   // other fields ...
+	 *   
+	 *   void whatever() {
+	 *       Map&lt;String, Object&gt; options = new HashMap&lt;String, Object&gt;();
+	 *       options.put(IXWTLoader.USER_CONTROL_CACHE_PROPERTY, (resourceCache != null) ? resourceCache : Boolean.TRUE);
+	 *       // ... set other options as needed ...
+	 *   
+	 *       URL url = getResourceURL(); // however this is obtained
+	 *       
+	 *       Object ui = XWT.loadWithOptions(url, options);
+	 *       
+	 *       // Get the cache to reuse next time
+	 *       resourceCache = options.get(IXWTLoader.USER_CONTROL_CACHE_PROPERTY);
+	 *       
+	 *       doSomethingWithTheUI(ui);
+	 *   }
+	 * </pre>
+	 * Note: the default/shared cache will never be returned in the options. If the 
+	 * {@link #USER_CONTROL_CACHE_PROPERTY} option is initially unspecified, it will 
+	 * not be replaced when the XWT resource is loaded.
+	 */
+	String USER_CONTROL_CACHE_PROPERTY = "UserControlCache";
+	
+	/**
+	 * Boolean option to enable or disable the user controls. By default, they are enabled
+	 */
+	String DISABLE_USER_CONTROLS = "XWT.DISABLE_USER_CONTROLS";
+
+	String[] ALL_PROPERTIES = { URL_PROPERTY, 
+			CONTAINER_PROPERTY,
+			INIT_STYLE_PROPERTY,
+			DATACONTEXT_PROPERTY,
+			BINDING_CONTEXT_PROPERTY,
+			RESOURCE_DICTIONARY_PROPERTY,
+			CLASS_PROPERTY,
+			CLASS_FACTORY_PROPERTY,
+			LOADED_CALLBACK,
+			CREATED_CALLBACK,
+			BEFORE_PARSING_CALLBACK,
+			DESIGN_MODE_PROPERTY,
+			XML_CACHE_PROPERTY,
+			USER_CONTROL_CACHE_PROPERTY,
+			DISABLE_USER_CONTROLS};
+	
+	/**
+	 * Register an Observable IChangeListener for a given UI element. The second
+	 * registration of the same listener on the same UI Element has no effect.
+	 * 
+	 * @param control
+	 * @param listener
+	 * @return
+	 */
+	boolean addObservableChangeListener(Object control, IChangeListener listener);
+
+	/**
+	 * Undo the registration of the Observable IChangeListener for a given UI
+	 * element.
+	 * 
+	 * @param context
+	 * @param listener
+	 */
+	void removeObservableChangeListener(Object context, IChangeListener listener);
+
+	/**
+	 * Find the used IObservable value for given data.
+	 * 
+	 * @param nsmapace
+	 * @return
+	 */
+	IObservable observe(Object context, Object data, String propertyName,
+			UpdateSourceTrigger updateSourceTrigger);
+
+	/**
+	 * Find the used IObservableFactory value for given data.
+	 * 
+	 * @param nsmapace
+	 * @return
+	 */
+	IObservableFactory observableFactory(Object context, String propertyName,
+			UpdateSourceTrigger updateSourceTrigger);
+
+	/**
+	 * Find the used IObservableValue value for given data.
+	 * 
+	 * @param nsmapace
+	 * @return
+	 */
+	IObservableValue observableValue(Object context, Object data,
+			String propertyName, UpdateSourceTrigger updateSourceTrigger);
+
+	/**
+	 * Find the used IObservableList value for given data.
+	 * 
+	 * @param nsmapace
+	 * @return
+	 */
+	IObservableList findObservableList(Object context, Object data,
+			String propertyName);
+
+	/**
+	 * Find the used IObservableList value for given data.
+	 * 
+	 * @param nsmapace
+	 * @return
+	 */
+	IObservableSet findObservableSet(Object context, Object data,
+			String propertyName);
+
+	/**
+	 * Find the used IObservableValue value for given data.
+	 * 
+	 * @param context
+	 * @param data
+	 * @param propertyName
+	 * @return
+	 */
+	IObservableValue findObservableValue(Object context, Object data,
+			String propertyName);
+	
+	/**
+	 * Find the resource in Resources Dictionary attached in the UI Element.
+	 * If the key isn't found, the research will be propagated in its parent. 
+	 * 
+	 * @param object
+	 * @param key
+	 * @return
+	 */
+	Object findResource(Object object, String key);
+
+	/**
+	 * Get the Resources Dictionary attached in the UI Element.
+	 * 
+	 * @param object
+	 * @return
+	 */
+	Map<String, Object> getResources(Object object);
+
+	/**
+	 * 
+	 * @param nsmapace
+	 * @param handler
+	 */
+	void registerNamespaceHandler(String nsmapace, INamespaceHandler handler);
+
+	/**
+	 * 
+	 * @param nsmapace
+	 */
+	void unregisterNamespaceHandler(String nsmapace);
+
+	/**
+	 * 
+	 * @param nsmapace
+	 * @return
+	 */
+	INamespaceHandler getNamespaceHandler(String nsmapace);
+
+	/**
+	 * 
+	 * @return
+	 */
+	Realm getRealm();
+
+	/**
+	 * Get the system logger.
+	 * 
+	 * @return
+	 */
+	ILogger getLogger();
+
+	/**
+	 * Change the system logger
+	 * 
+	 * @param logger
+	 */
+	void setLogger(ILogger log);
+
+	/**
+	 * This namespace service returns the associated or declared namespace for a
+	 * given class.
+	 * 
+	 * @param javaclass
+	 * @return
+	 */
+	String getNamespace(Class<?> javaclass);
+
+	/**
+	 * Get the name of the element, which is defined by <code>Name</code> or
+	 * <code>x:Name</code>. Return <code>null</code>
+	 * 
+	 * @param object
+	 * @return
+	 */
+	String getElementName(Object object);
+
+	/**
+	 * Find a named UI element.
+	 * 
+	 * @param context
+	 *            the start point of research.
+	 * @param name
+	 * @return
+	 */
+	Object findElementByName(Object context, String name);
+
+	/**
+	 * Get the DataContext of given element
+	 * 
+	 * @param context
+	 * @return
+	 */
+	Object getDataContext(Object element);
+
+	/**
+	 * Get the Triggers of given element
+	 * 
+	 * @param context
+	 * @return
+	 */
+	TriggerBase[] getTriggers(Object element);
+
+	/**
+	 * Change the DataContext of given element
+	 * 
+	 * @param context
+	 * @return
+	 */
+	void setDataContext(Object widget, Object dataContext);
+
+	/**
+	 * Changes the default data context of given element
+	 * 
+	 * @param widget
+	 * @param dataBindingContext
+	 */
+	void setDataBindingContext(Object widget, Object dataBindingContext);
+
+	/**
+	 * Change the Triggers of given element
+	 * 
+	 * @param context
+	 * @return
+	 */
+	void setTriggers(Object widget, TriggerBase[] triggers);
+
+	/**
+	 * Find the closet parent of type Composite
+	 * 
+	 * @param context
+	 * @return
+	 */
+	Composite findCompositeParent(Object context);
+
+	/**
+	 * Get the Metaclass of the given object
+	 * 
+	 * @param context
+	 * @return
+	 */
+	IMetaclass getMetaclass(Object object);
+
+	/**
+	 * Load the file content. All widget will be created but they are showed.
+	 * This method return the root element.
+	 * 
+	 */
+	Object load(URL file) throws Exception;
+
+	/**
+	 * Load the file content with a DataContext. All widget will be created but
+	 * they are showed. This method returns the root element. The DataContext
+	 * will be associated to the root element.
+	 */
+	Object load(URL file, Object dataContext) throws Exception;
+
+	Object load(IUIResource resource, Object dataContext) throws Exception;
+
+	/**
+	 * Load the file content under a UI Object. All widget will be created. This
+	 * method returns the root element. The DataContext will be associated to
+	 * the root element.
+	 */
+	Object load(Object parent, URL file) throws Exception;
+
+	/**
+	 * Load the file content under a UI Object. All widget will be created. This
+	 * method returns the root element. The DataContext will be associated to
+	 * the root element.
+	 */
+	Object load(Object parent, IUIResource resource) throws Exception;
+
+	/**
+	 * Load the file content under a UI Object with a DataContext. All widget
+	 * will be created. This method returns the root element. The DataContext
+	 * will be associated to the root element.
+	 */
+	Object load(Object parent, URL file, Object dataContext)
+			throws Exception;
+
+	/**
+	 * Load the file content under a UI Object with a DataContext. All widget
+	 * will be created. This method returns the root element. The DataContext
+	 * will be associated to the root element.
+	 */
+	Object load(Object parent, IUIResource resource, Object dataContext)
+			throws Exception;
+
+	/**
+	 * Load the file content under a UI Object with a DataContext. All widget
+	 * will be created. This method returns the root element. The DataContext
+	 * will be associated to the root element.
+	 */
+	Object load(Object parent, IUIResource resource, Map<String, Object> options)
+			throws Exception;
+
+	/**
+	 * Load the file content under a UI Object with a DataContext. All widget
+	 * will be created. This method returns the root element. The DataContext
+	 * will be associated to the root element.
+	 */
+	Object load(Object parent, Class<?> viewType, Object dataContext)
+			throws Exception;
+
+	/**
+	 * Load the file content under a UI Object with a DataContext. All widget
+	 * will be created. This method returns the root element. The DataContext
+	 * will be associated to the root element.
+	 */
+	Object loadWithOptions(Class<?> viewType, Map<String, Object> options)
+			throws Exception;
+
+	/**
+	 * Open and show the file content in a new Shell.
+	 */
+	void open(Class<?> type) throws Exception;
+
+	/**
+	 * Open and show the file content in a new Shell.
+	 */
+	void open(URL url) throws Exception;
+
+	void open(IUIResource resource) throws Exception;
+
+	/**
+	 * load the content from a stream with a style, a DataContext and a
+	 * ResourceDictionary. The root elements will be hold by UI Object parent
+	 */
+	Object load(Object parent, InputStream stream, URL file,
+			Object dataContext) throws Exception;
+
+	/**
+	 * load the file content. The corresponding UI element is not yet created
+	 */
+	void open(URL url, Object dataContext) throws Exception;
+
+	void open(IUIResource resource, Object dataContext) throws Exception;
+
+	/**
+	 * load the file content. The corresponding UI element is not yet created
+	 */
+	void open(Class<?> type, Object dataContext) throws Exception;
+
+	/**
+	 * load the file content. The corresponding UI element is not yet created
+	 */
+	void open(URL url, Map<String, Object> options) throws Exception;
+
+	void open(IUIResource resource, final Map<String, Object> options) throws Exception;
+
+	/**
+	 * Data conversion service from String to a given type
+	 * 
+	 * @param type
+	 * @param string
+	 * @return
+	 */
+	Object convertFrom(IMetaclass type, String string);
+
+	/**
+	 * Data conversion service from String to a given type
+	 * 
+	 * @param targetType
+	 * @param string
+	 * @return
+	 */
+	Object convertFrom(Class<?> targetType, String string);
+
+	Object loadWithOptions(URL url, Map<String, Object> options)
+			throws Exception;
+
+	/**
+	 * 
+	 * @param stream
+	 * @param url
+	 * @param options
+	 * @return
+	 * @throws Exception
+	 */
+	Object load(InputStream stream, URL url) throws Exception;
+
+	Object load(IUIResource resource) throws Exception;
+
+	public IUIResource loadAsResource(InputStream stream, URL input) throws Exception;
+
+	public IUIResource loadAsResource(InputStream stream, URL input,
+			IBeforeParsingCallback parsingCallback) throws Exception;
+
+	public IUIResource loadAsResource(URL input) throws Exception;
+
+	public IUIResource loadAsResource(URL input,
+			IBeforeParsingCallback parsingCallback) throws Exception;
+
+	/**
+	 * Generic load method
+	 * 
+	 * @param stream
+	 * @param url
+	 * @param loadData
+	 * @return
+	 * @throws Exception
+	 */
+	Object loadWithOptions(InputStream stream, URL url,
+			Map<String, Object> options) throws Exception;
+
+	Object loadWithOptions(IUIResource resource,
+			Map<String, Object> options) throws Exception;
+
+	/**
+	 * Metaclass services to return all registered Metaclasses.
+	 * 
+	 * @param stream
+	 * @param url
+	 * @param loadData
+	 * @return
+	 * @throws Exception
+	 */
+	IMetaclass[] getAllMetaclasses();
+
+	/**
+	 * Get the corresponding Metaclass
+	 * 
+	 * @param tagName
+	 * @param ns
+	 *            The namespace
+	 * @return
+	 */
+	IMetaclass getMetaclass(String tagName, String ns);
+
+	/**
+	 * Register UI type
+	 * 
+	 * @param javaclass
+	 */
+	IMetaclass registerMetaclass(Class<?> type);
+
+	/**
+	 * Register UI type
+	 * 
+	 * @param javaclass
+	 */
+	void registerMetaclass(IMetaclass type);
+
+	/**
+	 * Get the dynamic property value
+	 * 
+	 * @param javaclass
+	 */
+	Object getPropertyValue(Object uiElement, IProperty property);
+
+	/**
+	 * Set the dynamic property value
+	 * 
+	 * @param javaclass
+	 */
+	void setPropertyValue(Object uiElement, IProperty property, Object value);
+
+	/**
+	 * Remove the dynamic property value
+	 * 
+	 * @param javaclass
+	 */
+	void removePropertyValue(Object uiElement, IProperty property);
+
+	/**
+	 * Remove the dynamic property value
+	 * 
+	 * @param javaclass
+	 */
+	boolean hasPropertyValue(Object uiElement, IProperty property);
+
+	/**
+	 * Register Metaclass factory
+	 * 
+	 * @param javaclass
+	 */
+	void registerMetaclassFactory(IMetaclassFactory metaclassFactory);
+
+	/**
+	 * Find a Data converter
+	 * 
+	 * @param converter
+	 * @param type
+	 */
+	IConverter findConvertor(Class<?> source, Class<?> target);
+
+	/**
+	 * Register a Data converter
+	 * 
+	 * @param converter
+	 * @param type
+	 */
+	void registerConvertor(IConverter converter);
+
+	/**
+	 * Add a tracking option
+	 * 
+	 * @param tracking
+	 */
+	void addTracking(Tracking tracking);
+
+	/**
+	 * Test if the tracking on argument is enabled.
+	 * 
+	 * @param tracking
+	 * @return
+	 */
+	boolean isTracking(Tracking tracking);
+
+	/**
+	 * Get all tracking options
+	 * 
+	 * @return
+	 */
+	Set<Tracking> getTrackings();
+
+	/**
+	 * Remove a tracking option.
+	 * 
+	 * @param tracking
+	 */
+	void removeTracking(Tracking tracking);
+
+	/**
+	 * Register a command to a name
+	 * 
+	 * @param name
+	 * @param command
+	 */
+	void registerCommand(String name, ICommand command);
+
+	/**
+	 * Register a command to a name
+	 * 
+	 * @param name
+	 * @param command
+	 */
+	void registerEventGroup(Class<?> type, IEventGroup eventGroup);
+
+	/**
+	 * Find a command by name
+	 * 
+	 * @param name
+	 * @return
+	 */
+	ICommand getCommand(String name);
+
+	/**
+	 * Return all registered commands
+	 * 
+	 * @return
+	 */
+	Map<String, ICommand> getCommands();
+
+	/**
+	 * Unregister a command
+	 * 
+	 * @param name
+	 */
+	void unregisterCommand(String name);
+
+	/**
+	 * Add a default style
+	 * 
+	 * @param style
+	 * @return
+	 */
+	void addDefaultStyle(IStyle style);
+
+	/**
+	 * Remove a default style
+	 * 
+	 * @param style
+	 * @return
+	 */
+	void removeDefaultStyle(IStyle style);
+
+	Collection<IStyle> getDefaultStyles();
+
+	void addDataProviderFactory(String name,
+			IDataProviderFactory dataProviderFactory);
+
+	void removeDataProviderFactory(String name);
+
+	void removeDataProviderFactory(IDataProviderFactory dataProvider);
+
+	Collection<IDataProviderFactory> getDataProviderFactories();
+
+	IDataProvider findDataProvider(Object dataContext);
+
+	ILoadingContext findLoadingContext(Object container);
+
+	ILoadingContext getLoadingContext(Object object);
+
+	ILoadingContext getLoadingContext();
+
+	void setLoadingContext(ILoadingContext loadingContext);
+
+	/**
+	 * Create a UI Profile with the provide data and apply it immediately.
+	 * 
+	 * @param profileData
+	 * @return
+	 */
+	public Object createUIProfile();
+
+	/**
+	 * Put the Profile in place
+	 * 
+	 * @param profile
+	 * @return
+	 */
+	public boolean applyProfile(Object profile);
+
+	/**
+	 * Restore the previous profile
+	 * 
+	 * @return
+	 */
+	public Object restoreProfile();
+
+	/**
+	 * Set up the default ICLRFactory 
+	 * 
+	 * @param factory
+	 */
+	public void setCLRFactory(ICLRFactory factory);
+
+	/**
+	 * The default CLRFactory.
+	 * 
+	 * @return
+	 */
+	public ICLRFactory getCLRFactory();
+
+	/**
+	 * Returns the {@link BindingContext} of the element
+	 * 
+	 * @param element
+	 * @param contextName
+	 * @return
+	 */
+	IBindingContext getBindingContext(Object element);
+
+	/**
+	 * Check if the value of a property is to resolve.
+	 * 
+	 * @param type type of property
+	 * @return
+	 */
+	boolean isFileResolveType(Class<?> type);
+
+	/**
+	 * Register the value of a property is to resolve.
+	 * 
+	 * @param type type of property
+	 * @return
+	 */
+	void registerFileResolveType(Class<?> type);
+
+	/**
+	 * Register the value of a property is to resolve.
+	 * 
+	 * @param type type of property
+	 * @return
+	 */
+	void unregisterFileResolveType(Class<?> type);
+	
+	public class Utilities {
+		public static boolean isPropertyName(String name) {	
+			for (String propertyName : ALL_PROPERTIES) {
+				if (propertyName.equalsIgnoreCase(name)) {
+					return true;
+				}
+			}
+			return false;
+		}
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/InverseValueConverter.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/InverseValueConverter.java
new file mode 100644
index 0000000..5c40913
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/InverseValueConverter.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+/**
+ * The operation to inverse the converter direction.
+ * 
+ * @author yyang
+ * 
+ */
+public class InverseValueConverter implements IValueConverter {
+	private IValueConverter source;
+
+	public InverseValueConverter(IValueConverter source) {
+		this.source = source;
+	}
+
+	public Object convertBack(Object value) {
+		return source.convert(value);
+	}
+
+	public Object convert(Object fromObject) {
+		return source.convertBack(fromObject);
+	}
+
+	public Object getFromType() {
+		return source.getToType();
+	}
+
+	public Object getToType() {
+		return source.getFromType();
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/ResourceDictionary.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/ResourceDictionary.java
new file mode 100644
index 0000000..9a14a1d
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/ResourceDictionary.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+import java.util.HashMap;
+
+public class ResourceDictionary extends HashMap<String, Object> {
+	/**
+	 * Copyright (c) 2006, 2010 Soyatec
+	 */
+	private static final long serialVersionUID = 6913227814340840893L;
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/Tracking.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/Tracking.java
new file mode 100644
index 0000000..755fe10
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/Tracking.java
@@ -0,0 +1,18 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.xwt;
+
+public enum Tracking {
+	DATABINDING, NAME;
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/XWT.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/XWT.java
new file mode 100644
index 0000000..5f11614
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/XWT.java
@@ -0,0 +1,1130 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *     Anyware-tech - add multiple loaders
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+import java.io.InputStream;
+import java.lang.reflect.Field;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.core.databinding.observable.IChangeListener;
+import org.eclipse.core.databinding.observable.IObservable;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
+import org.eclipse.core.databinding.observable.set.IObservableSet;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.callback.IBeforeParsingCallback;
+import org.eclipse.xwt.core.IBinding;
+import org.eclipse.xwt.core.TriggerBase;
+import org.eclipse.xwt.databinding.BindingContext;
+import org.eclipse.xwt.databinding.IBindingContext;
+import org.eclipse.xwt.input.ICommand;
+import org.eclipse.xwt.internal.core.UpdateSourceTrigger;
+import org.eclipse.xwt.internal.utils.UserData;
+import org.eclipse.xwt.metadata.IEvent;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+
+/**
+ * XWT is the main class of the XWT framework. It provides most of the services
+ * in API.
+ * 
+ * @author yyang
+ */
+public class XWT {
+
+	private static List<IXWTInitializer> initializers = new ArrayList<IXWTInitializer>();
+	private static Thread displayThread;
+	private static final Object displayLock = new Object();
+
+	/**
+	 * Get the system logger.
+	 * 
+	 * @returnF
+	 */
+	public static ILogger getLogger() {
+		return XWTLoaderManager.getActive().getLogger();
+	}
+
+	/**
+	 * Create a UI Profile with the provide data and apply it immediately.
+	 * 
+	 * @param profileData
+	 * @return
+	 */
+	public static Object createUIProfile() {
+		return XWTLoaderManager.getActive().createUIProfile();
+	}
+
+	/**
+	 * Put the Profile in place
+	 * 
+	 * @param profile
+	 * @return
+	 */
+	public static boolean applyProfile(Object profile) {
+		return XWTLoaderManager.getActive().applyProfile(profile);
+	}
+
+	/**
+	 * Restore the previous profile
+	 * 
+	 * @return
+	 */
+	public static Object restoreProfile() {
+		return XWTLoaderManager.getActive().restoreProfile();
+	}
+
+	/**
+	 * 
+	 * @param nsmapace
+	 * @param handler
+	 */
+	public static void registerNamespaceHandler(String nsmapace,
+			INamespaceHandler handler) {
+		XWTLoaderManager.getActive()
+				.registerNamespaceHandler(nsmapace, handler);
+	}
+
+	/**
+	 * 
+	 * @param nsmapace
+	 */
+	public static void unregisterNamespaceHandler(String nsmapace) {
+		XWTLoaderManager.getActive().unregisterNamespaceHandler(nsmapace);
+	}
+
+	/**
+	 * 
+	 * @param nsmapace
+	 * @return
+	 */
+	public static INamespaceHandler getNamespaceHandler(String nsmapace) {
+		return XWTLoaderManager.getActive().getNamespaceHandler(nsmapace);
+	}
+
+	/**
+	 * Register an Observable IChangeListener for a given UI element. The second
+	 * registration of the same listener on the same UI Element has no effect.
+	 * 
+	 * @param context
+	 * @param listener
+	 * @return
+	 */
+	public static boolean addObservableChangeListener(Object context,
+			IChangeListener listener) {
+		return XWTLoaderManager.getActive().addObservableChangeListener(
+				context, listener);
+	}
+
+	/**
+	 * Undo the registration of the Observable IChangeListener for a given UI
+	 * element.
+	 * 
+	 * @param context
+	 * @param listener
+	 */
+	public static void removeObservableChangeListener(Object context,
+			IChangeListener listener) {
+		XWTLoaderManager.getActive().removeObservableChangeListener(context,
+				listener);
+	}
+
+	/**
+	 * Find an existing IObservableValue
+	 * 
+	 * @param nsmapace
+	 * @return null if it doesn't exist.
+	 */
+	public static IObservableValue findObservableValue(Object context,
+			Object data, String propertyName) {
+		return XWTLoaderManager.getActive().findObservableValue(context, data,
+				propertyName);
+	}
+
+	/**
+	 * Find an existing IObservableValue
+	 * 
+	 * @param nsmapace
+	 * @return null if it doesn't exist.
+	 */
+	public static IObservableList findObservableList(Object context,
+			Object data, String propertyName) {
+		return XWTLoaderManager.getActive().findObservableList(context, data,
+				propertyName);
+	}
+
+	/**
+	 * Find an existing IObservableValue
+	 * 
+	 * @param nsmapace
+	 * @return null if it doesn't exist.
+	 */
+	public static IObservableSet findObservableSet(Object context, Object data,
+			String propertyName) {
+		return XWTLoaderManager.getActive().findObservableSet(context, data,
+				propertyName);
+	}
+
+	/**
+	 * get or create a IObservableValue
+	 * 
+	 * @param nsmapace
+	 * @return return null or raises an exception XWTException if fails
+	 */
+	public static IObservableValue observableValue(Object context, Object data,
+			String propertyName, UpdateSourceTrigger updateSourceTrigger) {
+		return XWTLoaderManager.getActive().observableValue(context, data,
+				propertyName, updateSourceTrigger);
+	}
+
+	/**
+	 * get or create a IObservable
+	 * 
+	 * @param nsmapace
+	 * @return return null or raises an exception XWTException if fails
+	 */
+	public static IObservable observe(Object context, Object data,
+			String propertyName, UpdateSourceTrigger updateSourceTrigger) {
+		return XWTLoaderManager.getActive().observe(context, data,
+				propertyName, updateSourceTrigger);
+	}
+
+	/**
+	 * get or create a IObservable
+	 * 
+	 * @param nsmapace
+	 * @return return null or raises an exception XWTException if fails
+	 */
+	public static IObservableFactory observableFactory(Object context,
+			String propertyName, UpdateSourceTrigger updateSourceTrigger) {
+		return XWTLoaderManager.getActive().observableFactory(context,
+				propertyName, updateSourceTrigger);
+	}
+
+	/**
+	 * get or create a IObservableValue
+	 * 
+	 * @param nsmapace
+	 * @return return null or raises an exception XWTException if fails
+	 */
+	public static IObservableValue observableValue(Object context, Object data,
+			String propertyName) {
+		return XWTLoaderManager.getActive().observableValue(context, data,
+				propertyName, UpdateSourceTrigger.Default);
+	}
+
+	/**
+	 * Change the system logger
+	 * 
+	 * @param logger
+	 */
+	public static void setLogger(ILogger log) {
+		XWTLoaderManager.getActive().setLogger(log);
+	}
+
+	/**
+	 * Get the name of the element, which is defined by <code>Name</code> or
+	 * <code>x:Name</code>. Return <code>null</code>
+	 * 
+	 * @param object
+	 * @return
+	 */
+	public static String getElementName(Object object) {
+		return XWTLoaderManager.getActive().getElementName(object);
+	}
+
+	/**
+	 * Find a named UI element.
+	 * 
+	 * @param context
+	 *            the start point of research.
+	 * @param name
+	 * @return
+	 */
+	public static Object findElementByName(Object context, String name) {
+		return XWTLoaderManager.getActive().findElementByName(context, name);
+	}
+
+	/**
+	 * Get the DataContext of given element
+	 * 
+	 * @param context
+	 * @return
+	 */
+	public static Object getDataContext(Object element, Class<?> targetType) {
+		Object value = XWTLoaderManager.getActive().getDataContext(element);
+		if (targetType == null || !targetType.isInstance(value)) {
+			if (value instanceof IBinding) {
+				return ((IBinding) value).getValue(targetType);
+			}
+			if (value instanceof IObservableValue) {
+				return ((IObservableValue) value).getValue();
+			}
+		}
+		return value;
+	}
+
+	/**
+	 * Returns the {@link BindingContext} within the upper scope of the control.
+	 * <p>
+	 * Each UI Element may have a local DataBindingContext property. While
+	 * locating DataBindingContext, if the current UI Element has not the
+	 * property, the parent's will be used.
+	 * <p>
+	 * If none is found, a default one will be created as default for the
+	 * current scope
+	 * <p>
+	 * If still not found {@link XWTException} thrown...
+	 * 
+	 * @param element
+	 * @return
+	 */
+	public static IBindingContext getBindingContext(Object element) {
+		return (IBindingContext) XWTLoaderManager.getActive()
+				.getBindingContext(element);
+	}
+
+	/**
+	 * Get the DataContext of given element
+	 * 
+	 * @param context
+	 * @return
+	 */
+	public static Object getDataContext(Object element) {
+		return getDataContext(element, null);
+	}
+
+	/**
+	 * Set the DataContext of given element
+	 * 
+	 * @param context
+	 * @return
+	 */
+	public static void setDataContext(Object element, Object dataContext) {
+		XWTLoaderManager.getActive().setDataContext(UserData.getWidget(element), dataContext);
+	}
+
+	/**
+	 * Get the Triggers of given element
+	 * 
+	 * @param context
+	 * @return
+	 */
+	public static TriggerBase[] getTriggers(Widget element) {
+		return XWTLoaderManager.getActive().getTriggers(element);
+	}
+
+	/**
+	 * Get the Triggers of given element
+	 * 
+	 * @param context
+	 * @return
+	 */
+	public static void setTriggers(Widget element, TriggerBase[] triggers) {
+		XWTLoaderManager.getActive().setTriggers(element, triggers);
+	}
+
+	/**
+	 * Get the CLR (Common Language Runtime) object. If no CLR object is found
+	 * in this element, the research will be propagated in it parent.
+	 * 
+	 * @param widget
+	 * @return
+	 */
+	public static Object getCLR(Object widget) {
+		return UserData.getCLR(widget);
+	}
+
+	/**
+	 * Find the root shell
+	 * 
+	 * @param context
+	 * @return
+	 */
+	public static Shell findShell(Object context) {
+		return UserData.findShell(context);
+	}
+
+	public static IProperty findProperty(Object object, String name) {
+		IMetaclass metaclass = XWTLoaderManager.getActive()
+				.getMetaclass(object);
+		return metaclass.findProperty(name);
+	}
+
+	public static Object findResource(Object object, String name) {
+		return XWTLoaderManager.getActive().findResource(object, name);
+	}
+
+	public static Map<String, Object> getResources(Object object) {
+		return XWTLoaderManager.getActive().getResources(object);
+	}
+
+	public static IEvent findEvent(Object object, String name) {
+		IMetaclass metaclass = XWTLoaderManager.getActive()
+				.getMetaclass(object);
+		return metaclass.findEvent(name);
+	}
+
+	public static IMetaclass getMetaclass(Object object) {
+		return XWTLoaderManager.getActive().getMetaclass(object);
+	}
+
+	/**
+	 * Load the file content. All widget will be created but they are showed.
+	 * This method return the root element.
+	 * 
+	 */
+	static public Object load(URL file) throws Exception {
+		XWT.checkInitialization();
+		return XWTLoaderManager.getActive().load(file);
+	}
+
+	/**
+	 * Load the content from IUIResource. All widget will be created but they
+	 * are showed. This method return the root element.
+	 * 
+	 */
+	static public Object load(IUIResource resource) throws Exception {
+		XWT.checkInitialization();
+		return XWTLoaderManager.getActive().load(resource);
+	}
+
+	/**
+	 * Load the file content. All widget will be created but they are showed.
+	 * This method return the root element.
+	 * 
+	 */
+	static public Object load(URL file, Object dataContext) throws Exception {
+		XWT.checkInitialization();
+		return XWTLoaderManager.getActive().load(file, dataContext);
+	}
+
+	/**
+	 * Load the content from IUIResource. All widget will be created but they
+	 * are showed. This method return the root element.
+	 * 
+	 */
+	static public Object load(IUIResource resource, Object dataContext)
+			throws Exception {
+		XWT.checkInitialization();
+		return XWTLoaderManager.getActive().load(resource, dataContext);
+	}
+
+	/**
+	 * Load the file content under a UI Object. All widget will be created. This
+	 * method returns the root element. The DataContext will be associated to
+	 * the root element.
+	 */
+	static public Object load(Object parent, URL file) throws Exception {
+		return XWTLoaderManager.getActive().load(parent, file);
+	}
+
+	/**
+	 * Load the file content under a UI Object. All widget will be created. This
+	 * method returns the root element. The DataContext will be associated to
+	 * the root element.
+	 * 
+	 */
+	static public Object load(Object parent, IUIResource resource)
+			throws Exception {
+		return XWTLoaderManager.getActive().load(parent, resource);
+	}
+
+	/**
+	 * Load the file content under a UI Object with a DataContext. All widget
+	 * will be created. This method returns the root element. The DataContext
+	 * will be associated to the root element.
+	 */
+	static public Object load(Object parent, URL file, Object dataContext)
+			throws Exception {
+		return XWTLoaderManager.getActive().load(parent, file, dataContext);
+	}
+
+	/**
+	 * Load the content from IUIResource.
+	 * 
+	 * @param stream
+	 * @param input
+	 * @param parsingCallback
+	 *            null if the callback is not necessary
+	 * @return
+	 * @throws Exception
+	 */
+	static public IUIResource loadAsResource(InputStream stream, URL input,
+			IBeforeParsingCallback parsingCallback) throws Exception {
+		return XWTLoaderManager.getActive().loadAsResource(stream, input,
+				parsingCallback);
+	}
+
+	/**
+	 * Load the content from IUIResource.
+	 * 
+	 * @param stream
+	 * @param input
+	 * @param parsingCallback
+	 *            null if the callback is not necessary
+	 * @return
+	 * @throws Exception
+	 */
+	static public IUIResource loadAsResource(InputStream stream, URL input)
+			throws Exception {
+		return XWTLoaderManager.getActive().loadAsResource(stream, input);
+	}
+
+	/**
+	 * Load the content from IUIResource.
+	 * 
+	 * @param input
+	 * @param parsingCallback
+	 *            null if the callback is not necessary
+	 * @return
+	 * @throws Exception
+	 */
+	static public IUIResource loadAsResource(URL input,
+			IBeforeParsingCallback parsingCallback) throws Exception {
+		return XWTLoaderManager.getActive().loadAsResource(null, input,
+				parsingCallback);
+	}
+
+	/**
+	 * Load the content from IUIResource.
+	 * 
+	 * @param input
+	 * @return
+	 * @throws Exception
+	 */
+	static public IUIResource loadAsResource(URL input) throws Exception {
+		return XWTLoaderManager.getActive().loadAsResource(null, input);
+	}
+
+	/**
+	 * Load the file content under a UI Object with a DataContext. All widget
+	 * will be created. This method returns the root element. The DataContext
+	 * will be associated to the root element.
+	 */
+	static public Object load(Object parent, IUIResource resource,
+			Object dataContext) throws Exception {
+		return XWTLoaderManager.getActive().load(parent, resource, dataContext);
+	}
+
+	static public Object load(Object parent, IUIResource resource,
+			Map<String, Object> options) throws Exception {
+		return XWTLoaderManager.getActive().load(parent, resource, options);
+	}
+
+	/**
+	 * Open and show the file content in a new Shell.
+	 */
+	static public void open(final URL url) throws Exception {
+		XWT.checkInitialization();
+		XWTLoaderManager.getActive().open(url);
+	}
+
+	/**
+	 * Open and show the file content in a new Shell.
+	 */
+	static public void open(final Class<?> type) throws Exception {
+		XWT.checkInitialization();
+		XWTLoaderManager.getActive().open(type);
+	}
+
+	/**
+	 * Open and show the file content in a new Shell.
+	 */
+	static public void open(final IUIResource resource) throws Exception {
+		XWT.checkInitialization();
+		XWTLoaderManager.getActive().open(resource);
+	}
+
+	/**
+	 * load the content from a stream with a style, a DataContext and a
+	 * ResourceDictionary. The root elements will be hold by UI Object parent
+	 */
+	static public Object load(Object parent, InputStream stream, URL file,
+			Object dataContext) throws Exception {
+		return XWTLoaderManager.getActive().load(parent, stream, file,
+				dataContext);
+	}
+
+	/**
+	 * load the file content. The corresponding UI element is not yet created
+	 */
+	static public void open(URL url, Object dataContext) throws Exception {
+		XWT.checkInitialization();
+		XWTLoaderManager.getActive().open(url, dataContext);
+	}
+
+	/**
+	 * load the content from IUIResource. The corresponding UI element is not
+	 * yet created
+	 */
+	static public void open(IUIResource resource, Object dataContext)
+			throws Exception {
+		XWT.checkInitialization();
+		XWTLoaderManager.getActive().open(resource, dataContext);
+	}
+
+	/**
+	 * load the file content. The corresponding UI element is not yet created
+	 */
+	static public void open(Class<?> type, Object dataContext) throws Exception {
+		open(type.getResource(type.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX), dataContext);
+	}
+
+	/**
+	 * load the file content. The corresponding UI element is not yet created
+	 */
+	static public void open(URL url, Map<String, Object> options)
+			throws Exception {
+		XWT.checkInitialization();
+		XWTLoaderManager.getActive().open(url, options);
+	}
+
+	/**
+	 * load the content from IUIResource. The corresponding UI element is not
+	 * yet created
+	 */
+	static public void open(IUIResource resource, Map<String, Object> options)
+			throws Exception {
+		XWT.checkInitialization();
+		XWTLoaderManager.getActive().open(resource, options);
+	}
+
+	static public Object convertFrom(Class<?> targetType, String string) {
+		return XWTLoaderManager.getActive().convertFrom(targetType, string);
+	}
+
+	static public Object loadWithOptions(URL url, Map<String, Object> options)
+			throws Exception {
+		return XWTLoaderManager.getActive().loadWithOptions(url, options);
+	}
+
+	static public Object loadWithOptions(IUIResource resource,
+			Map<String, Object> options) throws Exception {
+		return XWTLoaderManager.getActive().loadWithOptions(resource, options);
+	}
+
+	/**
+	 * 
+	 * @param stream
+	 * @param url
+	 * @param options
+	 * @return
+	 * @throws Exception
+	 */
+	static public Object load(InputStream stream, URL url) throws Exception {
+		XWT.checkInitialization();
+		return loadWithOptions(stream, url, Collections.EMPTY_MAP);
+	}
+
+	/**
+	 * 
+	 * @param stream
+	 * @param url
+	 * @param options
+	 * @return
+	 * @throws Exception
+	 */
+	static public Object loadWithOptions(InputStream stream, URL url,
+			Map<String, Object> options) throws Exception {
+		XWT.checkInitialization();
+		return XWTLoaderManager.getActive().loadWithOptions(stream, url,
+				options);
+	}
+
+	/**
+	 * Metaclass services to return all registered Metaclasses.
+	 * 
+	 * @param stream
+	 * @param url
+	 * @param loadData
+	 * @return
+	 * @throws Exception
+	 */
+	static public IMetaclass[] getAllMetaclasses() {
+		return XWTLoaderManager.getActive().getAllMetaclasses();
+	}
+
+	/**
+	 * Get the corresponding Metaclass
+	 * 
+	 * @param tagName
+	 * @param ns
+	 *            The namespace
+	 * @return
+	 */
+	static public IMetaclass getMetaclass(String tagName, String ns) {
+		return XWTLoaderManager.getActive().getMetaclass(tagName, ns);
+	}
+
+	/**
+	 * Register a Data converter
+	 * 
+	 * @param converter
+	 * @param type
+	 */
+	public static void registerEventGroup(Class<?> type, IEventGroup eventGroup) {
+		XWTLoaderManager.getActive().registerEventGroup(type, eventGroup);
+	}
+
+	/**
+	 * Register a Data converter
+	 * 
+	 * @param converter
+	 * @param type
+	 */
+	public static void registerConvertor(IConverter converter) {
+		XWTLoaderManager.getActive().registerConvertor(converter);
+	}
+
+	/**
+	 * Register a command to a name
+	 * 
+	 * @param name
+	 * @param command
+	 */
+	public static void registerCommand(String name, ICommand command) {
+		XWTLoaderManager.getActive().registerCommand(name, command);
+	}
+
+	/**
+	 * Add a default style
+	 * 
+	 * @param style
+	 * @return
+	 */
+	public static void addDefaultStyle(IStyle style) {
+		XWTLoaderManager.getActive().addDefaultStyle(style);
+	}
+
+	public static void addDataProviderFactory(String name,
+			IDataProviderFactory dataProviderFactory) {
+		XWTLoaderManager.getActive().addDataProviderFactory(name,
+				dataProviderFactory);
+	}
+
+	public static void removeDataProviderFactory(String name) {
+		XWTLoaderManager.getActive().removeDataProviderFactory(name);
+	}
+
+	public static void removeDataProviderFactory(
+			IDataProviderFactory dataProviderFactory) {
+		XWTLoaderManager.getActive().removeDataProviderFactory(
+				dataProviderFactory);
+	}
+
+	public static Collection<IDataProviderFactory> getDataProviderFactories() {
+		return XWTLoaderManager.getActive().getDataProviderFactories();
+	}
+
+	/**
+	 * Register UI type
+	 * 
+	 * @param javaclass
+	 */
+	static public IMetaclass registerMetaclass(Class<?> type) {
+		return XWTLoaderManager.getActive().registerMetaclass(type);
+	}
+
+	/**
+	 * Register UI type
+	 * 
+	 * @param javaclass
+	 */
+	static public void registerMetaclass(IMetaclass type) {
+		XWTLoaderManager.getActive().registerMetaclass(type);
+	}
+
+	/**
+	 * Get the dynamic property value
+	 * 
+	 * @param javaclass
+	 */
+	static public Object getPropertyValue(Object uiElement, IProperty property) {
+		return XWTLoaderManager.getActive().getPropertyValue(uiElement,
+				property);
+	}
+
+	/**
+	 * Get the dynamic property value
+	 * 
+	 * @param javaclass
+	 */
+	static public Object getPropertyValue(Object uiElement, String propertyName) {
+		IMetaclass metaclass = XWT.getMetaclass(uiElement);
+		IProperty property = metaclass.findProperty(propertyName);
+		if (property == null) {
+			return null;
+		}
+		return XWTLoaderManager.getActive().getPropertyValue(uiElement,
+				property);
+	}
+
+	/**
+	 * Set the dynamic property value
+	 * 
+	 * @param javaclass
+	 */
+	static public void setPropertyValue(Object uiElement, IProperty property,
+			Object value) {
+		XWTLoaderManager.getActive().setPropertyValue(uiElement, property,
+				value);
+	}
+
+	/**
+	 * Set the dynamic property value
+	 * 
+	 * @param javaclass
+	 */
+	static public void setPropertyValue(Object uiElement, String propertyName,
+			Object value) {
+		IMetaclass metaclass = XWT.getMetaclass(uiElement);
+		IProperty property = metaclass.findProperty(propertyName);
+		if (property == null) {
+			throw new XWTException("Property " + propertyName + " not found.");
+		}
+		XWTLoaderManager.getActive().setPropertyValue(uiElement, property,
+				value);
+	}
+
+	/**
+	 * Remove the dynamic property value
+	 * 
+	 * @param javaclass
+	 */
+	static public void removePropertyValue(Object uiElement, IProperty property) {
+		XWTLoaderManager.getActive().removePropertyValue(uiElement, property);
+	}
+
+	/**
+	 * Remove the dynamic property value
+	 * 
+	 * @param javaclass
+	 */
+	static public boolean hasPropertyValue(Object uiElement, IProperty property) {
+		return XWTLoaderManager.getActive().hasPropertyValue(uiElement,
+				property);
+	}
+
+	/**
+	 * Find a Data converter
+	 * 
+	 * @param converter
+	 * @param type
+	 */
+	static public IConverter findConvertor(Class<?> source, Class<?> target) {
+		return XWTLoaderManager.getActive().findConvertor(source, target);
+	}
+
+	/**
+	 * Switch current loading context
+	 * 
+	 */
+	public static void setLoadingContext(ILoadingContext loadingContext) {
+		XWTLoaderManager.getActive().setLoadingContext(loadingContext);
+	}
+
+	/**
+	 * Return current loading context
+	 * 
+	 * @return ILoadingContext
+	 */
+	public static ILoadingContext getLoadingContext() {
+		return XWTLoaderManager.getActive().getLoadingContext();
+	}
+
+	/**
+	 * Add a tracking option
+	 * 
+	 * @param tracking
+	 */
+	static public void addTracking(Tracking tracking) {
+		XWTLoaderManager.getActive().addTracking(tracking);
+	}
+
+	/**
+	 * Test if the tracking on argument is enabled.
+	 * 
+	 * @param tracking
+	 * @return
+	 */
+	static public boolean isTracking(Tracking tracking) {
+		return XWTLoaderManager.getActive().isTracking(tracking);
+	}
+
+	/**
+	 * Get all tracking options
+	 * 
+	 * @return
+	 */
+	static public Set<Tracking> getTrackings() {
+		return XWTLoaderManager.getActive().getTrackings();
+	}
+
+	/**
+	 * Set up the default ICLRFactory
+	 * 
+	 * @param factory
+	 */
+	static public void setCLRFactory(ICLRFactory factory) {
+		XWTLoaderManager.getActive().setCLRFactory(factory);
+	}
+
+	static public boolean checkInitialization() {
+		if (isAllInitializersInitialized()) {
+			return false;
+		}
+		return checkInitialization(-1);
+	}
+
+	static public boolean checkInitialization(long timeoutMillis) {
+		long started = System.currentTimeMillis();
+		while (true) {
+			if (timeoutMillis != -1
+					&& System.currentTimeMillis() - started > timeoutMillis) {
+				return false;
+			}
+
+			if (isAllInitializersInitialized()) {
+				return false;
+			}
+
+			try {
+				Thread.sleep(500);
+			} catch (InterruptedException e) {
+				return false;
+			}
+		}
+	}
+
+	private static boolean isAllInitializersInitialized() {
+		synchronized (initializers) {
+			for (IXWTInitializer initializer : initializers) {
+				if (!initializer.isInitialized()) {
+					return false;
+				}
+			}
+		}
+		return true;
+	}
+
+	/**
+	 * The default CLRFactory.
+	 * 
+	 * @return
+	 */
+	static public ICLRFactory getCLRFactory() {
+		return XWTLoaderManager.getActive().getCLRFactory();
+	}
+
+	/**
+	 * Find a command by name
+	 * 
+	 * @param name
+	 * @return
+	 */
+	static public ICommand getCommand(String name) {
+		return XWTLoaderManager.getActive().getCommand(name);
+	}
+
+	public static IDataProvider findDataProvider(Object dataContext) {
+		return XWTLoaderManager.getActive().findDataProvider(dataContext);
+	}
+
+	static public Realm getRealm() {
+		return XWTLoaderManager.getActive().getRealm();
+	}
+
+	static public boolean isXWTNamespace(String namespace) {
+		return IConstants.XWT_X_NAMESPACE.equals(namespace)
+				|| IConstants.XWT_NAMESPACE.equals(namespace)
+				|| namespace.startsWith(IConstants.XAML_CLR_NAMESPACE_PROTO);
+	}
+
+	/**
+	 * Check if the value of a property is to resolve.
+	 * 
+	 * @param type
+	 *            type of property
+	 * @return
+	 */
+	public static boolean isFileResolveType(Class<?> type) {
+		return XWTLoaderManager.getActive().isFileResolveType(type);
+	}
+
+	/**
+	 * Register the value of a property is to resolve.
+	 * 
+	 * @param type
+	 *            type of property
+	 * @return
+	 */
+	public static void registerFileResolveType(Class<?> type) {
+		XWTLoaderManager.getActive().registerFileResolveType(type);
+	}
+
+	/**
+	 * Register the value of a property is to resolve.
+	 * 
+	 * @param type
+	 *            type of property
+	 * @return
+	 */
+	public static void unregisterFileResolveType(Class<?> type) {
+		XWTLoaderManager.getActive().unregisterFileResolveType(type);
+	}
+
+	static class DisplayThread extends Thread implements Listener {
+		protected long startTime = -1;
+		protected boolean toStop = false;
+		protected Runnable runnable;
+
+		public DisplayThread(Runnable runnable) {
+			this.runnable = runnable;
+		}
+
+		public void handleEvent(Event event) {
+		}
+	}
+
+	/**
+	 * Run in UI context.
+	 * 
+	 * @param runnable
+	 */
+	public static void runOnUIThread(final Runnable runnable) {
+		String platform = SWT.getPlatform();
+		if (platform.startsWith("win") || platform.endsWith("cocoa") || platform.startsWith("rap")) {
+			XWTLoaderManager.getDefault();
+			runnable.run();
+		} else if (platform.endsWith("gtk")) {
+			synchronized (displayLock) {
+				if (displayThread == null || !displayThread.isAlive()) {
+					try {
+						Field field = Display.class.getDeclaredField("Default");
+						if (field != null) {
+							field.setAccessible(true);
+							Display defaultDisplay = (Display) field.get(null);
+							if (defaultDisplay != null) {
+								displayThread = defaultDisplay.getThread();
+							}
+						}
+					} catch (Exception e) {
+					}
+				}
+
+				if (displayThread == null || !displayThread.isAlive()) {
+					displayThread = new Thread() {
+						private long startTime = -1;
+						private Display display;
+						private boolean toStop = false;
+						private boolean ignoreNotification = false;
+						protected Runnable runnable = new Runnable() {
+							public void run() {
+								if (ignoreNotification) {
+									startTime = -1;
+									return;
+								}
+								if (startTime == -1) {
+									startTime = System.currentTimeMillis();
+								} else {
+									if ((System.currentTimeMillis() - startTime) > 10000
+											&& display.getActiveShell() == null
+											&& display.getShells().length == 0) {
+										toStop = true;
+										display.wake();
+									} else {
+										startTime = System.currentTimeMillis();
+									}
+								}
+							}
+						};
+
+						@Override
+						public void run() {
+							// Set default XWT ICLRFactory
+							XWTLoaderManager.getDefault();
+							display = Display.getDefault();
+							runnable.run();
+							while (true) {
+								if (!display.readAndDispatch()) {
+									display.timerExec(10000, runnable);
+									display.sleep();
+									ignoreNotification = true;
+								}
+								if (toStop) {
+									break;
+								}
+								startTime = -1;
+							}
+						}
+					};
+					displayThread.start();
+				} else {
+					XWTLoaderManager.getDefault();
+					XWT.checkInitialization();
+					Display display = Display.findDisplay(displayThread);
+					if (display != null) {
+						display.syncExec(runnable);
+					}
+				}
+			}
+		} else {
+			throw new UnsupportedOperationException();
+		}
+	}
+
+	public static void addInitializer(IXWTInitializer initializer) {
+		synchronized (initializers) {
+			if (!XWTLoaderManager.isStarted()) {
+				initializers.add(initializer);
+			}
+		}
+	}
+
+	static List<IXWTInitializer> getInitializers() {
+		return initializers;
+	}
+
+	public static Object findParent(Object element, Class<?> type) {
+		Widget widget = UserData.getWidget(element);
+		if (widget == null) {
+			return null;
+		}
+		return UserData.findParent(widget, type);
+	}
+
+	static void runInitializers(IXWTLoader loader) {
+		synchronized (initializers) {
+			for (IXWTInitializer initializer : XWT.getInitializers()) {
+				initializer.initialize(loader);
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/XWTException.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/XWTException.java
new file mode 100644
index 0000000..fc7a87e
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/XWTException.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+public class XWTException extends RuntimeException {
+	/**
+	 * Copyright (c) 2006, 2010 Soyatec
+	 */
+	private static final long serialVersionUID = 7568262060419780948L;
+
+	public XWTException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public XWTException(String message) {
+		super(message);
+	}
+
+	public XWTException(Throwable cause) {
+		super(cause);
+	}
+
+	public XWTException() {
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/XWTLoader.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/XWTLoader.java
new file mode 100644
index 0000000..d45a700
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/XWTLoader.java
@@ -0,0 +1,1986 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *     Anyware-tech - add multiple loaders
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+import java.util.Stack;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.core.databinding.conversion.NumberToStringConverter;
+import org.eclipse.core.databinding.conversion.StringToNumberConverter;
+import org.eclipse.core.databinding.observable.IChangeListener;
+import org.eclipse.core.databinding.observable.IObservable;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
+import org.eclipse.core.databinding.observable.set.IObservableSet;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
+import org.eclipse.jface.databinding.viewers.ObservableSetContentProvider;
+import org.eclipse.jface.internal.databinding.swt.DateTimeSelectionProperty;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ControlEditor;
+import org.eclipse.swt.custom.TableEditor;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.ExpandItem;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.IME;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Link;
+import org.eclipse.swt.widgets.List;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.xwt.animation.BackEase;
+import org.eclipse.xwt.animation.BeginStoryboard;
+import org.eclipse.xwt.animation.BounceEase;
+import org.eclipse.xwt.animation.CircleEase;
+import org.eclipse.xwt.animation.ColorAnimation;
+import org.eclipse.xwt.animation.CubicEase;
+import org.eclipse.xwt.animation.DoubleAnimation;
+import org.eclipse.xwt.animation.Drawing;
+import org.eclipse.xwt.animation.ElasticEase;
+import org.eclipse.xwt.animation.ExponentialEase;
+import org.eclipse.xwt.animation.FloatAnimation;
+import org.eclipse.xwt.animation.IntAnimation;
+import org.eclipse.xwt.animation.PauseStoryboard;
+import org.eclipse.xwt.animation.PointAnimation;
+import org.eclipse.xwt.animation.PowerEase;
+import org.eclipse.xwt.animation.QuadraticEase;
+import org.eclipse.xwt.animation.QuarticEase;
+import org.eclipse.xwt.animation.QuinticEase;
+import org.eclipse.xwt.animation.RectangleAnimation;
+import org.eclipse.xwt.animation.ResumeStoryboard;
+import org.eclipse.xwt.animation.SineEase;
+import org.eclipse.xwt.animation.SizeAnimation;
+import org.eclipse.xwt.animation.StopStoryboard;
+import org.eclipse.xwt.animation.Storyboard;
+import org.eclipse.xwt.callback.IBeforeParsingCallback;
+import org.eclipse.xwt.collection.CollectionViewSource;
+import org.eclipse.xwt.converters.BindingToObject;
+import org.eclipse.xwt.converters.CollectionToBoolean;
+import org.eclipse.xwt.converters.CollectionToInteger;
+import org.eclipse.xwt.converters.DateToString;
+import org.eclipse.xwt.converters.EnumToString;
+import org.eclipse.xwt.converters.IStatusToBoolean;
+import org.eclipse.xwt.converters.IStatusToString;
+import org.eclipse.xwt.converters.ListToIObservableCollection;
+import org.eclipse.xwt.converters.ListToSet;
+import org.eclipse.xwt.converters.ObjectToBoolean;
+import org.eclipse.xwt.converters.ObjectToISelection;
+import org.eclipse.xwt.converters.ObjectToString;
+import org.eclipse.xwt.converters.SelectionToBoolean;
+import org.eclipse.xwt.converters.SetToIObservableCollection;
+import org.eclipse.xwt.converters.StringToBoolean;
+import org.eclipse.xwt.converters.StringToChar;
+import org.eclipse.xwt.converters.StringToColor;
+import org.eclipse.xwt.converters.StringToDoubleArray;
+import org.eclipse.xwt.converters.StringToDuration;
+import org.eclipse.xwt.converters.StringToFont;
+import org.eclipse.xwt.converters.StringToFormAttachment;
+import org.eclipse.xwt.converters.StringToIValidationRule;
+import org.eclipse.xwt.converters.StringToIValueConverter;
+import org.eclipse.xwt.converters.StringToImage;
+import org.eclipse.xwt.converters.StringToIntArray;
+import org.eclipse.xwt.converters.StringToInteger;
+import org.eclipse.xwt.converters.StringToKeySpline;
+import org.eclipse.xwt.converters.StringToKeyTime;
+import org.eclipse.xwt.converters.StringToPoint;
+import org.eclipse.xwt.converters.StringToRectangle;
+import org.eclipse.xwt.converters.StringToRepeatBehavior;
+import org.eclipse.xwt.converters.StringToTimeSpan;
+import org.eclipse.xwt.converters.StringToType;
+import org.eclipse.xwt.converters.StringToURL;
+import org.eclipse.xwt.core.Condition;
+import org.eclipse.xwt.core.DataTrigger;
+import org.eclipse.xwt.core.EventTrigger;
+import org.eclipse.xwt.core.IBinding;
+import org.eclipse.xwt.core.IUserDataConstants;
+import org.eclipse.xwt.core.MultiDataTrigger;
+import org.eclipse.xwt.core.MultiTrigger;
+import org.eclipse.xwt.core.RadioEventGroup;
+import org.eclipse.xwt.core.Setter;
+import org.eclipse.xwt.core.Style;
+import org.eclipse.xwt.core.Trigger;
+import org.eclipse.xwt.core.TriggerBase;
+import org.eclipse.xwt.core.ValidationStatus;
+import org.eclipse.xwt.databinding.BindingContext;
+import org.eclipse.xwt.databinding.IBindingContext;
+import org.eclipse.xwt.dataproviders.ObjectDataProvider;
+import org.eclipse.xwt.input.ICommand;
+import org.eclipse.xwt.internal.core.BindingExpressionPath;
+import org.eclipse.xwt.internal.core.Core;
+import org.eclipse.xwt.internal.core.MetaclassManager;
+import org.eclipse.xwt.internal.core.MultiBinding;
+import org.eclipse.xwt.internal.core.ScopeKeeper;
+import org.eclipse.xwt.internal.core.ScopeManager;
+import org.eclipse.xwt.internal.core.UIResource;
+import org.eclipse.xwt.internal.core.UpdateSourceTrigger;
+import org.eclipse.xwt.internal.utils.ObjectUtil;
+import org.eclipse.xwt.internal.utils.UserData;
+import org.eclipse.xwt.javabean.ResourceLoaderFactory;
+import org.eclipse.xwt.javabean.ValueConvertorRegister;
+import org.eclipse.xwt.javabean.metadata.BindingMetaclass;
+import org.eclipse.xwt.javabean.metadata.ComboBoxCellEditorMetaclass;
+import org.eclipse.xwt.javabean.metadata.ExpandItemHeightAction;
+import org.eclipse.xwt.javabean.metadata.TableEditorMetaclass;
+import org.eclipse.xwt.javabean.metadata.TableViewerColumnMetaClass;
+import org.eclipse.xwt.javabean.metadata.properties.AbstractProperty;
+import org.eclipse.xwt.javabean.metadata.properties.ColumnViewerColumnsProperty;
+import org.eclipse.xwt.javabean.metadata.properties.DataProperty;
+import org.eclipse.xwt.javabean.metadata.properties.DynamicBeanProperty;
+import org.eclipse.xwt.javabean.metadata.properties.DynamicProperty;
+import org.eclipse.xwt.javabean.metadata.properties.InputBeanProperty;
+import org.eclipse.xwt.javabean.metadata.properties.MultiSelectionBeanProperty;
+import org.eclipse.xwt.javabean.metadata.properties.PropertiesConstants;
+import org.eclipse.xwt.javabean.metadata.properties.SingleSelectionBeanProperty;
+import org.eclipse.xwt.javabean.metadata.properties.StyleProperty;
+import org.eclipse.xwt.javabean.metadata.properties.TableColumnEditorProperty;
+import org.eclipse.xwt.javabean.metadata.properties.TableEditorDynamicProperty;
+import org.eclipse.xwt.javabean.metadata.properties.TableItemEditorProperty;
+import org.eclipse.xwt.javabean.metadata.properties.TableItemProperty;
+import org.eclipse.xwt.javabean.metadata.properties.TableViewerColumnDynamicProperty;
+import org.eclipse.xwt.javabean.metadata.properties.TableViewerColumnImageProperty;
+import org.eclipse.xwt.javabean.metadata.properties.TableViewerColumnTextProperty;
+import org.eclipse.xwt.javabean.metadata.properties.TableViewerColumnWidthProperty;
+import org.eclipse.xwt.javabean.metadata.properties.TriggersProperty;
+import org.eclipse.xwt.jface.ComboBoxCellEditor;
+import org.eclipse.xwt.jface.DefaultCellModifier;
+import org.eclipse.xwt.jface.JFaceInitializer;
+import org.eclipse.xwt.jface.JFacesHelper;
+import org.eclipse.xwt.jface.ObservableTreeContentProvider;
+import org.eclipse.xwt.jface.ViewerFilter;
+import org.eclipse.xwt.metadata.DefaultLoadingType;
+import org.eclipse.xwt.metadata.DelegateProperty;
+import org.eclipse.xwt.metadata.ILoadingType;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.xwt.metadata.IValueLoading;
+import org.eclipse.xwt.utils.ResourceManager;
+
+/**
+ * Default XWT loader
+ * 
+ * @author yyang (yves.yang@soyatec.com) jliu (jin.liu@soyatec.com)
+ */
+public class XWTLoader implements IXWTLoader {
+	// Declarations
+	private Stack<Core> cores;
+
+	public Realm realm;
+
+	public XWTLoader() {
+		initialize();
+	}
+
+	public Object createUIProfile() {
+		Core core = new Core(new ResourceLoaderFactory(), this);
+		cores.push(core);
+		return core;
+	}
+
+	public boolean applyProfile(Object profile) {
+		if (profile instanceof Core) {
+			if (cores.peek() == profile) {
+				return false;
+			}
+			cores.push((Core) profile);
+			return true;
+		}
+		throw new XWTException("Wrong UI Profile.");
+	}
+
+	public Object restoreProfile() {
+		if (cores.size() > 1) {
+			return cores.pop();
+		}
+		throw new XWTException("No user-defined UI Profile.");
+	}
+
+	public Realm getRealm() {
+		if (realm != null)
+			return realm;
+		Display display = Display.getCurrent();
+		if (display == null) {
+			display = Display.getDefault();
+		}
+		return SWTObservables.getRealm(display);
+	}
+
+	protected Core getCurrentCore() {
+		return cores.peek();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#getLogger()
+	 */
+	public ILogger getLogger() {
+		return getCurrentCore().getLogger();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#setLogger(org.eclipse.xwt.ILogger)
+	 */
+	public void setLogger(ILogger log) {
+		getCurrentCore().setLogger(log);
+	}
+
+	/**
+	 * Get the dynamic property value
+	 * 
+	 * @param javaclass
+	 */
+	public Object getPropertyValue(Object uiElement, IProperty property) {
+		return UserData.getLocalData(uiElement, property);
+	}
+
+	/**
+	 * Set the dynamic property value
+	 * 
+	 * @param javaclass
+	 */
+	public void setPropertyValue(Object uiElement, IProperty property,
+			Object value) {
+		UserData.setLocalData(uiElement, property, value);
+	}
+
+	/**
+	 * Remove the dynamic property value
+	 * 
+	 * @param javaclass
+	 */
+	public void removePropertyValue(Object uiElement, IProperty property) {
+		UserData.removeLocalData(uiElement, property);
+	}
+
+	/**
+	 * Remove the dynamic property value
+	 * 
+	 * @param javaclass
+	 */
+	public boolean hasPropertyValue(Object uiElement, IProperty property) {
+		return UserData.hasLocalData(uiElement, property);
+	}
+
+	/**
+	 * Register an Observable IChangeListener for a given UI element. The second
+	 * registration of the same listener on the same UI Element has no effect.
+	 * 
+	 * @param context
+	 * @param listener
+	 * @return <code>true</code> the listener is added, <code>false</code> if
+	 *         the listener already exists
+	 */
+	public boolean addObservableChangeListener(Object control,
+			IChangeListener listener) {
+		ScopeKeeper scope = UserData.findScopeKeeper(control);
+		if (scope != null) {
+			return scope.addChangeListener(listener);
+		}
+		return false;
+	}
+
+	/**
+	 * Undo the registration of the Observable IChangeListener for a given UI
+	 * element.
+	 * 
+	 * @param context
+	 * @param listener
+	 */
+	public void removeObservableChangeListener(Object control,
+			IChangeListener listener) {
+		ScopeKeeper scope = UserData.findScopeKeeper(control);
+		if (scope != null) {
+			scope.removeChangeListener(listener);
+		}
+	}
+
+	/**
+	 * 
+	 * @param nsmapace
+	 * @return
+	 */
+	public IObservable observe(Object control, Object data, String fullPath,
+			UpdateSourceTrigger updateSourceTrigger) {
+		return ScopeManager.observe(control, data, new BindingExpressionPath(
+				fullPath), updateSourceTrigger);
+	}
+
+	/**
+	 * 
+	 * @param nsmapace
+	 * @return
+	 */
+	public IObservableFactory observableFactory(Object control,
+			String fullPath, UpdateSourceTrigger updateSourceTrigger) {
+		return ScopeManager.observableFactory(control,
+				new BindingExpressionPath(fullPath), updateSourceTrigger);
+	}
+
+	/**
+	 * 
+	 * @param nsmapace
+	 * @return
+	 */
+	public IObservableList findObservableList(Object context, Object data,
+			String fullPath) {
+		return ScopeManager.findObservableList(context, null, data, fullPath);
+	}
+
+	/**
+	 * 
+	 * @param nsmapace
+	 * @return
+	 */
+	public IObservableSet findObservableSet(Object context, Object data,
+			String fullPath) {
+		return ScopeManager.findObservableSet(context, null, data, fullPath);
+	}
+
+	/**
+	 * 
+	 * @param nsmapace
+	 * @return
+	 */
+	public IObservableValue observableValue(Object control, Object data,
+			String fullPath, UpdateSourceTrigger updateSourceTrigger) {
+		return ScopeManager.observableValue(control, data, fullPath,
+				updateSourceTrigger);
+	}
+
+	/**
+	 * 
+	 * @param nsmapace
+	 * @return
+	 */
+	public IObservableValue findObservableValue(Object context, Object data,
+			String fullPath) {
+		return ScopeManager.findObservableValue(context, null, data, fullPath);
+	}
+
+	/**
+	 * 
+	 */
+	public Object findResource(Object object, String key) {
+		return UserData.findResource(object, key);
+	}
+
+	public Map<String, Object> getResources(Object object) {
+		return UserData.getLocalResources(object);
+	}
+
+	/**
+	 * 
+	 * @param nsmapace
+	 * @param handler
+	 */
+	public void registerNamespaceHandler(String nsmapace,
+			INamespaceHandler handler) {
+		getCurrentCore().registerNamespaceHandler(nsmapace, handler);
+	}
+
+	/**
+	 * 
+	 * @param nsmapace
+	 */
+	public void unregisterNamespaceHandler(String nsmapace) {
+		getCurrentCore().unregisterNamespaceHandler(nsmapace);
+	}
+
+	/**
+	 * 
+	 * @param nsmapace
+	 * @return
+	 */
+	public INamespaceHandler getNamespaceHandler(String nsmapace) {
+		for (int i = cores.size() - 1; i >= 0; i--) {
+			Core core = cores.get(i);
+			INamespaceHandler handler = core.getNamespaceHandler(nsmapace);
+			if (handler != null) {
+				return handler;
+			}
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#getNamespace(java.lang.Class)
+	 */
+	public String getNamespace(Class<?> javaclass) {
+		if (getMetaclass(javaclass) != null) {
+			return IConstants.XWT_NAMESPACE;
+		}
+		Package javaPackage = javaclass.getPackage();
+		if (javaPackage == null) {
+			return IConstants.XAML_CLR_NAMESPACE_PROTO;
+		}
+		return IConstants.XAML_CLR_NAMESPACE_PROTO
+				+ javaclass.getPackage().getName();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#getElementName(java.lang.Object)
+	 */
+	public String getElementName(Object object) {
+		return UserData.getElementName(object);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#findElementByName(org.eclipse.swt.widgets
+	 * .Widget, java.lang.String)
+	 */
+	public Object findElementByName(Object context, String name) {
+		return UserData.findElementByName(context, name);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#getDataBindingContext(java.lang.Object,
+	 * java.lang.String)
+	 */
+	public IBindingContext getBindingContext(Object element) {
+		IBindingContext dataBindingContext = UserData
+				.getBindingContext(element);
+		if (dataBindingContext == null) {
+			dataBindingContext = UserData.createBindingContext(element);
+		}
+		return dataBindingContext;
+	}
+
+	public ICLRFactory getCLRFactory() {
+		for (int i = cores.size() - 1; i >= 0; i--) {
+			Core core = cores.get(i);
+			ICLRFactory factory = core.getCLRFactory();
+			if (factory != null) {
+				return factory;
+			}
+		}
+		return null;
+	}
+
+	public void setCLRFactory(ICLRFactory clrFactory) {
+		cores.peek().setCLRFactory(clrFactory);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#getDataContext(org.eclipse.swt.widgets.
+	 * Widget)
+	 */
+	public Object getDataContext(Object element) {
+		return UserData.getDataContext(element);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#getDataContext(org.eclipse.swt.widgets.
+	 * Widget)
+	 */
+	public TriggerBase[] getTriggers(Object element) {
+		return UserData.getTriggers(element);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#setDataBindingContext(java.lang.Object,
+	 * java.lang.Object)
+	 */
+	public void setDataBindingContext(Object widget, Object dataBindingContext) {
+		UserData.setBindingContext(widget, dataBindingContext);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#setDataContext(org.eclipse.swt.widgets.
+	 * Widget, java.lang.Object)
+	 */
+	public void setDataContext(Object widget, Object dataContext) {
+		UserData.setDataContext(widget, dataContext);
+	}
+
+	/**
+	 * Get the Triggers of given element
+	 * 
+	 * @param context
+	 * @return
+	 */
+	public void setTriggers(Object element, TriggerBase[] triggers) {
+		UserData.setTriggers(element, triggers);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.IXWTLoader#findCompositeParent(org.eclipse.swt.widgets
+	 * .Widget)
+	 */
+	public Composite findCompositeParent(Object context) {
+		return UserData.findCompositeParent(context);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#getMetaclass(java.lang.Object)
+	 */
+	public IMetaclass getMetaclass(Object object) {
+		for (int i = cores.size() - 1; i >= 0; i--) {
+			Core core = cores.get(i);
+			IMetaclass metaclass = core.findMetaclass(object);
+			if (metaclass != null) {
+				return metaclass;
+			}
+		}
+		Class<?> javaClass = null;
+		if (object instanceof Class<?>) {
+			javaClass = (Class<?>) object;
+		} else {
+			javaClass = object.getClass();
+		}
+		Class<?> superclass = javaClass.getSuperclass();
+		IMetaclass superMetaclass = null;
+		if (superclass != null) {
+			superMetaclass = getMetaclass(superclass);
+		}
+		return getCurrentCore().registerMetaclass(javaClass,
+				IConstants.XWT_NAMESPACE, superMetaclass);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#load(java.net.URL)
+	 */
+	public Object load(URL file) throws Exception {
+		return loadWithOptions(file, Collections.EMPTY_MAP);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#load(java.net.URL, java.lang.Object)
+	 */
+	public Object load(URL file, Object dataContext) throws Exception {
+		return load(null, file, dataContext);
+	}
+
+	public Object load(IUIResource resource, Object dataContext)
+			throws Exception {
+		return load(null, resource, dataContext);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#load(org.eclipse.swt.widgets.Composite,
+	 * java.net.URL)
+	 */
+	public Object load(Object parent, URL file) throws Exception {
+		HashMap<String, Object> options = new HashMap<String, Object>();
+		options.put(CONTAINER_PROPERTY, parent);
+		return loadWithOptions(file, options);
+	}
+
+	public Object load(Object parent, IUIResource resource) throws Exception {
+		HashMap<String, Object> options = new HashMap<String, Object>();
+		options.put(CONTAINER_PROPERTY, parent);
+		return loadWithOptions(resource, options);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#load(org.eclipse.swt.widgets.Composite,
+	 * java.net.URL, java.lang.Object)
+	 */
+	public Object load(Object parent, URL file, Object dataContext)
+			throws Exception {
+		HashMap<String, Object> options = new HashMap<String, Object>();
+		options.put(CONTAINER_PROPERTY, parent);
+		options.put(DATACONTEXT_PROPERTY, dataContext);
+		return loadWithOptions(file, options);
+	}
+
+	public Object load(Object parent, IUIResource resource, Object dataContext)
+			throws Exception {
+		HashMap<String, Object> options = new HashMap<String, Object>();
+		options.put(CONTAINER_PROPERTY, parent);
+		options.put(DATACONTEXT_PROPERTY, dataContext);
+		return loadWithOptions(resource, options);
+	}
+
+	public Object load(Object parent, IUIResource resource,
+			Map<String, Object> options) throws Exception {
+		if (options.isEmpty()) {
+			options = new HashMap<String, Object>();
+		}
+		options.put(CONTAINER_PROPERTY, parent);
+		return loadWithOptions(resource, options);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#load(org.eclipse.swt.widgets.Composite,
+	 * java.lang.Class, java.lang.Object)
+	 */
+	public Object load(Object parent, Class<?> viewType, Object dataContext)
+			throws Exception {
+		HashMap<String, Object> options = new HashMap<String, Object>();
+		options.put(CONTAINER_PROPERTY, parent);
+		options.put(DATACONTEXT_PROPERTY, dataContext);
+		return loadWithOptions(viewType, options);
+	}
+
+	protected Map<String, Object> prepareOptions(Map<String, Object> options,
+			URL url) {
+		Boolean disabledStyle = (Boolean) options.get(DISABLE_STYLES_PROPERTY);
+		if (!Boolean.TRUE.equals(disabledStyle)) {
+			Collection<IStyle> defaultStyles = getDefaultStyles();
+			Object styles = options.get(DEFAULT_STYLES_PROPERTY);
+			if (styles != null) {
+				if (styles instanceof IStyle) {
+					defaultStyles.add((IStyle) styles);
+				} else if (styles instanceof Collection) {
+					for (IStyle style : (Collection<IStyle>) styles) {
+						defaultStyles.add(style);
+					}
+				} else if (styles instanceof Object[]) {
+					for (Object element : (Object[]) styles) {
+						if (element instanceof IStyle) {
+							defaultStyles.add((IStyle) element);
+						} else {
+							throw new XWTException(
+									"IStyle is expected in [styles] paramters.");
+						}
+					}
+				}
+				options.remove(DEFAULT_STYLES_PROPERTY);
+			}
+			if (!defaultStyles.isEmpty()) {
+				ResourceDictionary dictionary = (ResourceDictionary) options
+						.get(RESOURCE_DICTIONARY_PROPERTY);
+				if (dictionary == null) {
+					dictionary = new ResourceDictionary();
+					if (options == Collections.EMPTY_MAP) {
+						options = new HashMap<String, Object>();
+					}
+					options.put(RESOURCE_DICTIONARY_PROPERTY, dictionary);
+				}
+				dictionary.put(Core.DEFAULT_STYLES_KEY, defaultStyles);
+			}
+		}
+		// Register URL property
+		if (options == Collections.EMPTY_MAP) {
+			options = new HashMap<String, Object>();
+		}
+		options.put(URL_PROPERTY, url);
+		return options;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#loadWithOptions(java.lang.Class,
+	 * java.util.Map)
+	 */
+	public Object loadWithOptions(Class<?> viewType, Map<String, Object> options)
+			throws Exception {
+		ILoadingContext context = getLoadingContext();
+		try {
+			setLoadingContext(new DefaultLoadingContext(
+					viewType.getClassLoader()));
+			options = prepareOptions(options, null);
+			return loadWithOptions(
+					viewType.getResource(viewType.getSimpleName() + ".xwt"),
+					options);
+		} finally {
+			setLoadingContext(context);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#open(java.lang.Class)
+	 */
+	public void open(Class<?> type) throws Exception {
+		open(type.getResource(type.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX), Collections.EMPTY_MAP);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#open(java.net.URL)
+	 */
+	public void open(URL url) throws Exception {
+		open(url, Collections.EMPTY_MAP);
+	}
+
+	public void open(IUIResource resource) throws Exception {
+		open(resource, Collections.EMPTY_MAP);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#load(org.eclipse.swt.widgets.Composite,
+	 * java.io.InputStream, java.net.URL, java.lang.Object)
+	 */
+	public Object load(Object parent, InputStream stream, URL file,
+			Object dataContext) throws Exception {
+		HashMap<String, Object> options = new HashMap<String, Object>();
+		options.put(CONTAINER_PROPERTY, parent);
+		options.put(DATACONTEXT_PROPERTY, dataContext);
+		return loadWithOptions(stream, file, options);
+	}
+
+	public IUIResource loadAsResource(InputStream stream, URL input)
+			throws Exception {
+		return loadAsResource(stream, input, null);
+	}
+
+	public IUIResource loadAsResource(InputStream stream, URL input,
+			IBeforeParsingCallback parsingCallback) throws Exception {
+		return getCurrentCore().loadAsResource(stream, input, parsingCallback);
+	}
+
+	public IUIResource loadAsResource(URL input) throws Exception {
+		return loadAsResource(null, input, null);
+	}
+
+	public IUIResource loadAsResource(URL input,
+			IBeforeParsingCallback parsingCallback) throws Exception {
+		return loadAsResource(null, input, parsingCallback);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#open(java.net.URL, java.lang.Object)
+	 */
+	public void open(URL url, Object dataContext) throws Exception {
+		HashMap<String, Object> options = new HashMap<String, Object>();
+		options.put(DATACONTEXT_PROPERTY, dataContext);
+		open(url, options);
+	}
+
+	public void open(IUIResource resource, Object dataContext) throws Exception {
+		HashMap<String, Object> options = new HashMap<String, Object>();
+		options.put(DATACONTEXT_PROPERTY, dataContext);
+		open(resource, options);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#open(java.lang.Class, java.lang.Object)
+	 */
+	public void open(Class<?> type, Object dataContext) throws Exception {
+		open(type.getResource(type.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX), dataContext);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#open(java.net.URL, java.util.Map)
+	 */
+	public void open(final URL url, final Map<String, Object> options)
+			throws Exception {
+		if (SWT.getPlatform().startsWith("win")) {
+			if (Display.getCurrent() == null) {
+				new Display();
+			}
+			Realm.runWithDefault(getRealm(), new Runnable() {
+				public void run() {
+					try {
+						if (url == null) {
+							throw new XWTException("UI Resource is not found.");
+						}
+						Object element = loadWithOptions(url, options);
+						Shell shell = XWT.findShell(element);
+						if (shell == null) {
+							throw new XWTException(
+									"Root element must be a control.");
+						}
+						shell.addDisposeListener(new DisposeListener() {
+							public void widgetDisposed(DisposeEvent e) {
+								Shell[] shells = Display.getCurrent()
+										.getShells();
+								if (shells.length == 0) {
+									ResourceManager.resources.dispose();
+								}
+							}
+						});
+						shell.open();
+						while (!shell.isDisposed()) {
+							if (!shell.getDisplay().readAndDispatch())
+								shell.getDisplay().sleep();
+						}
+					} catch (Exception e) {
+						e.printStackTrace();
+					}
+				}
+			});
+			return;
+		}
+		Display defaultDisplay = Display.getDefault();
+		if (Thread.currentThread() == defaultDisplay.getThread()) {
+			Realm.runWithDefault(getRealm(), new Runnable() {
+				public void run() {
+					try {
+						if (url == null) {
+							throw new XWTException("UI Resource is not found.");
+						}
+						Object element = loadWithOptions(url, options);
+						Shell shell = XWT.findShell(element);
+						shell.open();
+						long startTime = -1;
+						while (true) {
+							if (!Display.getDefault().readAndDispatch()) {
+								Display.getDefault().sleep();
+							}
+							Shell[] shells = Display.getDefault().getShells();
+							if (shells.length == 0) {
+								if (startTime == -1) {
+									startTime = System.currentTimeMillis();
+								} else if ((System.currentTimeMillis() - startTime) > 1000) {
+									break;
+								}
+							} else {
+								startTime = -1;
+							}
+						}
+					} catch (Exception e) {
+						e.printStackTrace();
+					}
+				}
+			});
+		} else {
+			defaultDisplay.asyncExec(new Runnable() {
+				public void run() {
+					Realm.runWithDefault(getRealm(), new Runnable() {
+						public void run() {
+							try {
+								if (url == null) {
+									throw new XWTException(
+											"UI Resource is not found.");
+								}
+								Object element = loadWithOptions(url, options);
+								Shell shell = XWT.findShell(element);
+								if (shell == null) {
+									throw new XWTException(
+											"Root element must be a control.");
+								}
+								shell.open();
+							} catch (Exception e) {
+								e.printStackTrace();
+							}
+						}
+					});
+				}
+			});
+		}
+	}
+
+	public void open(final IUIResource resource,
+			final Map<String, Object> options) throws Exception {
+		if (SWT.getPlatform().startsWith("win")) {
+			if (Display.getCurrent() == null) {
+				new Display();
+			}
+			Realm.runWithDefault(getRealm(), new Runnable() {
+				public void run() {
+					try {
+						Object element = loadWithOptions(resource, options);
+						Shell shell = XWT.findShell(element);
+						if (shell == null) {
+							throw new XWTException(
+									"Root element must be a control.");
+						}
+						shell.addDisposeListener(new DisposeListener() {
+							public void widgetDisposed(DisposeEvent e) {
+								Shell[] shells = Display.getCurrent()
+										.getShells();
+								if (shells.length == 0) {
+									ResourceManager.resources.dispose();
+								}
+							}
+						});
+						shell.open();
+						while (!shell.isDisposed()) {
+							if (!shell.getDisplay().readAndDispatch())
+								shell.getDisplay().sleep();
+						}
+					} catch (Exception e) {
+						e.printStackTrace();
+					}
+				}
+			});
+			return;
+		}
+		Display defaultDisplay = Display.getDefault();
+		if (Thread.currentThread() == defaultDisplay.getThread()) {
+			Realm.runWithDefault(getRealm(), new Runnable() {
+				public void run() {
+					try {
+						Object element = loadWithOptions(resource, options);
+						Shell shell = XWT.findShell(element);
+						if (shell == null) {
+							throw new XWTException(
+									"Root element must be a control.");
+						}
+						shell.open();
+						long startTime = -1;
+						while (true) {
+							if (!Display.getDefault().readAndDispatch()) {
+								Display.getDefault().sleep();
+							}
+							Shell[] shells = Display.getDefault().getShells();
+							if (shells.length == 0) {
+								if (startTime == -1) {
+									startTime = System.currentTimeMillis();
+								} else if ((System.currentTimeMillis() - startTime) > 1000) {
+									break;
+								}
+							} else {
+								startTime = -1;
+							}
+						}
+					} catch (Exception e) {
+						e.printStackTrace();
+					}
+				}
+			});
+		} else {
+			defaultDisplay.asyncExec(new Runnable() {
+				public void run() {
+					Realm.runWithDefault(getRealm(), new Runnable() {
+						public void run() {
+							try {
+								Object element = loadWithOptions(resource,
+										options);
+								Shell shell = XWT.findShell(element);
+								if (shell == null) {
+									throw new XWTException(
+											"Root element must be a control.");
+								}
+								shell.open();
+							} catch (Exception e) {
+								e.printStackTrace();
+							}
+						}
+					});
+				}
+			});
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#convertFrom(org.eclipse.xwt.metadata
+	 * .IMetaclass, java.lang.String)
+	 */
+	public Object convertFrom(IMetaclass type, String string) {
+		Class<?> targetType = type.getType();
+		return convertFrom(targetType, string);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#convertFrom(java.lang.Class,
+	 * java.lang.String)
+	 */
+	public Object convertFrom(Class<?> targetType, String string) {
+		if (targetType == String.class) {
+			return string;
+		}
+		IConverter converter = findConvertor(String.class, targetType);
+		if (converter != null) {
+			return converter.convert(string);
+		}
+		if (targetType == Object.class) {
+			return string;
+		}
+		throw new XWTException("Converter is missing of type: "
+				+ targetType.getName() + " from String");
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#loadWithOptions(java.net.URL,
+	 * java.util.Map)
+	 */
+	public Object loadWithOptions(URL url, Map<String, Object> options)
+			throws Exception {
+		if (url == null) {
+			throw new XWTException("UI Resource is not found.");
+		}
+		Composite object = (Composite) options.get(CONTAINER_PROPERTY);
+		ILoadingContext loadingContext = (object != null ? getLoadingContext(object)
+				: getLoadingContext());
+		options = prepareOptions(options, url);
+		Object visualObject = getCurrentCore().load(loadingContext, url,
+				options);
+		return visualObject;
+	}
+
+	public Object loadWithOptions(IUIResource resource,
+			Map<String, Object> options) throws Exception {
+		UIResource uiResource = (UIResource) resource;
+		Object object = options.get(CONTAINER_PROPERTY);
+		ILoadingContext loadingContext = (object != null ? getLoadingContext(object)
+				: getLoadingContext());
+		options = prepareOptions(options, uiResource.getURL());
+		Object visualObject = getCurrentCore().load(loadingContext, resource,
+				options);
+		return visualObject;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#load(java.io.InputStream, java.net.URL)
+	 */
+	public Object load(InputStream stream, URL url) throws Exception {
+		return loadWithOptions(stream, url, Collections.EMPTY_MAP);
+	}
+
+	public Object load(IUIResource resource) throws Exception {
+		return loadWithOptions(resource, Collections.EMPTY_MAP);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#loadWithOptions(java.io.InputStream,
+	 * java.net.URL, java.util.Map)
+	 */
+	public Object loadWithOptions(InputStream stream, URL base,
+			Map<String, Object> options) throws Exception {
+		Composite object = (Composite) options.get(CONTAINER_PROPERTY);
+		ILoadingContext loadingContext = (object != null ? getLoadingContext(object)
+				: getLoadingContext());
+		options = prepareOptions(options, base);
+		Control visualObject = getCurrentCore().load(loadingContext, stream,
+				base, options);
+		return visualObject;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#getAllMetaclasses()
+	 */
+	public IMetaclass[] getAllMetaclasses() {
+		Collection<IMetaclass> collector = new ArrayList<IMetaclass>();
+		for (int i = cores.size() - 1; i >= 0; i--) {
+			Core core = cores.get(i);
+			Collection<IMetaclass> metaclasses = core
+					.getAllMetaclasses(IConstants.XWT_NAMESPACE);
+			collector.addAll(metaclasses);
+		}
+
+		return collector.toArray(new IMetaclass[collector.size()]);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#getMetaclass(java.lang.String,
+	 * java.lang.String)
+	 */
+	public IMetaclass getMetaclass(String tagName, String ns) {
+
+		for (int i = cores.size() - 1; i >= 0; i--) {
+			Core core = cores.get(i);
+			IMetaclass metaclass = core.getMetaclass(getLoadingContext(),
+					tagName, ns);
+			if (metaclass != null) {
+				return metaclass;
+			}
+		}
+		throw new XWTException("Type " + tagName + " is not found.");
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#registerMetaclass(java.lang.Class)
+	 */
+	public IMetaclass registerMetaclass(Class<?> type) {
+		return getCurrentCore().registerMetaclass(type,
+				IConstants.XWT_NAMESPACE);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#registerMetaclass(java.lang.Class)
+	 */
+	public void registerMetaclass(IMetaclass type) {
+		getCurrentCore().registerMetaclass(type, IConstants.XWT_NAMESPACE);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#registerMetaclassFactory(org.eclipse.e4
+	 * .xwt.IMetaclassFactory)
+	 */
+	public void registerMetaclassFactory(IMetaclassFactory metaclassFactory) {
+		getCurrentCore().registerMetaclassFactory(metaclassFactory);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#findConvertor(java.lang.Class,
+	 * java.lang.Class)
+	 */
+	public IConverter findConvertor(Class<?> source, Class<?> target) {
+		source = ObjectUtil.normalizedType(source);
+		target = ObjectUtil.normalizedType(target);
+		for (int i = cores.size() - 1; i >= 0; i--) {
+			Core core = cores.get(i);
+			IConverter converter = core.findConvertor(source, target);
+			if (converter != null) {
+				return converter;
+			}
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.IXWTLoader#registerConvertor(org.eclipse.core.databinding
+	 * .conversion.IConverter)
+	 */
+	public void registerConvertor(IConverter converter) {
+		getCurrentCore().registerConvertor(converter);
+	}
+
+	protected void registerConvertor(Class<?> converter, String methodName) {
+		getCurrentCore().registerConvertor(converter, methodName);
+	}
+
+	protected void registerConvertor(Class<?> converterType, String methodName,
+			boolean value) {
+		getCurrentCore().registerConvertor(converterType, methodName, value);
+	}
+
+	protected void registerConvertor(ValueConvertorRegister convertorRegister,
+			Class<?> source, Class<?> target, Class<?> converterType,
+			String methodName, boolean value) {
+		getCurrentCore().registerConvertor(convertorRegister, source, target,
+				converterType, methodName, value);
+	}
+
+	protected IConverter loadConvertor(Class<?> converter, String methodName,
+			boolean value) {
+		return getCurrentCore().loadConvertor(converter, methodName, value);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#addTracking(org.eclipse.xwt.Tracking)
+	 */
+	public void addTracking(Tracking tracking) {
+		getCurrentCore().addTracking(tracking);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#isTracking(org.eclipse.xwt.Tracking)
+	 */
+	public boolean isTracking(Tracking tracking) {
+		return getCurrentCore().isTracking(tracking);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#getTrackings()
+	 */
+	public Set<Tracking> getTrackings() {
+		return getCurrentCore().getTrackings();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#removeTracking(org.eclipse.xwt.Tracking)
+	 */
+	public void removeTracking(Tracking tracking) {
+		getCurrentCore().removeTracking(tracking);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#registerCommand(java.lang.String,
+	 * org.eclipse.xwt.input.ICommand)
+	 */
+	public void registerCommand(String name, ICommand command) {
+		getCurrentCore().registerCommand(name, command);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#getCommand(java.lang.String)
+	 */
+	public ICommand getCommand(String name) {
+		for (int i = cores.size() - 1; i >= 0; i--) {
+			Core core = cores.get(i);
+			ICommand command = core.getCommand(name);
+			if (command != null) {
+				return command;
+			}
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#getCommands()
+	 */
+	public Map<String, ICommand> getCommands() {
+		HashMap<String, ICommand> collector = new HashMap<String, ICommand>();
+		for (int i = cores.size() - 1; i >= 0; i--) {
+			Core core = cores.get(i);
+			Map<String, ICommand> map = core.getCommands();
+			if (map != null) {
+				collector.putAll(map);
+			}
+		}
+		return collector;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#unregisterCommand(java.lang.String)
+	 */
+	public void unregisterCommand(String name) {
+		getCurrentCore().unregisterCommand(name);
+	}
+
+	/**
+	 * Register a command to a name
+	 * 
+	 * @param name
+	 * @param command
+	 */
+	public void registerEventGroup(Class<?> type, IEventGroup eventGroup) {
+		IMetaclass metaclass = getMetaclass(type);
+		metaclass.addEventGroup(eventGroup);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#addDefaultStyle(org.eclipse.xwt.IStyle)
+	 */
+	public void addDefaultStyle(IStyle style) {
+		getCurrentCore().addDefaultStyle(style);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#removeDefaultStyle(org.eclipse.xwt.IStyle
+	 * )
+	 */
+	public void removeDefaultStyle(IStyle style) {
+		getCurrentCore().removeDefaultStyle(style);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#getDefaultStyles()
+	 */
+	public Collection<IStyle> getDefaultStyles() {
+		return getCurrentCore().getDefaultStyles();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#addDataProviderFactory(org.eclipse.xwt
+	 * .IDataProviderFactory)
+	 */
+	public void addDataProviderFactory(String name,
+			IDataProviderFactory dataProviderFactory) {
+		getCurrentCore().addDataProviderFactory(name, dataProviderFactory);
+		registerMetaclass(dataProviderFactory.getType());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#removeDataProviderFactory(org.eclipse.e4
+	 * .xwt.IDataProviderFactory)
+	 */
+	public void removeDataProviderFactory(String name) {
+		getCurrentCore().removeDataProviderFactory(name);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#removeDataProviderFactory(org.eclipse.e4
+	 * .xwt.IDataProviderFactory)
+	 */
+	public void removeDataProviderFactory(
+			IDataProviderFactory dataProviderFactory) {
+		getCurrentCore().removeDataProviderFactory(dataProviderFactory);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#getDataProviderFactories()
+	 */
+	public Collection<IDataProviderFactory> getDataProviderFactories() {
+		ArrayList<IDataProviderFactory> collector = new ArrayList<IDataProviderFactory>();
+		for (int i = cores.size() - 1; i >= 0; i--) {
+			Core core = cores.get(i);
+			Collection<IDataProviderFactory> factories = core
+					.getDataProviderFactories();
+			if (factories != null) {
+				collector.addAll(factories);
+			}
+		}
+		return collector;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#findDataProvider(java.lang.Object)
+	 */
+	public IDataProvider findDataProvider(Object dataContext) {
+		for (int i = cores.size() - 1; i >= 0; i--) {
+			Core core = cores.get(i);
+			IDataProvider provider = core.findDataProvider(dataContext);
+			if (provider != null) {
+				return provider;
+			}
+		}
+		return null;
+	}
+
+	private synchronized void initialize() {
+		cores = new Stack<Core>();
+		Core core = new Core(new ResourceLoaderFactory(), this);
+		cores.push(core);
+
+		core.registerService(ValueConvertorRegister.class,
+				new ValueConvertorRegister());
+
+		core.registerMetaclassManager(IConstants.XWT_NAMESPACE,
+				new MetaclassManager(null, null, this));
+		core.registerMetaclass(new BindingMetaclass(this),
+				IConstants.XWT_NAMESPACE);
+		core.registerMetaclass(new BindingMetaclass(MultiBinding.class, this),
+				IConstants.XWT_NAMESPACE);
+		core.registerMetaclass(
+				new TableEditorMetaclass(core.getMetaclass(ControlEditor.class,
+						IConstants.XWT_NAMESPACE), this),
+				IConstants.XWT_NAMESPACE);
+
+		registerConvertor(ObjectToString.FROM_OBJECT);
+		registerConvertor(DateToString.instance);
+		registerConvertor(EnumToString.instance);
+		registerConvertor(StringToInteger.instance);
+		registerConvertor(StringToChar.instance);
+		
+		// It is not supported by eclipse 3.4.1
+		registerConvertor(StringToNumberConverter.class, "toBigDecimal");
+		registerConvertor(StringToNumberConverter.class, "toBigInteger");
+		registerConvertor(StringToNumberConverter.class, "toByte", false);
+
+		registerConvertor(StringToNumberConverter.toLong(false));
+
+		// It is not supported by eclipse 3.4.1
+		registerConvertor(StringToNumberConverter.class, "toShort", false);
+
+		registerConvertor(StringToNumberConverter.toFloat(false));
+		registerConvertor(StringToNumberConverter.toDouble(false));
+
+		registerConvertor(NumberToStringConverter.fromInteger(false));
+
+		// It is not supported by eclipse 3.4.1
+		registerConvertor(NumberToStringConverter.class, "fromBigDecimal");
+		registerConvertor(NumberToStringConverter.class, "fromBigInteger");
+		registerConvertor(NumberToStringConverter.class, "fromByte", false);
+
+		registerConvertor(NumberToStringConverter.fromLong(false));
+
+		// It is not supported by eclipse 3.4.1
+		registerConvertor(NumberToStringConverter.class, "fromShort", false);
+
+		registerConvertor(NumberToStringConverter.fromFloat(false));
+		registerConvertor(NumberToStringConverter.fromDouble(false));
+
+		registerConvertor(StringToBoolean.instance);
+		registerConvertor(ObjectToBoolean.instance);
+		registerConvertor(SelectionToBoolean.instance);
+		registerConvertor(CollectionToBoolean.instance);
+		registerConvertor(CollectionToInteger.instance);
+		registerConvertor(StringToIntArray.instance);
+		registerConvertor(StringToDoubleArray.instance);
+		registerConvertor(BindingToObject.instance);
+		registerConvertor(StringToColor.instance);
+		registerConvertor(StringToFont.instance);
+		registerConvertor(StringToImage.instance);
+		registerConvertor(StringToPoint.instance);
+		registerConvertor(StringToRectangle.instance);
+		registerConvertor(StringToURL.instance);
+		registerConvertor(StringToType.instance);
+		registerConvertor(StringToFormAttachment.instance);
+		registerConvertor(StringToIValidationRule.instance);
+		registerConvertor(StringToIValueConverter.instance);
+		registerConvertor(ListToIObservableCollection.instance);
+		registerConvertor(SetToIObservableCollection.instance);
+		registerConvertor(ObjectToISelection.instance);
+		registerConvertor(ListToSet.instance);
+		registerConvertor(StringToKeyTime.instance);
+		registerConvertor(StringToKeySpline.instance);
+
+		registerConvertor(IStatusToString.instance);
+		registerConvertor(IStatusToBoolean.instance);
+
+		ValueConvertorRegister convertorRegister = (ValueConvertorRegister) core
+				.getService(ValueConvertorRegister.class);
+		convertorRegister.register(String.class, float.class,
+				StringToNumberConverter.toFloat(true));
+		convertorRegister.register(String.class, int.class,
+				StringToInteger.instance);
+
+		// It is not supported by eclipse 3.4.1
+		// convertorRegister.register(String.class, short.class,
+		// StringToNumberConverter.toShort(true));
+		registerConvertor(convertorRegister, String.class, short.class,
+				StringToNumberConverter.class, "toShort", true);
+
+		convertorRegister.register(String.class, long.class,
+				StringToNumberConverter.toLong(true));
+
+		// It is not supported by eclipse 3.4.1
+		// convertorRegister.register(String.class, byte.class,
+		// StringToNumberConverter.toByte(true));
+		registerConvertor(convertorRegister, String.class, byte.class,
+				StringToNumberConverter.class, "toByte", true);
+
+		convertorRegister.register(String.class, boolean.class,
+				StringToBoolean.instance);
+		convertorRegister.register(String.class, double.class,
+				StringToNumberConverter.toDouble(true));
+
+		convertorRegister.register(float.class, String.class,
+				NumberToStringConverter.fromFloat(true));
+		convertorRegister.register(int.class, String.class,
+				NumberToStringConverter.fromInteger(true));
+
+		// It is not supported by eclipse 3.4.1
+		// convertorRegister.register(short.class, String.class,
+		// NumberToStringConverter.fromShort(true));
+		registerConvertor(convertorRegister, short.class, String.class,
+				NumberToStringConverter.class, "fromShort", true);
+
+		convertorRegister.register(long.class, String.class,
+				NumberToStringConverter.fromLong(true));
+
+		// It is not supported by eclipse 3.4.1
+		// convertorRegister.register(byte.class, String.class,
+		// NumberToStringConverter.fromByte(true));
+		registerConvertor(convertorRegister, byte.class, String.class,
+				NumberToStringConverter.class, "fromByte", true);
+
+		convertorRegister.register(double.class, String.class,
+				NumberToStringConverter.fromDouble(true));
+
+		Class<?> type = org.eclipse.swt.widgets.Widget.class;
+		IMetaclass metaclass = (IMetaclass) registerMetaclass(type);
+		IProperty drawingProperty = new AbstractProperty(
+				IUserDataConstants.XWT_DRAWING_KEY, Drawing.class) {
+			public void setValue(Object target, Object value)
+					throws IllegalArgumentException, IllegalAccessException,
+					InvocationTargetException, SecurityException,
+					NoSuchFieldException {
+				if (!ObjectUtil.isAssignableFrom(IBinding.class, getType())) {
+					if (value != null) {
+						value = ObjectUtil
+								.resolveValue(value, getType(), value);
+					}
+				}
+			}
+
+			public Object getValue(Object target)
+					throws IllegalArgumentException, IllegalAccessException,
+					InvocationTargetException, SecurityException,
+					NoSuchFieldException {
+				return null;
+			}
+		};
+		metaclass.addProperty(drawingProperty);
+		IProperty dataContextProperty = new DataProperty(
+				IConstants.XAML_DATA_CONTEXT,
+				IUserDataConstants.XWT_DATACONTEXT_KEY);
+		metaclass.addProperty(dataContextProperty);
+		ILoadingType loadingType = new DefaultLoadingType(
+				IValueLoading.PostChildren,
+				new IProperty[] { dataContextProperty });
+
+		metaclass.addProperty(new DataProperty(IConstants.XAML_BINDING_CONTEXT,
+				IUserDataConstants.XWT_BINDING_CONTEXT_KEY));
+		metaclass.addProperty(new TriggersProperty(loadingType));
+		metaclass.addProperty(new StyleProperty());
+		registerEventGroup(type, new RadioEventGroup(IEventConstants.KEY_GROUP));
+		registerEventGroup(type, new RadioEventGroup(
+				IEventConstants.MOUSE_GROUP));
+		registerEventGroup(type, new RadioEventGroup(
+				IEventConstants.MOUSE_MOVING_GROUP));
+		registerEventGroup(type, new RadioEventGroup(
+				IEventConstants.FOCUS_GROUP));
+		registerEventGroup(type, new RadioEventGroup(
+				IEventConstants.EXPAND_GROUP));
+		registerEventGroup(type, new RadioEventGroup(
+				IEventConstants.WINDOW_GROUP));
+		registerEventGroup(type, new RadioEventGroup(
+				IEventConstants.ACTIVATION_GROUP));
+		registerEventGroup(type, new RadioEventGroup(IEventConstants.HARD_KEY));
+		type = org.eclipse.swt.browser.Browser.class;
+		IMetaclass browserMetaclass = (IMetaclass) registerMetaclass(type);
+
+		browserMetaclass.addProperty(new DynamicProperty(type, String.class,
+				PropertiesConstants.PROPERTY_URL, loadingType));
+		browserMetaclass.addProperty(new DynamicProperty(type, String.class,
+				PropertiesConstants.PROPERTY_TEXT, loadingType));
+
+		IMetaclass buttonMetaclass = (IMetaclass) registerMetaclass(Button.class);
+		buttonMetaclass.addProperty(new DataProperty(IConstants.XAML_COMMAND,
+				IUserDataConstants.XWT_COMMAND_KEY, ICommand.class));
+
+		registerMetaclass(org.eclipse.swt.widgets.Canvas.class);
+		registerMetaclass(org.eclipse.swt.widgets.Caret.class);
+		metaclass = registerMetaclass(org.eclipse.swt.widgets.Combo.class);
+		if (metaclass != null) {
+			IProperty property = metaclass.findProperty("text");
+			IProperty inputProperty = new DelegateProperty(property,
+					loadingType);
+			metaclass.addProperty(inputProperty);
+		}
+
+		registerMetaclass(org.eclipse.swt.widgets.Composite.class);
+		registerMetaclass(org.eclipse.swt.widgets.CoolBar.class);
+		registerMetaclass(org.eclipse.swt.widgets.CoolItem.class);
+		
+		IMetaclass dateTimeMetaclass =  registerMetaclass(org.eclipse.swt.widgets.DateTime.class);
+	    dateTimeMetaclass.addProperty(new DataProperty("selection", "selection", Date.class));
+	    
+		registerMetaclass(org.eclipse.swt.widgets.Decorations.class);
+		registerMetaclass(org.eclipse.swt.widgets.ExpandBar.class);
+		IMetaclass expandItemMetaclass = registerMetaclass(ExpandItem.class);
+		expandItemMetaclass.findProperty("control").addSetPostAction(
+				new ExpandItemHeightAction());
+
+		registerMetaclass(Group.class);
+		registerMetaclass(IME.class);
+		registerMetaclass(Label.class);
+		registerMetaclass(Link.class);
+		registerMetaclass(Listener.class);
+		registerMetaclass(List.class);
+		registerMetaclass(Menu.class);
+		IMetaclass menuItemMetaclass = (IMetaclass) registerMetaclass(MenuItem.class);
+		menuItemMetaclass.addProperty(new DataProperty(IConstants.XAML_COMMAND,
+				IUserDataConstants.XWT_COMMAND_KEY, ICommand.class));
+
+		registerMetaclass(org.eclipse.swt.widgets.MessageBox.class);
+		registerMetaclass(org.eclipse.swt.widgets.ProgressBar.class);
+		registerMetaclass(org.eclipse.swt.widgets.Sash.class);
+
+		registerMetaclass(org.eclipse.swt.widgets.Scale.class);
+		registerMetaclass(org.eclipse.swt.widgets.ScrollBar.class);
+		registerMetaclass(org.eclipse.swt.widgets.Shell.class);
+		registerMetaclass(org.eclipse.swt.widgets.Slider.class);
+		registerMetaclass(org.eclipse.swt.widgets.Spinner.class);
+		registerMetaclass(org.eclipse.swt.widgets.TabFolder.class);
+		registerMetaclass(org.eclipse.swt.widgets.TabItem.class);
+
+		registerMetaclass(org.eclipse.swt.widgets.Table.class);
+		type = org.eclipse.swt.widgets.TableItem.class;
+		metaclass = (IMetaclass) registerMetaclass(type);
+		metaclass.addProperty(new TableItemProperty());
+		metaclass.addProperty(new TableItemEditorProperty());
+		metaclass.addProperty(new DynamicBeanProperty(TableItem.class,
+				String[].class, PropertiesConstants.PROPERTY_TEXTS,
+				PropertiesConstants.PROPERTY_TEXT));
+
+		registerMetaclass(TableItemProperty.Cell.class);
+		registerMetaclass(ControlEditor.class);
+		registerMetaclass(TableEditor.class);
+
+		IMetaclass TableEditorMetaclass = core.getMetaclass(TableEditor.class,
+				IConstants.XWT_NAMESPACE);
+		TableEditorMetaclass.addProperty(new TableEditorDynamicProperty(
+				loadingType));
+
+		type = org.eclipse.swt.widgets.TableColumn.class;
+		metaclass = (IMetaclass) registerMetaclass(type);
+		metaclass.addProperty(new TableColumnEditorProperty());
+
+		registerMetaclass(org.eclipse.swt.widgets.Text.class);
+		registerMetaclass(org.eclipse.swt.widgets.ToolBar.class);
+		registerMetaclass(org.eclipse.swt.widgets.ToolItem.class);
+		registerMetaclass(org.eclipse.swt.widgets.ToolTip.class);
+		registerMetaclass(org.eclipse.swt.widgets.Tracker.class);
+		registerMetaclass(org.eclipse.swt.widgets.Tray.class);
+		registerMetaclass(org.eclipse.swt.widgets.Tree.class);
+		registerMetaclass(org.eclipse.swt.widgets.TreeColumn.class);
+		type = org.eclipse.swt.widgets.TreeItem.class;
+		registerMetaclass(type);
+		metaclass = (IMetaclass) registerMetaclass(type);
+		metaclass.addProperty(new DynamicBeanProperty(TreeItem.class,
+				String[].class, PropertiesConstants.PROPERTY_TEXTS,
+				PropertiesConstants.PROPERTY_TEXT));
+		if (metaclass != null) {
+			IProperty property = metaclass.findProperty("expanded");
+			IProperty expandedProperty = new DelegateProperty(property,
+					loadingType);
+			metaclass.addProperty(expandedProperty);
+		}
+
+		// registerMetaclass(org.eclipse.swt.layout.FillData.class);
+		registerMetaclass(org.eclipse.swt.layout.FillLayout.class);
+		registerMetaclass(org.eclipse.swt.layout.FormAttachment.class);
+		registerMetaclass(org.eclipse.swt.layout.FormData.class);
+		registerMetaclass(org.eclipse.swt.layout.FormLayout.class);
+		registerMetaclass(org.eclipse.swt.layout.GridData.class);
+		registerMetaclass(org.eclipse.swt.layout.GridLayout.class);
+		registerMetaclass(org.eclipse.swt.layout.RowData.class);
+		registerMetaclass(org.eclipse.swt.layout.RowLayout.class);
+		registerMetaclass(org.eclipse.swt.custom.StackLayout.class);
+
+		registerMetaclass(org.eclipse.swt.custom.CLabel.class);
+		metaclass = registerMetaclass(org.eclipse.swt.custom.CCombo.class);
+		if (metaclass != null) {
+			IProperty property = metaclass.findProperty("text");
+			IProperty inputProperty = new DelegateProperty(property,
+					loadingType);
+			metaclass.addProperty(inputProperty);
+		}
+		registerMetaclass(org.eclipse.swt.custom.CTabFolder.class);
+		registerMetaclass(org.eclipse.swt.custom.CTabItem.class);
+		metaclass = registerMetaclass(org.eclipse.swt.custom.SashForm.class);
+		if (metaclass != null) {
+			IProperty property = metaclass.findProperty("weights");
+			IProperty inputProperty = new DelegateProperty(property,
+					loadingType);
+			metaclass.addProperty(inputProperty);
+		}
+
+		registerMetaclass(org.eclipse.swt.custom.StyledText.class);
+		registerMetaclass(org.eclipse.swt.custom.ScrolledComposite.class);
+		registerMetaclass(org.eclipse.swt.custom.ViewForm.class);
+		registerMetaclass(org.eclipse.swt.custom.CBanner.class);
+		registerMetaclass(org.eclipse.swt.custom.TableCursor.class);
+
+		type = org.eclipse.jface.viewers.Viewer.class;
+		metaclass = (IMetaclass) core.getMetaclass(type,
+				IConstants.XWT_NAMESPACE);
+		if (metaclass != null) {
+			IProperty property = metaclass.findProperty("Input");
+			IProperty inputProperty = new InputBeanProperty(property,
+					loadingType);
+			metaclass.addProperty(inputProperty);
+			metaclass.addProperty(new DataProperty(
+					IConstants.XAML_DATA_CONTEXT,
+					IUserDataConstants.XWT_DATACONTEXT_KEY));
+
+			metaclass.removeProperty("selection");
+
+			metaclass.addProperty(new DataProperty(
+					PropertiesConstants.PROPERTY_BINDING_PATH,
+					IUserDataConstants.XWT_PROPERTY_DATA_KEY, String.class));
+			metaclass.addProperty(new DataProperty(
+					PropertiesConstants.PROPERTY_ITEM_TEXT,
+					IUserDataConstants.XWT_PROPERTY_ITEM_TEXT_KEY,
+					IBinding.class));
+			metaclass.addProperty(new DataProperty(
+					PropertiesConstants.PROPERTY_ITEM_IMAGE,
+					IUserDataConstants.XWT_PROPERTY_ITEM_IMAGE_KEY,
+					IBinding.class));
+			ILoadingType inputLoadingType = new DefaultLoadingType(
+					IValueLoading.PostChildren,
+					new IProperty[] { inputProperty });
+			metaclass.addProperty(new SingleSelectionBeanProperty(
+					PropertiesConstants.PROPERTY_SINGLE_SELECTION,
+					inputLoadingType));
+			metaclass.addProperty(new MultiSelectionBeanProperty(
+					PropertiesConstants.PROPERTY_MULTI_SELECTION,
+					inputLoadingType));
+		}
+
+		type = org.eclipse.jface.viewers.AbstractListViewer.class;
+		metaclass = (IMetaclass) core.getMetaclass(type,
+				IConstants.XWT_NAMESPACE);
+		if (metaclass != null) {
+			metaclass.addInitializer(new JFaceInitializer());
+		}
+
+		type = org.eclipse.jface.viewers.ColumnViewer.class;
+		metaclass = (IMetaclass) core.getMetaclass(type,
+				IConstants.XWT_NAMESPACE);
+		if (metaclass != null) {
+			metaclass.addProperty(new DynamicBeanProperty(type, String[].class,
+					PropertiesConstants.PROPERTY_COLUMN_PROPERTIES));
+			metaclass.addProperty(new ColumnViewerColumnsProperty());
+
+			metaclass.addInitializer(new JFaceInitializer());
+		}
+
+		for (Class<?> cls : JFacesHelper.getSupportedElements()) {
+			registerMetaclass(cls);
+		}
+		type = org.eclipse.jface.viewers.TableViewer.class;
+		metaclass = (IMetaclass) core.getMetaclass(type,
+				IConstants.XWT_NAMESPACE);
+		IProperty property = metaclass.findProperty("table");
+		if (property instanceof AbstractProperty) {
+			AbstractProperty abstractProperty = (AbstractProperty) property;
+			abstractProperty.setValueAsParent(true);
+		}
+
+		core.registerMetaclass(
+				new ComboBoxCellEditorMetaclass(core.getMetaclass(
+						ComboBoxCellEditor.class.getSuperclass(),
+						IConstants.XWT_NAMESPACE), this),
+				IConstants.XWT_NAMESPACE);
+
+		type = org.eclipse.jface.viewers.TableViewerColumn.class;
+		core.registerMetaclass(
+				new TableViewerColumnMetaClass(core.getMetaclass(
+						type.getSuperclass(), IConstants.XWT_NAMESPACE), this),
+				IConstants.XWT_NAMESPACE);
+
+		metaclass = (IMetaclass) core.getMetaclass(type,
+				IConstants.XWT_NAMESPACE);
+		//
+		// PROPERTY_DATA_KEY
+		//
+		metaclass.addProperty(new TableViewerColumnWidthProperty());
+		metaclass.addProperty(new TableViewerColumnTextProperty());
+		metaclass.addProperty(new TableViewerColumnImageProperty());
+		metaclass.addProperty(new TableViewerColumnDynamicProperty(
+				PropertiesConstants.PROPERTY_BINDING_PATH,
+				IUserDataConstants.XWT_PROPERTY_DATA_KEY, String.class));
+		metaclass.addProperty(new TableViewerColumnDynamicProperty(
+				PropertiesConstants.PROPERTY_ITEM_TEXT,
+				IUserDataConstants.XWT_PROPERTY_ITEM_TEXT_KEY, IBinding.class));
+		metaclass
+				.addProperty(new TableViewerColumnDynamicProperty(
+						PropertiesConstants.PROPERTY_ITEM_IMAGE,
+						IUserDataConstants.XWT_PROPERTY_ITEM_IMAGE_KEY,
+						IBinding.class));
+
+		registerMetaclass(DefaultCellModifier.class);
+		registerMetaclass(ViewerFilter.class);
+
+		// DataBinding stuff
+		registerMetaclass(BindingContext.class);
+
+		registerMetaclass(ObjectDataProvider.class);
+
+		registerMetaclass(Style.class);
+		registerMetaclass(Setter.class);
+
+		registerMetaclass(Trigger.class);
+		registerMetaclass(MultiTrigger.class);
+		registerMetaclass(EventTrigger.class);
+		registerMetaclass(DataTrigger.class);
+		registerMetaclass(MultiDataTrigger.class);
+		registerMetaclass(Condition.class);
+
+		registerMetaclass(ValidationStatus.class);
+		// Animation
+		registerMetaclass(Storyboard.class);
+		registerMetaclass(BeginStoryboard.class);
+		registerMetaclass(StopStoryboard.class);
+		registerMetaclass(PauseStoryboard.class);
+		registerMetaclass(ResumeStoryboard.class);
+		registerMetaclass(IntAnimation.class);
+		registerMetaclass(FloatAnimation.class);
+		registerMetaclass(DoubleAnimation.class);
+		registerMetaclass(ColorAnimation.class);
+		registerMetaclass(PointAnimation.class);
+		registerMetaclass(RectangleAnimation.class);
+		registerMetaclass(SizeAnimation.class);
+
+		try {
+			Class.forName("org.pushingpixels.trident.Timeline");
+			registerMetaclass(BackEase.class);
+			registerMetaclass(BounceEase.class);
+			registerMetaclass(CircleEase.class);
+			registerMetaclass(CubicEase.class);
+			registerMetaclass(ElasticEase.class);
+			registerMetaclass(ExponentialEase.class);
+			registerMetaclass(PowerEase.class);
+			registerMetaclass(QuadraticEase.class);
+			registerMetaclass(QuarticEase.class);
+			registerMetaclass(QuinticEase.class);
+			registerMetaclass(SineEase.class);
+		} catch (ClassNotFoundException e) {
+		}
+
+		registerConvertor(StringToDuration.instance);
+		registerConvertor(StringToTimeSpan.instance);
+		registerConvertor(StringToRepeatBehavior.instance);
+
+		registerMetaclass(CollectionViewSource.class);
+
+		registerMetaclass(ObservableListContentProvider.class);
+		registerMetaclass(ObservableSetContentProvider.class);
+		registerMetaclass(ObservableTreeContentProvider.class);
+
+		registerFileResolveType(Image.class);
+		registerFileResolveType(URL.class);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#findLoadingContext(java.lang.Object)
+	 */
+	public ILoadingContext findLoadingContext(Object container) {
+		for (int i = cores.size() - 1; i >= 0; i--) {
+			Core core = cores.get(i);
+			ILoadingContext context = core.findLoadingContext(container);
+			if (context != null) {
+				return context;
+			}
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#getLoadingContext(org.eclipse.swt.widgets
+	 * .Composite)
+	 */
+	public ILoadingContext getLoadingContext(Object object) {
+		return findLoadingContext(object);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#getLoadingContext()
+	 */
+	public ILoadingContext getLoadingContext() {
+		return getCurrentCore().getLoadingContext();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.IXWTLoader#setLoadingContext(org.eclipse.xwt.
+	 * ILoadingContext)
+	 */
+	public void setLoadingContext(ILoadingContext loadingContext) {
+		getCurrentCore().setLoadingContext(loadingContext);
+	}
+
+	/**
+	 * Check if the value of a property is to resolve.
+	 * 
+	 * @param type
+	 *            type of property
+	 * @return
+	 */
+	public boolean isFileResolveType(Class<?> type) {
+		return getCurrentCore().isFileResolveType(type);
+	}
+
+	/**
+	 * Register the value of a property is to resolve.
+	 * 
+	 * @param type
+	 *            type of property
+	 * @return
+	 */
+	public void registerFileResolveType(Class<?> type) {
+		getCurrentCore().registerFileResolveType(type);
+	}
+
+	/**
+	 * Register the value of a property is to resolve.
+	 * 
+	 * @param type
+	 *            type of property
+	 * @return
+	 */
+	public void unregisterFileResolveType(Class<?> type) {
+		getCurrentCore().unregisterFileResolveType(type);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/XWTLoaderManager.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/XWTLoaderManager.java
new file mode 100644
index 0000000..7a734da
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/XWTLoaderManager.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *     Anyware-tech - add multiple loaders
+ *******************************************************************************/
+package org.eclipse.xwt;
+
+/**
+ * Class allowing to keep the reference on the XWT loader active
+ */
+public class XWTLoaderManager {
+	/** Default XWT loader */
+	private static IXWTLoader defaultXWTLoader;
+
+	/** Active XWT loader */
+	private static IXWTLoader activeXWTLoader;
+
+	/**
+	 * Returns the default instance of the XWT loader
+	 * 
+	 * @return the default instance of the XWT loader
+	 */
+	public static IXWTLoader getDefault() {
+		if (defaultXWTLoader == null) {
+			defaultXWTLoader = new XWTLoader();
+			XWT.runInitializers(defaultXWTLoader);			
+		}
+		return defaultXWTLoader;
+	}
+
+	public static boolean isStarted() {
+		return defaultXWTLoader != null;
+	}
+
+	/**
+	 * Returns the instance of the XWT loader active. If no XWT loader are active, returns the default XWT loader
+	 * 
+	 * @return the instance of the XWT loader active
+	 */
+	public static IXWTLoader getActive() {
+		IXWTLoader xwtLoader = activeXWTLoader;
+		if (xwtLoader == null) {
+			xwtLoader = getDefault();
+		}
+		return xwtLoader;
+	}
+
+	/**
+	 * Sets the active XWT loader
+	 * 
+	 * @param xwtLoader
+	 *            the XWT loader
+	 * @param active
+	 *            true if the XWT loader is active, otherwise false
+	 */
+	public static void setActive(IXWTLoader xwtLoader, boolean active) {
+		if (active) {
+			activeXWTLoader = xwtLoader;
+		} else if (xwtLoader != null && xwtLoader.equals(activeXWTLoader)) {
+			activeXWTLoader = null;
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/XWTMaps.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/XWTMaps.java
new file mode 100644
index 0000000..eb51c65
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/XWTMaps.java
@@ -0,0 +1,693 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.xwt;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.swt.SWT;
+
+/**
+ * @author jliu
+ */
+public class XWTMaps {
+	private static final Map<String, Integer> styles = new HashMap<String, Integer>();
+	private static final Map<String, Integer> colors = new HashMap<String, Integer>();
+	private static final Map<String, Integer> events = new HashMap<String, Integer>();
+	private static final Map<String, Integer> accelerators = new HashMap<String, Integer>();
+
+	private XWTMaps() {
+	}
+
+	private static void checkAndInit() {
+		if (styles.isEmpty() || colors.isEmpty() || events.isEmpty() || accelerators.isEmpty()) {
+			init();
+		}
+	}
+
+	private static void init() {
+		// styles
+		styles.put("SWT.NONE", SWT.NONE);
+		styles.put("SWT.FILL", SWT.FILL);
+		styles.put("SWT.BORDER", SWT.BORDER);
+		styles.put("SWT.PUSH", SWT.PUSH);
+		styles.put("SWT.CHECK", SWT.CHECK);
+		styles.put("SWT.RADIO", SWT.RADIO);
+		styles.put("SWT.TOGGLE", SWT.TOGGLE);
+		styles.put("SWT.ARROW", SWT.ARROW);
+		styles.put("SWT.ARROW_DOWN", SWT.ARROW_DOWN);
+		styles.put("SWT.ARROW_LEFT", SWT.ARROW_LEFT);
+		styles.put("SWT.ARROW_RIGHT", SWT.ARROW_RIGHT);
+		styles.put("SWT.ARROW_UP", SWT.ARROW_UP);
+		styles.put("SWT.FLAT", SWT.FLAT);
+		styles.put("SWT.DROP_DOWN", SWT.DROP_DOWN);
+		styles.put("SWT.SIMPLE", SWT.SIMPLE);
+		styles.put("SWT.READ_ONLY", SWT.READ_ONLY);
+		styles.put("SWT.LEFT", SWT.LEFT);
+		styles.put("SWT.UP", SWT.UP);
+		styles.put("SWT.DOWN", SWT.DOWN);
+		styles.put("SWT.CENTER", SWT.CENTER);
+		styles.put("SWT.RIGHT", SWT.RIGHT);
+		styles.put("SWT.H_SCROLL", SWT.H_SCROLL);
+		styles.put("SWT.V_SCROLL", SWT.V_SCROLL);
+		styles.put("SWT.DATE", SWT.DATE);
+		styles.put("SWT.TIME", SWT.TIME);
+		styles.put("SWT.CALENDAR", SWT.CALENDAR);
+		styles.put("SWT.SHORT", SWT.SHORT);
+		styles.put("SWT.MEDIUM", SWT.MEDIUM);
+		styles.put("SWT.LONG", SWT.LONG);
+		styles.put("SWT.WRAP", SWT.WRAP);
+		styles.put("SWT.HORIZONTAL", SWT.HORIZONTAL);
+		styles.put("SWT.VERTICAL", SWT.VERTICAL);
+		styles.put("SWT.SEPARATOR", SWT.SEPARATOR);
+		styles.put("SWT.SHADOW_IN", SWT.SHADOW_IN);
+		styles.put("SWT.SHADOW_NONE", SWT.SHADOW_NONE);
+		styles.put("SWT.SHADOW_OUT", SWT.SHADOW_OUT);
+		styles.put("SWT.NO_TRIM", SWT.NO_TRIM);
+		styles.put("SWT.SHELL_TRIM", SWT.SHELL_TRIM);
+		styles.put("SWT.DIALOG_TRIM", SWT.DIALOG_TRIM);
+		
+		styles.put("SWT.CLOSE", SWT.CLOSE);
+		styles.put("SWT.MIN", SWT.MIN);
+		styles.put("SWT.MAX", SWT.MAX);
+		styles.put("SWT.RESIZE", SWT.RESIZE);
+		styles.put("SWT.TOOL", SWT.TOOL);
+		styles.put("SWT.ON_TOP", SWT.ON_TOP);
+		styles.put("SWT.MODELESS", SWT.MODELESS);
+		styles.put("SWT.PRIMARY_MODAL", SWT.PRIMARY_MODAL);
+		styles.put("SWT.APPLICATION_MODAL", SWT.APPLICATION_MODAL);
+		styles.put("SWT.SYSTEM_MODAL", SWT.SYSTEM_MODAL);
+		styles.put("SWT.TITLE", SWT.TITLE);
+		styles.put("SWT.SINGLE", SWT.SINGLE);
+		styles.put("SWT.MULTI", SWT.MULTI);
+		styles.put("SWT.PASSWORD", SWT.PASSWORD);
+		styles.put("SWT.SEARCH", SWT.SEARCH);
+		styles.put("SWT.CANCEL", SWT.CANCEL);
+		// styles: icon
+		tryPut(styles,"SWT.ICON");
+		styles.put("SWT.ICON_ERROR", SWT.ICON_ERROR);
+		styles.put("SWT.ICON_INFORMATION", SWT.ICON_INFORMATION);
+		styles.put("SWT.ICON_QUESTION", SWT.ICON_QUESTION);
+		styles.put("SWT.ICON_WARNING", SWT.ICON_WARNING);
+		styles.put("SWT.ICON_WORKING", SWT.ICON_WORKING);
+		tryPut(styles,"SWT.SHADOW_ETCHED_IN");
+		tryPut(styles,"SWT.SHADOW_ETCHED_OUT");
+		tryPut(styles,"SWT.BALLOON");
+		tryPut(styles,"SWT.NO_BACKGROUND");
+		styles.put("SWT.NO_FOCUS", SWT.NO_FOCUS);
+		tryPut(styles,"SWT.NO_MERGE_PAINTS");
+		tryPut(styles,"SWT.NO_REDRAW_RESIZE");
+		styles.put("SWT.DOUBLE_BUFFERED", SWT.DOUBLE_BUFFERED);
+		styles.put("SWT.SMOOTH", SWT.SMOOTH);
+		styles.put("SWT.INDETERMINATE", SWT.INDETERMINATE);
+		styles.put("SWT.FULL_SELECTION", SWT.FULL_SELECTION);
+		styles.put("SWT.TOP", SWT.TOP);
+		styles.put("SWT.BOTTOM", SWT.BOTTOM);
+		styles.put("SWT.NORMAL", SWT.NORMAL);
+		styles.put("SWT.ITALIC", SWT.ITALIC);
+		styles.put("SWT.BOLD", SWT.BOLD);
+		styles.put("SWT.LEFT_TO_RIGHT", SWT.LEFT_TO_RIGHT);
+		tryPut(styles,"SWT.RIGHT_TO_LEFT");
+		styles.put("SWT.BAR", SWT.BAR);
+		styles.put("SWT.CASCADE", SWT.CASCADE);
+		tryPut(styles,"SWT.NO_RADIO_GROUP");
+		styles.put("SWT.POP_UP", SWT.POP_UP);
+		styles.put("SWT.INHERIT_DEFAULT", SWT.INHERIT_DEFAULT);
+		styles.put("SWT.INHERIT_NONE", SWT.INHERIT_NONE);
+		styles.put("SWT.INHERIT_FORCE", SWT.INHERIT_FORCE);
+
+		// colors
+		colors.put("SWT.COLOR_BLACK", SWT.COLOR_BLACK);
+		colors.put("SWT.COLOR_BLUE", SWT.COLOR_BLUE);
+		colors.put("SWT.COLOR_CYAN", SWT.COLOR_CYAN);
+		colors.put("SWT.COLOR_DARK_BLUE", SWT.COLOR_DARK_BLUE);
+		colors.put("SWT.COLOR_DARK_CYAN", SWT.COLOR_DARK_CYAN);
+		colors.put("SWT.COLOR_DARK_GREEN", SWT.COLOR_DARK_GREEN);
+		colors.put("SWT.COLOR_DARK_MAGENTA", SWT.COLOR_DARK_MAGENTA);
+		colors.put("SWT.COLOR_DARK_RED", SWT.COLOR_DARK_RED);
+		colors.put("SWT.COLOR_DARK_YELLOW", SWT.COLOR_DARK_YELLOW);
+		colors.put("SWT.COLOR_GRAY", SWT.COLOR_GRAY);
+		colors.put("SWT.COLOR_GREEN", SWT.COLOR_GREEN);
+		colors.put("SWT.COLOR_INFO_BACKGROUND", SWT.COLOR_INFO_BACKGROUND);
+		colors.put("SWT.COLOR_INFO_FOREGROUND", SWT.COLOR_INFO_FOREGROUND);
+		colors.put("SWT.COLOR_LIST_BACKGROUND", SWT.COLOR_LIST_BACKGROUND);
+		colors.put("SWT.COLOR_LIST_FOREGROUND", SWT.COLOR_LIST_FOREGROUND);
+		colors.put("SWT.COLOR_LIST_SELECTION", SWT.COLOR_LIST_SELECTION);
+		colors.put("SWT.COLOR_LIST_SELECTION_TEXT", SWT.COLOR_LIST_SELECTION_TEXT);
+		colors.put("SWT.COLOR_MAGENTA", SWT.COLOR_MAGENTA);
+		colors.put("SWT.COLOR_RED", SWT.COLOR_RED);
+		colors.put("SWT.COLOR_TITLE_BACKGROUND", SWT.COLOR_TITLE_BACKGROUND);
+		colors.put("SWT.COLOR_TITLE_BACKGROUND_GRADIENT", SWT.COLOR_TITLE_BACKGROUND_GRADIENT);
+		colors.put("SWT.COLOR_TITLE_FOREGROUND", SWT.COLOR_TITLE_FOREGROUND);
+		colors.put("SWT.COLOR_TITLE_INACTIVE_BACKGROUND", SWT.COLOR_TITLE_INACTIVE_BACKGROUND);
+		colors.put("SWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT", SWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT);
+		colors.put("SWT.COLOR_TITLE_INACTIVE_FOREGROUND", SWT.COLOR_TITLE_INACTIVE_FOREGROUND);
+		colors.put("SWT.COLOR_WHITE", SWT.COLOR_WHITE);
+		colors.put("SWT.COLOR_WIDGET_BACKGROUND", SWT.COLOR_WIDGET_BACKGROUND);
+		colors.put("SWT.COLOR_WIDGET_BORDER", SWT.COLOR_WIDGET_BORDER);
+		colors.put("SWT.COLOR_WIDGET_DARK_SHADOW", SWT.COLOR_WIDGET_DARK_SHADOW);
+		colors.put("SWT.COLOR_WIDGET_FOREGROUND", SWT.COLOR_WIDGET_FOREGROUND);
+		colors.put("SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW", SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW);
+		colors.put("SWT.COLOR_WIDGET_LIGHT_SHADOW", SWT.COLOR_WIDGET_LIGHT_SHADOW);
+		colors.put("SWT.COLOR_WIDGET_NORMAL_SHADOW", SWT.COLOR_WIDGET_NORMAL_SHADOW);
+		colors.put("SWT.COLOR_YELLOW", SWT.COLOR_YELLOW);
+
+		// Events
+		events.put("swt.activate", SWT.Activate);
+		events.put("swt.arm", SWT.Arm);
+		events.put("swt.close", SWT.Close);
+		events.put("swt.collapse", SWT.Collapse);
+		events.put("swt.deactivate", SWT.Deactivate);
+		events.put("swt.defaultselection", SWT.DefaultSelection);
+		tryPut(events, "swt.deiconify", "SWT.Deiconify");
+		events.put("swt.dispose", SWT.Dispose);
+		events.put("swt.dragdetect", SWT.DragDetect);
+		tryPut(events, "swt.eraseitem", "SWT.EraseItem");
+		events.put("swt.expand", SWT.Expand);
+		events.put("swt.focusin", SWT.FocusIn);
+		events.put("swt.focusout", SWT.FocusOut);
+		tryPut(events, "swt.hardkeydown", "SWT.HardKeyDown");
+		tryPut(events, "swt.hardkeyup", "SWT.HardKeyUp");
+		events.put("swt.help", SWT.Help);
+		events.put("swt.hide", SWT.Hide);
+		tryPut(events, "swt.iconify", "SWT.Iconify");
+		events.put("swt.keydown", SWT.KeyDown);
+		events.put("swt.keyup", SWT.KeyUp);
+		tryPut(events, "swt.measureitem", "SWT.MeasureItem");
+		events.put("swt.menudetect", SWT.MenuDetect);
+		events.put("swt.modify", SWT.Modify);
+		events.put("swt.mousedoubleclick", SWT.MouseDoubleClick);
+		events.put("swt.mousedown", SWT.MouseDown);
+		tryPut(events, "swt.mouseenter", "SWT.MouseEnter");
+		tryPut(events, "swt.mouseexit", "SWT.MouseExit");
+		tryPut(events, "swt.mousehover", "SWT.MouseHover");
+		tryPut(events, "swt.mousemove", "SWT.MouseMove");
+		events.put("swt.mouseup", SWT.MouseUp);
+		tryPut(events, "swt.mousewheel", "SWT.MouseWheel");
+		events.put("swt.move", SWT.Move);
+		tryPut(events, "swt.paint", "SWT.Paint");
+		tryPut(events, "swt.paintitem", "SWT.PaintItem");
+		events.put("swt.resize", SWT.Resize);
+		events.put("swt.selection", SWT.Selection);
+		events.put("swt.setdata", SWT.SetData);
+		tryPut(events, "swt.settings", "SWT.Settings");
+		events.put("swt.show", SWT.Show);
+		events.put("swt.traverse", SWT.Traverse);
+		events.put("swt.verify", SWT.Verify);
+		tryPut(events, "swt.imecomposition", "SWT.ImeComposition");
+
+		// accelerators
+		accelerators.put("SWT.ALT", SWT.ALT);
+		accelerators.put("SWT.ARROW_UP", SWT.ARROW_UP);
+		accelerators.put("SWT.ARROW_DOWN", SWT.ARROW_DOWN);
+		accelerators.put("SWT.ARROW_LEFT", SWT.ARROW_LEFT);
+		accelerators.put("SWT.ARROW_RIGHT", SWT.ARROW_RIGHT);
+		accelerators.put("SWT.BREAK", SWT.BREAK);
+		accelerators.put("SWT.CAPS_LOCK", SWT.CAPS_LOCK);
+		accelerators.put("SWT.CENTER", SWT.CENTER);
+		accelerators.put("SWT.CTRL", SWT.CTRL);
+		accelerators.put("SWT.DEFAULT", SWT.DEFAULT);
+		tryPut(accelerators,"SWT.EMBEDDED");
+		accelerators.put("SWT.END", SWT.END);
+		accelerators.put("SWT.F1", SWT.F1);
+		accelerators.put("SWT.F2", SWT.F2);
+		accelerators.put("SWT.F3", SWT.F3);
+		accelerators.put("SWT.F4", SWT.F4);
+		accelerators.put("SWT.F5", SWT.F5);
+		accelerators.put("SWT.F6", SWT.F6);
+		accelerators.put("SWT.F7", SWT.F7);
+		accelerators.put("SWT.F8", SWT.F8);
+		accelerators.put("SWT.F9", SWT.F9);
+		accelerators.put("SWT.F10", SWT.F10);
+		accelerators.put("SWT.F11", SWT.F11);
+		accelerators.put("SWT.F12", SWT.F12);
+		accelerators.put("SWT.HELP", SWT.HELP);
+		accelerators.put("SWT.HOME", SWT.HOME);
+		accelerators.put("SWT.IMAGE_UNDEFINED", SWT.IMAGE_UNDEFINED);
+		accelerators.put("SWT.INSERT", SWT.INSERT);
+		accelerators.put("SWT.KEYPAD_ADD", SWT.KEYPAD_ADD);
+		accelerators.put("SWT.KEYPAD_CR", SWT.KEYPAD_CR);
+		accelerators.put("SWT.KEYPAD_DECIMAL", SWT.KEYPAD_DECIMAL);
+		accelerators.put("SWT.KEYPAD_DIVIDE", SWT.KEYPAD_DIVIDE);
+		accelerators.put("SWT.KEYPAD_EQUAL", SWT.KEYPAD_EQUAL);
+		accelerators.put("SWT.KEYPAD_MULTIPLY", SWT.KEYPAD_MULTIPLY);
+		accelerators.put("SWT.KEYPAD_SUBTRACT", SWT.KEYPAD_SUBTRACT);
+		accelerators.put("SWT.KEYPAD_0", SWT.KEYPAD_0);
+		accelerators.put("SWT.KEYPAD_1", SWT.KEYPAD_1);
+		accelerators.put("SWT.KEYPAD_2", SWT.KEYPAD_2);
+		accelerators.put("SWT.KEYPAD_3", SWT.KEYPAD_3);
+		accelerators.put("SWT.KEYPAD_4", SWT.KEYPAD_4);
+		accelerators.put("SWT.KEYPAD_5", SWT.KEYPAD_5);
+		accelerators.put("SWT.KEYPAD_6", SWT.KEYPAD_6);
+		accelerators.put("SWT.KEYPAD_7", SWT.KEYPAD_7);
+		accelerators.put("SWT.KEYPAD_8", SWT.KEYPAD_8);
+		accelerators.put("SWT.KEYPAD_9", SWT.KEYPAD_9);
+		accelerators.put("SWT.NUM_LOCK", SWT.NUM_LOCK);
+		accelerators.put("SWT.PAUSE", SWT.PAUSE);
+		accelerators.put("SWT.PAGE_DOWN", SWT.PAGE_DOWN);
+		accelerators.put("SWT.PAGE_UP", SWT.PAGE_UP);
+		accelerators.put("SWT.PRINT_SCREEN", SWT.PRINT_SCREEN);
+		accelerators.put("SWT.SCROLL_LOCK", SWT.SCROLL_LOCK);
+		accelerators.put("SWT.SHIFT", SWT.SHIFT);
+
+	}
+
+	public static Collection<String> getStyleKeys() {
+		checkAndInit();
+		return styles.keySet();
+	}
+
+	public static int getStyle(String key) {
+		if (key == null) {
+			return SWT.NONE;
+		}
+		checkAndInit();
+		String mapKey = key.toUpperCase();
+		if (!mapKey.startsWith("SWT.")) {
+			mapKey = "SWT." + mapKey;
+		}
+		Integer style = styles.get(mapKey);
+		return (style == null ? SWT.NONE : style);
+	}
+
+	public static Collection<String> getColorKeys() {
+		checkAndInit();
+		return colors.keySet();
+	}
+
+	public static int getColor(String key) {
+		if (key == null || key.equals("")) {
+			return SWT.NONE;
+		}
+		checkAndInit();
+		String mapKey = key.toUpperCase();
+		if (!mapKey.startsWith("SWT.")) {
+			mapKey = "SWT." + mapKey;
+		}
+		Integer color = colors.get(mapKey);
+		return color == null ? SWT.NONE : color;
+	}
+
+	public static Collection<String> getEventKeys() {
+		checkAndInit();
+		return events.keySet();
+	}
+
+	public static int getEvent(String key) {
+		if (key == null || key.equals("")) {
+			return SWT.None;
+		}
+		checkAndInit();
+		String mapKey = key.toLowerCase();
+		if (!mapKey.startsWith("swt.")) {
+			mapKey = "swt." + mapKey;
+		}
+		Integer event = events.get(mapKey);
+		return event == null ? SWT.None : event;
+	}
+
+	public static Collection<String> getAcceleratorKeys() {
+		checkAndInit();
+		return accelerators.keySet();
+	}
+
+	public static int getAccelerator(String key) {
+		char letter;
+		if (key == null || key.equals("")) {
+			return SWT.NONE;
+		}
+		checkAndInit();
+		if (key.equals("BS")) {
+			Integer accelerator = Integer.valueOf(SWT.BS);
+			return accelerator == null ? SWT.NONE : accelerator;
+		} else if (key.equals("ENTER")) {
+			Integer accelerator = Integer.valueOf(SWT.CR);
+			return accelerator == null ? SWT.NONE : accelerator;
+		} else if (key.equals("DEL")) {
+			Integer accelerator = Integer.valueOf(SWT.DEL);
+			return accelerator == null ? SWT.NONE : accelerator;
+		} else if (key.equals("SPACE")) {
+			Integer accelerator = Integer.valueOf(' ');
+			return accelerator == null ? SWT.NONE : accelerator;
+		} else if (key.length() == 1) {
+			letter = key.charAt(0);
+			if (letter >= 'A' && letter <= 'Z' || letter >= 'a' && letter <= 'z') {
+				Integer accelerator = Integer.valueOf(letter);
+				return accelerator == null ? SWT.NONE : accelerator;
+			}
+		}
+
+		String mapKey = key.toUpperCase();
+		if (!mapKey.startsWith("SWT.")) {
+			mapKey = "SWT." + mapKey;
+		}
+
+		Integer accelerator = accelerators.get(mapKey);
+		return accelerator == null ? SWT.NONE : accelerator;
+	}
+
+	public static int getValue(String key) {
+		int value = getStyle(key);
+		if (value == SWT.NONE) {
+			value = getColor(key);
+		}
+		if (value == SWT.NONE) {
+			value = getEvent(key);
+		}
+		if (value == SWT.NONE) {
+			value = getAccelerator(key);
+		}
+		return value;
+	}
+
+	public static String getCombAccelerator(String content) {
+		if (content.equals("Alt0")) {
+			return "SWT.ALT | SWT.KEYPAD_0";
+		} else if (content.equals("Alt1")) {
+			return "SWT.ALT | SWT.KEYPAD_1";
+		} else if (content.equals("Alt2")) {
+			return "SWT.ALT | SWT.KEYPAD_2";
+		} else if (content.equals("Alt3")) {
+			return "SWT.ALT | SWT.KEYPAD_3";
+		} else if (content.equals("Alt4")) {
+			return "SWT.ALT | SWT.KEYPAD_4";
+		} else if (content.equals("Alt5")) {
+			return "SWT.ALT | SWT.KEYPAD_5";
+		} else if (content.equals("Alt6")) {
+			return "SWT.ALT | SWT.KEYPAD_6";
+		} else if (content.equals("Alt7")) {
+			return "SWT.ALT | SWT.KEYPAD_7";
+		} else if (content.equals("Alt8")) {
+			return "SWT.ALT | SWT.KEYPAD_8";
+		} else if (content.equals("Alt9")) {
+			return "SWT.ALT | SWT.KEYPAD_9";
+		} else if (content.equals("AltBksp")) {
+			return "SWT.ALT | BS";
+		} else if (content.equals("AltDownArrow")) {
+			return "SWT.ALT | SWT.ARROW_DOWN";
+		} else if (content.equals("AltF1")) {
+			return "SWT.ALT | SWT.F1";
+		} else if (content.equals("AltF10")) {
+			return "SWT.ALT | SWT.F10";
+		} else if (content.equals("AltF11")) {
+			return "SWT.ALT | SWT.F11";
+		} else if (content.equals("AltF12")) {
+			return "SWT.ALT | SWT.F12";
+		} else if (content.equals("AltF2")) {
+			return "SWT.ALT | SWT.F2";
+		} else if (content.equals("AltF3")) {
+			return "SWT.ALT | SWT.F3";
+		} else if (content.equals("AltF4")) {
+			return "SWT.ALT | SWT.F4";
+		} else if (content.equals("AltF5")) {
+			return "SWT.ALT | SWT.F5";
+		} else if (content.equals("AltF6")) {
+			return "SWT.ALT | SWT.F6";
+		} else if (content.equals("AltF7")) {
+			return "SWT.ALT | SWT.F7";
+		} else if (content.equals("AltF8")) {
+			return "SWT.ALT | SWT.F8";
+		} else if (content.equals("AltF9")) {
+			return "SWT.ALT | SWT.F9";
+		} else if (content.equals("AltLeftArrow")) {
+			return "SWT.ALT | SWT.ARROW_LEFT";
+		} else if (content.equals("AltRightArrow")) {
+			return "SWT.ALT | SWT.ARROW_RIGHT";
+		} else if (content.equals("AltUpArrow")) {
+			return "SWT.ALT | SWT.ARROW_UP";
+		} else if (content.equals("AltEnter")) {
+			return "SWT.ALT | Enter";
+		} else if (content.equals("AltSpace")) {
+			return "SWT.ALT | Space";
+		} else if (content.equals("Ctrl0")) {
+			return "SWT.CTRL | SWT.KEYPAD_0";
+		} else if (content.equals("Ctrl1")) {
+			return "SWT.CTRL | SWT.KEYPAD_1";
+		} else if (content.equals("Ctrl2")) {
+			return "SWT.CTRL | SWT.KEYPAD_2";
+		} else if (content.equals("Ctrl3")) {
+			return "SWT.CTRL | SWT.KEYPAD_3";
+		} else if (content.equals("Ctrl4")) {
+			return "SWT.CTRL | SWT.KEYPAD_4";
+		} else if (content.equals("Ctrl5")) {
+			return "SWT.CTRL | SWT.KEYPAD_5";
+		} else if (content.equals("Ctrl6")) {
+			return "SWT.CTRL | SWT.KEYPAD_6";
+		} else if (content.equals("Ctrl7")) {
+			return "SWT.CTRL | SWT.KEYPAD_7";
+		} else if (content.equals("Ctrl8")) {
+			return "SWT.CTRL | SWT.KEYPAD_8";
+		} else if (content.equals("Ctrl9")) {
+			return "SWT.CTRL | SWT.KEYPAD_9";
+		} else if (content.equals("CtrlA")) {
+			return "SWT.CTRL | A";
+		} else if (content.equals("CtrlB")) {
+			return "SWT.CTRL | B";
+		} else if (content.equals("CtrlC")) {
+			return "SWT.CTRL | C";
+		} else if (content.equals("CtrlD")) {
+			return "SWT.CTRL | D";
+		} else if (content.equals("CtrlDel")) {
+			return "SWT.CTRL | DEL";
+		} else if (content.equals("CtrlEnter")) {
+			return "SWT.CTRL | Enter";
+		} else if (content.equals("CtrlSpace")) {
+			return "SWT.CTRL | Space";
+		} else if (content.equals("CtrlE")) {
+			return "SWT.CTRL | E";
+		} else if (content.equals("CtrlF")) {
+			return "SWT.CTRL | F";
+		} else if (content.equals("CtrlF1")) {
+			return "SWT.CTRL | SWT.F1";
+		} else if (content.equals("CtrlF10")) {
+			return "SWT.CTRL | SWT.F10";
+		} else if (content.equals("CtrlF11")) {
+			return "SWT.CTRL | SWT.F11";
+		} else if (content.equals("CtrlF12")) {
+			return "SWT.CTRL | SWT.F12";
+		} else if (content.equals("CtrlF2")) {
+			return "SWT.CTRL | SWT.F2";
+		} else if (content.equals("CtrlF3")) {
+			return "SWT.CTRL | SWT.F3";
+		} else if (content.equals("CtrlF4")) {
+			return "SWT.CTRL | SWT.F4";
+		} else if (content.equals("CtrlF5")) {
+			return "SWT.CTRL | SWT.F5";
+		} else if (content.equals("CtrlF6")) {
+			return "SWT.CTRL | SWT.F6";
+		} else if (content.equals("CtrlF7")) {
+			return "SWT.CTRL | SWT.F7";
+		} else if (content.equals("CtrlF8")) {
+			return "SWT.CTRL | SWT.F8";
+		} else if (content.equals("CtrlF9")) {
+			return "SWT.CTRL | SWT.F9";
+		} else if (content.equals("CtrlG")) {
+			return "SWT.CTRL | G";
+		} else if (content.equals("CtrlH")) {
+			return "SWT.CTRL | H";
+		} else if (content.equals("CtrlI")) {
+			return "SWT.CTRL | I";
+		} else if (content.equals("CtrlIns")) {
+			return "SWT.CTRL | SWT.INSERT";
+		} else if (content.equals("CtrlJ")) {
+			return "SWT.CTRL | J";
+		} else if (content.equals("CtrlK")) {
+			return "SWT.CTRL | K";
+		} else if (content.equals("CtrlL")) {
+			return "SWT.CTRL | L";
+		} else if (content.equals("CtrlM")) {
+			return "SWT.CTRL | M";
+		} else if (content.equals("CtrlN")) {
+			return "SWT.CTRL | N";
+		} else if (content.equals("CtrlO")) {
+			return "SWT.CTRL | O";
+		} else if (content.equals("CtrlP")) {
+			return "SWT.CTRL | P";
+		} else if (content.equals("CtrlQ")) {
+			return "SWT.CTRL | Q";
+		} else if (content.equals("CtrlR")) {
+			return "SWT.CTRL | R";
+		} else if (content.equals("CtrlS")) {
+			return "SWT.CTRL | S";
+		} else if (content.equals("CtrlShift0")) {
+			return "SWT.CTRL | SWT.SHIFT | SWT.KEYPAD_0";
+		} else if (content.equals("CtrlShift1")) {
+			return "SWT.CTRL | SWT.SHIFT | SWT.KEYPAD_1";
+		} else if (content.equals("CtrlShift2")) {
+			return "SWT.CTRL | SWT.SHIFT | SWT.KEYPAD_2";
+		} else if (content.equals("CtrlShift3")) {
+			return "SWT.CTRL | SWT.SHIFT | SWT.KEYPAD_3";
+		} else if (content.equals("CtrlShift4")) {
+			return "SWT.CTRL | SWT.SHIFT | SWT.KEYPAD_4";
+		} else if (content.equals("CtrlShift5")) {
+			return "SWT.CTRL | SWT.SHIFT | SWT.KEYPAD_5";
+		} else if (content.equals("CtrlShift6")) {
+			return "SWT.CTRL | SWT.SHIFT | SWT.KEYPAD_6";
+		} else if (content.equals("CtrlShift7")) {
+			return "SWT.CTRL | SWT.SHIFT | SWT.KEYPAD_7";
+		} else if (content.equals("CtrlShift8")) {
+			return "SWT.CTRL | SWT.SHIFT | SWT.KEYPAD_8";
+		} else if (content.equals("CtrlShift9")) {
+			return "SWT.CTRL | SWT.SHIFT | SWT.KEYPAD_9";
+		} else if (content.equals("CtrlShiftA")) {
+			return "SWT.CTRL | SWT.SHIFT | A";
+		} else if (content.equals("CtrlShiftB")) {
+			return "SWT.CTRL | SWT.SHIFT | B";
+		} else if (content.equals("CtrlShiftC")) {
+			return "SWT.CTRL | SWT.SHIFT | C";
+		} else if (content.equals("CtrlShiftD")) {
+			return "SWT.CTRL | SWT.SHIFT | D";
+		} else if (content.equals("CtrlShiftE")) {
+			return "SWT.CTRL | SWT.SHIFT | E";
+		} else if (content.equals("CtrlShiftF")) {
+			return "SWT.CTRL | SWT.SHIFT | F";
+		} else if (content.equals("CtrlShiftF1")) {
+			return "SWT.CTRL | SWT.SHIFT | SWT.F1";
+		} else if (content.equals("CtrlShiftF10")) {
+			return "SWT.CTRL | SWT.SHIFT | SWT.F10";
+		} else if (content.equals("CtrlShiftF11")) {
+			return "SWT.CTRL | SWT.SHIFT | SWT.F11";
+		} else if (content.equals("CtrlShiftF12")) {
+			return "SWT.CTRL | SWT.SHIFT | SWT.F12";
+		} else if (content.equals("CtrlShiftF2")) {
+			return "SWT.CTRL | SWT.SHIFT | SWT.F2";
+		} else if (content.equals("CtrlShiftF3")) {
+			return "SWT.CTRL | SWT.SHIFT | SWT.F3";
+		} else if (content.equals("CtrlShiftF4")) {
+			return "SWT.CTRL | SWT.SHIFT | SWT.F4";
+		} else if (content.equals("CtrlShiftF5")) {
+			return "SWT.CTRL | SWT.SHIFT | SWT.F5";
+		} else if (content.equals("CtrlShiftF6")) {
+			return "SWT.CTRL | SWT.SHIFT | SWT.F6";
+		} else if (content.equals("CtrlShiftF7")) {
+			return "SWT.CTRL | SWT.SHIFT | SWT.F7";
+		} else if (content.equals("CtrlShiftF8")) {
+			return "SWT.CTRL | SWT.SHIFT | SWT.F8";
+		} else if (content.equals("CtrlShiftF9")) {
+			return "SWT.CTRL | SWT.SHIFT | SWT.F9";
+		} else if (content.equals("CtrlShiftH")) {
+			return "SWT.CTRL | SWT.SHIFT | H";
+		} else if (content.equals("CtrlShiftI")) {
+			return "SWT.CTRL | SWT.SHIFT | I";
+		} else if (content.equals("CtrlShiftJ")) {
+			return "SWT.CTRL | SWT.SHIFT | J";
+		} else if (content.equals("CtrlShiftK")) {
+			return "SWT.CTRL | SWT.SHIFT | K";
+		} else if (content.equals("CtrlShiftL")) {
+			return "SWT.CTRL | SWT.SHIFT | L";
+		} else if (content.equals("CtrlShiftM")) {
+			return "SWT.CTRL | SWT.SHIFT | M";
+		} else if (content.equals("CtrlShiftN")) {
+			return "SWT.CTRL | SWT.SHIFT | N";
+		} else if (content.equals("CtrlShiftO")) {
+			return "SWT.CTRL | SWT.SHIFT | O";
+		} else if (content.equals("CtrlShiftP")) {
+			return "SWT.CTRL | SWT.SHIFT | P";
+		} else if (content.equals("CtrlShiftQ")) {
+			return "SWT.CTRL | SWT.SHIFT | Q";
+		} else if (content.equals("CtrlShiftR")) {
+			return "SWT.CTRL | SWT.SHIFT | R";
+		} else if (content.equals("CtrlShiftS")) {
+			return "SWT.CTRL | SWT.SHIFT | S";
+		} else if (content.equals("CtrlShiftT")) {
+			return "SWT.CTRL | SWT.SHIFT | T";
+		} else if (content.equals("CtrlShiftU")) {
+			return "SWT.CTRL | SWT.SHIFT | U";
+		} else if (content.equals("CtrlShiftV")) {
+			return "SWT.CTRL | SWT.SHIFT | V";
+		} else if (content.equals("CtrlShiftW")) {
+			return "SWT.CTRL | SWT.SHIFT | W";
+		} else if (content.equals("CtrlShiftX")) {
+			return "SWT.CTRL | SWT.SHIFT | X";
+		} else if (content.equals("CtrlShiftY")) {
+			return "SWT.CTRL | SWT.SHIFT | Y";
+		} else if (content.equals("CtrlShiftZ")) {
+			return "SWT.CTRL | SWT.SHIFT | Z";
+		} else if (content.equals("CtrlShiftEnter")) {
+			return "SWT.CTRL | SWT.SHIFT | Enter";
+		} else if (content.equals("CtrlShiftSpace")) {
+			return "SWT.CTRL | SWT.SHIFT | Space";
+		} else if (content.equals("CtrlT")) {
+			return "SWT.CTRL | T";
+		} else if (content.equals("CtrlU")) {
+			return "SWT.CTRL | U";
+		} else if (content.equals("CtrlV")) {
+			return "SWT.CTRL | V";
+		} else if (content.equals("CtrlW")) {
+			return "SWT.CTRL | W";
+		} else if (content.equals("CtrlX")) {
+			return "SWT.CTRL | X";
+		} else if (content.equals("CtrlY")) {
+			return "SWT.CTRL | Y";
+		} else if (content.equals("CtrlZ")) {
+			return "SWT.CTRL | Z";
+		} else if (content.equals("ShiftDel")) {
+			return "SWT.SHIFT | DEL";
+		} else if (content.equals("ShiftF1")) {
+			return "SWT.SHIFT | SWT.F1";
+		} else if (content.equals("ShiftF10")) {
+			return "SWT.SHIFT | SWT.F10";
+		} else if (content.equals("ShiftF11")) {
+			return "SWT.SHIFT | SWT.F11";
+		} else if (content.equals("ShiftF12")) {
+			return "SWT.SHIFT | SWT.F12";
+		} else if (content.equals("ShiftF3")) {
+			return "SWT.SHIFT | SWT.F2";
+		} else if (content.equals("ShiftF3")) {
+			return "SWT.SHIFT | SWT.F3";
+		} else if (content.equals("ShiftF4")) {
+			return "SWT.SHIFT | SWT.F4";
+		} else if (content.equals("ShiftF5")) {
+			return "SWT.SHIFT | SWT.F5";
+		} else if (content.equals("ShiftF6")) {
+			return "SWT.SHIFT | SWT.F6";
+		} else if (content.equals("ShiftF7")) {
+			return "SWT.SHIFT | SWT.F7";
+		} else if (content.equals("ShiftF8")) {
+			return "SWT.SHIFT | SWT.F8";
+		} else if (content.equals("ShiftF9")) {
+			return "SWT.SHIFT | SWT.F9";
+		} else if (content.equals("ShiftIns")) {
+			return "SWT.SHIFT | SWT.INSERT";
+		} else if (content.equals("ShiftEnter")) {
+			return "SWT.SHIFT | Enter";
+		} else if (content.equals("ShiftSpace")) {
+			return "SWT.SHIFT | Space";
+		} else if (content.equals("Enter")) {
+			return "Enter";
+		} else if (content.equals("Space")) {
+			return "Space";
+		} else {
+			return content;
+		}
+	}
+
+	private static void tryPut(Map<String,Integer> map, String swtConst) {
+		tryPut(map, swtConst, swtConst);
+	}
+
+	private static void tryPut(Map<String,Integer> map, String mapKey, String swtConst) {
+		try {
+			map.put(mapKey, SWT.class.getField(swtConst.substring(swtConst.lastIndexOf('.')+1, swtConst.length())).getInt(null));
+		} catch (Exception e) {
+			String message = "Failed to register SWT Constant "
+				+ swtConst
+				+ ". Excecption: "
+				+ e.getClass().getName()
+				+ " - "+ e.getMessage();
+			System.out.println(message);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/AnimationTimeline.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/AnimationTimeline.java
new file mode 100644
index 0000000..d96b0f2
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/AnimationTimeline.java
@@ -0,0 +1,144 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.animation.internal.ITimeline;
+import org.eclipse.xwt.animation.internal.PathPropertyAccessor;
+import org.eclipse.xwt.internal.utils.UserData;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+
+public abstract class AnimationTimeline extends Timeline {
+	private boolean isDestinationDefault;
+	private String targetName;
+	private String targetProperty;
+
+	private Object initValue;
+	private Object cacheValue;
+
+	public String getTargetName() {
+		return targetName;
+	}
+
+	public void setTargetName(String targetName) {
+		this.targetName = targetName;
+	}
+
+	public String getTargetProperty() {
+		return targetProperty;
+	}
+
+	public void setTargetProperty(String targetProperty) {
+		this.targetProperty = targetProperty;
+	}
+
+	/**
+	 * Getter of the property <tt>IsDestinationDefault</tt>
+	 * 
+	 * @return Returns the isDestinationDefault.
+	 * @uml.property name="IsDestinationDefault"
+	 */
+	public boolean getIsDestinationDefault() {
+		return isDestinationDefault;
+	}
+
+	/**
+	 * Setter of the property <tt>IsDestinationDefault</tt>
+	 * 
+	 * @param IsDestinationDefaultProperty
+	 *            The isDestinationDefault to set.
+	 * @uml.property name="IsDestinationDefault"
+	 */
+	public void setIsDestinationDefault(boolean isDestinationDefault) {
+		this.isDestinationDefault = isDestinationDefault;
+	}
+
+	protected void setCacheValue(Object cacheValue) {
+		this.cacheValue = cacheValue;
+	}
+
+	protected Object getCacheValue() {
+		return cacheValue;
+	}
+
+	protected Object getInitValue() {
+		return initValue;
+	}
+
+	protected void initialize(Object target) {
+		initValue = getCurrentValue(target);
+		cacheValue = initValue;
+	}
+	
+	protected void endFinalize(Object target) {
+		if (getFillBehavior() == FillBehavior.Stop) {
+			Object element = findTarget(target);
+			IMetaclass metaclass = XWT.getMetaclass(element);
+			IProperty property = metaclass.findProperty(getTargetProperty());
+			if (property == null) {
+				throw new XWTException("Property \"" + getTargetProperty()
+						+ "\" is not found in " + metaclass.getType().getName());
+			}
+			try {
+				property.setValue(element, initValue);
+			} catch (Exception e) {
+				throw new XWTException(e);
+			}
+		}
+	}
+	
+	protected Object getCurrentValue(Object target) {
+		Object element = findTarget(target);
+		IMetaclass metaclass = XWT.getMetaclass(element);
+		
+		String targetProperty = getTargetProperty();
+		int index = targetProperty.lastIndexOf('.');
+		if (index != -1) {
+			String lastNodePath = targetProperty.substring(0, index);
+			String lastNodeName = targetProperty.substring(index + 1);
+			PathPropertyAccessor<?> accessor = new PathPropertyAccessor(lastNodePath);
+			return accessor.get(element, lastNodeName);
+		}
+		else {
+			IProperty property = metaclass.findProperty(getTargetProperty());
+			if (property == null) {
+				throw new XWTException("Property \"" + getTargetProperty()
+						+ "\" is not found in " + metaclass.getType().getName());
+			}
+			try {
+				return property.getValue(element);
+			} catch (Exception e) {
+				throw new XWTException(e);
+			}			
+		}
+	}
+
+	@Override
+	protected Object findTarget(Object target) {
+		String targetName = getTargetName();
+		if (targetName == null) {
+			return target;
+		}
+		Object newTarget = UserData.findElementByName(target, targetName);
+		if (newTarget == null) {
+			throw new XWTException("Name element " + targetName
+					+ " is not found in animation.");
+		}
+		return super.findTarget(newTarget);
+	}
+
+	protected void update(ITimeline timeline) {
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/BackEase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/BackEase.java
new file mode 100644
index 0000000..4d06f0f
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/BackEase.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.xwt.XWTException;
+
+/**
+ * 
+ * @author yyang
+ */
+public class BackEase extends EasingFunctionBase {
+	private double amplitude = 1;
+
+	public double getAmplitude() {
+		return amplitude;
+	}
+
+	public void setAmplitude(double amplitude) {
+		this.amplitude = amplitude;
+	}
+
+	public double ease(double normalizedTime) {
+		switch (getEasingMode()) {
+		case EaseIn:
+			return easeValue(normalizedTime, getAmplitude());
+		case EaseOut:
+			return 1 - easeValue(1 - normalizedTime, getAmplitude());
+		case EaseInOut:
+			normalizedTime /= 0.5;
+			if (normalizedTime < 1)
+				return easeValue(normalizedTime, getAmplitude()) / 2;
+			return (2 - easeValue(2 - normalizedTime, getAmplitude())) / 2;
+		default:
+			throw new XWTException(getEasingMode().name() + " is supported.");
+		}
+	}
+
+	protected double easeValue(double normalizedTime, double amplitude) {
+		return normalizedTime * normalizedTime * normalizedTime
+				- normalizedTime * amplitude
+				* Math.sin(normalizedTime * Math.PI);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/BeginStoryboard.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/BeginStoryboard.java
new file mode 100644
index 0000000..1dfce82
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/BeginStoryboard.java
@@ -0,0 +1,104 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.core.TriggerAction;
+import org.eclipse.xwt.internal.utils.UserData;
+
+public class BeginStoryboard extends TriggerAction {
+	private HandoffBehavior handoffBehavior = HandoffBehavior.SnapshotAndReplace;
+	private String name;
+	private Storyboard storyboard;
+		
+	/**
+	 * Getter of the property <tt>HandoffBehavior</tt>
+	 * 
+	 * @return Returns the handoffBehavior.
+	 * @uml.property name="HandoffBehavior"
+	 */
+	public HandoffBehavior getHandoffBehavior() {
+		return handoffBehavior;
+	}
+
+	/**
+	 * Setter of the property <tt>HandoffBehavior</tt>
+	 * 
+	 * @param HandoffBehaviorProperty
+	 *            The handoffBehavior to set.
+	 * @uml.property name="HandoffBehavior"
+	 */
+	public void setHandoffBehavior(HandoffBehavior handoffBehavior) {
+		this.handoffBehavior = handoffBehavior;
+	}
+
+	/**
+	 * Getter of the property <tt>Name</tt>
+	 * 
+	 * @return Returns the name.
+	 * @uml.property name="Name"
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * Setter of the property <tt>Name</tt>
+	 * 
+	 * @param NameProperty
+	 *            The name to set.
+	 * @uml.property name="Name"
+	 */
+	public void setName(String name) {
+		this.name = name;
+	}
+	
+	/**
+	 * Getter of the property <tt>Storyboard</tt>
+	 * 
+	 * @return Returns the Storyboard.
+	 * @uml.property name="Storyboard"
+	 */
+	public Storyboard getStoryboard() {
+		return storyboard;
+	}
+
+	/**
+	 * Setter of the property <tt>Storyboard</tt>
+	 * 
+	 * @param NameProperty
+	 *            The Storyboard to set.
+	 * @uml.property name="Storyboard"
+	 */
+	public void setStoryboard(Storyboard storyboard) {
+		this.storyboard = storyboard;
+	}
+	
+	@Override
+	public void initialize(Object target) {
+		if (name != null) {
+			UserData.findScopeKeeper(target).addNamedObject(name, this);			
+		}
+		getStoryboard().initialize(target);
+	}
+
+	@Override
+	public void endFinalize(Object target) {
+		getStoryboard().endFinalize(target);
+	}
+
+	@Override
+	public void run(Event event, Object target, Runnable stateChangedRunnable) {
+		getStoryboard().start(event, target, stateChangedRunnable);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/BooleanAnimationBase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/BooleanAnimationBase.java
new file mode 100644
index 0000000..3cd8876
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/BooleanAnimationBase.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public abstract class BooleanAnimationBase extends AnimationTimeline {
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/BounceEase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/BounceEase.java
new file mode 100644
index 0000000..086b0bb
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/BounceEase.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.xwt.XWTException;
+
+/**
+ * 
+ * @author yyang
+ */
+public class BounceEase extends EasingFunctionBase {
+	private int bounces = 5;
+	private double bounciness = 2;
+
+	public int getBounces() {
+		return bounces;
+	}
+
+	public void setBounces(int bounces) {
+		this.bounces = bounces;
+	}
+
+	public double getBounciness() {
+		return bounciness;
+	}
+
+	public void setBounciness(double bounciness) {
+		this.bounciness = bounciness;
+	}
+
+	public double ease(double normalizedTime) {
+		switch (getEasingMode()) {
+		case EaseIn:
+			return easeValue(normalizedTime, getBounces(), getBounciness());
+		case EaseOut:
+			return 1 - easeValue(1 - normalizedTime, getBounces(),
+					getBounciness());
+		case EaseInOut:
+			normalizedTime /= 0.5;
+			if (normalizedTime < 1)
+				return easeValue(normalizedTime, getBounces(), getBounciness()) / 2;
+			return (2 - easeValue(2 - normalizedTime, getBounces(),
+					getBounciness())) / 2;
+		default:
+			throw new XWTException(getEasingMode().name() + " is supported.");
+		}
+	}
+
+	protected static double easeValue(double current, int bounces, double bounciness) {
+		if (current == 0)
+			return 0;
+		if (current == 1)
+			return 1;
+		double angle = (Math.PI) * (bounces + 1);
+		double s = Math.asin(1) / angle;
+		return Math.pow(2, 10 * (current -= 1)) * Math.abs(Math
+				.sin((current - s) * angle));
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ByteAnimationBase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ByteAnimationBase.java
new file mode 100644
index 0000000..453e554
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ByteAnimationBase.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public abstract class ByteAnimationBase extends AnimationTimeline {
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/CharAnimationBase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/CharAnimationBase.java
new file mode 100644
index 0000000..fa18989
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/CharAnimationBase.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public abstract class CharAnimationBase extends AnimationTimeline {
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/CircleEase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/CircleEase.java
new file mode 100644
index 0000000..16e72dc
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/CircleEase.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.xwt.XWTException;
+
+/**
+ * 
+ * @author yyang
+ */
+public class CircleEase extends EasingFunctionBase {
+	public double ease(double normalizedTime) {
+		if (normalizedTime < -1) {
+			normalizedTime = -1;
+		}
+		if (normalizedTime > 1) {
+			normalizedTime = 1;
+		}
+		switch (getEasingMode()) {
+		case EaseIn:
+			return easeValue(normalizedTime);
+		case EaseOut:
+			return  1 - (easeValue(1 - normalizedTime));
+		case EaseInOut:
+			normalizedTime /= 0.5;
+			if (normalizedTime < 1)
+				return (easeValue(normalizedTime)) / 2;
+			return (2 - easeValue(2 - normalizedTime)) / 2;
+		default:
+			throw new XWTException(getEasingMode().name() + " is supported.");
+		}
+	}
+	
+	protected double easeValue(double normalizedTime) {
+		return 1 - Math.sqrt(1 - normalizedTime * normalizedTime);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Clock.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Clock.java
new file mode 100644
index 0000000..bed75d2
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Clock.java
@@ -0,0 +1,94 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public class Clock {
+	protected Clock parent;
+	protected boolean isPaused = false;
+	protected Duration naturalDuration;
+	protected Timeline currentTime;
+	protected double currentGlobalSpeed;
+	protected TimeSpan currentGlobalTime;
+	protected int currentIteration;
+	protected double currentProgress;
+	protected ClockState currentState;
+	protected ClockController controller;
+	protected boolean hasControllableRoot;
+
+	public Clock getParent() {
+		return parent;
+	}
+	public void setParent(Clock parent) {
+		this.parent = parent;
+	}
+	public boolean isPaused() {
+		return isPaused;
+	}
+	public void setPaused(boolean isPaused) {
+		this.isPaused = isPaused;
+	}
+	public Duration getNaturalDuration() {
+		return naturalDuration;
+	}
+	public void setNaturalDuration(Duration naturalDuration) {
+		this.naturalDuration = naturalDuration;
+	}
+	public Timeline getCurrentTime() {
+		return currentTime;
+	}
+	public void setCurrentTime(Timeline currentTime) {
+		this.currentTime = currentTime;
+	}
+	public double getCurrentGlobalSpeed() {
+		return currentGlobalSpeed;
+	}
+	public void setCurrentGlobalSpeed(double currentGlobalSpeed) {
+		this.currentGlobalSpeed = currentGlobalSpeed;
+	}
+	public TimeSpan getCurrentGlobalTime() {
+		return currentGlobalTime;
+	}
+	public void setCurrentGlobalTime(TimeSpan currentGlobalTime) {
+		this.currentGlobalTime = currentGlobalTime;
+	}
+	public int getCurrentIteration() {
+		return currentIteration;
+	}
+	public void setCurrentIteration(int currentIteration) {
+		this.currentIteration = currentIteration;
+	}
+	public double getCurrentProgress() {
+		return currentProgress;
+	}
+	public void setCurrentProgress(double currentProgress) {
+		this.currentProgress = currentProgress;
+	}
+	public ClockState getCurrentState() {
+		return currentState;
+	}
+	public void setCurrentState(ClockState currentState) {
+		this.currentState = currentState;
+	}
+	public ClockController getController() {
+		return controller;
+	}
+	public void setController(ClockController controller) {
+		this.controller = controller;
+	}
+	public boolean isHasControllableRoot() {
+		return this.hasControllableRoot;
+	}
+	public void setHasControllableRoot(boolean hasControllableRoot) {
+		this.hasControllableRoot = hasControllableRoot;
+	}	
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ClockController.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ClockController.java
new file mode 100644
index 0000000..8289a7e
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ClockController.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public class ClockController {
+	protected Clock clock;
+	protected double speedRatio;
+
+	public Clock getClock() {
+		return clock;
+	}
+	public void setClock(Clock clock) {
+		this.clock = clock;
+	}
+	public double getSpeedRatio() {
+		return speedRatio;
+	}
+	public void setSpeedRatio(double speedRatio) {
+		this.speedRatio = speedRatio;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ClockState.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ClockState.java
new file mode 100644
index 0000000..a59c9aa
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ClockState.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public enum ClockState {
+	Active, Filling, Stopped;
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ColorAnimation.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ColorAnimation.java
new file mode 100644
index 0000000..ab50dcb
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ColorAnimation.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.animation.internal.ITimeline;
+import org.eclipse.xwt.animation.internal.TridentTimeline;
+
+public class ColorAnimation extends AnimationTimeline {
+	private Color from;
+	private Color by;
+	private Color to;
+	
+	public Color getTo() {
+		return to;
+	}
+	
+	public void setTo(Color to) {
+		this.to = to;
+	}
+	
+	public Color getFrom() {
+		return from;
+	}
+	
+	public void setFrom(Color from) {
+		this.from = from;
+	}
+	
+	public Color getBy() {
+		return by;
+	}
+	
+	public void setBy(Color by) {
+		this.by = by;
+	}
+		
+	protected void updateTimeline(ITimeline timeline, Object target) {
+		super.updateTimeline(timeline, target);
+		if (timeline instanceof TridentTimeline) {
+			TridentTimeline tridentTimeline = (TridentTimeline) (timeline);
+			Color from = getFrom();
+			Color to = getTo();
+			if (from == null && to == null) {
+				from = (Color) getCacheValue();
+				to = (Color) getCurrentValue(target);
+				if (from != null && from.equals(to)) {
+					throw new XWTException("action ignored");
+				}
+			}
+			tridentTimeline.addPropertyToInterpolate(getTargetProperty(), from, to);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ControllableStoryboardAction.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ControllableStoryboardAction.java
new file mode 100644
index 0000000..b3395d3
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ControllableStoryboardAction.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.core.TriggerAction;
+import org.eclipse.xwt.internal.utils.UserData;
+
+public abstract class ControllableStoryboardAction extends TriggerAction {
+	private String beginStoryboardName;
+	private Storyboard storyboard;
+	
+	protected Storyboard getStoryboard() {
+		return storyboard;
+	}
+
+	/**
+	 * Getter of the property <tt>BeginStoryboardName</tt>
+	 * 
+	 * @return Returns the beginStoryboardName.
+	 * @uml.property name="BeginStoryboardName"
+	 */
+	public String getBeginStoryboardName() {
+		return beginStoryboardName;
+	}
+
+	/**
+	 * Setter of the property <tt>BeginStoryboardName</tt>
+	 * 
+	 * @param BeginStoryboardNameProperty
+	 *            The beginStoryboardName to set.
+	 * @uml.property name="BeginStoryboardName"
+	 */
+	public void setBeginStoryboardName(String beginStoryboardName) {
+		this.beginStoryboardName = beginStoryboardName;
+	}
+	
+	@Override
+	public void initialize(Object target) {
+		String beginStoryboardName = getBeginStoryboardName();
+		if (beginStoryboardName == null || beginStoryboardName.length() == 0) {
+			return;
+		}
+		Object element = UserData.findElementByName(target, beginStoryboardName);
+		if (element instanceof BeginStoryboard) {
+			BeginStoryboard beginStoryboard = (BeginStoryboard) element;
+			storyboard = beginStoryboard.getStoryboard();
+		}
+		else {
+			throw new XWTException("NeginStoryboardName " + beginStoryboardName + " is not found.");
+		}
+	}
+	
+	public void endFinalize(Object target) {
+		storyboard.endFinalize(target);
+	}
+	
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/CubicEase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/CubicEase.java
new file mode 100644
index 0000000..56fddd0
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/CubicEase.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.xwt.XWTException;
+
+/**
+ * 
+ * @author yyang
+ */
+public class CubicEase extends EasingFunctionBase {
+	public double ease(double normalizedTime) {
+		switch (getEasingMode()) {
+		case EaseIn:
+			return normalizedTime * normalizedTime * normalizedTime;
+		case EaseOut:
+			normalizedTime = 1 - normalizedTime;
+			return 1 - normalizedTime * normalizedTime * normalizedTime;
+		case EaseInOut:
+			normalizedTime /= 0.5;
+			if (normalizedTime < 1)
+				return normalizedTime * normalizedTime * normalizedTime / 2;
+			normalizedTime = 2 - normalizedTime;
+			return ( 2 - normalizedTime * normalizedTime * normalizedTime) / 2;
+		default:
+			throw new XWTException(getEasingMode().name() + " is supported.");
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/DecimalAnimationBase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/DecimalAnimationBase.java
new file mode 100644
index 0000000..6fc9a6d
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/DecimalAnimationBase.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public abstract class DecimalAnimationBase extends AnimationTimeline {
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/DiscreteDoubleKeyFrame.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/DiscreteDoubleKeyFrame.java
new file mode 100644
index 0000000..0937a17
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/DiscreteDoubleKeyFrame.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.pushingpixels.trident.Timeline;
+
+public class DiscreteDoubleKeyFrame extends DoubleKeyFrame {
+	
+	@Override
+	protected void start(Timeline timeline, Object target) {
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleAnimation.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleAnimation.java
new file mode 100644
index 0000000..c44d7d4
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleAnimation.java
@@ -0,0 +1,143 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.animation.internal.ITimeline;
+import org.eclipse.xwt.animation.internal.TridentTimeline;
+
+public class DoubleAnimation extends DoubleAnimationBase {
+	private Double by;
+	private Double from;
+	private Double to;
+	private IEasingFunction easingFunction;
+	
+	/**
+	 * The <code>additive</code> property specifies whether you want the output value of 
+	 * an animation added to the starting value (base value) of an animated property. You 
+	 * can use the <code>additive</code> property with most basic animations and most key 
+	 * frame animations. 
+	 * 
+	 * For more information, see Animation Overview and Key-Frame Animations Overview.
+	 */
+	protected boolean additive = false;
+	
+	/**
+	 * Use the <code>cumulative</code> property to accumulate base values of an animation 
+	 * across repeating cycles. For example, if you set an animation to repeat 9 times 
+	 * (RepeatBehavior = “9x”) and you set the property to animate between 10 and 15 
+	 * (From = 10 To = 15), the property animates from 10 to 15 during the first cycle, 
+	 * from 15 to 20 during the second cycle, from 20 to 25 during the third cycle, 
+	 * and so on. Hence, each animation cycle uses the ending animation value from the 
+	 * previous animation cycle as its base value.
+	 * 
+	 * You can use the <code>cumulative</code> property with most basic animations and 
+	 * most key frame animations. 
+	 * 
+	 * For more information, see Animation Overview and Key-Frame Animations Overview.
+	 */
+	protected boolean cumulative = false;
+
+	public DoubleAnimation() {
+	}
+	
+	public DoubleAnimation(Double toValue, Duration duration) {
+		setTo(toValue);
+		setDuration(duration);
+	}
+	
+	public DoubleAnimation(Double fromValue, Double toValue, Duration duration) {
+		setTo(toValue);
+		setFrom(fromValue);
+		setDuration(duration);
+	}
+	
+	public DoubleAnimation(Double toValue, Duration duration, FillBehavior fillBehavior) {
+		setTo(toValue);
+		setDuration(duration);
+		setFillBehavior(fillBehavior);
+	}
+	
+	public DoubleAnimation(Double fromValue, Double toValue, Duration duration, FillBehavior fillBehavior) {
+		setTo(toValue);
+		setFrom(fromValue);
+		setDuration(duration);
+		setFillBehavior(fillBehavior);
+	}
+
+	public IEasingFunction getEasingFunction() {
+		return easingFunction;
+	}
+
+	public void setEasingFunction(IEasingFunction easingFunction) {
+		this.easingFunction = easingFunction;
+	}
+
+	public Double getBy() {
+		return by;
+	}
+
+	public void setBy(Double by) {
+		this.by = by;
+	}
+
+	public Double getFrom() {
+		return from;
+	}
+
+	public void setFrom(Double from) {
+		this.from = from;
+	}
+
+	public Double getTo() {
+		return to;
+	}
+
+	public void setTo(Double to) {
+		this.to = to;
+	}
+
+	public boolean isAdditive() {
+		return additive;
+	}
+
+	public void setAdditive(boolean additive) {
+		this.additive = additive;
+	}
+
+	public boolean isCumulative() {
+		return cumulative;
+	}
+
+	public void setCumulative(boolean cumulative) {
+		this.cumulative = cumulative;
+	}
+	
+	protected void updateTimeline(ITimeline timeline, Object target) {
+		super.updateTimeline(timeline, target);
+		if (timeline instanceof TridentTimeline) {
+			TridentTimeline tridentTimeline = (TridentTimeline) (timeline);
+			Double from = getFrom();
+			Double to = getTo();
+			if (from == null && to == null) {
+				from = (Double) getCacheValue();
+				to = (Double) getCurrentValue(target);
+				if (from != null && from.equals(to)) {
+					throw new XWTException("action ignored");
+				}
+			}
+			tridentTimeline.addPropertyToInterpolate(getTargetProperty(), from, to);
+			tridentTimeline.setEasingFunction(getEasingFunction());
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleAnimationBase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleAnimationBase.java
new file mode 100644
index 0000000..f843584
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleAnimationBase.java
@@ -0,0 +1,16 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public abstract class DoubleAnimationBase extends AnimationTimeline {
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleAnimationUsingKeyFrames.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleAnimationUsingKeyFrames.java
new file mode 100644
index 0000000..f96c77f
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleAnimationUsingKeyFrames.java
@@ -0,0 +1,74 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.xwt.animation.internal.ITimeline;
+
+public class DoubleAnimationUsingKeyFrames extends DoubleAnimationBase {
+	/**
+	 * Use the <code>cumulative</code> property to accumulate base values of an animation 
+	 * across repeating cycles. For example, if you set an animation to repeat 9 times 
+	 * (RepeatBehavior = “9x”) and you set the property to animate between 10 and 15 
+	 * (From = 10 To = 15), the property animates from 10 to 15 during the first cycle, 
+	 * from 15 to 20 during the second cycle, from 20 to 25 during the third cycle, 
+	 * and so on. Hence, each animation cycle uses the ending animation value from the 
+	 * previous animation cycle as its base value.
+	 * 
+	 * You can use the <code>cumulative</code> property with most basic animations and 
+	 * most key frame animations. 
+	 * 
+	 * For more information, see Animation Overview and Key-Frame Animations Overview.
+	 */
+	private boolean cumulative = false;
+	
+	/**
+	 * The <code>additive</code> property specifies whether you want the output value of 
+	 * an animation added to the starting value (base value) of an animated property. You 
+	 * can use the <code>additive</code> property with most basic animations and most key 
+	 * frame animations. 
+	 * 
+	 * For more information, see Animation Overview and Key-Frame Animations Overview.
+	 */
+	private boolean additive = false;
+	private DoubleKeyFrame[] keyFrames = DoubleKeyFrame.EMPTY_ARRAY;
+	
+	public DoubleKeyFrame[] getKeyFrames() {
+		return keyFrames;
+	}
+
+	public void setKeyFrames(DoubleKeyFrame[] keyFrames) {
+		this.keyFrames = keyFrames;
+	}
+
+	public boolean isCumulative() {
+		return cumulative;
+	}
+
+	public void setCumulative(boolean cumulative) {
+		this.cumulative = cumulative;
+	}
+
+	public boolean isAdditive() {
+		return additive;
+	}
+
+	public void setAdditive(boolean additive) {
+		this.additive = additive;
+	}
+
+	protected void updateTimeline(ITimeline timeline, Object target) {
+		super.updateTimeline(timeline, target);
+//		for (DoubleKeyFrame doubleKeyFrame : getKeyFrames()) {
+//		doubleKeyFrame.start(timeline, target);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleAnimationUsingPath.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleAnimationUsingPath.java
new file mode 100644
index 0000000..d88977a
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleAnimationUsingPath.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.xwt.animation.internal.ITimeline;
+
+public class DoubleAnimationUsingPath extends DoubleAnimationBase {
+
+	protected void updateTimeline(ITimeline timeline, Object target) {
+		super.updateTimeline(timeline, target);
+//		for (DoubleKeyFrame doubleKeyFrame : getKeyFrames()) {
+//		doubleKeyFrame.start(timeline, target);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleKeyFrame.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleKeyFrame.java
new file mode 100644
index 0000000..449caa0
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/DoubleKeyFrame.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.pushingpixels.trident.Timeline;
+
+public abstract class DoubleKeyFrame {
+	public static final DoubleKeyFrame[] EMPTY_ARRAY = {}; 
+	private KeyTime keyTime;
+	private Double value;
+
+	public KeyTime getKeyTime() {
+		return keyTime;
+	}
+
+	public void setKeyTime(KeyTime keyTime) {
+		this.keyTime = keyTime;
+	}
+
+	public Double getValue() {
+		return value;
+	}
+
+	public void setValue(Double value) {
+		this.value = value;
+	}
+
+	protected void start(Timeline timeline, Object target) {
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Drawing.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Drawing.java
new file mode 100644
index 0000000..90d0900
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Drawing.java
@@ -0,0 +1,18 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *     Anyware-tech - add multiple loaders
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public class Drawing {
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Duration.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Duration.java
new file mode 100644
index 0000000..f6b86e3
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Duration.java
@@ -0,0 +1,73 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public class Duration {
+	enum DurationType {
+		Automatic, Forever, TimeSpan;
+	}
+
+	/**
+	 * Property getter.
+	 * 
+	 * @property(Automatic)
+	 */
+	public static Duration getAutomatic() {
+		Duration duration1 = new Duration();
+		duration1.durationType = DurationType.Automatic;
+		return duration1;
+	}
+
+	/**
+	 * Property getter.
+	 * 
+	 * @property(Forever)
+	 */
+	public static Duration getForever() {
+		Duration duration1 = new Duration();
+		duration1.durationType = DurationType.Forever;
+		return duration1;
+	}
+
+	protected DurationType durationType;
+	protected TimeSpan timeSpan;
+
+	protected Duration() {
+	}
+
+	public Duration(TimeSpan timeSpan) {
+		this.durationType = DurationType.TimeSpan;
+		this.timeSpan = timeSpan;
+	}
+
+	/**
+	 * Property getter.
+	 * 
+	 * @property(HasTimeSpan)
+	 */
+	public boolean hasTimeSpan() {
+		return (this.durationType == DurationType.TimeSpan);
+	}
+
+	/**
+	 * Property getter.
+	 * 
+	 * @property(TimeSpan)
+	 */
+	public TimeSpan getTimeSpan() {
+		if (!this.hasTimeSpan()) {
+			throw new UnsupportedOperationException();
+		}
+		return this.timeSpan;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/EasingDoubleKeyFrame.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/EasingDoubleKeyFrame.java
new file mode 100644
index 0000000..639c9a5
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/EasingDoubleKeyFrame.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+
+public class EasingDoubleKeyFrame extends DoubleKeyFrame {
+	private IEasingFunction easingFunction;
+	
+	public IEasingFunction getEasingFunction() {
+		return easingFunction;
+	}
+
+	public void setEasingFunction(IEasingFunction easingFunction) {
+		this.easingFunction = easingFunction;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/EasingFunctionBase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/EasingFunctionBase.java
new file mode 100644
index 0000000..975b6ab
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/EasingFunctionBase.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public abstract class EasingFunctionBase implements IEasingFunction {
+	private EasingMode easingMode = EasingMode.EaseOut; 
+	
+	public EasingMode getEasingMode() {
+		return easingMode;
+	}
+
+	public void setEasingMode(EasingMode easingMode) {
+		this.easingMode = easingMode;
+	}
+
+	final public float map(float durationFraction) {
+		return (float) ease(durationFraction);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/EasingMode.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/EasingMode.java
new file mode 100644
index 0000000..515bf2a
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/EasingMode.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public enum EasingMode {
+	EaseOut, EaseIn, EaseInOut;
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ElasticEase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ElasticEase.java
new file mode 100644
index 0000000..b5715f9
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ElasticEase.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.xwt.XWTException;
+
+/**
+ * 
+ * @author yyang
+ */
+public class ElasticEase extends EasingFunctionBase {
+	private int oscillations = 3;
+	private double springiness = 3;
+
+	public int getOscillations() {
+		return oscillations;
+	}
+
+	public void setOscillations(int oscillations) {
+		this.oscillations = oscillations;
+	}
+
+	public double getSpringiness() {
+		return springiness;
+	}
+
+	public void setSpringiness(double springiness) {
+		this.springiness = springiness;
+	}
+
+	public double ease(double normalizedTime) {
+		switch (getEasingMode()) {
+		case EaseIn:
+			return easeValue(normalizedTime, getOscillations(),
+					getSpringiness());
+		case EaseOut:
+			return 1 - easeValue(1 - normalizedTime, getOscillations(),
+					getSpringiness());
+		case EaseInOut:
+			normalizedTime /= 0.5;
+			if (normalizedTime < 1)
+				return easeValue(normalizedTime, getOscillations(),
+						getSpringiness()) / 2;
+			return (2 - easeValue(2 - normalizedTime, getOscillations(),
+					getSpringiness())) / 2;
+		default:
+			throw new XWTException(getEasingMode().name() + " is supported.");
+		}
+	}
+
+	protected double easeValue(double current, int oscillations,
+			double springiness) {
+		if (current == 0)
+			return 0;
+		if (current == 1)
+			return 1;
+		double s = Math.asin(1) / ((2 * Math.PI) * oscillations);
+		return -(Math.pow(2, 10 * (current -= 1)) * Math.sin((current - s)
+				* (2 * Math.PI) * oscillations));
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ExponentialEase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ExponentialEase.java
new file mode 100644
index 0000000..df21c40
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ExponentialEase.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.xwt.XWTException;
+
+/**
+ * 
+ * @author yyang
+ */
+public class ExponentialEase extends EasingFunctionBase {
+	private double exponent = 2;
+
+	public double getExponent() {
+		return exponent;
+	}
+
+	public void setExponent(double exponent) {
+		this.exponent = exponent;
+	}
+
+	public double ease(double normalizedTime) {
+		switch (getEasingMode()) {
+		case EaseIn:
+			return easeValue(normalizedTime);
+		case EaseOut:
+			return 1 - easeValue(1 - normalizedTime);
+		case EaseInOut:
+			normalizedTime /= 0.5;
+			if (normalizedTime < 1)
+				return easeValue(normalizedTime) / 2;
+			return (2 - easeValue(2 - normalizedTime)) / 2;
+		default:
+			throw new XWTException(getEasingMode().name() + " is supported.");
+		}
+	}
+
+	protected double easeValue(double normalizedTime) {
+		return (Math.exp(normalizedTime * getExponent()) - 1)
+				/ (Math.exp(getExponent()) - 1);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/FillBehavior.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/FillBehavior.java
new file mode 100644
index 0000000..102f0e6
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/FillBehavior.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public enum FillBehavior {
+	HoldEnd, Stop;
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/FloatAnimation.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/FloatAnimation.java
new file mode 100644
index 0000000..ee66339
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/FloatAnimation.java
@@ -0,0 +1,148 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.animation.internal.ITimeline;
+import org.eclipse.xwt.animation.internal.TridentTimeline;
+
+/**
+ * 
+ * @author yyang
+ */
+public class FloatAnimation extends FloatAnimationBase {
+	protected Float by;
+	protected Float from;
+	protected Float to;
+	
+	private IEasingFunction easingFunction;
+
+	/**
+	 * The <code>additive</code> property specifies whether you want the output value of 
+	 * an animation added to the starting value (base value) of an animated property. You 
+	 * can use the <code>additive</code> property with most basic animations and most key 
+	 * frame animations. 
+	 * 
+	 * For more information, see Animation Overview and Key-Frame Animations Overview.
+	 */
+	protected boolean additive = false;
+	
+	/**
+	 * Use the <code>cumulative</code> property to accumulate base values of an animation 
+	 * across repeating cycles. For example, if you set an animation to repeat 9 times 
+	 * (RepeatBehavior = “9x”) and you set the property to animate between 10 and 15 
+	 * (From = 10 To = 15), the property animates from 10 to 15 during the first cycle, 
+	 * from 15 to 20 during the second cycle, from 20 to 25 during the third cycle, 
+	 * and so on. Hence, each animation cycle uses the ending animation value from the 
+	 * previous animation cycle as its base value.
+	 * 
+	 * You can use the <code>cumulative</code> property with most basic animations and 
+	 * most key frame animations. 
+	 * 
+	 * For more information, see Animation Overview and Key-Frame Animations Overview.
+	 */
+	protected boolean cumulative = false;
+
+	public FloatAnimation() {
+	}
+	
+	public IEasingFunction getEasingFunction() {
+		return easingFunction;
+	}
+
+	public void setEasingFunction(IEasingFunction easingFunction) {
+		this.easingFunction = easingFunction;
+	}
+
+	public FloatAnimation(Float toValue, Duration duration) {
+		setTo(toValue);
+		setDuration(duration);
+	}
+	
+	public FloatAnimation(Float fromValue, Float toValue, Duration duration) {
+		setTo(toValue);
+		setFrom(fromValue);
+		setDuration(duration);
+	}
+	
+	public FloatAnimation(Float toValue, Duration duration, FillBehavior fillBehavior) {
+		setTo(toValue);
+		setDuration(duration);
+		setFillBehavior(fillBehavior);
+	}
+	
+	public FloatAnimation(Float fromValue, Float toValue, Duration duration, FillBehavior fillBehavior) {
+		setTo(toValue);
+		setFrom(fromValue);
+		setDuration(duration);
+		setFillBehavior(fillBehavior);
+	}
+
+	public Float getBy() {
+		return by;
+	}
+
+	public void setBy(Float by) {
+		this.by = by;
+	}
+
+	public Float getFrom() {
+		return from;
+	}
+
+	public void setFrom(Float from) {
+		this.from = from;
+	}
+
+	public Float getTo() {
+		return to;
+	}
+
+	public void setTo(Float to) {
+		this.to = to;
+	}
+
+	public boolean isAdditive() {
+		return additive;
+	}
+
+	public void setAdditive(boolean additive) {
+		this.additive = additive;
+	}
+
+	public boolean isCumulative() {
+		return cumulative;
+	}
+
+	public void setCumulative(boolean cumulative) {
+		this.cumulative = cumulative;
+	}
+	
+	protected void updateTimeline(ITimeline timeline, Object target) {
+		super.updateTimeline(timeline, target);
+		if (timeline instanceof TridentTimeline) {
+			TridentTimeline tridentTimeline = (TridentTimeline) (timeline);
+			Float from = getFrom();
+			Float to = getTo();
+			if (from == null && to == null) {
+				from = (Float) getCacheValue();
+				to = (Float) getCurrentValue(target);
+				if (from != null && from.equals(to)) {
+					throw new XWTException("action ignored");
+				}
+			}
+			tridentTimeline.addPropertyToInterpolate(getTargetProperty(), from, to);
+			tridentTimeline.setEasingFunction(getEasingFunction());
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/FloatAnimationBase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/FloatAnimationBase.java
new file mode 100644
index 0000000..595e2ac
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/FloatAnimationBase.java
@@ -0,0 +1,16 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public abstract class FloatAnimationBase extends AnimationTimeline {
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/HandoffBehavior.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/HandoffBehavior.java
new file mode 100644
index 0000000..f88c562
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/HandoffBehavior.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public enum HandoffBehavior {
+	SnapshotAndReplace, Compose;
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/IEasingFunction.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/IEasingFunction.java
new file mode 100644
index 0000000..8bfcf25
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/IEasingFunction.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.pushingpixels.trident.ease.TimelineEase;
+
+/**
+ * 
+ * @author yyang
+ */
+public interface IEasingFunction extends TimelineEase {
+	double ease(double normalizedTime);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Int16AnimationBase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Int16AnimationBase.java
new file mode 100644
index 0000000..1f1dd62
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Int16AnimationBase.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public abstract class Int16AnimationBase extends AnimationTimeline {
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Int64AnimationBase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Int64AnimationBase.java
new file mode 100644
index 0000000..b3587f6
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Int64AnimationBase.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public abstract class Int64AnimationBase extends AnimationTimeline {
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/IntAnimation.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/IntAnimation.java
new file mode 100644
index 0000000..da52fe2
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/IntAnimation.java
@@ -0,0 +1,79 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.xwt.animation.internal.ITimeline;
+import org.eclipse.xwt.animation.internal.TridentTimeline;
+
+/**
+ * 
+ * @author yyang
+ */
+public class IntAnimation extends AnimationTimeline {
+	private Integer from;
+	private Integer by;
+	private Integer to;
+
+	private IEasingFunction easingFunction;
+
+	public IEasingFunction getEasingFunction() {
+		return easingFunction;
+	}
+
+	public void setEasingFunction(IEasingFunction easingFunction) {
+		this.easingFunction = easingFunction;
+	}
+
+	public Integer getTo() {
+		return to;
+	}
+
+	public void setTo(Integer to) {
+		this.to = to;
+	}
+
+	public Integer getFrom() {
+		return from;
+	}
+
+	public void setFrom(Integer from) {
+		this.from = from;
+	}
+
+	public Integer getBy() {
+		return by;
+	}
+
+	public void setBy(Integer by) {
+		this.by = by;
+	}
+
+	protected void updateTimeline(ITimeline timeline, Object target) {
+		super.updateTimeline(timeline, target);
+		if (timeline instanceof TridentTimeline) {
+			TridentTimeline tridentTimeline = (TridentTimeline) (timeline);
+			Integer from = getFrom();
+			Integer to = getTo();
+			if (from == null && to == null) {
+				from = (Integer) getCacheValue();
+				to = (Integer) getCurrentValue(target);
+				if (from != null && from.equals(to)) {
+					return;
+				}
+			}
+			tridentTimeline.addPropertyToInterpolate(getTargetProperty(), from,
+					to);
+			tridentTimeline.setEasingFunction(getEasingFunction());
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/KeySpline.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/KeySpline.java
new file mode 100644
index 0000000..735ab41
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/KeySpline.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.graphics.Point;
+
+public class KeySpline {
+	private Point controlPoint1;
+	private Point controlPoint2;
+
+	public Point getControlPoint1() {
+		return controlPoint1;
+	}
+
+	public void setControlPoint1(Point controlPoint1) {
+		this.controlPoint1 = controlPoint1;
+	}
+
+	public Point getControlPoint2() {
+		return controlPoint2;
+	}
+
+	public void setControlPoint2(Point controlPoint2) {
+		this.controlPoint2 = controlPoint2;
+	}
+		
+	public static KeySpline fromString(String content) {
+		String[] segments = content.split("[, \t\n\r\f]");
+		if (segments.length == 4) {
+			double[] values = new double[segments.length];
+			for (int i = 0; i < values.length; i++) {
+				values[i] = Double.parseDouble(segments[i]);
+			}
+			KeySpline keySpline = new KeySpline();
+			keySpline.setControlPoint1(new Point(values[0], values[1]));
+			keySpline.setControlPoint2(new Point(values[2], values[3]));
+			return keySpline;
+		}
+		throw new XWTException("Wrong format: " + content);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/KeyTime.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/KeyTime.java
new file mode 100644
index 0000000..a151d53
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/KeyTime.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.xwt.XWTException;
+
+public class KeyTime {
+	private TimeSpan timeSpan;
+	private double percent;
+	private KeyTimeType type;
+	
+	public static KeyTime Paced = new KeyTime(KeyTimeType.Paced);
+	public static KeyTime Uniform = new KeyTime(KeyTimeType.Uniform);
+	
+	protected KeyTime(KeyTimeType type) {
+		this.type = type;
+	}
+	
+	protected KeyTime(String content) {
+		if (content.endsWith("%")) {
+			type = KeyTimeType.Percent;
+			
+			return;
+		}
+		int index = content.indexOf(":");
+		if (index != -1) {
+			type = KeyTimeType.TimeSpan;
+			timeSpan = TimeSpan.parse(content);
+			return;
+		}
+		throw new XWTException("Wrong syntax: " + content);
+	}
+	
+	public TimeSpan getTimeSpan() {
+		return timeSpan;
+	}
+
+	public double getPercent() {
+		return percent;
+	}
+
+	public KeyTimeType getType() {
+		return type;
+	}
+	
+	public static KeyTime fromString(String content) {
+		if ("Paced".equalsIgnoreCase(content)) {
+			return Paced;
+		}
+		else if ("Uniform".equalsIgnoreCase(content)) {
+			return Uniform;
+		}
+		return new KeyTime(content);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/KeyTimeType.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/KeyTimeType.java
new file mode 100644
index 0000000..9a247ac
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/KeyTimeType.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public enum KeyTimeType {
+	/**
+	 * Uniform Specifies that the allotted total time for an animation sequence
+	 * is divided evenly amongst each of the key frames.
+	 */
+	Uniform,
+	/**
+	 * Percent Specifies that each KeyTime value is expressed as a percentage of
+	 * the total time allotted for a given animation sequence.
+	 */
+	Percent,
+	/**
+	 * TimeSpan Specifies that each KeyTime is expressed as a TimeSpan value
+	 * relative to the BeginTime of an animation sequence.
+	 */
+	TimeSpan,
+	/**
+	 * Paced Specifies that adjacent KeyFrames are each allotted a slice of time
+	 * proportional to their length, respectively. The overall goal is to
+	 * produce a length value that keeps the pace of the animation sequence
+	 * constant.
+	 */
+	Paced;
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/LinearDoubleKeyFrame.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/LinearDoubleKeyFrame.java
new file mode 100644
index 0000000..4f72999
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/LinearDoubleKeyFrame.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.pushingpixels.trident.Timeline;
+
+public class LinearDoubleKeyFrame extends DoubleKeyFrame {
+	@Override
+	protected void start(Timeline timeline, Object target) {
+		super.start(timeline, target);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/MatrixAnimationBase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/MatrixAnimationBase.java
new file mode 100644
index 0000000..b73856e
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/MatrixAnimationBase.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public abstract class MatrixAnimationBase extends AnimationTimeline {
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ObjectAnimationBase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ObjectAnimationBase.java
new file mode 100644
index 0000000..e24aa30
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ObjectAnimationBase.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public abstract class ObjectAnimationBase extends AnimationTimeline {
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ParallelTimeline.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ParallelTimeline.java
new file mode 100644
index 0000000..879e2bc
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ParallelTimeline.java
@@ -0,0 +1,16 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public class ParallelTimeline extends TimelineGroup {
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ParseNumbers.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ParseNumbers.java
new file mode 100644
index 0000000..337a6e1
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ParseNumbers.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public class ParseNumbers {
+	
+	public static String intToString(int n, int m, int digits, char ch, int d) {
+		String value = Integer.toString(n, m);
+
+		if (ch != 0) {
+			String prefix = Character.toString(ch);
+
+			for (int i = digits - value.length(); i > 0; i--) {
+				value = prefix + value;
+			}
+		}
+
+		return value;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/PauseStoryboard.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/PauseStoryboard.java
new file mode 100644
index 0000000..7c5bd38
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/PauseStoryboard.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.swt.widgets.Event;
+
+public class PauseStoryboard extends ControllableStoryboardAction {
+	@Override
+	public void run(Event event, Object target, Runnable stateChangedRunnable) {
+		Storyboard storyboard = getStoryboard();
+		if (storyboard != null) {
+			storyboard.pause(event, stateChangedRunnable);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Point3DAnimationBase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Point3DAnimationBase.java
new file mode 100644
index 0000000..9ee72df
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Point3DAnimationBase.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public abstract class Point3DAnimationBase extends AnimationTimeline {
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/PointAnimation.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/PointAnimation.java
new file mode 100644
index 0000000..51122dc
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/PointAnimation.java
@@ -0,0 +1,81 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.animation.internal.ITimeline;
+import org.eclipse.xwt.animation.internal.TridentTimeline;
+import org.eclipse.xwt.animation.interpolator.PointPropertyInterpolator;
+import org.pushingpixels.trident.TridentConfig;
+
+/**
+ * 
+ * @author yyang
+ */
+public class PointAnimation extends AnimationTimeline {
+	private Point from;
+	private Point to;
+	private Point by;
+	private IEasingFunction easingFunction;
+
+	static {
+		TridentConfig.getInstance().addPropertyInterpolator(new PointPropertyInterpolator());
+	}
+
+	public IEasingFunction getEasingFunction() {
+		return easingFunction;
+	}
+
+	public void setEasingFunction(IEasingFunction easingFunction) {
+		this.easingFunction = easingFunction;
+	}
+
+	public Point getFrom() {
+		return from;
+	}
+
+	public void setFrom(Point from) {
+		this.from = from;
+	}
+
+	public Point getTo() {
+		return to;
+	}
+
+	public void setTo(Point to) {
+		this.to = to;
+	}
+	
+	protected void updateTimeline(ITimeline timeline, Object target) {
+		super.updateTimeline(timeline, target);
+		if (timeline instanceof TridentTimeline) {
+			TridentTimeline tridentTimeline = (TridentTimeline) (timeline);
+			Point from = getFrom();
+			Point to = getTo();
+			if (from == null && to == null) {
+				from = (Point) getCacheValue();
+				to = (Point) getCurrentValue(target);
+				if (from.x == 0 && from.y == 0) {
+					setCacheValue(to);
+					throw new XWTException("action ignored");
+				}
+				if (from != null && from.equals(to)) {
+					throw new XWTException("action ignored");
+				}
+			}
+			tridentTimeline.addPropertyToInterpolate(getTargetProperty(), from, to);
+			tridentTimeline.setEasingFunction(getEasingFunction());
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/PowerEase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/PowerEase.java
new file mode 100644
index 0000000..cb63eab
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/PowerEase.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.xwt.XWTException;
+
+/**
+ * 
+ * @author yyang
+ */
+public class PowerEase extends EasingFunctionBase {
+	private double power = 2;
+
+	public double getPower() {
+		return power;
+	}
+
+	public void setPower(double power) {
+		this.power = power;
+	}
+
+	public double ease(double normalizedTime) {
+		switch (getEasingMode()) {
+		case EaseIn:
+			return Math.pow(normalizedTime, getPower());
+		case EaseOut:
+			return 1 - Math.pow(1 - normalizedTime, getPower());
+		case EaseInOut:
+			normalizedTime /= 0.5;
+			if (normalizedTime < 1)
+				return Math.pow(normalizedTime, getPower()) / 2;
+			return (2 - Math.pow(2 - normalizedTime, getPower())) / 2;
+		default:
+			throw new XWTException(getEasingMode().name() + " is supported.");
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/QuadraticEase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/QuadraticEase.java
new file mode 100644
index 0000000..3ab77b2
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/QuadraticEase.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.xwt.XWTException;
+
+/**
+ * 
+ * @author yyang
+ */
+public class QuadraticEase extends EasingFunctionBase {
+	public double ease(double normalizedTime) {
+		switch (getEasingMode()) {
+		case EaseIn:
+			return normalizedTime * normalizedTime;
+		case EaseOut:
+			normalizedTime = 1 - normalizedTime;
+			return 1 - normalizedTime * normalizedTime;
+		case EaseInOut:
+			normalizedTime /= 0.5;
+			if (normalizedTime < 1)
+				return normalizedTime * normalizedTime / 2;
+			normalizedTime = 2 - normalizedTime;
+			return (2 - normalizedTime * normalizedTime) / 2;
+		default:
+			throw new XWTException(getEasingMode().name() + " is supported.");
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/QuarticEase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/QuarticEase.java
new file mode 100644
index 0000000..37cb123
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/QuarticEase.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.xwt.XWTException;
+
+/**
+ * 
+ * @author yyang
+ */
+public class QuarticEase extends EasingFunctionBase {
+	public double ease(double normalizedTime) {
+		switch (getEasingMode()) {
+		case EaseIn:
+			return Math.pow(normalizedTime, 4);
+		case EaseOut:
+			return 1 - Math.pow(1 - normalizedTime, 4);
+		case EaseInOut:
+			normalizedTime /= 0.5;
+			if (normalizedTime < 1)
+				return Math.pow(normalizedTime, 4) / 2;
+			return (2 - Math.pow(2 - normalizedTime, 4)) / 2;
+		default:
+			throw new XWTException(getEasingMode().name() + " is supported.");
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/QuaternionAnimationBase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/QuaternionAnimationBase.java
new file mode 100644
index 0000000..c95548f
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/QuaternionAnimationBase.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public abstract class QuaternionAnimationBase extends AnimationTimeline {
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/QuinticEase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/QuinticEase.java
new file mode 100644
index 0000000..030b385
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/QuinticEase.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.xwt.XWTException;
+
+/**
+ * 
+ * @author yyang
+ */
+public class QuinticEase extends EasingFunctionBase {
+	public double ease(double normalizedTime) {
+		switch (getEasingMode()) {
+		case EaseIn:
+			return Math.pow(normalizedTime, 5);
+		case EaseOut:
+			return 1 - Math.pow(1 - normalizedTime, 5);
+		case EaseInOut:
+			normalizedTime /= 0.5;
+			if (normalizedTime < 1)
+				return Math.pow(normalizedTime, 5) / 2;
+			return (2 - Math.pow(2 - normalizedTime, 5)) / 2;
+		default:
+			throw new XWTException(getEasingMode().name() + " is supported.");
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/RectangleAnimation.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/RectangleAnimation.java
new file mode 100644
index 0000000..c1a51ee
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/RectangleAnimation.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.animation.internal.ITimeline;
+import org.eclipse.xwt.animation.internal.TridentTimeline;
+import org.eclipse.xwt.animation.interpolator.RectanglePropertyInterpolator;
+import org.pushingpixels.trident.TridentConfig;
+
+/**
+ * 
+ * @author yyang
+ */
+public class RectangleAnimation extends AnimationTimeline {
+	private Rectangle from;
+	private Rectangle to;
+	private Rectangle by;
+	
+	private IEasingFunction easingFunction;
+
+	static {
+		TridentConfig.getInstance().addPropertyInterpolator(new RectanglePropertyInterpolator());
+	}
+	
+	public Rectangle getFrom() {
+		return from;
+	}
+
+	public void setFrom(Rectangle from) {
+		this.from = from;
+	}
+
+	public Rectangle getTo() {
+		return to;
+	}
+
+	public void setTo(Rectangle to) {
+		this.to = to;
+	}
+	
+	public IEasingFunction getEasingFunction() {
+		return easingFunction;
+	}
+
+	public void setEasingFunction(IEasingFunction easingFunction) {
+		this.easingFunction = easingFunction;
+	}
+
+	protected void updateTimeline(ITimeline timeline, Object target) {
+		super.updateTimeline(timeline, target);
+		if (timeline instanceof TridentTimeline) {
+			TridentTimeline tridentTimeline = (TridentTimeline) (timeline);
+			Rectangle from = getFrom();
+			Rectangle to = getTo();
+			if (from == null && to == null) {
+				from = (Rectangle) getCacheValue();
+				to = (Rectangle) getCurrentValue(target);
+				if (from == null || from.width == 0 && from.height == 0) {
+					setCacheValue(to);
+					throw new XWTException("action ignored");
+				}
+				if (from != null && from.equals(to)) {
+					throw new XWTException("action ignored");
+				}
+			}
+			tridentTimeline.addPropertyToInterpolate(getTargetProperty(), from, to);
+			tridentTimeline.setEasingFunction(getEasingFunction());
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/RepeatBehavior.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/RepeatBehavior.java
new file mode 100644
index 0000000..2ed3e4d
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/RepeatBehavior.java
@@ -0,0 +1,215 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+/**
+ * 
+ * @author yyang
+ */
+public class RepeatBehavior {
+	// Fields
+	private double count = 1;
+	private Duration repeatDuration;
+	private RepeatBehaviorType type;
+	
+	private static RepeatBehavior forever;
+	static {
+		forever = new RepeatBehavior();
+		forever.type = RepeatBehaviorType.Forever;
+	}
+	
+	// Nested Types
+	enum RepeatBehaviorType {
+		IterationCount, RepeatDuration, Forever;
+	}
+
+	public static final RepeatBehavior once = new RepeatBehavior(1);
+
+	interface IFormatProvider {
+	}
+
+	RepeatBehavior() {
+	}
+
+	// Methods
+	public RepeatBehavior(double count) {
+		if ((Double.isInfinite(count) || Double.isNaN(count)) || (count < 0)) {
+			throw new IllegalArgumentException("count: " + count);
+		}
+		this.repeatDuration = new Duration(new TimeSpan(0L));
+		this.count = count;
+		this.type = RepeatBehaviorType.IterationCount;
+	}
+
+	public RepeatBehavior(Duration duration) {
+		this.count = 0;
+		this.repeatDuration = duration;
+		this.type = RepeatBehaviorType.RepeatDuration;
+	}
+
+	public boolean equals(Object value) {
+		if ((value instanceof RepeatBehavior)) {
+			return this.equals((RepeatBehavior) value);
+		}
+		return false;
+	}
+
+	public boolean equals(RepeatBehavior repeatBehavior) {
+		if (this.type == repeatBehavior.type) {
+			switch (this.type) {
+			case IterationCount: {
+				return (this.count == repeatBehavior.count);
+			}
+			case RepeatDuration: {
+				return (this.repeatDuration == repeatBehavior.repeatDuration);
+			}
+			case Forever: {
+				return true;
+			}
+			}
+		}
+		return false;
+	}
+
+	public static boolean equals(RepeatBehavior repeatBehavior1,
+			RepeatBehavior repeatBehavior2) {
+		return repeatBehavior1.equals(repeatBehavior2);
+	}
+
+	public int hashCode() {
+		switch (this.type) {
+		case IterationCount: {
+			return (int) this.count;
+		}
+		case RepeatDuration: {
+			return this.repeatDuration.hashCode();
+		}
+		case Forever: {
+			return 2147483605;
+		}
+		}
+		return super.hashCode();
+	}
+
+	String internalToString(String format, IFormatProvider formatProvider) {
+		switch (this.type) {
+		case IterationCount: {
+			StringBuilder builder1 = new StringBuilder();
+			// builder1.append(formatProvider, "{0:", format, "}x"), new
+			// Object[] {
+			// this.iterationCount
+			// });
+			return builder1.toString();
+		}
+		case RepeatDuration: {
+			return this.repeatDuration.toString();
+		}
+		case Forever: {
+			return "Forever";
+		}
+		}
+		return null;
+	}
+
+	public static boolean opEquality(RepeatBehavior repeatBehavior1,
+			RepeatBehavior repeatBehavior2) {
+		return repeatBehavior1.equals(repeatBehavior2);
+	}
+
+	public static boolean opInequality(RepeatBehavior repeatBehavior1,
+			RepeatBehavior repeatBehavior2) {
+		return !repeatBehavior1.equals(repeatBehavior2);
+	}
+
+	public String toString(String format, IFormatProvider formatProvider) {
+		return this.internalToString(format, formatProvider);
+	}
+
+	public String toString() {
+		return this.internalToString(null, null);
+	}
+
+	public String toString(IFormatProvider formatProvider) {
+		return this.internalToString(null, formatProvider);
+	}
+
+	// Properties
+	/**
+	 * Property getter.
+	 * 
+	 * @property(Count)
+	 */
+	public double getCount() {
+		if (this.type != RepeatBehaviorType.IterationCount) {
+			throw new UnsupportedOperationException();
+		}
+		return this.count;
+	}
+
+	/**
+	 * Property getter.
+	 * 
+	 * @property(Duration)
+	 */
+	public Duration getDuration() {
+		if (this.type != RepeatBehaviorType.RepeatDuration) {
+			throw new UnsupportedOperationException();
+		}
+		return this.repeatDuration;
+	}
+
+	/**
+	 * Property getter.
+	 * 
+	 * @property(Forever)
+	 */
+	public static RepeatBehavior getForever() {
+		return forever;
+	}
+
+	/**
+	 * Property getter.
+	 * 
+	 * @property(HasCount)
+	 */
+	public boolean getHasCount() {
+		return (this.type == RepeatBehaviorType.IterationCount);
+	}
+
+	/**
+	 * Property getter.
+	 * 
+	 * @property(HasDuration)
+	 */
+	public boolean getHasDuration() {
+		return (this.type == RepeatBehaviorType.RepeatDuration);
+	}
+
+	public RepeatBehaviorType getRepeatBehaviorType() {
+		return type;
+	}	
+	
+	public static RepeatBehavior parse(String string) {
+		if (string.toLowerCase().equals("forever")) {
+			return getForever();
+		}
+		if (string.toLowerCase().endsWith("x")) {
+			// count
+			string = string.substring(0, string.length() - 1);
+			double count = Double.parseDouble(string);
+			return new RepeatBehavior(count);
+		}
+		
+		return new RepeatBehavior(new Duration(TimeSpan.parse(string)));
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ResumeStoryboard.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ResumeStoryboard.java
new file mode 100644
index 0000000..bbf7893
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ResumeStoryboard.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.swt.widgets.Event;
+
+public class ResumeStoryboard extends ControllableStoryboardAction {
+	@Override
+	public void run(Event event, Object target, Runnable stateChangedRunnable) {
+		Storyboard storyboard = getStoryboard();
+		if (storyboard != null) {
+			storyboard.resume(event, stateChangedRunnable);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Rotation3DAnimationBase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Rotation3DAnimationBase.java
new file mode 100644
index 0000000..cbd4826
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Rotation3DAnimationBase.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public abstract class Rotation3DAnimationBase extends AnimationTimeline {
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/SineEase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/SineEase.java
new file mode 100644
index 0000000..090492a
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/SineEase.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.xwt.XWTException;
+
+/**
+ * 
+ * @author yyang
+ */
+public class SineEase extends EasingFunctionBase {
+	public double ease(double normalizedTime) {
+		switch (getEasingMode()) {
+		case EaseIn:
+			return easeValue(normalizedTime);
+		case EaseOut:
+			return 1 - easeValue(1 - normalizedTime);
+		case EaseInOut:
+			normalizedTime /= 0.5;
+			if (normalizedTime < 1)
+				return easeValue(normalizedTime) / 2;
+			return (2 - easeValue(2 - normalizedTime)) / 2;
+		default:
+			throw new XWTException(getEasingMode().name() + " is supported.");
+		}
+	}
+
+	protected double easeValue(double normalizedTime) {
+		return 1 - Math.sin((1 - normalizedTime) * Math.PI / 2.0);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/SingleAnimationBase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/SingleAnimationBase.java
new file mode 100644
index 0000000..edf6fb8
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/SingleAnimationBase.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public abstract class SingleAnimationBase extends AnimationTimeline {
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/SizeAnimation.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/SizeAnimation.java
new file mode 100644
index 0000000..0505200
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/SizeAnimation.java
@@ -0,0 +1,16 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public class SizeAnimation extends PointAnimation {
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/SlipBehavior.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/SlipBehavior.java
new file mode 100644
index 0000000..9743a80
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/SlipBehavior.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public enum SlipBehavior {
+	Grow, Slip;
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/SplineDoubleKeyFrame.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/SplineDoubleKeyFrame.java
new file mode 100644
index 0000000..60ce3bf
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/SplineDoubleKeyFrame.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.pushingpixels.trident.Timeline;
+
+public class SplineDoubleKeyFrame extends DoubleKeyFrame {
+	private KeySpline keySpline;
+	
+	public KeySpline getKeySpline() {
+		return keySpline;
+	}
+
+	public void setKeySpline(KeySpline keySpline) {
+		this.keySpline = keySpline;
+	}
+
+	@Override
+	protected void start(Timeline timeline, Object target) {
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/StopStoryboard.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/StopStoryboard.java
new file mode 100644
index 0000000..c49568c
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/StopStoryboard.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.swt.widgets.Event;
+
+public class StopStoryboard extends ControllableStoryboardAction {
+	@Override
+	public void run(Event event, Object target, Runnable stateChangedRunnable) {
+		Storyboard storyboard = getStoryboard();
+		if (storyboard != null) {
+			storyboard.stop(event, stateChangedRunnable);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Storyboard.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Storyboard.java
new file mode 100644
index 0000000..07ef3c5
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Storyboard.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.xwt.metadata.IProperty;
+
+public class Storyboard extends ParallelTimeline {
+	private String targetName;
+	private IProperty targetProperty;
+	
+	public String getTargetName() {
+		return targetName;
+	}
+
+	public void setTargetName(String targetName) {
+		this.targetName = targetName;
+	}
+
+	public IProperty getTargetProperty() {
+		return targetProperty;
+	}
+
+	public void setTargetProperty(IProperty targetProperty) {
+		this.targetProperty = targetProperty;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/StringAnimationBase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/StringAnimationBase.java
new file mode 100644
index 0000000..4468bf6
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/StringAnimationBase.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public abstract class StringAnimationBase extends AnimationTimeline {
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ThicknessAnimationBase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ThicknessAnimationBase.java
new file mode 100644
index 0000000..dbe0578
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/ThicknessAnimationBase.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public abstract class ThicknessAnimationBase extends AnimationTimeline {
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/TimeSpan.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/TimeSpan.java
new file mode 100644
index 0000000..de10c19
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/TimeSpan.java
@@ -0,0 +1,735 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import java.io.Serializable;
+
+import org.eclipse.xwt.XWTException;
+
+public class TimeSpan implements Serializable, Comparable {
+
+	public static final long TicksPerMillisecond = 10000; // scale
+
+	private static final double MillisecondsPerTick = 0.0001;
+
+	public static final long TicksPerSecond = 0x989680;
+
+	private static final double SecondsPerTick = 1E-07;
+
+	public static final long TicksPerMinute = 0x23C34600;
+
+	private static final double MinutesPerTick = 1.6666666666666667E-09;
+
+	public static final long TicksPerHour = Long.valueOf("861c46800", 16);
+
+	private static final double HoursPerTick = 2.7777777777777777E-11;
+
+	// Represents the number of ticks in 1 day
+
+	public static final long TicksPerDay = Long.valueOf("c92a69c000", 16);
+
+	private static final double DaysPerTick = 1.1574074074074074E-12;
+
+	private static final int MillisPerSecond = 1000;
+
+	private static final int MillisPerMinute = 60000;
+
+	private static final int MillisPerHour = 3600000;
+
+	private static final int MillisPerDay = 86400000;
+
+	private static final long MaxSeconds = Long.valueOf("d6bf94d5e5", 16);
+
+	private static final long MinSeconds = Long.valueOf("-922337203685", 10);
+
+	private static final long MaxMilliSeconds = Long.valueOf("346dc5d638865",
+			16);
+
+	private static final long MinMilliSeconds = Long.valueOf(
+			"-922337203685477", 10);
+
+	public static final long SencondsPerHour = 3600;
+
+	public static final long HoursPerDay = 24;
+
+	public static final TimeSpan Zero;
+
+	public static final TimeSpan MaxValue;
+
+	/*
+	 * Represents the maximum TimeSpanvalue
+	 */
+	public static final TimeSpan MinValue;
+
+	public static final String TimeSpan = null;
+
+	public long ticks;
+
+	public TimeSpan(long ticks) {
+		this.ticks = ticks;
+	}
+
+	/*
+	 * Initializes a new TimeSpan to a specified number of hours, minutes, and
+	 * seconds.
+	 */
+	public TimeSpan(int hours, int minutes, int seconds) throws Exception {
+		this.ticks = timeToTicks(hours, minutes, seconds);
+	}
+
+	/*
+	 * Initializes a new TimeSpan to a specified number of days, hours, minutes,
+	 * and seconds.
+	 */
+	public TimeSpan(int days, int hours, int minutes, int seconds)
+			throws Exception {
+		this(days, hours, minutes, seconds, 0);
+	}
+
+	/*
+	 * Initializes a new TimeSpan to a specified number of days, hours, minutes,
+	 * seconds, and milliseconds. calcualte total ticks
+	 */
+
+	public TimeSpan(int days, int hours, int minutes, int seconds,
+			int milliseconds) throws Exception {
+		long num = (MillisPerSecond * (((((SencondsPerHour * (long) days) * HoursPerDay) + ((long) hours * SencondsPerHour)) + ((long) minutes * 60)) + seconds))
+				+ milliseconds;
+		if ((num > Long.valueOf(MaxMilliSeconds))
+				|| (num < Long.valueOf(MinMilliSeconds))) {
+			throw new Exception("Overflow_TimeSpanTooLong");
+		}
+		this.ticks = num * TicksPerMillisecond;
+	}
+
+	public long getTicks() {
+		return this.ticks;
+	}
+
+	public int getDays() {
+		return (int) (this.ticks / Long.valueOf(TicksPerDay));
+	}
+
+	// not total hours, just hours not more than 24
+	public int getHours() {
+		return (int) ((this.ticks / Long.valueOf(TicksPerHour)) % ((long) HoursPerDay));
+	}
+
+	public int getMilliseconds() {
+		return (int) ((this.ticks / ((long) TicksPerMillisecond)));
+	}
+
+	public int getMinutes() {
+		return (int) ((this.ticks / ((long) TicksPerMinute)) % ((long) 60));
+	}
+
+	public int getSeconds() {
+		return (int) ((this.ticks / ((long) TicksPerSecond)) % ((long) 60));
+	}
+
+	public double getTotalDays() {
+		return (this.ticks * DaysPerTick);
+	}
+
+	public double getTotalHours() {
+		return (this.ticks * HoursPerTick);
+	}
+
+	/*
+	 * Gets the value of the current TimeSpan structure expressed in whole and
+	 * fractional milliseconds.
+	 */
+	public double getTotalMilliseconds() {
+
+		double num = this.ticks * MillisecondsPerTick;
+		if (num > Long.valueOf(MaxMilliSeconds)) {
+			return Long.valueOf(MaxMilliSeconds);
+		}
+		if (num < Long.valueOf(MinMilliSeconds)) {
+			return Long.valueOf(MinMilliSeconds);
+		}
+		return num;
+	}
+
+	public double getTotalMinutes() {
+		return (this.ticks * MinutesPerTick);
+	}
+
+	public double getTotalSeconds() {
+		return (this.ticks * 1E-07);
+	}
+
+	/* Adds the specified TimeSpan to this instance. */
+	public TimeSpan add(TimeSpan ts) throws Exception {
+		long ticks = this.ticks + ts.ticks;
+		// less than MinValue or more than MaxValue, exception
+		if (((this.ticks >> 0x3f) == (ts.ticks >> 0x3f))
+				&& ((this.ticks >> 0x3f) != (ticks >> 0x3f))) {
+			throw new Exception("Overflow_TimeSpan Too Long");
+		}
+		return new TimeSpan(ticks);
+	}
+
+	/*
+	 * Compares two TimeSpan values and returns an integer that indicates their
+	 * relationship.
+	 */
+	public static int compare(TimeSpan t1, TimeSpan t2) {
+		if (t1.ticks > t2.ticks) {
+			return 1;
+		}
+		if (t1.ticks < t2.ticks) {
+			return -1;
+		}
+		return 0;
+	}
+
+	/*
+	 * Overloaded. Compares this instance to a specified object or TimeSpan and
+	 * returns an indication of their relative values.
+	 */
+	public int compareTo(Object value) {
+		if (value == null) {
+			return 1;
+		}
+		if (!(value instanceof TimeSpan)) {
+			throw new RuntimeException("Arg_MustBeTimeSpan");
+		}
+		long num = ((TimeSpan) value).ticks;
+		if (this.ticks > num) {
+			return 1;
+		}
+		if (this.ticks < num) {
+			return -1;
+		}
+		return 0;
+	}
+
+	/*
+	 * Returns a TimeSpan that represents a specified number of days, where the
+	 * specification is accurate to the nearest millisecond.
+	 */
+	public static TimeSpan fromDays(double value) throws Exception {
+		return interval(value, MillisPerDay);
+	}
+
+	/*
+	 * Returns a new TimeSpan object whose value is the absolute value of the
+	 * current TimeSpan object
+	 */
+	public TimeSpan duration() throws Exception {
+		if (this.ticks == MinValue.ticks) {
+			throw new Exception("Overflow_Duration");
+		}
+		return new TimeSpan((this.ticks >= 0) ? this.ticks : -this.ticks);
+	}
+
+	/*
+	 * Overloaded. Overridden. Returns a value indicating whether two instances
+	 * of TimeSpan are equal.
+	 */
+	public boolean equals(Object value) {
+		if (value instanceof TimeSpan) {
+			return (this.ticks == ((TimeSpan) value).ticks);
+		}
+		return false;
+	}
+
+	public static boolean equals(TimeSpan t1, TimeSpan t2) {
+		return (t1.ticks == t2.ticks);
+	}
+
+	public int hashCode() {
+		return (((int) this.ticks) ^ ((int) (this.ticks >> 0x20)));
+	}
+
+	/*
+	 * Returns a TimeSpan that represents a specified number of hours, where the
+	 * specification is accurate to the nearest millisecond.
+	 */
+	public static TimeSpan fromHours(double value) throws Exception {
+		return interval(value, 0x36ee80);
+	}
+
+	/* calculate time interval in ticks */
+	private static TimeSpan interval(double value, int scale) throws Exception {
+		if (Double.isNaN(value)) {
+			throw new Exception("Arg_CannotBeNaN");
+		}
+
+		double num = value * scale;
+		if ((num > Long.valueOf(MaxMilliSeconds))
+				|| (num < Long.valueOf(MinMilliSeconds))) {
+			throw new Exception("Overflow_TimeSpanTooLong");
+		}
+		return new TimeSpan((long) ((num) * TicksPerMillisecond));
+	}
+
+	/* Returns a TimeSpan that represents a specified number of milliseconds. */
+	public static TimeSpan fromMilliseconds(double value) throws Exception {
+		return interval(value, 1);
+	}
+
+	/*
+	 * Returns a TimeSpan that represents a specified number of minutes, where
+	 * the specification is accurate to the nearest millisecond.
+	 */
+	public static TimeSpan fromMinutes(double value) throws Exception {
+		return interval(value, MillisPerMinute);
+	}
+
+	/* Returns a TimeSpan whose value is the negated value of this instance. */
+	public TimeSpan negate() throws Exception {
+		if (this.ticks == MinValue.ticks) {
+			throw new Exception("Overflow_NegateTwosCompNum");
+		}
+		return new TimeSpan(-this.ticks);
+	}
+
+	/*
+	 * Constructs a new TimeSpan object from a time interval specified in a
+	 * string.
+	 */
+	public static TimeSpan parse(String s) {
+
+		StringParser parser = new StringParser();
+
+		return new TimeSpan(parser.parse(s));
+	}
+
+	/*
+	 * Constructs a new TimeSpan object from a time interval specified in a
+	 * string.
+	 */
+	public static boolean tryParse(String s, OutParameter result) {
+		long num = 0;
+		OutParameter out = new OutParameter(num);
+		StringParser parser = new StringParser();
+		if (parser.tryParse(s, out)) {
+			result.timeSpan = new TimeSpan(out.value);
+			return true;
+		}
+		result.timeSpan = new TimeSpan((long) 0);
+		return false;
+	}
+
+	public static TimeSpan fromSeconds(double value) throws Exception {
+		return interval(value, MillisPerSecond);
+	}
+
+	/* Subtracts a specified TimeSpan from another specified TimeSpan. */
+	public TimeSpan subtract(TimeSpan ts) throws Exception {
+		long ticks = this.ticks - ts.ticks;
+		if (((this.ticks >> 0x3f) != (ts.ticks >> 0x3f))
+				&& ((this.ticks >> 0x3f) != (ticks >> 0x3f))) {
+			throw new Exception("Overflow_TimeSpanTooLong");
+		}
+		return new TimeSpan(ticks);
+	}
+
+	public static TimeSpan fromTicks(long value) {
+		return new TimeSpan(value);
+	}
+
+	public static long timeToTicks(int hour, int minute, int second)
+			throws Exception {
+		long num = ((SencondsPerHour * (long) hour) + ((long) minute * 60)) + (long) second;
+		if ((num > Long.valueOf(MaxSeconds))
+				|| (num < Long.valueOf(MinSeconds))) {
+			throw new Exception("Overflow_TimeSpanTooLong");
+		}
+		return (num * TicksPerSecond);
+	}
+
+	private String intToString(int n, int digits) {
+		return ParseNumbers.intToString(n, 10, digits, (char) 0, 0);
+	}
+
+	/*
+	 * Overridden. Returns the string representation of the value of this
+	 * instance.
+	 */
+	public String toString() {
+		StringBuilder builder = new StringBuilder();
+		int num = (int) (this.ticks / Long.valueOf(TicksPerDay)); // days
+		long num2 = this.ticks % Long.valueOf(TicksPerDay); // Ticks in one
+		// days
+		if (this.ticks < 0) {
+			builder.append("-");
+			num = -num;
+			num2 = -num2;
+		}
+		if (num != 0) {// if day exists
+			builder.append(num);
+			builder.append(".");// append "."beween days and hours
+		}
+
+		// hours, ranging from 0 to 23
+		builder.append(this.intToString((int) ((num2 / Long
+				.valueOf(TicksPerHour)) % ((long) HoursPerDay)), 2));
+		builder.append(":");
+
+		// munites, ranging from 0 to 59
+		builder.append(this.intToString(
+				(int) ((num2 / ((long) TicksPerMinute)) % ((long) 60)), 2));
+		builder.append(":");
+		// seconds, ranging from 0 to 59
+		builder.append(this.intToString(
+				(int) ((num2 / ((long) TicksPerSecond)) % ((long) 60)), 2));
+		int n = (int) (num2 % ((long) TicksPerSecond));
+		if (n != 0) {
+			builder.append(".");
+			builder.append(this.intToString(n, 7));
+		}
+		return builder.toString();
+	}
+
+	/**
+	 * imitate
+	 * 
+	 * 
+	 */
+	public static TimeSpan operatorMinus(TimeSpan t) throws Exception {
+		if (t.ticks == MinValue.ticks) {
+			throw new Exception("Overflow_NegateTwosCompNum");
+		}
+		return new TimeSpan(-t.ticks);
+	}
+
+	public static TimeSpan operatorMinus(TimeSpan t1, TimeSpan t2)
+			throws Exception {
+		return t1.subtract(t2);
+	}
+
+	public static TimeSpan operatorPlus(TimeSpan t) {
+		return t;
+	}
+
+	public static TimeSpan operatorPlus(TimeSpan t1, TimeSpan t2)
+			throws Exception {
+		return t1.add(t2);
+	}
+
+	public static boolean operatorEqual(TimeSpan t1, TimeSpan t2) {
+		return (t1.ticks == t2.ticks);
+	}
+
+	public static boolean operatorNotEqual(TimeSpan t1, TimeSpan t2) {
+		return (t1.ticks != t2.ticks);
+	}
+
+	public static boolean operatorLess(TimeSpan t1, TimeSpan t2) {
+		return (t1.ticks < t2.ticks);
+	}
+
+	public static boolean operatorLessEqual(TimeSpan t1, TimeSpan t2) {
+		return (t1.ticks <= t2.ticks);
+	}
+
+	public static boolean operatorMore(TimeSpan t1, TimeSpan t2) {
+		return (t1.ticks > t2.ticks);
+	}
+
+	public static boolean operatorMoreEqual(TimeSpan t1, TimeSpan t2) {
+		return (t1.ticks >= t2.ticks);
+	}
+
+	static {
+		Zero = new TimeSpan((long) 0);
+		MaxValue = new TimeSpan(Long.valueOf("7fffffffffffffff", 16));
+		MinValue = new TimeSpan(Long.valueOf(MinMilliSeconds));
+	}
+}
+
+/**
+ * DOC x class global comment. Detailled comment <br/>
+ * 
+ */
+class StringParser {
+
+	public static final long TicksPerDay = Long.valueOf("c92a69c000", 16);
+
+	public static final long TicksPerHour = Long.valueOf("861c46800", 16);
+
+	public static final long TicksPerMinute = 0x23C34600;
+
+	public static final long TicksPerSecond = 0x989680;
+
+	String str;
+
+	char ch;
+
+	int pos;
+
+	int len;
+
+	private ParseError error;
+
+	/* get the next char position and corresponding value */
+	private void nextChar() {
+		if (this.pos < this.len) {
+			this.pos++;
+		}
+		this.ch = (this.pos < this.len) ? this.str.charAt(this.pos) : '\0';
+	}
+
+	private char nextNonDigit() {
+
+		for (int i = this.pos; i < this.len; i++) {
+			char ch = this.str.charAt(i);
+			if ((ch < '0') || (ch > '9')) {
+				return ch;
+			}
+		}
+		return '\0';
+	}
+
+	/*
+	 * Constructs a new TimeSpan object from a time interval specified in a
+	 * string.
+	 */
+	public long parse(String s) {
+		long num = 0;
+		OutParameter out = new OutParameter(num);
+
+		if (this.tryParse(s, out)) {
+			return out.value;
+		}
+		switch (this.error) {
+		case Format:
+			throw new XWTException("Format_InvalidString");
+
+		case Overflow:
+			throw new XWTException("Overflow_TimeSpanTooLong");
+
+		case OverflowHoursMinutesSeconds:
+			throw new XWTException("Overflow_TimeSpanElementTooLarge");
+
+		case ArgumentNull:
+			throw new XWTException("s");
+		}
+		return (long) 0;
+	}
+
+	/*
+	 * Constructs a new TimeSpan object from a time interval specified in a
+	 * string. Parameters specify the time interval and the variable where the
+	 * new TimeSpan object is returned.
+	 */
+
+	/*
+	 * this piece of code is not correct, because in .net it support "out",
+	 * while in Java , it dose not
+	 */
+	public boolean tryParse(String s, OutParameter out) {// TODO,
+
+		long time = 0;
+		out.value = 0;
+
+		OutParameter timeOut = new OutParameter(time);
+
+		if (s == null) {
+			this.error = ParseError.ArgumentNull;
+			return false;
+		}
+
+		this.str = s;
+		this.len = s.length();
+		this.pos = -1;
+		this.nextChar();
+		this.skipBlanks();
+		boolean flag = false;
+
+		if (this.ch == '-') { // year, month, date
+			flag = true;
+			this.nextChar();
+		}
+
+		if (this.nextNonDigit() == ':') {// hour, minutes, seconds
+			if (!this.parseTime(timeOut)) {
+				return false;
+			}
+		} else {
+
+			int i = 0;
+			OutParameter iOut = new OutParameter(i);
+
+			if (!this.parseInt(0xa2e3ff, iOut)) {
+				return false;
+			}
+			timeOut.value = iOut.value * 0xc92a69c000L;
+			if (this.ch == '.') {
+				long num3 = 0;
+				OutParameter num3Out = new OutParameter(num3);
+				this.nextChar();
+				if (!this.parseTime(num3Out)) {
+					return false;
+				}
+				timeOut.value += num3Out.value;
+			}
+		}
+		if (flag) {
+			timeOut.value = -timeOut.value;
+			if (timeOut.value > 0) {
+				this.error = ParseError.Overflow;
+				return false;
+			}
+		} else if (timeOut.value < 0) {
+			this.error = ParseError.Overflow;
+			return false;
+		}
+
+		this.skipBlanks();
+
+		if (this.pos < this.len) {
+			this.error = ParseError.Format;
+			return false;
+		}
+
+		out.value = timeOut.value;
+		return true;
+	}
+
+	/* max stands hours, minutes 59 */
+	private boolean parseInt(int max, OutParameter out) {// i is munites <60,
+		// decide minutes
+		// are whether
+		// overflow
+		out.value = 0;
+		int pos = this.pos;
+
+		while ((this.ch >= '0') && (this.ch <= '9')) {
+
+			if ((((long) out.value) & 0xf0000000L) != 0) {
+				this.error = ParseError.Overflow;
+				return false;
+			}
+
+			out.value = ((out.value * 10) + this.ch) - 0x30;
+
+			if (out.value < 0) {
+				this.error = ParseError.Overflow;
+				return false;
+			}
+			this.nextChar();
+		}
+		if (pos == this.pos) {
+			this.error = ParseError.Format;
+			return false;
+		}
+		if (out.value > max) {
+			this.error = ParseError.Overflow;
+			return false;
+		}
+		return true;
+	}
+
+	private boolean parseTime(OutParameter out) {
+		int i = 0;
+		out.value = 0;
+
+		OutParameter iOut = new OutParameter(i);
+
+		if (!this.parseInt(0x17, iOut)) {// parse hours 0-23
+			if (this.error == ParseError.Overflow) {
+				this.error = ParseError.OverflowHoursMinutesSeconds;
+			}
+			return false;
+		}
+
+		out.value = iOut.value * 0x861c46800L;
+
+		if (this.ch != ':') {// not time format
+			this.error = ParseError.Format;
+			return false;
+		}
+
+		this.nextChar();
+
+		if (!this.parseInt(0x3b, iOut)) {// parse minutes 0-59
+			if (this.error == ParseError.Overflow) {
+				this.error = ParseError.OverflowHoursMinutesSeconds;
+			}
+			return false;
+		}
+
+		out.value += (iOut.value * 0x23c34600L);
+
+		if (this.ch == ':') {
+			this.nextChar();
+			if (this.ch != '.') {
+
+				if (!this.parseInt(0x3b, iOut)) {// parse seconds 0-59
+					if (this.error == ParseError.Overflow) {
+						this.error = ParseError.OverflowHoursMinutesSeconds;
+					}
+					return false;
+				}
+				out.value += (iOut.value * 0x989680L);
+			}
+
+			if (this.ch == '.') {
+
+				this.nextChar();
+				int num2 = 0x989680;
+
+				while (((num2 > 1) && (this.ch >= '0')) && (this.ch <= '9')) {
+					num2 /= 10;
+					out.value += (this.ch - '0') * num2;
+					this.nextChar();
+				}
+			}
+		}
+		return true;
+	}
+
+	private void skipBlanks() {
+		while ((this.ch == ' ') || (this.ch == '\t')) {
+			this.nextChar();
+		}
+	}
+
+	private enum ParseError {
+
+		Format,
+
+		Overflow,
+
+		OverflowHoursMinutesSeconds,
+
+		ArgumentNull;
+	}
+}
+
+class OutParameter {
+
+	long value = 0;
+
+	TimeSpan timeSpan = null;
+
+	/**
+	 * DOC x OutParameter constructor comment.
+	 * 
+	 * @param value
+	 */
+	public OutParameter(long value) {
+		super();
+		this.value = value;
+	}
+
+	public OutParameter(TimeSpan timeSpan) {
+		super();
+		this.timeSpan = timeSpan;
+	}
+}
+
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Timeline.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Timeline.java
new file mode 100644
index 0000000..63a0b1d
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Timeline.java
@@ -0,0 +1,127 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import org.eclipse.xwt.animation.internal.ITimeline;
+
+/**
+ * 
+ * @author yyang
+ */
+public abstract class Timeline {
+	static public Timeline[] EMPTY_ARRAY = new Timeline[0];
+
+	protected int desiredFrameRate = 0;
+	protected double accelerationRatio = 0;
+	protected boolean autoReverse = false;
+	protected TimeSpan beginTime = null;
+	protected double decelerationRatio = 0;
+	protected Duration duration = Duration.getAutomatic();
+	protected FillBehavior fillBehavior = FillBehavior.HoldEnd;
+	protected String name;
+	protected double speedRatio = 0;
+	protected RepeatBehavior repeatBehavior = RepeatBehavior.once;
+
+	public int getDesiredFrameRate() {
+		return desiredFrameRate;
+	}
+
+	public void setDesiredFrameRate(int desiredFrameRate) {
+		this.desiredFrameRate = desiredFrameRate;
+	}
+
+	public double getAccelerationRatio() {
+		return accelerationRatio;
+	}
+
+	public void setAccelerationRatio(double accelerationRatio) {
+		this.accelerationRatio = accelerationRatio;
+	}
+
+	public boolean isAutoReverse() {
+		return autoReverse;
+	}
+
+	public void setAutoReverse(boolean autoReverse) {
+		this.autoReverse = autoReverse;
+	}
+
+	public TimeSpan getBeginTime() {
+		return beginTime;
+	}
+
+	public void setBeginTime(TimeSpan beginTime) {
+		this.beginTime = beginTime;
+	}
+
+	public double getDecelerationRatio() {
+		return decelerationRatio;
+	}
+
+	public void setDecelerationRatio(double decelerationRatio) {
+		this.decelerationRatio = decelerationRatio;
+	}
+
+	public Duration getDuration() {
+		return duration;
+	}
+
+	public void setDuration(Duration duration) {
+		this.duration = duration;
+	}
+
+	public FillBehavior getFillBehavior() {
+		return fillBehavior;
+	}
+
+	public void setFillBehavior(FillBehavior fillBehavior) {
+		this.fillBehavior = fillBehavior;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public double getSpeedRatio() {
+		return speedRatio;
+	}
+
+	public void setSpeedRatio(double speedRatio) {
+		this.speedRatio = speedRatio;
+	}
+
+	public RepeatBehavior getRepeatBehavior() {
+		return repeatBehavior;
+	}
+
+	public void setRepeatBehavior(RepeatBehavior repeatBehavior) {
+		this.repeatBehavior = repeatBehavior;
+	}
+
+	protected void updateTimeline(ITimeline timeline, Object target) {
+	}
+
+	protected void initialize(Object target) {
+	}
+
+	protected void endFinalize(Object target) {
+	}
+	
+	protected Object findTarget(Object target) {
+		return target;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/TimelineGroup.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/TimelineGroup.java
new file mode 100644
index 0000000..02afab9
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/TimelineGroup.java
@@ -0,0 +1,143 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.WeakHashMap;
+
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.animation.internal.AnimationManager;
+import org.eclipse.xwt.animation.internal.ITimeline;
+import org.eclipse.xwt.animation.internal.ITimelineGroup;
+import org.eclipse.xwt.animation.internal.ScenarioTimeline;
+import org.eclipse.xwt.animation.internal.TridentTimeline;
+import org.eclipse.xwt.annotation.Containment;
+import org.pushingpixels.trident.TimelineScenario;
+
+public class TimelineGroup extends Timeline {
+	private Timeline[] children = EMPTY_ARRAY;
+
+	private Map<Widget, ITimeline> timelines = new WeakHashMap<Widget, ITimeline>();
+
+	@Containment
+	public Timeline[] getChildren() {
+		return children;
+	}
+
+	public void setChildren(Timeline[] children) {
+		this.children = children;
+	}
+
+	protected ITimelineGroup createTimelineGroup(Object target) {
+		return new ScenarioTimeline(this, new TimelineScenario(), target);
+	}
+
+	public void initialize(Object target) {
+		for (Timeline child : children) {
+			child.initialize(target);
+		}
+	}
+	
+	public void endFinalize(Object target) {
+		for (Timeline child : children) {
+			child.endFinalize(target);
+		}
+	}
+	
+	public void start(final Event event, final Object target, Runnable endRunnable) {
+		ITimeline timeline = createTimelineGroup(findTarget(target));
+		timelines.put(event.widget, timeline);
+		AnimationManager.getInstance().addTimeline(timeline);
+		updateTimeline(timeline, target);
+		timeline.addStateChangedRunnable(endRunnable);
+		AnimationManager.getInstance().play(timeline);
+	}
+
+	public void stop(Event event, Runnable stateChangedRunnable) {
+		ITimeline timeline = timelines.get(event.widget);
+		if (timeline != null) {
+			timeline.addStateChangedRunnable(stateChangedRunnable);
+			AnimationManager.getInstance().stop(timeline);
+		}
+	}
+
+	public void pause(Event event, Runnable endRunnable) {
+		ITimeline timeline = timelines.get(event.widget);
+		if (timeline != null) {
+			timeline.addStateChangedRunnable(endRunnable);
+			AnimationManager.getInstance().pause(timeline);
+		}
+	}
+
+	public void resume(Event event, Runnable endRunnable) {
+		ITimeline timeline = timelines.get(event.widget);
+		if (timeline != null) {
+			timeline.addStateChangedRunnable(endRunnable);
+			AnimationManager.getInstance().resume(timeline);
+		}
+	}
+
+	public void playReverse(Event event, Runnable endRunnable) {
+		ITimeline timeline = timelines.get(event.widget);
+		if (timeline != null) {
+			timeline.addStateChangedRunnable(endRunnable);
+			AnimationManager.getInstance().playReverse(timeline);
+		}
+	}
+
+	@Override
+	protected void updateTimeline(ITimeline timeline, Object target) {
+		super.updateTimeline(timeline, target);
+		ITimelineGroup timelineGroup = (ITimelineGroup) timeline;
+		HashMap<Object, HashMap<TimeSpan, TridentTimeline>> map = new HashMap<Object, HashMap<TimeSpan, TridentTimeline>>();
+
+		for (Timeline child : children) {
+			if (child instanceof ParallelTimeline) {
+				TimelineScenario scenario = new TimelineScenario.Parallel();
+				ScenarioTimeline scenarioTimeline = new ScenarioTimeline(child,
+						scenario, child.findTarget(target));
+				child.updateTimeline(scenarioTimeline, target);
+				timelineGroup.addTimeline(scenarioTimeline);
+			} else if (child instanceof TimelineGroup) {
+				TimelineScenario scenario = new TimelineScenario.Sequence();
+				ScenarioTimeline scenarioTimeline = new ScenarioTimeline(child,
+						scenario, child.findTarget(target));
+				child.updateTimeline(scenarioTimeline, target);
+				timelineGroup.addTimeline(scenarioTimeline);
+			} else {
+				Object resolveTarget = child.findTarget(target);
+				HashMap<TimeSpan, TridentTimeline> tridentTimelineMap = map.get(resolveTarget);
+				if (tridentTimelineMap == null) {
+					tridentTimelineMap = new HashMap<TimeSpan, TridentTimeline>(); 
+					map.put(resolveTarget, tridentTimelineMap);
+				}
+				
+				TimeSpan timeSpan = child.getBeginTime();
+				TridentTimeline tridentTimeline = tridentTimelineMap.get(child.getBeginTime());
+				if (tridentTimeline == null) {
+					if (!(resolveTarget instanceof Widget)) {
+						throw new XWTException("The target of animation should be a Widget");
+					}
+					tridentTimeline = new TridentTimeline(child,
+							(Widget) resolveTarget);
+					timelineGroup.addTimeline(tridentTimeline);
+					tridentTimelineMap.put(timeSpan, tridentTimeline);
+				}
+				child.updateTimeline(tridentTimeline, target);
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Vector3DAnimationBase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Vector3DAnimationBase.java
new file mode 100644
index 0000000..c8fc923
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/Vector3DAnimationBase.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public abstract class Vector3DAnimationBase extends AnimationTimeline {
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/VectorAnimationBase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/VectorAnimationBase.java
new file mode 100644
index 0000000..ec1ae9d
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/VectorAnimationBase.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation;
+
+public abstract class VectorAnimationBase extends AnimationTimeline {
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/AnimationManager.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/AnimationManager.java
new file mode 100644
index 0000000..d12fdca
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/AnimationManager.java
@@ -0,0 +1,117 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation.internal;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.WeakHashMap;
+
+/**
+ * This class manages all scenarios and orchestrates the scenarios execution.
+ * 
+ * @author yyang
+ */
+public class AnimationManager {
+	private WeakHashMap<Object, ScenarioManager> scenarioManagers = new WeakHashMap<Object, ScenarioManager>();
+	private static AnimationManager INSTANCE;
+		
+	/**
+	 * This class manages all scenarios of an UI element. It orchestrates the scenarios execution.
+	 * 
+	 * @author yyang
+	 */
+	static class ScenarioManager {
+		private Collection<ITimeline> timelines = new ArrayList<ITimeline>();
+
+		public void play(ITimeline timeline) {
+			for (ITimeline timelineScenario : timelines) {
+				if (timelineScenario != timeline) {
+					timelineScenario.cancel();
+				}
+			}
+			timeline.play();
+		}
+
+		public void cancel(ITimeline timeline) {
+			timeline.end();
+		}
+		
+		public void pause(ITimeline timeline) {
+			timeline.pause();
+		}
+		
+		public void resume(ITimeline timeline) {
+			timeline.resume();
+		}
+		
+		public void playReverse(ITimeline timeline) {
+			timeline.playReverse();
+		}
+
+		public void addTimeline(ITimeline timeline) {
+			timelines.add(timeline);	
+		}
+	}
+	
+	public static AnimationManager getInstance() {
+		if (INSTANCE == null) {
+			INSTANCE = new AnimationManager();
+		}
+		return INSTANCE;
+	}
+	
+	
+	public void play(ITimeline timeline) {
+		ScenarioManager manager = scenarioManagers.get(timeline.getTarget());
+		if (manager != null) {
+			manager.play(timeline);
+		}
+	}
+	
+	public void stop(ITimeline timeline) {
+		ScenarioManager manager = scenarioManagers.get(timeline.getTarget());
+		if (manager != null) {
+			manager.cancel(timeline);
+		}
+	}
+	
+	public void pause(ITimeline timeline) {
+		ScenarioManager manager = scenarioManagers.get(timeline.getTarget());
+		if (manager != null) {
+			manager.pause(timeline);
+		}
+	}
+
+	public void resume(ITimeline timeline) {
+		ScenarioManager manager = scenarioManagers.get(timeline.getTarget());
+		if (manager != null) {
+			manager.resume(timeline);
+		}
+	}
+
+	public void playReverse(ITimeline timeline) {
+		ScenarioManager manager = scenarioManagers.get(timeline.getTarget());
+		if (manager != null) {
+			manager.playReverse(timeline);
+		}
+	}
+
+	public void addTimeline(ITimeline timeline) {
+		ScenarioManager manager = scenarioManagers.get(timeline.getTarget());
+		if (manager == null) {
+			manager = new ScenarioManager();
+			scenarioManagers.put(timeline.getTarget(), manager);
+		}
+		manager.addTimeline(timeline);	
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/ITimeline.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/ITimeline.java
new file mode 100644
index 0000000..42e7cbe
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/ITimeline.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation.internal;
+
+import org.pushingpixels.trident.TimelineScenario.TimelineScenarioActor;
+
+public interface ITimeline extends TimelineScenarioActor {
+	public Object getTarget();
+	
+	public void playReverse();
+
+	public void end();
+
+	public void abort();
+
+	public void cancel();
+
+	public void pause();
+
+	public void resume();
+	
+	public void addStateChangedRunnable(Runnable runnable);
+	
+	public void removeStateChangedRunnable(Runnable runnable);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/ITimelineGroup.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/ITimelineGroup.java
new file mode 100644
index 0000000..b35885c
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/ITimelineGroup.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation.internal;
+
+public interface ITimelineGroup extends ITimeline {
+	public void addTimeline(ITimeline timeline);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/PathPropertyAccessor.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/PathPropertyAccessor.java
new file mode 100644
index 0000000..07cce9d
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/PathPropertyAccessor.java
@@ -0,0 +1,92 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation.internal;
+
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.xwt.metadata.ModelUtils;
+import org.pushingpixels.trident.TimelinePropertyBuilder.PropertyAccessor;
+
+public class PathPropertyAccessor<T> implements PropertyAccessor<T> {
+	private String path;
+	private String[] segments;
+
+	private Object cacheObject;
+	private Object cacheHost;
+	private IProperty property;
+
+	public PathPropertyAccessor(String path) {
+		this.path = path;
+		segments = path.split("\\.");
+	}
+
+	public T get(Object object, String fieldName) {
+		checkCache(object);
+		try {
+			return (T) property.getValue(cacheObject);
+		} catch (Exception e) {
+			throw new XWTException("Value access fails: property \""
+					+ segments[segments.length - 1] + "\" of the path \""
+					+ path + "\" is not found in the class \""
+					+ object.getClass().getName() + "\".");
+		}
+	}
+
+	public void set(Object object, String fieldName, T value) {
+		checkCache(object);
+
+		try {
+			property.setValue(cacheObject, value);
+		} catch (Exception e) {
+			throw new XWTException("Value access fails: property \""
+					+ segments[segments.length - 1] + "\" of the path \""
+					+ path + "\" is not found in the class \""
+					+ object.getClass().getName() + "\".");
+		}
+	}
+
+	protected void checkCache(Object object) {
+		if (object == cacheHost && cacheObject != null) {
+			return;
+		}
+		Object target = object;
+		IProperty currentProperty = null;
+		IMetaclass metaclass = XWT.getMetaclass(target);
+		for (int i = 0; i < segments.length; i++) {
+			String segment = ModelUtils.normalizePropertyName(segments[i]);
+			currentProperty = metaclass.findProperty(segment);
+			if (currentProperty == null) {
+				cacheObject = null;
+				throw new XWTException("Property \"" + segment
+						+ "\" of the path \"" + path
+						+ "\" is not found in the class \""
+						+ object.getClass().getName() + "\".");
+			}
+			try {
+				cacheObject = target;
+				target = currentProperty.getValue(target);
+				metaclass = XWT.getMetaclass(target);
+			} catch (Exception e) {
+				cacheObject = null;
+				throw new XWTException("Value access fails: property \""
+						+ segment + "\" of the path \"" + path
+						+ "\" is not found in the class \""
+						+ object.getClass().getName() + "\".");
+			}
+		}
+		property = currentProperty;
+		cacheHost = object;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/ScenarioTimeline.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/ScenarioTimeline.java
new file mode 100644
index 0000000..58540d5
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/ScenarioTimeline.java
@@ -0,0 +1,143 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation.internal;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.xwt.animation.RepeatBehavior;
+import org.pushingpixels.trident.TimelineScenario;
+import org.pushingpixels.trident.callback.TimelineScenarioCallback;
+
+public class ScenarioTimeline extends TimelineScenario implements ITimelineGroup {
+	protected TimelineScenario tridentTimelineScenario;
+	protected org.eclipse.xwt.animation.Timeline xwtTimeline;
+	protected Object target;
+	protected boolean done = false;
+	private Collection<ITimeline> actors = new ArrayList<ITimeline>();
+	private Collection<Runnable> stateChangedRunnables = new ArrayList<Runnable>();
+
+	public ScenarioTimeline(org.eclipse.xwt.animation.Timeline xwtTimeline, TimelineScenario tridentTimelineScenario, Object target) {
+		this.xwtTimeline = xwtTimeline;
+		this.target = target;
+		this.tridentTimelineScenario = tridentTimelineScenario;
+		this.tridentTimelineScenario.addCallback(new TimelineScenarioCallback() {
+			public void onTimelineScenarioDone() {
+				synchronized (ScenarioTimeline.this) {
+					done = true;
+					for (Runnable runnable : getStateChangedRunnables()) {
+						runnable.run();
+					}
+				}
+			}
+		});
+	}
+
+	public Collection<Runnable> getStateChangedRunnables() {
+		return stateChangedRunnables;
+	}
+
+	public void addStateChangedRunnable(Runnable stateChangedRunnable) {
+		if (stateChangedRunnable == null) {
+			return;
+		}
+		if (!this.stateChangedRunnables.contains(stateChangedRunnable)) {
+			this.stateChangedRunnables.add(stateChangedRunnable);			
+		}
+	}
+
+	public void removeStateChangedRunnable(Runnable stateChangedRunnable) {
+		this.stateChangedRunnables.remove(stateChangedRunnable);
+	}
+	
+	public Object getTarget() {
+		return target;
+	}
+
+	public void play() {
+		for (ITimeline timeline : actors) {
+			timeline.resetDoneFlag();
+			this.tridentTimelineScenario.addScenarioActor(timeline);
+		}
+		this.tridentTimelineScenario.play();
+	}
+	
+	public void playLoop(RepeatBehavior behavior) {
+		this.tridentTimelineScenario.playLoop();
+	}
+
+	public void end() {
+		if (this.tridentTimelineScenario == null) {
+			return;
+		}
+		this.tridentTimelineScenario.cancel();
+		for (ITimeline timeline : actors) {
+			timeline.end();
+		}
+	}
+
+	public void cancel() {
+		if (this.tridentTimelineScenario == null) {
+			return;
+		}
+		this.tridentTimelineScenario.cancel();
+		for (ITimeline timeline : actors) {
+			timeline.cancel();
+		}
+	}
+
+	public void abort() {
+		if (this.tridentTimelineScenario == null) {
+			return;
+		}
+		this.tridentTimelineScenario.cancel();
+		for (ITimeline timeline : actors) {
+			timeline.abort();
+		}		
+	}
+	
+	public void pause() {
+		if (this.tridentTimelineScenario == null) {
+			return;
+		}
+		this.tridentTimelineScenario.suspend();
+	}
+
+	public void resume() {
+		if (this.tridentTimelineScenario == null) {
+			return;
+		}
+		this.tridentTimelineScenario.resume();
+	}
+
+	public void playReverse() {
+	}
+	
+	public boolean isDone() {
+		synchronized (ScenarioTimeline.this) {
+			return done;
+		}
+	}
+	
+	public void resetDoneFlag() {
+		done = false;
+	}
+	
+	public boolean supportsReplay() {
+		return false;
+	}
+	
+	public void addTimeline(ITimeline timeline) {
+		actors.add(timeline);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/TridentTimeline.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/TridentTimeline.java
new file mode 100644
index 0000000..d6e6b5e
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/internal/TridentTimeline.java
@@ -0,0 +1,233 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation.internal;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.animation.Duration;
+import org.eclipse.xwt.animation.IEasingFunction;
+import org.eclipse.xwt.animation.RepeatBehavior;
+import org.eclipse.xwt.animation.TimeSpan;
+import org.pushingpixels.trident.Timeline;
+import org.pushingpixels.trident.TimelinePropertyBuilder;
+import org.pushingpixels.trident.Timeline.TimelineState;
+import org.pushingpixels.trident.TimelinePropertyBuilder.DefaultPropertySetter;
+import org.pushingpixels.trident.TimelineScenario.TimelineScenarioActor;
+import org.pushingpixels.trident.callback.TimelineCallback;
+import org.pushingpixels.trident.swt.SWTRepaintCallback;
+
+public class TridentTimeline implements ITimeline, TimelineScenarioActor {
+	protected Timeline tridentTimeline;
+	protected org.eclipse.xwt.animation.Timeline xwtTimeline;
+	protected Object target;
+	private boolean isPlayed = false;
+	private Collection<Runnable> stateChangedRunnables = new ArrayList<Runnable>();
+
+	public TridentTimeline(org.eclipse.xwt.animation.Timeline xwtTimeline,
+			Widget target) {
+		this.xwtTimeline = xwtTimeline;
+		this.target = target;
+		this.tridentTimeline = createTimeline(target);
+		tridentTimeline.addCallback(new TimelineCallback() {
+			public void onTimelineStateChanged(TimelineState oldState,
+					TimelineState newState, float durationFraction,
+					float timelinePosition) {
+				for (Runnable runnable : getStateChangedRunnables()) {
+					runnable.run();
+				}
+			}
+			public void onTimelinePulse(float durationFraction, float timelinePosition) {
+			}
+		});
+	}
+
+	public Collection<Runnable> getStateChangedRunnables() {
+		return stateChangedRunnables;
+	}
+
+	public void addStateChangedRunnable(Runnable stateChangedRunnable) {
+		if (!this.stateChangedRunnables.contains(stateChangedRunnable)) {
+			this.stateChangedRunnables.add(stateChangedRunnable);			
+		}
+	}
+
+	public void removeStateChangedRunnable(Runnable stateChangedRunnable) {
+		this.stateChangedRunnables.remove(stateChangedRunnable);
+	}
+
+	public Object getTarget() {
+		return target;
+	}
+
+	public void play() {
+		if (this.isPlayed) {
+			this.tridentTimeline.replay();
+		} else {
+			Duration duration = this.xwtTimeline.getDuration();
+			if (duration != null && duration.hasTimeSpan()) {
+				this.tridentTimeline.setDuration(duration.getTimeSpan()
+						.getMilliseconds());
+			} else {
+				this.tridentTimeline.setDuration(10000);
+			}
+			RepeatBehavior behavior = xwtTimeline.getRepeatBehavior();
+			playLoop(behavior);
+			isPlayed = true;
+		}
+	}
+
+	protected void setInitialValue() {
+
+	}
+
+	protected Timeline createTimeline(Widget target) {
+		org.pushingpixels.trident.Timeline timeline = new org.pushingpixels.trident.Timeline(
+				target);
+		Control control = (target instanceof Control ? (Control) target
+				: (Control) XWT.findParent(target, Control.class));
+		timeline.addCallback(new SWTRepaintCallback(control));
+
+		Duration duration = this.xwtTimeline.getDuration();
+		if (duration != null && duration.hasTimeSpan()) {
+			timeline.setDuration(duration.getTimeSpan().getMilliseconds());
+		} else {
+			timeline.setDuration(10000);
+		}
+		return timeline;
+	}
+
+	public void playLoop(RepeatBehavior behavior) {
+		org.pushingpixels.trident.Timeline.RepeatBehavior loopBehavior = org.pushingpixels.trident.Timeline.RepeatBehavior.LOOP;
+		if (xwtTimeline.isAutoReverse()) {
+			loopBehavior = org.pushingpixels.trident.Timeline.RepeatBehavior.REVERSE;
+		}
+
+		if (behavior.getHasCount()) {
+			double loopCount = behavior.getCount();
+			if (!behavior.getHasDuration()) {
+				this.tridentTimeline.playLoop((int) loopCount, loopBehavior);
+			} else {
+				Duration duration = behavior.getDuration();
+				this.tridentTimeline.playLoopSkipping((int) loopCount,
+						loopBehavior, duration.getTimeSpan().getMilliseconds());
+			}
+		} else {
+			if (!behavior.getHasDuration()) {
+				this.tridentTimeline.playLoop(loopBehavior);
+			} else {
+				Duration duration = behavior.getDuration();
+				this.tridentTimeline.playLoopSkipping(loopBehavior, duration
+						.getTimeSpan().getMilliseconds());
+			}
+		}
+	}
+
+	public void end() {
+		if (this.tridentTimeline == null) {
+			return;
+		}
+		this.tridentTimeline.end();
+	}
+
+	public void cancel() {
+		if (this.tridentTimeline == null) {
+			return;
+		}
+		this.tridentTimeline.cancel();
+	}
+
+	public void abort() {
+		if (this.tridentTimeline == null) {
+			return;
+		}
+		this.tridentTimeline.abort();
+	}
+
+	public void pause() {
+		if (this.tridentTimeline == null) {
+			return;
+		}
+		this.tridentTimeline.suspend();
+	}
+
+	public void resume() {
+		if (this.tridentTimeline == null) {
+			return;
+		}
+		this.tridentTimeline.resume();
+	}
+
+	public void playReverse() {
+		if (this.tridentTimeline == null) {
+			return;
+		}
+		this.tridentTimeline.playReverse();
+	}
+
+	public final <T> void addPropertyToInterpolate(String propName, T from, T to) {
+		if (to == null) {
+			throw new XWTException(
+					"\"to\" property of Animation cannot be null.");
+		}
+		TimelinePropertyBuilder<T> builder = Timeline.<T> property(propName);
+		if (from == null) {
+			builder.fromCurrent();
+		} else {
+			builder.from(from);
+		}
+		builder.to(to);
+		int index = propName.indexOf('.');
+		PathPropertyAccessor<T> propertyAccessor = null;
+		if (index != -1) {
+			propertyAccessor = new PathPropertyAccessor<T>(propName);
+			builder.accessWith(propertyAccessor);
+		}
+		this.tridentTimeline.addPropertyToInterpolate(builder);
+
+		TimeSpan timeSpan = this.xwtTimeline.getBeginTime();
+		if (timeSpan != null && timeSpan.ticks != 0) {
+			this.tridentTimeline.setInitialDelay(timeSpan.getMilliseconds());
+		} else if (from != null) {
+			if (propertyAccessor != null) {
+				propertyAccessor.set(target, propName, from);
+			} else {
+				DefaultPropertySetter<T> propertySetter = new DefaultPropertySetter<T>(
+						target, propName);
+				propertySetter.set(target, propName, from);
+			}
+		}
+	}
+
+	public void setEasingFunction(IEasingFunction easingFunction) {
+		if (easingFunction != null) {
+			this.tridentTimeline.setEase(easingFunction);
+		}
+	}
+
+	public boolean isDone() {
+		return tridentTimeline.isDone();
+	}
+
+	public void resetDoneFlag() {
+		tridentTimeline.resetDoneFlag();
+	}
+
+	public boolean supportsReplay() {
+		return tridentTimeline.supportsReplay();
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/interpolator/PointPropertyInterpolator.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/interpolator/PointPropertyInterpolator.java
new file mode 100644
index 0000000..3d4ed81
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/interpolator/PointPropertyInterpolator.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation.interpolator;
+
+import org.eclipse.swt.graphics.Point;
+import org.pushingpixels.trident.interpolator.PropertyInterpolator;
+
+public class PointPropertyInterpolator implements PropertyInterpolator<Point>{
+	private Point value = new Point(0, 0);
+	
+	public PointPropertyInterpolator() {
+	}
+	
+	public Class<?> getBasePropertyClass() {
+		return Point.class;
+	}
+	
+	public Point interpolate(Point from, Point to, float timelinePosition) {
+		double x = from.x + (to.x - from.x) * timelinePosition;
+		double y = from.y + (to.y - from.y) * timelinePosition;
+		value.x = (int)x;
+		value.y = (int)y;
+		return value;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/interpolator/RectanglePropertyInterpolator.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/interpolator/RectanglePropertyInterpolator.java
new file mode 100644
index 0000000..ae7b168
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/animation/interpolator/RectanglePropertyInterpolator.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.animation.interpolator;
+
+import org.eclipse.swt.graphics.Rectangle;
+import org.pushingpixels.trident.interpolator.PropertyInterpolator;
+
+public class RectanglePropertyInterpolator implements
+		PropertyInterpolator<Rectangle> {
+	private Rectangle value = new Rectangle(0, 0, 0, 0);
+
+	public RectanglePropertyInterpolator() {
+	}
+
+	public Class<?> getBasePropertyClass() {
+		return Rectangle.class;
+	}
+
+	public Rectangle interpolate(Rectangle from, Rectangle to,
+			float timelinePosition) {
+		double x = from.x + (to.x - from.x) * timelinePosition;
+		double y = from.y + (to.y - from.y) * timelinePosition;
+		double width = from.width + (to.width - from.width) * timelinePosition;
+		double height = from.height + (to.height - from.height)
+				* timelinePosition;
+		value.x = (int) x;
+		value.y = (int) y;
+		value.width = (int) width;
+		value.height = (int) height;
+		return value;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/annotation/Containment.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/annotation/Containment.java
new file mode 100644
index 0000000..d6336e1
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/annotation/Containment.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * To annotate which field should be containment
+ * 
+ * @author yyang
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.METHOD, ElementType.FIELD})
+public @interface Containment {
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/annotation/UI.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/annotation/UI.java
new file mode 100644
index 0000000..7305921
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/annotation/UI.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.FIELD)
+public @interface UI {
+	String value() default "";
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/annotation/UIBounds.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/annotation/UIBounds.java
new file mode 100644
index 0000000..b264bda
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/annotation/UIBounds.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.METHOD)
+public @interface UIBounds {
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/callback/IBeforeParsingCallback.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/callback/IBeforeParsingCallback.java
new file mode 100644
index 0000000..26d4c2c
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/callback/IBeforeParsingCallback.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.callback;
+
+public interface IBeforeParsingCallback {
+	String onParsing(String content);
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/callback/ICreatedCallback.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/callback/ICreatedCallback.java
new file mode 100644
index 0000000..7714b0a
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/callback/ICreatedCallback.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.callback;
+
+public interface ICreatedCallback {
+	void onCreated(Object sender);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/callback/ILoadedCallback.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/callback/ILoadedCallback.java
new file mode 100644
index 0000000..cdb2048
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/callback/ILoadedCallback.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.callback;
+
+public interface ILoadedCallback {
+	void onLoaded(Object sender);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/collection/CollectionView.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/collection/CollectionView.java
new file mode 100644
index 0000000..32e9d71
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/collection/CollectionView.java
@@ -0,0 +1,112 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.collection;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Locale;
+
+import org.eclipse.xwt.core.ICollectionView;
+
+/**
+ * Represents a view for grouping, sorting, filtering, and navigating a data
+ * collection.`
+ * 
+ * @author yyang
+ */
+public class CollectionView<T> implements ICollectionView<T> {
+	private T currentItem;
+	private int currentPosition = 0;
+	private Collection<T> sourceCollection = Collections.EMPTY_LIST;
+	private GroupDescription[] groupDescription = GroupDescription.EMPTY_ARRAY;
+	private Collection<T> groups = Collections.EMPTY_LIST;
+	
+	private Locale locale = Locale.getDefault();
+
+	private SortDescription[] sortDescription = SortDescription.EMPTY_ARRAY;
+
+	public GroupDescription[] getGroupDescription() {
+		return groupDescription;
+	}
+
+	public void setGroupDescription(GroupDescription[] groupDescription) {
+		this.groupDescription = groupDescription;
+	}
+
+	public Collection<T> getGroups() {
+		return groups;
+	}
+
+	public void setGroups(Collection<T> groups) {
+		this.groups = groups;
+	}
+
+	public Locale getLocale() {
+		return locale;
+	}
+
+	public void setLocale(Locale locale) {
+		this.locale = locale;
+	}
+
+	public SortDescription[] getSortDescription() {
+		return sortDescription;
+	}
+
+	public void setSortDescription(SortDescription[] sortDescription) {
+		this.sortDescription = sortDescription;
+	}
+
+	public void setCurrentPosition(int currentPosition) {
+		this.currentPosition = currentPosition;
+	}
+
+	public void setSourceCollection(Collection<T> sourceCollection) {
+		this.sourceCollection = sourceCollection;
+	}
+
+	public boolean canFilter() {
+		return false;
+	}
+
+	public boolean canGroup() {
+		return groupDescription.length > 0;
+	}
+
+	public boolean canSort() {
+		return sortDescription.length > 0;
+	}
+
+	public T getCurrentItem() {
+		return currentItem;
+	}
+	
+	public void setCurrentItem(T currentItem) {
+		this.currentItem = currentItem;
+	}
+
+	public int getCurrentPosition() {
+		return currentPosition;
+	}
+
+	public Collection<T> getSourceCollection() {
+		return sourceCollection;
+	}
+
+	public boolean isEmpty() {
+		if (canGroup()) {
+			return groups.isEmpty();
+		}
+		return sourceCollection.isEmpty();
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/collection/CollectionViewSource.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/collection/CollectionViewSource.java
new file mode 100644
index 0000000..6a55e91
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/collection/CollectionViewSource.java
@@ -0,0 +1,121 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.collection;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Locale;
+import java.util.Set;
+
+import org.eclipse.core.databinding.observable.IObservableCollection;
+import org.eclipse.core.databinding.observable.list.WritableList;
+import org.eclipse.core.databinding.observable.set.WritableSet;
+import org.eclipse.xwt.XWT;
+
+/**
+ * The proxy of a CollectionView class.
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class CollectionViewSource {
+	/**
+	 * Gets or sets the collection object from which to create this view. This is a dependency property. 
+	 */
+	private Object source;
+	
+	/**
+	 * Gets the view object that is currently associated with this instance of CollectionViewSource. This is a dependency property. 
+	 * 
+	 */	
+	private IObservableCollection view;
+		
+	private GroupDescription[] groupDescription = GroupDescription.EMPTY_ARRAY;
+
+	private SortDescription[] sortDescription = SortDescription.EMPTY_ARRAY;
+
+	private Locale locale = Locale.getDefault();
+	
+	/**
+	 * Gets or sets the desired view type.
+	 */
+	private Class<?> collectionViewType = Object.class;
+
+	public Object getSource() {
+		if (source == null) {			
+			source = new ArrayList<Object>();
+		}
+		return source;
+	}
+
+	public void setSource(Object source) {
+		if (this.source == source) {
+			return;
+		}
+		view = null;
+		this.source = source;
+	}
+
+	public IObservableCollection getView() {
+		if (view == null) {
+			Object source = getSource();
+			if (!(source instanceof IObservableCollection)) {
+				Class<?> elementType = getCollectionViewType();
+				if (source.getClass().isArray()) {
+					Object[] array = (Object[])source;
+					elementType = source.getClass().getComponentType();
+					source = Arrays.asList(array);
+				}
+				if (source instanceof List<?>) {
+					view = new WritableList(XWT.getRealm(), (List<?>)source, elementType);
+				}
+				else if (source instanceof Set<?>) {
+					view = new WritableSet(XWT.getRealm(), (List<?>)source, elementType);
+				}
+			}
+		}
+		return view;
+	}
+
+	public GroupDescription[] getGroupDescription() {
+		return groupDescription;
+	}
+
+	public void setGroupDescription(GroupDescription[] groupDescription) {
+		this.groupDescription = groupDescription;
+	}
+
+	public SortDescription[] getSortDescription() {
+		return sortDescription;
+	}
+
+	public void setSortDescription(SortDescription[] sortDescription) {
+		this.sortDescription = sortDescription;
+	}
+
+	public Class<?> getCollectionViewType() {
+		return collectionViewType;
+	}
+
+	public void setCollectionViewType(Class<?> collectionViewType) {
+		this.collectionViewType = collectionViewType;
+	}
+
+	public Locale getLocale() {
+		return locale;
+	}
+
+	public void setLocale(Locale locale) {
+		this.locale = locale;
+	} 
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/collection/GroupDescription.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/collection/GroupDescription.java
new file mode 100644
index 0000000..f42a80a
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/collection/GroupDescription.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.collection;
+
+/**
+ * Provides an abstract base class for types that describe how to divide the items in a collection into groups.
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class GroupDescription {
+	public static GroupDescription[] EMPTY_ARRAY = new GroupDescription[0];
+	
+	/**
+	 * Gets the collection of names that are used to initialize a group with a set of subgroups with the given names.
+	 */
+	protected String[] groupNames;
+
+	/**
+	 * 
+	 * @return
+	 */
+	public String[] getGroupNames() {
+		return groupNames;
+	}
+
+	/**
+	 * 
+	 * @param groupNames
+	 */
+	public void setGroupNames(String[] groupNames) {
+		this.groupNames = groupNames;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/collection/ListSortDirection.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/collection/ListSortDirection.java
new file mode 100644
index 0000000..f2bdcc2
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/collection/ListSortDirection.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.collection;
+
+/**
+ * Specifies the direction of a sort operation.
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public enum ListSortDirection {
+	Ascending, Descending;
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/collection/SortDescription.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/collection/SortDescription.java
new file mode 100644
index 0000000..656f998
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/collection/SortDescription.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.collection;
+
+/**
+ * Defines the direction and the property name to be used as the criteria for sorting a collection.
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class SortDescription {
+	public static SortDescription[] EMPTY_ARRAY = new SortDescription[0];
+
+	/**
+	 * Gets or sets a value that indicates whether to sort in ascending or descending order.
+	 */
+	private ListSortDirection direction = ListSortDirection.Ascending; 
+	
+	/**
+	 * Gets or sets the property name being used as the sorting criteria.
+	 */
+	private String propertyName;
+	
+	public ListSortDirection getDirection() {
+		return direction;
+	}
+	
+	public void setDirection(ListSortDirection direction) {
+		this.direction = direction;
+	}
+	
+	public String getPropertyName() {
+		return propertyName;
+	}
+	
+	public void setPropertyName(String propertyName) {
+		this.propertyName = propertyName;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/AbstractMultiValueConverter.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/AbstractMultiValueConverter.java
new file mode 100644
index 0000000..834e340
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/AbstractMultiValueConverter.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import org.eclipse.xwt.IMultiValueConverter;
+
+/**
+ * Default implementation class of IMultiValueConverter
+ * 
+ * @author yyang <yesc.yang@soyatec.com>
+ */
+public abstract class AbstractMultiValueConverter implements IMultiValueConverter {
+	
+	public Object convert(Object fromObject) {
+		if (!fromObject.getClass().isArray()) {
+			fromObject = new Object[]{fromObject};
+		}
+		return convert((Object[])fromObject);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/BindingToObject.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/BindingToObject.java
new file mode 100644
index 0000000..1cc7bb2
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/BindingToObject.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.xwt.core.IBinding;
+
+/**
+ * Binding to Object covnerter
+ * 
+ * @author yyang
+ */
+public class BindingToObject implements IConverter {
+	public static BindingToObject instance = new BindingToObject();
+
+	public Object convert(Object fromObject) {
+		IBinding binding = (IBinding) fromObject;
+		return binding.getValue(null);
+	}
+
+	public Object getFromType() {
+		return IBinding.class;
+	}
+
+	public Object getToType() {
+		return Object.class;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/CollectionToBoolean.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/CollectionToBoolean.java
new file mode 100644
index 0000000..138a25d
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/CollectionToBoolean.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import java.util.Collection;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+
+/**
+ * String to Boolean converter
+ * 
+ * @author yyang
+ */
+public class CollectionToBoolean implements IConverter {
+	public static CollectionToBoolean instance = new CollectionToBoolean();
+
+	public Object convert(Object fromObject) {
+		Collection<?> collection = (Collection<?>) fromObject;
+		return !collection.isEmpty();
+	}
+
+	public Object getFromType() {
+		return Collection.class;
+	}
+
+	public Object getToType() {
+		return Boolean.class;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/CollectionToInteger.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/CollectionToInteger.java
new file mode 100644
index 0000000..8663249
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/CollectionToInteger.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import java.util.Collection;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+
+/**
+ * String to Boolean converter
+ * 
+ * @author yyang
+ */
+public class CollectionToInteger implements IConverter {
+	public static CollectionToInteger instance = new CollectionToInteger();
+
+	public Object convert(Object fromObject) {
+		Collection<?> collection = (Collection<?>) fromObject;
+		return collection.size();
+	}
+
+	public Object getFromType() {
+		return Collection.class;
+	}
+
+	public Object getToType() {
+		return Integer.class;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/DateToString.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/DateToString.java
new file mode 100644
index 0000000..3744d1d
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/DateToString.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * Date to String converter
+ * 
+ * @author yyang
+ */
+public class DateToString extends ObjectToString {
+	private static final SimpleDateFormat FORMATTER = new SimpleDateFormat();
+	public static DateToString instance = new DateToString();
+
+	public DateToString() {
+		this(Date.class);
+	}
+
+	protected DateToString(Class<?> fromType) {
+		super(fromType);
+	}
+
+	public Object convert(Object fromObject) {
+		if (fromObject == null) {
+			return super.convert(null);
+		}
+		return FORMATTER.format((Date) fromObject);
+	}
+
+	public Object getToType() {
+		return String.class;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/EnumToString.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/EnumToString.java
new file mode 100644
index 0000000..c0b87e4
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/EnumToString.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.xwt.converters;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+
+public class EnumToString implements IConverter {
+	public static EnumToString instance = new EnumToString();
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)
+	 */
+	public Object convert(Object fromObject) {
+		return ((Enum<?>) fromObject).toString();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()
+	 */
+	public Object getFromType() {
+		return Enum.class;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()
+	 */
+	public Object getToType() {
+		return String.class;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/IStatusToBoolean.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/IStatusToBoolean.java
new file mode 100644
index 0000000..7d1cb68
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/IStatusToBoolean.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.core.runtime.IStatus;
+
+/**
+ * Binding to Object covnerter
+ * 
+ * @author yyang
+ */
+public class IStatusToBoolean implements IConverter {
+	public static IStatusToBoolean instance = new IStatusToBoolean();
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.
+	 * Object)
+	 */
+	public Object convert(Object fromObject) {
+		IStatus status = (IStatus) fromObject;
+		return status.isOK();
+	}
+
+	public Object getFromType() {
+		return IStatus.class;
+	}
+
+	public Object getToType() {
+		return Boolean.class;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/IStatusToString.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/IStatusToString.java
new file mode 100644
index 0000000..7db6834
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/IStatusToString.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.core.runtime.IStatus;
+
+/**
+ * Binding to Object covnerter
+ * 
+ * @author yyang
+ */
+public class IStatusToString implements IConverter {
+	public static IStatusToString instance = new IStatusToString();
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.
+	 * Object)
+	 */
+	public Object convert(Object fromObject) {
+		IStatus status = (IStatus) fromObject;
+		if (status.isOK()) {
+			return "";
+		}
+		return status.getMessage();
+	}
+
+	public Object getFromType() {
+		return IStatus.class;
+	}
+
+	public Object getToType() {
+		return String.class;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/ListToIObservableCollection.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/ListToIObservableCollection.java
new file mode 100644
index 0000000..8f459ce
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/ListToIObservableCollection.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import java.util.List;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.core.databinding.observable.IObservableCollection;
+import org.eclipse.core.databinding.observable.list.WritableList;
+import org.eclipse.xwt.XWT;
+
+/**
+ * List to IObservableCollection converter
+ * 
+ * @author yyang
+ */
+public class ListToIObservableCollection implements IConverter {
+	public static ListToIObservableCollection instance = new ListToIObservableCollection();
+
+	public Object convert(Object fromObject) {
+		List<?> list = (List<?>) fromObject;
+		return new WritableList(XWT.getRealm(), (List<?>)list, Object.class);
+	}
+
+	public Object getFromType() {
+		return List.class;
+	}
+
+	public Object getToType() {
+		return IObservableCollection.class;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/ListToSet.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/ListToSet.java
new file mode 100644
index 0000000..7b54f0c
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/ListToSet.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+
+/**
+ * String to Boolean converter
+ * 
+ * @author yyang
+ */
+public class ListToSet implements IConverter {
+	public static ListToSet instance = new ListToSet();
+
+	public Object convert(Object fromObject) {
+		List<?> list = (List<?>) fromObject;
+		return new HashSet<Object>(list);
+	}
+
+	public Object getFromType() {
+		return List.class;
+	}
+
+	public Object getToType() {
+		return Set.class;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/ObjectToBoolean.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/ObjectToBoolean.java
new file mode 100644
index 0000000..9c81a9f
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/ObjectToBoolean.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+
+/**
+ * String to Boolean converter
+ * 
+ * @author yyang
+ */
+public class ObjectToBoolean implements IConverter {
+	public static ObjectToBoolean instance = new ObjectToBoolean();
+
+	public Object convert(Object fromObject) {
+		return fromObject != null;
+	}
+
+	public Object getFromType() {
+		return Object.class;
+	}
+
+	public Object getToType() {
+		return Boolean.class;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/ObjectToISelection.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/ObjectToISelection.java
new file mode 100644
index 0000000..2f15ef8
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/ObjectToISelection.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.xwt.converters;
+
+import java.util.Collection;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+
+/**
+ * Safely SWT context values, it used to avoid a NullPointerException when set
+ * text values to SWT Widgets.
+ * 
+ * @author jliu
+ */
+public class ObjectToISelection implements IConverter {
+	public static ObjectToISelection instance = new ObjectToISelection();
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.
+	 * Object)
+	 */
+	public Object convert(Object fromObject) {
+		if (fromObject == null) {
+			return new StructuredSelection();
+		}
+		if (fromObject instanceof Collection<?>) {
+			return new StructuredSelection(((Collection<?>) fromObject)
+					.toArray());
+		} else if (fromObject.getClass().isArray()) {
+			return new StructuredSelection((Object[]) fromObject);
+		}
+		return new StructuredSelection(fromObject);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()
+	 */
+	public Object getFromType() {
+		return Object.class;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()
+	 */
+	public Object getToType() {
+		return ISelection.class;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/ObjectToObject.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/ObjectToObject.java
new file mode 100644
index 0000000..1bfac3b
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/ObjectToObject.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+
+/**
+ * Object to Object converter: null converter
+ * 
+ * @author yyang
+ */
+public class ObjectToObject implements IConverter {
+	public static ObjectToObject instance = new ObjectToObject();
+
+	public Object convert(Object fromObject) {
+		return fromObject;
+	}
+
+	public Object getFromType() {
+		return Object.class;
+	}
+
+	public Object getToType() {
+		return Object.class;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/ObjectToString.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/ObjectToString.java
new file mode 100644
index 0000000..db2bcef
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/ObjectToString.java
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.xwt.converters;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+
+/**
+ * Safely SWT context values, it used to avoid a NullPointerException when set text values to SWT Widgets.
+ * 
+ * @author jliu
+ */
+public class ObjectToString implements IConverter {
+	public static ObjectToString FROM_OBJECT = new ObjectToString(Object.class);
+	public static ObjectToString FROM_INTEGER = new ObjectToString(Integer.class);
+	public static ObjectToString FROM_SHORT = new ObjectToString(Short.class);
+	public static ObjectToString FROM_LONG = new ObjectToString(Long.class);
+	private Class<?> fromType;
+	
+	public ObjectToString(Class<?> fromType) {
+		this.fromType = fromType;
+	}
+	
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)
+	 */
+	public Object convert(Object fromObject) {
+		if (fromObject == null) {
+			return "";
+		}
+		return fromObject.toString();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()
+	 */
+	public Object getFromType() {
+		if (fromType == null) {
+			return Object.class;			
+		}
+		return fromType;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()
+	 */
+	public Object getToType() {
+		return String.class;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/SelectionToBoolean.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/SelectionToBoolean.java
new file mode 100644
index 0000000..79735f0
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/SelectionToBoolean.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.jface.viewers.ISelection;
+
+/**
+ * String to Boolean converter
+ * 
+ * @author yyang
+ */
+public class SelectionToBoolean implements IConverter {
+	public static SelectionToBoolean instance = new SelectionToBoolean();
+
+	public Object convert(Object fromObject) {
+		ISelection selection = (ISelection) fromObject;
+		return !selection.isEmpty();
+	}
+
+	public Object getFromType() {
+		return ISelection.class;
+	}
+
+	public Object getToType() {
+		return Boolean.class;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/SetToIObservableCollection.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/SetToIObservableCollection.java
new file mode 100644
index 0000000..7994291
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/SetToIObservableCollection.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import java.util.Set;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.core.databinding.observable.IObservableCollection;
+import org.eclipse.core.databinding.observable.set.WritableSet;
+import org.eclipse.xwt.XWT;
+
+/**
+ * Set to IObservableCollection converter
+ * 
+ * @author yyang
+ */
+public class SetToIObservableCollection implements IConverter {
+	public static SetToIObservableCollection instance = new SetToIObservableCollection();
+
+	public Object convert(Object fromObject) {
+		Set<?> set = (Set<?>) fromObject;
+		return new WritableSet(XWT.getRealm(), (Set<?>)set, Object.class);
+	}
+
+	public Object getFromType() {
+		return Set.class;
+	}
+
+	public Object getToType() {
+		return IObservableCollection.class;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringMultiValueConerter.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringMultiValueConerter.java
new file mode 100644
index 0000000..e3910cf
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringMultiValueConerter.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+/**
+ * Default implementation of MultiValueConverter from a string
+ * 
+ * @author yyang <yesc.yang@soyatec.com>
+ *
+ */
+public class StringMultiValueConerter extends AbstractMultiValueConverter {
+	private String separatorExpression = null;
+
+	public Object[] convertBack(Object value) {
+		if (value instanceof Object[]) {
+			return (Object[]) value;
+		}
+		String valueString = value.toString();
+		return valueString.split(getSeparatorExpression());
+	}
+
+	public String getSeparatorExpression() {
+		if (separatorExpression == null) {
+			return "[ \t\r\n]+";
+		}
+		return separatorExpression;
+	}
+
+	public void setSeparatorExpression(String separatorExpression) {
+		this.separatorExpression = separatorExpression;
+	}
+	
+	protected String getSeparator() {
+		if (separatorExpression == null || separatorExpression.length() == 0) {
+			return " ";
+		}
+		return "" + separatorExpression.charAt(0);
+	}
+	
+	public Object convert(Object[] value) {
+		StringBuffer buffer = new StringBuffer();
+		String separator = getSeparator();
+		for (int i = 0; i < value.length; i++) {
+			if (i != 0) {
+				buffer.append(separator);
+			}
+			buffer.append(value[i]);
+		}
+		return buffer.toString();
+	}
+
+	public Object getFromType() {
+		return String[].class;
+	}
+
+	public Object getToType() {
+		return String.class;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToBoolean.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToBoolean.java
new file mode 100644
index 0000000..243cdff
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToBoolean.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.xwt.XWTException;
+
+/**
+ * String to Boolean converter
+ * 
+ * @author yyang
+ */
+public class StringToBoolean implements IConverter {
+	public static StringToBoolean instance = new StringToBoolean();
+
+	public Object convert(Object fromObject) {
+		String str = (String) fromObject;
+		if (str == null || "".equalsIgnoreCase(str)) {
+			return false;
+		}
+		else if ("true".equalsIgnoreCase(str)) {
+			return true;
+		}
+		else if ("false".equalsIgnoreCase(str)) {
+			return false;
+		}
+		throw new XWTException(str + " is not a boolean");
+	}
+
+	public Object getFromType() {
+		return String.class;
+	}
+
+	public Object getToType() {
+		return Boolean.class;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToChar.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToChar.java
new file mode 100644
index 0000000..c4a05b9
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToChar.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.xwt.XWTException;
+
+/**
+ * String to Boolean converter
+ * 
+ * @author yyang
+ */
+public class StringToChar implements IConverter {
+	public static StringToChar instance = new StringToChar();
+
+	public Object convert(Object fromObject) {
+		String str = (String) fromObject;
+		if (str != null) {
+			str = str.trim();
+			if (str.length() > 0) {
+				char c = str.charAt(0);
+				return c;
+			}
+		}
+		throw new XWTException(str + " is not a character");
+	}
+
+	public Object getFromType() {
+		return String.class;
+	}
+
+	public Object getToType() {
+		return Character.class;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToColor.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToColor.java
new file mode 100644
index 0000000..0f98a9a
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToColor.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.xwt.utils.ResourceManager;
+
+/**
+ * String to Color converter
+ * 
+ * @author jliu
+ */
+public class StringToColor implements IConverter {
+	public static StringToColor instance = new StringToColor();
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)
+	 */
+	public Object convert(Object fromObject) {
+		return ResourceManager.resources.getColor((String) fromObject);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()
+	 */
+	public Object getFromType() {
+		return String.class;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()
+	 */
+	public Object getToType() {
+		return Color.class;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToDoubleArray.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToDoubleArray.java
new file mode 100644
index 0000000..5e53406
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToDoubleArray.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.StringTokenizer;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.xwt.XWTException;
+
+/**
+ * String to double[] converter
+ * 
+ * @author jliu
+ */
+public class StringToDoubleArray implements IConverter {
+	public static StringToDoubleArray instance = new StringToDoubleArray();
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang. Object)
+	 */
+	public Object convert(Object fromObject) {
+		String source = (String) fromObject;
+		List<Double> result = new ArrayList<Double>();
+		StringTokenizer stk = new StringTokenizer(source, ", \t\n\r\f");
+		while (stk.hasMoreTokens()) {
+			String nextToken = stk.nextToken();
+			try {
+				result.add(Double.parseDouble(nextToken.trim()));
+			} catch (NumberFormatException e) {
+				throw new XWTException(source + " is not integer array");
+			}
+		}
+		double[] intArray = new double[result.size()];
+		for (int i = 0; i < result.size(); i++) {
+			intArray[i] = result.get(i);
+		}
+		return intArray;
+	}
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()
+	 */
+	public Object getFromType() {
+		return String.class;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()
+	 */
+	public Object getToType() {
+		return double[].class;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToDuration.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToDuration.java
new file mode 100644
index 0000000..47c0623
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToDuration.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.xwt.converters;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.xwt.animation.Duration;
+import org.eclipse.xwt.animation.TimeSpan;
+
+/**
+ * Safely SWT context values, it used to avoid a NullPointerException when set text values to SWT Widgets.
+ * 
+ * @author jliu
+ */
+public class StringToDuration implements IConverter {
+	public static StringToDuration instance = new StringToDuration();
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)
+	 */
+	public Object convert(Object fromObject) {
+		return new Duration(TimeSpan.parse(fromObject.toString()));
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()
+	 */
+	public Object getFromType() {
+		return String.class;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()
+	 */
+	public Object getToType() {
+		return Duration.class;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToEnum.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToEnum.java
new file mode 100644
index 0000000..e9715dc
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToEnum.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class StringToEnum implements IConverter {
+
+	private Class<?> toType;
+
+	public StringToEnum(Class<?> toType) {
+		this.toType = toType;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)
+	 */
+	@Override
+	public Object convert(Object fromObject) {
+		if (fromObject == null || "".equals(fromObject)) {
+			Class<?> type = (Class<?>) getToType();
+			Object[] values = type.getEnumConstants();
+			if (values != null && values.length > 0) {
+				return values[0];
+			}
+		}
+
+		return Enum.valueOf((Class) getToType(), (String) fromObject);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()
+	 */
+	@Override
+	public Object getFromType() {
+		return String.class;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()
+	 */
+	@Override
+	public Object getToType() {
+		return toType;
+	}
+
+	public void setToType(Class<?> toType) {
+		this.toType = toType;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToFont.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToFont.java
new file mode 100644
index 0000000..f06d706
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToFont.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.xwt.utils.ResourceManager;
+
+/**
+ * String to Font converter
+ * 
+ * @author yyang
+ */
+public class StringToFont implements IConverter {
+	public static StringToFont instance = new StringToFont();
+
+	public Object convert(Object fromObject) {
+		return ResourceManager.resources.getFont((String) fromObject);
+	}
+
+	public Object getFromType() {
+		return String.class;
+	}
+
+	public Object getToType() {
+		return Font.class;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToFormAttachment.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToFormAttachment.java
new file mode 100644
index 0000000..8580f1d
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToFormAttachment.java
@@ -0,0 +1,95 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.swt.layout.FormAttachment;
+
+/**
+ * This converter can easily convert string value to FormAttachment object in these format:
+ * <nl>
+ * <li><FormData top="0"></li> would be parsed to FormAttachment(0).
+ * <li><FormData top="0,20"></li> would be parsed to FormAttachment(0, 20).
+ * <li><FormData top="0,100,20"></li> would be parsed to FormAttachment(0, 100, 20).
+ * <nl>
+ * This converter can not parse some arguments which have Control type.
+ * 
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class StringToFormAttachment implements IConverter {
+	public static IConverter instance = new StringToFormAttachment();
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)
+	 */
+	@Override
+	public Object convert(Object fromObject) {
+		if (fromObject == null) {
+			return null;
+		}
+		String strValue = fromObject.toString();
+		int numerator = 0, denominator = 100, offset = 0;
+		List<Integer> intValues = new ArrayList<>();
+		String[] split = strValue.split(",");
+		for (int i = 0; i < split.length; i++) {
+			String trim = split[i].trim();
+			try {
+				int value = Integer.parseInt(trim);
+				intValues.add(value);
+			} catch (NumberFormatException e) {
+			}
+		}
+		FormAttachment result = new FormAttachment();
+		int size = intValues.size();
+		try {
+			numerator = intValues.get(0);
+			if (size == 2) {
+				offset = intValues.get(1);
+			} else if (size == 3) {
+				denominator = intValues.get(1);
+				offset = intValues.get(2);
+			}
+		} catch (Exception e) {
+		}
+		result.denominator = denominator;
+		result.numerator = numerator;
+		result.offset = offset;
+		return result;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()
+	 */
+	@Override
+	public Object getFromType() {
+		return String.class;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()
+	 */
+	@Override
+	public Object getToType() {
+		return FormAttachment.class;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToIValidationRule.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToIValidationRule.java
new file mode 100644
index 0000000..534ed2d
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToIValidationRule.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.xwt.IValidationRule;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class StringToIValidationRule implements IConverter {
+	public static StringToIValidationRule instance = new StringToIValidationRule();
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)
+	 */
+	@Override
+	public Object convert(Object fromObject) {
+		try {
+			Class<?> type = XWT.getLoadingContext().loadClass(fromObject.toString());
+			if (type == null) {
+				throw new XWTException("Class " + fromObject.toString() + " is not found.");
+			}
+			return type.newInstance();
+		} catch (Exception e) {
+			throw new XWTException(e);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()
+	 */
+	@Override
+	public Object getFromType() {
+		return String.class;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()
+	 */
+	@Override
+	public Object getToType() {
+		return IValidationRule.class;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToIValueConverter.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToIValueConverter.java
new file mode 100644
index 0000000..f0bea90
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToIValueConverter.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.xwt.IValueConverter;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class StringToIValueConverter implements IConverter {
+	public static StringToIValueConverter instance = new StringToIValueConverter();
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)
+	 */
+	@Override
+	public Object convert(Object fromObject) {
+		try {
+			Class<?> type = XWT.getLoadingContext().loadClass(fromObject.toString());
+			if (type == null) {
+				throw new XWTException("Class " + fromObject.toString() + " is not found.");
+			}
+			return type.newInstance();
+		} catch (Exception e) {
+			throw new XWTException(e);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()
+	 */
+	@Override
+	public Object getFromType() {
+		return String.class;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()
+	 */
+	@Override
+	public Object getToType() {
+		return IValueConverter.class;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToImage.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToImage.java
new file mode 100644
index 0000000..65b96aa
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToImage.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.xwt.utils.ResourceManager;
+
+/**
+ * String to Image converter
+ * 
+ * @author jliu
+ */
+public class StringToImage implements IConverter {
+	public static StringToImage instance = new StringToImage();
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)
+	 */
+	public Object convert(Object fromObject) {
+		return ResourceManager.resources.getImage((String) fromObject);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()
+	 */
+	public Object getFromType() {
+		return String.class;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()
+	 */
+	public Object getToType() {
+		return Image.class;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToIntArray.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToIntArray.java
new file mode 100644
index 0000000..a60d5a1
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToIntArray.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.StringTokenizer;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.xwt.XWTException;
+
+/**
+ * String to int[] converter
+ * 
+ * @author jliu
+ */
+public class StringToIntArray implements IConverter {
+	public static StringToIntArray instance = new StringToIntArray();
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang. Object)
+	 */
+	public Object convert(Object fromObject) {
+		String source = (String) fromObject;
+		List<Integer> result = new ArrayList<Integer>();
+		StringTokenizer stk = new StringTokenizer(source, ",");
+		while (stk.hasMoreTokens()) {
+			String nextToken = stk.nextToken();
+			try {
+				result.add(Integer.parseInt(nextToken.trim()));
+			} catch (NumberFormatException e) {
+				throw new XWTException(source + " is not integer array");
+			}
+		}
+		int[] intArray = new int[result.size()];
+		for (int i = 0; i < result.size(); i++) {
+			intArray[i] = result.get(i);
+		}
+		return intArray;
+	}
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()
+	 */
+	public Object getFromType() {
+		return String.class;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()
+	 */
+	public Object getToType() {
+		return int[].class;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToInteger.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToInteger.java
new file mode 100644
index 0000000..4d383e6
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToInteger.java
@@ -0,0 +1,157 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.StringTokenizer;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.core.databinding.conversion.StringToNumberConverter;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.XWTMaps;
+import org.eclipse.xwt.metadata.IMetaclass;
+
+/**
+ * String to Integer converter
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class StringToInteger implements IConverter {
+	private static final String GRIDDATA_PREFIX = "GRIDDATA.";
+	private static final String STYLES_SEP = "|";
+	public static StringToInteger instance = new StringToInteger();
+	protected StringToNumberConverter toNumberConverter = StringToNumberConverter.toInteger(false);
+	
+	public Object convert(Object fromObject) {
+		String str = (String) fromObject;
+		if (str.indexOf(STYLES_SEP) != -1) {
+			List<String> values = new ArrayList<String>();
+			StringTokenizer stk = new StringTokenizer(str, STYLES_SEP);
+			while (stk.hasMoreTokens()) {
+				values.add(stk.nextToken());
+			}
+			int result = 0;
+			for (String value : values) {
+				result |= convertInt(value.trim());
+			}
+			return result;
+		}
+		return convertInt(str);
+	}
+
+	protected int convertInt(String str) {
+		if (str == null || str.equals("")) {
+			return 0;
+		}
+		try {
+			// Quick solution for numbers.			
+			return (Integer) toNumberConverter.convert(str);
+		} catch (Exception e) {
+			String normalizedStr = str.toUpperCase().trim();
+			if (normalizedStr.startsWith(GRIDDATA_PREFIX)) {
+				return convertGridDataInt(normalizedStr);
+			}
+				try {
+					int index = str.lastIndexOf('.');
+					if (str.indexOf('.') != -1) {
+						String className = str.substring(0, index);
+						if (className.startsWith("(") && className.endsWith("")) {
+							className = className.substring(1, className.length()-1);
+							Class<?> type = XWT.getLoadingContext().loadClass(className);
+							if (type != null) {
+								String memberName = str.substring(index+1);
+								Field field = type.getField(memberName);
+								if (Modifier.isStatic(field.getModifiers())) {
+									return field.getInt(null);
+								}
+							}
+						}
+						else {
+							IMetaclass metaclass = XWT.getMetaclass(className, IConstants.XWT_NAMESPACE);
+							if (metaclass != null) {
+								Class<?> type = metaclass.getType();
+								if (type != null) {
+									String memberName = str.substring(index+1);
+									Field field = type.getField(memberName);
+									if (Modifier.isStatic(field.getModifiers())) {
+										return field.getInt(null);
+									}
+								}							
+							}
+						}
+					}
+				} catch (SecurityException e1) {
+				} catch (IllegalArgumentException e1) {
+				} catch (NoSuchFieldException e1) {
+				} catch (IllegalAccessException e1) {
+				} catch (XWTException e1) {
+				}
+			return defaultConvertInt(str);
+		}
+	}
+	
+	protected int convertGridDataInt(String str) {
+		if ("GridData.BEGINNING".equalsIgnoreCase(str)) {
+			return GridData.BEGINNING;
+		} else if ("GridData.CENTER".equalsIgnoreCase(str)) {
+			return GridData.CENTER;
+		} else if ("GridData.END".equalsIgnoreCase(str)) {
+			return GridData.END;
+		} else if ("GridData.FILL".equalsIgnoreCase(str)) {
+			return GridData.FILL;
+		} else if ("GridData.FILL_BOTH".equalsIgnoreCase(str)) {
+			return GridData.FILL_BOTH;
+		} else if ("GridData.FILL_HORIZONTAL".equalsIgnoreCase(str)) {
+			return GridData.FILL_HORIZONTAL;
+		} else if ("GridData.GRAB_HORIZONTAL".equalsIgnoreCase(str)) {
+			return GridData.GRAB_HORIZONTAL;
+		} else if ("GridData.GRAB_VERTICAL".equalsIgnoreCase(str)) {
+			return GridData.GRAB_VERTICAL;
+		} else if ("GridData.HORIZONTAL_ALIGN_BEGINNING".equalsIgnoreCase(str)) {
+			return GridData.HORIZONTAL_ALIGN_BEGINNING;
+		} else if ("GridData.HORIZONTAL_ALIGN_CENTER".equalsIgnoreCase(str)) {
+			return GridData.HORIZONTAL_ALIGN_CENTER;
+		} else if ("GridData.HORIZONTAL_ALIGN_END".equalsIgnoreCase(str)) {
+			return GridData.HORIZONTAL_ALIGN_END;
+		} else if ("GridData.HORIZONTAL_ALIGN_FILL".equalsIgnoreCase(str)) {
+			return GridData.HORIZONTAL_ALIGN_FILL;
+		} else if ("GridData.VERTICAL_ALIGN_BEGINNING".equalsIgnoreCase(str)) {
+			return GridData.VERTICAL_ALIGN_BEGINNING;
+		} else if ("GridData.VERTICAL_ALIGN_CENTER".equalsIgnoreCase(str)) {
+			return GridData.VERTICAL_ALIGN_CENTER;
+		} else if ("GridData.VERTICAL_ALIGN_END".equalsIgnoreCase(str)) {
+			return GridData.VERTICAL_ALIGN_END;
+		} else if ("GridData.VERTICAL_ALIGN_FILL".equalsIgnoreCase(str)) {
+			return GridData.VERTICAL_ALIGN_FILL;
+		}
+		return 0;
+	}
+
+	protected int defaultConvertInt(String str) {
+		return XWTMaps.getValue(str);
+	}
+
+	public Object getFromType() {
+		return String.class;
+	}
+
+	public Object getToType() {
+		return Integer.class;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToKeySpline.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToKeySpline.java
new file mode 100644
index 0000000..a3ca2ba
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToKeySpline.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.xwt.animation.KeySpline;
+
+/**
+ * String to Font converter
+ * 
+ * @author yyang
+ */
+public class StringToKeySpline implements IConverter {
+	public static StringToKeySpline instance = new StringToKeySpline();
+
+	public Object convert(Object fromObject) {
+		return KeySpline.fromString((String) fromObject);
+	}
+
+	public Object getFromType() {
+		return String.class;
+	}
+
+	public Object getToType() {
+		return KeySpline.class;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToKeyTime.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToKeyTime.java
new file mode 100644
index 0000000..cd17c5d
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToKeyTime.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.xwt.animation.KeyTime;
+
+/**
+ * String to Font converter
+ * 
+ * @author yyang
+ */
+public class StringToKeyTime implements IConverter {
+	public static StringToKeyTime instance = new StringToKeyTime();
+
+	public Object convert(Object fromObject) {
+		return KeyTime.fromString((String) fromObject);
+	}
+
+	public Object getFromType() {
+		return String.class;
+	}
+
+	public Object getToType() {
+		return KeyTime.class;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToPoint.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToPoint.java
new file mode 100644
index 0000000..467d46c
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToPoint.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.swt.graphics.Point;
+
+/**
+ * String to Point converter
+ * 
+ * @author yyang
+ */
+public class StringToPoint implements IConverter {
+	public static StringToPoint instance = new StringToPoint();
+
+	public Object convert(Object fromObject) {
+		int x = 0;
+		int y = 0;
+		if (fromObject != null) {
+			StringToIntArray convArray = new StringToIntArray();
+			int[] array = (int[]) convArray.convert(fromObject);
+			if (array.length == 2) {
+				x = array[0];
+				y = array[1];
+			}
+		}
+		return new Point(x, y);
+	}
+
+	public Object getFromType() {
+		return String.class;
+	}
+
+	public Object getToType() {
+		return Point.class;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToRectangle.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToRectangle.java
new file mode 100644
index 0000000..bc42fe2
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToRectangle.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.swt.graphics.Rectangle;
+
+/**
+ * String to Rectangle converter
+ * 
+ * @author yyang
+ */
+public class StringToRectangle implements IConverter {
+	public static StringToRectangle instance = new StringToRectangle();
+
+	public Object convert(Object fromObject) {
+		int x = 0;
+		int y = 0;
+		int width = 0;
+		int height = 0;
+		if (fromObject != null) {
+			StringToIntArray arrayConvertor = new StringToIntArray();
+			int[] array = (int[]) arrayConvertor.convert(fromObject);
+			if (array.length == 4) {
+				x = array[0];
+				y = array[1];
+				width = array[2];
+				height = array[3];
+			}
+		}
+		return new Rectangle(x, y, width, height);
+	}
+
+	public Object getFromType() {
+		return String.class;
+	}
+
+	public Object getToType() {
+		return Rectangle.class;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToRepeatBehavior.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToRepeatBehavior.java
new file mode 100644
index 0000000..7156d5d
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToRepeatBehavior.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.xwt.converters;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.xwt.animation.RepeatBehavior;
+
+/**
+ * Safely SWT context values, it used to avoid a NullPointerException when set text values to SWT Widgets.
+ * 
+ * @author jliu
+ */
+public class StringToRepeatBehavior implements IConverter {
+	public static StringToRepeatBehavior instance = new StringToRepeatBehavior();
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)
+	 */
+	public Object convert(Object fromObject) {
+		return RepeatBehavior.parse(fromObject.toString());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()
+	 */
+	public Object getFromType() {
+		return String.class;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()
+	 */
+	public Object getToType() {
+		return RepeatBehavior.class;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToTimeSpan.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToTimeSpan.java
new file mode 100644
index 0000000..3248837
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToTimeSpan.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.xwt.converters;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.xwt.animation.Duration;
+import org.eclipse.xwt.animation.TimeSpan;
+
+/**
+ * Safely SWT context values, it used to avoid a NullPointerException when set text values to SWT Widgets.
+ * 
+ * @author jliu
+ */
+public class StringToTimeSpan implements IConverter {
+	public static StringToTimeSpan instance = new StringToTimeSpan();
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)
+	 */
+	public Object convert(Object fromObject) {
+		return TimeSpan.parse(fromObject.toString());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()
+	 */
+	public Object getFromType() {
+		return String.class;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()
+	 */
+	public Object getToType() {
+		return TimeSpan.class;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToType.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToType.java
new file mode 100644
index 0000000..a1b342c
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToType.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.metadata.IMetaclass;
+
+/**
+ * String to Type converter
+ * 
+ * @author yyang
+ */
+public class StringToType implements IConverter {
+	public static StringToType instance = new StringToType();
+
+	public Object convert(Object fromObject) {
+		String str = (String) fromObject;
+		String typeName = str;
+		String namespace = IConstants.XWT_NAMESPACE;
+		int index = str.lastIndexOf(':');
+		if (index != -1) {
+			typeName = str.substring(index + 1);
+			namespace = str.substring(0, index);
+		}
+		IMetaclass metaclass = XWT.getMetaclass(typeName, namespace);
+		if (metaclass != null) {
+			return metaclass.getType();
+		}
+		return null;
+	}
+
+	public Object getFromType() {
+		return String.class;
+	}
+
+	public Object getToType() {
+		return Class.class;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToURL.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToURL.java
new file mode 100644
index 0000000..0e3efdb
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/StringToURL.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class StringToURL implements IConverter {
+	public static StringToURL instance = new StringToURL();
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)
+	 */
+	@Override
+	public Object convert(Object fromObject) {
+		try {
+			return new URL(fromObject.toString());
+		} catch (MalformedURLException e) {
+			return null;
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getFromType()
+	 */
+	@Override
+	public Object getFromType() {
+		return String.class;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.conversion.IConverter#getToType()
+	 */
+	@Override
+	public Object getToType() {
+		return URL.class;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/ValueConverterAdapter.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/ValueConverterAdapter.java
new file mode 100644
index 0000000..cd060c9
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/converters/ValueConverterAdapter.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.converters;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.xwt.IValueConverter;
+import org.eclipse.xwt.XWT;
+
+/**
+ * The operation to inverse the converter direction.
+ * 
+ * @author yyang
+ * 
+ */
+public class ValueConverterAdapter implements IValueConverter {
+	private IConverter fromConvertor;
+	private IConverter toConvertor;
+	
+	public ValueConverterAdapter(IConverter fromConvertor, IConverter toConvertor) {
+		this.fromConvertor = fromConvertor;
+		this.toConvertor = toConvertor;
+	}
+
+	public Object convertBack(Object value) {
+		return toConvertor.convert(value);
+	}
+
+	public Object convert(Object fromObject) {
+		return fromConvertor.convert(fromObject);
+	}
+
+	public Object getFromType() {
+		return fromConvertor.getFromType();
+	}
+
+	public Object getToType() {
+		return toConvertor.getFromType();
+	}
+	
+	public static ValueConverterAdapter create(Class<?> sourceType, Class<?> targetType) {
+		IConverter fromConvertor = XWT.findConvertor(sourceType, targetType);
+		if (fromConvertor == null) {
+			return null;
+		}
+		IConverter toConvertor = XWT.findConvertor(targetType, sourceType);
+		if (toConvertor == null) {
+			return null;
+		}
+		return new ValueConverterAdapter(fromConvertor, toConvertor);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/AbstractEventGroup.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/AbstractEventGroup.java
new file mode 100644
index 0000000..4b66e32
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/AbstractEventGroup.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.core;
+
+import org.eclipse.xwt.IEventGroup;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public abstract class AbstractEventGroup implements IEventGroup {
+	protected String[] names; 
+	
+	public AbstractEventGroup(String ... names) {
+		this.names = names;
+	}
+	
+	public String[] getEventNames() {
+		return names;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/Condition.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/Condition.java
new file mode 100644
index 0000000..11ed25b
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/Condition.java
@@ -0,0 +1,218 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.core;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.internal.utils.LoggerManager;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class Condition {
+	public static final Condition[] EMPTY_ARRAY = new Condition[0];
+
+	private IBinding binding;
+	private String property;
+	private Operator operator = Operator.EQ;
+
+	private String sourceName;
+	private Object value;
+	
+	private CacheData cacheData;
+	
+	static class CacheData {
+		protected Object value;
+		protected IProperty property;
+	}
+
+	public Operator getOperator() {
+		return operator;
+	}
+
+	public void setOperator(Operator operator) {
+		this.operator = operator;
+	}
+
+	public IBinding getBinding() {
+		return binding;
+	}
+
+	public void setBinding(IBinding binding) {
+		this.binding = binding;
+	}
+
+	public String getProperty() {
+		return property;
+	}
+
+	public void setProperty(String property) {
+		this.property = property;
+	}
+
+	public String getSourceName() {
+		return sourceName;
+	}
+
+	public void setSourceName(String sourceName) {
+		this.sourceName = sourceName;
+	}
+
+	public Object getValue() {
+		return value;
+	}
+
+	public void setValue(Object value) {
+		this.value = value;
+	}
+
+	public boolean evaluate(Object element) {
+		String propertyName = getProperty();
+		String sourceName = getSourceName();
+		IBinding binding = getBinding();
+		Object value = getValue();
+		if (value == null) {
+			return false;
+		}
+		while (value instanceof IObservableValue) {
+			value = ((IObservableValue) value).getValue();
+		}
+
+		Object dataObject = TriggerBase.getElementByName(element, sourceName);
+
+		if (propertyName != null) {
+			if (cacheData != null) {
+				try {
+					Object existingValue = cacheData.property.getValue(dataObject);
+					return Operator.compare(existingValue, operator, cacheData.value);
+				} catch (Exception e) {
+					LoggerManager.log(e);
+				}
+			}
+			cacheData = new CacheData();
+	
+			IMetaclass metaclass = XWT.getMetaclass(dataObject);
+			IProperty prop = metaclass.findProperty(propertyName);
+			if (prop != null && value != null) {
+				cacheData.property = prop;
+				Class<?> valueType = value.getClass();
+				IConverter converter = XWT.findConvertor(valueType, prop
+						.getType());
+				Object trueValue = value;
+				if (converter != null) {
+					trueValue = converter.convert(trueValue);
+				}
+				cacheData.value = trueValue;
+				try {
+					Object existingValue = prop.getValue(dataObject);
+					return Operator.compare(existingValue, operator, trueValue);
+				} catch (Exception e) {
+					LoggerManager.log(e);
+				}
+			}
+		} else if (binding != null) {
+			Object existingValue = binding.getValue(null);
+			if (existingValue == null) {
+				return false;
+			}
+			while (existingValue instanceof IObservableValue) {
+				existingValue = ((IObservableValue) existingValue).getValue();
+			}
+			Class<?> existingValueType = existingValue.getClass();
+			Class<?> valueType = value.getClass();
+			Object normalizedValue = value;
+			if (!existingValueType.isAssignableFrom(valueType) && !valueType.isAssignableFrom(existingValueType)) {
+				IConverter converter = XWT.findConvertor(valueType, existingValueType);
+				if (converter != null) {
+					normalizedValue = converter.convert(normalizedValue);
+				}
+				else if (value.toString().trim().length() > 0){
+					boolean found = false;
+					// in case where the value is a boolean
+					converter = XWT.findConvertor(valueType, Boolean.class);
+					if (converter != null) {
+						try {
+							Object booleanValue = converter.convert(value);
+							if (booleanValue != null) {
+								converter = XWT.findConvertor(existingValueType, Boolean.class);
+								if (converter != null) {
+									existingValue = converter.convert(existingValue);
+									normalizedValue = booleanValue;
+									found = true;
+								}
+							}
+						} catch (RuntimeException e) {
+						}
+					}
+					if (!found) {
+						converter = XWT.findConvertor(valueType, int.class);
+						if (converter != null) {
+							try {
+								Object booleanValue = converter.convert(value);
+								if (booleanValue != null) {
+									converter = XWT.findConvertor(existingValueType, int.class);
+									if (converter != null) {
+										existingValue = converter.convert(existingValue);
+										normalizedValue = booleanValue;
+										found = true;
+									}
+								}
+							} catch (Exception e) {
+							}
+						}						
+					}
+					if (!found) {
+						converter = XWT.findConvertor(valueType, double.class);
+						if (converter != null) {
+							try {
+								Object booleanValue = converter.convert(value);
+								if (booleanValue != null) {
+									converter = XWT.findConvertor(existingValueType, double.class);
+									if (converter != null) {
+										existingValue = converter.convert(existingValue);
+										normalizedValue = booleanValue;
+										found = true;
+									}
+								}
+							} catch (Exception e) {
+							}
+						}						
+					}
+					if (!found) {
+						converter = XWT.findConvertor(valueType, String.class);
+						if (converter != null) {
+							try {
+								Object booleanValue = converter.convert(value);
+								if (booleanValue != null) {
+									converter = XWT.findConvertor(existingValueType, String.class);
+									if (converter != null) {
+										existingValue = converter.convert(existingValue);
+										normalizedValue = booleanValue;
+										found = true;
+									}
+								}
+							} catch (Exception e) {
+							}
+						}						
+					}
+				}
+			}
+			return Operator.compare(existingValue, operator, normalizedValue);
+		}
+		return false;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/DataTrigger.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/DataTrigger.java
new file mode 100644
index 0000000..2be7757
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/DataTrigger.java
@@ -0,0 +1,226 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.core;
+
+import java.util.HashMap;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.core.databinding.observable.ChangeEvent;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.internal.utils.UserData;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class DataTrigger extends TriggerBase {
+	private Object value;
+	private Operator operator = Operator.EQ;
+	private IBinding binding;
+	private SetterBase[] setters;
+	private ValueChangeListener changeListener;
+
+	public Operator getOperator() {
+		return operator;
+	}
+
+	public void setOperator(Operator operator) {
+		this.operator = operator;
+	}
+
+	public Object getValue() {
+		return value;
+	}
+	
+	public void setValue(Object value) {
+		this.value = value;
+	}
+
+	public IBinding getBinding() {
+		return binding;
+	}
+	
+	public void setBinding(IBinding binding) {
+		this.binding = binding;
+	}
+
+	public SetterBase[] getSetters() {
+		if (setters == null) {
+			return Setter.EMPTY_SETTERS;
+		}
+		return setters;
+	}
+
+	public void setSetters(SetterBase[] setters) {
+		this.setters = setters;
+	}	
+	
+	class ValueChangeListener extends AbstractChangeListener {
+		public ValueChangeListener(Object element) {
+			super(element);
+		}
+
+		public void handleChange(ChangeEvent event) {
+			doHandleChange(true);				
+		}
+
+		public void doHandleChange(boolean update) {
+			Widget widget = UserData.getWidget(element);
+			if (widget == null) {
+				return;
+			}
+			Object currentValue = binding.getValue(null);
+			if (currentValue == null) {
+				return;
+			}
+			while (currentValue instanceof IObservableValue) {
+				currentValue = ((IObservableValue) currentValue).getValue();
+			}
+
+			Class<?> currentValueType = currentValue.getClass();
+			Class<?> valueType = value.getClass();
+			Object normalizedValue = value;
+			if (!currentValueType.isAssignableFrom(valueType) && !valueType.isAssignableFrom(currentValueType)) {
+				IConverter converter = XWT.findConvertor(valueType, currentValueType);
+				if (converter != null) {
+					normalizedValue = converter.convert(normalizedValue);
+				}
+				else if (value != null && value.toString().trim().length() > 0){
+					boolean found = false;
+					// in case where the value is a boolean
+					converter = XWT.findConvertor(valueType, Boolean.class);
+					if (converter != null) {
+						try {
+							Object booleanValue = converter.convert(value);
+							if (booleanValue != null) {
+								converter = XWT.findConvertor(currentValueType, Boolean.class);
+								if (converter != null) {
+									currentValue = converter.convert(currentValue);
+									normalizedValue = booleanValue;
+									found = true;
+								}
+							}
+						} catch (RuntimeException e) {
+						}
+					}
+					if (!found) {
+						converter = XWT.findConvertor(valueType, Integer.class);
+						if (converter != null) {
+							try {
+								Object booleanValue = converter.convert(value);
+								if (booleanValue != null) {
+									converter = XWT.findConvertor(currentValueType, Integer.class);
+									if (converter != null) {
+										currentValue = converter.convert(currentValue);
+										normalizedValue = booleanValue;
+										found = true;
+									}
+								}
+							} catch (Exception e) {
+							}
+						}
+					}
+					if (!found) {
+						converter = XWT.findConvertor(valueType, Double.class);
+						if (converter != null) {
+							try {
+								Object booleanValue = converter.convert(value);
+								if (booleanValue != null) {
+									converter = XWT.findConvertor(currentValueType, Double.class);
+									if (converter != null) {
+										currentValue = converter.convert(currentValue);
+										normalizedValue = booleanValue;
+										found = true;
+									}
+								}
+							} catch (Exception e) {
+							}
+						}
+					}
+					if (!found) {
+						converter = XWT.findConvertor(valueType, String.class);
+						if (converter != null) {
+							try {
+								Object booleanValue = converter.convert(value);
+								if (booleanValue != null) {
+									converter = XWT.findConvertor(currentValueType, String.class);
+									if (converter != null) {
+										currentValue = converter.convert(currentValue);
+										normalizedValue = booleanValue;
+										found = true;
+									}
+								}
+							} catch (Exception e) {
+							}
+						}
+					}
+				}
+			}
+			if (!Operator.compare(currentValue, operator, normalizedValue) && update) {
+				restoreValues();
+				return;
+			}
+
+			for (SetterBase setter : getSetters()) {
+				try {
+					Object oldValue = setter.applyTo(element, update);
+					if (!update) {
+						if (oldvalues == null) {
+							oldvalues = new HashMap<SetterBase, Object>();
+						}
+						oldvalues.put(setter, oldValue);
+					}
+				} catch (RuntimeException e) {
+					continue;
+				}
+			}
+		}
+	}
+
+	public void prepare(Object target) {
+		if (value == null) {
+			return;
+		}
+		Widget widget = UserData.getWidget(target);
+		if (widget == null) {
+			return;
+		}		
+		Object bindingTarget = null;
+		if (binding != null) {
+			if (binding instanceof IDynamicBinding) {
+				IDynamicBinding dynamicBinding = (IDynamicBinding) binding;
+				bindingTarget = dynamicBinding.createBoundSource();
+			}
+			else {
+				bindingTarget = binding.getValue(null);
+			}			
+		}
+		else {
+			bindingTarget = XWT.getDataContext(widget);
+		}
+		if (!(bindingTarget instanceof IObservableValue)) {
+			return;
+		}
+		IObservableValue observableValue = (IObservableValue) bindingTarget;
+		changeListener = new ValueChangeListener(target);
+		observableValue.addChangeListener(changeListener);
+		changeListener.doHandleChange(false); // get default value
+	}
+
+	@Override
+	public void on(Object target) {
+		changeListener.doHandleChange(true);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/EventTrigger.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/EventTrigger.java
new file mode 100644
index 0000000..01272c5
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/EventTrigger.java
@@ -0,0 +1,226 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.core;
+
+import java.lang.reflect.Method;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.IEventConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTMaps;
+import org.eclipse.xwt.annotation.Containment;
+import org.eclipse.xwt.internal.core.IEventController;
+import org.eclipse.xwt.internal.utils.LoggerManager;
+import org.eclipse.xwt.internal.utils.UserData;
+import org.eclipse.xwt.javabean.Controller;
+import org.eclipse.xwt.metadata.IEvent;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.ModelUtils;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class EventTrigger extends TriggerBase {
+	private String sourceName;
+	private String routedEvent;
+	private TriggerAction[] actions = TriggerAction.EMPTY_ARRAY;
+
+	public String getSourceName() {
+		return sourceName;
+	}
+
+	public void setSourceName(String sourceName) {
+		this.sourceName = sourceName;
+	}
+
+	public String getRoutedEvent() {
+		return routedEvent;
+	}
+
+	public void setRoutedEvent(String routedEvent) {
+		this.routedEvent = routedEvent;
+	}
+
+	@Containment
+	public TriggerAction[] getActions() {
+		return actions;
+	}
+
+	public void setActions(TriggerAction[] actions) {
+		this.actions = actions;
+	}
+
+	@Override
+	public void prepare(Object target) {
+		String routedEvent = getRoutedEvent();
+		if (routedEvent != null) {
+			Object source = getElementByName(target, getSourceName());
+			IMetaclass metaclass = XWT.getMetaclass(source);
+			IEvent event = metaclass.findEvent(ModelUtils
+					.normalizeEventName(routedEvent));
+			if (event == null) {
+				if (routedEvent != null
+						&& !routedEvent.toLowerCase().endsWith(
+								IEventConstants.SUFFIX_KEY)) {
+					LoggerManager.log("Event " + routedEvent
+							+ " is not found in " + source.getClass().getName()
+							+ ". Please add a suffix \"Event\"!");
+				} else {
+					LoggerManager
+							.log("Event " + routedEvent + " is not found in "
+									+ source.getClass().getName());
+				}
+				return;
+			}
+
+			for (TriggerAction triggerAction : getActions()) {
+				triggerAction.initialize(target);
+			}
+
+			String name = event.getName();
+			if ("loadedevent".equalsIgnoreCase(name)) {
+				Widget widget = UserData.getWidget(source);
+				IEventController eventController = UserData
+						.updateEventController(source);
+				RunablePaintAction paintRunnable = createPaintRunnable(source);
+				try {
+					Method method = paintRunnable.getClass().getDeclaredMethod(
+							"run", Object.class, Event.class);
+					eventController.setEvent(event, widget, paintRunnable,
+							this, method);
+				} catch (Exception e) {
+					LoggerManager.log(e);
+				}
+			} else {
+				RunableAction runnable = createRunnable(source);
+				try {
+					runnable.setEventTrigger(event);
+				} catch (Exception e) {
+					LoggerManager.log(e);
+				}
+			}
+		}
+	}
+
+	public void on(Object target) {
+	}
+
+	protected RunableAction createRunnable(Object target) {
+		return new RunableAction(target);
+	}
+
+	protected RunablePaintAction createPaintRunnable(Object target) {
+		return new RunablePaintAction(target);
+	}
+
+	class RunablePaintAction {
+		protected Object target;
+
+		public RunablePaintAction(Object target) {
+			this.target = target;
+		}
+
+		public void run(Object object, Event event) {
+			for (TriggerAction triggerAction : EventTrigger.this.getActions()) {
+				triggerAction.run(event, target, null);
+			}
+		}
+	}
+
+	class RunableAction implements Listener, Runnable {
+		protected Object target;
+		private int count = 0;
+		boolean started = false;
+		boolean transition = false;
+		private Event event;
+		private int eventType;
+
+		public RunableAction(Object target) {
+			this.target = target;
+		}
+
+		public void run() {
+			count--;
+			if (count == 0 && !event.widget.isDisposed()) {
+				final Display display = event.widget.getDisplay();
+				display.syncExec(new Runnable() {
+					public void run() {
+						if (transition) {
+							for (TriggerAction triggerAction : getActions()) {
+								triggerAction.initialize(target);
+							}
+						} else {
+							for (TriggerAction triggerAction : getActions()) {
+								triggerAction.endFinalize(target);
+							}
+						}
+						display.removeFilter(eventType, RunableAction.this);
+						if (!event.widget.isDisposed()) {
+							event.widget.notifyListeners(eventType, event);
+							display.addFilter(eventType, RunableAction.this);
+						}
+						started = false;
+					}
+				});
+			}
+		}
+
+		protected void setEventTrigger(IEvent event) {
+			Widget widget = UserData.getWidget(target);
+			String name = event.getName();
+			this.eventType = Controller.getEventTypeByName(name);
+			if (this.eventType != SWT.None) {
+				widget.getDisplay().addFilter(this.eventType, this);
+				transition = (this.eventType == XWTMaps.getEvent("swt.move") || this.eventType == XWTMaps
+						.getEvent("swt.resize"));
+			}
+		}
+
+		public void handleEvent(Event event) {
+			Widget widget = UserData.getWidget(target);
+			if (event.widget != widget || widget.isDisposed()) {
+				return;
+			}
+			if (started) {
+				event.type = SWT.NONE;
+				return;
+			}
+
+			// execute the animation actions first and then normal events
+			count = EventTrigger.this.getActions().length;
+			started = true;
+			try {
+				this.event = Controller.copy(event);
+
+				if (!transition) {
+					for (TriggerAction triggerAction : getActions()) {
+						triggerAction.initialize(target);
+					}
+				}
+
+				for (TriggerAction triggerAction : EventTrigger.this
+						.getActions()) {
+					triggerAction.run(event, target, this);
+				}
+			} catch (Exception e) {
+				started = false;
+			}
+			event.type = SWT.NONE;
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/IBinding.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/IBinding.java
new file mode 100644
index 0000000..72d3c8a
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/IBinding.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.core;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public interface IBinding {
+	/**
+	 * The argument is used to determine the filtering. If type is null, no filtering
+	 * 
+	 * @return
+	 */
+	Object getValue(Class<?> type);
+	void reset();
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/ICollectionView.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/ICollectionView.java
new file mode 100644
index 0000000..87bbeec
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/ICollectionView.java
@@ -0,0 +1,106 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.core;
+
+import java.util.Collection;
+import java.util.Locale;
+
+import org.eclipse.xwt.collection.GroupDescription;
+import org.eclipse.xwt.collection.SortDescription;
+
+/**
+ * The interface is implemented by the CollectionView class, which is the base class for Collection 
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public interface ICollectionView<T> {
+	
+	/**
+	 * Gets a value that indicates whether this view supports filtering via the Filter property.
+	 * 
+	 * @return
+	 */
+	boolean canFilter();
+
+	/**
+	 * Gets a value that indicates whether this view supports grouping via the GroupDescriptions property.
+	 * 
+	 * @return
+	 */
+	boolean canGroup();
+	
+	
+	/**
+	 * Gets a value that indicates whether this view supports sorting via the SortDescriptions property.
+	 * 
+	 * @return
+	 */
+	boolean canSort();
+	
+	/**
+	 * Gets the current item in the view.
+	 * 
+	 * @return
+	 */
+	T getCurrentItem();
+	
+	/**
+	 * Gets the ordinal position of the CurrentItem within the view.
+	 * 
+	 * @return
+	 */
+	int getCurrentPosition();
+	
+	
+	/**
+	 * Returns a value that indicates whether the resulting view is empty.
+	 * 
+	 * @return
+	 */
+	boolean isEmpty();
+	
+	/**
+	 * Source collection
+	 * 
+	 * @return
+	 */
+	Collection<T> getSourceCollection(); 
+
+	/**
+	 * Gets a collection of GroupDescription objects that describe how the items in the collection are grouped in the view.
+	 * 
+	 * @return
+	 */
+	GroupDescription[] getGroupDescription();
+	
+	/**
+	 * Gets a collection of SortDescription objects that describe how the items in the collection are sorted in the view.
+	 * 
+	 * @return
+	 */
+	SortDescription[] getSortDescription();
+	
+	/**
+	 * Gets the top-level groups.
+	 * 
+	 * @return
+	 */
+	Collection<T> getGroups();
+	
+	/**
+	 * Gets or sets the cultural info for any operations of the view that may differ by culture, such as sorting.
+	 * 
+	 * @return
+	 */
+	Locale getLocale();
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/IDynamicBinding.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/IDynamicBinding.java
new file mode 100644
index 0000000..46db63f
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/IDynamicBinding.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.core;
+
+import org.eclipse.xwt.databinding.IBindingContext;
+
+/**
+ *
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public interface IDynamicBinding extends IBinding {
+	Object createBoundSource();
+
+	void setControl(Object control);
+
+	Object getControl();
+
+	String getName();
+	void setHost(Object control);
+
+	Object getHost();
+
+
+	void setType(String type);
+
+	String getType();
+
+	boolean isSourceControl();
+
+	/**
+	 * Returns the {@link BindingContext} associated with this binding
+	 *
+	 * @return the {@link BindingContext}
+	 */
+	IBindingContext getBindingContext();
+
+	/**
+	 * Sets the {@link BindingContext} this binding is associated with
+	 *
+	 * @param dataBindingContext
+	 */
+	void setBindingContext(IBindingContext dataBindingContext);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/IDynamicValueBinding.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/IDynamicValueBinding.java
new file mode 100644
index 0000000..0c53cb9
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/IDynamicValueBinding.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.core;
+
+import org.eclipse.xwt.metadata.IProperty;
+
+public interface IDynamicValueBinding extends IDynamicBinding {
+	public IProperty getProperty();
+	public void setProperty(IProperty property);
+	
+	public Object getObject();
+	public void setObject(Object object);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/IElementLoaderFactory.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/IElementLoaderFactory.java
new file mode 100644
index 0000000..fef2c79
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/IElementLoaderFactory.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.core;
+
+import org.eclipse.xwt.IXWTLoader;
+
+public interface IElementLoaderFactory {
+	IVisualElementLoader createElementLoader(IRenderingContext context, IXWTLoader loader);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/IRenderingContext.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/IRenderingContext.java
new file mode 100644
index 0000000..51fb296
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/IRenderingContext.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.core;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+
+import org.eclipse.xwt.ILoadingContext;
+
+/**
+ * @author yyang
+ * @version 1.0
+ */
+public interface IRenderingContext {
+	public String getNamespace();
+
+	public URL getResourcePath();
+
+	public InputStream openStream(String path) throws IOException;
+
+	public String getEncoding();
+
+	public Object getProperty(String name);
+
+	public void setProperty(String name, Object value);
+
+	public ILoadingContext getLoadingContext();
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/IUserDataConstants.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/IUserDataConstants.java
new file mode 100644
index 0000000..d6d7c43
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/IUserDataConstants.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.core;
+
+public interface IUserDataConstants {
+	public static String XWT_CONTROLLER_KEY = "Controller";
+	public static String XWT_RESOURCES_KEY = "Resources";
+	public static String XWT_STYLE_KEY = "Style";
+	public static String XWT_DRAWING_KEY = "Drawing";
+	public static String XWT_DATACONTEXT_KEY = "DataContext";
+	public static String XWT_BINDING_CONTEXT_KEY = "DefaultDataBindingContext";
+	public static String XWT_RENDER_TRANSFORM_KEY = "RenderTransform";
+	public static String XWT_RENDER_TRANSFORM_ORIGIN_KEY = "RenderTransformOrigin";
+	public static String XWT_TRIGGERS_KEY = "Triggers";
+	public static String XWT_NAME_KEY = "Name";
+	public static String XWT_PARENT_KEY = "Parent";
+	public static String XWT_VIEWER_KEY = "Viewer";
+	public static String XWT_NAMECONTEXT_KEY = "NameContext";
+	public static String XWT_COMMAND_KEY = "Command";
+	public static String XWT_CLR_KEY = "clr";
+
+	public static String XWT_USER_DATA_KEY = "__XWT.UserData";
+	
+	public static String XWT_PROPERTY_DATA_KEY = "_XWT.TableViewerColumnDisplayPath";
+	public static String XWT_PROPERTY_ITEM_TEXT_KEY = "_XWT.TableViewerColumnItemText";
+	public static String XWT_PROPERTY_ITEM_IMAGE_KEY = "_XWT.TableViewerColumnItemImage";
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/IVisualElementLoader.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/IVisualElementLoader.java
new file mode 100644
index 0000000..900385c
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/IVisualElementLoader.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.core;
+
+import java.util.Map;
+
+import org.eclipse.xwt.internal.xml.Element;
+
+public interface IVisualElementLoader {
+	public Object createUIElement(Element element, Map<String, Object> options);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/MultiDataTrigger.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/MultiDataTrigger.java
new file mode 100644
index 0000000..d4f2917
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/MultiDataTrigger.java
@@ -0,0 +1,116 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.core;
+
+import java.util.HashMap;
+
+import org.eclipse.core.databinding.observable.ChangeEvent;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.internal.utils.UserData;
+
+public class MultiDataTrigger extends TriggerBase {
+	private Condition[] conditions = Condition.EMPTY_ARRAY;
+	private Setter[] setters;
+	private ValueChangeListener changeListener;
+
+	public Condition[] getConditions() {
+		return conditions;
+	}
+
+	public void setConditions(Condition[] conditions) {
+		this.conditions = conditions;
+	}
+
+	public Setter[] getSetters() {
+		return setters;
+	}
+
+	public void setSetters(Setter[] setters) {
+		this.setters = setters;
+	}
+
+	class ValueChangeListener extends AbstractChangeListener {
+		public ValueChangeListener(Object element) {
+			super(element);
+		}
+
+		public void handleChange(ChangeEvent event) {
+			doHandleChange(true);
+		}
+
+		public void doHandleChange(boolean update) {
+			for (Condition condition : getConditions()) {
+				if (!condition.evaluate(element)) {
+					restoreValues();
+					return;
+				}
+			}
+
+			for (SetterBase setter : getSetters()) {
+				try {
+					Object oldValue = setter.applyTo(element, update);
+					if (oldvalues == null) {
+						oldvalues = new HashMap<SetterBase, Object>();
+					}
+					oldvalues.put(setter, oldValue);
+				} catch (RuntimeException e) {
+					continue;
+				}
+			}
+		}
+	}
+
+	@Override
+	public void prepare(Object target) {
+		if (getConditions().length == 0) {
+			return;
+		}
+		Widget widget = UserData.getWidget(target);
+		if (widget == null) {
+			return;
+		}
+
+		changeListener = new ValueChangeListener(target);
+		for (Condition condition : getConditions()) {
+			String sourceName = condition.getSourceName();
+
+			IBinding binding = condition.getBinding();
+			Object bindingTarget = null;
+			if (binding != null) {
+				if (binding instanceof IDynamicBinding) {
+					IDynamicBinding dynamicBinding = (IDynamicBinding) binding;
+					bindingTarget = dynamicBinding.createBoundSource();
+				} else {
+					bindingTarget = binding.getValue(null);
+				}
+			} else {
+				Object sourceObject = getElementByName(target, sourceName);
+				Widget sourceWidget = UserData.getWidget(sourceObject);
+				bindingTarget = XWT.getDataContext(sourceWidget);
+			}
+
+			if (!(bindingTarget instanceof IObservableValue)) {
+				return;
+			}
+			IObservableValue observableValue = (IObservableValue) bindingTarget;
+			observableValue.addChangeListener(changeListener);
+		}
+		changeListener.doHandleChange(false);
+	}
+
+	public void on(Object target) {
+		changeListener.doHandleChange(true);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/MultiTrigger.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/MultiTrigger.java
new file mode 100644
index 0000000..312722d
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/MultiTrigger.java
@@ -0,0 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.core;
+
+import java.util.HashMap;
+
+import org.eclipse.core.databinding.observable.ChangeEvent;
+import org.eclipse.core.databinding.observable.IObservable;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.internal.core.ScopeManager;
+import org.eclipse.xwt.internal.core.UpdateSourceTrigger;
+
+public class MultiTrigger extends TriggerBase {
+	private Condition[] conditions = Condition.EMPTY_ARRAY;
+	private SetterBase[] setters;
+
+	public Condition[] getConditions() {
+		return conditions;
+	}
+
+	public void setConditions(Condition[] conditions) {
+		this.conditions = conditions;
+	}
+
+	public SetterBase[] getSetters() {
+		return setters;
+	}
+
+	public void setSetters(SetterBase[] setters) {
+		this.setters = setters;
+	}
+
+	class ValueChangeListener extends AbstractChangeListener {
+		public ValueChangeListener(Object element) {
+			super(element);
+		}
+
+		public void handleChange(ChangeEvent event) {
+			for (Condition condition : getConditions()) {
+				if (!condition.evaluate(element)) {
+					restoreValues();
+					return;
+				}
+			}
+
+			if (oldvalues != null && !oldvalues.isEmpty()) {
+				return;
+			}
+
+			for (SetterBase setter : getSetters()) {
+				try {
+					Object oldValue = setter.applyTo(element, true);
+					if (oldvalues == null) {
+						oldvalues = new HashMap<SetterBase, Object>();
+					}
+					oldvalues.put(setter, oldValue);
+				} catch (RuntimeException e) {
+					continue;
+				}
+			}
+		}
+	}
+	
+	@Override
+	public void on(Object target) {
+	}
+
+	@Override
+	public void prepare(Object target) {
+		if (getConditions().length == 0) {
+			return;
+		}
+		ValueChangeListener changeListener = new ValueChangeListener(target);
+		for (Condition condition : getConditions()) {
+			String propertyName = condition.getProperty();
+			String sourceName = condition.getSourceName();
+
+			Object source = getElementByName(target, sourceName);
+			if (source == null) {
+				throw new XWTException("No element is found with the name = "
+						+ sourceName);
+			}
+			IObservable observableValue = ScopeManager.observeValue(source,
+					source, propertyName, UpdateSourceTrigger.PropertyChanged);
+			observableValue.addChangeListener(changeListener);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/Operator.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/Operator.java
new file mode 100644
index 0000000..a0c34ce
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/Operator.java
@@ -0,0 +1,234 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.core;
+
+import java.math.BigDecimal;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.utils.OperatorExceptionMessage;
+
+public enum Operator {
+	EQ, NE, GT, LT, GE, LE, LIKE, IS_A, IS_KIND_OF;
+	
+	/**
+	 * The utility helper method, to implement the compare between two objects
+	 * 
+	 * @param operant1
+	 * @param operator
+	 * @param operant2
+	 * @return
+	 * @throws XWTException
+	 */
+	public static boolean compare(Object operant1, Operator operator,
+			Object operant2) throws XWTException {
+		boolean result = false;
+
+		switch (operator) {
+		case EQ:
+			result = objectCompare(operant1, operant2);
+			break;
+
+		case NE:
+			if (!objectCompare(operant1, operant2))
+				result = true;
+			break;
+
+		case GT:
+			if (numberCompare(operant1, operant2) == 1)
+				return true;
+			break;
+
+		case LT:
+			if (numberCompare(operant1, operant2) == -1) {
+				result = true;
+			}
+			break;
+
+		case GE:
+			if (numberCompare(operant1, operant2) == 1
+					|| numberCompare(operant1, operant2) == 0) {
+				result = true;
+			}
+			break;
+
+		case LE:
+			if (numberCompare(operant1, operant2) == -1
+					|| numberCompare(operant1, operant2) == 0) {
+				result = true;
+			}
+			break;
+
+		case LIKE:
+			return LikeCompare(operant1, operant2);
+
+		case IS_A:
+			if(operant2 instanceof Class<?>){
+				return ISACompare(operant1,(Class<?>) operant2);
+			}else{
+				throw new XWTException(OperatorExceptionMessage.TYPE_WRONG);
+			}
+
+		case IS_KIND_OF:
+			return isKindOfCompare(operant1, operant2);
+		}
+		return result;
+	}
+
+	private static boolean isKindOfCompare(Object operant1, Object operant2) {
+		return operant2.getClass().isInstance(operant1);
+	}
+
+	/**
+	 * @param operant1
+	 * @param operant2
+	 * @return
+	 * @throws XWTException
+	 */
+	private static int numberCompare(Object operant1, Object operant2)
+			throws XWTException {
+		if (operant1 == null || operant2 == null) {
+			throw new XWTException(OperatorExceptionMessage.OPRERANR_NULL);
+		}
+		Double longoperant1 = convertToDouble(operant1);
+		Double longoperant2 = convertToDouble(operant2);
+		return DoubleCompare(longoperant1, longoperant2);
+	}
+
+	/**
+	 * convert the type of operant to the Double
+	 * 
+	 * @param operant
+	 * @return
+	 * @throws XWTException
+	 */
+	private static Double convertToDouble(Object operant) throws XWTException {
+		if (operant instanceof Double) {
+			return (Double) operant;
+		}
+		if(operant instanceof Float){
+			Float floatvalue = (Float) operant;
+			return Double.parseDouble(String.valueOf(floatvalue));
+		}
+		if (operant instanceof Integer) {
+			Integer integer = (Integer) operant;
+			return Double.parseDouble(String.valueOf(integer));
+		}
+		if (operant instanceof Character) {
+			Character character = (Character) operant;
+			if (Character.isDigit(character)) {
+				int numericValue = Character.getNumericValue(character);
+				return Double.parseDouble(String.valueOf(numericValue));
+			}
+		}
+		if (operant instanceof Short) {
+			Short shortvalue = (Short) operant;
+			return Double.parseDouble(String.valueOf(shortvalue));
+		}
+		if (operant instanceof Byte) {
+			Byte bytevalue = (Byte) operant;
+			return Double.parseDouble(String.valueOf(bytevalue));
+		}
+		if (operant instanceof Long) {
+			Long floatvalue = (Long) operant;
+			return Double.parseDouble(String.valueOf(floatvalue));
+		}
+		if (operant instanceof BigDecimal) {
+			BigDecimal bigdecimalvalue = (BigDecimal) operant;
+			return Double.parseDouble(String.valueOf(bigdecimalvalue));
+		} else
+			throw new XWTException(OperatorExceptionMessage.TYPE_WRONG);
+	}
+
+	/**
+	 * the compare of two object for NE,EQ
+	 * 
+	 * @param operant1
+	 * @param operant2
+	 * @return
+	 */
+	private static boolean objectCompare(Object operant1, Object operant2) {
+		if (operant1 == operant2) {
+			return true;			
+		}
+		if (operant1 != null) {
+			return operant1.equals(operant2);
+		}
+		else if (operant1 != null) {
+			return operant2.equals(operant1);
+		}
+		return false;
+	}
+
+	/**
+	 * the compare of two object for ISA
+	 * 
+	 * @param operant1
+	 * @param operant2
+	 * @return
+	 * @throws XWTException
+	 */
+	private static boolean ISACompare(Object operant1, Class<?> clazz) {
+		return clazz.isInstance(operant1);
+	}
+
+	/**
+	 * the compare of two Double
+	 * 
+	 * @param operant1
+	 * @param operant2
+	 * @return
+	 */
+	private static int DoubleCompare(Double operant1, Double operant2) {
+		return (operant1.compareTo(operant2) < 0 ? -1 : (operant1
+				.compareTo(operant2) == 0 ? 0 : 1));
+	}
+
+	/**
+	 * the compare of two String for Like
+	 * 
+	 * @param operant1
+	 * @param operant2
+	 * @return
+	 * @throws XWTException
+	 */
+	private static boolean LikeCompare(Object operant1, Object operant2)
+			throws XWTException {
+		if (operant1 == null || operant2 == null) {
+			throw new XWTException(OperatorExceptionMessage.OPRERANR_NULL);
+		}
+		if (operant1 instanceof String && operant2 instanceof String) {
+			String operant1String = (String) operant1;
+			String operant2String = (String) operant2;
+			String queryString = parseRegularExpressionString(operant1String);
+			Pattern pattern = Pattern.compile(queryString);
+			Matcher matcher = pattern.matcher(operant2String);
+			return matcher.find();
+		}
+		throw new XWTException(OperatorExceptionMessage.TYPE_WRONG);
+	}
+
+	/**
+	 * build the regular expressions
+	 * 
+	 * @param queryString
+	 * @return
+	 */
+	public static String parseRegularExpressionString(String queryString) {
+		String result = queryString;
+		result = result.replace("?", ".");
+		result = result.replace("*", ".*");
+		return result;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/RadioEventGroup.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/RadioEventGroup.java
new file mode 100644
index 0000000..810ed7a
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/RadioEventGroup.java
@@ -0,0 +1,81 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.core;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.xwt.IEventConstants;
+import org.eclipse.xwt.IObservableValueListener;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.internal.core.IEventController;
+import org.eclipse.xwt.internal.utils.LoggerManager;
+import org.eclipse.xwt.internal.utils.UserData;
+import org.eclipse.xwt.javabean.metadata.properties.EventProperty;
+import org.eclipse.xwt.metadata.IEvent;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+
+public class RadioEventGroup extends AbstractEventGroup {
+
+	public RadioEventGroup(String... names) {
+		super(names);
+	}
+
+	public void fireEvent(IObservableValueListener manager, IProperty property) {
+		Object host = manager.getHost();
+		IMetaclass metaclass = XWT.getMetaclass(host); 
+
+		EventProperty reaisedEventProperty = (EventProperty) property;
+		String raisedName = reaisedEventProperty.getEvent().getName();
+		for (String name : getEventNames()) {
+			if (name.equalsIgnoreCase(raisedName)) {
+				continue;
+			}
+			String eventPropertyName = IEventConstants.getEventPropertyName(name);
+			IProperty eventProperty = metaclass.findProperty(eventPropertyName);
+
+			IObservableValue value = manager.getValue(eventProperty);
+			if (value != null) {
+				value.setValue(false);
+			}
+		}
+	}
+
+	public void registerEvent(IObservableValueListener manager,
+			IProperty property) {
+		Object host = manager.getHost();
+		IEventController controller = UserData.findEventController(host);
+		if (controller == null) {
+			controller = UserData.updateEventController(host);
+		}
+		IMetaclass metaclass = XWT.getMetaclass(host); 
+
+		EventProperty reaisedEventProperty = (EventProperty) property;
+		String raisedName = reaisedEventProperty.getEvent().getName();
+		for (String name : getEventNames()) {
+			if (name.equalsIgnoreCase(raisedName)) {
+				continue;
+			}
+			String eventPropertyName = IEventConstants.getEventPropertyName(name);
+			String eventName = IEventConstants.getEventName(name);
+			IEvent event = metaclass.findEvent(eventName);
+			IProperty eventProperty = metaclass.findProperty(eventPropertyName);
+			
+			try {
+				controller.setEvent(event, UserData.getWidget(host), manager, eventProperty, IObservableValueListener.class.getDeclaredMethod("changeValueHandle", Object.class, org.eclipse.swt.widgets.Event.class));
+			} catch (Exception e) {
+				LoggerManager.log(e);
+				return;
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/Setter.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/Setter.java
new file mode 100644
index 0000000..915b238
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/Setter.java
@@ -0,0 +1,110 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.core;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+
+
+/**
+ * Setter of the class Style, which is used to define the in-line XAML style
+ * 
+ * @see Style
+ * @author yyang
+ */
+public class Setter extends SetterBase {
+	protected String property;
+	protected Object value;
+	protected String targetName;
+
+	public String getTargetName() {
+		return targetName;
+	}
+
+	public void setTargetName(String targetName) {
+		this.targetName = targetName;
+	}
+
+	public String getProperty() {
+		return property;
+	}
+
+	public void setProperty(String property) {
+		this.property = property;
+	}
+
+	public Object getValue() {
+		return value;
+	}
+
+	public void setValue(Object value) {
+		this.value = value;
+	}
+
+	public Object applyTo(Object element, boolean update) {
+		String propName = getProperty();
+		Object propValue = getValue();
+		String targetName = getTargetName();
+		Object setterTarget = element;
+		Object oldValue = null;
+		if (targetName != null) {
+			setterTarget = TriggerBase.getElementByName(element, targetName);
+		}
+		IMetaclass metaclass = XWT.getMetaclass(setterTarget);
+		IProperty prop = metaclass.findProperty(propName);
+		if (prop != null && propValue != null) {
+			Object toValue = propValue;
+			Class<?> valueType = propValue.getClass();
+			Class<?> targetType = prop.getType();
+			if (targetType != null && !targetType.isAssignableFrom(valueType)) {
+				IConverter converter = XWT.findConvertor(valueType, targetType);
+				if (converter != null) {
+					toValue = converter.convert(propValue);					
+				}
+				else {
+					throw new XWTException("Converter doesn't exist from \"" + valueType.getName() + "\" to \"" + targetType.getName());
+				}
+			}
+			try {
+				oldValue = prop.getValue(setterTarget);
+				if (update) {
+					prop.setValue(setterTarget, toValue);
+				}
+			} catch (Exception e) {
+				throw new RuntimeException(e);
+			}
+		}
+		return oldValue;
+	}
+
+	public void undo(Object element, Object value) {
+		String propName = getProperty();
+		String targetName = getTargetName();
+		Object setterTarget = element;
+		if (targetName != null) {
+			setterTarget = TriggerBase.getElementByName(element, targetName);
+		}
+		IMetaclass metaclass = XWT.getMetaclass(setterTarget);
+		IProperty prop = metaclass.findProperty(propName);
+		if (prop != null) {
+			try {
+				prop.setValue(setterTarget, value);
+			} catch (Exception e) {
+				throw new RuntimeException(e);
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/SetterBase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/SetterBase.java
new file mode 100644
index 0000000..22c6767
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/SetterBase.java
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.core;
+
+public abstract class SetterBase {
+	public static final SetterBase[] EMPTY_SETTERS = new SetterBase[0];
+
+	public abstract Object applyTo(Object element, boolean update);
+	public abstract void undo(Object element, Object value);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/Style.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/Style.java
new file mode 100644
index 0000000..b045168
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/Style.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.core;
+
+/**
+ * The class defines the in-line XAML style
+ * 
+ * @author yyang
+ */
+public class Style {
+	protected Class<?> targetType;
+	protected SetterBase[] setters;
+	protected TriggerBase[] triggers;
+
+	public TriggerBase[] getTriggers() {
+		if (triggers == null) {
+			return TriggerBase.EMPTY_ARRAY;
+		}
+		return triggers;
+	}
+
+	public void setTriggers(TriggerBase[] triggers) {
+		this.triggers = triggers;
+	}
+
+	public Class<?> getTargetType() {
+		return targetType;
+	}
+
+	public void setTargetType(Class<?> targetType) {
+		this.targetType = targetType;
+	}
+
+	public SetterBase[] getSetters() {
+		if (setters == null) {
+			return SetterBase.EMPTY_SETTERS;
+		}
+		return setters;
+	}
+
+	public void setSetters(SetterBase[] setters) {
+		this.setters = setters;
+	}
+
+	public void apply(Object target) {
+		for (SetterBase setter : getSetters()) {
+			setter.applyTo(target, true);
+		}
+		
+		for (TriggerBase triggerBase : getTriggers()) {
+			triggerBase.prepare(target);
+		}
+		
+		for (TriggerBase triggerBase : getTriggers()) {
+			triggerBase.on(target);				
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/Trigger.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/Trigger.java
new file mode 100644
index 0000000..9cd08a3
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/Trigger.java
@@ -0,0 +1,152 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.core;
+
+import java.util.HashMap;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.core.databinding.observable.ChangeEvent;
+import org.eclipse.core.databinding.observable.IObservable;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.databinding.JFaceXWTDataBinding;
+import org.eclipse.xwt.internal.core.ScopeManager;
+import org.eclipse.xwt.internal.core.UpdateSourceTrigger;
+import org.eclipse.xwt.internal.utils.LoggerManager;
+import org.eclipse.xwt.internal.utils.UserData;
+
+public class Trigger extends TriggerBase {
+	private String property;
+	private String sourceName;
+	private Operator operator = Operator.EQ;
+	private Object value;
+	private SetterBase[] setters;
+	
+	public Operator getOperator() {
+		return operator;
+	}
+
+	public void setOperator(Operator operator) {
+		this.operator = operator;
+	}
+
+	public String getProperty() {
+		return property;
+	}
+
+	public void setProperty(String property) {
+		this.property = property;
+	}
+
+	public String getSourceName() {
+		return sourceName;
+	}
+
+	public void setSourceName(String sourceName) {
+		this.sourceName = sourceName;
+	}
+
+	public Object getValue() {
+		return value;
+	}
+
+	public void setValue(Object value) {
+		this.value = value;
+	}
+
+	public SetterBase[] getSetters() {
+		if (setters == null) {
+			return SetterBase.EMPTY_SETTERS;
+		}
+		return setters;
+	}
+
+	public void setSetters(SetterBase[] setters) {
+		this.setters = setters;
+	}
+
+	public void on(Object target) {
+	}
+
+	public void prepare(Object target) {
+		if (property != null) {
+			final Object source = getElementByName(target, sourceName);
+			if (source == null) {
+				throw new XWTException("No element is found with the name = " + sourceName);
+			}
+			IObservable observableValue = ScopeManager.observeValue(source, source, property, UpdateSourceTrigger.PropertyChanged);
+			observableValue.addChangeListener(new AbstractChangeListener(target) {
+				public void handleChange(ChangeEvent event) {
+					Class<?> valueType = JFaceXWTDataBinding.getValueType(source.getClass(), property);
+					if (valueType == null) {
+						LoggerManager.log("Type of the property " + property + " is not found in " + source
+								.getClass().getName());
+						return;
+					}
+					Widget widget = UserData.getWidget(source);
+					if (widget == null) {
+						return;
+					}
+					
+					//
+					// test value ==
+					//
+					Object realValue = value;
+					if (value != null) {
+						IConverter converter = XWT.findConvertor(value.getClass(), valueType);
+						if (converter != null) {
+							realValue = converter.convert(value);						
+						}
+					}
+					Object newValue = event.getSource();
+					if (newValue instanceof IObservableValue) {
+						IObservableValue observableValue = (IObservableValue) newValue;
+						newValue = observableValue.getValue();
+					}
+					if (newValue != null) {
+						IConverter newConverter = XWT.findConvertor(newValue.getClass(), valueType);
+						if (newConverter != null) {
+							newValue = newConverter.convert(newValue);						
+						}
+					}
+
+					if (!Operator.compare(newValue, operator, realValue)) {
+						restoreValues();
+						if (oldvalues != null) {
+							oldvalues.clear();
+						}
+						return;
+					}
+					
+					if (oldvalues != null && !oldvalues.isEmpty()) {
+						return;
+					}
+
+					for (SetterBase setter : getSetters()) {
+						try {
+							Object oldValue = setter.applyTo(element, true);
+							if (oldvalues == null) {
+								oldvalues = new HashMap<SetterBase, Object>();
+							}
+							oldvalues.put(setter, oldValue);
+						} catch (RuntimeException e) {
+							continue;
+						}
+					}
+				}
+			});
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/TriggerAction.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/TriggerAction.java
new file mode 100644
index 0000000..39b9eaa
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/TriggerAction.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.core;
+
+import org.eclipse.swt.widgets.Event;
+
+public abstract class TriggerAction {
+	public static final TriggerAction[] EMPTY_ARRAY = new TriggerAction[0];
+	
+	public abstract void run(Event event, Object target, Runnable stateChangedRunnable);
+	
+	public abstract void initialize(Object target);
+	
+	public abstract void endFinalize(Object target);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/TriggerBase.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/TriggerBase.java
new file mode 100644
index 0000000..8cb3f8c
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/TriggerBase.java
@@ -0,0 +1,85 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.core;
+
+import java.util.HashMap;
+
+import org.eclipse.core.databinding.observable.IChangeListener;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.internal.utils.LoggerManager;
+import org.eclipse.xwt.internal.utils.UserData;
+
+public abstract class TriggerBase {
+	public final static TriggerBase[] EMPTY_ARRAY = new TriggerBase[0];
+	protected TriggerAction[] entryActions;
+	protected TriggerAction[] exitActions;
+
+	public TriggerAction[] getEntryActions() {
+		if (entryActions == null) {
+			return TriggerAction.EMPTY_ARRAY;
+		}
+		return entryActions;
+	}
+
+	public void setEntryActions(TriggerAction[] entryActions) {
+		this.entryActions = entryActions;
+	}
+
+	public TriggerAction[] getExitActions() {
+		if (exitActions == null) {
+			return TriggerAction.EMPTY_ARRAY;
+		}
+		return exitActions;
+	}
+
+	public void setExitActions(TriggerAction[] exitActions) {
+		this.exitActions = exitActions;
+	}
+	
+	public abstract void on(Object target);
+	public abstract void prepare(Object target);
+	
+	abstract class AbstractChangeListener implements IChangeListener {
+		protected HashMap<SetterBase, Object> oldvalues = null;
+		protected Object element;
+
+		public AbstractChangeListener(Object element) {
+			this.element = element;
+		}
+		
+		protected void restoreValues() {
+			if (oldvalues == null) {
+				return;
+			}
+			for (SetterBase setter : oldvalues.keySet()) {
+				setter.undo(element, oldvalues.get(setter));
+			}
+		}
+	}
+	
+	public static Object getElementByName(Object target, String elementName) {
+		if (elementName != null && elementName.length() > 0) {
+			Widget widget = UserData.getWidget(target);
+			if (widget != null) {
+				Object element = XWT.findElementByName(widget, elementName);
+				if (element != null) {
+					return element;
+				}
+				LoggerManager.log("EventTrigger: Source \n" + elementName + "\n is not found in " + target.getClass().getName());
+			}
+		}
+		return target;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/ValidationStatus.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/ValidationStatus.java
new file mode 100644
index 0000000..372058f
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/core/ValidationStatus.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2015 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.core;
+
+/**
+ * @author Nguyen Viet Hoa from Soyatec
+ * 
+ */
+public class ValidationStatus {
+
+	/** reference to the parent Binding. */
+	private Object parent;
+
+	public Object getParent() {
+		return parent;
+	}
+
+	public void setParent(Object parent) {
+		this.parent = parent;
+	}
+
+	/**
+	 * The direct widget that contains the validation status
+	 */
+	private Object control;
+
+	/**
+	 * The name of the binding whose binding context's status will be the source
+	 * data of the validationstatus's binding
+	 */
+	private String sourceName;
+
+	public Object getControl() {
+		return control;
+	}
+
+	public void setControl(Object control) {
+		this.control = control;
+	}
+
+	public String getSourceName() {
+		return sourceName;
+	}
+
+	public void setSourceName(String sourceName) {
+		this.sourceName = sourceName;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/AbstractDataBinding.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/AbstractDataBinding.java
new file mode 100644
index 0000000..cb5911d
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/AbstractDataBinding.java
@@ -0,0 +1,150 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.databinding;
+
+import org.eclipse.core.databinding.observable.IObservable;
+import org.eclipse.xwt.IDataBinding;
+import org.eclipse.xwt.IDataProvider;
+import org.eclipse.xwt.IValidationRule;
+import org.eclipse.xwt.IValueConverter;
+import org.eclipse.xwt.internal.core.Binding;
+import org.eclipse.xwt.internal.core.BindingExpressionPath;
+import org.eclipse.xwt.internal.core.UpdateSourceTrigger;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public abstract class AbstractDataBinding implements IDataBinding {
+	private IDataProvider dataProvider;
+
+	private Binding binding;
+
+	private BindingExpressionPath targetPropertySegments;
+
+	public BindingExpressionPath getSourcePropertyExpression() {
+		return binding.getPathPropertySegments();
+	}
+
+	public BindingExpressionPath getTargetPropertyExpression() {
+		return targetPropertySegments;
+	}
+
+	public AbstractDataBinding(Binding binding, IDataProvider dataProvider) {
+		this.binding = binding;
+		this.dataProvider = dataProvider;
+
+		targetPropertySegments = new BindingExpressionPath(getTargetProperty());
+	}
+
+	/**
+	 * @return the dataProvider
+	 */
+	public IDataProvider getDataProvider() {
+		return dataProvider;
+	}
+
+	/**
+	 * @param dataProvider
+	 *            the dataProvider to set
+	 */
+	public void setDataProvider(IDataProvider dataProvider) {
+		this.dataProvider = dataProvider;
+	}
+
+	/**
+	 *
+	 */
+	public BindingMode getBindingMode() {
+		return binding.getMode();
+	}
+
+	/**
+	 * Returns the name of the data binding context this binding is associated
+	 * with
+	 * 
+	 * @return
+	 */
+	protected IBindingContext getDataBindingContext() {
+		return binding.getBindingContext();
+	}
+
+	/**
+	 *
+	 */
+	public IValueConverter getConverter() {
+		return binding.getConverter();
+	}
+
+	/**
+	 * @return the target
+	 */
+	public Object getControl() {
+		return binding.getControl();
+	}
+
+	/**
+	 * @return the target
+	 */
+	public Object getHost() {
+		return binding.getHost();
+	}
+
+	/**
+	 * 
+	 * @return
+	 */
+	public BindingMode getMode() {
+		return binding.getMode();
+	}
+
+	/**
+	 * 
+	 * @param mode
+	 */
+	public void setMode(BindingMode mode) {
+		binding.setMode(mode);
+	}
+
+	/**
+	 * 
+	 * @return
+	 */
+	protected String getSourceProperty() {
+		return binding.getPath();
+	}
+
+	/**
+	 * 
+	 * @return
+	 */
+	protected String getTargetProperty() {
+		return binding.getType();
+	}
+
+	public IValidationRule[] getValidators() {
+		return binding.getValidationRules();
+	}
+
+	public UpdateSourceTrigger getUpdateSourceTrigger() {
+		return binding.getUpdateSourceTrigger();
+	}
+
+	protected IObservable getObservableSource() {
+		return binding.getObservableSource();
+	}
+
+	protected void setObservableSource(IObservable observableSource) {
+		binding.setObservableSource(observableSource);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/AggregateObservableValue.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/AggregateObservableValue.java
new file mode 100644
index 0000000..df3191f
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/AggregateObservableValue.java
@@ -0,0 +1,111 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *     Brad Reynolds - bug 164653
+ *******************************************************************************/
+package org.eclipse.xwt.databinding;
+
+import org.eclipse.core.databinding.observable.Diffs;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.observable.value.IValueChangeListener;
+import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
+import org.eclipse.xwt.IMultiValueConverter;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @since 3.2
+ *
+ */
+public class AggregateObservableValue extends AbstractObservableValue {
+
+	private IObservableValue[] observableValues;
+
+	private boolean updating = false;
+	private IMultiValueConverter converter;
+
+	private Object currentValue;
+
+	private IValueChangeListener listener = new IValueChangeListener() {
+		public void handleValueChange(ValueChangeEvent event) {
+			if (!updating) {
+				fireValueChange(Diffs.createValueDiff(currentValue,
+						doGetValue()));
+			}
+		}
+	};
+
+	/**
+	 * @param observableValues
+	 * @param delimiter
+	 */
+	public AggregateObservableValue(IObservableValue[] observableValues,
+			IMultiValueConverter converter) {
+		super(findRealm(observableValues));
+		this.converter = converter;
+
+		this.observableValues = observableValues;
+		for (int i = 0; i < observableValues.length; i++) {
+			observableValues[i].addValueChangeListener(listener);
+		}
+		doGetValue();
+	}
+	
+	private static Realm findRealm(IObservableValue[] observableValues) {
+		for (IObservableValue observableValue : observableValues) {
+			return observableValue.getRealm();
+		}
+		return XWT.getRealm();
+	}
+
+	public void doSetValue(Object value) {
+		Object oldValue = doGetValue();
+
+		try {
+			updating = true;
+			Object[] values = converter.convertBack(value);
+			for (int i = 0; i < observableValues.length; i++) {
+				if (i < values.length) {
+					observableValues[i].setValue(values[i]);
+				}
+				else {
+					observableValues[i].setValue(null);					
+				}
+			}
+		} finally {
+			updating = false;
+		}
+		doGetValue();
+		currentValue = value;
+		fireValueChange(Diffs.createValueDiff(oldValue, value));
+	}
+
+	public Object doGetValue() {
+		Object[] values = new Object[observableValues.length];
+		for (int i = 0; i < values.length; i++) {
+			values[i] = observableValues[i].getValue();		
+		}
+		return converter.convert(values);
+	}
+
+	public Object getValueType() {
+		return String[].class;
+	}
+
+	public synchronized void dispose() {
+		for (int i = 0; i < observableValues.length; i++) {
+			observableValues[i].removeValueChangeListener(listener);
+		}
+		super.dispose();
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/BindingContext.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/BindingContext.java
new file mode 100644
index 0000000..cd2adac
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/BindingContext.java
@@ -0,0 +1,279 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec & hceylan - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.databinding;
+
+import org.eclipse.core.databinding.AggregateValidationStatus;
+import org.eclipse.core.databinding.Binding;
+import org.eclipse.core.databinding.UpdateListStrategy;
+import org.eclipse.core.databinding.UpdateSetStrategy;
+import org.eclipse.core.databinding.UpdateValueStrategy;
+import org.eclipse.core.databinding.ValidationStatusProvider;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.map.IObservableMap;
+import org.eclipse.core.databinding.observable.set.IObservableSet;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author hceylan
+ */
+public class BindingContext implements IBindingContext {
+
+	private org.eclipse.core.databinding.DataBindingContext context;
+
+	private Realm realm;
+
+	private AggregateValidationStatus status;
+
+	private int statusType = MAX_SEVERITY;
+
+	private final Widget parent;
+
+	public BindingContext(Widget parent) {
+		super();
+		this.parent = parent;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.databinding.IDataBindingContext#getContext()
+	 */
+	public org.eclipse.core.databinding.DataBindingContext getContext() {
+		if (this.context == null) {
+			if (this.realm != null) {
+				this.context = new org.eclipse.core.databinding.DataBindingContext(
+						this.realm);
+			} else {
+				this.context = new org.eclipse.core.databinding.DataBindingContext(
+						XWT.getRealm());
+			}
+
+			if (this.parent != null) {
+				this.parent.addDisposeListener(new DisposeListener() {
+					public void widgetDisposed(DisposeEvent e) {
+						context.dispose();
+					}
+				});
+			}
+		}
+		return this.context;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.databinding.IDataBindingContext#getRealm()
+	 */
+	public Realm getRealm() {
+		return this.realm;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.databinding.IDataBindingContext#getStatus()
+	 */
+	public AggregateValidationStatus getStatus() {
+		if (this.status == null) {
+			this.status = new AggregateValidationStatus(getContext(),
+					this.statusType);
+			if (this.parent != null) {
+				this.parent.addDisposeListener(new DisposeListener() {
+					public void widgetDisposed(DisposeEvent e) {
+						status.dispose();
+					}
+				});
+			}
+		}
+		return this.status;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.databinding.IDataBindingContext#getStatusType()
+	 */
+	public int getStatusType() {
+		return statusType;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.databinding.IDataBindingContext#bindValue(org.eclipse.core.databinding.observable.value.IObservableValue, org.eclipse.core.databinding.observable.value.IObservableValue)
+	 */
+	public final Binding bindValue(IObservableValue targetObservableValue,
+			IObservableValue modelObservableValue) {
+		return getContext().bindValue(targetObservableValue,
+				modelObservableValue);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.databinding.IDataBindingContext#equals(java.lang.Object)
+	 */
+	public boolean equals(Object obj) {
+		if (!(obj instanceof BindingContext)) {
+			return false;			
+		}
+		org.eclipse.core.databinding.DataBindingContext context = getContext();
+		if (context != null) {
+			return context.equals(((BindingContext)obj).getContext());							
+		}
+		if (((BindingContext)obj).getContext() != null) {
+			return false;
+		}
+		return super.equals(obj);
+	}
+	
+	@Override
+	public int hashCode() {
+		return getContext().hashCode();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.databinding.IDataBindingContext#bindValue(org.eclipse.core.databinding.observable.value.IObservableValue, org.eclipse.core.databinding.observable.value.IObservableValue, org.eclipse.core.databinding.UpdateValueStrategy, org.eclipse.core.databinding.UpdateValueStrategy)
+	 */
+	public final Binding bindValue(IObservableValue targetObservableValue,
+			IObservableValue modelObservableValue,
+			UpdateValueStrategy targetToModel, UpdateValueStrategy modelToTarget) {
+		return getContext().bindValue(targetObservableValue,
+				modelObservableValue, targetToModel, modelToTarget);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.databinding.IDataBindingContext#bindList(org.eclipse.core.databinding.observable.list.IObservableList, org.eclipse.core.databinding.observable.list.IObservableList)
+	 */
+	public final Binding bindList(IObservableList targetObservableList,
+			IObservableList modelObservableList) {
+		return getContext()
+				.bindList(targetObservableList, modelObservableList);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.databinding.IDataBindingContext#bindList(org.eclipse.core.databinding.observable.list.IObservableList, org.eclipse.core.databinding.observable.list.IObservableList, org.eclipse.core.databinding.UpdateListStrategy, org.eclipse.core.databinding.UpdateListStrategy)
+	 */
+	public final Binding bindList(IObservableList targetObservableList,
+			IObservableList modelObservableList,
+			UpdateListStrategy targetToModel, UpdateListStrategy modelToTarget) {
+		return getContext().bindList(targetObservableList,
+				modelObservableList, targetToModel, modelToTarget);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.databinding.IDataBindingContext#bindSet(org.eclipse.core.databinding.observable.set.IObservableSet, org.eclipse.core.databinding.observable.set.IObservableSet)
+	 */
+	public final Binding bindSet(IObservableSet targetObservableSet,
+			IObservableSet modelObservableSet) {
+		return getContext().bindSet(targetObservableSet, modelObservableSet);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.databinding.IDataBindingContext#bindSet(org.eclipse.core.databinding.observable.set.IObservableSet, org.eclipse.core.databinding.observable.set.IObservableSet, org.eclipse.core.databinding.UpdateSetStrategy, org.eclipse.core.databinding.UpdateSetStrategy)
+	 */
+	public final Binding bindSet(IObservableSet targetObservableSet,
+			IObservableSet modelObservableSet, UpdateSetStrategy targetToModel,
+			UpdateSetStrategy modelToTarget) {
+		return getContext().bindSet(targetObservableSet, modelObservableSet,
+				targetToModel, modelToTarget);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.databinding.IDataBindingContext#dispose()
+	 */
+	public final void dispose() {
+		getContext().dispose();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.databinding.IDataBindingContext#getBindings()
+	 */
+	public final IObservableList getBindings() {
+		return getContext().getBindings();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.databinding.IDataBindingContext#getValidationStatusProviders()
+	 */
+	public final IObservableList getValidationStatusProviders() {
+		return getContext().getValidationStatusProviders();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.databinding.IDataBindingContext#getValidationStatusMap()
+	 */
+	public final IObservableMap getValidationStatusMap() {
+		return getContext().getValidationStatusMap();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.databinding.IDataBindingContext#addBinding(org.eclipse.core.databinding.Binding)
+	 */
+	public void addBinding(Binding binding) {
+		getContext().addBinding(binding);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.databinding.IDataBindingContext#addValidationStatusProvider(org.eclipse.core.databinding.ValidationStatusProvider)
+	 */
+	public void addValidationStatusProvider(
+			ValidationStatusProvider validationStatusProvider) {
+		getContext().addValidationStatusProvider(validationStatusProvider);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.databinding.IDataBindingContext#updateModels()
+	 */
+	public final void updateModels() {
+		getContext().updateModels();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.databinding.IDataBindingContext#updateTargets()
+	 */
+	public final void updateTargets() {
+		getContext().updateTargets();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.databinding.IDataBindingContext#removeBinding(org.eclipse.core.databinding.Binding)
+	 */
+	public boolean removeBinding(Binding binding) {
+		return getContext().removeBinding(binding);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.databinding.IDataBindingContext#removeValidationStatusProvider(org.eclipse.core.databinding.ValidationStatusProvider)
+	 */
+	public boolean removeValidationStatusProvider(
+			ValidationStatusProvider validationStatusProvider) {
+		return getContext().removeValidationStatusProvider(
+				validationStatusProvider);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.databinding.IDataBindingContext#getValidationRealm()
+	 */
+	public final Realm getValidationRealm() {
+		return getContext().getValidationRealm();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.databinding.IDataBindingContext#setRealm(org.eclipse.core.databinding.observable.Realm)
+	 */
+	public void setRealm(Realm realm) {
+		this.realm = realm;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.databinding.IDataBindingContext#setStatusType(int)
+	 */
+	public void setStatusType(int statusType) {
+		this.statusType = statusType;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/BindingMode.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/BindingMode.java
new file mode 100644
index 0000000..ee5ac3d
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/BindingMode.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.databinding;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public enum BindingMode {
+	TwoWay, OneWay, OneTime;
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/ControlDataBinding.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/ControlDataBinding.java
new file mode 100644
index 0000000..18be9d4
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/ControlDataBinding.java
@@ -0,0 +1,106 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.xwt.databinding;
+
+import org.eclipse.core.databinding.observable.IObservable;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.xwt.IDataProvider;
+import org.eclipse.xwt.IValueConverter;
+import org.eclipse.xwt.internal.core.Binding;
+import org.eclipse.xwt.internal.core.BindingGate;
+import org.eclipse.xwt.internal.core.ScopeManager;
+import org.eclipse.xwt.internal.utils.UserData;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class ControlDataBinding extends AbstractDataBinding {
+	private Object source;
+
+	public ControlDataBinding(Object source, Binding binding,
+			IDataProvider dataProvider) {
+		super(binding, dataProvider);
+		this.source = source;
+	}
+
+	/**
+	 * Get bind value of two bindings.
+	 */
+	public Object getValue(Class<?> targetType) {
+		IObservableValue targetWidget = null;
+		Object target = getControl();
+		if (target != null) {
+			targetWidget = ScopeManager.observeValue(target, target,
+					getTargetProperty(), getUpdateSourceTrigger());
+		}
+		if (source == null) {
+			return null;
+		}
+
+		Object control = UserData.getWidget(source);
+		if (control == null) {
+			control = getControl();
+		}
+
+		IObservableValue sourceWidget = ScopeManager.observeValue(control, source,
+				getSourceProperty(), getUpdateSourceTrigger());
+
+		if (targetWidget == null) {
+			if (sourceWidget != null) {
+				if (targetType != null && !targetType.isInstance(sourceWidget)) {
+					return sourceWidget;			
+				}
+				Object value = sourceWidget.getValue();
+				while(value instanceof IObservableValue) {
+					value = ((IObservableValue)value).getValue();
+				}
+				IValueConverter converter = getConverter();
+				if (converter != null) {
+					value = converter.convert(value);
+				}
+				return value;
+			}
+			return source;
+		}
+
+		IBindingContext dataBindingContext = getDataBindingContext();
+		BindingGate bindingGate = new BindingGate(dataBindingContext);
+		bindingGate.bind(sourceWidget, targetWidget, this);
+		if (sourceWidget != null) {
+			if (targetType != null && !targetType.isInstance(sourceWidget)) {
+				return sourceWidget;			
+			}
+			// convert to final value
+			Object value = sourceWidget.getValue();
+			while(value instanceof IObservableValue) {
+				value = ((IObservableValue)value).getValue();
+			}
+			IValueConverter converter = getConverter();
+			if (converter != null) {
+				value = converter.convert(value);
+			}
+			return value;
+		}
+		return source;
+	}
+	
+	/**
+	 * 
+	 * @return
+	 */
+	protected Object getSource() {
+		return source;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/DataBinding.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/DataBinding.java
new file mode 100644
index 0000000..c429797
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/DataBinding.java
@@ -0,0 +1,203 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.databinding;
+
+import org.eclipse.core.databinding.observable.IObservable;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.set.IObservableSet;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.DateTime;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.xwt.IDataProvider;
+import org.eclipse.xwt.IValueConverter;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.internal.core.Binding;
+import org.eclipse.xwt.internal.core.BindingExpressionPath;
+import org.eclipse.xwt.internal.core.BindingGate;
+import org.eclipse.xwt.internal.core.ScopeManager;
+import org.eclipse.xwt.metadata.ModelUtils;
+
+/**
+ * The default implementation of the dataBinding object.
+ * 
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class DataBinding extends AbstractDataBinding {
+
+	private IObservable observableWidget;
+
+	private BindingGate bindingGate;
+
+	/**
+	 * Constructor for dataProvider.
+	 */
+	public DataBinding(Binding binding, IDataProvider dataProvider) {
+		super(binding, dataProvider);
+		assert dataProvider != null : "DataProvider is null";
+	}
+
+	/**
+	 * Get bind value of two bindings.
+	 */
+	public Object getValue(Class<?> targetType) {
+		IObservable observableWidget = getObservableWidget();
+		IObservable observableSource = getObservableSource(ScopeManager.VALUE);
+
+		/*
+		 * If observableWidget is null, we need only return the data from
+		 * provider.
+		 */
+		if (observableWidget == null) {
+			if (observableSource == null) {
+				// TODO should raise an exception
+				return null;
+			}
+			if (targetType != null && !targetType.isInstance(observableSource)) {
+				return observableSource;			
+			}
+			
+			// convert to final value
+			Object value = observableSource;
+			if (observableSource instanceof IObservableValue) {
+				value = ((IObservableValue) observableSource).getValue();
+			}
+			return convertedValue(value);
+		}
+
+		BindingGate bindingContext = getBindingGate();
+
+		if (bindingContext != null && observableSource != null) {
+			Object target = getControl();
+			if (target instanceof Text
+					&& getTargetProperty().equalsIgnoreCase("text")) {
+				if (isSourcePropertyReadOnly()) {
+					Text text = (Text) target;
+					text.setEditable(false);
+				}
+			} else if (target instanceof Button
+					&& getTargetProperty().equalsIgnoreCase("selection")) {
+				if (isSourcePropertyReadOnly()) {
+					Button button = (Button) target;
+					button.setEnabled(false);
+				}
+			} else if ((target instanceof Combo || target instanceof CCombo)
+					&& getTargetProperty().equalsIgnoreCase("text")) {
+				if (isSourcePropertyReadOnly()) {
+					Control control = (Control) target;
+					control.setEnabled(false);
+				}
+			} else if (target instanceof MenuItem
+					&& getTargetProperty().equalsIgnoreCase("selection")) {
+				if (isSourcePropertyReadOnly()) {
+					MenuItem menuItem = (MenuItem) target;
+					menuItem.setEnabled(false);
+				}
+			} else if (target instanceof DateTime
+					&& getTargetProperty().equalsIgnoreCase("selection")) {
+				if (isSourcePropertyReadOnly()) {
+					DateTime dateTime = (DateTime) target;
+					dateTime.setEnabled(false);
+				}
+			}
+			bindingContext.bind(observableSource, observableWidget, this);
+		}
+
+		if (targetType != null && !targetType.isInstance(observableSource)) {
+			return observableSource;			
+		}
+
+		// convert to final value
+		Object value = observableSource;
+		while (value instanceof IObservableValue) {
+			value = ((IObservableValue) value).getValue();
+		}
+		return convertedValue(value);
+	}
+
+	private BindingGate getBindingGate() {
+		if (this.bindingGate == null) {
+			IBindingContext dataBindingContext = getDataBindingContext();
+			this.bindingGate = new BindingGate(dataBindingContext);
+		}
+
+		return this.bindingGate;
+	}
+
+	private Object convertedValue(Object value) {
+		IValueConverter converter = getConverter();
+		if (converter != null) {
+			value = converter.convert(value);
+		}
+		return value;
+	}
+
+	public boolean isSourcePropertyReadOnly() {
+		IDataProvider dataProvider = getDataProvider();
+		try {
+			return ScopeManager.isPropertyReadOnly(dataProvider,
+					getSourcePropertyExpression());
+		} catch (XWTException e) {
+		}
+		return false;
+	}
+
+	public IObservable getObservableSource(int observeKind) {
+		IObservable observableSource = getObservableSource();
+		if (observableSource == null) {
+			IDataProvider dataProvider = getDataProvider();
+			observableSource = ScopeManager.observe(getControl(), dataProvider
+					.getData(null), getSourcePropertyExpression(),
+					getUpdateSourceTrigger(), observeKind);
+			if (observableSource != null) {
+				setObservableSource(observableSource);
+			}
+		}
+		return observableSource;
+	}
+
+	public IObservable getObservableWidget() {
+		if (observableWidget == null) {
+			Object target = getControl();
+			Object host = getHost();
+			String targetProperty = getTargetProperty();
+			targetProperty = ModelUtils.normalizePropertyName(targetProperty);
+			int observeKind = ScopeManager.AUTO;
+			if (host instanceof Viewer && "input".equals(targetProperty)) {
+				// It is possible to use List
+				getObservableSource(ScopeManager.COLLECTION);
+				IObservable observableSource = getObservableSource();
+				if (observableSource instanceof IObservableList) {
+					return null;
+				} else if (observableSource instanceof IObservableSet) {
+					return null;
+				}
+			}
+			try {
+				BindingExpressionPath path = getTargetPropertyExpression();
+				if (path.isEmptyPath()) {
+					return null;
+				}
+				observableWidget = ScopeManager.observe(target, host, path,
+						getUpdateSourceTrigger(), observeKind);
+			} catch (XWTException e) {
+			}
+		}
+		return observableWidget;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/Event.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/Event.java
new file mode 100644
index 0000000..0e7bd54
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/Event.java
@@ -0,0 +1,92 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.databinding;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class Event {
+
+	private Object eventTarget;
+	private Object oldValue;
+	private Object newValue;
+	private String eventType;
+
+	public Event(Object eventTarget, Object oldValue, Object newValue, String eventType) {
+		this.eventTarget = eventTarget;
+		this.oldValue = oldValue;
+		this.newValue = newValue;
+		this.eventType = eventType;
+	}
+
+	/**
+	 * @return the eventTarget
+	 */
+	public Object getEventTarget() {
+		return eventTarget;
+	}
+
+	/**
+	 * @param eventTarget
+	 *            the eventTarget to set
+	 */
+	public void setEventTarget(Object eventTarget) {
+		this.eventTarget = eventTarget;
+	}
+
+	/**
+	 * @return the oldValue
+	 */
+	public Object getOldValue() {
+		return oldValue;
+	}
+
+	/**
+	 * @param oldValue
+	 *            the oldValue to set
+	 */
+	public void setOldValue(Object oldValue) {
+		this.oldValue = oldValue;
+	}
+
+	/**
+	 * @return the newValue
+	 */
+	public Object getNewValue() {
+		return newValue;
+	}
+
+	/**
+	 * @param newValue
+	 *            the newValue to set
+	 */
+	public void setNewValue(Object newValue) {
+		this.newValue = newValue;
+	}
+
+	/**
+	 * @return the eventType
+	 */
+	public String getEventType() {
+		return eventType;
+	}
+
+	/**
+	 * @param eventType
+	 *            the eventType to set
+	 */
+	public void setEventType(String eventType) {
+		this.eventType = eventType;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/EventListener.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/EventListener.java
new file mode 100644
index 0000000..532c442
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/EventListener.java
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.databinding;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public interface EventListener {
+	void handleEvent(Event evt);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/EventManager.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/EventManager.java
new file mode 100644
index 0000000..e0df7c1
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/EventManager.java
@@ -0,0 +1,73 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.databinding;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.databinding.observable.Realm;
+
+/**
+ * This class <code>EventManager</code> is used to manage all event listeners for a observed object.
+ * 
+ * @author jliu jin.liu@soyatec.com
+ */
+public class EventManager {
+
+	private static Map<Object, EventManager> managers = new HashMap<Object, EventManager>();
+
+	private Realm realm;
+	private Map<String, List<EventListener>> type2listeners = new HashMap<String, List<EventListener>>();
+
+	/**
+	 * private constructor, lazy creating.
+	 */
+	private EventManager(Object observed, Realm realm) {
+		this.realm = realm;
+	}
+
+	public static EventManager getEventManager(Object eventTarget, Realm realm) {
+		EventManager eventManager = managers.get(eventTarget);
+		if (eventManager == null || eventManager.realm != realm) {
+			eventManager = new EventManager(eventTarget, realm);
+			managers.put(eventTarget, eventManager);
+		}
+		return eventManager;
+	}
+
+	public void dispatchEvent(Event event) {
+		String eventType = event.getEventType();
+		List<EventListener> listeners = type2listeners.get(eventType);
+		for (EventListener l : listeners) {
+			l.handleEvent(event);
+		}
+	}
+
+	public void addEventListener(String eventType, EventListener eventListener) {
+		List<EventListener> listeners = type2listeners.get(eventType);
+		if (listeners == null) {
+			listeners = new ArrayList<EventListener>();
+			type2listeners.put(eventType, listeners);
+		}
+		listeners.add(eventListener);
+	}
+
+	public void removeEventListener(String eventType, EventListener eventListener) {
+		List<EventListener> listeners = type2listeners.get(eventType);
+		if (listeners != null) {
+			listeners.remove(eventListener);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/EventPropertyObservableValue.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/EventPropertyObservableValue.java
new file mode 100644
index 0000000..59ac952
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/EventPropertyObservableValue.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.databinding;
+
+import org.eclipse.xwt.IObservableValueListener;
+import org.eclipse.xwt.internal.core.IEventController;
+import org.eclipse.xwt.internal.utils.LoggerManager;
+import org.eclipse.xwt.internal.utils.ObservableValueManager;
+import org.eclipse.xwt.internal.utils.UserData;
+import org.eclipse.xwt.javabean.metadata.properties.EventProperty;
+import org.eclipse.xwt.metadata.IEvent;
+
+public class EventPropertyObservableValue extends XWTObservableValue {
+	private EventProperty property;
+		
+	public EventPropertyObservableValue(Object observed, EventProperty property) {
+		super(Boolean.class, observed, property.getName());
+		this.property = property;
+		IEventController controller = UserData.findEventController(observed);
+		if (controller == null) {
+			controller = UserData.updateEventController(observed);
+		}
+		IEvent event = property.getEvent();
+
+		IObservableValueListener manager = UserData.getObservableValueManager(observed);
+		if (manager == null) {
+			manager = new ObservableValueManager(observed);
+			UserData.setObservableValueManager(observed, manager);
+		}
+		try {
+			controller.setEvent(event, UserData.getWidget(observed), manager, property, IObservableValueListener.class.getDeclaredMethod("changeValueHandle", Object.class, org.eclipse.swt.widgets.Event.class));
+			manager.registerValue(property, this);
+		} catch (Exception e) {
+			LoggerManager.log(e);
+			return;
+		}
+	}
+
+	@Override
+	protected void doSetApprovedValue(Object value) {
+		UserData.setLocalData(getObserved(), property.getName(), value);		
+	}
+
+	protected Object doGetValue() {
+		return UserData.getLocalData(getObserved(), property.getName());
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/IBindingContext.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/IBindingContext.java
new file mode 100644
index 0000000..1a0a99b
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/IBindingContext.java
@@ -0,0 +1,227 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.databinding;
+
+import org.eclipse.core.databinding.AggregateValidationStatus;
+import org.eclipse.core.databinding.Binding;
+import org.eclipse.core.databinding.UpdateListStrategy;
+import org.eclipse.core.databinding.UpdateSetStrategy;
+import org.eclipse.core.databinding.UpdateValueStrategy;
+import org.eclipse.core.databinding.ValidationStatusProvider;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.map.IObservableMap;
+import org.eclipse.core.databinding.observable.set.IObservableSet;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+
+public interface IBindingContext {
+
+	/**
+	 * 
+	 * @see @see org.eclipse.core.databinding.AggregateValidationStatus#MERGED
+	 */
+	public static final int MERGED = org.eclipse.core.databinding.AggregateValidationStatus.MERGED;
+	/**
+	 * 
+	 * @see org.eclipse.core.databinding.AggregateValidationStatus#MAX_SEVERITY
+	 */
+	public static final int MAX_SEVERITY = org.eclipse.core.databinding.AggregateValidationStatus.MAX_SEVERITY;
+
+	/**
+	 * @return the delegate
+	 */
+	public abstract org.eclipse.core.databinding.DataBindingContext getContext();
+
+	/**
+	 * @return the realm
+	 */
+	public abstract Realm getRealm();
+
+	/**
+	 * @return the status
+	 */
+	public abstract AggregateValidationStatus getStatus();
+
+	/**
+	 * The status type of the status. One of the values
+	 * 
+	 * @return the statusType
+	 */
+	public abstract int getStatusType();
+
+	/**
+	 * @param targetObservableValue
+	 * @param modelObservableValue
+	 * @return
+	 * @see org.eclipse.core.databinding.DataBindingContext#bindValue(org.eclipse.core.databinding.observable.value.IObservableValue,
+	 *      org.eclipse.core.databinding.observable.value.IObservableValue)
+	 */
+	public abstract Binding bindValue(IObservableValue targetObservableValue,
+			IObservableValue modelObservableValue);
+
+	/**
+	 * @param obj
+	 * @return
+	 * @see java.lang.Object#equals(java.lang.Object)
+	 */
+	public abstract boolean equals(Object obj);
+
+	/**
+	 * @param targetObservableValue
+	 * @param modelObservableValue
+	 * @param targetToModel
+	 * @param modelToTarget
+	 * @return
+	 * @see org.eclipse.core.databinding.DataBindingContext#bindValue(org.eclipse.core.databinding.observable.value.IObservableValue,
+	 *      org.eclipse.core.databinding.observable.value.IObservableValue,
+	 *      org.eclipse.core.databinding.UpdateValueStrategy,
+	 *      org.eclipse.core.databinding.UpdateValueStrategy)
+	 */
+	public abstract Binding bindValue(IObservableValue targetObservableValue,
+			IObservableValue modelObservableValue,
+			UpdateValueStrategy targetToModel, UpdateValueStrategy modelToTarget);
+
+	/**
+	 * @param targetObservableList
+	 * @param modelObservableList
+	 * @return
+	 * @see org.eclipse.core.databinding.DataBindingContext#bindList(org.eclipse.core.databinding.observable.list.IObservableList,
+	 *      org.eclipse.core.databinding.observable.list.IObservableList)
+	 */
+	public abstract Binding bindList(IObservableList targetObservableList,
+			IObservableList modelObservableList);
+
+	/**
+	 * @param targetObservableList
+	 * @param modelObservableList
+	 * @param targetToModel
+	 * @param modelToTarget
+	 * @return
+	 * @see org.eclipse.core.databinding.DataBindingContext#bindList(org.eclipse.core.databinding.observable.list.IObservableList,
+	 *      org.eclipse.core.databinding.observable.list.IObservableList,
+	 *      org.eclipse.core.databinding.UpdateListStrategy,
+	 *      org.eclipse.core.databinding.UpdateListStrategy)
+	 */
+	public abstract Binding bindList(IObservableList targetObservableList,
+			IObservableList modelObservableList,
+			UpdateListStrategy targetToModel, UpdateListStrategy modelToTarget);
+
+	/**
+	 * @param targetObservableSet
+	 * @param modelObservableSet
+	 * @return
+	 * @see org.eclipse.core.databinding.DataBindingContext#bindSet(org.eclipse.core.databinding.observable.set.IObservableSet,
+	 *      org.eclipse.core.databinding.observable.set.IObservableSet)
+	 */
+	public abstract Binding bindSet(IObservableSet targetObservableSet,
+			IObservableSet modelObservableSet);
+
+	/**
+	 * @param targetObservableSet
+	 * @param modelObservableSet
+	 * @param targetToModel
+	 * @param modelToTarget
+	 * @return
+	 * @see org.eclipse.core.databinding.DataBindingContext#bindSet(org.eclipse.core.databinding.observable.set.IObservableSet,
+	 *      org.eclipse.core.databinding.observable.set.IObservableSet,
+	 *      org.eclipse.core.databinding.UpdateSetStrategy,
+	 *      org.eclipse.core.databinding.UpdateSetStrategy)
+	 */
+	public abstract Binding bindSet(IObservableSet targetObservableSet,
+			IObservableSet modelObservableSet, UpdateSetStrategy targetToModel,
+			UpdateSetStrategy modelToTarget);
+
+	/**
+	 * 
+	 * @see org.eclipse.core.databinding.DataBindingContext#dispose()
+	 */
+	public abstract void dispose();
+
+	/**
+	 * @return
+	 * @see org.eclipse.core.databinding.DataBindingContext#getBindings()
+	 */
+	public abstract IObservableList getBindings();
+
+	/**
+	 * @return
+	 * @see org.eclipse.core.databinding.DataBindingContext#getValidationStatusProviders()
+	 */
+	public abstract IObservableList getValidationStatusProviders();
+
+	/**
+	 * @return
+	 * @deprecated
+	 * @see org.eclipse.core.databinding.DataBindingContext#getValidationStatusMap()
+	 */
+	public abstract IObservableMap getValidationStatusMap();
+
+	/**
+	 * @param binding
+	 * @see org.eclipse.core.databinding.DataBindingContext#addBinding(org.eclipse.core.databinding.Binding)
+	 */
+	public abstract void addBinding(Binding binding);
+
+	/**
+	 * @param validationStatusProvider
+	 * @see org.eclipse.core.databinding.DataBindingContext#addValidationStatusProvider(org.eclipse.core.databinding.ValidationStatusProvider)
+	 */
+	public abstract void addValidationStatusProvider(
+			ValidationStatusProvider validationStatusProvider);
+
+	/**
+	 * 
+	 * @see org.eclipse.core.databinding.DataBindingContext#updateModels()
+	 */
+	public abstract void updateModels();
+
+	/**
+	 * 
+	 * @see org.eclipse.core.databinding.DataBindingContext#updateTargets()
+	 */
+	public abstract void updateTargets();
+
+	/**
+	 * @param binding
+	 * @return
+	 * @see org.eclipse.core.databinding.DataBindingContext#removeBinding(org.eclipse.core.databinding.Binding)
+	 */
+	public abstract boolean removeBinding(Binding binding);
+
+	/**
+	 * @param validationStatusProvider
+	 * @return
+	 * @see org.eclipse.core.databinding.DataBindingContext#removeValidationStatusProvider(org.eclipse.core.databinding.ValidationStatusProvider)
+	 */
+	public abstract boolean removeValidationStatusProvider(
+			ValidationStatusProvider validationStatusProvider);
+
+	/**
+	 * @return
+	 * @see org.eclipse.core.databinding.DataBindingContext#getValidationRealm()
+	 */
+	public abstract Realm getValidationRealm();
+
+	/**
+	 * @param realm
+	 *            the realm to set
+	 */
+	public abstract void setRealm(Realm realm);
+
+	/**
+	 * @param statusType
+	 *            the statusType to set
+	 */
+	public abstract void setStatusType(int statusType);
+
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/JFaceXWTDataBinding.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/JFaceXWTDataBinding.java
new file mode 100644
index 0000000..dc8a367
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/JFaceXWTDataBinding.java
@@ -0,0 +1,510 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.databinding;
+
+import java.beans.BeanInfo;
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.core.databinding.observable.IObservable;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.value.SimpleValueProperty;
+import org.eclipse.core.internal.databinding.property.value.SimplePropertyObservableValue;
+import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.jface.databinding.viewers.ViewerProperties;
+import org.eclipse.jface.databinding.viewers.ViewersObservables;
+import org.eclipse.jface.internal.databinding.swt.DateTimeSelectionProperty;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.DateTime;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.xwt.IDataProvider;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.internal.core.ScopeManager;
+import org.eclipse.xwt.internal.core.UpdateSourceTrigger;
+import org.eclipse.xwt.internal.databinding.menuitem.MenuItemEnabledObservableValue;
+import org.eclipse.xwt.internal.databinding.menuitem.MenuItemSelectionObservableValue;
+import org.eclipse.xwt.internal.utils.LoggerManager;
+import org.eclipse.xwt.internal.utils.UserData;
+import org.eclipse.xwt.javabean.metadata.properties.EventProperty;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class JFaceXWTDataBinding {
+	static final String ENABLED = "enabled";
+	static final String SELECTION = "selection";
+
+	static final String TEXT = "text";
+	public static final Class<?>[] CONTROL_ARGUMENT_TYPES = new Class[] { Control.class };
+	public static final Class<?>[] VIEWER_ARGUMENT_TYPES = new Class[] { Viewer.class };
+	
+	static String[] VIEWERS_PROPERTIES = null;
+	static {
+		Method[] methods = ViewerProperties.class.getDeclaredMethods();
+		VIEWERS_PROPERTIES = new String[methods.length];
+		for (int i = 0; i < methods.length; i++) {
+			VIEWERS_PROPERTIES[i] =  methods[i].getName();
+		}		
+	}
+
+	public static boolean isViewerProperty(String propertyName) {
+		for (String name : VIEWERS_PROPERTIES) {
+			if (name.equals(propertyName)) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	public static Class<?> getValueType(Class<?> type, String propertyName) {
+		if (type == null || propertyName == null || propertyName.indexOf(".") != -1) {
+			return null;
+		}
+		try {
+			IMetaclass metaclass = XWT.getMetaclass(type);
+			IProperty property = metaclass.findProperty(propertyName);
+			if (property != null) {
+				return property.getType();
+			}
+		} catch (Exception e) {
+			LoggerManager.log(e);
+		}
+		return null;
+	}
+	
+	public static Object getValue(Object target, String propertyName) {
+		if (target == null || propertyName == null || propertyName.indexOf(".") != -1) {
+			return target;
+		}
+		Class<?> type = target.getClass();
+		try {
+			BeanInfo beanInfo = java.beans.Introspector.getBeanInfo(type);
+			PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
+			for (PropertyDescriptor pd : propertyDescriptors) {
+				if (propertyName.equalsIgnoreCase(pd.getName())) {
+					Method readMethod = pd.getReadMethod();
+					if (readMethod != null) {
+						return readMethod.invoke(target);
+					}
+				}
+			}
+			Field[] fields = type.getDeclaredFields();
+			for (Field field : fields) {
+				if (propertyName.equalsIgnoreCase(field.getName())) {
+					Object object = field.get(target);
+					return object;
+				}
+			}
+			return UserData.getLocalData(target, propertyName);
+		} catch (Exception e) {
+			LoggerManager.log(e);
+		}
+		return null;
+	}
+	
+	public static void setValue(Object target, String propertyName, Object value) {
+		Class<?> type = target.getClass();
+		try {
+			BeanInfo beanInfo = java.beans.Introspector.getBeanInfo(type);
+			PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
+			for (PropertyDescriptor pd : propertyDescriptors) {
+				if (propertyName.equals(pd.getName())) {
+					Method writeMethod = pd.getWriteMethod();
+					if (writeMethod == null) {
+						return;
+					}
+					if (!writeMethod.isAccessible()) {
+						writeMethod.setAccessible(true);
+					}
+					Class<?>[] parameterTypes = writeMethod.getParameterTypes();
+					Class targetType = parameterTypes[0];
+					if (targetType != value.getClass()) {
+						if (targetType.isEnum() && value instanceof String) {
+							try {
+								writeMethod.invoke(target, new Object[] { Enum.valueOf(targetType, (String) value) });
+								return;
+							} catch (Exception e) {
+							}
+						}
+						IConverter c = XWT.findConvertor(value.getClass(), targetType);
+						if (c != null) {
+							value = c.convert(value);
+						}
+					}
+					writeMethod.invoke(target, new Object[] { value });
+					return;
+				}
+			}
+			Field[] fields = type.getDeclaredFields();
+			for (Field field : fields) {
+				if (propertyName.equals(field.getName())) {
+					if (!field.isAccessible()) {
+						field.setAccessible(true);
+					}
+					Class fieldType = field.getType();
+					if (fieldType.isEnum() && value instanceof String) {
+						try {
+							field.set(target, Enum.valueOf(fieldType, (String) value));
+							return;
+						} catch (Exception e) {
+						}
+					}
+					IConverter c = XWT.findConvertor(value.getClass(), fieldType);
+					if (c != null) {
+						value = c.convert(value);
+					}
+					field.set(target, value);
+					return;
+				}
+			}
+			
+			IMetaclass metaclass = XWT.getMetaclass(type);
+			IProperty property = metaclass.findProperty(propertyName);
+			if (property != null) {
+				property.setValue(target, value);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	public static boolean isPropertyReadOnly(Class<?> type, String propertyName) {
+		if (type == null || propertyName == null || propertyName.indexOf(".") != -1) {
+			return true;
+		}
+		try {			
+			IMetaclass metaclass = XWT.getMetaclass(type);
+			IProperty property = metaclass.findProperty(propertyName);
+			if (property != null) {
+				return property.isReadOnly();
+			}
+		} catch (Exception e) {
+			LoggerManager.log(e);
+		}
+		return true;
+	}
+
+	
+	public static boolean isBeanSupport(Object target) {
+		Class<?> type = toType(target);
+		Method method = null;
+		try {
+			try {
+				method = type.getMethod("addPropertyChangeListener", new Class[] { String.class, PropertyChangeListener.class });
+			} catch (NoSuchMethodException e) {
+				method = type.getMethod("addPropertyChangeListener", new Class[] { PropertyChangeListener.class });
+			}
+		} catch (SecurityException e) {
+		} catch (NoSuchMethodException e) {
+		}
+		return method != null;
+	}
+
+	public static Class<?> toType(Object target) {
+		Class<?> type = null;
+		if (target instanceof IObservableValue) {
+			IObservableValue value = (IObservableValue) target;
+			Object valueType = value.getValueType();
+			if (valueType instanceof Class<?>) {
+				type = (Class<?>) valueType;
+			}
+		} else if (target instanceof Class<?>) {
+			type = (Class<?>)target;			
+		} else if (target instanceof IDataProvider) {
+			IDataProvider dataProvider = (IDataProvider) target;
+			type = (Class<?>) toType(dataProvider.getData(null));			
+		} else {
+			type = target.getClass();
+		}
+		if (type == null) {
+			return Object.class;
+		}
+		return type;
+	}
+
+	public static boolean isValueProperty(Class<?> object, String propertyName) {
+		if (propertyName == null) {
+			return false;
+		}
+
+		if (Viewer.class.isAssignableFrom(object)) {
+			return isViewerValueProperty(object, propertyName);
+		} else if (MenuItem.class.isAssignableFrom(object)) {
+			//
+			// https://bugs.eclipse.org/bugs/show_bug.cgi?id=280157
+			// testcase:
+			// org.eclipse.xwt.tests.databinding.bindcontrol.BindMenuItem
+			//
+			if (ENABLED.equalsIgnoreCase(propertyName)) {
+				return true;
+			} else if (SELECTION.equalsIgnoreCase(propertyName)) {
+				return true;
+			}
+		}
+		boolean isProperty = isControlValueProperty(object, propertyName);
+		if (isProperty) {
+			return true;
+		}
+		return false;
+	}
+
+	public static IObservable observeWidget(Object object,
+			String propertyName, UpdateSourceTrigger updateSourceTrigger, int observedKind) {
+		if (propertyName == null) {
+			return null;
+		}
+		try {
+			switch (observedKind) {
+			case ScopeManager.AUTO:
+				return observePropertyValue(object,
+						propertyName, updateSourceTrigger);
+			case ScopeManager.COLLECTION:
+			case ScopeManager.SET:
+			case ScopeManager.LIST:
+				break;				
+			case ScopeManager.VALUE:
+				return observePropertyValue(object,
+						propertyName, updateSourceTrigger);
+			default:
+				break;
+			}
+		} catch (XWTException e) {
+		}
+		return null;
+	}
+
+	protected static IObservable observePropertyValue(Object object,
+			String propertyName, UpdateSourceTrigger updateSourceTrigger) {
+		if (object instanceof Viewer) {
+			if ("input".equals(propertyName)) {
+				Viewer viewer = (Viewer) object;
+				SimpleValueProperty property = (SimpleValueProperty) ViewerProperties.input();
+				IObservableValue observableValue = new SimplePropertyObservableValue(XWT.getRealm(), viewer, property);
+				return new TypedViewerObservableValueDecorator(observableValue, viewer);
+			}
+			else if ("singleSelection".equals(propertyName)) {
+				Viewer viewer = (Viewer) object;
+				SimpleValueProperty property = (SimpleValueProperty) ViewerProperties.singleSelection();
+				IObservableValue observableValue = new SimplePropertyObservableValue(XWT.getRealm(), viewer, property);
+				return new TypedViewerObservableValueDecorator(observableValue, viewer);
+			}
+			return observePropertyValue((Viewer) object, propertyName, updateSourceTrigger);
+		} else if (object instanceof MenuItem) {
+			//
+			// TODO https://bugs.eclipse.org/bugs/show_bug.cgi?id=280157
+			// testcase:
+			// org.eclipse.xwt.tests.databinding.bindcontrol.BindMenuItem
+			//
+			if (ENABLED.equalsIgnoreCase(propertyName)) {
+				return new MenuItemEnabledObservableValue((MenuItem) object);
+			} else if (SELECTION.equalsIgnoreCase(propertyName)) {
+				return new MenuItemSelectionObservableValue((MenuItem) object);
+			}
+		} else if (object instanceof Control) {
+			return observePropertyValue((Control) object, propertyName, updateSourceTrigger);
+		}
+		return null;
+	}
+
+	protected static boolean isControlValueProperty(Class<?> type,
+			String propertyName) {
+		if (TEXT.equalsIgnoreCase(propertyName)) {
+			if (Text.class.isAssignableFrom(type)) {
+				return true;
+			}
+			// widget button is not supported at 3.4 version.
+			if (SWT.getVersion() == 3449 && Button.class.isAssignableFrom(type)) {
+				return false;
+			}
+		}
+		String getterName = "observe"
+				+ propertyName.substring(0, 1).toUpperCase()
+				+ propertyName.substring(1);
+		Method method;
+		try {
+			method = SWTObservables.class.getMethod(getterName,
+					CONTROL_ARGUMENT_TYPES);
+			if (method == null) {
+				for (Method element : SWTObservables.class.getMethods()) {
+					if (element.getParameterTypes().length != 0) {
+						continue;
+					}
+					if (element.getName().equalsIgnoreCase(getterName)) {
+						return true;
+					}
+				}
+			}
+		} catch (Exception e) {
+			throw new XWTException(e);
+		}
+		IMetaclass mateclass = XWT.getMetaclass(type);
+		IProperty property = mateclass.findProperty(propertyName);
+		if (property instanceof EventProperty) {
+			return true;
+		}
+		return false;
+	}
+
+	protected static IObservableValue observePropertyValue(Control control,
+			String propertyName, UpdateSourceTrigger updateSourceTrigger) {
+		if (TEXT.equalsIgnoreCase(propertyName)) {
+			if (control instanceof Text || control instanceof StyledText) {
+				int event = SWT.None;
+				switch (updateSourceTrigger) {
+				case Default:
+					event = SWT.FocusOut;
+					break;
+				case LostFocus:
+					event = SWT.FocusOut;
+					break;
+				case PropertyChanged:					
+					event = SWT.Modify;
+					break;
+				default:
+					throw new IllegalStateException("UpdateSourceTrigger of value " + updateSourceTrigger.name());
+				}
+				IObservableValue observableValue = SWTObservables.observeText(
+						control, event);
+				if (observableValue != null) {
+					return observableValue;
+				}
+			}
+			// widget button is not supported at 3.4 version.
+			if (SWT.getVersion() == 3449 && control instanceof Button) {
+				return null;
+			}
+			if (control instanceof DateTime) {
+				IObservableValue observableValue = SWTObservables.observeSelection(control);
+				if (observableValue != null) {
+					return observableValue;
+				}
+			}
+			
+			try {
+				IObservableValue observableValue = SWTObservables
+						.observeText(control);
+				if (observableValue != null) {
+					return observableValue;
+				}
+			} catch (IllegalArgumentException e) {
+				throw new XWTException(e);
+			}
+		} else {
+			if (propertyName == null) {
+				return null;
+			}
+			String getterName = "observe"
+					+ propertyName.substring(0, 1).toUpperCase()
+					+ propertyName.substring(1);
+			Method method;
+			try {
+				method = SWTObservables.class.getMethod(getterName,
+						CONTROL_ARGUMENT_TYPES);
+				if (method == null) {
+					for (Method element : SWTObservables.class.getMethods()) {
+						if (element.getParameterTypes().length != 0) {
+							continue;
+						}
+						if (element.getName().equalsIgnoreCase(getterName)) {
+							method = element;
+							break;
+						}
+					}
+				}
+				if (method != null) {
+					IObservableValue observableValue = (IObservableValue) method
+							.invoke(null, control);
+					if (observableValue != null) {
+						return observableValue;
+					}
+				}
+			} catch (Exception e) {
+				throw new XWTException(e);
+			}
+		}
+		IMetaclass mateclass = XWT.getMetaclass(control);
+		IProperty property = mateclass.findProperty(propertyName);
+		if (property instanceof EventProperty) {
+			return new EventPropertyObservableValue(control,
+					(EventProperty) property);
+		}
+		return null;
+	}
+
+	protected static boolean isViewerValueProperty(Class<?> viewerType,
+			String property) {
+		String getterName = "observe" + property.substring(0, 1).toUpperCase()
+				+ property.substring(1);
+		try {
+			Method method = ViewersObservables.class.getMethod(getterName,
+					VIEWER_ARGUMENT_TYPES);
+			if (method == null) {
+				for (Method element : ViewersObservables.class.getMethods()) {
+					if (element.getParameterTypes().length != 0) {
+						continue;
+					}
+					if (element.getName().equalsIgnoreCase(getterName)) {
+						return true;
+					}
+				}
+			}
+		} catch (Exception e) {
+			throw new XWTException(e);
+		}
+		return false;
+	}
+
+	protected static IObservable observePropertyValue(Viewer viewer,
+			String property, UpdateSourceTrigger updateSourceTrigger) {
+		String getterName = "observe" + property.substring(0, 1).toUpperCase()
+				+ property.substring(1);
+		Method method;
+		try {
+			method = ViewersObservables.class.getMethod(getterName,
+					VIEWER_ARGUMENT_TYPES);
+			if (method == null) {
+				for (Method element : ViewersObservables.class.getMethods()) {
+					if (element.getParameterTypes().length != 0) {
+						continue;
+					}
+					if (element.getName().equalsIgnoreCase(getterName)) {
+						method = element;
+						break;
+					}
+				}
+			}
+			if (method != null) {
+				IObservable observableValue = (IObservable) method
+						.invoke(null, viewer);
+				if (observableValue != null) {
+					return observableValue;
+				}
+			}
+		} catch (Exception e) {
+			throw new XWTException(e);
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/ListToArrayObservableValue.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/ListToArrayObservableValue.java
new file mode 100644
index 0000000..b52c59a
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/ListToArrayObservableValue.java
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.xwt.databinding;
+
+import java.lang.reflect.Array;
+
+import org.eclipse.core.databinding.observable.ChangeEvent;
+import org.eclipse.core.databinding.observable.Diffs;
+import org.eclipse.core.databinding.observable.DisposeEvent;
+import org.eclipse.core.databinding.observable.IChangeListener;
+import org.eclipse.core.databinding.observable.IDisposeListener;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+
+/**
+ * Manage the Array to List and then update from List to Array 
+ * 
+ * @author yyang
+ */
+public class ListToArrayObservableValue extends AbstractObservableValue {
+	protected IObservableList source;
+	protected IObservableValue target;
+	protected Object valueType;
+	protected Object cacheData;
+
+	public ListToArrayObservableValue(IObservableList source,
+			IObservableValue target) {
+		super(source.getRealm());
+		this.source = source;
+		this.target = target;
+
+		source.addChangeListener(new IChangeListener() {
+			public void handleChange(ChangeEvent event) {
+				ListToArrayObservableValue.this.handleChange();
+			}
+		});
+
+		source.addDisposeListener(new IDisposeListener() {
+			public void handleDispose(DisposeEvent event) {
+				ListToArrayObservableValue.this.dispose();
+			}
+		});
+	}
+
+	protected Object doGetValue() {
+		return source;
+	}
+
+	protected void doSetValue(Object value) {
+		super.doSetValue(value);
+	}
+
+	public Object getValueType() {
+		return source.getElementType();
+	}
+
+	@Override
+	public synchronized void dispose() {
+		super.dispose();
+		source.dispose();
+		target.dispose();
+		source = null;
+		target = null;
+	}
+
+	protected void handleChange() {
+		try {
+			Object elements = Array.newInstance((Class<?>) getValueType(),
+					source.size());
+			Object[] objects = source.toArray((Object[]) elements);
+			if (cacheData == null) {
+				cacheData = target.getValue();
+			}
+			target.setValue(objects);
+			fireValueChange(Diffs.createValueDiff(cacheData, objects));
+			cacheData = objects;
+		} catch (NegativeArraySizeException e) {
+			e.printStackTrace();
+		}
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/TypedViewerObservableValueDecorator.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/TypedViewerObservableValueDecorator.java
new file mode 100644
index 0000000..01e797b
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/TypedViewerObservableValueDecorator.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.databinding;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.internal.databinding.viewers.ViewerObservableValueDecorator;
+import org.eclipse.jface.viewers.Viewer;
+
+public class TypedViewerObservableValueDecorator extends
+		ViewerObservableValueDecorator {
+	protected Object elementType;
+
+	public TypedViewerObservableValueDecorator(IObservableValue decorated,
+			Viewer viewer) {
+		super(decorated, viewer);
+	}
+
+	public Object getElementType() {
+		return elementType;
+	}
+
+	public void setElementType(Object elementType) {
+		this.elementType = elementType;
+	}
+
+	@Override
+	public boolean equals(Object obj) {
+		if (!(obj instanceof TypedViewerObservableValueDecorator)) {
+			return false;
+		}
+		TypedViewerObservableValueDecorator decorator = (TypedViewerObservableValueDecorator) obj;
+		if (elementType != null) {
+			if (!elementType.equals(decorator.elementType)) {
+				return false;
+			}
+		} else if (decorator.elementType != null) {
+			return false;
+		}
+		return super.equals(obj);
+	}
+	
+	@Override
+	public int hashCode() {
+		if (elementType == null) {
+			return super.hashCode();			
+		}
+		return elementType.hashCode() * super.hashCode();
+	}
+	
+	@Override
+	public Object getValueType() {
+		Object elementType = getElementType();
+		if (elementType != null) {
+			return elementType;
+		}
+		return super.getValueType();
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/XWTObservableValue.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/XWTObservableValue.java
new file mode 100644
index 0000000..c5145c6
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/databinding/XWTObservableValue.java
@@ -0,0 +1,144 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.databinding;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.core.databinding.observable.Diffs;
+import org.eclipse.core.databinding.observable.IObserving;
+import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
+import org.eclipse.core.databinding.observable.value.ValueDiff;
+import org.eclipse.jface.util.Util;
+import org.eclipse.xwt.XWT;
+
+/**
+ * Notes: Binding type is java.lang.String.
+ * 
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public abstract class XWTObservableValue extends AbstractObservableValue implements IObserving {
+
+	private Object observed;
+	private Class<?> valueType;
+
+	private EventManager eventManager;
+	private EventListener eventListener;
+	private String path;
+
+	private boolean updating = false;
+
+	/**
+	 * 
+	 */
+	public XWTObservableValue(Class<?> valueType, Object observed, String path) {
+		super(XWT.getRealm());
+		this.valueType = valueType;
+		this.observed = observed;
+		this.path = path;
+		init();
+	}
+
+	/**
+	 * Add listener to observed.
+	 */
+	private void init() {
+		if (eventListener == null) {
+			eventListener = new EventListener() {
+				public void handleEvent(Event evt) {
+					if (!updating) {
+						final ValueDiff diff = Diffs.createValueDiff(evt.getOldValue(), evt.getNewValue());
+						getRealm().exec(new Runnable() {
+							public void run() {
+								fireValueChange(diff);
+							}
+						});
+					}
+				}
+			};
+		}
+		eventManager = EventManager.getEventManager(observed, getRealm());
+		eventManager.addEventListener(path, eventListener);
+	}
+
+	/**
+	 * @return the observed
+	 */
+	public Object getObserved() {
+		return observed;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.observable.value.AbstractObservableValue#doSetValue(java.lang.Object)
+	 */
+	protected void doSetValue(Object value) {
+		updating = true;
+		Object oldValue = doGetValue();
+		value = convert(oldValue == null ? null : oldValue.getClass(), value);
+		if (!Util.equals(oldValue, value)) {
+			doSetApprovedValue(value);
+			fireValueChange(Diffs.createValueDiff(oldValue, value));
+			eventManager.dispatchEvent(new Event(observed, oldValue, value, getPath()));
+		}
+		updating = false;
+	}
+
+	/**
+	 * @param value
+	 * @return
+	 */
+	protected Object convert(Class type, Object value) {
+		if (value != null) {
+			if (type != null && type.isEnum() && value instanceof String) {
+				return Enum.valueOf(type, (String) value);
+			}
+			IConverter c = XWT.findConvertor(value.getClass(), (Class<?>) getValueType());
+			if (c != null) {
+				return c.convert(value);
+			}
+		}
+		return value;
+	}
+
+	/**
+	 * @param value
+	 */
+	protected abstract void doSetApprovedValue(Object value);
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.observable.value.AbstractObservableValue#doGetValue()
+	 */
+	protected Object doGetValue() {
+		return observed;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.databinding.observable.value.IObservableValue#getValueType()
+	 */
+	public Class<?> getValueType() {
+		return valueType;
+	}
+
+	public String getPath() {
+		return path;
+	}
+
+	public void setPath(String path) {
+		this.path = path;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/dataproviders/AbstractDataProvider.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/dataproviders/AbstractDataProvider.java
new file mode 100644
index 0000000..93860a9
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/dataproviders/AbstractDataProvider.java
@@ -0,0 +1,173 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.dataproviders;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.databinding.observable.IObservable;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.set.IObservableSet;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.xwt.IDataProvider;
+import org.eclipse.xwt.core.IBinding;
+import org.eclipse.xwt.internal.core.ScopeManager;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public abstract class AbstractDataProvider implements IDataProvider {
+
+	private HashMap<String, Object> properties = new HashMap<>();
+
+	@Override
+	public Object getProperty(String property) {
+		return properties.get(property);
+	}
+
+	@Override
+	public void setProperty(String property, Object value) {
+		properties.put(property, value);
+	}
+
+	@Override
+	public boolean hasProperty(String property) {
+		return properties.containsKey(property);
+	}
+
+	@Override
+	public void removeProperty(String property) {
+		properties.remove(property);
+	}
+
+	@Override
+	public boolean isPropertyReadOnly(String path) {
+		return false;
+	}
+
+	@Override
+	public IObservable observe(Object data, String path, Object elementType,
+			int observeKind) {
+		Object type = null;
+		if (elementType == null) {
+			type = getModelService().toModelType(data);
+		} else {
+			type = elementType;
+		}
+		Object propertyType = getModelService().toModelPropertyType(type, path);
+		Class<?> propertyTypeClass = null;
+
+		if (propertyType instanceof Class<?>) {
+			propertyTypeClass = (Class<?>) propertyType;
+			if (IBinding.class.isAssignableFrom(propertyTypeClass)) {
+				return null;
+			}
+		}
+
+		switch (observeKind) {
+		case ScopeManager.AUTO:
+			if (propertyTypeClass != null
+					&& (propertyTypeClass.isArray() || List.class
+							.isAssignableFrom(propertyTypeClass))) {
+				if (data instanceof IObservableValue) {
+					IObservableValue observable = (IObservableValue) data;
+					return observeDetailList(observable, type, path,
+							propertyType);
+				}
+				return observeList(data, path);
+			} else if (propertyTypeClass != null
+					&& (Set.class.isAssignableFrom(propertyTypeClass))) {
+				if (data instanceof IObservableValue) {
+					IObservableValue observable = (IObservableValue) data;
+					return observeDetailSet(observable, type, path,
+							propertyType);
+				}
+				return observeSet(data, path);
+			} else {
+				if (data instanceof IObservableValue) {
+					IObservableValue observable = (IObservableValue) data;
+					return observeDetailValue(observable, type, path,
+							propertyType);
+				}
+				return observeValue(data, path);
+			}
+		case ScopeManager.VALUE:
+			if (data instanceof IObservableValue) {
+				IObservableValue observable = (IObservableValue) data;
+				return observeDetailValue(observable, type, path, propertyType);
+			}
+			return observeValue(data, path);
+		case ScopeManager.COLLECTION:
+			if (propertyTypeClass != null
+					&& Set.class.isAssignableFrom(propertyTypeClass)) {
+				if (data instanceof IObservableValue) {
+					IObservableValue observable = (IObservableValue) data;
+					return observeDetailSet(observable, type, path,
+							propertyType);
+				}
+				return observeSet(data, path);
+			}
+			if (data instanceof IObservableValue) {
+				IObservableValue observable = (IObservableValue) data;
+				return observeDetailList(observable, type, path, propertyType);
+			}
+			return observeList(data, path);
+		case ScopeManager.SET:
+			if (data instanceof IObservableValue) {
+				IObservableValue observable = (IObservableValue) data;
+				return observeDetailSet(observable, type, path, propertyType);
+			}
+			return observeSet(data, path);
+		case ScopeManager.LIST:
+			if (data instanceof IObservableValue) {
+				IObservableValue observable = (IObservableValue) data;
+				return observeDetailList(observable, type, path, propertyType);
+			}
+			return observeList(data, path);
+		}
+		return null;
+	}
+
+	protected abstract IObservableValue observeValue(Object bean,
+			String propertyName);
+
+	protected IObservableList observeList(Object bean, String propertyName) {
+		return null;
+	}
+
+	protected IObservableSet observeSet(Object bean, String propertyName) {
+		return null;
+	}
+
+	protected IObservableList observeDetailList(IObservableValue bean,
+			Object elementType, String propertyName, Object propertyType) {
+		return null;
+	}
+
+	protected IObservableSet observeDetailSet(IObservableValue bean,
+			Object elementType, String propertyName, Object propertyType) {
+		return null;
+	}
+
+	protected abstract IObservableValue observeDetailValue(
+			IObservableValue bean, Object elementType, String propertyName,
+			Object propertyType);
+
+	// TODO to remove
+	@Override
+	public IValueProperty createValueProperty(Object type, String fullPath) {
+		throw new UnsupportedOperationException("to remove this method");
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/dataproviders/IObjectDataProvider.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/dataproviders/IObjectDataProvider.java
new file mode 100644
index 0000000..7f4cd49
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/dataproviders/IObjectDataProvider.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.dataproviders;
+
+import java.util.List;
+
+import org.eclipse.xwt.IDataProvider;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public interface IObjectDataProvider extends IDataProvider {
+
+	void setObjectType(Class<?> objectType);
+
+	Class<?> getObjectType();
+
+	void setObjectInstance(Object objectInstance);
+
+	Object getObjectInstance();
+
+	void setMethodName(String methodName);
+
+	String getMethodName();
+
+	List<Object> getMethodParameters();
+
+	void setMethodParameters(List<Object> parameters);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/dataproviders/ObjectDataProvider.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/dataproviders/ObjectDataProvider.java
new file mode 100644
index 0000000..67552e2
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/dataproviders/ObjectDataProvider.java
@@ -0,0 +1,390 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.dataproviders;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.databinding.beans.BeanProperties;
+import org.eclipse.core.databinding.beans.BeansObservables;
+import org.eclipse.core.databinding.beans.PojoObservables;
+import org.eclipse.core.databinding.beans.PojoProperties;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.set.IObservableSet;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.core.IBinding;
+import org.eclipse.xwt.databinding.JFaceXWTDataBinding;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ObjectDataProvider extends AbstractDataProvider implements
+		IObjectDataProvider {
+	static DataModelService dataModelService = new DataModelService() {
+
+		@Override
+		public Object toModelType(Object object) {
+			return JFaceXWTDataBinding.toType(object);
+		}
+
+		@Override
+		public Object loadModelType(String className) {
+			return XWT.getLoadingContext().loadClass(className);
+		}
+
+		@Override
+		public Object toModelPropertyType(Object type, String propertyName) {
+			IMetaclass metaclass = XWT.getMetaclass(type);
+			IProperty property = metaclass.findProperty(propertyName);
+
+			if (property == null) {
+				throw new XWTException(" Property \"" + propertyName
+						+ "\" is not found in the class "
+						+ metaclass.getType().getName());
+			}
+			return property.getType();
+		}
+	};
+
+	private Object objectInstance;
+	private Class<?> objectType;
+
+	private String methodName;
+
+	private List<Object> methodParameters;
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.dataproviders.IObjectDataProvider#getMethodName()
+	 */
+	@Override
+	public String getMethodName() {
+		return methodName;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.dataproviders.IObjectDataProvider#getMethodParameters
+	 * ()
+	 */
+	@Override
+	public List<Object> getMethodParameters() {
+		return methodParameters;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.dataproviders.IObjectDataProvider#getObjectInstance()
+	 */
+	@Override
+	public Object getObjectInstance() {
+		if (objectInstance == null && objectType != null) {
+			try {
+				objectInstance = objectType.newInstance();
+			} catch (Exception e) {
+				throw new XWTException(e);
+			}
+		}
+		return objectInstance;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.dataproviders.IObjectDataProvider#getObjectType()
+	 */
+	@Override
+	public Class<?> getObjectType() {
+		if (objectType == null && objectInstance != null) {
+			objectType = objectInstance.getClass();
+		}
+		return objectType;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.dataproviders.IObjectDataProvider#setMethodName(java
+	 * .lang.String)
+	 */
+	@Override
+	public void setMethodName(String methodName) {
+		this.methodName = methodName;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.dataproviders.IObjectDataProvider#setMethodParameters
+	 * (java.util.List)
+	 */
+	@Override
+	public void setMethodParameters(List<Object> parameters) {
+		this.methodParameters = parameters;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.dataproviders.IObjectDataProvider#setObjectInstance
+	 * (java.lang.Object)
+	 */
+	@Override
+	public void setObjectInstance(Object objectImstance) {
+		this.objectInstance = objectImstance;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.dataproviders.IObjectDataProvider#setObjectType(java
+	 * .lang.Class)
+	 */
+	@Override
+	public void setObjectType(Class<?> objectType) {
+		this.objectType = objectType;
+	}
+
+	protected Object getTarget() {
+		Object target = getObjectInstance();
+		if (target == null) {
+			return null;
+		}
+		Class<?> targetType = getObjectType();
+		Method method = null;
+		if (methodName != null) {
+			List<Class<?>> paras = new ArrayList<>();
+			if (methodParameters != null) {
+				for (Object p : methodParameters) {
+					paras.add(p.getClass());
+				}
+			}
+			try {
+				if (paras.isEmpty()) {
+					method = targetType.getDeclaredMethod(methodName);
+					return method.invoke(target);
+				} else {
+					method = targetType.getDeclaredMethod(methodName, paras
+							.toArray(new Class<?>[paras.size()]));
+					return method.invoke(target, methodParameters
+							.toArray(new Object[methodParameters.size()]));
+				}
+			} catch (SecurityException e) {
+			} catch (IllegalArgumentException e) {
+			} catch (NoSuchMethodException e) {
+			} catch (IllegalAccessException e) {
+			} catch (InvocationTargetException e) {
+			}
+		}
+		return target;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.dataproviders.IDataProvider#getData(java.lang.String)
+	 */
+	@Override
+	public Object getData(String path) {
+		if (path == null) {
+			return getTarget();
+		}
+		return getData(getTarget(), path);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.dataproviders.IDataProvider#getData(java.lang.String)
+	 */
+	@Override
+	public Object getData(Object object, String path) {
+		if (object instanceof IObservableValue) {
+			object = ((IObservableValue) object).getValue();
+		}
+		if (path == null || path.trim().length() == 0 || path.equals(".")) {
+			return JFaceXWTDataBinding.getValue(object, null);
+		}
+		int index = path.indexOf(".");
+		while (index != -1 && object != null) {
+			object = JFaceXWTDataBinding.getValue(object, path.substring(0,
+					index));
+			path = path.substring(index + 1);
+			index = path.indexOf(".");
+		}
+		return JFaceXWTDataBinding.getValue(object, path);
+	}
+
+	@Override
+	public void setData(Object object, String path, Object value) {
+		if (object instanceof IObservableValue) {
+			object = ((IObservableValue) object).getValue();
+		}
+		int index = path.indexOf(".");
+		while (index != -1 && object != null) {
+			object = JFaceXWTDataBinding.getValue(object, path.substring(0,
+					index));
+			path = path.substring(index + 1);
+			index = path.indexOf(".");
+		}
+		JFaceXWTDataBinding.setValue(object, path, value);
+	}
+
+	@Override
+	public void setData(String path, Object value) {
+		setData(getTarget(), path, value);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.dataproviders.IDataProvider#getDataType(java.lang.
+	 * String)
+	 */
+	@Override
+	public Class<?> getDataType(String path) {
+		Object target = getTarget();
+		if (target == null) {
+			return null;
+		}
+		Class<?> type = JFaceXWTDataBinding.toType(target);
+		if (path == null) {
+			return type;
+		}
+		return JFaceXWTDataBinding.getValueType(type, path);
+	}
+
+	/**
+	 * check if the property is read only
+	 * 
+	 * @param path
+	 * @return
+	 */
+	@Override
+	public boolean isPropertyReadOnly(String path) {
+		Object target = getTarget();
+		if (target == null || path == null) {
+			return true;
+		}
+		if (target instanceof IBinding) {
+			target = ((IBinding) target).getValue(null);
+		}
+		Class<?> type = JFaceXWTDataBinding.toType(target);
+		int index = path.indexOf(".");
+		while (index != -1 && target != null) {
+			type = JFaceXWTDataBinding.getValueType(type, path.substring(0,
+					index));
+			path = path.substring(index + 1);
+			index = path.indexOf(".");
+		}
+		return JFaceXWTDataBinding.isPropertyReadOnly(type, path);
+	}
+
+	@Override
+	protected IObservableValue observeValue(Object bean, String propertyName) {
+		if (JFaceXWTDataBinding.isBeanSupport(bean)) {
+			return BeansObservables.observeValue(XWT.getRealm(), bean,
+					propertyName);
+		}
+		return PojoObservables.observeValue(XWT.getRealm(), bean, propertyName);
+	}
+
+	@Override
+	protected IObservableList observeList(Object bean, String propertyName) {
+		if (JFaceXWTDataBinding.isBeanSupport(bean)) {
+			return BeansObservables.observeList(XWT.getRealm(), bean,
+					propertyName);
+		}
+		return PojoObservables.observeList(XWT.getRealm(), bean, propertyName);
+	}
+
+	@Override
+	protected IObservableSet observeSet(Object bean, String propertyName) {
+		if (JFaceXWTDataBinding.isBeanSupport(bean)) {
+			return BeansObservables.observeSet(XWT.getRealm(), bean,
+					propertyName);
+		}
+		return PojoObservables.observeSet(XWT.getRealm(), bean, propertyName);
+	}
+
+	@Override
+	protected IObservableList observeDetailList(IObservableValue bean,
+			Object elementType, String propertyName, Object propertyType) {
+		if (JFaceXWTDataBinding.isBeanSupport(bean)) {
+			return BeansObservables.observeDetailList(bean, propertyName,
+					(Class<?>) propertyType);
+		}
+		return PojoObservables.observeDetailList(bean, propertyName,
+				(Class<?>) propertyType);
+	}
+
+	@Override
+	protected IObservableSet observeDetailSet(IObservableValue bean,
+			Object elementType, String propertyName, Object propertyType) {
+		if (JFaceXWTDataBinding.isBeanSupport(bean)) {
+			return BeansObservables.observeDetailSet(bean, propertyName,
+					(Class<?>) propertyType);
+		}
+		return PojoObservables.observeDetailSet(bean, propertyName,
+				(Class<?>) propertyType);
+	}
+
+	@Override
+	protected IObservableValue observeDetailValue(IObservableValue master,
+			Object elementType, String propertyName, Object propertyType) {
+		Class<?> beanClass = (Class<?>) elementType;
+		if (beanClass == null && master.getValueType() instanceof Class<?>) {
+			beanClass = (Class<?>) master.getValueType();
+		}
+		if (JFaceXWTDataBinding.isBeanSupport(beanClass)) {
+			return BeanProperties.value(beanClass, propertyName,
+					(Class<?>) propertyType).observeDetail(master);
+		}
+		return PojoProperties.value(beanClass, propertyName,
+				(Class<?>) propertyType).observeDetail(master);
+	}
+
+	@Override
+	public IValueProperty createValueProperty(Object type, String propertyName) {
+		if (JFaceXWTDataBinding.isBeanSupport(type)) {
+			return BeanProperties.value(JFaceXWTDataBinding.toType(type),
+					propertyName);
+		}
+		return PojoProperties.value(JFaceXWTDataBinding.toType(type),
+				propertyName);
+	}
+
+	@Override
+	public DataModelService getModelService() {
+		return dataModelService;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/graphics/Color.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/graphics/Color.java
new file mode 100644
index 0000000..1da18f0
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/graphics/Color.java
@@ -0,0 +1,80 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.graphics;
+
+/**
+ * Color consists of four elements: alpha, blue, green and red. 
+ * 
+ * @author yyang
+ */
+public class Color {
+
+	private int alaha = 0xFF;
+	private int blue;
+	private int green;
+	private int red;
+	private org.eclipse.swt.graphics.Color swtColor;
+
+	public Color() {
+	}
+	
+	public Color(org.eclipse.swt.graphics.Color swtColor) {
+		setValue(swtColor);
+	}
+	
+	public int getBlue() {
+		return blue;
+	}
+
+	public void setBlue(int blue) {
+		this.blue = blue;
+	}
+
+	public int getGreen() {
+		return green;
+	}
+
+	public void setGreen(int green) {
+		this.green = green;
+	}
+
+	public int getRed() {
+		return red;
+	}
+
+	public void setRed(int red) {
+		this.red = red;
+	}
+
+	public int getAlpha() {
+		return alaha;
+	}
+
+	public void setAlaha(int alaha) {
+		this.alaha = alaha;
+	}
+	
+	public org.eclipse.swt.graphics.Color toSWTColor() {
+		if (swtColor == null) {
+			swtColor = new org.eclipse.swt.graphics.Color(null, red, green, blue);
+		}
+		return swtColor;
+	}
+	
+	public void setValue(org.eclipse.swt.graphics.Color swtColor) {
+		this.swtColor = swtColor;
+		this.blue = swtColor.getBlue();
+		this.red = swtColor.getRed();
+		this.green = swtColor.getGreen();
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/graphics/Point.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/graphics/Point.java
new file mode 100644
index 0000000..ceab1d3
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/graphics/Point.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.graphics;
+
+/**
+ * Color consists of four elements: alpha, blue, green and red.
+ * 
+ * @author yyang
+ */
+public class Point {
+	public static final Point[] EMPTY_ARRAY = new Point[]{}; 
+	private double x;
+	private double y;	
+
+	public Point() {
+	}
+
+	public Point(double x, double y) {
+		setX(x);
+		setY(y);
+	}
+
+	public double getX() {
+		return x;
+	}
+
+	public void setX(double x) {
+		this.x = x;
+	}
+
+	public double getY() {
+		return y;
+	}
+
+	public void setY(double y) {
+		this.y = y;
+	}
+	
+	@Override
+	public boolean equals(Object obj) {
+		if (!(obj instanceof Point)) {
+			return false;
+		}
+		Point point = (Point) obj;
+		return x == point.getX() && y == point.getY();
+	}
+	
+	@Override
+	public String toString() {
+		return "(" + x + ", " + y + ")";
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/graphics/Rect.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/graphics/Rect.java
new file mode 100644
index 0000000..779080e
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/graphics/Rect.java
@@ -0,0 +1,126 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.graphics;
+
+import org.eclipse.swt.graphics.Rectangle;
+
+/**
+ * Color consists of four elements: alpha, blue, green and red.
+ * 
+ * @author yyang
+ */
+public class Rect {
+	private double x;
+	private double y;
+	private double width;
+	private double height;
+
+	public Rect() {
+	}
+
+	public Rect(double x, double y, double width, double height) {
+		setX(x);
+		setY(y);
+		setWidth(width);
+		setHeight(height);
+	}
+
+	public Rect(Rectangle rectangle) {
+		setX(rectangle.x);
+		setY(rectangle.y);
+		setWidth(rectangle.width);
+		setHeight(rectangle.height);
+	}
+
+	public double getWidth() {
+		return width;
+	}
+
+	public void setWidth(double width) {
+		this.width = width;
+	}
+
+	public double getHeight() {
+		return height;
+	}
+
+	public void setHeight(double height) {
+		this.height = height;
+	}
+
+	public double getX() {
+		return x;
+	}
+
+	public void setX(double x) {
+		this.x = x;
+	}
+
+	public double getY() {
+		return y;
+	}
+
+	public void setY(double y) {
+		this.y = y;
+	}
+
+	@Override
+	public boolean equals(Object obj) {
+		if (!(obj instanceof Rect)) {
+			return false;
+		}
+		Rect rect = (Rect) obj;
+		return x == rect.getX() && y == rect.getY() && width == rect.getWidth()
+				&& height == rect.getHeight();
+	}
+
+	@Override
+	public String toString() {
+		return "(" + x + ", " + y + ", " + width + ", " + height + ")";
+	}
+
+	/**
+	 * Returns <code>true</code> if the point specified by the arguments is
+	 * inside the area specified by the receiver, and <code>false</code>
+	 * otherwise.
+	 * 
+	 * @param x
+	 *            the x coordinate of the point to test for containment
+	 * @param y
+	 *            the y coordinate of the point to test for containment
+	 * @return <code>true</code> if the rectangle contains the point and
+	 *         <code>false</code> otherwise
+	 */
+	public boolean contains(double x, double y) {
+		return (x >= this.x) && (y >= this.y) && x < (this.x + width)
+				&& y < (this.y + height);
+	}
+
+	/**
+	 * Returns <code>true</code> if the given point is inside the area specified
+	 * by the receiver, and <code>false</code> otherwise.
+	 * 
+	 * @param pt
+	 *            the point to test for containment
+	 * @return <code>true</code> if the rectangle contains the point and
+	 *         <code>false</code> otherwise
+	 * 
+	 * @exception IllegalArgumentException
+	 *                <ul>
+	 *                <li>ERROR_NULL_ARGUMENT - if the argument is null</li>
+	 *                </ul>
+	 */
+	public boolean contains(Point pt) {
+		return contains(pt.getX(), pt.getY());
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/input/CanExecuteChangedListener.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/input/CanExecuteChangedListener.java
new file mode 100644
index 0000000..369a0f1
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/input/CanExecuteChangedListener.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.input;
+
+import java.beans.PropertyChangeListener;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public interface CanExecuteChangedListener extends PropertyChangeListener {
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/input/CommandBinding.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/input/CommandBinding.java
new file mode 100644
index 0000000..59df420
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/input/CommandBinding.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.input;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeSupport;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class CommandBinding {
+	protected PropertyChangeSupport canExecuteSupport = new PropertyChangeSupport(this);
+	protected PropertyChangeSupport executeSupport = new PropertyChangeSupport(this);
+
+	protected ICommand command;
+
+	public ICommand getCommand() {
+		return command;
+	}
+
+	public CommandBinding() {
+	}
+
+	public CommandBinding(ICommand command) {
+		this.command = command;
+	}
+
+	public void setCommand(ICommand command) {
+		this.command = command;
+	}
+
+	public void addCanExecuteChangedListener(CanExecuteChangedListener listener) {
+		canExecuteSupport.addPropertyChangeListener(listener);
+	}
+
+	public void removeCanExecuteChangedListener(CanExecuteChangedListener listener) {
+		canExecuteSupport.removePropertyChangeListener(listener);
+	}
+
+	public void fireCanExecuteChangedListener(PropertyChangeEvent args) {
+		canExecuteSupport.firePropertyChange(args);
+	}
+
+	public void addExecuteChangedListener(CanExecuteChangedListener listener) {
+		canExecuteSupport.addPropertyChangeListener(listener);
+	}
+
+	public void removeExecuteChangedListener(CanExecuteChangedListener listener) {
+		canExecuteSupport.removePropertyChangeListener(listener);
+	}
+
+	public void fireExecuteChangedListener(PropertyChangeEvent args) {
+		canExecuteSupport.firePropertyChange(args);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/input/ICommand.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/input/ICommand.java
new file mode 100644
index 0000000..a73a52a
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/input/ICommand.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.input;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public interface ICommand {
+	boolean canExecute();
+
+	void execute(Object parameter);
+
+	void addCanExecuteChangedListener(CanExecuteChangedListener listener);
+
+	void removeCanExecuteChangedListener(CanExecuteChangedListener listener);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/input/InputBinding.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/input/InputBinding.java
new file mode 100644
index 0000000..30c29c3
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/input/InputBinding.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.input;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class InputBinding {
+	protected KeyGesture gesture;
+	protected Object commandTarget;
+	protected Object commandParameter;
+	protected ICommand command;
+
+	public Object getCommandTarget() {
+		return commandTarget;
+	}
+
+	public void setCommandTarget(Object commandTarget) {
+		this.commandTarget = commandTarget;
+	}
+
+	public Object getCommandParameter() {
+		return commandParameter;
+	}
+
+	public void setCommandParameter(Object commandParameter) {
+		this.commandParameter = commandParameter;
+	}
+
+	public ICommand getCommand() {
+		return command;
+	}
+
+	public void setCommand(ICommand command) {
+		this.command = command;
+	}
+
+	public KeyGesture getGesture() {
+		return gesture;
+	}
+
+	public void setGesture(KeyGesture gesture) {
+		this.gesture = gesture;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/input/KeyBinding.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/input/KeyBinding.java
new file mode 100644
index 0000000..68c6f35
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/input/KeyBinding.java
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.input;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class KeyBinding extends InputBinding {
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/input/KeyGesture.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/input/KeyGesture.java
new file mode 100644
index 0000000..b436205
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/input/KeyGesture.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.input;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class KeyGesture {
+	protected String key;
+	protected String displayString;
+	protected ModifierKeys modifiers;
+
+	public String getKey() {
+		return key;
+	}
+
+	public void setKey(String key) {
+		this.key = key;
+	}
+
+	public String getDisplayString() {
+		return displayString;
+	}
+
+	public void setDisplayString(String displayString) {
+		this.displayString = displayString;
+	}
+
+	public ModifierKeys getModifiers() {
+		return modifiers;
+	}
+
+	public void setModifiers(ModifierKeys modifiers) {
+		this.modifiers = modifiers;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/input/ModifierKeys.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/input/ModifierKeys.java
new file mode 100644
index 0000000..ebd3d62
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/input/ModifierKeys.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.input;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public enum ModifierKeys {
+	None, Alt, Control, Shift, Windows;
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/input/MouseAction.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/input/MouseAction.java
new file mode 100644
index 0000000..8bd1fed
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/input/MouseAction.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.input;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public enum MouseAction {
+	None, LeftClick, RightClick, MiddleClick, WheelClick, LeftDoubleClick, RightDoubleClick, MiddleDoubleClick;
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/input/RoutedCommand.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/input/RoutedCommand.java
new file mode 100644
index 0000000..f263ca3
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/input/RoutedCommand.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.input;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeSupport;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class RoutedCommand implements ICommand {
+	protected PropertyChangeSupport canExecuteSupport = new PropertyChangeSupport(this);
+
+	public boolean canExecute() {
+		return true;
+	}
+
+	public void execute(Object parameter) {
+	}
+
+	public void addCanExecuteChangedListener(CanExecuteChangedListener listener) {
+		canExecuteSupport.addPropertyChangeListener(listener);
+	}
+
+	public void removeCanExecuteChangedListener(CanExecuteChangedListener listener) {
+		canExecuteSupport.removePropertyChangeListener(listener);
+	}
+
+	public void fireCanExecuteChangedListener(PropertyChangeEvent args) {
+		canExecuteSupport.firePropertyChange(args);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/Activator.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/Activator.java
new file mode 100644
index 0000000..faab48f
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/Activator.java
@@ -0,0 +1,32 @@
+package org.eclipse.xwt.internal;
+
+import org.eclipse.xwt.IXWTInitializer;
+import org.eclipse.xwt.IXWTLoader;
+import org.eclipse.xwt.XWT;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class Activator implements BundleActivator, IXWTInitializer {
+
+	private boolean initialized;
+
+	public void start(BundleContext context) throws Exception {
+		initialized = false;
+		XWT.addInitializer(this);
+		XWT.runOnUIThread(new Runnable() {
+			public void run() {
+			}
+		});
+	}
+
+	public void initialize(IXWTLoader loader) {
+		initialized = true;		
+	}
+
+	public void stop(BundleContext context) throws Exception {
+	}
+	
+	public boolean isInitialized() {
+		return initialized;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/Binding.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/Binding.java
new file mode 100644
index 0000000..35ece0e
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/Binding.java
@@ -0,0 +1,316 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.internal.core;
+
+import org.eclipse.core.databinding.observable.IObservable;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.IDataProvider;
+import org.eclipse.xwt.IValidationRule;
+import org.eclipse.xwt.IValueConverter;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.core.IBinding;
+import org.eclipse.xwt.core.IDynamicBinding;
+import org.eclipse.xwt.databinding.ControlDataBinding;
+import org.eclipse.xwt.databinding.DataBinding;
+import org.eclipse.xwt.internal.utils.UserData;
+
+/**
+ * Generic Binding definition
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class Binding extends DynamicBinding {
+	public static Binding[] EMPTY_ARRAY = new Binding[0];
+
+	private String path;
+
+	private Object source;
+
+	private String elementName;
+	private IValueConverter converter;
+
+	private IValidationRule[] validationRules = IValidationRule.EMPTY_ARRAY;
+
+	private IObservable observableSource;
+
+	public Binding() {
+		super();
+	}
+
+	/**
+	 * <p>
+	 * Default
+	 * </p>
+	 * 
+	 */
+	private UpdateSourceTrigger updateSourceTrigger = UpdateSourceTrigger.Default;
+
+	private BindingExpressionPath pathSegments;
+
+	public BindingExpressionPath getPathPropertySegments() {
+		if (pathSegments == null) {
+			pathSegments = new BindingExpressionPath(getPath());
+		}
+		return pathSegments;
+	}
+
+	public UpdateSourceTrigger getUpdateSourceTrigger() {
+		return updateSourceTrigger;
+	}
+
+	public void setUpdateSourceTrigger(UpdateSourceTrigger updateSourceTrigger) {
+		this.updateSourceTrigger = updateSourceTrigger;
+	}
+
+	public IValueConverter getConverter() {
+		return converter;
+	}
+
+	public void setConverter(IValueConverter converter) {
+		this.converter = converter;
+	}
+
+	public String getPath() {
+		return path;
+	}
+
+	public Object getSource() {
+		return source;
+	}
+
+	public void setSource(Object source) {
+		this.source = source;
+		if (this.source instanceof IObservable) {
+			this.observableSource = (IObservable) this.source;
+		}
+	}
+
+	public void setPath(String path) {
+		this.path = path;
+	}
+
+	public String getElementName() {
+		return elementName;
+	}
+
+	public void setElementName(String elementName) {
+		this.elementName = elementName;
+	}
+
+	protected Object getSourceObject() {
+		if (source != null) {
+			return source;
+		} else if (elementName != null) {
+			return XWT.findElementByName(getControl(), elementName);
+		}
+		return null;
+	}
+
+	protected boolean isSelfBinding(Object data) {
+		if (data != this) {
+			return false;
+		}
+		Binding binding = (Binding) data;
+		return BindingExpressionPath.isEmptyPath(binding.getPath());
+	}
+
+	public Object createBoundSource() {
+		Object control = getControl();
+		Object source = getSourceObject();
+		if (source == null) {
+			source = XWT.getDataContext(control, IDynamicBinding.class);
+			Object localDataContext = UserData.getLocalDataContext(control);
+			if (localDataContext == this) {
+				return source;
+			}
+		}
+		if (source instanceof IDynamicBinding) {
+			Object value = ((IDynamicBinding) source).createBoundSource();
+			if (value != null && path != null) {
+				Widget widget = UserData.getWidget(value);
+				if (widget == null) {
+					widget = UserData.getWidget(control);
+				}
+				return ScopeManager.observeValue(widget, value,
+						getPathPropertySegments(), getUpdateSourceTrigger());
+			}
+		}
+		if (source != null && !BindingExpressionPath.isEmptyPath(path)) {
+			Widget widget = UserData.getWidget(source);
+			if (widget == null) {
+				widget = UserData.getWidget(control);
+			}
+			return ScopeManager.observeValue(widget, source,
+					getPathPropertySegments(), getUpdateSourceTrigger());
+		}
+		return source;
+	}
+
+	public boolean isSourceControl() {
+		Object source = getSourceObject();
+		if (source == null) {
+			Object dataContextHost = getDataContextHost();
+			if (dataContextHost != null) {
+				source = UserData.getLocalDataContext(dataContextHost);
+			}
+		}
+
+		if (source instanceof IDynamicBinding) {
+			return ((IDynamicBinding) source).isSourceControl();
+		}
+		if (source instanceof IBinding) {
+			source = ((IBinding) source).getValue(null);
+		}
+
+		if (path == null) {
+			return false;
+		}
+
+		int index = BindingExpressionPath.lastIndexOf(path);
+		if (index == -1) {
+			return (source instanceof Control || source instanceof Viewer);
+		}
+
+		if (source instanceof IDataProvider) {
+			return false;
+		}
+		String parentPath = path.substring(0, index);
+		IObservable observable = ScopeManager.observeValue(getControl(),
+				source, parentPath, getUpdateSourceTrigger());
+		if (observable != null) {
+			IObservableValue observableValue = (IObservableValue) observable;
+			Object type = observableValue.getValueType();
+			if (type != null) {
+				return UserData.isUIElementType(type);
+			}
+		}
+		return false;
+	}
+
+	public Object getValue(Class<?> targetType) {
+		Object dataContext = getSourceObject();
+		if (dataContext == null) {
+			Object dataContextHost = getDataContextHost();
+			if (dataContextHost != null) {
+				dataContext = UserData.getLocalDataContext(dataContextHost);
+				if (dataContext instanceof IDynamicBinding) {
+					IDynamicBinding dynamicBinding = (IDynamicBinding) dataContext;
+					Object boundSource = dynamicBinding.createBoundSource();
+					if (boundSource != null) {
+						dataContext = boundSource;
+					}
+				}
+			}
+		}
+
+		// direct binding
+		if (dataContext instanceof IBinding) {
+			dataContext = ((IBinding) dataContext).getValue(null);
+		}
+
+		IDataProvider dataProvider = getDataProvider(dataContext);
+
+		try {
+			if (isSourceControl()) {
+				ControlDataBinding controlDataBinding = new ControlDataBinding(
+						dataContext, this, dataProvider);
+				return controlDataBinding.getValue(targetType);
+			}
+		} catch (XWTException e) {
+			// in case the property cannot be bound. return value
+		}
+
+		DataBinding dataBinding = null;
+		if (dataProvider != null
+				&& (path != null || dataContext instanceof IObservable)) {
+			dataBinding = new DataBinding(this, dataProvider);
+		}
+		if (dataBinding != null) {
+			return dataBinding.getValue(targetType);
+		}
+		return convertedValue(dataContext);
+	}
+
+	private Object convertedValue(Object value) {
+		IValueConverter converter = getConverter();
+		if (converter != null) {
+			value = converter.convert(value);
+		}
+		return value;
+	}
+
+	public boolean isSourcePropertyReadOnly() {
+		IDataProvider dataProvider = getDataProvider();
+		try {
+			return ScopeManager.isPropertyReadOnly(dataProvider,
+					getPathPropertySegments());
+		} catch (XWTException e) {
+		}
+		return false;
+	}
+
+	public IObservable getObservableSource() {
+		return observableSource;
+	}
+
+	public void setObservableSource(IObservable observableSource) {
+		this.observableSource = observableSource;
+	}
+
+	/**
+	 * Returns the validationRules for the binding
+	 * 
+	 * @return the array of validationRules
+	 */
+	public IValidationRule[] getValidationRules() {
+		return this.validationRules;
+	}
+
+	/**
+	 * Sets a single validationRule
+	 * 
+	 * @param validator
+	 */
+	public IValidationRule getValidationRule() {
+		if (this.validationRules != null && this.validationRules.length > 0) {
+			return this.validationRules[0];
+		}
+		return null;
+	}
+
+	/**
+	 * Set the validationRules for the binding
+	 * 
+	 * @param validators
+	 */
+	public void setValidationRules(IValidationRule[] validationRules) {
+		this.validationRules = validationRules;
+	}
+
+	/**
+	 * Sets a single validationRule
+	 * 
+	 * @param validator
+	 */
+	public void setValidationRule(IValidationRule validationRule) {
+		this.validationRules = new IValidationRule[] { validationRule };
+	}
+
+	public void reset() {
+		observableSource = null;
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/BindingExpressionPath.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/BindingExpressionPath.java
new file mode 100644
index 0000000..29abe21
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/BindingExpressionPath.java
@@ -0,0 +1,198 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.internal.core;
+
+import java.util.ArrayList;
+import java.util.Stack;
+
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.metadata.ModelUtils;
+
+public class BindingExpressionPath {
+	protected String fullPath;
+	protected String stripedPath;
+
+	protected String[] segments;
+	
+	public BindingExpressionPath(String value) {
+		if (value == null) {
+			return;
+		}
+		this.fullPath = value;
+		this.stripedPath = null;
+		
+		int level = 0;
+		Stack<Character> separators = new Stack<Character>();
+		ArrayList<String> collector = new ArrayList<String>();
+		int start = 0;
+		int stripStart = 0;
+		int stripEnd = 0;
+		char[] array = value.toCharArray();
+		for (int i = 0; i < array.length; i++) {
+			switch (array[i]) {
+			case '}':
+				{
+					Character character = separators.pop();
+					if (character.charValue() != '{') {
+						throw new XWTException("Syntax error is binding expression " + value + " at " + i);
+					}
+				}
+				level --;
+				break;
+			case ']':
+				{
+					Character character = separators.pop();
+					if (character.charValue() != '[') {
+						throw new XWTException("Syntax error is binding expression " + value + " at " + i);
+					}
+				}
+				level --;
+				break;
+			case ')':
+				{
+					Character character = separators.pop();
+					if (character.charValue() != '(') {
+						throw new XWTException("Syntax error is binding expression " + value + " at " + i);
+					}
+				}
+				level --;
+				if (level == 0) {
+					stripEnd = i - 1;
+				}
+				break;
+			case '(':
+				if (level == 0) {
+					stripStart = i + 1;
+				}
+				separators.push(array[i]);
+				level ++;
+				break;
+			case '{':
+			case '[':
+				separators.push(array[i]);
+				level ++;
+				break;
+			case '.':
+				if (level == 0) {
+					String element = value.substring(start, i);
+					element = ModelUtils.normalizePropertyName(element);
+					collector.add(element);
+					updateStripped(value, stripStart, stripEnd, element);
+					start = i + 1;
+				}
+				break;
+			}
+		}
+		if (level == 0) {
+			String element = value.substring(start, array.length);
+			element = ModelUtils.normalizePropertyName(element);
+			collector.add(element);
+
+			updateStripped(value, stripStart, stripEnd, element);
+		}
+		
+		segments = collector.toArray(new String[collector.size()]);
+	}
+
+	private void updateStripped(String value, int stripStart, int stripEnd, String element) {
+		if (stripStart != 0) {
+			element = value.substring(stripStart, stripEnd + 1);
+			int index = element.lastIndexOf('.');
+			if (index != -1) {
+				element = element.substring(index + 1);
+			}
+			element = ModelUtils.normalizePropertyName(element);			
+		}
+		
+		if (this.stripedPath == null) {
+			this.stripedPath = element;
+		}
+		else {
+			this.stripedPath += "." + element;						
+		}
+	}
+	
+	public String getFullPath() {
+		return fullPath;
+	}
+
+	public String getStripedPath() {
+		return stripedPath;
+	}
+
+	public String[] getSegments() {
+		return segments;
+	}
+
+	public boolean isEmptyPath() {
+		return isEmptyPath(getFullPath());
+	}
+	
+	public static boolean isEmptyPath(String value) {
+		return value == null || value.trim().length() == 0 || ".".equals(value.trim());
+	}
+	
+	public static int lastIndexOf(String value) {
+		int level = 0;
+		Stack<Character> separators = new Stack<Character>();
+		char[] array = value.toCharArray();
+		for (int i = array.length - 1; i >= 0 ; i--) {
+			switch (array[i]) {
+			case '{':
+				{
+					Character character = separators.pop();
+					if (character.charValue() != '}') {
+						throw new XWTException("Syntax error is binding expression " + value + " at " + i);
+					}
+				}
+				level --;
+				break;
+			case '[':
+				{
+					Character character = separators.pop();
+					if (character.charValue() != '}') {
+						throw new XWTException("Syntax error is binding expression " + value + " at " + i);
+					}
+				}
+				level --;
+				break;
+			case '(':
+				{
+					Character character = separators.pop();
+					if (character.charValue() != ')') {
+						throw new XWTException("Syntax error is binding expression " + value + " at " + i);
+					}
+				}
+				level --;
+				break;
+			case '}':
+			case ']':
+			case ')':
+				separators.push(array[i]);
+				level ++;
+				break;
+			case '.':
+				if (level == 0) {
+					return i;
+				}
+				break;
+			}
+			
+			if (array[i] == '.') {
+			}
+		}
+		return -1;
+	}
+
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/BindingGate.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/BindingGate.java
new file mode 100644
index 0000000..1709f50
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/BindingGate.java
@@ -0,0 +1,467 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.internal.core;
+
+import org.eclipse.core.databinding.Binding;
+import org.eclipse.core.databinding.UpdateListStrategy;
+import org.eclipse.core.databinding.UpdateSetStrategy;
+import org.eclipse.core.databinding.UpdateValueStrategy;
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.core.databinding.observable.IObservable;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.set.IObservableSet;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.xwt.IDataBindingInfo;
+import org.eclipse.xwt.IDataProvider;
+import org.eclipse.xwt.IValidationRule;
+import org.eclipse.xwt.IValueConverter;
+import org.eclipse.xwt.InverseValueConverter;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.databinding.IBindingContext;
+import org.eclipse.xwt.internal.utils.ObjectUtil;
+import org.eclipse.xwt.validation.InverseValidationRule;
+
+/**
+ * @author jliu <jin.liu@soyatec.com>
+ */
+public class BindingGate {
+	public static final UpdateSetStrategy POLICY_UPDATE = new UpdateSetStrategy(
+			UpdateSetStrategy.POLICY_UPDATE);
+	private final IBindingContext dataBindingContext;
+
+	public BindingGate(IBindingContext dataBindingContext) {
+		super();
+		this.dataBindingContext = dataBindingContext;
+	}
+
+	public Binding bind(IObservableValue source, IObservableValue target) {
+		return bind(source, target, null);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.databinding.IBindingContext#bind(org.eclipse.core.
+	 * databinding.observable.value.IObservableValue,
+	 * org.eclipse.core.databinding.observable.value.IObservableValue)
+	 */
+	public Binding bind(IObservable source, IObservable target,
+			IDataBindingInfo dataBinding) {
+		if (source instanceof IObservableValue
+				&& target instanceof IObservableValue) {
+			return bindValue((IObservableValue) source,
+					(IObservableValue) target, dataBinding);
+		} else if (source instanceof IObservableSet
+				&& target instanceof IObservableSet) {
+			IValueConverter converter = null;
+			int sourceToTargetPolicy = UpdateSetStrategy.POLICY_UPDATE;
+			int targetToSourcePolicy = UpdateSetStrategy.POLICY_UPDATE;
+			// Set policy to UpdateValueStrategy.
+			if (dataBinding != null) {
+				switch (dataBinding.getMode()) {
+				case OneWay:
+					targetToSourcePolicy = UpdateSetStrategy.POLICY_NEVER;
+					break;
+				case OneTime:
+					sourceToTargetPolicy = UpdateSetStrategy.POLICY_NEVER;
+					targetToSourcePolicy = UpdateSetStrategy.POLICY_NEVER;
+					break;
+				default:
+					break;
+				}
+				converter = dataBinding.getConverter();
+			}
+			UpdateSetStrategy sourceToTarget = new UpdateSetStrategy(
+					sourceToTargetPolicy);
+			UpdateSetStrategy targetToSource = new UpdateSetStrategy(
+					targetToSourcePolicy);
+			return bindSet((IObservableSet) target, (IObservableSet) source,
+					targetToSource, sourceToTarget, converter);
+		} else if (source instanceof IObservableList
+				&& target instanceof IObservableList) {
+			IValueConverter converter = null;
+			int sourceToTargetPolicy = UpdateListStrategy.POLICY_UPDATE;
+			int targetToSourcePolicy = UpdateListStrategy.POLICY_UPDATE;
+			// Set policy to UpdateValueStrategy.
+			if (dataBinding != null) {
+				switch (dataBinding.getMode()) {
+				case OneWay:
+					targetToSourcePolicy = UpdateListStrategy.POLICY_NEVER;
+					break;
+				case OneTime:
+					sourceToTargetPolicy = UpdateListStrategy.POLICY_NEVER;
+					targetToSourcePolicy = UpdateListStrategy.POLICY_NEVER;
+					break;
+				default:
+					break;
+				}
+				converter = dataBinding.getConverter();
+			}
+			UpdateListStrategy sourceToTarget = new UpdateListStrategy(
+					sourceToTargetPolicy);
+			UpdateListStrategy targetToSource = new UpdateListStrategy(
+					targetToSourcePolicy);
+			return bindList((IObservableList) target, (IObservableList) source,
+					targetToSource, sourceToTarget, converter);
+		}
+		throw new IllegalStateException();
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.databinding.IBindingContext#bind(org.eclipse.core.
+	 * databinding.observable.value.IObservableValue,
+	 * org.eclipse.core.databinding.observable.value.IObservableValue)
+	 */
+	public Binding bindList(IObservableList source, IObservableList target,
+			UpdateListStrategy sourceToTarget,
+			UpdateListStrategy targetToSource, IValueConverter converter) {
+		if (converter != null) {
+			return bindList(source, target, sourceToTarget, targetToSource,
+					converter, new InverseValueConverter(converter));
+		} else {
+			return bindList(source, target, sourceToTarget, targetToSource,
+					null, null);
+		}
+	}
+
+	/**
+	 * 
+	 * @param source
+	 * @param target
+	 * @param sourceToTarget
+	 *            if it is null, the default converter will be update policy
+	 * @param targetToSource
+	 *            if it is null, the default converter will be update policy
+	 * @param sourceToTargetConvertor
+	 *            if it is null, the default converter will be used
+	 * @param targetToSourceConvertor
+	 *            if it is null, the default converter will be used
+	 */
+	public Binding bindList(IObservableList source, IObservableList target,
+			UpdateListStrategy sourceToTarget,
+			UpdateListStrategy targetToSource,
+			IConverter sourceToTargetConvertor,
+			IConverter targetToSourceConvertor) {
+		if (source != null && target != null) {
+			if (sourceToTarget == null) {
+				sourceToTarget = new UpdateListStrategy(
+						UpdateListStrategy.POLICY_UPDATE);
+			}
+			if (targetToSource == null) {
+				targetToSource = new UpdateListStrategy(
+						UpdateListStrategy.POLICY_UPDATE);
+			}
+
+			if (sourceToTargetConvertor != null) {
+				sourceToTarget.setConverter(sourceToTargetConvertor);
+			}
+
+			if (targetToSourceConvertor != null) {
+				targetToSource.setConverter(targetToSourceConvertor);
+			}
+
+			this.dataBindingContext.bindList(target, source, targetToSource,
+					sourceToTarget);
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.databinding.IBindingContext#bind(org.eclipse.core.
+	 * databinding.observable.value.IObservableValue,
+	 * org.eclipse.core.databinding.observable.value.IObservableValue)
+	 */
+	public Binding bindSet(IObservableSet source, IObservableSet target,
+			UpdateSetStrategy sourceToTarget, UpdateSetStrategy targetToSource,
+			IValueConverter converter) {
+		if (converter != null) {
+			return bindSet(source, target, sourceToTarget, targetToSource,
+					converter, new InverseValueConverter(converter));
+		} else {
+			return bindSet(source, target, sourceToTarget, targetToSource,
+					null, null);
+		}
+	}
+
+	/**
+	 * 
+	 * @param source
+	 * @param target
+	 * @param sourceToTarget
+	 *            if it is null, the default converter will be update policy
+	 * @param targetToSource
+	 *            if it is null, the default converter will be update policy
+	 * @param sourceToTargetConvertor
+	 *            if it is null, the default converter will be used
+	 * @param targetToSourceConvertor
+	 *            if it is null, the default converter will be used
+	 */
+	public Binding bindSet(IObservableSet source, IObservableSet target,
+			UpdateSetStrategy sourceToTarget, UpdateSetStrategy targetToSource,
+			IConverter sourceToTargetConvertor,
+			IConverter targetToSourceConvertor) {
+		if (source != null && target != null) {
+			if (sourceToTarget == null) {
+				sourceToTarget = new UpdateSetStrategy(
+						UpdateSetStrategy.POLICY_UPDATE);
+			}
+			if (targetToSource == null) {
+				targetToSource = new UpdateSetStrategy(
+						UpdateSetStrategy.POLICY_UPDATE);
+			}
+
+			if (sourceToTargetConvertor != null) {
+				sourceToTarget.setConverter(sourceToTargetConvertor);
+			}
+
+			if (targetToSourceConvertor != null) {
+				targetToSource.setConverter(targetToSourceConvertor);
+			}
+
+			this.dataBindingContext.bindSet(target, source, targetToSource,
+					sourceToTarget);
+		}
+		return null;
+	}
+
+	/**
+	 * 
+	 * @param source
+	 * @param target
+	 * @param sourceToTarget
+	 *            if it is null, the default converter will be update policy
+	 * @param targetToSource
+	 *            if it is null, the default converter will be update policy
+	 * @param sourceToTargetConvertor
+	 *            if it is null, the default converter will be used
+	 * @param targetToSourceConvertor
+	 *            if it is null, the default converter will be used
+	 */
+	public Binding bind(IObservableList source, IObservableList target,
+			UpdateListStrategy sourceToTarget,
+			UpdateListStrategy targetToSource,
+			IConverter sourceToTargetConvertor,
+			IConverter targetToSourceConvertor) {
+		if (source != null && target != null) {
+			if (sourceToTarget == null) {
+				sourceToTarget = new UpdateListStrategy(
+						UpdateListStrategy.POLICY_UPDATE);
+			}
+			if (targetToSource == null) {
+				targetToSource = new UpdateListStrategy(
+						UpdateListStrategy.POLICY_UPDATE);
+			}
+
+			if (sourceToTargetConvertor != null) {
+				sourceToTarget.setConverter(sourceToTargetConvertor);
+			}
+
+			if (targetToSourceConvertor != null) {
+				targetToSource.setConverter(targetToSourceConvertor);
+			}
+
+			this.dataBindingContext.bindList(target, source, targetToSource,
+					sourceToTarget);
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.databinding.IBindingContext#bind(org.eclipse.core.
+	 * databinding.observable.value.IObservableValue,
+	 * org.eclipse.core.databinding.observable.value.IObservableValue)
+	 */
+	private Binding bindValue(IObservableValue source, IObservableValue target,
+			IDataBindingInfo dataBinding) {
+		IValueConverter converter = null;
+		IValidationRule[] validators = null;
+		int sourceToTargetPolicy = UpdateValueStrategy.POLICY_UPDATE;
+		int targetToSourcePolicy = UpdateValueStrategy.POLICY_UPDATE;
+		// Set policy to UpdateValueStrategy.
+		if (dataBinding != null) {
+			switch (dataBinding.getMode()) {
+			case OneWay:
+				targetToSourcePolicy = UpdateValueStrategy.POLICY_NEVER;
+				break;
+			case OneTime:
+				sourceToTargetPolicy = UpdateValueStrategy.POLICY_NEVER;
+				targetToSourcePolicy = UpdateValueStrategy.POLICY_NEVER;
+				break;
+			default:
+				break;
+			}
+			converter = dataBinding.getConverter();
+			validators = dataBinding.getValidators();
+		}
+		UpdateValueStrategy sourceToTarget = new UpdateValueStrategy(
+				sourceToTargetPolicy);
+		UpdateValueStrategy targetToSource = new UpdateValueStrategy(
+				targetToSourcePolicy);
+
+		bindValidators(validators, sourceToTarget, targetToSource);
+
+		return bind(source, target, sourceToTarget, targetToSource, converter);
+	}
+
+	private void bindValidators(IValidationRule[] validators,
+			UpdateValueStrategy sourceToTarget,
+			UpdateValueStrategy targetToSource) {
+		if (validators != null) {
+			for (IValidationRule validator : validators) {
+				switch (validator.getBindingMode()) {
+				case SourceToTarget:
+					addValidatorToStrategy(sourceToTarget, validator);
+					break;
+				case TargetToSource:
+					addValidatorToStrategy(targetToSource,
+							new InverseValidationRule(validator));
+					break;
+				case Both:
+				default:
+					addValidatorToStrategy(sourceToTarget, validator);
+					addValidatorToStrategy(targetToSource,
+							new InverseValidationRule(validator));
+				}
+			}
+		}
+	}
+
+	private void addValidatorToStrategy(UpdateValueStrategy strategy,
+			IValidationRule validator) {
+		switch (validator.getPhase()) {
+		case AfterGet:
+			strategy.setAfterGetValidator(validator);
+			break;
+		case AfterConvert:
+			strategy.setAfterConvertValidator(validator);
+			break;
+		case BeforeSet:
+		default:
+			strategy.setBeforeSetValidator(validator);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.databinding.IBindingContext#bind(org.eclipse.core.
+	 * databinding.observable.value.IObservableValue,
+	 * org.eclipse.core.databinding.observable.value.IObservableValue)
+	 */
+	public Binding bind(IObservableValue source, IObservableValue target,
+			UpdateValueStrategy sourceToTarget,
+			UpdateValueStrategy targetToSource, IValueConverter converter) {
+		if (converter != null) {
+			return bind(source, target, sourceToTarget, targetToSource,
+					converter, new InverseValueConverter(converter));
+		} else {
+			return bind(source, target, sourceToTarget, targetToSource, null,
+					null);
+		}
+	}
+
+	/**
+	 * 
+	 * @param source
+	 * @param target
+	 * @param sourceToTarget
+	 *            if it is null, the default converter will be update policy
+	 * @param targetToSource
+	 *            if it is null, the default converter will be update policy
+	 * @param sourceToTargetConvertor
+	 *            if it is null, the default converter will be used
+	 * @param targetToSourceConvertor
+	 *            if it is null, the default converter will be used
+	 */
+	public Binding bind(IObservableValue source, IObservableValue target,
+			UpdateValueStrategy sourceToTarget,
+			UpdateValueStrategy targetToSource,
+			IConverter sourceToTargetConvertor,
+			IConverter targetToSourceConvertor) {
+		if (source != null && target != null) {
+			if (sourceToTarget == null) {
+				sourceToTarget = new UpdateValueStrategy(
+						UpdateValueStrategy.POLICY_UPDATE);
+			}
+			if (targetToSource == null) {
+				targetToSource = new UpdateValueStrategy(
+						UpdateValueStrategy.POLICY_UPDATE);
+			}
+
+			// Add converter to UpdateValueStrategy.
+			IDataProvider sourceDataProvider = XWT.findDataProvider(source);
+			Object sourceValueType = sourceDataProvider.getDataType(null);
+			if (sourceValueType == null) {
+				sourceValueType = Object.class;
+			}
+			IDataProvider targetDataProvider = XWT.findDataProvider(target);
+			Object targetValueType = targetDataProvider.getDataType(null);
+			if (targetValueType == null) {
+				targetValueType = Object.class;
+			}
+			Class<?> sourceType = (sourceValueType instanceof Class<?>) ? (Class<?>) sourceValueType
+					: sourceValueType.getClass();
+			Class<?> targetType = (targetValueType instanceof Class<?>) ? (Class<?>) targetValueType
+					: targetValueType.getClass();
+			if (sourceType == null) {
+				sourceType = Object.class;
+			} else {
+				sourceType = ObjectUtil.normalizedType(sourceType);
+			}
+
+			if (targetType == null) {
+				targetType = Object.class;
+			} else {
+				targetType = ObjectUtil.normalizedType(targetType);
+			}
+
+			if (sourceToTarget.getUpdatePolicy() != UpdateValueStrategy.POLICY_NEVER) {
+				if (sourceToTargetConvertor != null) {
+					sourceToTarget.setConverter(sourceToTargetConvertor);
+				} else if (!targetType.isAssignableFrom(sourceType)) {
+					IConverter m2t = XWT.findConvertor(sourceType, targetType);
+					if (m2t != null) {
+						sourceToTarget.setConverter(m2t);
+					}
+				}
+			}
+
+			if (targetToSource.getUpdatePolicy() != UpdateValueStrategy.POLICY_NEVER) {
+				if (targetToSourceConvertor != null) {
+					targetToSource.setConverter(targetToSourceConvertor);
+				} else if (!sourceType.isAssignableFrom(targetType)) {
+					IConverter t2m = XWT.findConvertor(targetType, sourceType);
+					if (t2m != null) {
+						targetToSource.setConverter(t2m);
+					}
+				}
+			}
+
+			this.dataBindingContext.bindValue(target, source, targetToSource,
+					sourceToTarget);
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/Core.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/Core.java
new file mode 100644
index 0000000..d173f50
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/Core.java
@@ -0,0 +1,985 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2014 Soyatec (http://www.soyatec.com), CEA, and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *     Christian W. Damus (CEA) - bug 435432
+ *     
+ *******************************************************************************/
+package org.eclipse.xwt.internal.core;
+
+import static org.eclipse.xwt.IXWTLoader.XML_CACHE_PROPERTY;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.DefaultLoadingContext;
+import org.eclipse.xwt.ICLRFactory;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.IDataProvider;
+import org.eclipse.xwt.IDataProviderFactory;
+import org.eclipse.xwt.ILoadingContext;
+import org.eclipse.xwt.ILogger;
+import org.eclipse.xwt.IMetaclassFactory;
+import org.eclipse.xwt.INamespaceHandler;
+import org.eclipse.xwt.IStyle;
+import org.eclipse.xwt.IUIResource;
+import org.eclipse.xwt.IXWTLoader;
+import org.eclipse.xwt.Tracking;
+import org.eclipse.xwt.callback.IBeforeParsingCallback;
+import org.eclipse.xwt.converters.ObjectToObject;
+import org.eclipse.xwt.converters.StringToEnum;
+import org.eclipse.xwt.core.IElementLoaderFactory;
+import org.eclipse.xwt.core.IRenderingContext;
+import org.eclipse.xwt.core.IVisualElementLoader;
+import org.eclipse.xwt.dataproviders.ObjectDataProvider;
+import org.eclipse.xwt.input.ICommand;
+import org.eclipse.xwt.internal.xml.Attribute;
+import org.eclipse.xwt.internal.xml.DefaultElementCache;
+import org.eclipse.xwt.internal.xml.DocumentObject;
+import org.eclipse.xwt.internal.xml.DocumentRoot;
+import org.eclipse.xwt.internal.xml.Element;
+import org.eclipse.xwt.internal.xml.ElementManager;
+import org.eclipse.xwt.internal.xml.IElementCache;
+import org.eclipse.xwt.javabean.ValueConvertorRegister;
+import org.eclipse.xwt.metadata.IMetaclass;
+
+public class Core {
+	static public final Object[] EMPTY_ARRAY = new Object[0];
+	public static final String[] EMPTY_STRING_ARRAY = new String[0];
+
+	static public final String DEFAULT_STYLES_KEY = "XWT.DefaultStyles";
+
+	static public boolean TRACE_BENCH = false;
+
+	private HashMap<Class<?>, Object> registrations;
+
+	private HashMap<DocumentObject, IVisualElementLoader> elementsLoaders = new HashMap<DocumentObject, IVisualElementLoader>();
+
+	private MetaclassService metaclassService;
+
+	private IElementLoaderFactory loaderFactory;
+
+	private ILoadingContext _loadingContext = null;
+
+	private ICLRFactory clrFactory = null;
+
+	private Set<Tracking> trackingSet = new HashSet<Tracking>();
+	private Map<String, ICommand> commands = new HashMap<String, ICommand>();
+	private Map<String, INamespaceHandler> nsHandlers = new HashMap<String, INamespaceHandler>();
+	private ILogger logger;
+	private Collection<IStyle> defaultStyles = new ArrayList<IStyle>();
+
+	private static LinkedHashMap<String, IDataProviderFactory> dataProviderFactories = new LinkedHashMap<String, IDataProviderFactory>();
+
+	private Collection<Class<?>> resolveTypes = new ArrayList<Class<?>>();
+
+	private IXWTLoader xwtLoader;
+
+	static public ILogger nullLog = new ILogger() {
+		private Map<Tracking, String> messageMap = new HashMap<Tracking, String>();
+
+		public void error(Throwable e) {
+		}
+
+		public void error(Throwable e, String message) {
+		}
+
+		public void message(String message) {
+		}
+
+		public void warning(String message) {
+		}
+
+		public void printInfo(String message, Tracking tracking, Set trackType) {
+			String printMessage = "";
+
+			if (trackType != null && trackType.size() > 0) {
+				if (trackType.contains(tracking)) {
+					printMessage = (String) messageMap.get(tracking);
+				}
+			}
+			System.out.println(printMessage);
+		}
+
+		public void addMessage(String message, Tracking tracking) {
+			if (messageMap.containsKey(tracking)) {
+				messageMap.remove(tracking);
+			}
+			messageMap.put(tracking, message);
+		}
+
+		public void removeMessage(Tracking tracking) {
+			if (messageMap.containsKey(tracking)) {
+				messageMap.remove(tracking);
+			}
+		}
+	};
+
+	public Core(IElementLoaderFactory loaderFactory, IXWTLoader xwtLoader) {
+		this.loaderFactory = loaderFactory;
+		this.registrations = new HashMap<Class<?>, Object>();
+		this.xwtLoader = xwtLoader;
+		this.metaclassService = new MetaclassService(xwtLoader);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#getLogger()
+	 */
+	public ILogger getLogger() {
+		if (logger == null) {
+			return Core.nullLog;
+		}
+		return logger;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#setLogger(org.eclipse.xwt.ILogger)
+	 */
+	public void setLogger(ILogger log) {
+		logger = log;
+	}
+
+	public ICLRFactory getCLRFactory() {
+		return clrFactory;
+	}
+
+	public void setCLRFactory(ICLRFactory clrFactory) {
+		this.clrFactory = clrFactory;
+	}
+
+	/**
+	 * 
+	 * @param nsmapace
+	 * @param handler
+	 */
+	public void registerNamespaceHandler(String nsmapace,
+			INamespaceHandler handler) {
+		nsHandlers.put(nsmapace, handler);
+	}
+
+	/**
+	 * 
+	 * @param nsmapace
+	 */
+	public void unregisterNamespaceHandler(String nsmapace) {
+		nsHandlers.remove(nsmapace);
+	}
+
+	/**
+	 * 
+	 * @param nsmapace
+	 * @return
+	 */
+	public INamespaceHandler getNamespaceHandler(String nsmapace) {
+		return nsHandlers.get(nsmapace);
+	}
+
+	class ConverterService {
+		protected Map<Class<?>, IConverter> converters = new HashMap<Class<?>, IConverter>();
+
+		public IConverter getConverter(Class<?> type) {
+			IConverter converter = converters.get(type);
+			if (converter != null) {
+				return converter;
+			}
+
+			return null;
+		}
+
+		public void register(Class<?> type, IConverter converter) {
+			converters.put(type, converter);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#findConvertor(java.lang.Class,
+	 * java.lang.Class)
+	 */
+	public IConverter findConvertor(Class<?> source, Class<?> target) {
+		if (source == target
+				|| (source != Object.class && source.isAssignableFrom(target))) {
+			return ObjectToObject.instance;
+		}
+		if (String.class == source && target.isEnum()) {
+			return new StringToEnum(target);
+		}
+		ValueConvertorRegister convertorRegister = (ValueConvertorRegister) getService(ValueConvertorRegister.class);
+		if (convertorRegister == null) {
+			return null;
+		}
+		return convertorRegister.findConverter(source, target);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.IXWTLoader#registerConvertor(org.eclipse.core.databinding
+	 * .conversion.IConverter)
+	 */
+	public void registerConvertor(IConverter converter) {
+		Class<?> source = (Class<?>) converter.getFromType();
+		Class<?> target = (Class<?>) converter.getToType();
+		ValueConvertorRegister convertorRegister = (ValueConvertorRegister) getService(ValueConvertorRegister.class);
+		convertorRegister.register(source, target, converter);
+	}
+
+	public void registerConvertor(Class<?> converter, String methodName) {
+		try {
+			Method method = converter.getDeclaredMethod(methodName);
+			Object object = method.invoke(null);
+			if (object instanceof IConverter) {
+				registerConvertor((IConverter) object);
+			}
+		} catch (SecurityException e) {
+		} catch (IllegalArgumentException e) {
+		} catch (NoSuchMethodException e) {
+		} catch (IllegalAccessException e) {
+		} catch (InvocationTargetException e) {
+		}
+	}
+
+	public void registerConvertor(Class<?> converterType, String methodName,
+			boolean value) {
+		IConverter converter = loadConvertor(converterType, methodName, value);
+		if (converter != null) {
+			registerConvertor(converter);
+		}
+	}
+
+	public void registerConvertor(ValueConvertorRegister convertorRegister,
+			Class<?> source, Class<?> target, Class<?> converterType,
+			String methodName, boolean value) {
+		IConverter converter = loadConvertor(converterType, methodName, value);
+		if (converter != null) {
+			convertorRegister.register(source, target, converter);
+		}
+	}
+
+	public IConverter loadConvertor(Class<?> converter, String methodName,
+			boolean value) {
+		try {
+			Method method = converter.getDeclaredMethod(methodName, boolean.class);
+			Object object = method.invoke(null, value);
+			if (object instanceof IConverter) {
+				return (IConverter) object;
+			}
+		} catch (SecurityException e) {
+		} catch (IllegalArgumentException e) {
+		} catch (NoSuchMethodException e) {
+		} catch (IllegalAccessException e) {
+		} catch (InvocationTargetException e) {
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#getConverterService()
+	 */
+	public ConverterService getConverterService() {
+		ConverterService service = (ConverterService) getService(ConverterService.class);
+		if (service == null) {
+			service = new ConverterService();
+			registerService(ConverterService.class, service);
+			service.register(Object.class, new IConverter() {
+				public Object convert(Object fromObject) {
+					return null;
+				}
+
+				public Object getFromType() {
+					return Object.class;
+				}
+
+				public Object getToType() {
+					return String.class;
+				}
+			});
+		}
+		return service;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.IXWTLoader#addTracking(org.eclipse.xwt.Tracking)
+	 */
+	public void addTracking(Tracking tracking) {
+		if (!trackingSet.contains(tracking)) {
+			trackingSet.add(tracking);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.IXWTLoader#isTracking(org.eclipse.xwt.Tracking)
+	 */
+	public boolean isTracking(Tracking tracking) {
+		return trackingSet.contains(tracking);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#getTrackings()
+	 */
+	public Set<Tracking> getTrackings() {
+		return trackingSet;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.IXWTLoader#removeTracking(org.eclipse.xwt.Tracking)
+	 */
+	public void removeTracking(Tracking tracking) {
+		if (trackingSet.contains(tracking)) {
+			trackingSet.remove(tracking);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#registerCommand(java.lang.String,
+	 * org.eclipse.xwt.input.ICommand)
+	 */
+	public void registerCommand(String name, ICommand command) {
+		commands.put(name, command);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#getCommand(java.lang.String)
+	 */
+	public ICommand getCommand(String name) {
+		return commands.get(name);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#getCommands()
+	 */
+	public Map<String, ICommand> getCommands() {
+		return commands;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#unregisterCommand(java.lang.String)
+	 */
+	public void unregisterCommand(String name) {
+		commands.remove(name);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.IXWTLoader#addDefaultStyle(org.eclipse.xwt.IStyle)
+	 */
+	public void addDefaultStyle(IStyle style) {
+		defaultStyles.add(style);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.IXWTLoader#removeDefaultStyle(org.eclipse.xwt.IStyle
+	 * )
+	 */
+	public void removeDefaultStyle(IStyle style) {
+		defaultStyles.remove(style);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#getDefaultStyles()
+	 */
+	public Collection<IStyle> getDefaultStyles() {
+		return new ArrayList<IStyle>(defaultStyles);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.IXWTLoader#addDataProviderFactory(org.eclipse.xwt
+	 * .IDataProviderFactory)
+	 */
+	public void addDataProviderFactory(String name,
+			IDataProviderFactory dataProviderFactory) {
+		if (dataProviderFactory == null) {
+			return;
+		}
+		dataProviderFactories.put(name, dataProviderFactory);
+		registerMetaclass(dataProviderFactory.getType());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#registerMetaclass(java.lang.Class)
+	 */
+	public IMetaclass registerMetaclass(Class<?> type) {
+		return registerMetaclass(type, IConstants.XWT_NAMESPACE);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.IXWTLoader#removeDataProviderFactory(org.eclipse.e4
+	 * .xwt.IDataProviderFactory)
+	 */
+	public void removeDataProviderFactory(String name) {
+		if (name == null) {
+			return;
+		}
+		dataProviderFactories.remove(name);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.IXWTLoader#removeDataProviderFactory(org.eclipse.e4
+	 * .xwt.IDataProviderFactory)
+	 */
+	public void removeDataProviderFactory(
+			IDataProviderFactory dataProviderFactory) {
+		if (dataProviderFactory == null) {
+			return;
+		}
+		for (String name : dataProviderFactories.keySet()) {
+			IDataProviderFactory value = dataProviderFactories.get(name);
+			if (dataProviderFactory == value) {
+				dataProviderFactories.remove(name);
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#getDataProviderFactories()
+	 */
+	public Collection<IDataProviderFactory> getDataProviderFactories() {
+		return dataProviderFactories.values();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#findDataProvider(java.lang.Object)
+	 */
+	public IDataProvider findDataProvider(Object dataContext) {
+		if (dataContext instanceof IDataProvider) {
+			return (IDataProvider) dataContext;
+		}
+		for (IDataProviderFactory factory : dataProviderFactories.values()) {
+			IDataProvider dataProvider = factory.create(dataContext);
+			if (dataProvider != null) {
+				return dataProvider;
+			}
+		}
+		ObjectDataProvider dataProvider = new ObjectDataProvider();
+		dataProvider.setObjectInstance(dataContext);
+		return dataProvider;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#getLoadingContext()
+	 */
+	public ILoadingContext getLoadingContext() {
+		if (_loadingContext == null) {
+			return DefaultLoadingContext.defaultLoadingContext;
+		}
+		return _loadingContext;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.xwt.IXWTLoader#setLoadingContext(org.eclipse.xwt.
+	 * ILoadingContext)
+	 */
+	public void setLoadingContext(ILoadingContext loadingContext) {
+		_loadingContext = loadingContext;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IXWTLoader#findLoadingContext(java.lang.Object)
+	 */
+	public ILoadingContext findLoadingContext(Object container) {
+		return getLoadingContext();
+	}
+
+	public IMetaclass getMetaclass(ILoadingContext context, String name,
+			String namespace) {
+		return getMetaclassService().getMetaclass(context, name, namespace);
+	}
+
+	public IMetaclass findMetaclass(Object object) {
+		if (object instanceof Class<?>) {
+			return getMetaclassService().findMetaclass((Class<?>) object);
+		}
+		return getMetaclassService().findMetaclass(object.getClass());
+	}
+
+	public IMetaclass getMetaclass(Object object) {
+		if (object instanceof Class<?>) {
+			return getMetaclassService().getMetaclass((Class<?>) object);
+		}
+		return getMetaclassService().getMetaclass(object.getClass());
+	}
+
+	public IMetaclass getMetaclass(Object object, String namespace) {
+		if (object instanceof Class) {
+			return getMetaclassService().getMetaclass((Class<?>) object,
+					namespace);
+		}
+		return getMetaclassService().getMetaclass(object.getClass(), namespace);
+	}
+
+	public Collection<IMetaclass> getAllMetaclasses(String namespace) {
+		return getMetaclassService().getAllMetaclasses(namespace);
+	}
+
+	public void registerMetaclass(IMetaclass metaclass, String namespace) {
+		getMetaclassService().register(metaclass, namespace);
+	}
+
+	public void registerMetaclassFactory(IMetaclassFactory metaclassFactory) {
+		getMetaclassService().registerFactory(metaclassFactory);
+	}
+
+	public IMetaclass registerMetaclass(Class<?> metaclass, String namespace) {
+		return getMetaclassService().register(metaclass, namespace);
+	}
+
+	public IMetaclass registerMetaclass(Class<?> metaclass, String namespace,
+			IMetaclass superMetaclass) {
+		return getMetaclassService().register(metaclass, namespace,
+				superMetaclass);
+	}
+
+	public void registerMetaclassManager(String namespace,
+			MetaclassManager manager) {
+		getMetaclassService().register(namespace, manager);
+	}
+
+	public Object getService(Class<?> type) {
+		return this.registrations.get(type);
+	}
+
+	public void registerService(Class<?> serviceType, Object service) {
+		registrations.put(serviceType, service);
+	}
+
+	protected Object createCLRElement(IRenderingContext context,
+			Element element, Map<String, Object> options) {
+		IVisualElementLoader loader = findElementLoader(element);
+		if (loader != null) {
+			return loader.createUIElement(element, options);
+		}
+		loader = createElementLoader(context, element);
+		Object visualObject = loader.createUIElement(element, options);
+		removeElementLoader(element);
+		return visualObject;
+	}
+
+	protected IVisualElementLoader findElementLoader(DocumentObject element) {
+		IVisualElementLoader loader = elementsLoaders.get(element);
+		if (loader != null) {
+			return loader;
+		}
+		if (element.getParent() != null) {
+			return findElementLoader(element.getParent());
+		}
+		return null;
+	}
+
+	protected IVisualElementLoader createElementLoader(
+			IRenderingContext context, DocumentObject element) {
+		IVisualElementLoader creator = loaderFactory.createElementLoader(
+				context, xwtLoader);
+		elementsLoaders.put(element, creator);
+		return creator;
+	}
+
+	protected void removeElementLoader(DocumentObject element) {
+		elementsLoaders.remove(element);
+	}
+
+	public Object load(ILoadingContext loadingContext, URL input,
+			Map<String, Object> options) throws Exception {
+		return load(loadingContext, null, input, options);
+	}
+
+	public IUIResource loadAsResource(InputStream stream, URL input,
+			IBeforeParsingCallback parsingCallback) throws Exception {
+		ElementManager manager = new ElementManager();
+		Element element = null;
+		if (stream == null) {
+			element = manager.load(input, parsingCallback);
+		} else {
+			InputStream inputStream = stream;
+			if (parsingCallback != null) {
+				int size = stream.read();
+				byte[] buffer = new byte[size];
+				stream.read(buffer);
+				String content = new String(buffer);
+				stream.close();
+				content = parsingCallback.onParsing(content);
+				inputStream = new ByteArrayInputStream(content.getBytes());
+				element = manager.load(stream, input);
+			}
+			element = manager.load(inputStream, input);
+		}
+		return new UIResource(input, element);
+	}
+
+	public Object load(ILoadingContext loadingContext, IUIResource pattern,
+			Map<String, Object> options) throws Exception {
+		UIResource uiResource = (UIResource) pattern;
+		Control control = null;
+		ElementManager manager = new ElementManager(uiResource.getURL());
+		Element element = uiResource.getContent();
+		IRenderingContext context = new ExtensionContext(loadingContext,
+				manager, element.getNamespace());
+		Object visual = createCLRElement(context, element, options);
+		if (visual instanceof Control) {
+			control = (Control) visual;
+		} else if (visual instanceof Viewer) {
+			control = ((Viewer) visual).getControl();
+		} else {
+			Class<?> jfaceWindow = Class
+					.forName("org.eclipse.jface.window.Window");
+			if (jfaceWindow != null && jfaceWindow.isInstance(visual)) {
+				Method createMethod = jfaceWindow.getDeclaredMethod("create");
+				createMethod.invoke(visual);
+				Method method = jfaceWindow.getDeclaredMethod("getShell");
+				control = (Control) method.invoke(visual);
+			}
+		}
+
+		if (control instanceof Composite) {
+			Object parent = options.get(IXWTLoader.CONTAINER_PROPERTY);
+			Object designMode = options.get(IXWTLoader.DESIGN_MODE_PROPERTY);
+			if (parent instanceof Composite) {
+				Composite parentComposite = (Composite) parent;
+				if (parentComposite.getLayout() == null
+						|| designMode == Boolean.TRUE) {
+					autoLayout(parentComposite, element);
+				}
+			} else if (parent == null || designMode == Boolean.TRUE) {
+				if (control instanceof Shell) {
+					autoLayout((Shell) control, element);
+				} else {
+					autoLayout(control.getShell(), element);
+				}
+			}
+		}
+		return visual;
+	}
+
+	public Control load(ILoadingContext loadingContext, InputStream stream,
+			URL input, Map<String, Object> options) throws Exception {
+		// Detect from url or file path.
+		long start = System.currentTimeMillis();
+		Control control = null;
+		ElementManager manager = new ElementManager();
+		if (input != null) {
+			Element element = null;
+			IElementCache cache = getCache(options);
+			element = cache.getElement(input);
+			if (element != null) {
+				manager.setRootElement(element);
+				
+				// Got an element from the cache, so we don't need an input stream
+				if (stream != null) {
+					stream.close();
+				}
+			} else {
+				if (stream == null) {
+					element = manager.load(input, (IBeforeParsingCallback) options
+							.get(IXWTLoader.BEFORE_PARSING_CALLBACK));
+				} else {
+					IBeforeParsingCallback callback = (IBeforeParsingCallback) options
+							.get(IXWTLoader.BEFORE_PARSING_CALLBACK);
+					InputStream inputStream = stream;
+					if (callback != null) {
+						int size = stream.read();
+						byte[] buffer = new byte[size];
+						stream.read(buffer);
+						String content = new String(buffer);
+						stream.close();
+						content = callback.onParsing(content);
+						inputStream = new ByteArrayInputStream(content.getBytes());
+						element = manager.load(stream, input);
+					}
+					element = manager.load(inputStream, input);
+				}
+
+				cache.cache(input, element);
+			}
+			IRenderingContext context = new ExtensionContext(loadingContext,
+					manager, manager.getRootElement().getNamespace());
+			Object visual = createCLRElement(context, element, options);
+			if (TRACE_BENCH) {
+				System.out.println("Loaded: "
+						+ (System.currentTimeMillis() - start) + "  "
+						+ input.toString());
+			}
+			if (visual instanceof Control) {
+				control = (Control) visual;
+			} else if (visual instanceof Viewer) {
+				control = ((Viewer) visual).getControl();
+			} else {
+				Class<?> jfaceWindow = Class
+						.forName("org.eclipse.jface.window.Window");
+				if (jfaceWindow != null && jfaceWindow.isInstance(visual)) {
+					Method createMethod = jfaceWindow
+							.getDeclaredMethod("create");
+					createMethod.invoke(visual);
+					Method method = jfaceWindow.getDeclaredMethod("getShell");
+					control = (Control) method.invoke(visual);
+				}
+			}
+
+			Object parent = options.get(IXWTLoader.CONTAINER_PROPERTY);
+			Object designMode = options.get(IXWTLoader.DESIGN_MODE_PROPERTY);
+			if (control instanceof Composite) {
+				if (parent instanceof Composite) {
+					Composite parentComposite = (Composite) parent;
+					if (parentComposite.getLayout() == null
+							|| designMode == Boolean.TRUE) {
+						autoLayout(parentComposite, element);
+					}
+				} else if (parent == null || designMode == Boolean.TRUE) {
+					if (control instanceof Shell) {
+						autoLayout((Shell) control, element);
+					} else {
+						autoLayoutShell(control, element);
+					}
+				}
+			}
+			else if (control != null && (parent == null || designMode == Boolean.TRUE)) {
+				autoLayoutShell(control, element);
+			}
+		}
+		return control;
+	}
+
+	private IElementCache getCache(Map<String, Object> options) {
+		Object option = (options == null) ? IElementCache.NULL : options.get(XML_CACHE_PROPERTY);
+		if (option instanceof Boolean) {
+			// Enable caching according to the option
+			if (((Boolean)option).booleanValue()) {
+				option = new DefaultElementCache();
+			} else {
+				option = IElementCache.NULL;
+			}
+			options.put(XML_CACHE_PROPERTY, option);
+		} else if (option instanceof Number) {
+			// create a default cache of this size
+			option = new DefaultElementCache(((Number)option).intValue());
+			options.put(XML_CACHE_PROPERTY, option);
+		} else if (!(option instanceof IElementCache)) {
+			option = IElementCache.NULL;
+			options.put(XML_CACHE_PROPERTY, option);
+		}
+
+		return (IElementCache)option;
+	}
+	
+	protected void autoLayout(Control composite, Element element) {
+		if (element == null) {
+			return;
+		}
+		Attribute bounds = element.getAttribute("Bounds");
+		if (bounds == null) {
+			bounds = element.getAttribute("Bounds", IConstants.XWT_NAMESPACE);
+		}
+		Attribute size = element.getAttribute("Size");
+		if (size == null) {
+			size = element.getAttribute("Size", IConstants.XWT_NAMESPACE);
+		}
+		if (bounds == null && size == null) {
+			composite.pack();
+		}
+	}
+
+	protected void autoLayoutShell(Control control, Element element) {
+		if (element == null) {
+			return;
+		}
+		Attribute bounds = element.getAttribute("Bounds");
+		if (bounds == null) {
+			bounds = element.getAttribute("Bounds", IConstants.XWT_NAMESPACE);
+		}
+		Attribute size = element.getAttribute("Size");
+		if (size == null) {
+			size = element.getAttribute("Size", IConstants.XWT_NAMESPACE);
+		}
+		if (bounds == null && size == null) {
+			control.pack();
+		}
+		else {
+			Shell shell = control.getShell();
+			Point targetSize = control.getSize();
+			Rectangle rectangle = shell.getBounds();			
+			Rectangle clientArea = shell.getClientArea();
+			targetSize.x += rectangle.width - clientArea.width;
+			targetSize.y += rectangle.height - clientArea.height;
+			shell.setSize(targetSize);
+		}
+	}
+
+	static private class ExtensionContext implements IRenderingContext {
+
+		private Map<String, Object> properties = new HashMap<String, Object>();
+
+		private URL resourcePath;
+
+		private DocumentRoot documentRoot;
+
+		private String namespace;
+
+		private String encoding;
+
+		protected ILoadingContext loadingContext;
+
+		public ExtensionContext(ILoadingContext loadingContext,
+				ElementManager elementManager, String namespace) {
+			documentRoot = elementManager.getDocumentRoot();
+			resourcePath = documentRoot.getPath();
+			this.namespace = namespace;
+			this.loadingContext = loadingContext;
+			encoding = elementManager.getEncoding();
+		}
+
+		public String getNamespace() {
+			return namespace;
+		}
+
+		public InputStream openStream(String path) throws IOException {
+			return documentRoot.openStream(path);
+		}
+
+		public URL getResourcePath() {
+			return resourcePath;
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.soyatec.xaml.IExtensionContext#getEncoding()
+		 */
+		public String getEncoding() {
+			return encoding;
+		}
+
+		public Object getProperty(String name) {
+			return properties.get(name);
+		}
+
+		public void setProperty(String name, Object value) {
+			properties.put(name, value);
+		}
+
+		public ILoadingContext getLoadingContext() {
+			return loadingContext;
+		}
+	}
+
+	public MetaclassService getMetaclassService() {
+		return metaclassService;
+	}
+
+	/**
+	 * Check if the value of a property is to resolve.
+	 * 
+	 * @param type
+	 *            type of property
+	 * @return
+	 */
+	public boolean isFileResolveType(Class<?> type) {
+		for (Class<?> resolveType : resolveTypes) {
+			if (resolveType.isAssignableFrom(type)) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	/**
+	 * Register the value of a property is to resolve.
+	 * 
+	 * @param type
+	 *            type of property
+	 * @return
+	 */
+	public void registerFileResolveType(Class<?> type) {
+		if (!resolveTypes.contains(type)) {
+			resolveTypes.add(type);
+		}
+	}
+
+	/**
+	 * Register the value of a property is to resolve.
+	 * 
+	 * @param type
+	 *            type of property
+	 * @return
+	 */
+	public void unregisterFileResolveType(Class<?> type) {
+		resolveTypes.remove(type);
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/DataBindingTrack.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/DataBindingTrack.java
new file mode 100644
index 0000000..984864c
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/DataBindingTrack.java
@@ -0,0 +1,201 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.xwt.internal.core;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.Tracking;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.internal.utils.LoggerManager;
+import org.eclipse.xwt.internal.utils.ObjectUtil;
+import org.eclipse.xwt.internal.xml.Attribute;
+import org.eclipse.xwt.internal.xml.Element;
+import org.eclipse.xwt.jface.JFacesHelper;
+
+/**
+ * @author liang.zhang
+ * 
+ */
+public class DataBindingTrack {
+	private String bindingError = "";
+	private Set<String> errorElements = null;
+
+	private List<Element> widgetList = null;
+	private Map<Element, String> bindingMap;
+
+	public DataBindingTrack() {
+		widgetList = new ArrayList<Element>();
+		errorElements = new HashSet<String>();
+		bindingMap = new HashMap<Element, String>();
+	}
+
+	public void addWidgetElement(Element element) {
+		widgetList.add(element);
+	}
+
+	private void addErrorWidgetId(String elementId) {
+		errorElements.add(elementId);
+	}
+
+	private void addBindingMessageToMap(Element element, String bindingMessage) {
+		bindingMap.put(element, bindingMessage);
+	}
+
+	private int validateParentElementError(Element bindingElement) {
+		int isError = 0;
+		if (!bindingError.equals("")) {
+			Object parentObj = bindingElement.getParent();
+			while (parentObj != null) {
+				bindingElement = (Element) parentObj;
+				if (errorElements.contains(bindingElement.getId())) {
+					isError = 1;
+					break;
+				}
+				parentObj = bindingElement.getParent();
+			}
+		}
+		return isError;
+	}
+
+	private String getCurrentWidgetPosition(Element element) {
+		if (element.getParent() != null) {
+			return " " + getCurrentWidgetPosition((Element) element.getParent());
+		}
+		return "";
+	}
+
+	public String getDataBindMessage() {
+		StringBuffer message = new StringBuffer("");
+		Iterator<Element> widgetIt = widgetList.iterator();
+		Set<Element> keys = bindingMap.keySet();
+		while (widgetIt.hasNext()) {
+			Element element = widgetIt.next();
+			int parentHasError = validateParentElementError(element);
+			if (parentHasError == 0) {
+				String content = getCurrentWidgetPosition(element);
+				if (!message.toString().equals("")) {
+					content += "+ ";
+				}
+				content = content + element.getName();
+				if (XWT.isTracking(Tracking.NAME)) {
+					Attribute nameAttr = element.getAttribute("Name");
+					if (nameAttr == null) {
+						nameAttr = element.getAttribute(IConstants.XWT_X_NAMESPACE, "Name");
+					}
+					if (nameAttr != null) {
+						content += " <" + nameAttr.getContent() + ">";
+					}
+				}
+				message.append(content);
+				if (XWT.isTracking(Tracking.DATABINDING)) {
+					if (keys.contains(element)) {
+						message.append(bindingMap.get(element));
+					} else {
+						message.append("\n");
+					}
+				}
+			}
+		}
+		return message.toString();
+	}
+
+	private void setBindingErrorMessage(String bindingError) {
+		this.bindingError = bindingError;
+	}
+
+	public void tracking(Object swtObject, Element element, Object dataContext) {
+		String bindingMessage = "";
+		if (swtObject instanceof Binding) {
+			String error = "";
+			Binding newInstance = (Binding) swtObject;
+			String path = null;
+			Attribute attr = element.getAttribute("Path");
+			if (null == attr)
+				attr = element.getAttribute("path");
+			if (null != attr)
+				path = attr.getContent();
+			Object dataContext2 = null;
+			try {
+				dataContext2 = newInstance.getValue(null);
+				if (path != null && path.length() > 0) {
+					String[] paths = path.trim().split("\\.");
+					if (paths.length > 1) {
+						String path1 = "";
+						for (int i = 0; i < paths.length - 1; i++) {
+							path1 = paths[i];
+							if (dataContext2 != null) {
+								dataContext2 = getObserveData(dataContext2, path1);
+							}
+						}
+					}
+				}
+			} catch (Exception ex) {
+				addErrorWidgetId(element.getParent().getParent().getId());
+				setBindingErrorMessage("-> Error");
+				error = "-> Error";
+			}
+			if (dataContext2 != null) {
+				bindingMessage = " (DataContext=" + dataContext2.getClass().getSimpleName() + ", Path=" + path + ")" + error + "\n";
+				addBindingMessageToMap((Element) element.getParent().getParent(), bindingMessage);// bindingMap.put((Element) element.getParent().getParent(), bindingMessage);
+			}
+		} else if (swtObject instanceof Widget) {
+			addWidgetElement(element);
+			if (dataContext != null) {
+				bindingMessage = " (DataContext=" + dataContext.getClass().getSimpleName() + ")\n";
+				addBindingMessageToMap(element, bindingMessage);
+			}
+		} else if (JFacesHelper.isViewer(swtObject)) {
+			if (dataContext != null) {
+				bindingMessage = " (DataContext=" + dataContext.getClass().getSimpleName() + ")\n";
+				addBindingMessageToMap(element, bindingMessage);// bindingMap.put(element, bindingMessage);
+			}
+		} else if (element.attributeNames(IConstants.XWT_X_NAMESPACE).length > 0) {
+			// ??
+			if (element.getParent() != null && element.getParent().getParent() != null) {
+				bindingMessage = " (DataContext=" + element.getName() + ")\n";
+				addBindingMessageToMap((Element) element.getParent().getParent(), bindingMessage);// bindingMap.put((Element) element.getParent().getParent(), bindingMessage);
+			}
+		}
+	}
+
+	public static Object getObserveData(Object dataContext, String path) {
+		try {
+			Class<?> dataContextClass = dataContext.getClass();
+			Method getMethod = ObjectUtil.findGetter(dataContextClass, path, null);
+			if (getMethod != null) {
+				return getMethod.invoke(dataContext);
+			}
+		} catch (SecurityException e) {
+			LoggerManager.log(e);
+		} catch (IllegalArgumentException e) {
+			LoggerManager.log(e);
+		} catch (IllegalAccessException e) {
+			LoggerManager.log(e);
+		} catch (InvocationTargetException e) {
+			LoggerManager.log(e);
+		}
+		return null;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/DynamicBinding.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/DynamicBinding.java
new file mode 100644
index 0000000..46d4f76
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/DynamicBinding.java
@@ -0,0 +1,246 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.internal.core;
+
+import java.lang.reflect.Method;
+
+import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Item;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.IDataProvider;
+import org.eclipse.xwt.IXWTLoader;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.annotation.UIBounds;
+import org.eclipse.xwt.core.IDynamicBinding;
+import org.eclipse.xwt.core.IUserDataConstants;
+import org.eclipse.xwt.databinding.BindingMode;
+import org.eclipse.xwt.databinding.IBindingContext;
+import org.eclipse.xwt.internal.utils.UserData;
+
+/**
+ * Generic Binding definition
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public abstract class DynamicBinding implements IDynamicBinding {
+	private Object control;
+
+	private Object host;
+
+	private BindingMode mode = BindingMode.TwoWay;
+
+	private IXWTLoader xwtLoader;
+
+	private String name;
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	/**
+	 * The name of the {@link DataBindingContext} that we will look up in static
+	 * resources
+	 */
+	private IBindingContext bindingContext;
+
+	/**
+	 * which used to decide binding type, not only text.
+	 */
+	private String type;
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.core.IDynamicBinding#getContextName()
+	 */
+	public IBindingContext getBindingContext() {
+		if (this.bindingContext == null) {
+			Object element = (control == null ? host : control);
+			this.bindingContext = XWT.getBindingContext(element);
+		}
+		return this.bindingContext;
+	}
+
+	public Object getHost() {
+		return host;
+	}
+
+	public void setHost(Object host) {
+		this.host = host;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.core.IDynamicBinding#setBindingContext(IBindingContext
+	 * )
+	 */
+	public void setBindingContext(IBindingContext bindingContext) {
+		this.bindingContext = bindingContext;
+	}
+
+	public void setControl(Object control) {
+		this.control = control;
+	}
+
+	public Object getControl() {
+		return this.control;
+	}
+
+	/**
+	 * @param type
+	 *            the type to set
+	 */
+	public void setType(String type) {
+		this.type = type;
+	}
+
+	/**
+	 * @return the type
+	 */
+	public String getType() {
+		return type;
+	}
+
+	public BindingMode getMode() {
+		return mode;
+	}
+
+	public void setMode(BindingMode mode) {
+		this.mode = mode;
+	}
+
+	public void setXWTLoader(IXWTLoader xwtLoader) {
+		this.xwtLoader = xwtLoader;
+	}
+
+	protected Object getDataContextHost() {
+		Object control = getControl();
+		if (control == null) {
+			return null;
+		}
+		Object data = UserData.getLocalDataContext(control);
+		if (data == null || data == this) {
+			if (data == null
+					&& UserData.hasLocalData(control,
+							IUserDataConstants.XWT_DATACONTEXT_KEY)) {
+				return control;
+			}
+			Widget parent = UserData.getParent(control);
+			if (parent != null) {
+				return UserData.getDataContextHost(parent);
+			}
+			return null;
+		}
+		if (data != null) {
+			return control;
+		}
+		return UserData.getDataContextHost(control);
+	}
+
+	protected Object getDataContext() {
+		if (control != null) {
+			return UserData.getDataContext(control);
+		}
+		return null;
+	}
+
+	protected IDataProvider getDataProvider(Object dataContext) {
+		if (dataContext != null) {
+			if (dataContext instanceof IDataProvider) {
+				return (IDataProvider) dataContext;
+			} else {
+				return xwtLoader.findDataProvider(dataContext);
+			}
+		}
+		return null;
+	}
+
+	public IDataProvider getDataProvider() {
+		return getDataProvider(getDataContext());
+	}
+
+	protected Rectangle getControlBounds() {
+		Widget widget = (Widget) getControl();
+		if (widget instanceof Control) {
+			Control control = (Control) widget;
+			return control.getBounds();
+		}
+		Method drawMethod = findBoundsMethod(widget.getClass());
+		if (drawMethod != null) {
+			try {
+				drawMethod.setAccessible(true);
+				return (Rectangle) drawMethod.invoke(widget);
+			} catch (Exception e) {
+				throw new XWTException(e);
+			}
+		}
+		Control control = findHostControl();
+		return control.getBounds();
+	}
+	
+	protected Control findHostControl() {
+		Widget widget = (Widget) getControl();
+		Control host;
+		if (widget instanceof Item) {
+			Item item = (Item) widget;
+			host = (Control) XWT.findParent(item, Control.class);
+		}
+		else if (widget instanceof Control) {
+			host = (Control) widget;			
+		}
+		else {
+			throw new XWTException();
+		}
+		return host;
+	}
+
+	private Method findBoundsMethod(Class<?> type) {
+		for (Method method : type.getDeclaredMethods()) {
+			if (method.getAnnotation(UIBounds.class) != null
+					&& method.getTypeParameters().length == 0
+					&& method.getReturnType() == Rectangle.class) {
+				return method;
+			}
+		}
+		Class<?> supertype = type.getSuperclass();
+		if (supertype != null && supertype != Widget.class) {
+			Method method = findBoundsMethod(supertype);
+			if (method != null) {
+				return method;
+			}
+		}
+		for (Class<?> anInterface : type.getInterfaces()) {
+			Method method = findBoundsMethod(anInterface);
+			if (method != null) {
+				return method;
+			}
+		}
+		try {
+			Method method = type.getDeclaredMethod("getBounds");
+			if (method.getReturnType() == Rectangle.class) {
+				return method;
+			}
+		} catch (Exception e) {
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/DynamicValueBinding.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/DynamicValueBinding.java
new file mode 100644
index 0000000..b9d5a96
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/DynamicValueBinding.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.internal.core;
+
+import org.eclipse.xwt.core.IDynamicValueBinding;
+import org.eclipse.xwt.metadata.IProperty;
+
+public class DynamicValueBinding<T> extends DynamicBinding implements
+		IDynamicValueBinding {
+	private T sourceValue;
+
+	private IProperty property;
+	private Object object;
+
+	public DynamicValueBinding(T sourceValue) {
+		this.sourceValue = sourceValue;
+	}
+
+	public IProperty getProperty() {
+		return property;
+	}
+
+	public void setProperty(IProperty property) {
+		this.property = property;
+	}
+
+	public Object getObject() {
+		return object;
+	}
+
+	public void setObject(Object object) {
+		this.object = object;
+	}
+
+	public T getSourceValue() {
+		return sourceValue;
+	}
+
+	public Object getValue(Class<?> type) {
+		return sourceValue;
+	}
+
+	public void reset() {
+	}
+
+	public Object createBoundSource() {
+		return null;
+	}
+
+	public boolean isSourceControl() {
+		return false;
+	}
+	
+	
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/IEventController.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/IEventController.java
new file mode 100644
index 0000000..eb173a0
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/IEventController.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.internal.core;
+
+import java.lang.reflect.Method;
+
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.IEventInvoker;
+import org.eclipse.xwt.metadata.IEvent;
+
+public interface IEventController {
+
+	boolean hasEvent(Object receiver, IEvent event);
+
+	void addEvent(int eventType, String name, IEvent event,
+			Widget control, Object receiver, Object arg, Method method);
+
+	void addEvent(int eventType, String name, IEvent event,
+			Widget control, Object arg, IEventInvoker eventInvoker);
+
+	void setEvent(IEvent event, Widget control,
+			Object receiver, Object arg, Method method);
+
+	void setEvent(IEvent event, Widget control,
+			Object arg, IEventInvoker eventInvoker);
+
+	void handleEvent(Event e);
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/MetaclassManager.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/MetaclassManager.java
new file mode 100644
index 0000000..e353f6d
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/MetaclassManager.java
@@ -0,0 +1,170 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.internal.core;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.ILoadingContext;
+import org.eclipse.xwt.IMetaclassFactory;
+import org.eclipse.xwt.IXWTLoader;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.internal.utils.ClassLoaderUtil;
+import org.eclipse.xwt.javabean.metadata.Metaclass;
+import org.eclipse.xwt.metadata.IMetaclass;
+
+/**
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class MetaclassManager {
+	protected Map<String, IMetaclass> nameRegister = new HashMap<String, IMetaclass>();
+	protected Collection<Class<?>> classRegister = new HashSet<Class<?>>();
+	protected MetaclassManager parent;
+	protected MetaclassService service;
+
+	private IXWTLoader xwtLoader;
+
+	public MetaclassManager(MetaclassService service, MetaclassManager parent,
+			IXWTLoader xwtLoader) {
+		this.parent = parent;
+		this.service = service;
+		this.xwtLoader = xwtLoader;
+	}
+
+	public Collection<IMetaclass> getAllMetaclasses() {
+		return nameRegister.values();
+	}
+
+	public void register(IMetaclass metaclass) {
+		Class<?> type = metaclass.getType();
+		if (classRegister.contains(type)) {
+			return;
+		}
+		String key = type.getSimpleName();
+		nameRegister.put(key, metaclass);
+		classRegister.add(type);
+	}
+
+	public IMetaclass register(Class<?> javaClass) {
+		return register(javaClass, null);
+	}
+
+	public IMetaclass register(Class<?> javaClass, IMetaclass superMetaclass) {
+		IMetaclass metaclass = getMetaclass(javaClass);
+		if (metaclass != null) {
+			return metaclass;
+		}
+		if (superMetaclass == null) {
+			Class<?> superclass = javaClass.getSuperclass();
+			if (superclass != null && superclass != Object.class) {
+				register(superclass, null);
+			}
+			superMetaclass = getMetaclass(superclass);
+		}
+		IMetaclass thisMetaclass = createMetaclass(javaClass, superMetaclass);
+		register(thisMetaclass);
+		return thisMetaclass;
+	}
+
+	protected IMetaclass createMetaclass(Class<?> javaClass,
+			IMetaclass superMetaclass) {
+		if (service != null) {
+			IMetaclassFactory factory = service.findFactory(javaClass);
+			if (factory != null) {
+				return factory.create(javaClass, superMetaclass, xwtLoader);
+			}
+		}
+		boolean lazyLoading = false; // TODO Get value from preference
+		return new Metaclass(javaClass, superMetaclass, lazyLoading, xwtLoader);
+	}
+
+	public IMetaclass getMetaclass(ILoadingContext context, String name,
+			String namespace) {
+		IMetaclass metaclass = nameRegister.get(name);
+		if (metaclass != null) {
+			if (namespace == null || namespace.equals(IConstants.XWT_NAMESPACE)) {
+				return metaclass;
+			}
+			if (namespace != null
+					&& namespace
+							.startsWith(IConstants.XAML_CLR_NAMESPACE_PROTO)) {
+				String packageName = namespace
+						.substring(IConstants.XAML_CLR_NAMESPACE_PROTO.length());
+				int index = packageName.indexOf('=');
+				if (index != -1) {
+					packageName = packageName.substring(0, index);
+				}
+				// if using default package(null), use only name as class name,
+				// else use package.class as class name
+				String className = packageName.length() == 0 ? name
+						: (packageName + "." + name);
+				if (metaclass.getType().getName().equals(className)) {
+					return metaclass;
+				}
+			}
+		}
+		if (namespace == null
+				|| !namespace.startsWith(IConstants.XAML_CLR_NAMESPACE_PROTO)) {
+			return null;
+		}
+		String packageName = namespace
+				.substring(IConstants.XAML_CLR_NAMESPACE_PROTO.length());
+		int index = packageName.indexOf('=');
+		if (index != -1) {
+			packageName = packageName.substring(0, index);
+		}
+		// if using default package(null), use only name as class name, else use
+		// package.class as class name
+		String className = packageName.length() == 0 ? name : (packageName
+				+ "." + name);
+		// try {
+		Class<?> type = ClassLoaderUtil.loadClass(context, className);
+		if (type == null) {
+			throw new XWTException("Cannot load " + className);
+		}
+		metaclass = register(type, null);
+		// There is no need to mapping a CLR class, since the ClassLoader will
+		// be changed.
+		nameRegister.remove(type.getSimpleName());
+		return metaclass;
+	}
+
+	public IMetaclass getMetaclass(Object object) {
+		if (object instanceof Class) {
+			return getMetaclass((Class<?>) object);
+		} else if (object instanceof String) {
+			return getMetaclass((String) object);
+		}
+		Class<?> type = object.getClass();
+		return getMetaclass(type);
+	}
+
+	public IMetaclass getMetaclass(Class<?> type) {
+		if (classRegister.contains(type)) {
+			IMetaclass metaclass = nameRegister.get(type.getSimpleName());
+			if (metaclass != null && metaclass.getType() == type) {
+				return metaclass;
+			}
+		}
+		if (parent != null) {
+			IMetaclass metaclass = parent.getMetaclass(type);
+			if (metaclass != null) {
+				return metaclass;
+			}
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/MetaclassService.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/MetaclassService.java
new file mode 100644
index 0000000..fc865a1
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/MetaclassService.java
@@ -0,0 +1,150 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.internal.core;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.ILoadingContext;
+import org.eclipse.xwt.IMetaclassFactory;
+import org.eclipse.xwt.IXWTLoader;
+import org.eclipse.xwt.metadata.IMetaclass;
+
+/**
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class MetaclassService {
+	protected Map<String, MetaclassManager> map = new HashMap<String, MetaclassManager>();
+	protected ArrayList<IMetaclassFactory> factories = new ArrayList<IMetaclassFactory>();
+
+	private IXWTLoader xwtLoader;
+
+	public MetaclassService(IXWTLoader xwtLoader) {
+		this.xwtLoader = xwtLoader;
+	}
+
+	public IMetaclass getMetaclass(ILoadingContext context, String name, String namespace) {
+		MetaclassManager manager = map.get(namespace);
+		if (manager == null) {
+			manager = new MetaclassManager(this, map.get(IConstants.XWT_NAMESPACE), xwtLoader);
+			map.put(namespace, manager);
+		}
+		return manager.getMetaclass(context, name, namespace);
+	}
+
+	public IMetaclass findMetaclass(Class<?> type) {
+		MetaclassManager manager = map.get(IConstants.XWT_NAMESPACE);
+		if (manager == null) {
+			return null;
+		}
+		return manager.getMetaclass(type);
+	}
+	
+	public IMetaclass getMetaclass(Class<?> type) {
+		MetaclassManager manager = map.get(IConstants.XWT_NAMESPACE);
+		if (manager == null) {
+			return null;
+		}
+		IMetaclass metaclass = manager.getMetaclass(type);
+		if (metaclass == null) {
+			String packageName = "";
+			Package packageObject = type.getPackage();
+			if (packageObject != null) {
+				packageName = packageObject.getName();
+			}
+			String key = IConstants.XAML_CLR_NAMESPACE_PROTO + ":" + packageName;
+			MetaclassManager childManager = map.get(key);
+			if (childManager == null) {
+				childManager = new MetaclassManager(this, manager, xwtLoader);
+				map.put(key, childManager);
+			}
+			metaclass = childManager.getMetaclass(type);
+			if (metaclass == null) {
+				childManager.register(type);
+				metaclass = childManager.getMetaclass(type);
+			}
+		}
+		return metaclass;
+	}
+
+	public IMetaclass getMetaclass(Class<?> type, String namespace) {
+		MetaclassManager manager = map.get(namespace);
+		if (manager == null) {
+			manager = new MetaclassManager(this, null, xwtLoader);
+			map.put(namespace, manager);
+		}
+		IMetaclass metaclass = manager.getMetaclass(type);
+		if (metaclass == null) {
+			metaclass = manager.getMetaclass(type);
+			if (metaclass == null) {
+				manager.register(type);
+				metaclass = manager.getMetaclass(type);
+			}
+		}
+		return metaclass;
+	}
+
+	public IMetaclass register(Class<?> metaclass, String namespace) {
+		MetaclassManager manager = map.get(namespace);
+		if (manager == null) {
+			throw new IllegalStateException();
+		}
+		return manager.register(metaclass);
+	}
+
+	public IMetaclass register(Class<?> metaclass, String namespace, IMetaclass superMetaclass) {
+		MetaclassManager manager = map.get(namespace);
+		if (manager == null) {
+			throw new IllegalStateException();
+		}
+		return manager.register(metaclass, superMetaclass);
+	}
+
+	public void register(IMetaclass metaclass, String namespace) {
+		MetaclassManager manager = map.get(namespace);
+		if (manager == null) {
+			manager = new MetaclassManager(this, null, xwtLoader);
+			map.put(namespace, manager);
+		}
+		manager.register(metaclass);
+	}
+
+	public Collection<IMetaclass> getAllMetaclasses(String namespace) {
+		MetaclassManager manager = map.get(namespace);
+		if (manager == null) {
+			throw new IllegalStateException();
+		}
+		return manager.getAllMetaclasses();
+	}
+
+	public void register(String namespace, MetaclassManager manager) {
+		map.put(namespace, manager);
+	}
+
+	public void registerFactory(IMetaclassFactory metaclassFactory) {
+		factories.add(metaclassFactory);
+	}
+
+	public IMetaclassFactory findFactory(Class<?> javaClass) {
+		for (int i = factories.size() - 1; i >= 0; i--) {
+			IMetaclassFactory factory = factories.get(i);
+			if (factory.isFactoryOf(javaClass)) {
+				return factory;
+			}
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/MultiBinding.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/MultiBinding.java
new file mode 100644
index 0000000..c758d39
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/MultiBinding.java
@@ -0,0 +1,239 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.internal.core;
+
+import org.eclipse.core.databinding.observable.IObservable;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.DateTime;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.xwt.IDataBindingInfo;
+import org.eclipse.xwt.IDataProvider;
+import org.eclipse.xwt.IMultiValueConverter;
+import org.eclipse.xwt.IValidationRule;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.converters.StringMultiValueConerter;
+import org.eclipse.xwt.core.IDynamicBinding;
+import org.eclipse.xwt.databinding.AggregateObservableValue;
+import org.eclipse.xwt.databinding.IBindingContext;
+import org.eclipse.xwt.internal.utils.LoggerManager;
+import org.eclipse.xwt.internal.utils.UserData;
+
+/**
+ * Support the aggregation of data binding
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class MultiBinding extends DynamicBinding implements IDataBindingInfo {
+	private Binding[] bindings = Binding.EMPTY_ARRAY;
+
+	private IMultiValueConverter valueConverter;
+
+	private IValidationRule[] valueValidators = IValidationRule.EMPTY_ARRAY;
+
+	private AggregateObservableValue observableValue;
+
+	private IObservableValue observableWidget;
+	private BindingExpressionPath targetPropertySegments;
+
+	/**
+	 * <p>
+	 * Default
+	 * </p>
+	 * 
+	 */
+	private UpdateSourceTrigger updateSourceTrigger = UpdateSourceTrigger.Default;
+
+	private BindingGate bindingGate;
+
+	public UpdateSourceTrigger getUpdateSourceTrigger() {
+		return updateSourceTrigger;
+	}
+
+	public void setUpdateSourceTrigger(UpdateSourceTrigger updateSourceTrigger) {
+		this.updateSourceTrigger = updateSourceTrigger;
+	}
+
+	public Binding[] getBindings() {
+		return bindings;
+	}
+
+	public void setBindings(Binding[] bindings) {
+		this.bindings = bindings;
+	}
+
+	public IMultiValueConverter getConverter() {
+		if (valueConverter == null) {
+			valueConverter = new StringMultiValueConerter();
+		}
+		return valueConverter;
+	}
+
+	public void setConverter(IMultiValueConverter valueConverter) {
+		this.valueConverter = valueConverter;
+	}
+
+	public boolean isSourcePropertyReadOnly() {
+		for (Binding binding : bindings) {
+			if (binding.isSourcePropertyReadOnly()) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	public Object getValue(Class<?> targetType) {
+		if (observableValue == null) {
+			IObservableValue[] values = new IObservableValue[bindings.length];
+			for (int i = 0; i < values.length; i++) {
+				bindings[i].getValue(targetType);
+				IObservable observable = bindings[i].getObservableSource();
+				if (observable instanceof IObservableValue) {
+					values[i] = (IObservableValue) observable;
+				} else {
+					LoggerManager.log("Binding expression has a problem with "
+							+ bindings[i].getPath());
+					return null;
+				}
+			}
+
+			observableValue = new AggregateObservableValue(values,
+					getConverter());
+		}
+
+		IObservableValue observableWidget = getObservableWidget();
+
+		IDataProvider dataProvider = getDataProvider();
+		if (dataProvider != null) {
+			BindingGate bindingGate = getBindingGate();
+			if (bindingGate != null) {
+				Object target = getControl();
+				if (target instanceof Text
+						&& getType().equalsIgnoreCase("text")) {
+					if (isSourcePropertyReadOnly()) {
+						Text text = (Text) target;
+						text.setEditable(false);
+					}
+				} else if (target instanceof Button
+						&& getType().equalsIgnoreCase("selection")) {
+					if (isSourcePropertyReadOnly()) {
+						Button button = (Button) target;
+						button.setEnabled(false);
+					}
+				} else if ((target instanceof Combo || target instanceof CCombo)
+						&& getType().equalsIgnoreCase("text")) {
+					if (isSourcePropertyReadOnly()) {
+						Control control = (Control) target;
+						control.setEnabled(false);
+					}
+				} else if (target instanceof MenuItem
+						&& getType().equalsIgnoreCase("selection")) {
+					if (isSourcePropertyReadOnly()) {
+						MenuItem menuItem = (MenuItem) target;
+						menuItem.setEnabled(false);
+					}
+				}
+				else if (target instanceof DateTime
+						&& getType().equalsIgnoreCase("selection")) {
+					if (isSourcePropertyReadOnly()) {
+						DateTime dateTime = (DateTime) target;
+						dateTime.setEnabled(false);
+					}
+				}
+			}
+			bindingGate.bind(observableValue, observableWidget, this);
+		}
+
+		if (targetType == null || !targetType.isInstance(observableValue)) {
+			return observableValue.getValue();			
+		}
+		return observableValue;
+	}
+
+	private BindingGate getBindingGate() {
+		if (this.bindingGate == null) {
+			IBindingContext dataBindingContext = XWT
+					.getBindingContext(getControl());
+			this.bindingGate = new BindingGate(dataBindingContext);
+		}
+
+		return this.bindingGate;
+	}
+
+	public IObservableValue getObservableWidget() {
+		if (observableWidget == null) {
+			Object target = getControl();
+			Object host = getHost();
+			try {
+				observableWidget = ScopeManager.observeValue(target, host,
+						getTargettPropertyExpression(),
+						getUpdateSourceTrigger());
+			} catch (XWTException e) {
+			}
+		}
+		return observableWidget;
+	}
+
+	public Object createBoundSource() {
+		Object control = getControl();
+		Object source = XWT.getDataContext(control);
+		Object localDataContext = UserData.getLocalDataContext(control);
+		if (localDataContext == this) {
+			return source;
+		}
+
+		if (source instanceof IDynamicBinding) {
+			return ((IDynamicBinding) source).createBoundSource();
+		}
+		return source;
+	}
+
+	public boolean isSourceControl() {
+		Object source = null;
+		Object dataContextHost = getDataContextHost();
+		if (dataContextHost != null) {
+			source = UserData.getLocalDataContext(dataContextHost);
+		}
+
+		if (source instanceof IDynamicBinding) {
+			return ((IDynamicBinding) source).isSourceControl();
+		}
+		return false;
+	}
+
+	public BindingExpressionPath getTargettPropertyExpression() {
+		if (targetPropertySegments == null) {
+			targetPropertySegments = new BindingExpressionPath(getType());
+		}
+		return targetPropertySegments;
+	}
+
+	public IValidationRule[] getValidators() {
+		return valueValidators;
+	}
+
+	public void setValidators(IValidationRule[] valueValidators) {
+		this.valueValidators = valueValidators;
+	}
+	
+	public void reset() {
+		for (Binding binding : bindings) {
+			binding.reset();
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/ScopeKeeper.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/ScopeKeeper.java
new file mode 100644
index 0000000..4d4c293
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/ScopeKeeper.java
@@ -0,0 +1,273 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.internal.core;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+
+import org.eclipse.core.databinding.observable.ChangeEvent;
+import org.eclipse.core.databinding.observable.IChangeListener;
+import org.eclipse.core.databinding.observable.IObservable;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.set.IObservableSet;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.internal.utils.UserData;
+
+public class ScopeKeeper implements DisposeListener {
+	private static final long serialVersionUID = 1L;
+
+	protected HashMap<String, Object> nameMap = new HashMap<String, Object>();
+
+	protected HashMap<Widget, HashMap<Object, HashMap<String, IObservable>>> bindingData = new HashMap<Widget, HashMap<Object, HashMap<String, IObservable>>>();
+
+	protected Widget host;
+
+	private final ScopeKeeper parent;
+
+	private ChangeListenerSupport changeListenerSupport = new ChangeListenerSupport();
+
+	class ChangeListenerSupport implements IChangeListener {
+		private List<IChangeListener> changeListeners = Collections.EMPTY_LIST;
+
+		public void handleChange(ChangeEvent event) {
+			for (IChangeListener changeListener : changeListeners) {
+				changeListener.handleChange(event);
+			}
+
+			// notify to parent as well.
+			Widget parent = UserData.getTreeParent(host);
+			ScopeKeeper scopeKeeper = UserData.findScopeKeeper(parent);
+			if (scopeKeeper != null) {
+				scopeKeeper.fireChangeListener(event);
+			}
+		}
+
+		public boolean addChangeListener(IChangeListener listener) {
+			if (changeListeners.contains(listener)) {
+				return false;
+			}
+			if (changeListeners == Collections.EMPTY_LIST) {
+				changeListeners = new ArrayList<IChangeListener>();
+			}
+			changeListeners.add(listener);
+			return true;
+		}
+
+		public void removeChangeListener(IChangeListener listener) {
+			changeListeners.remove(listener);
+		}
+
+		public void dispose() {
+			changeListeners = null;
+		}
+	}
+
+	public ScopeKeeper(ScopeKeeper parent, Widget host) {
+		super();
+		this.parent = parent;
+		host.addDisposeListener(this);
+		this.host = host;
+	}
+
+	public void widgetDisposed(DisposeEvent e) {
+		Widget source = e.widget;
+		if (source == host) {
+			for (HashMap<Object, HashMap<String, IObservable>> hashMap : bindingData
+					.values()) {
+				for (HashMap<String, IObservable> map : hashMap.values()) {
+					for (IObservable observable : map.values()) {
+						observable.removeChangeListener(changeListenerSupport);
+					}
+				}
+			}
+			changeListenerSupport.dispose();
+		}
+		HashMap<Object, HashMap<String, IObservable>> hashMap = bindingData
+				.get(source);
+		if (hashMap != null) {
+			for (HashMap<String, IObservable> map : hashMap.values()) {
+				for (IObservable observable : map.values()) {
+					observable.removeChangeListener(changeListenerSupport);
+				}
+			}
+			bindingData.remove(source);
+		}
+	}
+
+	public void addNamedObject(String name, Object object) {
+		nameMap.put(name, object);
+	}
+
+	public Widget getHost() {
+		return host;
+	}
+
+	public Object getNamedObject(String name) {
+		Object object = nameMap.get(name);
+		if (object != null)
+			return object;
+		return parent == null ? null : parent.getNamedObject(name);
+	}
+
+	public Collection<String> names() {
+		return nameMap.keySet();
+	}
+
+	public boolean containsName(String name) {
+		if (nameMap.containsKey(name))
+			return true;
+		return parent == null ? false : parent.containsName(name);
+	}
+
+	/**
+	 * Register a change listener. The second call to register a same listener
+	 * has no effect.
+	 * 
+	 * @param listener
+	 */
+	public boolean addChangeListener(IChangeListener listener) {
+		return changeListenerSupport.addChangeListener(listener);
+	}
+
+	/**
+	 * Remove the registered change listener
+	 * 
+	 * @param listener
+	 */
+	public void removeChangeListener(IChangeListener listener) {
+		changeListenerSupport.removeChangeListener(listener);
+	}
+
+	public void fireChangeListener(ChangeEvent event) {
+		changeListenerSupport.handleChange(event);
+	}
+
+	void addObservableValue(Widget widget, Object data, String property,
+			IObservable value) {
+		if (widget == null) {
+			widget = host;
+		} else {
+			widget.addDisposeListener(this);
+		}
+
+		HashMap<Object, HashMap<String, IObservable>> widgetData = bindingData
+				.get(widget);
+		if (widgetData == null) {
+			widgetData = new HashMap<Object, HashMap<String, IObservable>>();
+			bindingData.put(widget, widgetData);
+		}
+
+		HashMap<String, IObservable> objectData = widgetData.get(data);
+		if (objectData == null) {
+			objectData = new HashMap<String, IObservable>();
+			widgetData.put(data, objectData);
+		}
+		if (objectData.containsKey(property)) {
+			throw new IllegalStateException();
+		}
+		objectData.put(property, value);
+
+		value.addChangeListener(changeListenerSupport);
+	}
+
+	IObservableValue getObservableValue(Widget control, Object data,
+			String property) {
+		IObservable observable = getObservable(control, data, property);
+		if (observable instanceof IObservableValue) {
+			return (IObservableValue) observable;
+		}
+
+		return null;
+	}
+
+	IObservableList getObservableList(Widget control, Object data,
+			String property) {
+		IObservable observable = getObservable(control, data, property);
+		if (observable instanceof IObservableList) {
+			return (IObservableList) observable;
+		}
+		return null;
+	}
+
+	IObservableSet getObservableSet(Widget control, Object data, String property) {
+		IObservable observable = getObservable(control, data, property);
+		if (observable instanceof IObservableSet) {
+			return (IObservableSet) observable;
+		}
+		return null;
+	}
+
+	IObservable localGetObservable(Widget control, Object data, String property) {
+		// find locally
+		for (HashMap<Object, HashMap<String, IObservable>> widgetData : bindingData
+				.values()) {
+			if (widgetData != null) {
+				HashMap<String, IObservable> objectData = widgetData.get(data);
+				if (objectData != null) {
+					IObservable observable = objectData.get(property);
+					if (observable != null) {
+						return observable;
+					}
+				}
+			}
+		}
+		return null;
+	}
+
+	IObservable getObservable(Widget control, Object data, String property) {
+		// find locally
+		IObservable observable = localGetObservable(control, data, property);
+		if (observable != null) {
+			return observable;
+		}
+
+		// find in other ScopeKeeper and then keep it in this ScopeKeeper.
+		Widget rootWidget = UserData.findRootWidget(control);
+		observable = deepFindObservable(rootWidget, data, property);
+		if (observable != null) {
+			addObservableValue(control, data, property, observable);
+		}
+		return observable;
+	}
+
+	static IObservable deepFindObservable(Widget control, Object data,
+			String property) {
+		ScopeKeeper scopeKeeper = UserData.getLocalScopeKeeper(control);
+		if (scopeKeeper != null) {
+			IObservable observable = scopeKeeper.localGetObservable(control,
+					data, property);
+			if (observable != null) {
+				return observable;
+			}
+		}
+		if (control instanceof Composite) {
+			Composite composite = (Composite) control;
+			for (Control child : composite.getChildren()) {
+				IObservable observable = deepFindObservable(child, data,
+						property);
+				if (observable != null) {
+					return observable;
+				}
+			}
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/ScopeManager.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/ScopeManager.java
new file mode 100644
index 0000000..78cfa9e
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/ScopeManager.java
@@ -0,0 +1,557 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.internal.core;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.core.databinding.observable.IObservable;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.list.WritableList;
+import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
+import org.eclipse.core.databinding.observable.set.IObservableSet;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.IDataProvider;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.core.IBinding;
+import org.eclipse.xwt.databinding.EventPropertyObservableValue;
+import org.eclipse.xwt.databinding.JFaceXWTDataBinding;
+import org.eclipse.xwt.databinding.ListToArrayObservableValue;
+import org.eclipse.xwt.databinding.TypedViewerObservableValueDecorator;
+import org.eclipse.xwt.dataproviders.IObjectDataProvider;
+import org.eclipse.xwt.internal.utils.UserData;
+import org.eclipse.xwt.javabean.metadata.properties.EventProperty;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.xwt.metadata.ModelUtils;
+
+public class ScopeManager {
+	public static final int AUTO = 0;
+	public static final int VALUE = 1;
+	public static final int SET = 2;
+	public static final int LIST = 3;
+	public static final int COLLECTION = 4;
+
+	public static IObservableValue observableValue(Object control,
+			Object value, String fullPath,
+			UpdateSourceTrigger updateSourceTrigger) {
+		try {
+			return observeValue(control, value, fullPath, updateSourceTrigger);
+		} catch (Exception e) {
+		}
+		return null;
+	}
+
+	public static IObservableList observableList(Object control, Object value,
+			String fullPath, UpdateSourceTrigger updateSourceTrigger) {
+		try {
+			return (IObservableList) observe(control, value, fullPath,
+					updateSourceTrigger, ScopeManager.LIST);
+		} catch (Exception e) {
+		}
+		return null;
+	}
+
+	public static IObservableSet observableSet(Object control, Object value,
+			String fullPath, UpdateSourceTrigger updateSourceTrigger) {
+		try {
+			return (IObservableSet) observe(control, value, fullPath,
+					updateSourceTrigger, ScopeManager.SET);
+		} catch (Exception e) {
+		}
+		return null;
+	}
+
+	/**
+	 * Reserved only for the calling from XWTLoader
+	 * 
+	 * @param context
+	 * @param data
+	 * @param propertyName
+	 * @return
+	 */
+	public static IObservableValue findObservableValue(Object context,
+			Object control, Object data, String propertyName) {
+		ScopeKeeper scope = UserData.findScopeKeeper(context);
+		if (control == null) {
+			control = context;
+		}
+		return scope.getObservableValue(UserData.getWidget(control), data,
+				propertyName);
+	}
+
+	/**
+	 * Reserved only for the calling from XWTLoader
+	 * 
+	 * @param context
+	 * @param data
+	 * @param propertyName
+	 * @return
+	 */
+	public static IObservableSet findObservableSet(Object context,
+			Object control, Object data, String propertyName) {
+		ScopeKeeper scope = UserData.findScopeKeeper(context);
+		if (control == null) {
+			control = context;
+		}
+		return scope.getObservableSet(UserData.getWidget(control), data,
+				propertyName);
+	}
+
+	/**
+	 * Reserved only for the calling from XWTLoader
+	 * 
+	 * @param context
+	 * @param data
+	 * @param propertyName
+	 * @return
+	 */
+	public static IObservableList findObservableList(Object context,
+			Object control, Object data, String propertyName) {
+		ScopeKeeper scope = UserData.findScopeKeeper(context);
+		if (control == null) {
+			control = context;
+		}
+		return scope.getObservableList(UserData.getWidget(control), data,
+				propertyName);
+	}
+
+	static class ObservableValueBuilder {
+		private Widget widget;
+		private Object control;
+		private Object value;
+		private Object elementType;
+		private BindingExpressionPath expressionPath;
+		private UpdateSourceTrigger updateSourceTrigger;
+		private IDataProvider dataProvider;
+		private String currentPath;
+		private int observeKind = VALUE;
+
+		public ObservableValueBuilder(Object control, Object elementType,
+				BindingExpressionPath expressionPath,
+				UpdateSourceTrigger updateSourceTrigger, int observeKind) {
+			this.control = control;
+			this.expressionPath = expressionPath;
+			this.elementType = elementType;
+			this.updateSourceTrigger = updateSourceTrigger;
+			this.observeKind = observeKind;
+		}
+
+		public IObservable observe(Object targetValue) {
+			this.value = targetValue;
+			widget = UserData.getWidget(control);
+			ScopeKeeper scopeManager = UserData.findScopeKeeper(widget);
+			if (scopeManager == null) {
+				return null;
+			}
+
+			if (expressionPath.getFullPath() == null) {
+				if (targetValue instanceof IObservable) {
+					return (IObservable) targetValue;
+				}
+			}
+
+			IObservable observable = scopeManager.getObservable(widget, value,
+					expressionPath.getStripedPath());
+			if (observable != null) {
+				while (observable instanceof IObservableValue
+						&& ((IObservableValue) observable).getValue() instanceof IObservable) {
+					observable = (IObservable) ((IObservableValue) observable)
+							.getValue();
+				}
+				return observable;
+			}
+			dataProvider = XWT.findDataProvider(value);
+			Object dataValue = value;
+			if (value instanceof IDataProvider) {
+				IDataProvider dataProvider = (IDataProvider) value;
+				dataValue = dataProvider.getData(null);
+			}
+			currentPath = null;
+			Object type = elementType;
+			String[] segments = expressionPath.getSegments();
+			if (segments == null || segments.length == 0) {
+				String segment = ModelUtils
+						.normalizePropertyName(expressionPath.getFullPath());
+				observable = resolveObservablevalue(scopeManager, dataValue,
+						type, segment);
+			} else {
+				if (observeKind == COLLECTION) {
+					// if the first is viewers' property
+					if (!JFaceXWTDataBinding.isViewerProperty(segments[0])) {
+						int kindValue = VALUE;
+						Object targetValueType = dataValue;
+						if (dataValue instanceof IObservableValue) {
+							targetValueType = ((IObservableValue) dataValue).getValueType();
+						}
+						Object propertyType = dataProvider.getModelService().toModelPropertyType(targetValueType, segments[0]);
+						if (propertyType instanceof Class<?>) {
+							Class<?> propertyTypeClass = (Class<?>) propertyType;
+							if (Collection.class.isAssignableFrom(propertyTypeClass) || propertyTypeClass.isArray()) {
+								kindValue = COLLECTION;
+							}
+						}
+						observeKind = kindValue;
+					}
+				}
+				int size = segments.length;
+				int lastObserveKind = observeKind;
+				observeKind = VALUE;
+				for (int i = 0; i < size; i++) {
+					String segment = segments[i];
+					if (i == (size - 1)) {
+						observeKind = lastObserveKind;
+					}
+					observable = resolveObservablevalue(scopeManager,
+							dataValue, type, segment);
+					// Hasan: As long as this is already an IObservableValue we
+					// should look deep into the chain
+					while (observable instanceof IObservableValue
+							&& ((IObservableValue) observable).getValue() instanceof IObservable) {
+						observable = (IObservable) ((IObservableValue) observable)
+								.getValue();
+					}
+					dataValue = observable;
+					if (i != size - 1) {
+						type = dataProvider.getModelService().toModelType(
+								dataValue);
+						if (type != null) {
+							dataProvider = XWT.findDataProvider(type);
+						}
+					}
+				}
+			}
+			return observable;
+		}
+
+		private IObservable resolveObservablevalue(ScopeKeeper scopeManager,
+				Object dataValue, Object type, String segment) {
+			if (!BindingExpressionPath.isEmptyPath(segment)) {
+				int length = segment.length();
+				if (length > 1 && segment.charAt(0) == '('
+						&& segment.charAt(length - 1) == ')') {
+					// It is class
+					String path = segment.substring(1, segment.length() - 1);
+					int index = path.lastIndexOf('.');
+					if (index != -1) {
+						String className = path.substring(0, index);
+						segment = path.substring(index + 1);
+						type = dataProvider.getModelService().loadModelType(
+								className);
+						if (type == null) {
+							type = dataProvider.getModelService()
+									.loadModelType(path);
+							if (type != null) {
+								segment = null;
+							}
+						}
+						if (type == null) {
+							throw new XWTException("Class " + className
+									+ " not found");
+						}
+						dataProvider = XWT.findDataProvider(type);
+					}
+				}
+			}
+			if (currentPath == null) {
+				currentPath = segment;
+			} else if (segment != null) {
+				currentPath = currentPath + '.' + segment;
+			}
+
+			IObservable segmentValue = scopeManager.getObservableValue(widget,
+					value, currentPath);
+			try {
+				if (segmentValue == null) {
+					if (segment != null) {
+						segmentValue = createValueProperty(dataValue, segment,
+								type);
+						if (segmentValue == null) {
+							throw new XWTException(" Property " + segment
+									+ " is not found in "
+									+ expressionPath.getFullPath());
+							// maybe to
+							// raise an
+							// exception
+						}
+						scopeManager.addObservableValue(widget, value,
+								currentPath, segmentValue);
+					} else  if (dataValue instanceof IObservable){
+						segmentValue = (IObservable)dataValue;
+					}
+				}
+				else if (segment == null && type != null) {
+					if (segmentValue instanceof TypedViewerObservableValueDecorator) {
+						TypedViewerObservableValueDecorator typedViewerObservableValueDecorator = (TypedViewerObservableValueDecorator) segmentValue;
+						typedViewerObservableValueDecorator.setElementType(type);
+					}
+				}
+			} catch (IllegalArgumentException e) {
+				// Property is not found
+				String message = e.getMessage();
+				if (!message.startsWith("Could not find property with name")) {
+					throw e;
+				}
+				throw new XWTException(" Property " + segment
+						+ " is not found in " + expressionPath.getFullPath()); // maybe
+																				// to
+																				// raise
+																				// an
+				// exception
+			}
+			return segmentValue;
+		}
+
+		protected IObservable createValueProperty(Object object,
+				String propertyName, Object targetType) {
+			IObservable observable = null;
+			Object type = null;
+			if (targetType == null) {
+				type = dataProvider.getModelService().toModelType(object);
+			} else {
+				type = targetType;
+			}
+
+			if (UserData.getWidget(object) != null) {
+				observable = JFaceXWTDataBinding.observeWidget(object,
+						propertyName, updateSourceTrigger, observeKind);
+			}
+
+			if (observable == null
+					&& dataProvider instanceof IObjectDataProvider) {
+				IMetaclass mateclass = XWT.getMetaclass(type);
+				IProperty property = mateclass.findProperty(propertyName);
+				if (property instanceof EventProperty) {
+					observable = new EventPropertyObservableValue(object,
+							(EventProperty) property);
+				}
+			}
+
+			if (observable != null) {
+				return observable;
+			}
+			observable = dataProvider.observe(object, propertyName, type,
+					observeKind);
+			if (observable instanceof IObservableValue) {
+				IObservableValue activeValue = (IObservableValue) observable;
+
+				Object valueType = activeValue.getValueType();
+				if (valueType instanceof Class<?>) {
+					// TODO maybe need to moved in IDataProvider
+					Class<?> classType = (Class<?>) valueType;
+					if (valueType != null && classType.isArray()) {
+						// Create a IObserableValue to handle the connection
+						// between
+						// Array and List
+
+						Object values = dataProvider.getData(propertyName);
+						ArrayList<Object> array = new ArrayList<Object>();
+						if (values != null) {
+							for (Object value : (Object[]) values) {
+								array.add(value);
+							}
+						}
+						WritableList writableList = new WritableList(XWT
+								.getRealm(), array, classType
+								.getComponentType());
+
+						return new ListToArrayObservableValue(writableList,
+								activeValue);
+					}
+				}
+			}
+			return observable;
+		}
+	}
+
+	static class ObservableFactory extends ObservableValueBuilder implements
+			IObservableFactory {
+
+		public ObservableFactory(Object control,
+				BindingExpressionPath expressionPath,
+				UpdateSourceTrigger updateSourceTrigger) {
+			super(control, null, expressionPath, updateSourceTrigger, AUTO);
+		}
+
+		public IObservable createObservable(Object target) {
+			return observe(target);
+		}
+	}
+
+	public static IObservableValue observeValue(Object control, Object value,
+			String fullPath, UpdateSourceTrigger updateSourceTrigger) {
+		return observeValue(control, value,
+				new BindingExpressionPath(fullPath), updateSourceTrigger);
+	}
+
+	public static IObservableValue observeValue(Object control, Object value,
+			BindingExpressionPath expressionPath,
+			UpdateSourceTrigger updateSourceTrigger) {
+		if (value == null) {
+			value = control;
+		}
+		ObservableValueBuilder builder = new ObservableValueBuilder(control,
+				null, expressionPath, updateSourceTrigger, ScopeManager.VALUE);
+		return (IObservableValue) builder.observe(value);
+	}
+
+	public static IObservable observe(Object control, Object value,
+			BindingExpressionPath expressionPath,
+			UpdateSourceTrigger updateSourceTrigger) {
+		return observe(control, value, expressionPath, updateSourceTrigger,
+				AUTO);
+	}
+
+	public static IObservableFactory observableFactory(Object control,
+			BindingExpressionPath expressionPath,
+			UpdateSourceTrigger updateSourceTrigger) {
+		return new ObservableFactory(control, expressionPath,
+				updateSourceTrigger);
+	}
+	
+	public static IObservable observe(Object control, Object value,
+			String fullPath, UpdateSourceTrigger updateSourceTrigger,
+			int observeKind) {
+		return observe(control, value, new BindingExpressionPath(fullPath),
+				updateSourceTrigger, observeKind);
+	}
+
+	public static IObservable observe(Object control, Object value,
+			BindingExpressionPath expressionPath,
+			UpdateSourceTrigger updateSourceTrigger, int observeKind) {
+		if (value == null) {
+			value = control;
+		}
+		ObservableValueBuilder builder = new ObservableValueBuilder(control,
+				null, expressionPath, updateSourceTrigger, observeKind);
+		return builder.observe(value);
+	}
+
+	public static IObservableValue observeValue(Object control, Object value,
+			Class<?> type, BindingExpressionPath expressionPath,
+			UpdateSourceTrigger updateSourceTrigger) {
+		ObservableValueBuilder builder = new ObservableValueBuilder(control,
+				type, expressionPath, updateSourceTrigger, ScopeManager.VALUE);
+		return (IObservableValue) builder.observe(value);
+	}
+
+	public static IValueProperty createValueProperty(Object control,
+			Object type, BindingExpressionPath expressionPath) {
+		IValueProperty valueProperty = null;
+
+		String[] segments = expressionPath.getSegments();
+		if (segments == null || segments.length == 0) {
+			String segment = expressionPath.getFullPath();
+			valueProperty = doCreateValueProperty(type, segment);
+		} else {
+			for (String segment : segments) {
+				IValueProperty segmentValueProperty = doCreateValueProperty(
+						type, segment);
+				if (valueProperty == null) {
+					valueProperty = segmentValueProperty;
+				} else {
+					valueProperty = valueProperty.value(segmentValueProperty);
+				}
+				type = valueProperty.getValueType();
+			}
+		}
+
+		return valueProperty;
+	}
+
+	protected static IValueProperty doCreateValueProperty(Object type,
+			String fullPath) {
+		IDataProvider dataProvider = XWT.findDataProvider(type);
+		return dataProvider.createValueProperty(type, fullPath);
+	}
+
+	/**
+	 * Reserved only for the calling from XWTLoader
+	 * 
+	 * @param context
+	 * @param data
+	 * @param propertyName
+	 * @return
+	 */
+	public static boolean isPropertyReadOnly(IDataProvider dataProvider,
+			BindingExpressionPath expressionPath) {
+		String[] segments = expressionPath.getSegments();
+		if (segments == null || segments.length == 0) {
+			String segment = expressionPath.getFullPath();
+			return dataProvider.isPropertyReadOnly(segment);
+		} else {
+			Object type = null;
+
+			int last = segments.length - 1;
+			for (int i = 0; i < last; i++) {
+				String segment = segments[i];
+				int length = segment.length();
+				if (length > 1 && segment.charAt(0) == '('
+						&& segment.charAt(length - 1) == ')') {
+					// It is class
+					String path = segment.substring(1, segment.length() - 1);
+					int index = path.lastIndexOf('.');
+					if (index != -1) {
+						String className = path.substring(0, index);
+						segment = path.substring(index + 1);
+						type = dataProvider.getModelService().loadModelType(
+								className);
+						if (type == null) {
+							throw new XWTException("Class " + className
+									+ " not found");
+						}
+						dataProvider = XWT.findDataProvider(type);
+					}
+				}
+
+				type = dataProvider.getDataType(segment);
+
+				if (type != null) {
+					dataProvider = XWT.findDataProvider(type);
+					if (dataProvider == null) {
+						throw new XWTException(
+								"Data probider is not found for the type "
+										+ type.toString());
+					}
+				} else {
+					throw new XWTException(
+							"Type is not found for the property " + segment);
+				}
+			}
+			String segment = segments[last];
+
+			int length = segment.length();
+			if (length > 1 && segment.charAt(0) == '('
+					&& segment.charAt(length - 1) == ')') {
+				// It is class
+				String path = segment.substring(1, segment.length() - 1);
+				int index = path.lastIndexOf('.');
+				if (index != -1) {
+					String className = path.substring(0, index);
+					segment = path.substring(index + 1);
+					type = dataProvider.getModelService().loadModelType(
+							className);
+					if (type == null) {
+						throw new XWTException("Class " + className
+								+ " not found");
+					}
+					dataProvider = XWT.findDataProvider(type);
+				}
+			}
+			return dataProvider.isPropertyReadOnly(segment);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/UIResource.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/UIResource.java
new file mode 100644
index 0000000..54a7586
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/UIResource.java
@@ -0,0 +1,24 @@
+package org.eclipse.xwt.internal.core;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IUIResource;
+import org.eclipse.xwt.internal.xml.Element;
+
+public class UIResource implements IUIResource {
+	protected Element content;
+	protected URL url;
+	
+	public UIResource(URL url, Element content) {
+		this.content = content;
+		this.url = url;
+	}
+
+	public Element getContent() {
+		return content;
+	}
+
+	public URL getURL() {
+		return url;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/UpdateSourceTrigger.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/UpdateSourceTrigger.java
new file mode 100644
index 0000000..3f205f1
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/core/UpdateSourceTrigger.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.internal.core;
+
+/**
+ * <p>
+ * Default
+ * </p>
+ * <p>
+ * The default UpdateSourceTrigger value of the binding target property. The
+ * default value for most dependency properties is PropertyChanged, while the
+ * Text property has a default value of LostFocus.
+ * </p>
+ * <p>
+ * A programmatic way to determine the default UpdateSourceTrigger value of a
+ * dependency property is to get the property metadata of the property using
+ * GetMetadata and then check the value of the DefaultUpdateSourceTrigger
+ * property.
+ * </p>
+ * <p/>
+ * <p>
+ * PropertyChanged
+ * </p>
+ * <p>
+ * Updates the binding source immediately whenever the binding target property
+ * changes.
+ * </p>
+ * <p/>
+ * <p>
+ * LostFocus
+ * </p>
+ * <p>
+ * Updates the binding source whenever the binding target element loses focus.
+ * </p>
+ * 
+ * @author yyang
+ * 
+ */
+public enum UpdateSourceTrigger {
+	Default, PropertyChanged, LostFocus;
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/databinding/menuitem/AbstractMenuItemObservableValue.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/databinding/menuitem/AbstractMenuItemObservableValue.java
new file mode 100644
index 0000000..32a50bc
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/databinding/menuitem/AbstractMenuItemObservableValue.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.internal.databinding.menuitem;
+
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
+import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.widgets.MenuItem;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public abstract class AbstractMenuItemObservableValue extends AbstractObservableValue {
+	private final MenuItem menuItem;
+
+	/**
+	 * Standard constructor for a MenuItem ObservableValue. Makes sure that the observable gets disposed when the MenuItem is disposed.
+	 * 
+	 * @param widget
+	 */
+	protected AbstractMenuItemObservableValue(MenuItem menuItem) {
+		this(SWTObservables.getRealm(menuItem.getDisplay()), menuItem);
+	}
+
+	/**
+	 * Constructor that allows for the setting of the realm. Makes sure that the observable gets disposed when the MenuItem is disposed.
+	 * 
+	 * @param realm
+	 * @param widget
+	 * @since 1.2
+	 */
+	protected AbstractMenuItemObservableValue(Realm realm, MenuItem menuItem) {
+		super(realm);
+		this.menuItem = menuItem;
+		menuItem.addDisposeListener(disposeListener);
+	}
+
+	private DisposeListener disposeListener = new DisposeListener() {
+		@Override
+		public void widgetDisposed(DisposeEvent e) {
+			AbstractMenuItemObservableValue.this.dispose();
+		}
+	};
+
+	/**
+	 * @return Returns the MenuItem.
+	 */
+	public MenuItem getMenuItem() {
+		return menuItem;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/databinding/menuitem/MenuItemEnabledObservableValue.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/databinding/menuitem/MenuItemEnabledObservableValue.java
new file mode 100644
index 0000000..0263ac9
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/databinding/menuitem/MenuItemEnabledObservableValue.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.internal.databinding.menuitem;
+
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.swt.widgets.MenuItem;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class MenuItemEnabledObservableValue extends AbstractMenuItemObservableValue {
+
+	public MenuItemEnabledObservableValue(MenuItem menuItem) {
+		super(menuItem);
+	}
+
+	public MenuItemEnabledObservableValue(Realm realm, MenuItem menuItem) {
+		super(realm, menuItem);
+	}
+
+	@Override
+	protected Object doGetValue() {
+		return getMenuItem().getEnabled();
+	}
+
+	@Override
+	public Object getValueType() {
+		return Boolean.class;
+	}
+
+	@Override
+	protected void doSetValue(Object value) {
+		getMenuItem().setEnabled((Boolean) value);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/databinding/menuitem/MenuItemSelectionObservableValue.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/databinding/menuitem/MenuItemSelectionObservableValue.java
new file mode 100644
index 0000000..00c0d99
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/databinding/menuitem/MenuItemSelectionObservableValue.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.internal.databinding.menuitem;
+
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.swt.widgets.MenuItem;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class MenuItemSelectionObservableValue extends AbstractMenuItemObservableValue {
+
+	public MenuItemSelectionObservableValue(MenuItem menuItem) {
+		super(menuItem);
+	}
+
+	public MenuItemSelectionObservableValue(Realm realm, MenuItem menuItem) {
+		super(realm, menuItem);
+	}
+
+	@Override
+	protected Object doGetValue() {
+		return getMenuItem().getSelection();
+	}
+
+	@Override
+	public Object getValueType() {
+		return Boolean.class;
+	}
+
+	@Override
+	protected void doSetValue(Object value) {
+		getMenuItem().setSelection((Boolean) value);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/ClassLoaderUtil.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/ClassLoaderUtil.java
new file mode 100644
index 0000000..2ce8e1f
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/ClassLoaderUtil.java
@@ -0,0 +1,143 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.internal.utils;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.ILoadingContext;
+import org.eclipse.xwt.internal.xml.DocumentObject;
+import org.eclipse.xwt.internal.xml.Element;
+
+public class ClassLoaderUtil {
+	static final String[] DefaultPackages = new String[] {
+	/*
+	 * UIElement.class.getPackage().getName(), Validation.class.getPackage().getName(), Timeline.class.getPackage().getName(), Binding.class.getPackage().getName(),
+	 */};
+
+	static public Class<?> loadClass(ILoadingContext loadingContext, String className) {
+		Class<?> type = doLoadClass(loadingContext, className);
+		if (type != null) {
+			return type;
+		}
+		int index = className.indexOf('.');
+		if (index == -1) {
+			for (String packageName : DefaultPackages) {
+				type = doLoadClass(loadingContext, packageName + "." + className);
+				if (type != null) {
+					return type;
+				}
+			}
+		}
+		return null;
+	}
+
+	private static Class<?> doLoadClass(ILoadingContext loadingContext, String className) {
+		Class<?> type = loadingContext.loadClass(className);
+		if (type != null) {
+			return type;
+		}
+		try {
+			return Class.forName(className);
+		} catch (ClassNotFoundException e1) {
+		}
+		return null;
+	}
+
+	static public Object loadMember(ILoadingContext loadingContext, String className, String memberName, boolean raiseException) {
+		Class<?> type = loadClass(loadingContext, className);
+		return loadMember(loadingContext, type, memberName, raiseException);
+	}
+
+	static public Object loadMember(ILoadingContext loadingContext, Class<?> type, String memberName, boolean raiseException) {
+
+		try {
+			Field field = type.getField(memberName);
+			if (raiseException && !Modifier.isStatic(field.getModifiers())) {
+				throw new IllegalStateException(type.getName() + "." + memberName + " is not static member.");
+			}
+			return field.get(null);
+		} catch (Exception e) {
+			if (e instanceof NoSuchFieldException) {
+				Method method = ObjectUtil.findGetter(type, memberName, null);
+				if (raiseException && (method == null || !Modifier.isStatic(method.getModifiers()))) {
+					throw new IllegalStateException(type.getName() + "." + memberName + " is not static member.");
+				}
+				try {
+					return method.invoke(null);
+				} catch (Exception exception) {
+					e = exception;
+				}
+			}
+			if (raiseException) {
+				e.printStackTrace();
+				throw new IllegalStateException(e);
+			}
+		}
+		return null;
+	}
+
+	static public Object loadStaticMember(ILoadingContext loadingContext, Element element) {
+		String name = element.getName();
+		String namespace = element.getNamespace();
+		Object value = doLoadMember(loadingContext, name, namespace);
+		if (value != null) {
+			return value;
+		}
+		String content = element.getContent();
+		if (content == null) {
+			DocumentObject member = element.getAttribute(IConstants.XWT_NAMESPACE, IConstants.XAML_X_STATIC_MEMBER);
+			if (member == null) {
+				member = element;
+			}
+			if (member != null) {
+				content = member.getContent();
+				if (content == null) {
+					for (DocumentObject documentObject : member.getChildren()) {
+						String ns = documentObject.getNamespace();
+						String n = documentObject.getName();
+						return doLoadMember(loadingContext, n, ns);
+					}
+				}
+			}
+		} else {
+			if (IConstants.XAML_X_STATIC.equals(name) && IConstants.XWT_X_NAMESPACE.equals(namespace)) {
+				namespace = IConstants.XWT_NAMESPACE;
+				return doLoadMember(loadingContext, content, namespace);
+			}
+		}
+		// TODO
+		return null;
+	}
+
+	protected static Object doLoadMember(ILoadingContext loadingContext, String name, String namespace) {
+		int lastIndex = name.lastIndexOf('.');
+		if (lastIndex == -1) {
+			throw new IllegalStateException("Separator '.' is missing in:" + name);
+		}
+		String className = name.substring(0, lastIndex);
+		String memberName = name.substring(lastIndex + 1);
+
+		try {
+			Class type = NamespaceHelper.loadCLRClass(loadingContext, className, namespace);
+			if (type != null) {
+				return ClassLoaderUtil.loadMember(loadingContext, type, memberName, true);
+			}
+		} catch (ClassNotFoundException e) {
+			throw new RuntimeException(e);
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/DocumentObjectSorter.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/DocumentObjectSorter.java
new file mode 100644
index 0000000..9022bb4
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/DocumentObjectSorter.java
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.internal.utils;
+
+import java.io.Serializable;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.xwt.internal.xml.Attribute;
+import org.eclipse.xwt.internal.xml.DocumentObject;
+import org.eclipse.xwt.internal.xml.Element;
+
+public class DocumentObjectSorter {
+
+	public static List<DocumentObject> sortWithAttr(DocumentObject[] sourceArray, String attrName) {
+		return sortWithAttr(sourceArray, new AttrComparator(attrName), attrName);
+	}
+
+	public static List<DocumentObject> sortWithAttr(DocumentObject[] sourceArray, Comparator<Element> comparator, String attrName) {
+		List<DocumentObject> columnsList = new LinkedList<>();
+		for (DocumentObject column : sourceArray) {
+			Element columnElement = (Element) column;
+			Attribute indexAttr = columnElement.getAttribute(attrName);
+			if (indexAttr == null) {
+				columnsList.add(column);
+			}
+		}
+
+		List<Element> tempList = new LinkedList<>();
+		for (DocumentObject column : sourceArray) {
+			Element columnElement = (Element) column;
+			Attribute indexAttr = columnElement.getAttribute(attrName);
+			if (indexAttr != null) {
+				tempList.add(columnElement);
+			}
+		}
+
+		if (comparator == null) {
+			comparator = new AttrComparator(attrName);
+		}
+		Collections.sort(tempList, comparator);
+
+		for (Element columnElement : tempList) {
+			Attribute indexAttr = columnElement.getAttribute(attrName);
+			try {
+				int index = Integer.parseInt(indexAttr.getContent());
+				columnsList.add(index, columnElement);
+			} catch (Exception e) {
+				columnsList.add(columnsList.size(), columnElement);
+			}
+		}
+
+		return columnsList;
+	}
+
+	private static class AttrComparator implements Comparator<Element>, Serializable {
+		private String attrName;
+
+		public AttrComparator(String attrName) {
+			this.attrName = attrName;
+		}
+
+		@Override
+		public int compare(Element e1, Element e2) {
+			Attribute attr1 = e1.getAttribute(attrName);
+			Attribute attr2 = e2.getAttribute(attrName);
+			String compare1 = attr1.getContent();
+			String compare2 = attr2.getContent();
+			if (compare1 == null || compare2 == null) {
+				return 0;
+			}
+			try {
+				int index1 = Integer.parseInt(compare1);
+				int index2 = Integer.parseInt(compare2);
+				return index1 > index2 ? 1 : -1;
+			} catch (Exception e) {
+				return compare1.compareTo(compare2);
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/LoggerManager.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/LoggerManager.java
new file mode 100644
index 0000000..723bdbe
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/LoggerManager.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.xwt.internal.utils;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ * Logger Manager.
+ * 
+ * @author jliu
+ */
+public class LoggerManager {
+
+	private static Logger logger = Logger.getLogger("org.eclipse.xwt.utils.LoggerManager");
+
+	private LoggerManager() {
+	}
+
+	public static void log(Throwable e, String message) {
+		logger.log(Level.SEVERE, message, e);
+	}
+
+	public static void log(Throwable e) {
+		log(e, null);
+	}
+
+	public static void log(String message) {
+		log(null, message);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/NamespaceHelper.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/NamespaceHelper.java
new file mode 100644
index 0000000..ff66678
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/NamespaceHelper.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.internal.utils;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.ILoadingContext;
+
+public class NamespaceHelper {
+	static public Class<?> loadCLRClass(ILoadingContext loadingContext, String name, String namespace) throws ClassNotFoundException {
+		// xmlns:custom="clr-namespace:SDKSample;assembly=SDKSampleLibrary"
+		if (namespace.startsWith(IConstants.XAML_CLR_NAMESPACE_PROTO)) {
+			String contentSegment = namespace.substring(IConstants.XAML_CLR_NAMESPACE_PROTO.length());
+			String packageName = contentSegment;
+			String assembly = null;
+			int index = contentSegment.indexOf(";");
+			if (index != -1) {
+				packageName = contentSegment.substring(0, index);
+				contentSegment = contentSegment.substring(index + 1);
+				if (contentSegment.startsWith(IConstants.XAML_CLR_ASSEMBLY)) {
+					assembly = contentSegment.substring(IConstants.XAML_CLR_ASSEMBLY.length());
+				} else {
+					throw new IllegalStateException(IConstants.XAML_CLR_ASSEMBLY);
+				}
+			}
+			if (assembly != null) {
+				// TODO Load jar using URLClassLoader
+			}
+			if (packageName != null && packageName.length() > 0) {
+				name = packageName + "." + name;
+			}
+			return ClassLoaderUtil.loadClass(loadingContext, name);
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/ObjectUtil.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/ObjectUtil.java
new file mode 100644
index 0000000..f95ca0e
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/ObjectUtil.java
@@ -0,0 +1,408 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.internal.utils;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.xwt.XWT;
+
+/**
+ * Object Tools.
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ * @version 1.0
+ */
+public class ObjectUtil {
+
+	public static final Class<?>[] EMPTY = new Class[0];
+
+	private ObjectUtil() {
+	}
+	
+	public static Class<?> normalizedType(Class<?> type) {
+		if (type == int.class) {
+			return Integer.class;
+		}
+		if (type == double.class) {
+			return Double.class;
+		}
+		if (type == float.class) {
+			return Float.class;
+		}
+		if (type == boolean.class) {
+			return Boolean.class;
+		}
+		if (type == char.class) {
+			return Character.class;
+		}
+		if (type == byte.class) {
+			return Byte.class;
+		}
+		return type;
+	}
+
+	public static boolean isAssignableFrom(Class<?> source, Class<?> target) {
+		if (normalizedType(source) == normalizedType(target)) {
+			return true;
+		}
+		return source.isAssignableFrom(target);
+	}
+	
+	/**
+	 * Find the compatible class. This includes superclasses, interfaces and so on.
+	 * 
+	 * @param clazz
+	 *            the specified class.
+	 * @return Returns the class array includes its superclasses, interfaces and itself.
+	 */
+	public static final Class<?>[] findCompatibleClasses(Class<?> clazz) {
+		Set<Class<?>> classes = new LinkedHashSet<Class<?>>();
+
+		// Add itself to list.
+		classes.add(clazz);
+
+		// Add primitive compatible type
+		if (clazz == Boolean.class) {
+			classes.add(boolean.class);
+		} else if (clazz == Byte.class) {
+			classes.add(byte.class);
+		} else if (clazz == Short.class) {
+			classes.add(short.class);
+		} else if (clazz == Integer.class) {
+			classes.add(int.class);
+		} else if (clazz == Long.class) {
+			classes.add(long.class);
+		} else if (clazz == Float.class) {
+			classes.add(float.class);
+		} else if (clazz == Double.class) {
+			classes.add(double.class);
+		} else if (clazz == Character.class) {
+			classes.add(char.class);
+		} else if (clazz == boolean.class) {
+			classes.add(Boolean.class);
+		} else if (clazz == byte.class) {
+			classes.add(Byte.class);
+		} else if (clazz == short.class) {
+			classes.add(Short.class);
+		} else if (clazz == int.class) {
+			classes.add(Integer.class);
+		} else if (clazz == long.class) {
+			classes.add(Long.class);
+		} else if (clazz == float.class) {
+			classes.add(Float.class);
+		} else if (clazz == double.class) {
+			classes.add(Double.class);
+		} else if (clazz == char.class) {
+			classes.add(Character.class);
+		}
+
+		// Add its interfaces
+		findInterfaces(classes, clazz);
+
+		// Add its superclasses
+		findSuperClasses(classes, clazz);
+
+		// At last, add Object class.
+		classes.add(Object.class);
+
+		return classes.toArray(EMPTY);
+	}
+
+	public static Object resolveValue(Object value, Class<?> targetType, Object defaultValue) {
+		return resolveValue(value, value.getClass(), targetType, defaultValue);
+	}
+
+	public static Object resolveValue(Object value, Class<?> sourceType, Class<?> targetType, Object defaultValue) {
+		IConverter converter = XWT.findConvertor(sourceType, targetType);
+		if (converter != null) {
+			return converter.convert(value);
+		}
+		return defaultValue;
+	}
+
+	/**
+	 * Find compatible constructor for specified class.
+	 * 
+	 * @param clazz
+	 *            the specified class.
+	 * @param argumentTypes
+	 *            constructor argument types.
+	 * @return Returns constructor instance. If snot find, returns null.
+	 */
+	public static final Constructor<?> findConstructor(Class<?> clazz, Class<?>... argumentTypes) {
+
+		Class<?>[][] classesArray = new Class[argumentTypes.length][];
+
+		for (int i = 0, len = argumentTypes.length; i < len; i++) {
+			Class<?>[] classes = findCompatibleClasses(argumentTypes[i]);
+			classesArray[i] = classes;
+		}
+
+		int totalPossibles = 1;
+		for (int i = 0; i < classesArray.length; i++) {
+			totalPossibles *= classesArray[i].length;
+		}
+
+		List<Class<?>[]> classList = new ArrayList<Class<?>[]>(totalPossibles);
+		computeArguments(classList, classesArray, new Class[classesArray.length], 0);
+
+		for (Class<?>[] arguments : classList) {
+			try {
+				return clazz.getConstructor(arguments);
+			} catch (NoSuchMethodException e) {
+				continue;
+			}
+		}
+
+		return null;
+	}
+
+	/**
+	 * Find compatible public method for specified class.
+	 * 
+	 * @param clazz
+	 *            the specified class.
+	 * @param name
+	 *            method name.
+	 * @param argumentTypes
+	 *            method argument types. If it is a null value, system will find method without argument types.
+	 * @return Returns method instance. If not find, returns null.
+	 */
+	public static final Method findMethod(Class<?> clazz, String name, Class<?>... argumentTypes) {
+
+		if (argumentTypes != null && argumentTypes.length > 0) {
+
+			Class<?>[][] classesArray = new Class[argumentTypes.length][];
+
+			for (int i = 0, len = argumentTypes.length; i < len; i++) {
+				Class<?>[] classes = findCompatibleClasses(argumentTypes[i]);
+				classesArray[i] = classes;
+			}
+
+			int totalPossibles = 1;
+			for (int i = 0; i < classesArray.length; i++) {
+				totalPossibles *= classesArray[i].length;
+			}
+
+			List<Class<?>[]> classList = new ArrayList<Class<?>[]>(totalPossibles);
+			computeArguments(classList, classesArray, new Class[classesArray.length], 0);
+
+			for (Class<?>[] arguments : classList) {
+				try {
+					return clazz.getDeclaredMethod(name, arguments);
+				} catch (NoSuchMethodException e) {
+					continue;
+				}
+			}
+		} else {
+
+			// find method without argument types;
+
+			Method[] methods = clazz.getMethods();
+			for (Method method : methods) {
+				if (method.getName().equals(name)) {
+					return method;
+				}
+			}
+		}
+
+		return null;
+	}
+
+	/**
+	 * Find compatible method for specified class.
+	 * 
+	 * @param clazz
+	 *            the specified class.
+	 * @param name
+	 *            method name.
+	 * @param argumentTypes
+	 *            method argument types. If it is a null value, system will find method without argument types.
+	 * @return Returns method instance. If not find, returns null.
+	 */
+	public static final Method findDeclaredMethod(Class<?> clazz, String name, Class<?>... argumentTypes) {
+
+		if (argumentTypes != null && argumentTypes.length > 0) {
+
+			Class<?>[][] classesArray = new Class[argumentTypes.length][];
+
+			for (int i = 0, len = argumentTypes.length; i < len; i++) {
+				Class<?>[] classes = findCompatibleClasses(argumentTypes[i]);
+				classesArray[i] = classes;
+			}
+
+			int totalPossibles = 1;
+			for (int i = 0; i < classesArray.length; i++) {
+				totalPossibles *= classesArray[i].length;
+			}
+
+			List<Class<?>[]> classList = new ArrayList<Class<?>[]>(totalPossibles);
+			computeArguments(classList, classesArray, new Class[classesArray.length], 0);
+
+			for (Class<?>[] arguments : classList) {
+				try {
+					return clazz.getDeclaredMethod(name, arguments);
+				} catch (NoSuchMethodException e) {
+					continue;
+				}
+			}
+		} else {
+
+			// find method without argument types;
+			Method[] methods = clazz.getDeclaredMethods();
+			for (Method method : methods) {
+				if (method.getName().equals(name) && method.getParameterTypes().length == 0) {
+					return method;
+				}
+			}
+		}
+		Class<?> superclass = clazz.getSuperclass();
+		if (superclass != null) {
+			return findDeclaredMethod(superclass, name, argumentTypes);
+		}
+
+		return null;
+	}
+
+	/**
+	 * Find property getter method for specified class.
+	 * 
+	 * @param clazz
+	 *            the specified class.
+	 * @param name
+	 *            property name
+	 * @param type
+	 *            property type. If it is a null value, system will find the suitable method.
+	 * @return Returns method instance. If not find, returns null.
+	 */
+	public static final Method findGetter(Class<?> clazz, String name, Class<?> type) {
+		if (name == null || name.length() == 0) {
+			throw new IllegalArgumentException("Invalid getter method name, null value found");
+		}
+
+		String getterName = "get" + name.substring(0, 1).toUpperCase() + name.substring(1);
+
+		Method method;
+		try {
+			if (clazz.isEnum()) {
+				method = clazz.getClass().getMethod(getterName, EMPTY);
+			}
+			else {
+				method = clazz.getMethod(getterName, EMPTY);
+			}				
+		} catch (NoSuchMethodException e1) {
+
+			// :Check if it is a boolean getter
+			getterName = "is" + name.substring(0, 1).toUpperCase() + name.substring(1);
+			try {
+				method = clazz.getMethod(getterName, EMPTY);
+				if (method.getReturnType() != Boolean.class && method.getReturnType() != boolean.class) {
+					return null;
+				}
+			} catch (NoSuchMethodException e2) {
+				method = findCaseIgnoreGetter(clazz, name, type);
+			}
+			// :~
+		}
+
+		if (type == null) {
+			return method;
+		} else {
+			if (method != null) {
+				Class<?> returnType = method.getReturnType();
+				Class<?>[] types = findCompatibleClasses(type);
+				for (Class<?> t : types) {
+					if (t == returnType) {
+						return method;
+					}
+				}
+			}
+		}
+
+		return null;
+	}
+
+	private static Method findCaseIgnoreGetter(Class<?> clazz, String name, Class<?> type) {
+		String getterName = "get" + name.substring(0, 1).toUpperCase() + name.substring(1);
+		String isName = "is" + name.substring(0, 1).toUpperCase() + name.substring(1);
+
+		for (Method element : clazz.getMethods()) {
+			if (element.getParameterTypes().length != 0) {
+				continue;
+			}
+			if (element.getName().equalsIgnoreCase(getterName)) {
+				return element;
+			}
+			if (element.getName().equalsIgnoreCase(isName) && element.getReturnType() != Boolean.class && element.getReturnType() != boolean.class) {
+				return element;
+			}
+		}
+		return null;
+	}	
+	
+	/**
+	 * Find superclasses and add them to list.
+	 */
+	private static void findSuperClasses(Set<Class<?>> list, Class<?> clazz) {
+		if (clazz != null) {
+			Class<?> superClass = clazz.getSuperclass();
+
+			if (superClass != Object.class) {
+				list.add(superClass);
+
+				findInterfaces(list, superClass);
+
+				findSuperClasses(list, superClass);
+			}
+		}
+	}
+
+	/**
+	 * Find interfaces and add them to list.
+	 */
+	private static void findInterfaces(Set<Class<?>> list, Class<?> clazz) {
+		if (clazz != null) {
+			Class<?>[] interfaces = clazz.getInterfaces();
+
+			for (Class<?> interfac1 : interfaces) {
+				list.add(interfac1);
+				findInterfaces(list, interfac1);
+			}
+		}
+	}
+
+	/**
+	 * Combine arithmetic.
+	 */
+	private static void computeArguments(List<Class<?>[]> list, Class<?>[][] arguments, Class<?>[] buffer, int start) {
+		if (start >= arguments.length) {
+			Class<?>[] classes = new Class<?>[arguments.length];
+			for (int i = 0; i < arguments.length; ++i) {
+				classes[i] = buffer[i];
+			}
+			list.add(classes);
+			return;
+		}
+
+		for (int i = 0; i < arguments[start].length; ++i) {
+			buffer[start] = arguments[start][i];
+			computeArguments(list, arguments, buffer, start + 1);
+		}
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/ObservableValueManager.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/ObservableValueManager.java
new file mode 100644
index 0000000..87d62a3
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/ObservableValueManager.java
@@ -0,0 +1,85 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.internal.utils;
+
+import java.util.HashMap;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.IEventGroup;
+import org.eclipse.xwt.IObservableValueListener;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.javabean.metadata.properties.EventProperty;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.xwt.metadata.ModelUtils;
+
+public class ObservableValueManager implements IObservableValueListener {
+	protected HashMap<String, IObservableValue> map;
+	protected Object host;
+	
+	public ObservableValueManager(Object host) {
+		this.host = host;
+	}
+	
+	public Object getHost() {
+		return host;
+	}
+	
+	public void changeValueHandle(Object object, Event event){
+		// TODO the cast is not clean. 
+		EventProperty property = (EventProperty) object;
+		IObservableValue value = map.get(property.getName());
+		if (value != null) {
+			Boolean oldValue = (Boolean) value.getValue();
+			if (oldValue == null) {
+				oldValue = false;
+			}
+			value.setValue(!oldValue);
+		}
+		
+		IMetaclass metaclass = XWT.getMetaclass(host);
+		
+		// TODO this conversion should be simplied
+		String eventName = ModelUtils.normalizePropertyName(property.getEvent().getName());
+		IEventGroup eventGroup = metaclass.getEventGroup(eventName);
+		if (eventGroup != null) {
+			eventGroup.fireEvent(this, property);
+		}
+	}
+	
+	public void registerValue(IProperty property, IObservableValue observableValue) {
+		if (map == null) {
+			map = new HashMap<String, IObservableValue>();
+		}
+		map.put(property.getName(), observableValue);
+		
+		IMetaclass metaclass = XWT.getMetaclass(host);
+		// TODO it is not clean. 
+		EventProperty eventProperty  = (EventProperty) property;
+		
+		// TODO this conversion should be simplied
+		String eventName = ModelUtils.normalizePropertyName(eventProperty.getEvent().getName());		
+		IEventGroup eventGroup = metaclass.getEventGroup(eventName);
+		if (eventGroup != null) {
+			eventGroup.registerEvent(this, property);
+		}
+	}
+	
+	public IObservableValue getValue(IProperty property) {
+		if (map == null) {
+			return null;
+		}
+		return map.get(property.getName());
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/TableEditorHelper.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/TableEditorHelper.java
new file mode 100644
index 0000000..91c4e74
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/TableEditorHelper.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.internal.utils;
+
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.Text;
+
+public class TableEditorHelper {
+	public static void initEditor(final TableItem tableItem, Control editor, final int column) {
+		if (editor instanceof Text) {
+			final Text text = (Text) editor;
+			text.setText(tableItem.getText(column));
+			text.addModifyListener(new ModifyListener() {
+				@Override
+				public void modifyText(ModifyEvent e) {
+					tableItem.setText(column, text.getText());
+				}
+			});
+		} else if (editor instanceof CCombo) {
+			final CCombo combo = (CCombo) editor;
+			combo.setText(tableItem.getText(column));
+			combo.addSelectionListener(new SelectionListener() {
+				@Override
+				public void widgetDefaultSelected(SelectionEvent e) {
+					tableItem.setText(column, combo.getText());
+				}
+
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					tableItem.setText(column, combo.getItem(combo.getSelectionIndex()));
+				}
+			});
+		} else if (editor instanceof Combo) {
+			final Combo combo = (Combo) editor;
+			combo.setText(tableItem.getText(column));
+			combo.addSelectionListener(new SelectionListener() {
+				@Override
+				public void widgetDefaultSelected(SelectionEvent e) {
+					tableItem.setText(column, combo.getText());
+				}
+
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					tableItem.setText(column, combo.getItem(combo.getSelectionIndex()));
+				}
+			});
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/UserData.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/UserData.java
new file mode 100644
index 0000000..f38dffa
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/utils/UserData.java
@@ -0,0 +1,758 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.internal.utils;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jface.viewers.EditingSupport;
+import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.custom.CTabItem;
+import org.eclipse.swt.custom.ControlEditor;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.widgets.Caret;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.CoolItem;
+import org.eclipse.swt.widgets.ExpandItem;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.swt.widgets.ScrollBar;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.TabItem;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.ToolItem;
+import org.eclipse.swt.widgets.ToolTip;
+import org.eclipse.swt.widgets.TreeColumn;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.IObservableValueListener;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.core.IUserDataConstants;
+import org.eclipse.xwt.core.TriggerBase;
+import org.eclipse.xwt.databinding.BindingContext;
+import org.eclipse.xwt.databinding.IBindingContext;
+import org.eclipse.xwt.internal.core.IEventController;
+import org.eclipse.xwt.internal.core.ScopeKeeper;
+import org.eclipse.xwt.javabean.Controller;
+import org.eclipse.xwt.jface.JFacesHelper;
+import org.eclipse.xwt.metadata.IProperty;
+
+public class UserData {
+	private HashMap<Object, Object> dictionary = null;
+	private IObservableValueListener observableValueManager;
+
+	protected IObservableValueListener getObservableValueManager() {
+		return observableValueManager;
+	}
+
+	protected void setObservableValueManager(
+			IObservableValueListener observableValueManager) {
+		this.observableValueManager = observableValueManager;
+	}
+
+	public void setData(Object key, Object value) {
+		if (dictionary == null) {
+			dictionary = new HashMap<Object, Object>();
+		}
+		dictionary.put(key, value);
+		if (observableValueManager != null && (key instanceof IProperty)) {
+			IObservableValue observableValue = observableValueManager
+					.getValue((IProperty) key);
+			observableValue.setValue(value);
+		}
+	}
+
+	public Object getData(Object key) {
+		if (dictionary == null) {
+			return null;
+		}
+		return dictionary.get(key);
+	}
+
+	public Object removeData(Object key) {
+		if (dictionary == null) {
+			return null;
+		}
+		return dictionary.remove(key);
+	}
+
+	public boolean containsKey(Object key) {
+		if (dictionary == null) {
+			return false;
+		}
+		return dictionary.containsKey(key);
+	}
+
+	public Collection<Object> keySet() {
+		if (dictionary == null) {
+			return Collections.EMPTY_LIST;
+		}
+		return dictionary.keySet();
+	}
+
+	public static boolean isUIElementType(Object element) {
+		if (element instanceof Class<?>) {
+			Class<?> elementType = (Class<?>) element;
+			return Widget.class.isAssignableFrom(elementType)
+					|| Viewer.class.isAssignableFrom(elementType)
+					|| ControlEditor.class.isAssignableFrom(elementType);
+		}
+		return false;
+	}
+
+	public static void bindNameContext(Object element, ScopeKeeper nameContext) {
+		Widget widget = getWidget(element);
+		if (widget == null) {
+			return;
+		}
+		UserData dataDictionary = updateDataDictionary(widget);
+		if (dataDictionary.getData(IUserDataConstants.XWT_NAMECONTEXT_KEY) != null) {
+			throw new IllegalStateException("Name context is already set");
+		}
+		dataDictionary.setData(IUserDataConstants.XWT_NAMECONTEXT_KEY,
+				nameContext);
+	}
+
+	protected static UserData updateDataDictionary(Object target) {
+		Widget widget = getWidget(target);
+		if (widget == null) {
+			return null;
+		}
+		UserData dataDictionary = (UserData) widget
+				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
+		if (dataDictionary == null) {
+			dataDictionary = new UserData();
+			widget.setData(IUserDataConstants.XWT_USER_DATA_KEY, dataDictionary);
+		}
+		return dataDictionary;
+	}
+
+	public static Shell findShell(Object element) {
+		Widget widget = getWidget(element);
+		if (widget == null) {
+			return null;
+		}
+		if (widget instanceof Shell) {
+			return (Shell) widget;
+		}
+		Control parent = (Control) findParent(widget, Control.class);
+		if (parent != null) {
+			return parent.getShell();
+		}
+		return null;
+	}
+
+	/**
+	 * Find the root widget used by XWT. In fact, it tries to find the root
+	 * ScopeKeeper
+	 * 
+	 * @param element
+	 * @return
+	 */
+	public static Widget findRootWidget(Object element) {
+		Widget root = null;
+		Widget current = getWidget(element);
+		while (current != null) {
+			ScopeKeeper scopeKeeper = findScopeKeeper(current);
+			if (scopeKeeper != null) {
+				root = current;
+			}
+			current = getTreeParent(current);
+		}
+
+		return root;
+	}
+
+	public static Composite findCompositeParent(Object element) {
+		Widget widget = getWidget(element);
+		if (widget == null) {
+			return null;
+		}
+		Control control = getParent(widget);
+		while (control != null && !(control instanceof Composite)) {
+			control = getParent(control);
+		}
+		return (Composite) control;
+	}
+
+	public static Object findParent(Widget element, Class<?> type) {
+		Widget widget = getTreeParent(element);
+		while (widget != null && !(type.isInstance(widget))) {
+			widget = getTreeParent(widget);
+		}
+		return widget;
+	}
+
+	public static ScopeKeeper findScopeKeeper(Object element) {
+		ScopeKeeper scopeKeeper = getLocalScopeKeeper(element);
+		if (scopeKeeper != null) {
+			return scopeKeeper;
+		}
+		Widget parent = getTreeParent(element);
+		if (parent != null && !parent.isDisposed()) {
+			return findScopeKeeper(parent);
+		}
+		return null;
+	}
+
+	public static Widget findScopeRoot(Object element) {
+		Widget widget = getWidget(element);
+		if (widget == null) {
+			return null;
+		}
+
+		Widget current = widget;
+		while (current != null) {
+			UserData dataDictionary = (UserData) current
+					.getData(IUserDataConstants.XWT_USER_DATA_KEY);
+			if (dataDictionary != null) {
+				Object data = dataDictionary
+						.getData(IUserDataConstants.XWT_NAMECONTEXT_KEY);
+				if (data != null) {
+					return current;
+				}
+			}
+
+			current = getTreeParent(current);
+		}
+
+		return null;
+	}
+
+	public static ScopeKeeper getLocalScopeKeeper(Object element) {
+		Widget widget = getWidget(element);
+		if (widget == null) {
+			return null;
+		}
+		UserData dataDictionary = (UserData) widget
+				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
+		if (dataDictionary != null) {
+			Object data = dataDictionary
+					.getData(IUserDataConstants.XWT_NAMECONTEXT_KEY);
+			if (data != null) {
+				return (ScopeKeeper) data;
+			}
+		}
+		return null;
+	}
+
+	public static Object findElementByName(Object context, String name) {
+		Widget widget = getWidget(context);
+		if (widget == null) {
+			return null;
+		}
+		UserData dataDictionary = (UserData) widget
+				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
+		if (dataDictionary != null) {
+			ScopeKeeper nameContext = (ScopeKeeper) dataDictionary
+					.getData(IUserDataConstants.XWT_NAMECONTEXT_KEY);
+			if (nameContext != null) {
+				Object element = nameContext.getNamedObject(name);
+				if (element != null) {
+					return element;
+				}
+			}
+		}
+		Widget parent = getTreeParent(widget);
+		if (parent != null) {
+			return findElementByName(parent, name);
+		}
+		return null;
+	}
+
+	public static String getElementName(Object object) {
+		Widget widget = getWidget(object);
+		if (widget == null) {
+			return null;
+		}
+		UserData dataDictionary = (UserData) widget
+				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
+		if (dataDictionary != null) {
+			return (String) dataDictionary
+					.getData(IUserDataConstants.XWT_NAME_KEY);
+		}
+		return null;
+	}
+
+	public static void setElementName(Object object, String name,
+			boolean updateScope) {
+		Widget widget = getWidget(object);
+		UserData dataDictionary = (UserData) widget
+				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
+		if (dataDictionary != null) {
+			dataDictionary.setData(IUserDataConstants.XWT_NAME_KEY, name);
+			if (updateScope) {
+				ScopeKeeper keeper = findScopeKeeper(object);
+				if (keeper != null) {
+					keeper.addNamedObject(name, object);
+				}
+			}
+		}
+	}
+
+	public static void setCLR(Object widget, Object type) {
+		setLocalData(widget, IUserDataConstants.XWT_CLR_KEY, type);
+	}
+
+	public static Object getCLR(Object element) {
+		Widget widget = getWidget(element);
+		if (widget == null) {
+			return null;
+		}
+		UserData dataDictionary = (UserData) widget
+				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
+		if (dataDictionary != null) {
+			Object data = dataDictionary
+					.getData(IUserDataConstants.XWT_CLR_KEY);
+			if (data != null) {
+				return data;
+			}
+		}
+		Widget parent = getParent(widget);
+		if (parent != null) {
+			return getCLR(parent);
+		}
+		return null;
+	}
+
+	public static Widget getTreeParent(Object element) {
+		Widget widget = getWidget(element);
+		if (widget == null) {
+			return null;
+		}
+		UserData dataDictionary = (UserData) widget
+				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
+		if (dataDictionary != null) {
+			widget = (Widget) dataDictionary
+					.getData(IUserDataConstants.XWT_PARENT_KEY);
+			if (widget != null) {
+				return widget;
+			}
+		}
+		return getParent(element);
+	}
+
+	public static Control getParent(Object element) {
+		Widget widget = getWidget(element);
+		if (widget instanceof Control) {
+			Control control = (Control) widget;
+			return control.getParent();
+		} else if (widget instanceof Menu) {
+			Menu item = (Menu) widget;
+			return item.getParent();
+		} else if (widget instanceof MenuItem) {
+			MenuItem item = (MenuItem) widget;
+			Menu menu = item.getParent();
+			if (menu == null) {
+				return null;
+			}
+			return menu.getParent();
+		} else if (widget instanceof ScrollBar) {
+			ScrollBar item = (ScrollBar) widget;
+			return item.getParent();
+		} else if (widget instanceof ToolTip) {
+			ToolTip item = (ToolTip) widget;
+			return item.getParent();
+		} else if (widget instanceof CoolItem) {
+			CoolItem item = (CoolItem) widget;
+			return item.getParent();
+		} else if (widget instanceof CTabItem) {
+			CTabItem item = (CTabItem) widget;
+			return item.getParent();
+		} else if (widget instanceof ExpandItem) {
+			ExpandItem item = (ExpandItem) widget;
+			return item.getParent();
+		} else if (widget instanceof TabItem) {
+			TabItem item = (TabItem) widget;
+			return item.getParent();
+		} else if (widget instanceof TableColumn) {
+			TableColumn item = (TableColumn) widget;
+			return item.getParent();
+		} else if (widget instanceof TableItem) {
+			TableItem item = (TableItem) widget;
+			return item.getParent();
+		} else if (widget instanceof ToolItem) {
+			ToolItem item = (ToolItem) widget;
+			return item.getParent();
+		} else if (widget instanceof TreeColumn) {
+			TreeColumn item = (TreeColumn) widget;
+			return item.getParent();
+		} else if (widget instanceof TreeItem) {
+			TreeItem item = (TreeItem) widget;
+			return item.getParent();
+		} else if (widget instanceof Caret) {
+			Caret item = (Caret) widget;
+			return item.getParent();
+		}
+		return null;
+	}
+
+	public static IEventController findEventController(Object widget) {
+		return (IEventController) findData(widget,
+				IUserDataConstants.XWT_CONTROLLER_KEY);
+	}
+
+	public static Object getDataContext(Object widget) {
+		return findData(widget, IUserDataConstants.XWT_DATACONTEXT_KEY);
+	}
+
+	public static IBindingContext getBindingContext(Object widget) {
+		return (IBindingContext) findData(widget,
+				IUserDataConstants.XWT_BINDING_CONTEXT_KEY);
+	}
+
+	public static TriggerBase[] getTriggers(Object element) {
+		Widget widget = getWidget(element);
+		if (widget == null) {
+			return TriggerBase.EMPTY_ARRAY;
+		}
+		UserData dataDictionary = (UserData) widget
+				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
+		if (dataDictionary != null) {
+			TriggerBase[] triggers = (TriggerBase[]) dataDictionary
+					.getData(IUserDataConstants.XWT_TRIGGERS_KEY);
+			if (triggers != null) {
+				return triggers;
+			}
+		}
+		return TriggerBase.EMPTY_ARRAY;
+	}
+
+	public static void setTriggers(Object widget, TriggerBase[] triggers) {
+		setLocalData(widget, IUserDataConstants.XWT_TRIGGERS_KEY, triggers);
+	}
+
+	public static Widget getDataContextHost(Object element) {
+		Widget widget = getWidget(element);
+		if (widget == null) {
+			return null;
+		}
+		UserData dataDictionary = (UserData) widget
+				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
+		Object host = null;
+		if (dataDictionary != null) {
+			host = dataDictionary
+					.getData(IUserDataConstants.XWT_DATACONTEXT_KEY);
+			if (host != null) {
+				return widget;
+			}
+		}
+		Widget parent = widget;
+		while (parent != null) {
+			dataDictionary = (UserData) parent
+					.getData(IUserDataConstants.XWT_USER_DATA_KEY);
+			if (dataDictionary != null) {
+				host = dataDictionary
+						.getData(IUserDataConstants.XWT_DATACONTEXT_KEY);
+				if (host != null) {
+					return parent;
+				}
+				parent = (Widget) dataDictionary
+						.getData(IUserDataConstants.XWT_PARENT_KEY);
+			} else {
+				parent = getParent(parent);
+			}
+		}
+		return null;
+	}
+
+	public static void setBindingContext(Object widget, Object bindingContext) {
+		setLocalData(widget, IUserDataConstants.XWT_BINDING_CONTEXT_KEY,
+				bindingContext);
+	}
+
+	public static void setDataContext(Object widget, Object dataContext) {
+		setLocalData(widget, IUserDataConstants.XWT_DATACONTEXT_KEY,
+				dataContext);
+	}
+
+	public static Widget getWidget(Object target) {
+		if (JFacesHelper.isViewer(target)) {
+			return JFacesHelper.getControl(target);
+		} else if (target instanceof Widget) {
+			return (Widget) target;
+		} else if (target instanceof TableViewerColumn) {
+			return ((TableViewerColumn) target).getColumn();
+		} else if (target instanceof ControlEditor) {
+			return ((ControlEditor) target).getEditor();
+		} else if (target instanceof EditingSupport) {
+			return JFacesHelper.getControl(((EditingSupport) target)
+					.getViewer());
+		} else if (target instanceof CellEditor) {
+			return ((CellEditor) target).getControl();
+		}
+		return null;
+	}
+
+	public static Viewer getLocalViewer(Object object) {
+		return (Viewer) getLocalData(object, IUserDataConstants.XWT_VIEWER_KEY);
+	}
+
+	public static Object getLocalDataContext(Object object) {
+		return getLocalData(object, IUserDataConstants.XWT_DATACONTEXT_KEY);
+	}
+
+	public static boolean hasLocalDataContext(Object object) {
+		return hasLocalData(object, IUserDataConstants.XWT_DATACONTEXT_KEY);
+	}
+
+	public static Object getLocalData(Object object, IProperty property) {
+		Widget widget = getWidget(object);
+		if (widget == null) {
+			return null;
+		}
+		UserData dataDictionary = (UserData) widget
+				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
+		if (dataDictionary == null) {
+			return null;
+		}
+		return dataDictionary.getData(property);
+	}
+
+	public static Object getLocalData(Object object, String key) {
+		Widget widget = getWidget(object);
+		if (widget == null) {
+			return null;
+		}
+		UserData dataDictionary = (UserData) widget
+				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
+		if (dataDictionary == null) {
+			return null;
+		}
+		return dataDictionary.getData(key);
+	}
+
+	public static boolean hasLocalData(Object object, String propertyName) {
+		Widget widget = getWidget(object);
+		if (widget == null) {
+			return false;
+		}
+		UserData dataDictionary = (UserData) widget
+				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
+		if (dataDictionary == null) {
+			return false;
+		}
+		return dataDictionary.containsKey(propertyName);
+	}
+
+	public static boolean hasLocalData(Object object, IProperty property) {
+		Widget widget = getWidget(object);
+		if (widget == null) {
+			return false;
+		}
+		UserData dataDictionary = (UserData) widget
+				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
+		if (dataDictionary == null) {
+			return false;
+		}
+		return dataDictionary.containsKey(property);
+	}
+
+	public static void removeLocalData(Object object, IProperty property) {
+		Widget widget = getWidget(object);
+		if (widget == null) {
+			return;
+		}
+		UserData dataDictionary = (UserData) widget
+				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
+		if (dataDictionary == null) {
+			return;
+		}
+		dataDictionary.removeData(property);
+	}
+
+	public static void removeLocalData(Object object, String key) {
+		Widget widget = getWidget(object);
+		if (widget == null) {
+			return;
+		}
+		UserData dataDictionary = (UserData) widget
+				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
+		if (dataDictionary == null) {
+			return;
+		}
+		dataDictionary.removeData(key);
+	}
+
+	public static Map<String, Object> getLocalResources(Object object) {
+		return (Map<String, Object>) getLocalData(object,
+				IUserDataConstants.XWT_RESOURCES_KEY);
+	}
+
+	public static Object findResource(Object object, String key) {
+		Map<String, Object> map = (Map<String, Object>) getLocalData(object,
+				IUserDataConstants.XWT_RESOURCES_KEY);
+		if (map.containsKey(key)) {
+			return map.get(key);
+		}
+
+		Object parent = getTreeParent(object);
+		if (parent != null) {
+			return findResource(parent, key);
+		}
+		return null;
+	}
+
+	public static void setResources(Object object, Map<?, ?> resources) {
+		setLocalData(object, IUserDataConstants.XWT_RESOURCES_KEY, resources);
+	}
+
+	public static void setParent(Object object, Object parent) {
+		setLocalData(object, IUserDataConstants.XWT_PARENT_KEY, parent);
+	}
+
+	public static void setViewer(Object object, Object parent) {
+		setLocalData(object, IUserDataConstants.XWT_VIEWER_KEY, parent);
+	}
+
+	public static void setEventController(Object object,
+			IEventController controller) {
+		setLocalData(object, IUserDataConstants.XWT_CONTROLLER_KEY, controller);
+	}
+
+	public static IEventController updateEventController(Object object) {
+		UserData dataDictionary = updateDataDictionary(object);
+		IEventController controller = (IEventController) dataDictionary
+				.getData(IUserDataConstants.XWT_CONTROLLER_KEY);
+		if (controller == null) {
+			controller = new Controller();
+			dataDictionary.setData(IUserDataConstants.XWT_CONTROLLER_KEY,
+					controller);
+		}
+		return controller;
+	}
+
+	public static void setLocalData(Object object, String key, Object value) {
+		UserData dataDictionary = updateDataDictionary(object);
+		dataDictionary.setData(key, value);
+	}
+
+	public static void setLocalData(Object object, IProperty property,
+			Object value) {
+		UserData dataDictionary = updateDataDictionary(object);
+		dataDictionary.setData(property, value);
+	}
+
+	public static IObservableValueListener getObservableValueManager(
+			Object object) {
+		Widget widget = getWidget(object);
+		if (widget == null) {
+			return null;
+		}
+
+		UserData userData = (UserData) widget
+				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
+		if (userData != null) {
+			return userData.getObservableValueManager();
+		}
+		return null;
+	}
+
+	public static void setObservableValueManager(Object object,
+			IObservableValueListener eventManager) {
+		Widget widget = getWidget(object);
+		if (widget == null) {
+			throw new IllegalStateException("Not SWT Widget");
+		}
+		UserData userData = (UserData) updateDataDictionary(object);
+		userData.setObservableValueManager(eventManager);
+	}
+
+	public static Object findData(Object object, String key) {
+		Widget widget = getWidget(object);
+		if (widget == null) {
+			return Collections.EMPTY_MAP;
+		}
+
+		UserData dataDictionary = (UserData) widget
+				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
+		Object resources = null;
+		if (dataDictionary != null) {
+			resources = dataDictionary.getData(key);
+			if (resources != null) {
+				return resources;
+			}
+		}
+		Widget parent = widget;
+		while (parent != null) {
+			dataDictionary = (UserData) parent
+					.getData(IUserDataConstants.XWT_USER_DATA_KEY);
+			if (dataDictionary != null) {
+				resources = dataDictionary.getData(key);
+				if (resources != null) {
+					return resources;
+				}
+				parent = (Widget) dataDictionary
+						.getData(IUserDataConstants.XWT_PARENT_KEY);
+			} else {
+				parent = getParent(parent);
+			}
+		}
+		return null;
+	}
+
+	public static Map<?, ?> getResources(Object object) {
+		return (Map<?, ?>) findData(object,
+				IUserDataConstants.XWT_RESOURCES_KEY);
+	}
+
+	public static void setObjectName(Object object, String name) {
+		Widget widget = getWidget(object);
+		ScopeKeeper nameScoped;
+		if (UserData.findElementByName(widget, name) != null) {
+			// throw an exception or log a message?
+			return;
+		}
+		Widget parent = UserData.getTreeParent(widget);
+		UserData dataDictionary = (UserData) parent
+				.getData(IUserDataConstants.XWT_USER_DATA_KEY);
+		if (dataDictionary != null) {
+			if (dataDictionary.getData(IUserDataConstants.XWT_NAMECONTEXT_KEY) != null) {
+				nameScoped = (ScopeKeeper) dataDictionary
+						.getData(IUserDataConstants.XWT_NAMECONTEXT_KEY);
+			} else {
+				ScopeKeeper parentNameScope = findScopeKeeper(parent);
+				nameScoped = new ScopeKeeper(parentNameScope, widget);
+				bindNameContext(parent, nameScoped);
+			}
+			nameScoped.addNamedObject(name, widget);
+		}
+		// throw an exception or log a message?
+	}
+
+	public static IBindingContext createBindingContext(Object host) {
+		Widget widget = getWidget(host);
+		final IBindingContext dataBindingContext = new BindingContext(widget);
+		dataBindingContext.setRealm(XWT.getRealm());
+		widget.addDisposeListener(new DisposeListener() {
+
+			public void widgetDisposed(DisposeEvent e) {
+				dataBindingContext.dispose();
+			}
+		});
+
+		UserData.setLocalData(host, IUserDataConstants.XWT_BINDING_CONTEXT_KEY,
+				dataBindingContext);
+
+		return dataBindingContext;
+	}
+
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/Attribute.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/Attribute.java
new file mode 100644
index 0000000..6cd4949
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/Attribute.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.internal.xml;
+
+import java.util.Collection;
+
+/**
+ * @author yyang
+ * @version 1.0
+ */
+public class Attribute extends Element {
+	protected String namePrefix;
+
+	/**
+	 * @param manager
+	 * @param namespace
+	 * @param name
+	 * @param id
+	 */
+	public Attribute(String namespace, String name, String id) {
+		super(namespace, name, null);
+		assert id != null;
+		setId(id);
+	}
+
+	public Attribute(String namespace, String name, String path, String id, Collection<Attribute> attributes) {
+		super(namespace, name, path, attributes, null);
+		assert id != null;
+		setId(id);
+	}
+
+	@Override
+	public Object clone() throws CloneNotSupportedException {
+		Attribute attribute = (Attribute) super.clone();
+		attribute.setId(getId());
+		return attribute;
+	}
+
+	public String getNamePrefix() {
+		return namePrefix;
+	}
+
+	public void setNamePrefix(String namePrefix) {
+		this.namePrefix = namePrefix;
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/DefaultElementCache.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/DefaultElementCache.java
new file mode 100644
index 0000000..35d6194
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/DefaultElementCache.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (c) 2014 CEA and others.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *   Christian W. Damus (CEA) - Initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.xwt.internal.xml;
+
+import java.net.URL;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+
+/**
+ * The default implementation of the cache of parsed XML elements for XWT source files.
+ */
+public class DefaultElementCache implements IElementCache {
+
+	/** The default cache size (currently {@value}). */
+	static int DEFAULT_CACHE_SIZE = 128;
+
+	private final int cacheSize;
+
+	private final Map<String, Element> cache = new LinkedHashMap<String, Element>() {
+
+		private static final long serialVersionUID = 1L;
+
+		protected boolean removeEldestEntry(Map.Entry<String, Element> eldest) {
+			return size() > cacheSize;
+		}
+	};
+
+
+	/**
+	 * Initializes me with a cache of the {@linkplain #DEFAULT_CACHE_SIZE default size}.
+	 */
+	public DefaultElementCache() {
+		this(DEFAULT_CACHE_SIZE);
+	}
+
+	/**
+	 * Initializes me with a specific size of cache.
+	 * 
+	 * @param cacheSize
+	 *        the maximal number of cached XML elements to keep
+	 * 
+	 * @throws IllegalArgumentException
+	 *         if the {@code cacheSize} is not positive
+	 */
+	public DefaultElementCache(int cacheSize) {
+		super();
+
+		if (cacheSize <= 0) {
+			throw new IllegalArgumentException("non-positive cacheSize"); //$NON-NLS-1$
+		}
+
+		this.cacheSize = cacheSize;
+	}
+
+	public Element getElement(URL url) {
+		return cache.get(url.toExternalForm());
+	}
+
+	public void cache(URL url, Element element) {
+		cache.put(url.toExternalForm(), element);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/DocumentObject.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/DocumentObject.java
new file mode 100644
index 0000000..7aaa37b
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/DocumentObject.java
@@ -0,0 +1,242 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.internal.xml;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Observable;
+
+import org.eclipse.xwt.IConstants;
+import org.xml.sax.SAXException;
+
+/**
+ * @author yyang
+ * @version 1.0
+ */
+public class DocumentObject extends Observable implements Cloneable {
+
+	private String id;
+
+	private String name;
+
+	private String namespace;
+
+	private String content;
+
+	private List<DocumentObject> children;
+
+	protected DocumentObject parent;
+
+	/**
+	 * @param manager
+	 * @param namespace
+	 * @param name
+	 */
+	public DocumentObject(String namespace, String name) {
+		assert namespace != null;
+		assert name != null;
+		this.children = new LinkedList<DocumentObject>();
+		setNamespace(namespace);
+		setName(name);
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.IDocumentObject#addChild(org.soyatec.xaml.IDocumentObject )
+	 */
+	public void addChild(DocumentObject child) {
+		assert child != null;
+
+		if (children.add(child)) {
+			DocumentObject oParent = (DocumentObject) (child).getParent();
+			if (oParent != null) {
+				oParent.delChild(child);
+			}
+			// Assign the new parent.
+			((DocumentObject) child).setParent(this);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.IDocumentObject#getChildren()
+	 */
+	public DocumentObject[] getChildren() {
+		return children.toArray(IConstants.EMPTY_DOCOBJ_ARRAY);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.IDocumentObject#getContent()
+	 */
+	public String getContent() {
+		return content;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.IDocumentObject#getId()
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.IDocumentObject#getName()
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.IDocumentObject#getNamespace()
+	 */
+	public String getNamespace() {
+		return namespace;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.IDocumentObject#hasCildren()
+	 */
+	public boolean hasChildren() {
+		return !children.isEmpty();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.IDocumentObject#include(java.io.InputStream)
+	 */
+	public void include(ElementManager elementManager, InputStream input) throws IOException {
+		try {
+			elementManager.load(input, this);
+		} catch (SAXException e) {
+			throw new IOException(e.getLocalizedMessage());
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.IDocumentObject#include(java.lang.String)
+	 */
+	public void include(ElementManager elementManager, String path) throws IOException {
+		InputStream input = elementManager.getDocumentRoot().openStream(path);
+		if (input != null) {
+			include(elementManager, input);
+		}
+		input.close();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.IDocumentObject#setContent(java.lang.String)
+	 */
+	public void setContent(String text) {
+		this.content = text;
+	}
+
+	@Override
+	public Object clone() throws CloneNotSupportedException {
+		DocumentObject docobj = (DocumentObject) super.clone();
+
+		// Clear object id.
+		docobj.id = null;
+
+		// Clone children.
+		for (DocumentObject child : getChildren()) {
+			DocumentObject nChild = (DocumentObject) child.clone();
+			docobj.addChild(nChild);
+		}
+
+		return docobj;
+	}
+
+	/**
+	 * @param id
+	 *            the id to set
+	 */
+	protected void setId(String id) {
+		if (this.id != null) {
+			throw new IllegalStateException("Element id is already defined");
+		}
+
+		assert id != null;
+
+		this.id = id;
+	}
+
+	/**
+	 * @param namespace
+	 *            the namespace to set
+	 * @uml.property name="namespace"
+	 */
+	protected void setNamespace(String namespace) {
+		assert namespace != null : "Element namespace is null";
+		assert this.namespace == null : "Element namespace is defined";
+
+		this.namespace = namespace;
+	}
+
+	/**
+	 * @param name
+	 *            the name to set
+	 * @uml.property name="name"
+	 */
+	protected void setName(String name) {
+		assert name != null : "Element name is null";
+		assert this.name == null : "Element name is defined";
+
+		this.name = name;
+	}
+
+	/**
+	 * Remove child from parent.
+	 * 
+	 * @param child
+	 *            the removed parent.
+	 */
+	protected void delChild(DocumentObject child) {
+		assert child != null;
+
+		if (child instanceof Element) {
+			DocumentObject parent = ((Element) child).getParent();
+			if (parent != null && parent.equals(this)) {
+				children.remove(child);
+				((Element) child).setParent(null);
+			}
+		}
+	}
+
+	public DocumentObject getParent() {
+		return parent;
+	}
+
+	public void setParent(DocumentObject parent) {
+		this.parent = parent;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/DocumentRoot.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/DocumentRoot.java
new file mode 100644
index 0000000..05df12c
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/DocumentRoot.java
@@ -0,0 +1,480 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2013 Soyatec (http://www.soyatec.com), CEA, and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *     Christian W. Damus (CEA) - Fix failure to propagate stream handlers of URLs (CDO)
+ *******************************************************************************/
+package org.eclipse.xwt.internal.xml;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PushbackInputStream;
+import java.net.MalformedURLException;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.zip.GZIPInputStream;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipInputStream;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWTException;
+
+/**
+ * @author yyang
+ * @since 1.0
+ */
+public class DocumentRoot {
+	/**
+	 * The file type(Can be resolved by java.io.File)
+	 */
+	public static final int TYPE_FILE = 0;
+
+	/**
+	 * The path type(Can be resolved by java.net.URL)
+	 */
+	public static final int TYPE_PATH = 1;
+
+	/**
+	 * The zip format.
+	 */
+	public static final int FORMAT_ZIP = 2;
+
+	/**
+	 * The gzip format.
+	 */
+	public static final int FORMAT_GZIP = 3;
+
+	/**
+	 * The plain format.
+	 */
+	public static final int FORMAT_NONE = 4;
+
+	private int type = TYPE_PATH;
+
+	private int format = FORMAT_NONE;
+
+	/**
+	 * The absolute path.
+	 */
+	private String basePath;
+
+	/**
+	 * The relative path.
+	 */
+	private URL baseURL;
+
+	/**
+	 * The main file name.
+	 */
+	private String baseFile;
+
+	private static URL DOCUMENT_ROOT;
+
+	static {
+		try {
+			DOCUMENT_ROOT = new File(System.getProperty("user.dir")).toURI().toURL();
+		} catch (MalformedURLException e) {
+			DOCUMENT_ROOT = null;
+		}
+	}
+
+	public DocumentRoot() {
+		reset();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.IDocumentRoot#getFormat()
+	 */
+	public int getFormat() {
+		return format;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.IDocumentRoot#getType()
+	 */
+	public int getType() {
+		return type;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.IDocumentRoot#getPath()
+	 */
+	public URL getPath() {
+		return baseURL;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.IDocumentRoot#getFile()
+	 */
+	public String getFile() {
+		return baseFile;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.IDocumentRoot#openStream()
+	 */
+	public InputStream openStream() throws IOException {
+		switch (format) {
+		case FORMAT_GZIP:
+			return new GZIPInputStream(new URL(basePath + "/" + baseFile).openStream());
+		default:
+			if ((basePath != null) && (basePath.length() > 0)) {
+				return new URL(baseURL, basePath + "/" + baseFile).openStream(); // preserve the stream handler
+			}
+			return new URL(baseURL, baseFile).openStream(); // preserve the stream handler
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.IDocumentRoot#openStream(java.lang.String)
+	 */
+	public InputStream openStream(String path) throws IOException {
+		assert path != null;
+		InputStream in = null;
+
+		if (path.indexOf(':') < 0) {
+			if (format == FORMAT_ZIP) {
+				// If it is zip format, that means all directories and files in
+				// zip file are extracted to temporary directory.
+				File file = new File(basePath + "/" + path);
+				in = new FileInputStream(file);
+			} else {
+				// Else, maybe the file parent or url path.
+				switch (type) {
+				case TYPE_FILE:
+					File file;
+					if (path.startsWith("/")) {
+						// Use absolute path
+						file = new File(path);
+					} else {
+						// Use relative path
+						file = new File(basePath + "/" + path);
+					}
+					in = new FileInputStream(file);
+					break;
+				case TYPE_PATH:
+					URL url = new URL(basePath + "/" + path);
+					in = url.openStream();
+					break;
+				}
+			}
+		} else {
+			if (path.startsWith("classpath:")) {
+				// Use class path
+				String p = path.substring(10);
+				in = getClass().getResourceAsStream(p);
+				if (in == null) {
+					in = String.class.getResourceAsStream(p);
+				}
+				if (in == null) {
+					in = Thread.currentThread().getClass().getResourceAsStream(p);
+				}
+				if (in == null) {
+					throw new IOException("File not found in classpath: " + p);
+				}
+			} else {
+				File file = new File(path);
+				if (file.exists()) {
+					// Use Windows File path. For example, G:\\somefile.txt
+					in = new FileInputStream(file);
+				} else {
+					// Use URL path
+					in = new URL(path).openStream();
+				}
+			}
+		}
+
+		// Automatically select the stream type
+		PushbackInputStream pis = new PushbackInputStream(in, 4);
+		if (Format.isGZIP(pis)) {
+			return new GZIPInputStream(pis);
+		} else if (Format.isZIP(pis)) {
+			ZipInputStream zis = new ZipInputStream(pis);
+			// Skip entry of directory or file which contains directory
+			// path("someDirectory/someFile.suffix").
+			for (ZipEntry entry = zis.getNextEntry(); entry != null && (entry.isDirectory() || entry.getName().indexOf('/') != -1); entry = zis.getNextEntry())
+				;
+			return zis;
+		} else {
+			return pis;
+		}
+	}
+
+	/**
+	 * This method is used in <code>ModelLoader</code>
+	 * 
+	 * @param file
+	 *            the xaml file path.
+	 */
+	protected void init(InputStream inputStream, URL url) throws IOException {
+		File file = null;
+		
+		try {
+			file = "file".equals(url.getProtocol()) ? new File(url.toURI()) : null;
+		} catch (URISyntaxException e) {
+			// not a valid file URL.  Fine
+		}
+		
+		if((inputStream == null) && (file != null) && file.exists()) {
+			// Is file
+			init(file);
+		} else {
+			// Is URL
+			basePath = null;
+			baseURL = url;
+			PushbackInputStream pis = null;
+			boolean shouldClose_pis = false;
+			if (inputStream instanceof PushbackInputStream) {
+				pis = (PushbackInputStream) inputStream;
+			} else {
+				if (inputStream == null) {
+					pis = new PushbackInputStream(baseURL.openStream(), 4);
+					shouldClose_pis = true;
+				} else {
+					pis = new PushbackInputStream(inputStream, 4);
+				}
+			}
+			if (Format.isGZIP(pis)) {
+				format = FORMAT_GZIP;
+			} else if (Format.isZIP(pis)) {
+				format = FORMAT_ZIP;
+				File tempDir = extractZipToTemporary(pis);
+				basePath = "file:/" + tempDir.getAbsolutePath();
+				baseFile = getMainFile(tempDir);
+			}
+			if (shouldClose_pis) {
+				pis.close();
+			}
+
+			if (basePath == null) {
+				String path = url.getPath();
+				while (path.endsWith("/")) {
+					path = path.substring(0, path.length() - 1);
+				}
+
+				int lastIndex = path.lastIndexOf("/");
+				if (lastIndex > 0) {
+					basePath = path.substring(0, lastIndex);
+					baseFile = path.substring(lastIndex + 1);
+					baseURL = new URL(url, basePath); // be sure to preserve the stream handler
+				} else if ("file".equals(url.getProtocol())) {
+					basePath = System.getProperty("user.dir");
+					baseURL = new File(basePath).toURI().toURL();
+					baseFile = path;
+				} else {
+					basePath = "";
+					baseFile = path;
+					baseURL = new URL(url, basePath); // be sure to preserve the stream handler
+				}
+			}
+
+			type = TYPE_PATH;
+		}
+	}
+
+	/**
+	 * This method is used in <code>ModelLoader</code>
+	 */
+	protected void reset() {
+		type = TYPE_PATH;
+		format = FORMAT_NONE;
+		baseURL = DOCUMENT_ROOT;
+		basePath = DOCUMENT_ROOT.toString();
+		baseFile = null;
+	}
+
+	/**
+	 * This method is used in <code>ModelLoader</code>
+	 * 
+	 * @param file
+	 *            the XAML file.
+	 */
+	private void init(File file) throws IOException {
+		FileInputStream fis = new FileInputStream(file);
+		PushbackInputStream pis = new PushbackInputStream(fis, 4);
+		baseURL = file.getParentFile().toURI().toURL();
+		basePath = baseURL.toString();
+		baseFile = file.getName();
+		if (Format.isGZIP(pis)) {
+			format = FORMAT_GZIP;
+		} else if (Format.isZIP(pis)) {
+			format = FORMAT_ZIP;
+			File tempDir = extractZipToTemporary(pis);
+			basePath = "file:/" + tempDir.getAbsolutePath();
+			baseFile = getMainFile(tempDir);
+			baseURL = file.toURI().toURL();
+		}
+
+		type = TYPE_FILE;
+	}
+
+	private String getMainFile(File tempDir) {
+		File[] tempFiles = tempDir.listFiles(new FileFilter() {
+			public boolean accept(File pathname) {
+				return pathname.isFile() && pathname.getName().toLowerCase().endsWith(IConstants.XWT_EXTENSION_SUFFIX);
+			}
+		});
+		for (File tempFile : tempFiles) {
+			return tempFile.getName();
+		}
+		return null;
+	}
+
+	/**
+	 * Extract zip stream to temporary directory.
+	 * 
+	 * @param stream
+	 *            zip stream.
+	 * @return Returns the directory file the zip stream extracted.
+	 */
+	private File extractZipToTemporary(InputStream stream) throws IOException {
+		File file = new File(System.getProperty("java.io.tmpdir") + "/cb" + System.currentTimeMillis() + Math.random());
+		if (!file.mkdir()) {
+			throw new XWTException("Folder creation fails: " + file.toString());
+		}
+		file.deleteOnExit();
+
+		String directory = file.getAbsolutePath();
+		ZipInputStream in = new ZipInputStream(stream);
+		ZipEntry z;
+		while ((z = in.getNextEntry()) != null) {
+			if (z.isDirectory()) {
+				String name = z.getName();
+				name = name.substring(0, name.length() - 1);
+				File f = new File(directory + File.separator + name);
+				if (!f.mkdir()) {
+					throw new XWTException("Folder creation fails: " + f.toString());
+				}
+				f.deleteOnExit();
+			} else {
+				File f = new File(directory + File.separator + z.getName());
+				if (!f.createNewFile()) {
+					throw new XWTException("File creation fails: " + f.toString());
+				}
+				f.deleteOnExit();
+				FileOutputStream out = new FileOutputStream(f);
+				byte[] cache = new byte[4096];
+				for (int i = in.read(cache); i != -1; i = in.read(cache)) {
+					out.write(cache, 0, i);
+				}
+				out.close();
+			}
+		}
+		in.close();
+
+		return file;
+	}
+
+	/**
+	 * File format uitility.
+	 * <p>
+	 * To check the format of file or stream.
+	 * </p>
+	 * 
+	 */
+	static class Format {
+
+		/**
+		 * Check the stream is a gzip format or not.
+		 * 
+		 * @param stream
+		 *            the checked stream.
+		 * @return Returns true is the stream is a gzip format.
+		 */
+		public static boolean isGZIP(PushbackInputStream stream) throws IOException {
+			assert stream != null;
+
+			byte[] cachedBytes = new byte[2];
+			if (stream.read(cachedBytes) != cachedBytes.length) {
+				throw new RuntimeException("data content wrong.");
+			}
+			stream.unread(cachedBytes);
+			// GZIP's header data starts with two bytes{1F,8B},
+			if ((cachedBytes[0] & 0xff) == 0x1f && (cachedBytes[1] & 0xff) == 0x8b) {
+				return true;
+			} else {
+				return false;
+			}
+		}
+
+		/**
+		 * Check the file is a gzip format or not.
+		 * 
+		 * @param file
+		 *            the checked file.
+		 * @return Returns true is the file is a gzip format.
+		 */
+		public static boolean isGZIP(File file) throws IOException {
+			assert file != null;
+
+			FileInputStream fis = new FileInputStream(file);
+			PushbackInputStream pis = new PushbackInputStream(fis, 2);
+			boolean returnValue = isGZIP(pis);
+			pis.close();
+			return returnValue;
+		}
+
+		/**
+		 * Check the stream is a zip format or not.
+		 * 
+		 * @param stream
+		 *            the checked stream.
+		 * @return Returns true is the stream is a zip format.
+		 */
+		public static boolean isZIP(PushbackInputStream stream) throws IOException {
+			assert stream != null;
+
+			byte[] cachedBytes = new byte[4];
+			if (stream.read(cachedBytes) != cachedBytes.length) {
+				throw new RuntimeException("data content wrong.");
+			}
+			stream.unread(cachedBytes);
+			// ZIP's header data starts with four bytes{0x50, 0x4b, 0x03, 0x04},
+			if ((cachedBytes[0] & 0xff) == 0x50 && (cachedBytes[1] & 0xff) == 0x4b && (cachedBytes[2] & 0xff) == 0x03 && (cachedBytes[3] & 0xff) == 0x04) {
+				return true;
+			} else {
+				return false;
+			}
+		}
+
+		/**
+		 * Check the file is a zip format or not.
+		 * 
+		 * @param file
+		 *            the checked file.
+		 * @return Returns true is the file is a zip format.
+		 */
+		public static boolean isZIP(File file) throws IOException {
+			assert file != null;
+
+			FileInputStream fis = new FileInputStream(file);
+			PushbackInputStream pis = new PushbackInputStream(fis, 4);
+			boolean returnValue = isZIP(pis);
+			pis.close();
+			return returnValue;
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/Element.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/Element.java
new file mode 100644
index 0000000..26414bd
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/Element.java
@@ -0,0 +1,261 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.internal.xml;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.internal.core.Core;
+
+/**
+ * @since 1.0
+ * @author yyang
+ */
+public class Element extends DocumentObject {
+
+	private static final String[] EMPTY_STRING_ARRAY = new String[0];
+	private String path;
+	private Map<String, Attribute> originalAttributes;
+
+	private Map<String, Map<String, Attribute>> externalAttributes;
+
+	private String[] xmlnsMapping;
+	
+	/**
+	 * @return the path of this element, i.e. indexes of this element and its parents in XML.
+	 */
+	public String getPath() {
+		return path;
+	}
+
+	public String getXmlns(String prefix) {
+		if (prefix == null) {
+			prefix = "";
+		}
+		if (xmlnsMapping != null) {
+			for (int i = 0; i < xmlnsMapping.length; i++) {
+				if (prefix.equals(xmlnsMapping[i++])) {
+					return xmlnsMapping[i];
+				}
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Default constructor
+	 * 
+	 * @param context
+	 *            bundle context
+	 * @param namespace
+	 *            element namespace
+	 * @param name
+	 *            element name
+	 * @param originalAttributes
+	 *            element arributes
+	 */
+	public Element(String namespace, String name, Map<String, String> xmlnsMapping) {
+		this(namespace, name, null, null, xmlnsMapping);
+	}
+
+	public Element(String namespace, String name, String path, Collection<Attribute> attributes, Map<String, String> xmlnsMapping) {
+		super(namespace, name);
+		this.path = path;
+		if (xmlnsMapping != null) {
+			this.xmlnsMapping = new String[xmlnsMapping.size() * 2];
+			int i = 0;
+			for (Map.Entry<String, String> entry : xmlnsMapping.entrySet()) {
+				String key = entry.getKey();
+				if (key == null) {
+					key = "";
+				}
+				this.xmlnsMapping[i++] = key;
+				this.xmlnsMapping[i++] = entry.getValue();
+			}
+		}
+
+		this.originalAttributes = Collections.EMPTY_MAP;
+		this.externalAttributes = Collections.EMPTY_MAP;
+
+		if (attributes != null) {
+			for (Attribute attribute : attributes) {
+				setInternalAttribute(attribute);
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.soyatec.eface.core.IElement#attributeNames()
+	 */
+	public String[] attributeNames() {
+		return originalAttributes.keySet().toArray(EMPTY_STRING_ARRAY);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.soyatec.eface.core.IElement#attributeNamespaces()
+	 */
+	public String[] attributeNamespaces() {
+		return externalAttributes.keySet().toArray(EMPTY_STRING_ARRAY);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seecom.soyatec.eface.core.IElement#setAttribute(com.soyatec.eface.core. IAttribute)
+	 */
+	public void setAttribute(Attribute attribute) {
+		setInternalAttribute(attribute);
+		firePropertyChanged(attribute);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.soyatec.eface.IElement#attributeNames(java.lang.String)
+	 */
+	public String[] attributeNames(String namespace) {
+		if (getNamespace().equals(namespace)) {
+			return attributeNames();
+		}
+		Map<String, Attribute> externalAttribute = externalAttributes.get(namespace);
+		if (externalAttribute != null) {
+			return externalAttribute.keySet().toArray(EMPTY_STRING_ARRAY);
+		} else {
+			return Core.EMPTY_STRING_ARRAY;
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.soyatec.eface.core.IElement#getAttribute(java.lang.String)
+	 */
+	public Attribute getAttribute(String name) {
+		assert name != null;
+		return originalAttributes.get(name);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.soyatec.eface.core.IElement#getAttribute(java.lang.String, java.lang.String)
+	 */
+	public Attribute getAttribute(String namespace, String name) {
+		Map<String, Attribute> externalAttribute = externalAttributes.get(namespace);
+		if (externalAttribute != null) {
+			return externalAttribute.get(name);
+		} else {
+			return null;
+		}
+	}
+
+	@Override
+	public Object clone() throws CloneNotSupportedException {
+		Element element = (Element) super.clone();
+
+		element.parent = null;
+
+		if (originalAttributes.isEmpty()) {
+			originalAttributes = Collections.EMPTY_MAP;
+		} else {
+			element.originalAttributes = new LinkedHashMap<String, Attribute>(originalAttributes.size());
+			for (String attrName : originalAttributes.keySet()) {
+				Attribute attrValue = (Attribute) originalAttributes.get(attrName).clone();
+				element.originalAttributes.put(attrName, attrValue);
+			}
+		}
+
+		if (externalAttributes.isEmpty()) {
+			element.originalAttributes = Collections.EMPTY_MAP;
+		} else {
+			element.externalAttributes = new LinkedHashMap<String, Map<String, Attribute>>(externalAttributes.size());
+			for (String ns : externalAttributes.keySet()) {
+				Map<String, Attribute> oAttributes = externalAttributes.get(ns);
+				Map<String, Attribute> nAttributes = new LinkedHashMap<String, Attribute>(oAttributes.size());
+				for (Map.Entry<String, Attribute> entry : oAttributes.entrySet()) {
+					String attrName = entry.getKey();
+					Attribute attrValue = (Attribute) entry.getValue().clone();
+					nAttributes.put(attrName, attrValue);
+				}
+				element.externalAttributes.put(ns, nAttributes);
+			}
+		}
+
+		return element;
+	}
+
+	protected void setAttributes(Collection<Attribute> attributes) {
+		for (Attribute attribute : attributes) {
+			setInternalAttribute(attribute);
+		}
+		firePropertyChanged(attributes);
+	}
+
+	private void firePropertyChanged(Attribute attribute) {
+		notifyObservers(attribute);
+	}
+
+	private void firePropertyChanged(Collection<Attribute> attributes) {
+		notifyObservers(attributes);
+	}
+
+	private boolean isXWTNamespace(String namespace) {
+		String scopeNamespace = getNamespace();
+		if (namespace == null || "".equals(namespace)) {
+			return true;
+		}
+		if (scopeNamespace.startsWith(IConstants.XAML_CLR_NAMESPACE_PROTO) || scopeNamespace.equals(IConstants.XWT_NAMESPACE)) {
+			return namespace.equalsIgnoreCase(scopeNamespace) || namespace.equals(IConstants.XWT_NAMESPACE);
+		}
+		return false;
+	}
+	
+	/**
+	 * Set attribute without notifying event.
+	 * 
+	 * @param attribute
+	 *            the modified attribute.
+	 */
+	private void setInternalAttribute(Attribute attribute) {
+		assert attribute != null;
+
+		String namespace = attribute.getNamespace();
+		String name = attribute.getName();
+
+		if (isXWTNamespace(namespace)) {
+			if (originalAttributes == Collections.EMPTY_MAP) {
+				originalAttributes = new LinkedHashMap<String, Attribute>();
+			}
+			originalAttributes.put(name, attribute);
+		} else {
+			Map<String, Attribute> externalAttribute = externalAttributes.get(namespace);
+			if (externalAttribute == null) {
+				externalAttribute = new HashMap<String, Attribute>();
+			}
+			if (externalAttributes == Collections.EMPTY_MAP) {
+				externalAttributes = new LinkedHashMap<String, Map<String, Attribute>>();
+			}
+			externalAttribute.put(name, attribute);
+			externalAttributes.put(namespace, externalAttribute);
+		}
+		((DocumentObject) attribute).setParent(this);
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/ElementHandler.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/ElementHandler.java
new file mode 100644
index 0000000..c63bebc
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/ElementHandler.java
@@ -0,0 +1,820 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.internal.xml;
+
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.NoSuchElementException;
+import java.util.Set;
+import java.util.Stack;
+import java.util.StringTokenizer;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.xml.sax.Attributes;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.Locator;
+import org.xml.sax.SAXException;
+import org.xml.sax.ext.Locator2;
+import org.xml.sax.helpers.DefaultHandler;
+
+/**
+ * XAML-DOM handler.
+ * 
+ * @author yyang
+ * @version 1.0
+ */
+class ElementHandler extends DefaultHandler implements ContentHandler {
+	private Stack<StringBuffer> bufferStack = new Stack<StringBuffer>();
+	private static final String[] BINDING_PROPERTIES = new String[] {
+		"path", "validationRule", "converter"
+	};
+	
+	
+	/**
+	 * Temporary element hierarchy
+	 */
+	private Stack<DocumentObject> elementStack = new Stack<DocumentObject>();
+	
+	private Stack<Integer> elementIndexStack;
+	
+	private Stack<Boolean> switchStack;
+
+	private StringBuffer textBuffer = null;
+
+	private Locator locator;
+
+	private boolean ignoreSystemProcession;
+
+	private boolean hasSetDefaultEncoding;
+
+	private ElementManager elementManager;
+
+	private String defaultNamespace;
+
+	private ExtensionParser extensionParser = new ExtensionParser();
+
+	private HashMap<String, String> namespaceMapping = new HashMap<String, String>();
+
+	private boolean needNormalizeName = true;
+
+	/**
+	 * Parse the XAML extension Markup: {StaticResource test} {StaticResource RessourceKey=test} {DynamicResource {x:Static SystemColors.ControlBrushKey}}
+	 * 
+	 * @author yyang
+	 * 
+	 */
+	private class ExtensionParser {
+		private Element root;
+		private DocumentObject current;
+
+		public void parse(DocumentObject element, String text) {
+			if (root != null) {
+				ExtensionParser parser = new ExtensionParser();
+				parser.parse(element, text);
+				return;
+			}
+
+			StringTokenizer stringTokenizer = new StringTokenizer(text, "{}", true);
+			String previous = null;
+			String nextPrevious = null;
+			while (stringTokenizer.hasMoreTokens()) {
+				String token = stringTokenizer.nextToken();
+
+				if (previous != null) {
+					if (previous.equals("{")) {
+						if (token.equals("}")) {
+							// escape sequence
+							if (stringTokenizer.hasMoreTokens()) {
+								handleBlock(stringTokenizer.nextToken(" \t\n\r\f"), false);
+							}
+						} else {
+							startBlock();
+						}
+					} else if (previous.equals("}")) {
+						endBlock();
+					} else {
+						StringBuilder builder = new StringBuilder();
+						builder.append(previous);
+						if (token.equals("{")) {
+							int level = 1;
+							builder.append(token);
+							while (stringTokenizer.hasMoreTokens() && level >= 0) {
+								String value = stringTokenizer.nextToken();
+								if (value.equals("{")) {
+									level++;
+								} else if (value.equals("}")) {
+									level--;
+								}
+								if (level >= 0) {
+									builder.append(value);
+								}
+							}
+						}
+						handleBlock(builder.toString(), (nextPrevious == null || !nextPrevious.equals("}")));
+					}
+				}
+				nextPrevious = previous;
+				previous = token;
+			}
+			element.addChild(root);
+			root = null;
+			current = null;
+		}
+
+		protected void startBlock() {
+		}
+
+		protected void endBlock() {
+			if (current != null) {
+				current = current.getParent().getParent();
+			}
+		}
+
+		protected Element createElement(String token) {
+			int index = token.indexOf(':');
+			String namespace = null;
+			String name = token;
+			if (index != -1) {
+				String prefix = token.substring(0, index);
+				name = token.substring(index + 1);
+				namespace = namespaceMapping.get(prefix);
+			}
+			if (namespace == null) {
+				namespace = defaultNamespace;
+			}
+			Element element = new Element(namespace, name, namespaceMapping);
+			element.setId(elementManager.generateID(name));
+			if (current != null) {
+				current.addChild(element);
+			} else {
+				if (root == null) {
+					root = element;
+				}
+			}
+			current = element;
+			return element;
+		}
+
+		protected void handleBlock(String content, boolean newElement) {
+			String rootPattern = " \t\n\r\f=,";
+			StringTokenizer tokenizer = new StringTokenizer(content, rootPattern, true);
+			String attributeName = null;
+			String attributeValue = null;
+			boolean equals = false;
+			Element element = null;
+			if (!newElement && current instanceof Element) {
+				element = (Element) current;
+			}
+
+			boolean skip = false;
+			String token = null;
+			while (skip || tokenizer.hasMoreTokens()) {
+				if (!skip) {
+					token = tokenizer.nextToken(rootPattern).trim();
+				}
+				skip = false;
+				if (token.length() == 0) {
+					continue;
+				}
+				if (element == null) {
+					element = createElement(token);
+				} else {
+					if (token.equals("=")) {
+						equals = true;
+						if ("xpath".equalsIgnoreCase(attributeName)) {
+							attributeValue = tokenizer.nextToken(",");
+						}
+						continue;
+					}
+					if (token.equals(",")) {
+						if (attributeName != null) {
+							if (attributeValue != null) {
+								Attribute attribute = new Attribute(normalizeAttrNamespace(current.getNamespace()), attributeName, elementManager.generateID(current.getName()));
+								if (isExpendedProperty(attributeName) 
+										&& "Binding".equalsIgnoreCase(element.getName())) {
+									attributeValue = expandNamespaces(element, attributeValue);
+								}
+								handleContent(attribute, attributeValue);
+								element.setAttribute(attribute);
+								current = attribute;
+							} else {
+								element.setContent(attributeName);
+							}
+							attributeName = null;
+							attributeValue = null;
+							equals = false;
+						}
+					} else {
+						if (attributeName == null) {
+							attributeName = token;
+						} else {
+							StringBuilder builder = new StringBuilder();
+							builder.append(token);
+							if (token.startsWith("{")) {
+								int level = 1;
+								while (tokenizer.hasMoreTokens() && level > 0) {
+									String value = tokenizer.nextToken("{}");
+									if (value.equals("{")) {
+										level++;
+									} else if (value.equals("}")) {
+										level--;
+									}
+									builder.append(value);
+								}
+							}
+							attributeValue = builder.toString();
+
+							try {
+								token = tokenizer.nextToken(rootPattern).trim();
+								skip = true;
+								continue;
+							} catch (NoSuchElementException e) {
+							}
+						}
+					}
+				}
+				skip = false;
+			}
+
+			if (equals) {
+				Attribute attribute = new Attribute(normalizeAttrNamespace(current.getNamespace()), attributeName, elementManager.generateID(current.getName()));
+				if (isExpendedProperty(attributeName) && "Binding".equalsIgnoreCase(element.getName())) {
+					attributeValue = expandNamespaces(element, attributeValue);
+				}
+				
+				if (attributeValue != null) {
+					handleContent(attribute, attributeValue);
+					element.setAttribute(attribute);
+				} else {
+					element.setAttribute(attribute);
+					current = attribute;
+				}
+			} else if (attributeName != null) {
+				int index = attributeName.indexOf(":");
+				if (index != -1) {
+					element = createElement(attributeName);
+					current = current.getParent();
+				} else {
+					current.setContent(attributeName);
+				}
+			}
+		}
+	};
+	
+	static boolean isExpendedProperty(String name) {
+		// TODO need a generic solution for each property of Binding 
+		for (String propertyName : BINDING_PROPERTIES) {
+			if (propertyName.equalsIgnoreCase(name)) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	protected String expandNamespaces(DocumentObject element, String value) {
+		if (value.startsWith("{") || (value.indexOf(':') == -1)) {
+			return value;
+		}
+		int length = IConstants.XAML_CLR_NAMESPACE_PROTO.length();
+		for (String prefix : namespaceMapping.keySet()) {
+			String namespace = namespaceMapping.get(prefix);
+			if (namespace.startsWith(IConstants.XAML_CLR_NAMESPACE_PROTO)) {
+				String packageName = namespace.substring(length);
+				value = value.replace(prefix + ":", packageName + '.');
+			}
+		}
+		return value;
+	}
+	
+	/**
+	 * Default constructor.
+	 * 
+	 * @param manager
+	 *            loader instance.
+	 */
+	public ElementHandler(ElementManager elementManager) {
+		this.ignoreSystemProcession = false;
+		this.hasSetDefaultEncoding = false;
+		this.elementManager = elementManager;
+	}
+
+	/**
+	 * Internal constructor.
+	 * 
+	 * @param loader
+	 *            loader instance.
+	 * @param parent
+	 *            the parent element of loading stream.
+	 */
+	public ElementHandler(DocumentObject parent, ElementManager elementManager) {
+		if (parent != null) {
+			elementStack.push(parent);
+			bufferStack.push(textBuffer);
+		}
+		ignoreSystemProcession = true;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.xml.sax.helpers.DefaultHandler#setDocumentLocator(org.xml.sax.Locator)
+	 */
+	@Override
+	public void setDocumentLocator(Locator locator) {
+		this.locator = locator;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.xml.sax.helpers.DefaultHandler#startDocument()
+	 */
+	@Override
+	public void startDocument() throws SAXException {
+		elementIndexStack = new Stack<Integer>();
+		elementIndexStack.push(0);
+		switchStack = new Stack<Boolean>();
+		defaultNamespace = IConstants.XWT_NAMESPACE;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.xml.sax.helpers.DefaultHandler#startPrefixMapping(java.lang.String, java.lang.String)
+	 */
+	@Override
+	public void startPrefixMapping(String prefix, String uri) throws SAXException {
+		if (prefix.length() == 0 && !ignoreSystemProcession) {
+			defaultNamespace = uri;
+		}
+		namespaceMapping.put(prefix, uri);
+	}
+
+	public void endPrefixMapping(String prefix) throws SAXException {
+		namespaceMapping.remove(prefix);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.xml.sax.helpers.DefaultHandler#endDocument()
+	 */
+	@Override
+	public void endDocument() throws SAXException {
+		elementStack.clear();
+		bufferStack.clear();
+		switchStack.clear();
+		switchStack = null;
+		defaultNamespace = null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.xml.sax.helpers.DefaultHandler#characters(char[], int, int)
+	 */
+	@Override
+	public void characters(char[] arg0, int arg1, int arg2) throws SAXException {
+
+		if (!switchStack.isEmpty() && !switchStack.peek()) {
+			return;
+		}
+
+		String string = new String(arg0, arg1, arg2);
+		if (string.length() > 0) {
+			if (textBuffer == null) {
+				textBuffer = new StringBuffer(string);
+			} else {
+				textBuffer.append(string);
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.xml.sax.helpers.DefaultHandler#skippedEntity(java.lang.String)
+	 */
+	public void skippedEntity(String name) throws SAXException {
+		super.skippedEntity(name);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.xml.sax.helpers.DefaultHandler#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)
+	 */
+	@Override
+	public void startElement(String uri, String localName, String qName, Attributes attrs) throws SAXException {
+
+		// Set xml's encoding to default.
+		if (!ignoreSystemProcession && !hasSetDefaultEncoding) {
+			if (locator instanceof Locator2) {
+				Locator2 locator2 = (Locator2) locator;
+				String encoding = locator2.getEncoding();
+				if (encoding != null && encoding.length() > 0) {
+					elementManager.setEncoding(encoding);
+				}
+			}
+			hasSetDefaultEncoding = true;
+		}
+
+		uri = normalizeNamespace(uri);
+
+		// If super condition does not allow parse children, ignore it.
+		if (!switchStack.isEmpty() && !switchStack.peek()) {
+			if (uri.equalsIgnoreCase(IConstants.XWT_NAMESPACE)) {
+				if ("Switch".equals(localName)) {
+					// If children is switch element, than set false to it.
+					switchStack.push(false);
+				}
+			}
+			return;
+		}
+
+		if (localName.indexOf('.') > 0) {
+			preProperty(uri, localName, attrs);
+		} else {
+			preElement(uri, localName, attrs);
+		}
+
+		elementIndexStack.push(0);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.xml.sax.helpers.DefaultHandler#endElement(java.lang.String, java.lang.String, java.lang.String)
+	 */
+	@Override
+	public void endElement(String uri, String localName, String qName) throws SAXException {
+
+		elementIndexStack.pop();
+		if (!elementIndexStack.isEmpty()) {
+			int nextIndex = elementIndexStack.pop();
+			elementIndexStack.push(nextIndex + 1);
+		}
+
+		uri = normalizeNamespace(uri);
+
+		// If super condition does not allow parse children, ignore it.
+		if (!switchStack.isEmpty() && !switchStack.peek()) {
+			if (uri.equalsIgnoreCase(IConstants.XWT_NAMESPACE)) {
+				if ("Switch".equals(localName)) {
+					switchStack.pop();
+				}
+			}
+			return;
+		}
+
+		if (!elementStack.isEmpty()) {
+			// remove current node from stack
+			DocumentObject element = elementStack.peek();
+
+			if (element instanceof Attribute) {
+				postProperty(uri, localName);
+			} else {
+				postElement(uri, localName);
+			}
+		}
+	}
+
+	private void preElement(String namespace, String name, Attributes attrs) throws SAXException {
+
+		// Process element ID
+
+		namespace = normalizeNamespace(namespace);
+		name = normalizeName(name);
+		if (name.equalsIgnoreCase("xdata")) {
+			needNormalizeName = false;
+		}
+		// Check the reference element.
+		String id = ElementManager.generateID(name);
+
+		// Check the same id elements.
+		if (elementManager.hasElement(id)) {
+			throw new SAXException(getFormattedMessage("Element already exists: ", id));
+		}
+
+		// Process attributes: original, external
+		Set<Attribute> attributes = new HashSet<Attribute>();
+		for (int i = 0, len = attrs.getLength(); i < len; i++) {
+			String attrUri = normalizeAttrNamespace(attrs.getURI(i));
+			String attrName = attrs.getLocalName(i);
+
+			Attribute attribute;
+			int index = attrName.lastIndexOf('.');
+			if (index != -1) {
+				String prefix = normalizeName(attrName.substring(0, index));
+				String attributeName = (XWT.isXWTNamespace(attrUri) ? normalizeName(attrName.substring(index + 1)) : attrName);
+
+				attribute = new Attribute(attrUri, attributeName, id);
+				attribute.setNamePrefix(prefix);
+			} else {
+				attribute = new Attribute(attrUri, (XWT.isXWTNamespace(attrUri) ? normalizeName(attrName) : attrName), id);
+			}
+			handleContent(attribute, attrs.getValue(i));
+			attributes.add(attribute);
+		}
+
+		// Create or reference element.
+		Element element = new Element(namespace, name, getIndexPath(), attributes, namespaceMapping);
+		element.setId(id);
+
+		// Add current node to stack
+		if (!elementStack.isEmpty()) {
+			elementStack.peek().addChild(element);
+		}
+
+		elementStack.push(element);
+		bufferStack.push(textBuffer);
+		textBuffer = null;
+
+		// Register to the element registry
+		elementManager.preElement(element);
+	}
+
+	private void postElement(String namespace, String name) throws SAXException {
+
+		// : The same as postReference : //
+
+		if (!elementStack.isEmpty()) {
+			// remove current node from stack
+			DocumentObject element = elementStack.pop();
+
+			// Setting element text content
+			if (textBuffer != null) {
+				String text = textBuffer.toString().trim();
+				if (text.length() > 0) {
+					handleContent(element, text);
+				}
+			}
+			textBuffer = bufferStack.pop();
+
+			// Post the element registration.
+			elementManager.postElement((Element) element);
+		}
+
+		if (name.equalsIgnoreCase("xdata")) {
+			needNormalizeName = true;
+		}
+	}
+
+	protected void handleContent(DocumentObject element, String text) {
+		if (text.startsWith("{") && text.endsWith("}")) {
+			extensionParser.parse(element, text);
+			return;
+		} else {
+			// handle the case: <x:Array Type="ns:Type" >
+			if (IConstants.XAML_X_TYPE.equals(element.getName()) || IConstants.XAML_X_STATIC.equals(element.getName())) {
+				int index = text.indexOf(':');
+				if (index != -1) {
+					String ns = text.substring(0, index);
+					String content = text.substring(index + 1);
+					String namespace = namespaceMapping.get(ns);
+					if (namespace != null) {
+						Element childElement = new Element(namespace, content, namespaceMapping);
+						childElement.setId(elementManager.generateID(element.getName()));
+						element.addChild(childElement);
+						return;
+					}
+				}
+			}
+		}
+		if (element instanceof Attribute
+				&& IConstants.XWT_X_NAMESPACE.equals(element.getNamespace())) {
+			if (IConstants.XAML_STYLE.equalsIgnoreCase(element.getName())
+					|| IConstants.XAML_X_CLASS.equalsIgnoreCase(element
+							.getName())
+					|| IConstants.XAML_X_CLASS_FACTORY.equalsIgnoreCase(element
+							.getName())) {
+				// handle the expansion of x:Style = "(j:class).variable"
+				// and handle the expansion of x:Class = "(j:class).variable"
+				text = expandNamespaces(element, text);
+			}
+		}
+		element.setContent(text);
+	}
+
+	/**
+	 * It is compatible with XAML.
+	 * <p>
+	 * It must support the following features:
+	 * 
+	 * 1. <Panel> <Button> <Button.Content>Hello World</Button.Content> </Button> </Panel>
+	 * 
+	 * 2. <Panel> <Panel.Composite> <Button Content="Hello World" /> </Panel.Composite> </Panel>
+	 * 
+	 * 3. <Panel> <Panel.Composite> <Button> <Button.Content>Hello World</Button.Content> </Button> </Panel.Composite> </Panel>
+	 * 
+	 * 4. <Panel> <Panel.Composite> <Button> <Button.Content>Hello</Button.Content> </Button> <Button> <Button.Content>World</Button.Content> </Button> </Panel.Composite> </Panel>
+	 * </p>
+	 * 
+	 * @param namespace
+	 *            attribute namespace
+	 * @param name
+	 *            attribute full name. like: Button.Content
+	 */
+	private void preProperty(String namespace, String name, Attributes attrs) throws SAXException {
+		String elementTag = normalizeName(name.substring(0, name.indexOf('.')));
+		String attributeName = (XWT.isXWTNamespace(namespace) ? normalizeName(name.substring(name.indexOf('.') + 1)) : name);
+		String elementId = null;
+
+		// Search the owner element and get the ID.
+		for (int i = elementStack.size() - 1; i >= 0; i--) {
+			DocumentObject element = elementStack.get(i);
+			if (element instanceof Element && element.getName().equals(elementTag)) {
+				elementId = element.getId();
+				break;
+			}
+		}
+
+		if (elementId == null) {
+			preElement(namespace, name, attrs);
+		} else {
+			namespace = normalizeNamespace(namespace);
+			// Process attributes: original, external
+			Collection<Attribute> collection = new ArrayList<Attribute>();
+			for (int i = 0, len = attrs.getLength(); i < len; i++) {
+
+				String attrUri = normalizeNamespace(attrs.getURI(i));
+				String attrName = attrs.getLocalName(i);
+
+				Attribute attr;
+				int index = attrName.lastIndexOf('.');
+				if (index != -1) {
+					String prefix = normalizeName(attrName.substring(0, index));
+					String aName = (XWT.isXWTNamespace(namespace) ? normalizeName(attrName.substring(index + 1)) : attrName);
+					attr = new Attribute(attrUri, aName, elementId);
+					attr.setNamePrefix(prefix);
+				} else {
+					attr = new Attribute(attrUri, (XWT.isXWTNamespace(namespace) ? normalizeName(attrName) : attrName), elementId);
+				}
+				handleContent(attr, attrs.getValue(i));
+				collection.add(attr);
+			}
+
+			Attribute attribute = new Attribute(normalizeAttrNamespace(namespace), attributeName, getIndexPath(), elementId, collection);
+			elementStack.push(attribute);
+			bufferStack.push(textBuffer);
+			textBuffer = null;
+		}
+	}
+
+	/**
+	 * @see #preProperty(String, String)
+	 */
+	private void postProperty(String namespace, String name) throws SAXException {
+		if (!elementStack.isEmpty()) {
+			// remove current node from stack
+			Attribute attribute = (Attribute) elementStack.pop();
+
+			// Setting attribute content
+			if (textBuffer != null) {
+				String text = textBuffer.toString().trim();
+				if (text.length() > 0) {
+					handleContent(attribute, text);
+				}
+			}
+			textBuffer = bufferStack.pop();
+
+			Element element = elementManager.getElement(attribute.getId());
+			element.setAttribute(attribute);
+		}
+	}
+
+	/**
+	 * Normalize the namespace string. If uri is null or length is zero, returns default namespace.
+	 * 
+	 * @param uri
+	 *            The namespace which to normalize.
+	 * @return Returns the normalized namespace.
+	 */
+	private String normalizeNamespace(String uri) {
+		if (uri == null || uri.length() == 0) {
+			uri = defaultNamespace;
+		}
+		if (uri.startsWith(IConstants.XAML_CLR_NAMESPACE_PROTO)) {
+			return uri;
+		}
+		return uri.toLowerCase();
+	}
+
+	/**
+	 * Normalize the namespace string. If uri is null or length is zero, returns default namespace.
+	 * 
+	 * @param uri
+	 *            The namespace which to normalize.
+	 * @return Returns the normalized namespace.
+	 */
+	private String normalizeAttrNamespace(String uri) {
+		if (uri == null || uri.length() == 0) {
+			uri = defaultNamespace;
+		}
+		if (uri.startsWith(IConstants.XAML_CLR_NAMESPACE_PROTO)) {
+			uri = defaultNamespace;
+		}
+		return uri.toLowerCase();
+	}
+
+	/**
+	 * <p>
+	 * Normalize the tag name to class-formal format.
+	 * </p>
+	 * <p>
+	 * e.g. Normalize &quot;font-face-name&quot; to &quot;FontFaceName&quot;
+	 * </p>
+	 * 
+	 * @param tagName
+	 *            The tag name which to normalize.
+	 * @return the normalized tag name.
+	 */
+	private String normalizeName(String tagName) {
+		if (!needNormalizeName) {
+			return tagName;
+		}
+		StringBuffer buffer = new StringBuffer();
+
+		boolean isH = false;
+		for (int i = 0, len = tagName.length(); i < len; i++) {
+			char c = tagName.charAt(i);
+			if (i == 0) {
+				buffer.append(Character.toUpperCase(c));
+			} else {
+				switch (c) {
+				case '-':
+					isH = true;
+					break;
+				case '.':
+					isH = true;
+					buffer.append(c);
+					break;
+				default:
+					if (isH) {
+						buffer.append(Character.toUpperCase(c));
+						isH = false;
+					} else {
+						buffer.append(c);
+					}
+					break;
+				}
+			}
+		}
+		return buffer.toString();
+	}
+
+	/**
+	 * Get attribute value in default namespace scope.
+	 * 
+	 * @param attrs
+	 *            sax attributes.
+	 * @param name
+	 *            attribute name.
+	 * @return Returns attribute value. If attribute not found, returns null;
+	 */
+	private String getDefaultAttribute(Attributes attrs, String name) {
+		String value = attrs.getValue(IConstants.XWT_NAMESPACE, name);
+		if (value == null || value.length() == 0) {
+			value = attrs.getValue(name);
+		}
+		if (value == null || value.length() == 0) {
+			return null;
+		} else {
+			return value;
+		}
+	}
+
+	private String getFormattedMessage(String msg, Object... args) {
+		StringBuffer buffer = new StringBuffer("[" + locator.getLineNumber() + "," + locator.getColumnNumber() + "] ");
+		buffer.append(msg);
+		return MessageFormat.format(buffer.toString(), args);
+	}
+
+	/**
+	 * @return the '/' separated, zero based, path of current {@link Element}.
+	 */
+	private String getIndexPath() {
+		StringBuilder sb = new StringBuilder();
+		for (Integer index : elementIndexStack) {
+			if (sb.length() != 0) {
+				sb.append('/');
+			}
+			sb.append(index.intValue());
+		}
+		return sb.toString();
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/ElementManager.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/ElementManager.java
new file mode 100644
index 0000000..fa44374
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/ElementManager.java
@@ -0,0 +1,437 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2014 Soyatec (http://www.soyatec.com), CEA, and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *     Christian W. Damus (CEA) - Fix failure to propagate stream handlers of URLs (CDO)
+ *     Christian W. Damus (CEA) - bug 435432
+ *     
+ *******************************************************************************/
+package org.eclipse.xwt.internal.xml;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PushbackInputStream;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Random;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.callback.IBeforeParsingCallback;
+import org.eclipse.xwt.internal.core.Core;
+import org.xml.sax.ErrorHandler;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+
+/**
+ * @author yyang
+ * @since 1.0
+ */
+public class ElementManager {
+
+	private DocumentRoot documentRoot;
+
+	private SAXParserFactory parserFactory;
+
+	private ErrorHandler errorHandler;
+
+	private String encoding;
+
+	/**
+	 * Cache all elements.
+	 */
+	private Map<String, Element> elements;
+
+	/**
+	 * Only cache root elements.
+	 */
+	private Element rootElement;
+
+	private Element xDataElement;
+
+	private static Random RANDOM = new Random();
+
+	public static String generateID(String typeName) {
+		return typeName + RANDOM.nextInt(Integer.MAX_VALUE);
+	}
+
+	public ElementManager() {
+		this(null);
+	}
+
+	public ElementManager(URL url) {
+		this.documentRoot = new DocumentRoot();
+		this.elements = new HashMap<String, Element>();
+		this.encoding = System.getProperty("file.encoding");
+
+		this.parserFactory = SAXParserFactory.newInstance();
+		this.parserFactory.setNamespaceAware(true);
+		this.parserFactory.setValidating(true);
+		if (url != null) {
+			try {
+				documentRoot.init(null, url);
+			} catch (IOException e) {
+			}
+		}
+		
+		this.errorHandler = new ErrorHandler() {
+
+			// IFrameworkAdaptor adaptor =
+			// FrameworkUtil.getFrameworkAdaptor(context);
+
+			/*
+			 * (non-Javadoc)
+			 * 
+			 * @see
+			 * org.xml.sax.ErrorHandler#error(org.xml.sax.SAXParseException)
+			 */
+			public void error(SAXParseException exception) throws SAXException {
+				Exception cause = exception.getException();
+				try {
+					if (cause != null) {
+						XWT.getLogger().error(cause);
+					} else {
+						XWT.getLogger().error(exception);
+					}
+				} catch (Exception e) {
+					if (cause != null) {
+						throw new SAXException(exception.getLocalizedMessage(),
+								cause);
+					} else {
+						throw new SAXException(exception);
+					}
+				}
+			}
+
+			/*
+			 * (non-Javadoc)
+			 * 
+			 * @see
+			 * org.xml.sax.ErrorHandler#fatalError(org.xml.sax.SAXParseException
+			 * )
+			 */
+			public void fatalError(SAXParseException exception)
+					throws SAXException {
+				Exception cause = exception.getException();
+				try {
+					if (cause != null) {
+						XWT.getLogger().error(cause);
+					} else {
+						XWT.getLogger().error(exception);
+					}
+				} catch (Exception e) {
+					if (cause != null) {
+						throw new SAXException(exception.getLocalizedMessage(),
+								cause);
+					} else {
+						throw new SAXException(exception);
+					}
+				}
+				throw new RuntimeException();
+			}
+
+			/*
+			 * (non-Javadoc)
+			 * 
+			 * @see
+			 * org.xml.sax.ErrorHandler#warning(org.xml.sax.SAXParseException)
+			 */
+			public void warning(SAXParseException exception)
+					throws SAXException {
+				Exception cause = exception.getException();
+				try {
+					if (cause != null) {
+						XWT.getLogger().error(cause);
+					} else {
+						XWT.getLogger().error(exception);
+					}
+				} catch (Exception e) {
+					if (cause != null) {
+						throw new SAXException(exception.getLocalizedMessage(),
+								cause);
+					} else {
+						throw new SAXException(exception);
+					}
+				}
+			}
+		};
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.IElementManager#getDocumentRoot()
+	 */
+	public DocumentRoot getDocumentRoot() {
+		return documentRoot;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.IElementManager#getElement(java.lang.String)
+	 */
+	public Element getElement(String id) {
+		assert id != null;
+		return elements.get(id);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.IElementManager#getElements()
+	 */
+	public String[] getElements() {
+		return elements.keySet().toArray(IConstants.EMPTY_STRING_ARRAY);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.IElementManager#getEncoding()
+	 */
+	public String getEncoding() {
+		return encoding;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.IElementManager#getRootElement()
+	 */
+	public Element getRootElement() {
+		return rootElement;
+	}
+	
+	/**
+	 * Sets my root element (either loaded by me or perhaps obtained from some cache or other source).
+	 * 
+	 * @param rootElement
+	 *        my root element
+	 */
+	public void setRootElement(Element rootElement) {
+		this.rootElement = rootElement;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.soyatec.xaml.IElementManager#hasElement(java.lang.String)
+	 */
+	public boolean hasElement(String id) {
+		assert id != null;
+		return elements.containsKey(id);
+	}
+
+	protected void setEncoding(String encoding) {
+		assert encoding != null;
+		this.encoding = encoding;
+	}
+
+	/**
+	 * @see Core
+	 */
+	public Element load(URL url, IBeforeParsingCallback callback) throws Exception {
+
+		reset();
+
+		if (callback == null) {
+			// Initialize document root
+			documentRoot.init(null, url);
+
+			InputStream input = url.openStream();
+			try {
+				doLoad(input);
+			} finally {
+				input.close();
+			}
+
+			input = documentRoot.openStream();
+			try {
+				loadXData(input);
+			} finally {
+				input.close();
+			}
+		}
+		else {
+			String content = callback.onParsing(url.toString());
+			
+			documentRoot.init(null, new URL(url, content)); // preserve the stream handler
+
+			InputStream input = new ByteArrayInputStream(content.getBytes());
+			try {
+				doLoad(input);
+			} finally {
+				input.close();
+			}
+
+			input = documentRoot.openStream();
+			try {
+				loadXData(input);
+			} finally {
+				input.close();
+			}
+		}
+		return rootElement;			
+	}
+
+	/**
+	 * @see Core
+	 */
+	public Element load(InputStream stream, URL url) throws Exception {
+
+		reset();
+
+		// Initialize document root
+		PushbackInputStream pis = null;
+		if (stream != null) {
+			if (stream instanceof PushbackInputStream) {
+				pis = (PushbackInputStream) stream;
+			} else {
+				pis = new PushbackInputStream(stream, 4);
+			}
+		}
+
+		documentRoot.init(pis, url);
+
+		InputStream input = pis;
+		if (pis == null) {
+			input = documentRoot.openStream();
+		}
+		doLoad(input);
+
+		input = documentRoot.openStream();
+		loadXData(input);
+		input.close();
+		return rootElement;
+	}
+
+	/**
+	 * @see ElementHandler
+	 */
+	public void load(InputStream stream, DocumentObject parent)
+			throws SAXException {
+		assert stream != null;
+
+		ElementHandler contentHandler = new ElementHandler(parent, this);
+		try {
+			SAXParser parser = parserFactory.newSAXParser();
+			parser.getXMLReader().setErrorHandler(errorHandler);
+			parser.parse(stream, contentHandler);
+		} catch (ParserConfigurationException pce) {
+			throw new SAXException(pce.getLocalizedMessage(), pce);
+		} catch (IOException ioe) {
+			throw new SAXException(ioe.getLocalizedMessage(), ioe);
+		}
+	}
+
+	private void loadXData(InputStream stream) {
+		if (xDataElement != null) {
+			try {
+				SAXParser parser = parserFactory.newSAXParser();
+				parser.getXMLReader().setErrorHandler(errorHandler);
+				StringBuilder out = new StringBuilder();
+				parser.parse(stream, new XDataHandler(out));
+				String content = out.toString();
+				xDataElement.setContent(content);
+			} catch (ParserConfigurationException e) {
+			} catch (SAXException e) {
+			} catch (IOException e) {
+			}
+		}
+	}
+
+	/**
+	 * @see ElementHandler
+	 */
+	protected void preElement(Element element) {
+		assert element != null;
+		assert !elements.containsKey(element.getId()) : "Element already exists in registry: "
+				+ element.getId();
+
+		// Add to cache.
+		elements.put(element.getId(), element);
+
+		// If it is a runnable element, add to top-level cache.
+		if (element.getParent() == null && rootElement == null) {
+			rootElement = element;
+		}
+	}
+
+	/**
+	 * @see ElementHandler
+	 */
+	protected void postElement(Element element) {
+		assert element != null;
+		assert elements.containsKey(element.getId()) : "Element not found in registry: "
+				+ element.getId();
+		if ("xdata".equalsIgnoreCase(element.getName())
+				&& IConstants.XWT_X_NAMESPACE.equals(element.getNamespace())) {
+			xDataElement = element;
+		}
+	}
+
+	/**
+	 * @see #load(File)
+	 * @see #load(URL)
+	 */
+	private void doLoad(InputStream stream) throws Exception {
+		assert stream != null;
+		ElementHandler contentHandler = new ElementHandler(this);
+		try {
+			SAXParser parser = parserFactory.newSAXParser();
+			parser.getXMLReader().setErrorHandler(errorHandler);
+			parser.parse(stream, contentHandler);
+		} catch (SAXException saxe) {
+			// Exception cause = saxe.getException();
+			// try {
+			// if (cause != null) {
+			// XWT.getLogger().error(cause);
+			// } else {
+			// XWT.getLogger().error(saxe);
+			// }
+			// } catch (Exception e) {
+			// // e.printStackTrace();
+			// }
+			throw saxe;
+		} catch (ParserConfigurationException pce) {
+			try {
+				XWT.getLogger().error(pce);
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+			throw pce;
+		} catch (IOException ioe) {
+			try {
+				XWT.getLogger().error(ioe);
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+			throw ioe;
+		}
+	}
+
+	/**
+	 * @see #load(File)
+	 * @see #load(URL)
+	 */
+	private void reset() {
+
+		// Reset code base.
+		documentRoot.reset();
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/IElementCache.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/IElementCache.java
new file mode 100644
index 0000000..527148f
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/IElementCache.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2014 CEA and others.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *   Christian W. Damus (CEA) - Initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.xwt.internal.xml;
+
+import java.net.URL;
+
+
+/**
+ * A cache of reusable XML elements previously parsed from specific {@code URL}s. Implementations may selectively
+ * cache content, for example caching only elements for <tt>platform:/resource</tt> or OSGi bundle URLs because
+ * others such as HTTP URLs reference potentially changeable resources.
+ */
+public interface IElementCache {
+
+	/** An implementation of the protocol that doesn't actually cache anything. */
+	IElementCache NULL = new IElementCache() {
+
+		public Element getElement(URL url) {
+			return null;
+		}
+
+		public void cache(URL url, Element element) {
+			// Pass
+		}
+	};
+
+	/**
+	 * Obtains the previously cached element parsed from the given {@code url}.
+	 * 
+	 * @param url
+	 *        the URL of an XWT resource
+	 * 
+	 * @return the previously parsed contents of the resource, or {@code null} if the cache has nothing for this {@code url}
+	 */
+	Element getElement(URL url);
+
+	/**
+	 * Adds an {@code element} parsed from the resource indicated by the given {@code url}.
+	 * 
+	 * @param url
+	 *        the URL of an XWT resource that was parsed
+	 * @param element
+	 *        the element that was parsed from it
+	 */
+	void cache(URL url, Element element);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/XDataHandler.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/XDataHandler.java
new file mode 100644
index 0000000..3f1952c
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/internal/xml/XDataHandler.java
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.internal.xml;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.helpers.DefaultHandler;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class XDataHandler extends DefaultHandler implements ContentHandler {
+
+	private boolean namespaceBegin = false;
+	private String currentNamespace;
+	private String currentNamespaceUri;
+	private StringBuilder out;
+	private boolean started;
+
+	public XDataHandler(StringBuilder out) {
+		this.out = out;
+	}
+
+	public void startPrefixMapping(String prefix, String uri) {
+		namespaceBegin = true;
+		currentNamespace = prefix;
+		currentNamespaceUri = uri;
+	}
+
+	public void startElement(String namespaceURI, String localName, String qName, Attributes atts) {
+		if (started) {
+			out.append("<" + qName);
+			if (namespaceBegin) {
+				out.append(" xmlns:" + currentNamespace + "=\"" + currentNamespaceUri + "\"");
+				namespaceBegin = false;
+			}
+			for (int i = 0; i < atts.getLength(); i++) {
+				out.append(" " + atts.getQName(i) + "=\"" + atts.getValue(i) + "\"");
+			}
+			out.append(">");
+		}
+		if (localName.equalsIgnoreCase("xdata")) {
+			started = true;
+		}
+	}
+
+	public void endElement(String namespaceURI, String localName, String qName) {
+		if (localName.equalsIgnoreCase("xdata")) {
+			started = false;
+		}
+		if (started) {
+			out.append("</" + qName + ">");
+		}
+	}
+
+	public void characters(char[] ch, int start, int length) {
+		if (started) {
+			for (int i = start; i < start + length; i++) {
+				out.append(ch[i]);
+			}
+		}
+	}
+
+	public void ignorableWhitespace(char[] ch, int start, int length) {
+		if (started) {
+			for (int i = start; i < start + length; i++) {
+				out.append(ch[i]);
+			}
+		}
+	}
+
+	public void processingInstruction(String target, String data) {
+		if (started) {
+			out.append("<?" + target + " " + data + "?>");
+		}
+	}
+
+	public void skippedEntity(String name) {
+		if (started) {
+			out.append("&" + name + ";");
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/Controller.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/Controller.java
new file mode 100644
index 0000000..6560a20
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/Controller.java
@@ -0,0 +1,352 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.IEventConstants;
+import org.eclipse.xwt.IEventInvoker;
+import org.eclipse.xwt.XWTMaps;
+import org.eclipse.xwt.internal.core.IEventController;
+import org.eclipse.xwt.metadata.IEvent;
+
+public class Controller implements Listener, IEventController {
+	int waterMark = 0;
+	protected int[] eventTypes = null;
+	protected String[] names = null;
+	protected Object[] handlers = null;
+	protected Object[] receivers = null;
+	protected Object[] args = null;
+
+	protected void fireEvent(Event e) {
+		int eventType = e.type;
+		if (eventTypes == null) {
+			return;
+		}
+
+		for (int i = 0; i < eventTypes.length; i++) {
+			if (eventTypes[i] == eventType) {
+				Object handler = handlers[i];
+				if (handler instanceof IEventInvoker) {
+					IEventInvoker eventInvoker = (IEventInvoker) handler;
+					try {
+						eventInvoker.invoke(args[i], e);
+					} catch (Exception e1) {
+						e1.printStackTrace();
+						return;
+					}
+				} else {
+					Method method = (Method) handler;
+					try {
+						method.setAccessible(true);
+						// support old style
+						if (method.getParameterTypes().length == 1) {
+							method.invoke(receivers[i], e);
+						} else if (method.getParameterTypes().length == 0) {
+							method.invoke(receivers[i]);
+						} else {
+							method.invoke(receivers[i], args[i], e);
+						}
+					} catch (Exception e1) {
+						e1.printStackTrace();
+						return;
+					}
+				}
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.javabean.IEventHandler#hasEvent(java.lang.Object,
+	 * org.eclipse.xwt.metadata.IEvent)
+	 */
+	public boolean hasEvent(Object receiver, IEvent event) {
+		if (receivers == null) {
+			return false;
+		}
+		for (int i = 0; i < receivers.length; i++) {
+			if (receivers[i] == receiver
+					&& names[i].equalsIgnoreCase(event.getName())) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.javabean.IEventHandler#addEvent(int,
+	 * java.lang.String, org.eclipse.xwt.metadata.IEvent,
+	 * org.eclipse.swt.widgets.Widget, java.lang.Object, java.lang.Object,
+	 * java.lang.reflect.Method)
+	 */
+	public void addEvent(int eventType, String name, IEvent event,
+			Widget control, Object receiver, Object arg, Method method) {
+		doAddEvent(eventType, name, event, control, receiver, arg, method);
+	}
+
+	public void addEvent(int eventType, String name, IEvent event,
+			Widget control, Object arg, IEventInvoker eventInvoker) {
+		doAddEvent(eventType, name, event, control, null, arg, eventInvoker);
+	}
+
+	protected void doAddEvent(int eventType, String name, IEvent event,
+			Widget control, Object receiver, Object arg, Object method) {
+		if (eventTypes == null) {
+			eventTypes = new int[3];
+			handlers = new Method[3];
+			names = new String[3];
+			receivers = new Object[3];
+			args = new Object[3];
+		} else {
+			for (int i = 0; i < eventTypes.length; i++) {
+				if (eventTypes[i] == eventType && handlers[i] == method
+						&& receivers[i] == receivers && args[i] == arg) {
+					return;
+				}
+			}
+		}
+		if (waterMark >= eventTypes.length) {
+			int[] oldEventTypes = eventTypes;
+			Object[] oldHandlers = handlers;
+			Object[] oldReceivers = receivers;
+			Object[] oldNames = names;
+			Object[] oldArgs = args;
+
+			eventTypes = new int[waterMark + 3];
+			handlers = new Object[waterMark + 3];
+			receivers = new Object[waterMark + 3];
+			names = new String[waterMark + 3];
+			args = new Object[waterMark + 3];
+
+			System.arraycopy(oldEventTypes, 0, eventTypes, 0, waterMark);
+			System.arraycopy(oldHandlers, 0, handlers, 0, waterMark);
+			System.arraycopy(oldReceivers, 0, receivers, 0, waterMark);
+			System.arraycopy(oldArgs, 0, args, 0, waterMark);
+			System.arraycopy(oldNames, 0, names, 0, waterMark);
+		}
+
+		eventTypes[waterMark] = eventType;
+		handlers[waterMark] = method;
+		receivers[waterMark] = receiver;
+		args[waterMark] = arg;
+		names[waterMark++] = name;
+
+		if (eventType == IEventConstants.XWT_SWT_LOADED) {
+			int swt_paint = XWTMaps.getEvent("swt.paint");
+			if (swt_paint != SWT.None) { // for RAP integration
+				Listener[] listeners = control.getListeners(swt_paint);
+				if (listeners.length > 0) {
+					for (Listener listener : listeners) {
+						control.removeListener(swt_paint, listener);
+					}
+					control.addListener(swt_paint, new LoadedEventListener(
+							control));
+					for (Listener listener : listeners) {
+						control.addListener(swt_paint, listener);
+					}
+				} else {
+					control.addListener(swt_paint, new LoadedEventListener(
+							control));
+				}
+			}
+		}
+		control.addListener(eventType, this);
+	}
+
+	class LoadedEventListener implements Listener {
+		protected Widget control;
+
+		public LoadedEventListener(Widget control) {
+			this.control = control;
+		}
+
+		public void handleEvent(Event event) {
+			Event loadedEvent = copy(event);
+			loadedEvent.type = IEventConstants.XWT_SWT_LOADED;
+			if (XWTMaps.getEvent("swt.paint") != SWT.None) {
+				control.removeListener(XWTMaps.getEvent("swt.paint"), this);
+			}
+			Controller.this.handleEvent(loadedEvent);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.javabean.IEventHandler#setEvent(org.eclipse.xwt
+	 * .metadata.IEvent, org.eclipse.swt.widgets.Widget, java.lang.Object,
+	 * java.lang.Object, java.lang.reflect.Method)
+	 */
+	public void setEvent(IEvent event, Widget control, Object receiver,
+			Object arg, Method method) {
+		String name = event.getName();
+		int eventType = getEventTypeByName(name);
+		if (eventType != SWT.None) {
+			addEvent(eventType, name, event, control, receiver, arg, method);
+		}
+	}
+
+	public void setEvent(IEvent event, Widget control, Object arg,
+			IEventInvoker eventInvoker) {
+		String name = event.getName();
+		int eventType = getEventTypeByName(name);
+		if (eventType != SWT.None) {
+			doAddEvent(eventType, name, event, control, null, arg, eventInvoker);
+		}
+	}
+
+	public static Event copy(Event event) {
+		Event copyEvent = new Event();
+		for (Field field : event.getClass().getDeclaredFields()) {
+			try {
+				field.set(copyEvent, field.get(event));
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+		return copyEvent;
+	}
+
+	public static int getEventTypeByName(String name) {
+		if (IEventConstants.KEY_DOWN.equalsIgnoreCase(name)) {
+			return SWT.KeyDown;
+		} else if (IEventConstants.KEY_UP.equalsIgnoreCase(name)) {
+			return SWT.KeyUp;
+		} else if (IEventConstants.MOUSE_DOWN.equalsIgnoreCase(name)) {
+			return SWT.MouseDown;
+		} else if (IEventConstants.MOUSE_UP.equalsIgnoreCase(name)) {
+			return SWT.MouseUp;
+		} else if (IEventConstants.MOUSE_MOVE.equalsIgnoreCase(name)) {
+			return XWTMaps.getEvent("swt.mousemove");
+		} else if (IEventConstants.MOUSE_ENTER.equalsIgnoreCase(name)) {
+			return XWTMaps.getEvent("swt.mouseenter");
+		} else if (IEventConstants.MOUSE_EXIT.equalsIgnoreCase(name)) {
+			return XWTMaps.getEvent("swt.mouseexit");
+		} else if (IEventConstants.MOUSE_DOUBLE_CLICK.equalsIgnoreCase(name)) {
+			return SWT.MouseDoubleClick;
+		} else if (IEventConstants.PAINT.equalsIgnoreCase(name)) {
+			return XWTMaps.getEvent("swt.paint");
+		} else if (IEventConstants.MOVE.equalsIgnoreCase(name)) {
+			return SWT.Move;
+		} else if (IEventConstants.RESIZE.equalsIgnoreCase(name)) {
+			return SWT.Resize;
+		} else if (IEventConstants.DISPOSE.equalsIgnoreCase(name)) {
+			return SWT.Dispose;
+		} else if (IEventConstants.SELECTION.equalsIgnoreCase(name)) {
+			return SWT.Selection;
+		} else if (IEventConstants.DEFAULT_SELECTION.equalsIgnoreCase(name)) {
+			return SWT.DefaultSelection;
+		} else if (IEventConstants.FOCUS_IN.equalsIgnoreCase(name)) {
+			return SWT.FocusIn;
+		} else if (IEventConstants.FOCUS_OUT.equalsIgnoreCase(name)) {
+			return SWT.FocusOut;
+		} else if (IEventConstants.EXPAND.equalsIgnoreCase(name)) {
+			return SWT.Expand;
+		} else if (IEventConstants.COLLAPSE.equalsIgnoreCase(name)) {
+			return SWT.Collapse;
+		} else if (IEventConstants.ICONIFY.equalsIgnoreCase(name)) {
+			return XWTMaps.getEvent("swt.iconify");
+		} else if (IEventConstants.DEICONIFY.equalsIgnoreCase(name)) {
+			return XWTMaps.getEvent("swt.deiconify");
+		} else if (IEventConstants.CLOSE.equalsIgnoreCase(name)) {
+			return SWT.Close;
+		} else if (IEventConstants.SHOW.equalsIgnoreCase(name)) {
+			return SWT.Show;
+		} else if (IEventConstants.HIDE.equalsIgnoreCase(name)) {
+			return SWT.Hide;
+		} else if (IEventConstants.MODIFY.equalsIgnoreCase(name)) {
+			return SWT.Modify;
+		} else if (IEventConstants.VERIFY.equalsIgnoreCase(name)) {
+			return SWT.Verify;
+		} else if (IEventConstants.ACTIVATE.equalsIgnoreCase(name)) {
+			return SWT.Activate;
+		} else if (IEventConstants.DEACTIVATE.equalsIgnoreCase(name)) {
+			return SWT.Deactivate;
+		} else if (IEventConstants.HELP.equalsIgnoreCase(name)) {
+			return SWT.Help;
+		} else if (IEventConstants.DRAG_SELECT.equalsIgnoreCase(name)) {
+			return SWT.DragDetect;
+		} else if (IEventConstants.ARM.equalsIgnoreCase(name)) {
+			return SWT.Arm;
+		} else if (IEventConstants.TRAVERSE.equalsIgnoreCase(name)) {
+			return SWT.Traverse;
+		} else if (IEventConstants.MOUSE_HOVER.equalsIgnoreCase(name)) {
+			return XWTMaps.getEvent("swt.mousehover");
+		} else if (IEventConstants.HARD_KEY_DOWN.equalsIgnoreCase(name)) {
+			return XWTMaps.getEvent("swt.hardkeydown");
+		} else if (IEventConstants.HARD_KEY_UP.equalsIgnoreCase(name)) {
+			return XWTMaps.getEvent("swt.hardkeyup");
+		} else if (IEventConstants.MENU_DETECT.equalsIgnoreCase(name)) {
+			return SWT.MenuDetect;
+		} else if (IEventConstants.MOUSE_WHEEL.equalsIgnoreCase(name)) {
+			return XWTMaps.getEvent("swt.mousewheel");
+		} else if (IEventConstants.SETTINGS.equalsIgnoreCase(name)) {
+			return XWTMaps.getEvent("swt.settings");
+		} else if (IEventConstants.ERASE_ITEM.equalsIgnoreCase(name)) {
+			return XWTMaps.getEvent("swt.eraseitem");
+		} else if (IEventConstants.MEASURE_ITEM.equalsIgnoreCase(name)) {
+			return XWTMaps.getEvent("swt.measureitem");
+		} else if (IEventConstants.PAINT_ITEM.equalsIgnoreCase(name)) {
+			return XWTMaps.getEvent("swt.paintitem");
+		} else if (IEventConstants.XWT_LOADED.equalsIgnoreCase(name)
+				|| IEventConstants.XWT_LOADED_EVENT.equalsIgnoreCase(name)) {
+			return IEventConstants.XWT_SWT_LOADED;
+		}
+		// case SWT.PaintItem:
+		// firePaintItem(e);
+		// break;
+		// case DND.DragStart:
+		// dnde = new DNDEventWrapper(e);
+		// fireGiveFeedback(dnde);
+		// break;
+		// case DND.DragEnter:
+		// dnde = new DNDEventWrapper(e);
+		// fireDragEnter(dnde);
+		// break;
+		// case DND.DragLeave:
+		// dnde = new DNDEventWrapper(e);
+		// fireDragLeaves(dnde);
+		// break;
+		// case DND.DragOver:
+		// dnde = new DNDEventWrapper(e);
+		// fireDragOver(dnde);
+		// break;
+		// case DND.Drop:
+		// dnde = new DNDEventWrapper(e);
+		// fireDrop(dnde);
+		// break;
+		// }
+		return SWT.None;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.xwt.javabean.IEventHandler#handleEvent(org.eclipse.swt
+	 * .widgets.Event)
+	 */
+	public void handleEvent(Event e) {
+		fireEvent(e);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/IResourceCache.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/IResourceCache.java
new file mode 100644
index 0000000..bb443bd
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/IResourceCache.java
@@ -0,0 +1,65 @@
+/*****************************************************************************
+ * Copyright (c) 2017 EclipseSource and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *  EclipseSource - Initial API and implementation: Bug 521931
+ *
+ *****************************************************************************/
+package org.eclipse.xwt.javabean;
+
+import java.net.URL;
+
+import org.eclipse.xwt.metadata.IMetaclass;
+
+/**
+ * A Cache to store results of calls to {@link Class#getResource(String)}.
+ * The main usage is to speed-up access to User Controls
+ */
+public interface IResourceCache {
+
+	/**
+	 * Tests whether this cache contains a value for the given resource. Note that
+	 * the cache may contain a "null" value (if cacheResource(x, y, null) was
+	 * called), in which case "hasCached(x, y)" will return {@link Boolean#TRUE
+	 * true}.
+	 * 
+	 * @param metaclass
+	 * @param resourcePath
+	 * @return true if a value was cached for the (metaclass, resourcePath) pair,
+	 *         false otherwise.
+	 */
+	boolean hasCached(IMetaclass metaclass, String resourcePath);
+
+	/**
+	 * Returns the (potentially null) cached URL for this resource. Note: this
+	 * method doesn't may return null in two distinct cases:
+	 * <ul>
+	 * <li>The resource was never cached</li>
+	 * <li>The "null" value was cached</li>
+	 * </ul>
+	 * 
+	 * To distinguish between "null" and "unknown" values, use
+	 * {@link #hasCached(IMetaclass, String)}
+	 * 
+	 * @param metaclass
+	 * @param resourcePath
+	 * @return
+	 */
+	URL getCachedResource(IMetaclass metaclass, String resourcePath);
+
+	/**
+	 * Adds the specified (potentially null) resource to the cache.
+	 * 
+	 * @param metaclass
+	 * @param resourcePath
+	 * @param resource
+	 */
+	void cacheResource(IMetaclass metaclass, String resourcePath, URL resource);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/ResourceCache.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/ResourceCache.java
new file mode 100644
index 0000000..1361a23
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/ResourceCache.java
@@ -0,0 +1,77 @@
+/*****************************************************************************
+ * Copyright (c) 2017 EclipseSource and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *  EclipseSource - Initial API and implementation: Bug 521931
+ *
+ *****************************************************************************/
+package org.eclipse.xwt.javabean;
+
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.xwt.metadata.IMetaclass;
+
+/**
+ * <p>
+ * Default implementation of {@link IResourceCache}. This implementation stores
+ * the URL for each resource. The mapping is based on the
+ * {@link IMetaclass#getType() metaclass' type}, i.e. if two instances of
+ * {@link IMetaclass} have the same type (according to
+ * {@link Class#equals(Object)}), they will share the same cache.
+ * </p>
+ * <p>
+ * Cached URLs may be null (Typically when the resource doesn't exist).
+ * </p>
+ * 
+ * <p>
+ * This class also provides a {@link #getInstance() singleton} instance, which
+ * is the default shared cache for XWT applications.
+ * </p>
+ */
+public class ResourceCache implements IResourceCache {
+
+	/**
+	 * @return The default (and shared) {@link IResourceCache} for storing User
+	 *         control resources URLs
+	 */
+	public static IResourceCache getInstance() {
+		return instance;
+	}
+
+	@Override
+	public boolean hasCached(IMetaclass metaclass, String resourcePath) {
+		return getTypeCache(metaclass).containsKey(resourcePath);
+	}
+
+	@Override
+	public URL getCachedResource(IMetaclass metaclass, String resourcePath) {
+		return getTypeCache(metaclass).get(resourcePath);
+	}
+
+	@Override
+	public void cacheResource(IMetaclass metaclass, String resourcePath, URL resource) {
+		getTypeCache(metaclass).put(resourcePath, resource);
+	}
+
+	private Map<String, URL> getTypeCache(IMetaclass metaclass) {
+		Class<?> type = metaclass.getType();
+		if (!resourceCache.containsKey(type)) {
+			resourceCache.put(type, new HashMap<String, URL>());
+		}
+		return resourceCache.get(type);
+	}
+
+	private static IResourceCache instance = new ResourceCache();
+
+	private Map<Class<?>, Map<String, URL>> resourceCache = new HashMap<Class<?>, Map<String, URL>>();
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/ResourceLoader.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/ResourceLoader.java
new file mode 100644
index 0000000..c413c65
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/ResourceLoader.java
@@ -0,0 +1,2086 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean;
+
+import java.io.File;
+import java.lang.reflect.Array;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.StringTokenizer;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ControlEditor;
+import org.eclipse.swt.custom.TableEditor;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.ICLRFactory;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.IDataProvider;
+import org.eclipse.xwt.IEventHandler;
+import org.eclipse.xwt.IEventInvoker;
+import org.eclipse.xwt.IIndexedElement;
+import org.eclipse.xwt.ILoadingContext;
+import org.eclipse.xwt.INamespaceHandler;
+import org.eclipse.xwt.IStyle;
+import org.eclipse.xwt.IXWTLoader;
+import org.eclipse.xwt.ResourceDictionary;
+import org.eclipse.xwt.Tracking;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.XWTLoader;
+import org.eclipse.xwt.XWTMaps;
+import org.eclipse.xwt.annotation.UI;
+import org.eclipse.xwt.callback.ICreatedCallback;
+import org.eclipse.xwt.callback.ILoadedCallback;
+import org.eclipse.xwt.core.IBinding;
+import org.eclipse.xwt.core.IDynamicBinding;
+import org.eclipse.xwt.core.IDynamicValueBinding;
+import org.eclipse.xwt.core.IRenderingContext;
+import org.eclipse.xwt.core.IVisualElementLoader;
+import org.eclipse.xwt.core.Setter;
+import org.eclipse.xwt.core.Style;
+import org.eclipse.xwt.core.ValidationStatus;
+import org.eclipse.xwt.input.ICommand;
+import org.eclipse.xwt.internal.core.Binding;
+import org.eclipse.xwt.internal.core.Core;
+import org.eclipse.xwt.internal.core.DataBindingTrack;
+import org.eclipse.xwt.internal.core.IEventController;
+import org.eclipse.xwt.internal.core.ScopeKeeper;
+import org.eclipse.xwt.internal.utils.ClassLoaderUtil;
+import org.eclipse.xwt.internal.utils.DocumentObjectSorter;
+import org.eclipse.xwt.internal.utils.LoggerManager;
+import org.eclipse.xwt.internal.utils.NamespaceHelper;
+import org.eclipse.xwt.internal.utils.ObjectUtil;
+import org.eclipse.xwt.internal.utils.TableEditorHelper;
+import org.eclipse.xwt.internal.utils.UserData;
+import org.eclipse.xwt.internal.xml.Attribute;
+import org.eclipse.xwt.internal.xml.DocumentObject;
+import org.eclipse.xwt.internal.xml.Element;
+import org.eclipse.xwt.javabean.metadata.properties.PropertiesConstants;
+import org.eclipse.xwt.javabean.metadata.properties.TableItemProperty;
+import org.eclipse.xwt.jface.JFacesHelper;
+import org.eclipse.xwt.metadata.IEvent;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.xwt.metadata.IValueLoading;
+import org.eclipse.xwt.utils.PathHelper;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ResourceLoader implements IVisualElementLoader {
+	static Map<String, Object> EMPTY_MAP = Collections.EMPTY_MAP;
+
+	static private String VALIDATION_STATUS_CONSTANT = "status";
+
+	static final String RESOURCE_LOADER_PROPERTY = "XWT.ResourceLoader";
+
+	private static final String COLUMN = "Column";
+
+	private Map<String, Object> options;
+
+	private Collection<IDynamicBinding> bindings;
+	
+	private Collection<ValidationStatus> status;
+
+	public Collection<IDynamicBinding> getBindings() {
+		return bindings;
+	}
+
+	protected ResourceLoader parentLoader;
+	protected IRenderingContext context;
+	protected IXWTLoader loader;
+
+	protected Object scopedObject;
+	protected ScopeKeeper nameScoped;
+	protected LoadingData loadData = new LoadingData();
+
+	protected Event loadedEvent = new Event();
+
+	class LoadingData {
+		protected LoadingData parent;
+		protected Object clr;
+		protected Collection<IStyle> styles = Collections.EMPTY_LIST;
+		private Object currentWidget = null;
+		private Object host = null;
+		private Object dataContext = null;
+
+		public Object getDataContext() {
+			return dataContext;
+		}
+
+		public void setDataContext(Object dataContext) {
+			this.dataContext = dataContext;
+		}
+
+		public Object getHost() {
+			return host;
+		}
+
+		public Object getCurrentWidget() {
+			return currentWidget;
+		}
+
+		public Object findElement(Class<?> type) {
+			if (type.isInstance(currentWidget)) {
+				return currentWidget;
+			}
+			if (parent != null) {
+				return parent.findElement(type);
+			}
+			return null;
+		}
+
+		public void setCurrentWidget(Object currentWidget) {
+			this.currentWidget = currentWidget;
+		}
+
+		public LoadingData getParent() {
+			return parent;
+		}
+
+		public LoadingData() {
+		}
+
+		public LoadingData(LoadingData loadingData, Object host) {
+			this.parent = loadingData;
+			this.styles = loadingData.styles;
+			this.clr = loadingData.clr;
+			this.currentWidget = loadingData.currentWidget;
+			this.dataContext = loadingData.dataContext;
+			this.host = host;
+		}
+
+		public Collection<IStyle> getStyles() {
+			return styles;
+		}
+
+		public void setStyles(Collection<IStyle> styles) {
+			this.styles = styles;
+		}
+
+		public Object getClr() {
+			return clr;
+		}
+
+		public void setClr(Object clr) {
+			this.clr = clr;
+		}
+
+		public void inject(Object targetObject, String name) {
+			doInject(targetObject, name, null);
+		}
+
+		protected void doInject(Object targetObject, String name,
+				Object previousClr) {
+			Class<?> filedType = targetObject.getClass();
+			if (clr != null && (previousClr != clr || previousClr == null)) {
+				for (Field field : clr.getClass().getDeclaredFields()) {
+					UI annotation = field.getAnnotation(UI.class);
+					if (annotation != null) {
+						if (!field.getType().isAssignableFrom(filedType)) {
+							continue;
+						}
+						String annotationValue = annotation.value();
+						if (annotationValue == null
+								|| annotationValue.length() == 0) {
+							if (field.getName().equals(name)) {
+								field.setAccessible(true);
+								try {
+									field.set(clr, targetObject);
+									return;
+								} catch (Exception e) {
+								}
+							}
+						} else if (annotationValue.equals(name)) {
+							field.setAccessible(true);
+							try {
+								field.set(clr, targetObject);
+								break;
+							} catch (Exception e) {
+							}
+						}
+					}
+				}
+			}
+			if (parent != null) {
+				parent.doInject(targetObject, name, clr);
+			}
+		}
+
+		public void updateEvent(IRenderingContext context, Widget control,
+				IEvent event, String handler) {
+			IEventController eventController = UserData
+					.updateEventController(control);
+			Method method = null;
+			Object clrObject = null;
+			LoadingData current = this;
+			ResourceLoader currentParentLoader = parentLoader;
+			while (current != null) {
+				Object receiver = current.getClr();
+				if (receiver instanceof IEventHandler) {
+					IEventHandler eventManager = (IEventHandler) receiver;
+					IEventInvoker eventInvoker = eventManager.getEventInvoker(
+							handler, control.getClass(), Event.class);
+					if (eventInvoker != null) {
+						eventController.setEvent(event, control, control,
+								eventInvoker);
+					}
+				} else if (receiver != null) {
+					Class<?> clazz = receiver.getClass();
+					method = ObjectUtil.findMethod(clazz, handler,
+							control.getClass(), Event.class);
+					if (method == null) {
+						method = ObjectUtil.findMethod(clazz, handler,
+								Event.class);
+					}
+					if (method == null) {
+						// Load again.
+						clazz = ClassLoaderUtil.loadClass(
+								context.getLoadingContext(), clazz.getName());
+						method = ObjectUtil.findMethod(clazz, handler,
+								Event.class);
+					}
+					if (method == null) {
+						method = ObjectUtil.findMethod(clazz, handler);
+					}
+					if (method != null) {
+						clrObject = receiver;
+						eventController.setEvent(event, control, clrObject,
+								control, method);
+						break;
+					}
+				}
+				current = current.getParent();
+				if (current == null && currentParentLoader != null) {
+					current = currentParentLoader.loadData;
+					currentParentLoader = currentParentLoader.parentLoader;
+				}
+			}
+			if (method == null) {
+				LoggerManager.log(new XWTException("Event handler \"" + handler
+						+ "\" is not found."));
+			}
+		}
+
+		public void end() {
+			if (parent == null || clr != parent.getClr()) {
+				Method method = ObjectUtil.findDeclaredMethod(clr.getClass(),
+						"initializeComponent");
+				if (method == null) {
+					method = ObjectUtil.findDeclaredMethod(clr.getClass(),
+							"InitializeComponent");
+				}
+				if (method != null) {
+					try {
+						method.setAccessible(true);
+						method.invoke(clr);
+					} catch (Exception e) {
+						LoggerManager.log(e);
+					}
+				}
+			}
+		}
+
+		public void addStyle(IStyle style) {
+			if (styles == Collections.EMPTY_LIST) {
+				styles = new ArrayList<IStyle>();
+			}
+			styles.add(style);
+		}
+	}
+
+	private DataBindingTrack dataBindingTrack;
+
+	/**
+	 * @param context
+	 */
+	public ResourceLoader(IRenderingContext context, IXWTLoader loader) {
+		this.context = context;
+		this.loader = loader;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.IVisualElementLoader#createUIElement(org.eclipse.
+	 * e4.xwt.Element, org.eclipse.xwt.ILoadData,
+	 * org.eclipse.xwt.IResourceDictionary)
+	 */
+	public Object createUIElement(Element element, Map<String, Object> options) {
+		try {
+			this.options = options;
+			Object container = options.get(IXWTLoader.CONTAINER_PROPERTY);
+			Widget parent = UserData.getWidget(container);
+			if (!loader.getTrackings().isEmpty()) {
+				dataBindingTrack = new DataBindingTrack();
+			}
+			parentLoader = (ResourceLoader) options
+					.get(RESOURCE_LOADER_PROPERTY);
+			options.remove(RESOURCE_LOADER_PROPERTY);
+			ResourceDictionary resourceDictionary = (ResourceDictionary) options
+					.get(IXWTLoader.RESOURCE_DICTIONARY_PROPERTY);
+
+			if (resourceDictionary != null) {
+				Object styles = resourceDictionary.get(Core.DEFAULT_STYLES_KEY);
+				if (styles != null) {
+					loadData.setStyles((Collection<IStyle>) styles);
+					resourceDictionary.remove(Core.DEFAULT_STYLES_KEY);
+				}
+			}
+			if (!options.containsKey(IXWTLoader.CLASS_FACTORY_PROPERTY)) {
+				try {
+					options.put(IXWTLoader.CLASS_FACTORY_PROPERTY,
+							loader.getCLRFactory());
+				} catch (UnsupportedOperationException e) {
+					if (options.isEmpty()) {
+						options = new HashMap<String, Object>();
+						options.put(IXWTLoader.CLASS_FACTORY_PROPERTY,
+								loader.getCLRFactory());
+					} else {
+						throw e;
+					}
+				}
+			}
+
+			Object control = doCreate(parent, element, null, options);
+
+			// get databinding messages and print into console view
+			if (dataBindingTrack != null) {
+				String dataBindingMessage = dataBindingTrack
+						.getDataBindMessage();// getDataBindMessage();
+				org.eclipse.xwt.ILogger log = loader.getLogger();
+				log.addMessage(dataBindingMessage, Tracking.DATABINDING);
+				log.printInfo(dataBindingMessage, Tracking.DATABINDING,
+						loader.getTrackings());
+			}
+			if (control instanceof Composite) {
+				((Composite) control).layout();
+			}
+			ILoadedCallback loadedAction = (ILoadedCallback) options
+					.get(IXWTLoader.LOADED_CALLBACK);
+			if (loadedAction != null) {
+				loadedAction.onLoaded(control);
+			}
+			return control;
+		} catch (Exception e) {
+			if (e instanceof RuntimeException) {
+				throw ((RuntimeException) e);
+			}
+
+			throw new XWTException(e);
+		}
+	}
+
+	protected Object doCreate(Object parent, Element element,
+			Class<?> constraintType, Map<String, Object> options)
+			throws Exception {
+		int styles = -1;
+		if (options.containsKey(IXWTLoader.INIT_STYLE_PROPERTY)) {
+			styles = (Integer) options.get(IXWTLoader.INIT_STYLE_PROPERTY);
+		}
+
+		ResourceDictionary dico = (ResourceDictionary) options
+				.get(IXWTLoader.RESOURCE_DICTIONARY_PROPERTY);
+		Object dataContext = options.get(IXWTLoader.DATACONTEXT_PROPERTY);
+		Object bindingContext = options
+				.get(IXWTLoader.BINDING_CONTEXT_PROPERTY);
+		String name = element.getName();
+		String namespace = element.getNamespace();
+		if (IConstants.XWT_X_NAMESPACE.equalsIgnoreCase(namespace)) {
+			if (IConstants.XAML_X_NULL.equalsIgnoreCase(name)) {
+				return null;
+			}
+			if (IConstants.XAML_X_TYPE.equalsIgnoreCase(name)
+					&& constraintType != null
+					&& constraintType instanceof Class<?>) {
+				DocumentObject[] children = element.getChildren();
+				if (children != null && children.length > 0) {
+					if (children[0] instanceof Element) {
+						Element type = (Element) children[0];
+						IMetaclass metaclass = loader.getMetaclass(
+								type.getName(), type.getNamespace());
+						if (metaclass != null) {
+							return metaclass.getType();
+						}
+					}
+				} else {
+					String content = element.getContent();
+					return loader.convertFrom(Class.class, content);
+				}
+			}
+			return null;
+		}
+		IMetaclass metaclass = loader.getMetaclass(name, namespace);
+		if (constraintType != null
+				&& !(IBinding.class.isAssignableFrom(metaclass.getType()))
+				&& (!constraintType.isAssignableFrom(metaclass.getType()))) {
+			if (!constraintType.isArray()
+					|| !constraintType.getComponentType().isAssignableFrom(
+							metaclass.getType())) {
+				IConverter converter = XWT.findConvertor(metaclass.getType(),
+						constraintType);
+				if (converter == null) {
+					return null;
+				}
+			}
+		}
+		Object targetObject = null;
+		Integer styleValue = getStyleValue(element, styles);
+
+		if (parent == null || metaclass.getType() == Shell.class) {
+			if (dataBindingTrack != null) {
+				dataBindingTrack.addWidgetElement(element);
+			}
+			Shell shell = null;
+			if ((parent == null && metaclass.getType() != Shell.class)
+					|| styleValue == null || styleValue == -1) {
+				styleValue = SWT.SHELL_TRIM;
+			}
+			Display display = Display.getCurrent();
+			shell = new Shell(display, styleValue);
+			targetObject = shell;
+			invokeCreatededAction(element, targetObject);
+			loadData.setCurrentWidget(shell);
+
+			if (metaclass.getType() != Shell.class) {
+				shell.setLayout(new FillLayout());
+				return doCreate(targetObject, element, constraintType, options);
+			} else {
+				if (bindingContext != null) {
+					setBindingContext(metaclass, targetObject, dico,
+							bindingContext);
+				}
+				if (dataContext != null) {
+					setDataContext(metaclass, targetObject, dico, dataContext);
+				}
+			}
+			pushStack(parent);
+
+			// for Shell
+			Attribute classAttribute = element.getAttribute(
+					IConstants.XWT_X_NAMESPACE, IConstants.XAML_X_CLASS);
+			if (classAttribute != null) {
+				String className = classAttribute.getContent();
+				loadShellCLR(className, shell);
+			} else {
+				Attribute classFactoryAttribute = element.getAttribute(
+						IConstants.XWT_X_NAMESPACE,
+						IConstants.XAML_X_CLASS_FACTORY);
+				ICLRFactory clrFactory = (ICLRFactory) options
+						.get(XWTLoader.CLASS_FACTORY_PROPERTY);
+				if (classFactoryAttribute != null) {
+					String content = classFactoryAttribute.getContent();
+					Object clr = loadFactoryCLR(content, clrFactory);
+					loadData.setClr(clr);
+					UserData.setCLR(shell, clr);
+				} else {
+					if (clrFactory != null) {
+						Object clr = clrFactory.createCLR(null, options);
+						loadData.setClr(clr);
+						UserData.setCLR(shell, clr);
+					}
+				}
+			}
+		} else {
+			pushStack(parent);
+
+			//
+			// load the content in case of UserControl
+			//
+			Class<?> type = metaclass.getType();
+			URL file = getResource(metaclass, type.getSimpleName()
+					+ IConstants.XWT_EXTENSION_SUFFIX);
+			if (file != null && nameScoped != null) {
+				if (parent instanceof Composite) {
+					Object childDataContext = getDataContext(element,
+							(Widget) parent);
+					Object childBindingContext = getBindingContext(element,
+							(Widget) parent);
+					if (dataContext != null) {
+						childDataContext = dataContext;
+					}
+					if (bindingContext != null) {
+						childBindingContext = bindingContext;
+					}
+					Map<String, Object> nestedOptions = new HashMap<String, Object>();
+					nestedOptions.put(IXWTLoader.CONTAINER_PROPERTY, parent);
+					if (styleValue != null) {
+						nestedOptions.put(IXWTLoader.INIT_STYLE_PROPERTY,
+								styleValue);
+					}
+					nestedOptions.put(IXWTLoader.DATACONTEXT_PROPERTY,
+							childDataContext);
+					nestedOptions.put(IXWTLoader.BINDING_CONTEXT_PROPERTY,
+							childBindingContext);
+					nestedOptions.put(RESOURCE_LOADER_PROPERTY, this);
+					nestedOptions.put(IXWTLoader.CLASS_FACTORY_PROPERTY, null); // disable
+																				// the
+																				// global
+																				// setting
+					targetObject = loader.loadWithOptions(file, nestedOptions);
+					if (targetObject == null) {
+						return null;
+					}
+					invokeCreatededAction(element, targetObject);
+				} else
+					throw new XWTException(
+							"Cannot add user control: Parent is not a composite");
+			} else {
+				Object[] parameters = null;
+				if (TableViewerColumn.class.isAssignableFrom(type)) {
+					int columnIndex = getColumnIndex(element);
+					parameters = (styleValue != null ? new Object[] { parent,
+							styleValue, columnIndex } : new Object[] { parent,
+							SWT.NONE, columnIndex });
+				} else {
+					parameters = (styleValue != null ? new Object[] { parent,
+							styleValue } : new Object[] { parent });
+				}
+
+				// x:Class
+				{
+					boolean hasClass = false;
+					Attribute classAttribute = element
+							.getAttribute(IConstants.XWT_X_NAMESPACE,
+									IConstants.XAML_X_CLASS);
+					if (classAttribute != null) {
+						String className = classAttribute.getContent();
+						targetObject = loadCLR(className, parameters,
+								metaclass.getType(), options);
+						hasClass = true;
+					} else {
+						Object clr = options.get(XWTLoader.CLASS_PROPERTY);
+						if (clr != null) {
+							loadData.setClr(clr);
+							hasClass = true;
+						}
+					}
+					if (!hasClass) {
+						Attribute classFactoryAttribute = element.getAttribute(
+								IConstants.XWT_X_NAMESPACE,
+								IConstants.XAML_X_CLASS_FACTORY);
+						ICLRFactory clrFactory = (ICLRFactory) options
+								.get(XWTLoader.CLASS_FACTORY_PROPERTY);
+						if (classFactoryAttribute != null) {
+							Object clr = loadFactoryCLR(
+									classFactoryAttribute.getContent(),
+									clrFactory);
+							if (clr != null) {
+								loadData.setClr(clr);
+							}
+						} else {
+							if (clrFactory != null) {
+								loadData.setClr(clrFactory.createCLR(null,
+										options));
+							}
+						}
+					}
+
+					if (targetObject == null) {
+						targetObject = metaclass.newInstance(parameters);
+						invokeCreatededAction(element, targetObject);
+						Widget widget = UserData.getWidget(targetObject);
+						if (widget != null) {
+							Object clr = loadData.getClr();
+							if (clr != null) {
+								UserData.setCLR(widget, clr);
+							}
+						}
+					} else {
+						metaclass = loader.getMetaclass(targetObject);
+					}
+				}
+
+				if (targetObject == null) {
+					return null;
+				}
+			}
+		}
+		Widget widget = UserData.getWidget(targetObject);
+		if (widget != null) {
+			loadData.setCurrentWidget(targetObject);
+		}
+		if (scopedObject == null && widget != null) {
+			scopedObject = widget;
+			nameScoped = new ScopeKeeper((parent == null ? null
+					: UserData.findScopeKeeper((Widget) parent)), widget);
+			UserData.bindNameContext((Widget) widget, nameScoped);
+		}
+
+		// set first data context and resource dictionary
+		setDataContext(metaclass, targetObject, dico, dataContext);
+		if (bindingContext != null) {
+			setBindingContext(metaclass, targetObject, dico, bindingContext);
+		}
+
+		if (dataBindingTrack != null) {
+			dataBindingTrack.tracking(targetObject, element, dataContext);
+		}
+
+		// set parent relationship and viewer
+		if (targetObject instanceof Widget) {
+			if (parent != null) {
+				UserData.setParent(targetObject, parent);
+			}
+		} else if (JFacesHelper.isViewer(targetObject)) {
+			UserData.setParent(targetObject, parent);
+			UserData.setViewer(targetObject, targetObject);
+		} else if (targetObject instanceof TableItemProperty.Cell) {
+			((TableItemProperty.Cell) targetObject)
+					.setParent((TableItem) parent);
+		}
+
+		applyStyles(element, targetObject);
+
+		for (Map.Entry<String, Object> entry : options.entrySet()) {
+			String key = entry.getKey();
+			if (IXWTLoader.Utilities.isPropertyName(key)) {
+				continue;
+			}
+			IProperty property = metaclass.findProperty(key);
+			if (property == null) {
+				throw new XWTException("Property " + key + " not found.");
+			}
+			property.setValue(targetObject, entry.getValue());
+		}
+
+		Map<String, IProperty> delayedAttributes = new HashMap<String, IProperty>();
+		init(metaclass, targetObject, element, delayedAttributes);
+		if (targetObject instanceof Style && element.getChildren().length > 0) {
+			Collection<Setter> setters = new ArrayList<Setter>();
+			for (DocumentObject doc : element.getChildren()) {
+				Object child = doCreate(targetObject, (Element) doc, null,
+						Collections.EMPTY_MAP);
+				if (!(child instanceof Setter)) {
+					throw new XWTException("Setter is expected in Style.");
+				}
+				setters.add((Setter) child);
+			}
+			((Style) targetObject).setSetters(setters
+					.toArray(new Setter[setters.size()]));
+		} else if (targetObject instanceof ControlEditor) {
+			for (DocumentObject doc : element.getChildren()) {
+				Object editor = doCreate(parent, (Element) doc, null,
+						Collections.EMPTY_MAP);
+				if (editor != null && editor instanceof Control) {
+					((ControlEditor) targetObject).setEditor((Control) editor);
+					((Control) editor).setData(
+							PropertiesConstants.DATA_CONTROLEDITOR_OF_CONTROL,
+							targetObject);
+				}
+			}
+		} else if (targetObject instanceof IDataProvider) {
+			for (DocumentObject doc : element.getChildren()) {
+				if (IConstants.XWT_X_NAMESPACE.equals(doc.getNamespace())) {
+					String content = doc.getContent();
+					if (content != null) {
+						((IDataProvider) targetObject).setProperty(
+								doc.getName(), content);
+					}
+				}
+			}
+		} else {
+			for (DocumentObject doc : element.getChildren()) {
+				doCreate(targetObject, (Element) doc, null,
+						Collections.EMPTY_MAP);
+			}
+		}
+
+		iniDelayedAttribute(metaclass, targetObject, element, null,
+				delayedAttributes);
+
+		postCreation(targetObject);
+		popStack();
+		return targetObject;
+	}
+
+	protected void iniDelayedAttribute(IMetaclass metaclass,
+			Object targetObject, Element element, String namespace,
+			Map<String, IProperty> delayedAttributes) throws Exception {
+		Set<String> keys = delayedAttributes.keySet();
+		while (!keys.isEmpty()) {
+			for (String delayed : keys.toArray(new String[keys.size()])) {
+				IProperty property = delayedAttributes.get(delayed);
+				boolean hasDependency = false;
+				IProperty[] dependencies = property.getLoadingType()
+						.getDependencies();
+				if (dependencies.length > 0) {
+					for (IProperty dependency : dependencies) {
+						if (delayedAttributes.containsValue(dependency)) {
+							hasDependency = true;
+							break;
+						}
+					}
+				}
+				if (!hasDependency) {
+					initAttribute(metaclass, targetObject, element, null,
+							delayed);
+					keys.remove(delayed);
+				}
+			}
+		}
+	}
+
+	private URL getResource(IMetaclass metaclass, String resourcePath) {
+		Object userControlsDisabled = this.options.get(IXWTLoader.DISABLE_USER_CONTROLS);
+		if (!Boolean.TRUE.equals(userControlsDisabled)) {
+			IResourceCache resourceCache = getResourceCache();
+			if (resourceCache == null) {
+				return doGetResource(metaclass, resourcePath);
+			} else {
+				if (resourceCache.hasCached(metaclass, resourcePath)) {
+					return resourceCache.getCachedResource(metaclass, resourcePath);
+				}
+
+				URL url = doGetResource(metaclass, resourcePath);
+				resourceCache.cacheResource(metaclass, resourcePath, url);
+				return url;
+			} 
+		}
+		return null;
+	}
+
+	private URL doGetResource(IMetaclass type, String resourcePath) {
+		return type.getType().getResource(resourcePath);
+	}
+
+	private IResourceCache getResourceCache() {
+		Object object = options.get(IXWTLoader.USER_CONTROL_CACHE_PROPERTY);
+		if (object == null) {
+			//By default, use the singleton cache
+			return ResourceCache.getInstance();
+		} else if (object instanceof IResourceCache) {
+			//A cache has been specified explicitly: use it
+			return (IResourceCache) object;
+		} else if (Boolean.TRUE.equals(object)) { 
+			//Store a new cache instance in the options
+			IResourceCache resourceCache = new ResourceCache();
+			options.put(IXWTLoader.USER_CONTROL_CACHE_PROPERTY, resourceCache);
+			return resourceCache;
+		} else { 
+			//Boolean.FALSE or invalid value: no cache
+			return null;
+		}
+	}
+
+	/**
+	 * This method is invoked directly after creation of component instance, but
+	 * before applying its attributes and creating children.
+	 * 
+	 * @param element
+	 *            the source element in XML.
+	 * @param targetObject
+	 *            the created visual object.
+	 */
+	protected void postCreation0(Element element, Object targetObject) {
+
+		if (targetObject instanceof IDynamicBinding) {
+			if (bindings == null)
+				bindings = new ArrayList<IDynamicBinding>();
+			bindings.add((IDynamicBinding) targetObject);
+		}
+	}
+
+	private void invokeCreatededAction(Element element, Object targetObject) {
+		if (targetObject != null) {
+			postCreation0(element, targetObject);
+		}
+		if (options != null) {
+			ICreatedCallback createdAction = (ICreatedCallback) options
+					.get(IXWTLoader.CREATED_CALLBACK);
+			if (createdAction != null) {
+				createdAction.onCreated(targetObject);
+			}
+		}
+	}
+
+	/**
+	 * This method is invoked after full creation of component, i.e. after
+	 * creating its instance, applying its attributes and creating children.
+	 */
+	protected void postCreation(Object target) {
+
+		// after create a binding with validationstatus tag, the datasource of
+		// the binding should be updated to the corresponding bindingcontext
+		Collection<ValidationStatus> removedStatus = new ArrayList<ValidationStatus>();
+		if (status != null && !status.isEmpty()) {
+			for (ValidationStatus validationStatus : status) {
+				if (bindings != null && !bindings.isEmpty()) {
+					for (IDynamicBinding binding : bindings) {
+						if (binding.getName() != null
+								&& validationStatus.getSourceName() != null
+								&& validationStatus.getSourceName().equals(
+										binding.getName())) {
+							removedStatus.add(validationStatus);
+							Control control = (Control) validationStatus
+									.getControl();
+							if (binding.getControl().equals(control))
+								if (binding != null) {
+									Binding targetBinding = (Binding) validationStatus
+											.getParent();
+									targetBinding.setSource(binding
+											.getBindingContext());
+									targetBinding
+											.setPath(VALIDATION_STATUS_CONSTANT);
+								}
+						}
+					}
+				}
+			}
+			if (removedStatus != null) {
+				status.removeAll(removedStatus);
+				removedStatus.clear();
+			}
+		}
+
+	}
+
+	protected void setDataContext(IMetaclass metaclass, Object targetObject,
+			ResourceDictionary dico, Object dataContext)
+			throws IllegalAccessException, InvocationTargetException,
+			NoSuchFieldException {
+		Object control = null;
+		IMetaclass widgetMetaclass = metaclass;
+		if (JFacesHelper.isViewer(targetObject)) {
+			Widget widget = JFacesHelper.getControl(targetObject);
+			widgetMetaclass = loader.getMetaclass(widget.getClass());
+			control = targetObject;
+		} else if (targetObject instanceof Widget) {
+			control = (Widget) targetObject;
+		} else {
+			control = loadData.getCurrentWidget();
+		}
+		if (control != null) {
+			if (targetObject instanceof IDynamicBinding) {
+				IDynamicBinding dynamicBinding = (IDynamicBinding) targetObject;
+				dynamicBinding.setControl(control);
+				dynamicBinding.setHost(loadData.getHost());
+			}
+			if (dico != null) {
+				UserData.setResources(control, dico);
+			}
+			if (dataContext != null) {
+				IProperty property = widgetMetaclass
+						.findProperty(IConstants.XAML_DATA_CONTEXT);
+				if (property != null) {
+					property.setValue(UserData.getWidget(control), dataContext);
+				} else {
+					throw new XWTException("DataContext is missing in "
+							+ widgetMetaclass.getType().getName());
+				}
+			}
+		}
+	}
+
+	protected void setBindingContext(IMetaclass metaclass, Object targetObject,
+			ResourceDictionary dico, Object bindingContext)
+			throws IllegalAccessException, InvocationTargetException,
+			NoSuchFieldException {
+		Object control = null;
+		IMetaclass widgetMetaclass = metaclass;
+		if (JFacesHelper.isViewer(targetObject)) {
+			Widget widget = JFacesHelper.getControl(targetObject);
+			widgetMetaclass = loader.getMetaclass(widget.getClass());
+			control = targetObject;
+		} else if (targetObject instanceof Widget) {
+			control = (Widget) targetObject;
+		} else {
+			control = loadData.getCurrentWidget();
+		}
+		if (control != null) {
+			if (targetObject instanceof IDynamicBinding) {
+				IDynamicBinding dynamicBinding = (IDynamicBinding) targetObject;
+				dynamicBinding.setControl(control);
+				dynamicBinding.setHost(loadData.getHost());
+			}
+			if (dico != null) {
+				UserData.setResources(control, dico);
+			}
+			if (bindingContext != null) {
+				IProperty property = widgetMetaclass
+						.findProperty(IConstants.XAML_BINDING_CONTEXT);
+				if (property != null) {
+					property.setValue(UserData.getWidget(control),
+							bindingContext);
+				} else {
+					throw new XWTException("DataContext is missing in "
+							+ widgetMetaclass.getType().getName());
+				}
+			}
+		}
+	}
+
+	protected void applyStyles(Element element, Object targetObject)
+			throws Exception {
+		if (targetObject instanceof Widget) {
+			Widget widget = (Widget) targetObject;
+			Map<String, Object> dico = UserData.getLocalResources(widget);
+			Attribute attribute = element
+					.getAttribute(IConstants.XAML_RESOURCES);
+			if (attribute == null) {
+				attribute = element.getAttribute(IConstants.XWT_NAMESPACE,
+						IConstants.XAML_RESOURCES);
+			}
+			if (attribute != null) {
+				if (attribute.getChildren().length > 0) {
+					if (dico == null) {
+						dico = new ResourceDictionary();
+						UserData.setResources(widget, dico);
+					}
+
+					for (DocumentObject doc : attribute.getChildren()) {
+						Element elem = (Element) doc;
+						Object doCreate = doCreate(widget, elem, null,
+								EMPTY_MAP);
+						Attribute keyAttribute = elem.getAttribute(
+								IConstants.XWT_X_NAMESPACE,
+								IConstants.XAML_X_KEY);
+						if (keyAttribute == null) {
+							keyAttribute = elem.getAttribute(
+									IConstants.XWT_X_NAMESPACE,
+									IConstants.XAML_X_TYPE);
+						}
+						if (keyAttribute != null) {
+							dico.put(keyAttribute.getContent(), doCreate);
+						}
+						if (doCreate instanceof IStyle) {
+							IStyle style = (IStyle) doCreate;
+							loadData.addStyle(style);
+						}
+					}
+				}
+			}
+
+			// apply the styles defined in parent's resources via TargetType
+			Widget current = widget;
+			while (current != null) {
+				dico = UserData.getLocalResources(current);
+				if (dico != null) {
+					for (Object value : dico.values()) {
+						if (value instanceof Style) {
+							Style style = (Style) value;
+							Class<?> targetType = style.getTargetType();
+							if (targetType != null
+									&& targetType.isInstance(widget)) {
+								style.apply(targetObject);
+							}
+						}
+					}
+				}
+				current = UserData.getTreeParent(current);
+			}
+		}
+
+		for (IStyle style : loadData.getStyles()) {
+			style.applyStyle(targetObject);
+		}
+	}
+
+	protected int getColumnIndex(Element columnElement) {
+		String name = columnElement.getName();
+		String namespace = columnElement.getNamespace();
+		IMetaclass metaclass = loader.getMetaclass(name, namespace);
+		int index = -1;
+		Class<?> type = metaclass.getType();
+		if (TableViewerColumn.class.isAssignableFrom(type)) {
+			DocumentObject parent = columnElement.getParent();
+			List<DocumentObject> children = DocumentObjectSorter.sortWithAttr(
+					parent.getChildren(), "Index");
+			index = children.indexOf(columnElement);
+		}
+
+		return index;
+	}
+
+	/**
+	 * @param tableItem
+	 */
+	protected void installTableEditors(TableItem tableItem) {
+		Table table = tableItem.getParent();
+		TableColumn[] columns = table.getColumns();
+		if (columns == null || columns.length == 0) {
+			return;
+		}
+		for (TableColumn tableColumn : columns) {
+			Object data = tableColumn
+					.getData(PropertiesConstants.DATA_DEFINED_EDITOR);
+			if (data == null || !(data instanceof Element)) {
+				continue;
+			}
+			int column = table.indexOf(tableColumn);
+			Element editor = (Element) data;
+			try {
+				TableEditor tableEditor = (TableEditor) doCreate(table, editor,
+						null, EMPTY_MAP);
+				if (tableEditor != null) {
+					tableEditor.setColumn(column);
+					tableEditor.setItem(tableItem);
+				}
+			} catch (Exception e) {
+				continue;
+			}
+		}
+	}
+
+	protected Object getDataContext(Element element, Widget swtObject) {
+		// x:DataContext
+		try {
+			Object dataContext = loadData.getDataContext();
+			if (dataContext != null) {
+				return dataContext;
+			}
+			{
+				Attribute dataContextAttribute = element
+						.getAttribute(IConstants.XAML_DATA_CONTEXT);
+				if (dataContextAttribute != null) {
+					Widget composite = (Widget) swtObject;
+					DocumentObject documentObject = dataContextAttribute
+							.getChildren()[0];
+					if (IConstants.XAML_STATICRESOURCES.equals(documentObject
+							.getName())
+							|| IConstants.XAML_DYNAMICRESOURCES
+									.equals(documentObject.getName())) {
+						String key = documentObject.getContent();
+						dataContext = new StaticResourceBinding(composite, key);
+						loadData.setDataContext(dataContext);
+						return dataContext;
+					} else if (IConstants.XAML_BINDING.equals(documentObject
+							.getName())) {
+						dataContext = doCreate(swtObject,
+								(Element) documentObject, null, EMPTY_MAP);
+						loadData.setDataContext(dataContext);
+						return dataContext;
+					} else {
+						LoggerManager.log(new UnsupportedOperationException(
+								documentObject.getName()));
+					}
+				}
+			}
+		} catch (Exception e) {
+			LoggerManager.log(e);
+		}
+
+		return null;
+	}
+
+	protected Object getBindingContext(Element element, Widget swtObject) {
+		// x:DataContext
+		try {
+			{
+
+				Attribute dataContextAttribute = element
+						.getAttribute(IConstants.XAML_BINDING_CONTEXT);
+				if (dataContextAttribute != null) {
+					Widget composite = (Widget) swtObject;
+					DocumentObject documentObject = dataContextAttribute
+							.getChildren()[0];
+					if (IConstants.XAML_STATICRESOURCES.equals(documentObject
+							.getName())
+							|| IConstants.XAML_DYNAMICRESOURCES
+									.equals(documentObject.getName())) {
+						String key = documentObject.getContent();
+						return new StaticResourceBinding(composite, key);
+					} else if (IConstants.XAML_BINDING.equals(documentObject
+							.getName())) {
+						return doCreate(swtObject, (Element) documentObject,
+								null, EMPTY_MAP);
+					} else {
+						LoggerManager.log(new UnsupportedOperationException(
+								documentObject.getName()));
+					}
+				}
+			}
+		} catch (Exception e) {
+			LoggerManager.log(e);
+		}
+
+		return null;
+	}
+
+	protected void pushStack(Object host) {
+		loadData = new LoadingData(loadData, host);
+	}
+
+	protected void popStack() {
+		LoadingData previous = loadData;
+		loadData = previous.getParent();
+
+		previous.end();
+	}
+
+	protected Integer getStyleValue(Element element, int styles) {
+		Attribute attribute = element.getAttribute(IConstants.XWT_X_NAMESPACE,
+				IConstants.XAML_STYLE);
+		if (attribute == null) {
+			if (styles != -1) {
+				return styles;
+			}
+			return null;
+		}
+		if (styles == -1) {
+			return (Integer) loader.findConvertor(String.class, Integer.class)
+					.convert(attribute.getContent());
+		}
+		return styles
+				| (Integer) loader.findConvertor(String.class, Integer.class)
+						.convert(attribute.getContent());
+	}
+
+	protected void init(IMetaclass metaclass, Object targetObject,
+			Element element, Map<String, IProperty> delayedAttributes)
+			throws Exception {
+		// editors for TableItem,
+		if (targetObject instanceof TableItem) {
+			installTableEditors((TableItem) targetObject);
+		}
+
+		// x:DataContext
+		if (loadData.getDataContext() == null) {
+			Attribute dataContextAttribute = element
+					.getAttribute(IConstants.XAML_DATA_CONTEXT);
+			if (dataContextAttribute != null) {
+				IProperty property = metaclass
+						.findProperty(IConstants.XAML_DATA_CONTEXT);
+				Widget composite = (Widget) UserData.getWidget(targetObject);
+				DocumentObject documentObject = dataContextAttribute
+						.getChildren()[0];
+				if (IConstants.XAML_STATICRESOURCES.equals(documentObject
+						.getName())
+						|| IConstants.XAML_DYNAMICRESOURCES
+								.equals(documentObject.getName())) {
+					String key = documentObject.getContent();
+					property.setValue(composite, new StaticResourceBinding(
+							composite, key));
+				} else if (IConstants.XAML_BINDING.equals(documentObject
+						.getName())) {
+					Object object = doCreate(targetObject,
+							(Element) documentObject, null, EMPTY_MAP);
+					property.setValue(composite, object);
+				} else {
+					LoggerManager.log(new UnsupportedOperationException(
+							documentObject.getName()));
+				}
+			}
+		}
+
+		HashSet<String> done = new HashSet<String>();
+
+		Attribute nameAttr = element.getAttribute(IConstants.XAML_X_NAME);
+		if (nameAttr == null) {
+			nameAttr = element.getAttribute(IConstants.XWT_X_NAMESPACE,
+					IConstants.XAML_X_NAME);
+		}
+		if (nameAttr != null && UserData.getWidget(targetObject) != null) {
+			String value = nameAttr.getContent();
+			loadData.inject(targetObject, value);
+
+			nameScoped.addNamedObject(value, targetObject);
+			UserData.setElementName(targetObject, value, false);
+			done.add(IConstants.XAML_X_NAME);
+		}
+
+		for (String attrName : element.attributeNames()) {
+			IProperty property = metaclass.findProperty(attrName);
+
+			if (property == null) {
+				IMetaclass mc = XWT.getMetaclass(targetObject);
+				property = mc.findProperty(attrName);
+
+				if (property != null) {
+					metaclass = mc;
+				}
+			}
+
+			if (IConstants.XWT_X_NAMESPACE.equals(element
+					.getAttribute(attrName).getNamespace())) {
+				continue;
+			} else if (delayedAttributes != null
+					&& property != null
+					&& property.getLoadingType().getValueLoading() != IValueLoading.Normal)
+				delayedAttributes.put(attrName, property);
+			else {
+				if (!done.contains(attrName)) {
+					initAttribute(metaclass, targetObject, element, null,
+							attrName);
+					done.add(attrName);
+				}
+			}
+		}
+
+		for (String namespace : element.attributeNamespaces()) {
+			if (IConstants.XWT_X_NAMESPACE.equals(namespace)) {
+				for (String attrName : element.attributeNames(namespace)) {
+					if ("class".equalsIgnoreCase(attrName)
+							|| IConstants.XAML_STYLE.equalsIgnoreCase(attrName)) {
+						continue; // done before
+					} else if (IConstants.XAML_X_NAME
+							.equalsIgnoreCase(attrName)) {
+						nameScoped.addNamedObject(
+								element.getAttribute(namespace, attrName)
+										.getContent(), targetObject);
+						done.add(attrName);
+					} else if (IConstants.XAML_DATA_CONTEXT
+							.equalsIgnoreCase(attrName)) {
+						continue; // done before
+					} else if (IConstants.XAML_X_ARRAY
+							.equalsIgnoreCase(attrName)) {
+						IProperty property = metaclass.findProperty(attrName);
+						Class<?> type = property.getType();
+						Object value = getArrayProperty(type, targetObject,
+								element, attrName);
+						if (value != null) {
+							property.setValue(targetObject, value);
+						}
+					} else if (IConstants.XAML_RESOURCES
+							.equalsIgnoreCase(attrName)) {
+						continue;
+					} else {
+						if (!done.contains(attrName)) {
+							initAttribute(metaclass, targetObject, element,
+									namespace, attrName);
+							done.add(attrName);
+						}
+					}
+				}
+				continue;
+			}
+
+			for (String attrName : element.attributeNames(namespace)) {
+				if (IConstants.XAML_X_NAME.equalsIgnoreCase(attrName)
+						&& (targetObject instanceof Widget)) {
+					continue;
+				}
+				if (!done.contains(attrName)) {
+					initAttribute(metaclass, targetObject, element, namespace,
+							attrName);
+					done.add(attrName);
+				}
+			}
+		}
+		for (String attrName : element.attributeNames()) {
+			if (IConstants.XAML_X_NAME.equalsIgnoreCase(attrName)
+					&& UserData.getWidget(targetObject) != null) {
+				continue;
+			}
+			if (!done.contains(attrName)
+					&& !delayedAttributes.containsKey(attrName)) {
+				initAttribute(metaclass, targetObject, element, null, attrName);
+				done.add(attrName);
+			}
+		}
+
+		//
+		// handle foreigner namespace
+		//
+		for (String namespace : element.attributeNamespaces()) {
+			if (XWT.isXWTNamespace(namespace)) {
+				continue;
+			}
+			INamespaceHandler namespaceHandler = loader
+					.getNamespaceHandler(namespace);
+			if (namespaceHandler != null) {
+				for (String attrName : element.attributeNames(namespace)) {
+					Attribute attribute = element.getAttribute(namespace,
+							attrName);
+					Widget widget = UserData.getWidget(loadData
+							.getCurrentWidget());
+					namespaceHandler.handleAttribute(widget, targetObject,
+							attrName, attribute.getContent());
+				}
+			}
+		}
+	}
+
+	protected Object getArrayProperty(Class<?> type, Object swtObject,
+			DocumentObject docObject, String attrName)
+			throws IllegalAccessException, InvocationTargetException,
+			NoSuchFieldException {
+		Class<?> arrayType = null;
+		if (type == Object.class) {
+			if (docObject instanceof Element) {
+				Element element = (Element) docObject;
+				Attribute attribute = element.getAttribute(
+						IConstants.XWT_NAMESPACE, IConstants.XAML_X_TYPE);
+				if (attribute == null) {
+					throw new XWTException(
+							"The type attribute is missing in the element x:Array.");
+				}
+				String value = attribute.getContent();
+				IMetaclass metaclass = XWT.getMetaclass(value,
+						attribute.getNamespace());
+				if (metaclass == null) {
+					throw new XWTException("The type \"" + value
+							+ "\" is not found.");
+				}
+				arrayType = metaclass.getType();
+			}
+		} else {
+			if (!type.isArray()) {
+				throw new XWTException("Type mismatch: property " + attrName
+						+ " isn't an array.");
+			}
+			arrayType = type.getComponentType();
+		}
+		if (arrayType != null) {
+			List<Object> list = new ArrayList<Object>();
+			for (DocumentObject childModel : docObject.getChildren()) {
+				if (!(childModel instanceof Element)) {
+					continue;
+				}
+				Object child = createInstance(swtObject, (Element) childModel);
+				list.add(child);
+			}
+			Object[] array = (Object[]) Array.newInstance(arrayType,
+					list.size());
+			list.toArray(array);
+
+			for (int i = 0; i < array.length; i++) {
+				if (array[i] instanceof IIndexedElement) {
+					((IIndexedElement) array[i]).setIndex(swtObject, i);
+				}
+			}
+			return array;
+		}
+		return null;
+	}
+
+	@SuppressWarnings("unchecked")
+	protected Object getCollectionProperty(Class<?> type, Object swtObject,
+			DocumentObject element, String attrName)
+			throws IllegalAccessException, InvocationTargetException,
+			NoSuchFieldException {
+		Collection<Object> collector = null;
+		if (type.isInterface()) {
+			collector = new ArrayList<Object>();
+		} else {
+			if (Modifier.isAbstract(type.getModifiers())) {
+				LoggerManager.log(new XWTException("Collection "
+						+ type.getSimpleName() + " is abstract type"));
+			}
+			try {
+				collector = (Collection) type.newInstance();
+			} catch (InstantiationException e) {
+				LoggerManager.log(new XWTException(e));
+			}
+		}
+
+		for (DocumentObject childModel : element.getChildren()) {
+			if (!(childModel instanceof Element)) {
+				continue;
+			}
+			Object child = createInstance(swtObject, (Element) childModel);
+			collector.add(child);
+			if (child instanceof IIndexedElement) {
+				((IIndexedElement) child).setIndex(swtObject,
+						collector.size() - 1);
+			}
+		}
+		return collector;
+	}
+
+	protected String findNamespace(DocumentObject context, String prefix) {
+		while (context != null && !(context instanceof Element)) {
+			context = context.getParent();
+		}
+		if (context == null) {
+			return null;
+		}
+		Element element = (Element) context;
+
+		if (prefix != null) {
+			prefix = (prefix.length() == 0 ? null : prefix);
+		}
+
+		String namespace = element.getXmlns(prefix);
+		if (namespace != null) {
+			return namespace;
+		}
+		DocumentObject parent = element.getParent();
+		return findNamespace(parent, prefix);
+	}
+
+	protected Object createInstance(Object swtObject, Element element) {
+		String name = element.getName();
+		String namespace = element.getNamespace();
+		if (IConstants.XWT_X_NAMESPACE.equalsIgnoreCase(namespace)
+				&& IConstants.XAML_X_NULL.equalsIgnoreCase(name)) {
+			return null;
+		}
+		try {
+			Class<?> type = NamespaceHelper.loadCLRClass(
+					context.getLoadingContext(), name, namespace);
+			IMetaclass metaclass = loader.getMetaclass(name, namespace);
+			if (type == null) {
+				if (metaclass != null)
+					type = metaclass.getType();
+			}
+			if (metaclass == null) {
+				throw new XWTException("Class for " + name + " is not found.");
+			}
+			// type = expected type;
+			// Need to support the
+			String content = element.getContent();
+			Object instance = null;
+			if (content == null) {
+				instance = metaclass.newInstance(new Object[] { swtObject });
+				invokeCreatededAction(element, instance);
+				if (instance instanceof TableEditor) {
+					// TODO should be moved into IMetaclass
+					TableEditor tableEditor = (TableEditor) instance;
+					if (swtObject instanceof TableItem) {
+						TableItem item = (TableItem) swtObject;
+						tableEditor.setItem(item);
+						for (DocumentObject doc : element.getChildren()) {
+							Control control = (Control) doCreate(
+									((TableItem) swtObject).getParent(),
+									(Element) doc, null, EMPTY_MAP);
+							tableEditor.setEditor(control);
+							int column = getColumnValue(element);
+							TableEditorHelper.initEditor(item, control, column);
+						}
+					}
+				}
+			} else {
+				Constructor<?> constructor = type.getConstructor(type);
+				if (constructor != null) {
+					instance = constructor.newInstance(loader.convertFrom(type,
+							content));
+					invokeCreatededAction(element, instance);
+				} else {
+					LoggerManager.log(new XWTException("Constructor \"" + name
+							+ "(" + type.getSimpleName() + ")\" is not found"));
+				}
+			}
+			Map<String, IProperty> delayedAttributes = new HashMap<String, IProperty>();
+			init(metaclass, instance, element, delayedAttributes);
+			iniDelayedAttribute(metaclass, instance, element, null,
+					delayedAttributes);
+
+			for (DocumentObject doc : element.getChildren()) {
+				doCreate(instance, (Element) doc, null, Collections.EMPTY_MAP);
+			}
+			return instance;
+		} catch (Exception e) {
+			LoggerManager.log(e);
+		}
+		return null;
+	}
+
+	static protected int getColumnValue(Element context) {
+		Attribute attribute = context.getAttribute(COLUMN);
+		if (attribute != null) {
+			String content = attribute.getContent();
+			if (content != null) {
+				return Integer.parseInt(content);
+			}
+		}
+		return 0;
+	}
+
+	protected void loadShellCLR(String className, Shell shell) {
+		Class<?> type = ClassLoaderUtil.loadClass(context.getLoadingContext(),
+				className);
+		try {
+			Object instance = type.newInstance();
+			loadData.setClr(instance);
+			UserData.setCLR(shell, instance);
+		} catch (Exception e) {
+			LoggerManager.log(e);
+		}
+	}
+
+	protected Object loadFactoryCLR(String value, ICLRFactory factory) {
+		String token;
+		String arg;
+		if (value.startsWith("+")) {
+			if (factory == null) {
+				throw new XWTException("ICLRFactory option is missing.");
+			}
+			arg = value.substring(1).trim();
+			return factory.createCLR(arg, options);
+		} else {
+			StringTokenizer stringTokenizer = new StringTokenizer(value);
+			if (!stringTokenizer.hasMoreTokens()) {
+				throw new XWTException("x:ClassFactory is empty");
+			}
+			token = stringTokenizer.nextToken();
+			arg = value.substring(token.length()).trim();
+		}
+		int index = token.lastIndexOf('.');
+		if (index != -1) {
+			String memberName = token.substring(index + 1);
+			String typeName = token.substring(0, index);
+			Class<?> type = ClassLoaderUtil.loadClass(
+					context.getLoadingContext(), typeName);
+			if (type != null) {
+				Object member = ClassLoaderUtil.loadMember(
+						context.getLoadingContext(), type, memberName, false);
+				if (member instanceof ICLRFactory) {
+					factory = (ICLRFactory) member;
+				}
+				if (factory != null) {
+					return factory.createCLR(arg, options);
+				}
+			}
+		}
+		Class<?> type = ClassLoaderUtil.loadClass(context.getLoadingContext(),
+				token);
+		if (type != null && ICLRFactory.class.isAssignableFrom(type)) {
+			try {
+				ICLRFactory localFactory = (ICLRFactory) type.newInstance();
+				return localFactory.createCLR(arg, options);
+			} catch (Exception e) {
+				throw new XWTException(e);
+			}
+		}
+		throw new XWTException(value + " ClassFactory not found.");
+	}
+
+	protected Object loadCLR(String className, Object[] parameters,
+			Class<?> currentTagType, Map<String, Object> options) {
+		Class<?> type = ClassLoaderUtil.loadClass(context.getLoadingContext(),
+				className);
+		if (type == null) {
+			return null;
+		}
+		try {
+			Object clr = options.get(XWTLoader.CLASS_PROPERTY);
+			if (clr != null && type.isInstance(clr)) {
+				loadData.setClr(clr);
+				if (clr instanceof Widget) {
+					UserData.setCLR((Widget) clr, clr);
+				}
+			} else if (currentTagType != null
+					&& currentTagType.isAssignableFrom(type)) {
+				IMetaclass metaclass = loader.getMetaclass(type);
+				Object instance = metaclass.newInstance(parameters);
+				loadData.setClr(instance);
+				// use x:Class's instance
+				if (instance instanceof Widget) {
+					UserData.setCLR((Widget) instance, instance);
+				}
+				return instance;
+			} else {
+				Object instance = type.newInstance();
+				loadData.setClr(instance);
+				if (instance instanceof Widget) {
+					UserData.setCLR((Widget) instance, instance);
+				}
+			}
+		} catch (Exception e) {
+			LoggerManager.log(e);
+		}
+		return null;
+	}
+
+	protected void initAttribute(IMetaclass metaclass, Object targetObject,
+			Element element, String namespace, String attrName)
+			throws Exception {
+		if (attrName.indexOf('.') != -1) {
+			String[] segments = attrName.split("\\.");
+			IMetaclass currentMetaclass = metaclass;
+			Object target = targetObject;
+			for (int i = 0; i < segments.length - 1; i++) {
+				IProperty property = currentMetaclass.findProperty(segments[i]);
+				if (property != null) {
+					target = property.getValue(target);
+					if (target == null) {
+						LoggerManager.log(new XWTException("Property \""
+								+ segments[i] + "\" is null."));
+					}
+					currentMetaclass = loader.getMetaclass(target);
+				} else {
+					LoggerManager.log(new XWTException("Property \""
+							+ segments[i] + "\" not found in "
+							+ element.getName() + "."));
+				}
+			}
+			initSegmentAttribute(currentMetaclass,
+					segments[segments.length - 1], target, element, namespace,
+					attrName);
+			return;
+		}
+		initSegmentAttribute(metaclass, attrName, targetObject, element,
+				namespace, attrName);
+	}
+
+	protected void addCommandExecuteListener(String commandName,
+			final Widget targetButton) {
+		final ICommand commandObj = loader.getCommand(commandName);
+		if (commandObj != null) {
+			targetButton.addListener(SWT.Selection, new Listener() {
+				public void handleEvent(Event event) {
+					commandObj.execute(targetButton);
+				}
+			});
+		}
+	}
+
+	protected void initSegmentAttribute(IMetaclass metaclass,
+			String propertyName, Object target, Element element,
+			String namespace, String attrName) throws Exception {
+		Attribute attribute = namespace == null ? element
+				.getAttribute(attrName) : element.getAttribute(namespace,
+				attrName);
+		if (attribute == null) {
+			attribute = element.getAttribute(attrName);
+		}
+		IProperty property = null;
+		boolean isAttached = false;
+		{
+			String namePrefix = attribute.getNamePrefix();
+			if (namePrefix == null) {
+				property = metaclass.findProperty(propertyName);
+			} else {
+				//
+				IMetaclass metaclassAttached = loader.getMetaclass(namePrefix,
+						attribute.getNamespace());
+				if (metaclassAttached != null) {
+					property = metaclassAttached.findProperty(propertyName);
+					isAttached = true;
+				} else {
+					LoggerManager.log(attribute.getNamespace() + " -> "
+							+ namePrefix + " is not found.");
+					return;
+				}
+			}
+		}
+
+		if (propertyName.equals(IConstants.XAML_DATA_CONTEXT)) {
+			property = null;
+		}
+		if (IConstants.XAML_COMMAND.equalsIgnoreCase(propertyName)
+				&& ICommand.class.isAssignableFrom(property.getType())
+				&& (target instanceof Widget)) {
+			addCommandExecuteListener(attribute.getContent(), (Widget) target);
+		}
+		if (property == null) {
+			if (options.get(IXWTLoader.DESIGN_MODE_PROPERTY) == Boolean.TRUE) {
+				return;
+			}
+			// prepare event
+			IEvent event = metaclass.findEvent(attrName);
+			if (event == null) {
+				return;
+			}
+			// add events for controls and items.
+			if (!(target instanceof Widget)) {
+				return;
+			}
+			loadData.updateEvent(context, (Widget) target, event,
+					attribute.getContent());
+			return;
+		}
+
+		String contentValue = attribute.getContent();
+		if ("MenuItem".equalsIgnoreCase(element.getName())
+				&& "Text".equalsIgnoreCase(attrName)) {
+			Attribute attributeAccelerator = element
+					.getAttribute("Accelerator");
+			if (attributeAccelerator != null) {
+				contentValue = contentValue + '\t'
+						+ getContentValue(attributeAccelerator.getContent());
+			}
+		}
+
+		if (contentValue != null && "Accelerator".equalsIgnoreCase(attrName)) {
+			contentValue = XWTMaps.getCombAccelerator(contentValue);
+			if (contentValue.contains("'")) {
+				contentValue = removeSubString(contentValue, "'");
+			}
+		}
+		if (contentValue != null
+				&& loader.isFileResolveType(property.getType())) {
+			contentValue = getImagePath(contentValue);
+		}
+		// if (contentValue != null
+		// && (URL.class.isAssignableFrom(property.getType()))) {
+		// contentValue = getSourceURL(contentValue);
+		// }
+		Object value = null;
+		DocumentObject[] children = attribute.getChildren();
+		boolean usingExistingValue = false;
+		if (contentValue == null) {
+			Class<?> type = property.getType();
+			if (Collection.class.isAssignableFrom(type)) {
+				value = getCollectionProperty(type, target, attribute, attrName);
+			} else {
+				Object directTarget = null;
+				if (TableViewerColumn.class.isAssignableFrom(type)
+						&& attrName.equalsIgnoreCase("columns")) {
+					children = DocumentObjectSorter.sortWithAttr(children,
+							"Index").toArray(
+							new DocumentObject[children.length]);
+				} else {
+					try {
+						Object propertyValue = property.getValue(target);
+						if (UserData.getWidget(propertyValue) != null) {
+							directTarget = propertyValue;
+							// use the existing property value as parent,
+							// not need to add the constraint
+							if (!property.isValueAsParent()) {
+								if (isChildTypeCompatible(attribute, type)) {
+									directTarget = null;
+								} else {
+									type = null;
+									usingExistingValue = true;
+								}
+							}
+						}
+					} catch (Exception e) {
+					}
+				}
+				if (directTarget == null) {
+					directTarget = target;
+				}
+
+				for (DocumentObject child : children) {
+					String name = child.getName();
+					String ns = child.getNamespace();
+					if (name.equalsIgnoreCase(IConstants.XAML_X_STATIC)
+							&& ns.equals(IConstants.XWT_X_NAMESPACE)) {
+						value = getStaticValue(child);
+					} else if (name
+							.equalsIgnoreCase(IConstants.XAML_STATICRESOURCES)
+							&& ns.equals(IConstants.XWT_NAMESPACE)) {
+						String key = child.getContent();
+						value = new StaticResourceBinding(
+								loadData.getCurrentWidget(), key);
+					} else if ((IConstants.XWT_X_NAMESPACE.equals(ns) && IConstants.XAML_X_ARRAY
+							.equalsIgnoreCase(name))) {
+						value = getArrayProperty(property.getType(),
+								directTarget, child, name);
+					} else if (property.getType().isArray()) {
+						value = getArrayProperty(property.getType(),
+								directTarget, attribute, name);
+						break;
+					} else if (isAssignableFrom(element, TableColumn.class)
+							&& isAssignableFrom(child, TableEditor.class)) {
+						value = child;
+					} else if (TableViewerColumn.class
+							.isAssignableFrom(property.getType())
+							&& attribute.getContent() != null) {
+						value = attribute.getContent();
+					} else {
+						if ("Null".equals(child.getName())
+								&& IConstants.XWT_X_NAMESPACE.equals(child
+										.getNamespace())) {
+							property.setValue(directTarget, null);
+							return;
+						} else {
+							value = doCreate(directTarget, (Element) child,
+									type, EMPTY_MAP);
+							if (value == null
+									&& type != null
+									&& !(type == Table.class
+											&& "TableColumn".equals(child
+													.getName()) && Table.class
+												.isInstance(directTarget))) {
+								throw new XWTException(child.getName()
+										+ " cannot be a content of "
+										+ type.getName() + " "
+										+ target.getClass().getName() + "."
+										+ property.getName());
+							}
+							if (value instanceof IDynamicBinding) {
+								((IDynamicBinding) value).setType(attrName);
+							}
+						}
+					}
+				}
+			}
+		}
+		if (contentValue != null && value == null
+				&& !IConstants.XAML_COMMAND.equalsIgnoreCase(propertyName)) {
+			if (property.getType().isInstance(Class.class)) {
+				int index = contentValue.lastIndexOf(':');
+				if (index != -1) {
+					String prefix = contentValue.substring(0, index);
+					contentValue = findNamespace(attribute, prefix)
+							+ contentValue.substring(index);
+				}
+			}
+			value = loader.convertFrom(property.getType(), contentValue);
+		}
+		if (!usingExistingValue) {
+			if (value != null) {
+				Class<?> propertyType = property.getType();
+				if (!propertyType.isAssignableFrom(value.getClass())
+						|| (value instanceof IBinding && !(IBinding.class
+								.isAssignableFrom(propertyType)))) {
+					Object orginalValue = value;
+					IConverter converter = loader.findConvertor(
+							value.getClass(), propertyType);
+					if (converter != null) {
+						value = converter.convert(value);
+						if (value != null
+								&& orginalValue instanceof IBinding
+								&& !propertyType.isAssignableFrom(value
+										.getClass())) {
+							converter = loader.findConvertor(value.getClass(),
+									propertyType);
+							if (converter != null) {
+								value = converter.convert(value);
+							} else {
+								LoggerManager.log(new XWTException("Convertor "
+										+ value.getClass().getSimpleName()
+										+ "->" + propertyType.getSimpleName()
+										+ " is not found"));
+							}
+						}
+					} else {
+						LoggerManager.log(new XWTException("Convertor "
+								+ value.getClass().getSimpleName() + "->"
+								+ propertyType.getSimpleName()
+								+ " is not found"));
+					}
+				}
+				if (isAttached) {
+					UserData.setLocalData(target, property, value);
+				} else {
+					if (value instanceof IDynamicValueBinding) {
+						IDynamicValueBinding dynamicValueBinding = (IDynamicValueBinding) value;
+						dynamicValueBinding.setControl(loadData
+								.findElement(Widget.class));
+						dynamicValueBinding.setProperty(property);
+						dynamicValueBinding.setObject(target);
+					}
+					// deal with validation staus
+					if ((value instanceof ValidationStatus)
+							&& (property.getName().equals("source"))
+							&& (target instanceof Binding)) {
+						ValidationStatus validationStatus = (ValidationStatus) value;
+						validationStatus.setParent(target);
+						if (status == null)
+							status = new ArrayList<ValidationStatus>();
+						status.add(validationStatus);
+					} else {
+						property.setValue(target, value);
+
+					}
+				}
+			} else {
+				if (value == null) {
+					value = property.getValue(target);
+				}
+				if (value != null) {
+					// create children.
+					for (DocumentObject child : children) {
+						String name = child.getName();
+						String ns = child.getNamespace();
+						if (!IConstants.XWT_X_NAMESPACE.equals(ns)
+								|| !IConstants.XAML_X_ARRAY
+										.equalsIgnoreCase(name)) {
+							Class<?> type = property.getType();
+							if (!Collection.class.isAssignableFrom(type)) {
+								doCreate(value, (Element) child, null,
+										EMPTY_MAP);
+							}
+						}
+					}
+				}
+			}
+		}
+
+		if (attribute.attributeNames(IConstants.XWT_NAMESPACE).length > 0) {
+			IMetaclass propertyMetaclass = loader.getMetaclass(property
+					.getType());
+			if (value == null) {
+				value = property.getValue(target);
+			}
+			if (value != null) {
+				Map<String, IProperty> delayedAttributes = new HashMap<String, IProperty>();
+				init(propertyMetaclass, value, attribute, delayedAttributes);
+				iniDelayedAttribute(metaclass, target, element, namespace,
+						delayedAttributes);
+			}
+		}
+	}
+
+	protected boolean isChildTypeCompatible(Attribute attribute, Class<?> type) {
+		DocumentObject[] children = attribute.getChildren();
+		if (children.length != 1) {
+			return false;
+		}
+		DocumentObject child = children[0];
+		if (!(child instanceof Element)) {
+			return false;
+		}
+		Element childElement = (Element) child;
+
+		String name = childElement.getName();
+		String namespace = childElement.getNamespace();
+		IMetaclass metaclass = loader.getMetaclass(name, namespace);
+		if (metaclass == null) {
+			return false;
+		}
+		return type.isAssignableFrom(metaclass.getType());
+	}
+
+	/**
+	 * @param contentValue
+	 * @return
+	 */
+	protected String getSourceURL(String contentValue) {
+		URL url = null;
+		try {
+			url = new URL(contentValue);
+		} catch (MalformedURLException e) {
+			if (!contentValue.startsWith("/")) {
+				contentValue = "/" + contentValue;
+			}
+			ILoadingContext loadingContext = context.getLoadingContext();
+			URL resource = loadingContext.getResource(contentValue);
+			if (resource == null) {
+				try {
+					resource = new URL(context.getResourcePath() + contentValue);
+					return resource.toString();
+				} catch (MalformedURLException e1) {
+				}
+			} else {
+				return resource.toString();
+			}
+		}
+		if (url != null) {
+			return url.toString();
+		}
+		return contentValue;
+	}
+
+	protected Class<?> getJavaType(DocumentObject element) {
+		String name = element.getName();
+		String namespace = element.getNamespace();
+		if (IConstants.XWT_X_NAMESPACE.equalsIgnoreCase(namespace)
+				&& IConstants.XAML_X_NULL.equalsIgnoreCase(name)) {
+			return null;
+		}
+		IMetaclass metaclass = loader.getMetaclass(name, namespace);
+		if (metaclass == null) {
+			return null;
+		}
+		return metaclass.getType();
+	}
+
+	protected boolean isAssignableFrom(DocumentObject element, Class<?> type) {
+		Class<?> targetType = getJavaType(element);
+		if (targetType == null) {
+			return false;
+		}
+		return targetType.isAssignableFrom(type);
+	}
+
+	protected Object getStaticValue(DocumentObject child) {
+		DocumentObject[] children = child.getChildren();
+		if (children.length == 1) {
+			Element element = (Element) children[0];
+			if (element != null) {
+				return ClassLoaderUtil.loadStaticMember(
+						context.getLoadingContext(), element);
+			}
+		}
+		return null;
+	}
+
+	protected String getImagePath(String contentValue) {
+		String value = contentValue;
+		try {
+			File file = new File(contentValue);
+			if (file.exists()) {
+				return file.toURI().toURL().toString();
+			}
+			if (!contentValue.startsWith("/")) {
+				URL url = context.getResourcePath();
+				if (url != null) {
+					return url.toString() + "/" + contentValue;
+				}
+				contentValue = "/" + contentValue;
+			}
+			ILoadingContext loadingContext = context.getLoadingContext();
+			URL resource = loadingContext.getResource(contentValue);
+			if (resource == null) {
+				URL resourcePath = context.getResourcePath();
+				String fPath = resourcePath.toString();
+				String absolutePath = PathHelper.getAbsolutePath(fPath,
+						contentValue);
+				if ((file = new File(absolutePath)).exists()) {
+					return file.toURI().toURL().toString();
+				}
+				resource = new URL(absolutePath);
+			}
+			return resource.toString();
+		} catch (MalformedURLException e) {
+			return value;
+		}
+	}
+
+	protected String removeSubString(String str, String subString) {
+		StringBuffer stringBuffer = new StringBuffer();
+		int lenOfsource = str.length();
+		int i;
+		int posStart;
+		for (posStart = 0; (i = str.indexOf(subString, posStart)) >= 0; posStart = i
+				+ subString.length()) {
+			stringBuffer.append(str.substring(posStart, i));
+		}
+		if (posStart < lenOfsource) {
+			stringBuffer.append(str.substring(posStart));
+		}
+		return stringBuffer.toString();
+	}
+
+	protected String getContentValue(String text) {
+		StringBuffer stringBuffer = new StringBuffer();
+		String subString = "SWT.";
+		String str = XWTMaps.getCombAccelerator(text);
+
+		if (str.contains(subString)) {
+			str = removeSubString(str, subString);
+		}
+		if (str.contains("'")) {
+			str = removeSubString(str, "'");
+		}
+		if (str.contains(" ")) {
+			str = removeSubString(str, " ");
+		}
+		if (str.contains("|")) {
+			str = str.replace('|', '+');
+		}
+		stringBuffer.append(str);
+		return stringBuffer.toString();
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/ResourceLoaderFactory.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/ResourceLoaderFactory.java
new file mode 100644
index 0000000..80f2666
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/ResourceLoaderFactory.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean;
+
+import org.eclipse.xwt.IXWTLoader;
+import org.eclipse.xwt.core.IElementLoaderFactory;
+import org.eclipse.xwt.core.IRenderingContext;
+import org.eclipse.xwt.core.IVisualElementLoader;
+
+public class ResourceLoaderFactory implements IElementLoaderFactory {
+	public ResourceLoaderFactory() {
+	}
+
+	public IVisualElementLoader createElementLoader(IRenderingContext context, IXWTLoader loader) {
+		return new ResourceLoader(context, loader);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/StaticResourceBinding.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/StaticResourceBinding.java
new file mode 100644
index 0000000..1973afd
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/StaticResourceBinding.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean;
+
+import java.util.Map;
+
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.core.IBinding;
+import org.eclipse.xwt.internal.utils.UserData;
+
+public class StaticResourceBinding implements IBinding {
+	protected Object widget;
+	protected String key;
+
+	public StaticResourceBinding(Object widget, String key) {
+		this.widget = widget;
+		this.key = key;
+	}
+
+	public Object getValue(Class<?> targetType) {
+		Widget parent = UserData.getWidget(widget);
+		while (parent != null) {
+			Map<String, Object> dico = UserData.getLocalResources(parent);
+			if (dico != null && dico.containsKey(key)) {
+				Object data = dico.get(key);
+				if (data instanceof IBinding) {
+					return ((IBinding) data).getValue(targetType);
+				}
+				return data;
+			}
+			parent = (Widget) UserData.getParent(parent);
+		}
+		throw new XWTException("Key " + key + " is not found.");			
+	}
+	
+	public void reset() {
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/ValueConvertorRegister.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/ValueConvertorRegister.java
new file mode 100644
index 0000000..e07da46
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/ValueConvertorRegister.java
@@ -0,0 +1,78 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean;
+
+import java.util.HashMap;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+
+public class ValueConvertorRegister {
+	static protected HashMap<Class<?>, HashMap<Class<?>, IConverter>> register = new HashMap<Class<?>, HashMap<Class<?>, IConverter>>();
+
+	public void register(Class<?> source, Class<?> target, IConverter converter) {
+		HashMap<Class<?>, IConverter> convertors = register.get(source);
+		if (convertors == null) {
+			convertors = new HashMap<Class<?>, IConverter>();
+			register.put(source, convertors);
+		}
+		convertors.put(target, converter);
+	}
+
+	public IConverter findConverter(Class<?> source, Class<?> target) {
+		HashMap<Class<?>, IConverter> convertors = register.get(source);
+		if (convertors == null) {
+			if (source.isEnum()) {
+				convertors = register.get(Enum.class);
+				if (convertors == null) {
+					return null;
+				}
+			} else {
+				Class<?>[] interfacees = source.getInterfaces();
+				for (Class<?> class1 : interfacees) {
+					IConverter converter = findConverter(class1, target);
+					if (converter != null) {
+						return converter;
+					}
+				}
+				Class<?> superclass = source.getSuperclass();
+				if (superclass != null) {
+					IConverter converter = findConverter(superclass, target);
+					if (converter != null) {
+						return converter;
+					}
+				}
+				return null;
+			}
+		}
+		return findConverter(convertors, target);
+	}
+
+	private IConverter findConverter(HashMap<Class<?>, IConverter> convertors, Class<?> current) {
+		IConverter converter = convertors.get(current);
+		if (converter == null) {
+			if (current.isEnum()) {
+				converter = convertors.get(Enum.class);
+			}
+		}
+		if (converter == null) {
+			Class<?> superclass = current.getSuperclass();
+			if (superclass == null && current != Object.class) {
+				superclass = Object.class;
+			}
+			if (superclass != null) {
+				converter = findConverter(convertors, superclass);
+			}
+		}
+		return converter;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/AbstractMetaclass.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/AbstractMetaclass.java
new file mode 100644
index 0000000..30bc546
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/AbstractMetaclass.java
@@ -0,0 +1,840 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata;
+
+import java.beans.BeanInfo;
+import java.beans.EventSetDescriptor;
+import java.beans.IntrospectionException;
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.Array;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.databinding.validation.ValidationStatus;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Region;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Monitor;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.IEventConstants;
+import org.eclipse.xwt.IEventGroup;
+import org.eclipse.xwt.IXWTLoader;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.XWTMaps;
+import org.eclipse.xwt.core.IBinding;
+import org.eclipse.xwt.internal.core.Binding;
+import org.eclipse.xwt.internal.utils.UserData;
+import org.eclipse.xwt.javabean.metadata.properties.BeanProperty;
+import org.eclipse.xwt.javabean.metadata.properties.DynamicProperty;
+import org.eclipse.xwt.javabean.metadata.properties.EventProperty;
+import org.eclipse.xwt.javabean.metadata.properties.FieldProperty;
+import org.eclipse.xwt.jface.JFacesHelper;
+import org.eclipse.xwt.metadata.IEvent;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IObjectInitializer;
+import org.eclipse.xwt.metadata.IProperty;
+
+/**
+ * 
+ * @author xye (xiaowei.ye@soyatec.com)
+ */
+public abstract class AbstractMetaclass implements IMetaclass {
+	public static IObjectInitializer[] EMPTY_INITIALIZERS = new IObjectInitializer[0];
+
+	public static IProperty[] EMPTY_PROPERTIES = new IProperty[0];
+	public static IEvent[] EMPTY_ROUTED_EVENTS = new IEvent[0];
+
+	protected final Map<String, IProperty> propertyCache = new HashMap<String, IProperty>();
+	protected Map<String, IEvent> routedEventCache = new HashMap<String, IEvent>();
+	protected Map<String, IEventGroup> eventGroupCache = Collections.EMPTY_MAP;
+
+	protected Class<?> type;
+	protected String name;
+	protected IMetaclass superClass;
+
+	protected IXWTLoader xwtLoader;
+
+	protected boolean buildTypedEvents;
+
+	private boolean initialize = false;
+	private IObjectInitializer[] initializers = EMPTY_INITIALIZERS;
+
+	protected boolean shouldIgnored(Class<?> declaredType, String propertyName,
+			Class<?> propertyType) {
+		String packageName = "";
+		if (type.getPackage() != null) {
+			packageName = declaredType.getPackage().getName();
+		}
+		if (("data".equals(propertyName) && packageName
+				.startsWith("org.eclipse.swt."))) {
+			return true;
+		}
+		if ("class".equals(propertyName)) {
+			return true;
+		}
+		if (("handle".equals(propertyName) && int.class == propertyType)
+				|| ("monitor".equals(propertyName) && Monitor.class == propertyType)
+				|| ("region".equals(propertyName) && Region.class == propertyType)
+				|| ("parent".equals(propertyName) && Composite.class == propertyType)
+				|| ("shell".equals(propertyName) && Shell.class == propertyType)
+				|| ("display".equals(propertyName) && Display.class == propertyType)) {
+			return true;
+		}
+		return false;
+	}
+
+	protected boolean isWidgetType(Class<?> type) {
+		Class<?> superClass = type.getSuperclass();
+		if (superClass != null) {
+			if (superClass.getName().equalsIgnoreCase(Widget.class.getName())) {
+				return true;
+			} else {
+				return isWidgetType(superClass);
+			}
+		}
+		return false;
+	}
+
+	protected final IXWTLoader getXWTLoader() {
+		return xwtLoader;
+	}
+
+	public IProperty addProperty(IProperty property) {
+		String name = normalize(property.getName());
+		return propertyCache.put(name, property);
+	}
+
+	public void removeProperty(String propertyName) {
+		String name = normalize(propertyName);
+		propertyCache.remove(name);
+	}
+
+	private void buildTypedEvents() {
+		if (buildTypedEvents) {
+			return;
+		}
+		if (isSubclassOf(getXWTLoader().getMetaclass(Widget.class))) {
+			addTypedEvent(IEventConstants.ACTIVATE, SWT.Activate);
+			addTypedEvent(IEventConstants.ARM, SWT.Arm);
+			addTypedEvent(IEventConstants.CLOSE, SWT.Close);
+			addTypedEvent(IEventConstants.COLLAPSE, SWT.Collapse);
+			addTypedEvent(IEventConstants.DEACTIVATE, SWT.Deactivate);
+			addTypedEvent(IEventConstants.DEFAULT_SELECTION,
+					SWT.DefaultSelection);
+			addTypedEvent(IEventConstants.DEICONIFY,
+					XWTMaps.getEvent("swt.deiconify"));
+			addTypedEvent(IEventConstants.DISPOSE, SWT.Dispose);
+			addTypedEvent(IEventConstants.DRAG_SELECT, SWT.DragDetect);
+			addTypedEvent(IEventConstants.ERASE_ITEM,
+					XWTMaps.getEvent("swt.eraseitem"));
+			addTypedEvent(IEventConstants.EXPAND, SWT.Expand);
+			addTypedEvent(IEventConstants.FOCUS_IN, SWT.FocusIn);
+			addTypedEvent(IEventConstants.FOCUS_OUT, SWT.FocusOut);
+			addTypedEvent(IEventConstants.HARD_KEY_DOWN,
+					XWTMaps.getEvent("swt.hardkeydown"));
+			addTypedEvent(IEventConstants.HARD_KEY_UP,
+					XWTMaps.getEvent("swt.hardkeyup"));
+			addTypedEvent(IEventConstants.HELP, SWT.Help);
+			addTypedEvent(IEventConstants.HIDE, SWT.Hide);
+			addTypedEvent(IEventConstants.ICONIFY,
+					XWTMaps.getEvent("swt.iconify"));
+			addTypedEvent(IEventConstants.KEY_DOWN, SWT.KeyDown);
+			addTypedEvent(IEventConstants.KEY_UP, SWT.KeyUp);
+			addTypedEvent(IEventConstants.MEASURE_ITEM,
+					XWTMaps.getEvent("swt.measureitem"));
+			addTypedEvent(IEventConstants.MENU_DETECT, SWT.MenuDetect);
+			addTypedEvent(IEventConstants.MODIFY, SWT.Modify);
+			addTypedEvent(IEventConstants.MOUSE_DOUBLE_CLICK,
+					SWT.MouseDoubleClick);
+			addTypedEvent(IEventConstants.MOUSE_DOWN, SWT.MouseDown);
+			addTypedEvent(IEventConstants.MOUSE_ENTER,
+					XWTMaps.getEvent("swt.mouseenter"));
+			addTypedEvent(IEventConstants.MOUSE_EXIT,
+					XWTMaps.getEvent("swt.mouseexit"));
+			addTypedEvent(IEventConstants.MOUSE_HOVER,
+					XWTMaps.getEvent("swt.mousehover"));
+			addTypedEvent(IEventConstants.MOUSE_MOVE,
+					XWTMaps.getEvent("swt.mousemove"));
+			addTypedEvent(IEventConstants.MOUSE_UP, SWT.MouseUp);
+			addTypedEvent(IEventConstants.MOUSE_WHEEL,
+					XWTMaps.getEvent("swt.mousewheel"));
+			addTypedEvent(IEventConstants.MOVE, SWT.Move);
+			addTypedEvent(IEventConstants.PAINT, XWTMaps.getEvent("swt.paint"));
+			addTypedEvent(IEventConstants.PAINT_ITEM,
+					XWTMaps.getEvent("swt.paintitem"));
+			addTypedEvent(IEventConstants.RESIZE, SWT.Resize);
+			addTypedEvent(IEventConstants.SELECTION, SWT.Selection); // sash
+			addTypedEvent(IEventConstants.SET_DATA, SWT.SetData);
+			// addTypedEvent ("Settings", SWT.Settings); // note: this event
+			// only goes to Display
+			addTypedEvent(IEventConstants.SHOW, SWT.Show);
+			addTypedEvent(IEventConstants.TRAVERSE, SWT.Traverse);
+			addTypedEvent(IEventConstants.VERIFY, SWT.Verify);
+			addTypedEvent(IEventConstants.IME_COMPOSITION,
+					XWTMaps.getEvent("swt.imecomposition"));
+		}
+		buildTypedEvents = true;
+	}
+
+	private void addTypedEvent(String name, int eventType) {
+		String eventName = IEventConstants.getEventName(name);
+		if (!routedEventCache.containsKey(eventName)) {
+			TypedEvent typedEvent = new TypedEvent(name, eventType);
+			routedEventCache.put(eventName, typedEvent);
+			String eventPropertyName = IEventConstants
+					.getEventPropertyName(name);
+			String eventDataName = IEventConstants
+					.getEventPropertyDataName(name);
+			addProperty(new EventProperty(eventPropertyName, eventDataName,
+					typedEvent));
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.soyatec.xaswt.core.metadata.IMetaclass#findDefaultProperty()
+	 */
+	public IProperty findDefaultProperty() {
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * com.soyatec.xaswt.core.metadata.IMetaclass#findEvent(java.lang.String)
+	 */
+	public IEvent findEvent(String name) {
+		assertInitialize();
+		return routedEventCache.get(normalize(name));
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * com.soyatec.xaswt.core.metadata.IMetaclass#findProperty(java.lang.String)
+	 */
+	public IProperty findProperty(String name) {
+		assertInitialize();
+		IProperty property = propertyCache.get(normalize(name));
+		if (property == null && superClass != null) {
+			property = superClass.findProperty(name);
+		}
+		if (property == null) {
+			Method getter = null;
+			Method setter = null;
+			Class<?> propertyType = null;
+			try {
+				getter = DynamicProperty.createGetter(type, name);
+			} catch (NoSuchMethodException e) {
+			}
+			if (getter == null) {
+				return null;
+			}
+			propertyType = getter.getReturnType();
+			if (shouldIgnored(getter.getDeclaringClass(), name, propertyType)) {
+				return null;
+			}
+			try {
+				setter = DynamicProperty.createSetter(type, propertyType, name);
+			} catch (NoSuchMethodException e) {
+
+			}
+			if (getter != null) {
+				return new DynamicProperty(propertyType, setter, getter, name);
+			}
+		}
+		return property;
+	}
+
+	protected String normalize(String name) {
+		return name == null ? name : name.toLowerCase();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.soyatec.xaswt.core.metadata.IMetaclass#getEvents()
+	 */
+	public IEvent[] getEvents() {
+		assertInitialize();
+		return routedEventCache.values().toArray(new IEvent[] {});
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.soyatec.xaswt.core.metadata.IMetaclass#getName()
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.soyatec.xaswt.core.metadata.IMetaclass#getProperties()
+	 */
+	public IProperty[] getProperties() {
+		assertInitialize();
+		return propertyCache.values().toArray(
+				new IProperty[propertyCache.size()]);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.soyatec.xaswt.core.metadata.IMetaclass#getSuperClass()
+	 */
+	public IMetaclass getSuperClass() {
+		return superClass;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.soyatec.xaswt.core.metadata.IMetaclass#getType()
+	 */
+	public Class<?> getType() {
+		return type;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.soyatec.xaswt.core.metadata.IMetaclass#isAbstract()
+	 */
+	public boolean isAbstract() {
+		return Modifier.isAbstract(type.getModifiers());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * com.soyatec.xaswt.core.metadata.IMetaclass#isAssignableFrom(com.soyatec
+	 * .xaswt.core.metadata.IMetaclass)
+	 */
+	public boolean isAssignableFrom(IMetaclass metaclass) {
+		return getType().isAssignableFrom(metaclass.getType());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * com.soyatec.xaswt.core.metadata.IMetaclass#isInstance(java.lang.Object)
+	 */
+	public boolean isInstance(Object object) {
+		return type.isInstance(object);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * com.soyatec.xaswt.core.metadata.IMetaclass#isSubclassOf(com.soyatec.xaswt
+	 * .core.metadata.IMetaclass)
+	 */
+	public boolean isSubclassOf(IMetaclass metaclass) {
+		assertInitialize();
+		if (metaclass == null) {
+			return false;
+		}
+		if (this == metaclass) {
+			return true;
+		}
+		if (superClass == metaclass) {
+			return true;
+		}
+		if (superClass != null) {
+			return superClass.isSubclassOf(metaclass);
+		}
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * com.soyatec.xaswt.core.metadata.IMetaclass#isSuperclassOf(com.soyatec
+	 * .xaswt.core.metadata.IMetaclass)
+	 */
+	public boolean isSuperclassOf(IMetaclass metaclass) {
+		return metaclass.isSubclassOf(this);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.soyatec.xaswt.core.metadata.IMetaclass#newInstance()
+	 */
+	public Object newInstance(Object[] parameters) {
+		assertInitialize();
+		Object object = doNewInstance(parameters);
+		if (parameters != null && parameters.length > 0) {
+			try {
+				updateContainment(parameters[0], object);
+				initialize(object);
+			} catch (Exception e) {
+				throw new XWTException(e);
+			}
+		}
+		return object;
+	}
+
+	private void updateContainment(Object parent, Object childElement)
+			throws IllegalAccessException, InvocationTargetException,
+			NoSuchFieldException {
+		if (childElement != null && parent != null
+				&& !(parent instanceof Widget)) {
+			//
+			// Add to default property identified by the type
+			//
+			IMetaclass parentMetaclass = XWT.getMetaclass(parent);
+			IProperty[] properties = parentMetaclass.getProperties();
+			IProperty useProperty = null;
+			int count = 0;
+			Class<?> childType = childElement.getClass();
+
+			// deal with the ValidationStatus tag
+			IMetaclass childMetaclass = XWT.getMetaclass(childElement);
+
+			if (childMetaclass.getType().equals(
+					org.eclipse.xwt.core.ValidationStatus.class)
+					&& parentMetaclass.getClass()
+							.equals(BindingMetaclass.class)) {
+				IProperty childControlProperty = childMetaclass
+						.findProperty("control");
+				IProperty parentControlProperty = parentMetaclass
+						.findProperty("control");
+				
+				
+
+				childControlProperty.setValue(childElement,
+						parentControlProperty.getValue(parent));
+			}
+
+			for (IProperty property : properties) {
+				
+				Class<?> propertyType = property.getType();
+				if (propertyType == null || propertyType == Object.class) {
+					continue;
+				}
+				if (property.isContainement()) {
+					useProperty = property;
+					count++;
+				}
+			}
+			if (count > 1) {
+				StringBuilder builder = new StringBuilder();
+				builder.append("Class has more containment properties: ");
+				count = 0;
+				for (IProperty property : properties) {
+					Class<?> propertyType = property.getType();
+					if (propertyType == null || propertyType == Object.class) {
+						continue;
+					}
+					if (property.isContainement()) {
+						if (count != 0) {
+							builder.append(", ");
+						}
+						builder.append(property.getName());
+						count++;
+					}
+				}
+				throw new XWTException(
+						"Class has more containment properties: ");
+			}
+
+			if (count == 0) {
+				for (IProperty property : properties) {
+					Class<?> propertyType = property.getType();
+					if (propertyType == null || propertyType == Object.class) {
+						continue;
+					}
+					if (propertyType.isArray()) {
+						Class<?> dataType = propertyType.getComponentType();
+						if (dataType.isAssignableFrom(childType)) {
+							if (useProperty == null) {
+								useProperty = property;
+							}
+							count++;
+						}
+					} else if (Collection.class.isAssignableFrom(propertyType)) {
+						if (useProperty == null) {
+							useProperty = property;
+						}
+						count++;
+					} else if (propertyType.isAssignableFrom(childType)) {
+						if (useProperty == null) {
+							useProperty = property;
+						}
+						count++;
+					}
+				}
+			}
+			if (count == 1) {
+				Class<?> propertyType = useProperty.getType();
+				if (propertyType.isArray()) {
+					Object[] existingValue = (Object[]) useProperty
+							.getValue(parent);
+					Class<?> dataType = propertyType.getComponentType();
+					Object[] value = null;
+					if (existingValue == null) {
+						value = (Object[]) Array.newInstance(dataType, 1);
+						value[0] = childElement;
+					} else {
+						value = (Object[]) Array.newInstance(dataType,
+								existingValue.length + 1);
+						System.arraycopy(existingValue, 0, value, 0,
+								existingValue.length);
+						value[existingValue.length] = childElement;
+					}
+					useProperty.setValue(parent, value);
+				} else if (Collection.class.isAssignableFrom(propertyType)
+						&& !(childElement instanceof IBinding)) {
+					Collection existingValue = (Collection) useProperty
+							.getValue(parent);
+					if (existingValue == null) {
+						existingValue = new ArrayList();
+					}
+					existingValue.add(childElement);
+					useProperty.setValue(parent, existingValue);
+				} else if (propertyType.isAssignableFrom(childType)) {
+					useProperty.setValue(parent, childElement);
+				}
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.soyatec.xaswt.core.metadata.IMetaclass#newInstance()
+	 */
+	public Object doNewInstance(Object[] parameters) {
+		assertInitialize();
+		try {
+			if (parameters.length == 0
+					|| (!(parameters[0] instanceof Widget || JFacesHelper
+							.isViewer(parameters[0])))) {
+				return getType().newInstance();
+			}
+		} catch (InstantiationException e1) {
+		} catch (IllegalAccessException e1) {
+		}
+
+		try {
+			Object swtObject = null;
+			Object parent = parameters[0];
+			Widget directParent = UserData.getWidget(parent);
+			if (directParent == null) {
+				directParent = UserData.getTreeParent(parent);
+			}
+			if (directParent != null
+					&& Control.class.isAssignableFrom(getType())
+					&& !(directParent instanceof Composite)) {
+				directParent = getXWTLoader().findCompositeParent(directParent);
+			}
+
+			Object styleValue = null;
+			if (parameters.length == 2
+					&& parameters[1] != null
+					&& (parameters[1].getClass() == int.class || parameters[1]
+							.getClass() == Integer.class)) {
+				styleValue = parameters[1];
+			}
+
+			Constructor<?> defaultConstructor = null;
+			for (Constructor<?> constructor : getType().getConstructors()) {
+				Class<?>[] parameterTypes = constructor.getParameterTypes();
+				if (parameterTypes.length > 2 || parameterTypes.length == 0) {
+					if (parameterTypes.length == 0) {
+						defaultConstructor = constructor;
+					}
+					continue;
+				}
+
+				if (parameterTypes[0].isAssignableFrom(parent.getClass())) {
+					if (parameterTypes.length == 1) {
+						if (styleValue == null) {
+							swtObject = constructor
+									.newInstance(new Object[] { parent });
+							break;
+						}
+					} else if (parameterTypes[1].isAssignableFrom(int.class)) {
+						if (styleValue == null)
+							swtObject = constructor.newInstance(new Object[] {
+									parent, 0 });
+						else
+							swtObject = constructor.newInstance(new Object[] {
+									parent, styleValue });
+						break;
+					}
+				}
+			}
+
+			if (swtObject == null) {
+				for (Constructor<?> constructor : getType().getConstructors()) {
+					Class<?>[] parameterTypes = constructor.getParameterTypes();
+					if (parameterTypes.length > 2 || parameterTypes.length == 0) {
+						if (parameterTypes.length == 0) {
+							defaultConstructor = constructor;
+						}
+						continue;
+					}
+
+					if (directParent != null
+							&& parameterTypes[0].isAssignableFrom(directParent
+									.getClass())) {
+						if (parameterTypes.length == 1) {
+							swtObject = constructor
+									.newInstance(new Object[] { directParent });
+							break;
+						} else if (parameterTypes[1]
+								.isAssignableFrom(int.class)) {
+							if (styleValue == null)
+								swtObject = constructor
+										.newInstance(new Object[] {
+												directParent, 0 });
+							else
+								swtObject = constructor
+										.newInstance(new Object[] {
+												directParent, styleValue });
+							break;
+						}
+					}
+				}
+			}
+			if (swtObject == null) {
+				if (defaultConstructor == null) {
+					if (UserData.isUIElementType(getType())) {
+						// this is used for Visual
+						Shell shell = new Shell();
+						try {
+							Constructor<?> constructor = getType()
+									.getConstructor(Composite.class, int.class);
+							if (constructor != null) {
+								return constructor.newInstance(shell, SWT.NONE);
+							}
+						} catch (Exception e) {
+							throw new XWTException("Constructor "
+									+ getType().getName() + " no found.");
+						}
+					}
+					try {
+						swtObject = getType().newInstance();
+					} catch (Exception e) {
+						throw new XWTException("Constructor "
+								+ getType().getName() + " no found.");
+					}
+				} else {
+					swtObject = defaultConstructor.newInstance();
+				}
+			}
+			return swtObject;
+		} catch (SecurityException e) {
+			throw new XWTException(e);
+		} catch (IllegalArgumentException e) {
+			throw new XWTException(e);
+		} catch (InstantiationException e) {
+			throw new XWTException(e);
+		} catch (IllegalAccessException e) {
+			throw new XWTException(e);
+		} catch (InvocationTargetException e) {
+			throw new XWTException(e);
+		}
+	}
+
+	public Class<?> getDataContextType() {
+		return Object.class;
+	}
+
+	private void assertInitialize() {
+		initialize(type, superClass);
+	}
+
+	protected void initialize(Class<?> type, IMetaclass superClass) {
+		if (isInitialize()) {
+			return;
+		}
+		try {
+			BeanInfo beanInfo = java.beans.Introspector.getBeanInfo(type);
+			PropertyDescriptor[] propertyDescriptors = beanInfo
+					.getPropertyDescriptors();
+			for (PropertyDescriptor p : propertyDescriptors) {
+				String propertyName = p.getName();
+				Class<?> propertyType = p.getPropertyType();
+				if (p.getReadMethod() == null) {
+					continue;
+				}
+				if (shouldIgnored(p.getReadMethod().getDeclaringClass(),
+						propertyName, propertyType)
+						|| propertyCache
+								.containsKey(propertyName.toLowerCase())) {
+					continue;
+				}
+				if (p.getPropertyType() != null) {
+					IProperty property = (superClass != null ? superClass
+							.findProperty(p.getName().toLowerCase()) : null);
+					if (property != null && !property.isDefault()) {
+						addProperty(property);
+					} else {
+						if (p.getWriteMethod() != null
+								|| !p.getPropertyType().isPrimitive()) {
+							addProperty(new BeanProperty(p));
+						}
+					}
+				}
+			}
+			for (Field f : type.getDeclaredFields()) {
+				if (Modifier.isStatic(f.getModifiers())) {
+					continue;
+				}
+				String propertyName = f.getName();
+				Class<?> propertyType = f.getType();
+				if (shouldIgnored(f.getDeclaringClass(), propertyName,
+						propertyType)) {
+					continue;
+				}
+
+				if (!propertyCache.containsKey(normalize(propertyName))
+						&& !Modifier.isFinal(f.getModifiers())
+						&& Modifier.isPublic(f.getModifiers())) {
+					addProperty(new FieldProperty(f));
+				}
+			}
+
+			for (EventSetDescriptor eventSetDescriptor : beanInfo
+					.getEventSetDescriptors()) {
+				String name = IEventConstants.getEventName(eventSetDescriptor
+						.getName());
+				BeanEvent event = new BeanEvent(eventSetDescriptor.getName(),
+						eventSetDescriptor);
+				routedEventCache.put(name, event);
+				String propertyName = IEventConstants
+						.getEventPropertyName(eventSetDescriptor.getName());
+				String propertyDataName = IEventConstants
+						.getEventPropertyDataName(eventSetDescriptor.getName());
+				addProperty(new EventProperty(propertyName, propertyDataName,
+						event));
+			}
+			if (isWidgetType(type)) {
+				LoadedEvent loadedEvent = new LoadedEvent(
+						IEventConstants.XWT_LOADED_EVENT);
+				routedEventCache.put(normalize(IEventConstants.XWT_LOADED),
+						loadedEvent);
+				routedEventCache.put(
+						normalize(IEventConstants.XWT_LOADED_EVENT),
+						loadedEvent);
+			}
+
+			markInitialized();
+			buildTypedEvents();
+		} catch (SecurityException e) {
+			e.printStackTrace();
+		} catch (IntrospectionException e) {
+			e.printStackTrace();
+		}
+	}
+
+	private void markInitialized() {
+		initialize = true;
+	}
+
+	private boolean isInitialize() {
+		return initialize;
+	}
+
+	public void addEventGroup(IEventGroup eventGroup) {
+		if (eventGroupCache == Collections.EMPTY_MAP) {
+			eventGroupCache = new HashMap<String, IEventGroup>();
+		}
+		for (String string : eventGroup.getEventNames()) {
+			if (eventGroupCache.containsKey(string)) {
+				throw new IllegalArgumentException("Event \"" + string
+						+ "\" already existis in a group.");
+			}
+			String key = normalize(string);
+			if ("menudetecteventevent".equals(key)) {
+				System.out.println(string);
+			}
+
+			eventGroupCache.put(key, eventGroup);
+		}
+	}
+
+	public IEventGroup getEventGroup(String event) {
+		IEventGroup eventGroup = eventGroupCache.get(event);
+		if (eventGroup == null && superClass != null) {
+			return superClass.getEventGroup(event);
+		}
+		return eventGroup;
+	}
+
+	public void addInitializer(IObjectInitializer initializer) {
+		for (int i = 0; i < initializers.length; i++) {
+			if (initializers[i] == initializer) {
+				return;
+			}
+		}
+		IObjectInitializer[] oldValue = initializers;
+		initializers = new IObjectInitializer[oldValue.length + 1];
+		System.arraycopy(oldValue, 0, initializers, 0, oldValue.length);
+		initializers[oldValue.length] = initializer;
+	}
+
+	public void removeInitializer(IObjectInitializer initializer) {
+		for (int i = 0; i < initializers.length; i++) {
+			if (initializers[i] == initializer) {
+				IObjectInitializer[] oldValue = initializers;
+				initializers = new IObjectInitializer[oldValue.length - 1];
+				System.arraycopy(oldValue, 0, initializers, 0, i);
+				System.arraycopy(oldValue, i + 1, initializers, i,
+						oldValue.length - i - 1);
+				return;
+			}
+		}
+	}
+
+	public IObjectInitializer[] getInitializers() {
+		return initializers;
+	}
+
+	public void initialize(Object instance) {
+		if (superClass != null) {
+			superClass.initialize(instance);
+		}
+
+		for (int i = 0; i < initializers.length; i++) {
+			if (initializers[i] != null) {
+				initializers[i].initialize(instance);
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/BeanEvent.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/BeanEvent.java
new file mode 100644
index 0000000..ed3d122
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/BeanEvent.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata;
+
+import java.beans.EventSetDescriptor;
+
+import org.eclipse.xwt.metadata.IEvent;
+
+/**
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class BeanEvent extends Behavior implements IEvent {
+	protected EventSetDescriptor eventSetDescriptor;
+
+	public BeanEvent(String name, EventSetDescriptor eventSetDescriptor) {
+		super(name);
+		this.eventSetDescriptor = eventSetDescriptor;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/Behavior.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/Behavior.java
new file mode 100644
index 0000000..b98f541
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/Behavior.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata;
+
+import org.eclipse.xwt.metadata.IBehavior;
+
+/**
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public abstract class Behavior implements IBehavior {
+	private String name;
+	protected int flags;
+
+	public Behavior(String name) {
+		this.name = name;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see com.soyatec.xaswt.core.metadata.IBehavior#getName()
+	 */
+	public final String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/BindingMetaclass.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/BindingMetaclass.java
new file mode 100644
index 0000000..1d87ddb
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/BindingMetaclass.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata;
+
+import org.eclipse.jface.viewers.ViewerColumn;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Item;
+import org.eclipse.xwt.IXWTLoader;
+import org.eclipse.xwt.internal.core.Binding;
+import org.eclipse.xwt.internal.core.DynamicBinding;
+import org.eclipse.xwt.javabean.metadata.properties.TableItemProperty;
+import org.eclipse.xwt.jface.JFacesHelper;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class BindingMetaclass extends Metaclass {
+	public BindingMetaclass(IXWTLoader xwtLoader) {
+		this(Binding.class, xwtLoader);
+	}
+
+	public BindingMetaclass(Class<?> type, IXWTLoader xwtLoader) {
+		super(type, null, xwtLoader);
+	}
+
+	@Override
+	public Object newInstance(Object[] parameters) {
+		DynamicBinding newInstance = (DynamicBinding) super.newInstance(parameters);
+		if (JFacesHelper.isViewer(parameters[0]))
+			newInstance.setControl(parameters[0]);
+		else if (parameters[0] instanceof Control)
+			newInstance.setControl((Control) parameters[0]);
+		else if (parameters[0] instanceof TableItemProperty.Cell)
+			newInstance.setControl(((TableItemProperty.Cell) parameters[0]).getParent());
+		else if (parameters[0] instanceof Item)
+			newInstance.setControl((Item) parameters[0]);
+		else if (parameters[0] instanceof ViewerColumn) {
+			newInstance.setControl((ViewerColumn) parameters[0]);
+		}
+		newInstance.setXWTLoader(xwtLoader);
+		return newInstance;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/ComboBoxCellEditorMetaclass.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/ComboBoxCellEditorMetaclass.java
new file mode 100644
index 0000000..d9b08a8
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/ComboBoxCellEditorMetaclass.java
@@ -0,0 +1,74 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.IXWTLoader;
+import org.eclipse.xwt.jface.ComboBoxCellEditor;
+import org.eclipse.xwt.jface.JFacesHelper;
+import org.eclipse.xwt.metadata.IMetaclass;
+
+public class ComboBoxCellEditorMetaclass extends Metaclass {
+
+	public ComboBoxCellEditorMetaclass(IMetaclass superClass, IXWTLoader xwtLoader) {
+		super(ComboBoxCellEditor.class, superClass, xwtLoader);
+	}
+
+	/**
+	 * @see org.eclipse.xwt.javabean.metadata.Metaclass#newInstance(java.lang. Object[])
+	 */
+	@Override
+	public Object newInstance(Object[] parameters) {
+		try {
+			if (parameters.length == 1) {
+				Constructor<?> constructor = getType().getConstructor(Composite.class, String[].class);
+				return constructor.newInstance(getParent(parameters[0]), new String[] {});
+			} else if (parameters.length == 2) {
+				Constructor<?> constructor = getType().getConstructor(Composite.class, String[].class, int.class);
+				return constructor.newInstance(getParent(parameters[0]), new String[] {}, parameters[2]);
+			} else if (parameters.length == 3) {
+				Constructor<?> constructor = getType().getConstructor(Composite.class, String[].class, int.class);
+				return constructor.newInstance(getParent(parameters[0]), parameters[1], parameters[2]);
+			}
+		} catch (SecurityException e1) {
+		} catch (IllegalArgumentException e1) {
+		} catch (NoSuchMethodException e1) {
+		} catch (InstantiationException e1) {
+		} catch (IllegalAccessException e1) {
+		} catch (InvocationTargetException e1) {
+		}
+		return super.newInstance(parameters);
+	}
+
+	private Widget getParent(Object object) {
+		Widget parent = null;
+		Widget directParent = null;
+
+		if (object instanceof Widget) {
+			directParent = parent = (Widget) object;
+		} else if (JFacesHelper.isViewer(object)) {
+			directParent = parent = JFacesHelper.getControl(object);
+		} else
+			throw new IllegalStateException();
+		if (Control.class.isAssignableFrom(getType()) && !(parent instanceof Composite)) {
+			directParent = xwtLoader.findCompositeParent(parent);
+		}
+
+		return directParent;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/ExpandItemHeightAction.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/ExpandItemHeightAction.java
new file mode 100644
index 0000000..aec05c2
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/ExpandItemHeightAction.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.ExpandItem;
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.xwt.metadata.ISetPostAction;
+
+/**
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class ExpandItemHeightAction implements ISetPostAction {
+
+	public void action(Object target, IProperty property, Object value) {
+		if (target instanceof ExpandItem && value instanceof Control) {
+			ExpandItem targetControl = (ExpandItem) target;
+			Control valueControl = (Control) value;
+			targetControl.setHeight(valueControl.computeSize(SWT.DEFAULT, SWT.DEFAULT).y);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/LoadedEvent.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/LoadedEvent.java
new file mode 100644
index 0000000..7b244fa
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/LoadedEvent.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata;
+
+import org.eclipse.xwt.metadata.IEvent;
+
+/**
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class LoadedEvent implements IEvent {
+
+	private String name;
+
+	public LoadedEvent(String name) {
+		this.name = name;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/Metaclass.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/Metaclass.java
new file mode 100644
index 0000000..c72672d
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/Metaclass.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata;
+
+import org.eclipse.xwt.IXWTLoader;
+import org.eclipse.xwt.XWTLoaderManager;
+import org.eclipse.xwt.metadata.IMetaclass;
+
+/**
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class Metaclass extends AbstractMetaclass {
+
+	/**
+	 * 
+	 * @param type
+	 * @param superClass
+	 * @param initialize
+	 */
+	public Metaclass(Class<?> type, IMetaclass superClass, boolean initialize) {
+		this(type, superClass, XWTLoaderManager.getDefault());
+	}
+
+	/**
+	 * 
+	 * @param type
+	 * @param superClass
+	 * @param initialize
+	 * @param xwtLoader
+	 */
+	public Metaclass(Class<?> type, IMetaclass superClass, boolean initialize, IXWTLoader xwtLoader) {
+		this.type = type;
+		this.name = type.getSimpleName();
+		this.superClass = superClass;
+		this.xwtLoader = xwtLoader;
+		if (initialize) {
+			initialize(type, superClass);
+		}
+	}
+
+	/**
+	 * Default initialize it
+	 * 
+	 * @param type
+	 * @param superClass
+	 */
+	public Metaclass(Class<?> type, IMetaclass superClass) {
+		this(type, superClass, false, XWTLoaderManager.getDefault());
+	}
+
+	/**
+	 * Default initialize it
+	 * 
+	 * @param type
+	 * @param superClass
+	 */
+	public Metaclass(Class<?> type, IMetaclass superClass, IXWTLoader xwtLoader) {
+		this(type, superClass, false, xwtLoader);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/TableEditorMetaclass.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/TableEditorMetaclass.java
new file mode 100644
index 0000000..de8d09c
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/TableEditorMetaclass.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata;
+
+import org.eclipse.swt.custom.TableEditor;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.IXWTLoader;
+import org.eclipse.xwt.internal.utils.UserData;
+import org.eclipse.xwt.metadata.IMetaclass;
+
+public class TableEditorMetaclass extends Metaclass {
+
+	public TableEditorMetaclass(IMetaclass superClass,IXWTLoader xwtLoader) {
+		super(TableEditor.class, superClass,xwtLoader);
+	}
+
+	/**
+	 * @see org.eclipse.xwt.javabean.metadata.Metaclass#newInstance(java.lang.
+	 *      Object[])
+	 */
+	@Override
+	public Object newInstance(Object[] parameters) {
+		Object widget = parameters[0];
+		if (parameters.length == 0 || !(widget instanceof Widget)) {
+			throw new IllegalStateException("Table parent is missing.");
+		}
+		Table table = null;
+		if (widget instanceof Table) {
+			table = (Table) widget;
+		} else {
+			table = (Table) UserData.findParent((Widget) widget, Table.class);
+		}
+		if (table == null) {
+			throw new IllegalStateException("Table parent is missing.");
+		}
+		return super.newInstance(new Object[] { table });
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/TableViewerColumnMetaClass.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/TableViewerColumnMetaClass.java
new file mode 100644
index 0000000..a8a9af7
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/TableViewerColumnMetaClass.java
@@ -0,0 +1,73 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.xwt.IXWTLoader;
+import org.eclipse.xwt.metadata.IMetaclass;
+
+public class TableViewerColumnMetaClass extends Metaclass {
+
+	public TableViewerColumnMetaClass(IMetaclass superClass, IXWTLoader xwtLoader) {
+		super(TableViewerColumn.class, superClass, xwtLoader);
+	}
+
+	/**
+	 * @see org.eclipse.xwt.javabean.metadata.Metaclass#newInstance(java.lang.
+	 *      Object[])
+	 */
+	@Override
+	public Object newInstance(Object[] parameters) {
+		Object object = doNewInstance(parameters);
+		if (object != null) {
+			initialize(object);
+		}
+		return object;
+	}
+
+	@Override
+	public Object doNewInstance(Object[] parameters) {
+		try {
+			if (parameters.length == 1 && parameters[0] instanceof TableViewer) {
+				Constructor<?> constructor = getType().getConstructor(TableViewer.class, int.class);
+				return constructor.newInstance(parameters[0], SWT.NONE);
+			} else if (parameters.length == 2) {
+				if (parameters[0] instanceof TableViewer && parameters[1] instanceof Integer) {
+					Constructor<?> constructor = getType().getConstructor(TableViewer.class, int.class);
+					return constructor.newInstance(parameters);
+				} else if (parameters[0] instanceof TableViewer && parameters[1] instanceof TableColumn) {
+					Constructor<?> constructor = getType().getConstructor(TableViewer.class, TableColumn.class);
+					return constructor.newInstance(parameters);
+				}
+			} else if (parameters.length == 3 && parameters[0] instanceof TableViewer
+					&& parameters[1] instanceof Integer && parameters[2] instanceof Integer) {
+				Constructor<?> constructor = getType().getConstructor(TableViewer.class, int.class, int.class);
+				return constructor.newInstance(parameters[0], ((Integer) parameters[1]).intValue(), ((Integer) parameters[2]).intValue());
+			}
+		} catch (SecurityException e) {
+		} catch (IllegalArgumentException e) {
+		} catch (NoSuchMethodException e) {
+		} catch (InstantiationException e) {
+		} catch (IllegalAccessException e) {
+		} catch (InvocationTargetException e) {
+		}
+
+		return super.doNewInstance(parameters);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/TypedEvent.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/TypedEvent.java
new file mode 100644
index 0000000..10ea01d
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/TypedEvent.java
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata;
+
+import org.eclipse.xwt.metadata.IEvent;
+
+/**
+ * @author jliu
+ */
+public class TypedEvent implements IEvent {
+
+	private String name;
+	private int eventType;
+
+	/**
+	 * SWT event type.
+	 */
+	public TypedEvent(String name, int eventType) {
+		this.name = name;
+		this.eventType = eventType;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.core.metadata.IBehavior#getName()
+	 */
+	public String getName() {
+		return name;
+	}
+
+	public int getEventType() {
+		return eventType;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/AbstractProperty.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/AbstractProperty.java
new file mode 100644
index 0000000..25ee2ab
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/AbstractProperty.java
@@ -0,0 +1,125 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata.properties;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+
+import org.eclipse.xwt.javabean.metadata.Behavior;
+import org.eclipse.xwt.metadata.ILoadingType;
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.xwt.metadata.ISetPostAction;
+
+public abstract class AbstractProperty extends Behavior implements IProperty {
+	static final int VALUE_AS_PARENT = 1<<1;
+	
+	protected Collection<ISetPostAction> setPostActions = Collections.EMPTY_LIST;
+	private Class<?> type;
+	protected ILoadingType loadingType;
+
+	public AbstractProperty(String name, Class<?> type) {
+		this(name, type, ILoadingType.DEFAULT);
+	}
+
+	public AbstractProperty(String name, Class<?> type, ILoadingType loadingType) {
+		super(name);
+		setType(type);
+		this.loadingType = loadingType;
+	}
+
+	public void addSetPostAction(ISetPostAction setPostAction) {
+		if (setPostActions == Collections.EMPTY_LIST) {
+			setPostActions = new ArrayList<ISetPostAction>();
+		}
+		if (!setPostActions.contains(setPostAction)) {
+			setPostActions.add(setPostAction);
+		}
+	}
+
+	public void removeSetPostAction(ISetPostAction setPostAction) {
+		setPostActions.remove(setPostAction);
+	}
+
+	protected void fireSetPostAction(Object target, IProperty property, Object value) {
+		for (ISetPostAction setPostAction : setPostActions) {
+			setPostAction.action(target, property, value);
+		}
+	}
+
+	public boolean isDefault() {
+		return false;
+	}
+	
+	public boolean isContainement() {
+		return false;
+	}
+
+	public boolean isReadOnly() {
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.metadata.IProperty#setType(java.lang.Class)
+	 */
+	public void setType(Class<?> type) {
+		if (type == boolean.class) {
+			type = Boolean.class;
+		}
+		else if (type == int.class) {
+			type = Integer.class;
+		}
+		else if (type == long.class) {
+			type = Long.class;
+		}
+		else if (type == char.class) {
+			type = Character.class;
+		}
+		else if (type == float.class) {
+			type = Float.class;
+		}
+		else if (type == double.class) {
+			type = Double.class;
+		}
+		else if (type == byte.class) {
+			type = Byte.class;
+		}
+		else if (type == short.class) {
+			type = Short.class;
+		}
+		this.type = type;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.metadata.IProperty#getType()
+	 */
+	public Class<?> getType() {
+		return type;
+	}
+	
+	public boolean isValueAsParent() {
+		return (flags & VALUE_AS_PARENT) == VALUE_AS_PARENT;
+	}
+	
+	public void setValueAsParent(boolean value) {
+		flags |= VALUE_AS_PARENT;
+	}
+
+	public ILoadingType getLoadingType() {
+		return loadingType;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/BeanProperty.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/BeanProperty.java
new file mode 100644
index 0000000..0e1fe22
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/BeanProperty.java
@@ -0,0 +1,142 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata.properties;
+
+import java.beans.PropertyDescriptor;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.annotation.Containment;
+import org.eclipse.xwt.core.IBinding;
+import org.eclipse.xwt.internal.utils.ObjectUtil;
+import org.eclipse.xwt.internal.utils.UserData;
+import org.eclipse.xwt.metadata.ILoadingType;
+import org.eclipse.xwt.metadata.IProperty;
+
+public class BeanProperty extends AbstractProperty {
+	protected PropertyDescriptor descriptor;
+	private boolean containment = false;
+	
+	public BeanProperty(PropertyDescriptor descriptor) {
+		this(descriptor, ILoadingType.DEFAULT);
+	}
+
+	public BeanProperty(PropertyDescriptor descriptor, ILoadingType loadingType) {
+		super(descriptor.getName(), descriptor.getPropertyType(), loadingType);
+		this.descriptor = descriptor;
+		
+		Method readMethod = descriptor.getReadMethod();
+		if (readMethod != null) {
+			Annotation annotation = readMethod.getAnnotation(Containment.class);
+			if (annotation != null) {
+				containment = true;
+			}
+		}
+		Method writeMethod = descriptor.getWriteMethod();
+		if (writeMethod != null) {
+			Annotation annotation = writeMethod.getAnnotation(Containment.class);
+			if (annotation != null) {
+				containment = true;
+			}
+		}
+	}
+
+	public void setValue(Object target, Object value)
+			throws IllegalArgumentException, IllegalAccessException,
+			InvocationTargetException, SecurityException, NoSuchFieldException {
+		if (descriptor != null && descriptor.getWriteMethod() != null) {
+			Method writeMethod = descriptor.getWriteMethod();
+			// Bug of invoke boolean value.
+			Class<?>[] parameterTypes = writeMethod.getParameterTypes();
+			if (parameterTypes.length == 1) {
+				Class<?> type = parameterTypes[0];
+				Class<?> propertyType = getType();
+				if (propertyType != Object.class) {
+					type = propertyType;
+				}
+				if (!ObjectUtil.isAssignableFrom(IBinding.class, propertyType)) {
+					if (value != null && type != value.getClass()) {
+						value = ObjectUtil.resolveValue(value, type, value);
+					}
+				}
+
+				Object oldValue = null;
+				Method readMethod = descriptor.getReadMethod();
+				if (readMethod != null) {
+					oldValue = readMethod.invoke(target);
+				}
+
+				if (value == null && type != null
+						&& UserData.getWidget(target) != null) {
+					if (type == String.class) {
+						value = "";
+					} else if (type == Boolean.class) {
+						value = false;
+					}
+				}
+
+				if (oldValue != value) {
+					writeMethod.setAccessible(true);
+					try {
+						writeMethod.invoke(target, value);
+						fireSetPostAction(target, this, value);
+					} catch (IllegalArgumentException e) {
+						if (value == null) {
+							throw new XWTException("Property type " + getName()
+									+ " of " + target.getClass().getName()
+									+ " cannot be null.", e);
+						}
+						throw new XWTException("Property type " + getName()
+								+ " of " + target.getClass().getName()
+								+ " is mismatch with "
+								+ value.getClass().getName()
+								+ " expected type is "
+								+ parameterTypes[0].getName(), e);
+					}
+					catch (InvocationTargetException e) {
+						throw new XWTException("Problem of invoke " + getName()
+								+ " of " + target.getClass().getName()
+								+ " with a value of type "
+								+ value.getClass().getName(), e);
+					}
+				}
+			}
+		}
+	}
+
+	public Object getValue(Object target) throws IllegalArgumentException,
+			IllegalAccessException, InvocationTargetException,
+			SecurityException, NoSuchFieldException {
+		if (descriptor != null && descriptor.getReadMethod() != null) {
+			Method readMethod = descriptor.getReadMethod();
+			readMethod.setAccessible(true);
+			return readMethod.invoke(target);
+		}
+		return null;
+	}
+
+	@Override
+	public boolean isDefault() {
+		return true;
+	}
+	
+	public boolean isContainement() {
+		return containment;
+	}
+
+	public boolean isReadOnly(Object target, Object value) {
+		return descriptor.getWriteMethod() == null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/ColumnViewerColumnsProperty.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/ColumnViewerColumnsProperty.java
new file mode 100644
index 0000000..a92a754
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/ColumnViewerColumnsProperty.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata.properties;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.xwt.core.IUserDataConstants;
+import org.eclipse.xwt.internal.utils.UserData;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class ColumnViewerColumnsProperty extends AbstractProperty {
+
+	public ColumnViewerColumnsProperty() {
+		super(PropertiesConstants.PROPERTY_COLUMNS, TableViewerColumn.class);
+	}
+
+	@Override
+	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+		return null;
+	}
+
+	@Override
+	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+		TableViewer tableViewer = (TableViewer) target;
+		Table table = (Table) tableViewer.getControl();
+		int count = table.getColumnCount();
+		if (count != 0) {
+			String[] columnProperties = new String[count];
+			for (int i = 0; i < columnProperties.length; i++) {
+				TableColumn column = table.getColumn(i);
+				columnProperties[i] = (String) UserData.getLocalData(column, IUserDataConstants.XWT_PROPERTY_DATA_KEY);
+				if (columnProperties[i] != null) {
+					UserData.setLocalData(column, IUserDataConstants.XWT_PROPERTY_DATA_KEY, null);
+				}
+			}
+			tableViewer.setColumnProperties(columnProperties);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/DataProperty.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/DataProperty.java
new file mode 100644
index 0000000..f6ed3e9
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/DataProperty.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata.properties;
+
+import org.eclipse.xwt.internal.utils.UserData;
+import org.eclipse.xwt.metadata.ILoadingType;
+
+/**
+ * Additional property to store in user data in widget
+ * 
+ * @author yyang
+ *
+ */
+public class DataProperty extends AbstractProperty {
+	protected String key;
+	protected Object defaultValue;
+
+	public DataProperty(String name, String key) {
+		this(name, key, Object.class, null);
+	}
+
+	public DataProperty(String name, String key, Class<?> propertyType) {
+		this(name, key, propertyType, null);
+	}
+
+	public DataProperty(String name, String key, Class<?> propertyType, Object defaultValue) {
+		this(name, key, propertyType, defaultValue, ILoadingType.DEFAULT);
+	}
+
+	public DataProperty(String name, String key, Class<?> propertyType, Object defaultValue, ILoadingType loadingType) {
+		super(name, propertyType, loadingType);
+		this.key = key;
+		this.defaultValue = defaultValue;
+	}
+
+	public Object getValue(Object target) {
+		Object object = UserData.getLocalData(target, key);
+		if (object == null) {
+			return defaultValue;
+		}
+		return object;
+	}
+
+	public void setValue(Object target, Object value) {
+		UserData.setLocalData(target, key, value);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/DynamicBeanProperty.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/DynamicBeanProperty.java
new file mode 100644
index 0000000..d3e0672
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/DynamicBeanProperty.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata.properties;
+
+import java.lang.reflect.InvocationTargetException;
+
+/**
+ * 
+ * This is a new type of dynamic properties, some properties, such as texts for TableItem and TreeItem, we used the setText(String[]) and String = getText();
+ * 
+ * @author jliu
+ * 
+ */
+public class DynamicBeanProperty extends DynamicProperty {
+
+	public DynamicBeanProperty(Class<?> type, Class<?> propertyType, String propertyName) {
+		super(propertyType, createSetter0(type, propertyType, propertyName), null, propertyName);
+	}
+
+	public DynamicBeanProperty(Class<?> type, Class<?> propertyType, String propertyName, String setterName) {
+		super(propertyType, createSetter0(type, propertyType, setterName), null, propertyName);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.javabean.metadata.properties.DynamicProperty#getValue (java.lang.Object)
+	 */
+	@Override
+	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+		throw new UnsupportedOperationException();
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/DynamicProperty.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/DynamicProperty.java
new file mode 100644
index 0000000..d5db6f8
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/DynamicProperty.java
@@ -0,0 +1,87 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata.properties;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+import org.eclipse.xwt.internal.utils.ObjectUtil;
+import org.eclipse.xwt.metadata.ILoadingType;
+import org.eclipse.xwt.metadata.IProperty;
+
+/**
+ * This class is used to extend the Java Bean model
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class DynamicProperty extends AbstractProperty {
+
+	private final Method setter;
+	private final Method getter;
+
+	public DynamicProperty(Class<?> type, Class<?> propertyType, String name) {
+		this(propertyType, createSetter0(type, propertyType, name), createGetter0(propertyType, name), name);
+	}
+
+	public DynamicProperty(Class<?> type, Class<?> propertyType, String name, ILoadingType loadingType) {
+		this(propertyType, createSetter0(type, propertyType, name), createGetter0(propertyType, name), name, loadingType);
+	}
+
+	public DynamicProperty(Class<?> propertyType, Method setter, Method getter, String name) {
+		this(propertyType, setter, getter, name, ILoadingType.DEFAULT);
+	}
+
+	public DynamicProperty(Class<?> propertyType, Method setter, Method getter, String name, ILoadingType loadingType) {
+		super(name, propertyType, loadingType);
+		this.setter = setter;
+		this.getter = getter;
+	}
+
+	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+		setter.invoke(target, value);
+		fireSetPostAction(target, this, value);
+	}
+
+	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+		return getter.invoke(target, null);
+	}
+
+	protected static Method createSetter0(Class<?> type, Class<?> propertyType, String name) {
+		try {
+			return createSetter(type, propertyType, name);
+		} catch (Exception e) {
+		}
+		return null;
+	}
+
+	@Override
+	public boolean isReadOnly() {
+		return this.setter == null;
+	}
+	
+	public static Method createSetter(Class<?> type, Class<?> propertyType, String name) throws SecurityException, NoSuchMethodException {
+		return type.getMethod("set" + Character.toUpperCase(name.charAt(0)) + name.substring(1), propertyType);
+	}
+
+	protected static Method createGetter0(Class<?> type, String name) {
+		try {
+			return createGetter(type, name);
+		} catch (Exception e) {
+		}
+		return null;
+	}
+
+	public static Method createGetter(Class<?> type, String name) throws SecurityException, NoSuchMethodException {
+		return ObjectUtil.findGetter(type, name, null);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/EventProperty.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/EventProperty.java
new file mode 100644
index 0000000..230684f
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/EventProperty.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata.properties;
+
+import org.eclipse.xwt.metadata.IEvent;
+
+/**
+ * A property to hold the event state
+ *
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class EventProperty extends DataProperty {
+	protected IEvent event;
+
+	public EventProperty(String name, String key, IEvent event) {
+		super(name, key, Boolean.class, false);
+		this.event = event;
+	}
+
+	public IEvent getEvent() {
+		return event;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/FieldProperty.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/FieldProperty.java
new file mode 100644
index 0000000..0f54d36
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/FieldProperty.java
@@ -0,0 +1,73 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata.properties;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.internal.utils.ObjectUtil;
+
+/**
+ * @author jliu
+ * 
+ */
+public class FieldProperty extends AbstractProperty {
+
+	private Field field;
+
+	public FieldProperty(Field field) {
+		super(field.getName(), field.getType());
+		this.field = field;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.metadata.IProperty#getValue(java.lang.Object)
+	 */
+	@Override
+	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+		return field.get(target);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.xwt.metadata.IProperty#setValue(java.lang.Object, java.lang.Object)
+	 */
+	@Override
+	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+		if (value != null) {
+			Class<?> fieldType = field.getType();
+			Class<?> valueType = value.getClass();
+			if (!ObjectUtil.isAssignableFrom(fieldType, valueType)) {
+				IConverter converter = XWT.findConvertor(valueType, fieldType);
+				if (converter != null) {
+					value = converter.convert(value);
+				} else {
+					throw new XWTException("Converter " + valueType.getName() + "->" + fieldType.getName());
+				}
+			}
+		}
+		field.set(target, value);
+		fireSetPostAction(target, this, value);
+	}
+
+	@Override
+	public boolean isDefault() {
+		return true;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/InputBeanProperty.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/InputBeanProperty.java
new file mode 100644
index 0000000..e85f438
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/InputBeanProperty.java
@@ -0,0 +1,174 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata.properties;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.databinding.observable.IObservableCollection;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.list.WritableList;
+import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
+import org.eclipse.jface.databinding.viewers.ObservableSetContentProvider;
+import org.eclipse.jface.viewers.AbstractTreeViewer;
+import org.eclipse.jface.viewers.ContentViewer;
+import org.eclipse.jface.viewers.IBaseLabelProvider;
+import org.eclipse.jface.viewers.IContentProvider;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.collection.CollectionViewSource;
+import org.eclipse.xwt.internal.utils.ObjectUtil;
+import org.eclipse.xwt.jface.DefaultViewerLabelProvider;
+import org.eclipse.xwt.jface.JFacesHelper;
+import org.eclipse.xwt.jface.ObservableMapLabelProvider;
+import org.eclipse.xwt.jface.ObservableTreeContentProvider;
+import org.eclipse.xwt.metadata.DelegateProperty;
+import org.eclipse.xwt.metadata.ILoadingType;
+import org.eclipse.xwt.metadata.IProperty;
+
+/**
+ * Handle manually the type conversion. Maybe it can be done using the
+ * IConverter. Only the type of IProperty should be IObservableCollection
+ * 
+ * @author yyang
+ * 
+ */
+public class InputBeanProperty extends DelegateProperty {
+
+//	public InputBeanProperty(IProperty delegate) {
+//		super(delegate);
+//	}
+
+	public InputBeanProperty(IProperty delegate, ILoadingType loadingType) {
+		super(delegate, loadingType);
+	}
+
+	@Override
+	public void setValue(Object target, Object value)
+			throws IllegalArgumentException, IllegalAccessException,
+			InvocationTargetException, SecurityException, NoSuchFieldException {
+		if (value == null) {
+			return;
+		}
+
+		if (value instanceof Class<?>) {
+			Class<?> type = (Class<?>) value;
+			if (type.isEnum()) {
+				value = new WritableList(XWT.getRealm(), Arrays.asList(type
+						.getEnumConstants()), type);
+			}
+		}
+
+		Class<?> elementType = getElementType();
+		if (value.getClass().isArray()) {
+			elementType = value.getClass().getComponentType();
+		}
+		if (value instanceof IObservableList) {
+			IObservableList list = (IObservableList) value;
+			Object listElementType = list.getElementType();
+			if (listElementType instanceof Class<?>) {
+				elementType = (Class<?>) listElementType;
+			}
+		} else if (elementType == Object.class
+				&& value instanceof Collection<?>) {
+			Collection<?> collection = (Collection<?>) value;
+			for (Iterator<?> iterator = collection.iterator(); iterator
+					.hasNext();) {
+				Object object = (Object) iterator.next();
+				if (object != null) {
+					elementType = object.getClass();
+					break;
+				}
+			}
+		}
+
+		if (target instanceof ContentViewer) {
+			ContentViewer viewer = (ContentViewer) target;
+
+			String[] propertyNames = JFacesHelper.getViewerProperties(viewer);
+			if (target instanceof AbstractTreeViewer) {
+				IContentProvider contentProvider = (IContentProvider) viewer
+						.getContentProvider();
+				if (contentProvider instanceof ObservableTreeContentProvider) {
+					ObservableTreeContentProvider xwtContentProvider = (ObservableTreeContentProvider) contentProvider;
+					xwtContentProvider.updateContext(viewer, value);
+				}
+				if (contentProvider instanceof ObservableTreeContentProvider) {
+					ObservableTreeContentProvider listContentProvider = (ObservableTreeContentProvider) contentProvider;
+					viewer.setLabelProvider(new ObservableMapLabelProvider(
+							viewer, listContentProvider.getKnownElements(),
+							propertyNames));
+				}
+			} else {
+				IContentProvider contentProvider = viewer.getContentProvider();
+				if (value instanceof List<?> || value.getClass().isArray()) {
+					if (contentProvider == null) {
+						contentProvider = new ObservableListContentProvider();
+						viewer.setContentProvider(contentProvider);
+					}
+					if (propertyNames != null
+							&& propertyNames.length > 0
+							&& hasDefaultLabelProvider(viewer)
+							&& contentProvider instanceof ObservableListContentProvider) {
+						ObservableListContentProvider listContentProvider = (ObservableListContentProvider) contentProvider;
+						viewer.setLabelProvider(new ObservableMapLabelProvider(
+								viewer, listContentProvider.getKnownElements(),
+								propertyNames));
+					}
+				} else if (value instanceof Set<?>) {
+					if (contentProvider == null) {
+						contentProvider = new ObservableSetContentProvider();
+						viewer.setContentProvider(contentProvider);
+					}
+					if (propertyNames != null
+							&& propertyNames.length > 0
+							&& hasDefaultLabelProvider(viewer)
+							&& contentProvider instanceof ObservableSetContentProvider) {
+						ObservableSetContentProvider setContentProvider = (ObservableSetContentProvider) contentProvider;
+						viewer.setLabelProvider(new ObservableMapLabelProvider(
+								viewer, setContentProvider.getKnownElements(),
+								propertyNames));
+					}
+				}
+			}
+		}
+		if (value instanceof CollectionViewSource) {
+			value = ((CollectionViewSource) value).getView();
+		} else if ((value instanceof Collection<?>)
+				&& !(value instanceof IObservableCollection)) {
+			value = ObjectUtil.resolveValue(value, IObservableCollection.class,
+					value);
+		}
+		super.setValue(target, value);
+	}
+
+	protected boolean hasDefaultLabelProvider(ContentViewer viewer) {
+		IBaseLabelProvider labelProvider = viewer.getLabelProvider();
+		return (labelProvider == null || labelProvider.getClass() == DefaultViewerLabelProvider.class);
+	}
+
+	protected Class<?> getElementType() {
+		IProperty property = getDelegate();
+		Class<?> type = property.getType();
+		if (type == null) {
+			return Object.class;
+		}
+		if (type.isArray()) {
+			return type.getComponentType();
+		}
+		return Object.class;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/MultiSelectionBeanProperty.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/MultiSelectionBeanProperty.java
new file mode 100644
index 0000000..81c0729
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/MultiSelectionBeanProperty.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata.properties;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.xwt.metadata.ILoadingType;
+import org.eclipse.xwt.metadata.IProperty;
+
+/**
+ * Handle manually the type conversion. Maybe it can be done using the
+ * IConverter. Only the type of IProperty should be IObservableCollection
+ * 
+ * @author yyang
+ * 
+ */
+public class MultiSelectionBeanProperty extends AbstractProperty {
+	public MultiSelectionBeanProperty(String name) {
+		this(name, ILoadingType.DEFAULT);
+	}
+
+	public MultiSelectionBeanProperty(String name, ILoadingType loadingType) {
+		super(name, Object.class, loadingType);
+	}
+	
+	public Object getValue(Object source) throws IllegalArgumentException,
+			IllegalAccessException, InvocationTargetException,
+			SecurityException, NoSuchFieldException {
+		ISelection selection = ((ISelectionProvider) source).getSelection();
+		if (selection instanceof IStructuredSelection) {
+			return ((IStructuredSelection) selection).toList();
+		}
+		return Collections.EMPTY_LIST;
+	}
+	
+	public void setValue(Object source, Object value)
+			throws IllegalArgumentException, IllegalAccessException,
+			InvocationTargetException, SecurityException, NoSuchFieldException {
+		if (value instanceof List<?>) {
+			List<?> list = (List<?>)value;
+			((ISelectionProvider) source).setSelection(new StructuredSelection(list));		
+		}
+		else if (value instanceof Set<?>) {
+			Set<?> set = (Set<?>)value;
+			((ISelectionProvider) source).setSelection(new StructuredSelection(set.toArray()));
+			return;
+		}
+		else if (value.getClass().isArray()) {
+			((ISelectionProvider) source).setSelection(new StructuredSelection((Object[])value));
+			return;
+		}
+		((ISelectionProvider) source).setSelection(StructuredSelection.EMPTY);		
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/PropertiesConstants.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/PropertiesConstants.java
new file mode 100644
index 0000000..5c812e7
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/PropertiesConstants.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata.properties;
+
+/**
+ * @author jliu
+ * 
+ */
+public final class PropertiesConstants {
+
+	// Properties
+	public static final String PROPERTY_EDITOR = "editor";
+	public static final String PROPERTY_EDITORS = "editors";
+	public static final String PROPERTY_DYNAMIC = "dynamic";
+	public static final String PROPERTY_CELLS = "cells";
+	public static final String PROPERTY_TEXTS = "texts";
+	public static final String PROPERTY_TEXT = "text";
+	public static final String PROPERTY_URL = "url";
+	public static final String PROPERTY_WIDTH = "width";
+	public static final String PROPERTY_BINDING_PATH = "bindingPath";
+	public static final String PROPERTY_ITEM_TEXT = "itemText";
+	public static final String PROPERTY_ITEM_IMAGE = "itemImage";
+	public static final String PROPERTY_IMAGE = "image";
+	public static final String PROPERTY_COLUMNS = "columns";
+	public static final String PROPERTY_COLUMN_PROPERTIES = "columnProperties";
+	public static final String PROPERTY_SINGLE_SELECTION = "singleSelection";
+	public static final String PROPERTY_MULTI_SELECTION = "multiSelection";
+
+	// Data
+	public static final String DATA_DEFINED_EDITOR = "Defined table editors";
+	public static final String DATA_TABLE_UTIL = "tableUtil";
+	public static final String DATA_CONTROLEDITOR_OF_CONTROL = "TableEditor of a control";
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/SingleSelectionBeanProperty.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/SingleSelectionBeanProperty.java
new file mode 100644
index 0000000..763bd53
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/SingleSelectionBeanProperty.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata.properties;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.xwt.metadata.ILoadingType;
+import org.eclipse.xwt.metadata.IProperty;
+
+/**
+ * IViewer property
+ * 
+ * @author yyang
+ */
+public class SingleSelectionBeanProperty extends AbstractProperty {
+	public SingleSelectionBeanProperty(String name) {
+		this(name, ILoadingType.DEFAULT);
+	}
+
+	public SingleSelectionBeanProperty(String name, ILoadingType loadingType) {
+		super(name, Object.class, loadingType);
+	}
+
+	public Object getValue(Object source) throws IllegalArgumentException,
+			IllegalAccessException, InvocationTargetException,
+			SecurityException, NoSuchFieldException {
+		ISelection selection = ((ISelectionProvider) source).getSelection();
+		if (selection instanceof IStructuredSelection) {
+			return ((IStructuredSelection) selection).getFirstElement();
+		}
+		return null;
+	}
+	
+	public void setValue(Object source, Object value)
+			throws IllegalArgumentException, IllegalAccessException,
+			InvocationTargetException, SecurityException, NoSuchFieldException {
+		IStructuredSelection selection = value == null ? StructuredSelection.EMPTY
+				: new StructuredSelection(value);
+		if (source instanceof Viewer) {
+			((Viewer) source).setSelection(selection, true);
+		} else {
+			((ISelectionProvider) source).setSelection(selection);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/StyleProperty.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/StyleProperty.java
new file mode 100644
index 0000000..def0e73
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/StyleProperty.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata.properties;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.core.Style;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class StyleProperty extends AbstractProperty {
+
+	public StyleProperty() {
+		super(IConstants.XAML_STYLE, Object.class);
+	}
+
+	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+		return null;
+	}
+
+	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+		if (!(value instanceof Style)) {
+			throw new XWTException("Style is expected.");
+		}
+		Style style = (Style) value;
+		style.apply(target);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableColumnEditorProperty.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableColumnEditorProperty.java
new file mode 100644
index 0000000..1de8ce8
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableColumnEditorProperty.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata.properties;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.xwt.internal.xml.Element;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class TableColumnEditorProperty extends AbstractProperty {
+
+	public TableColumnEditorProperty() {
+		super(PropertiesConstants.PROPERTY_EDITOR, Element.class);
+	}
+
+	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+		TableColumn tableColumn = (TableColumn) target;
+		return tableColumn.getData(PropertiesConstants.DATA_DEFINED_EDITOR);
+	}
+
+	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+		TableColumn tableColumn = (TableColumn) target;
+		tableColumn.setData(PropertiesConstants.DATA_DEFINED_EDITOR, value);
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableEditorDynamicProperty.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableEditorDynamicProperty.java
new file mode 100644
index 0000000..6f0bb25
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableEditorDynamicProperty.java
@@ -0,0 +1,324 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata.properties;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.TableEditor;
+import org.eclipse.swt.events.FocusAdapter;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.events.KeyAdapter;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.KeyListener;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.xwt.XWTMaps;
+import org.eclipse.xwt.metadata.ILoadingType;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class TableEditorDynamicProperty extends AbstractProperty {
+
+	public TableEditorDynamicProperty() {
+		super(PropertiesConstants.PROPERTY_DYNAMIC, Boolean.class);
+	}
+
+	public TableEditorDynamicProperty(ILoadingType loadingType) {
+		super(PropertiesConstants.PROPERTY_DYNAMIC, Boolean.class, loadingType);
+	}
+
+	/**
+	 * @see org.eclipse.xwt.metadata.IProperty#getValue(java.lang.Object)
+	 */
+	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+		return null;
+	}
+
+	/**
+	 * @see org.eclipse.xwt.metadata.IProperty#setValue(java.lang.Object, java.lang.Object)
+	 */
+	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+
+		Boolean isDynamic = (Boolean) value;
+		TableEditor tableEditor = (TableEditor) target;
+		final Control control = tableEditor.getEditor();
+		Table tableParent = null;
+		Composite parent = control.getParent();
+		if (parent instanceof Table) {
+			tableParent = (Table) parent;
+		} else if (tableEditor.getItem() != null) {
+			tableParent = tableEditor.getItem().getParent();
+		}
+		if (tableParent == null) {
+			return;
+		}
+		final Table table = tableParent;
+		if (isDynamic) {
+			control.setVisible(false);
+			control.addFocusListener(new FocusAdapter() {
+				@Override
+				public void focusLost(FocusEvent e) {
+					control.setVisible(false);
+				}
+			});
+
+			control.addKeyListener(new KeyAdapter() {
+				@Override
+				public void keyPressed(KeyEvent e) {
+					if (e.character == SWT.CR && control.isFocusControl()) {
+						table.notifyListeners(SWT.DefaultSelection, new Event());
+					}
+				}
+			});
+
+			Object mouseHander = table.getData(PropertiesConstants.DATA_TABLE_UTIL);
+			if (mouseHander == null) {
+				TableUtil tableUtil = new TableUtil(table);
+				table.setData(PropertiesConstants.DATA_TABLE_UTIL, tableUtil);
+			}
+
+			table.addSelectionListener(new TableSelectionHandler(table, tableEditor));
+		}
+	}
+
+	static private class TableSelectionHandler implements SelectionListener {
+
+		private Table table;
+		private TableEditor tableEditor;
+
+		public TableSelectionHandler(Table table, TableEditor tableEditor) {
+			this.table = table;
+			this.tableEditor = tableEditor;
+		}
+
+		public void widgetDefaultSelected(SelectionEvent e) {
+			Control editor = tableEditor.getEditor();
+			if (editor.isDisposed()) {
+				return;
+			}
+			if (editor.isFocusControl()) {
+				editor.setVisible(false);
+			} else {
+				editor.setFocus();
+			}
+		}
+
+		public void widgetSelected(SelectionEvent e) {
+			Control editor = tableEditor.getEditor();
+			if (editor.isDisposed()) {
+				return;
+			}
+			TableUtil tableUtil = (TableUtil) table.getData(PropertiesConstants.DATA_TABLE_UTIL);
+			TableItem item = tableUtil.getItem();
+			int column = tableUtil.getColumn();
+
+			if (item == tableEditor.getItem() && column == tableEditor.getColumn()) {
+				editor.setVisible(true);
+			} else {
+				editor.setVisible(false);
+			}
+		}
+	}
+
+	private static class TableUtil extends MouseAdapter implements KeyListener {
+
+		private Table table;
+
+		private TableItem item;
+
+		private TableColumn column;
+
+		public TableUtil(Table table) {
+			this.table = table;
+			table.addMouseListener(this);
+			table.addKeyListener(this);
+		}
+
+		@Override
+		public void mouseDown(MouseEvent e) {
+			if (table.isDisposed() || !table.isVisible())
+				return;
+			Point pt = new Point(e.x, e.y);
+			int lineWidth = table.getLinesVisible() ? table.getGridLineWidth() : 0;
+			TableItem item = table.getItem(pt);
+
+			int start = item != null ? table.indexOf(item) : table.getTopIndex();
+			int end = table.getItemCount();
+			Rectangle clientRect = table.getClientArea();
+			for (int i = start; i < end; i++) {
+				TableItem nextItem = table.getItem(i);
+				Rectangle rect = nextItem.getBounds(0);
+				if (pt.y >= rect.y && pt.y < rect.y + rect.height + lineWidth) {
+					item = nextItem;
+					break;
+				}
+				if (rect.y > clientRect.y + clientRect.height)
+					return;
+			}
+			if (item == null)
+				return;
+
+			this.item = item;
+
+			TableColumn newColumn = null;
+			int columnCount = table.getColumnCount();
+			if (columnCount == 0) {
+				if ((table.getStyle() & SWT.FULL_SELECTION) == 0) {
+					Rectangle rect = item.getBounds(0);
+					rect.width += lineWidth;
+					rect.height += lineWidth;
+					if (!rect.contains(pt))
+						return;
+				}
+			} else {
+				for (int i = 0; i < columnCount; i++) {
+					Rectangle rect = item.getBounds(i);
+					rect.width += lineWidth;
+					rect.height += lineWidth;
+					if (rect.contains(pt)) {
+						newColumn = table.getColumn(i);
+						break;
+					}
+				}
+				if (newColumn == null) {
+					if ((table.getStyle() & SWT.FULL_SELECTION) == 0)
+						return;
+					newColumn = table.getColumn(0);
+				}
+			}
+
+			column = newColumn;
+			table.notifyListeners(SWT.DefaultSelection, new Event());
+		}
+
+		public TableItem getItem() {
+			return item;
+		}
+
+		public int getRow() {
+			return item == null ? (table.getItemCount() > 0 ? 0 : -1) : table.indexOf(item);
+		}
+
+		public void setRow(int rowIndex) {
+			if (rowIndex >= 0 && rowIndex < table.getItemCount()) {
+				item = table.getItem(rowIndex);
+			} else {
+				item = null;
+			}
+		}
+
+		public int getColumn() {
+			return column == null ? (table.getColumnCount() > 0 ? 0 : -1) : table.indexOf(column);
+		}
+
+		public void setColumn(int columnIndex) {
+			if (columnIndex >= 0 && columnIndex < table.getColumnCount()) {
+				column = table.getColumn(columnIndex);
+			} else {
+				column = null;
+			}
+		}
+
+		public void keyPressed(KeyEvent event) {
+			int rowIndex = getRow();
+			int columnIndex = column == null ? 0 : table.indexOf(column);
+
+			switch (event.keyCode) {
+			case SWT.ARROW_UP:
+				setRow(Math.max(0, rowIndex - 1));
+				break;
+			case SWT.ARROW_DOWN:
+				setRow(Math.min(rowIndex + 1, table.getItemCount() - 1));
+				break;
+			case SWT.ARROW_LEFT:
+			case SWT.ARROW_RIGHT:
+				int columnCount = table.getColumnCount();
+				if (columnCount == 0)
+					break;
+				int[] order = table.getColumnOrder();
+				int index = 0;
+				while (index < order.length) {
+					if (order[index] == columnIndex)
+						break;
+					index++;
+				}
+				if (index == order.length)
+					index = 0;
+				int leadKey = (XWTMaps.getStyle("SWT.RIGHT_TO_LEFT") != SWT.NONE)
+						? ((table.getStyle() & XWTMaps.getStyle("SWT.RIGHT_TO_LEFT")) != 0 ? SWT.ARROW_RIGHT : SWT.ARROW_LEFT)
+						: SWT.ARROW_LEFT;
+				if (event.keyCode == leadKey) {
+					setColumn(order[Math.max(0, index - 1)]);
+				} else {
+					setColumn(order[Math.min(columnCount - 1, index + 1)]);
+				}
+				table.notifyListeners(SWT.Selection, new Event());
+				break;
+			case SWT.HOME:
+				setRow(0);
+				setColumn(columnIndex);
+				break;
+			case SWT.END:
+				setRow(table.getItemCount() - 1);
+				setColumn(columnIndex);
+				break;
+			case SWT.PAGE_UP:
+				int topIndex = table.getTopIndex();
+				if (topIndex == rowIndex) {
+					Rectangle rect = table.getClientArea();
+					TableItem item = table.getItem(topIndex);
+					Rectangle itemRect = item.getBounds(0);
+					rect.height -= itemRect.y;
+					int height = table.getItemHeight();
+					int page = Math.max(1, rect.height / height);
+					topIndex = Math.max(0, topIndex - page + 1);
+				}
+
+				setRow(topIndex);
+				break;
+			case SWT.PAGE_DOWN:
+				int downIndex = table.getTopIndex();
+				Rectangle rect = table.getClientArea();
+				TableItem item = table.getItem(downIndex);
+				Rectangle itemRect = item.getBounds(0);
+				rect.height -= itemRect.y;
+				int height = table.getItemHeight();
+				int page = Math.max(1, rect.height / height);
+				int end = table.getItemCount() - 1;
+				downIndex = Math.min(end, downIndex + page - 1);
+				if (downIndex == rowIndex) {
+					downIndex = Math.min(end, downIndex + page - 1);
+				}
+				setRow(downIndex);
+				break;
+			}
+		}
+
+		public void keyReleased(KeyEvent e) {
+			// Ignore
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableItemEditorProperty.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableItemEditorProperty.java
new file mode 100644
index 0000000..1e58539
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableItemEditorProperty.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata.properties;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.Collection;
+
+import org.eclipse.swt.custom.TableEditor;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableItem;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class TableItemEditorProperty extends AbstractProperty {
+
+	public TableItemEditorProperty() {
+		super(PropertiesConstants.PROPERTY_EDITORS, Collection.class);
+	}
+
+	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+		return null;
+	}
+
+	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+		TableItem tableItem = (TableItem) target;
+		Collection<TableEditor> tableEditors = (Collection<TableEditor>) value;
+
+		for (TableEditor tableEditor : tableEditors) {
+			if (tableEditor != null) {
+				disposeOldEditor(tableEditor.getColumn(), tableItem);
+				tableEditor.setItem(tableItem);
+			}
+		}
+	}
+
+	/**
+	 * Dispose old Table editors for current tableItem at given column index.
+	 * 
+	 * @param column
+	 * @param tableItem
+	 */
+	private void disposeOldEditor(int column, TableItem tableItem) {
+		Table table = tableItem.getParent();
+		Control[] children = table.getChildren();
+		for (Control control : children) {
+			Object editor = control.getData(PropertiesConstants.DATA_CONTROLEDITOR_OF_CONTROL);
+			if (editor == null || !(editor instanceof TableEditor)) {
+				continue;
+			}
+			if (column == ((TableEditor) editor).getColumn() && tableItem == ((TableEditor) editor).getItem()) {
+				control.dispose();
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableItemProperty.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableItemProperty.java
new file mode 100644
index 0000000..e0338ee
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableItemProperty.java
@@ -0,0 +1,86 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata.properties;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.Collection;
+
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.TableItem;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class TableItemProperty extends AbstractProperty {
+
+	public static class Cell {
+		public Cell() {
+		}
+
+		private TableItem parent;
+		private String text;
+		private Image image;
+
+		public TableItem getParent() {
+			return parent;
+		}
+
+		public void setParent(TableItem parent) {
+			this.parent = parent;
+		}
+
+		public String getText() {
+			return text;
+		}
+
+		public void setText(String text) {
+			this.text = text;
+		}
+
+		public Image getImage() {
+			return image;
+		}
+
+		public void setImage(Image image) {
+			this.image = image;
+		}
+	}
+
+	public TableItemProperty() {
+		super(PropertiesConstants.PROPERTY_CELLS, Collection.class);
+	}
+
+	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+
+		Collection<Cell> cells = (Collection<Cell>) value;
+		TableItem tableItem = (TableItem) target;
+
+		String[] texts = new String[cells.size()];
+		Image[] images = new Image[cells.size()];
+
+		int i = 0;
+		for (Cell cell : cells) {
+			String text = (cell).getText();
+			texts[i] = text == null ? "" : text;
+			images[i] = cell.getImage();
+			i++;
+		}
+		tableItem.setText(texts);
+		tableItem.setImage(images);
+	}
+
+	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableViewerColumnDynamicProperty.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableViewerColumnDynamicProperty.java
new file mode 100644
index 0000000..f31b566
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableViewerColumnDynamicProperty.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata.properties;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.xwt.internal.utils.UserData;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class TableViewerColumnDynamicProperty extends AbstractProperty {
+	private String propertyKey;
+
+	public String getPropertyKey() {
+		return propertyKey;
+	}
+
+	public TableViewerColumnDynamicProperty(String propertyName, String propertyKey, Class<?> type) {
+		super(propertyName, type);
+		this.propertyKey = propertyKey;
+	}
+
+	@Override
+	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+		return null;
+	}
+
+	@Override
+	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+		TableViewerColumn tableViewerColumn = (TableViewerColumn) target;
+		TableColumn tableColumn = tableViewerColumn.getColumn();
+		UserData.setLocalData(tableColumn, getPropertyKey(), value);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableViewerColumnImageProperty.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableViewerColumnImageProperty.java
new file mode 100644
index 0000000..b86b161
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableViewerColumnImageProperty.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata.properties;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.TableColumn;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class TableViewerColumnImageProperty extends AbstractProperty {
+
+	public TableViewerColumnImageProperty() {
+		super(PropertiesConstants.PROPERTY_IMAGE, Image.class);
+	}
+
+	@Override
+	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+		return null;
+	}
+
+	@Override
+	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+		TableViewerColumn tableViewerColumn = (TableViewerColumn) target;
+		TableColumn tableColumn = tableViewerColumn.getColumn();
+		Image image = (Image) value;
+		tableColumn.setImage(image);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableViewerColumnTextProperty.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableViewerColumnTextProperty.java
new file mode 100644
index 0000000..3430c1d
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableViewerColumnTextProperty.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata.properties;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.swt.widgets.TableColumn;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class TableViewerColumnTextProperty extends AbstractProperty {
+
+	public TableViewerColumnTextProperty() {
+		super(PropertiesConstants.PROPERTY_TEXT, String.class);
+	}
+
+	@Override
+	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+		return null;
+	}
+
+	@Override
+	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+		TableViewerColumn tableViewerColumn = (TableViewerColumn) target;
+		TableColumn tableColumn = tableViewerColumn.getColumn();
+		String text = (String) value;
+		tableColumn.setText(text);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableViewerColumnWidthProperty.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableViewerColumnWidthProperty.java
new file mode 100644
index 0000000..41a88b8
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TableViewerColumnWidthProperty.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata.properties;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.swt.widgets.TableColumn;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class TableViewerColumnWidthProperty extends AbstractProperty {
+
+	public TableViewerColumnWidthProperty() {
+		super(PropertiesConstants.PROPERTY_WIDTH, int.class);
+	}
+
+	@Override
+	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+		return null;
+	}
+
+	@Override
+	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException {
+		TableViewerColumn tableViewerColumn = (TableViewerColumn) target;
+		TableColumn tableColumn = tableViewerColumn.getColumn();
+		int width = (Integer) value;
+		tableColumn.setWidth(width);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TriggersProperty.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TriggersProperty.java
new file mode 100644
index 0000000..eac129a
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/javabean/metadata/properties/TriggersProperty.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.javabean.metadata.properties;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.core.IUserDataConstants;
+import org.eclipse.xwt.core.TriggerBase;
+import org.eclipse.xwt.metadata.ILoadingType;
+
+public class TriggersProperty extends DataProperty {
+
+	public TriggersProperty(ILoadingType loadingType) {
+		super(IConstants.XAML_TRIGGERS,
+				IUserDataConstants.XWT_TRIGGERS_KEY, TriggerBase[].class, TriggerBase.EMPTY_ARRAY, loadingType);
+	}
+
+	@Override
+	public void setValue(Object target, Object value) {
+		super.setValue(target, value);
+		
+		TriggerBase[] triggers = (TriggerBase[]) value;
+		for (TriggerBase triggerBase : triggers) {
+			if (triggerBase != null) {
+				triggerBase.prepare(target);
+			}
+		}
+		for (TriggerBase triggerBase : triggers) {
+			if (triggerBase != null) {
+				triggerBase.on(target);
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/AbstractDialog.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/AbstractDialog.java
new file mode 100644
index 0000000..cdebc26
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/AbstractDialog.java
@@ -0,0 +1,80 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.jface;
+
+import java.net.URL;
+import java.util.HashMap;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.layout.GridLayoutFactory;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.XWTLoader;
+
+public abstract class AbstractDialog extends Dialog {
+	protected Object dataContext;
+	protected String title;
+
+	public AbstractDialog(Shell parentShell, String title, Object dataContext) {
+		super(parentShell);
+		this.dataContext = dataContext;
+		this.title = title;
+	}
+
+	@Override
+	protected Control createDialogArea(Composite parent) {
+		if (title != null) {
+			getShell().setText(title);
+		}
+
+		ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+		try {
+			Thread.currentThread().setContextClassLoader(getClassLoader());
+			HashMap<String, Object> newOptions = new HashMap<String, Object>();
+			initOptions(parent, newOptions);
+			Object element = XWT.loadWithOptions(getContentURL(), newOptions);
+			if (!(element instanceof Control)) {
+				throw new XWTException("Root element must a control.");
+			}
+			GridLayoutFactory.fillDefaults().generateLayout(parent);
+			parent.layout(true, true);
+			return (Control) element;
+		} catch (Exception e) {
+			e.printStackTrace();
+		} finally {
+			Thread.currentThread().setContextClassLoader(classLoader);
+			parent.setVisible(true);
+		}
+		return null;
+	}
+
+	protected void initOptions(Composite parent,
+			HashMap<String, Object> newOptions) {
+		newOptions.put(XWTLoader.CONTAINER_PROPERTY, parent);
+		newOptions.put(XWTLoader.DATACONTEXT_PROPERTY, dataContext);
+		newOptions.put(XWTLoader.CLASS_PROPERTY, geCLR());
+	}
+
+	protected abstract URL getContentURL();
+	
+	protected ClassLoader getClassLoader() {
+		return this.getClass().getClassLoader();
+	}
+	
+	protected Object geCLR() {
+		return this;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/CellEditorHelper.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/CellEditorHelper.java
new file mode 100644
index 0000000..eb51748
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/CellEditorHelper.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.jface;
+
+import java.beans.BeanInfo;
+import java.beans.IntrospectionException;
+import java.beans.PropertyDescriptor;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.xwt.XWTException;
+
+public class CellEditorHelper {
+	protected TableViewer tableViewer;
+	protected int index;
+
+	public CellEditorHelper(TableViewer parent, int index) {
+		this.index = index;
+		this.tableViewer = parent;
+	}
+
+	public Class<?> getTargetType() {
+		ISelection selection = this.tableViewer.getSelection();
+		if (!selection.isEmpty() && selection instanceof IStructuredSelection) {
+			IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+			Object element = structuredSelection.getFirstElement();
+			Object property = this.tableViewer.getColumnProperties()[index];
+			String propertyName = property.toString();
+			try {
+				BeanInfo beanInfo = java.beans.Introspector.getBeanInfo(element.getClass());
+				PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
+				for (PropertyDescriptor propertyDescriptor : propertyDescriptors) {
+					if (propertyDescriptor.getName().equalsIgnoreCase(propertyName)) {
+						return propertyDescriptor.getPropertyType();
+					}
+				}
+			} catch (IntrospectionException e) {
+				throw new XWTException(e);
+			}
+		}
+
+		return null;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/ComboBoxCellEditor.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/ComboBoxCellEditor.java
new file mode 100644
index 0000000..7db52ac
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/ComboBoxCellEditor.java
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.jface;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.xwt.IIndexedElement;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+
+public class ComboBoxCellEditor extends org.eclipse.jface.viewers.ComboBoxCellEditor implements IIndexedElement {
+	protected CellEditorHelper cellEditorHelper;
+
+	public ComboBoxCellEditor() {
+		super();
+	}
+
+	public ComboBoxCellEditor(Composite parent, String[] items, int style) {
+		super(parent, items, style);
+	}
+
+	public ComboBoxCellEditor(Composite parent, String[] items) {
+		super(parent, items);
+	}
+
+	@Override
+	protected void doSetValue(Object value) {
+		if (value != null) {
+			Class<?> targetType = getTargetType();
+			if (targetType != String.class) {
+				IConverter converter = XWT.findConvertor(targetType, String.class);
+				if (converter != null) {
+					value = converter.convert(value);
+				}
+			}
+			String[] items = getItems();
+			for (int i = 0; i < items.length; i++) {
+				if (items[i].equals(value)) {
+					super.doSetValue(i);
+					return;
+				}
+			}
+		}
+		super.doSetValue(-1);
+	}
+
+	@Override
+	protected Object doGetValue() {
+		Object value = super.doGetValue();
+		String[] items = getItems();
+		int selected = (Integer) value;
+		if (selected < 0) {
+			return null;
+		}
+		String selectedString = items[selected];
+		Class<?> targetType = getTargetType();
+		if (targetType != String.class) {
+			IConverter converter = XWT.findConvertor(String.class, targetType);
+			if (converter != null) {
+				return converter.convert(value);
+			}
+		}
+		return selectedString;
+	}
+
+	protected Class<?> getTargetType() {
+		if (cellEditorHelper != null) {
+			return cellEditorHelper.getTargetType();
+		}
+		return Object.class;
+	}
+
+	public void setIndex(Object parent, int index) {
+		if (!(parent instanceof TableViewer)) {
+			throw new XWTException("TableView is expected, not \"" + parent.getClass().getName() + "\"");
+		}
+		cellEditorHelper = new CellEditorHelper((TableViewer) parent, index);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/DefaultCellModifier.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/DefaultCellModifier.java
new file mode 100644
index 0000000..7cca18e
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/DefaultCellModifier.java
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.jface;
+
+import java.beans.BeanInfo;
+import java.beans.IntrospectionException;
+import java.beans.PropertyDescriptor;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.jface.viewers.ICellModifier;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+
+public class DefaultCellModifier implements ICellModifier {
+	protected TableViewer tableViewer;
+
+	public DefaultCellModifier(TableViewer tableViewer) {
+		this.tableViewer = tableViewer;
+	}
+
+	private BeanInfo getBeanInfo(Object element) {
+		try {
+			return java.beans.Introspector.getBeanInfo(element.getClass());
+		} catch (IntrospectionException e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
+
+	public boolean canModify(Object element, String property) {
+		return getDescriptor(element, property) != null;
+	}
+
+	public Object getValue(Object element, String property) {
+		PropertyDescriptor descriptor = getDescriptor(element, property);
+		if (descriptor != null) {
+			try {
+				return descriptor.getReadMethod().invoke(element);
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+		return "";
+	}
+
+	public void modify(Object element, String property, Object value) {
+		if (element instanceof TableItem) {
+			TableItem tableItem = (TableItem) element;
+			Object data = tableItem.getData();
+			PropertyDescriptor descriptor = getDescriptor(data, property);
+			if (descriptor != null) {
+				try {
+					Class<?> type = descriptor.getPropertyType();
+					IConverter converter = XWT.findConvertor(value.getClass(), type);
+					if (converter != null) {
+						Object newValue = converter.convert(value);
+						descriptor.getWriteMethod().invoke(data, newValue);
+						tableViewer.refresh(data);
+					} else {
+						throw new XWTException("Converter doesn't exist from \"" + value.getClass().getName() + "\" to \"" + type.getName());
+					}
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		}
+	}
+
+	private PropertyDescriptor getDescriptor(Object element, String property) {
+		BeanInfo beanInfo = getBeanInfo(element);
+		if (beanInfo != null) {
+			PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
+			for (PropertyDescriptor propertyDescriptor : propertyDescriptors) {
+				if (propertyDescriptor.getName().equalsIgnoreCase(property)) {
+					return propertyDescriptor;
+				}
+			}
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/DefaultListContentProvider.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/DefaultListContentProvider.java
new file mode 100644
index 0000000..a919c69
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/DefaultListContentProvider.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.jface;
+
+import java.util.Collection;
+
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.xwt.internal.core.Core;
+
+public class DefaultListContentProvider implements IStructuredContentProvider {
+	public Object[] getElements(Object inputElement) {
+		if (inputElement instanceof Collection<?>) {
+			Collection<?> collection = (Collection<?>) inputElement;
+			return collection.toArray();
+		}
+		if (inputElement instanceof Object[]) {
+			return (Object[]) inputElement;
+		}
+		return Core.EMPTY_ARRAY;
+	}
+
+	public void dispose() {
+	}
+
+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/DefaultViewerLabelProvider.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/DefaultViewerLabelProvider.java
new file mode 100644
index 0000000..1350e37
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/DefaultViewerLabelProvider.java
@@ -0,0 +1,119 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.jface;
+
+import org.eclipse.jface.viewers.AbstractTableViewer;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.core.IUserDataConstants;
+import org.eclipse.xwt.internal.core.Core;
+import org.eclipse.xwt.internal.utils.UserData;
+import org.eclipse.xwt.javabean.metadata.properties.PropertiesConstants;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class DefaultViewerLabelProvider implements ITableLabelProvider, ILabelProvider {
+	private Viewer viewer;
+	
+	protected String bindingPath;
+
+	private IProperty columnsProperty;
+
+	public DefaultViewerLabelProvider(Viewer viewer) {
+		this.viewer = viewer;
+	}
+
+	public String getBindingPath() {
+		return bindingPath;
+	}
+
+	public void setBindingPath(String bindingPath) {
+		this.bindingPath = bindingPath;
+	}
+	
+	protected IProperty getColumnsProperty() {
+		if (columnsProperty == null) {
+			IMetaclass metaclass = XWT.getMetaclass(viewer.getClass());
+			columnsProperty = metaclass.findProperty(PropertiesConstants.PROPERTY_COLUMNS);
+			if (columnsProperty == null) {
+				throw new XWTException("Columns property is not found.");
+			}
+		}
+		return columnsProperty;
+	}
+	
+	protected Viewer getViewer() {
+		return viewer;
+	}
+
+	public void addListener(ILabelProviderListener listener) {
+	}
+
+	public void dispose() {
+	}
+
+	public boolean isLabelProperty(Object element, String property) {
+		return false;
+	}
+
+	public void removeListener(ILabelProviderListener listener) {
+	}
+
+	public Image getImage(Object element) {
+		return getColumnImage(element, 0);
+	}
+	
+	public String getText(Object dataContext) {
+		return getColumnText(dataContext, 0);
+	}
+	
+	public String getColumnText(Object element, int columnIndex) {
+		return JFacesHelper.getColumnText(getViewer(), element, columnIndex, getPaths());
+	}
+
+	public Image getColumnImage(Object element, int columnIndex) {
+		return JFacesHelper.getColumnImage(getViewer(), element, columnIndex, getPaths());
+	}
+
+	protected Object[] getPaths() {
+		Viewer viewer = getViewer();
+		if (viewer instanceof AbstractTableViewer) {
+			Object[] objects = ((AbstractTableViewer) getViewer()).getColumnProperties();
+			if (objects != null) {
+				for (int i = 0; i < objects.length; i++) {
+					if ((objects[i] == null)) {
+						objects[i] = getBindingPath();
+					}
+				}
+				return objects;
+			}
+		}
+		String path = bindingPath;
+		if (path == null) {
+			path = (String) UserData.getLocalData(getViewer(), IUserDataConstants.XWT_PROPERTY_DATA_KEY);
+		}
+		if (path == null) {
+			return Core.EMPTY_ARRAY;
+		}
+		return new String[] {path};
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/JFaceInitializer.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/JFaceInitializer.java
new file mode 100644
index 0000000..f80610f
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/JFaceInitializer.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.jface;
+
+import org.eclipse.jface.viewers.AbstractListViewer;
+import org.eclipse.jface.viewers.AbstractTableViewer;
+import org.eclipse.xwt.metadata.IObjectInitializer;
+
+public class JFaceInitializer implements IObjectInitializer {
+
+	public void initialize(Object object) {
+		if (object instanceof AbstractListViewer) {
+			AbstractListViewer viewer = (AbstractListViewer) object;
+			viewer.setLabelProvider(new DefaultViewerLabelProvider(viewer));
+		}
+		else if (object instanceof AbstractTableViewer) {
+			AbstractTableViewer viewer = (AbstractTableViewer) object;
+			viewer.setLabelProvider(new DefaultViewerLabelProvider(viewer));			
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/JFacesHelper.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/JFacesHelper.java
new file mode 100644
index 0000000..9be1b19
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/JFacesHelper.java
@@ -0,0 +1,259 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.jface;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.viewers.CheckboxCellEditor;
+import org.eclipse.jface.viewers.ColumnViewer;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.core.IBinding;
+import org.eclipse.xwt.core.IUserDataConstants;
+import org.eclipse.xwt.internal.core.Core;
+import org.eclipse.xwt.internal.utils.ObjectUtil;
+import org.eclipse.xwt.internal.utils.UserData;
+import org.eclipse.xwt.metadata.IMetaclass;
+import org.eclipse.xwt.metadata.IProperty;
+
+public class JFacesHelper {
+
+	public static Class<?>[] getSupportedElements() {
+		return JFACES_SUPPORTED_ELEMENTS;
+	}
+
+	public static boolean isViewer(Object obj) {
+		if (JFACES_VIEWER == null || obj == null)
+			return false;
+		return JFACES_VIEWER.isAssignableFrom(obj.getClass());
+	}
+
+	public static Control getControl(Object obj) {
+		if (!isViewer(obj))
+			throw new XWTException("Expecting a JFaces viewer:" + obj);
+		try {
+			Method method = JFACES_VIEWER.getMethod("getControl");
+			return (Control) method.invoke(obj);
+		} catch (Exception e) {
+			e.printStackTrace();
+			return null;
+		}
+	}
+
+	private static Class<?>[] JFACES_SUPPORTED_ELEMENTS;
+	private static Class<?> JFACES_VIEWER;
+
+	static {
+		List<Class<?>> collector = new ArrayList<Class<?>>();
+		try {
+
+			JFACES_VIEWER = Class.forName("org.eclipse.jface.viewers.Viewer");
+			String[] jfaceClasses = new String[] {
+					"org.eclipse.xwt.jface.RadioGroupViewer",
+					"org.eclipse.jface.viewers.ComboViewer",
+					"org.eclipse.jface.viewers.ListViewer",
+					"org.eclipse.jface.viewers.TreeViewer",
+					"org.eclipse.jface.viewers.TableViewer",
+					"org.eclipse.jface.viewers.TableTreeViewer",
+					"org.eclipse.jface.viewers.CheckboxTableViewer",
+					"org.eclipse.jface.viewers.CheckboxTreeViewer",
+					// Dialogs
+					"org.eclipse.jface.dialogs.TrayDialog",
+					"org.eclipse.jface.dialogs.TitleAreaDialog",
+					// Add CellEditors for JFave Viewers.
+					"org.eclipse.jface.viewers.CellEditor",
+					"org.eclipse.jface.viewers.ComboBoxViewerCellEditor",
+					TextCellEditor.class.getName(),
+					CheckboxCellEditor.class.getName()
+			};
+			for(String clazz : jfaceClasses) {
+				try {
+					collector.add(Class.forName(clazz));
+				} catch (Throwable e) {
+					System.out.println("No JFaces support for " + clazz);
+				}
+			}
+		} catch (ClassNotFoundException e) {
+			System.out.println("No JFaces support");
+		}
+		JFACES_SUPPORTED_ELEMENTS = collector.toArray(new Class[collector.size()]);
+	}
+	
+	public static String[] getViewerProperties(Viewer viewer) {
+		if (viewer instanceof ColumnViewer) {
+			ColumnViewer columnViewer = (ColumnViewer) viewer;
+			Object[] properties = columnViewer.getColumnProperties();
+			String[] propertyNames = Core.EMPTY_STRING_ARRAY;
+			if (properties != null) {
+				int size = 0;
+				for (int i = 0; i < properties.length; i++) {
+					if (properties[i] != null) {
+						size ++;
+					}
+				}
+	
+				propertyNames = new String[size];
+				for (int i = 0, j = 0; i < properties.length; i++) {
+					if (properties[i] != null) {
+						propertyNames[j++] = properties[i].toString();												
+					}
+				}
+			}
+			if (propertyNames.length != 0) {				
+				return propertyNames;
+			}
+		}
+		String path = (String)UserData.getLocalData(viewer, IUserDataConstants.XWT_PROPERTY_DATA_KEY);
+		if (path != null) {
+			return new String [] {path};
+		}
+		return Core.EMPTY_STRING_ARRAY;
+	}
+
+	public static Object getColumnObject(Object element, int columnIndex, Object[] properties) {
+		if (element == null) {
+			return null;
+		}
+		Object dataContext = element;
+		
+		if (properties != null && columnIndex < properties.length) {
+			Object propertyElement = properties[columnIndex];
+			if (propertyElement != null) {
+				String propertyName = propertyElement.toString();
+				if (propertyName != null) {
+					try {
+						IMetaclass metaclass = XWT.getMetaclass(dataContext);
+						IProperty property = metaclass.findProperty(propertyName.toLowerCase());
+						if (property != null) {
+							dataContext = property.getValue(dataContext);
+							if (dataContext != null) {		
+								Class<?> type = dataContext.getClass();
+								Class<?> propertyType = property.getType();
+								if (propertyType != null && !propertyType.isAssignableFrom(type)) {
+									dataContext = ObjectUtil.resolveValue(dataContext, type, propertyType, dataContext);
+								}
+							}
+						}
+					} catch (Exception e) {
+						throw new XWTException(e);
+					}			
+				}
+			}
+		}
+		return dataContext;
+	}
+
+	public static String getColumnText(Viewer viewer, Object element, int columnIndex) {
+		String[] propertyNames = JFacesHelper.getViewerProperties(viewer);
+		return getColumnText(viewer, element, columnIndex, propertyNames);
+	}
+
+	public static String getColumnText(Viewer viewer, Object element, int columnIndex, Object[] properties) {
+		Object value = getColumnObject(element, columnIndex, properties);
+
+		try {
+			if (viewer instanceof TableViewer) {
+				Table table = ((TableViewer)viewer).getTable();
+				TableColumn[] columns = table.getColumns();
+				TableColumn column = columns[columnIndex];
+				if (UserData.hasLocalData(column,
+						IUserDataConstants.XWT_PROPERTY_ITEM_TEXT_KEY)) {
+					Object userDataValue = UserData.getLocalData(column,
+							IUserDataConstants.XWT_PROPERTY_ITEM_TEXT_KEY);
+					if (userDataValue instanceof IBinding) {
+						IBinding binding = (IBinding) userDataValue;
+						binding.reset();
+						UserData.setDataContext(column, value);
+						value = binding.getValue(null);
+					} else {
+						value = userDataValue;
+					}
+				}
+				else if (UserData.hasLocalData(column,
+						IUserDataConstants.XWT_PROPERTY_ITEM_IMAGE_KEY)) {
+					return null;
+				}
+			}
+		} catch (Exception e) {
+			throw new XWTException(e);
+		}
+		if (value != null) {
+			return value.toString();
+		}
+		return "";
+	}
+	
+	public static Image getColumnImage(Viewer viewer, Object element, int columnIndex) {
+		String[] propertyNames = JFacesHelper.getViewerProperties(viewer);
+		return getColumnImage(viewer, element, columnIndex, propertyNames);
+	}
+
+	public static Image getColumnImage(Viewer viewer, Object element, int columnIndex, Object[] properties) {
+		Object value = getColumnObject(element, columnIndex, properties);
+		if (value == null) {
+			return null;
+		}
+		try {
+			if (viewer instanceof TableViewer) {
+				Table table = ((TableViewer)viewer).getTable();
+				TableColumn[] columns = table.getColumns();
+				TableColumn column = columns[columnIndex];
+				if (UserData.hasLocalData(column,
+							IUserDataConstants.XWT_PROPERTY_ITEM_IMAGE_KEY)) {
+					Object userDataValue = UserData.getLocalData(column,
+							IUserDataConstants.XWT_PROPERTY_ITEM_IMAGE_KEY);
+					if (userDataValue instanceof IBinding) {
+						IBinding binding = (IBinding) userDataValue;
+						binding.reset();
+						UserData.setDataContext(column, value);
+						value = binding.getValue(null);
+					} else {
+						value = userDataValue;
+					}
+				}
+				else{
+					return null;
+				}
+			}
+		} catch (Exception e) {
+			throw new XWTException(e);
+		}
+		if (value instanceof IObservableValue) {
+			IObservableValue observableValue = (IObservableValue) value;
+			value = observableValue.getValue();
+		}
+		if (value instanceof Image) {
+			return (Image) value;
+		} else if (value != null) {
+			value = ObjectUtil.resolveValue(value, Image.class, value);
+			if (value == null) {
+				return null;
+			}
+			if (value instanceof Image) {
+				return (Image) value;
+			}
+			throw new XWTException("Converter from " + value.getClass()
+					+ " to Image is missing.");
+		}
+		return null;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/ObservableMapLabelProvider.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/ObservableMapLabelProvider.java
new file mode 100644
index 0000000..e64bddd
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/ObservableMapLabelProvider.java
@@ -0,0 +1,101 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *     Brad Reynolds - bug 164247
+ *     Brad Reynolds - bug 164134
+ *     yves yang     - port to XWT
+ *******************************************************************************/
+package org.eclipse.xwt.jface;
+
+import java.util.Set;
+
+import org.eclipse.core.databinding.observable.map.IMapChangeListener;
+import org.eclipse.core.databinding.observable.map.IObservableMap;
+import org.eclipse.core.databinding.observable.map.MapChangeEvent;
+import org.eclipse.core.databinding.observable.set.IObservableSet;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.LabelProviderChangedEvent;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.graphics.Image;
+
+/**
+ * A label provider based on one or more observable maps that track attributes
+ * that this label provider uses for display. Clients may customize by
+ * subclassing and overriding {@link #getColumnText(Object, int)},
+ * {@link #getColumnImage(Object, int)}, for tables or trees with columns, or by
+ * implementing additional mixin interfaces for colors, fonts etc.
+ * 
+ * @since 1.1
+ * 
+ */
+public class ObservableMapLabelProvider extends LabelProvider implements
+		ILabelProvider, ITableLabelProvider {
+
+	private final IObservableMap[] textMaps;
+	private Viewer viewer;
+	
+	private IMapChangeListener mapChangeListener = new IMapChangeListener() {
+		public void handleMapChange(MapChangeEvent event) {
+			Set<?> affectedElements = event.diff.getChangedKeys();
+			LabelProviderChangedEvent newEvent = new LabelProviderChangedEvent(
+					ObservableMapLabelProvider.this, affectedElements.toArray());
+			fireLabelProviderChanged(newEvent);
+		}
+	};
+	
+	/**
+	 * @param textMaps
+	 */
+	public ObservableMapLabelProvider(Viewer viewer, IObservableSet domain,
+			String[] propertyNames) {
+		textMaps = new XWTObservableWrapper[propertyNames.length];
+		
+		for (int i = 0; i < textMaps.length; i++) {
+			textMaps[i] = new XWTObservableWrapper(domain, viewer, propertyNames[i]);
+			textMaps[i].addMapChangeListener(mapChangeListener);
+		}
+		this.viewer = viewer;
+	}
+
+	public void dispose() {
+		for (int i = 0; i < textMaps.length; i++) {
+			textMaps[i].removeMapChangeListener(mapChangeListener);
+		}
+		super.dispose();
+	}
+
+	public Image getImage(Object element) {
+		return getColumnImage(element, 0);
+	}
+	
+	public Image getColumnImage(Object element, int columnIndex) {
+		if (columnIndex < textMaps.length) {
+			Object result = textMaps[columnIndex].get(element);
+			return JFacesHelper.getColumnImage(viewer, result, columnIndex);
+		}
+		return null;
+	}
+
+	public String getText(Object element) {
+		return getColumnText(element, 0);
+	}
+
+	public String getColumnText(Object element, int columnIndex) {
+		if (columnIndex < textMaps.length) {
+			Object result = textMaps[columnIndex].get(element);
+			return JFacesHelper.getColumnText(viewer, result, columnIndex);
+		}
+		return null;
+	}
+}
+
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/ObservableTreeContentProvider.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/ObservableTreeContentProvider.java
new file mode 100644
index 0000000..6bc8d98
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/ObservableTreeContentProvider.java
@@ -0,0 +1,116 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.jface;
+
+import org.eclipse.core.databinding.observable.IObservable;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
+import org.eclipse.core.databinding.observable.set.IObservableSet;
+import org.eclipse.jface.databinding.viewers.ObservableListTreeContentProvider;
+import org.eclipse.jface.databinding.viewers.ObservableSetTreeContentProvider;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.internal.core.Core;
+import org.eclipse.xwt.internal.core.UpdateSourceTrigger;
+
+public class ObservableTreeContentProvider implements ITreeContentProvider {
+	private String contentPath;
+	private Object context;
+	private Object value;
+	private ITreeContentProvider delegate;
+
+	public String getContentPath() {
+		return contentPath;
+	}
+
+	public void setContentPath(String contentPath) {
+		this.contentPath = contentPath;
+	}
+		
+	public void dispose() {
+		if (delegate == null) {
+			return;
+		}
+		delegate.dispose();
+	}
+	
+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {	
+		if (newInput == null) {
+			return;
+		}
+		updateContext(viewer, newInput);
+		delegate.inputChanged(viewer, oldInput, newInput);
+	}
+	
+	
+	public Object[] getChildren(Object parentElement) {
+		if (delegate == null) {
+			return Core.EMPTY_ARRAY;
+		}
+		return delegate.getChildren(parentElement);
+	}
+	
+	public Object[] getElements(Object inputElement) {
+		return getChildren(inputElement);
+	}
+	
+	public boolean hasChildren(Object element) {
+		if (delegate == null) {
+			return false;
+		}
+		return delegate.hasChildren(element);
+	}
+		
+	public Object getParent(Object element) {
+		if (delegate == null) {
+			return null;
+		}
+		return delegate.getParent(element);
+	}
+	
+	public IObservableSet getKnownElements() {
+		if (delegate == null) {
+			return null;
+		}
+		if (delegate instanceof ObservableSetTreeContentProvider) {
+			ObservableSetTreeContentProvider contentProvider = (ObservableSetTreeContentProvider) delegate;
+			return contentProvider.getKnownElements();
+		}
+		if (delegate instanceof ObservableListTreeContentProvider) {
+			ObservableListTreeContentProvider contentProvider = (ObservableListTreeContentProvider) delegate;
+			return contentProvider.getKnownElements();
+		}
+		throw new IllegalStateException();
+	}
+		
+	public void updateContext(Object context, Object value) {
+		if (context == this.context && this.value == value) {
+			return;
+		}
+		this.context = context;
+		this.value = value;
+		IObservableFactory observableFactory = XWT.observableFactory(context, getContentPath(), UpdateSourceTrigger.Default);
+		IObservable observable = observableFactory.createObservable(value);
+		
+		if (observable instanceof IObservableList) {
+			delegate = new ObservableListTreeContentProvider(observableFactory, null);			
+		} 
+		else if (observable instanceof IObservableSet) {
+			delegate = new ObservableSetTreeContentProvider(observableFactory, null);						
+		}
+		else {
+			throw new UnsupportedOperationException(observable.getClass().getName());
+		}
+	}
+}
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/jface/RadioGroup.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/RadioGroup.java
similarity index 100%
rename from org.eclipse.xwt/src/org/eclipse/xwt/jface/RadioGroup.java
rename to plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/RadioGroup.java
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/jface/RadioGroupViewer.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/RadioGroupViewer.java
similarity index 100%
rename from org.eclipse.xwt/src/org/eclipse/xwt/jface/RadioGroupViewer.java
rename to plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/RadioGroupViewer.java
diff --git a/org.eclipse.xwt/src/org/eclipse/xwt/jface/RadioItem.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/RadioItem.java
similarity index 100%
rename from org.eclipse.xwt/src/org/eclipse/xwt/jface/RadioItem.java
rename to plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/RadioItem.java
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/TextCellEditor.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/TextCellEditor.java
new file mode 100644
index 0000000..f8be565
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/TextCellEditor.java
@@ -0,0 +1,75 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.jface;
+
+import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.xwt.IIndexedElement;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+
+public class TextCellEditor extends org.eclipse.jface.viewers.TextCellEditor implements IIndexedElement {
+	protected CellEditorHelper cellEditorHelper;
+
+	public TextCellEditor(Composite parent) {
+		super(parent);
+	}
+
+	public TextCellEditor(Composite parent, int style) {
+		super(parent, style);
+	}
+
+	@Override
+	protected void doSetValue(Object value) {
+		if (value == null) {
+			super.doSetValue("");
+		} else {
+			Class<?> targetType = getTargetType();
+			if (targetType != String.class) {
+				IConverter converter = XWT.findConvertor(targetType, String.class);
+				if (converter != null) {
+					value = converter.convert(value);
+				}
+			}
+			super.doSetValue(value);
+		}
+	}
+
+	@Override
+	protected Object doGetValue() {
+		Object value = super.doGetValue();
+		Class<?> targetType = getTargetType();
+		if (targetType != value.getClass()) {
+			IConverter converter = XWT.findConvertor(value.getClass(), targetType);
+			if (converter != null) {
+				value = converter.convert(value);
+			}
+		}
+		return value;
+	}
+
+	protected Class<?> getTargetType() {
+		if (cellEditorHelper != null) {
+			return cellEditorHelper.getTargetType();
+		}
+		return Object.class;
+	}
+
+	public void setIndex(Object parent, int index) {
+		if (!(parent instanceof TableViewer)) {
+			throw new XWTException("TableView is expected, not \"" + parent.getClass().getName() + "\"");
+		}
+		cellEditorHelper = new CellEditorHelper((TableViewer) parent, index);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/ViewerFilter.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/ViewerFilter.java
new file mode 100644
index 0000000..c550105
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/ViewerFilter.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.jface;
+
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.xwt.core.Condition;
+
+public class ViewerFilter extends org.eclipse.jface.viewers.ViewerFilter {
+	protected Condition[] conditions = Condition.EMPTY_ARRAY;
+	
+	public Condition[] getConditions() {
+		return conditions;
+	}
+
+	public void setConditions(Condition[] conditions) {
+		this.conditions = conditions;
+	}
+
+	@Override
+	public boolean select(Viewer viewer, Object parentElement, Object element) {
+		// No condition is same as no filter
+		if (conditions.length == 0) {
+			return false;
+		}
+		for (Condition condition : conditions) {
+			if (!condition.evaluate(element)) {
+				return false;
+			}
+		}
+		return true;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/XWTDialog.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/XWTDialog.java
new file mode 100644
index 0000000..4057646
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/XWTDialog.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.jface;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.IConstants;
+
+/**
+ * Default XWT Dialog with a content via static URL 
+ * 
+ * @author yyang <yves.yang@soyatec.com>
+ */
+public class XWTDialog extends AbstractDialog {
+	private Class<?> contentForm;
+
+	public XWTDialog(Shell parentShell, String title, Object dataContext,
+			Class<?> contentForm) {
+		super(parentShell, title, dataContext);
+		this.contentForm = contentForm;
+	}
+
+	@Override
+	protected URL getContentURL() {
+		if (contentForm != null) {
+			return contentForm.getResource(contentForm.getSimpleName()
+					+ IConstants.XWT_EXTENSION_SUFFIX);
+		}
+		return null;
+	}
+	
+	@Override
+	protected ClassLoader getClassLoader() {
+		return contentForm.getClassLoader();
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/XWTObservableWrapper.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/XWTObservableWrapper.java
new file mode 100644
index 0000000..286edd4
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/XWTObservableWrapper.java
@@ -0,0 +1,234 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *     Erdal Karaca - bug 423749
+ *******************************************************************************/
+package org.eclipse.xwt.jface;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.core.databinding.observable.IChangeListener;
+import org.eclipse.core.databinding.observable.IDisposeListener;
+import org.eclipse.core.databinding.observable.IStaleListener;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.map.IMapChangeListener;
+import org.eclipse.core.databinding.observable.map.IObservableMap;
+import org.eclipse.core.databinding.observable.set.IObservableSet;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.xwt.internal.core.BindingExpressionPath;
+import org.eclipse.xwt.internal.core.ScopeManager;
+
+public class XWTObservableWrapper implements IObservableMap {
+	private IObservableMap delegate;
+
+	private IObservableSet domain;
+	private Object control;
+	private Object data;
+	private String path;
+
+	private List<IMapChangeListener> changeListeners = Collections.EMPTY_LIST;
+
+	public XWTObservableWrapper(IObservableSet domain, Object control,
+			String path) {
+		this.control = control;
+		this.domain = domain;
+		this.path = path;
+	}
+
+	public Object getData() {
+		return data;
+	}
+
+	public void setData(Object data) {
+		this.data = data;
+	}
+
+	public void addMapChangeListener(IMapChangeListener listener) {
+		if (delegate == null) {
+			if (changeListeners.isEmpty()) {
+				changeListeners = new ArrayList<IMapChangeListener>();
+			}
+			changeListeners.add(listener);
+		} else {
+			delegate.addMapChangeListener(listener);
+		}
+	}
+
+	public void clear() {
+		checkDelegated();
+		delegate.clear();
+	}
+
+	public boolean containsKey(Object key) {
+		checkDelegated();
+		return delegate.containsKey(key);
+	}
+
+	public boolean containsValue(Object value) {
+		checkDelegated();
+		return delegate.containsValue(value);
+	}
+
+	public Set entrySet() {
+		checkDelegated();
+		return delegate.entrySet();
+	}
+
+	public boolean equals(Object o) {
+		checkDelegated();
+		return delegate.equals(o);
+	}
+
+	public Object get(Object key) {
+		if (data == null) {
+			data = key;
+		}
+		checkDelegated();
+		return delegate.get(key);
+	}
+
+	public Object getKeyType() {
+		checkDelegated();
+		return delegate.getKeyType();
+	}
+
+	public Object getValueType() {
+		checkDelegated();
+		return delegate.getValueType();
+	}
+
+	public int hashCode() {
+		checkDelegated();
+		return delegate.hashCode();
+	}
+
+	public boolean isEmpty() {
+		checkDelegated();
+		return delegate.isEmpty();
+	}
+
+	public Set keySet() {
+		checkDelegated();
+		return delegate.keySet();
+	}
+
+	public Object put(Object key, Object value) {
+		checkDelegated();
+		return delegate.put(key, value);
+	}
+
+	public void putAll(Map t) {
+		checkDelegated();
+		delegate.putAll(t);
+	}
+
+	public Object remove(Object key) {
+		checkDelegated();
+		return delegate.remove(key);
+	}
+
+	public void removeMapChangeListener(IMapChangeListener listener) {
+		if (delegate == null) {
+			changeListeners.remove(listener);
+		} else {
+			delegate.removeMapChangeListener(listener);
+		}
+	}
+
+	public int size() {
+		checkDelegated();
+		return delegate.size();
+	}
+
+	public Collection values() {
+		checkDelegated();
+		return delegate.values();
+	}
+
+	public void addChangeListener(IChangeListener listener) {
+		checkDelegated();
+		delegate.addChangeListener(listener);
+	}
+
+	public void addDisposeListener(IDisposeListener listener) {
+		checkDelegated();
+		delegate.addDisposeListener(listener);
+	}
+
+	public void addStaleListener(IStaleListener listener) {
+		checkDelegated();
+		delegate.addStaleListener(listener);
+	}
+
+	public void dispose() {
+		if (delegate != null) {
+			delegate.dispose();
+		}
+	}
+
+	public Realm getRealm() {
+		checkDelegated();
+		return delegate.getRealm();
+	}
+
+	public boolean isDisposed() {
+		checkDelegated();
+		return delegate.isDisposed();
+	}
+
+	public boolean isStale() {
+		checkDelegated();
+		return delegate.isStale();
+	}
+
+	public void removeChangeListener(IChangeListener listener) {
+		checkDelegated();
+		delegate.removeChangeListener(listener);
+	}
+
+	public void removeDisposeListener(IDisposeListener listener) {
+		checkDelegated();
+		delegate.removeDisposeListener(listener);
+	}
+
+	public void removeStaleListener(IStaleListener listener) {
+		checkDelegated();
+		delegate.removeStaleListener(listener);
+	}
+
+	protected void checkDelegated() {
+		if (delegate == null) {
+			BindingExpressionPath expressionPath = new BindingExpressionPath(
+					path);
+
+			// FIXME bug 423749: workaround for supporting nested properties: if
+			// stripped path does not equal to provided path, then re-parse the
+			// expression
+			if (!expressionPath.getStripedPath().equals(path)) {
+				expressionPath = new BindingExpressionPath(
+						expressionPath.getStripedPath());
+			}
+
+			IValueProperty property = ScopeManager.createValueProperty(control,
+					data, expressionPath);
+			delegate = property.observeDetail(domain);
+			for (IMapChangeListener listener : changeListeners) {
+				delegate.addMapChangeListener(listener);
+			}
+			changeListeners.clear();
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/XWTTitleAreaDialog.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/XWTTitleAreaDialog.java
new file mode 100644
index 0000000..a7d25b1
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/jface/XWTTitleAreaDialog.java
@@ -0,0 +1,123 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.jface;
+
+import java.net.URL;
+import java.util.HashMap;
+
+import org.eclipse.core.databinding.AggregateValidationStatus;
+import org.eclipse.core.databinding.observable.ChangeEvent;
+import org.eclipse.core.databinding.observable.IChangeListener;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.dialogs.TitleAreaDialog;
+import org.eclipse.jface.layout.GridLayoutFactory;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTLoader;
+import org.eclipse.xwt.databinding.BindingContext;
+
+/**
+ * 
+ * @author yyang <yves.yang@soyatec.com>
+ */
+public class XWTTitleAreaDialog extends TitleAreaDialog {
+	private Object dataContext;
+	private BindingContext bindingContext;
+	private AggregateValidationStatus validationStatus;
+
+	private Class<?> contentCLS;
+
+	public XWTTitleAreaDialog(Shell parentShell,
+			Object dataContext, BindingContext bindingContext) {
+		super(parentShell);
+		this.dataContext = dataContext;
+		this.bindingContext = bindingContext;
+	}
+
+	public XWTTitleAreaDialog(Shell parentShell, Class<?> contentCLS,
+			Object dataContext) {
+		this(parentShell, contentCLS, dataContext, null);
+	}
+
+	public XWTTitleAreaDialog(Shell parentShell, Class<?> contentCLS,
+			Object dataContext, BindingContext bindingContext) {
+		super(parentShell);
+		this.contentCLS = contentCLS;
+		this.dataContext = dataContext;
+		this.bindingContext = bindingContext;
+	}
+
+	@Override
+	protected Control createDialogArea(Composite parent) {
+		Control control = super.createDialogArea(parent);
+
+		if (bindingContext == null) {
+			bindingContext = new BindingContext(parent);
+		}
+		validationStatus = bindingContext.getStatus();
+		validationStatus.addChangeListener(new IChangeListener() {
+			public void handleChange(ChangeEvent event) {
+				IStatus status = (IStatus) validationStatus.getValue();
+				setMessage(status.getMessage(), status.getSeverity());
+			}
+		});
+
+		ClassLoader classLoader = Thread.currentThread()
+				.getContextClassLoader();
+		try {
+			Thread.currentThread().setContextClassLoader(
+					contentCLS.getClassLoader());
+			HashMap<String, Object> newOptions = new HashMap<String, Object>();
+			newOptions.put(XWTLoader.CONTAINER_PROPERTY, parent);
+			Object dataContext = getDataContext();
+			if (dataContext != null) {
+				newOptions.put(XWTLoader.DATACONTEXT_PROPERTY, dataContext);
+			}
+			BindingContext bindingContext = getBindingContext();
+			if (bindingContext != null) {
+				newOptions.put(XWTLoader.BINDING_CONTEXT_PROPERTY,
+						bindingContext);
+			}
+			newOptions.put(XWTLoader.CLASS_PROPERTY, contentCLS);
+
+			XWT.loadWithOptions(getContentURL(), newOptions);
+			GridLayoutFactory.fillDefaults().generateLayout(parent);
+			parent.layout(true, true);
+		} catch (Exception e) {
+			e.printStackTrace();
+		} finally {
+			Thread.currentThread().setContextClassLoader(classLoader);
+			parent.setVisible(true);
+		}
+		return control;
+	}
+
+	public URL getContentURL() {
+		if (contentCLS != null) {
+			return contentCLS.getResource(contentCLS.getSimpleName()
+					+ IConstants.XWT_EXTENSION_SUFFIX);
+		}
+		return null; 
+	}
+
+	public Object getDataContext() {
+		return dataContext;
+	}
+
+	public BindingContext getBindingContext() {
+		return bindingContext;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/DefaultLoadingType.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/DefaultLoadingType.java
new file mode 100644
index 0000000..101eb88
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/DefaultLoadingType.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.metadata;
+
+public class DefaultLoadingType implements ILoadingType {
+	private IValueLoading valueLoading;
+	private IProperty[] properties;
+
+	public DefaultLoadingType(IValueLoading valueLoading, IProperty[] properties) {
+		this.valueLoading = valueLoading;
+		this.properties = properties;
+	}
+
+	public IValueLoading getValueLoading() {
+		return valueLoading;
+	}
+
+	public IProperty[] getDependencies() {
+		return properties;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/DelegateProperty.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/DelegateProperty.java
new file mode 100644
index 0000000..bc9aaf0
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/DelegateProperty.java
@@ -0,0 +1,102 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.metadata;
+
+import java.lang.reflect.InvocationTargetException;
+
+/**
+ * 
+ * Facility class to override the default behavior
+ * @author yyang
+ */
+public class DelegateProperty implements IProperty {
+	protected IProperty delegate;
+	protected ILoadingType loadingType;
+	
+	public DelegateProperty(IProperty delegate) {
+		this(delegate, ILoadingType.DEFAULT);
+	}
+	
+	public DelegateProperty(ILoadingType loadingType) {
+		this(null, loadingType);
+	}
+
+	public DelegateProperty(IProperty delegate, ILoadingType loadingType) {
+		this.delegate = delegate;
+		this.loadingType = loadingType;
+	}
+
+	public void addSetPostAction(ISetPostAction setPostAction) {
+		this.delegate.addSetPostAction(setPostAction);
+	}
+
+	public Class<?> getType() {
+		return this.delegate.getType();
+	}
+
+	public Object getValue(Object target) throws IllegalArgumentException,
+			IllegalAccessException, InvocationTargetException,
+			SecurityException, NoSuchFieldException {
+		return this.delegate.getValue(target);
+	}
+
+	public boolean isDefault() {
+		return false;
+	}
+
+	public boolean isContainement() {
+		return false;
+	}
+
+	public void removeSetPostAction(ISetPostAction setPostAction) {
+		this.delegate.removeSetPostAction(setPostAction);
+	}
+	
+	public boolean isReadOnly() {
+		return this.delegate.isReadOnly();
+	}
+
+	public void setType(Class<?> type) {
+		this.delegate.setType(type);
+	}
+
+	public void setValue(Object target, Object value)
+			throws IllegalArgumentException, IllegalAccessException,
+			InvocationTargetException, SecurityException, NoSuchFieldException {
+		this.delegate.setValue(target, value);
+	}
+
+	public String getName() {
+		return this.delegate.getName();
+	}
+
+	public void setName(String name) {
+		this.delegate.setName(name);
+	}
+
+	public IProperty getDelegate() {
+		return delegate;
+	}
+
+	public void setDelegate(IProperty delegate) {
+		this.delegate = delegate;
+	}
+	
+	public boolean isValueAsParent() {
+		return this.delegate.isValueAsParent();
+	}
+
+	public ILoadingType getLoadingType() {
+		return loadingType;
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IBehavior.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IBehavior.java
new file mode 100644
index 0000000..741412c
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IBehavior.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.metadata;
+
+/**
+ * Common behavior of Property and event
+ * 
+ * @author yyang
+ */
+public interface IBehavior {
+
+	/**
+	 * Getter of the property <tt>name</tt>
+	 * 
+	 * @return Returns the name.
+	 */
+	public String getName();
+
+	public void setName(String name);
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IEvent.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IEvent.java
new file mode 100644
index 0000000..5da0dc8
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IEvent.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.metadata;
+
+/**
+ * UI event
+ * 
+ * @author yyang
+ */
+public interface IEvent extends IBehavior {
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/ILoadingType.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/ILoadingType.java
new file mode 100644
index 0000000..b76af35
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/ILoadingType.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.metadata;
+
+/**
+ * This class is used to indicate when the property can be 
+ * initialized during the XML Loading. 
+ * 
+ * @author yyang <yves.yang@soyatec.com>
+ */
+public interface ILoadingType {
+	public ILoadingType DEFAULT = new ILoadingType() {
+		public IValueLoading getValueLoading() {
+			return IValueLoading.Normal;
+		}		
+		public IProperty[] getDependencies() {
+			return IProperty.EMPTY_ARRAY;
+		}
+	};
+	
+	/**
+	 * When the property can be loaded.
+	 * @return
+	 */
+	IValueLoading getValueLoading();
+
+	/**
+	 * The dependency properties must be loaded before.  
+	 * @return
+	 */
+	IProperty[] getDependencies();
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IMetaclass.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IMetaclass.java
new file mode 100644
index 0000000..1d081ef
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IMetaclass.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.metadata;
+
+import org.eclipse.xwt.IEventGroup;
+
+/**
+ * UI metaclass
+ * 
+ * @author yyang
+ */
+public interface IMetaclass {
+	public String getName();
+
+	public IProperty[] getProperties();
+
+	public IMetaclass getSuperClass();
+
+	public IEvent[] getEvents();
+
+	public IProperty findProperty(String name);
+
+	public void removeProperty(String name);
+
+	public IProperty findDefaultProperty();
+
+	public IEvent findEvent(String name);
+
+	public Object newInstance(Object[] parameters);
+
+	public boolean isAbstract();
+
+	public boolean isInstance(Object object);
+
+	public boolean isSubclassOf(IMetaclass metaclass);
+
+	public boolean isSuperclassOf(IMetaclass metaclass);
+
+	public boolean isAssignableFrom(IMetaclass metaclass);
+
+	public Class<?> getType();
+
+	public IProperty addProperty(IProperty property);
+
+	public Class<?> getDataContextType();
+	
+	public void addEventGroup(IEventGroup eventGroup);
+	
+	public IEventGroup getEventGroup(String event);
+	
+	public void addInitializer(IObjectInitializer initializer);
+	
+	public void removeInitializer(IObjectInitializer initializer);
+	
+	public IObjectInitializer[] getInitializers();
+	
+	public void initialize(Object instance);	
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IObjectInitializer.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IObjectInitializer.java
new file mode 100644
index 0000000..ab00d24
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IObjectInitializer.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.metadata;
+
+/**
+ * Provide a mechanism to initialize the instance
+ * 
+ * @author yyang
+ *
+ */
+public interface IObjectInitializer {
+	void initialize(Object object);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IProperty.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IProperty.java
new file mode 100644
index 0000000..113f3aa
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IProperty.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.metadata;
+
+import java.lang.reflect.InvocationTargetException;
+
+/**
+ * UI property
+ * 
+ * @author yyang
+ */
+public interface IProperty extends IBehavior {
+	IProperty[] EMPTY_ARRAY = new IProperty[] {};
+	
+	public Class<?> getType();
+
+	public void setType(Class<?> type);
+
+	/**
+	 * Can generate event
+	 * 
+	 * @return
+	 */
+	public void setValue(Object target, Object value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException;
+
+	public Object getValue(Object target) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, NoSuchFieldException;
+
+	public void addSetPostAction(ISetPostAction setPostAction);
+
+	public void removeSetPostAction(ISetPostAction setPostAction);
+
+	public boolean isDefault();
+	
+	public boolean isContainement();
+	
+	public boolean isReadOnly();
+	
+	/**
+	 * use the value ad parent for the children. Table.table, Form.setHeadClient etc
+	 * @return
+	 */
+	public boolean isValueAsParent();
+	
+	public ILoadingType getLoadingType();
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/ISetPostAction.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/ISetPostAction.java
new file mode 100644
index 0000000..df6d75d
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/ISetPostAction.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.metadata;
+
+public interface ISetPostAction {
+	void action(Object target, IProperty property, Object value);
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IValueLoading.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IValueLoading.java
new file mode 100644
index 0000000..5e5b531
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/IValueLoading.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.metadata;
+
+/**
+ * This class is used to indicate when the property can be 
+ * initialized during the XML Loading. 
+ * 
+ * @author yyang <yves.yang@soyatec.com>
+ */
+public enum IValueLoading {
+	/**
+	 * Set property just after Widget creation. It is the default value.
+	 */
+	Normal,
+
+	/**
+	 * Set property just after the complete initialization before the creation
+	 * of children
+	 */
+	PostInitialization,
+
+	/**
+	 * Set property just after the creation of children
+	 */
+	PostChildren;
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/ModelUtils.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/ModelUtils.java
new file mode 100644
index 0000000..675cba1
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/metadata/ModelUtils.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.metadata;
+
+import java.beans.Introspector;
+
+/**
+ * 
+ * @author yyang
+ *
+ */
+public class ModelUtils {
+	public static String normalizeEventName(String name) {
+		return name.toLowerCase();
+	}
+		
+	public static String normalizePropertyName(String name) {
+		if (name == null || name.length() == 0) {
+			return name;
+		}
+		return Introspector.decapitalize(name);
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/utils/NamedColorsUtil.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/utils/NamedColorsUtil.java
new file mode 100644
index 0000000..a6621f4
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/utils/NamedColorsUtil.java
@@ -0,0 +1,86 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.utils;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Enumeration;
+import java.util.List;
+import java.util.ResourceBundle;
+
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.xwt.internal.utils.ObjectUtil;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class NamedColorsUtil {
+	private static ResourceBundle COLORS = ResourceBundle.getBundle("org.eclipse.xwt.utils.colors");
+
+	private static String[] colorNames;
+	static {
+		List<String> colors = new ArrayList<>();
+		Enumeration<String> keys = COLORS.getKeys();
+		while (keys.hasMoreElements()) {
+			String color = keys.nextElement();
+			colors.add(color);
+		}
+		if (!colors.isEmpty()) {
+			colorNames = colors.toArray(new String[0]);
+			Arrays.sort(colorNames);
+		}
+	}
+
+	public static String[] getColorNames() {
+		return colorNames;
+	}
+
+	public static String getColorValue(String name) {
+		if (!hasColor(name)) {
+			return null;
+		}
+		String value = COLORS.getString(name);
+		if (value != null) {
+			value = value.trim();
+		}
+		return value;
+	}
+
+	public static boolean hasColor(String name) {
+		if (name == null) {
+			return false;
+		}
+		String[] colorNames = getColorNames();
+		if (colorNames == null) {
+			return false;
+		}
+		return Arrays.asList(colorNames).contains(name);
+	}
+
+	public static Color getColor(String name) {
+		if (!hasColor(name)) {
+			return null;
+		}
+		String colorValue = getColorValue(name);
+		if (colorValue != null) {
+			return (Color) ObjectUtil.resolveValue(colorValue, Color.class, null);
+		}
+		return null;
+	}
+
+	/**
+	 * Utility class.
+	 */
+	private NamedColorsUtil() {
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/utils/OperatorExceptionMessage.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/utils/OperatorExceptionMessage.java
new file mode 100644
index 0000000..f876eac
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/utils/OperatorExceptionMessage.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0 * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.utils;
+
+/**
+ * @author YaHong.Song(yahong.song@soyatec.com)
+ * 
+ */
+public final class OperatorExceptionMessage {
+	public static final String TYPE_UN_SAME = "different data type exception";
+	public static final String OPRERANR_NULL = "the operant value is null exception";
+	public static final String TYPE_WRONG = "type is not supported exception";
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/utils/PathHelper.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/utils/PathHelper.java
new file mode 100644
index 0000000..fe93ef2
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/utils/PathHelper.java
@@ -0,0 +1,151 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.utils;
+
+import java.io.File;
+import java.util.StringTokenizer;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class PathHelper {
+
+	public static final String URL_IDENTIFY_PREFIX = "file:";
+	public static final String BACKWARD_SLASH = "\\";
+	public static final String FORWARD_SLASH = "/";
+	public static final String RELATIVE_PATH_SIG = "../";
+	public static final String WHITE_SPACE_ASCII = "%20";
+
+	public static String getRelativePath(String source, String target) {
+		if (source == null || target == null) {
+			return target;
+		}
+		File sourceFile = new File(source);
+		if (!sourceFile.exists()) {
+			return target;
+		}
+		File targetFile = new File(target);
+		if (!targetFile.exists()) {
+			return target;
+		}
+		source = switchToForwardSlashes(source);
+		target = switchToForwardSlashes(target);
+		int index = target.indexOf(FORWARD_SLASH);
+		String container = null;
+		while (index != -1) {
+			container = target.substring(0, index);
+			if (!source.startsWith(container + FORWARD_SLASH)) {
+				break;
+			}
+			source = source.substring(index + 1);
+			target = target.substring(index + 1);
+			index = target.indexOf(FORWARD_SLASH);
+		}
+		index = source.indexOf(FORWARD_SLASH);
+		while (index != -1) {
+			target = RELATIVE_PATH_SIG + target;
+			source = source.substring(index + 1);
+			index = source.indexOf(FORWARD_SLASH);
+		}
+		return target;
+	}
+
+	/**
+	 * Switch to file path slashes
+	 */
+	public static String switchToForwardSlashes(String path) {
+		path = path.replace(File.separatorChar, FORWARD_SLASH.charAt(0));
+		path = path.replace(BACKWARD_SLASH.charAt(0), FORWARD_SLASH.charAt(0));
+		return path;
+	}
+
+	public static String getAbsolutePath(String source, String relative) {
+		if (source.indexOf(WHITE_SPACE_ASCII) != -1) {
+			source = source.replace(WHITE_SPACE_ASCII, " ");
+		}
+		if (relative.indexOf(WHITE_SPACE_ASCII) != -1) {
+			relative = relative.replace(WHITE_SPACE_ASCII, " ");
+		}
+		if (source.startsWith(FORWARD_SLASH)) {
+			source = source.substring(1);
+		}
+		String prefix = null;
+		if (source.startsWith(URL_IDENTIFY_PREFIX)) {
+			prefix = URL_IDENTIFY_PREFIX;
+			source = source.substring(URL_IDENTIFY_PREFIX.length());
+			if (System.getProperty("os.arch").startsWith("Win")) {
+				source = source.substring(1);
+			}
+		}
+		File file = new File(source);
+		if (!file.exists()) {
+			return relative;
+		}
+		if (file.isFile()) {
+			source = file.getParent();
+		}
+		source = switchToForwardSlashes(source);
+		relative = switchToForwardSlashes(relative);
+		if (relative.startsWith(FORWARD_SLASH)) {
+			relative = relative.substring(1);
+		}
+		int index = relative.lastIndexOf(FORWARD_SLASH);
+		if (index != -1) {
+			String container = relative.substring(0, index);
+			int i = source.indexOf(container);
+			if (i != -1) {
+				source = source.substring(0, i);
+			} else {
+				int j = relative.indexOf(RELATIVE_PATH_SIG);
+				while (j != -1) {
+					relative = relative.substring(j + RELATIVE_PATH_SIG.length());
+					source = source.substring(0, source.lastIndexOf(FORWARD_SLASH));
+					j = relative.indexOf(RELATIVE_PATH_SIG);
+				}
+			}
+		}
+		if (System.getProperty("os.arch").startsWith("Win")) {
+			source = "/" + source;
+		}
+
+		return (prefix != null ? prefix : "") + source + FORWARD_SLASH + relative;
+	}
+
+	/**
+	 * Convert to relative url based on base
+	 */
+	public static String convertToRelative(String input, String base) {
+		StringTokenizer inputTokenizer = new StringTokenizer(input, FORWARD_SLASH);
+		StringTokenizer baseTokenizer = new StringTokenizer(base, FORWARD_SLASH);
+		String token1 = "", token2 = "";
+		//
+		while (true) {
+			if (!inputTokenizer.hasMoreTokens() || !baseTokenizer.hasMoreTokens())
+				break;
+			token1 = baseTokenizer.nextToken();
+			token2 = inputTokenizer.nextToken();
+			if (!token1.equals(token2))
+				break;
+		}
+		StringBuilder builder = new StringBuilder();
+		while (baseTokenizer.hasMoreTokens()) {
+			baseTokenizer.nextToken();
+			builder.append(RELATIVE_PATH_SIG);
+		}
+		builder.append(token2);
+		while (inputTokenizer.hasMoreTokens()) {
+			builder.append(FORWARD_SLASH + inputTokenizer.nextToken());
+		}
+		return builder.toString();
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/utils/ResourceManager.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/utils/ResourceManager.java
new file mode 100644
index 0000000..bffd0ed
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/utils/ResourceManager.java
@@ -0,0 +1,245 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.utils;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.StringTokenizer;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.xwt.XWTMaps;
+import org.eclipse.xwt.internal.utils.ObjectUtil;
+
+/**
+ * @author jliu
+ */
+public class ResourceManager {
+
+	public static ResourceManager resources = new ResourceManager();
+
+	private Map<String, Color> key2Colors = new HashMap<String, Color>();
+	private Map<String, Font> key2Fonts = new HashMap<String, Font>();
+	private Map<String, Image> key2Images = new HashMap<String, Image>();
+
+	/**
+	 * Default constructor.
+	 */
+	private ResourceManager() {
+	}
+
+	public Color getColor(String colorStr) {
+		Color color = key2Colors.get(colorStr);
+		if (color == null || color.isDisposed()) {
+			key2Colors.put(colorStr, color = ColorTool.getColor(colorStr));
+		}
+		return color;
+	}
+
+	public Font getFont(String fontStr) {
+		Font font = key2Fonts.get(fontStr);
+		if (font == null || font.isDisposed()) {
+			key2Fonts.put(fontStr, font = FontTool.getFont(fontStr));
+		}
+		return font;
+	}
+
+	public Image getImage(String imagePath) {
+		if (imagePath == null) {
+			return null;
+		}
+		try {
+			return getImage(new URL(imagePath));
+		} catch (Exception e) {
+			return null;
+		}
+	}
+
+	public Image getImage(URL file) {
+		String key = file.toString();
+		Image image = key2Images.get(key);
+		if (image == null || image.isDisposed()) {
+			key2Images.put(key, image = ImageTool.getImage(file));
+		}
+		return image;
+	}
+
+	public synchronized void dispose() {
+		// dispose colors.
+		Collection<Color> colors = key2Colors.values();
+		for (Color color : colors) {
+			if (color != null) {
+				color.dispose();
+			}
+		}
+		key2Colors.clear();
+
+		// dispose fonts.
+		Collection<Font> fonts = key2Fonts.values();
+		for (Font font : fonts) {
+			if (font != null) {
+				font.dispose();
+			}
+		}
+		key2Colors.clear();
+
+		// dispose images
+		Collection<Image> images = key2Images.values();
+		for (Image image : images) {
+			if (image != null) {
+				image.dispose();
+			}
+		}
+	}
+
+	static class ColorTool {
+		static Color getColor(String colorStr) {
+			if (NamedColorsUtil.hasColor(colorStr)) {
+				return NamedColorsUtil.getColor(colorStr);
+			}
+			if (colorStr.toLowerCase().startsWith("swt.")) {
+				return getSWTColor(colorStr);
+			} else if (colorStr.startsWith("#")) {
+				try {
+					int rgb = Integer.parseInt(colorStr.substring(1), 16);
+					return getColor(rgb);
+				} catch (NumberFormatException e) {
+					return null;
+				}
+			} else if (colorStr.indexOf(",") != -1) {
+				List<String> rgbs = new ArrayList<String>();
+				StringTokenizer stk = new StringTokenizer(colorStr, ",");
+				while (stk.hasMoreTokens()) {
+					rgbs.add(stk.nextToken());
+				}
+				if (rgbs.size() == 3) {
+					try {
+						int r = Integer.parseInt(rgbs.get(0).trim());
+						int g = Integer.parseInt(rgbs.get(1).trim());
+						int b = Integer.parseInt(rgbs.get(2).trim());
+						return getColor(r, g, b);
+					} catch (NumberFormatException e) {
+						return null;
+					}
+				}
+			}
+			return getSWTColor(colorStr);
+		}
+
+		static Color getColor(int red, int green, int blue) {
+			if (red > 255 || green > 255 || blue > 255 || red < 0 || green < 0 || blue < 0) {
+				return null;
+			}
+			return new Color(Display.getCurrent(), red, green, blue);
+		}
+
+		static Color getColor(int rgb) {
+			int value = 0xff000000 | rgb;
+			int red = (value >> 16) & 0xFF;
+			int green = (value >> 8) & 0xFF;
+			int blue = (value >> 0) & 0xFF;
+			return getColor(red, green, blue);
+		}
+
+		static Color getSWTColor(String colorStr) {
+			if (!(colorStr.toLowerCase().startsWith("swt."))) {
+				if (!(colorStr.toLowerCase().startsWith("color_"))) {
+					colorStr = "COLOR_" + colorStr;
+				}
+				colorStr = "SWT." + colorStr;
+			}
+			int swtColor = XWTMaps.getColor(colorStr);
+			return getSWTColor(swtColor);
+		}
+
+		static Color getSWTColor(int swtValue) {
+			return Display.getCurrent().getSystemColor(swtValue);
+		}
+	}
+
+	static class FontTool {
+
+		static Font getFont(String fontStr) {
+			if (fontStr.indexOf(",") != -1) {
+				StringTokenizer stk = new StringTokenizer(fontStr, ",");
+				String name = null;
+				int height = 0;
+				int style = SWT.NORMAL;
+				while (stk.hasMoreTokens()) {
+					String token = stk.nextToken().trim();
+					if (token.equalsIgnoreCase("normal") || token.equalsIgnoreCase("bold") || token.equalsIgnoreCase("italic") || token.contains("|")) {
+						style = (Integer) ObjectUtil.resolveValue(token, Integer.class, style);
+					} else if (isInt(token)) {
+						height = Integer.parseInt(token);
+					} else {
+						name = token;
+					}
+				}
+				return getFont(name, height, style);
+			}
+			return getFont(fontStr, 12, SWT.NORMAL);
+		}
+
+		static boolean isInt(String value) {
+			try {
+				Integer.parseInt(value);
+			} catch (NumberFormatException e) {
+				return false;
+			}
+			return true;
+		}
+
+		static Font getFont(String name, int height, int style) {
+			if (name == null) {
+				return null;
+			}
+			return new Font(Display.getCurrent(), name, height, style);
+		}
+
+		static Font getSWTFont() {
+			return Display.getCurrent().getSystemFont();
+		}
+	}
+
+	static class ImageTool {
+
+		static Image getImage(String resource) {
+			return getImage(ResourceManager.class.getResource(resource));
+		}
+
+		static Image getImage(URL url) {
+			if (url == null) {
+				return null;
+			}
+			try {
+				InputStream stream = url.openStream();
+				try {
+					return new Image(Display.getCurrent(), stream);
+				} finally {
+					stream.close();
+				}
+			} catch (IOException e) {
+				return null;
+			}
+		}
+	}
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/utils/colors.properties b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/utils/colors.properties
new file mode 100644
index 0000000..58f1f21
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/utils/colors.properties
@@ -0,0 +1,152 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+AliceBlue 	#F0F8FF	 
+AntiqueWhite 	#FAEBD7	 
+Aqua 	#00FFFF	 
+Aquamarine 	#7FFFD4	 
+Azure 	#F0FFFF	 
+Beige 	#F5F5DC	 
+Bisque 	#FFE4C4	 
+Black 	#000000	 
+BlanchedAlmond 	#FFEBCD	 
+Blue 	#0000FF	 
+BlueViolet 	#8A2BE2	 
+Brown 	#A52A2A	 
+BurlyWood 	#DEB887	 
+CadetBlue 	#5F9EA0	 
+Chartreuse 	#7FFF00	 
+Chocolate 	#D2691E	 
+Coral 	#FF7F50	 
+CornflowerBlue 	#6495ED	 
+Cornsilk 	#FFF8DC	 
+Crimson 	#DC143C	 
+Cyan 	#00FFFF	 
+DarkBlue 	#00008B	 
+DarkCyan 	#008B8B	 
+DarkGoldenRod 	#B8860B	 
+DarkGray 	#A9A9A9	 
+DarkGreen 	#006400	 
+DarkKhaki 	#BDB76B	 
+DarkMagenta 	#8B008B	 
+DarkOliveGreen 	#556B2F	 
+Darkorange 	#FF8C00	 
+DarkOrchid 	#9932CC	 
+DarkRed 	#8B0000	 
+DarkSalmon 	#E9967A	 
+DarkSeaGreen 	#8FBC8F	 
+DarkSlateBlue 	#483D8B	 
+DarkSlateGray 	#2F4F4F	 
+DarkTurquoise 	#00CED1	 
+DarkViolet 	#9400D3	 
+DeepPink 	#FF1493	 
+DeepSkyBlue 	#00BFFF	 
+DimGray 	#696969	 
+DodgerBlue 	#1E90FF	 
+FireBrick 	#B22222	 
+FloralWhite 	#FFFAF0	 
+ForestGreen 	#228B22	 
+Fuchsia 	#FF00FF	 
+Gainsboro 	#DCDCDC	 
+GhostWhite 	#F8F8FF	 
+Gold 	#FFD700	 
+GoldenRod 	#DAA520	 
+Gray 	#808080	 
+Green 	#008000	 
+GreenYellow 	#ADFF2F	 
+HoneyDew 	#F0FFF0	 
+HotPink 	#FF69B4	 
+IndianRed  	#CD5C5C	 
+Indigo  	#4B0082	 
+Ivory 	#FFFFF0	 
+Khaki 	#F0E68C	 
+Lavender 	#E6E6FA	 
+LavenderBlush 	#FFF0F5	 
+LawnGreen 	#7CFC00	 
+LemonChiffon 	#FFFACD	 
+LightBlue 	#ADD8E6	 
+LightCoral 	#F08080	 
+LightCyan 	#E0FFFF	 
+LightGoldenRodYellow 	#FAFAD2	 
+LightGrey 	#D3D3D3	 
+LightGreen 	#90EE90	 
+LightPink 	#FFB6C1	 
+LightSalmon 	#FFA07A	 
+LightSeaGreen 	#20B2AA	 
+LightSkyBlue 	#87CEFA	 
+LightSlateGray 	#778899	 
+LightSteelBlue 	#B0C4DE	 
+LightYellow 	#FFFFE0	 
+Lime 	#00FF00	 
+LimeGreen 	#32CD32	 
+Linen 	#FAF0E6	 
+Magenta 	#FF00FF	 
+Maroon 	#800000	 
+MediumAquaMarine 	#66CDAA	 
+MediumBlue 	#0000CD	 
+MediumOrchid 	#BA55D3	 
+MediumPurple 	#9370D8	 
+MediumSeaGreen 	#3CB371	 
+MediumSlateBlue 	#7B68EE	 
+MediumSpringGreen 	#00FA9A	 
+MediumTurquoise 	#48D1CC	 
+MediumVioletRed 	#C71585	 
+MidnightBlue 	#191970	 
+MintCream 	#F5FFFA	 
+MistyRose 	#FFE4E1	 
+Moccasin 	#FFE4B5	 
+NavajoWhite 	#FFDEAD	 
+Navy 	#000080	 
+OldLace 	#FDF5E6	 
+Olive 	#808000	 
+OliveDrab 	#6B8E23	 
+Orange 	#FFA500	 
+OrangeRed 	#FF4500	 
+Orchid 	#DA70D6	 
+PaleGoldenRod 	#EEE8AA	 
+PaleGreen 	#98FB98	 
+PaleTurquoise 	#AFEEEE	 
+PaleVioletRed 	#D87093	 
+PapayaWhip 	#FFEFD5	 
+PeachPuff 	#FFDAB9	 
+Peru 	#CD853F	 
+Pink 	#FFC0CB	 
+Plum 	#DDA0DD	 
+PowderBlue 	#B0E0E6	 
+Purple 	#800080	 
+Red 	#FF0000	 
+RosyBrown 	#BC8F8F	 
+RoyalBlue 	#4169E1	 
+SaddleBrown 	#8B4513	 
+Salmon 	#FA8072	 
+SandyBrown 	#F4A460	 
+SeaGreen 	#2E8B57	 
+SeaShell 	#FFF5EE	 
+Sienna 	#A0522D	 
+Silver 	#C0C0C0	 
+SkyBlue 	#87CEEB	 
+SlateBlue 	#6A5ACD	 
+SlateGray 	#708090	 
+Snow 	#FFFAFA	 
+SpringGreen 	#00FF7F	 
+SteelBlue 	#4682B4	 
+Tan 	#D2B48C	 
+Teal 	#008080	 
+Thistle 	#D8BFD8	 
+Tomato 	#FF6347	 
+Turquoise 	#40E0D0	 
+Violet 	#EE82EE	 
+Wheat 	#F5DEB3	 
+White 	#FFFFFF	 
+WhiteSmoke 	#F5F5F5	 
+Yellow 	#FFFF00	 
+YellowGreen 	#9ACD32
\ No newline at end of file
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/validation/AbstractValidationRule.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/validation/AbstractValidationRule.java
new file mode 100644
index 0000000..d77f9c2
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/validation/AbstractValidationRule.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.validation;
+
+import org.eclipse.xwt.IValidationRule;
+
+/**
+ * Abstract implementation of {@link IValidationRule}
+ *
+ * @author hceylan
+ */
+public abstract class AbstractValidationRule implements IValidationRule {
+
+	/**
+	 *
+	 */
+	public AbstractValidationRule() {
+		super();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.IValueValidator#getBindingMode()
+	 */
+	public Direction getBindingMode() {
+		return Direction.Both;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.IValueValidator#getPhase()
+	 */
+	public Phase getPhase() {
+		return Phase.AfterGet;
+	}
+
+}
diff --git a/plugins/org.eclipse.xwt/src/org/eclipse/xwt/validation/InverseValidationRule.java b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/validation/InverseValidationRule.java
new file mode 100644
index 0000000..739f94b
--- /dev/null
+++ b/plugins/org.eclipse.xwt/src/org/eclipse/xwt/validation/InverseValidationRule.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.validation;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.xwt.IValidationRule;
+
+public class InverseValidationRule implements IValidationRule {
+
+	private final IValidationRule delegate;
+
+	public InverseValidationRule(IValidationRule delegate) {
+		super();
+
+		this.delegate = delegate;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.IValueValidator#getBindingMode()
+	 */
+	public Direction getBindingMode() {
+		switch (delegate.getBindingMode()) {
+		case SourceToTarget:
+			return Direction.TargetToSource;
+		case TargetToSource:
+			return Direction.SourceToTarget;
+		case Both:
+		default:
+			return Direction.Both;
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.IValueValidator#getPhase()
+	 */
+	public Phase getPhase() {
+		return delegate.getPhase();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.IValueValidator#validateBack(java.lang.Object)
+	 */
+	public IStatus validateBack(Object value) {
+		return delegate.validate(value);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.databinding.validation.IValidator#validate(java.lang.Object)
+	 */
+	public IStatus validate(Object value) {
+		return delegate.validateBack(value);
+	}
+
+}
diff --git a/plugins/pom.xml b/plugins/pom.xml
new file mode 100644
index 0000000..6f0cea8
--- /dev/null
+++ b/plugins/pom.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-root</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>org.eclipse.xwt-plugins</artifactId>
+	<packaging>pom</packaging>
+	
+	<modules>
+		<module>org.eclipse.xwt</module>
+		<module>org.eclipse.xwt.css</module>
+		<!-- <module>org.eclipse.xwt.doc</module> -->
+		<!-- <module>org.eclipse.xwt.doc.user</module> -->
+		<module>org.eclipse.xwt.e4</module>
+		<module>org.eclipse.xwt.emf</module>
+		<module>org.eclipse.xwt.forms</module>
+		<module>org.eclipse.xwt.pde</module>
+		<module>org.eclipse.xwt.snippets</module>
+		<module>org.eclipse.xwt.tools.categorynode</module>
+		<module>org.eclipse.xwt.tools.categorynode.edit</module>
+		<module>org.eclipse.xwt.tools.ui</module>
+		<module>org.eclipse.xwt.tools.ui.designer</module>
+		<module>org.eclipse.xwt.tools.ui.designer.core</module>
+		<module>org.eclipse.xwt.tools.ui.editor</module>
+		<module>org.eclipse.xwt.tools.ui.imagecapture</module>
+		<module>org.eclipse.xwt.tools.ui.palette</module>
+		<module>org.eclipse.xwt.tools.ui.vex</module>
+		<module>org.eclipse.xwt.tools.ui.workbench</module>
+		<module>org.eclipse.xwt.tools.ui.xaml</module>
+		<module>org.eclipse.xwt.ui.workbench</module>
+		<module>org.eclipse.xwt.xml</module>
+	</modules>
+	
+</project>
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 215c067..90e68f3 100755
--- a/pom.xml
+++ b/pom.xml
@@ -38,37 +38,10 @@
 	</properties>
 
 	<modules>
-		<module>org.eclipse.xwt.releng</module>
-		<module>org.eclipse.xwt</module>
-		<module>org.eclipse.xwt.css</module>
-		<module>org.eclipse.xwt.css.tests</module>
-		<!-- <module>org.eclipse.xwt.doc</module> -->
-		<!-- <module>org.eclipse.xwt.doc.user</module> -->
-		<module>org.eclipse.xwt.e4</module>
-		<module>org.eclipse.xwt.emf</module>
-		<module>org.eclipse.xwt.emf.test</module>
-		<module>org.eclipse.xwt.feature</module>
-		<module>org.eclipse.xwt.forms</module>
-		<module>org.eclipse.xwt.pde</module>
-		<module>org.eclipse.xwt.snippets</module>
-		<module>org.eclipse.xwt.snippets.tests</module>
-		<module>org.eclipse.xwt.tests</module>
-		<module>org.eclipse.xwt.tests.feature</module>
-		<module>org.eclipse.xwt.tools.categorynode</module>
-		<module>org.eclipse.xwt.tools.categorynode.edit</module>
-		<module>org.eclipse.xwt.tools.feature</module>
-		<module>org.eclipse.xwt.tools.ui</module>
-		<module>org.eclipse.xwt.tools.ui.designer</module>
-		<module>org.eclipse.xwt.tools.ui.designer.core</module>
-		<module>org.eclipse.xwt.tools.ui.editor</module>
-		<module>org.eclipse.xwt.tools.ui.imagecapture</module>
-		<module>org.eclipse.xwt.tools.ui.palette</module>
-		<module>org.eclipse.xwt.tools.ui.vex</module>
-		<module>org.eclipse.xwt.tools.ui.workbench</module>
-		<module>org.eclipse.xwt.tools.ui.xaml</module>
-		<module>org.eclipse.xwt.ui.workbench</module>
-		<module>org.eclipse.xwt.workbench.feature</module>
-		<module>org.eclipse.xwt.xml</module>
+		<module>features</module>
+		<module>plugins</module>
+		<module>tests</module>
+		<module>releng</module>
 	</modules>
 
 	<pluginRepositories>
diff --git a/org.eclipse.xwt.releng/.project b/releng/org.eclipse.xwt.releng/.project
similarity index 100%
rename from org.eclipse.xwt.releng/.project
rename to releng/org.eclipse.xwt.releng/.project
diff --git a/org.eclipse.xwt.releng/old/buckminsterConfiguration.README b/releng/org.eclipse.xwt.releng/old/buckminsterConfiguration.README
similarity index 100%
rename from org.eclipse.xwt.releng/old/buckminsterConfiguration.README
rename to releng/org.eclipse.xwt.releng/old/buckminsterConfiguration.README
diff --git a/org.eclipse.xwt.releng/old/buckminsterScript1.sh b/releng/org.eclipse.xwt.releng/old/buckminsterScript1.sh
similarity index 100%
rename from org.eclipse.xwt.releng/old/buckminsterScript1.sh
rename to releng/org.eclipse.xwt.releng/old/buckminsterScript1.sh
diff --git a/org.eclipse.xwt.releng/old/buckminsterScript2.sh b/releng/org.eclipse.xwt.releng/old/buckminsterScript2.sh
similarity index 100%
rename from org.eclipse.xwt.releng/old/buckminsterScript2.sh
rename to releng/org.eclipse.xwt.releng/old/buckminsterScript2.sh
diff --git a/org.eclipse.xwt.releng/old/buckminsterScript3.sh b/releng/org.eclipse.xwt.releng/old/buckminsterScript3.sh
similarity index 100%
rename from org.eclipse.xwt.releng/old/buckminsterScript3.sh
rename to releng/org.eclipse.xwt.releng/old/buckminsterScript3.sh
diff --git a/releng/org.eclipse.xwt.releng/old/e4.ui.designer.psf b/releng/org.eclipse.xwt.releng/old/e4.ui.designer.psf
new file mode 100644
index 0000000..3f22279
--- /dev/null
+++ b/releng/org.eclipse.xwt.releng/old/e4.ui.designer.psf
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<psf version="2.0">
+<provider id="org.eclipse.team.cvs.core.cvsnature">
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui,org.eclipse.xwt.tools.ui"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.e4.tools.ui.designer,org.eclipse.e4.tools.ui.designer"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.e4.ui/bundles/org.eclipse.e4.ui.model.workbench.edit,org.eclipse.e4.ui.model.workbench.edit"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.workbench,org.eclipse.xwt.tools.ui.workbench"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.designer.core,org.eclipse.xwt.tools.ui.designer.core"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.imagecapture,org.eclipse.xwt.tools.ui.imagecapture"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.palette,org.eclipse.xwt.tools.ui.palette"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.xaml,org.eclipse.xwt.tools.ui.xaml"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt,org.eclipse.xwt"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.pde,org.eclipse.xwt.pde"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.categorynode,org.eclipse.xwt.tools.categorynode"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.categorynode.edit,org.eclipse.xwt.tools.categorynode.edit"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.xml,org.eclipse.xwt.xml"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.forms,org.eclipse.xwt.forms"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.emf,org.eclipse.xwt.emf"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.e4.tools/bundles/org.eclipse.e4.tools,org.eclipse.e4.tools"/>
+</provider>
+</psf>
\ No newline at end of file
diff --git a/releng/org.eclipse.xwt.releng/old/e4.xwt.demo.psf b/releng/org.eclipse.xwt.releng/old/e4.xwt.demo.psf
new file mode 100644
index 0000000..7292d4e
--- /dev/null
+++ b/releng/org.eclipse.xwt.releng/old/e4.xwt.demo.psf
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<psf version="2.0">
+<provider id="org.eclipse.team.cvs.core.cvsnature">
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.swt,org.eclipse.swt"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.e4.swt/bundles/org.eclipse.swt.e4,org.eclipse.swt.e4"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.e4.swt/examples/org.eclipse.swt.e4.examples,org.eclipse.swt.e4.examples"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.e4.swt/bundles/org.eclipse.swt.e4.jcl,org.eclipse.swt.e4.jcl"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,org.eclipse.swt.examples,org.eclipse.swt.examples"/>
+</provider>
+</psf>
diff --git a/releng/org.eclipse.xwt.releng/old/e4.xwt.psf b/releng/org.eclipse.xwt.releng/old/e4.xwt.psf
new file mode 100644
index 0000000..bd53ecf
--- /dev/null
+++ b/releng/org.eclipse.xwt.releng/old/e4.xwt.psf
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<psf version="2.0">
+<provider id="org.eclipse.team.cvs.core.cvsnature">
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/features/org.eclipse.xwt.feature,org.eclipse.xwt.feature"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt,org.eclipse.xwt"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.e4.ui/bundles/org.pushingpixels.trident,org.pushingpixels.trident"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.pde,org.eclipse.xwt.pde"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.xml,org.eclipse.xwt.xml"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.forms,org.eclipse.xwt.forms"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.css,org.eclipse.xwt.css"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.emf,org.eclipse.xwt.emf"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/features/org.eclipse.xwt.css.feature,org.eclipse.xwt.css.feature"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/features/org.eclipse.xwt.emf.feature,org.eclipse.xwt.emf.feature"/>
+</provider>
+</psf>
diff --git a/releng/org.eclipse.xwt.releng/old/e4.xwt.tests.psf b/releng/org.eclipse.xwt.releng/old/e4.xwt.tests.psf
new file mode 100644
index 0000000..97cc5d0
--- /dev/null
+++ b/releng/org.eclipse.xwt.releng/old/e4.xwt.tests.psf
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<psf version="2.0">
+<provider id="org.eclipse.team.cvs.core.cvsnature">
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/tests/org.eclipse.xwt.tests,org.eclipse.xwt.tests"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/tests/org.eclipse.xwt.emf.test,org.eclipse.xwt.emf.test"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/features/org.eclipse.xwt.tests.feature,org.eclipse.xwt.tests.feature"/>
+</provider>
+</psf>
\ No newline at end of file
diff --git a/releng/org.eclipse.xwt.releng/old/e4.xwt.tools.psf b/releng/org.eclipse.xwt.releng/old/e4.xwt.tools.psf
new file mode 100644
index 0000000..486a957
--- /dev/null
+++ b/releng/org.eclipse.xwt.releng/old/e4.xwt.tools.psf
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<psf version="2.0">
+<provider id="org.eclipse.team.cvs.core.cvsnature">
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/features/org.eclipse.xwt.tools.feature,org.eclipse.xwt.tools.feature"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui,org.eclipse.xwt.tools.ui"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.editor,org.eclipse.xwt.tools.ui.editor"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.designer,org.eclipse.xwt.tools.ui.designer"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.designer.core,org.eclipse.xwt.tools.ui.designer.core"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.imagecapture,org.eclipse.xwt.tools.ui.imagecapture"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.palette,org.eclipse.xwt.tools.ui.palette"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.xaml,org.eclipse.xwt.tools.ui.xaml"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.vex,org.eclipse.xwt.vex"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/doc/org.eclipse.xwt.doc.user,org.eclipse.xwt.doc.user"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.e4.ui/bundles/org.eclipse.e4.ui.model.workbench.edit,org.eclipse.e4.ui.model.workbench.edit"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.e4.tools.ui.designer,org.eclipse.e4.tools.ui.designer"/>
+</provider>
+</psf>
\ No newline at end of file
diff --git a/releng/org.eclipse.xwt.releng/old/e4.xwt.workbench.psf b/releng/org.eclipse.xwt.releng/old/e4.xwt.workbench.psf
new file mode 100644
index 0000000..ec4daa5
--- /dev/null
+++ b/releng/org.eclipse.xwt.releng/old/e4.xwt.workbench.psf
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<psf version="2.0">
+<provider id="org.eclipse.team.cvs.core.cvsnature">
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/features/org.eclipse.xwt.workbench.feature,org.eclipse.xwt.workbench.feature"/>
+<project reference="1.0,:pserver:dev.eclipse.org:/cvsroot/eclipse,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.ui.workbench,org.eclipse.xwt.ui.workbench"/>
+</provider>
+</psf>
diff --git a/releng/org.eclipse.xwt.releng/old/maps/xwt.map b/releng/org.eclipse.xwt.releng/old/maps/xwt.map
new file mode 100644
index 0000000..a8970e1
--- /dev/null
+++ b/releng/org.eclipse.xwt.releng/old/maps/xwt.map
@@ -0,0 +1,33 @@
+!**** e4 XWT tools
+plugin@org.eclipse.xwt=v20110218-0800,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt
+plugin@org.eclipse.xwt.css=v20100617-2100,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.css
+plugin@org.eclipse.e4.tools.ui.designer=v20110218-0800,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.e4.tools.ui.designer
+plugin@org.eclipse.xwt.tools.ui=v20101021,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui
+plugin@org.eclipse.xwt.tools.ui.editor=v20101021,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.editor
+plugin@org.eclipse.xwt.tools.categorynode=v20100617-2100,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.categorynode
+plugin@org.eclipse.xwt.tools.categorynode.edit=v20100617-2100,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.categorynode.edit
+plugin@org.eclipse.xwt.tools.ui.designer=v20101021,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.designer
+plugin@org.eclipse.xwt.tools.ui.designer.core=v20101021,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.designer.core
+plugin@org.eclipse.xwt.tools.ui.imagecapture=v20100617-2100,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.imagecapture
+plugin@org.eclipse.xwt.tools.ui.palette=v20100617-2100,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.palette
+plugin@org.eclipse.xwt.tools.ui.xaml=v20100617-2100,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.tools.ui.xaml
+plugin@org.eclipse.xwt.vex=v20100627-1530,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.vex
+plugin@org.eclipse.xwt.pde=v20101119-0800,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.pde
+plugin@org.eclipse.xwt.doc.user=v20100617-2100,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/doc/org.eclipse.xwt.doc.user
+plugin@org.eclipse.xwt.xml=v20100617-2100,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.xml
+plugin@org.eclipse.xwt.forms=v20101021,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.forms
+plugin@org.eclipse.xwt.emf=v20100617-2100,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.emf
+plugin@org.eclipse.xwt.ui.workbench=v20101119-0800,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/bundles/org.eclipse.xwt.ui.workbench
+
+
+!**** and build it
+feature@org.eclipse.xwt.feature=v20091126-1500,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/features/org.eclipse.xwt.feature
+feature@org.eclipse.xwt.tests.feature=v20091009-1415,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/features/org.eclipse.xwt.tests.feature
+feature@org.eclipse.xwt.tools.feature=v20100705-2130,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/features/org.eclipse.xwt.tools.feature
+feature@org.eclipse.xwt.css.feature=v20090609-1530,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/features/org.eclipse.xwt.css.feature
+feature@org.eclipse.xwt.emf.feature=v20090624-1330,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/features/org.eclipse.xwt.emf.feature
+feature@org.eclipse.xwt.workbench.feature=v20100618,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/features/org.eclipse.xwt.workbench.feature
+
+!**** Test Suites
+plugin@org.eclipse.xwt.tests=v20110218-0800,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/tests/org.eclipse.xwt.tests
+plugin@org.eclipse.xwt.emf.test=v20101025,:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse,,e4/org.eclipse.xwt/tests/org.eclipse.xwt.emf.test
\ No newline at end of file
diff --git a/org.eclipse.xwt.releng/old/promote-xwt.sh b/releng/org.eclipse.xwt.releng/old/promote-xwt.sh
similarity index 100%
rename from org.eclipse.xwt.releng/old/promote-xwt.sh
rename to releng/org.eclipse.xwt.releng/old/promote-xwt.sh
diff --git a/releng/org.eclipse.xwt.releng/pom.xml b/releng/org.eclipse.xwt.releng/pom.xml
new file mode 100755
index 0000000..b988169
--- /dev/null
+++ b/releng/org.eclipse.xwt.releng/pom.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-releng</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>org.eclipse.xwt.releng</artifactId>
+	<packaging>pom</packaging>
+
+	<modules>
+		<module>site</module>
+		<module>targetPlatform</module>
+	</modules>
+</project>
diff --git a/org.eclipse.xwt.releng/promote-xwt.sh b/releng/org.eclipse.xwt.releng/promote-xwt.sh
similarity index 100%
rename from org.eclipse.xwt.releng/promote-xwt.sh
rename to releng/org.eclipse.xwt.releng/promote-xwt.sh
diff --git a/releng/org.eclipse.xwt.releng/site/category.xml b/releng/org.eclipse.xwt.releng/site/category.xml
new file mode 100755
index 0000000..802839f
--- /dev/null
+++ b/releng/org.eclipse.xwt.releng/site/category.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<site>
+   <feature url="org.eclipse.xwt.feature_1.4.100.qualifier.jar" id="org.eclipse.xwt.feature" version="1.4.100.qualifier">
+      <category name="org.eclipse.xwt.core.category"/>
+   </feature>
+   <feature url="org.eclipse.xwt.feature.source_1.4.100.qualifier.jar" id="org.eclipse.xwt.feature.source" version="1.4.100.qualifier">
+      <category name="org.eclipse.xwt.core.category"/>
+   </feature>
+     
+   <feature url="org.eclipse.xwt.workbench.feature_1.5.0.qualifier.jar" id="org.eclipse.xwt.workbench.feature" version="1.5.0.qualifier">
+      <category name="org.eclipse.xwt.core.category"/>
+   </feature>
+   <feature url="org.eclipse.xwt.workbench.feature.source_1.5.0.qualifier.jar" id="org.eclipse.xwt.workbench.feature.source" version="1.5.0.qualifier">
+      <category name="org.eclipse.xwt.core.category"/>
+   </feature>
+
+   <feature url="org.eclipse.xwt.tools.feature_0.10.100.qualifier.jar" id="org.eclipse.xwt.tools.feature" version="0.10.100.qualifier">
+      <category name="org.eclipse.xwt.tools.category"/>
+   </feature>
+  
+   <feature url="org.eclipse.xwt.tests.feature_0.10.100.qualifier.jar" id="org.eclipse.xwt.tests.feature" version="0.10.100.qualifier">
+      <category name="org.eclipse.xwt.tests.category"/>
+   </feature>
+   
+   <category-def name="org.eclipse.xwt.core.category" label="XWT Core">
+      <description>
+         XWT Core Features
+      </description>
+   </category-def>
+   <category-def name="org.eclipse.xwt.tools.category" label="XWT Tools">
+      <description>
+         XWT Tools Features
+      </description>
+   </category-def>
+   <category-def name="org.eclipse.xwt.tests.category" label="XWT Tests">
+      <description>
+         XWT Tests Features
+      </description>
+   </category-def>
+</site>
+
diff --git a/org.eclipse.xwt.releng/site/pom.xml b/releng/org.eclipse.xwt.releng/site/pom.xml
similarity index 100%
rename from org.eclipse.xwt.releng/site/pom.xml
rename to releng/org.eclipse.xwt.releng/site/pom.xml
diff --git a/org.eclipse.xwt.releng/targetPlatform/org.eclipse.xwt.target.target b/releng/org.eclipse.xwt.releng/targetPlatform/org.eclipse.xwt.target.target
similarity index 100%
rename from org.eclipse.xwt.releng/targetPlatform/org.eclipse.xwt.target.target
rename to releng/org.eclipse.xwt.releng/targetPlatform/org.eclipse.xwt.target.target
diff --git a/org.eclipse.xwt.releng/targetPlatform/org.eclipse.xwt.target.tpd b/releng/org.eclipse.xwt.releng/targetPlatform/org.eclipse.xwt.target.tpd
similarity index 100%
rename from org.eclipse.xwt.releng/targetPlatform/org.eclipse.xwt.target.tpd
rename to releng/org.eclipse.xwt.releng/targetPlatform/org.eclipse.xwt.target.tpd
diff --git a/org.eclipse.xwt.releng/targetPlatform/pom.xml b/releng/org.eclipse.xwt.releng/targetPlatform/pom.xml
similarity index 100%
rename from org.eclipse.xwt.releng/targetPlatform/pom.xml
rename to releng/org.eclipse.xwt.releng/targetPlatform/pom.xml
diff --git a/releng/pom.xml b/releng/pom.xml
new file mode 100644
index 0000000..c15b0a1
--- /dev/null
+++ b/releng/pom.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-root</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>org.eclipse.xwt-releng</artifactId>
+	<packaging>pom</packaging>
+	
+	<modules>
+		<module>org.eclipse.xwt.releng</module>
+	</modules>
+	
+</project>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.designer.core/.classpath b/tests/org.eclipse.xwt.css.tests/.classpath
old mode 100755
new mode 100644
similarity index 100%
copy from org.eclipse.xwt.tools.ui.designer.core/.classpath
copy to tests/org.eclipse.xwt.css.tests/.classpath
diff --git a/org.eclipse.xwt.css.tests/.gitignore b/tests/org.eclipse.xwt.css.tests/.gitignore
similarity index 100%
rename from org.eclipse.xwt.css.tests/.gitignore
rename to tests/org.eclipse.xwt.css.tests/.gitignore
diff --git a/tests/org.eclipse.xwt.css.tests/.project b/tests/org.eclipse.xwt.css.tests/.project
new file mode 100644
index 0000000..12b72dc
--- /dev/null
+++ b/tests/org.eclipse.xwt.css.tests/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.xwt.css.tests</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/tests/org.eclipse.xwt.css.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.xwt.css.tests/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..55d9a18
--- /dev/null
+++ b/tests/org.eclipse.xwt.css.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: CSS Tests Plug-in
+Bundle-SymbolicName: org.eclipse.xwt.css.tests;singleton:=true
+Bundle-Version: 0.10.0.qualifier
+Bundle-Activator: org.eclipse.xwt.css.tests.Activator
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.core.resources,
+ org.eclipse.e4.ui.css.swt;bundle-version="0.9.0",
+ org.eclipse.xwt;bundle-version="0.9.0",
+ org.eclipse.xwt.css;bundle-version="0.9.0",
+ org.eclipse.e4.ui.css.core;bundle-version="0.9.0",
+ org.eclipse.jdt.core;bundle-version="3.8.2"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-Vendor: Eclipse XWT
diff --git a/tests/org.eclipse.xwt.css.tests/about.html b/tests/org.eclipse.xwt.css.tests/about.html
new file mode 100644
index 0000000..46a80b6
--- /dev/null
+++ b/tests/org.eclipse.xwt.css.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 5, 2006</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.css.tests/build.properties b/tests/org.eclipse.xwt.css.tests/build.properties
new file mode 100644
index 0000000..396f3f2
--- /dev/null
+++ b/tests/org.eclipse.xwt.css.tests/build.properties
@@ -0,0 +1,27 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               about.html,\
+               plugin.xml,\
+               notice.html
+src.includes = .classpath,\
+               .project,\
+               META-INF/,\
+               about.html,\
+               build.properties,\
+               plugin.xml,\
+               src/,\
+               notice.html
diff --git a/tests/org.eclipse.xwt.css.tests/notice.html b/tests/org.eclipse.xwt.css.tests/notice.html
new file mode 100644
index 0000000..2949b01
--- /dev/null
+++ b/tests/org.eclipse.xwt.css.tests/notice.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 9, 2014</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 2.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/tests/org.eclipse.xwt.css.tests/plugin.xml b/tests/org.eclipse.xwt.css.tests/plugin.xml
new file mode 100644
index 0000000..3d029d5
--- /dev/null
+++ b/tests/org.eclipse.xwt.css.tests/plugin.xml
Binary files differ
diff --git a/tests/org.eclipse.xwt.css.tests/pom.xml b/tests/org.eclipse.xwt.css.tests/pom.xml
new file mode 100755
index 0000000..b02c986
--- /dev/null
+++ b/tests/org.eclipse.xwt.css.tests/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-tests</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt.css.tests</artifactId>
+	<version>0.10.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+</project>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/Activator.java b/tests/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/Activator.java
new file mode 100644
index 0000000..41374f9
--- /dev/null
+++ b/tests/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/Activator.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.css.tests;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+	// The plug-in ID
+	public static final String PLUGIN_ID = "org.eclipse.xwt.css.tests";
+
+	// The shared instance
+	private static Activator plugin;
+
+	/**
+	 * The constructor
+	 */
+	public Activator() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext
+	 * )
+	 */
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext
+	 * )
+	 */
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance
+	 * 
+	 * @return the shared instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/ClassLoaderHelper.java b/tests/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/ClassLoaderHelper.java
new file mode 100644
index 0000000..da32716
--- /dev/null
+++ b/tests/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/ClassLoaderHelper.java
@@ -0,0 +1,246 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.css.tests.popup.actions;
+
+import java.io.File;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
+
+public class ClassLoaderHelper {
+
+	public static URL getResourceAsURL(IJavaProject javaProject, String name) {
+		if (javaProject == null)
+			return null;
+
+		Set<IJavaProject> visited = new HashSet<IJavaProject>();
+		URL url = findResourceURL(javaProject, visited, true, name);
+		if (url == null) {
+			IFile file = javaProject.getProject().getFile(name);
+			if (file.exists()) {
+				url = toURL(file.getLocation());
+			}
+		}
+		return url;
+	}
+
+	public static byte[] getClassContent(IJavaProject javaProject, String className) {
+		if (javaProject == null || !javaProject.exists())
+			return null;
+		String resourceName = className.replace('.', '/') + ".class";
+		try {
+			IPath outPath = javaProject.getProject().getLocation().removeLastSegments(1).append(javaProject.getOutputLocation());
+			outPath = outPath.addTrailingSeparator();
+			{
+				URL url = toURL(outPath.append(resourceName));
+				if (url != null) {
+					InputStream inputStream = url.openStream();
+					byte[] content = new byte[inputStream.available()];
+					inputStream.read(content);
+					return content;
+				}
+				for (IProject project : javaProject.getProject().getReferencedProjects()) {
+					if (!project.isOpen()) {
+						continue;
+					}
+					IJavaProject javaReferencedProject = JavaCore.create(project);
+					if (javaReferencedProject.exists()) {
+						byte[] content = getClassContent(javaReferencedProject, className);
+						if (content != null) {
+							return content;
+						}
+					}
+				}
+			}
+			IType type = javaProject.findType(className);
+			if (type != null && type.exists()) {
+				if (type.isBinary()) {
+					return type.getClassFile().getBytes();
+				} else {
+					IJavaProject typeProject = type.getJavaProject();
+					if (!javaProject.equals(typeProject)) {
+						return getClassContent(typeProject, className);
+					}
+				}
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
+
+	public static URL[] getClasspathAsURLArray(IJavaProject javaProject) {
+		if (javaProject == null)
+			return null;
+		Set<IJavaProject> visited = new HashSet<IJavaProject>();
+		List<URL> urls = new ArrayList<URL>(20);
+		collectClasspathURLs(javaProject, urls, visited, true);
+		URL[] result = new URL[urls.size()];
+		urls.toArray(result);
+		return result;
+	}
+
+	private static URL findResourceURL(IJavaProject javaProject, Set<IJavaProject> visited, boolean isFirstProject, String name) {
+		if (visited.contains(javaProject))
+			return null;
+		visited.add(javaProject);
+		try {
+			IPath outPath = javaProject.getProject().getLocation().removeLastSegments(1).append(javaProject.getOutputLocation());
+			outPath = outPath.addTrailingSeparator();
+			{
+				URL url = toURL(outPath.append(name));
+				if (url != null) {
+					return url;
+				}
+			}
+			for (IPackageFragmentRoot fragment : javaProject.getPackageFragmentRoots()) {
+				if (fragment.getKind() == IPackageFragmentRoot.K_SOURCE) {
+					URL url = toURL(fragment.getResource().getLocation().append(name));
+					if (url != null) {
+						return url;
+					}
+				}
+			}
+			// urls.add(out);
+			IClasspathEntry[] entries = javaProject.getResolvedClasspath(true);
+			for (IClasspathEntry entry : entries) {
+				switch (entry.getEntryKind()) {
+				case IClasspathEntry.CPE_LIBRARY: {
+					// TODO
+					IClasspathEntry resolveEntry = JavaCore.getResolvedClasspathEntry(entry);
+					File file = resolveEntry.getPath().toFile();
+					IPath path = resolveEntry.getPath();
+					if (!file.exists()) {
+						String projectName = path.segment(0);
+						IProject project = javaProject.getProject().getWorkspace().getRoot().getProject(projectName);
+						path = project.getLocation().append(path.removeFirstSegments(1));
+					}
+					String spec = "jar:file:" + path.toString() + "!/" + name;
+					try {
+						URL url2 = new URL(spec);
+						url2.getContent();
+						return url2;
+					} catch (Exception e) {
+					}
+				}
+					break;
+				case IClasspathEntry.CPE_CONTAINER:
+
+					break;
+				case IClasspathEntry.CPE_VARIABLE: {
+					{
+						// TODO
+						URL url = toURL(outPath.append(name));
+						if (url != null) {
+							return url;
+						}
+					}
+				}
+					break;
+				case IClasspathEntry.CPE_PROJECT: {
+					if (isFirstProject || entry.isExported()) {
+						URL url = findResourceURL(getJavaProject(entry), visited, false, name);
+						if (url != null) {
+							return url;
+						}
+					}
+					break;
+				}
+				}
+			}
+		} catch (JavaModelException e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
+
+	private static URL toURL(IPath outPath) {
+		File file = outPath.toFile();
+		if (file != null && file.exists()) {
+			try {
+				return file.toURI().toURL();
+			} catch (MalformedURLException e) {
+				e.printStackTrace();
+			}
+		}
+		return null;
+	}
+
+	private static void collectClasspathURLs(IJavaProject javaProject, List<URL> urls, Set<IJavaProject> visited, boolean isFirstProject) {
+		if (visited.contains(javaProject))
+			return;
+		visited.add(javaProject);
+		try {
+			IPath outPath = javaProject.getProject().getWorkspace().getRoot().getFullPath().append(javaProject.getOutputLocation());
+			outPath = outPath.addTrailingSeparator();
+			URL out = createFileURL(outPath);
+			urls.add(out);
+			IClasspathEntry[] entries = null;
+			entries = javaProject.getResolvedClasspath(true);
+			for (IClasspathEntry entry : entries) {
+				switch (entry.getEntryKind()) {
+				case IClasspathEntry.CPE_LIBRARY:
+				case IClasspathEntry.CPE_CONTAINER:
+				case IClasspathEntry.CPE_VARIABLE:
+					collectClasspathEntryURL(entry, urls);
+					break;
+				case IClasspathEntry.CPE_PROJECT: {
+					if (isFirstProject || entry.isExported())
+						collectClasspathURLs(getJavaProject(entry), urls, visited, false);
+					break;
+				}
+				}
+			}
+		} catch (JavaModelException e) {
+			return;
+		}
+	}
+
+	private static URL createFileURL(IPath path) {
+		URL url = null;
+		try {
+			url = new URL("file://" + path.toOSString());
+		} catch (MalformedURLException e) {
+			e.printStackTrace();
+		}
+		return url;
+	}
+
+	private static void collectClasspathEntryURL(IClasspathEntry entry, List<URL> urls) {
+		URL url = createFileURL(entry.getPath());
+		if (url != null)
+			urls.add(url);
+	}
+
+	private static IJavaProject getJavaProject(IClasspathEntry entry) {
+		IProject proj = ResourcesPlugin.getWorkspace().getRoot().getProject(entry.getPath().segment(0));
+		if (proj != null)
+			return JavaCore.create(proj);
+		return null;
+	}
+}
diff --git a/tests/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/DisplayUtil.java b/tests/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/DisplayUtil.java
new file mode 100644
index 0000000..334dde0
--- /dev/null
+++ b/tests/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/DisplayUtil.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.css.tests.popup.actions;
+
+import java.net.URI;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTException;
+
+public class DisplayUtil {
+
+	public static void open(IFile file) {
+		if (file != null) {
+			IJavaProject javaProject = JavaCore.create(file.getProject());
+			if (!javaProject.exists()) {
+				return;
+			}
+			URI uri = file.getLocationURI();
+			try {
+				XWT.setLoadingContext(ProjectContext.getContext(javaProject));
+				Object widget = XWT.load(uri.toURL());
+				if (!(widget instanceof Control)) {
+					throw new XWTException("Root element must be a control.");
+				}
+				Shell shell = ((Control)widget).getShell();
+				shell.pack();
+				shell.open();
+				while (!shell.isDisposed())
+					if (!shell.getDisplay().readAndDispatch())
+						shell.getDisplay().sleep();
+			} catch (Exception e) {
+				e.printStackTrace();
+				if (e instanceof RuntimeException) {
+					throw (RuntimeException) e;
+				}
+				throw new RuntimeException(e);
+			}
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/LoadingContext.java b/tests/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/LoadingContext.java
new file mode 100644
index 0000000..93065ca
--- /dev/null
+++ b/tests/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/LoadingContext.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.css.tests.popup.actions;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+
+import org.eclipse.xwt.IConstants;
+
+public class LoadingContext extends org.eclipse.xwt.DefaultLoadingContext {
+	String namespace = IConstants.XWT_NAMESPACE;
+	protected ArrayList<WeakReference<PropertyChangeListener>> changeSupport = new ArrayList<WeakReference<PropertyChangeListener>>();
+
+	public String getNamespace() {
+		return namespace;
+	}
+
+	public void setNamespace(String namespace) {
+		this.namespace = namespace;
+	}
+
+	public void addPropertyChangeListener(PropertyChangeListener changeListener) {
+		for (WeakReference<PropertyChangeListener> reference : changeSupport) {
+			if (reference.get() == changeListener) {
+				return;
+			}
+		}
+		changeSupport.add(new WeakReference<PropertyChangeListener>(changeListener));
+	}
+
+	public void removePropertyChangeListener(PropertyChangeListener changeListener) {
+		for (WeakReference<PropertyChangeListener> reference : changeSupport) {
+			if (reference.get() == changeListener) {
+				changeSupport.remove(reference);
+				return;
+			}
+		}
+	}
+
+	public void firePropertyChangeListener(PropertyChangeEvent event) {
+		for (WeakReference<PropertyChangeListener> reference : changeSupport) {
+			PropertyChangeListener listener = reference.get();
+			if (listener != null) {
+				listener.propertyChange(event);
+			}
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/ProjectContext.java b/tests/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/ProjectContext.java
new file mode 100644
index 0000000..11b89cb
--- /dev/null
+++ b/tests/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/ProjectContext.java
@@ -0,0 +1,161 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.css.tests.popup.actions;
+
+import java.beans.PropertyChangeEvent;
+import java.net.URL;
+import java.util.HashSet;
+import java.util.WeakHashMap;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.jdt.core.IJavaProject;
+
+public class ProjectContext extends LoadingContext {
+	protected static WeakHashMap<String, ProjectContext> contexts = new WeakHashMap<String, ProjectContext>();
+
+	protected static IResourceChangeListener changeListener = new IResourceChangeListener() {
+		public void resourceChanged(IResourceChangeEvent event) {
+			IResourceDelta delta = event.getDelta();
+			if (!contexts.isEmpty() && delta != null) {
+				processDelta(delta);
+			}
+		}
+
+		protected void processDelta(IResourceDelta delta) {
+			for (IResourceDelta resourceDelta : delta.getAffectedChildren()) {
+				IProject project = resourceDelta.getResource().getProject();
+				if (project != null && project.exists()) {
+					String name = project.getName();
+					ProjectContext projectContext = contexts.get(name);
+					if (projectContext != null) {
+						projectContext.processDelta(delta);
+						continue;
+					}
+				}
+				processDelta(resourceDelta);
+			}
+		}
+	};
+
+	protected IJavaProject javaProject;
+	protected HashSet<String> classes = new HashSet<String>();
+
+	class RuntimeLoader extends ClassLoader {
+
+		public RuntimeLoader(ClassLoader parent) {
+			super(parent);
+		}
+
+		@Override
+		protected Class<?> findClass(String name) throws ClassNotFoundException {
+			Class<?> type = null;
+			try {
+				type = super.findClass(name);
+			} catch (ClassNotFoundException e) {
+				if (type == null) {
+					type = redefined(name);
+				}
+				if (type == null) {
+					throw e;
+				} else {
+					classes.add(name);
+				}
+			}
+			return type;
+		}
+
+		public Class<?> redefined(String name) {
+			try {
+				byte[] content = ClassLoaderHelper.getClassContent(ProjectContext.this.javaProject, name);
+				if (content != null) {
+					return defineClass(name, content, 0, content.length);
+				}
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+			return null;
+		}
+
+		@Override
+		protected URL findResource(String name) {
+			URL url = super.findResource(name);
+			if (url == null) {
+				url = ClassLoaderHelper.getResourceAsURL(ProjectContext.this.javaProject, name);
+
+			}
+			return url;
+		}
+	}
+
+	private ProjectContext(IJavaProject javaProject) {
+		this.javaProject = javaProject;
+		resetLoader();
+	}
+
+	protected void resetLoader() {
+		ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+		setClassLoader(new RuntimeLoader(classLoader));
+		firePropertyChangeListener(new PropertyChangeEvent(this, "ClassLoader", null, getClassLoader()));
+	}
+
+	protected boolean processDelta(IResourceDelta delta) {
+		IResourceDelta[] resourceDeltas = delta.getAffectedChildren();
+		for (IResourceDelta resourceDelta : resourceDeltas) {
+			switch (resourceDelta.getKind()) {
+			case IResourceDelta.CHANGED:
+			case IResourceDelta.MOVED_FROM:
+			case IResourceDelta.MOVED_TO:
+				IPath path = resourceDelta.getProjectRelativePath();
+				if (!path.isEmpty() && "class".equals(path.getFileExtension())) {
+					resetLoader();
+					return true;
+				}
+				break;
+			}
+			for (IResourceDelta childDelta : resourceDelta.getAffectedChildren()) {
+				IPath path = childDelta.getProjectRelativePath();
+				if (!path.isEmpty() && "class".equals(path.getFileExtension())) {
+					resetLoader();
+					return true;
+				}
+				if (processDelta(childDelta)) {
+					return true;
+				}
+			}
+		}
+		return false;
+	}
+
+	public static ProjectContext getContext(IJavaProject javaProject) {
+		String elementName = javaProject.getElementName();
+		ProjectContext context = contexts.get(elementName);
+		if (context == null) {
+			context = new ProjectContext(javaProject);
+			contexts.put(elementName, context);
+		}
+		return context;
+	}
+
+	static public void start() {
+		ResourcesPlugin.getWorkspace().addResourceChangeListener(changeListener);
+	}
+
+	static public void stop() {
+		ResourcesPlugin.getWorkspace().removeResourceChangeListener(changeListener);
+	}
+}
diff --git a/tests/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/StyleOpen.java b/tests/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/StyleOpen.java
new file mode 100644
index 0000000..258b05b
--- /dev/null
+++ b/tests/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/StyleOpen.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.css.tests.popup.actions;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.css.CSSStyle;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IActionDelegate;
+import org.eclipse.ui.IObjectActionDelegate;
+import org.eclipse.ui.IWorkbenchPart;
+
+public class StyleOpen implements IObjectActionDelegate {
+	protected IFile file;
+
+	/**
+	 * Constructor for Action1.
+	 */
+	public StyleOpen() {
+		super();
+	}
+
+	/**
+	 * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
+	 */
+	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
+	}
+
+	/**
+	 * @see IActionDelegate#run(IAction)
+	 */
+	public void run(IAction action) {
+		ClassLoader classLoader = Thread.currentThread()
+				.getContextClassLoader();
+		try {
+			Thread.currentThread().setContextClassLoader(
+					StyleOpen.class.getClassLoader());
+			XWT.addDefaultStyle(new CSSStyle(StyleOpen.class
+					.getResource("style.css")));
+			if (file != null) {
+				DisplayUtil.open(file);
+			}
+		} finally {
+			Thread.currentThread().setContextClassLoader(classLoader);
+		}
+	}
+
+	/**
+	 * @see IActionDelegate#selectionChanged(IAction, ISelection)
+	 */
+	public void selectionChanged(IAction action, ISelection selection) {
+		file = null;
+		if (selection.isEmpty()) {
+			return;
+		}
+		IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+		file = (IFile) structuredSelection.getFirstElement();
+	}
+}
diff --git a/tests/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/style.css b/tests/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/style.css
new file mode 100644
index 0000000..2884e19
--- /dev/null
+++ b/tests/org.eclipse.xwt.css.tests/src/org/eclipse/xwt/css/tests/popup/actions/style.css
@@ -0,0 +1,7 @@
+Label {
+	color:red;
+} 
+
+Text {
+	background-color:green;
+}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tools.ui.designer.core/.classpath b/tests/org.eclipse.xwt.emf.test/.classpath
old mode 100755
new mode 100644
similarity index 100%
copy from org.eclipse.xwt.tools.ui.designer.core/.classpath
copy to tests/org.eclipse.xwt.emf.test/.classpath
diff --git a/org.eclipse.xwt.emf.test/.gitignore b/tests/org.eclipse.xwt.emf.test/.gitignore
similarity index 100%
rename from org.eclipse.xwt.emf.test/.gitignore
rename to tests/org.eclipse.xwt.emf.test/.gitignore
diff --git a/tests/org.eclipse.xwt.emf.test/.project b/tests/org.eclipse.xwt.emf.test/.project
new file mode 100644
index 0000000..f82d909
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.xwt.emf.test</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/tests/org.eclipse.xwt.emf.test/META-INF/MANIFEST.MF b/tests/org.eclipse.xwt.emf.test/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..c521781
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/META-INF/MANIFEST.MF
@@ -0,0 +1,21 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.xwt.emf.test;singleton:=true
+Bundle-Version: 0.10.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.eclipse.xwt.emf;bundle-version="0.9.0",
+ org.eclipse.ui;bundle-version="3.4.1",
+ org.eclipse.xwt.xml;bundle-version="0.9.0",
+ com.ibm.icu;bundle-version="4.0.1",
+ org.junit;bundle-version="3.8.2"
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.xwt.emf.test.books,
+ org.eclipse.xwt.emf.test.books.impl,
+ org.eclipse.xwt.emf.test.books.util
diff --git a/tests/org.eclipse.xwt.emf.test/about.html b/tests/org.eclipse.xwt.emf.test/about.html
new file mode 100644
index 0000000..46a80b6
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/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 5, 2006</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.emf.test/build.properties b/tests/org.eclipse.xwt.emf.test/build.properties
new file mode 100644
index 0000000..7690573
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/build.properties
@@ -0,0 +1,33 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+
+# <copyright>
+# </copyright>
+#
+# $Id: build.properties,v 1.4 2010/06/18 00:13:55 yvyang Exp $
+
+bin.includes = .,\
+               model/,\
+               META-INF/,\
+               plugin.xml,\
+               plugin.properties,\
+               test.xml,\
+               about.html,\
+               notice.html
+jars.compile.order = .
+source.. = src/
+output.. = bin/
+src.includes = test.xml,\
+               about.html,\
+               model/,\
+               notice.html
diff --git a/tests/org.eclipse.xwt.emf.test/model/books.ecore b/tests/org.eclipse.xwt.emf.test/model/books.ecore
new file mode 100644
index 0000000..5a717ee
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/model/books.ecore
@@ -0,0 +1,21 @@
+<?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="books"
+    nsURI="org.eclipse.xwt.emf/books.ecore" nsPrefix="books">
+  <eClassifiers xsi:type="ecore:EClass" name="Bookstore">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="books" lowerBound="1" upperBound="-1"
+        eType="#//Book" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Book">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="author" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="price" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="year" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="title" eType="#//Title"
+        containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Title">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="lan" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="text" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/tests/org.eclipse.xwt.emf.test/model/books.genmodel b/tests/org.eclipse.xwt.emf.test/model/books.genmodel
new file mode 100644
index 0000000..5a893f5
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/model/books.genmodel
@@ -0,0 +1,25 @@
+<?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.xwt.emf.test/src"
+    modelPluginID="org.eclipse.xwt.emf.test" templateDirectory="org.eclipse.xwt.emf.test/templates"
+    dynamicTemplates="true" modelName="Books" codeFormatting="true" importerID="org.eclipse.emf.importer.ecore"
+    complianceLevel="6.0" copyrightFields="false">
+  <foreignModel>books.ecore</foreignModel>
+  <genPackages prefix="Books" basePackage="org.eclipse.xwt.emf.test" disposableProviderFactory="true"
+      ecorePackage="books.ecore#/">
+    <genClasses ecoreClass="books.ecore#//Bookstore">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference books.ecore#//Bookstore/books"/>
+    </genClasses>
+    <genClasses ecoreClass="books.ecore#//Book">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute books.ecore#//Book/author"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute books.ecore#//Book/price"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute books.ecore#//Book/year"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EReference books.ecore#//Book/title"/>
+    </genClasses>
+    <genClasses ecoreClass="books.ecore#//Title">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute books.ecore#//Title/lan"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute books.ecore#//Title/text"/>
+    </genClasses>
+  </genPackages>
+</genmodel:GenModel>
diff --git a/tests/org.eclipse.xwt.emf.test/notice.html b/tests/org.eclipse.xwt.emf.test/notice.html
new file mode 100644
index 0000000..2949b01
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/notice.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 9, 2014</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 2.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/tests/org.eclipse.xwt.emf.test/plugin.properties b/tests/org.eclipse.xwt.emf.test/plugin.properties
new file mode 100644
index 0000000..8e84d68
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/plugin.properties
@@ -0,0 +1,20 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+
+# <copyright>
+# </copyright>
+#
+# $Id: plugin.properties,v 1.3 2010/06/18 00:13:55 yvyang Exp $
+
+pluginName = XWT EMF tests
+providerName = Eclipse XWT
diff --git a/tests/org.eclipse.xwt.emf.test/plugin.xml b/tests/org.eclipse.xwt.emf.test/plugin.xml
new file mode 100644
index 0000000..8b06dce
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/plugin.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id: plugin.xml,v 1.2 2010/02/27 06:28:19 yvyang Exp $
+-->
+
+<plugin>
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <package
+            uri="platform:/resource/org.soyatec.xwt.xpath/src/org/soyatec/xwt/xpath/books.xsd"
+            class="org.eclipse.xwt.emf.test.books.BooksPackage"
+            genModel="src/org/eclipse/e4/xwt/emf/test/Books.genmodel"/>
+   </extension>
+
+   <extension point="org.eclipse.emf.ecore.extension_parser">
+      <parser
+            type="books"
+            class="org.eclipse.xwt.emf.test.books.util.BooksResourceFactoryImpl"/>
+   </extension>
+</plugin>
diff --git a/tests/org.eclipse.xwt.emf.test/pom.xml b/tests/org.eclipse.xwt.emf.test/pom.xml
new file mode 100755
index 0000000..73bfe91
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-tests</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt.emf.test</artifactId>
+	<version>0.10.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+</project>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext.java b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext.java
new file mode 100644
index 0000000..5d19b73
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf.test;
+
+import java.net.URL;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.emf.EMFBinding;
+import org.eclipse.xwt.emf.test.books.Book;
+import org.eclipse.xwt.emf.test.books.BooksFactory;
+import org.eclipse.xwt.emf.test.books.BooksPackage;
+import org.eclipse.xwt.emf.test.books.Title;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class EMFDataProvider_DataContext {
+	public static void main(String[] args) {
+		EMFBinding.initialze();
+		URL url = EMFDataProvider_DataContext.class
+				.getResource(EMFDataProvider_DataContext.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url, createBook());
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected static Book createBook() {
+		EClass type = BooksPackage.eINSTANCE.getBook();
+		System.out.println(EcoreUtil.getURI(type));
+		Book harryPotter = BooksFactory.eINSTANCE.createBook();
+		Title title = BooksFactory.eINSTANCE.createTitle();
+		title.setLan("en");
+		title.setText("Harry Potter");
+		harryPotter.setTitle(title);
+		harryPotter.setAuthor("Neal Stephenson");
+		harryPotter.setPrice(29.99);
+		harryPotter.setYear(2005);
+
+		return harryPotter;
+	}
+}
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext.xwt b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext.xwt
new file mode 100644
index 0000000..93cfd30
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext.xwt
@@ -0,0 +1,35 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.emf.test.books"
+	Size="400, 300">
+	<Shell.layout>
+		<GridLayout numColumns="3"/>
+	</Shell.layout>
+	
+	<Label text="Name:"/>
+	<Text name="titleText" x:style="BORDER" text="{Binding Path=title.text}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Text name="authorText" x:style="BORDER" text="{Binding Path=author}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Label text="Copy:"/>
+	<Text x:style="BORDER"  text="{Binding Path=title.text}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Text x:style="BORDER" text="{Binding Path=author}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+</Shell>
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext_Dynamic.java b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext_Dynamic.java
new file mode 100644
index 0000000..b890c69
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext_Dynamic.java
@@ -0,0 +1,101 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf.test;
+
+import java.net.URL;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.emf.EMFBinding;
+
+/**
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class EMFDataProvider_DataContext_Dynamic {
+	public static void main(String[] args) {
+		EMFBinding.initialze();
+		URL url = EMFDataProvider_DataContext_Dynamic.class
+				.getResource(EMFDataProvider_DataContext_Dynamic.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url, createBook());
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected static EObject createBook() {
+		EPackage ePackage = EcoreFactory.eINSTANCE.createEPackage();
+		ePackage.setName("test");
+
+		EClass bookClass = EcoreFactory.eINSTANCE.createEClass();
+		ePackage.getEClassifiers().add(bookClass);
+		bookClass.setName("Book");
+
+		EAttribute authorFeature = EcoreFactory.eINSTANCE.createEAttribute();
+		authorFeature.setName("author");
+		authorFeature.setEType(EcorePackage.eINSTANCE.getEString());
+		bookClass.getEStructuralFeatures().add(authorFeature);
+
+		EAttribute priceFeature = EcoreFactory.eINSTANCE.createEAttribute();
+		priceFeature.setName("price");
+		priceFeature.setEType(EcorePackage.eINSTANCE.getEDouble());
+		bookClass.getEStructuralFeatures().add(priceFeature);
+
+		EAttribute yearFeature = EcoreFactory.eINSTANCE.createEAttribute();
+		yearFeature.setName("year");
+		yearFeature.setEType(EcorePackage.eINSTANCE.getEInt());
+		bookClass.getEStructuralFeatures().add(yearFeature);
+
+		EClass titleClass = EcoreFactory.eINSTANCE.createEClass();
+		ePackage.getEClassifiers().add(titleClass);
+		titleClass.setName("Title");
+
+		EAttribute lanFeature = EcoreFactory.eINSTANCE.createEAttribute();
+		lanFeature.setName("lan");
+		lanFeature.setEType(EcorePackage.eINSTANCE.getEString());
+		titleClass.getEStructuralFeatures().add(lanFeature);
+
+		EAttribute textFeature = EcoreFactory.eINSTANCE.createEAttribute();
+		textFeature.setName("text");
+		textFeature.setEType(EcorePackage.eINSTANCE.getEString());
+		titleClass.getEStructuralFeatures().add(textFeature);
+
+		EReference titleFeature = EcoreFactory.eINSTANCE.createEReference();
+		titleFeature.setName("title");
+		titleFeature.setEType(titleClass);
+		bookClass.getEStructuralFeatures().add(titleFeature);
+
+		EObject harryPotter = EcoreUtil.create(bookClass);
+
+		EObject title = EcoreUtil.create(titleClass);
+
+		title.eSet(lanFeature, "en");
+		title.eSet(textFeature, "Harry Potter");
+		harryPotter.eSet(titleFeature, title);
+		harryPotter.eSet(authorFeature, "Neal Stephenson");
+		harryPotter.eSet(priceFeature, 29.99);
+		harryPotter.eSet(yearFeature, 2005);
+
+		return harryPotter;
+	}
+}
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext_Dynamic.xwt b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext_Dynamic.xwt
new file mode 100644
index 0000000..93cfd30
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext_Dynamic.xwt
@@ -0,0 +1,35 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.emf.test.books"
+	Size="400, 300">
+	<Shell.layout>
+		<GridLayout numColumns="3"/>
+	</Shell.layout>
+	
+	<Label text="Name:"/>
+	<Text name="titleText" x:style="BORDER" text="{Binding Path=title.text}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Text name="authorText" x:style="BORDER" text="{Binding Path=author}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Label text="Copy:"/>
+	<Text x:style="BORDER"  text="{Binding Path=title.text}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Text x:style="BORDER" text="{Binding Path=author}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+</Shell>
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext_Nested.java b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext_Nested.java
new file mode 100644
index 0000000..f932410
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext_Nested.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf.test;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.emf.EMFBinding;
+import org.eclipse.xwt.emf.test.books.Book;
+import org.eclipse.xwt.emf.test.books.BooksFactory;
+import org.eclipse.xwt.emf.test.books.Title;
+
+/**
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class EMFDataProvider_DataContext_Nested {
+	public static void main(String[] args) {
+		EMFBinding.initialze();
+		URL url = EMFDataProvider_DataContext_Nested.class
+				.getResource(EMFDataProvider_DataContext_Nested.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url, createBook());
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected static Book createBook() {
+		Book harryPotter = BooksFactory.eINSTANCE.createBook();
+		Title title = BooksFactory.eINSTANCE.createTitle();
+		title.setLan("en");
+		title.setText("Harry Potter");
+		harryPotter.setTitle(title);
+		harryPotter.setAuthor("Neal Stephenson");
+		harryPotter.setPrice(29.99);
+		harryPotter.setYear(2005);
+
+		return harryPotter;
+	}
+}
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext_Nested.xwt b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext_Nested.xwt
new file mode 100644
index 0000000..923104d
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_DataContext_Nested.xwt
@@ -0,0 +1,40 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.emf.test.books"
+	Size="400, 300">
+	<Shell.layout>
+		<GridLayout numColumns="3"/>
+	</Shell.layout>
+	
+	<Shell.Resources>
+		<EMFDataProvider x:Key="myBooks" objectInstance="{Binding}">
+		</EMFDataProvider>
+	</Shell.Resources>
+	
+	<Label text="Name:"/>
+	<Text name="titleText" x:style="BORDER" text="{Binding Source={StaticResource myBooks}, Path=title.text}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Text name="authorText" x:style="BORDER" text="{Binding Source={StaticResource myBooks}, Path=author}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Label text="Copy:"/>
+	<Text x:style="BORDER"  text="{Binding Source={StaticResource myBooks}, Path=title.text}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Text x:style="BORDER" text="{Binding Source={StaticResource myBooks}, Path=author}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+</Shell>
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_FeatureName.java b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_FeatureName.java
new file mode 100644
index 0000000..b6f9d20
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_FeatureName.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf.test;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.emf.EMFDataProvider;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class EMFDataProvider_FeatureName {
+	public static void main(String[] args) {
+		XWT.registerMetaclass(EMFDataProvider.class);
+		URL url = EMFDataProvider_FeatureName.class
+				.getResource(EMFDataProvider_FeatureName.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_FeatureName.xwt b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_FeatureName.xwt
new file mode 100644
index 0000000..fb98d16
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_FeatureName.xwt
@@ -0,0 +1,40 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.emf.test.books"
+	Size="400, 300">
+	<Shell.layout>
+		<GridLayout numColumns="3"/>
+	</Shell.layout>
+	
+	<Shell.Resources>
+		<EMFDataProvider x:Key="myBooks" typeURI="TODO" featureName="title">
+		</EMFDataProvider>
+	</Shell.Resources>
+	
+	<Label text="Name:"/>
+	<Text x:style="BORDER" text="{Binding Source={StaticResource myBooks}, Path=text}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Text x:style="BORDER" text="{Binding Source={StaticResource myBooks}, Path=lan}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Label text="Copy:"/>
+	<Text x:style="BORDER"  text="{Binding Source={StaticResource myBooks}, Path=text}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Text x:style="BORDER" text="{Binding Source={StaticResource myBooks}, Path=lan}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+</Shell>
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_Type.java b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_Type.java
new file mode 100644
index 0000000..d3ab0b0
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_Type.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf.test;
+
+import java.net.URL;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.emf.EMFBinding;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class EMFDataProvider_Type {
+	public static void main(String[] args) {
+		EMFBinding.initialze();
+		Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put(
+				"ecore", new XMIResourceFactoryImpl());
+
+		URL url = EMFDataProvider_Type.class
+				.getResource(EMFDataProvider_Type.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_Type.xwt b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_Type.xwt
new file mode 100644
index 0000000..04deb9a
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFDataProvider_Type.xwt
@@ -0,0 +1,40 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.emf.test.books"
+	Size="400, 300">
+	<Shell.layout>
+		<GridLayout numColumns="3"/>
+	</Shell.layout>
+	
+	<Shell.Resources>
+		<EMFDataProvider x:Key="myBooks" typeURI="org.eclipse.xwt.emf/books.ecore#//Book">
+		</EMFDataProvider>
+	</Shell.Resources>
+	
+	<Label text="Name:"/>
+	<Text name="titleText" x:style="BORDER" text="{Binding Source={StaticResource myBooks}, Path=title.text}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Text name="authorText" x:style="BORDER" text="{Binding Source={StaticResource myBooks}, Path=author}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Label text="Copy:"/>
+	<Text x:style="BORDER"  text="{Binding Source={StaticResource myBooks}, Path=title.text}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Text x:style="BORDER" text="{Binding Source={StaticResource myBooks}, Path=author}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+</Shell>
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFTestCase.java b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFTestCase.java
new file mode 100644
index 0000000..9d1aaa5
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFTestCase.java
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf.test;
+
+import java.net.URL;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.emf.EMFBinding;
+import org.eclipse.xwt.emf.test.books.BooksFactory;
+
+public class EMFTestCase extends XWTTestCase {
+	public EMFTestCase() {
+		EMFBinding.initialze();
+		EPackage.Registry.INSTANCE.put("org.eclipse.xwt.emf/books.ecore",
+				BooksFactory.eINSTANCE);
+	}
+
+	public void testEMFDataProvider_DataContext() {
+		URL url = EMFTestCase.class
+				.getResource(EMFDataProvider_DataContext.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, EMFDataProvider_DataContext.createBook(), null,
+				new Runnable() {
+					public void run() {
+						assertText("titleText", "Harry Potter");
+						assertText("authorText", "Neal Stephenson");
+					}
+				});
+	}
+
+	public void testEMFDataProvider_DataContext_Dynamic() {
+		URL url = EMFTestCase.class
+				.getResource(EMFDataProvider_DataContext_Dynamic.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, EMFDataProvider_DataContext_Dynamic.createBook(), null,
+				new Runnable() {
+					public void run() {
+						assertText("titleText", "Harry Potter");
+						assertText("authorText", "Neal Stephenson");
+					}
+				});
+	}
+
+	public void testEMFDataProvider_DataContext_Nested() {
+		URL url = EMFTestCase.class
+				.getResource(EMFDataProvider_DataContext_Nested.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, EMFDataProvider_DataContext_Nested.createBook(), null,
+				new Runnable() {
+					public void run() {
+						assertText("titleText", "Harry Potter");
+						assertText("authorText", "Neal Stephenson");
+					}
+				});
+	}
+
+	public void testEMFDataProvider_Type() {
+		URL url = EMFTestCase.class.getResource(EMFDataProvider_Type.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put(
+				"ecore", new XMIResourceFactoryImpl());
+		runTest(url, new Runnable() {
+			public void run() {
+				setText("titleText", "Harry Potter");
+				setText("authorText", "Neal Stephenson");
+			}
+		}, new Runnable() {
+			public void run() {
+				assertText("titleText", "Harry Potter");
+				assertText("authorText", "Neal Stephenson");
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFTestSuite.java b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFTestSuite.java
new file mode 100644
index 0000000..06f9a6a
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/EMFTestSuite.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf.test;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class EMFTestSuite extends TestSuite {
+	public static final Test suite() {
+		return new EMFTestSuite();
+	}
+
+	/**
+	 * The execution of the tests must be started from simple to complex in
+	 * order.
+	 */
+	public EMFTestSuite() {
+		addTest(new TestSuite(EMFTestCase.class));
+	}
+}
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/MyBooks.java b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/MyBooks.java
new file mode 100644
index 0000000..377a9fb
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/MyBooks.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf.test;
+
+import org.eclipse.xwt.emf.test.books.Book;
+import org.eclipse.xwt.emf.test.books.BooksFactory;
+import org.eclipse.xwt.emf.test.books.Bookstore;
+import org.eclipse.xwt.emf.test.books.Title;
+
+public class MyBooks {
+
+	private Bookstore bookstore;
+	private Book harryPotter;
+
+	public Book getBook() {
+		if (harryPotter == null) {
+			harryPotter = BooksFactory.eINSTANCE.createBook();
+			Title title = BooksFactory.eINSTANCE.createTitle();
+			title.setLan("en");
+			title.setText("Harry Potter");
+			harryPotter.setTitle(title);
+			harryPotter.setAuthor("Neal Stephenson");
+			harryPotter.setPrice(29.99);
+			harryPotter.setYear(2005);
+		}
+		return harryPotter;
+	}
+
+	public Bookstore getBookstore() {
+		if (bookstore == null) {
+			bookstore = BooksFactory.eINSTANCE.createBookstore();
+			bookstore.getBooks().add(getBook());
+		}
+		return bookstore;
+	}
+}
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/XWTTestCase.java b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/XWTTestCase.java
new file mode 100644
index 0000000..9bf4871
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/XWTTestCase.java
@@ -0,0 +1,204 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf.test;
+
+import java.lang.reflect.Field;
+import java.net.URL;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.xwt.IXWTLoader;
+import org.eclipse.xwt.XWT;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public abstract class XWTTestCase extends TestCase {
+	protected Control root;
+	static boolean simulateMThreading = false;
+
+	static {
+		if (simulateMThreading) {			
+			Thread thread = new Thread() {
+				@Override
+				public void run() {
+					Display.getDefault();
+				}
+			};
+			thread.start();
+			
+			try {
+				thread.join();
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+		clearnUpDisplay();
+	}
+
+	public static void clearnUpDisplay() {
+		try {
+			Field displaysField = Display.class.getDeclaredField("Displays");
+			if (displaysField != null) {
+				displaysField.setAccessible(true);
+				Display[] displays = (Display[]) displaysField.get(null);
+				if (displays != null) {
+					for(int i = 0; i<displays.length; i++ ) {
+						displays[i] = null;
+					}
+				}
+			}
+			Field field = Display.class.getDeclaredField("Default");
+			if (field != null) {
+				field.setAccessible(true);
+				Display defaultDisplay = (Display) field.get(null);
+				if (defaultDisplay != null) {
+					field.set(null, null);
+				}
+			}
+		} catch (Exception e) {
+		}		
+	}
+
+	protected void runTest(URL url) {
+		runTest(url, null, null);
+	}
+
+	protected void runTest(URL url, Runnable prepareAction, Runnable checkAction) {
+		runTest(url, Collections.EMPTY_MAP, prepareAction, checkAction);
+	}
+
+	protected void runTest(URL url, Object dataContext, Runnable prepareAction,
+			Runnable checkAction) {
+		HashMap<String, Object> options = new HashMap<String, Object>();
+		options.put(IXWTLoader.DATACONTEXT_PROPERTY, dataContext);
+		runTest(url, options, prepareAction, checkAction);
+	}
+
+	protected void runTest(final URL url, Map<String, Object> options,
+			Runnable prepareAction, Runnable checkAction) {
+		ClassLoader classLoader = Thread.currentThread()
+				.getContextClassLoader();
+		try {
+			Thread.currentThread().setContextClassLoader(
+					this.getClass().getClassLoader());
+			Object widget = XWT.loadWithOptions(url, options);
+			assertTrue(widget instanceof Control);
+			assertNotNull(widget);
+			root = (Control) widget;
+			Shell shell = root.getShell();
+			shell.open();
+			Display display = shell.getDisplay();
+			if (prepareAction != null) {
+				display.asyncExec(prepareAction);
+			}
+			while (display.readAndDispatch())
+				;
+			while (display.readAndDispatch())
+				;
+			if (checkAction != null) {
+				display.syncExec(checkAction);
+				while (display.readAndDispatch())
+					;
+			}
+			assertFalse(root.isDisposed());
+			shell.close();
+			while (display.readAndDispatch())
+				;
+		} catch (Exception e) {
+			e.printStackTrace();
+			fail(e.getMessage());
+		} finally {
+			Thread.currentThread().setContextClassLoader(classLoader);
+		}
+	}
+
+	protected void runDebugTest(final URL url, Runnable prepareAction,
+			Runnable checkAction1) {
+		ClassLoader classLoader = Thread.currentThread()
+				.getContextClassLoader();
+		try {
+			Thread.currentThread().setContextClassLoader(
+					this.getClass().getClassLoader());
+			Object widget = XWT.load(url);
+			assertTrue(widget instanceof Control);
+			assertNotNull(widget);
+			root = (Control) widget;
+			Shell shell = root.getShell();
+			shell.open();
+			Display display = shell.getDisplay();
+			if (prepareAction != null) {
+				display.asyncExec(prepareAction);
+			}
+			while (!display.isDisposed())
+				display.readAndDispatch();
+		} catch (Exception e) {
+			e.printStackTrace();
+			fail(e.getMessage());
+		} finally {
+			Thread.currentThread().setContextClassLoader(classLoader);
+		}
+	}
+
+	protected void selectButton(Button button) {
+		selectButton(button, true);
+	}
+
+	protected void selectButton(Button button, boolean selection) {
+		Point size = button.getSize();
+		Display display = button.getDisplay();
+		Event upEvent = new Event();
+		upEvent.widget = button;
+		upEvent.button = 1;
+		upEvent.type = SWT.MouseUp;
+		upEvent.x = size.x / 2;
+		upEvent.y = size.y / 2;
+		display.post(upEvent);
+
+		button.setSelection(selection);
+		button.notifyListeners(SWT.Selection, upEvent);
+	}
+
+	protected void assertText(String name, String value) {
+		Object element = XWT.findElementByName(root, name);
+		assertTrue(element instanceof Text);
+		Text text = (Text) element;
+		assertEquals(value, text.getText());
+	}
+
+	protected void setText(String name, String value) {
+		Object element = XWT.findElementByName(root, name);
+		assertTrue(element instanceof Text);
+		Text text = (Text) element;
+		text.setText(value);
+	}
+
+	protected void assertEqualsArray(Object[] source, Object[] target) {
+		assertEquals(source.length, target.length);
+		for (int i = 0; i < source.length; i++) {
+			assertEquals(source[i], target[i]);
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/Book.java b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/Book.java
new file mode 100644
index 0000000..2cc0a9d
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/Book.java
@@ -0,0 +1,152 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf.test.books;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>Book</b></em>'. <!-- end-user-doc -->
+ * 
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.xwt.emf.test.books.Book#getAuthor <em>Author</em>}</li>
+ * <li>{@link org.eclipse.xwt.emf.test.books.Book#getPrice <em>Price</em>}</li>
+ * <li>{@link org.eclipse.xwt.emf.test.books.Book#getYear <em>Year</em>}</li>
+ * <li>{@link org.eclipse.xwt.emf.test.books.Book#getTitle <em>Title</em>}</li>
+ * </ul>
+ * </p>
+ * 
+ * @see org.eclipse.xwt.emf.test.books.BooksPackage#getBook()
+ * @model
+ * @generated
+ */
+public interface Book extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Title</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Title</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Title</em>' containment reference.
+	 * @see #setTitle(Title)
+	 * @see org.eclipse.xwt.emf.test.books.BooksPackage#getBook_Title()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Title getTitle();
+
+	/**
+	 * Sets the value of the '
+	 * {@link org.eclipse.xwt.emf.test.books.Book#getTitle <em>Title</em>}'
+	 * containment reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Title</em>' containment reference.
+	 * @see #getTitle()
+	 * @generated
+	 */
+	void setTitle(Title value);
+
+	/**
+	 * Returns the value of the '<em><b>Author</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Author</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Author</em>' attribute.
+	 * @see #setAuthor(String)
+	 * @see org.eclipse.xwt.emf.test.books.BooksPackage#getBook_Author()
+	 * @model
+	 * @generated
+	 */
+	String getAuthor();
+
+	/**
+	 * Sets the value of the '
+	 * {@link org.eclipse.xwt.emf.test.books.Book#getAuthor <em>Author</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Author</em>' attribute.
+	 * @see #getAuthor()
+	 * @generated
+	 */
+	void setAuthor(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Price</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Price</em>' attribute isn't clear, there
+	 * really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Price</em>' attribute.
+	 * @see #setPrice(double)
+	 * @see org.eclipse.xwt.emf.test.books.BooksPackage#getBook_Price()
+	 * @model
+	 * @generated
+	 */
+	double getPrice();
+
+	/**
+	 * Sets the value of the '
+	 * {@link org.eclipse.xwt.emf.test.books.Book#getPrice <em>Price</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Price</em>' attribute.
+	 * @see #getPrice()
+	 * @generated
+	 */
+	void setPrice(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Year</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Year</em>' attribute isn't clear, there really
+	 * should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Year</em>' attribute.
+	 * @see #setYear(long)
+	 * @see org.eclipse.xwt.emf.test.books.BooksPackage#getBook_Year()
+	 * @model
+	 * @generated
+	 */
+	long getYear();
+
+	/**
+	 * Sets the value of the '
+	 * {@link org.eclipse.xwt.emf.test.books.Book#getYear <em>Year</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Year</em>' attribute.
+	 * @see #getYear()
+	 * @generated
+	 */
+	void setYear(long value);
+
+} // Book
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/BooksFactory.java b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/BooksFactory.java
new file mode 100644
index 0000000..99c5a4e
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/BooksFactory.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf.test.books;
+
+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.xwt.emf.test.books.BooksPackage
+ * @generated
+ */
+public interface BooksFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory. <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	BooksFactory eINSTANCE = org.eclipse.xwt.emf.test.books.impl.BooksFactoryImpl
+			.init();
+
+	/**
+	 * Returns a new object of class '<em>Bookstore</em>'. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * 
+	 * @return a new object of class '<em>Bookstore</em>'.
+	 * @generated
+	 */
+	Bookstore createBookstore();
+
+	/**
+	 * Returns a new object of class '<em>Book</em>'. <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return a new object of class '<em>Book</em>'.
+	 * @generated
+	 */
+	Book createBook();
+
+	/**
+	 * Returns a new object of class '<em>Title</em>'. <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return a new object of class '<em>Title</em>'.
+	 * @generated
+	 */
+	Title createTitle();
+
+	/**
+	 * Returns the package supported by this factory. <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	BooksPackage getBooksPackage();
+
+} // BooksFactory
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/BooksPackage.java b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/BooksPackage.java
new file mode 100644
index 0000000..76d746e
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/BooksPackage.java
@@ -0,0 +1,422 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf.test.books;
+
+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.xwt.emf.test.books.BooksFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface BooksPackage extends EPackage {
+	/**
+	 * The package name. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	String eNAME = "books";
+
+	/**
+	 * The package namespace URI. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	String eNS_URI = "org.eclipse.xwt.emf/books.ecore";
+
+	/**
+	 * The package namespace name. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	String eNS_PREFIX = "books";
+
+	/**
+	 * The singleton instance of the package. <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	BooksPackage eINSTANCE = org.eclipse.xwt.emf.test.books.impl.BooksPackageImpl
+			.init();
+
+	/**
+	 * The meta object id for the '
+	 * {@link org.eclipse.xwt.emf.test.books.impl.BookstoreImpl
+	 * <em>Bookstore</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see org.eclipse.xwt.emf.test.books.impl.BookstoreImpl
+	 * @see org.eclipse.xwt.emf.test.books.impl.BooksPackageImpl#getBookstore()
+	 * @generated
+	 */
+	int BOOKSTORE = 0;
+
+	/**
+	 * The feature id for the '<em><b>Books</b></em>' containment reference
+	 * list. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int BOOKSTORE__BOOKS = 0;
+
+	/**
+	 * The number of structural features of the '<em>Bookstore</em>' class. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int BOOKSTORE_FEATURE_COUNT = 1;
+
+	/**
+	 * The meta object id for the '
+	 * {@link org.eclipse.xwt.emf.test.books.impl.BookImpl <em>Book</em>}'
+	 * class. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see org.eclipse.xwt.emf.test.books.impl.BookImpl
+	 * @see org.eclipse.xwt.emf.test.books.impl.BooksPackageImpl#getBook()
+	 * @generated
+	 */
+	int BOOK = 1;
+
+	/**
+	 * The feature id for the '<em><b>Author</b></em>' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int BOOK__AUTHOR = 0;
+
+	/**
+	 * The feature id for the '<em><b>Price</b></em>' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int BOOK__PRICE = 1;
+
+	/**
+	 * The feature id for the '<em><b>Year</b></em>' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int BOOK__YEAR = 2;
+
+	/**
+	 * The feature id for the '<em><b>Title</b></em>' containment reference.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int BOOK__TITLE = 3;
+
+	/**
+	 * The number of structural features of the '<em>Book</em>' class. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int BOOK_FEATURE_COUNT = 4;
+
+	/**
+	 * The meta object id for the '
+	 * {@link org.eclipse.xwt.emf.test.books.impl.TitleImpl <em>Title</em>}'
+	 * class. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see org.eclipse.xwt.emf.test.books.impl.TitleImpl
+	 * @see org.eclipse.xwt.emf.test.books.impl.BooksPackageImpl#getTitle()
+	 * @generated
+	 */
+	int TITLE = 2;
+
+	/**
+	 * The feature id for the '<em><b>Lan</b></em>' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int TITLE__LAN = 0;
+
+	/**
+	 * The feature id for the '<em><b>Text</b></em>' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int TITLE__TEXT = 1;
+
+	/**
+	 * The number of structural features of the '<em>Title</em>' class. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 * @ordered
+	 */
+	int TITLE_FEATURE_COUNT = 2;
+
+	/**
+	 * Returns the meta object for class '
+	 * {@link org.eclipse.xwt.emf.test.books.Bookstore <em>Bookstore</em>}'.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for class '<em>Bookstore</em>'.
+	 * @see org.eclipse.xwt.emf.test.books.Bookstore
+	 * @generated
+	 */
+	EClass getBookstore();
+
+	/**
+	 * Returns the meta object for the containment reference list '
+	 * {@link org.eclipse.xwt.emf.test.books.Bookstore#getBooks
+	 * <em>Books</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for the containment reference list '
+	 *         <em>Books</em>'.
+	 * @see org.eclipse.xwt.emf.test.books.Bookstore#getBooks()
+	 * @see #getBookstore()
+	 * @generated
+	 */
+	EReference getBookstore_Books();
+
+	/**
+	 * Returns the meta object for class '
+	 * {@link org.eclipse.xwt.emf.test.books.Book <em>Book</em>}'. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for class '<em>Book</em>'.
+	 * @see org.eclipse.xwt.emf.test.books.Book
+	 * @generated
+	 */
+	EClass getBook();
+
+	/**
+	 * Returns the meta object for the containment reference '
+	 * {@link org.eclipse.xwt.emf.test.books.Book#getTitle <em>Title</em>}'.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for the containment reference '<em>Title</em>'.
+	 * @see org.eclipse.xwt.emf.test.books.Book#getTitle()
+	 * @see #getBook()
+	 * @generated
+	 */
+	EReference getBook_Title();
+
+	/**
+	 * Returns the meta object for class '
+	 * {@link org.eclipse.xwt.emf.test.books.Title <em>Title</em>}'. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for class '<em>Title</em>'.
+	 * @see org.eclipse.xwt.emf.test.books.Title
+	 * @generated
+	 */
+	EClass getTitle();
+
+	/**
+	 * Returns the meta object for the attribute '
+	 * {@link org.eclipse.xwt.emf.test.books.Title#getLan <em>Lan</em>}'.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for the attribute '<em>Lan</em>'.
+	 * @see org.eclipse.xwt.emf.test.books.Title#getLan()
+	 * @see #getTitle()
+	 * @generated
+	 */
+	EAttribute getTitle_Lan();
+
+	/**
+	 * Returns the meta object for the attribute '
+	 * {@link org.eclipse.xwt.emf.test.books.Title#getText <em>Text</em>}'.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for the attribute '<em>Text</em>'.
+	 * @see org.eclipse.xwt.emf.test.books.Title#getText()
+	 * @see #getTitle()
+	 * @generated
+	 */
+	EAttribute getTitle_Text();
+
+	/**
+	 * Returns the meta object for the attribute '
+	 * {@link org.eclipse.xwt.emf.test.books.Book#getAuthor <em>Author</em>}
+	 * '. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for the attribute '<em>Author</em>'.
+	 * @see org.eclipse.xwt.emf.test.books.Book#getAuthor()
+	 * @see #getBook()
+	 * @generated
+	 */
+	EAttribute getBook_Author();
+
+	/**
+	 * Returns the meta object for the attribute '
+	 * {@link org.eclipse.xwt.emf.test.books.Book#getPrice <em>Price</em>}'.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for the attribute '<em>Price</em>'.
+	 * @see org.eclipse.xwt.emf.test.books.Book#getPrice()
+	 * @see #getBook()
+	 * @generated
+	 */
+	EAttribute getBook_Price();
+
+	/**
+	 * Returns the meta object for the attribute '
+	 * {@link org.eclipse.xwt.emf.test.books.Book#getYear <em>Year</em>}'.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @return the meta object for the attribute '<em>Year</em>'.
+	 * @see org.eclipse.xwt.emf.test.books.Book#getYear()
+	 * @see #getBook()
+	 * @generated
+	 */
+	EAttribute getBook_Year();
+
+	/**
+	 * 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
+	 */
+	BooksFactory getBooksFactory();
+
+	/**
+	 * <!-- 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.xwt.emf.test.books.impl.BookstoreImpl
+		 * <em>Bookstore</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc
+		 * -->
+		 * 
+		 * @see org.eclipse.xwt.emf.test.books.impl.BookstoreImpl
+		 * @see org.eclipse.xwt.emf.test.books.impl.BooksPackageImpl#getBookstore()
+		 * @generated
+		 */
+		EClass BOOKSTORE = eINSTANCE.getBookstore();
+
+		/**
+		 * The meta object literal for the '<em><b>Books</b></em>' containment
+		 * reference list feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * 
+		 * @generated
+		 */
+		EReference BOOKSTORE__BOOKS = eINSTANCE.getBookstore_Books();
+
+		/**
+		 * The meta object literal for the '
+		 * {@link org.eclipse.xwt.emf.test.books.impl.BookImpl <em>Book</em>}
+		 * ' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * 
+		 * @see org.eclipse.xwt.emf.test.books.impl.BookImpl
+		 * @see org.eclipse.xwt.emf.test.books.impl.BooksPackageImpl#getBook()
+		 * @generated
+		 */
+		EClass BOOK = eINSTANCE.getBook();
+
+		/**
+		 * The meta object literal for the '<em><b>Title</b></em>' containment
+		 * reference feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * 
+		 * @generated
+		 */
+		EReference BOOK__TITLE = eINSTANCE.getBook_Title();
+
+		/**
+		 * The meta object literal for the '
+		 * {@link org.eclipse.xwt.emf.test.books.impl.TitleImpl
+		 * <em>Title</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * 
+		 * @see org.eclipse.xwt.emf.test.books.impl.TitleImpl
+		 * @see org.eclipse.xwt.emf.test.books.impl.BooksPackageImpl#getTitle()
+		 * @generated
+		 */
+		EClass TITLE = eINSTANCE.getTitle();
+
+		/**
+		 * The meta object literal for the '<em><b>Lan</b></em>' attribute
+		 * feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * 
+		 * @generated
+		 */
+		EAttribute TITLE__LAN = eINSTANCE.getTitle_Lan();
+
+		/**
+		 * The meta object literal for the '<em><b>Text</b></em>' attribute
+		 * feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * 
+		 * @generated
+		 */
+		EAttribute TITLE__TEXT = eINSTANCE.getTitle_Text();
+
+		/**
+		 * The meta object literal for the '<em><b>Author</b></em>' attribute
+		 * feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * 
+		 * @generated
+		 */
+		EAttribute BOOK__AUTHOR = eINSTANCE.getBook_Author();
+
+		/**
+		 * The meta object literal for the '<em><b>Price</b></em>' attribute
+		 * feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * 
+		 * @generated
+		 */
+		EAttribute BOOK__PRICE = eINSTANCE.getBook_Price();
+
+		/**
+		 * The meta object literal for the '<em><b>Year</b></em>' attribute
+		 * feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+		 * 
+		 * @generated
+		 */
+		EAttribute BOOK__YEAR = eINSTANCE.getBook_Year();
+
+	}
+
+} // BooksPackage
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/Bookstore.java b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/Bookstore.java
new file mode 100644
index 0000000..8698383
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/Bookstore.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf.test.books;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>Bookstore</b></em>'. <!-- end-user-doc -->
+ * 
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.xwt.emf.test.books.Bookstore#getBooks <em>Books
+ * </em>}</li>
+ * </ul>
+ * </p>
+ * 
+ * @see org.eclipse.xwt.emf.test.books.BooksPackage#getBookstore()
+ * @model
+ * @generated
+ */
+public interface Bookstore extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Books</b></em>' containment reference
+	 * list. The list nameMap are of type
+	 * {@link org.eclipse.xwt.emf.test.books.Book}. <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Books</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>Books</em>' containment reference list.
+	 * @see org.eclipse.xwt.emf.test.books.BooksPackage#getBookstore_Books()
+	 * @model containment="true" required="true"
+	 * @generated
+	 */
+	EList<Book> getBooks();
+
+} // Bookstore
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/Title.java b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/Title.java
new file mode 100644
index 0000000..a48a85f
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/Title.java
@@ -0,0 +1,92 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf.test.books;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>Title</b></em>'. <!-- end-user-doc -->
+ * 
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.xwt.emf.test.books.Title#getLan <em>Lan</em>}</li>
+ * <li>{@link org.eclipse.xwt.emf.test.books.Title#getText <em>Text</em>}</li>
+ * </ul>
+ * </p>
+ * 
+ * @see org.eclipse.xwt.emf.test.books.BooksPackage#getTitle()
+ * @model
+ * @generated
+ */
+public interface Title extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Lan</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Lan</em>' attribute isn't clear, there really
+	 * should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Lan</em>' attribute.
+	 * @see #setLan(String)
+	 * @see org.eclipse.xwt.emf.test.books.BooksPackage#getTitle_Lan()
+	 * @model
+	 * @generated
+	 */
+	String getLan();
+
+	/**
+	 * Sets the value of the '
+	 * {@link org.eclipse.xwt.emf.test.books.Title#getLan <em>Lan</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Lan</em>' attribute.
+	 * @see #getLan()
+	 * @generated
+	 */
+	void setLan(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Text</b></em>' attribute. <!--
+	 * begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Text</em>' attribute isn't clear, there really
+	 * should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * 
+	 * @return the value of the '<em>Text</em>' attribute.
+	 * @see #setText(String)
+	 * @see org.eclipse.xwt.emf.test.books.BooksPackage#getTitle_Text()
+	 * @model
+	 * @generated
+	 */
+	String getText();
+
+	/**
+	 * Sets the value of the '
+	 * {@link org.eclipse.xwt.emf.test.books.Title#getText <em>Text</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @param value
+	 *            the new value of the '<em>Text</em>' attribute.
+	 * @see #getText()
+	 * @generated
+	 */
+	void setText(String value);
+
+} // Title
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/BookImpl.java b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/BookImpl.java
new file mode 100644
index 0000000..793ec75
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/BookImpl.java
@@ -0,0 +1,379 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf.test.books.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.EObjectImpl;
+import org.eclipse.xwt.emf.test.books.Book;
+import org.eclipse.xwt.emf.test.books.BooksPackage;
+import org.eclipse.xwt.emf.test.books.Title;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>Book</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.xwt.emf.test.books.impl.BookImpl#getAuthor <em>
+ * Author</em>}</li>
+ * <li>{@link org.eclipse.xwt.emf.test.books.impl.BookImpl#getPrice <em>Price
+ * </em>}</li>
+ * <li>{@link org.eclipse.xwt.emf.test.books.impl.BookImpl#getYear <em>Year
+ * </em>}</li>
+ * <li>{@link org.eclipse.xwt.emf.test.books.impl.BookImpl#getTitle <em>Title
+ * </em>}</li>
+ * </ul>
+ * </p>
+ * 
+ * @generated
+ */
+public class BookImpl extends EObjectImpl implements Book {
+	/**
+	 * The default value of the '{@link #getAuthor() <em>Author</em>}'
+	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getAuthor()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String AUTHOR_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getAuthor() <em>Author</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getAuthor()
+	 * @generated
+	 * @ordered
+	 */
+	protected String author = AUTHOR_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getPrice() <em>Price</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getPrice()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double PRICE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getPrice() <em>Price</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getPrice()
+	 * @generated
+	 * @ordered
+	 */
+	protected double price = PRICE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getYear() <em>Year</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getYear()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final long YEAR_EDEFAULT = 0L;
+
+	/**
+	 * The cached value of the '{@link #getYear() <em>Year</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getYear()
+	 * @generated
+	 * @ordered
+	 */
+	protected long year = YEAR_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getTitle() <em>Title</em>}' containment
+	 * reference. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getTitle()
+	 * @generated
+	 * @ordered
+	 */
+	protected Title title;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected BookImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BooksPackage.Literals.BOOK;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public Title getTitle() {
+		return title;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public NotificationChain basicSetTitle(Title newTitle,
+			NotificationChain msgs) {
+		Title oldTitle = title;
+		title = newTitle;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this,
+					Notification.SET, BooksPackage.BOOK__TITLE, oldTitle,
+					newTitle);
+			if (msgs == null)
+				msgs = notification;
+			else
+				msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setTitle(Title newTitle) {
+		if (newTitle != title) {
+			NotificationChain msgs = null;
+			if (title != null)
+				msgs = ((InternalEObject) title).eInverseRemove(this,
+						EOPPOSITE_FEATURE_BASE - BooksPackage.BOOK__TITLE,
+						null, msgs);
+			if (newTitle != null)
+				msgs = ((InternalEObject) newTitle).eInverseAdd(this,
+						EOPPOSITE_FEATURE_BASE - BooksPackage.BOOK__TITLE,
+						null, msgs);
+			msgs = basicSetTitle(newTitle, msgs);
+			if (msgs != null)
+				msgs.dispatch();
+		} else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					BooksPackage.BOOK__TITLE, newTitle, newTitle));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+		case BooksPackage.BOOK__TITLE:
+			return basicSetTitle(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public String getAuthor() {
+		return author;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setAuthor(String newAuthor) {
+		String oldAuthor = author;
+		author = newAuthor;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					BooksPackage.BOOK__AUTHOR, oldAuthor, author));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public double getPrice() {
+		return price;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setPrice(double newPrice) {
+		double oldPrice = price;
+		price = newPrice;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					BooksPackage.BOOK__PRICE, oldPrice, price));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public long getYear() {
+		return year;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setYear(long newYear) {
+		long oldYear = year;
+		year = newYear;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					BooksPackage.BOOK__YEAR, oldYear, year));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case BooksPackage.BOOK__AUTHOR:
+			return getAuthor();
+		case BooksPackage.BOOK__PRICE:
+			return new Double(getPrice());
+		case BooksPackage.BOOK__YEAR:
+			return new Long(getYear());
+		case BooksPackage.BOOK__TITLE:
+			return getTitle();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case BooksPackage.BOOK__AUTHOR:
+			setAuthor((String) newValue);
+			return;
+		case BooksPackage.BOOK__PRICE:
+			setPrice(((Double) newValue).doubleValue());
+			return;
+		case BooksPackage.BOOK__YEAR:
+			setYear(((Long) newValue).longValue());
+			return;
+		case BooksPackage.BOOK__TITLE:
+			setTitle((Title) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case BooksPackage.BOOK__AUTHOR:
+			setAuthor(AUTHOR_EDEFAULT);
+			return;
+		case BooksPackage.BOOK__PRICE:
+			setPrice(PRICE_EDEFAULT);
+			return;
+		case BooksPackage.BOOK__YEAR:
+			setYear(YEAR_EDEFAULT);
+			return;
+		case BooksPackage.BOOK__TITLE:
+			setTitle((Title) null);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case BooksPackage.BOOK__AUTHOR:
+			return AUTHOR_EDEFAULT == null ? author != null : !AUTHOR_EDEFAULT
+					.equals(author);
+		case BooksPackage.BOOK__PRICE:
+			return price != PRICE_EDEFAULT;
+		case BooksPackage.BOOK__YEAR:
+			return year != YEAR_EDEFAULT;
+		case BooksPackage.BOOK__TITLE:
+			return title != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy())
+			return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (author: ");
+		result.append(author);
+		result.append(", price: ");
+		result.append(price);
+		result.append(", year: ");
+		result.append(year);
+		result.append(')');
+		return result.toString();
+	}
+
+} // BookImpl
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/BooksFactoryImpl.java b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/BooksFactoryImpl.java
new file mode 100644
index 0000000..4301b0f
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/BooksFactoryImpl.java
@@ -0,0 +1,132 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf.test.books.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.xwt.emf.test.books.Book;
+import org.eclipse.xwt.emf.test.books.BooksFactory;
+import org.eclipse.xwt.emf.test.books.BooksPackage;
+import org.eclipse.xwt.emf.test.books.Bookstore;
+import org.eclipse.xwt.emf.test.books.Title;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model <b>Factory</b>. <!--
+ * end-user-doc -->
+ * 
+ * @generated
+ */
+public class BooksFactoryImpl extends EFactoryImpl implements BooksFactory {
+	/**
+	 * Creates the default factory implementation. <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public static BooksFactory init() {
+		try {
+			BooksFactory theBooksFactory = (BooksFactory) EPackage.Registry.INSTANCE
+					.getEFactory("org.eclipse.xwt.emf/books.ecore");
+			if (theBooksFactory != null) {
+				return theBooksFactory;
+			}
+		} catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new BooksFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory. <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public BooksFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+		case BooksPackage.BOOKSTORE:
+			return createBookstore();
+		case BooksPackage.BOOK:
+			return createBook();
+		case BooksPackage.TITLE:
+			return createTitle();
+		default:
+			throw new IllegalArgumentException("The class '" + eClass.getName()
+					+ "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public Bookstore createBookstore() {
+		BookstoreImpl bookstore = new BookstoreImpl();
+		return bookstore;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public Book createBook() {
+		BookImpl book = new BookImpl();
+		return book;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public Title createTitle() {
+		TitleImpl title = new TitleImpl();
+		return title;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public BooksPackage getBooksPackage() {
+		return (BooksPackage) getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static BooksPackage getPackage() {
+		return BooksPackage.eINSTANCE;
+	}
+
+} // BooksFactoryImpl
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/BooksPackageImpl.java b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/BooksPackageImpl.java
new file mode 100644
index 0000000..04bf5b8
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/BooksPackageImpl.java
@@ -0,0 +1,329 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf.test.books.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.xwt.emf.test.books.Book;
+import org.eclipse.xwt.emf.test.books.BooksFactory;
+import org.eclipse.xwt.emf.test.books.BooksPackage;
+import org.eclipse.xwt.emf.test.books.Bookstore;
+import org.eclipse.xwt.emf.test.books.Title;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model <b>Package</b>. <!--
+ * end-user-doc -->
+ * 
+ * @generated
+ */
+public class BooksPackageImpl extends EPackageImpl implements BooksPackage {
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private EClass bookstoreEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private EClass bookEClass = null;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private EClass titleEClass = 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.xwt.emf.test.books.BooksPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private BooksPackageImpl() {
+		super(eNS_URI, BooksFactory.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. Simple dependencies are
+	 * satisfied by calling this method on all dependent packages before doing
+	 * anything else. This method drives initialization for interdependent
+	 * packages directly, in parallel with this package, itself.
+	 * <p>
+	 * Of this package and its interdependencies, all packages which have not
+	 * yet been registered by their URI values are first created and registered.
+	 * The packages are then initialized in two steps: meta-model objects for
+	 * all of the packages are created before any are initialized, since one
+	 * package's meta-model objects may refer to those of another.
+	 * <p>
+	 * Invocation of this method will not affect any packages that have already
+	 * been initialized. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static BooksPackage init() {
+		if (isInited)
+			return (BooksPackage) EPackage.Registry.INSTANCE
+					.getEPackage(BooksPackage.eNS_URI);
+
+		// Obtain or create and register package
+		BooksPackageImpl theBooksPackage = (BooksPackageImpl) (EPackage.Registry.INSTANCE
+				.getEPackage(eNS_URI) instanceof BooksPackageImpl ? EPackage.Registry.INSTANCE
+				.getEPackage(eNS_URI)
+				: new BooksPackageImpl());
+
+		isInited = true;
+
+		// Create package meta-data objects
+		theBooksPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theBooksPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theBooksPackage.freeze();
+
+		return theBooksPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EClass getBookstore() {
+		return bookstoreEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EReference getBookstore_Books() {
+		return (EReference) bookstoreEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EClass getBook() {
+		return bookEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EReference getBook_Title() {
+		return (EReference) bookEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EClass getTitle() {
+		return titleEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EAttribute getTitle_Lan() {
+		return (EAttribute) titleEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EAttribute getTitle_Text() {
+		return (EAttribute) titleEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EAttribute getBook_Author() {
+		return (EAttribute) bookEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EAttribute getBook_Price() {
+		return (EAttribute) bookEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EAttribute getBook_Year() {
+		return (EAttribute) bookEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public BooksFactory getBooksFactory() {
+		return (BooksFactory) getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package. This method is guarded to
+	 * have no affect on any invocation but its first. <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated)
+			return;
+		isCreated = true;
+
+		// Create classes and their features
+		bookstoreEClass = createEClass(BOOKSTORE);
+		createEReference(bookstoreEClass, BOOKSTORE__BOOKS);
+
+		bookEClass = createEClass(BOOK);
+		createEAttribute(bookEClass, BOOK__AUTHOR);
+		createEAttribute(bookEClass, BOOK__PRICE);
+		createEAttribute(bookEClass, BOOK__YEAR);
+		createEReference(bookEClass, BOOK__TITLE);
+
+		titleEClass = createEClass(TITLE);
+		createEAttribute(titleEClass, TITLE__LAN);
+		createEAttribute(titleEClass, TITLE__TEXT);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model. This
+	 * method is guarded to have no affect on any invocation but its first. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized)
+			return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(bookstoreEClass, Bookstore.class, "Bookstore", !IS_ABSTRACT,
+				!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getBookstore_Books(), this.getBook(), null, "books",
+				null, 1, -1, Bookstore.class, !IS_TRANSIENT, !IS_VOLATILE,
+				IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+				!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(bookEClass, Book.class, "Book", !IS_ABSTRACT, !IS_INTERFACE,
+				IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getBook_Author(), ecorePackage.getEString(), "author",
+				null, 0, 1, Book.class, !IS_TRANSIENT, !IS_VOLATILE,
+				IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
+				IS_ORDERED);
+		initEAttribute(getBook_Price(), ecorePackage.getEDouble(), "price",
+				null, 0, 1, Book.class, !IS_TRANSIENT, !IS_VOLATILE,
+				IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
+				IS_ORDERED);
+		initEAttribute(getBook_Year(), ecorePackage.getELong(), "year", null,
+				0, 1, Book.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+				!IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getBook_Title(), this.getTitle(), null, "title", null,
+				0, 1, Book.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+				IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
+				!IS_DERIVED, IS_ORDERED);
+
+		initEClass(titleEClass, Title.class, "Title", !IS_ABSTRACT,
+				!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getTitle_Lan(), ecorePackage.getEString(), "lan", null,
+				0, 1, Title.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+				!IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getTitle_Text(), ecorePackage.getEString(), "text",
+				null, 0, 1, Title.class, !IS_TRANSIENT, !IS_VOLATILE,
+				IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
+				IS_ORDERED);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} // BooksPackageImpl
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/BookstoreImpl.java b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/BookstoreImpl.java
new file mode 100644
index 0000000..c027679
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/BookstoreImpl.java
@@ -0,0 +1,159 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf.test.books.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.xwt.emf.test.books.Book;
+import org.eclipse.xwt.emf.test.books.BooksPackage;
+import org.eclipse.xwt.emf.test.books.Bookstore;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>Bookstore</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.xwt.emf.test.books.impl.BookstoreImpl#getBooks <em>
+ * Books</em>}</li>
+ * </ul>
+ * </p>
+ * 
+ * @generated
+ */
+public class BookstoreImpl extends EObjectImpl implements Bookstore {
+	/**
+	 * The cached value of the '{@link #getBooks() <em>Books</em>}' containment
+	 * reference list. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getBooks()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Book> books;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected BookstoreImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BooksPackage.Literals.BOOKSTORE;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public EList<Book> getBooks() {
+		if (books == null) {
+			books = new EObjectContainmentEList<Book>(Book.class, this,
+					BooksPackage.BOOKSTORE__BOOKS);
+		}
+		return books;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd,
+			int featureID, NotificationChain msgs) {
+		switch (featureID) {
+		case BooksPackage.BOOKSTORE__BOOKS:
+			return ((InternalEList<?>) getBooks()).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 BooksPackage.BOOKSTORE__BOOKS:
+			return getBooks();
+		}
+		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 BooksPackage.BOOKSTORE__BOOKS:
+			getBooks().clear();
+			getBooks().addAll((Collection<? extends Book>) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case BooksPackage.BOOKSTORE__BOOKS:
+			getBooks().clear();
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case BooksPackage.BOOKSTORE__BOOKS:
+			return books != null && !books.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} // BookstoreImpl
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/TitleImpl.java b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/TitleImpl.java
new file mode 100644
index 0000000..f9174d2
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/impl/TitleImpl.java
@@ -0,0 +1,230 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf.test.books.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.xwt.emf.test.books.BooksPackage;
+import org.eclipse.xwt.emf.test.books.Title;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>Title</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.xwt.emf.test.books.impl.TitleImpl#getLan <em>Lan
+ * </em>}</li>
+ * <li>{@link org.eclipse.xwt.emf.test.books.impl.TitleImpl#getText <em>Text
+ * </em>}</li>
+ * </ul>
+ * </p>
+ * 
+ * @generated
+ */
+public class TitleImpl extends EObjectImpl implements Title {
+	/**
+	 * The default value of the '{@link #getLan() <em>Lan</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getLan()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String LAN_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLan() <em>Lan</em>}' attribute. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getLan()
+	 * @generated
+	 * @ordered
+	 */
+	protected String lan = LAN_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getText() <em>Text</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getText()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TEXT_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getText() <em>Text</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getText()
+	 * @generated
+	 * @ordered
+	 */
+	protected String text = TEXT_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected TitleImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BooksPackage.Literals.TITLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public String getLan() {
+		return lan;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setLan(String newLan) {
+		String oldLan = lan;
+		lan = newLan;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					BooksPackage.TITLE__LAN, oldLan, lan));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public String getText() {
+		return text;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setText(String newText) {
+		String oldText = text;
+		text = newText;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					BooksPackage.TITLE__TEXT, oldText, text));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case BooksPackage.TITLE__LAN:
+			return getLan();
+		case BooksPackage.TITLE__TEXT:
+			return getText();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case BooksPackage.TITLE__LAN:
+			setLan((String) newValue);
+			return;
+		case BooksPackage.TITLE__TEXT:
+			setText((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case BooksPackage.TITLE__LAN:
+			setLan(LAN_EDEFAULT);
+			return;
+		case BooksPackage.TITLE__TEXT:
+			setText(TEXT_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case BooksPackage.TITLE__LAN:
+			return LAN_EDEFAULT == null ? lan != null : !LAN_EDEFAULT
+					.equals(lan);
+		case BooksPackage.TITLE__TEXT:
+			return TEXT_EDEFAULT == null ? text != null : !TEXT_EDEFAULT
+					.equals(text);
+		}
+		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(" (lan: ");
+		result.append(lan);
+		result.append(", text: ");
+		result.append(text);
+		result.append(')');
+		return result.toString();
+	}
+
+} // TitleImpl
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/util/BooksAdapterFactory.java b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/util/BooksAdapterFactory.java
new file mode 100644
index 0000000..17a8caa
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/util/BooksAdapterFactory.java
@@ -0,0 +1,170 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf.test.books.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.xwt.emf.test.books.Book;
+import org.eclipse.xwt.emf.test.books.BooksPackage;
+import org.eclipse.xwt.emf.test.books.Bookstore;
+import org.eclipse.xwt.emf.test.books.Title;
+
+/**
+ * <!-- 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.xwt.emf.test.books.BooksPackage
+ * @generated
+ */
+public class BooksAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected static BooksPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory. <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public BooksAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = BooksPackage.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 BooksSwitch<Adapter> modelSwitch = new BooksSwitch<Adapter>() {
+		@Override
+		public Adapter caseBookstore(Bookstore object) {
+			return createBookstoreAdapter();
+		}
+
+		@Override
+		public Adapter caseBook(Book object) {
+			return createBookAdapter();
+		}
+
+		@Override
+		public Adapter caseTitle(Title object) {
+			return createTitleAdapter();
+		}
+
+		@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.xwt.emf.test.books.Bookstore <em>Bookstore</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.xwt.emf.test.books.Bookstore
+	 * @generated
+	 */
+	public Adapter createBookstoreAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '
+	 * {@link org.eclipse.xwt.emf.test.books.Book <em>Book</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.xwt.emf.test.books.Book
+	 * @generated
+	 */
+	public Adapter createBookAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '
+	 * {@link org.eclipse.xwt.emf.test.books.Title <em>Title</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.xwt.emf.test.books.Title
+	 * @generated
+	 */
+	public Adapter createTitleAdapter() {
+		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;
+	}
+
+} // BooksAdapterFactory
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/util/BooksSwitch.java b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/util/BooksSwitch.java
new file mode 100644
index 0000000..af4d062
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/books/util/BooksSwitch.java
@@ -0,0 +1,192 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf.test.books.util;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xwt.emf.test.books.Book;
+import org.eclipse.xwt.emf.test.books.BooksPackage;
+import org.eclipse.xwt.emf.test.books.Bookstore;
+import org.eclipse.xwt.emf.test.books.Title;
+
+/**
+ * <!-- 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.xwt.emf.test.books.BooksPackage
+ * @generated
+ */
+public class BooksSwitch<T> {
+	/**
+	 * The cached model package <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected static BooksPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch. <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public BooksSwitch() {
+		if (modelPackage == null) {
+			modelPackage = BooksPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * 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
+	 */
+	public T doSwitch(EObject theEObject) {
+		return doSwitch(theEObject.eClass(), theEObject);
+	}
+
+	/**
+	 * 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
+	 */
+	protected T doSwitch(EClass theEClass, EObject theEObject) {
+		if (theEClass.eContainer() == modelPackage) {
+			return doSwitch(theEClass.getClassifierID(), theEObject);
+		} else {
+			List<EClass> eSuperTypes = theEClass.getESuperTypes();
+			return eSuperTypes.isEmpty() ? defaultCase(theEObject) : doSwitch(
+					eSuperTypes.get(0), theEObject);
+		}
+	}
+
+	/**
+	 * 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
+	 */
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+		case BooksPackage.BOOKSTORE: {
+			Bookstore bookstore = (Bookstore) theEObject;
+			T result = caseBookstore(bookstore);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case BooksPackage.BOOK: {
+			Book book = (Book) theEObject;
+			T result = caseBook(book);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		case BooksPackage.TITLE: {
+			Title title = (Title) theEObject;
+			T result = caseTitle(title);
+			if (result == null)
+				result = defaultCase(theEObject);
+			return result;
+		}
+		default:
+			return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '
+	 * <em>Bookstore</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>Bookstore</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseBookstore(Bookstore object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '
+	 * <em>Book</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>Book</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseBook(Book object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '
+	 * <em>Title</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>Title</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTitle(Title 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
+	 */
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} // BooksSwitch
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/masterdetail/EMFDataProvider_MasterDetail.java b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/masterdetail/EMFDataProvider_MasterDetail.java
new file mode 100644
index 0000000..3e8492e
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/masterdetail/EMFDataProvider_MasterDetail.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Eclipse XWT Project and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Erdal Karaca - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf.test.masterdetail;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.emf.EMFBinding;
+import org.eclipse.xwt.emf.test.books.Book;
+import org.eclipse.xwt.emf.test.books.BooksFactory;
+import org.eclipse.xwt.emf.test.books.Bookstore;
+import org.eclipse.xwt.emf.test.books.Title;
+
+public class EMFDataProvider_MasterDetail {
+	public static void main(String[] args) {
+		EMFBinding.initialze();
+		URL url = EMFDataProvider_MasterDetail.class
+				.getResource(EMFDataProvider_MasterDetail.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url, createBookstore());
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	private static Bookstore createBookstore() {
+		Bookstore bookstore = BooksFactory.eINSTANCE.createBookstore();
+
+		for (int i = 0; i < 10; i++) {
+			Book book = BooksFactory.eINSTANCE.createBook();
+			Title title = BooksFactory.eINSTANCE.createTitle();
+			title.setText("Book " + i);
+			book.setTitle(title);
+			book.setPrice(Math.random() * 100);
+			book.setAuthor("Author " + i);
+			bookstore.getBooks().add(book);
+		}
+
+		return bookstore;
+	}
+}
diff --git a/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/masterdetail/EMFDataProvider_MasterDetail.xwt b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/masterdetail/EMFDataProvider_MasterDetail.xwt
similarity index 100%
rename from org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/masterdetail/EMFDataProvider_MasterDetail.xwt
rename to tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/masterdetail/EMFDataProvider_MasterDetail.xwt
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/Author.java b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/Author.java
new file mode 100644
index 0000000..e8b6e5c
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/Author.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf.test.modelmix;
+
+import org.eclipse.emf.ecore.EObject;
+
+public class Author {
+	private String name;
+	private EObject content;
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public EObject getContent() {
+		return content;
+	}
+
+	public void setContent(EObject content) {
+		this.content = content;
+	}
+}
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/EMFTestCase.java b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/EMFTestCase.java
new file mode 100644
index 0000000..f61f7a0
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/EMFTestCase.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf.test.modelmix;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.emf.test.XWTTestCase;
+
+public class EMFTestCase extends XWTTestCase {
+	public void testEMFDataProvider_DataContext() {
+		URL url = EMFTestCase.class
+				.getResource(POJO_EMF_DataContext.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, POJO_EMF_DataContext.createAuthor(), null,
+				new Runnable() {
+					public void run() {
+						assertText("titleText", "Harry Potter");
+						assertText("authorText", "Neal Stephenson");
+					}
+				});
+	}
+
+	public void testEMFDataProvider_Path() {
+		URL url = EMFTestCase.class
+				.getResource(POJO_EMF_Path.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, POJO_EMF_Path.createAuthor(), null,
+				new Runnable() {
+					public void run() {
+						assertText("titleText", "Harry Potter");
+						assertText("authorText", "Neal Stephenson");
+					}
+				});
+	}
+}
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/POJO_EMF_DataContext.java b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/POJO_EMF_DataContext.java
new file mode 100644
index 0000000..8c4e56a
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/POJO_EMF_DataContext.java
@@ -0,0 +1,128 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf.test.modelmix;
+
+import java.net.URL;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.emf.EMFBinding;
+import org.eclipse.xwt.emf.EMFDataModelService;
+import org.eclipse.xwt.emf.EMFDataProvider;
+import org.eclipse.xwt.emf.EMFDataProviderFactory;
+
+/**
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class POJO_EMF_DataContext {
+	static EClass bookClass;
+	
+	public static void main(String[] args) {
+		EMFBinding.initialze();
+		XWT.addDataProviderFactory(EMFDataProviderFactory.EMF_DATA_PROVIDER_FACTORY, new EMFDataProviderFactory() {
+			@Override
+			protected EMFDataProvider createEMFDataProvider() {
+				return new EMFDataProvider(new EMFDataModelService() {
+					@Override
+					public Object loadModelType(String className) {
+						if (className.equals("Book")) {
+							return bookClass;
+						}
+						return super.loadModelType(className);
+					}
+				});
+			}
+		});
+		
+		URL url = POJO_EMF_DataContext.class
+				.getResource(POJO_EMF_DataContext.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url, createAuthor());
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected static Author createAuthor() {
+		Author author = new Author();
+		author.setContent(createBook());
+		author.setName("Author");
+		return author;
+	}
+		
+	protected static EObject createBook() {
+		EPackage ePackage = EcoreFactory.eINSTANCE.createEPackage();
+		ePackage.setName("test");
+
+		bookClass = EcoreFactory.eINSTANCE.createEClass();
+		ePackage.getEClassifiers().add(bookClass);
+		bookClass.setName("Book");
+
+		EAttribute authorFeature = EcoreFactory.eINSTANCE.createEAttribute();
+		authorFeature.setName("author");
+		authorFeature.setEType(EcorePackage.eINSTANCE.getEString());
+		bookClass.getEStructuralFeatures().add(authorFeature);
+
+		EAttribute priceFeature = EcoreFactory.eINSTANCE.createEAttribute();
+		priceFeature.setName("price");
+		priceFeature.setEType(EcorePackage.eINSTANCE.getEDouble());
+		bookClass.getEStructuralFeatures().add(priceFeature);
+
+		EAttribute yearFeature = EcoreFactory.eINSTANCE.createEAttribute();
+		yearFeature.setName("year");
+		yearFeature.setEType(EcorePackage.eINSTANCE.getEInt());
+		bookClass.getEStructuralFeatures().add(yearFeature);
+
+		EClass titleClass = EcoreFactory.eINSTANCE.createEClass();
+		ePackage.getEClassifiers().add(titleClass);
+		titleClass.setName("Title");
+
+		EAttribute lanFeature = EcoreFactory.eINSTANCE.createEAttribute();
+		lanFeature.setName("lan");
+		lanFeature.setEType(EcorePackage.eINSTANCE.getEString());
+		titleClass.getEStructuralFeatures().add(lanFeature);
+
+		EAttribute textFeature = EcoreFactory.eINSTANCE.createEAttribute();
+		textFeature.setName("text");
+		textFeature.setEType(EcorePackage.eINSTANCE.getEString());
+		titleClass.getEStructuralFeatures().add(textFeature);
+
+		EReference titleFeature = EcoreFactory.eINSTANCE.createEReference();
+		titleFeature.setName("title");
+		titleFeature.setEType(titleClass);
+		bookClass.getEStructuralFeatures().add(titleFeature);
+
+		EObject harryPotter = EcoreUtil.create(bookClass);
+
+		EObject title = EcoreUtil.create(titleClass);
+
+		title.eSet(lanFeature, "en");
+		title.eSet(textFeature, "Harry Potter");
+		harryPotter.eSet(titleFeature, title);
+		harryPotter.eSet(authorFeature, "Neal Stephenson");
+		harryPotter.eSet(priceFeature, 29.99);
+		harryPotter.eSet(yearFeature, 2005);
+
+		return harryPotter;
+	}
+}
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/POJO_EMF_DataContext.xwt b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/POJO_EMF_DataContext.xwt
new file mode 100644
index 0000000..d1246c3
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/POJO_EMF_DataContext.xwt
@@ -0,0 +1,40 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.emf.test.books"
+	Size="400, 300">
+	<Composite.layout>
+		<FillLayout/>
+	</Composite.layout>
+    <Composite dataContext="{Binding path=content}">
+		<Composite.layout>
+			<GridLayout numColumns="3"/>
+		</Composite.layout>
+		
+		<Label text="Name:"/>
+		<Text name="titleText" x:style="BORDER" text="{Binding Path=title.text}">
+			<Text.layoutData>
+				<GridData horizontalAlignment="FILL"
+	         		grabExcessHorizontalSpace="true"/>
+			</Text.layoutData>
+		</Text>
+		<Text name="authorText" x:style="BORDER" text="{Binding Path=author}">
+			<Text.layoutData>
+				<GridData horizontalAlignment="FILL"
+	         		grabExcessHorizontalSpace="true"/>
+			</Text.layoutData>
+		</Text>
+		<Label text="Copy:"/>
+		<Text x:style="BORDER"  text="{Binding Path=title.text}">
+			<Text.layoutData>
+				<GridData horizontalAlignment="FILL"
+	         		grabExcessHorizontalSpace="true"/>
+			</Text.layoutData>
+		</Text>
+		<Text x:style="BORDER" text="{Binding Path=author}">
+			<Text.layoutData>
+				<GridData horizontalAlignment="FILL"
+	         		grabExcessHorizontalSpace="true"/>
+			</Text.layoutData>
+		</Text>
+   </Composite>
+</Composite>
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/POJO_EMF_Path.java b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/POJO_EMF_Path.java
new file mode 100644
index 0000000..42e065a
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/POJO_EMF_Path.java
@@ -0,0 +1,130 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.emf.test.modelmix;
+
+import java.net.URL;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.emf.EMFBinding;
+import org.eclipse.xwt.emf.EMFDataModelService;
+import org.eclipse.xwt.emf.EMFDataProvider;
+import org.eclipse.xwt.emf.EMFDataProviderFactory;
+
+/**
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class POJO_EMF_Path {
+	static EClass bookClass;
+	
+	static {
+		EMFBinding.initialze();
+		XWT.addDataProviderFactory(EMFDataProviderFactory.EMF_DATA_PROVIDER_FACTORY, new EMFDataProviderFactory() {
+			@Override
+			protected EMFDataProvider createEMFDataProvider() {
+				return new EMFDataProvider(new EMFDataModelService() {
+					@Override
+					public Object loadModelType(String className) {
+						if (className.equals("Book")) {
+							return bookClass;
+						}
+						return super.loadModelType(className);
+					}
+				});
+			}
+		});
+	}
+
+	public static void main(String[] args) {
+		URL url = POJO_EMF_Path.class
+				.getResource(POJO_EMF_Path.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url, createAuthor());
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected static Author createAuthor() {
+		Author author = new Author();
+		author.setContent(createBook());
+		author.setName("Author");
+		return author;
+	}
+		
+	protected static EObject createBook() {
+		EPackage ePackage = EcoreFactory.eINSTANCE.createEPackage();
+		ePackage.setName("test");
+
+		bookClass = EcoreFactory.eINSTANCE.createEClass();
+		ePackage.getEClassifiers().add(bookClass);
+		bookClass.setName("Book");
+
+		EAttribute authorFeature = EcoreFactory.eINSTANCE.createEAttribute();
+		authorFeature.setName("author");
+		authorFeature.setEType(EcorePackage.eINSTANCE.getEString());
+		bookClass.getEStructuralFeatures().add(authorFeature);
+
+		EAttribute priceFeature = EcoreFactory.eINSTANCE.createEAttribute();
+		priceFeature.setName("price");
+		priceFeature.setEType(EcorePackage.eINSTANCE.getEDouble());
+		bookClass.getEStructuralFeatures().add(priceFeature);
+
+		EAttribute yearFeature = EcoreFactory.eINSTANCE.createEAttribute();
+		yearFeature.setName("year");
+		yearFeature.setEType(EcorePackage.eINSTANCE.getEInt());
+		bookClass.getEStructuralFeatures().add(yearFeature);
+
+		EClass titleClass = EcoreFactory.eINSTANCE.createEClass();
+		ePackage.getEClassifiers().add(titleClass);
+		titleClass.setName("Title");
+
+		EAttribute lanFeature = EcoreFactory.eINSTANCE.createEAttribute();
+		lanFeature.setName("lan");
+		lanFeature.setEType(EcorePackage.eINSTANCE.getEString());
+		titleClass.getEStructuralFeatures().add(lanFeature);
+
+		EAttribute textFeature = EcoreFactory.eINSTANCE.createEAttribute();
+		textFeature.setName("text");
+		textFeature.setEType(EcorePackage.eINSTANCE.getEString());
+		titleClass.getEStructuralFeatures().add(textFeature);
+
+		EReference titleFeature = EcoreFactory.eINSTANCE.createEReference();
+		titleFeature.setName("title");
+		titleFeature.setEType(titleClass);
+		bookClass.getEStructuralFeatures().add(titleFeature);
+
+		EObject harryPotter = EcoreUtil.create(bookClass);
+
+		EObject title = EcoreUtil.create(titleClass);
+
+		title.eSet(lanFeature, "en");
+		title.eSet(textFeature, "Harry Potter");
+		harryPotter.eSet(titleFeature, title);
+		harryPotter.eSet(authorFeature, "Neal Stephenson");
+		harryPotter.eSet(priceFeature, 29.99);
+		harryPotter.eSet(yearFeature, 2005);
+
+		return harryPotter;
+	}
+}
diff --git a/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/POJO_EMF_Path.xwt b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/POJO_EMF_Path.xwt
new file mode 100644
index 0000000..4948bde
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/src/org/eclipse/xwt/emf/test/modelmix/POJO_EMF_Path.xwt
@@ -0,0 +1,40 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.emf.test.books"
+	Size="400, 300">
+	<Composite.layout>
+		<FillLayout/>
+	</Composite.layout>
+    <Composite>
+		<Composite.layout>
+			<GridLayout numColumns="3"/>
+		</Composite.layout>
+		
+		<Label text="Name:"/>
+		<Text name="titleText" x:style="BORDER" text="{Binding Path=content.(Book.title).text}">
+			<Text.layoutData>
+				<GridData horizontalAlignment="FILL"
+	         		grabExcessHorizontalSpace="true"/>
+			</Text.layoutData>
+		</Text>
+		<Text name="authorText" x:style="BORDER" text="{Binding Path=content.(Book.author)}">
+			<Text.layoutData>
+				<GridData horizontalAlignment="FILL"
+	         		grabExcessHorizontalSpace="true"/>
+			</Text.layoutData>
+		</Text>
+		<Label text="Copy:"/>
+		<Text x:style="BORDER"  text="{Binding Path=content.(Book.title).text}">
+			<Text.layoutData>
+				<GridData horizontalAlignment="FILL"
+	         		grabExcessHorizontalSpace="true"/>
+			</Text.layoutData>
+		</Text>
+		<Text x:style="BORDER" text="{Binding Path=content.(Book.author)}">
+			<Text.layoutData>
+				<GridData horizontalAlignment="FILL"
+	         		grabExcessHorizontalSpace="true"/>
+			</Text.layoutData>
+		</Text>
+   </Composite>
+</Composite>
diff --git a/tests/org.eclipse.xwt.emf.test/test.xml b/tests/org.eclipse.xwt.emf.test/test.xml
new file mode 100644
index 0000000..211ebdc
--- /dev/null
+++ b/tests/org.eclipse.xwt.emf.test/test.xml
Binary files differ
diff --git a/tests/org.eclipse.xwt.snippets.tests/.classpath b/tests/org.eclipse.xwt.snippets.tests/.classpath
new file mode 100644
index 0000000..ad32c83
--- /dev/null
+++ b/tests/org.eclipse.xwt.snippets.tests/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.xwt.snippets.tests/.gitignore b/tests/org.eclipse.xwt.snippets.tests/.gitignore
similarity index 100%
rename from org.eclipse.xwt.snippets.tests/.gitignore
rename to tests/org.eclipse.xwt.snippets.tests/.gitignore
diff --git a/tests/org.eclipse.xwt.snippets.tests/.project b/tests/org.eclipse.xwt.snippets.tests/.project
new file mode 100644
index 0000000..1209f2b
--- /dev/null
+++ b/tests/org.eclipse.xwt.snippets.tests/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.xwt.snippets.tests</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.xwt.snippets.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.xwt.snippets.tests/META-INF/MANIFEST.MF
similarity index 100%
rename from org.eclipse.xwt.snippets.tests/META-INF/MANIFEST.MF
rename to tests/org.eclipse.xwt.snippets.tests/META-INF/MANIFEST.MF
diff --git a/tests/org.eclipse.xwt.snippets.tests/XWTSnippetsBasedTestSuite.launch b/tests/org.eclipse.xwt.snippets.tests/XWTSnippetsBasedTestSuite.launch
new file mode 100644
index 0000000..2e4abfd
--- /dev/null
+++ b/tests/org.eclipse.xwt.snippets.tests/XWTSnippetsBasedTestSuite.launch
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="false"/>
+<stringAttribute key="deselected_workspace_plugins" value="org.eclipse.xwt.css,org.eclipse.xwt.css.tests,org.eclipse.xwt.doc.user,org.eclipse.xwt.emf,org.eclipse.xwt.emf.test,org.eclipse.xwt.pde,org.eclipse.xwt.ui.workbench"/>
+<booleanAttribute key="includeOptional" value="false"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.xwt.snippets.tests/src/org/eclipse/xwt/tests/XwtSnippetsTestSuite.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.xwt.tests.XwtSnippetsTestSuite"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.xwt.snippets.tests"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dosgi.requiredJavaVersion=1.5 -Dhelp.lucene.tokenizer=standard -Xms40m -Xmx512m"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.platform.ide"/>
+<booleanAttribute key="run_in_ui_thread" value="true"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,org.apache.log4j*1.2.15.v201012070815@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime@default:true,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.win32.win32.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.swtbot.junit4_x@default:default,org.eclipse.swtbot.swt.finder@default:default,org.eclipse.text@default:default,org.eclipse.ui.forms@default:default,org.hamcrest.core@default:default,org.hamcrest.integration@default:default,org.hamcrest.library@default:default,org.hamcrest.text@default:default,org.hamcrest@default:default,org.junit*4.10.0.v4_10_0_v20120426-0900@default:default,org.junit4@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.xwt.forms@default:default,org.eclipse.xwt.snippets@default:default,org.eclipse.xwt.tests@default:default,org.eclipse.xwt.xml@default:default,org.eclipse.xwt@default:default,org.pushingpixels.trident@default:default"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="false"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.xwt.snippets.tests/about.html b/tests/org.eclipse.xwt.snippets.tests/about.html
new file mode 100644
index 0000000..46a80b6
--- /dev/null
+++ b/tests/org.eclipse.xwt.snippets.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 5, 2006</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.xwt.snippets.tests/build.properties b/tests/org.eclipse.xwt.snippets.tests/build.properties
similarity index 100%
rename from org.eclipse.xwt.snippets.tests/build.properties
rename to tests/org.eclipse.xwt.snippets.tests/build.properties
diff --git a/tests/org.eclipse.xwt.snippets.tests/notice.html b/tests/org.eclipse.xwt.snippets.tests/notice.html
new file mode 100644
index 0000000..2949b01
--- /dev/null
+++ b/tests/org.eclipse.xwt.snippets.tests/notice.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 9, 2014</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 2.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/tests/org.eclipse.xwt.snippets.tests/pom.xml b/tests/org.eclipse.xwt.snippets.tests/pom.xml
new file mode 100755
index 0000000..dee18d6
--- /dev/null
+++ b/tests/org.eclipse.xwt.snippets.tests/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-tests</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt.snippets.tests</artifactId>
+	<version>0.10.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+</project>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.snippets.tests/src/org/eclipse/xwt/tests/AbstractSnippetTest.java b/tests/org.eclipse.xwt.snippets.tests/src/org/eclipse/xwt/tests/AbstractSnippetTest.java
new file mode 100644
index 0000000..846fb83
--- /dev/null
+++ b/tests/org.eclipse.xwt.snippets.tests/src/org/eclipse/xwt/tests/AbstractSnippetTest.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *     Erdal Karaca - refactored to use base class
+ *******************************************************************************/
+package org.eclipse.xwt.tests;
+
+import org.eclipse.xwt.snippets.XWTSnippet;
+import org.junit.Before;
+
+public abstract class AbstractSnippetTest extends XWTTestCase {
+	private XWTSnippet snippet;
+
+	protected abstract XWTSnippet doGetSnippet();
+
+	public XWTSnippet getSnippet() {
+		if (snippet == null) {
+			snippet = doGetSnippet();
+		}
+
+		return snippet;
+	}
+
+	@Before
+	public void setUp() {
+		getSnippet().load();
+	}
+
+	@SuppressWarnings("unchecked")
+	protected <T> T getRoot(Class<T> t) {
+		Object root = getSnippet().getRoot();
+		assertTrue(root != null);
+		assertTrue(t.isAssignableFrom(root.getClass()));
+		return (T) root;
+	}
+}
diff --git a/tests/org.eclipse.xwt.snippets.tests/src/org/eclipse/xwt/tests/XwtSnippetsTestSuite.java b/tests/org.eclipse.xwt.snippets.tests/src/org/eclipse/xwt/tests/XwtSnippetsTestSuite.java
new file mode 100644
index 0000000..8fe8a12
--- /dev/null
+++ b/tests/org.eclipse.xwt.snippets.tests/src/org/eclipse/xwt/tests/XwtSnippetsTestSuite.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Eclipse XWT Team
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Erdal Karaca - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.eclipse.xwt.tests.base.HelloWorldSnippetTest;
+import org.eclipse.xwt.tests.controls.ButtonVisibleSnippetTest;
+
+public class XwtSnippetsTestSuite extends TestSuite {
+	public static final Test suite() {
+		return new XwtSnippetsTestSuite();
+	}
+	
+	public XwtSnippetsTestSuite() {
+		addBaseTests();
+		addControlsTests();
+	}
+
+	private void addControlsTests() {
+		addTest(new TestSuite(ButtonVisibleSnippetTest.class));
+	}
+
+	protected void addBaseTests() {
+		addTest(new TestSuite(HelloWorldSnippetTest.class));
+	}
+}
diff --git a/tests/org.eclipse.xwt.snippets.tests/src/org/eclipse/xwt/tests/base/HelloWorldSnippetTest.java b/tests/org.eclipse.xwt.snippets.tests/src/org/eclipse/xwt/tests/base/HelloWorldSnippetTest.java
new file mode 100644
index 0000000..cb4ac8c
--- /dev/null
+++ b/tests/org.eclipse.xwt.snippets.tests/src/org/eclipse/xwt/tests/base/HelloWorldSnippetTest.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Eclipse XWT Team
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Erdal Karaca - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.base;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swtbot.swt.finder.SWTBot;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotText;
+import org.eclipse.xwt.snippets.XWTSnippet;
+import org.eclipse.xwt.snippets.base.HelloWorldSnippet;
+import org.eclipse.xwt.tests.AbstractSnippetTest;
+import org.junit.Test;
+
+public class HelloWorldSnippetTest extends AbstractSnippetTest {
+	@Override
+	protected XWTSnippet doGetSnippet() {
+		return new HelloWorldSnippet();
+	}
+
+	@Test
+	public void testAll() {
+		Composite rootComposite = getRoot(Composite.class);
+		SWTBot bot = new SWTBot(rootComposite);
+		SWTBotText text = bot.text(0);
+		assertTrue(text.backgroundColor() != null
+				&& text.backgroundColor().equals(
+						rootComposite.getDisplay().getSystemColor(
+								SWT.COLOR_BLUE)));
+	}
+}
diff --git a/tests/org.eclipse.xwt.snippets.tests/src/org/eclipse/xwt/tests/controls/ButtonVisibleSnippetTest.java b/tests/org.eclipse.xwt.snippets.tests/src/org/eclipse/xwt/tests/controls/ButtonVisibleSnippetTest.java
new file mode 100644
index 0000000..83ef1af
--- /dev/null
+++ b/tests/org.eclipse.xwt.snippets.tests/src/org/eclipse/xwt/tests/controls/ButtonVisibleSnippetTest.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Eclipse XWT Team
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Erdal Karaca - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swtbot.swt.finder.SWTBot;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotButton;
+import org.eclipse.xwt.snippets.XWTSnippet;
+import org.eclipse.xwt.snippets.controls.Button_Visible;
+import org.eclipse.xwt.tests.AbstractSnippetTest;
+import org.junit.Test;
+
+public class ButtonVisibleSnippetTest extends AbstractSnippetTest {
+	@Override
+	protected XWTSnippet doGetSnippet() {
+		return new Button_Visible();
+	}
+
+	@Test
+	public void testAll() {
+		Composite rootComposite = getRoot(Composite.class);
+		SWTBot bot = new SWTBot(rootComposite);
+		SWTBotButton first = bot.button(0);
+		SWTBotButton second = bot.button(0);
+		
+		assertTrue(first.isVisible());
+		assertTrue(!second.isVisible());
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/.classpath b/tests/org.eclipse.xwt.tests/.classpath
new file mode 100644
index 0000000..716ae00
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="samples"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.xwt.tests/.gitignore b/tests/org.eclipse.xwt.tests/.gitignore
similarity index 100%
rename from org.eclipse.xwt.tests/.gitignore
rename to tests/org.eclipse.xwt.tests/.gitignore
diff --git a/tests/org.eclipse.xwt.tests/.project b/tests/org.eclipse.xwt.tests/.project
new file mode 100644
index 0000000..2065977
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.xwt.tests</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/tests/org.eclipse.xwt.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.xwt.tests/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..78d2dae
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,136 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: XWT Tests Plug-in
+Bundle-SymbolicName: org.eclipse.xwt.tests
+Bundle-Version: 0.10.0.qualifier
+Require-Bundle: org.eclipse.swt,
+ org.eclipse.core.runtime,
+ org.eclipse.xwt;bundle-version="0.9.0",
+ org.eclipse.ui.forms;bundle-version="3.3.100",
+ org.junit,
+ org.eclipse.core.databinding.beans,
+ org.eclipse.core.databinding,
+ org.eclipse.jface.databinding,
+ org.eclipse.xwt.css;bundle-version="0.9.0";resolution:=optional,
+ org.eclipse.e4.ui.css.swt;bundle-version="0.9.0";resolution:=optional,
+ org.eclipse.e4.ui.css.core;bundle-version="0.9.0";resolution:=optional,
+ org.w3c.css.sac;bundle-version="1.3.0";resolution:=optional,
+ org.eclipse.xwt.xml;bundle-version="0.9.0",
+ com.ibm.icu;bundle-version="3.8.0",
+ org.eclipse.core.databinding.property;bundle-version="1.2.0",
+ org.eclipse.xwt.forms;bundle-version="0.9.1",
+ org.eclipse.jface;bundle-version="3.8.101",
+ org.eclipse.xwt.ui.workbench;bundle-version="1.1.0",
+ org.eclipse.ui.workbench
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.xwt.tests,
+ org.eclipse.xwt.tests.animation,
+ org.eclipse.xwt.tests.animation.keyframe,
+ org.eclipse.xwt.tests.animation.repeatBehavior,
+ org.eclipse.xwt.tests.annotation,
+ org.eclipse.xwt.tests.attachedproperty,
+ org.eclipse.xwt.tests.clr,
+ org.eclipse.xwt.tests.clrfactory,
+ org.eclipse.xwt.tests.controls,
+ org.eclipse.xwt.tests.controls.browser,
+ org.eclipse.xwt.tests.controls.button,
+ org.eclipse.xwt.tests.controls.button.command,
+ org.eclipse.xwt.tests.controls.canvas,
+ org.eclipse.xwt.tests.controls.ccombo,
+ org.eclipse.xwt.tests.controls.clabel,
+ org.eclipse.xwt.tests.controls.combo,
+ org.eclipse.xwt.tests.controls.coolbar,
+ org.eclipse.xwt.tests.controls.ctabfolder,
+ org.eclipse.xwt.tests.controls.datetime,
+ org.eclipse.xwt.tests.controls.expandbar,
+ org.eclipse.xwt.tests.controls.group,
+ org.eclipse.xwt.tests.controls.label,
+ org.eclipse.xwt.tests.controls.layout,
+ org.eclipse.xwt.tests.controls.link,
+ org.eclipse.xwt.tests.controls.list,
+ org.eclipse.xwt.tests.controls.menu,
+ org.eclipse.xwt.tests.controls.menu.command,
+ org.eclipse.xwt.tests.controls.progressbar,
+ org.eclipse.xwt.tests.controls.sash,
+ org.eclipse.xwt.tests.controls.sashform,
+ org.eclipse.xwt.tests.controls.scale,
+ org.eclipse.xwt.tests.controls.shell,
+ org.eclipse.xwt.tests.controls.slider,
+ org.eclipse.xwt.tests.controls.spinner,
+ org.eclipse.xwt.tests.controls.styledtext,
+ org.eclipse.xwt.tests.controls.tabfolder,
+ org.eclipse.xwt.tests.controls.table,
+ org.eclipse.xwt.tests.controls.table.binding,
+ org.eclipse.xwt.tests.controls.table.editor,
+ org.eclipse.xwt.tests.controls.text,
+ org.eclipse.xwt.tests.controls.toolbar,
+ org.eclipse.xwt.tests.controls.tooltip,
+ org.eclipse.xwt.tests.controls.tree,
+ org.eclipse.xwt.tests.controls.uiresource,
+ org.eclipse.xwt.tests.controls.xwt,
+ org.eclipse.xwt.tests.databinding,
+ org.eclipse.xwt.tests.databinding.bindcontrol,
+ org.eclipse.xwt.tests.databinding.datacontext,
+ org.eclipse.xwt.tests.databinding.dataprovider,
+ org.eclipse.xwt.tests.databinding.dataprovider.custom,
+ org.eclipse.xwt.tests.databinding.dataprovider.xml,
+ org.eclipse.xwt.tests.databinding.datetime,
+ org.eclipse.xwt.tests.databinding.multibinding,
+ org.eclipse.xwt.tests.databinding.others,
+ org.eclipse.xwt.tests.databinding.pojo,
+ org.eclipse.xwt.tests.databinding.self,
+ org.eclipse.xwt.tests.databinding.status,
+ org.eclipse.xwt.tests.databinding.validation,
+ org.eclipse.xwt.tests.events,
+ org.eclipse.xwt.tests.events.initialize,
+ org.eclipse.xwt.tests.events.loaded,
+ org.eclipse.xwt.tests.events.loaded.multipleClass,
+ org.eclipse.xwt.tests.forms,
+ org.eclipse.xwt.tests.forms.tableviewer.master.detail.set,
+ org.eclipse.xwt.tests.i18n,
+ org.eclipse.xwt.tests.jface,
+ org.eclipse.xwt.tests.jface.comboviewer.array,
+ org.eclipse.xwt.tests.jface.comboviewer.collection,
+ org.eclipse.xwt.tests.jface.comboviewer.enumeration,
+ org.eclipse.xwt.tests.jface.dialog,
+ org.eclipse.xwt.tests.jface.listviewer.array,
+ org.eclipse.xwt.tests.jface.listviewer.collection,
+ org.eclipse.xwt.tests.jface.tableviewer,
+ org.eclipse.xwt.tests.jface.tableviewer.editors,
+ org.eclipse.xwt.tests.jface.tableviewer.filter,
+ org.eclipse.xwt.tests.jface.tableviewer.master.detail,
+ org.eclipse.xwt.tests.jface.tableviewer.master.detail.array,
+ org.eclipse.xwt.tests.jface.tableviewer.master.detail.list,
+ org.eclipse.xwt.tests.jface.tableviewer.master.detail.set,
+ org.eclipse.xwt.tests.jface.treeviewer,
+ org.eclipse.xwt.tests.keybinding,
+ org.eclipse.xwt.tests.metaclass,
+ org.eclipse.xwt.tests.name,
+ org.eclipse.xwt.tests.namespace.handler,
+ org.eclipse.xwt.tests.resources,
+ org.eclipse.xwt.tests.resourcesdictionary,
+ org.eclipse.xwt.tests.snippet017,
+ org.eclipse.xwt.tests.snippet017.inner,
+ org.eclipse.xwt.tests.snippet017.pojo,
+ org.eclipse.xwt.tests.snippet019,
+ org.eclipse.xwt.tests.snippet019.array,
+ org.eclipse.xwt.tests.snippet019.set,
+ org.eclipse.xwt.tests.snippet025,
+ org.eclipse.xwt.tests.snipppets,
+ org.eclipse.xwt.tests.style,
+ org.eclipse.xwt.tests.style.css,
+ org.eclipse.xwt.tests.style.java,
+ org.eclipse.xwt.tests.swt,
+ org.eclipse.xwt.tests.threading,
+ org.eclipse.xwt.tests.trigger,
+ org.eclipse.xwt.tests.trigger.datatrigger,
+ org.eclipse.xwt.tests.trigger.eventtrigger,
+ org.eclipse.xwt.tests.trigger.multidatatrigger,
+ org.eclipse.xwt.tests.trigger.multitrigger,
+ org.eclipse.xwt.tests.usercontrol,
+ org.eclipse.xwt.tests.usercontrol.event,
+ org.eclipse.xwt.tests.view,
+ org.eclipse.xwt.tests.wizard,
+ org.eclipse.xwt.tests.xaml
+Bundle-Vendor: Eclipse XWT
diff --git a/tests/org.eclipse.xwt.tests/about.html b/tests/org.eclipse.xwt.tests/about.html
new file mode 100644
index 0000000..46a80b6
--- /dev/null
+++ b/tests/org.eclipse.xwt.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 5, 2006</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 2.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/build.properties b/tests/org.eclipse.xwt.tests/build.properties
new file mode 100644
index 0000000..c10208f
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/build.properties
@@ -0,0 +1,30 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+source.. = src/,\
+           samples/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               test.xml,\
+               about.html,\
+               samples/,\
+               notice.html
+src.includes = .classpath,\
+               .project,\
+               META-INF/,\
+               about.html,\
+               build.properties,\
+               src/,\
+               samples/,\
+               test.xml,\
+               notice.html
diff --git a/tests/org.eclipse.xwt.tests/notice.html b/tests/org.eclipse.xwt.tests/notice.html
new file mode 100644
index 0000000..2949b01
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/notice.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 9, 2014</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 2.0
+   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a>.
+   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+      and/or Fragments associated with that Feature.</li>
+       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+       <li>The top-level (root) directory</li>
+       <li>Plug-in and Fragment directories</li>
+       <li>Inside Plug-ins and Fragments packaged as JARs</li>
+       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+       <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+   (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+       product.</li>
+       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+       accessed and copied to the Target Machine.</li>
+       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
diff --git a/tests/org.eclipse.xwt.tests/pom.xml b/tests/org.eclipse.xwt.tests/pom.xml
new file mode 100755
index 0000000..c291667
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/pom.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-tests</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+	
+	<artifactId>org.eclipse.xwt.tests</artifactId>
+	<version>0.10.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+</project>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/AbstractModelObject.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/AbstractModelObject.java
new file mode 100644
index 0000000..9792aca
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/AbstractModelObject.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 The Pampered Chef, Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Coconut Palm Software, Inc. - Initial API and implementation
+ *     Matthew Hall - bugs 260329, 260337
+ *     Yves YANG - port to XWT
+ ******************************************************************************/
+package org.eclipse.xwt.tests.snippet017;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+
+public abstract class AbstractModelObject {
+	private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(
+			this);
+
+	public void addPropertyChangeListener(PropertyChangeListener listener) {
+		propertyChangeSupport.addPropertyChangeListener(listener);
+	}
+
+	public void addPropertyChangeListener(String propertyName,
+			PropertyChangeListener listener) {
+		propertyChangeSupport.addPropertyChangeListener(propertyName,
+				listener);
+	}
+
+	public void removePropertyChangeListener(PropertyChangeListener listener) {
+		propertyChangeSupport.removePropertyChangeListener(listener);
+	}
+
+	public void removePropertyChangeListener(String propertyName,
+			PropertyChangeListener listener) {
+		propertyChangeSupport.removePropertyChangeListener(propertyName,
+				listener);
+	}
+
+	protected void firePropertyChange(String propertyName, Object oldValue,
+			Object newValue) {
+		propertyChangeSupport.firePropertyChange(propertyName, oldValue,
+				newValue);
+	}
+}
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/Person.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/Person.java
new file mode 100644
index 0000000..d9f197f
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/Person.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 The Pampered Chef, Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Coconut Palm Software, Inc. - Initial API and implementation
+ *     Matthew Hall - bugs 260329, 260337
+ *     Yves YANG - port to XWT
+ ******************************************************************************/
+package org.eclipse.xwt.tests.snippet017;
+
+
+public class Person extends AbstractModelObject {
+	// A property...
+	String name = "Donald Duck";
+	Person mother;
+	Person father;
+
+	public Person(String name, Person mother, Person father) {
+		this.name = name;
+		this.mother = mother;
+		this.father = father;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		String oldValue = this.name;
+		this.name = name;
+		firePropertyChange("name", oldValue, name);
+	}
+
+	public Person getMother() {
+		return mother;
+	}
+
+	public void setMother(Person mother) {
+		firePropertyChange("mother", this.mother, this.mother = mother);
+	}
+
+	public Person getFather() {
+		return father;
+	}
+
+	public void setFather(Person father) {
+		firePropertyChange("father", this.father, this.father = father);
+	}
+
+	public String toString() {
+		return name;
+	}
+}
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/Snippet017TestSuite.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/Snippet017TestSuite.java
new file mode 100644
index 0000000..471097c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/Snippet017TestSuite.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.snippet017;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class Snippet017TestSuite extends TestSuite {
+	public static final Test suite() {
+		return new Snippet017TestSuite();
+	}
+
+	public Snippet017TestSuite() {
+		addTest(new TestSuite(Snippet017Tests.class));
+		addTest(new TestSuite(org.eclipse.xwt.tests.snippet017.inner.Snippet017Tests.class));
+		addTest(new TestSuite(org.eclipse.xwt.tests.snippet017.pojo.Snippet017Tests.class));
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/Snippet017Tests.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/Snippet017Tests.java
new file mode 100644
index 0000000..8e89b2b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/Snippet017Tests.java
@@ -0,0 +1,356 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.snippet017;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.viewers.ComboViewer;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class Snippet017Tests extends XWTTestCase {
+	protected Person findPerson(List<Person> people, String name) {
+		for (Person person : people) {
+			if (name.equals(person.getName())) {
+				return person;
+			}
+		}
+		return null;
+	}
+	
+	public void testTableViewerWithDerivedColumns() throws Exception {
+		final String name = "Scrooge McDuck";
+		final String motherName = "Downy O'Drake";
+		final String fatherName = "Fergus McDuck";
+		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new ViewModel(), new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				Object dataContext = XWT.getDataContext(element);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				
+				Person person = findPerson(people, name);
+				observableValue.setValue(person);
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TableViewer");
+				assertTrue(viewer instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) viewer;
+				Object dataContext = XWT.getDataContext(viewer);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				Person person = findPerson(people, name);
+				assertEquals(observableValue.getValue(), person);
+				
+				{
+					Object element = XWT.findElementByName(root, "NameText");
+					assertTrue(element instanceof Text);
+					Text nameText = (Text) element;
+					assertEquals(nameText.getText(), name);
+				}
+				
+				{
+					Object element = XWT.findElementByName(root, "MotherCombo");
+					assertTrue(element instanceof ComboViewer);
+					ComboViewer comboViewer = (ComboViewer) element;
+
+					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");
+					Object selected = singleSelection.getValue();
+					assertTrue(selected instanceof Person);
+					Person mother = (Person) selected;
+					assertEquals(mother.getName(), motherName);
+				}
+				
+				{
+					Object element = XWT.findElementByName(root, "FatherCombo");
+					assertTrue(element instanceof ComboViewer);
+					ComboViewer comboViewer = (ComboViewer) element;
+
+					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");
+					Object selected = singleSelection.getValue();
+					assertTrue(selected instanceof Person);
+					Person mother = (Person) selected;
+					assertEquals(mother.getName(), fatherName);
+				}
+			}
+		});
+	}
+	
+	
+	public void testTableViewerWithDerivedColumns_Text() throws Exception {
+		final String name = "Scrooge McDuck";
+		final String newName = "Scrooge McDuck" + " Junor";
+		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new ViewModel(), new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				Object dataContext = XWT.getDataContext(element);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				
+				Person person = findPerson(people, name);
+				observableValue.setValue(person);
+				
+				{
+					Object text = XWT.findElementByName(root, "NameText");
+					assertTrue(text instanceof Text);
+					Text nameText = (Text) text;
+					
+					// modification via UI
+					nameText.setText(newName);
+				}
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TableViewer");
+				assertTrue(viewer instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) viewer;
+				Object dataContext = XWT.getDataContext(viewer);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				Person person = findPerson(people, newName);
+				assertTrue(person != null);
+				assertEquals(observableValue.getValue(), person);
+				
+				{
+					Object element = XWT.findElementByName(root, "NameText");
+					assertTrue(element instanceof Text);
+					Text nameText = (Text) element;
+					assertEquals(nameText.getText(), newName);
+				}
+			}
+		});
+	}
+	
+	public void testTableViewerWithDerivedColumns_TextAPI() throws Exception {
+		final String name = "Scrooge McDuck";
+		final String newName = "Scrooge McDuck" + " Junor";
+		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new ViewModel(), new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				Object dataContext = XWT.getDataContext(element);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				
+				Person person = findPerson(people, name);
+				observableValue.setValue(person);
+				
+				{
+					Object text = XWT.findElementByName(root, "NameText");
+					assertTrue(text instanceof Text);
+					Text nameText = (Text) text;
+					
+					// modification via API
+					IObservableValue textValue = XWT.observableValue(nameText, null, "text");
+					textValue.setValue(newName);
+				}
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TableViewer");
+				assertTrue(viewer instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) viewer;
+				Object dataContext = XWT.getDataContext(viewer);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				Person person = findPerson(people, newName);
+				assertTrue(person != null);
+				assertEquals(observableValue.getValue(), person);
+				
+				{
+					Object element = XWT.findElementByName(root, "NameText");
+					assertTrue(element instanceof Text);
+					Text nameText = (Text) element;
+					assertEquals(nameText.getText(), newName);
+				}
+			}
+		});
+	}
+	
+	public void testTableViewerWithDerivedColumns_MotherCombo() throws Exception {
+		final String name = "Scrooge McDuck";
+		final String motherName = "Downy O'Drake";
+		final String newMotherName = "Della Duck";
+		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new ViewModel(), new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TableViewer");
+				assertTrue(viewer instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) viewer;
+				Object dataContext = XWT.getDataContext(viewer);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				
+				Person person = findPerson(people, name);
+				observableValue.setValue(person);
+				
+				{
+					Object element = XWT.findElementByName(root, "MotherCombo");
+					assertTrue(element instanceof ComboViewer);
+					ComboViewer comboViewer = (ComboViewer) element;
+
+					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");
+					Object selected = singleSelection.getValue();
+					assertTrue(selected instanceof Person);
+					Person mother = (Person) selected;
+					assertEquals(mother.getName(), motherName);
+
+					Person newMother = findPerson(people, newMotherName);
+					singleSelection.setValue(newMother);
+				}
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TableViewer");
+				assertTrue(viewer instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) viewer;
+				Object dataContext = XWT.getDataContext(viewer);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				Person person = findPerson(people, name);
+				assertEquals(observableValue.getValue(), person);
+				
+				Person newMother = findPerson(people, newMotherName);
+
+				assertEquals(person.getMother(), newMother);
+				
+				{
+					Object element = XWT.findElementByName(root, "MotherCombo");
+					assertTrue(element instanceof ComboViewer);
+					ComboViewer comboViewer = (ComboViewer) element;
+
+					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");
+					Object selected = singleSelection.getValue();
+					assertTrue(selected instanceof Person);
+					Person mother = (Person) selected;
+					assertEquals(mother, newMother);
+				}
+			}
+		});
+	}
+	
+	public void testTableViewerWithDerivedColumns_MotherCombo_API() throws Exception {
+		final String name = "Scrooge McDuck";
+		final String motherName = "Downy O'Drake";
+		final String newMotherName = "Della Duck";
+		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new ViewModel(), new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TableViewer");
+				assertTrue(viewer instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) viewer;
+				Object dataContext = XWT.getDataContext(viewer);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				
+				Person person = findPerson(people, name);
+				observableValue.setValue(person);
+				
+				{
+					Object element = XWT.findElementByName(root, "MotherCombo");
+					assertTrue(element instanceof ComboViewer);
+					ComboViewer comboViewer = (ComboViewer) element;
+
+					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");
+					Object selected = singleSelection.getValue();
+					assertTrue(selected instanceof Person);
+					Person mother = (Person) selected;
+					assertEquals(mother.getName(), motherName);
+
+					Person newMother = findPerson(people, newMotherName);
+					
+					IObservableValue motherValue = XWT.observableValue(comboViewer, person, "mother");
+					motherValue.setValue(newMother);
+				}
+
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TableViewer");
+				assertTrue(viewer instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) viewer;
+				Object dataContext = XWT.getDataContext(viewer);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				Person person = findPerson(people, name);
+				assertEquals(observableValue.getValue(), person);
+				
+				Person newMother = findPerson(people, newMotherName);
+
+				assertEquals(person.getMother(), newMother);
+				
+				{
+					Object element = XWT.findElementByName(root, "MotherCombo");
+					assertTrue(element instanceof ComboViewer);
+					ComboViewer comboViewer = (ComboViewer) element;
+
+					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");
+					Object selected = singleSelection.getValue();
+					assertTrue(selected instanceof Person);
+					Person mother = (Person) selected;
+					assertEquals(mother, newMother);
+				}
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/TableViewerWithDerivedColumns.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/TableViewerWithDerivedColumns.java
new file mode 100644
index 0000000..7161c86
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/TableViewerWithDerivedColumns.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 The Pampered Chef, Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Coconut Palm Software, Inc. - Initial API and implementation
+ *     Matthew Hall - bugs 260329, 260337
+ *     Yves YANG - port to XWT
+ ******************************************************************************/
+
+package org.eclipse.xwt.tests.snippet017;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * Demonstrates binding a TableViewer to a collection.
+ */
+public class TableViewerWithDerivedColumns {
+	public static void main(String[] args) {
+		ViewModel viewModel = new ViewModel();
+		URL url = TableViewerWithDerivedColumns.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url, viewModel);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	static Person UNKNOWN = new Person("unknown", null, null);
+}
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/TableViewerWithDerivedColumns.xwt b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/TableViewerWithDerivedColumns.xwt
new file mode 100644
index 0000000..affcf6a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/TableViewerWithDerivedColumns.xwt
@@ -0,0 +1,54 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.snippet017"
+    size="500, 300">
+	<Shell.layout>
+		<GridLayout numColumns="2"/>
+	</Shell.layout>
+	<TableViewer name="TableViewer" x:Style="FULL_SELECTION" input="{Binding Path=people}">
+		<TableViewer.columns headerVisible="true">
+			<TableViewerColumn width="100" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="100" text="Mother" bindingPath="mother.name"/>
+			<TableViewerColumn width="100" text="Father" bindingPath="father.name"/>
+			<TableViewerColumn width="100" text="Grand Mother" bindingPath="mother.mother.name"/>
+		</TableViewer.columns>
+		<TableViewer.table headerVisible="true"/>
+	    <TableViewer.filters>
+			<ViewerFilter>
+				<ViewerFilter.conditions>
+					<Condition property="name" value="unknown" operator="NE"/>
+				</ViewerFilter.conditions>
+			</ViewerFilter>
+		</TableViewer.filters>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+
+	<Label text="Name:">
+	</Label>
+	<Text name="NameText" x:Style="BORDER" dataContext="{Binding ElementName=TableViewer,path=singleSelection}"
+		text="{Binding path=(j:Person.name),UpdateSourceTrigger=PropertyChanged}" >
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+
+	<Label text="Mother:">
+	</Label>
+	<ComboViewer name="MotherCombo" x:Style="READ_ONLY"
+		input="{Binding path=people}"
+		singleSelection="{Binding ElementName=TableViewer,path=singleSelection.(j:Person.mother)}" 
+		bindingPath="name">
+	</ComboViewer>
+
+	<Label text="Father:">
+	</Label>
+	<ComboViewer name="FatherCombo" x:Style="READ_ONLY"
+		input="{Binding path=people}"
+		singleSelection="{Binding ElementName=TableViewer,path=singleSelection.(j:Person.father)}" 
+		bindingPath="name">
+	</ComboViewer>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/ViewModel.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/ViewModel.java
new file mode 100644
index 0000000..c52769a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/ViewModel.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 The Pampered Chef, Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Coconut Palm Software, Inc. - Initial API and implementation
+ *     Matthew Hall - bugs 260329, 260337
+ *     Yves YANG - port to XWT
+ ******************************************************************************/
+package org.eclipse.xwt.tests.snippet017;
+
+import java.util.ArrayList;
+
+public class ViewModel {
+	// The model to bind
+	private ArrayList<Person> people = new ArrayList<Person>();
+	{
+		Person fergus = new Person("Fergus McDuck", TableViewerWithDerivedColumns.UNKNOWN, TableViewerWithDerivedColumns.UNKNOWN);
+		Person downy = new Person("Downy O'Drake", TableViewerWithDerivedColumns.UNKNOWN, TableViewerWithDerivedColumns.UNKNOWN);
+		Person scrooge = new Person("Scrooge McDuck", downy, fergus);
+		Person hortense = new Person("Hortense McDuck", downy, fergus);
+		Person quackmore = new Person("Quackmore Duck", TableViewerWithDerivedColumns.UNKNOWN, TableViewerWithDerivedColumns.UNKNOWN);
+		Person della = new Person("Della Duck", hortense, quackmore);
+		Person donald = new Person("Donald Duck", hortense, quackmore);
+		donald.setFather(quackmore);
+		donald.setMother(hortense);
+		della.setFather(quackmore);
+		della.setMother(hortense);
+		hortense.setMother(downy);
+		hortense.setFather(fergus);
+		scrooge.setMother(downy);
+		scrooge.setFather(fergus);
+		people.add(TableViewerWithDerivedColumns.UNKNOWN);
+		people.add(downy);
+		people.add(fergus);
+		people.add(scrooge);
+		people.add(quackmore);
+		people.add(hortense);
+		people.add(della);
+		people.add(donald);
+	}
+
+	public ArrayList<Person> getPeople() {
+		return people;
+	}
+}
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/inner/Snippet017Tests.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/inner/Snippet017Tests.java
new file mode 100644
index 0000000..587a756
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/inner/Snippet017Tests.java
@@ -0,0 +1,358 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.snippet017.inner;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.viewers.ComboViewer;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+import org.eclipse.xwt.tests.snippet017.inner.TableViewerWithDerivedColumns.Person;
+import org.eclipse.xwt.tests.snippet017.inner.TableViewerWithDerivedColumns.ViewModel;
+
+public class Snippet017Tests extends XWTTestCase {
+	protected Person findPerson(List<Person> people, String name) {
+		for (Person person : people) {
+			if (name.equals(person.getName())) {
+				return person;
+			}
+		}
+		return null;
+	}
+	
+	public void testTableViewerWithDerivedColumns() throws Exception {
+		final String name = "Scrooge McDuck";
+		final String motherName = "Downy O'Drake";
+		final String fatherName = "Fergus McDuck";
+		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new ViewModel(), new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				Object dataContext = XWT.getDataContext(element);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				
+				Person person = findPerson(people, name);
+				observableValue.setValue(person);
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TableViewer");
+				assertTrue(viewer instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) viewer;
+				Object dataContext = XWT.getDataContext(viewer);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				Person person = findPerson(people, name);
+				assertEquals(observableValue.getValue(), person);
+				
+				{
+					Object element = XWT.findElementByName(root, "NameText");
+					assertTrue(element instanceof Text);
+					Text nameText = (Text) element;
+					assertEquals(nameText.getText(), name);
+				}
+				
+				{
+					Object element = XWT.findElementByName(root, "MotherCombo");
+					assertTrue(element instanceof ComboViewer);
+					ComboViewer comboViewer = (ComboViewer) element;
+
+					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");
+					Object selected = singleSelection.getValue();
+					assertTrue(selected instanceof Person);
+					Person mother = (Person) selected;
+					assertEquals(mother.getName(), motherName);
+				}
+				
+				{
+					Object element = XWT.findElementByName(root, "FatherCombo");
+					assertTrue(element instanceof ComboViewer);
+					ComboViewer comboViewer = (ComboViewer) element;
+
+					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");
+					Object selected = singleSelection.getValue();
+					assertTrue(selected instanceof Person);
+					Person mother = (Person) selected;
+					assertEquals(mother.getName(), fatherName);
+				}
+			}
+		});
+	}
+	
+	
+	public void testTableViewerWithDerivedColumns_Text() throws Exception {
+		final String name = "Scrooge McDuck";
+		final String newName = "Scrooge McDuck" + " Junor";
+		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new ViewModel(), new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				Object dataContext = XWT.getDataContext(element);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				
+				Person person = findPerson(people, name);
+				observableValue.setValue(person);
+				
+				{
+					Object text = XWT.findElementByName(root, "NameText");
+					assertTrue(text instanceof Text);
+					Text nameText = (Text) text;
+					
+					// modification via UI
+					nameText.setText(newName);
+				}
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TableViewer");
+				assertTrue(viewer instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) viewer;
+				Object dataContext = XWT.getDataContext(viewer);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				Person person = findPerson(people, newName);
+				assertTrue(person != null);
+				assertEquals(observableValue.getValue(), person);
+				
+				{
+					Object element = XWT.findElementByName(root, "NameText");
+					assertTrue(element instanceof Text);
+					Text nameText = (Text) element;
+					assertEquals(nameText.getText(), newName);
+				}
+			}
+		});
+	}
+	
+	public void testTableViewerWithDerivedColumns_TextAPI() throws Exception {
+		final String name = "Scrooge McDuck";
+		final String newName = "Scrooge McDuck" + " Junor";
+		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new ViewModel(), new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				Object dataContext = XWT.getDataContext(element);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				
+				Person person = findPerson(people, name);
+				observableValue.setValue(person);
+				
+				{
+					Object text = XWT.findElementByName(root, "NameText");
+					assertTrue(text instanceof Text);
+					Text nameText = (Text) text;
+					
+					// modification via API
+					IObservableValue textValue = XWT.observableValue(nameText, null, "text");
+					textValue.setValue(newName);
+				}
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TableViewer");
+				assertTrue(viewer instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) viewer;
+				Object dataContext = XWT.getDataContext(viewer);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				Person person = findPerson(people, newName);
+				assertTrue(person != null);
+				assertEquals(observableValue.getValue(), person);
+				
+				{
+					Object element = XWT.findElementByName(root, "NameText");
+					assertTrue(element instanceof Text);
+					Text nameText = (Text) element;
+					assertEquals(nameText.getText(), newName);
+				}
+			}
+		});
+	}
+	
+	public void testTableViewerWithDerivedColumns_MotherCombo() throws Exception {
+		final String name = "Scrooge McDuck";
+		final String motherName = "Downy O'Drake";
+		final String newMotherName = "Della Duck";
+		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new ViewModel(), new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TableViewer");
+				assertTrue(viewer instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) viewer;
+				Object dataContext = XWT.getDataContext(viewer);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				
+				Person person = findPerson(people, name);
+				observableValue.setValue(person);
+				
+				{
+					Object element = XWT.findElementByName(root, "MotherCombo");
+					assertTrue(element instanceof ComboViewer);
+					ComboViewer comboViewer = (ComboViewer) element;
+
+					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");
+					Object selected = singleSelection.getValue();
+					assertTrue(selected instanceof Person);
+					Person mother = (Person) selected;
+					assertEquals(mother.getName(), motherName);
+
+					Person newMother = findPerson(people, newMotherName);
+					singleSelection.setValue(newMother);
+				}
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TableViewer");
+				assertTrue(viewer instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) viewer;
+				Object dataContext = XWT.getDataContext(viewer);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				Person person = findPerson(people, name);
+				assertEquals(observableValue.getValue(), person);
+				
+				Person newMother = findPerson(people, newMotherName);
+
+				assertEquals(person.getMother(), newMother);
+				
+				{
+					Object element = XWT.findElementByName(root, "MotherCombo");
+					assertTrue(element instanceof ComboViewer);
+					ComboViewer comboViewer = (ComboViewer) element;
+
+					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");
+					Object selected = singleSelection.getValue();
+					assertTrue(selected instanceof Person);
+					Person mother = (Person) selected;
+					assertEquals(mother, newMother);
+				}
+			}
+		});
+	}
+	
+	public void testTableViewerWithDerivedColumns_MotherCombo_API() throws Exception {
+		final String name = "Scrooge McDuck";
+		final String motherName = "Downy O'Drake";
+		final String newMotherName = "Della Duck";
+		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new ViewModel(), new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TableViewer");
+				assertTrue(viewer instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) viewer;
+				Object dataContext = XWT.getDataContext(viewer);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				
+				Person person = findPerson(people, name);
+				observableValue.setValue(person);
+				
+				{
+					Object element = XWT.findElementByName(root, "MotherCombo");
+					assertTrue(element instanceof ComboViewer);
+					ComboViewer comboViewer = (ComboViewer) element;
+
+					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");
+					Object selected = singleSelection.getValue();
+					assertTrue(selected instanceof Person);
+					Person mother = (Person) selected;
+					assertEquals(mother.getName(), motherName);
+
+					Person newMother = findPerson(people, newMotherName);
+					
+					IObservableValue motherValue = XWT.observableValue(comboViewer, person, "mother");
+					motherValue.setValue(newMother);
+				}
+
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TableViewer");
+				assertTrue(viewer instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) viewer;
+				Object dataContext = XWT.getDataContext(viewer);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				Person person = findPerson(people, name);
+				assertEquals(observableValue.getValue(), person);
+				
+				Person newMother = findPerson(people, newMotherName);
+
+				assertEquals(person.getMother(), newMother);
+				
+				{
+					Object element = XWT.findElementByName(root, "MotherCombo");
+					assertTrue(element instanceof ComboViewer);
+					ComboViewer comboViewer = (ComboViewer) element;
+
+					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");
+					Object selected = singleSelection.getValue();
+					assertTrue(selected instanceof Person);
+					Person mother = (Person) selected;
+					assertEquals(mother, newMother);
+				}
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/inner/TableViewerWithDerivedColumns.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/inner/TableViewerWithDerivedColumns.java
new file mode 100644
index 0000000..1d7facc
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/inner/TableViewerWithDerivedColumns.java
@@ -0,0 +1,187 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 The Pampered Chef, Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Coconut Palm Software, Inc. - Initial API and implementation
+ *     Matthew Hall - bugs 260329, 260337
+ *     Yves YANG - port to XWT
+ ******************************************************************************/
+
+package org.eclipse.xwt.tests.snippet017.inner;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.viewers.ComboViewer;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * Demonstrates binding a TableViewer to a collection.
+ */
+public class TableViewerWithDerivedColumns {
+	public static void main(String[] args) {
+		ViewModel viewModel = new ViewModel();
+		URL url = TableViewerWithDerivedColumns.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url, viewModel);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	protected Person findPerson(List<Person> people, String name) {
+		for (Person person : people) {
+			if (name.equals(person.getName())) {
+				return person;
+			}
+		}
+		return null;
+	}
+
+	public void changeMother(Object sender, Event event) {
+		final String newMotherName = "Della Duck";
+		ViewModel dataContext = (ViewModel) XWT.getDataContext(event.widget);
+		
+		ComboViewer comboViewer = (ComboViewer) XWT.findElementByName(event.widget, "MotherCombo");
+
+		TableViewer tableViewer = (TableViewer) XWT.findElementByName(event.widget, "TableViewer");
+
+		IObservableValue singleSelection = XWT.observableValue(tableViewer, null, "singleSelection");
+		Object selected = singleSelection.getValue();
+
+		IObservableValue motherValue = XWT.observableValue(comboViewer, selected, "mother");
+		Person newMother = findPerson(dataContext.getPeople(), newMotherName);
+		motherValue.setValue(newMother);
+	}
+	
+	// Minimal JavaBeans support
+	public static abstract class AbstractModelObject {
+		private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(
+				this);
+
+		public void addPropertyChangeListener(PropertyChangeListener listener) {
+			propertyChangeSupport.addPropertyChangeListener(listener);
+		}
+
+		public void addPropertyChangeListener(String propertyName,
+				PropertyChangeListener listener) {
+			propertyChangeSupport.addPropertyChangeListener(propertyName,
+					listener);
+		}
+
+		public void removePropertyChangeListener(PropertyChangeListener listener) {
+			propertyChangeSupport.removePropertyChangeListener(listener);
+		}
+
+		public void removePropertyChangeListener(String propertyName,
+				PropertyChangeListener listener) {
+			propertyChangeSupport.removePropertyChangeListener(propertyName,
+					listener);
+		}
+
+		protected void firePropertyChange(String propertyName, Object oldValue,
+				Object newValue) {
+			propertyChangeSupport.firePropertyChange(propertyName, oldValue,
+					newValue);
+		}
+	}
+
+	private static Person UNKNOWN = new Person("unknown", null, null);
+
+	// The data model class. This is normally a persistent class of some sort.
+	public static class Person extends AbstractModelObject {
+		// A property...
+		String name = "Donald Duck";
+		Person mother;
+		Person father;
+
+		public Person(String name, Person mother, Person father) {
+			this.name = name;
+			this.mother = mother;
+			this.father = father;
+		}
+
+		public String getName() {
+			return name;
+		}
+
+		public void setName(String name) {
+			String oldValue = this.name;
+			this.name = name;
+			firePropertyChange("name", oldValue, name);
+		}
+
+		public Person getMother() {
+			return mother;
+		}
+
+		public void setMother(Person mother) {
+			firePropertyChange("mother", this.mother, this.mother = mother);
+		}
+
+		public Person getFather() {
+			return father;
+		}
+
+		public void setFather(Person father) {
+			firePropertyChange("father", this.father, this.father = father);
+		}
+
+		public String toString() {
+			return name;
+		}
+	}
+
+	// The View's model--the root of our Model graph for this particular GUI.
+	//
+	// Typically each View class has a corresponding ViewModel class.
+	// The ViewModel is responsible for getting the objects to edit from the
+	// data access tier. Since this snippet doesn't have any persistent objects
+	// ro retrieve, this ViewModel just instantiates a model object to edit.
+	public static class ViewModel {
+		// The model to bind
+		private ArrayList<Person> people = new ArrayList<Person>();
+		{
+			Person fergus = new Person("Fergus McDuck", UNKNOWN, UNKNOWN);
+			Person downy = new Person("Downy O'Drake", UNKNOWN, UNKNOWN);
+			Person scrooge = new Person("Scrooge McDuck", downy, fergus);
+			Person hortense = new Person("Hortense McDuck", downy, fergus);
+			Person quackmore = new Person("Quackmore Duck", UNKNOWN, UNKNOWN);
+			Person della = new Person("Della Duck", hortense, quackmore);
+			Person donald = new Person("Donald Duck", hortense, quackmore);
+			donald.setFather(quackmore);
+			donald.setMother(hortense);
+			della.setFather(quackmore);
+			della.setMother(hortense);
+			hortense.setMother(downy);
+			hortense.setFather(fergus);
+			scrooge.setMother(downy);
+			scrooge.setFather(fergus);
+			people.add(UNKNOWN);
+			people.add(downy);
+			people.add(fergus);
+			people.add(scrooge);
+			people.add(quackmore);
+			people.add(hortense);
+			people.add(della);
+			people.add(donald);
+		}
+
+		public ArrayList<Person> getPeople() {
+			return people;
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/inner/TableViewerWithDerivedColumns.xwt b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/inner/TableViewerWithDerivedColumns.xwt
new file mode 100644
index 0000000..c4bc65b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/inner/TableViewerWithDerivedColumns.xwt
@@ -0,0 +1,76 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.snippet017.inner"
+    x:Class="org.eclipse.xwt.tests.snippet017.inner.TableViewerWithDerivedColumns"
+    size="500, 300">
+	<Shell.layout>
+		<GridLayout numColumns="2"/>
+	</Shell.layout>
+	<TableViewer name="TableViewer" x:Style="FULL_SELECTION" input="{Binding Path=people}">
+		<TableViewer.columns headerVisible="true">
+			<TableViewerColumn width="100" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="100" text="Mother" bindingPath="mother.name"/>
+			<TableViewerColumn width="100" text="Father" bindingPath="father.name"/>
+			<TableViewerColumn width="100" text="Grand Mother" bindingPath="mother.mother.name"/>
+		</TableViewer.columns>
+		<TableViewer.table headerVisible="true"/>
+	    <TableViewer.filters>
+			<ViewerFilter>
+				<ViewerFilter.conditions>
+					<Condition property="name" value="unknown" operator="NE"/>
+				</ViewerFilter.conditions>
+			</ViewerFilter>
+		</TableViewer.filters>		
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+
+	<Label text="Name:">
+	</Label>
+	<Text x:Style="BORDER"
+		text="{Binding ElementName=TableViewer,path=singleSelection.(j:TableViewerWithDerivedColumns$Person.name)}" >
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+
+	<Label text="Name:">
+	</Label>
+	<Text x:Style="BORDER"
+		text="{Binding ElementName=TableViewer,path=singleSelection.(j:TableViewerWithDerivedColumns.Person.name)}" >
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+
+	<Label text="Name:">
+	</Label>
+	<Text name="NameText" x:Style="BORDER" dataContext="{Binding ElementName=TableViewer,path=singleSelection}"
+		text="{Binding path=(j:TableViewerWithDerivedColumns.Person.name),UpdateSourceTrigger=PropertyChanged}" >
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+
+	<Label text="Mother:">
+	</Label>
+	<ComboViewer name="MotherCombo" x:Style="READ_ONLY"
+		input="{Binding path=people}"
+		singleSelection="{Binding ElementName=TableViewer,path=singleSelection.(j:TableViewerWithDerivedColumns.Person.mother)}" 
+		bindingPath="name">
+	</ComboViewer>
+
+	<Label text="Father:">
+	</Label>
+	<ComboViewer name="FatherCombo" x:Style="READ_ONLY"
+		input="{Binding path=people}"
+		singleSelection="{Binding ElementName=TableViewer,path=singleSelection.(j:TableViewerWithDerivedColumns.Person.father)}" 
+		bindingPath="name">
+	</ComboViewer>
+	<Button text="Click me" selectionEvent="changeMother"/>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/pojo/Snippet017Tests.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/pojo/Snippet017Tests.java
new file mode 100644
index 0000000..43adee8
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/pojo/Snippet017Tests.java
@@ -0,0 +1,360 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.snippet017.pojo;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.viewers.ComboViewer;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+import org.eclipse.xwt.tests.snippet017.pojo.TableViewerWithDerivedColumns.Person;
+import org.eclipse.xwt.tests.snippet017.pojo.TableViewerWithDerivedColumns.ViewModel;
+
+public class Snippet017Tests extends XWTTestCase {
+	protected Person findPerson(List<Person> people, String name) {
+		for (Person person : people) {
+			if (name.equals(person.getName())) {
+				return person;
+			}
+		}
+		return null;
+	}
+	
+	public void testTableViewerWithDerivedColumns() throws Exception {
+		final String name = "Scrooge McDuck";
+		final String motherName = "Downy O'Drake";
+		final String fatherName = "Fergus McDuck";
+		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new ViewModel(), new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				Object dataContext = XWT.getDataContext(element);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				
+				Person person = findPerson(people, name);
+				observableValue.setValue(person);
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TableViewer");
+				assertTrue(viewer instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) viewer;
+				Object dataContext = XWT.getDataContext(viewer);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				Person person = findPerson(people, name);
+				assertEquals(observableValue.getValue(), person);
+				
+				{
+					Object element = XWT.findElementByName(root, "NameText");
+					assertTrue(element instanceof Text);
+					Text nameText = (Text) element;
+					assertEquals(nameText.getText(), name);
+				}
+				
+				{
+					Object element = XWT.findElementByName(root, "MotherCombo");
+					assertTrue(element instanceof ComboViewer);
+					ComboViewer comboViewer = (ComboViewer) element;
+
+					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");
+					Object selected = singleSelection.getValue();
+					assertTrue(selected instanceof Person);
+					Person mother = (Person) selected;
+					assertEquals(mother.getName(), motherName);
+				}
+				
+				{
+					Object element = XWT.findElementByName(root, "FatherCombo");
+					assertTrue(element instanceof ComboViewer);
+					ComboViewer comboViewer = (ComboViewer) element;
+
+					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");
+					Object selected = singleSelection.getValue();
+					assertTrue(selected instanceof Person);
+					Person mother = (Person) selected;
+					assertEquals(mother.getName(), fatherName);
+				}
+			}
+		});
+	}
+	
+	
+	public void testTableViewerWithDerivedColumns_Text() throws Exception {
+		final String name = "Scrooge McDuck";
+		final String newName = "Scrooge McDuck" + " Junor";
+		
+		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new ViewModel(), new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				Object dataContext = XWT.getDataContext(element);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				
+				Person person = findPerson(people, name);
+				observableValue.setValue(person);
+				
+				{
+					Object text = XWT.findElementByName(root, "NameText");
+					assertTrue(text instanceof Text);
+					Text nameText = (Text) text;
+					
+					// modification via UI
+					nameText.setText(newName);
+				}
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TableViewer");
+				assertTrue(viewer instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) viewer;
+				Object dataContext = XWT.getDataContext(viewer);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				Person person = findPerson(people, newName);
+				assertTrue(person != null);
+				assertEquals(observableValue.getValue(), person);
+				
+				{
+					Object element = XWT.findElementByName(root, "NameText");
+					assertTrue(element instanceof Text);
+					Text nameText = (Text) element;
+					assertEquals(nameText.getText(), newName);
+				}
+			}
+		});
+	}
+	
+	public void testTableViewerWithDerivedColumns_TextAPI() throws Exception {
+		final String name = "Scrooge McDuck";
+		final String newName = "Scrooge McDuck" + " Junor";
+		
+		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new ViewModel(), new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				Object dataContext = XWT.getDataContext(element);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				
+				Person person = findPerson(people, name);
+				observableValue.setValue(person);
+				
+				{
+					Object text = XWT.findElementByName(root, "NameText");
+					assertTrue(text instanceof Text);
+					Text nameText = (Text) text;
+					
+					// modification via API
+					IObservableValue textValue = XWT.observableValue(nameText, null, "text");
+					textValue.setValue(newName);
+				}
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TableViewer");
+				assertTrue(viewer instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) viewer;
+				Object dataContext = XWT.getDataContext(viewer);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				Person person = findPerson(people, newName);
+				assertTrue(person != null);
+				assertEquals(observableValue.getValue(), person);
+				
+				{
+					Object element = XWT.findElementByName(root, "NameText");
+					assertTrue(element instanceof Text);
+					Text nameText = (Text) element;
+					assertEquals(nameText.getText(), newName);
+				}
+			}
+		});
+	}
+	
+	public void testTableViewerWithDerivedColumns_MotherCombo() throws Exception {
+		final String name = "Scrooge McDuck";
+		final String motherName = "Downy O'Drake";
+		final String newMotherName = "Della Duck";
+		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new ViewModel(), new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TableViewer");
+				assertTrue(viewer instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) viewer;
+				Object dataContext = XWT.getDataContext(viewer);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				
+				Person person = findPerson(people, name);
+				observableValue.setValue(person);
+				
+				{
+					Object element = XWT.findElementByName(root, "MotherCombo");
+					assertTrue(element instanceof ComboViewer);
+					ComboViewer comboViewer = (ComboViewer) element;
+
+					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");
+					Object selected = singleSelection.getValue();
+					assertTrue(selected instanceof Person);
+					Person mother = (Person) selected;
+					assertEquals(mother.getName(), motherName);
+
+					Person newMother = findPerson(people, newMotherName);
+					singleSelection.setValue(newMother);
+				}
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TableViewer");
+				assertTrue(viewer instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) viewer;
+				Object dataContext = XWT.getDataContext(viewer);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				Person person = findPerson(people, name);
+				assertEquals(observableValue.getValue(), person);
+				
+				Person newMother = findPerson(people, newMotherName);
+
+				assertEquals(person.getMother(), newMother);
+				
+				{
+					Object element = XWT.findElementByName(root, "MotherCombo");
+					assertTrue(element instanceof ComboViewer);
+					ComboViewer comboViewer = (ComboViewer) element;
+
+					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");
+					Object selected = singleSelection.getValue();
+					assertTrue(selected instanceof Person);
+					Person mother = (Person) selected;
+					assertEquals(mother, newMother);
+				}
+			}
+		});
+	}
+	
+	// TODO
+	public void tesTableViewerWithDerivedColumns_MotherCombo_API() throws Exception {
+		final String name = "Scrooge McDuck";
+		final String motherName = "Downy O'Drake";
+		final String newMotherName = "Della Duck";
+		URL url = Snippet017Tests.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new ViewModel(), new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TableViewer");
+				assertTrue(viewer instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) viewer;
+				Object dataContext = XWT.getDataContext(viewer);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				
+				Person person = findPerson(people, name);
+				observableValue.setValue(person);
+				
+				{
+					Object element = XWT.findElementByName(root, "MotherCombo");
+					assertTrue(element instanceof ComboViewer);
+					ComboViewer comboViewer = (ComboViewer) element;
+
+					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");
+					Object selected = singleSelection.getValue();
+					assertTrue(selected instanceof Person);
+					Person mother = (Person) selected;
+					assertEquals(mother.getName(), motherName);
+
+					IObservableValue motherValue = XWT.observableValue(comboViewer, person, "mother");
+
+					Person newMother = findPerson(people, newMotherName);
+					motherValue.setValue(newMother);
+				}
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TableViewer");
+				assertTrue(viewer instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) viewer;
+				Object dataContext = XWT.getDataContext(viewer);
+				assertTrue(dataContext instanceof ViewModel);
+				ViewModel viewModel = (ViewModel) dataContext; 
+				ArrayList<Person> people = viewModel.getPeople();
+				
+				IObservableValue observableValue = XWT.observableValue(tableViewer, null, "singleSelection");
+				Person person = findPerson(people, name);
+				assertEquals(observableValue.getValue(), person);
+				
+				Person newMother = findPerson(people, newMotherName);
+
+				assertEquals(person.getMother(), newMother);
+				
+				{
+					Object element = XWT.findElementByName(root, "MotherCombo");
+					assertTrue(element instanceof ComboViewer);
+					ComboViewer comboViewer = (ComboViewer) element;
+
+					IObservableValue singleSelection = XWT.observableValue(comboViewer, null, "singleSelection");
+					Object selected = singleSelection.getValue();
+					assertTrue(selected instanceof Person);
+					Person mother = (Person) selected;
+					assertEquals(mother, newMother);
+				}
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/pojo/TableViewerWithDerivedColumns.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/pojo/TableViewerWithDerivedColumns.java
new file mode 100644
index 0000000..958498e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/pojo/TableViewerWithDerivedColumns.java
@@ -0,0 +1,155 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 The Pampered Chef, Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Coconut Palm Software, Inc. - Initial API and implementation
+ *     Matthew Hall - bugs 260329, 260337
+ *     Yves YANG - port to XWT
+ ******************************************************************************/
+
+package org.eclipse.xwt.tests.snippet017.pojo;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.viewers.ComboViewer;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * Demonstrates binding a TableViewer to a collection.
+ */
+public class TableViewerWithDerivedColumns {
+	public static void main(String[] args) {
+		ViewModel viewModel = new ViewModel();
+		URL url = TableViewerWithDerivedColumns.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url, viewModel);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	private static Person UNKNOWN = new Person("unknown", null, null);
+	
+	
+	protected Person findPerson(List<Person> people, String name) {
+		for (Person person : people) {
+			if (name.equals(person.getName())) {
+				return person;
+			}
+		}
+		return null;
+	}
+
+	public void changeMother(Object sender, Event event) {
+		final String newMotherName = "Della Duck";
+		ViewModel dataContext = (ViewModel) XWT.getDataContext(event.widget);
+		
+		ComboViewer comboViewer = (ComboViewer) XWT.findElementByName(event.widget, "MotherCombo");
+
+		TableViewer tableViewer = (TableViewer) XWT.findElementByName(event.widget, "TableViewer");
+
+		IObservableValue singleSelection = XWT.observableValue(tableViewer, null, "singleSelection");
+		Object selected = singleSelection.getValue();
+
+		IObservableValue motherValue = XWT.observableValue(comboViewer, selected, "mother");
+		Person newMother = findPerson(dataContext.getPeople(), newMotherName);
+		motherValue.setValue(newMother);
+		
+		tableViewer.refresh();
+		comboViewer.refresh();
+	}
+
+	// The data model class. This is normally a persistent class of some sort.
+	public static class Person {
+		// A property...
+		String name = "Donald Duck";
+		Person mother;
+		Person father;
+
+		public Person(String name, Person mother, Person father) {
+			this.name = name;
+			this.mother = mother;
+			this.father = father;
+		}
+
+		public String getName() {
+			return name;
+		}
+
+		public void setName(String name) {
+			this.name = name;
+		}
+
+		public Person getMother() {
+			return mother;
+		}
+
+		public void setMother(Person mother) {
+			this.mother = mother;
+		}
+
+		public Person getFather() {
+			return father;
+		}
+
+		public void setFather(Person father) {
+			this.father = father;
+		}
+
+		public String toString() {
+			return name;
+		}
+	}
+
+	// The View's model--the root of our Model graph for this particular GUI.
+	//
+	// Typically each View class has a corresponding ViewModel class.
+	// The ViewModel is responsible for getting the objects to edit from the
+	// data access tier. Since this snippet doesn't have any persistent objects
+	// ro retrieve, this ViewModel just instantiates a model object to edit.
+	public static class ViewModel {
+		// The model to bind
+		private ArrayList<Person> people = new ArrayList<Person>();
+		{
+			Person fergus = new Person("Fergus McDuck", UNKNOWN, UNKNOWN);
+			Person downy = new Person("Downy O'Drake", UNKNOWN, UNKNOWN);
+			Person scrooge = new Person("Scrooge McDuck", downy, fergus);
+			Person hortense = new Person("Hortense McDuck", downy, fergus);
+			Person quackmore = new Person("Quackmore Duck", UNKNOWN, UNKNOWN);
+			Person della = new Person("Della Duck", hortense, quackmore);
+			Person donald = new Person("Donald Duck", hortense, quackmore);
+			donald.setFather(quackmore);
+			donald.setMother(hortense);
+			della.setFather(quackmore);
+			della.setMother(hortense);
+			hortense.setMother(downy);
+			hortense.setFather(fergus);
+			scrooge.setMother(downy);
+			scrooge.setFather(fergus);
+			people.add(UNKNOWN);
+			people.add(downy);
+			people.add(fergus);
+			people.add(scrooge);
+			people.add(quackmore);
+			people.add(hortense);
+			people.add(della);
+			people.add(donald);
+		}
+
+		public ArrayList<Person> getPeople() {
+			return people;
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/pojo/TableViewerWithDerivedColumns.xwt b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/pojo/TableViewerWithDerivedColumns.xwt
new file mode 100644
index 0000000..b4b60a4
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet017/pojo/TableViewerWithDerivedColumns.xwt
@@ -0,0 +1,76 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.snippet017.pojo"
+    x:Class="org.eclipse.xwt.tests.snippet017.pojo.TableViewerWithDerivedColumns"
+    size="500, 300">
+	<Shell.layout>
+		<GridLayout numColumns="2"/>
+	</Shell.layout>
+	<TableViewer name="TableViewer" x:Style="FULL_SELECTION" input="{Binding Path=people}">
+		<TableViewer.columns headerVisible="true">
+			<TableViewerColumn width="100" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="100" text="Mother" bindingPath="mother.name"/>
+			<TableViewerColumn width="100" text="Father" bindingPath="father.name"/>
+			<TableViewerColumn width="100" text="Grand Mother" bindingPath="mother.mother.name"/>
+		</TableViewer.columns>
+		<TableViewer.table headerVisible="true"/>
+	    <TableViewer.filters>
+			<ViewerFilter>
+				<ViewerFilter.conditions>
+					<Condition property="name" value="unknown" operator="NE"/>
+				</ViewerFilter.conditions>
+			</ViewerFilter>
+		</TableViewer.filters>		
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+
+	<Label text="Name:">
+	</Label>
+	<Text x:Style="BORDER"
+		text="{Binding ElementName=TableViewer,path=singleSelection.(j:TableViewerWithDerivedColumns$Person.name)}" >
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+
+	<Label text="Name:">
+	</Label>
+	<Text x:Style="BORDER"
+		text="{Binding ElementName=TableViewer,path=singleSelection.(j:TableViewerWithDerivedColumns.Person.name)}" >
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+
+	<Label text="Name:">
+	</Label>
+	<Text name="NameText" x:Style="BORDER" dataContext="{Binding ElementName=TableViewer,path=singleSelection}"
+		text="{Binding path=(j:TableViewerWithDerivedColumns.Person.name),UpdateSourceTrigger=PropertyChanged}" >
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+
+	<Label text="Mother:">
+	</Label>
+	<ComboViewer name="MotherCombo" x:Style="READ_ONLY"
+		input="{Binding path=people}"
+		singleSelection="{Binding ElementName=TableViewer,path=singleSelection.(j:TableViewerWithDerivedColumns.Person.mother)}" 
+		bindingPath="name">
+	</ComboViewer>
+
+	<Label text="Father:">
+	</Label>
+	<ComboViewer name="FatherCombo" x:Style="READ_ONLY"
+		input="{Binding path=people}"
+		singleSelection="{Binding ElementName=TableViewer,path=singleSelection.(j:TableViewerWithDerivedColumns.Person.father)}" 
+		bindingPath="name">
+	</ComboViewer>
+	<Button text="Click me" selectionEvent="changeMother"/>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/Bean.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/Bean.java
new file mode 100644
index 0000000..b6ec54b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/Bean.java
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/**
+ * 
+ */
+package org.eclipse.xwt.tests.snippet019;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.util.ArrayList;
+import java.util.List;
+
+public class Bean {
+	/* package */PropertyChangeSupport changeSupport = new PropertyChangeSupport(
+			this);
+	private String text;
+	private List<Bean> list;
+
+	public Bean(String text) {
+		this.text = text;
+		list = new ArrayList<Bean>();
+	}
+
+	public void addPropertyChangeListener(PropertyChangeListener listener) {
+		changeSupport.addPropertyChangeListener(listener);
+	}
+
+	public void removePropertyChangeListener(PropertyChangeListener listener) {
+		changeSupport.removePropertyChangeListener(listener);
+	}
+
+	public String getText() {
+		return text;
+	}
+
+	public void setText(String value) {
+		changeSupport.firePropertyChange("text", this.text,
+				this.text = value);
+	}
+
+	public List<Bean> getList() {
+		if (list == null)
+			return null;
+		return new ArrayList<Bean>(list);
+	}
+
+	public void setList(List<Bean> list) {
+		if (list != null)
+			list = new ArrayList<Bean>(list);
+		changeSupport.firePropertyChange("list", this.list,
+				this.list = list);
+	}
+
+	public boolean hasListeners(String propertyName) {
+		return changeSupport.hasListeners(propertyName);
+	}
+}
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/Snippet019TestSuite.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/Snippet019TestSuite.java
new file mode 100644
index 0000000..6816956
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/Snippet019TestSuite.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.snippet019;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class Snippet019TestSuite extends TestSuite {
+	public static final Test suite() {
+		return new Snippet019TestSuite();
+	}
+
+	public Snippet019TestSuite() {
+		addTest(new TestSuite(Snippet019Tests.class));
+		addTest(new TestSuite(org.eclipse.xwt.tests.snippet019.set.Snippet019Tests.class));
+		addTest(new TestSuite(org.eclipse.xwt.tests.snippet019.array.Snippet019Tests.class));
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/Snippet019Tests.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/Snippet019Tests.java
new file mode 100644
index 0000000..d4a0855
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/Snippet019Tests.java
@@ -0,0 +1,176 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.snippet019;
+
+import java.net.URL;
+
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class Snippet019Tests extends XWTTestCase {
+	
+	public void testTreeViewerWithListFactory_AddRoot() throws Exception {
+		URL url = Snippet019Tests.class.getResource(TreeViewerWithListFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, TreeViewerWithListFactory.createBean("Root"), new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TreeViewer");
+				assertTrue(element instanceof TreeViewer);
+				TreeViewer treeViewer = (TreeViewer) element;
+				Object dataContext = XWT.getDataContext(element);
+				assertTrue(dataContext instanceof Bean);
+				Object input = treeViewer.getInput();
+				assertTrue(input instanceof Bean);
+				assertEquals(input, dataContext);
+				
+				Button button = (Button) XWT.findElementByName(root, "addRootButton");
+				selectButton(button);
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TreeViewer");
+				assertTrue(viewer instanceof TreeViewer);
+				TreeViewer treeViewer = (TreeViewer) viewer;
+				Object input = treeViewer.getInput();
+				assertTrue(input instanceof Bean);
+				
+				Bean bean = (Bean) input;
+				
+				assertEquals(bean.getList().size(), 1);
+			}
+		});
+	}
+	
+	
+	public void testTreeViewerWithListFactory_AddChild1() throws Exception {
+		URL url = Snippet019Tests.class.getResource(TreeViewerWithListFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, TreeViewerWithListFactory.createBean("Root"), new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TreeViewer");
+				assertTrue(element instanceof TreeViewer);
+				TreeViewer treeViewer = (TreeViewer) element;
+				Object dataContext = XWT.getDataContext(element);
+				assertTrue(dataContext instanceof Bean);
+				Object input = treeViewer.getInput();
+				assertTrue(input instanceof Bean);
+				assertEquals(input, dataContext);
+				
+				Button addChildButton = (Button) XWT.findElementByName(root, "addChildButton");
+				assertTrue(!addChildButton.getEnabled());
+				
+				Button button = (Button) XWT.findElementByName(root, "addRootButton");
+				selectButton(button);
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Button addChildbutton = (Button) XWT.findElementByName(root, "addChildButton");
+				assertTrue(addChildbutton.getEnabled());
+			}
+		});
+	}
+
+	public void testTreeViewerWithListFactory_AddChild2() throws Exception {
+		URL url = Snippet019Tests.class.getResource(TreeViewerWithListFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, TreeViewerWithListFactory.createBean("Root"), new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TreeViewer");
+				assertTrue(element instanceof TreeViewer);
+				TreeViewer treeViewer = (TreeViewer) element;
+				Object dataContext = XWT.getDataContext(element);
+				assertTrue(dataContext instanceof Bean);
+				Object input = treeViewer.getInput();
+				assertTrue(input instanceof Bean);
+				assertEquals(input, dataContext);
+				
+				Button addChildButton = (Button) XWT.findElementByName(root, "addChildButton");
+				assertTrue(!addChildButton.getEnabled());
+				
+				Button button = (Button) XWT.findElementByName(root, "addRootButton");
+				selectButton(button);
+				
+				selectButton(addChildButton);
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TreeViewer");
+				assertTrue(viewer instanceof TreeViewer);
+				TreeViewer treeViewer = (TreeViewer) viewer;
+				Object input = treeViewer.getInput();
+				assertTrue(input instanceof Bean);
+				
+				Bean bean = (Bean) input;
+				
+				assertEquals(bean.getList().size(), 1);
+
+				Bean child = bean.getList().get(0);
+				
+				assertEquals(child.getList().size(), 1);
+			}
+		});
+	}
+
+	public void testTreeViewerWithListFactory_Remove() throws Exception {
+		URL url = Snippet019Tests.class.getResource(TreeViewerWithListFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, TreeViewerWithListFactory.createBean("Root"), new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TreeViewer");
+				assertTrue(element instanceof TreeViewer);
+				TreeViewer treeViewer = (TreeViewer) element;
+				Object dataContext = XWT.getDataContext(element);
+				assertTrue(dataContext instanceof Bean);
+				Object input = treeViewer.getInput();
+				assertTrue(input instanceof Bean);
+				assertEquals(input, dataContext);
+				
+				Button addChildButton = (Button) XWT.findElementByName(root, "addChildButton");
+				assertTrue(!addChildButton.getEnabled());
+				
+				Button button = (Button) XWT.findElementByName(root, "addRootButton");
+				selectButton(button);
+				
+				selectButton(addChildButton);
+				
+				Button removeButton = (Button) XWT.findElementByName(root, "removeButton");
+				selectButton(removeButton);
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TreeViewer");
+				assertTrue(viewer instanceof TreeViewer);
+				TreeViewer treeViewer = (TreeViewer) viewer;
+				Object input = treeViewer.getInput();
+				assertTrue(input instanceof Bean);
+				
+				Bean bean = (Bean) input;
+				
+				assertEquals(bean.getList().size(), 1);
+
+				Bean child = bean.getList().get(0);
+				
+				assertEquals(child.getList().size(), 0);
+				
+				Button removeButton = (Button) XWT.findElementByName(root, "addChildButton");
+				assertTrue(!removeButton.getEnabled());
+
+				Button addChildButton = (Button) XWT.findElementByName(root, "addChildButton");
+				assertTrue(!addChildButton.getEnabled());
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/TreeViewerWithListFactory.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/TreeViewerWithListFactory.java
new file mode 100644
index 0000000..63bd8f1
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/TreeViewerWithListFactory.java
@@ -0,0 +1,124 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *     Matthew Hall - bugs 260329, 260337
+ *     Yves YANG - port to XWT
+ *******************************************************************************/
+package org.eclipse.xwt.tests.snippet019;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.observable.value.WritableValue;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class TreeViewerWithListFactory {
+	private IObservableValue clipboard = new WritableValue(XWT.getRealm());
+	
+	/**
+	 * Launch the application
+	 * 
+	 * @param args
+	 */
+	public static void main(String[] args) {
+		URL url = TreeViewerWithListFactory.class.getResource(TreeViewerWithListFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url, new Bean("input"));
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	public void addRoot(Object sender, Event e) {		
+		Bean bean = (Bean) XWT.getDataContext(e.widget);
+		IObservableList observableList = XWT.findObservableList(e.widget, bean, "list");
+		Bean root = createBean("root");
+		observableList.add(root);
+	
+		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");
+		beanViewer.setSelection(new StructuredSelection(root));
+		
+		Text beanText = (Text) XWT.findElementByName(e.widget, "nameText");
+		beanText.selectAll();
+		beanText.setFocus();
+	}
+	
+	public static Bean createBean(String name) {
+		return new Bean(name);
+	}
+	
+	public void addChild(Object sender, Event e) {
+		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");
+		IStructuredSelection structuredSelection = (IStructuredSelection) beanViewer.getSelection();
+		Bean bean = (Bean) structuredSelection.getFirstElement();
+		IObservableList observableList = XWT.findObservableList(e.widget, bean, "list");
+		Bean root = createBean("root");
+		observableList.add(root);
+		
+		beanViewer.setSelection(new StructuredSelection(root));
+		
+		Text beanText = (Text) XWT.findElementByName(e.widget, "nameText");
+		beanText.selectAll();
+		beanText.setFocus();
+	}
+
+	public void remove(Object sender, Event e) {
+		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");
+		IStructuredSelection structuredSelection = (IStructuredSelection) beanViewer.getSelection();
+		Bean bean = (Bean) structuredSelection.getFirstElement();
+		
+		TreeItem selectedItem = beanViewer.getTree().getSelection()[0];
+		TreeItem parentItem = selectedItem.getParentItem();
+		Bean parent;
+		if (parentItem == null) {
+			parent = (Bean) beanViewer.getInput();
+		} else {
+			parent = (Bean) parentItem.getData();
+		}
+		IObservableList observableList = XWT.findObservableList(e.widget, parent, "list");
+		observableList.remove(bean);
+	}
+
+	public void copy(Object sender, Event e) {
+		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");
+		IStructuredSelection structuredSelection = (IStructuredSelection) beanViewer.getSelection();
+		Bean bean = (Bean) structuredSelection.getFirstElement();
+		clipboard.setValue(bean);
+	}
+
+	public void paste(Object sender, Event e) {
+		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");
+		IStructuredSelection structuredSelection = (IStructuredSelection) beanViewer.getSelection();
+		Bean bean = (Bean) structuredSelection.getFirstElement();
+		IObservableList observableList = XWT.findObservableList(e.widget, bean, "list");
+		Bean child = (Bean) clipboard.getValue();
+		observableList.add(child);
+		
+		beanViewer.setSelection(new StructuredSelection(child));
+		
+		Text beanText = (Text) XWT.findElementByName(e.widget, "nameText");
+		beanText.selectAll();
+		beanText.setFocus();
+	}
+
+	public void refresh(Object sender, Event e) {
+		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");
+		beanViewer.refresh();
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/TreeViewerWithListFactory.xwt b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/TreeViewerWithListFactory.xwt
new file mode 100644
index 0000000..ba4dbd1
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/TreeViewerWithListFactory.xwt
@@ -0,0 +1,51 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.snippet019"
+    x:Class="org.eclipse.xwt.tests.snippet019.TreeViewerWithListFactory"
+    size="535, 397" title="XWT Application">
+	<Shell.layout>
+		<GridLayout numColumns="2"/>
+	</Shell.layout>
+	<Composite>
+		<Composite.layout>
+			<RowLayout marginTop="0" marginRight="0" marginLeft="0" marginBottom="0" pack="false"/>
+		</Composite.layout>
+		<Button name="addRootButton" text="Add Root" selectionEvent="addRoot" />
+		<Button name="addChildButton" enabled = "false" text="Add Child" selectionEvent="addChild" />
+		<Button name="removeButton" enabled = "false" text="Remove" selectionEvent="remove" />
+		<Button name="copyButton" enabled = "false" text="Copy" selectionEvent="copy" />
+		<Button name="pasteButton" enabled = "false" text="Paste" selectionEvent="paste" />
+		<Button text="Refresh" selectionEvent="refresh" />
+		<Composite.layoutData>
+			<GridData horizontalSpan="2"/>
+		</Composite.layoutData>
+	</Composite>
+	
+	<TreeViewer name="TreeViewer" x:Style="FULL_SELECTION|BORDER" sseHashlookup="true"
+		 input="{Binding}" bindingPath="text" >
+		<TreeViewer.contentProvider> 
+			<ObservableTreeContentProvider contentPath="list"/>
+		</TreeViewer.contentProvider> 
+		<TreeViewer.tree.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>
+		</TreeViewer.tree.layoutData>
+	</TreeViewer>
+
+	<Label text="Item Name:">
+	</Label>
+	<Text name="nameText" x:Style="BORDER"
+		text="{Binding ElementName=TreeViewer,path=singleSelection.(j:Bean.text)}" >
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Shell.triggers>
+		<Trigger sourceName="TreeViewer" property="singleSelection" operator="NE">
+			<Setter targetName="addChildButton" property="enabled" value="true"/>
+			<Setter targetName="copyButton" property="enabled" value="true"/>
+			<Setter targetName="removeButton" property="enabled" value="true"/>
+		</Trigger>
+	</Shell.triggers>	
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/array/Bean.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/array/Bean.java
new file mode 100644
index 0000000..3c7d6ad
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/array/Bean.java
@@ -0,0 +1,73 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/**
+ * 
+ */
+package org.eclipse.xwt.tests.snippet019.array;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+
+public class Bean {
+	/* package */PropertyChangeSupport changeSupport = new PropertyChangeSupport(
+			this);
+	
+	static Bean[] EMPTY = new Bean[0];
+	
+	private String text;
+	private Bean[] list;
+
+	public Bean(String text) {
+		this.text = text;
+	}
+
+	public void addPropertyChangeListener(PropertyChangeListener listener) {
+		changeSupport.addPropertyChangeListener(listener);
+	}
+
+	public void removePropertyChangeListener(PropertyChangeListener listener) {
+		changeSupport.removePropertyChangeListener(listener);
+	}
+
+	public String getText() {
+		return text;
+	}
+
+	public void setText(String value) {
+		changeSupport.firePropertyChange("text", this.text,
+				this.text = value);
+	}
+
+	public Bean[] getList() {
+		if (list == null)
+			return EMPTY;
+		return list;
+	}
+
+	public void setList(Bean[] list) {
+		if (list != null)
+			list = copy(list);
+		changeSupport.firePropertyChange("list", this.list,
+				this.list = list);
+	}
+	
+	protected Bean[] copy(Bean[] beans) {
+		Bean[] copy = new Bean[beans.length];
+		System.arraycopy(beans, 0, copy, 0, beans.length);
+		return copy;
+	}
+
+	public boolean hasListeners(String propertyName) {
+		return changeSupport.hasListeners(propertyName);
+	}
+}
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/array/Snippet019Tests.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/array/Snippet019Tests.java
new file mode 100644
index 0000000..3cc31f7
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/array/Snippet019Tests.java
@@ -0,0 +1,176 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.snippet019.array;
+
+import java.net.URL;
+
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class Snippet019Tests extends XWTTestCase {
+	
+	public void testTreeViewerWithListFactory_AddRoot() throws Exception {
+		URL url = Snippet019Tests.class.getResource(TreeViewerWithArrayFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, TreeViewerWithArrayFactory.createBean("Root"), new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TreeViewer");
+				assertTrue(element instanceof TreeViewer);
+				TreeViewer treeViewer = (TreeViewer) element;
+				Object dataContext = XWT.getDataContext(element);
+				assertTrue(dataContext instanceof Bean);
+				Object input = treeViewer.getInput();
+				assertTrue(input instanceof Bean);
+				assertEquals(input, dataContext);
+				
+				Button button = (Button) XWT.findElementByName(root, "addRootButton");
+				selectButton(button);
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TreeViewer");
+				assertTrue(viewer instanceof TreeViewer);
+				TreeViewer treeViewer = (TreeViewer) viewer;
+				Object input = treeViewer.getInput();
+				assertTrue(input instanceof Bean);
+				
+				Bean bean = (Bean) input;
+				
+				assertEquals(bean.getList().length, 1);
+			}
+		});
+	}
+	
+	
+	public void testTreeViewerWithListFactory_AddChild1() throws Exception {
+		URL url = Snippet019Tests.class.getResource(TreeViewerWithArrayFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, TreeViewerWithArrayFactory.createBean("Root"), new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TreeViewer");
+				assertTrue(element instanceof TreeViewer);
+				TreeViewer treeViewer = (TreeViewer) element;
+				Object dataContext = XWT.getDataContext(element);
+				assertTrue(dataContext instanceof Bean);
+				Object input = treeViewer.getInput();
+				assertTrue(input instanceof Bean);
+				assertEquals(input, dataContext);
+				
+				Button addChildButton = (Button) XWT.findElementByName(root, "addChildButton");
+				assertTrue(!addChildButton.getEnabled());
+				
+				Button button = (Button) XWT.findElementByName(root, "addRootButton");
+				selectButton(button);
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Button addChildbutton = (Button) XWT.findElementByName(root, "addChildButton");
+				assertTrue(addChildbutton.getEnabled());
+			}
+		});
+	}
+
+	public void testTreeViewerWithListFactory_AddChild2() throws Exception {
+		URL url = Snippet019Tests.class.getResource(TreeViewerWithArrayFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, TreeViewerWithArrayFactory.createBean("Root"), new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TreeViewer");
+				assertTrue(element instanceof TreeViewer);
+				TreeViewer treeViewer = (TreeViewer) element;
+				Object dataContext = XWT.getDataContext(element);
+				assertTrue(dataContext instanceof Bean);
+				Object input = treeViewer.getInput();
+				assertTrue(input instanceof Bean);
+				assertEquals(input, dataContext);
+				
+				Button addChildButton = (Button) XWT.findElementByName(root, "addChildButton");
+				assertTrue(!addChildButton.getEnabled());
+				
+				Button button = (Button) XWT.findElementByName(root, "addRootButton");
+				selectButton(button);
+				
+				selectButton(addChildButton);
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TreeViewer");
+				assertTrue(viewer instanceof TreeViewer);
+				TreeViewer treeViewer = (TreeViewer) viewer;
+				Object input = treeViewer.getInput();
+				assertTrue(input instanceof Bean);
+				
+				Bean bean = (Bean) input;
+				
+				assertEquals(bean.getList().length, 1);
+
+				Bean child = bean.getList()[0];
+				
+				assertEquals(child.getList().length, 1);
+			}
+		});
+	}
+
+	public void testTreeViewerWithListFactory_Remove() throws Exception {
+		URL url = Snippet019Tests.class.getResource(TreeViewerWithArrayFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, TreeViewerWithArrayFactory.createBean("Root"), new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TreeViewer");
+				assertTrue(element instanceof TreeViewer);
+				TreeViewer treeViewer = (TreeViewer) element;
+				Object dataContext = XWT.getDataContext(element);
+				assertTrue(dataContext instanceof Bean);
+				Object input = treeViewer.getInput();
+				assertTrue(input instanceof Bean);
+				assertEquals(input, dataContext);
+				
+				Button addChildButton = (Button) XWT.findElementByName(root, "addChildButton");
+				assertTrue(!addChildButton.getEnabled());
+				
+				Button button = (Button) XWT.findElementByName(root, "addRootButton");
+				selectButton(button);
+				
+				selectButton(addChildButton);
+				
+				Button removeButton = (Button) XWT.findElementByName(root, "removeButton");
+				selectButton(removeButton);
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TreeViewer");
+				assertTrue(viewer instanceof TreeViewer);
+				TreeViewer treeViewer = (TreeViewer) viewer;
+				Object input = treeViewer.getInput();
+				assertTrue(input instanceof Bean);
+				
+				Bean bean = (Bean) input;
+				
+				assertEquals(bean.getList().length, 1);
+
+				Bean child = bean.getList()[0];
+				
+				assertEquals(child.getList().length, 0);
+				
+				Button removeButton = (Button) XWT.findElementByName(root, "addChildButton");
+				assertTrue(!removeButton.getEnabled());
+
+				Button addChildButton = (Button) XWT.findElementByName(root, "addChildButton");
+				assertTrue(!addChildButton.getEnabled());
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/array/TreeViewerWithArrayFactory.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/array/TreeViewerWithArrayFactory.java
new file mode 100644
index 0000000..ea78454
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/array/TreeViewerWithArrayFactory.java
@@ -0,0 +1,124 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *     Matthew Hall - bugs 260329, 260337
+ *     Yves YANG - port to XWT
+ *******************************************************************************/
+package org.eclipse.xwt.tests.snippet019.array;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.observable.value.WritableValue;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class TreeViewerWithArrayFactory {
+	private IObservableValue clipboard = new WritableValue(XWT.getRealm());
+	
+	/**
+	 * Launch the application
+	 * 
+	 * @param args
+	 */
+	public static void main(String[] args) {
+		URL url = TreeViewerWithArrayFactory.class.getResource(TreeViewerWithArrayFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url, new Bean("input"));
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	public void addRoot(Object sender, Event e) {		
+		Bean bean = (Bean) XWT.getDataContext(e.widget);
+		IObservableList observableList = XWT.findObservableList(e.widget, bean, "list");
+		Bean root = createBean("root");
+		observableList.add(root);
+	
+		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");
+		beanViewer.setSelection(new StructuredSelection(root));
+		
+		Text beanText = (Text) XWT.findElementByName(e.widget, "nameText");
+		beanText.selectAll();
+		beanText.setFocus();
+	}
+	
+	public static Bean createBean(String name) {
+		return new Bean(name);
+	}
+	
+	public void addChild(Object sender, Event e) {
+		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");
+		IStructuredSelection structuredSelection = (IStructuredSelection) beanViewer.getSelection();
+		Bean bean = (Bean) structuredSelection.getFirstElement();
+		IObservableList observableList = XWT.findObservableList(e.widget, bean, "list");
+		Bean root = createBean("root");
+		observableList.add(root);
+		
+		beanViewer.setSelection(new StructuredSelection(root));
+		
+		Text beanText = (Text) XWT.findElementByName(e.widget, "nameText");
+		beanText.selectAll();
+		beanText.setFocus();
+	}
+
+	public void remove(Object sender, Event e) {
+		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");
+		IStructuredSelection structuredSelection = (IStructuredSelection) beanViewer.getSelection();
+		Bean bean = (Bean) structuredSelection.getFirstElement();
+		
+		TreeItem selectedItem = beanViewer.getTree().getSelection()[0];
+		TreeItem parentItem = selectedItem.getParentItem();
+		Bean parent;
+		if (parentItem == null) {
+			parent = (Bean) beanViewer.getInput();
+		} else {
+			parent = (Bean) parentItem.getData();
+		}
+		IObservableList observableList = XWT.findObservableList(e.widget, parent, "list");
+		observableList.remove(bean);
+	}
+
+	public void copy(Object sender, Event e) {
+		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");
+		IStructuredSelection structuredSelection = (IStructuredSelection) beanViewer.getSelection();
+		Bean bean = (Bean) structuredSelection.getFirstElement();
+		clipboard.setValue(bean);
+	}
+
+	public void paste(Object sender, Event e) {
+		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");
+		IStructuredSelection structuredSelection = (IStructuredSelection) beanViewer.getSelection();
+		Bean bean = (Bean) structuredSelection.getFirstElement();
+		IObservableList observableList = XWT.findObservableList(e.widget, bean, "list");
+		Bean child = (Bean) clipboard.getValue();
+		observableList.add(child);
+		
+		beanViewer.setSelection(new StructuredSelection(child));
+		
+		Text beanText = (Text) XWT.findElementByName(e.widget, "nameText");
+		beanText.selectAll();
+		beanText.setFocus();
+	}
+
+	public void refresh(Object sender, Event e) {
+		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");
+		beanViewer.refresh();
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/array/TreeViewerWithArrayFactory.xwt b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/array/TreeViewerWithArrayFactory.xwt
new file mode 100644
index 0000000..f0d2b65
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/array/TreeViewerWithArrayFactory.xwt
@@ -0,0 +1,51 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.snippet019.array"
+    x:Class="org.eclipse.xwt.tests.snippet019.array.TreeViewerWithArrayFactory"
+    size="535, 397" title="XWT Application">
+	<Shell.layout>
+		<GridLayout numColumns="2"/>
+	</Shell.layout>
+	<Composite>
+		<Composite.layout>
+			<RowLayout marginTop="0" marginRight="0" marginLeft="0" marginBottom="0" pack="false"/>
+		</Composite.layout>
+		<Button name="addRootButton" text="Add Root" selectionEvent="addRoot" />
+		<Button name="addChildButton" enabled = "false" text="Add Child" selectionEvent="addChild" />
+		<Button name="removeButton" enabled = "false" text="Remove" selectionEvent="remove" />
+		<Button name="copyButton" enabled = "false" text="Copy" selectionEvent="copy" />
+		<Button name="pasteButton" enabled = "false" text="Paste" selectionEvent="paste" />
+		<Button text="Refresh" selectionEvent="refresh" />
+		<Composite.layoutData>
+			<GridData horizontalSpan="2"/>
+		</Composite.layoutData>
+	</Composite>
+	
+	<TreeViewer name="TreeViewer" x:Style="FULL_SELECTION|BORDER" sseHashlookup="true"
+		 input="{Binding}" bindingPath="text" >
+		<TreeViewer.contentProvider> 
+			<ObservableTreeContentProvider contentPath="list"/>
+		</TreeViewer.contentProvider> 
+		<TreeViewer.tree.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>
+		</TreeViewer.tree.layoutData>
+	</TreeViewer>
+
+	<Label text="Item Name:">
+	</Label>
+	<Text name="nameText" x:Style="BORDER"
+		text="{Binding ElementName=TreeViewer,path=singleSelection.(j:Bean.text)}" >
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Shell.triggers>
+		<Trigger sourceName="TreeViewer" property="singleSelection" operator="NE">
+			<Setter targetName="addChildButton" property="enabled" value="true"/>
+			<Setter targetName="copyButton" property="enabled" value="true"/>
+			<Setter targetName="removeButton" property="enabled" value="true"/>
+		</Trigger>
+	</Shell.triggers>	
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/set/Bean.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/set/Bean.java
new file mode 100644
index 0000000..63a6c24
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/set/Bean.java
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/**
+ * 
+ */
+package org.eclipse.xwt.tests.snippet019.set;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.util.HashSet;
+import java.util.Set;
+
+public class Bean {
+	/* package */PropertyChangeSupport changeSupport = new PropertyChangeSupport(
+			this);
+	private String text;
+	private Set<Bean> list;
+
+	public Bean(String text) {
+		this.text = text;
+		list = new HashSet<Bean>();
+	}
+
+	public void addPropertyChangeListener(PropertyChangeListener listener) {
+		changeSupport.addPropertyChangeListener(listener);
+	}
+
+	public void removePropertyChangeListener(PropertyChangeListener listener) {
+		changeSupport.removePropertyChangeListener(listener);
+	}
+
+	public String getText() {
+		return text;
+	}
+
+	public void setText(String value) {
+		changeSupport.firePropertyChange("text", this.text,
+				this.text = value);
+	}
+
+	public Set<Bean> getList() {
+		if (list == null)
+			return null;
+		return new HashSet<Bean>(list);
+	}
+
+	public void setList(Set<Bean> list) {
+		if (list != null)
+			list = new HashSet<Bean>(list);
+		changeSupport.firePropertyChange("list", this.list,
+				this.list = list);
+	}
+
+	public boolean hasListeners(String propertyName) {
+		return changeSupport.hasListeners(propertyName);
+	}
+}
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/set/Snippet019Tests.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/set/Snippet019Tests.java
new file mode 100644
index 0000000..64a7b27
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/set/Snippet019Tests.java
@@ -0,0 +1,176 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.snippet019.set;
+
+import java.net.URL;
+
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class Snippet019Tests extends XWTTestCase {
+	
+	public void testTreeViewerWithListFactory_AddRoot() throws Exception {
+		URL url = Snippet019Tests.class.getResource(TreeViewerWithSetFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, TreeViewerWithSetFactory.createBean("Root"), new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TreeViewer");
+				assertTrue(element instanceof TreeViewer);
+				TreeViewer treeViewer = (TreeViewer) element;
+				Object dataContext = XWT.getDataContext(element);
+				assertTrue(dataContext instanceof Bean);
+				Object input = treeViewer.getInput();
+				assertTrue(input instanceof Bean);
+				assertEquals(input, dataContext);
+				
+				Button button = (Button) XWT.findElementByName(root, "addRootButton");
+				selectButton(button);
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TreeViewer");
+				assertTrue(viewer instanceof TreeViewer);
+				TreeViewer treeViewer = (TreeViewer) viewer;
+				Object input = treeViewer.getInput();
+				assertTrue(input instanceof Bean);
+				
+				Bean bean = (Bean) input;
+				
+				assertEquals(bean.getList().size(), 1);
+			}
+		});
+	}
+	
+	
+	public void testTreeViewerWithListFactory_AddChild1() throws Exception {
+		URL url = Snippet019Tests.class.getResource(TreeViewerWithSetFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, TreeViewerWithSetFactory.createBean("Root"), new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TreeViewer");
+				assertTrue(element instanceof TreeViewer);
+				TreeViewer treeViewer = (TreeViewer) element;
+				Object dataContext = XWT.getDataContext(element);
+				assertTrue(dataContext instanceof Bean);
+				Object input = treeViewer.getInput();
+				assertTrue(input instanceof Bean);
+				assertEquals(input, dataContext);
+				
+				Button addChildButton = (Button) XWT.findElementByName(root, "addChildButton");
+				assertTrue(!addChildButton.getEnabled());
+				
+				Button button = (Button) XWT.findElementByName(root, "addRootButton");
+				selectButton(button);
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Button addChildbutton = (Button) XWT.findElementByName(root, "addChildButton");
+				assertTrue(addChildbutton.getEnabled());
+			}
+		});
+	}
+
+	public void testTreeViewerWithListFactory_AddChild2() throws Exception {
+		URL url = Snippet019Tests.class.getResource(TreeViewerWithSetFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, TreeViewerWithSetFactory.createBean("Root"), new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TreeViewer");
+				assertTrue(element instanceof TreeViewer);
+				TreeViewer treeViewer = (TreeViewer) element;
+				Object dataContext = XWT.getDataContext(element);
+				assertTrue(dataContext instanceof Bean);
+				Object input = treeViewer.getInput();
+				assertTrue(input instanceof Bean);
+				assertEquals(input, dataContext);
+				
+				Button addChildButton = (Button) XWT.findElementByName(root, "addChildButton");
+				assertTrue(!addChildButton.getEnabled());
+				
+				Button button = (Button) XWT.findElementByName(root, "addRootButton");
+				selectButton(button);
+				
+				selectButton(addChildButton);
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TreeViewer");
+				assertTrue(viewer instanceof TreeViewer);
+				TreeViewer treeViewer = (TreeViewer) viewer;
+				Object input = treeViewer.getInput();
+				assertTrue(input instanceof Bean);
+				
+				Bean bean = (Bean) input;
+				
+				assertEquals(bean.getList().size(), 1);
+
+				Bean child = bean.getList().iterator().next();
+				
+				assertEquals(child.getList().size(), 1);
+			}
+		});
+	}
+
+	public void testTreeViewerWithListFactory_Remove() throws Exception {
+		URL url = Snippet019Tests.class.getResource(TreeViewerWithSetFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, TreeViewerWithSetFactory.createBean("Root"), new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TreeViewer");
+				assertTrue(element instanceof TreeViewer);
+				TreeViewer treeViewer = (TreeViewer) element;
+				Object dataContext = XWT.getDataContext(element);
+				assertTrue(dataContext instanceof Bean);
+				Object input = treeViewer.getInput();
+				assertTrue(input instanceof Bean);
+				assertEquals(input, dataContext);
+				
+				Button addChildButton = (Button) XWT.findElementByName(root, "addChildButton");
+				assertTrue(!addChildButton.getEnabled());
+				
+				Button button = (Button) XWT.findElementByName(root, "addRootButton");
+				selectButton(button);
+				
+				selectButton(addChildButton);
+				
+				Button removeButton = (Button) XWT.findElementByName(root, "removeButton");
+				selectButton(removeButton);
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Object viewer = XWT.findElementByName(root, "TreeViewer");
+				assertTrue(viewer instanceof TreeViewer);
+				TreeViewer treeViewer = (TreeViewer) viewer;
+				Object input = treeViewer.getInput();
+				assertTrue(input instanceof Bean);
+				
+				Bean bean = (Bean) input;
+				
+				assertEquals(bean.getList().size(), 1);
+
+				Bean child = bean.getList().iterator().next();
+				
+				assertEquals(child.getList().size(), 0);
+				
+				Button removeButton = (Button) XWT.findElementByName(root, "addChildButton");
+				assertTrue(!removeButton.getEnabled());
+
+				Button addChildButton = (Button) XWT.findElementByName(root, "addChildButton");
+				assertTrue(!addChildButton.getEnabled());
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/set/TreeViewerWithSetFactory.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/set/TreeViewerWithSetFactory.java
new file mode 100644
index 0000000..1852f9f
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/set/TreeViewerWithSetFactory.java
@@ -0,0 +1,124 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *     Matthew Hall - bugs 260329, 260337
+ *     Yves YANG - port to XWT
+ *******************************************************************************/
+package org.eclipse.xwt.tests.snippet019.set;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.set.IObservableSet;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.observable.value.WritableValue;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class TreeViewerWithSetFactory {
+	private IObservableValue clipboard = new WritableValue(XWT.getRealm());
+	
+	/**
+	 * Launch the application
+	 * 
+	 * @param args
+	 */
+	public static void main(String[] args) {
+		URL url = TreeViewerWithSetFactory.class.getResource(TreeViewerWithSetFactory.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url, new Bean("input"));
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	public void addRoot(Object sender, Event e) {		
+		Bean bean = (Bean) XWT.getDataContext(e.widget);
+		IObservableSet observableList = XWT.findObservableSet(e.widget, bean, "list");
+		Bean root = createBean("root");
+		observableList.add(root);
+	
+		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");
+		beanViewer.setSelection(new StructuredSelection(root));
+		
+		Text beanText = (Text) XWT.findElementByName(e.widget, "nameText");
+		beanText.selectAll();
+		beanText.setFocus();
+	}
+	
+	public static Bean createBean(String name) {
+		return new Bean(name);
+	}
+	
+	public void addChild(Object sender, Event e) {
+		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");
+		IStructuredSelection structuredSelection = (IStructuredSelection) beanViewer.getSelection();
+		Bean bean = (Bean) structuredSelection.getFirstElement();
+		IObservableSet observableList = XWT.findObservableSet(e.widget, bean, "list");
+		Bean root = createBean("root");
+		observableList.add(root);
+		
+		beanViewer.setSelection(new StructuredSelection(root));
+		
+		Text beanText = (Text) XWT.findElementByName(e.widget, "nameText");
+		beanText.selectAll();
+		beanText.setFocus();
+	}
+
+	public void remove(Object sender, Event e) {
+		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");
+		IStructuredSelection structuredSelection = (IStructuredSelection) beanViewer.getSelection();
+		Bean bean = (Bean) structuredSelection.getFirstElement();
+		
+		TreeItem selectedItem = beanViewer.getTree().getSelection()[0];
+		TreeItem parentItem = selectedItem.getParentItem();
+		Bean parent;
+		if (parentItem == null) {
+			parent = (Bean) beanViewer.getInput();
+		} else {
+			parent = (Bean) parentItem.getData();
+		}
+		IObservableSet observableList = XWT.findObservableSet(e.widget, parent, "list");
+		observableList.remove(bean);
+	}
+
+	public void copy(Object sender, Event e) {
+		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");
+		IStructuredSelection structuredSelection = (IStructuredSelection) beanViewer.getSelection();
+		Bean bean = (Bean) structuredSelection.getFirstElement();
+		clipboard.setValue(bean);
+	}
+
+	public void paste(Object sender, Event e) {
+		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");
+		IStructuredSelection structuredSelection = (IStructuredSelection) beanViewer.getSelection();
+		Bean bean = (Bean) structuredSelection.getFirstElement();
+		IObservableSet observableList = XWT.findObservableSet(e.widget, bean, "list");
+		Bean child = (Bean) clipboard.getValue();
+		observableList.add(child);
+		
+		beanViewer.setSelection(new StructuredSelection(child));
+		
+		Text beanText = (Text) XWT.findElementByName(e.widget, "nameText");
+		beanText.selectAll();
+		beanText.setFocus();
+	}
+
+	public void refresh(Object sender, Event e) {
+		TreeViewer beanViewer = (TreeViewer) XWT.findElementByName(e.widget, "TreeViewer");
+		beanViewer.refresh();
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/set/TreeViewerWithSetFactory.xwt b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/set/TreeViewerWithSetFactory.xwt
new file mode 100644
index 0000000..2a1c4be
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet019/set/TreeViewerWithSetFactory.xwt
@@ -0,0 +1,51 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.snippet019.set"
+    x:Class="org.eclipse.xwt.tests.snippet019.set.TreeViewerWithSetFactory"
+    size="535, 397" title="XWT Application">
+	<Shell.layout>
+		<GridLayout numColumns="2"/>
+	</Shell.layout>
+	<Composite>
+		<Composite.layout>
+			<RowLayout marginTop="0" marginRight="0" marginLeft="0" marginBottom="0" pack="false"/>
+		</Composite.layout>
+		<Button name="addRootButton" text="Add Root" selectionEvent="addRoot" />
+		<Button name="addChildButton" enabled = "false" text="Add Child" selectionEvent="addChild" />
+		<Button name="removeButton" enabled = "false" text="Remove" selectionEvent="remove" />
+		<Button name="copyButton" enabled = "false" text="Copy" selectionEvent="copy" />
+		<Button name="pasteButton" enabled = "false" text="Paste" selectionEvent="paste" />
+		<Button text="Refresh" selectionEvent="refresh" />
+		<Composite.layoutData>
+			<GridData horizontalSpan="2"/>
+		</Composite.layoutData>
+	</Composite>
+	
+	<TreeViewer name="TreeViewer" x:Style="FULL_SELECTION|BORDER" sseHashlookup="true"
+		 input="{Binding}" bindingPath="text" >
+		<TreeViewer.contentProvider> 
+			<ObservableTreeContentProvider contentPath="list"/>
+		</TreeViewer.contentProvider> 
+		<TreeViewer.tree.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>
+		</TreeViewer.tree.layoutData>
+	</TreeViewer>
+
+	<Label text="Item Name:">
+	</Label>
+	<Text name="nameText" x:Style="BORDER"
+		text="{Binding ElementName=TreeViewer,path=singleSelection.(j:Bean.text)}" >
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Shell.triggers>
+		<Trigger sourceName="TreeViewer" property="singleSelection" operator="NE">
+			<Setter targetName="addChildButton" property="enabled" value="true"/>
+			<Setter targetName="copyButton" property="enabled" value="true"/>
+			<Setter targetName="removeButton" property="enabled" value="true"/>
+		</Trigger>
+	</Shell.triggers>	
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet025/TableViewerWithDerivedColumns.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet025/TableViewerWithDerivedColumns.java
new file mode 100644
index 0000000..f8a017d
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet025/TableViewerWithDerivedColumns.java
@@ -0,0 +1,113 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 The Pampered Chef, Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Coconut Palm Software, Inc. - Initial API and implementation
+ *     Matthew Hall - bugs 260329, 260337
+ *     Yves YANG - port to XWT
+ ******************************************************************************/
+
+package org.eclipse.xwt.tests.snippet025;
+
+import java.net.URL;
+import java.util.ArrayList;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * Demonstrates binding a TableViewer to a collection.
+ */
+public class TableViewerWithDerivedColumns {
+	public static void main(String[] args) {
+		ViewModel viewModel = new ViewModel();
+		URL url = TableViewerWithDerivedColumns.class.getResource(TableViewerWithDerivedColumns.class.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url, viewModel);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	private static Person UNKNOWN = new Person("unknown", null, null);
+
+	// The data model class. This is normally a persistent class of some sort.
+	public static class Person {
+		// A property...
+		String name = "Donald Duck";
+		Person mother;
+		Person father;
+
+		public Person(String name, Person mother, Person father) {
+			this.name = name;
+			this.mother = mother;
+			this.father = father;
+		}
+
+		public String getName() {
+			return name;
+		}
+
+		public void setName(String name) {
+			this.name = name;
+		}
+
+		public Person getMother() {
+			return mother;
+		}
+
+		public void setMother(Person mother) {
+			this.mother = mother;
+		}
+
+		public Person getFather() {
+			return father;
+		}
+
+		public void setFather(Person father) {
+			this.father = father;
+		}
+
+		public String toString() {
+			return name;
+		}
+	}
+
+	// The View's model--the root of our Model graph for this particular GUI.
+	//
+	// Typically each View class has a corresponding ViewModel class.
+	// The ViewModel is responsible for getting the objects to edit from the
+	// data access tier. Since this snippet doesn't have any persistent objects
+	// ro retrieve, this ViewModel just instantiates a model object to edit.
+	public static class ViewModel {
+		// The model to bind
+		private ArrayList<Person> people = new ArrayList<Person>();
+		{
+			Person fergus = new Person("Fergus McDuck", UNKNOWN, UNKNOWN);
+			Person downy = new Person("Downy O'Drake", UNKNOWN, UNKNOWN);
+			Person scrooge = new Person("Scrooge McDuck", downy, fergus);
+			Person hortense = new Person("Hortense McDuck", downy, fergus);
+			Person quackmore = new Person("Quackmore Duck", UNKNOWN, UNKNOWN);
+			Person della = new Person("Della Duck", hortense, quackmore);
+			Person donald = new Person("Donald Duck", hortense, quackmore);
+			people.add(UNKNOWN);
+			people.add(downy);
+			people.add(fergus);
+			people.add(scrooge);
+			people.add(quackmore);
+			people.add(hortense);
+			people.add(della);
+			people.add(donald);
+		}
+
+		public ArrayList<Person> getPeople() {
+			return people;
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet025/TableViewerWithDerivedColumns.xwt b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet025/TableViewerWithDerivedColumns.xwt
new file mode 100644
index 0000000..65d789c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snippet025/TableViewerWithDerivedColumns.xwt
@@ -0,0 +1,77 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.snippet025"
+    size="500, 300">
+	<Shell.layout>
+		<GridLayout numColumns="2"/>
+	</Shell.layout>
+	<TableViewer name="TableViewer" x:Style="FULL_SELECTION" input="{Binding Path=people}">
+		<TableViewer.columns headerVisible="true">
+			<TableViewerColumn width="100" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="100" text="Mother" bindingPath="mother.name"/>
+			<TableViewerColumn width="100" text="Father" bindingPath="father.name"/>
+			<TableViewerColumn width="100" text="Maternal Grandmother" bindingPath="mother.mother.name"/>
+			<TableViewerColumn width="100" text="Maternal Grandfather" bindingPath="mother.father.name"/>
+			<TableViewerColumn width="100" text="Paternal Grandmother" bindingPath="father.mother.name"/>
+			<TableViewerColumn width="100" text="Paternal Grandfather" bindingPath="father.father.name"/>
+		</TableViewer.columns>
+		<TableViewer.table headerVisible="true"/>
+	    <TableViewer.filters>
+			<ViewerFilter>
+				<ViewerFilter.conditions>
+					<Condition property="name" value="unknown" operator="NE"/>
+				</ViewerFilter.conditions>
+			</ViewerFilter>
+		</TableViewer.filters>		
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+
+	<Label text="Name:">
+	</Label>
+	<Text x:Style="BORDER"
+		text="{Binding ElementName=TableViewer,path=singleSelection.(j:TableViewerWithDerivedColumns$Person.name)}" >
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+
+	<Label text="Name:">
+	</Label>
+	<Text x:Style="BORDER"
+		text="{Binding ElementName=TableViewer,path=singleSelection.(j:TableViewerWithDerivedColumns.Person.name)}" >
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+
+	<Label text="Name:">
+	</Label>
+	<Text x:Style="BORDER" dataContext="{Binding ElementName=TableViewer,path=singleSelection}"
+		text="{Binding path=(j:TableViewerWithDerivedColumns.Person.name),UpdateSourceTrigger=PropertyChanged}" >
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+
+	<Label text="Mother:">
+	</Label>
+	<ComboViewer x:Style="READ_ONLY"
+		input="{Binding path=people}"
+		singleSelection="{Binding ElementName=TableViewer,path=singleSelection.(j:TableViewerWithDerivedColumns.Person.mother)}" 
+		bindingPath="name">
+	</ComboViewer>
+
+	<Label text="Father:">
+	</Label>
+	<ComboViewer x:Style="READ_ONLY"
+		input="{Binding path=people}"
+		singleSelection="{Binding ElementName=TableViewer,path=singleSelection.(j:TableViewerWithDerivedColumns.Person.father)}" 
+		bindingPath="name">
+	</ComboViewer>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet004DataBindingContextErrorLabel.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet004DataBindingContextErrorLabel.java
new file mode 100644
index 0000000..67a1462
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet004DataBindingContextErrorLabel.java
@@ -0,0 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Brad Reynolds and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Brad Reynolds - initial API and implementation
+ *     Brad Reynolds - bug 116920, 159768
+ *     Matthew Hall - bug 260329
+ ******************************************************************************/
+
+package org.eclipse.xwt.tests.snipppets;
+
+import org.eclipse.core.databinding.AggregateValidationStatus;
+import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.UpdateValueStrategy;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.value.WritableValue;
+import org.eclipse.core.databinding.validation.IValidator;
+import org.eclipse.core.databinding.validation.ValidationStatus;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+
+/**
+ * Snippet that displays how to bind the validation error of the
+ * {@link DataBindingContext} to a label. http://www.eclipse.org
+ * 
+ * @since 3.2
+ */
+public class Snippet004DataBindingContextErrorLabel {
+	public static void main(String[] args) {
+		final Display display = new Display();
+		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
+			public void run() {
+				Shell shell = new Shell(display);
+				shell.setText("Data Binding Snippet 004");
+				shell.setLayout(new GridLayout(2, false));
+
+				new Label(shell, SWT.NONE).setText("Enter '5' to be valid:");
+
+				Text text = new Text(shell, SWT.BORDER);
+				WritableValue value = WritableValue.withValueType(String.class);
+				new Label(shell, SWT.NONE).setText("Error:");
+
+				Label errorLabel = new Label(shell, SWT.BORDER);
+				errorLabel.setForeground(display.getSystemColor(SWT.COLOR_RED));
+				GridDataFactory.swtDefaults().hint(200, SWT.DEFAULT).applyTo(
+						errorLabel);
+
+				DataBindingContext dbc = new DataBindingContext();
+
+				// Bind the text to the value.
+				dbc.bindValue(
+						SWTObservables.observeText(text, SWT.Modify),
+						value,
+						new UpdateValueStrategy().setAfterConvertValidator(new FiveValidator()),
+						null);
+
+				// Bind the error label to the validation error on the dbc.
+				dbc.bindValue(SWTObservables.observeText(errorLabel),
+						new AggregateValidationStatus(dbc.getBindings(),
+								AggregateValidationStatus.MAX_SEVERITY));
+
+				shell.pack();
+				shell.open();
+				while (!shell.isDisposed()) {
+					if (!display.readAndDispatch())
+						display.sleep();
+				}
+			}
+		});
+		display.dispose();
+	}
+
+	/**
+	 * Validator that returns validation errors for any value other than 5.
+	 * 
+	 * @since 3.2
+	 */
+	private static class FiveValidator implements IValidator {
+		public IStatus validate(Object value) {
+			return ("5".equals(value)) ? Status.OK_STATUS : ValidationStatus
+					.error("the value was '" + value + "', not '5'");
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet007ColorLabelProvider.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet007ColorLabelProvider.java
new file mode 100644
index 0000000..21c5842
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet007ColorLabelProvider.java
@@ -0,0 +1,222 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Brad Reynolds and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Brad Reynolds - initial API and implementation
+ *     IBM Corporation - see bug 137934
+ ******************************************************************************/
+
+package org.eclipse.xwt.tests.snipppets;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.databinding.beans.BeansObservables;
+import org.eclipse.core.databinding.observable.Observables;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.map.IObservableMap;
+import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
+import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ITableColorProvider;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+
+/**
+ * An example showing how to create a {@link ILabelProvider label provider} that
+ * to provide colors.
+ * 
+ * @since 3.2
+ */
+public class Snippet007ColorLabelProvider {
+	/**
+	 * @param args
+	 */
+	public static void main(String[] args) {
+		final List persons = new ArrayList();
+		persons.add(new Person("Fiona Apple", Person.FEMALE));
+		persons.add(new Person("Elliot Smith", Person.MALE));
+		persons.add(new Person("Diana Krall", Person.FEMALE));
+		persons.add(new Person("David Gilmour", Person.MALE));
+
+		final Display display = new Display();
+		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
+			public void run() {
+				Shell shell = new Shell(display);
+				shell.setText("Gender Bender");
+				shell.setLayout(new GridLayout());
+
+				Table table = new Table(shell, SWT.SINGLE | SWT.H_SCROLL
+						| SWT.V_SCROLL | SWT.BORDER);
+				GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
+				table.setLayoutData(gridData);
+				table.setHeaderVisible(true);
+				table.setLinesVisible(true);
+				TableColumn column = new TableColumn(table, SWT.NONE);
+				column.setText("No");
+				column.setWidth(20);
+				column = new TableColumn(table, SWT.NONE);
+				column.setText("Name");
+				column.setWidth(100);
+				final TableViewer viewer = new TableViewer(table);
+
+				IObservableList observableList = Observables
+						.staticObservableList(persons);
+				ObservableListContentProvider contentProvider = new ObservableListContentProvider();
+
+				viewer.setContentProvider(contentProvider);
+
+				// this does not have to correspond to the columns in the table,
+				// we just list all attributes that affect the table content.
+				IObservableMap[] attributes = BeansObservables.observeMaps(
+						contentProvider.getKnownElements(), Person.class,
+						new String[] { "name", "gender" });
+
+				class ColorLabelProvider extends ObservableMapLabelProvider
+						implements ITableColorProvider {
+					Color male = display.getSystemColor(SWT.COLOR_BLUE);
+
+					Color female = new Color(display, 255, 192, 203);
+
+					ColorLabelProvider(IObservableMap[] attributes) {
+						super(attributes);
+					}
+
+					// to drive home the point that attributes does not have to
+					// match
+					// the columns
+					// in the table, we change the column text as follows:
+					public String getColumnText(Object element, int index) {
+						if (index == 0) {
+							return Integer
+									.toString(persons.indexOf(element) + 1);
+						}
+						return ((Person) element).getName();
+					}
+
+					public Color getBackground(Object element, int index) {
+						return null;
+					}
+
+					public Color getForeground(Object element, int index) {
+						if (index == 0)
+							return null;
+						Person person = (Person) element;
+						return (person.getGender() == Person.MALE) ? male
+								: female;
+					}
+
+					public void dispose() {
+						super.dispose();
+						female.dispose();
+					}
+				}
+				viewer.setLabelProvider(new ColorLabelProvider(attributes));
+
+				viewer.setInput(observableList);
+
+				table.getColumn(0).pack();
+
+				Button button = new Button(shell, SWT.PUSH);
+				button.setText("Toggle Gender");
+				button.addSelectionListener(new SelectionAdapter() {
+					public void widgetSelected(SelectionEvent arg0) {
+						StructuredSelection selection = (StructuredSelection) viewer
+								.getSelection();
+						if (selection != null && !selection.isEmpty()) {
+							Person person = (Person) selection
+									.getFirstElement();
+							person
+									.setGender((person.getGender() == Person.MALE) ? Person.FEMALE
+											: Person.MALE);
+						}
+					}
+				});
+
+				shell.setSize(300, 400);
+				shell.open();
+
+				while (!shell.isDisposed()) {
+					if (!display.readAndDispatch())
+						display.sleep();
+				}
+			}
+		});
+		display.dispose();
+	}
+
+	static class Person {
+		static final int MALE = 0;
+
+		static final int FEMALE = 1;
+
+		private String name;
+
+		private int gender;
+
+		private PropertyChangeSupport changeSupport = new PropertyChangeSupport(
+				this);
+
+		Person(String name, int gender) {
+			this.name = name;
+			this.gender = gender;
+		}
+
+		/**
+		 * Returns the name. Method declared public to satisfy Java bean
+		 * conventions
+		 * 
+		 * @return the name
+		 */
+		public String getName() {
+			return name;
+		}
+
+		/**
+		 * @param listener
+		 */
+		public void addPropertyChangeListener(PropertyChangeListener listener) {
+			changeSupport.addPropertyChangeListener(listener);
+		}
+
+		public void removePropertyChangeListener(PropertyChangeListener listener) {
+			changeSupport.removePropertyChangeListener(listener);
+		}
+
+		/**
+		 * Returns the gender. Method declared public to satisfy Java bean
+		 * conventions
+		 * 
+		 * @return the gender
+		 */
+		public int getGender() {
+			return gender;
+		}
+
+		void setGender(int gender) {
+			changeSupport.firePropertyChange("gender", this.gender,
+					this.gender = gender);
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet013TableViewerEditing.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet013TableViewerEditing.java
new file mode 100644
index 0000000..e8d915e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet013TableViewerEditing.java
@@ -0,0 +1,238 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 The Pampered Chef, Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     The Pampered Chef, Inc. - initial API and implementation
+ *     Tom Schindl - cell editing
+ *     Matthew Hall - bugs 260329, 260337
+ ******************************************************************************/
+
+package org.eclipse.xwt.tests.snipppets;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.beans.BeanProperties;
+import org.eclipse.core.databinding.beans.BeansObservables;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.list.WritableList;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.jface.databinding.viewers.ObservableValueEditingSupport;
+import org.eclipse.jface.databinding.viewers.ViewerSupport;
+import org.eclipse.jface.databinding.viewers.ViewersObservables;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jface.viewers.ColumnViewer;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.jface.viewers.TextCellEditor;
+import org.eclipse.jface.viewers.ViewerCell;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Table;
+
+/**
+ * Demonstrates binding a TableViewer to a collection using the 3.3 Viewer APIs.
+ */
+public class Snippet013TableViewerEditing {
+	public static void main(String[] args) {
+		final Display display = new Display();
+		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
+			public void run() {
+				ViewModel viewModel = new ViewModel();
+				Shell shell = new View(viewModel).createShell();
+
+				// The SWT event loop
+				while (!shell.isDisposed()) {
+					if (!display.readAndDispatch()) {
+						display.sleep();
+					}
+				}
+			}
+		});
+	}
+
+	// Minimal JavaBeans support
+	public static abstract class AbstractModelObject {
+		private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(
+				this);
+
+		public void addPropertyChangeListener(PropertyChangeListener listener) {
+			propertyChangeSupport.addPropertyChangeListener(listener);
+		}
+
+		public void addPropertyChangeListener(String propertyName,
+				PropertyChangeListener listener) {
+			propertyChangeSupport.addPropertyChangeListener(propertyName,
+					listener);
+		}
+
+		public void removePropertyChangeListener(PropertyChangeListener listener) {
+			propertyChangeSupport.removePropertyChangeListener(listener);
+		}
+
+		public void removePropertyChangeListener(String propertyName,
+				PropertyChangeListener listener) {
+			propertyChangeSupport.removePropertyChangeListener(propertyName,
+					listener);
+		}
+
+		protected void firePropertyChange(String propertyName, Object oldValue,
+				Object newValue) {
+			propertyChangeSupport.firePropertyChange(propertyName, oldValue,
+					newValue);
+		}
+	}
+
+	// The data model class. This is normally a persistent class of some sort.
+	static class Person extends AbstractModelObject {
+		// A property...
+		String name = "John Smith";
+
+		public Person(String name) {
+			this.name = name;
+		}
+
+		public String getName() {
+			return name;
+		}
+
+		public void setName(String name) {
+			String oldValue = this.name;
+			this.name = name;
+			firePropertyChange("name", oldValue, name);
+		}
+	}
+
+	// The View's model--the root of our Model graph for this particular GUI.
+	//
+	// Typically each View class has a corresponding ViewModel class.
+	// The ViewModel is responsible for getting the objects to edit from the
+	// data access tier. Since this snippet doesn't have any persistent objects
+	// ro retrieve, this ViewModel just instantiates a model object to edit.
+	static class ViewModel {
+		// The model to bind
+		private List people = new LinkedList();
+		{
+			people.add(new Person("Steve Northover"));
+			people.add(new Person("Grant Gayed"));
+			people.add(new Person("Veronika Irvine"));
+			people.add(new Person("Mike Wilson"));
+			people.add(new Person("Christophe Cornu"));
+			people.add(new Person("Lynne Kues"));
+			people.add(new Person("Silenio Quarti"));
+		}
+
+		public List getPeople() {
+			return people;
+		}
+	}
+
+	/**
+	 * Editing support that uses JFace Data Binding to control the editing
+	 * lifecycle. The standard EditingSupport get/setValue(...) lifecycle is not
+	 * used.
+	 * 
+	 * @since 3.3
+	 */
+	private static class InlineEditingSupport extends
+			ObservableValueEditingSupport {
+		private CellEditor cellEditor;
+
+		/**
+		 * @param viewer
+		 * @param dbc
+		 */
+		public InlineEditingSupport(ColumnViewer viewer, DataBindingContext dbc) {
+
+			super(viewer, dbc);
+			cellEditor = new TextCellEditor((Composite) viewer.getControl());
+		}
+
+		protected CellEditor getCellEditor(Object element) {
+			return cellEditor;
+		}
+
+		protected IObservableValue doCreateCellEditorObservable(
+				CellEditor cellEditor) {
+
+			return SWTObservables.observeText(cellEditor.getControl(),
+					SWT.Modify);
+		}
+
+		protected IObservableValue doCreateElementObservable(Object element,
+				ViewerCell cell) {
+			return BeansObservables.observeValue(element, "name");
+		}
+	}
+
+	// The GUI view
+	static class View {
+		private ViewModel viewModel;
+		private Table committers;
+		private Label selectedCommitter;
+
+		public View(ViewModel viewModel) {
+			this.viewModel = viewModel;
+		}
+
+		public Shell createShell() {
+			// Build a UI
+			Display display = Display.getDefault();
+			Shell shell = new Shell(display);
+			shell.setLayout(new FillLayout(SWT.VERTICAL));
+			committers = new Table(shell, SWT.BORDER | SWT.FULL_SELECTION);
+			committers.setLinesVisible(true);
+
+			selectedCommitter = new Label(shell, SWT.NONE);
+			// Set up data binding. In an RCP application, the threading
+			// Realm
+			// will be set for you automatically by the Workbench. In an SWT
+			// application, you can do this once, wrpping your binding
+			// method call.
+			DataBindingContext bindingContext = new DataBindingContext();
+			bindGUI(bindingContext);
+
+			// Open and return the Shell
+			shell.setSize(100, 300);
+			shell.open();
+			return shell;
+		}
+
+		protected void bindGUI(DataBindingContext bindingContext) {
+			// Since we're using a JFace Viewer, we do first wrap our Table...
+			TableViewer peopleViewer = new TableViewer(committers);
+			TableViewerColumn column = new TableViewerColumn(peopleViewer,
+					SWT.NONE);
+			column.setEditingSupport(new InlineEditingSupport(peopleViewer,
+					bindingContext));
+			column.getColumn().setWidth(100);
+
+			// Bind viewer to model
+			ViewerSupport.bind(peopleViewer, new WritableList(viewModel
+					.getPeople(), Person.class), BeanProperties.value(
+					Person.class, "name"));
+
+			// bind selectedCommitter label to the name of the current selection
+			IObservableValue selection = ViewersObservables
+					.observeSingleSelection(peopleViewer);
+			bindingContext.bindValue(SWTObservables
+					.observeText(selectedCommitter), BeansObservables
+					.observeDetailValue(selection, "name", String.class));
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet015DelayTextModifyEvents.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet015DelayTextModifyEvents.java
new file mode 100644
index 0000000..2e41fa5
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet015DelayTextModifyEvents.java
@@ -0,0 +1,121 @@
+/************************************************************************************************************
+ * Copyright (c) 2007, 2009 Matthew Hall and others. All rights reserved. This program and the
+ * accompanying materials are made available under the terms of the Eclipse Public License 2.0 which
+t https://www.eclipse.org/legal/epl-2.0/
+t
+t SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ * 		Matthew Hall - initial API and implementation (bug 180746)
+ * 		Boris Bokowski, IBM - initial API and implementation
+ *      Matthew Hall - bugs 260329, 264286
+ ***********************************************************************************************************/
+package org.eclipse.xwt.tests.snipppets;
+
+import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.observable.Observables;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.databinding.swt.ISWTObservableValue;
+import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.internal.databinding.provisional.swt.ControlUpdater;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.jface.resource.FontDescriptor;
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.jface.resource.LocalResourceManager;
+import org.eclipse.jface.resource.ResourceManager;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+
+public class Snippet015DelayTextModifyEvents {
+
+	private static void createControls(Shell shell) {
+		final Label field1 = createLabel(shell, SWT.NONE, "Field 1 ");
+
+		Text text1 = new Text(shell, SWT.BORDER);
+		GridDataFactory.fillDefaults().grab(true, false).hint(200, SWT.DEFAULT)
+				.applyTo(text1);
+		createLabel(shell, SWT.NONE, "200ms delay");
+
+		final Label field2 = createLabel(shell, SWT.NONE, "Field 2 ");
+
+		Text text2 = new Text(shell, SWT.BORDER);
+		GridDataFactory.fillDefaults().grab(true, false).hint(200, SWT.DEFAULT)
+				.applyTo(text2);
+
+		createLabel(shell, SWT.NONE, "1000ms delay");
+
+		final ISWTObservableValue delayed1 = WidgetProperties.text(SWT.Modify)
+				.observeDelayed(200, text1);
+		final ISWTObservableValue delayed2 = WidgetProperties.text(SWT.Modify)
+				.observeDelayed(1000, text2);
+
+		// (In a real application,you would want to dispose the resource manager
+		// when you are done with it)
+		ResourceManager resourceManager = new LocalResourceManager(
+				JFaceResources.getResources());
+		final Font shellFont = shell.getFont();
+		final Font italicFont = resourceManager.createFont(FontDescriptor
+				.createFrom(shellFont).setStyle(SWT.ITALIC));
+
+		final IObservableValue stale1 = Observables.observeStale(delayed1);
+		new ControlUpdater(field2) {
+			protected void updateControl() {
+				boolean stale = ((Boolean) stale1.getValue()).booleanValue();
+				field2.setFont(stale ? italicFont : shellFont);
+			}
+		};
+
+		final IObservableValue stale2 = Observables.observeStale(delayed2);
+		new ControlUpdater(field1) {
+			protected void updateControl() {
+				boolean stale = ((Boolean) stale2.getValue()).booleanValue();
+				field1.setFont(stale ? italicFont : shellFont);
+			}
+		};
+
+		String info = "Pending changes are applied immediately if the observed control loses focus";
+		GridDataFactory.fillDefaults().span(3, 1).applyTo(
+				createLabel(shell, SWT.WRAP, info));
+
+		DataBindingContext dbc = new DataBindingContext();
+
+		dbc.bindValue(delayed1, delayed2);
+	}
+
+	private static Label createLabel(Composite parent, int style, String text) {
+		Label label = new Label(parent, style);
+		label.setText(text);
+		return label;
+	}
+
+	public static void main(String[] args) {
+		final Display display = new Display();
+
+		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
+			public void run() {
+				Shell shell = new Shell();
+				shell.setLayout(new GridLayout(3, false));
+
+				createControls(shell);
+
+				shell.pack();
+				shell.open();
+				while (!shell.isDisposed())
+					if (!display.readAndDispatch())
+						display.sleep();
+			}
+
+		});
+
+		display.dispose();
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet018CheckboxTableViewerCheckedSelection.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet018CheckboxTableViewerCheckedSelection.java
new file mode 100644
index 0000000..43901f2
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet018CheckboxTableViewerCheckedSelection.java
@@ -0,0 +1,364 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2009 Matthew Hall and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Matthew Hall - initial API and implementation (bug 124684)
+ *     Matthew Hall - bugs 260329, 260337
+ ******************************************************************************/
+
+package org.eclipse.xwt.tests.snipppets;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.beans.BeanProperties;
+import org.eclipse.core.databinding.beans.BeansObservables;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.value.ComputedValue;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.jface.databinding.viewers.ViewerSupport;
+import org.eclipse.jface.databinding.viewers.ViewersObservables;
+import org.eclipse.jface.dialogs.IInputValidator;
+import org.eclipse.jface.dialogs.InputDialog;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.jface.layout.GridLayoutFactory;
+import org.eclipse.jface.layout.TableColumnLayout;
+import org.eclipse.jface.viewers.CheckboxTableViewer;
+import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Text;
+
+/**
+ * Snippet 018: Binding to the checked elements in a CheckboxTableViewer.
+ */
+public class Snippet018CheckboxTableViewerCheckedSelection {
+	public static void main(String[] args) {
+		// The SWT event loop
+		final Display display = Display.getDefault();
+		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
+			public void run() {
+				ViewModel viewModel = createSampleModel();
+
+				Shell shell = new View(viewModel).createShell();
+				shell.open();
+				while (!shell.isDisposed())
+					if (!display.readAndDispatch())
+						display.sleep();
+			}
+		});
+		display.dispose();
+	}
+
+	private static ViewModel createSampleModel() {
+		ViewModel viewModel = new ViewModel();
+
+		Person stan = createPerson("Stan");
+		Person kyle = createPerson("Kyle");
+		Person eric = createPerson("Eric");
+		Person kenny = createPerson("Kenny");
+		Person wendy = createPerson("Wendy");
+		Person butters = createPerson("Butters");
+
+		setFriends(stan, new Person[] { kyle, eric, kenny, wendy });
+		setFriends(kyle, new Person[] { stan, eric, kenny });
+		setFriends(eric, new Person[] { eric });
+		setFriends(kenny, new Person[] { stan, kyle, eric });
+		setFriends(wendy, new Person[] { stan });
+		setFriends(butters, new Person[0]);
+
+		Person[] people = new Person[] { stan, kyle, eric, kenny, wendy,
+				butters };
+		viewModel.setPeople(Arrays.asList(people));
+		return viewModel;
+	}
+
+	private static Person createPerson(String name) {
+		Person person = new Person();
+		person.setName(name);
+		return person;
+	}
+
+	private static void setFriends(Person person, Person[] friends) {
+		person.setFriends(new HashSet(Arrays.asList(friends)));
+	}
+
+	// Minimal JavaBeans support
+	public static abstract class AbstractModelObject {
+		private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(
+				this);
+
+		public void addPropertyChangeListener(PropertyChangeListener listener) {
+			propertyChangeSupport.addPropertyChangeListener(listener);
+		}
+
+		public void addPropertyChangeListener(String propertyName,
+				PropertyChangeListener listener) {
+			propertyChangeSupport.addPropertyChangeListener(propertyName,
+					listener);
+		}
+
+		public void removePropertyChangeListener(PropertyChangeListener listener) {
+			propertyChangeSupport.removePropertyChangeListener(listener);
+		}
+
+		public void removePropertyChangeListener(String propertyName,
+				PropertyChangeListener listener) {
+			propertyChangeSupport.removePropertyChangeListener(propertyName,
+					listener);
+		}
+
+		protected void firePropertyChange(String propertyName, Object oldValue,
+				Object newValue) {
+			propertyChangeSupport.firePropertyChange(propertyName, oldValue,
+					newValue);
+		}
+	}
+
+	// The data model class.
+	public static class Person extends AbstractModelObject {
+		private String name;
+		private Set friends = new HashSet();
+
+		public String getName() {
+			return name;
+		}
+
+		public void setName(String name) {
+			firePropertyChange("name", this.name, this.name = name);
+		}
+
+		public Set getFriends() {
+			return new HashSet(friends);
+		}
+
+		public void setFriends(Set friends) {
+			firePropertyChange("friends", this.friends,
+					this.friends = new HashSet(friends));
+		}
+
+		public String toString() {
+			return name;
+		}
+	}
+
+	// The View's model--the root of our Model graph for this particular GUI.
+	//
+	// Typically each View class has a corresponding ViewModel class.
+	//
+	// The ViewModel is responsible for getting the objects to edit from the
+	// data access tier. Since this snippet doesn't have any persistent objects
+	// to retrieve, this ViewModel just instantiates a model object to edit.
+	static class ViewModel extends AbstractModelObject {
+		private List people = new ArrayList();
+
+		public List getPeople() {
+			return new ArrayList(people);
+		}
+
+		public void setPeople(List people) {
+			firePropertyChange("people", this.people,
+					this.people = new ArrayList(people));
+		}
+	}
+
+	// The GUI view
+	static class View {
+		private ViewModel viewModel;
+
+		private Shell shell;
+
+		private Button addPersonButton;
+		private Button removePersonButton;
+		private TableViewer peopleViewer;
+		private Text personName;
+		private CheckboxTableViewer friendsViewer;
+
+		public View(ViewModel viewModel) {
+			this.viewModel = viewModel;
+		}
+
+		public Shell createShell() {
+			// Build a UI
+			final Display display = Display.getCurrent();
+			shell = new Shell(display);
+
+			createUI(shell);
+
+			// Bind UI
+			bindUI();
+
+			// Open and return the Shell
+			shell.setSize(shell.computeSize(400, SWT.DEFAULT));
+			shell.open();
+			return shell;
+		}
+
+		private void createUI(Shell shell) {
+			shell.setText("Binding checked elements in CheckboxTableViewer");
+			shell.setLayout(new GridLayout(2, false));
+
+			new Label(shell, SWT.NONE).setText("People");
+
+			Composite buttons = new Composite(shell, SWT.NONE);
+			GridDataFactory.swtDefaults().align(SWT.RIGHT, SWT.CENTER).applyTo(
+					buttons);
+			GridLayoutFactory.fillDefaults().numColumns(2).equalWidth(true)
+					.applyTo(buttons);
+			addPersonButton = new Button(buttons, SWT.PUSH);
+			addPersonButton.setText("Add");
+			GridDataFactory.fillDefaults().applyTo(addPersonButton);
+			removePersonButton = new Button(buttons, SWT.PUSH);
+			removePersonButton.setText("Remove");
+			GridDataFactory.fillDefaults().applyTo(removePersonButton);
+
+			Composite peopleComposite = new Composite(shell, SWT.NONE);
+			GridDataFactory.fillDefaults().grab(true, true).span(2, 1).applyTo(
+					peopleComposite);
+			TableColumnLayout peopleColumnLayout = new TableColumnLayout();
+			peopleComposite.setLayout(peopleColumnLayout);
+
+			peopleViewer = new TableViewer(peopleComposite, SWT.SINGLE
+					| SWT.BORDER | SWT.FULL_SELECTION);
+
+			Table peopleTable = peopleViewer.getTable();
+			peopleTable.setHeaderVisible(true);
+			peopleTable.setLinesVisible(true);
+
+			TableColumn nameColumn = new TableColumn(peopleTable, SWT.NONE);
+			nameColumn.setText("Name");
+			peopleColumnLayout.setColumnData(nameColumn,
+					new ColumnWeightData(1));
+
+			TableColumn friendsColumn = new TableColumn(peopleTable, SWT.NONE);
+			friendsColumn.setText("Friends");
+			peopleColumnLayout.setColumnData(friendsColumn,
+					new ColumnWeightData(3));
+
+			new Label(shell, SWT.NONE).setText("Name");
+
+			personName = new Text(shell, SWT.BORDER);
+			GridDataFactory.fillDefaults().grab(true, false)
+					.applyTo(personName);
+
+			new Label(shell, SWT.NONE).setText("Friends");
+
+			Composite friendsComposite = new Composite(shell, SWT.NONE);
+			GridDataFactory.fillDefaults().grab(true, true).applyTo(
+					friendsComposite);
+			TableColumnLayout friendsColumnLayout = new TableColumnLayout();
+			friendsComposite.setLayout(friendsColumnLayout);
+
+			friendsViewer = CheckboxTableViewer.newCheckList(friendsComposite,
+					SWT.SINGLE | SWT.BORDER | SWT.FULL_SELECTION);
+
+			Table friendsTable = friendsViewer.getTable();
+			friendsTable.setHeaderVisible(true);
+			friendsTable.setLinesVisible(true);
+			TableColumn friendNameColumn = new TableColumn(friendsTable,
+					SWT.NONE);
+			friendNameColumn.setText("Name");
+			friendsColumnLayout.setColumnData(friendNameColumn,
+					new ColumnWeightData(1));
+
+			GridDataFactory.fillDefaults().grab(true, true).applyTo(
+					friendsViewer.getTable());
+		}
+
+		private void bindUI() {
+			DataBindingContext dbc = new DataBindingContext();
+
+			final IObservableList people = BeansObservables.observeList(Realm
+					.getDefault(), viewModel, "people");
+
+			addPersonButton.addListener(SWT.Selection, new Listener() {
+				public void handleEvent(Event event) {
+					InputDialog dlg = new InputDialog(shell, "Add Person",
+							"Enter name:", "<Name>", new IInputValidator() {
+								public String isValid(String newText) {
+									if (newText == null
+											|| newText.length() == 0)
+										return "Name cannot be empty";
+									return null;
+								}
+							});
+					if (dlg.open() == Window.OK) {
+						Person person = new Person();
+						person.setName(dlg.getValue());
+						people.add(person);
+						peopleViewer.setSelection(new StructuredSelection(
+								person));
+					}
+				}
+			});
+
+			removePersonButton.addListener(SWT.Selection, new Listener() {
+				public void handleEvent(Event event) {
+					IStructuredSelection selected = (IStructuredSelection) peopleViewer
+							.getSelection();
+					if (selected.isEmpty())
+						return;
+					Person person = (Person) selected.getFirstElement();
+					if (MessageDialog.openConfirm(shell, "Remove person",
+							"Remove " + person.getName() + "?"))
+						people.remove(person);
+				}
+			});
+
+			ViewerSupport.bind(peopleViewer, people, BeanProperties.values(
+					Person.class, new String[] { "name", "friends" }));
+
+			final IObservableValue selectedPerson = ViewersObservables
+					.observeSingleSelection(peopleViewer);
+
+			IObservableValue personSelected = new ComputedValue(Boolean.TYPE) {
+				protected Object calculate() {
+					return Boolean.valueOf(selectedPerson.getValue() != null);
+				}
+			};
+			dbc.bindValue(SWTObservables.observeEnabled(removePersonButton),
+					personSelected);
+			dbc.bindValue(SWTObservables.observeEnabled(friendsViewer
+					.getTable()), personSelected);
+
+			dbc.bindValue(SWTObservables.observeText(personName, SWT.Modify),
+					BeansObservables.observeDetailValue(selectedPerson, "name",
+							String.class));
+
+			ViewerSupport.bind(friendsViewer, people, BeanProperties.value(
+					Person.class, "name"));
+
+			dbc.bindSet(ViewersObservables.observeCheckedElements(
+					friendsViewer, Person.class), BeansObservables
+					.observeDetailSet(selectedPerson, "friends", Person.class));
+		}
+	}
+}
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet019TreeViewerWithListFactory.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet019TreeViewerWithListFactory.java
new file mode 100644
index 0000000..cabd789
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet019TreeViewerWithListFactory.java
@@ -0,0 +1,328 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *     Matthew Hall - bugs 260329, 260337
+ *******************************************************************************/
+package org.eclipse.xwt.tests.snipppets;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.beans.BeanProperties;
+import org.eclipse.core.databinding.beans.BeansObservables;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.value.ComputedValue;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.observable.value.WritableValue;
+import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.jface.databinding.viewers.ViewerSupport;
+import org.eclipse.jface.databinding.viewers.ViewersObservables;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeItem;
+
+public class Snippet019TreeViewerWithListFactory {
+
+	private Button pasteButton;
+	private Button copyButton;
+	private Shell shell;
+	private Button addChildBeanButton;
+	private Button removeBeanButton;
+	private TreeViewer beanViewer;
+	private Tree tree;
+	private Text beanText;
+	private DataBindingContext m_bindingContext;
+
+	private Bean input = createBean("input");
+	private IObservableValue clipboard;
+
+	/**
+	 * Launch the application
+	 * 
+	 * @param args
+	 */
+	public static void main(String[] args) {
+		Display display = Display.getDefault();
+		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
+			public void run() {
+				try {
+					Snippet019TreeViewerWithListFactory window = new Snippet019TreeViewerWithListFactory();
+					window.open();
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Open the window
+	 */
+	public void open() {
+		final Display display = Display.getDefault();
+		createContents();
+		shell.open();
+		shell.layout();
+		while (!shell.isDisposed()) {
+			if (!display.readAndDispatch())
+				display.sleep();
+		}
+	}
+
+	/**
+	 * Create nameMap of the window
+	 */
+	protected void createContents() {
+		shell = new Shell();
+		final GridLayout gridLayout_1 = new GridLayout();
+		gridLayout_1.numColumns = 2;
+		shell.setLayout(gridLayout_1);
+		shell.setSize(535, 397);
+		shell.setText("SWT Application");
+
+		final Composite group = new Composite(shell, SWT.NONE);
+		final RowLayout rowLayout = new RowLayout();
+		rowLayout.marginTop = 0;
+		rowLayout.marginRight = 0;
+		rowLayout.marginLeft = 0;
+		rowLayout.marginBottom = 0;
+		rowLayout.pack = false;
+		group.setLayout(rowLayout);
+		group
+				.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false,
+						2, 1));
+
+		final Button addRootButton = new Button(group, SWT.NONE);
+		addRootButton.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(final SelectionEvent e) {
+				List list = input.getList();
+				Bean root = createBean("root");
+				list.add(root);
+				input.setList(list);
+
+				beanViewer.setSelection(new StructuredSelection(root));
+				beanText.selectAll();
+				beanText.setFocus();
+			}
+		});
+		addRootButton.setText("Add Root");
+
+		addChildBeanButton = new Button(group, SWT.NONE);
+		addChildBeanButton.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(final SelectionEvent e) {
+				Bean parent = getSelectedBean();
+				List list = new ArrayList(parent.getList());
+				Bean child = createBean("child");
+				list.add(child);
+				parent.setList(list);
+
+				beanViewer.setSelection(new StructuredSelection(child));
+				beanText.selectAll();
+				beanText.setFocus();
+			}
+		});
+		addChildBeanButton.setText("Add Child");
+
+		removeBeanButton = new Button(group, SWT.NONE);
+		removeBeanButton.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(final SelectionEvent e) {
+				TreeItem selectedItem = beanViewer.getTree().getSelection()[0];
+				TreeItem parentItem = selectedItem.getParentItem();
+				Bean parent;
+				int index;
+				if (parentItem == null) {
+					parent = input;
+					index = beanViewer.getTree().indexOf(selectedItem);
+				} else {
+					parent = (Bean) parentItem.getData();
+					index = parentItem.indexOf(selectedItem);
+				}
+
+				List list = new ArrayList(parent.getList());
+				list.remove(index);
+				parent.setList(list);
+			}
+		});
+		removeBeanButton.setText("Remove");
+
+		copyButton = new Button(group, SWT.NONE);
+		copyButton.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(final SelectionEvent e) {
+				clipboard.setValue(getSelectedBean());
+			}
+		});
+		copyButton.setText("Copy");
+
+		pasteButton = new Button(group, SWT.NONE);
+		pasteButton.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(final SelectionEvent e) {
+				Bean copy = (Bean) clipboard.getValue();
+				if (copy == null)
+					return;
+				Bean parent = getSelectedBean();
+				if (parent == null)
+					parent = input;
+
+				List list = new ArrayList(parent.getList());
+				list.add(copy);
+				parent.setList(list);
+
+				beanViewer.setSelection(new StructuredSelection(copy));
+				beanText.selectAll();
+				beanText.setFocus();
+			}
+		});
+		pasteButton.setText("Paste");
+
+		final Button refreshButton = new Button(group, SWT.NONE);
+		refreshButton.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(final SelectionEvent e) {
+				beanViewer.refresh();
+			}
+		});
+		refreshButton.setText("Refresh");
+
+		beanViewer = new TreeViewer(shell, SWT.FULL_SELECTION | SWT.BORDER);
+		beanViewer.setUseHashlookup(true);
+		tree = beanViewer.getTree();
+		tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
+
+		final Label itemNameLabel = new Label(shell, SWT.NONE);
+		itemNameLabel.setText("Item Name");
+
+		beanText = new Text(shell, SWT.BORDER);
+		final GridData gd_beanValue = new GridData(SWT.FILL, SWT.CENTER, true,
+				false);
+		beanText.setLayoutData(gd_beanValue);
+		m_bindingContext = initDataBindings();
+		//
+		initExtraBindings(m_bindingContext);
+	}
+
+	private static Bean createBean(String name) {
+		return new Bean(name);
+	}
+
+	protected DataBindingContext initDataBindings() {
+		IObservableValue treeViewerSelectionObserveSelection = ViewersObservables
+				.observeSingleSelection(beanViewer);
+		IObservableValue textTextObserveWidget = SWTObservables.observeText(
+				beanText, SWT.Modify);
+		IObservableValue treeViewerValueObserveDetailValue = BeansObservables
+				.observeDetailValue(treeViewerSelectionObserveSelection,
+						"text", String.class);
+		//
+		//
+		DataBindingContext bindingContext = new DataBindingContext();
+		//
+		bindingContext.bindValue(textTextObserveWidget,
+				treeViewerValueObserveDetailValue);
+		//
+		return bindingContext;
+	}
+
+	private Bean getSelectedBean() {
+		IStructuredSelection selection = (IStructuredSelection) beanViewer
+				.getSelection();
+		if (selection.isEmpty())
+			return null;
+		return (Bean) selection.getFirstElement();
+	}
+
+	private void initExtraBindings(DataBindingContext dbc) {
+		final IObservableValue beanViewerSelection = ViewersObservables
+				.observeSingleSelection(beanViewer);
+		IObservableValue beanSelected = new ComputedValue(Boolean.TYPE) {
+			protected Object calculate() {
+				return Boolean.valueOf(beanViewerSelection.getValue() != null);
+			}
+		};
+		dbc.bindValue(SWTObservables.observeEnabled(addChildBeanButton),
+				beanSelected);
+		dbc.bindValue(SWTObservables.observeEnabled(removeBeanButton),
+				beanSelected);
+
+		clipboard = new WritableValue();
+		dbc.bindValue(SWTObservables.observeEnabled(copyButton), beanSelected);
+		dbc.bindValue(SWTObservables.observeEnabled(pasteButton),
+				new ComputedValue(Boolean.TYPE) {
+					protected Object calculate() {
+						return Boolean.valueOf(clipboard.getValue() != null);
+					}
+				});
+
+		ViewerSupport.bind(beanViewer, input, BeanProperties.list("list",
+				Bean.class), BeanProperties.value(Bean.class, "text"));
+	}
+
+	static class Bean {
+		/* package */PropertyChangeSupport changeSupport = new PropertyChangeSupport(
+				this);
+		private String text;
+		private List list;
+
+		public Bean(String text) {
+			this.text = text;
+			list = new ArrayList();
+		}
+
+		public void addPropertyChangeListener(PropertyChangeListener listener) {
+			changeSupport.addPropertyChangeListener(listener);
+		}
+
+		public void removePropertyChangeListener(PropertyChangeListener listener) {
+			changeSupport.removePropertyChangeListener(listener);
+		}
+
+		public String getText() {
+			return text;
+		}
+
+		public void setText(String value) {
+			changeSupport.firePropertyChange("text", this.text,
+					this.text = value);
+		}
+
+		public List getList() {
+			if (list == null)
+				return null;
+			return new ArrayList(list);
+		}
+
+		public void setList(List list) {
+			if (list != null)
+				list = new ArrayList(list);
+			changeSupport.firePropertyChange("list", this.list,
+					this.list = list);
+		}
+
+		public boolean hasListeners(String propertyName) {
+			return changeSupport.hasListeners(propertyName);
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet020TreeViewerWithSetFactory.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet020TreeViewerWithSetFactory.java
new file mode 100644
index 0000000..b76ce17
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet020TreeViewerWithSetFactory.java
@@ -0,0 +1,327 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *     Matthew Hall - bugs 260329, 260337
+ *******************************************************************************/
+package org.eclipse.xwt.tests.snipppets;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.beans.BeanProperties;
+import org.eclipse.core.databinding.beans.BeansObservables;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.value.ComputedValue;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.observable.value.WritableValue;
+import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.jface.databinding.viewers.ViewerSupport;
+import org.eclipse.jface.databinding.viewers.ViewersObservables;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.ViewerComparator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeItem;
+
+public class Snippet020TreeViewerWithSetFactory {
+
+	private Button pasteButton;
+	private Button copyButton;
+	private Shell shell;
+	private Button addChildBeanButton;
+	private Button removeBeanButton;
+	private TreeViewer beanViewer;
+	private Tree tree;
+	private Text beanText;
+	private DataBindingContext m_bindingContext;
+
+	private Bean input = createBean("input");
+	private IObservableValue clipboard;
+	static int counter = 0;
+
+	/**
+	 * Launch the application
+	 * 
+	 * @param args
+	 */
+	public static void main(String[] args) {
+		Display display = Display.getDefault();
+		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
+			public void run() {
+				try {
+					Snippet020TreeViewerWithSetFactory window = new Snippet020TreeViewerWithSetFactory();
+					window.open();
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * Open the window
+	 */
+	public void open() {
+		final Display display = Display.getDefault();
+		createContents();
+		shell.open();
+		shell.layout();
+		while (!shell.isDisposed()) {
+			if (!display.readAndDispatch())
+				display.sleep();
+		}
+	}
+
+	/**
+	 * Create nameMap of the window
+	 */
+	protected void createContents() {
+		shell = new Shell();
+		final GridLayout gridLayout_1 = new GridLayout();
+		gridLayout_1.numColumns = 2;
+		shell.setLayout(gridLayout_1);
+		shell.setSize(535, 397);
+		shell.setText("SWT Application");
+
+		final Composite group = new Composite(shell, SWT.NONE);
+		final RowLayout rowLayout = new RowLayout();
+		rowLayout.marginTop = 0;
+		rowLayout.marginRight = 0;
+		rowLayout.marginLeft = 0;
+		rowLayout.marginBottom = 0;
+		rowLayout.pack = false;
+		group.setLayout(rowLayout);
+		group
+				.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false,
+						2, 1));
+
+		final Button addRootButton = new Button(group, SWT.NONE);
+		addRootButton.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(final SelectionEvent e) {
+				Set set = input.getSet();
+				Bean root = createBean("root");
+				set.add(root);
+				input.setSet(set);
+
+				beanViewer.setSelection(new StructuredSelection(root));
+				beanText.selectAll();
+				beanText.setFocus();
+			}
+		});
+		addRootButton.setText("Add Root");
+
+		addChildBeanButton = new Button(group, SWT.NONE);
+		addChildBeanButton.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(final SelectionEvent e) {
+				Bean parent = getSelectedBean();
+				Set set = new HashSet(parent.getSet());
+				Bean child = createBean("child" + (counter++));
+				set.add(child);
+				parent.setSet(set);
+
+				// beanViewer.setSelection(new StructuredSelection(parent));
+				// beanText.selectAll();
+				// beanText.setFocus();
+			}
+		});
+		addChildBeanButton.setText("Add Child");
+
+		removeBeanButton = new Button(group, SWT.NONE);
+		removeBeanButton.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(final SelectionEvent e) {
+				TreeItem selectedItem = beanViewer.getTree().getSelection()[0];
+				Bean bean = (Bean) selectedItem.getData();
+				TreeItem parentItem = selectedItem.getParentItem();
+				Bean parent;
+				if (parentItem == null)
+					parent = input;
+				else
+					parent = (Bean) parentItem.getData();
+
+				Set set = new HashSet(parent.getSet());
+				set.remove(bean);
+				parent.setSet(set);
+			}
+		});
+		removeBeanButton.setText("Remove");
+
+		copyButton = new Button(group, SWT.NONE);
+		copyButton.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(final SelectionEvent e) {
+				clipboard.setValue(getSelectedBean());
+			}
+		});
+		copyButton.setText("Copy");
+
+		pasteButton = new Button(group, SWT.NONE);
+		pasteButton.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(final SelectionEvent e) {
+				Bean copy = (Bean) clipboard.getValue();
+				if (copy == null)
+					return;
+				Bean parent = getSelectedBean();
+				if (parent == null)
+					parent = input;
+
+				Set set = new HashSet(parent.getSet());
+				set.add(copy);
+				parent.setSet(set);
+
+				beanViewer.setSelection(new StructuredSelection(copy));
+				beanText.selectAll();
+				beanText.setFocus();
+			}
+		});
+		pasteButton.setText("Paste");
+
+		final Button refreshButton = new Button(group, SWT.NONE);
+		refreshButton.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(final SelectionEvent e) {
+				beanViewer.refresh();
+			}
+		});
+		refreshButton.setText("Refresh");
+
+		beanViewer = new TreeViewer(shell, SWT.FULL_SELECTION | SWT.BORDER);
+		beanViewer.setUseHashlookup(true);
+		beanViewer.setComparator(new ViewerComparator());
+		tree = beanViewer.getTree();
+		tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
+
+		final Label itemNameLabel = new Label(shell, SWT.NONE);
+		itemNameLabel.setText("Item Name");
+
+		beanText = new Text(shell, SWT.BORDER);
+		final GridData gd_beanValue = new GridData(SWT.FILL, SWT.CENTER, true,
+				false);
+		beanText.setLayoutData(gd_beanValue);
+		m_bindingContext = initDataBindings();
+		//
+		initExtraBindings(m_bindingContext);
+	}
+
+	private static Bean createBean(String name) {
+		return new Bean(name);
+	}
+
+	protected DataBindingContext initDataBindings() {
+		IObservableValue treeViewerSelectionObserveSelection = ViewersObservables
+				.observeSingleSelection(beanViewer);
+		IObservableValue textTextObserveWidget = SWTObservables.observeText(
+				beanText, SWT.Modify);
+		IObservableValue treeViewerValueObserveDetailValue = BeansObservables
+				.observeDetailValue(treeViewerSelectionObserveSelection,
+						"text", String.class);
+		//
+		//
+		DataBindingContext bindingContext = new DataBindingContext();
+		//
+		bindingContext.bindValue(textTextObserveWidget,
+				treeViewerValueObserveDetailValue);
+		//
+		return bindingContext;
+	}
+
+	private Bean getSelectedBean() {
+		IStructuredSelection selection = (IStructuredSelection) beanViewer
+				.getSelection();
+		if (selection.isEmpty())
+			return null;
+		return (Bean) selection.getFirstElement();
+	}
+
+	private void initExtraBindings(DataBindingContext dbc) {
+		final IObservableValue beanViewerSelection = ViewersObservables
+				.observeSingleSelection(beanViewer);
+		IObservableValue beanSelected = new ComputedValue(Boolean.TYPE) {
+			protected Object calculate() {
+				return Boolean.valueOf(beanViewerSelection.getValue() != null);
+			}
+		};
+		dbc.bindValue(SWTObservables.observeEnabled(addChildBeanButton),
+				beanSelected);
+		dbc.bindValue(SWTObservables.observeEnabled(removeBeanButton),
+				beanSelected);
+
+		clipboard = new WritableValue();
+		dbc.bindValue(SWTObservables.observeEnabled(copyButton), beanSelected);
+		dbc.bindValue(SWTObservables.observeEnabled(pasteButton),
+				new ComputedValue(Boolean.TYPE) {
+					protected Object calculate() {
+						return Boolean.valueOf(clipboard.getValue() != null);
+					}
+				});
+
+		ViewerSupport.bind(beanViewer, input, BeanProperties.set("set",
+				Bean.class), BeanProperties.value(Bean.class, "text"));
+	}
+
+	static class Bean {
+		/* package */PropertyChangeSupport changeSupport = new PropertyChangeSupport(
+				this);
+		private String text;
+		private Set set;
+
+		public Bean(String text) {
+			this.text = text;
+			set = new HashSet();
+		}
+
+		public void addPropertyChangeListener(PropertyChangeListener listener) {
+			changeSupport.addPropertyChangeListener(listener);
+		}
+
+		public void removePropertyChangeListener(PropertyChangeListener listener) {
+			changeSupport.removePropertyChangeListener(listener);
+		}
+
+		public String getText() {
+			return text;
+		}
+
+		public void setText(String value) {
+			changeSupport.firePropertyChange("text", this.text,
+					this.text = value);
+		}
+
+		public Set getSet() {
+			if (set == null)
+				return null;
+			return new HashSet(set);
+		}
+
+		public void setSet(Set set) {
+			if (set != null)
+				set = new HashSet(set);
+			changeSupport.firePropertyChange("set", this.set, this.set = set);
+		}
+
+		public boolean hasListeners(String propertyName) {
+			return changeSupport.hasListeners(propertyName);
+		}
+	}
+}
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet021MultiFieldValidation.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet021MultiFieldValidation.java
new file mode 100644
index 0000000..ce02063
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet021MultiFieldValidation.java
@@ -0,0 +1,359 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2009 Matthew Hall and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Matthew Hall - initial API and implementation (bug 218269)
+ *     Matthew Hall - bug 260329
+ ******************************************************************************/
+
+package org.eclipse.xwt.tests.snipppets;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.list.WritableList;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.observable.value.WritableValue;
+import org.eclipse.core.databinding.validation.MultiValidator;
+import org.eclipse.core.databinding.validation.ValidationStatus;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
+import org.eclipse.jface.databinding.wizard.WizardPageSupport;
+import org.eclipse.jface.dialogs.IInputValidator;
+import org.eclipse.jface.dialogs.InputDialog;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.window.Window;
+import org.eclipse.jface.wizard.IWizard;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.List;
+import org.eclipse.swt.widgets.Text;
+
+/**
+ * @since 3.2
+ * 
+ */
+public class Snippet021MultiFieldValidation extends WizardPage {
+
+	private List list_1;
+	private List list;
+	private Button addAddendButton;
+	private Button removeAddendButton;
+	private Text sumModelValue;
+	private Text field2ModelValue;
+	private Text field1ModelValue;
+	private Text sumTarget;
+	private Text field2Target;
+	private Text field1Target;
+	private ListViewer addendsTarget;
+	private ListViewer addendsModelValue;
+
+	/**
+	 * Create the wizard
+	 */
+	public Snippet021MultiFieldValidation() {
+		super("snippet021");
+		setTitle("Snippet 021 - Multi-field Validators");
+		setDescription("Enter values which satisfy the cross-field constraints");
+	}
+
+	/**
+	 * Create nameMap of the wizard
+	 * 
+	 * @param parent
+	 */
+	public void createControl(Composite parent) {
+		Composite container = new Composite(parent, SWT.NULL);
+		final GridLayout gridLayout = new GridLayout();
+		gridLayout.numColumns = 2;
+		container.setLayout(gridLayout);
+		//
+		setControl(container);
+
+		final Group bothEvenOrGroup = new Group(container, SWT.NONE);
+		bothEvenOrGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false,
+				false));
+		bothEvenOrGroup.setText("Numbers must be both even or both odd");
+		final GridLayout gridLayout_1 = new GridLayout();
+		gridLayout_1.numColumns = 3;
+		bothEvenOrGroup.setLayout(gridLayout_1);
+		new Label(bothEvenOrGroup, SWT.NONE);
+
+		final Label targetLabel = new Label(bothEvenOrGroup, SWT.NONE);
+		targetLabel.setText("Target");
+
+		final Label modelLabel = new Label(bothEvenOrGroup, SWT.NONE);
+		modelLabel.setText("Model");
+
+		final Label field1Label = new Label(bothEvenOrGroup, SWT.NONE);
+		field1Label.setText("Field 1");
+
+		field1Target = new Text(bothEvenOrGroup, SWT.BORDER);
+		final GridData gd_field1Target = new GridData(SWT.FILL, SWT.CENTER,
+				true, false);
+		field1Target.setLayoutData(gd_field1Target);
+
+		field1ModelValue = new Text(bothEvenOrGroup, SWT.READ_ONLY | SWT.BORDER);
+		final GridData gd_field1ModelValue = new GridData(SWT.FILL, SWT.CENTER,
+				true, false);
+		field1ModelValue.setLayoutData(gd_field1ModelValue);
+
+		final Label field2Label = new Label(bothEvenOrGroup, SWT.NONE);
+		field2Label.setText("Field 2");
+
+		field2Target = new Text(bothEvenOrGroup, SWT.BORDER);
+		final GridData gd_field2Target = new GridData(SWT.FILL, SWT.CENTER,
+				true, false);
+		field2Target.setLayoutData(gd_field2Target);
+
+		field2ModelValue = new Text(bothEvenOrGroup, SWT.READ_ONLY | SWT.BORDER);
+		final GridData gd_field2ModelValue = new GridData(SWT.FILL, SWT.CENTER,
+				true, false);
+		field2ModelValue.setLayoutData(gd_field2ModelValue);
+
+		final Group sumOfAllGroup = new Group(container, SWT.NONE);
+		sumOfAllGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false,
+				true));
+		sumOfAllGroup.setText("Addends must add up to sum");
+		final GridLayout gridLayout_2 = new GridLayout();
+		gridLayout_2.numColumns = 3;
+		sumOfAllGroup.setLayout(gridLayout_2);
+		new Label(sumOfAllGroup, SWT.NONE);
+
+		final Label targetLabel_1 = new Label(sumOfAllGroup, SWT.NONE);
+		targetLabel_1.setText("Target");
+
+		final Label modelLabel_1 = new Label(sumOfAllGroup, SWT.NONE);
+		modelLabel_1.setText("Model");
+
+		final Label expectedSumLabel = new Label(sumOfAllGroup, SWT.NONE);
+		expectedSumLabel.setText("Sum");
+
+		sumTarget = new Text(sumOfAllGroup, SWT.BORDER);
+		final GridData gd_sumTarget = new GridData(SWT.FILL, SWT.CENTER, true,
+				false);
+		sumTarget.setLayoutData(gd_sumTarget);
+
+		sumModelValue = new Text(sumOfAllGroup, SWT.READ_ONLY | SWT.BORDER);
+		final GridData gd_sumModelValue = new GridData(SWT.FILL, SWT.CENTER,
+				true, false);
+		sumModelValue.setLayoutData(gd_sumModelValue);
+
+		final Label addendsLabel = new Label(sumOfAllGroup, SWT.NONE);
+		addendsLabel.setText("Addends");
+
+		addendsTarget = new ListViewer(sumOfAllGroup, SWT.V_SCROLL | SWT.BORDER);
+		list_1 = addendsTarget.getList();
+		list_1
+				.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true, 1,
+						2));
+
+		addendsModelValue = new ListViewer(sumOfAllGroup, SWT.V_SCROLL
+				| SWT.BORDER);
+		list = addendsModelValue.getList();
+		list.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true, 1, 2));
+
+		final Composite composite = new Composite(sumOfAllGroup, SWT.NONE);
+		composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
+		final GridLayout gridLayout_3 = new GridLayout();
+		gridLayout_3.marginWidth = 0;
+		gridLayout_3.marginHeight = 0;
+		composite.setLayout(gridLayout_3);
+
+		addAddendButton = new Button(composite, SWT.NONE);
+		addAddendButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false,
+				false));
+		addAddendButton.setText("Add");
+
+		removeAddendButton = new Button(composite, SWT.NONE);
+		removeAddendButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER,
+				false, false));
+		removeAddendButton.setText("Remove");
+
+		bindUI();
+	}
+
+	private void bindUI() {
+		DataBindingContext dbc = new DataBindingContext();
+
+		bindEvensAndOddsGroup(dbc);
+		bindSumAndAddendsGroup(dbc);
+
+		WizardPageSupport.create(this, dbc);
+	}
+
+	private void bindEvensAndOddsGroup(DataBindingContext dbc) {
+		IObservableValue targetField1 = SWTObservables.observeText(
+				field1Target, SWT.Modify);
+		final IObservableValue middleField1 = new WritableValue(null,
+				Integer.TYPE);
+		dbc.bindValue(targetField1, middleField1);
+
+		IObservableValue targetField2 = SWTObservables.observeText(
+				field2Target, SWT.Modify);
+		final IObservableValue middleField2 = new WritableValue(null,
+				Integer.TYPE);
+		dbc.bindValue(targetField2, middleField2);
+
+		MultiValidator validator = new MultiValidator() {
+			protected IStatus validate() {
+				Integer field1 = (Integer) middleField1.getValue();
+				Integer field2 = (Integer) middleField2.getValue();
+				if (Math.abs(field1.intValue()) % 2 != Math.abs(field2
+						.intValue()) % 2)
+					return ValidationStatus
+							.error("Fields 1 and 2 must be both even or both odd");
+				return null;
+			}
+		};
+		dbc.addValidationStatusProvider(validator);
+
+		IObservableValue modelField1 = new WritableValue(new Integer(1),
+				Integer.TYPE);
+		IObservableValue modelField2 = new WritableValue(new Integer(4),
+				Integer.TYPE);
+		dbc.bindValue(validator.observeValidatedValue(middleField1),
+				modelField1);
+		dbc.bindValue(validator.observeValidatedValue(middleField2),
+				modelField2);
+
+		dbc.bindValue(SWTObservables.observeText(field1ModelValue, SWT.Modify),
+				modelField1);
+		dbc.bindValue(SWTObservables.observeText(field2ModelValue, SWT.Modify),
+				modelField2);
+	}
+
+	private void bindSumAndAddendsGroup(DataBindingContext dbc) {
+		IObservableValue targetSum = SWTObservables.observeText(sumTarget,
+				SWT.Modify);
+		final IObservableValue middleSum = new WritableValue(null, Integer.TYPE);
+		dbc.bindValue(targetSum, middleSum);
+
+		final IObservableList targetAddends = new WritableList(new ArrayList(),
+				Integer.TYPE);
+		addendsTarget.setContentProvider(new ObservableListContentProvider());
+		addendsTarget.setInput(targetAddends);
+
+		addAddendButton.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(final SelectionEvent e) {
+				InputDialog dialog = new InputDialog(getShell(),
+						"Input addend", "Enter an integer addend", "0",
+						new IInputValidator() {
+							public String isValid(String newText) {
+								try {
+									Integer.valueOf(newText);
+									return null;
+								} catch (NumberFormatException e) {
+									return "Enter a number between "
+											+ Integer.MIN_VALUE + " and "
+											+ Integer.MAX_VALUE;
+								}
+							}
+						});
+				if (dialog.open() == Window.OK) {
+					targetAddends.add(Integer.valueOf(dialog.getValue()));
+				}
+			}
+		});
+
+		removeAddendButton.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(SelectionEvent e) {
+				IStructuredSelection selection = (IStructuredSelection) addendsTarget
+						.getSelection();
+				if (!selection.isEmpty())
+					targetAddends.remove(selection.getFirstElement());
+			}
+		});
+
+		IObservableValue modelSum = new WritableValue(new Integer(5),
+				Integer.TYPE);
+		dbc.bindValue(SWTObservables.observeText(sumModelValue, SWT.Modify),
+				modelSum);
+
+		IObservableList modelAddends = new WritableList(new ArrayList(),
+				Integer.TYPE);
+
+		MultiValidator validator = new MultiValidator() {
+			protected IStatus validate() {
+				Integer sum = (Integer) middleSum.getValue();
+				int actualSum = 0;
+				for (Iterator iterator = targetAddends.iterator(); iterator
+						.hasNext();) {
+					actualSum += ((Integer) iterator.next()).intValue();
+				}
+				if (sum.intValue() != actualSum)
+					return ValidationStatus.error("Sum of addends is "
+							+ actualSum + ", expecting " + sum);
+				return ValidationStatus.ok();
+			}
+		};
+		dbc.addValidationStatusProvider(validator);
+
+		addendsModelValue
+				.setContentProvider(new ObservableListContentProvider());
+		addendsModelValue.setInput(modelAddends);
+
+		dbc.bindValue(validator.observeValidatedValue(middleSum), modelSum);
+		dbc.bindList(validator.observeValidatedList(targetAddends),
+				modelAddends);
+	}
+
+	static class MultiFieldValidationWizard extends Wizard {
+		public void addPages() {
+			addPage(new Snippet021MultiFieldValidation());
+		}
+
+		public String getWindowTitle() {
+			return "Snippet 021 - Multi-field Validation";
+		}
+
+		public boolean performFinish() {
+			return true;
+		}
+	}
+
+	public static void main(String[] args) {
+		Display display = new Display();
+
+		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
+			public void run() {
+				IWizard wizard = new MultiFieldValidationWizard();
+				WizardDialog dialog = new WizardDialog(null, wizard);
+				dialog.open();
+
+				// The SWT event loop
+				Display display = Display.getCurrent();
+				while (dialog.getShell() != null
+						&& !dialog.getShell().isDisposed()) {
+					if (!display.readAndDispatch()) {
+						display.sleep();
+					}
+				}
+			}
+		});
+
+		display.dispose();
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet024SelectObservableValue.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet024SelectObservableValue.java
new file mode 100644
index 0000000..3ff2368
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet024SelectObservableValue.java
@@ -0,0 +1,125 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2009 Matthew Hall and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Matthew Hall - initial API and implementation (bug 249992)
+ *     Matthew Hall - bug 260329
+ ******************************************************************************/
+
+package org.eclipse.xwt.tests.snipppets;
+
+import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.value.SelectObservableValue;
+import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.jface.databinding.viewers.IViewerObservableValue;
+import org.eclipse.jface.databinding.viewers.ViewersObservables;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Shell;
+
+/**
+ * Demonstrate usage of SelectObservableValue
+ * 
+ * @since 3.2
+ */
+public class Snippet024SelectObservableValue {
+	protected Shell shell;
+
+	public static void main(String[] args) {
+		final Display display = Display.getDefault();
+		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
+			public void run() {
+				try {
+					Snippet024SelectObservableValue window = new Snippet024SelectObservableValue();
+					window.open();
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	public void open() {
+		final Display display = Display.getDefault();
+		createContents();
+		shell.open();
+		shell.layout();
+		while (!shell.isDisposed()) {
+			if (!display.readAndDispatch())
+				display.sleep();
+		}
+	}
+
+	protected void createContents() {
+		shell = new Shell();
+		shell.setSize(400, 300);
+		shell.setLayout(new GridLayout(2, true));
+		shell.setText("Snippet024SelectObservableValue");
+
+		final ListViewer listViewer = new ListViewer(shell, SWT.BORDER);
+		listViewer.setContentProvider(new ArrayContentProvider());
+		listViewer.getList().setLayoutData(
+				new GridData(SWT.FILL, SWT.FILL, true, true));
+
+		final Group group = new Group(shell, SWT.NONE);
+		group.setText("Radio Group");
+		group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+		group.setLayout(new GridLayout());
+
+		// Data Binding
+		Color[] colors = Color.values();
+
+		listViewer.setInput(colors);
+		IViewerObservableValue listViewerSelection = ViewersObservables
+				.observeSingleSelection(listViewer);
+
+		SelectObservableValue radioGroup = new SelectObservableValue();
+		for (int i = 0; i < colors.length; i++) {
+			Button button = new Button(group, SWT.RADIO);
+			button.setText(colors[i].toString());
+			radioGroup.addOption(colors[i], SWTObservables
+					.observeSelection(button));
+		}
+
+		DataBindingContext dbc = new DataBindingContext();
+		dbc.bindValue(radioGroup, listViewerSelection);
+	}
+
+	public static class Color {
+		public static final Color RED = new Color("Red");
+		public static final Color ORANGE = new Color("Orange");
+		public static final Color YELLOW = new Color("Yellow");
+		public static final Color GREEN = new Color("Green");
+		public static final Color BLUE = new Color("Blue");
+		public static final Color INDIGO = new Color("Indigo");
+		public static final Color VIOLET = new Color("Violet");
+
+		private final String name;
+
+		private Color(String name) {
+			this.name = name;
+		}
+
+		public String toString() {
+			return name;
+		}
+
+		public static Color[] values() {
+			return new Color[] { RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO,
+					VIOLET };
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet026AnonymousBeanProperties.java b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet026AnonymousBeanProperties.java
new file mode 100644
index 0000000..c6c21d4
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/samples/org/eclipse/xwt/tests/snipppets/Snippet026AnonymousBeanProperties.java
@@ -0,0 +1,402 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2009 Matthew Hall and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Matthew Hall - initial API and implementation (bug 247997)
+ *     Matthew Hall - bugs 261843, 260337, 265561
+ ******************************************************************************/
+
+package org.eclipse.xwt.tests.snipppets;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.Set;
+import java.util.TreeSet;
+
+import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.beans.BeanProperties;
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.set.SetDiff;
+import org.eclipse.core.databinding.observable.value.ComputedValue;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.INativePropertyListener;
+import org.eclipse.core.databinding.property.IProperty;
+import org.eclipse.core.databinding.property.ISimplePropertyListener;
+import org.eclipse.core.databinding.property.NativePropertyListener;
+import org.eclipse.core.databinding.property.set.DelegatingSetProperty;
+import org.eclipse.core.databinding.property.set.ISetProperty;
+import org.eclipse.core.databinding.property.set.SimpleSetProperty;
+import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.viewers.ViewerProperties;
+import org.eclipse.jface.databinding.viewers.ViewerSupport;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.ComboViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeColumn;
+
+/**
+ * @since 3.2
+ * 
+ */
+public class Snippet026AnonymousBeanProperties {
+	private ComboViewer statusViewer;
+	private Combo combo;
+	private Text nameText;
+	private TreeViewer contactViewer;
+
+	public static void main(String[] args) {
+		Display display = new Display();
+		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
+			public void run() {
+				try {
+					Snippet026AnonymousBeanProperties window = new Snippet026AnonymousBeanProperties();
+					window.open();
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		});
+	}
+
+	private ApplicationModel model;
+	private Shell shell;
+	private Tree tree;
+
+	// Minimal JavaBeans support
+	public static abstract class AbstractModelObject {
+		private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(
+				this);
+
+		public void addPropertyChangeListener(PropertyChangeListener listener) {
+			propertyChangeSupport.addPropertyChangeListener(listener);
+		}
+
+		public void addPropertyChangeListener(String propertyName,
+				PropertyChangeListener listener) {
+			propertyChangeSupport.addPropertyChangeListener(propertyName,
+					listener);
+		}
+
+		public void removePropertyChangeListener(PropertyChangeListener listener) {
+			propertyChangeSupport.removePropertyChangeListener(listener);
+		}
+
+		public void removePropertyChangeListener(String propertyName,
+				PropertyChangeListener listener) {
+			propertyChangeSupport.removePropertyChangeListener(propertyName,
+					listener);
+		}
+
+		protected void firePropertyChange(String propertyName, Object oldValue,
+				Object newValue) {
+			propertyChangeSupport.firePropertyChange(propertyName, oldValue,
+					newValue);
+		}
+	}
+
+	public static class ContactGroup extends AbstractModelObject implements
+			Comparable {
+		private String name;
+		private Set contacts = new TreeSet();
+
+		ContactGroup(String name) {
+			this.name = checkNull(name);
+		}
+
+		private String checkNull(String string) {
+			if (string == null)
+				throw new NullPointerException();
+			return string;
+		}
+
+		public String getName() {
+			return name;
+		}
+
+		public void setName(String name) {
+			firePropertyChange("name", this.name, this.name = checkNull(name));
+		}
+
+		public Set getContacts() {
+			return new TreeSet(contacts);
+		}
+
+		public void addContact(Contact contact) {
+			Set oldValue = getContacts();
+			contacts.add(contact);
+			Set newValue = getContacts();
+			firePropertyChange("contacts", oldValue, newValue);
+		}
+
+		public void removeContact(Contact contact) {
+			Set oldValue = getContacts();
+			contacts.remove(contact);
+			Set newValue = getContacts();
+			firePropertyChange("contacts", oldValue, newValue);
+		}
+
+		public int compareTo(Object o) {
+			ContactGroup that = (ContactGroup) o;
+			return this.name.compareTo(that.name);
+		}
+	}
+
+	public static class Contact extends AbstractModelObject implements
+			Comparable {
+		private String name;
+		private String status;
+
+		private String checkNull(String string) {
+			if (string == null)
+				throw new NullPointerException();
+			return string;
+		}
+
+		public Contact(String name, String status) {
+			this.name = checkNull(name);
+			this.status = checkNull(status);
+		}
+
+		public String getName() {
+			return name;
+		}
+
+		public void setName(String name) {
+			firePropertyChange("name", this.name, this.name = checkNull(name));
+		}
+
+		public String getStatus() {
+			return status;
+		}
+
+		public void setStatus(String status) {
+			firePropertyChange("status", this.status,
+					this.status = checkNull(status));
+		}
+
+		public int compareTo(Object o) {
+			Contact that = (Contact) o;
+			int result = this.name.compareTo(that.name);
+			if (result == 0)
+				result = this.status.compareTo(that.status);
+			return result;
+		}
+	}
+
+	public static class ApplicationModel extends AbstractModelObject {
+		private Set groups = new TreeSet();
+
+		public Set getGroups() {
+			return new TreeSet(groups);
+		}
+
+		public void setGroups(Set groups) {
+			Set oldValue = getGroups();
+			this.groups = new TreeSet(groups);
+			Set newValue = getGroups();
+			firePropertyChange("groups", oldValue, newValue);
+		}
+	}
+
+	/**
+	 * Set property for the "contacts" property of a ContactGroup. Since
+	 * ContactGroup does not have a setContacts() method we have to write our
+	 * own property to apply set changes incrementally through the addContact
+	 * and removeContact methods.
+	 */
+	public static class ContactGroupContactsProperty extends SimpleSetProperty {
+		public Object getElementType() {
+			return Contact.class;
+		}
+
+		protected Set doGetSet(Object source) {
+			if (source == null)
+				return Collections.EMPTY_SET;
+			return ((ContactGroup) source).getContacts();
+		}
+
+		protected void doSetSet(Object source, Set set, SetDiff diff) {
+			ContactGroup group = (ContactGroup) source;
+			for (Iterator it = diff.getRemovals().iterator(); it.hasNext();) {
+				Contact contact = (Contact) it.next();
+				group.removeContact(contact);
+			}
+			for (Iterator it = diff.getAdditions().iterator(); it.hasNext();) {
+				Contact contact = (Contact) it.next();
+				group.addContact(contact);
+			}
+		}
+
+		public INativePropertyListener adaptListener(
+				final ISimplePropertyListener listener) {
+			return new Listener(this, listener);
+		}
+
+		private class Listener extends NativePropertyListener implements
+				PropertyChangeListener {
+			Listener(IProperty property, ISimplePropertyListener listener) {
+				super(property, listener);
+			}
+
+			public void propertyChange(PropertyChangeEvent evt) {
+				fireChange(evt.getSource(), null);
+			}
+
+			protected void doAddTo(Object source) {
+				((ContactGroup) source).addPropertyChangeListener("contacts",
+						this);
+			}
+
+			protected void doRemoveFrom(Object source) {
+				((ContactGroup) source).removePropertyChangeListener(
+						"contacts", this);
+			}
+		}
+	}
+
+	public void open() {
+		model = createDefaultModel();
+
+		final Display display = Display.getDefault();
+		createContents();
+		bindUI();
+		shell.open();
+		shell.layout();
+		while (!shell.isDisposed()) {
+			if (!display.readAndDispatch())
+				display.sleep();
+		}
+	}
+
+	private static final String[] statuses = new String[] { "Online", "Idle",
+			"Busy", "Offline" };
+
+	/**
+	 * @return
+	 */
+	private ApplicationModel createDefaultModel() {
+		ContactGroup swtGroup = new ContactGroup("SWT");
+		swtGroup.addContact(new Contact("Steve Northover", "Busy"));
+		swtGroup.addContact(new Contact("Grant Gayed", "Online"));
+		swtGroup.addContact(new Contact("Veronika Irvine", "Offline"));
+		swtGroup.addContact(new Contact("Mike Wilson", "Online"));
+		swtGroup.addContact(new Contact("Christophe Cornu", "Idle"));
+		swtGroup.addContact(new Contact("Lynne Kues", "Online"));
+		swtGroup.addContact(new Contact("Silenio Quarti", "Idle"));
+
+		ContactGroup jdbGroup = new ContactGroup("JFace Data Binding");
+		jdbGroup.addContact(new Contact("Boris Bokowski", "Online"));
+		jdbGroup.addContact(new Contact("Matthew Hall", "Idle"));
+
+		Set groups = new TreeSet();
+		groups.add(swtGroup);
+		groups.add(jdbGroup);
+		ApplicationModel model = new ApplicationModel();
+		model.setGroups(groups);
+
+		return model;
+	}
+
+	/**
+	 * Create nameMap of the window
+	 */
+	protected void createContents() {
+		shell = new Shell();
+		shell.setSize(379, 393);
+		shell.setText("Snippet026AnonymousBeanProperties");
+		final GridLayout gridLayout = new GridLayout();
+		gridLayout.numColumns = 4;
+		shell.setLayout(gridLayout);
+
+		contactViewer = new TreeViewer(shell, SWT.BORDER);
+		tree = contactViewer.getTree();
+		tree.setHeaderVisible(true);
+		tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 4, 1));
+
+		final TreeColumn nameColumn = new TreeColumn(tree, SWT.NONE);
+		nameColumn.setWidth(163);
+		nameColumn.setText("Name");
+
+		final TreeColumn newColumnTreeColumn = new TreeColumn(tree, SWT.NONE);
+		newColumnTreeColumn.setWidth(100);
+		newColumnTreeColumn.setText("Status");
+
+		final Label nameLabel = new Label(shell, SWT.NONE);
+		nameLabel.setText("Name");
+
+		nameText = new Text(shell, SWT.BORDER);
+		final GridData gd_nameText = new GridData(SWT.FILL, SWT.CENTER, true,
+				false);
+		nameText.setLayoutData(gd_nameText);
+
+		final Label statusLabel = new Label(shell, SWT.NONE);
+		statusLabel.setLayoutData(new GridData());
+		statusLabel.setText("Status");
+
+		statusViewer = new ComboViewer(shell, SWT.READ_ONLY);
+		combo = statusViewer.getCombo();
+		combo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+	}
+
+	private void bindUI() {
+		ISetProperty treeChildrenProperty = new DelegatingSetProperty() {
+			ISetProperty modelGroups = BeanProperties.set(
+					ApplicationModel.class, "groups");
+			ISetProperty groupContacts = BeanProperties.set(ContactGroup.class,
+					"contacts");
+
+			protected ISetProperty doGetDelegate(Object source) {
+				if (source instanceof ApplicationModel)
+					return modelGroups;
+				if (source instanceof ContactGroup)
+					return groupContacts;
+				return null;
+			}
+		};
+
+		ViewerSupport.bind(contactViewer, model, treeChildrenProperty,
+				BeanProperties.values(new String[] { "name", "status" }));
+
+		contactViewer.expandAll();
+
+		final IObservableValue selection = ViewerProperties.singleSelection()
+				.observe(contactViewer);
+
+		DataBindingContext dbc = new DataBindingContext();
+
+		dbc.bindValue(WidgetProperties.text(SWT.Modify).observe(nameText),
+				BeanProperties.value("name").observeDetail(selection));
+
+		statusViewer.setContentProvider(new ArrayContentProvider());
+		statusViewer.setInput(statuses);
+
+		dbc.bindValue(ViewerProperties.singleSelection().observe(statusViewer),
+				BeanProperties.value("status").observeDetail(selection));
+
+		dbc.bindValue(WidgetProperties.enabled().observe(
+				statusViewer.getControl()), new ComputedValue() {
+			protected Object calculate() {
+				return Boolean.valueOf(selection.getValue() instanceof Contact);
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/MultiTrigger1.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/MultiTrigger1.java
new file mode 100644
index 0000000..34050d0
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/MultiTrigger1.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.samples.triggers;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class MultiTrigger1 {
+
+	public static void main(String[] args) {
+
+		URL url = MultiTrigger1.class.getResource(MultiTrigger1.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/MultiTrigger1.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/MultiTrigger1.xwt
new file mode 100644
index 0000000..a66f621
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/MultiTrigger1.xwt
@@ -0,0 +1,27 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    x:Class="org.eclipse.xwt.tests.xaml.Name">
+	<Composite.layout>
+		<GridLayout numColumns="1"/>
+	</Composite.layout>
+	
+   <Button Name="button1" x:Style="CHECK" text="Condition 1"/>
+   <Button Name="button2" x:Style="CHECK" text="Condition 2"/>
+   <Label Name="messageLabel">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+   </Label>
+   
+   <Composite.triggers>
+      <MultiTrigger>
+          <MultiTrigger.conditions>
+              <Condition property="selection" value="True" sourceName="button1" />
+              <Condition property="selection" value="True" sourceName="button2" />
+          </MultiTrigger.conditions>
+          <Setter property="text" value="OK" targetName="messageLabel" />
+      </MultiTrigger>
+   </Composite.triggers>
+
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger1.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger1.java
new file mode 100644
index 0000000..34413c5
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger1.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.samples.triggers;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Trigger1 {
+
+	public static void main(String[] args) {
+
+		URL url = Trigger1.class.getResource(Trigger1.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger1.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger1.xwt
new file mode 100644
index 0000000..2884acb
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger1.xwt
@@ -0,0 +1,15 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    x:Class="org.eclipse.xwt.tests.xaml.Name">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+<Button x:Style="CHECK" text="Unselected">
+  <Button.triggers>
+   <Trigger property="Selection" value="true">
+     <Setter property="Text" value="Selected"/> 
+	</Trigger>
+  </Button.triggers>
+</Button>
+
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger2.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger2.java
new file mode 100644
index 0000000..3250316
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger2.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.samples.triggers;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Trigger2 {
+
+	public static void main(String[] args) {
+
+		URL url = Trigger2.class.getResource(Trigger2.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger2.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger2.xwt
new file mode 100644
index 0000000..7c22d0d
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger2.xwt
@@ -0,0 +1,16 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    x:Class="org.eclipse.xwt.tests.xaml.Name">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+<Button Name="Button1" x:Style="CHECK" text="Unselected"/>
+<Button x:Style="CHECK" text="Button State">
+  <Button.triggers>
+   <Trigger property="selection" value="true">
+     <Setter property="Text" value="selected" targetName="Button1"/> 
+	</Trigger>
+  </Button.triggers>
+</Button>
+
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger3.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger3.java
new file mode 100644
index 0000000..f7cac46
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger3.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.samples.triggers;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Trigger3 {
+
+	public static void main(String[] args) {
+
+		URL url = Trigger3.class.getResource(Trigger3.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger3.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger3.xwt
new file mode 100644
index 0000000..67530a0
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/samples/triggers/Trigger3.xwt
@@ -0,0 +1,17 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    x:Class="org.eclipse.xwt.tests.xaml.Name">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+<Button Name="Button1" x:Style="CHECK" text="Unselected"/>
+<Button x:Style="CHECK" text="Button State">
+  <Button.triggers>
+   <Trigger property="selection" value="true">
+     <Setter property="Text" value="selected" targetName="Button1"/> 
+     <Setter property="selection" value="true" targetName="Button1"/> 
+	</Trigger>
+  </Button.triggers>
+</Button>
+
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/Activator.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/Activator.java
new file mode 100644
index 0000000..1337168
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/Activator.java
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *     Erdal Karaca - removed dependency on org.eclipse.ui
+ *******************************************************************************/
+package org.eclipse.xwt.tests;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator implements BundleActivator {
+
+	// The plug-in ID
+	public static final String PLUGIN_ID = "org.eclipse.e4.xw.tests";
+
+	// The shared instance
+	private static Activator plugin;
+
+	/**
+	 * The constructor
+	 */
+	public Activator() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext
+	 * )
+	 */
+	public void start(BundleContext context) throws Exception {
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext
+	 * )
+	 */
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+	}
+
+	/**
+	 * Returns the shared instance
+	 * 
+	 * @return the shared instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/BaseBean.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/BaseBean.java
new file mode 100644
index 0000000..a65b8c4
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/BaseBean.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/**
+ *
+ */
+package org.eclipse.xwt.tests;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+
+/**
+ * A Base bean that implements the JavaBean change support
+ *
+ * @author hceylan
+ *
+ */
+public class BaseBean {
+
+	protected final PropertyChangeSupport changeSupport;
+
+	/**
+	 *
+	 */
+	public BaseBean() {
+		super();
+
+		this.changeSupport = new PropertyChangeSupport(this);
+	}
+
+	/**
+	 * Adds the listener for the property with the name propertyName
+	 *
+	 * @param propertyName
+	 * @param listener
+	 */
+	public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {
+		this.changeSupport.addPropertyChangeListener(propertyName, listener);
+	}
+
+	/**
+	 * Removes the listener for the property with the name propertyName
+	 *
+	 * @param propertyName
+	 * @param listener
+	 */
+	public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) {
+		this.changeSupport.removePropertyChangeListener(propertyName, listener);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/HelloWorld.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/HelloWorld.java
new file mode 100644
index 0000000..3a9dc93
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/HelloWorld.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class HelloWorld {
+	public static void main(String[] args) {
+		URL url = HelloWorld.class.getResource(HelloWorld.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/HelloWorld.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/HelloWorld.xwt
new file mode 100644
index 0000000..39bf794
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/HelloWorld.xwt
@@ -0,0 +1,6 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation">
+	<Composite.layout>
+		<GridLayout numColumns="2" />
+	</Composite.layout>
+	<Text background="SWT.COLOR_BLUE" />
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/XWTTestCase.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/XWTTestCase.java
new file mode 100644
index 0000000..8b1b8b0
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/XWTTestCase.java
@@ -0,0 +1,384 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.IUIResource;
+import org.eclipse.xwt.IXWTLoader;
+import org.eclipse.xwt.XWT;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public abstract class XWTTestCase extends TestCase {
+	public Control root;
+	static boolean simulateMThreading = false;
+
+	static {
+		if (simulateMThreading) {			
+			Thread thread = new Thread() {
+				@Override
+				public void run() {
+					Display.getDefault();
+				}
+			};
+			thread.start();
+			
+			try {
+				thread.join();
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+		clearnUpDisplay();
+	}
+
+	public static void clearnUpDisplay() {
+		try {
+			Field displaysField = Display.class.getDeclaredField("Displays");
+			if (displaysField != null) {
+				displaysField.setAccessible(true);
+				Display[] displays = (Display[]) displaysField.get(null);
+				if (displays != null) {
+					for(int i = 0; i<displays.length; i++ ) {
+						displays[i] = null;
+					}
+				}
+			}
+			Field field = Display.class.getDeclaredField("Default");
+			if (field != null) {
+				field.setAccessible(true);
+				Display defaultDisplay = (Display) field.get(null);
+				if (defaultDisplay != null) {
+					field.set(null, null);
+				}
+			}
+		} catch (Exception e) {
+		}		
+	}
+	
+	protected void runTest(URL url, Runnable... checkActions) {
+		runTest(url, new HashMap<String, Object>(), checkActions);
+	}
+
+	protected void runTest(IUIResource pattern, Runnable... checkActions) {
+		runTest(pattern, new HashMap<String, Object>(), checkActions);
+	}
+
+	protected void runTest(URL url, Object dataContext,
+			Runnable... checkActions) {
+		HashMap<String, Object> options = new HashMap<String, Object>();
+		options.put(IXWTLoader.DATACONTEXT_PROPERTY, dataContext);
+		runTest(url, options, checkActions);
+	}
+
+	protected void runTest(IUIResource pattern, Object dataContext,
+			Runnable... checkActions) {
+		HashMap<String, Object> options = new HashMap<String, Object>();
+		options.put(IXWTLoader.DATACONTEXT_PROPERTY, dataContext);
+		runTest(pattern, options, checkActions);
+	}
+
+	protected void runTest(final URL url, final Map<String, Object> options,
+			final Runnable... checkActions) {
+		XWT.runOnUIThread(new Runnable() {
+			public void run() {
+				doRunTest(url, options, checkActions);
+			}
+		});
+	}
+
+	private void doRunTest(final URL url, Map<String, Object> options,
+			Runnable... checkActions) {
+		ClassLoader classLoader = Thread.currentThread()
+				.getContextClassLoader();
+		try {
+			Thread.currentThread().setContextClassLoader(
+					this.getClass().getClassLoader());
+			Object element = XWT.loadWithOptions(url, options);
+			assertTrue(element instanceof Control);
+			assertNotNull(element);
+			root = (Control) element;
+			Shell shell = root.getShell();
+			shell.open();
+			/**
+			 * The shells of the tests failed are not cleanup properly. This is
+			 * a minimalistic solution to clean up the desktop...
+			 */
+			Display display = shell.getDisplay();
+			try {
+				for (Runnable runnable : checkActions) {
+					while (display.readAndDispatch())
+						;
+					display.syncExec(runnable);
+					while (display.readAndDispatch())
+						;
+					while (display.readAndDispatch())
+						;
+				}
+				assertFalse(root.isDisposed());
+			} finally {
+				try {
+					shell.close();
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+			while (display.readAndDispatch())
+				;
+		} catch (Exception e) {
+			e.printStackTrace();
+			fail(e.getMessage());
+		} finally {
+			Thread.currentThread().setContextClassLoader(classLoader);
+		}
+	}
+
+	protected void runTest(final IUIResource pattern,
+			final Map<String, Object> options, final Runnable... checkActions) {
+		XWT.runOnUIThread(new Runnable() {
+			public void run() {
+				doRunTest(pattern, options, checkActions);
+			}
+		});
+	}
+
+	private void doRunTest(final IUIResource pattern,
+			Map<String, Object> options, Runnable... checkActions) {
+		ClassLoader classLoader = Thread.currentThread()
+				.getContextClassLoader();
+		try {
+			Thread.currentThread().setContextClassLoader(
+					this.getClass().getClassLoader());
+			Object widget = XWT.loadWithOptions(pattern, options);
+			assertTrue(widget instanceof Control);
+			assertNotNull(widget);
+			root = (Control) widget;
+			Shell shell = root.getShell();
+			shell.open();
+			/**
+			 * The shells of the tests failed are not cleanup properly. This is
+			 * a minimalistic solution to clean up the desktop...
+			 */
+			Display display = shell.getDisplay();
+			try {
+				for (Runnable runnable : checkActions) {
+					while (display.readAndDispatch())
+						;
+					display.syncExec(runnable);
+					while (display.readAndDispatch())
+						;
+					while (display.readAndDispatch())
+						;
+				}
+				assertFalse(root.isDisposed());
+			} finally {
+				try {
+					shell.close();
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+			while (display.readAndDispatch())
+				;
+		} catch (Exception e) {
+			e.printStackTrace();
+			fail(e.getMessage());
+		} finally {
+			Thread.currentThread().setContextClassLoader(classLoader);
+		}
+	}
+
+	protected void runDebugTest(final URL url, Runnable prepareAction,
+			Runnable checkAction1) {
+		ClassLoader classLoader = Thread.currentThread()
+				.getContextClassLoader();
+		try {
+			Thread.currentThread().setContextClassLoader(
+					this.getClass().getClassLoader());
+			Object widget = XWT.load(url);
+			assertTrue(widget instanceof Control);
+			assertNotNull(widget);
+			root = (Control) widget;
+			assertNotNull(root);
+			Shell shell = root.getShell();
+			shell.open();
+			Display display = shell.getDisplay();
+			if (prepareAction != null) {
+				display.asyncExec(prepareAction);
+			}
+			while (!display.isDisposed())
+				display.readAndDispatch();
+		} catch (Exception e) {
+			e.printStackTrace();
+			fail(e.getMessage());
+		} finally {
+			Thread.currentThread().setContextClassLoader(classLoader);
+		}
+	}
+
+	protected void runDebugTest(final IUIResource pattern,
+			Runnable prepareAction, Runnable checkAction1) {
+		ClassLoader classLoader = Thread.currentThread()
+				.getContextClassLoader();
+		try {
+			Thread.currentThread().setContextClassLoader(
+					this.getClass().getClassLoader());
+			Object widget = XWT.load(pattern);
+			assertTrue(widget instanceof Control);
+			assertNotNull(widget);
+			root = (Control) widget;
+			assertNotNull(root);
+			Shell shell = root.getShell();
+			shell.open();
+			Display display = shell.getDisplay();
+			if (prepareAction != null) {
+				display.asyncExec(prepareAction);
+			}
+			while (!display.isDisposed())
+				display.readAndDispatch();
+		} catch (Exception e) {
+			e.printStackTrace();
+			fail(e.getMessage());
+		} finally {
+			Thread.currentThread().setContextClassLoader(classLoader);
+		}
+	}
+
+	public void selectButton(Button button) {
+		selectButton(button, true);
+	}
+
+	protected void checkVisibility(String name, Class<? extends Control> type) {
+		Object element = XWT.findElementByName(root, name);
+		if (element == null) {
+			fail(name + " is not found.");
+		}
+		assertTrue(type.isInstance(element));
+		Control section = (Control) element;
+		assertTrue(section.getVisible());
+	}
+
+	protected void checkChildren(String name, String path, int number) {
+		Object element = XWT.findElementByName(root, name);
+		if (path != null) {
+			try {
+				Method method = element.getClass().getMethod("get" + path);
+				if (method == null) {
+					fail("Property " + path + " is not found in "
+							+ element.getClass().getName());
+				}
+				element = method.invoke(element);
+				assertTrue(Composite.class.isInstance(element));
+			} catch (Exception e) {
+				e.printStackTrace();
+				fail(e.getMessage());
+			}
+		}
+		assertTrue(Composite.class.isInstance(element));
+		Composite composite = (Composite) element;
+		assertEquals(composite.getChildren().length, number);
+	}
+
+	protected void checkChildren(String name, int number) {
+		checkChildren(name, null, number);
+	}
+
+	protected void selectButton(Button button, boolean selection) {
+		Point size = button.getSize();
+		Display display = button.getDisplay();
+		Event upEvent = new Event();
+		upEvent.widget = button;
+		upEvent.button = 1;
+		upEvent.type = SWT.MouseUp;
+		upEvent.x = size.x / 2;
+		upEvent.y = size.y / 2;
+		displayPost(display, upEvent);
+
+		button.setSelection(selection);
+		button.notifyListeners(SWT.Selection, upEvent);
+	}
+
+	protected void setFocusOut(Widget widget) {
+		setFocus(widget, false);
+	}
+
+	protected void setFocusIn(Widget widget) {
+		setFocus(widget, true);
+	}
+
+	private void setFocus(Widget widget, boolean focus) {
+		Display display = widget.getDisplay();
+		Event upEvent = new Event();
+		upEvent.widget = widget;
+		upEvent.button = 1;
+		upEvent.type = SWT.MouseUp;
+		displayPost(display, upEvent);
+
+		if (focus) {
+			widget.notifyListeners(SWT.FocusIn, upEvent);
+		} else {
+			widget.notifyListeners(SWT.FocusOut, upEvent);
+		}
+	}
+
+	protected void assertText(String name, String value) {
+		Object element = XWT.findElementByName(root, name);
+		assertTrue(element instanceof Text);
+		Text text = (Text) element;
+		assertEquals(value, text.getText());
+	}
+
+	protected void setText(String name, String value) {
+		Object element = XWT.findElementByName(root, name);
+		assertTrue(element instanceof Text);
+		Text text = (Text) element;
+		text.setText(value);
+	}
+
+	protected void assertEqualsArray(Object[] source, Object[] target) {
+		assertEquals(source.length, target.length);
+		for (int i = 0; i < source.length; i++) {
+			assertEquals(source[i], target[i]);
+		}
+	}
+
+	private void displayPost(Display display, Event event) {
+		if (SWT.getPlatform() != "rap") {
+			try {
+				Method m = Display.class.getDeclaredMethod("post", Event.class);
+				m.invoke(display, event);
+			} catch (Exception e) {
+				assert false;
+			}
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/XwtTestSuite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/XwtTestSuite.java
new file mode 100644
index 0000000..4321d3c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/XwtTestSuite.java
@@ -0,0 +1,185 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2013 Soyatec (http://www.soyatec.com), CEA LIST, and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *     CEA LIST - add regression tests for URL handling in XML parsing
+ *******************************************************************************/
+package org.eclipse.xwt.tests;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.eclipse.xwt.tests.animation.AnimationSuite;
+import org.eclipse.xwt.tests.annotation.AnnotationTests;
+import org.eclipse.xwt.tests.attachedproperty.AttachedPropertyTests;
+import org.eclipse.xwt.tests.clr.CLRTestSuite;
+import org.eclipse.xwt.tests.clrfactory.CLRFactoryTestSuite;
+import org.eclipse.xwt.tests.controls.ControlsTestSuite;
+import org.eclipse.xwt.tests.controls.layout.LayoutTestSuite;
+import org.eclipse.xwt.tests.controls.uiresource.UIResourceTestSuite;
+import org.eclipse.xwt.tests.databinding.BindingTestSuite;
+import org.eclipse.xwt.tests.events.EventsTestSuite;
+import org.eclipse.xwt.tests.forms.FormsTestSuite;
+import org.eclipse.xwt.tests.internal.xml.XMLTestSuite;
+import org.eclipse.xwt.tests.jface.JFaceTestSuite;
+import org.eclipse.xwt.tests.metaclass.Metaclass_Tests;
+import org.eclipse.xwt.tests.name.NameTestSuite;
+import org.eclipse.xwt.tests.namespace.handler.NamespacehandlerTestSuite;
+import org.eclipse.xwt.tests.resources.ResourcesTestSuite;
+import org.eclipse.xwt.tests.resourcesdictionary.ResourcesDictionaryTestSuite;
+import org.eclipse.xwt.tests.snippet017.Snippet017TestSuite;
+import org.eclipse.xwt.tests.snippet019.Snippet019TestSuite;
+import org.eclipse.xwt.tests.swt.SWTTestSuite;
+import org.eclipse.xwt.tests.threading.ThreadingSuite;
+import org.eclipse.xwt.tests.trigger.TriggerTestSuite;
+import org.eclipse.xwt.tests.xaml.BindingExpressionTestSuite;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class XwtTestSuite extends TestSuite {
+	public static final Test suite() {
+		return new XwtTestSuite();
+	}
+
+	/**
+	 * The execution of the tests must be started from simple to complex in
+	 * order.
+	 */
+	public XwtTestSuite() {
+		// XAML
+		addXAMLTests();
+
+		// Metaclass
+		addTest(new TestSuite(Metaclass_Tests.class));
+
+		// XWT
+		addXWTTests();
+
+		// internal XML parsing
+		addInternalXMLTests();
+
+		// annotations
+		addTest(new TestSuite(AnnotationTests.class));
+
+		// widgets SWT
+		addControlsTests();
+
+		addUserControlTests();
+
+		addKeyBindingTests();
+
+		// widgets JFace
+		addJFaceTests();
+
+		// i18n
+		addI18NTests();
+
+		// events
+		addEventTests();
+
+		// data binding
+		addDataBindingTests();
+
+		// Presentation tests
+		addPresentationTests();
+
+		// Style provider
+		addStyleTests();
+
+		// triggers
+		addTriggerTests();
+
+		// triggers
+		addSnippetTests();
+
+		// triggers
+		addFormsTests();
+
+		// triggers
+		addAnimationTests();
+		
+		// Must be done at last
+		addTest(ThreadingSuite.suite());
+	}
+
+	protected void addXAMLTests() {
+		addTest(NameTestSuite.suite());
+		addTest(ResourcesTestSuite.suite());
+		addTest(ResourcesDictionaryTestSuite.suite());
+		addTest(BindingExpressionTestSuite.suite());
+	}
+
+	protected void addXWTTests() {
+		addTest(CLRTestSuite.suite());
+		addTest(CLRFactoryTestSuite.suite());
+		addTest(new TestSuite(AttachedPropertyTests.class));
+	}
+
+	protected void addControlsTests() {
+		addTest(ControlsTestSuite.suite());
+		addTest(LayoutTestSuite.suite());
+		addTest(SWTTestSuite.suite());
+		addTest(UIResourceTestSuite.suite());
+	}
+
+	protected void addUserControlTests() {
+	}
+
+	protected void addKeyBindingTests() {
+	}
+
+	protected void addPresentationTests() {
+	}
+
+	protected void addJFaceTests() {
+		addTest(JFaceTestSuite.suite());
+	}
+
+	protected void addEventTests() {
+		addTest(EventsTestSuite.suite());
+	}
+
+	protected void addDataBindingTests() {
+		addTest(BindingTestSuite.suite());
+	}
+
+	protected void addI18NTests() {
+	}
+
+	protected void addStyleTests() {
+	}
+
+	protected void addSnippetTests() {
+		addTest(Snippet017TestSuite.suite());
+		addTest(Snippet019TestSuite.suite());
+	}
+
+	protected void addFormsTests() {
+		addTest(FormsTestSuite.suite());
+	}
+
+	protected void addAnimationTests() {
+		addTest(AnimationSuite.suite());
+	}
+
+	protected void addTriggerTests() {
+		addTest(TriggerTestSuite.suite());
+	}
+
+	protected void addCustomizationTests() {
+		addTest(NamespacehandlerTestSuite.suite());
+	}
+	
+	protected void addInternalXMLTests() {
+		addTest(XMLTestSuite.suite());
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/AnimationSuite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/AnimationSuite.java
new file mode 100644
index 0000000..86a40c3
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/AnimationSuite.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.animation;
+
+import org.eclipse.xwt.tests.animation.repeatBehavior.RepeatBehaviorTests;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class AnimationSuite extends TestSuite {
+	public static final Test suite() {
+		return new AnimationSuite();
+	}
+
+	public AnimationSuite() {
+		addTest(new TestSuite(AnimationTests.class));
+		addTest(new TestSuite(RepeatBehaviorTests.class));
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/AnimationTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/AnimationTests.java
new file mode 100644
index 0000000..293d5a6
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/AnimationTests.java
@@ -0,0 +1,324 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.animation;
+
+import java.net.URL;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class AnimationTests extends XWTTestCase {
+	protected Color initialColor;
+	protected int initialInt;
+	protected Point initialLocation;
+	protected Point initialSize;
+	protected Rectangle initialBounds;
+
+	public void test_Color_Background() throws Exception {
+		URL url = Color_Background_Composite.class
+				.getResource(Color_Background_Composite.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				try {
+					Object element = XWT.findElementByName(root, "startButton");
+					assertTrue(element instanceof Button);
+					Button button = (Button)element;
+					selectButton(button);
+					
+					element = XWT.findElementByName(root, "labelTarget");
+					assertTrue(element instanceof Label);
+					Label label = (Label)element;
+					initialColor = label.getBackground();
+				} catch (Exception e) {
+					fail();
+				}
+			}
+		},
+		new Runnable() {
+			public void run() {
+				try {
+					Thread.currentThread().sleep(3000);
+				} catch (InterruptedException e) {
+					// TODO Auto-generated catch block
+					e.printStackTrace();
+				}
+			}
+		},
+		new Runnable() {
+			public void run() {
+				try {
+					Object element = XWT.findElementByName(root, "labelTarget");
+					assertTrue(element instanceof Label);
+					Label label = (Label)element;
+					Color color = label.getBackground();
+					assertNotSame(initialColor, color);
+				} catch (Exception e) {
+					fail();
+				}
+			}
+		}		
+		);
+	}
+	
+	public void test_Color_Foreground() throws Exception {
+		URL url = Color_Foreground_Composite.class
+				.getResource(Color_Foreground_Composite.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				try {
+					Object element = XWT.findElementByName(root, "startButton");
+					assertTrue(element instanceof Button);
+					Button button = (Button)element;
+					selectButton(button);
+					
+					element = XWT.findElementByName(root, "labelTarget");
+					assertTrue(element instanceof Label);
+					Label label = (Label)element;
+					initialColor = label.getForeground();
+				} catch (Exception e) {
+					fail();
+				}
+			}
+		},
+		new Runnable() {
+			public void run() {
+				try {
+					Thread.sleep(3000);
+				} catch (InterruptedException e) {
+					// TODO Auto-generated catch block
+					e.printStackTrace();
+				}
+			}
+		},
+		new Runnable() {
+			public void run() {
+				try {
+					Object element = XWT.findElementByName(root, "labelTarget");
+					assertTrue(element instanceof Label);
+					Label label = (Label)element;
+					Color color = label.getForeground();
+					assertNotSame(initialColor, color);
+				} catch (Exception e) {
+					fail();
+				}
+			}
+		}		
+		);
+	}
+	
+	public void test_Int_Alpha() throws Exception {
+		URL url = Int_Alpha_Shell.class
+				.getResource(Int_Alpha_Shell.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				try {
+					Object element = XWT.findElementByName(root, "startButton");
+					assertTrue(element instanceof Button);
+					Button button = (Button)element;
+					selectButton(button);
+					
+					element = XWT.findElementByName(root, "window");
+					assertTrue(element instanceof Shell);
+					Shell shell = (Shell)element;
+					initialInt = shell.getAlpha();
+				} catch (Exception e) {
+					fail();
+				}
+			}
+		},
+		new Runnable() {
+			public void run() {
+				try {
+					Thread.sleep(1000);
+				} catch (InterruptedException e) {
+					// TODO Auto-generated catch block
+					e.printStackTrace();
+				}
+			}
+		},
+		new Runnable() {
+			public void run() {
+				try {
+					Object element = XWT.findElementByName(root, "window");
+					assertTrue(element instanceof Shell);
+					Shell shell = (Shell)element;
+					int alpha = shell.getAlpha();
+					if (!"gtk".equals(SWT.getPlatform())) {
+						assertTrue(alpha != initialInt);
+					}	
+				} catch (Exception e) {
+					fail();
+				}
+			}
+		}		
+		);
+	}
+	
+	public void test_Point_Location_Shell() throws Exception {
+		URL url = Point_Location_Shell.class
+				.getResource(Point_Location_Shell.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				try {
+					Object element = XWT.findElementByName(root, "startButton");
+					assertTrue(element instanceof Button);
+					Button button = (Button)element;
+					selectButton(button);
+					
+					element = XWT.findElementByName(root, "window");
+					assertTrue(element instanceof Shell);
+					Shell shell = (Shell)element;
+					initialLocation = shell.getLocation();
+				} catch (Exception e) {
+					fail();
+				}
+			}
+		},
+		new Runnable() {
+			public void run() {
+				try {
+					Thread.sleep(1000);
+				} catch (InterruptedException e) {
+					// TODO Auto-generated catch block
+					e.printStackTrace();
+				}
+			}
+		},
+		new Runnable() {
+			public void run() {
+				try {
+					Object element = XWT.findElementByName(root, "window");
+					assertTrue(element instanceof Shell);
+					Shell shell = (Shell)element;
+					Point location = shell.getLocation();
+					assertNotSame(initialLocation, location);
+				} catch (Exception e) {
+					fail();
+				}
+			}
+		}		
+		);
+	}
+	
+	public void test_Point_Size_Shell() throws Exception {
+		URL url = Point_Size_Shell.class
+				.getResource(Point_Size_Shell.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				try {
+					Object element = XWT.findElementByName(root, "startButton");
+					assertTrue(element instanceof Button);
+					Button button = (Button)element;
+					selectButton(button);
+					
+					element = XWT.findElementByName(root, "window");
+					assertTrue(element instanceof Shell);
+					Shell shell = (Shell)element;
+					initialSize = shell.getSize();
+				} catch (Exception e) {
+					fail();
+				}
+			}
+		},
+		new Runnable() {
+			public void run() {
+				try {
+					Thread.sleep(1000);
+				} catch (InterruptedException e) {
+					// TODO Auto-generated catch block
+					e.printStackTrace();
+				}
+			}
+		},
+		new Runnable() {
+			public void run() {
+				try {
+					Object element = XWT.findElementByName(root, "window");
+					assertTrue(element instanceof Shell);
+					Shell shell = (Shell)element;
+					Point size = shell.getSize();
+					assertNotSame(initialSize, size);
+				} catch (Exception e) {
+					fail();
+				}
+			}
+		}		
+		);
+	}
+	
+	public void test_Rectangle_Bounds_Shell() throws Exception {
+		URL url = Rectangle_Bounds_Shell.class
+				.getResource(Rectangle_Bounds_Shell.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				try {
+					Object element = XWT.findElementByName(root, "startButton");
+					assertTrue(element instanceof Button);
+					Button button = (Button)element;
+					selectButton(button);
+					
+					element = XWT.findElementByName(root, "window");
+					assertTrue(element instanceof Shell);
+					Shell shell = (Shell)element;
+					initialBounds = shell.getBounds();
+				} catch (Exception e) {
+					fail();
+				}
+			}
+		},
+		new Runnable() {
+			public void run() {
+				try {
+					Thread.sleep(1000);
+				} catch (InterruptedException e) {
+					// TODO Auto-generated catch block
+					e.printStackTrace();
+				}
+			}
+		},
+		new Runnable() {
+			public void run() {
+				try {
+					Object element = XWT.findElementByName(root, "window");
+					assertTrue(element instanceof Shell);
+					Shell shell = (Shell)element;
+					Rectangle rectangle = shell.getBounds();
+					assertNotSame(initialBounds, rectangle);
+				} catch (Exception e) {
+					fail();
+				}
+			}
+		}		
+		);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Color_Background_Composite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Color_Background_Composite.java
new file mode 100644
index 0000000..0b955c9
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Color_Background_Composite.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.animation;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Color_Background_Composite {	
+	public static void main(String[] args) {
+
+		URL url = Color_Background_Composite.class.getResource(Color_Background_Composite.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Color_Background_Composite.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Color_Background_Composite.xwt
new file mode 100644
index 0000000..a93f87c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Color_Background_Composite.xwt
@@ -0,0 +1,33 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<GridLayout numColumns="1"/>
+	</Composite.layout>	
+	<Label name="labelTarget" text="Move mouse in button to see the animation"/>
+	<Button name="startButton" text="Start"/>
+	<Button name="stopButton" text="Stop"/>
+	<Button name="pauseButton" text="Pause"/>
+	<Button name="resumeButton" text="Resume"/>
+	<Composite.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent" sourceName="startButton">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <ColorAnimation 
+	             targetName="labelTarget" 
+	             targetProperty="background" 
+	               duration="0:0:8" from="red" to="blue" />
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+	    <EventTrigger routedEvent="SelectionEvent" sourceName="stopButton">
+		    <StopStoryboard BeginStoryboardName="MyBeginStoryboard" />  
+	    </EventTrigger>
+	    <EventTrigger routedEvent="SelectionEvent" sourceName="pauseButton">
+		    <PauseStoryboard BeginStoryboardName="MyBeginStoryboard" />  
+	    </EventTrigger>
+	    <EventTrigger routedEvent="SelectionEvent" sourceName="resumeButton">
+		    <ResumeStoryboard BeginStoryboardName="MyBeginStoryboard" />  
+	    </EventTrigger>
+	</Composite.triggers>
+</Composite>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Color_Foreground_Composite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Color_Foreground_Composite.java
new file mode 100644
index 0000000..6b186ea
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Color_Foreground_Composite.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.animation;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Color_Foreground_Composite {	
+	public static void main(String[] args) {
+
+		URL url = Color_Foreground_Composite.class.getResource(Color_Foreground_Composite.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Color_Foreground_Composite.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Color_Foreground_Composite.xwt
new file mode 100644
index 0000000..71de642
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Color_Foreground_Composite.xwt
@@ -0,0 +1,33 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<GridLayout numColumns="1"/>
+	</Composite.layout>	
+	<Label name="labelTarget" text="Move mouse in button to see the animation"/>
+	<Button name="startButton" text="Start"/>
+	<Button name="stopButton" text="Stop"/>
+	<Button name="pauseButton" text="Pause"/>
+	<Button name="resumeButton" text="Resume"/>
+	<Composite.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent" sourceName="startButton">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <ColorAnimation 
+	             targetName="labelTarget" 
+	             targetProperty="foreground" 
+	               duration="0:0:8" from="red" to="blue" />
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+	    <EventTrigger routedEvent="SelectionEvent" sourceName="stopButton">
+		    <StopStoryboard BeginStoryboardName="MyBeginStoryboard" />  
+	    </EventTrigger>
+	    <EventTrigger routedEvent="SelectionEvent" sourceName="pauseButton">
+		    <PauseStoryboard BeginStoryboardName="MyBeginStoryboard" />  
+	    </EventTrigger>
+	    <EventTrigger routedEvent="SelectionEvent" sourceName="resumeButton">
+		    <ResumeStoryboard BeginStoryboardName="MyBeginStoryboard" />  
+	    </EventTrigger>
+	</Composite.triggers>
+</Composite>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Foreground.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Foreground.java
new file mode 100644
index 0000000..75a0462
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Foreground.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.animation;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Foreground {	
+	public static void main(String[] args) {
+
+		URL url = Foreground.class.getResource(Foreground.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Foreground.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Foreground.xwt
new file mode 100644
index 0000000..b1b3755
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Foreground.xwt
@@ -0,0 +1,21 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	x:Class="org.eclipse.xwt.tests.annotation.ButtonHandler_rename">
+	<Composite.layout>
+		<GridLayout numColumns="1"/>
+	</Composite.layout>	
+	<Button name="labelTarget" x:style="SWT.RADIO" text="Move mouse in button to see the animation">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <ColorAnimation 
+	             targetProperty="foreground" 
+	               duration="0:0:1" from="red" to="blue" />
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+</Composite>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Int_Alpha_Shell.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Int_Alpha_Shell.java
new file mode 100644
index 0000000..5502b33
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Int_Alpha_Shell.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.animation;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Int_Alpha_Shell {	
+	public static void main(String[] args) {
+
+		URL url = Int_Alpha_Shell.class.getResource(Int_Alpha_Shell.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Int_Alpha_Shell.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Int_Alpha_Shell.xwt
new file mode 100644
index 0000000..cc354b4
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Int_Alpha_Shell.xwt
@@ -0,0 +1,24 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	name="window"
+	>
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>	
+	<Label name="labelTarget" text="Int the animation"/>
+	<Button name="startButton" text="Start Animation">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <IntAnimation
+	             targetName="window"
+	             targetProperty="alpha" 
+	               duration="0:0:3" from="0" to="255" />
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Point_Location_Shell.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Point_Location_Shell.java
new file mode 100644
index 0000000..94e67d3
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Point_Location_Shell.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.animation;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Point_Location_Shell {	
+	public static void main(String[] args) {
+
+		URL url = Point_Location_Shell.class.getResource(Point_Location_Shell.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Point_Location_Shell.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Point_Location_Shell.xwt
new file mode 100644
index 0000000..504e869
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Point_Location_Shell.xwt
@@ -0,0 +1,24 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	name="window"
+	>
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>	
+	<Label name="labelTarget" text="Int the animation"/>
+	<Button name="startButton" text="Start Animation">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="10, 10" to="600, 600" />
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Point_Size_Shell.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Point_Size_Shell.java
new file mode 100644
index 0000000..3300da4
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Point_Size_Shell.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.animation;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Point_Size_Shell {	
+	public static void main(String[] args) {
+
+		URL url = Point_Size_Shell.class.getResource(Point_Size_Shell.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Point_Size_Shell.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Point_Size_Shell.xwt
new file mode 100644
index 0000000..7e27950
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Point_Size_Shell.xwt
@@ -0,0 +1,24 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	name="window"
+	>
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>	
+	<Label name="labelTarget" text="Int the animation"/>
+	<Button name="startButton" text="Start Animation">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="size" 
+	             duration="0:0:6" from="150, 150" to="600, 600" />
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Rectangle_Bounds_Shell.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Rectangle_Bounds_Shell.java
new file mode 100644
index 0000000..04b3dd1
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Rectangle_Bounds_Shell.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.animation;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Rectangle_Bounds_Shell {	
+	public static void main(String[] args) {
+
+		URL url = Rectangle_Bounds_Shell.class.getResource(Rectangle_Bounds_Shell.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Rectangle_Bounds_Shell.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Rectangle_Bounds_Shell.xwt
new file mode 100644
index 0000000..c01f4be
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Rectangle_Bounds_Shell.xwt
@@ -0,0 +1,24 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	name="window"
+	>
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>	
+	<Label name="labelTarget" text="Int the animation"/>
+	<Button name="startButton" text="Start Animation">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <RectangleAnimation
+	             targetName="window"
+	             targetProperty="bounds" 
+	             duration="0:0:1" from="10, 10, 150, 150" to="300, 300, 600, 600" />
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Rectangle_Size_Location_Shell.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Rectangle_Size_Location_Shell.java
new file mode 100644
index 0000000..9b55889
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Rectangle_Size_Location_Shell.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.animation;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Rectangle_Size_Location_Shell {	
+	public static void main(String[] args) {
+
+		URL url = Rectangle_Size_Location_Shell.class.getResource(Rectangle_Size_Location_Shell.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Rectangle_Size_Location_Shell.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Rectangle_Size_Location_Shell.xwt
new file mode 100644
index 0000000..e9c1a4b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Rectangle_Size_Location_Shell.xwt
@@ -0,0 +1,27 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	name="window">
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>	
+	<Label name="labelTarget" text="Int the animation"/>
+	<Button name="startButton" text="Start Animation">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="size"
+	             duration="0:0:1" from="150, 150" to="600, 600" />
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location"
+	             duration="0:0:3" from="10, 10" to="600, 600" />
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Storyboard.xaml b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Storyboard.xaml
new file mode 100644
index 0000000..bcb5e12
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/Storyboard.xaml
@@ -0,0 +1,69 @@
+<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+  WindowTitle="Controlling a Storyboard" >
+  <StackPanel Margin="20" >
+
+    <!-- This rectangle is animated. -->
+    <Rectangle Name="myRectangle"
+      Width="100" Height="20" Margin="12,0,0,5" Fill="#AA3333FF" HorizontalAlignment="Left" />
+
+    <!-- This StackPanel contains all the Buttons. -->
+    <StackPanel Orientation="Horizontal" Margin="0,30,0,0">
+
+      <Button Name="BeginButton">Begin</Button>
+      <Button Name="PauseButton">Pause</Button>
+      <Button Name="ResumeButton">Resume</Button>
+      <Button Name="SeekButton">Seek</Button>
+      <Button Name="SkipToFillButton">Skip To Fill</Button>
+      <Button Name="SetSpeedRatioButton">Triple Speed</Button>
+      <Button Name="StopButton">Stop</Button>
+
+      <StackPanel.Triggers>
+
+        <!-- Begin the Storyboard -->
+        <EventTrigger RoutedEvent="Button.Click" SourceName="BeginButton">
+          <BeginStoryboard Name="MyBeginStoryboard">
+            <Storyboard >
+              <DoubleAnimation 
+                Storyboard.TargetName="myRectangle" 
+                Storyboard.TargetProperty="Width" 
+                Duration="0:0:5" From="100" To="500" />
+            </Storyboard>
+          </BeginStoryboard>
+        </EventTrigger>
+
+        <!-- Pause the Storyboard -->
+        <EventTrigger RoutedEvent="Button.Click" SourceName="PauseButton">
+          <PauseStoryboard BeginStoryboardName="MyBeginStoryboard" />
+        </EventTrigger>
+
+        <!-- Resume the Storyboard -->
+        <EventTrigger RoutedEvent="Button.Click" SourceName="ResumeButton">
+          <ResumeStoryboard BeginStoryboardName="MyBeginStoryboard" />
+        </EventTrigger>
+
+         <!-- Seek one second into the storyboard's active period. -->
+         <EventTrigger RoutedEvent="Button.Click" SourceName="SeekButton">
+           <SeekStoryboard 
+            BeginStoryboardName="MyBeginStoryboard" 
+            Offset="0:0:1" Origin="BeginTime" />
+        </EventTrigger>   
+
+        <!-- Skip to Fill -->
+        <EventTrigger RoutedEvent="Button.Click" SourceName="SkipToFillButton">
+          <SkipStoryboardToFill BeginStoryboardName="MyBeginStoryboard" />
+        </EventTrigger>
+
+        <!-- Stop the Storyboard -->
+        <EventTrigger RoutedEvent="Button.Click" SourceName="StopButton">
+          <StopStoryboard BeginStoryboardName="MyBeginStoryboard" />
+        </EventTrigger>
+
+        <!-- Triple the speed of the Storyboard -->
+        <EventTrigger RoutedEvent="Button.Click" SourceName="SetSpeedRatioButton">
+          <SetStoryboardSpeedRatio SpeedRatio="3" BeginStoryboardName="MyBeginStoryboard" />
+        </EventTrigger>
+      </StackPanel.Triggers>
+    </StackPanel>
+  </StackPanel>
+</Page>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/dispose/Point_Location_BackEase.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/dispose/Point_Location_BackEase.java
new file mode 100644
index 0000000..2d02298
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/dispose/Point_Location_BackEase.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.animation.dispose;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Point_Location_BackEase {	
+	public static void main(String[] args) {
+
+		URL url = Point_Location_BackEase.class.getResource(Point_Location_BackEase.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/dispose/Point_Location_BackEase.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/dispose/Point_Location_BackEase.xwt
new file mode 100644
index 0000000..67e4c08
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/dispose/Point_Location_BackEase.xwt
@@ -0,0 +1,66 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	name="window"
+	>
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>	
+	<Label name="labelTarget" text="BackEase the animation"/>
+	<Button name="startButton" text="Start Animation in EaseIn">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="HideEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <BackEase amplitude="1" EasingMode="EaseIn"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+	<Button name="startButton" text="Start Animation in EaseOut">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <BackEase amplitude="1" EasingMode="EaseOut"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+	<Button name="startButton" text="Start Animation in EaseInOut">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <BackEase amplitude="1" EasingMode="EaseInOut"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_BackEase.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_BackEase.java
new file mode 100644
index 0000000..729fc76
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_BackEase.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.animation.ease;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Point_Location_BackEase {	
+	public static void main(String[] args) {
+
+		URL url = Point_Location_BackEase.class.getResource(Point_Location_BackEase.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_BackEase.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_BackEase.xwt
new file mode 100644
index 0000000..a7a479d
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_BackEase.xwt
@@ -0,0 +1,66 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	name="window"
+	>
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>	
+	<Label name="labelTarget" text="BackEase the animation"/>
+	<Button name="startButton" text="Start Animation in EaseIn">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <BackEase amplitude="1" EasingMode="EaseIn"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+	<Button name="startButton" text="Start Animation in EaseOut">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <BackEase amplitude="1" EasingMode="EaseOut"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+	<Button name="startButton" text="Start Animation in EaseInOut">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <BackEase amplitude="1" EasingMode="EaseInOut"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_BounceEase.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_BounceEase.java
new file mode 100644
index 0000000..1072308
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_BounceEase.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.animation.ease;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Point_Location_BounceEase {	
+	public static void main(String[] args) {
+
+		URL url = Point_Location_BounceEase.class.getResource(Point_Location_BounceEase.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_BounceEase.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_BounceEase.xwt
new file mode 100644
index 0000000..27d9a15
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_BounceEase.xwt
@@ -0,0 +1,66 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	name="window"
+	>
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>	
+	<Label name="labelTarget" text="BounceEase the animation"/>
+	<Button name="startButton" text="Start Animation in EaseIn">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <BounceEase EasingMode="EaseIn"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+	<Button name="startButton" text="Start Animation in EaseOut">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <BounceEase EasingMode="EaseOut"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+	<Button name="startButton" text="Start Animation in EaseInOut">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <BounceEase EasingMode="EaseInOut"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_CircleEase.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_CircleEase.java
new file mode 100644
index 0000000..b062d3c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_CircleEase.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.animation.ease;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Point_Location_CircleEase {	
+	public static void main(String[] args) {
+
+		URL url = Point_Location_CircleEase.class.getResource(Point_Location_CircleEase.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_CircleEase.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_CircleEase.xwt
new file mode 100644
index 0000000..923b18d
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_CircleEase.xwt
@@ -0,0 +1,66 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	name="window"
+	>
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>	
+	<Label name="labelTarget" text="Int the animation"/>
+	<Button name="startButton" text="Start Animation in EaseIn">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <CircleEase EasingMode="EaseIn"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+	<Button name="startButton" text="Start Animation in EaseOut">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <CircleEase EasingMode="EaseOut"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+	<Button name="startButton" text="Start Animation in EaseInOut">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <CircleEase EasingMode="EaseInOut"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_CubicEase.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_CubicEase.java
new file mode 100644
index 0000000..50e9a8c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_CubicEase.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.animation.ease;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Point_Location_CubicEase {	
+	public static void main(String[] args) {
+
+		URL url = Point_Location_CubicEase.class.getResource(Point_Location_CubicEase.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_CubicEase.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_CubicEase.xwt
new file mode 100644
index 0000000..06c555a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_CubicEase.xwt
@@ -0,0 +1,66 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	name="window"
+	>
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>	
+	<Label name="labelTarget" text="Int the animation"/>
+	<Button name="startButton" text="Start Animation in EaseIn">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <CubicEase EasingMode="EaseIn"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+	<Button name="startButton" text="Start Animation in EaseOut">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <CubicEase EasingMode="EaseOut"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+	<Button name="startButton" text="Start Animation in EaseInOut">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <CubicEase EasingMode="EaseInOut"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_ElasticEase.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_ElasticEase.java
new file mode 100644
index 0000000..dfd6cb7
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_ElasticEase.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.animation.ease;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Point_Location_ElasticEase {	
+	public static void main(String[] args) {
+
+		URL url = Point_Location_ElasticEase.class.getResource(Point_Location_ElasticEase.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_ElasticEase.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_ElasticEase.xwt
new file mode 100644
index 0000000..3982cad
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_ElasticEase.xwt
@@ -0,0 +1,66 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	name="window"
+	>
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>	
+	<Label name="labelTarget" text="ElasticEase the animation"/>
+	<Button name="startButton" text="Start Animation in EaseIn">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <ElasticEase EasingMode="EaseIn"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+	<Button name="startButton" text="Start Animation in EaseOut">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <ElasticEase EasingMode="EaseOut"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+	<Button name="startButton" text="Start Animation in EaseInOut">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <ElasticEase EasingMode="EaseInOut"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_ExponentialEase.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_ExponentialEase.java
new file mode 100644
index 0000000..38012d0
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_ExponentialEase.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.animation.ease;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Point_Location_ExponentialEase {	
+	public static void main(String[] args) {
+
+		URL url = Point_Location_ExponentialEase.class.getResource(Point_Location_ExponentialEase.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_ExponentialEase.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_ExponentialEase.xwt
new file mode 100644
index 0000000..c2855e5
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_ExponentialEase.xwt
@@ -0,0 +1,66 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	name="window"
+	>
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>	
+	<Label name="labelTarget" text="ExponentialEase the animation"/>
+	<Button name="startButton" text="Start Animation in EaseIn">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <ExponentialEase EasingMode="EaseIn"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+	<Button name="startButton" text="Start Animation in EaseOut">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <ExponentialEase EasingMode="EaseOut"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+	<Button name="startButton" text="Start Animation in EaseInOut">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <ExponentialEase EasingMode="EaseInOut"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_PowerEase.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_PowerEase.java
new file mode 100644
index 0000000..8ef7c0f
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_PowerEase.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.animation.ease;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Point_Location_PowerEase {	
+	public static void main(String[] args) {
+
+		URL url = Point_Location_PowerEase.class.getResource(Point_Location_PowerEase.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_PowerEase.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_PowerEase.xwt
new file mode 100644
index 0000000..284a01a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_PowerEase.xwt
@@ -0,0 +1,66 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	name="window"
+	>
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>	
+	<Label name="labelTarget" text="PowerEase the animation"/>
+	<Button name="startButton" text="Start Animation in EaseIn">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <PowerEase power="3" EasingMode="EaseIn"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+	<Button name="startButton" text="Start Animation in EaseOut">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <PowerEase power="3" EasingMode="EaseOut"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+	<Button name="startButton" text="Start Animation in EaseInOut">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <PowerEase power="3" EasingMode="EaseInOut"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuadraticEase.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuadraticEase.java
new file mode 100644
index 0000000..06c8dbc
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuadraticEase.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.animation.ease;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Point_Location_QuadraticEase {	
+	public static void main(String[] args) {
+
+		URL url = Point_Location_QuadraticEase.class.getResource(Point_Location_QuadraticEase.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuadraticEase.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuadraticEase.xwt
new file mode 100644
index 0000000..36d4f61
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuadraticEase.xwt
@@ -0,0 +1,66 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	name="window"
+	>
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>	
+	<Label name="labelTarget" text="Int the animation"/>
+	<Button name="startButton" text="Start Animation in EaseIn">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <QuadraticEase EasingMode="EaseIn"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+	<Button name="startButton" text="Start Animation in EaseOut">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <QuadraticEase EasingMode="EaseOut"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+	<Button name="startButton" text="Start Animation in EaseInOut">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <QuadraticEase EasingMode="EaseInOut"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuarticEase.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuarticEase.java
new file mode 100644
index 0000000..798a288
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuarticEase.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.animation.ease;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Point_Location_QuarticEase {	
+	public static void main(String[] args) {
+
+		URL url = Point_Location_QuarticEase.class.getResource(Point_Location_QuarticEase.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuarticEase.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuarticEase.xwt
new file mode 100644
index 0000000..cd8eace
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuarticEase.xwt
@@ -0,0 +1,66 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	name="window"
+	>
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>	
+	<Label name="labelTarget" text="Int the animation"/>
+	<Button name="startButton" text="Start Animation in EaseIn">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <QuarticEase EasingMode="EaseIn"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+	<Button name="startButton" text="Start Animation in EaseOut">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <QuarticEase EasingMode="EaseOut"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+	<Button name="startButton" text="Start Animation in EaseInOut">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <QuarticEase EasingMode="EaseInOut"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuinticEase.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuinticEase.java
new file mode 100644
index 0000000..026a945
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuinticEase.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.animation.ease;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Point_Location_QuinticEase {	
+	public static void main(String[] args) {
+
+		URL url = Point_Location_QuinticEase.class.getResource(Point_Location_QuinticEase.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuinticEase.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuinticEase.xwt
new file mode 100644
index 0000000..4fea2db
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_QuinticEase.xwt
@@ -0,0 +1,66 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	name="window"
+	>
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>	
+	<Label name="labelTarget" text="Int the animation"/>
+	<Button name="startButton" text="Start Animation in EaseIn">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <QuinticEase EasingMode="EaseIn"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+	<Button name="startButton" text="Start Animation in EaseOut">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <QuinticEase EasingMode="EaseOut"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+	<Button name="startButton" text="Start Animation in EaseInOut">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <QuinticEase EasingMode="EaseInOut"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_SineEase.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_SineEase.java
new file mode 100644
index 0000000..a8e8d5e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_SineEase.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.animation.ease;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Point_Location_SineEase {	
+	public static void main(String[] args) {
+
+		URL url = Point_Location_SineEase.class.getResource(Point_Location_SineEase.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_SineEase.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_SineEase.xwt
new file mode 100644
index 0000000..34565a2
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/ease/Point_Location_SineEase.xwt
@@ -0,0 +1,66 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	name="window"
+	>
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>	
+	<Label name="labelTarget" text="SineEase the animation"/>
+	<Button name="startButton" text="Start Animation in EaseIn">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <SineEase EasingMode="EaseIn"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+	<Button name="startButton" text="Start Animation in EaseOut">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <SineEase EasingMode="EaseOut"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+	<Button name="startButton" text="Start Animation in EaseInOut">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+	          <PointAnimation
+	             targetName="window"
+	             targetProperty="location" 
+	             duration="0:0:6" from="300, 300" to="600, 600">
+	             <PointAnimation.EasingFunction>
+                     <SineEase EasingMode="EaseInOut"/>
+                 </PointAnimation.EasingFunction>
+	          </PointAnimation>	             
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/keyframe/Rectangle_Bounds_Shell.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/keyframe/Rectangle_Bounds_Shell.java
new file mode 100644
index 0000000..e6f4f30
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/keyframe/Rectangle_Bounds_Shell.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.animation.keyframe;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Rectangle_Bounds_Shell {	
+	public static void main(String[] args) {
+
+		URL url = Rectangle_Bounds_Shell.class.getResource(Rectangle_Bounds_Shell.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/keyframe/Rectangle_Bounds_Shell.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/keyframe/Rectangle_Bounds_Shell.xwt
new file mode 100644
index 0000000..cb36e25
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/keyframe/Rectangle_Bounds_Shell.xwt
@@ -0,0 +1,28 @@
+<!-- http://dotnetslackers.com/articles/wpf/IntroductionToWPFAnimations.aspx -->
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	name="window">
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>	
+	<Label name="labelTarget" text="Int the animation"/>
+	<Button name="startButton" text="Start Animation">
+	  <Button.triggers>
+	    <!-- Begin the Storyboard -->
+	    <EventTrigger routedEvent="SelectionEvent">
+	      <BeginStoryboard name="MyBeginStoryboard">
+	        <Storyboard>
+				<DoubleAnimationUsingKeyFrames 
+					Storyboard.TargetName="window"
+					Storyboard.TargetProperty="bounds.x"
+					Duration="0:0:15"> 
+					<LinearDoubleKeyFrame Value="100" KeyTime="0:0:3" /> 
+					<LinearDoubleKeyFrame Value="150" KeyTime="0:0:5" /> 
+					<LinearDoubleKeyFrame Value="250" KeyTime="0:0:7" /> 
+				</DoubleAnimationUsingKeyFrames> 
+	        </Storyboard>
+	      </BeginStoryboard>
+	    </EventTrigger>
+      </Button.triggers>
+	</Button>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/repeatBehavior/RepeatBehaviorTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/repeatBehavior/RepeatBehaviorTests.java
new file mode 100644
index 0000000..dd78c6e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/animation/repeatBehavior/RepeatBehaviorTests.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.animation.repeatBehavior;
+
+import junit.framework.TestCase;
+
+import org.eclipse.xwt.animation.Duration;
+import org.eclipse.xwt.animation.RepeatBehavior;
+
+public class RepeatBehaviorTests extends TestCase {
+
+	public void testCount() throws Exception {
+		RepeatBehavior behavior = RepeatBehavior.parse("0.5x");
+		assertTrue(behavior.getHasCount());
+		assertEquals(behavior.getCount(), 0.5);		
+		assertFalse(behavior.getHasDuration());
+	}
+
+	public void testForever() throws Exception {
+		RepeatBehavior behavior = RepeatBehavior.parse("Forever");
+		assertFalse(behavior.getHasCount());
+		assertFalse(behavior.getHasDuration());
+	}
+
+	public void testDuration() throws Exception {
+		RepeatBehavior behavior = RepeatBehavior.parse("9:10:35");
+		assertFalse(behavior.getHasCount());
+		assertTrue(behavior.getHasDuration());
+		Duration duration = behavior.getDuration();
+		assertEquals(duration.getTimeSpan().getSeconds(), 35);
+		assertEquals(duration.getTimeSpan().getMinutes(), 10);
+		assertEquals(duration.getTimeSpan().getHours(), 9);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/AnnotationTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/AnnotationTests.java
new file mode 100644
index 0000000..8d7bb52
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/AnnotationTests.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.annotation;
+
+import java.lang.reflect.Field;
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class AnnotationTests extends XWTTestCase {
+
+	public void testField() throws Exception {
+		URL url = Button.class
+				.getResource(Button.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		ButtonHandler.instance = null;
+		runTest(url, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				try {
+					Field field = ButtonHandler.class.getDeclaredField("myButton");
+					assertNotNull(ButtonHandler.instance);
+					field.setAccessible(true);
+					Object object = field.get(ButtonHandler.instance);
+					assertNotNull(object);
+				} catch (Exception e) {
+					fail();
+				}
+			}
+		});
+	}
+
+	public void testField_rename() throws Exception {
+		URL url = Button.class
+				.getResource("Button_rename"
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		ButtonHandler_rename.instance = null;
+		runTest(url, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				try {
+					Field field = ButtonHandler_rename.class.getDeclaredField("myButton");
+					assertNotNull(ButtonHandler_rename.instance);
+					field.setAccessible(true);
+					Object object = field.get(ButtonHandler_rename.instance);
+					assertNotNull(object);
+				} catch (Exception e) {
+					fail();
+				}
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/Button.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/Button.java
new file mode 100644
index 0000000..ac40219
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/Button.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.annotation;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Button {	
+	public static void main(String[] args) {
+
+		URL url = Button.class.getResource(Button.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/Button.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/Button.xwt
new file mode 100644
index 0000000..dd35905
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/Button.xwt
@@ -0,0 +1,8 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	x:Class="org.eclipse.xwt.tests.annotation.ButtonHandler">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>	
+	<Button name="myButton" text="Test"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/ButtonHandler.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/ButtonHandler.java
new file mode 100644
index 0000000..4cfe9ed
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/ButtonHandler.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.annotation;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.xwt.annotation.UI;
+
+/**
+ * 
+ * @author yyang
+ */
+public class ButtonHandler {
+	public static ButtonHandler instance;
+
+	@UI 
+	private Button myButton;
+
+	public ButtonHandler() {
+		if (instance == null) {
+			instance = this;
+		}
+		else {
+			throw new IllegalStateException();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/ButtonHandler_rename.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/ButtonHandler_rename.java
new file mode 100644
index 0000000..9a61b35
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/ButtonHandler_rename.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.annotation;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.xwt.annotation.UI;
+
+/**
+ * 
+ * @author yyang
+ */
+public class ButtonHandler_rename {
+	public static ButtonHandler_rename instance;
+
+	@UI("my button")
+	private Button myButton;
+
+	public ButtonHandler_rename() {
+		if (instance == null) {
+			instance = this;
+		}
+		else {
+			throw new IllegalStateException();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/Button_rename.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/Button_rename.xwt
new file mode 100644
index 0000000..db7a2c3
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/annotation/Button_rename.xwt
@@ -0,0 +1,8 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	x:Class="org.eclipse.xwt.tests.annotation.ButtonHandler_rename">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>	
+	<Button name="my button" text="Test"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/attachedproperty/AttachedPropertySuite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/attachedproperty/AttachedPropertySuite.java
new file mode 100644
index 0000000..354946d
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/attachedproperty/AttachedPropertySuite.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.attachedproperty;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class AttachedPropertySuite extends TestSuite {
+	public static final Test suite() {
+		return new AttachedPropertySuite();
+	}
+
+	public AttachedPropertySuite() {
+		addTest(new TestSuite(AttachedPropertyTests.class));
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/attachedproperty/AttachedPropertyTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/attachedproperty/AttachedPropertyTests.java
new file mode 100644
index 0000000..e0663e6
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/attachedproperty/AttachedPropertyTests.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.attachedproperty;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.metadata.IProperty;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class AttachedPropertyTests extends XWTTestCase {
+
+	public void testButton_AttachedProperty() throws Exception {
+		URL url = AttachedPropertyTests.class
+				.getResource(Button_AttachedProperty.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button button = (Button) XWT.findElementByName(root, "button");
+				IProperty property = XWT.findProperty(Composite.class,
+						"visible");
+				Object value = XWT.getPropertyValue(button, property);
+				assertEquals(true, value);
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/attachedproperty/Button_AttachedProperty.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/attachedproperty/Button_AttachedProperty.java
new file mode 100644
index 0000000..bc8357c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/attachedproperty/Button_AttachedProperty.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.attachedproperty;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Button_AttachedProperty {
+	public static void main(String[] args) {
+		URL url = Button_AttachedProperty.class
+				.getResource(Button_AttachedProperty.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/attachedproperty/Button_AttachedProperty.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/attachedproperty/Button_AttachedProperty.xwt
new file mode 100644
index 0000000..784a1ed
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/attachedproperty/Button_AttachedProperty.xwt
@@ -0,0 +1,8 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	text="Button Visible Test">
+	<Composite.layout>
+		<GridLayout numColumns="1"/>
+	</Composite.layout>
+	<Button Composite.visible="true" name="button" text="Has attached Property" />
+</Composite>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLR.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLR.java
new file mode 100644
index 0000000..434d98d
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLR.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.clr;
+
+/**
+ * @author jliu
+ */
+public class CLR {
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLR.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLR.xwt
new file mode 100644
index 0000000..0e0c654
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLR.xwt
@@ -0,0 +1,8 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    x:Class="org.eclipse.xwt.tests.clr.CLR">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Button text="XWT getCLR()"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRComposite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRComposite.java
new file mode 100644
index 0000000..bd6463c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRComposite.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.clr;
+
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * @author jliu
+ */
+public class CLRComposite extends Composite {
+
+	public CLRComposite(Composite parent, int style) {
+		super(parent, style);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRComposite.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRComposite.xwt
new file mode 100644
index 0000000..066f85b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRComposite.xwt
@@ -0,0 +1,8 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    x:Class="org.eclipse.xwt.tests.clr.CLRComposite">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Button text="XWT getCLR()"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRNull.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRNull.java
new file mode 100644
index 0000000..fb94741
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRNull.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.clr;
+
+import org.eclipse.swt.widgets.Event;
+
+/**
+ * @author jliu
+ */
+public class CLRNull {
+	protected int count = 0;
+
+	public int getCount() {
+		return count;
+	}
+
+	public void setCount(int count) {
+		this.count = count;
+	}
+
+	protected void onLoaded(Event event) {
+		count++;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRNull.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRNull.xwt
new file mode 100644
index 0000000..bb5127a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRNull.xwt
@@ -0,0 +1,8 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    loadedEvent="onLoaded">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Button text="XWT getCLR()"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRTestSuite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRTestSuite.java
new file mode 100644
index 0000000..b042f3e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRTestSuite.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.clr;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class CLRTestSuite extends TestSuite {
+	public static final Test suite() {
+		return new CLRTestSuite();
+	}
+
+	public CLRTestSuite() {
+		addTest(new TestSuite(CLRTests.class));
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRTests.java
new file mode 100644
index 0000000..1136704
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clr/CLRTests.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.clr;
+
+import java.net.URL;
+import java.util.HashMap;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.IXWTLoader;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class CLRTests extends XWTTestCase {
+
+	public void testCLR() throws Exception {
+		URL url = CLR.class.getResource(CLR.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object element = XWT.getCLR(root);
+				assertTrue(element instanceof CLR);
+			}
+		});
+	}
+
+	public void testCLRComposite() throws Exception {
+		URL url = CLR.class.getResource(CLRComposite.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object element = XWT.getCLR(root);
+				assertTrue(element instanceof CLRComposite);
+			}
+		});
+	}
+
+	public void testCLRNull() throws Exception {
+		URL url = CLR.class.getResource(CLRNull.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		HashMap<String, Object> options = new HashMap<String, Object>();
+		final CLRNull clr = new CLRNull();
+		options.put(IXWTLoader.CLASS_PROPERTY, clr);
+		runTest(url, options, null, new Runnable() {
+			public void run() {
+				Object element = XWT.getCLR(root);
+				assertTrue(element == clr);
+				assertEquals(clr.getCount(), 1);
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLR.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLR.java
new file mode 100644
index 0000000..46ebe61
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLR.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.clrfactory;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Event;
+
+/**
+ * @author jliu
+ */
+public class CLR {
+	private CLRFactory factory;
+
+	private String args;
+
+	public String getArgs() {
+		return args;
+	}
+
+	public void setArgs(String args) {
+		this.args = args;
+	}
+
+	public CLR(CLRFactory factory, String args) {
+		this.args = args;
+		this.factory = factory;
+	}
+	
+	public void select(Button sender, Event event) {
+		if (args == null) {
+			sender.setText("");			
+		}
+		else {
+			sender.setText(args);			
+		}
+		sender.setData("CLR", this);
+	}
+
+	public CLRFactory getFactory() {
+		return factory;
+	}
+
+	public void setFactory(CLRFactory factory) {
+		this.factory = factory;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactory.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactory.java
new file mode 100644
index 0000000..9bb07b8
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactory.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.clrfactory;
+
+import java.util.Map;
+
+import org.eclipse.xwt.ICLRFactory;
+
+/**
+ * @author jliu
+ */
+public class CLRFactory implements ICLRFactory {
+	public static ICLRFactory INSTANCE = new CLRFactory();
+	
+	public Object createCLR(String args, Map<String, Object> options) {
+		return new CLR(this, args);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryDefault.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryDefault.java
new file mode 100644
index 0000000..ded9e91
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryDefault.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.clrfactory;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class CLRFactoryDefault{
+
+	public static void main(String[] args) {
+
+		URL url = CLRFactoryDefault.class.getResource(CLRFactoryDefault.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryDefault.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryDefault.xwt
new file mode 100644
index 0000000..9827369
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryDefault.xwt
@@ -0,0 +1,8 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    x:ClassFactory="org.eclipse.xwt.tests.clrfactory.CLRFactory">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Button name="button" text="XWT CLRFactory" selectionEvent="select"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryNamespace.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryNamespace.java
new file mode 100644
index 0000000..efdd07e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryNamespace.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.clrfactory;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class CLRFactoryNamespace{
+
+	public static void main(String[] args) {
+
+		URL url = CLRFactoryNamespace.class.getResource(CLRFactoryNamespace.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryNamespace.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryNamespace.xwt
new file mode 100644
index 0000000..5ba9aea
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryNamespace.xwt
@@ -0,0 +1,9 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:c="clr-namespace:org.eclipse.xwt.tests.clrfactory"
+    x:ClassFactory="c:CLRFactory">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Button name="button" text="XWT CLRFactory" selectionEvent="select"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryOption.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryOption.java
new file mode 100644
index 0000000..654e814
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryOption.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.clrfactory;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class CLRFactoryOption{
+
+	public static void main(String[] args) {
+
+		URL url = CLRFactoryOption.class.getResource(CLRFactoryOption.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryOption.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryOption.xwt
new file mode 100644
index 0000000..d63310d
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryOption.xwt
@@ -0,0 +1,7 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Button name="button" text="XWT CLRFactory" selectionEvent="select"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryOptionArgs.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryOptionArgs.java
new file mode 100644
index 0000000..88fd735
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryOptionArgs.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.clrfactory;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class CLRFactoryOptionArgs {
+
+	public static void main(String[] args) {
+
+		URL url = CLRFactoryOptionArgs.class.getResource(CLRFactoryOptionArgs.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryOptionArgs.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryOptionArgs.xwt
new file mode 100644
index 0000000..3dc5203
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryOptionArgs.xwt
@@ -0,0 +1,8 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    x:ClassFactory="+ arg1 arg2">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Button name="button" text="XWT CLRFactory" selectionEvent="select"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactorySingleton.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactorySingleton.java
new file mode 100644
index 0000000..6a163db
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactorySingleton.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.clrfactory;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class CLRFactorySingleton{
+
+	public static void main(String[] args) {
+
+		URL url = CLRFactorySingleton.class.getResource(CLRFactorySingleton.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactorySingleton.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactorySingleton.xwt
new file mode 100644
index 0000000..a21637b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactorySingleton.xwt
@@ -0,0 +1,8 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    x:ClassFactory="org.eclipse.xwt.tests.clrfactory.CLRFactory.INSTANCE arg1 arg2">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Button name="button" text="XWT CLRFactory" selectionEvent="select"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryTestSuite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryTestSuite.java
new file mode 100644
index 0000000..7700f17
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryTestSuite.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.clrfactory;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class CLRFactoryTestSuite extends TestSuite {
+	public static final Test suite() {
+		return new CLRFactoryTestSuite();
+	}
+
+	public CLRFactoryTestSuite() {
+		addTest(new TestSuite(CLRFactoryTests.class));
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryTests.java
new file mode 100644
index 0000000..f3b226f
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryTests.java
@@ -0,0 +1,212 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.clrfactory;
+
+import java.net.URL;
+import java.util.HashMap;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.IXWTLoader;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class CLRFactoryTests extends XWTTestCase {
+	
+	public void testCLRFactoryDefault() throws Exception {
+		URL url = CLR.class.getResource(CLRFactoryDefault.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button element = (Button)XWT.findElementByName(root, "button");
+				selectButton(element);
+			}
+		}, new Runnable() {
+			public void run() {
+				Button element = (Button)XWT.findElementByName(root, "button");
+				assertTrue(element.getText().equals(""));
+			}
+		});
+	}
+
+	public void testCLRFactoryValue() throws Exception {
+		URL url = CLR.class.getResource(CLRFactoryValue.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button element = (Button)XWT.findElementByName(root, "button");
+				selectButton(element);
+			}
+		}, new Runnable() {
+			public void run() {
+				Button element = (Button)XWT.findElementByName(root, "button");
+				assertTrue(element.getText().equals("arg1 arg2"));
+			}
+		});
+	}
+
+	public void testCLRFactoryNamespace() throws Exception {
+		URL url = CLR.class.getResource(CLRFactoryNamespace.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button element = (Button)XWT.findElementByName(root, "button");
+				selectButton(element);
+			}
+		}, new Runnable() {
+			public void run() {
+				Button element = (Button)XWT.findElementByName(root, "button");
+				assertTrue(element.getText().equals(""));
+			}
+		});
+	}
+
+	public void testCLRFactorySingleton() throws Exception {
+		URL url = CLR.class.getResource(CLRFactorySingleton.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button element = (Button)XWT.findElementByName(root, "button");
+				selectButton(element);
+			}
+		}, new Runnable() {
+			public void run() {
+				Button element = (Button)XWT.findElementByName(root, "button");
+				Object data = element.getData("CLR");
+				assertTrue(data instanceof CLR);
+				CLR clr = (CLR) data;
+				assertEquals(clr.getFactory(), CLRFactory.INSTANCE);
+			}
+		});
+	}
+
+	public void testCLRFactoryOption() throws Exception {
+		URL url = CLR.class.getResource(CLRFactoryOption.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		HashMap<String, Object> options = new HashMap<String, Object>();
+		final CLRFactory clrFactory = new CLRFactory();
+		options.put(IXWTLoader.CLASS_FACTORY_PROPERTY, clrFactory);
+		runTest(url, options, new Runnable() {
+			public void run() {
+				Button element = (Button)XWT.findElementByName(root, "button");
+				selectButton(element);
+			}
+		}, new Runnable() {
+			public void run() {
+				Button element = (Button)XWT.findElementByName(root, "button");
+				assertTrue(element.getText().equals(""));
+			}
+		});
+	}
+
+	public void testCLRFactoryGlobalOption() throws Exception {
+		URL url = CLR.class.getResource(CLRFactoryOption.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		CLRFactory clrFactory = new CLRFactory();
+		XWT.setCLRFactory(clrFactory);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button element = (Button)XWT.findElementByName(root, "button");
+				selectButton(element);
+			}
+		}, new Runnable() {
+			public void run() {
+				Button element = (Button)XWT.findElementByName(root, "button");
+				assertTrue(element.getText().equals(""));
+			}
+		});
+	}
+	
+	public void testCLRFactoryPrecedentOption() throws Exception {
+		URL url = CLR.class.getResource(CLRFactoryDefault.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		HashMap<String, Object> options = new HashMap<String, Object>();
+		final CLRFadeFactory clrFactory = new CLRFadeFactory();
+		options.put(IXWTLoader.CLASS_FACTORY_PROPERTY, clrFactory);
+		runTest(url, options, new Runnable() {
+			public void run() {
+				Button element = (Button)XWT.findElementByName(root, "button");
+				selectButton(element);
+			}
+		}, new Runnable() {
+			public void run() {
+				Button element = (Button)XWT.findElementByName(root, "button");
+				Object data = element.getData("CLR");
+				assertTrue(data instanceof CLR);
+			}
+		});
+	}
+
+	public void testCLRFactoryPrecedentGlobal() throws Exception {
+		URL url = CLR.class.getResource(CLRFactoryDefault.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		CLRFadeFactory clrFactory = new CLRFadeFactory();
+		XWT.setCLRFactory(clrFactory);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button element = (Button)XWT.findElementByName(root, "button");
+				selectButton(element);
+			}
+		}, new Runnable() {
+			public void run() {
+				Button element = (Button)XWT.findElementByName(root, "button");
+				Object data = element.getData("CLR");
+				assertTrue(data instanceof CLR);
+			}
+		});
+	}
+
+	public void testCLRFactoryPrecedentOptionOverGlobal() throws Exception {
+		URL url = CLR.class.getResource(CLRFactoryOption.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		HashMap<String, Object> options = new HashMap<String, Object>();
+		// CLRfactory should be not used
+		final CLRFadeFactory clrFadeFactory = new CLRFadeFactory();
+		XWT.setCLRFactory(clrFadeFactory);
+		
+		// CLRfactory should be used
+		CLRFactory clrFactory = new CLRFactory();
+		options.put(IXWTLoader.CLASS_FACTORY_PROPERTY, clrFactory);
+		runTest(url, options, new Runnable() {
+			public void run() {
+				Button element = (Button)XWT.findElementByName(root, "button");
+				selectButton(element);
+			}
+		}, new Runnable() {
+			public void run() {
+				Button element = (Button)XWT.findElementByName(root, "button");
+				Object data = element.getData("CLR");
+				assertTrue(data instanceof CLR);
+			}
+		});
+	}
+	
+	public void testCLRFactoryOptionArg() throws Exception {
+		URL url = CLR.class.getResource(CLRFactoryOptionArgs.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		HashMap<String, Object> options = new HashMap<String, Object>();
+		final CLRFactory clrFactory = new CLRFactory();
+		options.put(IXWTLoader.CLASS_FACTORY_PROPERTY, clrFactory);
+		runTest(url, options, new Runnable() {
+			public void run() {
+				Button element = (Button)XWT.findElementByName(root, "button");
+				selectButton(element);
+			}
+		}, new Runnable() {
+			public void run() {
+				Button element = (Button)XWT.findElementByName(root, "button");
+				assertTrue(element.getText().equals("arg1 arg2"));
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryValue.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryValue.java
new file mode 100644
index 0000000..21185cf
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryValue.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.clrfactory;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class CLRFactoryValue {
+
+	public static void main(String[] args) {
+
+		URL url = CLRFactoryValue.class.getResource(CLRFactoryValue.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryValue.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryValue.xwt
new file mode 100644
index 0000000..b899967
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFactoryValue.xwt
@@ -0,0 +1,8 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    x:ClassFactory="org.eclipse.xwt.tests.clrfactory.CLRFactory arg1 arg2">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Button name="button" text="XWT CLRFactory" selectionEvent="select"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFade.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFade.java
new file mode 100644
index 0000000..99dbe9f
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFade.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.clrfactory;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Event;
+
+/**
+ * @author jliu
+ */
+public class CLRFade {
+	private CLRFadeFactory factory;
+
+	private String args;
+
+	public String getArgs() {
+		return args;
+	}
+
+	public void setArgs(String args) {
+		this.args = args;
+	}
+
+	public CLRFade(CLRFadeFactory factory, String args) {
+		this.args = args;
+		this.factory = factory;
+	}
+	
+	public void select(Button sender, Event event) {
+		if (args == null) {
+			sender.setText("");			
+		}
+		else {
+			sender.setText(args);			
+		}
+		sender.setData("CLR", this);
+	}
+
+	public CLRFadeFactory getFactory() {
+		return factory;
+	}
+
+	public void setFactory(CLRFadeFactory factory) {
+		this.factory = factory;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFadeFactory.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFadeFactory.java
new file mode 100644
index 0000000..024fa50
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/clrfactory/CLRFadeFactory.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.clrfactory;
+
+import java.util.Map;
+
+import org.eclipse.xwt.ICLRFactory;
+
+/**
+ * @author jliu
+ */
+public class CLRFadeFactory implements ICLRFactory {
+	public static ICLRFactory INSTANCE = new CLRFadeFactory();
+	
+	public Object createCLR(String args, Map<String, Object> options) {
+		return new CLRFade(this, args);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Background.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Background.java
new file mode 100644
index 0000000..d3907a7
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Background.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Control_Background {
+	public static void main(String[] args) {
+		URL url = Control_Background.class.getResource(Control_Background.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Background.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Background.xwt
new file mode 100644
index 0000000..b37285e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Background.xwt
@@ -0,0 +1,29 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	text="Control Background Color Test" x:style="SWT.CLOSE">
+	<Shell.layout>
+		<GridLayout/>
+	</Shell.layout>
+	<Composite x:style="BORDER">
+		<Composite.layoutData>
+			<GridData horizontalAlignment="GridData.FILL" 
+					  verticalAlignment="GridData.FILL" grabExcessHorizontalSpace="true" 
+					  grabExcessVerticalSpace="true"/>
+		</Composite.layoutData>
+		<Composite.layout>
+			<GridLayout/>
+		</Composite.layout>
+		<Canvas x:style="H_SCROLL | BORDER | V_SCROLL" backgroundMode="INHERIT_NONE" backgroundImage="backgroundImage.png">
+			<Canvas.layout>
+				<GridLayout numColumns="1"/>
+			</Canvas.layout>
+			<Canvas.layoutData>
+				<GridData horizontalAlignment="GridData.FILL" 
+					  verticalAlignment="GridData.FILL" grabExcessHorizontalSpace="true" 
+					  grabExcessVerticalSpace="true"/>
+			</Canvas.layoutData>
+			<Label text="This is a canvas"/>
+		</Canvas>
+		<Composite x:style="BORDER" background="Red"/>
+	</Composite>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Bounds.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Bounds.java
new file mode 100644
index 0000000..24601a0
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Bounds.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Control_Bounds {
+	public static void main(String[] args) {
+		URL url = Control_Bounds.class.getResource(Control_Bounds.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Bounds.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Bounds.xwt
new file mode 100644
index 0000000..ef1a9e7
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Bounds.xwt
@@ -0,0 +1,8 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	text="Control Bounds Test">
+	<Label x:style="BORDER" text="Label(10, 10, 100, 40)" Bounds="10, 10, 100, 40" Alignment="CENTER">
+	</Label>
+	<Button text="Button(20, 60, 120, 120)" Bounds="20, 60, 120, 120">
+	</Button>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Location.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Location.java
new file mode 100644
index 0000000..de42017
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Location.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Control_Location {
+	public static void main(String[] args) {
+		URL url = Control_Location.class.getResource(Control_Location.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Location.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Location.xwt
new file mode 100644
index 0000000..ee1dc5b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Location.xwt
@@ -0,0 +1,8 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	text="Control Size Test">
+	<Label x:style="BORDER" text="Label(10, 10, 150, 100)" Location="10, 10" Size="150, 100">
+	</Label>
+	<Button text="Button (200, 120, 200, 200)" Location="200, 120" Size="200, 200">
+	</Button>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Orientation.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Orientation.java
new file mode 100644
index 0000000..1c130c6
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Orientation.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Control_Orientation {
+	public static void main(String[] args) {
+		URL url = Control_Orientation.class
+				.getResource(Control_Orientation.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Orientation.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Orientation.xwt
new file mode 100644
index 0000000..7e0a625
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Orientation.xwt
@@ -0,0 +1,15 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	text="Control Orientation Test">
+	<Shell.layout>
+		<FillLayout/>
+	</Shell.layout>
+	<Group text="orientation" x:style="LEFT_TO_RIGHT">
+		<Group.layout>
+			<RowLayout type="VERTICAL"/>
+		</Group.layout>
+		<Button text="default(Inherit)" image="demo.gif"/>
+		<Button x:style="LEFT_TO_RIGHT" text="LeftToRight" image="demo.gif"/>
+		<Button x:style="RIGHT_TO_LEFT" text="RightToLeft" image="demo.gif"/>
+	</Group>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Size.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Size.java
new file mode 100644
index 0000000..1cd9be8
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Size.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Control_Size {
+	public static void main(String[] args) {
+		URL url = Control_Size.class.getResource(Control_Size.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Size.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Size.xwt
new file mode 100644
index 0000000..baf1954
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Size.xwt
@@ -0,0 +1,8 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	text="Control Size Test">
+	<Label name="targetLabel" x:style="BORDER" text="Label Size(100, 40)" Size="100, 40">
+	</Label>
+	<Button name="targetButton" text="Button Size(200, 200)" Size="200, 200">
+	</Button>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Size_GridData.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Size_GridData.java
new file mode 100644
index 0000000..0ed3662
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Size_GridData.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Control_Size_GridData {
+	public static void main(String[] args) {
+		URL url = Control_Size_GridData.class
+				.getResource(Control_Size_GridData.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Size_GridData.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Size_GridData.xwt
new file mode 100644
index 0000000..bd25378
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/Control_Size_GridData.xwt
@@ -0,0 +1,17 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	text="Control Size Test (GridData)">
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>
+	<Label name="targetLabel" x:style="BORDER" text="Label(100, 40)" Alignment="CENTER">
+		<Label.layoutData>
+			<GridData widthHint="100" heightHint="40" horizontalAlignment="CENTER" verticalAlignment="CENTER"/>
+		</Label.layoutData>
+	</Label>
+	<Button name="targetButton" text="Button(200, 200)">
+		<Button.layoutData>
+			<GridData widthHint="200" heightHint="200"/>
+		</Button.layoutData>
+	</Button>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ControlsTestSuite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ControlsTestSuite.java
new file mode 100644
index 0000000..c4c98ad
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ControlsTestSuite.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.eclipse.xwt.tests.controls.button.ButtonTests;
+import org.eclipse.xwt.tests.controls.ccombo.CComboTests;
+import org.eclipse.xwt.tests.controls.combo.ComboTests;
+import org.eclipse.xwt.tests.controls.shell.ShellTests;
+import org.eclipse.xwt.tests.controls.tree.TreeTests;
+
+public class ControlsTestSuite extends TestSuite {
+	public static final Test suite() {
+		return new ControlsTestSuite();
+	}
+
+	public ControlsTestSuite() {
+		addTest(new TestSuite(ControlsTests.class));
+		addTest(new TestSuite(ButtonTests.class));
+		addTest(new TestSuite(ComboTests.class));
+		addTest(new TestSuite(CComboTests.class));
+		addTest(new TestSuite(ShellTests.class));
+		addTest(new TestSuite(TreeTests.class));
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ControlsTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ControlsTests.java
new file mode 100644
index 0000000..cc53bf5
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ControlsTests.java
@@ -0,0 +1,115 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls;
+
+import java.net.URL;
+
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class ControlsTests extends XWTTestCase {
+	public void testControlLocation() throws Exception {
+		URL url = ControlsTests.class.getResource(Control_Location.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url);
+	}
+
+	public void testControlBackground() throws Exception {
+		URL url = ControlsTests.class.getResource(Control_Background.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url);
+	}
+
+	public void testControlBounds() throws Exception {
+		URL url = ControlsTests.class.getResource(Control_Bounds.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url);
+	}
+
+	public void testControlOrientation() throws Exception {
+		URL url = ControlsTests.class.getResource(Control_Orientation.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url);
+	}
+
+	public void testControlSize() throws Exception {
+		URL url = ControlsTests.class.getResource(Control_Size.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkLabel();
+				checkButton();
+			}
+
+			public void checkLabel() {
+				Object element = XWT.findElementByName(root, "targetLabel");
+				assertTrue(element instanceof Label);
+				Label label = (Label) element;
+				Point size = label.getSize();
+				assertTrue(size.x == 100 && size.y == 40);
+			}
+
+			public void checkButton() {
+				Object element = XWT.findElementByName(root, "targetButton");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				Point size = button.getSize();
+				assertTrue(size.x == 200 && size.y == 200);
+			}
+		});
+	}
+
+	public void testControlSizeGridData() throws Exception {
+		URL url = ControlsTests.class.getResource(Control_Size_GridData.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkLabel();
+				checkButton();
+			}
+
+			public void checkLabel() {
+				Object element = XWT.findElementByName(root, "targetLabel");
+				assertTrue(element instanceof Label);
+				Label label = (Label) element;
+				Object data = label.getLayoutData();
+				assertTrue(data instanceof GridData);
+				GridData gridData = (GridData) data;
+				assertTrue(gridData.widthHint == 100
+						&& gridData.heightHint == 40);
+			}
+
+			public void checkButton() {
+				Object element = XWT.findElementByName(root, "targetButton");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				Object data = button.getLayoutData();
+				assertTrue(data instanceof GridData);
+				GridData gridData = (GridData) data;
+				assertTrue(gridData.widthHint == 200
+						&& gridData.heightHint == 200);
+			}
+		});
+	}
+}
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/backgroundImage.png b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/backgroundImage.png
similarity index 100%
rename from org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/backgroundImage.png
rename to tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/backgroundImage.png
Binary files differ
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/browser/Browser_Test.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/browser/Browser_Test.java
new file mode 100644
index 0000000..6731e10
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/browser/Browser_Test.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.browser;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Browser_Test {
+	public static void main(String[] args) {
+		URL url = Browser_Test.class.getResource(Browser_Test.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/browser/Browser_Test.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/browser/Browser_Test.xwt
new file mode 100644
index 0000000..14d37b9
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/browser/Browser_Test.xwt
@@ -0,0 +1,18 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	text="Browser Test">
+	<Shell.layout>
+		<FillLayout/>
+	</Shell.layout>
+	<Group text="browser">
+		<Group.layout>
+			<GridLayout/>
+		</Group.layout>
+		<Browser x:style="BORDER" url="http://www.google.com">
+			<Browser.layoutData>
+				<GridData horizontalAlignment="FILL" verticalAlignment="FILL" 
+			          grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>
+			</Browser.layoutData>
+		</Browser>
+	</Group>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/browser/Browser_text.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/browser/Browser_text.java
new file mode 100644
index 0000000..6d2da65
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/browser/Browser_text.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.browser;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Browser_text {
+	public static void main(String[] args) {
+		URL url = Browser_text.class.getResource(Browser_text.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/browser/Browser_text.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/browser/Browser_text.xwt
new file mode 100644
index 0000000..43d8fe9
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/browser/Browser_text.xwt
@@ -0,0 +1,18 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	text="Browser Text">
+	<Shell.layout>
+		<FillLayout/>
+	</Shell.layout>
+	<Group text="browser">
+		<Group.layout>
+			<GridLayout/>
+		</Group.layout>
+		<Browser x:style="BORDER" text="&lt;html&gt;&lt;body&gt;test&lt;/body&gt;&lt;/html&gt;">
+			<Browser.layoutData>
+				<GridData horizontalAlignment="FILL" verticalAlignment="FILL" 
+			          grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>
+			</Browser.layoutData>
+		</Browser>
+	</Group>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/ButtonTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/ButtonTests.java
new file mode 100644
index 0000000..7b6ddf5
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/ButtonTests.java
@@ -0,0 +1,169 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.button;
+
+import java.net.URL;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class ButtonTests extends XWTTestCase {
+	public void testButtonVisible() throws Exception {
+		URL url = ButtonTests.class.getResource(Button_Visible.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkButtonVisible();
+				checkButtonNonVisible();
+			}
+
+			public void checkButtonVisible() {
+				Object element = XWT.findElementByName(root, "buttonVisible");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				assertTrue(button.getVisible());
+			}
+
+			public void checkButtonNonVisible() {
+				Object element = XWT
+						.findElementByName(root, "buttonNonVisible");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				assertFalse(button.getVisible());
+			}
+		});
+	}
+
+	public void testButtonAlignment() throws Exception {
+		URL url = ButtonTests.class.getResource(Button_Alignment.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkButtonLeft();
+				checkButtonRight();
+				checkButtonCenter();
+			}
+
+			public void checkButtonLeft() {
+				Object element = XWT.findElementByName(root, "ButtonLeft");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				assertTrue(button.getAlignment() == SWT.LEFT);
+			}
+
+			public void checkButtonRight() {
+				Object element = XWT.findElementByName(root, "ButtonRight");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				assertTrue(button.getAlignment() == SWT.RIGHT);
+			}
+
+			public void checkButtonCenter() {
+				Object element = XWT.findElementByName(root, "ButtonCenter");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				assertTrue(button.getAlignment() == SWT.CENTER);
+			}
+		});
+	}
+
+	public void testButtonEnabled() throws Exception {
+		URL url = ButtonTests.class.getResource(Button_Enabled.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkButtonEnabled();
+				checkButtonNotEnabled();
+			}
+
+			public void checkButtonEnabled() {
+				Object element = XWT.findElementByName(root, "EnabledButton");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				assertTrue(button.isEnabled());
+			}
+
+			public void checkButtonNotEnabled() {
+				Object element = XWT
+						.findElementByName(root, "NotEnabledButton");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				assertFalse(button.isEnabled());
+			}
+		});
+	}
+
+	public void testButtonStyles() throws Exception {
+		URL url = ButtonTests.class.getResource(Button_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkPushButton();
+				checkCheckButton();
+				checkRadioButton();
+				checkToggleButton();
+				checkArrowButton();
+				checkFlatButton();
+			}
+
+			public void checkPushButton() {
+				Object element = XWT.findElementByName(root, "PushButton");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				assertTrue((button.getStyle() & SWT.PUSH) == SWT.PUSH);
+			}
+
+			public void checkCheckButton() {
+				Object element = XWT.findElementByName(root, "CheckButton");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				assertTrue((button.getStyle() & SWT.CHECK) == SWT.CHECK);
+			}
+
+			public void checkRadioButton() {
+				Object element = XWT.findElementByName(root, "RadioButton");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				assertTrue((button.getStyle() & SWT.RADIO) == SWT.RADIO);
+			}
+
+			public void checkToggleButton() {
+				Object element = XWT.findElementByName(root, "ToggleButton");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				assertTrue((button.getStyle() & SWT.TOGGLE) == SWT.TOGGLE);
+			}
+
+			public void checkArrowButton() {
+				Object element = XWT.findElementByName(root, "ArrowButton");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				assertTrue((button.getStyle() & SWT.ARROW) == SWT.ARROW);
+			}
+
+			public void checkFlatButton() {
+				Object element = XWT.findElementByName(root, "FlatButton");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				assertTrue((button.getStyle() & SWT.FLAT) == SWT.FLAT);
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Alignment.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Alignment.java
new file mode 100644
index 0000000..e8f9f12
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Alignment.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.button;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Button_Alignment {
+	public static void main(String[] args) {
+		URL url = Button_Alignment.class.getResource(Button_Alignment.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Alignment.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Alignment.xwt
new file mode 100644
index 0000000..d2c00a7
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Alignment.xwt
@@ -0,0 +1,21 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	text="Button Alignment Test">
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>
+	<Group text="buttons">
+		<Button name="ButtonLeft" text="Alignment(LEFT)" Bounds="10, 10, 200, 50" alignment="LEFT"/>
+		<Button name="ButtonCenter" text="Alignment(CENTER)" Bounds="10, 70, 200, 50" alignment="CENTER"/>
+		<Button name="ButtonRight" text="Alignment(RIGHT)" Bounds="10, 130, 200, 50" alignment="RIGHT"/>
+	</Group>
+	<Group text="arrows">
+		<Group.layout>
+			<GridLayout numColumns="4"/>
+		</Group.layout>
+    	<Button x:style="ARROW" alignment="LEFT" tooltipText="SWT.LEFT"/>
+		<Button x:style="ARROW" alignment="RIGHT" tooltipText="SWT.RIGHT"/>
+		<Button x:style="ARROW" alignment="UP" tooltipText="SWT.UP"/>
+		<Button x:style="ARROW" alignment="DOWN" tooltipText="SWT.DOWN"/>
+	</Group>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Enabled.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Enabled.java
new file mode 100644
index 0000000..df35343
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Enabled.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.button;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Button_Enabled {
+	public static void main(String[] args) {
+		URL url = Button_Enabled.class.getResource(Button_Enabled.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Enabled.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Enabled.xwt
new file mode 100644
index 0000000..1bacaf9
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Enabled.xwt
@@ -0,0 +1,9 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	text="Button Enabled Test">
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>
+	<Button name="EnabledButton" text="Enabled(true)" enabled="true"/>
+	<Button name="NotEnabledButton" text="Enabled(false)" enabled="false"/>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Styles.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Styles.java
new file mode 100644
index 0000000..2c3def4
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Styles.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*************************************************
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.button;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Button_Styles {
+	public static void main(String[] args) {
+		URL url = Button_Styles.class.getResource(Button_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Styles.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Styles.xwt
new file mode 100644
index 0000000..3d51208
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Styles.xwt
@@ -0,0 +1,13 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	text="Button Styles Test">
+	<Shell.layout>
+		<GridLayout numColumns="7"/>
+	</Shell.layout>
+	<Button name="PushButton" x:style="PUSH" text="SWT.PUSH" />
+	<Button name="CheckButton" x:style="CHECK" text="SWT.CHECK" />
+	<Button name="RadioButton" x:style="RADIO" text="SWT.RADIO" />
+	<Button name="ToggleButton" x:style="TOGGLE" text="SWT.TOGGLE" />
+	<Button name="ArrowButton" x:style="ARROW" text="SWT.ARROW" />
+	<Button name="FlatButton" x:style="FLAT" text="SWT.FLAT" />
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Visible.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Visible.java
new file mode 100644
index 0000000..ed04a54
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Visible.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.button;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Button_Visible {
+	public static void main(String[] args) {
+		URL url = Button_Visible.class.getResource(Button_Visible.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Visible.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Visible.xwt
new file mode 100644
index 0000000..d403e27
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/Button_Visible.xwt
@@ -0,0 +1,9 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	text="Button Visible Test">
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>
+	<Button name="buttonVisible" text="Visible(true)" visible="true"/>
+	<Button name="buttonNonVisible" text="Visible(false)" visible="false"/>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/command/ButtonCommand.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/command/ButtonCommand.java
new file mode 100644
index 0000000..4cba8e0
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/command/ButtonCommand.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.button.command;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author yyang
+ */
+public class ButtonCommand {
+	public static void main(String[] args) {
+		XWT.registerCommand("Message", new MessageCommand());
+		URL url = ButtonCommand.class.getResource(ButtonCommand.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/command/ButtonCommand.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/command/ButtonCommand.xwt
new file mode 100644
index 0000000..249fcc4
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/command/ButtonCommand.xwt
@@ -0,0 +1,8 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	text="Button Visible Test">
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>
+	<Button text="Open Message" Command="Message"/>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/command/MessageCommand.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/command/MessageCommand.java
new file mode 100644
index 0000000..bc4d384
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/button/command/MessageCommand.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.button.command;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.xwt.input.RoutedCommand;
+
+public class MessageCommand extends RoutedCommand {
+
+	public MessageCommand() {
+	}
+
+	@Override
+	public void execute(Object parameter) {
+		MessageDialog.openInformation(null, "Message", "Command message");
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/canvas/Canvas_Styles.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/canvas/Canvas_Styles.java
new file mode 100644
index 0000000..9f6a235
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/canvas/Canvas_Styles.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.canvas;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Canvas_Styles {
+	public static void main(String[] args) {
+		URL url = Canvas_Styles.class.getResource(Canvas_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/canvas/Canvas_Styles.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/canvas/Canvas_Styles.xwt
new file mode 100644
index 0000000..e101071
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/canvas/Canvas_Styles.xwt
@@ -0,0 +1,13 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	text="Canvas Styles Test">
+	<Shell.layout>
+		<FillLayout/>
+	</Shell.layout>
+	<Canvas x:style="H_SCROLL | BORDER | V_SCROLL">
+		<Canvas.layout>
+			<GridLayout numColumns="1"/>
+		</Canvas.layout>
+		<Label text="This is a canvas"/>
+	</Canvas>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ccombo/CComboTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ccombo/CComboTests.java
new file mode 100644
index 0000000..89e3042
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ccombo/CComboTests.java
@@ -0,0 +1,102 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.ccombo;
+
+import java.net.URL;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class CComboTests extends XWTTestCase {
+
+	public void testCComboStyle() throws Exception {
+		Runnable prepare = new Runnable() {
+			public void run() {
+			}
+		};
+
+		Runnable checker = new Runnable() {
+			public void run() {
+				checkComboStyle("combo1", SWT.READ_ONLY);
+				checkComboStyle("combo2", SWT.FLAT);
+				checkComboStyle("combo3", SWT.BORDER);
+			}
+
+			public void checkComboStyle(String name, int style) {
+				Object element = XWT.findElementByName(root, name);
+				assertTrue(element instanceof CCombo);
+				CCombo combo = (CCombo) element;
+				assertTrue((combo.getStyle() & style) == style);
+			}
+		};
+
+		URL url = CCombo_Styles.class.getResource(CCombo_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, prepare, checker);
+	}
+
+	public void testCComboItems() throws Exception {
+		Runnable prepare = new Runnable() {
+			public void run() {
+			}
+		};
+
+		Runnable checker = new Runnable() {
+			public void run() {
+				checkComboItems("combo1", new String[] { "Item1", "Item2",
+						"Item3", "Item4" });
+			}
+
+			public void checkComboItems(String name, String[] items) {
+				Object element = XWT.findElementByName(root, name);
+				assertTrue(element instanceof CCombo);
+				CCombo combo = (CCombo) element;
+				assertEqualsArray(combo.getItems(), items);
+			}
+		};
+
+		URL url = CCombo_Styles.class.getResource(CCombo_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, prepare, checker);
+	}
+
+	public void testCComboText() throws Exception {
+		Runnable prepare = new Runnable() {
+			public void run() {
+			}
+		};
+
+		Runnable checker = new Runnable() {
+			public void run() {
+				checkComboText("combo3", "Item3");
+			}
+
+			public void checkComboText(String name, String item) {
+				Object element = XWT.findElementByName(root, name);
+				assertTrue(element instanceof CCombo);
+				CCombo combo = (CCombo) element;
+				assertEquals(combo.getText(), item);
+			}
+		};
+
+		URL url = CCombo_Styles.class.getResource(CCombo_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, prepare, checker);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ccombo/CCombo_Styles.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ccombo/CCombo_Styles.java
new file mode 100644
index 0000000..74d0676
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ccombo/CCombo_Styles.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.ccombo;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class CCombo_Styles {
+	public static void main(String[] args) {
+		URL url = CCombo_Styles.class.getResource(CCombo_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ccombo/CCombo_Styles.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ccombo/CCombo_Styles.xwt
new file mode 100644
index 0000000..730963a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ccombo/CCombo_Styles.xwt
@@ -0,0 +1,39 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:java.lang"
+    text="CCombo Styles Test">
+	<Shell.layout>
+		<GridLayout numColumns="2"/>
+	</Shell.layout>
+	<Label text="READ_ONLY: "/>
+	<CCombo name="combo1" x:style="READ_ONLY">
+		<CCombo.items>
+			<x:Array Type="j:String">
+	             <j:String>Item1</j:String>
+	             <j:String>Item2</j:String>
+	             <j:String>Item3</j:String>
+	             <j:String>Item4</j:String>
+   		    </x:Array> 
+		</CCombo.items>
+	</CCombo>
+	<Label text="FLAT: "/>
+	<CCombo name="combo2" x:style="FLAT">
+		<CCombo.items>
+			<x:Array Type="j:String">
+	             <j:String>Item1</j:String>
+	             <j:String>Item2</j:String>
+	             <j:String>Item3</j:String>
+	             <j:String>Item4</j:String>
+   		     </x:Array> 
+		</CCombo.items>
+	</CCombo>
+	<Label text="BORDER: "/>
+	<CCombo name="combo3" x:style="BORDER" text="Item3">
+		<CCombo.items>
+             <j:String>Item1</j:String>
+             <j:String>Item2</j:String>
+             <j:String>Item3</j:String>
+             <j:String>Item4</j:String>
+		</CCombo.items>
+	</CCombo>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/clabel/CLabel_Styles.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/clabel/CLabel_Styles.java
new file mode 100644
index 0000000..2d33889
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/clabel/CLabel_Styles.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.clabel;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class CLabel_Styles {
+	public static void main(String[] args) {
+		URL url = CLabel_Styles.class.getResource(CLabel_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/clabel/CLabel_Styles.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/clabel/CLabel_Styles.xwt
new file mode 100644
index 0000000..a49bae6
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/clabel/CLabel_Styles.xwt
@@ -0,0 +1,10 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    text="CLable Styles Test">
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>
+	<CLabel x:style="SHADOW_NONE" text="SHADOW_NONE"/>
+	<CLabel x:style="SHADOW_IN" text="SHADOW_IN"/>
+	<CLabel x:style="SHADOW_OUT" text="SHADOW_OUT"/>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/combo/ComboTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/combo/ComboTests.java
new file mode 100644
index 0000000..50ee31c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/combo/ComboTests.java
@@ -0,0 +1,102 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.combo;
+
+import java.net.URL;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class ComboTests extends XWTTestCase {
+
+	public void testComboStyle() throws Exception {
+		Runnable prepare = new Runnable() {
+			public void run() {
+			}
+		};
+
+		Runnable checker = new Runnable() {
+			public void run() {
+				checkComboStyle("combo1", SWT.DROP_DOWN);
+				checkComboStyle("combo2", SWT.DROP_DOWN | SWT.READ_ONLY);
+				checkComboStyle("combo3", SWT.SIMPLE);
+			}
+
+			public void checkComboStyle(String name, int style) {
+				Object element = XWT.findElementByName(root, name);
+				assertTrue(element instanceof Combo);
+				Combo combo = (Combo) element;
+				assertTrue((combo.getStyle() & style) == style);
+			}
+		};
+
+		URL url = Combo_Styles.class.getResource(Combo_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, prepare, checker);
+	}
+
+	public void testComboItems() throws Exception {
+		Runnable prepare = new Runnable() {
+			public void run() {
+			}
+		};
+
+		Runnable checker = new Runnable() {
+			public void run() {
+				checkComboItems("combo1", new String[] { "Item1", "Item2",
+						"Item3", "Item4" });
+			}
+
+			public void checkComboItems(String name, String[] items) {
+				Object element = XWT.findElementByName(root, name);
+				assertTrue(element instanceof Combo);
+				Combo combo = (Combo) element;
+				assertEqualsArray(combo.getItems(), items);
+			}
+		};
+
+		URL url = Combo_Styles.class.getResource(Combo_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, prepare, checker);
+	}
+
+	public void testComboText() throws Exception {
+		Runnable prepare = new Runnable() {
+			public void run() {
+			}
+		};
+
+		Runnable checker = new Runnable() {
+			public void run() {
+				checkComboText("combo3", "Item3");
+			}
+
+			public void checkComboText(String name, String item) {
+				Object element = XWT.findElementByName(root, name);
+				assertTrue(element instanceof Combo);
+				Combo combo = (Combo) element;
+				assertEquals(combo.getText(), item);
+			}
+		};
+
+		URL url = Combo_Styles.class.getResource(Combo_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, prepare, checker);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/combo/Combo_Styles.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/combo/Combo_Styles.java
new file mode 100644
index 0000000..09d4b1f
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/combo/Combo_Styles.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.combo;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Combo_Styles {
+	public static void main(String[] args) {
+		URL url = Combo_Styles.class.getResource(Combo_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/combo/Combo_Styles.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/combo/Combo_Styles.xwt
new file mode 100644
index 0000000..8462eae
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/combo/Combo_Styles.xwt
@@ -0,0 +1,41 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:java.lang"
+    text="Combo Styles Test">
+	<Shell.layout>
+		<GridLayout numColumns="2"/>
+	</Shell.layout>
+	<Label text="DROP_DOWN: "/>
+	<Combo name="combo1" x:style="DROP_DOWN">
+		<Combo.items>
+			<x:Array Type="j:String">
+	             <j:String>Item1</j:String>
+	             <j:String>Item2</j:String>
+	             <j:String>Item3</j:String>
+	             <j:String>Item4</j:String>
+   		     </x:Array> 
+		</Combo.items>
+	</Combo>
+	<Label text="DROP_DOWN|READ_ONLY: "/>
+	<Combo name="combo2" x:style="DROP_DOWN|READ_ONLY">
+		<Combo.items>
+			<x:Array Type="j:String">
+	             <j:String>Item1</j:String>
+	             <j:String>Item2</j:String>
+	             <j:String>Item3</j:String>
+	             <j:String>Item4</j:String>
+   		     </x:Array> 
+		</Combo.items>
+	</Combo>
+	<Label text="SIMPLE: "/>
+	<Combo name="combo3" x:style="SIMPLE" text="Item3">
+		<Combo.items>
+			<x:Array Type="j:String">
+	             <j:String>Item1</j:String>
+	             <j:String>Item2</j:String>
+	             <j:String>Item3</j:String>
+	             <j:String>Item4</j:String>
+   		     </x:Array> 
+		</Combo.items>
+	</Combo>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/coolbar/CoolBar_Styles.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/coolbar/CoolBar_Styles.java
new file mode 100644
index 0000000..90f58d1
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/coolbar/CoolBar_Styles.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.coolbar;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class CoolBar_Styles {
+	public static void main(String[] args) {
+		URL url = CoolBar_Styles.class.getResource(CoolBar_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/coolbar/CoolBar_Styles.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/coolbar/CoolBar_Styles.xwt
new file mode 100644
index 0000000..1be5511
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/coolbar/CoolBar_Styles.xwt
@@ -0,0 +1,26 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"
+	text="CoolBar Styles Test">
+	<Shell.layout>
+		<FillLayout />
+	</Shell.layout>
+	<CoolBar x:style="HORIZONTAL">
+		<CoolItem x:style="DROP_DOWN" size="100, 25">
+			<!--
+				height of toolBar must equal than 24
+			-->
+			<CoolItem.control>
+				<ToolBar x:style="HORIZONTAL |SHADOW_OUT">
+					<ToolItem x:style="PUSH" Image="openFolder.gif"
+						tooltipText="SWT.PUSH" />
+					<ToolItem x:style="RADIO" selection="true" Image="closedFolder.gif"
+						tooltipText="SWT.RADIO" />
+					<ToolItem x:style="CHECK" selection="true" Image="target.gif"
+						tooltipText="SWT.CHECK" />
+					<ToolItem x:style="RADIO" selection="true" Image="closedFolder.gif"
+						tooltipText="SWT.RADIO" />
+					<ToolItem x:style="SEPARATOR" tooltipText="SWT.SEPARATOR" />
+				</ToolBar>
+			</CoolItem.control>
+		</CoolItem>
+	</CoolBar>
+</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/coolbar/closedFolder.gif b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/coolbar/closedFolder.gif
similarity index 100%
rename from org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/coolbar/closedFolder.gif
rename to tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/coolbar/closedFolder.gif
Binary files differ
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/coolbar/openFolder.gif b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/coolbar/openFolder.gif
similarity index 100%
rename from org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/coolbar/openFolder.gif
rename to tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/coolbar/openFolder.gif
Binary files differ
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/coolbar/target.gif b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/coolbar/target.gif
similarity index 100%
rename from org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/coolbar/target.gif
rename to tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/coolbar/target.gif
Binary files differ
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ctabfolder/CTabFolder_Styles.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ctabfolder/CTabFolder_Styles.java
new file mode 100644
index 0000000..f9eb996
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ctabfolder/CTabFolder_Styles.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.ctabfolder;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class CTabFolder_Styles {
+	public static void main(String[] args) {
+		URL url = CTabFolder_Styles.class.getResource(CTabFolder_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ctabfolder/CTabFolder_Styles.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ctabfolder/CTabFolder_Styles.xwt
new file mode 100644
index 0000000..cb7e9ed
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/ctabfolder/CTabFolder_Styles.xwt
@@ -0,0 +1,51 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    text="TabFolder Styles Test">
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>
+	<CTabFolder>
+		<CTabItem text="item1">
+			<CTabItem.control>
+				<Label text="TabItem 1"/>
+			</CTabItem.control>
+		</CTabItem>
+		<CTabItem text="item2">
+			<CTabItem.control>
+				<Label text="TabItem 2"/>
+			</CTabItem.control>
+		</CTabItem>
+		<CTabItem text="item3">
+			<CTabItem.control>
+				<Label text="TabItem 3"/>
+			</CTabItem.control>
+		</CTabItem>
+		<CTabFolder.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" 
+				grabExcessVerticalSpace="true"
+				grabExcessHorizontalSpace="true"/>
+		</CTabFolder.layoutData>		
+	</CTabFolder>
+	<CTabFolder x:style="BOTTOM">
+		<CTabItem text="item1">
+			<CTabItem.control>
+				<Label text="TabItem 1"/>
+			</CTabItem.control>
+		</CTabItem>
+		<CTabItem text="item2">
+			<CTabItem.control>
+				<Label text="TabItem 2"/>
+			</CTabItem.control>
+		</CTabItem>
+		<CTabItem text="item3">
+			<CTabItem.control>
+				<Label text="TabItem 3"/>
+			</CTabItem.control>
+		</CTabItem>
+		<CTabFolder.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" 
+				grabExcessVerticalSpace="true"
+				grabExcessHorizontalSpace="true"/>
+		</CTabFolder.layoutData>		
+	</CTabFolder>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/datetime/DateTime_Styles.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/datetime/DateTime_Styles.java
new file mode 100644
index 0000000..1b4ccb7
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/datetime/DateTime_Styles.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.datetime;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class DateTime_Styles {
+	public static void main(String[] args) {
+		URL url = DateTime_Styles.class.getResource(DateTime_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/datetime/DateTime_Styles.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/datetime/DateTime_Styles.xwt
new file mode 100644
index 0000000..333993f
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/datetime/DateTime_Styles.xwt
@@ -0,0 +1,14 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    text="DateTime Styles Test">
+	<Shell.layout>
+		<GridLayout numColumns="2"/>
+	</Shell.layout>
+	<Label text="Date(SHORT): "/><DateTime x:style="DATE | BORDER | SHORT"/>
+	<Label text="Date(MEDIUM): "/><DateTime x:style="DATE | BORDER | MEDIUM"/>
+	<Label text="Date(LONG): "/><DateTime x:style="DATE | BORDER | LONG"/>
+	<Label text="Time(SHORT): "/><DateTime x:style="TIME | BORDER | SHORT"/>
+	<Label text="Time(MEDIUM): "/><DateTime x:style="TIME | BORDER | MEDIUM"/>
+	<Label text="Time(LONG): "/><DateTime x:style="TIME | BORDER | LONG"/>
+	<Label text="Calendar: "/><DateTime x:style="CALENDAR"/>
+</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/demo.gif b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/demo.gif
similarity index 100%
rename from org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/demo.gif
rename to tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/demo.gif
Binary files differ
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/expandbar/ExpandBar_Test.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/expandbar/ExpandBar_Test.java
new file mode 100644
index 0000000..98572b5
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/expandbar/ExpandBar_Test.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.expandbar;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class ExpandBar_Test {
+	public static void main(String[] args) {
+		URL url = ExpandBar_Test.class.getResource(ExpandBar_Test.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/expandbar/ExpandBar_Test.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/expandbar/ExpandBar_Test.xwt
new file mode 100644
index 0000000..54014e0
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/expandbar/ExpandBar_Test.xwt
@@ -0,0 +1,24 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    text="ExpandBar Test">
+    <Shell.layout>
+    	<FillLayout/>
+    </Shell.layout>
+    <ExpandBar x:style="V_SCROLL">
+    	<ExpandItem text="A button add for item1">
+    		<ExpandItem.control>
+	    		<Button text="Item1"/>	
+    		</ExpandItem.control>
+    	</ExpandItem>
+    	<ExpandItem text="A label add for item1" expanded="true" >
+    		<ExpandItem.control>
+    			<Label text="Item2"/>	
+    		</ExpandItem.control>
+    	</ExpandItem>
+    	<ExpandItem text="A text add for item1" >
+    		<ExpandItem.control>
+	    		<Text x:style="BORDER" text="Item3"/>	
+    		</ExpandItem.control>
+    	</ExpandItem>
+	</ExpandBar>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/group/Group_Styles.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/group/Group_Styles.java
new file mode 100644
index 0000000..78d60ac
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/group/Group_Styles.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.group;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Group_Styles {
+	public static void main(String[] args) {
+		URL url = Group_Styles.class.getResource(Group_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/group/Group_Styles.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/group/Group_Styles.xwt
new file mode 100644
index 0000000..f2ebde0
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/group/Group_Styles.xwt
@@ -0,0 +1,37 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    text="Group Styles Test">
+    <Shell.layout>
+    	<GridLayout numColumns="1"/>
+    </Shell.layout>
+    <Group text="SWT.SHADOW_ETCHED_IN" x:style="SHADOW_ETCHED_IN">
+    	<Group.layout>
+    		<FillLayout/>
+    	</Group.layout>
+    	<Text  x:style="BORDER" text="Group style is SWT.SHADOW_ETCHED_IN"/>
+    </Group>
+    <Group text="SWT.SHADOW_ETCHED_OUT" x:style="SHADOW_ETCHED_OUT">
+    	<Group.layout>
+    		<FillLayout/>
+    	</Group.layout>
+    	<Text x:style="BORDER" text="Group style is SWT.SHADOW_ETCHED_OUT"/>
+    </Group>
+    <Group text="SWT.SHADOW_IN" x:style="SHADOW_IN">
+    	<Group.layout>
+    		<FillLayout/>
+    	</Group.layout>
+    	<Text x:style="BORDER" text="Group style is SWT.SHADOW_IN"/>
+    </Group>
+    <Group text="SWT.SHADOW_OUT" x:style="SHADOW_OUT">
+   		 <Group.layout>
+    		<FillLayout/>
+    	</Group.layout>
+    	<Text x:style="BORDER"  text="Group style is SWT.SHADOW_OUT"/>
+    </Group>
+    <Group text="SWT.SHADOW_NONE" x:style="SHADOW_NONE">
+   		 <Group.layout>
+    		<FillLayout/>
+    	</Group.layout>
+    	<Text x:style="BORDER"  text="Group style is SWT.SHADOW_NONE"/>
+    </Group>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/label/Label_Alignment.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/label/Label_Alignment.java
new file mode 100644
index 0000000..b059919
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/label/Label_Alignment.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.label;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Label_Alignment {
+	public static void main(String[] args) {
+		URL url = Label_Alignment.class.getResource(Label_Alignment.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/label/Label_Alignment.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/label/Label_Alignment.xwt
new file mode 100644
index 0000000..c02aaf9
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/label/Label_Alignment.xwt
@@ -0,0 +1,7 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	text="Label Alignment Test">
+	<Label x:style="BORDER" Bounds="10, 10, 200, 50" text="Alignment(LEFT)" alignment="LEFT"/>
+	<Label x:style="BORDER" Bounds="10, 70, 200, 50" text="Alignment(CENTER)" alignment="CENTER"/>
+	<Label x:style="BORDER" Bounds="10, 130, 200, 50" text="Alignment(RIGHT)" alignment="RIGHT"/>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/label/Label_Styles.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/label/Label_Styles.java
new file mode 100644
index 0000000..9bb2f9c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/label/Label_Styles.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.label;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Label_Styles {
+	public static void main(String[] args) {
+		URL url = Label_Styles.class.getResource(Label_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/label/Label_Styles.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/label/Label_Styles.xwt
new file mode 100644
index 0000000..4fcd7c9
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/label/Label_Styles.xwt
@@ -0,0 +1,9 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    text="Label Styles Test">
+	<Shell.layout>
+		<GridLayout numColumns="2"/>
+	</Shell.layout>
+	<Label text="Separator(Horizontal): "/><Label x:style="SEPARATOR | HORIZONTAL"/>
+	<Label text="Separator(Vertical): "/><Label x:style="SEPARATOR | VERTICAL"/>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FillComposite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FillComposite.java
new file mode 100644
index 0000000..0055096
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FillComposite.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.layout;
+
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+
+public class FillComposite extends Composite {
+
+	public FillComposite(Composite parent, int style) {
+		super(parent, style);
+		setLayout(new FillLayout());
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FillLayout_Test.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FillLayout_Test.java
new file mode 100644
index 0000000..0b91511
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FillLayout_Test.java
@@ -0,0 +1,113 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.layout;
+
+import java.net.URL;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Spinner;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class FillLayout_Test {
+	public static void main(String[] args) {
+
+		URL url = FillLayout_Test.class.getResource(FillLayout_Test.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	private Group findGroup(Widget widget) {
+		if (widget instanceof Control) {
+			Control control = (Control) widget;
+			Composite parent = control.getParent();
+			for (Control child : parent.getChildren()) {
+				if (child instanceof Group
+						&& (("layout".equals(((Group) child).getText())))) {
+					return ((Group) child);
+				}
+			}
+			return findGroup(parent.getParent());
+		}
+		return null;
+	}
+
+	private void layout(Composite composite) {
+		if (composite != null) {
+			composite.layout(true, true);
+			layout(composite.getParent());
+		}
+	}
+
+	protected void updateTypeHorizontal(Event event) {
+		Button widget = (Button) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			FillLayout layout = (FillLayout) layGroup.getLayout();
+			layout.type = SWT.HORIZONTAL;
+			layout(layGroup);
+		}
+	}
+
+	protected void updateTypeVertical(Event event) {
+		Button widget = (Button) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			FillLayout layout = (FillLayout) layGroup.getLayout();
+			layout.type = SWT.VERTICAL;
+			layout(layGroup);
+		}
+	}
+
+	protected void updateMarginWidth(Event event) {
+		Spinner widget = (Spinner) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			FillLayout layout = (FillLayout) layGroup.getLayout();
+			layout.marginWidth = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+
+	protected void updateMarginHeight(Event event) {
+		Spinner widget = (Spinner) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			FillLayout layout = (FillLayout) layGroup.getLayout();
+			layout.marginHeight = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+
+	protected void updateSpacing(Event event) {
+		Spinner widget = (Spinner) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			FillLayout layout = (FillLayout) layGroup.getLayout();
+			layout.spacing = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FillLayout_Test.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FillLayout_Test.xwt
new file mode 100644
index 0000000..249e836
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FillLayout_Test.xwt
@@ -0,0 +1,41 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	x:Class="org.eclipse.xwt.tests.controls.layout.FillLayout_Test"
+	text="FillLayout - Test">
+	<Shell.layout>
+		<GridLayout numColumns="2"/>
+	</Shell.layout>
+	<Group text="layout">
+		<Group.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"/>
+		</Group.layoutData>
+		<Group.layout>
+		    <FillLayout type="HORIZONTAL"/>
+		</Group.layout>
+		<Button text="button1"/>
+		<Button text="button2"/>
+		<Button text="button3"/>
+		<Button text="LongTextButton1"/>
+		<Button text="LongTextButton2"/>
+	</Group>
+	<Group text ="Parameters">
+		<Group.layout>
+		    <GridLayout numColumns="2"/>
+		</Group.layout>
+		<Group text ="Type">
+			<Group.layout>
+		    	<FillLayout type="VERTICAL"/>
+			</Group.layout>
+			<Button x:style="RADIO" text="SWT.HORIZONTAL" selection="true" SelectionEvent="updateTypeHorizontal"/>
+			<Button x:style="RADIO" text="SWT.VERTICAL" SelectionEvent="updateTypeVertical"/>
+		</Group>
+		<Group text ="Margins and Spacings">
+			<Group.layout>
+		    	<GridLayout numColumns="2"/>
+			</Group.layout>
+			<Label text="marginWidth"/><Spinner x:Name="marginWidth" x:style="BORDER" selection="0" SelectionEvent="updateMarginWidth"/>
+			<Label text="marginHeight"/><Spinner x:style="BORDER" selection="0" SelectionEvent="updateMarginHeight"/>
+			<Label text="spacing"/><Spinner x:style="BORDER" selection="0" SelectionEvent="updateSpacing"/>
+		</Group>
+	</Group>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FormLayout_Test.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FormLayout_Test.java
new file mode 100644
index 0000000..7785488
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FormLayout_Test.java
@@ -0,0 +1,135 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.layout;
+
+import java.net.URL;
+
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Spinner;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class FormLayout_Test {
+	public static void main(String[] args) {
+
+		URL url = FormLayout_Test.class.getResource(FormLayout_Test.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	private Group findGroup(Widget widget) {
+		if (widget == null) {
+			return null;
+		}
+		if (widget instanceof Composite) {
+			Composite composite = (Composite) widget;
+			for (Control child : composite.getChildren()) {
+				if (child instanceof Group
+						&& (("layout".equals(((Group) child).getText())))) {
+					return ((Group) child);
+				}
+			}
+			return findGroup(composite.getParent());
+		} else if (widget instanceof Control) {
+			return findGroup(((Control) widget).getParent());
+		}
+		return null;
+	}
+
+	private void layout(Composite composite) {
+		if (composite != null) {
+			composite.layout(true, true);
+			layout(composite.getParent());
+		}
+	}
+
+	protected void updateMarginWidth(Event event) {
+		Spinner widget = (Spinner) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			FormLayout layout = (FormLayout) layGroup.getLayout();
+			layout.marginWidth = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+
+	protected void updateMarginHeight(Event event) {
+		Spinner widget = (Spinner) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			FormLayout layout = (FormLayout) layGroup.getLayout();
+			layout.marginHeight = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+
+	protected void updateMarginLeft(Event event) {
+		Spinner widget = (Spinner) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			FormLayout layout = (FormLayout) layGroup.getLayout();
+			layout.marginLeft = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+
+	protected void updateMarginRight(Event event) {
+		Spinner widget = (Spinner) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			FormLayout layout = (FormLayout) layGroup.getLayout();
+			layout.marginRight = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+
+	protected void updateMarginTop(Event event) {
+		Spinner widget = (Spinner) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			FormLayout layout = (FormLayout) layGroup.getLayout();
+			layout.marginTop = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+
+	protected void updateMarginBottom(Event event) {
+		Spinner widget = (Spinner) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			FormLayout layout = (FormLayout) layGroup.getLayout();
+			layout.marginBottom = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+
+	protected void updateSpacing(Event event) {
+		Spinner widget = (Spinner) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			FormLayout layout = (FormLayout) layGroup.getLayout();
+			layout.spacing = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FormLayout_Test.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FormLayout_Test.xwt
new file mode 100644
index 0000000..08c0a82
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/FormLayout_Test.xwt
@@ -0,0 +1,39 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	x:Class="org.eclipse.xwt.tests.controls.layout.FormLayout_Test"
+	text="FormLayout - Test">
+	<Shell.layout>
+		<GridLayout numColumns="2"/>
+	</Shell.layout>
+	<Group text="layout">
+		<Group.layout>
+		    <FormLayout/>
+		</Group.layout>
+		<Group.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL">
+			</GridData>
+		</Group.layoutData>
+		<Button text="button1"/>
+		<Button text="button2"/>
+		<Button text="button3"/>
+		<Button text="LongTextButton1"/>
+		<Button text="LongTextButton2"/>
+	</Group>
+	<Group text ="Parameters">
+		<Group.layout>
+		    <GridLayout numColumns="1"/>
+		</Group.layout>
+		<Group text ="Margins and Spacings">
+			<Group.layout>
+		    	<GridLayout numColumns="2"/>
+			</Group.layout>
+			<Label text="marginWidth"/><Spinner x:Name="marginWidth" x:style="BORDER" selection="0" SelectionEvent="updateMarginWidth"/>
+			<Label text="marginHeight"/><Spinner x:style="BORDER" selection="0" SelectionEvent="updateMarginHeight"/>
+			<Label text="marginLeft"/><Spinner x:style="BORDER" selection="0" SelectionEvent="updateMarginLeft"/>
+			<Label text="marginRight"/><Spinner x:style="BORDER" selection="0" SelectionEvent="updateMarginRight"/>
+			<Label text="marginTop"/><Spinner x:style="BORDER" selection="0" SelectionEvent="updateMarginTop"/>
+			<Label text="marginBottom"/><Spinner x:style="BORDER" selection="0" SelectionEvent="updateMarginBottom"/>
+			<Label text="spacing"/><Spinner x:style="BORDER" selection="0" SelectionEvent="updateSpacing"/>
+		</Group>
+	</Group>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/GridLayout_Test.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/GridLayout_Test.java
new file mode 100644
index 0000000..913ecfb
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/GridLayout_Test.java
@@ -0,0 +1,165 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.layout;
+
+import java.net.URL;
+
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Spinner;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class GridLayout_Test {
+	public static void main(String[] args) {
+
+		URL url = GridLayout_Test.class.getResource(GridLayout_Test.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	private Group findGroup(Widget widget) {
+		if (widget instanceof Control) {
+			Control control = (Control) widget;
+			Composite parent = control.getParent();
+			for (Control child : parent.getChildren()) {
+				if (child instanceof Group
+						&& (("layout".equals(((Group) child).getText())))) {
+					return ((Group) child);
+				}
+			}
+			return findGroup(parent.getParent());
+		}
+		return null;
+	}
+
+	protected void updateNumColumns(Event event) {
+		Spinner widget = (Spinner) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			GridLayout layout = (GridLayout) layGroup.getLayout();
+			layout.numColumns = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+
+	private void layout(Composite composite) {
+		if (composite != null) {
+			composite.layout(true, true);
+			layout(composite.getParent());
+		}
+	}
+
+	protected void updateMakeColunsEqual(Event event) {
+		Button widget = (Button) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			GridLayout layout = (GridLayout) layGroup.getLayout();
+			layout.makeColumnsEqualWidth = widget.getSelection();
+			for (Control control : layGroup.getChildren()) {
+				control.setLayoutData(null);
+			}
+			layout(layGroup);
+		}
+	}
+
+	protected void updateMarginWidth(Event event) {
+		Spinner widget = (Spinner) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			GridLayout layout = (GridLayout) layGroup.getLayout();
+			layout.marginWidth = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+
+	protected void updateMarginHeight(Event event) {
+		Spinner widget = (Spinner) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			GridLayout layout = (GridLayout) layGroup.getLayout();
+			layout.marginHeight = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+
+	protected void updateMarginLeft(Event event) {
+		Spinner widget = (Spinner) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			GridLayout layout = (GridLayout) layGroup.getLayout();
+			layout.marginLeft = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+
+	protected void updateMarginRight(Event event) {
+		Spinner widget = (Spinner) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			GridLayout layout = (GridLayout) layGroup.getLayout();
+			layout.marginRight = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+
+	protected void updateMarginTop(Event event) {
+		Spinner widget = (Spinner) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			GridLayout layout = (GridLayout) layGroup.getLayout();
+			layout.marginTop = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+
+	protected void updateMarginBottom(Event event) {
+		Spinner widget = (Spinner) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			GridLayout layout = (GridLayout) layGroup.getLayout();
+			layout.marginBottom = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+
+	protected void updateHSpacing(Event event) {
+		Spinner widget = (Spinner) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			GridLayout layout = (GridLayout) layGroup.getLayout();
+			layout.horizontalSpacing = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+
+	protected void updateVSpacing(Event event) {
+		Spinner widget = (Spinner) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			GridLayout layout = (GridLayout) layGroup.getLayout();
+			layout.verticalSpacing = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/GridLayout_Test.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/GridLayout_Test.xwt
new file mode 100644
index 0000000..f3022ab
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/GridLayout_Test.xwt
@@ -0,0 +1,54 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	x:Class="org.eclipse.xwt.tests.controls.layout.GridLayout_Test"
+	text="GridLayout - Test">
+	<Shell.layout>
+		<GridLayout numColumns="2"/>
+	</Shell.layout>
+	<Group text="layout">
+		<Group.layout>
+		    <GridLayout numColumns="1" 
+		     	makeColumnsEqualWidth="true" marginWidth="5" 
+		     	marginHeight="5" marginLeft="0" marginTop="0" 
+		     	marginRight="0" marginBottom="0" 
+		     	horizontalSpacing="5" verticalSpacing="5"/>
+		</Group.layout>
+		<Group.layoutData>
+			<GridData horizontalAlignment="GridData.FILL" verticalAlignment="GridData.FILL">
+			</GridData>
+		</Group.layoutData>
+		<Button text="button1"/>
+		<Button text="button2"/>
+		<Button text="button3"/>
+		<Button text="LongTextButton1"/>
+		<Button text="LongTextButton2"/>
+	</Group>
+	<Group text ="Parameters">
+		<Group.layout>
+		    <GridLayout numColumns="2"/>
+		</Group.layout>
+		<Group text ="Columns">
+			<Group.layoutData>
+				<GridData horizontalAlignment="FILL" verticalAlignment="FILL"/>
+			</Group.layoutData>
+		    <Group.layout>
+		    	<GridLayout numColumns="2"/>
+			</Group.layout>
+			<Label text="numColumns"/><Spinner x:style="BORDER" selection="1" SelectionEvent="updateNumColumns"/>
+			<Button x:style="CHECK" selection="true" text="makeColunsEqualWidth" SelectionEvent="updateMakeColunsEqual"/>
+		</Group>
+		<Group text ="Margins and Spacings">
+			<Group.layout>
+		    	<GridLayout numColumns="2"/>
+			</Group.layout>
+			<Label text="marginWidth"/><Spinner x:Name="marginWidth" x:style="BORDER" selection="5" SelectionEvent="updateMarginWidth"/>
+			<Label text="marginHeight"/><Spinner x:style="BORDER" selection="5" SelectionEvent="updateMarginHeight"/>
+			<Label text="marginLeft"/><Spinner x:style="BORDER" SelectionEvent="updateMarginLeft"/>
+			<Label text="marginRight"/><Spinner x:style="BORDER" SelectionEvent="updateMarginRight"/>
+			<Label text="marginTop"/><Spinner x:style="BORDER" SelectionEvent="updateMarginTop"/>
+			<Label text="marginBottom"/><Spinner x:style="BORDER" SelectionEvent="updateMarginBottom"/>
+			<Label text="horizontalSpacing"/><Spinner x:style="BORDER" selection="5" SelectionEvent="updateHSpacing"/>
+			<Label text="verticalSpacing"/><Spinner x:style="BORDER" selection="5" SelectionEvent="updateVSpacing"/>
+		</Group>
+	</Group>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/LayoutTestSuite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/LayoutTestSuite.java
new file mode 100644
index 0000000..1b62df1
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/LayoutTestSuite.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.layout;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class LayoutTestSuite extends TestSuite {
+	public static final Test suite() {
+		return new LayoutTestSuite();
+	}
+
+	public LayoutTestSuite() {
+		addTest(new TestSuite(LayoutTests.class));
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/LayoutTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/LayoutTests.java
new file mode 100644
index 0000000..ca32fd7
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/LayoutTests.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.layout;
+
+import java.net.URL;
+
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.widgets.Form;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class LayoutTests extends XWTTestCase {
+	public void testForm_NullLayout() throws Exception {
+		URL url = LayoutTests.class
+				.getResource(NullLayout_Test.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button button = (Button) XWT.findElementByName(root, "button");
+				assertTrue(button.getVisible());
+				Rectangle rectangle = button.getBounds();
+				assertEquals(rectangle, new Rectangle(10, 10, 200, 50));
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/NullLayout_Test.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/NullLayout_Test.java
new file mode 100644
index 0000000..278e4c7
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/NullLayout_Test.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.layout;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class NullLayout_Test {
+	public static void main(String[] args) {
+
+		URL url = NullLayout_Test.class.getResource(NullLayout_Test.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/NullLayout_Test.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/NullLayout_Test.xwt
new file mode 100644
index 0000000..e7af172
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/NullLayout_Test.xwt
@@ -0,0 +1,7 @@
+<y:FillComposite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.controls.layout"	
+	text="RowLayout - Test"
+	layout="{x:Null}">
+	<Button name="button" bounds="10, 10, 200, 50" text="Message"/>
+</y:FillComposite>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/RowLayout_Test.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/RowLayout_Test.java
new file mode 100644
index 0000000..692db85
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/RowLayout_Test.java
@@ -0,0 +1,207 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.layout;
+
+import java.net.URL;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Spinner;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class RowLayout_Test {
+	public static void main(String[] args) {
+
+		URL url = RowLayout_Test.class.getResource(RowLayout_Test.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	private Group findGroup(Widget widget) {
+		if (widget == null) {
+			return null;
+		}
+		if (widget instanceof Composite) {
+			Composite composite = (Composite) widget;
+			for (Control child : composite.getChildren()) {
+				if (child instanceof Group
+						&& (("layout".equals(((Group) child).getText())))) {
+					return ((Group) child);
+				}
+			}
+			return findGroup(composite.getParent());
+		} else if (widget instanceof Control) {
+			return findGroup(((Control) widget).getParent());
+		}
+		return null;
+	}
+
+	protected void updateTypeHorizontal(Event event) {
+		Button widget = (Button) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			RowLayout layout = (RowLayout) layGroup.getLayout();
+			layout.type = SWT.HORIZONTAL;
+			layout(layGroup);
+		}
+	}
+
+	protected void updateTypeVertical(Event event) {
+		Button widget = (Button) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			RowLayout layout = (RowLayout) layGroup.getLayout();
+			layout.type = SWT.VERTICAL;
+			layout(layGroup);
+		}
+	}
+
+	private void layout(Composite composite) {
+		if (composite != null) {
+			composite.layout(true, true);
+			layout(composite.getParent());
+		}
+	}
+
+	protected void updateMarginWidth(Event event) {
+		Spinner widget = (Spinner) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			RowLayout layout = (RowLayout) layGroup.getLayout();
+			layout.marginWidth = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+
+	protected void updateMarginHeight(Event event) {
+		Spinner widget = (Spinner) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			RowLayout layout = (RowLayout) layGroup.getLayout();
+			layout.marginHeight = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+
+	protected void updateMarginLeft(Event event) {
+		Spinner widget = (Spinner) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			RowLayout layout = (RowLayout) layGroup.getLayout();
+			layout.marginLeft = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+
+	protected void updateMarginRight(Event event) {
+		Spinner widget = (Spinner) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			RowLayout layout = (RowLayout) layGroup.getLayout();
+			layout.marginRight = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+
+	protected void updateMarginTop(Event event) {
+		Spinner widget = (Spinner) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			RowLayout layout = (RowLayout) layGroup.getLayout();
+			layout.marginTop = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+
+	protected void updateMarginBottom(Event event) {
+		Spinner widget = (Spinner) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			RowLayout layout = (RowLayout) layGroup.getLayout();
+			layout.marginBottom = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+
+	protected void updateSpacing(Event event) {
+		Spinner widget = (Spinner) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			RowLayout layout = (RowLayout) layGroup.getLayout();
+			layout.spacing = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+
+	protected void updatePropWrap(Event event) {
+		Button widget = (Button) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			RowLayout layout = (RowLayout) layGroup.getLayout();
+			layout.wrap = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+
+	protected void updatePropPack(Event event) {
+		Button widget = (Button) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			RowLayout layout = (RowLayout) layGroup.getLayout();
+			layout.pack = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+
+	protected void updatePropJustify(Event event) {
+		Button widget = (Button) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			RowLayout layout = (RowLayout) layGroup.getLayout();
+			layout.justify = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+
+	protected void updatePropFill(Event event) {
+		Button widget = (Button) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			RowLayout layout = (RowLayout) layGroup.getLayout();
+			layout.fill = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+
+	protected void updatePropCenter(Event event) {
+		Button widget = (Button) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			RowLayout layout = (RowLayout) layGroup.getLayout();
+			layout.center = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/RowLayout_Test.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/RowLayout_Test.xwt
new file mode 100644
index 0000000..9e2d914
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/RowLayout_Test.xwt
@@ -0,0 +1,69 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	x:Class="org.eclipse.xwt.tests.controls.layout.RowLayout_Test"
+	text="RowLayout - Test">
+	<Shell.layout>
+		<GridLayout numColumns="2"/>
+	</Shell.layout>
+	<Group text="layout">
+		<Group.layout>
+		    <RowLayout/>
+		</Group.layout>
+		<Group.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL">
+			</GridData>
+		</Group.layoutData>
+		<Button text="button1"/>
+		<Button text="button2"/>
+		<Button text="button3"/>
+		<Button text="LongTextButton1"/>
+		<Button text="LongTextButton2"/>
+	</Group>
+	<Group text ="Parameters">
+		<Group.layout>
+		    <GridLayout numColumns="2"/>
+		</Group.layout>
+		<Composite>
+			<Composite.layout>
+			    <GridLayout numColumns="1"/>
+			</Composite.layout>
+			<Group text ="Type">
+				<Group.layoutData>
+					<GridData horizontalAlignment="FILL" verticalAlignment="FILL">
+					</GridData>
+				</Group.layoutData>
+				<Group.layout>
+		    		<FillLayout type="VERTICAL"/>
+				</Group.layout>
+				<Button x:style="RADIO" text="SWT.HORIZONTAL" selection="true" SelectionEvent="updateTypeHorizontal"/>
+				<Button x:style="RADIO" text="SWT.VERTICAL" SelectionEvent="updateTypeVertical"/>
+			</Group>
+			<Group text ="Properties">
+				<Group.layoutData>
+					<GridData horizontalAlignment="FILL" verticalAlignment="FILL">
+					</GridData>
+				</Group.layoutData>
+				<Group.layout>
+		    		<FillLayout type="VERTICAL"/>
+				</Group.layout>
+				<Button x:style="CHECK" text="Wrap" selection="true" SelectionEvent="updatePropWrap"/>
+				<Button x:style="CHECK" text="Pack" selection="true" SelectionEvent="updatePropPack"/>
+				<Button x:style="CHECK" text="Fill" selection="false" SelectionEvent="updatePropFill"/>
+				<Button x:style="CHECK" text="Justify" SelectionEvent="updatePropJustify"/>
+				<Button x:style="CHECK" text="Center" selection="false" SelectionEvent="updatePropCenter"/>
+			</Group>
+		</Composite>
+		<Group text ="Margins and Spacings">
+			<Group.layout>
+		    	<GridLayout numColumns="2"/>
+			</Group.layout>
+			<Label text="marginWidth"/><Spinner x:Name="marginWidth" x:style="BORDER" selection="0" SelectionEvent="updateMarginWidth"/>
+			<Label text="marginHeight"/><Spinner x:style="BORDER" selection="0" SelectionEvent="updateMarginHeight"/>
+			<Label text="marginLeft"/><Spinner x:style="BORDER" selection="3" SelectionEvent="updateMarginLeft"/>
+			<Label text="marginRight"/><Spinner x:style="BORDER" selection="3" SelectionEvent="updateMarginRight"/>
+			<Label text="marginTop"/><Spinner x:style="BORDER" selection="3" SelectionEvent="updateMarginTop"/>
+			<Label text="marginBottom"/><Spinner x:style="BORDER" selection="3" SelectionEvent="updateMarginBottom"/>
+			<Label text="spacing"/><Spinner x:style="BORDER" selection="3" SelectionEvent="updateSpacing"/>
+		</Group>
+	</Group>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/StackLayout_Test.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/StackLayout_Test.java
new file mode 100644
index 0000000..7a3fe7c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/StackLayout_Test.java
@@ -0,0 +1,154 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.layout;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.swt.custom.StackLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Spinner;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class StackLayout_Test {
+	public static void main(String[] args) {
+
+		URL url = StackLayout_Test.class.getResource(StackLayout_Test.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	private Group findGroup(Widget widget) {
+		if (widget == null) {
+			return null;
+		}
+		if (widget instanceof Composite) {
+			Composite composite = (Composite) widget;
+			for (Control child : composite.getChildren()) {
+				if (child instanceof Group
+						&& (("layout".equals(((Group) child).getText())))) {
+					return ((Group) child);
+				}
+			}
+			return findGroup(composite.getParent());
+		} else if (widget instanceof Control) {
+			return findGroup(((Control) widget).getParent());
+		}
+		return null;
+	}
+
+	private static Group layoutGrp;
+	private static Control current;
+	private static List<Control> controls = new ArrayList<Control>();
+
+	protected void updateStackAbove(Event event) {
+		Button widget = (Button) event.widget;
+		layoutGrp = findGroup(widget);
+		if (layoutGrp != null) {
+			if (controls.isEmpty()) {
+				controls.addAll(Arrays.asList(layoutGrp.getChildren()));
+			}
+			StackLayout layout = (StackLayout) layoutGrp.getLayout();
+			if (current == null) {
+				current = controls.get(controls.size() - 1);
+			} else {
+				int index = controls.indexOf(current);
+				if (index > 0) {
+					current = controls.get(index - 1);
+				}
+			}
+			layout.topControl = current;
+			Label label = findLabel(widget);
+			if (label != null) {
+				label.setText(((Button) current).getText());
+			}
+			layout(layoutGrp);
+		}
+	}
+
+	private Label findLabel(Button widget) {
+		Control[] children = widget.getParent().getChildren();
+		for (Control control : children) {
+			if (control instanceof Label) {
+				return ((Label) control);
+			}
+		}
+		return null;
+	}
+
+	protected void updateStackBelow(Event event) {
+		Button widget = (Button) event.widget;
+		layoutGrp = findGroup(widget);
+		if (layoutGrp != null) {
+			if (controls.isEmpty()) {
+				controls.addAll(Arrays.asList(layoutGrp.getChildren()));
+			}
+			StackLayout layout = (StackLayout) layoutGrp.getLayout();
+			if (current == null) {
+				current = controls.get(0);
+			} else {
+				int index = controls.indexOf(current);
+				if (index < controls.size() - 1) {
+					current = controls.get(index + 1);
+				}
+			}
+			layout.topControl = current;
+			Label label = findLabel(widget);
+			if (label != null) {
+				label.setText(((Button) current).getText());
+			}
+			layout(layoutGrp);
+		}
+	}
+
+	private void layout(Composite composite) {
+		if (composite != null) {
+			composite.layout(true, true);
+			layout(composite.getParent());
+		}
+	}
+
+	protected void updateMarginWidth(Event event) {
+		Spinner widget = (Spinner) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			StackLayout layout = (StackLayout) layGroup.getLayout();
+			layout.marginWidth = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+
+	protected void updateMarginHeight(Event event) {
+		Spinner widget = (Spinner) event.widget;
+		Group layGroup = findGroup(widget);
+		if (layGroup != null) {
+			StackLayout layout = (StackLayout) layGroup.getLayout();
+			layout.marginHeight = widget.getSelection();
+			layout(layGroup);
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/StackLayout_Test.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/StackLayout_Test.xwt
new file mode 100644
index 0000000..d7fd4de
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/layout/StackLayout_Test.xwt
@@ -0,0 +1,46 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	x:Class="org.eclipse.xwt.tests.controls.layout.StackLayout_Test"
+	text="RowLayout - Test">
+	<Shell.layout>
+		<GridLayout numColumns="2"/>
+	</Shell.layout>
+	<Group text="layout">
+		<Group.layout>
+		    <StackLayout/>
+		</Group.layout>
+		<Group.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL">
+			</GridData>
+		</Group.layoutData>
+		<Button text="button1"/>
+		<Button text="button2"/>
+		<Button text="button3"/>
+		<Button text="LongTextButton1"/>
+		<Button text="LongTextButton2"/>
+	</Group>
+	<Group text ="Parameters">
+		<Group.layout>
+		    <GridLayout numColumns="2"/>
+		</Group.layout>
+		<Group text ="topControl">
+			<Group.layoutData>
+				<GridData horizontalAlignment="FILL" verticalAlignment="FILL">
+				</GridData>
+			</Group.layoutData>
+			<Group.layout>
+	  	 		<GridLayout numColumns="3"/>
+			</Group.layout>
+			<Button x:style="PUSH" text="Below" selection="true" SelectionEvent="updateStackBelow"/>
+			<Label x:style="BORDER" text="              "/>
+			<Button x:style="PUSH" text="Top" SelectionEvent="updateStackAbove"/>
+		</Group>
+		<Group text ="Margins">
+			<Group.layout>
+		    	<GridLayout numColumns="2"/>
+			</Group.layout>
+			<Label text="marginWidth"/><Spinner x:Name="marginWidth" x:style="BORDER" selection="0" SelectionEvent="updateMarginWidth"/>
+			<Label text="marginHeight"/><Spinner x:style="BORDER" selection="0" SelectionEvent="updateMarginHeight"/>
+		</Group>
+	</Group>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/link/Link_Styles.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/link/Link_Styles.java
new file mode 100644
index 0000000..0db7cdd
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/link/Link_Styles.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.link;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Link_Styles {
+	public static void main(String[] args) {
+		URL url = Link_Styles.class.getResource(Link_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/link/Link_Styles.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/link/Link_Styles.xwt
new file mode 100644
index 0000000..615570d
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/link/Link_Styles.xwt
@@ -0,0 +1,11 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt" xmlns:java="clr-namespace:org.eclipse.xwt.tests.controls.link">
+	<Composite.layout>
+		<GridLayout />
+	</Composite.layout>
+	<Link text="{x:Static java:Messages.LinkText}"></Link>
+
+	<!--  <A HREF="http://www.soyatec.com"> Soyatec Web Site. </A>	-->
+	<Link 
+		text="Visit &lt;A HREF=&quot;http://www.soyatec.com&quot;&gt; Soyatec Web Site. &lt;/A&gt;"></Link>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/link/Messages.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/link/Messages.java
new file mode 100644
index 0000000..c78703b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/link/Messages.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.link;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+	private static final String BUNDLE_NAME = "org.eclipse.xwt.tests.controls.link.messages"; // NON-NLS-1
+
+	public static String LinkText;
+
+	static {
+		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/link/messages.properties b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/link/messages.properties
new file mode 100644
index 0000000..7250cb0
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/link/messages.properties
@@ -0,0 +1,13 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+LinkText=Visit the <A HREF=\"www.eclipse.org\">Eclipse.org</A> project and the <A HREF=\"www.eclipse.org\\swt">SWT</A> homepage.
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/list/List_Styles.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/list/List_Styles.java
new file mode 100644
index 0000000..b48798f
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/list/List_Styles.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.list;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class List_Styles {
+	public static void main(String[] args) {
+		URL url = List_Styles.class.getResource(List_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/list/List_Styles.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/list/List_Styles.xwt
new file mode 100644
index 0000000..231c370
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/list/List_Styles.xwt
@@ -0,0 +1,30 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:j="clr-namespace:java.lang" text="List Styles Test">
+	<Shell.layout>
+		<GridLayout numColumns="2" />
+	</Shell.layout>
+	<Label text="List(SINGLE): " />
+	<List x:style="SINGLE|BORDER|V_SCROLL|H_SCROLL">
+		<List.items>
+			<j:String>"Line number foreground"</j:String>
+			<j:String>"Matching bracketshighlight"</j:String>
+			<j:String>"Current line highlight"</j:String>
+			<j:String>"Print margin"</j:String>
+			<j:String>"Find scope"</j:String>
+			<j:String>"Linked position"</j:String>
+			<j:String>"Link"</j:String>
+		</List.items>
+	</List>
+	<Label text="List(MULTI): " />
+	<List x:style="MULTI|BORDER|V_SCROLL|H_SCROLL">
+		<List.items>
+			<j:String>"Line number foreground"</j:String>
+			<j:String>"Matching bracketshighlight"</j:String>
+			<j:String>"Current line highlight"</j:String>
+			<j:String>"Print margin"</j:String>
+			<j:String>"Find scope"</j:String>
+			<j:String>"Linked position"</j:String>
+			<j:String>"Link"</j:String>
+		</List.items>
+	</List>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/list/List_Styles_Array.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/list/List_Styles_Array.java
new file mode 100644
index 0000000..2dc79f5
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/list/List_Styles_Array.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.list;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class List_Styles_Array {
+	public static void main(String[] args) {
+		URL url = List_Styles_Array.class.getResource(List_Styles_Array.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/list/List_Styles_Array.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/list/List_Styles_Array.xwt
new file mode 100644
index 0000000..43fe950
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/list/List_Styles_Array.xwt
@@ -0,0 +1,32 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:j="clr-namespace:java.lang" text="List Styles Test">
+	<Shell.layout>
+		<GridLayout numColumns="2" />
+	</Shell.layout>
+	<Label text="List(SINGLE): " />
+	<List x:style="SINGLE|BORDER|V_SCROLL|H_SCROLL">
+		<List.items>
+			<x:Array Type="j:String">
+				<j:String>"Line number foreground"</j:String>
+				<j:String>"Matching bracketshighlight"</j:String>
+				<j:String>"Current line highlight"</j:String>
+				<j:String>"Print margin"</j:String>
+				<j:String>"Find scope"</j:String>
+				<j:String>"Linked position"</j:String>
+				<j:String>"Link"</j:String>
+			</x:Array>
+		</List.items>
+	</List>
+	<Label text="List(MULTI): " />
+	<List x:style="MULTI|BORDER|V_SCROLL|H_SCROLL">
+		<List.items>
+			<j:String>"Line number foreground"</j:String>
+			<j:String>"Matching bracketshighlight"</j:String>
+			<j:String>"Current line highlight"</j:String>
+			<j:String>"Print margin"</j:String>
+			<j:String>"Find scope"</j:String>
+			<j:String>"Linked position"</j:String>
+			<j:String>"Link"</j:String>
+		</List.items>
+	</List>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/Menu_Styles.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/Menu_Styles.java
new file mode 100644
index 0000000..0e7b6ab
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/Menu_Styles.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.menu;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Menu_Styles {
+	public static void main(String[] args) {
+		URL url = Menu_Styles.class.getResource(Menu_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/Menu_Styles.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/Menu_Styles.xwt
new file mode 100644
index 0000000..fec8a56
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/Menu_Styles.xwt
@@ -0,0 +1,55 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    text="Menu Styles Test">
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>
+	<Shell.menuBar>
+		<Menu x:style="BAR">
+			<MenuItem text="Cascade" x:style="CASCADE">
+				<MenuItem.menu>
+					<Menu x:style="DROP_DOWN ">
+						<MenuItem text="Push" x:style="PUSH" image="demo.gif"/>
+						<MenuItem x:style="SEPARATOR"/>
+						<MenuItem text="Check" x:style="CHECK"/>
+						<MenuItem text="Radio1" x:style="RADIO"/>
+						<MenuItem text="Radio2" x:style="RADIO"/>
+						<MenuItem text="Cascade" x:style="CASCADE">
+							<MenuItem.menu>
+								<Menu x:style="DROP_DOWN ">
+									<MenuItem text="Push" x:style="PUSH" />
+									<MenuItem x:style="SEPARATOR"/>
+									<MenuItem text="Check" x:style="CHECK"/>
+									<MenuItem text="Radio1" x:style="RADIO"/>
+									<MenuItem text="Radio2" x:style="RADIO"/>
+								</Menu>
+							</MenuItem.menu>
+						</MenuItem> 
+					</Menu>
+				</MenuItem.menu>
+			</MenuItem> 
+		</Menu>
+	</Shell.menuBar>
+	<Label text="Popup Menu Here ">
+		<Label.menu>
+			<Menu x:style="POP_UP">
+				<MenuItem text="Push" x:style="PUSH" image="demo.gif"/>
+				<MenuItem x:style="SEPARATOR"/>
+				<MenuItem text="Check" x:style="CHECK"/>
+				<MenuItem text="Radio1" x:style="RADIO"/>
+				<MenuItem text="Radio2" x:style="RADIO"/>
+				<MenuItem text="Cascade" x:style="CASCADE">
+						<MenuItem.menu>
+							<Menu x:style="DROP_DOWN ">
+								<MenuItem text="Push" x:style="PUSH" />
+								<MenuItem x:style="SEPARATOR"/>
+								<MenuItem text="Check" x:style="CHECK"/>
+								<MenuItem text="Radio1" x:style="RADIO"/>
+								<MenuItem text="Radio2" x:style="RADIO"/>
+							</Menu>
+						</MenuItem.menu>
+				</MenuItem> 
+			</Menu>
+		</Label.menu>
+	</Label>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/command/Menu.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/command/Menu.java
new file mode 100644
index 0000000..c4acdd1
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/command/Menu.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.menu.command;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.controls.button.command.MessageCommand;
+
+/**
+ * @author yyang
+ */
+public class Menu {
+	public static void main(String[] args) {
+		XWT.registerCommand("Message", new MessageCommand());
+		URL url = Menu.class.getResource(Menu.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/command/Menu.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/command/Menu.xwt
new file mode 100644
index 0000000..afc5a3f
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/command/Menu.xwt
@@ -0,0 +1,25 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    text="Menu Styles Test">
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>
+	<Shell.menuBar>
+		<Menu x:style="BAR">
+			<MenuItem text="Cascade" x:style="CASCADE">
+				<MenuItem.menu>
+					<Menu x:style="DROP_DOWN ">
+						<MenuItem text="Message" Command="Message"/>
+					</Menu>
+				</MenuItem.menu>
+			</MenuItem> 
+		</Menu>
+	</Shell.menuBar>
+	<Label text="Popup Menu Here ">
+		<Label.menu>
+			<Menu x:style="POP_UP">
+				<MenuItem text="Message" Command="Message"/>
+			</Menu>
+		</Label.menu>
+	</Label>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/command/MessageCommand.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/command/MessageCommand.java
new file mode 100644
index 0000000..5be3d6f
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/command/MessageCommand.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.menu.command;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.xwt.input.RoutedCommand;
+
+public class MessageCommand extends RoutedCommand {
+
+	public MessageCommand() {
+	}
+
+	@Override
+	public void execute(Object parameter) {
+		MessageDialog.openInformation(null, "Message", "Command message");
+	}
+}
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/demo.gif b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/demo.gif
similarity index 100%
rename from org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/demo.gif
rename to tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/menu/demo.gif
Binary files differ
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/progressbar/ProgressBar_Styles.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/progressbar/ProgressBar_Styles.java
new file mode 100644
index 0000000..5e386c2
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/progressbar/ProgressBar_Styles.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.progressbar;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class ProgressBar_Styles {
+	public static void main(String[] args) {
+		URL url = ProgressBar_Styles.class.getResource(ProgressBar_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/progressbar/ProgressBar_Styles.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/progressbar/ProgressBar_Styles.xwt
new file mode 100644
index 0000000..daf2dd6
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/progressbar/ProgressBar_Styles.xwt
@@ -0,0 +1,11 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    text="ProgressBar Styles Test">
+	<Shell.layout>
+		<GridLayout numColumns="2"/>
+	</Shell.layout>
+	<Label text="ProgressBar(Horizontal): "/><ProgressBar x:style="HORIZONTAL"/>
+	<Label text="ProgressBar(Vertical): "/><ProgressBar x:style="VERTICAL"/>
+	<Label text="ProgressBar(LEFT_TO_RIGHT): "/><ProgressBar x:style="HORIZONTAL | INDETERMINATE |LEFT_TO_RIGHT"/>
+	<Label text="ProgressBar(RIGHT_TO_LEFT): "/><ProgressBar x:style="HORIZONTAL | INDETERMINATE |RIGHT_TO_LEFT"/>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/sash/Sash_Styles.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/sash/Sash_Styles.java
new file mode 100644
index 0000000..68024d9
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/sash/Sash_Styles.java
@@ -0,0 +1,152 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.sash;
+
+import java.net.URL;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.List;
+import org.eclipse.swt.widgets.Sash;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Sash_Styles {
+	public static void main(String[] args) {
+		URL url = Sash_Styles.class.getResource(Sash_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	/* Constants */
+	static final int SASH_WIDTH = 3;
+	static final int SASH_LIMIT = 20;
+	private Sash vSash;
+	private Sash hSash;
+	private Composite sashComp;
+	private List list1;
+	private List list2;
+	private Text text;
+
+	protected void handleVerticalMove(Event event) {
+		checkInit(event);
+		Rectangle rect = vSash.getParent().getClientArea();
+		event.x = Math.min(Math.max(event.x, SASH_LIMIT), rect.width
+				- SASH_LIMIT);
+		if (event.detail != SWT.DRAG) {
+			vSash.setBounds(event.x, event.y, event.width, event.height);
+			layout();
+		}
+	}
+
+	/**
+	 * @param event
+	 */
+	private void checkInit(Event event) {
+		if (vSash == null) {
+			vSash = (Sash) XWT.findElementByName(event.widget, "vSash");
+		}
+		if (hSash == null) {
+			hSash = (Sash) XWT.findElementByName(event.widget, "hSash");
+		}
+		if (sashComp == null) {
+			sashComp = (Composite) XWT.findElementByName(event.widget,
+					"sashComp");
+		}
+		if (list1 == null) {
+			list1 = (List) XWT.findElementByName(event.widget, "list1");
+		}
+		if (list2 == null) {
+			list2 = (List) XWT.findElementByName(event.widget, "list2");
+		}
+		if (text == null) {
+			text = (Text) XWT.findElementByName(event.widget, "text");
+		}
+	}
+
+	void layout() {
+
+		Rectangle clientArea = sashComp.getClientArea();
+		Rectangle hSashBounds = hSash.getBounds();
+		Rectangle vSashBounds = vSash.getBounds();
+
+		list1.setBounds(0, 0, vSashBounds.x, hSashBounds.y);
+		list2.setBounds(vSashBounds.x + vSashBounds.width, 0, clientArea.width
+				- (vSashBounds.x + vSashBounds.width), hSashBounds.y);
+		text.setBounds(0, hSashBounds.y + hSashBounds.height, clientArea.width,
+				clientArea.height - (hSashBounds.y + hSashBounds.height));
+
+		/**
+		 * If the horizontal sash has been moved then the vertical sash is
+		 * either too long or too short and its size must be adjusted.
+		 */
+		vSashBounds.height = hSashBounds.y;
+		vSash.setBounds(vSashBounds);
+	}
+
+	protected void handleHorizontalMove(Event event) {
+		checkInit(event);
+		Rectangle rect = vSash.getParent().getClientArea();
+		event.y = Math.min(Math.max(event.y, SASH_LIMIT), rect.height
+				- SASH_LIMIT);
+		if (event.detail != SWT.DRAG) {
+			hSash.setBounds(event.x, event.y, event.width, event.height);
+			layout();
+		}
+	}
+
+	protected void resized(Event event) {
+		checkInit(event);
+		/* Get the client area for the shell */
+		Rectangle clientArea = sashComp.getClientArea();
+
+		/*
+		 * Make list 1 half the width and half the height of the tab leaving
+		 * room for the sash. Place list 1 in the top left quadrant of the tab.
+		 */
+		Rectangle list1Bounds = new Rectangle(0, 0,
+				(clientArea.width - SASH_WIDTH) / 2,
+				(clientArea.height - SASH_WIDTH) / 2);
+		list1.setBounds(list1Bounds);
+
+		/*
+		 * Make list 2 half the width and half the height of the tab leaving
+		 * room for the sash. Place list 2 in the top right quadrant of the tab.
+		 */
+		list2.setBounds(list1Bounds.width + SASH_WIDTH, 0, clientArea.width
+				- (list1Bounds.width + SASH_WIDTH), list1Bounds.height);
+
+		/*
+		 * Make the text area the full width and half the height of the tab
+		 * leaving room for the sash. Place the text area in the bottom half of
+		 * the tab.
+		 */
+		text.setBounds(0, list1Bounds.height + SASH_WIDTH, clientArea.width,
+				clientArea.height - (list1Bounds.height + SASH_WIDTH));
+
+		/* Position the sashes */
+		vSash.setBounds(list1Bounds.width, 0, SASH_WIDTH, list1Bounds.height);
+		hSash.setBounds(0, list1Bounds.height, clientArea.width, SASH_WIDTH);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/sash/Sash_Styles.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/sash/Sash_Styles.xwt
new file mode 100644
index 0000000..5152734
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/sash/Sash_Styles.xwt
@@ -0,0 +1,40 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:java.lang"
+    x:Class="org.eclipse.xwt.tests.controls.sash.Sash_Styles"
+    text="Sash Styles Test">
+    <Shell.layout>
+    	<FillLayout/>
+    </Shell.layout>
+    <Composite x:Name="sashComp" x:style="BORDER" ResizeEvent="resized">
+    	<List x:Name="list1" x:style="V_SCROLL | H_SCROLL | BORDER">
+    		<List.items>
+				<x:Array Type="j:String">
+					 <j:String>"Line number foreground"</j:String>
+         	         <j:String>"Matching bracketshighlight"</j:String>
+         	         <j:String>"Current line highlight"</j:String>
+          	         <j:String>"Print margin"</j:String>
+           	         <j:String>"Find scope"</j:String>
+           	         <j:String>"Linked position"</j:String>
+            	     <j:String>"Link"</j:String>
+				</x:Array>
+			</List.items>
+    	</List>
+    	<List x:Name="list2" x:style="V_SCROLL | H_SCROLL | BORDER">
+    		<List.items>
+				<x:Array Type="j:String">
+					 <j:String>"Line number foreground"</j:String>
+         	         <j:String>"Matching bracketshighlight"</j:String>
+         	         <j:String>"Current line highlight"</j:String>
+          	         <j:String>"Print margin"</j:String>
+           	         <j:String>"Find scope"</j:String>
+           	         <j:String>"Linked position"</j:String>
+            	     <j:String>"Link"</j:String>
+				</x:Array>
+			</List.items>
+    	</List>
+    	<Text x:Name="text" x:style="MULTI | BORDER" text="A multi line text widget."/>
+    	<Sash x:Name="vSash" x:style="VERTICAL" SelectionEvent="handleVerticalMove"/>
+    	<Sash x:Name="hSash" x:style="HORIZONTAL|SMOOTH" SelectionEvent="handleHorizontalMove"/>
+	</Composite>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/sashform/SashForm_Styles.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/sashform/SashForm_Styles.java
new file mode 100644
index 0000000..924b3f7
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/sashform/SashForm_Styles.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.sashform;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class SashForm_Styles {
+	public static void main(String[] args) {
+		URL url = SashForm_Styles.class.getResource(SashForm_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/sashform/SashForm_Styles.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/sashform/SashForm_Styles.xwt
new file mode 100644
index 0000000..5515bb1
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/sashform/SashForm_Styles.xwt
@@ -0,0 +1,11 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    text="SashForm Styles Test">
+    <Shell.layout>
+    	<FillLayout/>
+    </Shell.layout>
+    <SashForm x:style="VERTICAL" Weights="30, 70">
+		<StyledText x:style="SINGLE | READ_ONLY | FULL_SELECTION" text="The quick brown fox jumps over the lazy dog."/>
+		<StyledText x:style="MULTI | V_SCROLL | H_SCROLL | BORDER" text="The quick brown fox jumps over the lazy dog."/>
+	</SashForm>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/scale/Scale_Styles.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/scale/Scale_Styles.java
new file mode 100644
index 0000000..ad1a2e8
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/scale/Scale_Styles.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.scale;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Scale_Styles {
+	public static void main(String[] args) {
+		URL url = Scale_Styles.class.getResource(Scale_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/scale/Scale_Styles.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/scale/Scale_Styles.xwt
new file mode 100644
index 0000000..74891fe
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/scale/Scale_Styles.xwt
@@ -0,0 +1,8 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Label text="Scale(Horizontal): "/><Scale x:style="HORIZONTAL"/>
+	<Label text="Scale(Vertical): "/><Scale x:style="VERTICAL"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/ShellTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/ShellTests.java
new file mode 100644
index 0000000..f31a48b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/ShellTests.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.shell;
+
+import java.net.URL;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class ShellTests extends XWTTestCase {
+	public void testShell_Trim() throws Exception {
+		URL url = Shell_Trim.class.getResource(Shell_Trim.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Shell shell = (Shell) root;
+				assertTrue((shell.getStyle() & SWT.SHELL_TRIM) == SWT.SHELL_TRIM);
+			}
+		});
+	}
+
+	public void testDialog_Trim() throws Exception {
+		URL url = Shell_Dialog_Trim.class.getResource(Shell_Dialog_Trim.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Shell shell = (Shell) root;
+				assertTrue((shell.getStyle() & SWT.DIALOG_TRIM) == SWT.DIALOG_TRIM);
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Dialog_Trim.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Dialog_Trim.java
new file mode 100644
index 0000000..7c5666a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Dialog_Trim.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.shell;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Shell_Dialog_Trim {
+	public static void main(String[] args) {
+		URL url = Shell_Dialog_Trim.class.getResource(Shell_Dialog_Trim.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Dialog_Trim.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Dialog_Trim.xwt
new file mode 100644
index 0000000..25ee6ed
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Dialog_Trim.xwt
@@ -0,0 +1,4 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    x:style="DIALOG_TRIM" text="Dialog Trim">
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Styles.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Styles.java
new file mode 100644
index 0000000..9bd169e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Styles.java
@@ -0,0 +1,123 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.shell;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Shell_Styles {
+
+	private static List<Shell> shells = new ArrayList<Shell>();
+
+	public static void main(String[] args) {
+		URL url = Shell_Styles.class.getResource(Shell_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void createShell(Event event) {
+		Button button = (Button) event.widget;
+		Composite parent = button.getParent();
+		Control[] children = parent.getChildren();
+		int style = 0;
+		for (Control control : children) {
+			if (control instanceof Group) {
+				Group grp = (Group) control;
+				String text = grp.getText();
+				if ("Decoration Styles".equals(text)
+						|| "Modal Styles".equals(text)) {
+					style |= createStyle(grp);
+				}
+			}
+		}
+		Shell shell = new Shell(style);
+		shell.open();
+		shells.add(shell);
+	}
+
+	/**
+	 * @param grp
+	 */
+	private int createStyle(Group grp) {
+		int style = 0;
+		Control[] children = grp.getChildren();
+		for (Control control : children) {
+			if (control instanceof Button) {
+				Button btn = (Button) control;
+				String str = btn.getText();
+				if (!btn.getSelection()) {
+					continue;
+				} else if ("SWT.NO_TRIM".equals(str)) {
+					style |= SWT.NO_TRIM;
+				} else if ("SWT.SHELL_TRIM".equals(str)) {
+					style |= SWT.SHELL_TRIM;
+				} else if ("SWT.DIALOG_TRIM".equals(str)) {
+					style |= SWT.DIALOG_TRIM;
+				} else if ("SWT.CLOSE".equals(str)) {
+					style |= SWT.CLOSE;
+				} else if ("SWT.MIN".equals(str)) {
+					style |= SWT.MIN;
+				} else if ("SWT.MAX".equals(str)) {
+					style |= SWT.MAX;
+				} else if ("SWT.RESIZE".equals(str)) {
+					style |= SWT.RESIZE;
+				} else if ("SWT.TOOL".equals(str)) {
+					style |= SWT.TOOL;
+				} else if ("SWT.TITLE".equals(str)) {
+					style |= SWT.TITLE;
+				} else if ("SWT.BORDER".equals(str)) {
+					style |= SWT.BORDER;
+				} else if ("SWT.ON_TOP".equals(str)) {
+					style |= SWT.ON_TOP;
+				} else if ("SWT.MODELESS".equals(str)) {
+					style |= SWT.MODELESS;
+				} else if ("SWT.PRIMARY_MODAL".equals(str)) {
+					style |= SWT.PRIMARY_MODAL;
+				} else if ("SWT.APPLICATION_MODAL".equals(str)) {
+					style |= SWT.APPLICATION_MODAL;
+				} else if ("SWT.SYSTEM_MODAL".equals(str)) {
+					style |= SWT.SYSTEM_MODAL;
+				}
+			}
+		}
+		return style;
+	}
+
+	protected void closeAllShells(Event event) {
+		if (shells.isEmpty()) {
+			return;
+		}
+		for (Shell shell : shells) {
+			shell.dispose();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Styles.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Styles.xwt
new file mode 100644
index 0000000..0ac5c1b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Styles.xwt
@@ -0,0 +1,34 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    x:Class="org.eclipse.xwt.tests.controls.shell.Shell_Styles">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Group text="Decoration Styles">
+	    <Group.layout>
+			<GridLayout numColumns="1"/>
+	    </Group.layout>
+		<Button x:style="CHECK" text="SWT.NO_TRIM"/>
+		<Button x:style="CHECK" text="SWT.SHELL_TRIM"/>
+		<Button x:style="CHECK" text="SWT.DIALOG_TRIM"/>
+		<Button x:style="CHECK" text="SWT.CLOSE"/>
+        <Button x:style="CHECK" text="SWT.TITLE"/>
+        <Button x:style="CHECK" text="SWT.MIN"/>
+        <Button x:style="CHECK" text="SWT.MAX"/>
+        <Button x:style="CHECK" text="SWT.BORDER"/>
+        <Button x:style="CHECK" text="SWT.RESIZE"/>
+        <Button x:style="CHECK" text="SWT.ON_TOP"/>
+        <Button x:style="CHECK" text="SWT.TOOL"/>
+	</Group>
+	<Group text="Modal Styles">
+	    <Group.layout>
+			<GridLayout numColumns="1"/>
+	    </Group.layout>
+		<Button x:style="RADIO" text="SWT.MODELESS" Selection="true"/>
+		<Button x:style="RADIO" text="SWT.PRIMARY_MODEL"/>
+        <Button x:style="RADIO" text="SWT.APPLICATION_MODEL"/>
+        <Button x:style="RADIO" text="SWT.SYSTEM_MODEL"/>
+	</Group>
+	<Button text="Create Shell" SelectionEvent="createShell"/>
+	<Button text="Close All Shells" SelectionEvent="closeAllShells"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Test.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Test.java
new file mode 100644
index 0000000..4d9d296
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Test.java
@@ -0,0 +1,118 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.shell;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Shell_Test {
+
+	private static List<Shell> shells = new ArrayList<Shell>();
+
+	public static void main(String[] args) {
+		URL url = Shell_Test.class.getResource(Shell_Test.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void createShell(Event event) {
+		Button button = (Button) event.widget;
+		Composite parent = button.getParent();
+		Control[] children = parent.getChildren();
+		int style = 0;
+		for (Control control : children) {
+			if (control instanceof Group) {
+				Group grp = (Group) control;
+				String text = grp.getText();
+				if ("Decoration Styles".equals(text)
+						|| "Modal Styles".equals(text)) {
+					style |= createStyle(grp);
+				}
+			}
+		}
+		Shell shell = new Shell(style);
+		shell.open();
+		shells.add(shell);
+	}
+
+	/**
+	 * @param grp
+	 */
+	private int createStyle(Group grp) {
+		int style = 0;
+		Control[] children = grp.getChildren();
+		for (Control control : children) {
+			if (control instanceof Button) {
+				Button btn = (Button) control;
+				String str = btn.getText();
+				if (!btn.getSelection()) {
+					continue;
+				} else if ("SWT.NO_TRIM".equals(str)) {
+					style |= SWT.NO_TRIM;
+				} else if ("SWT.CLOSE".equals(str)) {
+					style |= SWT.CLOSE;
+				} else if ("SWT.MIN".equals(str)) {
+					style |= SWT.MIN;
+				} else if ("SWT.MAX".equals(str)) {
+					style |= SWT.MAX;
+				} else if ("SWT.RESIZE".equals(str)) {
+					style |= SWT.RESIZE;
+				} else if ("SWT.TOOL".equals(str)) {
+					style |= SWT.TOOL;
+				} else if ("SWT.TITLE".equals(str)) {
+					style |= SWT.TITLE;
+				} else if ("SWT.BORDER".equals(str)) {
+					style |= SWT.BORDER;
+				} else if ("SWT.ON_TOP".equals(str)) {
+					style |= SWT.ON_TOP;
+				} else if ("SWT.MODELESS".equals(str)) {
+					style |= SWT.MODELESS;
+				} else if ("SWT.PRIMARY_MODAL".equals(str)) {
+					style |= SWT.PRIMARY_MODAL;
+				} else if ("SWT.APPLICATION_MODAL".equals(str)) {
+					style |= SWT.APPLICATION_MODAL;
+				} else if ("SWT.SYSTEM_MODAL".equals(str)) {
+					style |= SWT.SYSTEM_MODAL;
+				}
+			}
+		}
+		return style;
+	}
+
+	protected void closeAllShells(Event event) {
+		if (shells.isEmpty()) {
+			return;
+		}
+		for (Shell shell : shells) {
+			shell.dispose();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Test.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Test.xwt
new file mode 100644
index 0000000..7edc8f8
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Test.xwt
@@ -0,0 +1,4 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    x:style="TOOL" text="Shell Test">
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Trim.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Trim.java
new file mode 100644
index 0000000..29feae1
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Trim.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.shell;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Shell_Trim {
+	public static void main(String[] args) {
+		URL url = Shell_Trim.class.getResource(Shell_Trim.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Trim.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Trim.xwt
new file mode 100644
index 0000000..e23b5d7
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/shell/Shell_Trim.xwt
@@ -0,0 +1,4 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    x:style="SHELL_TRIM" text="Shell Trim">
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/slider/Silder_Styles.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/slider/Silder_Styles.java
new file mode 100644
index 0000000..7f96309
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/slider/Silder_Styles.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.slider;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Silder_Styles {
+	public static void main(String[] args) {
+
+		URL url = Silder_Styles.class.getResource(Silder_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/slider/Silder_Styles.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/slider/Silder_Styles.xwt
new file mode 100644
index 0000000..0553727
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/slider/Silder_Styles.xwt
@@ -0,0 +1,8 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Label text="Slider(Horizontal): "/><Slider x:style="HORIZONTAL"/>
+	<Label text="Slider(Vertical): "/><Slider x:style="VERTICAL"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/spinner/Spinner_Styles.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/spinner/Spinner_Styles.java
new file mode 100644
index 0000000..d526a79
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/spinner/Spinner_Styles.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.spinner;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Spinner_Styles {
+	public static void main(String[] args) {
+		URL url = Spinner_Styles.class.getResource(Spinner_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/spinner/Spinner_Styles.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/spinner/Spinner_Styles.xwt
new file mode 100644
index 0000000..94d110d
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/spinner/Spinner_Styles.xwt
@@ -0,0 +1,8 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Label text="Spinner(READ_ONLY): "/><Spinner x:style="READ_ONLY"/>
+	<Label text="Spinner(BORDER): "/><Spinner x:style="BORDER"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/styledtext/StyledText_Styles.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/styledtext/StyledText_Styles.java
new file mode 100644
index 0000000..002f113
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/styledtext/StyledText_Styles.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.styledtext;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class StyledText_Styles {
+	public static void main(String[] args) {
+		URL url = StyledText_Styles.class.getResource(StyledText_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/styledtext/StyledText_Styles.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/styledtext/StyledText_Styles.xwt
new file mode 100644
index 0000000..a23ee7a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/styledtext/StyledText_Styles.xwt
@@ -0,0 +1,11 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<FillLayout/>
+	</Composite.layout>
+	<SashForm x:style="VERTICAL" Weights="3, 3, 4">
+		<StyledText x:style="SINGLE | READ_ONLY | FULL_SELECTION" text="The quick brown fox jumps over the lazy dog."/>
+		<StyledText x:style="MULTI | V_SCROLL | H_SCROLL | BORDER" text="The quick brown fox jumps over the lazy dog."/>
+		<StyledText x:style="MULTI | V_SCROLL | H_SCROLL | BORDER" text="The quick brown fox jumps over the lazy dog."/>
+	</SashForm>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tabfolder/TabFolder_Styles.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tabfolder/TabFolder_Styles.java
new file mode 100644
index 0000000..7108ce6
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tabfolder/TabFolder_Styles.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.tabfolder;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TabFolder_Styles {
+	public static void main(String[] args) {
+
+		URL url = TabFolder_Styles.class.getResource(TabFolder_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tabfolder/TabFolder_Styles.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tabfolder/TabFolder_Styles.xwt
new file mode 100644
index 0000000..3f78388
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tabfolder/TabFolder_Styles.xwt
@@ -0,0 +1,51 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    text="TabFolder Styles Test">
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>
+	<TabFolder>
+		<TabItem text="item1">
+			<TabItem.control>
+				<Label text="TabItem 1"/>
+			</TabItem.control>
+		</TabItem>
+		<TabItem text="item2">
+			<TabItem.control>
+				<Label text="TabItem 2"/>
+			</TabItem.control>
+		</TabItem>
+		<TabItem text="item3">
+			<TabItem.control>
+				<Label text="TabItem 3"/>
+			</TabItem.control>
+		</TabItem>
+		<TabFolder.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" 
+				grabExcessVerticalSpace="true"
+				grabExcessHorizontalSpace="true"/>
+		</TabFolder.layoutData>		
+	</TabFolder>
+	<TabFolder x:style="BOTTOM">
+		<TabItem text="item1">
+			<TabItem.control>
+				<Label text="TabItem 1"/>
+			</TabItem.control>
+		</TabItem>
+		<TabItem text="item2">
+			<TabItem.control>
+				<Label text="TabItem 2"/>
+			</TabItem.control>
+		</TabItem>
+		<TabItem text="item3">
+			<TabItem.control>
+				<Label text="TabItem 3"/>
+			</TabItem.control>
+		</TabItem>
+		<TabFolder.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" 
+				grabExcessVerticalSpace="true"
+				grabExcessHorizontalSpace="true"/>
+		</TabFolder.layoutData>		
+	</TabFolder>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test.java
new file mode 100644
index 0000000..c2a9fd8
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.table;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Table_Test {
+	public static void main(String[] args) {
+		URL url = Table_Test.class.getResource(Table_Test.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test.xwt
new file mode 100644
index 0000000..64208c1
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test.xwt
@@ -0,0 +1,29 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:java.lang"
+    text="Table Test">
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>
+	<Table x:style="BORDER|SINGLE|FULL_SELECTION" HeaderVisible="true" LinesVisible="true">
+		<TableColumn width="150" text="Name"/>
+		<TableColumn width="150" text="Age"/>
+
+		<TableItem>
+			<!--Use Array Element-->
+			<TableItem.texts>
+				<x:Array Type="j:String">
+					<j:String>Line-Name1</j:String>
+					<j:String>Line-Age1</j:String>
+				</x:Array>
+			</TableItem.texts>	
+		</TableItem>
+		<TableItem>
+			<!--Use texts Lists directly-->
+			<TableItem.texts>
+				<j:String>Line-Name2</j:String>
+				<j:String>Line-Age2</j:String>
+			</TableItem.texts>	
+		</TableItem>
+	</Table>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test2.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test2.java
new file mode 100644
index 0000000..3f52c2f
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test2.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.table;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Table_Test2 {
+	public static void main(String[] args) {
+		URL url = Table_Test2.class.getResource(Table_Test2.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test2.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test2.xwt
new file mode 100644
index 0000000..ab457db
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test2.xwt
@@ -0,0 +1,14 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:java.lang"
+    text="Table Test">
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>
+	<Table x:style="BORDER|SINGLE|FULL_SELECTION" HeaderVisible="true" LinesVisible="true">
+		<TableColumn width="150" text="Name"/>
+		<TableItem text="Line-Name1"/>
+		<TableItem text="Line-Name2"/>
+		<TableItem text="Line-Name3"/>
+	</Table>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test3.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test3.java
new file mode 100644
index 0000000..d52c0fa
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test3.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.table;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Table_Test3 {
+	public static void main(String[] args) {
+		URL url = Table_Test3.class.getResource(Table_Test3.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test3.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test3.xwt
new file mode 100644
index 0000000..dc02821
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/Table_Test3.xwt
@@ -0,0 +1,18 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:java.lang"
+    text="Table Test">
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>
+	<Table x:style="BORDER|SINGLE|FULL_SELECTION" HeaderVisible="true" LinesVisible="true">
+		<TableColumn width="150" text="Name"/>
+		<TableColumn width="150" text="Age"/>
+		<TableItem>
+   			<TableItem.cells>
+    			<Cell text="Thomas" />
+    			<Cell text="31" image="demo.gif"/>
+   			</TableItem.cells>
+  		</TableItem>
+	</Table>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Company.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Company.java
new file mode 100644
index 0000000..52d7b7c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Company.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.table.binding;
+
+public class Company {
+	protected Employee[] employees;
+
+	public Company() {
+	}
+
+	public Employee[] getEmployees() {
+		return employees;
+	}
+
+	public void setEmployees(Employee[] employees) {
+		this.employees = employees;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Employee.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Employee.java
new file mode 100644
index 0000000..4fcee1e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Employee.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.table.binding;
+
+public class Employee {
+	protected String name;
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Table_binding_Test.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Table_binding_Test.java
new file mode 100644
index 0000000..002ffe8
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Table_binding_Test.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.table.binding;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Table_binding_Test {
+	public static void main(String[] args) {
+
+		URL url = Table_binding_Test.class.getResource(Table_binding_Test.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Table_binding_Test.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Table_binding_Test.xwt
new file mode 100644
index 0000000..b110948
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Table_binding_Test.xwt
@@ -0,0 +1,28 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.controls.table.binding"
+    text="Table Test"
+    DataContext="{StaticResource myCompany}">
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>
+	<Shell.Resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<j:Employee Name="Thomas"/>
+				<j:Employee Name="Jin"/>
+			</j:Company.employees>
+		</j:Company>
+	</Shell.Resources>
+	
+	<Table x:style="BORDER|SINGLE|FULL_SELECTION" HeaderVisible="true" LinesVisible="true">
+		<TableColumn width="150" text="Name"/>
+		<TableColumn width="150" text="Age"/>
+		<TableItem>
+   			<TableItem.cells>
+				<Cell text="Thomas" />
+				<Cell text="31" image="demo.gif"/>
+   			</TableItem.cells>
+  		</TableItem>
+	</Table>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Table_binding_Test_Array.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Table_binding_Test_Array.java
new file mode 100644
index 0000000..1475f91
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Table_binding_Test_Array.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.table.binding;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Table_binding_Test_Array {
+	public static void main(String[] args) {
+
+		URL url = Table_binding_Test_Array.class
+				.getResource(Table_binding_Test_Array.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Table_binding_Test_Array.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Table_binding_Test_Array.xwt
new file mode 100644
index 0000000..e7606ac
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/Table_binding_Test_Array.xwt
@@ -0,0 +1,30 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.controls.table.binding"
+    text="Table Test"
+    DataContext="{StaticResource myCompany}">
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>
+	<x:Shell.Resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<x:Array Type="j:Employee">
+					<j:Employee Name="Thomas"/>
+					<j:Employee Name="Jin"/>
+				</x:Array>
+			</j:Company.employees>
+		</j:Company>
+	</x:Shell.Resources>
+	
+	<Table x:style="BORDER|SINGLE|FULL_SELECTION" HeaderVisible="true" LinesVisible="true">
+		<TableColumn width="150" text="Name"/>
+		<TableColumn width="150" text="Age"/>
+		<TableItem>
+   			<TableItem.cells>
+				<Cell text="Thomas" />
+				<Cell text="31" image="demo.gif"/>
+   			</TableItem.cells>
+  		</TableItem>
+	</Table>
+</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/demo.gif b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/demo.gif
similarity index 100%
rename from org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/demo.gif
rename to tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/binding/demo.gif
Binary files differ
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/demo.gif b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/demo.gif
similarity index 100%
rename from org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/demo.gif
rename to tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/demo.gif
Binary files differ
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_ColumnDynamicEditor.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_ColumnDynamicEditor.java
new file mode 100644
index 0000000..1665071
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_ColumnDynamicEditor.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.table.editor;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Table_ColumnDynamicEditor {
+	public static void main(String[] args) {
+		URL url = Table_ColumnDynamicEditor.class
+				.getResource(Table_ColumnDynamicEditor.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_ColumnDynamicEditor.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_ColumnDynamicEditor.xwt
new file mode 100644
index 0000000..74093ca
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_ColumnDynamicEditor.xwt
@@ -0,0 +1,43 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:java.lang"
+    text="Table Test">
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>
+	<Table x:style="BORDER|SINGLE|FULL_SELECTION" HeaderVisible="true" LinesVisible="true">
+		<TableColumn width="150" text="Name"> 
+		    <TableColumn.editor>
+				<TableEditor grabHorizontal= "true" dynamic="true">
+					<CCombo>
+						<CCombo.items>
+			                 <j:String>"Item1"</j:String>
+			                 <j:String>"Item2"</j:String>
+			            </CCombo.items> 
+					</CCombo>
+				</TableEditor>
+		    </TableColumn.editor>
+		</TableColumn>
+		<TableColumn width="150" text="Age"/>
+
+		<TableItem>
+			<TableItem.texts>
+				<x:Array Type="j:String">
+					<j:String>Line-Name2</j:String>
+					<j:String>Line-Age2</j:String>
+				</x:Array>
+			</TableItem.texts>
+		</TableItem>
+		<TableItem>
+			<TableItem.texts>
+				<j:String>Line-Name2</j:String>
+				<j:String>Line-Age2</j:String>
+			</TableItem.texts>	
+			<TableItem.editors>
+				<TableEditor grabHorizontal= "true" column = "0" dynamic="true">
+					<Button x:style="CHECK"/>
+				</TableEditor>
+			</TableItem.editors>
+		</TableItem>
+	</Table>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_ColumnStaticEditor.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_ColumnStaticEditor.java
new file mode 100644
index 0000000..8cf6548
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_ColumnStaticEditor.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.table.editor;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Table_ColumnStaticEditor {
+	public static void main(String[] args) {
+		URL url = Table_ColumnStaticEditor.class
+				.getResource(Table_ColumnStaticEditor.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_ColumnStaticEditor.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_ColumnStaticEditor.xwt
new file mode 100644
index 0000000..1850418
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_ColumnStaticEditor.xwt
@@ -0,0 +1,43 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:java.lang"
+    text="Table Test">
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>
+	<Table x:style="BORDER|SINGLE|FULL_SELECTION" HeaderVisible="true" LinesVisible="true">
+		<TableColumn width="150" text="Name"> 
+		    <TableColumn.editor>
+				<TableEditor grabHorizontal= "true">
+					<CCombo>
+						<CCombo.items>
+			                 <j:String>"Item1"</j:String>
+			                 <j:String>"Item2"</j:String>
+			            </CCombo.items> 
+					</CCombo>
+				</TableEditor>
+		    </TableColumn.editor>
+		</TableColumn>
+		<TableColumn width="150" text="Age"/>
+
+		<TableItem>
+			<TableItem.texts>
+				<x:Array Type="j:String">
+					<j:String>Line-Name2</j:String>
+					<j:String>Line-Age2</j:String>
+				</x:Array>
+			</TableItem.texts>
+		</TableItem>
+		<TableItem>
+			<TableItem.texts>
+				<j:String>Line-Name2</j:String>
+				<j:String>Line-Age2</j:String>
+			</TableItem.texts>	
+			<TableItem.editors>
+				<TableEditor grabHorizontal= "true" column = "0" >
+					<Button x:style="CHECK"/>
+				</TableEditor>
+			</TableItem.editors>
+		</TableItem>
+	</Table>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_DynamicEditor.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_DynamicEditor.java
new file mode 100644
index 0000000..aa72089
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_DynamicEditor.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.table.editor;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Table_DynamicEditor {
+	public static void main(String[] args) {
+		URL url = Table_DynamicEditor.class
+				.getResource(Table_DynamicEditor.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_DynamicEditor.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_DynamicEditor.xwt
new file mode 100644
index 0000000..46fc05b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_DynamicEditor.xwt
@@ -0,0 +1,42 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:java.lang"
+    text="Table Test">
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>
+	<Table x:style="BORDER|SINGLE|FULL_SELECTION" HeaderVisible="true" LinesVisible="true">
+		<TableColumn width="150" text="Name"/> 
+		<TableColumn width="150" text="Age"/>
+
+		<TableItem Name="editItem">
+			<TableItem.texts >
+				<x:Array Type="j:String">
+					<j:String>Line-Name1</j:String>
+					<j:String>Line-Age1</j:String>
+				</x:Array>
+			</TableItem.texts>
+		    <TableItem.editors>
+		    	<!-- Change 'editor' to 'editors', it seems that, we can add more than one TableEditors for a TableItem.-->
+				<TableEditor grabHorizontal= "true" column = "1" dynamic="true">
+					<CCombo>
+						<CCombo.items>
+							<x:Array Type="j:String">
+			                   <j:String>"Item1"</j:String>
+			                   <j:String>"Item2"</j:String>
+			          	    </x:Array>
+			            </CCombo.items> 
+					</CCombo>
+				</TableEditor>
+		    </TableItem.editors>
+		</TableItem>
+		<TableItem>
+			<TableItem.texts>
+				<x:Array Type="j:String">
+					<j:String>Line-Name2</j:String>
+					<j:String>Line-Age2</j:String>
+				</x:Array>
+			</TableItem.texts>	
+		</TableItem>
+	</Table>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_StaticEditor.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_StaticEditor.java
new file mode 100644
index 0000000..83ac019
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_StaticEditor.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.table.editor;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Table_StaticEditor {
+	public static void main(String[] args) {
+		URL url = Table_StaticEditor.class.getResource(Table_StaticEditor.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_StaticEditor.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_StaticEditor.xwt
new file mode 100644
index 0000000..e190bc0
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/table/editor/Table_StaticEditor.xwt
@@ -0,0 +1,58 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:java.lang"
+    text="Table Test">
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>
+	<Table x:style="BORDER|SINGLE|FULL_SELECTION" HeaderVisible="true" LinesVisible="true">
+		<TableColumn width="150" text="Name"/> 
+		<TableColumn width="150" text="Age"/>
+
+		<TableItem>
+			<TableItem.texts>
+				<x:Array Type="j:String">
+					<j:String>Line-Name1</j:String>
+					<j:String>Line-Age1</j:String>
+				</x:Array>
+			</TableItem.texts>
+		    <TableItem.editors>
+		    	<!-- Change 'editor' to 'editors', it seems that, we can add more than one TableEditors for a TableItem.-->
+				<TableEditor grabHorizontal= "true" column = "1">
+					<CCombo>
+						<CCombo.items>
+							<x:Array Type="j:String">
+			                   <j:String>"Line-Age1"</j:String>
+			                   <j:String>"Item2"</j:String>
+			          	    </x:Array>
+			            </CCombo.items> 
+					</CCombo>
+				</TableEditor>
+				<TableEditor grabHorizontal= "true" column = "0">
+					<Text />
+				</TableEditor>
+		    </TableItem.editors>
+		</TableItem>
+		<TableItem>
+			<TableItem.texts>
+				<j:String>Line-Name2</j:String>
+				<j:String>Line-Age2</j:String>
+			</TableItem.texts>	
+			<TableItem.editors>
+				<TableEditor grabHorizontal= "true" column = "1">
+					<Button x:style="CHECK"/>
+				</TableEditor>
+				<TableEditor grabHorizontal= "true" column = "0">
+					<CCombo>
+						<CCombo.items>
+							<x:Array Type="j:String">
+			                   <j:String>"Line-Age1"</j:String>
+			                   <j:String>"Item2"</j:String>
+			          	    </x:Array>
+			            </CCombo.items> 
+					</CCombo>
+				</TableEditor>
+		    </TableItem.editors>
+		</TableItem>
+	</Table>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/text/Text_Styles.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/text/Text_Styles.java
new file mode 100644
index 0000000..b3274b5
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/text/Text_Styles.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.text;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Text_Styles {
+	public static void main(String[] args) {
+		URL url = Text_Styles.class.getResource(Text_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/text/Text_Styles.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/text/Text_Styles.xwt
new file mode 100644
index 0000000..36219d1
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/text/Text_Styles.xwt
@@ -0,0 +1,10 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Label text="Text(SINGLE): "/><Text x:style="SINGLE" text="Text Sample"/>
+	<Label text="Text(MULTI): "/><Text x:style="MULTI" text="Text Sample"/>
+	<Label text="Text(PASSWORD): "/><Text x:style="PASSWORD" text="Text Sample"/>
+	<Label text="Text(SEARCH): "/><Text x:style="SEARCH" text="Text Sample"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/toolbar/ToolBar_Styles.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/toolbar/ToolBar_Styles.java
new file mode 100644
index 0000000..4a022cc
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/toolbar/ToolBar_Styles.java
@@ -0,0 +1,86 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.toolbar;
+
+import java.net.URL;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.swt.widgets.ToolItem;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTMaps;
+
+/**
+ * @author jliu
+ */
+public class ToolBar_Styles {
+	public static void main(String[] args) {
+
+		URL url = ToolBar_Styles.class.getResource(ToolBar_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	private Menu menu;
+
+	protected void handleDropDown(Event event) {
+		ToolItem toolItem = (ToolItem) event.widget;
+		Shell shell = toolItem.getParent().getShell();
+		// Create the menu if it has not already been created
+		if (menu == null) {
+			// Lazy create the menu.
+			ToolBar toolbar = ((ToolItem) toolItem).getParent();
+			int style = toolbar.getStyle()
+					& (XWTMaps.getStyle("SWT.RIGHT_TO_LEFT") | SWT.LEFT_TO_RIGHT);
+			menu = new Menu(shell, style | SWT.POP_UP);
+			for (int i = 0; i < 9; ++i) {
+				final String text = "Drop Down " + i;
+				if (text.length() != 0) {
+					MenuItem menuItem = new MenuItem(menu, SWT.NONE);
+					menuItem.setText(text);
+				} else {
+					new MenuItem(menu, SWT.SEPARATOR);
+				}
+			}
+		}
+
+		/**
+		 * A selection event will be fired when a drop down tool item is
+		 * selected in the main area and in the drop down arrow. Examine the
+		 * event detail to determine where the widget was selected.
+		 */
+		if (event.detail == SWT.ARROW) {
+			/*
+			 * The drop down arrow was selected.
+			 */
+			// Position the menu below and vertically aligned with the the drop
+			// down tool button.
+			final ToolBar toolBar = toolItem.getParent();
+
+			Point point = toolBar.toDisplay(new Point(event.x, event.y));
+			menu.setLocation(point.x, point.y);
+			menu.setVisible(true);
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/toolbar/ToolBar_Styles.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/toolbar/ToolBar_Styles.xwt
new file mode 100644
index 0000000..7ec6632
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/toolbar/ToolBar_Styles.xwt
@@ -0,0 +1,81 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    x:Class="org.eclipse.xwt.tests.controls.toolbar.ToolBar_Styles"
+    xmlns:j="clr-namespace:java.lang"
+    text="ToolBar Styles Test">
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>
+	<Group text="Image ToolBar">
+		<Group.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"/>
+		</Group.layoutData>
+		<Group.layout>
+			<GridLayout/>
+		</Group.layout>
+		<ToolBar x:style="HORIZONTAL |SHADOW_OUT">
+			<ToolItem x:style="PUSH" Image="openFolder.gif" tooltipText="SWT.PUSH"/>
+			<ToolItem x:style="PUSH" Image="openFolder.gif" tooltipText="SWT.PUSH"/>
+			<ToolItem x:style="RADIO" selection="true" Image="closedFolder.gif" tooltipText="SWT.RADIO"/>
+			<ToolItem x:style="RADIO" Image="closedFolder.gif" tooltipText="SWT.RADIO"/>
+			<ToolItem x:style="CHECK" selection="true"  Image="target.gif" tooltipText="SWT.CHECK"/>
+			<ToolItem x:style="RADIO" Image="closedFolder.gif" tooltipText="SWT.RADIO"/>
+			<ToolItem x:style="RADIO" selection="true" Image="closedFolder.gif" tooltipText="SWT.RADIO"/>
+			<ToolItem x:style="SEPARATOR" tooltipText="SWT.SEPARATOR"/>
+			<ToolItem x:Name="imageItem" x:style="DROP_DOWN" Image="target.gif" tooltipText="SWT.DROP_DOWN" SelectionEvent="handleDropDown"/>
+		</ToolBar>
+	</Group>
+	<Group text="Text ToolBar">
+		<Group.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"/>
+		</Group.layoutData>
+		<Group.layout>
+			<GridLayout/>
+		</Group.layout>
+		<ToolBar x:style="HORIZONTAL | FLAT">
+			<ToolItem x:style="PUSH" text="Push" tooltipText="SWT.PUSH"/>
+			<ToolItem x:style="PUSH" text="Push" tooltipText="SWT.PUSH"/>
+			<ToolItem x:style="RADIO" selection="true" text="Radio" tooltipText="SWT.RADIO"/>
+			<ToolItem x:style="RADIO" text="Radio" tooltipText="SWT.RADIO"/>
+			<ToolItem x:style="CHECK" selection="true" text="Check" tooltipText="SWT.CHECK"/>
+			<ToolItem x:style="RADIO" text="Radio" tooltipText="SWT.RADIO"/>
+			<ToolItem x:style="RADIO" selection="true" text="Radio" tooltipText="SWT.RADIO"/>
+			<ToolItem x:style="SEPARATOR" tooltipText="SWT.SEPARATOR"/>
+			<ToolItem x:Name="textItem" x:style="DROP_DOWN" text="Drop Down" tooltipText="SWT.DROP_DOWN" SelectionEvent="handleDropDown"/>
+		</ToolBar>
+	</Group>
+	<Group text="Image and Text ToolBar">
+		<Group.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"/>
+		</Group.layoutData>
+		<Group.layout>
+			<GridLayout/>
+		</Group.layout>
+		<ToolBar x:style="VERTICAL | RIGHT | FLAT">
+			<ToolItem x:style="PUSH" text="Push" Image="openFolder.gif" tooltipText="SWT.PUSH"/>
+			<ToolItem x:style="PUSH" text="Push" Image="openFolder.gif" tooltipText="SWT.PUSH"/>
+			<ToolItem x:style="RADIO" text="Radio" Image="closedFolder.gif" tooltipText="SWT.RADIO"/>
+			<ToolItem x:style="RADIO" text="Radio" Image="closedFolder.gif" tooltipText="SWT.RADIO"/>
+			<ToolItem x:style="CHECK" text="Check" Image="target.gif" tooltipText="SWT.CHECK"/>
+			<ToolItem x:style="RADIO" text="Radio" Image="closedFolder.gif" tooltipText="SWT.RADIO"/>
+			<ToolItem x:style="RADIO" text="Radio" Image="closedFolder.gif" tooltipText="SWT.RADIO"/>
+			<ToolItem x:style="SEPARATOR" tooltipText="SWT.SEPARATOR"/>
+			<ToolItem x:Name="imageTextItem" x:style="DROP_DOWN" text="Drop Down" Image="target.gif" tooltipText="SWT.DROP_DOWN" SelectionEvent="handleDropDown"/>
+			<ToolItem x:style="SEPARATOR" tooltipText="With a Combo">
+				<ToolItem.control>
+					<Combo>
+						<Combo.items>
+							<x:Array Type="j:String">
+								<j:String>0</j:String>
+								<j:String>1</j:String>
+								<j:String>2</j:String>
+								<j:String>3</j:String>
+							</x:Array>
+						</Combo.items>
+					</Combo>
+				</ToolItem.control>
+			</ToolItem>
+		</ToolBar>
+	</Group>
+</Shell>
+
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/toolbar/closedFolder.gif b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/toolbar/closedFolder.gif
similarity index 100%
rename from org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/toolbar/closedFolder.gif
rename to tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/toolbar/closedFolder.gif
Binary files differ
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/toolbar/openFolder.gif b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/toolbar/openFolder.gif
similarity index 100%
rename from org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/toolbar/openFolder.gif
rename to tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/toolbar/openFolder.gif
Binary files differ
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/toolbar/target.gif b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/toolbar/target.gif
similarity index 100%
rename from org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/toolbar/target.gif
rename to tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/toolbar/target.gif
Binary files differ
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tooltip/ToolTip_Styles.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tooltip/ToolTip_Styles.java
new file mode 100644
index 0000000..5600d5a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tooltip/ToolTip_Styles.java
@@ -0,0 +1,181 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.tooltip;
+
+import java.lang.reflect.Method;
+import java.net.URL;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.ToolTip;
+import org.eclipse.swt.widgets.Tray;
+import org.eclipse.swt.widgets.TrayItem;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.XWTMaps;
+
+/**
+ * @author jliu
+ */
+public class ToolTip_Styles {
+
+	private Button button;
+	private static ToolTip toolTip;
+	private static Tray tray;
+	private static TrayItem trayItem;
+
+	public static void main(String[] args) {
+
+		URL url = ToolTip_Styles.class.getResource(ToolTip_Styles.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void clear(Event event) {
+		if (toolTip != null && !toolTip.isDisposed()) {
+			toolTip.setVisible(false);
+			toolTip.dispose();
+		}
+		if (trayItem != null && !trayItem.isDisposed()) {
+			trayItem.dispose();
+		}
+	}
+
+	protected void showTooltip(Event event) {
+		clear(event);
+		button = (Button) event.widget;
+		int style = 0;
+		String text = "Tooltip Text";
+		String message = "ToolTip Messages";
+		boolean autoHide = false;
+		boolean showInTray = false;
+
+		// 1. Style
+		Group stypesGroup = findGroup("groupStyles");
+		if (stypesGroup != null) {
+			style = createStyle(stypesGroup);
+		}
+		// 2. Display Mode
+		Group displayGrp = findGroup("displayMode");
+		if (displayGrp != null) {
+			Control[] children = displayGrp.getChildren();
+			for (Control control : children) {
+				if (control instanceof Button) {
+					Button btn = (Button) control;
+					if ("AutoHide".equals(btn.getText())) {
+						autoHide = btn.getSelection();
+					} else if ("Show In Tray".equals(btn.getText())) {
+						showInTray = btn.getSelection();
+					}
+				}
+			}
+		}
+		// 3. Text
+		Group textGroup = findGroup("groupText");
+		if (textGroup != null) {
+			Control[] children = textGroup.getChildren();
+			for (Control control : children) {
+				if (control instanceof Text) {
+					text = ((Text) control).getText();
+				}
+			}
+		}
+		// 3. Message
+		Group messageGrp = findGroup("groupMessage");
+		if (messageGrp != null) {
+			Control[] children = messageGrp.getChildren();
+			for (Control control : children) {
+				if (control instanceof Text) {
+					message = ((Text) control).getText();
+				}
+			}
+		}
+		if (toolTip != null) {
+			toolTip.dispose();
+		}
+		toolTip = new ToolTip(button.getShell(), style);
+		toolTip.setText(text);
+		toolTip.setMessage(message);
+		toolTip.setAutoHide(autoHide);
+
+		if (showInTray) {
+			if (tray == null) {
+				tray = displayGetSystemTray(button.getDisplay());
+			}
+			if (trayItem != null) {
+				trayItem.dispose();
+			}
+			trayItem = new TrayItem(tray, SWT.NONE);
+			trayItem.setToolTip(toolTip);
+		}
+		toolTip.setVisible(true);
+	}
+
+	/**
+	 * @param stypesGroup
+	 * @return
+	 */
+	private int createStyle(Group stypesGroup) {
+		int style = 0;
+		Control[] children = stypesGroup.getChildren();
+		for (Control control : children) {
+			if (control instanceof Button) {
+				Button btn = (Button) control;
+				if (!btn.getSelection()) {
+					continue;
+				}
+				String text = btn.getText();
+				if ("SWT.BALLOON".equals(text)) {
+					style |= XWTMaps.getStyle("SWT.BALLOON");
+				} else if ("SWT.ICON_INFORMATION".equals(text)) {
+					style |= SWT.ICON_INFORMATION;
+				} else if ("SWT.ICON_ERROR".equals(text)) {
+					style |= SWT.ICON_ERROR;
+				} else if ("SWT.ICON_WARNING".equals(text)) {
+					style |= SWT.ICON_WARNING;
+				}
+			}
+		}
+		return style;
+	}
+
+	private Group findGroup(String grpName) {
+		if (button == null) {
+			return null;
+		}
+		return (Group) XWT.findElementByName(button, grpName);
+	}
+
+	private Tray displayGetSystemTray(Display display) {
+		if(SWT.getPlatform()!="rap") {
+			try {
+				Method m = Display.class.getDeclaredMethod("getSystemTray");
+				return (Tray)m.invoke(display);
+			} catch (Exception e) {
+				assert false;
+			}
+		}
+		return null;
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tooltip/ToolTip_Styles.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tooltip/ToolTip_Styles.xwt
new file mode 100644
index 0000000..bc61789
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tooltip/ToolTip_Styles.xwt
@@ -0,0 +1,38 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    x:Class="org.eclipse.xwt.tests.controls.tooltip.ToolTip_Styles">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Group x:Name="groupStyles" text="Styles">
+	    <Group.layout>
+			<GridLayout numColumns="1"/>
+	    </Group.layout>
+		<Button x:style="CHECK" text="SWT.BALLOON"/>
+		<Button x:style="RADIO" text="SWT.ICON_ERROR"/>
+        <Button x:style="RADIO" text="SWT.ICON_INFORMATION"/>
+        <Button x:style="RADIO" text="SWT.ICON_WARNING"/>
+        <Button x:style="RADIO" text="No Icon"/>
+	</Group>
+	<Group x:Name="displayMode" text="Display Mode">
+	    <Group.layout>
+			<GridLayout numColumns="1"/>
+	    </Group.layout>
+		<Button x:style="CHECK" text="AutoHide"/>
+		<Button x:style="CHECK" text="Show In Tray"/>
+	</Group>
+	<Group x:Name="groupText" text="Text">
+	    <Group.layout>
+			<GridLayout numColumns="2"/>
+	    </Group.layout>
+		<Label text="text: "/><Text x:style="BORDER" text="Default text of tooltip."/>
+	</Group>
+	<Group x:Name="groupMessage" text="Message">
+	    <Group.layout>
+			<GridLayout numColumns="2"/>
+	    </Group.layout>
+		<Label text="message: "/><Text x:style="BORDER" text="Default message of tooltip."/>
+	</Group>
+	<Button text="Show Tooltip" SelectionEvent="showTooltip"/>
+	<Button text="Clear" SelectionEvent="clear"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/TreeTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/TreeTests.java
new file mode 100644
index 0000000..2b6a9cd
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/TreeTests.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.tree;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class TreeTests extends XWTTestCase {
+
+	public void testTree() throws Exception {
+		URL url = TreeTests.class.getResource(Tree_Expanded.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TreeItem");
+				assertTrue(element instanceof TreeItem);
+				TreeItem treeItem = (TreeItem) element;
+				assertTrue(treeItem.getItemCount() == 2);
+			}
+		});
+	}
+	
+	public void testTree_Columns() throws Exception {
+		URL url = TreeTests.class.getResource(Tree_Columns.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TreeItem");
+				assertTrue(element instanceof TreeItem);
+				TreeItem treeItem = (TreeItem) element;
+				assertTrue(treeItem.getItemCount() == 2);
+				assertEquals("1", treeItem.getText(2));
+				assertEquals("classes", treeItem.getText(1));
+			}
+		});
+	}
+
+
+	public void testTree_Expanded() throws Exception {
+		URL url = TreeTests.class.getResource(Tree_Expanded.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TreeItem");
+				assertTrue(element instanceof TreeItem);
+				TreeItem treeItem = (TreeItem) element;
+				assertTrue(treeItem.getExpanded());
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Columns.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Columns.java
new file mode 100644
index 0000000..cb3b57d
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Columns.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.tree;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Tree_Columns {
+	public static void main(String[] args) {
+
+		URL url = Tree_Columns.class.getResource(Tree_Columns.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Columns.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Columns.xwt
new file mode 100644
index 0000000..c8d4347
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Columns.xwt
@@ -0,0 +1,77 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:java.lang"
+    text="Tree Test">
+	<Shell.layout>
+		<GridLayout/>
+	</Shell.layout>
+	<Tree x:style="BORDER | SINGLE | FULL_SELECTION | CHECK" 
+		HeaderVisible="true" LinesVisible="true">
+		<Tree.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" 
+			          grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>
+		</Tree.layoutData>
+		<TreeColumn text="Node" width="100" tooltipText="Node column" image="closedFolder.gif"/>
+		<TreeColumn text="Type" width="100" tooltipText="Type column"/>
+		<TreeColumn text="Size" width="100" tooltipText="Size column"/>
+		<TreeItem name="TreeItem" image="closedFolder.gif">
+			<TreeItem.texts>
+				<x:Array Type="j:String">
+					<j:String>Node1</j:String>
+					<j:String>classes</j:String>
+					<j:String>1</j:String>
+				</x:Array>
+			</TreeItem.texts>
+			<TreeItem>
+				<TreeItem.texts>
+						<j:String>Node11</j:String>
+						<j:String>classes</j:String>
+						<j:String>11</j:String>
+				</TreeItem.texts>
+				<TreeItem>
+					<TreeItem.texts>
+						<x:Array Type="j:String">
+							<j:String>Node111</j:String>
+							<j:String>classes</j:String>
+							<j:String>111</j:String>
+						</x:Array>
+					</TreeItem.texts>
+				</TreeItem >
+				<TreeItem>
+					<TreeItem.texts>
+							<j:String>Node112</j:String>
+							<j:String>classes</j:String>
+							<j:String>112</j:String>
+					</TreeItem.texts>
+				</TreeItem >
+			</TreeItem >
+			<TreeItem text="Node12">
+				<TreeItem text="Node121"/>
+				<TreeItem text="Node122"/>  
+			</TreeItem >
+		</TreeItem>
+		<TreeItem image="openFolder.gif">
+			<TreeItem.texts>
+					<j:String>Node2</j:String>
+					<j:String>databases</j:String>
+					<j:String>2</j:String>
+			</TreeItem.texts>
+			<TreeItem>
+				<TreeItem.texts>
+					<x:Array Type="j:String">
+						<j:String>Node21</j:String>
+						<j:String>databases</j:String>
+						<j:String>21</j:String>
+					</x:Array>
+				</TreeItem.texts>
+				<TreeItem>
+					<TreeItem.texts>
+							<j:String>Node211</j:String>
+							<j:String>databases</j:String>
+							<j:String>211</j:String>
+					</TreeItem.texts>
+				</TreeItem >
+			</TreeItem >
+		</TreeItem>
+	</Tree>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Expanded.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Expanded.java
new file mode 100644
index 0000000..ea1ccdb
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Expanded.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.tree;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Tree_Expanded {
+	public static void main(String[] args) {
+
+		URL url = Tree_Expanded.class.getResource(Tree_Expanded.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Expanded.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Expanded.xwt
new file mode 100644
index 0000000..d0d6752
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Expanded.xwt
@@ -0,0 +1,32 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    text="Tree Test">
+	<Shell.layout>
+		<GridLayout/>
+	</Shell.layout>
+	<Tree x:style="BORDER | SINGLE | FULL_SELECTION | CHECK">
+		<Tree.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" 
+			          grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>
+		</Tree.layoutData>
+		<TreeItem name="TreeItem" text="Node1" expanded="true"
+			image="closedFolder.gif">
+			<TreeItem text="Node11">
+				<TreeItem text="Node111"/>
+			</TreeItem >
+			<TreeItem text="Node12">
+				<TreeItem text="Node121"/>
+				<TreeItem text="Node122"/>  
+			</TreeItem >
+		</TreeItem>
+		<TreeItem text="Node2" image="openFolder.gif">
+			<TreeItem text="Node21">
+				<TreeItem text="Node211"/> 
+			</TreeItem >
+			<TreeItem text="Node22">
+				<TreeItem text="Node221"/>
+				<TreeItem text="Node222"/>  
+			</TreeItem >
+		</TreeItem>
+	</Tree>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Test.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Test.java
new file mode 100644
index 0000000..36407d5
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Test.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.tree;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Tree_Test {
+	public static void main(String[] args) {
+
+		URL url = Tree_Test.class.getResource(Tree_Test.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Test.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Test.xwt
new file mode 100644
index 0000000..84caf92
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/Tree_Test.xwt
@@ -0,0 +1,31 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    text="Tree Test">
+	<Shell.layout>
+		<GridLayout/>
+	</Shell.layout>
+	<Tree x:style="BORDER | SINGLE | FULL_SELECTION | CHECK">
+		<Tree.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" 
+			          grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>
+		</Tree.layoutData>
+		<TreeItem name="TreeItem" text="Node1" image="closedFolder.gif">
+			<TreeItem text="Node11">
+				<TreeItem text="Node111"/> 
+			</TreeItem >
+			<TreeItem text="Node12">
+				<TreeItem text="Node121"/>
+				<TreeItem text="Node122"/>  
+			</TreeItem >
+		</TreeItem>
+		<TreeItem text="Node2" image="openFolder.gif">
+			<TreeItem text="Node21">
+				<TreeItem text="Node211"/> 
+			</TreeItem >
+			<TreeItem text="Node22">
+				<TreeItem text="Node221"/>
+				<TreeItem text="Node222"/>  
+			</TreeItem >
+		</TreeItem>
+	</Tree>
+</Shell>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/closedFolder.gif b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/closedFolder.gif
similarity index 100%
rename from org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/closedFolder.gif
rename to tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/closedFolder.gif
Binary files differ
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/openFolder.gif b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/openFolder.gif
similarity index 100%
rename from org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/openFolder.gif
rename to tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/tree/openFolder.gif
Binary files differ
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/Control_Size.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/Control_Size.java
new file mode 100644
index 0000000..4470701
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/Control_Size.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.uiresource;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Control_Size {
+	public static void main(String[] args) {
+		URL url = Control_Size.class.getResource(Control_Size.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/Control_Size.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/Control_Size.xwt
new file mode 100644
index 0000000..baf1954
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/Control_Size.xwt
@@ -0,0 +1,8 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	text="Control Size Test">
+	<Label name="targetLabel" x:style="BORDER" text="Label Size(100, 40)" Size="100, 40">
+	</Label>
+	<Button name="targetButton" text="Button Size(200, 200)" Size="200, 200">
+	</Button>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/UIResourceTestSuite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/UIResourceTestSuite.java
new file mode 100644
index 0000000..c33f87c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/UIResourceTestSuite.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.uiresource;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.eclipse.xwt.tests.controls.button.ButtonTests;
+import org.eclipse.xwt.tests.controls.ccombo.CComboTests;
+import org.eclipse.xwt.tests.controls.combo.ComboTests;
+import org.eclipse.xwt.tests.controls.shell.ShellTests;
+import org.eclipse.xwt.tests.controls.tree.TreeTests;
+
+public class UIResourceTestSuite extends TestSuite {
+	public static final Test suite() {
+		return new UIResourceTestSuite();
+	}
+
+	public UIResourceTestSuite() {
+		addTest(new TestSuite(UIResourceTests.class));
+		addTest(new TestSuite(ButtonTests.class));
+		addTest(new TestSuite(ComboTests.class));
+		addTest(new TestSuite(CComboTests.class));
+		addTest(new TestSuite(ShellTests.class));
+		addTest(new TestSuite(TreeTests.class));
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/UIResourceTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/UIResourceTests.java
new file mode 100644
index 0000000..04055c6
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/UIResourceTests.java
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.uiresource;
+
+import java.net.URL;
+
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.IUIResource;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class UIResourceTests extends XWTTestCase {
+	public void testControlSize() throws Exception {
+		URL url = UIResourceTests.class.getResource(Control_Size.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		IUIResource pattern = XWT.loadAsResource(url);
+		runTest(pattern, new Runnable() {
+			public void run() {
+				checkLabel();
+				checkButton();
+			}
+
+			public void checkLabel() {
+				Object element = XWT.findElementByName(root, "targetLabel");
+				assertTrue(element instanceof Label);
+				Label label = (Label) element;
+				Point size = label.getSize();
+				assertTrue(size.x == 100 && size.y == 40);
+			}
+
+			public void checkButton() {
+				Object element = XWT.findElementByName(root, "targetButton");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				Point size = button.getSize();
+				assertTrue(size.x == 200 && size.y == 200);
+			}
+		});
+		
+		runTest(pattern, new Runnable() {
+			public void run() {
+				checkLabel();
+				checkButton();
+			}
+
+			public void checkLabel() {
+				Object element = XWT.findElementByName(root, "targetLabel");
+				assertTrue(element instanceof Label);
+				Label label = (Label) element;
+				Point size = label.getSize();
+				assertTrue(size.x == 100 && size.y == 40);
+			}
+
+			public void checkButton() {
+				Object element = XWT.findElementByName(root, "targetButton");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				Point size = button.getSize();
+				assertTrue(size.x == 200 && size.y == 200);
+			}
+		});
+	}
+}
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/backgroundImage.png b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/backgroundImage.png
similarity index 100%
rename from org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/backgroundImage.png
rename to tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/backgroundImage.png
Binary files differ
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/demo.gif b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/demo.gif
similarity index 100%
rename from org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/demo.gif
rename to tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/uiresource/demo.gif
Binary files differ
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/xwt/UserComposite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/xwt/UserComposite.java
new file mode 100644
index 0000000..e9c34e2
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/xwt/UserComposite.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.controls.xwt;
+
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.IXWTLoader;
+import org.eclipse.xwt.XWT;
+
+public class UserComposite extends Composite {
+
+	public UserComposite(Composite parent, int style) {
+		super(parent, style);
+
+		setLayout(new FillLayout());
+		
+		// load XWT
+		String name = UserComposite.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX;
+		try {
+			URL url = UserComposite.class.getResource(name);
+			Map<String, Object> options = new HashMap<String, Object>();
+			options.put(IXWTLoader.CLASS_PROPERTY, this);
+			options.put(IXWTLoader.CONTAINER_PROPERTY, this);
+			XWT.loadWithOptions(url, options);
+		} catch (Throwable e) {
+			throw new Error("Unable to load " + name, e);
+		}
+	}
+
+	public static void main(String[] args) {
+		Display display = new Display();
+		Shell shell = new Shell(display);
+		shell.setLayout(new FillLayout());
+		UserComposite composite = new UserComposite(shell, SWT.NONE);
+		shell.setSize(450, 200);
+		shell.open();
+		while (!shell.isDisposed()) {
+			if (!display.readAndDispatch()) {
+				// If no more entries in event queue
+				display.sleep();
+			}
+		}
+		display.dispose();
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/xwt/UserComposite.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/xwt/UserComposite.xwt
new file mode 100644
index 0000000..6cb0b91
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/controls/xwt/UserComposite.xwt
@@ -0,0 +1,8 @@
+<Composite
+	xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt">
+   <Composite.layout>
+      <RowLayout/>
+   </Composite.layout>
+   <Button text="Double click me!"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/Address.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/Address.java
new file mode 100644
index 0000000..d863608
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/Address.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding;
+
+public class Address extends BeanObject {
+	private String city = "Paris";
+
+	public void setCity(String city) {
+		String oldValue = this.city;
+		this.city = city;
+		changeSupport.firePropertyChange("city", oldValue, city);
+	}
+
+	public String getCity() {
+		return city;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/BeanObject.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/BeanObject.java
new file mode 100644
index 0000000..7194b29
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/BeanObject.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+
+public class BeanObject {
+	protected PropertyChangeSupport changeSupport = new PropertyChangeSupport(
+			this);
+
+	public void addPropertyChangeListener(String propertyName,
+			PropertyChangeListener listener) {
+		changeSupport.addPropertyChangeListener(propertyName, listener);
+	}
+
+	public void removePropertyChangeListener(String propertyName,
+			PropertyChangeListener listener) {
+		changeSupport.removePropertyChangeListener(propertyName, listener);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/BindingTestSuite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/BindingTestSuite.java
new file mode 100644
index 0000000..ce4d4ed
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/BindingTestSuite.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.eclipse.xwt.tests.databinding.bindcontrol.ControlBindingTests;
+import org.eclipse.xwt.tests.databinding.multibinding.MultiBindingTests;
+import org.eclipse.xwt.tests.databinding.pojo.PojoDataBindingTests;
+import org.eclipse.xwt.tests.databinding.pojo.attribute.PojoAttrDataBindingTests;
+import org.eclipse.xwt.tests.databinding.self.DataBindingSelfTests;
+import org.eclipse.xwt.tests.databinding.status.ValidationStatusTests;
+import org.eclipse.xwt.tests.databinding.validation.ValidationsTests;
+
+public class BindingTestSuite extends TestSuite {
+	public static final Test suite() {
+		return new BindingTestSuite();
+	}
+
+	public BindingTestSuite() {
+		addTest(new TestSuite(DataBindingTests.class));
+		addTest(new TestSuite(PojoDataBindingTests.class));
+		addTest(new TestSuite(PojoAttrDataBindingTests.class));
+		addTest(new TestSuite(ControlBindingTests.class));
+		addTest(new TestSuite(MultiBindingTests.class));
+		addTest(new TestSuite(DataBindingSelfTests.class));
+		addTest(new TestSuite(ValidationsTests.class));
+		addTest(new TestSuite(ValidationStatusTests.class));
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/Company.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/Company.java
new file mode 100644
index 0000000..5473f58
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/Company.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding;
+
+public class Company extends BeanObject {
+	private String name = "toto";
+	private Person manager = new Person();
+
+	public Person getManager() {
+		return manager;
+	}
+
+	public void setManager(Person manager) {
+		Person oldValue = this.manager;
+		this.manager = manager;
+		changeSupport.firePropertyChange("manager", oldValue, manager);
+	}
+
+	public Company() {
+		manager.setName("Julien");
+	}
+
+	public void setName(String value) {
+		String oldValue = this.name;
+		this.name = value;
+		changeSupport.firePropertyChange("name", oldValue, value);
+	}
+
+	public String getName() {
+		return name;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/Country.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/Country.java
new file mode 100644
index 0000000..82fa7d3
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/Country.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding;
+
+public enum Country {
+	FR, USA, CN;
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBinding.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBinding.java
new file mode 100644
index 0000000..318af9b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBinding.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class DataBinding {
+	public static void main(String[] args) {
+
+		URL url = DataBinding.class.getResource(DataBinding.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBinding.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBinding.xwt
new file mode 100644
index 0000000..8bf1f0e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBinding.xwt
@@ -0,0 +1,27 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding"
+	Size="400, 300"
+	DataContext="{StaticResource myData}">
+	<Shell.layout>
+		<GridLayout numColumns="3"/>
+	</Shell.layout>
+	
+	<Shell.Resources>
+		<y:Person x:Key="myData"/>
+	</Shell.Resources>
+	
+	<Label text="Name"/>
+	<Text x:style="BORDER" text="{Binding Path=age}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Label text="{Binding Path=age}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter.java
new file mode 100644
index 0000000..9e5001d
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class DataBindingConverter {
+	public static void main(String[] args) {
+
+		URL url = DataBindingConverter.class
+				.getResource(DataBindingConverter.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter.xwt
new file mode 100644
index 0000000..2c50768
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter.xwt
@@ -0,0 +1,27 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding"
+	Size="400, 300"
+	DataContext="{StaticResource myData}">
+	<Shell.layout>
+		<GridLayout numColumns="3"/>
+	</Shell.layout>
+	
+	<Shell.Resources>
+		<y:Person x:Key="myData"/>
+	</Shell.Resources>
+	
+	<Label text="Name"/>
+	<Text x:style="BORDER" text="{Binding Path=name}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Label text="{Binding Path=name,converter=y:MyConverter}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter_Element.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter_Element.java
new file mode 100644
index 0000000..754f669
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter_Element.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class DataBindingConverter_Element {
+	public static void main(String[] args) {
+
+		URL url = DataBindingConverter_Element.class
+				.getResource(DataBindingConverter_Element.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter_Element.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter_Element.xwt
new file mode 100644
index 0000000..30a3b4a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter_Element.xwt
@@ -0,0 +1,34 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding"
+	Size="400, 300"
+	DataContext="{StaticResource myData}">
+	<Shell.layout>
+		<GridLayout numColumns="3"/>
+	</Shell.layout>
+	
+	<Shell.Resources>
+		<y:Person x:Key="myData"/>
+	</Shell.Resources>
+	
+	<Label text="Name"/>
+	<Text x:style="BORDER" text="{Binding Path=name}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Label>
+		<Label.text>
+		   <Binding path="name">
+		   	  <Binding.converter>
+		   	  	  <y:MyConverter/>
+		   	  </Binding.converter>
+		   </Binding>
+	    </Label.text>
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter_StaticResource.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter_StaticResource.java
new file mode 100644
index 0000000..8ff6810
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter_StaticResource.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class DataBindingConverter_StaticResource {
+	public static void main(String[] args) {
+
+		URL url = DataBindingConverter_StaticResource.class
+				.getResource(DataBindingConverter_StaticResource.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter_StaticResource.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter_StaticResource.xwt
new file mode 100644
index 0000000..330a262
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingConverter_StaticResource.xwt
@@ -0,0 +1,28 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding"
+	Size="400, 300"
+	DataContext="{StaticResource myData}">
+	<Shell.layout>
+		<GridLayout numColumns="3"/>
+	</Shell.layout>
+	
+	<Shell.Resources>
+		<y:Person x:Key="myData"/>
+		<y:MyConverter x:Key="myConverter"/>
+	</Shell.Resources>
+	
+	<Label text="Name"/>
+	<Text x:style="BORDER" text="{Binding Path=name}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Label text="{Binding Path=name,converter={StaticResource myConverter}}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingPath.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingPath.java
new file mode 100644
index 0000000..133a482
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingPath.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class DataBindingPath {
+	public static void main(String[] args) {
+
+		URL url = DataBindingPath.class.getResource(DataBindingPath.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void onNew(Event event) {
+		Shell shell = (Shell) XWT.findElementByName(event.widget, "Root");
+		Company company = (Company) XWT.getDataContext(shell);
+		Person person = new Person();
+		person.setName("New Manager1");
+		person.getAddress().setCity("ShenZhen");
+		company.setManager(person);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingPath.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingPath.xwt
new file mode 100644
index 0000000..b3e19d4
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingPath.xwt
@@ -0,0 +1,48 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding"
+	x:Class="org.eclipse.xwt.tests.databinding.DataBindingPath"
+	Size="400, 300"
+	x:Name="Root"
+	DataContext="{StaticResource myData}">
+	<Shell.layout>
+		<GridLayout numColumns="3"/>
+	</Shell.layout>
+	
+	<Shell.Resources>
+		<y:Company x:Key="myData"/>
+	</Shell.Resources>
+	
+	<Label text="Name"/>
+	<Text Name="ManagerCity" x:style="BORDER" text="{Binding Path=manager.address.city}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Label text="{Binding Path=manager.name}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+	<Text x:style="BORDER" text="{Binding Path=manager.age}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Button x:style="CHECK" selection="{Binding Path=manager.maried}" text="Maried">
+		<Button.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Button.layoutData>
+	</Button>
+	<Combo text="{Binding Path=manager.nationality}">
+		<Combo.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Combo.layoutData>
+	</Combo>
+	<Button Name="Button" Text="New Manager" SelectionEvent="onNew"/>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingTests.java
new file mode 100644
index 0000000..f4f6e41
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBindingTests.java
@@ -0,0 +1,121 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class DataBindingTests extends XWTTestCase {
+
+	public void testDataBindingPath() throws Exception {
+		URL url = DataBindingTests.class.getResource(DataBindingPath.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Object element = XWT.findElementByName(root, "Button");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				selectButton(button);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Object element = XWT.findElementByName(root, "ManagerCity");
+				assertTrue(element instanceof Text);
+				Text text = (Text) element;
+				assertEquals(text.getText(), "ShenZhen");
+			}
+		});
+	}
+
+	public void testDataBindingPath_UpdateSourceTrigger() throws Exception {
+		URL url = DataBindingTests.class
+				.getResource(DataBinding_UpdateSourceTrigger.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Object input = XWT.findElementByName(root, "inputText");
+				Object target = XWT.findElementByName(root, "targetText");
+				assertTrue(input instanceof Text);
+				Text inputText = (Text) input;
+				assertTrue(target instanceof Text);
+				inputText.setText("new value");
+				Text targetText = (Text) target;
+				// setFocus() doesn't work on Mac OS 64 Bits cocoa
+				setFocusOut(inputText);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Object target = XWT.findElementByName(root, "targetText");
+				assertTrue(target instanceof Text);
+				Text targetText = (Text) target;
+				assertEquals("new value", targetText.getText());
+			}
+		});
+	}
+
+	public void testDataBindingPath_UpdateSourceTrigger_2() throws Exception {
+		URL url = DataBindingTests.class
+				.getResource(DataBinding_UpdateSourceTrigger.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Object input = XWT.findElementByName(root, "inputText");
+				Object target = XWT.findElementByName(root, "targetText");
+				assertTrue(input instanceof Text);
+				Text inputText = (Text) input;
+				assertTrue(target instanceof Text);
+				Text targetText = (Text) target;
+				inputText.setText("new value");
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Object target = XWT.findElementByName(root, "targetText");
+				assertTrue(target instanceof Text);
+				Text targetText = (Text) target;
+				assertEquals(targetText.getText(), "toto");
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBinding_UpdateSourceTrigger.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBinding_UpdateSourceTrigger.java
new file mode 100644
index 0000000..a6f3178
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBinding_UpdateSourceTrigger.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class DataBinding_UpdateSourceTrigger {
+	public static void main(String[] args) {
+
+		URL url = DataBinding_UpdateSourceTrigger.class
+				.getResource(DataBinding_UpdateSourceTrigger.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBinding_UpdateSourceTrigger.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBinding_UpdateSourceTrigger.xwt
new file mode 100644
index 0000000..079f9e8
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/DataBinding_UpdateSourceTrigger.xwt
@@ -0,0 +1,27 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding"
+	Size="400, 300"
+	DataContext="{StaticResource myData}">
+	<Shell.layout>
+		<GridLayout numColumns="3"/>
+	</Shell.layout>
+	
+	<Shell.Resources>
+		<y:Person x:Key="myData"/>
+	</Shell.Resources>
+	
+	<Label text="Name"/>
+	<Text name="inputText" x:style="BORDER" text="{Binding Path=name,UpdateSourceTrigger=LostFocus}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Text name="targetText" text="{Binding Path=name}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/MyConverter.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/MyConverter.java
new file mode 100644
index 0000000..17e8457
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/MyConverter.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding;
+
+import org.eclipse.xwt.IValueConverter;
+
+public class MyConverter implements IValueConverter {
+
+	public Object convertBack(Object value) {
+		throw new UnsupportedOperationException();
+	}
+
+	public Object convert(Object fromObject) {
+		return "-> " + fromObject;
+	}
+
+	public Object getFromType() {
+		return String.class;
+	}
+
+	public Object getToType() {
+		return String.class;
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/Person.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/Person.java
new file mode 100644
index 0000000..6a70b1e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/Person.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding;
+
+public class Person extends BeanObject {
+	private String name = "toto";
+	private int age = 10;
+	private boolean maried = true;
+	private Country nationality = Country.FR;
+	private Address address;
+
+	public void setMaried(boolean maried) {
+		boolean oldValue = this.maried;
+		this.maried = maried;
+		changeSupport.firePropertyChange("maried", oldValue, maried);
+	}
+
+	public Country getNationality() {
+		return nationality;
+	}
+
+	public boolean isMaried() {
+		return maried;
+	}
+
+	public int getAge() {
+		return age;
+	}
+
+	public void setAge(int age) {
+		int oldValue = this.age;
+		this.age = age;
+		changeSupport.firePropertyChange("age", oldValue, age);
+	}
+
+	public Person() {
+		address = new Address();
+	}
+
+	public void setName(String name) {
+		String oldValue = this.name;
+		this.name = name;
+		changeSupport.firePropertyChange("name", oldValue, name);
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public Address getAddress() {
+		return address;
+	}
+
+	public void setAddress(Address address) {
+		Address oldValue = this.address;
+		this.address = address;
+		changeSupport.firePropertyChange("address", oldValue, address);
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindButton.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindButton.java
new file mode 100644
index 0000000..974b92f
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindButton.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.bindcontrol;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class BindButton {
+	public static void main(String[] args) {
+
+		URL url = BindButton.class.getResource(BindButton.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindButton.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindButton.xwt
new file mode 100644
index 0000000..2378224
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindButton.xwt
@@ -0,0 +1,24 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding" Size="400, 300">
+	<Shell.layout>
+		<GridLayout numColumns="2" />
+	</Shell.layout>
+	<Button x:Style="CHECK" x:Name="theTextBox" Text="Hello" enabled="true" visible="true"
+		background="COLOR_CYAN" foreground="COLOR_BLACK" font="3">
+		<Button.layoutData>
+			<GridData horizontalAlignment="FILL"
+				grabExcessHorizontalSpace="true" />
+		</Button.layoutData>
+	</Button>
+	<Button x:style="CHECK" Text="Hello Clone"
+		Selection="{Binding ElementName=theTextBox, Path=Selection}"
+		enabled="{Binding ElementName=theTextBox, Path=enabled}"
+		background="{Binding ElementName=theTextBox,Path=background}" foreground="{Binding ElementName=theTextBox,Path=foreground}"
+		font="{Binding ElementName=theTextBox,Path=font}">
+
+		<Button.layoutData>
+			<GridData horizontalAlignment="FILL"
+				grabExcessHorizontalSpace="true" />
+		</Button.layoutData>
+	</Button>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindControl.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindControl.java
new file mode 100644
index 0000000..c33f08d
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindControl.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.bindcontrol;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class BindControl {
+	public static void main(String[] args) {
+
+		URL url = BindControl.class.getResource(BindControl.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindControl.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindControl.xwt
new file mode 100644
index 0000000..cdab4f9
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindControl.xwt
@@ -0,0 +1,63 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding" xmlns:j="clr-namespace:java.lang">
+	<Shell.layout>
+		<GridLayout numColumns="2" />
+	</Shell.layout>
+	<!-- Selection property -->
+	<Button x:Style="CHECK" x:Name="StateBox" Text="Selection State"
+		enabled="true" visible="true">
+	</Button>
+	<Button x:style="CHECK" Text="{Binding ElementName=StateBox,Path=Text}"
+		Selection="{Binding ElementName=StateBox, Path=Selection}">
+	</Button>
+	<!-- Text property -->
+	<Text x:Style="BORDER" name="Message" text="Text Binding">
+	</Text>
+	<Text x:Style="BORDER" text="{Binding ElementName=Message, Path=text}"
+		foreground="{Binding ElementName=Message, Path=foreground}">
+	</Text>
+	<!-- Visible property -->
+	<Button x:style="CHECK" x:Name="VisibleBox" Text="Visible"
+		Selection="false">
+	</Button>
+	<Label text="Visible Binding" visible="{Binding ElementName=VisibleBox, Path=Selection}">
+	</Label>
+	<!-- Visible property bound to text -->
+	<Text x:Name="StateText" x:Style="BORDER" Text="true">
+	</Text>
+	<Button text="bound to text" visible="{Binding ElementName=StateText, Path=Text}">
+	</Button>
+	<!-- Enable property -->
+	<Button x:style="CHECK" x:Name="EnabledBox" Text="Enabled"
+		Selection="false">
+	</Button>
+	<Button text="Push me"
+		enabled="{Binding ElementName=EnabledBox, Path=Selection}">
+	</Button>
+	<Group text="Setting">
+		<Group.layout>
+			<GridLayout numColumns="2" />
+		</Group.layout>
+		<Label text="Foreground:"></Label>
+		<Combo text="Black" Name="FGColorSelector">
+			<Combo.items>
+				<j:String>Red</j:String>
+				<j:String>Blue</j:String>
+				<j:String>Green</j:String>
+				<j:String>White</j:String>
+			</Combo.items>
+		</Combo>
+		<Label text="Background:"></Label>
+		<Combo text="White" Name="BGColorSelector">
+			<Combo.items>
+				<j:String>Red</j:String>
+				<j:String>Blue</j:String>
+				<j:String>Green</j:String>
+				<j:String>White</j:String>
+			</Combo.items>
+		</Combo>
+	</Group>
+	<Label name="ColorView" text="Color Viewer"
+		foreground="{Binding ElementName=FGColorSelector, Path=Text}" 
+		background="{Binding ElementName=BGColorSelector, Path=Text}"/>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMenuItem.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMenuItem.java
new file mode 100644
index 0000000..c4662d2
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMenuItem.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.bindcontrol;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class BindMenuItem {
+	public static void main(String[] args) {
+
+		URL url = BindMenuItem.class.getResource(BindMenuItem.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMenuItem.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMenuItem.xwt
new file mode 100644
index 0000000..4c396fd
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMenuItem.xwt
@@ -0,0 +1,32 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding" Size="400, 300">
+	<Shell.layout>
+		<GridLayout numColumns="1" />
+	</Shell.layout>
+	<Button x:Style="CHECK" x:Name="EnabledButton" Text="Enabled" enabled="true" visible="true">
+		<Button.layoutData>
+			<GridData horizontalAlignment="FILL"
+				grabExcessHorizontalSpace="true" />
+		</Button.layoutData>
+	</Button>
+	<Button x:style="CHECK" Text="Selection" Name="SelectionButton">
+		<Button.layoutData>
+			<GridData horizontalAlignment="FILL"
+				grabExcessHorizontalSpace="true" />
+		</Button.layoutData>
+	</Button>
+	<Button Text="Pop up">
+		<Button.menu>
+			<Menu x:style="POP_UP">
+				<MenuItem text="Enabled" x:style="PUSH" name="EnabledMenuItem"
+					enabled="{Binding ElementName=EnabledButton,path=selection}"/>
+				<MenuItem text="Selection" x:style="CHECK" name="SelectionMenuItem"
+					selection="{Binding ElementName=SelectionButton,path=selection}"/>
+			</Menu>
+		</Button.menu>
+		<Button.layoutData>
+			<GridData horizontalAlignment="FILL"
+				grabExcessHorizontalSpace="true" />
+		</Button.layoutData>
+	</Button>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMode.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMode.java
new file mode 100644
index 0000000..605bc1a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMode.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.bindcontrol;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class BindMode {
+	public static void main(String[] args) {
+
+		URL url = BindMode.class.getResource(BindMode.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMode.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMode.xwt
new file mode 100644
index 0000000..c2a6c37
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMode.xwt
@@ -0,0 +1,59 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding" Size="500, 400">
+	<Shell.layout>
+		<FillLayout/>
+	</Shell.layout>
+	<Group text="Binding Mode">
+	<Group.layout>
+		<GridLayout numColumns="4" />
+	</Group.layout>
+	<!-- Mode:OneWay -->
+	<Label Text="OneWay">
+	</Label>
+	<Text x:Style="BORDER" x:Name="theOneWayTextBox" Text="OneWay">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+				grabExcessHorizontalSpace="true" />
+		</Text.layoutData>
+	</Text>
+	<Label text="--&gt;"/>
+	<Text x:style="BORDER" Text="{Binding ElementName=theOneWayTextBox, Path=Text, Mode=OneWay}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+				grabExcessHorizontalSpace="true" />
+		</Text.layoutData>
+	</Text>
+	<!-- Mode:OneTime -->
+	<Label Text="OneTime">
+	</Label>
+	<Text x:Style="BORDER" x:Name="theOneTimeTextBox" Text="OneTime">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+				grabExcessHorizontalSpace="true" />
+		</Text.layoutData>
+	</Text>
+	<Label text="----"/>
+	<Text x:style="BORDER" Text="{Binding ElementName=theOneTimeTextBox, Path=Text, Mode=OneTime}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+				grabExcessHorizontalSpace="true" />
+		</Text.layoutData>
+	</Text>
+	<!-- Mode:TwoWay -->
+	<Label Text="TwoWay">
+	</Label>
+	<Text x:Style="BORDER" x:Name="theTwoWayTextBox" Text="TwoWay">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+				grabExcessHorizontalSpace="true" />
+		</Text.layoutData>
+	</Text>
+	<Label text="&lt;-&gt;"/>
+	<Text x:style="BORDER" Text="{Binding ElementName=theTwoWayTextBox, Path=Text, Mode=TwoWay}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+				grabExcessHorizontalSpace="true" />
+		</Text.layoutData>
+	</Text>
+	</Group>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMode_Element.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMode_Element.java
new file mode 100644
index 0000000..4d747b1
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMode_Element.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.bindcontrol;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class BindMode_Element {
+	public static void main(String[] args) {
+
+		URL url = BindMode_Element.class.getResource(BindMode_Element.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMode_Element.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMode_Element.xwt
new file mode 100644
index 0000000..66069ce
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindMode_Element.xwt
@@ -0,0 +1,60 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding" Size="500, 400">
+	<Shell.layout>
+		<GridLayout numColumns="3" />
+	</Shell.layout>
+	<!-- Mode:OneWay -->
+	<Label Text="Binding Mode:OneWay">
+	</Label>
+	<Text x:Style="BORDER" x:Name="theOneWayTextBox" Text="OneWay">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+				grabExcessHorizontalSpace="true" />
+		</Text.layoutData>
+	</Text>
+	<Text x:style="BORDER">
+		<Text.text>
+			<Binding ElementName="theOneWayTextBox" Path="Text" Mode="OneWay"/>
+		</Text.text>
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+				grabExcessHorizontalSpace="true" />
+		</Text.layoutData>
+	</Text>
+	<!-- Mode:OneTime -->
+	<Label Text="Binding Mode:OneTime">
+	</Label>
+	<Text x:Style="BORDER" x:Name="theOneTimeTextBox" Text="OneTime">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+				grabExcessHorizontalSpace="true" />
+		</Text.layoutData>
+	</Text>
+	<Text x:style="BORDER" >*
+		<Text.text>
+			<Binding ElementName="theOneTimeTextBox" Path="Text" Mode="OneTime"/>
+		</Text.text>
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+				grabExcessHorizontalSpace="true" />
+		</Text.layoutData>
+	</Text>
+	<!-- Mode:TwoWay -->
+	<Label Text="Binding Mode:TwoWay">
+	</Label>
+	<Text x:Style="BORDER" x:Name="theTwoWayTextBox" Text="TwoWay">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+				grabExcessHorizontalSpace="true" />
+		</Text.layoutData>
+	</Text>
+	<Text x:style="BORDER">
+		<Text.text>
+			<Binding ElementName="theTwoWayTextBox" Path="Text" Mode="Mode=TwoWay}"/>
+		</Text.text>
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+				grabExcessHorizontalSpace="true" />
+		</Text.layoutData>
+	</Text>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindSelfButton.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindSelfButton.java
new file mode 100644
index 0000000..848b7e7
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindSelfButton.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.bindcontrol;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class BindSelfButton {
+	public static void main(String[] args) {
+
+		URL url = BindSelfButton.class.getResource(BindSelfButton.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindSelfButton.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindSelfButton.xwt
new file mode 100644
index 0000000..3106b3b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/BindSelfButton.xwt
@@ -0,0 +1,12 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding" Size="400, 300">
+	<Shell.layout>
+		<GridLayout numColumns="1" />
+	</Shell.layout>
+	<Button x:Style="CHECK" x:Name="theTextBox" text="{Binding ElementName=theTextBox, Path=selection}">
+		<Button.layoutData>
+			<GridData horizontalAlignment="FILL"
+				grabExcessHorizontalSpace="true" />
+		</Button.layoutData>
+	</Button>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/ControlBinding.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/ControlBinding.java
new file mode 100644
index 0000000..bd436a9
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/ControlBinding.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.bindcontrol;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class ControlBinding {
+
+	public static void main(String[] args) {
+		URL url = ControlBinding.class.getResource(ControlBinding.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/ControlBinding.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/ControlBinding.xwt
new file mode 100644
index 0000000..4b2bed6
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/ControlBinding.xwt
@@ -0,0 +1,30 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt">
+	<Shell.layout>
+		<FormLayout />
+	</Shell.layout>
+	<Button x:Name="Button1" text="button1">
+		<Button.layoutData>
+			<FormData>
+				<FormData.top>
+					<FormAttachment numerator="20" offset="0" />
+				</FormData.top>
+				<FormData.left>
+					<FormAttachment numerator="10" offset="0" />
+				</FormData.left>
+			</FormData>
+		</Button.layoutData>
+	</Button>
+	<Button text="button2">
+		<Button.layoutData>
+			<FormData>
+				<FormData.top>
+					<FormAttachment control="{Binding ElementName=Button1}"
+						offset="0" />
+				</FormData.top>
+				<FormData.left>
+					<FormAttachment numerator="50" offset="0" />
+				</FormData.left>
+			</FormData>
+		</Button.layoutData>
+	</Button>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/ControlBindingTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/ControlBindingTests.java
new file mode 100644
index 0000000..230eaae
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/ControlBindingTests.java
@@ -0,0 +1,180 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.bindcontrol;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class ControlBindingTests extends XWTTestCase {
+
+	public void testMenuItemEnabled() throws Exception {
+		URL url = ControlBindingTests.class.getResource(BindMenuItem.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Object element = XWT.findElementByName(root, "EnabledButton");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				selectButton(button);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Object element = XWT.findElementByName(root, "EnabledMenuItem");
+				assertTrue(element instanceof MenuItem);
+				MenuItem menuItem = (MenuItem) element;
+				assertTrue(menuItem.getEnabled());
+			}
+		});
+	}
+
+	public void testMenuItemSelection() throws Exception {
+		URL url = ControlBindingTests.class.getResource(BindMenuItem.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Object element = XWT.findElementByName(root, "SelectionButton");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				selectButton(button);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Object element = XWT.findElementByName(root,
+						"SelectionMenuItem");
+				assertTrue(element instanceof MenuItem);
+				MenuItem menuItem = (MenuItem) element;
+				assertTrue(menuItem.getSelection());
+			}
+		});
+	}
+
+	public void testMenuItemUnselection() throws Exception {
+		URL url = ControlBindingTests.class.getResource(BindMenuItem.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Object element = XWT.findElementByName(root, "SelectionButton");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				selectButton(button);
+				selectButton(button, false);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Object element = XWT.findElementByName(root,
+						"SelectionMenuItem");
+				assertTrue(element instanceof MenuItem);
+				MenuItem menuItem = (MenuItem) element;
+				assertFalse(menuItem.getSelection());
+			}
+		});
+	}
+
+	public void testTwoRadios() throws Exception {
+		URL url = ControlBindingTests.class.getResource(TwoRadios.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button radio1 = (Button) XWT.findElementByName(root, "button1");
+				Button radio2 = (Button) XWT.findElementByName(root, "button2");
+				checkInitial(radio1, radio2);
+			}
+			private void checkInitial(Button radio1, Button radio2) {
+				if (!radio2.getEnabled())
+					fail("radio2 should have been enabled");
+			}
+		});
+	}
+	
+	public void testTwoRadios_Select1() throws Exception {
+		URL url = ControlBindingTests.class.getResource(TwoRadios.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button radio1 = (Button) XWT.findElementByName(root, "button1");
+				selectButton(radio1, true);
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Button radio1 = (Button) XWT.findElementByName(root, "button1");
+				Button radio2 = (Button) XWT.findElementByName(root, "button2");
+				checkSelected(radio1, radio2);
+			}
+
+			private void checkSelected(Button radio1, Button radio2) {
+				if (radio2.getEnabled())
+					fail("radio2 should have been disabled");
+			}
+		});
+	}
+
+	public void testTwoRadios_UnSelect1() throws Exception {
+		URL url = ControlBindingTests.class.getResource(TwoRadios.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button radio1 = (Button) XWT.findElementByName(root, "button1");
+				selectButton(radio1, true);
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Button radio1 = (Button) XWT.findElementByName(root, "button1");
+				selectButton(radio1, false);
+			}
+		}, 
+		new Runnable() {
+			public void run() {
+				Button radio2 = (Button) XWT.findElementByName(root, "button2");
+				if (!radio2.getEnabled())
+					fail("radio2 should have been disabled");
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/NotConverter.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/NotConverter.java
new file mode 100644
index 0000000..6b93668
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/NotConverter.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec and hceylan - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.bindcontrol;
+
+import org.eclipse.core.databinding.conversion.Converter;
+import org.eclipse.xwt.IValueConverter;
+
+/**
+ * A Converter that converts boolean values with not operator
+ *
+ * @author hceylan
+ *
+ */
+public class NotConverter extends Converter implements IValueConverter {
+
+	/**
+	 *
+	 */
+	public NotConverter() {
+		super(Boolean.class, Boolean.class);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)
+	 */
+	public Object convert(Object fromObject) {
+		return !((Boolean) fromObject);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see org.eclipse.xwt.IValueConverter#convertBack(java.lang.Object)
+	 */
+	public Object convertBack(Object value) {
+		return this.convert(value);
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/TwoRadios.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/TwoRadios.java
new file mode 100644
index 0000000..281eb18
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/TwoRadios.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec and hceylan - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.bindcontrol;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class TwoRadios {
+	public static void main(String[] args) {
+
+		URL url = TwoRadios.class.getResource(TwoRadios.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/TwoRadios.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/TwoRadios.xwt
new file mode 100644
index 0000000..c874d3e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/bindcontrol/TwoRadios.xwt
@@ -0,0 +1,19 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding" Size="400, 300"
+	xmlns:c="clr-namespace:org.eclipse.xwt.tests.databinding.bindcontrol">
+	<Shell.layout>
+		<GridLayout numColumns="2" />
+	</Shell.layout>
+
+	<Shell.Resources>
+		<c:NotConverter x:Key="notConverter" />
+	</Shell.Resources>
+
+	<Label Text="Using Public Computer" />
+	<Button x:name="button1" x:style="CHECK" />
+
+	<Label Text="Remember Login" />
+	<Button x:name="button2" x:style="CHECK"
+		enabled="{Binding elementName=button1, path=selection,
+			Converter={StaticResource notConverter}, mode=OneWay}" />
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/Company.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/Company.java
new file mode 100644
index 0000000..8b4e82d
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/Company.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.datacontext;
+
+public class Company {
+	protected String name;
+	protected Person manager;
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public Person getManager() {
+		return manager;
+	}
+
+	public void setManager(Person manager) {
+		this.manager = manager;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/CompanyView.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/CompanyView.java
new file mode 100644
index 0000000..6352823
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/CompanyView.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.datacontext;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.xwt.XWT;
+
+public class CompanyView extends Composite {
+
+	public CompanyView(Composite parent, int style) {
+		super(parent, style);
+		// TODO Auto-generated constructor stub
+	}
+
+	public static void main(String[] args) {
+		URL url = CompanyView.class.getResource("CompanyView.xwt");
+		try {
+			XWT.open(url, Factory.createCompany());
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/CompanyView.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/CompanyView.xwt
new file mode 100644
index 0000000..0ba4e3e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/CompanyView.xwt
@@ -0,0 +1,27 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	 xmlns:x="http://www.eclipse.org/xwt"
+	 xmlns:c="clr-namespace:org.eclipse.xwt.tests.databinding.datacontext"
+	 xmlns:j="clr-namespace:java.lang"
+	 x:Class="org.eclipse.xwt.tests.databinding.datacontext.CompanyView">
+	 <Composite.layout>
+		 <GridLayout  numColumns="4" />
+	 </Composite.layout>
+	 <Group text="manager">
+		 <Group.layout>
+			 <FillLayout/>
+		 </Group.layout>
+		 <c:PersonView dataContext="{Binding path=manager}"/>
+		 <Text text="{Binding path=manager.firstName}"/>
+		 <Group.layoutData>
+			 <GridData grabExcessHorizontalSpace="true" horizontalSpan="4"
+				 horizontalAlignment="GridData.FILL" widthHint="200"/>
+		 </Group.layoutData>
+	 </Group>
+	 <Label text="name"/>
+	 <Text x:Style="Border" text="{Binding path=name}">
+		 <Text.layoutData>
+			 <GridData grabExcessHorizontalSpace="true"
+				 horizontalAlignment="GridData.FILL" widthHint="100"/>
+		 </Text.layoutData>
+	 </Text>
+</Composite>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/Factory.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/Factory.java
new file mode 100644
index 0000000..7189527
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/Factory.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.datacontext;
+
+public class Factory {
+	public static Person createPerson() {
+		Person person = new Person();
+		person.setFirstName("Luc");
+		person.setLastName("GAMEL");
+		return person;
+	}
+
+	public static Company createCompany() {
+		Company company = new Company();
+		company.setName("Soyatec");
+		company.setManager(createPerson());
+		return company;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/Person.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/Person.java
new file mode 100644
index 0000000..331b1f9
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/Person.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.datacontext;
+
+public class Person {
+	protected String firstName;
+
+	public String getFirstName() {
+		return firstName;
+	}
+
+	public void setFirstName(String firstName) {
+		this.firstName = firstName;
+	}
+
+	public String getLastName() {
+		return lastName;
+	}
+
+	public void setLastName(String lastName) {
+		this.lastName = lastName;
+	}
+
+	protected String lastName;
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/PersonView.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/PersonView.java
new file mode 100644
index 0000000..180fd4f
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/PersonView.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.datacontext;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.xwt.XWT;
+
+public class PersonView extends Composite {
+
+	public PersonView(Composite parent, int style) {
+		super(parent, style);
+		// TODO Auto-generated constructor stub
+	}
+
+	
+	public static void main(String[] args) {
+		URL url = PersonView.class.getResource("Person.xwt");
+		try {
+			XWT.open(url, Factory.createPerson());
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/PersonView.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/PersonView.xwt
new file mode 100644
index 0000000..67c52b5
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datacontext/PersonView.xwt
@@ -0,0 +1,37 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	 xmlns:x="http://www.eclipse.org/xwt"
+	 xmlns:c="clr-namespace:org.eclipse.xwt.tests.databinding.datacontext"
+	 xmlns:j="clr-namespace:java.lang"
+	 x:Class="org.eclipse.xwt.tests.databinding.datacontext.PersonView">
+	 <Composite.layout>
+		 <GridLayout numColumns="4" />
+	 </Composite.layout>
+	 <Label text="firstName"/>
+	 <Text x:Style="Border" text="{Binding path=firstName, updateSourceTrigger=PropertyChanged}">
+		 <Text.layoutData>
+			 <GridData grabExcessHorizontalSpace="true"
+				 horizontalAlignment="GridData.FILL" widthHint="100"/>
+		 </Text.layoutData>
+	 </Text>
+	 <Label text="lastName"/>
+	 <Text x:Style="Border" text="{Binding path=lastName}">
+		 <Text.layoutData>
+			 <GridData grabExcessHorizontalSpace="true"
+				 horizontalAlignment="GridData.FILL" widthHint="100"/>
+		 </Text.layoutData>
+	 </Text>
+	 <Label text="firstName"/>
+	 <Text x:Style="Border" text="{Binding path=firstName}">
+		 <Text.layoutData>
+			 <GridData grabExcessHorizontalSpace="true"
+				 horizontalAlignment="GridData.FILL" widthHint="100"/>
+		 </Text.layoutData>
+	 </Text>
+	 <Label text="lastName"/>
+	 <Text x:Style="Border" text="{Binding path=lastName}">
+		 <Text.layoutData>
+			 <GridData grabExcessHorizontalSpace="true"
+				 horizontalAlignment="GridData.FILL" widthHint="100"/>
+		 </Text.layoutData>
+	 </Text>
+</Composite>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/Book.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/Book.java
new file mode 100644
index 0000000..1db84b6
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/Book.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.dataprovider;
+
+import java.util.List;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class Book {
+	private Title title;
+
+	public Title getTitle() {
+		return title;
+	}
+
+	public void setTitle(Title title) {
+		this.title = title;
+	}
+
+	public List<String> authors;
+	private int year;
+	private float price;
+
+	public int getYear() {
+		return year;
+	}
+
+	public void setYear(int year) {
+		this.year = year;
+	}
+
+	public float getPrice() {
+		return price;
+	}
+
+	public void setPrice(float price) {
+		this.price = price;
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/Bookstore.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/Bookstore.java
new file mode 100644
index 0000000..ce95288
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/Bookstore.java
@@ -0,0 +1,73 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.dataprovider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class Bookstore {
+
+	private List<Book> books = new ArrayList<>();
+
+	/**
+	 * 
+	 */
+	public Bookstore() {
+		Book b = new Book();
+		b.setTitle(new Title("en", "Everyday Italian"));
+		b.setYear(2005);
+		b.setPrice(30.00f);
+		ArrayList<String> authors = new ArrayList<>();
+		authors.add("Giada De Laurentiis");
+		b.authors = authors;
+		books.add(b);
+
+		b = new Book();
+		b.setTitle(new Title("en", "Harry Potter"));
+		b.setYear(2005);
+		b.setPrice(29.99f);
+		authors = new ArrayList<>();
+		authors.add("Neal Stephenson");
+		b.authors = authors;
+		books.add(b);
+
+		b = new Book();
+		b.setTitle(new Title("en", "Learning XML"));
+		b.setYear(2003);
+		b.setPrice(39.95f);
+		authors = new ArrayList<>();
+		authors.add("Erik T. Ray");
+		b.authors = authors;
+		books.add(b);
+	}
+
+	public Book getFirstBook() {
+		return books.get(0);
+	}
+
+	public List<Book> getAll() {
+		return books;
+	}
+
+	public Book getBook(String title) {
+		for (Book b : books) {
+			if (title.equals(b.getTitle().getText())) {
+				return b;
+			}
+		}
+		return null;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/ObjectDataProvider_Method.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/ObjectDataProvider_Method.java
new file mode 100644
index 0000000..853357b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/ObjectDataProvider_Method.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.dataprovider;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ObjectDataProvider_Method {
+	public static void main(String[] args) {
+
+		URL url = ObjectDataProvider_Method.class
+				.getResource(ObjectDataProvider_Method.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/ObjectDataProvider_Method.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/ObjectDataProvider_Method.xwt
new file mode 100644
index 0000000..7aa3b94
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/ObjectDataProvider_Method.xwt
@@ -0,0 +1,64 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding.dataprovider"
+	xmlns:j="clr-namespace:java.lang"
+	Size="400, 300">
+	<Shell.layout>
+		<GridLayout numColumns="2"/>
+	</Shell.layout>
+	
+	<Shell.Resources>
+		<ObjectDataProvider x:Key="myBook" ObjectType="{x:Type y:Bookstore}" MethodName="getBook">
+			<ObjectDataProvider.MethodParameters>
+				<j:String>Harry Potter</j:String>
+			</ObjectDataProvider.MethodParameters>
+		</ObjectDataProvider>
+	</Shell.Resources>
+
+	<Group text="Title" dataContext="{Binding Source={StaticResource myBook}, path=title}" >	
+		<Group.layout>
+			<GridLayout numColumns="2"/>
+		</Group.layout>
+		<Label text="Language"/>
+		<Text x:style="BORDER" text="{Binding path=lang}">
+			<Text.layoutData>
+				<GridData horizontalAlignment="FILL"
+	         		grabExcessHorizontalSpace="true"/>
+			</Text.layoutData>
+		</Text>
+		<Label text="Text"/>
+		<Text x:style="BORDER" text="{Binding path=text}">
+			<Text.layoutData>
+				<GridData horizontalAlignment="FILL"
+	         		grabExcessHorizontalSpace="true"/>
+			</Text.layoutData>
+		</Text>
+		<Group.layoutData>
+			<GridData horizontalAlignment="FILL"
+				horizontalSpan="2"
+         		grabExcessHorizontalSpace="true"/>
+		</Group.layoutData>
+	</Group>
+	<Label text="Price"/>
+	<Text x:style="BORDER" text="{Binding Source={StaticResource myBook}, Path=price}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Label text="{Binding Source={StaticResource myBook},path=title.lang}">
+		<Label.layoutData>
+			<GridData widthHint="100"/>
+		</Label.layoutData>
+	</Label>
+	<Label text="{Binding Source={StaticResource myBook},path=title.text}">
+		<Label.layoutData>
+			<GridData widthHint="100"/>
+		</Label.layoutData>
+	</Label>
+	<Label text="{Binding Source={StaticResource myBook}, Path=price}">
+		<Label.layoutData>
+			<GridData widthHint="100"/>
+		</Label.layoutData>
+	</Label>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/ObjectDataProvider_Test.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/ObjectDataProvider_Test.java
new file mode 100644
index 0000000..95b4e70
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/ObjectDataProvider_Test.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.dataprovider;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class ObjectDataProvider_Test {
+	public static void main(String[] args) {
+
+		URL url = ObjectDataProvider_Test.class
+				.getResource(ObjectDataProvider_Test.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/ObjectDataProvider_Test.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/ObjectDataProvider_Test.xwt
new file mode 100644
index 0000000..b1c65b9
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/ObjectDataProvider_Test.xwt
@@ -0,0 +1,28 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding.dataprovider"
+	Size="400, 300">
+	<Shell.layout>
+		<GridLayout numColumns="3"/>
+	</Shell.layout>
+	
+	<Shell.Resources>
+		<ObjectDataProvider x:Key="myBook" ObjectType="{x:Type y:Bookstore}" MethodName="getFirstBook">
+		</ObjectDataProvider>
+	</Shell.Resources>
+	
+	<Label text="Title Language"/>
+	<Text x:style="BORDER" text="{Binding Source={StaticResource myBook}, Path=title.lang}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Label text="{Binding Source={StaticResource myBook},Path=title.lang}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL"
+				widthHint="100"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/Title.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/Title.java
new file mode 100644
index 0000000..6242d2e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/Title.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.dataprovider;
+
+/**
+ * @author jliu (jin.liu@soyatec.com)
+ */
+public class Title {
+	private String lang;
+	private String text;
+
+	/**
+	 * 
+	 */
+	public Title(String lang, String text) {
+		this.lang = lang;
+		this.text = text;
+	}
+
+	public String getLang() {
+		return lang;
+	}
+
+	public void setLang(String lang) {
+		this.lang = lang;
+	}
+
+	public String getText() {
+		return text;
+	}
+
+	public void setText(String text) {
+		this.text = text;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#toString()
+	 */
+	@Override
+	public String toString() {
+		if (text != null) {
+			return text;
+		}
+		return super.toString();
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider.java
new file mode 100644
index 0000000..6d4f318
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider.java
@@ -0,0 +1,138 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.dataprovider.custom;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.value.IValueProperty;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.databinding.XWTObservableValue;
+import org.eclipse.xwt.dataproviders.AbstractDataProvider;
+import org.eclipse.xwt.internal.core.UpdateSourceTrigger;
+
+/**
+ * An sample a custom data provider
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class CustomDataProvider extends AbstractDataProvider {
+	static DataModelService dataModelService = new DataModelService() {
+		@Override
+		public Object toModelType(Object data) {
+			return null;
+		}
+
+		@Override
+		public Object loadModelType(String className) {
+			return null;
+		}
+
+		@Override
+		public Object toModelPropertyType(Object object, String propertyName) {
+			return null;
+		}
+	};
+
+	protected Class<?> objectType;
+	protected DynamicObject object;
+
+	@Override
+	public Object getData(String path) {
+		if (path == null) {
+			return this;
+		}
+		return getData(getObjectInstance(), path);
+	}
+
+	@Override
+	public Object getData(Object object, String path) {
+		assert object instanceof DynamicObject;
+		return ((DynamicObject) object).getProperty(path);
+	}
+
+	@Override
+	public void setData(String path, Object value) {
+		setData(getObjectInstance(), path, value);
+	}
+
+	@Override
+	public void setData(Object object, String path, Object value) {
+		assert object instanceof DynamicObject;
+		((DynamicObject) object).setProperty(path, value);
+	}
+
+	public IValueProperty observeValueProperty(Object valueType, String path,
+			UpdateSourceTrigger updateSourceTrigger) {
+		return new MyValueProperty();
+	}
+
+	@Override
+	public IObservableValue observeValue(Object bean,
+			final String propertyName) {
+		Object target = getObjectInstance();
+		if (target != null) {
+			return new XWTObservableValue(target.getClass(), target,
+					propertyName) {
+				@Override
+				protected void doSetApprovedValue(Object value) {
+					CustomDataProvider.this.getObjectInstance().setProperty(
+							propertyName, value);
+				}
+
+				@Override
+				protected Object doGetValue() {
+					return CustomDataProvider.this.getData(propertyName);
+				}
+			};
+		}
+		return null;
+	}
+
+	@Override
+	public IObservableValue observeDetailValue(IObservableValue bean,
+			Object ownerType, String propertyName, Object propertyType) {
+		return null;
+	}
+
+	@Override
+	public Class<?> getDataType(String path) {
+		return String.class;
+	}
+
+	public void setObjectType(Class<?> objectType) {
+		this.objectType = objectType;
+	}
+
+	public Class<?> getObjectType() {
+		return objectType;
+	}
+
+	public void setObjectInstance(DynamicObject objectInstance) {
+		object = objectInstance;
+	}
+
+	public DynamicObject getObjectInstance() {
+		if (object == null && objectType != null) {
+			try {
+				object = (DynamicObject) objectType.newInstance();
+			} catch (Exception e) {
+				throw new XWTException(e);
+			}
+		}
+		return object;
+	}
+
+	@Override
+	public DataModelService getModelService() {
+		return dataModelService;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Default.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Default.java
new file mode 100644
index 0000000..96d84a6
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Default.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.dataprovider.custom;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.IDataProvider;
+import org.eclipse.xwt.IDataProviderFactory;
+import org.eclipse.xwt.XWT;
+
+/**
+ * Introduce the Default Data provider
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class CustomDataProvider_Default {
+	public static void main(String[] args) {
+		URL url = CustomDataProvider_Default.class
+				.getResource(CustomDataProvider_Default.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.addDataProviderFactory("MyDataProviderfactory", new IDataProviderFactory() {
+				@Override
+				public Class<?> getType() {
+					return CustomDataProvider.class;
+				}
+
+				@Override
+				public IDataProvider create(Object dataContext) {
+					if (dataContext instanceof DynamicObject) {
+						CustomDataProvider provider = new CustomDataProvider();
+						provider.setObjectInstance((DynamicObject) dataContext);
+						return provider;
+					}
+					return null;
+				}
+			});
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Default.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Default.xwt
new file mode 100644
index 0000000..3882bc3
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Default.xwt
@@ -0,0 +1,26 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding.dataprovider.custom"
+	Size="400, 300">
+	<Shell.layout>
+		<GridLayout numColumns="3"/>
+	</Shell.layout>
+	
+	<Shell.Resources>
+		<y:DynamicObject x:Key="myBook"/>
+	</Shell.Resources>
+	
+	<Label text="Title: "/>
+	<Text x:style="BORDER" text="{Binding Source={StaticResource myBook}, Path=title}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Label text="{Binding Source={StaticResource myBook}, Path=title}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Switch.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Switch.java
new file mode 100644
index 0000000..3140136
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Switch.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.dataprovider.custom;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * Introduce a Data provider to an existing data context in XML
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class CustomDataProvider_Switch {
+	public static void main(String[] args) {
+		URL url = CustomDataProvider_Switch.class
+				.getResource(CustomDataProvider_Switch.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url, new DynamicObject());
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Switch.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Switch.xwt
new file mode 100644
index 0000000..118b7d5
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Switch.xwt
@@ -0,0 +1,26 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding.dataprovider.custom"
+	Size="400, 300">
+	<Shell.layout>
+		<GridLayout numColumns="3"/>
+	</Shell.layout>
+	
+	<Shell.Resources>
+		<y:CustomDataProvider x:Key="myBook" ObjectInstance="{Binding}"/>
+	</Shell.Resources>
+	
+	<Label text="Title: "/>
+	<Text x:style="BORDER" text="{Binding Source={StaticResource myBook}, Path=title}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Label text="{Binding Source={StaticResource myBook}, Path=title}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Test.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Test.java
new file mode 100644
index 0000000..b07208c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Test.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.dataprovider.custom;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * Introduce the Data provider with data context together in XML
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class CustomDataProvider_Test {
+	public static void main(String[] args) {
+
+		URL url = CustomDataProvider_Test.class
+				.getResource(CustomDataProvider_Test.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Test.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Test.xwt
new file mode 100644
index 0000000..bba9077
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/CustomDataProvider_Test.xwt
@@ -0,0 +1,26 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding.dataprovider.custom"
+	Size="400, 300">
+	<Shell.layout>
+		<GridLayout numColumns="3"/>
+	</Shell.layout>
+	
+	<Shell.Resources>
+		<y:CustomDataProvider x:Key="myBook" ObjectType="{x:Type y:DynamicObject}"/>
+	</Shell.Resources>
+	
+	<Label text="Title: "/>
+	<Text x:style="BORDER" text="{Binding Source={StaticResource myBook}, Path=title}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Label text="{Binding Source={StaticResource myBook}, Path=title}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/DynamicObject.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/DynamicObject.java
new file mode 100644
index 0000000..8a03f38
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/DynamicObject.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.dataprovider.custom;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 
+ * @author yyang (yves.yang@soyatec.com)
+ */
+public class DynamicObject {
+	protected Map<String, Object> properties = new HashMap<>();
+
+	public Object getProperty(String name) {
+		return getProperty(name, null);
+	}
+
+	public Object getProperty(String name, Object defaultValue) {
+		Object value = properties.get(name);
+		if (value == null) {
+			value = defaultValue;
+		}
+		return value;
+	}
+
+	public void setProperty(String name, Object value) {
+		properties.put(name, value);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/MyValueProperty.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/MyValueProperty.java
new file mode 100644
index 0000000..e700bce
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/custom/MyValueProperty.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.dataprovider.custom;
+
+import org.eclipse.core.databinding.observable.Realm;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.map.IObservableMap;
+import org.eclipse.core.databinding.observable.set.IObservableSet;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.property.value.ValueProperty;
+
+public class MyValueProperty extends ValueProperty {
+
+	public MyValueProperty() {
+	}
+
+	public Object getValueType() {
+		return null;
+	}
+
+	public IObservableValue observe(Realm realm, Object source) {
+		return null;
+	}
+
+	public IObservableList observeDetail(IObservableList master) {
+		return null;
+	}
+
+	public IObservableMap observeDetail(IObservableSet master) {
+		return null;
+	}
+
+	public IObservableMap observeDetail(IObservableMap master) {
+		return null;
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Path.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Path.java
new file mode 100644
index 0000000..1639dc5
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Path.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.dataprovider.xml;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.xml.XmlDataProvider;
+
+public class XmlDataProvider_Path {
+	public static void main(String[] args) {
+		XWT.registerMetaclass(XmlDataProvider.class);
+
+		URL url = XmlDataProvider_Path.class
+				.getResource(XmlDataProvider_Path.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Path.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Path.xwt
new file mode 100644
index 0000000..1adde0c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Path.xwt
@@ -0,0 +1,37 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding"
+	Size="400, 300">
+	<Shell.layout>
+		<GridLayout numColumns="3"/>
+	</Shell.layout>
+	
+	<Shell.Resources>
+		<XmlDataProvider x:Key="myBooks" path="/bookstore">
+    		<x:XData>
+    		<bookstore>
+       			<book category="COOKING">
+					<title lang="en">Everyday Italian</title>
+					<author>Giada De Laurentiis</author>
+					<year>2005</year>
+					<price>30.00</price>
+				</book>
+    		</bookstore>
+    		</x:XData>
+		</XmlDataProvider>
+	</Shell.Resources>
+	
+	<Label text="Name"/>
+	<Text x:style="BORDER" text="{Binding Source={StaticResource myBooks}, path=//book/title/text()}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Label text="{Binding Source={StaticResource myBooks}, path=//book/title/text()}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Provider.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Provider.java
new file mode 100644
index 0000000..c73803c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Provider.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.dataprovider.xml;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.xml.XmlDataProvider;
+
+public class XmlDataProvider_Provider {
+	public static void main(String[] args) {
+		XWT.registerMetaclass(XmlDataProvider.class);
+
+		URL url = XmlDataProvider_Provider.class
+				.getResource(XmlDataProvider_Provider.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		XmlDataProvider dataProvider = new XmlDataProvider();
+		dataProvider.setSource(XmlDataProvider_Provider.class
+				.getResource("books_test.xml"));
+		try {
+			XWT.open(url, dataProvider);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Provider.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Provider.xwt
new file mode 100644
index 0000000..fac103b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Provider.xwt
@@ -0,0 +1,22 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding"
+	Size="400, 300">
+	<Shell.layout>
+		<GridLayout numColumns="3"/>
+	</Shell.layout>
+		
+	<Label text="Name"/>
+	<Text x:style="BORDER" text="{Binding path=//book/title/text()}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Label text="{Binding path=//book/title/text()}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Source.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Source.java
new file mode 100644
index 0000000..fdb898c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Source.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.dataprovider.xml;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.xml.XmlDataProvider;
+
+public class XmlDataProvider_Source {
+	public static void main(String[] args) {
+		XWT.registerMetaclass(XmlDataProvider.class);
+
+		URL url = XmlDataProvider_Source.class
+				.getResource(XmlDataProvider_Source.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Source.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Source.xwt
new file mode 100644
index 0000000..a6234c5
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Source.xwt
@@ -0,0 +1,27 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding"
+	Size="400, 300">
+	<Shell.layout>
+		<GridLayout numColumns="3"/>
+	</Shell.layout>
+	
+	<Shell.Resources>
+		<XmlDataProvider x:Key="myBooks" Source="books.xml">
+		</XmlDataProvider>
+	</Shell.Resources>
+	
+	<Label text="Name"/>
+	<Text x:style="BORDER" text="{Binding Source={StaticResource myBooks}, path=//book[author='Neal Stephenson']/title/text()}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Label text="{Binding Source={StaticResource myBooks}, path=//book[author='Neal Stephenson']/title/text()}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Test.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Test.java
new file mode 100644
index 0000000..e0c0aeb
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Test.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.dataprovider.xml;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.xml.XmlDataProvider;
+
+public class XmlDataProvider_Test {
+	public static void main(String[] args) {
+		XWT.registerMetaclass(XmlDataProvider.class);
+
+		URL url = XmlDataProvider_Test.class
+				.getResource(XmlDataProvider_Test.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Test.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Test.xwt
new file mode 100644
index 0000000..563fe6a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/XmlDataProvider_Test.xwt
@@ -0,0 +1,37 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding"
+	Size="400, 300">
+	<Shell.layout>
+		<GridLayout numColumns="3"/>
+	</Shell.layout>
+	
+	<Shell.Resources>
+		<XmlDataProvider x:Key="myBooks">
+    		<x:XData>
+    		<bookstore>
+				<book category="CHILDREN">
+					<title lang="en">Harry Potter</title>
+					<author>Neal Stephenson</author>
+					<year>2005</year>
+					<price>29.99</price>
+				</book>
+    		</bookstore>
+    		</x:XData>
+		</XmlDataProvider>
+	</Shell.Resources>
+	
+	<Label text="Name"/>
+	<Text x:style="BORDER" text="{Binding Source={StaticResource myBooks}, path=//book/title/text()}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Label text="{Binding Source={StaticResource myBooks}, path=//book/title/text()}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/books.xml b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/books.xml
new file mode 100644
index 0000000..e792872
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/books.xml
Binary files differ
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/books_test.xml b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/books_test.xml
new file mode 100644
index 0000000..e792872
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/dataprovider/xml/books_test.xml
Binary files differ
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datetime/DataBindingDateTimeTest.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datetime/DataBindingDateTimeTest.java
new file mode 100644
index 0000000..ac736a0
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datetime/DataBindingDateTimeTest.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2016 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.datetime;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.DateTime;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class DataBindingDateTimeTest extends XWTTestCase {
+
+	public void testDataBinding() throws Exception {
+
+		URL url = DataBindingDateTimeTest.class.getResource(TestClassView.class
+				.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			@Override
+			public void run() {
+
+				DateTime datetime = (DateTime) XWT.findElementByName(root,
+						"birthday");
+				DateTime copyDateTime = (DateTime) XWT.findElementByName(root,
+						"CopyDateTime");
+				checkBinding(datetime, copyDateTime);
+
+			}
+
+			private void checkBinding(DateTime datetime1, DateTime datetime2) {
+				assertEquals(datetime2.getYear(), datetime1.getYear());
+				assertEquals(datetime2.getMonth(), datetime1.getMonth());
+				assertEquals(datetime2.getDay(), datetime1.getDay());
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datetime/ModelObject.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datetime/ModelObject.java
new file mode 100644
index 0000000..d54a588
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datetime/ModelObject.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2016 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.datetime;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+
+public class ModelObject {
+	private final PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
+
+	public void addPropertyChangeListener(PropertyChangeListener listener) {
+		changeSupport.addPropertyChangeListener(listener);
+	}
+
+	public void removePropertyChangeListener(PropertyChangeListener listener) {
+		changeSupport.removePropertyChangeListener(listener);
+	}
+
+	protected void firePropertyChange(String propertyName, Object oldValue,
+			Object newValue) {
+		changeSupport.firePropertyChange(propertyName, oldValue, newValue);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datetime/Person.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datetime/Person.java
new file mode 100644
index 0000000..5c0d0ad
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datetime/Person.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2016 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ *   
+ * Contributors:        
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.datetime;
+
+import java.util.Date;
+
+public class Person extends ModelObject {
+	private String name;
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		firePropertyChange("name", this.name, this.name = name);
+	}
+
+	private Boolean married = false;;
+
+	public Boolean getMarried() {
+		return married;
+	}
+
+	public void setMarried(Boolean married) {
+		firePropertyChange("married", this.married, this.married = married);
+	}
+
+	private Date birthday;
+
+	public Date getBirthday() {
+		return birthday;
+	}
+
+	public void setBirthday(Date birthday) {
+		firePropertyChange("birthday", this.birthday, this.birthday = birthday);
+	}
+}
+
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datetime/TestClassView.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datetime/TestClassView.java
new file mode 100644
index 0000000..9da1778
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datetime/TestClassView.java
@@ -0,0 +1,45 @@
+/******************************************************************************* 
+ * Copyright (c) 2006, 2016 Soyatec (http://www.soyatec.com) and others. 
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License 2.0 
+ * which accompanies this distribution, and is available at 
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0 
+ * 
+ * Contributors: 
+ * Soyatec - initial API and implementation 
+ *******************************************************************************/
+
+package org.eclipse.xwt.tests.databinding.datetime;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.xwt.XWT;
+
+
+/**
+ * @author El-Amine Ouraiba(amine.ouraiba@soyatec.com)
+ * 
+ */
+public class TestClassView extends Composite {
+	static Person person = new Person();
+	
+	public TestClassView(Composite parent, int style) {
+		super(parent, style);
+	}
+
+	
+	public static void main(String[] args) {
+		URL url = TestClassView.class
+				.getResource("TestClassView.xwt");
+		try {
+		
+			XWT.open(url, person);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datetime/TestClassView.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datetime/TestClassView.xwt
similarity index 100%
rename from org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datetime/TestClassView.xwt
rename to tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/datetime/TestClassView.xwt
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/multibinding/MultiBinding.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/multibinding/MultiBinding.java
new file mode 100644
index 0000000..a46e196
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/multibinding/MultiBinding.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.multibinding;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class MultiBinding {
+	public static void main(String[] args) {
+
+		URL url = MultiBinding.class.getResource(MultiBinding.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/multibinding/MultiBinding.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/multibinding/MultiBinding.xwt
new file mode 100644
index 0000000..80f33a1
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/multibinding/MultiBinding.xwt
@@ -0,0 +1,39 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding.multibinding"
+	Size="400, 300"
+	DataContext="{StaticResource myData}">
+	<Shell.layout>
+		<GridLayout numColumns="2"/>
+	</Shell.layout>
+	
+	<Shell.Resources>
+		<y:Person x:Key="myData" firstName="Luc" lastName="DUMAS"/>
+	</Shell.Resources>
+	
+	<Label text="Name"/>
+	<Text name="multiValueText" x:style="BORDER">
+	    <Text.text>
+	        <MultiBinding updateSourceTrigger="PropertyChanged">
+	            <Binding path="firstName"/>
+	            <Binding path="lastName"/>
+	        </MultiBinding>
+	    </Text.text>
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Text name="firstNameText" text="{Binding Path=firstName,updateSourceTrigger=PropertyChanged}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Text name="lastNameText" text="{Binding Path=lastName,updateSourceTrigger=PropertyChanged}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/multibinding/MultiBindingTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/multibinding/MultiBindingTests.java
new file mode 100644
index 0000000..ff48204
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/multibinding/MultiBindingTests.java
@@ -0,0 +1,104 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.multibinding;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class MultiBindingTests extends XWTTestCase {
+
+	public void testMultiBindingPath_Read() throws Exception {
+		URL url = MultiBindingTests.class.getResource(MultiBinding.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Object element = XWT.findElementByName(root, "multiValueText");
+				assertTrue(element instanceof Text);
+				Text text = (Text) element;
+				assertEquals(text.getText(), "Luc DUMAS");
+			}
+		});
+	}
+	
+	public void testMultiBindingPath_Update() throws Exception {
+		URL url = MultiBindingTests.class.getResource(MultiBinding.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Object element = XWT.findElementByName(root, "multiValueText");
+				assertTrue(element instanceof Text);
+				Text text = (Text) element;
+				text.setText("NewFirst DUMAS");
+			}
+		}, new Runnable() {
+			public void run() {
+				checkFirstText();
+				checkLastText();
+			}
+
+			public void checkFirstText() {
+				Object element = XWT.findElementByName(root, "firstNameText");
+				assertTrue(element instanceof Text);
+				Text text = (Text) element;
+				assertEquals(text.getText(), "NewFirst");
+
+			}
+
+			public void checkLastText() {
+				Object element = XWT.findElementByName(root, "lastNameText");
+				assertTrue(element instanceof Text);
+				Text text = (Text) element;
+				assertEquals(text.getText(), "DUMAS");
+			}
+		});
+	}
+
+	public void testMultiBindingPath_Update_Outside() throws Exception {
+		URL url = MultiBindingTests.class.getResource(MultiBinding.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Object element = XWT.findElementByName(root, "firstNameText");
+				assertTrue(element instanceof Text);
+				Text text = (Text) element;
+				text.setText("NewFirst");
+			}
+		}, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "multiValueText");
+				assertTrue(element instanceof Text);
+				Text text = (Text) element;
+				assertEquals(text.getText(), "NewFirst DUMAS");
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/multibinding/Person.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/multibinding/Person.java
new file mode 100644
index 0000000..d8854c7
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/multibinding/Person.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.multibinding;
+
+public class Person {
+	private String firstName = "Luc";
+	private String lastName = "DUMAS";
+
+	public String getFirstName() {
+		return firstName;
+	}
+	public void setFirstName(String firstName) {
+		this.firstName = firstName;
+	}
+	public String getLastName() {
+		return lastName;
+	}
+	public void setLastName(String lastName) {
+		this.lastName = lastName;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/others/DataBinding_Visible.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/others/DataBinding_Visible.java
new file mode 100644
index 0000000..20d310c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/others/DataBinding_Visible.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.others;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class DataBinding_Visible {
+	public static void main(String[] args) {
+
+		URL url = DataBinding_Visible.class
+				.getResource(DataBinding_Visible.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/others/DataBinding_Visible.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/others/DataBinding_Visible.xwt
new file mode 100644
index 0000000..eb59f30
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/others/DataBinding_Visible.xwt
@@ -0,0 +1,42 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding.others"
+	x:Class="org.eclipse.xwt.tests.databinding.others.EventHandler"
+	x:Name="Root"
+	Size="400, 300"
+	DataContext="{StaticResource myData}">
+	<Shell.layout>
+		<GridLayout numColumns="2"/>
+	</Shell.layout>
+	
+	<Shell.Resources>
+		<y:DataFactory x:Key="myData"/>
+	</Shell.Resources>
+	
+	<Label text="Name"/>
+	<Text x:style="BORDER|READONLY" text="{Binding Path=text}" enabled="{Binding Path=enabled}" visible="{Binding Path=visible}" background="{Binding Path=background}" foreground="{Binding Path=foreground}" >
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Group text="options">
+		<Group.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true" horizontalSpan="2"/>
+		</Group.layoutData>
+		<Group.layout>
+			<GridLayout numColumns="2"/>
+		</Group.layout>
+		<Button x:style="CHECK" selection="{Binding Path=enabled}" text="enabled"/>
+		<Button x:style="CHECK" selection="{Binding Path=visible}" text="visible"/>
+		<Text x:style="BORDER" text="{Binding Path=text}" >
+			<Text.layoutData>
+				<GridData horizontalAlignment="FILL"
+	         		grabExcessHorizontalSpace="true" horizontalSpan="2"/>
+			</Text.layoutData>
+		</Text>
+		<Button x:style="RADIO" selection="true" text="Background(GRAY)" SelectionEvent="setColorGray"/>
+		<Button x:style="RADIO" text="Background(YELLOW)" SelectionEvent="setColorYellow"/>
+	</Group>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/others/DataFactory.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/others/DataFactory.java
new file mode 100644
index 0000000..df7e1ca
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/others/DataFactory.java
@@ -0,0 +1,106 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.others;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.widgets.Display;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class DataFactory {
+
+	private boolean visible = true;
+	private boolean enabled = true;
+	private String text = "text";
+	private Color background = Display.getCurrent().getSystemColor(
+			SWT.COLOR_DARK_GRAY);
+	private Color foreground = Display.getCurrent().getSystemColor(
+			SWT.COLOR_DARK_RED);
+
+	/**
+	 * @param visible
+	 *            the visible to set
+	 */
+	public void setVisible(boolean visible) {
+		this.visible = visible;
+	}
+
+	/**
+	 * @return the visible
+	 */
+	public boolean isVisible() {
+		return visible;
+	}
+
+	/**
+	 * @param enabled
+	 *            the enabled to set
+	 */
+	public void setEnabled(boolean enabled) {
+		this.enabled = enabled;
+	}
+
+	/**
+	 * @return the enabled
+	 */
+	public boolean isEnabled() {
+		return enabled;
+	}
+
+	/**
+	 * @param text
+	 *            the text to set
+	 */
+	public void setText(String text) {
+		this.text = text;
+	}
+
+	/**
+	 * @return the text
+	 */
+	public String getText() {
+		return text;
+	}
+
+	/**
+	 * @param background
+	 *            the background to set
+	 */
+	public void setBackground(Color background) {
+		this.background = background;
+	}
+
+	/**
+	 * @return the background
+	 */
+	public Color getBackground() {
+		return background;
+	}
+
+	/**
+	 * @param foreground
+	 *            the foreground to set
+	 */
+	public void setForeground(Color foreground) {
+		this.foreground = foreground;
+	}
+
+	/**
+	 * @return the foreground
+	 */
+	public Color getForeground() {
+		return foreground;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/others/EventHandler.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/others/EventHandler.java
new file mode 100644
index 0000000..22cd42f
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/others/EventHandler.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.others;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu jin.liu@soyatec.com
+ */
+public class EventHandler {
+
+	public void setColorYellow(Event event) {
+		Button widget = (Button) event.widget;
+		if (widget.getSelection()) {
+			Shell shell = (Shell) XWT.findElementByName(widget, "Root");
+			DataFactory dataFactory = (DataFactory) XWT.getDataContext(shell);
+			dataFactory.setBackground(Display.getCurrent().getSystemColor(
+					SWT.COLOR_YELLOW));
+		}
+	}
+
+	public void setColorGray(Event event) {
+		Button widget = (Button) event.widget;
+		if (widget.getSelection()) {
+			Shell shell = (Shell) XWT.findElementByName(event.widget, "Root");
+			DataFactory dataFactory = (DataFactory) XWT.getDataContext(shell);
+			dataFactory.setBackground(Display.getCurrent().getSystemColor(
+					SWT.COLOR_GRAY));
+		}
+
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/Address.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/Address.java
new file mode 100644
index 0000000..b150bec
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/Address.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.pojo;
+
+public class Address {
+	private String city = "Paris";
+
+	public void setCity(String city) {
+		this.city = city;
+	}
+
+	public String getCity() {
+		return city;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/Company.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/Company.java
new file mode 100644
index 0000000..903ca72
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/Company.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.pojo;
+
+public class Company {
+	private String name = "Soyatec";
+	private Person manager = new Person();
+
+	public Person getManager() {
+		return manager;
+	}
+
+	public void setManager(Person manager) {
+		this.manager = manager;
+	}
+
+	public Company() {
+		manager.setName("Julien");
+	}
+
+	public void setName(String value) {
+		this.name = value;
+	}
+
+	public String getName() {
+		return name;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/Country.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/Country.java
new file mode 100644
index 0000000..5466d7b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/Country.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.pojo;
+
+public enum Country {
+	FR, USA, CN;
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/DataBinding.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/DataBinding.java
new file mode 100644
index 0000000..ea2c943
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/DataBinding.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.pojo;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class DataBinding {
+	public static void main(String[] args) {
+
+		URL url = DataBinding.class.getResource(DataBinding.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void onNew(Event event) {
+		Shell shell = (Shell) XWT.findElementByName(event.widget, "Root");
+		Company company = (Company) XWT.getDataContext(shell);
+		company.setName("Eclipse");
+		IObservableValue managerValue = XWT.observableValue(shell, company,
+				"name");
+		managerValue.setValue("Eclipse");
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/DataBinding.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/DataBinding.xwt
new file mode 100644
index 0000000..a974950
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/DataBinding.xwt
@@ -0,0 +1,24 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding.pojo"
+	x:Class="org.eclipse.xwt.tests.databinding.pojo.DataBinding"
+	Size="400, 300"
+	x:Name="Root"
+	DataContext="{StaticResource myData}">
+	<Shell.layout>
+		<GridLayout numColumns="3"/>
+	</Shell.layout>
+	
+	<Shell.Resources>
+		<y:Company x:Key="myData"/>
+	</Shell.Resources>
+	
+	<Label text="Name"/>
+	<Text Name="Name" x:style="BORDER" text="{Binding Path=name}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Button Name="Button" Text="Change" SelectionEvent="onNew"/>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/DataBindingPath.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/DataBindingPath.java
new file mode 100644
index 0000000..5e49d9d
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/DataBindingPath.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.pojo;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class DataBindingPath {
+	public static void main(String[] args) {
+
+		URL url = DataBindingPath.class.getResource(DataBindingPath.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void onNew(Event event) {
+		Shell shell = (Shell) XWT.findElementByName(event.widget, "Root");
+		Company company = (Company) XWT.getDataContext(shell);
+		Person person = new Person();
+		person.setName("New Manager1");
+		person.getAddress().setCity("ShenZhen");
+
+		// company.setManager(person);
+		IObservableValue managerValue = XWT.findObservableValue(shell, company,
+				"manager");
+		managerValue.setValue(person);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/DataBindingPath.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/DataBindingPath.xwt
new file mode 100644
index 0000000..1a87c2e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/DataBindingPath.xwt
@@ -0,0 +1,48 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding.pojo"
+	x:Class="org.eclipse.xwt.tests.databinding.pojo.DataBindingPath"
+	Size="400, 300"
+	x:Name="Root"
+	DataContext="{StaticResource myData}">
+	<Shell.layout>
+		<GridLayout numColumns="3"/>
+	</Shell.layout>
+	
+	<Shell.Resources>
+		<y:Company x:Key="myData"/>
+	</Shell.Resources>
+	
+	<Label text="Name"/>
+	<Text Name="ManagerCity" x:style="BORDER" text="{Binding Path=manager.address.city}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Label text="{Binding Path=manager.name}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+	<Text x:style="BORDER" text="{Binding Path=manager.age}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Button x:style="CHECK" selection="{Binding Path=manager.maried}" text="Maried">
+		<Button.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Button.layoutData>
+	</Button>
+	<Combo text="{Binding Path=manager.nationality}">
+		<Combo.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Combo.layoutData>
+	</Combo>
+	<Button Name="Button" Text="New Manager" SelectionEvent="onNew"/>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/Person.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/Person.java
new file mode 100644
index 0000000..005fa52
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/Person.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.pojo;
+
+public class Person {
+	private String name = "toto";
+	private int age = 10;
+	private boolean maried = true;
+	private Country nationality = Country.FR;
+	private Address address;
+
+	public void setMaried(boolean maried) {
+		this.maried = maried;
+	}
+
+	public Country getNationality() {
+		return nationality;
+	}
+
+	public boolean isMaried() {
+		return maried;
+	}
+
+	public int getAge() {
+		return age;
+	}
+
+	public void setAge(int age) {
+		this.age = age;
+	}
+
+	public Person() {
+		address = new Address();
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public Address getAddress() {
+		return address;
+	}
+
+	public void setAddress(Address address) {
+		this.address = address;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/PojoDataBindingTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/PojoDataBindingTests.java
new file mode 100644
index 0000000..609a591
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/PojoDataBindingTests.java
@@ -0,0 +1,81 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.pojo;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+import org.eclipse.xwt.tests.databinding.pojo.attribute.PojoAttrDataBindingTests;
+
+public class PojoDataBindingTests extends XWTTestCase {
+
+	public void testDataBinding() throws Exception {
+		URL url = PojoAttrDataBindingTests.class.getResource(DataBinding.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Object element = XWT.findElementByName(root, "Button");
+				assertTrue(element instanceof Button);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Object element = XWT.findElementByName(root, "Name");
+				assertTrue(element instanceof Text);
+				Text text = (Text) element;
+				assertEquals(text.getText(), "Soyatec");
+			}
+		});
+	}
+
+	public void testDataBindingPath() throws Exception {
+		URL url = PojoDataBindingTests.class.getResource(DataBindingPath.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Object element = XWT.findElementByName(root, "Button");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				selectButton(button);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Object element = XWT.findElementByName(root, "ManagerCity");
+				assertTrue(element instanceof Text);
+				Text text = (Text) element;
+				assertEquals(text.getText(), "ShenZhen");
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/attribute/Company.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/attribute/Company.java
new file mode 100644
index 0000000..3ac26c8
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/attribute/Company.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.pojo.attribute;
+
+public class Company {
+	private String NAME = "Soyatec";
+
+	public void setNAME(String value) {
+		this.NAME = value;
+	}
+
+	public String getNAME() {
+		return NAME;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/attribute/DataBinding.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/attribute/DataBinding.java
new file mode 100644
index 0000000..67df4f6
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/attribute/DataBinding.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.pojo.attribute;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class DataBinding {
+	public static void main(String[] args) {
+
+		URL url = DataBinding.class.getResource(DataBinding.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void onNew(Event event) {
+		Shell shell = (Shell) XWT.findElementByName(event.widget, "Root");
+		Company company = (Company) XWT.getDataContext(shell);
+		company.setNAME("Eclipse");
+		IObservableValue managerValue = XWT.observableValue(shell, company,
+				"name");
+		managerValue.setValue("Eclipse");
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/attribute/DataBinding.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/attribute/DataBinding.xwt
new file mode 100644
index 0000000..8e90696
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/attribute/DataBinding.xwt
@@ -0,0 +1,24 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding.pojo.attribute"
+	x:Class="org.eclipse.xwt.tests.databinding.pojo.attribute.DataBinding"
+	Size="400, 300"
+	x:Name="Root"
+	DataContext="{StaticResource myData}">
+	<Shell.layout>
+		<GridLayout numColumns="3"/>
+	</Shell.layout>
+	
+	<Shell.Resources>
+		<y:Company x:Key="myData"/>
+	</Shell.Resources>
+	
+	<Label text="Name"/>
+	<Text Name="Name" x:style="BORDER" text="{Binding Path=NAME}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Button Name="Button" Text="Change" SelectionEvent="onNew"/>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/attribute/PojoAttrDataBindingTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/attribute/PojoAttrDataBindingTests.java
new file mode 100644
index 0000000..e67fdfd
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/pojo/attribute/PojoAttrDataBindingTests.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.pojo.attribute;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class PojoAttrDataBindingTests extends XWTTestCase {
+
+	public void testDataBinding() throws Exception {
+		URL url = PojoAttrDataBindingTests.class.getResource(DataBinding.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Object element = XWT.findElementByName(root, "Button");
+				assertTrue(element instanceof Button);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Object element = XWT.findElementByName(root, "Name");
+				assertTrue(element instanceof Text);
+				Text text = (Text) element;
+				assertEquals(text.getText(), "Soyatec");
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/self/DataBindingSelfTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/self/DataBindingSelfTests.java
new file mode 100644
index 0000000..f82748b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/self/DataBindingSelfTests.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.self;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class DataBindingSelfTests extends XWTTestCase {
+
+	public void testDataBinding() throws Exception {
+		URL url = DataBindingSelfTests.class.getResource(DecoratedText.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "text1");
+				assertTrue(element instanceof Text);
+				Text text = (Text) element;
+				text.setText("Soyatec");
+			}
+		}, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "text2");
+				assertTrue(element instanceof Text);
+				Text text = (Text) element;
+				assertEquals(text.getText(), "Soyatec");
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/self/DecoratedText.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/self/DecoratedText.java
new file mode 100644
index 0000000..c0471dc
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/self/DecoratedText.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.self;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class DecoratedText extends Composite {
+	protected String decorator;
+	
+	public DecoratedText(Composite parent, int style) {
+		super(parent, style);
+	}
+
+	public String getDecorator() {
+		return decorator;
+	}
+
+	public void setDecorator(String decorator) {
+		this.decorator = decorator;
+	}
+	
+	public static void main(String[] args) {
+
+		URL url = DecoratedText.class.getResource(DecoratedText.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/self/DecoratedText.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/self/DecoratedText.xwt
new file mode 100644
index 0000000..10434a3
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/self/DecoratedText.xwt
@@ -0,0 +1,23 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	x:Class="org.eclipse.xwt.tests.databinding.self.DecoratedText"
+	name="root">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+
+	<Label text="Name"/>
+	<Text name="text1" x:style="BORDER" text="{Binding elementName=root, path=decorator, updateSourceTrigger=PropertyChanged}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	<Label text="Name"/>
+	<Text name="text2" x:style="BORDER" text="{Binding elementName=root, path=decorator, updateSourceTrigger=PropertyChanged}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/DefaultContextView.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/DefaultContextView.java
new file mode 100644
index 0000000..54f0a4d
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/DefaultContextView.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.status;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class DefaultContextView extends Composite {
+	public static void main(String[] args) {
+
+		URL url = DefaultContextView.class.getResource(DefaultContextView.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	public DefaultContextView(Composite parent, int style) {
+		super(parent, style);
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/DefaultContextView.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/DefaultContextView.xwt
new file mode 100644
index 0000000..efb69c0
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/DefaultContextView.xwt
@@ -0,0 +1,38 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt" xmlns:c="clr-namespace:org.eclipse.xwt.tests.databinding.status"
+	xmlns:j="clr-namespace:java.lang"
+	x:Class="org.eclipse.xwt.tests.databinding.status.DefaultContextView"
+	dataContext="{StaticResource myContext}" 
+	bindingContext="{StaticResource myDBC}">
+	<Composite.layout>
+		<GridLayout numColumns="2" />
+	</Composite.layout>
+
+	<Composite.Resources>
+		<c:Domain x:Key="myContext" />
+		<BindingContext x:Key="myDBC" />
+		<c:StatusConverter x:Key="statusConverter" />
+	</Composite.Resources>
+
+	<Label text="Enter '5' to be valid" />
+	<Text
+		text="{Binding path=valueOne, validationRule={c:IntValidator value=5}}">
+		<Text.layoutData>
+			<GridData grabExcessHorizontalSpace="true"
+				horizontalAlignment="GridData.FILL" widthHint="100" />
+		</Text.layoutData>
+	</Text>
+
+	<Label text="Enter '6' to be valid" />
+	<Text text="{Binding path=valueTwo, validationRule={c:IntValidator value=6}">
+		<Text.layoutData>
+			<GridData grabExcessHorizontalSpace="true"
+				horizontalAlignment="GridData.FILL" widthHint="100" />
+		</Text.layoutData>
+	</Text>
+
+	<Label text="Status" />
+	<Label x:Name="statusLabel"
+		text="{Binding source={StaticResource myDBC}, path=status, converter={StaticResource statusConverter}, mode=OneWay}" />
+	<Button text="OK" />
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/Domain.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/Domain.java
new file mode 100644
index 0000000..98d149c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/Domain.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.status;
+
+import org.eclipse.xwt.tests.BaseBean;
+
+public class Domain extends BaseBean {
+
+	private String valueOne = "1";
+	private String valueTwo = "2";
+
+	public String getValueOne() {
+		return valueOne;
+	}
+
+	public void setValueOne(String valueOne) {
+		String oldValue = this.valueOne;
+		this.valueOne = valueOne;
+		changeSupport.firePropertyChange("valueOne", oldValue, this.valueOne);
+	}
+
+	public String getValueTwo() {
+		return valueTwo;
+	}
+
+	public void setValueTwo(String valueTwo) {
+		String oldValue = this.valueTwo;
+		this.valueTwo = valueTwo;
+		changeSupport.firePropertyChange("valueTwo", oldValue, this.valueTwo);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/IntValidator.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/IntValidator.java
new file mode 100644
index 0000000..fdf2098
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/IntValidator.java
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/**
+ *
+ */
+package org.eclipse.xwt.tests.databinding.status;
+
+import org.eclipse.core.databinding.validation.ValidationStatus;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.validation.AbstractValidationRule;
+
+/**
+ * @author hceylan
+ *
+ */
+public class IntValidator extends AbstractValidationRule {
+
+	private String value;
+
+	/**
+	 *
+	 */
+	public IntValidator() {
+		super();
+	}
+
+	/**
+	 * @return the value
+	 */
+	public String getValue() {
+		return value;
+	}
+
+	/**
+	 * @param value
+	 *            the value to set
+	 */
+	public void setValue(String value) {
+		this.value = value;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see
+	 * org.eclipse.core.databinding.validation.IValidator#validate(java.lang
+	 * .Object)
+	 */
+	public IStatus validate(Object value) {
+		if (this.value.equals(value)){
+			return ValidationStatus.ok();
+		}
+
+		return ValidationStatus.error("Value must be " + this.value);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see org.eclipse.xwt.IValidationRule#validateBack(java.lang.Object)
+	 */
+	public IStatus validateBack(Object value) {
+		return validate(value);
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/StatusConverter.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/StatusConverter.java
new file mode 100644
index 0000000..476a5db
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/StatusConverter.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.status;
+
+import org.eclipse.core.databinding.conversion.Converter;
+import org.eclipse.core.databinding.validation.ValidationStatus;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.xwt.IValueConverter;
+
+public class StatusConverter extends Converter implements IValueConverter {
+
+	/**
+	 *
+	 */
+	public StatusConverter() {
+		super(Object.class, String.class);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.xwt.IValueConverter#convertBack(java.lang.Object)
+	 */
+	public Object convertBack(Object value) {
+		return ValidationStatus.error((String) value);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.databinding.conversion.IConverter#convert(java.lang.Object)
+	 */
+	public Object convert(Object fromObject) {
+		IStatus status = (IStatus) fromObject;
+
+		if (fromObject == null){
+			return ""; //$NON-NLS-1$
+		}
+
+		return status.getMessage();
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusDefault.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusDefault.xwt
new file mode 100644
index 0000000..1b674bb
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusDefault.xwt
@@ -0,0 +1,35 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt" xmlns:c="clr-namespace:org.eclipse.xwt.tests.databinding.status"
+	xmlns:j="clr-namespace:java.lang" x:Class="org.eclipse.xwt.tests.databinding.status.DomainView"
+	dataContext="{StaticResource myContext}"
+	bindingContext="{StaticResource myDBC}">
+	<Composite.layout>
+		<GridLayout numColumns="2" />
+	</Composite.layout>
+
+	<Composite.Resources>
+		<c:Domain x:Key="myContext" />
+		<BindingContext x:Key="myDBC" />
+	</Composite.Resources>
+
+	<Label text="Enter '5' to be valid" />
+	<Text name="text1" text="{Binding path=valueOne, validationRule={c:IntValidator value=5}}">
+		<Text.layoutData>
+			<GridData grabExcessHorizontalSpace="true"
+				 horizontalAlignment="GridData.FILL" widthHint="100"/>
+		</Text.layoutData>
+	</Text>
+
+	<Label text="Enter '6' to be valid" />
+	<Text name="text2" text="{Binding path=valueTwo, validationRule={c:IntValidator value=6}">
+		<Text.layoutData>
+			<GridData grabExcessHorizontalSpace="true"
+				 horizontalAlignment="GridData.FILL" widthHint="100"/>
+		</Text.layoutData>
+	</Text>
+
+	<Label text="Status" />
+	<Label x:Name="statusLabel"
+		text="{Binding source={StaticResource myDBC}, path=status}" />
+	<Button text="OK" />
+</Composite>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusName.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusName.java
new file mode 100644
index 0000000..a516ab1
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusName.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.status;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class ValidationStatusName extends Composite {
+	public static void main(String[] args) {
+
+		URL url = ValidationStatusName.class.getResource(ValidationStatusName.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	public ValidationStatusName(Composite parent, int style) {
+		super(parent, style);
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusName.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusName.xwt
new file mode 100644
index 0000000..0765e8a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusName.xwt
@@ -0,0 +1,36 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt" 
+	xmlns:c="clr-namespace:org.eclipse.xwt.tests.databinding.status"
+	xmlns:j="clr-namespace:java.lang" 
+	x:Class="org.eclipse.xwt.tests.databinding.status.DomainView"
+	dataContext="{StaticResource myContext}">
+	<Composite.layout>
+		<GridLayout numColumns="2" />
+	</Composite.layout>
+
+	<Composite.Resources>
+		<c:Domain x:Key="myContext" />
+		<BindingContext x:Key="myDBC" />
+	</Composite.Resources>
+
+	<Label text="Enter '5' to be valid" />
+	<Text name="text1" text="{Binding path=valueOne, bindingContext={StaticResource myDBC}, validationRule={c:IntValidator value=5}}">
+		<Text.layoutData>
+			<GridData grabExcessHorizontalSpace="true"
+				 horizontalAlignment="GridData.FILL" widthHint="100"/>
+		</Text.layoutData>
+	</Text>
+
+	<Label text="Enter '6' to be valid" />
+	<Text name="text2" text="{Binding path=valueTwo, bindingContext={StaticResource myDBC}, validationRule={c:IntValidator value=6}}">
+		<Text.layoutData>
+			<GridData grabExcessHorizontalSpace="true"
+				 horizontalAlignment="GridData.FILL" widthHint="100"/>
+		</Text.layoutData>
+	</Text>
+
+	<Label text="Status" />
+	<Label x:Name="statusLabel"
+		text="{Binding source={StaticResource myDBC}, path=status}" />
+	<Button text="OK" />
+</Composite>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusStaticResource.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusStaticResource.java
new file mode 100644
index 0000000..2588526
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusStaticResource.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.status;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class ValidationStatusStaticResource extends Composite {
+	public static void main(String[] args) {
+
+		URL url = ValidationStatusStaticResource.class.getResource(ValidationStatusStaticResource.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	public ValidationStatusStaticResource(Composite parent, int style) {
+		super(parent, style);
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusStaticResource.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusStaticResource.xwt
new file mode 100644
index 0000000..fb77043
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusStaticResource.xwt
@@ -0,0 +1,35 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt" xmlns:c="clr-namespace:org.eclipse.xwt.tests.databinding.status"
+	xmlns:j="clr-namespace:java.lang" x:Class="org.eclipse.xwt.tests.databinding.status.DomainView"
+	DataContext="{StaticResource myContext}">
+	<Composite.layout>
+		<GridLayout numColumns="2" />
+	</Composite.layout>
+
+	<Composite.Resources>
+		<c:Domain x:Key="myContext" />
+		<BindingContext x:Key="myDBC" />
+		<c:StatusConverter x:Key="statusConverter" />
+	</Composite.Resources>
+
+	<Label text="Enter '5' to be valid" />
+	<Text name="text1" text="{Binding path=valueOne, bindingContext={StaticResource myDBC},validationRule={c:IntValidator value=5}}">
+		<Text.layoutData>
+			<GridData grabExcessHorizontalSpace="true"
+				 horizontalAlignment="GridData.FILL" widthHint="100"/>
+		</Text.layoutData>
+	</Text>
+
+	<Label text="Enter '6' to be valid" />
+	<Text name="text2" text="{Binding path=valueTwo, bindingContext={StaticResource myDBC}, validationRule={c:IntValidator value=6}">
+		<Text.layoutData>
+			<GridData grabExcessHorizontalSpace="true"
+				 horizontalAlignment="GridData.FILL" widthHint="100"/>
+		</Text.layoutData>
+	</Text>
+
+	<Label text="Status" />
+	<Label x:Name="statusLabel"
+		text="{Binding source={StaticResource myDBC}, path=status, mode=OneWay, converter={StaticResource statusConverter}}" />
+	<Button text="OK" />
+</Composite>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTests.java
new file mode 100644
index 0000000..8de08e6
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTests.java
@@ -0,0 +1,265 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec & hceylan - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.status;
+
+import java.net.URL;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class ValidationStatusTests extends XWTTestCase {
+
+	public void testValidationDefault1() throws Exception {
+		URL url = ValidationStatusTests.class.getResource(ValidationStatusName.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Text text1 = (Text) XWT.findElementByName(root, "text1");
+				Text text2 = (Text) XWT.findElementByName(root, "text2");
+				Label status = (Label) XWT.findElementByName(root, "statusLabel");
+				
+				text1.setText("5");
+				setFocusOut(text1);
+				assertEquals("Value must be 6", status.getText());
+				
+				text2.setText("6");
+				setFocusOut(text2);
+				assertEquals("", status.getText());
+			}
+		});
+	}
+
+	public void testValidationDefault2() throws Exception {
+		URL url = ValidationStatusTests.class.getResource(ValidationStatusName.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Text text1 = (Text) XWT.findElementByName(root, "text1");
+				Text text2 = (Text) XWT.findElementByName(root, "text2");
+				Label status = (Label) XWT.findElementByName(root, "statusLabel");
+
+				text1.setText("4");
+				setFocusOut(text1);
+				assertEquals("Value must be 5", status.getText());
+				
+				setFocusIn(text1);
+				text1.setText("5");
+				setFocusOut(text1);
+				assertEquals("Value must be 6", status.getText());
+				
+				text2.setText("4");
+				setFocusOut(text2);
+				assertEquals("Value must be 6", status.getText());
+
+				setFocusIn(text2);
+				text2.setText("6");
+				setFocusOut(text2);
+				assertEquals("", status.getText());
+			}
+		});
+	}
+	
+	public void testValidationStaticResource1() throws Exception {
+		URL url = ValidationStatusTests.class.getResource(ValidationStatusStaticResource.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Text text1 = (Text) XWT.findElementByName(root, "text1");
+				Text text2 = (Text) XWT.findElementByName(root, "text2");
+				Label status = (Label) XWT.findElementByName(root, "statusLabel");
+				
+				text1.setText("5");
+				setFocusOut(text1);
+				assertEquals("Value must be 6", status.getText());
+				
+				text2.setText("6");
+				setFocusOut(text2);
+				assertEquals("OK", status.getText());
+			}
+		});
+	}
+
+	public void testValidationStaticResource2() throws Exception {
+		URL url = ValidationStatusTests.class.getResource(ValidationStatusStaticResource.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Text text1 = (Text) XWT.findElementByName(root, "text1");
+				Text text2 = (Text) XWT.findElementByName(root, "text2");
+				Label status = (Label) XWT.findElementByName(root, "statusLabel");
+
+				text1.setText("4");
+				setFocusOut(text1);
+				assertEquals("Value must be 5", status.getText());
+				
+				setFocusIn(text1);
+				text1.setText("5");
+				setFocusOut(text1);
+				assertEquals("Value must be 6", status.getText());
+				
+				text2.setText("4");
+				setFocusOut(text2);
+				assertEquals("Value must be 6", status.getText());
+
+				setFocusIn(text2);
+				text2.setText("6");
+				setFocusOut(text2);
+				assertEquals("OK", status.getText());
+			}
+		});
+	}
+	
+	
+	public void testValidationToolTip1() throws Exception {
+		URL url = ValidationStatusTests.class.getResource(ValidationStatusToolTip.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Text text1 = (Text) XWT.findElementByName(root, "text1");
+				Text text2 = (Text) XWT.findElementByName(root, "text2");
+				
+				assertEquals("Value must be 5", text1.getToolTipText());
+				assertEquals("Value must be 5", text2.getToolTipText());
+
+				text1.setText("5");
+				setFocusOut(text1);
+				assertEquals("Value must be 6", text1.getToolTipText());
+				
+				setFocusIn(text2);
+				text2.setText("6");
+				setFocusOut(text2);
+				assertEquals("", text2.getToolTipText());
+				assertEquals("", text1.getToolTipText());
+			}
+		});
+	}
+
+	public void testValidationToolTip2() throws Exception {
+		URL url = ValidationStatusTests.class.getResource(ValidationStatusToolTip.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Text text1 = (Text) XWT.findElementByName(root, "text1");
+				Text text2 = (Text) XWT.findElementByName(root, "text2");
+
+				text1.setText("4");
+				setFocusOut(text1);
+				assertEquals("Value must be 5", text1.getToolTipText());
+				assertEquals("Value must be 5", text2.getToolTipText());
+				
+				setFocusIn(text1);
+				text1.setText("5");
+				setFocusOut(text1);
+				assertEquals("Value must be 6", text1.getToolTipText());
+				assertEquals("Value must be 6", text2.getToolTipText());
+				
+				text2.setText("4");
+				setFocusOut(text2);
+				assertEquals("Value must be 6", text1.getToolTipText());
+				assertEquals("Value must be 6", text2.getToolTipText());
+
+				setFocusIn(text2);
+				text2.setText("6");
+				setFocusOut(text2);
+				assertEquals("", text1.getToolTipText());
+				assertEquals("", text2.getToolTipText());
+			}
+		});
+	}
+	
+	public void testValidationTriggerLocal() throws Exception {
+		URL url = ValidationStatusTests.class.getResource(ValidationStatusTriggerLocal.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Text text1 = (Text) XWT.findElementByName(root, "text1");
+				Text text2 = (Text) XWT.findElementByName(root, "text2");
+				Color red = root.getDisplay().getSystemColor(SWT.COLOR_RED);
+				Color black = root.getDisplay().getSystemColor(SWT.COLOR_BLACK);
+
+				assertEquals(red, text1.getForeground());
+				assertEquals(red, text2.getForeground());
+
+				text1.setText("4");
+				setFocusOut(text1);
+				assertEquals(red, text1.getForeground());
+				
+				setFocusIn(text1);
+				text1.setText("5");
+				setFocusOut(text1);
+				assertNotSame(red, text1.getForeground());
+				
+				text2.setText("4");
+				setFocusOut(text2);
+				assertEquals(red, text2.getForeground());
+
+				setFocusIn(text2);
+				text2.setText("6");
+				setFocusOut(text2);
+				assertNotSame(red, text1.getForeground());
+			}
+		});
+	}
+
+	public void testValidationTriggerShared() throws Exception {
+		URL url = ValidationStatusTests.class.getResource(ValidationStatusTriggerShared.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Text text1 = (Text) XWT.findElementByName(root, "text1");
+				Text text2 = (Text) XWT.findElementByName(root, "text2");
+				Label statusLabel = (Label) XWT.findElementByName(root, "statusLabel");
+				
+				Color red = root.getDisplay().getSystemColor(SWT.COLOR_RED);
+				Color black = root.getDisplay().getSystemColor(SWT.COLOR_BLACK);
+
+				assertEquals(red, statusLabel.getForeground());
+
+				text1.setText("4");
+				setFocusOut(text1);
+				assertEquals(red, statusLabel.getForeground());
+				assertEquals("Value must be 5", statusLabel.getText());
+
+				setFocusIn(text1);
+				text1.setText("5");
+				setFocusOut(text1);
+				assertEquals(red, statusLabel.getForeground());
+				assertEquals("Value must be 6", statusLabel.getText());
+				
+				text2.setText("4");
+				setFocusOut(text2);
+				assertEquals(red, statusLabel.getForeground());
+				assertEquals("Value must be 6", statusLabel.getText());
+
+				setFocusIn(text2);
+				text2.setText("6");
+				setFocusOut(text2);
+				assertNotSame(red, statusLabel.getForeground());
+				assertEquals("", statusLabel.getText());
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusToolTip.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusToolTip.java
new file mode 100644
index 0000000..8773ba3
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusToolTip.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.status;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class ValidationStatusToolTip extends Composite {
+	public static void main(String[] args) {
+
+		URL url = ValidationStatusToolTip.class.getResource(ValidationStatusToolTip.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	public ValidationStatusToolTip(Composite parent, int style) {
+		super(parent, style);
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusToolTip.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusToolTip.xwt
new file mode 100644
index 0000000..c53ca8b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusToolTip.xwt
@@ -0,0 +1,34 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt" xmlns:c="clr-namespace:org.eclipse.xwt.tests.databinding.status"
+	xmlns:j="clr-namespace:java.lang" x:Class="org.eclipse.xwt.tests.databinding.status.DomainView"
+	dataContext="{StaticResource myContext}"
+	bindingContext="{StaticResource myDBC}">
+	<Composite.layout>
+		<GridLayout numColumns="2" />
+	</Composite.layout>
+
+	<Composite.Resources>
+		<c:Domain x:Key="myContext" />
+		<BindingContext x:Key="myDBC" />
+	</Composite.Resources>
+
+	<Label text="Enter '5' to be valid" />
+	<Text name="text1" text="{Binding path=valueOne, validationRule={c:IntValidator value=5}}"
+	    toolTipText="{Binding source={StaticResource myDBC}, path=status}">
+		<Text.layoutData>
+			<GridData grabExcessHorizontalSpace="true"
+				 horizontalAlignment="GridData.FILL" widthHint="100"/>
+		</Text.layoutData>
+	</Text>
+
+	<Label text="Enter '6' to be valid" />
+	<Text name="text2" text="{Binding path=valueTwo, validationRule={c:IntValidator value=6}"
+	    toolTipText="{Binding source={StaticResource myDBC}, path=status}">
+		<Text.layoutData>
+			<GridData grabExcessHorizontalSpace="true"
+				 horizontalAlignment="GridData.FILL" widthHint="100"/>
+		</Text.layoutData>
+	</Text>
+
+	<Label text="Check the status in ToolTip"/>
+</Composite>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTriggerLocal.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTriggerLocal.java
new file mode 100644
index 0000000..0852d53
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTriggerLocal.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.status;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class ValidationStatusTriggerLocal extends Composite {
+	public static void main(String[] args) {
+
+		URL url = ValidationStatusTriggerLocal.class.getResource(ValidationStatusTriggerLocal.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	public ValidationStatusTriggerLocal(Composite parent, int style) {
+		super(parent, style);
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTriggerLocal.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTriggerLocal.xwt
new file mode 100644
index 0000000..fc1dce2
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTriggerLocal.xwt
@@ -0,0 +1,41 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt" xmlns:c="clr-namespace:org.eclipse.xwt.tests.databinding.status"
+	xmlns:j="clr-namespace:java.lang" x:Class="org.eclipse.xwt.tests.databinding.status.DomainView"
+	dataContext="{StaticResource myContext}">
+	<Composite.layout>
+		<GridLayout numColumns="2" />
+	</Composite.layout>
+
+	<Composite.Resources>
+		<c:Domain x:Key="myContext" />
+		<BindingContext x:Key="myDBC1" />
+		<BindingContext x:Key="myDBC2" />
+	</Composite.Resources>
+
+	<Label text="Enter '5' to be valid" />
+	<Text name="text1" text="{Binding bindingContext={StaticResource myDBC1}, path=valueOne, validationRule={c:IntValidator value=5}}">
+	    <Text.triggers>
+			<DataTrigger binding="{Binding source={StaticResource myDBC1}, path=status}" Operator="NE" value="OK" >
+				<Setter property="foreground" value="red"/>
+			</DataTrigger>
+	    </Text.triggers>
+		<Text.layoutData>
+			<GridData grabExcessHorizontalSpace="true"
+				 horizontalAlignment="GridData.FILL" widthHint="100"/>
+		</Text.layoutData>
+	</Text>
+
+	<Label text="Enter '6' to be valid" />
+	<Text name="text2" text="{Binding bindingContext={StaticResource myDBC2}, path=valueTwo, validationRule={c:IntValidator value=6}">
+	    <Text.triggers>
+			<DataTrigger binding="{Binding source={StaticResource myDBC2}, path=status}" Operator="NE" value="OK" >
+				<Setter property="foreground" value="red"/>
+			</DataTrigger>
+	    </Text.triggers>
+		<Text.layoutData>
+			<GridData grabExcessHorizontalSpace="true"
+				 horizontalAlignment="GridData.FILL" widthHint="100"/>
+		</Text.layoutData>
+	</Text>
+
+</Composite>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTriggerShared.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTriggerShared.java
new file mode 100644
index 0000000..5765191
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTriggerShared.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.status;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class ValidationStatusTriggerShared extends Composite {
+	public static void main(String[] args) {
+
+		URL url = ValidationStatusTriggerShared.class.getResource(ValidationStatusTriggerShared.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	public ValidationStatusTriggerShared(Composite parent, int style) {
+		super(parent, style);
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTriggerShared.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTriggerShared.xwt
new file mode 100644
index 0000000..3504dfa
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/status/ValidationStatusTriggerShared.xwt
@@ -0,0 +1,44 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt" xmlns:c="clr-namespace:org.eclipse.xwt.tests.databinding.status"
+	xmlns:j="clr-namespace:java.lang" x:Class="org.eclipse.xwt.tests.databinding.status.DomainView"
+	dataContext="{StaticResource myContext}"
+	bindingContext="{StaticResource myDBC}">
+	<Composite.layout>
+		<GridLayout numColumns="2" />
+	</Composite.layout>
+
+	<Composite.Resources>
+		<c:Domain x:Key="myContext" />
+		<BindingContext x:Key="myDBC" />
+	</Composite.Resources>
+
+	<Label text="Enter '5' to be valid" />
+	<Text name="text1" text="{Binding path=valueOne, validationRule={c:IntValidator value=5}}">
+		<Text.layoutData>
+			<GridData grabExcessHorizontalSpace="true"
+				 horizontalAlignment="GridData.FILL" widthHint="100"/>
+		</Text.layoutData>
+	</Text>
+
+	<Label text="Enter '6' to be valid" />
+	<Text name="text2" text="{Binding path=valueTwo, validationRule={c:IntValidator value=6}">
+		<Text.layoutData>
+			<GridData grabExcessHorizontalSpace="true"
+				 horizontalAlignment="GridData.FILL" widthHint="100"/>
+		</Text.layoutData>
+	</Text>
+
+	<Label text="Status" />
+	<Label x:Name="statusLabel"
+		text="{Binding source={StaticResource myDBC}, path=status}" />
+	<Button text="OK" />
+	
+	<Composite.triggers>
+		<DataTrigger binding="{Binding source={StaticResource myDBC}, path=status}" value="false" >
+			<Setter targetName="statusLabel" property="foreground" value="red"/>
+		</DataTrigger>
+		<DataTrigger binding="{Binding source={StaticResource myDBC}, path=status}" value="false" >
+			<Setter targetName="statusLabel" property="foreground" value="red"/>
+		</DataTrigger>
+	</Composite.triggers>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/RequiredValidationRule.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/RequiredValidationRule.java
new file mode 100644
index 0000000..eabdca2
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/RequiredValidationRule.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec & hceylan - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.validation;
+
+import org.eclipse.core.databinding.validation.ValidationStatus;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.xwt.validation.AbstractValidationRule;
+
+/**
+ * @author hceylan
+ *
+ */
+public class RequiredValidationRule extends AbstractValidationRule {
+
+	/**
+	 *
+	 */
+	public RequiredValidationRule() {
+		super();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see org.eclipse.xwt.IValueValidator#validateBack(java.lang.Object)
+	 */
+	public IStatus validateBack(Object value) {
+		return ValidationStatus.ok();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see
+	 * org.eclipse.core.databinding.validation.IValidator#validate(java.lang
+	 * .Object)
+	 */
+	public IStatus validate(Object value) {
+		if (value == null || value.toString().length() == 0){
+			return ValidationStatus.error("Value is required");
+		}
+
+		return ValidationStatus.ok();
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/SizeValidationRule.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/SizeValidationRule.java
new file mode 100644
index 0000000..3eb1e97
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/SizeValidationRule.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec & hceylan - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.validation;
+
+import org.eclipse.core.databinding.validation.ValidationStatus;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.xwt.validation.AbstractValidationRule;
+
+/**
+ * @author hceylan
+ *
+ */
+public class SizeValidationRule extends AbstractValidationRule {
+
+	/**
+	 *
+	 */
+	public SizeValidationRule() {
+		super();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see org.eclipse.xwt.IValueValidator#validateBack(java.lang.Object)
+	 */
+	public IStatus validateBack(Object value) {
+		return ValidationStatus.ok();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see
+	 * org.eclipse.core.databinding.validation.IValidator#validate(java.lang
+	 * .Object)
+	 */
+	public IStatus validate(Object value) {
+		String strValue = (String) value;
+		if (value != null && (strValue.length() < 8 || strValue.length() > 16)){
+			return ValidationStatus.error("Value should be 8 - 16 chars long");
+		}
+
+		return ValidationStatus.ok();
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation.java
new file mode 100644
index 0000000..c04ded8
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec & hceylan - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.validation;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Validation {
+	public static void main(String[] args) {
+
+		URL url = Validation.class.getResource(Validation.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			Object object = XWT.load(url);
+			
+			Object child = XWT.findElementByName(object, "bbb");
+			
+			System.out.println(child.toString());
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation.xwt
new file mode 100644
index 0000000..62d495b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation.xwt
@@ -0,0 +1,21 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding.validation"
+	xmlns:xwt="clr-namespace:org.eclipse.xwt.converters.validators"
+	xmlns:u="clr-namespace:java.util" Size="400, 300">
+	<Shell.layout>
+		<GridLayout numColumns="1" />
+	</Shell.layout>
+
+	<Label text="Input a text in first Text > 8 characters " />
+	<Text x:Name="text1" />
+	<Text x:name="text2">
+		<Text.text>
+			<Binding x:Name="bbb" elementName="text1" path="text" updateSourceTrigger="PropertyChanged" >
+				<Binding.validationRules>
+					<y:RequiredValidationRule/>
+					<y:SizeValidationRule/>
+				</Binding.validationRules>
+			</Binding>
+		</Text.text>
+	</Text>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/ValidationSingle.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/ValidationSingle.java
new file mode 100644
index 0000000..aad4159
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/ValidationSingle.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec & hceylan - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.validation;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class ValidationSingle {
+	public static void main(String[] args) {
+
+		URL url = ValidationSingle.class.getResource(ValidationSingle.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/ValidationSingle.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/ValidationSingle.xwt
new file mode 100644
index 0000000..03cb6ee
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/ValidationSingle.xwt
@@ -0,0 +1,12 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding.validation"
+	xmlns:xwt="clr-namespace:org.eclipse.xwt.converters.validators"
+	xmlns:u="clr-namespace:java.util" Size="400, 300">
+	<Shell.layout>
+		<GridLayout numColumns="1" />
+	</Shell.layout>
+	<Label text="Input a text in first Text > 8 characters " />
+	<Text x:Name="text1" />
+	<Text x:name="text2" text="{Binding elementName=text1,path=text,updateSourceTrigger=PropertyChanged,validationRule=y:SizeValidationRule}">
+	</Text>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation_ToolTip.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation_ToolTip.java
new file mode 100644
index 0000000..fc9adf4
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation_ToolTip.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec & hceylan - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.validation;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.internal.core.Binding;
+
+public class Validation_ToolTip {
+	public static void main(String[] args) {
+
+		URL url = Validation_ToolTip.class.getResource(Validation_ToolTip.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			
+			final Display display = new Display();
+			
+			XWT.open(url);
+			
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation_ToolTip.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation_ToolTip.xwt
new file mode 100644
index 0000000..4d4a06c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation_ToolTip.xwt
@@ -0,0 +1,27 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding.validation"
+	xmlns:xwt="clr-namespace:org.eclipse.xwt.converters.validators"
+	xmlns:u="clr-namespace:java.util" Size="400, 300">
+	<Shell.layout>
+		<GridLayout numColumns="1" />
+	</Shell.layout>
+
+	<Label text="Input a text in first Text > 8 characters " />
+	<Text x:name="text1">
+		<Text.text>
+			<Binding name="MyBinding" elementName="text1" path="text" updateSourceTrigger="PropertyChanged" >
+				<Binding.validationRules>
+					<y:RequiredValidationRule/>
+					<y:SizeValidationRule/>
+				</Binding.validationRules>
+			</Binding>
+		</Text.text>
+		<Text.toolTipText>
+		    <Binding>
+		       <Binding.source>
+		           <ValidationStatus sourceName="MyBinding"/>
+		       </Binding.source>
+		    </Binding>
+		</Text.toolTipText>
+	</Text>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation_ToolTip_Attribute.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation_ToolTip_Attribute.java
new file mode 100644
index 0000000..7368618
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation_ToolTip_Attribute.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec & hceylan - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.validation;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Validation_ToolTip_Attribute {
+	public static void main(String[] args) {
+
+		URL url = Validation_ToolTip_Attribute.class.getResource(Validation_ToolTip_Attribute.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation_ToolTip_Attribute.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation_ToolTip_Attribute.xwt
new file mode 100644
index 0000000..4dcb958
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/Validation_ToolTip_Attribute.xwt
@@ -0,0 +1,13 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.databinding.validation"
+	xmlns:xwt="clr-namespace:org.eclipse.xwt.converters.validators"
+	xmlns:u="clr-namespace:java.util" Size="400, 300">
+	<Shell.layout>
+		<GridLayout numColumns="1" />
+	</Shell.layout>
+
+	<Label text="Input a text in first Text > 8 characters " />
+	<Text x:name="text1" 
+	    text="{Binding name=MyBinding, elementName=text1,path=text,updateSourceTrigger=PropertyChanged,validationRule=y:SizeValidationRule}"
+		toolTipText="{Binding source={ValidationStatus sourceName=MyBinding}}"/>
+</Shell>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/ValidationsTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/ValidationsTests.java
new file mode 100644
index 0000000..93ad817
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/databinding/validation/ValidationsTests.java
@@ -0,0 +1,142 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec & hceylan - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.databinding.validation;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class ValidationsTests extends XWTTestCase {
+
+	public void testValidation() throws Exception {
+		URL url = ValidationsTests.class.getResource(Validation.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Text text1 = (Text) XWT.findElementByName(root, "text1");
+				Text text2 = (Text) XWT.findElementByName(root, "text2");
+
+				checkValidationFailure1(text1, text2);
+				checkValidationFailure2(text1, text2);
+				checkValidationOk(text1, text2);
+			}
+
+			private void checkValidationOk(Text text1, Text text2) {
+				text2.setText("test3");
+				text1.setText("LongEnough");
+				assertEquals(text2.getText(), "LongEnough");
+			}
+
+			private void checkValidationFailure2(Text text1, Text text2) {
+				text2.setText("test2");
+				text1.setText("short"); //no string
+				assertEquals(text2.getText(), "test2");
+			}
+
+			private void checkValidationFailure1(Text text1, Text text2) {
+				text2.setText("test1");
+				text1.setText(""); //no string
+				assertEquals(text2.getText(), "test1");
+			}
+		});
+	}
+
+	public void testValidation_Single() throws Exception {
+		URL url = ValidationSingle.class.getResource(ValidationSingle.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Text text1 = (Text) XWT.findElementByName(root, "text1");
+				Text text2 = (Text) XWT.findElementByName(root, "text2");
+
+				checkValidationFailure1(text1, text2);
+				checkValidationFailure2(text1, text2);
+				checkValidationOk(text1, text2);
+			}
+
+			private void checkValidationOk(Text text1, Text text2) {
+				text2.setText("test3");
+				text1.setText("LongEnough");
+				assertEquals(text2.getText(), "LongEnough");
+			}
+
+			private void checkValidationFailure2(Text text1, Text text2) {
+				text2.setText("test2");
+				text1.setText("short"); //no string
+				assertEquals(text2.getText(), "test2");
+			}
+
+			private void checkValidationFailure1(Text text1, Text text2) {
+				text2.setText("test1");
+				text1.setText(""); //no string
+				assertEquals(text2.getText(), "test1");
+			}
+		});
+	}
+	
+	public void testValidationStatus() throws Exception{
+		URL url = Validation_ToolTip.class.getResource(Validation_ToolTip.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		
+		runTest(url, new Runnable() {
+			public void run() {
+				Text text1 = (Text) XWT.findElementByName(root, "text1");
+				checkValidationStatus(text1);
+				checkValidationStatusOK(text1);
+			}
+			
+			private void checkValidationStatusOK(Text text1) {
+				text1.setText("lessthan8");
+				assertEquals(text1.getToolTipText(), "");
+			}
+
+			private void checkValidationStatus(Text text1){
+				text1.setText("more than 8 characters");
+				assertEquals(text1.getToolTipText(), "Value should be 8 - 16 chars long");
+			}
+		});
+	}
+	
+	public void testValidationStatus_Attribute() throws Exception{
+		URL url = Validation_ToolTip_Attribute.class.getResource(Validation_ToolTip_Attribute.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		
+		runTest(url, new Runnable() {
+			public void run() {
+				Text text1 = (Text) XWT.findElementByName(root, "text1");
+				
+				checkValidationStatusOK(text1);
+				
+				checkValidationStatus(text1);
+				
+			}
+			
+			private void checkValidationStatusOK(Text text1) {
+				text1.setText("lessthan8");
+				assertEquals(text1.getToolTipText(), "");
+			}
+
+			private void checkValidationStatus(Text text1){
+				text1.setText("more than 16 characters");
+				assertEquals(text1.getToolTipText(), "Value should be 8 - 16 chars long");
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/Button.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/Button.java
new file mode 100644
index 0000000..ac8e2a7
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/Button.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.events;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Button {
+	public static void main(String[] args) {
+
+		URL url = Button.class.getResource(Button.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/Button.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/Button.xwt
new file mode 100644
index 0000000..db04b5a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/Button.xwt
@@ -0,0 +1,8 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	x:Class="org.eclipse.xwt.tests.events.ButtonHandler">
+	<Shell.layout>
+		<GridLayout numColumns="2"/>
+	</Shell.layout>	
+	<Button name="ButtonEvent" text="Hello, world" SelectionEvent="selection"/>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/ButtonEventHandler.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/ButtonEventHandler.java
new file mode 100644
index 0000000..33c5fb3
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/ButtonEventHandler.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.events;
+
+import org.eclipse.swt.widgets.Event;
+
+public class ButtonEventHandler {
+	protected void selectionOK(Event event) {
+		System.out.println("OK Event !");
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/ButtonHandler.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/ButtonHandler.java
new file mode 100644
index 0000000..92c8552
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/ButtonHandler.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.events;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Event;
+
+public class ButtonHandler {
+	public static final String message = "OK";
+
+	protected void selection(Event event) {
+		Button button = (Button) event.widget;
+		button.setText(message);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/Event.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/Event.java
new file mode 100644
index 0000000..d699f43
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/Event.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.events;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Event {
+	public static void main(String[] args) {
+
+		URL url = Event.class.getResource(Event.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/Event.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/Event.xwt
new file mode 100644
index 0000000..f06368b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/Event.xwt
@@ -0,0 +1,29 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    text="Contact Managment"
+    x:Class="org.eclipse.xwt.tests.events.MainEventHandler"
+    x:style="TITLE">
+	<Shell.layout>
+		<GridLayout/>
+	</Shell.layout>
+    <Composite x:Name="main" x:style="BORDER" >
+		<Composite.layout>
+			<GridLayout numColumns="2"/>
+		</Composite.layout>
+	<ListViewer x:Name="contacts" x:Class="org.eclipse.xwt.tests.events.ListEventHandler">
+		<ListViewer.control SelectionEvent="selection"/>
+		<ListViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</ListViewer.control.layoutData>
+	</ListViewer>
+	<Composite x:Class="org.eclipse.xwt.tests.events.ButtonEventHandler">
+		<Composite.layout>
+			<FillLayout/>
+		</Composite.layout>
+		<Button Text="OK" SelectionEvent="selectionOK"/>
+		<Button Text="Close" SelectionEvent="selectionClose"/>
+	</Composite>
+	<Button Text="Close" SelectionEvent="selectionClose"/>
+	</Composite>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/EventsTestSuite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/EventsTestSuite.java
new file mode 100644
index 0000000..63c3046
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/EventsTestSuite.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.events;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.eclipse.xwt.tests.events.initialize.EventsInitTests;
+import org.eclipse.xwt.tests.events.loaded.EventsLoadedTests;
+import org.eclipse.xwt.tests.events.loaded.multipleClass.MultipleClassLoadedTests;
+
+public class EventsTestSuite extends TestSuite {
+	public static final Test suite() {
+		return new EventsTestSuite();
+	}
+
+	public EventsTestSuite() {
+		addTest(new TestSuite(EventsTests.class));
+		addTest(new TestSuite(EventsInitTests.class));
+		addTest(new TestSuite(EventsLoadedTests.class));
+		addTest(new TestSuite(MultipleClassLoadedTests.class));
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/EventsTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/EventsTests.java
new file mode 100644
index 0000000..31270b1
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/EventsTests.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.events;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class EventsTests extends XWTTestCase {
+
+	public void testButtonEvent() throws Exception {
+		URL url = EventsTests.class
+				.getResource(org.eclipse.xwt.tests.events.Button.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "ButtonEvent");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				selectButton(button);
+			}
+		},
+
+		new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Object element = XWT.findElementByName(root, "ButtonEvent");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				assertEquals(button.getText(), ButtonHandler.message);
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/ListEventHandler.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/ListEventHandler.java
new file mode 100644
index 0000000..cd57710
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/ListEventHandler.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.events;
+
+import org.eclipse.swt.widgets.Event;
+
+public class ListEventHandler {
+	protected void selection(Event event) {
+		System.out.println("Selection !");
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/MainEventHandler.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/MainEventHandler.java
new file mode 100644
index 0000000..87b1bed
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/MainEventHandler.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.events;
+
+import org.eclipse.swt.widgets.Event;
+
+public class MainEventHandler {
+	protected void selectionClose(Event event) {
+		System.out.println("Close !");
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/initialize/EventsInitTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/initialize/EventsInitTests.java
new file mode 100644
index 0000000..3b2677d
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/initialize/EventsInitTests.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.events.initialize;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class EventsInitTests extends XWTTestCase {
+
+	public void testInitializeComponent() throws Exception {
+		URL url = UserControl.class.getResource(UserControl.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Object element = XWT.findElementByName(root, "button");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				assertEquals(button.getText(), UserControl.Message);
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/initialize/UserControl.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/initialize/UserControl.java
new file mode 100644
index 0000000..403daaf
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/initialize/UserControl.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.events.initialize;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class UserControl extends Composite {
+	public static final String Message = "OK -> Initialized";
+
+	public UserControl(Composite parent, int style) {
+		super(parent, style);
+	}
+
+	protected void initializeComponent() {
+		Button button = (Button) XWT.findElementByName(this, "button");
+		button.setText(Message);
+	}
+
+	public static void main(String[] args) {
+
+		URL url = UserControl.class.getResource(UserControl.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/initialize/UserControl.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/initialize/UserControl.xwt
new file mode 100644
index 0000000..375dbe0
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/initialize/UserControl.xwt
@@ -0,0 +1,9 @@
+<j:UserControl xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:j="clr-namespace:org.eclipse.xwt.tests.events.initialize"
+	x:Class="org.eclipse.xwt.tests.events.initialize.UserControl">
+	<j:UserControl.layout>
+		<GridLayout numColumns="2"/>
+	</j:UserControl.layout>	
+	<Button x:Name="button" text="Wrong result"/>
+</j:UserControl>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/Button.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/Button.java
new file mode 100644
index 0000000..e067d4f
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/Button.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.events.loaded;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Button {
+	public static void main(String[] args) {
+
+		URL url = Button.class.getResource(Button.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/Button.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/Button.xwt
new file mode 100644
index 0000000..c661c02
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/Button.xwt
@@ -0,0 +1,8 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	x:Class="org.eclipse.xwt.tests.events.loaded.ButtonHandler">
+	<Shell.layout>
+		<GridLayout numColumns="2"/>
+	</Shell.layout>	
+	<Button name="Button" text="Wrong result" loadedEvent="onLoaded"/>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/ButtonHandler.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/ButtonHandler.java
new file mode 100644
index 0000000..20ede40
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/ButtonHandler.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.events.loaded;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Event;
+
+public class ButtonHandler {
+	public static final String Message = "OK -> Loaded";
+
+	protected void onLoaded(Event event) {
+		Button button = (Button) event.widget;
+		button.setText(Message);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/Button_prefix.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/Button_prefix.java
new file mode 100644
index 0000000..ae77a5b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/Button_prefix.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.events.loaded;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Button_prefix {
+	public static void main(String[] args) {
+
+		URL url = Button_prefix.class.getResource(Button_prefix.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/Button_prefix.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/Button_prefix.xwt
new file mode 100644
index 0000000..e7b2b82
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/Button_prefix.xwt
@@ -0,0 +1,9 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:c="clr-namespace:org.eclipse.xwt.tests.events.loaded"
+	x:Class="c:ButtonHandler">
+	<Shell.layout>
+		<GridLayout numColumns="2"/>
+	</Shell.layout>	
+	<Button name="Button" text="Wrong result" loadedEvent="onLoaded"/>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/EventsLoadedTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/EventsLoadedTests.java
new file mode 100644
index 0000000..f01faaf
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/EventsLoadedTests.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.events.loaded;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+/**
+ * 
+ * @author yyang
+ * 
+ */
+public class EventsLoadedTests extends XWTTestCase {
+
+	public void testLoaded() throws Exception {
+		URL url = org.eclipse.xwt.tests.events.loaded.Button.class
+				.getResource(org.eclipse.xwt.tests.events.loaded.Button.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Object element = XWT.findElementByName(root, "Button");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				assertEquals(
+						button.getText(),
+						org.eclipse.xwt.tests.events.loaded.ButtonHandler.Message);
+			}
+		});
+	}
+
+	public void testLoaded_Prefix() throws Exception {
+		URL url = org.eclipse.xwt.tests.events.loaded.Button_prefix.class
+				.getResource(org.eclipse.xwt.tests.events.loaded.Button_prefix.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Object element = XWT.findElementByName(root, "Button");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				assertEquals(
+						button.getText(),
+						org.eclipse.xwt.tests.events.loaded.ButtonHandler.Message);
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/Button.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/Button.java
new file mode 100644
index 0000000..70ae43b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/Button.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.events.loaded.multipleClass;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Button {
+	public static void main(String[] args) {
+
+		URL url = Button.class.getResource(Button.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/Button.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/Button.xwt
new file mode 100644
index 0000000..a500617
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/Button.xwt
@@ -0,0 +1,14 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt"
+	x:Class="org.eclipse.xwt.tests.events.loaded.multipleClass.RootHander">
+	<Composite.layout>
+		<GridLayout numColumns="2" />
+	</Composite.layout>
+	<Button name="RootButton1" x:style="SWT.PUSH" loadedEvent="performLoaded"></Button>
+	<Group x:Class="org.eclipse.xwt.tests.events.loaded.multipleClass.LoadHandler">
+		<Group.layout>
+			<FillLayout />
+		</Group.layout>
+		<Button name="ChildButton" loadedEvent="performLoaded" />
+	</Group>
+	<Button name="RootButton2" x:style="SWT.PUSH" loadedEvent="performLoaded"></Button>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/LoadHandler.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/LoadHandler.java
new file mode 100644
index 0000000..af58e00
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/LoadHandler.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.events.loaded.multipleClass;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Event;
+
+public class LoadHandler {
+	int index = 0;
+
+	/**
+	 * @param event
+	 */
+	public void performLoaded(Event event) {
+		Button button = (Button) event.widget;
+		button.setText("" + ++index);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/MultipleClassLoadedTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/MultipleClassLoadedTests.java
new file mode 100644
index 0000000..3323876
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/MultipleClassLoadedTests.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.events.loaded.multipleClass;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class MultipleClassLoadedTests extends XWTTestCase {
+
+	public void testLoaded() throws Exception {
+		URL url = org.eclipse.xwt.tests.events.loaded.multipleClass.Button.class
+				.getResource(org.eclipse.xwt.tests.events.loaded.multipleClass.Button.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				if (getButtonText("RootButton1").equals("1")) {
+					assertEquals("2", getButtonText("RootButton2")); 
+				}
+				else if (getButtonText("RootButton1").equals("2")) {
+					assertEquals("1", getButtonText("RootButton2")); 
+				}
+				else {
+					fail();
+				}				
+				assertEquals("1", getButtonText("ChildButton")); 
+			}
+
+			public String getButtonText(String name) {
+				Object element = XWT.findElementByName(root, name);
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				return button.getText();
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/RootHander.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/RootHander.java
new file mode 100644
index 0000000..cee3201
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/events/loaded/multipleClass/RootHander.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.events.loaded.multipleClass;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Event;
+
+public class RootHander {
+	int index = 0;
+
+	public void performLoaded(Event event) {
+		Button button = (Button) event.widget;
+		button.setText("" + ++index);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Composite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Composite.java
new file mode 100644
index 0000000..127431c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Composite.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.forms;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.forms.XWTForms;
+
+public class ExpandableComposite_Composite {
+	public static void main(String[] args) {
+
+		URL url = ExpandableComposite_Composite.class.getResource(ExpandableComposite_Composite.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWTForms.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Composite.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Composite.xwt
new file mode 100644
index 0000000..1dcd670
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Composite.xwt
@@ -0,0 +1,19 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt">
+    <Composite.layout>
+        <GridLayout numColumns="1" />
+    </Composite.layout>
+	<ExpandableComposite x:style="Section.TITLE_BAR|Section.TWISTIE|Section.EXPANDED" expanded="true" name="ExpandableComposite"
+	    text="Expandable Composite">
+	    <ExpandableComposite.client>
+     		<Composite>
+     			 <Composite.layout>
+	 				<GridLayout numColumns="3" horizontalSpacing="5"
+						 makeColumnsEqualWidth="false" marginBottom="0" marginHeight="5" marginLeft="0"
+						 marginRight="0" marginTop="0" marginWidth="5" verticalSpacing="5" />
+				 </Composite.layout>
+			     <Label name="ExpandableComposite.Label" text="test" />
+     		</Composite>
+	    </ExpandableComposite.client>
+	</ExpandableComposite>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Label.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Label.java
new file mode 100644
index 0000000..8131a03
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Label.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.forms;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.forms.XWTForms;
+
+public class ExpandableComposite_Label {
+	public static void main(String[] args) {
+
+		URL url = ExpandableComposite_Label.class.getResource(ExpandableComposite_Label.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWTForms.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Label.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Label.xwt
new file mode 100644
index 0000000..a685c93
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Label.xwt
@@ -0,0 +1,12 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt">
+    <Composite.layout>
+        <GridLayout numColumns="1" />
+    </Composite.layout>
+	<ExpandableComposite x:style="Section.TITLE_BAR|Section.TWISTIE|Section.EXPANDED" expanded="true" name="ExpandableComposite"
+	    text="Expandable Composite">
+	    <ExpandableComposite.client>
+		     <Label name="ExpandableComposite.Label" text="test" />
+	    </ExpandableComposite.client>
+	</ExpandableComposite>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Label_NotExpanded.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Label_NotExpanded.java
new file mode 100644
index 0000000..165eddf
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Label_NotExpanded.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.forms;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.forms.XWTForms;
+
+public class ExpandableComposite_Label_NotExpanded {
+	public static void main(String[] args) {
+
+		URL url = ExpandableComposite_Label_NotExpanded.class.getResource(ExpandableComposite_Label_NotExpanded.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWTForms.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Label_NotExpanded.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Label_NotExpanded.xwt
new file mode 100644
index 0000000..33eb5b5
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ExpandableComposite_Label_NotExpanded.xwt
@@ -0,0 +1,12 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt">
+    <Composite.layout>
+        <GridLayout numColumns="1" />
+    </Composite.layout>
+	<ExpandableComposite x:style="Section.TITLE_BAR|Section.TWISTIE|Section.EXPANDED" expanded="false" name="ExpandableComposite"
+	    text="Expandable Composite">
+	    <ExpandableComposite.client>
+		     <Label name="ExpandableComposite.Label" text="test" />
+	    </ExpandableComposite.client>
+	</ExpandableComposite>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/FormTestCase.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/FormTestCase.java
new file mode 100644
index 0000000..c6c0c67
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/FormTestCase.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.forms;
+
+import java.net.URL;
+import java.util.Map;
+
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.forms.XWTForms;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public abstract class FormTestCase extends XWTTestCase {
+	protected void runTest(final URL url, final Map<String, Object> options,
+			final Runnable... checkActions) {
+		XWT.runOnUIThread(new Runnable() {
+			public void run() {
+				doRunTest(url, options, checkActions);
+			}
+		});
+	}
+	
+	private void doRunTest(final URL url, Map<String, Object> options,
+			Runnable... checkActions) {
+		ClassLoader classLoader = Thread.currentThread()
+				.getContextClassLoader();
+		try {
+			Thread.currentThread().setContextClassLoader(
+					this.getClass().getClassLoader());
+			Object widget = XWTForms.loadWithOptions(url, options);
+			assertTrue(widget instanceof Control);
+			assertNotNull(widget);
+			root = (Control) widget;
+			assertNotNull(root);
+			Shell shell = root.getShell();
+			shell.open();
+			Display display = shell.getDisplay();
+
+			for (Runnable runnable : checkActions) {
+				while (display.readAndDispatch())
+					;
+				display.syncExec(runnable);
+				while (display.readAndDispatch())
+					;
+			}
+			assertFalse(root.isDisposed());
+			shell.close();
+			while (display.readAndDispatch())
+				;
+		} catch (Exception e) {
+			e.printStackTrace();
+			fail(e.getMessage());
+		} finally {
+			Thread.currentThread().setContextClassLoader(classLoader);
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Background.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Background.java
new file mode 100644
index 0000000..c2dbde4
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Background.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.forms;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.forms.XWTForms;
+
+public class Form_Background {
+	public static void main(String[] args) {
+
+		URL url = Form_Background.class.getResource(Form_Background.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWTForms.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Background.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Background.xwt
new file mode 100644
index 0000000..13689de
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Background.xwt
@@ -0,0 +1,8 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+       xmlns:x="http://www.eclipse.org/xwt">
+    <Shell.layout>
+        <FillLayout/>
+    </Shell.layout>
+    <Form name="FormBackground" text="New Form" background="COLOR_YELLOW"/>
+    <Form name="Form" text="New Form"/>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Button.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Button.java
new file mode 100644
index 0000000..3e1533d
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Button.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.forms;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.forms.XWTForms;
+
+public class Form_Button {
+	public static void main(String[] args) {
+
+		URL url = Form_Button.class.getResource(Form_Button.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWTForms.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Button.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Button.xwt
new file mode 100644
index 0000000..05344cd
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Button.xwt
@@ -0,0 +1,14 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt">
+    <Composite.layout>
+        <GridLayout numColumns="1" />
+    </Composite.layout>
+    <Form name="Form" text="Form Header Title">
+        <Form.body.layout>
+            <GridLayout numColumns="1" />
+        </Form.body.layout>
+        <Form.body>
+		    <Button name="Form.Button" text="Form button" />
+        </Form.body>
+    </Form>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_ButtonSection.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_ButtonSection.java
new file mode 100644
index 0000000..9f28095
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_ButtonSection.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.forms;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.forms.XWTForms;
+
+public class Form_ButtonSection {
+	public static void main(String[] args) {
+
+		URL url = Form_ButtonSection.class.getResource(Form_ButtonSection.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWTForms.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_ButtonSection.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_ButtonSection.xwt
new file mode 100644
index 0000000..b741ef2
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_ButtonSection.xwt
@@ -0,0 +1,20 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt">
+    <Composite.layout>
+        <GridLayout numColumns="1" />
+    </Composite.layout>
+    <Form name="Form" text="Form Header Title">
+        <Form.body.layout>
+            <GridLayout numColumns="1" />
+        </Form.body.layout>
+        <Form.body>
+		    <Button name="Form.Button" text="Form button" />
+			<Section name="Form.Section" x:style="Section.TITLE_BAR|Section.TWISTIE|Section.EXPANDED"
+	            text="Section Two">
+	            <Section.client>
+	                <Label name="Form.Section.Label" text="test" />
+	            </Section.client>
+	        </Section>
+        </Form.body>
+    </Form>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Group.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Group.java
new file mode 100644
index 0000000..9d198a6
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Group.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.forms;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.forms.XWTForms;
+
+public class Form_Group {
+	public static void main(String[] args) {
+
+		URL url = Form_Group.class.getResource(Form_Group.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWTForms.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Group.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Group.xwt
new file mode 100644
index 0000000..83a020e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Group.xwt
@@ -0,0 +1,16 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt">
+    <Composite.layout>
+        <GridLayout numColumns="1" />
+    </Composite.layout>
+    <Form name="Form" text="Form Header Title">
+        <Form.body.layout>
+            <GridLayout numColumns="1" />
+        </Form.body.layout>
+        <Form.body>
+			<Group name="Form.Group"
+			    text="Group one">
+			</Group>
+        </Form.body>
+    </Form>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_HeadClient.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_HeadClient.java
new file mode 100644
index 0000000..d4de5e2
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_HeadClient.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.forms;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.forms.XWTForms;
+
+public class Form_HeadClient {
+	public static void main(String[] args) {
+
+		URL url = Form_HeadClient.class.getResource(Form_HeadClient.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWTForms.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_HeadClient.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_HeadClient.xwt
new file mode 100644
index 0000000..c288830
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_HeadClient.xwt
@@ -0,0 +1,11 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation" 
+	   xmlns:x="http://www.eclipse.org/xwt">
+	<Shell.layout>
+		<FillLayout/>
+	</Shell.layout>
+	<Form text="New Form">
+		<Form.headClient>
+			<Button name="Form.HeadClient.Button" text="header"/>
+		</Form.headClient>
+	</Form>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Label.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Label.java
new file mode 100644
index 0000000..073857e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Label.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.forms;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.forms.XWTForms;
+
+public class Form_Label {
+	public static void main(String[] args) {
+
+		URL url = Form_Label.class.getResource(Form_Label.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWTForms.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Label.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Label.xwt
new file mode 100644
index 0000000..96b3b88
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Label.xwt
@@ -0,0 +1,14 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt">
+    <Composite.layout>
+        <GridLayout numColumns="1" />
+    </Composite.layout>
+    <Form name="Form" text="Form Header Title">
+        <Form.body.layout>
+            <GridLayout numColumns="1" />
+        </Form.body.layout>
+        <Form.body>
+	        <Label name="Form.Label" text="form label" />
+        </Form.body>
+    </Form>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_LabelButton.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_LabelButton.java
new file mode 100644
index 0000000..1d13de6
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_LabelButton.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.forms;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.forms.XWTForms;
+
+public class Form_LabelButton {
+	public static void main(String[] args) {
+
+		URL url = Form_LabelButton.class.getResource(Form_LabelButton.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWTForms.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_LabelButton.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_LabelButton.xwt
new file mode 100644
index 0000000..aa3f7f2
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_LabelButton.xwt
@@ -0,0 +1,15 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt">
+    <Composite.layout>
+        <GridLayout numColumns="1" />
+    </Composite.layout>
+    <Form name="Form" text="Form Header Title">
+        <Form.body.layout>
+            <GridLayout numColumns="1" />
+        </Form.body.layout>
+        <Form.body>
+	        <Label name="Form.Label" text="form label" />
+		    <Button name="Form.Button" text="Form button" />
+        </Form.body>
+    </Form>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Section.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Section.java
new file mode 100644
index 0000000..b12d3bc
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Section.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.forms;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.forms.XWTForms;
+
+public class Form_Section {
+	public static void main(String[] args) {
+
+		URL url = Form_Section.class.getResource(Form_Section.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWTForms.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Section.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Section.xwt
new file mode 100644
index 0000000..d6d53ce
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Form_Section.xwt
@@ -0,0 +1,19 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt">
+    <Composite.layout>
+        <GridLayout numColumns="1" />
+    </Composite.layout>
+    <Form name="Form" text="Form Header Title">
+        <Form.body.layout>
+            <GridLayout numColumns="1" />
+        </Form.body.layout>
+        <Form.body>
+			<Section name="Form.Section" x:style="Section.TITLE_BAR|Section.TWISTIE|Section.EXPANDED"
+			    text="Section Two">
+			    <Section.client>
+			        <Label name="Form.Section.Label" text="test" />
+			    </Section.client>
+			</Section>
+        </Form.body>
+    </Form>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/FormsTestSuite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/FormsTestSuite.java
new file mode 100644
index 0000000..f482ec9
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/FormsTestSuite.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.forms;
+
+import org.eclipse.xwt.tests.forms.tableviewer.master.detail.set.Forms_TableViewer_Set_MasterDetail_Tests;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class FormsTestSuite extends TestSuite {
+	public static final Test suite() {
+		return new FormsTestSuite();
+	}
+
+	public FormsTestSuite() {
+		addTest(new TestSuite(FormsTests.class));
+		addTest(new TestSuite(Forms_TableViewer_Set_MasterDetail_Tests.class));
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/FormsTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/FormsTests.java
new file mode 100644
index 0000000..ec49500
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/FormsTests.java
@@ -0,0 +1,226 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.forms;
+
+import java.net.URL;
+
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.widgets.Form;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class FormsTests extends FormTestCase {
+	public void testSection() throws Exception {
+		URL url = FormsTests.class.getResource(Section.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkVisibility("Section",
+						org.eclipse.ui.forms.widgets.Section.class);
+				checkVisibility("Section.Label", Label.class);
+			}
+		});
+	}
+
+	public void testForm_Label() throws Exception {
+		URL url = FormsTests.class.getResource(Form_Label.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkVisibility("Form", org.eclipse.ui.forms.widgets.Form.class);
+				checkVisibility("Form.Label", Label.class);
+			}
+		});
+	}
+
+	public void testForm_Button() throws Exception {
+		URL url = FormsTests.class.getResource(Form_Button.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkVisibility("Form", org.eclipse.ui.forms.widgets.Form.class);
+				checkVisibility("Form.Button", Button.class);
+			}
+		});
+	}
+
+	public void testForm_LabelButton() throws Exception {
+		URL url = FormsTests.class.getResource(Form_LabelButton.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkVisibility("Form", org.eclipse.ui.forms.widgets.Form.class);
+				checkVisibility("Form.Label", Label.class);
+				checkVisibility("Form.Button", Button.class);
+			}
+		});
+	}
+
+	public void testForm_Section() throws Exception {
+		URL url = FormsTests.class.getResource(Form_Section.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkVisibility("Form", org.eclipse.ui.forms.widgets.Form.class);
+				checkVisibility("Form.Section",
+						org.eclipse.ui.forms.widgets.Section.class);
+				checkVisibility("Form.Section.Label", Label.class);
+			}
+		});
+	}
+
+	public void testForm_HeadClient() throws Exception {
+		URL url = FormsTests.class.getResource(Form_HeadClient.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkVisibility("Form.HeadClient.Button", Button.class);
+			}
+		});
+	}
+
+	public void testForm_Background() throws Exception {
+		URL url = FormsTests.class.getResource(Form_Background.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Form form1 = (Form) XWT.findElementByName(root,
+						"FormBackground");
+				Color form1Color = form1.getBackground();
+				Form form2 = (Form) XWT.findElementByName(root, "Form");
+				Color form2Color = form2.getBackground();
+				assertFalse(form1Color.equals(form2Color));
+			}
+		});
+	}
+
+	public void testForm_ButtonSection() throws Exception {
+		URL url = FormsTests.class.getResource(Form_ButtonSection.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkVisibility("Form", org.eclipse.ui.forms.widgets.Form.class);
+				checkVisibility("Form.Button", Button.class);
+				checkVisibility("Form.Section",
+						org.eclipse.ui.forms.widgets.Section.class);
+				checkVisibility("Form.Section.Label", Label.class);
+			}
+		});
+	}
+
+	public void testScrolledForm() throws Exception {
+		URL url = FormsTests.class.getResource(ScrolledForm.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkVisibility("ScrolledForm",
+						org.eclipse.ui.forms.widgets.ScrolledForm.class);
+				checkVisibility("ScrolledForm.SashForm", SashForm.class);
+				checkVisibility("ScrolledForm.SashForm.Section1",
+						org.eclipse.ui.forms.widgets.Section.class);
+				checkVisibility("ScrolledForm.SashForm.Section1.Composite",
+						Composite.class);
+				checkVisibility(
+						"ScrolledForm.SashForm.Section1.Composite.Label",
+						Label.class);
+				checkVisibility(
+						"ScrolledForm.SashForm.Section1.Composite.Text",
+						Text.class);
+				checkVisibility("ScrolledForm.SashForm.Section2",
+						org.eclipse.ui.forms.widgets.Section.class);
+				checkVisibility("ScrolledForm.SashForm.Section2.Label",
+						Label.class);
+				checkVisibility("ScrolledForm.Label", Label.class);
+				checkChildren("ScrolledForm", 1);
+				checkChildren("ScrolledForm", "Body", 2);
+			}
+		});
+	}
+
+	public void testForm_Group_Adapt() throws Exception {
+		URL url = FormsTests.class.getResource(Form_Group.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkVisibility("Form.Group", Group.class);
+				Group group = (Group) XWT.findElementByName(root, "Form.Group");
+				Color color = group.getBackground();
+				assertEquals(color.getBlue(), 255);
+				assertEquals(color.getRed(), 255);
+				assertEquals(color.getGreen(), 255);
+			}
+		});
+	}
+
+	public void testExpandableComposite_Composite() throws Exception {
+		URL url = FormsTests.class
+				.getResource(ExpandableComposite_Composite.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				org.eclipse.ui.forms.widgets.ExpandableComposite expandableComposite = (org.eclipse.ui.forms.widgets.ExpandableComposite) XWT
+						.findElementByName(root,
+								"ExpandableComposite");
+				checkVisibility("ExpandableComposite.Label", Label.class);
+				assertTrue(expandableComposite.isExpanded());
+				assertTrue(expandableComposite.getClient() instanceof Composite);
+			}
+		});
+	}
+
+	public void testExpandableComposite_Label() throws Exception {
+		URL url = FormsTests.class
+				.getResource(ExpandableComposite_Label.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				org.eclipse.ui.forms.widgets.ExpandableComposite expandableComposite = (org.eclipse.ui.forms.widgets.ExpandableComposite) XWT
+						.findElementByName(root,
+								"ExpandableComposite");
+				checkVisibility("ExpandableComposite.Label", Label.class);
+				assertTrue(expandableComposite.isExpanded());
+				assertTrue(expandableComposite.getClient() instanceof Label);
+			}
+		});
+	}
+
+	public void testExpandableComposite_Label_NotExpanded() throws Exception {
+		URL url = FormsTests.class
+				.getResource(ExpandableComposite_Label_NotExpanded.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				org.eclipse.ui.forms.widgets.ExpandableComposite expandableComposite = (org.eclipse.ui.forms.widgets.ExpandableComposite) XWT
+						.findElementByName(root,
+								"ExpandableComposite");
+				checkVisibility("ExpandableComposite.Label", Label.class);
+				assertFalse(expandableComposite.isExpanded());
+				assertTrue(expandableComposite.getClient() instanceof Label);
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ScrolledForm.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ScrolledForm.java
new file mode 100644
index 0000000..70f8f0a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ScrolledForm.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.forms;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.forms.XWTForms;
+
+public class ScrolledForm {
+	public static void main(String[] args) {
+
+		URL url = ScrolledForm.class.getResource(ScrolledForm.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWTForms.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ScrolledForm.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ScrolledForm.xwt
new file mode 100644
index 0000000..9d3572b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/ScrolledForm.xwt
@@ -0,0 +1,38 @@
+<ScrolledForm text="Form title"
+    xmlns="http://www.eclipse.org/xwt/presentation"
+xmlns:x="http://www.eclipse.org/xwt"
+	name="ScrolledForm" >
+    <ScrolledForm.body>
+        <ScrolledForm.body.layout>
+            <GridLayout numColumns="1" />
+        </ScrolledForm.body.layout>
+        <SashForm name="ScrolledForm.SashForm">
+            <Section name="ScrolledForm.SashForm.Section1"
+x:style="Section.TITLE_BAR|Section.TWISTIE|Section.EXPANDED"
+                text="Section One">
+                <Section.client>
+                    <Composite name="ScrolledForm.SashForm.Section1.Composite">
+                        <Composite.layout>
+                            <GridLayout numColumns="2" />
+                        </Composite.layout>
+                        <Label name="ScrolledForm.SashForm.Section1.Composite.Label" text="Your Name" />
+                        <Text name="ScrolledForm.SashForm.Section1.Composite.Text" x:style="BORDER" text="my name">
+                            <Text.layoutData>
+                                <GridData horizontalAlignment="FILL"
+                                    grabExcessHorizontalSpace="true" />
+                            </Text.layoutData>
+                        </Text>
+                    </Composite>
+                </Section.client>
+            </Section>
+            <Section name="ScrolledForm.SashForm.Section2"
+x:style="Section.TITLE_BAR|Section.TWISTIE|Section.EXPANDED"
+                text="Section Two">
+                <Section.client>
+                    <Label name="ScrolledForm.SashForm.Section2.Label" text="test" />
+                </Section.client>
+            </Section>
+        </SashForm>
+        <Label name="ScrolledForm.Label" text="DUMMY" />
+    </ScrolledForm.body>
+</ScrolledForm>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Section.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Section.java
new file mode 100644
index 0000000..4c1c1d4
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Section.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.forms;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.forms.XWTForms;
+
+public class Section {
+	public static void main(String[] args) {
+
+		URL url = Section.class.getResource(Section.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWTForms.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Section.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Section.xwt
new file mode 100644
index 0000000..519644e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/Section.xwt
@@ -0,0 +1,13 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:test.ui"
+    xmlns:x="http://www.eclipse.org/xwt">
+    <Composite.layout>
+        <GridLayout numColumns="1" />
+    </Composite.layout>
+	<Section name="Section" x:style="Section.TITLE_BAR|Section.TWISTIE|Section.EXPANDED"
+        text="Section Two">
+        <Section.client>
+            <Label name="Section.Label" text="test" />
+        </Section.client>
+    </Section>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/Company.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/Company.java
new file mode 100644
index 0000000..2839381
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/Company.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.forms.tableviewer.master.detail.set;
+
+import java.util.Set;
+
+/**
+ * 
+ * @author yyang
+ */
+public class Company {
+	protected String name;
+
+	protected Set<Employee> employees;
+
+	public Company() {
+	}
+
+	public Set<Employee> getEmployees() {
+		return employees;
+	}
+
+	public void setEmployees(Set<Employee> employees) {
+		this.employees = employees;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/Employee.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/Employee.java
new file mode 100644
index 0000000..f3afef9
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/Employee.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.forms.tableviewer.master.detail.set;
+
+public class Employee {
+	protected String name;
+	protected int age;
+
+	public int getAge() {
+		return age;
+	}
+
+	public void setAge(int age) {
+		this.age = age;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/Forms_TableViewer_Set_MasterDetail_Tests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/Forms_TableViewer_Set_MasterDetail_Tests.java
new file mode 100644
index 0000000..532be8a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/Forms_TableViewer_Set_MasterDetail_Tests.java
@@ -0,0 +1,92 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.forms.tableviewer.master.detail.set;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.forms.FormTestCase;
+
+public class Forms_TableViewer_Set_MasterDetail_Tests extends FormTestCase {
+
+	public void testTableViewer_MasterDetail() throws Exception {
+		URL url = TableViewer_MasterDetail.class
+				.getResource(TableViewer_MasterDetail.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 2);
+				if ("Jin".equals(items[1].getText(0))) {
+					assertEquals(items[1].getText(1), "27");
+					assertEquals(items[0].getText(0), "Thomas");
+					assertEquals(items[0].getText(1), "32");
+				} else if ("Thomas".equals(items[1].getText(0))) {
+					assertEquals(items[1].getText(1), "32");
+					assertEquals(items[0].getText(0), "Jin");
+					assertEquals(items[0].getText(1), "27");
+				}
+			}
+		});
+	}
+
+	public void testTableViewer_MasterDetail_DetailDisplay() throws Exception {
+		URL url = TableViewer_MasterDetail.class
+				.getResource(TableViewer_MasterDetail.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+
+				IObservableValue observableValue = XWT.findObservableValue(
+						root, tableViewer, "singleSelection");
+
+				Company company = (Company) XWT.getDataContext(element);
+				Employee employee = company.getEmployees().iterator().next();
+				observableValue.setValue(employee);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkListViewer();
+			}
+
+			public void checkListViewer() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 2);
+
+				Label label = (Label) XWT.findElementByName(root, "Label");
+				assertTrue(label != null);
+
+				IObservableValue observableValue = XWT.findObservableValue(
+						root, tableViewer, "singleSelection");
+				Object selected = observableValue.getValue();
+				assertTrue(selected instanceof Employee);
+				Employee employee = (Employee) selected;
+				assertEquals(label.getText(), employee.getName());
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/Industry.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/Industry.java
new file mode 100644
index 0000000..52a8557
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/Industry.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.forms.tableviewer.master.detail.set;
+
+import java.util.Set;
+
+/**
+ * 
+ * @author yyang
+ */
+public class Industry {
+	protected String name;
+	protected Set<Company> members;
+
+	public Set<Company> getMembers() {
+		return members;
+	}
+
+	public void setMembers(Set<Company> members) {
+		this.members = members;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/TableViewer_MasterDetail.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/TableViewer_MasterDetail.java
new file mode 100644
index 0000000..3576dac
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/TableViewer_MasterDetail.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.forms.tableviewer.master.detail.set;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.forms.XWTForms;
+
+/**
+ * @author jliu
+ */
+public class TableViewer_MasterDetail {
+	public static void main(String[] args) {
+
+		URL url = TableViewer_MasterDetail.class
+				.getResource(TableViewer_MasterDetail.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWTForms.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/TableViewer_MasterDetail.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/TableViewer_MasterDetail.xwt
new file mode 100644
index 0000000..41ab98c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/forms/tableviewer/master/detail/set/TableViewer_MasterDetail.xwt
@@ -0,0 +1,40 @@
+<ScrolledForm xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:j="clr-namespace:org.eclipse.xwt.tests.forms.tableviewer.master.detail.set"
+	DataContext="{StaticResource myCompany}"
+	title="Master Detail - Forms">
+	<ScrolledForm.resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<j:Employee Name="Thomas" Age="32" />
+				<j:Employee Name="Jin" Age="27" />
+			</j:Company.employees>
+		</j:Company>
+	</ScrolledForm.resources>
+	<ScrolledForm.body>
+		<ScrolledForm.body.layout>
+			<GridLayout numColumns="1" />
+		</ScrolledForm.body.layout>
+		<TableViewer Name="TableViewer" input="{Binding Path=employees}">
+			<TableViewer.columns>
+				<TableViewerColumn width="150" text="Name"
+					bindingPath="name" />
+				<TableViewerColumn width="150" text="Age"
+					bindingPath="age" />
+			</TableViewer.columns>
+			<TableViewer.table HeaderVisible="true">
+			</TableViewer.table>
+			<TableViewer.control.layoutData>
+				<GridData horizontalAlignment="FILL"
+					grabExcessHorizontalSpace="true" />
+			</TableViewer.control.layoutData>
+		</TableViewer>
+		<Label name="Label"
+			text="{Binding ElementName=TableViewer,path=singleSelection.(j:Employee.name)}">
+			<Label.layoutData>
+				<GridData horizontalAlignment="FILL"
+					grabExcessHorizontalSpace="true" />
+			</Label.layoutData>
+		</Label>
+	</ScrolledForm.body>
+</ScrolledForm>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/Messages.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/Messages.java
new file mode 100644
index 0000000..a871455
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/Messages.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.i18n;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+	private static final String BUNDLE_NAME = "org.eclipse.xwt.tests.i18n.messages"; // NON-NLS-1
+
+	public static String title;
+
+	static {
+		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControl.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControl.java
new file mode 100644
index 0000000..7e3c105
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControl.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.i18n;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class UserControl {
+
+	/**
+	 * @param args
+	 */
+	public static void main(String[] args) {
+
+		URL url = UserControl.class.getResource(UserControl.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControl.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControl.xwt
new file mode 100644
index 0000000..8a150d6
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControl.xwt
@@ -0,0 +1,8 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:java="clr-namespace:org.eclipse.xwt.tests.i18n">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>	
+	<Button Text="{x:Static java:Messages.title}" />
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControlEncoding.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControlEncoding.java
new file mode 100644
index 0000000..0005a11
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControlEncoding.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.i18n;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class UserControlEncoding {
+
+	/**
+	 * @param args
+	 */
+	public static void main(String[] args) {
+
+		URL url = UserControlEncoding.class.getResource(UserControlEncoding.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControlEncoding.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControlEncoding.xwt
new file mode 100644
index 0000000..7a6e0f0
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControlEncoding.xwt
@@ -0,0 +1,7 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>	
+	<Button Text="中文" />
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControlEncodingUTF8.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControlEncodingUTF8.java
new file mode 100644
index 0000000..0ff0e1a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControlEncodingUTF8.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.i18n;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class UserControlEncodingUTF8 {
+
+	/**
+	 * @param args
+	 */
+	public static void main(String[] args) {
+
+		URL url = UserControlEncodingUTF8.class.getResource(UserControlEncodingUTF8.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControlEncodingUTF8.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControlEncodingUTF8.xwt
new file mode 100644
index 0000000..7a7ff8c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/UserControlEncodingUTF8.xwt
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>	
+	<Button Text="中文" />
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/messages.properties b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/messages.properties
new file mode 100644
index 0000000..44da783
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/i18n/messages.properties
@@ -0,0 +1,13 @@
+###############################################################################
+# Copyright (c) 2010 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+title = Hello world!
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/internal/xml/XMLTestSuite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/internal/xml/XMLTestSuite.java
new file mode 100644
index 0000000..8d7cd52
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/internal/xml/XMLTestSuite.java
@@ -0,0 +1,27 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *   CEA LIST - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.xwt.tests.internal.xml;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class XMLTestSuite extends TestSuite {
+	public static final Test suite() {
+		return new XMLTestSuite();
+	}
+
+	public XMLTestSuite() {
+		addTest(new TestSuite(XMLTests.class));
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/internal/xml/XMLTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/internal/xml/XMLTests.java
new file mode 100644
index 0000000..fa84d05
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/internal/xml/XMLTests.java
@@ -0,0 +1,185 @@
+/*****************************************************************************
+ * Copyright (c) 2013, 2014 CEA LIST and others.
+ * 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *   CEA LIST - Initial API and implementation
+ *   Christian W. Damus (CEA) - bug 435432
+ *   
+ *****************************************************************************/
+package org.eclipse.xwt.tests.internal.xml;
+
+import java.io.IOException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLStreamHandler;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.IXWTLoader;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+import org.eclipse.swt.widgets.Button;
+
+/**
+ * Test suite for the internals of XML parsing.
+ */
+public class XMLTests extends XWTTestCase {
+	static final String HELLO_BUTTON_FILE_NAME = "helloButton" + IConstants.XWT_EXTENSION_SUFFIX;
+	
+	static final int ITERATIONS = 3;
+
+	/**
+	 * Tests that URLs employing custom stream handlers (identified by custom URL schemes)
+	 * are correctly manipulated by XWT such that their contents are accessed at run-time.
+	 */
+	public void testURLWithCustomStreamHandler() throws Exception {
+		final String filename = HELLO_BUTTON_FILE_NAME;
+		
+		Map<String, URL> delegates = new java.util.HashMap<String, URL>();
+		delegates.put(filename, XMLTests.class.getResource(filename));
+		
+		URL url = new URL(null, "delegate:" + filename, new DelegatingURLStreamHandler(delegates));
+		
+		runTest(url, new Runnable() {
+
+			public void run() {
+				Object element = XWT.findElementByName(root, "helloButton");
+				assertTrue(element instanceof Button);
+			}
+		});
+	}
+	
+	/**
+	 * Control test case checking that the absence of an XML parsing option results in no caching.
+	 * 
+	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=435432
+	 */
+	public void testParsedXMLElementCaching_None() throws Exception {
+		final HitCountingURLStreamHandler handler = new HitCountingURLStreamHandler();
+		final Map<String, Object> options = new HashMap<String, Object>();
+		final URL resourceURL = new URL(null, XMLTests.class.getResource(HELLO_BUTTON_FILE_NAME).toExternalForm(), handler);
+		
+		Runnable verifier = new Runnable() {
+			private int expectedHitCount = 0;
+			
+			@Override
+			public void run() {
+				expectedHitCount++; // No caching means hitting the URL each time
+				assertEquals(expectedHitCount, handler.getHitCount());
+			}
+		};
+		
+		for (int i = 0; i < ITERATIONS; i++) {
+			runTest(resourceURL, options, verifier);
+		}
+	}
+	
+	/**
+	 * Tests that the Boolean XML caching option value is correctly respected and results in the cache being used.
+	 * 
+	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=435432
+	 */
+	public void testParsedXMLElementCaching_Boolean() throws Exception {
+		final HitCountingURLStreamHandler handler = new HitCountingURLStreamHandler();
+		final Map<String, Object> options = new HashMap<String, Object>();
+		final URL resourceURL = new URL(null, XMLTests.class.getResource(HELLO_BUTTON_FILE_NAME).toExternalForm(), handler);
+		
+		Runnable verifier = new Runnable() {
+			private final int expectedHitCount = 1;
+			
+			@Override
+			public void run() {
+				assertEquals(expectedHitCount, handler.getHitCount());
+			}
+		};
+		
+		options.put(IXWTLoader.XML_CACHE_PROPERTY, true);
+		
+		// Hit the loader a few times
+		for (int i = 0; i < ITERATIONS; i++) {
+			runTest(resourceURL, options, verifier);
+		}
+	}
+	
+	/**
+	 * Tests that the Integer XML caching option value is correctly respected and results in the cache being used.
+	 * 
+	 * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=435432
+	 */
+	public void testParsedXMLElementCaching_Integer() throws Exception {
+		final HitCountingURLStreamHandler handler = new HitCountingURLStreamHandler();
+		final Map<String, Object> options = new HashMap<String, Object>();
+		final URL resourceURL = new URL(null, XMLTests.class.getResource(HELLO_BUTTON_FILE_NAME).toExternalForm(), handler);
+		
+		Runnable verifier = new Runnable() {
+			private final int expectedHitCount = 1;
+			
+			@Override
+			public void run() {
+				assertEquals(expectedHitCount, handler.getHitCount());
+			}
+		};
+		
+		// Pretty small cache, but enough for this test
+		options.put(IXWTLoader.XML_CACHE_PROPERTY, 1);
+		
+		for (int i = 0; i < ITERATIONS; i++) {
+			runTest(resourceURL, options, verifier);
+		}
+	}
+
+	//
+	// Test framework
+	//
+
+	final class DelegatingURLStreamHandler extends URLStreamHandler {
+
+		private final Map<String, URL> delegates;
+
+		public DelegatingURLStreamHandler(Map<String, URL> delegates) {
+			super();
+
+			this.delegates = delegates;
+		}
+
+		@Override
+		protected URLConnection openConnection(URL u) throws IOException {
+			URL delegate = delegates.get(u.getFile());
+			if(delegate == null) {
+				throw new IOException("No delegate for " + u.getFile());
+			}
+
+			return delegate.openConnection();
+		}
+	}
+	
+	final class HitCountingURLStreamHandler extends URLStreamHandler {
+		private int hitCount;
+		
+		HitCountingURLStreamHandler() {
+			super();
+		}
+		
+		public int getHitCount() {
+			return hitCount;
+		}
+		
+		private void increment() {
+			hitCount++;
+		}
+		
+		@Override
+		protected URLConnection openConnection(URL u) throws IOException {
+			increment();
+			return new URL(u.toExternalForm()).openConnection();
+		}
+	}
+}
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/internal/xml/helloButton.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/internal/xml/helloButton.xwt
similarity index 100%
rename from org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/internal/xml/helloButton.xwt
rename to tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/internal/xml/helloButton.xwt
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/JFaceTestSuite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/JFaceTestSuite.java
new file mode 100644
index 0000000..e4fc766
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/JFaceTestSuite.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.eclipse.xwt.tests.jface.comboviewer.array.JFaceComboViewer_ArrayTests;
+import org.eclipse.xwt.tests.jface.comboviewer.collection.JFaceComboViewer_CollectionTests;
+import org.eclipse.xwt.tests.jface.comboviewer.enumeration.JFaceComboViewer_EnumTests;
+import org.eclipse.xwt.tests.jface.listviewer.array.JFaceListViewer_ArrayTests;
+import org.eclipse.xwt.tests.jface.listviewer.collection.JFaceListViewer_CollectionTests;
+import org.eclipse.xwt.tests.jface.tableviewer.JFaceTableViewer_Tests;
+import org.eclipse.xwt.tests.jface.tableviewer.filter.JFaceTableViewer_Filters_Tests;
+import org.eclipse.xwt.tests.jface.tableviewer.master.detail.JFaceTableViewer_MasterDetail_Tests;
+import org.eclipse.xwt.tests.jface.tableviewer.master.detail.array.JFaceTableViewer_Array_MasterDetail_Tests;
+import org.eclipse.xwt.tests.jface.tableviewer.master.detail.list.JFaceTableViewer_List_MasterDetail_Tests;
+import org.eclipse.xwt.tests.jface.tableviewer.master.detail.set.JFaceTableViewer_Set_MasterDetail_Tests;
+
+public class JFaceTestSuite extends TestSuite {
+	public static final Test suite() {
+		return new JFaceTestSuite();
+	}
+
+	public JFaceTestSuite() {
+		addTest(new TestSuite(JFaceTests.class));
+		addTest(new TestSuite(JFaceListViewer_ArrayTests.class));
+		addTest(new TestSuite(JFaceListViewer_CollectionTests.class));
+		addTest(new TestSuite(JFaceTableViewer_Tests.class));
+		addTest(new TestSuite(JFaceTableViewer_Filters_Tests.class));
+		addTest(new TestSuite(JFaceTableViewer_MasterDetail_Tests.class));
+		addTest(new TestSuite(JFaceTableViewer_List_MasterDetail_Tests.class));
+		addTest(new TestSuite(JFaceTableViewer_Set_MasterDetail_Tests.class));
+		addTest(new TestSuite(JFaceTableViewer_Array_MasterDetail_Tests.class));
+		addTest(new TestSuite(JFaceComboViewer_ArrayTests.class));
+		addTest(new TestSuite(JFaceComboViewer_CollectionTests.class));	
+		addTest(new TestSuite(JFaceComboViewer_EnumTests.class));	
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/JFaceTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/JFaceTests.java
new file mode 100644
index 0000000..c628c68
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/JFaceTests.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface;
+
+import java.net.URL;
+
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class JFaceTests extends XWTTestCase {
+
+	public void testListViewer() throws Exception {
+		URL url = JFaceTests.class.getResource(ListViewer_Name.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkListViewer();
+			}
+
+			public void checkListViewer() {
+				Object element = XWT.findElementByName(root, "listView");
+				assertTrue(element instanceof ListViewer);
+			}
+		});
+	}
+
+	// TODO add Font and Color
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/ListViewer_Name.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/ListViewer_Name.java
new file mode 100644
index 0000000..dd09c2c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/ListViewer_Name.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class ListViewer_Name {
+	public static void main(String[] args) {
+
+		URL url = ListViewer_Name.class.getResource(ListViewer_Name.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/ListViewer_Name.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/ListViewer_Name.xwt
new file mode 100644
index 0000000..c1ef044
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/ListViewer_Name.xwt
@@ -0,0 +1,13 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<ListViewer Name="listView">
+		<ListViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</ListViewer.control.layoutData>
+	</ListViewer>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ComboViewer.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ComboViewer.java
new file mode 100644
index 0000000..4a24771
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ComboViewer.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.comboviewer.array;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.IObservableCollection;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class ComboViewer {
+	public static void main(String[] args) {
+
+		URL url = ComboViewer.class.getResource(ComboViewer.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void addPerson(Object sender, Event event) {
+		org.eclipse.jface.viewers.Viewer viewer = (org.eclipse.jface.viewers.Viewer) XWT
+				.findElementByName(event.widget, "ComboViewer");
+		IObservableCollection collection = (IObservableCollection) viewer
+				.getInput();
+		Employee employee = new Employee();
+		employee.setName("New hired one");
+		collection.add(employee);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ComboViewer.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ComboViewer.xwt
new file mode 100644
index 0000000..d1f3069
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ComboViewer.xwt
@@ -0,0 +1,32 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.comboviewer.array"
+    x:Class="org.eclipse.xwt.tests.jface.comboviewer.array.ComboViewer"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<x:Array Type="j:Employee">
+					<j:Employee Name="Thomas"/>
+					<j:Employee Name="Jin"/>
+				</x:Array>
+			</j:Company.employees>
+		</j:Company>
+	</Composite.resources>
+	<ComboViewer name="ComboViewer" input="{Binding Path=employees}">
+		<ComboViewer.contentProvider>
+			<j:ContentProvider/>
+		</ComboViewer.contentProvider>
+		<ComboViewer.labelProvider>
+			<j:LabelProvider/>
+		</ComboViewer.labelProvider>
+		<ComboViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>
+		</ComboViewer.control.layoutData>
+	</ComboViewer>
+	<Button name="Button" text="Add Person" SelectionEvent="addPerson" />
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ComboViewer_BindingPath.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ComboViewer_BindingPath.java
new file mode 100644
index 0000000..9e02383
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ComboViewer_BindingPath.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.comboviewer.array;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.IObservableCollection;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class ComboViewer_BindingPath {
+	public static void main(String[] args) {
+
+		URL url = ComboViewer_BindingPath.class
+				.getResource(ComboViewer_BindingPath.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void addPerson(Object sender, Event event) {
+		org.eclipse.jface.viewers.Viewer viewer = (org.eclipse.jface.viewers.Viewer) XWT
+				.findElementByName(event.widget, "ComboViewer");
+		IObservableCollection collection = (IObservableCollection) viewer
+				.getInput();
+		Employee employee = new Employee();
+		employee.setName("New hired one");
+		collection.add(employee);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ComboViewer_BindingPath.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ComboViewer_BindingPath.xwt
new file mode 100644
index 0000000..a8568ee
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ComboViewer_BindingPath.xwt
@@ -0,0 +1,29 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.comboviewer.array"
+    x:Class="org.eclipse.xwt.tests.jface.comboviewer.array.ComboViewer"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<x:Array Type="j:Employee">
+					<j:Employee Name="Thomas"/>
+					<j:Employee Name="Jin"/>
+				</x:Array>
+			</j:Company.employees>
+		</j:Company>
+	</Composite.resources>
+	<ComboViewer name="ComboViewer" input="{Binding Path=employees}" bindingPath="name">
+		<ComboViewer.contentProvider>
+			<j:ContentProvider/>
+		</ComboViewer.contentProvider>
+		<ComboViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>
+		</ComboViewer.control.layoutData>
+	</ComboViewer>
+	<Button name="Button" text="Add Person" SelectionEvent="addPerson" />
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/Company.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/Company.java
new file mode 100644
index 0000000..be685e3
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/Company.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.comboviewer.array;
+
+public class Company {
+	protected Employee[] employees;
+
+	public Company() {
+	}
+
+	public Employee[] getEmployees() {
+		return employees;
+	}
+
+	public void setEmployees(Employee[] employees) {
+		this.employees = employees;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ContentProvider.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ContentProvider.java
new file mode 100644
index 0000000..8ee7ccb
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/ContentProvider.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.comboviewer.array;
+
+import java.util.Collection;
+
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+
+public class ContentProvider implements IStructuredContentProvider {
+	static Object[] EMPTY = new Object[] {};
+
+	public ContentProvider() {
+	}
+
+	public Object[] getElements(Object inputElement) {
+		if (inputElement instanceof Collection) {
+			Collection collection = (Collection) inputElement;
+			return collection.toArray();
+		} else if (inputElement instanceof Object[]) {
+			return (Object[]) inputElement;
+		}
+		return EMPTY;
+	}
+
+	public void dispose() {
+	}
+
+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/Employee.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/Employee.java
new file mode 100644
index 0000000..1c2d2ca
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/Employee.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.comboviewer.array;
+
+public class Employee {
+	protected String name;
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/JFaceComboViewer_ArrayTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/JFaceComboViewer_ArrayTests.java
new file mode 100644
index 0000000..babfdd8
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/JFaceComboViewer_ArrayTests.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.comboviewer.array;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.IObservableCollection;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class JFaceComboViewer_ArrayTests extends XWTTestCase {
+
+	public void testListViewer() throws Exception {
+		URL url = JFaceComboViewer_ArrayTests.class
+				.getResource(ComboViewer.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkListViewer();
+			}
+
+			public void checkListViewer() {
+				Object element = XWT.findElementByName(root, "ComboViewer");
+				assertTrue(element instanceof org.eclipse.jface.viewers.ComboViewer);
+				org.eclipse.jface.viewers.ComboViewer comboViewer = (org.eclipse.jface.viewers.ComboViewer) element;
+				String[] items = comboViewer.getCombo().getItems();
+				assertTrue(items.length == 2);
+				assertEquals(items[0], "Thomas");
+				assertEquals(items[1], "Jin");
+			}
+		});
+	}
+
+	public void test_ListViewer_DataBinding() {
+		URL url = JFaceComboViewer_ArrayTests.class
+				.getResource(ComboViewer.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button button = (Button) XWT.findElementByName(root, "Button");
+				selectButton(button);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				org.eclipse.jface.viewers.ComboViewer comboViewer = (org.eclipse.jface.viewers.ComboViewer) XWT
+						.findElementByName(root, "ComboViewer");
+				assertTrue(comboViewer.getInput() instanceof IObservableCollection);
+				IObservableCollection collection = (IObservableCollection) comboViewer
+						.getInput();
+				assertTrue(collection.size() == 3);
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/LabelProvider.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/LabelProvider.java
new file mode 100644
index 0000000..1aa1015
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/array/LabelProvider.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.comboviewer.array;
+
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.swt.graphics.Image;
+
+public class LabelProvider implements ILabelProvider {
+
+	public Image getImage(Object element) {
+		return null;
+	}
+
+	public String getText(Object element) {
+		if (element instanceof Employee) {
+			Employee employee = (Employee) element;
+			return employee.getName();
+		}
+		return element.toString();
+	}
+
+	public void addListener(ILabelProviderListener listener) {
+	}
+
+	public void dispose() {
+	}
+
+	public boolean isLabelProperty(Object element, String property) {
+		return false;
+	}
+
+	public void removeListener(ILabelProviderListener listener) {
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer.java
new file mode 100644
index 0000000..bc463a7
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.comboviewer.collection;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.IObservableCollection;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class ComboViewer {
+	public static void main(String[] args) {
+
+		URL url = ComboViewer.class.getResource(ComboViewer.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void addPerson(Object sender, Event event) {
+		org.eclipse.jface.viewers.Viewer viewer = (org.eclipse.jface.viewers.Viewer) XWT
+				.findElementByName(event.widget, "ComboViewer");
+		IObservableCollection collection = (IObservableCollection) viewer
+				.getInput();
+		Employee employee = new Employee();
+		employee.setName("New hired one");
+		collection.add(employee);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer.xwt
new file mode 100644
index 0000000..6515915
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer.xwt
@@ -0,0 +1,30 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.comboviewer.collection"
+    x:Class="org.eclipse.xwt.tests.jface.comboviewer.collection.ComboViewer"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<j:Employee Name="Thomas"/>
+				<j:Employee Name="Jin"/>
+			</j:Company.employees>
+		</j:Company>
+	</Composite.resources>
+	<ComboViewer name="ComboViewer" input="{Binding Path=employees}">
+		<ComboViewer.contentProvider>
+			<ObservableListContentProvider/>
+		</ComboViewer.contentProvider>
+		<ComboViewer.labelProvider>
+			<j:LabelProvider/>
+		</ComboViewer.labelProvider>
+		<ComboViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>
+		</ComboViewer.control.layoutData>
+	</ComboViewer>
+	<Button name="Button" text="Add Person" SelectionEvent="addPerson" />
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_BindingPath.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_BindingPath.java
new file mode 100644
index 0000000..15caa4e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_BindingPath.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.comboviewer.collection;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.IObservableCollection;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class ComboViewer_BindingPath {
+	public static void main(String[] args) {
+
+		URL url = ComboViewer_BindingPath.class
+				.getResource(ComboViewer_BindingPath.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void addPerson(Object sender, Event event) {
+		org.eclipse.jface.viewers.Viewer viewer = (org.eclipse.jface.viewers.Viewer) XWT
+				.findElementByName(event.widget, "ListViewer");
+		IObservableCollection collection = (IObservableCollection) viewer
+				.getInput();
+		Employee employee = new Employee();
+		employee.setName("New hired one");
+		collection.add(employee);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_BindingPath.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_BindingPath.xwt
new file mode 100644
index 0000000..3e32931
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_BindingPath.xwt
@@ -0,0 +1,24 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.comboviewer.collection"
+    x:Class="org.eclipse.xwt.tests.jface.comboviewer.collection.ComboViewer"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<j:Employee Name="Thomas"/>
+				<j:Employee Name="Jin"/>
+			</j:Company.employees>
+		</j:Company>
+	</Composite.resources>
+	<ComboViewer name="ComboViewer" input="{Binding Path=employees}" bindingPath="name">
+		<ComboViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>
+		</ComboViewer.control.layoutData>
+	</ComboViewer>
+	<Button name="Button" text="Add Person" SelectionEvent="addPerson" />
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_CollectionViewSource.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_CollectionViewSource.java
new file mode 100644
index 0000000..860b497
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_CollectionViewSource.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.comboviewer.collection;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.IObservableCollection;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class ComboViewer_CollectionViewSource {
+	public static void main(String[] args) {
+
+		URL url = ComboViewer_CollectionViewSource.class
+				.getResource(ComboViewer_CollectionViewSource.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void addPerson(Object sender, Event event) {
+		org.eclipse.jface.viewers.Viewer viewer = (org.eclipse.jface.viewers.Viewer) XWT
+				.findElementByName(event.widget, "ComboViewer1");
+		IObservableCollection collection = (IObservableCollection) viewer
+				.getInput();
+		Employee employee = new Employee();
+		employee.setName("New hired one");
+		collection.add(employee);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_CollectionViewSource.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_CollectionViewSource.xwt
new file mode 100644
index 0000000..2feb808
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_CollectionViewSource.xwt
@@ -0,0 +1,54 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.comboviewer.collection"
+    x:Class="org.eclipse.xwt.tests.jface.comboviewer.collection.ComboViewer_CollectionViewSource"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<FillLayout/>
+	</Composite.layout>
+	<Composite.resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<j:Employee Name="Thomas"/>
+				<j:Employee Name="Jin"/>
+			</j:Company.employees>
+		</j:Company>
+		<CollectionViewSource x:Key="viewSource" source="{Binding Path=employees}"/>
+	</Composite.resources>
+
+	<Composite>
+		<Composite.layout>
+			<GridLayout numColumns="2"/>
+		</Composite.layout>
+			
+		<Composite.resources>
+			<CollectionViewSource x:Key="viewSource" source="{Binding Path=employees}"/>
+		</Composite.resources>
+		
+		<ComboViewer name="ComboViewer1" input="{StaticResource viewSource}">
+			<ComboViewer.contentProvider>
+				<ObservableListContentProvider/>
+			</ComboViewer.contentProvider>
+			<ComboViewer.labelProvider>
+				<j:LabelProvider/>
+			</ComboViewer.labelProvider>
+			<ComboViewer.control.layoutData>
+				<GridData horizontalAlignment="FILL" verticalAlignment="FILL"
+	         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>
+			</ComboViewer.control.layoutData>
+		</ComboViewer>
+		<Button name="Button" text="Add Person" SelectionEvent="addPerson" />
+		<ComboViewer name="ComboViewer2" input="{StaticResource viewSource}">
+			<ComboViewer.contentProvider>
+				<ObservableListContentProvider/>
+			</ComboViewer.contentProvider>
+			<ComboViewer.labelProvider>
+				<j:LabelProvider/>
+			</ComboViewer.labelProvider>
+			<ComboViewer.control.layoutData>
+				<GridData horizontalAlignment="FILL" verticalAlignment="FILL"
+	         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>
+			</ComboViewer.control.layoutData>
+		</ComboViewer>
+	</Composite>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_Simple.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_Simple.java
new file mode 100644
index 0000000..3e83500
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_Simple.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.comboviewer.collection;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.IObservableCollection;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class ComboViewer_Simple {
+	public static void main(String[] args) {
+
+		URL url = ComboViewer_Simple.class.getResource(ComboViewer_Simple.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void addPerson(Object sender, Event event) {
+		org.eclipse.jface.viewers.Viewer viewer = (org.eclipse.jface.viewers.Viewer) XWT
+				.findElementByName(event.widget, "ListViewer");
+		IObservableCollection collection = (IObservableCollection) viewer
+				.getInput();
+		Employee employee = new Employee();
+		employee.setName("New hired one");
+		collection.add(employee);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_Simple.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_Simple.xwt
new file mode 100644
index 0000000..7f5f6fb
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ComboViewer_Simple.xwt
@@ -0,0 +1,27 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.comboviewer.collection"
+    x:Class="org.eclipse.xwt.tests.jface.comboviewer.collection.ComboViewer"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<j:Employee Name="Thomas"/>
+				<j:Employee Name="Jin"/>
+			</j:Company.employees>
+		</j:Company>
+	</Composite.resources>
+	<ComboViewer name="ComboViewer" input="{Binding Path=employees}">
+		<ComboViewer.labelProvider>
+			<j:LabelProvider/>
+		</ComboViewer.labelProvider>
+		<ComboViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>
+		</ComboViewer.control.layoutData>
+	</ComboViewer>
+	<Button name="Button" text="Add Person" SelectionEvent="addPerson" />
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/Company.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/Company.java
new file mode 100644
index 0000000..9e51f86
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/Company.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.comboviewer.collection;
+
+import java.util.Collection;
+
+public class Company {
+	protected Collection<Employee> employees;
+
+	public Company() {
+	}
+
+	public Collection<Employee> getEmployees() {
+		return employees;
+	}
+
+	public void setEmployees(Collection<Employee> employees) {
+		this.employees = employees;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ContentProvider.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ContentProvider.java
new file mode 100644
index 0000000..4b362cc
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/ContentProvider.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.comboviewer.collection;
+
+import java.util.Collection;
+
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+
+public class ContentProvider implements IStructuredContentProvider {
+	static Object[] EMPTY = new Object[] {};
+
+	public ContentProvider() {
+	}
+
+	public Object[] getElements(Object inputElement) {
+		if (inputElement instanceof Collection) {
+			Collection collection = (Collection) inputElement;
+			return collection.toArray();
+		} else if (inputElement instanceof Object[]) {
+			return (Object[]) inputElement;
+		}
+		return EMPTY;
+	}
+
+	public void dispose() {
+	}
+
+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/Employee.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/Employee.java
new file mode 100644
index 0000000..9f8591b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/Employee.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.comboviewer.collection;
+
+public class Employee {
+	protected String name;
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/JFaceComboViewer_CollectionTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/JFaceComboViewer_CollectionTests.java
new file mode 100644
index 0000000..20b32d7
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/JFaceComboViewer_CollectionTests.java
@@ -0,0 +1,117 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.comboviewer.collection;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.IObservableCollection;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class JFaceComboViewer_CollectionTests extends XWTTestCase {
+
+	public void test_ComboViewer() throws Exception {
+		URL url = JFaceComboViewer_CollectionTests.class
+				.getResource(ComboViewer.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkListViewer();
+			}
+
+			public void checkListViewer() {
+				Object element = XWT.findElementByName(root, "ComboViewer");
+				assertTrue(element instanceof org.eclipse.jface.viewers.ComboViewer);
+				org.eclipse.jface.viewers.ComboViewer comboViewer = (org.eclipse.jface.viewers.ComboViewer) element;
+				String[] items = comboViewer.getCombo().getItems();
+				assertTrue(items.length == 2);
+				assertEquals(items[0], "Thomas");
+				assertEquals(items[1], "Jin");
+			}
+		});
+	}
+
+	public void test_ComboViewer_Simple() throws Exception {
+		URL url = JFaceComboViewer_CollectionTests.class
+				.getResource(ComboViewer_Simple.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkListViewer();
+			}
+
+			public void checkListViewer() {
+				Object element = XWT.findElementByName(root, "ComboViewer");
+				assertTrue(element instanceof org.eclipse.jface.viewers.ComboViewer);
+				org.eclipse.jface.viewers.ComboViewer comboViewer = (org.eclipse.jface.viewers.ComboViewer) element;
+				String[] items = comboViewer.getCombo().getItems();
+				assertTrue(items.length == 2);
+				assertEquals(items[0], "Thomas");
+				assertEquals(items[1], "Jin");
+			}
+		});
+	}
+
+	public void test_ComboViewer_DataBinding() {
+		URL url = JFaceComboViewer_CollectionTests.class
+				.getResource(ComboViewer.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button button = (Button) XWT.findElementByName(root, "Button");
+				selectButton(button);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				org.eclipse.jface.viewers.ComboViewer comboViewer = (org.eclipse.jface.viewers.ComboViewer) XWT
+						.findElementByName(root, "ComboViewer");
+				assertTrue(comboViewer.getInput() instanceof IObservableCollection);
+				IObservableCollection collection = (IObservableCollection) comboViewer
+						.getInput();
+				assertTrue(collection.size() == 3);
+			}
+		});
+	}
+
+	public void test_ComboViewer_BindingPath() {
+		URL url = JFaceComboViewer_CollectionTests.class
+				.getResource(ComboViewer_BindingPath.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button button = (Button) XWT.findElementByName(root, "Button");
+				selectButton(button);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				org.eclipse.jface.viewers.ComboViewer comboViewer = (org.eclipse.jface.viewers.ComboViewer) XWT
+						.findElementByName(root, "ComboViewer");
+				assertTrue(comboViewer.getInput() instanceof IObservableCollection);
+				IObservableCollection collection = (IObservableCollection) comboViewer
+						.getInput();
+				assertTrue(collection.size() == 3);
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/LabelProvider.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/LabelProvider.java
new file mode 100644
index 0000000..f5c6edd
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/collection/LabelProvider.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.comboviewer.collection;
+
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.swt.graphics.Image;
+
+public class LabelProvider implements ILabelProvider {
+
+	public Image getImage(Object element) {
+		return null;
+	}
+
+	public String getText(Object element) {
+		if (element instanceof Employee) {
+			Employee employee = (Employee) element;
+			return employee.getName();
+		}
+		return element.toString();
+	}
+
+	public void addListener(ILabelProviderListener listener) {
+	}
+
+	public void dispose() {
+	}
+
+	public boolean isLabelProperty(Object element, String property) {
+		return false;
+	}
+
+	public void removeListener(ILabelProviderListener listener) {
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ComboViewer_enum.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ComboViewer_enum.java
new file mode 100644
index 0000000..47321fd
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ComboViewer_enum.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.comboviewer.enumeration;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class ComboViewer_enum {
+	public static void main(String[] args) {
+
+		URL url = ComboViewer_enum.class.getResource(ComboViewer_enum.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ComboViewer_enum.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ComboViewer_enum.xwt
new file mode 100644
index 0000000..bfd4180
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ComboViewer_enum.xwt
@@ -0,0 +1,23 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.comboviewer.enumeration"
+    x:Class="j:ComboViewer"
+    DataContext="{StaticResource myEmployee}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.resources>
+		<j:Employee x:Key="myEmployee" Name="Julien" employeeType="FullTime">
+		</j:Employee>
+	</Composite.resources>
+	<ComboViewer name="ComboViewer"
+		input="{Binding source={x:Type j:EmployeeType}}">
+		<ComboViewer.contentProvider>
+			<ObservableListContentProvider/>
+		</ComboViewer.contentProvider>
+		<ComboViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>
+		</ComboViewer.control.layoutData>
+	</ComboViewer>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ComboViewer_enum_singleSelection.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ComboViewer_enum_singleSelection.java
new file mode 100644
index 0000000..f47a6e1
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ComboViewer_enum_singleSelection.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.comboviewer.enumeration;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class ComboViewer_enum_singleSelection {
+	public static void main(String[] args) {
+
+		URL url = ComboViewer_enum_singleSelection.class.getResource(ComboViewer_enum_singleSelection.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ComboViewer_enum_singleSelection.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ComboViewer_enum_singleSelection.xwt
new file mode 100644
index 0000000..2c35055
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ComboViewer_enum_singleSelection.xwt
@@ -0,0 +1,24 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.comboviewer.enumeration"
+    x:Class="j:ComboViewer"
+    DataContext="{StaticResource myEmployee}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.resources>
+		<j:Employee x:Key="myEmployee" Name="Julien" employeeType="FullTime">
+		</j:Employee>
+	</Composite.resources>
+	<ComboViewer name="ComboViewer" 
+		singleSelection="{Binding path=employeeType}"
+		input="{Binding source={x:Type j:EmployeeType}}">
+		<ComboViewer.contentProvider>
+			<ObservableListContentProvider/>
+		</ComboViewer.contentProvider>
+		<ComboViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>
+		</ComboViewer.control.layoutData>
+	</ComboViewer>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ContentProvider.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ContentProvider.java
new file mode 100644
index 0000000..3a73e8f
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/ContentProvider.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.comboviewer.enumeration;
+
+import java.util.Collection;
+
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+
+public class ContentProvider implements IStructuredContentProvider {
+	static Object[] EMPTY = new Object[] {};
+
+	public ContentProvider() {
+	}
+
+	public Object[] getElements(Object inputElement) {
+		if (inputElement instanceof Collection) {
+			Collection collection = (Collection) inputElement;
+			return collection.toArray();
+		} else if (inputElement instanceof Object[]) {
+			return (Object[]) inputElement;
+		}
+		return EMPTY;
+	}
+
+	public void dispose() {
+	}
+
+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/Employee.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/Employee.java
new file mode 100644
index 0000000..964da96
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/Employee.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.comboviewer.enumeration;
+
+public class Employee {
+	protected String name;
+	protected EmployeeType employeeType;
+
+	public EmployeeType getEmployeeType() {
+		return employeeType;
+	}
+
+	public void setEmployeeType(EmployeeType employeeType) {
+		this.employeeType = employeeType;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/EmployeeType.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/EmployeeType.java
new file mode 100644
index 0000000..9406492
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/EmployeeType.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.comboviewer.enumeration;
+
+public enum EmployeeType {
+	Unemployed, FullTime, PartialTime; 
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/JFaceComboViewer_EnumTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/JFaceComboViewer_EnumTests.java
new file mode 100644
index 0000000..ca665be
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/comboviewer/enumeration/JFaceComboViewer_EnumTests.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.comboviewer.enumeration;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.list.WritableList;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class JFaceComboViewer_EnumTests extends XWTTestCase {
+
+	public void test_ComboViewer_enum() throws Exception {
+		URL url = JFaceComboViewer_EnumTests.class
+				.getResource(ComboViewer_enum.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkListViewer();
+			}
+
+			public void checkListViewer() {
+				Object element = XWT.findElementByName(root, "ComboViewer");
+				assertTrue(element instanceof org.eclipse.jface.viewers.ComboViewer);
+				org.eclipse.jface.viewers.ComboViewer comboViewer = (org.eclipse.jface.viewers.ComboViewer) element;
+				String[] items = comboViewer.getCombo().getItems();
+				assertTrue(items.length == 3);
+				Object input = comboViewer.getInput();
+				assertTrue(input instanceof WritableList);
+				WritableList list = (WritableList) input;
+				assertTrue(list.contains(EmployeeType.FullTime));
+				assertTrue(list.contains(EmployeeType.PartialTime));
+				assertTrue(list.contains(EmployeeType.Unemployed));
+			}
+		});
+	}
+
+	public void test_ComboViewer_enum_singleSelection() throws Exception {
+		URL url = JFaceComboViewer_EnumTests.class
+				.getResource(ComboViewer_enum_singleSelection.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkListViewer();
+			}
+
+			public void checkListViewer() {
+				Object element = XWT.findElementByName(root, "ComboViewer");
+				assertTrue(element instanceof org.eclipse.jface.viewers.ComboViewer);
+				org.eclipse.jface.viewers.ComboViewer comboViewer = (org.eclipse.jface.viewers.ComboViewer) element;
+				String[] items = comboViewer.getCombo().getItems();
+				assertTrue(items.length == 3);
+				IStructuredSelection selection = (IStructuredSelection) comboViewer.getSelection();
+				assertTrue(selection.size() == 1);
+				assertEquals(selection.getFirstElement(), EmployeeType.FullTime);
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/dialog/TitleAreaDialog.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/dialog/TitleAreaDialog.java
new file mode 100644
index 0000000..705f3a2
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/dialog/TitleAreaDialog.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.dialog;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class TitleAreaDialog {
+	public static void main(String[] args) {
+
+		URL url = TitleAreaDialog.class.getResource(TitleAreaDialog.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/dialog/TitleAreaDialog.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/dialog/TitleAreaDialog.xwt
new file mode 100644
index 0000000..77a8b4b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/dialog/TitleAreaDialog.xwt
@@ -0,0 +1,3 @@
+<TitleAreaDialog xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt">
+</TitleAreaDialog>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/Company.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/Company.java
new file mode 100644
index 0000000..e5a1afb
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/Company.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.listviewer.array;
+
+public class Company {
+	protected Employee[] employees;
+
+	public Company() {
+	}
+
+	public Employee[] getEmployees() {
+		return employees;
+	}
+
+	public void setEmployees(Employee[] employees) {
+		this.employees = employees;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/ContentProvider.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/ContentProvider.java
new file mode 100644
index 0000000..59c8f10
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/ContentProvider.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.listviewer.array;
+
+import java.util.Collection;
+
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+
+public class ContentProvider implements IStructuredContentProvider {
+	static Object[] EMPTY = new Object[] {};
+
+	public ContentProvider() {
+	}
+
+	public Object[] getElements(Object inputElement) {
+		if (inputElement instanceof Collection) {
+			Collection collection = (Collection) inputElement;
+			return collection.toArray();
+		} else if (inputElement instanceof Object[]) {
+			return (Object[]) inputElement;
+		}
+		return EMPTY;
+	}
+
+	public void dispose() {
+	}
+
+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/Employee.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/Employee.java
new file mode 100644
index 0000000..55adb74
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/Employee.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.listviewer.array;
+
+public class Employee {
+	protected String name;
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/JFaceListViewer_ArrayTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/JFaceListViewer_ArrayTests.java
new file mode 100644
index 0000000..c0e1858
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/JFaceListViewer_ArrayTests.java
@@ -0,0 +1,74 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.listviewer.array;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.IObservableCollection;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+import org.eclipse.xwt.tests.jface.listviewer.collection.JFaceListViewer_CollectionTests;
+import org.eclipse.xwt.tests.jface.listviewer.collection.ListViewer;
+
+public class JFaceListViewer_ArrayTests extends XWTTestCase {
+
+	public void testListViewer() throws Exception {
+		URL url = JFaceListViewer_ArrayTests.class.getResource(ListViewer.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkListViewer();
+			}
+
+			public void checkListViewer() {
+				Object element = XWT.findElementByName(root, "ListViewer");
+				assertTrue(element instanceof org.eclipse.jface.viewers.ListViewer);
+				org.eclipse.jface.viewers.ListViewer listViewer = (org.eclipse.jface.viewers.ListViewer) element;
+				String[] items = listViewer.getList().getItems();
+				assertTrue(items.length == 2);
+				assertEquals(items[0], "Thomas");
+				assertEquals(items[1], "Jin");
+			}
+		});
+	}
+
+	public void test_ListViewer_DataBinding() {
+		URL url = JFaceListViewer_CollectionTests.class
+				.getResource(ListViewer.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button button = (Button) XWT.findElementByName(root, "Button");
+				selectButton(button);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				org.eclipse.jface.viewers.ListViewer listView = (org.eclipse.jface.viewers.ListViewer) XWT
+						.findElementByName(root, "ListViewer");
+				assertTrue(listView.getInput() instanceof IObservableCollection);
+				IObservableCollection collection = (IObservableCollection) listView
+						.getInput();
+				assertTrue(collection.size() == 3);
+			}
+		});
+	}
+
+	// TODO add Font and Color
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/LabelProvider.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/LabelProvider.java
new file mode 100644
index 0000000..2780292
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/LabelProvider.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.listviewer.array;
+
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.swt.graphics.Image;
+
+public class LabelProvider implements ILabelProvider {
+
+	public Image getImage(Object element) {
+		return null;
+	}
+
+	public String getText(Object element) {
+		if (element instanceof Employee) {
+			Employee employee = (Employee) element;
+			return employee.getName();
+		}
+		return element.toString();
+	}
+
+	public void addListener(ILabelProviderListener listener) {
+	}
+
+	public void dispose() {
+	}
+
+	public boolean isLabelProperty(Object element, String property) {
+		return false;
+	}
+
+	public void removeListener(ILabelProviderListener listener) {
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/ListViewer.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/ListViewer.java
new file mode 100644
index 0000000..88197df
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/ListViewer.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.listviewer.array;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.IObservableCollection;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class ListViewer {
+	public static void main(String[] args) {
+
+		URL url = ListViewer.class.getResource(ListViewer.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void addPerson(Object sender, Event event) {
+		org.eclipse.jface.viewers.Viewer viewer = (org.eclipse.jface.viewers.Viewer) XWT
+				.findElementByName(event.widget, "ListViewer");
+		IObservableCollection collection = (IObservableCollection) viewer
+				.getInput();
+		Employee employee = new Employee();
+		employee.setName("New hired one");
+		collection.add(employee);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/ListViewer.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/ListViewer.xwt
new file mode 100644
index 0000000..68a1d96
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/array/ListViewer.xwt
@@ -0,0 +1,32 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.listviewer.array"
+    x:Class="org.eclipse.xwt.tests.jface.listviewer.array.ListViewer"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<x:Array Type="j:Employee">
+					<j:Employee Name="Thomas"/>
+					<j:Employee Name="Jin"/>
+				</x:Array>
+			</j:Company.employees>
+		</j:Company>
+	</Composite.resources>
+	<ListViewer name="ListViewer" input="{Binding Path=employees}">
+		<ListViewer.contentProvider>
+			<j:ContentProvider/>
+		</ListViewer.contentProvider>
+		<ListViewer.labelProvider>
+			<j:LabelProvider/>
+		</ListViewer.labelProvider>
+		<ListViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>
+		</ListViewer.control.layoutData>
+	</ListViewer>
+	<Button name="Button" text="Add Person" SelectionEvent="addPerson" />
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/Company.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/Company.java
new file mode 100644
index 0000000..152c586
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/Company.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.listviewer.collection;
+
+import java.util.Collection;
+
+public class Company {
+	protected Collection<Employee> employees;
+
+	public Company() {
+	}
+
+	public Collection<Employee> getEmployees() {
+		return employees;
+	}
+
+	public void setEmployees(Collection<Employee> employees) {
+		this.employees = employees;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ContentProvider.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ContentProvider.java
new file mode 100644
index 0000000..fbcc205
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ContentProvider.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.listviewer.collection;
+
+import java.util.Collection;
+
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+
+public class ContentProvider implements IStructuredContentProvider {
+	static Object[] EMPTY = new Object[] {};
+
+	public ContentProvider() {
+	}
+
+	public Object[] getElements(Object inputElement) {
+		if (inputElement instanceof Collection) {
+			Collection collection = (Collection) inputElement;
+			return collection.toArray();
+		} else if (inputElement instanceof Object[]) {
+			return (Object[]) inputElement;
+		}
+		return EMPTY;
+	}
+
+	public void dispose() {
+	}
+
+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/Employee.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/Employee.java
new file mode 100644
index 0000000..25db09a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/Employee.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.listviewer.collection;
+
+public class Employee {
+	protected String name;
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/JFaceListViewer_CollectionTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/JFaceListViewer_CollectionTests.java
new file mode 100644
index 0000000..093498e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/JFaceListViewer_CollectionTests.java
@@ -0,0 +1,116 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.listviewer.collection;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.IObservableCollection;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class JFaceListViewer_CollectionTests extends XWTTestCase {
+
+	public void testListViewer() throws Exception {
+		URL url = JFaceListViewer_CollectionTests.class
+				.getResource(ListViewer.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkListViewer();
+			}
+
+			public void checkListViewer() {
+				Object element = XWT.findElementByName(root, "ListViewer");
+				assertTrue(element instanceof org.eclipse.jface.viewers.ListViewer);
+				org.eclipse.jface.viewers.ListViewer listViewer = (org.eclipse.jface.viewers.ListViewer) element;
+				String[] items = listViewer.getList().getItems();
+				assertTrue(items.length == 2);
+				assertEquals(items[0], "Thomas");
+				assertEquals(items[1], "Jin");
+			}
+		});
+	}
+
+	public void testListViewer_Simple() throws Exception {
+		URL url = JFaceListViewer_CollectionTests.class
+				.getResource(ListViewer_Simple.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkListViewer();
+			}
+
+			public void checkListViewer() {
+				Object element = XWT.findElementByName(root, "ListViewer");
+				assertTrue(element instanceof org.eclipse.jface.viewers.ListViewer);
+				org.eclipse.jface.viewers.ListViewer listViewer = (org.eclipse.jface.viewers.ListViewer) element;
+				String[] items = listViewer.getList().getItems();
+				assertTrue(items.length == 2);
+				assertEquals(items[0], "Thomas");
+				assertEquals(items[1], "Jin");
+			}
+		});
+	}
+
+	public void test_ListViewer_DataBinding() {
+		URL url = JFaceListViewer_CollectionTests.class
+				.getResource(ListViewer.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button button = (Button) XWT.findElementByName(root, "Button");
+				selectButton(button);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				org.eclipse.jface.viewers.ListViewer listView = (org.eclipse.jface.viewers.ListViewer) XWT
+						.findElementByName(root, "ListViewer");
+				assertTrue(listView.getInput() instanceof IObservableCollection);
+				IObservableCollection collection = (IObservableCollection) listView
+						.getInput();
+				assertTrue(collection.size() == 3);
+			}
+		});
+	}
+
+	public void test_ListViewer_BindingPath() {
+		URL url = JFaceListViewer_CollectionTests.class
+				.getResource(ListViewer_BindingPath.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button button = (Button) XWT.findElementByName(root, "Button");
+				selectButton(button);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				org.eclipse.jface.viewers.ListViewer listView = (org.eclipse.jface.viewers.ListViewer) XWT
+						.findElementByName(root, "ListViewer");
+				assertTrue(listView.getInput() instanceof IObservableCollection);
+				IObservableCollection collection = (IObservableCollection) listView
+						.getInput();
+				assertTrue(collection.size() == 3);
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/LabelProvider.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/LabelProvider.java
new file mode 100644
index 0000000..1afc630
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/LabelProvider.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.listviewer.collection;
+
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.swt.graphics.Image;
+
+public class LabelProvider implements ILabelProvider {
+
+	public Image getImage(Object element) {
+		return null;
+	}
+
+	public String getText(Object element) {
+		if (element instanceof Employee) {
+			Employee employee = (Employee) element;
+			return employee.getName();
+		}
+		return element.toString();
+	}
+
+	public void addListener(ILabelProviderListener listener) {
+	}
+
+	public void dispose() {
+	}
+
+	public boolean isLabelProperty(Object element, String property) {
+		return false;
+	}
+
+	public void removeListener(ILabelProviderListener listener) {
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer.java
new file mode 100644
index 0000000..e3bb8f0
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.listviewer.collection;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.IObservableCollection;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class ListViewer {
+	public static void main(String[] args) {
+
+		URL url = ListViewer.class.getResource(ListViewer.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void addPerson(Object sender, Event event) {
+		org.eclipse.jface.viewers.Viewer viewer = (org.eclipse.jface.viewers.Viewer) XWT
+				.findElementByName(event.widget, "ListViewer");
+		IObservableCollection collection = (IObservableCollection) viewer
+				.getInput();
+		Employee employee = new Employee();
+		employee.setName("New hired one");
+		collection.add(employee);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer.xwt
new file mode 100644
index 0000000..ad62564
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer.xwt
@@ -0,0 +1,30 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.listviewer.collection"
+    x:Class="org.eclipse.xwt.tests.jface.listviewer.collection.ListViewer"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<j:Employee Name="Thomas"/>
+				<j:Employee Name="Jin"/>
+			</j:Company.employees>
+		</j:Company>
+	</Composite.resources>
+	<ListViewer name="ListViewer" input="{Binding Path=employees}">
+		<ListViewer.contentProvider>
+			<ObservableListContentProvider/>
+		</ListViewer.contentProvider>
+		<ListViewer.labelProvider>
+			<j:LabelProvider/>
+		</ListViewer.labelProvider>
+		<ListViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>
+		</ListViewer.control.layoutData>
+	</ListViewer>
+	<Button name="Button" text="Add Person" SelectionEvent="addPerson" />
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_BindingPath.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_BindingPath.java
new file mode 100644
index 0000000..8dadaf0
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_BindingPath.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.listviewer.collection;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.IObservableCollection;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class ListViewer_BindingPath {
+	public static void main(String[] args) {
+
+		URL url = ListViewer_BindingPath.class
+				.getResource(ListViewer_BindingPath.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void addPerson(Object sender, Event event) {
+		org.eclipse.jface.viewers.Viewer viewer = (org.eclipse.jface.viewers.Viewer) XWT
+				.findElementByName(event.widget, "ListViewer");
+		IObservableCollection collection = (IObservableCollection) viewer
+				.getInput();
+		Employee employee = new Employee();
+		employee.setName("New hired one");
+		collection.add(employee);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_BindingPath.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_BindingPath.xwt
new file mode 100644
index 0000000..91263ff
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_BindingPath.xwt
@@ -0,0 +1,24 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.listviewer.collection"
+    x:Class="org.eclipse.xwt.tests.jface.listviewer.collection.ListViewer"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<j:Employee Name="Thomas"/>
+				<j:Employee Name="Jin"/>
+			</j:Company.employees>
+		</j:Company>
+	</Composite.resources>
+	<ListViewer name="ListViewer" input="{Binding Path=employees}" bindingPath="name">
+		<ListViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>
+		</ListViewer.control.layoutData>
+	</ListViewer>
+	<Button name="Button" text="Add Person" SelectionEvent="addPerson" />
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_CollectionViewSource.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_CollectionViewSource.java
new file mode 100644
index 0000000..1b88a4c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_CollectionViewSource.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.listviewer.collection;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.IObservableCollection;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class ListViewer_CollectionViewSource {
+	public static void main(String[] args) {
+
+		URL url = ListViewer_CollectionViewSource.class
+				.getResource(ListViewer_CollectionViewSource.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void addPerson(Object sender, Event event) {
+		org.eclipse.jface.viewers.Viewer viewer = (org.eclipse.jface.viewers.Viewer) XWT
+				.findElementByName(event.widget, "ListViewer1");
+		IObservableCollection collection = (IObservableCollection) viewer
+				.getInput();
+		Employee employee = new Employee();
+		employee.setName("New hired one");
+		collection.add(employee);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_CollectionViewSource.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_CollectionViewSource.xwt
new file mode 100644
index 0000000..b0995bf
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_CollectionViewSource.xwt
@@ -0,0 +1,54 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.listviewer.collection"
+    x:Class="org.eclipse.xwt.tests.jface.listviewer.collection.ListViewer_CollectionViewSource"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<FillLayout/>
+	</Composite.layout>
+	<Composite.resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<j:Employee Name="Thomas"/>
+				<j:Employee Name="Jin"/>
+			</j:Company.employees>
+		</j:Company>
+		<CollectionViewSource x:Key="viewSource" source="{Binding Path=employees}"/>
+	</Composite.resources>
+
+	<Composite>
+		<Composite.layout>
+			<GridLayout numColumns="2"/>
+		</Composite.layout>
+			
+		<Composite.resources>
+			<CollectionViewSource x:Key="viewSource" source="{Binding Path=employees}"/>
+		</Composite.resources>
+		
+		<ListViewer name="ListViewer1" input="{StaticResource viewSource}">
+			<ListViewer.contentProvider>
+				<ObservableListContentProvider/>
+			</ListViewer.contentProvider>
+			<ListViewer.labelProvider>
+				<j:LabelProvider/>
+			</ListViewer.labelProvider>
+			<ListViewer.control.layoutData>
+				<GridData horizontalAlignment="FILL" verticalAlignment="FILL"
+	         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>
+			</ListViewer.control.layoutData>
+		</ListViewer>
+		<Button name="Button" text="Add Person" SelectionEvent="addPerson" />
+		<ListViewer name="ListViewer2" input="{StaticResource viewSource}">
+			<ListViewer.contentProvider>
+				<ObservableListContentProvider/>
+			</ListViewer.contentProvider>
+			<ListViewer.labelProvider>
+				<j:LabelProvider/>
+			</ListViewer.labelProvider>
+			<ListViewer.control.layoutData>
+				<GridData horizontalAlignment="FILL" verticalAlignment="FILL"
+	         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>
+			</ListViewer.control.layoutData>
+		</ListViewer>
+	</Composite>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_Simple.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_Simple.java
new file mode 100644
index 0000000..72eb576
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_Simple.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.listviewer.collection;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.IObservableCollection;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class ListViewer_Simple {
+	public static void main(String[] args) {
+
+		URL url = ListViewer_Simple.class.getResource(ListViewer_Simple.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void addPerson(Object sender, Event event) {
+		org.eclipse.jface.viewers.Viewer viewer = (org.eclipse.jface.viewers.Viewer) XWT
+				.findElementByName(event.widget, "ListViewer");
+		IObservableCollection collection = (IObservableCollection) viewer
+				.getInput();
+		Employee employee = new Employee();
+		employee.setName("New hired one");
+		collection.add(employee);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_Simple.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_Simple.xwt
new file mode 100644
index 0000000..bec3ea8
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/listviewer/collection/ListViewer_Simple.xwt
@@ -0,0 +1,27 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.listviewer.collection"
+    x:Class="org.eclipse.xwt.tests.jface.listviewer.collection.ListViewer"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<j:Employee Name="Thomas"/>
+				<j:Employee Name="Jin"/>
+			</j:Company.employees>
+		</j:Company>
+	</Composite.resources>
+	<ListViewer name="ListViewer" input="{Binding Path=employees}">
+		<ListViewer.labelProvider>
+			<j:LabelProvider/>
+		</ListViewer.labelProvider>
+		<ListViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL"
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true"/>
+		</ListViewer.control.layoutData>
+	</ListViewer>
+	<Button name="Button" text="Add Person" SelectionEvent="addPerson" />
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/Company.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/Company.java
new file mode 100644
index 0000000..7e1b7bb
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/Company.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer;
+
+public class Company {
+	protected Employee[] employees;
+
+	public Company() {
+	}
+
+	public Employee[] getEmployees() {
+		return employees;
+	}
+
+	public void setEmployees(Employee[] employees) {
+		this.employees = employees;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/ContentProvider.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/ContentProvider.java
new file mode 100644
index 0000000..3dc35e8
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/ContentProvider.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer;
+
+import java.util.Collection;
+
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+
+public class ContentProvider implements IStructuredContentProvider {
+	static Object[] EMPTY = new Object[] {};
+
+	public ContentProvider() {
+	}
+
+	public Object[] getElements(Object inputElement) {
+		if (inputElement instanceof Collection<?>) {
+			Collection<?> collection = (Collection<?>) inputElement;
+			return collection.toArray();
+		} else if (inputElement instanceof Object[]) {
+			return (Object[]) inputElement;
+		}
+		return EMPTY;
+	}
+
+	public void dispose() {
+	}
+
+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/Employee.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/Employee.java
new file mode 100644
index 0000000..a4d37cf
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/Employee.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer;
+
+public class Employee {
+	protected String name;
+	protected int age;
+
+	protected Sex sex;
+	
+	public Sex getSex() {
+		return sex;
+	}
+
+	public void setSex(Sex sex) {
+		this.sex = sex;
+	}
+
+	public int getAge() {
+		return age;
+	}
+
+	public void setAge(int age) {
+		this.age = age;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/JFaceTableViewer_Tests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/JFaceTableViewer_Tests.java
new file mode 100644
index 0000000..4c11ba0
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/JFaceTableViewer_Tests.java
@@ -0,0 +1,209 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer;
+
+import java.net.URL;
+
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class JFaceTableViewer_Tests extends XWTTestCase {
+
+	public void testTableViewer() throws Exception {
+		URL url = JFaceTableViewer_Tests.class
+				.getResource(TableViewer_Test.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkListViewer();
+			}
+
+			public void checkListViewer() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 2);
+				assertEquals(items[0].getText(0), "Thomas");
+				assertEquals(items[0].getText(1), "32");
+				assertEquals(items[1].getText(0), "Jin");
+				assertEquals(items[1].getText(1), "27");
+			}
+		});
+	}
+
+	public void testTableViewer_FullSelection() throws Exception {
+		URL url = JFaceTableViewer_Tests.class
+				.getResource(TableViewer_FullSelection.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkListViewer();
+			}
+
+			public void checkListViewer() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				assertEquals(tableViewer.getTable().getStyle()
+						& SWT.FULL_SELECTION, SWT.FULL_SELECTION);
+			}
+		});
+	}
+
+	public void testTableViewer_DataBinding() throws Exception {
+		URL url = JFaceTableViewer_Tests.class
+				.getResource(TableViewer_DataBinding.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkListViewer();
+			}
+
+			public void checkListViewer() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 2);
+				assertEquals(items[0].getText(0), "Thomas");
+				assertEquals(items[0].getText(1), "32");
+				assertEquals(items[1].getText(0), "Jin");
+				assertEquals(items[1].getText(1), "27");
+			}
+		});
+	}
+
+	public void testTableViewerColumns() throws Exception {
+		URL url = JFaceTableViewer_Tests.class
+				.getResource(TableViewerColumns_Test.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkListViewer();
+			}
+
+			public void checkListViewer() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 2);
+				assertEquals(items[0].getText(0), "Thomas");
+				assertEquals(items[0].getText(1), "32");
+				assertEquals(items[1].getText(0), "Jin");
+				assertEquals(items[1].getText(1), "27");
+			}
+		});
+	}
+
+	public void testTableViewerColumnProperties() throws Exception {
+		URL url = JFaceTableViewer_Tests.class
+				.getResource(TableViewer_ColumnProperties.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkListViewer();
+			}
+
+			public void checkListViewer() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				Object[] items = tableViewer.getColumnProperties();
+				assertTrue(items != null);
+				assertTrue(items.length == 2);
+				assertEquals(items[0], "Name");
+				assertEquals(items[1], "Age");
+			}
+		});
+	}
+
+	public void testTableViewerColumn_text() throws Exception {
+		URL url = JFaceTableViewer_Tests.class
+				.getResource(TableViewerColumn_text.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkListViewer();
+			}
+
+			public void checkListViewer() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableColumn[] columns = tableViewer.getTable().getColumns();
+				assertTrue(columns != null);
+				assertTrue(columns.length == 2);
+				assertEquals(columns[0].getText(), "column0");
+				assertEquals(columns[1].getText(), "column1");
+			}
+		});
+	}
+	
+	public void testTableViewerColumnsPath_bindingPath() throws Exception {
+		URL url = TableViewerColumn_bindingPath.class
+				.getResource(TableViewerColumn_bindingPath.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkListViewer();
+			}
+
+			public void checkListViewer() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 2);
+				assertEquals(items[0].getText(0), "Thomas");
+				assertEquals(items[0].getText(1), "32");
+				assertEquals(items[1].getText(0), "Jin");
+				assertEquals(items[1].getText(1), "27");
+			}
+		});
+	}
+	
+	public void testTableViewerColumnsPath_bindingPath_itemText() throws Exception {
+		URL url = TableViewerColumn_bindingPath.class
+				.getResource(TableViewerColumn_bindingPath_itemText.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkListViewer();
+			}
+
+			public void checkListViewer() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 3);
+				assertEquals(items[0].getText(0), "Thomas");
+				assertEquals(items[0].getText(1), "32");
+				assertNull(items[0].getImage(2));				
+				assertEquals(items[1].getText(0), "Jin");
+				assertEquals(items[1].getText(1), "27");
+				assertNull(items[1].getImage(2));				
+				assertEquals(items[2].getText(0), "Susan");
+				assertEquals(items[2].getText(1), "27");
+				assertNotNull(items[2].getImage(2));				
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/LabelProvider.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/LabelProvider.java
new file mode 100644
index 0000000..3e8fae0
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/LabelProvider.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer;
+
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.swt.graphics.Image;
+
+public class LabelProvider implements ITableLabelProvider {
+
+	public LabelProvider() {
+	}
+
+	public void addListener(ILabelProviderListener listener) {
+	}
+
+	public void dispose() {
+	}
+
+	public boolean isLabelProperty(Object element, String property) {
+		return false;
+	}
+
+	public void removeListener(ILabelProviderListener listener) {
+	}
+
+	public Image getColumnImage(Object element, int columnIndex) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public String getColumnText(Object element, int columnIndex) {
+		if (columnIndex == 0)
+			return ((Employee) element).getName();
+		if (columnIndex == 1)
+			return "" + ((Employee) element).getAge();
+		return "";
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/Sex.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/Sex.java
new file mode 100644
index 0000000..c4ec71b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/Sex.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer;
+
+public enum Sex {
+	Male, Female;
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/SexToImage.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/SexToImage.java
new file mode 100644
index 0000000..4d46dca
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/SexToImage.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer;
+
+import java.net.URL;
+
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.xwt.IValueConverter;
+import org.eclipse.xwt.XWTException;
+import org.eclipse.xwt.utils.ResourceManager;
+
+public class SexToImage implements IValueConverter {
+	public Object convertBack(Object value) {
+		return null;
+	}
+
+	public Object getFromType() {
+		return int.class;
+	}
+
+	public Object getToType() {
+		return Image.class;
+	}
+
+	public Object convert(Object fromObject) {
+		Sex sex = (Sex) fromObject;
+		if (sex == null) {
+			sex = Sex.Male;
+		}
+		switch (sex) {
+		case Female:
+			URL resource = SexToImage.class.getResource("female32.png");
+			return ResourceManager.resources.getImage(resource);
+		case Male:
+			resource = SexToImage.class.getResource("male32.png");
+			return ResourceManager.resources.getImage(resource);
+		default:
+			throw new XWTException("Unsupported Sex type");
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_FullSelection.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_FullSelection.java
new file mode 100644
index 0000000..4d9d0ac
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_FullSelection.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewerColumn_FullSelection {
+	public static void main(String[] args) {
+
+		URL url = TableViewerColumn_FullSelection.class
+				.getResource(TableViewerColumn_FullSelection.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_ItemImage.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_ItemImage.java
new file mode 100644
index 0000000..571f94b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_ItemImage.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewerColumn_ItemImage {
+	public static void main(String[] args) {
+
+		URL url = TableViewerColumn_ItemImage.class
+				.getResource(TableViewerColumn_ItemImage.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_ItemImage.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_ItemImage.xwt
new file mode 100644
index 0000000..aeff850
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_ItemImage.xwt
@@ -0,0 +1,30 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<x:Array Type="j:Employee">
+					<j:Employee Name="Thomas" Age="32" sex="Male"/>
+					<j:Employee Name="Jin" Age="27" sex="Male"/>
+					<j:Employee Name="Susan" Age="27" sex="Female"/>
+				</x:Array>
+			</j:Company.employees>
+		</j:Company>
+	</Composite.Resources>
+	<TableViewer Name="TableViewer" input="{Binding Path=employees}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" itemText="{Binding path=name}"/>
+			<TableViewerColumn width="150" text="Age" itemText="{Binding path=age}" />
+			<TableViewerColumn width="150" text="Image" itemImage="{Binding path=sex,converter=j:SexToImage}" />
+		</TableViewer.columns>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_ItemText_ItemImage.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_ItemText_ItemImage.java
new file mode 100644
index 0000000..89e836a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_ItemText_ItemImage.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewerColumn_ItemText_ItemImage {
+	public static void main(String[] args) {
+
+		URL url = TableViewerColumn_ItemText_ItemImage.class
+				.getResource(TableViewerColumn_ItemText_ItemImage.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_ItemText_ItemImage.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_ItemText_ItemImage.xwt
new file mode 100644
index 0000000..a5650aa
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_ItemText_ItemImage.xwt
@@ -0,0 +1,30 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<x:Array Type="j:Employee">
+					<j:Employee Name="Thomas" Age="32"/>
+					<j:Employee Name="Jin" Age="27"/>
+					<j:Employee Name="Susan" Age="27" sex="Female"/>
+				</x:Array>
+			</j:Company.employees>
+		</j:Company>
+	</Composite.Resources>
+	<TableViewer Name="TableViewer" input="{Binding Path=employees}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" itemText="{Binding path=name}"/>
+			<TableViewerColumn width="150" text="Age" itemText="{Binding path=age}" />
+			<TableViewerColumn width="150" text="Image" itemImage="{Binding path=sex,converter=j:SexToImage}" itemText="{Binding path=sex}" />
+		</TableViewer.columns>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_Property.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_Property.java
new file mode 100644
index 0000000..f712ee0
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_Property.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewerColumn_Property {
+	public static void main(String[] args) {
+
+		URL url = TableViewerColumn_Property.class
+				.getResource(TableViewerColumn_Property.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_Property.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_Property.xwt
new file mode 100644
index 0000000..eaf547b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_Property.xwt
@@ -0,0 +1,28 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<x:Array Type="j:Employee">
+					<j:Employee Name="Thomas" Age="32"/>
+					<j:Employee Name="Jin" Age="27"/>
+				</x:Array>
+			</j:Company.employees>
+		</j:Company>
+	</Composite.Resources>
+	<TableViewer Name="TableViewer" input="{Binding Path=employees}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath.java
new file mode 100644
index 0000000..8fa0b4f
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewerColumn_bindingPath {
+	public static void main(String[] args) {
+
+		URL url = TableViewerColumn_bindingPath.class
+				.getResource(TableViewerColumn_bindingPath.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath.xwt
new file mode 100644
index 0000000..eaf547b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath.xwt
@@ -0,0 +1,28 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<x:Array Type="j:Employee">
+					<j:Employee Name="Thomas" Age="32"/>
+					<j:Employee Name="Jin" Age="27"/>
+				</x:Array>
+			</j:Company.employees>
+		</j:Company>
+	</Composite.Resources>
+	<TableViewer Name="TableViewer" input="{Binding Path=employees}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath_itemImage.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath_itemImage.java
new file mode 100644
index 0000000..1851115
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath_itemImage.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewerColumn_bindingPath_itemImage {
+	public static void main(String[] args) {
+
+		URL url = TableViewerColumn_ItemImage.class
+				.getResource(TableViewerColumn_ItemImage.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath_itemImage.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath_itemImage.xwt
new file mode 100644
index 0000000..d2d9cd1
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath_itemImage.xwt
@@ -0,0 +1,30 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<x:Array Type="j:Employee">
+					<j:Employee Name="Thomas" Age="32" sex="male"/>
+					<j:Employee Name="Jin" Age="27" sex="male"/>
+					<j:Employee Name="Susan" Age="27" sex="female"/>
+				</x:Array>
+			</j:Company.employees>
+		</j:Company>
+	</Composite.Resources>
+	<TableViewer Name="TableViewer" input="{Binding Path=employees}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="{Binding}" itemText="{Binding path=name}"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="{Binding}" itemText="{Binding path=age}" />
+			<TableViewerColumn width="150" text="Image" bindingPath="{Binding}" itemImage="{Binding path=sex,converter=j:SexToImage}" />
+		</TableViewer.columns>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath_itemText.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath_itemText.java
new file mode 100644
index 0000000..55306d8
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath_itemText.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewerColumn_bindingPath_itemText {
+	public static void main(String[] args) {
+
+		URL url = TableViewerColumn_bindingPath_itemText.class
+				.getResource(TableViewerColumn_bindingPath_itemText.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath_itemText.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath_itemText.xwt
new file mode 100644
index 0000000..357b7dd
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_bindingPath_itemText.xwt
@@ -0,0 +1,30 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<x:Array Type="j:Employee">
+					<j:Employee Name="Thomas" Age="32"/>
+					<j:Employee Name="Jin" Age="27"/>
+					<j:Employee Name="Susan" Age="27" sex="Female"/>
+				</x:Array>
+			</j:Company.employees>
+		</j:Company>
+	</Composite.Resources>
+	<TableViewer Name="TableViewer" input="{Binding Path=employees}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+			<TableViewerColumn width="150" text="Sex" bindingPath="sex" itemImage="{Binding converter=j:SexToImage}" />
+		</TableViewer.columns>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_itemText.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_itemText.java
new file mode 100644
index 0000000..080aa96
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_itemText.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewerColumn_itemText {
+	public static void main(String[] args) {
+
+		URL url = TableViewerColumn_itemText.class
+				.getResource(TableViewerColumn_itemText.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_text.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_text.java
new file mode 100644
index 0000000..6fe7c45
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_text.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewerColumn_text {
+	public static void main(String[] args) {
+
+		URL url = TableViewerColumn_text.class
+				.getResource(TableViewerColumn_text.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_text.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_text.xwt
new file mode 100644
index 0000000..b436b8f
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumn_text.xwt
@@ -0,0 +1,9 @@
+<TableViewer xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:java.lang"
+    Name="TableViewer">
+	<TableViewer.columns>
+		<TableViewerColumn width="80" text="column0"/>
+		<TableViewerColumn width="80" text="column1"/>
+	</TableViewer.columns>
+</TableViewer>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumns_Test.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumns_Test.java
new file mode 100644
index 0000000..c0d3ac7
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumns_Test.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewerColumns_Test {
+	public static void main(String[] args) {
+
+		URL url = TableViewerColumns_Test.class
+				.getResource(TableViewerColumns_Test.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumns_Test.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumns_Test.xwt
new file mode 100644
index 0000000..4fe010d
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewerColumns_Test.xwt
@@ -0,0 +1,37 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<x:Array Type="j:Employee">
+					<j:Employee Name="Thomas" Age="32"/>
+					<j:Employee Name="Jin" Age="27"/>
+				</x:Array>
+			</j:Company.employees>
+		</j:Company>
+	</Composite.Resources>
+	<TableViewer Name="TableViewer" input="{Binding Path=employees}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Column0"/>
+			<TableViewerColumn index="3" width="100" text="Column3"/>
+			<TableViewerColumn index="1" width="200" text="Column1"/>
+			<TableViewerColumn width="150" text="Column2"/>
+		</TableViewer.columns>
+		<TableViewer.contentProvider>
+			<j:ContentProvider/>
+		</TableViewer.contentProvider>
+		<TableViewer.labelProvider>
+			<j:LabelProvider/>
+		</TableViewer.labelProvider>
+		<TableViewer.table HeaderVisible="true"/>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+</Composite>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_ColumnProperties.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_ColumnProperties.java
new file mode 100644
index 0000000..ef7ce7d
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_ColumnProperties.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewer_ColumnProperties {
+	public static void main(String[] args) {
+
+		URL url = TableViewer_ColumnProperties.class
+				.getResource(TableViewer_ColumnProperties.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_ColumnProperties.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_ColumnProperties.xwt
new file mode 100644
index 0000000..9cc135e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_ColumnProperties.xwt
@@ -0,0 +1,13 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:java.lang">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<TableViewer Name="TableViewer">
+		<TableViewer.columnProperties>
+			<j:String>Name</j:String>
+			<j:String>Age</j:String>
+		</TableViewer.columnProperties>
+	</TableViewer>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_DataBinding.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_DataBinding.java
new file mode 100644
index 0000000..ed06d54
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_DataBinding.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewer_DataBinding {
+	public static void main(String[] args) {
+
+		URL url = TableViewer_DataBinding.class
+				.getResource(TableViewer_DataBinding.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_DataBinding.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_DataBinding.xwt
new file mode 100644
index 0000000..f559b7a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_DataBinding.xwt
@@ -0,0 +1,30 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<x:Array Type="j:Employee">
+					<j:Employee Name="Thomas" Age="32"/>
+					<j:Employee Name="Jin" Age="27"/>
+				</x:Array>
+			</j:Company.employees>
+		</j:Company>
+	</Composite.Resources>
+	<TableViewer Name="TableViewer" input="{Binding Path=employees}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_FullSelection.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_FullSelection.java
new file mode 100644
index 0000000..d807da1
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_FullSelection.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewer_FullSelection {
+	public static void main(String[] args) {
+
+		URL url = TableViewer_FullSelection.class
+				.getResource(TableViewer_FullSelection.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_FullSelection.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_FullSelection.xwt
new file mode 100644
index 0000000..305d454
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_FullSelection.xwt
@@ -0,0 +1,13 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<TableViewer x:Style="FULL_SELECTION" Name="TableViewer">
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_Test.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_Test.java
new file mode 100644
index 0000000..6b2c7b8
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_Test.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewer_Test {
+	public static void main(String[] args) {
+
+		URL url = TableViewer_Test.class.getResource(TableViewer_Test.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_Test.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_Test.xwt
new file mode 100644
index 0000000..9b95e6b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/TableViewer_Test.xwt
@@ -0,0 +1,34 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<x:Array Type="j:Employee">
+					<j:Employee Name="Thomas" Age="32"/>
+					<j:Employee Name="Jin" Age="27"/>
+				</x:Array>
+			</j:Company.employees>
+		</j:Company>
+	</Composite.Resources>
+	<TableViewer Name="TableViewer" input="{Binding Path=employees}">
+		<TableViewer.contentProvider>
+			<j:ContentProvider/>
+		</TableViewer.contentProvider>
+		<TableViewer.labelProvider>
+			<j:LabelProvider/>
+		</TableViewer.labelProvider>
+		<TableViewer.table HeaderVisible="true">
+			<TableColumn width="150" text="Name"/>
+			<TableColumn width="150" text="Age"/>
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/Company.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/Company.java
new file mode 100644
index 0000000..dde46be
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/Company.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.editors;
+
+public class Company {
+	protected Employee[] employees;
+
+	public Company() {
+	}
+
+	public Employee[] getEmployees() {
+		return employees;
+	}
+
+	public void setEmployees(Employee[] employees) {
+		this.employees = employees;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/ContentProvider.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/ContentProvider.java
new file mode 100644
index 0000000..279a128
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/ContentProvider.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.editors;
+
+import java.util.Collection;
+
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+
+public class ContentProvider implements IStructuredContentProvider {
+	static Object[] EMPTY = new Object[] {};
+
+	public ContentProvider() {
+	}
+
+	public Object[] getElements(Object inputElement) {
+		if (inputElement instanceof Collection) {
+			Collection collection = (Collection) inputElement;
+			return collection.toArray();
+		} else if (inputElement instanceof Object[]) {
+			return (Object[]) inputElement;
+		}
+		return EMPTY;
+	}
+
+	public void dispose() {
+	}
+
+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/Employee.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/Employee.java
new file mode 100644
index 0000000..8e0b9d2
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/Employee.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.editors;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+
+public class Employee {
+	private PropertyChangeSupport changeSupport = new PropertyChangeSupport(
+			this);
+
+	public void addPropertyChangeListener(String propertyName,
+			PropertyChangeListener listener) {
+		changeSupport.addPropertyChangeListener(propertyName, listener);
+	}
+
+	public void removePropertyChangeListener(String propertyName,
+			PropertyChangeListener listener) {
+		changeSupport.removePropertyChangeListener(propertyName, listener);
+	}
+
+	protected String name;
+	protected int age;
+
+	protected Sex sex;
+
+	public int getAge() {
+		return age;
+	}
+
+	public void setAge(int age) {
+		int oldValue = this.age;
+		this.age = age;
+		changeSupport.firePropertyChange("Age", oldValue, age);
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		String oldValue = name;
+		this.name = name;
+		changeSupport.firePropertyChange("Name", oldValue, name);
+	}
+
+	public Sex getSex() {
+		return sex;
+	}
+
+	public void setSex(Sex sex) {
+		Sex oldValue = this.sex;
+		this.sex = sex;
+		changeSupport.firePropertyChange("Name", oldValue, name);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/LabelProvider.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/LabelProvider.java
new file mode 100644
index 0000000..182ce13
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/LabelProvider.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.editors;
+
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.swt.graphics.Image;
+
+public class LabelProvider implements ITableLabelProvider {
+
+	public void addListener(ILabelProviderListener listener) {
+	}
+
+	public void dispose() {
+	}
+
+	public boolean isLabelProperty(Object element, String property) {
+		return false;
+	}
+
+	public void removeListener(ILabelProviderListener listener) {
+	}
+
+	public Image getColumnImage(Object element, int columnIndex) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public String getColumnText(Object element, int columnIndex) {
+		if (columnIndex == 0)
+			return ((Employee) element).getName();
+		if (columnIndex == 1)
+			return "" + ((Employee) element).getAge();
+		if (columnIndex == 2)
+			return "" + ((Employee) element).getSex();
+		return "";
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/Sex.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/Sex.java
new file mode 100644
index 0000000..170fd7e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/Sex.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.editors;
+
+public enum Sex {
+	Male, Female;
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/TableViewer_Test.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/TableViewer_Test.java
new file mode 100644
index 0000000..28ebaaa
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/TableViewer_Test.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.editors;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewer_Test {
+	public static void main(String[] args) {
+
+		URL url = TableViewer_Test.class.getResource(TableViewer_Test.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/TableViewer_Test.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/TableViewer_Test.xwt
new file mode 100644
index 0000000..493a236
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/TableViewer_Test.xwt
@@ -0,0 +1,56 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.editors"
+    xmlns:k="clr-namespace:java.lang"
+    x:Class="org.eclipse.xwt.tests.jface.tableviewer.editors.TextHandler"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<x:Array Type="j:Employee">
+					<j:Employee Name="Thomas" Age="32" Sex="Female"/>
+					<j:Employee Name="Jin" Age="27" Sex="Male"/>
+				</x:Array>
+			</j:Company.employees>
+		</j:Company>
+	</Composite.Resources>
+	<TableViewer x:style="BORDER|SINGLE|FULL_SELECTION" input="{Binding Path=employees}">
+		<TableViewer.contentProvider>
+			<j:ContentProvider/>
+		</TableViewer.contentProvider>
+		<TableViewer.table HeaderVisible="true" LinesVisible="true">
+			<TableColumn width="150" text="Name"/>
+			<TableColumn width="150" text="Age"/>
+			<TableColumn width="150" text="Sex"/>
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+
+		<TableViewer.columnProperties>
+			<k:String>Name</k:String>
+			<k:String>Age</k:String>
+			<k:String>Sex</k:String>
+		</TableViewer.columnProperties>
+		
+		<TableViewer.cellEditors>
+		    <TextCellEditor/>
+		    <TextCellEditor>
+		    	<TextCellEditor.control VerifyEvent="verifyText"/>
+		    </TextCellEditor>
+		    <ComboBoxCellEditor>
+		    	<ComboBoxCellEditor.items>
+		    		<k:String>Male</k:String>
+		    		<k:String>Female</k:String>
+		    	</ComboBoxCellEditor.items>
+		    </ComboBoxCellEditor>
+		</TableViewer.cellEditors>
+		<TableViewer.cellModifier>
+			<DefaultCellModifier/>
+		</TableViewer.cellModifier>
+	</TableViewer>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/TextHandler.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/TextHandler.java
new file mode 100644
index 0000000..4079268
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/editors/TextHandler.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.editors;
+
+import org.eclipse.swt.widgets.Event;
+
+public class TextHandler {
+	protected void verifyText(Event event) {
+		if (event.keyCode != 0) {
+			event.doit = "0123456789".indexOf(event.text) >= 0;
+		} else {
+			event.doit = true;
+		}
+	}
+}
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/female32.png b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/female32.png
similarity index 100%
rename from org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/female32.png
rename to tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/female32.png
Binary files differ
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/Company.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/Company.java
new file mode 100644
index 0000000..3373ffb
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/Company.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.filter;
+
+public class Company {
+	protected Employee[] employees;
+
+	public Company() {
+	}
+
+	public Employee[] getEmployees() {
+		return employees;
+	}
+
+	public void setEmployees(Employee[] employees) {
+		this.employees = employees;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/Employee.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/Employee.java
new file mode 100644
index 0000000..0a5c647
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/Employee.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.filter;
+
+public class Employee {
+	protected String name;
+	protected int age;
+
+	public int getAge() {
+		return age;
+	}
+
+	public void setAge(int age) {
+		this.age = age;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/JFaceTableViewer_Filters_Tests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/JFaceTableViewer_Filters_Tests.java
new file mode 100644
index 0000000..bf15fc5
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/JFaceTableViewer_Filters_Tests.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.filter;
+
+import java.net.URL;
+
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class JFaceTableViewer_Filters_Tests extends XWTTestCase {
+
+	public void testTableViewer() throws Exception {
+		URL url = JFaceTableViewer_Filters_Tests.class
+				.getResource(TableViewer_Test.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkListViewer();
+			}
+
+			public void checkListViewer() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 1);
+				assertEquals(items[0].getText(0), "Thomas");
+				assertEquals(items[0].getText(1), "32");
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/TableViewer_Test.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/TableViewer_Test.java
new file mode 100644
index 0000000..51aec48
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/TableViewer_Test.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.filter;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewer_Test {
+	public static void main(String[] args) {
+
+		URL url = TableViewer_Test.class.getResource(TableViewer_Test.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/TableViewer_Test.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/TableViewer_Test.xwt
new file mode 100644
index 0000000..3b31cb2
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/filter/TableViewer_Test.xwt
@@ -0,0 +1,37 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.filter"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<x:Array Type="j:Employee">
+					<j:Employee Name="Thomas" Age="32"/>
+					<j:Employee Name="Jin" Age="27"/>
+				</x:Array>
+			</j:Company.employees>
+		</j:Company>
+	</Composite.Resources>
+	<TableViewer Name="TableViewer" input="{Binding Path=employees}" >
+		<TableViewer.filters>
+			<ViewerFilter>
+				<ViewerFilter.conditions>
+					<Condition property="age" value="30" operator="GT"/>
+				</ViewerFilter.conditions>
+			</ViewerFilter>
+		</TableViewer.filters>
+		
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true"/>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/male32.png b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/male32.png
similarity index 100%
rename from org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/male32.png
rename to tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/male32.png
Binary files differ
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/Company.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/Company.java
new file mode 100644
index 0000000..a401320
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/Company.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail;
+
+import java.util.Collection;
+
+/**
+ * 
+ * @author yyang
+ */
+public class Company {
+	protected String name;
+
+	protected Collection<Employee> employees;
+
+	public Company() {
+	}
+
+	public Collection<Employee> getEmployees() {
+		return employees;
+	}
+
+	public void setEmployees(Collection<Employee> employees) {
+		this.employees = employees;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/Employee.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/Employee.java
new file mode 100644
index 0000000..93ae2e6
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/Employee.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail;
+
+public class Employee {
+	protected String name;
+	protected int age;
+
+	public int getAge() {
+		return age;
+	}
+
+	public void setAge(int age) {
+		this.age = age;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/Industry.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/Industry.java
new file mode 100644
index 0000000..027895d
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/Industry.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail;
+
+import java.util.Collection;
+
+/**
+ * 
+ * @author yyang
+ */
+public class Industry {
+	protected String name;
+	protected Collection<Company> members;
+
+	public Collection<Company> getMembers() {
+		return members;
+	}
+
+	public void setMembers(Collection<Company> members) {
+		this.members = members;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/JFaceTableViewer_MasterDetail_Tests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/JFaceTableViewer_MasterDetail_Tests.java
new file mode 100644
index 0000000..aebfdb5
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/JFaceTableViewer_MasterDetail_Tests.java
@@ -0,0 +1,233 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class JFaceTableViewer_MasterDetail_Tests extends XWTTestCase {
+
+	public void testTableViewer_MasterDetail() throws Exception {
+		URL url = JFaceTableViewer_MasterDetail_Tests.class
+				.getResource(TableViewer_MasterDetail.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 2);
+				assertEquals(items[0].getText(0), "Thomas");
+				assertEquals(items[0].getText(1), "32");
+				assertEquals(items[1].getText(0), "Jin");
+				assertEquals(items[1].getText(1), "27");
+			}
+		});
+	}
+
+	public void testTableViewer_MasterDetail_DetailDisplay() throws Exception {
+		URL url = JFaceTableViewer_MasterDetail_Tests.class
+				.getResource(TableViewer_MasterDetail.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+
+				IObservableValue observableValue = XWT.findObservableValue(
+						root, tableViewer, "singleSelection");
+
+				Company company = (Company) XWT.getDataContext(element);
+				Employee employee = company.getEmployees().iterator().next();
+				observableValue.setValue(employee);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkListViewer();
+			}
+
+			public void checkListViewer() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 2);
+
+				Label label = (Label) XWT.findElementByName(root, "Label");
+				assertTrue(label != null);
+
+				IObservableValue observableValue = XWT.findObservableValue(
+						root, tableViewer, "singleSelection");
+				Object selected = observableValue.getValue();
+				assertTrue(selected instanceof Employee);
+				Employee employee = (Employee) selected;
+				assertEquals(label.getText(), employee.getName());
+			}
+		});
+	}
+
+	public void testTableViewer_MasterDetail_DetailEdit() throws Exception {
+		final String newName = "Employee new name";
+		URL url = JFaceTableViewer_MasterDetail_Tests.class
+				.getResource(TableViewer_MasterDetail_Edit.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+
+				IObservableValue observableValue = XWT.findObservableValue(
+						root, tableViewer, "singleSelection");
+
+				Company company = (Company) XWT.getDataContext(element);
+				Employee employee = company.getEmployees().iterator().next();
+				observableValue.setValue(employee);
+			}
+		}, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 2);
+
+				Text text = (Text) XWT.findElementByName(root, "Text");
+				assertTrue(text != null);
+
+				IObservableValue observableValue = XWT.findObservableValue(
+						root, tableViewer, "singleSelection");
+				Object selected = observableValue.getValue();
+				assertTrue(selected instanceof Employee);
+				Employee employee = (Employee) selected;
+				assertEquals(text.getText(), employee.getName());
+
+				text.setText(newName);
+			}
+		}, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+
+				IObservableValue observableValue = XWT.findObservableValue(
+						root, tableViewer, "singleSelection");
+				Object selected = observableValue.getValue();
+				assertTrue(selected instanceof Employee);
+				Employee employee = (Employee) selected;
+				assertEquals(newName, employee.getName());
+			}
+		});
+	}
+
+	public void testTableViewer_MasterDetail_NestedTable() throws Exception {
+		URL url = JFaceTableViewer_MasterDetail_Tests.class
+				.getResource(TableViewer_MasterDetail_NestedTable.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				// select a table company
+				Object element = XWT.findElementByName(root, "IndustryViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 2);
+
+				Industry industry = (Industry) XWT.getDataContext(element);
+				Company company = null;
+				for (Company memeber : industry.getMembers()) {
+					if ("Soyatec".equals(memeber.getName())) {
+						company = memeber;
+						break;
+					}
+				}
+				IObservableValue observableValue = XWT.findObservableValue(
+						root, tableViewer, "singleSelection");
+				observableValue.setValue(company);
+			}
+		}, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "CompanyViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 2);
+				assertEquals(items[0].getText(0), "Thomas");
+				assertEquals(items[0].getText(1), "32");
+				assertEquals(items[1].getText(0), "Jin");
+				assertEquals(items[1].getText(1), "27");
+			}
+		});
+	}
+
+	public void testTableViewer_MasterDetail_NestedTable_AddInput()
+			throws Exception {
+		URL url = JFaceTableViewer_MasterDetail_Tests.class
+				.getResource(TableViewer_MasterDetail_NestedTable_AddInput.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				// select a table company
+				Object element = XWT.findElementByName(root, "AddButton");
+				assertTrue(element instanceof Button);
+				selectButton((Button) element);
+			}
+		}, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "CompanyViewer1");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 3);
+			}
+		});
+	}
+
+	public void testTableViewer_MasterDetail_NestedTable_AddPath()
+			throws Exception {
+		URL url = JFaceTableViewer_MasterDetail_Tests.class
+				.getResource(TableViewer_MasterDetail_NestedTable_AddPath.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				// select a table company
+				Object element = XWT.findElementByName(root, "AddButton");
+				assertTrue(element instanceof Button);
+				selectButton((Button) element);
+			}
+		}, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "CompanyViewer1");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 3);
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail.java
new file mode 100644
index 0000000..77c8270
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewer_MasterDetail {
+	public static void main(String[] args) {
+
+		URL url = TableViewer_MasterDetail.class
+				.getResource(TableViewer_MasterDetail.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail.xwt
new file mode 100644
index 0000000..168945a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail.xwt
@@ -0,0 +1,34 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<GridLayout numColumns="1"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<j:Employee Name="Thomas" Age="32"/>
+				<j:Employee Name="Jin" Age="27"/>
+			</j:Company.employees>
+		</j:Company>
+	</Composite.Resources>
+	<TableViewer Name="TableViewer" input="{Binding Path=employees}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Label name="Label" text="{Binding ElementName=TableViewer,path=singleSelection.(j:Employee.name)}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_Edit.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_Edit.java
new file mode 100644
index 0000000..3eb8466
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_Edit.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewer_MasterDetail_Edit {
+	public static void main(String[] args) {
+
+		URL url = TableViewer_MasterDetail_Edit.class
+				.getResource(TableViewer_MasterDetail_Edit.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_Edit.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_Edit.xwt
new file mode 100644
index 0000000..8bab906
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_Edit.xwt
@@ -0,0 +1,34 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<GridLayout numColumns="1"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<j:Employee Name="Thomas" Age="32"/>
+				<j:Employee Name="Jin" Age="27"/>
+			</j:Company.employees>
+		</j:Company>
+	</Composite.Resources>
+	<TableViewer Name="TableViewer" input="{Binding Path=employees}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Text name="Text" text="{Binding ElementName=TableViewer,path=singleSelection.(j:Employee.name),UpdateSourceTrigger=PropertyChanged}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable.java
new file mode 100644
index 0000000..2efbe68
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewer_MasterDetail_NestedTable {
+	public static void main(String[] args) {
+
+		URL url = TableViewer_MasterDetail_NestedTable.class
+				.getResource(TableViewer_MasterDetail_NestedTable.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable.xwt
new file mode 100644
index 0000000..a2a9356
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable.xwt
@@ -0,0 +1,51 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail"
+    DataContext="{StaticResource MyDomain}">
+	<Composite.layout>
+		<GridLayout numColumns="1"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Industry x:Key="MyDomain">
+			<j:Industry.members>
+				<j:Company Name="Soyatec" >
+					<j:Company.employees>
+						<j:Employee Name="Thomas" Age="32"/>
+						<j:Employee Name="Jin" Age="27"/>
+					</j:Company.employees>
+				</j:Company>
+				<j:Company Name="Thales">
+				</j:Company>
+			</j:Industry.members>
+		</j:Industry>
+	</Composite.Resources>
+	<TableViewer Name="IndustryViewer" input="{Binding Path=members}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Label text="{Binding ElementName=IndustryViewer,path=singleSelection.(j:Company.name)}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+	<TableViewer Name="CompanyViewer" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />
+		</TableViewer.control.layoutData>
+	</TableViewer>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable_AddInput.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable_AddInput.java
new file mode 100644
index 0000000..2d46cfe
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable_AddInput.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewer_MasterDetail_NestedTable_AddInput {
+	public static void main(String[] args) {
+
+		URL url = TableViewer_MasterDetail_NestedTable_AddInput.class
+				.getResource(TableViewer_MasterDetail_NestedTable_AddInput.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void addEmployee(Object sender, Event event) {
+		TableViewer tableViewer = (TableViewer) XWT.findElementByName(
+				event.widget, "IndustryViewer");
+		Industry industry = (Industry) XWT.getDataContext(tableViewer);
+		Company company = null;
+		for (Company memeber : industry.getMembers()) {
+			if ("Soyatec".equals(memeber.getName())) {
+				company = memeber;
+				break;
+			}
+		}
+		IObservableValue observableValue = XWT.findObservableValue(
+				event.widget, tableViewer, "singleSelection");
+		observableValue.setValue(company);
+
+		TableViewer companyViewer = (TableViewer) XWT.findElementByName(
+				event.widget, "CompanyViewer1");
+
+		IObservableList employees = (IObservableList) companyViewer.getInput();
+		observableValue.setValue(company);
+		Employee employee = new Employee();
+		employee.setName("Bruno");
+		employee.setAge(24);
+		employees.add(employee);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable_AddInput.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable_AddInput.xwt
new file mode 100644
index 0000000..ea36651
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable_AddInput.xwt
@@ -0,0 +1,65 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail"
+    x:Class="org.eclipse.xwt.tests.jface.tableviewer.master.detail.TableViewer_MasterDetail_NestedTable_AddInput"
+    DataContext="{StaticResource MyDomain}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Industry x:Key="MyDomain">
+			<j:Industry.members>
+				<j:Company Name="Soyatec" >
+					<j:Company.employees>
+						<j:Employee Name="Thomas" Age="32"/>
+						<j:Employee Name="Jin" Age="27"/>
+					</j:Company.employees>
+				</j:Company>
+				<j:Company Name="Thales">
+				</j:Company>
+			</j:Industry.members>
+		</j:Industry>
+	</Composite.Resources>
+	<TableViewer Name="IndustryViewer" input="{Binding Path=members}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Label text="{Binding ElementName=IndustryViewer,path=singleSelection.(j:Company.name)}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+	<TableViewer Name="CompanyViewer1" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<TableViewer Name="CompanyViewer2" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Button name="AddButton" text="Add Employee" SelectionEvent="addEmployee" enabled="{Binding elementName=IndustryViewer,path=singleSelection }" />
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable_AddPath.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable_AddPath.java
new file mode 100644
index 0000000..50fb279
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable_AddPath.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewer_MasterDetail_NestedTable_AddPath {
+	public static void main(String[] args) {
+
+		URL url = TableViewer_MasterDetail_NestedTable_AddPath.class
+				.getResource(TableViewer_MasterDetail_NestedTable_AddPath.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void addEmployee(Object sender, Event event) {
+		TableViewer tableViewer = (TableViewer) XWT.findElementByName(
+				event.widget, "IndustryViewer");
+		Industry industry = (Industry) XWT.getDataContext(tableViewer);
+		Company company = null;
+		for (Company memeber : industry.getMembers()) {
+			if ("Soyatec".equals(memeber.getName())) {
+				company = memeber;
+				break;
+			}
+		}
+		IObservableValue observableValue = XWT.findObservableValue(
+				event.widget, tableViewer, "singleSelection");
+		observableValue.setValue(company);
+
+		IObservableList members = XWT.findObservableList(event.widget,
+				tableViewer, "singleSelection.employees");
+		observableValue.setValue(company);
+		Employee employee = new Employee();
+		employee.setName("Bruno");
+		employee.setAge(24);
+		members.add(employee);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable_AddPath.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable_AddPath.xwt
new file mode 100644
index 0000000..f1cce29
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/TableViewer_MasterDetail_NestedTable_AddPath.xwt
@@ -0,0 +1,65 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail"
+    x:Class="org.eclipse.xwt.tests.jface.tableviewer.master.detail.TableViewer_MasterDetail_NestedTable_AddPath"
+    DataContext="{StaticResource MyDomain}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Industry x:Key="MyDomain">
+			<j:Industry.members>
+				<j:Company Name="Soyatec" >
+					<j:Company.employees>
+						<j:Employee Name="Thomas" Age="32"/>
+						<j:Employee Name="Jin" Age="27"/>
+					</j:Company.employees>
+				</j:Company>
+				<j:Company Name="Thales">
+				</j:Company>
+			</j:Industry.members>
+		</j:Industry>
+	</Composite.Resources>
+	<TableViewer Name="IndustryViewer" input="{Binding Path=members}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Label text="{Binding ElementName=IndustryViewer,path=singleSelection.(j:Company.name)}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+	<TableViewer Name="CompanyViewer1" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<TableViewer Name="CompanyViewer2" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Button name="AddButton" text="Add Employee" SelectionEvent="addEmployee" enabled="{Binding elementName=IndustryViewer,path=singleSelection }" />
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/Company.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/Company.java
new file mode 100644
index 0000000..53e481d
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/Company.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail.array;
+
+/**
+ * 
+ * @author yyang
+ */
+public class Company {
+	protected String name;
+
+	protected Employee[] employees;
+
+	public Company() {
+	}
+
+	public Employee[] getEmployees() {
+		return employees;
+	}
+
+	public void setEmployees(Employee[] employees) {
+		this.employees = employees;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/Employee.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/Employee.java
new file mode 100644
index 0000000..ee6b1dc
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/Employee.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail.array;
+
+public class Employee {
+	protected String name;
+	protected int age;
+
+	public int getAge() {
+		return age;
+	}
+
+	public void setAge(int age) {
+		this.age = age;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/Industry.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/Industry.java
new file mode 100644
index 0000000..1df4ed1
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/Industry.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail.array;
+
+/**
+ * 
+ * @author yyang
+ */
+public class Industry {
+	protected String name;
+	protected Company[] members;
+
+	public Company[] getMembers() {
+		return members;
+	}
+
+	public void setMembers(Company[] members) {
+		this.members = members;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/JFaceTableViewer_Array_MasterDetail_Tests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/JFaceTableViewer_Array_MasterDetail_Tests.java
new file mode 100644
index 0000000..721c1ec
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/JFaceTableViewer_Array_MasterDetail_Tests.java
@@ -0,0 +1,237 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail.array;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class JFaceTableViewer_Array_MasterDetail_Tests extends XWTTestCase {
+
+	public void testTableViewer_MasterDetail() throws Exception {
+		URL url = JFaceTableViewer_Array_MasterDetail_Tests.class
+				.getResource(TableViewer_MasterDetail.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkListViewer();
+			}
+
+			public void checkListViewer() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 2);
+				assertEquals(items[0].getText(0), "Thomas");
+				assertEquals(items[0].getText(1), "32");
+				assertEquals(items[1].getText(0), "Jin");
+				assertEquals(items[1].getText(1), "27");
+			}
+		});
+	}
+
+	public void testTableViewer_MasterDetail_DetailDisplay() throws Exception {
+		URL url = JFaceTableViewer_Array_MasterDetail_Tests.class
+				.getResource(TableViewer_MasterDetail.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+
+				IObservableValue observableValue = XWT.findObservableValue(
+						root, tableViewer, "singleSelection");
+
+				Company company = (Company) XWT.getDataContext(element);
+				Employee employee = company.getEmployees()[0];
+				observableValue.setValue(employee);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkListViewer();
+			}
+
+			public void checkListViewer() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 2);
+
+				Label label = (Label) XWT.findElementByName(root, "Label");
+				assertTrue(label != null);
+
+				IObservableValue observableValue = XWT.findObservableValue(
+						root, tableViewer, "singleSelection");
+				Object selected = observableValue.getValue();
+				assertTrue(selected instanceof Employee);
+				Employee employee = (Employee) selected;
+				assertEquals(label.getText(), employee.getName());
+			}
+		});
+	}
+
+	public void testTableViewer_MasterDetail_DetailEdit() throws Exception {
+		final String newName = "Employee new name";
+		URL url = JFaceTableViewer_Array_MasterDetail_Tests.class
+				.getResource(TableViewer_MasterDetail_Edit.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+
+				IObservableValue observableValue = XWT.findObservableValue(
+						root, tableViewer, "singleSelection");
+
+				Company company = (Company) XWT.getDataContext(element);
+				Employee employee = company.getEmployees()[0];
+				observableValue.setValue(employee);
+			}
+		}, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 2);
+
+				Text text = (Text) XWT.findElementByName(root, "Text");
+				assertTrue(text != null);
+
+				IObservableValue observableValue = XWT.findObservableValue(
+						root, tableViewer, "singleSelection");
+				Object selected = observableValue.getValue();
+				assertTrue(selected instanceof Employee);
+				Employee employee = (Employee) selected;
+				assertEquals(text.getText(), employee.getName());
+
+				text.setText(newName);
+			}
+		}, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+
+				IObservableValue observableValue = XWT.findObservableValue(
+						root, tableViewer, "singleSelection");
+				Object selected = observableValue.getValue();
+				assertTrue(selected instanceof Employee);
+				Employee employee = (Employee) selected;
+				assertEquals(newName, employee.getName());
+			}
+		});
+	}
+
+	public void testTableViewer_MasterDetail_NestedTable() throws Exception {
+		URL url = JFaceTableViewer_Array_MasterDetail_Tests.class
+				.getResource(TableViewer_MasterDetail_NestedTable.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				// select a table company
+				Object element = XWT.findElementByName(root, "IndustryViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 2);
+
+				Industry industry = (Industry) XWT.getDataContext(element);
+				Company company = null;
+				for (Company memeber : industry.getMembers()) {
+					if ("Soyatec".equals(memeber.getName())) {
+						company = memeber;
+						break;
+					}
+				}
+				IObservableValue observableValue = XWT.findObservableValue(
+						root, tableViewer, "singleSelection");
+				observableValue.setValue(company);
+			}
+		}, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "CompanyViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 2);
+				assertEquals(items[0].getText(0), "Thomas");
+				assertEquals(items[0].getText(1), "32");
+				assertEquals(items[1].getText(0), "Jin");
+				assertEquals(items[1].getText(1), "27");
+			}
+		});
+	}
+
+	public void testTableViewer_MasterDetail_NestedTable_AddInput()
+			throws Exception {
+		URL url = JFaceTableViewer_Array_MasterDetail_Tests.class
+				.getResource(TableViewer_MasterDetail_NestedTable_AddInput.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				// select a table company
+				Object element = XWT.findElementByName(root, "AddButton");
+				assertTrue(element instanceof Button);
+				selectButton((Button) element);
+			}
+		}, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "CompanyViewer1");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 3);
+			}
+		});
+	}
+
+	public void testTableViewer_MasterDetail_NestedTable_AddPath()
+			throws Exception {
+		URL url = JFaceTableViewer_Array_MasterDetail_Tests.class
+				.getResource(TableViewer_MasterDetail_NestedTable_AddPath.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				// select a table company
+				Object element = XWT.findElementByName(root, "AddButton");
+				assertTrue(element instanceof Button);
+				selectButton((Button) element);
+			}
+		}, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "CompanyViewer1");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 3);
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail.java
new file mode 100644
index 0000000..43f76f6
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail.array;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewer_MasterDetail {
+	public static void main(String[] args) {
+
+		URL url = TableViewer_MasterDetail.class
+				.getResource(TableViewer_MasterDetail.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail.xwt
new file mode 100644
index 0000000..54b7937
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail.xwt
@@ -0,0 +1,36 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.array"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<GridLayout numColumns="1"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<x:Array Type="j:Employee">
+					<j:Employee Name="Thomas" Age="32"/>
+					<j:Employee Name="Jin" Age="27"/>
+				</x:Array>
+			</j:Company.employees>
+		</j:Company>
+	</Composite.Resources>
+	<TableViewer Name="TableViewer" input="{Binding Path=employees}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Label name="Label" text="{Binding ElementName=TableViewer,path=singleSelection.(j:Employee.name)}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_Edit.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_Edit.java
new file mode 100644
index 0000000..05597d0
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_Edit.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail.array;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewer_MasterDetail_Edit {
+	public static void main(String[] args) {
+
+		URL url = TableViewer_MasterDetail_Edit.class
+				.getResource(TableViewer_MasterDetail_Edit.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_Edit.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_Edit.xwt
new file mode 100644
index 0000000..69a00b7
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_Edit.xwt
@@ -0,0 +1,36 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.array"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<GridLayout numColumns="1"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<x:Array Type="j:Employee">
+					<j:Employee Name="Thomas" Age="32"/>
+					<j:Employee Name="Jin" Age="27"/>
+				</x:Array>
+			</j:Company.employees>
+		</j:Company>
+	</Composite.Resources>
+	<TableViewer Name="TableViewer" input="{Binding Path=employees}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Text name="Text" text="{Binding ElementName=TableViewer,path=singleSelection.(j:Employee.name),UpdateSourceTrigger=PropertyChanged}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_List.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_List.java
new file mode 100644
index 0000000..e70c3f0
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_List.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail.array;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewer_MasterDetail_List {
+	public static void main(String[] args) {
+
+		URL url = TableViewer_MasterDetail_List.class
+				.getResource(TableViewer_MasterDetail_List.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_List.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_List.xwt
new file mode 100644
index 0000000..ebc6e26
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_List.xwt
@@ -0,0 +1,52 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.array"
+    DataContext="{StaticResource MyDomain}">
+	<Composite.layout>
+		<GridLayout numColumns="1"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Industry x:Key="MyDomain">
+			<j:Industry.members>
+				<j:Company Name="Soyatec" >
+					<j:Company.employees>
+						<x:Array Type="j:Employee">
+							<j:Employee Name="Thomas" Age="32"/>
+							<j:Employee Name="Jin" Age="27"/>
+						</x:Array>
+					</j:Company.employees>
+				</j:Company>
+				<j:Company Name="Thales"/>
+			</j:Industry.members>
+		</j:Industry>
+	</Composite.Resources>
+	<TableViewer Name="IndustryViewer" input="{Binding Path=members}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Label text="{Binding ElementName=IndustryViewer,path=singleSelection.(j:Company.name)}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+	<TableViewer Name="CompanyViewer" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200"
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />
+		</TableViewer.control.layoutData>
+	</TableViewer>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable.java
new file mode 100644
index 0000000..eb81b26
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail.array;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewer_MasterDetail_NestedTable {
+	public static void main(String[] args) {
+
+		URL url = TableViewer_MasterDetail_NestedTable.class
+				.getResource(TableViewer_MasterDetail_NestedTable.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable.xwt
new file mode 100644
index 0000000..36615eb
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable.xwt
@@ -0,0 +1,53 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.array"
+    DataContext="{StaticResource MyDomain}">
+	<Composite.layout>
+		<GridLayout numColumns="1"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Industry x:Key="MyDomain">
+			<j:Industry.members>
+				<j:Company Name="Soyatec" >
+					<j:Company.employees>
+						<x:Array Type="j:Employee">
+							<j:Employee Name="Thomas" Age="32"/>
+							<j:Employee Name="Jin" Age="27"/>
+						</x:Array>
+					</j:Company.employees>
+				</j:Company>
+				<j:Company Name="Thales">
+				</j:Company>
+			</j:Industry.members>
+		</j:Industry>
+	</Composite.Resources>
+	<TableViewer Name="IndustryViewer" input="{Binding Path=members}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Label text="{Binding ElementName=IndustryViewer,path=singleSelection.(j:Company.name)}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+	<TableViewer Name="CompanyViewer" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />
+		</TableViewer.control.layoutData>
+	</TableViewer>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable_AddInput.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable_AddInput.java
new file mode 100644
index 0000000..8f829e8
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable_AddInput.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail.array;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewer_MasterDetail_NestedTable_AddInput {
+	public static void main(String[] args) {
+
+		URL url = TableViewer_MasterDetail_NestedTable_AddInput.class
+				.getResource(TableViewer_MasterDetail_NestedTable_AddInput.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void addEmployee(Object sender, Event event) {
+		TableViewer tableViewer = (TableViewer) XWT.findElementByName(
+				event.widget, "IndustryViewer");
+		Industry industry = (Industry) XWT.getDataContext(tableViewer);
+		Company company = null;
+		for (Company memeber : industry.getMembers()) {
+			if ("Soyatec".equals(memeber.getName())) {
+				company = memeber;
+				break;
+			}
+		}
+		IObservableValue observableValue = XWT.findObservableValue(
+				event.widget, tableViewer, "singleSelection");
+		observableValue.setValue(company);
+
+		TableViewer companyViewer = (TableViewer) XWT.findElementByName(
+				event.widget, "CompanyViewer1");
+
+		IObservableList employees = (IObservableList) companyViewer.getInput();
+		observableValue.setValue(company);
+		Employee employee = new Employee();
+		employee.setName("Bruno");
+		employee.setAge(24);
+		employees.add(employee);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable_AddInput.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable_AddInput.xwt
new file mode 100644
index 0000000..80df4e0
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable_AddInput.xwt
@@ -0,0 +1,67 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.array"
+    x:Class="org.eclipse.xwt.tests.jface.tableviewer.master.detail.array.TableViewer_MasterDetail_NestedTable_AddInput"
+    DataContext="{StaticResource MyDomain}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Industry x:Key="MyDomain">
+			<j:Industry.members>
+				<j:Company Name="Soyatec" >
+					<j:Company.employees>
+						<x:Array Type="j:Employee">
+							<j:Employee Name="Thomas" Age="32"/>
+							<j:Employee Name="Jin" Age="27"/>
+						</x:Array>
+					</j:Company.employees>
+				</j:Company>
+				<j:Company Name="Thales">
+				</j:Company>
+			</j:Industry.members>
+		</j:Industry>
+	</Composite.Resources>
+	<TableViewer Name="IndustryViewer" input="{Binding Path=members}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Label text="{Binding ElementName=IndustryViewer,path=singleSelection.(j:Company.name)}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+	<TableViewer Name="CompanyViewer1" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<TableViewer Name="CompanyViewer2" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Button name="AddButton" text="Add Employee" SelectionEvent="addEmployee" enabled="{Binding elementName=IndustryViewer,path=singleSelection }" />
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable_AddPath.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable_AddPath.java
new file mode 100644
index 0000000..3ce43e0
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable_AddPath.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail.array;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewer_MasterDetail_NestedTable_AddPath {
+	public static void main(String[] args) {
+
+		URL url = TableViewer_MasterDetail_NestedTable_AddPath.class
+				.getResource(TableViewer_MasterDetail_NestedTable_AddPath.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void addEmployee(Object sender, Event event) {
+		TableViewer tableViewer = (TableViewer) XWT.findElementByName(
+				event.widget, "IndustryViewer");
+		Industry industry = (Industry) XWT.getDataContext(tableViewer);
+		Company company = null;
+		for (Company memeber : industry.getMembers()) {
+			if ("Soyatec".equals(memeber.getName())) {
+				company = memeber;
+				break;
+			}
+		}
+		IObservableValue observableValue = XWT.findObservableValue(
+				event.widget, tableViewer, "singleSelection");
+		observableValue.setValue(company);
+
+		IObservableList members = XWT.findObservableList(event.widget,
+				tableViewer, "singleSelection.employees");
+		observableValue.setValue(company);
+		Employee employee = new Employee();
+		employee.setName("Bruno");
+		employee.setAge(24);
+		members.add(employee);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable_AddPath.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable_AddPath.xwt
new file mode 100644
index 0000000..33a8b2a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/array/TableViewer_MasterDetail_NestedTable_AddPath.xwt
@@ -0,0 +1,67 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.array"
+    x:Class="org.eclipse.xwt.tests.jface.tableviewer.master.detail.array.TableViewer_MasterDetail_NestedTable_AddPath"
+    DataContext="{StaticResource MyDomain}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Industry x:Key="MyDomain">
+			<j:Industry.members>
+				<j:Company Name="Soyatec" >
+					<j:Company.employees>
+						<x:Array Type="j:Employee">
+							<j:Employee Name="Thomas" Age="32"/>
+							<j:Employee Name="Jin" Age="27"/>
+						</x:Array>
+					</j:Company.employees>
+				</j:Company>
+				<j:Company Name="Thales">
+				</j:Company>
+			</j:Industry.members>
+		</j:Industry>
+	</Composite.Resources>
+	<TableViewer Name="IndustryViewer" input="{Binding Path=members}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Label text="{Binding ElementName=IndustryViewer,path=singleSelection.(j:Company.name)}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+	<TableViewer Name="CompanyViewer1" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<TableViewer Name="CompanyViewer2" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Button name="AddButton" text="Add Employee" SelectionEvent="addEmployee" enabled="{Binding elementName=IndustryViewer,path=singleSelection }" />
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/Company.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/Company.java
new file mode 100644
index 0000000..fb54e68
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/Company.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail.list;
+
+import java.util.List;
+
+/**
+ * 
+ * @author yyang
+ */
+public class Company {
+	protected String name;
+
+	protected List<Employee> employees;
+
+	public Company() {
+	}
+
+	public List<Employee> getEmployees() {
+		return employees;
+	}
+
+	public void setEmployees(List<Employee> employees) {
+		this.employees = employees;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/Employee.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/Employee.java
new file mode 100644
index 0000000..a084625
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/Employee.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail.list;
+
+public class Employee {
+	protected String name;
+	protected int age;
+
+	public int getAge() {
+		return age;
+	}
+
+	public void setAge(int age) {
+		this.age = age;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/Industry.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/Industry.java
new file mode 100644
index 0000000..a902484
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/Industry.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail.list;
+
+import java.util.List;
+
+/**
+ * 
+ * @author yyang
+ */
+public class Industry {
+	protected String name;
+	protected List<Company> members;
+
+	public List<Company> getMembers() {
+		return members;
+	}
+
+	public void setMembers(List<Company> members) {
+		this.members = members;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/JFaceTableViewer_List_MasterDetail_Tests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/JFaceTableViewer_List_MasterDetail_Tests.java
new file mode 100644
index 0000000..11498b8
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/JFaceTableViewer_List_MasterDetail_Tests.java
@@ -0,0 +1,233 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail.list;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class JFaceTableViewer_List_MasterDetail_Tests extends XWTTestCase {
+
+	public void testTableViewer_MasterDetail() throws Exception {
+		URL url = JFaceTableViewer_List_MasterDetail_Tests.class
+				.getResource(TableViewer_MasterDetail.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 2);
+				assertEquals(items[0].getText(0), "Thomas");
+				assertEquals(items[0].getText(1), "32");
+				assertEquals(items[1].getText(0), "Jin");
+				assertEquals(items[1].getText(1), "27");
+			}
+		});
+	}
+
+	public void testTableViewer_MasterDetail_DetailDisplay() throws Exception {
+		URL url = JFaceTableViewer_List_MasterDetail_Tests.class
+				.getResource(TableViewer_MasterDetail.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+
+				IObservableValue observableValue = XWT.findObservableValue(
+						root, tableViewer, "singleSelection");
+
+				Company company = (Company) XWT.getDataContext(element);
+				Employee employee = company.getEmployees().iterator().next();
+				observableValue.setValue(employee);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkListViewer();
+			}
+
+			public void checkListViewer() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 2);
+
+				Label label = (Label) XWT.findElementByName(root, "Label");
+				assertTrue(label != null);
+
+				IObservableValue observableValue = XWT.findObservableValue(
+						root, tableViewer, "singleSelection");
+				Object selected = observableValue.getValue();
+				assertTrue(selected instanceof Employee);
+				Employee employee = (Employee) selected;
+				assertEquals(label.getText(), employee.getName());
+			}
+		});
+	}
+
+	public void testTableViewer_MasterDetail_DetailEdit() throws Exception {
+		final String newName = "Employee new name";
+		URL url = JFaceTableViewer_List_MasterDetail_Tests.class
+				.getResource(TableViewer_MasterDetail_Edit.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+
+				IObservableValue observableValue = XWT.findObservableValue(
+						root, tableViewer, "singleSelection");
+
+				Company company = (Company) XWT.getDataContext(element);
+				Employee employee = company.getEmployees().iterator().next();
+				observableValue.setValue(employee);
+			}
+		}, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 2);
+
+				Text text = (Text) XWT.findElementByName(root, "Text");
+				assertTrue(text != null);
+
+				IObservableValue observableValue = XWT.findObservableValue(
+						root, tableViewer, "singleSelection");
+				Object selected = observableValue.getValue();
+				assertTrue(selected instanceof Employee);
+				Employee employee = (Employee) selected;
+				assertEquals(text.getText(), employee.getName());
+
+				text.setText(newName);
+			}
+		}, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+
+				IObservableValue observableValue = XWT.findObservableValue(
+						root, tableViewer, "singleSelection");
+				Object selected = observableValue.getValue();
+				assertTrue(selected instanceof Employee);
+				Employee employee = (Employee) selected;
+				assertEquals(newName, employee.getName());
+			}
+		});
+	}
+
+	public void testTableViewer_MasterDetail_NestedTable() throws Exception {
+		URL url = JFaceTableViewer_List_MasterDetail_Tests.class
+				.getResource(TableViewer_MasterDetail_NestedTable.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				// select a table company
+				Object element = XWT.findElementByName(root, "IndustryViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 2);
+
+				Industry industry = (Industry) XWT.getDataContext(element);
+				Company company = null;
+				for (Company memeber : industry.getMembers()) {
+					if ("Soyatec".equals(memeber.getName())) {
+						company = memeber;
+						break;
+					}
+				}
+				IObservableValue observableValue = XWT.findObservableValue(
+						root, tableViewer, "singleSelection");
+				observableValue.setValue(company);
+			}
+		}, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "CompanyViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 2);
+				assertEquals(items[0].getText(0), "Thomas");
+				assertEquals(items[0].getText(1), "32");
+				assertEquals(items[1].getText(0), "Jin");
+				assertEquals(items[1].getText(1), "27");
+			}
+		});
+	}
+
+	public void testTableViewer_MasterDetail_NestedTable_AddInput()
+			throws Exception {
+		URL url = JFaceTableViewer_List_MasterDetail_Tests.class
+				.getResource(TableViewer_MasterDetail_NestedTable_AddInput.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				// select a table company
+				Object element = XWT.findElementByName(root, "AddButton");
+				assertTrue(element instanceof Button);
+				selectButton((Button) element);
+			}
+		}, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "CompanyViewer1");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 3);
+			}
+		});
+	}
+
+	public void testTableViewer_MasterDetail_NestedTable_AddPath()
+			throws Exception {
+		URL url = JFaceTableViewer_List_MasterDetail_Tests.class
+				.getResource(TableViewer_MasterDetail_NestedTable_AddPath.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				// select a table company
+				Object element = XWT.findElementByName(root, "AddButton");
+				assertTrue(element instanceof Button);
+				selectButton((Button) element);
+			}
+		}, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "CompanyViewer1");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 3);
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail.java
new file mode 100644
index 0000000..2ff2a1a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail.list;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewer_MasterDetail {
+	public static void main(String[] args) {
+
+		URL url = TableViewer_MasterDetail.class
+				.getResource(TableViewer_MasterDetail.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail.xwt
new file mode 100644
index 0000000..233c9f9
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail.xwt
@@ -0,0 +1,34 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.list"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<GridLayout numColumns="1"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<j:Employee Name="Thomas" Age="32"/>
+				<j:Employee Name="Jin" Age="27"/>
+			</j:Company.employees>
+		</j:Company>
+	</Composite.Resources>
+	<TableViewer Name="TableViewer" input="{Binding Path=employees}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Label name="Label" text="{Binding ElementName=TableViewer,path=singleSelection.(j:Employee.name)}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_Edit.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_Edit.java
new file mode 100644
index 0000000..5636202
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_Edit.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail.list;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewer_MasterDetail_Edit {
+	public static void main(String[] args) {
+
+		URL url = TableViewer_MasterDetail_Edit.class
+				.getResource(TableViewer_MasterDetail_Edit.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_Edit.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_Edit.xwt
new file mode 100644
index 0000000..00f0a8c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_Edit.xwt
@@ -0,0 +1,34 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.list"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<GridLayout numColumns="1"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<j:Employee Name="Thomas" Age="32"/>
+				<j:Employee Name="Jin" Age="27"/>
+			</j:Company.employees>
+		</j:Company>
+	</Composite.Resources>
+	<TableViewer Name="TableViewer" input="{Binding Path=employees}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Text name="Text" text="{Binding ElementName=TableViewer,path=singleSelection.(j:Employee.name),UpdateSourceTrigger=PropertyChanged}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable.java
new file mode 100644
index 0000000..668f05c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail.list;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewer_MasterDetail_NestedTable {
+	public static void main(String[] args) {
+
+		URL url = TableViewer_MasterDetail_NestedTable.class
+				.getResource(TableViewer_MasterDetail_NestedTable.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable.xwt
new file mode 100644
index 0000000..cf05214
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable.xwt
@@ -0,0 +1,51 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.list"
+    DataContext="{StaticResource MyDomain}">
+	<Composite.layout>
+		<GridLayout numColumns="1"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Industry x:Key="MyDomain">
+			<j:Industry.members>
+				<j:Company Name="Soyatec" >
+					<j:Company.employees>
+						<j:Employee Name="Thomas" Age="32"/>
+						<j:Employee Name="Jin" Age="27"/>
+					</j:Company.employees>
+				</j:Company>
+				<j:Company Name="Thales">
+				</j:Company>
+			</j:Industry.members>
+		</j:Industry>
+	</Composite.Resources>
+	<TableViewer Name="IndustryViewer" input="{Binding Path=members}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Label text="{Binding ElementName=IndustryViewer,path=singleSelection.(j:Company.name)}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+	<TableViewer Name="CompanyViewer" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />
+		</TableViewer.control.layoutData>
+	</TableViewer>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable_AddInput.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable_AddInput.java
new file mode 100644
index 0000000..49623b0
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable_AddInput.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail.list;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewer_MasterDetail_NestedTable_AddInput {
+	public static void main(String[] args) {
+
+		URL url = TableViewer_MasterDetail_NestedTable_AddInput.class
+				.getResource(TableViewer_MasterDetail_NestedTable_AddInput.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void addEmployee(Object sender, Event event) {
+		TableViewer tableViewer = (TableViewer) XWT.findElementByName(
+				event.widget, "IndustryViewer");
+		Industry industry = (Industry) XWT.getDataContext(tableViewer);
+		Company company = null;
+		for (Company memeber : industry.getMembers()) {
+			if ("Soyatec".equals(memeber.getName())) {
+				company = memeber;
+				break;
+			}
+		}
+		IObservableValue observableValue = XWT.findObservableValue(
+				event.widget, tableViewer, "singleSelection");
+		observableValue.setValue(company);
+
+		TableViewer companyViewer = (TableViewer) XWT.findElementByName(
+				event.widget, "CompanyViewer1");
+
+		IObservableList employees = (IObservableList) companyViewer.getInput();
+		observableValue.setValue(company);
+		Employee employee = new Employee();
+		employee.setName("Bruno");
+		employee.setAge(24);
+		employees.add(employee);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable_AddInput.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable_AddInput.xwt
new file mode 100644
index 0000000..2c84678
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable_AddInput.xwt
@@ -0,0 +1,65 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.list"
+    x:Class="org.eclipse.xwt.tests.jface.tableviewer.master.detail.list.TableViewer_MasterDetail_NestedTable_AddInput"
+    DataContext="{StaticResource MyDomain}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Industry x:Key="MyDomain">
+			<j:Industry.members>
+				<j:Company Name="Soyatec" >
+					<j:Company.employees>
+						<j:Employee Name="Thomas" Age="32"/>
+						<j:Employee Name="Jin" Age="27"/>
+					</j:Company.employees>
+				</j:Company>
+				<j:Company Name="Thales">
+				</j:Company>
+			</j:Industry.members>
+		</j:Industry>
+	</Composite.Resources>
+	<TableViewer Name="IndustryViewer" input="{Binding Path=members}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Label text="{Binding ElementName=IndustryViewer,path=singleSelection.(j:Company.name)}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+	<TableViewer Name="CompanyViewer1" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<TableViewer Name="CompanyViewer2" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Button name="AddButton" text="Add Employee" SelectionEvent="addEmployee" enabled="{Binding elementName=IndustryViewer,path=singleSelection }" />
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable_AddPath.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable_AddPath.java
new file mode 100644
index 0000000..1d7ed00
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable_AddPath.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail.list;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewer_MasterDetail_NestedTable_AddPath {
+	public static void main(String[] args) {
+
+		URL url = TableViewer_MasterDetail_NestedTable_AddPath.class
+				.getResource(TableViewer_MasterDetail_NestedTable_AddPath.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void addEmployee(Object sender, Event event) {
+		TableViewer tableViewer = (TableViewer) XWT.findElementByName(
+				event.widget, "IndustryViewer");
+		Industry industry = (Industry) XWT.getDataContext(tableViewer);
+		Company company = null;
+		for (Company memeber : industry.getMembers()) {
+			if ("Soyatec".equals(memeber.getName())) {
+				company = memeber;
+				break;
+			}
+		}
+		IObservableValue observableValue = XWT.findObservableValue(
+				event.widget, tableViewer, "singleSelection");
+		observableValue.setValue(company);
+
+		IObservableList members = XWT.findObservableList(event.widget,
+				tableViewer, "singleSelection.employees");
+		observableValue.setValue(company);
+		Employee employee = new Employee();
+		employee.setName("Bruno");
+		employee.setAge(24);
+		members.add(employee);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable_AddPath.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable_AddPath.xwt
new file mode 100644
index 0000000..8618a50
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/list/TableViewer_MasterDetail_NestedTable_AddPath.xwt
@@ -0,0 +1,65 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.list"
+    x:Class="org.eclipse.xwt.tests.jface.tableviewer.master.detail.list.TableViewer_MasterDetail_NestedTable_AddPath"
+    DataContext="{StaticResource MyDomain}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Industry x:Key="MyDomain">
+			<j:Industry.members>
+				<j:Company Name="Soyatec" >
+					<j:Company.employees>
+						<j:Employee Name="Thomas" Age="32"/>
+						<j:Employee Name="Jin" Age="27"/>
+					</j:Company.employees>
+				</j:Company>
+				<j:Company Name="Thales">
+				</j:Company>
+			</j:Industry.members>
+		</j:Industry>
+	</Composite.Resources>
+	<TableViewer Name="IndustryViewer" input="{Binding Path=members}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Label text="{Binding ElementName=IndustryViewer,path=singleSelection.(j:Company.name)}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+	<TableViewer Name="CompanyViewer1" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<TableViewer Name="CompanyViewer2" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Button name="AddButton" text="Add Employee" SelectionEvent="addEmployee" enabled="{Binding elementName=IndustryViewer,path=singleSelection }" />
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/Company.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/Company.java
new file mode 100644
index 0000000..a495950
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/Company.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail.set;
+
+import java.util.Set;
+
+/**
+ * 
+ * @author yyang
+ */
+public class Company {
+	protected String name;
+
+	protected Set<Employee> employees;
+
+	public Company() {
+	}
+
+	public Set<Employee> getEmployees() {
+		return employees;
+	}
+
+	public void setEmployees(Set<Employee> employees) {
+		this.employees = employees;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/Employee.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/Employee.java
new file mode 100644
index 0000000..1ff2bf7
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/Employee.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail.set;
+
+public class Employee {
+	protected String name;
+	protected int age;
+
+	public int getAge() {
+		return age;
+	}
+
+	public void setAge(int age) {
+		this.age = age;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/Industry.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/Industry.java
new file mode 100644
index 0000000..89101d3
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/Industry.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail.set;
+
+import java.util.Set;
+
+/**
+ * 
+ * @author yyang
+ */
+public class Industry {
+	protected String name;
+	protected Set<Company> members;
+
+	public Set<Company> getMembers() {
+		return members;
+	}
+
+	public void setMembers(Set<Company> members) {
+		this.members = members;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/JFaceTableViewer_Set_MasterDetail_Tests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/JFaceTableViewer_Set_MasterDetail_Tests.java
new file mode 100644
index 0000000..c27b4bf
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/JFaceTableViewer_Set_MasterDetail_Tests.java
@@ -0,0 +1,244 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail.set;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class JFaceTableViewer_Set_MasterDetail_Tests extends XWTTestCase {
+
+	public void testTableViewer_MasterDetail() throws Exception {
+		URL url = JFaceTableViewer_Set_MasterDetail_Tests.class
+				.getResource(TableViewer_MasterDetail.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 2);
+				if ("Jin".equals(items[1].getText(0))) {
+					assertEquals(items[1].getText(1), "27");
+					assertEquals(items[0].getText(0), "Thomas");
+					assertEquals(items[0].getText(1), "32");
+				} else if ("Thomas".equals(items[1].getText(0))) {
+					assertEquals(items[1].getText(1), "32");
+					assertEquals(items[0].getText(0), "Jin");
+					assertEquals(items[0].getText(1), "27");
+				}
+			}
+		});
+	}
+
+	public void testTableViewer_MasterDetail_DetailDisplay() throws Exception {
+		URL url = JFaceTableViewer_Set_MasterDetail_Tests.class
+				.getResource(TableViewer_MasterDetail.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+
+				IObservableValue observableValue = XWT.findObservableValue(
+						root, tableViewer, "singleSelection");
+
+				Company company = (Company) XWT.getDataContext(element);
+				Employee employee = company.getEmployees().iterator().next();
+				observableValue.setValue(employee);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkListViewer();
+			}
+
+			public void checkListViewer() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 2);
+
+				Label label = (Label) XWT.findElementByName(root, "Label");
+				assertTrue(label != null);
+
+				IObservableValue observableValue = XWT.findObservableValue(
+						root, tableViewer, "singleSelection");
+				Object selected = observableValue.getValue();
+				assertTrue(selected instanceof Employee);
+				Employee employee = (Employee) selected;
+				assertEquals(label.getText(), employee.getName());
+			}
+		});
+	}
+
+	public void testTableViewer_MasterDetail_DetailEdit() throws Exception {
+		final String newName = "Employee new name";
+		URL url = JFaceTableViewer_Set_MasterDetail_Tests.class
+				.getResource(TableViewer_MasterDetail_Edit.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+
+				IObservableValue observableValue = XWT.findObservableValue(
+						root, tableViewer, "singleSelection");
+
+				Company company = (Company) XWT.getDataContext(element);
+				Employee employee = company.getEmployees().iterator().next();
+				observableValue.setValue(employee);
+			}
+		}, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 2);
+
+				Text text = (Text) XWT.findElementByName(root, "Text");
+				assertTrue(text != null);
+
+				IObservableValue observableValue = XWT.findObservableValue(
+						root, tableViewer, "singleSelection");
+				Object selected = observableValue.getValue();
+				assertTrue(selected instanceof Employee);
+				Employee employee = (Employee) selected;
+				assertEquals(text.getText(), employee.getName());
+
+				text.setText(newName);
+			}
+		}, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "TableViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+
+				IObservableValue observableValue = XWT.findObservableValue(
+						root, tableViewer, "singleSelection");
+				Object selected = observableValue.getValue();
+				assertTrue(selected instanceof Employee);
+				Employee employee = (Employee) selected;
+				assertEquals(newName, employee.getName());
+			}
+		});
+	}
+
+	public void testTableViewer_MasterDetail_NestedTable() throws Exception {
+		URL url = JFaceTableViewer_Set_MasterDetail_Tests.class
+				.getResource(TableViewer_MasterDetail_NestedTable.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				// select a table company
+				Object element = XWT.findElementByName(root, "IndustryViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 2);
+
+				Industry industry = (Industry) XWT.getDataContext(element);
+				Company company = null;
+				for (Company memeber : industry.getMembers()) {
+					if ("Soyatec".equals(memeber.getName())) {
+						company = memeber;
+						break;
+					}
+				}
+				IObservableValue observableValue = XWT.findObservableValue(
+						root, tableViewer, "singleSelection");
+				observableValue.setValue(company);
+			}
+		}, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "CompanyViewer");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 2);
+
+				if ("Jin".equals(items[1].getText(0))) {
+					assertEquals(items[1].getText(1), "27");
+					assertEquals(items[0].getText(0), "Thomas");
+					assertEquals(items[0].getText(1), "32");
+				} else if ("Thomas".equals(items[1].getText(0))) {
+					assertEquals(items[1].getText(1), "32");
+					assertEquals(items[0].getText(0), "Jin");
+					assertEquals(items[0].getText(1), "27");
+				}
+			}
+		});
+	}
+
+	public void testTableViewer_MasterDetail_NestedTable_AddInput()
+			throws Exception {
+		URL url = JFaceTableViewer_Set_MasterDetail_Tests.class
+				.getResource(TableViewer_MasterDetail_NestedTable_AddInput.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				// select a table company
+				Object element = XWT.findElementByName(root, "AddButton");
+				assertTrue(element instanceof Button);
+				selectButton((Button) element);
+			}
+		}, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "CompanyViewer1");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 3);
+			}
+		});
+	}
+
+	public void testTableViewer_MasterDetail_NestedTable_AddPath()
+			throws Exception {
+		URL url = JFaceTableViewer_Set_MasterDetail_Tests.class
+				.getResource(TableViewer_MasterDetail_NestedTable_AddPath.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				// select a table company
+				Object element = XWT.findElementByName(root, "AddButton");
+				assertTrue(element instanceof Button);
+				selectButton((Button) element);
+			}
+		}, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "CompanyViewer1");
+				assertTrue(element instanceof TableViewer);
+				TableViewer tableViewer = (TableViewer) element;
+				TableItem[] items = tableViewer.getTable().getItems();
+				assertTrue(items.length == 3);
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail.java
new file mode 100644
index 0000000..7442b19
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail.set;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewer_MasterDetail {
+	public static void main(String[] args) {
+
+		URL url = TableViewer_MasterDetail.class
+				.getResource(TableViewer_MasterDetail.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail.xwt
new file mode 100644
index 0000000..974b54d
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail.xwt
@@ -0,0 +1,34 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.set"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<GridLayout numColumns="1"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<j:Employee Name="Thomas" Age="32"/>
+				<j:Employee Name="Jin" Age="27"/>
+			</j:Company.employees>
+		</j:Company>
+	</Composite.Resources>
+	<TableViewer Name="TableViewer" input="{Binding Path=employees}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Label name="Label" text="{Binding ElementName=TableViewer,path=singleSelection.(j:Employee.name)}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_Edit.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_Edit.java
new file mode 100644
index 0000000..5c3392c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_Edit.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail.set;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewer_MasterDetail_Edit {
+	public static void main(String[] args) {
+
+		URL url = TableViewer_MasterDetail_Edit.class
+				.getResource(TableViewer_MasterDetail_Edit.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_Edit.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_Edit.xwt
new file mode 100644
index 0000000..7e97431
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_Edit.xwt
@@ -0,0 +1,34 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.set"
+    DataContext="{StaticResource myCompany}">
+	<Composite.layout>
+		<GridLayout numColumns="1"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Company x:Key="myCompany">
+			<j:Company.employees>
+				<j:Employee Name="Thomas" Age="32"/>
+				<j:Employee Name="Jin" Age="27"/>
+			</j:Company.employees>
+		</j:Company>
+	</Composite.Resources>
+	<TableViewer Name="TableViewer" input="{Binding Path=employees}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Text name="Text" text="{Binding ElementName=TableViewer,path=singleSelection.(j:Employee.name),UpdateSourceTrigger=PropertyChanged}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable.java
new file mode 100644
index 0000000..9e82b71
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail.set;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewer_MasterDetail_NestedTable {
+	public static void main(String[] args) {
+
+		URL url = TableViewer_MasterDetail_NestedTable.class
+				.getResource(TableViewer_MasterDetail_NestedTable.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable.xwt
new file mode 100644
index 0000000..13605e3
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable.xwt
@@ -0,0 +1,51 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.set"
+    DataContext="{StaticResource MyDomain}">
+	<Composite.layout>
+		<GridLayout numColumns="1"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Industry x:Key="MyDomain">
+			<j:Industry.members>
+				<j:Company Name="Soyatec" >
+					<j:Company.employees>
+						<j:Employee Name="Thomas" Age="32"/>
+						<j:Employee Name="Jin" Age="27"/>
+					</j:Company.employees>
+				</j:Company>
+				<j:Company Name="Thales">
+				</j:Company>
+			</j:Industry.members>
+		</j:Industry>
+	</Composite.Resources>
+	<TableViewer Name="IndustryViewer" input="{Binding Path=members}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Label text="{Binding ElementName=IndustryViewer,path=singleSelection.(j:Company.name)}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+	<TableViewer Name="CompanyViewer" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />
+		</TableViewer.control.layoutData>
+	</TableViewer>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable_AddInput.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable_AddInput.java
new file mode 100644
index 0000000..4f9dccd
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable_AddInput.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail.set;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.set.IObservableSet;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewer_MasterDetail_NestedTable_AddInput {
+	public static void main(String[] args) {
+
+		URL url = TableViewer_MasterDetail_NestedTable_AddInput.class
+				.getResource(TableViewer_MasterDetail_NestedTable_AddInput.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void addEmployee(Object sender, Event event) {
+		TableViewer tableViewer = (TableViewer) XWT.findElementByName(
+				event.widget, "IndustryViewer");
+		Industry industry = (Industry) XWT.getDataContext(tableViewer);
+		Company company = null;
+		for (Company memeber : industry.getMembers()) {
+			if ("Soyatec".equals(memeber.getName())) {
+				company = memeber;
+				break;
+			}
+		}
+		IObservableValue observableValue = XWT.findObservableValue(
+				event.widget, tableViewer, "singleSelection");
+		observableValue.setValue(company);
+
+		TableViewer companyViewer = (TableViewer) XWT.findElementByName(
+				event.widget, "CompanyViewer1");
+
+		IObservableSet employees = (IObservableSet) companyViewer.getInput();
+		observableValue.setValue(company);
+		Employee employee = new Employee();
+		employee.setName("Bruno");
+		employee.setAge(24);
+		employees.add(employee);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable_AddInput.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable_AddInput.xwt
new file mode 100644
index 0000000..af9fee3
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable_AddInput.xwt
@@ -0,0 +1,65 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.set"
+    x:Class="org.eclipse.xwt.tests.jface.tableviewer.master.detail.set.TableViewer_MasterDetail_NestedTable_AddInput"
+    DataContext="{StaticResource MyDomain}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Industry x:Key="MyDomain">
+			<j:Industry.members>
+				<j:Company Name="Soyatec" >
+					<j:Company.employees>
+						<j:Employee Name="Thomas" Age="32"/>
+						<j:Employee Name="Jin" Age="27"/>
+					</j:Company.employees>
+				</j:Company>
+				<j:Company Name="Thales">
+				</j:Company>
+			</j:Industry.members>
+		</j:Industry>
+	</Composite.Resources>
+	<TableViewer Name="IndustryViewer" input="{Binding Path=members}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Label text="{Binding ElementName=IndustryViewer,path=singleSelection.(j:Company.name)}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+	<TableViewer Name="CompanyViewer1" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<TableViewer Name="CompanyViewer2" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Button name="AddButton" text="Add Employee" SelectionEvent="addEmployee" enabled="{Binding elementName=IndustryViewer,path=singleSelection }" />
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable_AddPath.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable_AddPath.java
new file mode 100644
index 0000000..af02ccc
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable_AddPath.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.tableviewer.master.detail.set;
+
+import java.net.URL;
+
+import org.eclipse.core.databinding.observable.set.IObservableSet;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TableViewer_MasterDetail_NestedTable_AddPath {
+	public static void main(String[] args) {
+
+		URL url = TableViewer_MasterDetail_NestedTable_AddPath.class
+				.getResource(TableViewer_MasterDetail_NestedTable_AddPath.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void addEmployee(Object sender, Event event) {
+		TableViewer tableViewer = (TableViewer) XWT.findElementByName(
+				event.widget, "IndustryViewer");
+		Industry industry = (Industry) XWT.getDataContext(tableViewer);
+		Company company = null;
+		for (Company memeber : industry.getMembers()) {
+			if ("Soyatec".equals(memeber.getName())) {
+				company = memeber;
+				break;
+			}
+		}
+		IObservableValue observableValue = XWT.findObservableValue(
+				event.widget, tableViewer, "singleSelection");
+		observableValue.setValue(company);
+
+		IObservableSet members = XWT.findObservableSet(event.widget,
+				tableViewer, "singleSelection.employees");
+		observableValue.setValue(company);
+		Employee employee = new Employee();
+		employee.setName("Bruno");
+		employee.setAge(24);
+		members.add(employee);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable_AddPath.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable_AddPath.xwt
new file mode 100644
index 0000000..47ff2be
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/tableviewer/master/detail/set/TableViewer_MasterDetail_NestedTable_AddPath.xwt
@@ -0,0 +1,65 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.tableviewer.master.detail.set"
+    x:Class="org.eclipse.xwt.tests.jface.tableviewer.master.detail.set.TableViewer_MasterDetail_NestedTable_AddPath"
+    DataContext="{StaticResource MyDomain}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Industry x:Key="MyDomain">
+			<j:Industry.members>
+				<j:Company Name="Soyatec" >
+					<j:Company.employees>
+						<j:Employee Name="Thomas" Age="32"/>
+						<j:Employee Name="Jin" Age="27"/>
+					</j:Company.employees>
+				</j:Company>
+				<j:Company Name="Thales">
+				</j:Company>
+			</j:Industry.members>
+		</j:Industry>
+	</Composite.Resources>
+	<TableViewer Name="IndustryViewer" input="{Binding Path=members}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true"/>
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Label text="{Binding ElementName=IndustryViewer,path=singleSelection.(j:Company.name)}">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+	<TableViewer Name="CompanyViewer1" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<TableViewer Name="CompanyViewer2" input="{Binding ElementName=IndustryViewer,Path=singleSelection.(j:Company.employees)}">
+		<TableViewer.columns>
+			<TableViewerColumn width="150" text="Name" bindingPath="name"/>
+			<TableViewerColumn width="150" text="Age" bindingPath="age"/>
+		</TableViewer.columns>
+		<TableViewer.table HeaderVisible="true">
+		</TableViewer.table>
+		<TableViewer.control.layoutData>
+			<GridData horizontalAlignment="FILL" verticalAlignment="FILL" heightHint="200" 
+         		grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" />
+		</TableViewer.control.layoutData>
+	</TableViewer>
+	<Button name="AddButton" text="Add Employee" SelectionEvent="addEmployee" enabled="{Binding elementName=IndustryViewer,path=singleSelection }" />
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/Person.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/Person.java
new file mode 100644
index 0000000..65ea239
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/Person.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.treeviewer;
+
+public class Person {
+	protected String name;
+	protected int age;
+	protected Person[] children = new Person[0];
+	
+	protected Sex sex;
+	
+	public Sex getSex() {
+		return sex;
+	}
+
+	public void setSex(Sex sex) {
+		this.sex = sex;
+	}
+
+	public int getAge() {
+		return age;
+	}
+
+	public void setAge(int age) {
+		this.age = age;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+	
+	public Person[] getChildren() {
+		return children;
+	}
+
+	public void setChildren(Person[] children) {
+		this.children = children;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/Sex.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/Sex.java
new file mode 100644
index 0000000..0283cdb
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/Sex.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.treeviewer;
+
+public enum Sex {
+	Male, Female;
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_bindingPath.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_bindingPath.java
new file mode 100644
index 0000000..b21cb44
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_bindingPath.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.treeviewer;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TreeViewer_bindingPath {
+	public static void main(String[] args) {
+
+		URL url = TreeViewer_bindingPath.class
+				.getResource(TreeViewer_bindingPath.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_bindingPath.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_bindingPath.xwt
new file mode 100644
index 0000000..b89bd7a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_bindingPath.xwt
@@ -0,0 +1,31 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.treeviewer">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Person x:Key="myPerson" Name="Della Duck" sex="Male">
+		    <j:Person.children>
+				<j:Person Name="Downy O'Drake" sex="Male">
+				    <j:Person.children>
+						<j:Person Name="Hortense McDuck" Age="27" sex="Female"/>
+						<j:Person Name="Fergus McDuck" Age="27" sex="Female"/>
+				    </j:Person.children>
+		        </j:Person>
+				<j:Person Name="Donald Duck" sex="Male"/>
+		    </j:Person.children>
+		</j:Person>
+	</Composite.Resources>
+	<TreeViewer Name="TreeViewer" input="{StaticResource myPerson}" bindingPath="name">
+	    <TreeViewer.contentProvider> 
+			<ObservableTreeContentProvider contentPath="children"/>
+		</TreeViewer.contentProvider>
+		<TreeViewer.control.layoutData>
+			<GridData verticalAlignment="FILL"
+         		grabExcessVerticalSpace="true"
+         		horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</TreeViewer.control.layoutData>
+	</TreeViewer>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_itemText.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_itemText.java
new file mode 100644
index 0000000..a63d2c9
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_itemText.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.jface.treeviewer;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class TreeViewer_itemText {
+	public static void main(String[] args) {
+
+		URL url = TreeViewer_itemText.class
+				.getResource(TreeViewer_itemText.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_itemText.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_itemText.xwt
new file mode 100644
index 0000000..0b52694
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_itemText.xwt
@@ -0,0 +1,31 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.treeviewer">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Person x:Key="myPerson" Name="Della Duck" sex="Male">
+		    <j:Person.children>
+				<j:Person Name="Downy O'Drake" sex="Male">
+				    <j:Person.children>
+						<j:Person Name="Hortense McDuck" Age="27" sex="Female"/>
+						<j:Person Name="Fergus McDuck" Age="27" sex="Female"/>
+				    </j:Person.children>
+		        </j:Person>
+				<j:Person Name="Donald Duck" sex="Male"/>
+		    </j:Person.children>
+		</j:Person>	
+	</Composite.Resources>
+	<TreeViewer Name="TreeViewer" input="{StaticResource myPerson}" itemText="{Binding path=name}">
+	    <TreeViewer.contentProvider> 
+			<ObservableTreeContentProvider contentPath="children"/>
+		</TreeViewer.contentProvider>
+		<TreeViewer.control.layoutData>
+			<GridData verticalAlignment="FILL"
+         		grabExcessVerticalSpace="true"
+         		horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</TreeViewer.control.layoutData>
+	</TreeViewer>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_itemText_itemImage.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_itemText_itemImage.xwt
new file mode 100644
index 0000000..2ec9ee6
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/jface/treeviewer/TreeViewer_itemText_itemImage.xwt
@@ -0,0 +1,32 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.jface.treeviewer">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Composite.Resources>
+		<j:Person x:Key="myPerson" Name="Della Duck" sex="Male">
+		    <j:Person.children>
+				<j:Person Name="Downy O'Drake" sex="Male">
+				    <j:Person.children>
+						<j:Person Name="Hortense McDuck" Age="27" sex="Female"/>
+						<j:Person Name="Fergus McDuck" Age="27" sex="Female"/>
+				    </j:Person.children>
+		        </j:Person>
+				<j:Person Name="Donald Duck" sex="Male"/>
+		    </j:Person.children>
+		</j:Person>
+	</Composite.Resources>
+	<TreeViewer Name="TreeViewer" input="{StaticResource myPerson}" itemText="name"
+	    itemImage="{Binding path=sex,converter=j:SexToImage}">
+	    <TreeViewer.contentProvider> 
+			<ObservableTreeContentProvider contentPath="children"/>
+		</TreeViewer.contentProvider>
+		<TreeViewer.control.layoutData>
+			<GridData verticalAlignment="FILL"
+         		grabExcessVerticalSpace="true"
+         		horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</TreeViewer.control.layoutData>
+	</TreeViewer>
+</Composite>
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/keybinding/demo.gif b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/keybinding/demo.gif
similarity index 100%
rename from org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/keybinding/demo.gif
rename to tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/keybinding/demo.gif
Binary files differ
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/keybinding/keybinding.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/keybinding/keybinding.java
new file mode 100644
index 0000000..310d027
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/keybinding/keybinding.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.keybinding;
+
+import java.net.URL;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class keybinding {
+	public static void main(String[] args) {
+
+		URL url = keybinding.class.getResource(keybinding.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void helloWorld(Event event) {
+		MessageDialog.openInformation(XWT.findShell(event.widget), "Message",
+				"Hello World!");
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/keybinding/keybinding.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/keybinding/keybinding.xwt
new file mode 100644
index 0000000..a699f04
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/keybinding/keybinding.xwt
@@ -0,0 +1,20 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    x:Class="org.eclipse.xwt.tests.keybinding.keybinding"
+    text="Menu Styles Test">
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>
+	<Shell.menuBar>
+		<Menu x:style="BAR">
+			<MenuItem text="Cascade" x:style="CASCADE">
+				<MenuItem.menu>
+					<Menu x:style="DROP_DOWN ">
+						<MenuItem text="Push" x:style="PUSH" accelerator="SWT.CTRL | SWT.SHIFT | A"  image="demo.gif" SelectionEvent="helloWorld"/>
+						<MenuItem text="COM" x:style="PUSH" accelerator="CtrlC"  SelectionEvent="helloWorld"/>						
+					</Menu>
+				</MenuItem.menu>
+			</MenuItem> 
+		</Menu>
+	</Shell.menuBar>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/metaclass/Metaclass_Tests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/metaclass/Metaclass_Tests.java
new file mode 100644
index 0000000..011ea3c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/metaclass/Metaclass_Tests.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.metaclass;
+
+import junit.framework.TestCase;
+
+import org.eclipse.xwt.javabean.metadata.AbstractMetaclass;
+import org.eclipse.xwt.metadata.IObjectInitializer;
+
+public class Metaclass_Tests extends TestCase {
+
+	public void testInitilaizers() {
+		AbstractMetaclass metaclass = new AbstractMetaclass() {
+		};
+
+		IObjectInitializer initializer1 = new IObjectInitializer() {
+			public void initialize(Object object) {
+			}
+		};
+
+		IObjectInitializer initializer2 = new IObjectInitializer() {
+			public void initialize(Object object) {
+			}
+		};
+
+		IObjectInitializer initializer3 = new IObjectInitializer() {
+			public void initialize(Object object) {
+			}
+		};
+
+		metaclass.addInitializer(initializer1);
+
+		assertEquals(metaclass.getInitializers().length, 1);
+
+		metaclass.addInitializer(initializer1);
+		assertEquals(metaclass.getInitializers().length, 1);
+
+		metaclass.addInitializer(initializer2);
+		assertEquals(metaclass.getInitializers().length, 2);
+		assertEquals(metaclass.getInitializers()[0], initializer1);
+		assertEquals(metaclass.getInitializers()[1], initializer2);
+
+		metaclass.addInitializer(initializer3);
+		assertEquals(metaclass.getInitializers().length, 3);
+		assertEquals(metaclass.getInitializers()[0], initializer1);
+		assertEquals(metaclass.getInitializers()[1], initializer2);
+		assertEquals(metaclass.getInitializers()[2], initializer3);
+
+		metaclass.removeInitializer(initializer2);
+		assertEquals(metaclass.getInitializers().length, 2);
+		assertEquals(metaclass.getInitializers()[0], initializer1);
+		assertEquals(metaclass.getInitializers()[1], initializer3);
+
+		metaclass.removeInitializer(initializer1);
+		assertEquals(metaclass.getInitializers().length, 1);
+		assertEquals(metaclass.getInitializers()[0], initializer3);
+
+		metaclass.removeInitializer(initializer3);
+		assertEquals(metaclass.getInitializers().length, 0);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/ElementName_get.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/ElementName_get.java
new file mode 100644
index 0000000..b2c6e0a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/ElementName_get.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.name;
+
+import java.net.URL;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class ElementName_get {
+	public static void main(String[] args) {
+
+		URL url = ElementName_get.class.getResource(ElementName_get.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void handleButton(Event event) {
+		Label message = (Label) XWT.findElementByName(event.widget, "Message");
+		if (message == null) {
+			MessageDialog.openError(XWT.findShell(event.widget), "Test Name",
+					"Label message is not found");
+		} else {
+			MessageDialog.openInformation(XWT.findShell(event.widget),
+					"Test Name", "Name works.");
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/ElementName_get.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/ElementName_get.xwt
new file mode 100644
index 0000000..30e9a8f
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/ElementName_get.xwt
@@ -0,0 +1,4 @@
+<Label xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    Name="LabelElement" 
+    text="NameT test"/>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/ElementName_x_get.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/ElementName_x_get.java
new file mode 100644
index 0000000..16a2be7
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/ElementName_x_get.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.name;
+
+import java.net.URL;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class ElementName_x_get {
+	public static void main(String[] args) {
+
+		URL url = ElementName_x_get.class.getResource(ElementName_x_get.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void handleButton(Event event) {
+		Label message = (Label) XWT.findElementByName(event.widget, "Message");
+		if (message == null) {
+			MessageDialog.openError(XWT.findShell(event.widget), "Test Name",
+					"Label message is not found");
+		} else {
+			MessageDialog.openInformation(XWT.findShell(event.widget),
+					"Test Name", "Name works.");
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/ElementName_x_get.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/ElementName_x_get.xwt
new file mode 100644
index 0000000..be0bcb8
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/ElementName_x_get.xwt
@@ -0,0 +1,4 @@
+<Label xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    x:Name="LabelElement" 
+    text="NameT test"/>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name.java
new file mode 100644
index 0000000..8a4e532
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.name;
+
+import java.net.URL;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Name {
+	public static void main(String[] args) {
+
+		URL url = Name.class.getResource(Name.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void handleButton(Event event) {
+		Label message = (Label) XWT.findElementByName(event.widget, "Message");
+		if (message == null) {
+			MessageDialog.openError(XWT.findShell(event.widget), "Test Name",
+					"Label message is not found");
+		} else {
+			MessageDialog.openInformation(XWT.findShell(event.widget),
+					"Test Name", "Name works.");
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name.xwt
new file mode 100644
index 0000000..e469df3
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name.xwt
@@ -0,0 +1,10 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    x:Class="org.eclipse.xwt.tests.name.Name"
+    text="NameT test">
+    <Shell.layout>
+		<GridLayout numColumns="2"/>
+    </Shell.layout>
+    <Label Name="Message"/>
+	<Button SelectionEvent="handleButton" Text="Click Here"/>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/NameTestSuite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/NameTestSuite.java
new file mode 100644
index 0000000..2a68a81
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/NameTestSuite.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.name;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class NameTestSuite extends TestSuite {
+	public static final Test suite() {
+		return new NameTestSuite();
+	}
+
+	public NameTestSuite() {
+		addTest(new TestSuite(NameTests.class));
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/NameTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/NameTests.java
new file mode 100644
index 0000000..809a672
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/NameTests.java
@@ -0,0 +1,79 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.name;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class NameTests extends XWTTestCase {
+
+	public void testName() throws Exception {
+		URL url = NameTests.class.getResource(Name.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "Message");
+				assertTrue(element instanceof Label);
+			}
+		});
+	}
+
+	public void testNameX() throws Exception {
+		URL url = NameTests.class.getResource(Name_x.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "Message");
+				assertTrue(element instanceof Label);
+			}
+		});
+	}
+
+	public void testElementName() throws Exception {
+		URL url = NameTests.class.getResource(ElementName_get.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object element = XWT.getElementName(root);
+				assertEquals("LabelElement", element);
+			}
+		});
+	}
+
+	public void testElementNameX() throws Exception {
+		URL url = NameTests.class.getResource(ElementName_x_get.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object element = XWT.getElementName(root);
+				assertEquals("LabelElement", element);
+			}
+		});
+	}
+
+	public void testNameMenu() throws Exception {
+		URL url = NameTests.class.getResource(Name_Menu.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object element = XWT.findElementByName(root, "Message");
+				assertTrue(element instanceof MenuItem);
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name_Menu.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name_Menu.java
new file mode 100644
index 0000000..8e26703
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name_Menu.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.name;
+
+import java.net.URL;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Name_Menu {
+	public static void main(String[] args) {
+
+		URL url = Name_Menu.class.getResource(Name_Menu.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void handleButton(Event event) {
+		MenuItem message = (MenuItem) XWT.findElementByName(event.widget,
+				"Message");
+		if (message == null) {
+			MessageDialog.openError(XWT.findShell(event.widget), "Test Name",
+					"MenuItem message is not found");
+		} else {
+			MessageDialog.openInformation(XWT.findShell(event.widget),
+					"Test Name", "Name works.");
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name_Menu.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name_Menu.xwt
new file mode 100644
index 0000000..8bd6b26
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name_Menu.xwt
@@ -0,0 +1,15 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    x:Class="org.eclipse.xwt.tests.name.Name_Menu"
+    text="NameT test">
+    <Shell.layout>
+		<GridLayout numColumns="2"/>
+    </Shell.layout>
+	<Button SelectionEvent="handleButton" Text="Click Here">
+		<Button.menu>
+			<Menu x:style="POP_UP">
+				<MenuItem Name="Message" text="Edit" x:style="PUSH"/>
+			</Menu>
+		</Button.menu>
+	</Button>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name_x.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name_x.java
new file mode 100644
index 0000000..ad0863b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name_x.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.name;
+
+import java.net.URL;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Name_x {
+	public static void main(String[] args) {
+
+		URL url = Name_x.class.getResource(Name_x.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void handleButton(Event event) {
+		Label message = (Label) XWT.findElementByName(event.widget, "Message");
+		if (message == null) {
+			MessageDialog.openError(XWT.findShell(event.widget), "Test Name",
+					"Label message is not found");
+		} else {
+			MessageDialog.openInformation(XWT.findShell(event.widget),
+					"Test Name", "Name works.");
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name_x.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name_x.xwt
new file mode 100644
index 0000000..449ccf3
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/name/Name_x.xwt
@@ -0,0 +1,10 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    x:Class="org.eclipse.xwt.tests.name.Name_x"
+    text="NameT test">
+    <Shell.layout>
+		<GridLayout numColumns="2"/>
+    </Shell.layout>
+    <Label x:Name="Message"/>
+	<Button SelectionEvent="handleButton" Text="Click Here"/>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/ExtHandler.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/ExtHandler.java
new file mode 100644
index 0000000..c7a103c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/ExtHandler.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.namespace.handler;
+
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.xwt.INamespaceHandler;
+
+public class ExtHandler implements INamespaceHandler {
+	public void handleAttribute(Widget widget, Object target, String name,
+			String value) {
+		widget.setData(name, value);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/LabelExt.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/LabelExt.java
new file mode 100644
index 0000000..9ca7fd6
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/LabelExt.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.namespace.handler;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class LabelExt {
+	public static void main(String[] args) {
+		URL url = LabelExt.class.getResource(LabelExt.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.registerNamespaceHandler("http://www.eclipse.org/ext",
+					new ExtHandler());
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/LabelExt.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/LabelExt.xwt
new file mode 100644
index 0000000..4645ca3
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/LabelExt.xwt
@@ -0,0 +1,8 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:ext="http://www.eclipse.org/ext">
+	<Shell.layout>
+		<GridLayout numColumns="2"/>
+	</Shell.layout>
+	<Label name="targetLabel" text="Target Label" ext:id="Ext-Id" />
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/NamespaceHandlerTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/NamespaceHandlerTests.java
new file mode 100644
index 0000000..a3a7fbd
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/NamespaceHandlerTests.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.namespace.handler;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class NamespaceHandlerTests extends XWTTestCase {
+
+	public void testLabelExt() throws Exception {
+		XWT.registerNamespaceHandler("http://www.eclipse.org/ext",
+				new ExtHandler());
+		URL url = NamespaceHandlerTests.class.getResource(LabelExt.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkLabel();
+			}
+
+			public void checkLabel() {
+				Object element = XWT.findElementByName(root, "targetLabel");
+				assertTrue(element instanceof Label);
+				Label label = (Label) element;
+				assertEquals(label.getData("id"), "Ext-Id");
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/NamespacehandlerTestSuite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/NamespacehandlerTestSuite.java
new file mode 100644
index 0000000..cfa1d0e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/namespace/handler/NamespacehandlerTestSuite.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.namespace.handler;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class NamespacehandlerTestSuite extends TestSuite {
+	public static final Test suite() {
+		return new NamespacehandlerTestSuite();
+	}
+
+	public NamespacehandlerTestSuite() {
+		addTest(new TestSuite(NamespaceHandlerTests.class));
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Color_Test.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Color_Test.java
new file mode 100644
index 0000000..bde9877
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Color_Test.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.resources;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Color_Test {
+	public static void main(String[] args) {
+
+		URL url = Color_Test.class.getResource(Color_Test.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Color_Test.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Color_Test.xwt
new file mode 100644
index 0000000..aa2ca81
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Color_Test.xwt
@@ -0,0 +1,20 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    text="Color Test">
+    <Shell.layout>
+    	<FillLayout/>
+    </Shell.layout>
+    <Composite>
+    	<Composite.layout>
+    		<GridLayout numColumns="1"/>
+    	</Composite.layout>
+    	<Label text="Background Color Red " Background="Red"/>
+    	<Label text="Foreground Color Green " Foreground="Green"/>
+    	<Label text="Background Color Red " Background="COLOR_RED"/>
+    	<Label text="Foreground Color Green " Foreground="COLOR_GREEN"/>
+    	<Label text="Background Color Red " Background="#FF0000"/>
+    	<Label text="Foreground Color Green " Foreground="#00FF00"/>
+    	<Label text="Background Color Red " Background="255, 0, 0"/>
+    	<Label text="Foreground Color Green " Foreground="0, 255, 0"/>
+    </Composite>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Font_Test.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Font_Test.java
new file mode 100644
index 0000000..d686bba
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Font_Test.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.resources;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Font_Test {
+	public static void main(String[] args) {
+
+		URL url = Font_Test.class.getResource(Font_Test.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Font_Test.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Font_Test.xwt
new file mode 100644
index 0000000..59d804b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Font_Test.xwt
@@ -0,0 +1,15 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    text="Font Test">
+    <Shell.layout>
+    	<FillLayout/>
+    </Shell.layout>
+    <Composite>
+    	<Composite.layout>
+    		<GridLayout numColumns="1"/>
+    	</Composite.layout>
+    	<Label x:style = "BORDER" text="Font = (Times New Roman, 14, BOLD|ITALIC)" Font="Times New Roman, 14, BOLD|ITALIC"/>
+    	<Label x:style = "BORDER" text="Font = (Arial, 12, NORMAL)" Font="Arial, 14, NORMAL"/>
+    	<Label x:style = "BORDER" text="Font = (Default)"/>
+    </Composite>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Image_Test.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Image_Test.java
new file mode 100644
index 0000000..ab96dde
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Image_Test.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.resources;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Image_Test {
+	public static void main(String[] args) {
+
+		URL url = Image_Test.class.getResource(Image_Test.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Image_Test.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Image_Test.xwt
new file mode 100644
index 0000000..679779e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/Image_Test.xwt
@@ -0,0 +1,9 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    text="Image Test">
+	<Shell.layout>
+		<GridLayout numColumns="1"/>
+	</Shell.layout>
+	<Label name="targetLabel" x:style="BORDER" Image="demo.gif"/>
+	<Button name="targetButton" text="Hello SWT: " Image="demo.gif"/>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/ResourcesTestSuite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/ResourcesTestSuite.java
new file mode 100644
index 0000000..0b922b0
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/ResourcesTestSuite.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.resources;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class ResourcesTestSuite extends TestSuite {
+	public static final Test suite() {
+		return new ResourcesTestSuite();
+	}
+
+	public ResourcesTestSuite() {
+		addTest(new TestSuite(ResourcesTests.class));
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/ResourcesTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/ResourcesTests.java
new file mode 100644
index 0000000..90c1d23
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/ResourcesTests.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.resources;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class ResourcesTests extends XWTTestCase {
+
+	public void testImage() throws Exception {
+		URL url = ResourcesTests.class.getResource(Image_Test.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				checkLabel();
+				checkButton();
+			}
+
+			public void checkLabel() {
+				Object element = XWT.findElementByName(root, "targetLabel");
+				assertTrue(element instanceof Label);
+				Label label = (Label) element;
+				assertNotNull(label.getImage());
+			}
+
+			public void checkButton() {
+				Object element = XWT.findElementByName(root, "targetButton");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				assertNotNull(button.getImage());
+			}
+		});
+	}
+
+	// TODO add Font and Color
+}
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/demo.gif b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/demo.gif
similarity index 100%
rename from org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/demo.gif
rename to tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resources/demo.gif
Binary files differ
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/Container.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/Container.java
new file mode 100644
index 0000000..a1b226f
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/Container.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.resourcesdictionary;
+
+import java.net.URL;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Container {
+
+	public static void main(String[] args) {
+
+		URL url = Container.class.getResource(Container.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void findElement(Event event) {
+		if (XWT.findElementByName(event.widget, "target") != null) {
+			MessageDialog.openInformation(XWT.findShell(event.widget),
+					"Message", "Element is Found");
+		} else {
+			MessageDialog.openError(XWT.findShell(event.widget), "Message",
+					"No Found");
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/Container.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/Container.xwt
new file mode 100644
index 0000000..aed77b7
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/Container.xwt
@@ -0,0 +1,9 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.resourcesdictionary"
+    x:Class="j:Name">	
+	<Composite.Resources>
+		<j:MyData x:Key="myDBC1"/>
+		<j:MyData x:Key="myDBC2"/>
+	</Composite.Resources>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/MyData.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/MyData.java
new file mode 100644
index 0000000..045a18a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/MyData.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.resourcesdictionary;
+
+public class MyData {
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/ResourcesDictionaryTestSuite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/ResourcesDictionaryTestSuite.java
new file mode 100644
index 0000000..3c428f3
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/ResourcesDictionaryTestSuite.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.resourcesdictionary;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class ResourcesDictionaryTestSuite extends TestSuite {
+	public static final Test suite() {
+		return new ResourcesDictionaryTestSuite();
+	}
+
+	public ResourcesDictionaryTestSuite() {
+		addTest(new TestSuite(ResourcesDictionaryTests.class));
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/ResourcesDictionaryTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/ResourcesDictionaryTests.java
new file mode 100644
index 0000000..d8f2280
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/resourcesdictionary/ResourcesDictionaryTests.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.resourcesdictionary;
+
+import java.net.URL;
+import java.util.Map;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class ResourcesDictionaryTests extends XWTTestCase {
+
+	public void testFindResource() throws Exception {
+		URL url = ResourcesDictionaryTests.class.getResource(Container.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object element1 = XWT.findResource(root, "myDBC1");
+				assertTrue(element1 instanceof MyData);
+				Object element2 = XWT.findResource(root, "myDBC2");
+				assertTrue(element2 instanceof MyData);
+			}
+		});
+	}
+
+	public void testGetResources() throws Exception {
+		URL url = ResourcesDictionaryTests.class.getResource(Container.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Map<String, Object> dictionary = XWT.getResources(root);
+				assertEquals(2, dictionary.size());
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/MyUserControl.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/MyUserControl.java
new file mode 100644
index 0000000..fc02a7d
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/MyUserControl.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.style;
+
+import org.eclipse.swt.widgets.Composite;
+
+public class MyUserControl extends Composite {
+
+	public MyUserControl(Composite parent, int style) {
+		super(parent, style);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/MyUserControl.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/MyUserControl.xwt
new file mode 100644
index 0000000..6d73367
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/MyUserControl.xwt
@@ -0,0 +1,9 @@
+<j:MyUserControl xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:j="clr-namespace:org.eclipse.xwt.tests.style"
+	x:Class="org.eclipse.xwt.tests.style.MyUserControl">
+	<j:MyUserControl.layout>
+		<GridLayout numColumns="2"/>
+	</j:MyUserControl.layout>	
+	<Label text="Hello, world"/>
+</j:MyUserControl>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/StyleTestSuite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/StyleTestSuite.java
new file mode 100644
index 0000000..f8eea0c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/StyleTestSuite.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.style;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class StyleTestSuite extends TestSuite {
+	public static final Test suite() {
+		return new StyleTestSuite();
+	}
+
+	public StyleTestSuite() {
+		addTest(new TestSuite(StyleTests.class));
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/StyleTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/StyleTests.java
new file mode 100644
index 0000000..c4dc90b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/StyleTests.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.style;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class StyleTests extends XWTTestCase {
+
+	public void test_Style_Trigger_setter() {
+		URL url = StyleTests.class.getResource(Style_Trigger_setter.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button button = (Button) XWT.findElementByName(root, "Button");
+				selectButton(button);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Button button = (Button) XWT.findElementByName(root, "Button");
+				assertFalse(button.isVisible());
+			}
+		});
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_EventTrigger.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_EventTrigger.java
new file mode 100644
index 0000000..532ab0a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_EventTrigger.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.style;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Style_EventTrigger {
+
+	/**
+	 * @param args
+	 */
+	public static void main(String[] args) {
+
+		URL url = Style_EventTrigger.class.getResource(Style_EventTrigger.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_EventTrigger.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_EventTrigger.xwt
new file mode 100644
index 0000000..126b975
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_EventTrigger.xwt
@@ -0,0 +1,33 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>	
+	
+	<Composite.Resources>
+		<Style x:Key="any" TargetType="Label">
+			<!-- Event trigger -->
+			<Style.Triggers>
+			    <EventTrigger RoutedEvent="MouseEnter">
+			        <BeginStoryboard>
+			            <Storyboard>
+			              <DoubleAnimation To="300" Duration="0:0:1.5" 
+			                AccelerationRatio="0.10" DecelerationRatio="0.25" 
+			                Storyboard.TargetProperty="(Canvas.Width)" />
+			            </Storyboard>
+			        </BeginStoryboard>
+			    </EventTrigger>
+			    <EventTrigger RoutedEvent="MouseLeave">
+			        <BeginStoryboard>
+			            <Storyboard>
+			              <DoubleAnimation Duration="0:0:1.5" 
+			                AccelerationRatio="0.10" DecelerationRatio="0.25" 
+			                Storyboard.TargetProperty="(Canvas.Width)" />
+			            </Storyboard>
+			        </BeginStoryboard>
+			    </EventTrigger>
+			</Style.Triggers>
+		</Style>
+	</Composite.Resources>
+	<Label Text="Event Trigger"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_Trigger.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_Trigger.java
new file mode 100644
index 0000000..1bb1c30
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_Trigger.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.style;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Style_Trigger {
+
+	/**
+	 * @param args
+	 */
+	public static void main(String[] args) {
+
+		URL url = Style_Trigger.class.getResource(Style_Trigger.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_Trigger.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_Trigger.xwt
new file mode 100644
index 0000000..57e8472
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_Trigger.xwt
@@ -0,0 +1,20 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+
+	<Composite.Resources>
+		<Style x:Key="any" TargetType="Button">
+			<!-- Property trigger -->
+			<Style.Triggers>
+				<Trigger Property="Selection" Value="True">
+					<Trigger.Setters>
+						<Setter Property="Visible" Value="False" />
+					</Trigger.Setters>
+				</Trigger>
+			</Style.Triggers>
+		</Style>
+	</Composite.Resources>
+	<Button x:Style="CHECK" Text="Trigger"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_Trigger_setter.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_Trigger_setter.java
new file mode 100644
index 0000000..6c6e601
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_Trigger_setter.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.style;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Style_Trigger_setter {
+
+	/**
+	 * @param args
+	 */
+	public static void main(String[] args) {
+		URL url = Style_Trigger_setter.class
+				.getResource(Style_Trigger_setter.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	public void StyleTriggerSetterTest() {
+
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_Trigger_setter.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_Trigger_setter.xwt
new file mode 100644
index 0000000..d30c0d8
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/Style_Trigger_setter.xwt
@@ -0,0 +1,18 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>	
+	
+	<Composite.Resources>
+		<Style x:Key="any" TargetType="Button">
+			<!-- Property trigger -->
+			<Style.Triggers>
+				<Trigger Property="Selection" Value="True">
+					<Setter Property="Visible" Value="False" />
+				</Trigger>
+			</Style.Triggers>
+		</Style>
+	</Composite.Resources>
+	<Button Name="Button" x:Style="SWT.CHECK" Text="Trigger"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl.java
new file mode 100644
index 0000000..2a3d5a5
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.style;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class UserControl {
+
+	/**
+	 * @param args
+	 */
+	public static void main(String[] args) {
+
+		URL url = UserControl.class.getResource(UserControl.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl.xwt
new file mode 100644
index 0000000..308c1c0
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl.xwt
@@ -0,0 +1,13 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>	
+	
+	<Composite.Resources>
+		<Style x:Key="myStyle">
+			<Setter Property="Background" Value="Red"/>
+		</Style>
+	</Composite.Resources>
+	<Label Style="{StaticResource myStyle}" Text="Hello"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default.java
new file mode 100644
index 0000000..913becd
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.style;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class UserControl_Default {
+
+	/**
+	 * @param args
+	 */
+	public static void main(String[] args) {
+
+		URL url = UserControl_Default.class
+				.getResource(UserControl_Default.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default.xwt
new file mode 100644
index 0000000..2b662bb
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default.xwt
@@ -0,0 +1,13 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>	
+	
+	<Composite.Resources>
+		<Style x:Key="any" TargetType="Label">
+			<Setter Property="Background" Value="Red"/>
+		</Style>
+	</Composite.Resources>
+	<Label Text="Hello"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_Customized.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_Customized.java
new file mode 100644
index 0000000..3941134
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_Customized.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.style;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class UserControl_Default_Customized {
+
+	/**
+	 * @param args
+	 */
+	public static void main(String[] args) {
+
+		URL url = UserControl_Default_Customized.class
+				.getResource(UserControl_Default_Customized.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_Customized.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_Customized.xwt
new file mode 100644
index 0000000..b08cc92
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_Customized.xwt
@@ -0,0 +1,14 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:j="clr-namespace:org.eclipse.xwt.tests.style">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>	
+	
+	<Composite.Resources>
+		<Style x:Key="any" TargetType="j:MyUserControl">
+			<Setter Property="Background" Value="Red"/>
+		</Style>
+	</Composite.Resources>
+	<j:MyUserControl Text="Hello"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_x.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_x.java
new file mode 100644
index 0000000..865251e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_x.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.style;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class UserControl_Default_x {
+
+	/**
+	 * @param args
+	 */
+	public static void main(String[] args) {
+
+		URL url = UserControl_Default_x.class
+				.getResource(UserControl_Default_x.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_x.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_x.xwt
new file mode 100644
index 0000000..22f05d9
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_x.xwt
@@ -0,0 +1,13 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>	
+	
+	<Composite.Resources>
+		<Style x:Key="any" TargetType="{x:Type Label}">
+			<Setter Property="Background" Value="Red"/>
+		</Style>
+	</Composite.Resources>
+	<Label Text="Hello"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_x_Customized.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_x_Customized.java
new file mode 100644
index 0000000..17aa044
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_x_Customized.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.style;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class UserControl_Default_x_Customized {
+
+	/**
+	 * @param args
+	 */
+	public static void main(String[] args) {
+
+		URL url = UserControl_Default_x_Customized.class
+				.getResource(UserControl_Default_x_Customized.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_x_Customized.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_x_Customized.xwt
new file mode 100644
index 0000000..58e6977
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/UserControl_Default_x_Customized.xwt
@@ -0,0 +1,14 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:j="clr-namespace:org.eclipse.xwt.tests.style">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>	
+	
+	<Composite.Resources>
+		<Style x:Key="any" TargetType="{x:Type j:MyUserControl}">
+			<Setter Property="Background" Value="Red"/>
+		</Style>
+	</Composite.Resources>
+	<j:MyUserControl/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/HelloWorld.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/HelloWorld.java
new file mode 100644
index 0000000..102c8ae
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/HelloWorld.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.style.css;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.css.CSSStyle;
+
+public class HelloWorld {
+	public static void main(String[] args) {
+		URL url = HelloWorld.class.getResource(HelloWorld.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			URL cssURL = HelloWorld.class.getResource("style.css");
+			XWT.addDefaultStyle(new CSSStyle(cssURL));
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/HelloWorld.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/HelloWorld.xwt
new file mode 100644
index 0000000..5697177
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/HelloWorld.xwt
@@ -0,0 +1,10 @@
+ <Composite xmlns="http://www.eclipse.org/xwt/presentation">
+<!--  	<Composite.Resources>
+     <CSSStyle x:Key="style" url="/test/style.css"/>
+    </Composite.Resources> -->
+	<Composite.layout>
+		<GridLayout numColumns="2" />
+	</Composite.layout>
+	<Text text="bla bla bla   "/>
+	<Text text="bla bla bla   " />
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/MainEventHandler.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/MainEventHandler.java
new file mode 100644
index 0000000..b207745
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/MainEventHandler.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.style.css;
+
+import java.io.IOException;
+import java.io.StringReader;
+
+import org.eclipse.e4.ui.css.core.engine.CSSEngine;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.xwt.css.CSSStyle;
+import org.eclipse.xwt.css.CSSXWT;
+
+public class MainEventHandler {
+
+	/**
+	 * @param event
+	 */
+	public void updateCSSEngine(Event event) {
+		Text text = (Text) event.widget;
+		CSSEngine engine = CSSXWT.getCSSEngine(text);
+		if (engine == null) {
+			CSSStyle cssStyle = new CSSStyle();
+			cssStyle.setContent(text.getText());
+			cssStyle.applyStyle(text);
+		} else {
+			engine.reset();
+			try {
+				// Parse style sheet
+				engine.parseStyleSheet(new StringReader(text.getText()));
+
+				// Re-apply styles for the whole widgets
+				engine.applyStyles(text.getShell(), true, true);
+
+			} catch (IOException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/StyleApplyAtRuntime.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/StyleApplyAtRuntime.java
new file mode 100644
index 0000000..5a3b4cc
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/StyleApplyAtRuntime.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.style.css;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class StyleApplyAtRuntime {
+	public static void main(String[] args) {
+		URL url = StyleApplyAtRuntime.class
+				.getResource(StyleApplyAtRuntime.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/StyleApplyAtRuntime.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/StyleApplyAtRuntime.xwt
new file mode 100644
index 0000000..f82015a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/StyleApplyAtRuntime.xwt
@@ -0,0 +1,10 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+ 		   xmlns:x="http://www.eclipse.org/xwt"
+ 		   x:Class="org.eclipse.xwt.tests.style.css.MainEventHandler" >
+	<Composite.layout>
+		<GridLayout numColumns="2" />
+	</Composite.layout>
+	<Text background="COLOR_BLUE" />
+	<Text x:style="MULTI"
+		  text="Text{color:blue;background-color:red;}" ModifyEvent="updateCSSEngine" />
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/style.css b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/style.css
new file mode 100644
index 0000000..1209e02
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/css/style.css
@@ -0,0 +1,15 @@
+Text {
+   color:white;
+   background-color:#98cbbc;
+}
+
+Text:focus {
+   	color:yellow;
+	background-color:#008080;
+	font:bold;
+}
+
+Text:hover {
+   	color:black;
+	background-color:#edb5f4;
+}
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/GreenStyle.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/GreenStyle.java
new file mode 100644
index 0000000..5b195ce
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/GreenStyle.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.style.java;
+
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.xwt.IStyle;
+import org.eclipse.xwt.XWT;
+
+/**
+ * Style is handled in Java
+ * 
+ * @author yyang
+ */
+public class GreenStyle implements IStyle {
+
+	public void applyStyle(Object target) {
+		String name = XWT.getElementName(target);
+		Control control = null;
+		if (target instanceof Control) {
+			control = (Control) target;
+		} else if (target instanceof Viewer) {
+			Viewer viewer = (Viewer) target;
+			control = (Control) viewer.getControl();
+		}
+		if (control != null) {
+			control.setBackground(control.getDisplay().getSystemColor(
+					SWT.COLOR_DARK_GREEN));
+			control.setData("__MySignature", name);
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/JavaDefaultStyle.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/JavaDefaultStyle.java
new file mode 100644
index 0000000..df8ef8b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/JavaDefaultStyle.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.style.java;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class JavaDefaultStyle {
+
+	/**
+	 * Default styles are used for entire application
+	 * 
+	 * @param args
+	 */
+	public static void main(String[] args) {
+
+		URL url = JavaDefaultStyle.class.getResource("Style"
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.addDefaultStyle(new GreenStyle());
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/JavaInlineStyle.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/JavaInlineStyle.java
new file mode 100644
index 0000000..d5d56c8
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/JavaInlineStyle.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.style.java;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class JavaInlineStyle {
+
+	/**
+	 * Style is defined in XWT file.
+	 * 
+	 * @param args
+	 */
+	public static void main(String[] args) {
+
+		URL url = JavaInlineStyle.class.getResource(JavaInlineStyle.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/JavaInlineStyle.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/JavaInlineStyle.xwt
new file mode 100644
index 0000000..bbe3e8d
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/JavaInlineStyle.xwt
@@ -0,0 +1,12 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:j="clr-namespace:org.eclipse.xwt.tests.style.java">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>	
+	
+	<Composite.Resources>
+		<j:GreenStyle x:Key="myStyle"/>
+	</Composite.Resources>
+	<Label Text="Hello"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/LoadingStyle.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/LoadingStyle.java
new file mode 100644
index 0000000..7d91dd6
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/LoadingStyle.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.style.java;
+
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.IXWTLoader;
+import org.eclipse.xwt.XWT;
+
+public class LoadingStyle {
+
+	/**
+	 * Style is provided in loading. The style is applied only on this file.
+	 * 
+	 * @param args
+	 */
+	public static void main(String[] args) {
+
+		URL url = LoadingStyle.class.getResource("Style"
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			Map<String, Object> options = new HashMap<String, Object>();
+			options.put(IXWTLoader.DEFAULT_STYLES_PROPERTY, new GreenStyle());
+			XWT.open(url, options);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/RedStyle.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/RedStyle.xwt
new file mode 100644
index 0000000..2d6d7cc
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/RedStyle.xwt
@@ -0,0 +1,8 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:j="clr-namespace:org.eclipse.xwt.tests.style.java">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>	
+	<Label Text="Hello" Background="Red"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/Style.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/Style.xwt
new file mode 100644
index 0000000..d26904a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/Style.xwt
@@ -0,0 +1,8 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:j="clr-namespace:org.eclipse.xwt.tests.style.java">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>	
+	<Label Text="Hello"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/XWTOverGlobalStyle.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/XWTOverGlobalStyle.java
new file mode 100644
index 0000000..18975dd
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/style/java/XWTOverGlobalStyle.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.style.java;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class XWTOverGlobalStyle {
+
+	/**
+	 * @param args
+	 */
+	public static void main(String[] args) {
+
+		URL url = XWTOverGlobalStyle.class.getResource("RedStyle"
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.addDefaultStyle(new GreenStyle());
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/MyElement.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/MyElement.java
new file mode 100644
index 0000000..fd55eb8
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/MyElement.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.swt;
+
+import org.eclipse.swt.widgets.Composite;
+
+public class MyElement extends Composite {
+	public static final int MY_STYLE = 0xF0000000;
+	
+	protected boolean myStyle = false; 
+	
+	public MyElement(Composite parent, int style) {
+		super(parent, style);
+		
+		if ((style & MY_STYLE) == MY_STYLE) {
+			myStyle = true;
+		}
+	}
+
+	public boolean isMyStyle() {
+		return myStyle;
+	}
+
+	public void setMyStyle(boolean myStyle) {
+		this.myStyle = myStyle;
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/SWTStyleTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/SWTStyleTests.java
new file mode 100644
index 0000000..cded9e3
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/SWTStyleTests.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0 * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.swt;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+/**
+ * This class test the function about OperatorHelper
+ * 
+ * @author YaHong.Song(yahong.song@soyatec.com)
+ * 
+ */
+public class SWTStyleTests extends XWTTestCase {
+
+	/**
+	 * The extensibility of Value resolver like <class>.member
+	 * 
+	 */
+	public void testSWT_Style_Customized() throws Exception {
+		URL url = Style.class.getResource(Style_Customized.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object object = XWT.findElementByName(root, "MyElement");
+				assertTrue(object instanceof MyElement);
+				MyElement myElement = (MyElement) object;
+				assertTrue(myElement.isMyStyle());				
+			}
+		});
+	}
+
+	
+	/**
+	 * this test must be at the last test since it modifies the XWT
+	 * 
+	 * @throws Exception
+	 */
+	public void testSWT_Style_Default() throws Exception {
+		URL url = Style.class.getResource(Style.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		XWT.registerMetaclass(MyElement.class);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object object = XWT.findElementByName(root, "MyElement");
+				assertTrue(object instanceof MyElement);
+				MyElement myElement = (MyElement) object;
+				assertTrue(myElement.isMyStyle());				
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/SWTTestSuite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/SWTTestSuite.java
new file mode 100644
index 0000000..f0ea635
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/SWTTestSuite.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.swt;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class SWTTestSuite extends TestSuite {
+	public static final Test suite() {
+		return new SWTTestSuite();
+	}
+
+	public SWTTestSuite() {
+		addTest(new TestSuite(SWTStyleTests.class));
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/Style.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/Style.java
new file mode 100644
index 0000000..5d4094d
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/Style.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.swt;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Style {
+	public static void main(String[] args) {
+		XWT.registerMetaclass(MyElement.class);
+		
+		URL url = Style.class.getResource(Style.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/Style.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/Style.xwt
new file mode 100644
index 0000000..89ab94e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/Style.xwt
@@ -0,0 +1,9 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    x:Class="org.eclipse.xwt.tests.name.Name"
+    text="NameT test">
+    <Shell.layout>
+		<GridLayout numColumns="2"/>
+    </Shell.layout>
+    <MyElement Name="MyElement" x:Style="MyElement.MY_STYLE"/>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/Style_Customized.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/Style_Customized.java
new file mode 100644
index 0000000..7db426f
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/Style_Customized.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.swt;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Style_Customized {
+	public static void main(String[] args) {
+
+		URL url = Style_Customized.class.getResource(Style_Customized.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/Style_Customized.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/Style_Customized.xwt
new file mode 100644
index 0000000..7a3906a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/swt/Style_Customized.xwt
@@ -0,0 +1,10 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    x:Class="org.eclipse.xwt.tests.name.Name"
+    xmlns:j="clr-namespace:org.eclipse.xwt.tests.swt"
+    text="NameT test">
+    <Shell.layout>
+		<GridLayout numColumns="2"/>
+    </Shell.layout>
+    <j:MyElement Name="MyElement" x:Style="(j:MyElement).MY_STYLE"/>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/threading/Threading.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/threading/Threading.java
new file mode 100644
index 0000000..6fa98bb
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/threading/Threading.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.threading;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Threading {
+	public static void main(String[] args) {
+		new Thread() {
+			@Override
+			public void run() {
+				URL url = Threading.class.getResource(Threading.class
+						.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+				try {
+					XWT.open(url);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		}.start();
+
+		new Thread() {
+			@Override
+			public void run() {
+				URL url = Threading.class.getResource(Threading.class
+						.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+				try {
+					XWT.open(url);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		}.start();
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/threading/Threading.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/threading/Threading.xwt
new file mode 100644
index 0000000..39bf794
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/threading/Threading.xwt
@@ -0,0 +1,6 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation">
+	<Composite.layout>
+		<GridLayout numColumns="2" />
+	</Composite.layout>
+	<Text background="SWT.COLOR_BLUE" />
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/threading/ThreadingSuite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/threading/ThreadingSuite.java
new file mode 100644
index 0000000..8129597
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/threading/ThreadingSuite.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.threading;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class ThreadingSuite extends TestSuite {
+	public static final Test suite() {
+		return new ThreadingSuite();
+	}
+
+	public ThreadingSuite() {
+		addTest(new TestSuite(ThreadingTests.class));
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/threading/ThreadingTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/threading/ThreadingTests.java
new file mode 100644
index 0000000..e0642c3
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/threading/ThreadingTests.java
@@ -0,0 +1,190 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0 * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.threading;
+
+import java.net.URL;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+/**
+ * @author yyang(yves.yang@soyatec.com)
+ */
+public class ThreadingTests extends XWTTestCase {
+	protected boolean openStarted = false;
+	protected int shells = 0;
+	
+	/**
+	 * The extensibility of Value resolver like <class>.member
+	 * 
+	 */
+	public void testThreading_Open() throws Exception {
+		if (SWT.getPlatform().equals("gtk")) {
+			clearnUpDisplay();
+		}
+		else {
+			Display.getDefault().dispose();			
+		}
+		if (SWT.getPlatform().equals("cocoa") || SWT.getPlatform().equals("carbon")) {			
+			macDoTestThreading_Open();
+		}
+		else {
+			doTestThreading_Open();
+		}
+	}
+
+	public void macDoTestThreading_Open() throws Exception {		
+		XWT.getAllMetaclasses(); // invoke XWT initialization in the main thread. 
+		
+		URL url = ThreadingTests.class.getResource(Threading.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		
+		Thread thread1 = new Thread() {
+			@Override
+			public void run() {
+				URL url = Threading.class.getResource(Threading.class
+						.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+				try {
+					openStarted = true;
+					XWT.open(url);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		};
+
+		Thread thread2 = new Thread() {
+			@Override
+			public void run() {
+				URL url = Threading.class.getResource(Threading.class
+						.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+				try {
+					openStarted = true;
+					XWT.open(url);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		};
+
+		thread1.start();
+		thread2.start();
+		
+		long startTime = -1;
+		for (int i = 0; i< 100; i++) {
+			if (!Display.getDefault().readAndDispatch()) {
+				Display.getDefault().sleep();
+			}
+			
+			if (Display.getDefault().getShells().length == 2) {
+				break;
+			}
+			
+			Shell[] shells = Display.getDefault().getShells();
+			if (shells.length == 0) {
+				if (startTime == -1) {
+					startTime = System.currentTimeMillis();
+				}
+				else if ((System.currentTimeMillis() - startTime) > 1000) {
+					assertFalse(true);
+					break;
+				}
+			}
+			else {
+				startTime = -1;
+			}
+		}
+	}
+
+	public void doTestThreading_Open() throws Exception {
+		URL url = ThreadingTests.class.getResource(Threading.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		
+		Thread thread1 = new Thread() {
+			@Override
+			public void run() {
+				URL url = Threading.class.getResource(Threading.class
+						.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+				try {
+					openStarted = true;
+					XWT.open(url);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		};
+
+		Thread thread2 = new Thread() {
+			@Override
+			public void run() {
+				URL url = Threading.class.getResource(Threading.class
+						.getSimpleName() + IConstants.XWT_EXTENSION_SUFFIX);
+				try {
+					openStarted = true;
+					XWT.open(url);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			}
+		};
+
+		thread1.start();
+		thread2.start();
+		
+		if (SWT.getPlatform().startsWith("win")) {
+			for (int i = 0; i < 100; i++) {
+				if (Display.findDisplay(thread1) == null && Display.findDisplay(thread2) == null) {
+					Thread.sleep(500);				
+				}
+			}
+			assertTrue(Display.findDisplay(thread1) != null || Display.findDisplay(thread2) != null);
+	
+			for (int i = 0; i < 10; i++) {
+				if (Display.findDisplay(thread1) == null || Display.findDisplay(thread2) == null) {
+					Thread.sleep(500);
+				}
+			}
+			assertTrue(Display.findDisplay(thread1) != null && Display.findDisplay(thread2) != null);
+		}
+		else {
+			while (!openStarted) {
+				Thread.sleep(500);				
+			}
+			Runnable runnable = new Runnable() {
+				public void run() {
+					shells = Display.getDefault().getShells().length;
+				}
+			}; 
+			for (int i = 0; i < 100; i++) {
+				// make sure Display is already initialized by one thread.
+				Display.getDefault().syncExec(runnable);
+				if (shells == 0) {
+					Thread.sleep(500);				
+				}
+			}
+	
+			for (int i = 0; i < 100; i++) {
+				Display.getDefault().syncExec(runnable);
+				if (shells != 2) {
+					Thread.sleep(500);
+				}
+			}
+			assertTrue(shells == 2);			
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger.java
new file mode 100644
index 0000000..82552d4
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.trigger;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Button_Click_Trigger {
+
+	/**
+	 * @param args
+	 */
+	public static void main(String[] args) {
+
+		URL url = Button_Click_Trigger.class
+				.getResource(Button_Click_Trigger.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger.xwt
new file mode 100644
index 0000000..04ecb15
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger.xwt
@@ -0,0 +1,15 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<GridLayout numColumns="1"/>
+	</Composite.layout>	
+	
+  <!-- The width of this button is animated. -->
+  <Button name="Button" x:Style="SWT.CHECK" Text="Trigger">
+    <Button.Triggers>
+	   <Trigger Property="Selection" Value="True">
+		  <Setter Property="Visible" Value="False" />
+	   </Trigger>
+    </Button.Triggers>
+  </Button>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_EventProperty.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_EventProperty.java
new file mode 100644
index 0000000..027dcc3
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_EventProperty.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.trigger;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Button_Click_Trigger_EventProperty {
+
+	/**
+	 * @param args
+	 */
+	public static void main(String[] args) {
+
+		URL url = Button_Click_Trigger_EventProperty.class
+				.getResource(Button_Click_Trigger_EventProperty.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_EventProperty.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_EventProperty.xwt
new file mode 100644
index 0000000..653b617
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_EventProperty.xwt
@@ -0,0 +1,16 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<GridLayout numColumns="1"/>
+	</Composite.layout>
+
+  <!-- The width of this button is animated. -->
+  <Button name="target" x:Style="SWT.CHECK" Text="Target"/>
+  <Button name="source" x:Style="CHECK" Text="Trigger">
+    <Button.Triggers>
+	   <Trigger Property="isSelectionEvent" Value="True">
+		  <Setter Property="text" Value="OK" targetName="target" />
+	   </Trigger>
+    </Button.Triggers>
+  </Button>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_Setter_TargetName.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_Setter_TargetName.java
new file mode 100644
index 0000000..519d09b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_Setter_TargetName.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.trigger;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Button_Click_Trigger_Setter_TargetName {
+
+	/**
+	 * @param args
+	 */
+	public static void main(String[] args) {
+
+		URL url = Button_Click_Trigger_Setter_TargetName.class
+				.getResource(Button_Click_Trigger_Setter_TargetName.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_Setter_TargetName.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_Setter_TargetName.xwt
new file mode 100644
index 0000000..d4b7a7c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_Setter_TargetName.xwt
@@ -0,0 +1,17 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<GridLayout numColumns="1"/>
+	</Composite.layout>	
+	
+  <!-- The width of this button is animated. -->
+  <Button name="target" Text="Target">
+  </Button>
+  <Button name="Button" x:Style="SWT.CHECK" Text="Trigger">
+    <Button.Triggers>
+	   <Trigger Property="Selection" Value="True">
+		  <Setter Property="Visible" Value="False" TargetName="target" />
+	   </Trigger>
+    </Button.Triggers>
+  </Button>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_SourceName.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_SourceName.java
new file mode 100644
index 0000000..fbe082c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_SourceName.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.trigger;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Button_Click_Trigger_SourceName {
+
+	/**
+	 * @param args
+	 */
+	public static void main(String[] args) {
+
+		URL url = Button_Click_Trigger_SourceName.class
+				.getResource(Button_Click_Trigger_SourceName.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_SourceName.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_SourceName.xwt
new file mode 100644
index 0000000..9b9315e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_SourceName.xwt
@@ -0,0 +1,17 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<GridLayout numColumns="1"/>
+	</Composite.layout>	
+	
+  <!-- The width of this button is animated. -->
+  <Button name="target" Text="Target">
+  </Button>
+  <Button name="Button" x:Style="SWT.CHECK" Text="Target">
+  </Button>
+  <Composite.Triggers>
+     <Trigger Property="Selection" Value="True" sourceName="Button">
+	    <Setter Property="Visible" Value="False" />
+     </Trigger>
+  </Composite.Triggers>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_SourceName_Setter_TargetName.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_SourceName_Setter_TargetName.java
new file mode 100644
index 0000000..fc3adf8
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_SourceName_Setter_TargetName.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.trigger;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Button_Click_Trigger_SourceName_Setter_TargetName {
+
+	/**
+	 * @param args
+	 */
+	public static void main(String[] args) {
+
+		URL url = Button_Click_Trigger_SourceName_Setter_TargetName.class
+				.getResource(Button_Click_Trigger_SourceName_Setter_TargetName.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_SourceName_Setter_TargetName.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_SourceName_Setter_TargetName.xwt
new file mode 100644
index 0000000..d37c4a1
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/Button_Click_Trigger_SourceName_Setter_TargetName.xwt
@@ -0,0 +1,17 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<GridLayout numColumns="1"/>
+	</Composite.layout>	
+	
+  <!-- The width of this button is animated. -->
+  <Button name="target" Text="Target">
+  </Button>
+  <Button x:Style="SWT.CHECK" name="source" Text="Target">
+  </Button>
+  <Composite.Triggers>
+     <Trigger Property="Selection" Value="True" sourceName="source">
+	    <Setter Property="Visible" Value="False" targetName = "target"/>
+     </Trigger>
+  </Composite.Triggers>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/OperatorHelperTest.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/OperatorHelperTest.java
new file mode 100644
index 0000000..9548eb1
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/OperatorHelperTest.java
@@ -0,0 +1,943 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0 * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.trigger;
+
+import java.math.BigDecimal;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import org.eclipse.xwt.core.Operator;
+
+/**
+ * This class test the function about Operator
+ * 
+ * @author YaHong.Song(yahong.song@soyatec.com)
+ * 
+ */
+public class OperatorHelperTest extends TestCase {
+
+	/**
+	 * The testcase for EQ test
+	 * 
+	 * @throws Exception
+	 */
+	public void testEQ() throws Exception {
+		// -------- For boolean type EQ test --------
+		// not equal
+		assertEquals(Operator.compare(true, Operator.EQ, false), false);
+		assertEquals(Operator.compare(true, Operator.EQ, Boolean.FALSE), false);
+		assertEquals(Operator.compare(Boolean.TRUE, Operator.EQ, false), false);
+		assertEquals(
+				Operator.compare(Boolean.TRUE, Operator.EQ, Boolean.FALSE),
+				false);
+
+		// equal
+		assertEquals(Operator.compare(Boolean.TRUE, Operator.EQ, Boolean.TRUE),
+				true);
+		assertEquals(Operator
+				.compare(Boolean.FALSE, Operator.EQ, Boolean.FALSE), true);
+
+		// -------- For integer type EQ test --------
+		Integer firstInt = new Integer(5);
+		Integer secondInt = new Integer(5);
+		Integer thirdInt = new Integer(6);
+		Integer copyFirstInt = firstInt;
+		// not equal
+		assertEquals(Operator.compare(firstInt, Operator.EQ, thirdInt), false);
+		// equal
+		assertEquals(Operator.compare(firstInt, Operator.EQ, copyFirstInt),
+				true);
+		assertEquals(Operator.compare(firstInt, Operator.EQ, secondInt), true);
+
+		// -------- For String type EQ test --------
+		String firstStr = new String("hello world");
+		String secondStr = new String("hello world");
+		String thirdStr = new String("Hello World");
+		String copyFirstStr = firstStr;
+		// not equal
+		assertEquals(Operator.compare(firstStr, Operator.EQ, thirdStr), false);
+		// equal
+		assertEquals(Operator.compare(firstStr, Operator.EQ, copyFirstStr),
+				true);
+		assertEquals(Operator.compare(firstStr, Operator.EQ, secondStr), true);
+
+		// -------- For Short type EQ test --------
+		Short firstShort = new Short((short) 5);
+		Short secondShort = new Short((short) 5);
+		Short thirdShort = new Short((short) 6);
+		Short copyFirstShort = firstShort;
+		// not equal
+		assertEquals(Operator.compare(firstShort, Operator.EQ, thirdShort),
+				false);
+		// equal
+		assertEquals(Operator.compare(firstShort, Operator.EQ, copyFirstShort),
+				true);
+		assertEquals(Operator.compare(firstShort, Operator.EQ, secondShort),
+				true);
+
+		// -------- For Character type EQ test --------
+		Character firstCharacter = new Character((char) 5);
+		Character secondCharacter = new Character((char) 5);
+		Character thirdCharacter = new Character((char) 6);
+		Character copyFirstCharacter = firstCharacter;
+		// not equal
+		assertEquals(Operator.compare(firstCharacter, Operator.EQ,
+				thirdCharacter), false);
+		// equal
+		assertEquals(Operator.compare(firstCharacter, Operator.EQ,
+				copyFirstCharacter), true);
+		assertEquals(Operator.compare(firstCharacter, Operator.EQ,
+				secondCharacter), true);
+
+		// -------- For Long type EQ test --------
+		Long firstLong = new Long(5);
+		Long secondLong = new Long(5);
+		Long thirdLong = new Long(6);
+		Long copyFirstLong = firstLong;
+		// not equal
+		assertEquals(Operator.compare(firstLong, Operator.EQ, thirdLong), false);
+		// equal
+		assertEquals(Operator.compare(firstLong, Operator.EQ, secondLong), true);
+		assertEquals(Operator.compare(firstLong, Operator.EQ, copyFirstLong),
+				true);
+
+		// -------- For Byte type EQ test --------
+		Byte firstByte = new Byte("5");
+		Byte secondByte = new Byte("5");
+		Byte thirdByte = new Byte("6");
+		Byte copyFirstByte = firstByte;
+		// not equal
+		assertEquals(Operator.compare(firstByte, Operator.EQ, thirdByte), false);
+
+		// equal
+		assertEquals(Operator.compare(firstByte, Operator.EQ, copyFirstByte),
+				true);
+		assertEquals(Operator.compare(firstByte, Operator.EQ, secondByte), true);
+
+		// -------- For Float type EQ test --------
+		Float firstFloat = new Float(5);
+		Float secondFloat = new Float(5);
+		Float thirdFloat = new Float(6);
+		Float copyFirstFloat = firstFloat;
+		// not equal
+		assertEquals(Operator.compare(firstFloat, Operator.EQ, thirdFloat),
+				false);
+		// equal
+		assertEquals(Operator.compare(firstFloat, Operator.EQ, copyFirstFloat),
+				true);
+		assertEquals(Operator.compare(firstFloat, Operator.EQ, secondFloat),
+				true);
+
+		// -------- For Double type EQ test --------
+		Double firstDouble = new Double(5);
+		Double secondDouble = new Double(5);
+		Double thirdDouble = new Double(6);
+		Double copyFirstDouble = firstDouble;
+		// not equal
+		assertEquals(Operator.compare(firstDouble, Operator.EQ, thirdDouble),
+				false);
+		// equal
+		assertEquals(Operator
+				.compare(firstDouble, Operator.EQ, copyFirstDouble), true);
+		assertEquals(Operator.compare(firstDouble, Operator.EQ, secondDouble),
+				true);
+
+		// -------- For BigDecimal type EQ test --------
+		BigDecimal firstBigDecimal = new BigDecimal(5);
+		BigDecimal secondBigDecimal = new BigDecimal(5);
+		BigDecimal thirdBigDecimal = new BigDecimal(6);
+		BigDecimal copyFirstBigDecimal = firstBigDecimal;
+		// not equal
+		assertEquals(Operator.compare(firstBigDecimal, Operator.EQ,
+				thirdBigDecimal), false);
+		// equal
+		assertEquals(Operator.compare(firstBigDecimal, Operator.EQ,
+				copyFirstBigDecimal), true);
+		assertEquals(Operator.compare(firstBigDecimal, Operator.EQ,
+				secondBigDecimal), true);
+
+		// test for null and object EQ
+		String anObject = new String("hello");
+		Object nullObject = null;
+		// equal
+		assertEquals(Operator.compare(anObject, Operator.EQ, nullObject), false);
+		// not equal
+		assertEquals(Operator.compare(nullObject, Operator.EQ, nullObject),
+				true);
+
+	}
+
+	/**
+	 * The testcase for NE test
+	 * 
+	 * @throws Exception
+	 */
+	public void testNE() throws Exception {
+		// -------- For integer type NE test --------
+		Integer firstInt = new Integer(5);
+		Integer secondInt = new Integer(5);
+		Integer thirdInt = new Integer(6);
+		Integer copyFirstInt = firstInt;
+		// not equal
+		assertEquals(Operator.compare(firstInt, Operator.NE, thirdInt), true);
+		// equal
+		assertEquals(Operator.compare(firstInt, Operator.NE, copyFirstInt),
+				false);
+		assertEquals(Operator.compare(firstInt, Operator.NE, secondInt), false);
+
+		// -------- For String type NE test --------
+		String firstStr = new String("hello world");
+		String secondStr = new String("hello world");
+		String thirdStr = new String("Hello World");
+		String copyFirstStr = firstStr;
+		// not equal
+		assertEquals(Operator.compare(firstStr, Operator.NE, thirdStr), true);
+		// equal
+		assertEquals(Operator.compare(firstStr, Operator.NE, copyFirstStr),
+				false);
+		assertEquals(Operator.compare(firstStr, Operator.NE, secondStr), false);
+
+		// -------- For Short type NE test --------
+		Short firstShort = new Short((short) 5);
+		Short secondShort = new Short((short) 5);
+		Short thirdShort = new Short((short) 6);
+		Short copyFirstShort = firstShort;
+		// not equal
+		assertEquals(Operator.compare(firstShort, Operator.NE, thirdShort),
+				true);
+		// equal
+		assertEquals(Operator.compare(firstShort, Operator.NE, copyFirstShort),
+				false);
+		assertEquals(Operator.compare(firstShort, Operator.NE, secondShort),
+				false);
+
+		// -------- For Character type NE test --------
+		Character firstCharacter = new Character((char) 5);
+		Character secondCharacter = new Character((char) 5);
+		Character thirdCharacter = new Character((char) 6);
+		Character copyFirstCharacter = firstCharacter;
+		// not equal
+		assertEquals(Operator.compare(firstCharacter, Operator.NE,
+				thirdCharacter), true);
+		// equal
+		assertEquals(Operator.compare(firstCharacter, Operator.NE,
+				copyFirstCharacter), false);
+		assertEquals(Operator.compare(firstCharacter, Operator.NE,
+				secondCharacter), false);
+
+		// -------- For Long type NE test --------
+		Long firstLong = new Long(5);
+		Long secondLong = new Long(5);
+		Long thirdLong = new Long(6);
+		Long copyFirstLong = firstLong;
+		// equal
+		assertEquals(Operator.compare(firstLong, Operator.NE, thirdLong), true);
+		// not equal
+		assertEquals(Operator.compare(firstLong, Operator.NE, secondLong),
+				false);
+		assertEquals(Operator.compare(firstLong, Operator.NE, copyFirstLong),
+				false);
+
+		// -------- For Byte type NE test --------
+		Byte firstByte = new Byte("5");
+		Byte secondByte = new Byte("5");
+		Byte thirdByte = new Byte("6");
+		Byte copyFirstByte = firstByte;
+		// equal
+		assertEquals(Operator.compare(firstByte, Operator.NE, thirdByte), true);
+		// not equal
+		assertEquals(Operator.compare(firstByte, Operator.NE, secondByte),
+				false);
+		assertEquals(Operator.compare(firstByte, Operator.NE, copyFirstByte),
+				false);
+
+		// -------- For Float type NE test --------
+		Float firstFloat = new Float(5);
+		Float secondFloat = new Float(5);
+		Float thirdFloat = new Float(6);
+		Float copyFirstFloat = firstFloat;
+		// equal
+		assertEquals(Operator.compare(firstFloat, Operator.NE, thirdFloat),
+				true);
+		// not equal
+		assertEquals(Operator.compare(firstFloat, Operator.NE, secondFloat),
+				false);
+		assertEquals(Operator.compare(firstFloat, Operator.NE, copyFirstFloat),
+				false);
+
+		// -------- For Double type NE test --------
+		Double firstDouble = new Double(5);
+		Double secondDouble = new Double(5);
+		Double thirdDouble = new Double(6);
+		Double copyFirstDouble = firstDouble;
+		// equal
+		assertEquals(Operator.compare(firstDouble, Operator.NE, thirdDouble),
+				true);
+		// not equal
+		assertEquals(Operator.compare(firstDouble, Operator.NE, secondDouble),
+				false);
+		assertEquals(Operator
+				.compare(firstDouble, Operator.NE, copyFirstDouble), false);
+
+		// -------- For BigDecimal type NE test --------
+		BigDecimal firstBigDecimal = new BigDecimal(5);
+		BigDecimal secondBigDecimal = new BigDecimal(5);
+		BigDecimal thirdBigDecimal = new BigDecimal(6);
+		BigDecimal copyFirstBigDecimal = firstBigDecimal;
+		// equal
+		assertEquals(Operator.compare(firstBigDecimal, Operator.NE,
+				thirdBigDecimal), true);
+		// not equal
+		assertEquals(Operator.compare(firstBigDecimal, Operator.NE,
+				secondBigDecimal), false);
+		assertEquals(Operator.compare(firstBigDecimal, Operator.NE,
+				copyFirstBigDecimal), false);
+
+		// test for null and object NE
+		String anObject = new String("hello");
+		Object nullObject = null;
+		// equal
+		assertEquals(Operator.compare(anObject, Operator.NE, nullObject), true);
+		// not equal
+		assertEquals(Operator.compare(nullObject, Operator.NE, nullObject),
+				false);
+	}
+
+	/**
+	 * The testcase for GE test
+	 * 
+	 * @throws Exception
+	 */
+	public void testGE() throws Exception {
+		// -------- For integer type GE test --------
+		Integer firstInt = new Integer(5);
+		Integer secondInt = new Integer(8);
+		// equal
+		assertEquals(Operator.compare(firstInt, Operator.GE, firstInt), true);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstInt, Operator.GE, secondInt), false);
+		// first is larger than second
+		assertEquals(Operator.compare(secondInt, Operator.GE, firstInt), true);
+
+		// -------- For Short type GE test --------
+		Short firstShort = new Short((short) 5);
+		Short secondShort = new Short((short) 8);
+		// equal
+		assertEquals(Operator.compare(firstShort, Operator.GE, firstShort),
+				true);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstShort, Operator.GE, secondShort),
+				false);
+		// first is larger than second
+		assertEquals(Operator.compare(secondShort, Operator.GE, firstShort),
+				true);
+
+		// -------- For Character type GE test --------
+		Character firstCharacter = new Character('5');
+		Character secondCharacter = new Character('8');
+		// equal
+		assertEquals(Operator.compare(firstCharacter, Operator.GE,
+				firstCharacter), true);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstCharacter, Operator.GE,
+				secondCharacter), false);
+		// first is larger than second
+		assertEquals(Operator.compare(secondCharacter, Operator.GE,
+				firstCharacter), true);
+
+		// -------- For Long type GE test --------
+		Long firstLong = new Long(5);
+		Long secondLong = new Long(8);
+		// equal
+		assertEquals(Operator.compare(firstLong, Operator.GE, firstLong), true);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstLong, Operator.GE, secondLong),
+				false);
+		// first is larger than second
+		assertEquals(Operator.compare(secondLong, Operator.GE, firstLong), true);
+
+		// -------- For Byte type GE test --------
+		Byte firstByte = new Byte("5");
+		Byte secondByte = new Byte("8");
+		// equal
+		assertEquals(Operator.compare(firstByte, Operator.GE, firstByte), true);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstByte, Operator.GE, secondByte),
+				false);
+		// first is larger than second
+		assertEquals(Operator.compare(secondByte, Operator.GE, firstByte), true);
+
+		// -------- For Float type GE test --------
+		Float firstFloat = new Float(5);
+		Float secondFloat = new Float(8);
+		// equal
+		assertEquals(Operator.compare(firstFloat, Operator.GE, firstFloat),
+				true);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstFloat, Operator.GE, secondFloat),
+				false);
+		// first is larger than second
+		assertEquals(Operator.compare(secondFloat, Operator.GE, firstFloat),
+				true);
+
+		// -------- For Double type GE test --------
+		Double firstDouble = new Double(5);
+		Double secondDouble = new Double(8);
+		// equal
+		assertEquals(Operator.compare(firstDouble, Operator.GE, firstDouble),
+				true);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstDouble, Operator.GE, secondDouble),
+				false);
+		// first is larger than second
+		assertEquals(Operator.compare(secondDouble, Operator.GE, firstDouble),
+				true);
+
+		// -------- For BigDecimal type GE test --------
+		BigDecimal firstBigDecimal = new BigDecimal(5);
+		BigDecimal secondBigDecimal = new BigDecimal(8);
+		// equal
+		assertEquals(Operator.compare(firstBigDecimal, Operator.GE,
+				firstBigDecimal), true);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstBigDecimal, Operator.GE,
+				secondBigDecimal), false);
+		// first is larger than second
+		assertEquals(Operator.compare(secondBigDecimal, Operator.GE,
+				firstBigDecimal), true);
+
+		// -------- For different type GE test --------
+		Double doubleOperant = new Double(4);
+		Integer intOperant = new Integer(5);
+		Short shortOperant = new Short((short) 5);
+		Character characterOperant = new Character('8');
+		BigDecimal bigDecimalOperant = new BigDecimal(8);
+		Byte byteOperant = new Byte("5");
+		Long longOperant = new Long(8);
+		Float floatOperant = new Float(4);
+		// equal
+		assertEquals(Operator.compare(intOperant, Operator.GE, shortOperant),
+				true);
+		// first is smaller than second
+		assertEquals(Operator.compare(shortOperant, Operator.GE,
+				characterOperant), false);
+		// first is smaller than second
+		assertEquals(Operator.compare(intOperant, Operator.GE,
+				bigDecimalOperant), false);
+		// first is smaller than second
+		assertEquals(Operator.compare(shortOperant, Operator.GE,
+				bigDecimalOperant), false);
+		// first is larger than second
+		assertEquals(Operator.compare(bigDecimalOperant, Operator.GE,
+				byteOperant), true);
+		// first is smaller than second
+		assertEquals(Operator.compare(byteOperant, Operator.GE, longOperant),
+				false);
+		// first is larger than second
+		assertEquals(Operator.compare(longOperant, Operator.GE, floatOperant),
+				true);
+		// first is larger than second
+		assertEquals(Operator.compare(byteOperant, Operator.GE, doubleOperant),
+				true);
+
+	}
+
+	/**
+	 * The testcase for GT test
+	 * 
+	 * @throws Exception
+	 */
+	public void testGT() throws Exception {
+		// -------- For integer type GT test --------
+		Integer firstInt = new Integer(5);
+		Integer secondInt = new Integer(8);
+		// equal
+		assertEquals(Operator.compare(firstInt, Operator.GT, firstInt), false);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstInt, Operator.GT, secondInt), false);
+		// first is larger than second
+		assertEquals(Operator.compare(secondInt, Operator.GT, firstInt), true);
+
+		// -------- For Short type GT test --------
+		Short firstShort = new Short((short) 5);
+		Short secondShort = new Short((short) 8);
+		// equal
+		assertEquals(Operator.compare(firstShort, Operator.GT, firstShort),
+				false);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstShort, Operator.GT, secondShort),
+				false);
+		// first is larger than second
+		assertEquals(Operator.compare(secondShort, Operator.GT, firstShort),
+				true);
+
+		// -------- For Character type GT test --------
+		Character firstCharacter = new Character('5');
+		Character secondCharacter = new Character('8');
+		// equal
+		assertEquals(Operator.compare(firstCharacter, Operator.GT,
+				firstCharacter), false);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstCharacter, Operator.GT,
+				secondCharacter), false);
+		// first is larger than second
+		assertEquals(Operator.compare(secondCharacter, Operator.GT,
+				firstCharacter), true);
+
+		// -------- For Long type GT test --------
+		Long firstLong = new Long(5);
+		Long secondLong = new Long(8);
+		// equal
+		assertEquals(Operator.compare(firstLong, Operator.GT, firstLong), false);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstLong, Operator.GT, secondLong),
+				false);
+		// first is larger than second
+		assertEquals(Operator.compare(secondLong, Operator.GT, firstLong), true);
+
+		// -------- For Byte type GT test --------
+		Byte firstByte = new Byte("5");
+		Byte secondByte = new Byte("8");
+		// equal
+		assertEquals(Operator.compare(firstByte, Operator.GT, firstByte), false);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstByte, Operator.GT, secondByte),
+				false);
+		// first is larger than second
+		assertEquals(Operator.compare(secondByte, Operator.GT, firstByte), true);
+
+		// -------- For Float type GT test --------
+		Float firstFloat = new Float(5);
+		Float secondFloat = new Float(8);
+		// equal
+		assertEquals(Operator.compare(firstFloat, Operator.GT, firstFloat),
+				false);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstFloat, Operator.GT, secondFloat),
+				false);
+		// first is larger than second
+		assertEquals(Operator.compare(secondFloat, Operator.GT, firstFloat),
+				true);
+
+		// -------- For Double type GT test --------
+		Double firstDouble = new Double(5);
+		Double secondDouble = new Double(8);
+		// equal
+		assertEquals(Operator.compare(firstDouble, Operator.GT, firstDouble),
+				false);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstDouble, Operator.GT, secondDouble),
+				false);
+		// first is larger than second
+		assertEquals(Operator.compare(secondDouble, Operator.GT, firstDouble),
+				true);
+
+		// -------- For BigDecimal type GT test --------
+		BigDecimal firstBigDecimal = new BigDecimal(5);
+		BigDecimal secondBigDecimal = new BigDecimal(8);
+		// equal
+		assertEquals(Operator.compare(firstBigDecimal, Operator.GT,
+				firstBigDecimal), false);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstBigDecimal, Operator.GT,
+				secondBigDecimal), false);
+		// first is larger than second
+		assertEquals(Operator.compare(secondBigDecimal, Operator.GT,
+				firstBigDecimal), true);
+
+		// -------- For different type GT test --------
+		Double doubleOperant = new Double(4);
+		Integer intOperant = new Integer(5);
+		Short shortOperant = new Short((short) 5);
+		Character characterOperant = new Character('8');
+		BigDecimal bigDecimalOperant = new BigDecimal(8);
+		Byte byteOperant = new Byte("5");
+		Long longOperant = new Long(8);
+		Float floatOperant = new Float(4);
+		// equal
+		assertEquals(Operator.compare(intOperant, Operator.GT, shortOperant),
+				false);
+		// first is smaller than second
+		assertEquals(Operator.compare(shortOperant, Operator.GT,
+				characterOperant), false);
+		// first is smaller than second
+		assertEquals(Operator.compare(intOperant, Operator.GT,
+				bigDecimalOperant), false);
+		// first is smaller than second
+		assertEquals(Operator.compare(shortOperant, Operator.GT,
+				bigDecimalOperant), false);
+		// first is larger than second
+		assertEquals(Operator.compare(bigDecimalOperant, Operator.GT,
+				byteOperant), true);
+		// first is smaller than second
+		assertEquals(Operator.compare(byteOperant, Operator.GT, longOperant),
+				false);
+		// first is larger than second
+		assertEquals(Operator.compare(longOperant, Operator.GT, floatOperant),
+				true);
+		// first is larger than second
+		assertEquals(Operator.compare(byteOperant, Operator.GT, doubleOperant),
+				true);
+	}
+
+	/**
+	 * The testcase for LE test
+	 * 
+	 * @throws Exception
+	 */
+	public void testLE() throws Exception {
+		// -------- For integer type LE test --------
+		Integer firstInt = new Integer(5);
+		Integer secondInt = new Integer(8);
+		// equal
+		assertEquals(Operator.compare(firstInt, Operator.LE, firstInt), true);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstInt, Operator.LE, secondInt), true);
+		// first is larger than second
+		assertEquals(Operator.compare(secondInt, Operator.LE, firstInt), false);
+
+		// -------- For Short type LE test --------
+		Short firstShort = new Short((short) 5);
+		Short secondShort = new Short((short) 8);
+		// equal
+		assertEquals(Operator.compare(firstShort, Operator.LE, firstShort),
+				true);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstShort, Operator.LE, secondShort),
+				true);
+		// first is larger than second
+		assertEquals(Operator.compare(secondShort, Operator.LE, firstShort),
+				false);
+
+		// -------- For Character type LE test --------
+		Character firstCharacter = new Character('5');
+		Character secondCharacter = new Character('8');
+		// equal
+		assertEquals(Operator.compare(firstCharacter, Operator.LE,
+				firstCharacter), true);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstCharacter, Operator.LE,
+				secondCharacter), true);
+		// first is larger than second
+		assertEquals(Operator.compare(secondCharacter, Operator.LE,
+				firstCharacter), false);
+
+		// -------- For Long type LE test --------
+		Long firstLong = new Long(5);
+		Long secondLong = new Long(8);
+		// equal
+		assertEquals(Operator.compare(firstLong, Operator.LE, firstLong), true);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstLong, Operator.LE, secondLong), true);
+		// first is larger than second
+		assertEquals(Operator.compare(secondLong, Operator.LE, firstLong),
+				false);
+
+		// -------- For Double type LE test --------
+		Double firstDouble = new Double(5);
+		Double secondDouble = new Double(8);
+		// equal
+		assertEquals(Operator.compare(firstDouble, Operator.LE, firstDouble),
+				true);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstDouble, Operator.LE, secondDouble),
+				true);
+		// first is larger than second
+		assertEquals(Operator.compare(secondDouble, Operator.LE, firstDouble),
+				false);
+
+		// -------- For Byte type LE test --------
+		Byte firstByte = new Byte("5");
+		Byte secondByte = new Byte("8");
+		// equal
+		assertEquals(Operator.compare(firstByte, Operator.LE, firstByte), true);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstByte, Operator.LE, secondByte), true);
+		// first is larger than second
+		assertEquals(Operator.compare(secondByte, Operator.LE, firstByte),
+				false);
+
+		// -------- For Float type LE test --------
+		Float firstFloat = new Float(5);
+		Float secondFloat = new Float(8);
+		// equal
+		assertEquals(Operator.compare(firstFloat, Operator.LE, firstFloat),
+				true);
+		// first is smaller than second
+		assertEquals(Operator.compare(secondFloat, Operator.LE, secondFloat),
+				true);
+		// first is larger than second
+		assertEquals(Operator.compare(secondFloat, Operator.LE, firstFloat),
+				false);
+
+		// -------- For BigDecimal type LE test --------
+		BigDecimal firstBigDecimal = new BigDecimal(5);
+		BigDecimal secondBigDecimal = new BigDecimal(8);
+		// equal
+		assertEquals(Operator.compare(firstBigDecimal, Operator.LE,
+				firstBigDecimal), true);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstBigDecimal, Operator.LE,
+				secondBigDecimal), true);
+		// first is larger than second
+		assertEquals(Operator.compare(secondBigDecimal, Operator.LE,
+				firstBigDecimal), false);
+
+		// -------- For different type LT test --------
+		Integer intOperant = new Integer(5);
+		Short shortOperant = new Short((short) 5);
+		Character characterOperant = new Character('8');
+		BigDecimal bigDecimalOperant = new BigDecimal(8);
+		Byte byteOperant = new Byte("5");
+		Long longOperant = new Long(8);
+		Float floatOperant = new Float(4);
+		Double doubleOperant = new Double(4);
+		// equal
+		assertEquals(Operator.compare(intOperant, Operator.LE, shortOperant),
+				true);
+		// first is smaller than second
+		assertEquals(Operator.compare(shortOperant, Operator.LE,
+				characterOperant), true);
+		// first is smaller than second
+		assertEquals(Operator.compare(intOperant, Operator.LE,
+				bigDecimalOperant), true);
+		// first is smaller than second
+		assertEquals(Operator.compare(shortOperant, Operator.LE,
+				bigDecimalOperant), true);
+		// first is larger than second
+		assertEquals(Operator.compare(bigDecimalOperant, Operator.LE,
+				byteOperant), false);
+		// first is smaller than second
+		assertEquals(Operator.compare(byteOperant, Operator.LE, longOperant),
+				true);
+		// first is larger than second
+		assertEquals(Operator.compare(longOperant, Operator.LE, floatOperant),
+				false);
+		// first is larger than second
+		assertEquals(Operator.compare(byteOperant, Operator.LE, doubleOperant),
+				false);
+	}
+
+	/**
+	 * The testcase for LT test
+	 * 
+	 * @throws Exception
+	 */
+	public void testLT() throws Exception {
+		// -------- For integer type LT test --------
+		Integer firstInt = new Integer(5);
+		Integer secondInt = new Integer(8);
+		// equal
+		assertEquals(Operator.compare(firstInt, Operator.LT, firstInt), false);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstInt, Operator.LT, secondInt), true);
+		// first is larger than second
+		assertEquals(Operator.compare(secondInt, Operator.LT, firstInt), false);
+
+		// -------- For Short type LT test --------
+		Short firstShort = new Short((short) 5);
+		Short secondShort = new Short((short) 8);
+		// equal
+		assertEquals(Operator.compare(firstShort, Operator.LT, firstShort),
+				false);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstShort, Operator.LT, secondShort),
+				true);
+		// first is larger than second
+		assertEquals(Operator.compare(secondShort, Operator.LT, firstShort),
+				false);
+
+		// -------- For Character type LT test --------
+		Character firstCharacter = new Character('5');
+		Character secondCharacter = new Character('8');
+		// equal
+		assertEquals(Operator.compare(firstCharacter, Operator.LT,
+				firstCharacter), false);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstCharacter, Operator.LT,
+				secondCharacter), true);
+		// first is larger than second
+		assertEquals(Operator.compare(secondCharacter, Operator.LT,
+				firstCharacter), false);
+
+		// -------- For Long type LT test --------
+		Long firstLong = new Long(5);
+		Long secondLong = new Long(8);
+		// equal
+		assertEquals(Operator.compare(firstLong, Operator.LT, firstLong), false);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstLong, Operator.LT, secondLong), true);
+		// first is larger than second
+		assertEquals(Operator.compare(secondLong, Operator.LT, firstLong),
+				false);
+
+		// -------- For Byte type LT test --------
+		Byte firstByte = new Byte("5");
+		Byte secondByte = new Byte("8");
+		// equal
+		assertEquals(Operator.compare(firstByte, Operator.LT, firstByte), false);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstByte, Operator.LT, secondByte), true);
+		// first is larger than second
+		assertEquals(Operator.compare(secondByte, Operator.LT, firstByte),
+				false);
+
+		// -------- For Float type LT test --------
+		Float firstFloat = new Float(5);
+		Float secondFloat = new Float(8);
+		// equal
+		assertEquals(Operator.compare(firstFloat, Operator.LT, firstFloat),
+				false);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstFloat, Operator.LT, secondFloat),
+				true);
+		// first is larger than second
+		assertEquals(Operator.compare(secondFloat, Operator.LT, firstFloat),
+				false);
+
+		// -------- For Double type LT test --------
+		Double firstDouble = new Double(5);
+		Double secondDouble = new Double(8);
+		// equal
+		assertEquals(Operator.compare(firstDouble, Operator.LT, firstDouble),
+				false);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstDouble, Operator.LT, secondDouble),
+				true);
+		// first is larger than second
+		assertEquals(Operator.compare(secondDouble, Operator.LT, firstDouble),
+				false);
+
+		// -------- For BigDecimal type LT test --------
+		BigDecimal firstBigDecimal = new BigDecimal(5);
+		BigDecimal secondBigDecimal = new BigDecimal(8);
+		// equal
+		assertEquals(Operator.compare(firstBigDecimal, Operator.LT,
+				firstBigDecimal), false);
+		// first is smaller than second
+		assertEquals(Operator.compare(firstBigDecimal, Operator.LT,
+				secondBigDecimal), true);
+		// first is larger than second
+		assertEquals(Operator.compare(secondBigDecimal, Operator.LT,
+				firstBigDecimal), false);
+
+		// -------- For different type LT test --------
+		Integer intOperant = new Integer(5);
+		Short shortOperant = new Short((short) 5);
+		Character characterOperant = new Character('8');
+		BigDecimal bigDecimalOperant = new BigDecimal(8);
+		Byte byteOperant = new Byte("5");
+		Long longOperant = new Long(8);
+		Float floatOperant = new Float(4);
+		Double doubleOperant = new Double(4);
+		// equal
+		assertEquals(Operator.compare(intOperant, Operator.LT, shortOperant),
+				false);
+		// first is smaller than second
+		assertEquals(Operator.compare(shortOperant, Operator.LT,
+				characterOperant), true);
+		// first is smaller than second
+		assertEquals(Operator.compare(intOperant, Operator.LT,
+				bigDecimalOperant), true);
+		// first is smaller than second
+		assertEquals(Operator.compare(shortOperant, Operator.LT,
+				bigDecimalOperant), true);
+		// first is larger than second
+		assertEquals(Operator.compare(bigDecimalOperant, Operator.LT,
+				byteOperant), false);
+		// first is smaller than second
+		assertEquals(Operator.compare(byteOperant, Operator.LT, longOperant),
+				true);
+		// first is larger than second
+		assertEquals(Operator.compare(longOperant, Operator.LT, floatOperant),
+				false);
+		// first is larger than second
+		assertEquals(Operator.compare(byteOperant, Operator.LT, doubleOperant),
+				false);
+	}
+
+	/**
+	 * The testcase for LIKE test
+	 * 
+	 * @throws Exception
+	 */
+	public void testLIKE() throws Exception {
+		// -------- For LIKE test --------
+		String firstQueryString = "hello world";
+		String secondQueryString = "wo?ld";
+		String thirdQueryString = "hell*";
+		String fourthQueryString = "*wor*";
+		String fifthQueryString = "*ll? wo?ld";
+		String sixthQueryString = "soyatec";
+		// full string
+		String fullString = "hello world from eclipse";
+
+		// the String does not include "?" and "*"
+		Assert.assertEquals(Operator.compare(firstQueryString, Operator.LIKE,
+				fullString), true);
+
+		// the String includes "?"
+		Assert.assertEquals(Operator.compare(secondQueryString, Operator.LIKE,
+				fullString), true);
+
+		// the String includes "*"
+		Assert.assertEquals(Operator.compare(thirdQueryString, Operator.LIKE,
+				fullString), true);
+
+		// the String includes "*"
+		Assert.assertEquals(Operator.compare(fourthQueryString, Operator.LIKE,
+				fullString), true);
+
+		// the String includes "*" and "?"
+		Assert.assertEquals(Operator.compare(fifthQueryString, Operator.LIKE,
+				fullString), true);
+
+		// the String is not be included to another string
+		Assert.assertEquals(Operator.compare(sixthQueryString, Operator.LIKE,
+				fullString), false);
+	}
+
+	/**
+	 * The testcase for ISA test
+	 * 
+	 * @throws Exception
+	 */
+	public void testISA() throws Exception {
+		// -------- For ISA test --------
+		String string = "hello";
+		// the string is instance of the object
+		Assert.assertEquals(Operator.compare(string, Operator.IS_A,
+				Object.class), true);
+		// the string is not instance of the bool
+		Assert.assertEquals(Operator.compare(string, Operator.IS_A,
+				Boolean.class), false);
+	}
+
+	/**
+	 * The testcase for IS_KIND_OF test
+	 * 
+	 * @throws Exception
+	 */
+	public void testIS_KIND_OF() throws Exception {
+		// -------- For ISA test --------
+		String string = "";
+		Boolean bool = new Boolean(true);
+		Object object = new Object();
+		// the string is instance of the object
+		Assert.assertEquals(Operator.compare(string, Operator.IS_KIND_OF,
+				object), true);
+		// the string is not instance of the bool
+		Assert.assertEquals(
+				Operator.compare(string, Operator.IS_KIND_OF, bool), false);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/TriggerTestSuite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/TriggerTestSuite.java
new file mode 100644
index 0000000..2b9e4ee
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/TriggerTestSuite.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.trigger;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.eclipse.xwt.tests.trigger.datatrigger.DataTriggerTests;
+import org.eclipse.xwt.tests.trigger.multidatatrigger.MultiDataTriggerTests;
+import org.eclipse.xwt.tests.trigger.multitrigger.MultiTriggerTests;
+
+public class TriggerTestSuite extends TestSuite {
+	public static final Test suite() {
+		return new TriggerTestSuite();
+	}
+
+	public TriggerTestSuite() {
+		addTest(new TestSuite(OperatorHelperTest.class));
+		addTest(new TestSuite(TriggerTests.class));
+		addTest(new TestSuite(MultiTriggerTests.class));
+		addTest(new TestSuite(DataTriggerTests.class));
+		addTest(new TestSuite(MultiDataTriggerTests.class));
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/TriggerTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/TriggerTests.java
new file mode 100644
index 0000000..01d9d97
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/TriggerTests.java
@@ -0,0 +1,212 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.trigger;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class TriggerTests extends XWTTestCase {
+
+	public TriggerTests() {
+	}
+
+	public void test_Button_Trigger() {
+		URL url = TriggerTests.class.getResource(Button_Click_Trigger.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button button = (Button) XWT.findElementByName(root, "Button");
+				selectButton(button);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Button button = (Button) XWT.findElementByName(root, "Button");
+				assertFalse(button.isVisible());
+			}
+		});
+	}
+
+	public void test_Button_Trigger_SourceName() {
+		URL url = TriggerTests.class
+				.getResource(Button_Click_Trigger_SourceName.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button button = (Button) XWT.findElementByName(root, "Button");
+				selectButton(button);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				assertFalse(root.isVisible());
+				Button button = (Button) XWT.findElementByName(root, "Button");
+				assertFalse(button.isVisible());
+			}
+		});
+	}
+
+	public void test_Button_Trigger_Setter_TargetName() {
+		URL url = TriggerTests.class
+				.getResource(Button_Click_Trigger_Setter_TargetName.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button button = (Button) XWT.findElementByName(root, "Button");
+				selectButton(button);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Button target = (Button) XWT.findElementByName(root, "target");
+				Button button = (Button) XWT.findElementByName(root, "Button");
+				assertTrue(button.getSelection());
+				assertFalse(target.isVisible());
+			}
+		});
+	}
+
+	public void test_Button_Trigger_Setter_TargetName2() {
+		URL url = TriggerTests.class
+				.getResource(Button_Click_Trigger_Setter_TargetName.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button button = (Button) XWT.findElementByName(root, "Button");
+				selectButton(button, true);
+				selectButton(button, false);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Button target = (Button) XWT.findElementByName(root, "target");
+				Button button = (Button) XWT.findElementByName(root, "Button");
+				assertFalse(button.getSelection());
+				assertTrue(target.isVisible());
+			}
+		});
+	}
+
+	public void test_Button_Trigger_Setter_TargetName3() {
+		URL url = TriggerTests.class
+				.getResource(Button_Click_Trigger_Setter_TargetName.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button button = (Button) XWT.findElementByName(root, "Button");
+				selectButton(button, true);
+				selectButton(button, false);
+				selectButton(button, true);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Button target = (Button) XWT.findElementByName(root, "target");
+				Button button = (Button) XWT.findElementByName(root, "Button");
+				assertTrue(button.isVisible());
+				assertFalse(target.isVisible());
+			}
+		});
+	}
+
+	public void test_Button_Trigger_SourceName_Setter_TargetName() {
+		URL url = TriggerTests.class
+				.getResource(Button_Click_Trigger_SourceName_Setter_TargetName.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button button = (Button) XWT.findElementByName(root, "source");
+				selectButton(button);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Button button = (Button) XWT.findElementByName(root, "target");
+				assertFalse(button.isVisible());
+			}
+		});
+	}
+
+	public void test_Button_Click_Trigger_EventProperty() {
+		URL url = TriggerTests.class
+				.getResource(Button_Click_Trigger_EventProperty.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button button = (Button) XWT.findElementByName(root, "source");
+				selectButton(button);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Button button = (Button) XWT.findElementByName(root, "target");
+				assertEquals("OK", button.getText());
+			}
+		});
+	}
+
+	public void test_Button_Click_Trigger_EventProperty2() {
+		URL url = TriggerTests.class
+				.getResource(Button_Click_Trigger_EventProperty.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button button = (Button) XWT.findElementByName(root, "source");
+				selectButton(button, true);
+				selectButton(button, false);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Button button = (Button) XWT.findElementByName(root, "target");
+				assertEquals("Target", button.getText());
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/Address.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/Address.java
new file mode 100644
index 0000000..824ac2b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/Address.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.trigger.datatrigger;
+
+public class Address {
+	private String city = "Paris";
+
+	public void setCity(String value) {
+		this.city = value;
+	}
+
+	public String getCity() {
+		return city;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/Country.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/Country.java
new file mode 100644
index 0000000..ce816fa
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/Country.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.trigger.datatrigger;
+
+public enum Country {
+	FR, USA, CN;
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/DataTrigger.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/DataTrigger.java
new file mode 100644
index 0000000..ecdd25a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/DataTrigger.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.trigger.datatrigger;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class DataTrigger {
+	public static void main(String[] args) {
+
+		URL url = DataTrigger.class.getResource(DataTrigger.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/DataTrigger.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/DataTrigger.xwt
new file mode 100644
index 0000000..c9ab3ca
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/DataTrigger.xwt
@@ -0,0 +1,32 @@
+<Shell xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.trigger.datatrigger"
+	DataContext="{StaticResource myData}">
+	<Shell.layout>
+		<GridLayout numColumns="2"/>
+	</Shell.layout>
+	
+	<Shell.Resources>
+		<y:Person x:Key="myData"/>
+	</Shell.Resources>
+	
+	<Label text="Name"/>
+	<Text x:style="BORDER" text="{Binding Path=name}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	
+	<Button name="Button" x:style="SWT.CHECK" selection="{Binding Path=maried}">
+		<Button.triggers>
+			<DataTrigger binding="{Binding Path=maried}" value="false" >
+				<Setter property="text" value="Alone"/>
+			</DataTrigger>
+		</Button.triggers>
+		<Button.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Button.layoutData>
+	</Button>
+</Shell>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/DataTriggerTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/DataTriggerTests.java
new file mode 100644
index 0000000..0d06835
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/DataTriggerTests.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.trigger.datatrigger;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class DataTriggerTests extends XWTTestCase {
+
+	public DataTriggerTests() {
+	}
+
+	public void test_DataTrigger1() {
+		URL url = DataTriggerTests.class.getResource(DataTrigger.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button button = (Button) XWT.findElementByName(root, "Button");
+				selectButton(button, false);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Button button = (Button) XWT.findElementByName(root, "Button");
+				assertEquals("Alone", button.getText());
+			}
+		});
+	}
+
+	public void test_DataTrigger2() {
+		URL url = DataTriggerTests.class.getResource(DataTrigger.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button button = (Button) XWT.findElementByName(root, "Button");
+				selectButton(button, false);
+				selectButton(button, true);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Button button = (Button) XWT.findElementByName(root, "Button");
+				assertEquals("", button.getText());
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/Person.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/Person.java
new file mode 100644
index 0000000..64a2cb7
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/datatrigger/Person.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.trigger.datatrigger;
+
+public class Person {
+	private String name = "toto";
+	private int age = 10;
+
+	private boolean maried = true;
+
+	private Country nationality = Country.FR;
+	private Address address;
+
+	public Country getNationality() {
+		return nationality;
+	}
+
+	public boolean isMaried() {
+		return maried;
+	}
+
+	public void setMaried(boolean maried) {
+		this.maried = maried;
+	}
+
+	public int getAge() {
+		return age;
+	}
+
+	public void setAge(int age) {
+		this.age = age;
+	}
+
+	public Person() {
+		address = new Address();
+	}
+
+	public void setName(String value) {
+		this.name = value;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public Address getAddress() {
+		return address;
+	}
+
+	public void setAddress(Address address) {
+		this.address = address;
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/eventtrigger/Button_Click_EventTrigger.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/eventtrigger/Button_Click_EventTrigger.java
new file mode 100644
index 0000000..a72dae0
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/eventtrigger/Button_Click_EventTrigger.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.trigger.eventtrigger;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Button_Click_EventTrigger {
+
+	/**
+	 * @param args
+	 */
+	public static void main(String[] args) {
+
+		URL url = Button_Click_EventTrigger.class
+				.getResource(Button_Click_EventTrigger.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/eventtrigger/Button_Click_EventTrigger.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/eventtrigger/Button_Click_EventTrigger.xwt
new file mode 100644
index 0000000..bd20625
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/eventtrigger/Button_Click_EventTrigger.xwt
@@ -0,0 +1,15 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<GridLayout numColumns="1"/>
+	</Composite.layout>	
+	
+  <!-- The width of this button is animated. -->
+  <Button x:Style="SWT.CHECK" Text="Trigger">
+    <Button.Triggers>
+	   <EventTrigger RoutedEvent="SelectionEvent">
+		  <Setter Property="Visible" Value="False" />
+	   </EventTrigger>
+    </Button.Triggers>
+  </Button>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger.java
new file mode 100644
index 0000000..6309998
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.trigger.multidatatrigger;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class MultiDataTrigger {
+	public static void main(String[] args) {
+
+		URL url = MultiDataTrigger.class.getResource(MultiDataTrigger.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger.xwt
new file mode 100644
index 0000000..0e3bd6d
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger.xwt
@@ -0,0 +1,42 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.trigger.datatrigger"
+	DataContext="{StaticResource myData}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	
+	<Composite.Resources>
+		<y:Person x:Key="myData"/>
+	</Composite.Resources>
+
+	<Label text="Set ago = 15 and maried = true">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+	<Label text="Name"/>
+	<Text name="Text" x:style="BORDER" text="{Binding Path=age,UpdateSourceTrigger=PropertyChanged}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	
+	<Button name="Button" x:style="SWT.CHECK" selection="{Binding Path=maried}">
+		<Button.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Button.layoutData>
+	</Button>
+	<Composite.Triggers>
+      <MultiDataTrigger>
+        <MultiDataTrigger.Conditions>
+          <Condition Binding="{Binding Path=maried}" Value="true"/>
+          <Condition Binding="{Binding Path=age}" Value="15" />
+        </MultiDataTrigger.Conditions>
+        <Setter Property="Visible" Value="false" />
+      </MultiDataTrigger>
+	</Composite.Triggers>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTriggerTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTriggerTests.java
new file mode 100644
index 0000000..4032797
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTriggerTests.java
@@ -0,0 +1,164 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.trigger.multidatatrigger;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class MultiDataTriggerTests extends XWTTestCase {
+
+	public MultiDataTriggerTests() {
+	}
+
+	public void test_MultiDataTrigger1() {
+		URL url = MultiDataTriggerTests.class
+				.getResource(MultiDataTrigger.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button button1 = (Button) XWT.findElementByName(root, "Button");
+				selectButton(button1);
+				Text text = (Text) XWT.findElementByName(root, "Text");
+				text.setText("11");
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				assertTrue(root.isVisible());
+			}
+		});
+	}
+
+	public void test_MultiDataTrigger_Restore1() {
+		URL url = MultiDataTriggerTests.class
+				.getResource(MultiDataTrigger_Restore.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button button1 = (Button) XWT.findElementByName(root, "Button");
+				selectButton(button1, false);
+				selectButton(button1, true);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Button button1 = (Button) XWT.findElementByName(root, "Button");
+
+				assertEquals(button1.getText(), "true");
+			}
+		});
+	}
+
+	public void test_MultiDataTrigger_Restore2() {
+		URL url = MultiDataTriggerTests.class
+				.getResource(MultiDataTrigger_Restore.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button button1 = (Button) XWT.findElementByName(root, "Button");
+				selectButton(button1, false);
+				selectButton(button1, true);
+				selectButton(button1, false);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Button button1 = (Button) XWT.findElementByName(root, "Button");
+
+				assertEquals(button1.getText(), "");
+			}
+		});
+	}
+
+	public void test_MultiDataTrigger2() {
+		URL url = MultiDataTriggerTests.class
+				.getResource(MultiDataTrigger.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button button1 = (Button) XWT.findElementByName(root, "Button");
+				selectButton(button1, false);
+				Text text = (Text) XWT.findElementByName(root, "Text");
+				text.setText("15");
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				assertTrue(root.isVisible());
+			}
+		});
+	}
+
+	public void test_MultiDataTrigger3() {
+		URL url = MultiDataTriggerTests.class
+				.getResource(MultiDataTrigger.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button button1 = (Button) XWT.findElementByName(root, "Button");
+				selectButton(button1, false);
+				Text text = (Text) XWT.findElementByName(root, "Text");
+				text.setText("15");
+				selectButton(button1, true);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				assertFalse(root.isVisible());
+			}
+		});
+	}
+
+	public void test_MultiDataTrigger4() {
+		URL url = MultiDataTriggerTests.class
+				.getResource(MultiDataTrigger_Default.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button button1 = (Button) XWT.findElementByName(root, "Button");
+				selectButton(button1, false);
+				Text text = (Text) XWT.findElementByName(root, "Text");
+				text.setText("15");
+				selectButton(button1, true);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				assertTrue(root.isVisible());
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger_Default.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger_Default.java
new file mode 100644
index 0000000..b123a68
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger_Default.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.trigger.multidatatrigger;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class MultiDataTrigger_Default {
+	public static void main(String[] args) {
+
+		URL url = MultiDataTrigger_Default.class
+				.getResource(MultiDataTrigger_Default.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger_Default.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger_Default.xwt
new file mode 100644
index 0000000..ba9157c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger_Default.xwt
@@ -0,0 +1,42 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.trigger.datatrigger"
+	DataContext="{StaticResource myData}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	
+	<Composite.Resources>
+		<y:Person x:Key="myData"/>
+	</Composite.Resources>
+
+	<Label text="Set ago = 15 and maried = true">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+	<Label text="Name"/>
+	<Text name="Text" x:style="BORDER" text="{Binding Path=age}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	
+	<Button name="Button" x:style="SWT.CHECK" selection="{Binding Path=maried}">
+		<Button.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Button.layoutData>
+	</Button>
+	<Composite.Triggers>
+      <MultiDataTrigger>
+        <MultiDataTrigger.Conditions>
+          <Condition Binding="{Binding Path=maried}" Value="true"/>
+          <Condition Binding="{Binding Path=age}" Value="15" />
+        </MultiDataTrigger.Conditions>
+        <Setter Property="Visible" Value="false" />
+      </MultiDataTrigger>
+	</Composite.Triggers>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger_Restore.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger_Restore.java
new file mode 100644
index 0000000..67accfe
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger_Restore.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.trigger.multidatatrigger;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class MultiDataTrigger_Restore {
+	public static void main(String[] args) {
+
+		URL url = MultiDataTrigger_Restore.class
+				.getResource(MultiDataTrigger_Restore.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger_Restore.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger_Restore.xwt
new file mode 100644
index 0000000..800f239
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multidatatrigger/MultiDataTrigger_Restore.xwt
@@ -0,0 +1,42 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.trigger.datatrigger"
+	DataContext="{StaticResource myData}">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	
+	<Composite.Resources>
+		<y:Person x:Key="myData"/>
+	</Composite.Resources>
+
+	<Label text="Set ago = 15 and maried = true">
+		<Label.layoutData>
+			<GridData horizontalAlignment="FILL" horizontalSpan="2"
+         		grabExcessHorizontalSpace="true"/>
+		</Label.layoutData>
+	</Label>
+	<Label text="Name"/>
+	<Text name="Text" x:style="BORDER" text="{Binding Path=age}">
+		<Text.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Text.layoutData>
+	</Text>
+	
+	<Button name="Button" x:style="SWT.CHECK" selection="{Binding Path=maried}">
+		<Button.layoutData>
+			<GridData horizontalAlignment="FILL"
+         		grabExcessHorizontalSpace="true"/>
+		</Button.layoutData>
+	</Button>
+	<Composite.Triggers>
+      <MultiDataTrigger>
+        <MultiDataTrigger.Conditions>
+          <Condition Binding="{Binding Path=maried}" Value="true"/>
+          <Condition Binding="{Binding Path=age}" Value="15" Operator="LT"/>
+        </MultiDataTrigger.Conditions>
+        <Setter Property="text" Value="true" targetName="Button" />
+      </MultiDataTrigger>
+	</Composite.Triggers>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/Button_Click_MultiTrigger.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/Button_Click_MultiTrigger.java
new file mode 100644
index 0000000..58f1713
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/Button_Click_MultiTrigger.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.trigger.multitrigger;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Button_Click_MultiTrigger {
+
+	/**
+	 * @param args
+	 */
+	public static void main(String[] args) {
+
+		URL url = Button_Click_MultiTrigger.class
+				.getResource(Button_Click_MultiTrigger.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/Button_Click_MultiTrigger.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/Button_Click_MultiTrigger.xwt
new file mode 100644
index 0000000..5e7805a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/Button_Click_MultiTrigger.xwt
@@ -0,0 +1,31 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<GridLayout numColumns="1"/>
+	</Composite.layout>	
+	
+  <!-- The width of this button is animated. -->
+  <Button name="ButtonHide" x:Style="SWT.CHECK" Text="Hit to hide">
+    <Button.Triggers>
+       <MultiTrigger>
+          <MultiTrigger.Conditions>
+             <Condition Property="Selection" Value="true" />
+             <Condition Property="Visible" Value="true" />
+          </MultiTrigger.Conditions>
+	      <Setter Property="Visible" Value="False" />
+       </MultiTrigger>
+    </Button.Triggers>
+  </Button>
+  
+  <Button name="ButtonNotHide" x:Style="SWT.CHECK" Text="Hit cannot hide">
+    <Button.Triggers>
+       <MultiTrigger>
+          <MultiTrigger.Conditions>
+             <Condition Property="Selection" Value="true" />
+             <Condition Property="Visible" Value="false" />
+          </MultiTrigger.Conditions>
+	      <Setter Property="Visible" Value="False" />
+       </MultiTrigger>
+    </Button.Triggers>
+  </Button>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/Button_Click_MultiTrigger_SourceName.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/Button_Click_MultiTrigger_SourceName.java
new file mode 100644
index 0000000..b9e5e5a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/Button_Click_MultiTrigger_SourceName.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.trigger.multitrigger;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Button_Click_MultiTrigger_SourceName {
+
+	/**
+	 * @param args
+	 */
+	public static void main(String[] args) {
+
+		URL url = Button_Click_MultiTrigger_SourceName.class
+				.getResource(Button_Click_MultiTrigger_SourceName.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/Button_Click_MultiTrigger_SourceName.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/Button_Click_MultiTrigger_SourceName.xwt
new file mode 100644
index 0000000..106440b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/Button_Click_MultiTrigger_SourceName.xwt
@@ -0,0 +1,20 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<GridLayout numColumns="1"/>
+	</Composite.layout>	
+	
+  <!-- The width of this button is animated. -->
+  <Button name="button1" x:Style="SWT.CHECK" Text="Hit both hide"/>
+  <Button name="button2" x:Style="SWT.CHECK" Text="Hit both hide"/>
+  <Composite.Triggers>
+    <MultiTrigger>
+      <MultiTrigger.Conditions>
+         <Condition Property="Selection" Value="true" sourceName="button1"/>
+         <Condition Property="Selection" Value="true" sourceName="button2"/>
+      </MultiTrigger.Conditions>
+      <Setter Property="Visible" Value="False" targetName="button1"/>
+      <Setter Property="Visible" Value="False" targetName="button2"/>
+    </MultiTrigger>
+  </Composite.Triggers>  
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/MultiTriggerTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/MultiTriggerTests.java
new file mode 100644
index 0000000..63e2638
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/trigger/multitrigger/MultiTriggerTests.java
@@ -0,0 +1,129 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.trigger.multitrigger;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class MultiTriggerTests extends XWTTestCase {
+
+	public MultiTriggerTests() {
+	}
+
+	public void test_Button_Click_MultiTrigger() {
+		URL url = MultiTriggerTests.class
+				.getResource(Button_Click_MultiTrigger.class.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button buttonHide = (Button) XWT.findElementByName(root,
+						"ButtonHide");
+				selectButton(buttonHide);
+				Button buttonNotHide = (Button) XWT.findElementByName(root,
+						"ButtonNotHide");
+				selectButton(buttonNotHide);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Button buttonHide = (Button) XWT.findElementByName(root,
+						"ButtonHide");
+				assertFalse(buttonHide.isVisible());
+				Button buttonNotHide = (Button) XWT.findElementByName(root,
+						"ButtonNotHide");
+				assertTrue(buttonNotHide.isVisible());
+			}
+		});
+	}
+
+	public void test_Button_Click_MultiTrigger_SourceName1() {
+		URL url = MultiTriggerTests.class
+				.getResource(Button_Click_MultiTrigger_SourceName.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button button1 = (Button) XWT
+						.findElementByName(root, "button1");
+				selectButton(button1);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				assertTrue(root.isVisible());
+			}
+		});
+	}
+
+	public void test_Button_Click_MultiTrigger_SourceName2() {
+		URL url = MultiTriggerTests.class
+				.getResource(Button_Click_MultiTrigger_SourceName.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button button2 = (Button) XWT
+						.findElementByName(root, "button2");
+				selectButton(button2);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				assertTrue(root.isVisible());
+			}
+		});
+	}
+
+	public void test_Button_Click_MultiTrigger_SourceName3() {
+		URL url = MultiTriggerTests.class
+				.getResource(Button_Click_MultiTrigger_SourceName.class
+						.getSimpleName()
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Button button1 = (Button) XWT
+						.findElementByName(root, "button1");
+				selectButton(button1);
+				Button button2 = (Button) XWT
+						.findElementByName(root, "button2");
+				selectButton(button2);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Button button1 = (Button) XWT
+						.findElementByName(root, "button1");
+				assertFalse(button1.isVisible());
+				Button button2 = (Button) XWT
+						.findElementByName(root, "button2");
+				assertFalse(button2.isVisible());
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/Container.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/Container.java
new file mode 100644
index 0000000..4289467
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/Container.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.usercontrol;
+
+import java.net.URL;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Container {
+	public static void main(String[] args) {
+
+		URL url = Container.class.getResource(Container.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/Container.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/Container.xwt
new file mode 100644
index 0000000..7de1ef6
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/Container.xwt
@@ -0,0 +1,8 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.usercontrol">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>	
+	<y:UserControl Name="childControl"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/UserControl.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/UserControl.java
new file mode 100644
index 0000000..961399f
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/UserControl.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.usercontrol;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+
+public class UserControl extends Composite {
+	static public final String SELECTION_MESSAGE = "OK";
+
+	public UserControl(Composite parent, int style) {
+		super(parent, style);
+	}
+
+	protected void selection(Event event) {
+		Button button = (Button) event.widget;
+		button.setText(SELECTION_MESSAGE);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/UserControl.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/UserControl.xwt
new file mode 100644
index 0000000..a0e466b
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/UserControl.xwt
@@ -0,0 +1,9 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:j="clr-namespace:org.eclipse.xwt.tests.usercontrol"
+	x:Class="org.eclipse.xwt.tests.usercontrol.UserControl">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>	
+	<Button Name="targetButton" text="Hello, world" SelectionEvent="selection"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/UserControlTestSuite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/UserControlTestSuite.java
new file mode 100644
index 0000000..692877e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/UserControlTestSuite.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.usercontrol;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class UserControlTestSuite extends TestSuite {
+	public static final Test suite() {
+		return new UserControlTestSuite();
+	}
+
+	public UserControlTestSuite() {
+		addTest(new TestSuite(UserControlTests.class));
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/UserControlTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/UserControlTests.java
new file mode 100644
index 0000000..1a08527
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/UserControlTests.java
@@ -0,0 +1,92 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.usercontrol;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+import org.eclipse.xwt.tests.XWTTestCase;
+
+public class UserControlTests extends XWTTestCase {
+	public void testUserControl() throws Exception {
+		URL url = UserControlTests.class.getResource(Container.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Control[] childControls = ((Composite) root).getChildren();
+				assertTrue(childControls.length == 1);
+				assertTrue(childControls[0] instanceof UserControl);
+				Object element = XWT.findElementByName(
+						(UserControl) childControls[0], "targetButton");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				selectButton(button);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Control[] childControls = ((Composite) root).getChildren();
+				assertTrue(childControls.length == 1);
+				assertTrue(childControls[0] instanceof UserControl);
+				Object element = XWT.findElementByName(
+						(UserControl) childControls[0], "targetButton");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				assertTrue(UserControl.SELECTION_MESSAGE.equals(button
+						.getText()));
+			}
+		});
+	}
+
+	public void testUserControlName() throws Exception {
+		URL url = UserControlTests.class.getResource(Container.class
+				.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		runTest(url, new Runnable() {
+			public void run() {
+				Object childCOntrol = XWT.findElementByName(root,
+						"childControl");
+				assertTrue(childCOntrol instanceof UserControl);
+				Object element = XWT.findElementByName(
+						(UserControl) childCOntrol, "targetButton");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				selectButton(button);
+			}
+		}, new Runnable() {
+			public void run() {
+				checkButton();
+			}
+
+			public void checkButton() {
+				Object childCOntrol = XWT.findElementByName(root,
+						"childControl");
+				assertTrue(childCOntrol instanceof UserControl);
+				Object element = XWT.findElementByName(
+						(UserControl) childCOntrol, "targetButton");
+				assertTrue(element instanceof Button);
+				Button button = (Button) element;
+				assertTrue(UserControl.SELECTION_MESSAGE.equals(button
+						.getText()));
+			}
+		});
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/event/Container.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/event/Container.java
new file mode 100644
index 0000000..3f39fa4
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/event/Container.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.usercontrol.event;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+public class Container {
+	public static void main(String[] args) {
+
+		URL url = Container.class.getResource(Container.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void selection(Event event) {
+		Button button = (Button) event.widget;
+		button.setText("OK");
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/event/Container.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/event/Container.xwt
new file mode 100644
index 0000000..fe4fcbd
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/event/Container.xwt
@@ -0,0 +1,9 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:y="clr-namespace:org.eclipse.xwt.tests.usercontrol.event"
+	x:Class="org.eclipse.xwt.tests.usercontrol.event.Container">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<y:UserControl/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/event/UserControl.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/event/UserControl.java
new file mode 100644
index 0000000..5f781b9
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/event/UserControl.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.usercontrol.event;
+
+import org.eclipse.swt.widgets.Composite;
+
+public class UserControl extends Composite {
+
+	public UserControl(Composite parent, int style) {
+		super(parent, style);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/event/UserControl.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/event/UserControl.xwt
new file mode 100644
index 0000000..e89c2a0
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/usercontrol/event/UserControl.xwt
@@ -0,0 +1,8 @@
+<j:UserControl xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:j="clr-namespace:org.eclipse.xwt.tests.usercontrol">
+	<j:UserControl.layout>
+		<GridLayout numColumns="2"/>
+	</j:UserControl.layout>	
+	<Button text="Hello, world" SelectionEvent="selection"/>
+</j:UserControl>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/Company.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/Company.java
new file mode 100644
index 0000000..9a3edf8
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/Company.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.view;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+
+public class Company {
+	private PropertyChangeSupport changeSupport = new PropertyChangeSupport(
+			this);
+
+	public void addPropertyChangeListener(String propertyName,
+			PropertyChangeListener listener) {
+		changeSupport.addPropertyChangeListener(propertyName, listener);
+	}
+
+	public void removePropertyChangeListener(String propertyName,
+			PropertyChangeListener listener) {
+		changeSupport.removePropertyChangeListener(propertyName, listener);
+	}
+
+	protected String name;
+	protected Person manager = new Person();
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		String oldValue = name;
+		this.name = name;
+		changeSupport.firePropertyChange("name", oldValue, name);
+	}
+
+	public Person getManager() {
+		return manager;
+	}
+
+	public void setManager(Person manager) {
+		Person oldValue = this.manager;
+		this.manager = manager;
+		changeSupport.firePropertyChange("manager", oldValue, manager);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/CompanyView.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/CompanyView.java
new file mode 100644
index 0000000..38ef26e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/CompanyView.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.view;
+
+import org.eclipse.swt.widgets.Composite;
+
+public class CompanyView extends Composite {
+
+	public CompanyView(Composite parent, int style) {
+		super(parent, style);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/CompanyView.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/CompanyView.xwt
new file mode 100644
index 0000000..ddec6ee
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/CompanyView.xwt
@@ -0,0 +1,18 @@
+<j:CompanyView
+	xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:j="clr-namespace:org.eclipse.xwt.tests.view">
+   <j:CompanyView.layout>
+       <GridLayout numColumns="2"/>
+   </j:CompanyView.layout>
+
+   <Label Text="Company name:"/>
+   <Text x:Style="BORDER" Text="{Binding Path=name}"/>
+   <Label Text="Manager:"/>
+   <Group text="Person View:">
+   	   <Group.layout>
+   	      <FillLayout/>
+   	   </Group.layout>
+	   <j:PersonView DataContext="{Binding Path=manager}"/>
+   </Group>
+</j:CompanyView>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/Main.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/Main.java
new file mode 100644
index 0000000..7f8e61f
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/Main.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.view;
+
+import org.eclipse.xwt.XWT;
+
+public class Main {
+
+	/**
+	 * @param args
+	 */
+	public static void main(String[] args) {
+
+		Company company = new Company();
+		Person person = new Person();
+		person.setFirstName("Luc");
+		person.setLastName("GAMEL");
+		company.setName("Soyatec");
+		company.setManager(person);
+
+		try {
+			XWT.open(Main.class.getResource("CompanyView.xwt"), company);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/Person.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/Person.java
new file mode 100644
index 0000000..b691280
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/Person.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.view;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+
+public class Person {
+	private PropertyChangeSupport changeSupport = new PropertyChangeSupport(
+			this);
+
+	public void addPropertyChangeListener(String propertyName,
+			PropertyChangeListener listener) {
+		changeSupport.addPropertyChangeListener(propertyName, listener);
+	}
+
+	public void removePropertyChangeListener(String propertyName,
+			PropertyChangeListener listener) {
+		changeSupport.removePropertyChangeListener(propertyName, listener);
+	}
+
+	protected String firstName;
+
+	public String getFirstName() {
+		return firstName;
+	}
+
+	public void setFirstName(String firstName) {
+		String oldValue = this.firstName;
+		this.firstName = firstName;
+		changeSupport.firePropertyChange("firstName", oldValue, firstName);
+	}
+
+	public String getLastName() {
+		return lastName;
+	}
+
+	public void setLastName(String lastName) {
+		String oldValue = this.lastName;
+		this.lastName = lastName;
+		changeSupport.firePropertyChange("lastName", oldValue, lastName);
+	}
+
+	protected String lastName;
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/PersonView.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/PersonView.java
new file mode 100644
index 0000000..b914e1c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/PersonView.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.view;
+
+import org.eclipse.swt.widgets.Composite;
+
+public class PersonView extends Composite {
+
+	public PersonView(Composite parent, int style) {
+		super(parent, style);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/PersonView.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/PersonView.xwt
new file mode 100644
index 0000000..90a9ad5
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/view/PersonView.xwt
@@ -0,0 +1,13 @@
+<j:PersonView
+	xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:x="http://www.eclipse.org/xwt"
+	xmlns:j="clr-namespace:org.eclipse.xwt.tests.view">
+   <j:PersonView.layout>
+       <GridLayout numColumns="2"/>
+   </j:PersonView.layout>
+
+   <Label Text="First name:"/>
+   <Text x:Style="BORDER" Text="{Binding Path=firstName}"/>
+   <Label Text="Last name:"/>
+   <Text x:Style="BORDER" Text="{Binding Path=lastName}"/>
+</j:PersonView>
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/Address.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/Address.java
new file mode 100644
index 0000000..88f20ba
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/Address.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.wizard;
+
+public class Address extends BeanObject {
+	private String street = "Place de France";
+	private String city = "Paris";
+	
+	public Address() {
+     
+	}
+	
+	public String getStreet() {
+		return street;
+	}
+	
+	public void setStreet(String street) {
+		String oldValue = this.street;
+		this.street = street;
+		changeSupport.firePropertyChange("street", oldValue, street);
+	}
+	
+	public void setCity(String city) {
+		String oldValue = this.city;
+		this.city = city;
+		changeSupport.firePropertyChange("city", oldValue, city);
+	}
+
+	public String getCity() {
+		return city;
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/AddressView.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/AddressView.java
new file mode 100644
index 0000000..60d69bd
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/AddressView.java
@@ -0,0 +1,40 @@
+/******************************************************************************* 
+ * Copyright (c) 2006, 2015 Soyatec (http://www.soyatec.com) and others. 
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License 2.0 
+ * which accompanies this distribution, and is available at 
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0 
+ * 
+ * Contributors: 
+ * Soyatec - initial API and implementation 
+ *******************************************************************************/
+
+package org.eclipse.xwt.tests.wizard;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author
+ * 
+ */
+public class AddressView extends Composite {
+	public AddressView(Composite parent, int style) {
+		super(parent, style);
+	}
+	
+	public static void main(String[] args) {
+		URL url = AddressView.class.getResource("AddressView.xwt");
+		
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/AddressView.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/AddressView.xwt
similarity index 100%
rename from org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/AddressView.xwt
rename to tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/AddressView.xwt
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/BeanObject.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/BeanObject.java
new file mode 100644
index 0000000..ff03451
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/BeanObject.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.wizard;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+
+public class BeanObject {
+	protected PropertyChangeSupport changeSupport = new PropertyChangeSupport(
+			this);
+
+	public void addPropertyChangeListener(String propertyName,
+			PropertyChangeListener listener) {
+		changeSupport.addPropertyChangeListener(propertyName, listener);
+	}
+
+	public void removePropertyChangeListener(String propertyName,
+			PropertyChangeListener listener) {
+		changeSupport.removePropertyChangeListener(propertyName, listener);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/Company.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/Company.java
new file mode 100644
index 0000000..6cbf29e
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/Company.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.wizard;
+
+public class Company extends BeanObject {
+	private String name = "Soyatec";
+	private Person manager = new Person();
+
+	public Person getManager() {
+		return manager;
+	}
+
+	public void setManager(Person manager) {
+		Person oldValue = this.manager;
+		this.manager = manager;
+		changeSupport.firePropertyChange("manager", oldValue, manager);
+	}
+
+	public Company() {
+		manager.setName("Julien");
+	}
+
+	public void setName(String value) {
+		String oldValue = this.name;
+		this.name = value;
+		changeSupport.firePropertyChange("name", oldValue, value);
+	}
+
+	public String getName() {
+		return name;
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/CompanyView.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/CompanyView.java
new file mode 100644
index 0000000..d0a4ac2
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/CompanyView.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.wizard;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.xwt.XWT;
+
+public class CompanyView extends Composite {
+
+	public CompanyView(Composite parent, int style) {
+		super(parent, style);
+		// TODO Auto-generated constructor stub
+	}
+
+	public static void main(String[] args) {
+		URL url = CompanyView.class.getResource("CompanyView.xwt");
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+}
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/CompanyView.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/CompanyView.xwt
similarity index 100%
rename from org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/CompanyView.xwt
rename to tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/CompanyView.xwt
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/CompanyWizardPage.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/CompanyWizardPage.java
new file mode 100644
index 0000000..09477a5
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/CompanyWizardPage.java
@@ -0,0 +1,42 @@
+
+/******************************************************************************* 
+ * Copyright (c) 2006, 2015 Soyatec (http://www.soyatec.com) and others. 
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License 2.0 
+ * which accompanies this distribution, and is available at 
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0 
+ * 
+ * Contributors: 
+ * Soyatec - initial API and implementation 
+ *******************************************************************************/
+
+package org.eclipse.xwt.tests.wizard;
+
+import java.net.URL;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.xwt.ui.workbench.wizard.XWTWizardPage;
+
+/**
+ * @author El-Amine Ouraiba (amine.ouraiba@soyatec.com)
+ */
+
+public class CompanyWizardPage  extends XWTWizardPage {
+
+	protected CompanyWizardPage(String pageName, String title,
+			ImageDescriptor titleImage, Object dataContext) {
+		super(pageName, title, titleImage, dataContext);
+	}
+
+	protected URL getContentURL() {
+		URL url = CompanyWizardPage.class.getResource("CompanyView.xwt");
+		return url;
+	}
+
+	public boolean canFlipToNextPage() {
+		return isPageComplete() && getNextPage() != null;
+	}
+
+}
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/EMailValidator.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/EMailValidator.java
new file mode 100644
index 0000000..d839306
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/EMailValidator.java
@@ -0,0 +1,60 @@
+/******************************************************************************* 
+ * Copyright (c) 2006, 2015 Soyatec (http://www.soyatec.com) and others. 
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License 2.0 
+ * which accompanies this distribution, and is available at 
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0 
+ * 
+ * Contributors: 
+ * Soyatec - initial API and implementation 
+ *******************************************************************************/ 
+package org.eclipse.xwt.tests.wizard;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.eclipse.core.databinding.validation.ValidationStatus;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.xwt.validation.AbstractValidationRule;
+
+public class EMailValidator extends AbstractValidationRule {
+
+	private static final String EMAIL_PATTERN = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"
+			+ "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
+
+	private Pattern pattern;
+	private Matcher matcher;
+
+	public EMailValidator() {
+		pattern = Pattern.compile(EMAIL_PATTERN);
+	}
+
+	@Override
+	public Phase getPhase() {
+		return Phase.BeforeSet;
+	}
+
+	@Override
+	public Direction getBindingMode() {
+		return Direction.TargetToSource;
+	}
+
+	public IStatus validate(Object value) {
+		if (value == null || value.equals("")) {
+			return ValidationStatus.error("Email can not be empty.");
+		}
+		matcher = pattern.matcher(value.toString());
+		if (matcher.matches()) {
+			return ValidationStatus.ok();
+		}
+		return ValidationStatus.error("'" + value.toString()
+				+ "' is not a validate email.");
+	}
+
+	public IStatus validateBack(Object value) {
+		return validate(value);
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/MyWizard.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/MyWizard.java
new file mode 100644
index 0000000..b3ec5dd
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/MyWizard.java
@@ -0,0 +1,71 @@
+/******************************************************************************* 
+ * Copyright (c) 2006, 2015 Soyatec (http://www.soyatec.com) and others. 
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License 2.0 
+ * which accompanies this distribution, and is available at 
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0 
+ * 
+ * Contributors: 
+ * Soyatec - initial API and implementation 
+ *******************************************************************************/
+
+package org.eclipse.xwt.tests.wizard;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+
+
+/**
+ * @author El-Amine Ouraiba (amine.ouraiba@soyatec.com)
+ */
+
+public class MyWizard extends Wizard implements INewWizard {
+
+	public PersonWizardPage pagePerson;
+	public CompanyWizardPage pageCompany;
+	
+	 Person dataContextPerson = new Person();
+	 Company dataContextCompany = new Company();
+	
+	public MyWizard() {
+		super();
+		setNeedsProgressMonitor(true);
+		dataContextCompany.setManager(dataContextPerson);
+	}
+
+	public String getWindowTitle() {
+		return "Company Wizard";
+	}
+
+	@Override
+	public void addPages() {
+		
+		pagePerson = new PersonWizardPage("Person Page", "Enter information about Person", null, dataContextPerson);
+		addPage(pagePerson);
+		
+		pageCompany = new CompanyWizardPage("Company Page",	"Enter information about Company", null, dataContextCompany);
+		addPage(pageCompany);
+		
+	}
+
+	@Override
+	public boolean performFinish() {
+        return true;
+	}
+
+	@Override
+	public void init(IWorkbench workbench, IStructuredSelection selection) {
+		// TODO Auto-generated method stub
+	}
+
+	public boolean canFinish(){
+		if (this.getContainer().getCurrentPage() == pagePerson) 
+			return false;
+		if (pageCompany.isPageComplete()) return true;
+		return false; 
+	}
+}
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/NameValidator.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/NameValidator.java
new file mode 100644
index 0000000..1a01635
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/NameValidator.java
@@ -0,0 +1,67 @@
+/******************************************************************************* 
+ * Copyright (c) 2006, 2015 Soyatec (http://www.soyatec.com) and others. 
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License 2.0 
+ * which accompanies this distribution, and is available at 
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0 
+ * 
+ * Contributors: 
+ * Soyatec - initial API and implementation 
+ *******************************************************************************/
+package org.eclipse.xwt.tests.wizard;
+
+import org.eclipse.core.databinding.validation.ValidationStatus;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.xwt.validation.AbstractValidationRule;
+
+public class NameValidator extends AbstractValidationRule {
+
+	public NameValidator() {
+		super();
+	}
+
+	@Override
+	public Phase getPhase() {
+		return Phase.BeforeSet;
+	}
+
+	@Override
+	public Direction getBindingMode() {
+		return Direction.Both;
+	}
+
+	public IStatus validate(Object value) {
+		
+		if (value.equals(0) || value == null || value.toString().length() == 0	|| value.equals("") ) {
+		    return	ValidationStatus.error("This field is mandatory. It must be specified");
+			} 
+		
+			if (value.toString().charAt(0) == '.') {
+				return	ValidationStatus.error("This field must not begin with a '.'");
+			
+			}
+						
+			for (int i = 0; i < value.toString().length(); i++) {
+				char c = value.toString().charAt(i);
+				if ((c < 'A' || 'Z' < c) && (c < 'a' || 'z' < c) && (c < '0' || '9' < c) && c != '_' && c != '-') {
+					if (i == 0 || i == value.toString().length() - 1 || c != '.') {
+						return ValidationStatus.error("This field cannot contain ''" + c + "''");
+					}
+				}
+			}
+	
+			
+			
+			 ValidationStatus.info("Define data fields of a new person");
+				
+		return ValidationStatus.ok();
+
+	}
+
+	public IStatus validateBack(Object value) {
+		return validate(value);
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/Person.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/Person.java
new file mode 100644
index 0000000..cf86ef4
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/Person.java
@@ -0,0 +1,78 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.wizard;
+
+public class Person extends BeanObject {
+	private String name = "toto";
+	private String email = "toto@soyatec.com";
+	private int age = 30;
+	private boolean maried = false;
+	private Address address;
+
+	public Person() {
+		address = new Address();
+	}
+	
+	public void setName(String name) {
+		String oldValue = this.name;
+		this.name = name;
+		changeSupport.firePropertyChange("name", oldValue, name);
+	}
+	
+	public String getName() {
+		return name;
+	}
+	
+	public void setEmail(String email) {
+		String oldValue = this.email;
+		this.email = email;
+		changeSupport.firePropertyChange("email", oldValue, email);
+	}
+	
+	
+	
+	public String getEmail() {
+		return email;
+	}
+	
+	public int getAge() {
+		return age;
+	}
+
+	public void setAge(int age) {
+		int oldValue = this.age;
+		this.age = age;
+		changeSupport.firePropertyChange("age", oldValue, age);
+	}
+	
+	public void setMaried(boolean maried) {
+		boolean oldValue = this.maried;
+		this.maried = maried;
+		changeSupport.firePropertyChange("maried", oldValue, maried);
+	}
+
+	public boolean isMaried() {
+		return maried;
+	}
+
+	public Address getAddress() {
+		return address;
+	}
+
+	public void setAddress(Address address) {
+		Address oldValue = this.address;
+		this.address = address;
+		changeSupport.firePropertyChange("address", oldValue, address);
+	}
+
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/PersonView.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/PersonView.java
new file mode 100644
index 0000000..9b994a3
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/PersonView.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.wizard;
+
+import java.net.URL;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.xwt.XWT;
+
+public class PersonView extends Composite {
+
+	public PersonView(Composite parent, int style) {
+		super(parent, style);
+		// TODO Auto-generated constructor stub
+	}
+
+	
+	public static void main(String[] args) {
+		URL url = PersonView.class.getResource("PersonView.xwt");
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/PersonView.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/PersonView.xwt
similarity index 100%
rename from org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/PersonView.xwt
rename to tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/PersonView.xwt
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/PersonWizardPage.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/PersonWizardPage.java
new file mode 100644
index 0000000..fbb6807
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/PersonWizardPage.java
@@ -0,0 +1,45 @@
+
+/******************************************************************************* 
+ * Copyright (c) 2006, 2015 Soyatec (http://www.soyatec.com) and others. 
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Eclipse Public License 2.0 
+ * which accompanies this distribution, and is available at 
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0 
+ * 
+ * Contributors: 
+ * Soyatec - initial API and implementation 
+ *******************************************************************************/
+
+package org.eclipse.xwt.tests.wizard;
+
+import java.net.URL;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.xwt.ui.workbench.wizard.XWTWizardPage;
+
+/**
+ * @author El-Amine Ouraiba (amine.ouraiba@soyatec.com)
+ */
+
+public class PersonWizardPage  extends XWTWizardPage {
+
+	protected PersonWizardPage(String pageName, String title,
+			ImageDescriptor titleImage, Object dataContext) {
+		super(pageName, title, titleImage, dataContext);
+	}
+
+	protected URL getContentURL() {
+		URL url = PersonWizardPage.class.getResource("PersonView.xwt");
+		return url;
+	}
+
+	public boolean canFlipToNextPage() {
+		return isPageComplete() && getNextPage() != null;
+	}
+	
+	public XWTWizardPage getNextPage(){
+		return ((MyWizard)getWizard()).pageCompany;
+	}
+}
\ No newline at end of file
diff --git a/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/WizarsLuncher.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/WizarsLuncher.java
similarity index 100%
rename from org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/WizarsLuncher.java
rename to tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/wizard/WizarsLuncher.java
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression.xwt
new file mode 100644
index 0000000..38bbf57
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression.xwt
@@ -0,0 +1,5 @@
+<Label xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:y="clr-namespace:gui"
+    text="{Binding path=name}">
+</Label>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpressionTestSuite.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpressionTestSuite.java
new file mode 100644
index 0000000..a52b611
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpressionTestSuite.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.xaml;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class BindingExpressionTestSuite extends TestSuite {
+	public static final Test suite() {
+		return new BindingExpressionTestSuite();
+	}
+
+	public BindingExpressionTestSuite() {
+		addTest(new TestSuite(BindingExpressionTests.class));
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpressionTests.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpressionTests.java
new file mode 100644
index 0000000..2fb90aa
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpressionTests.java
@@ -0,0 +1,141 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0 * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.xaml;
+
+import java.net.URL;
+
+import junit.framework.TestCase;
+
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.internal.xml.Attribute;
+import org.eclipse.xwt.internal.xml.DocumentObject;
+import org.eclipse.xwt.internal.xml.Element;
+import org.eclipse.xwt.internal.xml.ElementManager;
+
+/**
+ * This class test the function about OperatorHelper
+ * 
+ * @author YaHong.Song(yahong.song@soyatec.com)
+ * 
+ */
+public class BindingExpressionTests extends TestCase {
+
+	/**
+	 * The testcase for EQ test
+	 * 
+	 * @throws Exception
+	 */
+	public void testBindingExpression() throws Exception {
+		URL url = BindingExpressionTests.class.getResource("BindingExpression"
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			ElementManager elementManager = new ElementManager();
+			Element element = elementManager.load(url, null);
+			checkTextValue(element, "path", "name");
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	public void testBindingExpression_path() throws Exception {
+		URL url = BindingExpressionTests.class
+				.getResource("BindingExpression_Path"
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			ElementManager elementManager = new ElementManager();
+			Element element = elementManager.load(url, null);
+			checkTextValue(element, "path", "employees.name");
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	public void testBindingExpression_Attached() throws Exception {
+		URL url = BindingExpressionTests.class
+				.getResource("BindingExpression_Attached"
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			ElementManager elementManager = new ElementManager();
+			Element element = elementManager.load(url, null);
+			checkTextValue(element, "path", "(Person.name)");
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	public void testBindingExpression_Indexer() throws Exception {
+		URL url = BindingExpressionTests.class
+				.getResource("BindingExpression_Indexer"
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			ElementManager elementManager = new ElementManager();
+			Element element = elementManager.load(url, null);
+			checkTextValue(element, "path", "persons[1].name");
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	public void testBindingExpression_Namespace() throws Exception {
+		URL url = BindingExpressionTests.class
+				.getResource("BindingExpression_Namespace"
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			ElementManager elementManager = new ElementManager();
+			Element element = elementManager.load(url, null);
+			checkTextValue(element, "path", "(gui.Person.name)");
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	public void testBindingExpression_NamespaceUpdateSourceTrigger()
+			throws Exception {
+		URL url = BindingExpressionTests.class
+				.getResource("BindingExpression_NamespaceUpdateSourceTrigger"
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			ElementManager elementManager = new ElementManager();
+			Element element = elementManager.load(url, null);
+			checkTextValue(element, "path", "(gui.Person.name)");
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	public void testBindingExpression_UpdateSourceTrigger() throws Exception {
+		URL url = BindingExpressionTests.class
+				.getResource("BindingExpression_UpdateSourceTrigger"
+						+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			ElementManager elementManager = new ElementManager();
+			Element element = elementManager.load(url, null);
+			checkTextValue(element, "UpdateSourceTrigger", "PropertyChanged");
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void checkTextValue(Element element, String name, String value) {
+		Attribute attribute = element.getAttribute("Text");
+		assertEquals(attribute.getName(), "Text");
+		assertEquals(attribute.getChildren().length, 1);
+		DocumentObject child = attribute.getChildren()[0];
+		assertEquals(child.getName(), "Binding");
+		assertTrue(child instanceof Element);
+
+		Element childElement = (Element) child;
+		Attribute pathAttribute = childElement.getAttribute(name);
+		assertTrue(pathAttribute != null);
+		assertEquals(pathAttribute.getContent(), value);
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_Attached.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_Attached.xwt
new file mode 100644
index 0000000..1aa0f22
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_Attached.xwt
@@ -0,0 +1,5 @@
+<Label xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:y="clr-namespace:gui"
+    text="{Binding path=(Person.name)}">
+</Label>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_Indexer.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_Indexer.xwt
new file mode 100644
index 0000000..ee5dc67
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_Indexer.xwt
@@ -0,0 +1,5 @@
+<Label xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:y="clr-namespace:gui"
+    text="{Binding path=persons[1].name}">
+</Label>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_Namespace.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_Namespace.xwt
new file mode 100644
index 0000000..30b619c
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_Namespace.xwt
@@ -0,0 +1,5 @@
+<Label xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:y="clr-namespace:gui"
+    text="{Binding path=(y:Person.name)}">
+</Label>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_NamespaceUpdateSourceTrigger.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_NamespaceUpdateSourceTrigger.xwt
new file mode 100644
index 0000000..fcb8212
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_NamespaceUpdateSourceTrigger.xwt
@@ -0,0 +1,5 @@
+<Label xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:y="clr-namespace:gui"
+    text="{Binding path=(y:Person.name),UpdateSourceTrigger=PropertyChanged}">
+</Label>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_Path.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_Path.xwt
new file mode 100644
index 0000000..38296df
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_Path.xwt
@@ -0,0 +1,5 @@
+<Label xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:y="clr-namespace:gui"
+    text="{Binding path=employees.name}">
+</Label>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_UpdateSourceTrigger.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_UpdateSourceTrigger.xwt
new file mode 100644
index 0000000..d79252f
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/BindingExpression_UpdateSourceTrigger.xwt
@@ -0,0 +1,5 @@
+<Label xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    xmlns:y="clr-namespace:gui"
+    text="{Binding path=name,UpdateSourceTrigger=PropertyChanged}">
+</Label>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/Name.java b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/Name.java
new file mode 100644
index 0000000..9aa1f8a
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/Name.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Soyatec - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.xwt.tests.xaml;
+
+import java.net.URL;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.xwt.IConstants;
+import org.eclipse.xwt.XWT;
+
+/**
+ * @author jliu
+ */
+public class Name {
+
+	public static void main(String[] args) {
+
+		URL url = Name.class.getResource(Name.class.getSimpleName()
+				+ IConstants.XWT_EXTENSION_SUFFIX);
+		try {
+			XWT.open(url);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void findElement(Event event) {
+		if (XWT.findElementByName(event.widget, "target") != null) {
+			MessageDialog.openInformation(XWT.findShell(event.widget),
+					"Message", "Element is Found");
+		} else {
+			MessageDialog.openError(XWT.findShell(event.widget), "Message",
+					"No Found");
+		}
+	}
+}
diff --git a/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/Name.xwt b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/Name.xwt
new file mode 100644
index 0000000..3128f84
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/src/org/eclipse/xwt/tests/xaml/Name.xwt
@@ -0,0 +1,9 @@
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+    xmlns:x="http://www.eclipse.org/xwt"
+    x:Class="org.eclipse.xwt.tests.xaml.Name">
+	<Composite.layout>
+		<GridLayout numColumns="2"/>
+	</Composite.layout>
+	<Label x:Name="target" text="Target Button"/>
+	<Button text="Find Element" SelectionEvent="findElement"/>
+</Composite>
\ No newline at end of file
diff --git a/tests/org.eclipse.xwt.tests/test.xml b/tests/org.eclipse.xwt.tests/test.xml
new file mode 100644
index 0000000..069aeec
--- /dev/null
+++ b/tests/org.eclipse.xwt.tests/test.xml
Binary files differ
diff --git a/tests/pom.xml b/tests/pom.xml
new file mode 100644
index 0000000..a7a7a60
--- /dev/null
+++ b/tests/pom.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.xwt</groupId>
+		<artifactId>org.eclipse.xwt-root</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>org.eclipse.xwt-tests</artifactId>
+	<packaging>pom</packaging>
+	
+	<modules>
+		<module>org.eclipse.xwt.css.tests</module>
+		<module>org.eclipse.xwt.emf.test</module>
+		<module>org.eclipse.xwt.snippets.tests</module>
+		<module>org.eclipse.xwt.tests</module>
+	</modules>
+	
+</project>
\ No newline at end of file